UNPKG

1.97 MBSource Map (JSON)View Raw
1{"version":3,"file":"umd.min.js","mappings":"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,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,KAAM,GAAI,GAAI,GAAI,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,GAAI,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,GAAI,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,GAAI,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,GAAI,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,GAAI,GAAI,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,GAAI,GAAI,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,GAAI,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,GAAI,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,GAAI,KAAM,KAAM,KAAM,KAAM,KAAM,GAAI,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,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,IAAK,KAAM,EAAG,IAAK,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,IAAK,EAAG,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,IAAK,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,IAAK,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,IAAK,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,IAAK,KAAM,KAAM,KAAM,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,GAAK,KAAO,KAAO,KAAO,MAAO,KAAM,MAAO,MAAO,MAAO,MAAO,KAAM,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,KAAM,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,KAAM,MAAO,MAAO,MAAO,MAAO,KAAM,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,KAAM,MAAO,MAAO,KAAO,IAAM,IAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,IAAK,KAAM,KAAM,EAAG,KAAM,KAAM,KAAM,KAAM,MAAO,MAAO,MAAO,MAAO,MAAO,GAAI,MAAO,MAAO,GAAI,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,KAAM,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,KAAM,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,KAAM,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,GAAI,MAAO,KAAM,MAAO,MAAO,MAAO,MAAO,KAAM,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,KAAM,KAAM,MAAO,MAAO,MAAO,MAAO,KAAM,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,MAAO,OAAQ,OAAQ,OAAQ,OAAQ,MAAO,OAAQ,OAAQ,MAAO,KAAM,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,MAAO,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,MAAO,OAAQ,OAAQ,MAAO,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,QACxyHiM,MAAO,KACPjtC,KAAM,QAeV,GAbQ,CACJghC,MAAO,CAAC,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAW,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAW,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAW,WAAY,WAAY,UAAW,WAAY,WAAY,UAAW,WAAY,WAAY,WAAY,WAAY,UAAW,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAW,WAAY,WAAY,WAAY,WAAY,WAAY,UAAW,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAW,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAW,UAAW,WAAY,WAAY,UAAW,WAAY,WAAY,WAAY,WAAY,UAAW,WAAY,WAAY,UAAW,WAAY,WAAY,UAAW,WAAY,WAAY,WAAY,UAAW,WAAY,WAAY,UAAW,WAAY,WAAY,WAAY,WAAY,WAAY,UAAW,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAW,WAAY,WAAY,WAAY,WAAY,WAAY,UAAW,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAW,WAAY,UAAW,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAW,WAAY,UAAW,WAAY,WAAY,UAAW,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAW,WAAY,WAAY,WAAY,UAAW,UAAW,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAW,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAW,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAW,WAAY,WAAY,UAAW,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAW,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,SAAU,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAW,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAW,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAW,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,SAAU,WAAY,WAAY,WAAY,WAAY,UAAW,WAAY,WAAY,WAAY,UAAW,WAAY,WAAY,WAAY,WAAY,WAAY,UAAW,WAAY,WAAY,WAAY,WAAY,WAAY,UAAW,UAAW,WAAY,UAAW,WAAY,WAAY,UAAW,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAW,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAW,UAAW,WAAY,WAAY,UAAW,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAW,SAAU,WAAY,WAAY,WAAY,WAAY,WAAY,UAAW,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAW,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAW,WAAY,WAAY,WAAY,WAAY,WAAY,UAAW,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAW,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAW,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY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CAAC,EAAE,GAAG,GAAG,CAAC,EAAE,GAAG,IAAI,KAAK,CAAC,CAAC,EAAE,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,CAAC,EAAE,GAAG,IAAI,KAAK,CAAC,CAAC,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,EAAE,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,IAAI,KAAK,CAAC,CAAC,EAAE,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,CAAC,EAAE,GAAG,IAAI,KAAK,CAAC,CAAC,EAAE,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,CAAC,EAAE,GAAG,IAAI,KAAK,CAAC,CAAC,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,EAAE,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,IAAI,KAAK,CAAC,CAAC,EAAE,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,CAAC,EAAE,GAAG,IAAI,KAAK,CAAC,CAAC,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,KAAK,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,KAAK,KAAK,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,KAAK,KAAK,CAAC,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,KAAK,KAAK,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,KAAK,KAAK,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,KAAK,KAAK,CAAC,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,KAAK,KAAK,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,KAAK,KAAK,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,IAAI,KAAK,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,KAAK,KAAK,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,EAAE,EAAE,GAAG,GAAG,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,KAAK,KAAK,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,KAAK,KAAK,CAAC,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,KAAK,KAAK,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,KAAK,KAAK,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,KAAK,KAAK,CAAC,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,KAAK,KAAK,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,KAAK,KAAK,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,KAAK,KAAK,CAAC,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,KAAK,KAAK,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,KAAK,KAAK,CAAC,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,GAAG,KAAK,KAAK,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,KAAK,KAAK,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,KAAK,IAAK,CAAC,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,KAAK,KAAK,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,KAAK,KAAK,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,KAAK,KAAK,CAAC,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,KAAK,KAAK,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,KAAK,KAAK,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,IAAI,KAAK,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,KAAK,KAAK,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,EAAE,EAAE,GAAG,GAAG,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,KAAK,KAAK,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,KAAK,KAAK,CAAC,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,KAAK,KAAK,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,KAAK,KAAK,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,KAAK,KAAK,CAAC,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,KAAK,KAAK,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,KAAK,KAAK,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,KAAK,KAAK,CAAC,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,KAAK,KAAK,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,KAAK,KAAK,CAAC,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,KAAK,KAAK,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,KAAK,KAAK,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,KAAK,KAAK,CAAC,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,KAAK,KAAK,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,KAAK,KAAK,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,KAAK,KAAK,CAAC,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,KAAK,KAAK,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,KAAK,KAAK,CAAC,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,IAAI,KAAK,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,KAAK,KAAK,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,EAAE,EAAE,GAAG,GAAG,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,KAAK,KAAK,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,KAAK,KAAK,CAAC,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,GAAG,KAAK,KAAK,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,KAAK,KAAK,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,KAAK,KAAK,CAAC,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,KAAK,KAAK,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,KAAK,KAAK,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,KAAK,KAAK,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,EAAE,KAAK,KAAK,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,KAAK,KAAK,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,IAAI,KAAK,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,KAAK,KAAK,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,EAAE,EAAE,GAAG,GAAG,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,KAAK,KAAK,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,KAAK,KAAK,CAAC,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,KAAK,KAAK,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,KAAK,KAAK,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,KAAK,KAAK,CAAC,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,KAAK,KAAK,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,KAAK,KAAK,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,IAAI,KAAK,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,KAAK,KAAK,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,EAAE,EAAE,GAAG,GAAG,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,KAAK,KAAK,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,KAAK,KAAK,CAAC,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,KAAK,KAAK,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,KAAK,KAAK,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,KAAK,KAAK,CAAC,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,KAAK,KAAK,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,KAAK,KAAK,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,KAAK,KAAK,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,KAAK,KAAK,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,KAAK,KAAK,CAAC,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,IAAI,KAAK,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,GAAG,KAAK,KAAK,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,EAAE,EAAE,GAAG,GAAG,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,KAAK,KAAK,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,KAAK,KAAK,CAAC,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,KAAK,KAAK,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,KAAK,KAAK,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,KAAK,KAAK,CAAC,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,KAAK,KAAK,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,KAAK,KAAK,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,IAAI,KAAK,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,KAAK,KAAK,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,EAAE,EAAE,GAAG,GAAG,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,KAAK,KAAK,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,KAAK,KAAK,CAAC,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,KAAK,KAAK,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,KAAK,KAAK,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,KAAK,KAAK,CAAC,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,KAAK,CAAC,EAAE,GAAG,KAAK,CAAC,GAAG,GAAG,KAAK,CAAC,GAAG,GAAG,KAAK,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,KAAK,KAAK,CAAC,CAAC,EAAE,GAAG,KAAK,CAAC,EAAE,GAAG,KAAK,CAAC,EAAE,GAAG,KAAK,CAAC,EAAE,GAAG,KAAK,CAAC,EAAE,GAAG,KAAK,CAAC,EAAE,GAAG,KAAK,CAAC,EAAE,GAAG,KAAK,CAAC,EAAE,GAAG,KAAK,CAAC,GAAG,GAAG,KAAK,CAAC,GAAG,GAAG,KAAK,CAAC,EAAE,GAAG,KAAK,CAAC,EAAE,GAAG,KAAK,CAAC,EAAE,GAAG,MAAM,KAAK,CAAC,CAAC,EAAE,GAAG,KAAK,CAAC,EAAE,GAAG,KAAK,CAAC,EAAE,GAAG,KAAK,CAAC,EAAE,GAAG,KAAK,CAAC,EAAE,EAAE,KAAK,CAAC,EAAE,EAAE,KAAK,CAAC,EAAE,EAAE,KAAK,CAAC,EAAE,EAAE,KAAK,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,GAAG,KAAK,CAAC,EAAE,GAAG,KAAK,CAAC,EAAE,GAAG,MAAM,KAAK,CAAC,CAAC,EAAE,GAAG,KAAK,CAAC,EAAE,GAAG,KAAK,CAAC,EAAE,GAAG,KAAK,CAAC,EAAE,GAAG,KAAK,CAAC,EAAE,GAAG,KAAK,CAAC,EAAE,GAAG,KAAK,CAAC,EAAE,GAAG,KAAK,CAAC,EAAE,GAAG,KAAK,CAAC,GAAG,GAAG,KAAK,CAAC,GAAG,GAAG,KAAK,CAAC,EAAE,EAAE,KAAK,CAAC,EAAE,GAAG,KAAK,CAAC,EAAE,EAAE,MAAM,KAAK,CAAC,CAAC,EAAE,GAAG,KAAK,CAAC,EAAE,GAAG,KAAK,CAAC,EAAE,GAAG,KAAK,CAAC,EAAE,GAAG,KAAK,CAAC,EAAE,GAAG,KAAK,CAAC,EAAE,GAAG,KAAK,CAAC,EAAE,GAAG,KAAK,CAAC,EAAE,GAAG,KAAK,CAAC,GAAG,GAAG,KAAK,CAAC,GAAG,GAAG,KAAK,CAAC,EAAE,GAAG,KAAK,CAAC,EAAE,GAAG,KAAK,CAAC,EAAE,GAAG,MAAM,KAAK,CAAC,CAAC,EAAE,EAAE,KAAK,CAAC,EAAE,EAAE,KAAK,CAAC,EAAE,EAAE,KAAK,CAAC,EAAE,EAAE,KAAK,CAAC,EAAE,EAAE,KAAK,CAAC,EAAE,EAAE,KAAK,CAAC,EAAE,EAAE,KAAK,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,GAAG,KAAK,CAAC,EAAE,EAAE,KAAK,CAAC,EAAE,EAAE,KAAK,CAAC,EAAE,GAAG,MAAM,KAAK,CAAC,CAAC,EAAE,GAAG,KAAK,CAAC,EAAE,GAAG,KAAK,CAAC,EAAE,GAAG,KAAK,CAAC,EAAE,GAAG,KAAK,CAAC,EAAE,GAAG,KAAK,CAAC,EAAE,GAAG,KAAK,CAAC,EAAE,GAAG,KAAK,CAAC,EAAE,GAAG,KAAK,CAAC,GAAG,GAAG,KAAK,CAAC,GAAG,GAAG,KAAK,CAAC,EAAE,GAAG,KAAK,CAAC,EAAE,GAAG,KAAK,CAAC,EAAE,GAAG,MAAM,KAAK,CAAC,CAAC,EAAE,GAAG,KAAK,CAAC,EAAE,GAAG,KAAK,CAAC,EAAE,GAAG,KAAK,CAAC,EAAE,GAAG,KAAK,CAAC,EAAE,GAAG,KAAK,CAAC,EAAE,GAAG,KAAK,CAAC,EAAE,GAAG,KAAK,CAAC,EAAE,GAAG,KAAK,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,GAAG,KAAK,CAAC,EAAE,GAAG,KAAK,CAAC,EAAE,GAAG,MAAM,KAAK,CAAC,CAAC,EAAE,EAAE,KAAK,CAAC,EAAE,EAAE,KAAK,CAAC,EAAE,EAAE,KAAK,CAAC,EAAE,EAAE,KAAK,CAAC,EAAE,GAAG,KAAK,CAAC,EAAE,GAAG,KAAK,CAAC,EAAE,GAAG,KAAK,CAAC,EAAE,GAAG,KAAK,CAAC,GAAG,GAAG,KAAK,CAAC,GAAG,GAAG,KAAK,CAAC,EAAE,EAAE,KAAK,CAAC,EAAE,EAAE,KAAK,CAAC,EAAE,EAAE,MAAM,KAAK,CAAC,CAAC,EAAE,GAAG,KAAK,CAAC,EAAE,GAAG,KAAK,CAAC,EAAE,GAAG,KAAK,CAAC,EAAE,GAAG,KAAK,CAAC,EAAE,GAAG,KAAK,CAAC,EAAE,GAAG,KAAK,CAAC,EAAE,GAAG,KAAK,CAAC,EAAE,GAAG,KAAK,CAAC,GAAG,GAAG,KAAK,CAAC,GAAG,GAAG,KAAK,CAAC,EAAE,GAAG,KAAK,CAAC,EAAE,GAAG,KAAK,CAAC,EAAE,GAAG,MAAM,KAAK,CAAC,CAAC,EAAE,GAAG,KAAK,CAAC,EAAE,GAAG,KAAK,CAAC,EAAE,GAAG,KAAK,CAAC,EAAE,GAAG,KAAK,CAAC,EAAE,GAAG,KAAK,CAAC,EAAE,GAAG,KAAK,CAAC,EAAE,EAAE,KAAK,CAAC,EAAE,EAAE,KAAK,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,GAAG,KAAK,CAAC,EAAE,GAAG,KAAK,CAAC,EAAE,GAAG,MAAM,KAAK,CAAC,CAAC,EAAE,EAAE,KAAK,CAAC,EAAE,EAAE,KAAK,CAAC,EAAE,GAAG,KAAK,CAAC,EAAE,GAAG,KAAK,CAAC,EAAE,GAAG,KAAK,CAAC,EAAE,GAAG,KAAK,CAAC,EAAE,GAAG,KAAK,CAAC,EAAE,GAAG,KAAK,CAAC,GAAG,GAAG,KAAK,CAAC,GAAG,GAAG,KAAK,CAAC,EAAE,EAAE,KAAK,CAAC,EAAE,EAAE,KAAK,CAAC,EAAE,EAAE,MAAM,KAAK,CAAC,CAAC,EAAE,GAAG,KAAK,CAAC,EAAE,GAAG,KAAK,CAAC,EAAE,GAAG,KAAK,CAAC,EAAE,GAAG,KAAK,CAAC,EAAE,GAAG,KAAK,CAAC,EAAE,GAAG,KAAK,CAAC,EAAE,GAAG,KAAK,CAAC,EAAE,GAAG,KAAK,CAAC,GAAG,GAAG,KAAK,CAAC,GAAG,GAAG,KAAK,CAAC,EAAE,GAAG,KAAK,CAAC,EAAE,GAAG,KAAK,CAAC,EAAE,GAAG,MAAM,KAAK,CAAC,CAAC,EAAE,GAAG,KAAK,CAAC,EAAE,GAAG,KAAK,CAAC,EAAE,EAAE,KAAK,CAAC,EAAE,EAAE,KAAK,CAAC,EAAE,EAAE,KAAK,CAAC,EAAE,EAAE,KAAK,CAAC,EAAE,EAAE,KAAK,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,KAAK,KAAK,CAAC,EAAE,GAAG,KAAK,CAAC,EAAE,GAAG,KAAK,CAAC,EAAE,GAAG,MAAM,KAAK,CAAC,CAAC,EAAE,GAAG,KAAK,CAAC,EAAE,GAAG,KAAK,CAAC,EAAE,GAAG,KAAK,CAAC,EAAE,GAAG,KAAK,CAAC,EAAE,GAAG,KAAK,CAAC,EAAE,GAAG,KAAK,CAAC,EAAE,GAAG,KAAK,CAAC,EAAE,GAAG,KAAK,CAAC,GAAG,GAAG,KAAK,CAAC,EAAE,EAAE,IAAI,GAAG,GAAG,KAAK,CAAC,EAAE,GAAG,KAAK,CAAC,EAAE,EAAE,KAAK,CAAC,EAAE,EAAE,MAAM,KAAK,CAAC,CAAC,EAAE,GAAG,KAAK,CAAC,EAAE,GAAG,KAAK,CAAC,EAAE,GAAG,KAAK,CAAC,EAAE,GAAG,KAAK,CAAC,EAAE,GAAG,KAAK,CAAC,EAAE,GAAG,KAAK,CAAC,EAAE,GAAG,KAAK,CAAC,EAAE,GAAG,KAAK,CAAC,GAAG,GAAG,KAAK,CAAC,GAAG,GAAG,KAAK,CAAC,EAAE,GAAG,KAAK,CAAC,EAAE,GAAG,KAAK,CAAC,EAAE,GAAG,MAAM,KAAK,CAAC,CAAC,EAAE,EAAE,KAAK,CAAC,EAAE,EAAE,KAAK,CAAC,EAAE,EAAE,KAAK,CAAC,EAAE,EAAE,KAAK,CAAC,EAAE,EAAE,KAAK,CAAC,EAAE,EAAE,KAAK,CAAC,EAAE,GAAG,KAAK,CAAC,EAAE,GAAG,KAAK,CAAC,GAAG,GAAG,KAAK,CAAC,GAAG,GAAG,KAAK,CAAC,EAAE,EAAE,KAAK,CAAC,EAAE,EAAE,KAAK,CAAC,EAAE,EAAE,MAAM,KAAK,CAAC,CAAC,EAAE,GAAG,KAAK,CAAC,EAAE,GAAG,KAAK,CAAC,EAAE,GAAG,KAAK,CAAC,EAAE,GAAG,KAAK,CAAC,EAAE,GAAG,KAAK,CAAC,EAAE,GAAG,KAAK,CAAC,EAAE,GAAG,KAAK,CAAC,EAAE,GAAG,KAAK,CAAC,GAAG,GAAG,KAAK,CAAC,GAAG,GAAG,KAAK,CAAC,EAAE,GAAG,KAAK,CAAC,EAAE,GAAG,KAAK,CAAC,EAAE,GAAG,MAAM,KAAK,CAAC,CAAC,EAAE,GAAG,KAAK,CAAC,EAAE,GAAG,KAAK,CAAC,EAAE,GAAG,KAAK,CAAC,EAAE,GAAG,KAAK,CAAC,EAAE,GAAG,KAAK,CAAC,EAAE,GAAG,KAAK,CAAC,EAAE,EAAE,KAAK,CAAC,EAAE,EAAE,KAAK,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,GAAG,KAAK,CAAC,EAAE,GAAG,KAAK,CAAC,EAAE,GAAG,MAAM,KAAK,CAAC,CAAC,EAAE,EAAE,KAAK,CAAC,EAAE,EAAE,KAAK,CAAC,EAAE,EAAE,KAAK,CAAC,EAAE,EAAE,KAAK,CAAC,EAAE,GAAG,KAAK,CAAC,EAAE,GAAG,KAAK,CAAC,EAAE,GAAG,KAAK,CAAC,EAAE,GAAG,KAAK,CAAC,GAAG,GAAG,KAAK,CAAC,GAAG,GAAG,KAAK,CAAC,EAAE,EAAE,KAAK,CAAC,EAAE,EAAE,KAAK,CAAC,EAAE,EAAE,MAAM,KAAK,CAAC,CAAC,EAAE,GAAG,KAAK,CAAC,EAAE,GAAG,KAAK,CAAC,EAAE,GAAG,KAAK,CAAC,EAAE,GAAG,KAAK,CAAC,EAAE,GAAG,KAAK,CAAC,EAAE,GAAG,KAAK,CAAC,EAAE,GAAG,KAAK,CAAC,EAAE,GAAG,KAAK,CAAC,GAAG,GAAG,KAAK,CAAC,GAAG,GAAG,KAAK,CAAC,EAAE,GAAG,KAAK,CAAC,EAAE,GAAG,KAAK,CAAC,EAAE,GAAG,MAAM,KAAK,CAAC,CAAC,EAAE,GAAG,KAAK,CAAC,EAAE,GAAG,KAAK,CAAC,EAAE,GAAG,KAAK,CAAC,EAAE,EAAE,KAAK,CAAC,EAAE,EAAE,KAAK,CAAC,EAAE,EAAE,KAAK,CAAC,EAAE,EAAE,KAAK,CAAC,EAAE,EAAE,KAAK,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,GAAG,KAAK,CAAC,EAAE,GAAG,KAAK,CAAC,EAAE,GAAG,MAAM,KAAK,CAAC,CAAC,EAAE,EAAE,KAAK,CAAC,EAAE,EAAE,KAAK,CAAC,EAAE,GAAG,KAAK,CAAC,EAAE,GAAG,KAAK,CAAC,EAAE,GAAG,KAAK,CAAC,EAAE,GAAG,KAAK,CAAC,EAAE,GAAG,KAAK,CAAC,EAAE,GAAG,KAAK,CAAC,GAAG,GAAG,KAAK,CAAC,GAAG,GAAG,KAAK,CAAC,EAAE,EAAE,KAAK,CAAC,EAAE,EAAE,KAAK,CAAC,EAAE,EAAE,MAAM,KAAK,CAAC,CAAC,EAAE,GAAG,KAAK,CAAC,EAAE,GAAG,KAAK,CAAC,EAAE,GAAG,KAAK,CAAC,EAAE,GAAG,KAAK,CAAC,EAAE,GAAG,KAAK,CAAC,EAAE,GAAG,KAAK,CAAC,EAAE,GAAG,KAAK,CAAC,EAAE,GAAG,KAAK,CAAC,GAAG,GAAG,KAAK,CAAC,GAAG,GAAG,KAAK,CAAC,EAAE,GAAG,KAAK,CAAC,EAAE,GAAG,KAAK,CAAC,EAAE,GAAG,MAAM,KAAK,CAAC,CAAC,EAAE,EAAE,KAAK,CAAC,EAAE,EAAE,KAAK,CAAC,EAAE,EAAE,KAAK,CAAC,EAAE,EAAE,KAAK,CAAC,EAAE,EAAE,KAAK,CAAC,EAAE,EAAE,KAAK,CAAC,EAAE,EAAE,KAAK,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,GAAG,KAAK,CAAC,GAAG,GAAG,KAAK,CAAC,EAAE,GAAG,KAAK,CAAC,EAAE,EAAE,KAAK,CAAC,EAAE,GAAG,MAAM,KAAK,CAAC,CAAC,EAAE,GAAG,KAAK,CAAC,EAAE,GAAG,KAAK,CAAC,EAAE,GAAG,KAAK,CAAC,EAAE,GAAG,KAAK,CAAC,EAAE,GAAG,KAAK,CAAC,EAAE,GAAG,KAAK,CAAC,EAAE,GAAG,KAAK,CAAC,EAAE,GAAG,KAAK,CAAC,GAAG,GAAG,KAAK,CAAC,GAAG,GAAG,KAAK,CAAC,EAAE,GAAG,KAAK,CAAC,EAAE,GAAG,KAAK,CAAC,EAAE,GAAG,MAAM,KAAK,CAAC,CAAC,EAAE,GAAG,KAAK,CAAC,EAAE,GAAG,KAAK,CAAC,EAAE,GAAG,KAAK,CAAC,EAAE,GAAG,KAAK,CAAC,EAAE,GAAG,KAAK,CAAC,EAAE,GAAG,KAAK,CAAC,EAAE,GAAG,KAAK,CAAC,EAAE,GAAG,KAAK,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,GAAG,KAAK,CAAC,EAAE,GAAG,KAAK,CAAC,EAAE,GAAG,MAAM,KAAK,CAAC,CAAC,EAAE,EAAE,KAAK,CAAC,EAAE,EAAE,KAAK,CAAC,EAAE,EAAE,KAAK,CAAC,EAAE,EAAE,KAAK,CAAC,EAAE,EAAE,KAAK,CAAC,EAAE,GAAG,KAAK,CAAC,EAAE,GAAG,KAAK,CAAC,EAAE,GAAG,KAAK,CAAC,GAAG,GAAG,KAAK,CAAC,GAAG,GAAG,KAAK,CAAC,EAAE,EAAE,KAAK,CAAC,EAAE,EAAE,KAAK,CAAC,EAAE,EAAE,MAAM,KAAK,CAAC,CAAC,EAAE,GAAG,KAAK,CAAC,EAAE,GAAG,KAAK,CAAC,EAAE,GAAG,KAAK,CAAC,EAAE,GAAG,KAAK,CAAC,EAAE,GAAG,KAAK,CAAC,EAAE,GAAG,KAAK,CAAC,EAAE,GAAG,KAAK,CAAC,EAAE,GAAG,KAAK,CAAC,GAAG,GAAG,KAAK,CAAC,GAAG,GAAG,KAAK,CAAC,EAAE,GAAG,KAAK,CAAC,EAAE,GAAG,KAAK,CAAC,EAAE,GAAG,MAAM,KAAK,CAAC,CAAC,EAAE,GAAG,KAAK,CAAC,EAAE,GAAG,KAAK,CAAC,EAAE,GAAG,KAAK,CAAC,EAAE,GAAG,KAAK,CAAC,EAAE,GAAG,KAAK,CAAC,EAAE,EAAE,KAAK,CAAC,EAAE,EAAE,KAAK,CAAC,EAAE,EAAE,KAAK,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,GAAG,KAAK,CAAC,EAAE,GAAG,KAAK,CAAC,EAAE,GAAG,MAAM,KAAK,CAAC,CAAC,EAAE,EAAE,KAAK,CAAC,EAAE,EAAE,KAAK,CAAC,EAAE,EAAE,KAAK,CAAC,EAAE,EAAE,KAAK,CAAC,EAAE,GAAG,KAAK,CAAC,EAAE,GAAG,KAAK,CAAC,EAAE,GAAG,KAAK,CAAC,EAAE,GAAG,KAAK,CAAC,GAAG,GAAG,KAAK,CAAC,GAAG,GAAG,KAAK,CAAC,EAAE,EAAE,KAAK,CAAC,EAAE,EAAE,KAAK,CAAC,EAAE,EAAE,MAAM,KAAK,CAAC,CAAC,EAAE,GAAG,KAAK,CAAC,EAAE,GAAG,KAAK,CAAC,EAAE,GAAG,KAAK,CAAC,EAAE,GAAG,KAAK,CAAC,EAAE,GAAG,KAAK,CAAC,EAAE,GAAG,KAAK,CAAC,EAAE,GAAG,KAAK,CAAC,EAAE,GAAG,KAAK,CAAC,GAAG,GAAG,KAAK,CAAC,GAAG,GAAG,KAAK,CAAC,EAAE,GAAG,KAAK,CAAC,EAAE,GAAG,KAAK,CAAC,EAAE,GAAG,MAAM,KAAK,CAAC,CAAC,EAAE,GAAG,KAAK,CAAC,EAAE,GAAG,KAAK,CAAC,EAAE,EAAE,KAAK,CAAC,EAAE,EAAE,KAAK,CAAC,EAAE,EAAE,KAAK,CAAC,EAAE,EAAE,KAAK,KAAK,KAAK,KAAK,KAAK,CAAC,EAAE,GAAG,KAAK,CAAC,EAAE,GAAG,KAAK,CAAC,EAAE,GAAG,MAAM3G,OAAO,GAAGpD,KAAK,y8BCCtyjB,IAEnCg0C,GAAM,8sBACzB,WAAattB,GAAM,MAEO,mGAFP,UACjB,cAAMA,IACD3c,SAAWA,GAAQ,CAC1B,CAcC,SAdA,sBAED,SAAKkd,GAAU,WACPtuB,EAAMhL,KAAKsxB,MAAM72B,KAAI,SAACwY,GAC1B,IAAMmtB,EAAQ,IAAItH,EAAQ7lB,GACpBsC,EAAI,CACRtC,KAAMmtB,EAAM9mC,WAAa,SACzB+mC,MAAOD,EAAMb,WAAW,EAAG,KAAKe,WAAWhH,GAC3CiH,IAAKH,EAAMI,YAAYF,WAAWhH,IAGpC,OADA,EAAKmH,eAAextB,EAAMsC,GACnBA,CACT,IACA,OAAOvK,CACT,4EAAC,EAlBwB,CAASk7C,ICHvB9pC,GAAU,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,KAAK,CAAC,CAAC,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,CAAC,EAAE,EAAE,IAAI,KAAK,CAAC,CAAC,EAAE,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,EAAE,GAAG,IAAI,KAAK,CAAC,CAAC,EAAE,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,KAAK,CAAC,CAAC,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,EAAE,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,EAAE,EAAE,EAAE,GAAG,GAAG,IAAI,KAAK,CAAC,CAAC,EAAE,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,KAAK,CAAC,CAAC,EAAE,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,IAAI,KAAK,CAAC,CAAC,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,EAAE,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,KAAK,CAAC,CAAC,GAAG,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,KAAK,CAAC,CAAC,GAAG,EAAE,IAAI,CAAC,EAAE,GAAG,EAAE,GAAG,GAAG,IAAI,CAAC,EAAE,EAAE,GAAG,CAAC,EAAE,GAAG,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,GAAG,EAAE,IAAI,KAAK,CAAC,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,KAAK,KAAK,CAAC,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,KAAK,KAAK,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,EAAE,EAAE,GAAG,GAAG,GAAG,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,KAAK,KAAK,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,KAAK,KAAK,CAAC,CAAC,EAAE,EAAE,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,KAAK,KAAK,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,EAAE,EAAE,GAAG,GAAG,GAAG,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,KAAK,KAAK,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,KAAK,KAAK,CAAC,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,KAAK,KAAK,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,EAAE,EAAE,GAAG,GAAG,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,KAAK,KAAK,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,KAAK,KAAK,CAAC,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,EAAE,EAAE,GAAG,GAAG,GAAG,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,KAAK,KAAK,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,KAAK,KAAK,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,KAAK,KAAK,CAAC,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,EAAE,EAAE,GAAG,GAAG,GAAG,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,KAAK,KAAK,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,KAAK,KAAK,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,KAAK,KAAK,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,EAAE,EAAE,GAAG,GAAG,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,GAAG,KAAK,KAAK,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,KAAK,KAAK,CAAC,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,EAAE,GAAG,GAAG,GAAG,GAAG,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,EAAE,KAAK,KAAK,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,KAAK,KAAK,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,KAAK,IAAK,CAAC,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,EAAE,EAAE,GAAG,GAAG,GAAG,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,KAAK,KAAK,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,KAAK,KAAK,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,KAAK,KAAK,CAAC,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,EAAE,EAAE,GAAG,GAAG,GAAG,IAAI,CAAC,EAAE,EAAE,KAAK,KAAK,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,EAAE,GAAG,KAAK,KAAK,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,EAAE,GAAG,KAAK,KAAK,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,EAAE,EAAE,GAAG,GAAG,GAAG,KAAK,KAAK,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,GAAG,KAAK,KAAK,CAAC,CAAC,EAAE,GAAG,GAAG,GAAG,GAAG,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,GAAG,GAAG,KAAK,KAAK,CAAC,CAAC,GAAG,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,GAAG,GAAG,KAAK,KAAK,CAAC,CAAC,GAAG,EAAE,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,GAAG,EAAE,KAAK,KAAK,CAAC,CAAC,GAAG,GAAG,IAAI,CAAC,EAAE,EAAE,GAAG,GAAG,GAAG,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,KAAK,KAAK,CAAC,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,KAAK,KAAK,CAAC,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,KAAK,KAAK,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,EAAE,EAAE,GAAG,GAAG,GAAG,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,KAAK,KAAK,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,KAAK,KAAK,CAAC,CAAC,EAAE,EAAE,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,EAAE,GAAG,GAAG,GAAG,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,KAAK,KAAK,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,KAAK,KAAK,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,KAAK,KAAK,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,EAAE,EAAE,GAAG,GAAG,GAAG,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,KAAK,KAAK,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,KAAK,KAAK,CAAC,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,KAAK,KAAK,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,EAAE,EAAE,GAAG,GAAG,GAAG,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,KAAK,KAAK,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,KAAK,KAAK,CAAC,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,KAAK,KAAK,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,EAAE,EAAE,GAAG,GAAG,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,KAAK,KAAK,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,KAAK,KAAK,CAAC,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,EAAE,EAAE,GAAG,GAAG,GAAG,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,KAAK,KAAK,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,KAAK,KAAK,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,KAAK,KAAK,CAAC,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,EAAE,EAAE,GAAG,GAAG,GAAG,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,KAAK,KAAK,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,KAAK,KAAK,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,KAAK,KAAK,CAAC,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,EAAE,EAAE,GAAG,GAAG,GAAG,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,KAAK,KAAK,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,KAAK,KAAK,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,EAAE,GAAG,GAAG,GAAG,GAAG,IAAI,CAAC,EAAE,EAAE,KAAK,KAAK,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,EAAE,GAAG,KAAK,KAAK,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,EAAE,GAAG,KAAK,KAAK,CAAC,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,EAAE,EAAE,GAAG,GAAG,GAAG,KAAK,KAAK,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,GAAG,KAAK,KAAK,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,KAAK,KAAK,CAAC,CAAC,EAAE,EAAE,GAAG,GAAG,GAAG,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,GAAG,GAAG,KAAK,KAAK,CAAC,CAAC,GAAG,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,GAAG,GAAG,KAAK,KAAK,CAAC,CAAC,GAAG,EAAE,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,GAAG,EAAE,KAAK,KAAK,CAAC,CAAC,GAAG,GAAG,IAAI,CAAC,EAAE,EAAE,GAAG,GAAG,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,KAAK,KAAK,CAAC,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,KAAK,KAAK,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,EAAE,EAAE,GAAG,GAAG,GAAG,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,KAAK,KAAK,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,KAAK,KAAK,CAAC,CAAC,EAAE,EAAE,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,KAAK,KAAK,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,EAAE,EAAE,GAAG,GAAG,GAAG,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,KAAK,KAAK,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,KAAK,KAAK,CAAC,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,KAAK,KAAK,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,EAAE,EAAE,GAAG,GAAG,GAAG,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,KAAK,KAAK,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,KAAK,KAAK,CAAC,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,EAAE,GAAG,GAAG,GAAG,GAAG,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,KAAK,KAAK,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,KAAK,KAAK,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,KAAK,KAAK,CAAC,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,EAAE,EAAE,GAAG,GAAG,GAAG,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,KAAK,KAAK,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,KAAK,KAAK,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,KAAK,KAAK,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,EAAE,EAAE,GAAG,GAAG,GAAG,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,KAAK,KAAK,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,KAAK,KAAK,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,KAAK,KAAK,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,EAAE,EAAE,GAAG,GAAG,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,GAAG,KAAK,KAAK,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,KAAK,KAAK,CAAC,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,EAAE,EAAE,GAAG,GAAG,GAAG,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,KAAK,KAAK,CAAC,CAAC,EAAE,GAAG,KAAK,CAAC,EAAE,GAAG,KAAK,CAAC,EAAE,GAAG,KAAK,CAAC,EAAE,GAAG,KAAK,CAAC,EAAE,GAAG,KAAK,CAAC,EAAE,GAAG,KAAK,CAAC,EAAE,GAAG,KAAK,CAAC,EAAE,GAAG,KAAK,CAAC,GAAG,GAAG,KAAK,CAAC,GAAG,GAAG,KAAK,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,KAAK,KAAK,CAAC,CAAC,EAAE,GAAG,KAAK,CAAC,EAAE,GAAG,KAAK,CAAC,EAAE,GAAG,KAAK,CAAC,EAAE,GAAG,KAAK,CAAC,EAAE,GAAG,KAAK,CAAC,EAAE,GAAG,KAAK,CAAC,EAAE,GAAG,KAAK,CAAC,EAAE,GAAG,KAAK,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,GAAG,KAAK,CAAC,EAAE,GAAG,MAAM,KAAK,CAAC,CAAC,EAAE,EAAE,KAAK,CAAC,EAAE,EAAE,KAAK,CAAC,EAAE,EAAE,KAAK,CAAC,EAAE,EAAE,KAAK,CAAC,EAAE,EAAE,KAAK,CAAC,EAAE,GAAG,KAAK,CAAC,EAAE,GAAG,KAAK,CAAC,EAAE,GAAG,KAAK,CAAC,EAAE,GAAG,KAAK,CAAC,GAAG,GAAG,KAAK,CAAC,EAAE,EAAE,IAAI,GAAG,GAAG,KAAK,CAAC,EAAE,EAAE,MAAM,KAAK,CAAC,CAAC,EAAE,GAAG,KAAK,CAAC,EAAE,GAAG,KAAK,CAAC,EAAE,GAAG,KAAK,CAAC,EAAE,GAAG,KAAK,CAAC,EAAE,GAAG,KAAK,CAAC,EAAE,GAAG,KAAK,CAAC,EAAE,GAAG,KAAK,CAAC,EAAE,GAAG,KAAK,CAAC,EAAE,GAAG,KAAK,CAAC,GAAG,GAAG,KAAK,CAAC,GAAG,GAAG,KAAK,CAAC,EAAE,GAAG,MAAM,KAAK,CAAC,CAAC,EAAE,GAAG,KAAK,CAAC,EAAE,GAAG,KAAK,CAAC,EAAE,GAAG,KAAK,CAAC,EAAE,GAAG,KAAK,CAAC,EAAE,GAAG,KAAK,CAAC,EAAE,EAAE,KAAK,CAAC,EAAE,EAAE,KAAK,CAAC,EAAE,EAAE,KAAK,CAAC,EAAE,EAAE,KAAK,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,GAAG,MAAM,KAAK,CAAC,CAAC,EAAE,EAAE,KAAK,CAAC,EAAE,EAAE,KAAK,CAAC,EAAE,EAAE,KAAK,CAAC,EAAE,EAAE,KAAK,CAAC,EAAE,GAAG,KAAK,CAAC,EAAE,GAAG,KAAK,CAAC,EAAE,GAAG,KAAK,CAAC,EAAE,GAAG,KAAK,CAAC,EAAE,GAAG,KAAK,CAAC,EAAE,GAAG,KAAK,CAAC,GAAG,GAAG,KAAK,CAAC,EAAE,EAAE,IAAI,GAAG,GAAG,MAAM,KAAK,CAAC,CAAC,EAAE,GAAG,KAAK,CAAC,EAAE,GAAG,KAAK,CAAC,EAAE,GAAG,KAAK,CAAC,EAAE,GAAG,KAAK,CAAC,EAAE,GAAG,KAAK,CAAC,EAAE,GAAG,KAAK,CAAC,EAAE,GAAG,KAAK,CAAC,EAAE,GAAG,KAAK,CAAC,EAAE,GAAG,KAAK,CAAC,EAAE,GAAG,KAAK,CAAC,GAAG,GAAG,KAAK,CAAC,GAAG,GAAG,MAAM,KAAK,CAAC,CAAC,EAAE,EAAE,IAAI,GAAG,GAAG,KAAK,CAAC,EAAE,EAAE,KAAK,CAAC,EAAE,GAAG,KAAK,CAAC,EAAE,EAAE,KAAK,CAAC,EAAE,EAAE,KAAK,CAAC,EAAE,EAAE,KAAK,CAAC,EAAE,EAAE,KAAK,CAAC,EAAE,EAAE,KAAK,CAAC,EAAE,EAAE,KAAK,CAAC,EAAE,EAAE,KAAK,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,GAAG,MAAM,KAAK,CAAC,CAAC,GAAG,GAAG,KAAK,CAAC,EAAE,GAAG,KAAK,CAAC,EAAE,GAAG,KAAK,CAAC,EAAE,GAAG,KAAK,CAAC,EAAE,GAAG,KAAK,CAAC,EAAE,GAAG,KAAK,CAAC,EAAE,GAAG,KAAK,CAAC,EAAE,GAAG,KAAK,CAAC,EAAE,GAAG,KAAK,CAAC,EAAE,GAAG,KAAK,CAAC,EAAE,GAAG,KAAK,CAAC,GAAG,GAAG,MAAM,KAAK,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,GAAG,KAAK,CAAC,EAAE,GAAG,KAAK,CAAC,EAAE,GAAG,KAAK,CAAC,EAAE,GAAG,KAAK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","sources":["webpack://Holidays/webpack/universalModuleDefinition","webpack://Holidays/./node_modules/.pnpm/deepmerge@4.2.2/node_modules/deepmerge/dist/cjs.js","webpack://Holidays/./node_modules/.pnpm/jalaali-js@1.2.6/node_modules/jalaali-js/index.js","webpack://Holidays/./node_modules/.pnpm/moment-timezone@0.5.39/node_modules/moment-timezone/index.js","webpack://Holidays/./node_modules/.pnpm/moment-timezone@0.5.39/node_modules/moment-timezone/moment-timezone.js","webpack://Holidays/./node_modules/.pnpm/moment@2.29.4/node_modules/moment/moment.js","webpack://Holidays/./node_modules/.pnpm/moment@2.29.4/node_modules/moment/locale/ sync ^\\.\\/.*$","webpack://Holidays/webpack/bootstrap","webpack://Holidays/webpack/runtime/define property getters","webpack://Holidays/webpack/runtime/hasOwnProperty shorthand","webpack://Holidays/webpack/runtime/make namespace object","webpack://Holidays/webpack/runtime/node module decorator","webpack://Holidays/./node_modules/.pnpm/caldate@2.0.4/node_modules/caldate/src/utils.js","webpack://Holidays/./node_modules/.pnpm/caldate@2.0.4/node_modules/caldate/src/CalDate.js","webpack://Holidays/./node_modules/.pnpm/date-holidays-parser@3.4.2/node_modules/date-holidays-parser/src/utils.js","webpack://Holidays/./node_modules/.pnpm/date-holidays-parser@3.4.2/node_modules/date-holidays-parser/src/internal/utils.js","webpack://Holidays/./node_modules/.pnpm/date-holidays-parser@3.4.2/node_modules/date-holidays-parser/src/Data.js","webpack://Holidays/./node_modules/.pnpm/date-holidays-parser@3.4.2/node_modules/date-holidays-parser/src/Parser.js","webpack://Holidays/./node_modules/.pnpm/date-holidays-parser@3.4.2/node_modules/date-holidays-parser/src/Rule.js","webpack://Holidays/./node_modules/.pnpm/date-holidays-parser@3.4.2/node_modules/date-holidays-parser/src/CalEvent.js","webpack://Holidays/./node_modules/.pnpm/date-holidays-parser@3.4.2/node_modules/date-holidays-parser/src/PostRule.js","webpack://Holidays/./node_modules/.pnpm/date-easter@1.0.2/node_modules/date-easter/src/index.js","webpack://Holidays/./node_modules/.pnpm/date-holidays-parser@3.4.2/node_modules/date-holidays-parser/src/Easter.js","webpack://Holidays/./node_modules/.pnpm/astronomia@4.1.1/node_modules/astronomia/src/base.js","webpack://Holidays/./node_modules/.pnpm/astronomia@4.1.1/node_modules/astronomia/src/interpolation.js","webpack://Holidays/./node_modules/.pnpm/astronomia@4.1.1/node_modules/astronomia/src/angle.js","webpack://Holidays/./node_modules/.pnpm/astronomia@4.1.1/node_modules/astronomia/src/sexagesimal.js","webpack://Holidays/./node_modules/.pnpm/astronomia@4.1.1/node_modules/astronomia/src/globe.js","webpack://Holidays/./node_modules/.pnpm/astronomia@4.1.1/node_modules/astronomia/src/coord.js","webpack://Holidays/./node_modules/.pnpm/astronomia@4.1.1/node_modules/astronomia/src/nutation.js","webpack://Holidays/./node_modules/.pnpm/astronomia@4.1.1/node_modules/astronomia/src/elementequinox.js","webpack://Holidays/./node_modules/.pnpm/astronomia@4.1.1/node_modules/astronomia/src/precess.js","webpack://Holidays/./node_modules/.pnpm/astronomia@4.1.1/node_modules/astronomia/src/planetposition.js","webpack://Holidays/./node_modules/.pnpm/astronomia@4.1.1/node_modules/astronomia/src/solar.js","webpack://Holidays/./node_modules/.pnpm/astronomia@4.1.1/node_modules/astronomia/src/apparent.js","webpack://Holidays/./node_modules/.pnpm/astronomia@4.1.1/node_modules/astronomia/src/apsis.js","webpack://Holidays/./node_modules/.pnpm/astronomia@4.1.1/node_modules/astronomia/src/binary.js","webpack://Holidays/./node_modules/.pnpm/astronomia@4.1.1/node_modules/astronomia/src/circle.js","webpack://Holidays/./node_modules/.pnpm/astronomia@4.1.1/node_modules/astronomia/data/deltat.js","webpack://Holidays/./node_modules/.pnpm/astronomia@4.1.1/node_modules/astronomia/src/deltat.js","webpack://Holidays/./node_modules/.pnpm/astronomia@4.1.1/node_modules/astronomia/src/moonphase.js","webpack://Holidays/./node_modules/.pnpm/astronomia@4.1.1/node_modules/astronomia/src/elp.js","webpack://Holidays/./node_modules/.pnpm/astronomia@4.1.1/node_modules/astronomia/src/eqtime.js","webpack://Holidays/./node_modules/.pnpm/astronomia@4.1.1/node_modules/astronomia/src/illum.js","webpack://Holidays/./node_modules/.pnpm/astronomia@4.1.1/node_modules/astronomia/src/julian.js","webpack://Holidays/./node_modules/.pnpm/astronomia@4.1.1/node_modules/astronomia/src/jm.js","webpack://Holidays/./node_modules/.pnpm/astronomia@4.1.1/node_modules/astronomia/src/moonposition.js","webpack://Holidays/./node_modules/.pnpm/astronomia@4.1.1/node_modules/astronomia/src/moon.js","webpack://Holidays/./node_modules/.pnpm/astronomia@4.1.1/node_modules/astronomia/src/planetary.js","webpack://Holidays/./node_modules/.pnpm/astronomia@4.1.1/node_modules/astronomia/src/pluto.js","webpack://Holidays/./node_modules/.pnpm/astronomia@4.1.1/node_modules/astronomia/src/moonillum.js","webpack://Holidays/./node_modules/.pnpm/astronomia@4.1.1/node_modules/astronomia/src/moonmaxdec.js","webpack://Holidays/./node_modules/.pnpm/astronomia@4.1.1/node_modules/astronomia/src/parallax.js","webpack://Holidays/./node_modules/.pnpm/astronomia@4.1.1/node_modules/astronomia/src/perihelion.js","webpack://Holidays/./node_modules/.pnpm/astronomia@4.1.1/node_modules/astronomia/src/refraction.js","webpack://Holidays/./node_modules/.pnpm/astronomia@4.1.1/node_modules/astronomia/src/rise.js","webpack://Holidays/./node_modules/.pnpm/astronomia@4.1.1/node_modules/astronomia/src/saturnmoons.js","webpack://Holidays/./node_modules/.pnpm/astronomia@4.1.1/node_modules/astronomia/src/solardisk.js","webpack://Holidays/./node_modules/.pnpm/astronomia@4.1.1/node_modules/astronomia/src/solstice.js","webpack://Holidays/./node_modules/.pnpm/astronomia@4.1.1/node_modules/astronomia/src/sunrise.js","webpack://Holidays/./node_modules/.pnpm/date-holidays-parser@3.4.2/node_modules/date-holidays-parser/src/Julian.js","webpack://Holidays/./node_modules/.pnpm/date-holidays-parser@3.4.2/node_modules/date-holidays-parser/src/CalEventMap.js","webpack://Holidays/./node_modules/.pnpm/date-holidays-parser@3.4.2/node_modules/date-holidays-parser/src/internal/hebrew-calendar.js","webpack://Holidays/./node_modules/.pnpm/date-holidays-parser@3.4.2/node_modules/date-holidays-parser/src/Hebrew.js","webpack://Holidays/./node_modules/.pnpm/date-holidays-parser@3.4.2/node_modules/date-holidays-parser/src/internal/hijri-calendar.js","webpack://Holidays/./node_modules/.pnpm/date-holidays-parser@3.4.2/node_modules/date-holidays-parser/src/Hijri.js","webpack://Holidays/./node_modules/.pnpm/date-holidays-parser@3.4.2/node_modules/date-holidays-parser/src/Jalaali.js","webpack://Holidays/./node_modules/.pnpm/astronomia@4.1.1/node_modules/astronomia/data/vsop87Bearth.js","webpack://Holidays/./node_modules/.pnpm/date-holidays-parser@3.4.2/node_modules/date-holidays-parser/src/vsop87Bearth.js","webpack://Holidays/./node_modules/.pnpm/date-holidays-parser@3.4.2/node_modules/date-holidays-parser/src/Equinox.js","webpack://Holidays/./node_modules/.pnpm/date-chinese@2.1.4/node_modules/date-chinese/src/vsop87Bearth.js","webpack://Holidays/./node_modules/.pnpm/date-chinese@2.1.4/node_modules/date-chinese/src/Chinese.js","webpack://Holidays/./node_modules/.pnpm/date-chinese@2.1.4/node_modules/date-chinese/src/Korean.js","webpack://Holidays/./node_modules/.pnpm/date-chinese@2.1.4/node_modules/date-chinese/src/Vietnamese.js","webpack://Holidays/./node_modules/.pnpm/date-chinese@2.1.4/node_modules/date-chinese/src/Japanese.js","webpack://Holidays/./node_modules/.pnpm/date-holidays-parser@3.4.2/node_modules/date-holidays-parser/src/Chinese.js","webpack://Holidays/./node_modules/.pnpm/date-bengali-revised@2.0.2/node_modules/date-bengali-revised/src/convert.js","webpack://Holidays/./node_modules/.pnpm/date-bengali-revised@2.0.2/node_modules/date-bengali-revised/src/index.js","webpack://Holidays/./node_modules/.pnpm/date-holidays-parser@3.4.2/node_modules/date-holidays-parser/src/BengaliRevised.js","webpack://Holidays/./node_modules/.pnpm/date-holidays-parser@3.4.2/node_modules/date-holidays-parser/src/CalEventFactory.js","webpack://Holidays/./node_modules/.pnpm/date-holidays-parser@3.4.2/node_modules/date-holidays-parser/src/DateFn.js","webpack://Holidays/./node_modules/.pnpm/date-holidays-parser@3.4.2/node_modules/date-holidays-parser/src/HolidayRule.js","webpack://Holidays/./node_modules/.pnpm/date-holidays-parser@3.4.2/node_modules/date-holidays-parser/src/Holidays.js","webpack://Holidays/./src/data.js","webpack://Holidays/./src/Holidays.js"],"sourcesContent":["(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[\"Holidays\"] = factory();\n\telse\n\t\troot[\"Holidays\"] = factory();\n})(self, function() {\nreturn ","'use strict';\n\nvar isMergeableObject = function isMergeableObject(value) {\n\treturn isNonNullObject(value)\n\t\t&& !isSpecial(value)\n};\n\nfunction isNonNullObject(value) {\n\treturn !!value && typeof value === 'object'\n}\n\nfunction isSpecial(value) {\n\tvar stringValue = Object.prototype.toString.call(value);\n\n\treturn stringValue === '[object RegExp]'\n\t\t|| stringValue === '[object Date]'\n\t\t|| isReactElement(value)\n}\n\n// see https://github.com/facebook/react/blob/b5ac963fb791d1298e7f396236383bc955f916c1/src/isomorphic/classic/element/ReactElement.js#L21-L25\nvar canUseSymbol = typeof Symbol === 'function' && Symbol.for;\nvar REACT_ELEMENT_TYPE = canUseSymbol ? Symbol.for('react.element') : 0xeac7;\n\nfunction isReactElement(value) {\n\treturn value.$$typeof === REACT_ELEMENT_TYPE\n}\n\nfunction emptyTarget(val) {\n\treturn Array.isArray(val) ? [] : {}\n}\n\nfunction cloneUnlessOtherwiseSpecified(value, options) {\n\treturn (options.clone !== false && options.isMergeableObject(value))\n\t\t? deepmerge(emptyTarget(value), value, options)\n\t\t: value\n}\n\nfunction defaultArrayMerge(target, source, options) {\n\treturn target.concat(source).map(function(element) {\n\t\treturn cloneUnlessOtherwiseSpecified(element, options)\n\t})\n}\n\nfunction getMergeFunction(key, options) {\n\tif (!options.customMerge) {\n\t\treturn deepmerge\n\t}\n\tvar customMerge = options.customMerge(key);\n\treturn typeof customMerge === 'function' ? customMerge : deepmerge\n}\n\nfunction getEnumerableOwnPropertySymbols(target) {\n\treturn Object.getOwnPropertySymbols\n\t\t? Object.getOwnPropertySymbols(target).filter(function(symbol) {\n\t\t\treturn target.propertyIsEnumerable(symbol)\n\t\t})\n\t\t: []\n}\n\nfunction getKeys(target) {\n\treturn Object.keys(target).concat(getEnumerableOwnPropertySymbols(target))\n}\n\nfunction propertyIsOnObject(object, property) {\n\ttry {\n\t\treturn property in object\n\t} catch(_) {\n\t\treturn false\n\t}\n}\n\n// Protects from prototype poisoning and unexpected merging up the prototype chain.\nfunction propertyIsUnsafe(target, key) {\n\treturn propertyIsOnObject(target, key) // Properties are safe to merge if they don't exist in the target yet,\n\t\t&& !(Object.hasOwnProperty.call(target, key) // unsafe if they exist up the prototype chain,\n\t\t\t&& Object.propertyIsEnumerable.call(target, key)) // and also unsafe if they're nonenumerable.\n}\n\nfunction mergeObject(target, source, options) {\n\tvar destination = {};\n\tif (options.isMergeableObject(target)) {\n\t\tgetKeys(target).forEach(function(key) {\n\t\t\tdestination[key] = cloneUnlessOtherwiseSpecified(target[key], options);\n\t\t});\n\t}\n\tgetKeys(source).forEach(function(key) {\n\t\tif (propertyIsUnsafe(target, key)) {\n\t\t\treturn\n\t\t}\n\n\t\tif (propertyIsOnObject(target, key) && options.isMergeableObject(source[key])) {\n\t\t\tdestination[key] = getMergeFunction(key, options)(target[key], source[key], options);\n\t\t} else {\n\t\t\tdestination[key] = cloneUnlessOtherwiseSpecified(source[key], options);\n\t\t}\n\t});\n\treturn destination\n}\n\nfunction deepmerge(target, source, options) {\n\toptions = options || {};\n\toptions.arrayMerge = options.arrayMerge || defaultArrayMerge;\n\toptions.isMergeableObject = options.isMergeableObject || isMergeableObject;\n\t// cloneUnlessOtherwiseSpecified is added to `options` so that custom arrayMerge()\n\t// implementations can use it. The caller may not replace it.\n\toptions.cloneUnlessOtherwiseSpecified = cloneUnlessOtherwiseSpecified;\n\n\tvar sourceIsArray = Array.isArray(source);\n\tvar targetIsArray = Array.isArray(target);\n\tvar sourceAndTargetTypesMatch = sourceIsArray === targetIsArray;\n\n\tif (!sourceAndTargetTypesMatch) {\n\t\treturn cloneUnlessOtherwiseSpecified(source, options)\n\t} else if (sourceIsArray) {\n\t\treturn options.arrayMerge(target, source, options)\n\t} else {\n\t\treturn mergeObject(target, source, options)\n\t}\n}\n\ndeepmerge.all = function deepmergeAll(array, options) {\n\tif (!Array.isArray(array)) {\n\t\tthrow new Error('first argument should be an array')\n\t}\n\n\treturn array.reduce(function(prev, next) {\n\t\treturn deepmerge(prev, next, options)\n\t}, {})\n};\n\nvar deepmerge_1 = deepmerge;\n\nmodule.exports = deepmerge_1;\n","/*\n Expose functions.\n*/\nmodule.exports =\n { toJalaali: toJalaali\n , toGregorian: toGregorian\n , isValidJalaaliDate: isValidJalaaliDate\n , isLeapJalaaliYear: isLeapJalaaliYear\n , jalaaliMonthLength: jalaaliMonthLength\n , jalCal: jalCal\n , j2d: j2d\n , d2j: d2j\n , g2d: g2d\n , d2g: d2g\n , jalaaliToDateObject: jalaaliToDateObject\n , jalaaliWeek: jalaaliWeek\n }\n\n/*\n Jalaali years starting the 33-year rule.\n*/\nvar breaks = [ -61, 9, 38, 199, 426, 686, 756, 818, 1111, 1181, 1210\n , 1635, 2060, 2097, 2192, 2262, 2324, 2394, 2456, 3178\n ]\n\n/*\n Converts a Gregorian date to Jalaali.\n*/\nfunction toJalaali(gy, gm, gd) {\n if (Object.prototype.toString.call(gy) === '[object Date]') {\n gd = gy.getDate()\n gm = gy.getMonth() + 1\n gy = gy.getFullYear()\n }\n return d2j(g2d(gy, gm, gd))\n}\n\n/*\n Converts a Jalaali date to Gregorian.\n*/\nfunction toGregorian(jy, jm, jd) {\n return d2g(j2d(jy, jm, jd))\n}\n\n/*\n Checks whether a Jalaali date is valid or not.\n*/\nfunction isValidJalaaliDate(jy, jm, jd) {\n return jy >= -61 && jy <= 3177 &&\n jm >= 1 && jm <= 12 &&\n jd >= 1 && jd <= jalaaliMonthLength(jy, jm)\n}\n\n/*\n Is this a leap year or not?\n*/\nfunction isLeapJalaaliYear(jy) {\n return jalCalLeap(jy) === 0\n}\n\n/*\n Number of days in a given month in a Jalaali year.\n*/\nfunction jalaaliMonthLength(jy, jm) {\n if (jm <= 6) return 31\n if (jm <= 11) return 30\n if (isLeapJalaaliYear(jy)) return 30\n return 29\n}\n\n/*\n This function determines if the Jalaali (Persian) year is\n leap (366-day long) or is the common year (365 days)\n\n @param jy Jalaali calendar year (-61 to 3177)\n @returns number of years since the last leap year (0 to 4)\n */\nfunction jalCalLeap(jy) {\n var bl = breaks.length\n , jp = breaks[0]\n , jm\n , jump\n , leap\n , n\n , i\n\n if (jy < jp || jy >= breaks[bl - 1])\n throw new Error('Invalid Jalaali year ' + jy)\n\n for (i = 1; i < bl; i += 1) {\n jm = breaks[i]\n jump = jm - jp\n if (jy < jm)\n break\n jp = jm\n }\n n = jy - jp\n\n if (jump - n < 6)\n n = n - jump + div(jump + 4, 33) * 33\n leap = mod(mod(n + 1, 33) - 1, 4)\n if (leap === -1) {\n leap = 4\n }\n\n return leap\n}\n\n/*\n This function determines if the Jalaali (Persian) year is\n leap (366-day long) or is the common year (365 days), and\n finds the day in March (Gregorian calendar) of the first\n day of the Jalaali year (jy).\n\n @param jy Jalaali calendar year (-61 to 3177)\n @param withoutLeap when don't need leap (true or false) default is false\n @return\n leap: number of years since the last leap year (0 to 4)\n gy: Gregorian year of the beginning of Jalaali year\n march: the March day of Farvardin the 1st (1st day of jy)\n @see: http://www.astro.uni.torun.pl/~kb/Papers/EMP/PersianC-EMP.htm\n @see: http://www.fourmilab.ch/documents/calendar/\n*/\nfunction jalCal(jy, withoutLeap) {\n var bl = breaks.length\n , gy = jy + 621\n , leapJ = -14\n , jp = breaks[0]\n , jm\n , jump\n , leap\n , leapG\n , march\n , n\n , i\n\n if (jy < jp || jy >= breaks[bl - 1])\n throw new Error('Invalid Jalaali year ' + jy)\n\n // Find the limiting years for the Jalaali year jy.\n for (i = 1; i < bl; i += 1) {\n jm = breaks[i]\n jump = jm - jp\n if (jy < jm)\n break\n leapJ = leapJ + div(jump, 33) * 8 + div(mod(jump, 33), 4)\n jp = jm\n }\n n = jy - jp\n\n // Find the number of leap years from AD 621 to the beginning\n // of the current Jalaali year in the Persian calendar.\n leapJ = leapJ + div(n, 33) * 8 + div(mod(n, 33) + 3, 4)\n if (mod(jump, 33) === 4 && jump - n === 4)\n leapJ += 1\n\n // And the same in the Gregorian calendar (until the year gy).\n leapG = div(gy, 4) - div((div(gy, 100) + 1) * 3, 4) - 150\n\n // Determine the Gregorian date of Farvardin the 1st.\n march = 20 + leapJ - leapG\n\n // return with gy and march when we don't need leap\n if (withoutLeap) return { gy: gy, march: march };\n\n\n // Find how many years have passed since the last leap year.\n if (jump - n < 6)\n n = n - jump + div(jump + 4, 33) * 33\n leap = mod(mod(n + 1, 33) - 1, 4)\n if (leap === -1) {\n leap = 4\n }\n\n return { leap: leap\n , gy: gy\n , march: march\n }\n}\n\n/*\n Converts a date of the Jalaali calendar to the Julian Day number.\n\n @param jy Jalaali year (1 to 3100)\n @param jm Jalaali month (1 to 12)\n @param jd Jalaali day (1 to 29/31)\n @return Julian Day number\n*/\nfunction j2d(jy, jm, jd) {\n var r = jalCal(jy, true)\n return g2d(r.gy, 3, r.march) + (jm - 1) * 31 - div(jm, 7) * (jm - 7) + jd - 1\n}\n\n/*\n Converts the Julian Day number to a date in the Jalaali calendar.\n\n @param jdn Julian Day number\n @return\n jy: Jalaali year (1 to 3100)\n jm: Jalaali month (1 to 12)\n jd: Jalaali day (1 to 29/31)\n*/\nfunction d2j(jdn) {\n var gy = d2g(jdn).gy // Calculate Gregorian year (gy).\n , jy = gy - 621\n , r = jalCal(jy, false)\n , jdn1f = g2d(gy, 3, r.march)\n , jd\n , jm\n , k\n\n // Find number of days that passed since 1 Farvardin.\n k = jdn - jdn1f\n if (k >= 0) {\n if (k <= 185) {\n // The first 6 months.\n jm = 1 + div(k, 31)\n jd = mod(k, 31) + 1\n return { jy: jy\n , jm: jm\n , jd: jd\n }\n } else {\n // The remaining months.\n k -= 186\n }\n } else {\n // Previous Jalaali year.\n jy -= 1\n k += 179\n if (r.leap === 1)\n k += 1\n }\n jm = 7 + div(k, 30)\n jd = mod(k, 30) + 1\n return { jy: jy\n , jm: jm\n , jd: jd\n }\n}\n\n/*\n Calculates the Julian Day number from Gregorian or Julian\n calendar dates. This integer number corresponds to the noon of\n the date (i.e. 12 hours of Universal Time).\n The procedure was tested to be good since 1 March, -100100 (of both\n calendars) up to a few million years into the future.\n\n @param gy Calendar year (years BC numbered 0, -1, -2, ...)\n @param gm Calendar month (1 to 12)\n @param gd Calendar day of the month (1 to 28/29/30/31)\n @return Julian Day number\n*/\nfunction g2d(gy, gm, gd) {\n var d = div((gy + div(gm - 8, 6) + 100100) * 1461, 4)\n + div(153 * mod(gm + 9, 12) + 2, 5)\n + gd - 34840408\n d = d - div(div(gy + 100100 + div(gm - 8, 6), 100) * 3, 4) + 752\n return d\n}\n\n/*\n Calculates Gregorian and Julian calendar dates from the Julian Day number\n (jdn) for the period since jdn=-34839655 (i.e. the year -100100 of both\n calendars) to some millions years ahead of the present.\n\n @param jdn Julian Day number\n @return\n gy: Calendar year (years BC numbered 0, -1, -2, ...)\n gm: Calendar month (1 to 12)\n gd: Calendar day of the month M (1 to 28/29/30/31)\n*/\nfunction d2g(jdn) {\n var j\n , i\n , gd\n , gm\n , gy\n j = 4 * jdn + 139361631\n j = j + div(div(4 * jdn + 183187720, 146097) * 3, 4) * 4 - 3908\n i = div(mod(j, 1461), 4) * 5 + 308\n gd = div(mod(i, 153), 5) + 1\n gm = mod(div(i, 153), 12) + 1\n gy = div(j, 1461) - 100100 + div(8 - gm, 6)\n return { gy: gy\n , gm: gm\n , gd: gd\n }\n}\n\n/**\n * Return Saturday and Friday day of current week(week start in Saturday)\n * @param {number} jy jalaali year\n * @param {number} jm jalaali month\n * @param {number} jd jalaali day\n * @returns Saturday and Friday of current week\n */\nfunction jalaaliWeek(jy, jm, jd) {\n var dayOfWeek = jalaaliToDateObject(jy, jm, jd).getDay();\n\n var startDayDifference = dayOfWeek == 6 ? 0 : -(dayOfWeek+1);\n var endDayDifference = 6+startDayDifference;\n\n return {\n saturday: d2j(j2d(jy, jm, jd+startDayDifference)),\n friday: d2j(j2d(jy, jm, jd+endDayDifference))\n }\n}\n\n/**\n * Convert Jalaali calendar dates to javascript Date object\n * @param {number} jy jalaali year\n * @param {number} jm jalaali month\n * @param {number} jd jalaali day\n * @param {number} [h] hours\n * @param {number} [m] minutes\n * @param {number} [s] seconds\n * @param {number} [ms] milliseconds\n * @returns Date object of the jalaali calendar dates\n */\nfunction jalaaliToDateObject(\n jy,\n jm,\n jd,\n h,\n m,\n s,\n ms\n) {\n var gregorianCalenderDate = toGregorian(jy, jm, jd);\n\n return new Date(\n gregorianCalenderDate.gy,\n gregorianCalenderDate.gm - 1,\n gregorianCalenderDate.gd,\n h || 0,\n m || 0,\n s || 0,\n ms || 0\n );\n}\n\n/*\n Utility helper functions.\n*/\n\nfunction div(a, b) {\n return ~~(a / b)\n}\n\nfunction mod(a, b) {\n return a - ~~(a / b) * b\n}\n","var moment = module.exports = require(\"./moment-timezone\");\nmoment.tz.load(require('./data/packed/latest.json'));\n","//! moment-timezone.js\n//! version : 0.5.39\n//! Copyright (c) JS Foundation and other contributors\n//! license : MIT\n//! github.com/moment/moment-timezone\n\n(function (root, factory) {\n\t\"use strict\";\n\n\t/*global define*/\n\tif (typeof module === 'object' && module.exports) {\n\t\tmodule.exports = factory(require('moment')); // Node\n\t} else if (typeof define === 'function' && define.amd) {\n\t\tdefine(['moment'], factory); // AMD\n\t} else {\n\t\tfactory(root.moment); // Browser\n\t}\n}(this, function (moment) {\n\t\"use strict\";\n\n\t// Resolves es6 module loading issue\n\tif (moment.version === undefined && moment.default) {\n\t\tmoment = moment.default;\n\t}\n\n\t// Do not load moment-timezone a second time.\n\t// if (moment.tz !== undefined) {\n\t// \tlogError('Moment Timezone ' + moment.tz.version + ' was already loaded ' + (moment.tz.dataVersion ? 'with data from ' : 'without any data') + moment.tz.dataVersion);\n\t// \treturn moment;\n\t// }\n\n\tvar VERSION = \"0.5.39\",\n\t\tzones = {},\n\t\tlinks = {},\n\t\tcountries = {},\n\t\tnames = {},\n\t\tguesses = {},\n\t\tcachedGuess;\n\n\tif (!moment || typeof moment.version !== 'string') {\n\t\tlogError('Moment Timezone requires Moment.js. See https://momentjs.com/timezone/docs/#/use-it/browser/');\n\t}\n\n\tvar momentVersion = moment.version.split('.'),\n\t\tmajor = +momentVersion[0],\n\t\tminor = +momentVersion[1];\n\n\t// Moment.js version check\n\tif (major < 2 || (major === 2 && minor < 6)) {\n\t\tlogError('Moment Timezone requires Moment.js >= 2.6.0. You are using Moment.js ' + moment.version + '. See momentjs.com');\n\t}\n\n\t/************************************\n\t\tUnpacking\n\t************************************/\n\n\tfunction charCodeToInt(charCode) {\n\t\tif (charCode > 96) {\n\t\t\treturn charCode - 87;\n\t\t} else if (charCode > 64) {\n\t\t\treturn charCode - 29;\n\t\t}\n\t\treturn charCode - 48;\n\t}\n\n\tfunction unpackBase60(string) {\n\t\tvar i = 0,\n\t\t\tparts = string.split('.'),\n\t\t\twhole = parts[0],\n\t\t\tfractional = parts[1] || '',\n\t\t\tmultiplier = 1,\n\t\t\tnum,\n\t\t\tout = 0,\n\t\t\tsign = 1;\n\n\t\t// handle negative numbers\n\t\tif (string.charCodeAt(0) === 45) {\n\t\t\ti = 1;\n\t\t\tsign = -1;\n\t\t}\n\n\t\t// handle digits before the decimal\n\t\tfor (i; i < whole.length; i++) {\n\t\t\tnum = charCodeToInt(whole.charCodeAt(i));\n\t\t\tout = 60 * out + num;\n\t\t}\n\n\t\t// handle digits after the decimal\n\t\tfor (i = 0; i < fractional.length; i++) {\n\t\t\tmultiplier = multiplier / 60;\n\t\t\tnum = charCodeToInt(fractional.charCodeAt(i));\n\t\t\tout += num * multiplier;\n\t\t}\n\n\t\treturn out * sign;\n\t}\n\n\tfunction arrayToInt (array) {\n\t\tfor (var i = 0; i < array.length; i++) {\n\t\t\tarray[i] = unpackBase60(array[i]);\n\t\t}\n\t}\n\n\tfunction intToUntil (array, length) {\n\t\tfor (var i = 0; i < length; i++) {\n\t\t\tarray[i] = Math.round((array[i - 1] || 0) + (array[i] * 60000)); // minutes to milliseconds\n\t\t}\n\n\t\tarray[length - 1] = Infinity;\n\t}\n\n\tfunction mapIndices (source, indices) {\n\t\tvar out = [], i;\n\n\t\tfor (i = 0; i < indices.length; i++) {\n\t\t\tout[i] = source[indices[i]];\n\t\t}\n\n\t\treturn out;\n\t}\n\n\tfunction unpack (string) {\n\t\tvar data = string.split('|'),\n\t\t\toffsets = data[2].split(' '),\n\t\t\tindices = data[3].split(''),\n\t\t\tuntils = data[4].split(' ');\n\n\t\tarrayToInt(offsets);\n\t\tarrayToInt(indices);\n\t\tarrayToInt(untils);\n\n\t\tintToUntil(untils, indices.length);\n\n\t\treturn {\n\t\t\tname : data[0],\n\t\t\tabbrs : mapIndices(data[1].split(' '), indices),\n\t\t\toffsets : mapIndices(offsets, indices),\n\t\t\tuntils : untils,\n\t\t\tpopulation : data[5] | 0\n\t\t};\n\t}\n\n\t/************************************\n\t\tZone object\n\t************************************/\n\n\tfunction Zone (packedString) {\n\t\tif (packedString) {\n\t\t\tthis._set(unpack(packedString));\n\t\t}\n\t}\n\n\tZone.prototype = {\n\t\t_set : function (unpacked) {\n\t\t\tthis.name = unpacked.name;\n\t\t\tthis.abbrs = unpacked.abbrs;\n\t\t\tthis.untils = unpacked.untils;\n\t\t\tthis.offsets = unpacked.offsets;\n\t\t\tthis.population = unpacked.population;\n\t\t},\n\n\t\t_index : function (timestamp) {\n\t\t\tvar target = +timestamp,\n\t\t\t\tuntils = this.untils,\n\t\t\t\ti;\n\n\t\t\tfor (i = 0; i < untils.length; i++) {\n\t\t\t\tif (target < untils[i]) {\n\t\t\t\t\treturn i;\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\n\t\tcountries : function () {\n\t\t\tvar zone_name = this.name;\n\t\t\treturn Object.keys(countries).filter(function (country_code) {\n\t\t\t\treturn countries[country_code].zones.indexOf(zone_name) !== -1;\n\t\t\t});\n\t\t},\n\n\t\tparse : function (timestamp) {\n\t\t\tvar target = +timestamp,\n\t\t\t\toffsets = this.offsets,\n\t\t\t\tuntils = this.untils,\n\t\t\t\tmax = untils.length - 1,\n\t\t\t\toffset, offsetNext, offsetPrev, i;\n\n\t\t\tfor (i = 0; i < max; i++) {\n\t\t\t\toffset = offsets[i];\n\t\t\t\toffsetNext = offsets[i + 1];\n\t\t\t\toffsetPrev = offsets[i ? i - 1 : i];\n\n\t\t\t\tif (offset < offsetNext && tz.moveAmbiguousForward) {\n\t\t\t\t\toffset = offsetNext;\n\t\t\t\t} else if (offset > offsetPrev && tz.moveInvalidForward) {\n\t\t\t\t\toffset = offsetPrev;\n\t\t\t\t}\n\n\t\t\t\tif (target < untils[i] - (offset * 60000)) {\n\t\t\t\t\treturn offsets[i];\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn offsets[max];\n\t\t},\n\n\t\tabbr : function (mom) {\n\t\t\treturn this.abbrs[this._index(mom)];\n\t\t},\n\n\t\toffset : function (mom) {\n\t\t\tlogError(\"zone.offset has been deprecated in favor of zone.utcOffset\");\n\t\t\treturn this.offsets[this._index(mom)];\n\t\t},\n\n\t\tutcOffset : function (mom) {\n\t\t\treturn this.offsets[this._index(mom)];\n\t\t}\n\t};\n\n\t/************************************\n\t\tCountry object\n\t************************************/\n\n\tfunction Country (country_name, zone_names) {\n\t\tthis.name = country_name;\n\t\tthis.zones = zone_names;\n\t}\n\n\t/************************************\n\t\tCurrent Timezone\n\t************************************/\n\n\tfunction OffsetAt(at) {\n\t\tvar timeString = at.toTimeString();\n\t\tvar abbr = timeString.match(/\\([a-z ]+\\)/i);\n\t\tif (abbr && abbr[0]) {\n\t\t\t// 17:56:31 GMT-0600 (CST)\n\t\t\t// 17:56:31 GMT-0600 (Central Standard Time)\n\t\t\tabbr = abbr[0].match(/[A-Z]/g);\n\t\t\tabbr = abbr ? abbr.join('') : undefined;\n\t\t} else {\n\t\t\t// 17:56:31 CST\n\t\t\t// 17:56:31 GMT+0800 (台北標準時間)\n\t\t\tabbr = timeString.match(/[A-Z]{3,5}/g);\n\t\t\tabbr = abbr ? abbr[0] : undefined;\n\t\t}\n\n\t\tif (abbr === 'GMT') {\n\t\t\tabbr = undefined;\n\t\t}\n\n\t\tthis.at = +at;\n\t\tthis.abbr = abbr;\n\t\tthis.offset = at.getTimezoneOffset();\n\t}\n\n\tfunction ZoneScore(zone) {\n\t\tthis.zone = zone;\n\t\tthis.offsetScore = 0;\n\t\tthis.abbrScore = 0;\n\t}\n\n\tZoneScore.prototype.scoreOffsetAt = function (offsetAt) {\n\t\tthis.offsetScore += Math.abs(this.zone.utcOffset(offsetAt.at) - offsetAt.offset);\n\t\tif (this.zone.abbr(offsetAt.at).replace(/[^A-Z]/g, '') !== offsetAt.abbr) {\n\t\t\tthis.abbrScore++;\n\t\t}\n\t};\n\n\tfunction findChange(low, high) {\n\t\tvar mid, diff;\n\n\t\twhile ((diff = ((high.at - low.at) / 12e4 | 0) * 6e4)) {\n\t\t\tmid = new OffsetAt(new Date(low.at + diff));\n\t\t\tif (mid.offset === low.offset) {\n\t\t\t\tlow = mid;\n\t\t\t} else {\n\t\t\t\thigh = mid;\n\t\t\t}\n\t\t}\n\n\t\treturn low;\n\t}\n\n\tfunction userOffsets() {\n\t\tvar startYear = new Date().getFullYear() - 2,\n\t\t\tlast = new OffsetAt(new Date(startYear, 0, 1)),\n\t\t\toffsets = [last],\n\t\t\tchange, next, i;\n\n\t\tfor (i = 1; i < 48; i++) {\n\t\t\tnext = new OffsetAt(new Date(startYear, i, 1));\n\t\t\tif (next.offset !== last.offset) {\n\t\t\t\tchange = findChange(last, next);\n\t\t\t\toffsets.push(change);\n\t\t\t\toffsets.push(new OffsetAt(new Date(change.at + 6e4)));\n\t\t\t}\n\t\t\tlast = next;\n\t\t}\n\n\t\tfor (i = 0; i < 4; i++) {\n\t\t\toffsets.push(new OffsetAt(new Date(startYear + i, 0, 1)));\n\t\t\toffsets.push(new OffsetAt(new Date(startYear + i, 6, 1)));\n\t\t}\n\n\t\treturn offsets;\n\t}\n\n\tfunction sortZoneScores (a, b) {\n\t\tif (a.offsetScore !== b.offsetScore) {\n\t\t\treturn a.offsetScore - b.offsetScore;\n\t\t}\n\t\tif (a.abbrScore !== b.abbrScore) {\n\t\t\treturn a.abbrScore - b.abbrScore;\n\t\t}\n\t\tif (a.zone.population !== b.zone.population) {\n\t\t\treturn b.zone.population - a.zone.population;\n\t\t}\n\t\treturn b.zone.name.localeCompare(a.zone.name);\n\t}\n\n\tfunction addToGuesses (name, offsets) {\n\t\tvar i, offset;\n\t\tarrayToInt(offsets);\n\t\tfor (i = 0; i < offsets.length; i++) {\n\t\t\toffset = offsets[i];\n\t\t\tguesses[offset] = guesses[offset] || {};\n\t\t\tguesses[offset][name] = true;\n\t\t}\n\t}\n\n\tfunction guessesForUserOffsets (offsets) {\n\t\tvar offsetsLength = offsets.length,\n\t\t\tfilteredGuesses = {},\n\t\t\tout = [],\n\t\t\ti, j, guessesOffset;\n\n\t\tfor (i = 0; i < offsetsLength; i++) {\n\t\t\tguessesOffset = guesses[offsets[i].offset] || {};\n\t\t\tfor (j in guessesOffset) {\n\t\t\t\tif (guessesOffset.hasOwnProperty(j)) {\n\t\t\t\t\tfilteredGuesses[j] = true;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tfor (i in filteredGuesses) {\n\t\t\tif (filteredGuesses.hasOwnProperty(i)) {\n\t\t\t\tout.push(names[i]);\n\t\t\t}\n\t\t}\n\n\t\treturn out;\n\t}\n\n\tfunction rebuildGuess () {\n\n\t\t// use Intl API when available and returning valid time zone\n\t\ttry {\n\t\t\tvar intlName = Intl.DateTimeFormat().resolvedOptions().timeZone;\n\t\t\tif (intlName && intlName.length > 3) {\n\t\t\t\tvar name = names[normalizeName(intlName)];\n\t\t\t\tif (name) {\n\t\t\t\t\treturn name;\n\t\t\t\t}\n\t\t\t\tlogError(\"Moment Timezone found \" + intlName + \" from the Intl api, but did not have that data loaded.\");\n\t\t\t}\n\t\t} catch (e) {\n\t\t\t// Intl unavailable, fall back to manual guessing.\n\t\t}\n\n\t\tvar offsets = userOffsets(),\n\t\t\toffsetsLength = offsets.length,\n\t\t\tguesses = guessesForUserOffsets(offsets),\n\t\t\tzoneScores = [],\n\t\t\tzoneScore, i, j;\n\n\t\tfor (i = 0; i < guesses.length; i++) {\n\t\t\tzoneScore = new ZoneScore(getZone(guesses[i]), offsetsLength);\n\t\t\tfor (j = 0; j < offsetsLength; j++) {\n\t\t\t\tzoneScore.scoreOffsetAt(offsets[j]);\n\t\t\t}\n\t\t\tzoneScores.push(zoneScore);\n\t\t}\n\n\t\tzoneScores.sort(sortZoneScores);\n\n\t\treturn zoneScores.length > 0 ? zoneScores[0].zone.name : undefined;\n\t}\n\n\tfunction guess (ignoreCache) {\n\t\tif (!cachedGuess || ignoreCache) {\n\t\t\tcachedGuess = rebuildGuess();\n\t\t}\n\t\treturn cachedGuess;\n\t}\n\n\t/************************************\n\t\tGlobal Methods\n\t************************************/\n\n\tfunction normalizeName (name) {\n\t\treturn (name || '').toLowerCase().replace(/\\//g, '_');\n\t}\n\n\tfunction addZone (packed) {\n\t\tvar i, name, split, normalized;\n\n\t\tif (typeof packed === \"string\") {\n\t\t\tpacked = [packed];\n\t\t}\n\n\t\tfor (i = 0; i < packed.length; i++) {\n\t\t\tsplit = packed[i].split('|');\n\t\t\tname = split[0];\n\t\t\tnormalized = normalizeName(name);\n\t\t\tzones[normalized] = packed[i];\n\t\t\tnames[normalized] = name;\n\t\t\taddToGuesses(normalized, split[2].split(' '));\n\t\t}\n\t}\n\n\tfunction getZone (name, caller) {\n\n\t\tname = normalizeName(name);\n\n\t\tvar zone = zones[name];\n\t\tvar link;\n\n\t\tif (zone instanceof Zone) {\n\t\t\treturn zone;\n\t\t}\n\n\t\tif (typeof zone === 'string') {\n\t\t\tzone = new Zone(zone);\n\t\t\tzones[name] = zone;\n\t\t\treturn zone;\n\t\t}\n\n\t\t// Pass getZone to prevent recursion more than 1 level deep\n\t\tif (links[name] && caller !== getZone && (link = getZone(links[name], getZone))) {\n\t\t\tzone = zones[name] = new Zone();\n\t\t\tzone._set(link);\n\t\t\tzone.name = names[name];\n\t\t\treturn zone;\n\t\t}\n\n\t\treturn null;\n\t}\n\n\tfunction getNames () {\n\t\tvar i, out = [];\n\n\t\tfor (i in names) {\n\t\t\tif (names.hasOwnProperty(i) && (zones[i] || zones[links[i]]) && names[i]) {\n\t\t\t\tout.push(names[i]);\n\t\t\t}\n\t\t}\n\n\t\treturn out.sort();\n\t}\n\n\tfunction getCountryNames () {\n\t\treturn Object.keys(countries);\n\t}\n\n\tfunction addLink (aliases) {\n\t\tvar i, alias, normal0, normal1;\n\n\t\tif (typeof aliases === \"string\") {\n\t\t\taliases = [aliases];\n\t\t}\n\n\t\tfor (i = 0; i < aliases.length; i++) {\n\t\t\talias = aliases[i].split('|');\n\n\t\t\tnormal0 = normalizeName(alias[0]);\n\t\t\tnormal1 = normalizeName(alias[1]);\n\n\t\t\tlinks[normal0] = normal1;\n\t\t\tnames[normal0] = alias[0];\n\n\t\t\tlinks[normal1] = normal0;\n\t\t\tnames[normal1] = alias[1];\n\t\t}\n\t}\n\n\tfunction addCountries (data) {\n\t\tvar i, country_code, country_zones, split;\n\t\tif (!data || !data.length) return;\n\t\tfor (i = 0; i < data.length; i++) {\n\t\t\tsplit = data[i].split('|');\n\t\t\tcountry_code = split[0].toUpperCase();\n\t\t\tcountry_zones = split[1].split(' ');\n\t\t\tcountries[country_code] = new Country(\n\t\t\t\tcountry_code,\n\t\t\t\tcountry_zones\n\t\t\t);\n\t\t}\n\t}\n\n\tfunction getCountry (name) {\n\t\tname = name.toUpperCase();\n\t\treturn countries[name] || null;\n\t}\n\n\tfunction zonesForCountry(country, with_offset) {\n\t\tcountry = getCountry(country);\n\n\t\tif (!country) return null;\n\n\t\tvar zones = country.zones.sort();\n\n\t\tif (with_offset) {\n\t\t\treturn zones.map(function (zone_name) {\n\t\t\t\tvar zone = getZone(zone_name);\n\t\t\t\treturn {\n\t\t\t\t\tname: zone_name,\n\t\t\t\t\toffset: zone.utcOffset(new Date())\n\t\t\t\t};\n\t\t\t});\n\t\t}\n\n\t\treturn zones;\n\t}\n\n\tfunction loadData (data) {\n\t\taddZone(data.zones);\n\t\taddLink(data.links);\n\t\taddCountries(data.countries);\n\t\ttz.dataVersion = data.version;\n\t}\n\n\tfunction zoneExists (name) {\n\t\tif (!zoneExists.didShowError) {\n\t\t\tzoneExists.didShowError = true;\n\t\t\t\tlogError(\"moment.tz.zoneExists('\" + name + \"') has been deprecated in favor of !moment.tz.zone('\" + name + \"')\");\n\t\t}\n\t\treturn !!getZone(name);\n\t}\n\n\tfunction needsOffset (m) {\n\t\tvar isUnixTimestamp = (m._f === 'X' || m._f === 'x');\n\t\treturn !!(m._a && (m._tzm === undefined) && !isUnixTimestamp);\n\t}\n\n\tfunction logError (message) {\n\t\tif (typeof console !== 'undefined' && typeof console.error === 'function') {\n\t\t\tconsole.error(message);\n\t\t}\n\t}\n\n\t/************************************\n\t\tmoment.tz namespace\n\t************************************/\n\n\tfunction tz (input) {\n\t\tvar args = Array.prototype.slice.call(arguments, 0, -1),\n\t\t\tname = arguments[arguments.length - 1],\n\t\t\tzone = getZone(name),\n\t\t\tout = moment.utc.apply(null, args);\n\n\t\tif (zone && !moment.isMoment(input) && needsOffset(out)) {\n\t\t\tout.add(zone.parse(out), 'minutes');\n\t\t}\n\n\t\tout.tz(name);\n\n\t\treturn out;\n\t}\n\n\ttz.version = VERSION;\n\ttz.dataVersion = '';\n\ttz._zones = zones;\n\ttz._links = links;\n\ttz._names = names;\n\ttz._countries\t= countries;\n\ttz.add = addZone;\n\ttz.link = addLink;\n\ttz.load = loadData;\n\ttz.zone = getZone;\n\ttz.zoneExists = zoneExists; // deprecated in 0.1.0\n\ttz.guess = guess;\n\ttz.names = getNames;\n\ttz.Zone = Zone;\n\ttz.unpack = unpack;\n\ttz.unpackBase60 = unpackBase60;\n\ttz.needsOffset = needsOffset;\n\ttz.moveInvalidForward = true;\n\ttz.moveAmbiguousForward = false;\n\ttz.countries = getCountryNames;\n\ttz.zonesForCountry = zonesForCountry;\n\n\t/************************************\n\t\tInterface with Moment.js\n\t************************************/\n\n\tvar fn = moment.fn;\n\n\tmoment.tz = tz;\n\n\tmoment.defaultZone = null;\n\n\tmoment.updateOffset = function (mom, keepTime) {\n\t\tvar zone = moment.defaultZone,\n\t\t\toffset;\n\n\t\tif (mom._z === undefined) {\n\t\t\tif (zone && needsOffset(mom) && !mom._isUTC) {\n\t\t\t\tmom._d = moment.utc(mom._a)._d;\n\t\t\t\tmom.utc().add(zone.parse(mom), 'minutes');\n\t\t\t}\n\t\t\tmom._z = zone;\n\t\t}\n\t\tif (mom._z) {\n\t\t\toffset = mom._z.utcOffset(mom);\n\t\t\tif (Math.abs(offset) < 16) {\n\t\t\t\toffset = offset / 60;\n\t\t\t}\n\t\t\tif (mom.utcOffset !== undefined) {\n\t\t\t\tvar z = mom._z;\n\t\t\t\tmom.utcOffset(-offset, keepTime);\n\t\t\t\tmom._z = z;\n\t\t\t} else {\n\t\t\t\tmom.zone(offset, keepTime);\n\t\t\t}\n\t\t}\n\t};\n\n\tfn.tz = function (name, keepTime) {\n\t\tif (name) {\n\t\t\tif (typeof name !== 'string') {\n\t\t\t\tthrow new Error('Time zone name must be a string, got ' + name + ' [' + typeof name + ']');\n\t\t\t}\n\t\t\tthis._z = getZone(name);\n\t\t\tif (this._z) {\n\t\t\t\tmoment.updateOffset(this, keepTime);\n\t\t\t} else {\n\t\t\t\tlogError(\"Moment Timezone has no data for \" + name + \". See http://momentjs.com/timezone/docs/#/data-loading/.\");\n\t\t\t}\n\t\t\treturn this;\n\t\t}\n\t\tif (this._z) { return this._z.name; }\n\t};\n\n\tfunction abbrWrap (old) {\n\t\treturn function () {\n\t\t\tif (this._z) { return this._z.abbr(this); }\n\t\t\treturn old.call(this);\n\t\t};\n\t}\n\n\tfunction resetZoneWrap (old) {\n\t\treturn function () {\n\t\t\tthis._z = null;\n\t\t\treturn old.apply(this, arguments);\n\t\t};\n\t}\n\n\tfunction resetZoneWrap2 (old) {\n\t\treturn function () {\n\t\t\tif (arguments.length > 0) this._z = null;\n\t\t\treturn old.apply(this, arguments);\n\t\t};\n\t}\n\n\tfn.zoneName = abbrWrap(fn.zoneName);\n\tfn.zoneAbbr = abbrWrap(fn.zoneAbbr);\n\tfn.utc = resetZoneWrap(fn.utc);\n\tfn.local = resetZoneWrap(fn.local);\n\tfn.utcOffset = resetZoneWrap2(fn.utcOffset);\n\n\tmoment.tz.setDefault = function(name) {\n\t\tif (major < 2 || (major === 2 && minor < 9)) {\n\t\t\tlogError('Moment Timezone setDefault() requires Moment.js >= 2.9.0. You are using Moment.js ' + moment.version + '.');\n\t\t}\n\t\tmoment.defaultZone = name ? getZone(name) : null;\n\t\treturn moment;\n\t};\n\n\t// Cloning a moment should include the _z property.\n\tvar momentProperties = moment.momentProperties;\n\tif (Object.prototype.toString.call(momentProperties) === '[object Array]') {\n\t\t// moment 2.8.1+\n\t\tmomentProperties.push('_z');\n\t\tmomentProperties.push('_a');\n\t} else if (momentProperties) {\n\t\t// moment 2.7.0\n\t\tmomentProperties._z = null;\n\t}\n\n\t// INJECT DATA\n\n\treturn moment;\n}));\n","//! moment.js\n//! version : 2.29.4\n//! authors : Tim Wood, Iskren Chernev, Moment.js contributors\n//! license : MIT\n//! momentjs.com\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :\n typeof define === 'function' && define.amd ? define(factory) :\n global.moment = factory()\n}(this, (function () { 'use strict';\n\n var hookCallback;\n\n function hooks() {\n return hookCallback.apply(null, arguments);\n }\n\n // This is done to register the method called with moment()\n // without creating circular dependencies.\n function setHookCallback(callback) {\n hookCallback = callback;\n }\n\n function isArray(input) {\n return (\n input instanceof Array ||\n Object.prototype.toString.call(input) === '[object Array]'\n );\n }\n\n function isObject(input) {\n // IE8 will treat undefined and null as object if it wasn't for\n // input != null\n return (\n input != null &&\n Object.prototype.toString.call(input) === '[object Object]'\n );\n }\n\n function hasOwnProp(a, b) {\n return Object.prototype.hasOwnProperty.call(a, b);\n }\n\n function isObjectEmpty(obj) {\n if (Object.getOwnPropertyNames) {\n return Object.getOwnPropertyNames(obj).length === 0;\n } else {\n var k;\n for (k in obj) {\n if (hasOwnProp(obj, k)) {\n return false;\n }\n }\n return true;\n }\n }\n\n function isUndefined(input) {\n return input === void 0;\n }\n\n function isNumber(input) {\n return (\n typeof input === 'number' ||\n Object.prototype.toString.call(input) === '[object Number]'\n );\n }\n\n function isDate(input) {\n return (\n input instanceof Date ||\n Object.prototype.toString.call(input) === '[object Date]'\n );\n }\n\n function map(arr, fn) {\n var res = [],\n i,\n arrLen = arr.length;\n for (i = 0; i < arrLen; ++i) {\n res.push(fn(arr[i], i));\n }\n return res;\n }\n\n function extend(a, b) {\n for (var i in b) {\n if (hasOwnProp(b, i)) {\n a[i] = b[i];\n }\n }\n\n if (hasOwnProp(b, 'toString')) {\n a.toString = b.toString;\n }\n\n if (hasOwnProp(b, 'valueOf')) {\n a.valueOf = b.valueOf;\n }\n\n return a;\n }\n\n function createUTC(input, format, locale, strict) {\n return createLocalOrUTC(input, format, locale, strict, true).utc();\n }\n\n function defaultParsingFlags() {\n // We need to deep clone this object.\n return {\n empty: false,\n unusedTokens: [],\n unusedInput: [],\n overflow: -2,\n charsLeftOver: 0,\n nullInput: false,\n invalidEra: null,\n invalidMonth: null,\n invalidFormat: false,\n userInvalidated: false,\n iso: false,\n parsedDateParts: [],\n era: null,\n meridiem: null,\n rfc2822: false,\n weekdayMismatch: false,\n };\n }\n\n function getParsingFlags(m) {\n if (m._pf == null) {\n m._pf = defaultParsingFlags();\n }\n return m._pf;\n }\n\n var some;\n if (Array.prototype.some) {\n some = Array.prototype.some;\n } else {\n some = function (fun) {\n var t = Object(this),\n len = t.length >>> 0,\n i;\n\n for (i = 0; i < len; i++) {\n if (i in t && fun.call(this, t[i], i, t)) {\n return true;\n }\n }\n\n return false;\n };\n }\n\n function isValid(m) {\n if (m._isValid == null) {\n var flags = getParsingFlags(m),\n parsedParts = some.call(flags.parsedDateParts, function (i) {\n return i != null;\n }),\n isNowValid =\n !isNaN(m._d.getTime()) &&\n flags.overflow < 0 &&\n !flags.empty &&\n !flags.invalidEra &&\n !flags.invalidMonth &&\n !flags.invalidWeekday &&\n !flags.weekdayMismatch &&\n !flags.nullInput &&\n !flags.invalidFormat &&\n !flags.userInvalidated &&\n (!flags.meridiem || (flags.meridiem && parsedParts));\n\n if (m._strict) {\n isNowValid =\n isNowValid &&\n flags.charsLeftOver === 0 &&\n flags.unusedTokens.length === 0 &&\n flags.bigHour === undefined;\n }\n\n if (Object.isFrozen == null || !Object.isFrozen(m)) {\n m._isValid = isNowValid;\n } else {\n return isNowValid;\n }\n }\n return m._isValid;\n }\n\n function createInvalid(flags) {\n var m = createUTC(NaN);\n if (flags != null) {\n extend(getParsingFlags(m), flags);\n } else {\n getParsingFlags(m).userInvalidated = true;\n }\n\n return m;\n }\n\n // Plugins that add properties should also add the key here (null value),\n // so we can properly clone ourselves.\n var momentProperties = (hooks.momentProperties = []),\n updateInProgress = false;\n\n function copyConfig(to, from) {\n var i,\n prop,\n val,\n momentPropertiesLen = momentProperties.length;\n\n if (!isUndefined(from._isAMomentObject)) {\n to._isAMomentObject = from._isAMomentObject;\n }\n if (!isUndefined(from._i)) {\n to._i = from._i;\n }\n if (!isUndefined(from._f)) {\n to._f = from._f;\n }\n if (!isUndefined(from._l)) {\n to._l = from._l;\n }\n if (!isUndefined(from._strict)) {\n to._strict = from._strict;\n }\n if (!isUndefined(from._tzm)) {\n to._tzm = from._tzm;\n }\n if (!isUndefined(from._isUTC)) {\n to._isUTC = from._isUTC;\n }\n if (!isUndefined(from._offset)) {\n to._offset = from._offset;\n }\n if (!isUndefined(from._pf)) {\n to._pf = getParsingFlags(from);\n }\n if (!isUndefined(from._locale)) {\n to._locale = from._locale;\n }\n\n if (momentPropertiesLen > 0) {\n for (i = 0; i < momentPropertiesLen; i++) {\n prop = momentProperties[i];\n val = from[prop];\n if (!isUndefined(val)) {\n to[prop] = val;\n }\n }\n }\n\n return to;\n }\n\n // Moment prototype object\n function Moment(config) {\n copyConfig(this, config);\n this._d = new Date(config._d != null ? config._d.getTime() : NaN);\n if (!this.isValid()) {\n this._d = new Date(NaN);\n }\n // Prevent infinite loop in case updateOffset creates new moment\n // objects.\n if (updateInProgress === false) {\n updateInProgress = true;\n hooks.updateOffset(this);\n updateInProgress = false;\n }\n }\n\n function isMoment(obj) {\n return (\n obj instanceof Moment || (obj != null && obj._isAMomentObject != null)\n );\n }\n\n function warn(msg) {\n if (\n hooks.suppressDeprecationWarnings === false &&\n typeof console !== 'undefined' &&\n console.warn\n ) {\n console.warn('Deprecation warning: ' + msg);\n }\n }\n\n function deprecate(msg, fn) {\n var firstTime = true;\n\n return extend(function () {\n if (hooks.deprecationHandler != null) {\n hooks.deprecationHandler(null, msg);\n }\n if (firstTime) {\n var args = [],\n arg,\n i,\n key,\n argLen = arguments.length;\n for (i = 0; i < argLen; i++) {\n arg = '';\n if (typeof arguments[i] === 'object') {\n arg += '\\n[' + i + '] ';\n for (key in arguments[0]) {\n if (hasOwnProp(arguments[0], key)) {\n arg += key + ': ' + arguments[0][key] + ', ';\n }\n }\n arg = arg.slice(0, -2); // Remove trailing comma and space\n } else {\n arg = arguments[i];\n }\n args.push(arg);\n }\n warn(\n msg +\n '\\nArguments: ' +\n Array.prototype.slice.call(args).join('') +\n '\\n' +\n new Error().stack\n );\n firstTime = false;\n }\n return fn.apply(this, arguments);\n }, fn);\n }\n\n var deprecations = {};\n\n function deprecateSimple(name, msg) {\n if (hooks.deprecationHandler != null) {\n hooks.deprecationHandler(name, msg);\n }\n if (!deprecations[name]) {\n warn(msg);\n deprecations[name] = true;\n }\n }\n\n hooks.suppressDeprecationWarnings = false;\n hooks.deprecationHandler = null;\n\n function isFunction(input) {\n return (\n (typeof Function !== 'undefined' && input instanceof Function) ||\n Object.prototype.toString.call(input) === '[object Function]'\n );\n }\n\n function set(config) {\n var prop, i;\n for (i in config) {\n if (hasOwnProp(config, i)) {\n prop = config[i];\n if (isFunction(prop)) {\n this[i] = prop;\n } else {\n this['_' + i] = prop;\n }\n }\n }\n this._config = config;\n // Lenient ordinal parsing accepts just a number in addition to\n // number + (possibly) stuff coming from _dayOfMonthOrdinalParse.\n // TODO: Remove \"ordinalParse\" fallback in next major release.\n this._dayOfMonthOrdinalParseLenient = new RegExp(\n (this._dayOfMonthOrdinalParse.source || this._ordinalParse.source) +\n '|' +\n /\\d{1,2}/.source\n );\n }\n\n function mergeConfigs(parentConfig, childConfig) {\n var res = extend({}, parentConfig),\n prop;\n for (prop in childConfig) {\n if (hasOwnProp(childConfig, prop)) {\n if (isObject(parentConfig[prop]) && isObject(childConfig[prop])) {\n res[prop] = {};\n extend(res[prop], parentConfig[prop]);\n extend(res[prop], childConfig[prop]);\n } else if (childConfig[prop] != null) {\n res[prop] = childConfig[prop];\n } else {\n delete res[prop];\n }\n }\n }\n for (prop in parentConfig) {\n if (\n hasOwnProp(parentConfig, prop) &&\n !hasOwnProp(childConfig, prop) &&\n isObject(parentConfig[prop])\n ) {\n // make sure changes to properties don't modify parent config\n res[prop] = extend({}, res[prop]);\n }\n }\n return res;\n }\n\n function Locale(config) {\n if (config != null) {\n this.set(config);\n }\n }\n\n var keys;\n\n if (Object.keys) {\n keys = Object.keys;\n } else {\n keys = function (obj) {\n var i,\n res = [];\n for (i in obj) {\n if (hasOwnProp(obj, i)) {\n res.push(i);\n }\n }\n return res;\n };\n }\n\n var defaultCalendar = {\n sameDay: '[Today at] LT',\n nextDay: '[Tomorrow at] LT',\n nextWeek: 'dddd [at] LT',\n lastDay: '[Yesterday at] LT',\n lastWeek: '[Last] dddd [at] LT',\n sameElse: 'L',\n };\n\n function calendar(key, mom, now) {\n var output = this._calendar[key] || this._calendar['sameElse'];\n return isFunction(output) ? output.call(mom, now) : output;\n }\n\n function zeroFill(number, targetLength, forceSign) {\n var absNumber = '' + Math.abs(number),\n zerosToFill = targetLength - absNumber.length,\n sign = number >= 0;\n return (\n (sign ? (forceSign ? '+' : '') : '-') +\n Math.pow(10, Math.max(0, zerosToFill)).toString().substr(1) +\n absNumber\n );\n }\n\n var formattingTokens =\n /(\\[[^\\[]*\\])|(\\\\)?([Hh]mm(ss)?|Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|Qo?|N{1,5}|YYYYYY|YYYYY|YYYY|YY|y{2,4}|yo?|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|kk?|mm?|ss?|S{1,9}|x|X|zz?|ZZ?|.)/g,\n localFormattingTokens = /(\\[[^\\[]*\\])|(\\\\)?(LTS|LT|LL?L?L?|l{1,4})/g,\n formatFunctions = {},\n formatTokenFunctions = {};\n\n // token: 'M'\n // padded: ['MM', 2]\n // ordinal: 'Mo'\n // callback: function () { this.month() + 1 }\n function addFormatToken(token, padded, ordinal, callback) {\n var func = callback;\n if (typeof callback === 'string') {\n func = function () {\n return this[callback]();\n };\n }\n if (token) {\n formatTokenFunctions[token] = func;\n }\n if (padded) {\n formatTokenFunctions[padded[0]] = function () {\n return zeroFill(func.apply(this, arguments), padded[1], padded[2]);\n };\n }\n if (ordinal) {\n formatTokenFunctions[ordinal] = function () {\n return this.localeData().ordinal(\n func.apply(this, arguments),\n token\n );\n };\n }\n }\n\n function removeFormattingTokens(input) {\n if (input.match(/\\[[\\s\\S]/)) {\n return input.replace(/^\\[|\\]$/g, '');\n }\n return input.replace(/\\\\/g, '');\n }\n\n function makeFormatFunction(format) {\n var array = format.match(formattingTokens),\n i,\n length;\n\n for (i = 0, length = array.length; i < length; i++) {\n if (formatTokenFunctions[array[i]]) {\n array[i] = formatTokenFunctions[array[i]];\n } else {\n array[i] = removeFormattingTokens(array[i]);\n }\n }\n\n return function (mom) {\n var output = '',\n i;\n for (i = 0; i < length; i++) {\n output += isFunction(array[i])\n ? array[i].call(mom, format)\n : array[i];\n }\n return output;\n };\n }\n\n // format date using native date object\n function formatMoment(m, format) {\n if (!m.isValid()) {\n return m.localeData().invalidDate();\n }\n\n format = expandFormat(format, m.localeData());\n formatFunctions[format] =\n formatFunctions[format] || makeFormatFunction(format);\n\n return formatFunctions[format](m);\n }\n\n function expandFormat(format, locale) {\n var i = 5;\n\n function replaceLongDateFormatTokens(input) {\n return locale.longDateFormat(input) || input;\n }\n\n localFormattingTokens.lastIndex = 0;\n while (i >= 0 && localFormattingTokens.test(format)) {\n format = format.replace(\n localFormattingTokens,\n replaceLongDateFormatTokens\n );\n localFormattingTokens.lastIndex = 0;\n i -= 1;\n }\n\n return format;\n }\n\n var defaultLongDateFormat = {\n LTS: 'h:mm:ss A',\n LT: 'h:mm A',\n L: 'MM/DD/YYYY',\n LL: 'MMMM D, YYYY',\n LLL: 'MMMM D, YYYY h:mm A',\n LLLL: 'dddd, MMMM D, YYYY h:mm A',\n };\n\n function longDateFormat(key) {\n var format = this._longDateFormat[key],\n formatUpper = this._longDateFormat[key.toUpperCase()];\n\n if (format || !formatUpper) {\n return format;\n }\n\n this._longDateFormat[key] = formatUpper\n .match(formattingTokens)\n .map(function (tok) {\n if (\n tok === 'MMMM' ||\n tok === 'MM' ||\n tok === 'DD' ||\n tok === 'dddd'\n ) {\n return tok.slice(1);\n }\n return tok;\n })\n .join('');\n\n return this._longDateFormat[key];\n }\n\n var defaultInvalidDate = 'Invalid date';\n\n function invalidDate() {\n return this._invalidDate;\n }\n\n var defaultOrdinal = '%d',\n defaultDayOfMonthOrdinalParse = /\\d{1,2}/;\n\n function ordinal(number) {\n return this._ordinal.replace('%d', number);\n }\n\n var defaultRelativeTime = {\n future: 'in %s',\n past: '%s ago',\n s: 'a few seconds',\n ss: '%d seconds',\n m: 'a minute',\n mm: '%d minutes',\n h: 'an hour',\n hh: '%d hours',\n d: 'a day',\n dd: '%d days',\n w: 'a week',\n ww: '%d weeks',\n M: 'a month',\n MM: '%d months',\n y: 'a year',\n yy: '%d years',\n };\n\n function relativeTime(number, withoutSuffix, string, isFuture) {\n var output = this._relativeTime[string];\n return isFunction(output)\n ? output(number, withoutSuffix, string, isFuture)\n : output.replace(/%d/i, number);\n }\n\n function pastFuture(diff, output) {\n var format = this._relativeTime[diff > 0 ? 'future' : 'past'];\n return isFunction(format) ? format(output) : format.replace(/%s/i, output);\n }\n\n var aliases = {};\n\n function addUnitAlias(unit, shorthand) {\n var lowerCase = unit.toLowerCase();\n aliases[lowerCase] = aliases[lowerCase + 's'] = aliases[shorthand] = unit;\n }\n\n function normalizeUnits(units) {\n return typeof units === 'string'\n ? aliases[units] || aliases[units.toLowerCase()]\n : undefined;\n }\n\n function normalizeObjectUnits(inputObject) {\n var normalizedInput = {},\n normalizedProp,\n prop;\n\n for (prop in inputObject) {\n if (hasOwnProp(inputObject, prop)) {\n normalizedProp = normalizeUnits(prop);\n if (normalizedProp) {\n normalizedInput[normalizedProp] = inputObject[prop];\n }\n }\n }\n\n return normalizedInput;\n }\n\n var priorities = {};\n\n function addUnitPriority(unit, priority) {\n priorities[unit] = priority;\n }\n\n function getPrioritizedUnits(unitsObj) {\n var units = [],\n u;\n for (u in unitsObj) {\n if (hasOwnProp(unitsObj, u)) {\n units.push({ unit: u, priority: priorities[u] });\n }\n }\n units.sort(function (a, b) {\n return a.priority - b.priority;\n });\n return units;\n }\n\n function isLeapYear(year) {\n return (year % 4 === 0 && year % 100 !== 0) || year % 400 === 0;\n }\n\n function absFloor(number) {\n if (number < 0) {\n // -0 -> 0\n return Math.ceil(number) || 0;\n } else {\n return Math.floor(number);\n }\n }\n\n function toInt(argumentForCoercion) {\n var coercedNumber = +argumentForCoercion,\n value = 0;\n\n if (coercedNumber !== 0 && isFinite(coercedNumber)) {\n value = absFloor(coercedNumber);\n }\n\n return value;\n }\n\n function makeGetSet(unit, keepTime) {\n return function (value) {\n if (value != null) {\n set$1(this, unit, value);\n hooks.updateOffset(this, keepTime);\n return this;\n } else {\n return get(this, unit);\n }\n };\n }\n\n function get(mom, unit) {\n return mom.isValid()\n ? mom._d['get' + (mom._isUTC ? 'UTC' : '') + unit]()\n : NaN;\n }\n\n function set$1(mom, unit, value) {\n if (mom.isValid() && !isNaN(value)) {\n if (\n unit === 'FullYear' &&\n isLeapYear(mom.year()) &&\n mom.month() === 1 &&\n mom.date() === 29\n ) {\n value = toInt(value);\n mom._d['set' + (mom._isUTC ? 'UTC' : '') + unit](\n value,\n mom.month(),\n daysInMonth(value, mom.month())\n );\n } else {\n mom._d['set' + (mom._isUTC ? 'UTC' : '') + unit](value);\n }\n }\n }\n\n // MOMENTS\n\n function stringGet(units) {\n units = normalizeUnits(units);\n if (isFunction(this[units])) {\n return this[units]();\n }\n return this;\n }\n\n function stringSet(units, value) {\n if (typeof units === 'object') {\n units = normalizeObjectUnits(units);\n var prioritized = getPrioritizedUnits(units),\n i,\n prioritizedLen = prioritized.length;\n for (i = 0; i < prioritizedLen; i++) {\n this[prioritized[i].unit](units[prioritized[i].unit]);\n }\n } else {\n units = normalizeUnits(units);\n if (isFunction(this[units])) {\n return this[units](value);\n }\n }\n return this;\n }\n\n var match1 = /\\d/, // 0 - 9\n match2 = /\\d\\d/, // 00 - 99\n match3 = /\\d{3}/, // 000 - 999\n match4 = /\\d{4}/, // 0000 - 9999\n match6 = /[+-]?\\d{6}/, // -999999 - 999999\n match1to2 = /\\d\\d?/, // 0 - 99\n match3to4 = /\\d\\d\\d\\d?/, // 999 - 9999\n match5to6 = /\\d\\d\\d\\d\\d\\d?/, // 99999 - 999999\n match1to3 = /\\d{1,3}/, // 0 - 999\n match1to4 = /\\d{1,4}/, // 0 - 9999\n match1to6 = /[+-]?\\d{1,6}/, // -999999 - 999999\n matchUnsigned = /\\d+/, // 0 - inf\n matchSigned = /[+-]?\\d+/, // -inf - inf\n matchOffset = /Z|[+-]\\d\\d:?\\d\\d/gi, // +00:00 -00:00 +0000 -0000 or Z\n matchShortOffset = /Z|[+-]\\d\\d(?::?\\d\\d)?/gi, // +00 -00 +00:00 -00:00 +0000 -0000 or Z\n matchTimestamp = /[+-]?\\d+(\\.\\d{1,3})?/, // 123456789 123456789.123\n // any word (or two) characters or numbers including two/three word month in arabic.\n // includes scottish gaelic two word and hyphenated months\n matchWord =\n /[0-9]{0,256}['a-z\\u00A0-\\u05FF\\u0700-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFF07\\uFF10-\\uFFEF]{1,256}|[\\u0600-\\u06FF\\/]{1,256}(\\s*?[\\u0600-\\u06FF]{1,256}){1,2}/i,\n regexes;\n\n regexes = {};\n\n function addRegexToken(token, regex, strictRegex) {\n regexes[token] = isFunction(regex)\n ? regex\n : function (isStrict, localeData) {\n return isStrict && strictRegex ? strictRegex : regex;\n };\n }\n\n function getParseRegexForToken(token, config) {\n if (!hasOwnProp(regexes, token)) {\n return new RegExp(unescapeFormat(token));\n }\n\n return regexes[token](config._strict, config._locale);\n }\n\n // Code from http://stackoverflow.com/questions/3561493/is-there-a-regexp-escape-function-in-javascript\n function unescapeFormat(s) {\n return regexEscape(\n s\n .replace('\\\\', '')\n .replace(\n /\\\\(\\[)|\\\\(\\])|\\[([^\\]\\[]*)\\]|\\\\(.)/g,\n function (matched, p1, p2, p3, p4) {\n return p1 || p2 || p3 || p4;\n }\n )\n );\n }\n\n function regexEscape(s) {\n return s.replace(/[-\\/\\\\^$*+?.()|[\\]{}]/g, '\\\\$&');\n }\n\n var tokens = {};\n\n function addParseToken(token, callback) {\n var i,\n func = callback,\n tokenLen;\n if (typeof token === 'string') {\n token = [token];\n }\n if (isNumber(callback)) {\n func = function (input, array) {\n array[callback] = toInt(input);\n };\n }\n tokenLen = token.length;\n for (i = 0; i < tokenLen; i++) {\n tokens[token[i]] = func;\n }\n }\n\n function addWeekParseToken(token, callback) {\n addParseToken(token, function (input, array, config, token) {\n config._w = config._w || {};\n callback(input, config._w, config, token);\n });\n }\n\n function addTimeToArrayFromToken(token, input, config) {\n if (input != null && hasOwnProp(tokens, token)) {\n tokens[token](input, config._a, config, token);\n }\n }\n\n var YEAR = 0,\n MONTH = 1,\n DATE = 2,\n HOUR = 3,\n MINUTE = 4,\n SECOND = 5,\n MILLISECOND = 6,\n WEEK = 7,\n WEEKDAY = 8;\n\n function mod(n, x) {\n return ((n % x) + x) % x;\n }\n\n var indexOf;\n\n if (Array.prototype.indexOf) {\n indexOf = Array.prototype.indexOf;\n } else {\n indexOf = function (o) {\n // I know\n var i;\n for (i = 0; i < this.length; ++i) {\n if (this[i] === o) {\n return i;\n }\n }\n return -1;\n };\n }\n\n function daysInMonth(year, month) {\n if (isNaN(year) || isNaN(month)) {\n return NaN;\n }\n var modMonth = mod(month, 12);\n year += (month - modMonth) / 12;\n return modMonth === 1\n ? isLeapYear(year)\n ? 29\n : 28\n : 31 - ((modMonth % 7) % 2);\n }\n\n // FORMATTING\n\n addFormatToken('M', ['MM', 2], 'Mo', function () {\n return this.month() + 1;\n });\n\n addFormatToken('MMM', 0, 0, function (format) {\n return this.localeData().monthsShort(this, format);\n });\n\n addFormatToken('MMMM', 0, 0, function (format) {\n return this.localeData().months(this, format);\n });\n\n // ALIASES\n\n addUnitAlias('month', 'M');\n\n // PRIORITY\n\n addUnitPriority('month', 8);\n\n // PARSING\n\n addRegexToken('M', match1to2);\n addRegexToken('MM', match1to2, match2);\n addRegexToken('MMM', function (isStrict, locale) {\n return locale.monthsShortRegex(isStrict);\n });\n addRegexToken('MMMM', function (isStrict, locale) {\n return locale.monthsRegex(isStrict);\n });\n\n addParseToken(['M', 'MM'], function (input, array) {\n array[MONTH] = toInt(input) - 1;\n });\n\n addParseToken(['MMM', 'MMMM'], function (input, array, config, token) {\n var month = config._locale.monthsParse(input, token, config._strict);\n // if we didn't find a month name, mark the date as invalid.\n if (month != null) {\n array[MONTH] = month;\n } else {\n getParsingFlags(config).invalidMonth = input;\n }\n });\n\n // LOCALES\n\n var defaultLocaleMonths =\n 'January_February_March_April_May_June_July_August_September_October_November_December'.split(\n '_'\n ),\n defaultLocaleMonthsShort =\n 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\n MONTHS_IN_FORMAT = /D[oD]?(\\[[^\\[\\]]*\\]|\\s)+MMMM?/,\n defaultMonthsShortRegex = matchWord,\n defaultMonthsRegex = matchWord;\n\n function localeMonths(m, format) {\n if (!m) {\n return isArray(this._months)\n ? this._months\n : this._months['standalone'];\n }\n return isArray(this._months)\n ? this._months[m.month()]\n : this._months[\n (this._months.isFormat || MONTHS_IN_FORMAT).test(format)\n ? 'format'\n : 'standalone'\n ][m.month()];\n }\n\n function localeMonthsShort(m, format) {\n if (!m) {\n return isArray(this._monthsShort)\n ? this._monthsShort\n : this._monthsShort['standalone'];\n }\n return isArray(this._monthsShort)\n ? this._monthsShort[m.month()]\n : this._monthsShort[\n MONTHS_IN_FORMAT.test(format) ? 'format' : 'standalone'\n ][m.month()];\n }\n\n function handleStrictParse(monthName, format, strict) {\n var i,\n ii,\n mom,\n llc = monthName.toLocaleLowerCase();\n if (!this._monthsParse) {\n // this is not used\n this._monthsParse = [];\n this._longMonthsParse = [];\n this._shortMonthsParse = [];\n for (i = 0; i < 12; ++i) {\n mom = createUTC([2000, i]);\n this._shortMonthsParse[i] = this.monthsShort(\n mom,\n ''\n ).toLocaleLowerCase();\n this._longMonthsParse[i] = this.months(mom, '').toLocaleLowerCase();\n }\n }\n\n if (strict) {\n if (format === 'MMM') {\n ii = indexOf.call(this._shortMonthsParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._longMonthsParse, llc);\n return ii !== -1 ? ii : null;\n }\n } else {\n if (format === 'MMM') {\n ii = indexOf.call(this._shortMonthsParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._longMonthsParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._longMonthsParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._shortMonthsParse, llc);\n return ii !== -1 ? ii : null;\n }\n }\n }\n\n function localeMonthsParse(monthName, format, strict) {\n var i, mom, regex;\n\n if (this._monthsParseExact) {\n return handleStrictParse.call(this, monthName, format, strict);\n }\n\n if (!this._monthsParse) {\n this._monthsParse = [];\n this._longMonthsParse = [];\n this._shortMonthsParse = [];\n }\n\n // TODO: add sorting\n // Sorting makes sure if one month (or abbr) is a prefix of another\n // see sorting in computeMonthsParse\n for (i = 0; i < 12; i++) {\n // make the regex if we don't have it already\n mom = createUTC([2000, i]);\n if (strict && !this._longMonthsParse[i]) {\n this._longMonthsParse[i] = new RegExp(\n '^' + this.months(mom, '').replace('.', '') + '$',\n 'i'\n );\n this._shortMonthsParse[i] = new RegExp(\n '^' + this.monthsShort(mom, '').replace('.', '') + '$',\n 'i'\n );\n }\n if (!strict && !this._monthsParse[i]) {\n regex =\n '^' + this.months(mom, '') + '|^' + this.monthsShort(mom, '');\n this._monthsParse[i] = new RegExp(regex.replace('.', ''), 'i');\n }\n // test the regex\n if (\n strict &&\n format === 'MMMM' &&\n this._longMonthsParse[i].test(monthName)\n ) {\n return i;\n } else if (\n strict &&\n format === 'MMM' &&\n this._shortMonthsParse[i].test(monthName)\n ) {\n return i;\n } else if (!strict && this._monthsParse[i].test(monthName)) {\n return i;\n }\n }\n }\n\n // MOMENTS\n\n function setMonth(mom, value) {\n var dayOfMonth;\n\n if (!mom.isValid()) {\n // No op\n return mom;\n }\n\n if (typeof value === 'string') {\n if (/^\\d+$/.test(value)) {\n value = toInt(value);\n } else {\n value = mom.localeData().monthsParse(value);\n // TODO: Another silent failure?\n if (!isNumber(value)) {\n return mom;\n }\n }\n }\n\n dayOfMonth = Math.min(mom.date(), daysInMonth(mom.year(), value));\n mom._d['set' + (mom._isUTC ? 'UTC' : '') + 'Month'](value, dayOfMonth);\n return mom;\n }\n\n function getSetMonth(value) {\n if (value != null) {\n setMonth(this, value);\n hooks.updateOffset(this, true);\n return this;\n } else {\n return get(this, 'Month');\n }\n }\n\n function getDaysInMonth() {\n return daysInMonth(this.year(), this.month());\n }\n\n function monthsShortRegex(isStrict) {\n if (this._monthsParseExact) {\n if (!hasOwnProp(this, '_monthsRegex')) {\n computeMonthsParse.call(this);\n }\n if (isStrict) {\n return this._monthsShortStrictRegex;\n } else {\n return this._monthsShortRegex;\n }\n } else {\n if (!hasOwnProp(this, '_monthsShortRegex')) {\n this._monthsShortRegex = defaultMonthsShortRegex;\n }\n return this._monthsShortStrictRegex && isStrict\n ? this._monthsShortStrictRegex\n : this._monthsShortRegex;\n }\n }\n\n function monthsRegex(isStrict) {\n if (this._monthsParseExact) {\n if (!hasOwnProp(this, '_monthsRegex')) {\n computeMonthsParse.call(this);\n }\n if (isStrict) {\n return this._monthsStrictRegex;\n } else {\n return this._monthsRegex;\n }\n } else {\n if (!hasOwnProp(this, '_monthsRegex')) {\n this._monthsRegex = defaultMonthsRegex;\n }\n return this._monthsStrictRegex && isStrict\n ? this._monthsStrictRegex\n : this._monthsRegex;\n }\n }\n\n function computeMonthsParse() {\n function cmpLenRev(a, b) {\n return b.length - a.length;\n }\n\n var shortPieces = [],\n longPieces = [],\n mixedPieces = [],\n i,\n mom;\n for (i = 0; i < 12; i++) {\n // make the regex if we don't have it already\n mom = createUTC([2000, i]);\n shortPieces.push(this.monthsShort(mom, ''));\n longPieces.push(this.months(mom, ''));\n mixedPieces.push(this.months(mom, ''));\n mixedPieces.push(this.monthsShort(mom, ''));\n }\n // Sorting makes sure if one month (or abbr) is a prefix of another it\n // will match the longer piece.\n shortPieces.sort(cmpLenRev);\n longPieces.sort(cmpLenRev);\n mixedPieces.sort(cmpLenRev);\n for (i = 0; i < 12; i++) {\n shortPieces[i] = regexEscape(shortPieces[i]);\n longPieces[i] = regexEscape(longPieces[i]);\n }\n for (i = 0; i < 24; i++) {\n mixedPieces[i] = regexEscape(mixedPieces[i]);\n }\n\n this._monthsRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i');\n this._monthsShortRegex = this._monthsRegex;\n this._monthsStrictRegex = new RegExp(\n '^(' + longPieces.join('|') + ')',\n 'i'\n );\n this._monthsShortStrictRegex = new RegExp(\n '^(' + shortPieces.join('|') + ')',\n 'i'\n );\n }\n\n // FORMATTING\n\n addFormatToken('Y', 0, 0, function () {\n var y = this.year();\n return y <= 9999 ? zeroFill(y, 4) : '+' + y;\n });\n\n addFormatToken(0, ['YY', 2], 0, function () {\n return this.year() % 100;\n });\n\n addFormatToken(0, ['YYYY', 4], 0, 'year');\n addFormatToken(0, ['YYYYY', 5], 0, 'year');\n addFormatToken(0, ['YYYYYY', 6, true], 0, 'year');\n\n // ALIASES\n\n addUnitAlias('year', 'y');\n\n // PRIORITIES\n\n addUnitPriority('year', 1);\n\n // PARSING\n\n addRegexToken('Y', matchSigned);\n addRegexToken('YY', match1to2, match2);\n addRegexToken('YYYY', match1to4, match4);\n addRegexToken('YYYYY', match1to6, match6);\n addRegexToken('YYYYYY', match1to6, match6);\n\n addParseToken(['YYYYY', 'YYYYYY'], YEAR);\n addParseToken('YYYY', function (input, array) {\n array[YEAR] =\n input.length === 2 ? hooks.parseTwoDigitYear(input) : toInt(input);\n });\n addParseToken('YY', function (input, array) {\n array[YEAR] = hooks.parseTwoDigitYear(input);\n });\n addParseToken('Y', function (input, array) {\n array[YEAR] = parseInt(input, 10);\n });\n\n // HELPERS\n\n function daysInYear(year) {\n return isLeapYear(year) ? 366 : 365;\n }\n\n // HOOKS\n\n hooks.parseTwoDigitYear = function (input) {\n return toInt(input) + (toInt(input) > 68 ? 1900 : 2000);\n };\n\n // MOMENTS\n\n var getSetYear = makeGetSet('FullYear', true);\n\n function getIsLeapYear() {\n return isLeapYear(this.year());\n }\n\n function createDate(y, m, d, h, M, s, ms) {\n // can't just apply() to create a date:\n // https://stackoverflow.com/q/181348\n var date;\n // the date constructor remaps years 0-99 to 1900-1999\n if (y < 100 && y >= 0) {\n // preserve leap years using a full 400 year cycle, then reset\n date = new Date(y + 400, m, d, h, M, s, ms);\n if (isFinite(date.getFullYear())) {\n date.setFullYear(y);\n }\n } else {\n date = new Date(y, m, d, h, M, s, ms);\n }\n\n return date;\n }\n\n function createUTCDate(y) {\n var date, args;\n // the Date.UTC function remaps years 0-99 to 1900-1999\n if (y < 100 && y >= 0) {\n args = Array.prototype.slice.call(arguments);\n // preserve leap years using a full 400 year cycle, then reset\n args[0] = y + 400;\n date = new Date(Date.UTC.apply(null, args));\n if (isFinite(date.getUTCFullYear())) {\n date.setUTCFullYear(y);\n }\n } else {\n date = new Date(Date.UTC.apply(null, arguments));\n }\n\n return date;\n }\n\n // start-of-first-week - start-of-year\n function firstWeekOffset(year, dow, doy) {\n var // first-week day -- which january is always in the first week (4 for iso, 1 for other)\n fwd = 7 + dow - doy,\n // first-week day local weekday -- which local weekday is fwd\n fwdlw = (7 + createUTCDate(year, 0, fwd).getUTCDay() - dow) % 7;\n\n return -fwdlw + fwd - 1;\n }\n\n // https://en.wikipedia.org/wiki/ISO_week_date#Calculating_a_date_given_the_year.2C_week_number_and_weekday\n function dayOfYearFromWeeks(year, week, weekday, dow, doy) {\n var localWeekday = (7 + weekday - dow) % 7,\n weekOffset = firstWeekOffset(year, dow, doy),\n dayOfYear = 1 + 7 * (week - 1) + localWeekday + weekOffset,\n resYear,\n resDayOfYear;\n\n if (dayOfYear <= 0) {\n resYear = year - 1;\n resDayOfYear = daysInYear(resYear) + dayOfYear;\n } else if (dayOfYear > daysInYear(year)) {\n resYear = year + 1;\n resDayOfYear = dayOfYear - daysInYear(year);\n } else {\n resYear = year;\n resDayOfYear = dayOfYear;\n }\n\n return {\n year: resYear,\n dayOfYear: resDayOfYear,\n };\n }\n\n function weekOfYear(mom, dow, doy) {\n var weekOffset = firstWeekOffset(mom.year(), dow, doy),\n week = Math.floor((mom.dayOfYear() - weekOffset - 1) / 7) + 1,\n resWeek,\n resYear;\n\n if (week < 1) {\n resYear = mom.year() - 1;\n resWeek = week + weeksInYear(resYear, dow, doy);\n } else if (week > weeksInYear(mom.year(), dow, doy)) {\n resWeek = week - weeksInYear(mom.year(), dow, doy);\n resYear = mom.year() + 1;\n } else {\n resYear = mom.year();\n resWeek = week;\n }\n\n return {\n week: resWeek,\n year: resYear,\n };\n }\n\n function weeksInYear(year, dow, doy) {\n var weekOffset = firstWeekOffset(year, dow, doy),\n weekOffsetNext = firstWeekOffset(year + 1, dow, doy);\n return (daysInYear(year) - weekOffset + weekOffsetNext) / 7;\n }\n\n // FORMATTING\n\n addFormatToken('w', ['ww', 2], 'wo', 'week');\n addFormatToken('W', ['WW', 2], 'Wo', 'isoWeek');\n\n // ALIASES\n\n addUnitAlias('week', 'w');\n addUnitAlias('isoWeek', 'W');\n\n // PRIORITIES\n\n addUnitPriority('week', 5);\n addUnitPriority('isoWeek', 5);\n\n // PARSING\n\n addRegexToken('w', match1to2);\n addRegexToken('ww', match1to2, match2);\n addRegexToken('W', match1to2);\n addRegexToken('WW', match1to2, match2);\n\n addWeekParseToken(\n ['w', 'ww', 'W', 'WW'],\n function (input, week, config, token) {\n week[token.substr(0, 1)] = toInt(input);\n }\n );\n\n // HELPERS\n\n // LOCALES\n\n function localeWeek(mom) {\n return weekOfYear(mom, this._week.dow, this._week.doy).week;\n }\n\n var defaultLocaleWeek = {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 6th is the first week of the year.\n };\n\n function localeFirstDayOfWeek() {\n return this._week.dow;\n }\n\n function localeFirstDayOfYear() {\n return this._week.doy;\n }\n\n // MOMENTS\n\n function getSetWeek(input) {\n var week = this.localeData().week(this);\n return input == null ? week : this.add((input - week) * 7, 'd');\n }\n\n function getSetISOWeek(input) {\n var week = weekOfYear(this, 1, 4).week;\n return input == null ? week : this.add((input - week) * 7, 'd');\n }\n\n // FORMATTING\n\n addFormatToken('d', 0, 'do', 'day');\n\n addFormatToken('dd', 0, 0, function (format) {\n return this.localeData().weekdaysMin(this, format);\n });\n\n addFormatToken('ddd', 0, 0, function (format) {\n return this.localeData().weekdaysShort(this, format);\n });\n\n addFormatToken('dddd', 0, 0, function (format) {\n return this.localeData().weekdays(this, format);\n });\n\n addFormatToken('e', 0, 0, 'weekday');\n addFormatToken('E', 0, 0, 'isoWeekday');\n\n // ALIASES\n\n addUnitAlias('day', 'd');\n addUnitAlias('weekday', 'e');\n addUnitAlias('isoWeekday', 'E');\n\n // PRIORITY\n addUnitPriority('day', 11);\n addUnitPriority('weekday', 11);\n addUnitPriority('isoWeekday', 11);\n\n // PARSING\n\n addRegexToken('d', match1to2);\n addRegexToken('e', match1to2);\n addRegexToken('E', match1to2);\n addRegexToken('dd', function (isStrict, locale) {\n return locale.weekdaysMinRegex(isStrict);\n });\n addRegexToken('ddd', function (isStrict, locale) {\n return locale.weekdaysShortRegex(isStrict);\n });\n addRegexToken('dddd', function (isStrict, locale) {\n return locale.weekdaysRegex(isStrict);\n });\n\n addWeekParseToken(['dd', 'ddd', 'dddd'], function (input, week, config, token) {\n var weekday = config._locale.weekdaysParse(input, token, config._strict);\n // if we didn't get a weekday name, mark the date as invalid\n if (weekday != null) {\n week.d = weekday;\n } else {\n getParsingFlags(config).invalidWeekday = input;\n }\n });\n\n addWeekParseToken(['d', 'e', 'E'], function (input, week, config, token) {\n week[token] = toInt(input);\n });\n\n // HELPERS\n\n function parseWeekday(input, locale) {\n if (typeof input !== 'string') {\n return input;\n }\n\n if (!isNaN(input)) {\n return parseInt(input, 10);\n }\n\n input = locale.weekdaysParse(input);\n if (typeof input === 'number') {\n return input;\n }\n\n return null;\n }\n\n function parseIsoWeekday(input, locale) {\n if (typeof input === 'string') {\n return locale.weekdaysParse(input) % 7 || 7;\n }\n return isNaN(input) ? null : input;\n }\n\n // LOCALES\n function shiftWeekdays(ws, n) {\n return ws.slice(n, 7).concat(ws.slice(0, n));\n }\n\n var defaultLocaleWeekdays =\n 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split('_'),\n defaultLocaleWeekdaysShort = 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n defaultLocaleWeekdaysMin = 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n defaultWeekdaysRegex = matchWord,\n defaultWeekdaysShortRegex = matchWord,\n defaultWeekdaysMinRegex = matchWord;\n\n function localeWeekdays(m, format) {\n var weekdays = isArray(this._weekdays)\n ? this._weekdays\n : this._weekdays[\n m && m !== true && this._weekdays.isFormat.test(format)\n ? 'format'\n : 'standalone'\n ];\n return m === true\n ? shiftWeekdays(weekdays, this._week.dow)\n : m\n ? weekdays[m.day()]\n : weekdays;\n }\n\n function localeWeekdaysShort(m) {\n return m === true\n ? shiftWeekdays(this._weekdaysShort, this._week.dow)\n : m\n ? this._weekdaysShort[m.day()]\n : this._weekdaysShort;\n }\n\n function localeWeekdaysMin(m) {\n return m === true\n ? shiftWeekdays(this._weekdaysMin, this._week.dow)\n : m\n ? this._weekdaysMin[m.day()]\n : this._weekdaysMin;\n }\n\n function handleStrictParse$1(weekdayName, format, strict) {\n var i,\n ii,\n mom,\n llc = weekdayName.toLocaleLowerCase();\n if (!this._weekdaysParse) {\n this._weekdaysParse = [];\n this._shortWeekdaysParse = [];\n this._minWeekdaysParse = [];\n\n for (i = 0; i < 7; ++i) {\n mom = createUTC([2000, 1]).day(i);\n this._minWeekdaysParse[i] = this.weekdaysMin(\n mom,\n ''\n ).toLocaleLowerCase();\n this._shortWeekdaysParse[i] = this.weekdaysShort(\n mom,\n ''\n ).toLocaleLowerCase();\n this._weekdaysParse[i] = this.weekdays(mom, '').toLocaleLowerCase();\n }\n }\n\n if (strict) {\n if (format === 'dddd') {\n ii = indexOf.call(this._weekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else if (format === 'ddd') {\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._minWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n }\n } else {\n if (format === 'dddd') {\n ii = indexOf.call(this._weekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._minWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else if (format === 'ddd') {\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._weekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._minWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._minWeekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._weekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n }\n }\n }\n\n function localeWeekdaysParse(weekdayName, format, strict) {\n var i, mom, regex;\n\n if (this._weekdaysParseExact) {\n return handleStrictParse$1.call(this, weekdayName, format, strict);\n }\n\n if (!this._weekdaysParse) {\n this._weekdaysParse = [];\n this._minWeekdaysParse = [];\n this._shortWeekdaysParse = [];\n this._fullWeekdaysParse = [];\n }\n\n for (i = 0; i < 7; i++) {\n // make the regex if we don't have it already\n\n mom = createUTC([2000, 1]).day(i);\n if (strict && !this._fullWeekdaysParse[i]) {\n this._fullWeekdaysParse[i] = new RegExp(\n '^' + this.weekdays(mom, '').replace('.', '\\\\.?') + '$',\n 'i'\n );\n this._shortWeekdaysParse[i] = new RegExp(\n '^' + this.weekdaysShort(mom, '').replace('.', '\\\\.?') + '$',\n 'i'\n );\n this._minWeekdaysParse[i] = new RegExp(\n '^' + this.weekdaysMin(mom, '').replace('.', '\\\\.?') + '$',\n 'i'\n );\n }\n if (!this._weekdaysParse[i]) {\n regex =\n '^' +\n this.weekdays(mom, '') +\n '|^' +\n this.weekdaysShort(mom, '') +\n '|^' +\n this.weekdaysMin(mom, '');\n this._weekdaysParse[i] = new RegExp(regex.replace('.', ''), 'i');\n }\n // test the regex\n if (\n strict &&\n format === 'dddd' &&\n this._fullWeekdaysParse[i].test(weekdayName)\n ) {\n return i;\n } else if (\n strict &&\n format === 'ddd' &&\n this._shortWeekdaysParse[i].test(weekdayName)\n ) {\n return i;\n } else if (\n strict &&\n format === 'dd' &&\n this._minWeekdaysParse[i].test(weekdayName)\n ) {\n return i;\n } else if (!strict && this._weekdaysParse[i].test(weekdayName)) {\n return i;\n }\n }\n }\n\n // MOMENTS\n\n function getSetDayOfWeek(input) {\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n var day = this._isUTC ? this._d.getUTCDay() : this._d.getDay();\n if (input != null) {\n input = parseWeekday(input, this.localeData());\n return this.add(input - day, 'd');\n } else {\n return day;\n }\n }\n\n function getSetLocaleDayOfWeek(input) {\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n var weekday = (this.day() + 7 - this.localeData()._week.dow) % 7;\n return input == null ? weekday : this.add(input - weekday, 'd');\n }\n\n function getSetISODayOfWeek(input) {\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n\n // behaves the same as moment#day except\n // as a getter, returns 7 instead of 0 (1-7 range instead of 0-6)\n // as a setter, sunday should belong to the previous week.\n\n if (input != null) {\n var weekday = parseIsoWeekday(input, this.localeData());\n return this.day(this.day() % 7 ? weekday : weekday - 7);\n } else {\n return this.day() || 7;\n }\n }\n\n function weekdaysRegex(isStrict) {\n if (this._weekdaysParseExact) {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n computeWeekdaysParse.call(this);\n }\n if (isStrict) {\n return this._weekdaysStrictRegex;\n } else {\n return this._weekdaysRegex;\n }\n } else {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n this._weekdaysRegex = defaultWeekdaysRegex;\n }\n return this._weekdaysStrictRegex && isStrict\n ? this._weekdaysStrictRegex\n : this._weekdaysRegex;\n }\n }\n\n function weekdaysShortRegex(isStrict) {\n if (this._weekdaysParseExact) {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n computeWeekdaysParse.call(this);\n }\n if (isStrict) {\n return this._weekdaysShortStrictRegex;\n } else {\n return this._weekdaysShortRegex;\n }\n } else {\n if (!hasOwnProp(this, '_weekdaysShortRegex')) {\n this._weekdaysShortRegex = defaultWeekdaysShortRegex;\n }\n return this._weekdaysShortStrictRegex && isStrict\n ? this._weekdaysShortStrictRegex\n : this._weekdaysShortRegex;\n }\n }\n\n function weekdaysMinRegex(isStrict) {\n if (this._weekdaysParseExact) {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n computeWeekdaysParse.call(this);\n }\n if (isStrict) {\n return this._weekdaysMinStrictRegex;\n } else {\n return this._weekdaysMinRegex;\n }\n } else {\n if (!hasOwnProp(this, '_weekdaysMinRegex')) {\n this._weekdaysMinRegex = defaultWeekdaysMinRegex;\n }\n return this._weekdaysMinStrictRegex && isStrict\n ? this._weekdaysMinStrictRegex\n : this._weekdaysMinRegex;\n }\n }\n\n function computeWeekdaysParse() {\n function cmpLenRev(a, b) {\n return b.length - a.length;\n }\n\n var minPieces = [],\n shortPieces = [],\n longPieces = [],\n mixedPieces = [],\n i,\n mom,\n minp,\n shortp,\n longp;\n for (i = 0; i < 7; i++) {\n // make the regex if we don't have it already\n mom = createUTC([2000, 1]).day(i);\n minp = regexEscape(this.weekdaysMin(mom, ''));\n shortp = regexEscape(this.weekdaysShort(mom, ''));\n longp = regexEscape(this.weekdays(mom, ''));\n minPieces.push(minp);\n shortPieces.push(shortp);\n longPieces.push(longp);\n mixedPieces.push(minp);\n mixedPieces.push(shortp);\n mixedPieces.push(longp);\n }\n // Sorting makes sure if one weekday (or abbr) is a prefix of another it\n // will match the longer piece.\n minPieces.sort(cmpLenRev);\n shortPieces.sort(cmpLenRev);\n longPieces.sort(cmpLenRev);\n mixedPieces.sort(cmpLenRev);\n\n this._weekdaysRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i');\n this._weekdaysShortRegex = this._weekdaysRegex;\n this._weekdaysMinRegex = this._weekdaysRegex;\n\n this._weekdaysStrictRegex = new RegExp(\n '^(' + longPieces.join('|') + ')',\n 'i'\n );\n this._weekdaysShortStrictRegex = new RegExp(\n '^(' + shortPieces.join('|') + ')',\n 'i'\n );\n this._weekdaysMinStrictRegex = new RegExp(\n '^(' + minPieces.join('|') + ')',\n 'i'\n );\n }\n\n // FORMATTING\n\n function hFormat() {\n return this.hours() % 12 || 12;\n }\n\n function kFormat() {\n return this.hours() || 24;\n }\n\n addFormatToken('H', ['HH', 2], 0, 'hour');\n addFormatToken('h', ['hh', 2], 0, hFormat);\n addFormatToken('k', ['kk', 2], 0, kFormat);\n\n addFormatToken('hmm', 0, 0, function () {\n return '' + hFormat.apply(this) + zeroFill(this.minutes(), 2);\n });\n\n addFormatToken('hmmss', 0, 0, function () {\n return (\n '' +\n hFormat.apply(this) +\n zeroFill(this.minutes(), 2) +\n zeroFill(this.seconds(), 2)\n );\n });\n\n addFormatToken('Hmm', 0, 0, function () {\n return '' + this.hours() + zeroFill(this.minutes(), 2);\n });\n\n addFormatToken('Hmmss', 0, 0, function () {\n return (\n '' +\n this.hours() +\n zeroFill(this.minutes(), 2) +\n zeroFill(this.seconds(), 2)\n );\n });\n\n function meridiem(token, lowercase) {\n addFormatToken(token, 0, 0, function () {\n return this.localeData().meridiem(\n this.hours(),\n this.minutes(),\n lowercase\n );\n });\n }\n\n meridiem('a', true);\n meridiem('A', false);\n\n // ALIASES\n\n addUnitAlias('hour', 'h');\n\n // PRIORITY\n addUnitPriority('hour', 13);\n\n // PARSING\n\n function matchMeridiem(isStrict, locale) {\n return locale._meridiemParse;\n }\n\n addRegexToken('a', matchMeridiem);\n addRegexToken('A', matchMeridiem);\n addRegexToken('H', match1to2);\n addRegexToken('h', match1to2);\n addRegexToken('k', match1to2);\n addRegexToken('HH', match1to2, match2);\n addRegexToken('hh', match1to2, match2);\n addRegexToken('kk', match1to2, match2);\n\n addRegexToken('hmm', match3to4);\n addRegexToken('hmmss', match5to6);\n addRegexToken('Hmm', match3to4);\n addRegexToken('Hmmss', match5to6);\n\n addParseToken(['H', 'HH'], HOUR);\n addParseToken(['k', 'kk'], function (input, array, config) {\n var kInput = toInt(input);\n array[HOUR] = kInput === 24 ? 0 : kInput;\n });\n addParseToken(['a', 'A'], function (input, array, config) {\n config._isPm = config._locale.isPM(input);\n config._meridiem = input;\n });\n addParseToken(['h', 'hh'], function (input, array, config) {\n array[HOUR] = toInt(input);\n getParsingFlags(config).bigHour = true;\n });\n addParseToken('hmm', function (input, array, config) {\n var pos = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos));\n array[MINUTE] = toInt(input.substr(pos));\n getParsingFlags(config).bigHour = true;\n });\n addParseToken('hmmss', function (input, array, config) {\n var pos1 = input.length - 4,\n pos2 = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos1));\n array[MINUTE] = toInt(input.substr(pos1, 2));\n array[SECOND] = toInt(input.substr(pos2));\n getParsingFlags(config).bigHour = true;\n });\n addParseToken('Hmm', function (input, array, config) {\n var pos = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos));\n array[MINUTE] = toInt(input.substr(pos));\n });\n addParseToken('Hmmss', function (input, array, config) {\n var pos1 = input.length - 4,\n pos2 = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos1));\n array[MINUTE] = toInt(input.substr(pos1, 2));\n array[SECOND] = toInt(input.substr(pos2));\n });\n\n // LOCALES\n\n function localeIsPM(input) {\n // IE8 Quirks Mode & IE7 Standards Mode do not allow accessing strings like arrays\n // Using charAt should be more compatible.\n return (input + '').toLowerCase().charAt(0) === 'p';\n }\n\n var defaultLocaleMeridiemParse = /[ap]\\.?m?\\.?/i,\n // Setting the hour should keep the time, because the user explicitly\n // specified which hour they want. So trying to maintain the same hour (in\n // a new timezone) makes sense. Adding/subtracting hours does not follow\n // this rule.\n getSetHour = makeGetSet('Hours', true);\n\n function localeMeridiem(hours, minutes, isLower) {\n if (hours > 11) {\n return isLower ? 'pm' : 'PM';\n } else {\n return isLower ? 'am' : 'AM';\n }\n }\n\n var baseConfig = {\n calendar: defaultCalendar,\n longDateFormat: defaultLongDateFormat,\n invalidDate: defaultInvalidDate,\n ordinal: defaultOrdinal,\n dayOfMonthOrdinalParse: defaultDayOfMonthOrdinalParse,\n relativeTime: defaultRelativeTime,\n\n months: defaultLocaleMonths,\n monthsShort: defaultLocaleMonthsShort,\n\n week: defaultLocaleWeek,\n\n weekdays: defaultLocaleWeekdays,\n weekdaysMin: defaultLocaleWeekdaysMin,\n weekdaysShort: defaultLocaleWeekdaysShort,\n\n meridiemParse: defaultLocaleMeridiemParse,\n };\n\n // internal storage for locale config files\n var locales = {},\n localeFamilies = {},\n globalLocale;\n\n function commonPrefix(arr1, arr2) {\n var i,\n minl = Math.min(arr1.length, arr2.length);\n for (i = 0; i < minl; i += 1) {\n if (arr1[i] !== arr2[i]) {\n return i;\n }\n }\n return minl;\n }\n\n function normalizeLocale(key) {\n return key ? key.toLowerCase().replace('_', '-') : key;\n }\n\n // pick the locale from the array\n // try ['en-au', 'en-gb'] as 'en-au', 'en-gb', 'en', as in move through the list trying each\n // substring from most specific to least, but move to the next array item if it's a more specific variant than the current root\n function chooseLocale(names) {\n var i = 0,\n j,\n next,\n locale,\n split;\n\n while (i < names.length) {\n split = normalizeLocale(names[i]).split('-');\n j = split.length;\n next = normalizeLocale(names[i + 1]);\n next = next ? next.split('-') : null;\n while (j > 0) {\n locale = loadLocale(split.slice(0, j).join('-'));\n if (locale) {\n return locale;\n }\n if (\n next &&\n next.length >= j &&\n commonPrefix(split, next) >= j - 1\n ) {\n //the next array item is better than a shallower substring of this one\n break;\n }\n j--;\n }\n i++;\n }\n return globalLocale;\n }\n\n function isLocaleNameSane(name) {\n // Prevent names that look like filesystem paths, i.e contain '/' or '\\'\n return name.match('^[^/\\\\\\\\]*$') != null;\n }\n\n function loadLocale(name) {\n var oldLocale = null,\n aliasedRequire;\n // TODO: Find a better way to register and load all the locales in Node\n if (\n locales[name] === undefined &&\n typeof module !== 'undefined' &&\n module &&\n module.exports &&\n isLocaleNameSane(name)\n ) {\n try {\n oldLocale = globalLocale._abbr;\n aliasedRequire = require;\n aliasedRequire('./locale/' + name);\n getSetGlobalLocale(oldLocale);\n } catch (e) {\n // mark as not found to avoid repeating expensive file require call causing high CPU\n // when trying to find en-US, en_US, en-us for every format call\n locales[name] = null; // null means not found\n }\n }\n return locales[name];\n }\n\n // This function will load locale and then set the global locale. If\n // no arguments are passed in, it will simply return the current global\n // locale key.\n function getSetGlobalLocale(key, values) {\n var data;\n if (key) {\n if (isUndefined(values)) {\n data = getLocale(key);\n } else {\n data = defineLocale(key, values);\n }\n\n if (data) {\n // moment.duration._locale = moment._locale = data;\n globalLocale = data;\n } else {\n if (typeof console !== 'undefined' && console.warn) {\n //warn user if arguments are passed but the locale could not be set\n console.warn(\n 'Locale ' + key + ' not found. Did you forget to load it?'\n );\n }\n }\n }\n\n return globalLocale._abbr;\n }\n\n function defineLocale(name, config) {\n if (config !== null) {\n var locale,\n parentConfig = baseConfig;\n config.abbr = name;\n if (locales[name] != null) {\n deprecateSimple(\n 'defineLocaleOverride',\n 'use moment.updateLocale(localeName, config) to change ' +\n 'an existing locale. moment.defineLocale(localeName, ' +\n 'config) should only be used for creating a new locale ' +\n 'See http://momentjs.com/guides/#/warnings/define-locale/ for more info.'\n );\n parentConfig = locales[name]._config;\n } else if (config.parentLocale != null) {\n if (locales[config.parentLocale] != null) {\n parentConfig = locales[config.parentLocale]._config;\n } else {\n locale = loadLocale(config.parentLocale);\n if (locale != null) {\n parentConfig = locale._config;\n } else {\n if (!localeFamilies[config.parentLocale]) {\n localeFamilies[config.parentLocale] = [];\n }\n localeFamilies[config.parentLocale].push({\n name: name,\n config: config,\n });\n return null;\n }\n }\n }\n locales[name] = new Locale(mergeConfigs(parentConfig, config));\n\n if (localeFamilies[name]) {\n localeFamilies[name].forEach(function (x) {\n defineLocale(x.name, x.config);\n });\n }\n\n // backwards compat for now: also set the locale\n // make sure we set the locale AFTER all child locales have been\n // created, so we won't end up with the child locale set.\n getSetGlobalLocale(name);\n\n return locales[name];\n } else {\n // useful for testing\n delete locales[name];\n return null;\n }\n }\n\n function updateLocale(name, config) {\n if (config != null) {\n var locale,\n tmpLocale,\n parentConfig = baseConfig;\n\n if (locales[name] != null && locales[name].parentLocale != null) {\n // Update existing child locale in-place to avoid memory-leaks\n locales[name].set(mergeConfigs(locales[name]._config, config));\n } else {\n // MERGE\n tmpLocale = loadLocale(name);\n if (tmpLocale != null) {\n parentConfig = tmpLocale._config;\n }\n config = mergeConfigs(parentConfig, config);\n if (tmpLocale == null) {\n // updateLocale is called for creating a new locale\n // Set abbr so it will have a name (getters return\n // undefined otherwise).\n config.abbr = name;\n }\n locale = new Locale(config);\n locale.parentLocale = locales[name];\n locales[name] = locale;\n }\n\n // backwards compat for now: also set the locale\n getSetGlobalLocale(name);\n } else {\n // pass null for config to unupdate, useful for tests\n if (locales[name] != null) {\n if (locales[name].parentLocale != null) {\n locales[name] = locales[name].parentLocale;\n if (name === getSetGlobalLocale()) {\n getSetGlobalLocale(name);\n }\n } else if (locales[name] != null) {\n delete locales[name];\n }\n }\n }\n return locales[name];\n }\n\n // returns locale data\n function getLocale(key) {\n var locale;\n\n if (key && key._locale && key._locale._abbr) {\n key = key._locale._abbr;\n }\n\n if (!key) {\n return globalLocale;\n }\n\n if (!isArray(key)) {\n //short-circuit everything else\n locale = loadLocale(key);\n if (locale) {\n return locale;\n }\n key = [key];\n }\n\n return chooseLocale(key);\n }\n\n function listLocales() {\n return keys(locales);\n }\n\n function checkOverflow(m) {\n var overflow,\n a = m._a;\n\n if (a && getParsingFlags(m).overflow === -2) {\n overflow =\n a[MONTH] < 0 || a[MONTH] > 11\n ? MONTH\n : a[DATE] < 1 || a[DATE] > daysInMonth(a[YEAR], a[MONTH])\n ? DATE\n : a[HOUR] < 0 ||\n a[HOUR] > 24 ||\n (a[HOUR] === 24 &&\n (a[MINUTE] !== 0 ||\n a[SECOND] !== 0 ||\n a[MILLISECOND] !== 0))\n ? HOUR\n : a[MINUTE] < 0 || a[MINUTE] > 59\n ? MINUTE\n : a[SECOND] < 0 || a[SECOND] > 59\n ? SECOND\n : a[MILLISECOND] < 0 || a[MILLISECOND] > 999\n ? MILLISECOND\n : -1;\n\n if (\n getParsingFlags(m)._overflowDayOfYear &&\n (overflow < YEAR || overflow > DATE)\n ) {\n overflow = DATE;\n }\n if (getParsingFlags(m)._overflowWeeks && overflow === -1) {\n overflow = WEEK;\n }\n if (getParsingFlags(m)._overflowWeekday && overflow === -1) {\n overflow = WEEKDAY;\n }\n\n getParsingFlags(m).overflow = overflow;\n }\n\n return m;\n }\n\n // iso 8601 regex\n // 0000-00-00 0000-W00 or 0000-W00-0 + T + 00 or 00:00 or 00:00:00 or 00:00:00.000 + +00:00 or +0000 or +00)\n var extendedIsoRegex =\n /^\\s*((?:[+-]\\d{6}|\\d{4})-(?:\\d\\d-\\d\\d|W\\d\\d-\\d|W\\d\\d|\\d\\d\\d|\\d\\d))(?:(T| )(\\d\\d(?::\\d\\d(?::\\d\\d(?:[.,]\\d+)?)?)?)([+-]\\d\\d(?::?\\d\\d)?|\\s*Z)?)?$/,\n basicIsoRegex =\n /^\\s*((?:[+-]\\d{6}|\\d{4})(?:\\d\\d\\d\\d|W\\d\\d\\d|W\\d\\d|\\d\\d\\d|\\d\\d|))(?:(T| )(\\d\\d(?:\\d\\d(?:\\d\\d(?:[.,]\\d+)?)?)?)([+-]\\d\\d(?::?\\d\\d)?|\\s*Z)?)?$/,\n tzRegex = /Z|[+-]\\d\\d(?::?\\d\\d)?/,\n isoDates = [\n ['YYYYYY-MM-DD', /[+-]\\d{6}-\\d\\d-\\d\\d/],\n ['YYYY-MM-DD', /\\d{4}-\\d\\d-\\d\\d/],\n ['GGGG-[W]WW-E', /\\d{4}-W\\d\\d-\\d/],\n ['GGGG-[W]WW', /\\d{4}-W\\d\\d/, false],\n ['YYYY-DDD', /\\d{4}-\\d{3}/],\n ['YYYY-MM', /\\d{4}-\\d\\d/, false],\n ['YYYYYYMMDD', /[+-]\\d{10}/],\n ['YYYYMMDD', /\\d{8}/],\n ['GGGG[W]WWE', /\\d{4}W\\d{3}/],\n ['GGGG[W]WW', /\\d{4}W\\d{2}/, false],\n ['YYYYDDD', /\\d{7}/],\n ['YYYYMM', /\\d{6}/, false],\n ['YYYY', /\\d{4}/, false],\n ],\n // iso time formats and regexes\n isoTimes = [\n ['HH:mm:ss.SSSS', /\\d\\d:\\d\\d:\\d\\d\\.\\d+/],\n ['HH:mm:ss,SSSS', /\\d\\d:\\d\\d:\\d\\d,\\d+/],\n ['HH:mm:ss', /\\d\\d:\\d\\d:\\d\\d/],\n ['HH:mm', /\\d\\d:\\d\\d/],\n ['HHmmss.SSSS', /\\d\\d\\d\\d\\d\\d\\.\\d+/],\n ['HHmmss,SSSS', /\\d\\d\\d\\d\\d\\d,\\d+/],\n ['HHmmss', /\\d\\d\\d\\d\\d\\d/],\n ['HHmm', /\\d\\d\\d\\d/],\n ['HH', /\\d\\d/],\n ],\n aspNetJsonRegex = /^\\/?Date\\((-?\\d+)/i,\n // RFC 2822 regex: For details see https://tools.ietf.org/html/rfc2822#section-3.3\n rfc2822 =\n /^(?:(Mon|Tue|Wed|Thu|Fri|Sat|Sun),?\\s)?(\\d{1,2})\\s(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\\s(\\d{2,4})\\s(\\d\\d):(\\d\\d)(?::(\\d\\d))?\\s(?:(UT|GMT|[ECMP][SD]T)|([Zz])|([+-]\\d{4}))$/,\n obsOffsets = {\n UT: 0,\n GMT: 0,\n EDT: -4 * 60,\n EST: -5 * 60,\n CDT: -5 * 60,\n CST: -6 * 60,\n MDT: -6 * 60,\n MST: -7 * 60,\n PDT: -7 * 60,\n PST: -8 * 60,\n };\n\n // date from iso format\n function configFromISO(config) {\n var i,\n l,\n string = config._i,\n match = extendedIsoRegex.exec(string) || basicIsoRegex.exec(string),\n allowTime,\n dateFormat,\n timeFormat,\n tzFormat,\n isoDatesLen = isoDates.length,\n isoTimesLen = isoTimes.length;\n\n if (match) {\n getParsingFlags(config).iso = true;\n for (i = 0, l = isoDatesLen; i < l; i++) {\n if (isoDates[i][1].exec(match[1])) {\n dateFormat = isoDates[i][0];\n allowTime = isoDates[i][2] !== false;\n break;\n }\n }\n if (dateFormat == null) {\n config._isValid = false;\n return;\n }\n if (match[3]) {\n for (i = 0, l = isoTimesLen; i < l; i++) {\n if (isoTimes[i][1].exec(match[3])) {\n // match[2] should be 'T' or space\n timeFormat = (match[2] || ' ') + isoTimes[i][0];\n break;\n }\n }\n if (timeFormat == null) {\n config._isValid = false;\n return;\n }\n }\n if (!allowTime && timeFormat != null) {\n config._isValid = false;\n return;\n }\n if (match[4]) {\n if (tzRegex.exec(match[4])) {\n tzFormat = 'Z';\n } else {\n config._isValid = false;\n return;\n }\n }\n config._f = dateFormat + (timeFormat || '') + (tzFormat || '');\n configFromStringAndFormat(config);\n } else {\n config._isValid = false;\n }\n }\n\n function extractFromRFC2822Strings(\n yearStr,\n monthStr,\n dayStr,\n hourStr,\n minuteStr,\n secondStr\n ) {\n var result = [\n untruncateYear(yearStr),\n defaultLocaleMonthsShort.indexOf(monthStr),\n parseInt(dayStr, 10),\n parseInt(hourStr, 10),\n parseInt(minuteStr, 10),\n ];\n\n if (secondStr) {\n result.push(parseInt(secondStr, 10));\n }\n\n return result;\n }\n\n function untruncateYear(yearStr) {\n var year = parseInt(yearStr, 10);\n if (year <= 49) {\n return 2000 + year;\n } else if (year <= 999) {\n return 1900 + year;\n }\n return year;\n }\n\n function preprocessRFC2822(s) {\n // Remove comments and folding whitespace and replace multiple-spaces with a single space\n return s\n .replace(/\\([^()]*\\)|[\\n\\t]/g, ' ')\n .replace(/(\\s\\s+)/g, ' ')\n .replace(/^\\s\\s*/, '')\n .replace(/\\s\\s*$/, '');\n }\n\n function checkWeekday(weekdayStr, parsedInput, config) {\n if (weekdayStr) {\n // TODO: Replace the vanilla JS Date object with an independent day-of-week check.\n var weekdayProvided = defaultLocaleWeekdaysShort.indexOf(weekdayStr),\n weekdayActual = new Date(\n parsedInput[0],\n parsedInput[1],\n parsedInput[2]\n ).getDay();\n if (weekdayProvided !== weekdayActual) {\n getParsingFlags(config).weekdayMismatch = true;\n config._isValid = false;\n return false;\n }\n }\n return true;\n }\n\n function calculateOffset(obsOffset, militaryOffset, numOffset) {\n if (obsOffset) {\n return obsOffsets[obsOffset];\n } else if (militaryOffset) {\n // the only allowed military tz is Z\n return 0;\n } else {\n var hm = parseInt(numOffset, 10),\n m = hm % 100,\n h = (hm - m) / 100;\n return h * 60 + m;\n }\n }\n\n // date and time from ref 2822 format\n function configFromRFC2822(config) {\n var match = rfc2822.exec(preprocessRFC2822(config._i)),\n parsedArray;\n if (match) {\n parsedArray = extractFromRFC2822Strings(\n match[4],\n match[3],\n match[2],\n match[5],\n match[6],\n match[7]\n );\n if (!checkWeekday(match[1], parsedArray, config)) {\n return;\n }\n\n config._a = parsedArray;\n config._tzm = calculateOffset(match[8], match[9], match[10]);\n\n config._d = createUTCDate.apply(null, config._a);\n config._d.setUTCMinutes(config._d.getUTCMinutes() - config._tzm);\n\n getParsingFlags(config).rfc2822 = true;\n } else {\n config._isValid = false;\n }\n }\n\n // date from 1) ASP.NET, 2) ISO, 3) RFC 2822 formats, or 4) optional fallback if parsing isn't strict\n function configFromString(config) {\n var matched = aspNetJsonRegex.exec(config._i);\n if (matched !== null) {\n config._d = new Date(+matched[1]);\n return;\n }\n\n configFromISO(config);\n if (config._isValid === false) {\n delete config._isValid;\n } else {\n return;\n }\n\n configFromRFC2822(config);\n if (config._isValid === false) {\n delete config._isValid;\n } else {\n return;\n }\n\n if (config._strict) {\n config._isValid = false;\n } else {\n // Final attempt, use Input Fallback\n hooks.createFromInputFallback(config);\n }\n }\n\n hooks.createFromInputFallback = deprecate(\n 'value provided is not in a recognized RFC2822 or ISO format. moment construction falls back to js Date(), ' +\n 'which is not reliable across all browsers and versions. Non RFC2822/ISO date formats are ' +\n 'discouraged. Please refer to http://momentjs.com/guides/#/warnings/js-date/ for more info.',\n function (config) {\n config._d = new Date(config._i + (config._useUTC ? ' UTC' : ''));\n }\n );\n\n // Pick the first defined of two or three arguments.\n function defaults(a, b, c) {\n if (a != null) {\n return a;\n }\n if (b != null) {\n return b;\n }\n return c;\n }\n\n function currentDateArray(config) {\n // hooks is actually the exported moment object\n var nowValue = new Date(hooks.now());\n if (config._useUTC) {\n return [\n nowValue.getUTCFullYear(),\n nowValue.getUTCMonth(),\n nowValue.getUTCDate(),\n ];\n }\n return [nowValue.getFullYear(), nowValue.getMonth(), nowValue.getDate()];\n }\n\n // convert an array to a date.\n // the array should mirror the parameters below\n // note: all values past the year are optional and will default to the lowest possible value.\n // [year, month, day , hour, minute, second, millisecond]\n function configFromArray(config) {\n var i,\n date,\n input = [],\n currentDate,\n expectedWeekday,\n yearToUse;\n\n if (config._d) {\n return;\n }\n\n currentDate = currentDateArray(config);\n\n //compute day of the year from weeks and weekdays\n if (config._w && config._a[DATE] == null && config._a[MONTH] == null) {\n dayOfYearFromWeekInfo(config);\n }\n\n //if the day of the year is set, figure out what it is\n if (config._dayOfYear != null) {\n yearToUse = defaults(config._a[YEAR], currentDate[YEAR]);\n\n if (\n config._dayOfYear > daysInYear(yearToUse) ||\n config._dayOfYear === 0\n ) {\n getParsingFlags(config)._overflowDayOfYear = true;\n }\n\n date = createUTCDate(yearToUse, 0, config._dayOfYear);\n config._a[MONTH] = date.getUTCMonth();\n config._a[DATE] = date.getUTCDate();\n }\n\n // Default to current date.\n // * if no year, month, day of month are given, default to today\n // * if day of month is given, default month and year\n // * if month is given, default only year\n // * if year is given, don't default anything\n for (i = 0; i < 3 && config._a[i] == null; ++i) {\n config._a[i] = input[i] = currentDate[i];\n }\n\n // Zero out whatever was not defaulted, including time\n for (; i < 7; i++) {\n config._a[i] = input[i] =\n config._a[i] == null ? (i === 2 ? 1 : 0) : config._a[i];\n }\n\n // Check for 24:00:00.000\n if (\n config._a[HOUR] === 24 &&\n config._a[MINUTE] === 0 &&\n config._a[SECOND] === 0 &&\n config._a[MILLISECOND] === 0\n ) {\n config._nextDay = true;\n config._a[HOUR] = 0;\n }\n\n config._d = (config._useUTC ? createUTCDate : createDate).apply(\n null,\n input\n );\n expectedWeekday = config._useUTC\n ? config._d.getUTCDay()\n : config._d.getDay();\n\n // Apply timezone offset from input. The actual utcOffset can be changed\n // with parseZone.\n if (config._tzm != null) {\n config._d.setUTCMinutes(config._d.getUTCMinutes() - config._tzm);\n }\n\n if (config._nextDay) {\n config._a[HOUR] = 24;\n }\n\n // check for mismatching day of week\n if (\n config._w &&\n typeof config._w.d !== 'undefined' &&\n config._w.d !== expectedWeekday\n ) {\n getParsingFlags(config).weekdayMismatch = true;\n }\n }\n\n function dayOfYearFromWeekInfo(config) {\n var w, weekYear, week, weekday, dow, doy, temp, weekdayOverflow, curWeek;\n\n w = config._w;\n if (w.GG != null || w.W != null || w.E != null) {\n dow = 1;\n doy = 4;\n\n // TODO: We need to take the current isoWeekYear, but that depends on\n // how we interpret now (local, utc, fixed offset). So create\n // a now version of current config (take local/utc/offset flags, and\n // create now).\n weekYear = defaults(\n w.GG,\n config._a[YEAR],\n weekOfYear(createLocal(), 1, 4).year\n );\n week = defaults(w.W, 1);\n weekday = defaults(w.E, 1);\n if (weekday < 1 || weekday > 7) {\n weekdayOverflow = true;\n }\n } else {\n dow = config._locale._week.dow;\n doy = config._locale._week.doy;\n\n curWeek = weekOfYear(createLocal(), dow, doy);\n\n weekYear = defaults(w.gg, config._a[YEAR], curWeek.year);\n\n // Default to current week.\n week = defaults(w.w, curWeek.week);\n\n if (w.d != null) {\n // weekday -- low day numbers are considered next week\n weekday = w.d;\n if (weekday < 0 || weekday > 6) {\n weekdayOverflow = true;\n }\n } else if (w.e != null) {\n // local weekday -- counting starts from beginning of week\n weekday = w.e + dow;\n if (w.e < 0 || w.e > 6) {\n weekdayOverflow = true;\n }\n } else {\n // default to beginning of week\n weekday = dow;\n }\n }\n if (week < 1 || week > weeksInYear(weekYear, dow, doy)) {\n getParsingFlags(config)._overflowWeeks = true;\n } else if (weekdayOverflow != null) {\n getParsingFlags(config)._overflowWeekday = true;\n } else {\n temp = dayOfYearFromWeeks(weekYear, week, weekday, dow, doy);\n config._a[YEAR] = temp.year;\n config._dayOfYear = temp.dayOfYear;\n }\n }\n\n // constant that refers to the ISO standard\n hooks.ISO_8601 = function () {};\n\n // constant that refers to the RFC 2822 form\n hooks.RFC_2822 = function () {};\n\n // date from string and format string\n function configFromStringAndFormat(config) {\n // TODO: Move this to another part of the creation flow to prevent circular deps\n if (config._f === hooks.ISO_8601) {\n configFromISO(config);\n return;\n }\n if (config._f === hooks.RFC_2822) {\n configFromRFC2822(config);\n return;\n }\n config._a = [];\n getParsingFlags(config).empty = true;\n\n // This array is used to make a Date, either with `new Date` or `Date.UTC`\n var string = '' + config._i,\n i,\n parsedInput,\n tokens,\n token,\n skipped,\n stringLength = string.length,\n totalParsedInputLength = 0,\n era,\n tokenLen;\n\n tokens =\n expandFormat(config._f, config._locale).match(formattingTokens) || [];\n tokenLen = tokens.length;\n for (i = 0; i < tokenLen; i++) {\n token = tokens[i];\n parsedInput = (string.match(getParseRegexForToken(token, config)) ||\n [])[0];\n if (parsedInput) {\n skipped = string.substr(0, string.indexOf(parsedInput));\n if (skipped.length > 0) {\n getParsingFlags(config).unusedInput.push(skipped);\n }\n string = string.slice(\n string.indexOf(parsedInput) + parsedInput.length\n );\n totalParsedInputLength += parsedInput.length;\n }\n // don't parse if it's not a known token\n if (formatTokenFunctions[token]) {\n if (parsedInput) {\n getParsingFlags(config).empty = false;\n } else {\n getParsingFlags(config).unusedTokens.push(token);\n }\n addTimeToArrayFromToken(token, parsedInput, config);\n } else if (config._strict && !parsedInput) {\n getParsingFlags(config).unusedTokens.push(token);\n }\n }\n\n // add remaining unparsed input length to the string\n getParsingFlags(config).charsLeftOver =\n stringLength - totalParsedInputLength;\n if (string.length > 0) {\n getParsingFlags(config).unusedInput.push(string);\n }\n\n // clear _12h flag if hour is <= 12\n if (\n config._a[HOUR] <= 12 &&\n getParsingFlags(config).bigHour === true &&\n config._a[HOUR] > 0\n ) {\n getParsingFlags(config).bigHour = undefined;\n }\n\n getParsingFlags(config).parsedDateParts = config._a.slice(0);\n getParsingFlags(config).meridiem = config._meridiem;\n // handle meridiem\n config._a[HOUR] = meridiemFixWrap(\n config._locale,\n config._a[HOUR],\n config._meridiem\n );\n\n // handle era\n era = getParsingFlags(config).era;\n if (era !== null) {\n config._a[YEAR] = config._locale.erasConvertYear(era, config._a[YEAR]);\n }\n\n configFromArray(config);\n checkOverflow(config);\n }\n\n function meridiemFixWrap(locale, hour, meridiem) {\n var isPm;\n\n if (meridiem == null) {\n // nothing to do\n return hour;\n }\n if (locale.meridiemHour != null) {\n return locale.meridiemHour(hour, meridiem);\n } else if (locale.isPM != null) {\n // Fallback\n isPm = locale.isPM(meridiem);\n if (isPm && hour < 12) {\n hour += 12;\n }\n if (!isPm && hour === 12) {\n hour = 0;\n }\n return hour;\n } else {\n // this is not supposed to happen\n return hour;\n }\n }\n\n // date from string and array of format strings\n function configFromStringAndArray(config) {\n var tempConfig,\n bestMoment,\n scoreToBeat,\n i,\n currentScore,\n validFormatFound,\n bestFormatIsValid = false,\n configfLen = config._f.length;\n\n if (configfLen === 0) {\n getParsingFlags(config).invalidFormat = true;\n config._d = new Date(NaN);\n return;\n }\n\n for (i = 0; i < configfLen; i++) {\n currentScore = 0;\n validFormatFound = false;\n tempConfig = copyConfig({}, config);\n if (config._useUTC != null) {\n tempConfig._useUTC = config._useUTC;\n }\n tempConfig._f = config._f[i];\n configFromStringAndFormat(tempConfig);\n\n if (isValid(tempConfig)) {\n validFormatFound = true;\n }\n\n // if there is any input that was not parsed add a penalty for that format\n currentScore += getParsingFlags(tempConfig).charsLeftOver;\n\n //or tokens\n currentScore += getParsingFlags(tempConfig).unusedTokens.length * 10;\n\n getParsingFlags(tempConfig).score = currentScore;\n\n if (!bestFormatIsValid) {\n if (\n scoreToBeat == null ||\n currentScore < scoreToBeat ||\n validFormatFound\n ) {\n scoreToBeat = currentScore;\n bestMoment = tempConfig;\n if (validFormatFound) {\n bestFormatIsValid = true;\n }\n }\n } else {\n if (currentScore < scoreToBeat) {\n scoreToBeat = currentScore;\n bestMoment = tempConfig;\n }\n }\n }\n\n extend(config, bestMoment || tempConfig);\n }\n\n function configFromObject(config) {\n if (config._d) {\n return;\n }\n\n var i = normalizeObjectUnits(config._i),\n dayOrDate = i.day === undefined ? i.date : i.day;\n config._a = map(\n [i.year, i.month, dayOrDate, i.hour, i.minute, i.second, i.millisecond],\n function (obj) {\n return obj && parseInt(obj, 10);\n }\n );\n\n configFromArray(config);\n }\n\n function createFromConfig(config) {\n var res = new Moment(checkOverflow(prepareConfig(config)));\n if (res._nextDay) {\n // Adding is smart enough around DST\n res.add(1, 'd');\n res._nextDay = undefined;\n }\n\n return res;\n }\n\n function prepareConfig(config) {\n var input = config._i,\n format = config._f;\n\n config._locale = config._locale || getLocale(config._l);\n\n if (input === null || (format === undefined && input === '')) {\n return createInvalid({ nullInput: true });\n }\n\n if (typeof input === 'string') {\n config._i = input = config._locale.preparse(input);\n }\n\n if (isMoment(input)) {\n return new Moment(checkOverflow(input));\n } else if (isDate(input)) {\n config._d = input;\n } else if (isArray(format)) {\n configFromStringAndArray(config);\n } else if (format) {\n configFromStringAndFormat(config);\n } else {\n configFromInput(config);\n }\n\n if (!isValid(config)) {\n config._d = null;\n }\n\n return config;\n }\n\n function configFromInput(config) {\n var input = config._i;\n if (isUndefined(input)) {\n config._d = new Date(hooks.now());\n } else if (isDate(input)) {\n config._d = new Date(input.valueOf());\n } else if (typeof input === 'string') {\n configFromString(config);\n } else if (isArray(input)) {\n config._a = map(input.slice(0), function (obj) {\n return parseInt(obj, 10);\n });\n configFromArray(config);\n } else if (isObject(input)) {\n configFromObject(config);\n } else if (isNumber(input)) {\n // from milliseconds\n config._d = new Date(input);\n } else {\n hooks.createFromInputFallback(config);\n }\n }\n\n function createLocalOrUTC(input, format, locale, strict, isUTC) {\n var c = {};\n\n if (format === true || format === false) {\n strict = format;\n format = undefined;\n }\n\n if (locale === true || locale === false) {\n strict = locale;\n locale = undefined;\n }\n\n if (\n (isObject(input) && isObjectEmpty(input)) ||\n (isArray(input) && input.length === 0)\n ) {\n input = undefined;\n }\n // object construction must be done this way.\n // https://github.com/moment/moment/issues/1423\n c._isAMomentObject = true;\n c._useUTC = c._isUTC = isUTC;\n c._l = locale;\n c._i = input;\n c._f = format;\n c._strict = strict;\n\n return createFromConfig(c);\n }\n\n function createLocal(input, format, locale, strict) {\n return createLocalOrUTC(input, format, locale, strict, false);\n }\n\n var prototypeMin = deprecate(\n 'moment().min is deprecated, use moment.max instead. http://momentjs.com/guides/#/warnings/min-max/',\n function () {\n var other = createLocal.apply(null, arguments);\n if (this.isValid() && other.isValid()) {\n return other < this ? this : other;\n } else {\n return createInvalid();\n }\n }\n ),\n prototypeMax = deprecate(\n 'moment().max is deprecated, use moment.min instead. http://momentjs.com/guides/#/warnings/min-max/',\n function () {\n var other = createLocal.apply(null, arguments);\n if (this.isValid() && other.isValid()) {\n return other > this ? this : other;\n } else {\n return createInvalid();\n }\n }\n );\n\n // Pick a moment m from moments so that m[fn](other) is true for all\n // other. This relies on the function fn to be transitive.\n //\n // moments should either be an array of moment objects or an array, whose\n // first element is an array of moment objects.\n function pickBy(fn, moments) {\n var res, i;\n if (moments.length === 1 && isArray(moments[0])) {\n moments = moments[0];\n }\n if (!moments.length) {\n return createLocal();\n }\n res = moments[0];\n for (i = 1; i < moments.length; ++i) {\n if (!moments[i].isValid() || moments[i][fn](res)) {\n res = moments[i];\n }\n }\n return res;\n }\n\n // TODO: Use [].sort instead?\n function min() {\n var args = [].slice.call(arguments, 0);\n\n return pickBy('isBefore', args);\n }\n\n function max() {\n var args = [].slice.call(arguments, 0);\n\n return pickBy('isAfter', args);\n }\n\n var now = function () {\n return Date.now ? Date.now() : +new Date();\n };\n\n var ordering = [\n 'year',\n 'quarter',\n 'month',\n 'week',\n 'day',\n 'hour',\n 'minute',\n 'second',\n 'millisecond',\n ];\n\n function isDurationValid(m) {\n var key,\n unitHasDecimal = false,\n i,\n orderLen = ordering.length;\n for (key in m) {\n if (\n hasOwnProp(m, key) &&\n !(\n indexOf.call(ordering, key) !== -1 &&\n (m[key] == null || !isNaN(m[key]))\n )\n ) {\n return false;\n }\n }\n\n for (i = 0; i < orderLen; ++i) {\n if (m[ordering[i]]) {\n if (unitHasDecimal) {\n return false; // only allow non-integers for smallest unit\n }\n if (parseFloat(m[ordering[i]]) !== toInt(m[ordering[i]])) {\n unitHasDecimal = true;\n }\n }\n }\n\n return true;\n }\n\n function isValid$1() {\n return this._isValid;\n }\n\n function createInvalid$1() {\n return createDuration(NaN);\n }\n\n function Duration(duration) {\n var normalizedInput = normalizeObjectUnits(duration),\n years = normalizedInput.year || 0,\n quarters = normalizedInput.quarter || 0,\n months = normalizedInput.month || 0,\n weeks = normalizedInput.week || normalizedInput.isoWeek || 0,\n days = normalizedInput.day || 0,\n hours = normalizedInput.hour || 0,\n minutes = normalizedInput.minute || 0,\n seconds = normalizedInput.second || 0,\n milliseconds = normalizedInput.millisecond || 0;\n\n this._isValid = isDurationValid(normalizedInput);\n\n // representation for dateAddRemove\n this._milliseconds =\n +milliseconds +\n seconds * 1e3 + // 1000\n minutes * 6e4 + // 1000 * 60\n hours * 1000 * 60 * 60; //using 1000 * 60 * 60 instead of 36e5 to avoid floating point rounding errors https://github.com/moment/moment/issues/2978\n // Because of dateAddRemove treats 24 hours as different from a\n // day when working around DST, we need to store them separately\n this._days = +days + weeks * 7;\n // It is impossible to translate months into days without knowing\n // which months you are are talking about, so we have to store\n // it separately.\n this._months = +months + quarters * 3 + years * 12;\n\n this._data = {};\n\n this._locale = getLocale();\n\n this._bubble();\n }\n\n function isDuration(obj) {\n return obj instanceof Duration;\n }\n\n function absRound(number) {\n if (number < 0) {\n return Math.round(-1 * number) * -1;\n } else {\n return Math.round(number);\n }\n }\n\n // compare two arrays, return the number of differences\n function compareArrays(array1, array2, dontConvert) {\n var len = Math.min(array1.length, array2.length),\n lengthDiff = Math.abs(array1.length - array2.length),\n diffs = 0,\n i;\n for (i = 0; i < len; i++) {\n if (\n (dontConvert && array1[i] !== array2[i]) ||\n (!dontConvert && toInt(array1[i]) !== toInt(array2[i]))\n ) {\n diffs++;\n }\n }\n return diffs + lengthDiff;\n }\n\n // FORMATTING\n\n function offset(token, separator) {\n addFormatToken(token, 0, 0, function () {\n var offset = this.utcOffset(),\n sign = '+';\n if (offset < 0) {\n offset = -offset;\n sign = '-';\n }\n return (\n sign +\n zeroFill(~~(offset / 60), 2) +\n separator +\n zeroFill(~~offset % 60, 2)\n );\n });\n }\n\n offset('Z', ':');\n offset('ZZ', '');\n\n // PARSING\n\n addRegexToken('Z', matchShortOffset);\n addRegexToken('ZZ', matchShortOffset);\n addParseToken(['Z', 'ZZ'], function (input, array, config) {\n config._useUTC = true;\n config._tzm = offsetFromString(matchShortOffset, input);\n });\n\n // HELPERS\n\n // timezone chunker\n // '+10:00' > ['10', '00']\n // '-1530' > ['-15', '30']\n var chunkOffset = /([\\+\\-]|\\d\\d)/gi;\n\n function offsetFromString(matcher, string) {\n var matches = (string || '').match(matcher),\n chunk,\n parts,\n minutes;\n\n if (matches === null) {\n return null;\n }\n\n chunk = matches[matches.length - 1] || [];\n parts = (chunk + '').match(chunkOffset) || ['-', 0, 0];\n minutes = +(parts[1] * 60) + toInt(parts[2]);\n\n return minutes === 0 ? 0 : parts[0] === '+' ? minutes : -minutes;\n }\n\n // Return a moment from input, that is local/utc/zone equivalent to model.\n function cloneWithOffset(input, model) {\n var res, diff;\n if (model._isUTC) {\n res = model.clone();\n diff =\n (isMoment(input) || isDate(input)\n ? input.valueOf()\n : createLocal(input).valueOf()) - res.valueOf();\n // Use low-level api, because this fn is low-level api.\n res._d.setTime(res._d.valueOf() + diff);\n hooks.updateOffset(res, false);\n return res;\n } else {\n return createLocal(input).local();\n }\n }\n\n function getDateOffset(m) {\n // On Firefox.24 Date#getTimezoneOffset returns a floating point.\n // https://github.com/moment/moment/pull/1871\n return -Math.round(m._d.getTimezoneOffset());\n }\n\n // HOOKS\n\n // This function will be called whenever a moment is mutated.\n // It is intended to keep the offset in sync with the timezone.\n hooks.updateOffset = function () {};\n\n // MOMENTS\n\n // keepLocalTime = true means only change the timezone, without\n // affecting the local hour. So 5:31:26 +0300 --[utcOffset(2, true)]-->\n // 5:31:26 +0200 It is possible that 5:31:26 doesn't exist with offset\n // +0200, so we adjust the time as needed, to be valid.\n //\n // Keeping the time actually adds/subtracts (one hour)\n // from the actual represented time. That is why we call updateOffset\n // a second time. In case it wants us to change the offset again\n // _changeInProgress == true case, then we have to adjust, because\n // there is no such time in the given timezone.\n function getSetOffset(input, keepLocalTime, keepMinutes) {\n var offset = this._offset || 0,\n localAdjust;\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n if (input != null) {\n if (typeof input === 'string') {\n input = offsetFromString(matchShortOffset, input);\n if (input === null) {\n return this;\n }\n } else if (Math.abs(input) < 16 && !keepMinutes) {\n input = input * 60;\n }\n if (!this._isUTC && keepLocalTime) {\n localAdjust = getDateOffset(this);\n }\n this._offset = input;\n this._isUTC = true;\n if (localAdjust != null) {\n this.add(localAdjust, 'm');\n }\n if (offset !== input) {\n if (!keepLocalTime || this._changeInProgress) {\n addSubtract(\n this,\n createDuration(input - offset, 'm'),\n 1,\n false\n );\n } else if (!this._changeInProgress) {\n this._changeInProgress = true;\n hooks.updateOffset(this, true);\n this._changeInProgress = null;\n }\n }\n return this;\n } else {\n return this._isUTC ? offset : getDateOffset(this);\n }\n }\n\n function getSetZone(input, keepLocalTime) {\n if (input != null) {\n if (typeof input !== 'string') {\n input = -input;\n }\n\n this.utcOffset(input, keepLocalTime);\n\n return this;\n } else {\n return -this.utcOffset();\n }\n }\n\n function setOffsetToUTC(keepLocalTime) {\n return this.utcOffset(0, keepLocalTime);\n }\n\n function setOffsetToLocal(keepLocalTime) {\n if (this._isUTC) {\n this.utcOffset(0, keepLocalTime);\n this._isUTC = false;\n\n if (keepLocalTime) {\n this.subtract(getDateOffset(this), 'm');\n }\n }\n return this;\n }\n\n function setOffsetToParsedOffset() {\n if (this._tzm != null) {\n this.utcOffset(this._tzm, false, true);\n } else if (typeof this._i === 'string') {\n var tZone = offsetFromString(matchOffset, this._i);\n if (tZone != null) {\n this.utcOffset(tZone);\n } else {\n this.utcOffset(0, true);\n }\n }\n return this;\n }\n\n function hasAlignedHourOffset(input) {\n if (!this.isValid()) {\n return false;\n }\n input = input ? createLocal(input).utcOffset() : 0;\n\n return (this.utcOffset() - input) % 60 === 0;\n }\n\n function isDaylightSavingTime() {\n return (\n this.utcOffset() > this.clone().month(0).utcOffset() ||\n this.utcOffset() > this.clone().month(5).utcOffset()\n );\n }\n\n function isDaylightSavingTimeShifted() {\n if (!isUndefined(this._isDSTShifted)) {\n return this._isDSTShifted;\n }\n\n var c = {},\n other;\n\n copyConfig(c, this);\n c = prepareConfig(c);\n\n if (c._a) {\n other = c._isUTC ? createUTC(c._a) : createLocal(c._a);\n this._isDSTShifted =\n this.isValid() && compareArrays(c._a, other.toArray()) > 0;\n } else {\n this._isDSTShifted = false;\n }\n\n return this._isDSTShifted;\n }\n\n function isLocal() {\n return this.isValid() ? !this._isUTC : false;\n }\n\n function isUtcOffset() {\n return this.isValid() ? this._isUTC : false;\n }\n\n function isUtc() {\n return this.isValid() ? this._isUTC && this._offset === 0 : false;\n }\n\n // ASP.NET json date format regex\n var aspNetRegex = /^(-|\\+)?(?:(\\d*)[. ])?(\\d+):(\\d+)(?::(\\d+)(\\.\\d*)?)?$/,\n // from http://docs.closure-library.googlecode.com/git/closure_goog_date_date.js.source.html\n // somewhat more in line with 4.4.3.2 2004 spec, but allows decimal anywhere\n // and further modified to allow for strings containing both week and day\n isoRegex =\n /^(-|\\+)?P(?:([-+]?[0-9,.]*)Y)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)W)?(?:([-+]?[0-9,.]*)D)?(?:T(?:([-+]?[0-9,.]*)H)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)S)?)?$/;\n\n function createDuration(input, key) {\n var duration = input,\n // matching against regexp is expensive, do it on demand\n match = null,\n sign,\n ret,\n diffRes;\n\n if (isDuration(input)) {\n duration = {\n ms: input._milliseconds,\n d: input._days,\n M: input._months,\n };\n } else if (isNumber(input) || !isNaN(+input)) {\n duration = {};\n if (key) {\n duration[key] = +input;\n } else {\n duration.milliseconds = +input;\n }\n } else if ((match = aspNetRegex.exec(input))) {\n sign = match[1] === '-' ? -1 : 1;\n duration = {\n y: 0,\n d: toInt(match[DATE]) * sign,\n h: toInt(match[HOUR]) * sign,\n m: toInt(match[MINUTE]) * sign,\n s: toInt(match[SECOND]) * sign,\n ms: toInt(absRound(match[MILLISECOND] * 1000)) * sign, // the millisecond decimal point is included in the match\n };\n } else if ((match = isoRegex.exec(input))) {\n sign = match[1] === '-' ? -1 : 1;\n duration = {\n y: parseIso(match[2], sign),\n M: parseIso(match[3], sign),\n w: parseIso(match[4], sign),\n d: parseIso(match[5], sign),\n h: parseIso(match[6], sign),\n m: parseIso(match[7], sign),\n s: parseIso(match[8], sign),\n };\n } else if (duration == null) {\n // checks for null or undefined\n duration = {};\n } else if (\n typeof duration === 'object' &&\n ('from' in duration || 'to' in duration)\n ) {\n diffRes = momentsDifference(\n createLocal(duration.from),\n createLocal(duration.to)\n );\n\n duration = {};\n duration.ms = diffRes.milliseconds;\n duration.M = diffRes.months;\n }\n\n ret = new Duration(duration);\n\n if (isDuration(input) && hasOwnProp(input, '_locale')) {\n ret._locale = input._locale;\n }\n\n if (isDuration(input) && hasOwnProp(input, '_isValid')) {\n ret._isValid = input._isValid;\n }\n\n return ret;\n }\n\n createDuration.fn = Duration.prototype;\n createDuration.invalid = createInvalid$1;\n\n function parseIso(inp, sign) {\n // We'd normally use ~~inp for this, but unfortunately it also\n // converts floats to ints.\n // inp may be undefined, so careful calling replace on it.\n var res = inp && parseFloat(inp.replace(',', '.'));\n // apply sign while we're at it\n return (isNaN(res) ? 0 : res) * sign;\n }\n\n function positiveMomentsDifference(base, other) {\n var res = {};\n\n res.months =\n other.month() - base.month() + (other.year() - base.year()) * 12;\n if (base.clone().add(res.months, 'M').isAfter(other)) {\n --res.months;\n }\n\n res.milliseconds = +other - +base.clone().add(res.months, 'M');\n\n return res;\n }\n\n function momentsDifference(base, other) {\n var res;\n if (!(base.isValid() && other.isValid())) {\n return { milliseconds: 0, months: 0 };\n }\n\n other = cloneWithOffset(other, base);\n if (base.isBefore(other)) {\n res = positiveMomentsDifference(base, other);\n } else {\n res = positiveMomentsDifference(other, base);\n res.milliseconds = -res.milliseconds;\n res.months = -res.months;\n }\n\n return res;\n }\n\n // TODO: remove 'name' arg after deprecation is removed\n function createAdder(direction, name) {\n return function (val, period) {\n var dur, tmp;\n //invert the arguments, but complain about it\n if (period !== null && !isNaN(+period)) {\n deprecateSimple(\n name,\n 'moment().' +\n name +\n '(period, number) is deprecated. Please use moment().' +\n name +\n '(number, period). ' +\n 'See http://momentjs.com/guides/#/warnings/add-inverted-param/ for more info.'\n );\n tmp = val;\n val = period;\n period = tmp;\n }\n\n dur = createDuration(val, period);\n addSubtract(this, dur, direction);\n return this;\n };\n }\n\n function addSubtract(mom, duration, isAdding, updateOffset) {\n var milliseconds = duration._milliseconds,\n days = absRound(duration._days),\n months = absRound(duration._months);\n\n if (!mom.isValid()) {\n // No op\n return;\n }\n\n updateOffset = updateOffset == null ? true : updateOffset;\n\n if (months) {\n setMonth(mom, get(mom, 'Month') + months * isAdding);\n }\n if (days) {\n set$1(mom, 'Date', get(mom, 'Date') + days * isAdding);\n }\n if (milliseconds) {\n mom._d.setTime(mom._d.valueOf() + milliseconds * isAdding);\n }\n if (updateOffset) {\n hooks.updateOffset(mom, days || months);\n }\n }\n\n var add = createAdder(1, 'add'),\n subtract = createAdder(-1, 'subtract');\n\n function isString(input) {\n return typeof input === 'string' || input instanceof String;\n }\n\n // type MomentInput = Moment | Date | string | number | (number | string)[] | MomentInputObject | void; // null | undefined\n function isMomentInput(input) {\n return (\n isMoment(input) ||\n isDate(input) ||\n isString(input) ||\n isNumber(input) ||\n isNumberOrStringArray(input) ||\n isMomentInputObject(input) ||\n input === null ||\n input === undefined\n );\n }\n\n function isMomentInputObject(input) {\n var objectTest = isObject(input) && !isObjectEmpty(input),\n propertyTest = false,\n properties = [\n 'years',\n 'year',\n 'y',\n 'months',\n 'month',\n 'M',\n 'days',\n 'day',\n 'd',\n 'dates',\n 'date',\n 'D',\n 'hours',\n 'hour',\n 'h',\n 'minutes',\n 'minute',\n 'm',\n 'seconds',\n 'second',\n 's',\n 'milliseconds',\n 'millisecond',\n 'ms',\n ],\n i,\n property,\n propertyLen = properties.length;\n\n for (i = 0; i < propertyLen; i += 1) {\n property = properties[i];\n propertyTest = propertyTest || hasOwnProp(input, property);\n }\n\n return objectTest && propertyTest;\n }\n\n function isNumberOrStringArray(input) {\n var arrayTest = isArray(input),\n dataTypeTest = false;\n if (arrayTest) {\n dataTypeTest =\n input.filter(function (item) {\n return !isNumber(item) && isString(input);\n }).length === 0;\n }\n return arrayTest && dataTypeTest;\n }\n\n function isCalendarSpec(input) {\n var objectTest = isObject(input) && !isObjectEmpty(input),\n propertyTest = false,\n properties = [\n 'sameDay',\n 'nextDay',\n 'lastDay',\n 'nextWeek',\n 'lastWeek',\n 'sameElse',\n ],\n i,\n property;\n\n for (i = 0; i < properties.length; i += 1) {\n property = properties[i];\n propertyTest = propertyTest || hasOwnProp(input, property);\n }\n\n return objectTest && propertyTest;\n }\n\n function getCalendarFormat(myMoment, now) {\n var diff = myMoment.diff(now, 'days', true);\n return diff < -6\n ? 'sameElse'\n : diff < -1\n ? 'lastWeek'\n : diff < 0\n ? 'lastDay'\n : diff < 1\n ? 'sameDay'\n : diff < 2\n ? 'nextDay'\n : diff < 7\n ? 'nextWeek'\n : 'sameElse';\n }\n\n function calendar$1(time, formats) {\n // Support for single parameter, formats only overload to the calendar function\n if (arguments.length === 1) {\n if (!arguments[0]) {\n time = undefined;\n formats = undefined;\n } else if (isMomentInput(arguments[0])) {\n time = arguments[0];\n formats = undefined;\n } else if (isCalendarSpec(arguments[0])) {\n formats = arguments[0];\n time = undefined;\n }\n }\n // We want to compare the start of today, vs this.\n // Getting start-of-today depends on whether we're local/utc/offset or not.\n var now = time || createLocal(),\n sod = cloneWithOffset(now, this).startOf('day'),\n format = hooks.calendarFormat(this, sod) || 'sameElse',\n output =\n formats &&\n (isFunction(formats[format])\n ? formats[format].call(this, now)\n : formats[format]);\n\n return this.format(\n output || this.localeData().calendar(format, this, createLocal(now))\n );\n }\n\n function clone() {\n return new Moment(this);\n }\n\n function isAfter(input, units) {\n var localInput = isMoment(input) ? input : createLocal(input);\n if (!(this.isValid() && localInput.isValid())) {\n return false;\n }\n units = normalizeUnits(units) || 'millisecond';\n if (units === 'millisecond') {\n return this.valueOf() > localInput.valueOf();\n } else {\n return localInput.valueOf() < this.clone().startOf(units).valueOf();\n }\n }\n\n function isBefore(input, units) {\n var localInput = isMoment(input) ? input : createLocal(input);\n if (!(this.isValid() && localInput.isValid())) {\n return false;\n }\n units = normalizeUnits(units) || 'millisecond';\n if (units === 'millisecond') {\n return this.valueOf() < localInput.valueOf();\n } else {\n return this.clone().endOf(units).valueOf() < localInput.valueOf();\n }\n }\n\n function isBetween(from, to, units, inclusivity) {\n var localFrom = isMoment(from) ? from : createLocal(from),\n localTo = isMoment(to) ? to : createLocal(to);\n if (!(this.isValid() && localFrom.isValid() && localTo.isValid())) {\n return false;\n }\n inclusivity = inclusivity || '()';\n return (\n (inclusivity[0] === '('\n ? this.isAfter(localFrom, units)\n : !this.isBefore(localFrom, units)) &&\n (inclusivity[1] === ')'\n ? this.isBefore(localTo, units)\n : !this.isAfter(localTo, units))\n );\n }\n\n function isSame(input, units) {\n var localInput = isMoment(input) ? input : createLocal(input),\n inputMs;\n if (!(this.isValid() && localInput.isValid())) {\n return false;\n }\n units = normalizeUnits(units) || 'millisecond';\n if (units === 'millisecond') {\n return this.valueOf() === localInput.valueOf();\n } else {\n inputMs = localInput.valueOf();\n return (\n this.clone().startOf(units).valueOf() <= inputMs &&\n inputMs <= this.clone().endOf(units).valueOf()\n );\n }\n }\n\n function isSameOrAfter(input, units) {\n return this.isSame(input, units) || this.isAfter(input, units);\n }\n\n function isSameOrBefore(input, units) {\n return this.isSame(input, units) || this.isBefore(input, units);\n }\n\n function diff(input, units, asFloat) {\n var that, zoneDelta, output;\n\n if (!this.isValid()) {\n return NaN;\n }\n\n that = cloneWithOffset(input, this);\n\n if (!that.isValid()) {\n return NaN;\n }\n\n zoneDelta = (that.utcOffset() - this.utcOffset()) * 6e4;\n\n units = normalizeUnits(units);\n\n switch (units) {\n case 'year':\n output = monthDiff(this, that) / 12;\n break;\n case 'month':\n output = monthDiff(this, that);\n break;\n case 'quarter':\n output = monthDiff(this, that) / 3;\n break;\n case 'second':\n output = (this - that) / 1e3;\n break; // 1000\n case 'minute':\n output = (this - that) / 6e4;\n break; // 1000 * 60\n case 'hour':\n output = (this - that) / 36e5;\n break; // 1000 * 60 * 60\n case 'day':\n output = (this - that - zoneDelta) / 864e5;\n break; // 1000 * 60 * 60 * 24, negate dst\n case 'week':\n output = (this - that - zoneDelta) / 6048e5;\n break; // 1000 * 60 * 60 * 24 * 7, negate dst\n default:\n output = this - that;\n }\n\n return asFloat ? output : absFloor(output);\n }\n\n function monthDiff(a, b) {\n if (a.date() < b.date()) {\n // end-of-month calculations work correct when the start month has more\n // days than the end month.\n return -monthDiff(b, a);\n }\n // difference in months\n var wholeMonthDiff = (b.year() - a.year()) * 12 + (b.month() - a.month()),\n // b is in (anchor - 1 month, anchor + 1 month)\n anchor = a.clone().add(wholeMonthDiff, 'months'),\n anchor2,\n adjust;\n\n if (b - anchor < 0) {\n anchor2 = a.clone().add(wholeMonthDiff - 1, 'months');\n // linear across the month\n adjust = (b - anchor) / (anchor - anchor2);\n } else {\n anchor2 = a.clone().add(wholeMonthDiff + 1, 'months');\n // linear across the month\n adjust = (b - anchor) / (anchor2 - anchor);\n }\n\n //check for negative zero, return zero if negative zero\n return -(wholeMonthDiff + adjust) || 0;\n }\n\n hooks.defaultFormat = 'YYYY-MM-DDTHH:mm:ssZ';\n hooks.defaultFormatUtc = 'YYYY-MM-DDTHH:mm:ss[Z]';\n\n function toString() {\n return this.clone().locale('en').format('ddd MMM DD YYYY HH:mm:ss [GMT]ZZ');\n }\n\n function toISOString(keepOffset) {\n if (!this.isValid()) {\n return null;\n }\n var utc = keepOffset !== true,\n m = utc ? this.clone().utc() : this;\n if (m.year() < 0 || m.year() > 9999) {\n return formatMoment(\n m,\n utc\n ? 'YYYYYY-MM-DD[T]HH:mm:ss.SSS[Z]'\n : 'YYYYYY-MM-DD[T]HH:mm:ss.SSSZ'\n );\n }\n if (isFunction(Date.prototype.toISOString)) {\n // native implementation is ~50x faster, use it when we can\n if (utc) {\n return this.toDate().toISOString();\n } else {\n return new Date(this.valueOf() + this.utcOffset() * 60 * 1000)\n .toISOString()\n .replace('Z', formatMoment(m, 'Z'));\n }\n }\n return formatMoment(\n m,\n utc ? 'YYYY-MM-DD[T]HH:mm:ss.SSS[Z]' : 'YYYY-MM-DD[T]HH:mm:ss.SSSZ'\n );\n }\n\n /**\n * Return a human readable representation of a moment that can\n * also be evaluated to get a new moment which is the same\n *\n * @link https://nodejs.org/dist/latest/docs/api/util.html#util_custom_inspect_function_on_objects\n */\n function inspect() {\n if (!this.isValid()) {\n return 'moment.invalid(/* ' + this._i + ' */)';\n }\n var func = 'moment',\n zone = '',\n prefix,\n year,\n datetime,\n suffix;\n if (!this.isLocal()) {\n func = this.utcOffset() === 0 ? 'moment.utc' : 'moment.parseZone';\n zone = 'Z';\n }\n prefix = '[' + func + '(\"]';\n year = 0 <= this.year() && this.year() <= 9999 ? 'YYYY' : 'YYYYYY';\n datetime = '-MM-DD[T]HH:mm:ss.SSS';\n suffix = zone + '[\")]';\n\n return this.format(prefix + year + datetime + suffix);\n }\n\n function format(inputString) {\n if (!inputString) {\n inputString = this.isUtc()\n ? hooks.defaultFormatUtc\n : hooks.defaultFormat;\n }\n var output = formatMoment(this, inputString);\n return this.localeData().postformat(output);\n }\n\n function from(time, withoutSuffix) {\n if (\n this.isValid() &&\n ((isMoment(time) && time.isValid()) || createLocal(time).isValid())\n ) {\n return createDuration({ to: this, from: time })\n .locale(this.locale())\n .humanize(!withoutSuffix);\n } else {\n return this.localeData().invalidDate();\n }\n }\n\n function fromNow(withoutSuffix) {\n return this.from(createLocal(), withoutSuffix);\n }\n\n function to(time, withoutSuffix) {\n if (\n this.isValid() &&\n ((isMoment(time) && time.isValid()) || createLocal(time).isValid())\n ) {\n return createDuration({ from: this, to: time })\n .locale(this.locale())\n .humanize(!withoutSuffix);\n } else {\n return this.localeData().invalidDate();\n }\n }\n\n function toNow(withoutSuffix) {\n return this.to(createLocal(), withoutSuffix);\n }\n\n // If passed a locale key, it will set the locale for this\n // instance. Otherwise, it will return the locale configuration\n // variables for this instance.\n function locale(key) {\n var newLocaleData;\n\n if (key === undefined) {\n return this._locale._abbr;\n } else {\n newLocaleData = getLocale(key);\n if (newLocaleData != null) {\n this._locale = newLocaleData;\n }\n return this;\n }\n }\n\n var lang = deprecate(\n 'moment().lang() is deprecated. Instead, use moment().localeData() to get the language configuration. Use moment().locale() to change languages.',\n function (key) {\n if (key === undefined) {\n return this.localeData();\n } else {\n return this.locale(key);\n }\n }\n );\n\n function localeData() {\n return this._locale;\n }\n\n var MS_PER_SECOND = 1000,\n MS_PER_MINUTE = 60 * MS_PER_SECOND,\n MS_PER_HOUR = 60 * MS_PER_MINUTE,\n MS_PER_400_YEARS = (365 * 400 + 97) * 24 * MS_PER_HOUR;\n\n // actual modulo - handles negative numbers (for dates before 1970):\n function mod$1(dividend, divisor) {\n return ((dividend % divisor) + divisor) % divisor;\n }\n\n function localStartOfDate(y, m, d) {\n // the date constructor remaps years 0-99 to 1900-1999\n if (y < 100 && y >= 0) {\n // preserve leap years using a full 400 year cycle, then reset\n return new Date(y + 400, m, d) - MS_PER_400_YEARS;\n } else {\n return new Date(y, m, d).valueOf();\n }\n }\n\n function utcStartOfDate(y, m, d) {\n // Date.UTC remaps years 0-99 to 1900-1999\n if (y < 100 && y >= 0) {\n // preserve leap years using a full 400 year cycle, then reset\n return Date.UTC(y + 400, m, d) - MS_PER_400_YEARS;\n } else {\n return Date.UTC(y, m, d);\n }\n }\n\n function startOf(units) {\n var time, startOfDate;\n units = normalizeUnits(units);\n if (units === undefined || units === 'millisecond' || !this.isValid()) {\n return this;\n }\n\n startOfDate = this._isUTC ? utcStartOfDate : localStartOfDate;\n\n switch (units) {\n case 'year':\n time = startOfDate(this.year(), 0, 1);\n break;\n case 'quarter':\n time = startOfDate(\n this.year(),\n this.month() - (this.month() % 3),\n 1\n );\n break;\n case 'month':\n time = startOfDate(this.year(), this.month(), 1);\n break;\n case 'week':\n time = startOfDate(\n this.year(),\n this.month(),\n this.date() - this.weekday()\n );\n break;\n case 'isoWeek':\n time = startOfDate(\n this.year(),\n this.month(),\n this.date() - (this.isoWeekday() - 1)\n );\n break;\n case 'day':\n case 'date':\n time = startOfDate(this.year(), this.month(), this.date());\n break;\n case 'hour':\n time = this._d.valueOf();\n time -= mod$1(\n time + (this._isUTC ? 0 : this.utcOffset() * MS_PER_MINUTE),\n MS_PER_HOUR\n );\n break;\n case 'minute':\n time = this._d.valueOf();\n time -= mod$1(time, MS_PER_MINUTE);\n break;\n case 'second':\n time = this._d.valueOf();\n time -= mod$1(time, MS_PER_SECOND);\n break;\n }\n\n this._d.setTime(time);\n hooks.updateOffset(this, true);\n return this;\n }\n\n function endOf(units) {\n var time, startOfDate;\n units = normalizeUnits(units);\n if (units === undefined || units === 'millisecond' || !this.isValid()) {\n return this;\n }\n\n startOfDate = this._isUTC ? utcStartOfDate : localStartOfDate;\n\n switch (units) {\n case 'year':\n time = startOfDate(this.year() + 1, 0, 1) - 1;\n break;\n case 'quarter':\n time =\n startOfDate(\n this.year(),\n this.month() - (this.month() % 3) + 3,\n 1\n ) - 1;\n break;\n case 'month':\n time = startOfDate(this.year(), this.month() + 1, 1) - 1;\n break;\n case 'week':\n time =\n startOfDate(\n this.year(),\n this.month(),\n this.date() - this.weekday() + 7\n ) - 1;\n break;\n case 'isoWeek':\n time =\n startOfDate(\n this.year(),\n this.month(),\n this.date() - (this.isoWeekday() - 1) + 7\n ) - 1;\n break;\n case 'day':\n case 'date':\n time = startOfDate(this.year(), this.month(), this.date() + 1) - 1;\n break;\n case 'hour':\n time = this._d.valueOf();\n time +=\n MS_PER_HOUR -\n mod$1(\n time + (this._isUTC ? 0 : this.utcOffset() * MS_PER_MINUTE),\n MS_PER_HOUR\n ) -\n 1;\n break;\n case 'minute':\n time = this._d.valueOf();\n time += MS_PER_MINUTE - mod$1(time, MS_PER_MINUTE) - 1;\n break;\n case 'second':\n time = this._d.valueOf();\n time += MS_PER_SECOND - mod$1(time, MS_PER_SECOND) - 1;\n break;\n }\n\n this._d.setTime(time);\n hooks.updateOffset(this, true);\n return this;\n }\n\n function valueOf() {\n return this._d.valueOf() - (this._offset || 0) * 60000;\n }\n\n function unix() {\n return Math.floor(this.valueOf() / 1000);\n }\n\n function toDate() {\n return new Date(this.valueOf());\n }\n\n function toArray() {\n var m = this;\n return [\n m.year(),\n m.month(),\n m.date(),\n m.hour(),\n m.minute(),\n m.second(),\n m.millisecond(),\n ];\n }\n\n function toObject() {\n var m = this;\n return {\n years: m.year(),\n months: m.month(),\n date: m.date(),\n hours: m.hours(),\n minutes: m.minutes(),\n seconds: m.seconds(),\n milliseconds: m.milliseconds(),\n };\n }\n\n function toJSON() {\n // new Date(NaN).toJSON() === null\n return this.isValid() ? this.toISOString() : null;\n }\n\n function isValid$2() {\n return isValid(this);\n }\n\n function parsingFlags() {\n return extend({}, getParsingFlags(this));\n }\n\n function invalidAt() {\n return getParsingFlags(this).overflow;\n }\n\n function creationData() {\n return {\n input: this._i,\n format: this._f,\n locale: this._locale,\n isUTC: this._isUTC,\n strict: this._strict,\n };\n }\n\n addFormatToken('N', 0, 0, 'eraAbbr');\n addFormatToken('NN', 0, 0, 'eraAbbr');\n addFormatToken('NNN', 0, 0, 'eraAbbr');\n addFormatToken('NNNN', 0, 0, 'eraName');\n addFormatToken('NNNNN', 0, 0, 'eraNarrow');\n\n addFormatToken('y', ['y', 1], 'yo', 'eraYear');\n addFormatToken('y', ['yy', 2], 0, 'eraYear');\n addFormatToken('y', ['yyy', 3], 0, 'eraYear');\n addFormatToken('y', ['yyyy', 4], 0, 'eraYear');\n\n addRegexToken('N', matchEraAbbr);\n addRegexToken('NN', matchEraAbbr);\n addRegexToken('NNN', matchEraAbbr);\n addRegexToken('NNNN', matchEraName);\n addRegexToken('NNNNN', matchEraNarrow);\n\n addParseToken(\n ['N', 'NN', 'NNN', 'NNNN', 'NNNNN'],\n function (input, array, config, token) {\n var era = config._locale.erasParse(input, token, config._strict);\n if (era) {\n getParsingFlags(config).era = era;\n } else {\n getParsingFlags(config).invalidEra = input;\n }\n }\n );\n\n addRegexToken('y', matchUnsigned);\n addRegexToken('yy', matchUnsigned);\n addRegexToken('yyy', matchUnsigned);\n addRegexToken('yyyy', matchUnsigned);\n addRegexToken('yo', matchEraYearOrdinal);\n\n addParseToken(['y', 'yy', 'yyy', 'yyyy'], YEAR);\n addParseToken(['yo'], function (input, array, config, token) {\n var match;\n if (config._locale._eraYearOrdinalRegex) {\n match = input.match(config._locale._eraYearOrdinalRegex);\n }\n\n if (config._locale.eraYearOrdinalParse) {\n array[YEAR] = config._locale.eraYearOrdinalParse(input, match);\n } else {\n array[YEAR] = parseInt(input, 10);\n }\n });\n\n function localeEras(m, format) {\n var i,\n l,\n date,\n eras = this._eras || getLocale('en')._eras;\n for (i = 0, l = eras.length; i < l; ++i) {\n switch (typeof eras[i].since) {\n case 'string':\n // truncate time\n date = hooks(eras[i].since).startOf('day');\n eras[i].since = date.valueOf();\n break;\n }\n\n switch (typeof eras[i].until) {\n case 'undefined':\n eras[i].until = +Infinity;\n break;\n case 'string':\n // truncate time\n date = hooks(eras[i].until).startOf('day').valueOf();\n eras[i].until = date.valueOf();\n break;\n }\n }\n return eras;\n }\n\n function localeErasParse(eraName, format, strict) {\n var i,\n l,\n eras = this.eras(),\n name,\n abbr,\n narrow;\n eraName = eraName.toUpperCase();\n\n for (i = 0, l = eras.length; i < l; ++i) {\n name = eras[i].name.toUpperCase();\n abbr = eras[i].abbr.toUpperCase();\n narrow = eras[i].narrow.toUpperCase();\n\n if (strict) {\n switch (format) {\n case 'N':\n case 'NN':\n case 'NNN':\n if (abbr === eraName) {\n return eras[i];\n }\n break;\n\n case 'NNNN':\n if (name === eraName) {\n return eras[i];\n }\n break;\n\n case 'NNNNN':\n if (narrow === eraName) {\n return eras[i];\n }\n break;\n }\n } else if ([name, abbr, narrow].indexOf(eraName) >= 0) {\n return eras[i];\n }\n }\n }\n\n function localeErasConvertYear(era, year) {\n var dir = era.since <= era.until ? +1 : -1;\n if (year === undefined) {\n return hooks(era.since).year();\n } else {\n return hooks(era.since).year() + (year - era.offset) * dir;\n }\n }\n\n function getEraName() {\n var i,\n l,\n val,\n eras = this.localeData().eras();\n for (i = 0, l = eras.length; i < l; ++i) {\n // truncate time\n val = this.clone().startOf('day').valueOf();\n\n if (eras[i].since <= val && val <= eras[i].until) {\n return eras[i].name;\n }\n if (eras[i].until <= val && val <= eras[i].since) {\n return eras[i].name;\n }\n }\n\n return '';\n }\n\n function getEraNarrow() {\n var i,\n l,\n val,\n eras = this.localeData().eras();\n for (i = 0, l = eras.length; i < l; ++i) {\n // truncate time\n val = this.clone().startOf('day').valueOf();\n\n if (eras[i].since <= val && val <= eras[i].until) {\n return eras[i].narrow;\n }\n if (eras[i].until <= val && val <= eras[i].since) {\n return eras[i].narrow;\n }\n }\n\n return '';\n }\n\n function getEraAbbr() {\n var i,\n l,\n val,\n eras = this.localeData().eras();\n for (i = 0, l = eras.length; i < l; ++i) {\n // truncate time\n val = this.clone().startOf('day').valueOf();\n\n if (eras[i].since <= val && val <= eras[i].until) {\n return eras[i].abbr;\n }\n if (eras[i].until <= val && val <= eras[i].since) {\n return eras[i].abbr;\n }\n }\n\n return '';\n }\n\n function getEraYear() {\n var i,\n l,\n dir,\n val,\n eras = this.localeData().eras();\n for (i = 0, l = eras.length; i < l; ++i) {\n dir = eras[i].since <= eras[i].until ? +1 : -1;\n\n // truncate time\n val = this.clone().startOf('day').valueOf();\n\n if (\n (eras[i].since <= val && val <= eras[i].until) ||\n (eras[i].until <= val && val <= eras[i].since)\n ) {\n return (\n (this.year() - hooks(eras[i].since).year()) * dir +\n eras[i].offset\n );\n }\n }\n\n return this.year();\n }\n\n function erasNameRegex(isStrict) {\n if (!hasOwnProp(this, '_erasNameRegex')) {\n computeErasParse.call(this);\n }\n return isStrict ? this._erasNameRegex : this._erasRegex;\n }\n\n function erasAbbrRegex(isStrict) {\n if (!hasOwnProp(this, '_erasAbbrRegex')) {\n computeErasParse.call(this);\n }\n return isStrict ? this._erasAbbrRegex : this._erasRegex;\n }\n\n function erasNarrowRegex(isStrict) {\n if (!hasOwnProp(this, '_erasNarrowRegex')) {\n computeErasParse.call(this);\n }\n return isStrict ? this._erasNarrowRegex : this._erasRegex;\n }\n\n function matchEraAbbr(isStrict, locale) {\n return locale.erasAbbrRegex(isStrict);\n }\n\n function matchEraName(isStrict, locale) {\n return locale.erasNameRegex(isStrict);\n }\n\n function matchEraNarrow(isStrict, locale) {\n return locale.erasNarrowRegex(isStrict);\n }\n\n function matchEraYearOrdinal(isStrict, locale) {\n return locale._eraYearOrdinalRegex || matchUnsigned;\n }\n\n function computeErasParse() {\n var abbrPieces = [],\n namePieces = [],\n narrowPieces = [],\n mixedPieces = [],\n i,\n l,\n eras = this.eras();\n\n for (i = 0, l = eras.length; i < l; ++i) {\n namePieces.push(regexEscape(eras[i].name));\n abbrPieces.push(regexEscape(eras[i].abbr));\n narrowPieces.push(regexEscape(eras[i].narrow));\n\n mixedPieces.push(regexEscape(eras[i].name));\n mixedPieces.push(regexEscape(eras[i].abbr));\n mixedPieces.push(regexEscape(eras[i].narrow));\n }\n\n this._erasRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i');\n this._erasNameRegex = new RegExp('^(' + namePieces.join('|') + ')', 'i');\n this._erasAbbrRegex = new RegExp('^(' + abbrPieces.join('|') + ')', 'i');\n this._erasNarrowRegex = new RegExp(\n '^(' + narrowPieces.join('|') + ')',\n 'i'\n );\n }\n\n // FORMATTING\n\n addFormatToken(0, ['gg', 2], 0, function () {\n return this.weekYear() % 100;\n });\n\n addFormatToken(0, ['GG', 2], 0, function () {\n return this.isoWeekYear() % 100;\n });\n\n function addWeekYearFormatToken(token, getter) {\n addFormatToken(0, [token, token.length], 0, getter);\n }\n\n addWeekYearFormatToken('gggg', 'weekYear');\n addWeekYearFormatToken('ggggg', 'weekYear');\n addWeekYearFormatToken('GGGG', 'isoWeekYear');\n addWeekYearFormatToken('GGGGG', 'isoWeekYear');\n\n // ALIASES\n\n addUnitAlias('weekYear', 'gg');\n addUnitAlias('isoWeekYear', 'GG');\n\n // PRIORITY\n\n addUnitPriority('weekYear', 1);\n addUnitPriority('isoWeekYear', 1);\n\n // PARSING\n\n addRegexToken('G', matchSigned);\n addRegexToken('g', matchSigned);\n addRegexToken('GG', match1to2, match2);\n addRegexToken('gg', match1to2, match2);\n addRegexToken('GGGG', match1to4, match4);\n addRegexToken('gggg', match1to4, match4);\n addRegexToken('GGGGG', match1to6, match6);\n addRegexToken('ggggg', match1to6, match6);\n\n addWeekParseToken(\n ['gggg', 'ggggg', 'GGGG', 'GGGGG'],\n function (input, week, config, token) {\n week[token.substr(0, 2)] = toInt(input);\n }\n );\n\n addWeekParseToken(['gg', 'GG'], function (input, week, config, token) {\n week[token] = hooks.parseTwoDigitYear(input);\n });\n\n // MOMENTS\n\n function getSetWeekYear(input) {\n return getSetWeekYearHelper.call(\n this,\n input,\n this.week(),\n this.weekday(),\n this.localeData()._week.dow,\n this.localeData()._week.doy\n );\n }\n\n function getSetISOWeekYear(input) {\n return getSetWeekYearHelper.call(\n this,\n input,\n this.isoWeek(),\n this.isoWeekday(),\n 1,\n 4\n );\n }\n\n function getISOWeeksInYear() {\n return weeksInYear(this.year(), 1, 4);\n }\n\n function getISOWeeksInISOWeekYear() {\n return weeksInYear(this.isoWeekYear(), 1, 4);\n }\n\n function getWeeksInYear() {\n var weekInfo = this.localeData()._week;\n return weeksInYear(this.year(), weekInfo.dow, weekInfo.doy);\n }\n\n function getWeeksInWeekYear() {\n var weekInfo = this.localeData()._week;\n return weeksInYear(this.weekYear(), weekInfo.dow, weekInfo.doy);\n }\n\n function getSetWeekYearHelper(input, week, weekday, dow, doy) {\n var weeksTarget;\n if (input == null) {\n return weekOfYear(this, dow, doy).year;\n } else {\n weeksTarget = weeksInYear(input, dow, doy);\n if (week > weeksTarget) {\n week = weeksTarget;\n }\n return setWeekAll.call(this, input, week, weekday, dow, doy);\n }\n }\n\n function setWeekAll(weekYear, week, weekday, dow, doy) {\n var dayOfYearData = dayOfYearFromWeeks(weekYear, week, weekday, dow, doy),\n date = createUTCDate(dayOfYearData.year, 0, dayOfYearData.dayOfYear);\n\n this.year(date.getUTCFullYear());\n this.month(date.getUTCMonth());\n this.date(date.getUTCDate());\n return this;\n }\n\n // FORMATTING\n\n addFormatToken('Q', 0, 'Qo', 'quarter');\n\n // ALIASES\n\n addUnitAlias('quarter', 'Q');\n\n // PRIORITY\n\n addUnitPriority('quarter', 7);\n\n // PARSING\n\n addRegexToken('Q', match1);\n addParseToken('Q', function (input, array) {\n array[MONTH] = (toInt(input) - 1) * 3;\n });\n\n // MOMENTS\n\n function getSetQuarter(input) {\n return input == null\n ? Math.ceil((this.month() + 1) / 3)\n : this.month((input - 1) * 3 + (this.month() % 3));\n }\n\n // FORMATTING\n\n addFormatToken('D', ['DD', 2], 'Do', 'date');\n\n // ALIASES\n\n addUnitAlias('date', 'D');\n\n // PRIORITY\n addUnitPriority('date', 9);\n\n // PARSING\n\n addRegexToken('D', match1to2);\n addRegexToken('DD', match1to2, match2);\n addRegexToken('Do', function (isStrict, locale) {\n // TODO: Remove \"ordinalParse\" fallback in next major release.\n return isStrict\n ? locale._dayOfMonthOrdinalParse || locale._ordinalParse\n : locale._dayOfMonthOrdinalParseLenient;\n });\n\n addParseToken(['D', 'DD'], DATE);\n addParseToken('Do', function (input, array) {\n array[DATE] = toInt(input.match(match1to2)[0]);\n });\n\n // MOMENTS\n\n var getSetDayOfMonth = makeGetSet('Date', true);\n\n // FORMATTING\n\n addFormatToken('DDD', ['DDDD', 3], 'DDDo', 'dayOfYear');\n\n // ALIASES\n\n addUnitAlias('dayOfYear', 'DDD');\n\n // PRIORITY\n addUnitPriority('dayOfYear', 4);\n\n // PARSING\n\n addRegexToken('DDD', match1to3);\n addRegexToken('DDDD', match3);\n addParseToken(['DDD', 'DDDD'], function (input, array, config) {\n config._dayOfYear = toInt(input);\n });\n\n // HELPERS\n\n // MOMENTS\n\n function getSetDayOfYear(input) {\n var dayOfYear =\n Math.round(\n (this.clone().startOf('day') - this.clone().startOf('year')) / 864e5\n ) + 1;\n return input == null ? dayOfYear : this.add(input - dayOfYear, 'd');\n }\n\n // FORMATTING\n\n addFormatToken('m', ['mm', 2], 0, 'minute');\n\n // ALIASES\n\n addUnitAlias('minute', 'm');\n\n // PRIORITY\n\n addUnitPriority('minute', 14);\n\n // PARSING\n\n addRegexToken('m', match1to2);\n addRegexToken('mm', match1to2, match2);\n addParseToken(['m', 'mm'], MINUTE);\n\n // MOMENTS\n\n var getSetMinute = makeGetSet('Minutes', false);\n\n // FORMATTING\n\n addFormatToken('s', ['ss', 2], 0, 'second');\n\n // ALIASES\n\n addUnitAlias('second', 's');\n\n // PRIORITY\n\n addUnitPriority('second', 15);\n\n // PARSING\n\n addRegexToken('s', match1to2);\n addRegexToken('ss', match1to2, match2);\n addParseToken(['s', 'ss'], SECOND);\n\n // MOMENTS\n\n var getSetSecond = makeGetSet('Seconds', false);\n\n // FORMATTING\n\n addFormatToken('S', 0, 0, function () {\n return ~~(this.millisecond() / 100);\n });\n\n addFormatToken(0, ['SS', 2], 0, function () {\n return ~~(this.millisecond() / 10);\n });\n\n addFormatToken(0, ['SSS', 3], 0, 'millisecond');\n addFormatToken(0, ['SSSS', 4], 0, function () {\n return this.millisecond() * 10;\n });\n addFormatToken(0, ['SSSSS', 5], 0, function () {\n return this.millisecond() * 100;\n });\n addFormatToken(0, ['SSSSSS', 6], 0, function () {\n return this.millisecond() * 1000;\n });\n addFormatToken(0, ['SSSSSSS', 7], 0, function () {\n return this.millisecond() * 10000;\n });\n addFormatToken(0, ['SSSSSSSS', 8], 0, function () {\n return this.millisecond() * 100000;\n });\n addFormatToken(0, ['SSSSSSSSS', 9], 0, function () {\n return this.millisecond() * 1000000;\n });\n\n // ALIASES\n\n addUnitAlias('millisecond', 'ms');\n\n // PRIORITY\n\n addUnitPriority('millisecond', 16);\n\n // PARSING\n\n addRegexToken('S', match1to3, match1);\n addRegexToken('SS', match1to3, match2);\n addRegexToken('SSS', match1to3, match3);\n\n var token, getSetMillisecond;\n for (token = 'SSSS'; token.length <= 9; token += 'S') {\n addRegexToken(token, matchUnsigned);\n }\n\n function parseMs(input, array) {\n array[MILLISECOND] = toInt(('0.' + input) * 1000);\n }\n\n for (token = 'S'; token.length <= 9; token += 'S') {\n addParseToken(token, parseMs);\n }\n\n getSetMillisecond = makeGetSet('Milliseconds', false);\n\n // FORMATTING\n\n addFormatToken('z', 0, 0, 'zoneAbbr');\n addFormatToken('zz', 0, 0, 'zoneName');\n\n // MOMENTS\n\n function getZoneAbbr() {\n return this._isUTC ? 'UTC' : '';\n }\n\n function getZoneName() {\n return this._isUTC ? 'Coordinated Universal Time' : '';\n }\n\n var proto = Moment.prototype;\n\n proto.add = add;\n proto.calendar = calendar$1;\n proto.clone = clone;\n proto.diff = diff;\n proto.endOf = endOf;\n proto.format = format;\n proto.from = from;\n proto.fromNow = fromNow;\n proto.to = to;\n proto.toNow = toNow;\n proto.get = stringGet;\n proto.invalidAt = invalidAt;\n proto.isAfter = isAfter;\n proto.isBefore = isBefore;\n proto.isBetween = isBetween;\n proto.isSame = isSame;\n proto.isSameOrAfter = isSameOrAfter;\n proto.isSameOrBefore = isSameOrBefore;\n proto.isValid = isValid$2;\n proto.lang = lang;\n proto.locale = locale;\n proto.localeData = localeData;\n proto.max = prototypeMax;\n proto.min = prototypeMin;\n proto.parsingFlags = parsingFlags;\n proto.set = stringSet;\n proto.startOf = startOf;\n proto.subtract = subtract;\n proto.toArray = toArray;\n proto.toObject = toObject;\n proto.toDate = toDate;\n proto.toISOString = toISOString;\n proto.inspect = inspect;\n if (typeof Symbol !== 'undefined' && Symbol.for != null) {\n proto[Symbol.for('nodejs.util.inspect.custom')] = function () {\n return 'Moment<' + this.format() + '>';\n };\n }\n proto.toJSON = toJSON;\n proto.toString = toString;\n proto.unix = unix;\n proto.valueOf = valueOf;\n proto.creationData = creationData;\n proto.eraName = getEraName;\n proto.eraNarrow = getEraNarrow;\n proto.eraAbbr = getEraAbbr;\n proto.eraYear = getEraYear;\n proto.year = getSetYear;\n proto.isLeapYear = getIsLeapYear;\n proto.weekYear = getSetWeekYear;\n proto.isoWeekYear = getSetISOWeekYear;\n proto.quarter = proto.quarters = getSetQuarter;\n proto.month = getSetMonth;\n proto.daysInMonth = getDaysInMonth;\n proto.week = proto.weeks = getSetWeek;\n proto.isoWeek = proto.isoWeeks = getSetISOWeek;\n proto.weeksInYear = getWeeksInYear;\n proto.weeksInWeekYear = getWeeksInWeekYear;\n proto.isoWeeksInYear = getISOWeeksInYear;\n proto.isoWeeksInISOWeekYear = getISOWeeksInISOWeekYear;\n proto.date = getSetDayOfMonth;\n proto.day = proto.days = getSetDayOfWeek;\n proto.weekday = getSetLocaleDayOfWeek;\n proto.isoWeekday = getSetISODayOfWeek;\n proto.dayOfYear = getSetDayOfYear;\n proto.hour = proto.hours = getSetHour;\n proto.minute = proto.minutes = getSetMinute;\n proto.second = proto.seconds = getSetSecond;\n proto.millisecond = proto.milliseconds = getSetMillisecond;\n proto.utcOffset = getSetOffset;\n proto.utc = setOffsetToUTC;\n proto.local = setOffsetToLocal;\n proto.parseZone = setOffsetToParsedOffset;\n proto.hasAlignedHourOffset = hasAlignedHourOffset;\n proto.isDST = isDaylightSavingTime;\n proto.isLocal = isLocal;\n proto.isUtcOffset = isUtcOffset;\n proto.isUtc = isUtc;\n proto.isUTC = isUtc;\n proto.zoneAbbr = getZoneAbbr;\n proto.zoneName = getZoneName;\n proto.dates = deprecate(\n 'dates accessor is deprecated. Use date instead.',\n getSetDayOfMonth\n );\n proto.months = deprecate(\n 'months accessor is deprecated. Use month instead',\n getSetMonth\n );\n proto.years = deprecate(\n 'years accessor is deprecated. Use year instead',\n getSetYear\n );\n proto.zone = deprecate(\n 'moment().zone is deprecated, use moment().utcOffset instead. http://momentjs.com/guides/#/warnings/zone/',\n getSetZone\n );\n proto.isDSTShifted = deprecate(\n 'isDSTShifted is deprecated. See http://momentjs.com/guides/#/warnings/dst-shifted/ for more information',\n isDaylightSavingTimeShifted\n );\n\n function createUnix(input) {\n return createLocal(input * 1000);\n }\n\n function createInZone() {\n return createLocal.apply(null, arguments).parseZone();\n }\n\n function preParsePostFormat(string) {\n return string;\n }\n\n var proto$1 = Locale.prototype;\n\n proto$1.calendar = calendar;\n proto$1.longDateFormat = longDateFormat;\n proto$1.invalidDate = invalidDate;\n proto$1.ordinal = ordinal;\n proto$1.preparse = preParsePostFormat;\n proto$1.postformat = preParsePostFormat;\n proto$1.relativeTime = relativeTime;\n proto$1.pastFuture = pastFuture;\n proto$1.set = set;\n proto$1.eras = localeEras;\n proto$1.erasParse = localeErasParse;\n proto$1.erasConvertYear = localeErasConvertYear;\n proto$1.erasAbbrRegex = erasAbbrRegex;\n proto$1.erasNameRegex = erasNameRegex;\n proto$1.erasNarrowRegex = erasNarrowRegex;\n\n proto$1.months = localeMonths;\n proto$1.monthsShort = localeMonthsShort;\n proto$1.monthsParse = localeMonthsParse;\n proto$1.monthsRegex = monthsRegex;\n proto$1.monthsShortRegex = monthsShortRegex;\n proto$1.week = localeWeek;\n proto$1.firstDayOfYear = localeFirstDayOfYear;\n proto$1.firstDayOfWeek = localeFirstDayOfWeek;\n\n proto$1.weekdays = localeWeekdays;\n proto$1.weekdaysMin = localeWeekdaysMin;\n proto$1.weekdaysShort = localeWeekdaysShort;\n proto$1.weekdaysParse = localeWeekdaysParse;\n\n proto$1.weekdaysRegex = weekdaysRegex;\n proto$1.weekdaysShortRegex = weekdaysShortRegex;\n proto$1.weekdaysMinRegex = weekdaysMinRegex;\n\n proto$1.isPM = localeIsPM;\n proto$1.meridiem = localeMeridiem;\n\n function get$1(format, index, field, setter) {\n var locale = getLocale(),\n utc = createUTC().set(setter, index);\n return locale[field](utc, format);\n }\n\n function listMonthsImpl(format, index, field) {\n if (isNumber(format)) {\n index = format;\n format = undefined;\n }\n\n format = format || '';\n\n if (index != null) {\n return get$1(format, index, field, 'month');\n }\n\n var i,\n out = [];\n for (i = 0; i < 12; i++) {\n out[i] = get$1(format, i, field, 'month');\n }\n return out;\n }\n\n // ()\n // (5)\n // (fmt, 5)\n // (fmt)\n // (true)\n // (true, 5)\n // (true, fmt, 5)\n // (true, fmt)\n function listWeekdaysImpl(localeSorted, format, index, field) {\n if (typeof localeSorted === 'boolean') {\n if (isNumber(format)) {\n index = format;\n format = undefined;\n }\n\n format = format || '';\n } else {\n format = localeSorted;\n index = format;\n localeSorted = false;\n\n if (isNumber(format)) {\n index = format;\n format = undefined;\n }\n\n format = format || '';\n }\n\n var locale = getLocale(),\n shift = localeSorted ? locale._week.dow : 0,\n i,\n out = [];\n\n if (index != null) {\n return get$1(format, (index + shift) % 7, field, 'day');\n }\n\n for (i = 0; i < 7; i++) {\n out[i] = get$1(format, (i + shift) % 7, field, 'day');\n }\n return out;\n }\n\n function listMonths(format, index) {\n return listMonthsImpl(format, index, 'months');\n }\n\n function listMonthsShort(format, index) {\n return listMonthsImpl(format, index, 'monthsShort');\n }\n\n function listWeekdays(localeSorted, format, index) {\n return listWeekdaysImpl(localeSorted, format, index, 'weekdays');\n }\n\n function listWeekdaysShort(localeSorted, format, index) {\n return listWeekdaysImpl(localeSorted, format, index, 'weekdaysShort');\n }\n\n function listWeekdaysMin(localeSorted, format, index) {\n return listWeekdaysImpl(localeSorted, format, index, 'weekdaysMin');\n }\n\n getSetGlobalLocale('en', {\n eras: [\n {\n since: '0001-01-01',\n until: +Infinity,\n offset: 1,\n name: 'Anno Domini',\n narrow: 'AD',\n abbr: 'AD',\n },\n {\n since: '0000-12-31',\n until: -Infinity,\n offset: 1,\n name: 'Before Christ',\n narrow: 'BC',\n abbr: 'BC',\n },\n ],\n dayOfMonthOrdinalParse: /\\d{1,2}(th|st|nd|rd)/,\n ordinal: function (number) {\n var b = number % 10,\n output =\n toInt((number % 100) / 10) === 1\n ? 'th'\n : b === 1\n ? 'st'\n : b === 2\n ? 'nd'\n : b === 3\n ? 'rd'\n : 'th';\n return number + output;\n },\n });\n\n // Side effect imports\n\n hooks.lang = deprecate(\n 'moment.lang is deprecated. Use moment.locale instead.',\n getSetGlobalLocale\n );\n hooks.langData = deprecate(\n 'moment.langData is deprecated. Use moment.localeData instead.',\n getLocale\n );\n\n var mathAbs = Math.abs;\n\n function abs() {\n var data = this._data;\n\n this._milliseconds = mathAbs(this._milliseconds);\n this._days = mathAbs(this._days);\n this._months = mathAbs(this._months);\n\n data.milliseconds = mathAbs(data.milliseconds);\n data.seconds = mathAbs(data.seconds);\n data.minutes = mathAbs(data.minutes);\n data.hours = mathAbs(data.hours);\n data.months = mathAbs(data.months);\n data.years = mathAbs(data.years);\n\n return this;\n }\n\n function addSubtract$1(duration, input, value, direction) {\n var other = createDuration(input, value);\n\n duration._milliseconds += direction * other._milliseconds;\n duration._days += direction * other._days;\n duration._months += direction * other._months;\n\n return duration._bubble();\n }\n\n // supports only 2.0-style add(1, 's') or add(duration)\n function add$1(input, value) {\n return addSubtract$1(this, input, value, 1);\n }\n\n // supports only 2.0-style subtract(1, 's') or subtract(duration)\n function subtract$1(input, value) {\n return addSubtract$1(this, input, value, -1);\n }\n\n function absCeil(number) {\n if (number < 0) {\n return Math.floor(number);\n } else {\n return Math.ceil(number);\n }\n }\n\n function bubble() {\n var milliseconds = this._milliseconds,\n days = this._days,\n months = this._months,\n data = this._data,\n seconds,\n minutes,\n hours,\n years,\n monthsFromDays;\n\n // if we have a mix of positive and negative values, bubble down first\n // check: https://github.com/moment/moment/issues/2166\n if (\n !(\n (milliseconds >= 0 && days >= 0 && months >= 0) ||\n (milliseconds <= 0 && days <= 0 && months <= 0)\n )\n ) {\n milliseconds += absCeil(monthsToDays(months) + days) * 864e5;\n days = 0;\n months = 0;\n }\n\n // The following code bubbles up values, see the tests for\n // examples of what that means.\n data.milliseconds = milliseconds % 1000;\n\n seconds = absFloor(milliseconds / 1000);\n data.seconds = seconds % 60;\n\n minutes = absFloor(seconds / 60);\n data.minutes = minutes % 60;\n\n hours = absFloor(minutes / 60);\n data.hours = hours % 24;\n\n days += absFloor(hours / 24);\n\n // convert days to months\n monthsFromDays = absFloor(daysToMonths(days));\n months += monthsFromDays;\n days -= absCeil(monthsToDays(monthsFromDays));\n\n // 12 months -> 1 year\n years = absFloor(months / 12);\n months %= 12;\n\n data.days = days;\n data.months = months;\n data.years = years;\n\n return this;\n }\n\n function daysToMonths(days) {\n // 400 years have 146097 days (taking into account leap year rules)\n // 400 years have 12 months === 4800\n return (days * 4800) / 146097;\n }\n\n function monthsToDays(months) {\n // the reverse of daysToMonths\n return (months * 146097) / 4800;\n }\n\n function as(units) {\n if (!this.isValid()) {\n return NaN;\n }\n var days,\n months,\n milliseconds = this._milliseconds;\n\n units = normalizeUnits(units);\n\n if (units === 'month' || units === 'quarter' || units === 'year') {\n days = this._days + milliseconds / 864e5;\n months = this._months + daysToMonths(days);\n switch (units) {\n case 'month':\n return months;\n case 'quarter':\n return months / 3;\n case 'year':\n return months / 12;\n }\n } else {\n // handle milliseconds separately because of floating point math errors (issue #1867)\n days = this._days + Math.round(monthsToDays(this._months));\n switch (units) {\n case 'week':\n return days / 7 + milliseconds / 6048e5;\n case 'day':\n return days + milliseconds / 864e5;\n case 'hour':\n return days * 24 + milliseconds / 36e5;\n case 'minute':\n return days * 1440 + milliseconds / 6e4;\n case 'second':\n return days * 86400 + milliseconds / 1000;\n // Math.floor prevents floating point math errors here\n case 'millisecond':\n return Math.floor(days * 864e5) + milliseconds;\n default:\n throw new Error('Unknown unit ' + units);\n }\n }\n }\n\n // TODO: Use this.as('ms')?\n function valueOf$1() {\n if (!this.isValid()) {\n return NaN;\n }\n return (\n this._milliseconds +\n this._days * 864e5 +\n (this._months % 12) * 2592e6 +\n toInt(this._months / 12) * 31536e6\n );\n }\n\n function makeAs(alias) {\n return function () {\n return this.as(alias);\n };\n }\n\n var asMilliseconds = makeAs('ms'),\n asSeconds = makeAs('s'),\n asMinutes = makeAs('m'),\n asHours = makeAs('h'),\n asDays = makeAs('d'),\n asWeeks = makeAs('w'),\n asMonths = makeAs('M'),\n asQuarters = makeAs('Q'),\n asYears = makeAs('y');\n\n function clone$1() {\n return createDuration(this);\n }\n\n function get$2(units) {\n units = normalizeUnits(units);\n return this.isValid() ? this[units + 's']() : NaN;\n }\n\n function makeGetter(name) {\n return function () {\n return this.isValid() ? this._data[name] : NaN;\n };\n }\n\n var milliseconds = makeGetter('milliseconds'),\n seconds = makeGetter('seconds'),\n minutes = makeGetter('minutes'),\n hours = makeGetter('hours'),\n days = makeGetter('days'),\n months = makeGetter('months'),\n years = makeGetter('years');\n\n function weeks() {\n return absFloor(this.days() / 7);\n }\n\n var round = Math.round,\n thresholds = {\n ss: 44, // a few seconds to seconds\n s: 45, // seconds to minute\n m: 45, // minutes to hour\n h: 22, // hours to day\n d: 26, // days to month/week\n w: null, // weeks to month\n M: 11, // months to year\n };\n\n // helper function for moment.fn.from, moment.fn.fromNow, and moment.duration.fn.humanize\n function substituteTimeAgo(string, number, withoutSuffix, isFuture, locale) {\n return locale.relativeTime(number || 1, !!withoutSuffix, string, isFuture);\n }\n\n function relativeTime$1(posNegDuration, withoutSuffix, thresholds, locale) {\n var duration = createDuration(posNegDuration).abs(),\n seconds = round(duration.as('s')),\n minutes = round(duration.as('m')),\n hours = round(duration.as('h')),\n days = round(duration.as('d')),\n months = round(duration.as('M')),\n weeks = round(duration.as('w')),\n years = round(duration.as('y')),\n a =\n (seconds <= thresholds.ss && ['s', seconds]) ||\n (seconds < thresholds.s && ['ss', seconds]) ||\n (minutes <= 1 && ['m']) ||\n (minutes < thresholds.m && ['mm', minutes]) ||\n (hours <= 1 && ['h']) ||\n (hours < thresholds.h && ['hh', hours]) ||\n (days <= 1 && ['d']) ||\n (days < thresholds.d && ['dd', days]);\n\n if (thresholds.w != null) {\n a =\n a ||\n (weeks <= 1 && ['w']) ||\n (weeks < thresholds.w && ['ww', weeks]);\n }\n a = a ||\n (months <= 1 && ['M']) ||\n (months < thresholds.M && ['MM', months]) ||\n (years <= 1 && ['y']) || ['yy', years];\n\n a[2] = withoutSuffix;\n a[3] = +posNegDuration > 0;\n a[4] = locale;\n return substituteTimeAgo.apply(null, a);\n }\n\n // This function allows you to set the rounding function for relative time strings\n function getSetRelativeTimeRounding(roundingFunction) {\n if (roundingFunction === undefined) {\n return round;\n }\n if (typeof roundingFunction === 'function') {\n round = roundingFunction;\n return true;\n }\n return false;\n }\n\n // This function allows you to set a threshold for relative time strings\n function getSetRelativeTimeThreshold(threshold, limit) {\n if (thresholds[threshold] === undefined) {\n return false;\n }\n if (limit === undefined) {\n return thresholds[threshold];\n }\n thresholds[threshold] = limit;\n if (threshold === 's') {\n thresholds.ss = limit - 1;\n }\n return true;\n }\n\n function humanize(argWithSuffix, argThresholds) {\n if (!this.isValid()) {\n return this.localeData().invalidDate();\n }\n\n var withSuffix = false,\n th = thresholds,\n locale,\n output;\n\n if (typeof argWithSuffix === 'object') {\n argThresholds = argWithSuffix;\n argWithSuffix = false;\n }\n if (typeof argWithSuffix === 'boolean') {\n withSuffix = argWithSuffix;\n }\n if (typeof argThresholds === 'object') {\n th = Object.assign({}, thresholds, argThresholds);\n if (argThresholds.s != null && argThresholds.ss == null) {\n th.ss = argThresholds.s - 1;\n }\n }\n\n locale = this.localeData();\n output = relativeTime$1(this, !withSuffix, th, locale);\n\n if (withSuffix) {\n output = locale.pastFuture(+this, output);\n }\n\n return locale.postformat(output);\n }\n\n var abs$1 = Math.abs;\n\n function sign(x) {\n return (x > 0) - (x < 0) || +x;\n }\n\n function toISOString$1() {\n // for ISO strings we do not use the normal bubbling rules:\n // * milliseconds bubble up until they become hours\n // * days do not bubble at all\n // * months bubble up until they become years\n // This is because there is no context-free conversion between hours and days\n // (think of clock changes)\n // and also not between days and months (28-31 days per month)\n if (!this.isValid()) {\n return this.localeData().invalidDate();\n }\n\n var seconds = abs$1(this._milliseconds) / 1000,\n days = abs$1(this._days),\n months = abs$1(this._months),\n minutes,\n hours,\n years,\n s,\n total = this.asSeconds(),\n totalSign,\n ymSign,\n daysSign,\n hmsSign;\n\n if (!total) {\n // this is the same as C#'s (Noda) and python (isodate)...\n // but not other JS (goog.date)\n return 'P0D';\n }\n\n // 3600 seconds -> 60 minutes -> 1 hour\n minutes = absFloor(seconds / 60);\n hours = absFloor(minutes / 60);\n seconds %= 60;\n minutes %= 60;\n\n // 12 months -> 1 year\n years = absFloor(months / 12);\n months %= 12;\n\n // inspired by https://github.com/dordille/moment-isoduration/blob/master/moment.isoduration.js\n s = seconds ? seconds.toFixed(3).replace(/\\.?0+$/, '') : '';\n\n totalSign = total < 0 ? '-' : '';\n ymSign = sign(this._months) !== sign(total) ? '-' : '';\n daysSign = sign(this._days) !== sign(total) ? '-' : '';\n hmsSign = sign(this._milliseconds) !== sign(total) ? '-' : '';\n\n return (\n totalSign +\n 'P' +\n (years ? ymSign + years + 'Y' : '') +\n (months ? ymSign + months + 'M' : '') +\n (days ? daysSign + days + 'D' : '') +\n (hours || minutes || seconds ? 'T' : '') +\n (hours ? hmsSign + hours + 'H' : '') +\n (minutes ? hmsSign + minutes + 'M' : '') +\n (seconds ? hmsSign + s + 'S' : '')\n );\n }\n\n var proto$2 = Duration.prototype;\n\n proto$2.isValid = isValid$1;\n proto$2.abs = abs;\n proto$2.add = add$1;\n proto$2.subtract = subtract$1;\n proto$2.as = as;\n proto$2.asMilliseconds = asMilliseconds;\n proto$2.asSeconds = asSeconds;\n proto$2.asMinutes = asMinutes;\n proto$2.asHours = asHours;\n proto$2.asDays = asDays;\n proto$2.asWeeks = asWeeks;\n proto$2.asMonths = asMonths;\n proto$2.asQuarters = asQuarters;\n proto$2.asYears = asYears;\n proto$2.valueOf = valueOf$1;\n proto$2._bubble = bubble;\n proto$2.clone = clone$1;\n proto$2.get = get$2;\n proto$2.milliseconds = milliseconds;\n proto$2.seconds = seconds;\n proto$2.minutes = minutes;\n proto$2.hours = hours;\n proto$2.days = days;\n proto$2.weeks = weeks;\n proto$2.months = months;\n proto$2.years = years;\n proto$2.humanize = humanize;\n proto$2.toISOString = toISOString$1;\n proto$2.toString = toISOString$1;\n proto$2.toJSON = toISOString$1;\n proto$2.locale = locale;\n proto$2.localeData = localeData;\n\n proto$2.toIsoString = deprecate(\n 'toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)',\n toISOString$1\n );\n proto$2.lang = lang;\n\n // FORMATTING\n\n addFormatToken('X', 0, 0, 'unix');\n addFormatToken('x', 0, 0, 'valueOf');\n\n // PARSING\n\n addRegexToken('x', matchSigned);\n addRegexToken('X', matchTimestamp);\n addParseToken('X', function (input, array, config) {\n config._d = new Date(parseFloat(input) * 1000);\n });\n addParseToken('x', function (input, array, config) {\n config._d = new Date(toInt(input));\n });\n\n //! moment.js\n\n hooks.version = '2.29.4';\n\n setHookCallback(createLocal);\n\n hooks.fn = proto;\n hooks.min = min;\n hooks.max = max;\n hooks.now = now;\n hooks.utc = createUTC;\n hooks.unix = createUnix;\n hooks.months = listMonths;\n hooks.isDate = isDate;\n hooks.locale = getSetGlobalLocale;\n hooks.invalid = createInvalid;\n hooks.duration = createDuration;\n hooks.isMoment = isMoment;\n hooks.weekdays = listWeekdays;\n hooks.parseZone = createInZone;\n hooks.localeData = getLocale;\n hooks.isDuration = isDuration;\n hooks.monthsShort = listMonthsShort;\n hooks.weekdaysMin = listWeekdaysMin;\n hooks.defineLocale = defineLocale;\n hooks.updateLocale = updateLocale;\n hooks.locales = listLocales;\n hooks.weekdaysShort = listWeekdaysShort;\n hooks.normalizeUnits = normalizeUnits;\n hooks.relativeTimeRounding = getSetRelativeTimeRounding;\n hooks.relativeTimeThreshold = getSetRelativeTimeThreshold;\n hooks.calendarFormat = getCalendarFormat;\n hooks.prototype = proto;\n\n // currently HTML5 input type only supports 24-hour formats\n hooks.HTML5_FMT = {\n DATETIME_LOCAL: 'YYYY-MM-DDTHH:mm', // <input type=\"datetime-local\" />\n DATETIME_LOCAL_SECONDS: 'YYYY-MM-DDTHH:mm:ss', // <input type=\"datetime-local\" step=\"1\" />\n DATETIME_LOCAL_MS: 'YYYY-MM-DDTHH:mm:ss.SSS', // <input type=\"datetime-local\" step=\"0.001\" />\n DATE: 'YYYY-MM-DD', // <input type=\"date\" />\n TIME: 'HH:mm', // <input type=\"time\" />\n TIME_SECONDS: 'HH:mm:ss', // <input type=\"time\" step=\"1\" />\n TIME_MS: 'HH:mm:ss.SSS', // <input type=\"time\" step=\"0.001\" />\n WEEK: 'GGGG-[W]WW', // <input type=\"week\" />\n MONTH: 'YYYY-MM', // <input type=\"month\" />\n };\n\n return hooks;\n\n})));\n","var map = {};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 660;","// 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\tid: moduleId,\n\t\tloaded: false,\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// Flag the module as loaded\n\tmodule.loaded = true;\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// define getter functions for harmony exports\n__webpack_require__.d = function(exports, definition) {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }","// define __esModule on exports\n__webpack_require__.r = function(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__.nmd = function(module) {\n\tmodule.paths = [];\n\tif (!module.children) module.children = [];\n\treturn module;\n};","function objectToString (o) {\n return Object.prototype.toString.call(o)\n}\n\nexport function isObject (arg) {\n return typeof arg === 'object' && arg !== null\n}\n\nexport function isDate (d) {\n return isObject(d) && objectToString(d) === '[object Date]'\n}\n\n/**\n * pad number with `0`\n * @param {number} number\n * @param {number} [len] - length\n * @return {string} padded string\n */\nexport function pad0 (number, len) {\n len = len || 2\n number = Array(len).join('0') + number.toString()\n return number.substr(number.length - len, len)\n}\n\n/**\n * convert string to number\n * @private\n * @param {String} str\n * @return {Number} converted number or undefined\n */\nexport function toNumber (str) {\n const num = parseInt(str, 10)\n if (!isNaN(num)) {\n return num\n }\n}\n\n/**\n * extract or set year\n * @private\n * @param {Number|Date|String} year\n * @return {Number} year\n */\nexport function toYear (year) {\n if (!year) {\n year = new Date().getFullYear()\n } else if (isDate(year)) {\n year = year.getFullYear()\n } else if (typeof year === 'string') {\n year = toNumber(year)\n }\n return year\n}\n","\nimport moment from 'moment-timezone'\nimport { toYear, toNumber, isDate, pad0 } from './utils.js'\n\nconst PROPS = ['year', 'month', 'day', 'hour', 'minute', 'second']\n\nexport class CalDate {\n /**\n * constructs a new CalDate instance\n * @param {Object|Date} [opts] - See `set(opts)`\n * @example\n * const CalDate = require('caldate')\n * const caldate = new CalDate('2000-01-01 12:00:00')\n * caldate.year\n * //> 2000\n * caldate.month\n * //> 1\n */\n constructor (opts) {\n this.set(opts)\n }\n\n static toYear (year) {\n return toYear(year)\n }\n\n /**\n * set calendar date\n * @param {Object|Date} [opts] - defaults to `1900-01-01`\n * @param {String} opts.year\n * @param {String} opts.month - January equals to 1, December to 12\n * @param {String} opts.day\n * @param {String} opts.hour\n * @param {String} opts.minute\n * @param {String} opts.second\n * @param {String} opts.duration - defaults to 24 hours\n */\n set (opts) {\n opts = opts || { year: 1900, month: 1, day: 1 }\n if (isDate(opts)) {\n this.year = opts.getFullYear()\n this.month = opts.getMonth() + 1\n this.day = opts.getDate()\n this.hour = opts.getHours()\n this.minute = opts.getMinutes()\n this.second = opts.getSeconds()\n } else {\n PROPS.forEach((p) => {\n this[p] = toNumber(opts[p]) || 0\n })\n this.month = this.month || 1\n this.day = this.day || 1\n }\n this.duration = opts.duration || 24 // duration is in hours\n return this\n }\n\n /**\n * checks if Date is equal to `calDate`\n * @param {CalDate} calDate\n * @return {Boolean} true if date matches\n */\n isEqualDate (calDate) {\n let res = true\n this.update()\n ;['year', 'month', 'day'].forEach((p) => {\n res &= (this[p] === calDate[p])\n })\n return !!res\n }\n\n /**\n * get day of week\n * @return {Number} day of week 0=sunday, 1=monday, ...\n */\n getDay () {\n return this.toDate().getDay()\n }\n\n /**\n * set offset per unit\n * @param {Number} number\n * @param {String} [unit='d'] - Unit in days `d`, hours `h, minutes `m`\n * @return {Object} this\n */\n setOffset (number, unit) {\n if (number) {\n if (typeof number === 'object') {\n unit = number.unit\n number = number.number\n }\n unit = unit || 'd'\n number = parseFloat(number, 10)\n if (isNaN(number)) {\n throw new Error('Number required')\n }\n\n const o = { day: 0 }\n if (unit === 'd') {\n o.day = number | 0\n number -= o.day\n number *= 24\n }\n if (unit === 'd' || unit === 'h') {\n o.hour = (number % 24) | 0\n number -= o.hour\n number *= 60\n }\n o.minute = (number % 60) | 0\n number -= o.minute\n number *= 60\n o.second = (number % 60) | 0\n\n this.day += o.day\n this.hour += o.hour\n this.minute += o.minute\n this.second += o.second\n }\n this.update()\n return this\n }\n\n /**\n * set time per hour, minute or second while maintaining duration at midnight\n * @param {Number} [hour]\n * @param {Number} [minute]\n * @param {Number} [second]\n * @return {Object} this\n */\n setTime (hour, minute, second) {\n hour = hour || 0\n minute = minute || 0\n second = second || 0\n // the holiday usually ends at midnight - if this is not the case set different duration explicitely\n this.duration = 24 - (hour + minute / 60 + second / 3600)\n this.hour = hour\n this.minute = minute\n this.second = second\n this.update()\n return this\n }\n\n /**\n * set duration in hours\n * @param {Number} duration in hours\n * @return {Object} this\n */\n setDuration (duration) {\n this.duration = duration\n return this\n }\n\n /**\n * update internal data to real date\n * @return {Object} this\n */\n update () {\n if (this.year) {\n const d = new CalDate(this.toDate())\n PROPS.forEach((p) => {\n this[p] = d[p]\n })\n }\n return this\n }\n\n /**\n * get end date of calendar date\n * @return {CalDate}\n */\n toEndDate () {\n const d = new CalDate(this.toDate())\n d.minute += ((this.duration * 60) | 0)\n d.update()\n return d\n }\n\n /**\n * move internal date to a date in `timezone`\n * @param {String} timezone - e.g. 'America/New_York'\n * @return {Date}\n */\n toTimezone (timezone) {\n if (timezone) {\n return new Date(moment.tz(this.toString(), timezone).format())\n } else {\n return this.toDate()\n }\n }\n\n /**\n * set date from a given `timezone`\n * @param {Date} dateUTC - date in UTC\n * @param {String} [timezone] - timezone of dateUTC, e.g. 'America/New_York'\n * @return {CalDate} self\n */\n fromTimezone (dateUTC, timezone) {\n if (timezone) {\n const m = moment.tz(dateUTC, timezone)\n this.year = m.year()\n this.month = m.month() + 1\n this.day = m.date()\n this.hour = m.hours()\n this.minute = m.minutes()\n this.second = m.seconds()\n } else {\n this.set(dateUTC)\n }\n return this\n }\n\n /**\n * convert to Date\n * @return {Date}\n */\n toDate () {\n return new Date(\n this.year, this.month - 1, this.day,\n this.hour, this.minute, this.second, 0\n )\n }\n\n /**\n * get Date in ISO format\n */\n toISOString () {\n return this.toString(true)\n }\n\n /**\n * get Date as String `YYYY-MM-DD HH:MM:SS`\n */\n toString (iso) {\n const d = new CalDate(this.toDate())\n return (\n pad0(d.year, 4) + '-' +\n pad0(d.month) + '-' +\n pad0(d.day) +\n (iso ? 'T' : ' ') +\n pad0(d.hour) + ':' +\n pad0(d.minute) + ':' +\n pad0(d.second) +\n (iso ? 'Z' : '')\n )\n }\n}\n","/**\n * lodash compatible methods\n */\n\nimport deepmerge from 'deepmerge'\n\n/**\n * get value at `keys` from `object`\n * @example\n * get({a: {b: {c: 2}}}, ['a', 'b', 'c']) //> 2\n */\nexport const get = (obj, keys = [], def) => {\n let o = obj\n if (typeof keys === 'string') keys = keys.split('.')\n for (const key of keys) {\n if (o && o[key]) { o = o[key] } else { return def }\n }\n return o\n}\n\n/**\n * set `value` at `keys` from `object`\n * @example\n * set({a: {b: {c: 2}}}, ['a', 'b', 'c'], 3)\n */\nexport const set = (obj, keys = [], value) => {\n let key\n let ref\n let o = obj\n for (key of keys) {\n ref = o\n if (toString.call(o[key]) !== '[object Object]') o[key] = {}\n o = o[key]\n }\n ref[key] = value\n return obj\n}\n\n/**\n * omit `object` properties `props`\n */\nexport const omit = (object, props = []) => Object.keys(object)\n .filter(p => !~props.indexOf(p))\n .reduce((o, p) => {\n p in object && (o[p] = object[p])\n return o\n }, {})\n\nexport const merge = (...args) => deepmerge.all(args)\n\nexport const toNumber = (num, def) => {\n const _num = Number(num)\n return isNaN(_num) ? def : _num\n}\n\nexport default {\n get,\n set,\n omit,\n merge\n}\n","/**\n * {\n * 0: 'sunday', ...\n * sunday: 0, ...\n * }\n */\nexport const DAYS = (function () {\n const o = {}\n 'sunday|monday|tuesday|wednesday|thursday|friday|saturday'\n .split('|')\n .forEach((name, idx) => {\n o[name] = idx\n o[idx] = name\n })\n return o\n})()\n\nfunction objectToString (o) {\n return Object.prototype.toString.call(o)\n}\n\nexport function isObject (arg) {\n return typeof arg === 'object' && arg !== null\n}\n\nexport function isDate (d) {\n return isObject(d) && objectToString(d) === '[object Date]'\n}\n\nexport const isNil = (v) => v === null || v === undefined\n\n/**\n * pad number with `0`\n * @param {number} number\n * @param {number} [len] - length\n * @return {string} padded string\n */\nexport function pad0 (number, len) {\n len = len || 2\n number = Array(len).join('0') + number.toString()\n return number.substr(number.length - len, len)\n}\n\n/**\n * convert string to number\n * @private\n * @param {String} str\n * @return {Number} converted number or undefined\n */\nexport function toNumber (str) {\n const num = parseInt(str, 10)\n if (!isNaN(num)) {\n return num\n }\n}\n\n/**\n * extract or set year\n * @private\n * @param {Number|Date|String} year\n * @return {Number} year\n */\nexport function toYear (year) {\n if (!year) {\n year = new Date().getFullYear()\n } else if (year instanceof Date) {\n year = year.getFullYear()\n } else if (typeof year === 'string') {\n year = toNumber(year)\n }\n return year\n}\n\n/**\n * convert string to Date.\n * 2017 : year = 2017, month = 1, day = 1\n * '2017-07' : year = 2017, month = 7, day = 1\n * '2017-07-03': year = 2017, month = 7, day = 3\n * @param {String} str\n * @param {Boolean} isUTC - return date in UTC\n * @return {Date}\n */\nexport function toDate (str, isUTC) {\n const m = /^(\\d{4})(?:-(\\d{2})(?:-(\\d{2}))?)?.*$/.exec((str || '').toString())\n if (m) {\n m.shift()\n const [year, month, day] = m.map((num) => parseInt(num || 1, 10))\n if (isUTC) {\n return new Date(Date.UTC(year, month - 1, day))\n } else {\n return new Date(year, month - 1, day)\n }\n }\n}\n","import _ from './utils.js'\n\n/**\n * Handler for holiday data provided in the Json file\n * @class\n * @param {Object} [data]\n * @param {Object|String} [country]\n * @param {String} [state]\n * @param {String} [region]\n */\nexport default class Data {\n constructor (data, country, state, region) {\n this.opts = Data.splitName(country, state, region) || {}\n this.data = data || {}\n }\n\n /**\n * get all countries from the data\n * @param {String} lang - Iso-639 shortcode\n * @return {Object} shortcode-name value pairs. E.g. `{ AT: 'Österreich', ... }`\n */\n getCountries (lang) {\n const o = {}\n const countries = _.get(this.data, 'holidays', {})\n Object.keys(countries).forEach((country) => {\n o[country] = this._name(countries, country, lang, { country })\n })\n return o\n }\n\n /**\n * get all states for a given country from the data\n * @param {String|Object} country\n * @param {String} [lang] - Iso-639 shortcode\n * @return {Object} shortcode-name value pairs. E.g. `{ b: 'Burgenland', ... }`\n */\n getStates (country, lang) {\n const opts = Object.assign({}, Data.splitName(country))\n const states = _.get(this.data, ['holidays', opts.country, 'states']) ||\n _.get(this.data, ['holidays', opts.country, 'regions'])\n if (states) {\n const o = {}\n Object.keys(states).forEach((state) => {\n opts.state = state\n o[state] = this._name(states, state, lang, opts)\n })\n return o\n }\n }\n\n /**\n * get all regions for a given country/ state from the data\n * @param {String} country\n * @param {String} state\n * @param {String} [lang] - Iso-639 shortcode\n * @return {Object} shortcode-name value pairs.\n */\n getRegions (country, state, lang) {\n const opts = Object.assign({}, Data.splitName(country, state))\n const regions = _.get(this.data, ['holidays', opts.country, 'states', opts.state, 'regions'])\n\n if (regions) {\n const o = {}\n Object.keys(regions).forEach((region) => {\n opts.region = region\n o[region] = this._name(regions, region, lang, opts)\n })\n return o\n }\n }\n\n /**\n * @private\n */\n _name (obj, key, lang, opts) {\n const names = obj[key].names\n const _lang = lang || this.getLanguages(opts)[0] || Object.keys(names)[0]\n const mlang = Data.majorLang(_lang)\n const name = obj[key].name || names[_lang] || names[mlang] || names[Object.keys(names)[0]]\n return name\n }\n\n /**\n * get languages for selected country, state, region\n * @return {Array} containing ISO 639-1 language shortcodes\n */\n getLanguages (opts) {\n return this._getValue('langs', opts) || []\n }\n\n /**\n * get default day off as weekday\n * @return {String} weekday of day off\n */\n getDayOff () {\n return this._getValue('dayoff')\n }\n\n /**\n * get timezones for country, state, region\n * @return {Array} of {String}s containing the timezones\n */\n getTimezones () {\n return this._getValue('zones') || []\n }\n\n /**\n * get list of raw holiday rules for country/ state/ region\n * @param {Object|String} [country]\n * @param {String} [state]\n * @param {String} [region]\n * @return {Object} holidayname <-> unparsed rule or date pairs\n */\n getRules (country, state, region) {\n const rules = {}\n const opts = Data.splitName(country, state, region) || this.opts\n\n if (!(opts && opts.country)) {\n return rules\n }\n\n country = opts.country.toUpperCase()\n state = opts.state\n region = opts.region\n let tmp = _.get(this.data, ['holidays', country])\n\n if (tmp) {\n this._assign(rules, tmp)\n if ((state && tmp.regions && (tmp = tmp.regions[state])) ||\n (state && tmp.states && (tmp = tmp.states[state]))\n ) {\n this._assign(rules, tmp)\n if (region && tmp.regions && (tmp = tmp.regions[region])) {\n this._assign(rules, tmp)\n }\n }\n Object.keys(rules).forEach((key) => {\n // assign name references with `_name`\n const _name = rules[key]._name\n if (_name && this.data.names[_name]) {\n delete rules[key]._name\n rules[key] = _.merge({}, this.data.names[_name], rules[key])\n }\n })\n }\n\n return rules\n }\n\n /**\n * get name for substitute name\n * @return {Object} translations of substitute day names\n */\n getSubstitueNames () {\n return _.get(this.data, ['names', 'substitutes', 'name'])\n }\n\n /**\n * helper to assign objects based on properties\n * @private\n * @param {Object} out - object where obj gets assigned into\n * @param {Object} obj - input obj\n * @return {Object}\n */\n _assign (out, obj) {\n let days = {}\n if (obj._days) { // resolve reference\n const path = ['holidays'].concat(obj._days, 'days')\n const ref = _.get(this.data, path)\n if (!ref) throw new Error('unknown path for _days: ' + path.join('.'))\n days = Object.assign({}, ref)\n }\n if (days || obj.days) {\n days = Object.assign(days, obj.days)\n Object.keys(days).forEach(function (p) {\n if (days[p] === false) { // remove rules\n if (out[p]) {\n delete out[p]\n }\n return\n }\n out[p] = Object.assign({}, out[p], days[p])\n if (!days[p].type) {\n out[p].type = 'public'\n }\n })\n }\n return out\n }\n\n /**\n * get a object from the data tree\n * @private\n * @param {String} key - key to look at\n * @return {Object} return object\n */\n _getValue (key, opts = this.opts) {\n return (\n _.get(this.data, ['holidays', opts.country, 'states', opts.state, 'regions', opts.regions, key]) ||\n _.get(this.data, ['holidays', opts.country, 'states', opts.state, key]) ||\n _.get(this.data, ['holidays', opts.country, key])\n )\n }\n}\n\n// static functions\n/**\n * split country state names if they appear in concatenated format e.g. 'at.b'\n * @param {String|Object} country\n * @param {String} [state]\n * @param {String} [region]\n * @return {Object}\n */\nData.splitName = function (country, state, region) {\n if (typeof country === 'object' && country.country) {\n return toUpperCase(country)\n } else if (typeof country === 'string') {\n const a = country.split(/[.-]/)\n const o = {\n country: a.shift(),\n state: a.shift() || state,\n region: a.shift() || region\n }\n return toUpperCase(o)\n }\n}\n\nData.majorLang = function (lang) {\n return (lang || '').split(/-/)[0]\n}\n\n/**\n * @private\n */\nfunction toUpperCase (obj) {\n ;['country', 'state', 'region'].forEach(key => {\n if (typeof obj[key] === 'string') {\n obj[key] = obj[key].toUpperCase()\n }\n })\n return obj\n}\n","/* eslint\n no-spaced-func: 0,\n no-unexpected-multiline: 0\n */\n\nimport { toNumber } from './internal/utils.js'\n\nconst WEEKDAYS = 'Sunday|Monday|Tuesday|Wednesday|Thursday|Friday|Saturday'.split('|')\n\nconst lowerCaseWeekday = (weekday) => WEEKDAYS.includes(weekday) ? weekday.toLowerCase() : weekday\n\nconst lowerCaseWeekdayWithoutDay = weekday => (weekday === 'day')\n ? undefined\n : lowerCaseWeekday(weekday)\n\n/**\n * regular expressions to parse holiday statements\n */\nconst grammar = (function () {\n /**\n * combines different regexes\n * @private\n * @return {RegExp} combined regex\n */\n function replace (regex, opt) {\n regex = regex.source\n opt = opt || ''\n return function self (name, val) {\n if (!name) return new RegExp(regex, opt)\n val = val.source || val\n val = val.replace(/(^|[^[])\\^/g, '$1')\n regex = regex.replace(name, val)\n return self\n }\n }\n\n // raw rules\n const raw = {\n _weekdays: '[Ss]unday|[Mm]onday|[Tt]uesday|[Ww]ednesday|[Tt]hursday|[Ff]riday|[Ss]aturday|day',\n _months: 'January|February|March|April|May|June|July|August|September|October|November|December',\n _islamicMonths: 'Muharram|Safar|Rabi al-awwal|Rabi al-thani|Jumada al-awwal|Jumada al-thani|Rajab|Shaban|Ramadan|Shawwal|Dhu al-Qidah|Dhu al-Hijjah',\n _hebrewMonths: 'Nisan|Iyyar|Sivan|Tamuz|Av|Elul|Tishrei|Cheshvan|Kislev|Tevet|Shvat|AdarII|Adar',\n _jalaaliMonths: 'Farvardin|Ordibehesht|Khordad|Tir|Mordad|Shahrivar|Mehr|Aban|Azar|Dey|Bahman|Esfand',\n _days: /(_weekdays)s?/,\n _direction: /(before|after|next|previous|in)/,\n _counts: /(\\d+)(?:st|nd|rd|th)?/,\n _count_days: /([-+]?\\d{1,2}) ?(?:days?|d)?/,\n _timezone: / in ([^\\s]*|[+-]\\d{2}:\\d{2})/,\n _type: /(public|bank|school|observance|optional)/,\n\n dateMonth: /^(_months)/,\n date: /^(?:0*(\\d{1,4})-)?0?(\\d{1,2})-0?(\\d{1,2})/,\n time: /^(?:T?0?(\\d{1,2}):0?(\\d{1,2})|T0?(\\d{1,2}))/,\n duration: /^P(?:(\\d+)D)?(?:T(?:(\\d+)H)?(?:(\\d+)M)?)?/, // follows ISO 8601\n\n julian: /^julian date/,\n easter: /^(easter|orthodox)(?: _count_days)?/,\n equinox: /^([Mm]arch|[Jj]une|[Ss]eptember|[Dd]ecember) (?:equinox|solstice)(?:_timezone)?/,\n hebrew: /^0?(\\d{1,2}) (_hebrewMonths)(?: 0*(\\d{1,}))?/,\n islamic: /^0?(\\d{1,2}) (_islamicMonths)(?: 0*(\\d{1,}))?/,\n jalaali: /^0?(\\d{1,2}) (_jalaaliMonths)(?: 0*(\\d{1,}))?/,\n chineseLunar: /^(chinese|korean|vietnamese) (?:(\\d+)-(\\d{1,2})-)?(\\d{1,2})-([01])-(\\d{1,2})/,\n chineseSolar: /^(chinese|korean|vietnamese) (?:(\\d+)-(\\d{1,2})-)?(\\d{1,2})-(\\d{1,2}) solarterm/,\n bengaliRevised: /^(bengali-revised) (?:-?0*(\\d{1,4})-)?0?(\\d{1,2})-0?(\\d{1,2})/,\n\n modifier: /^(substitutes|and|if equal|then|if)\\b/,\n rule_year: /^(?:in (even|odd|leap|non-leap) years|every (\\d+) years? since 0*(\\d{1,4}))/,\n rule_weekday: /(not )?on ((?:(?:_weekdays)(?:,\\s?)?)*)/,\n rule_date_if_then: /^if ((?:(?:_weekdays)(?:,\\s?)?)*) then (?:_direction _days)?/,\n rule_day_dir_date: /^(?:_counts )?_days _direction/,\n rule_bridge: /^is (?:_type )?holiday/,\n rule_if_holiday: /^if is (?:_type )?holiday then (?:_counts )?(?:_direction _days)?(?: omit ((?:(?:_weekdays)(?:,\\s?)?)*))?/,\n rule_same_day: /^#\\d+/,\n rule_active_from: /^since (0*\\d{1,4})(?:-0*(\\d{1,2})(?:-0*(\\d{1,2})|)|)(?: and|)/,\n rule_active_to: /^prior to (0*\\d{1,4})(?:-0*(\\d{1,2})(?:-0*(\\d{1,2})|)|)/,\n\n // rule_type_if_then: /if ((?:(?:_weekdays)(?:,\\s?)?)*) then/,\n // rule_type_dir: /_days _direction$/,\n // rule_type_bridge: / if .* is .* holiday$/,\n\n space: /^\\s+/\n }\n /* eslint-disable func-call-spacing */\n raw._days = replace(raw._days)\n (/_weekdays/, raw._weekdays)\n ()\n raw.julian = replace(raw.julian, '')\n (/date/, raw.date)\n ()\n raw.easter = replace(raw.easter, '')\n (/_count_days/, raw._count_days)\n ()\n raw.equinox = replace(raw.equinox, '')\n (/_count_days/g, raw._count_days)\n (/_direction/g, raw._direction)\n (/_timezone/g, raw._timezone)\n ()\n raw.hebrew = replace(raw.hebrew, '')\n (/_hebrewMonths/, raw._hebrewMonths)\n ()\n raw.islamic = replace(raw.islamic, '')\n (/_islamicMonths/, raw._islamicMonths)\n ()\n raw.jalaali = replace(raw.jalaali, '')\n (/_jalaaliMonths/, raw._jalaaliMonths)\n ()\n raw.dateMonth = replace(raw.dateMonth)\n (/_months/, raw._months)\n ()\n\n raw.rule_weekday = replace(raw.rule_weekday, '')\n (/_weekdays/g, raw._weekdays)\n ()\n raw.rule_date_if_then = replace(raw.rule_date_if_then, '')\n (/_direction/g, raw._direction)\n (/_weekdays/g, raw._weekdays)\n (/_days/g, raw._days)\n ()\n raw.rule_bridge = replace(raw.rule_bridge, '')\n (/_type/g, raw._type)\n ()\n raw.rule_if_holiday = replace(raw.rule_if_holiday, '')\n (/_type/g, raw._type)\n (/_counts/g, raw._counts)\n (/_direction/g, raw._direction)\n (/_days/g, raw._days)\n (/_weekdays/g, raw._weekdays)\n ()\n raw.rule_day_dir_date = replace(raw.rule_day_dir_date, '')\n (/_counts/, raw._counts)\n (/_days/g, raw._days)\n (/_direction/g, raw._direction)\n ()\n // raw.rule_type_if_then = replace(raw.rule_type_if_then, '')\n // (/_direction/g, raw._direction)\n // (/_days/g, raw._days)\n // ()\n\n let i = 1\n raw.months = {}\n raw._months.split('|').forEach(function (m) {\n raw.months[m] = i++\n })\n\n i = 1\n raw.islamicMonths = {}\n raw._islamicMonths.split('|').forEach(function (m) {\n raw.islamicMonths[m] = i++\n })\n\n i = 1\n raw.hebrewMonths = {}\n raw._hebrewMonths.split('|').forEach(function (m) {\n raw.hebrewMonths[m] = i++\n })\n // parser regex needs larger string before shorter AdarII and Adar pos needs correction\n raw.hebrewMonths.Adar = 12\n raw.hebrewMonths.AdarII = 13\n\n i = 1\n raw.jalaaliMonths = {}\n raw._jalaaliMonths.split('|').forEach(function (m) {\n raw.jalaaliMonths[m] = i++\n })\n\n return raw\n /* eslint-enable */\n})()\n\n// console.log(grammar)\n\nexport default class Parser {\n constructor (fns) {\n this.fns = fns || [\n '_julian',\n '_date',\n '_easter',\n '_islamic',\n '_hebrew',\n '_jalaali',\n '_equinox',\n '_chineseSolar',\n '_chineseLunar',\n '_bengaliRevised',\n '_dateMonth',\n '_ruleDateIfThen',\n '_ruleWeekday',\n '_ruleYear',\n '_ruleDateDir',\n '_ruleIfHoliday',\n '_ruleBridge',\n '_ruleTime',\n '_ruleDuration',\n '_ruleModifier',\n '_ruleSameDay',\n '_ruleActiveFrom',\n '_ruleActiveTo'\n ]\n this.tokens = []\n }\n\n parse (rule) {\n this.setup = { str: rule, rule }\n this.error = 0\n this.tokens = []\n this._tokenize(this.setup)\n this._reorder()\n return this.tokens\n }\n\n /**\n * reorder set of tokens for rule dateDir\n * dateDir: [dateDir2, dateDir1, fn] --> [fn, dateDir1, dateDir2]\n * dateIfThen: [fn, dateIfThen1, dateIfThen2] --> [fn, dateIfThen1, dateIfThen2]\n */\n _reorder () {\n const tmp = []\n const res = []\n\n this.tokens.forEach((token) => {\n if (token.rule === 'dateDir') {\n tmp.push(token)\n } else {\n res.push(token)\n if (tmp.length) {\n while (tmp.length) {\n res.push(tmp.pop())\n }\n }\n }\n\n // no modifiers before a date\n if (token.fn && res[0].modifier) {\n while (res[0].modifier) {\n res.push(res.shift())\n }\n }\n })\n this.tokens = res\n }\n\n _tokenize (o) {\n let last\n while (o.str) {\n for (let i = 0; i < this.fns.length; i++) {\n if (this[this.fns[i]](o)) break\n }\n this._space(o)\n if (last === o.str) {\n this.error++\n break\n }\n last = o.str\n }\n }\n\n _shorten (o, cap0) {\n o.str = o.str.substr(cap0.length, o.str.length)\n }\n\n _date (o) {\n let cap\n if ((cap = grammar.date.exec(o.str))) {\n this._shorten(o, cap[0])\n cap.shift()\n const res = {\n fn: 'gregorian',\n year: toNumber(cap.shift()),\n month: toNumber(cap.shift()),\n day: toNumber(cap.shift())\n }\n this.tokens.push(res)\n return true\n }\n }\n\n _julian (o) {\n let cap\n if ((cap = grammar.julian.exec(o.str))) {\n this._shorten(o, cap[0])\n cap.shift()\n const res = {\n fn: 'julian',\n year: toNumber(cap.shift()),\n month: toNumber(cap.shift()),\n day: toNumber(cap.shift())\n }\n this.tokens.push(res)\n return true\n }\n }\n\n _easter (o) {\n let cap\n if ((cap = grammar.easter.exec(o.str))) {\n this._shorten(o, cap[0])\n cap.shift()\n const res = {\n fn: 'easter',\n type: cap.shift(),\n offset: toNumber(cap.shift()) || 0\n }\n this.tokens.push(res)\n return true\n }\n }\n\n _equinox (o) {\n let cap\n if ((cap = grammar.equinox.exec(o.str))) {\n this._shorten(o, cap[0])\n cap.shift()\n const res = {\n fn: 'equinox',\n season: cap.shift().toLowerCase(),\n timezone: cap.shift() || 'GMT'\n }\n this.tokens.push(res)\n return true\n }\n }\n\n _hebrew (o) {\n let cap\n\n if ((cap = grammar.hebrew.exec(o.str))) {\n this._shorten(o, cap[0])\n cap.shift()\n const res = {\n fn: 'hebrew',\n day: toNumber(cap.shift()),\n month: grammar.hebrewMonths[cap.shift()],\n year: toNumber(cap.shift())\n }\n this.tokens.push(res)\n return true\n }\n }\n\n _islamic (o) {\n let cap\n if ((cap = grammar.islamic.exec(o.str))) {\n this._shorten(o, cap[0])\n cap.shift()\n const res = {\n fn: 'islamic',\n day: toNumber(cap.shift()),\n month: grammar.islamicMonths[cap.shift()],\n year: toNumber(cap.shift())\n }\n this.tokens.push(res)\n return true\n }\n }\n\n _jalaali (o) {\n let cap\n if ((cap = grammar.jalaali.exec(o.str))) {\n this._shorten(o, cap[0])\n cap.shift()\n const res = {\n fn: 'jalaali',\n day: toNumber(cap.shift()),\n month: grammar.jalaaliMonths[cap.shift()],\n year: toNumber(cap.shift())\n }\n this.tokens.push(res)\n return true\n }\n }\n\n _chineseSolar (o) {\n let cap\n if ((cap = grammar.chineseSolar.exec(o.str))) {\n this._shorten(o, cap[0])\n cap.shift()\n const res = {\n fn: cap.shift(),\n cycle: toNumber(cap.shift()),\n year: toNumber(cap.shift()),\n solarterm: toNumber(cap.shift()),\n day: toNumber(cap.shift()),\n timezone: cap.shift()\n }\n this.tokens.push(res)\n return true\n }\n }\n\n _chineseLunar (o) {\n let cap\n if ((cap = grammar.chineseLunar.exec(o.str))) {\n this._shorten(o, cap[0])\n cap.shift()\n const res = {\n fn: cap.shift(),\n cycle: toNumber(cap.shift()),\n year: toNumber(cap.shift()),\n month: toNumber(cap.shift()),\n leapMonth: !!toNumber(cap.shift()),\n day: toNumber(cap.shift()),\n timezone: cap.shift()\n }\n this.tokens.push(res)\n return true\n }\n }\n\n _bengaliRevised (o) {\n let cap\n if ((cap = grammar.bengaliRevised.exec(o.str))) {\n this._shorten(o, cap[0])\n cap.shift()\n const res = {\n fn: cap.shift(),\n year: toNumber(cap.shift()),\n month: toNumber(cap.shift()),\n day: toNumber(cap.shift())\n }\n this.tokens.push(res)\n return true\n }\n }\n\n _dateMonth (o) {\n let cap\n if ((cap = grammar.dateMonth.exec(o.str))) {\n this._shorten(o, cap[0])\n cap.shift()\n const res = {\n fn: 'gregorian',\n day: 1,\n month: grammar.months[cap.shift()],\n year: undefined\n }\n this.tokens.push(res)\n return true\n }\n }\n\n _space (o) {\n let cap\n if ((cap = grammar.space.exec(o.str))) {\n this._shorten(o, cap[0])\n return true\n }\n }\n\n _ruleSameDay (o) {\n let cap\n if ((cap = grammar.rule_same_day.exec(o.str))) {\n this._shorten(o, cap[0])\n return true\n }\n }\n\n _ruleModifier (o) {\n let cap\n if ((cap = grammar.modifier.exec(o.str))) {\n this._shorten(o, cap[0])\n cap.shift()\n const res = {\n modifier: cap.shift()\n }\n this.tokens.push(res)\n return true\n }\n }\n\n _ruleTime (o) {\n let cap\n if ((cap = grammar.time.exec(o.str))) {\n this._shorten(o, cap[0])\n cap.shift()\n const res = {\n rule: 'time',\n hour: toNumber(cap.shift()) || 0,\n minute: toNumber(cap.shift()) || 0\n }\n res.hour = res.hour || toNumber(cap.shift()) || 0\n this.tokens.push(res)\n return true\n }\n }\n\n _ruleDuration (o) {\n let cap\n if ((cap = grammar.duration.exec(o.str))) {\n this._shorten(o, cap[0])\n cap.shift()\n const tmp = {\n days: toNumber(cap.shift()) || 0,\n hours: toNumber(cap.shift()) || 0,\n minutes: toNumber(cap.shift()) || 0\n }\n const res = {\n rule: 'duration',\n // duration is calculated in hours\n duration: (tmp.days * 24) + tmp.hours + (tmp.minutes / 60)\n }\n this.tokens.push(res)\n return true\n }\n }\n\n _ruleDateIfThen (o) {\n let cap\n if ((cap = grammar.rule_date_if_then.exec(o.str))) {\n this._shorten(o, cap[0])\n cap.shift()\n const res = {\n rule: 'dateIfThen',\n if: (cap.shift()).split(/(?:,\\s?)/).map(lowerCaseWeekday),\n direction: cap.shift(),\n then: lowerCaseWeekday(cap.shift())\n }\n // create a sub-parser to only check for time, duration\n const p = new Parser(['_ruleTime', '_ruleDuration'])\n p.parse(o.str)\n if (p.tokens.length) {\n res.rules = p.tokens\n }\n o.str = ' ' + p.setup.str // ' ' required such that the _tokenize function finalizes the loop\n this.tokens.push(res)\n return true\n }\n }\n\n _ruleWeekday (o) {\n let cap\n if ((cap = grammar.rule_weekday.exec(o.str))) {\n this._shorten(o, cap[0])\n cap.shift()\n const res = {\n rule: 'weekday',\n not: !!cap.shift(),\n if: (cap.shift()).split(/(?:,\\s?)/).map(lowerCaseWeekday)\n }\n this.tokens.push(res)\n return true\n }\n }\n\n _ruleDateDir (o) {\n let cap\n if ((cap = grammar.rule_day_dir_date.exec(o.str))) {\n this._shorten(o, cap[0])\n cap.shift()\n const res = {\n rule: 'dateDir',\n count: toNumber(cap.shift()) || 1,\n weekday: lowerCaseWeekday(cap.shift()),\n direction: cap.shift()\n }\n if (res.direction === 'in') {\n res.direction = 'after'\n }\n this.tokens.push(res)\n return true\n }\n }\n\n _ruleYear (o) {\n let cap\n if ((cap = grammar.rule_year.exec(o.str))) {\n this._shorten(o, cap[0])\n cap.shift()\n const res = {\n rule: 'year',\n cardinality: cap.shift(),\n every: toNumber(cap.shift()),\n since: toNumber(cap.shift())\n }\n this.tokens.push(res)\n return true\n }\n }\n\n _ruleIfHoliday (o) {\n let cap\n if ((cap = grammar.rule_if_holiday.exec(o.str))) {\n this._shorten(o, cap[0])\n cap.shift()\n const res = {\n rule: 'ruleIfHoliday',\n type: cap.shift(),\n count: toNumber(cap.shift()) || 1,\n direction: cap.shift(),\n weekday: lowerCaseWeekday(cap.shift()),\n omit: (cap.shift() || '').split(/(?:,\\s?)/).map(lowerCaseWeekdayWithoutDay).filter(Boolean)\n }\n this.tokens.push(res)\n return true\n }\n }\n\n _ruleBridge (o) {\n let cap\n if ((cap = grammar.rule_bridge.exec(o.str))) {\n this._shorten(o, cap[0])\n cap.shift()\n const res = {\n rule: 'bridge',\n type: cap.shift()\n }\n this.tokens.push(res)\n return true\n }\n }\n\n _ruleActiveFrom (o) {\n let cap\n if ((cap = grammar.rule_active_from.exec(o.str))) {\n this._shorten(o, cap[0])\n cap.shift()\n const res = {\n rule: 'activeFrom',\n year: toNumber(cap.shift()),\n month: toNumber(cap.shift()) || 1,\n day: toNumber(cap.shift()) || 1\n }\n this.tokens.push(res)\n return true\n }\n }\n\n _ruleActiveTo (o) {\n let cap\n if ((cap = grammar.rule_active_to.exec(o.str))) {\n this._shorten(o, cap[0])\n cap.shift()\n const res = {\n rule: 'activeTo',\n year: toNumber(cap.shift()),\n month: toNumber(cap.shift()) || 1,\n day: toNumber(cap.shift()) || 1\n }\n this.tokens.push(res)\n return true\n }\n }\n}\n","/**\n * handle rule per event\n */\n\nimport CalDate from 'caldate'\nimport { DAYS, isNil } from './internal/utils.js'\n\nexport default class Rule {\n /**\n * @param {CalEvent} [calEvent]\n * @param {array} [holidays]\n */\n constructor (calEvent) {\n this.calEvent = calEvent\n }\n\n /**\n * @param {CalEvent} calEvent\n */\n setEvent (calEvent) {\n this.calEvent = calEvent\n return this\n }\n\n /**\n * @return {CalEvent}\n */\n getEvent () {\n return this.calEvent\n }\n\n /**\n * @param {string} modifier\n */\n setModifier (modifier) {\n this.modifier = modifier\n }\n\n /**\n * resolves rule to function\n * @param {object} rule\n */\n resolve (rule) {\n if (rule.rule &&\n typeof this[rule.rule] === 'function'\n ) {\n this[rule.rule](rule)\n } else if (rule.modifier) {\n this.modifier = rule.modifier\n }\n return this\n }\n\n /**\n * @param {CalEvent} [calEvent]\n * @param {object} rule\n * {\n * rule: \"dateDir\",\n * count: 1,\n * weekday: \"tuesday\",\n * direction: \"after\",\n * omit: ['sunday']\n * }\n */\n dateDir (rule) {\n const omitWeekdays = ([].concat(rule.omit)).map(weekday => DAYS[weekday]).filter(v => !isNil(v))\n\n const isOmitDay = (offset, weekday) => {\n let wd = offset + weekday\n while (wd < 0) { wd += 70 }\n return omitWeekdays.includes(wd % 7)\n }\n\n this.calEvent.dates.forEach((date) => {\n let offset\n let count = rule.count - 1\n const weekday = date.getDay()\n const ruleWeekday = DAYS[rule.weekday]\n\n const isDirBefore = ['before', 'previous'].includes(rule.direction)\n // correct count if weekday is same for next direction\n if (rule.direction === 'next' && weekday === ruleWeekday) {\n count += 1\n }\n\n if (rule.weekday === 'day') {\n let i = 0\n if (isDirBefore) {\n offset = (count + 1) * -1\n while (i++ < 7 && isOmitDay(offset, weekday)) {\n offset -= 1\n }\n } else {\n offset = count + 1\n while (i++ < 7 && isOmitDay(offset, weekday)) {\n offset += 1\n }\n }\n } else {\n if (isDirBefore) {\n if (weekday === ruleWeekday) {\n count++\n }\n offset = ((7 + weekday - ruleWeekday) % 7 + count * 7) * -1\n } else {\n offset = ((7 - weekday + ruleWeekday) % 7 + count * 7)\n }\n }\n if (offset) {\n date.setOffset(offset)\n }\n })\n }\n\n /**\n * @param {object} rule\n * {\n * rule: \"dateIfThen\",\n * if: [\"sunday\"],\n * direction: \"next\",\n * then: \"sunday\"\n * }\n */\n dateIfThen (rule) {\n const dates = []\n\n this.calEvent.dates = this.calEvent.dates.map((date) => {\n if (date._lock) {\n return date\n }\n const weekday = date.getDay()\n if (~(rule.if).indexOf(DAYS[weekday])) {\n if (this.modifier === 'and') {\n dates.push(new CalDate(date))\n date.substitute = true\n }\n date._filter = false\n let offset = 0\n const then = DAYS[rule.then]\n if (rule.then && then !== 'undefined') {\n if (rule.direction === 'previous') {\n offset = -1 * ((7 + weekday - then) % 7)\n if (!offset) {\n offset = -7\n }\n } else {\n offset = ((7 - weekday + then) % 7)\n if (!offset) {\n offset = 7\n }\n }\n date.setOffset(offset)\n date._lock = true\n if (this.modifier === 'substitutes') date.substitute = true\n }\n (rule.rules || []).forEach((rule) => {\n switch (rule.rule) {\n case 'time':\n date.setTime(rule.hour, rule.minute)\n break\n case 'duration':\n date.duration = rule.duration\n break\n }\n })\n } else if (this.modifier === 'substitutes') {\n date._filter = true\n }\n return date\n })\n this.calEvent.dates = dates.concat(this.calEvent.dates)\n }\n\n /**\n * @param {object} rule\n * {\n * rule: \"weekday\",\n * if: [\"sunday\", \"saturday\"],\n * not: false,\n * }\n */\n weekday (rule) {\n this.calEvent.dates = this.calEvent.dates.map((date) => {\n const weekday = date.getDay()\n let match = (rule.if).indexOf(DAYS[weekday]) !== -1\n if (rule.not) match = !match\n if (match) return date\n }).filter(date => date)\n }\n\n time (rule) {\n this.calEvent.dates.forEach((date) => {\n date.setTime(rule.hour, rule.minute)\n })\n }\n\n duration (rule) {\n this.calEvent.dates.forEach((date) => {\n date.duration = rule.duration\n })\n }\n\n bridge () {\n return true // needs postprocessing\n }\n\n ruleIfHoliday () {\n return true // needs postprocessing\n }\n\n activeFrom (rule) {\n this.calEvent.setActive({ from: new CalDate(rule).toDate() })\n }\n\n activeTo (rule) {\n this.calEvent.setActive({ to: new CalDate(rule).toDate() })\n }\n\n /**\n * @param {object} rule\n * {\n * rule: \"year\",\n * cardinality: \"leap\",\n * every: undefined,\n * since: undefined\n * }\n */\n year (rule) {\n this.calEvent.dates = this.calEvent.dates.map((date) => {\n if (rule.cardinality) {\n if (rule.cardinality === 'leap' && this._isLeapYear(date.year)) {\n return date\n } else if (rule.cardinality === 'non-leap' && !this._isLeapYear(date.year)) {\n return date\n } else if (rule.cardinality === 'even' && (date.year + 1) % 2) {\n return date\n } else if (rule.cardinality === 'odd' && date.year % 2) {\n return date\n }\n } else if (rule.every !== undefined && rule.since !== undefined) {\n const tmp = (date.year - rule.since) % rule.every\n if (tmp === 0) {\n return date\n }\n }\n }).filter(date => date)\n }\n\n /**\n * @private\n * @return {Boolean} if true year is a leap year\n */\n _isLeapYear (year) {\n if ((year % 400 === 0) || (year % 4 === 0 && year % 100 !== 0)) {\n return true\n }\n return false\n }\n}\n","import { isDate } from './internal/utils.js'\nimport CalDate from 'caldate'\n\nexport default class CalEvent {\n /**\n * @param {object|Date} opts\n * @param {string} opts.fn function type\n * @param {number} [opts.day]\n * @param {number} [opts.month]\n * @param {number} [opts.year]\n * @param {number} [opts.offset]\n * @param {boolean} [opts.substitute]\n */\n constructor (opts) {\n opts = opts || {}\n this.substitute = opts.substitute\n this.opts = opts\n this.offset = opts.offset\n this.dates = []\n this.active = undefined // active props from prior to rule\n if (isDate(opts)) {\n this.opts = new CalDate(opts)\n }\n }\n\n /**\n * @param {number} year\n * @returns {this}\n */\n inYear (year) {\n const d = (new CalDate(this.opts)).setOffset(this.offset)\n if (!(d.year && d.year !== year)) {\n d.year = year\n this.dates.push(d)\n }\n return this\n }\n\n reset () {\n this.dates = []\n }\n\n /**\n * @param {CalEvent} calEvent\n * @returns {boolean}\n */\n isEqualDate (calEvent) {\n let res = false\n for (const thisDate of this.dates) {\n for (const date of calEvent.dates) {\n res |= thisDate.isEqualDate(date)\n }\n }\n return !!res\n }\n\n /**\n * Filter out disabled dates\n * @param {number} year\n * @param {number} month\n * @returns {this}\n */\n filterDisabled (year, month) {\n if (!year) {\n return this\n }\n\n this.dates = this.dates.filter((date) => {\n const disable = month\n ? date.year === year && date.month === month\n : date.year === year\n return !disable\n })\n\n return this\n }\n\n /**\n * @param {number} year - year to filter\n * @param {object[]} active - definition of active ranges `{from: {Date}, [to]: {Date}}`\n * @return {this} for chaining\n */\n filterActive (year, active = this.active) {\n this.dates = this.dates.filter((date) => {\n if (!date._filter && isActive(date, year, active)) {\n return date\n }\n })\n\n return this\n }\n\n /**\n * @param {object} active\n * @param {Date} [active.from ]\n * @param {Date} [active.to]\n * @returns\n */\n setActive (active) {\n const { from, to } = active\n let pushIt = true\n this.active = this.active || []\n if (to && !from) {\n const last = this.active[this.active.length - 1]\n if (last && last.from && !last.to) {\n last.to = to\n pushIt = false\n }\n }\n if (pushIt) {\n this.active.push(active)\n }\n\n return this\n }\n\n /**\n * @param {CalEvent} calEvent\n */\n push (calEvent) {\n if (calEvent && Array.isArray(calEvent.dates)) {\n this.dates = this.dates.concat(calEvent.dates)\n }\n }\n\n /**\n * @param {string} timezone\n * @returns\n */\n get (timezone) {\n const arr = this.dates.map((date) => {\n const cdate = new CalDate(date)\n const o = {\n date: cdate.toString(),\n start: cdate.toTimezone(timezone),\n end: cdate.toEndDate().toTimezone(timezone)\n }\n this._addSubstitute(date, o)\n return o\n })\n return arr\n }\n\n _addSubstitute (date, obj) {\n if (this.substitute || date.substitute) obj.substitute = true\n }\n}\n\nfunction isActive (date, year, active) {\n if (!active) {\n return date.year === year\n }\n const _date = date.toDate()\n for (const a of active) {\n const { from, to } = a\n if (\n date.year === year &&\n ((from && to && from <= _date && to > _date) ||\n (from && !to && from <= _date) ||\n (!from && to && to > _date))\n ) {\n return true\n }\n }\n}\n","\nimport { get as _get, toNumber } from './utils.js'\nimport Rule from './Rule.js'\nimport CalEvent from './CalEvent.js'\n\nexport default class PostRule {\n /**\n * @param {String} ruleStr\n * @param {Object} opts\n * @param {Array} [holidays]\n */\n constructor (ruleStr, opts, holidays) {\n this.opts = opts\n this.ruleStr = ruleStr\n this.ruleSet = holidays && holidays[ruleStr]\n this.holidays = holidays\n this.events = []\n }\n\n push (calEvent) {\n this.events.push(calEvent)\n }\n\n /**\n * @param {number} year\n * @returns {CalEvent}\n */\n getEvent (year) {\n const active = this.ruleSet && this.ruleSet.active\n this.disable(year)\n const ev = this.events[0]\n ev.filterActive(year, active)\n return ev\n }\n\n /**\n * @param {Array} rule\n * @param {number} year\n */\n resolve (rule, year) {\n if (rule.rule && typeof this[rule.rule] === 'function') {\n this[rule.rule](rule, year)\n }\n }\n\n /**\n * @param {Array} rule\n * @param {number} year\n */\n bridge (rule, year) {\n const found = new Array(this.events.length).fill(false)\n found[0] = true\n const type = rule.type || 'public'\n\n // get all holidays of the given year\n for (const ruleStr in this.holidays) {\n const dateFn = this.holidays[ruleStr].fn\n if (dateFn && dateFn.ruleStr !== this.ruleStr) {\n const tmpEv = dateFn.inYear(year)\n const tmpEvType = _get(tmpEv, 'opts.type') || 'public'\n for (let i = 1; i < this.events.length; i++) {\n if (found[i]) continue\n const isEqualDate = tmpEv.event.isEqualDate(this.events[i])\n if (isEqualDate && tmpEvType === type) {\n found[i] = true\n }\n }\n }\n if (!~found.indexOf(false)) { // pre-exit if all found\n break\n }\n }\n\n if (~found.indexOf(false)) {\n this.events[0].reset()\n }\n }\n\n ruleIfHoliday (rule, year) {\n const type = rule.type || 'public'\n\n // get all holidays of the given year\n for (const ruleStr in this.holidays) {\n const dateFn = this.holidays[ruleStr].fn\n if (dateFn && dateFn.ruleStr !== this.ruleStr) {\n const tmpEv = dateFn.inYear(year)\n const tmpEvType = _get(tmpEv, 'opts.type') || 'public'\n for (let i = 0; i < this.events.length; i++) {\n const isEqualDate = tmpEv.event.isEqualDate(this.events[i])\n if (isEqualDate && tmpEvType === type) {\n new Rule(this.events[i]).resolve({ ...rule, rule: 'dateDir' })\n return\n }\n }\n }\n }\n }\n\n /**\n * @param {number} year\n */\n disable (year) {\n const { disable, enable } = this.opts || {}\n if (!disable || !disable.length) return\n\n const ev = this.events[0]\n\n // check if exact event was disabled or moved\n let tmpEv = _findEventInYear(year, disable)\n if (tmpEv) {\n if (tmpEv.isEqualDate(ev)) {\n ev.reset()\n tmpEv = _findEventInYear(year, enable)\n if (tmpEv) this.events[0] = tmpEv\n }\n return\n }\n\n // simply check if the event can be disabled for year-(month)\n const [_year, _month] = _findDisabled(year, disable)\n ev.filterDisabled(_year, _month)\n }\n}\n\nconst isoDate = (isoDateStr) => String(isoDateStr).split('-').map(v => toNumber(v))\n\nfunction _findEventInYear (_year, arr = []) {\n for (const item of arr) {\n const [year, month, day] = isoDate(item)\n if (year === _year && month && day) {\n return new CalEvent({ year, month, day }).inYear(year)\n }\n }\n}\n\nfunction _findDisabled (_year, arr = []) {\n for (const isoDateStr of arr) {\n const [year, month] = isoDate(isoDateStr)\n if (_year === year) {\n return [year, month]\n }\n }\n return []\n}\n","/**\n * @private\n */\nfunction _toYear (year) {\n if (!year) {\n year = new Date().getFullYear()\n } else if (year instanceof Date) {\n year = year.getFullYear()\n } else if (typeof year === 'string') {\n year = parseInt(year, 10)\n }\n return year\n}\n\nfunction pre (num, l) {\n l = l || 2\n const s = '0000' + num\n return s.substr(s.length - l, l)\n}\n\nexport class EasterDate {\n constructor (year, month, day) {\n this.year = year\n this.month = month\n this.day = day\n }\n\n toString () {\n return [pre(this.year, 4), pre(this.month), pre(this.day)].join('-')\n }\n}\n\n/**\n * from https://de.wikipedia.org/wiki/Gau%C3%9Fsche_Osterformel\n * ergänzte Formel\n */\nfunction _easter (year, julian, gregorian) {\n year = _toYear(year)\n\n const k = Math.floor(year / 100)\n let m = 15 + Math.floor((3 * k + 3) / 4) - Math.floor((8 * k + 13) / 25)\n let s = 2 - Math.floor((3 * k + 3) / 4)\n if (julian) {\n m = 15\n s = 0\n }\n const a = year % 19\n const d = (19 * a + m) % 30\n const r = Math.floor((d + a / 11) / 29)\n const og = 21 + d - r\n const sz = 7 - Math.floor(year + year / 4 + s) % 7\n const oe = 7 - (og - sz) % 7\n let os = og + oe\n if (gregorian) {\n os = os + Math.floor(year / 100) - Math.floor(year / 400) - 2\n }\n // 1 2 3 4 5 6 7 8\n const daysPerMonth = [0, 31, 28, 31, 30, 31, 30, 31, 31]\n let day = os\n let month\n for (month = 3; month < 8; month++) {\n if (day <= daysPerMonth[month]) {\n break\n }\n day -= daysPerMonth[month]\n }\n\n return new EasterDate(year, month, day)\n}\n\n/**\n * Calculate easter sunday in the gregorian calendar\n * @param {Date|Number} year\n * @return {EasterDate}\n */\nexport function gregorianEaster (year) {\n return _easter(year)\n}\n\n/**\n * Calculate easter sunday in the gregorian calendar (Shortcut for\n * `gregorianEaster`)\n * @param {Date|Number} year\n * @return {EasterDate}\n */\nexport const easter = gregorianEaster\n\n/**\n * Calculate easter sunday in the julian calendar\n * @param {Date|Number} year\n * @return {EasterDate}\n */\nexport function julianEaster (year) {\n return _easter(year, true)\n}\n\n/**\n * Orthodox Easter in gregorian calender\n * @param {Date|Number} year\n * @return {EasterDate}\n */\nexport function orthodoxEaster (year) {\n return _easter(year, true, true)\n}\n\nexport default {\n easter,\n gregorianEaster,\n julianEaster,\n orthodoxEaster\n}\n","import easter from 'date-easter'\nimport CalDate from 'caldate'\nimport CalEvent from './CalEvent.js'\n\nexport default class Easter extends CalEvent {\n /**\n * @param {object} [opts]\n * @param {string} opts.type - type of eastern (easter|orthodox)\n * @param {number|string} opts.offset - offset in days\n */\n constructor (opts) {\n opts = opts || {}\n super(opts)\n\n this._fn = easter.easter\n if (opts.type === 'orthodox') {\n this._fn = easter.orthodoxEaster\n }\n }\n\n inYear (year) {\n const d = (new CalDate(this._fn(year))).setOffset(this.offset)\n this.dates.push(d)\n return this\n }\n}\n","/**\n * @copyright 2013 Sonia Keys\n * @copyright 2016 commenthol\n * @license MIT\n * @module base\n */\n/**\n * Base: Functions and other definitions useful with multiple packages.\n *\n * Base contains various definitions and support functions useful in multiple\n * chapters.\n *\n * Bessellian and Julian Year\n *\n * Chapter 21, Precession actually contains these definitions. They are moved\n * here because of their general utility.\n *\n * Chapter 22, Nutation contains the function for Julian centuries since J2000.\n *\n * Phase angle functions\n *\n * Two functions, Illuminated and Limb, concern the illumnated phase of a body\n * and are given in two chapters, 41 an 48. They are collected here because\n * the identical functions apply in both chapters.\n *\n * General purpose math functions\n *\n * SmallAngle is recommended in chapter 17, p. 109.\n *\n * PMod addresses the issue on p. 7, chapter 1, in the section \"Trigonometric\n * functions of large angles\", but the function is not written to be specific\n * to angles and so has more general utility.\n *\n * Horner is described on p. 10, chapter 1.\n *\n * FloorDiv and FloorDiv64 are optimizations for the INT function described\n * on p. 60, chapter 7.\n*/\n\n// ---- constants ----\n\n/** K is the Gaussian gravitational constant. */\nexport const K = 0.01720209895\n// K from ch 33, p. 228, for example\n\n/** AU is one astronomical unit in km. */\nexport const AU = 149597870\n// from Appendix I, p, 407.\n\n/** SOblJ2000 sine obliquity at J2000. */\nexport const SOblJ2000 = 0.397777156\n/** COblJ2000 cosine obliquity at J2000. */\nexport const COblJ2000 = 0.917482062\n// SOblJ2000, COblJ2000 from ch 33, p. 228, for example\n\n/**\n * lightTime returns time for light to travel a given distance.\n * `dist` is distance in to earth in AU. √(x² + y² + z²)\n * Result in seconds of time.\n * @param {Number} dist - distance in to earth in AU\n * @returns {Number} time for light to travel a given distance in seconds\n */\nexport function lightTime (dist) {\n // Formula given as (33.3) p. 224.\n return 0.0057755183 * dist\n}\n\n// ---- julian ----\n\n/**\n * Julian and Besselian years described in chapter 21, Precession.\n * T, Julian centuries since J2000 described in chapter 22, Nutation.\n */\n\n/** JMod is the Julian date of the modified Julian date epoch. */\nexport const JMod = 2400000.5\n\n/** J2000 is the Julian date corresponding to January 1.5, year 2000. */\nexport const J2000 = 2451545.0\n\n// Julian days of common epochs.\n// B1900, B1950 from p. 133\n/** Julian days of Julian epoch 1900 */\nexport const J1900 = 2415020.0\n/** Julian days of Besselian epoch 1900 */\nexport const B1900 = 2415020.3135\n/** Julian days of Besselian epoch 1950 */\nexport const B1950 = 2433282.4235\n\n// JulianYear and other common periods\n/** JulianYear in days */\nexport const JulianYear = 365.25 // days\n/** JulianCentury in days */\nexport const JulianCentury = 36525 // days\n/** BesselianYear in days; equals mean tropical year */\nexport const BesselianYear = 365.2421988 // days\n/** Mean sidereal year */\nexport const meanSiderealYear = 365.25636 // days\n\n/**\n * JulianYearToJDE returns the Julian ephemeris day for a Julian year.\n * @param {Number} jy - Julian year\n * @returns {Number} jde - Julian ephemeris day\n */\nexport function JulianYearToJDE (jy) {\n return J2000 + JulianYear * (jy - 2000)\n}\n\n/**\n * JDEToJulianYear returns a Julian year for a Julian ephemeris day.\n * @param {Number} jde - Julian ephemeris day\n * @returns {Number} jy - Julian year\n */\nexport function JDEToJulianYear (jde) {\n return 2000 + (jde - J2000) / JulianYear\n}\n\n/**\n * BesselianYearToJDE returns the Julian ephemeris day for a Besselian year.\n * @param {Number} by - Besselian year\n * @returns {Number} jde - Julian ephemeris day\n */\nexport function BesselianYearToJDE (by) {\n return B1900 + BesselianYear * (by - 1900)\n}\n\n/**\n * JDEToBesselianYear returns the Besselian year for a Julian ephemeris day.\n * @param {Number} jde - Julian ephemeris day\n * @returns {Number} by - Besselian year\n */\nexport function JDEToBesselianYear (jde) {\n return 1900 + (jde - B1900) / BesselianYear\n}\n\n/**\n * J2000Century returns the number of Julian centuries since J2000.\n *\n * The quantity appears as T in a number of time series.\n * @param {Number} jde - Julian ephemeris day\n * @returns {Number} number of Julian centuries since J2000\n */\nexport function J2000Century (jde) {\n // The formula is given in a number of places in the book, for example\n // (12.1) p. 87.\n // (22.1) p. 143.\n // (25.1) p. 163.\n return (jde - J2000) / JulianCentury\n}\n\n// ---- phase ----\n\n/**\n * illuminated returns the illuminated fraction of a body's disk.\n *\n * The illuminated body can be the Moon or a planet.\n *\n * @param {Number} i - phase angle in radians.\n * @returns {Number} illuminated fraction of a body's disk.\n */\nexport function illuminated (i) {\n // (41.1) p. 283, also (48.1) p. 345.\n return (1 + Math.cos(i)) * 0.5\n}\n\n/**\n * celestial coordinates in right ascension and declination\n * or ecliptic coordinates in longitude and latitude\n */\nexport class Coord {\n /**\n * celestial coordinates in right ascension and declination\n * or ecliptic coordinates in longitude and latitude\n *\n * @param {number} ra - right ascension (or longitude)\n * @param {number} dec - declination (or latitude)\n * @param {number} [range] - distance\n * @param {number} [elongation] - elongation\n */\n constructor (ra, dec, range, elongation) {\n this._ra = ra || 0\n this._dec = dec || 0\n this.range = range\n this.elongation = elongation\n }\n\n /**\n * right ascension\n * @return {number}\n */\n get ra () {\n return this._ra\n }\n\n set ra (ra) {\n this._ra = ra\n }\n\n /**\n * declination\n * @return {number}\n */\n get dec () {\n return this._dec\n }\n\n set dec (dec) {\n this._dec = dec\n }\n\n /**\n * right ascension (or longitude)\n * @return {number}\n */\n get lon () {\n return this._ra\n }\n\n set lon (ra) {\n this._ra = ra\n }\n\n /**\n * declination (or latitude)\n * @return {number}\n */\n get lat () {\n return this._dec\n }\n\n set lat (dec) {\n this._dec = dec\n }\n}\n\n/**\n * Limb returns the position angle of the midpoint of an illuminated limb.\n *\n * The illuminated body can be the Moon or a planet.\n *\n * @param {Coord} equ - equatorial coordinates of the body `{ra, dec}` (in radians)\n * @param {Coord} appSun - apparent coordinates of the Sun `{ra, dec}` (In radians).\n * @returns {Number} position angle of the midpoint (in radians).\n */\nexport function limb (equ, appSun) {\n const α = equ.ra\n const δ = equ.dec\n const α0 = appSun.ra\n const δ0 = appSun.dec\n // Mentioned in ch 41, p. 283. Formula (48.5) p. 346\n const sδ = Math.sin(δ)\n const cδ = Math.cos(δ)\n const sδ0 = Math.sin(δ0)\n const cδ0 = Math.cos(δ0)\n const sα0α = Math.sin(α0 - α)\n const cα0α = Math.cos(α0 - α)\n let χ = Math.atan2(cδ0 * sα0α, (sδ0 * cδ - cδ0 * sδ * cα0α))\n if (χ < 0) {\n χ += 2 * Math.PI\n }\n return χ\n}\n\n// ---- math ----\n\n// In chapter 17, p. 109, Meeus recommends 10′.\n/**\n * SmallAngle is threshold used by various routines for switching between\n * trigonometric functions and Pythagorean approximations.\n */\nexport const SmallAngle = 10 * Math.PI / 180 / 60 // about .003 radians\n/** cosine of SmallAngle */\nexport const CosSmallAngle = Math.cos(SmallAngle) // about .999996\n\n/**\n * pmod returns a positive floating-point x mod y.\n *\n * For a positive argument y, it returns a value in the range [0,y).\n *\n * @param {Number} x\n * @param {Number} y\n * @returns {Number} x % y - The result may not be useful if y is negative.\n */\nexport function pmod (x, y) {\n let r = x % y\n if (r < 0) {\n r += y\n }\n return r\n}\n\n/**\n * horner evaluates a polynomal with coefficients c at x. The constant\n * term is c[0].\n * @param {Number} x\n * @param {Number[]} c - coefficients; c[0] may be of type Number[]\n * @returns {Number}\n */\nexport function horner (x, ...c) {\n if (Array.isArray(c[0])) {\n c = c[0]\n }\n let i = c.length - 1\n let y = c[i]\n while (i > 0) {\n i--\n y = y * x + c[i]\n }\n return y\n}\n\n/**\n * FloorDiv returns the integer floor of the fractional value (x / y).\n * @param {Number} x\n * @param {Number} y\n * @returns {Number} (int)\n */\nexport function floorDiv (x, y) {\n const q = x / y\n return Math.floor(q)\n}\n\n/**\n * Cmp compares two float64s and returns -1, 0, or 1 if a is <, ==, or > b,\n * respectively.\n * .\n * @param {Number} a\n * @param {Number} b\n * @returns {Number} comparison result\n */\nexport function cmp (a, b) {\n if (a < b) return -1\n if (a > b) return 1\n return 0\n}\n\n/**\n * shorthand function for Math.sin, Math.cos\n * @param {Number} ε\n * @returns {Number[]} [sin(ε), cos(ε)]\n */\nexport function sincos (ε) {\n return [Math.sin(ε), Math.cos(ε)]\n}\n\n/**\n * Convert degrees to radians\n * @param {Number} deg - Angle in degrees\n * @return {Number} Angle in radians\n */\nexport function toRad (deg) {\n return (Math.PI / 180.0) * deg\n}\n\n/**\n * Convert radians to degrees\n * @param {Number} rad - Angle in radians\n * @return {Number} Angle in degrees\n */\nexport function toDeg (rad) {\n return (180.0 / Math.PI) * rad\n}\n\n/**\n * separate fix `i` from fraction `f`\n * @param {Number} float\n * @returns {Array} [i, f]\n * {Number} i - (int) fix value\n * {Number} f - (float) fractional portion; always > 1\n */\nexport function modf (float) {\n const i = Math.trunc(float)\n const f = Math.abs(float - i)\n return [i, f]\n}\n\n/**\n * Rounds `float` value by precision\n * @param {Number} float - value to round\n * @param {Number} [precision] - (int) number of post decimal positions\n * @return {Number} rounded `float`\n */\nexport function round (float, precision = 14) {\n return parseFloat(float.toFixed(precision))\n}\n\nexport function errorCode (msg, code) {\n const err = new Error(msg)\n // @ts-ignore\n err.code = code\n return err\n}\n\nexport default {\n K,\n AU,\n SOblJ2000,\n COblJ2000,\n lightTime,\n JMod,\n J2000,\n J1900,\n B1900,\n B1950,\n JulianYear,\n JulianCentury,\n BesselianYear,\n meanSiderealYear,\n JulianYearToJDE,\n JDEToJulianYear,\n BesselianYearToJDE,\n JDEToBesselianYear,\n J2000Century,\n illuminated,\n Coord,\n limb,\n SmallAngle,\n CosSmallAngle,\n pmod,\n horner,\n floorDiv,\n cmp,\n sincos,\n toRad,\n toDeg,\n modf,\n round,\n errorCode\n}\n","/**\n * @copyright 2013 Sonia Keys\n * @copyright 2016 commenthol\n * @license MIT\n * @module interpolation\n */\n/**\n * Interp: Chapter 3, Interpolation.\n *\n * Len3 and Len5 types\n *\n * These types allow interpolation from a table of equidistant x values\n * and corresponding y values. Since the x values are equidistant,\n * only the first and last values are supplied as arguments to the\n * constructors. The interior x values are implicit. All y values must be\n * supplied however. They are passed as a slice, and the length of y is fixed.\n * For Len3 it must be 3 and for (Len5 it must be 5.0\n *\n * For these Len3 and Len5 functions, Meeus notes the importance of choosing\n * the 3 or 5 rows of a larger table that will minimize the interpolating\n * factor n. He does not provide algorithms for doing this however.\n *\n * For an example of a selection function, see len3ForInterpolateX. This\n * was useful for computing Delta T.\n */\nimport base from './base.js'\n\nconst int = Math.trunc\n\n/**\n * Error values returned by functions and methods in this package.\n * Defined here to help testing for specific errors.\n */\nexport const errorNot3 = new Error('Argument y must be length 3')\nexport const errorNot4 = new Error('Argument y must be length 4')\nexport const errorNot5 = new Error('Argument y must be length 5')\nexport const errorNoXRange = new Error('Argument x3 (or x5) cannot equal x1')\nexport const errorNOutOfRange = new Error('Interpolating factor n must be in range -1 to 1')\nexport const errorNoExtremum = new Error('No extremum in table')\nexport const errorExtremumOutside = new Error('Extremum falls outside of table')\nexport const errorZeroOutside = new Error('Zero falls outside of table')\nexport const errorNoConverge = new Error('Failure to converge')\n\n/**\n * Len3 allows second difference interpolation.\n */\nexport class Len3 {\n /**\n * NewLen3 prepares a Len3 object from a table of three rows of x and y values.\n *\n * X values must be equally spaced, so only the first and last are supplied.\n * X1 must not equal to x3. Y must be a slice of three y values.\n *\n * @throws Error\n * @param {Number} x1 - is the x value corresponding to the first y value of the table.\n * @param {Number} x3 - is the x value corresponding to the last y value of the table.\n * @param {Number[]} y - is all y values in the table. y.length should be >= 3.0\n */\n constructor (x1, x3, y) {\n if (y.length !== 3) {\n throw errorNot3\n }\n if (x3 === x1) {\n throw errorNoXRange\n }\n this.x1 = x1\n this.x3 = x3\n this.y = y\n // differences. (3.1) p. 23\n this.a = y[1] - y[0]\n this.b = y[2] - y[1]\n this.c = this.b - this.a\n // other intermediate values\n this.abSum = this.a + this.b\n this.xSum = x3 + x1\n this.xDiff = x3 - x1\n }\n\n /**\n * InterpolateX interpolates for a given x value.\n */\n interpolateX (x) {\n const n = (2 * x - this.xSum) / this.xDiff\n return this.interpolateN(n)\n }\n\n /**\n * InterpolateXStrict interpolates for a given x value,\n * restricting x to the range x1 to x3 given to the constructor NewLen3.\n */\n interpolateXStrict (x) {\n const n = (2 * x - this.xSum) / this.xDiff\n const y = this.interpolateNStrict(n)\n return y\n }\n\n /**\n * InterpolateN interpolates for (a given interpolating factor n.\n *\n * This is interpolation formula (3.3)\n *\n * @param n - The interpolation factor n is x-x2 in units of the tabular x interval.\n * (See Meeus p. 24.)\n * @return {number} interpolation value\n */\n interpolateN (n) {\n return this.y[1] + n * 0.5 * (this.abSum + n * this.c)\n }\n\n /**\n * InterpolateNStrict interpolates for (a given interpolating factor n.\n *\n * @param {number} n - n is restricted to the range [-1..1] corresponding to the range x1 to x3\n * given to the constructor of Len3.\n * @return {number} interpolation value\n */\n interpolateNStrict (n) {\n if (n < -1 || n > 1) {\n throw errorNOutOfRange\n }\n return this.interpolateN(n)\n }\n\n /**\n * Extremum returns the x and y values at the extremum.\n *\n * Results are restricted to the range of the table given to the constructor\n * new Len3.\n */\n extremum () {\n if (this.c === 0) {\n throw errorNoExtremum\n }\n const n = this.abSum / (-2 * this.c) // (3.5), p. 25\n if (n < -1 || n > 1) {\n throw errorExtremumOutside\n }\n const x = 0.5 * (this.xSum + this.xDiff * n)\n const y = this.y[1] - (this.abSum * this.abSum) / (8 * this.c) // (3.4), p. 25\n return [x, y]\n }\n\n /**\n * Len3Zero finds a zero of the quadratic function represented by the table.\n *\n * That is, it returns an x value that yields y=0.\n *\n * Argument strong switches between two strategies for the estimation step.\n * when iterating to converge on the zero.\n *\n * Strong=false specifies a quick and dirty estimate that works well\n * for gentle curves, but can work poorly or fail on more dramatic curves.\n *\n * Strong=true specifies a more sophisticated and thus somewhat more\n * expensive estimate. However, if the curve has quick changes, This estimate\n * will converge more reliably and in fewer steps, making it a better choice.\n *\n * Results are restricted to the range of the table given to the constructor\n * NewLen3.\n */\n zero (strong) {\n let f\n if (strong) {\n // (3.7), p. 27\n f = (n0) => {\n return n0 - (2 * this.y[1] + n0 * (this.abSum + this.c * n0)) /\n (this.abSum + 2 * this.c * n0)\n }\n } else {\n // (3.6), p. 26\n f = (n0) => {\n return -2 * this.y[1] / (this.abSum + this.c * n0)\n }\n }\n const [n0, ok] = iterate(0, f)\n if (!ok) {\n throw errorNoConverge\n }\n if (n0 > 1 || n0 < -1) {\n throw errorZeroOutside\n }\n return 0.5 * (this.xSum + this.xDiff * n0) // success\n }\n}\n\n/**\n * Len3ForInterpolateX is a special purpose Len3 constructor.\n *\n * Like NewLen3, it takes a table of x and y values, but it is not limited\n * to tables of 3 rows. An X value is also passed that represents the\n * interpolation target x value. Len3ForInterpolateX will locate the\n * appropriate three rows of the table for interpolating for x, and initialize\n * the Len3 object for those rows.\n *\n * @param {Number} x - is the target for interpolation\n * @param {Number} x1 - is the x value corresponding to the first y value of the table.\n * @param {Number} xN - is the x value corresponding to the last y value of the table.\n * @param {Number[]} y - is all y values in the table. y.length should be >= 3.0\n * @returns {Len3} interpolation value\n */\nexport function len3ForInterpolateX (x, x1, xN, y) {\n let y3 = y\n if (y.length > 3) {\n const interval = (xN - x1) / (y.length - 1)\n if (interval === 0) {\n throw errorNoXRange\n }\n let nearestX = int((x - x1) / interval + 0.5)\n if (nearestX < 1) {\n nearestX = 1\n } else if (nearestX > y.length - 2) {\n nearestX = y.length - 2\n }\n y3 = y.slice(nearestX - 1, nearestX + 2)\n xN = x1 + (nearestX + 1) * interval\n x1 = x1 + (nearestX - 1) * interval\n }\n return new Len3(x1, xN, y3)\n}\n\n/**\n * @private\n * @param {Number} n0\n * @param {Function} f\n * @returns {Array}\n * {Number} n1\n * {Boolean} ok - if `false` failure to converge\n */\nexport const iterate = function (n0, f) {\n for (let limit = 0; limit < 50; limit++) {\n const n1 = f(n0)\n if (!isFinite(n1) || isNaN(n1)) {\n break // failure to converge\n }\n if (Math.abs((n1 - n0) / n0) < 1e-15) {\n return [n1, true] // success\n }\n n0 = n1\n }\n return [0, false] // failure to converge\n}\n\n/**\n * Len4Half interpolates a center value from a table of four rows.\n * @param {Number[]} y - 4 values\n * @returns {Number} interpolation result\n */\nexport function len4Half (y) {\n if (y.length !== 4) {\n throw errorNot4\n }\n // (3.12) p. 32\n return (9 * (y[1] + y[2]) - y[0] - y[3]) / 16\n}\n\n/**\n * Len5 allows fourth Difference interpolation.\n */\nexport class Len5 {\n /**\n * NewLen5 prepares a Len5 object from a table of five rows of x and y values.\n *\n * X values must be equally spaced, so only the first and last are suppliethis.\n * X1 must not equal x5. Y must be a slice of five y values.\n */\n constructor (x1, x5, y) {\n if (y.length !== 5) {\n throw errorNot5\n }\n if (x5 === x1) {\n throw errorNoXRange\n }\n this.x1 = x1\n this.x5 = x5\n this.y = y\n this.y3 = y[2]\n // differences\n this.a = y[1] - y[0]\n this.b = y[2] - y[1]\n this.c = y[3] - y[2]\n this.d = y[4] - y[3]\n\n this.e = this.b - this.a\n this.f = this.c - this.b\n this.g = this.d - this.c\n\n this.h = this.f - this.e\n this.j = this.g - this.f\n\n this.k = this.j - this.h\n // other intermediate values\n this.xSum = x5 + x1\n this.xDiff = x5 - x1\n this.interpCoeff = [ // (3.8) p. 28\n this.y3,\n (this.b + this.c) / 2 - (this.h + this.j) / 12,\n this.f / 2 - this.k / 24,\n (this.h + this.j) / 12,\n this.k / 24\n ]\n }\n\n /**\n * InterpolateX interpolates for (a given x value.\n */\n interpolateX (x) {\n const n = (4 * x - 2 * this.xSum) / this.xDiff\n return this.interpolateN(n)\n }\n\n /**\n * InterpolateXStrict interpolates for a given x value,\n * restricting x to the range x1 to x5 given to the the constructor NewLen5.\n */\n interpolateXStrict (x) {\n const n = (4 * x - 2 * this.xSum) / this.xDiff\n const y = this.interpolateNStrict(n)\n return y\n }\n\n /**\n * InterpolateN interpolates for (a given interpolating factor n.\n *\n * The interpolation factor n is x-x3 in units of the tabular x interval.\n * (See Meeus p. 28.)\n */\n interpolateN (n) {\n return base.horner(n, ...this.interpCoeff)\n }\n\n /**\n * InterpolateNStrict interpolates for (a given interpolating factor n.\n *\n * N is restricted to the range [-1..1]. This is only half the range given\n * to the constructor NewLen5, but is the recommendation given on p. 31.0\n */\n interpolateNStrict (n) {\n if (n < -1 || n > 1) {\n throw errorNOutOfRange\n }\n return base.horner(n, ...this.interpCoeff)\n }\n\n /**\n * Extremum returns the x and y values at the extremum.\n *\n * Results are restricted to the range of the table given to the constructor\n * NewLen5. (Meeus actually recommends restricting the range to one unit of\n * the tabular interval, but that seems a little harsh.)\n */\n extremum () {\n // (3.9) p. 29\n const nCoeff = [\n 6 * (this.b + this.c) - this.h - this.j,\n 0,\n 3 * (this.h + this.j),\n 2 * this.k\n ]\n const den = this.k - 12 * this.f\n if (den === 0) {\n throw errorExtremumOutside\n }\n const [n0, ok] = iterate(0, function (n0) {\n return base.horner(n0, ...nCoeff) / den\n })\n if (!ok) {\n throw errorNoConverge\n }\n if (n0 < -2 || n0 > 2) {\n throw errorExtremumOutside\n }\n const x = 0.5 * this.xSum + 0.25 * this.xDiff * n0\n const y = base.horner(n0, ...this.interpCoeff)\n return [x, y]\n }\n\n /**\n * Len5Zero finds a zero of the quartic function represented by the table.\n *\n * That is, it returns an x value that yields y=0.\n *\n * Argument strong switches between two strategies for the estimation step.\n * when iterating to converge on the zero.\n *\n * Strong=false specifies a quick and dirty estimate that works well\n * for gentle curves, but can work poorly or fail on more dramatic curves.\n *\n * Strong=true specifies a more sophisticated and thus somewhat more\n * expensive estimate. However, if the curve has quick changes, This estimate\n * will converge more reliably and in fewer steps, making it a better choice.\n *\n * Results are restricted to the range of the table given to the constructor\n * NewLen5.\n */\n zero (strong) {\n let f\n if (strong) {\n // (3.11), p. 29\n const M = this.k / 24\n const N = (this.h + this.j) / 12\n const P = this.f / 2 - M\n const Q = (this.b + this.c) / 2 - N\n const numCoeff = [this.y3, Q, P, N, M]\n const denCoeff = [Q, 2 * P, 3 * N, 4 * M]\n f = function (n0) {\n return n0 -\n base.horner(n0, ...numCoeff) / base.horner(n0, ...denCoeff)\n }\n } else {\n // (3.10), p. 29\n const numCoeff = [\n -24 * this.y3,\n 0,\n this.k - 12 * this.f,\n -2 * (this.h + this.j),\n -this.k\n ]\n const den = 12 * (this.b + this.c) - 2 * (this.h + this.j)\n f = function (n0) {\n return base.horner(n0, ...numCoeff) / den\n }\n }\n const [n0, ok] = iterate(0, f)\n if (!ok) {\n throw errorNoConverge\n }\n if (n0 > 2 || n0 < -2) {\n throw errorZeroOutside\n }\n const x = 0.5 * this.xSum + 0.25 * this.xDiff * n0\n return x\n }\n}\n\n/**\n * Lagrange performs interpolation with unequally-spaced abscissae.\n *\n * Given a table of X and Y values, interpolate a new y value for argument x.\n *\n * X values in the table do not have to be equally spaced; they do not even\n * have to be in order. They must however, be distinct.\n *\n * @param {Number} x - x-value of interpolation\n * @param {Array} table - `[[x0, y0], ... [xN, yN]]` of x, y values\n * @returns {Number} interpolation result `y` of `x`\n */\nexport function lagrange (x, table) {\n // method of BASIC program, p. 33.0\n let sum = 0\n table.forEach((ti, i) => {\n const xi = ti[0]\n let prod = 1.0\n table.forEach((tj, j) => {\n if (i !== j) {\n const xj = tj[0]\n prod *= (x - xj) / (xi - xj)\n }\n })\n sum += ti[1] * prod\n })\n return sum\n}\n\n/**\n * LagrangePoly uses the formula of Lagrange to produce an interpolating\n * polynomial.\n *\n * X values in the table do not have to be equally spaced; they do not even\n * have to be in order. They must however, be distinct.\n *\n * The returned polynomial will be of degree n-1 where n is the number of rows\n * in the table. It can be evaluated for x using base.horner.\n *\n * @param {Array} table - `[[x0, y0], ... [xN, yN]]`\n * @returns {Array} - polynomial array\n */\nexport function lagrangePoly (table) {\n // Method not fully described by Meeus, but needed for (numerical solution\n // to Example 3.g.\n const sum = new Array(table.length).fill(0)\n const prod = new Array(table.length).fill(0)\n const last = table.length - 1\n for (let i = 0; i < table.length; i++) {\n const xi = table[i][0] || table[i].x || 0\n const yi = table[i][1] || table[i].y || 0\n prod[last] = 1\n let den = 1.0\n let n = last\n for (let j = 0; j < table.length; j++) {\n if (i !== j) {\n const xj = table[j][0] || table[j].x || 0\n prod[n - 1] = prod[n] * -xj\n for (let k = n; k < last; k++) {\n prod[k] -= prod[k + 1] * xj\n }\n n--\n den *= (xi - xj)\n }\n }\n prod.forEach((pj, j) => {\n sum[j] += yi * pj / den\n })\n }\n return sum\n}\n\n/**\n * Linear Interpolation of x\n */\nexport function linear (x, x1, xN, y) {\n const interval = (xN - x1) / (y.length - 1)\n if (interval === 0) {\n throw errorNoXRange\n }\n let nearestX = Math.floor((x - x1) / interval)\n if (nearestX < 0) {\n nearestX = 0\n } else if (nearestX > y.length - 2) {\n nearestX = y.length - 2\n }\n const y2 = y.slice(nearestX, nearestX + 2)\n const x01 = x1 + nearestX * interval\n return y2[0] + (y[1] - y[0]) * (x - x01) / interval\n}\n\nexport default {\n errorNot3,\n errorNot4,\n errorNot5,\n errorNoXRange,\n errorNOutOfRange,\n errorNoExtremum,\n errorExtremumOutside,\n errorZeroOutside,\n errorNoConverge,\n Len3,\n len3ForInterpolateX,\n iterate,\n len4Half,\n Len5,\n lagrange,\n lagrangePoly,\n linear\n}\n","/**\n * @copyright 2013 Sonia Keys\n * @copyright 2016 commenthol\n * @license MIT\n * @module angle\n */\n/**\n * Angle: Chapter 17: Angular Separation.\n *\n * Functions in this package are useful for Ecliptic, Equatorial, or any\n * similar coordinate frame. To avoid suggestion of a particular frame,\n * function parameters are specified simply as \"r1, d1\" to correspond to a\n * right ascenscion, declination pair or to a longitude, latitude pair.\n *\n * In function Sep, Meeus recommends 10 arc min as a threshold. This\n * value is in package base as base.SmallAngle because it has general utility.\n *\n * All angles are in radians.\n */\n\nimport base, { Coord } from './base.js' // eslint-disable-line no-unused-vars\nimport interp from './interpolation.js'\nconst { abs, acos, asin, atan2, cos, hypot, sin, sqrt, tan } = Math\n\n/**\n * `sep` returns the angular separation between two celestial bodies.\n *\n * The algorithm is numerically naïve, and while patched up a bit for\n * small separations, remains unstable for separations near π.\n *\n * @param {Coord} c1 - coordinate of celestial body 1\n * @param {Coord} c2 - coordinate of celestial body 2\n * @return {Number} angular separation between two celestial bodies\n */\nexport function sep (c1, c2) {\n const [sind1, cosd1] = base.sincos(c1.dec)\n const [sind2, cosd2] = base.sincos(c2.dec)\n const cd = sind1 * sind2 + cosd1 * cosd2 * cos(c1.ra - c2.ra) // (17.1) p. 109\n if (cd < base.CosSmallAngle) {\n return acos(cd)\n } else {\n const cosd = cos((c2.dec + c1.dec) / 2) // average dec of two bodies\n return hypot((c2.ra - c1.ra) * cosd, c2.dec - c1.dec) // (17.2) p. 109\n }\n}\n\n/**\n * `minSep` returns the minimum separation between two moving objects.\n *\n * The motion is represented as an ephemeris of three rows, equally spaced\n * in time. Jd1, jd3 are julian day times of the first and last rows.\n * R1, d1, r2, d2 are coordinates at the three times. They must each be\n * slices of length 3.0\n *\n * Result is obtained by computing separation at each of the three times\n * and interpolating a minimum. This may be invalid for sufficiently close\n * approaches.\n *\n * @throws Error\n * @param {Number} jd1 - Julian day - time at cs1[0], cs2[0]\n * @param {Number} jd3 - Julian day - time at cs1[2], cs2[2]\n * @param {Coord[]} cs1 - 3 coordinates of moving object 1\n * @param {Coord[]} cs2 - 3 coordinates of moving object 2\n * @param {function} [fnSep] - alternative `sep` function e.g. `angle.sepPauwels`, `angle.sepHav`\n * @return {Number} angular separation between two celestial bodies\n */\nexport function minSep (jd1, jd3, cs1, cs2, fnSep) {\n fnSep = fnSep || sep\n if (cs1.length !== 3 || cs2.length !== 3) {\n throw interp.errorNot3\n }\n const y = new Array(3)\n cs1.forEach((c, x) => {\n y[x] = sep(cs1[x], cs2[x])\n })\n const d3 = new interp.Len3(jd1, jd3, y)\n const dMin = d3.extremum()[1]\n return dMin\n}\n\n/**\n * `minSepRect` returns the minimum separation between two moving objects.\n *\n * Like `minSep`, but using a method of rectangular coordinates that gives\n * accurate results even for close approaches.\n *\n * @throws Error\n * @param {Number} jd1 - Julian day - time at cs1[0], cs2[0]\n * @param {Number} jd3 - Julian day - time at cs1[2], cs2[2]\n * @param {Coord[]} cs1 - 3 coordinates of moving object 1\n * @param {Coord[]} cs2 - 3 coordinates of moving object 2\n * @return {Number} angular separation between two celestial bodies\n */\nexport function minSepRect (jd1, jd3, cs1, cs2) {\n if (cs1.length !== 3 || cs2.length !== 3) {\n throw interp.ErrorNot3\n }\n const uv = function (c1, c2) {\n const [sind1, cosd1] = base.sincos(c1.dec)\n const Δr = c2.ra - c1.ra\n const tanΔr = tan(Δr)\n const tanhΔr = tan(Δr / 2)\n const K = 1 / (1 + sind1 * sind1 * tanΔr * tanhΔr)\n const sinΔd = sin(c2.dec - c1.dec)\n const u = -K * (1 - (sind1 / cosd1) * sinΔd) * cosd1 * tanΔr\n const v = K * (sinΔd + sind1 * cosd1 * tanΔr * tanhΔr)\n return [u, v]\n }\n const us = new Array(3).fill(0)\n const vs = new Array(3).fill(0)\n cs1.forEach((c, x) => {\n [us[x], vs[x]] = uv(cs1[x], cs2[x])\n })\n const u3 = new interp.Len3(-1, 1, us) // if line throws then bug not caller's fault.\n const v3 = new interp.Len3(-1, 1, vs) // if line throws then bug not caller's fault.\n const up0 = (us[2] - us[0]) / 2\n const vp0 = (vs[2] - vs[0]) / 2\n const up1 = us[0] + us[2] - 2 * us[1]\n const vp1 = vs[0] + vs[2] - 2 * vs[1]\n const up = up0\n const vp = vp0\n let dn = -(us[1] * up + vs[1] * vp) / (up * up + vp * vp)\n let n = dn\n let u\n let v\n for (let limit = 0; limit < 10; limit++) {\n u = u3.interpolateN(n)\n v = v3.interpolateN(n)\n if (abs(dn) < 1e-5) {\n return hypot(u, v) // success\n }\n const up = up0 + n * up1\n const vp = vp0 + n * vp1\n dn = -(u * up + v * vp) / (up * up + vp * vp)\n n += dn\n }\n throw new Error('minSepRect: failure to converge')\n}\n\n/**\n * haversine function (17.5) p. 115\n */\nexport function hav (a) {\n return 0.5 * (1 - Math.cos(a))\n}\n\n/**\n * `sepHav` returns the angular separation between two celestial bodies.\n *\n * The algorithm uses the haversine function and is superior to the naïve\n * algorithm of the Sep function.\n *\n * @param {Coord} c1 - coordinate of celestial body 1\n * @param {Coord} c2 - coordinate of celestial body 2\n * @return {Number} angular separation between two celestial bodies\n */\nexport function sepHav (c1, c2) {\n // using (17.5) p. 115\n return 2 * asin(sqrt(hav(c2.dec - c1.dec) +\n cos(c1.dec) * cos(c2.dec) * hav(c2.ra - c1.ra)))\n}\n\n/**\n * Same as `minSep` but uses function `sepHav` to return the minimum separation\n * between two moving objects.\n */\nexport function minSepHav (jd1, jd3, cs1, cs2) {\n return minSep(jd1, jd3, cs1, cs2, sepHav)\n}\n\n/**\n * `sepPauwels` returns the angular separation between two celestial bodies.\n *\n * The algorithm is a numerically stable form of that used in `sep`.\n *\n * @param {Coord} c1 - coordinate of celestial body 1\n * @param {Coord} c2 - coordinate of celestial body 2\n * @return {Number} angular separation between two celestial bodies\n */\nexport function sepPauwels (c1, c2) {\n const [sind1, cosd1] = base.sincos(c1.dec)\n const [sind2, cosd2] = base.sincos(c2.dec)\n const cosdr = cos(c2.ra - c1.ra)\n const x = cosd1 * sind2 - sind1 * cosd2 * cosdr\n const y = cosd2 * sin(c2.ra - c1.ra)\n const z = sind1 * sind2 + cosd1 * cosd2 * cosdr\n return atan2(hypot(x, y), z)\n}\n\n/**\n * Same as `minSep` but uses function `sepPauwels` to return the minimum\n * separation between two moving objects.\n */\nexport function minSepPauwels (jd1, jd3, cs1, cs2) {\n return minSep(jd1, jd3, cs1, cs2, sepPauwels)\n}\n\n/**\n * RelativePosition returns the position angle of one body with respect to\n * another.\n *\n * The position angle result `p` is measured counter-clockwise from North.\n * If negative then `p` is in the range of 90° ... 270°\n *\n * ````\n * North\n * |\n * (p) ..|\n * . |\n * V |\n * c1 x------------x c2\n * |\n * ````\n *\n * @param {Coord} c1 - coordinate of celestial body 1\n * @param {Coord} c2 - coordinate of celestial body 2\n * @return {Number} position angle (p)\n */\nexport function relativePosition (c1, c2) {\n const [sinΔr, cosΔr] = base.sincos(c1.ra - c2.ra)\n const [sind2, cosd2] = base.sincos(c2.dec)\n const p = atan2(sinΔr, cosd2 * tan(c1.dec) - sind2 * cosΔr)\n return p\n}\n\nexport default {\n sep,\n minSep,\n minSepRect,\n hav,\n sepHav,\n minSepHav,\n sepPauwels,\n minSepPauwels,\n relativePosition\n}\n","/**\n * @copyright 2013 Sonia Keys\n * @copyright 2016 commenthol\n * @license MIT\n * @module sexagesimal\n */\n/**\n * Sexagesimal functions\n */\n\n/**\n * Angle represents a general purpose angle.\n * Unit is radians.\n */\nexport class Angle {\n /**\n * constructs a new Angle value from sign, degree, minute, and second\n * components.\n * @param {Number|Boolean} angleOrNeg - angle in radians or sign, true if negative (required to attribute -0°30')\n * __Four arguments__\n * @param {Number} [d] - (int) degree\n * @param {Number} [m] - (int) minute\n * @param {Number} [s] - (float) second\n */\n constructor (angleOrNeg, d, m, s) {\n if (arguments.length === 1) {\n this.angle = Number(angleOrNeg)\n } else {\n this.setDMS(!!angleOrNeg, d, m, s)\n }\n }\n\n /**\n * SetDMS sets the value of an FAngle from sign, degree, minute, and second\n * components.\n * The receiver is returned as a convenience.\n * @param {Boolean} neg - sign, true if negative\n * @param {Number} d - (int) degree\n * @param {Number} m - (int) minute\n * @param {Number} s - (float) second\n * @returns {Angle}\n */\n setDMS (neg = false, d = 0, m = 0, s = 0.0) {\n this.angle = (DMSToDeg(neg, d, m, s) * Math.PI / 180)\n return this\n }\n\n /**\n * sets angle\n * @param {Number} angle - (float) angle in radians\n * @returns {Angle}\n */\n setAngle (angle) {\n this.angle = angle\n return this\n }\n\n /**\n * Rad returns the angle in radians.\n * @returns {Number} angle in radians\n */\n rad () {\n return this.angle\n }\n\n /**\n * Deg returns the angle in degrees.\n * @returns {Number} angle in degree\n */\n deg () {\n return this.angle * 180 / Math.PI\n }\n\n /**\n * toDMS converts to parsed sexagesimal angle component.\n */\n toDMS () {\n return degToDMS(this.deg())\n }\n\n /**\n * Print angle in degree using `d°m´s.ss″`\n * @param {Number} [precision] - precision of `s.ss`\n * @returns {String}\n */\n toString (precision) {\n let [neg, d, m, s] = this.toDMS()\n s = round(s, precision).toString().replace(/^0\\./, '.')\n const str = (neg ? '-' : '') +\n (d + '°') +\n (m + '′') +\n (s + '″')\n return str\n }\n\n /**\n * Print angle in degree using `d°.ff`\n * @param {Number} [precision] - precision of `.ff`\n * @returns {String}\n */\n toDegString (precision) {\n let [i, s] = modf(this.deg())\n s = round(s, precision).toString().replace(/^0\\./, '.')\n const str = (i + '°') + s\n return str\n }\n}\n\n/**\n * HourAngle represents an angle corresponding to angular rotation of\n * the Earth in a specified time.\n *\n * Unit is radians.\n */\nexport class HourAngle extends Angle {\n /**\n * NewHourAngle constructs a new HourAngle value from sign, hour, minute,\n * and second components.\n * @param {Boolean} neg\n * @param {Number} h - (int)\n * @param {Number} m - (int)\n * @param {Number} s - (float)\n * @constructor\n */\n\n /**\n * SetDMS sets the value of an FAngle from sign, degree, minute, and second\n * components.\n * The receiver is returned as a convenience.\n * @param {Boolean} neg - sign, true if negative\n * @param {Number} h - (int) hour\n * @param {Number} m - (int) minute\n * @param {Number} s - (float) second\n * @returns {Angle}\n */\n setDMS (neg = false, h = 0, m = 0, s = 0.0) {\n this.angle = (DMSToDeg(neg, h, m, s) * 15 * Math.PI / 180)\n return this\n }\n\n /**\n * Hour returns the hour angle as hours of time.\n * @returns hour angle\n */\n hour () {\n return this.angle * 12 / Math.PI // 12 = 180 / 15\n }\n\n deg () {\n return this.hour()\n }\n\n /**\n * Print angle in `HʰMᵐs.ssˢ`\n * @param {Number} precision - precision of `s.ss`\n * @returns {String}\n */\n toString (precision) {\n let [neg, h, m, s] = this.toDMS()\n s = round(s, precision).toString().replace(/^0\\./, '.')\n const str = (neg ? '-' : '') +\n (h + 'ʰ') +\n (m + 'ᵐ') +\n (s + 'ˢ')\n return str\n }\n}\n\n/**\n * DMSToDeg converts from parsed sexagesimal angle components to decimal\n * degrees.\n * @param {Boolean} neg - sign, true if negative\n * @param {Number} d - (int) degree\n * @param {Number} m - (int) minute\n * @param {Number} s - (float) second\n * @returns {Number} angle in degree\n */\nexport function DMSToDeg (neg, d, m, s) {\n s = (((d * 60 + m) * 60) + s) / 3600\n if (neg) {\n return -s\n }\n return s\n}\n\n/**\n * DegToDMS converts from decimal degrees to parsed sexagesimal angle component.\n * @param {Number} deg - angle in degree\n * @returns {Array} [neg, d, m, s]\n * {Boolean} neg - sign, true if negative\n * {Number} d - (int) degree\n * {Number} m - (int) minute\n * {Number} s - (float) second\n */\nexport function degToDMS (deg) {\n const neg = (deg < 0)\n deg = Math.abs(deg)\n let [d, s] = modf(deg % 360)\n const [m, s1] = modf(s * 60)\n s = round(s1 * 60) // may introduce an error < 1e13\n return [neg, d, m, s]\n}\n\nexport class RA extends HourAngle {\n /**\n * constructs a new RA value from hour, minute, and second components.\n * Negative values are not supported, RA wraps values larger than 24\n * to the range [0,24) hours.\n * @param {Number} h - (int) hour\n * @param {Number} m - (int) minute\n * @param {Number} s - (float) second\n */\n constructor (h = 0, m = 0, s = 0) {\n super(false, h, m, s)\n const args = [].slice.call(arguments)\n if (args.length === 1) {\n this.angle = h\n } else {\n const hr = DMSToDeg(false, h, m, s) % 24\n this.angle = hr * 15 * Math.PI / 180\n }\n }\n\n hour () {\n const h = this.angle * 12 / Math.PI\n return (24 + (h % 24)) % 24\n }\n}\n\n/**\n * Time Angle\n * Unit is time in seconds.\n */\nexport class Time {\n /**\n * @param {boolean|number} negOrTimeInSecs - set `true` if negative; if type is number than time in seconds\n * @param {number} [h] - (int) hour\n * @param {number} [m] - (int) minute\n * @param {number} [s] - (float) second\n * @example\n * new sexa.Time(SECS_OF_DAY)\n * new sexa.Time(false, 15, 22, 7)\n */\n constructor (negOrTimeInSecs, h, m, s) {\n if (typeof negOrTimeInSecs === 'number') {\n this.time = negOrTimeInSecs\n } else {\n this.setHMS(negOrTimeInSecs, h, m, s)\n }\n }\n\n setHMS (neg = false, h = 0, m = 0, s = 0) {\n s += ((h * 60 + m) * 60)\n if (neg) {\n s = -s\n }\n this.time = s\n }\n\n /**\n * @returns {Number} time in seconds.\n */\n sec () {\n return this.time\n }\n\n /**\n * @returns {Number} time in minutes.\n */\n min () {\n return this.time / 60\n }\n\n /**\n * @returns {Number} time in hours.\n */\n hour () {\n return this.time / 3600\n }\n\n /**\n * @returns {Number} time in days.\n */\n day () {\n return this.time / 3600 / 24\n }\n\n /**\n * @returns {Number} time in radians, where 1 day = 2 Pi radians.\n */\n rad () {\n return this.time * Math.PI / 12 / 3600\n }\n\n /**\n * convert time to HMS\n * @returns {Array} [neg, h, m, s]\n * {Boolean} neg - sign, true if negative\n * {Number} h - (int) hour\n * {Number} m - (int) minute\n * {Number} s - (float) second\n */\n toHMS () {\n let t = this.time\n const neg = (t < 0)\n t = (neg ? -t : t)\n const h = Math.trunc(t / 3600)\n t = t - (h * 3600)\n const m = Math.trunc(t / 60)\n const s = t - (m * 60)\n return [neg, h, m, s]\n }\n\n /**\n * Print time using `HʰMᵐsˢ.ss`\n * @param {Number} precision - precision of `.ss`\n * @returns {String}\n */\n toString (precision) {\n const [neg, h, m, s] = this.toHMS()\n let [si, sf] = modf(s)\n if (precision === 0) {\n si = round(s, 0)\n sf = 0\n } else {\n sf = round(sf, precision).toString().substr(1)\n }\n const str = (neg ? '-' : '') +\n (h + 'ʰ') +\n (m + 'ᵐ') +\n (si + 'ˢ') +\n (sf || '')\n return str\n }\n}\n\n// units\nexport const angleFromDeg = (deg) => deg * Math.PI / 180\nexport const angleFromMin = (min) => min / 60 * Math.PI / 180\nexport const angleFromSec = (sec) => sec / 3600 * Math.PI / 180\nexport const degFromAngle = (angle) => angle * 180 / Math.PI\nexport const secFromAngle = (angle) => angle * 3600 * 180 / Math.PI\nexport const secFromHourAngle = (ha) => ha * 240 * 180 / Math.PI\n\n/**\n * separate fix `i` from fraction `f`\n * @private\n * @param {Number} float\n * @returns {Array} [i, f]\n * {Number} i - (int) fix value\n * {Number} f - (float) fractional portion; always > 1\n */\nfunction modf (float) {\n const i = Math.trunc(float)\n const f = Math.abs(float - i)\n return [i, f]\n}\n\n/**\n * Rounds `float` value by precision\n * @private\n * @param {Number} float - value to round\n * @param {Number} [precision] - (int) number of post decimal positions\n * @return {Number} rounded `float`\n */\nfunction round (float, precision = 10) {\n return parseFloat(float.toFixed(precision))\n}\n\nexport default {\n Angle,\n HourAngle,\n DMSToDeg,\n degToDMS,\n RA,\n Time,\n angleFromDeg,\n angleFromMin,\n angleFromSec,\n degFromAngle,\n secFromAngle,\n secFromHourAngle\n}\n","/**\n * @copyright 2013 Sonia Keys\n * @copyright 2016 commenthol\n * @license MIT\n * @module globe\n */\n/**\n * Globe: Chapter 11, The Earth's Globe.\n *\n * Globe contains functions concerning the surface of the Earth idealized as\n * an ellipsoid of revolution.\n */\n\n/**\n * Ellipsoid represents an ellipsoid of revolution. */\nexport class Ellipsoid {\n /**\n * @param {number} radius - equatorial radius\n * @param {number} flat - ellipsiod flattening\n */\n constructor (radius, flat) {\n this.radius = radius\n this.flat = flat\n }\n\n /** A is a common identifier for equatorial radius. */\n A () {\n return this.radius\n }\n\n /** B is a common identifier for polar radius. */\n B () {\n return this.radius * (1 - this.flat)\n }\n\n /** eccentricity of a meridian. */\n eccentricity () {\n return Math.sqrt((2 - this.flat) * this.flat)\n }\n\n /**\n * parallaxConstants computes parallax constants ρ sin φ′ and ρ cos φ′.\n *\n * Arguments are geographic latitude φ in radians and height h\n * in meters above the ellipsoid.\n *\n * @param {number} φ - geographic latitude in radians\n * @param {number} h - height in meters above the ellipsoid\n * @return {number[]} [ρ sin φ′, ρ cos φ] parallax constants [ρsφ, ρcφ]\n */\n parallaxConstants (φ, h) {\n const boa = 1 - this.flat\n const su = Math.sin(Math.atan(boa * Math.tan(φ)))\n const cu = Math.cos(Math.atan(boa * Math.tan(φ)))\n const s = Math.sin(φ)\n const c = Math.cos(φ)\n const hoa = h * 1e-3 / this.radius\n // (s, c float)\n const ρsφ = su * boa + hoa * s\n const ρcφ = cu + hoa * c\n return [ρsφ, ρcφ]\n }\n\n /**\n * rho is distance from Earth center to a point on the ellipsoid.\n *\n * Result unit is fraction of the equatorial radius.\n * @param {number} φ - geographic latitude in radians\n * @returns {number} // TODO\n */\n rho (φ) {\n // Magic numbers...\n return 0.9983271 + 0.0016764 * Math.cos(2 * φ) - 0.0000035 * Math.cos(4 * φ)\n }\n\n /**\n * radiusAtLatitude returns the radius of the circle that is the parallel of\n * latitude at φ.\n *\n * Result unit is Km.\n *\n * @param {number} φ\n * @return {number} radius in km\n */\n radiusAtLatitude (φ) {\n const s = Math.sin(φ)\n const c = Math.cos(φ)\n return this.A() * c / Math.sqrt(1 - (2 - this.flat) * this.flat * s * s)\n }\n\n /**\n * radiusOfCurvature of meridian at latitude φ.\n *\n * Result unit is Km.\n *\n * @param {number} φ\n * @return {number} radius in km\n */\n radiusOfCurvature (φ) {\n const s = Math.sin(φ)\n const e2 = (2 - this.flat) * this.flat\n return this.A() * (1 - e2) / Math.pow(1 - e2 * s * s, 1.5)\n }\n\n /**\n * distance is distance between two points measured along the surface\n * of an ellipsoid.\n *\n * Accuracy is much better than that of approxAngularDistance or\n * approxLinearDistance.\n *\n * Result unit is Km.\n *\n * @param {Coord} c1\n * @param {Coord} c2\n * @return {number} radius in km\n */\n distance (c1, c2) {\n // From AA, ch 11, p 84.\n const [s2f, c2f] = sincos2((c1.lat + c2.lat) / 2)\n const [s2g, c2g] = sincos2((c1.lat - c2.lat) / 2)\n const [s2λ, c2λ] = sincos2((c1.lon - c2.lon) / 2)\n const s = s2g * c2λ + c2f * s2λ\n const c = c2g * c2λ + s2f * s2λ\n const ω = Math.atan(Math.sqrt(s / c))\n const r = Math.sqrt(s * c) / ω\n const d = 2 * ω * this.radius\n const h1 = (3 * r - 1) / (2 * c)\n const h2 = (3 * r + 1) / (2 * s)\n return d * (1 + this.flat * (h1 * s2f * c2g - h2 * c2f * s2g))\n }\n}\n\n/** IAU 1976 values. Radius in Km. */\nexport const Earth76 = new Ellipsoid(6378.14, 1 / 298.257)\n\n/**\n * RotationRate1996_5 is the rotational angular velocity of the Earth\n * with respect to the stars at the epoch 1996.5.\n *\n * Unit is radian/second.\n */\nexport const RotationRate1996_5 = 7.292114992e-5 // eslint-disable-line camelcase\n\n/**\n * oneDegreeOfLongitude returns the length of one degree of longitude.\n *\n * Argument `rp` is the radius in Km of a circle that is a parallel of latitude\n * (as returned by Ellipsoid.radiusAtLatitude.)\n * Result is distance in Km along one degree of the circle.\n *\n * @param {number} rp\n * @return {number} distance in Km\n */\nexport function oneDegreeOfLongitude (rp) {\n return rp * Math.PI / 180\n}\n\n/**\n * oneDegreeOfLatitude returns the length of one degree of latitude.\n *\n * Argument `rm` is the radius in Km of curvature along a meridian.\n * (as returned by Ellipsoid.radiusOfCurvature.)\n * Result is distance in Km along one degree of the meridian.\n *\n * @param {number} rm\n * @return {number} distance in Km\n */\nexport function oneDegreeOfLatitude (rm) {\n return rm * Math.PI / 180\n}\n\n/**\n * geocentricLatitudeDifference returns geographic latitude - geocentric\n * latitude (φ - φ′) with given geographic latitude (φ).\n *\n * Units are radians.\n * @param {number} φ\n * @returns {number} difference in Deg\n */\nexport function geocentricLatitudeDifference (φ) {\n // This appears to be an approximation with hard coded magic numbers.\n // No explanation is given in the text. The ellipsoid is not specified.\n // Perhaps the approximation works well enough for all ellipsoids?\n return (692.73 * Math.sin(2 * φ) - 1.16 * Math.sin(4 * φ)) * Math.PI / (180 * 3600)\n}\n\n/**\n * Coord represents geographic coordinates on the Earth.\n *\n * Longitude is measured positively westward from the Greenwich meridian.\n */\nexport class Coord {\n /**\n * @param {number} lat - latitude (φ) in radians\n * @param {number} lon - longitude (ψ, or L) in radians (measured positively westward)\n */\n constructor (lat = 0, lon = 0) {\n this.lat = lat\n this.lon = lon\n }\n}\n\n/**\n * approxAngularDistance returns the cosine of the angle between two points.\n *\n * The accuracy deteriorates at small angles.\n *\n * @param {Coord} p1 - Point 1\n * @param {Coord} p2 - Point 2\n * @returns {number} cosine `cos` of the angle between two points.\n * Use `d = Math.acos(cos)` to obtain geocentric angular distance in radians\n */\nexport function approxAngularDistance (p1, p2) {\n const s1 = Math.sin(p1.lat)\n const c1 = Math.cos(p1.lat)\n const s2 = Math.sin(p2.lat)\n const c2 = Math.cos(p2.lat)\n return s1 * s2 + c1 * c2 * Math.cos(p1.lon - p2.lon)\n}\n\n/**\n * approxLinearDistance computes a distance across the surface of the Earth.\n *\n * Approximating the Earth as a sphere, the function takes a geocentric angular\n * distance in radians and returns the corresponding linear distance in Km.\n *\n * @param {number} d - geocentric angular distance in radians\n * @returns linear distance in Km\n */\nexport function approxLinearDistance (d) {\n return 6371 * d\n}\n\n/**\n * @private\n */\nfunction sincos2 (x) {\n const s = Math.sin(x)\n const c = Math.cos(x)\n return [s * s, c * c]\n}\n\nexport default {\n Ellipsoid,\n Earth76,\n // eslint-disable-next-line camelcase\n RotationRate1996_5,\n oneDegreeOfLongitude,\n oneDegreeOfLatitude,\n geocentricLatitudeDifference,\n Coord,\n approxAngularDistance,\n approxLinearDistance\n}\n","/**\n * @copyright 2013 Sonia Keys\n * @copyright 2016 commenthol\n * @license MIT\n * @module coord\n */\n/**\n * Coord: Chapter 13, Transformation of Coordinates.\n *\n * Transforms in this package are provided in two forms, function and method.\n * The results of the two forms should be identical.\n *\n * The function forms pass all arguments and results as single values. These\n * forms are best used when you are transforming a single pair of coordinates\n * and wish to avoid memory allocation.\n *\n * The method forms take and return pointers to structs. These forms are best\n * used when you are transforming multiple coordinates and can reuse one or\n * more of the structs. In this case reuse of structs will minimize\n * allocations, and the struct pointers will pass more efficiently on the\n * stack. These methods transform their arguments, placing the result in\n * the receiver. The receiver is then returned for convenience.\n *\n * A number of the functions take sine and cosine of the obliquity of the\n * ecliptic. This becomes an advantage when you doing multiple transformations\n * with the same obliquity. The efficiency of computing sine and cosine once\n * and reuse these values far outweighs the overhead of passing one number as\n * opposed to two.\n */\n\nimport base from './base.js'\nimport sexa from './sexagesimal.js'\nimport { Coord as GlobeCoord } from './globe.js' // eslint-disable-line no-unused-vars\n\n/**\n * @typedef {object} LonLat\n * @property {Number} lon - Longitude (λ) in radians\n * @property {Number} lat - Latitude (β) in radians\n */\n\n/**\n* Ecliptic coordinates are referenced to the plane of the ecliptic.\n*/\nexport class Ecliptic {\n /**\n * IMPORTANT: Longitudes are measured *positively* westwards\n * e.g. Washington D.C. +77°04; Vienna -16°23'\n * @param {Number|LonLat} [lon] - Longitude (λ) in radians\n * @param {Number} [lat] - Latitude (β) in radians\n */\n constructor (lon, lat) {\n if (typeof lon === 'object') {\n lat = lon.lat\n lon = lon.lon\n }\n this.lon = lon || 0\n this.lat = lat || 0\n }\n\n /**\n * converts ecliptic coordinates to equatorial coordinates.\n * @param {Number} ε - Obliquity\n * @returns {Equatorial}\n */\n toEquatorial (ε) {\n const [εsin, εcos] = base.sincos(ε)\n const [sβ, cβ] = base.sincos(this.lat)\n const [sλ, cλ] = base.sincos(this.lon)\n let ra = Math.atan2(sλ * εcos - (sβ / cβ) * εsin, cλ) // (13.3) p. 93\n if (ra < 0) {\n ra += 2 * Math.PI\n }\n const dec = Math.asin(sβ * εcos + cβ * εsin * sλ) // (13.4) p. 93\n return new Equatorial(ra, dec)\n }\n}\n\n/**\n * Equatorial coordinates are referenced to the Earth's rotational axis.\n */\nexport class Equatorial {\n /**\n * @param {Number} ra - (float) Right ascension (α) in radians\n * @param {Number} dec - (float) Declination (δ) in radians\n */\n constructor (ra = 0, dec = 0) {\n this.ra = ra\n this.dec = dec\n }\n\n /**\n * EqToEcl converts equatorial coordinates to ecliptic coordinates.\n * @param {Number} ε - Obliquity\n * @returns {Ecliptic}\n */\n toEcliptic (ε) {\n const [εsin, εcos] = base.sincos(ε)\n const [sα, cα] = base.sincos(this.ra)\n const [sδ, cδ] = base.sincos(this.dec)\n const lon = Math.atan2(sα * εcos + (sδ / cδ) * εsin, cα) // (13.1) p. 93\n const lat = Math.asin(sδ * εcos - cδ * εsin * sα) // (13.2) p. 93\n return new Ecliptic(lon, lat)\n }\n\n /**\n * EqToHz computes Horizontal coordinates from equatorial coordinates.\n *\n * Argument g is the location of the observer on the Earth. Argument st\n * is the sidereal time at Greenwich.\n *\n * Sidereal time must be consistent with the equatorial coordinates.\n * If coordinates are apparent, sidereal time must be apparent as well.\n *\n * @param {GlobeCoord} g - coordinates of observer on Earth\n * @param {Number} st - sidereal time at Greenwich at time of observation\n * @returns {Horizontal}\n */\n toHorizontal (g, st) {\n const H = new sexa.Time(st).rad() - g.lon - this.ra\n const [sH, cH] = base.sincos(H)\n const [sφ, cφ] = base.sincos(g.lat)\n const [sδ, cδ] = base.sincos(this.dec)\n const azimuth = Math.atan2(sH, cH * sφ - (sδ / cδ) * cφ) // (13.5) p. 93\n const altitude = Math.asin(sφ * sδ + cφ * cδ * cH) // (13.6) p. 93\n return new Horizontal(azimuth, altitude)\n }\n\n /**\n * EqToGal converts equatorial coordinates to galactic coordinates.\n *\n * Equatorial coordinates must be referred to the standard equinox of B1950.0.\n * For conversion to B1950, see package precess and utility functions in\n * package \"common\".\n *\n * @returns {Galactic}\n */\n toGalactic () {\n const [sdα, cdα] = base.sincos(galacticNorth1950.ra - this.ra)\n const [sgδ, cgδ] = base.sincos(galacticNorth1950.dec)\n const [sδ, cδ] = base.sincos(this.dec)\n const x = Math.atan2(sdα, cdα * sgδ - (sδ / cδ) * cgδ) // (13.7) p. 94\n // (galactic0Lon1950 + 1.5*math.Pi) = magic number of 303 deg\n const lon = (galactic0Lon1950 + 1.5 * Math.PI - x) % (2 * Math.PI) // (13.8) p. 94\n const lat = Math.asin(sδ * sgδ + cδ * cgδ * cdα)\n return new Galactic(lon, lat)\n }\n}\n\n/**\n * Horizontal coordinates are referenced to the local horizon of an observer\n * on the surface of the Earth.\n * @param {Number} az - Azimuth (A) in radians\n * @param {Number} alt - Altitude (h) in radians\n */\nexport class Horizontal {\n constructor (az = 0, alt = 0) {\n this.az = az\n this.alt = alt\n }\n\n /**\n * transforms horizontal coordinates to equatorial coordinates.\n *\n * Sidereal time must be consistent with the equatorial coordinates.\n * If coordinates are apparent, sidereal time must be apparent as well.\n * @param {GlobeCoord} g - coordinates of observer on Earth (lat, lon)\n * @param {Number} st - sidereal time at Greenwich at time of observation.\n * @returns {Equatorial} (right ascension, declination)\n */\n toEquatorial (g, st) {\n const [sA, cA] = base.sincos(this.az)\n const [sh, ch] = base.sincos(this.alt)\n const [sφ, cφ] = base.sincos(g.lat)\n const H = Math.atan2(sA, cA * sφ + sh / ch * cφ)\n const ra = base.pmod(new sexa.Time(st).rad() - g.lon - H, 2 * Math.PI)\n const dec = Math.asin(sφ * sh - cφ * ch * cA)\n return new Equatorial(ra, dec)\n }\n}\n\n/**\n * Galactic coordinates are referenced to the plane of the Milky Way.\n * @param {Number} lon - Longitude (l) in radians\n * @param {Number} lat - Latitude (b) in radians\n */\nexport class Galactic {\n constructor (lon = 0, lat = 0) {\n this.lon = lon\n this.lat = lat\n }\n\n /**\n * GalToEq converts galactic coordinates to equatorial coordinates.\n *\n * Resulting equatorial coordinates will be referred to the standard equinox of\n * B1950.0. For subsequent conversion to other epochs, see package precess and\n * utility functions in package meeus.\n *\n * @returns {Equatorial} (right ascension, declination)\n */\n toEquatorial () {\n // (-galactic0Lon1950 - math.Pi/2) = magic number of -123 deg\n const [sdLon, cdLon] = base.sincos(this.lon - galactic0Lon1950 - Math.PI / 2)\n const [sgδ, cgδ] = base.sincos(galacticNorth1950.dec)\n const [sb, cb] = base.sincos(this.lat)\n const y = Math.atan2(sdLon, cdLon * sgδ - (sb / cb) * cgδ)\n // (galacticNorth1950.RA.Rad() - math.Pi) = magic number of 12.25 deg\n const ra = base.pmod(y + galacticNorth1950.ra - Math.PI, 2 * Math.PI)\n const dec = Math.asin(sb * sgδ + cb * cgδ * cdLon)\n return new Equatorial(ra, dec)\n }\n}\n\n/**\n* equatorial coords for galactic north\n* IAU B1950.0 coordinates of galactic North Pole\n*/\nexport const galacticNorth = new Equatorial(\n new sexa.RA(12, 49, 0).rad(),\n 27.4 * Math.PI / 180\n)\nexport const galacticNorth1950 = galacticNorth\n\n/**\n* Galactic Longitude 0°\n* Meeus gives 33 as the origin of galactic longitudes relative to the\n* ascending node of of the galactic equator. 33 + 90 = 123, the IAU\n* value for origin relative to the equatorial pole.\n*/\nexport const galacticLon0 = 33 * Math.PI / 180\nexport const galactic0Lon1950 = galacticLon0\n\nexport default {\n Ecliptic,\n Equatorial,\n Horizontal,\n Galactic,\n galacticNorth,\n galacticNorth1950,\n galacticLon0,\n galactic0Lon1950\n}\n","/**\n * @copyright 2013 Sonia Keys\n * @copyright 2016 commenthol\n * @license MIT\n * @module nutation\n */\n/**\n * Nutation: Chapter 22, Nutation and the Obliquity of the Ecliptic.\n */\n\nimport base from './base.js'\nimport sexa from './sexagesimal.js'\n\n// Nutation: Chapter 22, Nutation and the Obliquity of the Ecliptic.\n\n/**\n * Nutation returns nutation in longitude (Δψ) and nutation in obliquity (Δε)\n * for a given JDE.\n *\n * JDE = UT + ΔT, see package.\n *\n * Computation is by 1980 IAU theory, with terms < .0003″ neglected.\n *\n * Result units are radians.\n *\n * @param {number} jde - Julian ephemeris day\n * @return {number[]} [Δψ, Δε] - [longitude, obliquity] in radians\n */\nexport function nutation (jde) {\n const T = base.J2000Century(jde)\n // Mean elongation of the Moon from the sun\n const D = base.horner(T,\n 297.85036, 445267.11148, -0.0019142, 1.0 / 189474) * Math.PI / 180\n // Mean anomaly of the Sun (Earth)\n const M = base.horner(T,\n 357.52772, 35999.050340, -0.0001603, -1.0 / 300000) * Math.PI / 180\n // Mean anomaly of the Moon\n const N = base.horner(T,\n 134.96298, 477198.867398, 0.0086972, 1.0 / 56250) * Math.PI / 180\n // Moon's argument of latitude\n const F = base.horner(T,\n 93.27191, 483202.017538, -0.0036825, 1.0 / 327270) * Math.PI / 180\n // Longitude of the ascending node of the Moon's mean orbit on the ecliptic, measured from mean equinox of date\n const Ω = base.horner(T,\n 125.04452, -1934.136261, 0.0020708, 1.0 / 450000) * Math.PI / 180\n let Δψ = 0\n let Δε = 0\n // sum in reverse order to accumulate smaller terms first\n for (let i = table22A.length - 1; i >= 0; i--) {\n const row = table22A[i]\n const arg = row.d * D + row.m * M + row.n * N + row.f * F + row.ω * Ω\n const [s, c] = base.sincos(arg)\n Δψ += s * (row.s0 + row.s1 * T)\n Δε += c * (row.c0 + row.c1 * T)\n }\n Δψ *= 0.0001 / 3600 * (Math.PI / 180)\n Δε *= 0.0001 / 3600 * (Math.PI / 180)\n return [Δψ, Δε] // (Δψ, Δε float)\n}\n/**\n * ApproxNutation returns a fast approximation of nutation in longitude (Δψ)\n * and nutation in obliquity (Δε) for a given JDE.\n *\n * Accuracy is 0.5″ in Δψ, 0.1″ in Δε.\n *\n * Result units are radians.\n *\n * @param {number} jde - Julian ephemeris day\n * @return {number[]} [Δψ, Δε] - [longitude, obliquity] in radians\n */\nexport function approxNutation (jde) {\n const T = (jde - base.J2000) / 36525\n const Ω = (125.04452 - 1934.136261 * T) * Math.PI / 180\n const L = (280.4665 + 36000.7698 * T) * Math.PI / 180\n const N = (218.3165 + 481267.8813 * T) * Math.PI / 180\n const [sΩ, cΩ] = base.sincos(Ω)\n const [s2L, c2L] = base.sincos(2 * L)\n const [s2N, c2N] = base.sincos(2 * N)\n const [s2Ω, c2Ω] = base.sincos(2 * Ω)\n const Δψ = (-17.2 * sΩ - 1.32 * s2L - 0.23 * s2N + 0.21 * s2Ω) / 3600 * (Math.PI / 180)\n const Δε = (9.2 * cΩ + 0.57 * c2L + 0.1 * c2N - 0.09 * c2Ω) / 3600 * (Math.PI / 180)\n return [Δψ, Δε] // (Δψ, Δε float)\n}\n\n/**\n * MeanObliquity returns mean obliquity (ε₀) following the IAU 1980\n * polynomial.\n *\n * Accuracy is 1″ over the range 1000 to 3000 years and 10″ over the range\n * 0 to 4000 years.\n *\n * Result unit is radians.\n *\n * @param {number} jde - Julian ephemeris day\n * @return {number} mean obliquity (ε₀)\n */\nexport function meanObliquity (jde) {\n // (22.2) p. 147\n return base.horner(\n base.J2000Century(jde),\n new sexa.Angle(false, 23, 26, 21.448).rad(),\n -46.815 / 3600 * (Math.PI / 180),\n -0.00059 / 3600 * (Math.PI / 180),\n 0.001813 / 3600 * (Math.PI / 180)\n )\n}\n\n/**\n * MeanObliquityLaskar returns mean obliquity (ε₀) following the Laskar\n * 1986 polynomial.\n *\n * Accuracy over the range 1000 to 3000 years is .01″.\n *\n * Accuracy over the valid date range of -8000 to +12000 years is\n * \"a few seconds.\"\n *\n * Result unit is radians.\n *\n * @param {number} jde - Julian ephemeris day\n * @return {number} mean obliquity (ε₀)\n */\nexport function meanObliquityLaskar (jde) {\n // (22.3) p. 147\n return base.horner(\n base.J2000Century(jde) * 0.01,\n new sexa.Angle(false, 23, 26, 21.448).rad(),\n -4680.93 / 3600 * (Math.PI / 180),\n -1.55 / 3600 * (Math.PI / 180),\n 1999.25 / 3600 * (Math.PI / 180),\n -51.38 / 3600 * (Math.PI / 180),\n -249.67 / 3600 * (Math.PI / 180),\n -39.05 / 3600 * (Math.PI / 180),\n 7.12 / 3600 * (Math.PI / 180),\n 27.87 / 3600 * (Math.PI / 180),\n 5.79 / 3600 * (Math.PI / 180),\n 2.45 / 3600 * (Math.PI / 180)\n )\n}\n\n/**\n * NutationInRA returns \"nutation in right ascension\" or \"equation of the\n * equinoxes.\"\n *\n * Result is an angle in radians.\n *\n * @param {number} jde - Julian ephemeris day\n * @return {number} nutation in right ascension\n */\nexport function nutationInRA (jde) {\n const [Δψ, Δε] = nutation(jde)\n const ε0 = meanObliquity(jde)\n return Δψ * Math.cos(ε0 + Δε)\n}\n\nconst table22A = (function () {\n const PROPS = 'd,m,n,f,ω,s0,s1,c0,c1'.split(',')\n const tab = [\n [0, 0, 0, 0, 1, -171996, -174.2, 92025, 8.9],\n [-2, 0, 0, 2, 2, -13187, -1.6, 5736, -3.1],\n [0, 0, 0, 2, 2, -2274, -0.2, 977, -0.5],\n [0, 0, 0, 0, 2, 2062, 0.2, -895, 0.5],\n [0, 1, 0, 0, 0, 1426, -3.4, 54, -0.1],\n [0, 0, 1, 0, 0, 712, 0.1, -7, 0],\n [-2, 1, 0, 2, 2, -517, 1.2, 224, -0.6],\n [0, 0, 0, 2, 1, -386, -0.4, 200, 0],\n [0, 0, 1, 2, 2, -301, 0, 129, -0.1],\n [-2, -1, 0, 2, 2, 217, -0.5, -95, 0.3],\n [-2, 0, 1, 0, 0, -158, 0, 0, 0],\n [-2, 0, 0, 2, 1, 129, 0.1, -70, 0],\n [0, 0, -1, 2, 2, 123, 0, -53, 0],\n [2, 0, 0, 0, 0, 63, 0, 0, 0],\n [0, 0, 1, 0, 1, 63, 0.1, -33, 0],\n [2, 0, -1, 2, 2, -59, 0, 26, 0],\n [0, 0, -1, 0, 1, -58, -0.1, 32, 0],\n [0, 0, 1, 2, 1, -51, 0, 27, 0],\n [-2, 0, 2, 0, 0, 48, 0, 0, 0],\n [0, 0, -2, 2, 1, 46, 0, -24, 0],\n [2, 0, 0, 2, 2, -38, 0, 16, 0],\n [0, 0, 2, 2, 2, -31, 0, 13, 0],\n [0, 0, 2, 0, 0, 29, 0, 0, 0],\n [-2, 0, 1, 2, 2, 29, 0, -12, 0],\n [0, 0, 0, 2, 0, 26, 0, 0, 0],\n [-2, 0, 0, 2, 0, -22, 0, 0, 0],\n [0, 0, -1, 2, 1, 21, 0, -10, 0],\n [0, 2, 0, 0, 0, 17, -0.1, 0, 0],\n [2, 0, -1, 0, 1, 16, 0, -8, 0],\n [-2, 2, 0, 2, 2, -16, 0.1, 7, 0],\n [0, 1, 0, 0, 1, -15, 0, 9, 0],\n [-2, 0, 1, 0, 1, -13, 0, 7, 0],\n [0, -1, 0, 0, 1, -12, 0, 6, 0],\n [0, 0, 2, -2, 0, 11, 0, 0, 0],\n [2, 0, -1, 2, 1, -10, 0, 5, 0],\n [2, 0, 1, 2, 2, -8, 0, 3, 0],\n [0, 1, 0, 2, 2, 7, 0, -3, 0],\n [-2, 1, 1, 0, 0, -7, 0, 0, 0],\n [0, -1, 0, 2, 2, -7, 0, 3, 0],\n [2, 0, 0, 2, 1, -7, 0, 3, 0],\n [2, 0, 1, 0, 0, 6, 0, 0, 0],\n [-2, 0, 2, 2, 2, 6, 0, -3, 0],\n [-2, 0, 1, 2, 1, 6, 0, -3, 0],\n [2, 0, -2, 0, 1, -6, 0, 3, 0],\n [2, 0, 0, 0, 1, -6, 0, 3, 0],\n [0, -1, 1, 0, 0, 5, 0, 0, 0],\n [-2, -1, 0, 2, 1, -5, 0, 3, 0],\n [-2, 0, 0, 0, 1, -5, 0, 3, 0],\n [0, 0, 2, 2, 1, -5, 0, 3, 0],\n [-2, 0, 2, 0, 1, 4, 0, 0, 0],\n [-2, 1, 0, 2, 1, 4, 0, 0, 0],\n [0, 0, 1, -2, 0, 4, 0, 0, 0],\n [-1, 0, 1, 0, 0, -4, 0, 0, 0],\n [-2, 1, 0, 0, 0, -4, 0, 0, 0],\n [1, 0, 0, 0, 0, -4, 0, 0, 0],\n [0, 0, 1, 2, 0, 3, 0, 0, 0],\n [0, 0, -2, 2, 2, -3, 0, 0, 0],\n [-1, -1, 1, 0, 0, -3, 0, 0, 0],\n [0, 1, 1, 0, 0, -3, 0, 0, 0],\n [0, -1, 1, 2, 2, -3, 0, 0, 0],\n [2, -1, -1, 2, 2, -3, 0, 0, 0],\n [0, 0, 3, 2, 2, -3, 0, 0, 0],\n [2, -1, 0, 2, 2, -3, 0, 0, 0]\n ]\n\n return tab.map((row) => {\n const o = {}\n PROPS.forEach((p, i) => {\n o[p] = row[i]\n })\n return o\n })\n})()\n\nexport default {\n nutation,\n approxNutation,\n meanObliquity,\n meanObliquityLaskar,\n nutationInRA\n}\n","/**\n * @copyright 2013 Sonia Keys\n * @copyright 2016 commenthol\n * @license MIT\n * @module elementequinox\n */\n/**\n * Elementequinox: Chapter 24, Reduction of Ecliptical Elements\n * from one Equinox to another one.\n *\n * See package precess for the method EclipticPrecessor.ReduceElements and\n * associated example. The method is described in this chapter but located\n * in package precess so that it can be a method of EclipticPrecessor.\n */\n\nimport base from './base.js'\n\n/**\n * Elements are the orbital elements of a solar system object which change\n * from one equinox to another.\n *\n * @param {Number} inc - inclination\n * @param {Number} node - longitude of ascending node (Ω)\n * @param {Number} peri - argument of perihelion (ω)\n */\nexport class Elements {\n constructor (inc, node, peri) {\n if (typeof inc === 'object') {\n node = inc.pode\n peri = inc.peri\n inc = inc.inc\n }\n this.inc = inc || 0\n this.node = node || 0\n this.peri = peri || 0\n }\n}\n\n// (24.4) p. 161\nconst S = 0.0001139788\nconst C = 0.9999999935\n/**\n * ReduceB1950ToJ2000 reduces orbital elements of a solar system body from\n * equinox B1950 to J2000.\n *\n * @param {Elements} eFrom\n * @returns {Elements} eTo\n */\nexport function reduceB1950ToJ2000 (eFrom) {\n const W = eFrom.node - 174.298782 * Math.PI / 180\n const [si, ci] = base.sincos(eFrom.inc)\n const [sW, cW] = base.sincos(W)\n const A = si * sW\n const B = C * si * cW - S * ci\n const eTo = new Elements()\n eTo.inc = Math.asin(Math.hypot(A, B))\n eTo.node = base.pmod(174.997194 * Math.PI / 180 + Math.atan2(A, B),\n 2 * Math.PI)\n eTo.peri = base.pmod(eFrom.peri + Math.atan2(-S * sW, C * si - S * ci * cW),\n 2 * Math.PI)\n return eTo\n}\n\nconst Lp = 4.50001688 * Math.PI / 180\nconst L = 5.19856209 * Math.PI / 180\nconst J = 0.00651966 * Math.PI / 180\n\n/**\n * ReduceB1950ToJ2000 reduces orbital elements of a solar system body from\n * equinox B1950 in the FK4 system to equinox J2000 in the FK5 system.\n *\n * @param {Elements} eFrom\n * @returns {Elements} eTo\n */\nexport function reduceB1950FK4ToJ2000FK5 (eFrom) {\n const W = L + eFrom.node\n const [si, ci] = base.sincos(eFrom.inc)\n const [sJ, cJ] = base.sincos(J)\n const [sW, cW] = base.sincos(W)\n const eTo = new Elements()\n eTo.inc = Math.acos(ci * cJ - si * sJ * cW)\n eTo.node = base.pmod(Math.atan2(si * sW, ci * sJ + si * cJ * cW) - Lp,\n 2 * Math.PI)\n eTo.peri = base.pmod(eFrom.peri + Math.atan2(sJ * sW, si * cJ + ci * sJ * cW),\n 2 * Math.PI)\n return eTo\n}\n\nexport default {\n Elements,\n reduceB1950ToJ2000,\n reduceB1950FK4ToJ2000FK5\n}\n","/**\n * @copyright 2013 Sonia Keys\n * @copyright 2016 commenthol\n * @license MIT\n * @module precess\n */\n/**\n * Precession: Chapter 21, Precession.\n *\n * Functions in this package take Julian epoch argurments rather than Julian\n * days. Use base.JDEToJulianYear() to convert.\n *\n * Also in package base are some definitions related to the Besselian and\n * Julian Year.\n *\n * Partial: Precession from FK4 not implemented. Meeus gives no test cases.\n * It's a fair amount of code and data, representing significant chances for\n * errors. And precession from FK4 would seem to be of little interest today.\n *\n * Proper motion units\n *\n * Meeus gives some example annual proper motions in units of seconds of\n * right ascension and seconds of declination. To make units clear,\n * functions in this package take proper motions with argument types of\n * sexa.HourAngle and sexa.Angle respectively. Error-prone conversions\n * can be avoided by using the constructors for these base types.\n *\n * For example, given an annual proper motion in right ascension of -0ˢ.03847,\n * rather than\n *\n * mra = -0.03847 / 13751 // as Meeus suggests\n *\n * or\n *\n * mra = -0.03847 * (15/3600) * (pi/180) // less magic\n *\n * use\n *\n * mra = new sexa.HourAngle(false, 0, 0, -0.03847)\n *\n * Unless otherwise indicated, functions in this library expect proper motions\n * to be annual proper motions, so the unit denominator is years.\n * (The code, following Meeus's example, technically treats it as Julian years.)\n */\n\nimport base from './base.js'\nimport { Equatorial, Ecliptic } from './coord.js'\nimport { Elements } from './elementequinox.js'\nimport nutation from './nutation.js'\nimport { HourAngle, Angle } from './sexagesimal.js'\n\n/**\n * approxAnnualPrecession returns approximate annual precision in right\n * ascension and declination.\n *\n * The two epochs should be within a few hundred years.\n * The declinations should not be too close to the poles.\n *\n * @param {Equatorial} eqFrom\n * @param {Number} epochFrom - use `base.JDEToJulianYear(year)` to get epoch\n * @param {Number} epochTo - use `base.JDEToJulianYear(year)` to get epoch\n * @returns {Object}\n * {sexa.HourAngle} seconds of right ascension\n * {sexa.Angle} seconds of Declination\n */\nexport function approxAnnualPrecession (eqFrom, epochFrom, epochTo) {\n const [m, na, nd] = mn(epochFrom, epochTo)\n const [sa, ca] = base.sincos(eqFrom.ra)\n // (21.1) p. 132\n const Δαs = m + na * sa * Math.tan(eqFrom.dec) // seconds of RA\n const Δδs = nd * ca // seconds of Dec\n const ra = new HourAngle(false, 0, 0, Δαs).rad()\n const dec = new Angle(false, 0, 0, Δδs).rad()\n return { ra, dec }\n}\n\n/**\n * @param {Number} epochFrom - use `base.JDEToJulianYear(year)` to get epoch\n * @param {Number} epochTo - use `base.JDEToJulianYear(year)` to get epoch\n * @returns {Number[]}\n */\nexport function mn (epochFrom, epochTo) {\n const T = (epochTo - epochFrom) * 0.01\n const m = 3.07496 + 0.00186 * T\n const na = 1.33621 - 0.00057 * T\n const nd = 20.0431 - 0.0085 * T\n return [m, na, nd]\n}\n\n/**\n * ApproxPosition uses ApproxAnnualPrecession to compute a simple and quick\n * precession while still considering proper motion.\n *\n * @param {Equatorial} eqFrom\n * @param {Number} epochFrom\n * @param {Number} epochTo\n * @param {Number} mα - in radians\n * @param {Number} mδ - in radians\n * @returns {Equatorial} eqTo\n */\nexport function approxPosition (eqFrom, epochFrom, epochTo, mα, mδ) {\n const { ra, dec } = approxAnnualPrecession(eqFrom, epochFrom, epochTo)\n const dy = epochTo - epochFrom\n const eqTo = new Equatorial()\n eqTo.ra = eqFrom.ra + (ra + mα) * dy\n eqTo.dec = eqFrom.dec + (dec + mδ) * dy\n return eqTo\n}\n\n// constants\nconst d = Math.PI / 180\nconst s = d / 3600\n\n// coefficients from (21.2) p. 134\nconst ζT = [2306.2181 * s, 1.39656 * s, -0.000139 * s]\nconst zT = [2306.2181 * s, 1.39656 * s, -0.000139 * s]\nconst θT = [2004.3109 * s, -0.8533 * s, -0.000217 * s]\n// coefficients from (21.3) p. 134\nconst ζt = [2306.2181 * s, 0.30188 * s, 0.017998 * s]\nconst zt = [2306.2181 * s, 1.09468 * s, 0.018203 * s]\nconst θt = [2004.3109 * s, -0.42665 * s, -0.041833 * s]\n\n/**\n * Precessor represents precession from one epoch to another.\n *\n * Construct with NewPrecessor, then call method Precess.\n * After construction, Precess may be called multiple times to precess\n * different coordinates with the same initial and final epochs.\n */\nexport class Precessor {\n /**\n * constructs a Precessor object and initializes it to precess\n * coordinates from epochFrom to epochTo.\n * @param {Number} epochFrom\n * @param {Number} epochTo\n */\n constructor (epochFrom, epochTo) {\n // (21.2) p. 134\n let ζCoeff = ζt\n let zCoeff = zt\n let θCoeff = θt\n if (epochFrom !== 2000) {\n const T = (epochFrom - 2000) * 0.01\n ζCoeff = [\n base.horner(T, ...ζT),\n 0.30188 * s - 0.000344 * s * T,\n 0.017998 * s\n ]\n zCoeff = [\n base.horner(T, ...zT),\n 1.09468 * s + 0.000066 * s * T,\n 0.018203 * s\n ]\n θCoeff = [\n base.horner(T, ...θT),\n -0.42665 * s - 0.000217 * s * T,\n -0.041833 * s\n ]\n }\n const t = (epochTo - epochFrom) * 0.01\n this.ζ = base.horner(t, ...ζCoeff) * t\n this.z = base.horner(t, ...zCoeff) * t\n const θ = base.horner(t, ...θCoeff) * t\n this.sθ = Math.sin(θ)\n this.cθ = Math.cos(θ)\n }\n\n /**\n * Precess precesses coordinates eqFrom, leaving result in eqTo.\n *\n * @param {Equatorial} eqFrom\n * @returns {Equatorial} eqTo\n */\n precess (eqFrom) {\n // (21.4) p. 134\n const [sδ, cδ] = base.sincos(eqFrom.dec)\n const [sαζ, cαζ] = base.sincos(eqFrom.ra + this.ζ)\n const A = cδ * sαζ\n const B = this.cθ * cδ * cαζ - this.sθ * sδ\n const C = this.sθ * cδ * cαζ + this.cθ * sδ\n const eqTo = new Equatorial()\n eqTo.ra = Math.atan2(A, B) + this.z\n if (C < base.CosSmallAngle) {\n eqTo.dec = Math.asin(C)\n } else {\n eqTo.dec = Math.acos(Math.hypot(A, B)) // near pole\n }\n return eqTo\n }\n}\n\n/**\n * Position precesses equatorial coordinates from one epoch to another,\n * including proper motions.\n *\n * If proper motions are not to be considered or are not applicable, pass 0, 0\n * for mα, mδ\n *\n * Both eqFrom and eqTo must be non-nil, although they may point to the same\n * struct. EqTo is returned for convenience.\n * @param {Equatorial} eqFrom\n * @param {Number} epochFrom\n * @param {Number} epochTo\n * @param {Number} mα - in radians\n * @param {Number} mδ - in radians\n * @returns {Equatorial} [eqTo]\n */\nexport function position (eqFrom, epochFrom, epochTo, mα, mδ) {\n const p = new Precessor(epochFrom, epochTo)\n const t = epochTo - epochFrom\n const eqTo = new Equatorial()\n eqTo.ra = eqFrom.ra + mα * t\n eqTo.dec = eqFrom.dec + mδ * t\n return p.precess(eqTo)\n}\n\n// coefficients from (21.5) p. 136\nconst ηT = [47.0029 * s, -0.06603 * s, 0.000598 * s]\nconst πT = [174.876384 * d, 3289.4789 * s, 0.60622 * s]\nconst pT = [5029.0966 * s, 2.22226 * s, -0.000042 * s]\nconst ηt = [47.0029 * s, -0.03302 * s, 0.000060 * s]\nconst πt = [174.876384 * d, -869.8089 * s, 0.03536 * s]\nconst pt = [5029.0966 * s, 1.11113 * s, -0.000006 * s]\n\n/**\n * EclipticPrecessor represents precession from one epoch to another.\n *\n * Construct with NewEclipticPrecessor, then call method Precess.\n * After construction, Precess may be called multiple times to precess\n * different coordinates with the same initial and final epochs.\n */\nexport class EclipticPrecessor {\n /**\n * constructs an EclipticPrecessor object and initializes\n * it to precess coordinates from epochFrom to epochTo.\n * @param {Number} epochFrom\n * @param {Number} epochTo\n */\n constructor (epochFrom, epochTo) {\n // (21.5) p. 136\n let ηCoeff = ηt\n let πCoeff = πt\n let pCoeff = pt\n if (epochFrom !== 2000) {\n const T = (epochFrom - 2000) * 0.01\n ηCoeff = [\n base.horner(T, ...ηT),\n -0.03302 * s + 0.000598 * s * T,\n 0.000060 * s\n ]\n πCoeff = [\n base.horner(T, ...πT),\n -869.8089 * s - 0.50491 * s * T,\n 0.03536 * s\n ]\n pCoeff = [\n base.horner(T, ...pT),\n 1.11113 * s - 0.000042 * s * T,\n -0.000006 * s\n ]\n }\n const t = (epochTo - epochFrom) * 0.01\n this.π = base.horner(t, ...πCoeff)\n this.p = base.horner(t, ...pCoeff) * t\n const η = base.horner(t, ...ηCoeff) * t\n this.sη = Math.sin(η)\n this.cη = Math.cos(η)\n }\n\n /**\n * EclipticPrecess precesses coordinates eclFrom, leaving result in eclTo.\n *\n * The same struct may be used for eclFrom and eclTo.\n * EclTo is returned for convenience.\n * @param {Ecliptic} eclFrom\n * @returns {Ecliptic} [eclTo]\n */\n precess (eclFrom) {\n // (21.7) p. 137\n const [sβ, cβ] = base.sincos(eclFrom.lat)\n const [sd, cd] = base.sincos(this.π - eclFrom.lon)\n const A = this.cη * cβ * sd - this.sη * sβ\n const B = cβ * cd\n const C = this.cη * sβ + this.sη * cβ * sd\n const eclTo = new Ecliptic(this.p + this.π - Math.atan2(A, B))\n if (C < base.CosSmallAngle) {\n eclTo.lat = Math.asin(C)\n } else {\n eclTo.lat = Math.acos(Math.hypot(A, B)) // near pole\n }\n return eclTo\n }\n\n /**\n * ReduceElements reduces orbital elements of a solar system body from one\n * equinox to another.\n *\n * This function is described in chapter 24, but is located in this\n * package so it can be a method of EclipticPrecessor.\n *\n * @param {Elements} eFrom\n * @returns {Elements} eTo\n */\n reduceElements (eFrom) {\n const ψ = this.π + this.p\n const [si, ci] = base.sincos(eFrom.inc)\n const [snp, cnp] = base.sincos(eFrom.node - this.π)\n const eTo = new Elements()\n // (24.1) p. 159\n eTo.inc = Math.acos(ci * this.cη + si * this.sη * cnp)\n // (24.2) p. 159\n eTo.node = Math.atan2(si * snp, this.cη * si * cnp - this.sη * ci) + ψ\n // (24.3) p. 159\n eTo.peri = Math.atan2(-this.sη * snp, si * this.cη - ci * this.sη * cnp) + eFrom.peri\n return eTo\n }\n}\n\n/**\n * eclipticPosition precesses ecliptic coordinates from one epoch to another,\n * including proper motions.\n * While eclFrom is given as ecliptic coordinates, proper motions mα, mδ are\n * still expected to be equatorial. If proper motions are not to be considered\n * or are not applicable, pass 0, 0.\n * Both eclFrom and eclTo must be non-nil, although they may point to the same\n * struct. EclTo is returned for convenience.\n *\n * @param {Ecliptic} eclFrom,\n * @param {Number} epochFrom\n * @param {HourAngle} [mα]\n * @param {Angle} [mδ]\n * @returns {Ecliptic} eclTo\n */\nexport function eclipticPosition (eclFrom, epochFrom, epochTo, mα, mδ) {\n const p = new EclipticPrecessor(epochFrom, epochTo)\n\n if (mα && mδ && (mα.rad() !== 0 || mδ.rad() !== 0)) {\n const { lon, lat } = properMotion(mα.rad(), mδ.rad(), epochFrom, eclFrom)\n const t = epochTo - epochFrom\n eclFrom.lon += lon * t\n eclFrom.lat += lat * t\n }\n return p.precess(eclFrom)\n}\n\n/**\n * @param {Number} mα - anual proper motion (ra)\n * @param {Number} mδ - anual proper motion (dec)\n * @param {Number} epoch\n * @param {Ecliptic} ecl\n * @returns {Ecliptic} {lon, lat}\n */\nexport function properMotion (mα, mδ, epoch, ecl) {\n const ε = nutation.meanObliquity(base.JulianYearToJDE(epoch))\n const [εsin, εcos] = base.sincos(ε)\n const { ra, dec } = ecl.toEquatorial(ε)\n const [sα, cα] = base.sincos(ra)\n const [sδ, cδ] = base.sincos(dec)\n const cβ = Math.cos(ecl.lat)\n const lon = (mδ * εsin * cα + mα * cδ * (εcos * cδ + εsin * sδ * sα)) / (cβ * cβ)\n const lat = (mδ * (εcos * cδ + εsin * sδ * sα) - mα * εsin * cα * cδ) / cβ\n return new Ecliptic(lon, lat)\n}\n\n/**\n * ProperMotion3D takes the 3D equatorial coordinates of an object\n * at one epoch and computes its coordinates at a new epoch, considering\n * proper motion and radial velocity.\n *\n * Radial distance (r) must be in parsecs, radial velocitiy (mr) in\n * parsecs per year.\n *\n * Both eqFrom and eqTo must be non-nil, although they may point to the same\n * struct. EqTo is returned for convenience.\n *\n * @param {Equatorial} eqFrom,\n * @param {Number} epochFrom\n * @param {Number} r\n * @param {Number} mr\n * @param {HourAngle} mα\n * @param {Angle} mδ\n * @returns {Equatorial} eqTo\n */\nexport function properMotion3D (eqFrom, epochFrom, epochTo, r, mr, mα, mδ) {\n const [sα, cα] = base.sincos(eqFrom.ra)\n const [sδ, cδ] = base.sincos(eqFrom.dec)\n const x = r * cδ * cα\n const y = r * cδ * sα\n const z = r * sδ\n const mrr = mr / r\n const zmδ = z * mδ.rad()\n const mx = x * mrr - zmδ * cα - y * mα.rad()\n const my = y * mrr - zmδ * sα + x * mα.rad()\n const mz = z * mrr + r * mδ.rad() * cδ\n const t = epochTo - epochFrom\n const xp = x + t * mx\n const yp = y + t * my\n const zp = z + t * mz\n const eqTo = new Equatorial()\n eqTo.ra = Math.atan2(yp, xp)\n eqTo.dec = Math.atan2(zp, Math.hypot(xp, yp))\n return eqTo\n}\n\nexport default {\n approxAnnualPrecession,\n mn,\n approxPosition,\n Precessor,\n position,\n EclipticPrecessor,\n eclipticPosition,\n properMotion,\n properMotion3D\n}\n","/**\n * @copyright 2013 Sonia Keys\n * @copyright 2016 commenthol\n * @license MIT\n * @module planetposition\n */\n/**\n * Planetposition: Chapter 32, Positions of the Planets.\n *\n * Incomplete:\n *\n * 1. The package does not implement algorithms that use appendix III,\n * but instead implements a full VSOP87 solution. I do not have a copy\n * of the supplimentary disk with appendix III in machine readable form\n * and as the appendix is rather large, retyping it by hand is problematic.\n * The full VSOP87 data set on the other hand is freely downloadable from\n * the internet, so I implement here code that can use that data directly.\n *\n * 2. The formula for accuracy of results is not implemented. It is\n * not needed for full VSOP87 solutions.\n *\n * 3. Polynomial expressions are not implemented. Again, implementation\n * would involve typing rather large tables of numbers with associated\n * risk of typographical errors.\n */\n\nimport base, { Coord } from './base.js' // eslint-disable-line no-unused-vars\nimport sexa from './sexagesimal.js'\nimport coord from './coord.js'\nimport precess from './precess.js'\n\nfunction sum (t, series) {\n const coeffs = []\n Object.keys(series).forEach((x) => {\n coeffs[x] = 0\n let y = series[x].length - 1\n for (y; y >= 0; y--) {\n const term = {\n a: series[x][y][0],\n b: series[x][y][1],\n c: series[x][y][2]\n }\n coeffs[x] += term.a * Math.cos(term.b + term.c * t)\n }\n })\n const res = base.horner(t, ...coeffs)\n return res\n}\n\nexport class Planet {\n /**\n * VSOP87 representation of a Planet\n * @constructs Planet\n * @param {object} planet - planet data series\n * @example\n * ```js\n * // for use in browser\n * import {data} from 'astronomia'\n * const earth = new planetposition.Planet(data.vsop87Bearth)\n * ```\n */\n constructor (planet) {\n if (typeof planet !== 'object') throw new TypeError('need planet vsop87 data')\n this.name = planet.name\n this.type = planet.type || 'B'\n this.series = planet\n }\n\n /**\n * Position2000 returns ecliptic position of planets by full VSOP87 theory.\n *\n * @param {Number} jde - the date for which positions are desired.\n * @returns {Coord} Results are for the dynamical equinox and ecliptic J2000.\n * {Number} lon - heliocentric longitude in radians.\n * {Number} lat - heliocentric latitude in radians.\n * {Number} range - heliocentric range in AU.\n */\n position2000 (jde) {\n const T = base.J2000Century(jde)\n const τ = T * 0.1\n const lon = base.pmod(sum(τ, this.series.L), 2 * Math.PI)\n const lat = sum(τ, this.series.B)\n const range = sum(τ, this.series.R)\n\n switch (this.type) {\n case 'B':\n return new base.Coord(lon, lat, range)\n case 'D': {\n const eclFrom = new coord.Ecliptic(lon, lat)\n const epochFrom = base.JDEToJulianYear(jde)\n const epochTo = 2000.0\n const eclTo = precess.eclipticPosition(eclFrom, epochFrom, epochTo)\n return new base.Coord(eclTo.lon, eclTo.lat, range)\n }\n }\n }\n\n /**\n * Position returns ecliptic position of planets at equinox and ecliptic of date.\n *\n * @param {Number} jde - the date for which positions are desired.\n * @returns {Coord} Results are positions consistent with those from Meeus's\n * Apendix III, that is, at equinox and ecliptic of date.\n * {Number} lon - heliocentric longitude in radians.\n * {Number} lat - heliocentric latitude in radians.\n * {Number} range - heliocentric range in AU.\n */\n position (jde) {\n const T = base.J2000Century(jde)\n const τ = T * 0.1\n const lon = base.pmod(sum(τ, this.series.L), 2 * Math.PI)\n const lat = sum(τ, this.series.B)\n const range = sum(τ, this.series.R)\n\n switch (this.type) {\n case 'B': {\n const eclFrom = new coord.Ecliptic(lon, lat)\n const epochFrom = 2000.0\n const epochTo = base.JDEToJulianYear(jde)\n const eclTo = precess.eclipticPosition(eclFrom, epochFrom, epochTo)\n return new base.Coord(eclTo.lon, eclTo.lat, range)\n }\n case 'D':\n return new base.Coord(lon, lat, range)\n }\n }\n}\n\n/**\n * ToFK5 converts ecliptic longitude and latitude from dynamical frame to FK5.\n *\n * @param {Number} lon - ecliptic longitude in radians\n * @param {Number} lat - ecliptic latitude in radians\n * @param {Number} jde - Julian ephemeris day\n * @return {Coord}\n * {Number} lon - FK5 longitude\n * {Number} lat - FK5 latitude\n */\nexport function toFK5 (lon, lat, jde) {\n // formula 32.3, p. 219.\n const T = base.J2000Century(jde)\n // const Lp = lon - 1.397 * Math.PI / 180 * T - 0.00031 * Math.PI / 180 * T * T\n const Lp = lon - sexa.angleFromDeg((1.397 + 0.00031 * T) * T)\n const [sLp, cLp] = base.sincos(Lp)\n // (32.3) p. 219\n const L5 = lon + sexa.angleFromSec(-0.09033 + 0.03916 * (cLp + sLp) * Math.tan(lat))\n const B5 = lat + sexa.angleFromSec(0.03916 * (cLp - sLp))\n return new base.Coord(L5, B5)\n}\n\nexport default {\n Planet,\n toFK5\n}\n","/**\n * @copyright 2013 Sonia Keys\n * @copyright 2016 commenthol\n * @license MIT\n * @module solar\n */\n/**\n * Solar: Chapter 25, Solar Coordinates.\n *\n * Partial implementation:\n *\n * 1. Higher accuracy positions are not computed with Appendix III but with\n * full VSOP87 as implemented in package planetposition.\n *\n * 2. Higher accuracy correction for aberration (using the formula for\n * variation Δλ on p. 168) is not implemented. Results for example 25.b\n * already match the full VSOP87 values on p. 165 even with the low accuracy\n * correction for aberration, thus there are no more significant digits that\n * would check a more accurate result. Also the size of the formula presents\n * significant chance of typographical error.\n */\n\nimport base, { Coord } from './base.js'\nimport { Planet } from './planetposition.js' // eslint-disable-line no-unused-vars\nimport coord from './coord.js'\nimport nutation from './nutation.js'\n\n/**\n * True returns true geometric longitude and anomaly of the sun referenced to the mean equinox of date.\n *\n * @param {Number} T - number of Julian centuries since J2000. See base.J2000Century.\n * @returns {Object}\n * {Number} lon = true geometric longitude, ☉, in radians\n * {Number} ano = true anomaly in radians\n */\nexport function trueLongitude (T) {\n // (25.2) p. 163\n const L0 = base.horner(T, 280.46646, 36000.76983, 0.0003032) *\n Math.PI / 180\n const m = meanAnomaly(T)\n const C = (base.horner(T, 1.914602, -0.004817, -0.000014) *\n Math.sin(m) +\n (0.019993 - 0.000101 * T) * Math.sin(2 * m) +\n 0.000289 * Math.sin(3 * m)) * Math.PI / 180\n const lon = base.pmod(L0 + C, 2 * Math.PI)\n const ano = base.pmod(m + C, 2 * Math.PI)\n return { lon, ano }\n}\n\n/**\n * meanAnomaly returns the mean anomaly of Earth at the given T.\n *\n * @param {Number} T - number of Julian centuries since J2000. See base.J2000Century.\n * @returns {Number} Result is in radians and is not normalized to the range 0..2π.\n */\nexport function meanAnomaly (T) {\n // (25.3) p. 163\n return base.horner(T, 357.52911, 35999.05029, -0.0001537) * Math.PI / 180\n}\n\n/**\n * eccentricity returns eccentricity of the Earth's orbit around the sun.\n *\n * @param {Number} T - number of Julian centuries since J2000. See base.J2000Century.\n * @returns {Number} eccentricity of the Earth's orbit around the sun.\n */\nexport function eccentricity (T) {\n // (25.4) p. 163\n return base.horner(T, 0.016708634, -0.000042037, -0.0000001267)\n}\n\n/**\n * Radius returns the Sun-Earth distance in AU.\n *\n * @param {Number} T - number of Julian centuries since J2000. See base.J2000Century.\n * @returns {Number} Sun-Earth distance in AU\n */\nexport function radius (T) {\n const {lon, ano} = trueLongitude(T) // eslint-disable-line\n const e = eccentricity(T)\n // (25.5) p. 164\n return 1.000001018 * (1 - e * e) / (1 + e * Math.cos(ano))\n}\n\n/**\n * ApparentLongitude returns apparent longitude of the Sun referenced to the true equinox of date.\n * Result includes correction for nutation and aberration. Unit is radians.\n *\n * @param {Number} T - number of Julian centuries since J2000. See base.J2000Century.\n * @returns {Number} apparent longitude of the Sun referenced to the true equinox of date.\n */\nexport function apparentLongitude (T) {\n const Ω = node(T)\n const {lon, ano} = trueLongitude(T) // eslint-disable-line\n return lon - 0.00569 * Math.PI / 180 - 0.00478 * Math.PI / 180 * Math.sin(Ω)\n}\n\n/**\n * @private\n */\nfunction node (T) {\n return 125.04 * Math.PI / 180 - 1934.136 * Math.PI / 180 * T\n}\n\n/**\n * true2000 returns true geometric longitude and anomaly of the sun referenced to equinox J2000.\n * Results are accurate to .01 degree for years 1900 to 2100.\n *\n * @param {Number} T - number of Julian centuries since J2000. See base.J2000Century.\n * @returns {Object}\n * {Number} lon - true geometric longitude, ☉, in radians\n * {Number} ano - true anomaly in radians\n */\nexport function true2000 (T) {\n let { lon, ano } = trueLongitude(T)\n lon -= 0.01397 * Math.PI / 180 * T * 100\n return { lon, ano }\n}\n\n/**\n * trueEquatorial returns the true geometric position of the Sun as equatorial coordinates.\n *\n * @param {Number} jde - Julian ephemeris day\n * @returns {Coord}\n * {Number} ra - right ascension in radians\n * {Number} dec - declination in radians\n */\nexport function trueEquatorial (jde) {\n const {lon, ano} = trueLongitude(base.J2000Century(jde)) // eslint-disable-line\n const ε = nutation.meanObliquity(jde)\n const [ss, cs] = base.sincos(lon)\n const [sε, cε] = base.sincos(ε)\n // (25.6, 25.7) p. 165\n const ra = Math.atan2(cε * ss, cs)\n const dec = sε * ss\n return new base.Coord(ra, dec)\n}\n\n/**\n * apparentEquatorial returns the apparent position of the Sun as equatorial coordinates.\n *\n * @param {Number} jde - Julian ephemeris day\n * @returns {Coord}\n * {Number} ra - right ascension in radians\n * {Number} dec - declination in radians\n */\nexport function apparentEquatorial (jde) {\n const T = base.J2000Century(jde)\n const λ = apparentLongitude(T)\n const ε = nutation.meanObliquity(jde)\n const [sλ, cλ] = base.sincos(λ)\n // (25.8) p. 165\n const [sε, cε] = base.sincos(ε + 0.00256 * Math.PI / 180 * Math.cos(node(T)))\n const ra = Math.atan2(cε * sλ, cλ)\n const dec = Math.asin(sε * sλ)\n return new base.Coord(ra, dec)\n}\n\n/**\n * trueVSOP87 returns the true geometric position of the sun as ecliptic coordinates.\n *\n * Result computed by full VSOP87 theory. Result is at equator and equinox\n * of date in the FK5 frame. It does not include nutation or aberration.\n *\n * @param {Planet} planet\n * @param {Number} jde - Julian ephemeris day\n * @returns {Object}\n * {Number} lon - ecliptic longitude in radians\n * {Number} lat - ecliptic latitude in radians\n * {Number} range - range in AU\n */\nexport function trueVSOP87 (planet, jde) {\n let { lon, lat, range } = planet.position(jde)\n const s = lon + Math.PI\n // FK5 correction.\n const λp = base.horner(base.J2000Century(jde),\n s, -1.397 * Math.PI / 180, -0.00031 * Math.PI / 180)\n const [sλp, cλp] = base.sincos(λp)\n const Δβ = 0.03916 / 3600 * Math.PI / 180 * (cλp - sλp)\n // (25.9) p. 166\n lon = base.pmod(s - 0.09033 / 3600 * Math.PI / 180, 2 * Math.PI)\n lat = Δβ - lat\n return new base.Coord(lon, lat, range)\n}\n\n/**\n * apparentVSOP87 returns the apparent position of the sun as ecliptic coordinates.\n *\n * Result computed by VSOP87, at equator and equinox of date in the FK5 frame,\n * and includes effects of nutation and aberration.\n *\n * @param {Planet} planet\n * @param {Number} jde - Julian ephemeris day\n * @returns {Coord}\n * {Number} lon - ecliptic longitude in radians\n * {Number} lat - ecliptic latitude in radians\n * {Number} range - range in AU\n */\nexport function apparentVSOP87 (planet, jde) {\n // note: see duplicated code in ApparentEquatorialVSOP87.\n let { lon, lat, range } = trueVSOP87(planet, jde)\n const Δψ = nutation.nutation(jde)[0]\n const a = aberration(range)\n lon = lon + Δψ + a\n return new base.Coord(lon, lat, range)\n}\n\n/**\n * apparentEquatorialVSOP87 returns the apparent position of the sun as equatorial coordinates.\n *\n * Result computed by VSOP87, at equator and equinox of date in the FK5 frame,\n * and includes effects of nutation and aberration.\n *\n * @param {Planet} planet\n * @param {Number} jde - Julian ephemeris day\n * @returns {Coord}\n * {Number} ra - right ascension in radians\n * {Number} dec - declination in radians\n * {Number} range - range in AU\n */\nexport function apparentEquatorialVSOP87 (planet, jde) {\n // note: duplicate code from ApparentVSOP87 so we can keep Δε.\n // see also duplicate code in time.E().\n const { lon, lat, range } = trueVSOP87(planet, jde)\n const [Δψ, Δε] = nutation.nutation(jde)\n const a = aberration(range)\n const λ = lon + Δψ + a\n const ε = nutation.meanObliquity(jde) + Δε\n const { ra, dec } = new coord.Ecliptic(λ, lat).toEquatorial(ε)\n return new Coord(ra, dec, range)\n}\n\n/**\n * Low precision formula. The high precision formula is not implemented\n * because the low precision formula already gives position results to the\n * accuracy given on p. 165. The high precision formula represents lots\n * of typing with associated chance of typos, and no way to test the result.\n * @param {Number} range\n * @returns {Number} aberation\n */\nexport function aberration (range) {\n // (25.10) p. 167\n return -20.4898 / 3600 * Math.PI / 180 / range\n}\n\nexport default {\n trueLongitude,\n true: trueLongitude, // BACKWARDS-COMPATIBILITY\n meanAnomaly,\n eccentricity,\n radius,\n apparentLongitude,\n true2000,\n trueEquatorial,\n apparentEquatorial,\n trueVSOP87,\n apparentVSOP87,\n apparentEquatorialVSOP87,\n aberration\n}\n","/**\n * @copyright 2013 Sonia Keys\n * @copyright 2016 commenthol\n * @license MIT\n * @module apparent\n */\n/**\n * Apparent: Chapter 23, Apparent Place of a Star\n */\n\nimport base from './base.js'\nimport coord from './coord.js'\nimport _nutation from './nutation.js'\nimport precess from './precess.js'\nimport solar from './solar.js'\nconst { cos, tan } = Math\n\n/**\n * Nutation returns corrections due to nutation for equatorial coordinates\n * of an object.\n *\n * Results are invalid for objects very near the celestial poles.\n * @param {Number} α - right ascension\n * @param {Number} δ - declination\n * @param {Number} jd - Julian Day\n * @return {Number[]} [Δα1, Δδ1] -\n*/\nexport function nutation (α, δ, jd) { // (α, δ, jd float64) (Δα1, Δδ1 float64)\n const ε = _nutation.meanObliquity(jd)\n const [sinε, cosε] = base.sincos(ε)\n const [Δψ, Δε] = _nutation.nutation(jd)\n const [sinα, cosα] = base.sincos(α)\n const tanδ = tan(δ)\n // (23.1) p. 151\n const Δα1 = (cosε + sinε * sinα * tanδ) * Δψ - cosα * tanδ * Δε\n const Δδ1 = sinε * cosα * Δψ + sinα * Δε\n return [Δα1, Δδ1]\n}\n\n/**\n * κ is the constant of aberration in radians.\n */\nconst κ = 20.49552 * Math.PI / 180 / 3600\n\n/**\n * longitude of perihelian of Earth's orbit.\n */\nexport function perihelion (T) { // (T float64) float64\n return base.horner(T, 102.93735, 1.71946, 0.00046) * Math.PI / 180\n}\n\n/**\n * EclipticAberration returns corrections due to aberration for ecliptic\n * coordinates of an object.\n */\nexport function eclipticAberration (λ, β, jd) { // (λ, β, jd float64) (Δλ, Δβ float64)\n const T = base.J2000Century(jd)\n const { lon, ano } = solar.trueLongitude(T) // eslint-disable-line no-unused-vars\n const e = solar.eccentricity(T)\n const π = perihelion(T)\n const [sβ, cβ] = base.sincos(β)\n const [ssλ, csλ] = base.sincos(lon - λ)\n const [sinπλ, cosπλ] = base.sincos(π - λ)\n // (23.2) p. 151\n const Δλ = κ * (e * cosπλ - csλ) / cβ\n const Δβ = -κ * sβ * (ssλ - e * sinπλ)\n return [Δλ, Δβ]\n}\n\n/**\n * Aberration returns corrections due to aberration for equatorial\n * coordinates of an object.\n */\nexport function aberration (α, δ, jd) { // (α, δ, jd float64) (Δα2, Δδ2 float64)\n const ε = _nutation.meanObliquity(jd)\n const T = base.J2000Century(jd)\n const { lon, ano } = solar.trueLongitude(T) // eslint-disable-line no-unused-vars\n const e = solar.eccentricity(T)\n const π = perihelion(T)\n const [sinα, cosα] = base.sincos(α)\n const [sinδ, cosδ] = base.sincos(δ)\n const [sins, coss] = base.sincos(lon)\n const [sinπ, cosπ] = base.sincos(π)\n const cosε = cos(ε)\n const q1 = cosα * cosε\n // (23.3) p. 152\n const Δα2 = κ * (e * (q1 * cosπ + sinα * sinπ) - (q1 * coss + sinα * sins)) / cosδ\n const q2 = cosε * (tan(ε) * cosδ - sinα * sinδ)\n const q3 = cosα * sinδ\n const Δδ2 = κ * (e * (cosπ * q2 + sinπ * q3) - (coss * q2 + sins * q3))\n return [Δα2, Δδ2]\n}\n\n/**\n * Position computes the apparent position of an object.\n *\n * Position is computed for equatorial coordinates in eqFrom, considering\n * proper motion, precession, nutation, and aberration. Result is in\n * eqTo. EqFrom and eqTo must be non-nil, but may point to the same struct.\n */\nexport function position (eqFrom, epochFrom, epochTo, mα, mδ) { // (eqFrom, eqTo *coord.Equatorial, epochFrom, epochTo float64, mα sexa.HourAngle, mδ sexa.Angle) *coord.Equatorial\n const eqTo = precess.position(eqFrom, epochFrom, epochTo, mα, mδ)\n const jd = base.JulianYearToJDE(epochTo)\n const [Δα1, Δδ1] = nutation(eqTo.ra, eqTo.dec, jd)\n const [Δα2, Δδ2] = aberration(eqTo.ra, eqTo.dec, jd)\n eqTo.ra += Δα1 + Δα2\n eqTo.dec += Δδ1 + Δδ2\n return eqTo\n}\n\n/**\n * AberrationRonVondrak uses the Ron-Vondrák expression to compute corrections\n * due to aberration for equatorial coordinates of an object.\n */\nexport function aberrationRonVondrak (α, δ, jd) { // (α, δ, jd float64) (Δα, Δδ float64)\n const T = base.J2000Century(jd)\n const r = {\n T,\n L2: 3.1761467 + 1021.3285546 * T,\n L3: 1.7534703 + 628.3075849 * T,\n L4: 6.2034809 + 334.0612431 * T,\n L5: 0.5995465 + 52.9690965 * T,\n L6: 0.8740168 + 21.3299095 * T,\n L7: 5.4812939 + 7.4781599 * T,\n L8: 5.3118863 + 3.8133036 * T,\n Lp: 3.8103444 + 8399.6847337 * T,\n D: 5.1984667 + 7771.3771486 * T,\n Mp: 2.3555559 + 8328.6914289 * T,\n F: 1.6279052 + 8433.4661601 * T\n }\n let Xp = 0\n let Yp = 0\n let Zp = 0\n // sum smaller terms first\n for (let i = 35; i >= 0; i--) {\n const [x, y, z] = rvTerm[i](r)\n Xp += x\n Yp += y\n Zp += z\n }\n const [sinα, cosα] = base.sincos(α)\n const [sinδ, cosδ] = base.sincos(δ)\n // (23.4) p. 156\n return [(Yp * cosα - Xp * sinα) / (c * cosδ), -((Xp * cosα + Yp * sinα) * sinδ - Zp * cosδ) / c]\n}\n\nconst c = 17314463350 // unit is 1e-8 AU / day\n\n// r = {T, L2, L3, L4, L5, L6, L7, L8, Lp, D, Mp, F}\nconst rvTerm = [\n function (r) { // 1\n const [sinA, cosA] = base.sincos(r.L3)\n return [(-1719914 - 2 * r.T) * sinA - 25 * cosA,\n (25 - 13 * r.T) * sinA + (1578089 + 156 * r.T) * cosA,\n (10 + 32 * r.T) * sinA + (684185 - 358 * r.T) * cosA\n ]\n },\n function (r) { // 2\n const [sinA, cosA] = base.sincos(2 * r.L3)\n return [(6434 + 141 * r.T) * sinA + (28007 - 107 * r.T) * cosA,\n (25697 - 95 * r.T) * sinA + (-5904 - 130 * r.T) * cosA,\n (11141 - 48 * r.T) * sinA + (-2559 - 55 * r.T) * cosA\n ]\n },\n function (r) { // 3\n const [sinA, cosA] = base.sincos(r.L5)\n return [715 * sinA, 6 * sinA - 657 * cosA, -15 * sinA - 282 * cosA]\n },\n function (r) { // 4\n const [sinA, cosA] = base.sincos(r.Lp)\n return [715 * sinA, -656 * cosA, -285 * cosA]\n },\n function (r) { // 5\n const [sinA, cosA] = base.sincos(3 * r.L3)\n return [(486 - 5 * r.T) * sinA + (-236 - 4 * r.T) * cosA,\n (-216 - 4 * r.T) * sinA + (-446 + 5 * r.T) * cosA, -94 * sinA - 193 * cosA\n ]\n },\n function (r) { // 6\n const [sinA, cosA] = base.sincos(r.L6)\n return [159 * sinA, 2 * sinA - 147 * cosA, -6 * sinA - 61 * cosA]\n },\n function (r) { // 7\n const cosA = Math.cos(r.F)\n return [0, 26 * cosA, -59 * cosA]\n },\n function (r) { // 8\n const [sinA, cosA] = base.sincos(r.Lp + r.Mp)\n return [39 * sinA, -36 * cosA, -16 * cosA]\n },\n function (r) { // 9\n const [sinA, cosA] = base.sincos(2 * r.L5)\n return [33 * sinA - 10 * cosA, -9 * sinA - 30 * cosA, -5 * sinA - 13 * cosA]\n },\n function (r) { // 10\n const [sinA, cosA] = base.sincos(2 * r.L3 - r.L5)\n return [31 * sinA + cosA, sinA - 28 * cosA, -12 * cosA]\n },\n function (r) { // 11\n const [sinA, cosA] = base.sincos(3 * r.L3 - 8 * r.L4 + 3 * r.L5)\n return [8 * sinA - 28 * cosA, 25 * sinA + 8 * cosA, 11 * sinA + 3 * cosA]\n },\n function (r) { // 12\n const [sinA, cosA] = base.sincos(5 * r.L3 - 8 * r.L4 + 3 * r.L5)\n return [8 * sinA - 28 * cosA, -25 * sinA - 8 * cosA, -11 * sinA + -3 * cosA]\n },\n function (r) { // 13\n const [sinA, cosA] = base.sincos(2 * r.L2 - r.L3)\n return [21 * sinA, -19 * cosA, -8 * cosA]\n },\n function (r) { // 14\n const [sinA, cosA] = base.sincos(r.L2)\n return [-19 * sinA, 17 * cosA, 8 * cosA]\n },\n function (r) { // 15\n const [sinA, cosA] = base.sincos(r.L7)\n return [17 * sinA, -16 * cosA, -7 * cosA]\n },\n function (r) { // 16\n const [sinA, cosA] = base.sincos(r.L3 - 2 * r.L5)\n return [16 * sinA, 15 * cosA, sinA + 7 * cosA]\n },\n function (r) { // 17\n const [sinA, cosA] = base.sincos(r.L8)\n return [16 * sinA, sinA - 15 * cosA, -3 * sinA - 6 * cosA]\n },\n function (r) { // 18\n const [sinA, cosA] = base.sincos(r.L3 + r.L5)\n return [11 * sinA - cosA, -sinA - 10 * cosA, -sinA - 5 * cosA]\n },\n function (r) { // 19\n const [sinA, cosA] = base.sincos(2 * r.L2 - 2 * r.L3)\n return [-11 * cosA, -10 * sinA, -4 * sinA]\n },\n function (r) { // 20\n const [sinA, cosA] = base.sincos(r.L3 - r.L5)\n return [-11 * sinA - 2 * cosA, -2 * sinA + 9 * cosA, -sinA + 4 * cosA]\n },\n function (r) { // 21\n const [sinA, cosA] = base.sincos(4 * r.L3)\n return [-7 * sinA - 8 * cosA, -8 * sinA + 6 * cosA, -3 * sinA + 3 * cosA]\n },\n function (r) { // 22\n const [sinA, cosA] = base.sincos(3 * r.L3 - 2 * r.L5)\n return [-10 * sinA, 9 * cosA, 4 * cosA]\n },\n function (r) { // 23\n const [sinA, cosA] = base.sincos(r.L2 - 2 * r.L3)\n return [-9 * sinA, -9 * cosA, -4 * cosA]\n },\n function (r) { // 24\n const [sinA, cosA] = base.sincos(2 * r.L2 - 3 * r.L3)\n return [-9 * sinA, -8 * cosA, -4 * cosA]\n },\n function (r) { // 25\n const [sinA, cosA] = base.sincos(2 * r.L6)\n return [-9 * cosA, -8 * sinA, -3 * sinA]\n },\n function (r) { // 26\n const [sinA, cosA] = base.sincos(2 * r.L2 - 4 * r.L3)\n return [-9 * cosA, 8 * sinA, 3 * sinA]\n },\n function (r) { // 27\n const [sinA, cosA] = base.sincos(3 * r.L3 - 2 * r.L4)\n return [8 * sinA, -8 * cosA, -3 * cosA]\n },\n function (r) { // 28\n const [sinA, cosA] = base.sincos(r.Lp + 2 * r.D - r.Mp)\n return [8 * sinA, -7 * cosA, -3 * cosA]\n },\n function (r) { // 29\n const [sinA, cosA] = base.sincos(8 * r.L2 - 12 * r.L3)\n return [-4 * sinA - 7 * cosA, -6 * sinA + 4 * cosA, -3 * sinA + 2 * cosA]\n },\n function (r) { // 30\n const [sinA, cosA] = base.sincos(8 * r.L2 - 14 * r.L3)\n return [-4 * sinA - 7 * cosA, 6 * sinA - 4 * cosA, 3 * sinA - 2 * cosA]\n },\n function (r) { // 31\n const [sinA, cosA] = base.sincos(2 * r.L4)\n return [-6 * sinA - 5 * cosA, -4 * sinA + 5 * cosA, -2 * sinA + 2 * cosA]\n },\n function (r) { // 32\n const [sinA, cosA] = base.sincos(3 * r.L2 - 4 * r.L3)\n return [-sinA - cosA, -2 * sinA - 7 * cosA, sinA - 4 * cosA]\n },\n function (r) { // 33\n const [sinA, cosA] = base.sincos(2 * r.L3 - 2 * r.L5)\n return [4 * sinA - 6 * cosA, -5 * sinA - 4 * cosA, -2 * sinA - 2 * cosA]\n },\n function (r) { // 34\n const [sinA, cosA] = base.sincos(3 * r.L2 - 3 * r.L3)\n return [-7 * cosA, -6 * sinA, -3 * sinA]\n },\n function (r) { // 35\n const [sinA, cosA] = base.sincos(2 * r.L3 - 2 * r.L4)\n return [5 * sinA - 5 * cosA, -4 * sinA - 5 * cosA, -2 * sinA - 2 * cosA]\n },\n function (r) { // 36\n const [sinA, cosA] = base.sincos(r.Lp - 2 * r.D)\n return [5 * sinA, -5 * cosA, -2 * cosA]\n }\n]\n\n/**\n * PositionRonVondrak computes the apparent position of an object using\n * the Ron-Vondrák expression for aberration.\n *\n * Position is computed for equatorial coordinates in eqFrom, considering\n * proper motion, aberration, precession, and _nutation. Result is in\n * eqTo. EqFrom and eqTo must be non-nil, but may point to the same struct.\n *\n * Note the Ron-Vondrák expression is only valid for the epoch J2000.\n * EqFrom must be coordinates at epoch J2000.\n */\nexport function positionRonVondrak (eqFrom, epochTo, mα, mδ) { // (eqFrom, eqTo *coord.Equatorial, epochTo float64, mα sexa.HourAngle, mδ sexa.Angle) *coord.Equatorial\n const t = epochTo - 2000\n let eqTo = new coord.Equatorial()\n eqTo.ra = eqFrom.ra + mα.rad() * t\n eqTo.dec = eqFrom.dec + mδ.rad() * t\n const jd = base.JulianYearToJDE(epochTo)\n const [Δα, Δδ] = aberrationRonVondrak(eqTo.ra, eqTo.dec, jd)\n eqTo.ra += Δα\n eqTo.dec += Δδ\n eqTo = precess.position(eqTo, 2000, epochTo, 0, 0)\n const [Δα1, Δδ1] = nutation(eqTo.ra, eqTo.dec, jd)\n eqTo.ra += Δα1\n eqTo.dec += Δδ1\n return eqTo\n}\n\nexport default {\n nutation,\n perihelion,\n eclipticAberration,\n aberration,\n position,\n aberrationRonVondrak,\n positionRonVondrak\n}\n","/**\n * @copyright 2013 Sonia Keys\n * @copyright 2016 commenthol\n * @license MIT\n * @module apsis\n */\n/**\n * Apsis: Chapter 50, Perigee and apogee of the Moon\n */\n\nimport base from './base.js'\nconst { sin, cos } = Math\n\n/**\n * conversion factor from k to T, given in (50.3) p. 356\n */\nconst ck = 1 / 1325.55\nconst D2R = Math.PI / 180\n\n// from http://nssdc.gsfc.nasa.gov/planetary/factsheet/earthfact.html\nexport const EARTH_RADIUS = 6378.137 // km\n// from http://nssdc.gsfc.nasa.gov/planetary/factsheet/moonfact.html\nexport const MOON_RADIUS = 1738.1 // km\n\n/**\n * mean time of perigee or apogee\n * (50.1) p. 355\n */\nconst mean = function (T) {\n return base.horner(T, 2451534.6698, 27.55454989 / ck,\n -0.0006691, -0.000001098, 0.0000000052)\n}\n\n/**\n * snap returns k at half h nearest year y.\n */\nconst snap = function (y, h) {\n const k = (y - 1999.97) * 13.2555 // (50.2) p. 355\n return Math.floor(k - h + 0.5) + h\n}\n\n/**\n * meanPerigee returns the jde of the mean perigee of the Moon nearest the given date.\n *\n * @param {Number} year - is a decimal year specifying a date.\n * @return {Number} jde - Julian ephemeris day\n */\nexport function meanPerigee (year) {\n return mean(snap(year, 0) * ck)\n}\n\n/**\n * perigee returns the jde of perigee of the Moon nearest the given date.\n *\n * @param {Number} year - is a decimal year specifying a date.\n * @return {Number} jde - Julian ephemeris day\n */\nexport function perigee (year) {\n const l = new La(year, 0)\n return mean(l.T) + l.perigeeCorr()\n}\n\n/**\n * meanApogee returns the jde of the mean apogee of the Moon nearest the given date.\n *\n * @param {Number} year - is a decimal year specifying a date.\n * @return {Number} jde - Julian ephemeris day\n */\nexport function meanApogee (year) { // (year float64) float64\n return mean(snap(year, 0.5) * ck)\n}\n\n/**\n * apogee returns the jde of apogee of the Moon nearest the given date.\n *\n * @param {Number} year - is a decimal year specifying a date.\n * @return {Number} jde - Julian ephemeris day\n */\nexport function apogee (year) {\n const l = new La(year, 0.5)\n return mean(l.T) + l.apogeeCorr()\n}\n\n/**\n * apogeeParallax returns equatorial horizontal parallax of the Moon at the Apogee nearest the given date.\n *\n * @param {Number} year - is a decimal year specifying a date.\n * @return {Number} equatorial horizontal parallax in radians\n */\nexport function apogeeParallax (year) {\n return new La(year, 0.5).apogeeParallax()\n}\n\n/**\n * perigeeParallax returns equatorial horizontal parallax of the Moon at the Apogee nearest the given date.\n *\n * @param {Number} year - is a decimal year specifying a date.\n * @return {Number} equatorial horizontal parallax in radians\n */\nexport function perigeeParallax (year) {\n return new La(year, 0).perigeeParallax()\n}\n\n/**\n * Calculate the distance earth - moon (center to center) using the parallax angle in radians\n *\n * @param {Number} parallax - parallax angle in radians\n * @return {Number} distance in `km`\n */\nexport function distance (parallax) {\n return EARTH_RADIUS / sin(parallax)\n}\n\nclass La {\n constructor (y, h) {\n this.k = snap(y, h)\n this.T = this.k * ck // (50.3) p. 350\n this.D = base.horner(this.T, 171.9179 * D2R, 335.9106046 * D2R / ck,\n -0.0100383 * D2R, -0.00001156 * D2R, 0.000000055 * D2R)\n this.M = base.horner(this.T, 347.3477 * D2R, 27.1577721 * D2R / ck,\n -0.000813 * D2R, -0.000001 * D2R)\n this.F = base.horner(this.T, 316.6109 * D2R, 364.5287911 * D2R / ck,\n -0.0125053 * D2R, -0.0000148 * D2R)\n return this\n }\n\n /**\n * perigee correction\n */\n perigeeCorr () {\n const l = this\n return -1.6769 * sin(2 * l.D) +\n 0.4589 * sin(4 * l.D) +\n -0.1856 * sin(6 * l.D) +\n 0.0883 * sin(8 * l.D) +\n (-0.0773 + 0.00019 * l.T) * sin(2 * l.D - l.M) +\n (0.0502 - 0.00013 * l.T) * sin(l.M) +\n -0.046 * sin(10 * l.D) +\n (0.0422 - 0.00011 * l.T) * sin(4 * l.D - l.M) +\n -0.0256 * sin(6 * l.D - l.M) +\n 0.0253 * sin(12 * l.D) +\n 0.0237 * sin(l.D) +\n 0.0162 * sin(8 * l.D - l.M) +\n -0.0145 * sin(14 * l.D) +\n 0.0129 * sin(2 * l.F) +\n -0.0112 * sin(3 * l.D) +\n -0.0104 * sin(10 * l.D - l.M) +\n 0.0086 * sin(16 * l.D) +\n 0.0069 * sin(12 * l.D - l.M) +\n 0.0066 * sin(5 * l.D) +\n -0.0053 * sin(2 * (l.D + l.F)) +\n -0.0052 * sin(18 * l.D) +\n -0.0046 * sin(14 * l.D - l.M) +\n -0.0041 * sin(7 * l.D) +\n 0.004 * sin(2 * l.D + l.M) +\n 0.0032 * sin(20 * l.D) +\n -0.0032 * sin(l.D + l.M) +\n 0.0031 * sin(16 * l.D - l.M) +\n -0.0029 * sin(4 * l.D + l.M) +\n 0.0027 * sin(9 * l.D) +\n 0.0027 * sin(4 * l.D + 2 * l.F) +\n -0.0027 * sin(2 * (l.D - l.M)) +\n 0.0024 * sin(4 * l.D - 2 * l.M) +\n -0.0021 * sin(6 * l.D - 2 * l.M) +\n -0.0021 * sin(22 * l.D) +\n -0.0021 * sin(18 * l.D - l.M) +\n 0.0019 * sin(6 * l.D + l.M) +\n -0.0018 * sin(11 * l.D) +\n -0.0014 * sin(8 * l.D + l.M) +\n -0.0014 * sin(4 * l.D - 2 * l.F) +\n -0.0014 * sin(6 * l.D + 2 * l.F) +\n 0.0014 * sin(3 * l.D + l.M) +\n -0.0014 * sin(5 * l.D + l.M) +\n 0.0013 * sin(13 * l.D) +\n 0.0013 * sin(20 * l.D - l.M) +\n 0.0011 * sin(3 * l.D + 2 * l.M) +\n -0.0011 * sin(2 * (2 * l.D + l.F - l.M)) +\n -0.001 * sin(l.D + 2 * l.M) +\n -0.0009 * sin(22 * l.D - l.M) +\n -0.0008 * sin(4 * l.F) +\n 0.0008 * sin(6 * l.D - 2 * l.F) +\n 0.0008 * sin(2 * (l.D - l.F) + l.M) +\n 0.0007 * sin(2 * l.M) +\n 0.0007 * sin(2 * l.F - l.M) +\n 0.0007 * sin(2 * l.D + 4 * l.F) +\n -0.0006 * sin(2 * (l.F - l.M)) +\n -0.0006 * sin(2 * (l.D - l.F + l.M)) +\n 0.0006 * sin(24 * l.D) +\n 0.0005 * sin(4 * (l.D - l.F)) +\n 0.0005 * sin(2 * (l.D + l.M)) +\n -0.0004 * sin(l.D - l.M)\n }\n\n /**\n * apogee correction\n */\n apogeeCorr () {\n const l = this\n return 0.4392 * sin(2 * l.D) +\n 0.0684 * sin(4 * l.D) +\n (0.0456 - 0.00011 * l.T) * sin(l.M) +\n (0.0426 - 0.00011 * l.T) * sin(2 * l.D - l.M) +\n 0.0212 * sin(2 * l.F) +\n -0.0189 * sin(l.D) +\n 0.0144 * sin(6 * l.D) +\n 0.0113 * sin(4 * l.D - l.M) +\n 0.0047 * sin(2 * (l.D + l.F)) +\n 0.0036 * sin(l.D + l.M) +\n 0.0035 * sin(8 * l.D) +\n 0.0034 * sin(6 * l.D - l.M) +\n -0.0034 * sin(2 * (l.D - l.F)) +\n 0.0022 * sin(2 * (l.D - l.M)) +\n -0.0017 * sin(3 * l.D) +\n 0.0013 * sin(4 * l.D + 2 * l.F) +\n 0.0011 * sin(8 * l.D - l.M) +\n 0.001 * sin(4 * l.D - 2 * l.M) +\n 0.0009 * sin(10 * l.D) +\n 0.0007 * sin(3 * l.D + l.M) +\n 0.0006 * sin(2 * l.M) +\n 0.0005 * sin(2 * l.D + l.M) +\n 0.0005 * sin(2 * (l.D + l.M)) +\n 0.0004 * sin(6 * l.D + 2 * l.F) +\n 0.0004 * sin(6 * l.D - 2 * l.M) +\n 0.0004 * sin(10 * l.D - l.M) +\n -0.0004 * sin(5 * l.D) +\n -0.0004 * sin(4 * l.D - 2 * l.F) +\n 0.0003 * sin(2 * l.F + l.M) +\n 0.0003 * sin(12 * l.D) +\n 0.0003 * sin(2 * l.D + 2 * l.F - l.M) +\n -0.0003 * sin(l.D - l.M)\n }\n\n /**\n * apogee parallax\n */\n apogeeParallax () {\n const s = Math.PI / 180 / 3600\n const l = this\n return 3245.251 * s +\n -9.147 * s * cos(2 * l.D) +\n -0.841 * s * cos(l.D) +\n 0.697 * s * cos(2 * l.F) +\n (-0.656 * s + 0.0016 * s * l.T) * cos(l.M) +\n 0.355 * s * cos(4 * l.D) +\n 0.159 * s * cos(2 * l.D - l.M) +\n 0.127 * s * cos(l.D + l.M) +\n 0.065 * s * cos(4 * l.D - l.M) +\n 0.052 * s * cos(6 * l.D) +\n 0.043 * s * cos(2 * l.D + l.M) +\n 0.031 * s * cos(2 * (l.D + l.F)) +\n -0.023 * s * cos(2 * (l.D - l.F)) +\n 0.022 * s * cos(2 * (l.D - l.M)) +\n 0.019 * s * cos(2 * (l.D + l.M)) +\n -0.016 * s * cos(2 * l.M) +\n 0.014 * s * cos(6 * l.D - l.M) +\n 0.01 * s * cos(8 * l.D)\n }\n\n /**\n * perigee parallax\n */\n perigeeParallax () {\n const s = Math.PI / 180 / 3600\n const l = this\n return 3629.215 * s +\n 63.224 * s * cos(2 * l.D) +\n -6.990 * s * cos(4 * l.D) +\n (2.834 * s - 0.0071 * l.T * s) * cos(2 * l.D - l.M) +\n 1.927 * s * cos(6 * l.D) +\n -1.263 * s * cos(l.D) +\n -0.702 * s * cos(8 * l.D) +\n (0.696 * s - 0.0017 * l.T * s) * cos(l.M) +\n -0.690 * s * cos(2 * l.F) +\n (-0.629 * s + 0.0016 * l.T * s) * cos(4 * l.D - l.M) +\n -0.392 * s * cos(2 * (l.D - l.F)) +\n 0.297 * s * cos(10 * l.D) +\n 0.260 * s * cos(6 * l.D - l.M) +\n 0.201 * s * cos(3 * l.D) +\n -0.161 * s * cos(2 * l.D + l.M) +\n 0.157 * s * cos(l.D + l.M) +\n -0.138 * s * cos(12 * l.D) +\n -0.127 * s * cos(8 * l.D - l.M) +\n 0.104 * s * cos(2 * (l.D + l.F)) +\n 0.104 * s * cos(2 * (l.D - l.M)) +\n -0.079 * s * cos(5 * l.D) +\n 0.068 * s * cos(14 * l.D) +\n 0.067 * s * cos(10 * l.D - l.M) +\n 0.054 * s * cos(4 * l.D + l.M) +\n -0.038 * s * cos(12 * l.D - l.M) +\n -0.038 * s * cos(4 * l.D - 2 * l.M) +\n 0.037 * s * cos(7 * l.D) +\n -0.037 * s * cos(4 * l.D + 2 * l.F) +\n -0.035 * s * cos(16 * l.D) +\n -0.030 * s * cos(3 * l.D + l.M) +\n 0.029 * s * cos(l.D - l.M) +\n -0.025 * s * cos(6 * l.D + l.M) +\n 0.023 * s * cos(2 * l.M) +\n 0.023 * s * cos(14 * l.D - l.M) +\n -0.023 * s * cos(2 * (l.D + l.M)) +\n 0.022 * s * cos(6 * l.D - 2 * l.M) +\n -0.021 * s * cos(2 * l.D - 2 * l.F - l.M) +\n -0.020 * s * cos(9 * l.D) +\n 0.019 * s * cos(18 * l.D) +\n 0.017 * s * cos(6 * l.D + 2 * l.F) +\n 0.014 * s * cos(2 * l.F - l.M) +\n -0.014 * s * cos(16 * l.D - l.M) +\n 0.013 * s * cos(4 * l.D - 2 * l.F) +\n 0.012 * s * cos(8 * l.D + l.M) +\n 0.011 * s * cos(11 * l.D) +\n 0.010 * s * cos(5 * l.D + l.M) +\n -0.010 * s * cos(20 * l.D)\n }\n}\n\nexport default {\n EARTH_RADIUS,\n MOON_RADIUS,\n meanPerigee,\n perigee,\n meanApogee,\n apogee,\n apogeeParallax,\n perigeeParallax,\n distance\n}\n","/**\n * @copyright 2013 Sonia Keys\n * @copyright 2016 commenthol\n * @license MIT\n * @module binary\n */\n/**\n * Binary: Chapter 57, Binary Stars\n */\nimport base from './base.js'\nconst { atan, atan2, cos, sqrt, tan } = Math\n\n/**\n * computes mean anomaly for the given date.\n *\n * @param {Number} year - is a decimal year specifying the date\n * @param {Number} T - is time of periastron, as a decimal year\n * @param {Number} P - is period of revolution in mean solar years\n * @returns {Number} mean anomaly in radians.\n */\nexport function meanAnomaly (year, T, P) { // (year, T, P float64) float64\n const n = 2 * Math.PI / P\n return base.pmod(n * (year - T), 2 * Math.PI)\n}\n\n/**\n * Position computes apparent position angle and angular distance of\n * components of a binary star.\n *\n * @param {Number} a - is apparent semimajor axis in arc seconds\n * @param {Number} e - is eccentricity of the true orbit\n * @param {Number} i - is inclination relative to the line of sight\n * @param {Number} Ω - is position angle of the ascending node\n * @param {Number} ω - is longitude of periastron\n * @param {Number} E - is eccentric anomaly, computed for example with package kepler\n * and the mean anomaly as returned by function M in this package.\n * @returns {Number[]} [θ, ρ]\n * {Number} θ -is the apparent position angle in radians,\n * {Number} ρ is the angular distance in arc seconds.\n */\nexport function position (a, e, i, Ω, ω, E) { // (a, e, i, Ω, ω, E float64) (θ, ρ float64)\n const r = a * (1 - e * cos(E))\n const ν = 2 * atan(sqrt((1 + e) / (1 - e)) * tan(E / 2))\n const [sinνω, cosνω] = base.sincos(ν + ω)\n const cosi = cos(i)\n const num = sinνω * cosi\n let θ = atan2(num, cosνω) + Ω\n if (θ < 0) {\n θ += 2 * Math.PI\n }\n const ρ = r * sqrt(num * num + cosνω * cosνω)\n return [θ, ρ]\n}\n\n/**\n * ApparentEccentricity returns apparent eccenticity of a binary star\n * given true orbital elements.\n *\n * @param {Number} e - is eccentricity of the true orbit\n * @param {Number} i - is inclination relative to the line of sight\n * @param {Number} ω - is longitude of periastron\n * @returns {Number} apparent eccenticity of a binary star\n */\nexport function apparentEccentricity (e, i, ω) { // (e, i, ω float64) float64\n const cosi = cos(i)\n const [sinω, cosω] = base.sincos(ω)\n const A = (1 - e * e * cosω * cosω) * cosi * cosi\n const B = e * e * sinω * cosω * cosi\n const C = 1 - e * e * sinω * sinω\n const d = A - C\n const sqrtD = sqrt(d * d + 4 * B * B)\n return sqrt(2 * sqrtD / (A + C + sqrtD))\n}\n\nexport default {\n meanAnomaly,\n position,\n apparentEccentricity\n}\n","/**\n * @copyright 2013 Sonia Keys\n * @copyright 2016 commenthol\n * @license MIT\n * @module circle\n */\n/**\n * Circle: Chapter 20, Smallest Circle containing three Celestial Bodies.\n */\n\nimport { Coord } from './base.js' // eslint-disable-line no-unused-vars\n\n/**\n * Smallest finds the smallest circle containing three points.\n *\n * Arguments should represent coordinates in right ascension and declination\n * or longitude and latitude. Result Δ is the diameter of the circle, typeI\n * is true if solution is of type I.\n *\n * @param {Coord} c1 - ra, dec point 1\n * @param {Coord} c2 - ra, dec point 2\n * @param {Coord} c3 - ra, dec point 3\n * @returns {Array} [Δ, typeI]\n * {Number} Δ - diameter of the circle\n * {Number} typeI - true - Two points on circle, one interior.\n * false - All three points on circle.\n */\nexport function smallest (c1, c2, c3) {\n // Using haversine formula\n const cd1 = Math.cos(c1.dec)\n const cd2 = Math.cos(c2.dec)\n const cd3 = Math.cos(c3.dec)\n let a = 2 * Math.asin(Math.sqrt(hav(c2.dec - c1.dec) + cd1 * cd2 * hav(c2.ra - c1.ra)))\n let b = 2 * Math.asin(Math.sqrt(hav(c3.dec - c2.dec) + cd2 * cd3 * hav(c3.ra - c2.ra)))\n let c = 2 * Math.asin(Math.sqrt(hav(c1.dec - c3.dec) + cd3 * cd1 * hav(c1.ra - c3.ra)))\n if (b > a) {\n [a, b] = noswap(b, a)\n }\n if (c > a) {\n [a, c] = noswap(c, a)\n }\n if (a * a >= b * b + c * c) {\n return [a, true]\n }\n // (20.1) p. 128\n return [2 * a * b * c / Math.sqrt((a + b + c) * (a + b - c) * (b + c - a) * (a + c - b)), false]\n}\n\nconst noswap = function (a, b) {\n return [a, b]\n}\n\n/**\n * haversine function (17.5) p. 115\n */\nconst hav = function (a) {\n return 0.5 * (1 - Math.cos(a))\n}\n\nexport default {\n smallest\n}\n","/**\n * DO NOT EDIT MANUALLY\n * Use `scripts/deltat.js` to generate file.\n * Datasets are from <https://maia.usno.navy.mil/ser7> and\n * <ftp://ftp.iers.org/products/eop/rapid/standard>\n */\nconst m = {\n historic: {\n table: [44, 43, 43, 41, 40, 39, 38, 37, 37, 36, 36, 36, 37, 37, 38, 37, 36, 36, 35, 35, 34, 33, 33, 32, 32, 31, 31, 30, 30, 29, 29, 29, 29, 29, 28, 28, 27, 27, 26, 26, 25, 25, 25, 26, 26, 26, 26, 25, 25, 25, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 23, 23, 23, 23, 22, 22, 22, 22, 22, 21, 21, 21, 21, 21, 21, 21, 21, 20, 20, 20, 20, 20, 20, 20, 20, 20, 21, 21, 21, 20, 20, 20, 20, 20, 19, 19, 19, 19, 19, 20, 20, 20, 20, 19, 20, 20, 20, 20, 20, 20, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21.1, 21, 21, 21, 20.9, 20.8, 20.7, 20.6, 20.4, 20.2, 20, 19.7, 19.4, 19.1, 18.7, 18.3, 17.8, 17.4, 17, 16.8, 16.6, 16.4, 16.1, 15.9, 15.7, 15.5, 15.3, 15, 14.7, 14.5, 14.3, 14.2, 14.1, 14.1, 14.1, 13.9, 13.7, 13.6, 13.5, 13.5, 13.5, 13.5, 13.4, 13.4, 13.4, 13.4, 13.3, 13.3, 13.2, 13.2, 13.2, 13.1, 13.1, 13.1, 13, 13.2, 13.3, 13.4, 13.5, 13.6, 13.7, 13.8, 13.9, 14, 14, 14.1, 14.1, 14.1, 14.1, 14.2, 14.3, 14.4, 14.4, 14.5, 14.6, 14.6, 14.7, 14.7, 14.7, 14.8, 14.8, 14.9, 14.9, 15, 15, 15.1, 15.2, 15.3, 15.4, 15.5, 15.6, 15.6, 15.6, 15.8, 15.9, 15.9, 15.9, 15.8, 15.7, 15.8, 15.7, 15.7, 15.7, 15.8, 15.9, 16.1, 16.1, 16, 15.9, 15.9, 15.7, 15.4, 15.3, 15.4, 15.5, 15.6, 15.6, 15.6, 15.6, 15.6, 15.6, 15.6, 15.5, 15.5, 15.4, 15.3, 15.2, 15.1, 14.9, 14.8, 14.6, 14.4, 14.3, 14.2, 14.1, 14.2, 14.2, 13.9, 13.7, 13.5, 13.3, 13.1, 13, 13.2, 13.2, 13.1, 13.1, 13.2, 13.3, 13.5, 13.5, 13.4, 13.2, 13.2, 13.1, 13.1, 13, 12.8, 12.6, 12.7, 12.6, 12.3, 12, 11.9, 11.8, 11.6, 11.4, 11.2, 11.1, 11.1, 11.1, 11.1, 11.1, 11.2, 11.1, 11.1, 11.2, 11.4, 11.5, 11.3, 11.2, 11.4, 11.7, 11.9, 11.9, 11.9, 11.8, 11.7, 11.8, 11.8, 11.8, 11.7, 11.6, 11.6, 11.5, 11.5, 11.4, 11.4, 11.3, 11.3, 11.13, 11.16, 10.94, 10.72, 10.29, 10.04, 9.94, 9.91, 9.88, 9.86, 9.72, 9.67, 9.66, 9.64, 9.51, 9.4, 9.21, 9, 8.6, 8.29, 7.95, 7.73, 7.59, 7.49, 7.36, 7.26, 7.1, 7, 6.89, 6.82, 6.73, 6.64, 6.39, 6.28, 6.25, 6.27, 6.25, 6.27, 6.22, 6.24, 6.22, 6.27, 6.3, 6.36, 6.35, 6.37, 6.32, 6.33, 6.33, 6.37, 6.37, 6.41, 6.4, 6.44, 6.46, 6.51, 6.48, 6.51, 6.53, 6.58, 6.55, 6.61, 6.69, 6.8, 6.84, 6.94, 7.03, 7.13, 7.15, 7.22, 7.26, 7.3, 7.23, 7.22, 7.21, 7.2, 6.99, 6.98, 7.19, 7.36, 7.35, 7.39, 7.41, 7.45, 7.36, 7.18, 6.95, 6.72, 6.45, 6.24, 5.92, 5.59, 5.15, 4.67, 4.11, 3.52, 2.94, 2.47, 1.97, 1.52, 1.04, 0.6, 0.11, -0.34, -0.82, -1.25, -1.7, -2.08, -2.48, -2.82, -3.19, -3.5, -3.84, -4.14, -4.43, -4.59, -4.79, -4.92, -5.09, -5.24, -5.36, -5.34, -5.37, -5.32, -5.34, -5.33, -5.4, -5.47, -5.58, -5.66, -5.74, -5.68, -5.69, -5.65, -5.67, -5.68, -5.73, -5.72, -5.78, -5.79, -5.86, -5.89, -6.01, -6.13, -6.28, -6.41, -6.53, -6.49, -6.5, -6.45, -6.41, -6.26, -6.11, -5.9, -5.63, -5.13, -4.68, -4.19, -3.72, -3.21, -2.7, -2.09, -1.48, -0.75, -0.08, 0.62, 1.26, 1.95, 2.59, 3.28, 3.92, 4.61, 5.2, 5.73, 6.29, 7, 7.68, 8.45, 9.13, 9.78, 10.38, 10.99, 11.64, 12.47, 13.23, 14, 14.69, 15.38, 16, 16.64, 17.19, 17.72, 18.19, 18.67, 19.13, 19.69, 20.14, 20.54, 20.86, 21.14, 21.41, 21.78, 22.06, 22.3, 22.51, 22.79, 23.01, 23.29, 23.46, 23.55, 23.63, 23.8, 23.95, 24.25, 24.39, 24.42, 24.34, 24.22, 24.1, 24.08, 24.02, 24.04, 23.98, 23.91, 23.89, 23.95, 23.93, 23.92, 23.88, 23.94, 23.91, 23.82, 23.76, 23.87, 23.91, 23.95, 23.96, 24, 24.04, 24.2, 24.35, 24.61, 24.82, 25.09, 25.3, 25.56, 25.77, 26.05, 26.27, 26.54, 26.76, 27.04, 27.27, 27.55, 27.77, 28.03, 28.25, 28.5, 28.7, 28.95, 29.15, 29.38, 29.57, 29.8, 29.97, 30.19, 30.36, 30.57, 30.72, 30.93, 31.07, 31.24, 31.349, 31.516, 31.677, 31.923, 32.166, 32.449, 32.671, 32.919, 33.15, 33.397, 33.584, 33.804, 33.992, 34.24, 34.466, 34.731, 35.03, 35.4, 35.738, 36.147, 36.546, 36.995, 37.429, 37.879, 38.291, 38.753, 39.204, 39.707, 40.182, 40.706, 41.17, 41.686, 42.227, 42.825, 43.373, 43.959, 44.486, 44.997, 45.477, 45.983, 46.458, 46.997, 47.521, 48.034, 48.535, 49.099, 49.589, 50.102, 50.54, 50.975, 51.382, 51.81, 52.168, 52.572, 52.957, 53.434, 53.789, 54.087],\n first: 1657,\n last: 1984.5\n },\n data: {\n table: [43.4724372, 43.5648351, 43.6736863, 43.7782156, 43.8763273, 43.9562443, 44.0314956, 44.1131788, 44.1982187, 44.2951747, 44.3936471, 44.4840562, 44.5646335, 44.6425099, 44.7385767, 44.8370135, 44.9302138, 44.9986146, 45.0583549, 45.1283911, 45.2063835, 45.2980068, 45.3897017, 45.476138, 45.5632485, 45.6450189, 45.7374593, 45.8283721, 45.9132976, 45.9819705, 46.0407484, 46.1067084, 46.1825041, 46.2788561, 46.3713351, 46.4567207, 46.544486, 46.6310899, 46.7302231, 46.8283588, 46.9247443, 46.9969757, 47.0709148, 47.1450515, 47.2361542, 47.3413241, 47.4319364, 47.5213815, 47.6049313, 47.6837388, 47.7781381, 47.8770756, 47.9687104, 48.0348257, 48.0942021, 48.1608205, 48.2460028, 48.3438529, 48.4355405, 48.5344163, 48.6324506, 48.7293718, 48.8365414, 48.9353232, 49.0318781, 49.1013205, 49.1590844, 49.2285534, 49.3069683, 49.4017939, 49.4945263, 49.5861495, 49.6804907, 49.7602264, 49.8555805, 49.9489224, 50.0346777, 50.1018531, 50.1621723, 50.2260014, 50.2967905, 50.3831254, 50.4598772, 50.5387068, 50.6160484, 50.6865941, 50.7658362, 50.8453698, 50.918672, 50.9761148, 51.0278017, 51.084323, 51.1537928, 51.2318645, 51.306308, 51.3807849, 51.4526292, 51.5160394, 51.5985479, 51.680924, 51.7572854, 51.8133335, 51.8532385, 51.9014358, 51.9603433, 52.0328072, 52.0984957, 52.1667826, 52.2316418, 52.2938376, 52.3679897, 52.4465221, 52.5179552, 52.5751485, 52.6178012, 52.666816, 52.7340036, 52.8055792, 52.8792189, 52.9564838, 53.0444971, 53.126769, 53.2196749, 53.3024139, 53.3746645, 53.4335399, 53.4778015, 53.5299937, 53.5845392, 53.6522628, 53.7255844, 53.7882418, 53.8366625, 53.8829665, 53.9442904, 54.0042478, 54.0536342, 54.085644, 54.1084122, 54.1462942, 54.1913988, 54.2452023, 54.2957622, 54.3427024, 54.3910864, 54.4319877, 54.4897699, 54.545636, 54.597741, 54.6354962, 54.6532352, 54.677594, 54.7173643, 54.7740957, 54.8253023, 54.8712512, 54.916146, 54.9580535, 54.9997186, 55.047571, 55.0911778, 55.1132386, 55.132774, 55.1532423, 55.1898003, 55.2415531, 55.283803, 55.3222105, 55.3612676, 55.406262, 55.4628719, 55.5110909, 55.5523777, 55.5811877, 55.6004372, 55.626202, 55.6656271, 55.7167999, 55.7698097, 55.8196609, 55.8615028, 55.9129883, 55.9663474, 56.0220102, 56.0700015, 56.0939035, 56.110463, 56.1313736, 56.1610839, 56.2068432, 56.2582503, 56.3000349, 56.339902, 56.3789995, 56.4282839, 56.4803947, 56.5352164, 56.5697487, 56.5983102, 56.6328326, 56.6738814, 56.7332116, 56.7971596, 56.8552701, 56.9111378, 56.9754725, 57.0470772, 57.1136128, 57.173831, 57.2226068, 57.259731, 57.3072742, 57.3643368, 57.4334281, 57.5015747, 57.5653127, 57.6333396, 57.6972844, 57.7710774, 57.8407427, 57.9057801, 57.9575663, 57.9974929, 58.0425517, 58.1043319, 58.1679128, 58.2389092, 58.3091659, 58.3833021, 58.4536748, 58.5401438, 58.6227714, 58.6916662, 58.7409628, 58.7836189, 58.8405543, 58.898579, 58.9713678, 59.043837, 59.1218414, 59.2002687, 59.274737, 59.3574134, 59.4433827, 59.5242416, 59.5849787, 59.6343497, 59.6927827, 59.758805, 59.8386448, 59.9110567, 59.9844537, 60.056435, 60.123065, 60.2042185, 60.2803745, 60.3530352, 60.4011891, 60.4439959, 60.4900257, 60.5578054, 60.6324446, 60.7058569, 60.7853482, 60.8663504, 60.9386672, 61.0276757, 61.1103448, 61.1870458, 61.2453891, 61.2881024, 61.3377799, 61.4036165, 61.4760366, 61.5524599, 61.6286593, 61.6845819, 61.743306, 61.8132425, 61.8823203, 61.9496762, 61.9968743, 62.0342938, 62.0714108, 62.1202315, 62.1809508, 62.2382046, 62.2950486, 62.3506479, 62.3995381, 62.475395, 62.5463091, 62.6136031, 62.6570739, 62.6941742, 62.7383271, 62.7926305, 62.8566986, 62.9145607, 62.9658689, 63.0216632, 63.0807052, 63.1461718, 63.2052946, 63.2599441, 63.2844088, 63.2961369, 63.3126092, 63.3421622, 63.3871303, 63.4339302, 63.4673369, 63.4978642, 63.5319327, 63.5679441, 63.6104432, 63.6444291, 63.6641815, 63.6739403, 63.692603, 63.7147066, 63.7518055, 63.792717, 63.8285221, 63.8556871, 63.8803854, 63.9075025, 63.9392787, 63.9690744, 63.9798604, 63.9833077, 63.9938011, 64.0093384, 64.0399621, 64.0670429, 64.0907881, 64.1068077, 64.1282125, 64.1584211, 64.1832722, 64.2093975, 64.2116628, 64.2073173, 64.2115565, 64.2222858, 64.2499625, 64.2760973, 64.2998037, 64.3191858, 64.345013, 64.3734584, 64.3943291, 64.4151156, 64.4132064, 64.4118464, 64.4096536, 64.4167832, 64.43292, 64.4510529, 64.4734276, 64.4893377, 64.5053342, 64.5269189, 64.5470942, 64.5596729, 64.5512293, 64.5370906, 64.5359472, 64.5414947, 64.5543634, 64.5654298, 64.5736111, 64.5891142, 64.6014759, 64.6176147, 64.6374397, 64.6548674, 64.6530021, 64.6379271, 64.637161, 64.6399614, 64.6543152, 64.6723164, 64.6876311, 64.7051905, 64.7313433, 64.7575312, 64.7811143, 64.8000929, 64.7994561, 64.7876424, 64.783095, 64.7920604, 64.8096421, 64.8310888, 64.8451826, 64.8597013, 64.8849929, 64.9174991, 64.9480298, 64.9793881, 64.9894772, 65.0028155, 65.0138193, 65.0371432, 65.0772597, 65.112197, 65.1464034, 65.1832638, 65.2145358, 65.2493713, 65.2920645, 65.3279403, 65.3413366, 65.3451881, 65.34964, 65.3711307, 65.3971998, 65.4295547, 65.4573487, 65.486752, 65.5152012, 65.5449916, 65.5780768, 65.612728, 65.6287505, 65.6370091, 65.6493375, 65.6759928, 65.7096966, 65.746092, 65.7768362, 65.8024614, 65.8236695, 65.8595036, 65.8973008, 65.932291, 65.950911, 65.9534105, 65.962833, 65.9838647, 66.0146733, 66.042049, 66.0699217, 66.0961343, 66.1310116, 66.1682713, 66.2071627, 66.2355846, 66.2408549, 66.2335423, 66.2349107, 66.2441095, 66.2751123, 66.3054334, 66.3245568, 66.3405713, 66.3624433, 66.3957101, 66.428903, 66.4618675, 66.4748837, 66.4751281, 66.4828678, 66.5056165, 66.5382912, 66.5705628, 66.6030198, 66.6339689, 66.6569117, 66.6925011, 66.7288729, 66.7578719, 66.7707625, 66.7740427, 66.7846288, 66.810324, 66.840048, 66.8778601, 66.9069091, 66.944259, 66.9762508, 67.0258126, 67.0716286, 67.1100184, 67.1266401, 67.1331391, 67.145797, 67.17174, 67.2091069, 67.2459812, 67.2810383, 67.3136452, 67.3456968, 67.389003, 67.4318433, 67.4666209, 67.4858459, 67.4989147, 67.5110936, 67.5352658, 67.571103, 67.6070253, 67.6439167, 67.6765272, 67.7116693, 67.7590634, 67.8011542, 67.840213, 67.8606318, 67.8821576, 67.9120101, 67.9546462, 68.0054839, 68.051412, 68.1024205, 68.1577127, 68.2043653, 68.2664507, 68.3188171, 68.3703564, 68.3964356, 68.4094472, 68.4304611, 68.4629791, 68.507818, 68.5537018, 68.5927179, 68.6298107, 68.6670627, 68.7135208, 68.7622755, 68.8032843, 68.8244838, 68.8373427, 68.847693, 68.8688567, 68.9005814, 68.9354999, 68.9676423, 68.9875354, 69.0175527, 69.0499081, 69.0823433, 69.1070034, 69.1134027, 69.1141898, 69.1207203, 69.1355578, 69.16459, 69.1964228, 69.2201632, 69.2451564, 69.2732758, 69.3031979, 69.3325675, 69.3540507, 69.3581722, 69.3441594, 69.3376329, 69.3377424, 69.3432191, 69.3540144, 69.3611554, 69.3751703, 69.3889904, 69.4091639, 69.4264662, 69.4386335, 69.4241335, 69.3921241, 69.3693422, 69.3574782, 69.3593242, 69.3630244, 69.359334, 69.3510133, 69.3537917, 69.3582217, 69.367306, 69.3678649, 69.3514228, 69.3273414, 69.3033273, 69.2892463, 69.2880419, 69.2908014, 69.2944974, 69.2913953, 69.286149, 69.2835153, 69.2815422, 69.2806375, 69.2553511, 69.2125426, 69.1847287, 69.17207, 69.1691531, 69.173303, 69.1698064, 69.1589095, 69.1556275, 69.1672253, 69.1771384],\n first: 1973.0849315068492,\n firstYM: [1973, 2],\n last: 2023.3287671232877,\n lastYM: [2023, 5]\n },\n prediction: {\n table: [67.87818, 67.96817999999999, 68.02817999999999, 68.04818, 68.12818, 68.21817999999999, 68.26818, 68.28818, 68.36818, 68.44818, 68.50818, 68.51818, 68.59818, 68.68818, 68.73818, 68.74817999999999, 68.82818, 68.91817999999999, 68.96817999999999, 68.98818, 69.06818, 69.14818, 69.20818, 69.22818, 69.30818, 69.39818, 69.46817999999999, 69.48818, 69.57818, 69.66817999999999, 69.73818, 69.75818, 69.85817999999999, 69.95818, 70.02817999999999, 70.05818, 70.15818, 70.25818, 70.33818, 70.36818, 70.46817999999999],\n first: 2022,\n last: 2032\n }\n};\nexport default m;\n","/**\n * @copyright 2013 Sonia Keys\n * @copyright 2016 commenthol\n * @license MIT\n * @module deltat\n */\n/**\n * DeltaT: Chapter 10, Dynamical Time and Universal Time.\n *\n * This package uses no functions from the Chapter. Polynoms are from\n * <http://eclipse.gsfc.nasa.gov/SEcat5/deltatpoly.html>, data sets are from\n * <http://maia.usno.navy.mil/ser7/>\n *\n * Functions in this package compute ΔT for various ranges of dates.\n *\n * ΔT = TD - UT1\n *\n * TD = \"Dynamical Time\", which is related to:\n * ET \"Ephermis Time\", an older term.\n * TDB \"Barycentric Dynamical Time\", very close to TD.\n * TDT \"Terrestrial Dynamical Time\", a more correct term.\n * TT \"Terrestrial Time\", a newer and more correct term.\n *\n * UT = \"Universal Time\", which is related (if ambiguously) to GMT \"Greenwich\n * Mean Time\".\n *\n * Terrestrial Time is effectively equal to International Atomic Time (TAI)\n * plus 32.184 seconds exactly: TT = TAI + 32.184\n * The epoch designated \"J2000.0\" is specified as Julian date 2451545.0 TT,\n * or 2000 January 1, 12h TT. This epoch can also be expressed as\n * 2000 January 1, 11:59:27.816 TAI or 2000 January 1, 11:58:55.816 UTC.\n */\n\nimport base from './base.js'\nimport interp from './interpolation.js'\nimport deltat from '../data/deltat.js'\n\n// avoids ciclic import { LeapYearGregorian } from './julian.js'\nfunction LeapYearGregorian (y) {\n return (y % 4 === 0 && y % 100 !== 0) || y % 400 === 0\n}\n\n/**\n * deltaT returns the difference ΔT = TD - UT between Dynamical Time TD and\n * Univeral Time (GMT+12) in seconds\n *\n * Polynoms are from <http://eclipse.gsfc.nasa.gov/SEcat5/deltatpoly.html>\n * and <http://www.staff.science.uu.nl/~gent0113/deltat/deltat_old.htm>\n *\n * @param {Number} dyear - decimal year\n * @returns {Number} ΔT in seconds.\n */\nexport function deltaT (dyear) {\n let ΔT\n if (dyear < -500) {\n ΔT = base.horner((dyear - 1820) * 0.01, -20, 0, 32)\n } else if (dyear < 500) {\n ΔT = base.horner(dyear * 0.01,\n 10583.6, -1014.41, 33.78311, -5.952053, -0.1798452, 0.022174192, 0.0090316521\n )\n } else if (dyear < 1600) {\n ΔT = base.horner((dyear - 1000) * 0.01,\n 1574.2, -556.01, 71.23472, 0.319781, -0.8503463, -0.005050998, 0.0083572073\n )\n } else if (dyear < deltat.historic.first) {\n ΔT = base.horner((dyear - 1600), 120, -0.9808, -0.01532, 1 / 7129)\n } else if (dyear < deltat.data.first) {\n ΔT = interpolate(dyear, deltat.historic)\n } else if (dyear < deltat.data.last - 0.25) { // -0.25 ~= do not consider last 3 months in dataset\n ΔT = interpolateData(dyear, deltat.data)\n } else if (dyear < deltat.prediction.last) {\n ΔT = interpolate(dyear, deltat.prediction)\n } else if (dyear < 2050) {\n ΔT = base.horner((dyear - 2000) / 100, 62.92, 32.217, 55.89)\n } else if (dyear < 2150) {\n ΔT = base.horner((dyear - 1820) / 100, -205.72, 56.28, 32)\n } else {\n const u = (dyear - 1820) / 100\n ΔT = -20 + 32 * u * u\n }\n return ΔT\n}\n\n/**\n * interpolation of dataset\n * @private\n * @param {Number} dyear - julian year\n * @returns {Number} ΔT in seconds.\n */\nfunction interpolate (dyear, data) {\n const d3 = interp.len3ForInterpolateX(dyear,\n data.first, data.last, data.table\n )\n return d3.interpolateX(dyear)\n}\n\n/**\n * interpolation of dataset from finals2000A with is one entry per month\n * linear interpolation over whole dataset is inaccurate as points per month\n * are not equidistant. Therefore points are approximated using 2nd diff. interpolation\n * from current month using the following two points\n *\n * @private\n * @param {Number} dyear - julian year\n * @returns {Number} ΔT in seconds.\n */\nfunction interpolateData (dyear, data) {\n const [fyear, fmonth] = data.firstYM\n const { year, month, first, last } = monthOfYear(dyear)\n const pos = 12 * (year - fyear) + (month - fmonth)\n const table = data.table.slice(pos, pos + 3)\n const d3 = new interp.Len3(first, last, table)\n return d3.interpolateX(dyear)\n}\n\n/**\n * Get month of Year from fraction. Fraction differs at leap years.\n * @private\n * @param {Number} dyear - decimal year\n * @return {Object} `{year: Number, month: Number, first: Number, last}`\n */\nfunction monthOfYear (dyear) {\n // if (!monthOfYear.data) { // memoize yearly fractions per month\n // monthOfYear.data = { 0: [], 1: [] }\n // for (let m = 0; m <= 12; m++) {\n // monthOfYear.data[0][m] = new Calendar(1999, m, 1).toYear() - 1999 // non leap year\n // monthOfYear.data[1][m] = new Calendar(2000, m, 1).toYear() - 2000 // leap year\n // }\n // }\n // console.log(monthOfYear)\n const year = dyear | 0\n const f = dyear - year\n const d = LeapYearGregorian(year) ? 1 : 0\n const data = monthOfYear.data[d]\n\n let month = 12 // TODO loop could be improved\n while (month > 0 && data[month] > f) {\n month--\n }\n const first = year + data[month]\n const last = month < 11 ? year + data[month + 2] : year + 1 + data[(month + 2) % 12]\n return { year, month, first, last }\n}\n/**\n monthOfYear.data[0][m] = new Calendar(1999, m, 1).toYear() - 1999 // non leap year\n monthOfYear.data[1][m] = new Calendar(2000, m, 1).toYear() - 2000 // leap year\n */\nmonthOfYear.data = [\n [ // non leap year\n 0,\n 0,\n 0.08493150684921602,\n 0.16164383561635987,\n 0.24657534246580326,\n 0.3287671232876619,\n 0.4136986301368779,\n 0.4958904109589639,\n 0.5808219178081799,\n 0.6657534246576233,\n 0.747945205479482,\n 0.832876712328698,\n 0.915068493150784\n ],\n [ // leap year\n 0,\n 0,\n 0.08743169398917416,\n 0.1639344262296163,\n 0.24863387978143692,\n 0.3306010928961314,\n 0.4153005464481794,\n 0.49726775956287383,\n 0.5819672131146945,\n 0.6666666666667425,\n 0.7486338797814369,\n 0.8333333333332575,\n 0.9153005464481794\n ]\n]\n\nexport default {\n deltaT\n}\n","/**\n * @copyright 2013 Sonia Keys\n * @copyright 2016 commenthol\n * @license MIT\n * @module moonphase\n */\n/**\n * Moonphase: Chapter 49, Phases of the Moon\n */\n\nimport base from './base.js'\n\nconst { sin, cos } = Math\nconst ck = 1 / 1236.85\nconst D2R = Math.PI / 180\n\n/**\n * mean synodial lunar month\n */\nexport const meanLunarMonth = 29.530588861\n\n// (49.1) p. 349\nfunction mean (T) {\n return base.horner(T, 2451550.09766, 29.530588861 / ck,\n 0.00015437, -0.00000015, 0.00000000073)\n}\n\n/** snap returns k at specified quarter q nearest year y. */\nfunction snap (y, q) {\n const k = (y - 2000) * 12.3685 // (49.2) p. 350\n return Math.floor(k - q + 0.5) + q\n}\n\n/**\n * MeanNew returns the jde of the mean New Moon nearest the given datthis.\n * The mean date is within 0.5 day of the true date of New Moon.\n *\n * @param {Number} year - decimal year\n * @returns {Number} jde\n */\nexport function meanNew (year) {\n return mean(snap(year, 0) * ck)\n}\n\n/**\n * MeanFirst returns the jde of the mean First Quarter Moon nearest the given datthis.\n * The mean date is within 0.5 day of the true date of First Quarter Moon.\n *\n * @param {Number} year - decimal year\n * @returns {Number} jde\n */\nexport function meanFirst (year) {\n return mean(snap(year, 0.25) * ck)\n}\n\n/**\n * MeanFull returns the jde of the mean Full Moon nearest the given datthis.\n * The mean date is within 0.5 day of the true date of Full Moon.\n *\n * @param {Number} year - decimal year\n * @returns {Number} jde\n */\nexport function meanFull (year) {\n return mean(snap(year, 0.5) * ck)\n}\n\n/**\n * MeanLast returns the jde of the mean Last Quarter Moon nearest the given datthis.\n * The mean date is within 0.5 day of the true date of Last Quarter Moon.\n *\n * @param {Number} year - decimal year\n * @returns {Number} jde\n */\nexport function meanLast (year) {\n return mean(snap(year, 0.75) * ck)\n}\n\n/**\n * New returns the jde of New Moon nearest the given date.\n *\n * @param {Number} year - decimal year\n * @returns {Number} jde\n */\nexport function newMoon (year) {\n const m = new Mp(year, 0)\n return mean(m.T) + m.nfc(nc) + m.a()\n}\n\n/**\n * First returns the jde of First Quarter Moon nearest the given datthis.\n *\n * @param {Number} year - decimal year\n * @returns {Number} jde\n */\nexport function first (year) {\n const m = new Mp(year, 0.25)\n return mean(m.T) + m.flc() + m.w() + m.a()\n}\n\n/**\n * Full returns the jde of Full Moon nearest the given datthis.\n *\n * @param {Number} year - decimal year\n * @returns {Number} jde\n */\nexport function full (year) {\n const m = new Mp(year, 0.5)\n return mean(m.T) + m.nfc(fc) + m.a()\n}\n\n/**\n * Last returns the jde of Last Quarter Moon nearest the given datthis.\n *\n * @param {Number} year - decimal year\n * @returns {Number} jde\n */\nexport function last (year) {\n const m = new Mp(year, 0.75)\n return mean(m.T) + m.flc() - m.w() + m.a()\n}\n\nclass Mp {\n constructor (y, q) {\n this.A = new Array(14)\n const k = this.k = snap(y, q)\n const T = this.T = this.k * ck // (49.3) p. 350\n this.E = base.horner(T, 1, -0.002516, -0.0000074)\n this.M = base.horner(T, 2.5534 * D2R, 29.1053567 * D2R / ck,\n -0.0000014 * D2R, -0.00000011 * D2R)\n this.M_ = base.horner(T, 201.5643 * D2R, 385.81693528 * D2R / ck,\n 0.0107582 * D2R, 0.00001238 * D2R, -0.000000058 * D2R)\n this.F = base.horner(T, 160.7108 * D2R, 390.67050284 * D2R / ck,\n -0.0016118 * D2R, -0.00000227 * D2R, 0.000000011 * D2R)\n this.Ω = base.horner(T, 124.7746 * D2R, -1.56375588 * D2R / ck,\n 0.0020672 * D2R, 0.00000215 * D2R)\n this.A[0] = 299.7 * D2R + 0.107408 * D2R * k - 0.009173 * T * T\n this.A[1] = 251.88 * D2R + 0.016321 * D2R * k\n this.A[2] = 251.83 * D2R + 26.651886 * D2R * k\n this.A[3] = 349.42 * D2R + 36.412478 * D2R * k\n this.A[4] = 84.66 * D2R + 18.206239 * D2R * k\n this.A[5] = 141.74 * D2R + 53.303771 * D2R * k\n this.A[6] = 207.17 * D2R + 2.453732 * D2R * k\n this.A[7] = 154.84 * D2R + 7.30686 * D2R * k\n this.A[8] = 34.52 * D2R + 27.261239 * D2R * k\n this.A[9] = 207.19 * D2R + 0.121824 * D2R * k\n this.A[10] = 291.34 * D2R + 1.844379 * D2R * k\n this.A[11] = 161.72 * D2R + 24.198154 * D2R * k\n this.A[12] = 239.56 * D2R + 25.513099 * D2R * k\n this.A[13] = 331.55 * D2R + 3.592518 * D2R * k\n }\n\n // new or full corrections\n nfc (c) {\n const { M, M_, E, F, Ω } = this\n return c[0] * sin(M_) +\n c[1] * sin(M) * E +\n c[2] * sin(2 * M_) +\n c[3] * sin(2 * F) +\n c[4] * sin(M_ - M) * E +\n c[5] * sin(M_ + M) * E +\n c[6] * sin(2 * M) * E * E +\n c[7] * sin(M_ - 2 * F) +\n c[8] * sin(M_ + 2 * F) +\n c[9] * sin(2 * M_ + M) * E +\n c[10] * sin(3 * M_) +\n c[11] * sin(M + 2 * F) * E +\n c[12] * sin(M - 2 * F) * E +\n c[13] * sin(2 * M_ - M) * E +\n c[14] * sin(Ω) +\n c[15] * sin(M_ + 2 * M) +\n c[16] * sin(2 * (M_ - F)) +\n c[17] * sin(3 * M) +\n c[18] * sin(M_ + M - 2 * F) +\n c[19] * sin(2 * (M_ + F)) +\n c[20] * sin(M_ + M + 2 * F) +\n c[21] * sin(M_ - M + 2 * F) +\n c[22] * sin(M_ - M - 2 * F) +\n c[23] * sin(3 * M_ + M) +\n c[24] * sin(4 * M_)\n }\n\n // first or last corrections\n flc () {\n const { M, M_, E, F, Ω } = this\n return -0.62801 * sin(M_) +\n 0.17172 * sin(M) * E +\n -0.01183 * sin(M_ + M) * E +\n 0.00862 * sin(2 * M_) +\n 0.00804 * sin(2 * F) +\n 0.00454 * sin(M_ - M) * E +\n 0.00204 * sin(2 * M) * E * E +\n -0.0018 * sin(M_ - 2 * F) +\n -0.0007 * sin(M_ + 2 * F) +\n -0.0004 * sin(3 * M_) +\n -0.00034 * sin(2 * M_ - M) * E +\n 0.00032 * sin(M + 2 * F) * E +\n 0.00032 * sin(M - 2 * F) * E +\n -0.00028 * sin(M_ + 2 * M) * E * E +\n 0.00027 * sin(2 * M_ + M) * E +\n -0.00017 * sin(Ω) +\n -0.00005 * sin(M_ - M - 2 * F) +\n 0.00004 * sin(2 * M_ + 2 * F) +\n -0.00004 * sin(M_ + M + 2 * F) +\n 0.00004 * sin(M_ - 2 * M) +\n 0.00003 * sin(M_ + M - 2 * F) +\n 0.00003 * sin(3 * M) +\n 0.00002 * sin(2 * M_ - 2 * F) +\n 0.00002 * sin(M_ - M + 2 * F) +\n -0.00002 * sin(3 * M_ + M)\n }\n\n w () {\n const { M, M_, E, F } = this\n return 0.00306 -\n 0.00038 * E * cos(M) +\n 0.00026 * cos(M_) -\n 0.00002 * (cos(M_ - M) -\n cos(M_ + M) -\n cos(2 * F)\n )\n }\n\n // additional corrections\n a () {\n let a = 0\n ac.forEach((c, i) => {\n a += c * sin(this.A[i])\n })\n return a\n }\n}\n\n// new coefficients\nconst nc = [\n -0.4072, 0.17241, 0.01608, 0.01039, 0.00739,\n -0.00514, 0.00208, -0.00111, -0.00057, 0.00056,\n -0.00042, 0.00042, 0.00038, -0.00024, -0.00017,\n -0.00007, 0.00004, 0.00004, 0.00003, 0.00003,\n -0.00003, 0.00003, -0.00002, -0.00002, 0.00002\n]\n\n// full coefficients\nconst fc = [\n -0.40614, 0.17302, 0.01614, 0.01043, 0.00734,\n -0.00515, 0.00209, -0.00111, -0.00057, 0.00056,\n -0.00042, 0.00042, 0.00038, -0.00024, -0.00017,\n -0.00007, 0.00004, 0.00004, 0.00003, 0.00003,\n -0.00003, 0.00003, -0.00002, -0.00002, 0.00002\n]\n\n// additional corrections\nconst ac = [\n 0.000325, 0.000165, 0.000164, 0.000126, 0.00011,\n 0.000062, 0.00006, 0.000056, 0.000047, 0.000042,\n 0.000040, 0.000037, 0.000035, 0.000023\n]\n\nexport default {\n meanLunarMonth,\n meanNew,\n meanFirst,\n meanFull,\n meanLast,\n newMoon,\n new: newMoon, // BACKWARDS-COMPATIBILITY\n first,\n full,\n last\n}\n","/**\n * @copyright 2020 mdmunir\n * @copyright 2020 commenthol\n * @license MIT\n * @module elp\n */\n\n/**\n * Elp Mpp02\n * source ftp://cyrano-se.obspm.fr/pub/2_lunar_solutions/2_elpmpp02/elpmpp02.pdf\n */\n\nimport base, { Coord } from './base.js'\n\nconst SEC2RAD = 1 / 3600 * Math.PI / 180\n\nfunction sum (T, series) {\n const coeffs = []\n Object.keys(series).forEach((x) => {\n coeffs[x] = 0.0\n let y = series[x].length - 1\n for (y; y >= 0; y--) {\n // A, t0, t1, t2, t3, t4\n const row = series[x][y]\n const φ = base.horner(T, row.slice(1))\n coeffs[x] += row[0] * Math.sin(φ)\n }\n })\n return base.horner(T, ...coeffs)\n}\n\n/**\n *\n */\nexport class Moon {\n /**\n * ELP representation of a Moon\n * @constructs Moon\n * @param {object} data - elp data series\n * @example\n * ```js\n * // for use in browser\n * import {data} from 'astronomia.js'\n * const moon = new elp.Moon(data.elpMppDe)\n * ```\n */\n constructor (data) {\n if (typeof data !== 'object') throw new TypeError('need Elp data')\n this.series = data\n }\n\n _calcLBR (T) {\n const L = base.horner(T, this.series.W1) + sum(T, this.series.L) * SEC2RAD\n const B = sum(T, this.series.B) * SEC2RAD\n const R = sum(T, this.series.R)\n return { L: base.pmod(L, 2 * Math.PI), B, R }\n }\n\n /**\n * Position returns rectangular coordinates referred to the inertial mean ecliptic and equinox of J2000.\n * @param {Number} jde - Julian ephemeris day\n * @return {object} rectangular coordinates\n * {Number} x\n * {Number} y\n * {Number} z\n */\n positionXYZ (jde) {\n const T = base.J2000Century(jde)\n const { L, B, R } = this._calcLBR(T)\n\n const x = R * Math.cos(L) * Math.cos(B)\n const y = R * Math.sin(L) * Math.cos(B)\n const z = R * Math.sin(B)\n\n const P = base.horner(T, 0, 0.10180391e-4, 0.47020439e-6, -0.5417367e-9, -0.2507948e-11, 0.463486e-14)\n const Q = base.horner(T, 0, -0.113469002e-3, 0.12372674e-6, 0.12654170e-8, -0.1371808e-11, -0.320334e-14)\n const sq = Math.sqrt(1 - P * P - Q * Q)\n const p11 = 1 - 2 * P * P\n const p12 = 2 * P * Q\n const p13 = 2 * P * sq\n const p21 = 2 * P * Q\n const p22 = 1 - 2 * Q * Q\n const p23 = -2 * Q * sq\n const p31 = -2 * P * sq\n const p32 = 2 * Q * sq\n const p33 = 1 - 2 * P * P - 2 * Q * Q\n\n const result = {\n x: p11 * x + p12 * y + p13 * z,\n y: p21 * x + p22 * y + p23 * z,\n z: p31 * x + p32 * y + p33 * z\n }\n return result\n }\n\n /**\n * Delay effect of light time\n *\n * @param {Number} jde - Julian ephemeris day\n * @returns {Number} Delay time in days\n */\n lightTime (jde) {\n const T = base.J2000Century(jde)\n const R = sum(T, this.series.R)\n return base.lightTime(R / base.AU)\n }\n\n /**\n * Position returns ecliptic position of moon at equinox and ecliptic of date.\n *\n * @param {Number} jde - the date for which positions are desired.\n * @returns {Coord} Results are positions consistent with those elp data,\n * that is, at equinox and ecliptic of date.\n * {Number} lon - geocentric longitude in radians.\n * {Number} lat - geocentric latitude in radians.\n * {Number} range - geocentric range in KM.\n */\n position (jde) {\n const T = base.J2000Century(jde)\n const { L, B, R } = this._calcLBR(T)\n\n // precession\n const pA = base.horner(T, 0, 5029.0966 - 0.29965, 1.1120, 0.000077, -0.00002353) * SEC2RAD\n return new Coord(\n base.pmod(L + pA, 2 * Math.PI),\n B,\n R)\n }\n}\n\n/**\n * Position returns the true geometric position of the moon as ecliptic coordinates.\n *\n * Result computed by Elp theory. Result is at equator and equinox\n * of date in the FK5 frame. It does not include nutation or aberration.\n *\n * @param {Object} elpData\n * @param {Number} jde - Julian ephemeris day\n * @returns {Object}\n * {Number} lon - ecliptic longitude in radians\n * {Number} lat - ecliptic latitude in radians\n * {Number} range - range in KM\n */\nexport function position (elpData, jde) {\n const moon = new Moon(elpData)\n return moon.position(jde)\n}\n\nexport default {\n Moon,\n position\n}\n","/**\n * @copyright 2013 Sonia Keys\n * @copyright 2016 commenthol\n * @license MIT\n * @module eqtime\n */\n/**\n * Eqtime: Chapter 28, Equation of time.\n */\n\nimport base from './base.js'\nimport coord from './coord.js'\nimport nutation from './nutation.js'\nimport solar from './solar.js'\nconst { cos, sin, tan } = Math\n\n/**\n * e computes the \"equation of time\" for the given JDE.\n *\n * Parameter planet must be a planetposition.Planet object for Earth obtained\n * with `new planetposition.Planet('earth')`.\n *\n * @param {Number} jde - Julian ephemeris day\n * @param {planetposition.Planet} earth - VSOP87 planet\n * @returns {Number} equation of time as an hour angle in radians.\n */\nexport function e (jde, earth) {\n const τ = base.J2000Century(jde) * 0.1\n const L0 = l0(τ)\n // code duplicated from solar.ApparentEquatorialVSOP87 so that\n // we can keep Δψ and cε\n const { lon, lat, range } = solar.trueVSOP87(earth, jde)\n const [Δψ, Δε] = nutation.nutation(jde)\n const a = -20.4898 / 3600 * Math.PI / 180 / range\n const λ = lon + Δψ + a\n const ε = nutation.meanObliquity(jde) + Δε\n const eq = new coord.Ecliptic(λ, lat).toEquatorial(ε)\n // (28.1) p. 183\n const E = L0 - 0.0057183 * Math.PI / 180 - eq.ra + Δψ * cos(ε)\n return base.pmod(E + Math.PI, 2 * Math.PI) - Math.PI\n}\n\n/**\n * (28.2) p. 183\n */\nconst l0 = function (τ) {\n return base.horner(τ, 280.4664567, 360007.6982779, 0.03032028,\n 1.0 / 49931, -1.0 / 15300, -1.0 / 2000000) * Math.PI / 180\n}\n\n/**\n * eSmart computes the \"equation of time\" for the given JDE.\n *\n * Result is less accurate that e() but the function has the advantage\n * of not requiring the V87Planet object.\n *\n * @param {Number} jde - Julian ephemeris day\n * @returns {Number} equation of time as an hour angle in radians.\n */\nexport function eSmart (jde) {\n const ε = nutation.meanObliquity(jde)\n const t = tan(ε * 0.5)\n const y = t * t\n const T = base.J2000Century(jde)\n const L0 = l0(T * 0.1)\n const e = solar.eccentricity(T)\n const M = solar.meanAnomaly(T)\n const [sin2L0, cos2L0] = base.sincos(2 * L0)\n const sinM = sin(M)\n // (28.3) p. 185\n return y * sin2L0 - 2 * e * sinM + 4 * e * y * sinM * cos2L0 -\n y * y * sin2L0 * cos2L0 - 1.25 * e * e * sin(2 * M)\n}\n\nexport default {\n e,\n eSmart\n}\n","/**\n * @copyright 2013 Sonia Keys\n * @copyright 2016 commenthol\n * @license MIT\n * @module illum\n */\n/**\n * Illum: Chapter 41, Illuminated Fraction of the Disk and Magnitude of a Planet.\n *\n * Also see functions `illuminated` and `limb` in package base. While this\n * chapter title includes \"illumnated fraction,\" the function for computing\n * illuminated fraction given a phase angle is `base.illuminated`.\n * `base.limb` is the function mentioned at the bottom of p. 283.0\n */\n\nimport base from './base.js'\n\nconst { toDeg } = base\nconst D2R = Math.PI / 180\n\n/**\n * PhaseAngle computes the phase angle of a planet.\n *\n * Argument r is planet's distance to Sun, Δ its distance to Earth, and R\n * the distance from Sun to Earth. All distances in AU.\n *\n * Result in radians.\n */\nexport function phaseAngle (r, Δ, R) { // (r, Δ, R float64) float64\n return Math.acos((r * r + Δ * Δ - R * R) / (2 * r * Δ))\n}\n\n/**\n * Fraction computes the illuminated fraction of the disk of a planet.\n *\n * Argument r is planet's distance to Sun, Δ its distance to Earth, and R\n * the distance from Sun to Earth. All distances in AU.\n */\nexport function fraction (r, Δ, R) { // (r, Δ, R float64) float64\n // (41.2) p. 283\n const s = r + Δ\n return (s * s - R * R) / (4 * r * Δ)\n}\n\n/**\n * PhaseAngle2 computes the phase angle of a planet.\n *\n * Arguments L, B, R are heliocentric ecliptical coordinates of the planet.\n * L0, R0 are longitude and radius for Earth, Δ is distance from Earth to\n * the planet. All distances in AU, angles in radians.\n *\n * The phase angle result is in radians.\n */\nexport function phaseAngle2 (L, B, R, L0, R0, Δ) { // (L, B, R, L0, R0, Δ float64) float64\n // (41.3) p. 283\n return Math.acos((R - R0 * Math.cos(B) * Math.cos(L - L0)) / Δ)\n}\n\n/**\n * PhaseAngle3 computes the phase angle of a planet.\n *\n * Arguments L, B are heliocentric ecliptical longitude and latitude of the\n * planet. x, y, z are cartesian coordinates of the planet, Δ is distance\n * from Earth to the planet. All distances in AU, angles in radians.\n *\n * The phase angle result is in radians.\n */\nexport function phaseAngle3 (L, B, x, y, z, Δ) { // (L, B, x, y, z, Δ float64) float64\n // (41.4) p. 283\n const [sL, cL] = base.sincos(L)\n const [sB, cB] = base.sincos(B)\n return Math.acos((x * cB * cL + y * cB * sL + z * sB) / Δ)\n}\n\n/**\n * FractionVenus computes an approximation of the illumanted fraction of Venus.\n */\nexport function fractionVenus (jde) { // (jde float64) float64\n const T = base.J2000Century(jde)\n const V = (261.51 + 22518.443 * T) * D2R\n const M = (177.53 + 35999.05 * T) * D2R\n const N = (50.42 + 58517.811 * T) * D2R\n const W = V + (1.91 * Math.sin(M) + 0.78 * Math.sin(N)) * D2R\n const Δ = Math.sqrt(1.52321 + 1.44666 * Math.cos(W))\n const s = 0.72333 + Δ\n return (s * s - 1) / 2.89332 / Δ\n}\n\n/**\n * Mercury computes the visual magnitude of Mercury.\n * Formula by G. Müller\n *\n * Argument r is the planet's distance from the Sun, Δ the distance from Earth,\n * and i the phase angle in radians.\n */\nexport function mercury (r, Δ, i) { // (r, Δ, i float64) float64\n const s = toDeg(i) - 50\n return 1.16 + 5 * Math.log10(r * Δ) + (0.02838 + 0.0001023 * s) * s\n}\n\n/**\n * Venus computes the visual magnitude of Venus.\n * Formula by G. Müller\n *\n * Argument r is the planet's distance from the Sun, Δ the distance from Earth,\n * and i the phase angle in radians.\n */\nexport function venus (r, Δ, i) { // (r, Δ, i float64) float64\n const iDeg = toDeg(i)\n return -4 + 5 * Math.log10(r * Δ) + (0.01322 + 0.0000004247 * iDeg * iDeg) * iDeg\n}\n\n/**\n * Mars computes the visual magnitude of Mars.\n * Formula by G. Müller\n *\n * Argument r is the planet's distance from the Sun, Δ the distance from Earth,\n * and i the phase angle in radians.\n */\nexport function mars (r, Δ, i) { // (r, Δ, i float64) float64\n return -1.3 + 5 * Math.log10(r * Δ) + 0.01486 * toDeg(i)\n}\n\n/**\n * Jupiter computes the visual magnitude of Jupiter.\n * Formula by G. Müller\n * Effect of phase not considered\n *\n * Argument r is the planet's distance from the Sun, Δ the distance from Earth.\n */\nexport function jupiter (r, Δ) { // (r, Δ float64) float64\n return -8.93 + 5 * Math.log10(r * Δ)\n}\n\n/**\n * Saturn computes the visual magnitude of Saturn.\n * Formula by G. Müller\n * Sun's altitude above the plane of the ring is not considered.\n *\n * Argument r is the planet's distance from the Sun, Δ the distance from Earth.\n * B is the Saturnicentric latitude of the Earth referred to the plane of\n * Saturn's ring.\n * ΔU (in radians) is the difference between the Saturnicentric longitudes\n * of the Sun and the Earth, measured in the plane of the ring.\n * You can use saturndisk.Disk() to obtain B and ΔU.\n */\nexport function saturn (r, Δ, B, ΔU) { // (r, Δ, B, ΔU float64) float64\n const s = Math.sin(Math.abs(B))\n return -8.68 + 5 * Math.log10(r * Δ) + 0.044 * Math.abs(toDeg(ΔU)) - 2.6 * s + 1.25 * s * s\n}\n\n/**\n * Uranus computes the visual magnitude of Uranus.\n * Formula by G. Müller\n *\n * Argument r is the planet's distance from the Sun, Δ the distance from Earth.\n */\nexport function uranus (r, Δ) { // (r, Δ float64) float64\n return -6.85 + 5 * Math.log10(r * Δ)\n}\n\n/**\n * Neptune computes the visual magnitude of Neptune.\n * Formulae by G. Müller\n *\n * Argument r is the planet's distance from the Sun, Δ the distance from Earth.\n */\nexport function neptune (r, Δ) { // (r, Δ float64) float64\n return -7.05 + 5 * Math.log10(r * Δ)\n}\n\n/**\n * Mercury84 computes the visual magnitude of Mercury.\n * The formula is that adopted in \"Astronomical Almanac\" in 1984.0\n *\n * Argument r is the planet's distance from the Sun, Δ the distance from Earth,\n * and i the phase angle in radians.\n */\nexport function mercury84 (r, Δ, i) { // (r, Δ, i float64) float64\n return base.horner(toDeg(i), -0.42 + 5 * Math.log10(r * Δ),\n 0.038, -0.000273, 0.000002)\n}\n\n/**\n * Venus84 computes the visual magnitude of Venus.\n * The formula is that adopted in \"Astronomical Almanac\" in 1984.0\n *\n * Argument r is the planet's distance from the Sun, Δ the distance from Earth,\n * and i the phase angle in radians.\n */\nexport function venus84 (r, Δ, i) { // (r, Δ, i float64) float64\n return base.horner(toDeg(i), -4.4 + 5 * Math.log10(r * Δ),\n 0.0009, 0.000239, -0.00000065)\n}\n\n/**\n * Mars84 computes the visual magnitude of Mars.\n * The formula is that adopted in \"Astronomical Almanac\" in 1984.0\n *\n * Argument r is the planet's distance from the Sun, Δ the distance from Earth,\n * and i the phase angle in radians.\n */\nexport function mars84 (r, Δ, i) { // (r, Δ, i float64) float64\n return -1.52 + 5 * Math.log10(r * Δ) + 0.016 * toDeg(i)\n}\n\n/**\n * Jupiter84 computes the visual magnitude of Jupiter.\n * The formula is that adopted in \"Astronomical Almanac\" in 1984.0\n *\n * Argument r is the planet's distance from the Sun, Δ the distance from Earth,\n * and i the phase angle in radians.\n */\nexport function jupiter84 (r, Δ, i) { // (r, Δ, i float64) float64\n return -9.4 + 5 * Math.log10(r * Δ) + 0.005 * toDeg(i)\n}\n\n/**\n * Saturn84 computes the visual magnitude of Saturn.\n * The formula is that adopted in \"Astronomical Almanac\" in 1984.0\n *\n * Argument r is the planet's distance from the Sun, Δ the distance from Earth.\n * B is the Saturnicentric latitude of the Earth referred to the plane of\n * Saturn's ring.\n * ΔU (in radians) is the difference between the Saturnicentric longitudes\n * of the Sun and the Earth, measured in the plane of the ring.\n */\nexport function saturn84 (r, Δ, B, ΔU) { // (r, Δ, B, ΔU float64) float64\n const s = Math.sin(Math.abs(B))\n return -8.88 + 5 * Math.log10(r * Δ) + 0.044 * Math.abs(toDeg(ΔU)) - 2.6 * s + 1.25 * s * s\n}\n\n/**\n * Uranus84 computes the visual magnitude of Uranus.\n * The formula is that adopted in \"Astronomical Almanac\" in 1984.0\n *\n * Argument r is the planet's distance from the Sun, Δ the distance from Earth.\n */\nexport function uranus84 (r, Δ) { // (r, Δ float64) float64\n return -7.19 + 5 * Math.log10(r * Δ)\n}\n\n/**\n * Neptune84 computes the visual magnitude of Neptune.\n * The formula is that adopted in \"Astronomical Almanac\" in 1984.0\n *\n * Argument r is the planet's distance from the Sun, Δ the distance from Earth.\n */\nexport function neptune84 (r, Δ) { // (r, Δ float64) float64\n return -6.87 + 5 * Math.log10(r * Δ)\n}\n\n/**\n * Pluto84 computes the visual magnitude of Pluto.\n * The formula is that adopted in \"Astronomical Almanac\" in 1984.0\n *\n * Argument r is the planet's distance from the Sun, Δ the distance from Earth.\n */\nexport function pluto84 (r, Δ) { // (r, Δ float64) float64\n return -1 + 5 * Math.log10(r * Δ)\n}\n\nexport default {\n phaseAngle,\n fraction,\n phaseAngle2,\n phaseAngle3,\n fractionVenus,\n mercury,\n venus,\n mars,\n jupiter,\n saturn,\n uranus,\n neptune,\n mercury84,\n venus84,\n mars84,\n jupiter84,\n saturn84,\n uranus84,\n neptune84,\n pluto84\n}\n","/**\n * @copyright 2013 Sonia Keys\n * @copyright 2016 commenthol\n * @license MIT\n * @module julian\n */\n/**\n * Julian: Chapter 7, Julian day.\n */\n\nimport base from './base.js'\nimport sexa from './sexagesimal.js'\nimport deltat from './deltat.js'\n\nconst int = Math.trunc\n\n/** 1582-10-05 Julian Date is 1st Gregorian Date (1582-10-15) */\nexport const GREGORIAN0JD = 2299160.5\n\nconst DAYS_OF_YEAR = [0, 0, 31, 59, 90, 120, 151, 181, 212, 243, 273, 304, 334]\nconst SECS_OF_DAY = 86400 // 24 * 60 * 60\n\n/**\n * Base class for CalendarJulian and CalendarGregorian\n * Respects the start of the Gregorian Calendar at `GREGORIAN0JD`\n */\nexport class Calendar {\n /**\n * @param {number|Date} [year] - If `Date` is given then year, month, day is taken from that. Shortcut to `new Calendar().fromDate(date)`\n * @param {number} [month]\n * @param {number} [day]\n */\n constructor (year, month = 1, day = 1) {\n if (year instanceof Date) {\n this.fromDate(year)\n } else {\n this.year = year\n this.month = month\n this.day = day\n }\n }\n\n getDate () {\n return {\n year: this.year,\n month: this.month,\n day: Math.floor(this.day)\n }\n }\n\n getTime () {\n const t = new sexa.Time(this.day * SECS_OF_DAY)\n const [neg, h, m, _s] = t.toHMS() // eslint-disable-line no-unused-vars\n let [s, ms] = base.modf(_s)\n ms = Math.trunc(ms * 1000)\n return {\n hour: h % 24,\n minute: m,\n second: s,\n millisecond: ms\n }\n }\n\n toISOString () {\n const { year, month, day } = this.getDate()\n const { hour, minute, second, millisecond } = this.getTime()\n return `${pad(year, 4)}-${pad(month)}-${pad(day)}T` +\n `${pad(hour)}:${pad(minute)}:${pad(second)}.${pad(millisecond, 3)}Z`\n }\n\n isGregorian () {\n return isCalendarGregorian(this.year, this.month, this.day)\n }\n\n /**\n * Note: Take care for dates < GREGORIAN0JD as `date` is always within the\n * proleptic Gregorian Calender\n * @param {Date} date - proleptic Gregorian date\n */\n fromDate (date) {\n this.year = date.getUTCFullYear()\n this.month = date.getUTCMonth() + 1\n const day = date.getUTCDate()\n const hour = date.getUTCHours()\n const minute = date.getUTCMinutes()\n const second = date.getUTCSeconds()\n const ms = date.getMilliseconds()\n this.day = day + (hour + ((minute + ((second + ms / 1000) / 60)) / 60)) / 24\n return this\n }\n\n /**\n * Note: Take care for dates < GREGORIAN0JD as `date` is always within the\n * proleptic Gregorian Calender\n * @returns {Date} proleptic Gregorian date\n */\n toDate () {\n const [day, fhour] = base.modf(this.day)\n const [hour, fminute] = base.modf(fhour * 24)\n const [minute, fsecond] = base.modf(fminute * 60)\n const [second, fms] = base.modf(fsecond * 60)\n const date = new Date(Date.UTC(\n this.year, this.month - 1, day, hour, minute, second, Math.round(fms * 1000)\n ))\n date.setUTCFullYear(this.year)\n return date\n }\n\n /**\n * converts a calendar date to decimal year\n * @returns {number} decimal year\n */\n toYear () {\n const [d, f] = base.modf(this.day) // eslint-disable-line no-unused-vars\n const n = this.dayOfYear() - 1 + f\n const days = this.isLeapYear() ? 366 : 365\n const decYear = this.year + (n / days)\n return decYear\n }\n\n /**\n * converts a decimal year to a calendar date\n * @param {number} year - decimal year\n */\n fromYear (year) {\n const [y, f] = base.modf(year)\n this.year = y\n const days = this.isLeapYear() ? 366 : 365\n const dayOfYear = base.round(f * days, 5)\n let m = 12\n while (m > 0 && DAYS_OF_YEAR[m] > dayOfYear) {\n m--\n }\n this.month = m\n this.day = 1 + dayOfYear - DAYS_OF_YEAR[this.month]\n return this\n }\n\n isLeapYear () {\n if (this.isGregorian()) {\n return LeapYearGregorian(this.year)\n } else {\n return LeapYearJulian(this.year)\n }\n }\n\n toJD () {\n return CalendarToJD(this.year, this.month, this.day, !this.isGregorian())\n }\n\n fromJD (jd) {\n const isJulian = !isJDCalendarGregorian(jd)\n const { year, month, day } = JDToCalendar(jd, isJulian)\n this.year = year\n this.month = month\n this.day = day\n return this\n }\n\n fromJDE (jde) {\n this.fromJD(jde)\n const dT = deltat.deltaT(this.toYear()) // in seconds\n this.day -= dT / 86400\n return this\n }\n\n toJDE () {\n const dT = deltat.deltaT(this.toYear()) // in seconds\n this.day += dT / 86400\n return this.toJD()\n }\n\n /**\n * set date to midnight UTC\n */\n midnight () {\n this.day = Math.floor(this.day)\n return this\n }\n\n /**\n * set date to noon UTC\n */\n noon () {\n this.day = Math.floor(this.day) + 0.5\n return this\n }\n\n /**\n * @param {Boolean} td - if `true` calendar instance is in TD; date gets converted to UT\n * true - `UT = TD - ΔT`\n * false - `TD = UT + ΔT`\n */\n deltaT (td) {\n const dT = deltat.deltaT(this.toYear()) // in seconds\n if (td) {\n this.day -= dT / 86400\n } else {\n this.day += dT / 86400\n }\n return this\n }\n\n dayOfWeek () {\n return DayOfWeek(this.toJD())\n }\n\n dayOfYear () {\n if (this.isGregorian()) {\n return DayOfYearGregorian(this.year, this.month, this.day)\n } else {\n return DayOfYearJulian(this.year, this.month, this.day)\n }\n }\n}\n\nexport class CalendarJulian extends Calendar {\n toJD () {\n return CalendarJulianToJD(this.year, this.month, this.day)\n }\n\n fromJD (jd) {\n const { year, month, day } = JDToCalendarJulian(jd)\n this.year = year\n this.month = month\n this.day = day\n return this\n }\n\n isLeapYear () {\n return LeapYearJulian(this.year)\n }\n\n dayOfYear () {\n return DayOfYearJulian(this.year, this.month, this.day)\n }\n\n /**\n * toGregorian converts a Julian calendar date to a year, month, and day\n * in the Gregorian calendar.\n * @returns {CalendarGregorian}\n */\n toGregorian () {\n const jd = this.toJD()\n return new CalendarGregorian().fromJD(jd)\n }\n}\n\nexport class CalendarGregorian extends Calendar {\n toJD () {\n return CalendarGregorianToJD(this.year, this.month, this.day)\n }\n\n fromJD (jd) {\n const { year, month, day } = JDToCalendarGregorian(jd)\n this.year = year\n this.month = month\n this.day = day\n return this\n }\n\n isLeapYear () {\n return LeapYearGregorian(this.year)\n }\n\n dayOfYear () {\n return DayOfYearGregorian(this.year, this.month, this.day)\n }\n\n /*\n * toJulian converts a Gregorian calendar date to a year, month, and day\n * in the Julian calendar.\n * @returns {CalendarJulian}\n */\n toJulian () {\n const jd = this.toJD()\n return new CalendarJulian().fromJD(jd)\n }\n}\n\n// -----------------------------------------------------------------------------\n\n/**\n * base conversion from calendar date to julian day\n */\nexport function CalendarToJD (y, m, d, isJulian) {\n let b = 0\n if (m < 3) {\n y--\n m += 12\n }\n if (!isJulian) {\n const a = base.floorDiv(y, 100)\n b = 2 - a + base.floorDiv(a, 4)\n }\n // (7.1) p. 61\n const jd = (base.floorDiv(36525 * (int(y + 4716)), 100)) +\n (base.floorDiv(306 * (m + 1), 10) + b) + d - 1524.5\n return jd\n}\n\n/**\n * CalendarGregorianToJD converts a Gregorian year, month, and day of month\n * to Julian day.\n *\n * Negative years are valid, back to JD 0. The result is not valid for\n * dates before JD 0.\n * @param {number} y - year (int)\n * @param {number} m - month (int)\n * @param {number} d - day (float)\n * @returns {number} jd - Julian day (float)\n */\nexport function CalendarGregorianToJD (y, m, d) {\n return CalendarToJD(y, m, d, false)\n}\n\n/**\n * CalendarJulianToJD converts a Julian year, month, and day of month to Julian day.\n *\n * Negative years are valid, back to JD 0. The result is not valid for\n * dates before JD 0.\n * @param {number} y - year (int)\n * @param {number} m - month (int)\n * @param {number} d - day (float)\n * @returns {number} jd - Julian day (float)\n */\nexport function CalendarJulianToJD (y, m, d) {\n return CalendarToJD(y, m, d, true)\n}\n\n/**\n * LeapYearJulian returns true if year y in the Julian calendar is a leap year.\n * @param {number} y - year (int)\n * @returns {boolean} true if leap year in Julian Calendar\n */\nexport function LeapYearJulian (y) {\n return y % 4 === 0\n}\n\n/**\n * LeapYearGregorian returns true if year y in the Gregorian calendar is a leap year.\n * @param {number} y - year (int)\n * @returns {boolean} true if leap year in Gregorian Calendar\n */\nexport function LeapYearGregorian (y) {\n return (y % 4 === 0 && y % 100 !== 0) || y % 400 === 0\n}\n\n/**\n * JDToCalendar returns the calendar date for the given jd.\n *\n * Note that this function returns a date in either the Julian or Gregorian\n * Calendar, as appropriate.\n * @param {number} jd - Julian day (float)\n * @param {boolean} isJulian - set true for Julian Calendar, otherwise Gregorian is used\n * @returns {object} `{ (int) year, (int) month, (float) day }`\n */\nexport function JDToCalendar (jd, isJulian) {\n const [z, f] = base.modf(jd + 0.5)\n let a = z\n if (!isJulian) {\n const α = base.floorDiv(z * 100 - 186721625, 3652425)\n a = z + 1 + α - base.floorDiv(α, 4)\n }\n const b = a + 1524\n const c = base.floorDiv(b * 100 - 12210, 36525)\n const d = base.floorDiv(36525 * c, 100)\n const e = int(base.floorDiv((b - d) * 1e4, 306001))\n // compute return values\n let year\n let month\n const day = (int(b - d) - base.floorDiv(306001 * e, 1e4)) + f\n if (e === 14 || e === 15) {\n month = e - 13\n } else {\n month = e - 1\n }\n if (month < 3) {\n year = int(c) - 4715\n } else {\n year = int(c) - 4716\n }\n return { year, month, day }\n}\n\n/**\n * JDToCalendarGregorian returns the calendar date for the given jd in the Gregorian Calendar.\n *\n * @param {number} jd - Julian day (float)\n * @returns {object} `{ (int) year, (int) month, (float) day }`\n */\nexport function JDToCalendarGregorian (jd) {\n return JDToCalendar(jd, false)\n}\n\n/**\n * JDToCalendarJulian returns the calendar date for the given jd in the Julian Calendar.\n *\n * @param {number} jd - Julian day (float)\n * @returns {object} { (int) year, (int) month, (float) day }\n */\nexport function JDToCalendarJulian (jd) {\n return JDToCalendar(jd, true)\n}\n\n/**\n * isJDCalendarGregorian tests if Julian day `jd` falls into the Gregorian calendar\n * @param {number} jd - Julian day (float)\n * @returns {boolean} true for Gregorian, false for Julian calendar\n */\nexport function isJDCalendarGregorian (jd) {\n return (jd >= GREGORIAN0JD)\n}\n\n/**\n * isCalendarGregorian tests if date falls into the Gregorian calendar\n * @param {number} year - julian/gregorian year\n * @param {number} [month] - month of julian/gregorian year\n * @param {number} [day] - day of julian/gregorian year\n * @returns {boolean} true for Gregorian, false for Julian calendar\n */\nexport function isCalendarGregorian (year, month = 1, day = 1) {\n return (year > 1582 ||\n (year === 1582 && month > 10) ||\n (year === 1582 && month === 10 && day >= 15)\n )\n}\n\n/**\n * JDToDate converts a Julian day `jd` to a Date Object (Gregorian Calendar)\n *\n * Note: Javascript uses the the ISO-8601 calendar, which is a proleptic Gregorian\n * calendar, i.e. it acts as if this calendar was always in effect, even before\n * its year of introduction in 1582. Therefore dates between 1582-10-05 and\n * 1582-10-14 exists.\n *\n * @param {number} jd - Julian day (float)\n * @returns {Date}\n */\nexport function JDToDate (jd) {\n return new CalendarGregorian().fromJD(jd).toDate()\n}\n\n/**\n * DateToJD converts a proleptic Gregorian Date into a Julian day `jd`\n * @param {Date} date\n * @returns {number} jd - Julian day (float)\n */\nexport function DateToJD (date) {\n return new CalendarGregorian().fromDate(date).toJD()\n}\n\n/**\n * JDEToDate converts a Julian ephemeris day `jde` to a Date Object (Gregorian Calendar)\n * To obtain \"Universal Time\" (UT) from \"Dynamical Time\" (TD) the correction ΔT (in seconds) gets applied\n * ```\n * UT = TD - ΔT\n * ```\n * If your use case does not require such accuracy converting `jde` using `JDToDate` is fine.\n *\n * Note: Javascript uses the the ISO-8601 calendar, which is a proleptic Gregorian\n * calendar, i.e. it acts as if this calendar was always in effect, even before\n * its year of introduction in 1582. Therefore dates between 1582-10-05 and\n * 1582-10-14 exists.\n *\n * @param {number} jde - Julian ephemeris day\n * @returns {Date} Javascript Date Object\n */\nexport function JDEToDate (jde) {\n return new CalendarGregorian().fromJDE(jde).toDate()\n}\n\n/**\n * DateToJDE converts a Date Object (Gregorian Calendar) to a Julian ephemeris day `jde`\n * To obtain \"Dynamical Time\" (TD) from \"Universal Time\" (UT) the correction ΔT (in seconds) gets applied\n * ```\n * TD = UT + ΔT\n * ```\n * If your use case does not require such accuracy converting `Date` using `DateToJD` is fine.\n *\n * @param {Date} date - Javascript Date Object\n * @returns {number} jde - Julian ephemeris day (float)\n */\nexport function DateToJDE (date) {\n return new CalendarGregorian().fromDate(date).toJDE()\n}\n\n/**\n * converts Modified Julian Day `mjd` to Julian Day `jd`\n * @param {Number} mjd - Modified Julian Day\n * @returns {Number} jd - Julian Day\n */\nexport function MJDToJD (mjd) {\n return mjd + base.JMod\n}\n\n/**\n * converts Julian Day `jd` to Modified Julian Day `mjd`\n * The MJD sometimes appear when mentioning orbital elements of artificial satellites.\n * Contrary to JD the MJD begins at Greenwich mean midnight.\n * @param {Number} jd - Julian Day\n * @returns {Number} mjd - Modified Julian Day MJD\n */\nexport function JDToMJD (jd) {\n return jd - base.JMod\n}\n\n/**\n * DayOfWeek determines the day of the week for a given JD.\n *\n * The value returned is an integer in the range 0 to 6, where 0 represents\n * Sunday. This is the same convention followed in the time package of the\n * Javascript standard library.\n * @param {number} jd - Julian day (float)\n * @returns {number} (int) 0 == sunday; ...; 6 == saturday\n */\nexport function DayOfWeek (jd) {\n return int(jd + 1.5) % 7\n}\n\n/**\n * DayOfYearGregorian computes the day number within the year of the Gregorian\n * calendar.\n * @param {number} y - year (int)\n * @param {number} m - month (int)\n * @param {number} d - day (float)\n * @returns {number} day of year\n */\nexport function DayOfYearGregorian (y, m, d) {\n return DayOfYear(y, m, int(d), LeapYearGregorian(y))\n}\n\n/**\n * DayOfYearJulian computes the day number within the year of the Julian\n * calendar.\n * @param {number} y - year (int)\n * @param {number} m - month (int)\n * @param {number} d - day (float)\n * @returns {number} day of year\n */\nexport function DayOfYearJulian (y, m, d) {\n return DayOfYear(y, m, int(d), LeapYearJulian(y))\n}\n\n/**\n * DayOfYear computes the day number within the year.\n *\n * This form of the function is not specific to the Julian or Gregorian\n * calendar, but you must tell it whether the year is a leap year.\n * @param {number} y - year (int)\n * @param {number} m - month (int)\n * @param {number} d - day (float)\n * @param {boolean} leap - set `true` if `y` is leap year\n * @returns {number} day of year\n */\nexport function DayOfYear (y, m, d, leap) {\n let k = 0\n if (leap && m > 1) {\n k = 1\n }\n return k + DAYS_OF_YEAR[m] + int(d)\n}\n\n/**\n * DayOfYearToCalendar returns the calendar month and day for a given\n * day of year and leap year status.\n * @param {number} n - day of year (int)\n * @param {boolean} leap - set `true` if `y` is leap year\n * @returns {object} `{ (int) month, (float) day }`\n */\nexport function DayOfYearToCalendar (n, leap) {\n let month\n let k = 0\n if (leap) {\n k = 1\n }\n for (month = 1; month <= 12; month++) {\n if (k + DAYS_OF_YEAR[month] > n) {\n month = month - 1\n break\n }\n }\n const day = n - k - DAYS_OF_YEAR[month]\n return { month, day }\n}\n\n/**\n * DayOfYearToCalendarGregorian returns the calendar month and day for a given\n * day of year.\n * @param {number} year\n * @param {number} n - day of year (int)\n * @returns {CalendarGregorian} { (int) year, (int) month, (float) day }\n */\nexport function DayOfYearToCalendarGregorian (year, n) {\n const { month, day } = DayOfYearToCalendar(n, LeapYearGregorian(year))\n return new CalendarGregorian(year, month, day)\n}\n\n/**\n * DayOfYearToCalendarJulian returns the calendar month and day for a given\n * day of year.\n * @param {number} year\n * @param {number} n - day of year (int)\n * @returns {CalendarJulian} { (int) year, (int) month, (float) day }\n */\nexport function DayOfYearToCalendarJulian (year, n) {\n const { month, day } = DayOfYearToCalendar(n, LeapYearJulian(year))\n return new CalendarJulian(year, month, day)\n}\n\nfunction pad (num, len) {\n len = len || 2\n const neg = num < 0 ? '-' : ''\n num = Math.abs(num)\n const padded = ('0000' + num)\n return neg + padded.substr(padded.length - len, len)\n}\n\nexport default {\n GREGORIAN0JD,\n Calendar,\n CalendarJulian,\n CalendarGregorian,\n CalendarToJD,\n CalendarGregorianToJD,\n CalendarJulianToJD,\n LeapYearJulian,\n LeapYearGregorian,\n JDToCalendar,\n JDToCalendarGregorian,\n JDToCalendarJulian,\n isJDCalendarGregorian,\n isCalendarGregorian,\n JDToDate,\n DateToJD,\n JDEToDate,\n DateToJDE,\n MJDToJD,\n JDToMJD,\n DayOfWeek,\n DayOfYearGregorian,\n DayOfYearJulian,\n DayOfYear,\n DayOfYearToCalendar,\n DayOfYearToCalendarGregorian,\n DayOfYearToCalendarJulian\n}\n","/**\n * @copyright 2013 Sonia Keys\n * @copyright 2016 commenthol\n * @license MIT\n * @module jm\n */\n/**\n * JM: Chapter 9, Jewish and Moslem Calendars.\n *\n * The Jewish calendar routines are implemented as a monolithic function,\n * because computations of the various results build off of common\n * intermediate results.\n *\n * The Moslem calendar routines break down nicely into some separate functions.\n *\n * Included in these are two functions that convert between Gregorian and\n * Julian calendar days without going through Julian day (JD). As such,\n * I suppose, these or similar routines are not in chapter 7, Julian Day.\n * Package base might also be a suitable place for these, but I'm not sure\n * they are used anywhere else in the book. Anyway, they have the quirk\n * that they are not direct inverses: JulianToGregorian returns the day number\n * of the day of the Gregorian year, but GregorianToJulian wants the Gregorian\n * month and day of month as input.\n */\n\nimport base from './base.js'\nimport julian from './julian.js'\n\nconst int = Math.trunc\n\n/**\n * JewishCalendar returns interesting dates and facts about a given year.\n *\n * Input is a Julian or Gregorian year.\n *\n * Outputs:\n * A: (int) Year number in the Jewish Calendar\n * mP: (int) Month number of Pesach.\n * dP: (int) Day number of Pesach.\n * mNY: (int) Month number of the Jewish new year.\n * dNY: (int) Day number of the Jewish new year.\n * months: (int) Number of months in this year.\n * days: (int) Number of days in this year.\n */\nexport function JewishCalendar (y) {\n const A = y + 3760\n const D = bigD(y)\n let mP = 3\n let dP = D\n if (dP > 31) {\n mP++\n dP -= 31\n }\n // A simplification of Meeus's rule to add 163 days. Months of Pesach\n // are either March or April with D based off of March. Months of New\n // year are either September or August so D+163-(days from March to\n // September == 184) = D-21 must be based off of September.\n let mNY = 9\n let dNY = D - 21\n if (dNY > 30) {\n mNY++\n dNY -= 30\n }\n let months = 12\n switch (A % 19) {\n case 0:\n case 3:\n case 6:\n case 8:\n case 11:\n case 14:\n case 17:\n months++\n break\n }\n // Similarly, A simplification of Meeus's rule to take the difference\n // in calendar days from NY of one year to NY of the next. NY is based\n // on D, so difference in D is difference in day numbers of year. Result\n // is sum of this number and the number of days in the Western calandar\n // year.\n const y1 = y + 1\n let lf = julian.LeapYearGregorian\n if (y1 < 1583) {\n lf = julian.LeapYearJulian\n }\n let days = 365\n if (lf(y1)) {\n days++\n }\n days += bigD(y1) - D\n return [A, mP, dP, mNY, dNY, months, days]\n}\n\nconst bigD = function (y) { // (y int) int\n const C = base.floorDiv(y, 100)\n // const S int\n let S = 0\n if (y >= 1583) {\n S = int(base.floorDiv(3 * C - 5, 4))\n }\n const a = (12 * y + 12) % 19\n const b = y % 4\n const Q = -1.904412361576 + 1.554241796621 * (a) + 0.25 * (b) -\n 0.003177794022 * (y) + (S)\n const fq = Math.floor(Q)\n const iq = int(fq)\n const j = (iq + 3 * y + 5 * b + 2 - S) % 7\n const r = Q - fq\n // const D int\n let D\n if (j === 2 || j === 4 || j === 6) {\n D = iq + 23\n } else if (j === 1 && a > 6 && r >= 0.63287037) {\n D = iq + 24\n } else if (j === 0 && a > 11 && r >= 0.897723765) {\n D = iq + 23\n } else {\n D = iq + 22\n }\n return int(D)\n}\n\n/**\n * MoslemToJD converts a Moslem calendar date to a Julian Day.\n * @param {Number} y - year in moslem calendar\n * @param {Number} m - month\n * @param {Number} d - day\n * @returns {Number} jd - Julian day\n */\nexport function MoslemToJD (y, m, d) { // (y, m, d int) (jY, jDN int)\n const N = d + base.floorDiv(295001 * (m - 1) + 9900, 10000)\n const Q = base.floorDiv(y, 30)\n const R = y % 30\n const A = base.floorDiv(11 * R + 3, 30)\n const W = 404 * Q + 354 * R + 208 + A\n const Q1 = base.floorDiv(W, 1461)\n const Q2 = W % 1461\n const G = 621 + 28 * Q + 4 * Q1\n const K = base.floorDiv(Q2 * 10000, 3652422)\n const E = base.floorDiv(3652422 * K, 10000)\n let J = Q2 - E + N - 1\n let X = G + K\n if (J > 366 && X % 4 === 0) {\n J -= 366\n X++\n } else if (J > 365 && X % 4 > 0) {\n J -= 365\n X++\n }\n const jd = base.floorDiv(36525 * (X - 1), 100) + 1721423 + J\n return jd\n}\n\n/**\n * MoslemLeapYear returns true if year y of the Moslem calendar is a leap year.\n * @param {Number} year\n * @returns {Boolean} true if leap year\n */\nexport function MoslemLeapYear (year) { // (y int) bool\n const R = year % 30\n return (11 * R + 3) % 30 > 18\n}\n\n/**\n * @typedef {object} DateObj\n * @property {number} year\n * @property {number} month\n * @property {number} day\n */\n\n/**\n * JulianToMoslem takes a year, month, and day of the Julian calendar and returns the equivalent year, month, and day of the Moslem calendar.\n *\n * @param {Number} y - julian year\n * @param {Number} m - julian month\n * @param {Number} d - julian day\n * @returns {DateObj}\n */\nexport function JulianToMoslem (y, m, d) { // (y, m, d int) (my, mm, md int)\n let W = 2\n if (y % 4 === 0) {\n W = 1\n }\n const N = base.floorDiv(275 * m, 9) - W * base.floorDiv(m + 9, 12) + d - 30\n const A = int(y - 623)\n const B = base.floorDiv(A, 4)\n const C2 = (function (A) {\n const C = A % 4\n const C1 = 365.25001 * (C)\n const C2 = Math.floor(C1)\n if (C1 - C2 > 0.5) {\n return int(C2) + 1\n }\n return int(C2)\n })(A)\n const Dp = 1461 * B + 170 + C2\n const Q = base.floorDiv(Dp, 10631)\n const R = Dp % 10631\n const J = base.floorDiv(R, 354)\n const K = R % 354\n const O = base.floorDiv(11 * J + 14, 30)\n let my = 30 * Q + J + 1\n let JJ = K - O + N - 1\n let days = 354\n if (MoslemLeapYear(y)) {\n days++\n }\n if (JJ > days) {\n JJ -= days\n my++\n }\n let mm\n let md\n if (JJ === 355) {\n mm = 12\n md = 30\n } else {\n const S = base.floorDiv((JJ - 1) * 10, 295)\n mm = 1 + S\n md = base.floorDiv(10 * JJ - 295 * S, 10)\n }\n return { year: my, month: mm, day: md }\n}\n\n/**\n * An MMonth specifies a month of the Moslum Calendar (Muharram = 1, ...).\n *\n * Upgraded to Unicode from the spellings given by Meeus.\n * Source: http://en.wikipedia.org/wiki/Islamic_calendar.\n */\nconst mmonths = [\n '',\n 'Muḥarram',\n 'Ṣafar',\n 'Rabīʿ I',\n 'Rabīʿ II',\n 'Jumādā I',\n 'Jumādā II',\n 'Rajab',\n 'Shaʿbān',\n 'Ramaḍān',\n 'Shawwāl',\n 'Dhū al-Qaʿda',\n 'Dhū al-Ḥijja'\n]\n\n/**\n * String returns the Romanization of the month (\"Muḥarram\", \"Ṣafar\", ...).\n */\nexport function moslemMonth (m) {\n return mmonths[m]\n}\n\nexport default {\n JewishCalendar,\n MoslemToJD,\n MoslemLeapYear,\n JulianToMoslem,\n moslemMonth\n}\n","/**\n * @copyright 2013 Sonia Keys\n * @copyright 2016 commenthol\n * @license MIT\n * @module moonposition\n */\n/**\n * Moonposition: Chapter 47, Position of the Moon.\n */\n\nimport base, { Coord } from './base.js' // eslint-disable-line no-unused-vars\nconst { asin, sin } = Math\nconst D2R = Math.PI / 180\n\nconst EARTH_RADIUS = 6378.137 // km\n\n/**\n * parallax returns equatorial horizontal parallax of the Moon.\n *\n * @param {Number} distance - distance between centers of the Earth and Moon, in km.\n * @returns {Number} Result in radians.\n */\nexport function parallax (distance) {\n // p. 337\n return asin(EARTH_RADIUS / distance)\n}\n\nfunction dmf (T) {\n const d = base.horner(T, 297.8501921 * D2R, 445267.1114034 * D2R, -0.0018819 * D2R, D2R / 545868, -D2R / 113065000)\n const m = base.horner(T, 357.5291092 * D2R, 35999.0502909 * D2R, -0.0001536 * D2R, D2R / 24490000)\n const m_ = base.horner(T, 134.9633964 * D2R, 477198.8675055 * D2R,\n 0.0087414 * D2R, D2R / 69699, -D2R / 14712000)\n const f = base.horner(T, 93.272095 * D2R, 483202.0175233 * D2R, -0.0036539 * D2R, -D2R / 3526000, D2R / 863310000)\n return [d, m, m_, f]\n}\n\n/**\n * position returns geocentric location of the Moon.\n *\n * Results are referenced to mean equinox of date and do not include\n * the effect of nutation.\n *\n * @param {number} jde - Julian ephemeris day\n * @returns {Coord}\n * {number} lon - Geocentric longitude λ, in radians.\n * {number} lat - Geocentric latitude β, in radians.\n * {number} range - Distance Δ between centers of the Earth and Moon, in km.\n */\nexport function position (jde) {\n const T = base.J2000Century(jde)\n const l_ = base.horner(T, 218.3164477 * D2R, 481267.88123421 * D2R, -0.0015786 * D2R, D2R / 538841, -D2R / 65194000)\n const [d, m, m_, f] = dmf(T)\n const a1 = 119.75 * D2R + 131.849 * D2R * T\n const a2 = 53.09 * D2R + 479264.29 * D2R * T\n const a3 = 313.45 * D2R + 481266.484 * D2R * T\n const e = base.horner(T, 1, -0.002516, -0.0000074)\n const e2 = e * e\n let Σl = 3958 * sin(a1) + 1962 * sin(l_ - f) + 318 * sin(a2)\n let Σr = 0.0\n let Σb = -2235 * sin(l_) + 382 * sin(a3) + 175 * sin(a1 - f) +\n 175 * sin(a1 + f) + 127 * sin(l_ - m_) - 115 * sin(l_ + m_)\n ta.forEach((r) => {\n const [sina, cosa] = base.sincos(d * r.d + m * r.m + m_ * r.m_ + f * r.f)\n switch (r.m) {\n case 0:\n Σl += r.Σl * sina\n Σr += r.Σr * cosa\n break\n case -1:\n case 1:\n Σl += r.Σl * sina * e\n Σr += r.Σr * cosa * e\n break\n case -2:\n case 2:\n Σl += r.Σl * sina * e2\n Σr += r.Σr * cosa * e2\n break\n }\n })\n\n tb.forEach((r) => {\n const sb = sin(d * r.d + m * r.m + m_ * r.m_ + f * r.f)\n switch (r.m) {\n case 0:\n Σb += r.Σb * sb\n break\n case -1:\n case 1:\n Σb += r.Σb * sb * e\n break\n case -2:\n case 2:\n Σb += r.Σb * sb * e2\n break\n }\n })\n const lon = base.pmod(l_, 2 * Math.PI) + Σl * 1e-6 * D2R\n const lat = Σb * 1e-6 * D2R\n const range = 385000.56 + Σr * 1e-3\n return new base.Coord(lon, lat, range)\n}\n\nconst ta = (function () {\n const ta = [\n [0, 0, 1, 0, 6288774, -20905355],\n [2, 0, -1, 0, 1274027, -3699111],\n [2, 0, 0, 0, 658314, -2955968],\n [0, 0, 2, 0, 213618, -569925],\n\n [0, 1, 0, 0, -185116, 48888],\n [0, 0, 0, 2, -114332, -3149],\n [2, 0, -2, 0, 58793, 246158],\n [2, -1, -1, 0, 57066, -152138],\n\n [2, 0, 1, 0, 53322, -170733],\n [2, -1, 0, 0, 45758, -204586],\n [0, 1, -1, 0, -40923, -129620],\n [1, 0, 0, 0, -34720, 108743],\n\n [0, 1, 1, 0, -30383, 104755],\n [2, 0, 0, -2, 15327, 10321],\n [0, 0, 1, 2, -12528, 0],\n [0, 0, 1, -2, 10980, 79661],\n\n [4, 0, -1, 0, 10675, -34782],\n [0, 0, 3, 0, 10034, -23210],\n [4, 0, -2, 0, 8548, -21636],\n [2, 1, -1, 0, -7888, 24208],\n\n [2, 1, 0, 0, -6766, 30824],\n [1, 0, -1, 0, -5163, -8379],\n [1, 1, 0, 0, 4987, -16675],\n [2, -1, 1, 0, 4036, -12831],\n\n [2, 0, 2, 0, 3994, -10445],\n [4, 0, 0, 0, 3861, -11650],\n [2, 0, -3, 0, 3665, 14403],\n [0, 1, -2, 0, -2689, -7003],\n\n [2, 0, -1, 2, -2602, 0],\n [2, -1, -2, 0, 2390, 10056],\n [1, 0, 1, 0, -2348, 6322],\n [2, -2, 0, 0, 2236, -9884],\n\n [0, 1, 2, 0, -2120, 5751],\n [0, 2, 0, 0, -2069, 0],\n [2, -2, -1, 0, 2048, -4950],\n [2, 0, 1, -2, -1773, 4130],\n\n [2, 0, 0, 2, -1595, 0],\n [4, -1, -1, 0, 1215, -3958],\n [0, 0, 2, 2, -1110, 0],\n [3, 0, -1, 0, -892, 3258],\n\n [2, 1, 1, 0, -810, 2616],\n [4, -1, -2, 0, 759, -1897],\n [0, 2, -1, 0, -713, -2117],\n [2, 2, -1, 0, -700, 2354],\n\n [2, 1, -2, 0, 691, 0],\n [2, -1, 0, -2, 596, 0],\n [4, 0, 1, 0, 549, -1423],\n [0, 0, 4, 0, 537, -1117],\n\n [4, -1, 0, 0, 520, -1571],\n [1, 0, -2, 0, -487, -1739],\n [2, 1, 0, -2, -399, 0],\n [0, 0, 2, -2, -381, -4421],\n\n [1, 1, 1, 0, 351, 0],\n [3, 0, -2, 0, -340, 0],\n [4, 0, -3, 0, 330, 0],\n [2, -1, 2, 0, 327, 0],\n\n [0, 2, 1, 0, -323, 1165],\n [1, 1, -1, 0, 299, 0],\n [2, 0, 3, 0, 294, 0],\n [2, 0, -1, -2, 0, 8752]\n ]\n return ta.map((row) => {\n const o = {}\n const vals = ['d', 'm', 'm_', 'f', 'Σl', 'Σr']\n vals.forEach((D2R, i) => {\n o[D2R] = row[i]\n })\n return o\n })\n})()\n\nconst tb = (function () {\n const tb = [\n [0, 0, 0, 1, 5128122],\n [0, 0, 1, 1, 280602],\n [0, 0, 1, -1, 277693],\n [2, 0, 0, -1, 173237],\n\n [2, 0, -1, 1, 55413],\n [2, 0, -1, -1, 46271],\n [2, 0, 0, 1, 32573],\n [0, 0, 2, 1, 17198],\n\n [2, 0, 1, -1, 9266],\n [0, 0, 2, -1, 8822],\n [2, -1, 0, -1, 8216],\n [2, 0, -2, -1, 4324],\n\n [2, 0, 1, 1, 4200],\n [2, 1, 0, -1, -3359],\n [2, -1, -1, 1, 2463],\n [2, -1, 0, 1, 2211],\n\n [2, -1, -1, -1, 2065],\n [0, 1, -1, -1, -1870],\n [4, 0, -1, -1, 1828],\n [0, 1, 0, 1, -1794],\n\n [0, 0, 0, 3, -1749],\n [0, 1, -1, 1, -1565],\n [1, 0, 0, 1, -1491],\n [0, 1, 1, 1, -1475],\n\n [0, 1, 1, -1, -1410],\n [0, 1, 0, -1, -1344],\n [1, 0, 0, -1, -1335],\n [0, 0, 3, 1, 1107],\n\n [4, 0, 0, -1, 1021],\n [4, 0, -1, 1, 833],\n\n [0, 0, 1, -3, 777],\n [4, 0, -2, 1, 671],\n [2, 0, 0, -3, 607],\n [2, 0, 2, -1, 596],\n\n [2, -1, 1, -1, 491],\n [2, 0, -2, 1, -451],\n [0, 0, 3, -1, 439],\n [2, 0, 2, 1, 422],\n\n [2, 0, -3, -1, 421],\n [2, 1, -1, 1, -366],\n [2, 1, 0, 1, -351],\n [4, 0, 0, 1, 331],\n\n [2, -1, 1, 1, 315],\n [2, -2, 0, -1, 302],\n [0, 0, 1, 3, -283],\n [2, 1, 1, -1, -229],\n\n [1, 1, 0, -1, 223],\n [1, 1, 0, 1, 223],\n [0, 1, -2, -1, -220],\n [2, 1, -1, -1, -220],\n\n [1, 0, 1, 1, -185],\n [2, -1, -2, -1, 181],\n [0, 1, 2, 1, -177],\n [4, 0, -2, -1, 176],\n\n [4, -1, -1, -1, 166],\n [1, 0, 1, -1, -164],\n [4, 0, 1, -1, 132],\n [1, 0, -1, -1, -119],\n\n [4, -1, 0, -1, 115],\n [2, -2, 0, 1, 107]\n ]\n return tb.map((row) => {\n const o = {}\n const vals = ['d', 'm', 'm_', 'f', 'Σb']\n vals.forEach((D2R, i) => {\n o[D2R] = row[i]\n })\n return o\n })\n})()\n\n/**\n * Node returns longitude of the mean ascending node of the lunar orbit.\n *\n * @param {number} jde - Julian ephemeris day\n * @returns result in radians.\n */\nexport function node (jde) {\n return base.pmod(\n base.horner(\n base.J2000Century(jde),\n 125.0445479 * D2R,\n -1934.1362891 * D2R,\n 0.0020754 * D2R,\n D2R / 467441,\n -D2R / 60616000\n ), 2 * Math.PI\n )\n}\n\n/**\n * perigee returns longitude of perigee of the lunar orbit.\n *\n * @param {number} jde - Julian ephemeris day\n * @returns result in radians.\n */\nexport function perigee (jde) {\n return base.pmod(\n base.horner(\n base.J2000Century(jde),\n 83.3532465 * D2R,\n 4069.0137287 * D2R,\n -0.01032 * D2R,\n -D2R / 80053,\n D2R / 18999000\n ), 2 * Math.PI\n )\n}\n\n/**\n * trueNode returns longitude of the true ascending node.\n *\n * That is, the node of the instantaneous lunar orbit.\n *\n * @param {number} jde - Julian ephemeris day\n * @returns result in radians.\n */\nexport function trueNode (jde) {\n const [d, m, m_, f] = dmf(base.J2000Century(jde))\n return node(jde) +\n -1.4979 * D2R * sin(2 * (d - f)) +\n -0.15 * D2R * sin(m) +\n -0.1226 * D2R * sin(2 * d) +\n 0.1176 * D2R * sin(2 * f) +\n -0.0801 * D2R * sin(2 * (m_ - f))\n}\n\nexport default {\n parallax,\n position,\n node,\n perigee,\n trueNode\n}\n","/**\n * @copyright 2013 Sonia Keys\n * @copyright 2016 commenthol\n * @license MIT\n * @module moon\n */\n/**\n * Moon: Chapter 53, Ephemeris for Physical Observations of the Moon.\n *\n * Incomplete. Topocentric functions are commented out for lack of test data.\n */\n\nimport base, { Coord } from './base.js'// eslint-disable-line no-unused-vars\nimport coord from './coord.js'\nimport moonposition from './moonposition.js'\nimport nutation from './nutation.js'\nimport solar from './solar.js'\nimport { Planet } from './planetposition.js' // eslint-disable-line no-unused-vars\n\nconst { sin, cos, asin, atan2 } = Math\nconst D2R = Math.PI / 180\nconst _I = 1.54242 * D2R // IAU value of inclination of mean lunar equator\n\nconst [sI, cI] = base.sincos(_I)\n\n/**\n * Physical returns quantities useful for physical observation of the Moon.\n *\n * Returned l, b are librations in selenographic longitude and latitude.\n * They represent combined optical and physical librations. Topocentric\n * librations are not considered.\n *\n * Returned P is the the position angle of the Moon's axis of rotation.\n *\n * Returned l0, b0 are the selenographic coordinates of the Sun.\n *\n * Returned values all in radians.\n\n * @param {number} jde - Julian ephemeris day\n * @param {Planet} earth - VSOP87 Planet Earth\n * @return {Array}\n * {base.Coord} cMoon - selenographic longitude, latitude of the Moon\n * {number} P - position angle of the Moon's axis of rotation\n * {base.Coord} cSun - selenographic longitude, latitude of the Sun.\n */\nexport function physical (jde, earth) {\n const { lon, lat, range } = moonposition.position(jde) // (λ without nutation)\n // [λ, β, Δ]\n const m = new Moon(jde)\n const [l, b] = m.lib(lon, lat)\n const P = m.pa(lon, lat, b)\n const [l0, b0] = m.sun(lon, lat, range, earth)\n const cMoon = new base.Coord(l, b)\n const cSun = new base.Coord(l0, b0)\n return [cMoon, P, cSun]\n}\n\n/**\n * Quantities computed for a jde and used in computing return values of\n * physical(). Computations are broken into several methods to organize\n * the code.\n */\nexport class Moon {\n constructor (jde) {\n this.jde = jde\n // Δψ, F, Ω, p. 372.0\n const [Δψ, Δε] = nutation.nutation(jde)\n this.Δψ = Δψ\n const T = base.J2000Century(jde)\n const F = this.F = base.horner(T, 93.272095 * D2R, 483202.0175233 * D2R, -0.0036539 * D2R, -D2R / 3526000, D2R / 863310000)\n this.Ω = base.horner(T, 125.0445479 * D2R, -1934.1362891 * D2R, 0.0020754 * D2R,\n D2R / 467441, -D2R / 60616000)\n // true ecliptic\n this.ε = nutation.meanObliquity(jde) + Δε\n this.sε = sin(this.ε)\n this.cε = cos(this.ε)\n // ρ, σ, τ, p. 372,373\n const D = base.horner(T, 297.8501921 * D2R, 445267.1114034 * D2R, -0.0018819 * D2R, D2R / 545868, -D2R / 113065000)\n const M = base.horner(T, 357.5291092 * D2R, 35999.0502909 * D2R, -0.0001536 * D2R, D2R / 24490000)\n const M_ = base.horner(T, 134.9633964 * D2R, 477198.8675055 * D2R,\n 0.0087414 * D2R, D2R / 69699, -D2R / 14712000)\n const E = base.horner(T, 1, -0.002516, -0.0000074)\n const K1 = 119.75 * D2R + 131.849 * D2R * T\n const K2 = 72.56 * D2R + 20.186 * D2R * T\n this.ρ = -0.02752 * D2R * cos(M_) +\n -0.02245 * D2R * sin(F) +\n 0.00684 * D2R * cos(M_ - 2 * F) +\n -0.00293 * D2R * cos(2 * F) +\n -0.00085 * D2R * cos(2 * (F - D)) +\n -0.00054 * D2R * cos(M_ - 2 * D) +\n -0.0002 * D2R * sin(M_ + F) +\n -0.0002 * D2R * cos(M_ + 2 * F) +\n -0.0002 * D2R * cos(M_ - F) +\n 0.00014 * D2R * cos(M_ + 2 * (F - D))\n this.σ = -0.02816 * D2R * sin(M_) +\n 0.02244 * D2R * cos(F) +\n -0.00682 * D2R * sin(M_ - 2 * F) +\n -0.00279 * D2R * sin(2 * F) +\n -0.00083 * D2R * sin(2 * (F - D)) +\n 0.00069 * D2R * sin(M_ - 2 * D) +\n 0.0004 * D2R * cos(M_ + F) +\n -0.00025 * D2R * sin(2 * M_) +\n -0.00023 * D2R * sin(M_ + 2 * F) +\n 0.0002 * D2R * cos(M_ - F) +\n 0.00019 * D2R * sin(M_ - F) +\n 0.00013 * D2R * sin(M_ + 2 * (F - D)) +\n -0.0001 * D2R * cos(M_ - 3 * F)\n this.τ = 0.0252 * D2R * sin(M) * E +\n 0.00473 * D2R * sin(2 * (M_ - F)) +\n -0.00467 * D2R * sin(M_) +\n 0.00396 * D2R * sin(K1) +\n 0.00276 * D2R * sin(2 * (M_ - D)) +\n 0.00196 * D2R * sin(this.Ω) +\n -0.00183 * D2R * cos(M_ - F) +\n 0.00115 * D2R * sin(M_ - 2 * D) +\n -0.00096 * D2R * sin(M_ - D) +\n 0.00046 * D2R * sin(2 * (F - D)) +\n -0.00039 * D2R * sin(M_ - F) +\n -0.00032 * D2R * sin(M_ - M - D) +\n 0.00027 * D2R * sin(2 * (M_ - D) - M) +\n 0.00023 * D2R * sin(K2) +\n -0.00014 * D2R * sin(2 * D) +\n 0.00014 * D2R * cos(2 * (M_ - F)) +\n -0.00012 * D2R * sin(M_ - 2 * F) +\n -0.00012 * D2R * sin(2 * M_) +\n 0.00011 * D2R * sin(2 * (M_ - M - D))\n }\n\n /**\n * lib() curiously serves for computing both librations and solar coordinates,\n * depending on the coordinates λ, β passed in. Quantity A not described in\n * the book, but clearly depends on the λ, β of the current context and so\n * does not belong in the moon struct. Instead just return it from optical\n * and pass it along to physical.\n */\n lib (λ, β) {\n const [l_, b_, A] = this.optical(λ, β)\n const [l$, b$] = this.physical(A, b_)\n let l = l_ + l$\n if (l > Math.PI) {\n l -= 2 * Math.PI\n }\n const b = b_ + b$\n return [l, b]\n }\n\n optical (λ, β) {\n // (53.1) p. 372\n const W = λ - this.Ω // (λ without nutation)\n const [sW, cW] = base.sincos(W)\n const [sβ, cβ] = base.sincos(β)\n const A = atan2(sW * cβ * cI - sβ * sI, cW * cβ)\n const l_ = base.pmod(A - this.F, 2 * Math.PI)\n const b_ = asin(-sW * cβ * sI - sβ * cI)\n return [l_, b_, A]\n }\n\n physical (A, b_) {\n // (53.2) p. 373\n const [sA, cA] = base.sincos(A)\n const l$ = -this.τ + (this.ρ * cA + this.σ * sA) * Math.tan(b_)\n const b$ = this.σ * cA - this.ρ * sA\n return [l$, b$]\n }\n\n pa (λ, β, b) {\n const V = this.Ω + this.Δψ + this.σ / sI\n const [sV, cV] = base.sincos(V)\n const [sIρ, cIρ] = base.sincos(_I + this.ρ)\n const X = sIρ * sV\n const Y = sIρ * cV * this.cε - cIρ * this.sε\n const ω = Math.atan2(X, Y)\n const ecl = new coord.Ecliptic(λ + this.Δψ, β).toEquatorial(this.ε) // eslint-disable-line no-unused-vars\n let P = asin(Math.hypot(X, Y) * cos(ecl.ra - ω) / cos(b))\n if (P < 0) {\n P += 2 * Math.PI\n }\n return P\n }\n\n sun (λ, β, Δ, earth) {\n const { lon, lat, range } = solar.apparentVSOP87(earth, this.jde) // eslint-disable-line no-unused-vars\n const ΔR = Δ / (range * base.AU)\n const λH = lon + Math.PI + 57.296 * D2R * ΔR * cos(β) * sin(lon - λ)\n const βH = ΔR * β\n return this.lib(λH, βH)\n }\n}\n\n/* commented out for lack of test data\nexport function Topocentric (jde, ρsφ_, ρcφ_, L) { // (jde, ρsφ_, ρcφ_, L float64) (l, b, P float64)\n λ, β, Δ := moonposition.Position(jde) // (λ without nutation)\n Δψ, Δε := nutation.Nutation(jde)\n sε, cε := base.sincos(nutation.MeanObliquity(jde) + Δε)\n α, δ := coord.EclToEq(λ+Δψ, β, sε, cε)\n α, δ = parallax.Topocentric(α, δ, Δ/base.AU, ρsφ_, ρcφ_, L, jde)\n λ, β = coord.EqToEcl(α, δ, sε, cε)\n const m = newMoon(jde)\n l, b = m.lib(λ, β)\n P = m.pa(λ, β, b)\n return\n}\n\nexport function TopocentricCorrections (jde, b, P, φ, δ, H, π) { // (jde, b, P, φ, δ, H, π float64) (Δl, Δb, ΔP float64)\n sφ, cφ := base.sincos(φ)\n sH, cH := base.sincos(H)\n sδ, cδ := base.sincos(δ)\n const Q = Math.atan(cφ * sH / (cδ*sφ - sδ*cφ*cH))\n const z = Math.acos(sδ*sφ + cδ*cφ*cH)\n const π_ = π * (sin(z) + 0.0084*sin(2*z))\n sQP, cQP := base.sincos(Q - P)\n Δl = -π_ * sQP / cos(b)\n Δb = π_ * cQP\n ΔP = Δl*sin(b+Δb) - π_*sin(Q)*Math.tan(δ)\n return\n}\n*/\n\n/**\n * SunAltitude returns altitude of the Sun above the lunar horizon.\n *\n * @param {Coord} cOnMoon - selenographic longitude and latitude of a site on the Moon\n * @param {Coord} cSun - selenographic coordinates of the Sun (as returned by physical(), for example.)\n * @return altitude in radians.\n */\nexport function sunAltitude (cOnMoon, cSun) { // (η, θ, l0, b0 float64) float64\n const c0 = Math.PI / 2 - cSun.lon\n const [sb0, cb0] = base.sincos(cSun.lat)\n const [sθ, cθ] = base.sincos(cOnMoon.lat)\n return asin(sb0 * sθ + cb0 * cθ * sin(c0 + cOnMoon.lon))\n}\n\n/**\n * Sunrise returns time of sunrise for a point on the Moon near the given date.\n *\n * @param {Coord} cOnMoon - selenographic longitude and latitude of a site on the Moon\n * @param {Number} jde - Julian ephemeris day\n * @param {Planet} earth - VSOP87 Planet Earth\n * @return time of sunrise as a jde nearest the given jde.\n */\nexport function sunrise (cOnMoon, jde, earth) { // (η, θ, jde float64, earth *pp.V87Planet) float64\n jde -= srCorr(cOnMoon, jde, earth)\n return jde - srCorr(cOnMoon, jde, earth)\n}\n\n/**\n * Sunset returns time of sunset for a point on the Moon near the given date.\n *\n * @param {Coord} cOnMoon - selenographic longitude and latitude of a site on the Moon\n * @param {Number} jde - Julian ephemeris day\n * @param {Planet} earth - VSOP87 Planet Earth\n * @return time of sunset as a jde nearest the given jde.\n */\nexport function sunset (cOnMoon, jde, earth) { // (η, θ, jde float64, earth *pp.V87Planet) float64\n jde += srCorr(cOnMoon, jde, earth)\n return jde + srCorr(cOnMoon, jde, earth)\n}\n\n/**\n * @private\n */\nfunction srCorr (cOnMoon, jde, earth) {\n const phy = physical(jde, earth)\n const h = sunAltitude(cOnMoon, phy[2])\n return h / (12.19075 * D2R * cos(cOnMoon.lat))\n}\n\nconst lunarCoord = (η, θ) => new base.Coord(η * D2R, θ * D2R)\n/**\n * selenographic coordinates of some lunar features\n * Table 53.A\n */\nexport const selenographic = {\n archimedes: lunarCoord(-3.9, 29.7),\n aristarchus: lunarCoord(-47.5, 23.7),\n aristillus: lunarCoord(1.2, 33.9),\n aristoteles: lunarCoord(17.3, 50.1),\n arzachel: lunarCoord(-1.9, -17.7),\n autolycus: lunarCoord(1.5, 30.7),\n billy: lunarCoord(-50, -13.8),\n birt: lunarCoord(-8.5, -22.3),\n campanus: lunarCoord(-27.7, -28),\n censorinus: lunarCoord(32.7, -0.4),\n clavius: lunarCoord(-14, -58),\n copernicus: lunarCoord(-20, 9.7),\n delambre: lunarCoord(17.5, -1.9),\n dionysius: lunarCoord(17.3, 2.8),\n endymion: lunarCoord(56.4, 53.6),\n eratosthenes: lunarCoord(-11.3, 14.5),\n eudoxus: lunarCoord(16.3, 44.3),\n fracastorius: lunarCoord(33.2, -21),\n fraMauro: lunarCoord(-17, -6),\n gassendi: lunarCoord(-39.9, -17.5),\n goclenius: lunarCoord(45, -10.1),\n grimaldi: lunarCoord(-68.5, -5.8),\n harpalus: lunarCoord(-43.4, 52.6),\n horrocks: lunarCoord(5.9, -4),\n kepler: lunarCoord(-38, 8.1),\n langrenus: lunarCoord(60.9, -8.9),\n lansberg: lunarCoord(-26.6, -0.3),\n letronne: lunarCoord(-43, -10),\n macrobius: lunarCoord(46, 21.2),\n manilius: lunarCoord(9.1, 14.5),\n menelaus: lunarCoord(16, 16.3),\n messier: lunarCoord(47.6, -1.9),\n petavius: lunarCoord(61, -25),\n pico: lunarCoord(-8.8, 45.8),\n pitatus: lunarCoord(-13.5, -29.8),\n piton: lunarCoord(-0.8, 40.8),\n plato: lunarCoord(-9.2, 51.4),\n plinius: lunarCoord(23.6, 15.3),\n posidonius: lunarCoord(30, 31.9),\n proclus: lunarCoord(46.9, 16.1),\n ptolemeusA: lunarCoord(-0.8, -8.5),\n pytheas: lunarCoord(-20.6, 20.5),\n reinhold: lunarCoord(-22.8, 3.2),\n riccioli: lunarCoord(-74.3, -3.2),\n schickard: lunarCoord(-54.5, -44),\n schiller: lunarCoord(-39, -52),\n tauruntius: lunarCoord(46.5, 5.6),\n theophilus: lunarCoord(26.5, -11.4),\n timocharis: lunarCoord(-13.1, 26.7),\n tycho: lunarCoord(-11, -43.2),\n vitruvius: lunarCoord(31.3, 17.6),\n walter: lunarCoord(1, -33)\n}\n\nexport default {\n physical,\n Moon,\n // Topocentric,\n // TopocentricCorrections,\n sunAltitude,\n sunrise,\n sunset,\n selenographic\n}\n","/**\n * @copyright 2013 Sonia Keys\n * @copyright 2016 commenthol\n * @license MIT\n * @module planetary\n */\n/**\n * Planetary: Chapter 36, The Calculation of some Planetary Phenomena.\n *\n * Incomplete: Some functions unimplemented for lack of test data.\n */\n\nimport base from './base.js'\n\n/**\n * Mean computes some intermediate values for a mean planetary configuration\n * given a year and a row of coefficients from Table 36.A, p. 250.0\n */\nexport function mean (y, a) { // (y float64, a *ca) (J, M, T float64)\n // (36.1) p. 250\n const k = Math.floor((365.2425 * y + 1721060 - a.A) / a.B + 0.5)\n const J = a.A + k * a.B\n const M = base.pmod(a.M0 + k * a.M1, 360) * Math.PI / 180\n const T = base.J2000Century(J)\n return [J, M, T]\n}\n\n/**\n * Sum computes a sum of periodic terms.\n */\nexport function sum (T, M, c) { // (T, M float64, c [][]float64) float64\n let j = base.horner(T, c[0])\n let mm = 0.0\n for (let i = 1; i < c.length; i++) {\n mm += M\n const [smm, cmm] = base.sincos(mm)\n j += smm * base.horner(T, c[i])\n i++\n j += cmm * base.horner(T, c[i])\n }\n return j\n}\n\n/**\n * ms returns a mean time corrected by a sum.\n */\nexport function ms (y, a, c) { // (y float64, a *ca, c [][]float64) float64\n const [J, M, T] = mean(y, a)\n return J + sum(T, M, c)\n}\n\n/**\n * MercuryInfConj returns the time of an inferior conjunction of Mercury.\n *\n * Result is time (as a jde) of the event nearest the given time (as a\n * decimal year.)\n */\nexport function mercuryInfConj (y) { // (y float64) (jde float64)\n return ms(y, micA, micB)\n}\n\n/**\n * MercurySupConj returns the time of a superior conjunction of Mercury.\n *\n * Result is time (as a jde) of the event nearest the given time (as a\n * decimal year.)\n */\nexport function mercurySupConj (y) { // (y float64) (jde float64)\n return ms(y, mscA, mscB)\n}\n\n/**\n * VenusInfConj returns the time of an inferior conjunction of Venus.\n *\n * Result is time (as a jde) of the event nearest the given time (as a\n * decimal year.)\n */\nexport function venusInfConj (y) { // (y float64) (jde float64)\n return ms(y, vicA, vicB)\n}\n\n/**\n * MarsOpp returns the time of an opposition of Mars.\n *\n * Result is time (as a jde) of the event nearest the given time (as a\n * decimal year.)\n */\nexport function marsOpp (y) { // (y float64) (jde float64)\n return ms(y, moA, moB)\n}\n\n/**\n * SumA computes the sum of periodic terms with \"additional angles\"\n */\nexport function sumA (T, M, c, aa) { // (T, M float64, c [][]float64, aa []caa) float64\n let i = c.length - 2 * aa.length\n let j = sum(T, M, c.slice(0, i))\n for (let k = 0; k < aa.length; k++) {\n const [saa, caa] = base.sincos((aa[k].c + aa[k].f * T) * Math.PI / 180)\n j += saa * base.horner(T, c[i])\n i++\n j += caa * base.horner(T, c[i])\n i++\n }\n return j\n}\n\n/**\n * Msa returns a mean time corrected by a sum.\n */\nexport function msa (y, a, c, aa) { // (y float64, a *ca, c [][]float64, aa []caa) float64\n const [J, M, T] = mean(y, a)\n return J + sumA(T, M, c, aa)\n}\n\n/**\n * JupiterOpp returns the time of an opposition of Jupiter.\n *\n * Result is time (as a jde) of the event nearest the given time (as a\n * decimal year.)\n */\nexport function jupiterOpp (y) { // (y float64) (jde float64)\n return msa(y, joA, joB, jaa)\n}\n\n/**\n * SaturnOpp returns the time of an opposition of Saturn.\n *\n * Result is time (as a jde) of the event nearest the given time (as a\n * decimal year.)\n */\nexport function saturnOpp (y) { // (y float64) (jde float64)\n return msa(y, soA, soB, saa)\n}\n\n/**\n * SaturnConj returns the time of a conjunction of Saturn.\n *\n * Result is time (as a jde) of the event nearest the given time (as a\n * decimal year.)\n */\nexport function saturnConj (y) { // (y float64) (jde float64)\n return msa(y, scA, scB, saa)\n}\n\n/**\n * UranusOpp returns the time of an opposition of Uranus.\n *\n * Result is time (as a jde) of the event nearest the given time (as a\n * decimal year.)\n */\nexport function uranusOpp (y) { // (y float64) (jde float64)\n return msa(y, uoA, uoB, uaa)\n}\n\n/**\n * NeptuneOpp returns the time of an opposition of Neptune.\n *\n * Result is time (as a jde) of the event nearest the given time (as a\n * decimal year.)\n */\nexport function neptuneOpp (y) { // (y float64) (jde float64)\n return msa(y, noA, noB, naa)\n}\n\n/**\n * El computes time and elongation of a greatest elongation event.\n */\nexport function el (y, a, t, e) { // (y float64, a *ca, t, e [][]float64) (jde, elongation float64)\n const [J, M, T] = mean(y, micA)\n return [J + sum(T, M, t), sum(T, M, e) * Math.PI / 180]\n}\n\n/**\n * MercuryEastElongation returns the time and elongation of a greatest eastern elongation of Mercury.\n *\n * Result is time (as a jde) of the event nearest the given time (as a\n * decimal year.)\n */\nexport function mercuryEastElongation (y) { // (y float64) (jde, elongation float64)\n return el(y, micA, met, mee)\n}\n\n/**\n * MercuryWestElongation returns the time and elongation of a greatest western elongation of Mercury.\n *\n * Result is time (as a jde) of the event nearest the given time (as a\n * decimal year.)\n */\nexport function mercuryWestElongation (y) { // (y float64) (jde, elongation float64)\n return el(y, micA, mwt, mwe)\n}\n\nexport function marsStation2 (y) { // (y float64) (jde float64)\n const [J, M, T] = mean(y, moA)\n return J + sum(T, M, ms2)\n}\n\n/**\n * ca holds coefficients from one line of table 36.A, p. 250\n */\nfunction Ca (A, B, M0, M1) {\n this.A = A\n this.B = B\n this.M0 = M0\n this.M1 = M1\n}\n\n/**\n * Table 36.A, p. 250\n */\nconst micA = new Ca(2451612.023, 115.8774771, 63.5867, 114.2088742)\nconst mscA = new Ca(2451554.084, 115.8774771, 6.4822, 114.2088742)\nconst vicA = new Ca(2451996.706, 583.921361, 82.7311, 215.513058)\nconst moA = new Ca(2452097.382, 779.936104, 181.9573, 48.705244)\nconst joA = new Ca(2451870.628, 398.884046, 318.4681, 33.140229)\nconst soA = new Ca(2451870.17, 378.091904, 318.0172, 12.647487)\nconst scA = new Ca(2451681.124, 378.091904, 131.6934, 12.647487)\nconst uoA = new Ca(2451764.317, 369.656035, 213.6884, 4.333093)\nconst noA = new Ca(2451753.122, 367.486703, 202.6544, 2.194998)\n\n/**\n * caa holds coefficients for \"additional angles\" for outer planets\n * as given on p. 251\n */\nfunction Caa (c, f) {\n this.c = c\n this.f = f\n}\n\nconst jaa = [\n new Caa(82.74, 40.76)\n]\n\nconst saa = [\n new Caa(82.74, 40.76),\n new Caa(29.86, 1181.36),\n new Caa(14.13, 590.68),\n new Caa(220.02, 1262.87)\n]\n\nconst uaa = [\n new Caa(207.83, 8.51),\n new Caa(108.84, 419.96)\n]\n\nconst naa = [\n new Caa(207.83, 8.51),\n new Caa(276.74, 209.98)\n]\n\n/**\n * Table 33.B, p. 256\n */\n\n/**\n * Mercury inferior conjunction\n */\nconst micB = [\n [0.0545, 0.0002],\n [-6.2008, 0.0074, 0.00003],\n [-3.275, -0.0197, 0.00001],\n [0.4737, -0.0052, -0.00001],\n [0.8111, 0.0033, -0.00002],\n [0.0037, 0.0018],\n [-0.1768, 0, 0.00001],\n [-0.0211, -0.0004],\n [0.0326, -0.0003],\n [0.0083, 0.0001],\n [-0.004, 0.0001]\n]\n\n/**\n * Mercury superior conjunction\n */\nconst mscB = [\n [-0.0548, -0.0002],\n [7.3894, -0.01, -0.00003],\n [3.22, 0.0197, -0.00001],\n [0.8383, -0.0064, -0.00001],\n [0.9666, 0.0039, -0.00003],\n [0.077, -0.0026],\n [0.2758, 0.0002, -0.00002],\n [-0.0128, -0.0008],\n [0.0734, -0.0004, -0.00001],\n [-0.0122, -0.0002],\n [0.0173, -0.0002]\n]\n\n/**\n * Venus inferior conjunction\n */\nconst vicB = [\n [-0.0096, 0.0002, -0.00001],\n [2.0009, -0.0033, -0.00001],\n [0.598, -0.0104, 0.00001],\n [0.0967, -0.0018, -0.00003],\n [0.0913, 0.0009, -0.00002],\n [0.0046, -0.0002],\n [0.0079, 0.0001]\n]\n\n/**\n * Mars opposition\n */\nconst moB = [\n [-0.3088, 0, 0.00002],\n [-17.6965, 0.0363, 0.00005],\n [18.3131, 0.0467, -0.00006],\n [-0.2162, -0.0198, -0.00001],\n [-4.5028, -0.0019, 0.00007],\n [0.8987, 0.0058, -0.00002],\n [0.7666, -0.005, -0.00003],\n [-0.3636, -0.0001, 0.00002],\n [0.0402, 0.0032],\n [0.0737, -0.0008],\n [-0.098, -0.0011]\n]\n\n/**\n * Jupiter opposition\n */\nconst joB = [\n [-0.1029, 0, -0.00009],\n [-1.9658, -0.0056, 0.00007],\n [6.1537, 0.021, -0.00006],\n [-0.2081, -0.0013],\n [-0.1116, -0.001],\n [0.0074, 0.0001],\n [-0.0097, -0.0001],\n [0, 0.0144, -0.00008],\n [0.3642, -0.0019, -0.00029]\n]\n\n/**\n * Saturn opposition\n */\nconst soB = [\n [-0.0209, 0.0006, 0.00023],\n [4.5795, -0.0312, -0.00017],\n [1.1462, -0.0351, 0.00011],\n [0.0985, -0.0015],\n [0.0733, -0.0031, 0.00001],\n [0.0025, -0.0001],\n [0.005, -0.0002],\n [0, -0.0337, 0.00018],\n [-0.851, 0.0044, 0.00068],\n [0, -0.0064, 0.00004],\n [0.2397, -0.0012, -0.00008],\n [0, -0.001],\n [0.1245, 0.0006],\n [0, 0.0024, -0.00003],\n [0.0477, -0.0005, -0.00006]\n]\n\n/**\n * Saturn conjunction\n */\nconst scB = [\n [0.0172, -0.0006, 0.00023],\n [-8.5885, 0.0411, 0.00020],\n [-1.147, 0.0352, -0.00011],\n [0.3331, -0.0034, -0.00001],\n [0.1145, -0.0045, 0.00002],\n [-0.0169, 0.0002],\n [-0.0109, 0.0004],\n [0, -0.0337, 0.00018],\n [-0.851, 0.0044, 0.00068],\n [0, -0.0064, 0.00004],\n [0.2397, -0.0012, -0.00008],\n [0, -0.001],\n [0.1245, 0.0006],\n [0, 0.0024, -0.00003],\n [0.0477, -0.0005, -0.00006]\n]\n\n/**\n * Uranus opposition\n */\nconst uoB = [\n [0.0844, -0.0006],\n [-0.1048, 0.0246],\n [-5.1221, 0.0104, 0.00003],\n [-0.1428, 0.0005],\n [-0.0148, -0.0013],\n [0],\n [0.0055],\n [0],\n [0.885],\n [0],\n [0.2153]\n]\n\n/**\n * Neptune opposition [\n */\nconst noB = [\n [-0.014, 0, 0.00001],\n [-1.3486, 0.001, 0.00001],\n [0.8597, 0.0037],\n [-0.0082, -0.0002, 0.00001],\n [0.0037, -0.0003],\n [0],\n [-0.5964],\n [0],\n [0.0728]\n]\n\n/**\n * Table 36.C, p. 259\n */\n\n/**\n * Mercury east time correction\n */\nconst met = [\n [-21.6106, 0.0002],\n [-1.9803, -0.006, 0.00001],\n [1.4151, -0.0072, -0.00001],\n [0.5528, -0.0005, -0.00001],\n [0.2905, 0.0034, 0.00001],\n [-0.1121, -0.0001, 0.00001],\n [-0.0098, -0.0015],\n [0.0192],\n [0.0111, 0.0004],\n [-0.0061],\n [-0.0032, -0.0001]\n]\n\n/**\n * Mercury east elongation\n */\nconst mee = [\n [22.4697],\n [-4.2666, 0.0054, 0.00002],\n [-1.8537, -0.0137],\n [0.3598, 0.0008, -0.00001],\n [-0.068, 0.0026],\n [-0.0524, -0.0003],\n [0.0052, -0.0006],\n [0.0107, 0.0001],\n [-0.0013, 0.0001],\n [-0.0021],\n [0.0003]\n]\n\n/**\n * Mercury west time correction\n */\nconst mwt = [\n [21.6249, -0.0002],\n [0.1306, 0.0065],\n [-2.7661, -0.0011, 0.00001],\n [0.2438, -0.0024, -0.00001],\n [0.5767, 0.0023],\n [0.1041],\n [-0.0184, 0.0007],\n [-0.0051, -0.0001],\n [0.0048, 0.0001],\n [0.0026],\n [0.0037]\n]\n\n/**\n * Mercury west elongation\n */\nconst mwe = [\n [22.4143, -0.0001],\n [4.3651, -0.0048, -0.00002],\n [2.3787, 0.0121, -0.00001],\n [0.2674, 0.0022],\n [-0.3873, 0.0008, 0.00001],\n [-0.0369, -0.0001],\n [0.0017, -0.0001],\n [0.0059],\n [0.0061, 0.0001],\n [0.0007],\n [-0.0011]\n]\n\n/**\n * Table 36.D, p. 261\n */\n\n/**\n * Mars Station 2\n */\nconst ms2 = [\n [36.7191, 0.0016, 0.00003],\n [-12.6163, 0.0417, -0.00001],\n [20.1218, 0.0379, -0.00006],\n [-1.636, -0.019],\n [-3.9657, 0.0045, 0.00007],\n [1.1546, 0.0029, -0.00003],\n [0.2888, -0.0073, -0.00002],\n [-0.3128, 0.0017, 0.00002],\n [0.2513, 0.0026, -0.00002],\n [-0.0021, -0.0016],\n [-0.1497, -0.0006]\n]\n\nexport default {\n mean,\n sum,\n ms,\n mercuryInfConj,\n mercurySupConj,\n venusInfConj,\n marsOpp,\n sumA,\n msa,\n jupiterOpp,\n saturnOpp,\n saturnConj,\n uranusOpp,\n neptuneOpp,\n el,\n mercuryEastElongation,\n mercuryWestElongation,\n marsStation2\n}\n","/**\n * @copyright 2013 Sonia Keys\n * @copyright 2016 commenthol\n * @license MIT\n * @module pluto\n */\n/**\n * Pluto: Chapter 37, Pluto.\n */\n\nimport base from './base.js'\nimport elliptic from './elliptic.js'\n\n/**\n * Heliocentric returns J2000 heliocentric coordinates of Pluto.\n *\n * Results l, b are solar longitude and latitude in radians.\n * Result r is distance in AU.\n */\nexport function heliocentric (jde) {\n let l = 0\n let b = 0\n let r = 0\n const T = base.J2000Century(jde)\n const J = 34.35 + 3034.9057 * T\n const S = 50.08 + 1222.1138 * T\n const P = 238.96 + 144.96 * T\n for (const i in t37) {\n const t = t37[i]\n const [sα, cα] = base.sincos((t.i * J + t.j * S + t.k * P) * Math.PI / 180)\n l += t.lA * sα + t.lB * cα\n b += t.bA * sα + t.bB * cα\n r += t.rA * sα + t.rB * cα\n }\n l = (l + 238.958116 + 144.96 * T) * Math.PI / 180\n b = (b - 3.908239) * Math.PI / 180\n r += 40.7241346\n return { lon: l, lat: b, range: r }\n}\n\n/**\n * Astrometric returns J2000 astrometric coordinates of Pluto.\n */\nexport function astrometric (jde, earth) {\n const sε = base.SOblJ2000\n const cε = base.COblJ2000\n const f = function (jde) {\n const { lon, lat, range } = heliocentric(jde)\n const [sl, cl] = base.sincos(lon)\n const [sb, cb] = base.sincos(lat)\n // (37.1) p. 264\n const x = range * cl * cb\n const y = range * (sl * cb * cε - sb * sε)\n const z = range * (sl * cb * sε + sb * cε)\n return { x, y, z }\n }\n const c = elliptic.astrometricJ2000(f, jde, earth) // eslint-disable-line no-unused-vars\n return new base.Coord(c.ra, c.dec)\n}\n\nfunction Pt (i, j, k, lA, lB, bA, bB, rA, rB) {\n this.i = i\n this.j = j\n this.k = k\n this.lA = lA\n this.lB = lB\n this.bA = bA\n this.bB = bB\n this.rA = rA\n this.rB = rB\n}\n\nconst t37 = [\n new Pt(0, 0, 1, -19.799805, 19.850055, -5.452852, -14.974862, 6.6865439, 6.8951812),\n new Pt(0, 0, 2, 0.897144, -4.954829, 3.527812, 1.67279, -1.1827535, -0.0332538),\n new Pt(0, 0, 3, 0.611149, 1.211027, -1.050748, 0.327647, 0.1593179, -0.143889),\n new Pt(0, 0, 4, -0.341243, -0.189585, 0.17869, -0.292153, -0.0018444, 0.048322),\n new Pt(0, 0, 5, 0.129287, -0.034992, 0.01865, 0.10034, -0.0065977, -0.0085431),\n new Pt(0, 0, 6, -0.038164, 0.030893, -0.030697, -0.025823, 0.0031174, -0.0006032),\n new Pt(0, 1, -1, 0.020442, -0.009987, 0.004878, 0.011248, -0.0005794, 0.0022161),\n new Pt(0, 1, 0, -0.004063, -0.005071, 0.000226, -0.000064, 0.0004601, 0.0004032),\n new Pt(0, 1, 1, -0.006016, -0.003336, 0.00203, -0.000836, -0.0001729, 0.0000234),\n new Pt(0, 1, 2, -0.003956, 0.003039, 0.000069, -0.000604, -0.0000415, 0.0000702),\n new Pt(0, 1, 3, -0.000667, 0.003572, -0.000247, -0.000567, 0.0000239, 0.0000723),\n new Pt(0, 2, -2, 0.001276, 0.000501, -0.000057, 0.000001, 0.0000067, -0.0000067),\n new Pt(0, 2, -1, 0.001152, -0.000917, -0.000122, 0.000175, 0.0001034, -0.0000451),\n new Pt(0, 2, 0, 0.00063, -0.001277, -0.000049, -0.000164, -0.0000129, 0.0000504),\n new Pt(1, -1, 0, 0.002571, -0.000459, -0.000197, 0.000199, 0.000048, -0.0000231),\n new Pt(1, -1, 1, 0.000899, -0.001449, -0.000025, 0.000217, 0.0000002, -0.0000441),\n new Pt(1, 0, -3, -0.001016, 0.001043, 0.000589, -0.000248, -0.0003359, 0.0000265),\n new Pt(1, 0, -2, -0.002343, -0.001012, -0.000269, 0.000711, 0.0007856, -0.0007832),\n new Pt(1, 0, -1, 0.007042, 0.000788, 0.000185, 0.000193, 0.0000036, 0.0045763),\n new Pt(1, 0, 0, 0.001199, -0.000338, 0.000315, 0.000807, 0.0008663, 0.0008547),\n new Pt(1, 0, 1, 0.000418, -0.000067, -0.00013, -0.000043, -0.0000809, -0.0000769),\n new Pt(1, 0, 2, 0.00012, -0.000274, 0.000005, 0.000003, 0.0000263, -0.0000144),\n new Pt(1, 0, 3, -0.00006, -0.000159, 0.000002, 0.000017, -0.0000126, 0.0000032),\n new Pt(1, 0, 4, -0.000082, -0.000029, 0.000002, 0.000005, -0.0000035, -0.0000016),\n new Pt(1, 1, -3, -0.000036, -0.000029, 0.000002, 0.000003, -0.0000019, -0.0000004),\n new Pt(1, 1, -2, -0.00004, 0.000007, 0.000003, 0.000001, -0.0000015, 0.0000008),\n new Pt(1, 1, -1, -0.000014, 0.000022, 0.000002, -0.000001, -0.0000004, 0.0000012),\n new Pt(1, 1, 0, 0.000004, 0.000013, 0.000001, -0.000001, 0.0000005, 0.0000006),\n new Pt(1, 1, 1, 0.000005, 0.000002, 0, -0.000001, 0.0000003, 0.0000001),\n new Pt(1, 1, 3, -0.000001, 0, 0, 0, 0.0000006, -0.0000002),\n new Pt(2, 0, -6, 0.000002, 0, 0, -0.000002, 0.0000002, 0.0000002),\n new Pt(2, 0, -5, -0.000004, 0.000005, 0.000002, 0.000002, -0.0000002, -0.0000002),\n new Pt(2, 0, -4, 0.000004, -0.000007, -0.000007, 0, 0.0000014, 0.0000013),\n new Pt(2, 0, -3, 0.000014, 0.000024, 0.00001, -0.000008, -0.0000063, 0.0000013),\n new Pt(2, 0, -2, -0.000049, -0.000034, -0.000003, 0.00002, 0.0000136, -0.0000236),\n new Pt(2, 0, -1, 0.000163, -0.000048, 0.000006, 0.000005, 0.0000273, 0.0001065),\n new Pt(2, 0, 0, 0.000009, -0.000024, 0.000014, 0.000017, 0.0000251, 0.0000149),\n new Pt(2, 0, 1, -0.000004, 0.000001, -0.000002, 0, -0.0000025, -0.0000009),\n new Pt(2, 0, 2, -0.000003, 0.000001, 0, 0, 0.0000009, -0.0000002),\n new Pt(2, 0, 3, 0.000001, 0.000003, 0, 0, -0.0000008, 0.0000007),\n new Pt(3, 0, -2, -0.000003, -0.000001, 0, 0.000001, 0.0000002, -0.000001),\n new Pt(3, 0, -1, 0.000005, -0.000003, 0, 0, 0.0000019, 0.0000035),\n new Pt(3, 0, 0, 0, 0, 0.000001, 0, 0.000001, 0.0000003)\n]\n\nexport default {\n heliocentric,\n astrometric\n}\n","/**\n * @copyright 2013 Sonia Keys\n * @copyright 2016 commenthol\n * @license MIT\n * @module moonillum\n */\n/**\n * Moonillum: Chapter 48, Illuminated Fraction of the Moon's Disk\n *\n * Also see functions `illuminated` and `limb` in package base. The function\n * for computing illuminated fraction given a phase angle (48.1) is\n * base.illuminated. Formula (48.3) is implemented as base.limb.\n */\n\nimport base, { Coord } from './base.js' // eslint-disable-line no-unused-vars\n\nconst D2R = Math.PI / 180\n\n/**\n * phaseAngleEquatorial computes the phase angle of the Moon given equatorial coordinates.\n *\n * @param {Coord} cMoon - geocentric right ascension, declination and distance to the Moon\n * @param {Coord} cSun - coordinates and distance of the Sun\n * @returns {number} phase angle of the Moon in radians\n */\nexport function phaseAngleEquatorial (cMoon, cSun) {\n return pa(cMoon.range, cSun.range, cosEq(cMoon.ra, cMoon.dec, cSun.ra, cSun.dec))\n}\n\n/**\n * cos elongation from equatorial coordinates\n * @private\n */\nfunction cosEq (α, δ, α0, δ0) {\n const [sδ, cδ] = base.sincos(δ)\n const [sδ0, cδ0] = base.sincos(δ0)\n return sδ0 * sδ + cδ0 * cδ * Math.cos(α0 - α)\n}\n\n/**\n * phase angle from cos elongation and distances\n * @private\n * @param {number} Δ\n * @param {number} R\n * @param {number} cψ\n * @returns {number}\n */\nfunction pa (Δ, R, cψ) {\n const sψ = Math.sin(Math.acos(cψ))\n let i = Math.atan(R * sψ / (Δ - R * cψ))\n if (i < 0) {\n i += Math.PI\n }\n return i\n}\n\n/**\n * phaseAngleEquatorial2 computes the phase angle of the Moon given equatorial coordinates.\n *\n * Less accurate than phaseAngleEquatorial.\n *\n * Arguments α, δ are geocentric right ascension and declination of the Moon;\n * α0, δ0 are coordinates of the Sun. Angles must be in radians.\n *\n * @param {Coord} cMoon - eocentric right ascension and declination of the Moon\n * @param {Coord} cSun - coordinates of the Sun\n * @returns {number} phase angle of the Moon in radians\n */\nexport function phaseAngleEquatorial2 (cMoon, cSun) {\n return Math.acos(-cosEq(cMoon.ra, cMoon.dec, cSun.ra, cSun.dec))\n}\n\n/**\n * phaseAngleEcliptic computes the phase angle of the Moon given ecliptic coordinates.\n *\n * Distances must be in the same units as each other.\n *\n * @param {Coord} cMoon - geocentric longitude, latitude and distance to the Moon\n * @param {Coord} cSun - longitude and distance to the Sun\n * @returns {number} phase angle of the Moon in radians\n */\nexport function phaseAngleEcliptic (cMoon, cSun) {\n return pa(cMoon.range, cSun.range, cosEcl(cMoon.lon, cMoon.lat, cSun.lon))\n}\n\n/**\n * cos elongation from ecliptic coordinates\n * @private\n */\nfunction cosEcl (λ, β, λ0) { // (λ, β, λ0 float64) float64\n return Math.cos(β) * Math.cos(λ - λ0)\n}\n\n/**\n * phaseAngleEcliptic2 computes the phase angle of the Moon given ecliptic coordinates.\n *\n * Less accurate than phaseAngleEcliptic.\n *\n * Angles must be in radians.\n *\n * @param {Coord} cMoon - geocentric longitude, latitude of the Moon\n * @param {Coord} cSun - longitude of the Sun\n * @returns {number} phase angle of the Moon in radians\n */\nexport function phaseAngleEcliptic2 (cMoon, cSun) {\n return Math.acos(-cosEcl(cMoon.lon, cMoon.lat, cSun.lon))\n}\n\n/**\n * phaseAngle3 computes the phase angle of the Moon given a julian day.\n *\n * Less accurate than phaseAngle functions taking coordinates.\n *\n * Result in radians.\n */\nexport function phaseAngle3 (jde) { // (jde float64) float64\n const T = base.J2000Century(jde)\n const D = base.horner(T, 297.8501921 * D2R, 445267.1114034 * D2R,\n -0.0018819 * D2R, D2R / 545868, -D2R / 113065000)\n const m = base.horner(T, 357.5291092 * D2R, 35999.0502909 * D2R,\n -0.0001536 * D2R, D2R / 24490000)\n const m_ = base.horner(T, 134.9633964 * D2R, 477198.8675055 * D2R,\n 0.0087414 * D2R, D2R / 69699, -D2R / 14712000)\n return Math.PI - base.pmod(D, 2 * Math.PI) +\n -6.289 * D2R * Math.sin(m_) +\n 2.1 * D2R * Math.sin(m) +\n -1.274 * D2R * Math.sin(2 * D - m_) +\n -0.658 * D2R * Math.sin(2 * D) +\n -0.214 * D2R * Math.sin(2 * m_) +\n -0.11 * D2R * Math.sin(D)\n}\n\nexport default {\n phaseAngleEquatorial,\n phaseAngleEquatorial2,\n phaseAngleEcliptic,\n phaseAngleEcliptic2,\n phaseAngle3\n}\n","/**\n * @copyright 2013 Sonia Keys\n * @copyright 2016 commenthol\n * @license MIT\n * @module moonmaxdec\n */\n/**\n * Moonmaxdec: Chapter 52, Maximum Declinations of the Moon\n */\n\nimport base from './base.js'\n\n/**\n * North computes the maximum northern declination of the Moon near a given date.\n *\n * Argument year is a decimal year specifying a date near the event.\n *\n * Returned is the jde of the event nearest the given date and the declination\n * of the Moon at that time.\n */\nexport function north (y) { // (y float64) (jde, δ float64)\n return max(y, nc)\n}\n\n/**\n * South computes the maximum southern declination of the Moon near a given date.\n *\n * Argument year is a decimal year specifying a date near the event.\n *\n * Returned is the jde of the event nearest the given date and the declination\n * of the Moon at that time.\n */\nexport function south (y) { // (y float64) (jde, δ float64)\n return max(y, sc)\n}\n\nconst p = Math.PI / 180\nconst ck = 1 / 1336.86\n\n/**\n * @private\n */\nfunction max (y, c) { // (y float64, c *mc) (jde, δ float64)\n let k = (y - 2000.03) * 13.3686 // (52.1) p. 367\n k = Math.floor(k + 0.5)\n const T = k * ck\n const D = base.horner(T, c.D, 333.0705546 * p / ck, -0.0004214 * p, 0.00000011 * p)\n const m = base.horner(T, c.m, 26.9281592 * p / ck, -0.0000355 * p, -0.0000001 * p)\n const m_ = base.horner(T, c.m_, 356.9562794 * p / ck, 0.0103066 * p, 0.00001251 * p)\n const f = base.horner(T, c.f, 1.4467807 * p / ck, -0.002069 * p, -0.00000215 * p)\n const E = base.horner(T, 1, -0.002516, -0.0000074)\n const jde = base.horner(T, c.JDE, 27.321582247 / ck, 0.000119804, -0.000000141) +\n c.tc[0] * Math.cos(f) +\n c.tc[1] * Math.sin(m_) +\n c.tc[2] * Math.sin(2 * f) +\n c.tc[3] * Math.sin(2 * D - m_) +\n c.tc[4] * Math.cos(m_ - f) +\n c.tc[5] * Math.cos(m_ + f) +\n c.tc[6] * Math.sin(2 * D) +\n c.tc[7] * Math.sin(m) * E +\n c.tc[8] * Math.cos(3 * f) +\n c.tc[9] * Math.sin(m_ + 2 * f) +\n c.tc[10] * Math.cos(2 * D - f) +\n c.tc[11] * Math.cos(2 * D - m_ - f) +\n c.tc[12] * Math.cos(2 * D - m_ + f) +\n c.tc[13] * Math.cos(2 * D + f) +\n c.tc[14] * Math.sin(2 * m_) +\n c.tc[15] * Math.sin(m_ - 2 * f) +\n c.tc[16] * Math.cos(2 * m_ - f) +\n c.tc[17] * Math.sin(m_ + 3 * f) +\n c.tc[18] * Math.sin(2 * D - m - m_) * E +\n c.tc[19] * Math.cos(m_ - 2 * f) +\n c.tc[20] * Math.sin(2 * (D - m_)) +\n c.tc[21] * Math.sin(f) +\n c.tc[22] * Math.sin(2 * D + m_) +\n c.tc[23] * Math.cos(m_ + 2 * f) +\n c.tc[24] * Math.sin(2 * D - m) * E +\n c.tc[25] * Math.sin(m_ + f) +\n c.tc[26] * Math.sin(m - m_) * E +\n c.tc[27] * Math.sin(m_ - 3 * f) +\n c.tc[28] * Math.sin(2 * m_ + f) +\n c.tc[29] * Math.cos(2 * (D - m_) - f) +\n c.tc[30] * Math.sin(3 * f) +\n c.tc[31] * Math.cos(m_ + 3 * f) +\n c.tc[32] * Math.cos(2 * m_) +\n c.tc[33] * Math.cos(2 * D - m_) +\n c.tc[34] * Math.cos(2 * D + m_ + f) +\n c.tc[35] * Math.cos(m_) +\n c.tc[36] * Math.sin(3 * m_ + f) +\n c.tc[37] * Math.sin(2 * D - m_ + f) +\n c.tc[38] * Math.cos(2 * (D - m_)) +\n c.tc[39] * Math.cos(D + f) +\n c.tc[40] * Math.sin(m + m_) * E +\n c.tc[41] * Math.sin(2 * (D - f)) +\n c.tc[42] * Math.cos(2 * m_ + f) +\n c.tc[43] * Math.cos(3 * m_ + f)\n const δ = 23.6961 * p - 0.013004 * p * T +\n c.dc[0] * Math.sin(f) +\n c.dc[1] * Math.cos(2 * f) +\n c.dc[2] * Math.sin(2 * D - f) +\n c.dc[3] * Math.sin(3 * f) +\n c.dc[4] * Math.cos(2 * (D - f)) +\n c.dc[5] * Math.cos(2 * D) +\n c.dc[6] * Math.sin(m_ - f) +\n c.dc[7] * Math.sin(m_ + 2 * f) +\n c.dc[8] * Math.cos(f) +\n c.dc[9] * Math.sin(2 * D + m - f) * E +\n c.dc[10] * Math.sin(m_ + 3 * f) +\n c.dc[11] * Math.sin(D + f) +\n c.dc[12] * Math.sin(m_ - 2 * f) +\n c.dc[13] * Math.sin(2 * D - m - f) * E +\n c.dc[14] * Math.sin(2 * D - m_ - f) +\n c.dc[15] * Math.cos(m_ + f) +\n c.dc[16] * Math.cos(m_ + 2 * f) +\n c.dc[17] * Math.cos(2 * m_ + f) +\n c.dc[18] * Math.cos(m_ - 3 * f) +\n c.dc[19] * Math.cos(2 * m_ - f) +\n c.dc[20] * Math.cos(m_ - 2 * f) +\n c.dc[21] * Math.sin(2 * m_) +\n c.dc[22] * Math.sin(3 * m_ + f) +\n c.dc[23] * Math.cos(2 * D + m - f) * E +\n c.dc[24] * Math.cos(m_ - f) +\n c.dc[25] * Math.cos(3 * f) +\n c.dc[26] * Math.sin(2 * D + f) +\n c.dc[27] * Math.cos(m_ + 3 * f) +\n c.dc[28] * Math.cos(D + f) +\n c.dc[29] * Math.sin(2 * m_ - f) +\n c.dc[30] * Math.cos(3 * m_ + f) +\n c.dc[31] * Math.cos(2 * (D + m_) + f) +\n c.dc[32] * Math.sin(2 * (D - m_) - f) +\n c.dc[33] * Math.cos(2 * m_) +\n c.dc[34] * Math.cos(m_) +\n c.dc[35] * Math.sin(2 * f) +\n c.dc[36] * Math.sin(m_ + f)\n return { jde, dec: c.s * δ }\n}\n\n/**\n * north coefficients\n */\nconst nc = {\n D: 152.2029 * p,\n m: 14.8591 * p,\n m_: 4.6881 * p,\n f: 325.8867 * p,\n JDE: 2451562.5897,\n s: 1,\n tc: [\n 0.8975,\n -0.4726,\n -0.1030,\n -0.0976,\n -0.0462,\n -0.0461,\n -0.0438,\n 0.0162,\n -0.0157,\n 0.0145,\n 0.0136,\n -0.0095,\n -0.0091,\n -0.0089,\n 0.0075,\n -0.0068,\n 0.0061,\n -0.0047,\n -0.0043,\n -0.004,\n -0.0037,\n 0.0031,\n 0.0030,\n -0.0029,\n -0.0029,\n -0.0027,\n 0.0024,\n -0.0021,\n 0.0019,\n 0.0018,\n 0.0018,\n 0.0017,\n 0.0017,\n -0.0014,\n 0.0013,\n 0.0013,\n 0.0012,\n 0.0011,\n -0.0011,\n 0.001,\n 0.001,\n -0.0009,\n 0.0007,\n -0.0007\n ],\n dc: [\n 5.1093 * p,\n 0.2658 * p,\n 0.1448 * p,\n -0.0322 * p,\n 0.0133 * p,\n 0.0125 * p,\n -0.0124 * p,\n -0.0101 * p,\n 0.0097 * p,\n -0.0087 * p,\n 0.0074 * p,\n 0.0067 * p,\n 0.0063 * p,\n 0.0060 * p,\n -0.0057 * p,\n -0.0056 * p,\n 0.0052 * p,\n 0.0041 * p,\n -0.004 * p,\n 0.0038 * p,\n -0.0034 * p,\n -0.0029 * p,\n 0.0029 * p,\n -0.0028 * p,\n -0.0028 * p,\n -0.0023 * p,\n -0.0021 * p,\n 0.0019 * p,\n 0.0018 * p,\n 0.0017 * p,\n 0.0015 * p,\n 0.0014 * p,\n -0.0012 * p,\n -0.0012 * p,\n -0.001 * p,\n -0.001 * p,\n 0.0006 * p\n ]\n}\n\n/**\n * south coefficients\n */\nconst sc = {\n D: 345.6676 * p,\n m: 1.3951 * p,\n m_: 186.21 * p,\n f: 145.1633 * p,\n JDE: 2451548.9289,\n s: -1,\n tc: [\n -0.8975,\n -0.4726,\n -0.1030,\n -0.0976,\n 0.0541,\n 0.0516,\n -0.0438,\n 0.0112,\n 0.0157,\n 0.0023,\n -0.0136,\n 0.011,\n 0.0091,\n 0.0089,\n 0.0075,\n -0.003,\n -0.0061,\n -0.0047,\n -0.0043,\n 0.004,\n -0.0037,\n -0.0031,\n 0.0030,\n 0.0029,\n -0.0029,\n -0.0027,\n 0.0024,\n -0.0021,\n -0.0019,\n -0.0006,\n -0.0018,\n -0.0017,\n 0.0017,\n 0.0014,\n -0.0013,\n -0.0013,\n 0.0012,\n 0.0011,\n 0.0011,\n 0.001,\n 0.001,\n -0.0009,\n -0.0007,\n -0.0007\n ],\n dc: [\n -5.1093 * p,\n 0.2658 * p,\n -0.1448 * p,\n 0.0322 * p,\n 0.0133 * p,\n 0.0125 * p,\n -0.0015 * p,\n 0.0101 * p,\n -0.0097 * p,\n 0.0087 * p,\n 0.0074 * p,\n 0.0067 * p,\n -0.0063 * p,\n -0.0060 * p,\n 0.0057 * p,\n -0.0056 * p,\n -0.0052 * p,\n -0.0041 * p,\n -0.004 * p,\n -0.0038 * p,\n 0.0034 * p,\n -0.0029 * p,\n 0.0029 * p,\n 0.0028 * p,\n -0.0028 * p,\n 0.0023 * p,\n 0.0021 * p,\n 0.0019 * p,\n 0.0018 * p,\n -0.0017 * p,\n 0.0015 * p,\n 0.0014 * p,\n 0.0012 * p,\n -0.0012 * p,\n 0.001 * p,\n -0.001 * p,\n 0.0037 * p\n ]\n}\n\nexport default {\n north,\n south\n}\n","/**\n * @copyright 2013 Sonia Keys\n * @copyright 2016 commenthol\n * @license MIT\n * @module parallax\n */\n/**\n * Parallax: Chapter 40, Correction for Parallax.\n */\n\nimport base, { Coord } from './base.js' // eslint-disable-line no-unused-vars\nimport globe from './globe.js'\nimport sidereal from './sidereal.js'\nimport sexa from './sexagesimal.js'\n\nconst horPar = (8.794 / 3600) * Math.PI / 180 // 8\".794 arcseconds in radians\n\n/**\n * Horizontal returns equatorial horizontal parallax of a body.\n *\n * @param {number} Δ - distance in AU.\n * @return {number} parallax in radians.\n */\nexport function horizontal (Δ) {\n // (40.1) p. 279\n return Math.asin(Math.sin(horPar) / Δ)\n // return horPar / Δ // with sufficient accuracy\n}\n\n/**\n * Topocentric returns topocentric positions including parallax.\n *\n * Arguments α, δ are geocentric right ascension and declination in radians.\n * Δ is distance to the observed object in AU. ρsφ, ρcφ are parallax\n * constants (see package globe.) lon is geographic longitude of the observer,\n * jde is time of observation.\n *\n * @param {Coord} c - geocentric right ascension and declination in radians\n * @param {number} ρsφ - parallax constants (see package globe.)\n * @param {number} ρcφ - parallax constants (see package globe.)\n * @param {number} lon - geographic longitude of the observer (measured positively westwards!)\n * @param {number} jde - time of observation\n * @return {Coord} observed topocentric ra and dec in radians.\n */\nexport function topocentric (c, ρsφ, ρcφ, lon, jde) {\n const [α, δ, Δ] = [c.ra, c.dec, c.range]\n const π = horizontal(Δ)\n const θ0 = new sexa.Time(sidereal.apparent(jde)).rad()\n const H = base.pmod(θ0 - lon - α, 2 * Math.PI)\n const sπ = Math.sin(π)\n const [sH, cH] = base.sincos(H)\n const [sδ, cδ] = base.sincos(δ)\n const Δα = Math.atan2(-ρcφ * sπ * sH, cδ - ρcφ * sπ * cH) // (40.2) p. 279\n const α_ = α + Δα\n const δ_ = Math.atan2((sδ - ρsφ * sπ) * Math.cos(Δα), cδ - ρcφ * sπ * cH) // (40.3) p. 279\n return new Coord(α_, δ_)\n}\n\n/**\n * Topocentric2 returns topocentric corrections including parallax.\n *\n * This function implements the \"non-rigorous\" method descripted in the text.\n *\n * Note that results are corrections, not corrected coordinates.\n *\n * @param {Coord} c - geocentric right ascension and declination in radians\n * @param {number} ρsφ - parallax constants (see package globe.)\n * @param {number} ρcφ - parallax constants (see package globe.)\n * @param {number} lon - geographic longitude of the observer (measured positively westwards!)\n * @param {number} jde - time of observation\n * @return {Coord} observed topocentric ra and dec in radians.\n */\nexport function topocentric2 (c, ρsφ, ρcφ, lon, jde) {\n const [α, δ, Δ] = [c.ra, c.dec, c.range]\n const π = horizontal(Δ)\n const θ0 = new sexa.Time(sidereal.apparent(jde)).rad()\n const H = base.pmod(θ0 - lon - α, 2 * Math.PI)\n const [sH, cH] = base.sincos(H)\n const [sδ, cδ] = base.sincos(δ)\n const Δα = -π * ρcφ * sH / cδ // (40.4) p. 280\n const Δδ = -π * (ρsφ * cδ - ρcφ * cH * sδ) // (40.5) p. 280\n return new base.Coord(Δα, Δδ)\n}\n\n/**\n * Topocentric3 returns topocentric hour angle and declination including parallax.\n *\n * This function implements the \"alternative\" method described in the text.\n * The method should be similarly rigorous to that of Topocentric() and results\n * should be virtually consistent.\n *\n * @param {Coord} c - geocentric right ascension and declination in radians\n * @param {number} ρsφ - parallax constants (see package globe.)\n * @param {number} ρcφ - parallax constants (see package globe.)\n * @param {number} lon - geographic longitude of the observer (measured positively westwards!)\n * @param {number} jde - time of observation\n * @return {Array}\n * {number} H_ - topocentric hour angle\n * {number} δ_ - topocentric declination\n */\nexport function topocentric3 (c, ρsφ, ρcφ, lon, jde) {\n const [α, δ, Δ] = [c.ra, c.dec, c.range]\n const π = horizontal(Δ)\n const θ0 = new sexa.Time(sidereal.apparent(jde)).rad()\n const H = base.pmod(θ0 - lon - α, 2 * Math.PI)\n const sπ = Math.sin(π)\n const [sH, cH] = base.sincos(H)\n const [sδ, cδ] = base.sincos(δ)\n const A = cδ * sH\n const B = cδ * cH - ρcφ * sπ\n const C = sδ - ρsφ * sπ\n const q = Math.sqrt(A * A + B * B + C * C)\n const H_ = Math.atan2(A, B)\n const δ_ = Math.asin(C / q)\n return [H_, δ_]\n}\n\n/**\n * TopocentricEcliptical returns topocentric ecliptical coordinates including parallax.\n *\n * Arguments `c` are geocentric ecliptical longitude and latitude of a body,\n * s is its geocentric semidiameter. φ, h are the observer's latitude and\n * and height above the ellipsoid in meters. ε is the obliquity of the\n * ecliptic, θ is local sidereal time, π is equatorial horizontal parallax\n * of the body (see Horizonal()).\n *\n * All angular parameters and results are in radians.\n *\n * @param {Coord} c - geocentric right ascension and declination in radians\n * @param {number} s - geocentric semidiameter of `c`\n * @param {number} φ - observer's latitude\n * @param {number} h - observer's height above the ellipsoid in meters\n * @param {number} ε - is the obliquity of the ecliptic\n * @param {number} θ - local sidereal time\n * @param {number} π - equatorial horizontal parallax of the body\n * @return {Array}\n * {number} λ_ - observed topocentric longitude\n * {number} β_ - observed topocentric latitude\n * {number} s_ - observed topocentric semidiameter\n */\nexport function topocentricEcliptical (c, s, φ, h, ε, θ, π) {\n const [λ, β] = [c.lon, c.lat]\n const [S, C] = globe.Earth76.parallaxConstants(φ, h)\n const [sλ, cλ] = base.sincos(λ)\n const [sβ, cβ] = base.sincos(β)\n const [sε, cε] = base.sincos(ε)\n const [sθ, cθ] = base.sincos(θ)\n const sπ = Math.sin(π)\n const N = cλ * cβ - C * sπ * cθ\n let λ_ = Math.atan2(sλ * cβ - sπ * (S * sε + C * cε * sθ), N)\n if (λ_ < 0) {\n λ_ += 2 * Math.PI\n }\n const cλ_ = Math.cos(λ_)\n const β_ = Math.atan(cλ_ * (sβ - sπ * (S * cε - C * sε * sθ)) / N)\n const s_ = Math.asin(cλ_ * Math.cos(β_) * Math.sin(s) / N)\n return [λ_, β_, s_]\n}\n\nexport default {\n horizontal,\n topocentric,\n topocentric2,\n topocentric3,\n topocentricEcliptical\n}\n","/* eslint-disable n/no-callback-literal */\n/**\n * @copyright 2013 Sonia Keys\n * @copyright 2016 commenthol\n * @license MIT\n * @module perihelion\n */\n/**\n * Perihelion: Chapter 38, Planets in Perihelion and Aphelion.\n *\n * Functions Aphelion and Perihelion implement algorithms from the book\n * to return approximate results.\n *\n * For accurate results, Meeus describes the general technique of\n * interpolating from a precise ephemeris but does not give a complete\n * algorithm. The algorithm implemented here for Aphelion2 and Perihelion2\n * is to start with the approximate result and then crawl along the curve\n * at the specified time resolution until the desired extremum is found.\n * This algorithm slows down as higher accuracy is demanded. 1 day accuracy\n * is generally quick for planets other than Neptune.\n *\n * Meeus doesn't give an algorithm to handle the double extrema of Neptune.\n * The algorithm here is to pick starting points several years either side\n * of the approximate date and follow the slopes inward. The consequence of\n * starting farther from the extremum is that these functions are particularly\n * slow for Neptune. They are offered here though as a simple implementation\n * of Meeus's presentation in the book.\n */\nimport base from './base.js'\nimport interp from './interpolation.js'\nimport { Planet } from './planetposition.js' // eslint-disable-line no-unused-vars\n\n/**\n * Planet constants for first argument of Perihelion and Aphelion functions.\n * @enum {number}\n */\nconst planetsEnum = {\n mercury: 0,\n venus: 1,\n earth: 2,\n mars: 3,\n jupiter: 4,\n saturn: 5,\n uranus: 6,\n neptune: 7,\n embary: 8\n}\nexport const mercury = planetsEnum.mercury\nexport const venus = planetsEnum.venus\nexport const earth = planetsEnum.earth\nexport const mars = planetsEnum.mars\nexport const jupiter = planetsEnum.jupiter\nexport const saturn = planetsEnum.saturn\nexport const uranus = planetsEnum.uranus\nexport const neptune = planetsEnum.neptune\nexport const embary = planetsEnum.embary\n\n/**\n * Perihelion returns an approximate jde of the perihelion event nearest the given time.\n *\n * @param {planetsEnum} p - planet constant from above\n * @param {Number} year - year number indicating a time near the perihelion event.\n * @returns {Number} jde - time of the event\n */\nexport function perihelion (p, year) {\n return ap(p, year, false, pf)\n}\n\n/**\n * Aphelion returns an approximate jde of the aphelion event nearest the given time.\n *\n * @param {planetsEnum} p - planet constant from above\n * @param {Number} year - year number indicating a time near the aphelion event.\n * @returns {Number} jde - time of the event\n */\nexport function aphelion (p, year) {\n return ap(p, year, true, af)\n}\n\nconst pf = function (x) { // (x float64) float64\n return Math.floor(x + 0.5)\n}\n\nconst af = function (x) { // (x float64) float64\n return Math.floor(x) + 0.5\n}\n\nconst ap = function (p, y, a, f) { // (p int, y float64, a bool, f func(float64) float64) float64\n let i = p\n if (i === embary) {\n i = earth\n }\n const k = f(ka[i].a * (y - ka[i].b))\n let j = base.horner(k, ...c[i])\n if (p === earth) {\n let c = ep\n if (a) {\n c = ea\n }\n for (let i = 0; i < 5; i++) {\n j += c[i] * Math.sin((ec[i].a + ec[i].b * k) * Math.PI / 180)\n }\n }\n return j\n}\n\nconst ka = [\n { a: 4.15201, b: 2000.12 }, // mercury\n { a: 1.62549, b: 2000.53 }, // ...\n { a: 0.99997, b: 2000.01 },\n { a: 0.53166, b: 2001.78 },\n { a: 0.0843, b: 2011.2 },\n { a: 0.03393, b: 2003.52 },\n { a: 0.0119, b: 2051.1 },\n { a: 0.00607, b: 2047.5 } // neptune\n]\n\nconst c = [\n [2451590.257, 87.96934963], // mercury\n [2451738.233, 224.7008188, -0.0000000327], // ...\n [2451547.507, 365.2596358, 0.0000000156],\n [2452195.026, 686.9957857, -0.0000001187],\n [2455636.936, 4332.897065, 0.0001367],\n [2452830.12, 10764.21676, 0.000827],\n [2470213.5, 30694.8767, -0.00541],\n [2468895.1, 60190.33, 0.03429] // neptune\n]\n\nconst ec = [\n { a: 328.41, b: 132.788585 },\n { a: 316.13, b: 584.903153 },\n { a: 346.2, b: 450.380738 },\n { a: 136.95, b: 659.306737 },\n { a: 249.52, b: 329.653368 }\n]\n\nconst ep = [1.278, -0.055, -0.091, -0.056, -0.045]\nconst ea = [-1.352, 0.061, 0.062, 0.029, 0.031]\n\n/**\n * Perihelion2 returns the perihelion event nearest the given time.\n *\n * @param {Planet} planet - VSOP87 planet (EMBary is not allowed)\n * @param {Number} year - (float) decimal year number near the perihelion event\n * @param {Number} precision - desired precision of the time result, in days\n * @param {Function} [cb] - callback function for asynchronous processing `cb([jde, r])`\n * @returns {Array} [jde, r]\n * {Number} jde - time of the event\n * {Number} r - the distance of the planet from the Sun in AU.\n */\nexport function perihelion2 (planet, year, precision, cb) {\n return ap2(planetsEnum[planet.name], year, precision, planet, false, pf, cb)\n}\n\n/**\n * Aphelion2 returns the aphelion event nearest the given time.\n *\n * @param {Planet} planet - VSOP87 planet (EMBary is not allowed)\n * @param {Number} year - (float) decimal year number near the perihelion event\n * @param {Number} precision - desired precision of the time result, in days\n * @param {Function} [cb] - callback function for asynchronous processing `cb([jde, r])`\n * @returns {Array} [jde, r]\n * {Number} jde - time of the event\n * {Number} r - the distance of the planet from the Sun in AU.\n */\nexport function aphelion2 (planet, year, precision, cb) {\n return ap2(planetsEnum[planet.name], year, precision, planet, true, af, cb)\n}\n\nif (typeof setImmediate !== 'function') {\n const setImmediate = setTimeout // eslint-disable-line no-unused-vars\n}\n\nconst ap2 = function (p, y, d, v, a, f, cb) {\n const j1 = ap(p, y, a, f)\n if (p !== neptune) {\n return ap2a(j1, d, a, v, cb)\n }\n // handle the double extrema of Neptune\n if (cb) {\n ap2a(j1 - 5000, d, a, v, ([j0, r0]) => {\n ap2a(j1 + 5000, d, a, v, ([j2, r2]) => {\n if ((r0 > r2) === a) {\n cb([j0, r0])\n return\n }\n cb([j2, r2])\n })\n })\n } else {\n const [j0, r0] = ap2a(j1 - 5000, d, a, v)\n const [j2, r2] = ap2a(j1 + 5000, d, a, v)\n if ((r0 > r2) === a) {\n return [j0, r0]\n }\n return [j2, r2]\n }\n}\n\nconst ap2a = function (j1, d, a, v, cb) {\n let j0 = j1 - d\n let j2 = j1 + d\n const rr = new Array(3)\n rr[1] = v.position2000(j1).range\n rr[0] = v.position2000(j0).range\n rr[2] = v.position2000(j2).range\n\n function end () {\n const l = new interp.Len3(j0, j2, rr)\n const [jde, r] = l.extremum()\n return [jde, r]\n }\n\n function run () {\n if (a) {\n if (rr[1] > rr[0] && rr[1] > rr[2]) {\n cb && cb(end())\n return true\n }\n } else {\n if (rr[1] < rr[0] && rr[1] < rr[2]) {\n cb && cb(end())\n return true\n }\n }\n if ((rr[0] < rr[2]) === a) {\n j0 = j1\n j1 = j2\n j2 += d\n rr[0] = rr[1]\n rr[1] = rr[2]\n rr[2] = v.position2000(j2).range\n } else {\n j2 = j1\n j1 = j0\n j0 -= d\n rr[2] = rr[1]\n rr[1] = rr[0]\n rr[0] = v.position2000(j0).range\n }\n if (cb) {\n setImmediate(run, 0)\n }\n }\n\n if (cb) {\n run()\n } else {\n for (;;) {\n if (run()) {\n return end()\n }\n }\n }\n}\n\nexport default {\n mercury,\n venus,\n earth,\n mars,\n jupiter,\n saturn,\n uranus,\n neptune,\n embary,\n perihelion,\n aphelion,\n perihelion2,\n aphelion2\n}\n","/**\n * @copyright 2013 Sonia Keys\n * @copyright 2016 commenthol\n * @license MIT\n * @module refraction\n */\n/**\n * Refraction: Chapter 16: Atmospheric Refraction.\n *\n * Functions here assume atmospheric pressure of 1010 mb, temperature of\n * 10°C, and yellow light.\n */\nimport sexa from './sexagesimal.js'\nconst { sin, tan } = Math\nconst D2R = Math.PI / 180\n\nconst gt15true1 = new sexa.Angle(false, 0, 0, 58.294).rad()\nconst gt15true2 = new sexa.Angle(false, 0, 0, 0.0668).rad()\nconst gt15app1 = new sexa.Angle(false, 0, 0, 58.276).rad()\nconst gt15app2 = new sexa.Angle(false, 0, 0, 0.0824).rad()\n\n/**\n * gt15True returns refraction for obtaining true altitude when altitude\n * is greater than 15 degrees (about 0.26 radians.)\n *\n * h0 must be a measured apparent altitude of a celestial body in radians.\n *\n * Result is refraction to be subtracted from h0 to obtain the true altitude\n * of the body. Unit is radians.\n */\nexport function gt15True (h0) { // (h0 float64) float64\n // (16.1) p. 105\n const t = tan(Math.PI / 2 - h0)\n return gt15true1 * t - gt15true2 * t * t * t\n}\n\n/**\n * gt15Apparent returns refraction for obtaining apparent altitude when\n * altitude is greater than 15 degrees (about 0.26 radians.)\n *\n * h must be a computed true \"airless\" altitude of a celestial body in radians.\n *\n * Result is refraction to be added to h to obtain the apparent altitude\n * of the body. Unit is radians.\n */\nexport function gt15Apparent (h) { // (h float64) float64\n // (16.2) p. 105\n const t = tan(Math.PI / 2 - h)\n return gt15app1 * t - gt15app2 * t * t * t\n}\n\n/**\n * Bennett returns refraction for obtaining true altitude.\n *\n * h0 must be a measured apparent altitude of a celestial body in radians.\n *\n * Results are accurate to 0.07 arc min from horizon to zenith.\n *\n * Result is refraction to be subtracted from h0 to obtain the true altitude\n * of the body. Unit is radians.\n */\nexport function bennett (h0) { // (h0 float64) float64\n // (16.3) p. 106\n const c1 = D2R / 60\n const c731 = 7.31 * D2R * D2R\n const c44 = 4.4 * D2R\n return c1 / tan(h0 + c731 / (h0 + c44))\n}\n\n/**\n * Bennett2 returns refraction for obtaining true altitude.\n *\n * Similar to Bennett, but a correction is applied to give a more accurate\n * result.\n *\n * Results are accurate to 0.015 arc min. Result unit is radians.\n */\nexport function bennett2 (h0) { // (h0 float64) float64\n const cMin = 60 / D2R\n const c06 = 0.06 / cMin\n const c147 = 14.7 * cMin * D2R\n const c13 = 13 * D2R\n const R = bennett(h0)\n return R - c06 * sin(c147 * R + c13)\n}\n\n/**\n * Saemundsson returns refraction for obtaining apparent altitude.\n *\n * h must be a computed true \"airless\" altitude of a celestial body in radians.\n *\n * Result is refraction to be added to h to obtain the apparent altitude\n * of the body.\n *\n * Results are consistent with Bennett to within 4 arc sec.\n * Result unit is radians.\n */\nexport function saemundsson (h) { // (h float64) float64\n // (16.4) p. 106\n const c102 = 1.02 * D2R / 60\n const c103 = 10.3 * D2R * D2R\n const c511 = 5.11 * D2R\n return c102 / tan(h + c103 / (h + c511))\n}\n\nexport default {\n gt15True,\n gt15Apparent,\n bennett,\n bennett2,\n saemundsson\n}\n","/* eslint key-spacing: 1 */\n/**\n * @copyright 2013 Sonia Keys\n * @copyright 2016 commenthol\n * @license MIT\n * @module rise\n */\n/**\n * Rise: Chapter 15, Rising, Transit, and Setting.\n */\n\nimport base from './base.js'\nimport deltat from './deltat.js'\nimport elliptic from './elliptic.js'\nimport interp from './interpolation.js'\nimport julian from './julian.js'\nimport sexa from './sexagesimal.js'\nimport sidereal from './sidereal.js'\nimport { Coord as GlobeCoord } from './globe.js' // eslint-disable-line no-unused-vars\nimport { Planet } from './planetposition.js' // eslint-disable-line no-unused-vars\nconst { acos, asin, cos, sin } = Math\n\n/**\n * @typedef {object} RiseObj\n * @property {number} rise - in seconds\n * @property {number} transit - in seconds\n * @property {number} set - in seconds\n */\n\nconst SECS_PER_DEGREE = 240 // = 86400 / 360\nconst SECS_PER_DAY = 86400\nconst D2R = Math.PI / 180\n\nexport const errorAboveHorizon = base.errorCode('always above horizon', -1)\nexport const errorBelowHorizon = base.errorCode('always below horizon', 1)\n\n/**\n * mean refraction of the atmosphere\n */\nexport const meanRefraction = new sexa.Angle(false, 0, 34, 0).rad()\n\n/**\n * \"Standard altitudes\" for various bodies already including `meanRefraction` of 0°34'\n *\n * The standard altitude is the geometric altitude of the center of body\n * at the time of apparent rising or seting.\n */\nexport const stdh0 = {\n stellar: -meanRefraction,\n solar: new sexa.Angle(true, 0, 50, 0).rad(),\n // not containing meanRefraction\n lunar: sexa.angleFromDeg(0.7275),\n lunarMean: sexa.angleFromDeg(0.125)\n}\n\n/**\n * Helper function to obtain corrected refraction\n * @param {number} h0 - altitude of the body in radians containing `meanRefraction` of 0°34'\n * @param {number} [corr] - the calcluated refraction e.g. from package `refraction` in radians\n * @return {number} refraction value in radians\n */\nexport function refraction (h0, corr) {\n if (!corr) {\n return h0\n } else {\n return h0 - meanRefraction - corr\n }\n}\n\n/**\n * standard altitude for stars, planets at apparent rising, seting\n */\nexport const stdh0Stellar = (_refraction) => refraction(stdh0.stellar, _refraction)\nexport const Stdh0Stellar = stdh0Stellar() // for backward-compatibility\n/**\n * standard altitude for sun for upper limb of the disk\n */\nexport const stdh0Solar = (_refraction) => refraction(stdh0.solar, _refraction)\nexport const Stdh0Solar = stdh0Solar() // for backward-compatibility\n\n/**\n * standard altitude for moon (low accuracy)\n */\nexport const stdh0LunarMean = (_refraction) => {\n return stdh0.lunarMean - refraction(_refraction)\n}\nexport const Stdh0LunarMean = stdh0LunarMean() // for backward-compatibility\n/**\n * Stdh0Lunar is the standard altitude of the Moon considering π, the\n * Moon's horizontal parallax.\n * @param {number} π - the Moon's horizontal parallax\n * @param {number} [refraction] - optional value for refraction in radians if\n * omitted than meanRefraction is used\n * @return {number} altitude of Moon in radians\n */\nexport const stdh0Lunar = (π, refraction) => {\n return stdh0.lunar * π - (refraction || meanRefraction)\n}\nexport const Stdh0Lunar = stdh0Lunar // for backward-compatibility\n\n/**\n * @return {number} local angle in radians\n */\nexport function hourAngle (lat, h0, δ) {\n // approximate local hour angle\n const cosH = (sin(h0) - sin(lat) * sin(δ)) / (cos(lat) * cos(δ)) // (15.1) p. 102\n if (cosH < -1) {\n throw errorAboveHorizon\n } else if (cosH > 1) {\n throw errorBelowHorizon\n }\n const H = acos(cosH)\n return H\n}\n\n/**\n * @param {number} lon - longitude in radians\n * @param {number} α - right ascension in radians\n * @param {number} th0 - sidereal.apparent0UT in seconds of day `[0...86400[`\n * @return {number} time of transit in seconds of day `[0, 86400[`\n */\nfunction _mt (lon, α, th0) {\n // const mt = (((lon + α) * 180 / Math.PI - (th0 * 360 / 86400)) * 86400 / 360)\n const mt = (lon + α) * SECS_PER_DEGREE * 180 / Math.PI - th0\n return mt\n}\n\n/**\n * @param {number} Th0 - sidereal.apparent0UT in seconds of day `[0...86400[`\n * @param {number} m - motion in seconds of day `[0...86400[`\n * @return {number} new siderial time seconds of day `[0...86400[`\n */\nfunction _th0 (Th0, m) {\n // in original formula Th0 = 0...360 and m = 0...1 -> return value would be in 0...360 degrees\n // Th0 /= 240\n // m /= 86400\n const th0 = base.pmod(Th0 + m * 360.985647 / 360, SECS_PER_DAY) // p103\n return th0 // 0...86400 in seconds angle\n}\n\n/**\n * maintain backward compatibility - will be removed in v2\n * return value in future will be an object not an array\n * @private\n * @param {RiseObj} rs\n * @return {RiseObj}\n */\nfunction _compatibility (rs) {\n const _rs = [rs.rise, rs.transit, rs.set]\n _rs.rise = rs.rise\n _rs.transit = rs.transit\n _rs.set = rs.set\n return _rs\n}\n\n/**\n * ApproxTimes computes approximate UT rise, transit and set times for\n * a celestial object on a day of interest.\n *\n * The function argurments do not actually include the day, but do include\n * values computed from the day.\n *\n * @param {GlobeCoord} p - is geographic coordinates of observer.\n * @param {number} h0 - is \"standard altitude\" of the body in radians\n * @param {number} Th0 - is apparent sidereal time at 0h UT at Greenwich in seconds\n * (range 0...86400) must be the time on the day of interest, in seconds.\n * See sidereal.apparent0UT\n * @param {number} α - right ascension (radians)\n * @param {number} δ - declination (radians)\n * @return {RiseObj} Result units are seconds and are in the range [0,86400)\n * @throws Error\n */\nexport function approxTimes (p, h0, Th0, α, δ) {\n const H0 = hourAngle(p.lat, h0, δ) * SECS_PER_DEGREE * 180 / Math.PI // in degrees per day === seconds\n // approximate transit, rise, set times.\n // (15.2) p. 102.0\n const mt = _mt(p.lon, α, Th0)\n const rs = {}\n rs.transit = base.pmod(mt, SECS_PER_DAY)\n rs.rise = base.pmod(mt - H0, SECS_PER_DAY)\n rs.set = base.pmod(mt + H0, SECS_PER_DAY)\n return _compatibility(rs)\n}\n\n/**\n * Times computes UT rise, transit and set times for a celestial object on\n * a day of interest.\n *\n * The function argurments do not actually include the day, but do include\n * a number of values computed from the day.\n *\n * @param {GlobeCoord} p - is geographic coordinates of observer.\n * @param {number} ΔT - is delta T in seconds\n * @param {number} h0 - is \"standard altitude\" of the body in radians\n * @param {number} Th0 - is apparent sidereal time at 0h UT at Greenwich in seconds\n * (range 0...86400) must be the time on the day of interest, in seconds.\n * See sidereal.apparent0UT\n * @param {Array<number>} α3 - slices of three right ascensions\n * @param {Array<number>} δ3 - slices of three declinations.\n * α3, δ3 must be values at 0h dynamical time for the day before, the day of,\n * and the day after the day of interest. Units are radians.\n *\n * @return {RiseObj} Result units are seconds and are in the range [0,86400)\n * @throws Error\n */\nexport function times (p, ΔT, h0, Th0, α3, δ3) { // (p globe.Coord, ΔT, h0, Th0 float64, α3, δ3 []float64) (mRise, mTransit, mSet float64, err error)\n const rs = approxTimes(p, h0, Th0, α3[1], δ3[1])\n const d3α = new interp.Len3(-SECS_PER_DAY, SECS_PER_DAY, α3)\n const d3δ = new interp.Len3(-SECS_PER_DAY, SECS_PER_DAY, δ3)\n\n // adjust mTransit\n const ut = rs.transit + ΔT\n const α = d3α.interpolateX(ut)\n const th0 = _th0(Th0, rs.transit)\n const H = -1 * _mt(p.lon, α, th0) // in secs // Hmeus = 0...360\n rs.transit -= H\n\n // adjust mRise, mSet\n const [sLat, cLat] = base.sincos(p.lat)\n\n const adjustRS = function (m) {\n const ut = m + ΔT\n const α = d3α.interpolateX(ut)\n const δ = d3δ.interpolateX(ut)\n const th0 = _th0(Th0, m)\n const H = -1 * _mt(p.lon, α, th0)\n const Hrad = (H / SECS_PER_DEGREE) * D2R\n const h = asin(((sLat * sin(δ)) + (cLat * cos(δ) * cos(Hrad)))) // formula 13.6\n const Δm = (SECS_PER_DAY * (h - h0) / (cos(δ) * cLat * sin(Hrad) * 2 * Math.PI)) // formula p103 3\n return m + Δm\n }\n\n rs.rise = adjustRS(rs.rise)\n rs.set = adjustRS(rs.set)\n\n return _compatibility(rs)\n}\n\n/**\n * RisePlanet computes rise, transit and set times for a planet on a day of interest.\n */\nexport class PlanetRise {\n /**\n * @param {number|Date} jd - Julian Day starting at midnight or Date object\n * @param {number} lat - geographic latitude of the observerin degrees\n * @param {number} lon - geographic longitude of the observer in degrees (measured positively westward)\n * @param {Planet} earth - VSOP87 Planet object for Earth\n * @param {Planet} planet - VSOP87 Planet object of observed body\n * @param {object} [opts]\n * @param {boolean} [opts.date] - return times as Date objects\n * @param {number} [opts.refraction] - use different refraction than `stdh0Stellar`\n */\n constructor (jd, lat, lon, earth, planet, opts) {\n this.opts = opts || {}\n this.refraction = this.opts.refraction || stdh0Stellar()\n if (jd instanceof Date) {\n jd = new julian.Calendar().fromDate(jd).toJD()\n }\n this.jd = Math.floor(jd - 0.5) + 0.5 // start at midnight\n this.lat = lat * D2R // convert to radians\n this.lon = lon * D2R\n const cal = new julian.Calendar().fromJD(this.jd)\n this.jde = cal.toJDE()\n this.ΔT = deltat.deltaT(cal.toYear())\n this.earth = earth\n this.planet = planet\n }\n\n approxTimes () {\n const body = elliptic.position(this.planet, this.earth, this.jde)\n const Th0 = sidereal.apparent0UT(this.jd)\n const rs = approxTimes(\n { lat: this.lat, lon: this.lon }, this.refraction,\n Th0, body.ra, body.dec\n )\n return this._rsToJD(rs)\n }\n\n times () {\n const body = [\n elliptic.position(this.planet, this.earth, this.jde - 1),\n elliptic.position(this.planet, this.earth, this.jde),\n elliptic.position(this.planet, this.earth, this.jde + 1)\n ]\n const Th0 = sidereal.apparent0UT(this.jd)\n const rs = times(\n { lat: this.lat, lon: this.lon }, this.ΔT, this.refraction,\n Th0, this._toArr(body, 'ra'), this._toArr(body, 'dec')\n )\n return this._rsToJD(rs)\n }\n\n /** @private */\n _toArr (body, p) {\n return body.map((item) => {\n return item[p]\n })\n }\n\n /** @private */\n _rsToJD (rs) {\n return {\n rise: this._toJD(rs.rise),\n transit: this._toJD(rs.transit),\n set: this._toJD(rs.set)\n }\n }\n\n /** @private */\n _toJD (secs) {\n const jd = this.jd + secs / 86400\n if (this.opts.date) {\n return new julian.Calendar().fromJD(jd).toDate()\n } else {\n return jd\n }\n }\n}\n\nexport default {\n errorAboveHorizon,\n errorBelowHorizon,\n meanRefraction,\n stdh0,\n refraction,\n stdh0Stellar,\n Stdh0Stellar,\n stdh0Solar,\n Stdh0Solar,\n stdh0LunarMean,\n Stdh0LunarMean,\n stdh0Lunar,\n Stdh0Lunar,\n hourAngle,\n approxTimes,\n times,\n PlanetRise\n}\n","/**\n * @copyright 2013 Sonia Keys\n * @copyright 2016 commenthol\n * @license MIT\n * @module saturnmoons\n */\n/**\n * Saturnmoons: Chapter 46, Positions of the Satellites of Saturn\n */\n\nimport base from './base.js'\nimport coord from './coord.js'\nimport planetposition, { Planet } from './planetposition.js' // eslint-disable-line no-unused-vars\nimport precess from './precess.js'\nimport solar from './solar.js'\n\n// array positions of Saturnmoons returned from positions().\nexport const mimas = 0\nexport const enceladus = 1\nexport const tethys = 2\nexport const dione = 3\nexport const rhea = 4\nexport const titan = 5\nexport const hyperion = 6\nexport const iapetus = 7\n\n/**\n * XY holds coordinates returned from positions().\n */\nfunction XY (x, y) {\n this.x = x\n this.y = y\n}\n\nconst d = Math.PI / 180\n\n/**\n * Positions returns positions of the eight major moons of Saturn.\n *\n * Results returned in argument pos, which must not be undefined.\n *\n * Result units are Saturn radii.\n *\n * @param {number} jde - Julian ephemeris day\n * @param {Planet} earth - VSOP87 planet Earth // eslint-disable-line no-unused-vars\n * @param {Planet} saturn - VSOP87 planet Saturn // eslint-disable-line no-unused-vars\n * @return {XY[]} Array of Moon Positions in `XY`\n * Use `M.mimas ... M.iapetus` to resolve to Moon and its position at `jde`\n */\nexport function positions (jde, earth, saturn) {\n const sol = solar.trueVSOP87(earth, jde)\n const [s, β, R] = [sol.lon, sol.lat, sol.range]\n const [ss, cs] = base.sincos(s)\n const sβ = Math.sin(β)\n let Δ = 9.0\n let x\n let y\n let z = 0\n let _jde\n\n const f = function () {\n const τ = base.lightTime(Δ)\n _jde = jde - τ\n const { lon, lat, range } = saturn.position(_jde)\n const fk5 = planetposition.toFK5(lon, lat, _jde) // eslint-disable-line no-unused-vars\n const [l, b] = [fk5.lon, fk5.lat]\n const [sl, cl] = base.sincos(l)\n const [sb, cb] = base.sincos(b)\n x = range * cb * cl + R * cs\n y = range * cb * sl + R * ss\n z = range * sb + R * sβ\n Δ = Math.sqrt(x * x + y * y + z * z)\n }\n f()\n f()\n\n let λ0 = Math.atan2(y, x)\n let β0 = Math.atan(z / Math.hypot(x, y))\n let ecl = new coord.Ecliptic(λ0, β0)\n ecl = precess.eclipticPosition(ecl, base.JDEToJulianYear(jde), base.JDEToJulianYear(base.B1950))\n λ0 = ecl.lon\n β0 = ecl.lat\n const q = new Qs(_jde)\n const s4 = [\n new R4(), // 0 unused\n q.mimas(),\n q.enceladus(),\n q.tethys(),\n q.dione(),\n q.rhea(),\n q.titan(),\n q.hyperion(),\n q.iapetus()\n ]\n\n const X = new Array(9).fill(0)\n const Y = new Array(9).fill(0)\n const Z = new Array(9).fill(0)\n for (let j = 1; j <= 8; j++) {\n const u = s4[j].λ - s4[j].Ω\n const w = s4[j].Ω - 168.8112 * d\n const [su, cu] = base.sincos(u)\n const [sw, cw] = base.sincos(w)\n const [sγ, cγ] = base.sincos(s4[j].γ)\n const r = s4[j].r\n X[j] = r * (cu * cw - su * cγ * sw)\n Y[j] = r * (su * cw * cγ + cu * sw)\n Z[j] = r * su * sγ\n }\n Z[0] = 1\n const [sλ0, cλ0] = base.sincos(λ0)\n const [sβ0, cβ0] = base.sincos(β0)\n const A = new Array(9).fill(0)\n const B = new Array(9).fill(0)\n const C = new Array(9).fill(0)\n for (const j in X) {\n let a = X[j]\n let b = q.c1 * Y[j] - q.s1 * Z[j]\n const c = q.s1 * Y[j] + q.c1 * Z[j]\n const a0 = q.c2 * a - q.s2 * b\n b = q.s2 * a + q.c2 * b\n a = a0\n\n A[j] = a * sλ0 - b * cλ0\n b = a * cλ0 + b * sλ0\n\n B[j] = b * cβ0 + c * sβ0\n C[j] = c * cβ0 - b * sβ0\n }\n\n const pos = new Array(9)\n const D = Math.atan2(A[0], C[0])\n const [sD, cD] = base.sincos(D)\n for (let j = 1; j <= 8; j++) {\n X[j] = A[j] * cD - C[j] * sD\n Y[j] = A[j] * sD + C[j] * cD\n Z[j] = B[j]\n const d = X[j] / s4[j].r\n X[j] += Math.abs(Z[j]) / k[j] * Math.sqrt(1 - d * d)\n const W = Δ / (Δ + Z[j] / 2475)\n pos[j - 1] = new XY(X[j] * W, Y[j] * W)\n }\n return pos\n}\n\nconst k = [0, 20947, 23715, 26382, 29876, 35313, 53800, 59222, 91820]\n\nfunction R4 (λ, r, γ, Ω) {\n this.λ = λ || 0\n this.r = r || 0\n this.γ = γ || 0\n this.Ω = Ω || 0\n}\n\nexport function Qs (jde) {\n this.t1 = jde - 2411093\n this.t2 = this.t1 / 365.25\n this.t3 = (jde - 2433282.423) / 365.25 + 1950\n this.t4 = jde - 2411368\n this.t5 = this.t4 / 365.25\n this.t6 = jde - 2415020\n this.t7 = this.t6 / 36525\n this.t8 = this.t6 / 365.25\n this.t9 = (jde - 2442000.5) / 365.25\n this.t10 = jde - 2409786\n this.t11 = this.t10 / 36525\n this.W0 = 5.095 * d * (this.t3 - 1866.39)\n this.W1 = 74.4 * d + 32.39 * d * this.t2\n this.W2 = 134.3 * d + 92.62 * d * this.t2\n this.W3 = 42 * d - 0.5118 * d * this.t5\n this.W4 = 276.59 * d + 0.5118 * d * this.t5\n this.W5 = 267.2635 * d + 1222.1136 * d * this.t7\n this.W6 = 175.4762 * d + 1221.5515 * d * this.t7\n this.W7 = 2.4891 * d + 0.002435 * d * this.t7\n this.W8 = 113.35 * d - 0.2597 * d * this.t7\n this.s1 = Math.sin(28.0817 * d)\n this.c1 = Math.cos(28.0817 * d)\n this.s2 = Math.sin(168.8112 * d)\n this.c2 = Math.cos(168.8112 * d)\n this.e1 = 0.05589 - 0.000346 * this.t7\n this.sW0 = Math.sin(this.W0)\n this.s3W0 = Math.sin(3 * this.W0)\n this.s5W0 = Math.sin(5 * this.W0)\n this.sW1 = Math.sin(this.W1)\n this.sW2 = Math.sin(this.W2)\n this.sW3 = Math.sin(this.W3)\n this.cW3 = Math.cos(this.W3)\n this.sW4 = Math.sin(this.W4)\n this.cW4 = Math.cos(this.W4)\n this.sW7 = Math.sin(this.W7)\n this.cW7 = Math.cos(this.W7)\n return this\n}\n\nQs.prototype.mimas = function () {\n const r = new R4()\n const L = 127.64 * d + 381.994497 * d * this.t1 -\n 43.57 * d * this.sW0 - 0.72 * d * this.s3W0 - 0.02144 * d * this.s5W0\n const p = 106.1 * d + 365.549 * d * this.t2\n const M = L - p\n const C = 2.18287 * d * Math.sin(M) +\n 0.025988 * d * Math.sin(2 * M) + 0.00043 * d * Math.sin(3 * M)\n r.λ = L + C\n r.r = 3.06879 / (1 + 0.01905 * Math.cos(M + C))\n r.γ = 1.563 * d\n r.Ω = 54.5 * d - 365.072 * d * this.t2\n return r\n}\n\nQs.prototype.enceladus = function () {\n const r = new R4()\n const L = 200.317 * d + 262.7319002 * d * this.t1 + 0.25667 * d * this.sW1 + 0.20883 * d * this.sW2\n const p = 309.107 * d + 123.44121 * d * this.t2\n const M = L - p\n const C = 0.55577 * d * Math.sin(M) + 0.00168 * d * Math.sin(2 * M)\n r.λ = L + C\n r.r = 3.94118 / (1 + 0.00485 * Math.cos(M + C))\n r.γ = 0.0262 * d\n r.Ω = 348 * d - 151.95 * d * this.t2\n return r\n}\n\nQs.prototype.tethys = function () {\n const r = new R4()\n r.λ = 285.306 * d + 190.69791226 * d * this.t1 +\n 2.063 * d * this.sW0 + 0.03409 * d * this.s3W0 + 0.001015 * d * this.s5W0\n r.r = 4.880998\n r.γ = 1.0976 * d\n r.Ω = 111.33 * d - 72.2441 * d * this.t2\n return r\n}\n\nQs.prototype.dione = function () {\n const r = new R4()\n const L = 254.712 * d + 131.53493193 * d * this.t1 - 0.0215 * d * this.sW1 - 0.01733 * d * this.sW2\n const p = 174.8 * d + 30.82 * d * this.t2\n const M = L - p\n const C = 0.24717 * d * Math.sin(M) + 0.00033 * d * Math.sin(2 * M)\n r.λ = L + C\n r.r = 6.24871 / (1 + 0.002157 * Math.cos(M + C))\n r.γ = 0.0139 * d\n r.Ω = 232 * d - 30.27 * d * this.t2\n return r\n}\n\nQs.prototype.rhea = function () {\n const pʹ = 342.7 * d + 10.057 * d * this.t2\n const [spʹ, cpʹ] = base.sincos(pʹ)\n const a1 = 0.000265 * spʹ + 0.001 * this.sW4\n const a2 = 0.000265 * cpʹ + 0.001 * this.cW4\n const e = Math.hypot(a1, a2)\n const p = Math.atan2(a1, a2)\n const N = 345 * d - 10.057 * d * this.t2\n const [sN, cN] = base.sincos(N)\n const λʹ = 359.244 * d + 79.6900472 * d * this.t1 + 0.086754 * d * sN\n const i = 28.0362 * d + 0.346898 * d * cN + 0.0193 * d * this.cW3\n const Ω = 168.8034 * d + 0.736936 * d * sN + 0.041 * d * this.sW3\n const a = 8.725924\n return this.subr(λʹ, p, e, a, Ω, i)\n}\n\nQs.prototype.subr = function (λʹ, p, e, a, Ω, i) {\n const r = new R4()\n const M = λʹ - p\n const e2 = e * e\n const e3 = e2 * e\n const e4 = e2 * e2\n const e5 = e3 * e2\n const C = (2 * e - 0.25 * e3 + 0.0520833333 * e5) * Math.sin(M) +\n (1.25 * e2 - 0.458333333 * e4) * Math.sin(2 * M) +\n (1.083333333 * e3 - 0.671875 * e5) * Math.sin(3 * M) +\n 1.072917 * e4 * Math.sin(4 * M) + 1.142708 * e5 * Math.sin(5 * M)\n r.r = a * (1 - e2) / (1 + e * Math.cos(M + C)) // return value\n const g = Ω - 168.8112 * d\n const [si, ci] = base.sincos(i)\n const [sg, cg] = base.sincos(g)\n const a1 = si * sg\n const a2 = this.c1 * si * cg - this.s1 * ci\n r.γ = Math.asin(Math.hypot(a1, a2)) // return value\n const u = Math.atan2(a1, a2)\n r.Ω = 168.8112 * d + u // return value (w)\n const h = this.c1 * si - this.s1 * ci * cg\n const ψ = Math.atan2(this.s1 * sg, h)\n r.λ = λʹ + C + u - g - ψ // return value\n return r\n}\n\nQs.prototype.titan = function () {\n const L = 261.1582 * d + 22.57697855 * d * this.t4 + 0.074025 * d * this.sW3\n const iʹ = 27.45141 * d + 0.295999 * d * this.cW3\n const Ωʹ = 168.66925 * d + 0.628808 * d * this.sW3\n const [siʹ, ciʹ] = base.sincos(iʹ)\n const [sΩʹW8, cΩʹW8] = base.sincos(Ωʹ - this.W8)\n const a1 = this.sW7 * sΩʹW8\n const a2 = this.cW7 * siʹ - this.sW7 * ciʹ * cΩʹW8\n const g0 = 102.8623 * d\n const ψ = Math.atan2(a1, a2)\n const s = Math.hypot(a1, a2)\n let g = this.W4 - Ωʹ - ψ\n let ϖ = 0\n const [s2g0, c2g0] = base.sincos(2 * g0)\n const f = () => {\n ϖ = this.W4 + 0.37515 * d * (Math.sin(2 * g) - s2g0)\n g = ϖ - Ωʹ - ψ\n }\n f()\n f()\n f()\n const eʹ = 0.029092 + 0.00019048 * (Math.cos(2 * g) - c2g0)\n const qq = 2 * (this.W5 - ϖ)\n const b1 = siʹ * sΩʹW8\n const b2 = this.cW7 * siʹ * cΩʹW8 - this.sW7 * ciʹ\n const θ = Math.atan2(b1, b2) + this.W8\n const [sq, cq] = base.sincos(qq)\n const e = eʹ + 0.002778797 * eʹ * cq\n const p = ϖ + 0.159215 * d * sq\n const u = 2 * this.W5 - 2 * θ + ψ\n const [su, cu] = base.sincos(u)\n const h = 0.9375 * eʹ * eʹ * sq + 0.1875 * s * s * Math.sin(2 * (this.W5 - θ))\n const λʹ = L - 0.254744 * d *\n (this.e1 * Math.sin(this.W6) + 0.75 * this.e1 * this.e1 * Math.sin(2 * this.W6) + h)\n const i = iʹ + 0.031843 * d * s * cu\n const Ω = Ωʹ + 0.031843 * d * s * su / siʹ\n const a = 20.216193\n return this.subr(λʹ, p, e, a, Ω, i)\n}\n\nQs.prototype.hyperion = function () {\n const η = 92.39 * d + 0.5621071 * d * this.t6\n const ζ = 148.19 * d - 19.18 * d * this.t8\n const θ = 184.8 * d - 35.41 * d * this.t9\n const θʹ = θ - 7.5 * d\n const as = 176 * d + 12.22 * d * this.t8\n const bs = 8 * d + 24.44 * d * this.t8\n const cs = bs + 5 * d\n const ϖ = 69.898 * d - 18.67088 * d * this.t8\n const φ = 2 * (ϖ - this.W5)\n const χ = 94.9 * d - 2.292 * d * this.t8\n const [sη, cη] = base.sincos(η)\n const [sζ, cζ] = base.sincos(ζ)\n const [s2ζ, c2ζ] = base.sincos(2 * ζ)\n const [s3ζ, c3ζ] = base.sincos(3 * ζ)\n const [sζpη, cζpη] = base.sincos(ζ + η)\n const [sζmη, cζmη] = base.sincos(ζ - η)\n const [sφ, cφ] = base.sincos(φ)\n const [sχ, cχ] = base.sincos(χ)\n const [scs, ccs] = base.sincos(cs)\n const a = 24.50601 - 0.08686 * cη - 0.00166 * cζpη + 0.00175 * cζmη\n const e = 0.103458 - 0.004099 * cη - 0.000167 * cζpη + 0.000235 * cζmη +\n 0.02303 * cζ - 0.00212 * c2ζ + 0.000151 * c3ζ + 0.00013 * cφ\n const p = ϖ + 0.15648 * d * sχ - 0.4457 * d * sη - 0.2657 * d * sζpη - 0.3573 * d * sζmη -\n 12.872 * d * sζ + 1.668 * d * s2ζ - 0.2419 * d * s3ζ - 0.07 * d * sφ\n const λʹ = 177.047 * d + 16.91993829 * d * this.t6 + 0.15648 * d * sχ + 9.142 * d * sη +\n 0.007 * d * Math.sin(2 * η) - 0.014 * d * Math.sin(3 * η) + 0.2275 * d * sζpη +\n 0.2112 * d * sζmη - 0.26 * d * sζ - 0.0098 * d * s2ζ -\n 0.013 * d * Math.sin(as) + 0.017 * d * Math.sin(bs) - 0.0303 * d * sφ\n const i = 27.3347 * d + 0.6434886 * d * cχ + 0.315 * d * this.cW3 + 0.018 * d * Math.cos(θ) -\n 0.018 * d * ccs\n const Ω = 168.6812 * d + 1.40136 * d * cχ + 0.68599 * d * this.sW3 - 0.0392 * d * scs +\n 0.0366 * d * Math.sin(θʹ)\n return this.subr(λʹ, p, e, a, Ω, i)\n}\n\nQs.prototype.iapetus = function () {\n const L = 261.1582 * d + 22.57697855 * d * this.t4\n const ϖʹ = 91.796 * d + 0.562 * d * this.t7\n const ψ = 4.367 * d - 0.195 * d * this.t7\n const θ = 146.819 * d - 3.198 * d * this.t7\n const φ = 60.47 * d + 1.521 * d * this.t7\n const Φ = 205.055 * d - 2.091 * d * this.t7\n const eʹ = 0.028298 + 0.001156 * this.t11\n const ϖ0 = 352.91 * d + 11.71 * d * this.t11\n const μ = 76.3852 * d + 4.53795125 * d * this.t10\n const iʹ = base.horner(this.t11, 18.4602 * d, -0.9518 * d, -0.072 * d, 0.0054 * d)\n const Ωʹ = base.horner(this.t11, 143.198 * d, -3.919 * d, 0.116 * d, 0.008 * d)\n const l = μ - ϖ0\n const g = ϖ0 - Ωʹ - ψ\n const g1 = ϖ0 - Ωʹ - φ\n const ls = this.W5 - ϖʹ\n const gs = ϖʹ - θ\n const lT = L - this.W4\n const gT = this.W4 - Φ\n const u1 = 2 * (l + g - ls - gs)\n const u2 = l + g1 - lT - gT\n const u3 = l + 2 * (g - ls - gs)\n const u4 = lT + gT - g1\n const u5 = 2 * (ls + gs)\n const [sl, cl] = base.sincos(l)\n const [su1, cu1] = base.sincos(u1)\n const [su2, cu2] = base.sincos(u2)\n const [su3, cu3] = base.sincos(u3)\n const [su4, cu4] = base.sincos(u4)\n const [slu2, clu2] = base.sincos(l + u2)\n const [sg1gT, cg1gT] = base.sincos(g1 - gT)\n const [su52g, cu52g] = base.sincos(u5 - 2 * g)\n const [su5ψ, cu5ψ] = base.sincos(u5 + ψ)\n const [su2φ, cu2φ] = base.sincos(u2 + φ)\n const [s5, c5] = base.sincos(l + g1 + lT + gT + φ)\n const a = 58.935028 + 0.004638 * cu1 + 0.058222 * cu2\n const e = eʹ - 0.0014097 * cg1gT + 0.0003733 * cu52g +\n 0.000118 * cu3 + 0.0002408 * cl + 0.0002849 * clu2 + 0.000619 * cu4\n const w = 0.08077 * d * sg1gT + 0.02139 * d * su52g - 0.00676 * d * su3 +\n 0.0138 * d * sl + 0.01632 * d * slu2 + 0.03547 * d * su4\n const p = ϖ0 + w / eʹ\n const λʹ = μ - 0.04299 * d * su2 - 0.00789 * d * su1 - 0.06312 * d * Math.sin(ls) -\n 0.00295 * d * Math.sin(2 * ls) - 0.02231 * d * Math.sin(u5) + 0.0065 * d * su5ψ\n const i = iʹ + 0.04204 * d * cu5ψ + 0.00235 * d * c5 + 0.0036 * d * cu2φ\n const wʹ = 0.04204 * d * su5ψ + 0.00235 * d * s5 + 0.00358 * d * su2φ\n const Ω = Ωʹ + wʹ / Math.sin(iʹ)\n return this.subr(λʹ, p, e, a, Ω, i)\n}\n\nexport default {\n mimas,\n enceladus,\n tethys,\n dione,\n rhea,\n titan,\n hyperion,\n iapetus,\n positions,\n Qs\n}\n","/**\n * @copyright 2013 Sonia Keys\n * @copyright 2016 commenthol\n * @license MIT\n * @module solardisk\n */\n/**\n * Solardisk: Chapter 29, Ephemeris for Physical Observations of the Sun.\n */\n\nimport base from './base.js'\nimport nutation from './nutation.js'\nimport solar from './solar.js'\n\n/**\n * Ephemeris returns the apparent orientation of the sun at the given jd.\n *\n * Results:\n * P: Position angle of the solar north pole.\n * B0: Heliographic latitude of the center of the solar disk.\n * L0: Heliographic longitude of the center of the solar disk.\n *\n * All results in radians.\n */\nexport function ephemeris (jd, earth) { // (jd float64, e *pp.V87Planet) (P, B0, L0 float64)\n const θ = (jd - 2398220) * 2 * Math.PI / 25.38\n const I = 7.25 * Math.PI / 180\n const K = 73.6667 * Math.PI / 180 +\n 1.3958333 * Math.PI / 180 * (jd - 2396758) / base.JulianCentury\n\n const solarPos = solar.trueVSOP87(earth, jd)\n const L = solarPos.lon\n const R = solarPos.range\n const [Δψ, Δε] = nutation.nutation(jd)\n const ε0 = nutation.meanObliquity(jd)\n const ε = ε0 + Δε\n const λ = L - 20.4898 / 3600 * Math.PI / 180 / R\n const λp = λ + Δψ\n\n const [sλK, cλK] = base.sincos(λ - K)\n const [sI, cI] = base.sincos(I)\n\n const tx = -Math.cos(λp) * Math.tan(ε)\n const ty = -cλK * Math.tan(I)\n const P = Math.atan(tx) + Math.atan(ty)\n const B0 = Math.asin(sλK * sI)\n const η = Math.atan2(-sλK * cI, -cλK)\n const L0 = base.pmod(η - θ, 2 * Math.PI)\n return [P, B0, L0]\n}\n\n/**\n * Cycle returns the jd of the start of the given synodic rotation.\n *\n * Argument c is the \"Carrington\" cycle number.\n *\n * Result is a dynamical time (not UT).\n */\nexport function cycle (c) { // (c int) (jde float64)\n const jde = 2398140.227 + 27.2752316 * c\n const m = 281.96 * Math.PI / 180 + 26.882476 * Math.PI / 180 * c\n const [s2m, c2m] = base.sincos(2 * m)\n return jde + 0.1454 * Math.sin(m) - 0.0085 * s2m - 0.0141 * c2m\n}\n\nexport default {\n ephemeris,\n cycle\n}\n","/**\n * @copyright 2013 Sonia Keys\n * @copyright 2016 commenthol\n * @license MIT\n * @module solstice\n */\n/**\n * Solstice: Chapter 27: Equinoxes and Solstices.\n */\n\nimport base from './base.js'\nimport solar from './solar.js'\nconst { abs, cos, sin } = Math\nconst D2R = Math.PI / 180\n\n// table 27.a - for years from -1000 to +1000\nconst mc0 = [1721139.29189, 365242.13740, 0.06134, 0.00111, -0.00071]\nconst jc0 = [1721233.25401, 365241.72562, -0.05323, 0.00907, 0.00025]\nconst sc0 = [1721325.70455, 365242.49558, -0.11677, -0.00297, 0.00074]\nconst dc0 = [1721414.39987, 365242.88257, -0.00769, -0.00933, -0.00006]\n\n// table 27.b - for years from +1000 to +3000\nconst mc2 = [2451623.80984, 365242.37404, 0.05169, -0.00411, -0.00057]\nconst jc2 = [2451716.56767, 365241.62603, 0.00325, 0.00888, -0.00030]\nconst sc2 = [2451810.21715, 365242.01767, -0.11575, 0.00337, 0.00078]\nconst dc2 = [2451900.05952, 365242.74049, -0.06223, -0.00823, 0.00032]\n\n// table 27.c\nconst terms = (function () {\n const term = [\n [485, 324.96, 1934.136],\n [203, 337.23, 32964.467],\n [199, 342.08, 20.186],\n [182, 27.85, 445267.112],\n [156, 73.14, 45036.886],\n [136, 171.52, 22518.443],\n [77, 222.54, 65928.934],\n [74, 296.72, 3034.906],\n [70, 243.58, 9037.513],\n [58, 119.81, 33718.147],\n [52, 297.17, 150.678],\n [50, 21.02, 2281.226],\n [45, 247.54, 29929.562],\n [44, 325.15, 31555.956],\n [29, 60.93, 4443.417],\n [18, 155.12, 67555.328],\n [17, 288.79, 4562.452],\n [16, 198.04, 62894.029],\n [14, 199.76, 31436.921],\n [12, 95.39, 14577.848],\n [12, 287.11, 31931.756],\n [12, 320.81, 34777.259],\n [9, 227.73, 1222.114],\n [8, 15.45, 16859.074]\n ]\n return term.map((t) => {\n return {\n a: t[0],\n b: t[1],\n c: t[2]\n }\n })\n})()\n\n/**\n * March returns the JDE of the March equinox for the given year.\n *\n * Results are valid for the years -1000 to +3000.\n *\n * Accuracy is within one minute of time for the years 1951-2050.\n * @param {Number} y - (int) year\n * @returns {Number} JDE\n */\nexport function march (y) {\n if (y < 1000) {\n return eq(y, mc0)\n }\n return eq(y - 2000, mc2)\n}\n\n/**\n * June returns the JDE of the June solstice for the given year.\n *\n * Results are valid for the years -1000 to +3000.\n *\n * Accuracy is within one minute of time for the years 1951-2050.\n * @param {Number} y - (int) year\n * @returns {Number} JDE\n */\nexport function june (y) {\n if (y < 1000) {\n return eq(y, jc0)\n }\n return eq(y - 2000, jc2)\n}\n\n/**\n * September returns the JDE of the September equinox for the given year.\n *\n * Results are valid for the years -1000 to +3000.\n *\n * Accuracy is within one minute of time for the years 1951-2050.\n * @param {Number} y - (int) year\n * @returns {Number} JDE\n */\nexport function september (y) {\n if (y < 1000) {\n return eq(y, sc0)\n }\n return eq(y - 2000, sc2)\n}\n\n/**\n * December returns the JDE of the December solstice for a given year.\n *\n * Results are valid for the years -1000 to +3000.\n *\n * Accuracy is within one minute of time for the years 1951-2050.\n * @param {Number} y - (int) year\n * @returns {Number} JDE\n */\nexport function december (y) {\n if (y < 1000) {\n return eq(y, dc0)\n }\n return eq(y - 2000, dc2)\n}\n\n/**\n * Fast calculation of solstices/ equinoxes\n * Accuracy is within one minute of time for the years 1951-2050.\n *\n * @param {Number} y - (int) year\n * @param {Array} c - term from table 27.a / 27.b\n * @returns {Number} JDE\n */\nfunction eq (y, c) {\n const J0 = base.horner(y * 0.001, c)\n const T = base.J2000Century(J0)\n const W = 35999.373 * D2R * T - 2.47 * D2R\n const Δλ = 1 + 0.0334 * cos(W) + 0.0007 * cos(2 * W)\n let S = 0\n for (let i = terms.length - 1; i >= 0; i--) {\n const t = terms[i]\n S += t.a * cos((t.b + t.c * T) * D2R)\n }\n return J0 + 0.00001 * S / Δλ\n}\n\n/**\n * March2 returns a more accurate JDE of the March equinox.\n *\n * Result is accurate to one second of time.\n *\n * @param {Number} year - (int) year\n * @param {planetposition.Planet} planet - must be a V87Planet object representing Earth, obtained with\n * the package planetposition\n * @returns {Number} JDE\n */\nexport function march2 (year, planet) {\n return longitude(year, planet, 0)\n}\n\n/**\n * June2 returns a more accurate JDE of the June solstice.\n *\n * Result is accurate to one second of time.\n *\n * @param {Number} year - (int) year\n * @param {planetposition.Planet} planet - must be a V87Planet object representing Earth, obtained with\n * the package planetposition\n * @returns {Number} JDE\n */\nexport function june2 (year, planet) {\n return longitude(year, planet, Math.PI / 2)\n}\n\n/**\n * September2 returns a more accurate JDE of the September equinox.\n *\n * Result is accurate to one second of time.\n *\n * @param {Number} year - (int) year\n * @param {planetposition.Planet} planet - must be a V87Planet object representing Earth, obtained with\n * the package planetposition\n * @returns {Number} JDE\n */\nexport function september2 (year, planet) {\n return longitude(year, planet, Math.PI)\n}\n\n/**\n * December2 returns a more accurate JDE of the December solstice.\n *\n * Result is accurate to one second of time.\n *\n * @param {Number} year - (int) year\n * @param {planetposition.Planet} planet - must be a V87Planet object representing Earth, obtained with\n * the package planetposition\n * @returns {Number} JDE\n */\nexport function december2 (year, planet) {\n return longitude(year, planet, Math.PI * 3 / 2)\n}\n\n/**\n * Longitude returns the JDE for a given `year`, VSOP87 Planet `planet` at a\n * given geocentric solar longitude `lon`\n * @param {Number} year - (int)\n * @param {planetposition.Planet} planet\n * @param {Number} lon - geocentric solar longitude in radians\n * @returns {Number} JDE\n */\nexport function longitude (year, planet, lon) {\n let c\n let ct\n\n if (year < 1000) {\n ct = [mc0, jc0, sc0, dc0]\n } else {\n ct = [mc2, jc2, sc2, dc2]\n year -= 2000\n }\n\n lon = lon % (Math.PI * 2)\n\n if (lon < Math.PI / 2) {\n c = ct[0]\n } else if (lon < Math.PI) {\n c = ct[1]\n } else if (lon < Math.PI * 3 / 2) {\n c = ct[2]\n } else {\n c = ct[3]\n }\n\n return eq2(year, planet, lon, c)\n}\n\n/**\n * Accurate calculation of solstices/ equinoxes\n * Result is accurate to one second of time.\n *\n * @param {Number} year - (int) year\n * @param {planetposition.Planet} planet - vsop87 planet\n * @param {Number} lon - longitude in radians\n * @param {Array} c - term from table 27.a / 27.b\n * @returns {Number} JDE\n */\nfunction eq2 (year, planet, lon, c) {\n let J0 = base.horner(year * 0.001, c)\n\n for (;;) {\n const a = solar.apparentVSOP87(planet, J0)\n const c = 58 * sin(lon - a.lon) // (27.1) p. 180\n J0 += c\n if (abs(c) < 0.000005) {\n break\n }\n }\n\n return J0\n}\n\nexport default {\n march,\n june,\n september,\n december,\n march2,\n june2,\n september2,\n december2,\n longitude\n}\n","/**\n * @copyright 2016 commenthol\n * @license MIT\n * @module sunrise\n */\n/**\n * Sunrise: Compute rise, noon, set of the Sun for an earth observer\n */\n\n/* eslint key-spacing: 0 */\n\nimport base from './base.js'\nimport eqtime from './eqtime.js'\nimport sexa from './sexagesimal.js'\nimport solar from './solar.js'\nimport julian from './julian.js'\nimport rise from './rise.js'\n\nconst stdh0 = {\n sunrise: new sexa.Angle(true, 0, 50, 0).rad(),\n sunriseEnd: new sexa.Angle(true, 0, 18, 0).rad(),\n twilight: new sexa.Angle(true, 6, 0, 0).rad(),\n nauticalTwilight: new sexa.Angle(true, 12, 0, 0).rad(),\n night: new sexa.Angle(true, 18, 0, 0).rad(),\n goldenHour: new sexa.Angle(false, 6, 0, 0).rad()\n}\n\nconst stdh0Sunrise = (refraction) => rise.refraction(stdh0.sunrise, refraction)\nconst stdh0SunriseEnd = (refraction) => rise.refraction(stdh0.sunriseEnd, refraction)\nconst stdh0Twilight = (refraction) => rise.refraction(stdh0.twilight, refraction)\nconst stdh0NauticalTwilight = (refraction) => rise.refraction(stdh0.nauticalTwilight, refraction)\nconst stdh0Night = (refraction) => rise.refraction(stdh0.night, refraction)\nconst stdh0GoldenHour = (refraction) => rise.refraction(stdh0.goldenHour, refraction)\n\nexport class Sunrise {\n /**\n * Computes time of sunrise, sunset for a given day `date` of an observer on earth given by latitude and longitude.\n * Methods may return `undefined` instead of `julian.Calendar` for latitudes very near the poles.\n * @param {julian.Calendar} date - calendar date\n * @param {number} lat - latitude of observer in the range of (-89.6, 89.6)\n * @param {number} lon - longitude of observer (measured positively westwards, New York = 40.7° lat, 74° lon)\n * @param {number} [refraction] - optional refraction\n */\n constructor (date, lat, lon, refraction) {\n this.date = date\n this.jde = date.midnight().toJDE()\n this.lat = sexa.angleFromDeg(lat)\n this.lon = sexa.angleFromDeg(lon)\n this.refraction = refraction\n }\n\n _calcNoon (jde) {\n const etime = sexa.secFromHourAngle(eqtime.eSmart(jde))\n const delta = sexa.secFromHourAngle(this.lon)\n const time = 43200 /* noon */ + delta - etime // in seconds\n return base.pmod(time / 86400, 86400)\n }\n\n _calcRiseOrSet (jde, h0, isSet) {\n const etime = sexa.secFromHourAngle(eqtime.eSmart(jde))\n const solarDec = solar.apparentEquatorial(jde).dec\n let ha = rise.hourAngle(this.lat, h0, solarDec)\n if (isSet) ha = -ha\n const delta = sexa.secFromHourAngle(ha - this.lon)\n const time = 43200 /* noon */ - delta - etime // in seconds\n return time / 86400\n }\n\n _calcPolarDayNight (h0, isSet, step) {\n let jde = this.jde\n let t\n let failCnt = 0\n while (failCnt < 190) { // a bit more than days of half a year\n jde += step\n try {\n t = this._calcRiseOrSet(jde, h0, isSet)\n t = this._calcRiseOrSet(jde + t, h0, isSet)\n break\n } catch (e) {\n t = undefined\n failCnt++\n }\n }\n if (t === undefined) {\n return\n }\n return new julian.Calendar().fromJDE(jde + t)\n }\n\n _calc (h0, isSet) {\n let t\n const jde = this.jde\n // calc 2times for higher accuracy\n try {\n t = this._calcRiseOrSet(jde, h0, isSet)\n t = this._calcRiseOrSet(jde + t, h0, isSet)\n return new julian.Calendar().fromJDE(jde + t)\n } catch (e) {\n let step = (isSet ? -1 : 1)\n const doy = this.date.dayOfYear()\n if ( // overlap with march, september equinoxes\n (this.lat > 0 && (doy > 76 && doy < 267)) || // northern hemisphere\n (this.lat < 0 && (doy < 83 || doy > 262)) // southern hemisphere\n ) {\n step = -step\n }\n return this._calcPolarDayNight(h0, isSet, step)\n }\n }\n\n /**\n * time of solar transit\n * @return {julian.Calendar} time of noon\n */\n noon () {\n const jde = this.jde\n // calc 2times for higher accuracy\n let t = this._calcNoon(jde + this.lon / (2 * Math.PI))\n t = this._calcNoon(jde + t)\n return new julian.Calendar().fromJDE(jde + t)\n }\n\n /**\n * Solar limb appears over the easter horizon in the morning\n * @return {julian.Calendar} time of sunrise\n */\n rise () {\n return this._calc(stdh0Sunrise(this.refraction), false)\n }\n\n /**\n * @return {julian.Calendar} time of sunset\n * Solar limb disappears on the western horizon in the evening\n */\n set () {\n return this._calc(stdh0Sunrise(this.refraction), true)\n }\n\n /**\n * Solar limb is fully visible at the easter horizon\n * @return {julian.Calendar} time of sunrise end\n */\n riseEnd () {\n return this._calc(stdh0SunriseEnd(this.refraction), false)\n }\n\n /**\n * Solar limb starts disappearing on the western horizon in the evening\n * @return {julian.Calendar} time of sunset start\n */\n setStart () {\n return this._calc(stdh0SunriseEnd(this.refraction), true)\n }\n\n /**\n * Dawn, there is still enough light for objects to be distinguishable,\n * @return {julian.Calendar} time of dawn\n */\n dawn () {\n return this._calc(stdh0Twilight(this.refraction), false)\n }\n\n /**\n * Dusk, there is still enough light for objects to be distinguishable\n * Bright stars and planets are visible by naked eye\n * @return {julian.Calendar} time of dusk\n */\n dusk () {\n return this._calc(stdh0Twilight(this.refraction), true)\n }\n\n /**\n * nautical dawn - Horizon gets visible by naked eye\n * @return {julian.Calendar} time of nautical dawn\n */\n nauticalDawn () {\n return this._calc(stdh0NauticalTwilight(this.refraction), false)\n }\n\n /**\n * nautical dusk - Horizon is no longer visible by naked eye\n * @return {julian.Calendar} time of nautical dusk\n */\n nauticalDusk () {\n return this._calc(stdh0NauticalTwilight(this.refraction), true)\n }\n\n /**\n * night starts - No sunlight illumination of the sky, such no intereferance\n * with astronomical observations.\n * @return {julian.Calendar} time of start of night\n */\n nightStart () {\n return this._calc(stdh0Night(this.refraction), true)\n }\n\n /**\n * night end - Sunlight starts illumination of the sky and interferes\n * with astronomical observations.\n * @return {julian.Calendar} time of end of night\n */\n nightEnd () {\n return this._calc(stdh0Night(this.refraction), false)\n }\n\n /**\n * Start of \"golden hour\" before sunset\n * @return {julian.Calendar} time of start of golden hour\n */\n goldenHourStart () {\n return this._calc(stdh0GoldenHour(this.refraction), true)\n }\n\n /**\n * End of \"golden hour\" after sunrise\n * @return {julian.Calendar} time of end of golden hour\n */\n goldenHourEnd () {\n return this._calc(stdh0GoldenHour(this.refraction), false)\n }\n}\n\nexport default {\n Sunrise\n}\n","import { julian } from 'astronomia'\nimport CalDate from 'caldate'\nimport CalEvent from './CalEvent.js'\n\nexport default class Julian extends CalEvent {\n inYear (year) {\n if (this.opts.year && this.opts.year !== year) {\n return this\n }\n const cal = new julian.CalendarJulian(year, this.opts.month, this.opts.day).toGregorian()\n const d = (new CalDate(cal)).setOffset(this.offset)\n this.dates.push(d)\n return this\n }\n}\n","import CalEvent from './CalEvent.js'\nimport CalDate from 'caldate'\n\n/**\n * Mapper class for mapped calenders like hijri and hebrew\n * `this.calender` needs to be set in child classes\n */\nexport default class CalEventMap extends CalEvent {\n constructor (opts) {\n super(opts)\n this.calendar = {}\n }\n\n inYear (year) {\n if (!(this.calendar[year] && this.calendar[year + 1] && this.calendar[year - 1])) {\n return this\n }\n\n for (let y = year - 1; y <= year + 1; y++) {\n // resolve date in `calendar` as gregorian date\n const firstDays = this.calendar[y][this.opts.month - 1]\n // firstDays `[M, D, diffYear, ...] | null`\n if (!firstDays) {\n continue\n }\n for (let i = 0; i < firstDays.length; i += 3) {\n if (this.opts.year) {\n const calYear = this.calendar.year + firstDays[i + 2]\n if (this.opts.year !== calYear) {\n continue\n }\n }\n const d = (new CalDate({\n year: y,\n month: firstDays[i] + 1,\n day: firstDays[i + 1]\n })).setOffset(this.opts.day - 1)\n\n if (d.year === year) {\n this.dates.push(d)\n }\n }\n }\n return this\n }\n}\n","/*eslint-disable*/\nexport const calendar ={1968:[null,null,null,null,null,null,[8,23,0],[9,23,0],[10,22,0],[11,22,0]],1969:[[2,20,0],[3,19,0],[4,18,0],[5,17,0],[6,16,0],[7,15,0],[8,13,1],[9,13,1],[10,11,1],[11,10,1],[0,20,0],[1,19,0],[1,19,0]],1970:[[3,7,1],[4,7,1],[5,5,1],[6,5,1],[7,3,1],[8,2,1],[9,1,2],[9,31,2],[10,29,2],[11,29,2],[0,8,1],[1,7,1],[2,9,1]],1971:[[2,27,2],[3,26,2],[4,25,2],[5,24,2],[6,23,2],[7,22,2],[8,20,3],[9,20,3],[10,19,3],[11,19,3],[0,27,2],[1,26,2],[1,26,2]],1972:[[2,16,3],[3,15,3],[4,14,3],[5,13,3],[6,12,3],[7,11,3],[8,9,4],[9,9,4],[10,7,4],[11,6,4],[0,17,3],[1,16,3],[1,16,3]],1973:[[3,3,4],[4,3,4],[5,1,4],[6,1,4],[6,30,4],[7,29,4],[8,27,5],[9,27,5],[10,26,5],[11,26,5],[0,4,4],[1,3,4],[2,5,4]],1974:[[2,24,5],[3,23,5],[4,22,5],[5,21,5],[6,20,5],[7,19,5],[8,17,6],[9,17,6],[10,15,6],[11,15,6],[0,24,5],[1,23,5],[1,23,5]],1975:[[2,13,6],[3,12,6],[4,11,6],[5,10,6],[6,9,6],[7,8,6],[8,6,7],[9,6,7],[10,5,7],[11,5,7],[0,13,6],[1,12,6],[1,12,6]],1976:[[3,1,7],[4,1,7],[4,30,7],[5,29,7],[6,28,7],[7,27,7],[8,25,8],[9,25,8],[10,23,8],[11,22,8],[0,3,7],[1,2,7],[2,3,7]],1977:[[2,20,8],[3,19,8],[4,18,8],[5,17,8],[6,16,8],[7,15,8],[8,13,9],[9,13,9],[10,11,9],[11,11,9],[0,20,8],[1,19,8],[1,19,8]],1978:[[3,8,9],[4,8,9],[5,6,9],[6,6,9],[7,4,9],[8,3,9],[9,2,10],[10,1,10],[11,1,10],[11,31,10],[0,9,9],[1,8,9],[2,10,9]],1979:[[2,29,10],[3,28,10],[4,27,10],[5,26,10],[6,25,10],[7,24,10],[8,22,11],[9,22,11],[10,21,11],[11,21,11],[0,29,10],[1,28,10],[1,28,10]],1980:[[2,18,11],[3,17,11],[4,16,11],[5,15,11],[6,14,11],[7,13,11],[8,11,12],[9,11,12],[10,9,12],[11,8,12],[0,19,11],[1,18,11],[1,18,11]],1981:[[3,5,12],[4,5,12],[5,3,12],[6,3,12],[7,1,12],[7,31,12],[8,29,13],[9,29,13],[10,27,13],[11,27,13],[0,6,12],[1,5,12],[2,7,12]],1982:[[2,25,13],[3,24,13],[4,23,13],[5,22,13],[6,21,13],[7,20,13],[8,18,14],[9,18,14],[10,17,14],[11,17,14],[0,25,13],[1,24,13],[1,24,13]],1983:[[2,15,14],[3,14,14],[4,13,14],[5,12,14],[6,11,14],[7,10,14],[8,8,15],[9,8,15],[10,7,15],[11,7,15],[0,15,14],[1,14,14],[1,14,14]],1984:[[3,3,15],[4,3,15],[5,1,15],[6,1,15],[6,30,15],[7,29,15],[8,27,16],[9,27,16],[10,25,16],[11,25,16],[0,5,15],[1,4,15],[2,5,15]],1985:[[2,23,16],[3,22,16],[4,21,16],[5,20,16],[6,19,16],[7,18,16],[8,16,17],[9,16,17],[10,14,17],[11,13,17],[0,23,16],[1,22,16],[1,22,16]],1986:[[3,10,17],[4,10,17],[5,8,17],[6,8,17],[7,6,17],[8,5,17],[9,4,18],[10,3,18],[11,3,18],null,[0,11,17],[1,10,17],[2,12,17]],1987:[[2,31,18],[3,30,18],[4,29,18],[5,28,18],[6,27,18],[7,26,18],[8,24,19],[9,24,19],[10,22,19],[0,2,18,11,22,19],[0,31,18],[2,2,18],[2,2,18]],1988:[[2,19,19],[3,18,19],[4,17,19],[5,16,19],[6,15,19],[7,14,19],[8,12,20],[9,12,20],[10,10,20],[11,9,20],[0,20,19],[1,19,19],[1,19,19]],1989:[[3,6,20],[4,6,20],[5,4,20],[6,4,20],[7,2,20],[8,1,20],[8,30,21],[9,30,21],[10,29,21],[11,29,21],[0,7,20],[1,6,20],[2,8,20]],1990:[[2,27,21],[3,26,21],[4,25,21],[5,24,21],[6,23,21],[7,22,21],[8,20,22],[9,20,22],[10,18,22],[11,18,22],[0,27,21],[1,26,21],[1,26,21]],1991:[[2,16,22],[3,15,22],[4,14,22],[5,13,22],[6,12,22],[7,11,22],[8,9,23],[9,9,23],[10,8,23],[11,8,23],[0,16,22],[1,15,22],[1,15,22]],1992:[[3,4,23],[4,4,23],[5,2,23],[6,2,23],[6,31,23],[7,30,23],[8,28,24],[9,28,24],[10,26,24],[11,25,24],[0,6,23],[1,5,23],[2,6,23]],1993:[[2,23,24],[3,22,24],[4,21,24],[5,20,24],[6,19,24],[7,18,24],[8,16,25],[9,16,25],[10,15,25],[11,15,25],[0,23,24],[1,22,24],[1,22,24]],1994:[[2,13,25],[3,12,25],[4,11,25],[5,10,25],[6,9,25],[7,8,25],[8,6,26],[9,6,26],[10,4,26],[11,4,26],[0,13,25],[1,12,25],[1,12,25]],1995:[[3,1,26],[4,1,26],[4,30,26],[5,29,26],[6,28,26],[7,27,26],[8,25,27],[9,25,27],[10,24,27],[11,24,27],[0,2,26],[1,1,26],[2,3,26]],1996:[[2,21,27],[3,20,27],[4,19,27],[5,18,27],[6,17,27],[7,16,27],[8,14,28],[9,14,28],[10,12,28],[11,11,28],[0,22,27],[1,21,27],[1,21,27]],1997:[[3,8,28],[4,8,28],[5,6,28],[6,6,28],[7,4,28],[8,3,28],[9,2,29],[10,1,29],[10,30,29],[11,30,29],[0,9,28],[1,8,28],[2,10,28]],1998:[[2,28,29],[3,27,29],[4,26,29],[5,25,29],[6,24,29],[7,23,29],[8,21,30],[9,21,30],[10,20,30],[11,20,30],[0,28,29],[1,27,29],[1,27,29]],1999:[[2,18,30],[3,17,30],[4,16,30],[5,15,30],[6,14,30],[7,13,30],[8,11,31],[9,11,31],[10,10,31],[11,10,31],[0,18,30],[1,17,30],[1,17,30]],2000:[[3,6,31],[4,6,31],[5,4,31],[6,4,31],[7,2,31],[8,1,31],[8,30,32],[9,30,32],[10,28,32],[11,27,32],[0,8,31],[1,7,31],[2,8,31]],2001:[[2,25,32],[3,24,32],[4,23,32],[5,22,32],[6,21,32],[7,20,32],[8,18,33],[9,18,33],[10,16,33],[11,16,33],[0,25,32],[1,24,32],[1,24,32]],2002:[[2,14,33],[3,13,33],[4,12,33],[5,11,33],[6,10,33],[7,9,33],[8,7,34],[9,7,34],[10,6,34],[11,6,34],[0,14,33],[1,13,33],[1,13,33]],2003:[[3,3,34],[4,3,34],[5,1,34],[6,1,34],[6,30,34],[7,29,34],[8,27,35],[9,27,35],[10,26,35],[11,26,35],[0,4,34],[1,3,34],[2,5,34]],2004:[[2,23,35],[3,22,35],[4,21,35],[5,20,35],[6,19,35],[7,18,35],[8,16,36],[9,16,36],[10,14,36],[11,13,36],[0,24,35],[1,23,35],[1,23,35]],2005:[[3,10,36],[4,10,36],[5,8,36],[6,8,36],[7,6,36],[8,5,36],[9,4,37],[10,3,37],[11,2,37],null,[0,11,36],[1,10,36],[2,12,36]],2006:[[2,30,37],[3,29,37],[4,28,37],[5,27,37],[6,26,37],[7,25,37],[8,23,38],[9,23,38],[10,22,38],[0,1,37,11,22,38],[0,30,37],[2,1,37],[2,1,37]],2007:[[2,20,38],[3,19,38],[4,18,38],[5,17,38],[6,16,38],[7,15,38],[8,13,39],[9,13,39],[10,11,39],[11,10,39],[0,20,38],[1,19,38],[1,19,38]],2008:[[3,6,39],[4,6,39],[5,4,39],[6,4,39],[7,2,39],[8,1,39],[8,30,40],[9,30,40],[10,28,40],[11,28,40],[0,8,39],[1,7,39],[2,8,39]],2009:[[2,26,40],[3,25,40],[4,24,40],[5,23,40],[6,22,40],[7,21,40],[8,19,41],[9,19,41],[10,18,41],[11,18,41],[0,26,40],[1,25,40],[1,25,40]],2010:[[2,16,41],[3,15,41],[4,14,41],[5,13,41],[6,12,41],[7,11,41],[8,9,42],[9,9,42],[10,8,42],[11,8,42],[0,16,41],[1,15,41],[1,15,41]],2011:[[3,5,42],[4,5,42],[5,3,42],[6,3,42],[7,1,42],[7,31,42],[8,29,43],[9,29,43],[10,27,43],[11,27,43],[0,6,42],[1,5,42],[2,7,42]],2012:[[2,24,43],[3,23,43],[4,22,43],[5,21,43],[6,20,43],[7,19,43],[8,17,44],[9,17,44],[10,15,44],[11,14,44],[0,25,43],[1,24,43],[1,24,43]],2013:[[2,12,44],[3,11,44],[4,10,44],[5,9,44],[6,8,44],[7,7,44],[8,5,45],[9,5,45],[10,4,45],[11,4,45],[0,12,44],[1,11,44],[1,11,44]],2014:[[3,1,45],[4,1,45],[4,30,45],[5,29,45],[6,28,45],[7,27,45],[8,25,46],[9,25,46],[10,23,46],[11,23,46],[0,2,45],[1,1,45],[2,3,45]],2015:[[2,21,46],[3,20,46],[4,19,46],[5,18,46],[6,17,46],[7,16,46],[8,14,47],[9,14,47],[10,13,47],[11,13,47],[0,21,46],[1,20,46],[1,20,46]],2016:[[3,9,47],[4,9,47],[5,7,47],[6,7,47],[7,5,47],[8,4,47],[9,3,48],[10,2,48],[11,1,48],[11,30,48],[0,11,47],[1,10,47],[2,11,47]],2017:[[2,28,48],[3,27,48],[4,26,48],[5,25,48],[6,24,48],[7,23,48],[8,21,49],[9,21,49],[10,19,49],[11,19,49],[0,28,48],[1,27,48],[1,27,48]],2018:[[2,17,49],[3,16,49],[4,15,49],[5,14,49],[6,13,49],[7,12,49],[8,10,50],[9,10,50],[10,9,50],[11,9,50],[0,17,49],[1,16,49],[1,16,49]],2019:[[3,6,50],[4,6,50],[5,4,50],[6,4,50],[7,2,50],[8,1,50],[8,30,51],[9,30,51],[10,29,51],[11,29,51],[0,7,50],[1,6,50],[2,8,50]],2020:[[2,26,51],[3,25,51],[4,24,51],[5,23,51],[6,22,51],[7,21,51],[8,19,52],[9,19,52],[10,17,52],[11,16,52],[0,27,51],[1,26,51],[1,26,51]],2021:[[2,14,52],[3,13,52],[4,12,52],[5,11,52],[6,10,52],[7,9,52],[8,7,53],[9,7,53],[10,5,53],[11,5,53],[0,14,52],[1,13,52],[1,13,52]],2022:[[3,2,53],[4,2,53],[4,31,53],[5,30,53],[6,29,53],[7,28,53],[8,26,54],[9,26,54],[10,25,54],[11,25,54],[0,3,53],[1,2,53],[2,4,53]],2023:[[2,23,54],[3,22,54],[4,21,54],[5,20,54],[6,19,54],[7,18,54],[8,16,55],[9,16,55],[10,14,55],[11,13,55],[0,23,54],[1,22,54],[1,22,54]],2024:[[3,9,55],[4,9,55],[5,7,55],[6,7,55],[7,5,55],[8,4,55],[9,3,56],[10,2,56],[11,2,56],null,[0,11,55],[1,10,55],[2,11,55]],2025:[[2,30,56],[3,29,56],[4,28,56],[5,27,56],[6,26,56],[7,25,56],[8,23,57],[9,23,57],[10,21,57],[0,1,56,11,21,57],[0,30,56],[2,1,56],[2,1,56]],2026:[[2,19,57],[3,18,57],[4,17,57],[5,16,57],[6,15,57],[7,14,57],[8,12,58],[9,12,58],[10,11,58],[11,11,58],[0,19,57],[1,18,57],[1,18,57]],2027:[[3,8,58],[4,8,58],[5,6,58],[6,6,58],[7,4,58],[8,3,58],[9,2,59],[10,1,59],[11,1,59],[11,31,59],[0,9,58],[1,8,58],[2,10,58]],2028:[[2,28,59],[3,27,59],[4,26,59],[5,25,59],[6,24,59],[7,23,59],[8,21,60],[9,21,60],[10,19,60],[11,19,60],[0,29,59],[1,28,59],[1,28,59]],2029:[[2,17,60],[3,16,60],[4,15,60],[5,14,60],[6,13,60],[7,12,60],[8,10,61],[9,10,61],[10,8,61],[11,7,61],[0,17,60],[1,16,60],[1,16,60]],2030:[[3,4,61],[4,4,61],[5,2,61],[6,2,61],[6,31,61],[7,30,61],[8,28,62],[9,28,62],[10,27,62],[11,27,62],[0,5,61],[1,4,61],[2,6,61]],2031:[[2,25,62],[3,24,62],[4,23,62],[5,22,62],[6,21,62],[7,20,62],[8,18,63],[9,18,63],[10,16,63],[11,16,63],[0,25,62],[1,24,62],[1,24,62]],2032:[[2,13,63],[3,12,63],[4,11,63],[5,10,63],[6,9,63],[7,8,63],[8,6,64],[9,6,64],[10,4,64],[11,3,64],[0,14,63],[1,13,63],[1,13,63]],2033:[[2,31,64],[3,30,64],[4,29,64],[5,28,64],[6,27,64],[7,26,64],[8,24,65],[9,24,65],[10,23,65],[11,23,65],[0,1,64],[0,31,64],[2,2,64]],2034:[[2,21,65],[3,20,65],[4,19,65],[5,18,65],[6,17,65],[7,16,65],[8,14,66],[9,14,66],[10,13,66],[11,13,66],[0,21,65],[1,20,65],[1,20,65]],2035:[[3,10,66],[4,10,66],[5,8,66],[6,8,66],[7,6,66],[8,5,66],[9,4,67],[10,3,67],[11,2,67],null,[0,11,66],[1,10,66],[2,12,66]],2036:[[2,29,67],[3,28,67],[4,27,67],[5,26,67],[6,25,67],[7,24,67],[8,22,68],[9,22,68],[10,20,68],[0,1,67,11,19,68],[0,30,67],[1,29,67],[1,29,67]],2037:[[2,17,68],[3,16,68],[4,15,68],[5,14,68],[6,13,68],[7,12,68],[8,10,69],[9,10,69],[10,9,69],[11,9,69],[0,17,68],[1,16,68],[1,16,68]],2038:[[3,6,69],[4,6,69],[5,4,69],[6,4,69],[7,2,69],[8,1,69],[8,30,70],[9,30,70],[10,28,70],[11,28,70],[0,7,69],[1,6,69],[2,8,69]],2039:[[2,26,70],[3,25,70],[4,24,70],[5,23,70],[6,22,70],[7,21,70],[8,19,71],[9,19,71],[10,18,71],[11,18,71],[0,26,70],[1,25,70],[1,25,70]],2040:[[2,15,71],[3,14,71],[4,13,71],[5,12,71],[6,11,71],[7,10,71],[8,8,72],[9,8,72],[10,6,72],[11,5,72],[0,16,71],[1,15,71],[1,15,71]],2041:[[3,2,72],[4,2,72],[4,31,72],[5,30,72],[6,29,72],[7,28,72],[8,26,73],[9,26,73],[10,24,73],[11,24,73],[0,3,72],[1,2,72],[2,4,72]],2042:[[2,22,73],[3,21,73],[4,20,73],[5,19,73],[6,18,73],[7,17,73],[8,15,74],[9,15,74],[10,14,74],[11,14,74],[0,22,73],[1,21,73],[1,21,73]],2043:[[3,11,74],[4,11,74],[5,9,74],[6,9,74],[7,7,74],[8,6,74],[9,5,75],[10,4,75],[11,3,75],null,[0,12,74],[1,11,74],[2,13,74]],2044:[[2,29,75],[3,28,75],[4,27,75],[5,26,75],[6,25,75],[7,24,75],[8,22,76],[9,22,76],[10,21,76],[0,1,75,11,21,76],[0,30,75],[1,29,75],[1,29,75]],2045:[[2,19,76],[3,18,76],[4,17,76],[5,16,76],[6,15,76],[7,14,76],[8,12,77],[9,12,77],[10,10,77],[11,10,77],[0,19,76],[1,18,76],[1,18,76]],2046:[[3,7,77],[4,7,77],[5,5,77],[6,5,77],[7,3,77],[8,2,77],[9,1,78],[9,31,78],[10,30,78],[11,30,78],[0,8,77],[1,7,77],[2,9,77]],2047:[[2,28,78],[3,27,78],[4,26,78],[5,25,78],[6,24,78],[7,23,78],[8,21,79],[9,21,79],[10,19,79],[11,18,79],[0,28,78],[1,27,78],[1,27,78]],2048:[[2,15,79],[3,14,79],[4,13,79],[5,12,79],[6,11,79],[7,10,79],[8,8,80],[9,8,80],[10,6,80],[11,6,80],[0,16,79],[1,15,79],[1,15,79]],2049:[[3,3,80],[4,3,80],[5,1,80],[6,1,80],[6,30,80],[7,29,80],[8,27,81],[9,27,81],[10,26,81],[11,26,81],[0,4,80],[1,3,80],[2,5,80]],2050:[[2,24,81],[3,23,81],[4,22,81],[5,21,81],[6,20,81],[7,19,81],[8,17,82],[9,17,82],[10,16,82],[11,16,82],[0,24,81],[1,23,81],[1,23,81]],2051:[[2,14,82],[3,13,82],[4,12,82],[5,11,82],[6,10,82],[7,9,82],[8,7,83],[9,7,83],[10,5,83],[11,4,83],[0,14,82],[1,13,82],[1,13,82]],2052:[[2,31,83],[3,30,83],[4,29,83],[5,28,83],[6,27,83],[7,26,83],[8,24,84],[9,24,84],[10,22,84],[11,22,84],[0,2,83],[1,1,83],[2,2,83]],2053:[[2,20,84],[3,19,84],[4,18,84],[5,17,84],[6,16,84],[7,15,84],[8,13,85],[9,13,85],[10,12,85],[11,12,85],[0,20,84],[1,19,84],[1,19,84]],2054:[[3,9,85],[4,9,85],[5,7,85],[6,7,85],[7,5,85],[8,4,85],[9,3,86],[10,2,86],[11,2,86],null,[0,10,85],[1,9,85],[2,11,85]],2055:[[2,30,86],[3,29,86],[4,28,86],[5,27,86],[6,26,86],[7,25,86],[8,23,87],[9,23,87],[10,21,87],[0,1,86,11,21,87],[0,30,86],[2,1,86],[2,1,86]],2056:[[2,18,87],[3,17,87],[4,16,87],[5,15,87],[6,14,87],[7,13,87],[8,11,88],[9,11,88],[10,9,88],[11,8,88],[0,19,87],[1,18,87],[1,18,87]],2057:[[3,5,88],[4,5,88],[5,3,88],[6,3,88],[7,1,88],[7,31,88],[8,29,89],[9,29,89],[10,28,89],[11,28,89],[0,6,88],[1,5,88],[2,7,88]],2058:[[2,26,89],[3,25,89],[4,24,89],[5,23,89],[6,22,89],[7,21,89],[8,19,90],[9,19,90],[10,17,90],[11,17,90],[0,26,89],[1,25,89],[1,25,89]],2059:[[2,15,90],[3,14,90],[4,13,90],[5,12,90],[6,11,90],[7,10,90],[8,8,91],[9,8,91],[10,6,91],[11,5,91],[0,15,90],[1,14,90],[1,14,90]],2060:[[3,1,91],[4,1,91],[4,30,91],[5,29,91],[6,28,91],[7,27,91],[8,25,92],[9,25,92],[10,24,92],[11,24,92],[0,3,91],[1,2,91],[2,3,91]],2061:[[2,22,92],[3,21,92],[4,20,92],[5,19,92],[6,18,92],[7,17,92],[8,15,93],[9,15,93],[10,14,93],[11,14,93],[0,22,92],[1,21,92],[1,21,92]],2062:[[3,11,93],[4,11,93],[5,9,93],[6,9,93],[7,7,93],[8,6,93],[9,5,94],[10,4,94],[11,3,94],null,[0,12,93],[1,11,93],[2,13,93]],2063:[[2,31,94],[3,30,94],[4,29,94],[5,28,94],[6,27,94],[7,26,94],[8,24,95],[9,24,95],[10,22,95],[0,2,94,11,21,95],[0,31,94],[2,2,94],[2,2,94]],2064:[[2,18,95],[3,17,95],[4,16,95],[5,15,95],[6,14,95],[7,13,95],[8,11,96],[9,11,96],[10,10,96],[11,10,96],[0,19,95],[1,18,95],[1,18,95]],2065:[[3,7,96],[4,7,96],[5,5,96],[6,5,96],[7,3,96],[8,2,96],[9,1,97],[9,31,97],[10,29,97],[11,29,97],[0,8,96],[1,7,96],[2,9,96]],2066:[[2,27,97],[3,26,97],[4,25,97],[5,24,97],[6,23,97],[7,22,97],[8,20,98],[9,20,98],[10,19,98],[11,19,98],[0,27,97],[1,26,97],[1,26,97]],2067:[[2,17,98],[3,16,98],[4,15,98],[5,14,98],[6,13,98],[7,12,98],[8,10,99],[9,10,99],[10,8,99],[11,7,99],[0,17,98],[1,16,98],[1,16,98]],2068:[[3,3,99],[4,3,99],[5,1,99],[6,1,99],[6,30,99],[7,29,99],[8,27,100],[9,27,100],[10,25,100],[11,25,100],[0,5,99],[1,4,99],[2,5,99]],2069:[[2,23,100],[3,22,100],[4,21,100],[5,20,100],[6,19,100],[7,18,100],[8,16,101],[9,16,101],[10,15,101],[11,15,101],[0,23,100],[1,22,100],[1,22,100]],2070:[[2,13,101],[3,12,101],[4,11,101],[5,10,101],[6,9,101],[7,8,101],[8,6,102],[9,6,102],[10,4,102],[11,3,102],[0,13,101],[1,12,101],[1,12,101]],2071:[[2,31,102],[3,30,102],[4,29,102],[5,28,102],[6,27,102],[7,26,102],[8,24,103],[9,24,103],[10,23,103],[11,23,103],[0,1,102],[0,31,102],[2,2,102]],2072:[[2,20,103],[3,19,103],[4,18,103],[5,17,103],[6,16,103],[7,15,103],[8,13,104],[9,13,104],[10,11,104],[11,11,104],[0,21,103],[1,20,103],[1,20,103]],2073:[[3,8,104],[4,8,104],[5,6,104],[6,6,104],[7,4,104],[8,3,104],[9,2,105],[10,1,105],[11,1,105],[11,31,105],[0,9,104],[1,8,104],[2,10,104]],2074:[[2,29,105],[3,28,105],[4,27,105],[5,26,105],[6,25,105],[7,24,105],[8,22,106],[9,22,106],[10,20,106],[11,19,106],[0,29,105],[1,28,105],[1,28,105]],2075:[[2,17,106],[3,16,106],[4,15,106],[5,14,106],[6,13,106],[7,12,106],[8,10,107],[9,10,107],[10,8,107],[11,8,107],[0,17,106],[1,16,106],[1,16,106]],2076:[[3,4,107],[4,4,107],[5,2,107],[6,2,107],[6,31,107],[7,30,107],[8,28,108],[9,28,108],[10,27,108],[11,27,108],[0,6,107],[1,5,107],[2,6,107]],2077:[[2,25,108],[3,24,108],[4,23,108],[5,22,108],[6,21,108],[7,20,108],[8,18,109],[9,18,109],[10,17,109],[11,17,109],[0,25,108],[1,24,108],[1,24,108]],2078:[[2,15,109],[3,14,109],[4,13,109],[5,12,109],[6,11,109],[7,10,109],[8,8,110],[9,8,110],[10,6,110],[11,5,110],[0,15,109],[1,14,109],[1,14,109]],2079:[[3,2,110],[4,2,110],[4,31,110],[5,30,110],[6,29,110],[7,28,110],[8,26,111],[9,26,111],[10,24,111],[11,24,111],[0,3,110],[1,2,110],[2,4,110]],2080:[[2,21,111],[3,20,111],[4,19,111],[5,18,111],[6,17,111],[7,16,111],[8,14,112],[9,14,112],[10,13,112],[11,13,112],[0,22,111],[1,21,111],[1,21,111]],2081:[[3,10,112],[4,10,112],[5,8,112],[6,8,112],[7,6,112],[8,5,112],[9,4,113],[10,3,113],[11,3,113],null,[0,11,112],[1,10,112],[2,12,112]],2082:[[2,31,113],[3,30,113],[4,29,113],[5,28,113],[6,27,113],[7,26,113],[8,24,114],[9,24,114],[10,22,114],[0,2,113,11,22,114],[0,31,113],[2,2,113],[2,2,113]],2083:[[2,20,114],[3,19,114],[4,18,114],[5,17,114],[6,16,114],[7,15,114],[8,13,115],[9,13,115],[10,11,115],[11,10,115],[0,20,114],[1,19,114],[1,19,114]],2084:[[3,6,115],[4,6,115],[5,4,115],[6,4,115],[7,2,115],[8,1,115],[8,30,116],[9,30,116],[10,29,116],[11,29,116],[0,8,115],[1,7,115],[2,8,115]],2085:[[2,27,116],[3,26,116],[4,25,116],[5,24,116],[6,23,116],[7,22,116],[8,20,117],[9,20,117],[10,18,117],[11,18,117],[0,27,116],[1,26,116],[1,26,116]],2086:[[2,16,117],[3,15,117],[4,14,117],[5,13,117],[6,12,117],[7,11,117],[8,9,118],[9,9,118],[10,7,118],[11,6,118],[0,16,117],[1,15,117],[1,15,117]],2087:[[3,3,118],[4,3,118],[5,1,118],[6,1,118],[6,30,118],[7,29,118],[8,27,119],[9,27,119],[10,26,119],[11,26,119],[0,4,118],[1,3,118],[2,5,118]],2088:[[2,23,119],[3,22,119],[4,21,119],[5,20,119],[6,19,119],[7,18,119],[8,16,120],[9,16,120],[10,14,120],[11,14,120],[0,24,119],[1,23,119],[1,23,119]],2089:[[2,12,120],[3,11,120],[4,10,120],[5,9,120],[6,8,120],[7,7,120],[8,5,121],[9,5,121],[10,4,121],[11,4,121],[0,12,120],[1,11,120],[1,11,120]],2090:[[3,1,121],[4,1,121],[4,30,121],[5,29,121],[6,28,121],[7,27,121],[8,25,122],[9,25,122],[10,23,122],[11,22,122],[0,2,121],[1,1,121],[2,3,121]],2091:[[2,20,122],[3,19,122],[4,18,122],[5,17,122],[6,16,122],[7,15,122],[8,13,123],[9,13,123],[10,12,123],[11,12,123],[0,20,122],[1,19,122],[1,19,122]],2092:[[3,8,123],[4,8,123],[5,6,123],[6,6,123],[7,4,123],[8,3,123],[9,2,124],[10,1,124],[10,30,124],[11,30,124],[0,10,123],[1,9,123],[2,10,123]],2093:[[2,28,124],[3,27,124],[4,26,124],[5,25,124],[6,24,124],[7,23,124],[8,21,125],[9,21,125],[10,20,125],[11,20,125],[0,28,124],[1,27,124],[1,27,124]],2094:[[2,18,125],[3,17,125],[4,16,125],[5,15,125],[6,14,125],[7,13,125],[8,11,126],[9,11,126],[10,9,126],[11,8,126],[0,18,125],[1,17,125],[1,17,125]],2095:[[3,5,126],[4,5,126],[5,3,126],[6,3,126],[7,1,126],[7,31,126],[8,29,127],[9,29,127],[10,27,127],[11,27,127],[0,6,126],[1,5,126],[2,7,126]],2096:[[2,24,127],[3,23,127],[4,22,127],[5,21,127],[6,20,127],[7,19,127],[8,17,128],[9,17,128],[10,16,128],[11,16,128],[0,25,127],[1,24,127],[1,24,127]],2097:[[2,14,128],[3,13,128],[4,12,128],[5,11,128],[6,10,128],[7,9,128],[8,7,129],[9,7,129],[10,6,129],[11,6,129],[0,14,128],[1,13,128],[1,13,128]],2098:[[3,3,129],[4,3,129],[5,1,129],[6,1,129],[6,30,129],[7,29,129],[8,27,130],[9,27,130],[10,25,130],[11,24,130],[0,4,129],[1,3,129],[2,5,129]],2099:[[2,22,130],[3,21,130],[4,20,130],[5,19,130],[6,18,130],[7,17,130],[8,15,131],[9,15,131],[10,13,131],[11,13,131],[0,22,130],[1,21,130],[1,21,130]],2100:[[3,10,131],[4,10,131],[5,8,131],[6,8,131],[7,6,131],[8,5,131],null,null,null,null,[0,11,131],[1,10,131],[2,12,131]],months:13,year:5729}","import CalDate from 'caldate'\nimport CalEventMap from './CalEventMap.js'\nimport { calendar } from './internal/hebrew-calendar.js'\n\nexport default class Hebrew extends CalEventMap {\n constructor (opts) {\n super(opts)\n this.calendar = calendar\n }\n\n get (timezone) {\n const arr = this.dates.map((date) => {\n const cdate = new CalDate(date)\n const o = {\n date: cdate.toString() + ' -0600',\n start: cdate.setOffset(-6, 'h').toTimezone(timezone),\n end: cdate.toEndDate().toTimezone(timezone)\n }\n this._addSubstitute(date, o)\n return o\n })\n return arr\n }\n}\n","/*eslint-disable*/\nexport const calendar ={1969:[[2,19,0],[3,18,0],[4,17,0],[5,16,0],[6,15,0],[7,14,0],[8,12,0],[9,12,0],[10,10,0],[11,10,0]],1970:[[2,9,1],[3,8,1],[4,7,1],[5,6,1],[6,5,1],[7,4,1],[8,2,1],[9,2,1],[10,1,1],[10,30,1],[0,8,0,11,30,1],[1,7,0]],1971:[[1,26,2],[2,28,2],[3,26,2],[4,26,2],[5,24,2],[6,24,2],[7,22,2],[8,21,2],[9,20,2],[10,19,2],[11,18,2],[0,28,1]],1972:[[1,16,3],[2,16,3],[3,14,3],[4,14,3],[5,12,3],[6,12,3],[7,10,3],[8,9,3],[9,8,3],[10,7,3],[11,6,3],[0,17,2]],1973:[[1,4,4],[2,6,4],[3,4,4],[4,4,4],[5,2,4],[6,1,4],[6,30,4],[7,29,4],[8,27,4],[9,27,4],[10,25,4],[0,5,3,11,25,4]],1974:[[0,24,5],[1,23,5],[2,24,5],[3,23,5],[4,22,5],[5,21,5],[6,20,5],[7,19,5],[8,17,5],[9,16,5],[10,15,5],[11,15,5]],1975:[[0,13,6],[1,12,6],[2,13,6],[3,12,6],[4,12,6],[5,10,6],[6,10,6],[7,8,6],[8,6,6],[9,6,6],[10,4,6],[11,4,6]],1976:[[0,2,7,11,22,8],[1,1,7],[2,1,7],[2,31,7],[3,30,7],[4,30,7],[5,28,7],[6,28,7],[7,26,7],[8,24,7],[9,24,7],[10,22,7]],1977:[[11,11,9],[0,20,8],[1,19,8],[2,20,8],[3,19,8],[4,19,8],[5,17,8],[6,17,8],[7,15,8],[8,14,8],[9,13,8],[10,12,8]],1978:[[11,1,10],[0,10,9,11,30,10],[1,8,9],[2,10,9],[3,8,9],[4,8,9],[5,6,9],[6,6,9],[7,5,9],[8,3,9],[9,3,9],[10,1,9]],1979:[[10,20,11],[11,20,11],[0,29,10],[1,27,10],[2,29,10],[3,27,10],[4,27,10],[5,25,10],[6,25,10],[7,23,10],[8,22,10],[9,22,10]],1980:[[10,9,12],[11,8,12],[0,19,11],[1,17,11],[2,18,11],[3,16,11],[4,15,11],[5,14,11],[6,13,11],[7,12,11],[8,10,11],[9,10,11]],1981:[[9,28,13],[10,27,13],[0,7,12,11,27,13],[1,5,12],[2,7,12],[3,5,12],[4,5,12],[5,3,12],[6,2,12],[7,1,12],[7,30,12],[8,29,12]],1982:[[9,18,14],[10,16,14],[11,16,14],[0,26,13],[1,24,13],[2,26,13],[3,24,13],[4,24,13],[5,22,13],[6,21,13],[7,20,13],[8,18,13]],1983:[[9,7,15],[10,5,15],[11,5,15],[0,15,14],[1,14,14],[2,15,14],[3,14,14],[4,13,14],[5,12,14],[6,11,14],[7,9,14],[8,8,14]],1984:[[8,26,16],[9,25,16],[10,23,16],[0,4,15,11,23,16],[1,2,15],[2,3,15],[3,2,15],[4,2,15],[4,31,15],[5,30,15],[6,29,15],[7,27,15]],1985:[[8,15,17],[9,15,17],[10,13,17],[11,13,17],[0,22,16],[1,20,16],[2,22,16],[3,21,16],[4,20,16],[5,19,16],[6,18,16],[7,17,16]],1986:[[8,5,18],[9,4,18],[10,3,18],[11,2,18],[0,11,17],[1,10,17],[2,11,17],[3,10,17],[4,9,17],[5,8,17],[6,8,17],[7,6,17]],1987:[[7,25,19],[8,24,19],[9,23,19],[10,22,19],[0,1,18,11,21,19],[0,30,18],[2,1,18],[2,30,18],[3,29,18],[4,28,18],[5,27,18],[6,26,18]],1988:[[7,13,20],[8,12,20],[9,11,20],[10,10,20],[11,10,20],[0,20,19],[1,18,19],[2,19,19],[3,17,19],[4,16,19],[5,15,19],[6,14,19]],1989:[[7,2,21],[8,1,21],[8,30,21],[9,30,21],[10,29,21],[0,8,20,11,29,21],[1,7,20],[2,8,20],[3,7,20],[4,6,20],[5,4,20],[6,4,20]],1990:[[6,23,22],[7,21,22],[8,20,22],[9,19,22],[10,18,22],[11,18,22],[0,27,21],[1,26,21],[2,27,21],[3,26,21],[4,25,21],[5,23,21]],1991:[[6,12,23],[7,11,23],[8,9,23],[9,8,23],[10,7,23],[11,7,23],[0,16,22],[1,15,22],[2,17,22],[3,15,22],[4,15,22],[5,13,22]],1992:[[6,1,24],[6,30,24],[7,29,24],[8,27,24],[9,26,24],[10,25,24],[0,5,23,11,25,24],[1,4,23],[2,5,23],[3,4,23],[4,3,23],[5,2,23]],1993:[[5,21,25],[6,20,25],[7,18,25],[8,17,25],[9,16,25],[10,14,25],[11,14,25],[0,23,24],[1,22,24],[2,24,24],[3,22,24],[4,22,24]],1994:[[5,10,26],[6,9,26],[7,8,26],[8,6,26],[9,6,26],[10,4,26],[11,3,26],[0,12,25],[1,11,25],[2,13,25],[3,12,25],[4,11,25]],1995:[[4,30,27],[5,29,27],[6,28,27],[7,27,27],[8,25,27],[9,25,27],[10,23,27],[0,2,26,11,23,27],[0,31,26],[2,2,26],[3,1,26],[3,30,26]],1996:[[4,18,28],[5,17,28],[6,16,28],[7,15,28],[8,13,28],[9,13,28],[10,12,28],[11,11,28],[0,21,27],[1,19,27],[2,20,27],[3,18,27]],1997:[[4,7,29],[5,6,29],[6,5,29],[7,4,29],[8,2,29],[9,2,29],[10,1,29],[11,1,29],[0,10,28,11,30,29],[1,8,28],[2,10,28],[3,8,28]],1998:[[3,27,30],[4,26,30],[5,25,30],[6,24,30],[7,23,30],[8,21,30],[9,21,30],[10,20,30],[11,19,30],[0,29,29],[1,27,29],[2,29,29]],1999:[[3,17,31],[4,16,31],[5,15,31],[6,14,31],[7,12,31],[8,11,31],[9,10,31],[10,9,31],[11,9,31],[0,18,30],[1,17,30],[2,18,30]],2000:[[3,6,32],[4,5,32],[5,3,32],[6,3,32],[7,1,32],[7,30,32],[8,28,32],[9,28,32],[10,27,32],[0,8,31,11,27,32],[1,7,31],[2,7,31]],2001:[[2,26,33],[3,25,33],[4,24,33],[5,22,33],[6,22,33],[7,20,33],[8,18,33],[9,17,33],[10,16,33],[11,16,33],[0,26,32],[1,24,32]],2002:[[2,15,34],[3,14,34],[4,13,34],[5,12,34],[6,11,34],[7,10,34],[8,8,34],[9,7,34],[10,6,34],[11,5,34],[0,15,33],[1,13,33]],2003:[[2,4,35],[3,3,35],[4,2,35],[5,1,35],[6,1,35],[6,30,35],[7,29,35],[8,27,35],[9,26,35],[10,25,35],[0,4,34,11,24,35],[1,2,34]],2004:[[1,21,36],[2,22,36],[3,20,36],[4,20,36],[5,19,36],[6,18,36],[7,17,36],[8,15,36],[9,15,36],[10,14,36],[11,13,36],[0,23,35]],2005:[[1,10,37],[2,11,37],[3,10,37],[4,9,37],[5,8,37],[6,7,37],[7,6,37],[8,5,37],[9,4,37],[10,3,37],[11,3,37],[0,12,36]],2006:[[0,31,38],[2,1,38],[2,30,38],[3,29,38],[4,28,38],[5,26,38],[6,26,38],[7,25,38],[8,24,38],[9,23,38],[10,22,38],[0,1,37,11,22,38]],2007:[[0,20,39],[1,19,39],[2,20,39],[3,18,39],[4,18,39],[5,16,39],[6,15,39],[7,14,39],[8,13,39],[9,13,39],[10,11,39],[11,11,39]],2008:[[0,10,40,11,29,41],[1,8,40],[2,9,40],[3,7,40],[4,6,40],[5,5,40],[6,4,40],[7,2,40],[8,1,40],[9,1,40],[9,30,40],[10,29,40]],2009:[[11,18,42],[0,27,41],[1,26,41],[2,28,41],[3,26,41],[4,25,41],[5,24,41],[6,23,41],[7,22,41],[8,20,41],[9,20,41],[10,18,41]],2010:[[11,7,43],[0,16,42],[1,15,42],[2,17,42],[3,15,42],[4,15,42],[5,13,42],[6,13,42],[7,11,42],[8,10,42],[9,9,42],[10,7,42]],2011:[[10,26,44],[0,5,43,11,26,44],[1,4,43],[2,6,43],[3,5,43],[4,4,43],[5,3,43],[6,2,43],[7,1,43],[7,30,43],[8,29,43],[9,28,43]],2012:[[10,15,45],[11,14,45],[0,24,44],[1,23,44],[2,24,44],[3,22,44],[4,22,44],[5,21,44],[6,20,44],[7,19,44],[8,17,44],[9,17,44]],2013:[[10,4,46],[11,4,46],[0,13,45],[1,11,45],[2,13,45],[3,11,45],[4,11,45],[5,10,45],[6,9,45],[7,8,45],[8,7,45],[9,6,45]],2014:[[9,25,47],[10,23,47],[0,2,46,11,23,47],[1,1,46],[2,2,46],[3,1,46],[3,30,46],[4,30,46],[5,28,46],[6,28,46],[7,27,46],[8,25,46]],2015:[[9,14,48],[10,13,48],[11,12,48],[0,21,47],[1,20,47],[2,21,47],[3,20,47],[4,19,47],[5,18,47],[6,17,47],[7,16,47],[8,14,47]],2016:[[9,2,49],[10,1,49],[10,30,49],[0,11,48,11,30,49],[1,10,48],[2,10,48],[3,8,48],[4,8,48],[5,6,48],[6,6,48],[7,4,48],[8,2,48]],2017:[[8,21,50],[9,21,50],[10,19,50],[11,19,50],[0,29,49],[1,28,49],[2,29,49],[3,27,49],[4,27,49],[5,25,49],[6,24,49],[7,23,49]],2018:[[8,11,51],[9,10,51],[10,9,51],[11,8,51],[0,18,50],[1,17,50],[2,18,50],[3,17,50],[4,16,50],[5,15,50],[6,14,50],[7,12,50]],2019:[[7,31,52],[8,30,52],[9,29,52],[10,28,52],[0,7,51,11,27,52],[1,6,51],[2,8,51],[3,6,51],[4,6,51],[5,4,51],[6,4,51],[7,2,51]],2020:[[7,20,53],[8,18,53],[9,18,53],[10,16,53],[11,16,53],[0,26,52],[1,25,52],[2,25,52],[3,24,52],[4,24,52],[5,22,52],[6,22,52]],2021:[[7,9,54],[8,8,54],[9,7,54],[10,6,54],[11,5,54],[0,14,53],[1,13,53],[2,14,53],[3,13,53],[4,13,53],[5,11,53],[6,11,53]],2022:[[6,30,55],[7,28,55],[8,27,55],[9,26,55],[10,25,55],[0,4,54,11,25,55],[1,2,54],[2,4,54],[3,2,54],[4,2,54],[4,31,54],[5,30,54]],2023:[[6,19,56],[7,17,56],[8,16,56],[9,16,56],[10,15,56],[11,14,56],[0,23,55],[1,21,55],[2,23,55],[3,21,55],[4,21,55],[5,19,55]],2024:[[6,7,57],[7,5,57],[8,4,57],[9,4,57],[10,3,57],[11,3,57],[0,13,56],[1,11,56],[2,11,56],[3,10,56],[4,9,56],[5,7,56]],2025:[[5,26,58],[6,26,58],[7,24,58],[8,23,58],[9,23,58],[10,22,58],[0,1,57,11,21,58],[0,31,57],[2,1,57],[2,30,57],[3,29,57],[4,28,57]],2026:[[5,16,59],[6,15,59],[7,14,59],[8,12,59],[9,12,59],[10,11,59],[11,10,59],[0,20,58],[1,18,58],[2,20,58],[3,18,58],[4,18,58]],2027:[[5,6,60],[6,5,60],[7,3,60],[8,2,60],[9,1,60],[9,31,60],[10,29,60],[0,9,59,11,29,60],[1,8,59],[2,9,59],[3,8,59],[4,7,59]],2028:[[4,25,61],[5,24,61],[6,23,61],[7,22,61],[8,20,61],[9,19,61],[10,18,61],[11,17,61],[0,28,60],[1,26,60],[2,27,60],[3,26,60]],2029:[[4,14,62],[5,13,62],[6,13,62],[7,11,62],[8,10,62],[9,9,62],[10,7,62],[11,7,62],[0,16,61],[1,14,61],[2,16,61],[3,15,61]],2030:[[4,3,63],[5,2,63],[6,2,63],[7,1,63],[7,30,63],[8,29,63],[9,28,63],[10,26,63],[0,5,62,11,26,63],[1,4,62],[2,5,62],[3,4,62]],2031:[[3,23,64],[4,22,64],[5,21,64],[6,21,64],[7,20,64],[8,18,64],[9,17,64],[10,16,64],[11,15,64],[0,24,63],[1,23,63],[2,24,63]],2032:[[3,11,65],[4,10,65],[5,9,65],[6,9,65],[7,8,65],[8,6,65],[9,6,65],[10,4,65],[11,4,65],[0,14,64],[1,12,64],[2,13,64]],2033:[[3,1,66],[3,30,66],[4,29,66],[5,28,66],[6,28,66],[7,26,66],[8,25,66],[9,24,66],[10,23,66],[0,2,65,11,23,66],[1,1,65],[2,2,65]],2034:[[2,21,67],[3,20,67],[4,19,67],[5,17,67],[6,17,67],[7,15,67],[8,14,67],[9,13,67],[10,12,67],[11,12,67],[0,21,66],[1,20,66]],2035:[[2,11,68],[3,9,68],[4,9,68],[5,7,68],[6,6,68],[7,5,68],[8,3,68],[9,2,68],[10,1,68],[11,1,68],[0,11,67,11,30,68],[1,9,67]],2036:[[1,28,69],[2,29,69],[3,27,69],[4,27,69],[5,25,69],[6,24,69],[7,23,69],[8,21,69],[9,20,69],[10,19,69],[11,19,69],[0,29,68]],2037:[[1,16,70],[2,18,70],[3,17,70],[4,16,70],[5,15,70],[6,14,70],[7,12,70],[8,11,70],[9,10,70],[10,8,70],[11,8,70],[0,17,69]],2038:[[1,5,71],[2,7,71],[3,6,71],[4,5,71],[5,4,71],[6,3,71],[7,2,71],[7,31,71],[8,30,71],[9,29,71],[10,27,71],[0,7,70,11,27,71]],2039:[[0,26,72],[1,24,72],[2,26,72],[3,24,72],[4,24,72],[5,23,72],[6,22,72],[7,21,72],[8,19,72],[9,19,72],[10,17,72],[11,17,72]],2040:[[0,15,73],[1,14,73],[2,14,73],[3,13,73],[4,12,73],[5,11,73],[6,10,73],[7,9,73],[8,7,73],[9,7,73],[10,6,73],[11,5,73]],2041:[[0,4,74,11,24,75],[1,2,74],[2,4,74],[3,2,74],[4,1,74],[4,31,74],[5,29,74],[6,29,74],[7,28,74],[8,26,74],[9,26,74],[10,25,74]],2042:[[11,14,76],[0,23,75],[1,21,75],[2,23,75],[3,21,75],[4,20,75],[5,19,75],[6,18,75],[7,17,75],[8,15,75],[9,15,75],[10,14,75]],2043:[[11,3,77],[0,12,76],[1,11,76],[2,12,76],[3,11,76],[4,10,76],[5,8,76],[6,8,76],[7,6,76],[8,4,76],[9,4,76],[10,3,76]],2044:[[10,21,78],[0,2,77,11,21,78],[0,31,77],[2,1,77],[2,30,77],[3,29,77],[4,28,77],[5,26,77],[6,26,77],[7,24,77],[8,23,77],[9,22,77]],2045:[[10,10,79],[11,10,79],[0,19,78],[1,18,78],[2,20,78],[3,18,78],[4,18,78],[5,16,78],[6,15,78],[7,14,78],[8,12,78],[9,12,78]],2046:[[9,31,80],[10,29,80],[0,8,79,11,28,80],[1,7,79],[2,9,79],[3,7,79],[4,7,79],[5,5,79],[6,5,79],[7,3,79],[8,2,79],[9,1,79]],2047:[[9,20,81],[10,19,81],[11,18,81],[0,27,80],[1,26,80],[2,27,80],[3,26,80],[4,26,80],[5,24,80],[6,24,80],[7,23,80],[8,21,80]],2048:[[9,9,82],[10,7,82],[11,7,82],[0,16,81],[1,15,81],[2,16,81],[3,14,81],[4,14,81],[5,12,81],[6,12,81],[7,11,81],[8,10,81]],2049:[[8,28,83],[9,28,83],[10,26,83],[0,5,82,11,26,83],[1,3,82],[2,5,82],[3,3,82],[4,3,82],[5,2,82],[6,1,82],[6,31,82],[7,30,82]],2050:[[8,17,84],[9,17,84],[10,15,84],[11,15,84],[0,24,83],[1,23,83],[2,24,83],[3,22,83],[4,22,83],[5,20,83],[6,20,83],[7,19,83]],2051:[[8,6,85],[9,6,85],[10,5,85],[11,4,85],[0,14,84],[1,12,84],[2,14,84],[3,12,84],[4,11,84],[5,10,84],[6,9,84],[7,8,84]],2052:[[7,26,86],[8,24,86],[9,24,86],[10,22,86],[0,3,85,11,22,86],[1,2,85],[2,2,85],[3,1,85],[3,30,85],[4,29,85],[5,28,85],[6,27,85]],2053:[[7,15,87],[8,13,87],[9,13,87],[10,11,87],[11,11,87],[0,21,86],[1,20,86],[2,21,86],[3,20,86],[4,19,86],[5,17,86],[6,17,86]],2054:[[7,5,88],[8,3,88],[9,2,88],[10,1,88],[10,30,88],[0,10,87,11,30,88],[1,9,87],[2,10,87],[3,9,87],[4,9,87],[5,7,87],[6,6,87]],2055:[[6,25,89],[7,24,89],[8,22,89],[9,21,89],[10,20,89],[11,19,89],[0,29,88],[1,27,88],[2,29,88],[3,28,88],[4,28,88],[5,26,88]],2056:[[6,14,90],[7,12,90],[8,11,90],[9,10,90],[10,8,90],[11,8,90],[0,18,89],[1,17,89],[2,17,89],[3,16,89],[4,16,89],[5,14,89]],2057:[[6,3,91],[7,1,91],[7,31,91],[8,30,91],[9,29,91],[10,27,91],[0,6,90,11,27,91],[1,5,90],[2,6,90],[3,5,90],[4,5,90],[5,3,90]],2058:[[5,22,92],[6,21,92],[7,20,92],[8,19,92],[9,18,92],[10,17,92],[11,17,92],[0,25,91],[1,24,91],[2,25,91],[3,24,91],[4,23,91]],2059:[[5,11,93],[6,11,93],[7,9,93],[8,8,93],[9,8,93],[10,6,93],[11,6,93],[0,15,92],[1,14,92],[2,15,92],[3,13,92],[4,13,92]],2060:[[4,31,94],[5,29,94],[6,28,94],[7,27,94],[8,26,94],[9,25,94],[10,24,94],[0,5,93,11,24,94],[1,3,93],[2,4,93],[3,2,93],[4,1,93]],2061:[[4,20,95],[5,19,95],[6,18,95],[7,16,95],[8,15,95],[9,15,95],[10,13,95],[11,13,95],[0,23,94],[1,21,94],[2,23,94],[3,21,94]],2062:[[4,10,96],[5,8,96],[6,8,96],[7,6,96],[8,4,96],[9,4,96],[10,3,96],[11,2,96],[0,12,95],[1,10,95],[2,12,95],[3,11,95]],2063:[[3,30,97],[4,29,97],[5,27,97],[6,27,97],[7,25,97],[8,24,97],[9,23,97],[10,22,97],[0,1,96,11,21,97],[0,31,96],[2,1,96],[2,31,96]],2064:[[3,18,98],[4,17,98],[5,16,98],[6,15,98],[7,14,98],[8,12,98],[9,12,98],[10,10,98],[11,9,98],[0,20,97],[1,18,97],[2,19,97]],2065:[[3,7,99],[4,6,99],[5,5,99],[6,5,99],[7,3,99],[8,2,99],[9,1,99],[9,31,99],[10,29,99],[0,8,98,11,28,99],[1,6,98],[2,8,98]],2066:[[2,27,100],[3,25,100],[4,25,100],[5,24,100],[6,24,100],[7,22,100],[8,21,100],[9,20,100],[10,19,100],[11,18,100],[0,27,99],[1,25,99]],2067:[[2,16,101],[3,15,101],[4,14,101],[5,13,101],[6,13,101],[7,11,101],[8,10,101],[9,10,101],[10,8,101],[11,8,101],[0,16,100],[1,15,100]],2068:[[2,5,102],[3,3,102],[4,3,102],[5,1,102],[6,1,102],[6,30,102],[7,29,102],[8,28,102],[9,27,102],[10,26,102],[0,6,101,11,25,102],[1,4,101]],2069:[[1,23,103],[2,24,103],[3,22,103],[4,22,103],[5,20,103],[6,20,103],[7,18,103],[8,17,103],[9,16,103],[10,15,103],[11,15,103],[0,24,102]],2070:[[1,12,104],[2,14,104],[3,12,104],[4,11,104],[5,10,104],[6,9,104],[7,8,104],[8,6,104],[9,5,104],[10,4,104],[11,4,104],[0,13,103]],2071:[[1,1,105],[2,3,105],[3,2,105],[4,1,105],[4,30,105],[5,29,105],[6,28,105],[7,26,105],[8,25,105],[9,24,105],[10,23,105],[0,2,104,11,22,105]],2072:[[0,21,106],[1,20,106],[2,21,106],[3,19,106],[4,19,106],[5,17,106],[6,17,106],[7,15,106],[8,13,106],[9,13,106],[10,11,106],[11,11,106]],2073:[[0,9,107,11,30,108],[1,8,107],[2,10,107],[3,9,107],[4,8,107],[5,7,107],[6,6,107],[7,5,107],[8,3,107],[9,2,107],[10,1,107],[10,30,107]],2074:[[11,19,109],[0,28,108],[1,27,108],[2,29,108],[3,27,108],[4,27,108],[5,26,108],[6,25,108],[7,23,108],[8,22,108],[9,21,108],[10,20,108]],2075:[[11,9,110],[0,18,109],[1,16,109],[2,18,109],[3,16,109],[4,16,109],[5,15,109],[6,14,109],[7,13,109],[8,11,109],[9,11,109],[10,9,109]],2076:[[10,27,111],[0,7,110,11,27,111],[1,6,110],[2,6,110],[3,5,110],[4,4,110],[5,3,110],[6,2,110],[7,1,110],[7,30,110],[8,29,110],[9,29,110]],2077:[null,null,[0,26,111],[1,24,111],[2,25,111],[3,24,111],[4,23,111],[5,21,111],[6,21,111],[7,19,111],[8,18,111],[9,18,111]],year:1389}","import CalDate from 'caldate'\nimport CalEventMap from './CalEventMap.js'\nimport { calendar } from './internal/hijri-calendar.js'\n\nexport default class Hijri extends CalEventMap {\n constructor (opts) {\n super(opts)\n this.calendar = calendar\n }\n\n get (timezone) {\n const arr = this.dates.map((date) => {\n const cdate = new CalDate(date)\n const o = {\n date: cdate.toString() + ' -0600',\n start: cdate.setOffset(-6, 'h').toTimezone(timezone),\n end: cdate.toEndDate().toTimezone(timezone)\n }\n this._addSubstitute(date, o)\n return o\n })\n return arr\n }\n}\n","import CalDate from 'caldate'\nimport CalEvent from './CalEvent.js'\nimport jalaali from 'jalaali-js'\n\nconst { toJalaali, toGregorian } = jalaali\n\nexport default class Jalaali extends CalEvent {\n /**\n * @param {number} year gregorian year\n * @returns\n */\n inYear (year) {\n const nowruz = toJalaali(year, 1, 1)\n\n if (this.opts.year && nowruz.jy !== this.opts.year) {\n return this\n }\n const { gy, gm, gd } = toGregorian(this.opts.year || nowruz.jy, this.opts.month, this.opts.day)\n\n const d = (new CalDate({ year: gy, month: gm, day: gd })).setOffset(this.offset)\n this.dates.push(d)\n return this\n }\n}\n","const m = {\n L: {\n \"0\": [\n [1.75347045673, 0, 0],\n [0.03341656453, 4.66925680415, 6283.0758499914],\n [0.00034894275, 4.62610242189, 12566.1516999828],\n [0.00003417572, 2.82886579754, 3.523118349],\n [0.00003497056, 2.74411783405, 5753.3848848968],\n [0.00003135899, 3.62767041756, 77713.7714681205],\n [0.00002676218, 4.41808345438, 7860.4193924392],\n [0.00002342691, 6.13516214446, 3930.2096962196],\n [0.00001273165, 2.03709657878, 529.6909650946],\n [0.00001324294, 0.74246341673, 11506.7697697936],\n [0.00000901854, 2.04505446477, 26.2983197998],\n [0.00001199167, 1.10962946234, 1577.3435424478],\n [0.00000857223, 3.50849152283, 398.1490034082],\n [0.00000779786, 1.17882681962, 5223.6939198022],\n [0.0000099025, 5.23268072088, 5884.9268465832],\n [0.00000753141, 2.53339052847, 5507.5532386674],\n [0.00000505267, 4.58292599973, 18849.2275499742],\n [0.00000492392, 4.20505711826, 775.522611324],\n [0.00000356672, 2.91954114478, 0.0673103028],\n [0.00000284125, 1.89869240932, 796.2980068164],\n [0.00000242879, 0.34481445893, 5486.777843175],\n [0.00000317087, 5.84901948512, 11790.6290886588],\n [0.00000271112, 0.31486255375, 10977.078804699],\n [0.00000206217, 4.80646631478, 2544.3144198834],\n [0.00000205478, 1.86953770281, 5573.1428014331],\n [0.00000202318, 2.45767790232, 6069.7767545534],\n [0.00000126225, 1.08295459501, 20.7753954924],\n [0.00000155516, 0.83306084617, 213.299095438],\n [0.00000115132, 0.64544911683, 0.9803210682],\n [0.00000102851, 0.63599845579, 4694.0029547076],\n [0.00000101724, 4.2667980198, 7.1135470008],\n [9.9206e-7, 6.20992926918, 2146.1654164752],\n [0.00000132212, 3.41118292683, 2942.4634232916],\n [9.7607e-7, 0.68101342359, 155.4203994342],\n [8.5128e-7, 1.29870764804, 6275.9623029906],\n [7.4651e-7, 1.755089133, 5088.6288397668],\n [0.00000101895, 0.97569280312, 15720.8387848784],\n [8.4711e-7, 3.67080093031, 71430.69561812909],\n [7.3547e-7, 4.67926633877, 801.8209311238],\n [7.3874e-7, 3.50319414955, 3154.6870848956],\n [7.8757e-7, 3.03697458703, 12036.4607348882],\n [7.9637e-7, 1.80791287082, 17260.1546546904],\n [8.5803e-7, 5.9832263126, 161000.6857376741],\n [5.6963e-7, 2.78430458592, 6286.5989683404],\n [6.1148e-7, 1.81839892984, 7084.8967811152],\n [6.9627e-7, 0.83297621398, 9437.762934887],\n [5.6116e-7, 4.38694865354, 14143.4952424306],\n [6.2449e-7, 3.97763912806, 8827.3902698748],\n [5.1145e-7, 0.28306832879, 5856.4776591154],\n [5.5577e-7, 3.47006059924, 6279.5527316424],\n [4.1036e-7, 5.36817592855, 8429.2412664666],\n [5.1605e-7, 1.33282739866, 1748.016413067],\n [5.1992e-7, 0.18914947184, 12139.5535091068],\n [4.9e-7, 0.48735014197, 1194.4470102246],\n [3.92e-7, 6.16833020996, 10447.3878396044],\n [3.557e-7, 1.775968892, 6812.766815086],\n [3.677e-7, 6.04133863162, 10213.285546211],\n [3.6596e-7, 2.56957481827, 1059.3819301892],\n [3.3296e-7, 0.59310278598, 17789.845619785],\n [3.5954e-7, 1.70875808777, 2352.8661537718],\n [4.0938e-7, 2.39850938714, 19651.048481098],\n [3.0047e-7, 2.73975124088, 1349.8674096588],\n [3.0412e-7, 0.44294464169, 83996.84731811189],\n [2.3663e-7, 0.48473622521, 8031.0922630584],\n [2.3574e-7, 2.06528133162, 3340.6124266998],\n [2.1089e-7, 4.14825468851, 951.7184062506],\n [2.4738e-7, 0.21484762138, 3.5904286518],\n [2.5352e-7, 3.16470891653, 4690.4798363586],\n [2.2823e-7, 5.22195230819, 4705.7323075436],\n [2.1419e-7, 1.42563910473, 16730.4636895958],\n [2.1891e-7, 5.55594302779, 553.5694028424],\n [1.7481e-7, 4.56052900312, 135.0650800354],\n [1.9927e-7, 5.22209149316, 12168.0026965746],\n [1.986e-7, 5.77470242235, 6309.3741697912],\n [2.03e-7, 0.37133792946, 283.8593188652],\n [1.4421e-7, 4.19315052005, 242.728603974],\n [1.6225e-7, 5.98837767951, 11769.8536931664],\n [1.5077e-7, 4.1956716337, 6256.7775301916],\n [1.9124e-7, 3.82219958698, 23581.2581773176],\n [1.8888e-7, 5.38626892076, 149854.4001348079],\n [1.4346e-7, 3.72355084422, 38.0276726358],\n [1.7898e-7, 2.21490566029, 13367.9726311066],\n [1.2054e-7, 2.62229602614, 955.5997416086],\n [1.1287e-7, 0.17739329984, 4164.311989613],\n [1.3973e-7, 4.40134615007, 6681.2248533996],\n [1.3621e-7, 1.88934516495, 7632.9432596502],\n [1.2503e-7, 1.13052412208, 5.5229243074],\n [1.0498e-7, 5.35909979317, 1592.5960136328],\n [9.803e-8, 0.99948172646, 11371.7046897582],\n [9.22e-8, 4.57138585348, 4292.3308329504],\n [1.0327e-7, 6.19982170609, 6438.4962494256],\n [1.2003e-7, 1.00351462266, 632.7837393132],\n [1.0827e-7, 0.32734523824, 103.0927742186],\n [8.356e-8, 4.53902748706, 25132.3033999656],\n [1.0005e-7, 6.0291496328, 5746.271337896],\n [8.409e-8, 3.29946177848, 7234.794256242],\n [8.006e-8, 5.82145271855, 28.4491874678],\n [1.0523e-7, 0.93870455544, 11926.2544136688],\n [7.686e-8, 3.1214364064, 7238.6755916],\n [9.378e-8, 2.62413793196, 5760.4984318976],\n [8.127e-8, 6.11227839253, 4732.0306273434],\n [9.232e-8, 0.48344234496, 522.5774180938],\n [9.802e-8, 5.24413877132, 27511.4678735372],\n [7.871e-8, 0.99590133077, 5643.1785636774],\n [8.123e-8, 6.27053020099, 426.598190876],\n [9.048e-8, 5.33686323585, 6386.16862421],\n [8.621e-8, 4.16537179089, 7058.5984613154],\n [6.297e-8, 4.71723143652, 6836.6452528338],\n [7.575e-8, 3.97381357237, 11499.6562227928],\n [7.756e-8, 2.95728422442, 23013.5395395872],\n [7.314e-8, 0.60652522715, 11513.8833167944],\n [5.955e-8, 2.87641047954, 6283.14316029419],\n [6.534e-8, 5.79046406784, 18073.7049386502],\n [7.188e-8, 3.99831461988, 74.7815985673],\n [7.346e-8, 4.38582423903, 316.3918696566],\n [5.413e-8, 5.39199023275, 419.4846438752],\n [5.127e-8, 2.36059551778, 10973.55568635],\n [7.056e-8, 0.32258442532, 263.0839233728],\n [6.624e-8, 3.6647416584, 17298.1823273262],\n [6.762e-8, 5.91131766896, 90955.5516944961],\n [4.938e-8, 5.73672172371, 9917.6968745098],\n [5.547e-8, 2.45152589382, 12352.8526045448],\n [5.958e-8, 3.3205134466, 6283.0085396886],\n [4.471e-8, 2.06386138131, 7079.3738568078],\n [6.153e-8, 1.45823347458, 233141.3144043615],\n [4.348e-8, 4.42338625285, 5216.5803728014],\n [6.124e-8, 1.07494838623, 19804.8272915828],\n [4.488e-8, 3.65285033073, 206.1855484372],\n [4.02e-8, 0.83995823171, 20.3553193988],\n [5.188e-8, 4.06503864016, 6208.2942514241],\n [5.307e-8, 0.38216728132, 31441.6775697568],\n [3.785e-8, 2.34369213733, 3.881335358],\n [4.497e-8, 3.27230792447, 11015.1064773348],\n [4.132e-8, 0.92129851256, 3738.761430108],\n [3.521e-8, 5.9784480361, 3894.1818295422],\n [4.215e-8, 1.90601721876, 245.8316462294],\n [3.701e-8, 5.03067498875, 536.8045120954],\n [3.866e-8, 1.82632980909, 11856.2186514245],\n [3.652e-8, 1.01840564429, 16200.7727245012],\n [3.39e-8, 0.97784870142, 8635.9420037632],\n [3.737e-8, 2.9537891957, 3128.3887650958],\n [3.507e-8, 3.71291946317, 6290.1893969922],\n [3.086e-8, 3.64646921512, 10.6366653498],\n [3.397e-8, 1.10589356888, 14712.317116458],\n [3.334e-8, 0.83684903082, 6496.3749454294],\n [2.805e-8, 2.58503711584, 14314.1681130498],\n [3.65e-8, 1.08344142571, 88860.05707098669],\n [3.388e-8, 3.20182380957, 5120.6011455836],\n [3.252e-8, 3.47857474229, 6133.5126528568],\n [2.553e-8, 3.9486902726, 1990.745017041],\n [3.52e-8, 2.05559692878, 244287.60000722768],\n [2.565e-8, 1.56072409371, 23543.23050468179],\n [2.621e-8, 3.85639359951, 266.6070417218],\n [2.954e-8, 3.39692614359, 9225.539273283],\n [2.876e-8, 6.02633318445, 154717.6098876827],\n [2.395e-8, 1.16130078696, 10984.1923516998],\n [3.161e-8, 1.32798862116, 10873.9860304804],\n [3.163e-8, 5.08946546862, 21228.3920235458],\n [2.361e-8, 4.27212461943, 6040.3472460174],\n [3.03e-8, 1.80210001168, 35371.8872659764],\n [2.343e-8, 3.57688971514, 10969.9652576982],\n [2.618e-8, 2.57870151918, 22483.84857449259],\n [2.113e-8, 3.71711179417, 65147.6197681377],\n [2.019e-8, 0.81393923319, 170.6728706192],\n [2.003e-8, 0.38091017375, 6172.869528772],\n [2.506e-8, 3.74378169126, 10575.4066829418],\n [2.381e-8, 0.10581361289, 7.046236698],\n [1.949e-8, 4.86892513469, 36.0278666774],\n [2.074e-8, 4.22802468213, 5650.2921106782],\n [1.924e-8, 5.59460549844, 6282.0955289232],\n [1.949e-8, 1.06999605576, 5230.807466803],\n [1.988e-8, 5.19734705445, 6262.300454499],\n [1.887e-8, 3.74365662683, 23.8784377478],\n [1.787e-8, 1.25929659066, 12559.038152982],\n [1.883e-8, 1.90364058477, 15.252471185],\n [1.816e-8, 3.68083794819, 15110.4661198662],\n [1.701e-8, 4.41109562589, 110.2063212194],\n [1.99e-8, 3.93295788548, 6206.8097787158],\n [2.103e-8, 0.75354936681, 13521.7514415914],\n [1.774e-8, 0.48750515837, 1551.045222648],\n [1.882e-8, 0.86685462305, 22003.9146348698],\n [1.924e-8, 1.22901099088, 709.9330485583],\n [2.073e-8, 4.62531597856, 6037.244203762],\n [1.924e-8, 0.60231842492, 6284.0561710596],\n [1.596e-8, 3.98332879712, 13916.0191096416],\n [1.664e-8, 4.41947015623, 8662.240323563],\n [1.971e-8, 1.04560686192, 18209.33026366019],\n [1.942e-8, 4.31335979989, 6244.9428143536],\n [1.476e-8, 0.93274523818, 2379.1644735716],\n [1.81e-8, 0.49112137707, 1.4844727083],\n [1.346e-8, 1.51574753411, 4136.9104335162],\n [1.528e-8, 5.61833568587, 6127.6554505572],\n [1.791e-8, 3.22191142746, 39302.096962196],\n [1.747e-8, 3.05595292589, 18319.5365848796],\n [1.432e-8, 4.51123984264, 20426.571092422],\n [1.695e-8, 0.22049418623, 25158.6017197654],\n [1.242e-8, 4.46665354536, 17256.6315363414],\n [1.463e-8, 4.69248613506, 14945.3161735544],\n [1.205e-8, 1.86911906771, 4590.910180489],\n [1.19e-8, 2.74169967367, 12569.6748183318],\n [1.222e-8, 5.18120087481, 5333.9002410216],\n [1.39e-8, 5.42888623322, 143571.32428481648],\n [1.473e-8, 1.70487100866, 11712.9553182308],\n [1.362e-8, 2.61069503292, 6062.6632075526],\n [1.148e-8, 6.0300843061, 3634.6210245184],\n [1.198e-8, 5.15296117339, 10177.2576795336],\n [1.266e-8, 0.11422490557, 18422.62935909819],\n [1.411e-8, 1.09910890045, 3496.032826134],\n [1.349e-8, 2.99804623019, 17654.7805397496],\n [1.253e-8, 2.79844902576, 167283.7615876655],\n [1.311e-8, 1.609410743, 5481.2549188676],\n [1.079e-8, 6.20304501787, 3.2863574178],\n [1.181e-8, 1.20653777627, 131.5419616864],\n [1.254e-8, 5.45103277799, 6076.8903015542],\n [1.036e-8, 2.32136959491, 7342.4577801806],\n [1.117e-8, 0.38842340979, 949.1756089698],\n [9.66e-9, 3.18352079941, 11087.2851259184],\n [1.171e-8, 3.39635167732, 12562.6285816338],\n [1.121e-8, 0.72631814699, 220.4126424388],\n [1.024e-8, 2.19381113265, 11403.676995575],\n [8.88e-9, 3.91167196431, 4686.8894077068],\n [9.1e-9, 1.98802695087, 735.8765135318],\n [8.23e-9, 0.48822202854, 24072.9214697764],\n [1.096e-8, 6.17377835617, 5436.9930152402],\n [9.08e-9, 0.44959148878, 7477.522860216],\n [9.74e-9, 1.52996313552, 9623.6882766912],\n [8.4e-9, 1.79540573407, 5429.8794682394],\n [7.78e-9, 6.17703744517, 38.1330356378],\n [7.76e-9, 4.09859968447, 14.2270940016],\n [1.068e-8, 4.64209577648, 43232.3066584156],\n [9.54e-9, 1.49985885818, 1162.4747044078],\n [9.07e-9, 0.86986870809, 10344.2950653858],\n [9.31e-9, 4.06049877517, 28766.924424484],\n [7.39e-9, 5.04368192034, 639.897286314],\n [9.65e-9, 3.44286716197, 1589.0728952838],\n [7.63e-9, 5.86304776787, 16858.4825329332],\n [9.53e-9, 4.20801492835, 11190.377900137],\n [7.08e-9, 1.72432323967, 13095.8426650774],\n [9.69e-9, 1.64437243011, 29088.811415985],\n [7.17e-9, 0.16688678895, 11.729352836],\n [9.62e-9, 3.53101876172, 12416.5885028482],\n [7.45e-9, 5.77741082302, 12592.4500197826],\n [6.72e-9, 1.91091228744, 3.9321532631],\n [6.71e-9, 5.46240758839, 18052.9295431578],\n [6.75e-9, 6.28311649798, 4535.0594369244],\n [6.84e-9, 0.39975011401, 5849.3641121146],\n [7.99e-9, 0.29859056777, 12132.439962106],\n [7.58e-9, 0.96370719224, 1052.2683831884],\n [7.82e-9, 5.33875702541, 13517.8701062334],\n [7.3e-9, 1.70114998543, 17267.26820169119],\n [7.49e-9, 2.59607005624, 11609.8625440122],\n [7.34e-9, 2.7842049778, 640.8776073822],\n [6.88e-9, 5.15097673557, 16496.3613962024],\n [7.7e-9, 1.62459252416, 4701.1165017084],\n [6.33e-9, 2.20588443066, 25934.1243310894],\n [7.6e-9, 4.21317219403, 377.3736079158],\n [5.84e-9, 2.13420121623, 10557.5941608238],\n [5.72e-9, 0.24649745829, 9779.1086761254],\n [5.73e-9, 3.16435264609, 533.2140834436],\n [6.85e-9, 3.19344289472, 12146.6670561076],\n [6.75e-9, 0.96179234176, 10454.5013866052],\n [6.48e-9, 1.46327342554, 6268.8487559898],\n [5.89e-9, 2.50543543638, 3097.88382272579],\n [5.51e-9, 5.28106257475, 9388.0059094152],\n [6.96e-9, 3.6534215555, 4804.209275927],\n [6.69e-9, 2.5103005926, 2388.8940204492],\n [5.5e-9, 0.06883090057, 20199.094959633],\n [6.29e-9, 4.13350997495, 45892.73043315699],\n [6.78e-9, 6.09190163533, 135.62532501],\n [5.93e-9, 1.50129499103, 226858.23855437007],\n [5.42e-9, 3.58582033525, 6148.010769956],\n [5.99e-9, 6.12058050643, 18875.525869774],\n [6.82e-9, 5.0221361683, 17253.04110768959],\n [5.65e-9, 4.29309214275, 11933.3679606696],\n [4.86e-9, 0.77746204893, 27.4015560968],\n [5.03e-9, 0.58974557727, 15671.0817594066],\n [6.16e-9, 4.06539884128, 227.476132789],\n [5.37e-9, 2.15064382406, 21954.15760939799],\n [6.69e-9, 6.06995500278, 47162.5163546352],\n [5.4e-9, 2.83444221432, 5326.7866940208],\n [4.74e-9, 0.40346826846, 6915.8595893046],\n [5.32e-9, 5.26131065063, 10988.808157535],\n [5.82e-9, 3.24533095664, 153.7788104848],\n [6.41e-9, 3.24711790399, 2107.0345075424],\n [6.19e-9, 3.08302108547, 33019.0211122046],\n [4.66e-9, 3.14982369789, 10440.2742926036],\n [4.66e-9, 0.90708835651, 5966.6839803348],\n [5.28e-9, 0.8192645447, 813.5502839598],\n [6.03e-9, 3.81378921927, 316428.22867391503],\n [5.59e-9, 1.8189498573, 17996.0311682222],\n [4.37e-9, 2.28631745987, 6303.8512454838],\n [5.18e-9, 4.86068318058, 20597.2439630412],\n [4.24e-9, 6.23520018697, 6489.2613984286],\n [5.18e-9, 6.17617826756, 0.2438174835],\n [4.04e-9, 5.72804304258, 5642.1982426092],\n [4.58e-9, 1.34117773914, 6287.0080032545],\n [5.48e-9, 5.6845445832, 155427.542936241],\n [5.47e-9, 1.03391472434, 3646.3503773544],\n [4.28e-9, 4.6980968782, 846.0828347512],\n [4.13e-9, 6.0252069939, 6279.4854213396],\n [5.34e-9, 3.03030638223, 66567.48586525429],\n [3.83e-9, 1.4905558804, 19800.9459562248],\n [4.11e-9, 5.28384176408, 18451.07854656599],\n [3.52e-9, 4.68891600525, 4907.3020501456],\n [4.8e-9, 5.36572651091, 348.924420448],\n [3.44e-9, 5.89157452889, 6546.1597733642],\n [3.4e-9, 0.37557440365, 13119.72110282519],\n [4.34e-9, 4.98417856239, 6702.5604938666],\n [3.32e-9, 2.6890934443, 29296.6153895786],\n [4.48e-9, 2.16478480251, 5905.7022420756],\n [3.44e-9, 2.06546633735, 49.7570254718],\n [3.15e-9, 1.24023810969, 4061.2192153944],\n [3.24e-9, 2.30897526929, 5017.508371365],\n [4.13e-9, 0.17171692945, 6286.6662786432],\n [4.31e-9, 3.8660110138, 12489.8856287072],\n [3.49e-9, 4.55372493131, 4933.2084403326],\n [3.23e-9, 0.41971136084, 10770.8932562618],\n [3.41e-9, 2.68612860807, 11.0457002639],\n [3.16e-9, 3.52966641606, 17782.7320727842],\n [3.15e-9, 5.63357264999, 568.8218740274],\n [3.4e-9, 3.83571212349, 10660.6869350424],\n [2.96e-9, 0.62703270489, 20995.3929664494],\n [4.05e-9, 1.00084965393, 16460.33352952499],\n [4.14e-9, 1.21998752076, 51092.7260508548],\n [3.36e-9, 4.71465945215, 6179.9830757728],\n [3.61e-9, 3.71235613733, 28237.2334593894],\n [3.27e-9, 1.05606504715, 11919.140866668],\n [3.27e-9, 6.1422242098, 6254.6266625236],\n [2.68e-9, 2.47224339737, 664.75604513],\n [2.69e-9, 1.86210872453, 23141.5583829246],\n [3.45e-9, 0.93461290184, 6058.7310542895],\n [3.53e-9, 4.50033650657, 36949.2308084242],\n [3.44e-9, 6.26166140367, 24356.7807886416],\n [3e-9, 4.46964001975, 6418.1409300268],\n [2.6e-9, 4.04967464725, 6525.8044539654],\n [2.98e-9, 2.20018811054, 156137.47598479927],\n [2.53e-9, 3.49930797865, 29864.334027309],\n [2.54e-9, 2.44883530154, 5331.3574437408],\n [2.96e-9, 0.84341183907, 5729.506447149],\n [2.41e-9, 2.00721298729, 16737.5772365966],\n [3.11e-9, 1.23668016336, 6281.5913772831],\n [3.32e-9, 3.55576945724, 7668.6374249425],\n [2.36e-9, 2.47437156031, 6245.0481773556],\n [2.64e-9, 4.43924412283, 12964.300703391],\n [2.57e-9, 1.79654471948, 11080.1715789176],\n [2.6e-9, 3.3307759606, 5888.4499649322],\n [2.85e-9, 0.3088636143, 11823.1616394502],\n [2.9e-9, 5.70141882483, 77.673770428],\n [2.55e-9, 4.00939662024, 5881.4037282342],\n [2.53e-9, 4.73318512715, 16723.350142595],\n [2.28e-9, 0.95333661324, 5540.0857894588],\n [2.81e-9, 1.29199646396, 22805.7355659936],\n [3.19e-9, 1.38633229189, 163096.18036118348],\n [2.24e-9, 1.65156322696, 10027.9031957292],\n [2.26e-9, 0.34125379653, 17796.9591667858],\n [2.36e-9, 4.19817431922, 19.66976089979],\n [2.81e-9, 4.14114899916, 12539.853380183],\n [2.75e-9, 5.50306930248, 32.5325507914],\n [2.23e-9, 5.23334210294, 56.8983749356],\n [2.17e-9, 6.08598789777, 6805.6532680852],\n [2.28e-9, 5.17114391778, 11720.0688652316],\n [2.74e-9, 4.50716805713, 6016.4688082696],\n [2.45e-9, 3.96486270306, 22.7752014508],\n [2.2e-9, 4.7207808197, 6.62855890001],\n [2.07e-9, 5.71701403951, 41.5507909848],\n [2.04e-9, 3.9122741125, 2699.7348193176],\n [2.09e-9, 0.86881969024, 6321.1035226272],\n [2e-9, 2.11984442601, 4274.5183108324],\n [2e-9, 5.39839888151, 6019.9919266186],\n [2.09e-9, 5.67606291663, 11293.4706743556],\n [2.52e-9, 1.6496572935, 9380.9596727172],\n [2.75e-9, 5.04826903506, 73.297125859],\n [2.08e-9, 1.88207277133, 11300.5842213564],\n [2.06e-9, 5.0728488933, 6277.552925684],\n [2.72e-9, 0.74640924904, 1975.492545856],\n [1.99e-9, 3.30813142103, 22743.4093795164],\n [2.69e-9, 4.48560812155, 64471.99124174489],\n [1.92e-9, 2.17463565107, 5863.5912061162],\n [2.28e-9, 5.85373115869, 128.0188433374],\n [2.61e-9, 2.64321183295, 55022.9357470744],\n [1.96e-9, 2.4853762232, 16062.1845261168],\n [1.87e-9, 1.3189176028, 29826.3063546732],\n [2.2e-9, 5.75012110079, 29.429508536],\n [1.87e-9, 4.03230554718, 467.9649903544],\n [2e-9, 5.60555262896, 1066.49547719],\n [2.31e-9, 1.09802712785, 12341.8069042809],\n [1.98e-9, 0.29474229005, 149.5631971346],\n [2.49e-9, 5.1047702317, 7875.6718636242],\n [1.79e-9, 0.87066197995, 12721.572099417],\n [2.03e-9, 1.56914310573, 28286.9904848612],\n [1.98e-9, 3.54061588502, 30.914125635],\n [1.71e-9, 3.45366018621, 5327.4761083828],\n [1.83e-9, 0.72325421604, 6272.0301497275],\n [2.16e-9, 2.97175184412, 19402.7969528166],\n [1.68e-9, 2.51559879907, 23937.856389741],\n [1.95e-9, 0.09045393425, 156.4007205024],\n [2.16e-9, 0.42162375972, 23539.7073863328],\n [1.89e-9, 0.37542530191, 9814.6041002912],\n [2.07e-9, 2.01752547259, 238004.5241572363],\n [2.18e-9, 2.36835893645, 16627.3709153772],\n [1.66e-9, 4.23182960518, 16840.67001081519],\n [2e-9, 2.02153258098, 16097.6799502826],\n [1.69e-9, 0.91318727, 95.9792272178],\n [2.11e-9, 5.73370637657, 151.8972810852],\n [2.04e-9, 0.42643085174, 515.463871093],\n [2.12e-9, 3.00223140894, 12043.574281889],\n [1.92e-9, 5.46153589821, 6379.0550772092],\n [1.6e-9, 6.23798383332, 202.2533951741],\n [2.15e-9, 0.20889073407, 5621.8429232104],\n [1.5e-9, 3.12999753018, 799.8211251654],\n [1.87e-9, 2.12345787867, 491.6632924588],\n [1.92e-9, 1.33928820063, 394.6258850592],\n [1.49e-9, 2.65697593276, 21.335640467],\n [1.46e-9, 5.58021191726, 412.3710968744],\n [1.56e-9, 3.7565767638, 12323.4230960088],\n [1.43e-9, 3.28248547724, 29.8214381488],\n [1.44e-9, 1.07862546598, 1265.5674786264],\n [1.48e-9, 0.2338663109, 10021.8372800994],\n [1.64e-9, 0.94288727597, 14919.0178537546],\n [1.93e-9, 5.92751083827, 40879.4405046438],\n [1.4e-9, 4.97612440269, 158.9435177832],\n [1.48e-9, 2.61651818006, 17157.0618804718],\n [1.4e-9, 3.66947933935, 26084.0218062162],\n [1.47e-9, 5.09968173403, 661.232926781],\n [1.47e-9, 1.36976712162, 4171.4255366138],\n [1.34e-9, 4.79432636012, 111.1866422876],\n [1.4e-9, 1.27748013377, 107.6635239386],\n [1.71e-9, 2.77586207403, 26735.9452622132],\n [1.83e-9, 5.43418358741, 369.6998159404],\n [1.34e-9, 3.09132862833, 17.812522118],\n [1.32e-9, 3.05633896779, 22490.9621214934],\n [1.81e-9, 4.22950689891, 966.9708774356],\n [1.66e-9, 3.67660435776, 15508.6151232744],\n [1.52e-9, 5.28885813387, 12669.2444742014],\n [1.5e-9, 5.86819430895, 97238.62754448749],\n [1.45e-9, 5.07330784304, 87.30820453981],\n [1.33e-9, 5.65471067133, 31.9723058168],\n [1.24e-9, 2.83326216907, 12566.2190102856],\n [1.4e-9, 5.84212721453, 22476.73502749179],\n [1.34e-9, 3.12858101887, 32217.2001810808],\n [1.37e-9, 0.86487461904, 9924.8104215106],\n [1.72e-9, 1.98369595114, 174242.4659640497],\n [1.7e-9, 4.41115280254, 327574.51427678124],\n [1.28e-9, 4.49087631612, 31415.379249957],\n [1.51e-9, 0.46542092001, 39609.6545831656],\n [1.53e-9, 3.78801830344, 17363.24742890899],\n [1.65e-9, 5.31654110459, 16943.7627850338],\n [1.65e-9, 4.06747587817, 58953.145443294],\n [1.18e-9, 0.63846333239, 6.0659156298],\n [1.59e-9, 0.86086959274, 221995.02880149524],\n [1.19e-9, 5.96432932413, 1385.8952763362],\n [1.14e-9, 5.16516114595, 25685.872802808],\n [1.12e-9, 4.92889233335, 56.8032621698],\n [1.19e-9, 2.40626699328, 18635.9284545362],\n [1.15e-9, 0.23374479051, 418.9243989006],\n [1.13e-9, 2.7938757674, 6272.4391846416],\n [1.22e-9, 0.936940724, 24492.40611365159],\n [1.33e-9, 4.87155573413, 22345.2603761082],\n [1.13e-9, 3.80362889046, 6293.7125153412],\n [1.3e-9, 3.72996018683, 12573.2652469836],\n [1.07e-9, 3.40227152756, 21393.5419698576],\n [1.22e-9, 1.00385670948, 95143.1329209781],\n [1.4e-9, 1.094130757, 44809.6502008634],\n [1.12e-9, 6.05462382871, 433.7117378768],\n [1.23e-9, 4.55640196386, 239424.39025435288],\n [1.04e-9, 1.54931540602, 127.9515330346],\n [1.11e-9, 3.04186517428, 8982.810669309],\n [1.02e-9, 4.12448497391, 15664.03552270859],\n [1.07e-9, 4.67919356465, 77690.75950573849],\n [1.18e-9, 4.5232017012, 19004.6479494084],\n [1.07e-9, 5.71774478555, 77736.78343050249],\n [1.03e-9, 4.79332126649, 33794.5437235286],\n [1.43e-9, 1.81201813018, 4214.0690150848],\n [1.02e-9, 3.7581778657, 58864.5439181463],\n [1.25e-9, 1.14419195615, 625.6701923124],\n [1.24e-9, 3.27736513892, 12566.08438968],\n [1.1e-9, 1.08705709966, 2787.0430238574],\n [1.02e-9, 4.75119578149, 12242.6462833254],\n [1.01e-9, 4.91289409429, 401.6721217572],\n [1.38e-9, 2.89578979744, 9411.4646150872],\n [1.29e-9, 1.23516042371, 12029.3471878874],\n [1.38e-9, 2.45654707076, 7576.560073574],\n [9.8e-10, 5.4477176502, 29026.48522950779],\n [1.34e-9, 1.43105174912, 86464.6133168312],\n [1.08e-9, 0.9898977494, 5636.0650166766],\n [1.17e-9, 5.17362847134, 34520.3093093808],\n [9.7e-10, 3.34717130592, 16310.9790457206],\n [1.07e-9, 2.94547931851, 24602.61243487099],\n [9.8e-10, 4.37041908717, 34513.2630726828],\n [1.25e-9, 2.72182830814, 24065.80792277559],\n [1.11e-9, 0.58899131543, 6303.4311693902],\n [1.02e-9, 0.66938025772, 10239.5838660108],\n [1.19e-9, 1.21666517886, 1478.8665740644],\n [1.11e-9, 1.04321934681, 16522.6597160022],\n [9.4e-10, 4.31076339857, 26880.3198130326],\n [9.8e-10, 4.14248433763, 6599.467719648],\n [9.5e-10, 2.89807657534, 34911.412076091],\n [9.7e-10, 0.89642320201, 71980.63357473118],\n [9.5e-10, 0.65717727948, 6288.5987742988],\n [1.16e-9, 4.19967201116, 206.7007372966],\n [9.5e-10, 1.78315464297, 18139.2945014159],\n [9.9e-10, 1.37437847718, 1039.0266107904],\n [1.26e-9, 3.21642544972, 305281.9430710488],\n [9.4e-10, 0.6899503186, 7834.1210726394],\n [9.5e-10, 5.58111421744, 3104.9300594238],\n [1.08e-9, 0.52696637156, 276.7457718644],\n [1.24e-9, 3.43899862683, 172146.9713405403],\n [8.7e-10, 1.18764938806, 18842.11400297339],\n [8.7e-10, 0.09094166389, 15141.390794312],\n [1.08e-9, 1.03363414379, 82576.9812209953],\n [1.19e-9, 2.86729109648, 90394.82301305079],\n [1.04e-9, 3.39218586218, 290.972865866],\n [9.4e-10, 5.68284937444, 32367.0976562076],\n [1.17e-9, 0.78475956902, 83286.91426955358],\n [1.05e-9, 3.96551057233, 6357.8574485587],\n [9.4e-10, 4.03443174853, 13341.6743113068],\n [9.6e-10, 0.92742567538, 1062.9050485382],\n [8.9e-10, 4.45371820659, 792.7748884674],\n [8.7e-10, 0.40013481685, 90279.92316810328],\n [1.13e-9, 2.48165313368, 48739.859897083],\n [8.7e-10, 3.43122851097, 27707.5424942948],\n [1.01e-9, 5.32081603011, 2301.58581590939],\n [8.4e-10, 0.67020912458, 28628.3362260996],\n [8.2e-10, 0.87060089842, 10241.2022911672],\n [8.6e-10, 4.6206479229, 36147.4098773004],\n [8e-10, 4.77649625396, 6819.8803620868],\n [9.5e-10, 2.87032913492, 23020.65308658799],\n [1.07e-9, 5.77864921649, 34115.1140692746],\n [1.1e-9, 3.32898859416, 72140.6286666874],\n [8.7e-10, 4.40657711727, 142.1786270362],\n [1.03e-9, 4.2250672681, 30666.1549584328],\n [8.2e-10, 3.89404392552, 5547.1993364596],\n [1.09e-9, 1.94546065204, 24279.10701821359],\n [8.7e-10, 4.32472045435, 742.9900605326],\n [1.07e-9, 4.91580912547, 277.0349937414],\n [8.8e-10, 2.10180817713, 26482.1708096244],\n [8.6e-10, 4.01895021483, 12491.3701014155],\n [1.06e-9, 5.49092372854, 62883.3551395136],\n [8e-10, 6.1978570495, 6709.6740408674],\n [1.05e-9, 2.44166529175, 6298.3283211764],\n [8.3e-10, 4.90662164029, 51.28033786241],\n [7.4e-10, 2.34622575625, 7018.9523635232],\n [7.8e-10, 6.06947270265, 148434.53403769128],\n [7.9e-10, 3.03048221644, 838.9692877504],\n [7.3e-10, 3.05008665738, 567.7186377304],\n [1.02e-9, 3.59223815483, 22380.755800274],\n [8.4e-10, 0.46604373274, 45.1412196366],\n [9.2e-10, 4.12917744733, 18216.443810661],\n [9.1e-10, 0.49382398887, 6453.7487206106],\n [7.3e-10, 1.72446569088, 21424.4666443034],\n [6.9e-10, 1.4937267773, 21548.9623692918],\n [6.9e-10, 4.73181018058, 8858.3149443206],\n [7.7e-10, 0.47683782532, 11520.9968637952],\n [7.8e-10, 5.4394263099, 15265.8865193004],\n [7.7e-10, 2.53773750372, 76.2660712756],\n [6.9e-10, 2.53932635192, 9910.583327509],\n [7.5e-10, 0.1559472921, 23006.42599258639],\n [7.8e-10, 2.41004950269, 6393.2821712108],\n [6.7e-10, 5.05152846816, 57375.8019008462],\n [7.7e-10, 3.9107560486, 24383.0791084414],\n [6.7e-10, 0.78239147387, 12779.4507954208],\n [7.1e-10, 1.24817900687, 10419.9862835076],\n [6.7e-10, 5.7785122776, 6311.5250374592],\n [6.1e-10, 2.66705754411, 18852.7506683232],\n [7.9e-10, 1.89137330427, 6528.9074962208],\n [8.4e-10, 5.11523704221, 50317.2034395308],\n [5.9e-10, 3.38290426621, 35707.7100829074],\n [6.5e-10, 4.66767908854, 26709.6469424134],\n [7.9e-10, 5.59773848156, 71960.38658322369],\n [6.1e-10, 3.30733768968, 18845.7044316252],\n [5.7e-10, 3.90831298022, 5999.2165311262],\n [5.8e-10, 3.92572820333, 30348.883772767],\n [6.1e-10, 0.05695045822, 7856.89627409019],\n [6.1e-10, 5.63297960691, 7863.9425107882],\n [6.8e-10, 2.53986117507, 20452.8694122218],\n [5.3e-10, 5.44021645443, 32370.9789915656],\n [5.9e-10, 4.95695131145, 11925.2740926006],\n [5.9e-10, 5.34668243273, 137288.2484348251],\n [5.6e-10, 4.05779957425, 17892.93839400359],\n [5.3e-10, 3.94182462468, 18624.8827542723],\n [4.9e-10, 2.11782803206, 22594.05489571199],\n [6.2e-10, 2.47154086715, 12345.739057544],\n [4.9e-10, 5.7659693738, 18606.4989460002],\n [5.2e-10, 6.20902099741, 21947.1113727],\n [5.1e-10, 3.13287981215, 33326.5787331742],\n [5.7e-10, 6.17003357597, 61306.0115970658],\n [6.4e-10, 5.66596451842, 34596.3646546524],\n [6.6e-10, 3.922623355, 69853.3520756813],\n [5.3e-10, 5.51119362049, 77710.24834977149],\n [5.3e-10, 4.88573986965, 77717.29458646949],\n [4.8e-10, 2.71399112516, 20760.4270331914],\n [4.6e-10, 6.08376164442, 29822.7832363242],\n [5.2e-10, 0.3139748138, 37724.7534197482],\n [4.5e-10, 5.53587248663, 6262.7205305926],\n [5.9e-10, 2.45437896854, 69166.430989505],\n [6e-10, 5.24261569842, 56600.2792895222],\n [5.1e-10, 6.15794342172, 11616.976091013],\n [6e-10, 1.74758109828, 44034.1275895394],\n [4.9e-10, 5.08973141046, 33990.6183442862],\n [4.4e-10, 3.28270864884, 29424.634232916],\n [5.2e-10, 5.34866947943, 28313.288804661],\n [5.9e-10, 2.12384971916, 36173.7081971002],\n [5e-10, 0.46480931695, 25287.7237993998],\n [4.4e-10, 2.0550351721, 63658.8777508376],\n [4.4e-10, 1.71009200258, 13362.4497067992],\n [4.1e-10, 3.91721318316, 6279.1945146334],\n [4.2e-10, 1.52106001448, 23550.34405168259],\n [4.2e-10, 3.10938258068, 84672.47584450469],\n [4.1e-10, 3.78863023321, 35050.00027447539],\n [4.2e-10, 5.57543459263, 38500.2760310722],\n [4e-10, 5.55145719363, 12565.1713789146],\n [5.4e-10, 0.889354921, 50290.905119731],\n [5.5e-10, 2.50268487636, 77828.671313068],\n [5.4e-10, 4.16257918787, 22910.44676536859],\n [4.1e-10, 2.32141215064, 6286.9571853494],\n [4.5e-10, 3.18590576311, 45585.1728121874],\n [4.5e-10, 2.24348941683, 23646.32327890039],\n [4.3e-10, 3.8789211095, 6549.6828917132],\n [4.8e-10, 2.11364139445, 31570.7996493912],\n [4.3e-10, 5.55099558987, 12359.9661515456],\n [4.1e-10, 4.88191569433, 23536.11695768099],\n [4.9e-10, 2.44790922235, 13613.804277336],\n [4.7e-10, 3.5818169391, 4797.0957289262]\n ],\n \"1\": [\n [6283.0758499914, 0, 0],\n [0.00206058863, 2.67823455808, 6283.0758499914],\n [0.00004303419, 2.63512233481, 12566.1516999828],\n [0.00000425264, 1.59046982018, 3.523118349],\n [0.00000109017, 2.96631010675, 1577.3435424478],\n [9.3479e-7, 2.59211109542, 18849.2275499742],\n [0.00000119305, 5.79555765566, 26.2983197998],\n [7.2121e-7, 1.13840581212, 529.6909650946],\n [6.7784e-7, 1.87453300345, 398.1490034082],\n [6.735e-7, 4.40932832004, 5507.5532386674],\n [5.9045e-7, 2.88815790631, 5223.6939198022],\n [5.5976e-7, 2.17471740035, 155.4203994342],\n [4.5411e-7, 0.39799502896, 796.2980068164],\n [3.6298e-7, 0.46875437227, 775.522611324],\n [2.8962e-7, 2.64732254645, 7.1135470008],\n [1.9097e-7, 1.84628376049, 5486.777843175],\n [2.0844e-7, 5.34138275149, 0.9803210682],\n [1.8508e-7, 4.96855179468, 213.299095438],\n [1.6233e-7, 0.03216587315, 2544.3144198834],\n [1.7293e-7, 2.9911676063, 6275.9623029906],\n [1.5832e-7, 1.43049301283, 2146.1654164752],\n [1.4608e-7, 1.2046979369, 10977.078804699],\n [1.1877e-7, 3.25805082007, 5088.6288397668],\n [1.1514e-7, 2.07502080082, 4694.0029547076],\n [9.721e-8, 4.2392586526, 1349.8674096588],\n [9.969e-8, 1.30263423409, 6286.5989683404],\n [9.452e-8, 2.69956827011, 242.728603974],\n [1.2461e-7, 2.83432282119, 1748.016413067],\n [1.1808e-7, 5.27379760438, 1194.4470102246],\n [8.577e-8, 5.6447608598, 951.7184062506],\n [1.0641e-7, 0.76614722966, 553.5694028424],\n [7.576e-8, 5.30056172859, 2352.8661537718],\n [5.764e-8, 1.77228445837, 1059.3819301892],\n [6.385e-8, 2.65034514038, 9437.762934887],\n [5.223e-8, 5.66135782131, 71430.69561812909],\n [5.315e-8, 0.91110018969, 3154.6870848956],\n [6.101e-8, 4.66633726278, 4690.4798363586],\n [4.335e-8, 0.23934560382, 6812.766815086],\n [5.041e-8, 1.42489704722, 6438.4962494256],\n [4.259e-8, 0.77355543889, 10447.3878396044],\n [5.2e-8, 1.85528830215, 801.8209311238],\n [3.744e-8, 2.00119905572, 8031.0922630584],\n [3.553e-8, 2.42789590229, 14143.4952424306],\n [3.372e-8, 3.86210786421, 1592.5960136328],\n [3.38e-8, 0.88545388924, 12036.4607348882],\n [3.196e-8, 3.19713328141, 4705.7323075436],\n [3.221e-8, 0.6160104899, 8429.2412664666],\n [4.132e-8, 5.23992584671, 7084.8967811152],\n [2.97e-8, 6.07029819073, 4292.3308329504],\n [2.9e-8, 2.32464208411, 20.3553193988],\n [3.504e-8, 4.79976712702, 6279.5527316424],\n [2.95e-8, 1.43108874817, 5746.271337896],\n [2.697e-8, 4.80365209201, 7234.794256242],\n [2.531e-8, 6.22289990904, 6836.6452528338],\n [2.745e-8, 0.93466065396, 5760.4984318976],\n [3.25e-8, 3.39951915286, 7632.9432596502],\n [2.278e-8, 5.00339914806, 17789.845619785],\n [2.076e-8, 3.95551309007, 10213.285546211],\n [2.061e-8, 2.2240771919, 5856.4776591154],\n [2.252e-8, 5.67166717686, 11499.6562227928],\n [2.148e-8, 5.20182663314, 11513.8833167944],\n [1.886e-8, 0.53198539077, 3340.6124266998],\n [1.875e-8, 4.73511969924, 83996.84731811189],\n [2.06e-8, 2.54985307819, 25132.3033999656],\n [1.794e-8, 1.47435300254, 4164.311989613],\n [1.778e-8, 3.02473091781, 5.5229243074],\n [2.036e-8, 0.90908165072, 6256.7775301916],\n [2.064e-8, 2.27051326957, 522.5774180938],\n [1.773e-8, 3.03090500693, 5753.3848848968],\n [1.569e-8, 6.12406216872, 5216.5803728014],\n [1.59e-8, 4.63713748247, 3.2863574178],\n [1.533e-8, 4.20305593883, 13367.9726311066],\n [1.427e-8, 1.19087535126, 3894.1818295422],\n [1.376e-8, 4.24955891338, 426.598190876],\n [1.375e-8, 3.09301252193, 135.0650800354],\n [1.308e-8, 3.0849213889, 5643.1785636774],\n [1.34e-8, 5.76513167968, 6040.3472460174],\n [1.25e-8, 3.07748196332, 11926.2544136688],\n [1.551e-8, 3.07664090662, 6681.2248533996],\n [1.148e-8, 3.24144202282, 12168.0026965746],\n [1.268e-8, 2.09201189992, 6290.1893969922],\n [1.248e-8, 3.44506939791, 536.8045120954],\n [1.118e-8, 2.31830078762, 16730.4636895958],\n [1.105e-8, 5.31966001019, 23.8784377478],\n [1.012e-8, 3.74953487087, 7860.4193924392],\n [1.025e-8, 2.4468377161, 1990.745017041],\n [9.62e-9, 0.81771017882, 3.881335358],\n [9.11e-9, 0.41724352112, 7079.3738568078],\n [1.091e-8, 3.98233608618, 11506.7697697936],\n [9.57e-9, 4.07671436153, 6127.6554505572],\n [8.35e-9, 5.28348689371, 11790.6290886588],\n [8.02e-9, 3.88779080089, 10973.55568635],\n [7.73e-9, 2.41044394817, 1589.0728952838],\n [7.58e-9, 1.30034365873, 103.0927742186],\n [7.49e-9, 4.96281442361, 6496.3749454294],\n [7.65e-9, 3.36312388424, 36.0278666774],\n [9.15e-9, 5.41549763095, 206.1855484372],\n [7.76e-9, 2.57589060224, 11371.7046897582],\n [7.72e-9, 3.98363364977, 955.5997416086],\n [7.49e-9, 5.17900231417, 10969.9652576982],\n [8.06e-9, 0.34226117299, 9917.6968745098],\n [7.28e-9, 5.20962563787, 38.0276726358],\n [6.85e-9, 2.77592961854, 20.7753954924],\n [6.36e-9, 4.28242193632, 28.4491874678],\n [6.08e-9, 5.63278510221, 10984.1923516998],\n [7.04e-9, 5.60739437733, 3738.761430108],\n [6.85e-9, 0.38876148682, 15.252471185],\n [6.01e-9, 0.73489602442, 419.4846438752],\n [7.16e-9, 2.65286869987, 6309.3741697912],\n [5.84e-9, 5.54508741381, 17298.1823273262],\n [6.28e-9, 1.11733054796, 7058.5984613154],\n [6.88e-9, 2.59684132401, 3496.032826134],\n [4.85e-9, 0.44470714066, 12352.8526045448],\n [5.62e-9, 2.82510352358, 3930.2096962196],\n [5.97e-9, 5.27675789973, 10575.4066829418],\n [5.83e-9, 3.1893153986, 4732.0306273434],\n [5.26e-9, 5.01737745304, 5884.9268465832],\n [5.4e-9, 1.29182747488, 640.8776073822],\n [4.81e-9, 5.49721461067, 5230.807466803],\n [4.06e-9, 5.21253018484, 220.4126424388],\n [3.95e-9, 1.87489912123, 16200.7727245012],\n [3.67e-9, 0.88533542945, 6283.14316029419],\n [3.69e-9, 3.84778078192, 18073.7049386502],\n [3.79e-9, 0.37991716505, 10177.2576795336],\n [3.56e-9, 3.84152910109, 11712.9553182308],\n [3.74e-9, 5.01577520608, 7.046236698],\n [3.81e-9, 4.30250406634, 6062.6632075526],\n [4.71e-9, 0.86388942467, 6069.7767545534],\n [3.67e-9, 1.3294383993, 6283.0085396886],\n [4.6e-9, 5.19667219582, 6284.0561710596],\n [3.33e-9, 5.54250425107, 4686.8894077068],\n [3.41e-9, 4.36524495363, 7238.6755916],\n [3.36e-9, 4.00205876835, 3097.88382272579],\n [3.59e-9, 6.22679790284, 245.8316462294],\n [3.07e-9, 2.35299010924, 170.6728706192],\n [3.43e-9, 3.77164927142, 6076.8903015542],\n [2.96e-9, 5.44138799494, 17260.1546546904],\n [3.28e-9, 0.13817705132, 11015.1064773348],\n [2.69e-9, 1.13308244952, 12569.6748183318],\n [2.63e-9, 0.0055073751, 4136.9104335162],\n [2.82e-9, 5.04399588559, 7477.522860216],\n [2.8e-9, 3.13703211405, 12559.038152982],\n [2.59e-9, 0.93882269388, 5642.1982426092],\n [2.92e-9, 1.98426314297, 12132.439962106],\n [2.47e-9, 3.84244798673, 5429.8794682394],\n [3.19e-9, 5.0417014879, 90617.7374312997],\n [2.45e-9, 5.70469737024, 65147.6197681377],\n [3.18e-9, 1.35581968834, 78051.5857313169],\n [2.41e-9, 0.99469787369, 3634.6210245184],\n [2.46e-9, 3.06168069393, 110.2063212194],\n [2.39e-9, 6.11854529589, 11856.2186514245],\n [2.67e-9, 0.65297608414, 21228.3920235458],\n [2.62e-9, 1.51070507866, 12146.6670561076],\n [2.3e-9, 1.75923794017, 9779.1086761254],\n [2.23e-9, 2.00967043606, 6172.869528772],\n [2.46e-9, 1.10411690861, 6282.0955289232],\n [2.14e-9, 4.03840492266, 14314.1681130498],\n [2.12e-9, 2.13695623228, 5849.3641121146],\n [2.07e-9, 3.07724246401, 11.729352836],\n [2.07e-9, 6.10303325026, 23543.23050468179],\n [2.66e-9, 1.00720021877, 2388.8940204492],\n [2.17e-9, 6.27840212312, 17267.26820169119],\n [2.31e-9, 5.37372783468, 13916.0191096416],\n [2.04e-9, 2.34615348695, 266.6070417218],\n [1.95e-9, 5.55015549753, 6133.5126528568],\n [2.03e-9, 4.65616806503, 24072.9214697764],\n [1.88e-9, 2.52682282169, 6525.8044539654],\n [1.77e-9, 1.73426919199, 154717.6098876827],\n [1.87e-9, 4.76501318048, 4535.0594369244],\n [1.86e-9, 4.63080493407, 10440.2742926036],\n [1.83e-9, 3.20060840641, 8635.9420037632],\n [1.72e-9, 1.45551703877, 9225.539273283],\n [1.62e-9, 3.30665137166, 639.897286314],\n [1.68e-9, 2.17671416605, 27.4015560968],\n [1.6e-9, 1.6816871275, 15110.4661198662],\n [1.94e-9, 2.79243768345, 7342.4577801806],\n [1.83e-9, 0.56273524797, 13517.8701062334],\n [1.72e-9, 5.97039514134, 4701.1165017084],\n [1.79e-9, 3.58450811616, 87.30820453981],\n [1.52e-9, 2.84070476839, 5650.2921106782],\n [1.56e-9, 1.07156076421, 18319.5365848796],\n [1.82e-9, 0.44053620124, 17253.04110768959],\n [1.42e-9, 1.4629013752, 11087.2851259184],\n [1.31e-9, 5.40912137746, 2699.7348193176],\n [1.44e-9, 2.07312089638, 25158.6017197654],\n [1.47e-9, 6.15107800602, 9623.6882766912],\n [1.41e-9, 5.55739979498, 10454.5013866052],\n [1.35e-9, 0.0609812943, 16723.350142595],\n [1.23e-9, 5.81194797368, 17256.6315363414],\n [1.24e-9, 2.36269386269, 4933.2084403326],\n [1.26e-9, 3.47483886466, 22483.84857449259],\n [1.59e-9, 5.63944722033, 5729.506447149],\n [1.37e-9, 1.93811728826, 20426.571092422],\n [1.23e-9, 3.92815962825, 17996.0311682222],\n [1.48e-9, 3.02542567608, 1551.045222648],\n [1.21e-9, 0.05537321071, 13095.8426650774],\n [1.2e-9, 5.91904349732, 6206.8097787158],\n [1.34e-9, 3.11122937825, 21954.15760939799],\n [1.19e-9, 5.52143897201, 709.9330485583],\n [1.22e-9, 3.00840036775, 19800.9459562248],\n [1.27e-9, 1.37534182407, 14945.3161735544],\n [1.41e-9, 2.56886299638, 1052.2683831884],\n [1.23e-9, 2.83671175442, 11919.140866668],\n [1.18e-9, 0.81918292547, 5331.3574437408],\n [1.51e-9, 2.68728567951, 11769.8536931664],\n [1.19e-9, 5.08654046247, 5481.2549188676],\n [1.13e-9, 4.42675663942, 18422.62935909819],\n [1.53e-9, 2.46021790779, 11933.3679606696],\n [1.08e-9, 1.04936452151, 11403.676995575],\n [1.28e-9, 0.99810456461, 8827.3902698748],\n [1.44e-9, 2.54869747042, 227.476132789],\n [1.5e-9, 4.50631437136, 2379.1644735716],\n [1.09e-9, 0.29269062317, 16737.5772365966],\n [1.22e-9, 4.23040027813, 29.429508536],\n [1.11e-9, 5.16970710025, 17782.7320727842],\n [1.05e-9, 1.61738153441, 13119.72110282519],\n [1e-9, 3.52204690579, 18052.9295431578],\n [1.08e-9, 1.08493117155, 16858.4825329332],\n [1.35e-9, 3.2016061697, 6262.300454499],\n [1.06e-9, 1.96085069786, 74.7815985673],\n [1.29e-9, 4.85949366504, 16496.3613962024],\n [1.1e-9, 2.30605777952, 16460.33352952499],\n [9.7e-10, 3.5091894021, 5333.9002410216],\n [9.9e-10, 3.56417337974, 735.8765135318],\n [9.6e-10, 3.40918487598, 15720.8387848784],\n [9.4e-10, 5.01601027363, 3128.3887650958],\n [9.7e-10, 1.65579893894, 533.2140834436],\n [9.2e-10, 0.89219199493, 29296.6153895786],\n [1.23e-9, 3.16062062663, 9380.9596727172],\n [1.02e-9, 1.20493500565, 23020.65308658799],\n [8.8e-10, 2.21265504437, 12721.572099417],\n [8.9e-10, 1.5432266957, 20199.094959633],\n [1.21e-9, 6.19860353182, 9388.0059094152],\n [8.9e-10, 4.08082274765, 22805.7355659936],\n [9.8e-10, 1.09176668094, 12043.574281889],\n [8.6e-10, 1.13649001466, 143571.32428481648],\n [8.8e-10, 5.96980472191, 107.6635239386],\n [8.2e-10, 5.01561173481, 22003.9146348698],\n [9.4e-10, 1.69615700473, 23006.42599258639],\n [8.1e-10, 3.00664741995, 2118.7638603784],\n [9.8e-10, 1.39215287161, 8662.240323563],\n [8e-10, 5.16340988714, 17796.9591667858],\n [8.2e-10, 5.86893959287, 2787.0430238574],\n [7.7e-10, 0.80723694712, 167283.7615876655],\n [9.1e-10, 5.74902425304, 21424.4666443034],\n [7.6e-10, 5.67183650604, 14.2270940016],\n [8.1e-10, 6.16619455699, 1039.0266107904],\n [7.6e-10, 3.21449884756, 111.1866422876],\n [7.8e-10, 1.37531518377, 21947.1113727],\n [7.4e-10, 3.58814195051, 11609.8625440122],\n [7.7e-10, 4.84846488388, 22743.4093795164],\n [9e-10, 1.48869013606, 15671.0817594066],\n [8.2e-10, 3.48618398216, 29088.811415985],\n [7.1e-10, 2.2159156119, 12029.3471878874],\n [6.9e-10, 1.93625656075, 135.62532501],\n [7e-10, 2.66552760898, 18875.525869774],\n [6.9e-10, 5.41478093731, 26735.9452622132],\n [7.9e-10, 5.15158156951, 12323.4230960088],\n [7.8e-10, 4.17014063638, 1066.49547719],\n [6.5e-10, 5.64584720343, 12139.5535091068],\n [7.1e-10, 3.89804774037, 22779.4372461938],\n [6.3e-10, 4.53968787714, 8982.810669309],\n [7.6e-10, 3.29088891716, 2942.4634232916],\n [6.9e-10, 0.94232113005, 14919.0178537546],\n [6.3e-10, 4.0918653549, 16062.1845261168],\n [6.5e-10, 3.34580407184, 51.28033786241],\n [6.5e-10, 5.75757544877, 52670.0695933026],\n [5.7e-10, 5.25050277534, 20995.3929664494],\n [6.1e-10, 1.92290673861, 6805.6532680852],\n [6.1e-10, 0.08878901558, 13362.4497067992],\n [7.6e-10, 1.86947679415, 25287.7237993998],\n [5.6e-10, 4.25396542622, 6709.6740408674],\n [5.8e-10, 4.79429715781, 6286.3622074092],\n [7.3e-10, 0.53299090807, 2301.58581590939],\n [7e-10, 4.31243357502, 19402.7969528166],\n [6.7e-10, 2.53852336668, 377.3736079158],\n [5.6e-10, 3.20816844695, 24889.5747959916],\n [5.4e-10, 5.17336469511, 26084.0218062162],\n [5.3e-10, 3.17675406016, 18451.07854656599],\n [5.3e-10, 3.61529270216, 77.673770428],\n [5.3e-10, 0.45467549335, 30666.1549584328],\n [5.3e-10, 2.97761644192, 21548.9623692918],\n [6.1e-10, 0.14805728543, 23013.5395395872],\n [5.1e-10, 3.32803972907, 56.8983749356],\n [5.2e-10, 3.41304011355, 23141.5583829246],\n [5.8e-10, 3.13638677202, 309.2783226558],\n [5.4e-10, 1.60896548545, 13341.6743113068],\n [5.3e-10, 5.81426394852, 16193.65917750039],\n [6.7e-10, 6.27917920454, 22345.2603761082],\n [5e-10, 0.42577644151, 25685.872802808],\n [4.8e-10, 0.70204553352, 1162.4747044078],\n [6.6e-10, 3.64350022359, 15265.8865193004],\n [5e-10, 5.7438291744, 19.66976089979],\n [5.4e-10, 1.97277370837, 23581.2581773176],\n [5.1e-10, 1.23713196525, 12539.853380183],\n [4.6e-10, 5.41431704639, 33019.0211122046],\n [4.6e-10, 4.80640843261, 19651.048481098],\n [5e-10, 1.23847511223, 22476.73502749179],\n [5.1e-10, 4.91913434178, 12592.4500197826],\n [4.6e-10, 2.41369976086, 98068.53671630539],\n [4.5e-10, 3.45227074337, 30774.5016425748],\n [4.5e-10, 4.39659083856, 433.7117378768],\n [4.5e-10, 3.71921056816, 18209.33026366019],\n [4.4e-10, 2.47683925106, 24356.7807886416],\n [4.9e-10, 2.17835058609, 13521.7514415914],\n [4.6e-10, 0.26142733448, 11.0457002639],\n [4.5e-10, 2.46230645202, 51868.2486621788],\n [4.3e-10, 4.29458463014, 28230.18722269139],\n [4.8e-10, 0.89551707131, 56600.2792895222],\n [4.2e-10, 3.63410684699, 4590.910180489],\n [4.9e-10, 3.17757670967, 6303.8512454838],\n [4.3e-10, 4.93350349236, 10021.8372800994],\n [5.2e-10, 3.65410195699, 7872.1487452752],\n [4.1e-10, 4.82166756935, 10988.808157535],\n [4e-10, 1.81891629936, 34596.3646546524],\n [4.3e-10, 1.94164978061, 1903.4368125012],\n [4.1e-10, 0.74461854136, 23937.856389741],\n [4.5e-10, 5.4557501753, 60530.4889857418],\n [5e-10, 5.67355640472, 18216.443810661],\n [4e-10, 0.04502010161, 38526.574350872],\n [5.3e-10, 3.64807615995, 11925.2740926006],\n [4.2e-10, 5.19292937193, 19004.6479494084],\n [4.1e-10, 0.94309683296, 9924.8104215106],\n [3.9e-10, 4.61184303844, 95.9792272178],\n [4.9e-10, 2.05532526216, 12573.2652469836],\n [4.5e-10, 3.73717824543, 7875.6718636242],\n [4.3e-10, 1.14078465002, 49.7570254718],\n [3.9e-10, 1.70539366023, 32217.2001810808],\n [3.7e-10, 1.29390383811, 310.8407988684],\n [3.8e-10, 0.9597092595, 664.75604513],\n [3.9e-10, 0.85957361635, 16522.6597160022],\n [4e-10, 1.00170796001, 36949.2308084242],\n [4e-10, 3.78164718776, 55798.4583583984],\n [3.7e-10, 5.42237070904, 6286.6662786432],\n [3.6e-10, 1.68167662194, 10344.2950653858],\n [4e-10, 5.13217319067, 15664.03552270859],\n [4.9e-10, 3.62741283878, 77713.7714681205],\n [4.5e-10, 6.15877872538, 28286.9904848612],\n [3.6e-10, 3.32158458257, 16207.886271502],\n [3.5e-10, 5.83917764292, 6321.1035226272],\n [3.6e-10, 1.80784164083, 6279.7894925736],\n [3.5e-10, 4.60279245362, 28237.2334593894],\n [3.3e-10, 0.47301775923, 18635.9284545362],\n [3.5e-10, 4.36571027474, 48739.859897083],\n [3.1e-10, 3.06828028412, 6819.8803620868],\n [3.1e-10, 2.4020319848, 28628.3362260996],\n [3.4e-10, 1.90096411242, 12964.300703391],\n [2.9e-10, 6.09291010354, 18606.4989460002],\n [2.8e-10, 3.42046112698, 6288.5987742988],\n [2.8e-10, 3.437361406, 34115.1140692746],\n [2.9e-10, 1.48920816078, 6489.2613984286],\n [2.8e-10, 3.07474749886, 29822.7832363242],\n [3.8e-10, 2.44608264663, 31415.379249957],\n [2.8e-10, 2.98392582088, 6277.552925684],\n [2.7e-10, 5.03556015623, 12779.4507954208],\n [2.7e-10, 5.40812977287, 26087.9031415742],\n [3.8e-10, 5.56439937893, 27832.0382192832],\n [2.6e-10, 3.87685883153, 6262.7205305926],\n [2.7e-10, 6.1556539284, 28759.81087748319],\n [2.5e-10, 5.17122153205, 6915.8595893046],\n [2.7e-10, 4.03132006944, 9910.583327509],\n [3.3e-10, 3.97763407373, 12410.7313005486],\n [2.4e-10, 5.31307120044, 29026.48522950779],\n [2.5e-10, 0.81055213297, 36173.7081971002],\n [2.4e-10, 1.2870610131, 24491.4257925834],\n [2.1e-10, 2.02548478742, 28766.924424484],\n [2.1e-10, 6.07545114034, 18139.2945014159],\n [2.2e-10, 2.31199937131, 6303.4311693902],\n [2.3e-10, 1.35235057478, 49515.382508407],\n [2.3e-10, 2.92765926961, 65236.2212932854],\n [1.9e-10, 0.03636659763, 29864.334027309],\n [2e-10, 0.91374066194, 45585.1728121874],\n [2.1e-10, 4.45003013294, 22490.9621214934],\n [2.2e-10, 1.97119365888, 34513.2630726828],\n [2e-10, 4.11682669951, 17157.0618804718],\n [2.4e-10, 1.40243942415, 14712.317116458],\n [2.2e-10, 2.19759737115, 31570.7996493912],\n [2.1e-10, 1.48739821208, 61306.0115970658],\n [2.5e-10, 5.71465573409, 25934.1243310894]\n ],\n \"2\": [\n [0.00008721859, 1.07253635559, 6283.0758499914],\n [0.0000099099, 3.14159265359, 0],\n [0.00000294833, 0.43717350256, 12566.1516999828],\n [2.7338e-7, 0.05295636147, 3.523118349],\n [1.6333e-7, 5.18820215724, 26.2983197998],\n [1.5745e-7, 3.68504712183, 155.4203994342],\n [9.425e-8, 0.29667114694, 18849.2275499742],\n [8.938e-8, 2.05706319592, 77713.7714681205],\n [6.94e-8, 0.82691541038, 775.522611324],\n [5.061e-8, 4.6624323168, 1577.3435424478],\n [4.06e-8, 1.03067032318, 7.1135470008],\n [3.464e-8, 5.14021224609, 796.2980068164],\n [3.172e-8, 6.05479318507, 5507.5532386674],\n [3.02e-8, 1.19240008524, 242.728603974],\n [2.885e-8, 6.11705865396, 529.6909650946],\n [3.809e-8, 3.44043369494, 5573.1428014331],\n [2.719e-8, 0.30363248164, 398.1490034082],\n [2.365e-8, 4.37666117992, 5223.6939198022],\n [2.538e-8, 2.27966434314, 553.5694028424],\n [2.078e-8, 3.75435095487, 0.9803210682],\n [1.675e-8, 0.90149951436, 951.7184062506],\n [1.534e-8, 5.75895831192, 1349.8674096588],\n [1.224e-8, 2.97285792195, 2146.1654164752],\n [1.449e-8, 4.36401639552, 1748.016413067],\n [1.341e-8, 3.72019379666, 1194.4470102246],\n [1.253e-8, 2.9488872631, 6438.4962494256],\n [9.99e-9, 5.98665341008, 6286.5989683404],\n [9.17e-9, 4.79722195184, 5088.6288397668],\n [8.29e-9, 3.31021398862, 213.299095438],\n [1.102e-8, 1.27094359244, 161000.6857376741],\n [7.64e-9, 3.41231607038, 5486.777843175],\n [1.046e-8, 0.60374190029, 3154.6870848956],\n [8.87e-9, 5.23364022595, 7084.8967811152],\n [6.44e-9, 1.59974355582, 2544.3144198834],\n [6.81e-9, 3.42742947469, 4694.0029547076],\n [6.06e-9, 2.47688996663, 10977.078804699],\n [7.06e-9, 6.19369692903, 4690.4798363586],\n [6.43e-9, 1.98119869589, 801.8209311238],\n [5.02e-9, 1.44415463861, 6836.6452528338],\n [4.9e-9, 2.33889753806, 1592.5960136328],\n [4.58e-9, 1.30867922972, 4292.3308329504],\n [4.31e-9, 0.03542536476, 7234.794256242],\n [3.49e-9, 0.98779272263, 6040.3472460174],\n [3.85e-9, 1.57065592218, 71430.69561812909],\n [3.71e-9, 3.16149051601, 6309.3741697912],\n [3.48e-9, 0.64980950594, 1059.3819301892],\n [4.58e-9, 3.81505682017, 149854.4001348079],\n [3.02e-9, 1.91723873447, 10447.3878396044],\n [3.06e-9, 3.55405857884, 8031.0922630584],\n [3.95e-9, 4.93742673052, 7632.9432596502],\n [3.14e-9, 3.18058352846, 2352.8661537718],\n [2.81e-9, 4.41751404023, 9437.762934887],\n [2.76e-9, 2.71075791682, 3894.1818295422],\n [2.98e-9, 2.52045757001, 6127.6554505572],\n [2.72e-9, 0.24370191144, 25132.3033999656],\n [2.51e-9, 0.55449375765, 6279.5527316424],\n [2.24e-9, 1.40790249012, 4705.7323075436],\n [2.58e-9, 5.29510765044, 6812.766815086],\n [1.78e-9, 0.92636669742, 1990.745017041],\n [2.17e-9, 0.68543630022, 6256.7775301916],\n [1.54e-9, 0.77808632062, 14143.4952424306],\n [1.5e-9, 2.40636982736, 426.598190876],\n [1.96e-9, 6.06877865012, 640.8776073822],\n [1.37e-9, 2.21947617717, 8429.2412664666],\n [1.27e-9, 5.47380312768, 12036.4607348882],\n [1.21e-9, 3.32740512021, 17789.845619785],\n [1.23e-9, 2.16004509785, 10213.285546211],\n [1.16e-9, 0.49705139709, 7058.5984613154],\n [1.38e-9, 2.36181661472, 11506.7697697936],\n [1.01e-9, 0.86299995919, 6290.1893969922],\n [1.18e-9, 5.82317768355, 7860.4193924392],\n [9.2e-10, 5.11639978593, 7079.3738568078],\n [1.25e-9, 2.65424538513, 88860.05707098669],\n [8.8e-10, 4.3118823616, 83996.84731811189],\n [8.4e-10, 3.57682769713, 16730.4636895958],\n [9.7e-10, 5.58011309774, 13367.9726311066],\n [1.02e-9, 2.05853060226, 87.30820453981],\n [8e-10, 4.73827128421, 11926.2544136688],\n [8e-10, 5.41344057121, 10973.55568635],\n [1.06e-9, 4.10978997399, 3496.032826134],\n [7.5e-10, 4.89166898876, 5643.1785636774],\n [1e-9, 3.62645659087, 244287.60000722768],\n [9.6e-10, 1.39443577787, 6681.2248533996],\n [6.9e-10, 1.88399189965, 10177.2576795336],\n [8.7e-10, 0.40842153208, 11015.1064773348],\n [6.6e-10, 0.99444831932, 6525.8044539654],\n [6.6e-10, 1.42471816453, 9917.6968745098],\n [6.7e-10, 5.5124099707, 3097.88382272579],\n [7.6e-10, 2.7156469351, 4164.311989613],\n [8.5e-10, 0.4965552367, 10575.4066829418],\n [7.7e-10, 3.51693861509, 11856.2186514245],\n [6.2e-10, 3.6258762869, 16496.3613962024],\n [5.4e-10, 5.25957420065, 3340.6124266998],\n [5.3e-10, 1.10902178415, 8635.9420037632],\n [4.9e-10, 5.65761054625, 20426.571092422],\n [6.4e-10, 5.79211164779, 2388.8940204492],\n [4.6e-10, 5.45092696155, 6275.9623029906],\n [5.7e-10, 4.97077155798, 14945.3161735544],\n [4.3e-10, 3.30685683359, 9779.1086761254],\n [4.2e-10, 1.61412785248, 12168.0026965746],\n [4.9e-10, 3.92715473768, 5729.506447149],\n [4.2e-10, 0.6348125893, 2699.7348193176],\n [5.6e-10, 4.34038639086, 90955.5516944961],\n [4e-10, 5.66871428338, 11712.9553182308],\n [3.9e-10, 3.10911294009, 16200.7727245012],\n [4e-10, 5.71338386146, 709.9330485583],\n [5.3e-10, 6.17067257683, 233141.3144043615],\n [3.7e-10, 0.32095173508, 24356.7807886416],\n [3.5e-10, 0.95557073457, 17298.1823273262],\n [3.5e-10, 0.64913397996, 25158.6017197654],\n [4.1e-10, 1.53850422484, 65147.6197681377],\n [3.5e-10, 0.77655626359, 13916.0191096416],\n [3.1e-10, 5.35897350775, 5331.3574437408],\n [3e-10, 4.48114682755, 23543.23050468179],\n [3.2e-10, 3.45976963453, 7477.522860216],\n [2.9e-10, 3.46648040769, 13119.72110282519],\n [3.8e-10, 2.90863974625, 12721.572099417],\n [2.9e-10, 3.13390968321, 4136.9104335162],\n [3.5e-10, 3.79717126309, 143571.32428481648],\n [2.7e-10, 0.95726093828, 12559.038152982],\n [2.6e-10, 4.9532687703, 5753.3848848968],\n [3.2e-10, 3.49943896928, 6284.0561710596],\n [2.6e-10, 4.59276256636, 5884.9268465832],\n [2.6e-10, 1.53958920253, 154717.6098876827],\n [2.3e-10, 4.88012908735, 13095.8426650774],\n [2.3e-10, 0.35935706511, 31415.379249957],\n [2.4e-10, 5.11515116629, 18319.5365848796],\n [2.1e-10, 5.73872879912, 12569.6748183318],\n [2.1e-10, 1.32901200081, 10988.808157535],\n [1.9e-10, 2.24263229491, 18073.7049386502],\n [1.9e-10, 3.14253175605, 6496.3749454294],\n [2.1e-10, 2.80122025076, 6282.0955289232],\n [2.3e-10, 0.14288760398, 6283.0085396886],\n [1.9e-10, 4.28209473754, 3930.2096962196],\n [1.6e-10, 0.25933207663, 11790.6290886588],\n [1.5e-10, 6.0962350124, 13517.8701062334],\n [2e-10, 5.06358906224, 6283.14316029419],\n [1.5e-10, 1.0768066315, 4933.2084403326],\n [1.9e-10, 5.74000581249, 3128.3887650958],\n [1.6e-10, 6.18924226747, 7342.4577801806],\n [1.3e-10, 1.69105044945, 4535.0594369244],\n [1.5e-10, 3.36968394452, 17260.1546546904],\n [1e-10, 3.78885035015, 22003.9146348698],\n [1.1e-10, 2.12851973876, 7875.6718636242]\n ],\n \"3\": [\n [0.00000289058, 5.84173149732, 6283.0758499914],\n [2.0712e-7, 6.0498393902, 12566.1516999828],\n [2.962e-8, 5.1956057957, 155.4203994342],\n [2.527e-8, 3.14159265359, 0],\n [1.288e-8, 4.7219761197, 3.523118349],\n [6.35e-9, 5.96904899168, 242.728603974],\n [5.7e-9, 5.54182903238, 18849.2275499742],\n [4.02e-9, 3.78606612895, 553.5694028424],\n [7.2e-10, 4.37131884946, 6286.5989683404],\n [6.7e-10, 0.91133898967, 6127.6554505572],\n [3.7e-10, 5.28611190997, 6438.4962494256],\n [2.1e-10, 2.94917211527, 6309.3741697912],\n [1.5e-10, 3.63037493932, 71430.69561812909],\n [1.1e-10, 4.83261533939, 25132.3033999656],\n [1.1e-10, 5.84259014283, 6525.8044539654],\n [1.2e-10, 3.82296977522, 7058.5984613154],\n [1.3e-10, 2.39991715131, 5729.506447149],\n [8e-11, 0.55390332094, 6040.3472460174],\n [8e-11, 1.46298993048, 11856.2186514245],\n [8e-11, 5.07535888338, 6256.7775301916],\n [6e-11, 2.88803526743, 5507.5532386674],\n [5e-11, 3.87019253131, 12036.4607348882],\n [5e-11, 2.70838853362, 83996.84731811189]\n ],\n \"4\": [\n [7.714e-8, 4.14117321449, 6283.0758499914],\n [1.016e-8, 3.27573644241, 12566.1516999828],\n [4.2e-9, 0.41892851415, 155.4203994342],\n [4.7e-10, 3.50591071186, 18849.2275499742],\n [4.1e-10, 3.14032562331, 3.523118349],\n [3.5e-10, 5.0111077, 5573.1428014331],\n [1e-10, 5.64816633449, 6127.6554505572],\n [1.3e-10, 0.48609240774, 77713.7714681205],\n [7e-11, 2.84139222289, 161000.6857376741],\n [4e-11, 3.6550904707, 25132.3033999656],\n [2e-11, 0.54880603487, 6438.4962494256]\n ],\n \"5\": [\n [1.72e-9, 2.74854172392, 6283.0758499914],\n [5e-10, 2.01352986713, 155.4203994342],\n [2.8e-10, 2.93369985477, 12566.1516999828],\n [5e-11, 1.93829214518, 18849.2275499742]\n ]\n },\n B: {\n \"0\": [\n [0.0000027962, 3.19870156017, 84334.66158130829],\n [0.00000101643, 5.42248619256, 5507.5532386674],\n [8.0445e-7, 3.88013204458, 5223.6939198022],\n [4.3806e-7, 3.70444689759, 2352.8661537718],\n [3.1933e-7, 4.00026369781, 1577.3435424478],\n [2.2724e-7, 3.9847383156, 1047.7473117547],\n [1.6392e-7, 3.56456119782, 5856.4776591154],\n [1.8141e-7, 4.98367470262, 6283.0758499914],\n [1.4443e-7, 3.70275614915, 9437.762934887],\n [1.4304e-7, 3.41117857526, 10213.285546211],\n [1.1246e-7, 4.82820690527, 14143.4952424306],\n [1.09e-7, 2.08574562329, 6812.766815086],\n [9.714e-8, 3.47303947751, 4694.0029547076],\n [1.0367e-7, 4.05663927945, 71092.88135493269],\n [8.775e-8, 4.44016515666, 5753.3848848968],\n [8.366e-8, 4.99251512183, 7084.8967811152],\n [6.921e-8, 4.32559054073, 6275.9623029906],\n [9.145e-8, 1.14182646613, 6620.8901131878],\n [7.194e-8, 3.60193205744, 529.6909650946],\n [7.698e-8, 5.55425745881, 167621.5758508619],\n [5.285e-8, 2.48446991536, 4705.7323075436],\n [5.208e-8, 6.24992674532, 18073.7049386502],\n [4.529e-8, 2.33827747356, 6309.3741697912],\n [5.579e-8, 4.41023653719, 7860.4193924392],\n [4.743e-8, 0.70995680136, 5884.9268465832],\n [4.301e-8, 1.10255777773, 6681.2248533996],\n [3.849e-8, 1.82229412532, 5486.777843175],\n [4.093e-8, 5.11700141197, 13367.9726311066],\n [3.681e-8, 0.43793170336, 3154.6870848956],\n [3.42e-8, 5.42034800952, 6069.7767545534],\n [3.617e-8, 6.04641937568, 3930.2096962196],\n [3.67e-8, 4.58210192227, 12194.0329146209],\n [2.918e-8, 1.95463881136, 10977.078804699],\n [2.797e-8, 5.61259274877, 11790.6290886588],\n [2.502e-8, 0.60499729368, 6496.3749454294],\n [2.319e-8, 5.01648216088, 1059.3819301892],\n [2.684e-8, 1.39470396487, 22003.9146348698],\n [2.428e-8, 3.24183056545, 78051.5857313169],\n [2.12e-8, 4.30691000285, 5643.1785636774],\n [2.257e-8, 3.15557225087, 90617.7374312997],\n [1.813e-8, 3.75574218286, 3340.6124266998],\n [2.226e-8, 2.79699346673, 12036.4607348882],\n [1.888e-8, 0.86991545944, 8635.9420037632],\n [1.517e-8, 1.9585205571, 398.1490034082],\n [1.581e-8, 3.19976230948, 5088.6288397668],\n [1.421e-8, 6.25530883828, 2544.3144198834],\n [1.595e-8, 0.25619915132, 17298.1823273262],\n [1.391e-8, 4.69964175574, 7058.5984613154],\n [1.478e-8, 2.81808207569, 25934.1243310894],\n [1.481e-8, 3.6582355461, 11506.7697697936],\n [1.693e-8, 4.95689385293, 156475.2902479957],\n [1.183e-8, 1.29343060777, 775.522611324],\n [1.114e-8, 2.37889311847, 3738.761430108],\n [9.94e-9, 4.30088900425, 9225.539273283],\n [9.24e-9, 3.06451026809, 4164.311989613],\n [8.67e-9, 0.55606931068, 8429.2412664666],\n [9.88e-9, 5.97286104208, 7079.3738568078],\n [8.24e-9, 1.50984806177, 10447.3878396044],\n [9.15e-9, 0.12635654605, 11015.1064773348],\n [7.42e-9, 1.99159139281, 26087.9031415742],\n [1.039e-8, 3.14159265359, 0],\n [8.5e-9, 4.24120016095, 29864.334027309],\n [7.55e-9, 2.89631873314, 4732.0306273434],\n [7.14e-9, 1.37548118605, 2146.1654164752],\n [7.08e-9, 1.91406542362, 8031.0922630584],\n [7.46e-9, 0.57893808622, 796.2980068164],\n [8.02e-9, 5.12339137235, 2942.4634232916],\n [7.51e-9, 1.67479850166, 21228.3920235458],\n [6.02e-9, 4.099765389, 64809.80550494129],\n [5.94e-9, 3.49580704849, 16496.3613962024],\n [5.92e-9, 4.59481504319, 4690.4798363586],\n [5.3e-9, 5.73979295194, 8827.3902698748],\n [5.03e-9, 5.66433137112, 33794.5437235286],\n [4.83e-9, 1.57106522322, 801.8209311238],\n [4.38e-9, 0.0670773372, 3128.3887650958],\n [4.23e-9, 2.86944596145, 12566.1516999828],\n [5.04e-9, 3.2620766916, 7632.9432596502],\n [5.52e-9, 1.02926440457, 239762.20451754928],\n [4.27e-9, 3.67434378208, 213.299095438],\n [4.04e-9, 1.4619329736, 15720.8387848784],\n [5.03e-9, 4.85802444134, 6290.1893969922],\n [4.17e-9, 0.81920713533, 5216.5803728014],\n [3.65e-9, 0.01002966145, 12168.0026965746],\n [3.63e-9, 1.28376436579, 6206.8097787158],\n [3.53e-9, 4.7005913311, 7234.794256242],\n [4.15e-9, 0.96862624176, 4136.9104335162],\n [3.87e-9, 3.09145061418, 25158.6017197654],\n [3.73e-9, 2.65119262808, 7342.4577801806],\n [3.61e-9, 2.97762937735, 9623.6882766912],\n [4.18e-9, 3.75759994446, 5230.807466803],\n [3.96e-9, 1.22507712354, 6438.4962494256],\n [3.22e-9, 1.21162178805, 8662.240323563],\n [2.84e-9, 5.64170320179, 1589.0728952838],\n [3.79e-9, 1.72248432756, 14945.3161735544],\n [3.2e-9, 3.94161159658, 7330.8231617461],\n [3.13e-9, 5.47602376451, 1194.4470102246],\n [2.92e-9, 1.38971327568, 11769.8536931664],\n [3.05e-9, 0.80429352049, 37724.7534197482],\n [2.57e-9, 5.81382810029, 426.598190876],\n [2.65e-9, 6.10358507671, 6836.6452528338],\n [2.5e-9, 4.56452895547, 7477.522860216],\n [2.66e-9, 2.62926282354, 7238.6755916],\n [2.63e-9, 6.22089501237, 6133.5126528568],\n [3.06e-9, 2.79682380532, 1748.016413067],\n [2.36e-9, 2.46093023707, 11371.7046897582],\n [3.16e-9, 1.62662805006, 250908.4901204155],\n [2.16e-9, 3.68721275185, 5849.3641121146],\n [2.3e-9, 0.36165162947, 5863.5912061162],\n [2.33e-9, 5.03509933618, 20426.571092422],\n [2e-9, 5.86073159059, 4535.0594369244],\n [2.77e-9, 4.65400292395, 82239.1669577989],\n [2.09e-9, 3.72323200803, 10973.55568635],\n [1.99e-9, 5.05186622555, 5429.8794682394],\n [2.56e-9, 2.40923279886, 19651.048481098],\n [2.1e-9, 4.50691909144, 29088.811415985],\n [1.81e-9, 6.00294783127, 4292.3308329504],\n [2.49e-9, 0.12900984422, 154379.7956244863],\n [2.09e-9, 3.87759458541, 17789.845619785],\n [2.25e-9, 3.18339652605, 18875.525869774],\n [1.91e-9, 4.53897489216, 18477.1087646123],\n [1.72e-9, 2.0969418273, 13095.8426650774],\n [1.82e-9, 3.16107943487, 16730.4636895958],\n [1.88e-9, 2.22746128596, 41654.9631159678],\n [1.64e-9, 5.18686274999, 5481.2549188676],\n [1.6e-9, 2.4929885502, 12592.4500197826],\n [1.55e-9, 1.59595438224, 10021.8372800994],\n [1.35e-9, 0.21349051305, 10988.808157535],\n [1.78e-9, 3.80375178044, 23581.2581773176],\n [1.23e-9, 1.66800739151, 15110.4661198662],\n [1.22e-9, 2.72678272224, 18849.2275499742],\n [1.26e-9, 1.17675512872, 14919.0178537546],\n [1.42e-9, 3.95053440992, 337.8142631964],\n [1.16e-9, 6.06340906212, 6709.6740408674],\n [1.37e-9, 3.52143246244, 12139.5535091068],\n [1.36e-9, 2.92179113491, 32217.2001810808],\n [1.1e-9, 3.51203379263, 18052.9295431578],\n [1.47e-9, 4.63371971408, 22805.7355659936],\n [1.08e-9, 5.45280815225, 7.1135470008],\n [1.48e-9, 0.65447253687, 95480.9471841745],\n [1.19e-9, 5.92110458985, 33019.0211122046],\n [1.1e-9, 5.34824206403, 639.897286314],\n [1.06e-9, 3.71081682614, 14314.1681130498],\n [1.39e-9, 6.17607198262, 24356.7807886416],\n [1.18e-9, 5.59738712949, 161338.5000008705],\n [1.17e-9, 3.6506527164, 45585.1728121874],\n [1.27e-9, 4.74596574209, 49515.382508407],\n [1.2e-9, 1.04211499785, 6915.8595893046],\n [1.2e-9, 5.60638811846, 5650.2921106782],\n [1.15e-9, 3.10668213303, 14712.317116458],\n [9.9e-10, 0.6901893993, 12779.4507954208],\n [9.7e-10, 1.07908724794, 9917.6968745098],\n [9.3e-10, 2.62295197146, 17260.1546546904],\n [9.9e-10, 4.45774681732, 4933.2084403326],\n [1.23e-9, 1.37488921994, 28286.9904848612],\n [1.21e-9, 5.19767249869, 27511.4678735372],\n [1.05e-9, 0.87192268229, 77375.95720492408],\n [8.7e-10, 3.9363781295, 17654.7805397496],\n [1.22e-9, 2.2395606868, 83997.09113559539],\n [8.7e-10, 4.18201600921, 22779.4372461938],\n [1.04e-9, 4.59580877285, 1349.8674096588],\n [1.02e-9, 2.83545248595, 12352.8526045448],\n [1.02e-9, 3.97386522171, 10818.1352869158],\n [1.01e-9, 4.32892825818, 36147.4098773004],\n [9.4e-10, 5.00001709338, 150192.2143980043],\n [7.7e-10, 3.971993693, 1592.5960136328],\n [1e-9, 6.07733097102, 26735.9452622132],\n [8.6e-10, 5.2602963825, 28313.288804661],\n [9.3e-10, 4.31900620254, 44809.6502008634],\n [7.6e-10, 6.22743405935, 13521.7514415914],\n [7.2e-10, 1.55820597747, 6256.7775301916],\n [8.2e-10, 4.95202664555, 10575.4066829418],\n [8.2e-10, 1.69647647075, 1990.745017041],\n [7.5e-10, 2.29836095644, 3634.6210245184],\n [7.5e-10, 2.66367876557, 16200.7727245012],\n [8.7e-10, 0.26630214764, 31441.6775697568],\n [7.7e-10, 2.25530952876, 5235.3285382367],\n [7.6e-10, 1.09869730334, 12903.9659631792],\n [5.8e-10, 4.28246137794, 12559.038152982],\n [6.4e-10, 5.51112829602, 173904.65170085328],\n [5.6e-10, 2.60133794851, 73188.3759784421],\n [5.5e-10, 5.81483150022, 143233.51002162008],\n [5.4e-10, 3.38482031504, 323049.11878710287],\n [3.9e-10, 3.28500401937, 71768.50988132549],\n [3.9e-10, 3.11239910096, 96900.81328129109]\n ],\n \"1\": [\n [0.00227777722, 3.4137662053, 6283.0758499914],\n [0.00003805678, 3.37063423795, 12566.1516999828],\n [0.00003619589, 0, 0],\n [7.1542e-7, 3.32777549735, 18849.2275499742],\n [7.655e-8, 1.79489607186, 5223.6939198022],\n [8.107e-8, 3.89190403643, 5507.5532386674],\n [6.456e-8, 5.1978942475, 2352.8661537718],\n [3.894e-8, 2.15568517178, 6279.5527316424],\n [3.892e-8, 1.53021064904, 6286.5989683404],\n [3.897e-8, 4.87293945629, 10213.285546211],\n [3.812e-8, 1.43523182316, 12036.4607348882],\n [3.577e-8, 2.32913869227, 83996.84731811189],\n [3.57e-8, 4.92637739003, 71430.69561812909],\n [3.494e-8, 2.20864641831, 529.6909650946],\n [2.421e-8, 6.22876183393, 7860.4193924392],\n [2.056e-8, 3.06747139741, 14143.4952424306],\n [1.399e-8, 0.50107877909, 6309.3741697912],\n [1.417e-8, 3.28454570977, 25132.3033999656],\n [1.544e-8, 1.82062047625, 5856.4776591154],\n [1.457e-8, 1.75339303307, 5884.9268465832],\n [1.497e-8, 2.19673914456, 9437.762934887],\n [1.549e-8, 5.73650061398, 17789.845619785],\n [1.277e-8, 3.9672171733, 4705.7323075436],\n [1.038e-8, 2.9481870117, 6256.7775301916],\n [1.018e-8, 2.24114547164, 6681.2248533996],\n [1.021e-8, 1.4679502613, 11790.6290886588],\n [9.16e-9, 3.72965830745, 1059.3819301892],\n [1.156e-8, 6.04591336669, 398.1490034082],\n [1.24e-8, 0.77195902957, 6812.766815086],\n [1.115e-8, 3.92255876225, 12168.0026965746],\n [9.08e-9, 1.78447918237, 3930.2096962196],\n [8.33e-9, 0.09941579828, 11506.7697697936],\n [7.9e-9, 2.45555993228, 775.522611324],\n [6.66e-9, 4.40761401665, 5753.3848848968],\n [5.2e-9, 1.60179602491, 4694.0029547076],\n [3.82e-9, 0.26754532042, 1577.3435424478],\n [4.05e-9, 1.97558286872, 6283.0085396886],\n [4.05e-9, 1.53147989887, 6283.14316029419],\n [3.88e-9, 2.59563818411, 7058.5984613154],\n [3.41e-9, 3.61275156842, 13367.9726311066],\n [2.8e-9, 4.63052251735, 796.2980068164],\n [2.76e-9, 0.43350778219, 7079.3738568078],\n [3.11e-9, 5.28219636656, 17260.1546546904],\n [2.75e-9, 5.27597553634, 11769.8536931664],\n [2.86e-9, 2.98639716345, 6275.9623029906],\n [2.51e-9, 2.81315684448, 6290.1893969922],\n [2.39e-9, 5.77837903893, 10977.078804699],\n [2.28e-9, 0.14375973844, 3738.761430108],\n [2.27e-9, 2.51020991853, 7084.8967811152],\n [2.11e-9, 4.7202946547, 6496.3749454294],\n [2.34e-9, 3.1153527401, 709.9330485583],\n [2.34e-9, 0.5707581762, 11856.2186514245],\n [2.37e-9, 2.38791907394, 213.299095438],\n [2.27e-9, 1.12059781634, 12352.8526045448],\n [1.69e-9, 3.20148089605, 5486.777843175],\n [1.59e-9, 3.14604135756, 8827.3902698748],\n [1.6e-9, 1.14784478002, 5643.1785636774],\n [1.44e-9, 5.23285657431, 78051.5857313169],\n [1.44e-9, 1.16454654602, 90617.7374312997],\n [1.44e-9, 3.81203756929, 6262.300454499],\n [1.43e-9, 5.97809021355, 6303.8512454838],\n [1.38e-9, 4.29829933273, 1589.0728952838],\n [1.61e-9, 3.03298851492, 20426.571092422],\n [1.65e-9, 5.09134896587, 17298.1823273262],\n [1.28e-9, 4.41590143012, 6127.6554505572],\n [1.58e-9, 2.00984506334, 5230.807466803],\n [1.3e-9, 1.44170683802, 12569.6748183318],\n [1.25e-9, 1.69950379498, 3128.3887650958],\n [1.52e-9, 4.96946111415, 65147.6197681377],\n [1.31e-9, 4.24961399629, 6282.0955289232],\n [1.31e-9, 5.54051222995, 6284.0561710596],\n [1.61e-9, 3.32421999691, 6283.3196674749],\n [1.23e-9, 2.93221463795, 15720.8387848784],\n [1.52e-9, 1.56488157456, 18319.5365848796],\n [1.14e-9, 1.89110005546, 18073.7049386502],\n [1.13e-9, 4.95214866677, 4136.9104335162],\n [1.11e-9, 4.79699611405, 8429.2412664666],\n [1.18e-9, 3.06184958762, 22003.9146348698],\n [1.28e-9, 2.09693027395, 12562.6285816338],\n [1.38e-9, 0.84648544836, 6069.7767545534],\n [1e-9, 0.41938790104, 5481.2549188676],\n [1.01e-9, 4.43791289246, 19651.048481098],\n [1.16e-9, 1.87002428935, 77713.7714681205],\n [9.5e-10, 0.68638183645, 3340.6124266998],\n [1.04e-9, 4.90822646457, 8635.9420037632],\n [1.14e-9, 0.36008214928, 23543.23050468179],\n [9.1e-10, 1.1761121931, 9225.539273283],\n [9.1e-10, 2.74682631104, 5216.5803728014],\n [8.6e-10, 3.09315282195, 1194.4470102246],\n [9.3e-10, 6.2764351319, 12559.038152982],\n [8.7e-10, 3.64926989547, 7.1135470008],\n [8.3e-10, 0.37008971174, 11371.7046897582],\n [9.8e-10, 4.68473306376, 167283.7615876655],\n [9.8e-10, 0.99865886857, 154717.6098876827],\n [8.6e-10, 4.41152307486, 25934.1243310894],\n [9.8e-10, 4.98209568932, 16496.3613962024],\n [8.5e-10, 2.35438163823, 3154.6870848956],\n [8.3e-10, 0.24859477658, 21228.3920235458],\n [7.6e-10, 5.46661600296, 29864.334027309],\n [6.9e-10, 3.22045334237, 801.8209311238],\n [6.8e-10, 2.19928242745, 37724.7534197482],\n [7e-10, 5.33711014698, 2544.3144198834],\n [5.5e-10, 5.37872238211, 11015.1064773348],\n [5.1e-10, 5.03600618727, 5863.5912061162],\n [5.9e-10, 3.54984809612, 4535.0594369244],\n [5.3e-10, 1.50812064137, 7342.4577801806],\n [4.4e-10, 1.33712241647, 4164.311989613],\n [5.5e-10, 5.38460045253, 7477.522860216],\n [4.9e-10, 5.61844340512, 24072.9214697764],\n [5.7e-10, 6.17973522898, 8031.0922630584],\n [5.2e-10, 4.24379064407, 5088.6288397668],\n [4.1e-10, 3.41960196246, 26087.9031415742],\n [5.2e-10, 1.68150981131, 25158.6017197654],\n [5.3e-10, 0.11041408311, 29088.811415985],\n [4.3e-10, 0.53354396923, 2146.1654164752],\n [5e-10, 0.60270799844, 33794.5437235286],\n [4.5e-10, 1.69577010458, 6702.5604938666],\n [3.7e-10, 6.09033460795, 64809.80550494129],\n [4.4e-10, 2.67993061247, 15110.4661198662],\n [4.7e-10, 3.62555676035, 41654.9631159678],\n [3.6e-10, 0.47219666269, 13095.8426650774],\n [3.5e-10, 5.99520523215, 23581.2581773176],\n [4.3e-10, 4.08726331262, 156137.47598479927],\n [4.3e-10, 5.17376496602, 18422.62935909819],\n [3.4e-10, 2.14460100274, 4933.2084403326],\n [3e-10, 4.12992793541, 426.598190876],\n [3.6e-10, 2.28596930002, 90279.92316810328],\n [3.2e-10, 0.81117747619, 26.2983197998],\n [2.8e-10, 4.07036560467, 14712.317116458],\n [2.5e-10, 1.92905243842, 1748.016413067],\n [2.4e-10, 5.06152880842, 16730.4636895958],\n [2.3e-10, 3.24047012195, 31415.379249957],\n [2.7e-10, 3.90672018305, 18451.07854656599],\n [2.1e-10, 3.51419811826, 10447.3878396044]\n ],\n \"2\": [\n [0.00009721424, 5.1519280992, 6283.0758499914],\n [0.00000233002, 3.14159265359, 0],\n [0.00000134188, 0.64406212977, 12566.1516999828],\n [6.504e-8, 1.07333397797, 18849.2275499742],\n [1.662e-8, 1.62746869551, 84334.66158130829],\n [6.35e-9, 3.51985338656, 6279.5527316424],\n [4.92e-9, 2.41382223971, 1047.7473117547],\n [3.07e-9, 6.10181422085, 5223.6939198022],\n [3.22e-9, 0.37660897389, 6286.5989683404],\n [3.26e-9, 2.35727931602, 5507.5532386674],\n [2.74e-9, 1.65307581765, 7860.4193924392],\n [2.28e-9, 1.14082932988, 25132.3033999656],\n [2.02e-9, 0.4983668253, 2352.8661537718],\n [2.01e-9, 0.155527656, 10213.285546211],\n [1.67e-9, 3.98005254015, 529.6909650946],\n [1.7e-9, 5.28668290523, 6256.7775301916],\n [1.66e-9, 3.04613930284, 12036.4607348882],\n [1.53e-9, 4.06779216239, 83996.84731811189],\n [1.5e-9, 3.18772213951, 71430.69561812909],\n [1.2e-9, 3.13558669517, 5884.9268465832],\n [1.23e-9, 4.17102530625, 6309.3741697912],\n [1e-9, 1.46356761368, 11506.7697697936],\n [1e-9, 3.00322421365, 11790.6290886588],\n [7.7e-10, 1.65643898948, 4705.7323075436],\n [6.8e-10, 6.03791904123, 6812.766815086],\n [7.5e-10, 4.85191600582, 14143.4952424306],\n [7.9e-10, 4.12628805658, 5753.3848848968],\n [6.4e-10, 2.7194416046, 6127.6554505572],\n [6.3e-10, 0.78655326011, 6438.4962494256],\n [7.5e-10, 0.84213523741, 167621.5758508619],\n [5.1e-10, 4.55059044701, 5486.777843175],\n [5e-10, 5.29314320585, 7079.3738568078],\n [4.5e-10, 0.33147576416, 775.522611324],\n [4.3e-10, 3.6179371164, 1577.3435424478],\n [5.7e-10, 6.15295833679, 12194.0329146209],\n [4.5e-10, 1.18274698508, 17789.845619785],\n [4.7e-10, 1.11643162773, 398.1490034082],\n [4.7e-10, 5.5298423843, 12168.0026965746],\n [4.2e-10, 2.6437530062, 10988.808157535],\n [3.7e-10, 0.31226891972, 6681.2248533996],\n [4.6e-10, 3.38617099014, 156475.2902479957],\n [3.3e-10, 1.26266496002, 6290.1893969922],\n [3.3e-10, 2.25067065498, 6275.9623029906],\n [2.7e-10, 1.72859626293, 1059.3819301892],\n [2.8e-10, 2.88681054153, 796.2980068164],\n [3e-10, 5.52021264181, 7058.5984613154],\n [2.1e-10, 6.22275008403, 6069.7767545534],\n [2.4e-10, 5.83690442827, 6282.0955289232],\n [2.4e-10, 3.95322179797, 6284.0561710596],\n [2.1e-10, 4.87022458966, 3738.761430108],\n [2.1e-10, 3.58048145762, 6496.3749454294],\n [2.2e-10, 1.97770318395, 7.1135470008],\n [1.9e-10, 3.4597988877, 4136.9104335162],\n [1.5e-10, 2.81379880771, 1589.0728952838],\n [1.5e-10, 1.61313151838, 1194.4470102246],\n [1.5e-10, 0.63083434831, 11769.8536931664],\n [1.9e-10, 0.28082047767, 17260.1546546904],\n [1.7e-10, 1.35165136146, 78051.5857313169],\n [1.5e-10, 2.3094159956, 11856.2186514245],\n [1.2e-10, 1.12997370513, 90617.7374312997],\n [1.2e-10, 0.00611601597, 18073.7049386502],\n [1.2e-10, 1.70058636365, 12559.038152982]\n ],\n \"3\": [\n [0.00000275993, 0.59480097092, 6283.0758499914],\n [1.7034e-7, 3.14159265359, 0],\n [3.617e-8, 0.11750575325, 12566.1516999828],\n [3.39e-9, 5.66087461682, 18849.2275499742],\n [5.6e-10, 5.02765554835, 6279.5527316424],\n [1.9e-10, 5.99007646261, 6256.7775301916],\n [1.8e-10, 3.80004734567, 6309.3741697912],\n [1.8e-10, 1.21049250774, 6127.6554505572],\n [1.8e-10, 2.29734567137, 6438.4962494256],\n [1.5e-10, 4.72881467263, 6286.5989683404],\n [1.2e-10, 0.41481671808, 83996.84731811189],\n [1.3e-10, 5.54637369296, 25132.3033999656],\n [1e-10, 2.91937214232, 71430.69561812909],\n [6e-11, 2.1417324121, 11856.2186514245]\n ],\n \"4\": [\n [5.745e-8, 2.26734029843, 6283.0758499914],\n [8.7e-9, 0, 0],\n [1.19e-9, 4.26807972611, 12566.1516999828],\n [1.7e-10, 4.0742262044, 18849.2275499742],\n [5e-11, 0.84308705203, 1047.7473117547],\n [5e-11, 0.05711572303, 84334.66158130829]\n ],\n \"5\": [\n [1.14e-9, 4.31455980099, 6283.0758499914],\n [2.4e-10, 0, 0]\n ]\n },\n R: {\n \"0\": [\n [1.00013988784, 0, 0],\n [0.01670699632, 3.09846350258, 6283.0758499914],\n [0.00013956024, 3.05524609456, 12566.1516999828],\n [0.0000308372, 5.19846674381, 77713.7714681205],\n [0.00001628463, 1.17387558054, 5753.3848848968],\n [0.00001575572, 2.84685214877, 7860.4193924392],\n [0.00000924799, 5.45292236722, 11506.7697697936],\n [0.00000542439, 4.56409151453, 3930.2096962196],\n [0.0000047211, 3.66100022149, 5884.9268465832],\n [0.0000032878, 5.89983686142, 5223.6939198022],\n [0.00000345969, 0.96368627272, 5507.5532386674],\n [0.00000306784, 0.29867139512, 5573.1428014331],\n [0.00000174844, 3.01193636733, 18849.2275499742],\n [0.00000243181, 4.2734953079, 11790.6290886588],\n [0.00000211836, 5.84714461348, 1577.3435424478],\n [0.0000018574, 5.02199710705, 10977.078804699],\n [0.00000109835, 5.0551063586, 5486.777843175],\n [9.8316e-7, 0.88681311278, 6069.7767545534],\n [8.65e-7, 5.68956418946, 15720.8387848784],\n [8.5831e-7, 1.27079125277, 161000.6857376741],\n [6.2917e-7, 0.92177053978, 529.6909650946],\n [5.7056e-7, 2.01374292245, 83996.84731811189],\n [6.4908e-7, 0.27251341435, 17260.1546546904],\n [4.9384e-7, 3.24501240359, 2544.3144198834],\n [5.5736e-7, 5.2415979917, 71430.69561812909],\n [4.252e-7, 6.01110257982, 6275.9623029906],\n [4.6966e-7, 2.57799853213, 775.522611324],\n [3.8963e-7, 5.36063832897, 4694.0029547076],\n [4.4666e-7, 5.53715663816, 9437.762934887],\n [3.5661e-7, 1.67447135798, 12036.4607348882],\n [3.1922e-7, 0.18368299942, 5088.6288397668],\n [3.1846e-7, 1.77775642078, 398.1490034082],\n [3.3193e-7, 0.24370221704, 7084.8967811152],\n [3.8245e-7, 2.39255343973, 8827.3902698748],\n [2.8468e-7, 1.21344887533, 6286.5989683404],\n [3.7486e-7, 0.82961281844, 19651.048481098],\n [3.6957e-7, 4.90107587287, 12139.5535091068],\n [3.4537e-7, 1.84270693281, 2942.4634232916],\n [2.6275e-7, 4.58896863104, 10447.3878396044],\n [2.4596e-7, 3.78660838036, 8429.2412664666],\n [2.3587e-7, 0.26866098169, 796.2980068164],\n [2.7795e-7, 1.89934427832, 6279.5527316424],\n [2.3927e-7, 4.99598548145, 5856.4776591154],\n [2.0345e-7, 4.65282190725, 2146.1654164752],\n [2.3287e-7, 2.80783632869, 14143.4952424306],\n [2.2099e-7, 1.95002636847, 3154.6870848956],\n [1.9509e-7, 5.38233922479, 2352.8661537718],\n [1.7958e-7, 0.1987136996, 6812.766815086],\n [1.7178e-7, 4.43322156854, 10213.285546211],\n [1.619e-7, 5.23159323213, 17789.845619785],\n [1.7315e-7, 6.15224075188, 16730.4636895958],\n [1.3814e-7, 5.18962074032, 8031.0922630584],\n [1.8834e-7, 0.67280058021, 149854.4001348079],\n [1.833e-7, 2.25348717053, 23581.2581773176],\n [1.3639e-7, 3.68511810757, 4705.7323075436],\n [1.3142e-7, 0.65267698994, 13367.9726311066],\n [1.0414e-7, 4.33285688501, 11769.8536931664],\n [9.978e-8, 4.20126336356, 6309.3741697912],\n [1.017e-7, 1.59366684542, 4690.4798363586],\n [7.564e-8, 2.62560597391, 6256.7775301916],\n [9.654e-8, 3.67583728703, 27511.4678735372],\n [6.743e-8, 0.56269927047, 3340.6124266998],\n [8.743e-8, 6.06359123461, 1748.016413067],\n [7.786e-8, 3.67371235367, 12168.0026965746],\n [6.633e-8, 5.66149277789, 11371.7046897582],\n [7.712e-8, 0.31242577788, 7632.9432596502],\n [6.586e-8, 3.13580054586, 801.8209311238],\n [7.46e-8, 5.6475806666, 11926.2544136688],\n [6.933e-8, 2.92384586372, 6681.2248533996],\n [6.805e-8, 1.42327153767, 23013.5395395872],\n [6.118e-8, 5.13395999022, 1194.4470102246],\n [6.477e-8, 2.64986648493, 19804.8272915828],\n [5.233e-8, 4.62432817299, 6438.4962494256],\n [6.147e-8, 3.02863936662, 233141.3144043615],\n [4.608e-8, 1.72194702724, 7234.794256242],\n [4.221e-8, 1.55697533726, 7238.6755916],\n [5.31e-8, 2.40821524293, 11499.6562227928],\n [5.128e-8, 5.3239896569, 11513.8833167944],\n [4.77e-8, 0.2555431173, 11856.2186514245],\n [5.519e-8, 2.09089153789, 17298.1823273262],\n [5.625e-8, 4.34052903053, 90955.5516944961],\n [4.578e-8, 4.4656964157, 5746.271337896],\n [3.788e-8, 4.9072829481, 4164.311989613],\n [5.337e-8, 5.09957905103, 31441.6775697568],\n [3.967e-8, 1.20054555175, 1349.8674096588],\n [4.005e-8, 3.02853885902, 1059.3819301892],\n [3.48e-8, 0.76066308841, 10973.55568635],\n [4.232e-8, 1.05485713117, 5760.4984318976],\n [4.582e-8, 3.76570026763, 6386.16862421],\n [3.335e-8, 3.13829943354, 6836.6452528338],\n [3.42e-8, 3.00043974511, 4292.3308329504],\n [3.595e-8, 5.70703236079, 5643.1785636774],\n [3.236e-8, 4.16387400645, 9917.6968745098],\n [4.154e-8, 2.59940749519, 7058.5984613154],\n [3.362e-8, 4.54577164994, 4732.0306273434],\n [2.978e-8, 1.3056126882, 6283.14316029419],\n [2.765e-8, 0.51311975671, 26.2983197998],\n [2.807e-8, 5.66230537649, 8635.9420037632],\n [2.927e-8, 5.7378783408, 16200.7727245012],\n [3.167e-8, 1.691817599, 11015.1064773348],\n [2.598e-8, 2.96244118358, 25132.3033999656],\n [3.519e-8, 3.62639325753, 244287.60000722768],\n [2.676e-8, 4.20727719487, 18073.7049386502],\n [2.978e-8, 1.74971565805, 6283.0085396886],\n [2.287e-8, 1.06976449088, 14314.1681130498],\n [2.863e-8, 5.92838917309, 14712.317116458],\n [3.071e-8, 0.23793217, 35371.8872659764],\n [2.656e-8, 0.89959301615, 12352.8526045448],\n [2.415e-8, 2.799751768, 709.9330485583],\n [2.811e-8, 3.51513864541, 21228.3920235458],\n [1.977e-8, 2.61358297551, 951.7184062506],\n [2.548e-8, 2.47684686575, 6208.2942514241],\n [1.999e-8, 0.56090396506, 7079.3738568078],\n [2.305e-8, 1.05376463592, 22483.84857449259],\n [1.855e-8, 2.86093570752, 5216.5803728014],\n [2.157e-8, 1.31395211105, 154717.6098876827],\n [1.97e-8, 4.36931551625, 167283.7615876655],\n [1.754e-8, 2.14452400686, 6290.1893969922],\n [1.628e-8, 5.85704450617, 10984.1923516998],\n [2.154e-8, 6.03828353794, 10873.9860304804],\n [1.714e-8, 3.70158195222, 1592.5960136328],\n [1.541e-8, 6.21599512982, 23543.23050468179],\n [1.602e-8, 1.99860679677, 10969.9652576982],\n [1.712e-8, 1.34295218697, 3128.3887650958],\n [1.647e-8, 5.54948299069, 6496.3749454294],\n [1.495e-8, 5.43980459648, 155.4203994342],\n [1.827e-8, 5.91227480351, 3738.761430108],\n [1.726e-8, 2.16765465036, 10575.4066829418],\n [1.532e-8, 5.35683107063, 13521.7514415914],\n [1.824e-8, 1.66056145084, 39302.096962196],\n [1.605e-8, 1.90930973224, 6133.5126528568],\n [1.282e-8, 2.46013372544, 13916.0191096416],\n [1.211e-8, 4.4136063155, 3894.1818295422],\n [1.394e-8, 1.7780192925, 9225.539273283],\n [1.571e-8, 4.95512957606, 25158.6017197654],\n [1.205e-8, 1.19212756308, 3.523118349],\n [1.132e-8, 2.69830084955, 6040.3472460174],\n [1.504e-8, 5.77577388271, 18209.33026366019],\n [1.393e-8, 1.62625077326, 5120.6011455836],\n [1.081e-8, 2.93726744446, 17256.6315363414],\n [1.232e-8, 0.71651766504, 143571.32428481648],\n [1.087e-8, 0.99769687961, 955.5997416086],\n [1.068e-8, 5.28472576591, 65147.6197681377],\n [1.169e-8, 3.11663802316, 14945.3161735544],\n [9.75e-9, 5.1088726078, 6172.869528772],\n [1.202e-8, 4.02992510403, 553.5694028424],\n [9.79e-9, 2.00000879106, 15110.4661198662],\n [9.62e-9, 4.023807714, 6282.0955289232],\n [9.99e-9, 3.6264300279, 6262.300454499],\n [1.03e-8, 5.84987815239, 213.299095438],\n [1.014e-8, 2.84227679965, 8662.240323563],\n [1.185e-8, 1.51330629149, 17654.7805397496],\n [9.67e-9, 2.67081017562, 5650.2921106782],\n [1.222e-8, 2.65423784904, 88860.05707098669],\n [9.86e-9, 2.36212814824, 6206.8097787158],\n [1.034e-8, 0.13634950642, 11712.9553182308],\n [1.103e-8, 3.08477302937, 43232.3066584156],\n [7.81e-9, 2.53374971725, 16496.3613962024],\n [1.019e-8, 3.04569392376, 6037.244203762],\n [7.95e-9, 5.80662989126, 5230.807466803],\n [8.13e-9, 3.57702871938, 10177.2576795336],\n [9.62e-9, 5.31470594766, 6284.0561710596],\n [7.17e-9, 5.95797471837, 12559.038152982],\n [9.67e-9, 2.74413738053, 6244.9428143536],\n [9.21e-9, 0.1016016083, 29088.811415985],\n [7.19e-9, 5.91788189939, 4136.9104335162],\n [6.88e-9, 3.89489045092, 1589.0728952838],\n [7.72e-9, 4.05505380285, 6127.6554505572],\n [7.06e-9, 5.49323197725, 22003.9146348698],\n [6.65e-9, 1.60002747134, 11087.2851259184],\n [6.9e-9, 4.50539825729, 426.598190876],\n [8.54e-9, 3.2610464506, 20426.571092422],\n [6.56e-9, 4.3241018294, 16858.4825329332],\n [8.4e-9, 2.59572585212, 28766.924424484],\n [6.86e-9, 0.61944033771, 11403.676995575],\n [7e-9, 3.40901412473, 7.1135470008],\n [7.28e-9, 0.04050185963, 5481.2549188676],\n [6.53e-9, 1.0386945123, 6062.6632075526],\n [5.59e-9, 4.79221805695, 20199.094959633],\n [6.33e-9, 5.70229959167, 45892.73043315699],\n [5.91e-9, 6.10986487621, 9623.6882766912],\n [5.2e-9, 3.62310356479, 5333.9002410216],\n [6.02e-9, 5.58381898589, 10344.2950653858],\n [4.96e-9, 2.21027756314, 1990.745017041],\n [6.91e-9, 1.96733114988, 12416.5885028482],\n [6.4e-9, 1.59062417043, 18319.5365848796],\n [6.25e-9, 3.82358168221, 13517.8701062334],\n [4.75e-9, 1.1702590418, 12569.6748183318],\n [6.6e-9, 5.08498512995, 283.8593188652],\n [6.64e-9, 4.50029469969, 47162.5163546352],\n [5.69e-9, 0.16318535463, 17267.26820169119],\n [5.68e-9, 3.86100969474, 6076.8903015542],\n [4.62e-9, 0.26368763517, 4590.910180489],\n [5.35e-9, 4.83225423196, 18422.62935909819],\n [4.66e-9, 0.75873879417, 7342.4577801806],\n [5.41e-9, 3.07212190556, 226858.23855437007],\n [6.1e-9, 1.53597089605, 33019.0211122046],\n [6.17e-9, 2.62356328726, 11190.377900137],\n [5.48e-9, 4.55798855803, 18875.525869774],\n [6.33e-9, 4.60110281228, 66567.48586525429],\n [5.87e-9, 5.78087907808, 632.7837393132],\n [6.03e-9, 5.38458554802, 316428.22867391503],\n [5.25e-9, 5.01522072363, 12132.439962106],\n [4.69e-9, 0.59975173763, 21954.15760939799],\n [5.48e-9, 3.50627043672, 17253.04110768959],\n [5.02e-9, 0.98804327589, 11609.8625440122],\n [5.68e-9, 1.98497313089, 7668.6374249425],\n [4.82e-9, 1.62460405687, 12146.6670561076],\n [3.91e-9, 3.68718382972, 18052.9295431578],\n [4.57e-9, 3.7721489661, 156137.47598479927],\n [4.01e-9, 5.2922154024, 15671.0817594066],\n [4.69e-9, 1.80963351735, 12562.6285816338],\n [5.14e-9, 3.37031288919, 20597.2439630412],\n [4.52e-9, 5.66811219778, 10454.5013866052],\n [3.75e-9, 4.98528185039, 9779.1086761254],\n [5.23e-9, 0.97215560834, 155427.542936241],\n [4.03e-9, 5.1394818977, 1551.045222648],\n [3.72e-9, 3.69883738807, 9388.0059094152],\n [3.67e-9, 4.43875659833, 4535.0594369244],\n [4.06e-9, 4.20863156497, 12592.4500197826],\n [3.62e-9, 2.55099560446, 242.728603974],\n [4.71e-9, 4.61907324819, 5436.9930152402],\n [3.88e-9, 4.960209284, 24356.7807886416],\n [4.41e-9, 5.83872966262, 3496.032826134],\n [3.49e-9, 6.16307810648, 19800.9459562248],\n [3.56e-9, 0.2381908124, 5429.8794682394],\n [3.46e-9, 5.60809622572, 2379.1644735716],\n [3.8e-9, 2.72105213132, 11933.3679606696],\n [4.32e-9, 0.24215988572, 17996.0311682222],\n [3.78e-9, 5.22516848076, 7477.522860216],\n [3.37e-9, 5.10885555836, 5849.3641121146],\n [3.15e-9, 0.57827745123, 10557.5941608238],\n [3.18e-9, 4.4994900732, 3634.6210245184],\n [3.23e-9, 1.55850824803, 10440.2742926036],\n [3.14e-9, 5.77154773334, 20.7753954924],\n [3.03e-9, 2.34615580398, 4686.8894077068],\n [4.14e-9, 5.9323760231, 51092.7260508548],\n [3.62e-9, 2.17561997119, 28237.2334593894],\n [2.88e-9, 0.18377405421, 13095.8426650774],\n [2.77e-9, 5.1295220503, 13119.72110282519],\n [3.25e-9, 6.18608287927, 6268.8487559898],\n [2.73e-9, 0.30522428863, 23141.5583829246],\n [2.67e-9, 5.76152585786, 5966.6839803348],\n [3.45e-9, 2.94246040875, 36949.2308084242],\n [2.53e-9, 5.20994580359, 24072.9214697764],\n [3.42e-9, 5.76212804329, 16460.33352952499],\n [3.07e-9, 6.01039067183, 22805.7355659936],\n [2.61e-9, 2.00304796059, 6148.010769956],\n [2.38e-9, 5.08241964961, 6915.8595893046],\n [2.49e-9, 2.94762789744, 135.0650800354],\n [3.06e-9, 3.89765478921, 10988.808157535],\n [3.08e-9, 0.05451027736, 4701.1165017084],\n [3.19e-9, 2.95712862064, 163096.18036118348],\n [2.72e-9, 2.07967681309, 4804.209275927],\n [2.09e-9, 4.43768461442, 6546.1597733642],\n [2.17e-9, 0.73691592312, 6303.8512454838],\n [2.03e-9, 0.32033085531, 25934.1243310894],\n [2.05e-9, 5.22936478995, 20995.3929664494],\n [2.13e-9, 0.20671418919, 28286.9904848612],\n [1.97e-9, 0.4828613129, 16737.5772365966],\n [2.3e-9, 6.06567392849, 6287.0080032545],\n [2.19e-9, 1.291942163, 5326.7866940208],\n [2.01e-9, 1.74700937253, 22743.4093795164],\n [2.07e-9, 4.45440927276, 6279.4854213396],\n [2.69e-9, 6.0564044503, 64471.99124174489],\n [1.9e-9, 0.99261116842, 29296.6153895786],\n [1.94e-9, 3.82656562755, 419.4846438752],\n [2.62e-9, 5.26961924126, 522.5774180938],\n [2.1e-9, 4.68618183158, 6254.6266625236],\n [1.97e-9, 2.80624554186, 4933.2084403326],\n [2.52e-9, 4.3622015462, 40879.4405046438],\n [2.61e-9, 1.07241516738, 55022.9357470744],\n [2.33e-9, 5.41751014958, 39609.6545831656],\n [1.85e-9, 4.14324541379, 5642.1982426092],\n [2.47e-9, 3.44855612987, 6702.5604938666],\n [2.05e-9, 4.04424043226, 536.8045120954],\n [1.91e-9, 3.15807087926, 16723.350142595],\n [2.22e-9, 5.16259496507, 23539.7073863328],\n [1.8e-9, 4.56214752149, 6489.2613984286],\n [2.27e-9, 0.60156339452, 5905.7022420756],\n [1.7e-9, 0.93185903228, 16062.1845261168],\n [1.59e-9, 0.92751013112, 23937.856389741],\n [1.57e-9, 4.69607868164, 6805.6532680852],\n [2.18e-9, 0.8553337343, 16627.3709153772],\n [1.69e-9, 0.94641052064, 3097.88382272579],\n [2.07e-9, 4.88410451334, 6286.6662786432],\n [1.6e-9, 4.95943826819, 10021.8372800994],\n [1.75e-9, 6.12762824563, 239424.39025435288],\n [1.73e-9, 3.13887234973, 6179.9830757728],\n [1.57e-9, 3.62822057807, 18451.07854656599],\n [2.06e-9, 5.74617821138, 3646.3503773544],\n [1.57e-9, 4.67695912207, 6709.6740408674],\n [1.46e-9, 3.09506069745, 4907.3020501456],\n [1.65e-9, 2.2713912876, 10660.6869350424],\n [1.44e-9, 3.96947747592, 6019.9919266186],\n [1.71e-9, 5.91302216729, 6058.7310542895],\n [1.44e-9, 2.1315565512, 26084.0218062162],\n [1.51e-9, 0.67417383565, 2388.8940204492],\n [1.96e-9, 1.67718461229, 2107.0345075424],\n [1.46e-9, 5.10373877968, 10770.8932562618],\n [1.87e-9, 1.23915444627, 19402.7969528166],\n [1.37e-9, 1.26247412216, 12566.2190102856],\n [1.91e-9, 5.03547476279, 263.0839233728],\n [1.37e-9, 3.52825454595, 639.897286314],\n [1.35e-9, 0.73840670927, 5017.508371365],\n [1.64e-9, 2.39195095081, 6357.8574485587],\n [1.68e-9, 0.05515907462, 9380.9596727172],\n [1.61e-9, 1.15721259392, 26735.9452622132],\n [1.44e-9, 1.76097645199, 5888.4499649322],\n [1.31e-9, 2.51859277344, 6599.467719648],\n [1.42e-9, 2.43802911123, 5881.4037282342],\n [1.59e-9, 5.90325893762, 6281.5913772831],\n [1.51e-9, 3.72338532519, 12669.2444742014],\n [1.32e-9, 2.38417741883, 6525.8044539654],\n [1.27e-9, 0.00254936441, 10027.9031957292],\n [1.48e-9, 2.85102145528, 6418.1409300268],\n [1.43e-9, 5.7446027956, 26087.9031415742],\n [1.72e-9, 0.4128996224, 174242.4659640497],\n [1.36e-9, 4.15497742275, 6311.5250374592],\n [1.7e-9, 5.98194913129, 327574.51427678124],\n [1.36e-9, 2.48430537541, 13341.6743113068],\n [1.49e-9, 0.33002271275, 245.8316462294],\n [1.65e-9, 2.496679246, 58953.145443294],\n [1.23e-9, 1.67328384813, 32217.2001810808],\n [1.23e-9, 3.45660563754, 6277.552925684],\n [1.17e-9, 0.86065134175, 6245.0481773556],\n [1.49e-9, 5.61358281003, 5729.506447149],\n [1.28e-9, 0.71204006448, 103.0927742186],\n [1.59e-9, 2.43166592149, 221995.02880149524],\n [1.37e-9, 1.706577092, 12566.08438968],\n [1.29e-9, 2.80667872683, 6016.4688082696],\n [1.13e-9, 3.58302904101, 25685.872802808],\n [1.09e-9, 3.26403795962, 6819.8803620868],\n [1.22e-9, 0.34120688202, 1162.4747044078],\n [1.06e-9, 1.59721172719, 17782.7320727842],\n [1.44e-9, 2.28891651774, 12489.8856287072],\n [1.37e-9, 5.82029768354, 44809.6502008634],\n [1.34e-9, 1.26539983018, 5331.3574437408],\n [1.03e-9, 5.96518130595, 6321.1035226272],\n [1.09e-9, 0.33808549034, 11300.5842213564],\n [1.29e-9, 5.8918727719, 12029.3471878874],\n [1.22e-9, 5.77325634636, 11919.140866668],\n [1.07e-9, 6.2499898935, 77690.75950573849],\n [1.07e-9, 1.00535580713, 77736.78343050249],\n [1.15e-9, 5.86963518266, 12721.572099417],\n [1.02e-9, 5.66283467269, 5540.0857894588],\n [1.43e-9, 0.24122178432, 4214.0690150848],\n [1.43e-9, 0.88529649733, 7576.560073574],\n [1.07e-9, 2.92124030351, 31415.379249957],\n [1e-9, 5.99485644501, 4061.2192153944],\n [1.03e-9, 2.41941934525, 5547.1993364596],\n [1.04e-9, 4.44106051277, 2118.7638603784],\n [1.1e-9, 0.37559635174, 5863.5912061162],\n [1.24e-9, 2.55619029611, 12539.853380183],\n [1.1e-9, 3.66952094465, 238004.5241572363],\n [1.12e-9, 4.32512422724, 97238.62754448749],\n [1.2e-9, 1.26895630075, 12043.574281889],\n [9.7e-10, 5.42612959752, 7834.1210726394],\n [9.4e-10, 2.56461130309, 19004.6479494084],\n [1.05e-9, 5.68272475301, 16522.6597160022],\n [1.17e-9, 3.65425622684, 34520.3093093808],\n [1.08e-9, 1.24206843948, 84672.47584450469],\n [9.8e-10, 0.13589994287, 11080.1715789176],\n [9.7e-10, 2.46722096722, 71980.63357473118],\n [9.5e-10, 5.36958330451, 6288.5987742988],\n [9.6e-10, 0.20796618776, 18139.2945014159],\n [1.11e-9, 5.01961920313, 11823.1616394502],\n [9e-10, 2.72355843779, 26880.3198130326],\n [9.9e-10, 0.90164266199, 18635.9284545362],\n [1.26e-9, 4.78722177847, 305281.9430710488],\n [1.24e-9, 5.00979495566, 172146.9713405403],\n [9e-10, 4.50544881196, 40077.61957352],\n [1.04e-9, 5.6367968071, 2787.0430238574],\n [9.1e-10, 5.43564326147, 6272.0301497275],\n [1e-9, 2.00639461597, 12323.4230960088],\n [1.17e-9, 2.35555589778, 83286.91426955358],\n [1.05e-9, 2.59824000109, 30666.1549584328],\n [9e-10, 2.35779490026, 12491.3701014155],\n [8.9e-10, 3.57152453732, 11720.0688652316],\n [9.5e-10, 5.67015349858, 14919.0178537546],\n [8.7e-10, 1.86043406047, 27707.5424942948],\n [1.06e-9, 3.04150600352, 22345.2603761082],\n [8.2e-10, 5.58298993353, 10241.2022911672],\n [8.3e-10, 3.10607039533, 36147.4098773004],\n [9.4e-10, 5.47749711149, 9924.8104215106],\n [8.2e-10, 4.71988314145, 15141.390794312],\n [9.6e-10, 3.89073946348, 6379.0550772092],\n [1.1e-9, 4.92131611151, 5621.8429232104],\n [1.1e-9, 4.89978492291, 72140.6286666874],\n [9.7e-10, 5.20764563059, 6303.4311693902],\n [8.5e-10, 1.61269222311, 33326.5787331742],\n [9.3e-10, 1.32651591333, 23020.65308658799],\n [9e-10, 0.5773301638, 26482.1708096244],\n [7.8e-10, 3.99588630754, 11293.4706743556],\n [1.06e-9, 3.92012705073, 62883.3551395136],\n [9.8e-10, 2.94397773524, 316.3918696566],\n [7.6e-10, 3.96310417608, 29026.48522950779],\n [9.8e-10, 0.95914722366, 48739.859897083],\n [7.8e-10, 1.97068528043, 90279.92316810328],\n [7.6e-10, 0.23027966596, 21424.4666443034],\n [7.9e-10, 1.46227790922, 8982.810669309],\n [7.8e-10, 2.28840998832, 266.6070417218],\n [7.1e-10, 1.5194076559, 33794.5437235286],\n [7.6e-10, 0.22880641443, 57375.8019008462],\n [9.7e-10, 0.39449562097, 24279.10701821359],\n [7.5e-10, 2.77638584795, 12964.300703391],\n [7.7e-10, 5.18846946344, 11520.9968637952],\n [6.8e-10, 0.50006599129, 4274.5183108324],\n [7.5e-10, 2.07323762803, 15664.03552270859],\n [7.7e-10, 0.4666517878, 16207.886271502],\n [8.1e-10, 4.10452219483, 161710.6187862324],\n [7.1e-10, 3.91415328513, 7875.6718636242],\n [8.1e-10, 0.91938383406, 74.7815985673],\n [8.3e-10, 4.69916218791, 23006.42599258639],\n [6.9e-10, 0.98999300277, 6393.2821712108],\n [6.5e-10, 5.41938745446, 28628.3362260996],\n [7.3e-10, 2.45564765251, 15508.6151232744],\n [6.5e-10, 3.02336771694, 5959.570433334],\n [6.4e-10, 0.18375587635, 1066.49547719],\n [8e-10, 5.81239171612, 12341.8069042809],\n [6.6e-10, 2.15105504851, 38.0276726358],\n [6.7e-10, 5.14047250153, 9814.6041002912],\n [6.2e-10, 2.43313614978, 10138.1095169486],\n [6.8e-10, 2.24442548639, 24383.0791084414],\n [7.8e-10, 1.39649333997, 9411.4646150872],\n [5.9e-10, 4.95362151577, 35707.7100829074],\n [7.3e-10, 1.35229143121, 5327.4761083828],\n [5.7e-10, 3.16018882154, 5490.300961524],\n [7.2e-10, 5.91833527334, 10881.0995774812],\n [6.7e-10, 0.66414713064, 29864.334027309],\n [6.5e-10, 0.30352816135, 7018.9523635232],\n [5.9e-10, 5.36231868425, 10239.5838660108],\n [5.6e-10, 3.22196331515, 2636.725472637],\n [6.8e-10, 5.32086226658, 3116.6594122598],\n [5.9e-10, 1.63156134967, 61306.0115970658],\n [5.4e-10, 4.29491690425, 21947.1113727],\n [7e-10, 0.29271565928, 6528.9074962208],\n [5.7e-10, 5.89190132575, 34513.2630726828],\n [5.4e-10, 2.51856815404, 6279.1945146334],\n [7.4e-10, 1.38235845304, 9967.4538999816],\n [5.4e-10, 0.92276712152, 6286.9571853494],\n [7e-10, 5.00933012248, 6453.7487206106],\n [5.3e-10, 3.86543309344, 32370.9789915656],\n [5.5e-10, 4.51794544854, 34911.412076091],\n [6.3e-10, 5.41479412056, 11502.8376165305],\n [6.3e-10, 2.34416220742, 11510.7019230567],\n [5.6e-10, 0.91310629913, 9910.583327509],\n [6.7e-10, 4.03308763854, 34596.3646546524],\n [6e-10, 5.57024703495, 5756.9080032458],\n [7.2e-10, 2.80863088166, 10866.8724834796],\n [6.6e-10, 6.12047940728, 12074.488407524],\n [5.1e-10, 2.59519527563, 11396.5634485742],\n [6.2e-10, 5.14746754396, 25287.7237993998],\n [5.4e-10, 2.50994032776, 5999.2165311262],\n [5.1e-10, 4.51195861837, 29822.7832363242],\n [5.9e-10, 0.44167237876, 250570.6758572191],\n [5.1e-10, 3.6884906676, 6262.7205305926],\n [4.9e-10, 0.54704693048, 22594.05489571199],\n [6.5e-10, 2.38423614501, 52670.0695933026],\n [6.9e-10, 5.34363738671, 66813.5648357332],\n [5.6e-10, 2.67216180349, 17892.93839400359],\n [4.9e-10, 4.18361320516, 18606.4989460002],\n [5.5e-10, 0.83886167974, 20452.8694122218],\n [5e-10, 1.46327331958, 37455.7264959744],\n [5.8e-10, 3.34847975377, 33990.6183442862],\n [6.5e-10, 1.45522693982, 76251.32777062019],\n [5.6e-10, 2.356506642, 37724.7534197482],\n [4.8e-10, 1.80689447612, 206.1855484372],\n [5.6e-10, 3.84224878744, 5483.254724826],\n [5.3e-10, 0.17334326094, 77717.29458646949],\n [5.3e-10, 0.79879700631, 77710.24834977149],\n [4.7e-10, 0.43240779709, 735.8765135318],\n [5.3e-10, 4.58786566028, 11616.976091013],\n [4.8e-10, 6.20230111054, 4171.4255366138],\n [5.2e-10, 2.9171905303, 6993.0088985497],\n [5.7e-10, 3.42008310383, 50317.2034395308],\n [4.8e-10, 0.12356889012, 13362.4497067992],\n [6e-10, 5.52056066934, 949.1756089698],\n [4.5e-10, 3.37963782356, 10763.779709261],\n [4.7e-10, 5.50958184902, 12779.4507954208],\n [5.2e-10, 5.42770349015, 310145.1528239236],\n [6.1e-10, 2.93237974631, 5791.4125575326],\n [4.4e-10, 2.87440620802, 8584.6616659008],\n [4.6e-10, 4.0314179656, 10667.8004820432],\n [4.4e-10, 1.21579107625, 6272.4391846416],\n [4.7e-10, 2.57670800912, 11492.542675792],\n [4.4e-10, 3.62570223167, 63658.8777508376],\n [5.1e-10, 0.84531181151, 12345.739057544],\n [4.6e-10, 1.17584556517, 149.5631971346],\n [4.3e-10, 0.01524970172, 37853.8754993826],\n [4.3e-10, 0.79038834934, 640.8776073822],\n [4.4e-10, 2.22554419931, 6293.7125153412],\n [4.9e-10, 1.01528394907, 149144.46708624958],\n [4.1e-10, 3.27146326065, 8858.3149443206],\n [4.5e-10, 3.03765521215, 65236.2212932854],\n [5.8e-10, 5.45843180927, 1975.492545856],\n [4.1e-10, 1.32190847146, 2547.8375382324],\n [4.7e-10, 3.67626039848, 28313.288804661],\n [4.7e-10, 6.21438985953, 10991.3058987006],\n [4e-10, 2.37237751212, 8273.8208670324],\n [5.6e-10, 1.09773690181, 77376.2010224076],\n [4e-10, 2.35698541041, 2699.7348193176],\n [4.3e-10, 5.28030897946, 17796.9591667858],\n [5.4e-10, 2.59175932091, 22910.44676536859],\n [5.5e-10, 0.07988985505, 83467.15635301729],\n [4.1e-10, 4.47510694062, 5618.3198048614],\n [4e-10, 1.35670430524, 27177.8515292002],\n [4.1e-10, 2.48011323946, 6549.6828917132],\n [5e-10, 2.56387920528, 82576.9812209953],\n [4.2e-10, 4.78798367468, 7856.89627409019],\n [4.7e-10, 2.75482175292, 18202.21671665939],\n [3.9e-10, 1.97008298629, 24491.4257925834],\n [4.2e-10, 4.04346599946, 7863.9425107882],\n [3.9e-10, 3.0103393642, 853.196381752],\n [3.8e-10, 0.49178679251, 38650.173506199],\n [4.4e-10, 1.35931241699, 21393.5419698576],\n [3.6e-10, 4.86047906533, 4157.1984426122],\n [4.3e-10, 5.64354880978, 1062.9050485382],\n [3.9e-10, 3.92736779879, 3903.9113764198],\n [4e-10, 5.3969491832, 9498.2122306346],\n [4.3e-10, 2.40863861919, 29424.634232916],\n [4.6e-10, 2.08022244271, 12573.2652469836],\n [5e-10, 6.15760345261, 78051.34191383338]\n ],\n \"1\": [\n [0.00103018607, 1.10748968172, 6283.0758499914],\n [0.00001721238, 1.06442300386, 12566.1516999828],\n [0.00000702217, 3.14159265359, 0],\n [3.2345e-7, 1.02168583254, 18849.2275499742],\n [3.0801e-7, 2.84358443952, 5507.5532386674],\n [2.4978e-7, 1.31906570344, 5223.6939198022],\n [1.8487e-7, 1.42428709076, 1577.3435424478],\n [1.0077e-7, 5.91385248388, 10977.078804699],\n [8.635e-8, 0.27158192945, 5486.777843175],\n [8.654e-8, 1.42046854427, 6275.9623029906],\n [5.069e-8, 1.68613408916, 5088.6288397668],\n [4.985e-8, 6.01402338185, 6286.5989683404],\n [4.667e-8, 5.98749245692, 529.6909650946],\n [4.395e-8, 0.51800423445, 4694.0029547076],\n [3.87e-8, 4.74932206877, 2544.3144198834],\n [3.755e-8, 5.07053801166, 796.2980068164],\n [4.1e-8, 1.08424801084, 9437.762934887],\n [3.518e-8, 0.02290216978, 83996.84731811189],\n [3.436e-8, 0.94937503872, 71430.69561812909],\n [3.221e-8, 6.15628775321, 2146.1654164752],\n [3.418e-8, 5.4115158188, 775.522611324],\n [2.863e-8, 5.48433323746, 10447.3878396044],\n [2.525e-8, 0.24296913555, 398.1490034082],\n [2.205e-8, 4.94892172085, 6812.766815086],\n [2.186e-8, 0.41991932164, 8031.0922630584],\n [2.828e-8, 3.41986300734, 2352.8661537718],\n [2.554e-8, 6.13241770582, 6438.4962494256],\n [1.932e-8, 5.31374587091, 8429.2412664666],\n [2.427e-8, 3.09118902115, 4690.4798363586],\n [1.73e-8, 1.53685999718, 4705.7323075436],\n [2.25e-8, 3.6883639562, 7084.8967811152],\n [2.094e-8, 1.281690604, 1748.016413067],\n [1.483e-8, 3.22226346483, 7234.794256242],\n [1.434e-8, 0.81293662216, 14143.4952424306],\n [1.754e-8, 3.22883705112, 6279.5527316424],\n [1.583e-8, 4.09815978783, 11499.6562227928],\n [1.575e-8, 5.53890314149, 3154.6870848956],\n [1.847e-8, 1.82041234937, 7632.9432596502],\n [1.499e-8, 3.63177937611, 11513.8833167944],\n [1.337e-8, 4.64442556061, 6836.6452528338],\n [1.275e-8, 2.69329661394, 1349.8674096588],\n [1.348e-8, 6.15284035323, 5746.271337896],\n [1.126e-8, 3.35676107739, 17789.845619785],\n [1.47e-8, 3.65282991735, 1194.4470102246],\n [1.101e-8, 4.4974742767, 4292.3308329504],\n [1.168e-8, 2.58033028504, 13367.9726311066],\n [1.236e-8, 5.64980098028, 5760.4984318976],\n [9.85e-9, 0.65326301914, 5856.4776591154],\n [9.28e-9, 2.3255501829, 10213.285546211],\n [1.073e-8, 5.82672338169, 12036.4607348882],\n [9.18e-9, 0.76907130762, 16730.4636895958],\n [8.76e-9, 1.50335727807, 11926.2544136688],\n [1.023e-8, 5.62071200879, 6256.7775301916],\n [8.53e-9, 0.6567813463, 155.4203994342],\n [8.02e-9, 4.10519132094, 951.7184062506],\n [8.59e-9, 1.42880883564, 5753.3848848968],\n [9.92e-9, 1.1423800161, 1059.3819301892],\n [8.14e-9, 1.63584008733, 6681.2248533996],\n [6.64e-9, 4.55039663226, 5216.5803728014],\n [6.27e-9, 1.50782904323, 5643.1785636774],\n [6.44e-9, 4.19480024859, 6040.3472460174],\n [5.9e-9, 6.18371704849, 4164.311989613],\n [6.35e-9, 0.5242358477, 6290.1893969922],\n [6.5e-9, 0.97935492869, 25132.3033999656],\n [5.68e-9, 2.30121525349, 10973.55568635],\n [5.49e-9, 5.26737827342, 3340.6124266998],\n [5.47e-9, 2.20143332641, 1592.5960136328],\n [5.26e-9, 0.92464258271, 11371.7046897582],\n [4.93e-9, 5.91036281399, 3894.1818295422],\n [4.83e-9, 1.6600571154, 12168.0026965746],\n [5.14e-9, 3.59683072524, 10969.9652576982],\n [5.16e-9, 3.97164781773, 17298.1823273262],\n [5.29e-9, 5.0353867768, 9917.6968745098],\n [4.87e-9, 2.50544745305, 6127.6554505572],\n [4.19e-9, 4.05235655996, 10984.1923516998],\n [5.38e-9, 5.54081539813, 553.5694028424],\n [4.02e-9, 2.16859478359, 7860.4193924392],\n [5.52e-9, 2.32219865498, 11506.7697697936],\n [3.67e-9, 3.39145698451, 6496.3749454294],\n [3.6e-9, 5.34467204596, 7079.3738568078],\n [3.34e-9, 3.61346365667, 11790.6290886588],\n [4.54e-9, 0.28755421898, 801.8209311238],\n [4.19e-9, 3.69613970002, 10575.4066829418],\n [3.19e-9, 0.30793759304, 16200.7727245012],\n [3.76e-9, 5.81560210508, 7058.5984613154],\n [3.64e-9, 1.08425056923, 6309.3741697912],\n [2.94e-9, 4.54798604178, 11856.2186514245],\n [2.9e-9, 1.26451946335, 8635.9420037632],\n [3.94e-9, 4.15683669084, 26.2983197998],\n [2.6e-9, 5.09424572996, 10177.2576795336],\n [2.41e-9, 2.25766000302, 11712.9553182308],\n [2.39e-9, 1.06936978753, 242.728603974],\n [2.76e-9, 3.44260568764, 5884.9268465832],\n [2.55e-9, 5.38496803122, 21228.3920235458],\n [3.07e-9, 4.24313885601, 3738.761430108],\n [2.13e-9, 3.44661200485, 213.299095438],\n [1.98e-9, 0.69427265195, 1990.745017041],\n [1.95e-9, 5.16563409007, 12352.8526045448],\n [2.13e-9, 3.89937836808, 13916.0191096416],\n [2.14e-9, 4.00445200772, 5230.807466803],\n [1.84e-9, 5.59805976614, 6283.14316029419],\n [1.84e-9, 2.85275392124, 7238.6755916],\n [1.79e-9, 2.54259058252, 14314.1681130498],\n [2.36e-9, 5.58826125715, 6069.7767545534],\n [1.89e-9, 2.72689937708, 6062.6632075526],\n [1.84e-9, 6.04216273598, 6283.0085396886],\n [2.25e-9, 1.66128561344, 4732.0306273434],\n [2.3e-9, 3.62591335086, 6284.0561710596],\n [1.72e-9, 0.97566476085, 3930.2096962196],\n [1.62e-9, 2.19467339429, 18073.7049386502],\n [2.15e-9, 1.04672844028, 3496.032826134],\n [1.82e-9, 5.17782354566, 17253.04110768959],\n [1.67e-9, 2.17754938066, 6076.8903015542],\n [1.67e-9, 4.75672473773, 17267.26820169119],\n [1.49e-9, 0.80944185798, 709.9330485583],\n [1.49e-9, 0.17584214812, 9779.1086761254],\n [1.92e-9, 5.00680790235, 11015.1064773348],\n [1.41e-9, 4.38420380014, 4136.9104335162],\n [1.58e-9, 4.60969054283, 9623.6882766912],\n [1.33e-9, 3.30507062245, 154717.6098876827],\n [1.66e-9, 6.13191098325, 3.523118349],\n [1.81e-9, 1.60715321141, 7.1135470008],\n [1.5e-9, 5.28136702046, 13517.8701062334],\n [1.42e-9, 0.49788089569, 25158.6017197654],\n [1.24e-9, 6.03440459813, 9225.539273283],\n [1.24e-9, 0.99251562639, 65147.6197681377],\n [1.28e-9, 1.92032744711, 22483.84857449259],\n [1.24e-9, 3.99739675184, 4686.8894077068],\n [1.21e-9, 2.37814805239, 167283.7615876655],\n [1.23e-9, 5.6231511294, 5642.1982426092],\n [1.17e-9, 5.81755956156, 12569.6748183318],\n [1.57e-9, 3.40236948518, 16496.3613962024],\n [1.3e-9, 2.10499918142, 1589.0728952838],\n [1.16e-9, 0.55839966736, 5849.3641121146],\n [1.23e-9, 5.81645568991, 6282.0955289232],\n [1.1e-9, 0.42176497674, 6172.869528772],\n [1.5e-9, 4.26279600865, 3128.3887650958],\n [1.06e-9, 2.27436561182, 5429.8794682394],\n [1.14e-9, 1.52894564202, 12559.038152982],\n [1.21e-9, 0.39459045915, 12132.439962106],\n [1.04e-9, 2.41845930933, 426.598190876],\n [1.09e-9, 5.82786999856, 16858.4825329332],\n [1.02e-9, 4.4662648491, 23543.23050468179],\n [1e-9, 2.93812275274, 4535.0594369244],\n [9.7e-10, 3.97935904984, 6133.5126528568],\n [9.8e-10, 0.87616810121, 6525.8044539654],\n [1.1e-9, 6.22339014386, 12146.6670561076],\n [9.8e-10, 3.17344332543, 10440.2742926036],\n [9.6e-10, 2.44128701699, 3097.88382272579],\n [9.9e-10, 5.75642493267, 7342.4577801806],\n [9e-10, 0.18984343165, 13119.72110282519],\n [9.9e-10, 5.58884724219, 2388.8940204492],\n [9.1e-10, 6.04278320182, 20426.571092422],\n [8e-10, 1.29028142103, 5650.2921106782],\n [8.6e-10, 3.94529200528, 10454.5013866052],\n [8.5e-10, 1.92836879835, 29088.811415985],\n [7.6e-10, 2.70726317966, 143571.32428481648],\n [9.1e-10, 5.63859073351, 8827.3902698748],\n [7.6e-10, 1.80783856698, 28286.9904848612],\n [7.5e-10, 3.40858032804, 5481.2549188676],\n [7e-10, 4.53719487231, 17256.6315363414],\n [8.9e-10, 1.10064490942, 11769.8536931664],\n [6.6e-10, 2.78384937771, 536.8045120954],\n [6.8e-10, 3.88199295043, 17260.1546546904],\n [8.8e-10, 3.88075269535, 7477.522860216],\n [6.1e-10, 6.17558202197, 11087.2851259184],\n [6e-10, 4.34824715818, 6206.8097787158],\n [8.2e-10, 4.59843208943, 9388.0059094152],\n [7.9e-10, 1.63139280394, 4933.2084403326],\n [8.1e-10, 1.55550779371, 9380.9596727172],\n [7.8e-10, 4.20905757519, 5729.506447149],\n [5.8e-10, 5.76889633224, 3634.6210245184],\n [6e-10, 0.93813100594, 12721.572099417],\n [7.1e-10, 6.11408885148, 8662.240323563],\n [5.7e-10, 5.48112524468, 18319.5365848796],\n [7e-10, 0.01749174864, 14945.3161735544],\n [7.4e-10, 1.0997604582, 16460.33352952499],\n [5.6e-10, 1.63036186739, 15720.8387848784],\n [5.5e-10, 4.86788348404, 13095.8426650774],\n [6e-10, 5.93729841267, 12539.853380183],\n [5.4e-10, 0.22608242982, 15110.4661198662],\n [5.4e-10, 2.30250047594, 16062.1845261168],\n [6.4e-10, 2.13513754101, 7875.6718636242],\n [5.9e-10, 5.87963500139, 5331.3574437408],\n [5.8e-10, 2.30546168615, 955.5997416086],\n [4.9e-10, 1.93839278478, 5333.9002410216],\n [5.4e-10, 5.80331607119, 12043.574281889],\n [5.4e-10, 4.44671053809, 4701.1165017084],\n [4.9e-10, 0.30241161485, 6805.6532680852],\n [4.6e-10, 2.76898193028, 6709.6740408674],\n [4.6e-10, 3.98449608961, 98068.53671630539],\n [4.9e-10, 3.72022009896, 12323.4230960088],\n [4.5e-10, 3.30065998328, 22003.9146348698],\n [4.8e-10, 0.71071357303, 6303.4311693902],\n [6.1e-10, 1.66030429494, 6262.300454499],\n [4.7e-10, 1.26317154881, 11919.140866668],\n [5.1e-10, 1.08020906825, 10988.808157535],\n [4.5e-10, 0.89150445122, 51868.2486621788],\n [4.3e-10, 0.57756724285, 24356.7807886416],\n [4.3e-10, 1.61526242998, 6277.552925684],\n [4.5e-10, 2.96132920534, 8982.810669309],\n [4.3e-10, 5.74295325645, 11403.676995575],\n [5.5e-10, 3.14274403422, 33019.0211122046],\n [5.7e-10, 0.06379726305, 15671.0817594066],\n [4.1e-10, 2.53761820726, 6262.7205305926],\n [4e-10, 1.53130436944, 18451.07854656599],\n [5.2e-10, 1.71451922581, 1551.045222648],\n [5.5e-10, 0.89439119424, 11933.3679606696],\n [4.5e-10, 3.88495384656, 60530.4889857418],\n [4e-10, 4.75740908001, 38526.574350872],\n [4e-10, 3.77498297348, 26087.9031415742],\n [3.9e-10, 2.97113832621, 2118.7638603784],\n [4e-10, 3.36050962605, 10021.8372800994],\n [4.7e-10, 1.67051113434, 6303.8512454838],\n [5.2e-10, 5.21827368711, 77713.7714681205],\n [4.7e-10, 4.26356628717, 21424.4666443034],\n [3.7e-10, 1.66712389942, 6819.8803620868],\n [3.7e-10, 0.65746800933, 12029.3471878874],\n [3.5e-10, 3.36255650927, 24072.9214697764],\n [3.6e-10, 0.11087914947, 10344.2950653858],\n [4e-10, 4.14725582115, 2787.0430238574],\n [3.5e-10, 5.93650887012, 31570.7996493912],\n [3.6e-10, 2.15108874765, 30774.5016425748],\n [3.6e-10, 1.75078825382, 16207.886271502],\n [3.4e-10, 2.75708224536, 12139.5535091068],\n [3.4e-10, 6.168913788, 24491.4257925834],\n [3.4e-10, 2.31528650443, 55798.4583583984],\n [3.2e-10, 4.21446357042, 15664.03552270859],\n [3.4e-10, 3.19783054699, 32217.2001810808],\n [3.9e-10, 1.24979117796, 6418.1409300268],\n [3.8e-10, 5.89832942685, 640.8776073822],\n [3.3e-10, 4.80200120107, 16723.350142595],\n [3.2e-10, 1.72442327688, 27433.88921587499],\n [3.5e-10, 4.44608896525, 18202.21671665939],\n [3.1e-10, 4.5279073128, 6702.5604938666],\n [3.4e-10, 3.96287980676, 18216.443810661],\n [3e-10, 5.06259854444, 226858.23855437007],\n [3.4e-10, 1.43910280005, 49515.382508407],\n [3e-10, 0.29303163371, 13521.7514415914],\n [2.9e-10, 2.0263384022, 11609.8625440122],\n [3e-10, 2.5492323024, 9924.8104215106],\n [3.2e-10, 4.91793198558, 11300.5842213564],\n [3e-10, 0.23284423547, 23581.2581773176],\n [2.9e-10, 1.62807736495, 639.897286314],\n [2.8e-10, 3.84568936822, 2699.7348193176],\n [2.9e-10, 1.83149729794, 29822.7832363242],\n [3.3e-10, 4.60320094415, 19004.6479494084],\n [2.7e-10, 1.86151121799, 6288.5987742988],\n [3e-10, 4.4649407224, 36147.4098773004],\n [2.8e-10, 5.19684492912, 5863.5912061162],\n [3.5e-10, 4.52695674113, 36949.2308084242],\n [2.7e-10, 3.52528177609, 10770.8932562618],\n [2.6e-10, 1.48499438453, 11080.1715789176],\n [3.5e-10, 2.82154380962, 19402.7969528166],\n [2.5e-10, 2.46339998836, 6279.4854213396],\n [2.6e-10, 4.97688894643, 16737.5772365966],\n [2.7e-10, 0.408271125, 12964.300703391],\n [2.9e-10, 4.15148654061, 45892.73043315699],\n [2.6e-10, 4.56404104286, 17796.9591667858],\n [2.5e-10, 2.89309528854, 6286.6662786432],\n [2.6e-10, 4.82914580957, 1066.49547719],\n [3.1e-10, 3.93096113738, 29864.334027309],\n [2.4e-10, 6.14987193584, 18606.4989460002],\n [2.4e-10, 3.74225964547, 29026.48522950779],\n [2.5e-10, 5.70460621565, 27707.5424942948],\n [2.5e-10, 5.33928840652, 15141.390794312],\n [2.3e-10, 2.37624087345, 17996.0311682222],\n [2.6e-10, 1.34231351782, 18875.525869774],\n [2.2e-10, 5.5079162612, 6245.0481773556],\n [2.4e-10, 1.33998410121, 19800.9459562248],\n [2.3e-10, 0.2251228089, 6279.7894925736],\n [2.2e-10, 1.17576471775, 11925.2740926006],\n [2.2e-10, 3.5860360664, 6915.8595893046],\n [2.3e-10, 3.21621246666, 6286.3622074092],\n [2.9e-10, 2.09564449439, 15265.8865193004],\n [2.2e-10, 4.74660932338, 28230.18722269139],\n [2.1e-10, 2.30688751432, 5999.2165311262],\n [2.8e-10, 3.92087592807, 18208.349942592],\n [2.1e-10, 3.22643339385, 25934.1243310894],\n [2.1e-10, 3.04956726238, 6566.9351688566],\n [2.7e-10, 5.35645770522, 33794.5437235286],\n [2.5e-10, 5.91542362188, 6489.2613984286],\n [2e-10, 1.52296293311, 135.0650800354],\n [1.9e-10, 1.78134428631, 156137.47598479927],\n [1.9e-10, 0.34388684087, 5327.4761083828],\n [2.6e-10, 3.41701003233, 25287.7237993998],\n [1.9e-10, 2.86664271911, 18422.62935909819],\n [1.9e-10, 4.71432851499, 77690.75950573849],\n [1.9e-10, 2.54227398241, 77736.78343050249],\n [2e-10, 5.91915117116, 48739.859897083]\n ],\n \"2\": [\n [0.00004359385, 5.78455133808, 6283.0758499914],\n [0.00000123633, 5.57935427994, 12566.1516999828],\n [1.2342e-7, 3.14159265359, 0],\n [8.792e-8, 3.62777893099, 77713.7714681205],\n [5.689e-8, 1.86958905084, 5573.1428014331],\n [3.302e-8, 5.47034879713, 18849.2275499742],\n [1.471e-8, 4.47964125007, 5507.5532386674],\n [1.013e-8, 2.81323115556, 5223.6939198022],\n [8.54e-9, 3.107765669, 1577.3435424478],\n [1.102e-8, 2.84173992403, 161000.6857376741],\n [6.48e-9, 5.47348203398, 775.522611324],\n [6.08e-9, 1.37894173533, 6438.4962494256],\n [4.99e-9, 4.4164924225, 6286.5989683404],\n [4.16e-9, 0.90332697974, 10977.078804699],\n [4.04e-9, 3.2056726953, 5088.6288397668],\n [3.51e-9, 1.81081728907, 5486.777843175],\n [4.66e-9, 3.65086758149, 7084.8967811152],\n [4.58e-9, 5.38585314743, 149854.4001348079],\n [3.04e-9, 3.51015066341, 796.2980068164],\n [2.66e-9, 6.17413982699, 6836.6452528338],\n [2.81e-9, 1.8387467254, 4694.0029547076],\n [2.62e-9, 1.41420110644, 2146.1654164752],\n [2.64e-9, 3.14103683911, 71430.69561812909],\n [3.19e-9, 5.35037932146, 3154.6870848956],\n [2.38e-9, 2.17695432424, 155.4203994342],\n [2.29e-9, 4.7596958807, 7234.794256242],\n [2.91e-9, 4.61776401638, 4690.4798363586],\n [2.11e-9, 0.21864885298, 4705.7323075436],\n [2.04e-9, 4.22895113488, 1349.8674096588],\n [1.95e-9, 4.58550676556, 529.6909650946],\n [2.55e-9, 2.81442711144, 1748.016413067],\n [1.82e-9, 5.70454011389, 6040.3472460174],\n [1.8e-9, 6.02147727878, 4292.3308329504],\n [1.86e-9, 1.58690991244, 6309.3741697912],\n [1.67e-9, 2.88802733052, 9437.762934887],\n [1.66e-9, 1.99990574734, 8031.0922630584],\n [1.6e-9, 0.04412738495, 2544.3144198834],\n [1.97e-9, 2.01089431842, 1194.4470102246],\n [1.65e-9, 5.78372596774, 83996.84731811189],\n [2.14e-9, 3.38300910371, 7632.9432596502],\n [1.4e-9, 0.36669664351, 10447.3878396044],\n [1.51e-9, 0.95519595275, 6127.6554505572],\n [1.36e-9, 1.48417295645, 2352.8661537718],\n [1.28e-9, 5.48057748834, 951.7184062506],\n [1.26e-9, 5.26866506592, 6279.5527316424],\n [1.27e-9, 3.77552907014, 6812.766815086],\n [1.03e-9, 4.95897533789, 398.1490034082],\n [1.04e-9, 0.70183576826, 1592.5960136328],\n [1.01e-9, 1.14481598642, 3894.1818295422],\n [1.31e-9, 0.76624310306, 553.5694028424],\n [1.09e-9, 5.41063597567, 6256.7775301916],\n [7.8e-10, 5.84775340741, 242.728603974],\n [9.7e-10, 1.94685257714, 11856.2186514245],\n [1e-9, 5.19725292131, 244287.60000722768],\n [7.6e-10, 0.70480774041, 8429.2412664666],\n [8e-10, 6.18430772683, 1059.3819301892],\n [6.8e-10, 5.29561709093, 14143.4952424306],\n [8.5e-10, 5.39487308005, 25132.3033999656],\n [5.5e-10, 5.16874637579, 7058.5984613154],\n [6.3e-10, 0.48494730699, 801.8209311238],\n [5.8e-10, 4.07254840265, 13367.9726311066],\n [5.1e-10, 3.89696552232, 12036.4607348882],\n [5.1e-10, 5.56335232286, 1990.745017041],\n [6e-10, 2.2504659671, 8635.9420037632],\n [4.9e-10, 5.58163417371, 6290.1893969922],\n [5.1e-10, 3.87240194908, 26.2983197998],\n [5.1e-10, 4.19300909995, 7860.4193924392],\n [4.1e-10, 3.97169191582, 10973.55568635],\n [4.1e-10, 3.5708091923, 7079.3738568078],\n [5.6e-10, 2.76959005761, 90955.5516944961],\n [4.2e-10, 1.91461189163, 7477.522860216],\n [4.2e-10, 0.42775891995, 10213.285546211],\n [4.2e-10, 1.06925480488, 709.9330485583],\n [3.8e-10, 6.17935925345, 9917.6968745098],\n [5e-10, 0.81691517401, 11506.7697697936],\n [5.3e-10, 1.45828359397, 233141.3144043615],\n [3.8e-10, 3.32444534628, 5643.1785636774],\n [4.7e-10, 6.21543665927, 6681.2248533996],\n [3.7e-10, 0.3635930998, 10177.2576795336],\n [4.5e-10, 5.29587706357, 10575.4066829418],\n [3.4e-10, 5.63446915337, 6525.8044539654],\n [3.4e-10, 5.36385158519, 4933.2084403326],\n [3.5e-10, 5.36152295839, 25158.6017197654],\n [4.2e-10, 5.08837645072, 11015.1064773348],\n [4.2e-10, 4.22496037505, 88860.05707098669],\n [3.9e-10, 1.99171699618, 6284.0561710596],\n [2.9e-10, 3.1908862817, 11926.2544136688],\n [2.9e-10, 0.14996158324, 12168.0026965746],\n [3e-10, 1.58346276808, 9779.1086761254],\n [2.6e-10, 4.16210340581, 12569.6748183318],\n [3.6e-10, 2.74684637873, 3738.761430108],\n [2.6e-10, 0.7282491532, 1589.0728952838],\n [3.1e-10, 5.34906371821, 143571.32428481648],\n [2.5e-10, 0.10240267494, 22483.84857449259],\n [3e-10, 3.47110495524, 14945.3161735544],\n [2.6e-10, 3.89359701125, 5753.3848848968],\n [2.4e-10, 1.18744224678, 4535.0594369244],\n [3.3e-10, 2.99317143244, 3930.2096962196],\n [2.4e-10, 1.57253767584, 6496.3749454294],\n [2.4e-10, 3.47434797542, 4136.9104335162],\n [2.2e-10, 3.91230073719, 6275.9623029906],\n [2.5e-10, 4.02978941287, 3128.3887650958],\n [2.3e-10, 1.07724492065, 12721.572099417],\n [2.1e-10, 1.89591807148, 16730.4636895958],\n [2.5e-10, 2.42198937013, 5729.506447149],\n [2e-10, 1.78163489101, 17789.845619785],\n [2.1e-10, 0.49258939822, 29088.811415985],\n [2.6e-10, 4.14947806747, 2388.8940204492],\n [2.7e-10, 2.54785812264, 3496.032826134],\n [2e-10, 4.29944129273, 16858.4825329332],\n [2.1e-10, 5.97796936723, 7.1135470008],\n [1.9e-10, 0.80292033311, 16062.1845261168],\n [2.4e-10, 4.89894141052, 17260.1546546904],\n [2.5e-10, 1.37003752175, 6282.0955289232],\n [2.2e-10, 4.92663152168, 18875.525869774],\n [2.3e-10, 5.68902059771, 16460.33352952499],\n [2.3e-10, 3.03021283729, 66567.48586525429],\n [1.6e-10, 3.89713736666, 5331.3574437408],\n [1.6e-10, 5.68562539832, 12559.038152982],\n [1.6e-10, 3.95085099736, 3097.88382272579],\n [1.6e-10, 3.99041783945, 6283.14316029419],\n [2e-10, 6.106439191, 167283.7615876655],\n [1.5e-10, 4.09775914607, 11712.9553182308],\n [1.6e-10, 5.717699407, 17298.1823273262],\n [1.6e-10, 3.28894009404, 5884.9268465832],\n [1.5e-10, 4.4256424368, 13517.8701062334],\n [1.6e-10, 4.4345208093, 6283.0085396886],\n [1.4e-10, 1.44384279999, 4164.311989613],\n [1.4e-10, 4.47380919159, 11790.6290886588],\n [1.4e-10, 4.77646531825, 7342.4577801806],\n [1.1e-10, 2.56768522896, 5481.2549188676],\n [1.1e-10, 1.514433322, 16200.7727245012],\n [1.1e-10, 0.88708889185, 21228.3920235458],\n [1.4e-10, 4.50116508534, 640.8776073822]\n ],\n \"3\": [\n [0.00000144595, 4.27319433901, 6283.0758499914],\n [6.729e-8, 3.91706261708, 12566.1516999828],\n [7.74e-9, 0, 0],\n [2.47e-9, 3.73021571217, 18849.2275499742],\n [3.6e-10, 2.8008140905, 6286.5989683404],\n [3.3e-10, 5.62990083112, 6127.6554505572],\n [1.8e-10, 3.72826142555, 6438.4962494256],\n [1.6e-10, 4.26011484232, 6525.8044539654],\n [1.4e-10, 3.47817116396, 6256.7775301916],\n [1.2e-10, 3.55747379482, 25132.3033999656],\n [1e-10, 4.43995693209, 4705.7323075436],\n [1e-10, 4.2804525547, 83996.84731811189],\n [9e-11, 5.36457057335, 6040.3472460174],\n [8e-11, 1.78458957263, 5507.5532386674],\n [9e-11, 0.4727519993, 6279.5527316424],\n [9e-11, 1.34741231639, 6309.3741697912],\n [9e-11, 0.77092900708, 5729.506447149],\n [7e-11, 3.50146897332, 7058.5984613154],\n [5e-11, 2.890710617, 775.522611324],\n [6e-11, 2.36514111314, 6836.6452528338]\n ],\n \"4\": [\n [3.858e-8, 2.56389016346, 6283.0758499914],\n [3.06e-9, 2.26911740541, 12566.1516999828],\n [5.3e-10, 3.44031471924, 5573.1428014331],\n [1.5e-10, 2.03136359366, 18849.2275499742],\n [1.3e-10, 2.05688873673, 77713.7714681205],\n [7e-11, 4.4121885448, 161000.6857376741],\n [4e-11, 5.33854414781, 6438.4962494256],\n [6e-11, 3.81514213664, 149854.4001348079],\n [4e-11, 4.26602478239, 6127.6554505572]\n ],\n \"5\": [\n [8.6e-10, 1.21805304895, 6283.0758499914],\n [1.2e-10, 0.65572878044, 12566.1516999828]\n ]\n },\n name: \"earth\",\n type: \"B\"\n};\nexport default m;\n","import _vsop87Bearth from 'astronomia/data/vsop87Bearth'\nexport const vsop87Bearth = _vsop87Bearth\n","import { solstice, julian, planetposition } from 'astronomia'\nimport { vsop87Bearth } from './vsop87Bearth.js'\n\nimport moment from 'moment-timezone'\nimport CalDate from 'caldate'\nimport CalEvent from './CalEvent.js'\n\nconst earth = new planetposition.Planet(vsop87Bearth)\n\nexport default class Equinox extends CalEvent {\n /**\n * @param {object} [opts]\n * @param {string} opts.season - type of season (spring|summer|autumn|winter)\n * @param {number|string} opts.offset - offset in days\n */\n constructor (opts) {\n opts = opts || {}\n super(opts)\n\n this._season = opts.season\n this._timezone = opts.timezone || 'GMT'\n }\n\n inYear (year) {\n let jde\n switch (this._season) {\n case 'march': {\n jde = solstice.march2(year, earth)\n break\n }\n case 'june': {\n jde = solstice.june2(year, earth)\n break\n }\n case 'september': {\n jde = solstice.september2(year, earth)\n break\n }\n case 'december': {\n jde = solstice.december2(year, earth)\n break\n }\n }\n\n const str = new julian.Calendar().fromJDE(jde).toDate().toISOString()\n let date\n if (/^[+-]\\d{2}:\\d{2}?$/.test(this._timezone)) { // for '+08:00' formats\n date = moment(str).utcOffset(this._timezone)\n } else { // for 'Asia/Shanghai' formats\n date = moment(str).tz(this._timezone) // move to timezone\n }\n\n const floorDate = {\n year,\n month: date.month() + 1,\n day: date.date()\n }\n\n const d = new CalDate(floorDate).setOffset(this.offset)\n this.dates.push(d)\n return this\n }\n}\n","import _vsop87Bearth from 'astronomia/data/vsop87Bearth'\nexport const vsop87Bearth = _vsop87Bearth\n","/**\n * @copyright 2016 commenthol\n * @license MIT\n */\n\nimport { base, solstice, solar, moonphase, planetposition, julian } from 'astronomia'\nimport { vsop87Bearth } from './vsop87Bearth.js'\n\nconst earth = new planetposition.Planet(vsop87Bearth)\nconst lunarOffset = moonphase.meanLunarMonth / 2\nconst p = 180 / Math.PI\n\n// Start of Chinese Calendar in 2636 BCE by Chalmers\nconst epochY = -2636\nconst epoch = new julian.CalendarGregorian(epochY, 2, 15).toJDE()\n\nfunction toYear (jde) {\n return new julian.CalendarGregorian().fromJDE(jde).toYear()\n}\n\n// prevent rounding errors\nfunction toFixed (val, e) {\n return parseFloat(val.toFixed(e), 10)\n}\n\nexport default class CalendarChinese {\n /**\n * constructor\n *\n * @param {Number|Array|Object} cycle - chinese 60 year cicle; if `{Array}` than `[cycle, year, ..., day]`\n * @param {Number} year - chinese year of cycle\n * @param {Number} month - chinese month\n * @param {Number} leap - `true` if leap month\n * @param {Number} day - chinese day\n */\n constructor (cycle, year, month, leap, day) {\n this.set(cycle, year, month, leap, day)\n\n this._epochY = epochY\n this._epoch = epoch\n this._cache = { // cache for results\n lon: {},\n sue: {},\n ny: {}\n }\n }\n\n /**\n * set a new chinese date\n *\n * @param {Number|Array|Object} cycle - chinese 60 year cicle; if `{Array}` than `[cycle, year, ..., day]`\n * @param {Number} year - chinese year of cycle\n * @param {Number} month - chinese month\n * @param {Number} leap - `true` if leap month\n * @param {Number} day - chinese day\n */\n set (cycle, year, month, leap, day) {\n if (cycle instanceof CalendarChinese) {\n this.cycle = cycle.cycle\n this.year = cycle.year\n this.month = cycle.month\n this.leap = cycle.leap\n this.day = cycle.day\n } else if (Array.isArray(cycle)) {\n this.cycle = cycle[0]\n this.year = cycle[1]\n this.month = cycle[2]\n this.leap = cycle[3]\n this.day = cycle[4]\n } else {\n this.cycle = cycle\n this.year = year\n this.month = month\n this.leap = leap\n this.day = day\n }\n return this\n }\n\n /**\n * returns chinese date\n * @returns {Array}\n */\n get () {\n return [this.cycle, this.year, this.month, this.leap, this.day]\n }\n\n /**\n * get Gregorian year from Epoch / Cycle\n * @return {Number} year\n */\n yearFromEpochCycle () {\n return this._epochY + (this.cycle - 1) * 60 + (this.year - 1)\n }\n\n /**\n * convert gregorian date to chinese calendar date\n *\n * @param {Number} year - (int) year in Gregorian or Julian Calendar\n * @param {Number} month - (int)\n * @param {Number} day - needs to be in correct (chinese) timezone\n * @return {Object} this\n */\n fromGregorian (year, month, day) {\n const j = this.midnight(new julian.CalendarGregorian(year, month, day).toJDE())\n if (month === 1 && day <= 20) year-- // chinese new year never starts before 20/01\n this._from(j, year)\n return this\n }\n\n /**\n * convert date to chinese calendar date\n *\n * @param {Date} date - javascript date object\n * @return {Object} this\n */\n fromDate (date) {\n const j = this.midnight(new julian.CalendarGregorian().fromDate(date).toJDE())\n this._from(j, date.getFullYear())\n return this\n }\n\n /**\n * convert JDE to chinese calendar date\n *\n * @param {Number} jde - date in JDE\n * @return {Object} this\n */\n fromJDE (jde) {\n const j = this.midnight(jde)\n const gc = new julian.CalendarGregorian().fromJDE(j)\n if (gc.month === 1 && gc.day < 20) gc.year-- // chinese new year never starts before 20/01\n this._from(j, gc.year)\n return this\n }\n\n /**\n * common conversion from JDE, year to chinese date\n *\n * @private\n * @param {Number} j - date in JDE\n * @param {Number} year - gregorian year\n */\n _from (j, year) {\n let ny = this.newYear(year)\n if (ny > j) {\n ny = this.newYear(year - 1)\n }\n let nm = this.previousNewMoon(j)\n if (nm < ny) {\n nm = ny\n }\n\n const years = 1.5 + (ny - this._epoch) / base.BesselianYear\n this.cycle = 1 + Math.trunc((years - 1) / 60)\n this.year = 1 + Math.trunc((years - 1) % 60)\n\n this.month = this.inMajorSolarTerm(nm).term\n const m = Math.round((nm - ny) / moonphase.meanLunarMonth)\n if (m === 0) {\n this.month = 1\n this.leap = false\n } else {\n this.leap = this.isLeapMonth(nm)\n }\n\n if (m > this.month) {\n this.month = m\n } else if (this.leap) {\n this.month--\n }\n\n this.day = 1 + Math.trunc(toFixed(j, 3) - toFixed(nm, 3))\n }\n\n /**\n * convert chinese date to gregorian date\n *\n * @param {Number} [gyear] - (int) gregorian year\n * @return {Object} date in gregorian (preleptic) calendar; Timezone is Standard Chinese / Bejing Time\n * {Number} year - (int)\n * {Number} month - (int)\n * {Number} day - (int)\n */\n toGregorian (gyear) {\n const jde = this.toJDE(gyear)\n const gc = new julian.CalendarGregorian().fromJDE(jde + 0.5) // add 0.5 as day get truncated\n return {\n year: gc.year,\n month: gc.month,\n day: Math.trunc(gc.day)\n }\n }\n\n /**\n * convert chinese date to Date\n *\n * @param {Number} [gyear] - (int) gregorian year\n * @return {Date} javascript date object in gregorian (preleptic) calendar\n */\n toDate (gyear) {\n const jde = this.toJDE(gyear)\n return new julian.CalendarGregorian().fromJDE(toFixed(jde, 4)).toDate()\n }\n\n /**\n * convert chinese date to JDE\n *\n * @param {Number} [gyear] - (int) gregorian year\n * @return {Number} date in JDE\n */\n toJDE (gyear) {\n const years = gyear || this.yearFromEpochCycle()\n const ny = this.newYear(years)\n let nm = ny\n if (this.month > 1) {\n nm = this.previousNewMoon(ny + this.month * 29)\n const st = this.inMajorSolarTerm(nm).term\n const lm = this.isLeapMonth(nm)\n\n if (st > this.month) {\n nm = this.previousNewMoon(nm - 1)\n } else if (st < this.month || (lm && !this.leap)) {\n nm = this.nextNewMoon(nm + 1)\n }\n }\n if (this.leap) {\n nm = this.nextNewMoon(nm + 1)\n }\n const jde = nm + this.day - 1\n return jde\n }\n\n /**\n * timeshift to UTC\n *\n * @param {CalendarGregorian} gcal - gregorian calendar date\n * @return {Number} timeshift in fraction of day\n */\n timeshiftUTC (gcal) {\n if (gcal.toYear() >= 1929) {\n return 8 / 24 // +8:00:00h Standard China time zone (120° East)\n }\n return 1397 / 180 / 24 // +7:45:40h Beijing (116°25´ East)\n }\n\n /**\n * time/date at midnight - truncate `jde` to actual day\n *\n * @param {Number} jde - julian ephemeris day\n * @return {Number} truncated jde\n */\n midnight (jde) {\n const gcal = new julian.CalendarGregorian().fromJDE(jde)\n const ts = 0.5 - this.timeshiftUTC(gcal)\n let mn = Math.trunc(gcal.toJD() - ts) + ts\n mn = gcal.fromJD(mn).toJDE()\n if (toFixed(jde, 5) === toFixed(mn, 5) + 1) {\n return jde\n }\n return mn\n }\n\n /**\n * get major solar term `Z1...Z12` for a given date in JDE\n *\n * @param {Number} jde - date of new moon\n * @returns {Number} major solar term part of that month\n */\n inMajorSolarTerm (jde) {\n const lon = this._cache.lon[jde] || solar.apparentVSOP87(earth, jde).lon\n this._cache.lon[jde] = lon\n const lonDeg = lon * p - 1e-13\n const term = (2 + Math.floor(lonDeg / 30)) % 12 + 1\n return { term, lon: lonDeg }\n }\n\n /**\n * Test if date `jde` is inside a leap month\n * `jde` and previous new moon need to have the same major solar term\n *\n * @param {Number} jde - date of new moon\n * @returns {Boolean} `true` if previous new moon falls into same solar term\n */\n isLeapMonth (jde) {\n const t1 = this.inMajorSolarTerm(jde)\n const next = this.nextNewMoon(this.midnight(jde + lunarOffset))\n const t2 = this.inMajorSolarTerm(next)\n const r = (t1.term === t2.term)\n return r\n }\n\n /**\n * next new moon since `jde`\n *\n * @param {Number} jde - date in julian ephemeris days\n * @return {Number} jde at midnight\n */\n nextNewMoon (jde) {\n let nm = this.midnight(moonphase.newMoon(toYear(jde)))\n let cnt = 0\n while (nm < jde && cnt++ < 4) {\n nm = this.midnight(moonphase.newMoon(toYear(jde + cnt * lunarOffset)))\n }\n return nm\n }\n\n /**\n * next new moon since `jde`\n *\n * @param {Number} jde - date in julian ephemeris days\n * @return {Number} jde at midnight\n */\n previousNewMoon (jde) {\n let nm = this.midnight(moonphase.newMoon(toYear(jde)))\n let cnt = 0\n while (nm > jde && cnt++ < 4) {\n nm = this.midnight(moonphase.newMoon(toYear(jde - cnt * lunarOffset)))\n }\n return nm\n }\n\n /**\n * chinese new year for a given gregorian year\n *\n * @param {Number} gyear - gregorian year (int)\n * @param {Number} jde at midnight\n */\n newYear (gyear) {\n gyear = Math.trunc(gyear)\n if (this._cache.ny[gyear]) return this._cache.ny[gyear]\n\n const sue1 = this._cache.sue[gyear - 1] || solstice.december2(gyear - 1, earth)\n const sue2 = this._cache.sue[gyear] || solstice.december2(gyear, earth)\n this._cache.sue[gyear - 1] = sue1\n this._cache.sue[gyear] = sue2\n\n const m11n = this.previousNewMoon(this.midnight(sue2 + 1))\n const m12 = this.nextNewMoon(this.midnight(sue1 + 1))\n const m13 = this.nextNewMoon(this.midnight(m12 + lunarOffset))\n this.leapSui = Math.round((m11n - m12) / moonphase.meanLunarMonth) === 12\n let ny = m13\n\n if (this.leapSui && (this.isLeapMonth(m12) || this.isLeapMonth(m13))) {\n ny = this.nextNewMoon(this.midnight(m13 + moonphase.meanLunarMonth / 2))\n }\n this._cache.ny[gyear] = ny\n return ny\n }\n\n /**\n * get solar term from solar longitude\n *\n * @param {Number} term - jiéqì solar term 1 .. 24\n * @param {Number} [gyear] - (int) gregorian year\n * @returns {Number} jde at midnight\n */\n solarTerm (term, gyear) {\n if (gyear && term <= 3) gyear--\n const years = gyear || this.yearFromEpochCycle()\n const lon = (((term + 20) % 24) * 15) % 360\n let st = solstice.longitude(years, earth, lon / p)\n st = this.midnight(st)\n return st\n }\n\n /**\n * get major solar term\n *\n * @param {Number} term - zhōngqì solar term Z1 .. Z12\n * @param {Number} [gyear] - (int) gregorian year\n * @returns {Number} jde at midnight\n */\n majorSolarTerm (term, gyear) {\n return this.solarTerm(term * 2, gyear)\n }\n\n /**\n * get minor solar term\n *\n * @param {Number} term - jiéqì solar term J1 .. J12\n * @param {Number} [gyear] - (int) gregorian year\n * @returns {Number} jde at midnight\n */\n minorSolarTerm (term, gyear) {\n return this.solarTerm(term * 2 - 1, gyear)\n }\n\n /**\n * Qı̄ngmíng - Pure brightness Festival\n *\n * @param {Number} [gyear] - (int) gregorian year\n * @returns {Number} jde at midnight\n */\n qingming (gyear) {\n return this.solarTerm(5, gyear)\n }\n}\n","/**\n * @copyright 2016 commenthol\n * @license MIT\n */\n\nimport { julian } from 'astronomia'\nimport CalendarChinese from './Chinese.js'\n\n// Start of Korean Calendar in 2333 BCE (단군기원 http://ko.wikipedia.org/wiki/단기)\nconst epochY = -2333\nconst epoch = new julian.CalendarGregorian(epochY, 1, 27).toJDE()\n\n/**\n * change of timezone shifts during the last century\n * @see https://en.wikipedia.org/wiki/Time_in_South_Korea\n */\nconst UTC_DATES = [\n {\n date: new Date('1961-10-09T15:00:00.000Z'), // 1961-10-10T00:00:00+0900\n shift: 9 / 24\n }, // +9:00:00h (135° East)\n {\n date: new Date('1954-03-20T15:30:00.000Z'), // 1954-03-21T00:00:00+0830\n shift: 8.5 / 24\n },\n {\n date: new Date('1911-12-31T15:00:00.000Z'), // 1912-01-01T00:00:00+0900\n shift: 9 / 24\n },\n {\n date: new Date('1908-03-31T15:30:00.000Z'), // 1908-04-01T00:00:00+0830\n shift: 8.5 / 24\n }\n]\n\nexport default class CalendarKorean extends CalendarChinese {\n constructor (cycle, year, month, leap, day) {\n super(cycle, year, month, leap, day)\n\n this._epochY = epochY\n this._epoch = epoch\n }\n\n /**\n * timeshift to UTC\n *\n * @param {CalendarGregorian} gcal - gregorian calendar date\n * @return {Number} timeshift in fraction of day\n */\n timeshiftUTC (gcal) {\n const date = gcal.toDate()\n for (const i in UTC_DATES) {\n if (date >= UTC_DATES[i].date) {\n return UTC_DATES[i].shift\n }\n }\n return 3809 / 450 / 24 // +8:27:52h Seoul City Hall 126°58'E\n }\n}\n","/**\n * @copyright 2016 commenthol\n * @license MIT\n */\n\nimport CalendarChinese from './Chinese.js'\n\nexport default class CalendarVietnamese extends CalendarChinese {\n /**\n * timeshift to UTC\n *\n * @param {CalendarGregorian} gcal - gregorian calendar date\n * @return {Number} timeshift in fraction of day\n */\n timeshiftUTC (gcal) {\n if (gcal.toYear() >= 1968) {\n return 7 / 24 // +7:00:00h\n }\n return 8 / 24 // +8:00:00h Standard China time zone (120° East)\n }\n}\n","/**\n * @copyright 2016 commenthol\n * @license MIT\n */\n\nimport CalendarChinese from './Chinese.js'\n\n/**\n * @see http://law.e-gov.go.jp/htmldata/M19/M19CO051.html\n */\nconst UTC_DATES = [\n {\n date: new Date('1888-02-11T15:00:00.000Z'), // 1888-02-12T00:00:00+0900\n shift: 9 / 24\n } // +9:00:00h (135° East) Japanese standard meridian\n]\n\n/**\n * Note: I could not find details about the epoch(s) for the year zero of the\n * Japanese calendar dating before 1873. Therefore this calendar uses (wrongly)\n * the Chinese epoch.\n *\n * According to <https://en.wikipedia.org/wiki/History_of_Japan> the eras are:\n *\n * Yayoi 300 BC – 250 AD\n * Kofun 250 – 538\n * Asuka 538 – 710\n * Nara 710 – 794\n * Heian 794 – 1185\n * Kamakura 1185 – 1333\n * Kenmu Restoration 1333 – 1336\n * Muromachi 1336 – 1573\n * Azuchi–Momoyama 1568 – 1603\n * Edo 1603 – 1868\n * Meiji 1868 – 1912\n * Taishō 1912 – 1926\n * Shōwa 1926 – 1989\n * Heisei 1989 – present\n *\n * Unfortunately the linking from era to calendar era (especially to the Chinese\n * pre 1873 one) is unknown to me.\n */\n\nexport default class CalendarJapanese extends CalendarChinese {\n /**\n * timeshift to UTC\n *\n * @param {CalendarGregorian} gcal - gregorian calendar date\n * @return {Number} timeshift in fraction of day\n */\n timeshiftUTC (gcal) {\n const date = gcal.toDate()\n for (const i in UTC_DATES) {\n if (date >= UTC_DATES[i].date) {\n return UTC_DATES[i].shift\n }\n }\n return 4193 / 450 / 24 // +9:19:04h (139°46'E)\n }\n}\n","import {\n CalendarChinese,\n CalendarKorean,\n CalendarVietnamese\n} from 'date-chinese'\nimport CalEvent from './CalEvent.js'\nimport CalDate from 'caldate'\n\nexport default class Chinese extends CalEvent {\n /**\n * @param {object} [opts]\n */\n constructor (opts) {\n opts = opts || {}\n super(opts)\n switch (opts.fn) {\n case 'chinese':\n this.cal = new CalendarChinese()\n break\n case 'korean':\n this.cal = new CalendarKorean()\n break\n case 'vietnamese':\n this.cal = new CalendarVietnamese()\n break\n }\n }\n\n inYear (year) {\n let d\n let jde\n let date\n const opts = this.opts\n if (opts.solarterm) {\n jde = this.cal.solarTerm(opts.solarterm, year)\n date = this.cal.fromJDE(jde).toGregorian()\n d = new CalDate(date).setOffset(opts.day - 1)\n } else {\n this.cal.set(opts.cycle, opts.year, opts.month, opts.leapMonth, opts.day)\n jde = this.cal.toJDE(year)\n date = this.cal.fromJDE(jde).toGregorian()\n d = new CalDate(date)\n }\n\n this.dates.push(d)\n return this\n }\n}\n","/**\n * bengali names were taken from https://github.com/nuhil/bangla-calendar - MIT licensed\n */\n\nconst monthNames = ['বৈশাখ', 'জ্যৈষ্ঠ', 'আষাঢ়', 'শ্রাবণ', 'ভাদ্র', 'আশ্বিন', 'কার্তিক', 'অগ্রহায়ণ', 'পৌষ', 'মাঘ', 'ফাল্গুন', 'চৈত্র']\nconst weekDays = ['রবিবার', 'সোমবার', 'মঙ্গলবার', 'বুধবার', 'বৃহস্পতিবার', 'শুক্রবার', 'শনিবার']\nconst seasonNames = ['গ্রীষ্ম', 'বর্ষা', 'শরৎ', 'হেমন্ত', 'শীত', 'বসন্ত']\n\nconst digits = ['০', '১', '২', '৩', '৪', '৫', '৬', '৭', '৮', '৯']\n\nlet banglas\n\nconst createBanglas = () => {\n banglas = digits.reduce((o, c, i) => {\n o[c] = i\n return o\n }, {})\n}\n\nexport const digitToBangla = number => String(number).replace(/\\d/g, digit => digits[digit])\n\nexport const banglaToDigit = bangla => {\n if (!banglas) createBanglas() // memoize\n const month = monthNames.indexOf(bangla)\n const str = month !== -1\n ? month + 1\n : String(bangla).replace(/./g, bangla => {\n const r = banglas[bangla]\n return r !== undefined ? r : bangla\n })\n return Number(str)\n}\n\nexport const weekDay = day => weekDays[day]\n\nexport const monthName = month => monthNames[month - 1]\n\nexport const seasonName = month => seasonNames[Math.floor((month - 1) / 2)] // ('পৌষ' + 'মাঘ') = 'শীত'. Every consecutive two index in 'banglaMonths' indicates a single index in 'banglaSeasons'.\n","/**\n * @copyright 2018-present commenthol\n * @license MIT\n */\n\nimport {\n banglaToDigit,\n digitToBangla,\n weekDay,\n monthName,\n seasonName\n} from './convert.js'\n\nconst YEAR0 = 593\nconst MILLISECONDS_PER_DAY = 86400000\nconst monthDaysNorm = [31, 31, 31, 31, 31, 30, 30, 30, 30, 30, 30, 30]\nconst monthDaysLeap = [31, 31, 31, 31, 31, 30, 30, 30, 30, 30, 31, 30]\n\nconst isLeapYear = (year) => ((year % 4 === 0) && (year % 100 !== 0)) || (year % 400 === 0)\nconst UTC6 = 6 // timezone offset UTC+6\nconst toEpoch = year => Date.UTC(year, 3, 13, UTC6)\n\nexport class CalendarBengaliRevised {\n /**\n * @constructor\n * @param {Number|String} year - bengali year\n * @param {Number|String} month - (int) 1...12\n * @param {Number|String} day - 1...31\n * @return {Object} this\n */\n constructor (year, month, day) {\n Object.assign(this, {\n year: banglaToDigit(year),\n month: banglaToDigit(month) || 1,\n day: banglaToDigit(day) || 1\n })\n }\n\n /**\n * convert gregorian date to bengali calendar date\n * @param {Number} year - (int) year in Gregorian Calendar\n * @param {Number} month - (int)\n * @param {Number} day - (int)\n * @return {Object} this\n */\n fromGregorian (year, month, day) {\n const monthDays = isLeapYear(year)\n ? monthDaysLeap\n : monthDaysNorm\n\n let _year = year\n if (month < 4 || (month === 4 && day < 14)) {\n _year -= 1\n }\n this.year = _year - YEAR0\n\n const date = Date.UTC(year, month - 1, day, UTC6)\n let days = Math.floor((date - toEpoch(_year)) / MILLISECONDS_PER_DAY)\n\n for (let i = 0; i < monthDays.length; i++) {\n if (days <= monthDays[i]) {\n this.month = i + 1\n break\n }\n days -= monthDays[i]\n }\n\n this.day = days\n return this\n }\n\n /**\n * convert date to bengali calendar date\n * @param {Date} date - javascript date object - uses local date\n * @return {Object} this\n */\n fromDate (date) {\n return this.fromGregorian(date.getFullYear(), date.getMonth() + 1, date.getDate())\n }\n\n /**\n * convert bengali date to gregorian date\n * @return {Object} date in gregorian (preleptic) calendar\n * {Number} year - (int)\n * {Number} month - (int) 1...12\n * {Number} day - (int) 1...31\n */\n toGregorian () {\n const date = this.toDate()\n return {\n year: date.getUTCFullYear(),\n month: date.getUTCMonth() + 1,\n day: date.getUTCDate()\n }\n }\n\n /**\n * convert bengali date to Date\n * @return {Date} javascript date object in gregorian (preleptic) calendar\n */\n toDate () {\n const year = this.year + YEAR0\n const epoch = toEpoch(year)\n const _year = this.month > 10 ? year + 1 : year\n const monthDays = isLeapYear(_year)\n ? monthDaysLeap\n : monthDaysNorm\n\n let days = this.day\n for (let i = 0; i < this.month - 1; i++) {\n days += monthDays[i]\n }\n const date = new Date(days * MILLISECONDS_PER_DAY + epoch)\n return date\n }\n\n /**\n * format date in bengali\n * @param {String} formatStr - string formatter\n *\n * | Input | Description |\n * | ----- | ------------ |\n * | Y | Year with any number of digits and sign |\n * | Q | Season Name |\n * | M | Month number |\n * | MMMM | Month name |\n * | D | Day of month |\n * | dddd | Day name |\n *\n * @return {String}\n */\n format (formatStr) {\n formatStr = formatStr || 'D M, Y'\n if (/dddd/.test(formatStr)) {\n const date = this.toDate()\n formatStr = formatStr.replace(/dddd/g, weekDay(date.getUTCDay()))\n }\n return formatStr\n .replace(/Y/g, digitToBangla(this.year))\n .replace(/Q/g, seasonName(this.month))\n .replace(/MMMM/g, monthName(this.month))\n .replace(/M/g, digitToBangla(this.month))\n .replace(/D/g, digitToBangla(this.day))\n }\n}\n\nexport default CalendarBengaliRevised\n","import CalBengali from 'date-bengali-revised'\nimport CalDate from 'caldate'\nimport CalEvent from './CalEvent.js'\n\nexport default class BengaliRevised extends CalEvent {\n /**\n * @param {object} [opts]\n */\n constructor (opts) {\n opts = opts || {}\n super(opts)\n }\n\n inYear (year) {\n const opts = this.opts\n const date = new CalBengali(year - 593, opts.month, opts.day).toGregorian()\n const d = new CalDate(date)\n this.dates.push(d)\n return this\n }\n}\n","/* eslint spaced-comment:0 */\n\nimport CalEvent from './CalEvent.js'\nimport Easter from './Easter.js'\n\n// --- pre-processor instructions for prepin ---\n// #ifndef nojulian\nimport Julian from './Julian.js'\n// #endif\n// #ifndef nohebrew\nimport Hebrew from './Hebrew.js'\n// #endif\n// #ifndef noislamic\nimport Hijri from './Hijri.js'\n// #endif\n// #ifndef nojalaali\nimport Jalaali from './Jalaali.js'\n// #endif\n// #ifndef noequinox\nimport Equinox from './Equinox.js'\n// #endif\n// #ifndef nochinese\nimport Chinese from './Chinese.js'\n// #endif\n// #ifndef nobengali\nimport BengaliRevised from './BengaliRevised.js'\n// #endif\n\nexport default class CalEventFactory {\n constructor (opts) {\n switch (opts.fn) {\n case 'easter':\n return new Easter(opts)\n // #ifndef nojulian\n case 'julian':\n return new Julian(opts)\n // #endif\n // #ifndef nohebrew\n case 'hebrew':\n return new Hebrew(opts)\n // #endif\n // #ifndef noislamic\n case 'islamic':\n return new Hijri(opts)\n // #endif\n // #ifndef nojalaali\n case 'jalaali':\n return new Jalaali(opts)\n // #endif\n // #ifndef noequinox\n case 'equinox':\n return new Equinox(opts)\n // #endif\n // #ifndef nochinese\n case 'chinese':\n case 'korean':\n case 'vietnamese':\n return new Chinese(opts)\n // #endif\n // #ifndef nobengali\n case 'bengali-revised':\n return new BengaliRevised(opts)\n // #endif\n default:\n return new CalEvent(opts)\n }\n }\n}\n","import Parser from './Parser.js'\nimport Rule from './Rule.js'\nimport PostRule from './PostRule.js'\nimport CalEventFactory from './CalEventFactory.js'\n\n/**\n * handles one rule\n */\nexport default class DateFn {\n /**\n * @param {string} rule - unparsed rule\n * @param {array} holidays - all holidays rules (required for bridge day calculations)\n */\n constructor (ruleStr, holidays) {\n const parser = new Parser()\n this.ruleStr = ruleStr\n this.rules = parser.parse(ruleStr)\n this.ok = !parser.error\n this.holidays = holidays\n this.opts = holidays ? holidays[ruleStr] : {}\n this.event = undefined\n this.cache = new Map()\n }\n\n /**\n * @param {number} year\n * @returns {this}\n */\n inYear (year) {\n if (this.cache.has(year)) {\n this.event = this.cache.get(year)\n return this\n }\n\n let ruleFn // current rule\n const postProc = new PostRule(this.ruleStr, this.opts, this.holidays)\n\n this.rules.forEach((rule) => {\n if (rule.fn) {\n const calEvent = new CalEventFactory(rule)\n .inYear(year - 1) // run over neighboring dates to catch overlaps\n .inYear(year)\n .inYear(year + 1)\n postProc.push(calEvent)\n ruleFn = new Rule(calEvent)\n } else {\n if (ruleFn.resolve(rule)) {\n postProc.resolve(rule, year)\n }\n }\n })\n\n const event = postProc.getEvent(year)\n this.cache.set(year, event)\n\n this.event = event\n return this\n }\n\n get (timezone) {\n return this.event.get(timezone)\n }\n}\n","import { toNumber } from './internal/utils.js'\n\n/**\n * Holiday Rule\n * Apart from `rule` and `name` other options may be set\n * @constructor\n * @param {object} ruleObj\n * @param {string} ruleObj.rule - the rule string\n * @param {string|object} [ruleObj.name] - the name of the holiday, plain or with i18n\n * @param {string} [ruleObj.type] - type of holiday\n * @param {boolean} [ruleObj.substitute] - substitute holiday\n * @param {object[]} [ruleObj.active] - active `[{from?: str, to?: str}]`\n */\nexport class HolidayRule {\n constructor (ruleObj) {\n const { rule, fn, opts, ...other } = ruleObj\n Object.assign(this, { rule, ...other })\n }\n\n /**\n * disable rule in year (month)\n * @param {number} year\n * @param {number} [month] - 1..12\n */\n disableIn (year, month) {\n if (!toNumber(year)) return\n month = month < 1 && month > 12\n ? undefined\n : month < 10 ? '0' + Number(month) : month\n const dateStr = [year, month].filter(Boolean).join('-')\n this.disable = (this.disable || []).concat(dateStr).sort()\n }\n}\n","/**\n * @copyright 2016- (c) commenthol\n * @license ISC\n */\n\nimport CalDate from 'caldate'\nimport _ from './utils.js'\nimport { toYear, toDate } from './internal/utils.js'\nimport Data from './Data.js'\nimport DateFn from './DateFn.js'\nimport { HolidayRule } from './HolidayRule.js'\n\n// priority in ascending order (low ... high)\nconst TYPES = ['observance', 'optional', 'school', 'bank', 'public']\n\n/**\n * @class\n * @param {Object} data - holiday data object - see data/holidays.json\n * @param {String|Object} country - if object, use `{ country: {String}, state: {String}, region: {String} }`\n * @param {String} [state] - specifies state\n * @param {String} [region] - specifies region\n * @param {Object} [opts] - options\n * @param {Array|String} opts.languages - set language(s) with ISO 639-1 shortcodes\n * @param {String} opts.timezone - set timezone\n * @param {Array} opts.types - holiday types to consider\n * @example\n * ```js\n * new Holiday(data, 'US', 'la', 'no') // is the same as\n * new Holiday(data, 'us.la.no') // is the same as\n * new Holiday(data, { country: 'us', state: 'la', region: 'no'})\n * ```\n */\nexport class Holidays {\n constructor (data, country, state, region, opts) {\n if (!data) {\n throw new TypeError('need holiday data')\n }\n this._data = data\n this.init(country, state, region, opts)\n }\n\n /**\n * initialize holidays for a country/state/region\n * @param {String|Object} country - if object, use `{ country: {String}, state: {String}, region: {String} }`\n * @param {String} [state] - specifies state\n * @param {String} [region] - specifies region\n * @param {Object} [opts] - options\n * @param {Array|String} [opts.languages] - set language(s) with ISO 639-1 shortcodes\n * @param {String} [opts.timezone] - set timezone\n * @param {Array} [opts.types] - holiday types to consider; priority is in ascending order (low ... high)\n */\n init (...args) {\n const [country, state, region, opts] = getArgs(...args)\n\n // reset settings\n this.__conf = null\n this.__types = opts.types && opts.types.length ? opts.types : TYPES\n this.holidays = {}\n this.setLanguages()\n\n this.__conf = Data.splitName(country, state, region)\n this.__data = new Data(opts.data || this._data, this.__conf)\n\n if (opts.languages) {\n this.setLanguages(opts.languages)\n } else {\n this.setLanguages(this.__data.getLanguages(this.__conf))\n }\n\n const holidays = this.__data.getRules()\n if (holidays) {\n this.__timezone = opts.timezone || this.__data.getTimezones()[0]\n Object.keys(holidays).forEach((rule) => {\n this.setHoliday(rule, holidays[rule])\n })\n return true\n }\n }\n\n /**\n * set (custom) holiday\n * @throws {TypeError}\n * @param {String} rule - rule for holiday (check supported grammar) or date in ISO Format, e.g. 12-31 for 31st Dec\n * @param {Object|String} [opts] - holiday options (if String, then opts is used as name)\n * @param {Object} opts.name - translated holiday names e.g. `{ en: 'name', es: 'nombre', ... }`\n * @param {String} opts.type - holiday type `public|bank|school|observance`\n * @returns {Boolean} `true` if holiday could be set\n */\n setHoliday (rule, opts) {\n // remove days\n if (opts === false) {\n if (this.holidays[rule]) {\n this.holidays[rule] = false\n return true\n }\n return false\n }\n\n // assign a name to rule\n if (!opts || typeof opts === 'string') {\n opts = opts || rule\n const lang = this.getLanguages()[0]\n opts = _.set({ type: 'public' }, ['name', lang], opts)\n }\n\n // convert active properties to Date\n if (opts.active) {\n if (!Array.isArray(opts.active)) {\n throw TypeError('.active is not of type Array: ' + rule)\n }\n opts.active = opts.active.map((a) => {\n const from = toDate(a.from)\n const to = toDate(a.to)\n if (!(from || to)) {\n throw TypeError('.active needs .from or .to property: ' + rule)\n }\n return { from, to }\n })\n }\n\n // check for supported type\n if (!this.__types.includes(opts.type)) {\n return false\n }\n\n this.holidays[rule] = opts\n\n const fn = new DateFn(rule, this.holidays)\n if (fn.ok) {\n this.holidays[rule].fn = fn\n return true\n } else {\n // throw Error('could not parse rule: ' + rule) // NEXT\n console.error('could not parse rule: ' + rule) // eslint-disable-line\n }\n return false\n }\n\n /**\n * get all holidays for `year` with names using preferred `language`\n * @param {String|Date} [year] - if omitted, the current year is chosen\n * @param {String} [language] - ISO 639-1 code for language\n * @returns {Holiday[]} of found holidays in given year sorted by Date:\n * ```\n * {String} date - ISO Date String of (start)-date in local format\n * {Date} start - start date of holiday\n * {Date} end - end date of holiday\n * {String} name - name of holiday using `language` (if available)\n * {String} type - type of holiday `public|bank|school|observance`\n * ```\n */\n getHolidays (year, language) {\n year = toYear(year)\n\n const langs = this.getLanguages()\n if (language) {\n langs.unshift(language)\n }\n\n const startSorter = (a, b) => (+a.start) - (+b.start)\n const typeIndex = (a) => this.__types.indexOf(a.type)\n const typeSorter = (a, b) => typeIndex(b) - typeIndex(a)\n const ruleIndex = (a) => /substitutes|and if /.test(a.rule) ? 1 : 0\n const ruleLength = (a) => String(a.rule || '').length\n const ruleSorter = (a, b) => ruleIndex(a) - ruleIndex(b) || ruleLength(a) - ruleLength(b)\n\n const filterMap = {}\n\n const arr = Object.keys(this.holidays)\n .reduce((arr, rule) => {\n if (this.holidays[rule].fn) {\n this._dateByRule(year, rule).forEach((o) => {\n arr.push({ ...this._translate(o, langs), rule })\n })\n }\n return arr\n }, [])\n // sort by date and type to filter by duplicate\n .sort((a, b) => startSorter(a, b) || typeSorter(a, b) || ruleSorter(a, b))\n .filter(item => {\n const hash = item.name + (+item.start)\n if (!filterMap[hash]) {\n filterMap[hash] = true\n return true\n }\n return false\n })\n\n return arr\n }\n\n /**\n * check whether `date` is a holiday or not\n * @param {Date|String} [date]\n * @returns {Holiday[]|false} holiday:\n * ```\n * {String} date - ISO Date String of (start)-date in local format\n * {Date} start - start date of holiday\n * {Date} end - end date of holiday\n * {String} name - name of holiday using `language` (if available)\n * {String} type - type of holiday `public|bank|school|observance`\n * ```\n */\n isHoliday (date) {\n date = date ? new Date(date) : new Date()\n const d = new CalDate()\n d.fromTimezone(date, this.__timezone)\n const year = d.year\n const rules = Object.keys(this.holidays)\n const days = []\n for (const rule of rules) {\n const hd = [].concat(this._dateByRule(year, rule))\n for (const hdrule of hd) {\n if (hdrule && date >= hdrule.start && date < hdrule.end) {\n days.push(this._translate(hdrule))\n }\n }\n }\n return days.length ? days : false\n }\n\n /**\n * set or update rule\n * @param {HolidayRule|object} holidayRule\n * @returns {boolean} `true` if holiday could be set, returns `true`\n */\n setRule (holidayRule) {\n const { rule, ...opts } = holidayRule\n return this.setHoliday(rule, opts)\n }\n\n /**\n * unset rule\n * @param {String} rule - rule for holiday (check supported grammar) or date in ISO Format, e.g. 12-31 for 31st Dec\n * @returns {boolean} `true` if holiday could be set, returns `true`\n */\n unsetRule (rule) {\n return this.setHoliday(rule, false)\n }\n\n /**\n * get available rules for selected country, (state, region)\n * @returns {HolidayRule[]}\n */\n getRules () {\n return Object.entries(this.holidays).map(([ruleStr, obj]) => {\n return new HolidayRule({ ...obj, rule: ruleStr })\n })\n }\n\n /**\n * get rule for selected country, (state, region)\n * @param {String} rule - rule for holiday (check supported grammar) or date in ISO Format, e.g. 12-31 for 31st Dec\n * @returns {HolidayRule|undefined}\n */\n getRule (rule) {\n if (this.holidays[rule]) {\n return new HolidayRule({ ...this.holidays[rule], rule })\n }\n }\n\n /**\n * Query for available Countries, States, Regions\n * @param {String} [country]\n * @param {String} [state]\n * @param {String} [lang] - ISO-639 language shortcode\n * @returns {Object} shortcode, name pairs of supported countries, states, regions\n */\n query (country, state, lang) {\n const o = Data.splitName(country, state)\n if (!o || !o.country) {\n return this.getCountries(lang)\n } else if (!o.state) {\n return this.getStates(o.country, lang)\n } else {\n return this.getRegions(o.country, o.state, lang)\n }\n }\n\n /**\n * get supported countries\n * @param {String} [lang] - ISO-639 language shortcode\n * @returns {Object} shortcode, name pairs of supported countries\n * ```js\n * { AD: 'Andorra',\n * US: 'United States' }\n * ```\n */\n getCountries (lang) {\n return this.__data.getCountries(lang)\n }\n\n /**\n * get supported states for a given country\n * @param {String} country - shortcode of country\n * @param {String} [lang] - ISO-639 language shortcode\n * @returns {Object} shortcode, name pairs of supported states, regions\n * ```js\n * { al: 'Alabama', ...\n * wy: 'Wyoming' }\n * ```\n */\n getStates (country, lang) {\n return this.__data.getStates(country, lang)\n }\n\n /**\n * get supported regions for a given country, state\n * @param {String} country - shortcode of country\n * @param {String} state - shortcode of state\n * @param {String} [lang] - ISO-639 language shortcode\n * @returns {Object} shortcode, name pairs of supported regions\n * ```js\n * { no: 'New Orleans' }\n * ```\n */\n getRegions (country, state, lang) {\n return this.__data.getRegions(country, state, lang)\n }\n\n /**\n * sets timezone\n * @param {String} timezone - see `moment-timezone`\n * if `timezone` is `undefined`, then all dates are considered local dates\n */\n setTimezone (timezone) {\n this.__timezone = timezone\n }\n\n /**\n * get timezones for country, state, region\n * @returns {Array} of {String}s containing the timezones\n */\n getTimezones () {\n if (this.__data) {\n return this.__data.getTimezones()\n }\n }\n\n /**\n * set language(s) for holiday names\n * @param {Array|String} language\n * @returns {Array} set languages\n */\n setLanguages (language) {\n if (typeof language === 'string') {\n language = [language]\n }\n const tmp = {}\n this.__languages = [].concat(\n language,\n (this.__conf ? this.__data.getLanguages(this.__conf) : []),\n 'en'\n ).filter(function (l) { // filter out duplicates\n if (!l || tmp[l]) {\n return false\n }\n tmp[l] = 1\n return true\n })\n }\n\n /**\n * get languages for selected country, state, region\n * @returns {Array} containing ISO 639-1 language shortcodes\n */\n getLanguages () {\n return this.__languages\n }\n\n /**\n * get default day off as weekday\n * @returns {String} weekday of day off\n */\n getDayOff () {\n if (this.__conf) {\n return this.__data.getDayOff()\n }\n }\n\n /**\n * @private\n * @param {Number} year\n * @param {String} rule\n */\n _dateByRule (year, rule) {\n const _rule = this.holidays[rule]\n const dates = _rule.fn.inYear(year)\n .get(this.__timezone)\n .map((date) => {\n const odate = _.merge({},\n _.omit(date, ['substitute']),\n _.omit(_rule, ['fn', 'enable', 'disable', 'substitute', 'active'])\n )\n if (_rule.substitute && date.substitute) {\n odate.substitute = true\n }\n return odate\n })\n return dates\n }\n\n /**\n * translate holiday object `o` to a language\n * @private\n * @param {Object} o\n * @param {Array} langs - languages for translation\n * @returns {Object} translated holiday object\n */\n _translate (o, langs) {\n if (o && typeof o.name === 'object') {\n langs = langs || this.getLanguages()\n for (const lang of langs) {\n const name = o.name[lang]\n if (name) {\n o.name = name\n break\n }\n }\n if (o.substitute) {\n for (const lang of langs) {\n const subst = this.__data.getSubstitueNames()\n const name = subst[lang]\n if (name) {\n o.name += ' (' + name + ')'\n break\n }\n }\n }\n }\n return o\n }\n}\n\nfunction getArgs (country, state, region, opts) {\n if (typeof region === 'object') {\n opts = region\n region = null\n } else if (typeof state === 'object') {\n opts = state\n state = null\n } else if (typeof country === 'object' && !country.country) {\n opts = country\n }\n opts = opts || {}\n return [country, state, region, opts]\n}\n","export const data = {\n version: '2022-11-20',\n license: 'CC-BY-SA-3',\n holidays: {\n AD: {\n names: {\n ca: 'Andorra',\n es: 'Andorra',\n en: 'Andorra'\n },\n dayoff: 'sunday',\n langs: [\n 'ca',\n 'es'\n ],\n zones: [\n 'Europe/Andorra'\n ],\n days: {\n '01-01': {\n _name: '01-01'\n },\n '01-06': {\n _name: '01-06'\n },\n '03-14': {\n _name: 'Constitution Day'\n },\n '05-01': {\n _name: '05-01'\n },\n '08-15': {\n _name: '08-15'\n },\n '09-08': {\n name: {\n en: 'Our Lady of Meritxell',\n es: 'Nuestra Sra. De Meritxell',\n ca: 'Mare de Déu de Meritxell'\n }\n },\n '11-01': {\n _name: '11-01'\n },\n '12-08': {\n _name: '12-08'\n },\n '12-24': {\n type: 'bank',\n _name: '12-24'\n },\n '12-25': {\n _name: '12-25'\n },\n '12-26': {\n _name: '12-26'\n },\n 'easter -47': {\n _name: 'easter -47'\n },\n 'easter -3 14:00': {\n type: 'bank',\n _name: 'easter -3'\n },\n 'easter -2': {\n _name: 'easter -2'\n },\n easter: {\n _name: 'easter'\n },\n 'easter 1': {\n _name: 'easter 1'\n },\n 'easter 49': {\n _name: 'easter 49'\n },\n 'easter 50': {\n _name: 'easter 50'\n }\n },\n regions: {\n '07': {\n name: 'Andorra la Vella',\n days: {\n '1st saturday in August P3D': {\n name: {\n en: 'Andorra La Vella Festival',\n ca: 'Andorra La Vella Festival'\n }\n }\n }\n }\n }\n },\n AE: {\n names: {\n en: 'United Arab Emirates',\n ar: 'دولة الإمارات العربية المتحدة'\n },\n langs: [\n 'ar'\n ],\n zones: [\n 'Asia/Dubai'\n ],\n dayoff: '',\n days: {\n '01-01': {\n _name: '01-01',\n name: {\n ar: 'رأس السنة الميلادية'\n }\n },\n '12-02': {\n name: {\n en: 'National Day',\n ar: 'اليوم الوطني'\n }\n },\n '1 Muharram': {\n _name: '1 Muharram'\n },\n '1 Shawwal P3D': {\n _name: '1 Shawwal'\n },\n '10 Dhu al-Hijjah P3D': {\n _name: '10 Dhu al-Hijjah'\n },\n '27 Rajab': {\n _name: '27 Rajab'\n },\n '1 Ramadan': {\n _name: '1 Ramadan'\n },\n '12 Rabi al-awwal': {\n _name: '12 Rabi al-awwal'\n }\n }\n },\n AG: {\n names: {\n en: 'Antigua & Barbuda'\n },\n langs: [\n 'en'\n ],\n dayoff: 'sunday',\n weekend: [\n 'saturday',\n 'sunday'\n ],\n zones: [\n 'America/Port_of_Spain'\n ],\n days: {\n '01-01 and if sunday then next monday': {\n substitute: true,\n _name: '01-01'\n },\n 'easter -2': {\n _name: 'easter -2'\n },\n easter: {\n _name: 'easter',\n type: 'observance'\n },\n 'easter 1': {\n _name: 'easter 1'\n },\n '05-01': {\n _name: '05-01'\n },\n 'easter 49': {\n _name: 'easter 49',\n type: 'observance'\n },\n 'easter 50': {\n _name: 'easter 50'\n },\n '08-01': {\n name: {\n en: \"J'Ouvert Morning\"\n }\n },\n '08-02': {\n name: {\n en: 'Last Lap'\n }\n },\n '11-01 if saturday,sunday then next monday': {\n _name: 'Independence Day'\n },\n '12-09': {\n name: {\n en: 'V.C Bird Day'\n }\n },\n '12-25 and if saturday then next monday if sunday then next tuesday': {\n _name: '12-25',\n substitute: true\n },\n '12-26 and if sunday then next monday': {\n _name: '12-26',\n substitute: true\n }\n },\n regions: {\n 10: {\n name: 'Barbuda',\n days: {\n 'easter 47 P4D': {\n name: {\n en: 'Caribana'\n },\n type: 'observance'\n }\n }\n }\n }\n },\n AI: {\n names: {\n en: 'Anguilla'\n },\n langs: [\n 'en'\n ],\n dayoff: 'sunday',\n weekend: [\n 'saturday',\n 'sunday'\n ],\n zones: [\n 'America/Port_of_Spain'\n ],\n days: {\n '01-01': {\n _name: '01-01'\n },\n '03-02': {\n name: {\n en: 'James Ronald Webster Day'\n }\n },\n 'easter -2': {\n _name: 'easter -2'\n },\n easter: {\n _name: 'easter',\n type: 'observance'\n },\n 'easter 1': {\n _name: 'easter 1'\n },\n '05-01': {\n _name: '05-01'\n },\n '05-30': {\n name: {\n en: 'Anguilla Day'\n }\n },\n 'easter 49': {\n _name: 'easter 49',\n type: 'observance'\n },\n 'easter 50': {\n _name: 'easter 50'\n },\n '2nd monday in June': {\n name: {\n en: 'Celebration of the Birthday of Her Majesty the Queen'\n }\n },\n '1st monday in August': {\n name: {\n en: 'August Monday'\n }\n },\n '1st thursday in August': {\n name: {\n en: 'August Thursday'\n }\n },\n '1st friday in August': {\n _name: 'Constitution Day'\n },\n '12-19': {\n name: {\n en: 'National Heroes and Heroines Day'\n }\n },\n '12-25 and if saturday then next monday if sunday then next tuesday': {\n _name: '12-25',\n substitute: true\n },\n '12-26 and if sunday then next monday': {\n _name: '12-26',\n substitute: true\n }\n }\n },\n AL: {\n names: {\n sq: 'Shqipëri',\n en: 'Albania'\n },\n dayoff: 'sunday',\n langs: [\n 'sq',\n 'es'\n ],\n zones: [\n 'Europe/Tirane'\n ],\n days: {\n '01-01 and if sunday then next tuesday': {\n _name: '01-01',\n substitute: true\n },\n '01-02 and if sunday then next monday': {\n name: {\n sq: 'Festa e Vitit të Ri',\n en: 'New Year Holiday'\n },\n substitute: true\n },\n '03-02': {\n name: {\n sq: 'Dita e Besëlidhjes së Lezhës',\n en: 'League of Lezhë day'\n },\n type: 'observance'\n },\n '03-07': {\n name: {\n sq: 'Dita e Mësuesit',\n en: \"Teacher's Day\"\n },\n type: 'observance'\n },\n '03-08': {\n _name: 'Mothers Day',\n type: 'observance'\n },\n '03-14 and if sunday then next monday': {\n name: {\n sq: 'Dita e Verës',\n en: 'Summer Day'\n },\n substitute: true\n },\n '03-22 and if sunday then next monday': {\n name: {\n sq: 'Dita e Sulltan Nevruzit',\n en: \"Sultan Nevruz's Day\"\n },\n substitute: true\n },\n '04-01': {\n _name: '04-01',\n type: 'observance'\n },\n easter: {\n name: {\n sq: 'Pashkët Katolike',\n en: 'Catholic Easter'\n }\n },\n 'easter 1': {\n name: {\n sq: 'Pashkët Katolike',\n en: 'Catholic Easter'\n }\n },\n orthodox: {\n name: {\n sq: 'Pashkët Ortodokse',\n en: 'Orthodox Easter'\n }\n },\n 'orthodox 1': {\n name: {\n sq: 'Pashkët Ortodokse',\n en: 'Orthodox Easter'\n }\n },\n '05-01 and if sunday then next monday': {\n _name: '05-01',\n substitute: true\n },\n '06-01': {\n name: {\n sq: 'Dita Ndërkombëtare e Fëmijëve',\n en: \"Children's Day\"\n },\n type: 'observance'\n },\n '10-19 and if sunday then next monday': {\n name: {\n sq: 'Dita e Nënë Terezës',\n en: 'Mother Teresa Day'\n },\n substitute: true,\n active: [\n {\n from: 2004\n }\n ]\n },\n '11-22': {\n name: {\n sq: 'Dita e Alfabetit',\n en: 'Alphabet Day'\n },\n type: 'observance'\n },\n '11-28 and if sunday then next monday': {\n _name: 'Independence Day',\n substitute: true\n },\n '11-29 and if sunday then next monday': {\n _name: 'Liberation Day',\n substitute: true\n },\n '12-08 and if sunday then next monday': {\n name: {\n sq: 'Dita Kombëtare e Rinisë',\n en: 'Youth Day'\n },\n substitute: true,\n active: [\n {\n from: 2010\n }\n ]\n },\n '12-24': {\n _name: '12-24',\n type: 'bank'\n },\n '12-25 and if sunday then next monday': {\n _name: '12-25',\n substitute: true\n },\n '1 Shawwal': {\n _name: '1 Shawwal'\n },\n '10 Dhu al-Hijjah': {\n _name: '10 Dhu al-Hijjah'\n }\n },\n regions: {}\n },\n AM: {\n names: {\n hy: 'Հայաստան',\n en: 'Armenia'\n },\n dayoff: 'sunday',\n langs: [\n 'hy'\n ],\n zones: [\n 'Asia/Yerevan'\n ],\n days: {\n '12-31': {\n _name: '12-31'\n },\n '01-01 P2D': {\n _name: '01-01'\n },\n '01-03 P3D': {\n name: {\n en: 'Pre-Christmas holidays',\n hy: 'Նախածննդյան տոներ'\n }\n },\n '01-06': {\n _name: '12-25'\n },\n '01-28': {\n name: {\n en: 'Army Day',\n hy: 'Բանակի օր'\n }\n },\n '02-21': {\n name: {\n en: 'Mother Language Day',\n hy: 'Մայրենի լեզվի օր'\n },\n type: 'observance'\n },\n 'easter -52': {\n name: {\n en: 'St. Vartan the good work and the duty days',\n hy: 'Սուրբ Վարդանանց տոն՝ բարի գործի եւ ազգային տուրքի օր'\n },\n type: 'observance'\n },\n '03-08': {\n _name: '03-08'\n },\n '04-07': {\n name: {\n en: 'Motherhood and Beauty Day',\n hy: 'Մայրության, գեղեցկության եւ սիրո տոն'\n },\n type: 'observance'\n },\n '04-24': {\n _name: 'Mothers Day'\n },\n '05-01': {\n _name: '05-01'\n },\n '05-08': {\n name: {\n en: 'Yerkrapah Day',\n hy: 'Երկրապահի օր'\n },\n type: 'observance'\n },\n '05-09': {\n name: {\n en: 'Victory and Peace Day',\n hy: 'Հաղթանակի եւ Խաղաղության տոն'\n }\n },\n '05-28': {\n name: {\n en: 'Republic Day',\n hy: 'Հանրապետության օր'\n }\n },\n '06-01': {\n name: {\n en: 'The day of protection of children rights',\n hy: 'Երեխաների իրավունքների պաշտպանության օր'\n },\n type: 'observance'\n },\n '07-05': {\n _name: 'Constitution Day'\n },\n '09-01': {\n name: {\n en: 'Knowledge, Literacy and Education Day',\n hy: 'Գիտելիքի, գրի եւ դպրության օր'\n },\n type: 'observance'\n },\n '09-21': {\n _name: 'Independence Day'\n },\n '2nd saturday in October': {\n name: {\n en: \"Translator's Day\",\n hy: 'Թարգմանչաց տոն'\n },\n type: 'observance'\n },\n '12-07': {\n name: {\n en: 'Earthquake Remembrance Day',\n hy: 'Երկրաշարժի զոհերի հիշատակի օր'\n },\n type: 'observance'\n }\n }\n },\n AO: {\n names: {\n pt: 'Angola',\n en: 'Angola'\n },\n dayoff: 'sunday',\n zones: [\n 'Africa/Lagos'\n ],\n langs: [\n 'pt'\n ],\n days: {\n '01-01': {\n _name: '01-01'\n },\n '02-04': {\n name: {\n pt: 'Dia do Início da Luta Armada de Libertação Nacional',\n en: 'Liberation Day'\n }\n },\n 'easter -47': {\n _name: 'easter -47'\n },\n '03-08': {\n name: {\n pt: 'Dia Internacional da Mulher',\n en: \"International Woman's Day\"\n }\n },\n 'easter -2': {\n _name: 'easter -2'\n },\n easter: {\n _name: 'easter',\n type: 'observance'\n },\n '04-04': {\n name: {\n pt: 'Dia da Paz',\n en: 'Peace Day'\n }\n },\n '05-01': {\n _name: '05-01'\n },\n '1st sunday in May': {\n _name: 'Mothers Day',\n type: 'observance'\n },\n '09-17': {\n name: {\n pt: 'Fundador da Nação e Dia dos Heróis Nacionais',\n en: 'National Hero Day'\n }\n },\n '11-02': {\n _name: '11-02'\n },\n '11-11': {\n _name: 'Independence Day'\n },\n '12-25': {\n _name: '12-25'\n }\n }\n },\n AR: {\n names: {\n es: 'Argentina',\n en: 'Argentina'\n },\n dayoff: 'sunday',\n langs: [\n 'es'\n ],\n zones: [\n 'America/Argentina/Buenos_Aires',\n 'America/Argentina/Cordoba',\n 'America/Argentina/Salta',\n 'America/Argentina/Jujuy',\n 'America/Argentina/Tucuman',\n 'America/Argentina/Catamarca',\n 'America/Argentina/La_Rioja',\n 'America/Argentina/San_Juan',\n 'America/Argentina/Mendoza',\n 'America/Argentina/San_Luis',\n 'America/Argentina/Rio_Gallegos',\n 'America/Argentina/Ushuaia'\n ],\n days: {\n '01-01': {\n _name: '01-01'\n },\n 'substitutes 01-01 if tuesday then previous monday if thursday then next friday': {\n _name: 'Bridge Day',\n disable: [\n 2015\n ]\n },\n 'easter -48': {\n _name: 'easter -48'\n },\n 'easter -47': {\n _name: 'easter -47'\n },\n '03-24': {\n name: {\n en: 'Day of Remembrance for Truth and Justice',\n es: 'Día de la Memoria por la Verdad y la Justicia'\n }\n },\n 'substitutes 03-24 if tuesday then previous monday if thursday then next friday': {\n _name: 'Bridge Day'\n },\n '2020-03-30': {\n _name: 'Bridge Day'\n },\n 'easter -3': {\n _name: 'easter -3'\n },\n 'easter -2': {\n _name: 'easter -2'\n },\n '04-02': {\n name: {\n en: 'Day of the veterans and the fallen in Malvinas War',\n es: 'Día del Veterano y de los Caídos en la Guerra de Malvinas'\n }\n },\n 'substitutes 04-02 if tuesday then previous monday if thursday then next friday': {\n _name: 'Bridge Day'\n },\n '05-01': {\n _name: '05-01'\n },\n 'substitutes 05-01 if tuesday then previous monday if thursday then next friday': {\n _name: 'Bridge Day'\n },\n '05-25': {\n name: {\n en: 'Day of the First National Government',\n es: 'Primer Gobierno Patrio'\n }\n },\n 'substitutes 05-25 if tuesday then previous monday if thursday then next friday': {\n _name: 'Bridge Day'\n },\n '06-20': {\n name: {\n en: 'National Flag Day',\n es: 'Día de la Bandera'\n }\n },\n 'substitutes 06-20 if tuesday then previous monday if thursday then next friday': {\n _name: 'Bridge Day'\n },\n '07-09': {\n _name: 'Independence Day'\n },\n 'substitutes 07-09 if tuesday then previous monday if thursday then next friday if saturday then previous friday': {\n _name: 'Bridge Day',\n disable: [\n 2015,\n 2022\n ]\n },\n '3rd monday in August': {\n name: {\n en: 'Anniversary of the death of General José de San Martín',\n es: 'Día del Libertador José de San Martín'\n }\n },\n '10-12 if tuesday,wednesday then previous monday if thursday,friday,saturday,sunday then next monday': {\n name: {\n en: 'Day of Respect for Cultural Diversity',\n es: 'Día del Respeto a la Diversidad Cultural'\n }\n },\n 'substitutes 10-12 if monday,tuesday,wednesday then previous friday': {\n _name: 'Bridge Day',\n disable: [\n 2015,\n 2016,\n 2020\n ]\n },\n '11-20 if tuesday,wednesday then previous monday if friday then next monday': {\n name: {\n en: 'Day of National Sovereignty',\n es: 'Día de la Soberanía nacional'\n }\n },\n 'substitutes 11-20 if saturday,sunday then next monday': {\n _name: 'Bridge Day',\n disable: [\n 2016\n ]\n },\n '12-08': {\n _name: '12-08'\n },\n 'substitutes 12-08 if tuesday then previous monday if thursday then next friday': {\n _name: 'Bridge Day'\n },\n '12-24 12:00': {\n _name: '12-24',\n type: 'optional'\n },\n 'substitutes 12-24 if tuesday then previous monday': {\n _name: 'Bridge Day'\n },\n '12-25': {\n _name: '12-25'\n },\n 'substitutes 12-25 if tuesday then previous monday if thursday then next friday': {\n _name: 'Bridge Day'\n },\n '12-31 12:00': {\n _name: '12-31',\n type: 'optional'\n }\n }\n },\n AS: {\n names: {\n en: 'American Samoa'\n },\n dayoff: 'sunday',\n zones: [\n 'Pacific/Pago_Pago'\n ],\n langs: [\n 'en'\n ],\n _days: [\n 'US'\n ],\n days: {\n '3rd monday in February': {\n name: {\n en: \"Washington's Birthday\"\n }\n },\n '03-17': false,\n '04-15 if friday then next monday if saturday,sunday then next tuesday': false,\n '04-17 and if sunday then next monday': {\n name: {\n en: 'American Samoa Flag Day'\n },\n substitute: true\n },\n '07-16': {\n name: {\n en: \"Manu'a Cession Day\"\n },\n type: 'optional',\n note: 'Goverment offices closed'\n },\n '2nd sunday in October': {\n name: {\n en: 'White Sunday'\n },\n type: 'observance',\n note: 'christian'\n },\n '12-24 12:00': {\n _name: '12-24',\n type: 'bank'\n },\n '12-31 12:00': {\n _name: '12-31',\n type: 'bank'\n }\n }\n },\n AT: {\n names: {\n 'de-at': 'Österreich',\n en: 'Austria'\n },\n dayoff: 'sunday',\n zones: [\n 'Europe/Vienna'\n ],\n langs: [\n 'de-at',\n 'de'\n ],\n days: {\n '01-01': {\n _name: '01-01'\n },\n '01-06': {\n _name: '01-06'\n },\n 'easter -2 prior to 2019': {\n _name: 'easter -2',\n type: 'optional'\n },\n 'easter -1': {\n _name: 'easter -1',\n type: 'observance'\n },\n easter: {\n _name: 'easter'\n },\n 'easter 1': {\n _name: 'easter 1'\n },\n '05-01': {\n name: {\n 'de-at': 'Staatsfeiertag'\n }\n },\n '2nd sunday in May': {\n _name: 'Mothers Day',\n type: 'observance'\n },\n 'easter 39': {\n _name: 'easter 39'\n },\n 'easter 49': {\n _name: 'easter 49'\n },\n 'easter 50': {\n _name: 'easter 50'\n },\n 'easter 60': {\n _name: 'easter 60'\n },\n '08-15': {\n _name: '08-15'\n },\n '10-26': {\n _name: 'National Holiday'\n },\n '11-01': {\n _name: '11-01'\n },\n '12-08': {\n _name: '12-08'\n },\n '12-24 14:00 if sunday then 00:00': {\n _name: '12-24',\n type: 'bank'\n },\n '12-25': {\n _name: '12-25'\n },\n '12-26': {\n _name: '12-26'\n },\n '12-31 14:00 if sunday then 00:00': {\n _name: '12-31',\n type: 'bank'\n }\n },\n states: {\n 1: {\n name: 'Burgenland',\n days: {\n '11-11': {\n name: {\n 'de-at': 'Martinstag'\n }\n }\n }\n },\n 2: {\n names: {\n de: 'Kärnten',\n en: 'Carinthia'\n },\n days: {\n '03-19': {\n _name: '03-19'\n },\n '10-10': {\n name: {\n 'de-at': 'Tag der Volksabstimmung'\n }\n }\n }\n },\n 3: {\n names: {\n de: 'Niederösterreich',\n en: 'Lower Austria'\n },\n days: {\n '11-15': {\n name: {\n 'de-at': 'Leopold'\n }\n }\n }\n },\n 4: {\n names: {\n de: 'Oberösterreich',\n en: 'Upper Austria'\n },\n days: {\n '05-04': {\n name: {\n 'de-at': 'Florian'\n }\n }\n }\n },\n 5: {\n names: {\n de: 'Land Salzburg',\n en: 'Salzburg'\n },\n days: {\n '09-24': {\n name: {\n 'de-at': 'Rupert'\n }\n }\n }\n },\n 6: {\n names: {\n de: 'Steiermark',\n en: 'Styria'\n },\n days: {\n '03-19': {\n _name: '03-19'\n }\n }\n },\n 7: {\n names: {\n de: 'Tirol',\n en: 'Tyrol'\n },\n days: {\n '03-19': {\n _name: '03-19'\n }\n }\n },\n 8: {\n name: 'Vorarlberg',\n days: {\n '03-19': {\n _name: '03-19'\n }\n }\n },\n 9: {\n names: {\n de: 'Wien',\n en: 'Vienna'\n },\n days: {\n '11-15': {\n name: {\n 'de-at': 'Leopold'\n }\n }\n }\n }\n }\n },\n AU: {\n names: {\n en: 'Australia'\n },\n dayoff: 'sunday',\n langs: [\n 'en'\n ],\n zones: [\n 'Australia/Sydney',\n 'Australia/Lord_Howe',\n 'Antarctica/Macquarie',\n 'Australia/Hobart',\n 'Australia/Currie',\n 'Australia/Melbourne',\n 'Australia/Broken_Hill',\n 'Australia/Brisbane',\n 'Australia/Lindeman',\n 'Australia/Adelaide',\n 'Australia/Darwin',\n 'Australia/Perth',\n 'Australia/Eucla'\n ],\n days: {\n '01-01 and if saturday,sunday then next monday': {\n _name: '01-01'\n },\n '01-26 if saturday,sunday then next monday': {\n substitute: true,\n name: {\n en: 'Australia Day'\n }\n },\n 'easter -2': {\n _name: 'easter -2'\n },\n 'easter -1': {\n _name: 'easter -1'\n },\n easter: {\n _name: 'easter'\n },\n 'easter 1': {\n _name: 'easter 1'\n },\n '04-25': {\n name: {\n en: 'Anzac Day'\n }\n },\n '2nd sunday in May': {\n _name: 'Mothers Day',\n type: 'observance'\n },\n '1st sunday in September': {\n _name: 'Fathers Day',\n type: 'observance'\n },\n '12-25 and if saturday then next monday if sunday then next tuesday': {\n substitute: true,\n _name: '12-25'\n },\n '12-26 and if saturday then next monday if sunday then next tuesday': {\n substitute: true,\n _name: '12-26'\n },\n '2022-09-22': {\n name: {\n en: 'National Day of Mourning for Queen Elizabeth II'\n }\n }\n },\n states: {\n ACT: {\n name: 'Australian Capital Territory',\n zones: [\n 'Australia/Sydney'\n ],\n days: {\n '2nd monday in March': {\n name: {\n en: 'Canberra Day'\n }\n },\n '04-25': false,\n '04-25 if sunday then next monday': {\n substitute: true,\n name: {\n en: 'Anzac Day'\n }\n },\n '2020-04-27': {\n name: {\n en: 'Declared public holiday'\n },\n type: 'public'\n },\n 'monday after 05-27': {\n name: {\n en: 'Reconciliation Day'\n }\n },\n '2nd monday in June': {\n name: {\n en: \"Queen's Birthday\"\n }\n },\n '1st monday in October': {\n name: {\n en: 'Labour Day'\n }\n }\n }\n },\n NSW: {\n name: 'New South Wales',\n zones: [\n 'Australia/Sydney'\n ],\n days: {\n '2nd monday in June': {\n name: {\n en: \"Queen's Birthday\"\n }\n },\n '1st monday in August': {\n name: {\n en: 'Bank Holiday'\n },\n type: 'bank'\n },\n '1st monday in October': {\n name: {\n en: 'Labour Day'\n }\n }\n }\n },\n NT: {\n name: 'Northern Territory',\n zones: [\n 'Australia/Darwin'\n ],\n days: {\n easter: false,\n '04-25': false,\n '04-25 if sunday then next monday': {\n substitute: true,\n name: {\n en: 'Anzac Day'\n }\n },\n '1st monday in May': {\n name: {\n en: 'May Day'\n }\n },\n '2nd monday in June': {\n name: {\n en: \"Queen's Birthday\"\n }\n },\n '1st monday in August': {\n name: {\n en: 'Picnic Day'\n }\n },\n '1st monday in October': false,\n '12-24 19:00': {\n _name: '12-24'\n },\n '12-25 and if saturday then next monday if sunday then next tuesday': false,\n '12-25 if saturday then next monday if sunday then next tuesday': {\n substitute: true,\n _name: '12-25'\n },\n '12-26 and if saturday then next monday if sunday then next tuesday': false,\n '12-26 if saturday then next monday if sunday then next tuesday': {\n substitute: true,\n _name: '12-26'\n },\n '12-31 19:00': {\n _name: '12-31'\n }\n }\n },\n QLD: {\n name: 'Queensland',\n zones: [\n 'Australia/Brisbane',\n 'Australia/Lindeman'\n ],\n days: {\n '04-25': false,\n '04-25 if sunday then next monday': {\n substitute: true,\n name: {\n en: 'Anzac Day'\n }\n },\n '1st monday in May': {\n name: {\n en: 'Labour Day'\n }\n },\n '2nd monday in June': false,\n '1st monday in October': {\n name: {\n en: \"Queen's Birthday\"\n }\n },\n '12-24 18:00': {\n _name: '12-24'\n }\n }\n },\n SA: {\n name: 'South Australia',\n zones: [\n 'Australia/Adelaide'\n ],\n days: {\n easter: false,\n '2nd monday in March': {\n name: {\n en: 'Adelaide Cup Day'\n }\n },\n '2nd monday in June': {\n name: {\n en: \"Queen's Birthday\"\n }\n },\n '1st monday in October': {\n name: {\n en: 'Labour Day'\n }\n },\n '12-24 19:00': {\n _name: '12-24'\n },\n '12-25 and if saturday then next monday if sunday then next tuesday': false,\n '12-25 if saturday then next monday if sunday then next tuesday': {\n substitute: true,\n _name: '12-25'\n },\n '12-26 and if saturday then next monday if sunday then next tuesday': false,\n '12-26 if saturday then next monday if sunday then next tuesday': {\n substitute: true,\n name: 'Proclamation Day'\n },\n '12-31 19:00': {\n _name: '12-31'\n }\n }\n },\n TAS: {\n name: 'Tasmania',\n zones: [\n 'Australia/Hobart'\n ],\n days: {\n '01-01 and if saturday,sunday then next monday': false,\n '01-01 if saturday then next monday if sunday then next tuesday': {\n substitute: true,\n _name: '01-01'\n },\n '2nd monday in March': {\n name: {\n en: 'Eight Hours Day'\n }\n },\n 'easter -1': false,\n easter: false,\n 'easter +2': {\n name: 'Easter Tuesday',\n type: 'optional',\n note: 'Public Service employees or contract dependent'\n },\n '2nd monday in June': {\n name: {\n en: \"Queen's Birthday\"\n }\n },\n '1st monday in October': false,\n '12-26 and if saturday then next monday if sunday then next tuesday': false,\n '12-26 if saturday then next monday if sunday then next tuesday': {\n substitute: true,\n _name: '12-26'\n }\n }\n },\n VIC: {\n name: 'Victoria',\n zones: [\n 'Australia/Melbourne'\n ],\n days: {\n '2nd monday in March': {\n name: {\n en: 'Labour Day'\n }\n },\n '2nd monday in June': {\n name: {\n en: \"Queen's Birthday\"\n }\n },\n '1st monday in October': false,\n '1st friday before October': {\n name: {\n en: 'AFL Grand Final Friday'\n },\n note: 'Date might differ as dependent on AFL schedule'\n },\n '1st tuesday in November': {\n name: {\n en: 'Melbourne Cup'\n }\n }\n }\n },\n WA: {\n name: 'Western Australia',\n zones: [\n 'Australia/Perth',\n 'Australia/Eucla'\n ],\n days: {\n '1st monday in March': {\n name: {\n en: 'Labour Day'\n }\n },\n 'easter -1': false,\n easter: false,\n '04-25': false,\n '04-25 and if saturday,sunday then next monday': {\n substitute: true,\n name: {\n en: 'Anzac Day'\n }\n },\n '1st monday in June': {\n name: {\n en: 'Western Australia Day'\n }\n },\n '2nd monday in June': false,\n 'monday before October': {\n name: {\n en: \"Queen's Birthday\"\n },\n note: 'Might be on a different day; is proclaimed by Governor'\n },\n '1st monday in October': false\n }\n }\n }\n },\n AW: {\n names: {\n pap: 'Aruba',\n nl: 'Aruba',\n en: 'Aruba'\n },\n dayoff: 'sunday',\n zones: [\n 'America/Curacao'\n ],\n langs: [\n 'pap',\n 'nl'\n ],\n days: {\n '01-01': {\n _name: '01-01'\n },\n '01-25': {\n name: {\n pap: 'Dia di Betico',\n nl: 'Herdenking G. F. Croes',\n en: 'Betico Croes Day'\n }\n },\n 'easter -48': {\n _name: 'easter -48'\n },\n '03-18 and if saturday then previous friday if sunday then next monday': {\n substitute: true,\n name: {\n pap: 'Dia di Himno y Bandera',\n nl: 'Herdenking Vlag en Volkslied',\n en: 'National Anthem and Flag Day'\n }\n },\n 'easter -2': {\n _name: 'easter -2'\n },\n easter: {\n _name: 'easter',\n type: 'observance'\n },\n 'easter 1': {\n _name: 'easter 1'\n },\n '04-27': {\n name: {\n pap: 'Aña di Rey',\n nl: 'Koningsdag',\n en: 'Kings Day'\n }\n },\n '05-01 if sunday then next monday': {\n _name: '05-01'\n },\n '06-24': {\n name: {\n pap: 'Dera Gai',\n nl: 'Dera Gai',\n en: 'Dera Gai'\n },\n type: 'observance'\n },\n 'easter 39': {\n _name: 'easter 39'\n },\n '12-05': {\n name: {\n nl: 'Sinterklaasavond',\n en: \"St. Nicholas' Eve\"\n },\n type: 'observance'\n },\n '12-25': {\n _name: '12-25'\n },\n '12-26': {\n _name: '12-26'\n }\n }\n },\n AX: {\n names: {\n sv: 'Landskapet Åland',\n en: 'Åland Islands'\n },\n dayoff: 'sunday',\n zones: [\n 'Europe/Helsinki'\n ],\n langs: [\n 'sv'\n ],\n days: {\n '01-01': {\n _name: '01-01'\n },\n '01-06': {\n _name: '01-06'\n },\n '03-30': {\n name: {\n sv: 'Ålands demilitariseringsdag',\n en: 'Demilitarization Day'\n }\n },\n 'easter -2': {\n _name: 'easter -2'\n },\n easter: {\n _name: 'easter',\n type: 'observance'\n },\n 'easter 1': {\n _name: 'easter 1'\n },\n '05-01': {\n _name: '05-01'\n },\n 'easter 39': {\n _name: 'easter 39'\n },\n 'easter 49': {\n _name: 'easter 49',\n type: 'observance'\n },\n '06-09': {\n name: {\n sv: 'Självstyrelsedagen',\n en: 'Autonomy Day'\n }\n },\n '3rd friday after 06-01 12:00': {\n name: {\n sv: 'Midsommarafton',\n en: 'Midsummer Eve'\n }\n },\n '3rd saturday after 06-01': {\n name: {\n sv: 'Midsommardagen',\n en: 'Midsummer Day'\n }\n },\n '12-06': {\n _name: 'Independence Day'\n },\n '12-24 12:00': {\n _name: '12-24',\n type: 'bank'\n },\n '12-25': {\n _name: '12-25'\n },\n '12-26': {\n _name: '12-26'\n },\n '12-31 12:00': {\n _name: '12-31',\n type: 'bank'\n }\n }\n },\n AZ: {\n names: {\n az: 'Azərbaycan Respublikası',\n en: 'Azerbaijan'\n },\n dayoff: 'sunday',\n weekend: [\n 'saturday',\n 'sunday'\n ],\n zones: [\n 'Asia/Baku'\n ],\n langs: [\n 'az'\n ],\n days: {\n '01-01 and if saturday then next monday if sunday then next tuesday': {\n substitute: true,\n _name: '01-01'\n },\n '01-02 and if saturday then next monday if sunday then next tuesday': {\n substitute: true,\n _name: '01-01'\n },\n '01-20': {\n name: {\n az: 'Qara Yanvar',\n en: \"Martyrs' Day\"\n },\n type: 'observance'\n },\n '03-08 and if saturday,sunday then next monday': {\n substitute: true,\n _name: '03-08'\n },\n '03-20': {\n name: {\n az: 'Novruz',\n en: 'Spring Festival'\n },\n active: [\n {\n from: 2011\n }\n ]\n },\n '05-09 and if saturday,sunday then next monday': {\n substitute: true,\n name: {\n az: 'Faşizm üzərində qələbə günü',\n en: 'Day of Victory over Fascism'\n }\n },\n '05-28 and if saturday,sunday then next monday': {\n substitute: true,\n name: {\n az: 'Respublika günü',\n en: 'Republic Day'\n }\n },\n '06-15 and if saturday,sunday then next monday': {\n substitute: true,\n name: {\n az: 'Azərbaycan xalqının Milli Qurtuluş günü',\n en: 'National Salvation Day'\n }\n },\n '06-26 and if saturday,sunday then next monday': {\n substitute: true,\n name: {\n az: 'Azərbaycan Respublikasının Silahlı Qüvvələri günü',\n en: 'Azerbaijan Armed Forces Day'\n }\n },\n '10-18 and if saturday,sunday then next monday': {\n substitute: true,\n name: {\n az: 'Dövlət Müstəqilliyi günü',\n en: 'Independence Day'\n }\n },\n '11-09 and if saturday,sunday then next monday': {\n substitute: true,\n name: {\n az: 'Dövlət Bayrağı günü',\n en: 'Flag Day'\n }\n },\n '11-12': {\n name: {\n az: 'Konstitusiya günü',\n en: 'Constitution Day'\n }\n },\n '11-17': {\n name: {\n az: 'Milli Dirçəliş günü',\n en: 'National Revival Day'\n }\n },\n '12-31 and if saturday,sunday then next monday': {\n substitute: true,\n name: {\n az: 'Dünya azərbaycanlıların həmrəyliyi günü',\n en: 'International Solidarity Day of Azerbaijanis'\n }\n },\n '1 Shawwal and if saturday then next monday if sunday then next tuesday': {\n substitute: true,\n _name: '1 Shawwal'\n },\n '2 Shawwal and if saturday then next monday if sunday then next tuesday': {\n substitute: true,\n _name: '1 Shawwal'\n },\n '10 Dhu al-Hijjah and if saturday then next monday if sunday then next tuesday': {\n substitute: true,\n _name: '10 Dhu al-Hijjah'\n },\n '11 Dhu al-Hijjah and if saturday then next monday if sunday then next tuesday': {\n substitute: true,\n _name: '10 Dhu al-Hijjah'\n }\n }\n },\n BA: {\n names: {\n bs: 'Bosna i Hercegovina',\n sr: 'Боснa и Херцеговина',\n hr: 'Bosna i Hercegovina',\n en: 'Bosnia and Herzegovina'\n },\n langs: [\n 'bs',\n 'sr',\n 'hr'\n ],\n zones: [\n 'Europe/Belgrade'\n ],\n dayoff: 'sunday',\n days: {\n '01-01 and if sunday then next tuesday': {\n _name: '01-01',\n substitute: true\n },\n '01-02 and if sunday then next monday': {\n name: {\n en: '2nd day of the New Year',\n bs: 'Drugi dan Nove Godine'\n },\n substitute: true\n },\n '05-01 and if sunday then next tuesday': {\n _name: '05-01',\n substitute: true\n },\n '05-02 and if sunday then next monday': {\n name: {\n en: '2nd day of the Labour Day',\n bs: 'Drugi dan Dana rada'\n },\n substitute: true\n },\n '01-06': {\n _name: '01-06'\n },\n easter: {\n _name: 'easter'\n },\n 'easter 1': {\n _name: 'easter 1'\n },\n 'easter 60': {\n _name: 'easter 60'\n },\n '08-15': {\n _name: '08-15'\n },\n '11-01': {\n _name: '11-01'\n },\n '11-02': {\n _name: '11-02'\n },\n '12-25': {\n _name: '12-25'\n },\n '12-26': {\n _name: '12-26'\n },\n 'julian 01-01': {\n _name: 'julian 01-01'\n },\n orthodox: {\n _name: 'orthodox'\n },\n 'julian 08-15': {\n _name: '08-15',\n note: 'orthodox'\n },\n 'julian 12-25': {\n _name: 'julian 12-25'\n },\n '1 Muharram': {\n _name: '1 Muharram'\n },\n '12 Rabi al-awwal': {\n _name: '12 Rabi al-awwal'\n },\n '10 Dhu al-Hijjah P4D': {\n _name: '10 Dhu al-Hijjah'\n },\n '1 Shawwal P3D': {\n _name: '1 Shawwal'\n }\n },\n states: {\n BIH: {\n name: 'Federation of Bosnia and Herzegovina',\n days: {\n '03-01': {\n _name: 'Independence Day'\n },\n '11-25': {\n name: {\n en: 'Statehood Day',\n bs: 'Dan državnosti'\n }\n }\n },\n regions: {\n W: {\n name: 'Western Herzegovina',\n days: {\n '11-25': false\n }\n }\n }\n },\n BRC: {\n name: 'Brčko District',\n days: {\n '03-08': {\n name: {\n en: 'Day of the Establishment of the District'\n }\n }\n }\n },\n SRP: {\n name: 'Republika Srpska',\n days: {\n '01-09': {\n name: {\n en: 'Republic Day',\n bs: 'Dan Republike'\n }\n },\n '05-09': {\n name: {\n en: 'Victory Day',\n bs: 'Dan pobjede'\n }\n },\n '11-21': {\n name: {\n en: 'Dayton Agreement Day',\n bs: 'Dan uspostave Opšteg okvirnog sporazuma za mir u Bosni i Hercegovini'\n }\n }\n }\n }\n }\n },\n BB: {\n names: {\n en: 'Barbados'\n },\n dayoff: 'sunday',\n langs: [\n 'en'\n ],\n zones: [\n 'America/Barbados'\n ],\n days: {\n '01-01': {\n _name: '01-01'\n },\n '01-21': {\n name: {\n en: 'Errol Barrow Day'\n }\n },\n 'easter -2': {\n _name: 'easter -2'\n },\n easter: {\n _name: 'easter',\n type: 'observance'\n },\n 'easter 1': {\n _name: 'easter 1'\n },\n '04-28': {\n name: {\n en: 'National Heroes Day'\n }\n },\n '05-01 if sunday then next monday': {\n name: {\n en: 'May Day'\n }\n },\n 'easter 49': {\n _name: 'easter 49'\n },\n 'easter 50': {\n _name: 'easter 50'\n },\n '08-01': {\n name: {\n en: 'Emancipation Day'\n }\n },\n '1st monday in August': {\n name: {\n en: 'Kadooment Day'\n }\n },\n '11-30': {\n _name: 'Independence Day'\n },\n '12-25': {\n _name: '12-25'\n },\n 'substitutes 12-25 if sunday then next tuesday': {\n _name: 'Public Holiday'\n },\n '12-26': {\n _name: '12-26'\n },\n 'substitutes 12-26 if sunday then next monday': {\n _name: 'Public Holiday'\n }\n }\n },\n BD: {\n names: {\n bn: 'গণপ্রজাতন্ত্রী বাংলাদেশ',\n en: \"People's Republic of Bangladesh\"\n },\n langs: [\n 'bn'\n ],\n zones: [\n 'Asia/Dhaka'\n ],\n dayoff: 'friday',\n weekend: [\n 'friday',\n 'saturday'\n ],\n days: {\n 'bengali-revised 11-9': {\n name: {\n bn: 'শহীদ দিবস',\n en: \"Language Martyrs' Day\"\n }\n },\n 'bengali-revised 12-3': {\n name: {\n bn: 'মুজিব জয়ন',\n en: \"Mujib's Birthday & Children's Day\"\n }\n },\n 'bengali-revised 12-12': {\n name: {\n bn: 'স্বাধীনতা দিবস',\n en: 'Independence Day'\n }\n },\n 'bengali-revised 1-1': {\n name: {\n bn: 'পহেলা বৈশাখ',\n en: \"Bengali New Year's Day\"\n }\n },\n 'bengali-revised 1-18': {\n _name: '05-01',\n name: {\n bn: 'মে দিবস',\n en: 'May Day'\n }\n },\n 'bengali-revised 4-31': {\n name: {\n bn: 'জাতীয় শোক দিবস',\n en: 'National Mourning Day'\n }\n },\n 'bengali-revised 9-2': {\n name: {\n bn: 'বিজয় দিবস',\n en: 'Victory Day'\n }\n },\n '10 Muharram': {\n _name: '10 Muharram'\n },\n '12 Rabi al-awwal': {\n _name: '12 Rabi al-awwal'\n },\n '1 Shawwal P3D': {\n _name: '1 Shawwal'\n },\n '10 Dhu al-Hijjah P3D': {\n _name: '10 Dhu al-Hijjah'\n },\n '05-19': {\n name: {\n bn: 'বুদ্ধ পূর্ণিমা',\n en: \"Buddha's Birthday\"\n },\n enable: [\n '2016-05-21',\n '2017-05-10',\n '2018-04-29',\n '2019-05-19',\n '2020-05-07'\n ],\n disable: [\n '2016-05-19',\n '2017-05-19',\n '2018-05-19',\n '2019-05-19',\n '2020-05-19'\n ]\n },\n '08-24': {\n name: {\n bn: 'জন্মাষ্টমী',\n en: 'Krishna Janmashtami'\n },\n enable: [\n '2016-08-25',\n '2017-08-14',\n '2018-09-02',\n '2019-08-24',\n '2020-08-11'\n ],\n disable: [\n '2016-08-24',\n '2017-08-24',\n '2018-08-24',\n '2019-08-24',\n '2020-08-24'\n ]\n },\n '10-08': {\n name: {\n bn: 'দুর্গা পূজা',\n en: 'Durga Puja'\n },\n enable: [\n '2016-10-11',\n '2017-09-30',\n '2018-10-19',\n '2019-10-08',\n '2020-10-25'\n ],\n disable: [\n '2016-10-08',\n '2017-10-08',\n '2018-10-08',\n '2019-10-08',\n '2020-10-08'\n ]\n },\n 'bengali-revised 9-11': {\n _name: '12-25'\n },\n '03-25': {\n name: {\n en: 'Genocide Remembrance Day'\n },\n type: 'observance'\n },\n '11-21': {\n name: {\n en: 'Armed Forces Day'\n },\n type: 'observance'\n },\n '12-14': {\n name: {\n en: 'Martyred Intellectuals Day'\n },\n type: 'observance'\n }\n }\n },\n BE: {\n names: {\n fr: 'Belgique',\n nl: 'België',\n de: 'Belgien',\n en: 'Belgium'\n },\n dayoff: 'sunday',\n zones: [\n 'Europe/Brussels'\n ],\n langs: [\n 'fr',\n 'nl',\n 'de'\n ],\n days: {\n '01-01': {\n _name: '01-01'\n },\n '01-06': {\n _name: '01-06',\n name: {\n de: 'Erscheinung des Herrn'\n },\n type: 'observance'\n },\n '02-14': {\n _name: '02-14',\n type: 'observance'\n },\n easter: {\n _name: 'easter',\n type: 'observance'\n },\n 'easter 1': {\n _name: 'easter 1'\n },\n '05-01': {\n _name: '05-01'\n },\n '2nd sunday in May': {\n _name: 'Mothers Day',\n type: 'observance'\n },\n 'easter 39': {\n _name: 'easter 39'\n },\n 'easter 49': {\n _name: 'easter 49',\n type: 'observance'\n },\n 'easter 50': {\n _name: 'easter 50'\n },\n '07-21': {\n _name: 'National Holiday'\n },\n '08-15': {\n _name: '08-15'\n },\n '11-01': {\n _name: '11-01'\n },\n '11-02': {\n _name: '11-02',\n type: 'observance'\n },\n '11-11': {\n name: {\n de: 'Waffenstillstand',\n fr: 'Armistice',\n nl: 'Wapenstilstand'\n }\n },\n '11-15': {\n name: {\n nl: 'Koningsdag',\n fr: 'Fête du Roi',\n de: 'Festtag des Königs'\n },\n type: 'observance'\n },\n '12-06': {\n _name: '12-06',\n type: 'observance'\n },\n '12-25': {\n _name: '12-25'\n }\n },\n states: {\n BRU: {\n name: 'Bruxelles',\n langs: [\n 'fr',\n 'nl'\n ],\n days: {\n '05-08': {\n name: {\n nl: 'Feest van de Iris',\n fr: \"Fête de l'Iris\"\n },\n type: 'observance'\n }\n }\n },\n DE: {\n name: 'Deutschsprachige Gemeinschaft',\n langs: [\n 'de'\n ],\n days: {\n '11-15': {\n name: {\n de: 'Tag der Deutschsprachigen Gemeinschaft',\n fr: 'Jour de la Communauté Germanophone',\n nl: 'Feestdag van de Duitstalige Gemeenschap'\n },\n type: 'observance'\n }\n }\n },\n VLG: {\n name: 'Vlaamse Gemeenschap',\n langs: [\n 'nl'\n ],\n days: {\n '07-11': {\n name: {\n de: 'Festtag der Wallonischen Region',\n fr: 'Fête de la Région wallonne',\n nl: 'Feestdag van de Vlaamse Gemeenschap'\n },\n type: 'observance'\n }\n }\n },\n WAL: {\n name: 'Communauté française',\n langs: [\n 'fr'\n ],\n days: {\n '09-27': {\n name: {\n de: 'Tag der Französischsprachigen Gemeinschaft',\n fr: 'La fête de la communauté française',\n nl: 'Feestdag van de Franse Gemeenschap'\n },\n type: 'observance'\n }\n }\n }\n }\n },\n BF: {\n names: {\n fr: 'Burkina Faso',\n en: 'Burkina Faso'\n },\n langs: [\n 'fr'\n ],\n zones: [\n 'Africa/Abidjan'\n ],\n dayoff: '',\n days: {\n '01-01': {\n _name: '01-01'\n },\n '01-03': {\n name: {\n fr: 'Soulèvement populaire',\n en: \"Anniversary of the 1966 Upper Voltan coup d'état\"\n }\n },\n '03-08': {\n _name: '03-08'\n },\n easter: {\n _name: 'easter'\n },\n 'easter 1': {\n _name: 'easter 1'\n },\n 'easter 39': {\n _name: 'easter 39'\n },\n 'easter 49': {\n _name: 'easter 49'\n },\n '05-01': {\n _name: '05-01'\n },\n '08-05': {\n _name: 'Independence Day'\n },\n '08-15': {\n _name: '08-15'\n },\n '11-01': {\n _name: '11-01'\n },\n '12-11': {\n name: {\n fr: 'Fête nationale',\n en: 'Proclamation of the Republic'\n }\n },\n '12-25': {\n _name: '12-25'\n },\n '12 Rabi al-awwal': {\n _name: '12 Rabi al-awwal'\n },\n '1 Shawwal': {\n _name: '1 Shawwal'\n },\n '10 Dhu al-Hijjah': {\n _name: '10 Dhu al-Hijjah'\n }\n }\n },\n BG: {\n names: {\n bg: 'България',\n en: 'Bulgaria'\n },\n langs: [\n 'bg'\n ],\n zones: [\n 'Europe/Sofia'\n ],\n days: {\n '01-01': {\n _name: '01-01'\n },\n '03-01': {\n name: {\n bg: 'Баба Марта',\n en: 'Granny March Day'\n },\n type: 'observance'\n },\n '03-03': {\n name: {\n bg: 'Ден на Освобождението на България от Османската Империя',\n en: 'Liberation Day'\n }\n },\n '03-08': {\n _name: '03-08',\n type: 'observance'\n },\n 'orthodox -2': {\n _name: 'easter -2'\n },\n orthodox: {\n _name: 'easter'\n },\n 'orthodox 1': {\n _name: 'easter 1'\n },\n '05-01': {\n _name: '05-01'\n },\n '05-06': {\n name: {\n bg: 'Гергьовден',\n en: \"St. George's Day\"\n }\n },\n '05-07': {\n name: {\n bg: 'Ден на радиото и телевизията',\n en: 'Radio and Television Day'\n },\n type: 'observance'\n },\n '05-24': {\n name: {\n bg: 'Ден на азбуката, културата и просветата',\n en: 'Bulgarian Education and Culture, and Slavonic Literature Day'\n }\n },\n '09-06': {\n name: {\n bg: 'Ден на съединението',\n en: 'Unification Day'\n }\n },\n '09-22': {\n _name: 'Independence Day'\n },\n '11-01': {\n name: {\n bg: 'Ден на народните будители',\n en: \"Revival Leaders' Day\"\n },\n type: 'school'\n },\n '12-24': {\n _name: '12-24'\n },\n '12-25': {\n _name: '12-25'\n },\n '12-26': {\n _name: '12-26',\n type: 'observance'\n }\n }\n },\n BH: {\n names: {\n ar: 'مملكة البحرين',\n en: 'Bahrain'\n },\n langs: [\n 'ar'\n ],\n zones: [\n 'Asia/Qatar'\n ],\n dayoff: '',\n days: {\n '01-01': {\n _name: '01-01'\n },\n '05-01': {\n _name: '05-01',\n name: {\n ar: 'يوم العمال'\n }\n },\n '12-16': {\n name: {\n ar: 'اليوم الوطني',\n en: 'National Day'\n }\n },\n '12-17': {\n name: {\n ar: 'يوم الجلوس',\n en: 'Accession Day'\n }\n },\n '1 Muharram': {\n _name: '1 Muharram'\n },\n '10 Muharram': {\n _name: '10 Muharram'\n },\n '12 Rabi al-awwal': {\n _name: '12 Rabi al-awwal'\n },\n '1 Shawwal': {\n _name: '1 Shawwal'\n },\n '9 Dhu al-Hijjah': {\n _name: '9 Dhu al-Hijjah'\n },\n '10 Dhu al-Hijjah P3D': {\n _name: '10 Dhu al-Hijjah'\n }\n }\n },\n BI: {\n names: {\n rn: \"Republika y'Uburundi\",\n fr: 'République du Burundi',\n en: 'Burundi'\n },\n dayoff: 'sunday',\n langs: [\n 'fr',\n 'en'\n ],\n zones: [\n 'Africa/Maputo'\n ],\n days: {\n '01-01': {\n _name: '01-01'\n },\n '02-05': {\n name: {\n fr: \"Jour de l'Unité\",\n en: 'Unity Day'\n }\n },\n '04-06': {\n name: {\n fr: 'Jour de Ntaryamira',\n en: 'Ntaryamira Day'\n }\n },\n '05-01': {\n _name: '05-01'\n },\n 'easter 39': {\n _name: 'easter 39'\n },\n '07-01': {\n _name: 'Independence Day'\n },\n '08-15': {\n _name: '08-15'\n },\n '10-13': {\n name: {\n fr: 'Jour de Rwagasore',\n en: 'Rwagasore Day'\n }\n },\n '10-21': {\n name: {\n fr: 'Jour de Ndadaye',\n en: 'Ndadaye Day'\n }\n },\n '11-01': {\n _name: '11-01'\n },\n '12-25': {\n _name: '12-25'\n },\n '1 Shawwal': {\n _name: '1 Shawwal'\n },\n '10 Dhu al-Hijjah': {\n _name: '10 Dhu al-Hijjah'\n },\n '2015-07-24': {\n _name: 'Public Holiday',\n name: {\n fr: \"Jour l'élection des Sénateurs\"\n }\n }\n }\n },\n BJ: {\n names: {\n fr: 'République du Bénin',\n en: 'Benin'\n },\n langs: [\n 'fr'\n ],\n zones: [\n 'Africa/Lagos'\n ],\n dayoff: '',\n days: {\n '01-01': {\n _name: '01-01'\n },\n '01-10': {\n name: {\n fr: 'Fête du Vodoun'\n }\n },\n easter: {\n _name: 'easter',\n type: 'observance'\n },\n 'easter 1': {\n _name: 'easter 1'\n },\n 'easter 39': {\n _name: 'easter 39'\n },\n 'easter 49': {\n _name: 'easter 49',\n type: 'observance'\n },\n 'easter 50': {\n _name: 'easter 50'\n },\n '05-01': {\n _name: '05-01'\n },\n '08-01': {\n _name: 'Independence Day',\n name: {\n fr: 'Fête Nationale'\n }\n },\n '08-15': {\n _name: '08-15'\n },\n '11-01': {\n _name: '11-01'\n },\n '12-25': {\n _name: '12-25'\n },\n '1 Shawwal': {\n _name: '1 Shawwal'\n },\n '10 Dhu al-Hijjah': {\n _name: '10 Dhu al-Hijjah'\n },\n '12 Rabi al-awwal': {\n _name: '12 Rabi al-awwal'\n }\n }\n },\n BL: {\n names: {\n fr: 'St. Barthélemy',\n en: 'St. Barths'\n },\n langs: [\n 'fr'\n ],\n zones: [\n 'America/St_Barthelemy'\n ],\n _days: 'FR',\n days: {\n 'easter -48': {\n _name: 'easter -48',\n type: 'observance'\n },\n 'easter -47': {\n _name: 'easter -47',\n type: 'Observance'\n },\n 'easter -46': {\n _name: 'easter -46',\n type: 'observance'\n },\n 'easter -21': {\n name: {\n fr: 'Mi-Carême',\n en: 'Laetare Sunday'\n },\n type: 'observance'\n },\n 'easter -2': {\n _name: 'easter -2',\n type: 'bank'\n },\n easter: {\n _name: 'easter',\n type: 'observance'\n },\n '08-24': {\n name: {\n fr: 'Fête de Saint Barthélemy',\n en: 'Saint Barth'\n },\n type: 'observance'\n },\n '10-09': {\n _name: 'Abolition of Slavery'\n },\n '12-25': {\n _name: '12-25'\n }\n }\n },\n BM: {\n names: {\n en: 'Bermuda'\n },\n langs: [\n 'en'\n ],\n zones: [\n 'Atlantic/Bermuda'\n ],\n dayoff: 'sunday',\n days: {\n '01-01': {\n _name: '01-01'\n },\n 'substitutes 01-01 if saturday, sunday then next monday': {\n _name: '01-01',\n substitute: true,\n type: 'bank',\n note: 'Goverment offices close'\n },\n 'easter -2': {\n _name: 'easter -2'\n },\n 'friday before 06-01': {\n name: {\n en: 'Bermuda Day'\n }\n },\n '3nd monday in June': {\n name: {\n en: 'National Heroes Day'\n }\n },\n 'thursday before 08-04': {\n name: {\n en: 'Emancipation Day'\n }\n },\n 'friday before 08-05': {\n name: {\n en: \"Somers' Day\"\n }\n },\n 'monday after 09-01': {\n name: {\n en: 'Labour Day'\n }\n },\n '11-11': {\n name: {\n en: 'Remembrance Day'\n }\n },\n 'substitutes 11-11 if saturday, sunday then next monday': {\n name: {\n en: 'Remembrance Day'\n },\n substitute: true,\n type: 'bank',\n note: 'Goverment offices close'\n },\n '12-25': {\n _name: '12-25'\n },\n 'substitutes 12-25 if saturday then next monday if sunday then next tuesday': {\n _name: '12-25',\n substitute: true,\n type: 'bank',\n note: 'Goverment offices close'\n },\n '12-26': {\n _name: '12-26'\n },\n 'substitutes 12-26 if saturday then next monday if sunday then next tuesday': {\n _name: '12-26',\n substitute: true,\n type: 'bank',\n note: 'Goverment offices close'\n }\n }\n },\n BN: {\n names: {\n ms: 'Negara Brunei Darussalam',\n en: 'Brunei'\n },\n langs: [\n 'ms',\n 'en'\n ],\n zones: [\n 'Asia/Brunei'\n ],\n dayoff: '',\n days: {\n '01-01': {\n _name: '01-01',\n name: {\n ms: 'Awal Tahun Masihi'\n }\n },\n '02-23': {\n name: {\n en: 'National Day',\n ms: 'Hari Kebangsaan'\n }\n },\n '03-31': {\n name: {\n en: 'Armed Forces Day',\n ms: 'Hari Angkatan Bersenjata Diraja Brunei'\n }\n },\n '07-15': {\n name: {\n en: \"Sultan's Birthday\",\n ms: 'Hari Keputeraan KDYMM Sultan Brunei'\n }\n },\n '1 Ramadan': {\n _name: '1 Ramadan'\n },\n '17 Ramadan': {\n name: {\n en: 'Nuzul Al-Quran',\n ms: 'Hari Nuzul Al-Quran'\n }\n },\n '1 Shawwal P3D': {\n _name: '1 Shawwal'\n },\n '10 Dhu al-Hijjah': {\n _name: '10 Dhu al-Hijjah'\n },\n '1 Muharram': {\n _name: '1 Muharram'\n },\n '12 Rabi al-awwal': {\n _name: '12 Rabi al-awwal'\n },\n '27 Rajab': {\n _name: '27 Rajab'\n },\n '12-25': {\n _name: '12-25'\n },\n 'chinese 01-0-01': {\n name: {\n en: 'Chinese New Year',\n ms: 'Tahun Baru Cina'\n }\n }\n }\n },\n BO: {\n names: {\n es: 'Bolivia',\n en: 'Bolivia'\n },\n dayoff: 'sunday',\n langs: [\n 'es',\n 'qu',\n 'ay'\n ],\n zones: [\n 'America/La_Paz'\n ],\n days: {\n '01-01': {\n _name: '01-01'\n },\n '02-02': {\n name: {\n en: 'Feast of the Virgin of Candelaria',\n qu: 'Mamacha Candelaria',\n es: 'Fiesta de la Virgen de Candelaria'\n }\n },\n 'easter -48': {\n name: {\n en: 'Carnival',\n es: 'Carnaval'\n }\n },\n 'easter -47': {\n _name: 'easter -47'\n },\n 'easter -2': {\n _name: 'easter -2'\n },\n easter: {\n _name: 'easter',\n type: 'observance'\n },\n 'easter 39': {\n _name: 'easter 39'\n },\n '06-21': {\n name: {\n en: 'Andean New Year',\n ay: 'Willkakuti',\n es: 'Año Nuevo Andino'\n }\n },\n '08-02': {\n name: {\n en: 'Agrarian Reform Day',\n es: 'Día de la Revolución Agraria, Productiva y Comunitaria'\n }\n },\n '08-06': {\n _name: 'Independence Day',\n name: {\n es: 'Día de la Patria'\n }\n },\n '11-02': {\n _name: '11-02'\n },\n '12-25': {\n _name: '12-25'\n }\n }\n },\n BQ: {\n names: {\n nl: 'Caribisch Nederland',\n en: 'Caribbean Netherlands'\n },\n dayoff: 'sunday',\n zones: [\n 'America/Curacao'\n ],\n langs: [\n 'nl',\n 'en',\n 'pap'\n ],\n days: {\n '01-01': {\n _name: '01-01'\n },\n 'easter -2': {\n _name: 'easter -2'\n },\n easter: {\n _name: 'easter',\n type: 'observance'\n },\n 'easter 1': {\n _name: 'easter 1'\n },\n '04-27': {\n name: {\n pap: 'Aña di Rey',\n nl: 'Koningsdag',\n en: 'Kings Day'\n }\n },\n '05-01 if sunday then next monday': {\n substitute: true,\n _name: '05-01'\n },\n '2nd sunday in May': {\n _name: 'Mothers Day',\n type: 'observance'\n },\n '3rd sunday in June': {\n _name: 'Fathers Day',\n type: 'observance'\n },\n 'easter 39': {\n _name: 'easter 39'\n },\n '12-05': {\n name: {\n nl: 'Sinterklaasavond',\n en: \"St. Nicholas' Eve\"\n },\n type: 'observance'\n },\n '12-15': {\n name: {\n pap: 'Dia di Reino',\n nl: 'Koninkrijksdag',\n en: 'Kingdom Day'\n }\n },\n '12-25': {\n _name: '12-25'\n },\n '12-26': {\n _name: '12-26'\n }\n },\n regions: {\n BO: {\n name: 'Bonaire',\n days: {\n 'easter -48': {\n _name: 'easter -48',\n name: {\n en: 'Carnival Monday'\n }\n },\n '04-30': {\n name: {\n en: 'Rincon Day',\n pap: 'Dia di Rincon'\n }\n },\n '09-06': {\n name: {\n nl: 'Boneiru Dag',\n en: 'Bonaire Day',\n pap: 'Dia di Boneiru'\n }\n }\n }\n },\n SA: {\n name: 'Saba',\n days: {\n '1st monday in August': {\n _name: 'easter -48',\n name: {\n en: 'Carnival Monday'\n }\n },\n '1st friday in December': {\n name: {\n en: 'Saba Day'\n }\n }\n }\n },\n SE: {\n name: 'Sint Eustatius',\n days: {\n '08-01': {\n name: {\n en: 'Emancipation Day'\n }\n },\n '11-16': {\n name: {\n en: 'Statia Day'\n }\n }\n }\n }\n }\n },\n BR: {\n names: {\n pt: 'Brasil',\n en: 'Brazil'\n },\n dayoff: 'sunday',\n langs: [\n 'pt'\n ],\n zones: [\n 'America/Sao_Paulo',\n 'America/Noronha',\n 'America/Belem',\n 'America/Fortaleza',\n 'America/Recife',\n 'America/Araguaina',\n 'America/Maceio',\n 'America/Bahia',\n 'America/Campo_Grande',\n 'America/Cuiaba',\n 'America/Santarem',\n 'America/Porto_Velho',\n 'America/Boa_Vista',\n 'America/Manaus',\n 'America/Eirunepe',\n 'America/Rio_Branco'\n ],\n days: {\n '01-01': {\n _name: '01-01'\n },\n '04-21': {\n name: {\n pt: 'Dia de Tiradentes',\n en: \"Tiradentes' Day\"\n }\n },\n 'easter -50 PT110H': {\n name: {\n pt: 'Carnaval',\n en: 'Carnival'\n },\n type: 'optional'\n },\n 'easter -2': {\n _name: 'easter -2'\n },\n easter: {\n _name: 'easter',\n type: 'observance'\n },\n '05-01': {\n _name: '05-01'\n },\n '2nd sunday in May': {\n _name: 'Mothers Day',\n type: 'observance'\n },\n 'easter 60': {\n _name: 'easter 60',\n type: 'optional'\n },\n '06-12': {\n name: {\n pt: 'Dia dos Namorados',\n en: \"Lovers' Day\"\n },\n type: 'observance'\n },\n '2nd sunday in August': {\n _name: 'Fathers Day',\n type: 'observance'\n },\n '09-07': {\n _name: 'Independence Day'\n },\n '10-12': {\n name: {\n pt: 'Nossa Senhora Aparecida',\n en: 'Our Lady of Aparecida'\n }\n },\n '1st sunday in October in even years': {\n name: {\n pt: 'Dia de Eleição',\n en: 'Election Day'\n }\n },\n '1st sunday before 11-01 in even years': {\n name: {\n pt: 'Dia de Eleição',\n en: 'Election Day'\n }\n },\n '11-02': {\n _name: '11-02'\n },\n '11-15': {\n name: {\n pt: 'Proclamação da República',\n en: 'Republic Day'\n }\n },\n '12-24 14:00': {\n _name: '12-24',\n type: 'optional'\n },\n '12-25': {\n _name: '12-25'\n },\n '12-31 14:00': {\n _name: '12-31',\n type: 'optional'\n }\n },\n states: {\n AC: {\n name: 'Acre',\n zones: [\n 'America/Rio_Branco'\n ],\n days: {\n '01-12': {\n name: {\n pt: 'Dia do evangélico'\n },\n active: [\n {\n from: '2004-01-29T00:00:00.000Z'\n }\n ]\n },\n '03-08': {\n name: {\n pt: 'Alusivo ao Dia Internacional da Mulher'\n },\n active: [\n {\n from: '2001-09-14T00:00:00.000Z'\n }\n ]\n },\n '06-15': {\n name: {\n pt: 'Aniversário do estado'\n },\n active: [\n {\n from: '1964-09-02T00:00:00.000Z'\n }\n ]\n },\n '09-05': {\n name: {\n pt: 'Dia da Amazônia'\n },\n active: [\n {\n from: '2004-01-05T00:00:00.000Z'\n }\n ]\n },\n '11-17': {\n name: {\n pt: 'Assinatura do Tratado de Petrópolis'\n },\n type: 'optional',\n active: [\n {\n from: '2012-02-21T00:00:00.000Z'\n }\n ]\n }\n }\n },\n AL: {\n name: 'Alagoas',\n zones: [\n 'America/Maceio'\n ],\n days: {\n '06-24': {\n name: {\n pt: 'São João'\n },\n active: [\n {\n from: '1993-07-07T00:00:00.000Z'\n }\n ]\n },\n '06-29': {\n name: {\n pt: 'São Pedro'\n },\n active: [\n {\n from: '1993-07-07T00:00:00.000Z'\n }\n ]\n },\n '09-16': {\n name: {\n pt: 'Emancipação política'\n }\n },\n '11-20': {\n name: {\n pt: 'Morte de Zumbi dos Palmares'\n },\n active: [\n {\n from: '1995-08-01T00:00:00.000Z'\n }\n ]\n }\n }\n },\n AM: {\n name: 'Amazonas',\n zones: [\n 'America/Manaus'\n ],\n days: {\n '09-05': {\n name: {\n pt: 'Elevação do Amazonas à categoria de província'\n },\n active: [\n {\n from: '1977-12-21T00:00:00.000Z'\n }\n ]\n },\n '11-20': {\n name: {\n pt: 'Dia da Consciência Negra'\n },\n active: [\n {\n from: '2010-07-08T00:00:00.000Z'\n }\n ]\n }\n }\n },\n AP: {\n name: 'Amapá',\n zones: [\n 'America/Belem'\n ],\n days: {\n '03-19': {\n name: {\n pt: 'Dia de São José'\n },\n note: 'Santo padroeiro do Estado do Amapá',\n active: [\n {\n from: '2002-04-16T00:00:00.000Z'\n }\n ]\n },\n '09-13': {\n name: {\n pt: 'Criação do Território Federal'\n }\n }\n }\n },\n BA: {\n name: 'Bahia',\n zones: [\n 'America/Bahia'\n ],\n days: {\n '07-02': {\n name: {\n pt: 'Independência da Bahia'\n }\n }\n }\n },\n CE: {\n name: 'Ceará',\n zones: [\n 'America/Fortaleza'\n ],\n days: {\n '03-25': {\n name: {\n pt: 'Data magna do estado'\n },\n active: [\n {\n from: '2011-12-01T00:00:00.000Z'\n }\n ]\n }\n }\n },\n DF: {\n name: 'Distrito Federal',\n zones: [\n 'America/Sao_Paulo'\n ],\n days: {\n '04-21': {\n name: {\n pt: 'Fundação de Brasília'\n }\n },\n '11-30': {\n name: {\n pt: 'Dia do Evangélico'\n },\n type: 'public',\n active: [\n {\n from: '1995-12-04T00:00:00.000Z'\n }\n ]\n }\n }\n },\n MA: {\n name: 'Maranhão',\n zones: [\n 'America/Belem'\n ],\n days: {\n '07-28': {\n name: {\n pt: 'Adesão do Maranhão à independência do Brasil'\n },\n active: [\n {\n from: '1964-10-02T00:00:00.000Z'\n }\n ]\n }\n }\n },\n MG: {\n name: 'Minas Gerais',\n zones: [\n 'America/Sao_Paulo'\n ],\n days: {\n '04-21': {\n name: {\n pt: 'Data magna do estado'\n }\n }\n },\n regions: {\n BH: {\n name: 'Belo Horizonte',\n days: {\n '08-15': {\n _name: '08-15',\n name: {\n pt: 'Assunção de Nossa Senhora'\n },\n type: 'public'\n },\n '12-08': {\n _name: '12-08',\n type: 'public'\n }\n }\n }\n }\n },\n MS: {\n name: 'Mato Grosso do Sul',\n zones: [\n 'America/Campo_Grande'\n ],\n days: {\n '10-11': {\n name: {\n pt: 'Criação do estado'\n },\n active: [\n {\n from: '1979-10-29T00:00:00.000Z'\n }\n ]\n }\n }\n },\n MT: {\n name: 'Mato Grosso',\n zones: [\n 'America/Cuiaba'\n ],\n days: {\n '11-20': {\n name: {\n pt: 'Dia da Consciência Negra'\n },\n active: [\n {\n from: '2002-12-27T00:00:00.000Z'\n }\n ]\n }\n }\n },\n PA: {\n name: 'Pará',\n zones: [\n 'America/Santarem'\n ],\n days: {\n '08-15': {\n name: {\n pt: 'Adesão do Grão-Pará à independência do Brasil'\n },\n active: [\n {\n from: '1996-09-10T00:00:00.000Z'\n }\n ]\n }\n }\n },\n PB: {\n name: 'Paraíba',\n zones: [\n 'America/Recife'\n ],\n days: {\n '07-26': {\n name: {\n pt: 'Homenagem à memória do ex-presidente João Pessoa'\n }\n },\n '08-05': {\n name: {\n pt: 'Nossa Senhora das Neves'\n },\n note: 'Fundação do Estado em 1585 e dia da sua padroeira',\n active: [\n {\n from: '1967-08-30T00:00:00.000Z'\n }\n ]\n }\n }\n },\n PE: {\n name: 'Pernambuco',\n zones: [\n 'America/Recife'\n ],\n days: {\n '1st sunday in March': {\n name: {\n pt: 'Revolução Pernambucana de 1817'\n },\n active: [\n {\n from: '2009-07-02T00:00:00.000Z'\n }\n ]\n }\n },\n regions: {\n RE: {\n name: 'Recife',\n days: {\n '06-24': {\n name: {\n pt: 'São João',\n en: \"Saint John's Day\"\n },\n type: 'public'\n },\n '07-16': {\n name: {\n pt: 'Nossa Senhora do Carmo'\n },\n type: 'public'\n },\n '12-08': {\n _name: '12-08',\n name: {\n pt: 'Nossa Senhora da Conceição'\n },\n type: 'public'\n }\n }\n }\n }\n },\n PI: {\n name: 'Piauí',\n zones: [\n 'America/Fortaleza'\n ],\n days: {\n '10-19': {\n name: {\n pt: 'Dia do Piauí'\n },\n active: [\n {\n from: '1937-01-01T00:00:00.000Z'\n }\n ]\n }\n }\n },\n PR: {\n name: 'Paraná',\n zones: [\n 'America/Sao_Paulo'\n ],\n days: {\n '12-19': {\n name: {\n pt: 'Emancipação política do estado do Paraná'\n },\n active: [\n {\n from: '1962-12-18T00:00:00.000Z'\n }\n ]\n }\n },\n regions: {\n CU: {\n name: 'Curitiba',\n days: {\n '09-08': {\n name: {\n pt: 'Nossa Senhora da Luz dos Pinhais'\n },\n type: 'public'\n }\n }\n }\n }\n },\n RJ: {\n name: 'Rio de Janeiro',\n zones: [\n 'America/Sao_Paulo'\n ],\n days: {\n 'easter -47': {\n name: {\n pt: 'Carnaval'\n },\n active: [\n {\n from: '2008-05-14T00:00:00.000Z'\n }\n ]\n },\n '04-23': {\n name: {\n pt: 'Dia de São Jorge'\n },\n active: [\n {\n from: '2008-03-05T00:00:00.000Z'\n }\n ]\n },\n '3rd tuesday in October': {\n name: {\n pt: 'Dia do Comércio'\n },\n type: 'observance',\n note: 'feriado para os comerciantes e trabalhadores da construção civil'\n },\n '11-20': {\n name: {\n pt: 'Dia da Consciência Negra'\n },\n active: [\n {\n from: '2002-11-11T00:00:00.000Z'\n }\n ]\n }\n }\n },\n RN: {\n name: 'Rio Grande do Norte',\n zones: [\n 'America/Recife'\n ],\n days: {\n '10-03': {\n name: {\n pt: 'Mártires de Cunhaú e Uruaçu'\n },\n active: [\n {\n from: '2006-12-06T00:00:00.000Z'\n }\n ]\n }\n }\n },\n RO: {\n name: 'Rondônia',\n zones: [\n 'America/Porto_Velho'\n ],\n days: {\n '01-04': {\n name: {\n pt: 'Criação do estado'\n },\n active: [\n {\n from: '2010-04-22T00:00:00.000Z'\n }\n ]\n },\n '06-18': {\n name: {\n pt: 'Dia do evangélico'\n },\n active: [\n {\n from: '2001-12-20T00:00:00.000Z'\n }\n ]\n }\n }\n },\n RR: {\n name: 'Roraima',\n zones: [\n 'America/Boa_Vista'\n ],\n days: {\n '10-05': {\n name: {\n pt: 'Criação do estado'\n }\n }\n }\n },\n RS: {\n name: 'Rio Grande do Sul',\n zones: [\n 'America/Sao_Paulo'\n ],\n days: {\n '09-20': {\n name: {\n pt: 'Proclamação da República Rio-Grandense'\n }\n }\n }\n },\n SC: {\n name: 'Santa Catarina',\n zones: [\n 'America/Sao_Paulo'\n ],\n days: {\n '08-11': {\n name: {\n pt: 'Dia de Santa Catarina'\n },\n active: [\n {\n from: '2004-01-22T00:00:00.000Z',\n to: '2005-07-15T00:00:00.000Z'\n }\n ]\n },\n '08-11 if monday,tuesday,wednesday,thursday,friday,saturday then next sunday': {\n name: {\n pt: 'Dia de Santa Catarina'\n },\n active: [\n {\n from: '2005-07-15T00:00:00.000Z'\n }\n ]\n },\n '11-25': {\n name: {\n pt: 'Dia de Santa Catarina de Alexandria'\n },\n active: [\n {\n from: '1996-12-26T00:00:00.000Z',\n to: '2005-07-15T00:00:00.000Z'\n }\n ]\n },\n '11-25 if monday,tuesday,wednesday,thursday,friday,saturday then next sunday': {\n name: {\n pt: 'Dia de Santa Catarina de Alexandria'\n },\n active: [\n {\n from: '2005-07-15T00:00:00.000Z'\n }\n ]\n }\n }\n },\n SE: {\n name: 'Sergipe',\n zones: [\n 'America/Recife'\n ],\n days: {\n '07-08': {\n name: {\n pt: 'Emancipação política de Sergipe'\n }\n }\n }\n },\n SP: {\n name: 'São Paulo',\n zones: [\n 'America/Sao_Paulo'\n ],\n days: {\n '07-09': {\n name: {\n pt: 'Revolução Constitucionalista'\n },\n active: [\n {\n from: '1997-03-05T00:00:00.000Z'\n }\n ]\n }\n },\n regions: {\n SP: {\n name: 'São Paulo',\n days: {\n '01-25': {\n name: {\n pt: 'Aniversário da Cidade',\n en: 'City Birthday'\n },\n type: 'public'\n }\n }\n }\n }\n },\n TO: {\n name: 'Tocantins',\n zones: [\n 'America/Araguaina'\n ],\n days: {\n '10-05': {\n name: {\n pt: 'Criação do estado'\n },\n active: [\n {\n from: '1989-11-17T00:00:00.000Z'\n }\n ]\n },\n '03-18': {\n name: {\n pt: 'Autonomia do Estado'\n },\n active: [\n {\n from: '1998-03-17T00:00:00.000Z'\n }\n ]\n },\n '09-08': {\n name: {\n pt: 'Nossa Senhora da Natividade'\n },\n note: 'Padroeira do Estado',\n active: [\n {\n from: '1993-12-28T00:00:00.000Z'\n }\n ]\n }\n }\n }\n }\n },\n BS: {\n names: {\n en: 'Bahamas'\n },\n dayoff: 'sunday',\n langs: [\n 'en'\n ],\n zones: [\n 'America/Nassau'\n ],\n days: {\n '01-01': {\n _name: '01-01'\n },\n '01-10 and if saturday,sunday then next monday': {\n substitute: true,\n name: {\n en: 'Majority Rule Day'\n }\n },\n 'easter -2': {\n _name: 'easter -2'\n },\n easter: {\n _name: 'easter',\n type: 'observance'\n },\n 'easter 1': {\n _name: 'easter 1'\n },\n '2nd sunday in May': {\n _name: 'Mothers Day',\n type: 'observance'\n },\n 'easter 49': {\n _name: 'easter 49',\n type: 'observance'\n },\n 'easter 50': {\n _name: 'easter 50'\n },\n '1st friday in June': {\n _name: '05-01',\n name: {\n en: 'Randol Fawkes Labour Day'\n }\n },\n '07-10 and if saturday,sunday then next monday': {\n substitute: true,\n _name: 'Independence Day'\n },\n '1st monday in August': {\n name: {\n en: 'Emancipation Day'\n }\n },\n '10-12 and if saturday,sunday then next monday': {\n substitute: true,\n name: {\n en: \"National Heroes' Day\"\n }\n },\n '12-25': {\n _name: '12-25'\n },\n '12-26': {\n _name: '12-26'\n }\n }\n },\n BW: {\n names: {\n en: 'Botswana'\n },\n dayoff: 'sunday',\n langs: [\n 'en'\n ],\n zones: [\n 'Africa/Maputo'\n ],\n days: {\n '01-01': {\n _name: '01-01',\n note: 'except mining industy'\n },\n '01-02': {\n name: {\n en: \"New Year's Holiday\"\n },\n note: 'except mining industy'\n },\n 'substitutes 01-02 if monday then next tuesday': {\n name: {\n en: 'Public Holiday'\n },\n note: 'except mining industy'\n },\n 'easter -2': {\n _name: 'easter -2'\n },\n 'easter -1': {\n _name: 'easter -1',\n note: 'except mining industy'\n },\n easter: {\n _name: 'easter',\n type: 'observance'\n },\n 'easter 1': {\n _name: 'easter 1',\n note: 'except mining industy'\n },\n 'easter 39': {\n _name: 'easter 39',\n note: 'except mining industy'\n },\n '05-01': {\n _name: '05-01',\n note: 'except mining industy'\n },\n 'substitutes 05-01 if sunday then next monday': {\n name: {\n en: 'Public Holiday'\n },\n note: 'except mining industy'\n },\n '2nd sunday in May': {\n _name: 'Mothers Day',\n type: 'observance'\n },\n '07-01': {\n name: {\n en: 'Sir Seretse Khama Day'\n },\n note: 'except mining industy'\n },\n 'substitutes 07-01 if sunday then next monday': {\n name: {\n en: 'Public Holiday'\n },\n note: 'except mining industy'\n },\n '3rd monday in July': {\n name: {\n en: 'President’s Day'\n },\n note: 'except mining industy'\n },\n 'tuesday after 3rd monday in July': {\n name: {\n en: 'President’s Day Holiday'\n },\n note: 'except mining industy'\n },\n '09-30': {\n name: {\n en: 'Botswana Day'\n }\n },\n 'substitutes 09-30 if saturday,sunday then next monday': {\n name: {\n en: 'Public Holiday'\n }\n },\n '12-25': {\n _name: '12-25'\n },\n '12-26': {\n _name: '12-26',\n name: {\n en: 'Family Day'\n },\n note: 'except mining industy'\n },\n 'substitutes 12-26 if monday then next tuesday': {\n name: {\n en: 'Public Holiday'\n }\n }\n }\n },\n BY: {\n names: {\n be: 'Рэспубліка Беларусь',\n ru: 'Республика Беларусь',\n en: 'Belarus'\n },\n zones: [\n 'Europe/Minsk'\n ],\n langs: [\n 'be',\n 'ru'\n ],\n days: {\n '01-01': {\n _name: '01-01'\n },\n 'julian 12-25': {\n _name: '12-25',\n name: {\n be: 'Каляды праваслаўныя'\n }\n },\n easter: {\n _name: 'easter',\n name: {\n be: 'Вялiкдзень каталiцкi'\n },\n type: 'observance'\n },\n orthodox: {\n name: {\n en: 'Orthodox Easter',\n be: 'Вялiкдзень праваслаўны'\n },\n type: 'observance'\n },\n 'orthodox +9': {\n name: {\n en: 'Commemoration Day',\n be: 'Радунiца'\n }\n },\n '03-08': {\n _name: '03-08'\n },\n '05-01': {\n _name: '05-01'\n },\n '05-09': {\n name: {\n en: 'Victory Day',\n be: 'Дзень Перамогi'\n }\n },\n '07-03': {\n _name: 'Independence Day',\n active: [\n {\n from: 1996\n }\n ]\n },\n '11-07': {\n name: {\n en: 'October Revolution Day',\n be: 'Дзень Кастрычніцкай рэвалюцыі'\n }\n },\n '12-25': {\n _name: '12-25',\n name: {\n be: 'Каляды каталiцкiя'\n }\n }\n }\n },\n BZ: {\n names: {\n en: 'Belize'\n },\n dayoff: 'sunday',\n langs: [\n 'en'\n ],\n zones: [\n 'America/Belize'\n ],\n days: {\n '01-01': {\n _name: '01-01'\n },\n '03-09 if friday,saturday,sunday then next monday if tuesday,wednesday,thursday then previous monday': {\n name: {\n en: 'Baron Bliss Day'\n }\n },\n 'easter -2': {\n _name: 'easter -2'\n },\n 'easter -1': {\n _name: 'easter -1'\n },\n easter: {\n _name: 'easter',\n type: 'observance'\n },\n 'easter 1': {\n _name: 'easter 1'\n },\n '05-01 if sunday then next monday': {\n _name: '05-01'\n },\n '05-24 if friday,saturday,sunday then next monday if tuesday,wednesday,thursday then previous monday': {\n name: {\n en: \"Commonwealth Day, Sovereign's Day\"\n }\n },\n '09-10 if sunday then next monday': {\n name: {\n en: \"Saint George's Caye Day, National Day\"\n }\n },\n '09-21 if sunday then next monday': {\n _name: 'Independence Day'\n },\n '10-12 if friday,saturday,sunday then next monday if tuesday,wednesday,thursday then previous monday': {\n name: {\n en: 'Day of the Americas'\n }\n },\n '11-19 if sunday then next monday': {\n name: {\n en: 'Garifuna Settlement Day'\n }\n },\n '12-25 and if sunday then next tuesday': {\n _name: '12-25',\n substitute: true\n },\n '12-26 and if sunday then next monday': {\n _name: '12-26',\n substitute: true\n }\n }\n },\n CA: {\n names: {\n en: 'Canada',\n fr: 'Canada'\n },\n zones: [\n 'America/Toronto',\n 'America/St_Johns',\n 'America/Halifax',\n 'America/Glace_Bay',\n 'America/Moncton',\n 'America/Goose_Bay',\n 'America/Blanc-Sablon',\n 'America/Nipigon',\n 'America/Thunder_Bay',\n 'America/Iqaluit',\n 'America/Pangnirtung',\n 'America/Resolute',\n 'America/Atikokan',\n 'America/Rankin_Inlet',\n 'America/Winnipeg',\n 'America/Rainy_River',\n 'America/Regina',\n 'America/Swift_Current',\n 'America/Edmonton',\n 'America/Cambridge_Bay',\n 'America/Yellowknife',\n 'America/Inuvik',\n 'America/Creston',\n 'America/Dawson_Creek',\n 'America/Fort_Nelson',\n 'America/Vancouver',\n 'America/Whitehorse',\n 'America/Dawson'\n ],\n langs: [\n 'en',\n 'fr'\n ],\n days: {\n '01-01': {\n _name: '01-01'\n },\n '02-02': {\n name: {\n en: 'Groundhog Day',\n fr: 'Jour de la marmotte'\n },\n type: 'observance'\n },\n '02-14': {\n _name: '02-14',\n type: 'observance'\n },\n '03-17': {\n name: {\n en: 'St. Patrick’s Day',\n fr: 'Fête de la Saint-Patrick'\n },\n type: 'observance'\n },\n 'easter -2': {\n _name: 'easter -2'\n },\n easter: {\n _name: 'easter'\n },\n '2nd sunday after 05-01': {\n _name: 'Mothers Day',\n type: 'observance'\n },\n 'monday before 05-25': {\n name: {\n en: 'Victoria Day',\n fr: 'Fête de la Reine'\n }\n },\n '3rd sunday after 06-01': {\n _name: 'Fathers Day',\n type: 'observance'\n },\n '07-01': {\n name: {\n en: 'Canada Day',\n fr: 'Fête du Canada'\n }\n },\n 'monday after 08-01': {\n name: {\n en: 'Civic Holiday',\n fr: 'Premier lundi d’août'\n }\n },\n '1st monday in September': {\n _name: '05-01'\n },\n '09-30 since 2021': {\n name: {\n en: 'National Day for Truth and Reconciliation',\n fr: 'Journée nationale de la vérité et de la réconciliation'\n }\n },\n '2nd monday after 10-01': {\n name: {\n en: 'Thanksgiving',\n fr: 'Action de grâce'\n }\n },\n '10-31 18:00': {\n name: {\n en: 'Halloween',\n fr: \"l'Halloween\"\n },\n type: 'observance'\n },\n '11-11': {\n name: {\n en: 'Remembrance Day',\n fr: 'Jour du Souvenir'\n }\n },\n '12-25': {\n _name: '12-25'\n },\n '12-26': {\n _name: '12-26'\n }\n },\n states: {\n AB: {\n name: 'Alberta',\n zones: [\n 'America/Edmonton'\n ],\n days: {\n '3rd monday after 02-01': {\n name: {\n en: 'Family Day',\n fr: 'Fête de la famille'\n }\n },\n 'easter 1': {\n _name: 'easter 1',\n type: 'optional'\n },\n 'monday after 08-01': {\n name: {\n en: 'Heritage Day',\n fr: 'Fête du patrimoine'\n },\n type: 'optional'\n }\n }\n },\n BC: {\n name: 'British Columbia',\n zones: [\n 'America/Vancouver',\n 'America/Edmonton',\n 'America/Creston',\n 'America/Dawson_Creek'\n ],\n days: {\n '2nd monday after 02-01': {\n name: {\n en: 'Family Day',\n fr: 'Fête de la famille'\n },\n active: [\n {\n to: 2019\n }\n ]\n },\n '3rd monday after 02-01': {\n name: {\n en: 'Family Day',\n fr: 'Fête de la famille'\n },\n active: [\n {\n from: 2019\n }\n ]\n }\n }\n },\n MB: {\n name: 'Manitoba',\n zones: [\n 'America/Winnipeg'\n ],\n days: {\n '3rd monday after 02-01': {\n name: {\n en: 'Louis Riel Day',\n fr: 'Journée Louis Riel'\n }\n }\n }\n },\n NB: {\n name: 'New Brunswick',\n zones: [\n 'America/Moncton'\n ],\n days: {\n 'monday after 08-01': {\n name: {\n en: 'New Brunswick Day',\n fr: 'Jour de Nouveau Brunswick'\n }\n }\n }\n },\n NL: {\n name: 'Newfoundland and Labrador',\n zones: [\n 'America/St_Johns',\n 'America/Goose_Bay'\n ],\n days: {\n '03-17': {\n name: {\n en: \"Saint Patrick's Day\",\n fr: 'Jour de la Saint-Patrick'\n },\n type: 'optional'\n },\n '04-23': {\n name: {\n en: \"Saint George's Day\",\n fr: 'Jour de St. George'\n },\n type: 'optional'\n },\n '06-24': {\n name: {\n en: 'Discovery Day',\n fr: 'Journée découverte'\n },\n type: 'optional'\n },\n '07-12': {\n name: {\n en: \"Orangemen's Day\",\n fr: 'Fête des orangistes'\n },\n type: 'optional'\n },\n '11-11': {\n name: {\n en: 'Armistice Day',\n fr: \"Jour de l'Armistice\"\n }\n }\n }\n },\n NS: {\n name: 'Nova Scotia',\n zones: [\n 'America/Halifax',\n 'America/Moncton'\n ],\n days: {\n '3rd monday after 02-01': {\n name: {\n en: 'Heritage Day',\n fr: 'Fête du Patrimoine'\n }\n },\n 'monday after 08-01': {\n name: {\n en: 'Natal Day',\n fr: 'Jour de la Fondation'\n }\n }\n }\n },\n NT: {\n name: 'Northwest Territories',\n zones: [\n 'America/Yellowknife',\n 'America/Inuvik'\n ],\n days: {\n '06-21': {\n name: {\n en: 'National Aboriginal Day',\n fr: 'Journée nationale des Autochthones'\n }\n }\n }\n },\n NU: {\n name: 'Nunavut',\n zones: [\n 'America/Iqaluit',\n 'America/Pangnirtung',\n 'America/Resolute',\n 'America/Rankin_Inlet',\n 'America/Atikokan',\n 'America/Cambridge_Bay'\n ],\n days: {\n '07-09': {\n name: {\n en: 'Nunavut Day'\n },\n type: 'bank'\n }\n }\n },\n ON: {\n name: 'Ontario',\n zones: [\n 'America/Toronto',\n 'America/Nipigon',\n 'America/Thunder_Bay',\n 'America/Atikokan',\n 'America/Rainy_River',\n 'America/Winnipeg'\n ],\n days: {\n '3rd monday after 02-01': {\n name: {\n en: 'Family Day',\n fr: 'Fête de la famille'\n }\n },\n 'easter 1': {\n _name: 'easter 1'\n }\n }\n },\n PE: {\n name: 'Prince Edward Island',\n days: {\n '3rd monday after 02-01': {\n name: {\n en: 'Islander Day',\n fr: 'Fête des Insulaires'\n }\n },\n 'easter 1': {\n _name: 'easter 1',\n type: 'optional'\n },\n '3rd friday after 08-01': {\n name: {\n en: 'Gold Cup Parade Day',\n fr: \"Défilé de la Coupe d'or\"\n }\n }\n }\n },\n QC: {\n name: 'Quebec',\n zones: [\n 'America/Blanc-Sablon',\n 'America/Toronto',\n 'America/Nipigon'\n ],\n days: {\n 'easter -2': {\n _name: 'easter -2',\n note: 'Either Good Friday or Easter Monday, at the employer’s option'\n },\n 'easter 1': {\n _name: 'easter 1',\n note: 'Either Good Friday or Easter Monday, at the employer’s option'\n },\n 'monday before 05-25': {\n name: {\n en: \"National Patriots' Day\",\n fr: 'Journée nationale des patriotes'\n }\n },\n '06-24': {\n name: {\n en: 'National Holiday',\n fr: 'Fête nationale du Québec'\n }\n },\n 'monday after 08-01': false\n }\n },\n SK: {\n name: 'Saskatchewan',\n zones: [\n 'America/Regina',\n 'America/Swift_Current',\n 'America/Edmonton'\n ],\n days: {\n '3rd monday after 02-01': {\n name: {\n en: 'Family Day',\n fr: 'Fête de la famille'\n }\n },\n '3rd monday after 08-01': {\n name: {\n en: 'Saskatchewan Day'\n }\n }\n }\n },\n YT: {\n name: 'Yukon',\n zones: [\n 'America/Whitehorse',\n 'America/Dawson'\n ],\n days: {\n 'easter 1': {\n _name: 'easter 1'\n },\n '3rd monday after 08-01': {\n name: {\n en: 'Discovery Day',\n fr: 'Jour de la Découverte'\n }\n }\n }\n }\n }\n },\n CC: {\n names: {\n en: 'Cocos (Keeling) Islands'\n },\n langs: [\n 'en'\n ],\n zones: [\n 'Indian/Cocos'\n ],\n dayoff: 'sunday',\n days: {\n 'chinese 01-0-01 and if sunday then next tuesday if saturday then next monday': {\n name: {\n en: 'Chinese New Year'\n },\n substitute: true\n },\n 'chinese 01-0-02 and if sunday then next tuesday if saturday then next monday': {\n name: {\n en: 'Chinese New Year (2nd Day)'\n },\n substitute: true\n },\n '01-01': {\n _name: '01-01'\n },\n '01-26': {\n name: {\n en: 'Australia Day'\n }\n },\n '03-20': {\n name: {\n en: 'Labour Day'\n }\n },\n 'easter 1': {\n _name: 'easter 1'\n },\n '04-06': {\n name: {\n en: 'Self Determination Day'\n }\n },\n '04-25': {\n name: {\n en: 'Anzac Day'\n }\n },\n '12-25 and if sunday then next tuesday': {\n _name: '12-25',\n substitute: true\n },\n '12-26 and if sunday then next monday': {\n _name: '12-26',\n substitute: true\n },\n '1 Muharram and if sunday then next monday': {\n substitute: true,\n _name: '1 Muharram'\n },\n '1 Shawwal and if sunday then next monday': {\n substitute: true,\n _name: '1 Shawwal',\n name: {\n en: 'Hari Raya Puasa'\n }\n },\n '10 Dhu al-Hijjah and if sunday then next monday': {\n substitute: true,\n _name: '10 Dhu al-Hijjah',\n name: {\n en: 'Hari Raya Haji'\n }\n },\n '12 Rabi al-awwal and if sunday then next monday': {\n substitute: true,\n _name: '12 Rabi al-awwal',\n name: {\n en: 'Hari Maulaud Nabi'\n }\n }\n }\n },\n CD: {\n names: {\n fr: 'République démocratique du Congo',\n en: 'Democratic Republic of the Congo'\n },\n dayoff: 'sunday',\n langs: [\n 'fr'\n ],\n zones: [\n 'Africa/Maputo',\n 'Africa/Lagos'\n ],\n days: {\n '01-01 and if sunday then next monday': {\n substitute: true,\n _name: '01-01'\n },\n '01-04 and if sunday then next monday': {\n substitute: true,\n name: {\n fr: \"Martyrs de l'Indépendance\",\n en: 'Day of the Martyrs'\n }\n },\n '01-16 and if sunday then next tuesday': {\n substitute: true,\n name: {\n fr: 'Journée du Héro National Laurent Désiré Kabila',\n en: 'Anniversary of President Laurent Kabila'\n }\n },\n '01-17 and if sunday then next monday': {\n substitute: true,\n name: {\n fr: 'Journée du Héro National Patrice Emery Lumumba',\n en: 'Anniversary of Prime Minister Patrice Emery Lumumba'\n }\n },\n '05-01 and if sunday then next monday': {\n substitute: true,\n _name: '05-01'\n },\n '05-17 and if sunday then next monday': {\n substitute: true,\n name: {\n fr: 'Journée de la Révolution et des Forces Armées',\n en: 'Liberation Day'\n }\n },\n '06-30 and if sunday then next monday': {\n substitute: true,\n _name: 'Independence Day',\n name: {\n fr: 'Anniversaire de Indépendance'\n }\n },\n '08-01 and if sunday then next monday': {\n substitute: true,\n name: {\n fr: 'Fête des parents',\n en: \"Parents' Day\"\n }\n },\n '12-25 and if sunday then next monday': {\n substitute: true,\n _name: '12-25'\n },\n '2016-01-15': {\n _name: 'Public Holiday'\n }\n }\n },\n CF: {\n names: {\n fr: 'République centrafricaine',\n sg: 'Ködörösêse tî Bêafrîka',\n en: 'Central African Republic'\n },\n dayoff: 'sunday',\n langs: [\n 'fr',\n 'sg'\n ],\n zones: [\n 'Africa/Lagos'\n ],\n days: {\n '01-01': {\n _name: '01-01'\n },\n '03-29': {\n name: {\n fr: 'Décès du Fondateur Barthélémy Boganda',\n en: 'Boganda Day'\n }\n },\n 'easter 1': {\n _name: 'easter 1'\n },\n '05-01': {\n _name: '05-01'\n },\n 'easter 39': {\n _name: 'easter 39'\n },\n 'easter 50': {\n _name: 'easter 50'\n },\n '06-30': {\n name: {\n fr: 'Journée de prière',\n en: 'General Prayer Day'\n }\n },\n '08-13': {\n _name: 'Independence Day'\n },\n '08-15': {\n _name: '08-15'\n },\n '11-01': {\n _name: '11-01'\n },\n '12-01': {\n name: {\n fr: 'Jour de la République',\n en: 'Republic Day'\n }\n },\n '12-25': {\n _name: '12-25'\n },\n '1 Shawwal': {\n _name: '1 Shawwal'\n },\n '10 Dhu al-Hijjah': {\n _name: '10 Dhu al-Hijjah'\n }\n }\n },\n CG: {\n names: {\n fr: 'République du Congo',\n en: 'Republic of the Congo'\n },\n dayoff: 'sunday',\n langs: [\n 'fr',\n 'en'\n ],\n zones: [\n 'Africa/Lagos'\n ],\n days: {\n '01-01': {\n _name: '01-01'\n },\n 'easter 1': {\n _name: 'easter 1'\n },\n '05-01': {\n _name: '05-01'\n },\n 'easter 39': {\n _name: 'easter 39'\n },\n 'easter 49': {\n _name: 'easter 49'\n },\n 'easter 50': {\n _name: 'easter 50'\n },\n '06-10': {\n name: {\n fr: 'Fête de la commémoration de la conférence nationale souveraine'\n }\n },\n '08-15': {\n _name: '08-15'\n },\n '11-01': {\n _name: '11-01'\n },\n '11-28': {\n name: {\n fr: 'Journée nationale de la République'\n }\n },\n '12-25': {\n _name: '12-25'\n }\n }\n },\n CH: {\n names: {\n de: 'Schweiz',\n fr: 'Suisse',\n it: 'Svizzera',\n en: 'Switzerland'\n },\n dayoff: 'sunday',\n langs: [\n 'de-ch',\n 'de',\n 'fr',\n 'it'\n ],\n zones: [\n 'Europe/Zurich'\n ],\n days: {\n '01-01': {\n _name: '01-01'\n },\n 'easter -3': {\n _name: 'easter -3',\n type: 'observance'\n },\n 'easter -2': {\n _name: 'easter -2'\n },\n easter: {\n _name: 'easter'\n },\n 'easter 1': {\n _name: 'easter 1'\n },\n 'easter 39': {\n _name: 'easter 39',\n name: {\n de: 'Auffahrt'\n }\n },\n 'easter 49': {\n _name: 'easter 49'\n },\n 'easter 50': {\n _name: 'easter 50'\n },\n '2nd sunday in May': {\n _name: 'Mothers Day',\n type: 'observance'\n },\n '1st sunday in June': {\n name: {\n de: 'Vätertag',\n fr: 'Fête des pères'\n },\n type: 'observance',\n active: [\n {\n from: '2009-01-01'\n }\n ]\n },\n '08-01': {\n name: {\n de: 'Bundesfeiertag',\n fr: 'Fête nationale',\n it: 'Giorno festivo federale'\n }\n },\n '3rd sunday after 09-01': {\n name: {\n de: 'Eidg. Dank-, Buss- und Bettag',\n fr: 'Jeûne fédéral',\n it: 'Digiuno federale',\n en: 'Federal Day of Thanksgiving, Repentance and Prayer'\n }\n },\n '12-25': {\n _name: '12-25',\n name: {\n de: 'Weihnachtstag'\n }\n },\n '12-26': {\n _name: '12-26',\n name: {\n de: 'Stephanstag',\n fr: 'Saint-Etienne'\n }\n }\n },\n states: {\n ZH: {\n names: {\n de: 'Kanton Zürich',\n fr: 'Canton de Zurich',\n it: 'Canton Zurigo',\n en: 'Canton of Zürich'\n },\n days: {\n '01-02': {\n name: {\n de: 'Berchtoldstag',\n fr: 'Saint-Berthold'\n },\n type: 'optional'\n },\n '05-01': {\n _name: '05-01'\n },\n 'easter 50': {\n _name: 'easter 50'\n },\n 'monday after 2nd saturday in September 13:00': {\n name: {\n de: 'Knabenschiessen'\n },\n type: 'optional'\n }\n }\n },\n BE: {\n names: {\n de: 'Kanton Bern',\n fr: 'Canton de Berne',\n it: 'Canton Berna',\n en: 'Canton of Bern'\n },\n days: {\n '01-02': {\n name: {\n de: 'Berchtoldstag',\n fr: '2 janvier'\n }\n }\n }\n },\n LU: {\n names: {\n de: 'Kanton Luzern',\n fr: 'Canton de Lucerne',\n it: 'Canton Lucerna',\n en: 'Canton of Lucerne'\n },\n days: {\n '01-02': {\n name: {\n de: 'Berchtoldstag',\n fr: 'Saint-Berthold'\n },\n type: 'optional'\n },\n '03-19': {\n _name: '03-19',\n type: 'observance'\n },\n 'easter 1': {\n _name: 'easter 1',\n type: 'optional'\n },\n 'easter 50': {\n _name: 'easter 50',\n type: 'optional'\n },\n 'easter 60': {\n _name: 'easter 60'\n },\n '08-15': {\n _name: '08-15'\n },\n '11-01': {\n _name: '11-01'\n },\n '12-08': {\n _name: '12-08'\n }\n }\n },\n UR: {\n names: {\n de: 'Kanton Uri',\n fr: \"Canton d'Uri\",\n it: 'Canton Uri',\n en: 'Canton of Uri'\n },\n days: {\n '01-06': {\n _name: '01-06'\n },\n '03-19': {\n _name: '03-19'\n },\n 'easter 60': {\n _name: 'easter 60'\n },\n '08-15': {\n _name: '08-15'\n },\n '11-01': {\n _name: '11-01'\n },\n '12-08': {\n _name: '12-08'\n },\n '12-26': false,\n '12-26 not on monday, friday': {\n _name: '12-26'\n }\n }\n },\n SZ: {\n names: {\n de: 'Kanton Schwyz',\n fr: 'Canton de Schwytz',\n it: 'Canton Svitto',\n en: 'Canton of Schwyz'\n },\n days: {\n '01-06': {\n _name: '01-06'\n },\n '03-19': {\n _name: '03-19'\n },\n 'easter 60': {\n _name: 'easter 60'\n },\n '08-15': {\n _name: '08-15'\n },\n '11-01': {\n _name: '11-01'\n },\n '12-08': {\n _name: '12-08'\n }\n }\n },\n OW: {\n names: {\n de: 'Kanton Obwalden',\n fr: \"Canton d'Obwald\",\n it: 'Canton Obvaldo',\n en: 'Canton of Obwalden'\n },\n days: {\n '01-02': {\n name: {\n de: 'Berchtoldstag',\n fr: 'Saint-Berthold'\n },\n type: 'optional'\n },\n 'easter 1': {\n _name: 'easter 1',\n type: 'optional'\n },\n 'easter 50': {\n _name: 'easter 50',\n type: 'optional'\n },\n 'easter 60': {\n _name: 'easter 60'\n },\n '08-15': {\n _name: '08-15'\n },\n '09-25': {\n name: {\n de: 'Bruderklausenfest',\n fr: 'Saint-Nicholas-de-Flüe',\n en: 'Saint Nicholas of Flüe'\n }\n },\n '11-01': {\n _name: '11-01'\n },\n '12-08': {\n _name: '12-08'\n },\n '12-26': {\n _name: '12-26',\n type: 'optional'\n }\n }\n },\n NW: {\n names: {\n de: 'Kanton Nidwalden',\n fr: 'Canton de Nidwald',\n it: 'Canton Nidvaldo',\n en: 'Canton of Nidwalden'\n },\n days: {\n '01-02': {\n name: {\n de: 'Berchtoldstag',\n fr: 'Saint-Berthold'\n },\n type: 'bank'\n },\n '03-19': {\n _name: '03-19'\n },\n 'easter 1': {\n _name: 'easter 1',\n type: 'optional'\n },\n 'easter 50': {\n _name: 'easter 50',\n type: 'optional'\n },\n 'easter 60': {\n _name: 'easter 60'\n },\n '08-15': {\n _name: '08-15'\n },\n '11-01': {\n _name: '11-01'\n },\n '12-08': {\n _name: '12-08'\n },\n '12-26': {\n _name: '12-26',\n type: 'optional'\n }\n }\n },\n GL: {\n sources: [\n 'https://www.gl.ch/verwaltung/staatskanzlei/oeffentliche-feiertage.html/1335'\n ],\n names: {\n de: 'Kanton Glarus',\n fr: 'Canton de Glaris',\n it: 'Canton Glarona',\n en: 'Canton of Glarus'\n },\n days: {\n '01-02': {\n name: {\n de: 'Berchtoldstag',\n fr: 'Saint-Berthold'\n },\n type: 'optional'\n },\n 'Thursday after 04-02 if is observance holiday then next Thursday': {\n name: {\n de: 'Näfelser Fahrt',\n fr: 'Bataille de Näfels'\n }\n },\n '3rd sunday after 09-01': false,\n '11-01': {\n _name: '11-01'\n },\n '12-24': {\n _name: '12-24'\n },\n '12-31': {\n _name: '12-31'\n }\n }\n },\n ZG: {\n names: {\n de: 'Kanton Zug',\n fr: 'Canton de Zoug',\n it: 'Canton Zugo',\n en: 'Canton of Zug'\n },\n days: {\n '01-02': {\n name: {\n de: 'Berchtoldstag',\n fr: 'Saint-Berthold'\n },\n type: 'optional'\n },\n 'easter 1': {\n _name: 'easter 1',\n type: 'optional'\n },\n 'easter 50': {\n _name: 'easter 50',\n type: 'optional'\n },\n 'easter 60': {\n _name: 'easter 60'\n },\n '08-15': {\n _name: '08-15'\n },\n '11-01': {\n _name: '11-01'\n },\n '12-08': {\n _name: '12-08'\n },\n '12-26': {\n _name: '12-26',\n type: 'optional'\n }\n }\n },\n FR: {\n names: {\n fr: 'Canton de Fribourg',\n de: 'Kanton Freiburg',\n it: 'Canton Friburgo',\n en: 'Canton of Fribourg'\n },\n langs: [\n 'fr',\n 'de-ch',\n 'de',\n 'it'\n ],\n days: {\n '01-02': {\n name: {\n de: 'Berchtoldstag',\n fr: 'Saint-Berthold'\n },\n type: 'optional'\n },\n 'easter 1': {\n _name: 'easter 1',\n type: 'optional'\n },\n 'easter 50': {\n _name: 'easter 50',\n type: 'optional'\n },\n 'easter 60': {\n _name: 'easter 60',\n note: 'excluding communities: Agriswil, Altavilla, Büchslen, Cordast, Courgevaux, Courlevon, Fräschels, Galmiz, Gempenach, Greng, Jeuss, Kerzers, Lurtigen, Meyriez, Muntelier, Murten, Ried bei Kerzers (halb), Salvenach, Ulmiz, Bas-Vully, Haut-Vully\\n'\n },\n '08-15': {\n _name: '08-15',\n note: 'excluding communities: Agriswil, Altavilla, Büchslen, Cordast, Courgevaux, Courlevon, Fräschels, Galmiz, Gempenach, Greng, Jeuss, Kerzers, Lurtigen, Meyriez, Muntelier, Murten, Ried bei Kerzers (halb), Salvenach, Ulmiz, Bas-Vully, Haut-Vully\\n'\n },\n '11-01': {\n _name: '11-01',\n note: 'excluding communities: Agriswil, Altavilla, Büchslen, Cordast, Courgevaux, Courlevon, Fräschels, Galmiz, Gempenach, Greng, Jeuss, Kerzers, Lurtigen, Meyriez, Muntelier, Murten, Ried bei Kerzers (halb), Salvenach, Ulmiz, Bas-Vully, Haut-Vully\\n'\n },\n '12-08': {\n _name: '12-08',\n note: 'excluding communities: Agriswil, Altavilla, Büchslen, Cordast, Courgevaux, Courlevon, Fräschels, Galmiz, Gempenach, Greng, Jeuss, Kerzers, Lurtigen, Meyriez, Muntelier, Murten, Ried bei Kerzers (halb), Salvenach, Ulmiz, Bas-Vully, Haut-Vully\\n'\n },\n '12-26': {\n _name: '12-26',\n type: 'optional'\n }\n }\n },\n SO: {\n names: {\n de: 'Kanton Solothurn',\n fr: 'Canton de Soleure',\n it: 'Canton Soletta',\n en: 'Canton of Solothurn'\n },\n days: {\n '01-02': {\n name: {\n de: 'Berchtoldstag',\n fr: 'Saint-Berthold'\n },\n type: 'optional'\n },\n '03-19': {\n _name: '03-19',\n note: 'Only in communities: Fulenbach, Walterswil, Wisen, Metzerlen, Nulgar-St. Pantaleon, Rodersdorf, Bärschwil, Büsserach\\n'\n },\n 'easter 1': {\n _name: 'easter 1',\n type: 'optional'\n },\n '05-01 12:00': {\n _name: '05-01'\n },\n 'easter 50': {\n _name: 'easter 50',\n type: 'optional'\n },\n 'easter 60': {\n _name: 'easter 60',\n note: 'is optional in Bucheggberg'\n },\n '08-15': {\n _name: '08-15',\n note: 'is optional in Bucheggberg'\n },\n '11-01': {\n _name: '11-01',\n note: 'is optional in Bucheggberg'\n },\n '12-26': {\n _name: '12-26',\n type: 'optional'\n }\n }\n },\n BS: {\n names: {\n de: 'Kanton Basel-Stadt',\n fr: 'Canton de Bâle-Ville',\n it: 'Canton Basilea Città',\n en: 'Canton of Basel-City'\n },\n days: {\n '05-01': {\n _name: '05-01'\n }\n }\n },\n BL: {\n names: {\n de: 'Kanton Basel-Landschaft',\n fr: 'Canton de Bâle-Campagne',\n it: 'Canton Basilea Campagna',\n en: 'Canton of Basel-Country'\n },\n days: {\n '05-01': {\n _name: '05-01'\n },\n 'easter 60': {\n _name: 'easter 60',\n type: 'observance'\n }\n }\n },\n SH: {\n names: {\n de: 'Kanton Schaffhausen',\n fr: 'Canton de Schaffhouse',\n it: 'Canton Sciaffusa',\n en: 'Canton of Schaffhausen'\n },\n days: {\n '01-02': {\n name: {\n de: 'Berchtoldstag',\n fr: 'Saint-Berthold'\n },\n type: 'optional'\n },\n '05-01': {\n _name: '05-01'\n }\n }\n },\n AR: {\n names: {\n de: 'Kanton Appenzell Ausserrhoden',\n fr: \"Canton d'Appenzell Rhodes-Extérieures\",\n it: 'Canton Appenzello Esterno',\n en: 'Canton of Appenzell Outer Rhodes'\n },\n days: {\n '12-26': false,\n '12-26 not on monday': {\n _name: '12-26'\n }\n }\n },\n AI: {\n names: {\n de: 'Kanton Appenzell Innerrhoden',\n fr: \"Canton d'Appenzell Rhodes-Intérieures\",\n it: 'Canton Appenzello Interno',\n en: 'Canton of Appenzell Inner-Rhodes'\n },\n days: {\n 'easter 60': {\n _name: 'easter 60'\n },\n '08-15': {\n _name: '08-15'\n },\n '09-22': {\n name: {\n de: 'Mauritiustag'\n },\n note: 'excluding: Bezirk Oberegg\\n'\n },\n '11-01': {\n _name: '11-01'\n },\n '12-26': {\n type: 'observance'\n },\n '12-26 not on tuesday, saturday': {\n _name: '12-26'\n }\n }\n },\n SG: {\n names: {\n de: 'Kanton St. Gallen',\n fr: 'Canton de Saint-Gall',\n it: 'Canton San Gallo',\n en: 'Canton of St. Gallen'\n },\n days: {\n '11-01': {\n _name: '11-01'\n }\n }\n },\n GR: {\n names: {\n de: 'Kanton Graubünden',\n it: 'Cantone dei Grigioni',\n fr: 'Canton des Grisons',\n en: 'Canton of Grisons'\n },\n langs: [\n 'de-ch',\n 'de',\n 'it',\n 'fr'\n ],\n days: {\n '01-06': {\n _name: '01-06',\n type: 'observance'\n },\n '03-19': {\n _name: '03-19',\n type: 'observance'\n },\n 'easter -2': {\n _name: 'easter -2',\n type: 'optional'\n },\n 'easter 60': {\n _name: 'easter 60',\n type: 'observance'\n },\n '08-15': {\n _name: '08-15',\n type: 'observance'\n },\n '11-01': {\n _name: '11-01',\n type: 'observance'\n },\n '12-08': {\n _name: '12-08',\n type: 'observance'\n }\n }\n },\n AG: {\n names: {\n de: 'Kanton Aargau',\n fr: \"Canton d'Argovie\",\n it: 'Canton Argovia',\n en: 'Canton of Aargau'\n },\n days: {\n '01-02': {\n name: {\n de: 'Berchtoldstag',\n fr: 'Saint-Berthold'\n }\n },\n '05-01': {\n _name: '05-01'\n },\n 'easter 60': {\n _name: 'easter 60'\n },\n '08-15': {\n _name: '08-15'\n },\n '11-01': {\n _name: '11-01'\n },\n '12-08': {\n _name: '12-08'\n }\n }\n },\n TG: {\n names: {\n de: 'Kanton Thurgau',\n fr: 'Canton de Thurgovie',\n it: 'Canton Turgovia',\n en: 'Canton of Thurgau'\n },\n days: {\n '01-02': {\n name: {\n de: 'Berchtoldstag',\n fr: 'Saint-Berthold'\n }\n },\n '05-01': {\n _name: '05-01'\n }\n }\n },\n TI: {\n names: {\n it: 'Canton Ticino',\n de: 'Kanton Tessin',\n fr: 'Canton du Tessin',\n en: 'Canton of Ticino'\n },\n langs: [\n 'it',\n 'de-ch',\n 'de',\n 'fr'\n ],\n days: {\n '01-02': {\n name: {\n de: 'Berchtoldstag',\n fr: 'Saint-Berthold'\n },\n type: 'bank'\n },\n '01-06': {\n _name: '01-06',\n name: {\n it: 'Epifania'\n }\n },\n '03-19': {\n _name: '03-19'\n },\n 'easter -2': false,\n 'easter 60': {\n _name: 'easter 60'\n },\n '05-01': {\n _name: '05-01'\n },\n '06-29': {\n _name: '06-29'\n },\n '1st sunday in June': false,\n '08-15': {\n _name: '08-15',\n name: {\n it: 'Assunzione'\n }\n },\n '11-01': {\n _name: '11-01'\n },\n '12-08': {\n _name: '12-08'\n }\n }\n },\n VD: {\n names: {\n fr: 'Canton de Vaud',\n de: 'Kanton Waadt',\n it: 'Canton Vaud',\n en: 'Canton of Vaud'\n },\n langs: [\n 'fr',\n 'de-ch',\n 'de',\n 'it'\n ],\n days: {\n '01-02': {\n name: {\n de: 'Berchtoldstag',\n fr: '2 Janvier'\n }\n },\n 'monday after 3rd sunday in September': {\n name: {\n de: 'Bettagsmontag',\n fr: 'Lundi du Jeûne Fédéral',\n en: 'Monday after Federal Day of Thanksgiving, Repentance and Prayer'\n }\n },\n '12-26': false\n }\n },\n VS: {\n names: {\n fr: 'Canton du Valais',\n de: 'Kanton Wallis',\n it: 'Canton Vallese',\n en: 'Canton of Valais'\n },\n langs: [\n 'fr',\n 'de-ch',\n 'de',\n 'it'\n ],\n days: {\n '01-02': {\n name: {\n de: 'Berchtoldstag',\n fr: 'Saint-Berthold'\n },\n type: 'bank'\n },\n '03-19': {\n _name: '03-19'\n },\n 'easter -2': false,\n 'easter 1': {\n _name: 'easter 1',\n type: 'optional'\n },\n '05-01 12:00': {\n _name: '05-01'\n },\n 'easter 50': {\n _name: 'easter 50'\n },\n 'easter 60': {\n _name: 'easter 60'\n },\n '08-15': {\n _name: '08-15'\n },\n 'monday after 3rd sunday after 09-01': {\n name: {\n de: 'Bettagsmontag',\n fr: 'Lundi du Jeûne Fédéral',\n en: 'Monday after Federal Day of Thanksgiving, Repentance and Prayer'\n },\n type: 'bank'\n },\n '11-01': {\n _name: '11-01'\n },\n '12-08': {\n _name: '12-08'\n },\n '12-24 12:00': {\n _name: '12-24'\n },\n '12-26': {\n type: 'optional'\n }\n }\n },\n NE: {\n names: {\n fr: 'Canton de Neuchâtel',\n de: 'Kanton Neuenburg',\n it: 'Canton Neuchâtel',\n en: 'Canton of Neuchâtel'\n },\n langs: [\n 'fr',\n 'de-ch',\n 'de',\n 'it'\n ],\n days: {\n '01-02 on monday': {\n name: {\n de: 'Berchtoldstag',\n fr: '2 Janvier'\n }\n },\n '01-02': {\n name: {\n de: 'Berchtoldstag',\n fr: '2 Janvier'\n },\n type: 'observance'\n },\n '03-01': {\n name: {\n fr: 'Instauration de la République',\n de: 'Jahrestag Ausrufung der Republik'\n }\n },\n 'easter -2': {\n _name: 'easter -2'\n },\n '05-01': {\n _name: '05-01'\n },\n 'easter 50': {\n _name: 'easter 50',\n type: 'observance'\n },\n 'easter 60': {\n _name: 'easter 60'\n },\n 'monday after 3rd sunday in September': {\n name: {\n de: 'Bettagsmontag',\n fr: 'Lundi du Jeûne Fédéral',\n en: 'Monday after Federal Day of Thanksgiving, Repentance and Prayer'\n },\n type: 'optional'\n },\n '12-26': {\n type: 'observance'\n },\n '12-26 on monday': {\n _name: '12-26'\n }\n }\n },\n GE: {\n names: {\n fr: 'Canton de Genève',\n de: 'Kanton Genf',\n it: 'Canton Ginevra',\n en: 'Canton of Geneva'\n },\n langs: [\n 'fr',\n 'de-ch',\n 'de',\n 'it'\n ],\n days: {\n '01-02': {\n name: {\n de: 'Berchtoldstag',\n fr: '2 Janvier'\n },\n type: 'bank'\n },\n 'thursday after 1st sunday after 09-01': {\n name: {\n de: 'Genfer Bettag',\n fr: 'Jeûne Genevois'\n }\n },\n '12-26': {\n type: 'bank'\n },\n '12-31': {\n name: {\n de: 'Wiederherstellung der Republik',\n fr: 'Restauration de la République',\n en: 'Restoration of the Republic'\n }\n },\n '3rd sunday after 09-01': false\n }\n },\n JU: {\n names: {\n fr: 'Canton du Jura',\n de: 'Kanton Jura',\n it: 'Canton Giura',\n en: 'Canton of Jura'\n },\n langs: [\n 'fr',\n 'de-ch',\n 'de',\n 'it'\n ],\n days: {\n '01-02': {\n name: {\n de: 'Berchtoldstag',\n fr: '2 Janvier'\n }\n },\n '05-01': {\n _name: '05-01'\n },\n 'easter 60': {\n _name: 'easter 60'\n },\n '06-23': {\n name: {\n fr: 'Plébiscite jurassien',\n en: 'Jura Plebiscite',\n de: 'Fest der Unabhängigkeit'\n }\n },\n '08-15': {\n _name: '08-15'\n },\n '11-01': {\n _name: '11-01'\n },\n '12-26': false\n }\n }\n }\n },\n CI: {\n names: {\n fr: \"République de Côte d'Ivoire\",\n en: \"Republic of Côte d'Ivoire\"\n },\n langs: [\n 'fr',\n 'en'\n ],\n zones: [\n 'Africa/Abidjan'\n ],\n dayoff: 'sunday',\n days: {\n '01-01': {\n _name: '01-01'\n },\n 'easter 1': {\n _name: 'easter 1'\n },\n '05-01': {\n _name: '05-01'\n },\n 'easter 39': {\n _name: 'easter 39'\n },\n 'easter 50': {\n _name: 'easter 50'\n },\n '08-07 since 1960': {\n _name: 'Independence Day'\n },\n '08-15': {\n _name: '08-15'\n },\n '11-01': {\n _name: '11-01'\n },\n '11-15 since 1996': {\n name: {\n en: 'National Peace Day'\n }\n },\n '12-25': {\n _name: '12-25'\n },\n '12 Rabi al-awwal': {\n _name: '12 Rabi al-awwal'\n },\n '27 Ramadan': {\n _name: '27 Ramadan'\n },\n '1 Shawwal': {\n _name: '1 Shawwal'\n },\n '10 Dhu al-Hijjah': {\n _name: '10 Dhu al-Hijjah'\n }\n }\n },\n CK: {\n names: {\n rar: \"Kūki 'Āirani\",\n en: 'Cook Islands'\n },\n langs: [\n 'en',\n 'rar'\n ],\n zones: [\n 'Pacific/Rarotonga'\n ],\n dayoff: 'sunday',\n days: {\n '01-01 and if Saturday, Sunday then next Monday': {\n substitute: true,\n _name: '01-01'\n },\n '01-02 and if Saturday then next Monday if Monday, Sunday then next Tuesday': {\n substitute: true,\n name: {\n en: \"Day after New Year's Day\"\n }\n },\n '04-25': {\n name: {\n en: 'Anzac Day'\n }\n },\n 'easter -2': {\n _name: 'easter -2'\n },\n 'easter 1': {\n _name: 'easter 1'\n },\n '1st Monday in June': {\n name: {\n en: \"Queen's Birthday\"\n }\n },\n '1st Friday in July': {\n name: {\n en: 'Ra o te Ui Ariki (House of Ariki)',\n rar: 'Ra o te Ui Ariki'\n }\n },\n '08-04 and if Saturday, Sunday then next Monday': {\n substitute: true,\n _name: 'Constitution Day'\n },\n '10-26 and if Saturday, Sunday then next Monday': {\n substitute: true,\n name: {\n en: 'National Gospel Day'\n }\n },\n '12-25 and if Saturday, Sunday then next Monday': {\n substitute: true,\n _name: '12-25'\n },\n '12-26 and if Saturday then next Monday if Monday, Sunday then next Tuesday': {\n substitute: true,\n _name: '12-26'\n }\n },\n states: {\n Aitutaki: {\n names: {\n en: 'Aitutaki'\n },\n days: {\n '10-26 and if Saturday, Sunday then next Monday': {\n substitute: true,\n name: {\n en: 'Aitutaki Gospel Day'\n }\n }\n }\n },\n Atiu: {\n names: {\n en: 'Atiu'\n },\n days: {\n '07-19 and if Saturday, Sunday then next Monday': {\n substitute: true,\n name: {\n en: 'Atiu Gospel Day'\n }\n }\n }\n },\n Mangaia: {\n names: {\n en: 'Mangaia'\n },\n days: {\n '06-15 and if Saturday, Sunday then next Monday': {\n substitute: true,\n name: {\n en: 'Mangaia Gospel Day'\n }\n }\n }\n },\n Manihiki: {\n names: {\n en: 'Manihiki'\n },\n days: {\n '08-08 and if Saturday, Sunday then next Monday': {\n substitute: true,\n name: {\n en: 'Manihiki Gospel Day'\n }\n }\n }\n },\n Mitiaro: {\n names: {\n en: 'Mitiaro'\n },\n days: {\n '07-21 and if Saturday, Sunday then next Monday': {\n substitute: true,\n name: {\n en: 'Mitiaro Gospel Day'\n }\n }\n }\n },\n Palmerston: {\n names: {\n en: 'Palmerston'\n },\n days: {\n '05-25 and if Saturday, Sunday then next Monday': {\n substitute: true,\n name: {\n en: 'Palmerston Gospel Day'\n }\n }\n }\n },\n Penrhyn: {\n names: {\n en: 'Penrhyn'\n },\n days: {\n '05-13 and if Saturday, Sunday then next Monday': {\n substitute: true,\n name: {\n en: 'Penrhyn Gospel Day'\n }\n }\n }\n },\n Pukapuka: {\n names: {\n en: 'Pukapuka'\n },\n days: {\n '12-06 and if Saturday, Sunday then next Monday': {\n substitute: true,\n name: {\n en: 'Pukapuka Gospel Day'\n }\n }\n }\n },\n Rakahanga: {\n names: {\n en: 'Rakahanga'\n },\n days: {\n '08-15 and if Saturday, Sunday then next Monday': {\n substitute: true,\n name: {\n en: 'Rakahanga Gospel Day'\n }\n }\n }\n },\n Rarotonga: {\n names: {\n en: 'Rarotonga'\n },\n days: {\n '07-25 and if Saturday, Sunday then next Monday': {\n substitute: true,\n name: {\n en: 'Rarotonga Gospel Day'\n }\n }\n }\n }\n }\n },\n CL: {\n names: {\n es: 'Chile',\n en: 'Chile'\n },\n dayoff: 'sunday',\n langs: [\n 'es'\n ],\n zones: [\n 'America/Santiago',\n 'Pacific/Easter'\n ],\n days: {\n '01-01': {\n _name: '01-01'\n },\n 'easter -2': {\n _name: 'easter -2'\n },\n easter: {\n _name: 'easter'\n },\n '05-01': {\n _name: '05-01'\n },\n '05-21': {\n name: {\n en: 'Navy Day',\n es: 'Día de las Glorias Navales'\n }\n },\n '06-29': {\n _name: '06-29'\n },\n '07-16': {\n name: {\n en: 'Our Lady of Mount Carmel',\n es: 'Virgen del Carmen'\n }\n },\n '08-15': {\n _name: '08-15'\n },\n '2022-09-16': {\n name: {\n es: 'Fiestas Patrias',\n en: 'National Holiday'\n }\n },\n '09-18': {\n name: {\n en: 'National holiday',\n es: 'Fiestas Patrias'\n }\n },\n '09-19': {\n name: {\n en: 'Army Day',\n es: 'Día de las Glorias del Ejército'\n }\n },\n '10-12 if tuesday, wednesday, thursday, friday then previous monday': {\n name: {\n en: 'Columbus Day',\n es: 'Encuentro de Dos Mundos'\n }\n },\n '10-31 if wednesday then next friday if tuesday then previous friday': {\n _name: 'Reformation Day'\n },\n '11-01': {\n _name: '11-01'\n },\n '12-08': {\n _name: '12-08'\n },\n '12-25': {\n _name: '12-25'\n },\n '12-31': {\n _name: '12-31',\n type: 'bank'\n }\n },\n states: {\n AP: {\n name: 'Arica y Parinacota',\n days: {\n '06-07': {\n name: {\n en: 'Battle of Arica',\n es: 'Asalto y Toma del Morro de Arica'\n }\n }\n }\n },\n BI: {\n name: 'Biobío',\n regions: {\n CH: {\n name: 'Chillán y Chillán Viejo',\n days: {\n '08-20': {\n name: {\n en: \"Nativity of Liberator Bernardo O'Higgins\",\n es: 'Nacimiento del Prócer de la Independencia'\n }\n }\n }\n }\n }\n },\n TA: {\n name: 'Tarapacá',\n days: {\n '08-10': {\n name: {\n en: 'Saint Lawrence',\n es: 'San Lorenzo de Tarapacá'\n }\n }\n }\n }\n }\n },\n CM: {\n names: {\n fr: 'Cameroun',\n en: 'Cameroon'\n },\n dayoff: 'sunday',\n langs: [\n 'fr',\n 'en'\n ],\n zones: [\n 'Africa/Lagos'\n ],\n days: {\n '01-01': {\n _name: '01-01'\n },\n '02-11': {\n name: {\n fr: 'Fête de la Jeunesse',\n en: 'Youth Day'\n }\n },\n 'easter -2': {\n _name: 'easter -2'\n },\n '05-01 if sunday then next monday': {\n _name: '05-01'\n },\n '05-20': {\n name: {\n fr: \"Fête nationale ou de l'unité\",\n en: 'National Day'\n }\n },\n 'easter 39': {\n _name: 'easter 39'\n },\n '08-15': {\n _name: '08-15'\n },\n '12-25': {\n _name: '12-25'\n },\n '1 Shawwal': {\n _name: '1 Shawwal'\n },\n '10 Dhu al-Hijjah': {\n _name: '10 Dhu al-Hijjah'\n }\n }\n },\n CN: {\n names: {\n en: 'China',\n zh: '中华人民共和国'\n },\n dayoff: 'sunday',\n langs: [\n 'zh',\n 'en'\n ],\n zones: [\n 'Asia/Shanghai',\n 'Asia/Urumqi'\n ],\n days: {\n '01-01': {\n _name: '01-01'\n },\n '03-08 12:00': {\n _name: '03-08',\n note: 'Women'\n },\n '05-01': {\n _name: '05-01'\n },\n '05-04 12:00': {\n name: {\n en: 'Youth Day',\n zh: '青年节'\n },\n note: 'Youth from the age of 14 to 28'\n },\n '06-01': {\n name: {\n en: \"Children's Day\",\n zh: '六一儿童节'\n },\n note: 'Children below the age of 14'\n },\n '08-01 12:00': {\n name: {\n en: 'Army Day',\n zh: '建军节'\n },\n note: 'Military personnel in active service'\n },\n '10-01': {\n name: {\n en: 'National Day',\n zh: '国庆节'\n }\n },\n '10-02': {\n name: {\n en: 'National Day',\n zh: '国庆节'\n }\n },\n '10-03': {\n name: {\n en: 'National Day',\n zh: '国庆节'\n }\n },\n 'chinese 01-0-00': {\n name: {\n en: 'Spring Festival',\n zh: '春节'\n }\n },\n 'chinese 01-0-01': {\n name: {\n en: 'Spring Festival',\n zh: '春节'\n }\n },\n 'chinese 01-0-02': {\n name: {\n en: 'Spring Festival',\n zh: '春节'\n }\n },\n 'chinese 5-01 solarterm': {\n name: {\n en: 'Qingming Festival',\n zh: '清明节 清明節'\n }\n },\n 'chinese 05-0-05': {\n name: {\n en: 'Dragon Boat Festival',\n zh: '端午节'\n }\n },\n 'chinese 08-0-15': {\n name: {\n en: 'Mid-Autumn Festival',\n zh: '中秋节'\n }\n },\n '2021-01-02': {\n _name: '01-01'\n },\n '2021-01-03': {\n _name: '01-01'\n },\n '2021-02-14': {\n name: {\n en: 'Spring Festival',\n zh: '春节'\n },\n note: 'Work on Sun February 7 and Sat February 20.'\n },\n '2021-02-15': {\n name: {\n en: 'Spring Festival',\n zh: '春节'\n }\n },\n '2021-02-16': {\n name: {\n en: 'Spring Festival',\n zh: '春节'\n }\n },\n '2021-02-17': {\n name: {\n en: 'Spring Festival',\n zh: '春节'\n }\n },\n '2021-04-03': {\n name: {\n en: 'Qingming Festival',\n zh: '清明节 清明節'\n }\n },\n '2021-04-05': {\n name: {\n en: 'Qingming Festival',\n zh: '清明节 清明節'\n }\n },\n '2021-05-02': {\n _name: '05-01',\n note: 'Work on Sun April 25 and Sat May 8.'\n },\n '2021-05-03': {\n _name: '05-01'\n },\n '2021-05-04': {\n _name: '05-01'\n },\n '2021-05-05': {\n _name: '05-01'\n },\n '2021-06-12': {\n name: {\n en: 'Dragon Boat Festival',\n zh: '端午节'\n }\n },\n '2021-06-13': {\n name: {\n en: 'Dragon Boat Festival',\n zh: '端午节'\n }\n },\n '2021-09-19': {\n name: {\n en: 'Mid-Autumn Festival',\n zh: '中秋节'\n },\n note: 'Work on Sat September 18.'\n },\n '2021-09-20': {\n name: {\n en: 'Mid-Autumn Festival',\n zh: '中秋节'\n }\n },\n '2021-10-04': {\n name: {\n en: 'National Day',\n zh: '国庆节'\n },\n note: 'Work on Sun September 26 and Sat October 9.'\n },\n '2021-10-05': {\n name: {\n en: 'National Day',\n zh: '国庆节'\n }\n },\n '2021-10-06': {\n name: {\n en: 'National Day',\n zh: '国庆节'\n }\n },\n '2021-10-07': {\n name: {\n en: 'National Day',\n zh: '国庆节'\n }\n }\n }\n },\n CO: {\n names: {\n es: 'Colombia',\n en: 'Colombia'\n },\n dayoff: 'sunday',\n langs: [\n 'es'\n ],\n zones: [\n 'America/Bogota'\n ],\n days: {\n '01-01': {\n _name: '01-01'\n },\n 'monday after 01-06': {\n _name: '01-06'\n },\n 'monday after 03-19': {\n _name: '03-19'\n },\n 'easter -7': {\n _name: 'easter -7',\n type: 'observance'\n },\n 'easter -3': {\n _name: 'easter -3'\n },\n 'easter -2': {\n _name: 'easter -2'\n },\n easter: {\n _name: 'easter'\n },\n '05-01': {\n _name: '05-01'\n },\n 'easter 43': {\n _name: 'easter 39'\n },\n 'easter 64': {\n _name: 'easter 60'\n },\n 'easter 71': {\n name: {\n es: 'Sagrado Corazón de Jesús',\n en: 'Sacred Heart'\n }\n },\n 'monday after 06-29': {\n _name: '06-29'\n },\n '07-20': {\n _name: 'Independence Day'\n },\n '08-07': {\n name: {\n en: 'Battle of Boyacá',\n es: 'Batalla de Boyacá'\n }\n },\n 'monday after 08-15': {\n _name: '08-15'\n },\n 'monday after 10-12': {\n name: {\n es: 'Día de la Raza',\n en: 'Columbus Day'\n }\n },\n '1st monday in November': {\n _name: '11-01'\n },\n 'monday after 11-11': {\n name: {\n es: 'Independencia de Cartagena',\n en: 'Independence of Cartagena'\n }\n },\n '12-08': {\n _name: '12-08'\n },\n '12-25': {\n _name: '12-25'\n }\n }\n },\n CR: {\n names: {\n es: 'Costa Rica',\n en: 'Costa Rica'\n },\n dayoff: 'sunday',\n langs: [\n 'es'\n ],\n zones: [\n 'America/Costa_Rica'\n ],\n days: {\n '01-01': {\n _name: '01-01'\n },\n 'easter -3': {\n _name: 'easter -3'\n },\n 'easter -2': {\n _name: 'easter -2'\n },\n easter: {\n _name: 'easter',\n type: 'observance'\n },\n '04-11': {\n name: {\n es: 'Gesta Heroica de Juan Santamaría'\n }\n },\n '05-01': {\n _name: '05-01'\n },\n '07-25': {\n name: {\n en: 'Guanacaste Day',\n es: 'Anexión del Partido de Nicoya'\n }\n },\n '08-02': {\n name: {\n en: 'Our Lady of Los Ángeles',\n es: 'Día de la Virgen de los Ángeles'\n }\n },\n '08-15': {\n _name: 'Mothers Day'\n },\n '09-15': {\n _name: 'Independence Day'\n },\n '10-12 if monday then previous friday': {\n name: {\n en: 'Columbus Day',\n es: 'Día de la Raza'\n }\n },\n '12-25': {\n _name: '12-25'\n }\n }\n },\n CU: {\n names: {\n es: 'Cuba',\n en: 'Cuba'\n },\n dayoff: 'sunday',\n langs: [\n 'es'\n ],\n zones: [\n 'America/Havana'\n ],\n days: {\n '01-01': {\n name: {\n es: 'Triunfo de la Revolución',\n en: 'Triumph of the Revolution'\n }\n },\n '01-02': {\n name: {\n es: 'Día de Victoria de las Fuerzas Armadas',\n en: 'Victory of Armed Forces Day'\n }\n },\n 'easter -2': {\n _name: 'easter -2'\n },\n '05-01': {\n _name: '05-01'\n },\n '07-25': {\n name: {\n es: 'Conmemoración del asalto a Moncada',\n en: 'Day before the Commemoration of the Assault of the Moncada garrison'\n }\n },\n '07-26': {\n name: {\n es: 'Día de la Rebeldía Nacional',\n en: 'Commemoration of the Assault of the Moncada garrison'\n }\n },\n '07-27': {\n name: {\n es: 'Conmemoración del asalto a Moncada',\n en: 'Day after the Commemoration of the Assault of the Moncada garrison'\n }\n },\n '10-10': {\n _name: 'Independence Day'\n },\n '12-25': {\n _name: '12-25'\n }\n }\n },\n CV: {\n names: {\n pt: 'República de Cabo Verde',\n en: 'Cape Verde'\n },\n langs: [\n 'pt'\n ],\n zones: [\n 'Atlantic/Cape_Verde'\n ],\n dayoff: 'sunday',\n days: {\n '01-01': {\n _name: '01-01'\n },\n '01-13': {\n name: {\n pt: 'Dia da Democracia',\n en: 'Democracy Day'\n }\n },\n '01-20': {\n name: {\n pt: 'Dia dos Heróis Nacionais',\n en: \"Heroes' Day\"\n }\n },\n 'easter -47': {\n _name: 'easter -47'\n },\n 'easter -46': {\n _name: 'easter -46'\n },\n 'easter -2': {\n _name: 'easter -2'\n },\n easter: {\n _name: 'easter',\n type: 'observance'\n },\n '05-01': {\n _name: '05-01'\n },\n '06-01': {\n name: {\n pt: 'Dia das Crianças',\n en: \"Children's Day\"\n }\n },\n '07-05': {\n _name: 'Independence Day'\n },\n '08-15': {\n _name: '08-15',\n name: {\n pt: 'Dia da Padroeira Nacional'\n }\n },\n '09-12': {\n name: {\n pt: 'Dia Nacional',\n en: 'National Day'\n }\n },\n '11-01': {\n _name: '11-01'\n },\n '12-25': {\n _name: '12-25'\n }\n },\n states: {\n S: {\n name: 'Sotavento Islands',\n regions: {\n PR: {\n name: 'Praia',\n days: {\n '05-19': {\n name: {\n pt: 'Dia do Município da Praia'\n }\n }\n }\n }\n }\n }\n }\n },\n CW: {\n names: {\n nl: 'Curaçao',\n pap: 'Kòrsou',\n en: 'Curaçao'\n },\n langs: [\n 'nl',\n 'pap',\n 'en'\n ],\n zones: [\n 'America/Curacao'\n ],\n dayoff: 'sunday',\n days: {\n '01-01': {\n _name: '01-01'\n },\n 'easter -48': {\n _name: 'easter -48',\n name: {\n en: 'Carnival Monday'\n }\n },\n 'easter -2': {\n _name: 'easter -2'\n },\n easter: {\n _name: 'easter',\n type: 'observance'\n },\n 'easter 1': {\n _name: 'easter 1'\n },\n '04-27': {\n name: {\n pap: 'Aña di Rey',\n nl: 'Koningsdag',\n en: 'Kings Day'\n }\n },\n '05-01 if sunday then next monday': {\n _name: '05-01'\n },\n '2nd sunday in May': {\n _name: 'Mothers Day',\n type: 'observance'\n },\n '1st sunday in June': {\n _name: 'Fathers Day',\n type: 'observance'\n },\n 'easter 39': {\n _name: 'easter 39',\n name: {\n nl: 'Hemelvaartsdag'\n }\n },\n '07-02': {\n name: {\n nl: 'Dag van het volkslied en de Vlag',\n pap: 'Dia di Himno i Bandera',\n en: 'Flag Day'\n }\n },\n '10-10': {\n name: {\n nl: 'Dag van het land Curaçao',\n pap: 'Pais Kòrsou',\n en: 'Curaçao Day'\n }\n },\n '12-25': {\n _name: '12-25'\n },\n '12-26': {\n _name: '12-26'\n },\n '12-31 12:00': {\n _name: '12-31'\n }\n }\n },\n CX: {\n names: {\n en: 'Christmas Island'\n },\n langs: [\n 'en',\n 'ms'\n ],\n zones: [\n 'Indian/Christmas'\n ],\n dayoff: 'sunday',\n days: {\n '01-01': {\n _name: '01-01'\n },\n '01-26': {\n name: {\n en: 'Australia Day'\n }\n },\n 'chinese 01-0-01 P2D': {\n name: {\n en: 'Chinese New Year',\n zh: '春节'\n }\n },\n '4th monday in March': {\n _name: '05-01'\n },\n 'easter -2': {\n _name: 'easter -2'\n },\n '04-25': {\n name: {\n en: 'Anzac Day'\n }\n },\n '1 Shawwal': {\n _name: '1 Shawwal',\n name: {\n ms: 'Hari Raya Puasa'\n }\n },\n '10 Dhu al-Hijjah': {\n _name: '10 Dhu al-Hijjah',\n name: {\n ms: 'Hari Raya Haji'\n }\n },\n '10-06': {\n name: {\n en: 'Territory Day'\n }\n },\n '12-25': {\n _name: '12-25'\n },\n '12-26': {\n _name: '12-26'\n }\n }\n },\n CY: {\n names: {\n el: 'Κύπρος',\n en: 'Cyprus'\n },\n dayoff: '',\n langs: [\n 'el'\n ],\n zones: [\n 'Asia/Nicosia'\n ],\n days: {\n '01-01': {\n _name: '01-01'\n },\n '01-06': {\n _name: '01-06'\n },\n 'orthodox -48': {\n name: {\n el: 'Καθαρά Δευτέρα',\n en: 'Ash Sunday'\n },\n type: 'observance'\n },\n 'orthodox -47': {\n name: {\n el: 'Καθαρά Δευτέρα',\n en: 'Clean Monday'\n }\n },\n '03-25': {\n name: {\n el: 'Ευαγγελισμός, Εθνική Εορτή',\n en: 'Annunciation, Anniversary of 1821 Revolution'\n }\n },\n '04-01': {\n name: {\n en: 'Cyprus National Day',\n el: 'Κύπρος Εθνική Εορτή'\n }\n },\n 'orthodox -2': {\n _name: 'easter -2'\n },\n orthodox: {\n _name: 'easter'\n },\n 'orthodox 1': {\n _name: 'easter 1'\n },\n '05-01': {\n _name: '05-01'\n },\n 'orthodox 49': {\n _name: 'easter 49'\n },\n '2nd sunday in May': {\n _name: 'Mothers Day',\n type: 'observance'\n },\n '08-15': {\n _name: '08-15'\n },\n '10-01': {\n name: {\n en: 'Cyprus Independence Day',\n el: 'Ημέρα της Ανεξαρτησίας Κύπρος'\n }\n },\n '10-28': {\n _name: 'National Holiday',\n name: {\n el: 'Επέτειος του Όχι'\n }\n },\n '12-25': {\n _name: '12-25'\n },\n '12-26': {\n _name: '12-26'\n }\n }\n },\n CZ: {\n names: {\n cz: 'Česká republika',\n en: 'Czech Republic'\n },\n langs: [\n 'cz'\n ],\n zones: [\n 'Europe/Prague'\n ],\n days: {\n '01-01': {\n _name: '01-01',\n name: {\n cz: 'Nový rok a Den obnovy samostatného českého státu'\n }\n },\n 'easter -4': {\n name: {\n cz: 'Škaredá středa',\n en: 'Ugly Wednesday'\n },\n type: 'observance'\n },\n 'easter -3': {\n _name: 'easter -3',\n type: 'observance'\n },\n 'easter -2': {\n _name: 'easter -2'\n },\n 'easter -1': {\n _name: 'easter -1',\n type: 'observance'\n },\n easter: {\n _name: 'easter',\n type: 'observance'\n },\n 'easter 1': {\n _name: 'easter 1'\n },\n '05-01': {\n _name: '05-01'\n },\n '05-08': {\n name: {\n cz: 'Den vítězství',\n en: 'Liberation Day'\n }\n },\n '2nd sunday in May': {\n _name: 'Mothers Day',\n type: 'observance'\n },\n '07-05': {\n name: {\n cz: 'Den slovanských věrozvěstů Cyrila a Metoděje',\n en: 'Saints Cyril and Methodius Day'\n }\n },\n '07-06': {\n name: {\n cz: 'Den upálení mistra Jana Husa',\n en: 'Jan Hus Day'\n }\n },\n '09-28': {\n name: {\n cz: 'Den české státnosti',\n en: 'St. Wenceslas Day (Czech Statehood Day)'\n }\n },\n '10-28': {\n name: {\n cz: 'Den vzniku samostatného československého státu',\n en: 'Independent Czechoslovak State Day'\n }\n },\n '11-17': {\n name: {\n cz: 'Den boje za svobodu a demokracii',\n en: 'Struggle for Freedom and Democracy Day'\n }\n },\n '12-24': {\n _name: '12-24'\n },\n '12-25': {\n _name: '12-25'\n },\n '12-26': {\n _name: '12-26'\n }\n }\n },\n DE: {\n names: {\n de: 'Deutschland',\n en: 'Germany'\n },\n dayoff: 'sunday',\n zones: [\n 'Europe/Berlin'\n ],\n langs: [\n 'de'\n ],\n days: {\n '01-01': {\n _name: '01-01'\n },\n '02-14': {\n _name: '02-14',\n type: 'observance'\n },\n 'easter -52': {\n name: {\n de: 'Weiberfastnacht',\n en: \"Women's Carnival Day\"\n },\n type: 'observance'\n },\n 'easter -48': {\n name: {\n de: 'Rosenmontag',\n en: 'Shrove Monday'\n },\n type: 'observance'\n },\n 'easter -47 14:00': {\n _name: 'easter -47',\n type: 'observance'\n },\n 'easter -46': {\n _name: 'easter -46',\n type: 'observance'\n },\n 'easter -3': {\n _name: 'easter -3',\n type: 'observance'\n },\n 'easter -2': {\n _name: 'easter -2'\n },\n easter: {\n _name: 'easter',\n type: 'observance'\n },\n 'easter 1': {\n _name: 'easter 1'\n },\n '05-01': {\n _name: '05-01',\n name: {\n de: 'Maifeiertag'\n }\n },\n '2nd sunday in May': {\n _name: 'Mothers Day',\n type: 'observance'\n },\n 'easter 39': {\n _name: 'easter 39'\n },\n 'easter 49': {\n _name: 'easter 49',\n type: 'observance'\n },\n 'easter 50': {\n _name: 'easter 50'\n },\n '10-03': {\n _name: 'National Holiday',\n name: {\n de: 'Tag der Deutschen Einheit'\n }\n },\n '11-01': {\n _name: '11-01',\n type: 'observance'\n },\n '11-02': {\n _name: '11-02',\n type: 'observance'\n },\n '11-11': {\n _name: '11-11',\n type: 'observance'\n },\n 'wednesday before 11-23': {\n _name: 'Buß- und Bettag',\n type: 'observance'\n },\n '6th sunday before 12-25': {\n name: {\n de: 'Volkstrauertag',\n en: 'Memorial Day'\n },\n type: 'observance'\n },\n '5th sunday before 12-25': {\n name: {\n de: 'Totensonntag'\n },\n type: 'observance'\n },\n '4th sunday before 12-25': {\n name: {\n de: '1. Advent'\n },\n type: 'observance'\n },\n '3th sunday before 12-25': {\n name: {\n de: '2. Advent'\n },\n type: 'observance'\n },\n '2nd sunday before 12-25': {\n name: {\n de: '3. Advent'\n },\n type: 'observance'\n },\n '1st sunday before 12-25': {\n name: {\n de: '4. Advent'\n },\n type: 'observance'\n },\n '12-24 14:00 if sunday then 00:00': {\n _name: '12-24',\n type: 'bank'\n },\n '12-25': {\n _name: '12-25',\n name: {\n de: '1. Weihnachtstag'\n }\n },\n '12-26': {\n _name: '12-26'\n },\n '12-31 14:00 if sunday then 00:00': {\n _name: '12-31',\n type: 'bank'\n },\n '2017-10-31': {\n _name: 'Reformation Day'\n }\n },\n states: {\n BB: {\n name: 'Brandenburg',\n days: {\n easter: {\n _name: 'easter'\n },\n 'easter 49': {\n _name: 'easter 49'\n },\n '10-31': {\n _name: 'Reformation Day'\n }\n }\n },\n BE: {\n name: 'Berlin',\n days: {\n '03-08': {\n _name: '03-08',\n active: [\n {\n from: '2019-01-01T00:00:00.000Z'\n }\n ]\n },\n easter: {\n _name: 'easter',\n type: 'observance'\n },\n 'easter 49': {\n _name: 'easter 49',\n type: 'observance'\n },\n '2020-05-08': {\n name: {\n de: 'Tag der Befreiung (75. Jahrestag)',\n en: 'Liberation Day (75th Anniversary)'\n }\n }\n }\n },\n BW: {\n name: 'Baden-Württemberg',\n days: {\n '01-06': {\n _name: '01-06'\n },\n 'easter -3': {\n _name: 'easter -3',\n type: 'school'\n },\n 'easter 60': {\n _name: 'easter 60'\n },\n '10-31': {\n _name: 'Reformation Day',\n type: 'school'\n },\n '11-01': {\n _name: '11-01'\n }\n }\n },\n BY: {\n name: 'Bayern',\n days: {\n '01-06': {\n _name: '01-06'\n },\n '02-02': {\n _name: '02-02',\n type: 'observance'\n },\n 'easter 60': {\n _name: 'easter 60'\n },\n '08-15': {\n _name: '08-15'\n },\n '11-01': {\n _name: '11-01'\n },\n 'wednesday before 11-23': {\n _name: 'Buß- und Bettag',\n type: 'school'\n }\n },\n regions: {\n A: {\n name: 'Stadt Augsburg',\n days: {\n '08-08': {\n name: {\n de: 'Augsburger Friedensfest',\n en: 'Augsburg Peace Festival'\n }\n }\n }\n },\n EVANG: {\n names: {\n de: 'Überwiegend evangelische Gemeinden',\n en: 'Predominantly protestant communities'\n },\n days: {\n '08-15': {\n _name: '08-15',\n type: 'school'\n }\n }\n }\n }\n },\n HB: {\n name: 'Hansestadt Bremen',\n days: {\n '10-31': {\n _name: 'Reformation Day',\n active: [\n {\n from: '2018-01-01T00:00:00.000Z'\n }\n ]\n }\n }\n },\n HE: {\n name: 'Hessen',\n days: {\n easter: {\n _name: 'easter'\n },\n 'easter 49': {\n _name: 'easter 49'\n },\n 'easter 60': {\n _name: 'easter 60'\n }\n }\n },\n HH: {\n name: 'Hansestadt Hamburg',\n days: {\n '10-31': {\n _name: 'Reformation Day',\n active: [\n {\n from: '2018-01-01T00:00:00.000Z'\n }\n ]\n }\n }\n },\n MV: {\n name: 'Mecklenburg Vorpommern',\n days: {\n '03-08 since 2023': {\n _name: '03-08'\n },\n '10-31': {\n _name: 'Reformation Day'\n }\n }\n },\n NI: {\n name: 'Niedersachsen',\n days: {\n '10-31': {\n _name: 'Reformation Day',\n active: [\n {\n from: '2018-01-01T00:00:00.000Z'\n }\n ]\n }\n }\n },\n NW: {\n name: 'Nordrhein-Westfalen',\n days: {\n 'easter 60': {\n _name: 'easter 60'\n },\n '11-01': {\n _name: '11-01'\n }\n }\n },\n RP: {\n name: 'Rheinland-Pfalz',\n days: {\n 'easter 60': {\n _name: 'easter 60'\n },\n '11-01': {\n _name: '11-01'\n }\n }\n },\n SH: {\n name: 'Schleswig-Holstein',\n days: {\n '10-31': {\n _name: 'Reformation Day',\n active: [\n {\n from: '2018-01-01T00:00:00.000Z'\n }\n ]\n }\n }\n },\n SL: {\n name: 'Saarland',\n days: {\n 'easter 60': {\n _name: 'easter 60'\n },\n '08-15': {\n _name: '08-15'\n },\n '11-01': {\n _name: '11-01'\n }\n }\n },\n SN: {\n name: 'Sachsen',\n days: {\n 'easter 60': {\n _name: 'easter 60',\n type: 'observance'\n },\n '10-31': {\n _name: 'Reformation Day'\n },\n 'wednesday before 11-23': {\n _name: 'Buß- und Bettag'\n }\n },\n regions: {\n BZ: {\n name: 'Landkreis Bautzen',\n days: {\n 'easter 60': {\n _name: 'easter 60',\n type: 'public',\n note: 'Bautzen (nur in den Ortsteilen Bolbritz und Salzenforst), Crostwitz, Göda (nur im Ortsteil Prischwitz), Großdubrau (nur im Ortsteil Sdier), Hoyerswerda (nur im Ortsteil Dörgenhausen), Königswartha (nicht im Ortsteil Wartha), Nebelschütz, Neschwitz (nur in den Ortsteilen Neschwitz und Saritsch), Panschwitz-Kuckau, Puschwitz, Räckelwitz, Radibor, Ralbitz-Rosenthal und Wittichenau.'\n }\n }\n }\n }\n },\n ST: {\n name: 'Sachsen-Anhalt',\n days: {\n '01-06': {\n _name: '01-06'\n },\n '10-31': {\n _name: 'Reformation Day'\n }\n }\n },\n TH: {\n name: 'Thüringen',\n days: {\n 'easter 60': {\n _name: 'easter 60',\n type: 'observance'\n },\n '09-20': {\n name: {\n de: 'Weltkindertag',\n en: \"International Children's Day\"\n },\n active: [\n {\n from: 2019\n }\n ]\n },\n '10-31': {\n _name: 'Reformation Day'\n }\n },\n regions: {\n EIC: {\n name: 'Landkreis Eichfeld',\n days: {\n 'easter 60': {\n _name: 'easter 60',\n type: 'public'\n }\n }\n },\n UH: {\n name: 'Unstrut-Hainich-Kreis',\n days: {\n 'easter 60': {\n _name: 'easter 60',\n type: 'public',\n note: 'In Anrode (nur in den Ortsteilen Bickenriede und Zella), Dünwald (nur in den Ortsteilen Beberstedt und Hüpstedt), Rodeberg (nur im Ortsteil Struth), Südeichsfeld'\n }\n }\n },\n WAK: {\n name: 'Wartburgkreis',\n days: {\n 'easter 60': {\n _name: 'easter 60',\n type: 'public',\n note: 'In Brunnhartshausen (nur in den Ortsteilen Föhlritz und Steinberg), Buttlar, Geisa, Schleid, Zella/Rhön'\n }\n }\n }\n }\n }\n }\n },\n DJ: {\n names: {\n fr: 'République de Djibouti',\n ar: 'جمهورية جيبوتي',\n so: 'Jamhuuriyadda Jabuuti',\n aa: 'Gabuutih Ummuuno',\n en: 'Djibouti'\n },\n langs: [\n 'fr',\n 'ar',\n 'en'\n ],\n zones: [\n 'Africa/Nairobi'\n ],\n dayoff: '',\n days: {\n '01-01': {\n _name: '01-01'\n },\n '05-01': {\n _name: '05-01'\n },\n '06-27 since 1977': {\n _name: 'Independence Day'\n },\n '12-25': {\n _name: '12-25'\n },\n '1 Muharram': {\n _name: '1 Muharram'\n },\n '12 Rabi al-awwal': {\n _name: '12 Rabi al-awwal'\n },\n '27 Rajab': {\n _name: '27 Rajab'\n },\n '1 Shawwal': {\n _name: '1 Shawwal'\n },\n '9 Dhu al-Hijjah': {\n _name: '9 Dhu al-Hijjah'\n },\n '10 Dhu al-Hijjah': {\n _name: '10 Dhu al-Hijjah'\n }\n }\n },\n DK: {\n names: {\n da: 'Danmark',\n en: 'Denmark'\n },\n langs: [\n 'da'\n ],\n zones: [\n 'Europe/Copenhagen'\n ],\n days: {\n '01-01': {\n _name: '01-01'\n },\n 'easter -48': {\n name: {\n da: 'Fastelavn'\n },\n type: 'observance'\n },\n 'easter -3': {\n _name: 'easter -3'\n },\n 'easter -2': {\n _name: 'easter -2'\n },\n easter: {\n _name: 'easter'\n },\n 'easter 1': {\n _name: 'easter 1'\n },\n 'easter 26': {\n name: {\n da: 'Store Bededag',\n en: 'Prayer Day',\n de: 'Buß- und Bettag'\n }\n },\n 'easter 39': {\n _name: 'easter 39'\n },\n '05-01': {\n _name: '05-01',\n type: 'observance',\n note: 'Full holiday for blue collar workers'\n },\n '2nd sunday in May': {\n _name: 'Mothers Day',\n type: 'observance'\n },\n '06-05': {\n _name: 'Constitution Day',\n type: 'observance',\n note: 'Shops are closed'\n },\n 'easter 49': {\n _name: 'easter 49'\n },\n 'easter 50': {\n _name: 'easter 50'\n },\n '12-24': {\n _name: '12-24',\n type: 'observance',\n note: 'Shops are closed'\n },\n '12-25': {\n _name: '12-25'\n },\n '12-26': {\n _name: '12-26'\n }\n }\n },\n DM: {\n names: {\n en: 'Dominica'\n },\n langs: [\n 'en'\n ],\n zones: [\n 'America/Port_of_Spain'\n ],\n dayoff: 'sunday',\n days: {\n '01-01 and if sunday then next monday': {\n _name: '01-01',\n substitute: true\n },\n 'easter -48': {\n _name: 'easter -48',\n name: {\n en: 'Carnival Monday'\n }\n },\n 'easter -47': {\n _name: 'easter -47',\n name: {\n en: 'Carnival Tuesday'\n }\n },\n 'easter -2': {\n _name: 'easter -2'\n },\n easter: {\n _name: 'easter',\n type: 'observance'\n },\n 'easter 1': {\n _name: 'easter 1'\n },\n '05-01': {\n _name: '05-01'\n },\n 'easter 49': {\n _name: 'easter 49',\n type: 'observance'\n },\n 'easter 50': {\n _name: 'easter 50'\n },\n '1st monday in August': {\n name: {\n en: 'Emancipation Day'\n }\n },\n '11-03 if sunday then next monday': {\n _name: 'Independence Day'\n },\n '11-04 if sunday then next monday if monday then next tuesday': {\n name: {\n en: 'National Day of Community Service'\n }\n },\n '12-25 and if sunday then next tuesday': {\n _name: '12-25',\n substitute: true\n },\n '12-26 and if sunday then next monday': {\n _name: '12-26',\n substitute: true\n }\n }\n },\n DO: {\n names: {\n es: 'República Dominicana',\n en: 'Dominican Republic'\n },\n dayoff: 'sunday',\n zones: [\n 'America/Santo_Domingo'\n ],\n langs: [\n 'es'\n ],\n days: {\n '01-01': {\n _name: '01-01'\n },\n '01-06 if tuesday,wednesday then previous monday if thursday,friday then next monday': {\n _name: '01-06'\n },\n '01-21': {\n name: {\n es: 'Nuestra Señora de la Altagracia',\n en: 'Our Lady of Altagracia'\n }\n },\n '01-26 if tuesday,wednesday then previous monday if thursday,friday then next monday': {\n name: {\n es: 'Día de Duarte',\n en: \"Duarte's Birthday\"\n }\n },\n '02-27': {\n _name: 'Independence Day'\n },\n 'easter -2': {\n _name: 'easter -2'\n },\n '05-01 if tuesday,wednesday then previous monday if thursday,friday,sunday then next monday': {\n _name: '05-01'\n },\n 'easter 60': {\n _name: 'easter 60'\n },\n '08-16': {\n name: {\n es: 'Día de la Restauración',\n en: 'Restoration Day'\n }\n },\n '09-24': {\n name: {\n es: 'Nuestra Señora de las Mercedes',\n en: 'Our Lady of las Mercedes'\n }\n },\n '11-06 if tuesday,wednesday,thursday,friday,saturday then next monday': {\n _name: 'Constitution Day'\n },\n '12-25': {\n _name: '12-25'\n }\n }\n },\n DZ: {\n names: {\n ar: 'الجمهورية الجزائرية الديمقراطية الشعبية',\n fr: 'République algérienne démocratique et populaire',\n en: 'Algeria'\n },\n langs: [\n 'ar',\n 'fr',\n 'en'\n ],\n zones: [\n 'Africa/Algiers'\n ],\n dayoff: 'saturday',\n days: {\n '01-01': {\n _name: '01-01'\n },\n '01-12': {\n name: {\n ar: 'رأس السنة الأمازيغية',\n fr: 'Nouvel an amazigh',\n en: 'Amazigh New Year'\n }\n },\n '05-01': {\n _name: '05-01'\n },\n '07-05': {\n _name: 'Independence Day'\n },\n '11-01': {\n _name: 'Revolution Day'\n },\n '1 Muharram': {\n _name: '1 Muharram'\n },\n '10 Muharram': {\n _name: '10 Muharram'\n },\n '12 Rabi al-awwal': {\n _name: '12 Rabi al-awwal'\n },\n '1 Shawwal': {\n _name: '1 Shawwal'\n },\n '10 Dhu al-Hijjah': {\n _name: '10 Dhu al-Hijjah'\n }\n }\n },\n EC: {\n names: {\n es: 'Ecuador',\n en: 'Ecuador'\n },\n dayoff: 'sunday',\n langs: [\n 'es'\n ],\n zones: [\n 'America/Guayaquil',\n 'Pacific/Galapagos'\n ],\n days: {\n '01-01': {\n _name: '01-01'\n },\n 'easter -48': {\n name: {\n en: 'Carnival',\n es: 'Carnaval'\n }\n },\n 'easter -47': {\n _name: 'easter -47'\n },\n 'easter -3': {\n _name: 'easter -3'\n },\n 'easter -2': {\n _name: 'easter -2'\n },\n easter: {\n _name: 'easter',\n type: 'observance'\n },\n '05-01': {\n _name: '05-01'\n },\n '05-24': {\n name: {\n en: 'The Battle of Pichincha',\n es: 'Batalla del Pichincha'\n }\n },\n '07-24': {\n name: {\n en: 'The Birthday of Simón Bolívar',\n es: 'El Natalicio de Simón Bolívar'\n },\n type: 'observance'\n },\n '08-10': {\n name: {\n en: 'Declaration of Independence of Quito',\n es: 'Día del Primer Grito de Independencia de Quito'\n }\n },\n '09-10': {\n name: {\n en: 'Independence of Guayaquil',\n es: 'Independencia de Guayaquil'\n }\n },\n '10-31': {\n name: {\n en: 'Flag Day',\n es: 'Dia de La Bandera'\n },\n type: 'observance'\n },\n '11-02': {\n _name: '11-02'\n },\n '11-03': {\n name: {\n en: 'Independence of Cuenca',\n es: 'Independencia de Cuenca'\n }\n },\n '12-25': {\n _name: '12-25'\n },\n '12-31': {\n _name: '12-31',\n type: 'observance'\n }\n },\n states: {\n P: {\n name: 'Pichincha',\n regions: {\n QU: {\n name: 'Quito',\n days: {\n '12-06': {\n name: {\n en: 'Foundation of Quito',\n es: 'Aniversario de la fundación de Quito'\n },\n type: 'observance'\n }\n }\n }\n }\n }\n }\n },\n EE: {\n names: {\n et: 'Eesti',\n en: 'Estonia'\n },\n dayoff: 'sunday',\n langs: [\n 'et'\n ],\n zones: [\n 'Europe/Tallinn'\n ],\n days: {\n '01-01': {\n _name: '01-01'\n },\n '01-06': {\n _name: '01-06',\n type: 'observance'\n },\n '02-02': {\n name: {\n et: 'Tartu rahulepingu aastapäev',\n en: 'Anniversary of the Tartu Peace Treaty'\n },\n type: 'observance'\n },\n '02-24': {\n _name: 'Independence Day',\n type: 'public'\n },\n '03-14': {\n name: {\n et: 'emakeelepäev',\n en: 'Native Language Day'\n },\n type: 'observance'\n },\n 'easter -2': {\n _name: 'easter -2'\n },\n easter: {\n _name: 'easter'\n },\n '05-01': {\n _name: '05-01'\n },\n '2nd sunday in May': {\n _name: 'Mothers Day',\n type: 'observance'\n },\n 'easter 49': {\n _name: 'easter 49'\n },\n '06-04': {\n name: {\n et: 'Eesti lipu päev',\n en: 'National Flag Day'\n },\n type: 'observance'\n },\n '06-14': {\n name: {\n et: 'leinapäev',\n en: 'Day of Mourning and Commemoration'\n },\n type: 'observance'\n },\n '06-23': {\n name: {\n et: 'võidupüha',\n en: 'Victory Day'\n }\n },\n '06-24': {\n name: {\n et: 'jaanipäev',\n en: 'Midsummer Day'\n }\n },\n '08-20': {\n name: {\n et: 'taasiseseisvumispäev',\n en: 'Day of Restoration of Independence'\n }\n },\n '08-23': {\n name: {\n et: 'kommunismi ja natsismi ohvrite mälestuspäev',\n en: 'European Day of Remembrance for Victims of Stalinism and Nazism'\n },\n type: 'observance'\n },\n '2nd sunday in September': {\n name: {\n et: 'vanavanemate päev',\n en: 'Grandparents Day'\n },\n type: 'observance'\n },\n '09-22': {\n name: {\n et: 'vastupanuvõitluse päev',\n en: 'Resistance Fighting Day'\n },\n type: 'observance'\n },\n '11-02': {\n _name: '11-02',\n type: 'observance'\n },\n '2nd sunday in November': {\n _name: 'Fathers Day',\n type: 'observance'\n },\n '11-16': {\n name: {\n et: 'taassünni päev',\n en: 'Day of Declaration of Sovereignty'\n },\n type: 'observance'\n },\n '12-24': {\n _name: '12-24'\n },\n '12-25': {\n _name: '12-25'\n },\n '12-26': {\n _name: '12-26'\n }\n }\n },\n EG: {\n names: {\n ar: 'جمهورية مصر العربية',\n en: 'Egypt'\n },\n langs: [\n 'ar',\n 'en'\n ],\n zones: [\n 'Africa/Cairo'\n ],\n dayoff: 'saturday',\n days: {\n '01-25 since 2011': {\n name: {\n ar: 'عيد ثورة 25 يناير',\n en: 'Revolution Day 2011'\n }\n },\n '01-25': {\n name: {\n ar: 'عيد الشرطة',\n en: 'National Police Day'\n }\n },\n '04-25': {\n name: {\n ar: 'عيد تحرير سيناء',\n en: 'Sinai Liberation Day'\n }\n },\n '05-01': {\n _name: '05-01'\n },\n '06-30': {\n name: {\n ar: 'عيد ثورة 30 يونيو',\n en: '30 June Day'\n }\n },\n '07-23': {\n _name: 'Revolution Day'\n },\n '10-06': {\n name: {\n ar: 'عيد القوات المسلحة',\n en: 'Armed Forces Day'\n }\n },\n 'orthodox 1': {\n name: {\n ar: 'شم النسيم',\n en: 'Sham El Nessim'\n }\n },\n 'julian 12-25': {\n _name: '12-25'\n },\n '1 Muharram': {\n _name: '1 Muharram'\n },\n '12 Rabi al-awwal': {\n _name: '12 Rabi al-awwal'\n },\n '1 Shawwal P3D': {\n _name: '1 Shawwal'\n },\n '10 Dhu al-Hijjah P4D': {\n _name: '10 Dhu al-Hijjah'\n }\n }\n },\n EH: {\n names: {\n ar: 'الجمهورية العربية الصحراوية الديمقراطية',\n en: 'Western Sahara'\n },\n langs: [],\n zones: [\n 'Africa/El_Aaiun'\n ],\n dayoff: '',\n days: {\n '02-27': {\n _name: 'Independence Day'\n },\n '03-08': {\n name: {\n en: 'First Martyr'\n }\n },\n '05-10': {\n name: {\n en: 'May 20 Revolution'\n }\n },\n '06-09': {\n name: {\n en: 'Day of the Martyrs'\n }\n },\n '06-17': {\n name: {\n en: 'Day of National Unity'\n }\n },\n '1 Muharram': {\n _name: '1 Muharram'\n },\n '12 Rabi al-awwal': {\n _name: '12 Rabi al-awwal'\n },\n '1 Shawwal P2D': {\n _name: '1 Shawwal'\n },\n '10 Dhu al-Hijjah P2D': {\n _name: '10 Dhu al-Hijjah'\n }\n }\n },\n ER: {\n names: {\n en: 'Eritrea'\n },\n langs: [\n 'ti',\n 'en'\n ],\n zones: [\n 'Africa/Nairobi'\n ],\n dayoff: '',\n days: {\n '01-01': {\n _name: '01-01'\n },\n 'julian 12-25': {\n _name: 'julian 12-25'\n },\n 'julian 01-06': {\n _name: '01-06'\n },\n '02-10': {\n name: {\n ti: 'ፈንቅል',\n en: 'Fenkil Day'\n }\n },\n '03-08': {\n _name: '03-08'\n },\n 'orthodox -2': {\n _name: 'orthodox -2'\n },\n orthodox: {\n _name: 'orthodox'\n },\n '05-01': {\n _name: '05-01'\n },\n '05-24': {\n _name: 'Independence Day'\n },\n '06-20': {\n name: {\n en: \"Martyrs' Day\",\n ti: 'መዓልቲ ስውኣት'\n }\n },\n '09-01': {\n _name: 'Revolution Day'\n },\n '09-11 in non-leap years': {\n name: {\n en: 'Geez New Year',\n ti: 'ግዕዝ አዲስ ዓመት'\n }\n },\n '09-12 in leap years': {\n name: {\n en: 'Geez New Year',\n ti: 'ግዕዝ አዲስ ዓመት'\n }\n },\n '09-27 in non-leap years': {\n name: {\n en: 'Meskel'\n }\n },\n '09-28 in leap years': {\n name: {\n en: 'Meskel'\n }\n },\n '12-25': {\n _name: '12-25'\n },\n '12 Rabi al-awwal': {\n _name: '12 Rabi al-awwal'\n },\n '1 Shawwal': {\n _name: '1 Shawwal'\n },\n '10 Dhu al-Hijjah': {\n _name: '10 Dhu al-Hijjah'\n }\n }\n },\n ES: {\n names: {\n es: 'España',\n ca: 'Espanya',\n en: 'Spain'\n },\n langs: [\n 'es'\n ],\n zones: [\n 'Europe/Madrid',\n 'Africa/Ceuta',\n 'Atlantic/Canary'\n ],\n days: {\n '01-01': {\n _name: '01-01'\n },\n 'substitutes 01-01 if sunday then next monday': {\n type: 'observance',\n substitute: true,\n _name: '01-01'\n },\n '01-06': {\n _name: '01-06'\n },\n 'substitutes 01-06 if sunday then next monday': {\n type: 'observance',\n substitute: true,\n _name: '01-06'\n },\n '03-19': {\n _name: '03-19',\n type: 'observance'\n },\n 'easter -3': {\n _name: 'easter -3'\n },\n 'easter -2': {\n _name: 'easter -2'\n },\n easter: {\n _name: 'easter',\n type: 'observance'\n },\n '05-01': {\n _name: '05-01'\n },\n '1st sunday in May': {\n _name: 'Mothers Day',\n type: 'observance'\n },\n 'easter 49': {\n _name: 'easter 49',\n type: 'observance'\n },\n '07-25': {\n name: {\n es: 'Santiago Apostol'\n },\n type: 'observance',\n note: 'regional'\n },\n '08-15': {\n _name: '08-15'\n },\n '10-12': {\n name: {\n es: 'Fiesta Nacional de España'\n }\n },\n 'substitutes 10-12 if sunday then next monday': {\n substitute: true,\n type: 'observance',\n name: {\n es: 'Fiesta Nacional de España'\n }\n },\n '11-01': {\n _name: '11-01'\n },\n 'substitutes 11-01 if sunday then next monday': {\n substitute: true,\n type: 'observance',\n _name: '11-01'\n },\n '12-06': {\n name: {\n es: 'Día de la Constitución Española'\n }\n },\n 'substitutes 12-06 if sunday then next monday': {\n type: 'observance',\n substitute: true,\n name: {\n es: 'Día de la Constitución Española'\n }\n },\n '12-08': {\n _name: '12-08'\n },\n 'substitutes 12-08 if sunday then next monday': {\n type: 'observance',\n substitute: true,\n _name: '12-08'\n },\n '12-25': {\n _name: '12-25'\n },\n 'substitutes 12-25 if sunday then next monday': {\n substitute: true,\n _name: '12-25'\n }\n },\n states: {\n AN: {\n name: 'Andalucía',\n days: {\n '02-28': {\n name: {\n es: 'Día de Andalucía'\n }\n },\n 'substitutes 02-28 if Sunday then next Monday': {\n substitute: true,\n name: {\n es: 'Día de Andalucía'\n }\n },\n 'substitutes 05-01 if Sunday then next Monday': {\n substitute: true,\n _name: '05-01'\n },\n 'substitutes 08-15 if Sunday then next Monday': {\n substitute: true,\n _name: '08-15'\n },\n 'easter -3': {\n _name: 'easter -3'\n }\n }\n },\n AR: {\n name: 'Aragón',\n days: {\n '04-23': {\n name: {\n es: 'Día de Aragón'\n }\n },\n 'substitutes 04-23 if Sunday then next Monday': {\n substitute: true,\n name: {\n es: 'Día de Aragón'\n }\n },\n 'substitutes 05-01 if Sunday then next Monday': {\n substitute: true,\n _name: '05-01'\n },\n 'substitutes 08-15 if Sunday then next Monday': {\n substitute: true,\n _name: '08-15'\n }\n }\n },\n AS: {\n name: 'Asturias',\n days: {\n 'substitutes 05-01 if Sunday then next Monday': {\n substitute: true,\n _name: '05-01'\n },\n 'substitutes 08-15 if Sunday then next Monday': {\n substitute: true,\n _name: '08-15'\n },\n '09-08': {\n name: 'Día de Asturias'\n },\n 'substitutes 09-08 if Sunday then next Monday': {\n substitute: true,\n name: 'Día de Asturias'\n }\n }\n },\n CB: {\n name: 'Cantabria',\n days: {\n '06-28': {\n name: 'Día de las Instituciones de Cantabria'\n },\n 'substitutes 06-28 if Sunday then next Monday': {\n name: 'Día de las Instituciones de Cantabria'\n },\n '09-15': {\n name: 'La Bien Aparecida'\n },\n 'substitutes 09-15 if Sunday then next Monday': {\n name: 'La Bien Aparecida'\n }\n }\n },\n CE: {\n name: 'Ciudad de Ceuta',\n days: {\n '08-05': {\n name: 'Nuestra Señora de África'\n },\n 'substitutes 08-05 if Sunday then next Monday': {\n substitute: true,\n name: 'Nuestra Señora de África'\n },\n '09-02': {\n name: 'Día de Ceuta'\n },\n 'substitutes 09-02 if Sunday then next Monday': {\n substitute: true,\n name: 'Día de Ceuta'\n },\n '9 Dhu al-Hijjah': {\n _name: '9 Dhu al-Hijjah'\n }\n }\n },\n CL: {\n names: {\n es: 'Castilla y León',\n en: 'Castile and León'\n },\n days: {\n '04-23': {\n name: 'Fiesta de Castilla y León'\n },\n 'substitutes 04-23 if Sunday then next Monday': {\n substitute: true,\n name: 'Fiesta de Castilla y León'\n },\n 'substitutes 05-01 if Sunday then next Monday': {\n substitute: true,\n _name: '05-01'\n },\n 'substitutes 08-15 if Sunday then next Monday': {\n substitute: true,\n _name: '08-15'\n }\n }\n },\n CM: {\n name: 'Castile-La Mancha',\n days: {\n '05-31 since 2020': {\n name: 'Día de Castilla-La Mancha'\n },\n 'substitutes 05-31 if Sunday then next Monday since 2020': {\n substitute: true,\n name: 'Día de Castilla-La Mancha'\n },\n 'easter 60': {\n _name: 'easter 60'\n }\n }\n },\n CN: {\n names: {\n es: 'Islas Canarias',\n en: 'Canary Islands'\n },\n zones: [\n 'Atlantic/Canary'\n ],\n dayoff: 'sunday',\n _days: 'IC',\n regions: {\n EH: {\n names: {\n es: 'El Hierro'\n },\n _days: [\n 'IC',\n 'regions',\n 'EH'\n ]\n },\n FU: {\n names: {\n es: 'Fuerteventura'\n },\n _days: [\n 'IC',\n 'regions',\n 'FU'\n ]\n },\n GC: {\n names: {\n es: 'Gran Canaria'\n },\n _days: [\n 'IC',\n 'regions',\n 'GC'\n ]\n },\n LG: {\n names: {\n es: 'La Gomera'\n },\n _days: [\n 'IC',\n 'regions',\n 'LG'\n ]\n },\n LP: {\n names: {\n es: 'La Palma'\n },\n _days: [\n 'IC',\n 'regions',\n 'LP'\n ]\n },\n LA: {\n names: {\n es: 'Lanzarote'\n },\n _days: [\n 'IC',\n 'regions',\n 'LA'\n ]\n },\n TE: {\n names: {\n es: 'Tenerife'\n },\n _days: [\n 'IC',\n 'regions',\n 'TE'\n ]\n }\n }\n },\n CT: {\n names: {\n ca: 'Catalunya',\n es: 'Cataluña',\n en: 'Catalonia'\n },\n days: {\n '09-11': {\n name: {\n ca: 'Diada de Catalunya',\n es: 'Dia de Cataluña'\n }\n },\n '06-24': {\n name: {\n ca: 'Sant Joan',\n es: 'San Juan'\n }\n },\n 'easter -3': {\n _name: 'easter -3',\n type: 'observance'\n },\n 'easter 1': {\n _name: 'easter 1'\n },\n 'easter 50': {\n _name: 'easter 50'\n },\n 'substitutes 05-01 if Saturday, Sunday then next Monday': {\n substitute: true,\n _name: '05-01'\n },\n '09-24 if sunday then next monday': {\n name: {\n es: 'Mare de Déu de la Mercè'\n }\n },\n '12-26': {\n name: {\n ca: 'Sant Esteve',\n es: 'San Esteban'\n },\n type: 'observance'\n }\n }\n },\n EX: {\n name: 'Extremadura',\n days: {\n 'substitutes 05-01 if Sunday then next Monday': {\n substitute: true,\n _name: '05-01'\n },\n '09-08': {\n name: 'Día de Extremadura'\n },\n 'substitutes 09-08 if Sunday then next Monday': {\n substitute: true,\n name: 'Día de Extremadura'\n }\n }\n },\n GA: {\n name: 'Galicia',\n days: {\n '05-17': {\n name: 'Día de las Letras Gallegas'\n },\n 'substitutes 05-17 if Sunday then next Monday': {\n substitute: true,\n name: 'Día de las Letras Gallegas'\n },\n '07-25': {\n name: 'Día Nacional de Galicia'\n },\n 'substitutes 07-25 if Sunday then next Monday': {\n substitute: true,\n name: 'Día Nacional de Galicia'\n }\n }\n },\n IB: {\n names: {\n es: 'Illes Balears',\n en: 'Balearic Islands'\n },\n days: {\n '03-01': {\n name: {\n es: 'Día de les Illes Balears'\n }\n },\n 'substitutes 03-01 if Sunday then next Monday': {\n substitute: true,\n name: {\n es: 'Día de les Illes Balears'\n }\n },\n 'easter 1': {\n _name: 'easter 1'\n },\n '12-26': {\n name: {\n es: 'Sant Esteve'\n },\n type: 'observance'\n }\n }\n },\n MC: {\n name: 'Murcia Region',\n days: {\n 'substitutes 05-01 if Sunday then next Monday': {\n substitute: true,\n _name: '05-01'\n }\n }\n },\n MD: {\n name: 'Comunidad de Madrid',\n days: {\n '05-02 if Sunday then next Monday': {\n name: {\n es: 'Día de la Comunidad de Madrid'\n }\n },\n 'substitutes 05-02 if Sunday then next Monday': {\n substitute: true,\n name: {\n es: 'Día de la Comunidad de Madrid'\n }\n },\n '05-16': {\n name: {\n es: 'San Isidro Labrador'\n },\n type: 'observance'\n },\n '07-25': {\n name: 'Santiago Apóstol'\n },\n 'substitutes 07-25 if Sunday then next Monday': {\n substitute: true,\n name: 'Santiago Apóstol'\n },\n '11-09 if sunday then next monday': {\n name: {\n es: 'Nuestra Señora de la Almudena'\n },\n type: 'observance'\n }\n }\n },\n ML: {\n name: 'Ciudad de Melilla',\n days: {\n '1 Shawwal': {\n _name: '1 Shawwal'\n },\n '10 Dhu al-Hijjah': {\n _name: '10 Dhu al-Hijjah'\n }\n }\n },\n NC: {\n names: {\n es: 'Comunidad Foral de Navarra',\n en: 'Navarra Chartered Community'\n },\n days: {\n 'easter 1': {\n _name: 'easter 1'\n },\n '07-25': {\n name: 'Santiago Apóstol'\n },\n 'substitutes 07-25 if Sunday then next Monday': {\n substitute: true,\n name: 'Santiago Apóstol'\n }\n }\n },\n PV: {\n names: {\n es: 'País Vasco',\n en: 'Basque Country'\n },\n days: {\n 'easter 1': {\n _name: 'easter 1'\n },\n '07-25': {\n name: 'Santiago Apóstol'\n },\n 'substitutes 07-25 if Sunday then next Monday': {\n substitute: true,\n name: 'Santiago Apóstol'\n },\n '2022-09-06': {\n name: 'V Centenario Vuelta al Mundo'\n }\n }\n },\n RI: {\n name: 'La Rioja',\n days: {\n 'easter 1': {\n _name: 'easter 1'\n }\n }\n },\n VC: {\n names: {\n es: 'Comunitat Valenciana',\n en: 'Valencian Community'\n },\n days: {\n '03-19': {\n _name: '03-19'\n },\n 'easter 1': {\n _name: 'easter 1'\n }\n }\n }\n }\n },\n ET: {\n names: {\n am: 'ኢትዮጵያ',\n en: 'Ethiopia'\n },\n dayoff: 'sunday',\n langs: [\n 'am',\n 'en'\n ],\n zones: [\n 'Africa/Nairobi'\n ],\n days: {\n '01-06 in non-leap years': {\n _name: '12-25'\n },\n '01-07 in leap years': {\n _name: '12-25'\n },\n '01-19': {\n _name: '01-06'\n },\n '03-02': {\n name: {\n am: 'የዓድዋ ድል በዓል',\n en: 'Victory at Adwa Day'\n }\n },\n '03-28': {\n name: {\n am: 'የቀይ ሽብር መታሰቢያ ቀን',\n en: 'Day of Lament'\n }\n },\n 'orthodox -2': {\n _name: 'easter -2'\n },\n orthodox: {\n _name: 'easter'\n },\n '05-28': {\n name: {\n am: 'ደርግ የወደቀበት ቀን',\n en: 'Derg Downfall Day'\n }\n },\n '09-11 in non-leap years': {\n _name: '01-01'\n },\n '09-12 in leap years': {\n _name: '01-01'\n },\n '09-27 in non-leap years': {\n name: {\n am: 'ብርሐነ-መስቀል',\n en: 'Finding of the True Cross'\n }\n },\n '09-28 in leap years': {\n name: {\n am: 'ብርሐነ-መስቀል',\n en: 'Finding of the True Cross'\n }\n },\n '1 Ramadan': {\n _name: '1 Ramadan'\n },\n '12 Rabi al-awwal': {\n _name: '12 Rabi al-awwal'\n },\n '1 Shawwal': {\n _name: '1 Shawwal'\n },\n '10 Dhu al-Hijjah': {\n _name: '10 Dhu al-Hijjah'\n }\n }\n },\n FI: {\n names: {\n fi: 'Suomi',\n en: 'Finland'\n },\n dayoff: 'sunday',\n langs: [\n 'fi'\n ],\n zones: [\n 'Europe/Helsinki'\n ],\n days: {\n '01-01': {\n _name: '01-01'\n },\n '01-06': {\n _name: '01-06'\n },\n 'easter -2': {\n _name: 'easter -2'\n },\n easter: {\n _name: 'easter'\n },\n 'easter 1': {\n _name: 'easter 1'\n },\n '05-01': {\n _name: '05-01'\n },\n 'easter 39': {\n _name: 'easter 39'\n },\n 'easter 49': {\n _name: 'easter 49'\n },\n '2nd sunday in May': {\n _name: 'Mothers Day',\n type: 'observance'\n },\n 'friday after 06-19': {\n name: {\n fi: 'Juhannusaatto',\n en: 'Midsummer Eve',\n sv: 'Midsommarafton'\n },\n type: 'bank'\n },\n 'saturday after 06-20': {\n name: {\n fi: 'Juhannuspäivä',\n en: 'Midsummer Day',\n sv: 'Midsommardagen'\n }\n },\n 'saturday after 10-31': {\n _name: '11-01'\n },\n '2nd sunday in November': {\n _name: 'Fathers Day',\n type: 'observance'\n },\n '12-06': {\n _name: 'Independence Day'\n },\n '12-24': {\n _name: '12-24',\n type: 'bank'\n },\n '12-25': {\n _name: '12-25'\n },\n '12-26': {\n _name: '12-26'\n },\n '12-31 14:00 if sunday then 00:00': {\n _name: '12-31',\n type: 'bank'\n }\n }\n },\n FJ: {\n names: {\n fj: 'Matanitu Tugalala o Viti',\n en: 'Fiji'\n },\n langs: [\n 'fj',\n 'en'\n ],\n zones: [\n 'Pacific/Fiji'\n ],\n dayoff: 'sunday',\n days: {\n '01-01': {\n _name: '01-01'\n },\n 'easter -2': {\n _name: 'easter -2'\n },\n 'easter -1': {\n _name: 'easter -1'\n },\n easter: {\n _name: 'easter',\n type: 'observance'\n },\n 'easter 1': {\n _name: 'easter 1'\n },\n '09-07': {\n _name: 'Constitution Day'\n },\n '10-10 and if Sunday then next Monday': {\n substitute: true,\n name: {\n en: 'Fiji Day'\n }\n },\n '12-25 if Sunday then next Monday': {\n _name: '12-25'\n },\n '12-26 if Sunday then next Monday if Monday then next Tuesday': {\n _name: '12-26'\n },\n '12 Rabi al-awwal': {\n _name: '12 Rabi al-awwal'\n },\n '2014-10-22': {\n _name: 'Deepavali',\n name: {\n en: 'Diwali'\n }\n },\n '2015-11-10': {\n _name: 'Deepavali',\n name: {\n en: 'Diwali'\n }\n },\n '2016-10-29': {\n _name: 'Deepavali',\n name: {\n en: 'Diwali'\n }\n },\n '2017-10-19': {\n _name: 'Deepavali',\n name: {\n en: 'Diwali'\n }\n },\n '2018-11-07': {\n _name: 'Deepavali',\n name: {\n en: 'Diwali'\n }\n },\n '2019-10-27': {\n _name: 'Deepavali',\n name: {\n en: 'Diwali'\n }\n },\n '2019-10-28': {\n substitute: true,\n _name: 'Deepavali',\n name: {\n en: 'Diwali'\n }\n },\n '2020-11-14': {\n _name: 'Deepavali',\n name: {\n en: 'Diwali'\n }\n },\n '2020-11-16': {\n substitute: true,\n _name: 'Deepavali',\n name: {\n en: 'Diwali'\n }\n },\n '2021-11-04': {\n _name: 'Deepavali',\n name: {\n en: 'Diwali'\n }\n },\n '2022-10-24': {\n _name: 'Deepavali',\n name: {\n en: 'Diwali'\n }\n },\n '2023-11-12': {\n _name: 'Deepavali',\n name: {\n en: 'Diwali'\n }\n },\n '2023-11-13': {\n substitute: true,\n _name: 'Deepavali',\n name: {\n en: 'Diwali'\n }\n },\n '2024-11-01': {\n _name: 'Deepavali',\n name: {\n en: 'Diwali'\n }\n },\n '2025-10-21': {\n _name: 'Deepavali',\n name: {\n en: 'Diwali'\n }\n }\n }\n },\n FO: {\n names: {\n fo: 'Føroyar',\n da: 'Færøerne',\n en: 'Faroe Islands'\n },\n langs: [\n 'fo',\n 'da'\n ],\n zones: [\n 'Atlantic/Faroe'\n ],\n dayoff: 'sunday',\n days: {\n '01-01': {\n _name: '01-01'\n },\n 'easter -3': {\n _name: 'easter -3'\n },\n 'easter -2': {\n _name: 'easter -2'\n },\n easter: {\n _name: 'easter'\n },\n 'easter 1': {\n _name: 'easter 1'\n },\n '04-24': {\n name: {\n fo: 'Flaggdagur',\n da: 'Flagdag',\n en: 'Flag Day'\n }\n },\n 'easter 26': {\n name: {\n fo: 'Dýri biðidagur',\n en: 'Great Prayer Day'\n }\n },\n 'easter 39': {\n _name: 'easter 39'\n },\n 'easter 49': {\n _name: 'easter 49'\n },\n 'easter 50': {\n _name: 'easter 50'\n },\n '06-05 12:00 if sunday then 00:00': {\n _name: 'Constitution Day'\n },\n '07-28 12:00 if sunday then 00:00': {\n name: {\n da: 'Sankt Olavsaften',\n en: \"St.Olav's Eve\"\n },\n note: \"half-day holiday for some workers' unions\",\n type: 'observance'\n },\n '07-29': {\n name: {\n fo: 'Ólavsøka',\n da: 'Sankt Olavs Dag',\n en: \"St.Olav's Day\"\n },\n note: \"full holiday for most workers' unions\",\n type: 'observance'\n },\n '12-24': {\n _name: '12-24'\n },\n '12-25': {\n _name: '12-25'\n },\n '12-26': {\n _name: '12-26'\n },\n '12-31 12:00 if sunday then 00:00': {\n _name: '12-31'\n }\n }\n },\n FR: {\n names: {\n fr: 'France',\n en: 'France'\n },\n dayoff: 'sunday',\n zones: [\n 'Europe/Paris'\n ],\n langs: [\n 'fr'\n ],\n days: {\n '01-01': {\n _name: '01-01'\n },\n 'easter 1': {\n _name: 'easter 1'\n },\n '05-01': {\n _name: '05-01'\n },\n '05-08': {\n name: {\n fr: 'Fête de la Victoire 1945',\n en: 'Victory Day'\n }\n },\n 'easter 39': {\n _name: 'easter 39'\n },\n 'easter 49': {\n _name: 'easter 49',\n type: 'observance'\n },\n 'easter 50': {\n _name: 'easter 50'\n },\n 'sunday before 06-01': {\n _name: 'Mothers Day',\n type: 'observance'\n },\n '07-14': {\n name: {\n fr: 'Fête Nationale de la France',\n en: 'Bastille Day'\n }\n },\n '08-15': {\n _name: '08-15'\n },\n '11-01': {\n _name: '11-01'\n },\n '11-11': {\n name: {\n fr: 'Armistice 1918',\n en: 'Armistice Day'\n }\n },\n '12-25': {\n _name: '12-25'\n }\n },\n states: {\n 57: {\n name: 'Département Moselle',\n days: {\n 'easter -2': {\n _name: 'easter -2'\n },\n '12-26': {\n _name: '12-26'\n }\n }\n },\n 67: {\n name: 'Département Bas-Rhin',\n days: {\n 'easter -2': {\n _name: 'easter -2'\n },\n '12-26': {\n _name: '12-26'\n }\n }\n },\n 68: {\n name: 'Département Haut-Rhin',\n days: {\n 'easter -2': {\n _name: 'easter -2'\n },\n '12-26': {\n _name: '12-26'\n }\n }\n },\n YT: {\n name: \"Département et région d'outre-mer Mayotte\",\n zones: [\n 'Africa/Nairobi'\n ],\n _days: 'YT'\n },\n MQ: {\n name: \"Département et région d'outre-mer Martinique\",\n zones: [\n 'America/Martinique'\n ],\n _days: 'MQ'\n },\n GP: {\n name: \"Département et région d'outre-mer Guadeloupe\",\n zones: [\n 'America/Port_of_Spain'\n ],\n _days: 'GP'\n },\n GF: {\n name: \"Département et région d'outre-mer Guyane\",\n zones: [\n 'America/Cayenne'\n ],\n _days: 'GF'\n },\n RE: {\n name: \"Département et région d'outre-mer La Réunion\",\n zones: [\n 'Indian/Reunion'\n ],\n _days: 'RE'\n },\n MF: {\n name: \"Département et région d'outre-mer Saint Martin\",\n zones: [\n 'America/Marigot'\n ],\n _days: 'MF'\n },\n BL: {\n name: \"Département et région d'outre-mer Saint Barthélemy\",\n zones: [\n 'America/St_Barthelemy'\n ],\n _days: 'BL'\n }\n }\n },\n GA: {\n names: {\n fr: 'Gabon',\n en: 'Gabon'\n },\n dayoff: 'sunday',\n langs: [\n 'fr'\n ],\n zones: [\n 'Africa/Lagos'\n ],\n days: {\n '01-01': {\n _name: '01-01'\n },\n 'easter 1': {\n _name: 'easter 1'\n },\n '04-17': {\n name: {\n fr: 'Journée des droits de la femme',\n en: \"Women's Day\"\n }\n },\n '05-01': {\n _name: '05-01'\n },\n 'easter 50': {\n _name: 'easter 50'\n },\n '08-15': {\n _name: '08-15'\n },\n '08-16 P2D': {\n _name: 'Independence Day'\n },\n '11-01': {\n _name: '11-01'\n },\n '12-25': {\n _name: '12-25'\n },\n '1 Shawwal': {\n _name: '1 Shawwal'\n },\n '10 Dhu al-Hijjah': {\n _name: '10 Dhu al-Hijjah'\n }\n }\n },\n GB: {\n names: {\n en: 'United Kingdom'\n },\n dayoff: 'sunday',\n zones: [\n 'Europe/London'\n ],\n langs: [\n 'en'\n ],\n days: {\n '01-01': {\n _name: '01-01'\n },\n 'substitutes 01-01 if sunday then next monday': {\n substitute: true,\n _name: '01-01'\n },\n 'substitutes 01-01 if saturday then next monday': {\n substitute: true,\n _name: '01-01'\n },\n 'easter -21': {\n _name: 'Mothers Day',\n type: 'observance'\n },\n 'easter -2': {\n _name: 'easter -2'\n },\n easter: {\n _name: 'easter',\n type: 'observance'\n },\n 'easter 1': {\n _name: 'easter 1'\n },\n '1st monday in May': {\n name: {\n en: 'Early May bank holiday'\n },\n disable: [\n '2020-05-04'\n ]\n },\n '1st monday before 06-01': {\n name: {\n en: 'Spring bank holiday'\n },\n disable: [\n '2022-05-30'\n ],\n enable: [\n '2022-06-02'\n ]\n },\n '12-25': {\n _name: '12-25'\n },\n 'substitutes 12-25 if saturday then next monday if sunday then next tuesday': {\n substitute: true,\n _name: '12-25'\n },\n '12-26': {\n _name: '12-26'\n },\n 'substitutes 12-26 if saturday then next monday if sunday then next tuesday': {\n substitute: true,\n _name: '12-26'\n },\n '2012-06-05': {\n name: {\n en: 'Queen’s Diamond Jubilee'\n }\n },\n '2020-05-08': {\n name: {\n en: 'Early May bank holiday (VE day)'\n }\n },\n '2022-06-03': {\n name: {\n en: 'Queen’s Platinum Jubilee'\n }\n },\n '2022-09-19': {\n name: {\n en: \"Queen Elizabeth's Funeral Day\"\n }\n },\n '3rd sunday in June': {\n _name: 'Fathers Day',\n type: 'observance'\n }\n },\n states: {\n ALD: {\n name: 'Alderney',\n zones: [\n 'Europe/Guernsey'\n ],\n days: {\n '12-15': {\n name: {\n en: 'Homecoming Day'\n }\n }\n }\n },\n ENG: {\n name: 'England',\n days: {\n '1st monday before 09-01': {\n name: {\n en: 'Summer bank holiday'\n }\n }\n }\n },\n NIR: {\n name: 'Northern Ireland',\n zones: [\n 'Europe/Belfast'\n ],\n days: {\n '03-17': {\n name: {\n en: \"St Patrick's Day\"\n }\n },\n 'substitutes 03-17 if saturday then next monday': {\n substitute: true,\n name: {\n en: \"St Patrick's Day\"\n }\n },\n 'substitutes 03-17 if sunday then next monday': {\n substitute: true,\n name: {\n en: \"St Patrick's Day\"\n }\n },\n '07-12': {\n name: {\n en: 'Battle of the Boyne, Orangemen’s Day'\n }\n },\n 'substitutes 07-12 if saturday then next monday': {\n substitute: true,\n name: {\n en: 'Battle of the Boyne'\n }\n },\n 'substitutes 07-12 if sunday then next monday': {\n substitute: true,\n name: {\n en: 'Battle of the Boyne'\n }\n },\n '1st monday before 09-01': {\n name: {\n en: 'Summer bank holiday'\n }\n }\n }\n },\n SCT: {\n name: 'Scotland',\n days: {\n 'substitutes 01-01 if sunday then next monday': false,\n 'substitutes 01-01 if saturday then next monday': false,\n 'substitutes 01-01 if saturday then next tuesday': {\n substitute: true,\n _name: '01-01'\n },\n 'substitutes 01-01 if sunday then next tuesday': {\n substitute: true,\n _name: '01-01'\n },\n '01-02': {\n name: {\n en: 'Januar 2nd'\n }\n },\n 'substitutes 01-02 if saturday then next monday': {\n substitute: true,\n name: {\n en: 'Januar 2nd'\n }\n },\n 'substitutes 01-02 if sunday then next monday': {\n substitute: true,\n name: {\n en: 'Januar 2nd'\n }\n },\n 'easter 1': {\n _name: 'easter 1'\n },\n '1st monday in August': {\n name: {\n en: 'Summer bank holiday'\n }\n },\n '11-30': {\n name: {\n en: 'St Andrew’s Day'\n }\n }\n }\n },\n WLS: {\n name: 'Wales',\n days: {\n '1st monday before 09-01': {\n name: {\n en: 'Summer bank holiday'\n }\n }\n },\n regions: {}\n }\n }\n },\n GD: {\n names: {\n en: 'Grenada'\n },\n dayoff: 'sunday',\n langs: [\n 'en'\n ],\n zones: [\n 'America/Port_of_Spain'\n ],\n days: {\n '01-01': {\n _name: '01-01'\n },\n '02-07': {\n _name: 'Independence Day'\n },\n 'easter -2': {\n _name: 'easter -2'\n },\n easter: {\n _name: 'easter',\n type: 'observance'\n },\n 'easter 1': {\n _name: 'easter 1'\n },\n '04-24 P3D': {\n name: {\n en: 'Carriacou Maroon and String Band Music Festival'\n },\n type: 'observance'\n },\n '05-01': {\n _name: '05-01'\n },\n 'easter 49': {\n _name: 'easter 49',\n type: 'observance'\n },\n 'easter 50': {\n _name: 'easter 50'\n },\n 'easter 60': {\n _name: 'easter 60'\n },\n '1st monday in August': {\n name: {\n en: 'Emancipation Day'\n }\n },\n '2nd monday in August': {\n name: {\n en: 'Carnival Monday'\n }\n },\n 'tuesday after 2nd monday in August': {\n name: {\n en: 'Carnival Tuesday'\n }\n },\n '09-01': {\n name: {\n en: 'Kirani Day'\n },\n type: 'observance'\n },\n '10-15 P5D': {\n name: {\n en: 'Aunty Tek Spice Word Festival'\n },\n type: 'observance'\n },\n '10-25': {\n name: {\n en: 'Thanksgiving Day'\n }\n },\n '12-04 P3D': {\n name: {\n en: 'Camerhogne Folk Festival'\n },\n type: 'observance'\n },\n '12-25': {\n _name: '12-25'\n },\n '12-26': {\n _name: '12-26'\n }\n }\n },\n GE: {\n names: {\n ge: 'საქართველო',\n en: 'Georgia'\n },\n langs: [\n 'ge'\n ],\n zones: [\n 'Asia/Tbilisi'\n ],\n dayoff: 'sunday',\n days: {\n '01-01': {\n _name: '01-01'\n },\n '01-02': {\n name: {\n ge: 'ბედობა',\n en: 'Bedoba'\n }\n },\n '01-07': {\n name: {\n ge: 'შობა',\n en: 'Orthodox Christmas'\n }\n },\n '01-19': {\n name: {\n ge: 'ნათლისღება',\n en: 'Orthodox Epiphany'\n }\n },\n '03-03': {\n name: {\n ge: 'დედის დღე',\n en: \"Mother's Day\"\n }\n },\n '03-08': {\n _name: '03-08'\n },\n '04-09': {\n name: {\n ge: 'ეროვნული ერთიანობის დღე',\n en: 'National Unity Day'\n }\n },\n 'orthodox -2': {\n _name: 'easter -2'\n },\n 'orthodox -1': {\n _name: 'easter -1'\n },\n orthodox: {\n _name: 'easter'\n },\n 'orthodox 1': {\n _name: 'easter 1'\n },\n '05-09': {\n name: {\n ge: 'ფაშიზმზე გამარჯვების დღე',\n en: 'Victory Day'\n }\n },\n '05-12': {\n name: {\n ge: 'წმინდა ანდრია პირველწოდებულის ხსენების დღე',\n en: 'Saint Andrew the First-Called Day'\n }\n },\n '05-26': {\n name: {\n ge: 'დამოუკიდებლობის დღე',\n en: 'Independence Day'\n }\n },\n '08-28': {\n name: {\n ge: 'მარიამობა',\n en: \"Saint Mary's Day\"\n }\n },\n '10-14': {\n name: {\n ge: 'სვეტიცხოვლობა',\n en: 'Svetitskhovloba'\n }\n },\n '11-23': {\n name: {\n ge: 'გიორგობა',\n en: \"Saint George's Day\"\n }\n }\n }\n },\n GF: {\n names: {\n fr: 'Guyane',\n en: 'French Guiana'\n },\n langs: [\n 'fr'\n ],\n zones: [\n 'America/Cayenne'\n ],\n dayoff: 'sunday',\n _days: 'FR',\n days: {\n '06-10': {\n _name: 'Abolition of Slavery'\n }\n }\n },\n GG: {\n names: {\n en: 'Guernsey'\n },\n dayoff: 'sunday',\n zones: [\n 'Europe/Guernsey'\n ],\n langs: [\n 'en'\n ],\n _days: [\n 'GB'\n ],\n days: {\n '05-09': {\n name: {\n en: 'Liberation Day'\n }\n }\n }\n },\n GH: {\n names: {\n en: 'Ghana'\n },\n langs: [\n 'en'\n ],\n zones: [\n 'Africa/Accra'\n ],\n dayoff: '',\n days: {\n '01-01 and if Saturday, Sunday then next Monday': {\n substitute: true,\n _name: '01-01'\n },\n '01-07 since 2019': {\n _name: 'Constitution Day'\n },\n '03-06 and if Saturday, Sunday then next Monday': {\n substitute: true,\n _name: 'Independence Day'\n },\n 'easter -2': {\n _name: 'easter -2'\n },\n easter: {\n _name: 'easter',\n type: 'observance'\n },\n 'easter 1': {\n _name: 'easter 1'\n },\n '05-01 and if Saturday, Sunday then next Monday': {\n substitute: true,\n _name: '05-01'\n },\n '08-04 and if Saturday, Sunday then next Monday': {\n substitute: true,\n name: {\n en: 'Founders Day'\n }\n },\n '09-21 and if Saturday, Sunday then next Monday': {\n substitute: true,\n name: {\n en: 'Kwame Nkrumah Memorial Day'\n }\n },\n '1st Friday in December since 1988': {\n name: {\n en: 'Farmers Day'\n }\n },\n '12-25 and if Saturday then next Monday if Sunday then next Tuesday': {\n substitute: true,\n _name: '12-25'\n },\n '12-26 and if Saturday then next Monday if Sunday then next Tuesday': {\n substitute: true,\n _name: '12-26'\n },\n '1 Shawwal and if Saturday, Sunday then next Monday': {\n substitute: true,\n _name: '1 Shawwal'\n },\n '10 Dhu al-Hijjah and if Saturday, Sunday then next Monday': {\n substitute: true,\n _name: '10 Dhu al-Hijjah'\n }\n }\n },\n GI: {\n names: {\n en: 'Gibraltar'\n },\n langs: [\n 'en'\n ],\n zones: [\n 'Europe/Gibraltar'\n ],\n dayoff: 'sunday',\n _days: 'GB',\n days: {\n '2nd monday in March': {\n name: {\n en: 'Commonwealth Day'\n }\n },\n easter: {\n _name: 'easter',\n type: 'observance'\n },\n '04-28': {\n name: {\n en: 'Workers Memorial Day'\n },\n disable: [\n '2015-04-28'\n ],\n enable: [\n '2015-04-27'\n ]\n },\n '05-01 if sunday, saturday then next monday': {\n substitute: true,\n name: {\n en: 'May Day'\n }\n },\n '1st monday in May': false,\n '2020-05-08': {\n name: {\n en: 'Victory in Europe Day (VE Day)'\n }\n },\n 'monday before 06-20': {\n name: {\n en: \"Queen's Birthday\"\n }\n },\n 'monday before September': {\n name: {\n en: 'Late Summer Bank Holiday'\n }\n },\n '09-10': {\n name: {\n en: 'Gibraltar National Day'\n },\n active: [\n {\n to: 2015\n }\n ]\n },\n '09-10 and if sunday, saturday then previous monday': {\n substitute: true,\n name: {\n en: 'Gibraltar National Day'\n },\n active: [\n {\n from: 2015\n }\n ]\n }\n }\n },\n GL: {\n names: {\n kl: 'Kalaallit Nunaat',\n da: 'Grønland',\n en: 'Greenland'\n },\n langs: [\n 'kl',\n 'da'\n ],\n zones: [\n 'America/Godthab',\n 'America/Danmarkshavn',\n 'America/Scoresbysund',\n 'America/Thule'\n ],\n dayoff: 'sunday',\n days: {\n '01-01': {\n _name: '01-01'\n },\n '01-06': {\n _name: '01-06'\n },\n 'easter -3': {\n _name: 'easter -3'\n },\n 'easter -2': {\n _name: 'easter -2'\n },\n easter: {\n _name: 'easter'\n },\n 'easter 1': {\n _name: 'easter 1'\n },\n 'easter 26': {\n name: {\n kl: 'tussiarfissuaq',\n da: 'Store Bededag',\n en: 'Prayer Day'\n }\n },\n 'easter 39': {\n _name: 'easter 39'\n },\n '06-21': {\n name: {\n kl: 'ullortuneq',\n da: 'Nationaldag',\n en: 'National Day'\n }\n },\n 'easter 49': {\n _name: 'easter 49'\n },\n 'easter 50': {\n _name: 'easter 50'\n },\n '12-24': {\n _name: '12-24'\n },\n '12-25': {\n _name: '12-25'\n },\n '12-26': {\n _name: '12-26'\n }\n }\n },\n GM: {\n names: {\n en: 'The Gambia'\n },\n langs: [\n 'en'\n ],\n zones: [\n 'Africa/Abidjan'\n ],\n dayoff: '',\n days: {\n '01-01': {\n _name: '01-01'\n },\n '02-18': {\n _name: 'Independence Day'\n },\n 'easter -2': {\n _name: 'easter -2'\n },\n easter: {\n _name: 'easter',\n type: 'observance'\n },\n 'easter 1': {\n _name: 'easter 1'\n },\n '05-01': {\n _name: '05-01'\n },\n '05-25': {\n name: {\n en: 'Africa Day'\n }\n },\n '07-22': {\n name: {\n en: 'Revolution Day'\n }\n },\n '08-15': {\n _name: '08-15'\n },\n '12-25': {\n _name: '12-25'\n },\n '10 Muharram': {\n _name: '10 Muharram'\n },\n '12 Rabi al-awwal': {\n _name: '12 Rabi al-awwal'\n },\n '23 Ramadan': {\n _name: '23 Ramadan'\n },\n '1 Shawwal': {\n _name: '1 Shawwal',\n name: {\n en: 'Korité'\n }\n },\n '10 Dhu al-Hijjah': {\n _name: '10 Dhu al-Hijjah',\n name: {\n en: 'Tabaski'\n }\n }\n }\n },\n GN: {\n names: {\n fr: 'Guinée',\n en: 'Guinea'\n },\n langs: [\n 'fr'\n ],\n zones: [\n 'Africa/Abidjan'\n ],\n dayoff: 'sunday',\n days: {\n '01-01': {\n _name: '01-01'\n },\n 'easter 1': {\n _name: 'easter 1'\n },\n '04-03': {\n name: {\n fr: 'Fête Nationale de la deuxième République',\n en: 'National Holiday'\n }\n },\n '05-01': {\n _name: '05-01'\n },\n '05-25': {\n name: {\n fr: \"Anniversaire de l'Organisation de l'unité africaine (OUA)\",\n en: 'Africa Day'\n }\n },\n '27 Ramadan': {\n _name: '27 Ramadan'\n },\n '1 Shawwal': {\n _name: '1 Shawwal'\n },\n '10 Dhu al-Hijjah': {\n _name: '10 Dhu al-Hijjah'\n },\n '08-15': {\n _name: '08-15'\n },\n '10-02': {\n _name: 'Independence Day'\n },\n '12-25': {\n _name: '12-25'\n },\n '12 Rabi al-awwal': {\n _name: '12 Rabi al-awwal'\n }\n }\n },\n GP: {\n names: {\n fr: 'Guadeloupe',\n en: 'Guadeloupe'\n },\n langs: [\n 'fr'\n ],\n zones: [\n 'America/Port_of_Spain'\n ],\n dayoff: 'sunday',\n _days: 'FR',\n days: {\n 'easter 49': false,\n 'easter -2': {\n _name: 'easter -2'\n },\n '05-27': {\n _name: 'Abolition of Slavery'\n },\n '07-21': {\n name: {\n fr: 'Jour de Victor Shoelcher',\n en: 'Victor Shoelcher Day'\n }\n }\n }\n },\n GQ: {\n names: {\n es: 'República de Guinea Ecuatorial',\n fr: 'République de Guinée équatoriale',\n pt: 'República da Guiné Equatorial',\n en: 'Republic of Equatorial Guinea'\n },\n dayoff: 'sunday',\n weekend: [\n 'saturday',\n 'sunday'\n ],\n langs: [\n 'es',\n 'fr',\n 'pt'\n ],\n zones: [\n 'Africa/Lagos'\n ],\n days: {\n '01-01 and if sunday then next monday': {\n substitute: true,\n _name: '01-01'\n },\n 'easter -2': {\n _name: 'easter -2'\n },\n '05-01 and if sunday then next monday': {\n substitute: true,\n _name: '05-01'\n },\n 'easter 60': {\n _name: 'easter 60'\n },\n '06-05 and if sunday then next monday': {\n substitute: true,\n name: {\n es: 'Natalicio de Teodoro Obiang',\n en: \"President's Day\"\n }\n },\n '08-03 and if sunday then next monday': {\n substitute: true,\n name: {\n es: 'Día del Golpe de Libertad',\n en: 'Armed Forces Day'\n }\n },\n '08-15 and if sunday then next monday': {\n substitute: true,\n _name: 'Constitution Day'\n },\n '10-12 and if sunday then next monday': {\n substitute: true,\n _name: 'Independence Day'\n },\n '12-08 and if sunday then next monday': {\n substitute: true,\n _name: '12-08'\n },\n '12-25 and if sunday then next monday': {\n substitute: true,\n _name: '12-25'\n }\n }\n },\n GR: {\n names: {\n el: 'Ελλάδα',\n en: 'Greece'\n },\n dayoff: 'sunday',\n zones: [\n 'Europe/Athens'\n ],\n langs: [\n 'el'\n ],\n days: {\n '01-01': {\n _name: '01-01'\n },\n '01-06': {\n _name: '01-06'\n },\n 'orthodox -48': {\n name: {\n el: 'Καθαρά Δευτέρα',\n en: 'Ash Sunday'\n }\n },\n '03-25': {\n name: {\n el: 'Ευαγγελισμός, Εθνική Εορτή',\n en: 'Annunciation, Anniversary of 1821 Revolution'\n }\n },\n 'orthodox -2': {\n _name: 'easter -2'\n },\n orthodox: {\n _name: 'easter'\n },\n 'orthodox 1': {\n _name: 'easter 1'\n },\n '05-01': {\n _name: '05-01'\n },\n 'orthodox 49': {\n _name: 'easter 49'\n },\n 'orthodox 50': {\n _name: 'easter 50'\n },\n '2nd sunday in May': {\n _name: 'Mothers Day',\n type: 'observance'\n },\n '08-15': {\n _name: '08-15'\n },\n '10-28': {\n _name: 'National Holiday',\n name: {\n el: 'Επέτειος του Όχι'\n }\n },\n '12-25': {\n _name: '12-25'\n },\n '12-26': {\n _name: '12-26'\n }\n }\n },\n GT: {\n names: {\n es: 'Guatemala',\n en: 'Guatemala'\n },\n dayoff: 'sunday',\n langs: [\n 'es'\n ],\n zones: [\n 'America/Guatemala'\n ],\n days: {\n '01-01': {\n _name: '01-01'\n },\n 'easter -3': {\n _name: 'easter -3'\n },\n 'easter -2': {\n _name: 'easter -2'\n },\n 'easter -1': {\n _name: 'easter -1'\n },\n easter: {\n _name: 'easter',\n type: 'observance'\n },\n '05-01': {\n _name: '05-01'\n },\n '06-30 if tuesday then previous monday if wednesday,thursday then next friday': {\n name: {\n es: 'Día de las Fuerzas Armadas',\n en: 'Army Day'\n }\n },\n '09-15': {\n _name: 'Independence Day'\n },\n '10-20': {\n _name: 'Revolution Day'\n },\n '11-01': {\n _name: '11-01'\n },\n '12-24 12:00': {\n _name: '12-24'\n },\n '12-25': {\n _name: '12-25'\n },\n '12-31 12:00': {\n _name: '12-31'\n }\n }\n },\n GU: {\n names: {\n en: 'Guam'\n },\n dayoff: 'sunday',\n langs: [\n 'en-us',\n 'en'\n ],\n zones: [\n 'Pacific/Guam'\n ],\n _days: [\n 'US'\n ],\n days: {\n '3rd monday in February': false,\n '03-17': false,\n '1st monday in March': {\n name: {\n en: 'Guam History and Chamorro Heritage Day'\n }\n },\n 'easter -2': {\n _name: 'easter -2',\n type: 'observance'\n },\n '07-21 if sunday then next monday': {\n name: {\n en: 'Liberation Day'\n }\n },\n '11-02': {\n _name: '11-02'\n },\n '12-08 if sunday then next monday': {\n name: {\n en: 'Our Lady of Camarin Day'\n }\n }\n }\n },\n GW: {\n names: {\n pt: 'Guiné-Bissau',\n en: 'Guinea-Bissau'\n },\n langs: [\n 'pt'\n ],\n zones: [\n 'Africa/Bissau'\n ],\n dayoff: '',\n days: {\n '01-01': {\n _name: '01-01'\n },\n '01-20': {\n name: {\n pt: 'Dia dos heróis',\n en: 'Heroes Day'\n }\n },\n '03-08': {\n _name: '03-08'\n },\n '05-01': {\n _name: '05-01'\n },\n '08-03': {\n name: {\n pt: 'Pidjiguiti Day'\n }\n },\n '09-24': {\n _name: 'Independence Day'\n },\n '11-14': {\n name: {\n pt: 'Dia do Movimento de Reajustamento',\n en: 'Readjustment Movement Day'\n }\n },\n '12-25': {\n _name: '12-25'\n },\n '1 Shawwal': {\n _name: '1 Shawwal'\n },\n '10 Dhu al-Hijjah': {\n _name: '10 Dhu al-Hijjah'\n }\n }\n },\n GY: {\n names: {\n en: 'Guyana'\n },\n coord: {\n lat: 6.8045,\n lng: -58.1553\n },\n dayoff: 'sunday',\n langs: [\n 'en'\n ],\n zones: [\n 'America/Guyana'\n ],\n days: {\n '01-01': {\n _name: '01-01'\n },\n '02-23': {\n name: {\n en: 'Republic Day'\n }\n },\n 'easter -2': {\n _name: 'easter -2'\n },\n 'easter 1': {\n _name: 'easter 1'\n },\n '05-01': {\n _name: '05-01'\n },\n '05-05': {\n name: {\n en: 'Arrival Day'\n }\n },\n '05-26': {\n _name: 'Independence Day'\n },\n 'monday after 07-01': {\n name: {\n en: 'CARICOM Day'\n }\n },\n '08-01': {\n name: {\n en: 'Emancipation Day'\n }\n },\n '12-25': {\n _name: '12-25'\n },\n '12-26': {\n _name: '12-26'\n },\n '12 Rabi al-awwal': {\n _name: '12 Rabi al-awwal',\n name: {\n en: 'Youman Nabi'\n },\n note: 'tentative',\n disable: [\n '2016-12-11',\n '2015-12-23',\n '2013-01-24'\n ],\n enable: [\n '2016-12-12',\n '2015-12-24',\n '2013-01-23'\n ]\n },\n '10 Dhu al-Hijjah': {\n _name: '10 Dhu al-Hijjah',\n name: {\n en: 'Eid Ul Adha'\n },\n note: 'tentative',\n disable: [\n '2015-09-23'\n ],\n enable: [\n '2015-09-24'\n ]\n },\n '2015-03-05': {\n name: {\n en: 'Phagwah'\n }\n },\n '2016-03-23': {\n name: {\n en: 'Phagwah'\n }\n },\n '2017-03-12': {\n name: {\n en: 'Phagwah'\n }\n },\n '2017-03-13': {\n substitute: true,\n name: {\n en: 'Phagwah'\n }\n },\n '2018-03-02': {\n name: {\n en: 'Phagwah'\n }\n },\n '2019-03-21': {\n name: {\n en: 'Phagwah'\n }\n },\n '2020-03-10': {\n name: {\n en: 'Phagwah'\n }\n },\n '2021-03-29': {\n name: {\n en: 'Phagwah'\n }\n },\n '2022-03-18': {\n name: {\n en: 'Phagwah'\n }\n },\n '2023-03-07': {\n name: {\n en: 'Phagwah'\n }\n },\n '2024-03-25': {\n name: {\n en: 'Phagwah'\n }\n },\n '2015-11-11': {\n name: {\n en: 'Deepavali'\n }\n },\n '2017-10-18': {\n name: {\n en: 'Deepavali'\n }\n },\n '2018-11-07': {\n name: {\n en: 'Deepavali'\n }\n },\n '2019-10-27': {\n name: {\n en: 'Deepavali'\n }\n },\n '2019-10-28': {\n substitute: true,\n name: {\n en: 'Deepavali'\n }\n },\n '2020-11-14': {\n name: {\n en: 'Deepavali'\n }\n },\n '2021-11-04': {\n name: {\n en: 'Deepavali'\n }\n },\n '2022-10-24': {\n name: {\n en: 'Deepavali'\n }\n },\n '2023-11-12': {\n name: {\n en: 'Deepavali'\n }\n },\n '2023-11-13': {\n substitute: true,\n name: {\n en: 'Deepavali'\n }\n },\n '2024-10-31': {\n name: {\n en: 'Deepavali'\n }\n }\n }\n },\n HK: {\n names: {\n zh: '香港',\n en: 'Hong Kong'\n },\n langs: [\n 'zh',\n 'en'\n ],\n zones: [\n 'Asia/Hong_Kong'\n ],\n dayoff: 'sunday',\n days: {\n '01-01 and if Sunday then next Monday': {\n substitute: true,\n _name: '01-01',\n name: {\n zh: '一月一日'\n }\n },\n 'chinese 01-0-01 and if Saturday then next Tuesday': {\n name: {\n en: 'Lunar New Year',\n zh: '農曆年初一'\n }\n },\n 'chinese 01-0-02 and if Saturday then next Monday': {\n name: {\n en: 'The second day of the Lunar New Year',\n zh: '農曆年初二'\n }\n },\n 'chinese 01-0-03 and if Saturday then next Monday': {\n name: {\n en: 'The third day of the Lunar New Year',\n zh: '農曆年初三'\n }\n },\n 'chinese 5-01 solarterm and if Sunday then next Monday': {\n name: {\n en: 'Qingming Festival',\n zh: '清明節'\n }\n },\n 'easter -2': {\n _name: 'easter -2'\n },\n 'easter -1': {\n _name: 'easter -1'\n },\n easter: {\n _name: 'easter'\n },\n 'easter 1': {\n _name: 'easter 1',\n disable: [\n '2021-04-05'\n ],\n enable: [\n '2021-04-06'\n ]\n },\n '05-01 and if Sunday then next Monday': {\n substitute: true,\n _name: '05-01'\n },\n 'chinese 04-0-08 and if Sunday then next Monday': {\n name: {\n en: 'Birthday of the Buddha',\n zh: '佛誕'\n }\n },\n 'chinese 05-0-05': {\n name: {\n en: 'Dragon Boat Festival',\n zh: '端午节'\n }\n },\n '07-01 and if Sunday then next Monday': {\n substitute: true,\n name: {\n en: 'Hong Kong Special Administrative Region Establishment Day',\n zh: '香港特別行政區成立紀念日'\n }\n },\n 'chinese 08-0-16 and if Sunday then next Monday if is public holiday then next day omit Saturday, Sunday': {\n substitute: true,\n name: {\n en: 'The day following the Chinese Mid-Autumn Festival',\n zh: '中秋節翌日'\n }\n },\n '10-01 and if Sunday then next Monday': {\n substitute: true,\n name: {\n en: 'National Day',\n zh: '國慶日'\n }\n },\n 'chinese 09-0-09 and if Sunday then next Monday': {\n substitute: true,\n name: {\n en: 'Chung Yeung Festival',\n zh: '重阳节'\n }\n },\n '12-25 and if Sunday then next Monday': {\n substitute: true,\n _name: '12-25'\n },\n '12-26 and if Sunday then next Monday if Monday then next Tuesday': {\n substitute: true,\n name: {\n en: 'The first weekday after Christmas Day',\n zh: '圣诞节后的第一个工作日'\n }\n }\n }\n },\n HN: {\n names: {\n es: 'Honduras',\n en: 'Honduras'\n },\n dayoff: 'sunday',\n langs: [\n 'es'\n ],\n zones: [\n 'America/Tegucigalpa'\n ],\n days: {\n '01-01': {\n _name: '01-01'\n },\n '03-19': {\n _name: 'Fathers Day',\n type: 'observance'\n },\n 'easter -3': {\n _name: 'easter -3'\n },\n 'easter -2': {\n _name: 'easter -2'\n },\n easter: {\n _name: 'easter',\n type: 'observance'\n },\n '04-14': {\n name: {\n es: 'Día de las Américas'\n }\n },\n '05-01': {\n _name: '05-01'\n },\n '2nd monday in May': {\n _name: 'Mothers Day',\n type: 'observance'\n },\n '06-11': {\n name: {\n en: \"Pupil's Day\",\n es: 'Día del Estudiante'\n },\n type: 'observance'\n },\n '09-10': {\n name: {\n en: \"Children's Day\",\n es: 'Día del Niño'\n },\n type: 'observance'\n },\n '09-15': {\n _name: 'Independence Day'\n },\n '09-17': {\n name: {\n en: \"Teacher's Day\",\n es: 'Día del Maestro'\n },\n type: 'observance'\n },\n '10-03': {\n name: {\n en: \"Soldier's Day\",\n es: 'Día del Soldado'\n }\n },\n '10-12': {\n name: {\n es: 'Día de la Raza',\n en: 'Columbus Day'\n }\n },\n '10-21': {\n name: {\n es: 'Día de las Fuerzas Armadas',\n en: 'Armed forces Day'\n }\n },\n '12-25': {\n _name: '12-25'\n }\n }\n },\n HR: {\n names: {\n hr: 'Hrvatska',\n en: 'Croatia'\n },\n langs: [\n 'hr'\n ],\n zones: [\n 'Europe/Belgrade'\n ],\n days: {\n '01-01': {\n _name: '01-01',\n type: 'public'\n },\n '01-06': {\n _name: '01-06',\n type: 'public'\n },\n 'easter -47': {\n _name: 'easter -47',\n type: 'observance'\n },\n easter: {\n _name: 'easter',\n type: 'public'\n },\n 'easter 1': {\n _name: 'easter 1',\n type: 'public'\n },\n 'easter 60': {\n _name: 'easter 60',\n type: 'public'\n },\n '03-08': {\n _name: '03-08',\n type: 'observance'\n },\n '05-01': {\n _name: '05-01',\n type: 'public'\n },\n '05-30': {\n name: {\n hr: 'Dan državnosti',\n en: 'National Day'\n },\n type: 'public',\n active: [\n {\n from: '2020-01-01'\n }\n ]\n },\n '2nd sunday in May': {\n _name: 'Mothers Day',\n type: 'observance'\n },\n '06-22': {\n name: {\n hr: 'Dan antifašističke borbe',\n en: 'Anti-Fascist Struggle Day'\n },\n type: 'public'\n },\n '06-25 #1': {\n name: {\n hr: 'Dan državnosti',\n en: 'Statehood Day'\n },\n type: 'public',\n active: [\n {\n to: '2020-01-01'\n }\n ]\n },\n '06-25': {\n name: {\n hr: 'Dan neovisnosti',\n en: 'Independence Day'\n },\n type: 'observance',\n active: [\n {\n from: '2020-01-01'\n }\n ]\n },\n '08-05': {\n name: {\n hr: 'Dan pobjede i domovinske zahvalnosti i Dan hrvatskih branitelja',\n en: 'Victory and Homeland Thanksgiving Day and the Day of Croatian defenders'\n },\n type: 'public'\n },\n '08-15': {\n _name: '08-15',\n type: 'public'\n },\n '10-08 #1': {\n name: {\n hr: 'Dan neovisnosti',\n en: 'Independence Day'\n },\n type: 'public',\n active: [\n {\n to: '2020-01-01'\n }\n ]\n },\n '10-08': {\n name: {\n hr: 'Dan Hrvatskoga sabora',\n en: 'Day of the Croatian Parliament'\n },\n type: 'observence',\n active: [\n {\n from: '2020-01-01'\n }\n ]\n },\n '11-01': {\n _name: '11-01',\n type: 'public'\n },\n '11-18 #1': {\n name: {\n hr: 'Dan sjećanja na žrtvu Vukovara i Škabrnje',\n en: 'Remembrance Day'\n },\n type: 'observance',\n active: [\n {\n to: '2020-01-01'\n }\n ]\n },\n '11-18': {\n name: {\n hr: 'Dan sjećanja na žrtve Domovinskog rata i Dan sjećanja na žrtvu Vukovara i Škabrnje',\n en: 'Remembrance Day'\n },\n type: 'public',\n active: [\n {\n from: '2020-01-01'\n }\n ]\n },\n '12-25': {\n _name: '12-25',\n type: 'public'\n },\n '12-26': {\n _name: '12-26',\n type: 'public'\n },\n orthodox: {\n _name: 'orthodox',\n type: 'optional',\n note: 'Orthodox believers (legally defined as Christians who follow the Julian Calender)'\n },\n 'orthodox 1': {\n _name: 'orthodox 1',\n type: 'optional',\n note: 'Orthodox believers (legally defined as Christians who follow the Julian Calender)'\n },\n 'julian 12-25': {\n _name: 'julian 12-25',\n type: 'optional',\n note: 'Orthodox believers (legally defined as Christians who follow the Julian Calender)'\n },\n '10 Dhu al-Hijjah': {\n _name: '10 Dhu al-Hijjah',\n type: 'optional',\n note: 'Muslim believers'\n },\n '1 Shawwal': {\n _name: '1 Shawwal',\n type: 'optional',\n note: 'Muslim believers'\n },\n '1 Tishrei': {\n _name: '10 Tishrei',\n type: 'optional',\n note: 'Jewish believers'\n },\n '10 Tishrei': {\n _name: '10 Tishrei',\n type: 'optional',\n note: 'Jewish believers'\n }\n },\n regions: {\n 17: {\n name: 'Split-Dalmatia',\n days: {\n '05-07': {\n name: {\n hr: 'Sveti Duje',\n en: 'Saint Domnius'\n },\n type: 'optional'\n }\n }\n },\n 19: {\n name: 'Dubrovnik-Neretva',\n days: {\n '02-03': {\n name: {\n hr: 'Sveti Vlaho',\n en: 'Saint Blaise'\n },\n type: 'optional'\n }\n }\n }\n }\n },\n HT: {\n names: {\n fr: 'Haïti',\n en: 'Haiti'\n },\n dayoff: 'sunday',\n langs: [\n 'fr'\n ],\n zones: [\n 'America/Port-au-Prince'\n ],\n days: {\n '01-01': {\n _name: 'Independence Day'\n },\n '01-02': {\n name: {\n fr: 'Jour des Aieux',\n en: 'Ancestry Day'\n }\n },\n '01-06': {\n _name: '01-06',\n name: {\n fr: 'Le Jour des Rois'\n },\n type: 'observance'\n },\n 'easter -48 14:00': {\n name: {\n fr: 'Lundi Gras',\n en: 'Lundi Gras'\n }\n },\n 'easter -47': {\n name: {\n fr: 'Mardi Gras',\n en: 'Mardi Gras'\n }\n },\n 'easter -46': {\n _name: 'easter -46',\n type: 'observance'\n },\n 'easter -2': {\n _name: 'easter -2'\n },\n easter: {\n _name: 'easter'\n },\n 'easter 39': {\n _name: 'easter 39'\n },\n 'easter 60': {\n _name: 'easter 60'\n },\n '05-01': {\n _name: '05-01'\n },\n '05-18': {\n name: {\n fr: \"Jour du Drapeau et de l'Université\",\n en: \"Flag and Universities' Day\"\n }\n },\n '08-15': {\n _name: '08-15'\n },\n '10-17': {\n name: {\n fr: 'Anniversaire de la mort de Dessalines',\n en: 'Anniversary of the death of Dessalines'\n }\n },\n '11-01': {\n _name: '11-01'\n },\n '11-02': {\n _name: '11-02'\n },\n '11-18': {\n name: {\n fr: 'Vertières',\n en: 'Battle of Vertières Day'\n }\n },\n '12-05': {\n name: {\n fr: \"Découverte d'Haïti\",\n en: 'Discovery Day'\n },\n type: 'observance'\n },\n '12-25': {\n _name: '12-25'\n }\n }\n },\n HU: {\n names: {\n hu: 'Magyarország',\n en: 'Hungary'\n },\n dayoff: 'sunday',\n langs: [\n 'hu'\n ],\n zones: [\n 'Europe/Budapest'\n ],\n days: {\n '01-01': {\n _name: '01-01',\n type: 'public'\n },\n '02-01': {\n name: {\n hu: 'A köztársaság emléknapja',\n en: 'Memorial Day of the Republic'\n },\n type: 'observance'\n },\n '02-25': {\n name: {\n hu: 'A kommunista diktatúrák áldozatainak emléknapja',\n en: 'Memorial Day for the Victims of the Communist Dictatorships'\n },\n type: 'observance'\n },\n '03-08': {\n _name: '03-08',\n type: 'observance'\n },\n '03-15': {\n name: {\n hu: '1948-as forradalom',\n en: 'National Day'\n },\n type: 'public'\n },\n '04-16': {\n name: {\n en: 'Memorial Day for the Victims of the Holocaust',\n hu: 'A holokauszt áldozatainak emléknapja'\n },\n type: 'observance'\n },\n easter: {\n _name: 'easter',\n type: 'public'\n },\n 'easter 1': {\n _name: 'easter 1',\n type: 'public'\n },\n '05-01': {\n _name: '05-01',\n type: 'public'\n },\n '1st sunday in May': {\n _name: 'Mothers Day',\n type: 'observance'\n },\n '05-21': {\n name: {\n en: 'National Defense Day',\n hu: 'Honvédelmi nap'\n },\n type: 'observance'\n },\n 'easter 49': {\n _name: 'easter 49',\n type: 'public'\n },\n 'easter 50': {\n _name: 'easter 50',\n type: 'public'\n },\n '06-04': {\n name: {\n en: 'Day of National Unity',\n hu: 'A nemzeti összetartozás napja'\n },\n type: 'observance'\n },\n '06-19': {\n name: {\n en: 'Day of the Independent Hungary',\n hu: 'A független Magyarország napja'\n },\n type: 'observance'\n },\n '08-20': {\n name: {\n hu: 'Szent István ünnepe',\n en: \"Saint Stephen's Day\"\n },\n type: 'public'\n },\n '10-06': {\n name: {\n en: 'Memorial Day for the Martyrs of Arad',\n hu: 'Az aradi vértanúk emléknapja'\n },\n type: 'observance'\n },\n '10-23': {\n name: {\n hu: '1956-os forradalom',\n en: 'National Day'\n },\n type: 'public'\n },\n '11-01': {\n _name: '11-01',\n type: 'public'\n },\n '12-06': {\n _name: '12-06',\n type: 'observance'\n },\n '12-24': {\n _name: '12-24',\n type: 'optional'\n },\n '12-25': {\n _name: '12-25',\n type: 'public'\n },\n '12-26': {\n _name: '12-26',\n type: 'public'\n },\n '12-31': {\n _name: '12-31',\n type: 'observance'\n }\n }\n },\n IC: {\n names: {\n es: 'Islas Canarias',\n en: 'Canary Islands'\n },\n langs: [\n 'es'\n ],\n zones: [\n 'Atlantic/Canary'\n ],\n dayoff: 'sunday',\n _days: 'ES',\n days: {\n '05-30': {\n name: {\n es: 'Día de Canarias',\n en: 'Canary Islands Day'\n }\n },\n 'substitutes 05-30 if Sunday then next Monday': {\n substitute: true,\n name: {\n es: 'Día de Canarias',\n en: 'Canary Islands Day'\n }\n },\n 'substitutes 08-15 if Sunday then next Monday': {\n substitute: true,\n _name: '08-15'\n }\n },\n regions: {\n EH: {\n names: {\n es: 'El Hierro'\n },\n days: {\n '09-24': {\n name: {\n es: 'Nuestra Señora de los Reyes'\n }\n }\n }\n },\n FU: {\n names: {\n es: 'Fuerteventura'\n },\n days: {\n '09-18': {\n name: {\n es: 'Nuestra Señora de la Peña'\n }\n }\n }\n },\n GC: {\n names: {\n es: 'Gran Canaria'\n },\n days: {\n '09-08': {\n name: {\n es: 'Nuestra Señora del Pino'\n }\n }\n }\n },\n LG: {\n names: {\n es: 'La Gomera'\n },\n days: {\n '10-05': {\n name: {\n es: 'Nuestra Señora de Guadalupe'\n }\n }\n }\n },\n LP: {\n names: {\n es: 'La Palma'\n },\n days: {\n '08-05': {\n name: {\n es: 'Nuestra Señora de las Nieves'\n }\n }\n }\n },\n LA: {\n names: {\n es: 'Lanzarote'\n },\n days: {\n '09-15': {\n name: {\n es: 'Nuestra Señora de los Dolores'\n }\n }\n }\n },\n TE: {\n names: {\n es: 'Tenerife'\n },\n days: {\n '09-07': {\n name: {\n es: 'La Bajada de la Virgen del Socorro'\n }\n }\n }\n }\n }\n },\n ID: {\n names: {\n en: 'Indonesia',\n id: 'Indonesia'\n },\n langs: [\n 'id'\n ],\n zones: [\n 'Asia/Jakarta',\n 'Asia/Pontianak',\n 'Asia/Makassar',\n 'Asia/Jayapura'\n ],\n dayoff: 'sunday',\n days: {\n '01-01': {\n _name: '01-01'\n },\n 'chinese 01-0-01': {\n name: {\n en: 'Chinese New Year',\n id: 'Tahun Baru Imlek'\n }\n },\n 'easter -2': {\n _name: 'easter -2'\n },\n '05-01': {\n _name: '05-01'\n },\n 'easter 39': {\n _name: 'easter 39'\n },\n '06-01': {\n name: {\n en: 'Pancasila Day',\n id: 'Hari Lahir Pancasila'\n }\n },\n '08-17': {\n _name: 'Independence Day'\n },\n '12-25': {\n _name: '12-25'\n },\n '1 Muharram': {\n _name: '1 Muharram'\n },\n '12 Rabi al-awwal': {\n _name: '12 Rabi al-awwal'\n },\n '27 Rajab': {\n _name: '27 Rajab'\n },\n '1 Shawwal': {\n _name: '1 Shawwal'\n },\n '2 Shawwal': {\n _name: '1 Shawwal'\n },\n '10 Dhu al-Hijjah': {\n _name: '10 Dhu al-Hijjah'\n },\n '2009-03-26': {\n name: {\n en: 'Nyepi',\n id: 'Hari Raya Nyepi'\n }\n },\n '2010-03-16': {\n name: {\n en: 'Nyepi',\n id: 'Hari Raya Nyepi'\n }\n },\n '2011-03-05': {\n name: {\n en: 'Nyepi',\n id: 'Hari Raya Nyepi'\n }\n },\n '2012-03-23': {\n name: {\n en: 'Nyepi',\n id: 'Hari Raya Nyepi'\n }\n },\n '2013-03-12': {\n name: {\n en: 'Nyepi',\n id: 'Hari Raya Nyepi'\n }\n },\n '2014-03-31': {\n name: {\n en: 'Nyepi',\n id: 'Hari Raya Nyepi'\n }\n },\n '2015-03-21': {\n name: {\n en: 'Nyepi',\n id: 'Hari Raya Nyepi'\n }\n },\n '2016-03-09': {\n name: {\n en: 'Nyepi',\n id: 'Hari Raya Nyepi'\n }\n },\n '2017-03-28': {\n name: {\n en: 'Nyepi',\n id: 'Hari Raya Nyepi'\n }\n },\n '2018-03-17': {\n name: {\n en: 'Nyepi',\n id: 'Hari Raya Nyepi'\n }\n },\n '2019-03-07': {\n name: {\n en: 'Nyepi',\n id: 'Hari Raya Nyepi'\n }\n },\n '2020-03-25': {\n name: {\n en: 'Nyepi',\n id: 'Hari Raya Nyepi'\n }\n },\n '2021-03-14': {\n name: {\n en: 'Nyepi',\n id: 'Hari Raya Nyepi'\n }\n },\n '2022-03-03': {\n name: {\n en: 'Nyepi',\n id: 'Hari Raya Nyepi'\n }\n },\n '2023-03-22': {\n name: {\n en: 'Nyepi',\n id: 'Hari Raya Nyepi'\n }\n },\n '2024-03-11': {\n name: {\n en: 'Nyepi',\n id: 'Hari Raya Nyepi'\n }\n },\n '2025-03-29': {\n name: {\n en: 'Nyepi',\n id: 'Hari Raya Nyepi'\n }\n },\n '2026-03-19': {\n name: {\n en: 'Nyepi',\n id: 'Hari Raya Nyepi'\n }\n },\n '2001-05-07': {\n _name: 'Vesak'\n },\n '2002-05-26': {\n _name: 'Vesak'\n },\n '2003-05-16': {\n _name: 'Vesak'\n },\n '2004-06-03': {\n _name: 'Vesak'\n },\n '2005-05-24': {\n _name: 'Vesak'\n },\n '2006-05-13': {\n _name: 'Vesak'\n },\n '2007-06-01': {\n _name: 'Vesak'\n },\n '2008-05-20': {\n _name: 'Vesak'\n },\n '2009-05-09': {\n _name: 'Vesak'\n },\n '2010-05-28': {\n _name: 'Vesak'\n },\n '2011-05-17': {\n _name: 'Vesak'\n },\n '2012-05-06': {\n _name: 'Vesak'\n },\n '2013-05-25': {\n _name: 'Vesak'\n },\n '2014-05-15': {\n _name: 'Vesak'\n },\n '2015-06-02': {\n _name: 'Vesak'\n },\n '2016-05-22': {\n _name: 'Vesak'\n },\n '2017-05-11': {\n _name: 'Vesak'\n },\n '2018-05-29': {\n _name: 'Vesak'\n },\n '2019-05-19': {\n _name: 'Vesak'\n },\n '2020-05-07': {\n _name: 'Vesak'\n },\n '2021-05-26': {\n _name: 'Vesak'\n },\n '2022-05-16': {\n _name: 'Vesak'\n },\n '2023-05-06': {\n _name: 'Vesak'\n },\n '2024-05-23': {\n _name: 'Vesak'\n }\n }\n },\n IE: {\n names: {\n en: 'Ireland'\n },\n dayoff: 'sunday',\n zones: [\n 'Europe/Dublin'\n ],\n langs: [\n 'en'\n ],\n days: {\n '01-01': {\n _name: '01-01'\n },\n '03-17': {\n name: {\n en: 'St. Patrick’s Day'\n }\n },\n '03-17 and if saturday then next monday if sunday then next monday': {\n name: {\n en: 'St. Patrick’s Day'\n },\n substitute: true,\n type: 'bank'\n },\n 'easter -21': {\n _name: 'Mothers Day',\n type: 'observance'\n },\n 'easter -2': {\n _name: 'easter -2',\n type: 'bank'\n },\n easter: {\n _name: 'easter'\n },\n 'easter 1': {\n _name: 'easter 1'\n },\n '1st monday in May': {\n name: {\n en: 'May Day'\n }\n },\n '1st monday in June': {\n name: {\n en: 'First Monday in June'\n }\n },\n '1st monday in August': {\n name: {\n en: 'First Monday in August'\n }\n },\n '1st Monday before 11-01': {\n name: {\n en: 'October Bank Holiday',\n type: 'bank'\n }\n },\n '12-25': {\n _name: '12-25'\n },\n '12-26': {\n _name: '12-26',\n name: {\n en: \"St. Stephen's Day\"\n }\n },\n '12-26 and if saturday then next monday if sunday then next monday': {\n _name: '12-26',\n name: {\n en: \"St. Stephen's Day\"\n },\n substitute: true,\n type: 'bank'\n },\n '12-27 if saturday then next monday if sunday then next tuesday': {\n name: {\n en: 'Christmas Bank Holiday'\n },\n type: 'bank'\n },\n '3rd sunday in June': {\n _name: 'Fathers Day',\n type: 'observance'\n }\n }\n },\n IL: {\n names: {\n he: 'מְדִינַת יִשְׂרָאֵל',\n en: 'Israel'\n },\n langs: [\n 'he'\n ],\n zones: [\n 'Asia/Jerusalem'\n ],\n dayoff: 'Saturday',\n days: {\n '1 Tishrei': {\n name: {\n he: 'ראש השנה',\n en: 'Rosh Hashanah (Yom Teruah)'\n }\n },\n '2 Tishrei': {\n name: {\n he: 'ראש השנה יום 2',\n en: 'Rosh Hashanah (Day 2)'\n }\n },\n '3 Tishrei if Saturday then next Sunday': {\n name: {\n he: 'צום גדליה',\n en: 'Fast of Gedaliah (Tzom Gedalya)'\n },\n type: 'observance'\n },\n '10 Tishrei': {\n name: {\n he: 'יום כיפור',\n en: 'Day of Atonement (Yom Kippur)'\n }\n },\n '15 Tishrei': {\n name: {\n he: 'סוכות',\n en: 'Feast of Tabernacles (Sukkot)'\n }\n },\n '16 Tishrei P6D': {\n name: {\n he: 'חול המועד סוכות',\n en: 'The week of Sukkot'\n },\n type: 'school',\n note: 'Collective paid leave in many businesses and government offices'\n },\n '22 Tishrei': {\n name: {\n he: 'שמחת תורה/שמיני עצרת',\n en: 'Simchat Torah/ Shmini Atzeret'\n }\n },\n '12 Cheshvan if Friday,Saturday then previous Thursday since 1997': {\n name: {\n he: 'יום רבין',\n en: 'Rabin Day'\n },\n type: 'observance',\n note: 'National remembrance day, business as usual'\n },\n '29 Cheshvan': {\n name: {\n he: 'סיגד',\n en: 'Sigd'\n },\n type: 'observance',\n note: 'Festival of the Ethiopian Jews, optional paid leave, business as usual'\n },\n '6 Kislev if Saturday then next Sunday': {\n name: {\n en: 'Ben-Gurion Day',\n he: 'יום בן-גוריון'\n },\n type: 'observance',\n note: 'Day marked by the Knesset'\n },\n '25 Kislev P8D': {\n name: {\n en: 'Hanukkah',\n he: 'חנוכה'\n },\n type: 'school'\n },\n '10 Tevet': {\n name: {\n en: 'Tenth of Tevet',\n he: 'צום עשרה בטבת'\n },\n type: 'observance'\n },\n '15 Shvat': {\n name: {\n en: 'Tu Bishvat (Arbor Day)',\n he: 'ט\"ו בשבט'\n },\n type: 'observance'\n },\n '13 AdarII if Saturday then previous Thursday': {\n name: {\n en: 'Fast of Esther',\n he: 'תענית אסתר'\n },\n type: 'school'\n },\n '14 AdarII P2D': {\n name: {\n en: 'Purim',\n he: 'פורים'\n },\n type: 'school',\n note: 'optional paid leave'\n },\n '10 Nisan': {\n name: {\n en: 'Aliyah Day',\n he: 'יום העלייה'\n },\n type: 'observance',\n note: 'Official holiday, business as usual'\n },\n '15 Nisan': {\n name: {\n en: 'Passover (Pesach)',\n he: 'פסח'\n }\n },\n '16 Nisan P5D': {\n name: {\n en: 'Passover (intermediate days)',\n he: 'חול המועד פסח'\n },\n type: 'school',\n note: 'School holiday, collective paid leave in many businesses and government offices'\n },\n '21 Nisan': {\n name: {\n en: 'Mimouna, Seventh day of Passover',\n he: 'מימונה, שביעי של פסח'\n }\n },\n '27 Nisan if Friday then previous Thursday if Sunday then next Monday': {\n name: {\n en: 'Holocaust Remembrance Day (Yom HaShoah)',\n he: 'יום הזיכרון לשואה ולגבורה'\n },\n type: 'observance',\n note: 'National remembrance day, business as usual except places of public entertainment'\n },\n '05-09': {\n name: {\n en: 'Victory in Europe Day',\n he: 'יום הניצחון על גרמניה הנאצית'\n },\n type: 'observance'\n },\n '4 Iyyar if Thursday,Friday then previous Wednesday if Sunday then next Monday': {\n name: {\n en: 'Fallen Soldiers and Victims of Terrorism Remembrance Day (Yom HaZikaron)',\n he: 'יום הזיכרון לחללי מערכות ישראל ונפגעי פעולות האיבה'\n },\n type: 'observance',\n note: 'National remembrance day, business as usual except places of public entertainment'\n },\n '5 Iyyar if Friday,Saturday then previous Thursday if Monday then next Tuesday': {\n name: {\n en: 'Independence Day (Yom HaAtzmaut)',\n he: 'יום העצמאות'\n }\n },\n '10 Iyyar if Saturday then next Sunday since 2004': {\n name: {\n en: 'Herzl Day',\n he: 'יום הרצל'\n },\n type: 'observance',\n note: 'Day marked by the Knesset'\n },\n '18 Iyyar': {\n name: {\n en: 'Lag BaOmer',\n he: 'ל\"ג בעומר'\n },\n type: 'school'\n },\n '28 Iyyar': {\n name: {\n en: 'Jerusalem Day (Yom Yerushalayim)',\n he: 'יום ירושלים'\n },\n type: 'observance',\n note: 'Optional paid leave'\n },\n '6 Sivan': {\n name: {\n en: 'Shavuot (Feast of Weeks)',\n he: 'שבועות'\n }\n },\n '17 Tamuz if Saturday then next Sunday': {\n name: {\n en: 'Seventeenth of Tamuz, fast',\n he: 'שבעה עשר בתמוז'\n },\n type: 'observance'\n },\n '29 Tamuz if Saturday then next Sunday': {\n name: {\n en: 'Jabotinsky Day',\n he: \"יום ז'בוטינסקי\"\n },\n type: 'observance',\n note: 'Day marked by the Knesset'\n },\n '9 Av if Saturday then next Sunday': {\n name: {\n en: \"Tisha B'Av, fast\",\n he: 'תשעה באב'\n },\n type: 'observance',\n note: 'Optional paid leave, business as usual except places of public entertainment'\n },\n '15 Av': {\n name: {\n en: \"Tu B'Av (Fifteenth of Av)\",\n he: 'ט\"ו באב'\n },\n type: 'observance'\n },\n '2015-03-17': {\n name: {\n en: 'Election Day',\n he: 'יום הבחירות'\n }\n },\n '2019-04-09': {\n name: {\n en: 'Election Day',\n he: 'יום הבחירות'\n }\n },\n '2019-09-17': {\n name: {\n en: 'Election Day',\n he: 'יום הבחירות'\n }\n },\n '2020-03-02': {\n name: {\n en: 'Election Day',\n he: 'יום הבחירות'\n }\n },\n '2021-03-23': {\n name: {\n en: 'Election Day',\n he: 'יום הבחירות'\n }\n }\n }\n },\n IM: {\n names: {\n en: 'Isle of Man'\n },\n zones: [\n 'Europe/Isle_of_Man'\n ],\n langs: [\n 'en'\n ],\n _days: [\n 'GB'\n ],\n days: {\n '2nd friday in June': {\n name: {\n en: 'Tourist Trophy, Senior Race Day'\n }\n },\n '07-05': {\n name: {\n en: 'Tynwald Day'\n }\n }\n }\n },\n IR: {\n names: {\n fa: 'جمهوری اسلامی ایران',\n en: 'Iran'\n },\n langs: [\n 'fa',\n 'en'\n ],\n zones: [\n 'Asia/Tehran'\n ],\n dayoff: 'Friday',\n days: {\n '1 Farvardin': {\n name: {\n fa: 'نوروز',\n en: 'Nowruz'\n }\n },\n '2 Farvardin': {\n name: {\n fa: 'نوروز',\n en: 'Nowruz'\n }\n },\n '3 Farvardin': {\n name: {\n fa: 'نوروز',\n en: 'Nowruz'\n }\n },\n '4 Farvardin': {\n name: {\n fa: 'نوروز',\n en: 'Nowruz'\n }\n },\n '12 Farvardin': {\n name: {\n fa: 'روز جمهوری اسلامی',\n en: 'Islamic Republic Day'\n }\n },\n '13 Farvardin': {\n name: {\n fa: 'سیزده بدر',\n en: 'Sizdah Bedar'\n }\n },\n '14 Khordad': {\n name: {\n fa: 'رﺣﻠﺖ اﻣﺎم ﺧﻤﯿﻨﯽ',\n en: \"Imam Khomeini's Demise\"\n }\n },\n '15 Khordad': {\n name: {\n fa: 'قیام ۱۵ خرداد',\n en: 'Revolt of Khordad 15'\n }\n },\n '22 Bahman': {\n name: {\n fa: 'انقلاب اسلامی پنجاه و هفت',\n en: 'Anniversary of Islamic Revolution'\n }\n },\n '29 Esfand': {\n name: {\n fa: 'ملی شدن صنعت نفت',\n en: 'Nationalization of the Iranian oil industry'\n }\n },\n '9 Muharram': {\n name: {\n fa: 'ﺗﺎﺳﻮﻋﺎی ﺣﺴﯿﻨﯽ',\n en: 'Tasoua'\n }\n },\n '10 Muharram': {\n name: {\n fa: 'ﻋﺎﺷﻮرای ﺣﺴﯿﻨﯽ',\n en: 'Ashoura'\n }\n },\n '20 Safar': {\n name: {\n fa: 'اربعین حسینی',\n en: 'Arbaeen-e Hosseini'\n }\n },\n '28 Safar': {\n name: {\n fa: 'رﺣﻠﺖ ﺣﻀﺮت رﺳﻮل اﮐﺮم صلّی الله علیه وآله و سلّم',\n en: 'Demise of Prophet Muhammad and Imam Hassan (Mujtaba)'\n }\n },\n '30 Safar': {\n name: {\n fa: 'ﺷﻬﺎدت ﺣﻀﺮت اﻣﺎم رﺿﺎ ﻋﻠﯿﻪاﻟﺴﻼم',\n en: 'Martyrdom of Imam Reza'\n }\n },\n '8 Rabi al-awwal': {\n name: {\n fa: 'شهادت امام حسن عسكری علیه‌السلام',\n en: 'Martyrdom of Imam Hassan'\n }\n },\n '17 Rabi al-awwal': {\n name: {\n fa: 'ولادت حضرت رسول اکرم صلّی الله علیه وآله و سلّم',\n en: 'Birthday of Muhammad Prophet'\n }\n },\n '3 Jumada al-thani': {\n name: {\n fa: 'ﺷﻬﺎدت ﺣﻀﺮت ﻓﺎﻃﻤﻪ زﻫﺮا ﺳﻼم اﷲ ﻋﻠﯿﻬﺎ',\n en: 'Martyrdom of Fatima-Zahara'\n }\n },\n '13 Rajab': {\n name: {\n fa: 'وﻻدت ﺣﻀﺮت اﻣﺎم ﻋﻠﯽ ﻋﻠﯿﻪ اﻟﺴﻼم',\n en: 'Birthday of Imam Ali'\n }\n },\n '27 Rajab': {\n name: {\n fa: 'ﻣﺒﻌﺚ ﺣﻀﺮت رﺳﻮل اﮐﺮم ﺻﻠﯽ اﷲ ﻋﻠﯿﻪ و آﻟﻪ',\n en: 'Mabaas of Muhammad'\n }\n },\n '15 Shaban': {\n name: {\n fa: 'وﻻدت ﺣﻀﺮت ﻗﺎﺋﻢ ﻋﺠﻞاﷲ ﺗﻌﺎﻟﯽ ﻓﺮﺟﻪ شریف',\n en: 'Birthday of Imam Mahdi'\n }\n },\n '21 Ramadan': {\n name: {\n fa: 'ﺷﻬﺎدت ﺣﻀﺮت ﻋﻠﯽ ﻋﻠﯿﻪاﻟﺴﻼم',\n en: 'Martyrdom of Imam Ali'\n }\n },\n '1 Shawwal': {\n _name: '1 Shawwal'\n },\n '2 Shawwal': {\n name: {\n fa: 'ﺑﻪ ﻣﻨﺎﺳﺒﺖ ﻋﯿﺪ ﺳﻌﯿﺪ ﻓﻄﺮ',\n en: 'Holyday for Fetr Eeid'\n }\n },\n '25 Shawwal': {\n name: {\n fa: 'ﺷﻬﺎدت ﺣﻀﺮت اﻣﺎم ﺟﻌﻔﺮ ﺻﺎدق ﻋﻠﯿﻪاﻟﺴﻼم',\n en: 'Martyrdom of Imam Jafar'\n }\n },\n '10 Dhu al-Hijjah': {\n _name: '10 Dhu al-Hijjah'\n },\n '18 Dhu al-Hijjah': {\n name: {\n fa: 'ﻋﯿﺪ ﺳﻌﯿﺪ ﻏﺪﯾﺮ ﺧﻢ',\n en: 'Eid al-Ghadeer'\n }\n }\n }\n },\n IS: {\n names: {\n is: 'Ísland',\n en: 'Iceland'\n },\n dayoff: 'sunday',\n zones: [\n 'Atlantic/Reykjavik'\n ],\n langs: [\n 'is'\n ],\n days: {\n '01-01': {\n _name: '01-01'\n },\n '01-06': {\n _name: '01-06',\n type: 'observance'\n },\n 'friday after 01-18': {\n name: {\n is: 'Bóndadagur'\n },\n type: 'observance'\n },\n '02-18': {\n name: {\n is: 'Konudagur',\n en: \"Woman's Day\"\n },\n type: 'observance'\n },\n 'easter -48': {\n name: {\n is: 'Bolludagur'\n },\n type: 'observance'\n },\n 'easter -47': {\n name: {\n is: 'Sprengidagur'\n },\n type: 'observance'\n },\n 'easter -46': {\n _name: 'easter -46',\n type: 'observance'\n },\n 'easter -7': {\n _name: 'easter -7',\n type: 'observance'\n },\n 'easter -3': {\n _name: 'easter -3'\n },\n 'easter -2': {\n _name: 'easter -2'\n },\n easter: {\n _name: 'easter'\n },\n 'easter 1': {\n _name: 'easter 1'\n },\n 'thursday after 04-18': {\n name: {\n is: 'Sumardagurinn fyrsti',\n en: 'First Day of Summer'\n }\n },\n '05-01': {\n _name: '05-01'\n },\n '2nd sunday in May': {\n _name: 'Mothers Day',\n type: 'observance'\n },\n 'easter 39': {\n _name: 'easter 39'\n },\n 'easter 49': {\n _name: 'easter 49'\n },\n 'easter 50': {\n _name: 'easter 50'\n },\n '1st sunday in June': {\n name: {\n is: 'Sjómannadagurinn',\n en: \"The Seamen's Day\"\n },\n type: 'observance'\n },\n '06-17': {\n name: {\n is: 'Íslenski þjóðhátíðardagurinn',\n en: 'Icelandic National Day'\n }\n },\n '1st monday in August': {\n name: {\n is: 'Frídagur verslunarmanna',\n en: 'Commerce Day'\n }\n },\n 'saturday after 10-21': {\n name: {\n is: 'Fyrsti vetrardagur',\n en: 'First Day of Winter'\n },\n type: 'observance'\n },\n '11-16': {\n name: {\n is: 'Dagur íslenskrar tungu',\n en: 'Icelandic Language Day'\n },\n type: 'observance'\n },\n '12-23': {\n name: {\n is: 'Þorláksmessa',\n en: \"St Þorlákur's Day\"\n },\n type: 'observance'\n },\n '12-24 13:00 if sunday then 00:00': {\n _name: '12-24'\n },\n '12-25': {\n _name: '12-25'\n },\n '12-26': {\n _name: '12-26'\n },\n '12-31 13:00 if sunday then 00:00': {\n _name: '12-31'\n }\n }\n },\n IT: {\n names: {\n it: 'Italia',\n en: 'Italia'\n },\n dayoff: 'sunday',\n zones: [\n 'Europe/Rome'\n ],\n langs: [\n 'it'\n ],\n days: {\n '01-01': {\n _name: '01-01'\n },\n '01-06': {\n _name: '01-06'\n },\n easter: {\n _name: 'easter'\n },\n 'easter 1': {\n _name: 'easter 1'\n },\n '04-25': {\n name: {\n it: 'Anniversario della Liberazione',\n en: 'Liberation Day'\n }\n },\n '05-01': {\n _name: '05-01'\n },\n '2nd sunday in May': {\n _name: 'Mothers Day',\n type: 'observance'\n },\n '06-02': {\n name: {\n it: 'Festa della Repubblica',\n en: 'Republic Day'\n }\n },\n '08-15': {\n _name: '08-15'\n },\n '11-01': {\n _name: '11-01'\n },\n '12-08': {\n _name: '12-08'\n },\n '12-25': {\n _name: '12-25'\n },\n '12-26': {\n _name: '12-26'\n },\n '2011-03-17': {\n name: {\n it: 'Festa Nazionale 2011',\n en: 'National Day 2011'\n }\n }\n },\n states: {\n 32: {\n name: 'Südtirol, Alto Adige',\n days: {\n 'easter 50': {\n _name: 'easter 50'\n }\n }\n }\n }\n },\n JE: {\n names: {\n en: 'Jersey'\n },\n zones: [\n 'Europe/Jersey'\n ],\n langs: [\n 'en'\n ],\n _days: [\n 'GB'\n ],\n days: {\n '05-09': {\n name: {\n en: 'Liberation Day'\n }\n }\n }\n },\n JM: {\n names: {\n en: 'Jamaica'\n },\n dayoff: 'sunday',\n langs: [\n 'en'\n ],\n zones: [\n 'America/Jamaica'\n ],\n days: {\n '01-01 and if sunday then next monday': {\n _name: '01-01',\n substitute: true\n },\n 'easter -46': {\n _name: 'easter -46'\n },\n 'easter -2': {\n _name: 'easter -2'\n },\n easter: {\n _name: 'easter',\n type: 'observance'\n },\n 'easter 1': {\n _name: 'easter 1'\n },\n '05-23 if saturday,sunday then next monday': {\n _name: '05-01'\n },\n '08-01 if sunday then next monday': {\n name: {\n en: 'Emancipation Day'\n }\n },\n '08-06 and if sunday then next monday': {\n _name: 'Independence Day',\n substitute: true\n },\n '3rd monday in October': {\n name: {\n en: 'National Heroes Day'\n }\n },\n '12-25 and if sunday then next tuesday': {\n _name: '12-25',\n substitute: true\n },\n '12-26 and if sunday then next monday': {\n _name: '12-26',\n substitute: true\n }\n }\n },\n JP: {\n names: {\n jp: '日本',\n en: 'Japan'\n },\n dayoff: 'sunday',\n langs: [\n 'jp'\n ],\n zones: [\n 'Asia/Tokyo'\n ],\n days: {\n '01-01': {\n _name: '01-01'\n },\n 'substitutes 01-01 if sunday then next monday': {\n substitute: true,\n _name: '01-01',\n active: [\n {\n from: '1973-04-12T00:00:00.000Z'\n }\n ]\n },\n '01-02': {\n name: {\n en: 'January 2nd',\n jp: '銀行休業日'\n },\n type: 'bank'\n },\n '01-03': {\n name: {\n en: 'January 3rd',\n jp: '銀行休業日'\n },\n type: 'bank'\n },\n '01-15': {\n name: {\n en: 'Coming of Age Day',\n jp: '成人の日'\n },\n active: [\n {\n from: '1948-07-20T00:00:00.000Z',\n to: '1999-12-31T00:00:00.000Z'\n }\n ]\n },\n 'substitutes 01-15 and if sunday then next monday': {\n substitute: true,\n name: {\n en: 'Coming of Age Day',\n jp: '成人の日'\n },\n active: [\n {\n from: '1973-04-12T00:00:00.000Z',\n to: '1999-12-31T00:00:00.000Z'\n }\n ]\n },\n '2nd monday in January': {\n name: {\n en: 'Coming of Age Day',\n jp: '成人の日'\n },\n active: [\n {\n from: '2000-01-01T00:00:00.000Z'\n }\n ]\n },\n '02-11': {\n name: {\n en: 'Foundation Day',\n jp: '建国記念の日'\n },\n active: [\n {\n from: '1967-01-01T00:00:00.000Z'\n }\n ]\n },\n 'substitutes 02-11 and if sunday then next monday': {\n substitute: true,\n name: {\n en: 'Foundation Day',\n jp: '建国記念の日'\n },\n active: [\n {\n from: '1973-04-12T00:00:00.000Z'\n }\n ]\n },\n '02-23 and if sunday then next monday': {\n substitute: true,\n name: {\n en: \"Emperor's Birthday\",\n jp: '天皇誕生日'\n },\n active: [\n {\n from: '2020-01-01T00:00:00.000Z'\n }\n ]\n },\n '1989-02-24': {\n name: {\n en: 'State Funeral of Emperor Showa',\n jp: '大喪の礼'\n }\n },\n 'march equinox in +09:00': {\n name: {\n en: 'Spring Equinox Day',\n jp: '春分の日'\n },\n active: [\n {\n from: '1948-07-20T00:00:00.000Z'\n }\n ]\n },\n 'substitutes march equinox in +09:00 and if sunday then next monday': {\n substitute: true,\n name: {\n en: 'Spring Equinox Day',\n jp: '春分の日'\n },\n active: [\n {\n from: '1973-04-12T00:00:00.000Z'\n }\n ]\n },\n '1959-04-10': {\n name: {\n en: 'Marriage of Crown Prince Akihito',\n jp: '結婚の儀'\n }\n },\n '04-29': {\n name: {\n en: \"Emperor's Birthday\",\n jp: '天皇誕生日'\n },\n active: [\n {\n from: '1948-07-20T00:00:00.000Z',\n to: '1988-12-31T00:00:00.000Z'\n }\n ]\n },\n 'substitutes 04-29 and if sunday then next monday': {\n substitute: true,\n name: {\n en: \"Emperor's Birthday\",\n jp: '天皇誕生日'\n },\n active: [\n {\n from: '1973-04-12T00:00:00.000Z',\n to: '1988-12-31T00:00:00.000Z'\n }\n ]\n },\n '04-29 and if sunday then next monday #1': {\n substitute: true,\n name: {\n en: 'Greenery Day',\n jp: 'みどりの日'\n },\n active: [\n {\n from: '1989-01-01T00:00:00.000Z',\n to: '2006-12-31T00:00:00.000Z'\n }\n ]\n },\n '04-29 and if sunday then next monday #2': {\n substitute: true,\n name: {\n en: 'Showa Day',\n jp: '昭和の日'\n },\n active: [\n {\n from: '2007-01-01T00:00:00.000Z'\n }\n ]\n },\n '2019-04-30': {\n name: {\n en: \"Citizens' Holiday\",\n jp: '国民の休日'\n }\n },\n '2019-05-01': {\n name: {\n en: 'Coronation Day',\n jp: '即位の日'\n }\n },\n '2019-05-02': {\n name: {\n en: \"Citizens' Holiday\",\n jp: '国民の休日'\n }\n },\n '05-03': {\n _name: 'Constitution Day'\n },\n 'substitutes 05-03 if sunday then next monday': {\n substitute: true,\n _name: 'Constitution Day',\n active: [\n {\n from: '1973-04-12T00:00:00.000Z',\n to: '2006-12-31T00:00:00.000Z'\n }\n ]\n },\n 'substitutes 05-03 if sunday then next wednesday': {\n substitute: true,\n _name: 'Constitution Day',\n active: [\n {\n from: '2007-01-01T00:00:00.000Z'\n }\n ]\n },\n '05-04 not on sunday, monday': {\n name: {\n en: \"Citizens' Holiday\",\n jp: '国民の休日'\n },\n active: [\n {\n from: '1986-01-01T00:00:00.000Z',\n to: '2006-12-31T00:00:00.000Z'\n }\n ]\n },\n '05-04 and if sunday then next tuesday': {\n substitute: true,\n name: {\n en: 'Greenery Day',\n jp: 'みどりの日'\n },\n active: [\n {\n from: '2007-01-01T00:00:00.000Z'\n }\n ]\n },\n '05-05': {\n name: {\n en: \"Children's Day\",\n jp: 'こどもの日'\n }\n },\n 'substitutes 05-05 if sunday then next monday': {\n substitute: true,\n name: {\n en: \"Children's Day\",\n jp: 'こどもの日'\n },\n active: [\n {\n from: '1973-04-12T00:00:00.000Z'\n }\n ]\n },\n '1993-06-09': {\n name: {\n en: 'Marriage of Crown Prince Naruhito',\n jp: '結婚の儀'\n }\n },\n '07-20': {\n name: {\n en: 'Marine Day',\n jp: '海の日'\n },\n active: [\n {\n from: '1996-01-01T00:00:00.000Z',\n to: '2002-12-31T00:00:00.000Z'\n }\n ]\n },\n 'substitutes 07-20 if sunday then next monday': {\n substitute: true,\n name: {\n en: 'Marine Day',\n jp: '海の日'\n },\n active: [\n {\n from: '1996-01-01T00:00:00.000Z',\n to: '2002-12-31T00:00:00.000Z'\n }\n ]\n },\n '3rd monday in July': {\n name: {\n en: 'Marine Day',\n jp: '海の日'\n },\n disable: [\n '2020-07-20',\n '2021-07-19'\n ],\n enable: [\n '2020-07-23',\n '2021-07-22'\n ],\n active: [\n {\n from: '2003-01-01T00:00:00.000Z'\n }\n ]\n },\n 'substitutes 2021-08-08 and if sunday then next monday': {\n substitute: true,\n name: {\n en: 'Mountain Day',\n jp: '山の日'\n }\n },\n 'substitutes 08-11 and if sunday then next monday': {\n substitute: true,\n name: {\n en: 'Mountain Day',\n jp: '山の日'\n },\n disable: [\n '2020-08-11',\n '2021-08-11'\n ],\n enable: [\n '2020-08-10'\n ],\n active: [\n {\n from: '2016-01-01T00:00:00.000Z'\n }\n ]\n },\n '09-15': {\n name: {\n en: 'Respect-for-the-Aged Day',\n jp: '敬老の日'\n },\n active: [\n {\n from: '1966-01-01T00:00:00.000Z',\n to: '2002-12-31T00:00:00.000Z'\n }\n ]\n },\n 'substitutes 09-15 and if sunday then next monday': {\n substitute: true,\n name: {\n en: 'Respect-for-the-Aged Day',\n jp: '敬老の日'\n },\n active: [\n {\n from: '1973-04-12T00:00:00.000Z',\n to: '2002-12-31T00:00:00.000Z'\n }\n ]\n },\n '3rd monday in September': {\n name: {\n en: 'Respect-for-the-Aged Day',\n jp: '敬老の日'\n },\n active: [\n {\n from: '2003-01-01T00:00:00.000Z'\n }\n ]\n },\n '09-22 if 09-21 and 09-23 is public holiday': {\n name: {\n en: \"Citizens' Holiday\",\n jp: '国民の休日'\n }\n },\n 'september equinox in +09:00': {\n name: {\n en: 'Autumnal Equinox Day',\n jp: '秋分の日'\n },\n active: [\n {\n from: '1948-07-20T00:00:00.000Z'\n }\n ]\n },\n 'substitutes september equinox in +09:00 and if sunday then next monday': {\n substitute: true,\n name: {\n en: 'Autumnal Equinox Day',\n jp: '秋分の日'\n },\n active: [\n {\n from: '1973-04-12T00:00:00.000Z'\n }\n ]\n },\n '10-10': {\n name: {\n en: 'Sports Day',\n jp: '体育の日'\n },\n active: [\n {\n from: '1966-01-01T00:00:00.000Z',\n to: '1999-12-31T00:00:00.000Z'\n }\n ]\n },\n 'substitutes 10-10 and if sunday then next monday': {\n substitute: true,\n name: {\n en: 'Sports Day',\n jp: '体育の日'\n },\n active: [\n {\n from: '1973-04-12T00:00:00.000Z',\n to: '1999-12-31T00:00:00.000Z'\n }\n ]\n },\n '2nd monday in October #1': {\n name: {\n en: 'Sports Day',\n jp: '体育の日'\n },\n active: [\n {\n from: '2000-01-01T00:00:00.000Z',\n to: '2019-12-31T00:00:00.000Z'\n }\n ]\n },\n '2nd monday in October #2': {\n name: {\n en: 'Sports Day',\n jp: 'スポーツの日'\n },\n disable: [\n '2020-10-12',\n '2021-10-11'\n ],\n enable: [\n '2020-07-24',\n '2021-07-23'\n ],\n active: [\n {\n from: '2020-01-01T00:00:00.000Z'\n }\n ]\n },\n '2019-10-22': {\n name: {\n en: 'Enthronement Ceremony Day',\n jp: '即位礼正殿の儀'\n }\n },\n '11-03': {\n substitute: true,\n name: {\n en: 'Culture Day',\n jp: '文化の日'\n },\n active: [\n {\n from: '1948-07-20T00:00:00.000Z'\n }\n ]\n },\n 'substitutes 11-03 and if sunday then next monday': {\n substitute: true,\n name: {\n en: 'Culture Day',\n jp: '文化の日'\n },\n active: [\n {\n from: '1973-04-12T00:00:00.000Z'\n }\n ]\n },\n '1990-11-12': {\n name: {\n en: 'Official Enthronement Ceremony of Emperor Heisei (Akihito)',\n jp: '即位礼正殿の儀'\n }\n },\n '11-15': {\n name: {\n en: 'Seven-Five-Three Festival',\n jp: '七五三'\n },\n type: 'observance'\n },\n '11-23': {\n name: {\n en: 'Labor Thanksgiving Day',\n jp: '勤労感謝の日'\n },\n active: [\n {\n from: '1948-07-20T00:00:00.000Z'\n }\n ]\n },\n 'substitutes 11-23 and if sunday then next monday': {\n substitute: true,\n name: {\n en: 'Labor Thanksgiving Day',\n jp: '勤労感謝の日'\n },\n active: [\n {\n from: '1973-04-12T00:00:00.000Z'\n }\n ]\n },\n '12-23 and if sunday then next monday': {\n substitute: true,\n name: {\n en: \"Emperor's Birthday\",\n jp: '天皇誕生日'\n },\n active: [\n {\n from: '1989-01-01T00:00:00.000Z',\n to: '2018-12-31T00:00:00.000Z'\n }\n ]\n },\n '12-25': {\n _name: '12-25',\n type: 'observance'\n },\n '12-31': {\n _name: '12-31',\n type: 'bank'\n }\n }\n },\n KE: {\n names: {\n en: 'Kenya'\n },\n dayoff: 'sunday',\n langs: [\n 'sw',\n 'en'\n ],\n zones: [\n 'Africa/Nairobi'\n ],\n days: {\n '01-01 and if sunday then next monday': {\n substitute: true,\n _name: '01-01'\n },\n 'easter -2': {\n _name: 'easter -2'\n },\n easter: {\n _name: 'easter'\n },\n 'easter 1': {\n _name: 'easter 1'\n },\n '05-01 and if sunday then next monday': {\n substitute: true,\n _name: '05-01'\n },\n '06-01 and if sunday then next monday': {\n substitute: true,\n name: {\n sw: 'Siku ya Madaraka',\n en: 'Madaraka Day'\n }\n },\n '10-10 and if sunday then next monday': {\n substitute: true,\n name: {\n en: 'Moi Day'\n }\n },\n '10-20 and if sunday then next monday': {\n substitute: true,\n name: {\n sw: 'Siku ya Mashujaa',\n en: 'Mashujaa Day'\n }\n },\n '12-12 and if sunday then next monday': {\n substitute: true,\n name: {\n sw: 'Siku ya Jamhuri',\n en: 'Jamhuri Day'\n }\n },\n '12-25 and if sunday then next tuesday': {\n substitute: true,\n _name: '12-25'\n },\n '12-26 and if sunday then next monday': {\n substitute: true,\n _name: '12-26'\n },\n '1 Shawwal': {\n _name: '1 Shawwal'\n },\n '10 Dhu al-Hijjah': {\n _name: '10 Dhu al-Hijjah',\n note: 'For all persons belonging to the Islamic faith.'\n }\n }\n },\n KM: {\n names: {\n fr: 'Union des Comores',\n en: 'Comoros'\n },\n langs: [\n 'fr',\n 'ar',\n 'swb',\n 'wlc',\n 'wni',\n 'zdj'\n ],\n zones: [\n 'Africa/Nairobi'\n ],\n dayoff: 'sunday',\n days: {\n '01-01': {\n _name: '01-01'\n },\n '03-18': {\n name: {\n fr: 'Journée de Cheikh Al Maarouf',\n en: 'Cheikh Al Maarouf Day'\n }\n },\n '05-01': {\n _name: '05-01'\n },\n '07-06': {\n _name: 'Independence Day'\n },\n '11-12': {\n name: {\n fr: 'Journée Maoré',\n en: 'Maore Day'\n }\n },\n '1 Muharram': {\n _name: '1 Muharram'\n },\n '12 Rabi al-awwal': {\n _name: '12 Rabi al-awwal'\n },\n '1 Shawwal P3DT0H0M': {\n _name: '1 Shawwal'\n },\n '10 Dhu al-Hijjah P2DT0H0M': {\n _name: '10 Dhu al-Hijjah'\n },\n '27 Rajab': {\n _name: '27 Rajab'\n }\n }\n },\n KN: {\n names: {\n en: 'St. Kitts & Nevis'\n },\n langs: [\n 'en'\n ],\n zones: [\n 'America/Port_of_Spain'\n ],\n dayoff: 'sunday',\n days: {\n '01-01 and if Saturday then next Monday': {\n substitute: true,\n _name: '01-01'\n },\n '01-02': {\n name: {\n en: 'Carnival Day'\n }\n },\n 'easter -2': {\n _name: 'easter -2'\n },\n easter: {\n _name: 'easter',\n type: 'observance'\n },\n 'easter 1': {\n _name: 'easter 1'\n },\n 'easter 49': {\n _name: 'easter 49',\n type: 'observance'\n },\n 'easter 50': {\n _name: 'easter 50'\n },\n '1st Monday in May': {\n _name: '05-01'\n },\n '1st Monday in August': {\n name: {\n en: 'Emancipation Day'\n }\n },\n '1st Tuesday in August': {\n name: {\n en: 'Culturama Day'\n }\n },\n '09-16 and if Sunday then next Monday': {\n substitute: true,\n name: {\n en: \"National Heroes' Day\"\n }\n },\n '09-19 if Sunday then next Monday': {\n substitute: true,\n _name: 'Independence Day'\n },\n '12-25': {\n _name: '12-25'\n },\n '12-26': {\n _name: '12-26'\n }\n }\n },\n KR: {\n names: {\n ko: '대한민국',\n en: 'South Korea'\n },\n dayoff: 'sunday',\n langs: [\n 'ko'\n ],\n zones: [\n 'Asia/Seoul'\n ],\n days: {\n '01-01': {\n _name: '01-01'\n },\n 'korean 01-0-01 P3D': {\n name: {\n en: 'Korean New Year',\n ko: '설날'\n }\n },\n '03-01': {\n name: {\n en: 'Independence Movement Day',\n ko: '3·1절'\n }\n },\n '05-05': {\n name: {\n en: \"Children's Day\",\n ko: '어린이날'\n }\n },\n 'korean 4-0-8': {\n name: {\n en: \"Buddha's Birthday\",\n ko: '석가탄신일'\n }\n },\n '06-06': {\n name: {\n en: 'Memorial Day',\n ko: '현충일'\n }\n },\n '07-17': {\n _name: 'Constitution Day',\n type: 'observance'\n },\n '08-15': {\n name: {\n en: 'Liberation Day',\n ko: '광복절'\n }\n },\n 'korean 8-0-15 P3D': {\n name: {\n en: 'Korean Thanksgiving',\n ko: '추석'\n }\n },\n '10-03': {\n name: {\n en: 'National Foundation Day',\n ko: '개천절'\n }\n },\n '10-09': {\n name: {\n en: 'Hangul Day',\n ko: '한글날'\n }\n },\n '12-25': {\n _name: '12-25'\n }\n }\n },\n KY: {\n names: {\n en: 'Cayman Islands'\n },\n langs: [\n 'en'\n ],\n zones: [\n 'America/Panama'\n ],\n dayoff: 'sunday',\n days: {\n '01-01 and if Saturday, Sunday then next Monday': {\n substitute: true,\n _name: '01-01'\n },\n '4th Monday in January': {\n name: {\n en: 'National Heroes Day'\n }\n },\n 'easter -46': {\n _name: 'easter -46'\n },\n 'easter -2': {\n _name: 'easter -2'\n },\n easter: {\n _name: 'easter',\n type: 'observance'\n },\n 'easter 1': {\n _name: 'easter 1'\n },\n '3rd Monday in May': {\n name: {\n en: 'Discovery Day'\n }\n },\n '07-02': {\n name: {\n en: 'Constitution Day'\n }\n },\n '12-25': {\n _name: '12-25'\n },\n '12-26': {\n _name: '12-26'\n },\n '2017-05-24': {\n name: 'General Election Day'\n },\n '2021-04-14': {\n name: 'General Election Day'\n },\n '2016-06-13': {\n name: {\n en: \"Queen's Birthday\"\n }\n },\n '2017-06-19': {\n name: {\n en: \"Queen's Birthday\"\n }\n },\n '2018-06-11': {\n name: {\n en: \"Queen's Birthday\"\n }\n },\n '2019-06-10': {\n name: {\n en: \"Queen's Birthday\"\n }\n },\n '2020-06-15': {\n name: {\n en: \"Queen's Birthday\"\n }\n },\n '2021-06-14': {\n name: {\n en: \"Queen's Birthday\"\n }\n },\n '2022-06-20': {\n name: {\n en: \"Queen's Birthday\"\n }\n },\n '2023-06-19': {\n name: {\n en: \"Queen's Birthday\"\n }\n },\n '2024-06-17': {\n name: {\n en: \"Queen's Birthday\"\n }\n },\n '2025-06-16': {\n name: {\n en: \"Queen's Birthday\"\n }\n },\n '2026-06-15': {\n name: {\n en: \"Queen's Birthday\"\n }\n }\n }\n },\n LC: {\n names: {\n en: 'St. Lucia'\n },\n langs: [\n 'en'\n ],\n zones: [\n 'America/Port_of_Spain'\n ],\n dayoff: 'sunday',\n days: {\n '01-01': {\n _name: '01-01'\n },\n '01-02': {\n name: {\n en: \"Second New Year's Day\"\n }\n },\n '02-22': {\n _name: 'Independence Day'\n },\n 'easter -2': {\n _name: 'easter -2'\n },\n 'easter 1': {\n _name: 'easter 1'\n },\n '05-01': {\n _name: '05-01'\n },\n 'easter 50': {\n _name: 'easter 50'\n },\n 'easter 60': {\n _name: 'easter 60'\n },\n '1st Friday after 07-10 P4D': {\n name: {\n en: 'Carnival'\n }\n },\n '08-01': {\n name: {\n en: 'Emancipation Day'\n }\n },\n '1st Monday in October': {\n name: {\n en: 'Thanksgiving'\n }\n },\n '12-13': {\n name: {\n en: 'National Day'\n }\n },\n '12-25': {\n _name: '12-25'\n },\n '12-26': {\n _name: '12-26'\n }\n }\n },\n LI: {\n names: {\n de: 'Lichtenstein',\n en: 'Lichtenstein'\n },\n dayoff: 'sunday',\n langs: [\n 'de'\n ],\n zones: [\n 'Europe/Zurich'\n ],\n days: {\n '01-01': {\n _name: '01-01'\n },\n '01-02': {\n name: {\n de: 'Berchtoldstag',\n en: 'Berchtold Day'\n },\n type: 'bank'\n },\n '01-06': {\n _name: '01-06'\n },\n '02-02': {\n _name: '02-02',\n type: 'observance'\n },\n '03-19': {\n _name: '03-19',\n type: 'observance'\n },\n 'easter -47': {\n _name: 'easter -47',\n type: 'bank'\n },\n 'easter -2': {\n _name: 'easter -2'\n },\n easter: {\n _name: 'easter',\n type: 'observance'\n },\n 'easter 1': {\n _name: 'easter 1'\n },\n '05-01': {\n _name: '05-01'\n },\n '2nd sunday in May': {\n _name: 'Mothers Day',\n type: 'observance'\n },\n 'easter 39': {\n _name: 'easter 39',\n name: {\n de: 'Auffahrt'\n }\n },\n 'easter 40': {\n name: {\n de: 'Feiertagsbrücke'\n }\n },\n 'easter 49': {\n _name: 'easter 49',\n type: 'observance'\n },\n 'easter 50': {\n _name: 'easter 50'\n },\n 'easter 60': {\n _name: 'easter 60'\n },\n 'easter 61': {\n name: {\n de: 'Feiertagsbrücke'\n }\n },\n '08-15': {\n name: {\n de: 'Staatsfeiertag'\n },\n type: 'observance'\n },\n '09-08': {\n name: {\n de: 'Mariä Geburt'\n }\n },\n '11-01': {\n _name: '11-01',\n type: 'observance'\n },\n '12-08': {\n _name: '12-08'\n },\n '12-24': {\n _name: '12-24',\n type: 'bank'\n },\n '12-25': {\n _name: '12-25'\n },\n '12-26': {\n _name: '12-26',\n name: {\n de: 'Stephanstag'\n }\n },\n '12-31': {\n _name: '12-31',\n type: 'bank'\n }\n }\n },\n LR: {\n names: {\n en: 'Liberia'\n },\n langs: [\n 'en'\n ],\n zones: [\n 'Africa/Monrovia'\n ],\n dayoff: 'Sunday',\n days: {\n '01-01': {\n _name: '01-01'\n },\n '02-11': {\n name: {\n en: 'Armed Forces Day'\n }\n },\n '2nd Wednesday in March': {\n name: {\n en: 'Decoration Day'\n }\n },\n '03-15': {\n name: {\n en: \"J. J. Robert's Day\"\n }\n },\n '2nd Friday in April': {\n name: {\n en: 'Fast and Prayer Day'\n }\n },\n '05-14': {\n name: {\n en: 'National Unification Day'\n }\n },\n '07-26': {\n _name: 'Independence Day'\n },\n '08-24': {\n name: {\n en: 'Flag Day'\n }\n },\n '1st Thursday in November': {\n name: {\n en: 'Thanksgiving'\n }\n },\n '11-29': {\n name: {\n en: \"William Tubman's Birthday\"\n }\n },\n '12-25': {\n _name: '12-25'\n }\n }\n },\n LS: {\n names: {\n st: \"\\\\'Muso oa Lesotho\",\n en: 'Lesotho'\n },\n langs: [\n 'st',\n 'en'\n ],\n zones: [\n 'Africa/Johannesburg'\n ],\n dayoff: 'sunday',\n days: {\n '01-01': {\n _name: '01-01'\n },\n '03-11': {\n name: {\n en: 'Moshoeshoe Day'\n }\n },\n 'easter -2': {\n _name: 'easter -2'\n },\n 'easter 1': {\n _name: 'easter 1'\n },\n '05-01': {\n _name: '05-01',\n name: {\n en: \"Workers' Day\"\n }\n },\n 'easter 39': {\n _name: 'easter 39'\n },\n '05-25': {\n name: {\n en: \"Africa Day/ Heroes' Day\"\n }\n },\n '07-17': {\n name: {\n en: \"King Letsie III's Birthday\"\n }\n },\n '10-04': {\n _name: 'Independence Day'\n },\n '12-25': {\n _name: '12-25'\n },\n '12-26': {\n _name: '12-26'\n }\n }\n },\n LT: {\n names: {\n lt: 'Lietuva',\n en: 'Lithuania'\n },\n dayoff: 'sunday',\n langs: [\n 'lt'\n ],\n zones: [\n 'Europe/Vilnius'\n ],\n days: {\n '01-01': {\n _name: '01-01'\n },\n '02-16': {\n name: {\n en: 'Day of Restoration of the State of Lithuania',\n lt: 'Lietuvos valstybės atkūrimo diena'\n }\n },\n '03-11': {\n name: {\n en: 'Day of Restoration of Independence of Lithuania',\n lt: 'Lietuvos nepriklausomybės atkūrimo diena'\n }\n },\n easter: {\n _name: 'easter'\n },\n 'easter 1': {\n _name: 'easter 1'\n },\n '05-01': {\n _name: '05-01'\n },\n '1st sunday in May': {\n _name: 'Mothers Day',\n type: 'observance'\n },\n '1st sunday in June': {\n _name: 'Fathers Day',\n type: 'observance'\n },\n '06-24': {\n name: {\n en: \"St. John's Day\",\n lt: 'Joninės, Rasos'\n }\n },\n '07-06': {\n name: {\n en: 'Statehood Day',\n lt: 'Valstybės diena'\n }\n },\n '08-15': {\n _name: '08-15'\n },\n '11-01': {\n _name: '11-01'\n },\n '11-02': {\n _name: '11-02',\n active: [\n {\n from: 2020\n }\n ]\n },\n '12-24': {\n _name: '12-24'\n },\n '12-25': {\n _name: '12-25'\n },\n '12-26': {\n _name: '12-26'\n }\n }\n },\n LU: {\n names: {\n fr: 'Luxembourg',\n en: 'Luxembourg',\n de: 'Luxemburg',\n lb: 'Lëtzebuerg',\n pt: 'Luxemburgo'\n },\n langs: [\n 'fr',\n 'de',\n 'lb'\n ],\n zones: [\n 'Europe/Luxembourg'\n ],\n days: {\n '01-01': {\n _name: '01-01'\n },\n '01-23': {\n _name: 'National Holiday',\n active: [\n {\n from: '1947-08-08',\n to: '1961-12-23'\n }\n ]\n },\n 'easter -2': {\n _name: 'easter -2',\n type: 'observance'\n },\n easter: {\n _name: 'easter',\n type: 'observance'\n },\n 'easter 1': {\n _name: 'easter 1',\n active: [\n {\n from: '1892-02-16'\n }\n ]\n },\n '05-01': {\n _name: '05-01',\n name: {\n fr: '1er mai'\n },\n active: [\n {\n from: '1946-04-23'\n }\n ]\n },\n '05-09': {\n _name: '05-09',\n active: [\n {\n from: '2019-01-01'\n }\n ]\n },\n 'easter 39': {\n _name: 'easter 39'\n },\n 'easter 50': {\n _name: 'easter 50',\n active: [\n {\n from: '1892-02-16'\n }\n ]\n },\n '06-23': {\n _name: 'National Holiday',\n active: [\n {\n from: '1961-12-23'\n }\n ]\n },\n '08-15': {\n _name: '08-15'\n },\n '11-01': {\n _name: '11-01'\n },\n '12-25': {\n _name: '12-25'\n },\n '12-26': {\n _name: '12-26',\n active: [\n {\n from: '1892-02-16'\n }\n ]\n }\n }\n },\n LV: {\n names: {\n lv: 'Latvija',\n en: 'Latvia'\n },\n dayoff: 'sunday',\n langs: [\n 'lv'\n ],\n zones: [\n 'Europe/Riga'\n ],\n days: {\n '01-01': {\n _name: '01-01'\n },\n 'easter -2': {\n _name: 'easter -2'\n },\n easter: {\n _name: 'easter'\n },\n 'easter 1': {\n _name: 'easter 1'\n },\n '05-01': {\n _name: '05-01'\n },\n '05-04 and if saturday,sunday then next monday': {\n substitute: true,\n name: {\n en: 'Restoration of Independence day',\n lv: 'Latvijas Republikas Neatkarības atjaunošanas diena'\n }\n },\n '2nd sunday in May': {\n _name: 'Mothers Day',\n type: 'observance'\n },\n '06-23': {\n name: {\n en: 'Midsummer Eve',\n lv: 'Līgo Diena'\n }\n },\n '06-24': {\n name: {\n en: 'Midsummer',\n lv: 'Jāņi'\n }\n },\n '11-18 and if saturday,sunday then next monday': {\n substitute: true,\n name: {\n en: 'Republic Day',\n lv: 'Latvijas Republikas proklamēšanas diena'\n }\n },\n '12-24': {\n _name: '12-24'\n },\n '12-25': {\n _name: '12-25'\n },\n '12-26': {\n _name: '12-26'\n },\n '12-31': {\n _name: '12-31'\n }\n }\n },\n LY: {\n names: {\n ar: 'دولة ليبيا',\n en: 'Libya'\n },\n langs: [\n 'ar'\n ],\n zones: [\n 'Africa/Tripoli'\n ],\n dayoff: '',\n days: {\n '02-17': {\n _name: 'Revolution Day'\n },\n '05-01': {\n _name: '05-01'\n },\n '09-16': {\n name: {\n ar: 'يوم الشهداء',\n en: \"Martyrs' Day\"\n }\n },\n '10-23': {\n _name: 'Liberation Day'\n },\n '12-24': {\n _name: 'Independence Day'\n },\n '1 Muharram': {\n _name: '1 Muharram'\n },\n '12 Rabi al-awwal': {\n _name: '12 Rabi al-awwal'\n },\n '1 Shawwal P3D': {\n _name: '1 Shawwal'\n },\n '9 Dhu al-Hijjah': {\n _name: '9 Dhu al-Hijjah'\n },\n '10 Dhu al-Hijjah P3D': {\n _name: '10 Dhu al-Hijjah'\n }\n }\n },\n MA: {\n names: {\n ar: 'المملكة المغربية',\n fr: 'Royaume du Maroc',\n en: 'Kingdom of Morocco'\n },\n langs: [\n 'ar',\n 'ber',\n 'fr'\n ],\n zones: [\n 'Africa/Casablanca'\n ],\n dayoff: 'sunday',\n days: {\n '01-01': {\n _name: '01-01'\n },\n '01-11': {\n name: {\n fr: \"Manifeste de l'indépendance\",\n ar: 'ذكرى تقديم وثيقة الاستقلال',\n en: 'Anniversary of the Independence Manifesto'\n }\n },\n '05-01': {\n _name: '05-01'\n },\n '07-30': {\n name: {\n fr: 'Fête du trône',\n ar: 'عيد العرش',\n en: 'Feast of the Throne'\n }\n },\n '08-14': {\n name: {\n fr: 'Journée de Oued Ed-Dahab',\n ar: 'يوم وادي الذهب',\n en: 'Anniversary of the Recovery Oued Ed-Dahab'\n }\n },\n '08-20': {\n name: {\n fr: 'Fête de la révolution du roi et du peuple',\n ar: 'ثورة الملك والشعب',\n en: 'Anniversary of the Revolution of the King and the People'\n }\n },\n '08-21': {\n name: {\n fr: 'Journée de la jeunesse',\n ar: 'عيد الشباب',\n en: 'Youth Day'\n }\n },\n '11-06': {\n name: {\n fr: 'La Marche verte',\n ar: 'المسيرة الخضراء',\n en: 'Anniversary of the Green March'\n }\n },\n '11-18': {\n _name: 'Independence Day',\n name: {\n fr: \"Fête de l'indépendance\"\n }\n },\n '1 Muharram': {\n _name: '1 Muharram'\n },\n '12 Rabi al-awwal': {\n _name: '12 Rabi al-awwal'\n },\n '1 Shawwal': {\n _name: '1 Shawwal'\n },\n '10 Dhu al-Hijjah': {\n _name: '10 Dhu al-Hijjah'\n }\n }\n },\n MC: {\n names: {\n fr: 'Monaco',\n en: 'Monaco'\n },\n dayoff: 'sunday',\n langs: [\n 'fr'\n ],\n zones: [\n 'Europe/Monaco'\n ],\n days: {\n '01-01': {\n _name: '01-01'\n },\n '01-27 and if sunday then next monday': {\n substitute: true,\n name: {\n en: \"Saint Devota's Day\",\n fr: 'Sainte Dévote'\n }\n },\n 'easter -2': {\n _name: 'easter -2',\n type: 'observance'\n },\n easter: {\n _name: 'easter',\n type: 'observance'\n },\n 'easter 1': {\n _name: 'easter 1'\n },\n '05-01 and if sunday then next monday': {\n substitute: true,\n _name: '05-01',\n name: {\n fr: '1er mai'\n }\n },\n 'easter 39': {\n _name: 'easter 39'\n },\n 'easter 50': {\n _name: 'easter 50'\n },\n 'easter 60': {\n _name: 'easter 60'\n },\n '08-15': {\n _name: '08-15'\n },\n '11-01': {\n _name: '11-01'\n },\n '11-19 and if sunday then next monday': {\n substitute: true,\n name: {\n en: \"H.S.H. the Sovereign Prince's Day\",\n fr: 'La Fête du Prince'\n }\n },\n '12-08': {\n _name: '12-08'\n },\n '12-25 and if sunday then next monday': {\n substitute: true,\n _name: '12-25'\n }\n }\n },\n MD: {\n names: {\n ro: 'Republica Moldova',\n en: 'Moldova'\n },\n langs: [\n 'ro'\n ],\n zones: [\n 'Europe/Chisinau'\n ],\n dayoff: 'sunday',\n days: {\n '01-01': {\n _name: '01-01'\n },\n 'julian 12-25 P2D': {\n _name: 'julian 12-25',\n name: {\n ro: 'Craciun pe Rit Vechi'\n }\n },\n '03-08': {\n _name: '03-08'\n },\n orthodox: {\n _name: 'easter'\n },\n 'orthodox 1': {\n _name: 'easter 1'\n },\n 'orthodox 8': {\n name: {\n ro: 'Paştele Blăjinilor',\n en: 'Memorial Day'\n }\n },\n '05-01': {\n _name: '05-01'\n },\n '05-09': {\n name: {\n ro: 'Ziua Victoriei',\n en: 'Victory Day'\n }\n },\n '08-27': {\n _name: 'Independence Day'\n },\n '08-31': {\n name: {\n ro: 'Limba noastră',\n en: 'National Language Day'\n }\n },\n '1st saturday in October P2D': {\n name: {\n ro: 'Ziua vinului',\n en: 'Wine Day'\n },\n type: 'observance',\n active: [\n {\n from: 2013\n }\n ]\n },\n '12-25': {\n _name: '12-25',\n name: {\n ro: 'Craciun pe stil Nou'\n }\n }\n },\n states: {\n CA: {\n name: 'Cahul',\n days: {\n '11-21': {\n name: {\n ro: 'Ziua Cahul',\n en: 'Cahul Day'\n }\n }\n }\n },\n CU: {\n name: 'Chișinău',\n days: {\n '10-14': {\n name: {\n ro: 'Ziua capitalului',\n en: \"Capital's Day\"\n }\n }\n }\n }\n }\n },\n ME: {\n names: {\n hr: 'Crna Gora',\n sr: 'Црна Гора',\n bs: 'Crna Gora',\n sq: 'Mali i Zi',\n en: 'Montenegro'\n },\n dayoff: 'sunday',\n langs: [\n 'hr',\n 'sr',\n 'bs',\n 'sq'\n ],\n zones: [\n 'Europe/Belgrade'\n ],\n days: {\n '05-21 and if sunday then next tuesday': {\n substitute: true,\n _name: 'Independence Day'\n },\n '05-22 and if sunday then next monday': {\n substitute: true,\n _name: 'Independence Day'\n },\n '07-13 and if sunday then next tuesday': {\n substitute: true,\n name: {\n hr: 'Dan državnosti',\n sr: 'Дан државности',\n en: 'Statehood Day'\n }\n },\n '07-14 and if sunday then next monday': {\n substitute: true,\n name: {\n hr: 'Dan državnosti',\n sr: 'Дан државности',\n en: 'Statehood Day'\n }\n },\n '01-01 and if sunday then next tuesday': {\n substitute: true,\n _name: '01-01'\n },\n '01-02 and if sunday then next monday': {\n substitute: true,\n _name: '01-01'\n },\n '05-01 and if sunday then next tuesday': {\n substitute: true,\n _name: '05-01'\n },\n '05-02 and if sunday then next monday': {\n substitute: true,\n _name: '05-01'\n },\n 'julian 12-24': {\n _name: '12-24'\n },\n 'julian 12-25': {\n _name: '12-25'\n },\n 'julian 12-26': {\n _name: '12-26'\n },\n 'julian 01-01': {\n _name: 'julian 01-01',\n type: 'observance'\n },\n 'orthodox -2': {\n _name: 'easter -2'\n },\n orthodox: {\n _name: 'easter'\n },\n '12-24': {\n _name: '12-24'\n },\n '12-25': {\n _name: '12-25'\n },\n '12-26': {\n _name: '12-25'\n },\n 'easter -2': {\n _name: 'easter -2'\n },\n easter: {\n _name: 'easter'\n },\n 'easter 1': {\n _name: 'easter'\n },\n '08-15': {\n _name: '08-15',\n type: 'observance'\n },\n '11-01': {\n _name: '11-01'\n },\n '1 Shawwal P3D': {\n _name: '1 Shawwal'\n },\n '10 Dhu al-Hijjah P3D': {\n _name: '10 Dhu al-Hijjah'\n },\n '1 Muharram': {\n _name: '1 Muharram',\n type: 'observance'\n },\n '12 Rabi al-awwal': {\n _name: '12 Rabi al-awwal',\n type: 'observance'\n },\n '27 Rajab': {\n _name: '27 Rajab',\n type: 'observance'\n },\n '15 Shaban': {\n _name: '15 Shaban',\n type: 'observance'\n },\n '1 Ramadan': {\n _name: '1 Ramadan',\n type: 'observance'\n },\n '27 Ramadan': {\n _name: '27 Ramadan',\n type: 'observance'\n },\n '15 Nisan P2D': {\n _name: '15 Nisan'\n },\n '1 Tishrei': {\n _name: '1 Tishrei',\n type: 'observance'\n },\n '10 Tishrei P2D': {\n _name: '10 Tishrei'\n }\n }\n },\n MF: {\n names: {\n en: 'St. Martin',\n fr: 'Saint Martin'\n },\n langs: [\n 'fr'\n ],\n zones: [\n 'America/Marigot'\n ],\n dayoff: 'sunday',\n _days: 'FR',\n days: {\n '05-27': {\n name: {\n fr: \"Abolition de l'esclavage\",\n en: 'abolition of slavery'\n }\n }\n }\n },\n MG: {\n names: {\n mg: \"Repoblikan'i Madagasikara\",\n fr: 'République de Madagascar',\n en: 'Madagascar'\n },\n dayoff: 'sunday',\n langs: [\n 'mg',\n 'fr',\n 'en'\n ],\n zones: [\n 'Africa/Nairobi'\n ],\n days: {\n '01-01': {\n _name: '01-01'\n },\n '03-08': {\n name: {\n mg: \"Andro iraisam-pirenena ho an'ny vehivavy\",\n fr: 'Journée internationale de la femme',\n en: \"International Women's Day\"\n },\n note: 'only for women'\n },\n '03-29': {\n name: {\n mg: \"Martioran'ny tolona tamin'ny 1947\",\n fr: \"Commémoration des martyrs de l'insurrection de 1947.\",\n en: \"Martyrs' Day\"\n }\n },\n easter: {\n _name: 'easter'\n },\n 'easter 1': {\n _name: 'easter 1'\n },\n '05-01': {\n _name: '05-01'\n },\n '05-25': {\n name: {\n mg: \"Andron'i Afrika\",\n fr: \"Jour de l'Afrique\",\n en: 'Africa Day'\n }\n },\n 'easter 39': {\n _name: 'easter 39'\n },\n 'easter 50': {\n _name: 'easter 50'\n },\n '06-26': {\n _name: 'Independence Day',\n name: {\n mg: 'Fetim-pirenena',\n fr: 'Fête Nationale'\n }\n },\n '08-15': {\n _name: '08-15'\n },\n '11-01': {\n _name: '11-01'\n },\n '12-25': {\n _name: '12-25'\n },\n '1 Shawwal': {\n _name: '1 Shawwal',\n note: 'For Muslim'\n },\n '10 Dhu al-Hijjah': {\n _name: '10 Dhu al-Hijjah',\n note: 'For Muslim'\n }\n }\n },\n MK: {\n names: {\n mk: 'Република Македонија',\n en: 'Macedonia'\n },\n langs: [\n 'mk'\n ],\n zones: [\n 'Europe/Belgrade'\n ],\n dayoff: 'sunday',\n days: {\n '01-01 and if sunday then next monday': {\n substitute: true,\n _name: '01-01'\n },\n 'julian 12-25 and if sunday then next monday': {\n substitute: true,\n _name: 'julian 12-25'\n },\n orthodox: {\n _name: 'orthodox'\n },\n 'orthodox 1': {\n _name: 'orthodox 1'\n },\n '05-01 and if sunday then next monday': {\n substitute: true,\n _name: '05-01'\n },\n '05-24 and if sunday then next monday': {\n substitute: true,\n name: {\n mk: 'Св. Кирил и Методиј',\n en: 'Saints Cyril and Methodius Day'\n }\n },\n '08-02 and if sunday then next monday': {\n substitute: true,\n name: {\n mk: 'Ден на Републиката',\n en: 'Day of the Republic'\n }\n },\n '09-08 and if sunday then next monday': {\n substitute: true,\n _name: 'Independence Day'\n },\n '10-11 and if sunday then next monday': {\n substitute: true,\n name: {\n mk: 'Ден на востанието',\n en: 'Revolution Day'\n }\n },\n '10-23 and if sunday then next monday': {\n substitute: true,\n name: {\n mk: 'Ден на македонската револуционерна борба',\n en: 'Day of the Macedonian Revolutionary Struggle'\n }\n },\n '12-08 and if sunday then next monday': {\n substitute: true,\n name: {\n mk: 'Св. Климент Охридски',\n en: 'Saint Clement of Ohrid Day'\n }\n },\n '1 Shawwal and if sunday then next monday': {\n substitute: true,\n _name: '1 Shawwal'\n },\n 'julian 12-24': {\n _name: 'julian 12-24',\n type: 'optional',\n note: 'Orthodox believers'\n },\n 'julian 01-06': {\n _name: '01-06',\n type: 'optional',\n note: 'Orthodox believers'\n },\n 'orthodox -2': {\n _name: 'orthodox -2',\n type: 'optional',\n note: 'Orthodox believers'\n },\n 'orthodox 47': {\n name: {\n mk: 'петок пред Духовден',\n en: 'Friday before Pentecost'\n },\n type: 'optional',\n note: 'Orthodox believers'\n },\n 'orthodox 49': {\n _name: 'easter 49',\n type: 'optional',\n note: 'Orthodox believers'\n },\n 'julian 08-15': {\n _name: '08-15',\n type: 'optional',\n note: 'Orthodox believers'\n },\n '10 Dhu al-Hijjah': {\n _name: '10 Dhu al-Hijjah',\n type: 'optional',\n note: 'Muslim believers'\n },\n '10 Tishrei': {\n _name: '10 Tishrei',\n type: 'optional',\n note: 'Jewish believers'\n },\n 'easter 1': {\n _name: 'easter 1',\n type: 'optional',\n note: 'Catholic believers'\n },\n '11-01': {\n _name: '11-01',\n type: 'optional',\n note: 'Catholic believers'\n },\n '12-25': {\n _name: '12-25',\n type: 'optional',\n note: 'Catholic believers'\n },\n '11-22': {\n name: {\n mk: 'Ден на Албанската азбука',\n en: 'Day of the Albanian Alphabet'\n },\n type: 'optional',\n note: 'For members of the Albanian community'\n },\n '12-21': {\n name: {\n mk: 'Ден на настава на турски јазик',\n en: 'Turkish Language Day'\n },\n type: 'optional',\n note: 'For members of the the Turkish community'\n },\n '01-27': {\n name: {\n mk: 'Свети Сава',\n en: 'St. Sava'\n },\n type: 'optional',\n note: 'For members of the Serbian community'\n },\n '04-08': {\n name: {\n mk: 'Меѓународен ден на Ромите',\n en: 'International Roma Day'\n },\n type: 'optional',\n note: 'For members of the the Roma community'\n },\n '05-23': {\n name: {\n mk: 'Национален ден на Властите',\n en: 'National Day of Authorities'\n },\n type: 'optional',\n note: 'For members of the Vlach community'\n },\n '09-28': {\n name: {\n mk: 'Меѓународен ден на Бошњаците',\n en: 'International Day of Bosniaks'\n },\n type: 'optional',\n note: 'For Members of the Bosniak community.'\n }\n }\n },\n ML: {\n names: {\n fr: 'République du Mali',\n en: 'Republic of Mali'\n },\n langs: [\n 'fr',\n 'en'\n ],\n zones: [\n 'Africa/Abidjan'\n ],\n dayoff: 'sunday',\n days: {\n '01-01': {\n _name: '01-01'\n },\n '01-20': {\n name: {\n fr: \"Fête de l'armée\",\n en: 'Army Day'\n }\n },\n '03-26': {\n name: {\n fr: 'Journée des Martyrs',\n en: \"Martyrs' Day\"\n }\n },\n 'easter 1': {\n _name: 'easter 1'\n },\n '05-01': {\n _name: '05-01'\n },\n '12-25': {\n _name: '12-25'\n },\n '1 Shawwal': {\n _name: '1 Shawwal'\n },\n '05-25': {\n name: \"Jour de l'Afrique\"\n },\n '10 Dhu al-Hijjah': {\n _name: '10 Dhu al-Hijjah'\n },\n '09-22': {\n _name: 'Independence Day',\n name: {\n fr: \"Fête nationale de l'indépendance\"\n }\n },\n '12 Rabi al-awwal': {\n _name: '12 Rabi al-awwal'\n }\n }\n },\n MQ: {\n names: {\n fr: 'Martinique',\n en: 'Martinique'\n },\n langs: [\n 'fr'\n ],\n zones: [\n 'America/Martinique'\n ],\n dayoff: 'sunday',\n _days: 'FR',\n days: {\n 'easter -2': {\n _name: 'easter -2'\n },\n '05-22': {\n _name: 'Abolition of Slavery'\n },\n '07-21': {\n name: {\n fr: 'Jour de Victor Schoelcher',\n en: 'Victor Shoelcher Day'\n }\n }\n }\n },\n MR: {\n names: {\n ar: 'الجمهورية الإسلامية الموريتانية',\n en: 'Mauritania'\n },\n langs: [\n 'ar',\n 'fr'\n ],\n zones: [\n 'Africa/Abidjan'\n ],\n dayoff: '',\n days: {\n '01-01': {\n _name: '01-01'\n },\n '05-01': {\n _name: '05-01'\n },\n '05-25': {\n name: {\n ar: 'يوم افريقيا',\n en: 'Africa Day'\n }\n },\n '11-28': {\n _name: 'Independence Day'\n },\n '1 Muharram': {\n _name: '1 Muharram'\n },\n '12 Rabi al-awwal': {\n _name: '12 Rabi al-awwal'\n },\n '1 Shawwal': {\n _name: '1 Shawwal'\n },\n '10 Dhu al-Hijjah P3D': {\n _name: '10 Dhu al-Hijjah'\n }\n }\n },\n MS: {\n names: {\n en: 'Montserrat'\n },\n langs: [\n 'en'\n ],\n zones: [\n 'America/Port_of_Spain'\n ],\n dayoff: 'sunday',\n days: {\n '01-01 and if Saturday then next Monday if Sunday then next Tuesday': {\n substitute: true,\n _name: '01-01'\n },\n '03-17 and if Saturday, Sunday then next Monday': {\n substitute: true,\n name: {\n en: \"Saint Patrick's Day\"\n }\n },\n 'easter -2': {\n _name: 'easter -2'\n },\n 'easter 1': {\n _name: 'easter 1'\n },\n '1st Monday in May': {\n _name: '05-01'\n },\n 'easter 50': {\n _name: 'easter 50'\n },\n '2nd Monday after 06-02': {\n name: {\n en: \"Queen's Birthday Celebration\"\n }\n },\n '08-01 if Saturday, Sunday then next Monday': {\n name: {\n en: 'Emancipation Day'\n }\n },\n '12-25 and if Saturday then next Monday if Sunday then next Tuesday': {\n substitute: true,\n _name: '12-25'\n },\n '12-26 and if Saturday then next Monday if Sunday then next Tuesday': {\n substitute: true,\n _name: '12-26'\n },\n '12-31 and if Saturday then next Monday if Sunday then next Tuesday': {\n substitute: true,\n _name: '12-31',\n name: {\n en: 'Festival Day'\n }\n }\n }\n },\n MT: {\n names: {\n mt: 'Malta',\n en: 'Malta'\n },\n dayoff: 'sunday',\n langs: [\n 'mt'\n ],\n zones: [\n 'Europe/Malta'\n ],\n days: {\n '01-01': {\n _name: '01-01'\n },\n '02-10': {\n name: {\n en: \"Feast of Saint Paul's Shipwreck in Malta\",\n mt: \"Nawfraġju ta' San Pawl\"\n }\n },\n '03-19': {\n _name: '03-19'\n },\n '03-31': {\n name: {\n en: 'Freedom Day',\n mt: 'Jum il-Ħelsien'\n }\n },\n 'easter -2': {\n _name: 'easter -2'\n },\n '05-01': {\n _name: '05-01'\n },\n '06-07': {\n name: {\n mt: 'Sette Giugno',\n en: 'June 7th'\n }\n },\n '06-29': {\n _name: '06-29'\n },\n '08-15': {\n _name: '08-15'\n },\n '09-08': {\n name: {\n en: 'Victory Day',\n mt: 'Jum il-Vitorja'\n }\n },\n '09-21': {\n _name: 'Independence Day'\n },\n '12-08': {\n _name: '12-08'\n },\n '12-13': {\n name: {\n en: 'Republic Day',\n mt: 'Jum ir-Repubblika'\n }\n },\n '12-25': {\n _name: '12-25'\n }\n }\n },\n MW: {\n names: {\n en: 'Malawi'\n },\n dayoff: 'sunday',\n langs: [\n 'en'\n ],\n zones: [\n 'Africa/Maputo'\n ],\n days: {\n '01-01 and if saturday,sunday then next monday': {\n substitute: true,\n _name: '01-01'\n },\n '01-15 and if saturday,sunday then next monday': {\n substitute: true,\n name: {\n en: 'John Chilembwe Day'\n }\n },\n '03-03 and if saturday,sunday then next monday': {\n name: {\n en: \"Martyrs' Day\"\n }\n },\n 'easter -2': {\n _name: 'easter -2'\n },\n easter: {\n _name: 'easter',\n type: 'observance'\n },\n 'easter 1': {\n _name: 'easter 1'\n },\n '05-01 and if saturday,sunday then next monday': {\n _name: '05-01'\n },\n '05-14 and if saturday,sunday then next monday': {\n substitute: true,\n name: {\n en: 'Kamuzu Day'\n }\n },\n '07-06 and if saturday,sunday then next monday': {\n substitute: true,\n _name: 'Independence Day'\n },\n '10-15 and if saturday,sunday then next monday': {\n substitute: true,\n _name: 'Mothers Day'\n },\n '12-25 and if saturday,sunday then next monday': {\n substitute: true,\n _name: '12-25'\n },\n '1 Shawwal and if saturday,sunday then next monday': {\n substitute: true,\n _name: '1 Shawwal',\n name: {\n en: 'Eid al Fitri'\n }\n }\n }\n },\n MX: {\n names: {\n es: 'México',\n en: 'Mexico'\n },\n dayoff: 'sunday',\n langs: [\n 'es'\n ],\n zones: [\n 'America/Mexico_City',\n 'America/Cancun',\n 'America/Merida',\n 'America/Monterrey',\n 'America/Matamoros',\n 'America/Mazatlan',\n 'America/Chihuahua',\n 'America/Ojinaga',\n 'America/Hermosillo',\n 'America/Tijuana',\n 'America/Santa_Isabel',\n 'America/Bahia_Banderas'\n ],\n days: {\n '01-01': {\n _name: '01-01'\n },\n '02-05': {\n _name: 'Constitution Day'\n },\n '1st monday in February': {\n name: {\n en: 'Constitution Day (day off)',\n es: 'Día de la Constitución (día libre)'\n }\n },\n '03-21': {\n name: {\n en: \"Benito Juárez's birthday\",\n es: 'Natalicio de Benito Juárez'\n }\n },\n '3rd monday in March': {\n name: {\n en: \"Benito Juárez's birthday (day off)\",\n es: 'Natalicio de Benito Juárez (día libre)'\n }\n },\n 'easter -3': {\n _name: 'easter -3',\n type: 'bank'\n },\n 'easter -2': {\n _name: 'easter -2',\n type: 'bank'\n },\n '05-01': {\n _name: '05-01'\n },\n '05-10': {\n _name: 'Mothers Day',\n type: 'observance'\n },\n '09-16': {\n _name: 'Independence Day'\n },\n '11-02': {\n _name: '11-02',\n type: 'bank'\n },\n '11-20': {\n _name: 'Revolution Day'\n },\n '3rd monday in November': {\n name: {\n en: 'Revolution Day (day off)',\n es: 'Día de la Revolución (día libre)'\n }\n },\n '12-01 every 6 years since 1934': {\n name: {\n en: 'Change of Federal Government',\n es: 'Transmisión del Poder Ejecutivo Federal'\n }\n },\n '12-12': {\n name: {\n en: 'Day of the Virgin of Guadalupe',\n es: 'Día de la Virgen de Guadalupe'\n },\n type: 'bank'\n },\n '12-25': {\n _name: '12-25'\n }\n }\n },\n MY: {\n names: {\n en: 'Malaysia'\n },\n langs: [\n 'ms'\n ],\n zones: [\n 'Asia/Kuala_Lumpur',\n 'Asia/Kuching'\n ],\n dayoff: 'Saturday',\n days: {\n '01-01': {\n _name: '01-01'\n },\n 'substitutes 01-01 if Sunday then next Monday': {\n substitute: true,\n _name: '01-01'\n },\n 'chinese 01-0-01': {\n name: {\n en: 'Chinese New Year',\n ms: 'Tahun Baru Cina'\n }\n },\n 'chinese 01-0-02': {\n name: {\n en: 'Chinese New Year',\n ms: 'Tahun Baru Cina'\n }\n },\n 'substitutes chinese 01-0-01 if Sunday then next Monday': {\n substitute: true,\n name: {\n en: 'Chinese New Year',\n ms: 'Tahun Baru Cina'\n }\n },\n 'substitutes chinese 01-0-02 if Sunday then next Monday': {\n substitute: true,\n name: {\n en: 'Chinese New Year',\n ms: 'Tahun Baru Cina'\n }\n },\n '05-01': {\n _name: '05-01'\n },\n 'substitutes 05-01 if Sunday then next Monday': {\n substitute: true,\n _name: '05-01'\n },\n '1st Monday in June': {\n name: {\n en: \"Yang di-Pertuan Agong's Birthday\",\n ms: 'Hari Keputeraan Yang di-Pertuan Agong'\n }\n },\n '08-31': {\n _name: 'Independence Day'\n },\n 'substitutes 08-31 if Sunday then next Monday': {\n substitute: true,\n _name: 'Independence Day'\n },\n '09-16': {\n name: {\n en: 'Malaysia Day',\n ms: 'Hari Malaysia'\n }\n },\n 'substitutes 09-16 if Sunday then next Monday': {\n substitute: true,\n name: {\n en: 'Malaysia Day',\n ms: 'Hari Malaysia'\n }\n },\n '12-25': {\n _name: '12-25'\n },\n 'substitutes 12-25 if Sunday then next Monday': {\n substitute: true,\n _name: '12-25'\n },\n '17 Ramadan': {\n _name: '17 Ramadan',\n disable: [\n '2022-04-18'\n ],\n enable: [\n '2022-04-19'\n ]\n },\n '1 Shawwal': {\n _name: '1 Shawwal',\n disable: [\n '2022-05-02'\n ],\n enable: [\n '2022-05-03'\n ]\n },\n '2 Shawwal': {\n _name: '1 Shawwal',\n disable: [\n '2022-05-03'\n ],\n enable: [\n '2022-05-04'\n ]\n },\n '10 Dhu al-Hijjah': {\n _name: '10 Dhu al-Hijjah',\n disable: [\n '2022-07-09'\n ],\n enable: [\n '2022-07-10'\n ]\n },\n '1 Muharram': {\n _name: '1 Muharram'\n },\n '12 Rabi al-awwal': {\n _name: '12 Rabi al-awwal',\n disable: [\n '2022-10-08'\n ],\n enable: [\n '2022-10-09'\n ]\n },\n '2010-05-28': {\n _name: 'Vesak'\n },\n '2011-05-17': {\n _name: 'Vesak'\n },\n '2012-05-06': {\n _name: 'Vesak'\n },\n '2013-05-25': {\n _name: 'Vesak'\n },\n '2014-05-15': {\n _name: 'Vesak'\n },\n '2015-06-02': {\n _name: 'Vesak'\n },\n '2016-05-22': {\n _name: 'Vesak'\n },\n '2017-05-10': {\n _name: 'Vesak'\n },\n '2018-05-29': {\n _name: 'Vesak'\n },\n '2019-05-19': {\n _name: 'Vesak'\n },\n '2020-05-07': {\n _name: 'Vesak'\n },\n '2021-05-26': {\n _name: 'Vesak'\n },\n '2022-05-15': {\n _name: 'Vesak'\n },\n '2022-05-16': {\n substitute: true,\n _name: 'Vesak'\n },\n '2023-05-04': {\n _name: 'Vesak'\n },\n '2024-05-22': {\n _name: 'Vesak'\n },\n '2025-05-12': {\n _name: 'Vesak'\n },\n '2026-05-31': {\n _name: 'Vesak'\n },\n '2016-10-29': {\n _name: 'Deepavali'\n },\n '2017-10-18': {\n _name: 'Deepavali'\n },\n '2018-11-06': {\n _name: 'Deepavali'\n },\n '2019-10-27': {\n _name: 'Deepavali'\n },\n '2019-10-28': {\n substitute: true,\n _name: 'Deepavali'\n },\n '2020-11-14': {\n _name: 'Deepavali'\n },\n '2021-11-04': {\n _name: 'Deepavali'\n },\n '2022-10-24': {\n _name: 'Deepavali'\n },\n '2023-11-12': {\n _name: 'Deepavali'\n },\n '2023-11-13': {\n substitute: true,\n _name: 'Deepavali'\n },\n '2024-10-31': {\n _name: 'Deepavali'\n },\n '2025-10-20': {\n _name: 'Deepavali'\n },\n '2026-11-09': {\n _name: 'Deepavali'\n },\n '2027-10-28': {\n _name: 'Deepavali'\n },\n '2028-11-15': {\n _name: 'Deepavali'\n },\n '2029-11-05': {\n _name: 'Deepavali'\n },\n '2030-10-25': {\n _name: 'Deepavali'\n }\n },\n states: {\n 10: {\n name: 'Selangor',\n days: {\n '12-11': {\n name: {\n en: \"Sultan of Selangor's Birthday\",\n id: 'Hari Keputeraan Sultan Selangor'\n }\n },\n '2016-01-24': {\n _name: 'Thaipusam'\n },\n '2017-02-10': {\n _name: 'Thaipusam'\n },\n '2018-01-31': {\n _name: 'Thaipusam'\n },\n '2019-01-21': {\n _name: 'Thaipusam'\n },\n '2020-02-08': {\n _name: 'Thaipusam'\n },\n '2021-01-28': {\n _name: 'Thaipusam'\n },\n '2022-01-18': {\n _name: 'Thaipusam'\n },\n '2023-02-05': {\n _name: 'Thaipusam'\n },\n '2024-01-25': {\n _name: 'Thaipusam'\n },\n '2025-02-11': {\n _name: 'Thaipusam'\n },\n '2026-02-01': {\n _name: 'Thaipusam'\n }\n }\n },\n 11: {\n name: 'Terengganu',\n days: {\n '01-01': false,\n '03-04': {\n name: {\n en: 'Anniversary of Installation of the Sultan of Terengganu',\n ms: 'Hari Ulang Tahun Pertabalan Sultan Terengganu'\n }\n },\n '04-26': {\n name: {\n en: \"Sultan of Terengganu's Birthday\",\n ms: 'Hari Keputeraan Sultan Terengganu'\n }\n },\n '27 Rajab': {\n _name: '27 Rajab'\n },\n '9 Dhu al-Hijjah': {\n _name: '9 Dhu al-Hijjah'\n },\n '11 Dhu al-Hijjah': {\n _name: '10 Dhu al-Hijjah'\n }\n }\n },\n 12: {\n name: 'Sabah',\n days: {\n 'easter -2': {\n _name: 'easter -2'\n },\n '05-30': {\n name: {\n en: 'Tadau Kaamatan',\n ms: 'Pesta Kaamatan'\n }\n },\n '05-31': {\n name: {\n en: 'Tadau Kaamatan',\n ms: 'Pesta Kaamatan'\n }\n },\n '1st Saturday in October': {\n name: {\n en: \"Sabah State Governor's Birthday\",\n ms: 'Hari Jadi Yang di-Pertua Negeri Sabah'\n }\n },\n '12-24': {\n _name: '12-24'\n },\n '17 Ramadan': false\n }\n },\n 13: {\n name: 'Sarawak',\n days: {\n '2016-10-29': false,\n '2017-10-18': false,\n '2018-11-06': false,\n '2019-10-27': false,\n '2020-11-14': false,\n '2021-11-04': false,\n '2022-10-24': false,\n '2023-11-13': false,\n '2024-10-31': false,\n '2025-10-20': false,\n '2026-11-09': false,\n '2027-10-28': false,\n '2028-11-15': false,\n '2029-11-05': false,\n '2030-10-25': false,\n 'easter -2': {\n _name: 'easter -2'\n },\n '06-01': {\n name: {\n en: 'Gawai Dayak',\n ms: 'Perayaan Hari Gawai Dayak'\n }\n },\n '06-02': {\n name: {\n en: 'Gawai Dayak',\n ms: 'Perayaan Hari Gawai Dayak'\n }\n },\n '07-22': {\n name: {\n en: 'Sarawak Independence Day',\n ms: 'Hari Kemerdekaan Sarawak'\n }\n },\n '2nd Saturday in October': {\n name: {\n en: \"Sarawak State Governor's Birthday\",\n ms: 'Hari Jadi Yang di-Pertua Negeri Sarawak'\n }\n },\n '17 Ramadan': false\n }\n },\n 14: {\n name: 'Kuala Lumpur',\n days: {\n '02-01': {\n name: {\n en: 'Federal Territory Day',\n ms: 'Hari Wilayah Persekutuan'\n }\n },\n '2016-01-24': {\n _name: 'Thaipusam'\n },\n '2017-02-10': {\n _name: 'Thaipusam'\n },\n '2018-01-31': {\n _name: 'Thaipusam'\n },\n '2019-01-21': {\n _name: 'Thaipusam'\n },\n '2020-02-08': {\n _name: 'Thaipusam'\n },\n '2021-01-28': {\n _name: 'Thaipusam'\n },\n '2022-01-18': {\n _name: 'Thaipusam'\n },\n '2023-02-05': {\n _name: 'Thaipusam'\n },\n '2024-01-25': {\n _name: 'Thaipusam'\n },\n '2025-02-11': {\n _name: 'Thaipusam'\n },\n '2026-02-01': {\n _name: 'Thaipusam'\n }\n }\n },\n 15: {\n name: 'Labuan',\n days: {\n '02-01': {\n name: {\n en: 'Federal Territory Day',\n ms: 'Hari Wilayah Persekutuan'\n }\n },\n '05-30': {\n name: {\n en: 'Tadau Kaamatan',\n ms: 'Pesta Kaamatan'\n }\n },\n '05-31': {\n name: {\n en: 'Tadau Kaamatan',\n ms: 'Pesta Kaamatan'\n }\n }\n }\n },\n 16: {\n name: 'Putrajaya',\n days: {\n '02-01': {\n name: {\n en: 'Federal Territory Day',\n ms: 'Hari Wilayah Persekutuan'\n }\n },\n '2016-01-24': {\n _name: 'Thaipusam'\n },\n '2017-02-10': {\n _name: 'Thaipusam'\n },\n '2018-01-31': {\n _name: 'Thaipusam'\n },\n '2019-01-21': {\n _name: 'Thaipusam'\n },\n '2020-02-08': {\n _name: 'Thaipusam'\n },\n '2021-01-28': {\n _name: 'Thaipusam'\n },\n '2022-01-18': {\n _name: 'Thaipusam'\n },\n '2023-02-05': {\n _name: 'Thaipusam'\n },\n '2024-01-25': {\n _name: 'Thaipusam'\n },\n '2025-02-11': {\n _name: 'Thaipusam'\n },\n '2026-02-01': {\n _name: 'Thaipusam'\n }\n }\n },\n '01': {\n name: 'Johor',\n days: {\n '01-01': false,\n '03-23': {\n name: {\n en: \"Sultan of Johor's Birthday\",\n ms: 'Hari Keputeraan Sultan Johor'\n }\n },\n '1 Ramadan': {\n _name: '1 Ramadan'\n },\n '17 Ramadan': false,\n '6 Safar': {\n name: {\n en: 'Hari Hol of Sultan Iskandar of Johor',\n ms: 'Hari Hol Almarhum Sultan Iskandar'\n }\n },\n '2016-01-24': {\n _name: 'Thaipusam'\n },\n '2017-02-10': {\n _name: 'Thaipusam'\n },\n '2018-01-31': {\n _name: 'Thaipusam'\n },\n '2019-01-21': {\n _name: 'Thaipusam'\n },\n '2020-02-08': {\n _name: 'Thaipusam'\n },\n '2021-01-28': {\n _name: 'Thaipusam'\n },\n '2022-01-18': {\n _name: 'Thaipusam'\n },\n '2023-02-05': {\n _name: 'Thaipusam'\n },\n '2024-01-25': {\n _name: 'Thaipusam'\n },\n '2025-02-11': {\n _name: 'Thaipusam'\n },\n '2026-02-01': {\n _name: 'Thaipusam'\n }\n }\n },\n '02': {\n name: 'Kedah',\n days: {\n '01-01': false,\n '3rd Sunday in June': {\n name: {\n en: \"Sultan of Kedah's Birthday\",\n ms: 'Hari Keputeraan Sultan Kedah'\n }\n },\n '27 Rajab': {\n _name: '27 Rajab'\n },\n '1 Ramadan': {\n _name: '1 Ramadan'\n },\n '17 Ramadan': false,\n '11 Dhu al-Hijjah': {\n _name: '10 Dhu al-Hijjah'\n },\n '2016-01-24': {\n _name: 'Thaipusam'\n },\n '2017-02-10': {\n _name: 'Thaipusam'\n },\n '2018-01-31': {\n _name: 'Thaipusam'\n },\n '2019-01-21': {\n _name: 'Thaipusam'\n },\n '2020-02-08': {\n _name: 'Thaipusam'\n },\n '2021-01-28': {\n _name: 'Thaipusam'\n },\n '2022-01-18': {\n _name: 'Thaipusam'\n },\n '2023-02-05': {\n _name: 'Thaipusam'\n },\n '2024-01-25': {\n _name: 'Thaipusam'\n },\n '2025-02-11': {\n _name: 'Thaipusam'\n },\n '2026-02-01': {\n _name: 'Thaipusam'\n }\n }\n },\n '03': {\n name: 'Kelantan',\n days: {\n '01-01': false,\n '11 Dhu al-Hijjah': {\n _name: '10 Dhu al-Hijjah'\n },\n '11-11': {\n name: {\n en: \"Sultan of Kelantan's Birthday\",\n ms: 'Hari Keputeraan Sultan Kelantan'\n }\n },\n '11-12': {\n name: {\n en: \"Sultan of Kelantan's Birthday\",\n ms: 'Hari Keputeraan Sultan Kelantan'\n }\n }\n }\n },\n '04': {\n name: 'Malacca',\n days: {\n '04-15': {\n name: {\n en: 'Declaration of Malacca City as Historical City',\n ms: 'Hari Perisytiharan Bandar Melaka sebagai Bandaraya Bersejarah'\n }\n },\n '08-24': {\n name: {\n en: \"Melaka State Governor's Birthday\",\n ms: 'Hari Jadi Yang di-Pertua Negeri Melaka'\n }\n },\n '1 Ramadan': {\n _name: '1 Ramadan'\n },\n '17 Ramadan': false\n }\n },\n '05': {\n name: 'Negeri Sembilan',\n days: {\n '01-14': {\n name: {\n en: \"Yang di-Pertuan Besar of Negeri Sembilan's Birthday\",\n ms: 'Hari Keputeraan Yang di-Pertuan Besar Negeri Sembilan'\n }\n },\n '27 Rajab': {\n _name: '27 Rajab'\n },\n '17 Ramadan': false,\n '2016-01-24': {\n _name: 'Thaipusam'\n },\n '2017-02-10': {\n _name: 'Thaipusam'\n },\n '2018-01-31': {\n _name: 'Thaipusam'\n },\n '2019-01-21': {\n _name: 'Thaipusam'\n },\n '2020-02-08': {\n _name: 'Thaipusam'\n },\n '2021-01-28': {\n _name: 'Thaipusam'\n },\n '2022-01-18': {\n _name: 'Thaipusam'\n },\n '2023-02-05': {\n _name: 'Thaipusam'\n },\n '2024-01-25': {\n _name: 'Thaipusam'\n },\n '2025-02-11': {\n _name: 'Thaipusam'\n },\n '2026-02-01': {\n _name: 'Thaipusam'\n }\n }\n },\n '06': {\n name: 'Pahang',\n days: {\n '05-22': {\n name: {\n en: 'Hari Hol of Pahang',\n ms: 'Hari Hol Pahang'\n }\n },\n '07-30': {\n name: {\n en: \"Sultan of Pahang's Birthday\",\n ms: 'Hari Keputeraan Sultan Pahang'\n }\n }\n }\n },\n '07': {\n name: 'Penang',\n days: {\n '07-07': {\n name: {\n en: 'Declaration of George Town as World Heritage Site',\n id: 'Hari Ulang Tahun Perisytiharan Tapak Warisan Dunia'\n }\n },\n '2nd Saturday in July': {\n name: {\n en: \"Penang State Governor's Birthday\",\n ms: 'Hari Jadi Yang di-Pertua Negeri Pulau Pinang'\n }\n },\n '2016-01-24': {\n _name: 'Thaipusam'\n },\n '2017-02-10': {\n _name: 'Thaipusam'\n },\n '2018-01-31': {\n _name: 'Thaipusam'\n },\n '2019-01-21': {\n _name: 'Thaipusam'\n },\n '2020-02-08': {\n _name: 'Thaipusam'\n },\n '2021-01-28': {\n _name: 'Thaipusam'\n },\n '2022-01-18': {\n _name: 'Thaipusam'\n },\n '2023-02-05': {\n _name: 'Thaipusam'\n },\n '2024-01-25': {\n _name: 'Thaipusam'\n },\n '2025-02-11': {\n _name: 'Thaipusam'\n },\n '2026-02-01': {\n _name: 'Thaipusam'\n }\n }\n },\n '08': {\n name: 'Perak',\n days: {\n '1st Friday in November': {\n name: {\n en: \"Sultan of Perak's Birthday\",\n ms: 'Hari Keputeraan Sultan Perak'\n }\n },\n '2016-01-24': {\n _name: 'Thaipusam'\n },\n '2017-02-10': {\n _name: 'Thaipusam'\n },\n '2018-01-31': {\n _name: 'Thaipusam'\n },\n '2019-01-21': {\n _name: 'Thaipusam'\n },\n '2020-02-08': {\n _name: 'Thaipusam'\n },\n '2021-01-28': {\n _name: 'Thaipusam'\n },\n '2022-01-18': {\n _name: 'Thaipusam'\n },\n '2023-02-05': {\n _name: 'Thaipusam'\n },\n '2024-01-25': {\n _name: 'Thaipusam'\n },\n '2025-02-11': {\n _name: 'Thaipusam'\n },\n '2026-02-01': {\n _name: 'Thaipusam'\n }\n }\n },\n '09': {\n name: 'Perlis',\n days: {\n '01-01': false,\n '07-17': {\n name: {\n en: \"Raja of Perlis's Birthday\",\n id: 'Hari Keputeraan Raja Perlis'\n }\n },\n '27 Rajab': {\n _name: '27 Rajab'\n },\n '11 Dhu al-Hijjah': {\n _name: '10 Dhu al-Hijjah'\n }\n }\n }\n }\n },\n MZ: {\n names: {\n pt: 'Moçambique',\n en: 'Mozambique'\n },\n dayoff: 'sunday',\n langs: [\n 'pt'\n ],\n zones: [\n 'Africa/Maputo'\n ],\n days: {\n '01-01': {\n _name: '01-01',\n name: {\n pt: 'Dia da Fraternidade universal'\n }\n },\n 'substitutes 01-01 if sunday then next monday': {\n _name: 'Public Holiday'\n },\n '02-03': {\n name: {\n pt: 'Dia dos heróis moçambicanos',\n en: 'Heroes’ Day'\n }\n },\n 'substitutes 02-03 if sunday then next monday': {\n _name: 'Public Holiday'\n },\n '04-07': {\n name: {\n pt: 'Dia da Mulher Moçambicana',\n en: 'Women’s Day'\n }\n },\n 'substitutes 04-07 if sunday then next monday': {\n _name: 'Public Holiday'\n },\n '05-01': {\n _name: '05-01',\n name: {\n pt: 'Dia Internacional dos Trabalhadores',\n en: \"Workers' Day\"\n }\n },\n 'substitutes 05-01 if sunday then next monday': {\n _name: 'Public Holiday'\n },\n '1st sunday in May': {\n _name: 'Mothers Day',\n type: 'observance'\n },\n '06-25': {\n _name: 'Independence Day',\n name: {\n pt: 'Dia da Independência Nacional'\n }\n },\n 'substitutes 06-25 if sunday then next monday': {\n _name: 'Public Holiday'\n },\n '09-07': {\n name: {\n pt: 'Dia da Vitória',\n en: 'Lusaka Peace Agreement'\n }\n },\n 'substitutes 09-07 if sunday then next monday': {\n _name: 'Public Holiday'\n },\n '09-25': {\n name: {\n pt: 'Dia das Forças Armadas de Libertação Nacional',\n en: 'Defense Force’s Day'\n }\n },\n 'substitutes 09-25 if sunday then next monday': {\n _name: 'Public Holiday'\n },\n '10-04': {\n name: {\n pt: 'Dia da Paz e Reconciliação',\n en: 'Peace and Reconciliation Day'\n }\n },\n 'substitutes 10-04 if sunday then next monday': {\n _name: 'Public Holiday'\n },\n '12-25': {\n _name: '12-25',\n name: {\n pt: 'Dia da Família',\n en: 'Family Day'\n }\n },\n 'substitutes 12-25 if sunday then next monday': {\n _name: 'Public Holiday'\n }\n }\n },\n NA: {\n names: {\n en: 'Namibia'\n },\n dayoff: 'sunday',\n langs: [\n 'en'\n ],\n zones: [\n 'Africa/Windhoek'\n ],\n days: {\n '01-01': {\n _name: '01-01'\n },\n 'substitutes 01-01 if sunday then next monday': {\n name: 'Public Holiday'\n },\n '03-21': {\n _name: 'Independence Day'\n },\n 'substitutes 03-21 if sunday then next monday': {\n name: 'Public Holiday'\n },\n 'easter -2': {\n _name: 'easter -2'\n },\n easter: {\n _name: 'easter',\n type: 'observance'\n },\n 'easter 1': {\n _name: 'easter 1'\n },\n '05-01': {\n _name: '05-01',\n name: {\n en: 'Workers Day'\n }\n },\n 'substitutes 05-01 if sunday then next monday': {\n name: 'Public Holiday'\n },\n '05-04': {\n name: {\n en: 'Cassinga Day'\n }\n },\n 'substitutes 05-04 if sunday then next monday': {\n name: 'Public Holiday'\n },\n 'easter 39': {\n _name: 'easter 39'\n },\n '05-25': {\n name: {\n en: 'Africa Day'\n }\n },\n 'substitutes 05-25 if sunday then next monday': {\n name: 'Public Holiday'\n },\n '08-26': {\n name: {\n en: \"Heroes' Day\"\n }\n },\n 'substitutes 08-26 if sunday then next monday': {\n name: 'Public Holiday'\n },\n '12-10': {\n name: {\n en: 'Human Rights Day'\n }\n },\n 'substitutes 12-10 if sunday then next monday': {\n name: 'Public Holiday'\n },\n '12-25': {\n _name: '12-25'\n },\n '12-26': {\n _name: '12-26',\n name: {\n en: 'Day of Goodwill'\n }\n },\n 'substitutes 12-26 if sunday then next monday': {\n name: 'Public Holiday'\n }\n }\n },\n NC: {\n names: {\n fr: 'Nouvelle-Calédonie',\n en: 'New Caledonia'\n },\n dayoff: 'sunday',\n zones: [\n 'Pacific/Noumea'\n ],\n langs: [\n 'fr'\n ],\n _days: 'FR',\n days: {\n '01-01': {\n name: {\n fr: \"Jour de l'an\"\n }\n },\n '09-24': {\n name: {\n fr: 'Fête de la Citonneyeté',\n en: 'New Caledonia Day'\n }\n }\n }\n },\n NE: {\n names: {\n fr: 'République du Niger',\n en: 'Republic of the Niger'\n },\n langs: [\n 'fr'\n ],\n zones: [\n 'Africa/Lagos'\n ],\n dayoff: 'sunday',\n days: {\n '01-01': {\n _name: '01-01'\n },\n '04-24': {\n name: {\n fr: 'Journée Nationale de la Concorde',\n en: 'Concord Day'\n }\n },\n '05-01': {\n _name: '05-01'\n },\n '08-03': {\n _name: 'Independence Day',\n name: {\n fr: \"Proclamation de l'indépendance\"\n }\n },\n '12-18': {\n name: {\n fr: 'Proclamation de la République',\n en: 'Republic Day'\n }\n },\n '12-25': {\n _name: '12-25'\n },\n 'easter 1': {\n _name: 'easter 1'\n },\n '1 Shawwal': {\n _name: '1 Shawwal'\n },\n '10 Dhu al-Hijjah': {\n _name: '10 Dhu al-Hijjah'\n },\n '12 Rabi al-awwal': {\n _name: '12 Rabi al-awwal'\n },\n '1 Muharram': {\n _name: '1 Muharram'\n },\n '27 Ramadan': {\n _name: '27 Ramadan'\n }\n }\n },\n NG: {\n names: {\n en: 'Nigeria'\n },\n langs: [\n 'en'\n ],\n zones: [\n 'Africa/Lagos'\n ],\n dayoff: 'Saturday',\n days: {\n '01-01': {\n _name: '01-01'\n },\n '05-01 and if Saturday then next Monday': {\n substitute: true,\n _name: '05-01',\n name: {\n en: \"Worker's Day\"\n }\n },\n '05-27': {\n name: {\n en: \"Children's Day\",\n type: 'school'\n }\n },\n '05-29 prior to 2018': {\n name: {\n en: 'Democracy Day'\n }\n },\n '06-12 prior to 2018': {\n name: {\n en: 'M.K.O Abiola Day'\n }\n },\n '06-12 and if Saturday then next Monday since 2018': {\n substitute: true,\n name: {\n en: 'Democracy Day'\n }\n },\n '10-01': {\n _name: 'Independence Day'\n },\n '11-01 since 2020': {\n name: {\n en: 'National Youth Day'\n }\n },\n '12-31': {\n _name: '12-31',\n type: 'observance'\n },\n 'easter -2': {\n _name: 'easter -2'\n },\n easter: {\n _name: 'easter',\n type: 'observance'\n },\n 'easter 1': {\n _name: 'easter 1'\n },\n '12-25': {\n _name: '12-25'\n },\n '12-26': {\n _name: '12-26'\n },\n '1 Muharram': {\n _name: '1 Muharram'\n },\n '12 Rabi al-awwal': {\n _name: '12 Rabi al-awwal'\n },\n '1 Shawwal P2D': {\n _name: '1 Shawwal',\n name: {\n en: 'Id el Fitr'\n }\n },\n '10 Dhu al-Hijjah P2D': {\n _name: '10 Dhu al-Hijjah',\n name: {\n en: 'Id el Kabir'\n }\n }\n }\n },\n NI: {\n names: {\n es: 'Nicaragua',\n en: 'Nicaragua'\n },\n dayoff: 'sunday',\n langs: [\n 'es'\n ],\n zones: [\n 'America/Managua'\n ],\n days: {\n '01-01': {\n _name: '01-01'\n },\n '01-18': {\n name: {\n en: 'Birthday of Rubén Darío',\n es: 'Natalicio de Rubén Darío'\n },\n type: 'observance'\n },\n 'easter -3': {\n _name: 'easter -3'\n },\n 'easter -2': {\n _name: 'easter -2'\n },\n '05-01': {\n _name: '05-01'\n },\n '05-30': {\n _name: 'Mothers Day',\n name: {\n es: 'Día de la madre nicaragüense'\n },\n type: 'observance'\n },\n '06-01': {\n name: {\n en: \"Children's Day\",\n es: 'Día del niño'\n }\n },\n '06-23': {\n _name: 'Fathers Day',\n name: {\n es: 'Día del padre nicaragüense'\n },\n type: 'observance'\n },\n '07-19': {\n name: {\n en: 'Revolution Day',\n es: 'Triunfo de la Revolución Popular'\n }\n },\n '09-14': {\n name: {\n en: 'Battle of San Jacinto',\n es: 'Batalla de San Jacinto'\n }\n },\n '09-15': {\n _name: 'Independence Day'\n },\n '10-12': {\n name: {\n en: 'Indigenous Resistance Day',\n es: 'Día de la resistencia indígena'\n }\n },\n '12-08': {\n _name: '12-08'\n },\n '12-24': {\n _name: '12-24',\n type: 'observance'\n },\n '12-25': {\n _name: '12-25'\n },\n '12-31': {\n _name: '12-31',\n type: 'observance'\n }\n }\n },\n NL: {\n names: {\n nl: 'Nederland',\n en: 'Netherlands'\n },\n dayoff: 'sunday',\n langs: [\n 'nl'\n ],\n zones: [\n 'Europe/Amsterdam'\n ],\n days: {\n '01-01': {\n _name: '01-01'\n },\n 'easter -2': {\n _name: 'easter -2'\n },\n easter: {\n _name: 'easter'\n },\n 'easter 1': {\n _name: 'easter 1'\n },\n '04-27 if sunday then previous saturday': {\n name: {\n nl: 'Koningsdag'\n }\n },\n '05-04': {\n name: {\n nl: 'Nationale Dodenherdenking'\n },\n type: 'observance'\n },\n '05-05': {\n name: {\n nl: 'Bevrijdingsdag'\n },\n type: 'observance'\n },\n '2nd sunday in May': {\n _name: 'Mothers Day',\n type: 'observance'\n },\n '3rd sunday in June': {\n _name: 'Fathers Day',\n type: 'observance'\n },\n 'easter 39': {\n _name: 'easter 39'\n },\n 'easter 49': {\n _name: 'easter 49'\n },\n 'easter 50': {\n _name: 'easter 50'\n },\n '3rd tuesday in September': {\n name: {\n nl: 'Prinsjesdag'\n },\n note: 'Scholen in Den Haag geven meestal 1 dag vrij',\n type: 'observance'\n },\n '11-11': {\n _name: '11-11',\n type: 'observance'\n },\n '12-05': {\n name: {\n nl: 'Sinterklaasavond',\n en: \"St Nicholas' Eve\"\n },\n type: 'observance'\n },\n '12-15': {\n name: {\n nl: 'Koninkrijksdag',\n en: 'Kingdom Day'\n },\n type: 'observance'\n },\n '12-25': {\n _name: '12-25'\n },\n '12-26': {\n _name: '12-26'\n },\n '12-31': {\n _name: '12-31',\n type: 'bank'\n }\n }\n },\n NO: {\n names: {\n no: 'Norge',\n en: 'Norway'\n },\n dayoff: 'sunday',\n langs: [\n 'no'\n ],\n zones: [\n 'Europe/Oslo'\n ],\n days: {\n '01-01': {\n _name: '01-01'\n },\n '2nd sunday in February': {\n _name: 'Mothers Day',\n type: 'observance'\n },\n 'easter -49': {\n name: {\n no: 'Fastelavn',\n en: 'Carnival'\n },\n type: 'observance'\n },\n 'easter -7': {\n _name: 'easter -7',\n type: 'observance'\n },\n 'easter -3': {\n _name: 'easter -3'\n },\n 'easter -2': {\n _name: 'easter -2'\n },\n easter: {\n _name: 'easter'\n },\n 'easter 1': {\n _name: 'easter 1'\n },\n '05-01': {\n _name: '05-01'\n },\n '05-08': {\n _name: 'Liberation Day',\n type: 'observance'\n },\n '05-17': {\n _name: 'Constitution Day',\n name: {\n no: '17. mai'\n }\n },\n 'easter 39': {\n _name: 'easter 39'\n },\n 'easter 49': {\n _name: 'easter 49'\n },\n 'easter 50': {\n _name: 'easter 50'\n },\n '06-23': {\n name: {\n no: 'Sankthansaften',\n en: 'Midsummar Eve'\n },\n type: 'observance'\n },\n '2nd sunday in November': {\n _name: 'Fathers Day',\n type: 'observance'\n },\n '4th sunday before 12-24': {\n name: {\n no: 'Første søndag i advent',\n en: 'First Sunday of Advent'\n },\n type: 'observance'\n },\n '3rd sunday before 12-24': {\n name: {\n no: 'Andre søndag i advent',\n en: 'Second Sunday of Advent'\n },\n type: 'observance'\n },\n '2nd sunday before 12-24': {\n name: {\n no: 'Tredje søndag i advent',\n en: 'Third Sunday of Advent'\n },\n type: 'observance'\n },\n '1st sunday before 12-24': {\n name: {\n no: 'Fjerde søndag i advent',\n en: 'Fourth Sunday of Advent'\n },\n type: 'observance'\n },\n '12-24': {\n _name: '12-24',\n type: 'bank'\n },\n '12-25': {\n _name: '12-25'\n },\n '12-26': {\n _name: '12-26'\n },\n '12-31 14:00 if sunday then 00:00': {\n _name: '12-31',\n type: 'bank'\n }\n }\n },\n NZ: {\n names: {\n en: 'New Zealand',\n mi: 'Aotearoa'\n },\n dayoff: 'sunday',\n langs: [\n 'en',\n 'mi'\n ],\n zones: [\n 'Pacific/Auckland',\n 'Pacific/Chatham'\n ],\n days: {\n '01-01 and if saturday then next monday if sunday then next tuesday': {\n substitute: true,\n _name: '01-01'\n },\n '01-02 and if saturday then next monday if sunday then next tuesday': {\n substitute: true,\n name: {\n en: \"Day after New Year's Day\"\n }\n },\n '02-06 and if saturday,sunday then next monday': {\n substitute: true,\n name: {\n en: 'Waitangi Day'\n }\n },\n 'easter -2': {\n _name: 'easter -2'\n },\n easter: {\n _name: 'easter',\n type: 'observance'\n },\n 'easter 1': {\n _name: 'easter 1'\n },\n '04-25 and if saturday,sunday then next monday': {\n substitute: true,\n name: {\n en: 'ANZAC Day'\n }\n },\n '1st monday in June': {\n name: {\n en: \"Queen's Birthday\"\n }\n },\n '4th monday in October': {\n _name: '05-01'\n },\n '12-25 and if saturday then next monday if sunday then next tuesday': {\n substitute: true,\n _name: '12-25'\n },\n '12-26 and if saturday then next monday if sunday then next tuesday': {\n substitute: true,\n _name: '12-26'\n },\n '2022-06-24': {\n name: {\n en: 'Matariki'\n }\n },\n '2023-07-14': {\n name: {\n en: 'Matariki'\n }\n },\n '2024-06-28': {\n name: {\n en: 'Matariki'\n }\n },\n '2025-06-20': {\n name: {\n en: 'Matariki'\n }\n },\n '2026-07-10': {\n name: {\n en: 'Matariki'\n }\n },\n '2027-06-25': {\n name: {\n en: 'Matariki'\n }\n },\n '2028-07-14': {\n name: {\n en: 'Matariki'\n }\n },\n '2029-07-06': {\n name: {\n en: 'Matariki'\n }\n },\n '2030-06-21': {\n name: {\n en: 'Matariki'\n }\n },\n '2031-07-11': {\n name: {\n en: 'Matariki'\n }\n },\n '2032-07-02': {\n name: {\n en: 'Matariki'\n }\n },\n '2033-06-24': {\n name: {\n en: 'Matariki'\n }\n },\n '2034-07-07': {\n name: {\n en: 'Matariki'\n }\n },\n '2035-06-29': {\n name: {\n en: 'Matariki'\n }\n },\n '2036-07-18': {\n name: {\n en: 'Matariki'\n }\n },\n '2037-07-10': {\n name: {\n en: 'Matariki'\n }\n },\n '2038-06-25': {\n name: {\n en: 'Matariki'\n }\n },\n '2039-07-15': {\n name: {\n en: 'Matariki'\n }\n },\n '2040-07-06': {\n name: {\n en: 'Matariki'\n }\n },\n '2041-07-19': {\n name: {\n en: 'Matariki'\n }\n },\n '2042-07-11': {\n name: {\n en: 'Matariki'\n }\n },\n '2043-07-03': {\n name: {\n en: 'Matariki'\n }\n },\n '2044-06-24': {\n name: {\n en: 'Matariki'\n }\n },\n '2045-07-07': {\n name: {\n en: 'Matariki'\n }\n },\n '2046-06-29': {\n name: {\n en: 'Matariki'\n }\n },\n '2047-07-19': {\n name: {\n en: 'Matariki'\n }\n },\n '2048-07-03': {\n name: {\n en: 'Matariki'\n }\n },\n '2049-06-25': {\n name: {\n en: 'Matariki'\n }\n },\n '2050-07-15': {\n name: {\n en: 'Matariki'\n }\n },\n '2051-06-30': {\n name: {\n en: 'Matariki'\n }\n },\n '2052-06-21': {\n name: {\n en: 'Matariki'\n }\n },\n '2022-09-26': {\n name: {\n en: 'National Day of Mourning for Queen Elizabeth II'\n }\n }\n },\n states: {\n AUK: {\n names: {\n en: 'Auckland Province',\n mi: 'Tāmaki-makau-rau'\n },\n days: {\n '01-29 if tuesday,wednesday,thursday then previous monday if friday,saturday,sunday then next monday': {\n name: {\n en: 'Provincial anniversary day'\n }\n }\n }\n },\n BOP: {\n names: {\n en: 'Bay of Plenty',\n mi: 'Te Moana-a-Toi'\n },\n days: {\n '01-29 if tuesday,wednesday,thursday then previous monday if friday,saturday,sunday then next monday': {\n name: {\n en: 'Provincial anniversary day'\n }\n }\n }\n },\n CAN: {\n names: {\n en: 'Canterbury',\n mi: 'Waitaha'\n },\n days: {\n 'friday after 2nd tuesday in November': {\n name: {\n en: 'Christchurch Show Day'\n },\n note: 'May differ in parts of North Canterbury'\n }\n },\n regions: {\n Timaru: {\n name: 'Timaru District',\n days: {\n 'friday after 2nd tuesday in November': false,\n '4th monday in September': {\n name: {\n en: 'Dominion Day'\n }\n }\n }\n }\n }\n },\n CIT: {\n names: {\n en: 'Chatham Islands',\n mi: 'Wharekauri'\n },\n days: {\n '11-30 if tuesday,wednesday,thursday then previous monday if friday,saturday,sunday then next monday': {\n name: {\n en: 'Provincial anniversary day'\n }\n }\n }\n },\n GIS: {\n names: {\n en: 'Gisborne',\n mi: 'Te Tai Rāwhiti'\n },\n days: {\n '01-29 if tuesday,wednesday,thursday then previous monday if friday,saturday,sunday then next monday': {\n name: {\n en: 'Provincial anniversary day'\n }\n }\n }\n },\n HKB: {\n names: {\n en: \"Hawke's Bay\",\n mi: 'Te Matau-a-Māui'\n },\n days: {\n 'friday before 4th monday in October': {\n name: {\n en: 'Provincial anniversary day'\n }\n }\n }\n },\n MBH: {\n names: {\n en: 'Marlborough',\n mi: 'Te Tauihu-o-te-waka'\n },\n days: {\n '5th monday in October': {\n name: {\n en: 'Provincial anniversary day'\n }\n }\n }\n },\n MWT: {\n name: 'Manawatu-Wanganui',\n days: {\n '01-22 if tuesday,wednesday,thursday then previous monday if friday,saturday,sunday then next monday': {\n name: {\n en: 'Provincial anniversary day'\n }\n }\n }\n },\n NSN: {\n names: {\n en: 'Nelson',\n mi: 'Whakatū'\n },\n days: {\n '02-01 if tuesday,wednesday,thursday then previous monday if friday,saturday,sunday then next monday': {\n name: {\n en: 'Provincial anniversary day'\n }\n }\n }\n },\n NTL: {\n names: {\n en: 'Northland',\n mi: 'Te Tai Tokerau'\n },\n days: {\n '01-29 if tuesday,wednesday,thursday then previous monday if friday,saturday,sunday then next monday': {\n name: {\n en: 'Provincial anniversary day'\n }\n }\n }\n },\n OTA: {\n names: {\n en: 'Otago Province',\n mi: 'Ōtākou'\n },\n days: {\n '03-23 if Tuesday,Wednesday,Thursday then previous Monday if Friday,Saturday,Sunday then next Monday if is public holiday then next Monday': {\n name: {\n en: 'Provincial anniversary day'\n }\n }\n }\n },\n STL: {\n names: {\n en: 'Southland',\n mi: 'Murihiku'\n },\n days: {\n 'easter 2': {\n name: {\n en: 'Provincial anniversary day'\n }\n }\n }\n },\n TAS: {\n names: {\n en: 'Tasman',\n mi: 'Te Tai-o-Aorere'\n },\n days: {\n '02-01 if tuesday,wednesday,thursday then previous monday if friday,saturday,sunday then next monday': {\n name: {\n en: 'Provincial anniversary day'\n }\n }\n }\n },\n TKI: {\n name: 'Taranaki',\n days: {\n '2nd monday in March': {\n name: {\n en: 'Provincial anniversary day'\n }\n }\n }\n },\n WKO: {\n name: 'Waikato',\n days: {\n '01-29 if tuesday,wednesday,thursday then previous monday if friday,saturday,sunday then next monday': {\n name: {\n en: 'Provincial anniversary day'\n }\n }\n }\n },\n WGN: {\n names: {\n en: 'Wellington Province',\n mi: 'Te Whanga-nui-a-Tara'\n },\n days: {\n '01-22 if tuesday,wednesday,thursday then previous monday if friday,saturday,sunday then next monday': {\n name: {\n en: 'Provincial anniversary day'\n }\n }\n }\n },\n WTC: {\n names: {\n en: 'Westland',\n mi: 'Te Tai Poutini'\n },\n days: {\n '12-01 if tuesday,wednesday,thursday then previous monday if friday,saturday,sunday then next monday': {\n name: {\n en: 'Provincial anniversary day'\n }\n }\n },\n regions: {\n Buller: {\n name: 'Buller district',\n days: {\n '12-01 if tuesday,wednesday,thursday then previous monday if friday,saturday,sunday then next monday': false,\n '02-01 if tuesday,wednesday,thursday then previous monday if friday,saturday,sunday then next monday': {\n name: {\n en: 'Provincial anniversary day'\n }\n }\n }\n }\n }\n }\n }\n },\n PA: {\n names: {\n es: 'Panamá',\n en: 'Panama'\n },\n dayoff: 'sunday',\n langs: [\n 'es'\n ],\n zones: [\n 'America/Panama'\n ],\n days: {\n '01-01 and if sunday then next monday': {\n substitute: true,\n _name: '01-01'\n },\n '01-09 and if sunday then next monday': {\n substitute: true,\n name: {\n en: \"Martyrs' Day\",\n es: 'Día de los Mártires Caídos en la Gesta Patriótica'\n }\n },\n 'easter -48': {\n _name: 'easter -48',\n type: 'observance'\n },\n 'easter -47': {\n _name: 'easter -47'\n },\n 'easter -2': {\n _name: 'easter -2'\n },\n '05-01 and if sunday then next monday': {\n substitute: true,\n _name: '05-01'\n },\n '07-01 every 5 years since 2014': {\n name: {\n en: 'Presidential Inauguration'\n }\n },\n '11-03 and if sunday then next monday': {\n substitute: true,\n name: {\n en: 'Separation Day (from Columbia)',\n es: 'Día de la Separación (de Colombia)'\n }\n },\n '11-10 and if sunday then next monday': {\n substitute: true,\n name: {\n es: 'Primer Grito de Independencia'\n }\n },\n '11-28 and if sunday then next monday': {\n substitute: true,\n _name: 'Independence Day'\n },\n '12-08 and if sunday then next monday': {\n substitute: true,\n _name: 'Mothers Day'\n },\n '12-25 and if sunday then next monday': {\n substitute: true,\n _name: '12-25'\n }\n }\n },\n PE: {\n names: {\n es: 'Perú',\n en: 'Peru'\n },\n dayoff: 'sunday',\n langs: [\n 'es',\n 'qu'\n ],\n zones: [\n 'America/Lima'\n ],\n days: {\n '01-01': {\n _name: '01-01'\n },\n 'easter -3': {\n _name: 'easter -3'\n },\n 'easter -2': {\n _name: 'easter -2'\n },\n easter: {\n _name: 'easter'\n },\n '05-01': {\n _name: '05-01'\n },\n '06-29': {\n _name: '06-29'\n },\n '07-28': {\n _name: 'Independence Day'\n },\n '07-29': {\n _name: 'Independence Day'\n },\n '08-30': {\n name: {\n en: 'Santa Rosa de Lima',\n es: 'Día de Santa Rosa de Lima'\n }\n },\n '10-08': {\n name: {\n en: 'Battle of Angamos',\n es: 'Combate de Angamos'\n }\n },\n '11-01': {\n _name: '11-01'\n },\n '12-08': {\n _name: '12-08'\n },\n '12-25': {\n _name: '12-25'\n }\n },\n regions: {\n CUS: {\n name: 'Cuzco',\n days: {\n '06-24': {\n name: {\n en: 'Festival of the Sun',\n es: 'Fiesta Inca del Sol',\n qu: 'Inti Raymi'\n },\n type: 'observance'\n }\n }\n }\n }\n },\n PH: {\n names: {\n en: 'Philippines'\n },\n langs: [\n 'en',\n 'fil'\n ],\n zones: [\n 'Asia/Manila'\n ],\n dayoff: 'sunday',\n days: {\n '01-01': {\n _name: '01-01'\n },\n '01-23': {\n type: 'observance',\n name: {\n en: 'First Philippine Republic Day',\n fil: 'Araw ng Unang Republika ng Pilipinas'\n }\n },\n 'chinese 01-0-01': {\n type: 'optional',\n name: {\n en: 'Chinese New Year',\n fil: 'Bagong Taon ng mga Tsino'\n }\n },\n '02-02': {\n type: 'observance',\n _name: 'Constitution Day'\n },\n 'chinese 01-0-15': {\n type: 'observance',\n name: {\n en: 'Lantern Festival',\n fil: 'Piyesta ng mga Parol Tsino'\n }\n },\n '02-25': {\n name: {\n en: 'EDSA Revolution Anniversary',\n fil: 'Anibersaryo ng Rebolusyon sa EDSA'\n },\n type: 'optional',\n note: 'Non-working Day'\n },\n 'easter -3': {\n _name: 'easter -3'\n },\n 'easter -2': {\n _name: 'easter -2'\n },\n 'easter -1': {\n _name: 'easter -1',\n type: 'optional',\n note: 'Non-working Day'\n },\n easter: {\n _name: 'easter'\n },\n '04-09': {\n name: {\n en: 'Day of Valor',\n fil: 'Araw ng Kagitingan'\n }\n },\n '04-27': {\n type: 'observance',\n name: {\n en: 'Lapu-Lapu Day',\n fil: 'Araw ni Lapu-Lapu'\n }\n },\n '05-01': {\n _name: '05-01',\n name: {\n en: 'Labour Day',\n fil: 'Araw ng mga Manggagawa'\n }\n },\n '06-12': {\n _name: 'Independence Day'\n },\n '06-19': {\n type: 'observance',\n name: {\n en: \"José Rizal's birthday\",\n fil: 'Araw ng Kapanganakan ni José Rizal'\n },\n active: [\n {\n from: '1961-01-01T00:00:00.000Z'\n }\n ],\n disable: [\n '2011-06-19'\n ]\n },\n '2011-06-19': {\n name: {\n en: \"José Rizal's birthday\",\n fil: 'Araw ng Kapanganakan ni José Rizal'\n }\n },\n '07-27': {\n type: 'observance',\n name: {\n en: 'Iglesia ni Cristo Day',\n fil: 'Araw ng Iglesia ni Cristo'\n }\n },\n '08-21': {\n name: {\n en: 'Ninoy Aquino Day',\n fil: 'Araw ng Kabayanihan ni Ninoy Aquino'\n },\n type: 'optional',\n note: 'Non-working Day'\n },\n '1st monday before September': {\n name: {\n en: \"National Heroes' Day\",\n fil: 'Araw ng mga Bayani'\n }\n },\n 'chinese 08-0-15': {\n type: 'observance',\n name: {\n en: 'Mid-Autumn Festival',\n fil: 'Piyestang Zhōngqiū Jié'\n }\n },\n '11-01': {\n _name: '11-01',\n type: 'optional',\n note: 'Non-working Day'\n },\n '11-02': {\n _name: '11-02',\n type: 'optional',\n note: 'Non-working Day'\n },\n '11-30': {\n name: {\n en: 'Bonifacio Day',\n fil: 'Araw ng Kapanganakan ni Bonifacio'\n }\n },\n '12-08': {\n _name: '12-08',\n name: {\n en: 'Feast of the Immaculate Conception of the Blessed Virgin Mary',\n fil: 'Pagdiriwang ng Kalinis-linisang Paglilihi sa Mahal na Birheng Maria'\n },\n type: 'optional',\n note: 'Non-working Day'\n },\n '12-24': {\n _name: '12-24',\n type: 'optional',\n note: 'Non-working Day'\n },\n '12-25': {\n _name: '12-25'\n },\n '12-30': {\n name: {\n en: 'Rizal Day',\n fil: 'Paggunita sa Kamatayan ni Dr. Jose Rizal'\n }\n },\n '12-31': {\n _name: '12-31',\n type: 'optional',\n note: 'Non-working Day'\n },\n '1 Muharram': {\n type: 'observance',\n _name: '1 Muharram'\n },\n '12 Rabi al-awwal': {\n type: 'observance',\n _name: '12 Rabi al-awwal'\n },\n '1 Shawwal': {\n _name: '1 Shawwal'\n },\n '10 Dhu al-Hijjah': {\n _name: '10 Dhu al-Hijjah'\n }\n }\n },\n PL: {\n names: {\n pl: 'Polska',\n en: 'Poland'\n },\n dayoff: 'sunday',\n langs: [\n 'pl'\n ],\n zones: [\n 'Europe/Warsaw'\n ],\n days: {\n '01-01': {\n _name: '01-01'\n },\n '01-06': {\n _name: '01-06'\n },\n easter: {\n _name: 'easter'\n },\n 'easter 1': {\n _name: 'easter 1'\n },\n '05-01': {\n _name: '05-01',\n name: {\n pl: 'Święto Państwowe; Święto Pracy'\n }\n },\n '05-03': {\n name: {\n pl: 'Święto Narodowe Trzeciego Maja',\n en: 'Constitution Day'\n }\n },\n '05-26': {\n _name: 'Mothers Day',\n type: 'observance'\n },\n 'easter 49': {\n _name: 'easter 49'\n },\n 'easter 60': {\n _name: 'easter 60'\n },\n '08-15': {\n _name: '08-15'\n },\n '11-01': {\n _name: '11-01'\n },\n '11-11': {\n _name: 'Independence Day'\n },\n '12-25': {\n _name: '12-25'\n },\n '12-26': {\n _name: '12-26'\n }\n }\n },\n PM: {\n names: {\n en: 'St. Pierre & Miquelon'\n },\n langs: [\n 'fr'\n ],\n zones: [\n 'America/Miquelon'\n ],\n dayoff: 'sunday',\n days: {},\n _days: 'FR'\n },\n PR: {\n names: {\n en: 'Puerto Rico'\n },\n langs: [\n 'es',\n 'en'\n ],\n zones: [\n 'America/Puerto_Rico'\n ],\n dayoff: 'sunday',\n _days: 'US',\n days: {\n '01-06': {\n _name: '01-06'\n },\n '2nd Monday in January': {\n name: {\n es: 'Natalicio de Eugenio María de Hostos',\n en: 'Birthday of Eugenio María de Hostos'\n }\n },\n '02-18': {\n name: {\n es: 'Natalicio de Luis Muñoz Marín',\n en: 'Birthday of Luis Muñoz Marín'\n }\n },\n '03-02 since 2017': {\n name: {\n es: 'Día de la Ciudadanía Americana',\n en: 'American Citizenship Day'\n }\n },\n '03-17': false,\n '03-22': {\n name: {\n es: 'Día de la Abolición de Esclavitud',\n en: 'Emancipation Day'\n }\n },\n '04-16': {\n name: {\n es: 'Natalicio de José de Diego',\n en: 'Birthday of José de Diego'\n }\n },\n '3rd Monday in July': {\n name: {\n es: 'Natalicio de Don Luis Muñoz Rivera',\n en: 'Birthday of Don Luis Muñoz Rivera'\n }\n },\n '07-25': {\n name: {\n es: 'Constitución de Puerto Rico',\n en: 'Puerto Rico Constitution Day'\n }\n },\n '07-27': {\n name: {\n es: 'Natalicio de Dr. José Celso Barbosa',\n en: 'Birthday of Dr. José Celso Barbosa'\n }\n },\n '11-19': {\n name: {\n es: 'Día del Descubrimiento de Puerto Rico',\n en: 'Discovery of Puerto Rico'\n }\n }\n }\n },\n PT: {\n names: {\n pt: 'Portugal',\n en: 'Portugal'\n },\n dayoff: 'sunday',\n langs: [\n 'pt'\n ],\n zones: [\n 'Europe/Lisbon',\n 'Atlantic/Madeira',\n 'Atlantic/Azores'\n ],\n days: {\n '01-01': {\n _name: '01-01'\n },\n 'easter -47': {\n _name: 'easter -47',\n type: 'observance'\n },\n 'easter -2': {\n _name: 'easter -2'\n },\n easter: {\n _name: 'easter'\n },\n '04-25': {\n name: {\n pt: 'Dia da Liberdade',\n en: 'Liberty Day'\n }\n },\n '05-01': {\n _name: '05-01'\n },\n '1st sunday in May': {\n _name: 'Mothers Day',\n type: 'observance'\n },\n 'easter 60': {\n _name: 'easter 60'\n },\n '06-10': {\n name: {\n pt: 'Dia de Portugal',\n en: 'Portugal Day'\n }\n },\n '08-15': {\n _name: '08-15'\n },\n '10-05': {\n name: {\n pt: 'Implantação da República'\n }\n },\n '11-01': {\n _name: '11-01'\n },\n '12-01': {\n name: {\n pt: 'Restauração da Independência'\n }\n },\n '12-08': {\n _name: '12-08'\n },\n '12-24': {\n _name: '12-24',\n type: 'observance'\n },\n '12-25': {\n _name: '12-25'\n },\n '12-31': {\n _name: '12-31',\n type: 'observance'\n }\n }\n },\n PY: {\n names: {\n es: 'Paraguay',\n en: 'Paraguay'\n },\n dayoff: 'sunday',\n langs: [\n 'es'\n ],\n zones: [\n 'America/Asuncion'\n ],\n days: {\n '01-01': {\n _name: '01-01'\n },\n '03-01': {\n disable: [\n '2017-03-01'\n ],\n enable: [\n '2017-02-27'\n ],\n name: {\n en: \"Heroes' Day\",\n es: 'Dia de los héroes'\n }\n },\n 'easter -3': {\n _name: 'easter -3'\n },\n 'easter -2': {\n _name: 'easter -2'\n },\n '04-30': {\n name: {\n en: \"Teacher's Day\",\n es: 'Día del Maestro'\n },\n type: 'optional',\n note: 'Affects educational institutions'\n },\n '05-01': {\n _name: '05-01'\n },\n '05-14': {\n _name: 'Independence Day'\n },\n '05-15': {\n _name: 'Independence Day'\n },\n '06-12': {\n name: {\n en: 'Chaco Armistice',\n es: 'Día de la Paz del Chaco'\n },\n disable: [\n '2020-06-12'\n ],\n enable: [\n '2020-06-15'\n ]\n },\n '08-15': {\n _name: '08-15',\n disable: [\n '2017-08-15'\n ],\n enable: [\n '2017-08-14'\n ]\n },\n '09-29': {\n disable: [\n '2017-09-29'\n ],\n enable: [\n '2017-10-02'\n ],\n name: {\n en: 'Boqueron Battle Victory Day',\n es: 'Victoria de Boquerón'\n }\n },\n '12-08': {\n _name: '12-08',\n name: {\n en: 'Virgin of Caacupe',\n es: 'Virgen de Caacupé'\n }\n },\n '12-25': {\n _name: '12-25'\n },\n '12-31': {\n _name: '12-31',\n type: 'bank'\n }\n }\n },\n RE: {\n names: {\n fr: 'Réunion',\n en: 'Réunion'\n },\n langs: [\n 'fr'\n ],\n zones: [\n 'Indian/Reunion'\n ],\n dayoff: '',\n _days: 'FR',\n days: {\n '12-20': {\n _name: 'Abolition of Slavery'\n }\n }\n },\n RO: {\n names: {\n ro: 'Romania',\n en: 'Romania'\n },\n dayoff: 'sunday',\n langs: [\n 'ro'\n ],\n zones: [\n 'Europe/Bucharest'\n ],\n days: {\n '01-01': {\n _name: '01-01'\n },\n '01-24': {\n name: {\n ro: 'Ziua Unirii',\n en: 'Unification Day'\n }\n },\n '03-08': {\n name: {\n ro: 'Ziua Mamei'\n },\n type: 'observance'\n },\n 'orthodox -2': {\n _name: 'easter -2'\n },\n orthodox: {\n _name: 'easter'\n },\n 'orthodox 1': {\n _name: 'easter 1'\n },\n '05-01': {\n _name: '05-01'\n },\n 'orthodox 39': {\n _name: 'easter 39',\n type: 'observance'\n },\n 'orthodox 49': {\n _name: 'easter 49'\n },\n 'orthodox 50': {\n _name: 'easter 50'\n },\n '1st sunday in May': {\n _name: 'Mothers Day',\n type: 'observance'\n },\n '06-01': {\n name: {\n ro: 'Ziua Copilului',\n en: \"Children's Day\"\n }\n },\n '06-26': {\n name: {\n ro: 'Ziua drapelului national',\n en: 'Flag Day'\n },\n type: 'observance'\n },\n '07-29': {\n name: {\n ro: 'Ziua Imnului național',\n en: 'National Anthem Day'\n },\n type: 'observance'\n },\n '08-15': {\n _name: '08-15'\n },\n '11-30': {\n name: {\n ro: 'Sfântul Andrei',\n en: \"St Andrew's Day\"\n }\n },\n '12-01': {\n name: {\n ro: 'Ziua națională, Ziua Marii Uniri',\n en: 'National holiday'\n }\n },\n '12-08': {\n _name: 'Constitution Day',\n type: 'observance'\n },\n '12-25': {\n _name: '12-25'\n },\n '12-26': {\n _name: '12-26'\n }\n }\n },\n RS: {\n names: {\n sr: 'Република Србија',\n en: 'Serbia'\n },\n langs: [\n 'sr'\n ],\n zones: [\n 'Europe/Belgrade'\n ],\n dayoff: 'sunday',\n days: {\n '01-01 if sunday then next tuesday': {\n _name: '01-01'\n },\n '01-02 if sunday then next monday': {\n _name: '01-01'\n },\n 'julian 12-25': {\n _name: 'julian 12-25'\n },\n '02-15 if sunday then next tuesday': {\n name: {\n sr: 'Дан државности Србије',\n en: 'Statehood Day'\n }\n },\n '02-16 if sunday then next monday': {\n name: {\n sr: 'Дан државности Србије',\n en: 'Statehood Day'\n }\n },\n 'orthodox -2': {\n _name: 'orthodox -2'\n },\n orthodox: {\n _name: 'orthodox'\n },\n 'orthodox 1': {\n _name: 'orthodox 1'\n },\n '05-01 if sunday then next tuesday': {\n _name: '05-01'\n },\n '05-02 if sunday then next monday': {\n _name: '05-01'\n },\n '11-11 if sunday then next monday': {\n name: {\n sr: 'Дан примирја',\n en: 'Armistice Day'\n }\n },\n 'easter -2': {\n _name: 'easter -2',\n type: 'optional',\n note: 'Catholic believers'\n },\n easter: {\n _name: 'easter',\n type: 'optional',\n note: 'Catholic believers'\n },\n 'easter 1': {\n _name: 'easter 1',\n type: 'optional',\n note: 'Catholic believers'\n },\n '12-25': {\n _name: '12-25',\n type: 'optional',\n note: 'Catholic believers'\n },\n '10 Dhu al-Hijjah': {\n _name: '10 Dhu al-Hijjah',\n type: 'optional',\n note: 'Muslim believers'\n },\n '1 Shawwal': {\n _name: '1 Shawwal',\n type: 'optional',\n note: 'Muslim believers'\n },\n '10 Tishrei': {\n _name: '10 Tishrei',\n type: 'optional',\n note: 'Jewish believers'\n },\n 'julian 01-14': {\n name: {\n sr: 'Свети Сава',\n en: 'Saint Sava Day'\n },\n type: 'observance'\n },\n '04-22': {\n name: {\n sr: 'Дан сећања на жртве холокауста',\n en: 'Holocaust Remembrance Day'\n },\n type: 'observance'\n },\n '05-09': {\n name: {\n sr: 'Дан победе',\n en: 'Victory Day'\n },\n type: 'observance'\n },\n 'julian 06-15': {\n name: {\n sr: 'Видовдан',\n en: 'Saint Vitus Day'\n },\n type: 'observance'\n },\n '10-21': {\n name: {\n sr: 'Дан сећања на српске жртве у Другом светском рату',\n en: 'World War II Serbian Victims Remembrance Day'\n },\n type: 'observance'\n }\n }\n },\n RU: {\n names: {\n ru: 'Россия',\n en: 'Russia'\n },\n dayoff: 'sunday',\n langs: [\n 'ru'\n ],\n zones: [\n 'Europe/Moscow',\n 'Europe/Kaliningrad',\n 'Europe/Simferopol',\n 'Europe/Volgograd',\n 'Europe/Samara',\n 'Asia/Yekaterinburg',\n 'Asia/Omsk',\n 'Asia/Novosibirsk',\n 'Asia/Novokuznetsk',\n 'Asia/Krasnoyarsk',\n 'Asia/Irkutsk',\n 'Asia/Chita',\n 'Asia/Yakutsk',\n 'Asia/Khandyga',\n 'Asia/Vladivostok',\n 'Asia/Sakhalin',\n 'Asia/Ust-Nera',\n 'Asia/Magadan',\n 'Asia/Srednekolymsk',\n 'Asia/Kamchatka',\n 'Asia/Anadyr'\n ],\n days: {\n '01-01': {\n _name: '01-01'\n },\n '01-02 P5D': {\n name: {\n ru: 'Новогодние каникулы',\n en: 'New Year Holiday'\n }\n },\n 'julian 12-25': {\n _name: '12-25'\n },\n '01-08': {\n name: {\n ru: 'Новогодние каникулы',\n en: 'New Year Holiday'\n }\n },\n '02-23': {\n name: {\n ru: 'День защитника Отечества',\n en: 'Defender of the Fatherland Day'\n }\n },\n '03-08': {\n _name: '03-08'\n },\n '05-01': {\n name: {\n ru: 'День весны и труда',\n en: 'Spring and Labour Day'\n }\n },\n '05-09': {\n name: {\n ru: 'День Победы',\n en: 'Victory Day'\n }\n },\n '06-12': {\n name: {\n ru: 'День России',\n en: 'Russia Day'\n }\n },\n '11-04': {\n name: {\n ru: 'День народного единства',\n en: 'Unity Day'\n }\n }\n }\n },\n RW: {\n names: {\n en: 'Rwanda',\n fr: 'République du Rwanda',\n rw: \"Repubulika y'u Rwanda\"\n },\n dayoff: 'sunday',\n langs: [\n 'en',\n 'fr',\n 'rw'\n ],\n zones: [\n 'Africa/Maputo'\n ],\n days: {\n '01-01': {\n _name: '01-01'\n },\n '01-02': {\n _name: 'Public Holiday'\n },\n '02-01': {\n name: {\n en: 'Heroes Day'\n }\n },\n 'easter -2': {\n _name: 'easter -2'\n },\n '04-07': {\n name: {\n fr: 'Jour de Mémorial du Génocide',\n en: 'Genocide Memorial Day'\n }\n },\n '05-01': {\n _name: '05-01'\n },\n '07-01': {\n _name: 'Independence Day'\n },\n '07-04': {\n name: {\n fr: 'Jour de la Libération',\n en: 'Liberation Day'\n }\n },\n '08-15': {\n _name: '08-15'\n },\n '1st friday in August': {\n name: {\n rw: 'Umuganura',\n fr: 'Journée nationale de récolte',\n en: 'National Harvest Day'\n }\n },\n '12-25': {\n _name: '12-25'\n },\n '12-26': {\n _name: '12-26'\n },\n 'easter 1': {\n _name: 'easter 1'\n },\n '1 Shawwal': {\n _name: '1 Shawwal'\n },\n '10 Dhu al-Hijjah': {\n _name: '10 Dhu al-Hijjah'\n }\n }\n },\n SC: {\n names: {\n en: 'Seychelles',\n fr: 'République des Seychelles',\n crs: 'Repiblik Sesel'\n },\n langs: [\n 'en',\n 'fr',\n 'crs'\n ],\n zones: [\n 'Indian/Mahe'\n ],\n dayoff: 'sunday',\n days: {\n '01-01 P2D': {\n _name: '01-01'\n },\n 'easter -2': {\n _name: 'easter -2'\n },\n 'easter -1': {\n _name: 'easter -1'\n },\n easter: {\n _name: 'easter'\n },\n 'easter 1': {\n _name: 'easter 1'\n },\n 'easter 60': {\n _name: 'easter 60'\n },\n '05-01': {\n _name: '05-01'\n },\n '06-18': {\n _name: 'National Holiday'\n },\n '06-29': {\n _name: 'Independence Day'\n },\n '08-15': {\n _name: '08-15'\n },\n '11-01': {\n _name: '11-01'\n },\n '12-08': {\n _name: '12-08'\n },\n '12-25': {\n _name: '12-25'\n }\n }\n },\n SD: {\n names: {\n ar: 'جمهورية السودان',\n en: 'Sudan'\n },\n langs: [],\n zones: [\n 'Africa/Khartoum'\n ],\n dayoff: '',\n days: {\n '01-01': {\n _name: 'Independence Day'\n },\n '12-19': {\n _name: 'Revolution Day'\n },\n '12-25': {\n _name: '12-25'\n },\n '1 Muharram': {\n _name: '1 Muharram'\n },\n '12 Rabi al-awwal': {\n _name: '12 Rabi al-awwal'\n },\n '1 Shawwal P4D': {\n _name: '1 Shawwal'\n },\n '10 Dhu al-Hijjah P3D': {\n _name: '10 Dhu al-Hijjah'\n },\n 'julian 12-25': {\n _name: 'julian 12-25',\n name: {\n en: 'Coptic Christmas'\n }\n },\n orthodox: {\n _name: 'orthodox',\n name: {\n en: 'Coptic Easter'\n }\n }\n }\n },\n SE: {\n names: {\n sv: 'Sverige',\n en: 'Sweden'\n },\n dayoff: 'sunday',\n langs: [\n 'sv'\n ],\n zones: [\n 'Europe/Stockholm'\n ],\n days: {\n '01-01': {\n _name: '01-01'\n },\n '01-05 12:00': {\n name: {\n sv: 'Trettondagsafton'\n },\n type: 'optional'\n },\n '01-06': {\n _name: '01-06'\n },\n '01-13': {\n name: {\n sv: 'Tjugondag Knut'\n },\n type: 'observance'\n },\n '1st sunday in March': {\n name: {\n sv: 'Vasaloppet'\n },\n type: 'observance'\n },\n '03-25': {\n name: {\n sv: 'Marie Bebådelsedag',\n lat: 'Annuntiatio Mariæ'\n },\n type: 'observance'\n },\n '04-30 12:00': {\n name: {\n sv: 'Valborgsmässoafton',\n en: 'Walpurgis Night'\n },\n type: 'optional'\n },\n 'easter -3': {\n _name: 'easter -3',\n type: 'observance'\n },\n 'easter -2': {\n _name: 'easter -2'\n },\n easter: {\n _name: 'easter',\n type: 'observance'\n },\n 'easter -1': {\n _name: 'easter -1',\n type: 'observance'\n },\n 'easter 1': {\n _name: 'easter 1'\n },\n '05-01': {\n _name: '05-01'\n },\n 'easter 39': {\n _name: 'easter 39'\n },\n 'easter 48': {\n name: {\n sv: 'Pingstafton',\n en: 'Whitsun Eve'\n },\n type: 'observance'\n },\n 'easter 49': {\n _name: 'easter 49',\n type: 'public'\n },\n 'easter 50': {\n _name: 'easter 50',\n type: 'observance'\n },\n 'sunday before 06-01': {\n _name: 'Mothers Day',\n type: 'observance'\n },\n '06-06': {\n name: {\n sv: 'Sveriges nationaldag',\n en: 'National Day'\n }\n },\n 'friday after 06-19': {\n name: {\n sv: 'Midsommarafton',\n en: 'Midsummer Eve',\n fi: 'Juhannusaatto'\n },\n type: 'bank'\n },\n 'saturday after 06-20': {\n name: {\n sv: 'Midsommardagen',\n en: 'Midsummer Day',\n fi: 'Juhannuspäivä'\n }\n },\n 'friday after 10-30 12:00': {\n name: {\n sv: 'Allhelgonaafton',\n en: 'Halloween'\n },\n type: 'optional'\n },\n 'saturday after 10-31': {\n _name: '11-01'\n },\n '11-06': {\n name: {\n sv: 'Gustav-Adolf-dagen'\n },\n type: 'observance'\n },\n '11-11': {\n name: {\n sv: 'Mårtensgås'\n },\n type: 'observance'\n },\n '12-10': {\n name: {\n sv: 'Nobeldagen'\n },\n type: 'observance'\n },\n '12-13': {\n name: {\n sv: 'Luciadagen'\n },\n type: 'observance'\n },\n '12-24': {\n _name: '12-24',\n type: 'bank'\n },\n '12-25': {\n _name: '12-25'\n },\n '12-26': {\n _name: '12-26'\n },\n '12-31': {\n _name: '12-31',\n type: 'bank'\n }\n }\n },\n SG: {\n names: {\n en: 'Singapore'\n },\n langs: [\n 'en'\n ],\n zones: [\n 'Asia/Singapore'\n ],\n dayoff: 'sunday',\n days: {\n '01-01': {\n _name: '01-01'\n },\n 'substitutes 01-01 if sunday then next monday': {\n substitute: true,\n _name: '01-01'\n },\n 'chinese 01-0-01': {\n name: {\n en: 'Chinese New Year'\n }\n },\n 'chinese 01-0-02': {\n name: {\n en: 'Chinese New Year'\n }\n },\n 'substitutes chinese 01-0-01 if sunday then next tuesday': {\n substitute: true,\n name: {\n en: 'Chinese New Year'\n }\n },\n 'substitutes chinese 01-0-02 if sunday then next monday': {\n substitute: true,\n name: {\n en: 'Chinese New Year'\n }\n },\n 'easter -2': {\n _name: 'easter -2'\n },\n '05-01': {\n _name: '05-01'\n },\n 'substitutes 05-01 if sunday then next monday': {\n substitute: true,\n _name: '05-01'\n },\n '08-09': {\n name: {\n en: 'National Day'\n }\n },\n 'substitutes 08-09 if sunday then next monday': {\n substitute: true,\n name: {\n en: 'National Day'\n }\n },\n '12-25': {\n _name: '12-25'\n },\n 'substitutes 12-25 if sunday then next monday': {\n substitute: true,\n _name: '12-25'\n },\n '1 Shawwal': {\n _name: '1 Shawwal',\n name: {\n en: 'Hari Raya Puasa'\n },\n disable: [\n '2022-05-02'\n ],\n enable: [\n '2022-05-03'\n ]\n },\n '10 Dhu al-Hijjah': {\n _name: '10 Dhu al-Hijjah',\n name: {\n en: 'Hari Raya Haji'\n },\n disable: [\n '2022-07-09'\n ],\n enable: [\n '2022-07-10'\n ]\n },\n '2001-05-07': {\n _name: 'Vesak'\n },\n '2002-05-27': {\n _name: 'Vesak'\n },\n '2003-05-15': {\n _name: 'Vesak'\n },\n '2004-06-02': {\n _name: 'Vesak'\n },\n '2005-05-23': {\n _name: 'Vesak'\n },\n '2006-05-12': {\n _name: 'Vesak'\n },\n '2007-05-31': {\n _name: 'Vesak'\n },\n '2008-05-19': {\n _name: 'Vesak'\n },\n '2009-05-09': {\n _name: 'Vesak'\n },\n '2010-05-28': {\n _name: 'Vesak'\n },\n '2011-05-17': {\n _name: 'Vesak'\n },\n '2012-05-05': {\n _name: 'Vesak'\n },\n '2013-05-24': {\n _name: 'Vesak'\n },\n '2014-05-13': {\n _name: 'Vesak'\n },\n '2015-06-01': {\n _name: 'Vesak'\n },\n '2016-05-21': {\n _name: 'Vesak'\n },\n '2017-05-10': {\n _name: 'Vesak'\n },\n '2018-05-29': {\n _name: 'Vesak'\n },\n '2019-05-19': {\n _name: 'Vesak'\n },\n '2019-05-20': {\n substitute: true,\n _name: 'Vesak'\n },\n '2020-05-07': {\n _name: 'Vesak'\n },\n '2021-05-26': {\n _name: 'Vesak'\n },\n '2022-05-15': {\n _name: 'Vesak'\n },\n '2022-05-16': {\n substitute: true,\n _name: 'Vesak'\n },\n '2023-05-05': {\n _name: 'Vesak'\n },\n '2024-05-23': {\n _name: 'Vesak'\n },\n '2000-10-26': {\n _name: 'Deepavali'\n },\n '2001-11-14': {\n _name: 'Deepavali'\n },\n '2002-11-03': {\n _name: 'Deepavali'\n },\n '2002-11-04': {\n substitute: true,\n _name: 'Deepavali'\n },\n '2003-10-23': {\n _name: 'Deepavali'\n },\n '2004-11-11': {\n _name: 'Deepavali'\n },\n '2005-11-01': {\n _name: 'Deepavali'\n },\n '2006-10-21': {\n _name: 'Deepavali'\n },\n '2007-11-08': {\n _name: 'Deepavali'\n },\n '2008-10-27': {\n _name: 'Deepavali'\n },\n '2009-10-17': {\n _name: 'Deepavali'\n },\n '2010-11-05': {\n _name: 'Deepavali'\n },\n '2011-10-26': {\n _name: 'Deepavali'\n },\n '2012-11-13': {\n _name: 'Deepavali'\n },\n '2013-11-03': {\n _name: 'Deepavali'\n },\n '2013-11-04': {\n substitute: true,\n _name: 'Deepavali'\n },\n '2014-10-22': {\n _name: 'Deepavali'\n },\n '2015-11-10': {\n _name: 'Deepavali'\n },\n '2016-10-29': {\n _name: 'Deepavali'\n },\n '2017-10-18': {\n _name: 'Deepavali'\n },\n '2018-11-06': {\n _name: 'Deepavali'\n },\n '2019-10-27': {\n _name: 'Deepavali'\n },\n '2019-10-28': {\n substitute: true,\n _name: 'Deepavali'\n },\n '2020-11-14': {\n _name: 'Deepavali'\n },\n '2021-11-04': {\n _name: 'Deepavali'\n },\n '2022-10-24': {\n _name: 'Deepavali'\n },\n '2023-11-13': {\n _name: 'Deepavali'\n },\n '2024-10-31': {\n _name: 'Deepavali'\n },\n '2025-10-20': {\n _name: 'Deepavali'\n },\n '2026-11-09': {\n _name: 'Deepavali'\n },\n '2027-10-28': {\n _name: 'Deepavali'\n },\n '2028-11-15': {\n _name: 'Deepavali'\n },\n '2029-11-05': {\n _name: 'Deepavali'\n },\n '2030-10-25': {\n _name: 'Deepavali'\n }\n }\n },\n SH: {\n names: {\n en: 'St. Helena'\n },\n langs: [\n 'en'\n ],\n zones: [\n 'Africa/Abidjan'\n ],\n dayoff: 'sunday',\n days: {\n '01-01': {\n _name: '01-01'\n },\n 'substitutes 01-01 if sunday then next monday': {\n substitute: true,\n _name: '01-01'\n },\n 'substitutes 01-01 if saturday then next monday': {\n substitute: true,\n _name: '01-01'\n },\n 'easter -2': {\n _name: 'easter -2'\n },\n easter: {\n _name: 'easter',\n type: 'observance'\n },\n 'easter 1': {\n _name: 'easter 1'\n },\n '3rd monday in April': {\n name: {\n en: \"Queen's Birthday\"\n }\n },\n '05-21': {\n name: {\n en: 'Saint Helena Day'\n }\n },\n 'easter 50': {\n _name: 'easter 50'\n },\n 'monday before 09-01': {\n name: {\n en: 'August Bank Holiday'\n }\n },\n '12-25': {\n _name: '12-25'\n },\n 'substitutes 12-25 if saturday then next tuesday': {\n substitute: true,\n _name: '12-25'\n },\n 'substitutes 12-25 if sunday then next tuesday': {\n substitute: true,\n _name: '12-25'\n },\n '12-26': {\n _name: '12-26'\n },\n 'substitutes 12-26 if saturday then next monday': {\n substitute: true,\n _name: '12-26'\n },\n 'substitutes 12-26 if sunday then next monday': {\n substitute: true,\n _name: '12-26'\n }\n },\n states: {\n AC: {\n name: 'Ascension Island',\n days: {\n 'easter 39': {\n _name: 'easter 39'\n }\n }\n },\n HL: {\n name: 'Saint Helena',\n days: {}\n },\n TA: {\n name: 'Tristan da Cunha',\n days: {\n 'easter 39': {\n _name: 'easter 39'\n },\n '2012-04-23': {\n name: {\n en: 'Ratting Day'\n }\n },\n '2013-05-03': {\n name: {\n en: 'Ratting Day'\n }\n },\n '2014-05-02': {\n name: {\n en: 'Ratting Day'\n }\n },\n '2015-05-16': {\n name: {\n en: 'Ratting Day'\n }\n },\n '2016-04-30': {\n name: {\n en: 'Ratting Day'\n }\n },\n '2017-05-26': {\n name: {\n en: 'Ratting Day'\n }\n },\n '2018-06-02': {\n name: {\n en: 'Ratting Day'\n }\n },\n '08-14': {\n name: {\n en: 'Anniversary Day'\n }\n },\n 'monday before 09-01': false\n }\n }\n }\n },\n SI: {\n names: {\n sl: 'Republika Slovenija',\n en: 'Slovenia'\n },\n langs: [\n 'sl'\n ],\n zones: [\n 'Europe/Belgrade'\n ],\n dayoff: 'sunday',\n days: {\n '01-01': {\n _name: '01-01'\n },\n '01-02': {\n _name: '01-01',\n active: [\n {\n to: 1955\n },\n {\n from: 2017\n }\n ]\n },\n '02-08': {\n name: {\n en: 'Prešeren Day, the Slovenian Cultural Holiday',\n sl: 'Prešernov dan, slovenski kulturni praznik'\n },\n active: [\n {\n from: 1991\n }\n ]\n },\n '03-08': {\n _name: '03-08',\n type: 'observance'\n },\n '04-23': {\n name: {\n sl: 'Jurjevanje',\n en: \"St. George's Day\"\n },\n type: 'observance'\n },\n 'easter -49': {\n name: {\n sl: 'Pust',\n en: 'Carnival'\n },\n type: 'observance'\n },\n easter: {\n _name: 'easter'\n },\n 'easter 1': {\n _name: 'easter 1'\n },\n '04-27': {\n name: {\n sl: 'Dan upora proti okupatorju',\n en: 'Day of Uprising Against Occupation'\n }\n },\n '05-01': {\n _name: '05-01',\n name: {\n en: 'Labour Day'\n },\n active: [\n {\n from: 1949\n }\n ]\n },\n '05-02': {\n _name: '05-01',\n name: {\n en: 'Labour Day'\n },\n active: [\n {\n from: 1949\n }\n ]\n },\n 'easter 49': {\n _name: 'easter 49'\n },\n '06-08': {\n name: {\n sl: 'Dan Primoža Trubarja',\n en: 'Primož Trubar Day'\n },\n type: 'observance',\n active: [\n {\n from: 2010\n }\n ]\n },\n '06-25': {\n name: {\n sl: 'Dan državnosti',\n en: 'Statehood Day'\n },\n active: [\n {\n from: 1991\n }\n ]\n },\n '08-15': {\n _name: '08-15',\n active: [\n {\n from: 1992\n }\n ]\n },\n '08-17': {\n name: {\n sl: 'Združitev prekmurskih Slovencev z matičnim narodom',\n en: 'Unification of Prekmurje Slovenes with the Mother Nation'\n },\n type: 'observance',\n active: [\n {\n from: 2006\n }\n ]\n },\n '09-15': {\n name: {\n sl: 'Vrnitev Primorske k matični domovini',\n en: 'Return of Primorska to the Motherland'\n },\n type: 'observance',\n active: [\n {\n from: 2005\n }\n ]\n },\n '09-23': {\n name: {\n sl: 'Dan slovenskega športa',\n en: 'Slovenian Sports Day'\n },\n type: 'observance',\n active: [\n {\n from: 2020\n }\n ]\n },\n '10-25': {\n name: {\n sl: 'Dan suverenosti',\n en: 'Sovereignty Day'\n },\n type: 'observance',\n active: [\n {\n from: 2015\n }\n ]\n },\n '10-31': {\n name: {\n sl: 'Dan reformacije',\n en: 'Reformation Day'\n }\n },\n '11-01': {\n name: {\n sl: 'Dan spomina na mrtve',\n en: 'Day of Remembrance for the Dead'\n }\n },\n '11-11': {\n name: {\n sl: 'Martinovanje',\n en: \"St. Martin's Day\"\n },\n type: 'observance'\n },\n '11-23': {\n name: {\n sl: 'Dan Rudolfa Maistra',\n en: 'Rudolf Maister Day'\n },\n type: 'observance',\n active: [\n {\n from: 2015\n }\n ]\n },\n '12-06': {\n name: {\n sl: 'Miklavž',\n en: 'Saint Nicholas Day'\n },\n type: 'observance'\n },\n '12-25': {\n _name: '12-25',\n active: [\n {\n to: 1953\n },\n {\n from: 1991\n }\n ]\n },\n '12-26': {\n name: {\n sl: 'Dan samostojnosti in enotnosti',\n en: 'Independence and Unity Day'\n }\n }\n }\n },\n SJ: {\n names: {\n en: 'Svalbard & Jan Mayen'\n },\n langs: [\n 'no'\n ],\n zones: [\n 'Europe/Oslo'\n ],\n dayoff: 'sunday',\n _days: 'NO'\n },\n SK: {\n names: {\n sk: 'Slovenská republika',\n en: 'Slovakia'\n },\n langs: [\n 'sk'\n ],\n zones: [\n 'Europe/Prague'\n ],\n dayoff: 'sunday',\n days: {\n '01-01': {\n _name: '01-01',\n name: {\n sk: 'Deň vzniku Slovenskej republiky'\n }\n },\n '01-06': {\n _name: '01-06'\n },\n 'easter -2': {\n _name: 'easter -2'\n },\n easter: {\n _name: 'easter',\n type: 'observance'\n },\n 'easter 1': {\n _name: 'easter 1'\n },\n '05-01': {\n _name: '05-01'\n },\n '05-08': {\n name: {\n sk: 'Deň víťazstva nad fašizmom',\n en: 'Day of victory over fascism'\n }\n },\n '2nd sunday in May': {\n _name: 'Mothers Day',\n type: 'observance'\n },\n '07-05': {\n name: {\n sk: 'Sviatok svätého Cyrila a Metoda',\n en: 'Saints Cyril and Methodius Day'\n }\n },\n '08-29': {\n name: {\n sk: 'Výročie Slovenského národného povstania',\n en: 'Slovak National Uprising anniversary'\n }\n },\n '09-01': {\n _name: 'Constitution Day'\n },\n '09-15': {\n name: {\n sk: 'Sviatok Panny Márie Sedembolestnej',\n en: 'Day of Our Lady of the Seven Sorrows'\n }\n },\n '11-01': {\n _name: '11-01'\n },\n '11-17': {\n name: {\n sk: 'Deň boja za slobodu a demokraciu',\n en: 'Struggle for Freedom and Democracy Day'\n }\n },\n '12-24': {\n _name: '12-24'\n },\n '12-25': {\n _name: '12-25'\n },\n '12-26': {\n _name: '12-26'\n }\n }\n },\n SL: {\n names: {\n en: 'Sierra Leone'\n },\n langs: [\n 'en'\n ],\n zones: [\n 'Africa/Abidjan'\n ],\n dayoff: 'sunday',\n days: {\n '01-01 and if Sunday then next Monday': {\n substitute: true,\n _name: '01-01'\n },\n '02-18 and if Sunday then next Monday': {\n substitute: true,\n name: {\n en: 'Armed Forces Day'\n }\n },\n '03-08 and if Sunday then next Monday': {\n substitute: true,\n _name: '03-08'\n },\n '04-27 and if Sunday then next Monday': {\n substitute: true,\n _name: 'Independence Day'\n },\n 'easter -2': {\n _name: 'easter -2'\n },\n 'easter 1': {\n _name: 'easter 1'\n },\n '1 Shawwal and if Sunday then next Monday': {\n substitute: true,\n _name: '1 Shawwal',\n name: {\n en: 'Korité'\n }\n },\n '10 Dhu al-Hijjah and if Sunday then next Monday': {\n substitute: true,\n _name: '10 Dhu al-Hijjah',\n name: {\n en: 'Tabaski'\n }\n },\n '12 Rabi al-awwal and if Sunday then next Monday': {\n substitute: true,\n _name: '12 Rabi al-awwal',\n name: {\n en: 'Mawlid'\n }\n },\n '12-25 and if Sunday then next Tuesday': {\n substitute: true,\n _name: '12-25'\n },\n '12-26 and if Sunday then next Monday': {\n substitute: true,\n _name: '12-26'\n }\n }\n },\n SM: {\n names: {\n it: 'San Marino',\n en: 'San Marino'\n },\n langs: [\n 'it'\n ],\n zones: [\n 'Europe/Rome'\n ],\n dayoff: 'sunday',\n days: {\n '01-01': {\n _name: '01-01'\n },\n '01-06': {\n _name: '01-06',\n name: {\n it: 'Epifania'\n }\n },\n '02-05': {\n name: {\n it: 'Festa di Sant’Agata',\n en: 'Feast of Saint Agatha'\n }\n },\n easter: {\n _name: 'easter'\n },\n 'easter 1': {\n _name: 'easter 1'\n },\n '03-25': {\n name: {\n it: \"Anniversario dell'Arengo\",\n en: 'Anniversary of the Arengo'\n }\n },\n '04-01': {\n name: {\n it: 'Cerimonia di investitura dei Capitani Reggenti',\n en: 'Inauguration Ceremony'\n }\n },\n '05-01': {\n _name: '05-01'\n },\n '2nd sunday in May': {\n _name: 'Mothers Day',\n type: 'observance'\n },\n 'easter 60': {\n _name: 'easter 60'\n },\n '07-28': {\n name: {\n it: 'Anniversario della caduta del Fascismo e Festa della Libertà',\n en: 'Liberation from Fascism'\n }\n },\n '08-15': {\n _name: '08-15'\n },\n '09-03': {\n name: {\n it: 'Festa di San Marino e di Fondazione della Repubblica',\n en: 'The Feast of San Marino and the Republic'\n }\n },\n '10-01': {\n name: {\n it: 'Cerimonia di investitura dei Capitani Reggenti'\n }\n },\n '11-01': {\n _name: '11-01',\n name: {\n it: 'Tutti i Santi'\n }\n },\n '11-02': {\n name: {\n it: 'Commemorazione dei defunti',\n en: 'Commemoration of the deceased'\n }\n },\n '12-08': {\n _name: '12-08'\n },\n '12-25': {\n _name: '12-25'\n },\n '12-26': {\n _name: '12-26'\n },\n '12-31': {\n _name: '12-31',\n type: 'optional'\n }\n }\n },\n SN: {\n names: {\n fr: 'République du Sénégal',\n wo: 'Réewum Senegaal',\n en: 'Senegal'\n },\n langs: [\n 'fr',\n 'wo'\n ],\n zones: [\n 'Africa/Abidjan'\n ],\n dayoff: 'sunday',\n days: {\n '01-01': {\n _name: '01-01'\n },\n '04-04': {\n _name: 'National Holiday'\n },\n '05-01': {\n _name: '05-01'\n },\n '08-15': {\n _name: '08-15'\n },\n '11-01': {\n _name: '11-01'\n },\n '12-25': {\n _name: '12-25'\n },\n 'easter 1': {\n _name: 'easter 1'\n },\n 'easter 39': {\n _name: 'easter 39'\n },\n 'easter 50': {\n _name: 'easter 50'\n },\n '12 Rabi al-awwal': {\n _name: '12 Rabi al-awwal'\n },\n '1 Shawwal and if sunday then next monday': {\n _name: '1 Shawwal'\n },\n '10 Dhu al-Hijjah and if sunday then next monday': {\n _name: '10 Dhu al-Hijjah'\n },\n '10 Muharram': {\n _name: '10 Muharram'\n },\n '18 Safar': {\n name: 'Magal de Touba'\n }\n }\n },\n SO: {\n names: {\n so: 'Jamhuuriyadda Federaalka Soomaaliya',\n ar: 'جمهورية الصومال الفدرالية',\n en: 'Somalia'\n },\n dayoff: '?',\n langs: [\n 'so',\n 'ar',\n 'en'\n ],\n zones: [\n 'Africa/Nairobi'\n ],\n days: {\n '01-01': {\n _name: '01-01'\n },\n '05-01': {\n _name: '05-01'\n },\n '06-26': {\n name: {\n ar: 'استقلال الصومال البريطاني',\n en: 'Independence of British Somaliland'\n }\n },\n '07-01': {\n _name: 'Independence Day'\n },\n '10 Muharram': {\n _name: '10 Muharram'\n },\n '12 Rabi al-awwal': {\n _name: '12 Rabi al-awwal'\n },\n '1 Shawwal': {\n _name: '1 Shawwal'\n },\n '10 Dhu al-Hijjah': {\n _name: '10 Dhu al-Hijjah'\n }\n },\n states: {\n AW: {\n name: 'Awdal',\n days: {\n '01-01': false,\n '05-18 P2D': {\n name: {\n en: 'Restoration of Somaliland Sovereignty'\n }\n },\n '07-01': false,\n '1 Muharram': {\n _name: '1 Muharram'\n },\n '10 Muharram': false,\n '27 Rajab': {\n _name: '27 Rajab'\n }\n }\n },\n SA: {\n name: 'Sanaag',\n _days: [\n 'SO',\n 'states',\n 'AW'\n ]\n },\n SO: {\n name: 'Sool',\n _days: [\n 'SO',\n 'states',\n 'AW'\n ]\n },\n TO: {\n name: 'Togdheer',\n _days: [\n 'SO',\n 'states',\n 'AW'\n ]\n },\n WO: {\n name: 'Woqooyi Galbeed',\n _days: [\n 'SO',\n 'states',\n 'AW'\n ]\n }\n }\n },\n SR: {\n names: {\n en: 'Suriname'\n },\n langs: [\n 'nl',\n 'srn'\n ],\n zones: [\n 'America/Paramaribo'\n ],\n dayoff: 'sunday',\n days: {\n '01-01': {\n _name: '01-01'\n },\n 'chinese 01-0-01': {\n name: {\n nl: 'Chinees Nieuwjaar',\n en: 'Chinese New Year'\n }\n },\n '02-25': {\n name: {\n nl: 'Dag van Bevrijding en Vernieuwing',\n en: 'Day of Liberation and Innovation'\n }\n },\n 'easter -2': {\n _name: 'easter -2'\n },\n easter: {\n _name: 'easter',\n type: 'observance'\n },\n 'easter 1': {\n _name: 'easter 1'\n },\n '05-01': {\n _name: '05-01'\n },\n '07-01': {\n name: {\n nl: 'Dag der Vrijheden (Keti koti)',\n srn: 'Keti koti',\n en: 'Emancipation Day'\n }\n },\n '08-09': {\n name: {\n nl: 'Dag der Inheemsen',\n en: \"Indigenous People's Day\"\n }\n },\n '10-10': {\n name: {\n nl: 'Dag van de Marrons',\n en: 'Day of the Maroons'\n }\n },\n '11-25': {\n _name: 'Independence Day'\n },\n '12-25': {\n _name: '12-25'\n },\n '12-26': {\n _name: '12-26'\n },\n '1 Shawwal': {\n _name: '1 Shawwal'\n },\n '10 Dhu al-Hijjah': {\n _name: '10 Dhu al-Hijjah'\n },\n '2015-03-06': {\n _name: 'Holi'\n },\n '2016-03-23': {\n _name: 'Holi'\n },\n '2017-03-12': {\n _name: 'Holi'\n },\n '2018-03-02': {\n _name: 'Holi'\n },\n '2019-03-21': {\n _name: 'Holi'\n },\n '2020-03-09': {\n _name: 'Holi'\n },\n '2021-03-28': {\n _name: 'Holi'\n },\n '2022-03-18': {\n _name: 'Holi'\n },\n '2023-03-07': {\n _name: 'Holi'\n },\n '2024-03-25': {\n _name: 'Holi'\n },\n '2025-03-14': {\n _name: 'Holi'\n },\n '2026-03-03': {\n _name: 'Holi'\n },\n '2027-03-22': {\n _name: 'Holi'\n },\n '2028-03-11': {\n _name: 'Holi'\n },\n '2029-03-28': {\n _name: 'Holi'\n },\n '2030-03-19': {\n _name: 'Holi'\n },\n '2014-10-23': {\n _name: 'Deepavali'\n },\n '2015-11-11': {\n _name: 'Deepavali'\n },\n '2016-10-30': {\n _name: 'Deepavali'\n },\n '2017-10-19': {\n _name: 'Deepavali'\n },\n '2018-11-07': {\n _name: 'Deepavali'\n },\n '2019-10-27': {\n _name: 'Deepavali'\n },\n '2020-11-14': {\n _name: 'Deepavali'\n },\n '2021-11-04': {\n _name: 'Deepavali'\n },\n '2022-10-24': {\n _name: 'Deepavali'\n },\n '2023-11-12': {\n _name: 'Deepavali'\n },\n '2024-10-31': {\n _name: 'Deepavali'\n },\n '2025-10-20': {\n _name: 'Deepavali'\n },\n '2026-11-08': {\n _name: 'Deepavali'\n },\n '2027-10-28': {\n _name: 'Deepavali'\n },\n '2028-10-17': {\n _name: 'Deepavali'\n },\n '2029-11-05': {\n _name: 'Deepavali'\n },\n '2030-10-25': {\n _name: 'Deepavali'\n }\n }\n },\n SS: {\n names: {\n en: 'South Sudan'\n },\n dayoff: 'sunday',\n langs: [\n 'en'\n ],\n zones: [\n 'Africa/Maputo'\n ],\n days: {\n '01-01': {\n _name: '01-01'\n },\n '01-09': {\n name: {\n en: 'Peace Agreement Day'\n }\n },\n '03-08': {\n _name: '03-08'\n },\n '05-16': {\n name: {\n en: 'SPLA Day'\n }\n },\n '1st monday in July': {\n _name: 'Mothers Day',\n type: 'observance'\n },\n '07-09': {\n _name: 'Independence Day'\n },\n '07-30': {\n name: {\n en: 'Martyrs Day'\n }\n },\n '12-25': {\n _name: '12-25'\n },\n '12-28': {\n name: {\n en: 'Republic Day'\n }\n },\n '12-31': {\n _name: '12-31'\n },\n '2 Shawwal': {\n _name: '1 Shawwal'\n },\n '12 Dhu al-Hijjah': {\n _name: '10 Dhu al-Hijjah'\n }\n }\n },\n ST: {\n names: {\n pt: 'São Tomé & Príncipe',\n en: 'São Tomé & Príncipe'\n },\n langs: [\n 'pt',\n 'en'\n ],\n zones: [\n 'Africa/Abidjan'\n ],\n dayoff: 'sunday',\n days: {\n '01-01 and if Saturday then previous Friday if Sunday then next Monday': {\n substitute: true,\n _name: '01-01'\n },\n '02-03 and if Saturday then previous Friday if Sunday then next Monday': {\n substitute: true,\n name: {\n en: \"Martyrs' Day\",\n pt: 'Dia dos Mártires'\n }\n },\n '05-01 and if Saturday then previous Friday if Sunday then next Monday': {\n substitute: true,\n _name: '05-01'\n },\n '07-12 and if Saturday then previous Friday if Sunday then next Monday': {\n substitute: true,\n _name: 'Independence Day'\n },\n '09-06 and if Saturday then previous Friday if Sunday then next Monday': {\n substitute: true,\n name: {\n en: 'Armed Forces Day',\n pt: 'Dia das Forças Armadas'\n }\n },\n '09-30 and if Saturday then previous Friday if Sunday then next Monday': {\n substitute: true,\n name: {\n en: 'Agricultural Reform Day',\n pt: 'Dia da Reforma Agrária'\n }\n },\n '12-21 and if Saturday then previous Friday if Sunday then next Monday': {\n substitute: true,\n name: {\n en: 'São Tomé Day',\n pt: 'Dia de São Tomé'\n }\n },\n '12-25 and if Saturday then previous Friday if Sunday then next Monday': {\n substitute: true,\n _name: '12-25'\n }\n }\n },\n SV: {\n names: {\n es: 'El Salvador',\n en: 'El Salvador'\n },\n dayoff: 'sunday',\n langs: [\n 'es'\n ],\n zones: [\n 'America/El_Salvador'\n ],\n days: {\n '01-01': {\n _name: '01-01',\n type: 'observance'\n },\n '01-16': {\n name: {\n es: 'Firma de los Acuerdos de Paz'\n },\n type: 'observance'\n },\n '03-08': {\n name: {\n es: 'Día de la Mujer'\n },\n type: 'observance'\n },\n 'easter -3': {\n _name: 'easter -3'\n },\n 'easter -2': {\n _name: 'easter -2'\n },\n 'easter -1': {\n _name: 'easter -1'\n },\n easter: {\n _name: 'easter',\n type: 'observance'\n },\n '05-01': {\n _name: '05-01'\n },\n '05-07': {\n name: {\n en: \"Soldier's Day\",\n es: 'Día del Soldado'\n },\n type: 'observance'\n },\n '05-10': {\n _name: 'Mothers Day',\n type: 'optional',\n note: 'Public Offices only'\n },\n '06-17': {\n _name: 'Fathers Day',\n type: 'observance'\n },\n '06-22': {\n name: {\n es: 'Día del Maestro'\n },\n type: 'optional',\n note: 'Dayoff for teachers only'\n },\n '08-06': {\n name: {\n es: 'Celebración del Divino Salvador del Mundo'\n }\n },\n '09-15': {\n _name: 'Independence Day'\n },\n '11-02': {\n _name: '11-02'\n },\n '12-25': {\n _name: '12-25'\n }\n },\n regions: {\n SS: {\n name: 'San Salvador',\n days: {\n '08-03': {\n name: {\n es: 'Fiestas Agostinas'\n }\n },\n '08-05': {\n name: {\n es: 'Fiestas Agostinas'\n }\n }\n }\n }\n }\n },\n SX: {\n names: {\n en: 'Sint Maarten'\n },\n langs: [\n 'nl'\n ],\n zones: [\n 'America/Curacao'\n ],\n dayoff: 'sunday',\n days: {\n '01-01': {\n _name: '01-01'\n },\n 'easter -2': {\n _name: 'easter -2'\n },\n easter: {\n _name: 'easter'\n },\n 'easter 1': {\n _name: 'easter 1'\n },\n '04-27': {\n name: {\n nl: 'Koningsdag',\n en: \"King's Day\"\n }\n },\n '04-30 if Sunday then next Tuesday prior to 2017': {\n name: {\n nl: 'Carnaval',\n en: 'Carnival'\n }\n },\n '04-30 if Saturday then previous Friday if Sunday then next Tuesday since 2017': {\n name: {\n nl: 'Carnaval',\n en: 'Carnival'\n }\n },\n '05-01 if Sunday then next Monday': {\n _name: '05-01'\n },\n 'easter 39': {\n _name: 'easter 39'\n },\n 'easter 49': {\n _name: 'easter 49'\n },\n '07-01': {\n name: {\n nl: 'Emancipatiedag',\n en: 'Emancipation Day'\n }\n },\n '10-09': {\n _name: 'Constitution Day'\n },\n '11-11': {\n name: {\n en: 'Sint Maarten Day'\n }\n },\n '12-25': {\n _name: '12-25'\n },\n '12-26': {\n _name: '12-26'\n }\n }\n },\n SZ: {\n names: {\n ss: 'Eswatini',\n en: 'Swaziland'\n },\n langs: [\n 'ss',\n 'en'\n ],\n zones: [\n 'Africa/Johannesburg'\n ],\n dayoff: 'sunday',\n days: {\n '01-01': {\n _name: '01-01'\n },\n 'easter -2': {\n _name: 'easter -2'\n },\n easter: {\n _name: 'easter',\n type: 'observance'\n },\n 'easter 1': {\n _name: 'easter 1'\n },\n '04-19 and if Saturday, Sunday then next Monday': {\n substitute: true,\n name: {\n en: 'Birthday of King Mswati III'\n }\n },\n '04-25 and if Saturday, Sunday then next Monday': {\n substitute: true,\n name: {\n en: 'National Flag Day'\n }\n },\n '05-01 and if Saturday, Sunday then next Monday': {\n substitute: true,\n _name: '05-01'\n },\n 'easter 39': {\n _name: 'easter 39'\n },\n '07-22 and if Saturday, Sunday then next Monday': {\n substitute: true,\n name: {\n en: 'Birthday of the late King Sobhuza'\n }\n },\n '1st Monday in September': {\n name: {\n ss: 'Umhlanga Reed Dance',\n en: 'Umhlanga Reed Dance'\n }\n },\n '09-06 and if Saturday, Sunday then next Monday': {\n substitute: true,\n _name: 'Independence Day',\n name: {\n ss: 'Somhlolo Day'\n }\n },\n '12-25': {\n _name: '12-25'\n },\n '12-26 and if Sunday then next Monday': {\n _name: '12-26'\n },\n '12-28 P6D': {\n name: {\n ss: 'Incwala',\n en: 'Incwala Festival'\n }\n }\n }\n },\n TC: {\n names: {\n en: 'Turks & Caicos Islands'\n },\n langs: [\n 'en'\n ],\n zones: [\n 'America/Grand_Turk'\n ],\n dayoff: 'sunday',\n days: {\n '01-01 and if Saturday, Sunday then next Monday': {\n _name: '01-01'\n },\n '2nd Monday in March': {\n name: {\n en: 'Commonwealth Day'\n }\n },\n 'easter -2': {\n _name: 'easter -2'\n },\n easter: {\n _name: 'easter',\n type: 'observance'\n },\n 'easter 1': {\n _name: 'easter 1'\n },\n '1st Monday before 06-01': {\n name: {\n en: \"National Heroes' Day\"\n }\n },\n '2nd Monday after 06-02': {\n name: {\n en: \"Queen's Birthday\"\n }\n },\n '1st Monday in August': {\n name: {\n en: 'Emancipation Day'\n }\n },\n '1st Friday before 10-01': {\n name: {\n en: 'National Youth Day'\n }\n },\n '2nd Monday in October': {\n name: {\n en: 'National Heritage Day'\n }\n },\n '4th Friday in November': {\n name: {\n en: 'National Day of Thanksgiving'\n }\n },\n '12-25 and if Saturday then next Monday if Sunday then next Tuesday': {\n substitute: true,\n _name: '12-25'\n },\n '12-26 and if Saturday then next Monday if Sunday then next Tuesday': {\n substitute: true,\n _name: '12-26'\n }\n }\n },\n TD: {\n names: {\n ar: 'جمهورية تشاد',\n fr: 'République du Tchad',\n en: 'Chad'\n },\n langs: [\n 'ar',\n 'fr'\n ],\n zones: [\n 'Africa/Ndjamena'\n ],\n dayoff: 'sunday',\n days: {\n '01-01 and if sunday then next monday': {\n _name: '01-01'\n },\n '05-01 and if sunday then next monday': {\n _name: '05-01'\n },\n '08-11 and if sunday then next monday': {\n name: {\n fr: 'Fête Nationale (Indépendance)',\n en: 'Independence Day'\n }\n },\n '12-01 and if sunday then next monday': {\n name: {\n fr: 'Journée de la libération et de la démocratie',\n en: 'Freedom and Democracy Day'\n }\n },\n '11-01': {\n _name: '11-01'\n },\n '11-28': {\n name: {\n fr: 'Anniversaire de la Proclamation de la République',\n en: 'Proclamation of the Republic'\n }\n },\n '12-25': {\n _name: '12-25'\n },\n 'easter 1': {\n _name: 'easter 1'\n },\n '12 Rabi al-awwal': {\n _name: '12 Rabi al-awwal'\n },\n '1 Shawwal': {\n _name: '1 Shawwal'\n },\n '10 Dhu al-Hijjah': {\n _name: '10 Dhu al-Hijjah'\n }\n }\n },\n TG: {\n names: {\n fr: 'République togolaise',\n en: 'Togolese Republic'\n },\n dayoff: 'sunday',\n langs: [\n 'fr'\n ],\n zones: [\n 'Africa/Abidjan'\n ],\n days: {\n '01-01': {\n _name: '01-01'\n },\n '01-13': {\n name: {\n fr: 'Jour de la libération',\n en: 'Liberation Day'\n }\n },\n '04-27': {\n _name: 'Independence Day'\n },\n 'easter 1': {\n _name: 'easter 1'\n },\n '05-01': {\n _name: '05-01'\n },\n 'easter 39': {\n _name: 'easter 39'\n },\n 'easter 50': {\n _name: 'easter 50'\n },\n '06-21': {\n name: {\n fr: 'Journée des Martyrs',\n en: 'Day of the Martyrs'\n }\n },\n '08-15': {\n _name: '08-15'\n },\n '11-01': {\n _name: '11-01'\n },\n '12-25': {\n _name: '12-25'\n },\n '13 Rabi al-awwal': {\n _name: '12 Rabi al-awwal'\n },\n '2 Shawwal': {\n _name: '1 Shawwal'\n },\n '11 Dhu al-Hijjah': {\n _name: '10 Dhu al-Hijjah'\n }\n }\n },\n TN: {\n names: {\n ar: 'الجمهورية التونسية',\n fr: 'République tunisienne',\n en: 'Tunisia'\n },\n langs: [\n 'ar',\n 'fr'\n ],\n zones: [\n 'Africa/Tunis'\n ],\n dayoff: 'sunday',\n days: {\n '01-01': {\n _name: '01-01'\n },\n '01-14': {\n name: {\n fr: 'Fête de la Révolution et de la Jeunesse',\n ar: 'عيد الثورة و الشباب'\n }\n },\n '03-20': {\n name: {\n fr: \"Fête de l'indépendance\",\n ar: 'عيد الإستقلال'\n }\n },\n '04-09': {\n name: {\n fr: 'Journée des Martyrs',\n ar: 'عيد الشهداء'\n }\n },\n '12 Rabi al-awwal': {\n _name: '12 Rabi al-awwal'\n },\n '1 Muharram': {\n _name: '1 Muharram'\n },\n '1 Shawwal': {\n _name: '1 Shawwal'\n },\n '10 Dhu al-Hijjah': {\n _name: '10 Dhu al-Hijjah'\n },\n '05-01': {\n _name: '05-01'\n },\n '07-25': {\n name: {\n fr: 'Fête de la République',\n ar: 'عيد الجمهورية'\n }\n },\n '08-13': {\n name: {\n fr: 'Fête de la Femme et de la Famille',\n ar: 'عيد المرأة'\n }\n },\n '10-15': {\n name: {\n fr: \"Fête de l'Évacuation\",\n ar: 'عيد الجلاء'\n }\n }\n }\n },\n TO: {\n names: {\n to: 'Puleʻanga Fakatuʻi ʻo Tonga',\n en: 'Tonga'\n },\n langs: [\n 'to',\n 'en'\n ],\n zones: [\n 'Pacific/Tongatapu'\n ],\n dayoff: 'sunday',\n days: {\n '01-01': {\n _name: '01-01'\n },\n 'easter -2': {\n _name: 'easter -2'\n },\n 'easter 1': {\n _name: 'easter 1'\n },\n '04-25': {\n name: {\n en: 'ANZAC Day'\n }\n },\n '06-04 if thursday,friday,saturday,sunday then next monday and if tuesday then previous monday': {\n name: {\n en: 'Emancipation Day'\n }\n },\n '07-04': {\n name: {\n en: 'Official Birthday of His Majesty King Tupou VI'\n }\n },\n '09-17 if thursday,friday,saturday,sunday then next monday and if tuesday then previous monday': {\n name: {\n en: 'Birthday of His Royal Highness The Crown Prince Tupotoʻa-ʻUlukalala'\n }\n },\n '11-04 if thursday,friday,saturday,sunday then next monday and if tuesday then previous monday': {\n _name: 'Constitution Day',\n name: {\n en: 'Constitutional Day'\n }\n },\n '12-04 if thursday,friday,saturday,sunday then next monday and if tuesday then previous monday': {\n name: {\n en: 'Tupou I Day'\n }\n },\n '12-25': {\n _name: '12-25'\n },\n '12-26': {\n _name: '12-26'\n }\n }\n },\n TR: {\n names: {\n tr: 'Türkiye',\n en: 'Turkey'\n },\n dayoff: 'saturday',\n langs: [\n 'tr'\n ],\n zones: [\n 'Europe/Istanbul'\n ],\n days: {\n '01-01': {\n _name: '01-01'\n },\n '04-23': {\n name: {\n en: \"National Sovereignty and Children's Day\",\n tr: 'Ulusal Egemenlik ve Çocuk Bayramı'\n }\n },\n '05-01': {\n _name: '05-01',\n name: {\n en: 'Labour and Solidarity Day',\n tr: 'Emek ve Dayanışma Günü'\n }\n },\n '05-19': {\n name: {\n en: 'Commemoration of Atatürk, Youth and Sports Day',\n tr: \"Atatürk'ü Anma Gençlik ve Spor Bayramı\"\n }\n },\n '07-15': {\n name: {\n en: 'Democracy and National Unity Day',\n tr: 'Demokrasi ve Millî Birlik Günü'\n }\n },\n '08-30': {\n name: {\n en: 'Victory Day',\n tr: 'Zafer Bayramı'\n }\n },\n '10-29': {\n name: {\n en: 'Republic Day',\n tr: 'Cumhuriyet Bayramı'\n }\n },\n '1 Shawwal PT90H': {\n _name: '1 Shawwal'\n },\n '10 Dhu al-Hijjah PT114H': {\n _name: '10 Dhu al-Hijjah'\n }\n }\n },\n TT: {\n names: {\n en: 'Trinidad & Tobago'\n },\n langs: [\n 'en'\n ],\n zones: [\n 'America/Port_of_Spain'\n ],\n dayoff: 'sunday',\n days: {\n '01-01 and if Sunday then next Monday': {\n substitute: true,\n _name: '01-01'\n },\n 'easter -2': {\n _name: 'easter -2'\n },\n easter: {\n _name: 'easter'\n },\n 'easter 1': {\n _name: 'easter 1',\n type: 'observance'\n },\n '03-30 and if Sunday then next Monday': {\n substitute: true,\n name: {\n en: 'Spiritual Baptist Liberation Day'\n }\n },\n 'easter 60': {\n _name: 'easter 60'\n },\n '05-30 and if Sunday then next Monday': {\n substitute: true,\n name: {\n en: 'Indian Arrival Day'\n }\n },\n '06-19 and if Sunday then next Monday': {\n substitute: true,\n _name: '05-01'\n },\n '08-01 and if Sunday then next Monday': {\n substitute: true,\n name: {\n en: 'Emancipation Day'\n }\n },\n '08-31 and if Sunday then next Monday': {\n substitute: true,\n _name: 'Independence Day'\n },\n '09-24 and if Sunday then next Monday': {\n substitute: true,\n name: {\n en: 'Republic Day'\n }\n },\n '12-25 and if Sunday then next Tuesday': {\n substitute: true,\n _name: '12-25'\n },\n '12-26 and if Sunday then next Monday': {\n substitute: true,\n _name: '12-26'\n },\n '1 Shawwal and if Sunday then next Monday': {\n substitute: true,\n _name: '1 Shawwal'\n },\n '2012-11-13': {\n _name: 'Deepavali'\n },\n '2013-11-03': {\n _name: 'Deepavali'\n },\n '2013-11-04': {\n substitute: true,\n _name: 'Deepavali'\n },\n '2014-10-23': {\n _name: 'Deepavali'\n },\n '2015-11-11': {\n _name: 'Deepavali'\n },\n '2016-10-29': {\n _name: 'Deepavali'\n },\n '2017-10-19': {\n _name: 'Deepavali'\n },\n '2018-11-07': {\n _name: 'Deepavali'\n },\n '2019-10-27': {\n _name: 'Deepavali'\n },\n '2019-10-28': {\n substitute: true,\n _name: 'Deepavali'\n },\n '2020-11-14': {\n _name: 'Deepavali'\n },\n '2021-11-04': {\n _name: 'Deepavali'\n },\n '2022-10-24': {\n _name: 'Deepavali'\n },\n '2023-11-12': {\n _name: 'Deepavali'\n },\n '2023-11-13': {\n substitute: true,\n _name: 'Deepavali'\n },\n '2024-10-31': {\n _name: 'Deepavali'\n },\n '2025-10-20': {\n _name: 'Deepavali'\n },\n '2026-11-08': {\n _name: 'Deepavali'\n },\n '2026-11-09': {\n substitute: true,\n _name: 'Deepavali'\n },\n '2027-10-28': {\n _name: 'Deepavali'\n },\n '2028-10-17': {\n _name: 'Deepavali'\n },\n '2029-11-05': {\n _name: 'Deepavali'\n },\n '2030-10-25': {\n _name: 'Deepavali'\n }\n }\n },\n TW: {\n names: {\n zh: '中華民國',\n en: 'Taiwan'\n },\n langs: [\n 'zh'\n ],\n zones: [\n 'Asia/Taipei'\n ],\n dayoff: '',\n days: {\n '01-01 and if Saturday then previous Friday if Sunday then next Monday': {\n substitute: true,\n _name: '01-01',\n name: {\n zh: '中華民國開國紀念日 / 元旦',\n en: 'Founding of the Republic of China'\n }\n },\n 'chinese 01-0-00': {\n name: {\n en: \"Chinese New Year's Eve\",\n zh: '農曆除夕'\n }\n },\n 'chinese 01-0-01': {\n name: {\n en: 'Chinese New Year',\n zh: '農曆年初一'\n }\n },\n 'chinese 01-0-01 if Monday then next Friday if Tuesday then next Saturdayif Wednesday then next Sunday if Thursday then next Monday if Friday then next Tuesday if Saturday then next Wednesday if Sunday then next Thursday': {\n name: {\n en: 'Chinese New Year Holiday',\n zh: '农历新年假期'\n }\n },\n 'chinese 01-0-02': {\n name: {\n en: 'The second day of the Chinese New Year',\n zh: '農曆年初二'\n }\n },\n 'chinese 01-0-03': {\n name: {\n en: 'The third day of the Chinese New Year',\n zh: '農曆年初三'\n }\n },\n 'chinese 01-0-04': {\n name: {\n en: 'The forth day of the Chinese New Year',\n zh: '農曆年初四'\n }\n },\n '02-28 and if Sunday then next Monday': {\n substitute: true,\n name: {\n en: 'Peace Memorial Day',\n zh: '228和平紀念日'\n }\n },\n '04-04 and if Sunday then next Monday': {\n substitute: true,\n name: {\n en: \"Children's Day\",\n zh: '兒童節'\n }\n },\n 'chinese 5-01 solarterm and if Sunday then next Monday': {\n substitute: true,\n name: {\n en: 'Tomb Sweeping Day',\n zh: '淸明節'\n }\n },\n 'chinese 05-0-05 and if Sunday then next Monday': {\n substitute: true,\n name: {\n en: 'Dragon Boat Festival',\n zh: '端午節'\n }\n },\n 'chinese 08-0-15 and if Sunday then next Monday': {\n substitute: true,\n name: {\n en: 'Mid-Autumn Festival',\n zh: '中秋節'\n }\n },\n '10-10 and if Sunday then next Monday': {\n substitute: true,\n name: {\n en: 'National Day / Double Tenth Day',\n zh: '國慶日 / 雙十節'\n }\n },\n '02-04': {\n name: {\n en: \"Farmer's Day\",\n zh: '農民節'\n },\n type: 'observance'\n },\n '03-08': {\n _name: '03-08',\n type: 'observance'\n },\n '03-12': {\n name: {\n en: 'Arbor Day',\n zh: '國父逝世紀念日'\n },\n type: 'observance'\n },\n '03-29': {\n name: {\n en: 'Youth Day',\n zh: '靑年節'\n },\n type: 'observance'\n },\n '05-01 and if Saturday then previous Friday if Sunday then next Monday': {\n substitute: true,\n _name: '05-01',\n name: {\n zh: '勞動節'\n },\n type: 'observance',\n note: 'private sector'\n },\n '05-04': {\n name: {\n en: 'Literary Day',\n zh: '文藝節'\n },\n type: 'observance'\n },\n '2nd Sunday in May': {\n _name: 'Mothers Day',\n name: {\n zh: '母親節'\n },\n type: 'observance'\n },\n '06-03': {\n name: {\n en: 'Opium Suppression Movement Day',\n zh: '禁菸節'\n },\n type: 'observance'\n },\n '08-08': {\n _name: 'Fathers Day',\n name: {\n zh: '父親節'\n },\n type: 'observance'\n },\n '09-01': {\n name: {\n en: \"Journalist' Day\",\n zh: '記者節'\n },\n type: 'observance'\n },\n '09-03': {\n name: {\n en: 'Armed Forces Day',\n zh: '軍人節'\n },\n type: 'observance'\n },\n '09-28': {\n name: {\n en: \"Teachers' Day\",\n zh: '孔子誕辰紀念日'\n },\n type: 'observance'\n },\n '10-21': {\n name: {\n en: 'Overseas Chinese Day',\n zh: '華僑節'\n },\n type: 'observance'\n },\n '10-25': {\n name: {\n en: 'Taiwan Retrocession Day',\n zh: '臺灣光復節'\n },\n type: 'observance'\n },\n '11-12': {\n name: {\n en: \"Sun Yat-sen's Birthday\",\n zh: '國父誕辰紀念日'\n },\n note: \"Also Doctors' Day and Cultural Renaissance Day\",\n type: 'observance'\n },\n 'december solstice': {\n name: {\n en: 'Dongzhi Festival',\n zh: '冬至'\n },\n type: 'observance'\n },\n '12-25': {\n name: {\n en: 'Constitution Day',\n zh: '行憲紀念日'\n },\n type: 'observance'\n },\n 'chinese 01-0-15': {\n name: {\n en: 'Lantern Festival',\n zh: '元宵節'\n },\n type: 'observance'\n },\n 'chinese 01-0-15 #1': {\n name: {\n en: 'Tourism Day',\n zh: '觀光節'\n },\n type: 'observance'\n },\n 'chinese 02-0-02': {\n name: {\n en: \"Earth God's Birthday\",\n zh: '土地公誕辰'\n },\n type: 'observance'\n },\n 'chinese 02-0-19': {\n name: {\n en: \"Kuan Yin's Birthday\",\n zh: '觀音誕辰'\n },\n type: 'observance'\n },\n 'chinese 03-0-15': {\n name: {\n en: \"God of Medicine's Birthday\",\n zh: '保生大帝誕辰'\n },\n type: 'observance'\n },\n 'chinese 03-0-23': {\n name: {\n en: \"Matsu's Birthday\",\n zh: '媽祖誕辰'\n },\n type: 'observance'\n },\n 'chinese 04-0-08': {\n name: {\n en: \"Buddha's Birthday\",\n zh: '佛誕日'\n },\n type: 'observance'\n },\n 'chinese 05-0-13': {\n name: {\n en: \"Kuan Kung's Birthday\",\n zh: '關公誕辰'\n },\n type: 'observance'\n },\n 'chinese 05-0-13 #1': {\n name: {\n en: \"Cheng Huang's Birthday\",\n zh: '城隍爺誕辰'\n },\n type: 'observance'\n },\n 'chinese 07-0-07': {\n name: {\n en: 'Qixi Festival',\n zh: '七夕'\n },\n type: 'observance'\n },\n 'chinese 07-0-15': {\n name: {\n en: 'Ghost Festival',\n zh: '中元節'\n },\n type: 'observance'\n },\n 'chinese 09-0-09': {\n name: {\n en: 'Double Ninth Festival',\n zh: '重陽節'\n },\n type: 'observance'\n },\n 'chinese 10-0-15': {\n name: {\n en: 'Saisiat Festival',\n zh: '賽夏節'\n },\n type: 'observance'\n }\n }\n },\n TZ: {\n names: {\n en: 'Tanzania'\n },\n dayoff: 'sunday',\n langs: [\n 'en'\n ],\n zones: [\n 'Africa/Nairobi'\n ],\n days: {\n '01-01': {\n _name: '01-01'\n },\n '01-02': {\n name: {\n en: 'Zanzibar Revolution Day'\n }\n },\n 'easter -2': {\n _name: 'easter -2'\n },\n easter: {\n _name: 'easter',\n type: 'observance'\n },\n 'easter 1': {\n _name: 'easter 1'\n },\n '04-07': {\n name: {\n en: 'Karume Day'\n }\n },\n '04-26': {\n name: {\n en: 'Union Day'\n }\n },\n '05-01': {\n _name: '05-01'\n },\n '07-07': {\n name: {\n en: 'Saba Saba Day'\n }\n },\n '08-08': {\n name: {\n en: 'Nane Nane Day'\n }\n },\n '10-14': {\n name: {\n en: 'Nyerere Day'\n }\n },\n '12-09': {\n _name: 'Independence Day'\n },\n '12-25': {\n _name: '12-25'\n },\n '12-26': {\n _name: '12-25'\n },\n '1 Shawwal P2D': {\n _name: '1 Shawwal'\n },\n '10 Dhu al-Hijjah': {\n _name: '10 Dhu al-Hijjah'\n },\n '12 Rabi al-awwal': {\n _name: '12 Rabi al-awwal',\n name: {\n en: 'Maulid Day'\n }\n }\n }\n },\n UA: {\n names: {\n uk: 'Україна',\n en: 'Ukraine'\n },\n langs: [\n 'uk'\n ],\n zones: [\n 'Europe/Kiev',\n 'Europe/Uzhgorod',\n 'Europe/Zaporozhye'\n ],\n dayoff: 'sunday',\n days: {\n '01-01 and if saturday, sunday then next tuesday': {\n _name: '01-01',\n name: {\n en: 'New Year'\n },\n substitute: true\n },\n '01-02 and if saturday, sunday then next monday': {\n _name: '01-01',\n name: {\n en: 'New Year'\n },\n substitute: true\n },\n 'julian 12-25 and if saturday, sunday then next monday': {\n _name: 'julian 12-25',\n substitute: true\n },\n '03-08 and if saturday, sunday then next monday': {\n _name: '03-08'\n },\n 'orthodox and if sunday then next monday': {\n _name: 'orthodox'\n },\n 'orthodox 49 and if sunday then next monday': {\n _name: 'easter 49'\n },\n '05-01 and if saturday, sunday then next tuesday': {\n _name: '05-01',\n substitute: true\n },\n '05-02 and if saturday, sunday then next monday': {\n _name: '05-01',\n substitute: true\n },\n '05-09 and if saturday, sunday then next monday': {\n name: {\n uk: 'День перемоги над нацизмом у Другій світовій війні',\n en: 'Victory Day'\n },\n substitute: true\n },\n '06-28 and if saturday, sunday then next monday': {\n _name: 'Constitution Day',\n substitute: true\n },\n '08-24 and if saturday, sunday then next monday': {\n _name: 'Independence Day',\n substitute: true\n },\n '10-14 and if saturday, sunday then next monday': {\n name: {\n uk: 'День захисника України',\n en: 'Defender of Ukraine Day'\n },\n substitute: true,\n active: [\n {\n from: '2015-03-05'\n }\n ]\n }\n }\n },\n UG: {\n names: {\n en: 'Uganda'\n },\n dayoff: 'sundays',\n langs: [\n 'en',\n 'sw'\n ],\n zones: [\n 'Africa/Nairobi'\n ],\n days: {\n '01-01': {\n _name: '01-01'\n },\n '01-26': {\n name: {\n en: 'Liberation Day'\n }\n },\n '02-16': {\n name: {\n en: 'Archbishop Janan Luwum Day'\n }\n },\n '03-08': {\n _name: '03-08'\n },\n 'easter -46': {\n _name: 'easter -46',\n type: 'observance'\n },\n 'easter -2': {\n _name: 'easter -2'\n },\n easter: {\n _name: 'easter'\n },\n 'easter 1': {\n _name: 'easter 1'\n },\n '05-01': {\n _name: '05-01'\n },\n '06-03': {\n name: {\n en: \"Martyr's Day\"\n }\n },\n '06-09': {\n name: {\n en: 'National Heroes Day'\n }\n },\n '10-09': {\n _name: 'Independence Day'\n },\n '12-25': {\n _name: '12-25'\n },\n '12-26': {\n _name: '12-26'\n },\n '1 Shawwal': {\n _name: '1 Shawwal'\n },\n '10 Dhu al-Hijjah': {\n _name: '10 Dhu al-Hijjah'\n }\n }\n },\n US: {\n names: {\n en: 'United States of America'\n },\n dayoff: 'sunday',\n zones: [\n 'America/New_York',\n 'America/Detroit',\n 'America/Kentucky/Louisville',\n 'America/Kentucky/Monticello',\n 'America/Indiana/Indianapolis',\n 'America/Indiana/Vincennes',\n 'America/Indiana/Winamac',\n 'America/Indiana/Marengo',\n 'America/Indiana/Petersburg',\n 'America/Indiana/Vevay',\n 'America/Chicago',\n 'America/Indiana/Tell_City',\n 'America/Indiana/Knox',\n 'America/Menominee',\n 'America/North_Dakota/Center',\n 'America/North_Dakota/New_Salem',\n 'America/North_Dakota/Beulah',\n 'America/Denver',\n 'America/Boise',\n 'America/Phoenix',\n 'America/Los_Angeles',\n 'America/Metlakatla',\n 'America/Anchorage',\n 'America/Juneau',\n 'America/Sitka',\n 'America/Yakutat',\n 'America/Nome',\n 'America/Adak',\n 'Pacific/Honolulu'\n ],\n langs: [\n 'en-us',\n 'en'\n ],\n days: {\n '01-01 and if sunday then next monday if saturday then previous friday': {\n substitute: true,\n _name: '01-01'\n },\n '3rd monday in January': {\n name: {\n en: 'Martin Luther King Jr. Day',\n es: 'Natalicio de Martin Luther King, Jr.'\n }\n },\n '3rd monday in February': {\n name: {\n en: \"Washington's Birthday\",\n es: 'Día de los Presidentes'\n }\n },\n '02-14': {\n _name: '02-14',\n type: 'observance'\n },\n '03-17': {\n name: {\n en: \"St. Patrick's Day\"\n },\n type: 'observance'\n },\n easter: {\n _name: 'easter',\n type: 'observance'\n },\n '04-15 if friday then next monday if saturday,sunday then next tuesday': {\n name: {\n en: 'Tax Day'\n },\n type: 'observance'\n },\n 'wednesday before 04-28': {\n name: {\n en: 'Administrative Professionals Day'\n },\n type: 'observance'\n },\n '2nd sunday in May': {\n _name: 'Mothers Day',\n type: 'observance'\n },\n 'monday before 06-01': {\n name: {\n en: 'Memorial Day',\n es: 'Recordación de los Muertos de la Guerra'\n }\n },\n '06-19 and if sunday then next monday if saturday then previous friday since 2021': {\n substitute: true,\n name: {\n en: 'Juneteenth'\n }\n },\n '3rd sunday in June': {\n _name: 'Fathers Day',\n type: 'observance'\n },\n '07-04 and if sunday then next monday if saturday then previous friday': {\n substitute: true,\n _name: 'Independence Day'\n },\n '1st monday in September': {\n _name: '05-01'\n },\n '2nd monday in October': {\n name: {\n en: 'Columbus Day',\n es: 'Descubrimiento de América'\n }\n },\n '10-31 18:00': {\n name: {\n en: 'Halloween'\n },\n type: 'observance'\n },\n '11-11': {\n name: {\n en: 'Veterans Day',\n es: 'Día del Veterano'\n }\n },\n 'substitutes 11-11 if sunday then next monday if saturday then previous friday': {\n substitute: true,\n name: {\n en: 'Veterans Day',\n es: 'Día del Veterano'\n },\n type: 'bank',\n note: 'Federal Government offices are closed'\n },\n 'tuesday after 1st monday in November every 4 years since 1848': {\n name: {\n en: 'Election Day'\n },\n type: 'observance'\n },\n '4th thursday in November': {\n name: {\n en: 'Thanksgiving Day',\n es: 'Acción de Gracias'\n }\n },\n 'friday after 4th thursday in November': {\n name: {\n en: 'Day after Thanksgiving Day',\n es: 'Dia despues Acción de Gracias'\n },\n type: 'observance'\n },\n '12-24': {\n _name: '12-24',\n type: 'optional'\n },\n '12-25 and if sunday then next monday if saturday then previous friday': {\n substitute: true,\n _name: '12-25'\n },\n '12-31': {\n _name: '12-31',\n type: 'observance'\n }\n },\n states: {\n AL: {\n name: 'Alabama',\n zones: [\n 'America/Chicago'\n ],\n days: {\n '3rd monday in January': {\n name: {\n en: 'Robert E. Lee/Martin Luther King Birthday'\n }\n },\n '3rd monday in February': {\n name: {\n en: 'George Washington/Thomas Jefferson Birthday'\n }\n },\n '4th monday in April': {\n name: {\n en: 'Confederate Memorial Day'\n }\n },\n '1st monday in June': {\n name: {\n en: \"Jefferson Davis' birthday\"\n }\n }\n }\n },\n AK: {\n name: 'Alaska',\n zones: [\n 'America/Anchorage',\n 'America/Metlakatla',\n 'America/Juneau',\n 'America/Sitka',\n 'America/Yakutat',\n 'America/Nome'\n ],\n days: {\n '3rd monday in February': {\n name: {\n en: \"President's Day\"\n }\n },\n 'monday before April': {\n name: {\n en: \"Seward's Day\"\n }\n },\n '2nd monday in October': {\n name: {\n en: 'Columbus Day'\n },\n active: [\n {\n to: '2017-01-01'\n }\n ]\n },\n '2nd monday in October #1': {\n name: {\n en: \"Indigenous Peoples' Day\"\n },\n active: [\n {\n from: '2017-01-01'\n }\n ]\n },\n '10-18': {\n name: {\n en: 'Alaska Day'\n }\n }\n }\n },\n AZ: {\n name: 'Arizona',\n zones: [\n 'America/Phoenix',\n 'America/Denver'\n ],\n days: {\n '3rd monday in January': {\n name: {\n en: 'Dr. Martin Luther King Jr./ Civil Rights Day'\n }\n },\n '3rd monday in February': {\n name: {\n en: \"Lincoln/Washington Presidents' Day\"\n }\n }\n }\n },\n AR: {\n name: 'Arkansas',\n zones: [\n 'America/Chicago'\n ],\n days: {\n '3rd monday in January': {\n name: {\n en: \"Dr. Martin Luther King Jr./Robert E. Lee's Birthdays\"\n }\n },\n '3rd monday in February': {\n name: {\n en: \"George Washington's Birthday/Daisy Gatson Bates Day\"\n }\n },\n '12-24': {\n _name: '12-24'\n }\n }\n },\n CA: {\n name: 'California',\n zones: [\n 'America/Los_Angeles'\n ],\n days: {\n '3rd monday in February': {\n name: {\n en: \"Presidents' Day\"\n }\n },\n '2nd monday in October': false,\n '02-15': {\n type: 'observance',\n name: {\n en: 'Susan B. Anthony Day'\n }\n },\n '03-31 and if sunday then next monday': {\n substitute: true,\n name: {\n en: 'César Chávez Day'\n }\n },\n '05-19': {\n type: 'observance',\n name: {\n en: 'Malcolm X Day'\n }\n },\n '05-23': {\n type: 'observance',\n name: {\n en: 'Harvey Milk Day'\n }\n },\n 'friday after 4th thursday in November': {\n name: {\n en: 'Day after Thanksgiving Day'\n },\n type: 'public'\n }\n },\n regions: {\n LA: {\n name: 'Los Angeles',\n days: {\n '08-24': {\n name: {\n en: 'Kobe Bryant Day'\n },\n type: 'observance',\n active: [\n {\n from: 2016\n }\n ]\n }\n }\n }\n }\n },\n CO: {\n name: 'Colorado',\n zones: [\n 'America/Denver'\n ],\n days: {\n '3rd monday in February': {\n name: {\n en: 'Washington-Lincoln Day'\n }\n },\n '2nd monday in October': {\n type: 'observance'\n }\n }\n },\n CT: {\n name: 'Connecticut',\n zones: [\n 'America/New_York'\n ],\n days: {\n '02-12': {\n name: {\n en: \"Lincoln's Birthday\"\n }\n },\n 'easter -2': {\n _name: 'easter -2'\n }\n }\n },\n DE: {\n name: 'Delaware',\n days: {\n '2nd monday in October': false,\n '3rd monday in February': false,\n 'easter -2': {\n _name: 'easter -2'\n },\n 'friday after 4th thursday in November': {\n name: {\n en: 'Day After Thanksgiving'\n }\n },\n 'tuesday after 1st monday in November in even years': {\n name: {\n en: 'Election Day'\n }\n }\n }\n },\n DC: {\n name: 'District of Columbia',\n days: {\n '04-16': {\n name: {\n en: 'Emancipation Day'\n }\n }\n }\n },\n FL: {\n name: 'Florida',\n days: {\n '2nd monday in October': false,\n '3rd monday in February': false,\n '02-15': {\n name: {\n en: 'Susan B. Anthony Day'\n }\n },\n 'friday after 4th thursday in November': {\n name: {\n en: 'Day After Thanksgiving'\n }\n }\n }\n },\n GA: {\n name: 'Georgia',\n days: {\n '3rd monday in February': false,\n 'monday before 05-01 #1': {\n name: {\n en: 'Confederate Memorial Day'\n },\n active: [\n {\n to: '2016-01-01'\n }\n ]\n },\n 'monday before 05-01 #2': {\n name: {\n en: 'State Holiday'\n },\n note: 'Known as Confederate Memorial Day prior to 2016',\n active: [\n {\n from: '2016-01-01'\n }\n ]\n },\n 'friday after 4th thursday in November #1': {\n name: {\n en: \"Robert E. Lee's Birthday\"\n },\n note: 'General Lee was born on 1807-01-19 but this holiday was traditionally observed the day after Thanksgiving.',\n active: [\n {\n to: '2016-01-01'\n }\n ]\n },\n 'friday after 4th thursday in November #2': {\n name: {\n en: 'State Holiday'\n },\n note: \"Known as Robert E. Lee's Birtday prior to 2016\",\n active: [\n {\n from: '2016-01-01'\n }\n ]\n },\n '12-24': {\n name: {\n en: \"Washington's Birthday\"\n }\n },\n 'substitutes 12-24 if wednesday then next friday': {\n substitute: true,\n name: {\n en: \"Washington's Birthday\"\n }\n }\n }\n },\n HI: {\n name: 'Hawaii',\n zones: [\n 'Pacific/Honolulu'\n ],\n days: {\n '3rd monday in February': {\n name: {\n en: \"Presidents' Day\"\n }\n },\n '03-26 and if saturday then previous friday if sunday then next monday': {\n substitute: true,\n name: {\n en: 'Prince Jonah Kuhio Kalanianaole Day'\n }\n },\n 'easter -2': {\n _name: 'easter -2'\n },\n '06-11 and if saturday then previous friday if sunday then next monday': {\n substitute: true,\n name: {\n en: 'Kamehameha Day'\n }\n },\n '3rd friday in August': {\n name: {\n en: 'Statehood Day'\n }\n },\n '2nd monday in October': false,\n 'tuesday after 1st monday in November in even years': {\n name: {\n en: 'General Election Day'\n }\n }\n }\n },\n ID: {\n name: 'Idaho',\n zones: [\n 'America/Boise',\n 'America/Los_Angeles'\n ],\n days: {\n '3rd monday in January': {\n name: {\n en: 'Martin Luther King, Jr./ Idaho Human Rights Day'\n }\n },\n '3rd monday in February': {\n name: {\n en: \"President's Day\"\n }\n }\n }\n },\n IL: {\n name: 'Illinois',\n zones: [\n 'America/Chicago'\n ],\n days: {\n '02-12': {\n name: {\n en: \"Lincoln's Birthday\"\n }\n },\n '1st monday in March': {\n name: {\n en: 'Casimir Pulaski Day'\n }\n },\n '05-19': {\n name: {\n en: 'Malcolm X Day'\n }\n },\n 'tuesday after 1st monday in November in even years': {\n name: {\n en: 'Election Day'\n }\n }\n }\n },\n IN: {\n name: 'Indiana',\n zones: [\n 'America/Indiana/Indianapolis',\n 'America/Indiana/Vincennes',\n 'America/Indiana/Winamac',\n 'America/Indiana/Marengo',\n 'America/Indiana/Petersburg',\n 'America/Indiana/Vevay',\n 'America/Indiana/Tell_City',\n 'America/Indiana/Knox'\n ],\n days: {\n 'easter -2': {\n _name: 'easter -2'\n },\n 'tuesday after 1st monday in May': {\n name: {\n en: 'Primary Election Day'\n }\n },\n 'tuesday after 1st monday in November': {\n name: {\n en: 'Election Day'\n }\n },\n 'friday after 4th thursday in November': {\n name: {\n en: \"Lincoln's Birthday\"\n }\n }\n }\n },\n IA: {\n name: 'Iowa',\n zones: [\n 'America/Chicago'\n ],\n days: {\n '02-12': {\n name: {\n en: \"Lincoln's Birthday\"\n }\n }\n }\n },\n KS: {\n name: 'Kansas',\n zones: [\n 'America/Chicago',\n 'America/Denver'\n ],\n days: {\n '3rd monday in February': false\n }\n },\n KY: {\n name: 'Kentucky',\n zones: [\n 'America/Kentucky/Louisville',\n 'America/Kentucky/Monticello'\n ],\n days: {\n '3rd monday in February': false,\n 'easter -2 14:00': {\n _name: 'easter -2'\n },\n '12-24': {\n _name: '12-24'\n },\n '12-31': {\n _name: '12-31'\n }\n }\n },\n LA: {\n name: 'Louisiana',\n zones: [\n 'America/Chicago'\n ],\n days: {\n 'easter -2': {\n _name: 'easter -2'\n },\n 'tuesday after 1st monday in November in even years': {\n name: {\n en: 'Election Day'\n }\n }\n },\n regions: {\n NO: {\n name: 'New Orleans',\n days: {\n 'easter -47': {\n _name: 'easter -47',\n name: {\n en: 'Mardi Gras'\n }\n }\n }\n }\n }\n },\n ME: {\n name: 'Maine',\n zones: [\n 'America/New_York'\n ],\n days: {\n '3rd monday in February': {\n name: {\n en: \"Washington's Birthday/President's Day\"\n }\n },\n '3rd monday in April': {\n name: {\n en: \"Patriots' Day\"\n }\n }\n }\n },\n MD: {\n name: 'Maryland',\n zones: [\n 'America/New_York'\n ],\n days: {\n '3rd monday in February': {\n name: {\n en: \"President's Day\"\n }\n },\n 'friday before 1st monday before 06-01': {\n name: {\n en: 'Service Reduction Day'\n }\n },\n 'friday after 4th thursday in November': {\n name: {\n en: 'Native American Heritage Day'\n }\n }\n }\n },\n MA: {\n name: 'Massachusetts',\n zones: [\n 'America/New_York'\n ],\n days: {\n '03-17': {\n name: {\n en: 'Evacuation Day'\n }\n },\n '3rd monday in April': {\n name: {\n en: \"Patriots' Day\"\n }\n },\n '06-17': {\n name: {\n en: 'Bunker Hill Day'\n }\n }\n }\n },\n MI: {\n name: 'Michigan',\n zones: [\n 'America/Detroit',\n 'America/Menominee'\n ],\n days: {\n '12-24': {\n _name: '12-24'\n },\n '12-31': {\n _name: '12-31'\n }\n }\n },\n MN: {\n name: 'Minnesota',\n zones: [\n 'America/Chicago'\n ],\n days: {\n '3rd monday in February': {\n name: {\n en: \"Washington's and Lincoln's Birthday\"\n }\n },\n '2nd monday in October': {\n name: {\n en: 'Columbus Day'\n },\n active: [\n {\n to: '2017-01-01'\n }\n ]\n },\n '2nd monday in October #1': {\n name: {\n en: 'Indigenous Peoples’ Day'\n },\n active: [\n {\n from: '2017-01-01'\n }\n ]\n }\n }\n },\n MS: {\n name: 'Mississippi',\n zones: [\n 'America/Chicago'\n ],\n days: {\n '3rd monday in January': {\n name: {\n en: \"Martin Luther King's and Robert E. Lee's Birthdays\"\n }\n },\n 'monday before 05-01': {\n name: {\n en: 'Confederate Memorial Day'\n }\n }\n }\n },\n MO: {\n name: 'Missouri',\n zones: [\n 'America/Chicago'\n ],\n days: {\n '02-12': {\n name: {\n en: \"Lincoln's Birthday\"\n }\n },\n '05-08': {\n name: {\n en: 'Truman Day'\n }\n }\n }\n },\n MT: {\n name: 'Montana',\n zones: [\n 'America/Denver'\n ],\n days: {\n '3rd monday in February': {\n name: {\n en: \"Lincoln's and Washington's Birthday\"\n }\n },\n 'tuesday after 1st monday in November': {\n name: {\n en: 'Election Day'\n }\n },\n '12-24': {\n _name: '12-24'\n },\n '12-31': {\n _name: '12-31'\n }\n }\n },\n NE: {\n name: 'Nebraska',\n zones: [\n 'America/Chicago',\n 'America/Denver'\n ],\n days: {\n '3rd monday in February': {\n name: {\n en: \"President's Day\"\n }\n },\n 'friday before 05-01': {\n name: {\n en: 'Arbor Day'\n }\n }\n }\n },\n NV: {\n name: 'Nevada',\n zones: [\n 'America/Los_Angeles'\n ],\n days: {\n '3rd monday in February': {\n name: {\n en: 'Presidents Day'\n }\n },\n '2nd monday in October': false,\n '08-09': {\n name: {\n en: \"Indigenous Peoples' Day\"\n },\n active: [\n {\n from: '2017-01-01'\n }\n ],\n type: 'observance'\n },\n 'friday before 11-01': {\n name: {\n en: 'Nevada Day'\n }\n },\n '4th friday in November': {\n name: {\n en: 'Family Day'\n }\n }\n }\n },\n NH: {\n name: 'New Hampshire',\n zones: [\n 'America/New_York'\n ],\n days: {\n '3rd monday in January': {\n name: {\n en: 'Martin Luther King, Jr./ Civil Rights Day'\n }\n },\n '3rd monday in February': {\n name: {\n en: \"President's Day\"\n }\n },\n '2nd monday in October': {\n type: 'observance'\n },\n 'tuesday after 1st monday in November in even years': {\n name: {\n en: 'Election Day'\n }\n },\n 'friday after 4th thursday in November': {\n name: {\n en: 'Day after Thanksgiving'\n }\n }\n }\n },\n NJ: {\n name: 'New Jersey',\n zones: [\n 'America/New_York'\n ],\n days: {\n '02-12': {\n name: {\n en: \"Lincoln's Birthday\"\n }\n },\n '3rd monday in February': {\n name: {\n en: 'Presidents Day'\n }\n },\n 'easter -2': {\n _name: 'easter -2'\n },\n 'tuesday after 1st monday in November': {\n name: {\n en: 'Election Day'\n }\n }\n }\n },\n NM: {\n name: 'New Mexico',\n zones: [\n 'America/Denver'\n ],\n days: {\n '3rd monday in February': {\n name: {\n en: \"Presidents' Day\"\n }\n },\n 'friday after 4th thursday in November': {\n name: {\n en: 'Day after Thanksgiving'\n }\n }\n }\n },\n NY: {\n name: 'New York',\n zones: [\n 'America/New_York'\n ],\n days: {\n '02-12': {\n name: {\n en: \"Lincoln's Birthday\"\n }\n },\n '02-15': {\n name: {\n en: 'Susan B. Anthony Day'\n }\n },\n 'tuesday after 1st monday in November': {\n name: {\n en: 'Election Day'\n }\n }\n }\n },\n NC: {\n name: 'North Carolina',\n zones: [\n 'America/New_York'\n ],\n days: {\n '3rd monday in February': false,\n '2nd monday in October': false,\n 'easter -2': {\n _name: 'easter -2'\n },\n 'friday after 4th thursday in November': {\n name: {\n en: 'Day after Thanksgiving'\n }\n },\n '12-24 and if friday then previous thursday if saturday,sunday then previous friday': {\n substitute: true,\n _name: '12-24'\n }\n }\n },\n ND: {\n name: 'North Dakota',\n zones: [\n 'America/North_Dakota/Center',\n 'America/North_Dakota/New_Salem',\n 'America/North_Dakota/Beulah'\n ],\n days: {\n '3rd monday in February': {\n name: {\n en: \"Presidents' Day\"\n }\n }\n }\n },\n OH: {\n name: 'Ohio',\n zones: [\n 'America/New_York'\n ],\n days: {\n '3rd monday in February': {\n name: {\n en: 'Washington-Lincoln Day'\n }\n }\n }\n },\n OK: {\n name: 'Oklahoma',\n zones: [\n 'America/Chicago'\n ],\n days: {\n '3rd monday in February': {\n name: {\n en: \"Presidents' Day\"\n }\n },\n 'friday after 4th thursday in November': {\n name: {\n en: 'Day after Thanksgiving'\n }\n }\n }\n },\n OR: {\n name: 'Oregon',\n zones: [\n 'America/Los_Angeles'\n ],\n days: {\n '3rd monday in February': {\n name: {\n en: 'Presidents Day'\n }\n }\n }\n },\n PA: {\n name: 'Pennsylvania',\n zones: [\n 'America/New_York'\n ],\n days: {\n '3rd monday in February': {\n name: {\n en: \"Presidents' Day\"\n }\n },\n '06-14': {\n name: {\n en: 'Flag Day'\n }\n }\n }\n },\n RI: {\n name: 'Rhode Island',\n zones: [\n 'America/New_York'\n ],\n days: {\n '2nd monday in August': {\n name: {\n en: 'Victory Day'\n }\n }\n }\n },\n SC: {\n name: 'South Carolina',\n zones: [\n 'America/New_York'\n ],\n days: {\n '05-10': {\n name: {\n en: 'Confederate Memorial Day'\n }\n },\n '12-26': {\n _name: '12-26'\n }\n }\n },\n SD: {\n name: 'South Dakota',\n zones: [\n 'America/Chicago',\n 'America/Denver'\n ],\n days: {\n '3rd monday in February': {\n name: {\n en: \"Presidents' Day\"\n }\n },\n '2nd monday in October': {\n name: {\n en: 'Columbus Day'\n },\n active: [\n {\n to: '2015-01-01'\n }\n ]\n },\n '2nd monday in October #1': {\n name: {\n en: 'Native American Day'\n },\n active: [\n {\n from: '2015-01-01'\n }\n ]\n }\n }\n },\n TN: {\n name: 'Tennessee',\n zones: [\n 'America/Chicago',\n 'America/New_York'\n ],\n days: {\n '3rd monday in February': {\n name: {\n en: \"President's Day\"\n }\n },\n 'easter -2': {\n _name: 'easter -2'\n },\n '12-24': {\n _name: '12-24'\n }\n }\n },\n TX: {\n name: 'Texas',\n zones: [\n 'America/Chicago',\n 'America/Denver'\n ],\n days: {\n '01-19': {\n name: {\n en: 'Confederate Heroes Day'\n },\n type: 'observance',\n note: 'state agencies are partially staffed'\n },\n '3rd monday in February': {\n name: {\n en: \"Presidents' Day\"\n }\n },\n '03-02': {\n name: {\n en: 'Texas Independence Day'\n },\n type: 'observance',\n note: 'state agencies are partially staffed'\n },\n '03-31': {\n name: {\n en: 'Cesar Chavez Day'\n },\n type: 'observance'\n },\n 'easter -2': {\n _name: 'easter -2',\n type: 'observance'\n },\n '04-21': {\n name: {\n en: 'San Jacinto Day'\n },\n type: 'observance',\n note: 'state agencies are partially staffed'\n },\n '06-19': {\n name: {\n en: 'Emancipation Day In Texas'\n },\n type: 'observance',\n note: 'state agencies are partially staffed'\n },\n '08-27': {\n name: {\n en: 'Lyndon Baines Johnson Day'\n },\n type: 'observance',\n note: 'state agencies are partially staffed'\n },\n 'friday after 4th thursday in November': {\n name: {\n en: 'Day after Thanksgiving'\n }\n },\n '12-24': {\n _name: '12-24'\n },\n '12-26': {\n _name: '12-26',\n name: {\n en: 'Day after Christmas'\n }\n }\n }\n },\n UT: {\n name: 'Utah',\n zones: [\n 'America/Denver'\n ],\n days: {\n '3rd monday in February': {\n name: {\n en: 'Washington and Lincoln Day'\n }\n },\n '07-24': {\n name: {\n en: 'Pioneer Day'\n }\n }\n }\n },\n VT: {\n name: 'Vermont',\n zones: [\n 'America/New_York'\n ],\n days: {\n '3rd monday in February': {\n name: {\n en: \"Presidents' Day\"\n }\n },\n '1st tuesday in March': {\n name: {\n en: 'Town Meeting Day'\n }\n },\n '3rd monday in August': {\n name: {\n en: 'Bennington Battle Day'\n }\n },\n '2nd monday in October': {\n name: {\n en: 'Columbus Day'\n },\n active: [\n {\n to: '2017-09-01'\n }\n ]\n },\n '2nd monday in October #1': {\n name: {\n en: \"Indigenous Peoples' Day\"\n },\n active: [\n {\n from: '2017-09-01'\n }\n ]\n }\n }\n },\n VA: {\n name: 'Virginia',\n zones: [\n 'America/New_York'\n ],\n days: {\n '3rd monday in February': {\n name: {\n en: 'George Washington Day'\n }\n },\n 'friday before 3rd monday in January': {\n name: {\n en: 'Lee–Jackson Day'\n }\n }\n }\n },\n WA: {\n name: 'Washington',\n zones: [\n 'America/Los_Angeles'\n ],\n days: {\n '3rd monday in February': {\n name: {\n en: \"Presidents' Day\"\n }\n }\n }\n },\n WV: {\n name: 'West Virginia',\n zones: [\n 'America/New_York'\n ],\n days: {\n '02-15': {\n name: {\n en: 'Susan B. Anthony Day'\n }\n },\n '3rd monday in February': {\n name: {\n en: \"President's Day\"\n }\n },\n '06-20': {\n name: {\n en: 'West Virginia Day'\n }\n },\n '4th friday in November': {\n name: {\n en: \"Lincoln's Day\"\n }\n }\n }\n },\n WI: {\n name: 'Wisconsin',\n zones: [\n 'America/Chicago'\n ],\n days: {\n '02-15': {\n name: {\n en: 'Susan B. Anthony Day'\n }\n },\n '2nd tuesday in September': {\n name: {\n en: 'Primary Election Day'\n }\n },\n 'tuesday after 1st monday in November': {\n name: {\n en: 'Election Day'\n }\n }\n }\n },\n WY: {\n name: 'Wyoming',\n zones: [\n 'America/Denver'\n ],\n days: {\n '3rd monday in February': {\n name: {\n en: \"President's Day\"\n }\n }\n }\n }\n }\n },\n UY: {\n names: {\n es: 'Uruguay',\n en: 'Uruguay'\n },\n dayoff: 'sunday',\n langs: [\n 'es'\n ],\n zones: [\n 'America/Montevideo'\n ],\n days: {\n '01-01': {\n _name: '01-01'\n },\n '01-06': {\n _name: '01-06',\n type: 'observance'\n },\n 'easter -48': {\n name: {\n en: 'Carnival',\n es: 'Carnaval'\n },\n type: 'observance'\n },\n 'easter -47': {\n _name: 'easter -47',\n type: 'observance'\n },\n 'easter -6 P5D': {\n name: {\n en: 'Tourism Week',\n es: 'Semana de Turismo'\n },\n type: 'observance'\n },\n 'easter -3': {\n _name: 'easter -3'\n },\n 'easter -2': {\n _name: 'easter -2'\n },\n easter: {\n _name: 'easter',\n type: 'observance'\n },\n '04-19 if tuesday,wednesday then previous monday if thursday,friday then next monday': {\n name: {\n en: 'Landing of the 33 Orientals',\n es: 'Desembarco de los 33 Orientales'\n },\n type: 'observance'\n },\n '05-01': {\n _name: '05-01'\n },\n '05-18 if tuesday,wednesday then previous monday if thursday,friday then next monday': {\n name: {\n en: 'Battle of Las Piedras',\n es: 'Batalla de las Piedras'\n },\n type: 'observance'\n },\n '06-19': {\n name: {\n en: 'Birthday of José Gervasio Artigas and Never Again Day',\n es: 'Natalicio de Artigas y Día del Nunca Más'\n },\n type: 'observance'\n },\n '07-18': {\n _name: 'Constitution Day'\n },\n '08-25': {\n _name: 'Independence Day'\n },\n '10-12 if tuesday,wednesday then previous monday if thursday,friday then next monday': {\n name: {\n en: 'Columbus Day',\n es: 'Día de la Raza'\n },\n type: 'observance'\n },\n '11-02': {\n _name: '11-02',\n type: 'observance'\n },\n '12-24': {\n _name: '12-24',\n type: 'observance'\n },\n '12-25': {\n _name: '12-25'\n },\n '12-31': {\n _name: '12-31',\n type: 'observance'\n }\n }\n },\n VA: {\n names: {\n it: 'Stato della Città del Vaticano',\n la: 'Status Civitatis Vaticanae',\n en: 'Vatican City'\n },\n langs: [\n 'it'\n ],\n zones: [\n 'Europe/Rome'\n ],\n dayoff: 'sunday',\n days: {\n '01-01': {\n name: {\n en: 'Solemnity of Mary, Mother of God',\n it: 'Maria Santissima Madre di Dio'\n }\n },\n '01-06': {\n name: {\n en: 'Epiphany',\n it: 'Epifania del Signore'\n }\n },\n '02-11': {\n name: {\n en: 'Anniversary of the foundation of Vatican City',\n it: 'Anniversario della istituzione dello Stato della Città del Vaticano'\n }\n },\n '03-19': {\n _name: '03-19'\n },\n 'easter 1': {\n _name: 'easter 1'\n },\n 'easter 39': {\n _name: 'easter 39',\n active: [\n {\n to: 2009\n }\n ]\n },\n 'easter 60': {\n _name: 'easter 60',\n active: [\n {\n to: 2009\n }\n ]\n },\n '05-01': {\n _name: '05-01',\n name: {\n en: 'Saint Joseph the Worker',\n it: 'San Giuseppe lavoratore'\n }\n },\n '06-29': {\n _name: '06-29'\n },\n '08-15': {\n _name: '08-15',\n name: {\n it: 'Assunzione di Maria in Cielo'\n }\n },\n '09-08': {\n name: {\n en: 'Nativity of Mary',\n it: 'Festa della natività della madonna'\n }\n },\n '11-01': {\n _name: '11-01'\n },\n '12-08': {\n _name: '12-08'\n },\n '12-25': {\n _name: '12-25'\n },\n '12-26': {\n _name: '12-26'\n },\n '10-16': {\n name: {\n en: 'Anniversary of the election of Pope John Paul II',\n it: \"Anniversario dell'Elezione del Santo Padre\"\n },\n active: [\n {\n from: 1978,\n to: 2005\n }\n ]\n },\n '11-04': {\n name: {\n en: 'Saint Charles Borromeo - Name day of the Holy Father',\n it: 'San Carlo Borromeo - Onomastico del Santo Padre'\n },\n note: 'Name day of Pope John Paul II (Karol Józef Wojtyła)',\n active: [\n {\n from: 1978,\n to: 2005\n }\n ]\n },\n '04-19': {\n name: {\n en: 'Anniversary of the election of Pope Benedict XVI',\n it: \"Anniversario dell'Elezione del Santo Padre\"\n },\n active: [\n {\n from: 2005,\n to: 2013\n }\n ]\n },\n '03-19#1': {\n name: {\n en: 'Saint Joseph - Name day of the Holy Father',\n it: 'San Giuseppe - Onomastico del Santo Padre'\n },\n note: 'Name day of Pope Benedict XVI (Josef Ratzinger)',\n active: [\n {\n from: 2005,\n to: 2013\n }\n ]\n },\n '03-13': {\n name: {\n en: 'Anniversary of the election of Pope Francis',\n it: \"Anniversario dell'Elezione del Santo Padre\"\n },\n active: [\n {\n from: 2013\n }\n ]\n },\n '04-23': {\n name: {\n en: 'Saint George - Name day of the Holy Father',\n it: 'San Giorgio - Onomastico del Santo Padre'\n },\n note: 'Name day of Pope Francis (Jorge Mario Bergoglio)',\n active: [\n {\n from: 2013\n }\n ]\n }\n }\n },\n VC: {\n names: {\n en: 'St. Vincent & Grenadines'\n },\n langs: [\n 'en'\n ],\n zones: [\n 'America/Port_of_Spain'\n ],\n dayoff: 'sunday',\n days: {\n '01-01 and if Sunday then next Monday': {\n substitute: true,\n _name: '01-01'\n },\n '03-14 and if Sunday then next Monday': {\n substitute: true,\n name: {\n en: 'National Hero′s Day'\n }\n },\n 'easter -2': {\n _name: 'easter -2'\n },\n easter: {\n _name: 'easter',\n type: 'observance'\n },\n 'easter 1': {\n _name: 'easter 1'\n },\n '05-01 and if Sunday then next Monday': {\n substitute: true,\n _name: '05-01'\n },\n 'easter 50': {\n _name: 'easter 50'\n },\n '1st Monday in July': {\n name: {\n en: 'Carnival Monday'\n },\n disable: [\n '2021-06-05'\n ],\n enable: [\n '2021-09-06'\n ]\n },\n 'Tuesday after 1st Monday in July': {\n name: {\n en: 'Carnival Tuesday'\n },\n disable: [\n '2021-06-06'\n ],\n enable: [\n '2021-09-07'\n ]\n },\n '08-01 and if Sunday then next Monday': {\n substitute: true,\n name: {\n en: 'Emancipation Day'\n }\n },\n '10-27 and if Sunday then next Monday': {\n substitute: true,\n _name: 'Independence Day'\n },\n '12-25 and if Sunday then next Tuesday': {\n substitute: true,\n _name: '12-25'\n },\n '12-26 and if Sunday then next Monday': {\n substitute: true,\n _name: '12-26'\n }\n }\n },\n VE: {\n names: {\n es: 'Venezuela',\n en: 'Venezuela'\n },\n dayoff: 'sundays',\n langs: [\n 'es'\n ],\n zones: [\n 'America/Caracas'\n ],\n days: {\n '01-01': {\n _name: '01-01'\n },\n '01-06': {\n _name: '01-06',\n type: 'observance'\n },\n '01-15': {\n name: {\n es: 'Día del Maestro',\n en: \"Teacher's Day\"\n },\n type: 'optional',\n note: 'teachers only'\n },\n '03-19': {\n _name: '03-19',\n type: 'observance'\n },\n 'easter -48': {\n name: {\n en: 'Carnival',\n es: 'Carnaval'\n }\n },\n 'easter -47': {\n _name: 'easter -47'\n },\n 'easter -6 P7D': {\n name: {\n en: 'Holy Week',\n es: 'Semana Santa'\n },\n type: 'observance'\n },\n 'easter -3': {\n _name: 'easter -3'\n },\n 'easter -2': {\n _name: 'easter -2'\n },\n easter: {\n _name: 'easter'\n },\n '04-19': {\n name: {\n en: 'Declaration of Independence',\n es: 'Declaración de la Independencia'\n }\n },\n '05-01': {\n _name: '05-01'\n },\n '06-24': {\n name: {\n en: 'Battle of Carabobo',\n es: 'Aniversario de la Batalla de Carabobo'\n }\n },\n '07-05': {\n _name: 'Independence Day'\n },\n '07-24': {\n name: {\n en: 'Birthday of Simón Bolívar',\n es: 'Natalicio de Simón Bolívar'\n }\n },\n '08-03': {\n name: {\n en: 'Flag Day',\n es: 'Día de la Bandera'\n },\n type: 'observance'\n },\n '09-11': {\n name: {\n en: 'Our Lady of Coromoto',\n es: 'Día de Nuestra Señora de Coromoto'\n },\n type: 'observance'\n },\n '10-12': {\n name: {\n en: 'Day of Indigenous Resistance',\n es: 'Día de la resistencia indígena'\n }\n },\n '11-01': {\n _name: '11-01',\n type: 'observance'\n },\n '11-02': {\n _name: '11-02',\n type: 'observance'\n },\n '12-08': {\n _name: '12-08',\n type: 'observance'\n },\n '12-10': {\n name: {\n en: 'Venezuelan Air Force Day',\n es: 'Día de la Aviación Nacional'\n },\n type: 'observance'\n },\n '12-24': {\n _name: '12-24'\n },\n '12-25': {\n _name: '12-25'\n },\n '12-31': {\n _name: '12-31'\n }\n },\n states: {\n B: {\n name: 'Anzoátegui',\n days: {\n '11-14': {\n name: {\n es: 'Natalicio de José Antonio Anzoátegui'\n }\n }\n }\n },\n G: {\n name: 'Carabobo',\n days: {\n '11-13': {\n name: {\n es: 'Día de la Virgen del Socorro'\n }\n }\n }\n },\n K: {\n name: 'Lara',\n days: {\n '01-14': {\n name: {\n es: 'Día de La Divina Pastora'\n }\n },\n '05-28': {\n name: {\n es: 'Natalicio de Jacinto Lara'\n }\n }\n },\n regions: {\n BA: {\n name: 'Barquisimeto',\n days: {\n '09-14': {\n name: {\n es: 'Día de Barquisimeto'\n }\n }\n }\n }\n }\n },\n M: {\n name: 'Miranda',\n days: {\n '03-19': {\n _name: '03-19'\n }\n }\n },\n N: {\n name: 'Monagas',\n days: {\n '12-07': {\n name: {\n es: 'Día de Maturin'\n }\n }\n }\n },\n S: {\n name: 'Táchira',\n days: {\n '08-15': {\n _name: '08-15',\n name: {\n es: 'Día de la Virgen de Consolación'\n }\n }\n }\n },\n V: {\n name: 'Zulia',\n days: {\n '10-24': {\n name: {\n es: 'Natalicio de Rafael Urdaneta'\n }\n },\n '11-18': {\n name: {\n es: 'Día de la Virgen de la Chinita'\n }\n }\n }\n }\n }\n },\n VG: {\n names: {\n en: 'British Virgin Islands'\n },\n langs: [\n 'en'\n ],\n zones: [\n 'America/Port_of_Spain'\n ],\n dayoff: 'sunday',\n days: {\n '01-01': {\n _name: '01-01'\n },\n 'Monday before 03-08': {\n name: {\n en: 'The Anniversary of the Birth of Hamilton Lavity Stoutt'\n }\n },\n '2nd Monday in March': {\n name: {\n en: 'Commonwealth Day'\n }\n },\n 'easter -2': {\n _name: 'easter -2'\n },\n easter: {\n _name: 'easter',\n type: 'observance'\n },\n 'easter 1': {\n _name: 'easter 1'\n },\n 'easter 49': {\n _name: 'easter 49',\n type: 'observance'\n },\n 'easter 50': {\n _name: 'easter 50'\n },\n '2nd Saturday after 06-02 prior to 2020': {\n name: {\n en: 'Sovereign’s Birthday'\n },\n disable: [\n '2017-06-10',\n '2019-06-15'\n ],\n enable: [\n '2017-06-17',\n '2019-06-07'\n ]\n },\n '2nd Friday after 06-02 since 2020': {\n name: {\n en: 'Sovereign’s Birthday'\n }\n },\n '07-01 if Sunday,Thursday then next Monday if Saturday then previous Friday if Tuesday,Wednesday then previous Monday': {\n name: {\n en: 'Virgin Islands Day'\n }\n },\n '10-21 if Sunday then next Monday if Saturday then previous Friday if Tuesday,Wednesday then previous Monday if Thursday then next Friday': {\n name: {\n en: 'St. Ursula’s Day'\n },\n disable: [\n '2016-10-23',\n '2020-10-19',\n '2021-10-22'\n ],\n enable: [\n '2016-10-19',\n '2020-10-23'\n ]\n },\n '1st Monday in August': {\n name: {\n en: 'Emancipation Monday'\n }\n },\n 'Tuesday after 1st Monday in August': {\n name: {\n en: 'Emancipation Tuesday'\n }\n },\n 'Wednesday after 1st Monday in August': {\n name: {\n en: 'Emancipation Wednesday'\n }\n },\n '2021-10-18': {\n name: {\n en: 'Heroes’ and Forefathers Day'\n }\n },\n '2021-11-08': {\n name: {\n en: 'Commemoration of the Great March of 1949'\n }\n },\n '12-25 and if Saturday then next Monday if Sunday then next Tuesday': {\n substitute: true,\n _name: '12-25'\n },\n '12-26 and if Saturday then next Monday if Sunday then next Tuesday': {\n substitute: true,\n _name: '12-26'\n }\n }\n },\n VI: {\n names: {\n en: 'U.S. Virgin Islands'\n },\n langs: [\n 'en'\n ],\n zones: [\n 'America/Port_of_Spain'\n ],\n dayoff: 'sunday',\n _days: 'US',\n days: {\n '01-06': {\n _name: '01-06',\n name: {\n en: 'Three Kings Day'\n }\n },\n '3rd monday in February': {\n name: {\n en: \"President's Day\"\n }\n },\n '03-17': false,\n '03-31': {\n name: {\n en: 'Transfer Day'\n }\n },\n 'easter -3': {\n _name: 'easter -3'\n },\n 'easter -2': {\n _name: 'easter -2'\n },\n 'easter 1': {\n _name: 'easter 1'\n },\n '07-03': {\n name: {\n en: 'Emancipation Day'\n }\n },\n '4th Monday in July': {\n name: {\n en: 'Hurricane Supplication Day'\n }\n },\n '2nd monday in October': {\n name: {\n en: 'Virgin Islands–Puerto Rico Friendship Day'\n }\n },\n '10-25': {\n name: {\n en: 'Hurricane Thanksgiving'\n },\n type: 'observance'\n },\n 'friday after 4th thursday in November': {\n name: {\n en: 'Day after Thanksgiving Day'\n },\n type: 'school'\n }\n }\n },\n VN: {\n names: {\n vi: 'Cộng hòa Xã hội chủ nghĩa Việt Nam',\n en: 'Vietnam'\n },\n dayoff: '',\n langs: [\n 'vi'\n ],\n zones: [\n 'Asia/Ho_Chi_Minh',\n 'Asia/Bangkok'\n ],\n days: {\n '01-01': {\n _name: '01-01'\n },\n 'vietnamese 1-0-1': {\n name: {\n en: 'Vietnamese New Year',\n vi: 'Tết Nguyên Đán'\n }\n },\n '1 day before vietnamese 1-0-1 P5D': {\n name: {\n en: 'Vietnamese New Year Holidays',\n vi: 'Giao thừa Tết Nguyên Đán'\n }\n },\n 'vietnamese 3-0-10': {\n name: {\n en: 'Hung Kings Commemorations',\n vi: 'Giỗ tổ Hùng Vương'\n }\n },\n '04-30': {\n name: {\n en: 'Day of liberating the South for national reunification',\n vi: 'Ngày Giải phóng miền Nam'\n }\n },\n '05-01': {\n _name: '05-01'\n },\n '09-02': {\n name: {\n en: 'National Day',\n vi: 'Quốc khánh'\n }\n },\n '02-03': {\n name: {\n en: 'Communist Party of Viet Nam Foundation Anniversary',\n vi: 'Ngày thành lập Đảng'\n },\n type: 'observance'\n },\n '03-08': {\n _name: '03-08',\n type: 'observance'\n },\n '04-21': {\n name: {\n en: 'Vietnam Book Day',\n vi: 'Ngày Sách Việt Nam'\n },\n type: 'observance'\n },\n '05-07': {\n name: {\n en: 'Dien Bien Phu Victory Day',\n vi: 'Ngày Chiến thắng Điện Biện Phủ'\n },\n type: 'observance'\n },\n '05-19': {\n name: {\n en: \"President Ho Chi Minh's Birthday\",\n vi: 'Ngày sinh Chủ tịch Hồ Chí Minh'\n },\n type: 'observance'\n },\n '06-01': {\n name: {\n en: \"International Children's Day\",\n vi: 'Ngày quốc tế Thiếu nhi'\n },\n type: 'observance'\n },\n '06-28': {\n name: {\n en: 'Vietnamese Family Day',\n vi: 'Ngày Gia đình Việt Nam'\n },\n type: 'observance'\n },\n '07-27': {\n name: {\n en: 'Remembrance Day',\n vi: 'Ngày Thương Binh Liệt Sĩ'\n },\n type: 'observance'\n },\n '08-19': {\n name: {\n en: 'August Revolution Commemoration Day',\n vi: 'Ngày cách mạng Tháng Tám'\n },\n type: 'observance'\n },\n '10-10': {\n name: {\n en: 'Capital Liberation Day',\n vi: 'Ngày giải phóng Thủ Đô'\n },\n type: 'observance'\n },\n '10-20': {\n name: {\n en: \"Vietnamese Women's Day\",\n vi: 'Ngày Phụ nữ Việt Nam'\n },\n type: 'observance'\n },\n '11-20': {\n name: {\n en: \"Vietnamese Teacher's Day\",\n vi: 'Ngày Nhà giáo Việt Nam'\n },\n type: 'observance'\n },\n '12-22': {\n name: {\n en: 'National Defence Day',\n vi: 'Ngày hội Quốc phòng Toàn dân'\n },\n type: 'observance'\n },\n 'vietnamese 1-0-5': {\n name: {\n en: 'Victory of Ngọc Hồi-Đống Đa',\n vi: 'Chiến thắng Ngọc Hồi - Đống Đa'\n },\n type: 'observance'\n },\n 'vietnamese 1-0-15': {\n name: {\n en: 'Lantern Festival',\n vi: 'Tết Nguyên Tiêu'\n },\n type: 'observance'\n },\n 'vietnamese 4-0-15': {\n name: {\n en: \"Buddha's Birthday\",\n vi: 'Lễ Phật đản'\n },\n type: 'observance'\n },\n 'vietnamese 5-0-5': {\n name: {\n en: 'Mid-year Festival',\n vi: 'Tết Đoan ngọ'\n },\n type: 'observance'\n },\n 'vietnamese 7-0-15': {\n name: {\n en: 'Ghost Festival',\n vi: 'Rằm Tháng Bảy, Vu Lan'\n },\n type: 'observance'\n },\n 'vietnamese 8-0-15': {\n name: {\n en: 'Mid-Autumn Festival',\n vi: 'Tết Trung thu'\n },\n type: 'observance'\n },\n 'vietnamese 12-0-23': {\n name: {\n en: 'Kitchen guardians',\n vi: 'Ông Táo chầu trời'\n },\n type: 'observance'\n }\n }\n },\n VU: {\n names: {\n en: 'Vanuatu',\n fr: 'République de Vanuatu'\n },\n langs: [\n 'fr',\n 'en',\n 'bi'\n ],\n zones: [\n 'Pacific/Efate'\n ],\n dayoff: 'sunday',\n days: {\n '01-01': {\n _name: '01-01'\n },\n '02-21': {\n name: \"Mémoire du père de l'indépendance Rév. Dr. W.H. Lini\"\n },\n '02-22': {\n _name: 'Public Holiday'\n },\n '03-05': {\n name: 'Fête des chefs coutumiers'\n },\n 'easter -2': {\n _name: 'easter -2'\n },\n 'easter 1': {\n _name: 'easter 1'\n },\n '05-01': {\n _name: '05-01'\n },\n 'easter 39': {\n _name: 'easter 39'\n },\n '07-24': {\n name: 'Journée Mondiale des Enfants'\n },\n '07-30': {\n _name: 'Independence Day'\n },\n '08-15': {\n _name: '08-15'\n },\n '08-16': {\n _name: 'Public Holiday'\n },\n '10-05': {\n _name: 'Constitution Day'\n },\n '10-29': {\n name: \"Jour de l'Unité\"\n },\n '12-25': {\n _name: '12-25'\n },\n '12-26': {\n name: 'Fête de Famille'\n },\n '12-27': {\n _name: 'Public Holiday'\n }\n }\n },\n XK: {\n names: {\n sq: 'Republika e Kosovës',\n sr: 'Република Косово',\n en: 'Kosovo'\n },\n langs: [\n 'sq',\n 'sr'\n ],\n zones: [\n 'Europe/Belgrade'\n ],\n dayoff: 'sunday',\n days: {\n '01-01': {\n _name: '01-01'\n },\n 'julian 12-25': {\n _name: 'julian 12-25'\n },\n '02-17': {\n _name: 'Independence Day'\n },\n '04-09': {\n _name: 'Constitution Day'\n },\n easter: {\n _name: 'easter'\n },\n orthodox: {\n _name: 'orthodox'\n },\n '05-01': {\n _name: '05-01'\n },\n '05-09': {\n _name: '05-09'\n },\n '12-25': {\n _name: '12-25'\n },\n '1 Shawwal': {\n _name: '1 Shawwal'\n },\n '10 Dhu al-Hijjah': {\n _name: '10 Dhu al-Hijjah'\n }\n }\n },\n YT: {\n names: {\n fr: 'Mayotte',\n en: 'Mayotte'\n },\n langs: [\n 'fr'\n ],\n zones: [\n 'Africa/Nairobi'\n ],\n dayoff: 'sunday',\n _days: 'FR',\n days: {\n '04-27': {\n _name: 'Abolition of Slavery'\n }\n }\n },\n ZA: {\n names: {\n en: 'South Africa'\n },\n dayoff: 'sunday',\n langs: [\n 'en'\n ],\n zones: [\n 'Africa/Johannesburg'\n ],\n days: {\n '01-01': {\n _name: '01-01'\n },\n 'substitutes 01-01 if sunday then next monday': {\n name: {\n en: 'Public Holiday'\n }\n },\n '03-21': {\n name: {\n en: 'Human Rights Day'\n }\n },\n 'substitutes 03-21 if sunday then next monday': {\n name: {\n en: 'Public Holiday'\n }\n },\n 'easter -2': {\n _name: 'easter -2'\n },\n easter: {\n _name: 'easter',\n type: 'observance'\n },\n 'easter 1': {\n _name: 'easter 1',\n name: {\n en: 'Family Day'\n }\n },\n '04-27': {\n name: {\n en: 'Freedom Day'\n }\n },\n 'substitutes 04-27 if sunday then next monday': {\n name: {\n en: 'Public Holiday'\n }\n },\n '05-01': {\n _name: '05-01',\n name: {\n en: \"Workers' Day\"\n }\n },\n 'substitutes 05-01 if sunday then next monday': {\n name: {\n en: 'Public Holiday'\n }\n },\n '2nd sunday in May': {\n _name: 'Mothers Day',\n type: 'observance'\n },\n '06-16': {\n name: {\n en: 'Youth Day'\n }\n },\n 'substitutes 06-16 if sunday then next monday': {\n name: {\n en: 'Public Holiday'\n }\n },\n '3rd sunday in June': {\n _name: 'Fathers Day',\n type: 'observance'\n },\n '08-09': {\n name: {\n en: \"National Women's Day\"\n }\n },\n 'substitutes 08-09 if sunday then next monday': {\n name: {\n en: 'Public Holiday'\n }\n },\n '07-18': {\n name: {\n en: 'Nelson Mandela Day'\n },\n type: 'observance'\n },\n '09-24': {\n name: {\n en: 'Heritage Day'\n }\n },\n 'substitutes 09-24 if sunday then next monday': {\n name: {\n en: 'Public Holiday'\n }\n },\n '12-16': {\n name: {\n en: 'Day of Reconciliation'\n }\n },\n 'substitutes 12-16 if sunday then next monday': {\n name: {\n en: 'Public Holiday'\n }\n },\n '12-25': {\n _name: '12-25'\n },\n '12-26': {\n _name: '12-26',\n name: {\n en: 'Day of Goodwill'\n }\n },\n 'substitutes 12-26 if sunday then next monday': {\n name: {\n en: 'Public Holiday'\n }\n }\n }\n },\n ZM: {\n names: {\n en: 'Zambia'\n },\n dayoff: 'sunday',\n langs: [\n 'en'\n ],\n zones: [\n 'Africa/Maputo'\n ],\n days: {\n '01-01 and if sunday then next monday': {\n substitute: true,\n _name: '01-01'\n },\n '03-09': {\n name: {\n en: 'Women’s Day'\n }\n },\n '03-12 and if sunday then next monday': {\n substitute: true,\n name: {\n en: 'Youth Day'\n }\n },\n 'easter -2': {\n _name: 'easter -2'\n },\n 'easter 1': {\n _name: 'easter 1'\n },\n '05-01 and if sunday then next monday': {\n substitute: true,\n _name: '05-01'\n },\n '05-25 and if sunday then next monday': {\n substitute: true,\n name: {\n en: 'African Freedom Day'\n }\n },\n '1st monday in July': {\n name: {\n en: \"Heroes' Day\"\n }\n },\n 'tuesday after 1st monday in July': {\n name: {\n en: 'Unity Day'\n }\n },\n '1st monday in August': {\n name: {\n en: \"Farmers' Day\"\n }\n },\n '2015-10-18': {\n name: {\n en: 'National day of Prayers'\n }\n },\n '10-24 and if sunday then next monday': {\n substitute: true,\n _name: 'Independence Day'\n },\n '12-25 and if sunday then next monday': {\n substitute: true,\n _name: '12-25'\n }\n }\n },\n ZW: {\n names: {\n sn: 'Nyika yeZimbabwe',\n nd: 'iRiphabhuliki yeZimbabwe',\n xh: 'iRiphubliki eyeZimbabwe',\n kck: 'Nyika yeZimbabwe',\n en: 'Zimbabwe'\n },\n dayoff: 'sunday',\n langs: [\n 'en'\n ],\n zones: [\n 'Africa/Maputo'\n ],\n days: {\n '01-01': {\n _name: '01-01'\n },\n 'easter -2': {\n _name: 'easter -2'\n },\n easter: {\n _name: 'easter',\n type: 'observance'\n },\n 'easter 1': {\n _name: 'easter 1'\n },\n '04-18': {\n _name: 'Independence Day'\n },\n '05-01': {\n _name: '05-01'\n },\n '05-25': {\n name: {\n en: 'Africa Day'\n }\n },\n '2nd sunday in May': {\n _name: 'Mothers Day',\n type: 'observance'\n },\n '3rd sunday in June': {\n _name: 'Fathers Day',\n type: 'observance'\n },\n '2nd monday in August': {\n name: {\n en: \"Heroes' Day\"\n }\n },\n '2nd tuesday in August': {\n name: {\n en: 'Defence Forces Day'\n }\n },\n '12-22': {\n name: {\n en: 'Unity Day'\n }\n },\n '12-25': {\n _name: '12-25'\n },\n '12-26': {\n _name: '12-26'\n }\n }\n }\n },\n names: {\n '01-01': {\n name: {\n en: \"New Year's Day\",\n am: 'እንቁጣጣሽ',\n ar: 'عيد رأس السنة',\n az: 'Yeni il',\n be: 'Новы год',\n bg: 'Нова Година',\n bs: 'Novogodisnji dan',\n ca: 'Any nou',\n cz: 'Nový rok',\n da: 'Nytår',\n de: 'Neujahr',\n el: 'Πρωτοχρονιά',\n es: 'Año Nuevo',\n et: 'uusaasta',\n fi: 'Uudenvuodenpäivä',\n fil: 'Araw ng Bagong Taon',\n fo: 'Nýggjársdagur',\n fr: 'Nouvel An',\n ge: 'ახალი წელი',\n hr: 'Nova godina',\n hu: 'Újév',\n hy: 'Ամանոր',\n id: 'Hari tahun baru',\n it: 'Capodanno',\n is: 'Nýársdagur',\n jp: '元日',\n kl: 'ukiortaaq',\n ko: '신정',\n lb: 'Neijoerschdag',\n lt: 'Naujieji metai',\n lv: 'Jaunais Gads',\n mg: 'Taom-baovao',\n mk: 'Нова Година',\n ms: 'Hari Tahun Baru',\n mt: 'L-Ewwel tas-Sena',\n nl: 'Nieuwjaar',\n no: 'Første nyttårsdag',\n pap: 'Aña Nobo',\n pl: 'Nowy Rok',\n pt: 'Ano Novo',\n ro: 'Anul nou',\n ru: 'Новый год',\n sl: 'Novo leto',\n sq: 'Viti i Ri',\n sr: 'Нова година',\n sv: 'Nyårsdagen',\n sw: 'Mwaka mpya',\n ti: 'ሓዲሽ ዓመት',\n tr: 'Yılbaşı',\n uk: 'Новий Рік',\n vi: 'Tết Dương lịch',\n zh: '元旦'\n }\n },\n '01-06': {\n name: {\n en: 'Epiphany',\n am: 'ብርሐነ ጥምቀት',\n da: 'Åbenbaring',\n de: 'Heilige Drei Könige',\n 'de-ch': 'Dreikönigstag',\n es: 'Día de los Reyes Magos',\n et: 'kolmekuningapäev',\n fi: 'Loppiainen',\n fr: \"l'Épiphanie\",\n el: 'Θεοφάνεια',\n hr: 'Bogojavljenje, Sveta tri kralja',\n hu: 'Vízkereszt',\n it: 'Befana',\n is: 'Þrettándinn',\n lb: 'Dräikinneksdag',\n nl: 'Driekoningen',\n mk: 'Богојавление',\n pl: 'Święto Trzech Króli',\n sk: 'Zjavenie Pána',\n sv: 'Trettondedag jul',\n ti: 'ጥምቀት',\n vi: 'Lễ Hiển Linh'\n }\n },\n '02-02': {\n name: {\n en: 'Candlemas',\n de: 'Lichtmess',\n hu: 'Gyertyaszentelő Boldogasszony',\n lb: 'Liichtmëssdag',\n nl: 'Lichtmis',\n vi: 'Lễ Đức Mẹ dâng Chúa Giêsu trong đền thánh'\n }\n },\n '02-14': {\n name: {\n en: \"Valentine's Day\",\n de: 'Valentinstag',\n fr: 'Saint-Valentin',\n hu: 'Valentin nap',\n lb: 'Vältesdag',\n nl: 'Valentijnsdag',\n vi: 'Lễ tình nhân'\n }\n },\n '03-08': {\n name: {\n en: \"International Women's Day\",\n az: 'Qadınlar günü',\n be: 'Мiжнародны жаночы дзень',\n bg: 'Ден на жената',\n de: 'Internationaler Frauentag',\n fr: 'Journée internationale des femmes',\n ge: 'ქალთა საერთაშორისო დღე',\n hu: 'Nemzetközi nőnap',\n hy: 'Կանանց տոն',\n lb: 'Internationale Fraendag',\n nl: 'Internationale Vrouwendag',\n pt: 'Dia Internacional da Mulher',\n ro: 'Ziua Internationala a Femeii',\n ru: 'Международный женский день',\n sl: 'Mednarodni dan žena',\n uk: 'Міжнародний жіночий день',\n vi: 'Quốc tế Phụ nữ',\n zh: '国际妇女节',\n ti: 'መዓልቲ ኣነስቲ'\n }\n },\n '03-19': {\n name: {\n en: 'Saint Joseph',\n 'de-at': 'Josefitag',\n de: 'Josefstag',\n es: 'San José',\n it: 'San Giuseppe',\n mt: 'San Ġużepp',\n nl: 'Hoogfeest van de Heilige Jozef',\n vi: 'Kính Thánh Giuse'\n }\n },\n '04-01': {\n name: {\n en: \"April Fools' Day\",\n hu: 'Bolondok napja',\n nl: '1 April',\n sq: 'Dita e Gënjeshtrave',\n vi: 'Cá tháng tư'\n }\n },\n '05-01': {\n name: {\n en: 'Labour Day',\n 'en-us': 'Labor Day',\n ar: 'يوم العمال',\n be: 'Дзень працы',\n bg: 'Ден на труда',\n bs: 'Radni dan',\n cz: 'Svátek práce',\n da: '1. maj',\n de: 'Tag der Arbeit',\n el: 'Εργατική Πρωτομαγιά',\n es: 'Día del trabajador',\n et: 'kevadpüha',\n fi: 'Vappu',\n fil: 'Araw ng mga Manggagawa',\n fr: 'Fête du travail',\n hr: 'Praznik rada',\n hu: 'A munka ünnepe',\n hy: 'Աշխատանքի օր',\n id: 'Hari Buruh Internasional',\n it: 'Festa del Lavoro',\n is: 'Hátíðisdagur Verkamanna',\n lb: 'Éischte Mee',\n lt: 'Tarptautinė darbo diena',\n lv: 'Darba svētki',\n nl: 'Dag van de Arbeid',\n no: 'Arbeidernes dag',\n mg: \"Fetin'ny asa\",\n mk: 'Ден на трудот',\n ms: 'Hari Pekerja',\n mt: 'Jum il-Ħaddiem',\n pap: 'Dia di Obrero',\n pl: 'Święto Pracy',\n pt: 'Dia do trabalhador',\n ro: 'Ziua muncii',\n sk: 'Sviatok práce',\n sl: 'Praznik dela',\n sq: 'Dita Ndërkombëtare e Punonjësve',\n sr: 'Празник рада',\n sv: 'Första Maj',\n ti: 'የላብ አደሮች ቀን',\n uk: 'День міжнародної солідарності трудящих',\n vi: 'Quốc tế Lao động',\n zh: '劳动节'\n }\n },\n '05-09': {\n name: {\n en: 'Europe Day',\n bg: 'Денят на Европа',\n cs: 'Den Evropy',\n da: 'Europadagen',\n de: 'Europatag',\n el: 'Ημέρα της Ευρώπης',\n es: 'Día de Europa',\n et: 'Euroopa päev',\n fi: 'Eurooppa-päivä',\n fr: \"Journée de l'Europe\",\n ga: 'Lá na hEorpa',\n hr: 'Dan Europe',\n hu: 'Európa-nap',\n it: \"Festa dell'Europa\",\n lb: 'Europadag',\n ls: 'Dan Evrope',\n lt: 'Europos diena',\n lv: 'Eiropas diena',\n mt: 'Jum l-Ewropa',\n nl: 'Dag van Europa ou Europadag',\n pl: 'Dzień Europy',\n pt: 'Dia da Europa',\n ro: 'Ziua Europei',\n sk: 'Deň Európy',\n sq: 'Dita e Evropës',\n sv: 'Europadagen'\n }\n },\n '06-29': {\n name: {\n en: 'Saints Peter and Paul',\n de: 'Peter und Paul',\n es: 'San Pedro y San Pablo',\n fr: 'Saint Pierre et Paul',\n it: 'Santi Pietro e Paolo',\n mt: 'L-Imnarja',\n nl: 'Hoogfeest van Petrus en Paulus',\n vi: 'Lễ kính Thánh Phêrô'\n }\n },\n '08-15': {\n name: {\n en: 'Assumption',\n de: 'Mariä Himmelfahrt',\n es: 'Asunción',\n fr: 'Assomption',\n el: 'Κοίμηση της Θεοτόκου',\n hr: 'Velika Gospa',\n it: 'Ferragosto',\n lb: 'Léiffrawëschdag',\n lt: 'Žolinė',\n mg: 'Asompsiona',\n mk: 'Успение на Пресвета Богородица',\n mt: 'Santa Marija',\n nl: 'O.L.V. Hemelvaart',\n pl: 'Wniebowzięcie Najświętszej Maryi Panny',\n pt: 'Assunção de Maria',\n ro: 'Adormirea Maicii Domnului',\n sl: 'Marijino vnebovzetje',\n sq: 'Shën Mëria e Gushtit',\n vi: 'Đức Mẹ Lên Trời'\n }\n },\n '11-01': {\n name: {\n en: \"All Saints' Day\",\n bs: 'Dita e të gjithë Shenjtorëve',\n de: 'Allerheiligen',\n es: 'Todos los Santos',\n fi: 'Pyhäinpäivä',\n fil: 'Undás; Todos los Santos; Araw ng mga Santo',\n fr: 'Toussaint',\n hr: 'Svi sveti',\n hu: 'Mindenszentek',\n it: 'Ognissanti',\n lb: 'Allerhellegen',\n lt: 'Visų šventųjų diena',\n mg: \"Fetin'ny olo-masina\",\n mk: 'Празникот на сите светци',\n nl: 'Allerheiligen',\n pl: 'Wszystkich Świętych',\n pt: 'Todos os santos',\n sk: 'Sviatok všetkých svätých',\n sq: 'Të gjitha Saints',\n sr: 'Сви Свети',\n sv: 'Alla Helgons dag',\n vi: 'Lễ Các Thánh'\n }\n },\n '11-02': {\n name: {\n en: \"All Souls' Day\",\n de: 'Allerseelen',\n es: 'Día de los Difuntos',\n et: 'hingedepäev',\n fil: 'Araw ng mga Kaluluwa',\n fr: 'Fête des morts',\n hr: 'Dušni dan',\n hu: 'Halottak napja',\n lb: 'Allerséilen',\n nl: 'Allerzielen',\n pt: 'Dia de Finados',\n vi: 'Lễ Các Đẳng',\n lt: 'Vėlinės'\n }\n },\n '11-11': {\n name: {\n en: 'Saint Martin',\n de: 'Sankt Martin (Faschingsbeginn)',\n hu: 'Márton nap',\n nl: 'Sint Maarten',\n vi: 'Lễ thánh Martin'\n }\n },\n '12-06': {\n name: {\n en: 'Saint Nicholas',\n de: 'Sankt Nikolaus',\n fr: 'Saint-Nicolas',\n hu: 'Mikulás',\n lb: 'Niklosdag',\n nl: 'Sinterklaas',\n vi: 'Thánh Saint Nicholas'\n }\n },\n '12-08': {\n name: {\n en: 'Immaculate Conception',\n de: 'Mariä Empfängnis',\n es: 'La inmaculada concepción',\n fr: 'Immaculée Conception',\n it: 'Immacolata Concezione',\n mt: 'Il-Kunċizzjoni',\n nl: 'Onbevlekte Ontvangenis van Maria',\n pt: 'Imaculada Conceição'\n }\n },\n '12-24': {\n name: {\n en: 'Christmas Eve',\n bg: 'Бъдни вечер',\n bs: 'Badnji dan',\n cz: 'Štědrý den',\n da: 'Juleaften',\n de: 'Heiliger Abend',\n es: 'Nochebuena',\n et: 'jõululaupäev',\n fo: 'Jólaaftan',\n fi: 'Jouluaatto',\n fil: 'Bisperas ng Pasko',\n fr: 'Veille de Noël',\n hr: 'Badnji dan',\n hu: 'Szenteste',\n is: 'Aðfangadagur',\n kl: 'juulliaraq',\n lb: 'Hellegowend',\n lt: 'Šv. Kūčios',\n lv: 'Ziemassvētku vakars',\n ms: 'Hari Sebelum Krismas',\n nl: 'Kerstavond',\n no: 'Julaften',\n pt: 'Noite de Natal',\n sk: 'Štedrý deň',\n sq: 'Nata e Krishtlindjes',\n sr: 'Бадњи дан',\n sv: 'Julafton',\n vi: 'Đêm Giáng Sinh'\n }\n },\n '12-25': {\n name: {\n en: 'Christmas Day',\n am: 'ልደተ-ለእግዚእነ/ ገና',\n ar: 'عيد الميلاد المجيد',\n bg: 'Коледа',\n bn: 'বড়দিন',\n bs: 'Božić',\n 'de-at': 'Christtag',\n ca: 'Nadal',\n cz: '1. svátek vánoční',\n da: 'Juledag',\n de: 'Weihnachten',\n 'de-ch': 'Weihnachtstag',\n el: 'Χριστούγεννα',\n es: 'Navidad',\n et: 'esimene jõulupüha',\n fi: 'Joulupäivä',\n fil: 'Araw ng Pasko',\n fo: 'Fyrsti jóladagur',\n fr: 'Noël',\n hr: 'Božić',\n hu: 'Karácsony',\n hy: 'Սուրբ Ծնունդ',\n id: 'Hari Raya Natal',\n it: 'Natale',\n is: 'Jóladagur',\n jp: 'ノエル',\n kl: 'juullerujussuaq',\n ko: '기독탄신일',\n lb: 'Chrëschtdag',\n lt: 'Šv. Kalėdos',\n lv: 'Ziemassvētki',\n mg: 'Krismasy',\n mk: 'Католички Божиќ',\n ms: 'Hari Krismas',\n mt: 'Il-Milied',\n nl: 'Kerstmis',\n no: 'Første Juledag',\n pap: 'Dia Pasco di Nascimento',\n pl: 'Pierwszy dzień Bożego Narodzenia',\n pt: 'Natal',\n ro: 'Crăciunul',\n ru: 'Рождество Христово',\n sk: 'Prvý sviatok vianočný',\n sl: 'Božič',\n sq: 'Krishtlindja',\n sr: 'Католички Божић',\n sv: 'Juldagen',\n sw: 'Krismasi',\n vi: 'Lễ Giáng Sinh',\n ti: 'ልደት',\n zh: '聖誕節'\n }\n },\n '12-26': {\n name: {\n en: 'Boxing Day',\n bg: '2-ри ден на Коледа',\n cz: '2. svátek vánoční',\n da: 'Anden Juledag',\n de: '2. Weihnachtstag',\n 'de-at': 'Stefanitag',\n 'de-ch': 'Stephanstag',\n el: 'Δεύτερη μέρα των Χριστουγέννων',\n es: 'San Esteban',\n et: 'teine jõulupüha',\n fi: '2. joulupäivä',\n fo: 'Fyrsti gerandisdagur eftir jóladag',\n fr: 'Lendemain de Noël',\n hr: 'Svetog Stjepana',\n hu: 'Karácsony másnapja',\n it: 'Santo Stefano',\n is: 'Annar í jólum',\n kl: 'juullip aappaa',\n lb: 'Stiefesdag',\n lt: '2. Kalėdų diena',\n lv: 'Otrie Ziemassvētki',\n nl: 'Tweede kerstdag',\n no: 'Andre juledag',\n pap: 'Di dos Dia Pasco di Nascimento',\n pl: 'Drugi dzień Bożego Narodzenia',\n ro: 'A doua zi de Crăciun',\n sk: 'Druhý sviatok vianočný',\n sv: 'Annandag jul',\n vi: 'Ngày tặng quà'\n }\n },\n '12-31': {\n name: {\n en: \"New Year's Eve\",\n da: 'Nytårsaften',\n de: 'Silvester',\n es: 'Fin del Año',\n fi: 'Uudenvuodenaatto',\n fil: 'Bisperas ng Bagong Taon',\n fo: 'Nýggjársaftan',\n fr: 'Saint-Sylvestre',\n hu: 'Szilveszter',\n hy: 'Նոր տարվա գիշեր',\n is: 'Gamlársdagur',\n it: 'Ultimo dell’anno',\n jp: '大晦日',\n lb: 'Silvester',\n lv: 'Vecgada vakars',\n nl: 'Oudejaarsavond',\n no: 'Nyttårsaften',\n pt: 'Véspera de Ano Novo',\n sv: 'Nyårsafton',\n vi: 'Đêm giao thừa'\n }\n },\n 'easter -48': {\n name: {\n en: 'Shrove Monday',\n de: 'Rosenmontag',\n es: 'Carnaval',\n fr: 'Lundi de Carnaval',\n lb: 'Fuesméindeg',\n nl: 'Carnavalmaandag',\n pap: 'Dialuna di Carnaval',\n vi: 'Ngày thứ hai hoa hồng'\n }\n },\n 'easter -47': {\n name: {\n en: 'Shrove Tuesday',\n es: 'Carnaval',\n de: 'Faschingsdienstag',\n hr: 'Pokladni utorak',\n hu: 'Húshagyó kedd',\n nl: 'Vastenavond',\n pt: 'Carnaval',\n vi: 'Thứ ba mập béo'\n }\n },\n 'easter -46': {\n name: {\n en: 'Ash Wednesday',\n de: 'Aschermittwoch',\n es: 'Miercoles de Ceniza',\n fr: 'Mercredi des Cendres',\n hu: 'Hamvazószerda',\n it: 'Ceneri',\n is: 'Öskudagur',\n lb: 'Äschermëttwoch',\n nl: 'Aswoensdag',\n pt: 'Quarta-feira de Cinzas',\n sw: 'Jumatano ya Majivu',\n vi: 'Thứ tư Lễ Tro'\n }\n },\n 'easter -7': {\n name: {\n en: 'Palm Sunday',\n de: 'Palmsonntag',\n es: 'Domingo de Ramos',\n hu: 'Virágvasárnap',\n it: 'Domenica delle Palme',\n is: 'Pálmasunnudagur',\n lb: 'Pällemsonndeg',\n nl: 'Palmzondag',\n no: 'Palmesøndag',\n vi: 'Chúa nhật Lễ Lá'\n }\n },\n 'easter -3': {\n name: {\n en: 'Maundy Thursday',\n cz: 'Zelený čtvrtek',\n da: 'Skærtorsdag',\n de: 'Gründonnerstag',\n es: 'Jueves Santo',\n fil: 'Huwebes Santo',\n fo: 'Skírhósdagur',\n fr: 'Jeudi saint',\n is: 'Skírdagur',\n it: 'Giovedì santo',\n kl: 'sisamanngortoq illernartoq',\n lb: 'Gréngen Donneschdeg',\n nl: 'Witte donderdag',\n no: 'Skjærtorsdag',\n sv: 'Skärtorsdagen',\n vi: 'Thứ năm Tuần Thánh'\n }\n },\n 'easter -2': {\n name: {\n en: 'Good Friday',\n am: 'ስቅለት',\n bg: 'Разпети петък',\n bs: 'Dobar petak',\n cz: 'Velký pátek',\n da: 'Langfredag',\n de: 'Karfreitag',\n es: 'Viernes Santo',\n fi: 'Pitkäperjantai',\n fil: 'Biyernes Santo',\n fo: 'Langafríggjadagur',\n fr: 'Vendredi saint',\n el: 'Μεγάλη Παρασκευή',\n et: 'suur reede',\n ge: 'წითელი პარასკევი',\n hr: 'Veliki petak',\n hu: 'Nagypéntek',\n id: 'Wafat Yesus Kristus',\n it: 'Venerdì santo',\n is: 'Föstudagurinn langi',\n kl: 'tallimanngornersuaq',\n lb: 'Karfreideg',\n lv: 'Lielā Piektdiena',\n ms: 'Jumat Agung',\n mt: 'Il-Ġimgħa l-Kbira',\n nl: 'Goede Vrijdag',\n no: 'Langfredag',\n pap: 'Diabierna Santo',\n pt: 'Sexta-Feira Santa',\n ro: 'Vinerea Mare',\n sk: 'Veľkonočný piatok',\n sq: 'E Premtja e Madhe',\n sr: 'Католички Велики петак',\n sv: 'Långfredagen',\n sw: 'Ijumaa Kuu',\n vi: 'Thứ sáu Tuần Thánh',\n zh: '耶穌受難節'\n }\n },\n 'easter -1': {\n name: {\n en: 'Easter Saturday',\n cz: 'Bílá sobota',\n de: 'Karsamstag',\n es: 'Sabado Santo',\n fil: 'Sabado de Gloria',\n fr: 'Samedi saint',\n ge: 'დიდი შაბათი',\n hu: 'Nagyszombat',\n it: 'Sabado santo',\n lb: 'Karsamschdeg',\n nl: 'Dag voor Pasen',\n no: 'Påskeaften',\n sv: 'Påskafton',\n vi: 'Thứ bảy Tuần Thánh',\n zh: '耶穌受難節翌日'\n }\n },\n easter: {\n name: {\n en: 'Easter Sunday',\n am: 'ፋሲካ',\n bg: 'Великден',\n bs: 'Vaskrs',\n cz: 'Velikonoční neděle',\n da: 'Påskesøndag',\n de: 'Ostersonntag',\n el: 'Πάσχα',\n es: 'Pascua',\n et: 'lihavõtted',\n fi: 'Pääsiäispäivä',\n fil: 'Pasko ng Pagkabuhay',\n fo: 'Páskadagur',\n fr: 'Pâques',\n ge: 'აღდგომა',\n hr: 'Uskrs',\n hu: 'Húsvétvasárnap',\n it: 'Domenica di Pasqua',\n is: 'Páskadagur',\n kl: 'poorskip-ullua',\n lb: 'Ouschtersonndeg',\n lt: 'Velykos',\n lv: 'Lieldienas',\n nl: 'Pasen',\n no: 'Første påskedag',\n pap: 'Dia Pasco di Resureccion',\n pl: 'Niedziela Wielkanocna',\n pt: 'Páscoa',\n ro: 'Paștele',\n sk: 'Veľká noc',\n sl: 'Velika noč',\n sq: 'Pashkët Katolike',\n sr: 'Католички Васкрс',\n sv: 'Påskdagen',\n sw: 'Pasaka',\n vi: 'Lễ Phục Sinh',\n zh: '复活节'\n }\n },\n 'easter 1': {\n name: {\n en: 'Easter Monday',\n bg: 'Велики понеделник',\n bs: 'Uskrsni ponedjeljak',\n cz: 'Velikonoční pondělí',\n da: 'Anden påskedag',\n de: 'Ostermontag',\n el: 'Δευτέρα του Πάσχα',\n es: 'Lunes de Pascua',\n fi: '2. pääsiäispäivä',\n fo: 'Annar páskadagur',\n fr: 'Lundi de Pâques',\n ge: 'აღდგომის ორშაბათი',\n hr: 'Uskršnji ponedjeljak',\n hu: 'Húsvéthétfő',\n it: 'Lunedì dell’Angelo',\n is: 'Annar í páskum',\n kl: 'poorskip-aappaa',\n lb: 'Ouschterméindeg',\n lt: 'Velykų pirmadienis',\n lv: 'Otrās Lieldienas',\n mg: \"Alatsinain'ny Paska\",\n mk: 'вториот ден на Велигден',\n nl: 'Tweede paasdag',\n no: 'Andre påskedag',\n pap: 'Di dos Dia Pasco di Resureccion',\n pl: 'Drugi dzień Wielkanocy',\n ro: 'A doua zi de Pasti',\n sk: 'Veľkonočný pondelok',\n sl: 'Velikonočni ponedeljek',\n sr: 'Католички Васкрсни понедељак',\n sv: 'Annandag påsk',\n sw: 'Jumatatu ya Pasaka',\n vi: 'Thứ hai phục sinh',\n zh: '復活節星期一'\n }\n },\n 'easter 39': {\n name: {\n en: 'Ascension Day',\n da: 'Kristi Himmelfartsdag',\n de: 'Christi Himmelfahrt',\n es: 'La Asunción',\n fi: 'Helatorstai',\n fo: 'Kristi Himmalsferðardagur',\n fr: 'Ascension',\n id: 'Kenaikan Yesus Kristus',\n it: 'Ascensione',\n is: 'Uppstigningardagur',\n kl: 'qilaliarfik',\n mg: 'Andro niakarana',\n lb: 'Christi Himmelfaart',\n nl: 'O.L.H. Hemelvaart',\n no: 'Kristi himmelfartsdag',\n pap: 'Dia di Asuncion',\n ro: 'Ziua Eroilor',\n sv: 'Kristi himmelfärds dag',\n vi: 'Lễ Thăng Thiên'\n }\n },\n 'easter 49': {\n name: {\n en: 'Pentecost',\n da: 'Pinsedag',\n de: 'Pfingstsonntag',\n el: 'Πεντηκοστή',\n es: 'Pentecostés',\n et: 'nelipühade 1. püha',\n fi: 'Helluntaipäivä',\n fo: 'Hvítusunnudagur',\n fr: 'Pentecôte',\n hu: 'Pünkösdvasárnap',\n it: 'Pentecoste',\n is: 'Hvítasunnudagur',\n kl: 'piinsip ullua',\n lb: 'Päischtsonndeg',\n nl: 'Pinksteren',\n no: 'Første pinsedag',\n mk: 'Духовден',\n pl: 'Zielone Świątki',\n ro: 'Rusaliile',\n sl: 'Binkošti',\n sv: 'Pingstdagen',\n uk: 'Трійця',\n vi: 'Lễ Chúa Thánh Thần Hiện Xuống'\n }\n },\n 'easter 50': {\n name: {\n en: 'Whit Monday',\n da: 'Anden Pinsedag',\n de: 'Pfingstmontag',\n el: 'Αγίου Πνεύματος',\n es: 'Lunes de Pentecostés',\n fo: 'Annar hvítusunnudagur',\n fr: 'Lundi de Pentecôte',\n hu: 'Pünkösdhétfő',\n is: 'Annar í hvítasunnu',\n it: 'Lunedì di Pentecoste',\n kl: 'piinsip aappaa',\n mg: \"Alatsinain'ny Pentekosta\",\n lb: 'Péngschtméindeg',\n nl: 'Tweede pinksterdag',\n no: 'Andre pinsedag',\n ro: 'A doua zi de Rusalii',\n sv: 'Annandag pingst'\n }\n },\n 'easter 60': {\n name: {\n en: 'Corpus Christi',\n de: 'Fronleichnam',\n es: 'Corpus Christi',\n fr: 'la Fête-Dieu',\n it: 'Corpus Domini',\n hr: 'Tijelovo',\n nl: 'Sacramentsdag',\n pl: 'Dzień Bożego Ciała',\n pt: 'Corpo de Deus',\n vi: 'Lễ Mình và Máu Thánh Chúa Kitô'\n }\n },\n 'julian 01-01': {\n name: {\n en: 'Orthodox New Year',\n bs: 'Pravoslavni novogodišnji dan',\n hr: 'Pravoslavna Nova Godina',\n nl: 'Orthodox Nieuwjaar',\n sq: 'Viti i Ri Ortodoks',\n sr: 'Православна Нова година'\n }\n },\n 'julian 12-24': {\n name: {\n en: 'Orthodox Christmas Eve',\n nl: 'Orthodox Kerstavond',\n mk: 'Бадник',\n ti: 'ልደት'\n }\n },\n 'julian 12-25': {\n name: {\n en: 'Orthodox Christmas',\n bs: 'Pravoslavni Božić',\n hr: 'Pravoslavni Božić',\n mk: 'Прв ден Божик',\n nl: 'Orthodox Kerstmis',\n ro: 'Craciun pe Rit Vechi',\n sq: 'Krishtlindjet Ortodokse',\n sr: 'Божић',\n uk: 'Різдво'\n }\n },\n 'orthodox -2': {\n name: {\n en: 'Orthodox Good Friday',\n mk: 'Велики Петок',\n nl: 'Orthodoxe Goede vrijdag',\n sr: 'Велики петак',\n ti: 'ዓርቢ ስቅለት'\n }\n },\n orthodox: {\n name: {\n en: 'Orthodox Easter',\n bs: 'Pravoslavni Vaskrs',\n hr: 'Pravoslavni Uskrs',\n mk: 'Прв ден Велигден',\n nl: 'Orthodox Pasen',\n sq: 'Pashkët Ortodokse',\n sr: 'Васкрс',\n ti: 'ፋሲካ',\n uk: 'Великдень'\n }\n },\n 'orthodox 1': {\n name: {\n en: 'Orthodox Easter Monday',\n mk: 'Втор ден Велигден',\n nl: 'Orthodoxe Tweede Paasdag',\n sr: 'Васкрсни понедељак'\n }\n },\n '1 Muharram': {\n name: {\n en: 'Islamic New Year',\n ar: 'رأس السنة الهجرية',\n bs: 'Nova hidžretska godina',\n fil: 'Unang Araw ng Muharram',\n fr: 'Nouvel an islamique',\n hr: 'Nova hidžretska godina',\n id: 'Tahun Baru Islam',\n ms: 'Awal Muharram',\n nl: 'Islamitisch Nieuwjaar',\n sq: 'Viti i Ri hixhri'\n }\n },\n '10 Muharram': {\n name: {\n en: 'Day of Ashura',\n ar: 'عاشوراء',\n bn: 'আশুরা',\n nl: 'Asjoera'\n }\n },\n '12 Rabi al-awwal': {\n name: {\n en: 'Birthday of Muhammad (Mawlid)',\n am: 'መውሊድ',\n ar: 'المولد النبويّ',\n bn: 'ঈদে মিলাদুন্নবী',\n bs: 'Mevlud',\n fr: 'Mawlid',\n id: 'Maulid Nabi Muhammad',\n ms: 'Hari Keputeraan Nabi Muhammad S.A.W.',\n nl: 'Mawlid an-Nabi',\n sq: 'Mevludi'\n }\n },\n '27 Rajab': {\n name: {\n en: \"Laylat al-Mi'raj\",\n ar: 'الإسراء والمعراج',\n bs: \"Lejletul Mi'radž\",\n id: 'Maulid Nabi Muhammad',\n ms: 'Israk dan Mikraj',\n nl: 'Laylat al-Miraadj',\n sq: 'Nata e Miraxhit',\n tr: 'Miraç Gecesi'\n }\n },\n '15 Shaban': {\n name: {\n en: \"Laylat al-Bara'at\",\n ar: 'ليلة البراءة',\n bs: 'Lejletul berat',\n nl: 'Laylat al-Baraat',\n sq: 'Nata e Beratit'\n }\n },\n '1 Ramadan': {\n name: {\n en: 'First day of Ramadan',\n am: 'ረመዳን',\n ar: 'اليوم الأول من رمضان',\n bs: 'Prvi dan posta',\n ms: 'Awal Ramadan',\n nl: 'Eerste dag van Ramadan',\n sq: 'Dita e parë e agjërimit'\n }\n },\n '17 Ramadan': {\n name: {\n en: 'Day of Nuzul Al-Quran',\n ms: 'Hari Nuzul Al-Quran'\n }\n },\n '23 Ramadan': {\n name: {\n en: 'Lailat al-Qadr'\n }\n },\n '27 Ramadan': {\n name: {\n en: 'Laylat al-Qadr',\n ar: 'لیلة القدر',\n bs: 'Lejletul kadr',\n nl: 'Waardevolle Nacht (Laylat al-Qadr)',\n sq: 'Nata e Kadrit'\n }\n },\n '1 Shawwal': {\n name: {\n en: 'End of Ramadan (Eid al-Fitr)',\n am: 'ዒድ አል ፈጥር',\n ar: 'عيد الفطر',\n az: 'Ramazan Bayramı',\n bn: 'ঈদুল ফিতর',\n bs: 'Ramazanski bajram',\n de: 'Zuckerfest',\n es: 'Fiesta del Eid Fitr',\n fa: 'ﻋﯿﺪ ﺳﻌﯿﺪ ﻓﻄﺮ',\n fil: 'Pagwawakas ng Ramadan',\n fr: 'Fête de fin du Ramadan',\n hr: 'Ramazanski bajram',\n id: 'Hari Raya Idul Fitri',\n nl: 'Suikerfeest (Eid al-Fitr)',\n mk: 'Рамазан Бајрам',\n ms: 'Hari Raya Aidil Fitri',\n sq: 'Fitër Bajrami',\n tr: 'Ramazan Bayramı',\n sr: 'Рамазански Бајрам',\n sw: 'Idd-ul-Fitr'\n }\n },\n '9 Dhu al-Hijjah': {\n name: {\n en: 'Arafat Day',\n ar: 'يوم عرفة',\n es: 'Fiesta del Sacrificio-Eidul Adha',\n ms: 'Hari Arafah'\n }\n },\n '10 Dhu al-Hijjah': {\n name: {\n en: 'Feast of the Sacrifice (Eid al-Adha)',\n am: 'ዒድ አል አድሐ',\n ar: 'عيد الأضحى',\n az: 'Qurban Bayramı',\n bn: 'ঈদুল আযহা',\n bs: 'Kurbanski bajram',\n de: 'Opferfest',\n es: 'Fiesta del Sacrificio-Aid Al Adha',\n fa: 'ﻋﯿﺪ ﺳﻌﯿﺪ ﻗﺮﺑﺎن',\n fil: 'Eidul Adha',\n fr: 'Fête du mouton',\n hr: 'Kurban-bajram',\n id: 'Hari Raya Idul Adha',\n nl: 'Offerfeest (Eid Al-Adha)',\n mk: 'Курбан Бајрам',\n ms: 'Hari Raya Haji',\n sq: 'Kurban Bajrami',\n tr: 'Kurban Bayramı',\n sr: 'Курбански Бајрам',\n sw: 'Idd-ul-Azha'\n }\n },\n '15 Nisan': {\n name: {\n en: 'Pesach',\n bs: 'Pesah',\n de: 'Pessach',\n hr: 'Pesač',\n nl: 'Pesach',\n sq: 'Pesach',\n sr: 'Песах'\n }\n },\n '1 Tishrei': {\n name: {\n en: 'Rosh Hashanah',\n bs: 'Roš Hašana',\n de: 'Rosch Haschana',\n hr: 'Roš Hašane',\n nl: 'Rosj Hasjana',\n sq: 'Rosh Hashanah',\n sr: 'Рош Хашана'\n }\n },\n '10 Tishrei': {\n name: {\n en: 'Yom Kippur',\n bs: 'Jom Kipur',\n de: 'Jom Kippur',\n hr: 'Jom Kipur',\n mk: 'Јом Кипур',\n nl: 'Jom Kipoer',\n sq: 'Yom Kippur',\n sr: 'Јом Кипур'\n }\n },\n Deepavali: {\n name: {\n en: 'Deepavali',\n nl: 'Divali'\n }\n },\n Vesak: {\n name: {\n en: 'Vesak Day',\n id: 'Hari Raya Waisak'\n }\n },\n Holi: {\n name: {\n en: 'Holi Phagwa',\n nl: 'Holi-Phagwa'\n }\n },\n Thaipusam: {\n name: {\n en: 'Thaipusam',\n ms: 'Hari Thaipusam'\n }\n },\n 'Abolition of Slavery': {\n name: {\n en: 'Abolition of Slavery',\n fr: 'Abolition de l’esclavage',\n nl: 'Afschaffing van de slavernij',\n vi: 'Bãi bỏ chế độ Nô lệ'\n }\n },\n 'Buß- und Bettag': {\n name: {\n de: 'Buß- und Bettag',\n en: 'Day of Prayer and Repentance'\n }\n },\n 'Constitution Day': {\n name: {\n en: 'Constitution Day',\n da: 'Grundlovsdag',\n de: 'Tag der Verfassung',\n ca: 'Dia de la Constitució',\n es: 'Día de la Constitución',\n fil: 'Araw ng Saligang Batas',\n fo: 'Grundlógardagur',\n hy: 'Սահմանադրության օր',\n jp: '憲法記念日',\n ko: '제헌절',\n nl: 'Dag van de Grondwet',\n no: 'Grunnlovsdagen',\n pt: 'Dia da Constituição',\n ro: 'Ziua Constituției',\n sk: 'Deň Ústavy',\n sq: 'Dita e Kushtetutës',\n uk: 'День Конституції',\n vi: 'Ngày pháp luật'\n }\n },\n 'Fathers Day': {\n name: {\n en: \"Father's Day\",\n et: 'isadepäev',\n fi: 'Isänpäivä',\n fr: 'Fête des Pères',\n lt: 'Tėvo diena',\n nl: 'Vaderdag',\n pt: 'Dia dos Pais',\n no: 'Farsdag',\n vi: 'Ngày của cha'\n }\n },\n 'Independence Day': {\n name: {\n en: 'Independence Day',\n ar: 'عيد الاستقلال',\n be: 'Дзень Незалежнасцi',\n bg: 'Ден на независимостта',\n bs: 'Dan nezavisnosti',\n de: 'Unabhängigkeitstag',\n es: 'Día de la Independencia',\n et: 'iseseisvuspäev',\n fi: 'Itsenäisyyspäivä',\n fil: 'Araw ng Kalayaan',\n fr: \"Jour de l'Indépendance\",\n hr: 'Dan neovisnosti',\n hy: 'Անկախության օր',\n id: 'Hari Ulang Tahun Kemerdekaan Republik Indonesia',\n mk: 'Ден на независноста',\n ms: 'Hari Kebangsaan',\n mt: 'Jum l-Indipendenza',\n nl: 'Onafhankelijkheidsdag',\n pl: 'Narodowe Święto Niepodległości',\n pt: 'Dia da Independência',\n ro: 'Ziua Independentei',\n sq: 'Dita e Pavarësisë',\n sr: 'Дан независности',\n sv: 'Självständighetsdagen',\n sw: 'Siku ya uhuru',\n ti: 'መዓልቲ ናጽነት',\n uk: 'День Незалежності',\n vi: 'Ngày Độc lập'\n }\n },\n 'Liberation Day': {\n name: {\n en: 'Liberation Day',\n ar: 'يوم التحرير',\n nl: 'Bevrijdingsdag',\n no: 'Frigjøringsdagen',\n sq: 'Dita e Çlirimit',\n vi: 'Ngày Thống nhất'\n }\n },\n 'Mothers Day': {\n name: {\n en: \"Mother's Day\",\n cz: 'Den matek',\n da: 'Mors Dag',\n de: 'Muttertag',\n el: 'Γιορτή της μητέρας',\n es: 'Día de la Madre',\n et: 'emadepäev',\n fi: 'Äitienpäivä',\n fr: 'Fête des Mères',\n hr: 'Majčin dan',\n hu: 'Anyák napja',\n hy: 'Ցեղասպանության զոհերի հիշատակի օր',\n is: 'Mæðradagurinn',\n it: 'Festa della mamma',\n lt: 'Motinos diena',\n lv: 'Mātes diena',\n nl: 'Moederdag',\n no: 'Morsdag',\n pt: 'Dia das Mães',\n pl: 'Dzień Matki',\n ro: 'Ziua Mamei',\n sq: 'Dita e Nënës',\n sv: 'Mors dag',\n vi: 'Ngày của mẹ'\n }\n },\n 'National Holiday': {\n name: {\n en: 'National Holiday',\n de: 'Nationalfeiertag',\n es: 'Fiesta Nacional',\n fr: 'Fête nationale',\n hu: 'Nemzeti ünnep',\n el: 'εθνική επέτειος',\n lb: 'Nationalfeierdag',\n nl: 'Nationale feestdag',\n vi: 'Quốc Lễ'\n }\n },\n 'Public Holiday': {\n name: {\n en: 'Public Holiday',\n fr: 'Jour férié légaux',\n nl: 'Wettelijke feestdag',\n pt: 'Feriado Obrigatório',\n vi: 'Nghỉ lễ Toàn Quốc'\n }\n },\n 'Reformation Day': {\n name: {\n en: 'Reformation Day',\n de: 'Reformationstag',\n es: 'Día Nacional de las Iglesias Evangélicas y Protestantes',\n nl: 'Hervormingsdag',\n vi: 'Kháng Cách'\n }\n },\n 'Revolution Day': {\n name: {\n en: 'Revolution Day',\n ar: 'يوم الثورة',\n es: 'Día de la Revolución',\n nl: 'Dag van de revolutie',\n ti: 'ባሕቲ መስከረም',\n vi: 'Tổng khởi nghĩa'\n }\n },\n 'Bridge Day': {\n name: {\n en: 'Bridge Day',\n es: 'Feriado Puente Turístico'\n }\n },\n substitutes: {\n name: {\n en: 'substitute day',\n az: 'əvəz gün',\n bs: 'zamjena dan',\n de: 'Ersatztag',\n es: 'día sustituto',\n fr: 'jour substitut',\n hr: 'zamjena dan',\n jp: '振替休日',\n lv: 'aizstājējs diena',\n mk: 'заменет ден',\n nl: 'substituut',\n sq: 'ditë zëvendësuese',\n sr: 'замена дан',\n uk: 'замінити день',\n vi: 'ngày thay thế',\n zh: '更换日'\n }\n }\n }\n}\n","/**\n * @copyright 2015-present (c) commenthol\n * @license ISC\n */\n\nimport HolidaysParser from 'date-holidays-parser'\n\nimport { data } from './data.js'\n\n/**\n * @class\n * @param {String|Object} country - if object use `{ country: {String}, state: {String}, region: {String} }`\n * @param {String} [state] - specifies state\n * @param {String} [region] - specifies region\n * @param {Object} [opts] - options\n * @param {Array|String} opts.languages - set language(s) with ISO 639-1 shortcodes\n * @param {String} opts.timezone - set timezone\n * @param {Array} opts.types - holiday types to consider\n * @example\n * ```js\n * new Holiday('US', 'la', 'no') // is the same as\n * new Holiday('us.la.no') // is the same as\n * new Holiday({ country: 'us', state: 'la', region: 'no'})\n * ```\n */\nexport class Holidays extends HolidaysParser {\n constructor (country, state, region, opts) {\n super(data, country, state, region, opts)\n }\n}\n"],"names":["root","factory","exports","module","define","amd","self","isMergeableObject","value","isNonNullObject","stringValue","Object","prototype","toString","call","$$typeof","REACT_ELEMENT_TYPE","isReactElement","isSpecial","Symbol","for","cloneUnlessOtherwiseSpecified","options","clone","deepmerge","val","Array","isArray","defaultArrayMerge","target","source","concat","map","element","getKeys","keys","getOwnPropertySymbols","filter","symbol","propertyIsEnumerable","getEnumerableOwnPropertySymbols","propertyIsOnObject","object","property","_","arrayMerge","sourceIsArray","destination","forEach","key","hasOwnProperty","propertyIsUnsafe","customMerge","getMergeFunction","mergeObject","all","array","Error","reduce","prev","next","deepmerge_1","toJalaali","gy","gm","gd","getDate","getMonth","getFullYear","d2j","g2d","toGregorian","isValidJalaaliDate","jy","jm","jd","jalaaliMonthLength","isLeapJalaaliYear","jalCal","j2d","d2g","jalaaliToDateObject","jalaaliWeek","dayOfWeek","getDay","startDayDifference","endDayDifference","saturday","friday","breaks","jump","leap","n","i","bl","length","jp","div","mod","jalCalLeap","withoutLeap","march","leapJ","r","jdn","k","d","j","h","m","s","ms","gregorianCalenderDate","Date","a","b","tz","load","require","this","moment","undefined","version","default","cachedGuess","zones","links","countries","names","guesses","logError","momentVersion","split","major","minor","charCodeToInt","charCode","unpackBase60","string","parts","whole","fractional","multiplier","out","sign","charCodeAt","arrayToInt","mapIndices","indices","unpack","data","offsets","untils","Math","round","Infinity","intToUntil","name","abbrs","population","Zone","packedString","_set","Country","country_name","zone_names","OffsetAt","at","timeString","toTimeString","abbr","match","join","offset","getTimezoneOffset","ZoneScore","zone","offsetScore","abbrScore","findChange","low","high","mid","diff","sortZoneScores","localeCompare","addToGuesses","guessesForUserOffsets","guessesOffset","offsetsLength","filteredGuesses","push","normalizeName","toLowerCase","replace","addZone","packed","normalized","getZone","caller","link","addLink","aliases","alias","normal0","normal1","needsOffset","isUnixTimestamp","_f","_a","_tzm","message","console","error","input","args","slice","arguments","utc","apply","isMoment","add","parse","unpacked","_index","timestamp","zone_name","country_code","indexOf","offsetNext","offsetPrev","max","moveAmbiguousForward","moveInvalidForward","mom","utcOffset","scoreOffsetAt","offsetAt","abs","dataVersion","_zones","_links","_names","_countries","country_zones","toUpperCase","addCountries","zoneExists","didShowError","guess","ignoreCache","intlName","Intl","DateTimeFormat","resolvedOptions","timeZone","e","zoneScore","change","startYear","last","userOffsets","zoneScores","sort","rebuildGuess","zonesForCountry","country","with_offset","old","fn","abbrWrap","_z","resetZoneWrap","defaultZone","updateOffset","keepTime","_isUTC","_d","z","zoneName","zoneAbbr","local","setDefault","momentProperties","hookCallback","some","hooks","isObject","hasOwnProp","isObjectEmpty","obj","getOwnPropertyNames","isUndefined","isNumber","isDate","arr","res","arrLen","extend","valueOf","createUTC","format","locale","strict","createLocalOrUTC","getParsingFlags","_pf","empty","unusedTokens","unusedInput","overflow","charsLeftOver","nullInput","invalidEra","invalidMonth","invalidFormat","userInvalidated","iso","parsedDateParts","era","meridiem","rfc2822","weekdayMismatch","isValid","_isValid","flags","parsedParts","isNowValid","isNaN","getTime","invalidWeekday","_strict","bigHour","isFrozen","createInvalid","NaN","fun","t","len","updateInProgress","copyConfig","to","from","prop","momentPropertiesLen","_isAMomentObject","_i","_l","_offset","_locale","Moment","config","warn","msg","suppressDeprecationWarnings","deprecate","firstTime","deprecationHandler","arg","argLen","stack","deprecations","deprecateSimple","isFunction","Function","mergeConfigs","parentConfig","childConfig","Locale","set","zeroFill","number","targetLength","forceSign","absNumber","zerosToFill","pow","substr","formattingTokens","localFormattingTokens","formatFunctions","formatTokenFunctions","addFormatToken","token","padded","ordinal","callback","func","localeData","formatMoment","expandFormat","output","makeFormatFunction","invalidDate","replaceLongDateFormatTokens","longDateFormat","lastIndex","test","addUnitAlias","unit","shorthand","lowerCase","normalizeUnits","units","normalizeObjectUnits","inputObject","normalizedProp","normalizedInput","priorities","addUnitPriority","priority","isLeapYear","year","absFloor","ceil","floor","toInt","argumentForCoercion","coercedNumber","isFinite","makeGetSet","set$1","get","month","date","daysInMonth","regexes","match1","match2","match3","match4","match6","match1to2","match3to4","match5to6","match1to3","match1to4","match1to6","matchUnsigned","matchSigned","matchOffset","matchShortOffset","matchWord","addRegexToken","regex","strictRegex","isStrict","getParseRegexForToken","RegExp","regexEscape","matched","p1","p2","p3","p4","tokens","addParseToken","tokenLen","addWeekParseToken","_w","addTimeToArrayFromToken","modMonth","o","monthsShort","months","monthsShortRegex","monthsRegex","monthsParse","defaultLocaleMonths","defaultLocaleMonthsShort","MONTHS_IN_FORMAT","defaultMonthsShortRegex","defaultMonthsRegex","handleStrictParse","monthName","ii","llc","toLocaleLowerCase","_monthsParse","_longMonthsParse","_shortMonthsParse","setMonth","dayOfMonth","min","getSetMonth","computeMonthsParse","cmpLenRev","shortPieces","longPieces","mixedPieces","_monthsRegex","_monthsShortRegex","_monthsStrictRegex","_monthsShortStrictRegex","daysInYear","y","parseTwoDigitYear","parseInt","getSetYear","createDate","M","setFullYear","createUTCDate","UTC","getUTCFullYear","setUTCFullYear","firstWeekOffset","dow","doy","fwd","getUTCDay","dayOfYearFromWeeks","week","weekday","resYear","resDayOfYear","dayOfYear","weekOfYear","resWeek","weekOffset","weeksInYear","weekOffsetNext","shiftWeekdays","ws","weekdaysMin","weekdaysShort","weekdays","weekdaysMinRegex","weekdaysShortRegex","weekdaysRegex","weekdaysParse","defaultLocaleWeekdays","defaultLocaleWeekdaysShort","defaultLocaleWeekdaysMin","defaultWeekdaysRegex","defaultWeekdaysShortRegex","defaultWeekdaysMinRegex","handleStrictParse$1","weekdayName","_weekdaysParse","_shortWeekdaysParse","_minWeekdaysParse","day","computeWeekdaysParse","minp","shortp","longp","minPieces","_weekdaysRegex","_weekdaysShortRegex","_weekdaysMinRegex","_weekdaysStrictRegex","_weekdaysShortStrictRegex","_weekdaysMinStrictRegex","hFormat","hours","lowercase","minutes","matchMeridiem","_meridiemParse","seconds","kInput","_isPm","isPM","_meridiem","pos","pos1","pos2","globalLocale","getSetHour","baseConfig","calendar","sameDay","nextDay","nextWeek","lastDay","lastWeek","sameElse","LTS","LT","L","LL","LLL","LLLL","dayOfMonthOrdinalParse","relativeTime","future","past","ss","mm","hh","dd","w","ww","MM","yy","meridiemParse","locales","localeFamilies","commonPrefix","arr1","arr2","minl","normalizeLocale","loadLocale","oldLocale","isLocaleNameSane","_abbr","aliasedRequire","getSetGlobalLocale","values","getLocale","defineLocale","_config","parentLocale","x","chooseLocale","checkOverflow","_overflowDayOfYear","_overflowWeeks","_overflowWeekday","extendedIsoRegex","basicIsoRegex","tzRegex","isoDates","isoTimes","aspNetJsonRegex","obsOffsets","UT","GMT","EDT","EST","CDT","CST","MDT","MST","PDT","PST","configFromISO","l","allowTime","dateFormat","timeFormat","tzFormat","exec","isoDatesLen","isoTimesLen","configFromStringAndFormat","untruncateYear","yearStr","configFromRFC2822","parsedArray","monthStr","dayStr","hourStr","minuteStr","secondStr","result","weekdayStr","parsedInput","checkWeekday","obsOffset","militaryOffset","numOffset","hm","calculateOffset","setUTCMinutes","getUTCMinutes","defaults","c","configFromArray","currentDate","expectedWeekday","yearToUse","nowValue","now","_useUTC","getUTCMonth","getUTCDate","currentDateArray","weekYear","temp","weekdayOverflow","curWeek","GG","W","E","createLocal","_week","gg","_dayOfYear","dayOfYearFromWeekInfo","_nextDay","ISO_8601","RFC_2822","skipped","stringLength","totalParsedInputLength","hour","isPm","meridiemHour","meridiemFixWrap","erasConvertYear","prepareConfig","preparse","tempConfig","bestMoment","scoreToBeat","currentScore","validFormatFound","bestFormatIsValid","configfLen","score","configFromStringAndArray","createFromInputFallback","configFromString","dayOrDate","minute","second","millisecond","configFromObject","configFromInput","isUTC","prototypeMin","other","prototypeMax","pickBy","moments","ordering","Duration","duration","years","quarters","quarter","weeks","isoWeek","days","milliseconds","unitHasDecimal","orderLen","parseFloat","isDurationValid","_milliseconds","_days","_months","_data","_bubble","isDuration","absRound","separator","offsetFromString","chunkOffset","matcher","matches","cloneWithOffset","model","setTime","getDateOffset","isUtc","aspNetRegex","isoRegex","createDuration","ret","diffRes","base","parseIso","isBefore","positiveMomentsDifference","inp","isAfter","createAdder","direction","period","tmp","addSubtract","isAdding","invalid","subtract","isString","String","isMomentInput","arrayTest","dataTypeTest","item","isNumberOrStringArray","objectTest","propertyTest","properties","propertyLen","isMomentInputObject","isCalendarSpec","monthDiff","wholeMonthDiff","anchor","newLocaleData","defaultFormat","defaultFormatUtc","lang","MS_PER_SECOND","MS_PER_MINUTE","MS_PER_HOUR","MS_PER_400_YEARS","mod$1","dividend","divisor","localStartOfDate","utcStartOfDate","matchEraAbbr","erasAbbrRegex","computeErasParse","abbrPieces","namePieces","narrowPieces","eras","narrow","_erasRegex","_erasNameRegex","_erasAbbrRegex","_erasNarrowRegex","addWeekYearFormatToken","getter","getSetWeekYearHelper","weeksTarget","setWeekAll","dayOfYearData","erasNameRegex","erasNarrowRegex","erasParse","_eraYearOrdinalRegex","eraYearOrdinalParse","isoWeekYear","_dayOfMonthOrdinalParse","_ordinalParse","_dayOfMonthOrdinalParseLenient","getSetDayOfMonth","getSetMinute","getSetMillisecond","getSetSecond","parseMs","proto","preParsePostFormat","time","formats","sod","startOf","calendarFormat","asFloat","that","zoneDelta","endOf","startOfDate","isoWeekday","inputString","postformat","withoutSuffix","humanize","fromNow","toNow","invalidAt","localInput","isBetween","inclusivity","localFrom","localTo","isSame","inputMs","isSameOrAfter","isSameOrBefore","parsingFlags","prioritized","unitsObj","u","getPrioritizedUnits","prioritizedLen","toArray","toObject","toDate","toISOString","keepOffset","inspect","prefix","suffix","isLocal","toJSON","unix","creationData","eraName","since","until","eraNarrow","eraAbbr","eraYear","dir","isoWeeks","weekInfo","weeksInWeekYear","isoWeeksInYear","isoWeeksInISOWeekYear","parseWeekday","parseIsoWeekday","keepLocalTime","keepMinutes","localAdjust","_changeInProgress","parseZone","tZone","hasAlignedHourOffset","isDST","isUtcOffset","dates","isDSTShifted","_isDSTShifted","array1","array2","dontConvert","lengthDiff","diffs","compareArrays","proto$1","get$1","index","field","setter","listMonthsImpl","listWeekdaysImpl","localeSorted","shift","_calendar","_longDateFormat","formatUpper","tok","_invalidDate","_ordinal","isFuture","_relativeTime","pastFuture","_eras","isFormat","_monthsShort","_monthsParseExact","firstDayOfYear","firstDayOfWeek","_weekdays","_weekdaysMin","_weekdaysShort","_weekdaysParseExact","_fullWeekdaysParse","charAt","isLower","langData","mathAbs","addSubtract$1","absCeil","daysToMonths","monthsToDays","makeAs","as","asMilliseconds","asSeconds","asMinutes","asHours","asDays","asWeeks","asMonths","asQuarters","asYears","makeGetter","thresholds","substituteTimeAgo","abs$1","toISOString$1","totalSign","ymSign","daysSign","hmsSign","total","toFixed","proto$2","monthsFromDays","argWithSuffix","argThresholds","withSuffix","th","assign","posNegDuration","relativeTime$1","toIsoString","updateLocale","tmpLocale","relativeTimeRounding","roundingFunction","relativeTimeThreshold","threshold","limit","myMoment","HTML5_FMT","DATETIME_LOCAL","DATETIME_LOCAL_SECONDS","DATETIME_LOCAL_MS","DATE","TIME","TIME_SECONDS","TIME_MS","WEEK","MONTH","webpackContext","req","id","webpackContextResolve","__webpack_require__","code","resolve","__webpack_module_cache__","moduleId","cachedModule","loaded","__webpack_modules__","definition","defineProperty","enumerable","toStringTag","nmd","paths","children","pad0","toNumber","str","num","PROPS","CalDate","opts","getHours","getMinutes","getSeconds","p","calDate","update","timezone","dateUTC","toYear","def","props","DAYS","idx","Data","state","region","splitName","_name","states","regions","_lang","getLanguages","mlang","majorLang","_getValue","rules","_assign","path","ref","type","WEEKDAYS","lowerCaseWeekday","includes","lowerCaseWeekdayWithoutDay","grammar","opt","raw","_islamicMonths","_hebrewMonths","_jalaaliMonths","_direction","_counts","_count_days","_timezone","_type","dateMonth","julian","easter","equinox","hebrew","islamic","jalaali","chineseLunar","chineseSolar","bengaliRevised","modifier","rule_year","rule_weekday","rule_date_if_then","rule_day_dir_date","rule_bridge","rule_if_holiday","rule_same_day","rule_active_from","rule_active_to","space","islamicMonths","hebrewMonths","Adar","AdarII","jalaaliMonths","Parser","fns","rule","setup","_tokenize","_reorder","pop","_space","cap0","cap","_shorten","season","cycle","solarterm","leapMonth","if","then","not","count","cardinality","every","omit","Boolean","Rule","calEvent","omitWeekdays","v","isNil","isOmitDay","wd","ruleWeekday","isDirBefore","setOffset","_lock","substitute","_filter","setActive","_isLeapYear","CalEvent","active","objectToString","thisDate","isEqualDate","isActive","pushIt","cdate","start","toTimezone","end","toEndDate","_addSubstitute","_date","PostRule","ruleStr","holidays","ruleSet","events","disable","ev","filterActive","found","fill","dateFn","tmpEv","inYear","tmpEvType","_get","event","reset","enable","_findEventInYear","_year","isoDateStr","isoDate","_findDisabled","_month","filterDisabled","_num","Number","pre","EasterDate","_easter","gregorian","_toYear","og","os","daysPerMonth","gregorianEaster","Easter","_fn","J2000","B1900","JulianYear","BesselianYear","Coord","ra","dec","range","elongation","_ra","_dec","SmallAngle","PI","CosSmallAngle","cos","K","AU","SOblJ2000","COblJ2000","lightTime","dist","JMod","J1900","B1950","JulianCentury","meanSiderealYear","JulianYearToJDE","JDEToJulianYear","jde","BesselianYearToJDE","by","JDEToBesselianYear","J2000Century","illuminated","limb","equ","appSun","α","δ","α0","δ0","sδ","sin","cδ","sδ0","cδ0","sα0α","cα0α","χ","atan2","pmod","horner","floorDiv","q","cmp","sincos","ε","toRad","deg","toDeg","rad","modf","float","trunc","precision","errorCode","err","int","errorNot3","errorNot4","errorNot5","errorNoXRange","errorNOutOfRange","errorNoExtremum","errorExtremumOutside","errorZeroOutside","errorNoConverge","Len3","x1","x3","abSum","xSum","xDiff","interpolateN","interpolateNStrict","strong","f","n0","iterate","n1","Len5","x5","y3","g","interpCoeff","nCoeff","den","N","P","Q","numCoeff","denCoeff","len3ForInterpolateX","xN","interval","nearestX","len4Half","lagrange","table","sum","ti","xi","prod","tj","xj","lagrangePoly","yi","pj","linear","x01","acos","asin","hypot","sqrt","tan","Angle","angleOrNeg","angle","setDMS","neg","DMSToDeg","degToDMS","toDMS","HourAngle","RA","hr","Time","negOrTimeInSecs","setHMS","toHMS","si","sf","angleFromDeg","angleFromMin","angleFromSec","sec","degFromAngle","secFromAngle","secFromHourAngle","ha","Ellipsoid","radius","flat","φ","boa","su","atan","cu","hoa","A","e2","c1","c2","sincos2","lat","s2f","c2f","s2g","c2g","lon","s2λ","c2λ","ω","h1","h2","Ecliptic","εsin","εcos","sβ","cβ","sλ","cλ","Equatorial","sα","cα","st","H","sexa","sH","cH","sφ","cφ","azimuth","altitude","Horizontal","galacticNorth1950","sdα","cdα","sgδ","cgδ","galactic0Lon1950","Galactic","az","alt","sA","cA","sh","ch","sdLon","cdLon","sb","cb","galacticNorth","galacticLon0","nutation","T","D","F","Ω","Δψ","Δε","table22A","row","s0","s1","c0","meanObliquity","approxNutation","sΩ","cΩ","s2L","c2L","s2N","c2N","s2Ω","c2Ω","meanObliquityLaskar","nutationInRA","ε0","Elements","inc","node","peri","pode","ηT","πT","pT","ηt","πt","pt","EclipticPrecessor","epochFrom","epochTo","ηCoeff","πCoeff","pCoeff","π","η","sη","cη","eclFrom","sd","cd","B","C","eclTo","eFrom","ψ","ci","snp","cnp","eTo","properMotion","mα","mδ","epoch","ecl","toEquatorial","precess","series","coeffs","term","Planet","planet","TypeError","τ","R","coord","toFK5","Lp","sLp","cLp","L5","B5","trueVSOP87","position","λp","sλp","cλp","Δβ","aberration","first","firstYM","lastYM","interpolate","dyear","interp","interpolateX","monthOfYear","ΔT","deltat","fyear","fmonth","interpolateData","ck","D2R","mean","snap","newMoon","Mp","nfc","nc","M_","ac","fc","meanLunarMonth","meanNew","meanFirst","meanFull","meanLast","new","flc","full","GREGORIAN0JD","DAYS_OF_YEAR","Calendar","fromDate","_s","pad","isCalendarGregorian","getUTCHours","getUTCSeconds","getMilliseconds","fhour","fminute","fsecond","fms","isGregorian","LeapYearGregorian","LeapYearJulian","CalendarToJD","JDToCalendar","isJDCalendarGregorian","fromJD","dT","toJD","td","DayOfWeek","DayOfYearGregorian","DayOfYearJulian","CalendarJulian","CalendarJulianToJD","JDToCalendarJulian","CalendarGregorian","CalendarGregorianToJD","JDToCalendarGregorian","isJulian","DayOfYear","DayOfYearToCalendar","JDToDate","DateToJD","JDEToDate","fromJDE","DateToJDE","toJDE","MJDToJD","mjd","JDToMJD","DayOfYearToCalendarGregorian","DayOfYearToCalendarJulian","_I","lunarCoord","θ","Ca","M0","M1","Caa","Pt","lA","lB","bA","bB","rA","rB","setImmediate","setTimeout","meanRefraction","stdh0","stellar","solar","lunar","lunarMean","refraction","h0","corr","_refraction","stdh0Solar","stdh0LunarMean","R4","λ","γ","Qs","t1","t2","t3","t4","t5","t6","t7","t8","t9","t10","t11","W0","W1","W2","W3","W4","W5","W6","W7","W8","s2","e1","sW0","s3W0","s5W0","sW1","sW2","sW3","cW3","sW4","cW4","sW7","cW7","mimas","enceladus","tethys","dione","rhea","pʹ","spʹ","cpʹ","a1","a2","sN","cN","λʹ","subr","e3","e4","e5","sg","cg","titan","iʹ","Ωʹ","siʹ","ciʹ","sΩʹW8","cΩʹW8","g0","ϖ","s2g0","c2g0","eʹ","qq","b1","b2","sq","hyperion","ζ","θʹ","bs","cs","sζ","cζ","s2ζ","c2ζ","s3ζ","c3ζ","sζpη","cζpη","sζmη","cζmη","sχ","cχ","scs","ccs","iapetus","ϖʹ","Φ","ϖ0","μ","g1","ls","gs","lT","gT","u1","u2","u3","u4","u5","sl","cl","su1","cu1","su2","cu2","su3","cu3","su4","cu4","slu2","clu2","sg1gT","cg1gT","su52g","cu52g","su5ψ","cu5ψ","su2φ","cu2φ","s5","c5","mc0","jc0","sc0","dc0","mc2","jc2","sc2","dc2","terms","eq","J0","Δλ","S","longitude","ct","eq2","june","september","december","march2","june2","september2","december2","Julian","cal","CalEventMap","firstDays","calYear","Hebrew","Hijri","Jalaali","nowruz","vsop87Bearth","_vsop87Bearth","earth","planetposition","Equinox","_season","solstice","floorDate","lunarOffset","moonphase","CalendarChinese","_epochY","_epoch","_cache","sue","ny","midnight","_from","gc","newYear","nm","previousNewMoon","inMajorSolarTerm","isLeapMonth","gyear","yearFromEpochCycle","lm","nextNewMoon","gcal","ts","timeshiftUTC","mn","lonDeg","cnt","sue1","sue2","m11n","m12","m13","leapSui","solarTerm","UTC_DATES","CalendarKorean","CalendarVietnamese","banglas","Chinese","monthNames","weekDays","seasonNames","digits","digitToBangla","digit","banglaToDigit","bangla","MILLISECONDS_PER_DAY","monthDaysNorm","monthDaysLeap","toEpoch","CalendarBengaliRevised","monthDays","fromGregorian","formatStr","BengaliRevised","CalBengali","CalEventFactory","DateFn","parser","ok","cache","Map","has","ruleFn","postProc","getEvent","HolidayRule","ruleObj","dateStr","TYPES","Holidays","init","getArgs","__conf","__types","types","setLanguages","__data","languages","getRules","__timezone","getTimezones","setHoliday","language","langs","unshift","typeIndex","ruleIndex","ruleLength","filterMap","_dateByRule","_translate","startSorter","typeSorter","ruleSorter","hash","fromTimezone","hdrule","holidayRule","entries","getRegions","getStates","getCountries","__languages","getDayOff","_rule","odate","getSubstitueNames","license","AD","ca","es","en","dayoff","AE","ar","AG","weekend","AI","AL","orthodox","AM","hy","AO","AR","AS","note","AT","de","ACT","NSW","NT","QLD","SA","TAS","VIC","WA","AW","pap","nl","AX","sv","AZ","BA","sr","BIH","BRC","SRP","BB","BD","bn","BE","fr","BRU","DE","VLG","WAL","BF","BG","bg","BH","BI","rn","BJ","BL","BM","BN","BO","qu","ay","BQ","SE","BR","AC","AP","CE","DF","MA","MG","MS","MT","PA","PB","PE","RE","PR","CU","RJ","RN","RO","RR","RS","SC","SP","TO","BS","BW","BY","be","ru","BZ","CA","AB","BC","MB","NB","NL","NS","NU","ON","QC","SK","YT","CC","CD","CF","CG","CH","it","ZH","LU","UR","SZ","OW","NW","GL","sources","ZG","FR","SO","SH","SG","GR","TG","TI","VD","VS","NE","GE","JU","CI","CK","rar","Aitutaki","Atiu","Mangaia","Manihiki","Mitiaro","Palmerston","Penrhyn","Pukapuka","Rakahanga","Rarotonga","CL","TA","CM","CN","zh","CO","CR","CV","CW","CX","CY","el","CZ","cz","EVANG","HB","HE","HH","MV","NI","RP","SL","SN","ST","TH","EIC","UH","WAK","DJ","so","aa","DK","da","DM","DO","DZ","EC","QU","EE","et","EG","EH","ER","ES","AN","CB","FU","GC","LG","LP","LA","TE","CT","EX","GA","IB","MC","MD","ML","NC","PV","RI","VC","ET","am","FI","fi","FJ","fj","FO","fo","MQ","GP","GF","MF","GB","ALD","ENG","NIR","SCT","WLS","GD","ge","GH","GI","kl","GM","GN","GQ","GT","GU","GW","GY","lng","HK","HN","HR","HT","HU","hu","IC","ID","IE","IL","he","IM","IR","fa","IS","is","IT","JE","JM","JP","KE","sw","KM","KN","KR","ko","KY","LC","LI","LR","LS","lt","lb","LV","lv","LY","ro","ME","mg","MK","mk","MR","mt","MW","MX","MY","MZ","NA","NG","NO","no","NZ","mi","AUK","BOP","CAN","Timaru","CIT","GIS","HKB","MBH","MWT","NSN","NTL","OTA","STL","TKI","WKO","WGN","WTC","Buller","CUS","PH","fil","PL","pl","PM","PT","PY","RU","RW","rw","crs","SD","HL","SI","SJ","sk","SM","wo","WO","SR","srn","SS","SV","SX","TC","TD","TN","TR","tr","TT","TW","TZ","UA","uk","UG","US","AK","DC","FL","HI","IN","IA","KS","MI","MN","MO","NV","NH","NJ","NM","NY","ND","OH","OK","OR","TX","VT","VA","WV","WI","WY","UY","la","VE","G","V","VG","VI","VN","vi","VU","XK","ZA","ZM","ZW","sn","nd","xh","kck","ga","Deepavali","Vesak","Holi","Thaipusam","substitutes","HolidaysParser"],"sourceRoot":""}
\No newline at end of file