@tubular/astronomy
Version:
Astronomical calculations for planetary positions, moon phases, eclipses, rise, transit, and set times, and more.
111 lines • 870 kB
JavaScript
"use strict";var M=require("@tubular/math"),c=require("@tubular/util")
;const e=-271820,o=275759,z=6e4,A=36e5,b=864e5,i=86400,a=2440587.5,t=32.184/i,p=2400000.5,n=["BC","AD","Before Christ","Anno Domini"],s=["January","February","March","April","May","June","July","August","September","October","November","December"],O=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],r=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],d=["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],l=["Su","Mo","Tu","We","Th","Fr","Sa"];let q,u
;const B=[["y","year"],["q","quarter"],["m","month"],["d","day"],["dow","dayOfWeek"],["dowmi","dayOfWeekMonthIndex"],["dy","dayOfYear"],["n","epochDay"],["j","isJulian"],["yw","yearByWeek"],["w","week"],["dw","dayByWeek"],["ywl","yearByWeekLocale"],["wl","weekLocale"],["dwl","dayByWeekLocale"],["hrs","hour"],["min","minute"],["sec","second"]],L=["y","q","m","d","dow","dowmi","dy","n","j","year","quarter","month","day","dayOfWeek","dayOfWeekMonthIndex","dayOfYear","epochDay","isJulian","yw","w","dw","yearByWeek","week","dayByWeek","ywl","wl","dwl","yearByWeekLocale","weekLocale","dayByWeekLocale","hrs","min","sec","hour","minute","second","millis","utcOffset","dstOffset","occurrence","deltaTai","jde","mjde","jdu","mjdu","error"]
;function W(M){for(const[c,e]of B)M.hasOwnProperty(c)?M[e]=M[c]:M.hasOwnProperty(e)&&(M[c]=M[e]);return M}function f(M,c=!1){for(const[e,o]of B)delete M[c?e:o];return M}const N=new Set(["y","year","m","month","d","day","hrs","hour","min","minute","sec","second","millis"]),C=new Error("Invalid ISO date/time");function T(M,c=!1){let e=1;M.startsWith("-")?(e=-1,M=M.substr(1)):M.startsWith("+")&&(M=M.substr(1));const o=M.includes(":")?M.split(":"):M.match(/../g)??["0"]
;let z=60*(60*Number(o[0])+Number(o[1]??0));if(o[2]){const M=Number(o[2]);z+=c?M<30?0:60:M}return e*z}function m(M,c,e){const o=M instanceof Intl.DateTimeFormat?M.formatToParts(c):M;e=e??c;const z=o.find(M=>M.type===e);return z?z.value:"???"}function h(M,e,o){return c.toNumber(c.convertDigitsToAscii(m(M,e,o)))}var g,X;(X=g||(g={}))[X.PURE_GREGORIAN=0]="PURE_GREGORIAN",X[X.PURE_JULIAN=1]="PURE_JULIAN";var R,E;!function(M){M[M.SUNDAY=0]="SUNDAY",M[M.MONDAY=1]="MONDAY",M[M.TUESDAY=2]="TUESDAY",
M[M.WEDNESDAY=3]="WEDNESDAY",M[M.THURSDAY=4]="THURSDAY",M[M.FRIDAY=5]="FRIDAY",M[M.SATURDAY=6]="SATURDAY"}(R||(R={})),function(M){M[M.JANUARY=1]="JANUARY",M[M.FEBRUARY=2]="FEBRUARY",M[M.MARCH=3]="MARCH",M[M.APRIL=4]="APRIL",M[M.MAY=5]="MAY",M[M.JUNE=6]="JUNE",M[M.JULY=7]="JULY",M[M.AUGUST=8]="AUGUST",M[M.SEPTEMBER=9]="SEPTEMBER",M[M.OCTOBER=10]="OCTOBER",M[M.NOVEMBER=11]="NOVEMBER",M[M.DECEMBER=12]="DECEMBER"}(E||(E={}))
;const S=-9999999,D=9999999,_=-141427,P=new Error("This DateTime instance is locked and immutable");function y(M,e,o,z,A=!1){let b,i,a,t;if(c.isNumber(M))a=M;else{if(c.isArray(M)&&M.length>=3&&c.isNumber(M[0]))return M;c.isArray(M)?(a=M[0],e=M[1]):c.isObject(M)&&(W(M),b=M.n,i=A?void 0:M.j,a=M.y,t=M.dy,e=M.m,o=M.d)}if(null==a){if(null!=b){if("g"===z||!1===i)return y(H(b));if("j"===z||!0===i)return y(j(b));if(z){++z.computeWeekValues;const M=y(z.getDateFromDayNumber(b));return--z.computeWeekValues,M}
return y(x(b))}throw new Error("Calendar: Invalid date arguments")}return null==e&&null==o&&null!=t?y("g"===z||!1===i?H(w(a,1,0)+t):"j"===z||!0===i?j(k(a,1,0)+t):x(I(a,1,0)+t)):[a,e=e??1,o=o??1,null==i?-1:+i]}function I(M,c,e){let o,z;for([o,c,e,z]=y(M,c,e);c<1;)c+=12,--o;for(;c>12;)c-=12,++o;return 1===z||0!==z&&function(M,c,e){let o,z;return[o,c,e,z]=y(M,c,e),1===z||o<1582||1582===o&&(c<10||10===c&&e<15)}(o,c,e)?k(o,c,e):w(o,c,e)}function w(c,e,o){let z;for([z,e,o]=y(c,e,o,"g");e<1;)e+=12,--z
;for(;e>12;)e-=12,++z;return 367*z-M.div_rd(7*(z+M.div_tt0(e+9,12)),4)-M.div_tt0(3*(M.div_tt0(z+M.div_tt0(e-9,7),100)+1),4)+M.div_tt0(275*e,9)+o-719559}function k(c,e,o){let z;for([z,e,o]=y(c,e,o,"j");e<1;)e+=12,--z;for(;e>12;)e-=12,++z;return 367*z-M.div_rd(7*(z+M.div_tt0(e+9,12)),4)+M.div_tt0(275*e,9)+o-719561}function U(M,c){return 9===c||4===c||6===c||11===c?30:2!==c?31:M%4!=0||M%100==0&&M%400!=0?28:29}function G(M,c){return 9===c||4===c||6===c||11===c?30:2!==c?31:M%4==0?29:28}function v(c){
return M.mod(c+4,7)}function F(c,e,o,z){const A=I(c,e,z),b=v(A),i=M.mod(o-b,7);if(1582===c&&10===e){const M=x(A+i);z=M.y!==c||M.m!==e?0:M.d}else(z+=i)>function(M,c){return 9===c||4===c||6===c||11===c?30:2!==c?31:M%4==0&&(M<1583||M%100!=0||M%400==0)?29:28}(c,e)&&(z=0);return z}function x(M){return M>=_?H(M):j(M)}function H(M){let c,e,o,z,A;for(c=Math.floor((M+719528)/365.2425);M<w(c,1,1);)--c;for(;M>=w(c+1,1,1);)++c;for(o=z=M-w(c,1,1)+1,e=1;o>(A=U(c,e));++e)o-=A;return W({y:c,m:e,d:o,dy:z,n:M,j:!1})}
for(let M=-207084;M<=205084;++M)j(M);function j(M){let c,e,o,z;for(c=Math.floor((M+719530)/365.25),o=M-k(c,1,1)+1,e=1;o>(z=G(c,e));++e)o-=z;return W({y:c,m:e,d:o,n:M,j:!0})}function K(M,c,e,o,i,a,t){return(t=t||0)+1e3*(a=a||0)+i*z+o*A+I(M,c,e)*b}function V(c){const e=x(M.div_rd(c,b));return e.millis=M.mod(c,1e3),c=M.div_rd(c,1e3),e.sec=M.mod(c,60),c=M.div_rd(c,60),e.min=M.mod(c,60),c=M.div_rd(c,60),e.hrs=M.mod(c,24),e.utcOffset=0,e.dstOffset=0,e.occurrence=1,W(e)}function Y(M,e,o){let z
;return[z,e,o]=y(M,e,o),(z<0?"-":"")+c.padLeft(Math.abs(z),4,"0")+"-"+c.padLeft(e,2,"0")+"-"+c.padLeft(o,2,"0")}function J(M){let c=1;(M=M.trim()).startsWith("-")&&(c=-1,M=M.substring(1).trim());let e=/^(\d+)-(\d{1,2}(?=\D))(?:-(\d+))?$/.exec(M);if(e||(e=/^(\d{1,5})$/.exec(M)),e||(e=/^(\d{4,})(\d\d)(\d\d)$/.exec(M)),!e)throw new Error("Invalid ISO date");return W({y:Number(e[1])*c,m:Number(e[2]??1),d:Number(e[3]??1)})}class Z{constructor(M,c,e){this.gcYear=1582,this.gcMonth=10,this.gcDate=15,
this.firstGregorianDay=_,this.firstDateInGCChangeMonth=1,this.lengthOfGCChangeMonth=21,this.lastJulianYear=Number.MIN_SAFE_INTEGER,this.lastJulianMonth=Number.MIN_SAFE_INTEGER,this.lastJulianDate=4,this._locked=!1,this.lock=()=>this._lock(),this.computeWeekValues=0,M===g.PURE_GREGORIAN?this.setGregorianChange(S,0,0):M===g.PURE_JULIAN?this.setGregorianChange(D,0,0):0===arguments.length||null==M?this.setGregorianChange(1582,10,15):this.setGregorianChange(M,c,e)}_lock(M=!0){
return this._locked=this._locked||M,this}get locked(){return this._locked}setPureGregorian(M){if(this.locked)throw P;return M?this.setGregorianChange(S,0,0):this.setGregorianChange(1582,10,15),this}isPureGregorian(){return this.gcYear<=S}setPureJulian(M){if(this.locked)throw P;return M?this.setGregorianChange(D,0,0):this.setGregorianChange(1582,10,15),this}isPureJulian(){return this.gcYear>=D}setGregorianChange(M,e,o){if(this.locked)throw P;if("g"===M||"G"===M)return this.setPureGregorian(!0),this
;if("j"===M||"J"===M)return this.setPureJulian(!0),this;if(c.isString(M))M=J(M);else if(c.isObject(M)&&!c.isArray(M)&&(null==M.y||null==M.m||null==M.d||M.j))throw new Error("Gregorian change date must be an explicit non-Julian y-m-d date");let z;if([z,e,o]=y(M,e,o,this),z<300){if((0!==e||0!==o)&&z>S)throw new Error("Calendar: Gregorian change year cannot be less than 300");this.firstGregorianDay=Number.MIN_SAFE_INTEGER,this.gcYear=S}else if(z>3900){
if((0!==e||0!==o)&&z<D)throw new Error("Calendar: Gregorian change year cannot be greater than 3900");this.firstGregorianDay=Number.MAX_SAFE_INTEGER,this.gcYear=D}else if(!function(M,c,e){let o;[o,c,e]=y(M,c,e,"g");const z=H(w(o,c,e));return o===z.y&&c===z.m&&e===z.d}(z,e,o))throw new Error("Calendar: Invalid Gregorian date: "+Y(z,e,o));this.gcYear=z,this.gcMonth=e,this.gcDate=o,this.firstGregorianDay=w(z,e,o);const A=j(this.firstGregorianDay-1);return this.lastJulianDate=A.d,
this.lengthOfGCChangeMonth=U(z,e),A.y===z&&A.m===e?(this.lastJulianYear=Number.MIN_SAFE_INTEGER,this.lastJulianMonth=Number.MIN_SAFE_INTEGER,this.firstDateInGCChangeMonth=1,this.lengthOfGCChangeMonth-=o-this.lastJulianDate-1):(this.lastJulianYear=A.y,this.lastJulianMonth=A.m,this.firstDateInGCChangeMonth=o,this.lengthOfGCChangeMonth-=o-1),this}getGregorianChange(){return W({y:this.gcYear,m:this.gcMonth,d:this.gcDate,n:this.firstGregorianDay,j:!1})}isJulianCalendarDate(M,c,e){let o,z
;return[o,c,e,z]=y(M,c,e,this),1===z||o<this.gcYear||o===this.gcYear&&(c<this.gcMonth||c===this.gcMonth&&e<this.gcDate)}getDayNumber(M,e,o){if(c.isObject(M)&&!c.isArray(M))if(W(M),null!=M.y||null==M.yw&&null==M.ywl)null!=M.y&&null==M.m&&null!=M.dy&&(M=this.addDaysToDate(M.dy-1,{y:M.y,m:1,d:1}));else{const c=null!=M.ywl,z=M.ywl??M.yw,A=c&&null!=e?e:1,b=c&&null!=o?o:4,i=(c?M.wl:M.w)??1,a=(c?M.dwl:M.dw)??1;++this.computeWeekValues;const t=this.getStartDateOfFirstWeekOfYear(z,A,b).n+7*(i-1)+a-1
;M=this.getDateFromDayNumber(t),--this.computeWeekValues}let z,A;for([z,e,o,A]=y(M,e,o,this);e<1;)e+=12,--z;for(;e>12;)e-=12,++z;return A<0&&(z===this.lastJulianYear&&e===this.lastJulianMonth?o>this.lastJulianDate&&(o=this.lastJulianDate+1):z===this.gcYear&&e===this.gcMonth&&(o>this.lastJulianDate||this.lastJulianMonth!==this.gcMonth&&this.lastJulianMonth>0)&&o<this.gcDate&&(o=this.gcDate)),1===A||0!==A&&this.isJulianCalendarDate(z,e,o)?k(z,e,o):w(z,e,o)}getDateFromDayNumber(M,c,e){let o
;return o=M>=this.firstGregorianDay?H(M):j(M),0===this.computeWeekValues&&([o.yw,o.w,o.dw]=this.getYearWeekAndWeekday(o,c,e)),W(o)}getFirstDateInMonth(M,c){return M===this.gcYear&&c===this.gcMonth?this.firstDateInGCChangeMonth:1}getLastDateInMonth(M,c){return 0===c?(c=12,--M):13===c&&(c=1,++M),M===this.lastJulianYear&&c===this.lastJulianMonth?this.lastJulianDate:9===c||4===c||6===c||11===c?30:2!==c?31:M%4==0&&(M<this.gcYear||M===this.gcYear&&this.gcMonth>2||M%100!=0||M%400==0)?29:28}getDaysInMonth(M,c){
return 0===c?(c=12,--M):13===c&&(c=1,++M),M===this.gcYear&&c===this.gcMonth?this.lengthOfGCChangeMonth:M===this.lastJulianYear&&c===this.lastJulianMonth?this.lastJulianDate:9===c||4===c||6===c||11===c?30:2!==c?31:this.getDayNumber(M,3,1)-this.getDayNumber(M,2,1)}getDaysInYear(M){return this.getDayNumber(M+1,1,1)-this.getDayNumber(M,1,1)}getDayOfWeek(M,e,o){return c.isNumber(M)&&null==e?v(M):v(this.getDayNumber(M,e,o))}getDateOfNthWeekdayOfMonth(c,e,o,z){const A=z>=6;let b=this.getDayNumber(c,e,1)
;const i=v(b);let a,t=0;if(i===o&&1===z)return 1;for(b+=M.mod(o-i,7),a=this.getDateFromDayNumber(b);a.m===e;){if(t=a.d,0===--z)return t;b+=7,a=this.getDateFromDayNumber(b)}return A?t:0}getDayOfWeekInMonthCount(c,e,o){const z=this.getDayNumber(c,e,this.getDateOfNthWeekdayOfMonth(c,e,o,1)),A=this.getDayNumber(c,e+1,1);return M.div_tt0(A-z-1,7)+1}getDayOfWeekInMonthIndex(c,e,o){let z;[z,e,o]=y(c,e,o,this);const A=this.getDayNumber(z,e,1),b=this.getDayNumber(z,e,o);return M.div_rd(b-A,7)+1}
getDayOnOrAfter(c,e,o,z){const A=this.getDayNumber(c,e,z),b=v(A),i=M.mod(o-b,7);if(c===this.gcYear&&e===this.gcMonth){const M=this.getDateFromDayNumber(A+i);z=M.y!==c||M.m!==e?0:M.d}else(z+=i)>this.getLastDateInMonth(c,e)&&(z=0);return z}getDayOnOrBefore(c,e,o,z){const A=this.getDayNumber(c,e,z),b=v(A),i=M.mod(b-o,7);if(c===this.gcYear&&e===this.gcMonth){const M=this.getDateFromDayNumber(A-i);z=M.y!==c||M.m!==e?0:M.d}else(z-=i)<0&&(z=0);return z}addDaysToDate(M,c,e,o){
return this.getDateFromDayNumber(this.getDayNumber(c,e,o)+M)}getCalendarMonth(c,e,o=0){const z=[];let A,b,i,a=this.getDayNumber(c,e,this.getFirstDateInMonth(c,e));A=M.mod(o-v(a),-7),a+=A,b=this.getDateFromDayNumber(a,o);do{z.push(b),++a,++A,b=this.getDateFromDayNumber(a),i=b.m}while(A<1||i===e||v(a)!==o);return z}isValidDate(M,c,e){let o;[o,c,e]=y(M,c,e,this,!0);const z=this.getDateFromDayNumber(this.getDayNumber(o,c,e));return o===z.y&&c===z.m&&e===z.d}normalizeDate(M,c,e){let o
;if([o,c,e]=y(M,c,e,this,!0),c<1?(c+=12,o-=1):c>12&&(c-=12,o+=1),!this.isValidDate(o,c,e)){let M;if(e<(M=this.getFirstDateInMonth(o,c)))e=M;else if(e>(M=this.getLastDateInMonth(o,c)))e=M;else{const M=this.getMissingDateRange(o,c);null!=M&&(e=M[1]+1)}}return W({y:o,m:c,d:e})}getMissingDateRange(M,c){if(M===this.lastJulianYear&&c===this.lastJulianMonth){const e=G(M,c);if(e>this.lastJulianDate)return[this.lastJulianDate+1,e]
}else if(M===this.gcYear&&c===this.gcMonth&&this.gcDate>1&&this.gcDate>this.lastJulianDate+1)return[this.lastJulianDate+1,this.gcDate-1];return null}getStartDateOfFirstWeekOfYear(c,e=1,o=4){let z=1;7===o&&(++z,--o);const A=M.mod(this.getDayOfWeek(c,1,z)-e,7);return this.addDaysToDate((A>7-o?7:0)-A,c,1,z)}getWeeksInYear(M,c=1,e=4){const o=this.getStartDateOfFirstWeekOfYear(M,c,e);return(this.getStartDateOfFirstWeekOfYear(M+1,c,e).n-o.n)/7}getYearWeekAndWeekday(e,o,z,A,b){const[i,a,t]=y(e,o,z,this,!0)
;c.isObject(e)&&(A=o,b=z),A=A??1,b=b??4,++this.computeWeekValues;let p=i,n=this.getStartDateOfFirstWeekOfYear(i,A,b);const s=this.getStartDateOfFirstWeekOfYear(i+1,A,b),O=this.getDayNumber(i,a,t);return n.n>O?(n=this.getStartDateOfFirstWeekOfYear(i-1,A,b),--p):s.n<=O&&(n=s,++p),--this.computeWeekValues,[p,M.floor((O-n.n)/7)+1,M.mod(O-n.n,7)+1]}}var Q=Intl.DateTimeFormat;let $=!1,MM=!0,cM="en";try{if($="undefined"!=typeof Intl&&!!Intl?.DateTimeFormat,$){MM=new Q("en-us",{dateStyle:"full"
}).format(0)!==new Q("en-us",{dateStyle:"short"}).format(0),MM||console.warn("Intl.DateTimeFormatOptions dateStyle and timeStyle not available")}else console.warn("Intl.DateTimeFormat not available")}catch(X){$=!1,console.warn("Intl.DateTimeFormat not available: %s",X.message||X.toString())}try{
$?cM=(new Intl.DateTimeFormat).resolvedOptions().locale:"object"==typeof process&&process.env?.LANG?cM=process.env.LANG.replace(/\..*$/,"").replace(/_/g,"-"):"object"==typeof navigator&&navigator.language&&(cM=navigator.language)}catch{cM="en"}const eM=$,oM=MM,zM=cM,AM={full:{year:"numeric",month:"long",day:"numeric",weekday:"long"},long:{year:"numeric",month:"long",day:"numeric"},medium:{year:"numeric",month:"short",day:"numeric"},short:{year:"2-digit",month:"numeric",day:"numeric"}},bM={full:{
hour:"numeric",minute:"2-digit",second:"2-digit",timeZoneName:"long"},long:{hour:"numeric",minute:"2-digit",second:"2-digit",timeZoneName:"short"},medium:{hour:"numeric",minute:"2-digit",second:"2-digit"},short:{hour:"numeric",minute:"2-digit"}};function iM(M,c){Object.keys(c).forEach(e=>M[e]=M[e]??c[e])}function aM(M){return eM&&M?(c.isString(M)&&M.includes(",")&&(M=M.split(",").map(M=>M.trim().replace(/-u-.*$/,""))),
c.isArray(M)?0===M.length?"en":1===M.length?aM(M[0]):M.map(M=>aM(M)):M.replace(/_/g,"-").toLowerCase()):"en-us"}function tM(M){return M.replace(/-[^-]*?$/i,"")}function pM(M,e){let o;M=aM(M),c.isArray(M)||(M=[M]);for(let c of M){let M;do{o=e[c],M=tM(c)}while(!o&&c.includes("-")&&(c=M));if(o)break}return o}const nM={af:[["vm","VM"],["nm","NM"]],ar:[["ص"],["م"]],
az:[["gecə"],["gecə"],["gecə"],["gecə"],["səhər"],["səhər"],["səhər"],["səhər"],["səhər"],["səhər"],["səhər"],["səhər"],["gündüz"],["gündüz"],["gündüz"],["gündüz"],["gündüz"],["axşam"],["axşam"],["axşam"],["axşam"],["axşam"],["axşam"],["axşam"]],be:[["ночы"],["ночы"],["ночы"],["ночы"],["раніцы"],["раніцы"],["раніцы"],["раніцы"],["раніцы"],["раніцы"],["раніцы"],["раніцы"],["дня"],["дня"],["дня"],["дня"],["дня"],["вечара"],["вечара"],["вечара"],["вечара"],["вечара"],["вечара"],["вечара"]],
bn:[["রাত"],["রাত"],["রাত"],["রাত"],["সকাল"],["সকাল"],["সকাল"],["সকাল"],["সকাল"],["সকাল"],["দুপুর"],["দুপুর"],["দুপুর"],["দুপুর"],["দুপুর"],["দুপুর"],["দুপুর"],["বিকাল"],["বিকাল"],["বিকাল"],["রাত"],["রাত"],["রাত"],["রাত"]],"bn-bd":[["রাত"],["রাত"],["রাত"],["রাত"],["ভোর"],["ভোর"],["সকাল"],["সকাল"],["সকাল"],["সকাল"],["সকাল"],["সকাল"],["দুপুর"],["দুপুর"],["দুপুর"],["বিকাল"],["বিকাল"],["বিকাল"],["সন্ধ্যা"],["সন্ধ্যা"],["রাত"],["রাত"],["রাত"],["রাত"]],
bo:[["སྔ་དྲོ","མཚན་མོ"],["སྔ་དྲོ","མཚན་མོ"],["སྔ་དྲོ","མཚན་མོ"],["སྔ་དྲོ","མཚན་མོ"],["སྔ་དྲོ","ཞོགས་ཀས"],["སྔ་དྲོ","ཞོགས་ཀས"],["སྔ་དྲོ","ཞོགས་ཀས"],["སྔ་དྲོ","ཞོགས་ཀས"],["སྔ་དྲོ","ཞོགས་ཀས"],["སྔ་དྲོ","ཞོགས་ཀས"],["སྔ་དྲོ","ཉིན་གུང"],["སྔ་དྲོ","ཉིན་གུང"],["ཕྱི་དྲོ","ཉིན་གུང"],["ཕྱི་དྲོ","ཉིན་གུང"],["ཕྱི་དྲོ","ཉིན་གུང"],["ཕྱི་དྲོ","ཉིན་གུང"],["ཕྱི་དྲོ","ཉིན་གུང"],["ཕྱི་དྲོ","དགོང་དག"],["ཕྱི་དྲོ","དགོང་དག"],["ཕྱི་དྲོ","དགོང་དག"],["ཕྱི་དྲོ","མཚན་མོ"],["ཕྱི་དྲོ","མཚན་མོ"],["ཕྱི་དྲོ","མཚན་མོ"],["ཕྱི་དྲོ","མཚན་མོ"]],
br:[["a.m.","A.M."],["g.m.","G.M."]],el:[["πμ","ΠΜ","π.μ."],["μμ","ΜΜ","μ.μ."]],eo:[["atm","ATM","a.t.m.","A.T.M."],["ptm","PTM","p.t.m.","P.T.M."]],fa:[["قبل از ظهر"],["بعد از ظهر"]],gu:[["રાત"],["રાત"],["રાત"],["રાત"],["સવાર"],["સવાર"],["સવાર"],["સવાર"],["સવાર"],["સવાર"],["બપોર"],["બપોર"],["બપોર"],["બપોર"],["બપોર"],["બપોર"],["બપોર"],["સાંજ"],["સાંજ"],["સાંજ"],["રાત"],["રાત"],["રાત"],["રાત"]],he:[["לפ׳","לפ׳","לפנה״צ"],["אח׳","אח׳","אחה״צ"]],
hi:[["पू","रात"],["पू","रात"],["पू","रात"],["पू","रात"],["पू","सुबह"],["पू","सुबह"],["पू","सुबह"],["पू","सुबह"],["पू","सुबह"],["पू","सुबह"],["पू","दोपहर"],["पू","दोपहर"],["अ","दोपहर"],["अ","दोपहर"],["अ","दोपहर"],["अ","दोपहर"],["अ","दोपहर"],["अ","शाम"],["अ","शाम"],["अ","शाम"],["अ","रात"],["अ","रात"],["अ","रात"],["अ","रात"]],hu:[["de","DE","de."],["du","DU","du."]],
hy:[["գիշերվա"],["գիշերվա"],["գիշերվա"],["գիշերվա"],["առավոտվա"],["առավոտվա"],["առավոտվա"],["առավոտվա"],["առավոտվա"],["առավոտվա"],["առավոտվա"],["առավոտվա"],["ցերեկվա"],["ցերեկվա"],["ցերեկվա"],["ցերեկվա"],["ցերեկվա"],["երեկոյան"],["երեկոյան"],["երեկոյան"],["երեկոյան"],["երեկոյան"],["երեկոյան"],["երեկոյան"]],ja:[["午前"],["午後"]],
jv:[["isuk","Isuk","enjing"],["isuk","Isuk","enjing"],["isuk","Isuk","enjing"],["isuk","Isuk","enjing"],["isuk","Isuk","enjing"],["isuk","Isuk","enjing"],["isuk","Isuk","enjing"],["isuk","Isuk","enjing"],["isuk","Isuk","enjing"],["isuk","Isuk","enjing"],["isuk","Isuk","enjing"],["isuk","Isuk","siyang"],["wengi","Wengi","siyang"],["wengi","Wengi","siyang"],["wengi","Wengi","siyang"],["wengi","Wengi","sonten"],["wengi","Wengi","sonten"],["wengi","Wengi","sonten"],["wengi","Wengi","sonten"],["wengi","Wengi","ndalu"],["wengi","Wengi","ndalu"],["wengi","Wengi","ndalu"],["wengi","Wengi","ndalu"],["wengi","Wengi","ndalu"]],
km:[["ព្រឹក"],["ល្ងាច"]],
kn:[["ರಾತ್ರಿ","ಪೂರ್ವಾಹ್ನ"],["ರಾತ್ರಿ","ಪೂರ್ವಾಹ್ನ"],["ರಾತ್ರಿ","ಪೂರ್ವಾಹ್ನ"],["ರಾತ್ರಿ","ಪೂರ್ವಾಹ್ನ"],["ಬೆಳಿಗ್ಗೆ","ಪೂರ್ವಾಹ್ನ"],["ಬೆಳಿಗ್ಗೆ","ಪೂರ್ವಾಹ್ನ"],["ಬೆಳಿಗ್ಗೆ","ಪೂರ್ವಾಹ್ನ"],["ಬೆಳಿಗ್ಗೆ","ಪೂರ್ವಾಹ್ನ"],["ಬೆಳಿಗ್ಗೆ","ಪೂರ್ವಾಹ್ನ"],["ಬೆಳಿಗ್ಗೆ","ಪೂರ್ವಾಹ್ನ"],["ಮಧ್ಯಾಹ್ನ","ಪೂರ್ವಾಹ್ನ"],["ಮಧ್ಯಾಹ್ನ","ಪೂರ್ವಾಹ್ನ"],["ಮಧ್ಯಾಹ್ನ","ಅಪರಾಹ"],["ಮಧ್ಯಾಹ್ನ","ಅಪರಾಹ"],["ಮಧ್ಯಾಹ್ನ","ಅಪರಾಹ"],["ಮಧ್ಯಾಹ್ನ","ಅಪರಾಹ"],["ಮಧ್ಯಾಹ್ನ","ಅಪರಾಹ"],["ಸಂಜೆ","ಅಪರಾಹ"],["ಸಂಜೆ","ಅಪರಾಹ"],["ಸಂಜೆ","ಅಪರಾಹ"],["ರಾತ್ರಿ","ಅಪರಾಹ"],["ರಾತ್ರಿ","ಅಪರಾಹ"],["ರಾತ್ರಿ","ಅಪರಾಹ"],["ರಾತ್ರಿ","ಅಪರಾಹ"]],
ko:[["오전"],["오후"]],ku:[["BN","بهیانی"],["PN","ئێواره"]],lo:[["ຕອນເຊົ້າ"],["ຕອນແລງ"]],ml:[["രാത്രി"],["രാത്രി"],["രാത്രി"],["രാത്രി"],["രാവിലെ"],["രാവിലെ"],["രാവിലെ"],["രാവിലെ"],["രാവിലെ"],["രാവിലെ"],["രാവിലെ"],["രാവിലെ"],["ഉച്ച കഴിഞ്ഞ്"],["ഉച്ച കഴിഞ്ഞ്"],["ഉച്ച കഴിഞ്ഞ്"],["ഉച്ച കഴിഞ്ഞ്"],["ഉച്ച കഴിഞ്ഞ്"],["വൈകുന്നേരം"],["വൈകുന്നേരം"],["വൈകുന്നേരം"],["രാത്രി"],["രാത്രി"],["രാത്രി"],["രാത്രി"]],mn:[["ү.ө.","ҮӨ"],["ү.х.","ҮХ"]],
mr:[["म.पू.","पहाटे"],["म.पू.","पहाटे"],["म.पू.","पहाटे"],["म.पू.","पहाटे"],["म.पू.","पहाटे"],["म.पू.","पहाटे"],["म.पू.","सकाळी"],["म.पू.","सकाळी"],["म.पू.","सकाळी"],["म.पू.","सकाळी"],["म.पू.","सकाळी"],["म.पू.","सकाळी"],["म.उ.","दुपारी"],["म.उ.","दुपारी"],["म.उ.","दुपारी"],["म.उ.","दुपारी"],["म.उ.","दुपारी"],["म.उ.","सायंकाळी"],["म.उ.","सायंकाळी"],["म.उ.","सायंकाळी"],["म.उ.","रात्री"],["म.उ.","रात्री"],["म.उ.","रात्री"],["म.उ.","रात्री"]],
ms:[["pagi","PG"],["pagi","PG"],["pagi","PG"],["pagi","PG"],["pagi","PG"],["pagi","PG"],["pagi","PG"],["pagi","PG"],["pagi","PG"],["pagi","PG"],["pagi","PG"],["tengahari","PG"],["tengahari","PTG"],["tengahari","PTG"],["tengahari","PTG"],["petang","PTG"],["petang","PTG"],["petang","PTG"],["petang","PTG"],["malam","PTG"],["malam","PTG"],["malam","PTG"],["malam","PTG"],["malam","PTG"]],
my:[["နံနက်","နံနက်"],["နံနက်","နံနက်"],["နံနက်","နံနက်"],["နံနက်","နံနက်"],["နံနက်","နံနက်"],["နံနက်","နံနက်"],["နံနက်","နံနက်"],["နံနက်","နံနက်"],["နံနက်","နံနက်"],["နံနက်","နံနက်"],["နံနက်","နံနက်"],["နံနက်","နံနက်"],["ညနေ","မွန်းတည့်"],["ညနေ","နေ့လယ်"],["ညနေ","နေ့လယ်"],["ညနေ","နေ့လယ်"],["ညနေ","ညနေ"],["ညနေ","ညနေ"],["ညနေ","ညနေ"],["ညနေ","ည"],["ညနေ","ည"],["ညနေ","ည"],["ညနေ","ည"],["ညနေ","ည"]],
ne:[["पूर्वाह्न","राति"],["पूर्वाह्न","राति"],["पूर्वाह्न","राति"],["पूर्वाह्न","बिहान"],["पूर्वाह्न","बिहान"],["पूर्वाह्न","बिहान"],["पूर्वाह्न","बिहान"],["पूर्वाह्न","बिहान"],["पूर्वाह्न","बिहान"],["पूर्वाह्न","बिहान"],["पूर्वाह्न","बिहान"],["पूर्वाह्न","बिहान"],["अपराह्न","दिउँसो"],["अपराह्न","दिउँसो"],["अपराह्न","दिउँसो"],["अपराह्न","दिउँसो"],["अपराह्न","साँझ"],["अपराह्न","साँझ"],["अपराह्न","साँझ"],["अपराह्न","साँझ"],["अपराह्न","राति"],["अपराह्न","राति"],["अपराह्न","राति"],["अपराह्न","राति"]],
ru:[["ночи"],["ночи"],["ночи"],["ночи"],["утра"],["утра"],["утра"],["утра"],["утра"],["утра"],["утра"],["утра"],["дня"],["дня"],["дня"],["дня"],["дня"],["вечера"],["вечера"],["вечера"],["вечера"],["вечера"],["вечера"],["вечера"]],sd:[["صبح"],["شام","منجهند"]],si:[["පෙ.ව.","පෙර වරු"],["ප.ව.","පස් වරු"]],sq:[["pd","PD","e paradites"],["md","MD","e pasdites"]],
ta:[["யாமம்","முற்பகல்"],["யாமம்","முற்பகல்"],["வைகறை","முற்பகல்"],["வைகறை","முற்பகல்"],["வைகறை","முற்பகல்"],["வைகறை","முற்பகல்"],["காலை","முற்பகல்"],["காலை","முற்பகல்"],["காலை","முற்பகல்"],["காலை","முற்பகல்"],["நண்பகல்","முற்பகல்"],["நண்பகல்","முற்பகல்"],["நண்பகல்","பிற்பகல்"],["நண்பகல்","பிற்பகல்"],["எற்பாடு","பிற்பகல்"],["எற்பாடு","பிற்பகல்"],["எற்பாடு","பிற்பகல்"],["எற்பாடு","பிற்பகல்"],["மாலை","பிற்பகல்"],["மாலை","பிற்பகல்"],["மாலை","பிற்பகல்"],["மாலை","பிற்பகல்"],["யாமம்","பிற்பகல்"],["யாமம்","பிற்பகல்"]],
te:[["రాత్రి"],["రాత్రి"],["రాత్రి"],["రాత్రి"],["ఉదయం"],["ఉదయం"],["ఉదయం"],["ఉదయం"],["ఉదయం"],["ఉదయం"],["మధ్యాహ్నం"],["మధ్యాహ్నం"],["మధ్యాహ్నం"],["మధ్యాహ్నం"],["మధ్యాహ్నం"],["మధ్యాహ్నం"],["మధ్యాహ్నం"],["సాయంత్రం"],["సాయంత్రం"],["సాయంత్రం"],["రాత్రి"],["రాత్రి"],["రాత్రి"],["రాత్రి"]],tg:[["шаб"],["шаб"],["шаб"],["шаб"],["субҳ"],["субҳ"],["субҳ"],["субҳ"],["субҳ"],["субҳ"],["субҳ"],["рӯз"],["рӯз"],["рӯз"],["рӯз"],["рӯз"],["бегоҳ"],["бегоҳ"],["бегоҳ"],["шаб"],["шаб"],["шаб"],["шаб"],["шаб"]],
th:[["ก่อนเที่ยง"],["หลังเที่ยง"]],tr:[["öö","ÖÖ"],["ös","ÖS"]],
ug:[["چۈشتىن بۇرۇن","يېرىم كېچە"],["چۈشتىن بۇرۇن","يېرىم كېچە"],["چۈشتىن بۇرۇن","يېرىم كېچە"],["چۈشتىن بۇرۇن","يېرىم كېچە"],["چۈشتىن بۇرۇن","يېرىم كېچە"],["چۈشتىن بۇرۇن","يېرىم كېچە"],["چۈشتىن بۇرۇن","سەھەر"],["چۈشتىن بۇرۇن","سەھەر"],["چۈشتىن بۇرۇن","سەھەر"],["چۈشتىن بۇرۇن","چۈشتىن بۇرۇن"],["چۈشتىن بۇرۇن","چۈشتىن بۇرۇن"],["چۈشتىن بۇرۇن","چۈشتىن بۇرۇن"],["چۈشتىن كېيىن","چۈش"],["چۈشتىن كېيىن","چۈشتىن كېيىن"],["چۈشتىن كېيىن","چۈشتىن كېيىن"],["چۈشتىن كېيىن","چۈشتىن كېيىن"],["چۈشتىن كېيىن","چۈشتىن كېيىن"],["چۈشتىن كېيىن","چۈشتىن كېيىن"],["چۈشتىن كېيىن","كەچ"],["چۈشتىن كېيىن","كەچ"],["چۈشتىن كېيىن","كەچ"],["چۈشتىن كېيىن","كەچ"],["چۈشتىن كېيىن","كەچ"],["چۈشتىن كېيىن","كەچ"]],
uk:[["дп"],["пп"]],ur:[["ق.د.","صبح"],["ب.د.","شام"]],vi:[["sa","SA"],["ch","CH"]],zh:[["上午"],["下午"]]},sM={};["af","bo","br","el","eo","he","hi","hu","jv","ku","lo","mn","my","mr","ne","sd","sq","si","th","ug","ur","zh"].forEach(M=>sM[M]=!0);const OM=[["am","AM"],["pm","PM"]],rM={};"ag as au bd br bs bt bw bz ca cn co dm do et gt\n gu hk hn id il in jm jp ke kh kr la mh mm mo mt\n mx mz ni np pa pe ph pk pr pt py sa sg sv th tt\n tw um us ve vi ws ye za zw".split(/s+/).forEach(M=>rM[M]=0),
"ad ai al am an ar at ax az ba be bg bm bn by ch\n cl cm cr cy cz de dk ec ee es fi fj fo fr gb ge\n gf gp gr hr hu ie is it kg kz lb li lk lt lu lv\n mc md me mk mn mq my nl no nz pl re ro rs ru se\n si sk sm tj tm tr ua uy uz va vn xk".split(/s+/).forEach(M=>rM[M]=1),rM.mv=5,"ae af bh dj dz eg iq ir jo kw ly om qa sd sy".split(/s+/).forEach(M=>rM[M]=6);const dM={af:[1,4,5],ar:[6,1,5,6],"ar-dz":[0,3,5,6],"ar-sa":[0,1,4,5],az:[1,1,6,0],be:[1,1,6,0],bg:[1,1,6,0],bn:[0,1,6,0],"bn-bd":[0,1,6,0],bo:[0,1,6,0],
bs:[1,1,6,0],en:[1,1,6,0],"en-au":[0,3,6,0],"en-ca":[0,1,6,0],"en-il":[0,1,5,6],"en-us":[0,1,6,0],eo:[1,1,6,0],"es-mx":[0,3,6,0],"es-us":[0,1,6,0],eu:[1,1,6,0],fa:[6,1,6,0],fr:[1,1,6,0],"fr-ca":[0,1,6,0],gu:[0,1,6,0],hi:[0,1,6,0],hr:[1,1,6,0],"hy-am":[1,1,6,0],ja:[0,1,6,0],jv:[1,1,6,0],ka:[1,1,6,0],kk:[1,1,6,0],kn:[0,1,6,0],ko:[0,1,6,0],ku:[6,1,6,0],ky:[1,1,6,0],lo:[0,1,6,0],mk:[1,1,6,0],ml:[0,1,6,0],mn:[0,1,6,0],mr:[0,1,5,6],ms:[1,1,6,0],ne:[0,1,6,0],pt:[1,1,6,0],"pt-br":[0,1,6,0],ro:[1,1,6,0],sd:[1,4,5],
si:[0,1,6,0],sl:[1,1,6,0],sr:[1,1,6,0],sw:[1,1,6,0],ta:[0,1,6,0],te:[0,1,6,0],tg:[1,1,6,0],th:[0,1,6,0],tk:[1,1,6,0],tr:[1,1,6,0],tzm:[6,1,6,0],"ug-cn":[1,1,6,0],uk:[1,1,6,0],uz:[1,1,6,0],zh:[0,1,6,0]};function lM(M){let e,o=pM(M,dM);null==o&&(o=dM.en),M=aM(M),c.isArray(M)||(M=[M]);for(const c of M){const M=c.split("-")[1];if(M){if(null!=dM[c])break;if(e=rM[M],null!=e)break}}return null!=e&&(o[0]=e),o}function qM(M){return lM(M)[0]}function uM(M){return lM(M)[1]}function BM(M){return lM(M).slice(2)}
const LM={af:["0de","1ste","2de","3de","4de","5de","6de","7de","8ste","9de","10de","11de","12de","13de","14de","15de","16de","17de","18de","19de","20ste","21ste","22ste","23ste","24ste","25ste","26ste","27ste","28ste","29ste","30ste","31ste"],ar:1,
az:["0-ıncı","1-inci","2-nci","3-üncü","4-üncü","5-inci","6-ncı","7-nci","8-inci","9-uncu","10-uncu","11-inci","12-nci","13-üncü","14-üncü","15-inci","16-ncı","17-nci","18-inci","19-uncu","20-nci","21-inci","22-nci","23-üncü","24-üncü","25-inci","26-ncı","27-nci","28-inci","29-uncu","30-uncu","31-inci"],be:1,
bg:["0-ев","1-ви","2-ри","3-ти","4-ти","5-ти","6-ти","7-ми","8-ми","9-ти","10-ти","11-ти","12-ти","13-ти","14-ти","15-ти","16-ти","17-ти","18-ти","19-ти","20-ти","21-ви","22-ри","23-ти","24-ти","25-ти","26-ти","27-ми","28-ми","29-ти","30-ти","31-ви"],bm:1,bn:1,bo:1,
br:["0vet","1añ","2vet","3vet","4vet","5vet","6vet","7vet","8vet","9vet","10vet","11vet","12vet","13vet","14vet","15vet","16vet","17vet","18vet","19vet","20vet","21vet","22vet","23vet","24vet","25vet","26vet","27vet","28vet","29vet","30vet","31vet"],bs:2,ca:["0è","1r","2n","3r","4t","5è","6è","7è","8è","9è","10è","11è","12è","13è","14è","15è","16è","17è","18è","19è","20è","21è","22è","23è","24è","25è","26è","27è","28è","29è","30è","31è"],cs:2,
cy:["0","1af","2il","3ydd","4ydd","5ed","6ed","7ed","8fed","9fed","10fed","11eg","12fed","13eg","14eg","15fed","16eg","17eg","18fed","19eg","20fed","21ain","22ain","23ain","24ain","25ain","26ain","27ain","28ain","29ain","30ain","31ain"],da:2,de:2,el:6,en:["0th","1st","2nd","3rd","4th","5th","6th","7th","8th","9th","10th","11th","12th","13th","14th","15th","16th","17th","18th","19th","20th","21st","22nd","23rd","24th","25th","26th","27th","28th","29th","30th","31st"],eo:3,es:4,et:2,eu:2,fa:5,fi:2,fil:1,
fo:2,fr:["0e","1er","2e","3e","4e","5e","6e","7e","8e","9e","10e","11e","12e","13e","14e","15e","16e","17e","18e","19e","20e","21e","22e","23e","24e","25e","26e","27e","28e","29e","30e","31e"],fy:["0de","1ste","2de","3de","4de","5de","6de","7de","8ste","9de","10de","11de","12de","13de","14de","15de","16de","17de","18de","19de","20ste","21ste","22ste","23ste","24ste","25ste","26ste","27ste","28ste","29ste","30ste","31ste"],
ga:["0mh","1d","2na","3mh","4mh","5mh","6mh","7mh","8mh","9mh","10mh","11mh","12na","13mh","14mh","15mh","16mh","17mh","18mh","19mh","20mh","21mh","22na","23mh","24mh","25mh","26mh","27mh","28mh","29mh","30mh","31mh"],gd:["0mh","1d","2na","3mh","4mh","5mh","6mh","7mh","8mh","9mh","10mh","11mh","12na","13mh","14mh","15mh","16mh","17mh","18mh","19mh","20mh","21mh","22na","23mh","24mh","25mh","26mh","27mh","28mh","29mh","30mh","31mh"],gl:4,gu:1,hi:1,hr:2,hu:2,"hy-am":1,is:2,it:4,ja:1,jv:1,
ka:["0","1-ლი","მე-2","მე-3","მე-4","მე-5","მე-6","მე-7","მე-8","მე-9","მე-10","მე-11","მე-12","მე-13","მე-14","მე-15","მე-16","მე-17","მე-18","მე-19","მე-20","21-ე","22-ე","23-ე","24-ე","25-ე","26-ე","27-ე","28-ე","29-ე","30-ე","31-ე"],kk:["0-ші","1-ші","2-ші","3-ші","4-ші","5-ші","6-шы","7-ші","8-ші","9-шы","10-шы","11-ші","12-ші","13-ші","14-ші","15-ші","16-шы","17-ші","18-ші","19-шы","20-шы","21-ші","22-ші","23-ші","24-ші","25-ші","26-шы","27-ші","28-ші","29-шы","30-шы","31-ші"],
km:["ទី0","ទី1","ទី2","ទី3","ទី4","ទី5","ទី6","ទី7","ទី8","ទី9","ទី10","ទី11","ទី12","ទី13","ទី14","ទី15","ទី16","ទី17","ទី18","ទី19","ទី20","ទី21","ទី22","ទី23","ទី24","ទី25","ទី26","ទី27","ទី28","ទី29","ទី30","ទី31"],kn:["0ನೇ","1ನೇ","2ನೇ","3ನೇ","4ನೇ","5ನೇ","6ನೇ","7ನೇ","8ನೇ","9ನೇ","10ನೇ","11ನೇ","12ನೇ","13ನೇ","14ನೇ","15ನೇ","16ನೇ","17ನೇ","18ನೇ","19ನೇ","20ನೇ","21ನೇ","22ನೇ","23ನೇ","24ನೇ","25ನೇ","26ನೇ","27ನೇ","28ನೇ","29ನೇ","30ನೇ","31ನೇ"],ko:1,ku:1,
ky:["0-чү","1-чи","2-чи","3-чү","4-чү","5-чи","6-чы","7-чи","8-чи","9-чу","10-чу","11-чи","12-чи","13-чү","14-чү","15-чи","16-чы","17-чи","18-чи","19-чу","20-чы","21-чи","22-чи","23-чү","24-чү","25-чи","26-чы","27-чи","28-чи","29-чу","30-чу","31-чи"],lb:2,lo:["ທີ່0","ທີ່1","ທີ່2","ທີ່3","ທີ່4","ທີ່5","ທີ່6","ທີ່7","ທີ່8","ທີ່9","ທີ່10","ທີ່11","ທີ່12","ທີ່13","ທີ່14","ທີ່15","ທີ່16","ທີ່17","ທີ່18","ທີ່19","ທີ່20","ທີ່21","ທີ່22","ທີ່23","ທີ່24","ທີ່25","ທີ່26","ທີ່27","ທີ່28","ທີ່29","ທີ່30","ທີ່31"],
lt:["0-oji","1-oji","2-oji","3-oji","4-oji","5-oji","6-oji","7-oji","8-oji","9-oji","10-oji","11-oji","12-oji","13-oji","14-oji","15-oji","16-oji","17-oji","18-oji","19-oji","20-oji","21-oji","22-oji","23-oji","24-oji","25-oji","26-oji","27-oji","28-oji","29-oji","30-oji","31-oji"],lv:2,mi:4,
mk:["0-ев","1-ви","2-ри","3-ти","4-ти","5-ти","6-ти","7-ми","8-ми","9-ти","10-ти","11-ти","12-ти","13-ти","14-ти","15-ти","16-ти","17-ти","18-ти","19-ти","20-ти","21-ви","22-ри","23-ти","24-ти","25-ти","26-ти","27-ми","28-ми","29-ти","30-ти","31-ви"],ml:1,mn:1,mr:1,ms:1,mt:4,my:1,nb:2,ne:1,
nl:["0de","1ste","2de","3de","4de","5de","6de","7de","8ste","9de","10de","11de","12de","13de","14de","15de","16de","17de","18de","19de","20ste","21ste","22ste","23ste","24ste","25ste","26ste","27ste","28ste","29ste","30ste","31ste"],nn:2,pl:2,pt:4,ro:1,ru:1,sd:1,se:2,
si:["0 වැනි","1 වැනි","2 වැනි","3 වැනි","4 වැනි","5 වැනි","6 වැනි","7 වැනි","8 වැනි","9 වැනි","10 වැනි","11 වැනි","12 වැනි","13 වැනි","14 වැනි","15 වැනි","16 වැනි","17 වැනි","18 වැනි","19 වැනි","20 වැනි","21 වැනි","22 වැනි","23 වැනි","24 වැනි","25 වැනි","26 වැනි","27 වැනි","28 වැනි","29 වැනි","30 වැනි","31 වැනි"],sk:2,sl:2,sq:2,sr:2,
sv:["0:e","1:a","2:a","3:e","4:e","5:e","6:e","7:e","8:e","9:e","10:e","11:e","12:e","13:e","14:e","15:e","16:e","17:e","18:e","19:e","20:e","21:a","22:a","23:e","24:e","25:e","26:e","27:e","28:e","29:e","30:e","31:a"],sw:1,ta:["0வது","1வது","2வது","3வது","4வது","5வது","6வது","7வது","8வது","9வது","10வது","11வது","12வது","13வது","14வது","15வது","16வது","17வது","18வது","19வது","20வது","21வது","22வது","23வது","24வது","25வது","26வது","27வது","28வது","29வது","30வது","31வது"],
te:["0వ","1వ","2వ","3వ","4వ","5వ","6వ","7వ","8వ","9వ","10వ","11వ","12వ","13వ","14వ","15వ","16వ","17వ","18వ","19వ","20వ","21వ","22వ","23వ","24వ","25వ","26వ","27వ","28వ","29వ","30వ","31వ"],tg:["0-ум","1-ум","2-юм","3-юм","4-ум","5-ум","6-ум","7-ум","8-ум","9-ум","10-ум","11-ум","12-ум","13-ум","14-ум","15-ум","16-ум","17-ум","18-ум","19-ум","20-ум","21-ум","22-юм","23-юм","24-ум","25-ум","26-ум","27-ум","28-ум","29-ум","30-юм","31-ум"],th:1,
tk:["0'unjy","1'inji","2'nji","3'ünji","4'ünji","5'inji","6'njy","7'nji","8'inji","9'unjy","10'unjy","11'inji","12'nji","13'ünji","14'ünji","15'inji","16'njy","17'nji","18'inji","19'unjy","20'nji","21'inji","22'nji","23'ünji","24'ünji","25'inji","26'njy","27'nji","28'inji","29'unjy","30'unjy","31'inji"],
tr:["0'ıncı","1'inci","2'nci","3'üncü","4'üncü","5'inci","6'ncı","7'nci","8'inci","9'uncu","10'uncu","11'inci","12'nci","13'üncü","14'üncü","15'inci","16'ncı","17'nci","18'inci","19'uncu","20'nci","21'inci","22'nci","23'üncü","24'üncü","25'inci","26'ncı","27'nci","28'inci","29'uncu","30'uncu","31'inci"],tzm:1,"ug-cn":1,uk:1,ur:1,uz:1,vi:1,
yo:["ọjọ́ 0","ọjọ́ 1","ọjọ́ 2","ọjọ́ 3","ọjọ́ 4","ọjọ́ 5","ọjọ́ 6","ọjọ́ 7","ọjọ́ 8","ọjọ́ 9","ọjọ́ 10","ọjọ́ 11","ọjọ́ 12","ọjọ́ 13","ọjọ́ 14","ọjọ́ 15","ọjọ́ 16","ọjọ́ 17","ọjọ́ 18","ọjọ́ 19","ọjọ́ 20","ọjọ́ 21","ọjọ́ 22","ọjọ́ 23","ọjọ́ 24","ọjọ́ 25","ọjọ́ 26","ọjọ́ 27","ọjọ́ 28","ọjọ́ 29","ọjọ́ 30","ọjọ́ 31"],zh:1
},WM=1728e5,fM=/^(America\/Argentina|America\/Indiana)\/(.+)$/,NM=/^(CST6CDT|EET|EST5EDT|MST7MDT|PST8PDT|SystemV\/AST4ADT|SystemV\/CST6CDT|SystemV\/EST5EDT|SystemV\/MST7MDT|SystemV\/PST8PDT|SystemV\/YST9YDT|WET)$/,CM=new Set(["deltaTs","leapSeconds","version","years"]);class TM{constructor(c){const e=c.split(/[ :]/);this.startYear=Number(e[0]),this.month=Number(e[1]),this.dayOfMonth=Number(e[2]),this.dayOfWeek=Number(e[3]),this.atHour=Number(e[4]),this.atMinute=Number(e[5]),this.atType=Number(e[6]),
this.save=M.round(60*Number(e[7]))}getTransitionTime(c,e,o){let z;z=this.dayOfWeek>=0&&this.dayOfMonth>0?F(c,this.month,this.dayOfWeek-1,this.dayOfMonth):this.dayOfWeek>=0&&this.dayOfMonth<0?F(c,this.month,this.dayOfWeek-1,-this.dayOfMonth):this.dayOfWeek>=0&&0===this.dayOfMonth?function(c,e,o,z){const A=z>=6;let b=I(c,e,1);const i=v(b);let a,t=0;if(i===o&&1===z)return 1;for(b+=M.mod(o-i,7),a=x(b);a.m===e;){if(t=a.d,0===--z)return t;b+=7,a=x(b)}return A?t:0}(c,this.month,this.dayOfWeek-1,6):this.dayOfMonth
;let A=K(c,this.month,z,this.atHour,this.atMinute);return 0===this.atType?A-=1e3*(e+o):1===this.atType&&(A-=1e3*e),A}toString(){const e=O[this.month-1],o=d[this.dayOfWeek-1];let z="";return 0===this.dayOfMonth?z+=`last ${o} of ${e}`:this.dayOfWeek<0?z+=`${e} ${this.dayOfMonth}`:this.dayOfMonth>0?z+=`first ${o} on/after ${e} ${this.dayOfMonth}`:z+=`last ${o} on/before ${e} ${-this.dayOfMonth}`,z+=`, at ${this.atHour}:${c.padLeft(this.atMinute,2,"0")} `,z+=["wall time","std time","UTC"][this.atType],
0===this.save?z+=" begin std time":(this.save%3600==0?z+=` save ${M.div_rd(this.save,3600)} hour${M.abs(this.save/3600)>1?"s":""}`:z+=` save ${M.div_rd(this.save,60)} mins`,this.save%60!=0&&(z+=` ${this.save%60} secs`)),z}}let mM,hM,gM,XM,RM=[];!function(){const M=new Date(1901,0,1,12,0,0,0);let e=M.getTime();const o=Date.now(),A=o+62208e6,b=o+15552e8;let i=60*-M.getTimezoneOffset();for(RM.push({transitionTime:Number.MIN_SAFE_INTEGER,utcOffset:i,dstOffset:0});M.getTime()<b;){const c=e+2592e6;M.setTime(c)
;const o=60*-M.getTimezoneOffset();if(void 0===mM&&c>=A&&(mM=hM=o),o!==i){c>=A&&(mM=Math.min(mM,o),hM=Math.max(hM,o));let b=e,a=c;for(;a-b>z;){const c=Math.floor((a+b)/2/z)*z;M.setTime(c),60*-M.getTimezoneOffset()===i?b=c:a=c}RM.push({transitionTime:a,utcOffset:o,dstOffset:0}),i=o}e=c}RM.length<2?(RM=null,gM=!1,XM=0):(gM=hM>mM,XM=hM-mM,gM&&(RM[0].utcOffset===hM&&RM[1].utcOffset===mM&&(RM.splice(0,1),RM[0].transitionTime=Number.MIN_SAFE_INTEGER),RM.forEach((M,c)=>{
c>0&&M.utcOffset===hM&&RM[c-1]?.utcOffset===mM&&(M.dstOffset=hM-mM)}),0!==c.last(RM).dstOffset&&RM.pop()))}();class EM{static get version(){return this._version}static defineTimezones(M){const e=!c.isEqual(this.encodedTimezones,M);return this._version=M?.version?M.version:"unspecified",this.encodedTimezones=Object.assign({},M??{}),this.extractZoneInfo(),this.extractLeapSeconds(),this.extractDeltaTs(),e&&(this.offsetsAndZones=void 0,this.regionAndSubzones=void 0,this.zoneLookup={}),e}
static getAvailableTimezones(){const M=[];for(const c of Object.keys(this.encodedTimezones))(c.includes("/")||/^[A-Z]/.test(c))&&M.push(c);return M.sort(),M}static getOffsetsAndZones(){if(this.offsetsAndZones)return this.offsetsAndZones;const M={};for(const e of Object.keys(this.encodedTimezones)){if(!e.includes("/")||e.startsWith("Etc/")||NM.test(e))continue;let o=this.encodedTimezones[e];if(!o.includes(";")){const M=/^!([^,]*)$/.exec(o)||/^(?:.*,)?(.*)$/.exec(o);o=this.encodedTimezones[M[1]]??""}
const z=o.split(/[ ;]/);if(z.length<3)continue;const A=z[1].split(/([-+]?\d\d)/g).filter(M=>!!M).join(":")+this.getDstSymbol(60*c.toNumber(z[2]));let b=M[A];b||(b=[],M[A]=b),b.push(e.replace(/_/g," "))}const e=[],o=M=>c.toNumber(M.replace(/[^-+\d]/g,""));for(const c of Object.keys(M))e.push(c);e.sort((M,c)=>o(M)-o(c)),this.offsetsAndZones=[];for(const c of e){const e=M[c];e.sort(),this.offsetsAndZones.push({offset:c,offsetSeconds:T(c.replace(/[^-+\d]/g,"")),dstOffset:{"^":1800,"§":3600,"#":7200,"❄":-3600,
"~":999}[c.substr(c.length-1)]||0,zones:e})}return this.offsetsAndZones}static getRegionsAndSubzones(){if(this.regionAndSubzones)return this.regionAndSubzones;let M=!1;const c={};for(const e of Object.keys(this.encodedTimezones)){let o,z;const A=fM.exec(e)??/^(.+?)\/(.+)$/.exec(e);A?(o=A[1],z=A[2].replace(/_/g," ")):(o=e,z=null),(null==z||NM.test(e))&&(o="~",z=e,M=!0);let b=c[o];b||(b=[],c[o]=b),b.push(z)}const e=[];for(const M of Object.keys(c))e.push(M);e.sort(),M&&(e[e.length-1]="MISC",c.MISC=c["~"],
delete c["~"]),this.regionAndSubzones=[];for(const M of e){const e=c[M];e.sort(),this.regionAndSubzones.push({region:M,subzones:e})}return this.regionAndSubzones}static guess(c=!1,e,o){if(!this._guess||c)if(!eM||e||o){let c=e;if(!c)try{"undefined"!=typeof process&&(c=(process.env?.LANG??process.env?.LC_CTYPE??"").split(/[-._]/)[1]?.toUpperCase())}catch{}if(!c)try{"undefined"!=typeof navigator&&(c=(navigator.language??"").split(/[-._]/)[1]?.toUpperCase())}catch{}
const z=o?EM.from(o):this.OS_ZONE,A=this.formatUtcOffset(z.utcOffset,!0)+";"+M.floor(z.dstOffset/60),b=Array.from(this.zonesByOffsetAndDst[A]??[]).filter(M=>!c||this.doesZoneMatchCountry(M,c)).map(M=>({zone:M,rating:z.matchRating(EM.from(M)),pop:this.populationForZone[M]})).sort((M,c)=>c.rating!==M.rating?c.rating-M.rating:c.pop-M.pop);this._guess=b[0]?.zone??"OS"}else this._guess=(new Intl.DateTimeFormat).resolvedOptions().timeZone??"OS";return this._guess}static has(M){
return!!this.zoneLookup[M]||!!this.zonesByLowercase[M.toLowerCase()]||!!this.encodedTimezones[M]||/^(GMT|OS|UTC?|ZONELESS|DATELESS|TAI)$/i.test(M)}static from(M){return EM.getTimezone(M)}static getTimezone(c,e){if(!c)return this.OS_ZONE;const o=c.toLowerCase();if("tai"===o)return this.TAI_ZONE;if("dateless"===o)return this.DATELESS;if("zoneless"===o)return this.ZONELESS;this.zonesByLowercase[o]&&(c=this.zonesByLowercase[o]);const z=this.zoneLookup[c];if(z)return z;let A
;const b=/^(?:LMT|OS|(?:(GMT|UTC?)?([-+]\d\d(\d{4}|\d\d|:\d\d(:\d\d)?))?)|(?:.+\/.+)|\w+)$/.exec(c);if(null===b||0===b.length)throw new Error('Unrecognized format for timezone name "'+c+'"');if("LMT"===b[0].toUpperCase())e=e||0,A=new EM({zoneName:"LMT",currentUtcOffset:60*Math.round(4*M.mod2(e,360)),usesDst:!1,dstOffset:0,transitions:null});else if("OS"===b[0].toUpperCase())A=this.OS_ZONE;else if(b.length>1&&(/GMT|UTC?/.test(b[1])||b[2])){let M=0;b[1]||(c="UT"+c),b[2]&&(M=T(b[2])),A=new EM({zoneName:c,
currentUtcOffset:M,usesDst:!1,dstOffset:0,transitions:null})}else if(this.encodedTimezones[c]){let M=this.encodedTimezones[c],e=null,o=null;if(!M.includes(";")){const c=/^!(.*,)?(.*)$/.exec(M);c?(o=c[1],M=c[2]):e=M,M=this.encodedTimezones[M]}A=new EM(this.parseEncodedTimezone(c,M,e,o))}else A=new EM({zoneName:c,currentUtcOffset:mM,usesDst:gM,dstOffset:XM,transitions:RM}),A._error="Unrecognized timezone";return"LMT"===c||A._error||(this.zoneLookup[c]=A),A}static getAliasesForZone(M){
return M=this.zonesByLowercase[M?.toLowerCase()],this.zonesAliases[M]?Array.from(this.zonesAliases[M]):[]}static hasShortName(M){return!!this.shortZoneNames[M]}static getShortZoneNameInfo(M){return c.clone(this.shortZoneNames[M])}static getPopulation(M){let c=this.populationForZone[M];if(null==c){const e=this.getAliasesForZone(M);for(const o of e)if(c=this.populationForZone[o],null!=c&&c>0){this.populationForZone[M]=c;break}}return null==c&&(this.populationForZone[M]=0),c??0}static getCountries(M){
let c=this.countriesForZone[M];if(null==c){const e=this.getAliasesForZone(M);for(const o of e)if(c=this.countriesForZone[o],null!=c.size){this.countriesForZone[M]=c;break}}return null==c&&(this.countriesForZone[M]=new Set),new Set(c)}static doesZoneMatchCountry(M,c){return this.getCountries(M).has(c.toUpperCase())}static parseTimeOffset(M){let c=1;if(M.startsWith("-")?(c=-1,M=M.substr(1)):M.startsWith("+")&&(M=M.substr(1)),"0"===M)return 0;if("1"===M)return 3600;{
let e=60*(60*Number(M.substr(0,2))+Number(M.substr(2,2)));return 6===M.length&&(e+=Number(M.substr(4,2))),c*e}}static fromBase60(M){let c=1,e=0,o=!1,z=1;M.startsWith("-")?(c=-1,M=M.substr(1)):M.startsWith("+")&&(M=M.substr(1));for(let c=0;c<M.length;++c){let A=M.charCodeAt(c);46!==A?(A-=A>96?87:A>64?29:48,o?(z/=60,e+=z*A):(e*=60,e+=A)):o=!0}return e*c}static extractTimezoneTransitionsFromIntl(c,e){const o=[],A={timeZone:c,hourCycle:"h23",year:"numeric",month:"numeric",day:"numeric",hour:"numeric",
minute:"numeric",second:"numeric"},b=new Intl.DateTimeFormat("en",A);let i,a=K(1901,1,1,0,0,0,0);do{a+=36e5,i=h(b,a,"hour")}while(0!==i&&1!==i);a+=432e5;const t=c=>{const e=b.formatToParts(c);return M.floor((K(h(e,"year"),h(e,"month"),h(e,"day"),h(e,"hour"),h(e,"minute"),h(e,"second"))-c)/1e3)},p=a+62208e6,n=K(e+1,1,1,0,0,0,0);let s,O,r=t(a);for(;a<n;){const M=a+2592e6,c=t(M);if(void 0===s&&M>=p&&(s=O=c),c!==r){M>=p&&(s=Math.min(s,c),O=Math.max(O,c));let e=a,A=M;for(;A-e>z;){const M=Math.floor((A+e)/2/z)*z
;t(M)===r?e=M:A=M}o.push({transitionTime:A,utcOffset:c,dstOffset:0}),r=c}a=M}return o.length<2||O<=s?[]:(o[0].utcOffset===O&&o[1].utcOffset===s&&(o.splice(0,1),o[0].transitionTime=Number.MIN_SAFE_INTEGER),o.forEach((M,c)=>{M.utcOffset===O&&o[c-1]?.utcOffset===s&&(M.dstOffset=O-s)}),o)}static applyTransitionRules(M,c,e,o,z,A,b,i,a,t,p=!1){for(let n=c;n<e;++n){const c=z.getTransitionTime(n,o,i),e=A.getTransitionTime(n,o,0),s=e<c?A:z,O=e<c?e:c,r=e>c?A:z,d=e>c?e:c;O>b+WM&&(p||n>=s.startYear)&&M.push({
transitionTime:O,utcOffset:o+s.save,dstOffset:s.save,name:s.save?a:t}),d>b+WM&&(p||n>=r.startYear)&&M.push({transitionTime:d,utcOffset:o+r.save,dstOffset:r.save,name:r.save?a:t})}}static countriesStringToSet(M){return M.includes(" ")?new Set(M.split(/\s+/)):new Set(M.split(/(\w\w)/).filter(M=>!!M))}static parseEncodedTimezone(e,o,z,A){let b=[];const i=o.split(";");let a=i[0].split(" ");const t=this.parseTimeOffset(a[0]),p=this.parseTimeOffset(a[1]),n=M.round(60*Number(a[2]))
;let s,O,r,d,l,q=Number.MIN_SAFE_INTEGER,u=0,B="";if(b.push({transitionTime:Number.MIN_SAFE_INTEGER,utcOffset:t,dstOffset:0}),i.length>5)for(A||(A=i[5]+","+(i[6]??"")),i.length=5;!c.last(i);)--i.length;if(A){const M=A.split(",");u=c.toNumber(M[0]),B=M[1]??""}if(i.length>1){const o=i[1].split(" "),z=[],A=[],s=[];for(let c=0;c<o.length;++c)a=o[c].split("/"),z[c]=M.round(60*this.fromBase60(a[0])),A[c]=M.round(60*this.fromBase60(a[1])),a.length>2?s[c]=a[2]:s[c]=null;if(b[0].name=s[0],i.length>3){
const o=i[2],a=i[3].split(" ");let u=0;for(let c=0;c<o.length;++c){const e=this.fromBase60(o.substr(c,1)),i=u+M.round(60*this.fromBase60(a[c]));b.push({transitionTime:1e3*i,utcOffset:z[e],dstOffset:A[e],name:s[e]}),u=i,0===c&&(q=i),0!==A[e]?r=s[e]:O=s[e]}if(i.length>4){u*=1e3;const M=i[4].split(",");d=new TM(M[0]),l=new TM(M[1]);const o=V(u).y-1;this.applyTransitionRules(b,o,2500,p,d,l,u,n,r,O),0!==b[b.length-1].dstOffset&&(b.length-=1);const z=V(1e3*q).y;if(z>2e3&&b.length>1){
const M=this.extractTimezoneTransitionsFromIntl(e,z);let o=!1;if(0===M.length&&p===t&&(o=!0,this.applyTransitionRules(M,1925,z+1,p,d,l,Number.MIN_SAFE_INTEGER+1,n,r,O,!0)),M.length>0){for(o&&M.length>1&&0===M[0].dstOffset&&0!==M[1].dstOffset&&M.splice(0,1);M.length>0&&0!==c.last(M).dstOffset||c.last(M).transitionTime>=b[1].transitionTime;)M.splice(M.length-1,1);M[0].transitionTime===b[0].transitionTime&&M.splice(0,1),b.splice(1,0,...M)}}}}}return 1===b.length&&(s=b[0].name,b=null),{zoneName:e,
currentUtcOffset:p,usesDst:0!==n,dstOffset:n,displayName:s,transitions:b,population:u,countries:this.countriesStringToSet(B),aliasFor:z,stdRule:d,dstRule:l}}static buildAliases(M,c){let e=this.zonesAliases[M],o=this.zonesAliases[c];e||(e=this.zonesAliases[M]=new Set),o||(o=this.zonesAliases[c]=new Set),e.add(c),o.add(M),e.forEach(M=>{M!==c&&(o.add(M),this.zonesAliases[M].add(c))})}static extractZoneInfo(){this.shortZoneNames={},this.zonesByLowercase={gmt:"GMT",lmt:"LMT",os:"OS",tai:"TAI",ut:"UT",utc:"UTC"
},this.zonesByOffsetAndDst={},this.countriesForZone={},this.zonesAliases={},this.zonesForCountry={},this.populationForZone={}
;const e=new Set(["Australia/ACT","Australia/Adelaide","Asia/Tokyo","Asia/Hong_Kong","Asia/Jakarta","Asia/Novosibirsk","Asia/Calcutta","Asia/Karachi","Europe/Moscow","Africa/Cairo","Europe/Paris","Europe/London","Atlantic/Azores","America/Scoresbysund","America/Godthab","America/St_Johns","America/Halifax","America/New_York","America/Chicago","America/Denver","America/Los_Angeles","America/Anchorage","Pacific/Honolulu","America/Adak","Pacific/Apia"]),o=M=>e.has(M)?"!"+M:M
;Object.keys(this.encodedTimezones).filter(M=>!CM.has(M)&&!M.startsWith("_")).sort((M,e)=>c.compareStrings(o(M),o(e))).forEach(e=>{let o,z,A=this.encodedTimezones[e],b=!1;if(this.zonesByLowercase[e.toLowerCase()]=e,!A.includes(";")){const M=/^!(.*,)?(.*)$/.exec(A);M?(z=M[1],o=M[2],A=this.encodedTimezones[o]):(o=A,b=!0)}if(o&&(this.buildAliases(e,o),this.buildAliases(o,e)),b)return;const i=A.split(";");let a=i[0].split(" ");const t=this.parseTimeOffset(a[1]),p=M.round(60*Number(a[2]));if(i.length>1){
const o=i[0].split(" "),A=o.length>2?o[1]+";"+o[2]:null,b=i[1].split(" ");for(let o=0;o<b.length;++o){if(a=b[o].split("/"),a.length>2){const c=a[2],o=this.shortZoneNames[c],z=M.round(60*this.fromBase60(a[0])),A=M.round(60*this.fromBase60(a[1]));o&&(!e.startsWith("America/")||o.ianaName.startsWith("America/"))||z-A!==t||A&&(!A||A!==p)||(this.shortZoneNames[c]={utcOffset:z,dstOffset:A,ianaName:e})}if(!z&&i.length>5&&(z=i[5]+","+(i[6]??"")),A){let M=this.zonesByOffsetAndDst[A]
;M||(this.zonesByOffsetAndDst[A]=M=new Set),M.add(e)}if(z){const M=z.split(","),o=this.countriesStringToSet(M[1]??"");o.size>0&&(this.countriesForZone[e]=o),this.populationForZone[e]=c.toNumber(M[0]),o.forEach(M=>{let c=this.zonesForCountry[M];c||(this.zonesForCountry[M]=c=new Set),c.add(e)})}}}})}static extractDeltaTs(){const M=this.encodedTimezones?.deltaTs,e=this.getDateAfterLastKnownLeapSecond();u(M?M.split(/\s+/).map(M=>c.toNumber(M)):null,e)}static extractLeapSeconds(){this.leapSeconds=[],
this.lastLeapSecond=void 0;const e=this.encodedTimezones?.leapSeconds;if(!e)return;let o=-1;this.leapSeconds.push({utcMillis:Number.MIN_SAFE_INTEGER,taiMillis:Number.MIN_SAFE_INTEGER+1e4,dateAfter:null,deltaTai:0,isNegative:!1});const z=[-4383,-3837,-3106,-2376,-1826,-1280,-915,-549,-184,181,546];z.push(...e.split(/\s+/).map(M=>c.toNumber(M))),z.forEach((c,e)=>{const z=e<11?c:M.abs(c),A=z*b;o+=e>10&&c<0?-1:1,this.leapSeconds.push({utcMillis:A,taiMillis:A+1e3*o,dateAfter:x(z),deltaTai:o,isNegative:e>10&&c<0
})}),this.lastLeapSecond=c.last(this.leapSeconds).dateAfter}static formatUtcOffset(e,o=!1){if(null==e)return"?";let z=e<0?"-":"+";const A=o?"":":";e=Math.abs(e);const b=M.div_tt0(e,3600),i=M.div_tt0(e-=3600*b,60);return e-=60*i,z+=c.padLeft(b,2,"0")+A+c.padLeft(i,2,"0"),0!==e&&(z+=A+c.padLeft(M.floor(e),2,"0"),e%1!=0&&(z+="."+e.toFixed(3).substr(2),z=z.replace(/\.000$/,""))),z}static getDstSymbol(M){if(null==M)return"";switch(M){case 0:return"";case 1800:return"^";case 3600:return"§";case 7200:return"#"
;default:return M<0?"❄":"~"}}constructor(e){if(this._countries=new Set,this._zoneName=e.zoneName,this._utcOffset=e.currentUtcOffset,this._usesDst=e.usesDst,this._dstOffset=e.dstOffset,this.displayName=e.displayName,this.transitions=c.clone(e.transitions),this._aliasFor=e.aliasFor,this._population=e.population??0,this._countries=e.countries??new Set,this._stdRule=e.stdRule,this._dstRule=e.dstRule,this.transitions&&this.transitions.length>0){let c,e,o=this.transitions[0].utcOffset,z=o,A=!1
;for(const b of this.transitions)e=0!==b.dstOffset,c=b.utcOffset-b.dstOffset,b.deltaOffset=b.utcOffset-o,b.dstFlipped=e!==A,b.baseOffsetChanged=c!==z,b.wallTime=b.transitionTime+1e3*b.utcOffset,b.wallTimeDay=x(M.floor(b.wallTime/864e5)).d,Object.freeze(b),o=b.utcOffset,A=e,z=c}}get zoneName(){return this._zoneName}get utcOffset(){return this._utcOffset}get usesDst(){return this._usesDst}get dstOffset(){return this._dstOffset}get error(){return this._error}get aliasFor(){return this._aliasFor}
get countries(){return new Set(this._countries)}get population(){return this._population}get stdRule(){return this._stdRule?.toString()}get dstRule(){return this._dstRule?.toString()}getOffset(M,c=0){if(this.transitions&&0!==this.transitions.length){let e=this.findTransitionByUtc(M);return 0!==c&&e.wallTimeDay!==c&&(e=this.findTransitionByUtc(M-1)),e.utcOffset}return this._utcOffset}getDisplayName(M){let c;if(this.transitions&&0!==this.transitions.length){const e=this.findTransitionByUtc(M);c=e.name,
c||(c=EM.formatUtcOffset(e.utcOffset))}else c=this.displayName,c||(c=EM.formatUtcOffset(this.utcOffset));let e=/^[+-]\d\d$/.exec(c);return e?c=e[0]+":00":(e=/^([+-]\d\d)(\d\d)$/.exec(c),e?c=e[1]+":"+e[2]:(e=/^([+-]\d\d)(\d\d)(\d\d)$/.exec(c),e&&(c=e[1]+":"+e[2]+":"+e[3]))),c}supportsCountry(M){return this._countries.has(M.toUpperCase())}getOffsetForWallTime(M){return this.transitions&&0!==this.transitions.length?this.findTransitionByWallTime(M).utcOffset:this._utcOffset}getFormattedOffset(M,c=!1){
return EM.formatUtcOffset(this.getOffset(M),c)}getOffsets(M){if(this.transitions&&0!==this.transitions.length){const c=this.findTransitionByUtc(M);return[c.utcOffset,c.dstOffset]}return[this._utcOffset,this._dstOffset]}isDuringDst(M){return!(!this.transitions||0===this.transitions.length)&&0!==this.findTransitionByUtc(M).dstOffset}getAllTransitions(){return this.transitions&&0!==this.transitions.length?c.clone(this.transitions):null}findTransitionByUtc(M){
if(!this.transitions||0===this.transitions.length)return null;for(let c=0;c<this.transitions.length-1;++c)if(this.transitions[c].transitionTime<=M&&M<this.transitions[c+1].transitionTime)return this.transitions[c];return c.last(this.transitions)}static findDeltaTaiFromUtc(M){if(!this.leapSeconds||0===this.leapSeconds.length)return null;for(let e=this.leapSeconds.length-1;e>=0;--e){let o=this.leapSeconds[e];const z=this.leapSeconds[e+1];if(M>=o.utcMillis)return o=c.clone(o),
o.inLeap=z&&!z.isNegative&&M>=z.utcMillis-1e3,o.inNegativeLeap=z&&z.isNegative&&M>=z.utcMillis-2e3&&M<z.utcMillis-1e3,o}return Object.assign({inLeap:!1},this.leap