UNPKG

@mindfiredigital/pivothead

Version:

PivotHead is a powerful and flexible library for creating interactive pivot tables in JavaScript applications. It provides a core engine for data manipulation and, in the future, will be compatible with wrappers for React, Vue, Svelte, and Angular, making

1,466 lines 1.02 MB
function $f(t, e, r) { if (!t || t.length === 0) return 0; const n = t.map((i) => Number(i[e]) || 0); switch (r) { case "sum": return n.reduce((i, a) => i + a, 0); case "avg": return n.reduce((i, a) => i + a, 0) / n.length; case "min": return Math.min(...n); case "max": return Math.max(...n); case "count": return n.length; default: return 0; } } function Y2(t, e, r) { return !e || e.length === 0 ? t : [...t].sort((n, i) => { for (const a of e) { const { field: s, direction: o, type: l, aggregation: h } = a; if (l === "measure") { const u = Dh(n, s), g = Dh(i, s); if (u !== g) return o === "asc" ? u - g : g - u; } else { const u = n[s], g = i[s]; if (u !== g) return o === "asc" ? u < g ? -1 : 1 : u > g ? -1 : 1; } } return 0; }); } function Dh(t, e, r) { return Number(t[e]) || 0; } function K2(t, e = null, r = null) { let n = [...t.data]; e && (n = Y2(n, [e])); let i = []; if (r) { const { rowFields: a, columnFields: s, grouper: o } = r, l = [...a, ...s]; i = Yc(n, l, o); } return { data: n, groups: i }; } function Yc(t, e, r) { if (!e || e.length === 0) return [{ key: "All", items: t, subgroups: [], aggregates: {} }]; const n = {}; return t.forEach((i) => { const a = r(i, e); n[a] || (n[a] = { key: a, items: [], subgroups: [], aggregates: {} }), n[a].items.push(i); }), e.length > 1 && Object.values(n).forEach((i) => { i.subgroups = Yc(i.items, e.slice(1), r); }), Object.values(n); } /*! xlsx.js (C) 2013-present SheetJS -- http://sheetjs.com */ var M0 = {}; M0.version = "0.18.5"; var Kc = 1252, $2 = [874, 932, 936, 949, 950, 1250, 1251, 1252, 1253, 1254, 1255, 1256, 1257, 1258, 1e4], $c = function(t) { $2.indexOf(t) != -1 && (Kc = t); }; function J2() { $c(1252); } var _o = function(t) { $c(t); }; function Z2() { _o(1200), J2(); } function Q2(t) { for (var e = [], r = 0; r < t.length >> 1; ++r) e[r] = String.fromCharCode(t.charCodeAt(2 * r + 1) + (t.charCodeAt(2 * r) << 8)); return e.join(""); } var _0 = function(e) { return String.fromCharCode(e); }, Ih = function(e) { return String.fromCharCode(e); }, Ea, sa = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/="; function So(t) { for (var e = "", r = 0, n = 0, i = 0, a = 0, s = 0, o = 0, l = 0, h = 0; h < t.length; ) r = t.charCodeAt(h++), a = r >> 2, n = t.charCodeAt(h++), s = (r & 3) << 4 | n >> 4, i = t.charCodeAt(h++), o = (n & 15) << 2 | i >> 6, l = i & 63, isNaN(n) ? o = l = 64 : isNaN(i) && (l = 64), e += sa.charAt(a) + sa.charAt(s) + sa.charAt(o) + sa.charAt(l); return e; } function ji(t) { var e = "", r = 0, n = 0, i = 0, a = 0, s = 0, o = 0, l = 0; t = t.replace(/[^\w\+\/\=]/g, ""); for (var h = 0; h < t.length; ) a = sa.indexOf(t.charAt(h++)), s = sa.indexOf(t.charAt(h++)), r = a << 2 | s >> 4, e += String.fromCharCode(r), o = sa.indexOf(t.charAt(h++)), n = (s & 15) << 4 | o >> 2, o !== 64 && (e += String.fromCharCode(n)), l = sa.indexOf(t.charAt(h++)), i = (o & 3) << 6 | l, l !== 64 && (e += String.fromCharCode(i)); return e; } var It = /* @__PURE__ */ function() { return typeof Buffer < "u" && typeof process < "u" && typeof process.versions < "u" && !!process.versions.node; }(), Wi = /* @__PURE__ */ function() { if (typeof Buffer < "u") { var t = !Buffer.from; if (!t) try { Buffer.from("foo", "utf8"); } catch { t = !0; } return t ? function(e, r) { return r ? new Buffer(e, r) : new Buffer(e); } : Buffer.from.bind(Buffer); } return function() { }; }(); function Pa(t) { return It ? Buffer.alloc ? Buffer.alloc(t) : new Buffer(t) : typeof Uint8Array < "u" ? new Uint8Array(t) : new Array(t); } function Rh(t) { return It ? Buffer.allocUnsafe ? Buffer.allocUnsafe(t) : new Buffer(t) : typeof Uint8Array < "u" ? new Uint8Array(t) : new Array(t); } var ri = function(e) { return It ? Wi(e, "binary") : e.split("").map(function(r) { return r.charCodeAt(0) & 255; }); }; function tf(t) { if (typeof ArrayBuffer > "u") return ri(t); for (var e = new ArrayBuffer(t.length), r = new Uint8Array(e), n = 0; n != t.length; ++n) r[n] = t.charCodeAt(n) & 255; return e; } function Fo(t) { if (Array.isArray(t)) return t.map(function(n) { return String.fromCharCode(n); }).join(""); for (var e = [], r = 0; r < t.length; ++r) e[r] = String.fromCharCode(t[r]); return e.join(""); } function ed(t) { if (typeof Uint8Array > "u") throw new Error("Unsupported"); return new Uint8Array(t); } var jr = It ? function(t) { return Buffer.concat(t.map(function(e) { return Buffer.isBuffer(e) ? e : Wi(e); })); } : function(t) { if (typeof Uint8Array < "u") { var e = 0, r = 0; for (e = 0; e < t.length; ++e) r += t[e].length; var n = new Uint8Array(r), i = 0; for (e = 0, r = 0; e < t.length; r += i, ++e) if (i = t[e].length, t[e] instanceof Uint8Array) n.set(t[e], r); else { if (typeof t[e] == "string") throw "wtf"; n.set(new Uint8Array(t[e]), r); } return n; } return [].concat.apply([], t.map(function(a) { return Array.isArray(a) ? a : [].slice.call(a); })); }; function td(t) { for (var e = [], r = 0, n = t.length + 250, i = Pa(t.length + 255), a = 0; a < t.length; ++a) { var s = t.charCodeAt(a); if (s < 128) i[r++] = s; else if (s < 2048) i[r++] = 192 | s >> 6 & 31, i[r++] = 128 | s & 63; else if (s >= 55296 && s < 57344) { s = (s & 1023) + 64; var o = t.charCodeAt(++a) & 1023; i[r++] = 240 | s >> 8 & 7, i[r++] = 128 | s >> 2 & 63, i[r++] = 128 | o >> 6 & 15 | (s & 3) << 4, i[r++] = 128 | o & 63; } else i[r++] = 224 | s >> 12 & 15, i[r++] = 128 | s >> 6 & 63, i[r++] = 128 | s & 63; r > n && (e.push(i.slice(0, r)), r = 0, i = Pa(65535), n = 65530); } return e.push(i.slice(0, r)), jr(e); } var uo = /\u0000/g, S0 = /[\u0001-\u0006]/g; function xs(t) { for (var e = "", r = t.length - 1; r >= 0; ) e += t.charAt(r--); return e; } function ni(t, e) { var r = "" + t; return r.length >= e ? r : fr("0", e - r.length) + r; } function Rl(t, e) { var r = "" + t; return r.length >= e ? r : fr(" ", e - r.length) + r; } function B0(t, e) { var r = "" + t; return r.length >= e ? r : r + fr(" ", e - r.length); } function rd(t, e) { var r = "" + Math.round(t); return r.length >= e ? r : fr("0", e - r.length) + r; } function nd(t, e) { var r = "" + t; return r.length >= e ? r : fr("0", e - r.length) + r; } var Mh = /* @__PURE__ */ Math.pow(2, 32); function fs(t, e) { if (t > Mh || t < -Mh) return rd(t, e); var r = Math.round(t); return nd(r, e); } function j0(t, e) { return e = e || 0, t.length >= 7 + e && (t.charCodeAt(e) | 32) === 103 && (t.charCodeAt(e + 1) | 32) === 101 && (t.charCodeAt(e + 2) | 32) === 110 && (t.charCodeAt(e + 3) | 32) === 101 && (t.charCodeAt(e + 4) | 32) === 114 && (t.charCodeAt(e + 5) | 32) === 97 && (t.charCodeAt(e + 6) | 32) === 108; } var Bh = [ ["Sun", "Sunday"], ["Mon", "Monday"], ["Tue", "Tuesday"], ["Wed", "Wednesday"], ["Thu", "Thursday"], ["Fri", "Friday"], ["Sat", "Saturday"] ], Jf = [ ["J", "Jan", "January"], ["F", "Feb", "February"], ["M", "Mar", "March"], ["A", "Apr", "April"], ["M", "May", "May"], ["J", "Jun", "June"], ["J", "Jul", "July"], ["A", "Aug", "August"], ["S", "Sep", "September"], ["O", "Oct", "October"], ["N", "Nov", "November"], ["D", "Dec", "December"] ]; function id(t) { return t || (t = {}), t[0] = "General", t[1] = "0", t[2] = "0.00", t[3] = "#,##0", t[4] = "#,##0.00", t[9] = "0%", t[10] = "0.00%", t[11] = "0.00E+00", t[12] = "# ?/?", t[13] = "# ??/??", t[14] = "m/d/yy", t[15] = "d-mmm-yy", t[16] = "d-mmm", t[17] = "mmm-yy", t[18] = "h:mm AM/PM", t[19] = "h:mm:ss AM/PM", t[20] = "h:mm", t[21] = "h:mm:ss", t[22] = "m/d/yy h:mm", t[37] = "#,##0 ;(#,##0)", t[38] = "#,##0 ;[Red](#,##0)", t[39] = "#,##0.00;(#,##0.00)", t[40] = "#,##0.00;[Red](#,##0.00)", t[45] = "mm:ss", t[46] = "[h]:mm:ss", t[47] = "mmss.0", t[48] = "##0.0E+0", t[49] = "@", t[56] = '"上午/下午 "hh"時"mm"分"ss"秒 "', t; } var lr = { 0: "General", 1: "0", 2: "0.00", 3: "#,##0", 4: "#,##0.00", 9: "0%", 10: "0.00%", 11: "0.00E+00", 12: "# ?/?", 13: "# ??/??", 14: "m/d/yy", 15: "d-mmm-yy", 16: "d-mmm", 17: "mmm-yy", 18: "h:mm AM/PM", 19: "h:mm:ss AM/PM", 20: "h:mm", 21: "h:mm:ss", 22: "m/d/yy h:mm", 37: "#,##0 ;(#,##0)", 38: "#,##0 ;[Red](#,##0)", 39: "#,##0.00;(#,##0.00)", 40: "#,##0.00;[Red](#,##0.00)", 45: "mm:ss", 46: "[h]:mm:ss", 47: "mmss.0", 48: "##0.0E+0", 49: "@", 56: '"上午/下午 "hh"時"mm"分"ss"秒 "' }, jh = { 5: 37, 6: 38, 7: 39, 8: 40, // 5 -> 37 ... 8 -> 40 23: 0, 24: 0, 25: 0, 26: 0, // 23 -> 0 ... 26 -> 0 27: 14, 28: 14, 29: 14, 30: 14, 31: 14, // 27 -> 14 ... 31 -> 14 50: 14, 51: 14, 52: 14, 53: 14, 54: 14, // 50 -> 14 ... 58 -> 14 55: 14, 56: 14, 57: 14, 58: 14, 59: 1, 60: 2, 61: 3, 62: 4, // 59 -> 1 ... 62 -> 4 67: 9, 68: 10, // 67 -> 9 ... 68 -> 10 69: 12, 70: 13, 71: 14, // 69 -> 12 ... 71 -> 14 72: 14, 73: 15, 74: 16, 75: 17, // 72 -> 14 ... 75 -> 17 76: 20, 77: 21, 78: 22, // 76 -> 20 ... 78 -> 22 79: 45, 80: 46, 81: 47, // 79 -> 45 ... 81 -> 47 82: 0 // 82 -> 0 ... 65536 -> 0 (omitted) }, ad = { // 5 -- Currency, 0 decimal, black negative 5: '"$"#,##0_);\\("$"#,##0\\)', 63: '"$"#,##0_);\\("$"#,##0\\)', // 6 -- Currency, 0 decimal, red negative 6: '"$"#,##0_);[Red]\\("$"#,##0\\)', 64: '"$"#,##0_);[Red]\\("$"#,##0\\)', // 7 -- Currency, 2 decimal, black negative 7: '"$"#,##0.00_);\\("$"#,##0.00\\)', 65: '"$"#,##0.00_);\\("$"#,##0.00\\)', // 8 -- Currency, 2 decimal, red negative 8: '"$"#,##0.00_);[Red]\\("$"#,##0.00\\)', 66: '"$"#,##0.00_);[Red]\\("$"#,##0.00\\)', // 41 -- Accounting, 0 decimal, No Symbol 41: '_(* #,##0_);_(* \\(#,##0\\);_(* "-"_);_(@_)', // 42 -- Accounting, 0 decimal, $ Symbol 42: '_("$"* #,##0_);_("$"* \\(#,##0\\);_("$"* "-"_);_(@_)', // 43 -- Accounting, 2 decimal, No Symbol 43: '_(* #,##0.00_);_(* \\(#,##0.00\\);_(* "-"??_);_(@_)', // 44 -- Accounting, 2 decimal, $ Symbol 44: '_("$"* #,##0.00_);_("$"* \\(#,##0.00\\);_("$"* "-"??_);_(@_)' }; function U0(t, e, r) { for (var n = t < 0 ? -1 : 1, i = t * n, a = 0, s = 1, o = 0, l = 1, h = 0, u = 0, g = Math.floor(i); h < e && (g = Math.floor(i), o = g * s + a, u = g * h + l, !(i - g < 5e-8)); ) i = 1 / (i - g), a = s, s = o, l = h, h = u; if (u > e && (h > e ? (u = l, o = a) : (u = h, o = s)), !r) return [0, n * o, u]; var v = Math.floor(n * o / u); return [v, n * o - v * u, u]; } function A0(t, e, r) { if (t > 2958465 || t < 0) return null; var n = t | 0, i = Math.floor(86400 * (t - n)), a = 0, s = [], o = { D: n, T: i, u: 86400 * (t - n) - i, y: 0, m: 0, d: 0, H: 0, M: 0, S: 0, q: 0 }; if (Math.abs(o.u) < 1e-6 && (o.u = 0), e && e.date1904 && (n += 1462), o.u > 0.9999 && (o.u = 0, ++i == 86400 && (o.T = i = 0, ++n, ++o.D)), n === 60) s = r ? [1317, 10, 29] : [1900, 2, 29], a = 3; else if (n === 0) s = r ? [1317, 8, 29] : [1900, 1, 0], a = 6; else { n > 60 && --n; var l = new Date(1900, 0, 1); l.setDate(l.getDate() + n - 1), s = [l.getFullYear(), l.getMonth() + 1, l.getDate()], a = l.getDay(), n < 60 && (a = (a + 6) % 7), r && (a = ud(l, s)); } return o.y = s[0], o.m = s[1], o.d = s[2], o.S = i % 60, i = Math.floor(i / 60), o.M = i % 60, i = Math.floor(i / 60), o.H = i, o.q = a, o; } var Jc = /* @__PURE__ */ new Date(1899, 11, 31, 0, 0, 0), sd = /* @__PURE__ */ Jc.getTime(), od = /* @__PURE__ */ new Date(1900, 2, 1, 0, 0, 0); function Zc(t, e) { var r = /* @__PURE__ */ t.getTime(); return e ? r -= 1461 * 24 * 60 * 60 * 1e3 : t >= od && (r += 24 * 60 * 60 * 1e3), (r - (sd + (/* @__PURE__ */ t.getTimezoneOffset() - /* @__PURE__ */ Jc.getTimezoneOffset()) * 6e4)) / (24 * 60 * 60 * 1e3); } function Ml(t) { return t.indexOf(".") == -1 ? t : t.replace(/(?:\.0*|(\.\d*[1-9])0+)$/, "$1"); } function fd(t) { return t.indexOf("E") == -1 ? t : t.replace(/(?:\.0*|(\.\d*[1-9])0+)[Ee]/, "$1E").replace(/(E[+-])(\d)$/, "$10$2"); } function ld(t) { var e = t < 0 ? 12 : 11, r = Ml(t.toFixed(12)); return r.length <= e || (r = t.toPrecision(10), r.length <= e) ? r : t.toExponential(5); } function hd(t) { var e = Ml(t.toFixed(11)); return e.length > (t < 0 ? 12 : 11) || e === "0" || e === "-0" ? t.toPrecision(6) : e; } function cd(t) { var e = Math.floor(Math.log(Math.abs(t)) * Math.LOG10E), r; return e >= -4 && e <= -1 ? r = t.toPrecision(10 + e) : Math.abs(e) <= 9 ? r = ld(t) : e === 10 ? r = t.toFixed(10).substr(0, 12) : r = hd(t), Ml(fd(r.toUpperCase())); } function xl(t, e) { switch (typeof t) { case "string": return t; case "boolean": return t ? "TRUE" : "FALSE"; case "number": return (t | 0) === t ? t.toString(10) : cd(t); case "undefined": return ""; case "object": if (t == null) return ""; if (t instanceof Date) return la(14, Zc(t, e && e.date1904), e); } throw new Error("unsupported value in General format: " + t); } function ud(t, e) { e[0] -= 581; var r = t.getDay(); return t < 60 && (r = (r + 6) % 7), r; } function dd(t, e, r, n) { var i = "", a = 0, s = 0, o = r.y, l, h = 0; switch (t) { case 98: o = r.y + 543; case 121: switch (e.length) { case 1: case 2: l = o % 100, h = 2; break; default: l = o % 1e4, h = 4; break; } break; case 109: switch (e.length) { case 1: case 2: l = r.m, h = e.length; break; case 3: return Jf[r.m - 1][1]; case 5: return Jf[r.m - 1][0]; default: return Jf[r.m - 1][2]; } break; case 100: switch (e.length) { case 1: case 2: l = r.d, h = e.length; break; case 3: return Bh[r.q][0]; default: return Bh[r.q][1]; } break; case 104: switch (e.length) { case 1: case 2: l = 1 + (r.H + 11) % 12, h = e.length; break; default: throw "bad hour format: " + e; } break; case 72: switch (e.length) { case 1: case 2: l = r.H, h = e.length; break; default: throw "bad hour format: " + e; } break; case 77: switch (e.length) { case 1: case 2: l = r.M, h = e.length; break; default: throw "bad minute format: " + e; } break; case 115: if (e != "s" && e != "ss" && e != ".0" && e != ".00" && e != ".000") throw "bad second format: " + e; return r.u === 0 && (e == "s" || e == "ss") ? ni(r.S, e.length) : (n >= 2 ? s = n === 3 ? 1e3 : 100 : s = n === 1 ? 10 : 1, a = Math.round(s * (r.S + r.u)), a >= 60 * s && (a = 0), e === "s" ? a === 0 ? "0" : "" + a / s : (i = ni(a, 2 + n), e === "ss" ? i.substr(0, 2) : "." + i.substr(2, e.length - 1))); case 90: switch (e) { case "[h]": case "[hh]": l = r.D * 24 + r.H; break; case "[m]": case "[mm]": l = (r.D * 24 + r.H) * 60 + r.M; break; case "[s]": case "[ss]": l = ((r.D * 24 + r.H) * 60 + r.M) * 60 + Math.round(r.S + r.u); break; default: throw "bad abstime format: " + e; } h = e.length === 3 ? 1 : 2; break; case 101: l = o, h = 1; break; } var u = h > 0 ? ni(l, h) : ""; return u; } function oa(t) { var e = 3; if (t.length <= e) return t; for (var r = t.length % e, n = t.substr(0, r); r != t.length; r += e) n += (n.length > 0 ? "," : "") + t.substr(r, e); return n; } var Qc = /%/g; function pd(t, e, r) { var n = e.replace(Qc, ""), i = e.length - n.length; return Ri(t, n, r * Math.pow(10, 2 * i)) + fr("%", i); } function gd(t, e, r) { for (var n = e.length - 1; e.charCodeAt(n - 1) === 44; ) --n; return Ri(t, e.substr(0, n), r / Math.pow(10, 3 * (e.length - n))); } function eu(t, e) { var r, n = t.indexOf("E") - t.indexOf(".") - 1; if (t.match(/^#+0.0E\+0$/)) { if (e == 0) return "0.0E+0"; if (e < 0) return "-" + eu(t, -e); var i = t.indexOf("."); i === -1 && (i = t.indexOf("E")); var a = Math.floor(Math.log(e) * Math.LOG10E) % i; if (a < 0 && (a += i), r = (e / Math.pow(10, a)).toPrecision(n + 1 + (i + a) % i), r.indexOf("e") === -1) { var s = Math.floor(Math.log(e) * Math.LOG10E); for (r.indexOf(".") === -1 ? r = r.charAt(0) + "." + r.substr(1) + "E+" + (s - r.length + a) : r += "E+" + (s - a); r.substr(0, 2) === "0."; ) r = r.charAt(0) + r.substr(2, i) + "." + r.substr(2 + i), r = r.replace(/^0+([1-9])/, "$1").replace(/^0+\./, "0."); r = r.replace(/\+-/, "-"); } r = r.replace(/^([+-]?)(\d*)\.(\d*)[Ee]/, function(o, l, h, u) { return l + h + u.substr(0, (i + a) % i) + "." + u.substr(a) + "E"; }); } else r = e.toExponential(n); return t.match(/E\+00$/) && r.match(/e[+-]\d$/) && (r = r.substr(0, r.length - 1) + "0" + r.charAt(r.length - 1)), t.match(/E\-/) && r.match(/e\+/) && (r = r.replace(/e\+/, "e")), r.replace("e", "E"); } var tu = /# (\?+)( ?)\/( ?)(\d+)/; function vd(t, e, r) { var n = parseInt(t[4], 10), i = Math.round(e * n), a = Math.floor(i / n), s = i - a * n, o = n; return r + (a === 0 ? "" : "" + a) + " " + (s === 0 ? fr(" ", t[1].length + 1 + t[4].length) : Rl(s, t[1].length) + t[2] + "/" + t[3] + ni(o, t[4].length)); } function md(t, e, r) { return r + (e === 0 ? "" : "" + e) + fr(" ", t[1].length + 2 + t[4].length); } var ru = /^#*0*\.([0#]+)/, nu = /\).*[0#]/, iu = /\(###\) ###\\?-####/; function rn(t) { for (var e = "", r, n = 0; n != t.length; ++n) switch (r = t.charCodeAt(n)) { case 35: break; case 63: e += " "; break; case 48: e += "0"; break; default: e += String.fromCharCode(r); } return e; } function Uh(t, e) { var r = Math.pow(10, e); return "" + Math.round(t * r) / r; } function Hh(t, e) { var r = t - Math.floor(t), n = Math.pow(10, e); return e < ("" + Math.round(r * n)).length ? 0 : Math.round(r * n); } function xd(t, e) { return e < ("" + Math.round((t - Math.floor(t)) * Math.pow(10, e))).length ? 1 : 0; } function wd(t) { return t < 2147483647 && t > -2147483648 ? "" + (t >= 0 ? t | 0 : t - 1 | 0) : "" + Math.floor(t); } function Un(t, e, r) { if (t.charCodeAt(0) === 40 && !e.match(nu)) { var n = e.replace(/\( */, "").replace(/ \)/, "").replace(/\)/, ""); return r >= 0 ? Un("n", n, r) : "(" + Un("n", n, -r) + ")"; } if (e.charCodeAt(e.length - 1) === 44) return gd(t, e, r); if (e.indexOf("%") !== -1) return pd(t, e, r); if (e.indexOf("E") !== -1) return eu(e, r); if (e.charCodeAt(0) === 36) return "$" + Un(t, e.substr(e.charAt(1) == " " ? 2 : 1), r); var i, a, s, o, l = Math.abs(r), h = r < 0 ? "-" : ""; if (e.match(/^00+$/)) return h + fs(l, e.length); if (e.match(/^[#?]+$/)) return i = fs(r, 0), i === "0" && (i = ""), i.length > e.length ? i : rn(e.substr(0, e.length - i.length)) + i; if (a = e.match(tu)) return vd(a, l, h); if (e.match(/^#+0+$/)) return h + fs(l, e.length - e.indexOf("0")); if (a = e.match(ru)) return i = Uh(r, a[1].length).replace(/^([^\.]+)$/, "$1." + rn(a[1])).replace(/\.$/, "." + rn(a[1])).replace(/\.(\d*)$/, function(y, x) { return "." + x + fr("0", rn( /*::(*/ a[1] ).length - x.length); }), e.indexOf("0.") !== -1 ? i : i.replace(/^0\./, "."); if (e = e.replace(/^#+([0.])/, "$1"), a = e.match(/^(0*)\.(#*)$/)) return h + Uh(l, a[2].length).replace(/\.(\d*[1-9])0*$/, ".$1").replace(/^(-?\d*)$/, "$1.").replace(/^0\./, a[1].length ? "0." : "."); if (a = e.match(/^#{1,3},##0(\.?)$/)) return h + oa(fs(l, 0)); if (a = e.match(/^#,##0\.([#0]*0)$/)) return r < 0 ? "-" + Un(t, e, -r) : oa("" + (Math.floor(r) + xd(r, a[1].length))) + "." + ni(Hh(r, a[1].length), a[1].length); if (a = e.match(/^#,#*,#0/)) return Un(t, e.replace(/^#,#*,/, ""), r); if (a = e.match(/^([0#]+)(\\?-([0#]+))+$/)) return i = xs(Un(t, e.replace(/[\\-]/g, ""), r)), s = 0, xs(xs(e.replace(/\\/g, "")).replace(/[0#]/g, function(y) { return s < i.length ? i.charAt(s++) : y === "0" ? "0" : ""; })); if (e.match(iu)) return i = Un(t, "##########", r), "(" + i.substr(0, 3) + ") " + i.substr(3, 3) + "-" + i.substr(6); var u = ""; if (a = e.match(/^([#0?]+)( ?)\/( ?)([#0?]+)/)) return s = Math.min( /*::String(*/ a[4].length, 7 ), o = U0(l, Math.pow(10, s) - 1, !1), i = "" + h, u = Ri( "n", /*::String(*/ a[1], o[1] ), u.charAt(u.length - 1) == " " && (u = u.substr(0, u.length - 1) + "0"), i += u + /*::String(*/ a[2] + "/" + /*::String(*/ a[3], u = B0(o[2], s), u.length < a[4].length && (u = rn(a[4].substr(a[4].length - u.length)) + u), i += u, i; if (a = e.match(/^# ([#0?]+)( ?)\/( ?)([#0?]+)/)) return s = Math.min(Math.max(a[1].length, a[4].length), 7), o = U0(l, Math.pow(10, s) - 1, !0), h + (o[0] || (o[1] ? "" : "0")) + " " + (o[1] ? Rl(o[1], s) + a[2] + "/" + a[3] + B0(o[2], s) : fr(" ", 2 * s + 1 + a[2].length + a[3].length)); if (a = e.match(/^[#0?]+$/)) return i = fs(r, 0), e.length <= i.length ? i : rn(e.substr(0, e.length - i.length)) + i; if (a = e.match(/^([#0?]+)\.([#0]+)$/)) { i = "" + r.toFixed(Math.min(a[2].length, 10)).replace(/([^0])0+$/, "$1"), s = i.indexOf("."); var g = e.indexOf(".") - s, v = e.length - i.length - g; return rn(e.substr(0, g) + i + e.substr(e.length - v)); } if (a = e.match(/^00,000\.([#0]*0)$/)) return s = Hh(r, a[1].length), r < 0 ? "-" + Un(t, e, -r) : oa(wd(r)).replace(/^\d,\d{3}$/, "0$&").replace(/^\d*$/, function(y) { return "00," + (y.length < 3 ? ni(0, 3 - y.length) : "") + y; }) + "." + ni(s, a[1].length); switch (e) { case "###,##0.00": return Un(t, "#,##0.00", r); case "###,###": case "##,###": case "#,###": var d = oa(fs(l, 0)); return d !== "0" ? h + d : ""; case "###,###.00": return Un(t, "###,##0.00", r).replace(/^0\./, "."); case "#,###.00": return Un(t, "#,##0.00", r).replace(/^0\./, "."); } throw new Error("unsupported format |" + e + "|"); } function yd(t, e, r) { for (var n = e.length - 1; e.charCodeAt(n - 1) === 44; ) --n; return Ri(t, e.substr(0, n), r / Math.pow(10, 3 * (e.length - n))); } function _d(t, e, r) { var n = e.replace(Qc, ""), i = e.length - n.length; return Ri(t, n, r * Math.pow(10, 2 * i)) + fr("%", i); } function au(t, e) { var r, n = t.indexOf("E") - t.indexOf(".") - 1; if (t.match(/^#+0.0E\+0$/)) { if (e == 0) return "0.0E+0"; if (e < 0) return "-" + au(t, -e); var i = t.indexOf("."); i === -1 && (i = t.indexOf("E")); var a = Math.floor(Math.log(e) * Math.LOG10E) % i; if (a < 0 && (a += i), r = (e / Math.pow(10, a)).toPrecision(n + 1 + (i + a) % i), !r.match(/[Ee]/)) { var s = Math.floor(Math.log(e) * Math.LOG10E); r.indexOf(".") === -1 ? r = r.charAt(0) + "." + r.substr(1) + "E+" + (s - r.length + a) : r += "E+" + (s - a), r = r.replace(/\+-/, "-"); } r = r.replace(/^([+-]?)(\d*)\.(\d*)[Ee]/, function(o, l, h, u) { return l + h + u.substr(0, (i + a) % i) + "." + u.substr(a) + "E"; }); } else r = e.toExponential(n); return t.match(/E\+00$/) && r.match(/e[+-]\d$/) && (r = r.substr(0, r.length - 1) + "0" + r.charAt(r.length - 1)), t.match(/E\-/) && r.match(/e\+/) && (r = r.replace(/e\+/, "e")), r.replace("e", "E"); } function pi(t, e, r) { if (t.charCodeAt(0) === 40 && !e.match(nu)) { var n = e.replace(/\( */, "").replace(/ \)/, "").replace(/\)/, ""); return r >= 0 ? pi("n", n, r) : "(" + pi("n", n, -r) + ")"; } if (e.charCodeAt(e.length - 1) === 44) return yd(t, e, r); if (e.indexOf("%") !== -1) return _d(t, e, r); if (e.indexOf("E") !== -1) return au(e, r); if (e.charCodeAt(0) === 36) return "$" + pi(t, e.substr(e.charAt(1) == " " ? 2 : 1), r); var i, a, s, o, l = Math.abs(r), h = r < 0 ? "-" : ""; if (e.match(/^00+$/)) return h + ni(l, e.length); if (e.match(/^[#?]+$/)) return i = "" + r, r === 0 && (i = ""), i.length > e.length ? i : rn(e.substr(0, e.length - i.length)) + i; if (a = e.match(tu)) return md(a, l, h); if (e.match(/^#+0+$/)) return h + ni(l, e.length - e.indexOf("0")); if (a = e.match(ru)) return i = ("" + r).replace(/^([^\.]+)$/, "$1." + rn(a[1])).replace(/\.$/, "." + rn(a[1])), i = i.replace(/\.(\d*)$/, function(y, x) { return "." + x + fr("0", rn(a[1]).length - x.length); }), e.indexOf("0.") !== -1 ? i : i.replace(/^0\./, "."); if (e = e.replace(/^#+([0.])/, "$1"), a = e.match(/^(0*)\.(#*)$/)) return h + ("" + l).replace(/\.(\d*[1-9])0*$/, ".$1").replace(/^(-?\d*)$/, "$1.").replace(/^0\./, a[1].length ? "0." : "."); if (a = e.match(/^#{1,3},##0(\.?)$/)) return h + oa("" + l); if (a = e.match(/^#,##0\.([#0]*0)$/)) return r < 0 ? "-" + pi(t, e, -r) : oa("" + r) + "." + fr("0", a[1].length); if (a = e.match(/^#,#*,#0/)) return pi(t, e.replace(/^#,#*,/, ""), r); if (a = e.match(/^([0#]+)(\\?-([0#]+))+$/)) return i = xs(pi(t, e.replace(/[\\-]/g, ""), r)), s = 0, xs(xs(e.replace(/\\/g, "")).replace(/[0#]/g, function(y) { return s < i.length ? i.charAt(s++) : y === "0" ? "0" : ""; })); if (e.match(iu)) return i = pi(t, "##########", r), "(" + i.substr(0, 3) + ") " + i.substr(3, 3) + "-" + i.substr(6); var u = ""; if (a = e.match(/^([#0?]+)( ?)\/( ?)([#0?]+)/)) return s = Math.min( /*::String(*/ a[4].length, 7 ), o = U0(l, Math.pow(10, s) - 1, !1), i = "" + h, u = Ri( "n", /*::String(*/ a[1], o[1] ), u.charAt(u.length - 1) == " " && (u = u.substr(0, u.length - 1) + "0"), i += u + /*::String(*/ a[2] + "/" + /*::String(*/ a[3], u = B0(o[2], s), u.length < a[4].length && (u = rn(a[4].substr(a[4].length - u.length)) + u), i += u, i; if (a = e.match(/^# ([#0?]+)( ?)\/( ?)([#0?]+)/)) return s = Math.min(Math.max(a[1].length, a[4].length), 7), o = U0(l, Math.pow(10, s) - 1, !0), h + (o[0] || (o[1] ? "" : "0")) + " " + (o[1] ? Rl(o[1], s) + a[2] + "/" + a[3] + B0(o[2], s) : fr(" ", 2 * s + 1 + a[2].length + a[3].length)); if (a = e.match(/^[#0?]+$/)) return i = "" + r, e.length <= i.length ? i : rn(e.substr(0, e.length - i.length)) + i; if (a = e.match(/^([#0]+)\.([#0]+)$/)) { i = "" + r.toFixed(Math.min(a[2].length, 10)).replace(/([^0])0+$/, "$1"), s = i.indexOf("."); var g = e.indexOf(".") - s, v = e.length - i.length - g; return rn(e.substr(0, g) + i + e.substr(e.length - v)); } if (a = e.match(/^00,000\.([#0]*0)$/)) return r < 0 ? "-" + pi(t, e, -r) : oa("" + r).replace(/^\d,\d{3}$/, "0$&").replace(/^\d*$/, function(y) { return "00," + (y.length < 3 ? ni(0, 3 - y.length) : "") + y; }) + "." + ni(0, a[1].length); switch (e) { case "###,###": case "##,###": case "#,###": var d = oa("" + l); return d !== "0" ? h + d : ""; default: if (e.match(/\.[0#?]*$/)) return pi(t, e.slice(0, e.lastIndexOf(".")), r) + rn(e.slice(e.lastIndexOf("."))); } throw new Error("unsupported format |" + e + "|"); } function Ri(t, e, r) { return (r | 0) === r ? pi(t, e, r) : Un(t, e, r); } function Sd(t) { for (var e = [], r = !1, n = 0, i = 0; n < t.length; ++n) switch ( /*cc=*/ t.charCodeAt(n) ) { case 34: r = !r; break; case 95: case 42: case 92: ++n; break; case 59: e[e.length] = t.substr(i, n - i), i = n + 1; } if (e[e.length] = t.substr(i), r === !0) throw new Error("Format |" + t + "| unterminated string "); return e; } var su = /\[[HhMmSs\u0E0A\u0E19\u0E17]*\]/; function ou(t) { for (var e = 0, r = "", n = ""; e < t.length; ) switch (r = t.charAt(e)) { case "G": j0(t, e) && (e += 6), e++; break; case '"': for ( ; /*cc=*/ t.charCodeAt(++e) !== 34 && e < t.length; ) ; ++e; break; case "\\": e += 2; break; case "_": e += 2; break; case "@": ++e; break; case "B": case "b": if (t.charAt(e + 1) === "1" || t.charAt(e + 1) === "2") return !0; case "M": case "D": case "Y": case "H": case "S": case "E": case "m": case "d": case "y": case "h": case "s": case "e": case "g": return !0; case "A": case "a": case "上": if (t.substr(e, 3).toUpperCase() === "A/P" || t.substr(e, 5).toUpperCase() === "AM/PM" || t.substr(e, 5).toUpperCase() === "上午/下午") return !0; ++e; break; case "[": for (n = r; t.charAt(e++) !== "]" && e < t.length; ) n += t.charAt(e); if (n.match(su)) return !0; break; case ".": case "0": case "#": for (; e < t.length && ("0#?.,E+-%".indexOf(r = t.charAt(++e)) > -1 || r == "\\" && t.charAt(e + 1) == "-" && "0#".indexOf(t.charAt(e + 2)) > -1); ) ; break; case "?": for (; t.charAt(++e) === r; ) ; break; case "*": ++e, (t.charAt(e) == " " || t.charAt(e) == "*") && ++e; break; case "(": case ")": ++e; break; case "1": case "2": case "3": case "4": case "5": case "6": case "7": case "8": case "9": for (; e < t.length && "0123456789".indexOf(t.charAt(++e)) > -1; ) ; break; case " ": ++e; break; default: ++e; break; } return !1; } function Ad(t, e, r, n) { for (var i = [], a = "", s = 0, o = "", l = "t", h, u, g, v = "H"; s < t.length; ) switch (o = t.charAt(s)) { case "G": if (!j0(t, s)) throw new Error("unrecognized character " + o + " in " + t); i[i.length] = { t: "G", v: "General" }, s += 7; break; case '"': for (a = ""; (g = t.charCodeAt(++s)) !== 34 && s < t.length; ) a += String.fromCharCode(g); i[i.length] = { t: "t", v: a }, ++s; break; case "\\": var d = t.charAt(++s), y = d === "(" || d === ")" ? d : "t"; i[i.length] = { t: y, v: d }, ++s; break; case "_": i[i.length] = { t: "t", v: " " }, s += 2; break; case "@": i[i.length] = { t: "T", v: e }, ++s; break; case "B": case "b": if (t.charAt(s + 1) === "1" || t.charAt(s + 1) === "2") { if (h == null && (h = A0(e, r, t.charAt(s + 1) === "2"), h == null)) return ""; i[i.length] = { t: "X", v: t.substr(s, 2) }, l = o, s += 2; break; } case "M": case "D": case "Y": case "H": case "S": case "E": o = o.toLowerCase(); case "m": case "d": case "y": case "h": case "s": case "e": case "g": if (e < 0 || h == null && (h = A0(e, r), h == null)) return ""; for (a = o; ++s < t.length && t.charAt(s).toLowerCase() === o; ) a += o; o === "m" && l.toLowerCase() === "h" && (o = "M"), o === "h" && (o = v), i[i.length] = { t: o, v: a }, l = o; break; case "A": case "a": case "上": var x = { t: o, v: o }; if (h == null && (h = A0(e, r)), t.substr(s, 3).toUpperCase() === "A/P" ? (h != null && (x.v = h.H >= 12 ? "P" : "A"), x.t = "T", v = "h", s += 3) : t.substr(s, 5).toUpperCase() === "AM/PM" ? (h != null && (x.v = h.H >= 12 ? "PM" : "AM"), x.t = "T", s += 5, v = "h") : t.substr(s, 5).toUpperCase() === "上午/下午" ? (h != null && (x.v = h.H >= 12 ? "下午" : "上午"), x.t = "T", s += 5, v = "h") : (x.t = "t", ++s), h == null && x.t === "T") return ""; i[i.length] = x, l = o; break; case "[": for (a = o; t.charAt(s++) !== "]" && s < t.length; ) a += t.charAt(s); if (a.slice(-1) !== "]") throw 'unterminated "[" block: |' + a + "|"; if (a.match(su)) { if (h == null && (h = A0(e, r), h == null)) return ""; i[i.length] = { t: "Z", v: a.toLowerCase() }, l = a.charAt(1); } else a.indexOf("$") > -1 && (a = (a.match(/\$([^-\[\]]*)/) || [])[1] || "$", ou(t) || (i[i.length] = { t: "t", v: a })); break; case ".": if (h != null) { for (a = o; ++s < t.length && (o = t.charAt(s)) === "0"; ) a += o; i[i.length] = { t: "s", v: a }; break; } case "0": case "#": for (a = o; ++s < t.length && "0#?.,E+-%".indexOf(o = t.charAt(s)) > -1; ) a += o; i[i.length] = { t: "n", v: a }; break; case "?": for (a = o; t.charAt(++s) === o; ) a += o; i[i.length] = { t: o, v: a }, l = o; break; case "*": ++s, (t.charAt(s) == " " || t.charAt(s) == "*") && ++s; break; case "(": case ")": i[i.length] = { t: n === 1 ? "t" : o, v: o }, ++s; break; case "1": case "2": case "3": case "4": case "5": case "6": case "7": case "8": case "9": for (a = o; s < t.length && "0123456789".indexOf(t.charAt(++s)) > -1; ) a += t.charAt(s); i[i.length] = { t: "D", v: a }; break; case " ": i[i.length] = { t: o, v: o }, ++s; break; case "$": i[i.length] = { t: "t", v: "$" }, ++s; break; default: if (",$-+/():!^&'~{}<>=€acfijklopqrtuvwxzP".indexOf(o) === -1) throw new Error("unrecognized character " + o + " in " + t); i[i.length] = { t: "t", v: o }, ++s; break; } var S = 0, A = 0, b; for (s = i.length - 1, l = "t"; s >= 0; --s) switch (i[s].t) { case "h": case "H": i[s].t = v, l = "h", S < 1 && (S = 1); break; case "s": (b = i[s].v.match(/\.0+$/)) && (A = Math.max(A, b[0].length - 1)), S < 3 && (S = 3); case "d": case "y": case "M": case "e": l = i[s].t; break; case "m": l === "s" && (i[s].t = "M", S < 2 && (S = 2)); break; case "X": break; case "Z": S < 1 && i[s].v.match(/[Hh]/) && (S = 1), S < 2 && i[s].v.match(/[Mm]/) && (S = 2), S < 3 && i[s].v.match(/[Ss]/) && (S = 3); } switch (S) { case 0: break; case 1: h.u >= 0.5 && (h.u = 0, ++h.S), h.S >= 60 && (h.S = 0, ++h.M), h.M >= 60 && (h.M = 0, ++h.H); break; case 2: h.u >= 0.5 && (h.u = 0, ++h.S), h.S >= 60 && (h.S = 0, ++h.M); break; } var I = "", H; for (s = 0; s < i.length; ++s) switch (i[s].t) { case "t": case "T": case " ": case "D": break; case "X": i[s].v = "", i[s].t = ";"; break; case "d": case "m": case "y": case "h": case "H": case "M": case "s": case "e": case "b": case "Z": i[s].v = dd(i[s].t.charCodeAt(0), i[s].v, h, A), i[s].t = "t"; break; case "n": case "?": for (H = s + 1; i[H] != null && ((o = i[H].t) === "?" || o === "D" || (o === " " || o === "t") && i[H + 1] != null && (i[H + 1].t === "?" || i[H + 1].t === "t" && i[H + 1].v === "/") || i[s].t === "(" && (o === " " || o === "n" || o === ")") || o === "t" && (i[H].v === "/" || i[H].v === " " && i[H + 1] != null && i[H + 1].t == "?")); ) i[s].v += i[H].v, i[H] = { v: "", t: ";" }, ++H; I += i[s].v, s = H - 1; break; case "G": i[s].t = "t", i[s].v = xl(e, r); break; } var te = "", le, j; if (I.length > 0) { I.charCodeAt(0) == 40 ? (le = e < 0 && I.charCodeAt(0) === 45 ? -e : e, j = Ri("n", I, le)) : (le = e < 0 && n > 1 ? -e : e, j = Ri("n", I, le), le < 0 && i[0] && i[0].t == "t" && (j = j.substr(1), i[0].v = "-" + i[0].v)), H = j.length - 1; var M = i.length; for (s = 0; s < i.length; ++s) if (i[s] != null && i[s].t != "t" && i[s].v.indexOf(".") > -1) { M = s; break; } var q = i.length; if (M === i.length && j.indexOf("E") === -1) { for (s = i.length - 1; s >= 0; --s) i[s] == null || "n?".indexOf(i[s].t) === -1 || (H >= i[s].v.length - 1 ? (H -= i[s].v.length, i[s].v = j.substr(H + 1, i[s].v.length)) : H < 0 ? i[s].v = "" : (i[s].v = j.substr(0, H + 1), H = -1), i[s].t = "t", q = s); H >= 0 && q < i.length && (i[q].v = j.substr(0, H + 1) + i[q].v); } else if (M !== i.length && j.indexOf("E") === -1) { for (H = j.indexOf(".") - 1, s = M; s >= 0; --s) if (!(i[s] == null || "n?".indexOf(i[s].t) === -1)) { for (u = i[s].v.indexOf(".") > -1 && s === M ? i[s].v.indexOf(".") - 1 : i[s].v.length - 1, te = i[s].v.substr(u + 1); u >= 0; --u) H >= 0 && (i[s].v.charAt(u) === "0" || i[s].v.charAt(u) === "#") && (te = j.charAt(H--) + te); i[s].v = te, i[s].t = "t", q = s; } for (H >= 0 && q < i.length && (i[q].v = j.substr(0, H + 1) + i[q].v), H = j.indexOf(".") + 1, s = M; s < i.length; ++s) if (!(i[s] == null || "n?(".indexOf(i[s].t) === -1 && s !== M)) { for (u = i[s].v.indexOf(".") > -1 && s === M ? i[s].v.indexOf(".") + 1 : 0, te = i[s].v.substr(0, u); u < i[s].v.length; ++u) H < j.length && (te += j.charAt(H++)); i[s].v = te, i[s].t = "t", q = s; } } } for (s = 0; s < i.length; ++s) i[s] != null && "n?".indexOf(i[s].t) > -1 && (le = n > 1 && e < 0 && s > 0 && i[s - 1].v === "-" ? -e : e, i[s].v = Ri(i[s].t, i[s].v, le), i[s].t = "t"); var ee = ""; for (s = 0; s !== i.length; ++s) i[s] != null && (ee += i[s].v); return ee; } var Wh = /\[(=|>[=]?|<[>=]?)(-?\d+(?:\.\d*)?)\]/; function qh(t, e) { if (e == null) return !1; var r = parseFloat(e[2]); switch (e[1]) { case "=": if (t == r) return !0; break; case ">": if (t > r) return !0; break; case "<": if (t < r) return !0; break; case "<>": if (t != r) return !0; break; case ">=": if (t >= r) return !0; break; case "<=": if (t <= r) return !0; break; } return !1; } function bd(t, e) { var r = Sd(t), n = r.length, i = r[n - 1].indexOf("@"); if (n < 4 && i > -1 && --n, r.length > 4) throw new Error("cannot find right format for |" + r.join("|") + "|"); if (typeof e != "number") return [4, r.length === 4 || i > -1 ? r[r.length - 1] : "@"]; switch (r.length) { case 1: r = i > -1 ? ["General", "General", "General", r[0]] : [r[0], r[0], r[0], "@"]; break; case 2: r = i > -1 ? [r[0], r[0], r[0], r[1]] : [r[0], r[1], r[0], "@"]; break; case 3: r = i > -1 ? [r[0], r[1], r[0], r[2]] : [r[0], r[1], r[2], "@"]; break; } var a = e > 0 ? r[0] : e < 0 ? r[1] : r[2]; if (r[0].indexOf("[") === -1 && r[1].indexOf("[") === -1) return [n, a]; if (r[0].match(/\[[=<>]/) != null || r[1].match(/\[[=<>]/) != null) { var s = r[0].match(Wh), o = r[1].match(Wh); return qh(e, s) ? [n, r[0]] : qh(e, o) ? [n, r[1]] : [n, r[s != null && o != null ? 2 : 1]]; } return [n, a]; } function la(t, e, r) { r == null && (r = {}); var n = ""; switch (typeof t) { case "string": t == "m/d/yy" && r.dateNF ? n = r.dateNF : n = t; break; case "number": t == 14 && r.dateNF ? n = r.dateNF : n = (r.table != null ? r.table : lr)[t], n == null && (n = r.table && r.table[jh[t]] || lr[jh[t]]), n == null && (n = ad[t] || "General"); break; } if (j0(n, 0)) return xl(e, r); e instanceof Date && (e = Zc(e, r.date1904)); var i = bd(n, e); if (j0(i[1])) return xl(e, r); if (e === !0) e = "TRUE"; else if (e === !1) e = "FALSE"; else if (e === "" || e == null) return ""; return Ad(i[1], e, r, i[0]); } function fu(t, e) { if (typeof e != "number") { e = +e || -1; for (var r = 0; r < 392; ++r) { if (lr[r] == null) { e < 0 && (e = r); continue; } if (lr[r] == t) { e = r; break; } } e < 0 && (e = 391); } return lr[e] = t, e; } function rf(t) { for (var e = 0; e != 392; ++e) t[e] !== void 0 && fu(t[e], e); } function nf() { lr = id(); } var lu = /[dD]+|[mM]+|[yYeE]+|[Hh]+|[Ss]+/g; function Td(t) { var e = typeof t == "number" ? lr[t] : t; return e = e.replace(lu, "(\\d+)"), new RegExp("^" + e + "$"); } function Ed(t, e, r) { var n = -1, i = -1, a = -1, s = -1, o = -1, l = -1; (e.match(lu) || []).forEach(function(g, v) { var d = parseInt(r[v + 1], 10); switch (g.toLowerCase().charAt(0)) { case "y": n = d; break; case "d": a = d; break; case "h": s = d; break; case "s": l = d; break; case "m": s >= 0 ? o = d : i = d; break; } }), l >= 0 && o == -1 && i >= 0 && (o = i, i = -1); var h = ("" + (n >= 0 ? n : (/* @__PURE__ */ new Date()).getFullYear())).slice(-4) + "-" + ("00" + (i >= 1 ? i : 1)).slice(-2) + "-" + ("00" + (a >= 1 ? a : 1)).slice(-2); h.length == 7 && (h = "0" + h), h.length == 8 && (h = "20" + h); var u = ("00" + (s >= 0 ? s : 0)).slice(-2) + ":" + ("00" + (o >= 0 ? o : 0)).slice(-2) + ":" + ("00" + (l >= 0 ? l : 0)).slice(-2); return s == -1 && o == -1 && l == -1 ? h : n == -1 && i == -1 && a == -1 ? u : h + "T" + u; } var Nd = /* @__PURE__ */ function() { var t = {}; t.version = "1.2.0"; function e() { for (var j = 0, M = new Array(256), q = 0; q != 256; ++q) j = q, j = j & 1 ? -306674912 ^ j >>> 1 : j >>> 1, j = j & 1 ? -306674912 ^ j >>> 1 : j >>> 1, j = j & 1 ? -306674912 ^ j >>> 1 : j >>> 1, j = j & 1 ? -306674912 ^ j >>> 1 : j >>> 1, j = j & 1 ? -306674912 ^ j >>> 1 : j >>> 1, j = j & 1 ? -306674912 ^ j >>> 1 : j >>> 1, j = j & 1 ? -306674912 ^ j >>> 1 : j >>> 1, j = j & 1 ? -306674912 ^ j >>> 1 : j >>> 1, M[q] = j; return typeof Int32Array < "u" ? new Int32Array(M) : M; } var r = e(); function n(j) { var M = 0, q = 0, ee = 0, F = typeof Int32Array < "u" ? new Int32Array(4096) : new Array(4096); for (ee = 0; ee != 256; ++ee) F[ee] = j[ee]; for (ee = 0; ee != 256; ++ee) for (q = j[ee], M = 256 + ee; M < 4096; M += 256) q = F[M] = q >>> 8 ^ j[q & 255]; var P = []; for (ee = 1; ee != 16; ++ee) P[ee - 1] = typeof Int32Array < "u" ? F.subarray(ee * 256, ee * 256 + 256) : F.slice(ee * 256, ee * 256 + 256); return P; } var i = n(r), a = i[0], s = i[1], o = i[2], l = i[3], h = i[4], u = i[5], g = i[6], v = i[7], d = i[8], y = i[9], x = i[10], S = i[11], A = i[12], b = i[13], I = i[14]; function H(j, M) { for (var q = M ^ -1, ee = 0, F = j.length; ee < F; ) q = q >>> 8 ^ r[(q ^ j.charCodeAt(ee++)) & 255]; return ~q; } function te(j, M) { for (var q = M ^ -1, ee = j.length - 15, F = 0; F < ee; ) q = I[j[F++] ^ q & 255] ^ b[j[F++] ^ q >> 8 & 255] ^ A[j[F++] ^ q >> 16 & 255] ^ S[j[F++] ^ q >>> 24] ^ x[j[F++]] ^ y[j[F++]] ^ d[j[F++]] ^ v[j[F++]] ^ g[j[F++]] ^ u[j[F++]] ^ h[j[F++]] ^ l[j[F++]] ^ o[j[F++]] ^ s[j[F++]] ^ a[j[F++]] ^ r[j[F++]]; for (ee += 15; F < ee; ) q = q >>> 8 ^ r[(q ^ j[F++]) & 255]; return ~q; } function le(j, M) { for (var q = M ^ -1, ee = 0, F = j.length, P = 0, Y = 0; ee < F; ) P = j.charCodeAt(ee++), P < 128 ? q = q >>> 8 ^ r[(q ^ P) & 255] : P < 2048 ? (q = q >>> 8 ^ r[(q ^ (192 | P >> 6 & 31)) & 255], q = q >>> 8 ^ r[(q ^ (128 | P & 63)) & 255]) : P >= 55296 && P < 57344 ? (P = (P & 1023) + 64, Y = j.charCodeAt(ee++) & 1023, q = q >>> 8 ^ r[(q ^ (240 | P >> 8 & 7)) & 255], q = q >>> 8 ^ r[(q ^ (128 | P >> 2 & 63)) & 255], q = q >>> 8 ^ r[(q ^ (128 | Y >> 6 & 15 | (P & 3) << 4)) & 255], q = q >>> 8 ^ r[(q ^ (128 | Y & 63)) & 255]) : (q = q >>> 8 ^ r[(q ^ (224 | P >> 12 & 15)) & 255], q = q >>> 8 ^ r[(q ^ (128 | P >> 6 & 63)) & 255], q = q >>> 8 ^ r[(q ^ (128 | P & 63)) & 255]); return ~q; } return t.table = r, t.bstr = H, t.buf = te, t.str = le, t; }(), Xt = /* @__PURE__ */ function() { var e = {}; e.version = "1.2.1"; function r(O, X) { for (var U = O.split("/"), W = X.split("/"), G = 0, K = 0, ge = Math.min(U.length, W.length); G < ge; ++G) { if (K = U[G].length - W[G].length) return K; if (U[G] != W[G]) return U[G] < W[G] ? -1 : 1; } return U.length - W.length; } function n(O) { if (O.charAt(O.length - 1) == "/") return O.slice(0, -1).indexOf("/") === -1 ? O : n(O.slice(0, -1)); var X = O.lastIndexOf("/"); return X === -1 ? O : O.slice(0, X + 1); } function i(O) { if (O.charAt(O.length - 1) == "/") return i(O.slice(0, -1)); var X = O.lastIndexOf("/"); return X === -1 ? O : O.slice(X + 1); } function a(O, X) { typeof X == "string" && (X = new Date(X)); var U = X.getHours(); U = U << 6 | X.getMinutes(), U = U << 5 | X.getSeconds() >>> 1, O.write_shift(2, U); var W = X.getFullYear() - 1980; W = W << 4 | X.getMonth() + 1, W = W << 5 | X.getDate(), O.write_shift(2, W); } function s(O) { var X = O.read_shift(2) & 65535, U = O.read_shift(2) & 65535, W = /* @__PURE__ */ new Date(), G = U & 31; U >>>= 5; var K = U & 15; U >>>= 4, W.setMilliseconds(0), W.setFullYear(U + 1980), W.setMonth(K - 1), W.setDate(G); var ge = X & 31; X >>>= 5; var Ee = X & 63; return X >>>= 6, W.setHours(X), W.setMinutes(Ee), W.setSeconds(ge << 1), W; } function o(O) { Tn(O, 0); for (var X = ( /*::(*/ {} ), U = 0; O.l <= O.length - 4; ) { var W = O.read_shift(2), G = O.read_shift(2), K = O.l + G, ge = {}; switch (W) { case 21589: U = O.read_shift(1), U & 1 && (ge.mtime = O.read_shift(4)), G > 5 && (U & 2 && (ge.atime = O.read_shift(4)), U & 4 && (ge.ctime = O.read_shift(4))), ge.mtime && (ge.mt = new Date(ge.mtime * 1e3)); break; } O.l = K, X[W] = ge; } return X; } var l; function h() { return l || (l = {}); } function u(O, X) { if (O[0] == 80 && O[1] == 75) return er(O, X); if ((O[0] | 32) == 109 && (O[1] | 32) == 105) return kn(O, X); if (O.length < 512) throw new Error("CFB file size " + O.length + " < 512"); var U = 3, W = 512, G = 0, K = 0, ge = 0, Ee = 0, pe = 0, ye = [], _e = ( /*::(*/ O.slice(0, 512) ); Tn(_e, 0); var Ue = g(_e); switch (U = Ue[0], U) { case 3: W = 512; break; case 4: W = 4096; break; case 0: if (Ue[1] == 0) return er(O, X); default: throw new Error("Major Version: Expected 3 or 4 saw " + U); } W !== 512 && (_e = /*::(*/ O.slice(0, W), Tn( _e, 28 /* blob.l */ )); var Ve = O.slice(0, W); v(_e, U); var tt = _e.read_shift(4, "i"); if (U === 3 && tt !== 0) throw new Error("# Directory Sectors: Expected 0 saw " + tt); _e.l += 4, ge = _e.read_shift(4, "i"), _e.l += 4, _e.chk("00100000", "Mini Stream Cutoff Size: "), Ee = _e.read_shift(4, "i"), G = _e.read_shift(4, "i"), pe = _e.read_shift(4, "i"), K = _e.read_shift(4, "i"); for (var We = -1, et = 0; et < 109 && (We = _e.read_shift(4, "i"), !(We < 0)); ++et) ye[et] = We; var pt = d(O, W); S(pe, K, pt, W, ye); var Mt = b(pt, ge, ye, W); Mt[ge].name = "!Directory", G > 0 && Ee !== Y && (Mt[Ee].name = "!MiniFAT"), Mt[ye[0]].name = "!FAT", Mt.fat_addrs = ye, Mt.ssz = W; var Vt = {}, mr = [], zn = [], Si = []; I(ge, Mt, pt, mr, G, Vt, zn, Ee), y(zn, Si, mr), mr.shift(); var fi = { FileIndex: zn, FullPaths: Si }; return X && X.raw && (fi.raw = { header: Ve, sectors: pt }), fi; } function g(O) { if (O[O.l] == 80 && O[O.l + 1] == 75) return [0, 0]; O.chk(Q, "Header Signature: "), O.l += 16; var X = O.read_shift(2, "u"); return [O.read_shift(2, "u"), X]; } function v(O, X) { var U = 9; switch (O.l += 2, U = O.read_shift(2)) { case 9: if (X != 3) throw new Error("Sector Shift: Expected 9 saw " + U); break; case 12: if (X != 4) throw new Error("Sector Shift: Expected 12 saw " + U); break; default: throw new Error("Sector Shift: Expected 9 or 12 saw " + U); } O.chk("0600", "Mini Sector Shift: "), O.chk("000000000000", "Reserved: "); } function d(O, X) { for (var U = Math.ceil(O.length / X) - 1, W = [], G = 1; G < U; ++G) W[G - 1] = O.slice(G * X, (G + 1) * X); return W[U - 1] = O.slice(U * X), W; } function y(O, X, U) { for (var W = 0, G = 0, K = 0, ge = 0, Ee = 0, pe = U.length, ye = [], _e = []; W < pe; ++W) ye[W] = _e[W] = W, X[W] = U[W]; for (; Ee < _e.length; ++E