import { a$ as nn, b0 as Ln, b1 as rn, b2 as an, b3 as sn, b4 as se, b5 as An, _ as h, g as In, s as Wn, t as On, q as Hn, a as Nn, b as Vn, c as _t, d as Bt, e as Pn, b6 as at, l as Kt, k as zn, j as Rn, z as qn, u as Bn } from "./mermaid.core-BxAhVTv-.js";
import { g as we } from "./index-BBAc0Tu7.js";
import { b as Zn, t as Oe, c as Xn, a as Gn, l as $n } from "./linear-D6WtBvL_.js";
import { i as Qn } from "./init-DjUOC4st.js";
function jn(t, e) {
  let n;
  if (e === void 0)
    for (const r of t)
      r != null && (n < r || n === void 0 && r >= r) && (n = r);
  else {
    let r = -1;
    for (let a of t)
      (a = e(a, ++r, t)) != null && (n < a || n === void 0 && a >= a) && (n = a);
  }
  return n;
}
function Jn(t, e) {
  let n;
  if (e === void 0)
    for (const r of t)
      r != null && (n > r || n === void 0 && r >= r) && (n = r);
  else {
    let r = -1;
    for (let a of t)
      (a = e(a, ++r, t)) != null && (n > a || n === void 0 && a >= a) && (n = a);
  }
  return n;
}
function Kn(t) {
  return t;
}
var Xt = 1, oe = 2, ke = 3, Zt = 4, He = 1e-6;
function tr(t) {
  return "translate(" + t + ",0)";
}
function er(t) {
  return "translate(0," + t + ")";
}
function nr(t) {
  return (e) => +t(e);
}
function rr(t, e) {
  return e = Math.max(0, t.bandwidth() - e * 2) / 2, t.round() && (e = Math.round(e)), (n) => +t(n) + e;
}
function ar() {
  return !this.__axis;
}
function on(t, e) {
  var n = [], r = null, a = null, i = 6, s = 6, y = 3, _ = typeof window < "u" && window.devicePixelRatio > 1 ? 0 : 0.5, p = t === Xt || t === Zt ? -1 : 1, g = t === Zt || t === oe ? "x" : "y", E = t === Xt || t === ke ? tr : er;
  function C(b) {
    var X = r ?? (e.ticks ? e.ticks.apply(e, n) : e.domain()), O = a ?? (e.tickFormat ? e.tickFormat.apply(e, n) : Kn), M = Math.max(i, 0) + y, I = e.range(), V = +I[0] + _, W = +I[I.length - 1] + _, B = (e.bandwidth ? rr : nr)(e.copy(), _), Q = b.selection ? b.selection() : b, D = Q.selectAll(".domain").data([null]), H = Q.selectAll(".tick").data(X, e).order(), x = H.exit(), Y = H.enter().append("g").attr("class", "tick"), F = H.select("line"), S = H.select("text");
    D = D.merge(D.enter().insert("path", ".tick").attr("class", "domain").attr("stroke", "currentColor")), H = H.merge(Y), F = F.merge(Y.append("line").attr("stroke", "currentColor").attr(g + "2", p * i)), S = S.merge(Y.append("text").attr("fill", "currentColor").attr(g, p * M).attr("dy", t === Xt ? "0em" : t === ke ? "0.71em" : "0.32em")), b !== Q && (D = D.transition(b), H = H.transition(b), F = F.transition(b), S = S.transition(b), x = x.transition(b).attr("opacity", He).attr("transform", function(v) {
      return isFinite(v = B(v)) ? E(v + _) : this.getAttribute("transform");
    }), Y.attr("opacity", He).attr("transform", function(v) {
      var U = this.parentNode.__axis;
      return E((U && isFinite(U = U(v)) ? U : B(v)) + _);
    })), x.remove(), D.attr("d", t === Zt || t === oe ? s ? "M" + p * s + "," + V + "H" + _ + "V" + W + "H" + p * s : "M" + _ + "," + V + "V" + W : s ? "M" + V + "," + p * s + "V" + _ + "H" + W + "V" + p * s : "M" + V + "," + _ + "H" + W), H.attr("opacity", 1).attr("transform", function(v) {
      return E(B(v) + _);
    }), F.attr(g + "2", p * i), S.attr(g, p * M).text(O), Q.filter(ar).attr("fill", "none").attr("font-size", 10).attr("font-family", "sans-serif").attr("text-anchor", t === oe ? "start" : t === Zt ? "end" : "middle"), Q.each(function() {
      this.__axis = B;
    });
  }
  return C.scale = function(b) {
    return arguments.length ? (e = b, C) : e;
  }, C.ticks = function() {
    return n = Array.from(arguments), C;
  }, C.tickArguments = function(b) {
    return arguments.length ? (n = b == null ? [] : Array.from(b), C) : n.slice();
  }, C.tickValues = function(b) {
    return arguments.length ? (r = b == null ? null : Array.from(b), C) : r && r.slice();
  }, C.tickFormat = function(b) {
    return arguments.length ? (a = b, C) : a;
  }, C.tickSize = function(b) {
    return arguments.length ? (i = s = +b, C) : i;
  }, C.tickSizeInner = function(b) {
    return arguments.length ? (i = +b, C) : i;
  }, C.tickSizeOuter = function(b) {
    return arguments.length ? (s = +b, C) : s;
  }, C.tickPadding = function(b) {
    return arguments.length ? (y = +b, C) : y;
  }, C.offset = function(b) {
    return arguments.length ? (_ = +b, C) : _;
  }, C;
}
function ir(t) {
  return on(Xt, t);
}
function sr(t) {
  return on(ke, t);
}
const or = Math.PI / 180, cr = 180 / Math.PI, te = 18, cn = 0.96422, un = 1, ln = 0.82521, fn = 4 / 29, St = 6 / 29, hn = 3 * St * St, ur = St * St * St;
function dn(t) {
  if (t instanceof ft) return new ft(t.l, t.a, t.b, t.opacity);
  if (t instanceof dt) return mn(t);
  t instanceof nn || (t = Ln(t));
  var e = fe(t.r), n = fe(t.g), r = fe(t.b), a = ce((0.2225045 * e + 0.7168786 * n + 0.0606169 * r) / un), i, s;
  return e === n && n === r ? i = s = a : (i = ce((0.4360747 * e + 0.3850649 * n + 0.1430804 * r) / cn), s = ce((0.0139322 * e + 0.0971045 * n + 0.7141733 * r) / ln)), new ft(116 * a - 16, 500 * (i - a), 200 * (a - s), t.opacity);
}
function lr(t, e, n, r) {
  return arguments.length === 1 ? dn(t) : new ft(t, e, n, r ?? 1);
}
function ft(t, e, n, r) {
  this.l = +t, this.a = +e, this.b = +n, this.opacity = +r;
}
rn(ft, lr, an(sn, {
  brighter(t) {
    return new ft(this.l + te * (t ?? 1), this.a, this.b, this.opacity);
  },
  darker(t) {
    return new ft(this.l - te * (t ?? 1), this.a, this.b, this.opacity);
  },
  rgb() {
    var t = (this.l + 16) / 116, e = isNaN(this.a) ? t : t + this.a / 500, n = isNaN(this.b) ? t : t - this.b / 200;
    return e = cn * ue(e), t = un * ue(t), n = ln * ue(n), new nn(
      le(3.1338561 * e - 1.6168667 * t - 0.4906146 * n),
      le(-0.9787684 * e + 1.9161415 * t + 0.033454 * n),
      le(0.0719453 * e - 0.2289914 * t + 1.4052427 * n),
      this.opacity
    );
  }
}));
function ce(t) {
  return t > ur ? Math.pow(t, 1 / 3) : t / hn + fn;
}
function ue(t) {
  return t > St ? t * t * t : hn * (t - fn);
}
function le(t) {
  return 255 * (t <= 31308e-7 ? 12.92 * t : 1.055 * Math.pow(t, 1 / 2.4) - 0.055);
}
function fe(t) {
  return (t /= 255) <= 0.04045 ? t / 12.92 : Math.pow((t + 0.055) / 1.055, 2.4);
}
function fr(t) {
  if (t instanceof dt) return new dt(t.h, t.c, t.l, t.opacity);
  if (t instanceof ft || (t = dn(t)), t.a === 0 && t.b === 0) return new dt(NaN, 0 < t.l && t.l < 100 ? 0 : NaN, t.l, t.opacity);
  var e = Math.atan2(t.b, t.a) * cr;
  return new dt(e < 0 ? e + 360 : e, Math.sqrt(t.a * t.a + t.b * t.b), t.l, t.opacity);
}
function pe(t, e, n, r) {
  return arguments.length === 1 ? fr(t) : new dt(t, e, n, r ?? 1);
}
function dt(t, e, n, r) {
  this.h = +t, this.c = +e, this.l = +n, this.opacity = +r;
}
function mn(t) {
  if (isNaN(t.h)) return new ft(t.l, 0, 0, t.opacity);
  var e = t.h * or;
  return new ft(t.l, Math.cos(e) * t.c, Math.sin(e) * t.c, t.opacity);
}
rn(dt, pe, an(sn, {
  brighter(t) {
    return new dt(this.h, this.c, this.l + te * (t ?? 1), this.opacity);
  },
  darker(t) {
    return new dt(this.h, this.c, this.l - te * (t ?? 1), this.opacity);
  },
  rgb() {
    return mn(this).rgb();
  }
}));
function hr(t) {
  return function(e, n) {
    var r = t((e = pe(e)).h, (n = pe(n)).h), a = se(e.c, n.c), i = se(e.l, n.l), s = se(e.opacity, n.opacity);
    return function(y) {
      return e.h = r(y), e.c = a(y), e.l = i(y), e.opacity = s(y), e + "";
    };
  };
}
const dr = hr(An);
function mr(t, e) {
  t = t.slice();
  var n = 0, r = t.length - 1, a = t[n], i = t[r], s;
  return i < a && (s = n, n = r, r = s, s = a, a = i, i = s), t[n] = e.floor(a), t[r] = e.ceil(i), t;
}
const he = /* @__PURE__ */ new Date(), de = /* @__PURE__ */ new Date();
function et(t, e, n, r) {
  function a(i) {
    return t(i = arguments.length === 0 ? /* @__PURE__ */ new Date() : /* @__PURE__ */ new Date(+i)), i;
  }
  return a.floor = (i) => (t(i = /* @__PURE__ */ new Date(+i)), i), a.ceil = (i) => (t(i = new Date(i - 1)), e(i, 1), t(i), i), a.round = (i) => {
    const s = a(i), y = a.ceil(i);
    return i - s < y - i ? s : y;
  }, a.offset = (i, s) => (e(i = /* @__PURE__ */ new Date(+i), s == null ? 1 : Math.floor(s)), i), a.range = (i, s, y) => {
    const _ = [];
    if (i = a.ceil(i), y = y == null ? 1 : Math.floor(y), !(i < s) || !(y > 0)) return _;
    let p;
    do
      _.push(p = /* @__PURE__ */ new Date(+i)), e(i, y), t(i);
    while (p < i && i < s);
    return _;
  }, a.filter = (i) => et((s) => {
    if (s >= s) for (; t(s), !i(s); ) s.setTime(s - 1);
  }, (s, y) => {
    if (s >= s)
      if (y < 0) for (; ++y <= 0; )
        for (; e(s, -1), !i(s); )
          ;
      else for (; --y >= 0; )
        for (; e(s, 1), !i(s); )
          ;
  }), n && (a.count = (i, s) => (he.setTime(+i), de.setTime(+s), t(he), t(de), Math.floor(n(he, de))), a.every = (i) => (i = Math.floor(i), !isFinite(i) || !(i > 0) ? null : i > 1 ? a.filter(r ? (s) => r(s) % i === 0 : (s) => a.count(0, s) % i === 0) : a)), a;
}
const Yt = et(() => {
}, (t, e) => {
  t.setTime(+t + e);
}, (t, e) => e - t);
Yt.every = (t) => (t = Math.floor(t), !isFinite(t) || !(t > 0) ? null : t > 1 ? et((e) => {
  e.setTime(Math.floor(e / t) * t);
}, (e, n) => {
  e.setTime(+e + n * t);
}, (e, n) => (n - e) / t) : Yt);
Yt.range;
const mt = 1e3, ct = mt * 60, gt = ct * 60, yt = gt * 24, De = yt * 7, Ne = yt * 30, me = yt * 365, vt = et((t) => {
  t.setTime(t - t.getMilliseconds());
}, (t, e) => {
  t.setTime(+t + e * mt);
}, (t, e) => (e - t) / mt, (t) => t.getUTCSeconds());
vt.range;
const Wt = et((t) => {
  t.setTime(t - t.getMilliseconds() - t.getSeconds() * mt);
}, (t, e) => {
  t.setTime(+t + e * ct);
}, (t, e) => (e - t) / ct, (t) => t.getMinutes());
Wt.range;
const gr = et((t) => {
  t.setUTCSeconds(0, 0);
}, (t, e) => {
  t.setTime(+t + e * ct);
}, (t, e) => (e - t) / ct, (t) => t.getUTCMinutes());
gr.range;
const Ot = et((t) => {
  t.setTime(t - t.getMilliseconds() - t.getSeconds() * mt - t.getMinutes() * ct);
}, (t, e) => {
  t.setTime(+t + e * gt);
}, (t, e) => (e - t) / gt, (t) => t.getHours());
Ot.range;
const yr = et((t) => {
  t.setUTCMinutes(0, 0, 0);
}, (t, e) => {
  t.setTime(+t + e * gt);
}, (t, e) => (e - t) / gt, (t) => t.getUTCHours());
yr.range;
const Tt = et(
  (t) => t.setHours(0, 0, 0, 0),
  (t, e) => t.setDate(t.getDate() + e),
  (t, e) => (e - t - (e.getTimezoneOffset() - t.getTimezoneOffset()) * ct) / yt,
  (t) => t.getDate() - 1
);
Tt.range;
const Ce = et((t) => {
  t.setUTCHours(0, 0, 0, 0);
}, (t, e) => {
  t.setUTCDate(t.getUTCDate() + e);
}, (t, e) => (e - t) / yt, (t) => t.getUTCDate() - 1);
Ce.range;
const kr = et((t) => {
  t.setUTCHours(0, 0, 0, 0);
}, (t, e) => {
  t.setUTCDate(t.getUTCDate() + e);
}, (t, e) => (e - t) / yt, (t) => Math.floor(t / yt));
kr.range;
function wt(t) {
  return et((e) => {
    e.setDate(e.getDate() - (e.getDay() + 7 - t) % 7), e.setHours(0, 0, 0, 0);
  }, (e, n) => {
    e.setDate(e.getDate() + n * 7);
  }, (e, n) => (n - e - (n.getTimezoneOffset() - e.getTimezoneOffset()) * ct) / De);
}
const Vt = wt(0), Ht = wt(1), gn = wt(2), yn = wt(3), bt = wt(4), kn = wt(5), pn = wt(6);
Vt.range;
Ht.range;
gn.range;
yn.range;
bt.range;
kn.range;
pn.range;
function Dt(t) {
  return et((e) => {
    e.setUTCDate(e.getUTCDate() - (e.getUTCDay() + 7 - t) % 7), e.setUTCHours(0, 0, 0, 0);
  }, (e, n) => {
    e.setUTCDate(e.getUTCDate() + n * 7);
  }, (e, n) => (n - e) / De);
}
const vn = Dt(0), ee = Dt(1), pr = Dt(2), vr = Dt(3), Ut = Dt(4), Tr = Dt(5), br = Dt(6);
vn.range;
ee.range;
pr.range;
vr.range;
Ut.range;
Tr.range;
br.range;
const Nt = et((t) => {
  t.setDate(1), t.setHours(0, 0, 0, 0);
}, (t, e) => {
  t.setMonth(t.getMonth() + e);
}, (t, e) => e.getMonth() - t.getMonth() + (e.getFullYear() - t.getFullYear()) * 12, (t) => t.getMonth());
Nt.range;
const xr = et((t) => {
  t.setUTCDate(1), t.setUTCHours(0, 0, 0, 0);
}, (t, e) => {
  t.setUTCMonth(t.getUTCMonth() + e);
}, (t, e) => e.getUTCMonth() - t.getUTCMonth() + (e.getUTCFullYear() - t.getUTCFullYear()) * 12, (t) => t.getUTCMonth());
xr.range;
const kt = et((t) => {
  t.setMonth(0, 1), t.setHours(0, 0, 0, 0);
}, (t, e) => {
  t.setFullYear(t.getFullYear() + e);
}, (t, e) => e.getFullYear() - t.getFullYear(), (t) => t.getFullYear());
kt.every = (t) => !isFinite(t = Math.floor(t)) || !(t > 0) ? null : et((e) => {
  e.setFullYear(Math.floor(e.getFullYear() / t) * t), e.setMonth(0, 1), e.setHours(0, 0, 0, 0);
}, (e, n) => {
  e.setFullYear(e.getFullYear() + n * t);
});
kt.range;
const xt = et((t) => {
  t.setUTCMonth(0, 1), t.setUTCHours(0, 0, 0, 0);
}, (t, e) => {
  t.setUTCFullYear(t.getUTCFullYear() + e);
}, (t, e) => e.getUTCFullYear() - t.getUTCFullYear(), (t) => t.getUTCFullYear());
xt.every = (t) => !isFinite(t = Math.floor(t)) || !(t > 0) ? null : et((e) => {
  e.setUTCFullYear(Math.floor(e.getUTCFullYear() / t) * t), e.setUTCMonth(0, 1), e.setUTCHours(0, 0, 0, 0);
}, (e, n) => {
  e.setUTCFullYear(e.getUTCFullYear() + n * t);
});
xt.range;
function wr(t, e, n, r, a, i) {
  const s = [
    [vt, 1, mt],
    [vt, 5, 5 * mt],
    [vt, 15, 15 * mt],
    [vt, 30, 30 * mt],
    [i, 1, ct],
    [i, 5, 5 * ct],
    [i, 15, 15 * ct],
    [i, 30, 30 * ct],
    [a, 1, gt],
    [a, 3, 3 * gt],
    [a, 6, 6 * gt],
    [a, 12, 12 * gt],
    [r, 1, yt],
    [r, 2, 2 * yt],
    [n, 1, De],
    [e, 1, Ne],
    [e, 3, 3 * Ne],
    [t, 1, me]
  ];
  function y(p, g, E) {
    const C = g < p;
    C && ([p, g] = [g, p]);
    const b = E && typeof E.range == "function" ? E : _(p, g, E), X = b ? b.range(p, +g + 1) : [];
    return C ? X.reverse() : X;
  }
  function _(p, g, E) {
    const C = Math.abs(g - p) / E, b = Zn(([, , M]) => M).right(s, C);
    if (b === s.length) return t.every(Oe(p / me, g / me, E));
    if (b === 0) return Yt.every(Math.max(Oe(p, g, E), 1));
    const [X, O] = s[C / s[b - 1][2] < s[b][2] / C ? b - 1 : b];
    return X.every(O);
  }
  return [y, _];
}
const [Dr, Cr] = wr(kt, Nt, Vt, Tt, Ot, Wt);
function ge(t) {
  if (0 <= t.y && t.y < 100) {
    var e = new Date(-1, t.m, t.d, t.H, t.M, t.S, t.L);
    return e.setFullYear(t.y), e;
  }
  return new Date(t.y, t.m, t.d, t.H, t.M, t.S, t.L);
}
function ye(t) {
  if (0 <= t.y && t.y < 100) {
    var e = new Date(Date.UTC(-1, t.m, t.d, t.H, t.M, t.S, t.L));
    return e.setUTCFullYear(t.y), e;
  }
  return new Date(Date.UTC(t.y, t.m, t.d, t.H, t.M, t.S, t.L));
}
function Lt(t, e, n) {
  return { y: t, m: e, d: n, H: 0, M: 0, S: 0, L: 0 };
}
function Mr(t) {
  var e = t.dateTime, n = t.date, r = t.time, a = t.periods, i = t.days, s = t.shortDays, y = t.months, _ = t.shortMonths, p = At(a), g = It(a), E = At(i), C = It(i), b = At(s), X = It(s), O = At(y), M = It(y), I = At(_), V = It(_), W = {
    a: d,
    A: w,
    b: c,
    B: u,
    c: null,
    d: Be,
    e: Be,
    f: $r,
    g: ia,
    G: oa,
    H: Zr,
    I: Xr,
    j: Gr,
    L: Tn,
    m: Qr,
    M: jr,
    p: o,
    q: z,
    Q: Ge,
    s: $e,
    S: Jr,
    u: Kr,
    U: ta,
    V: ea,
    w: na,
    W: ra,
    x: null,
    X: null,
    y: aa,
    Y: sa,
    Z: ca,
    "%": Xe
  }, B = {
    a: P,
    A: R,
    b: K,
    B: G,
    c: null,
    d: Ze,
    e: Ze,
    f: ha,
    g: xa,
    G: Da,
    H: ua,
    I: la,
    j: fa,
    L: xn,
    m: da,
    M: ma,
    p: j,
    q: it,
    Q: Ge,
    s: $e,
    S: ga,
    u: ya,
    U: ka,
    V: pa,
    w: va,
    W: Ta,
    x: null,
    X: null,
    y: ba,
    Y: wa,
    Z: Ca,
    "%": Xe
  }, Q = {
    a: F,
    A: S,
    b: v,
    B: U,
    c: l,
    d: Re,
    e: Re,
    f: zr,
    g: ze,
    G: Pe,
    H: qe,
    I: qe,
    j: Hr,
    L: Pr,
    m: Or,
    M: Nr,
    p: Y,
    q: Wr,
    Q: qr,
    s: Br,
    S: Vr,
    u: Ur,
    U: Er,
    V: Lr,
    w: Yr,
    W: Ar,
    x: m,
    X: T,
    y: ze,
    Y: Pe,
    Z: Ir,
    "%": Rr
  };
  W.x = D(n, W), W.X = D(r, W), W.c = D(e, W), B.x = D(n, B), B.X = D(r, B), B.c = D(e, B);
  function D(k, A) {
    return function(N) {
      var f = [], J = -1, L = 0, $ = k.length, Z, rt, st;
      for (N instanceof Date || (N = /* @__PURE__ */ new Date(+N)); ++J < $; )
        k.charCodeAt(J) === 37 && (f.push(k.slice(L, J)), (rt = Ve[Z = k.charAt(++J)]) != null ? Z = k.charAt(++J) : rt = Z === "e" ? " " : "0", (st = A[Z]) && (Z = st(N, rt)), f.push(Z), L = J + 1);
      return f.push(k.slice(L, J)), f.join("");
    };
  }
  function H(k, A) {
    return function(N) {
      var f = Lt(1900, void 0, 1), J = x(f, k, N += "", 0), L, $;
      if (J != N.length) return null;
      if ("Q" in f) return new Date(f.Q);
      if ("s" in f) return new Date(f.s * 1e3 + ("L" in f ? f.L : 0));
      if (A && !("Z" in f) && (f.Z = 0), "p" in f && (f.H = f.H % 12 + f.p * 12), f.m === void 0 && (f.m = "q" in f ? f.q : 0), "V" in f) {
        if (f.V < 1 || f.V > 53) return null;
        "w" in f || (f.w = 1), "Z" in f ? (L = ye(Lt(f.y, 0, 1)), $ = L.getUTCDay(), L = $ > 4 || $ === 0 ? ee.ceil(L) : ee(L), L = Ce.offset(L, (f.V - 1) * 7), f.y = L.getUTCFullYear(), f.m = L.getUTCMonth(), f.d = L.getUTCDate() + (f.w + 6) % 7) : (L = ge(Lt(f.y, 0, 1)), $ = L.getDay(), L = $ > 4 || $ === 0 ? Ht.ceil(L) : Ht(L), L = Tt.offset(L, (f.V - 1) * 7), f.y = L.getFullYear(), f.m = L.getMonth(), f.d = L.getDate() + (f.w + 6) % 7);
      } else ("W" in f || "U" in f) && ("w" in f || (f.w = "u" in f ? f.u % 7 : "W" in f ? 1 : 0), $ = "Z" in f ? ye(Lt(f.y, 0, 1)).getUTCDay() : ge(Lt(f.y, 0, 1)).getDay(), f.m = 0, f.d = "W" in f ? (f.w + 6) % 7 + f.W * 7 - ($ + 5) % 7 : f.w + f.U * 7 - ($ + 6) % 7);
      return "Z" in f ? (f.H += f.Z / 100 | 0, f.M += f.Z % 100, ye(f)) : ge(f);
    };
  }
  function x(k, A, N, f) {
    for (var J = 0, L = A.length, $ = N.length, Z, rt; J < L; ) {
      if (f >= $) return -1;
      if (Z = A.charCodeAt(J++), Z === 37) {
        if (Z = A.charAt(J++), rt = Q[Z in Ve ? A.charAt(J++) : Z], !rt || (f = rt(k, N, f)) < 0) return -1;
      } else if (Z != N.charCodeAt(f++))
        return -1;
    }
    return f;
  }
  function Y(k, A, N) {
    var f = p.exec(A.slice(N));
    return f ? (k.p = g.get(f[0].toLowerCase()), N + f[0].length) : -1;
  }
  function F(k, A, N) {
    var f = b.exec(A.slice(N));
    return f ? (k.w = X.get(f[0].toLowerCase()), N + f[0].length) : -1;
  }
  function S(k, A, N) {
    var f = E.exec(A.slice(N));
    return f ? (k.w = C.get(f[0].toLowerCase()), N + f[0].length) : -1;
  }
  function v(k, A, N) {
    var f = I.exec(A.slice(N));
    return f ? (k.m = V.get(f[0].toLowerCase()), N + f[0].length) : -1;
  }
  function U(k, A, N) {
    var f = O.exec(A.slice(N));
    return f ? (k.m = M.get(f[0].toLowerCase()), N + f[0].length) : -1;
  }
  function l(k, A, N) {
    return x(k, e, A, N);
  }
  function m(k, A, N) {
    return x(k, n, A, N);
  }
  function T(k, A, N) {
    return x(k, r, A, N);
  }
  function d(k) {
    return s[k.getDay()];
  }
  function w(k) {
    return i[k.getDay()];
  }
  function c(k) {
    return _[k.getMonth()];
  }
  function u(k) {
    return y[k.getMonth()];
  }
  function o(k) {
    return a[+(k.getHours() >= 12)];
  }
  function z(k) {
    return 1 + ~~(k.getMonth() / 3);
  }
  function P(k) {
    return s[k.getUTCDay()];
  }
  function R(k) {
    return i[k.getUTCDay()];
  }
  function K(k) {
    return _[k.getUTCMonth()];
  }
  function G(k) {
    return y[k.getUTCMonth()];
  }
  function j(k) {
    return a[+(k.getUTCHours() >= 12)];
  }
  function it(k) {
    return 1 + ~~(k.getUTCMonth() / 3);
  }
  return {
    format: function(k) {
      var A = D(k += "", W);
      return A.toString = function() {
        return k;
      }, A;
    },
    parse: function(k) {
      var A = H(k += "", !1);
      return A.toString = function() {
        return k;
      }, A;
    },
    utcFormat: function(k) {
      var A = D(k += "", B);
      return A.toString = function() {
        return k;
      }, A;
    },
    utcParse: function(k) {
      var A = H(k += "", !0);
      return A.toString = function() {
        return k;
      }, A;
    }
  };
}
var Ve = { "-": "", _: " ", 0: "0" }, nt = /^\s*\d+/, _r = /^%/, Sr = /[\\^$*+?|[\]().{}]/g;
function q(t, e, n) {
  var r = t < 0 ? "-" : "", a = (r ? -t : t) + "", i = a.length;
  return r + (i < n ? new Array(n - i + 1).join(e) + a : a);
}
function Fr(t) {
  return t.replace(Sr, "\\$&");
}
function At(t) {
  return new RegExp("^(?:" + t.map(Fr).join("|") + ")", "i");
}
function It(t) {
  return new Map(t.map((e, n) => [e.toLowerCase(), n]));
}
function Yr(t, e, n) {
  var r = nt.exec(e.slice(n, n + 1));
  return r ? (t.w = +r[0], n + r[0].length) : -1;
}
function Ur(t, e, n) {
  var r = nt.exec(e.slice(n, n + 1));
  return r ? (t.u = +r[0], n + r[0].length) : -1;
}
function Er(t, e, n) {
  var r = nt.exec(e.slice(n, n + 2));
  return r ? (t.U = +r[0], n + r[0].length) : -1;
}
function Lr(t, e, n) {
  var r = nt.exec(e.slice(n, n + 2));
  return r ? (t.V = +r[0], n + r[0].length) : -1;
}
function Ar(t, e, n) {
  var r = nt.exec(e.slice(n, n + 2));
  return r ? (t.W = +r[0], n + r[0].length) : -1;
}
function Pe(t, e, n) {
  var r = nt.exec(e.slice(n, n + 4));
  return r ? (t.y = +r[0], n + r[0].length) : -1;
}
function ze(t, e, n) {
  var r = nt.exec(e.slice(n, n + 2));
  return r ? (t.y = +r[0] + (+r[0] > 68 ? 1900 : 2e3), n + r[0].length) : -1;
}
function Ir(t, e, n) {
  var r = /^(Z)|([+-]\d\d)(?::?(\d\d))?/.exec(e.slice(n, n + 6));
  return r ? (t.Z = r[1] ? 0 : -(r[2] + (r[3] || "00")), n + r[0].length) : -1;
}
function Wr(t, e, n) {
  var r = nt.exec(e.slice(n, n + 1));
  return r ? (t.q = r[0] * 3 - 3, n + r[0].length) : -1;
}
function Or(t, e, n) {
  var r = nt.exec(e.slice(n, n + 2));
  return r ? (t.m = r[0] - 1, n + r[0].length) : -1;
}
function Re(t, e, n) {
  var r = nt.exec(e.slice(n, n + 2));
  return r ? (t.d = +r[0], n + r[0].length) : -1;
}
function Hr(t, e, n) {
  var r = nt.exec(e.slice(n, n + 3));
  return r ? (t.m = 0, t.d = +r[0], n + r[0].length) : -1;
}
function qe(t, e, n) {
  var r = nt.exec(e.slice(n, n + 2));
  return r ? (t.H = +r[0], n + r[0].length) : -1;
}
function Nr(t, e, n) {
  var r = nt.exec(e.slice(n, n + 2));
  return r ? (t.M = +r[0], n + r[0].length) : -1;
}
function Vr(t, e, n) {
  var r = nt.exec(e.slice(n, n + 2));
  return r ? (t.S = +r[0], n + r[0].length) : -1;
}
function Pr(t, e, n) {
  var r = nt.exec(e.slice(n, n + 3));
  return r ? (t.L = +r[0], n + r[0].length) : -1;
}
function zr(t, e, n) {
  var r = nt.exec(e.slice(n, n + 6));
  return r ? (t.L = Math.floor(r[0] / 1e3), n + r[0].length) : -1;
}
function Rr(t, e, n) {
  var r = _r.exec(e.slice(n, n + 1));
  return r ? n + r[0].length : -1;
}
function qr(t, e, n) {
  var r = nt.exec(e.slice(n));
  return r ? (t.Q = +r[0], n + r[0].length) : -1;
}
function Br(t, e, n) {
  var r = nt.exec(e.slice(n));
  return r ? (t.s = +r[0], n + r[0].length) : -1;
}
function Be(t, e) {
  return q(t.getDate(), e, 2);
}
function Zr(t, e) {
  return q(t.getHours(), e, 2);
}
function Xr(t, e) {
  return q(t.getHours() % 12 || 12, e, 2);
}
function Gr(t, e) {
  return q(1 + Tt.count(kt(t), t), e, 3);
}
function Tn(t, e) {
  return q(t.getMilliseconds(), e, 3);
}
function $r(t, e) {
  return Tn(t, e) + "000";
}
function Qr(t, e) {
  return q(t.getMonth() + 1, e, 2);
}
function jr(t, e) {
  return q(t.getMinutes(), e, 2);
}
function Jr(t, e) {
  return q(t.getSeconds(), e, 2);
}
function Kr(t) {
  var e = t.getDay();
  return e === 0 ? 7 : e;
}
function ta(t, e) {
  return q(Vt.count(kt(t) - 1, t), e, 2);
}
function bn(t) {
  var e = t.getDay();
  return e >= 4 || e === 0 ? bt(t) : bt.ceil(t);
}
function ea(t, e) {
  return t = bn(t), q(bt.count(kt(t), t) + (kt(t).getDay() === 4), e, 2);
}
function na(t) {
  return t.getDay();
}
function ra(t, e) {
  return q(Ht.count(kt(t) - 1, t), e, 2);
}
function aa(t, e) {
  return q(t.getFullYear() % 100, e, 2);
}
function ia(t, e) {
  return t = bn(t), q(t.getFullYear() % 100, e, 2);
}
function sa(t, e) {
  return q(t.getFullYear() % 1e4, e, 4);
}
function oa(t, e) {
  var n = t.getDay();
  return t = n >= 4 || n === 0 ? bt(t) : bt.ceil(t), q(t.getFullYear() % 1e4, e, 4);
}
function ca(t) {
  var e = t.getTimezoneOffset();
  return (e > 0 ? "-" : (e *= -1, "+")) + q(e / 60 | 0, "0", 2) + q(e % 60, "0", 2);
}
function Ze(t, e) {
  return q(t.getUTCDate(), e, 2);
}
function ua(t, e) {
  return q(t.getUTCHours(), e, 2);
}
function la(t, e) {
  return q(t.getUTCHours() % 12 || 12, e, 2);
}
function fa(t, e) {
  return q(1 + Ce.count(xt(t), t), e, 3);
}
function xn(t, e) {
  return q(t.getUTCMilliseconds(), e, 3);
}
function ha(t, e) {
  return xn(t, e) + "000";
}
function da(t, e) {
  return q(t.getUTCMonth() + 1, e, 2);
}
function ma(t, e) {
  return q(t.getUTCMinutes(), e, 2);
}
function ga(t, e) {
  return q(t.getUTCSeconds(), e, 2);
}
function ya(t) {
  var e = t.getUTCDay();
  return e === 0 ? 7 : e;
}
function ka(t, e) {
  return q(vn.count(xt(t) - 1, t), e, 2);
}
function wn(t) {
  var e = t.getUTCDay();
  return e >= 4 || e === 0 ? Ut(t) : Ut.ceil(t);
}
function pa(t, e) {
  return t = wn(t), q(Ut.count(xt(t), t) + (xt(t).getUTCDay() === 4), e, 2);
}
function va(t) {
  return t.getUTCDay();
}
function Ta(t, e) {
  return q(ee.count(xt(t) - 1, t), e, 2);
}
function ba(t, e) {
  return q(t.getUTCFullYear() % 100, e, 2);
}
function xa(t, e) {
  return t = wn(t), q(t.getUTCFullYear() % 100, e, 2);
}
function wa(t, e) {
  return q(t.getUTCFullYear() % 1e4, e, 4);
}
function Da(t, e) {
  var n = t.getUTCDay();
  return t = n >= 4 || n === 0 ? Ut(t) : Ut.ceil(t), q(t.getUTCFullYear() % 1e4, e, 4);
}
function Ca() {
  return "+0000";
}
function Xe() {
  return "%";
}
function Ge(t) {
  return +t;
}
function $e(t) {
  return Math.floor(+t / 1e3);
}
var Mt, ne;
Ma({
  dateTime: "%x, %X",
  date: "%-m/%-d/%Y",
  time: "%-I:%M:%S %p",
  periods: ["AM", "PM"],
  days: ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"],
  shortDays: ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"],
  months: ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"],
  shortMonths: ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"]
});
function Ma(t) {
  return Mt = Mr(t), ne = Mt.format, Mt.parse, Mt.utcFormat, Mt.utcParse, Mt;
}
function _a(t) {
  return new Date(t);
}
function Sa(t) {
  return t instanceof Date ? +t : +/* @__PURE__ */ new Date(+t);
}
function Dn(t, e, n, r, a, i, s, y, _, p) {
  var g = Xn(), E = g.invert, C = g.domain, b = p(".%L"), X = p(":%S"), O = p("%I:%M"), M = p("%I %p"), I = p("%a %d"), V = p("%b %d"), W = p("%B"), B = p("%Y");
  function Q(D) {
    return (_(D) < D ? b : y(D) < D ? X : s(D) < D ? O : i(D) < D ? M : r(D) < D ? a(D) < D ? I : V : n(D) < D ? W : B)(D);
  }
  return g.invert = function(D) {
    return new Date(E(D));
  }, g.domain = function(D) {
    return arguments.length ? C(Array.from(D, Sa)) : C().map(_a);
  }, g.ticks = function(D) {
    var H = C();
    return t(H[0], H[H.length - 1], D ?? 10);
  }, g.tickFormat = function(D, H) {
    return H == null ? Q : p(H);
  }, g.nice = function(D) {
    var H = C();
    return (!D || typeof D.range != "function") && (D = e(H[0], H[H.length - 1], D ?? 10)), D ? C(mr(H, D)) : g;
  }, g.copy = function() {
    return Gn(g, Dn(t, e, n, r, a, i, s, y, _, p));
  }, g;
}
function Fa() {
  return Qn.apply(Dn(Dr, Cr, kt, Nt, Vt, Tt, Ot, Wt, vt, ne).domain([new Date(2e3, 0, 1), new Date(2e3, 0, 2)]), arguments);
}
var Gt = { exports: {} }, Ya = Gt.exports, Qe;
function Ua() {
  return Qe || (Qe = 1, (function(t, e) {
    (function(n, r) {
      t.exports = r();
    })(Ya, (function() {
      var n = "day";
      return function(r, a, i) {
        var s = function(p) {
          return p.add(4 - p.isoWeekday(), n);
        }, y = a.prototype;
        y.isoWeekYear = function() {
          return s(this).year();
        }, y.isoWeek = function(p) {
          if (!this.$utils().u(p)) return this.add(7 * (p - this.isoWeek()), n);
          var g, E, C, b, X = s(this), O = (g = this.isoWeekYear(), E = this.$u, C = (E ? i.utc : i)().year(g).startOf("year"), b = 4 - C.isoWeekday(), C.isoWeekday() > 4 && (b += 7), C.add(b, n));
          return X.diff(O, "week") + 1;
        }, y.isoWeekday = function(p) {
          return this.$utils().u(p) ? this.day() || 7 : this.day(this.day() % 7 ? p : p - 7);
        };
        var _ = y.startOf;
        y.startOf = function(p, g) {
          var E = this.$utils(), C = !!E.u(g) || g;
          return E.p(p) === "isoweek" ? C ? this.date(this.date() - (this.isoWeekday() - 1)).startOf("day") : this.date(this.date() - 1 - (this.isoWeekday() - 1) + 7).endOf("day") : _.bind(this)(p, g);
        };
      };
    }));
  })(Gt)), Gt.exports;
}
var Ea = Ua();
const La = /* @__PURE__ */ we(Ea);
var $t = { exports: {} }, Aa = $t.exports, je;
function Ia() {
  return je || (je = 1, (function(t, e) {
    (function(n, r) {
      t.exports = r();
    })(Aa, (function() {
      var n = { LTS: "h:mm:ss A", LT: "h:mm A", L: "MM/DD/YYYY", LL: "MMMM D, YYYY", LLL: "MMMM D, YYYY h:mm A", LLLL: "dddd, MMMM D, YYYY h:mm A" }, r = /(\[[^[]*\])|([-_:/.,()\s]+)|(A|a|Q|YYYY|YY?|ww?|MM?M?M?|Do|DD?|hh?|HH?|mm?|ss?|S{1,3}|z|ZZ?)/g, a = /\d/, i = /\d\d/, s = /\d\d?/, y = /\d*[^-_:/,()\s\d]+/, _ = {}, p = function(M) {
        return (M = +M) + (M > 68 ? 1900 : 2e3);
      }, g = function(M) {
        return function(I) {
          this[M] = +I;
        };
      }, E = [/[+-]\d\d:?(\d\d)?|Z/, function(M) {
        (this.zone || (this.zone = {})).offset = (function(I) {
          if (!I || I === "Z") return 0;
          var V = I.match(/([+-]|\d\d)/g), W = 60 * V[1] + (+V[2] || 0);
          return W === 0 ? 0 : V[0] === "+" ? -W : W;
        })(M);
      }], C = function(M) {
        var I = _[M];
        return I && (I.indexOf ? I : I.s.concat(I.f));
      }, b = function(M, I) {
        var V, W = _.meridiem;
        if (W) {
          for (var B = 1; B <= 24; B += 1) if (M.indexOf(W(B, 0, I)) > -1) {
            V = B > 12;
            break;
          }
        } else V = M === (I ? "pm" : "PM");
        return V;
      }, X = { A: [y, function(M) {
        this.afternoon = b(M, !1);
      }], a: [y, function(M) {
        this.afternoon = b(M, !0);
      }], Q: [a, function(M) {
        this.month = 3 * (M - 1) + 1;
      }], S: [a, function(M) {
        this.milliseconds = 100 * +M;
      }], SS: [i, function(M) {
        this.milliseconds = 10 * +M;
      }], SSS: [/\d{3}/, function(M) {
        this.milliseconds = +M;
      }], s: [s, g("seconds")], ss: [s, g("seconds")], m: [s, g("minutes")], mm: [s, g("minutes")], H: [s, g("hours")], h: [s, g("hours")], HH: [s, g("hours")], hh: [s, g("hours")], D: [s, g("day")], DD: [i, g("day")], Do: [y, function(M) {
        var I = _.ordinal, V = M.match(/\d+/);
        if (this.day = V[0], I) for (var W = 1; W <= 31; W += 1) I(W).replace(/\[|\]/g, "") === M && (this.day = W);
      }], w: [s, g("week")], ww: [i, g("week")], M: [s, g("month")], MM: [i, g("month")], MMM: [y, function(M) {
        var I = C("months"), V = (C("monthsShort") || I.map((function(W) {
          return W.slice(0, 3);
        }))).indexOf(M) + 1;
        if (V < 1) throw new Error();
        this.month = V % 12 || V;
      }], MMMM: [y, function(M) {
        var I = C("months").indexOf(M) + 1;
        if (I < 1) throw new Error();
        this.month = I % 12 || I;
      }], Y: [/[+-]?\d+/, g("year")], YY: [i, function(M) {
        this.year = p(M);
      }], YYYY: [/\d{4}/, g("year")], Z: E, ZZ: E };
      function O(M) {
        var I, V;
        I = M, V = _ && _.formats;
        for (var W = (M = I.replace(/(\[[^\]]+])|(LTS?|l{1,4}|L{1,4})/g, (function(F, S, v) {
          var U = v && v.toUpperCase();
          return S || V[v] || n[v] || V[U].replace(/(\[[^\]]+])|(MMMM|MM|DD|dddd)/g, (function(l, m, T) {
            return m || T.slice(1);
          }));
        }))).match(r), B = W.length, Q = 0; Q < B; Q += 1) {
          var D = W[Q], H = X[D], x = H && H[0], Y = H && H[1];
          W[Q] = Y ? { regex: x, parser: Y } : D.replace(/^\[|\]$/g, "");
        }
        return function(F) {
          for (var S = {}, v = 0, U = 0; v < B; v += 1) {
            var l = W[v];
            if (typeof l == "string") U += l.length;
            else {
              var m = l.regex, T = l.parser, d = F.slice(U), w = m.exec(d)[0];
              T.call(S, w), F = F.replace(w, "");
            }
          }
          return (function(c) {
            var u = c.afternoon;
            if (u !== void 0) {
              var o = c.hours;
              u ? o < 12 && (c.hours += 12) : o === 12 && (c.hours = 0), delete c.afternoon;
            }
          })(S), S;
        };
      }
      return function(M, I, V) {
        V.p.customParseFormat = !0, M && M.parseTwoDigitYear && (p = M.parseTwoDigitYear);
        var W = I.prototype, B = W.parse;
        W.parse = function(Q) {
          var D = Q.date, H = Q.utc, x = Q.args;
          this.$u = H;
          var Y = x[1];
          if (typeof Y == "string") {
            var F = x[2] === !0, S = x[3] === !0, v = F || S, U = x[2];
            S && (U = x[2]), _ = this.$locale(), !F && U && (_ = V.Ls[U]), this.$d = (function(d, w, c, u) {
              try {
                if (["x", "X"].indexOf(w) > -1) return new Date((w === "X" ? 1e3 : 1) * d);
                var o = O(w)(d), z = o.year, P = o.month, R = o.day, K = o.hours, G = o.minutes, j = o.seconds, it = o.milliseconds, k = o.zone, A = o.week, N = /* @__PURE__ */ new Date(), f = R || (z || P ? 1 : N.getDate()), J = z || N.getFullYear(), L = 0;
                z && !P || (L = P > 0 ? P - 1 : N.getMonth());
                var $, Z = K || 0, rt = G || 0, st = j || 0, pt = it || 0;
                return k ? new Date(Date.UTC(J, L, f, Z, rt, st, pt + 60 * k.offset * 1e3)) : c ? new Date(Date.UTC(J, L, f, Z, rt, st, pt)) : ($ = new Date(J, L, f, Z, rt, st, pt), A && ($ = u($).week(A).toDate()), $);
              } catch {
                return /* @__PURE__ */ new Date("");
              }
            })(D, Y, H, V), this.init(), U && U !== !0 && (this.$L = this.locale(U).$L), v && D != this.format(Y) && (this.$d = /* @__PURE__ */ new Date("")), _ = {};
          } else if (Y instanceof Array) for (var l = Y.length, m = 1; m <= l; m += 1) {
            x[1] = Y[m - 1];
            var T = V.apply(this, x);
            if (T.isValid()) {
              this.$d = T.$d, this.$L = T.$L, this.init();
              break;
            }
            m === l && (this.$d = /* @__PURE__ */ new Date(""));
          }
          else B.call(this, Q);
        };
      };
    }));
  })($t)), $t.exports;
}
var Wa = Ia();
const Oa = /* @__PURE__ */ we(Wa);
var Qt = { exports: {} }, Ha = Qt.exports, Je;
function Na() {
  return Je || (Je = 1, (function(t, e) {
    (function(n, r) {
      t.exports = r();
    })(Ha, (function() {
      return function(n, r) {
        var a = r.prototype, i = a.format;
        a.format = function(s) {
          var y = this, _ = this.$locale();
          if (!this.isValid()) return i.bind(this)(s);
          var p = this.$utils(), g = (s || "YYYY-MM-DDTHH:mm:ssZ").replace(/\[([^\]]+)]|Q|wo|ww|w|WW|W|zzz|z|gggg|GGGG|Do|X|x|k{1,2}|S/g, (function(E) {
            switch (E) {
              case "Q":
                return Math.ceil((y.$M + 1) / 3);
              case "Do":
                return _.ordinal(y.$D);
              case "gggg":
                return y.weekYear();
              case "GGGG":
                return y.isoWeekYear();
              case "wo":
                return _.ordinal(y.week(), "W");
              case "w":
              case "ww":
                return p.s(y.week(), E === "w" ? 1 : 2, "0");
              case "W":
              case "WW":
                return p.s(y.isoWeek(), E === "W" ? 1 : 2, "0");
              case "k":
              case "kk":
                return p.s(String(y.$H === 0 ? 24 : y.$H), E === "k" ? 1 : 2, "0");
              case "X":
                return Math.floor(y.$d.getTime() / 1e3);
              case "x":
                return y.$d.getTime();
              case "z":
                return "[" + y.offsetName() + "]";
              case "zzz":
                return "[" + y.offsetName("long") + "]";
              default:
                return E;
            }
          }));
          return i.bind(this)(g);
        };
      };
    }));
  })(Qt)), Qt.exports;
}
var Va = Na();
const Pa = /* @__PURE__ */ we(Va);
var ve = (function() {
  var t = /* @__PURE__ */ h(function(U, l, m, T) {
    for (m = m || {}, T = U.length; T--; m[U[T]] = l) ;
    return m;
  }, "o"), e = [6, 8, 10, 12, 13, 14, 15, 16, 17, 18, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 33, 35, 36, 38, 40], n = [1, 26], r = [1, 27], a = [1, 28], i = [1, 29], s = [1, 30], y = [1, 31], _ = [1, 32], p = [1, 33], g = [1, 34], E = [1, 9], C = [1, 10], b = [1, 11], X = [1, 12], O = [1, 13], M = [1, 14], I = [1, 15], V = [1, 16], W = [1, 19], B = [1, 20], Q = [1, 21], D = [1, 22], H = [1, 23], x = [1, 25], Y = [1, 35], F = {
    trace: /* @__PURE__ */ h(function() {
    }, "trace"),
    yy: {},
    symbols_: { error: 2, start: 3, gantt: 4, document: 5, EOF: 6, line: 7, SPACE: 8, statement: 9, NL: 10, weekday: 11, weekday_monday: 12, weekday_tuesday: 13, weekday_wednesday: 14, weekday_thursday: 15, weekday_friday: 16, weekday_saturday: 17, weekday_sunday: 18, weekend: 19, weekend_friday: 20, weekend_saturday: 21, dateFormat: 22, inclusiveEndDates: 23, topAxis: 24, axisFormat: 25, tickInterval: 26, excludes: 27, includes: 28, todayMarker: 29, title: 30, acc_title: 31, acc_title_value: 32, acc_descr: 33, acc_descr_value: 34, acc_descr_multiline_value: 35, section: 36, clickStatement: 37, taskTxt: 38, taskData: 39, click: 40, callbackname: 41, callbackargs: 42, href: 43, clickStatementDebug: 44, $accept: 0, $end: 1 },
    terminals_: { 2: "error", 4: "gantt", 6: "EOF", 8: "SPACE", 10: "NL", 12: "weekday_monday", 13: "weekday_tuesday", 14: "weekday_wednesday", 15: "weekday_thursday", 16: "weekday_friday", 17: "weekday_saturday", 18: "weekday_sunday", 20: "weekend_friday", 21: "weekend_saturday", 22: "dateFormat", 23: "inclusiveEndDates", 24: "topAxis", 25: "axisFormat", 26: "tickInterval", 27: "excludes", 28: "includes", 29: "todayMarker", 30: "title", 31: "acc_title", 32: "acc_title_value", 33: "acc_descr", 34: "acc_descr_value", 35: "acc_descr_multiline_value", 36: "section", 38: "taskTxt", 39: "taskData", 40: "click", 41: "callbackname", 42: "callbackargs", 43: "href" },
    productions_: [0, [3, 3], [5, 0], [5, 2], [7, 2], [7, 1], [7, 1], [7, 1], [11, 1], [11, 1], [11, 1], [11, 1], [11, 1], [11, 1], [11, 1], [19, 1], [19, 1], [9, 1], [9, 1], [9, 1], [9, 1], [9, 1], [9, 1], [9, 1], [9, 1], [9, 1], [9, 1], [9, 1], [9, 2], [9, 2], [9, 1], [9, 1], [9, 1], [9, 2], [37, 2], [37, 3], [37, 3], [37, 4], [37, 3], [37, 4], [37, 2], [44, 2], [44, 3], [44, 3], [44, 4], [44, 3], [44, 4], [44, 2]],
    performAction: /* @__PURE__ */ h(function(l, m, T, d, w, c, u) {
      var o = c.length - 1;
      switch (w) {
        case 1:
          return c[o - 1];
        case 2:
          this.$ = [];
          break;
        case 3:
          c[o - 1].push(c[o]), this.$ = c[o - 1];
          break;
        case 4:
        case 5:
          this.$ = c[o];
          break;
        case 6:
        case 7:
          this.$ = [];
          break;
        case 8:
          d.setWeekday("monday");
          break;
        case 9:
          d.setWeekday("tuesday");
          break;
        case 10:
          d.setWeekday("wednesday");
          break;
        case 11:
          d.setWeekday("thursday");
          break;
        case 12:
          d.setWeekday("friday");
          break;
        case 13:
          d.setWeekday("saturday");
          break;
        case 14:
          d.setWeekday("sunday");
          break;
        case 15:
          d.setWeekend("friday");
          break;
        case 16:
          d.setWeekend("saturday");
          break;
        case 17:
          d.setDateFormat(c[o].substr(11)), this.$ = c[o].substr(11);
          break;
        case 18:
          d.enableInclusiveEndDates(), this.$ = c[o].substr(18);
          break;
        case 19:
          d.TopAxis(), this.$ = c[o].substr(8);
          break;
        case 20:
          d.setAxisFormat(c[o].substr(11)), this.$ = c[o].substr(11);
          break;
        case 21:
          d.setTickInterval(c[o].substr(13)), this.$ = c[o].substr(13);
          break;
        case 22:
          d.setExcludes(c[o].substr(9)), this.$ = c[o].substr(9);
          break;
        case 23:
          d.setIncludes(c[o].substr(9)), this.$ = c[o].substr(9);
          break;
        case 24:
          d.setTodayMarker(c[o].substr(12)), this.$ = c[o].substr(12);
          break;
        case 27:
          d.setDiagramTitle(c[o].substr(6)), this.$ = c[o].substr(6);
          break;
        case 28:
          this.$ = c[o].trim(), d.setAccTitle(this.$);
          break;
        case 29:
        case 30:
          this.$ = c[o].trim(), d.setAccDescription(this.$);
          break;
        case 31:
          d.addSection(c[o].substr(8)), this.$ = c[o].substr(8);
          break;
        case 33:
          d.addTask(c[o - 1], c[o]), this.$ = "task";
          break;
        case 34:
          this.$ = c[o - 1], d.setClickEvent(c[o - 1], c[o], null);
          break;
        case 35:
          this.$ = c[o - 2], d.setClickEvent(c[o - 2], c[o - 1], c[o]);
          break;
        case 36:
          this.$ = c[o - 2], d.setClickEvent(c[o - 2], c[o - 1], null), d.setLink(c[o - 2], c[o]);
          break;
        case 37:
          this.$ = c[o - 3], d.setClickEvent(c[o - 3], c[o - 2], c[o - 1]), d.setLink(c[o - 3], c[o]);
          break;
        case 38:
          this.$ = c[o - 2], d.setClickEvent(c[o - 2], c[o], null), d.setLink(c[o - 2], c[o - 1]);
          break;
        case 39:
          this.$ = c[o - 3], d.setClickEvent(c[o - 3], c[o - 1], c[o]), d.setLink(c[o - 3], c[o - 2]);
          break;
        case 40:
          this.$ = c[o - 1], d.setLink(c[o - 1], c[o]);
          break;
        case 41:
        case 47:
          this.$ = c[o - 1] + " " + c[o];
          break;
        case 42:
        case 43:
        case 45:
          this.$ = c[o - 2] + " " + c[o - 1] + " " + c[o];
          break;
        case 44:
        case 46:
          this.$ = c[o - 3] + " " + c[o - 2] + " " + c[o - 1] + " " + c[o];
          break;
      }
    }, "anonymous"),
    table: [{ 3: 1, 4: [1, 2] }, { 1: [3] }, t(e, [2, 2], { 5: 3 }), { 6: [1, 4], 7: 5, 8: [1, 6], 9: 7, 10: [1, 8], 11: 17, 12: n, 13: r, 14: a, 15: i, 16: s, 17: y, 18: _, 19: 18, 20: p, 21: g, 22: E, 23: C, 24: b, 25: X, 26: O, 27: M, 28: I, 29: V, 30: W, 31: B, 33: Q, 35: D, 36: H, 37: 24, 38: x, 40: Y }, t(e, [2, 7], { 1: [2, 1] }), t(e, [2, 3]), { 9: 36, 11: 17, 12: n, 13: r, 14: a, 15: i, 16: s, 17: y, 18: _, 19: 18, 20: p, 21: g, 22: E, 23: C, 24: b, 25: X, 26: O, 27: M, 28: I, 29: V, 30: W, 31: B, 33: Q, 35: D, 36: H, 37: 24, 38: x, 40: Y }, t(e, [2, 5]), t(e, [2, 6]), t(e, [2, 17]), t(e, [2, 18]), t(e, [2, 19]), t(e, [2, 20]), t(e, [2, 21]), t(e, [2, 22]), t(e, [2, 23]), t(e, [2, 24]), t(e, [2, 25]), t(e, [2, 26]), t(e, [2, 27]), { 32: [1, 37] }, { 34: [1, 38] }, t(e, [2, 30]), t(e, [2, 31]), t(e, [2, 32]), { 39: [1, 39] }, t(e, [2, 8]), t(e, [2, 9]), t(e, [2, 10]), t(e, [2, 11]), t(e, [2, 12]), t(e, [2, 13]), t(e, [2, 14]), t(e, [2, 15]), t(e, [2, 16]), { 41: [1, 40], 43: [1, 41] }, t(e, [2, 4]), t(e, [2, 28]), t(e, [2, 29]), t(e, [2, 33]), t(e, [2, 34], { 42: [1, 42], 43: [1, 43] }), t(e, [2, 40], { 41: [1, 44] }), t(e, [2, 35], { 43: [1, 45] }), t(e, [2, 36]), t(e, [2, 38], { 42: [1, 46] }), t(e, [2, 37]), t(e, [2, 39])],
    defaultActions: {},
    parseError: /* @__PURE__ */ h(function(l, m) {
      if (m.recoverable)
        this.trace(l);
      else {
        var T = new Error(l);
        throw T.hash = m, T;
      }
    }, "parseError"),
    parse: /* @__PURE__ */ h(function(l) {
      var m = this, T = [0], d = [], w = [null], c = [], u = this.table, o = "", z = 0, P = 0, R = 2, K = 1, G = c.slice.call(arguments, 1), j = Object.create(this.lexer), it = { yy: {} };
      for (var k in this.yy)
        Object.prototype.hasOwnProperty.call(this.yy, k) && (it.yy[k] = this.yy[k]);
      j.setInput(l, it.yy), it.yy.lexer = j, it.yy.parser = this, typeof j.yylloc > "u" && (j.yylloc = {});
      var A = j.yylloc;
      c.push(A);
      var N = j.options && j.options.ranges;
      typeof it.yy.parseError == "function" ? this.parseError = it.yy.parseError : this.parseError = Object.getPrototypeOf(this).parseError;
      function f(ot) {
        T.length = T.length - 2 * ot, w.length = w.length - ot, c.length = c.length - ot;
      }
      h(f, "popStack");
      function J() {
        var ot;
        return ot = d.pop() || j.lex() || K, typeof ot != "number" && (ot instanceof Array && (d = ot, ot = d.pop()), ot = m.symbols_[ot] || ot), ot;
      }
      h(J, "lex");
      for (var L, $, Z, rt, st = {}, pt, ut, We, qt; ; ) {
        if ($ = T[T.length - 1], this.defaultActions[$] ? Z = this.defaultActions[$] : ((L === null || typeof L > "u") && (L = J()), Z = u[$] && u[$][L]), typeof Z > "u" || !Z.length || !Z[0]) {
          var ie = "";
          qt = [];
          for (pt in u[$])
            this.terminals_[pt] && pt > R && qt.push("'" + this.terminals_[pt] + "'");
          j.showPosition ? ie = "Parse error on line " + (z + 1) + `:
` + j.showPosition() + `
Expecting ` + qt.join(", ") + ", got '" + (this.terminals_[L] || L) + "'" : ie = "Parse error on line " + (z + 1) + ": Unexpected " + (L == K ? "end of input" : "'" + (this.terminals_[L] || L) + "'"), this.parseError(ie, {
            text: j.match,
            token: this.terminals_[L] || L,
            line: j.yylineno,
            loc: A,
            expected: qt
          });
        }
        if (Z[0] instanceof Array && Z.length > 1)
          throw new Error("Parse Error: multiple actions possible at state: " + $ + ", token: " + L);
        switch (Z[0]) {
          case 1:
            T.push(L), w.push(j.yytext), c.push(j.yylloc), T.push(Z[1]), L = null, P = j.yyleng, o = j.yytext, z = j.yylineno, A = j.yylloc;
            break;
          case 2:
            if (ut = this.productions_[Z[1]][1], st.$ = w[w.length - ut], st._$ = {
              first_line: c[c.length - (ut || 1)].first_line,
              last_line: c[c.length - 1].last_line,
              first_column: c[c.length - (ut || 1)].first_column,
              last_column: c[c.length - 1].last_column
            }, N && (st._$.range = [
              c[c.length - (ut || 1)].range[0],
              c[c.length - 1].range[1]
            ]), rt = this.performAction.apply(st, [
              o,
              P,
              z,
              it.yy,
              Z[1],
              w,
              c
            ].concat(G)), typeof rt < "u")
              return rt;
            ut && (T = T.slice(0, -1 * ut * 2), w = w.slice(0, -1 * ut), c = c.slice(0, -1 * ut)), T.push(this.productions_[Z[1]][0]), w.push(st.$), c.push(st._$), We = u[T[T.length - 2]][T[T.length - 1]], T.push(We);
            break;
          case 3:
            return !0;
        }
      }
      return !0;
    }, "parse")
  }, S = /* @__PURE__ */ (function() {
    var U = {
      EOF: 1,
      parseError: /* @__PURE__ */ h(function(m, T) {
        if (this.yy.parser)
          this.yy.parser.parseError(m, T);
        else
          throw new Error(m);
      }, "parseError"),
      // resets the lexer, sets new input
      setInput: /* @__PURE__ */ h(function(l, m) {
        return this.yy = m || this.yy || {}, this._input = l, this._more = this._backtrack = this.done = !1, this.yylineno = this.yyleng = 0, this.yytext = this.matched = this.match = "", this.conditionStack = ["INITIAL"], this.yylloc = {
          first_line: 1,
          first_column: 0,
          last_line: 1,
          last_column: 0
        }, this.options.ranges && (this.yylloc.range = [0, 0]), this.offset = 0, this;
      }, "setInput"),
      // consumes and returns one char from the input
      input: /* @__PURE__ */ h(function() {
        var l = this._input[0];
        this.yytext += l, this.yyleng++, this.offset++, this.match += l, this.matched += l;
        var m = l.match(/(?:\r\n?|\n).*/g);
        return m ? (this.yylineno++, this.yylloc.last_line++) : this.yylloc.last_column++, this.options.ranges && this.yylloc.range[1]++, this._input = this._input.slice(1), l;
      }, "input"),
      // unshifts one char (or a string) into the input
      unput: /* @__PURE__ */ h(function(l) {
        var m = l.length, T = l.split(/(?:\r\n?|\n)/g);
        this._input = l + this._input, this.yytext = this.yytext.substr(0, this.yytext.length - m), this.offset -= m;
        var d = this.match.split(/(?:\r\n?|\n)/g);
        this.match = this.match.substr(0, this.match.length - 1), this.matched = this.matched.substr(0, this.matched.length - 1), T.length - 1 && (this.yylineno -= T.length - 1);
        var w = this.yylloc.range;
        return this.yylloc = {
          first_line: this.yylloc.first_line,
          last_line: this.yylineno + 1,
          first_column: this.yylloc.first_column,
          last_column: T ? (T.length === d.length ? this.yylloc.first_column : 0) + d[d.length - T.length].length - T[0].length : this.yylloc.first_column - m
        }, this.options.ranges && (this.yylloc.range = [w[0], w[0] + this.yyleng - m]), this.yyleng = this.yytext.length, this;
      }, "unput"),
      // When called from action, caches matched text and appends it on next action
      more: /* @__PURE__ */ h(function() {
        return this._more = !0, this;
      }, "more"),
      // When called from action, signals the lexer that this rule fails to match the input, so the next matching rule (regex) should be tested instead.
      reject: /* @__PURE__ */ h(function() {
        if (this.options.backtrack_lexer)
          this._backtrack = !0;
        else
          return this.parseError("Lexical error on line " + (this.yylineno + 1) + `. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).
` + this.showPosition(), {
            text: "",
            token: null,
            line: this.yylineno
          });
        return this;
      }, "reject"),
      // retain first n characters of the match
      less: /* @__PURE__ */ h(function(l) {
        this.unput(this.match.slice(l));
      }, "less"),
      // displays already matched input, i.e. for error messages
      pastInput: /* @__PURE__ */ h(function() {
        var l = this.matched.substr(0, this.matched.length - this.match.length);
        return (l.length > 20 ? "..." : "") + l.substr(-20).replace(/\n/g, "");
      }, "pastInput"),
      // displays upcoming input, i.e. for error messages
      upcomingInput: /* @__PURE__ */ h(function() {
        var l = this.match;
        return l.length < 20 && (l += this._input.substr(0, 20 - l.length)), (l.substr(0, 20) + (l.length > 20 ? "..." : "")).replace(/\n/g, "");
      }, "upcomingInput"),
      // displays the character position where the lexing error occurred, i.e. for error messages
      showPosition: /* @__PURE__ */ h(function() {
        var l = this.pastInput(), m = new Array(l.length + 1).join("-");
        return l + this.upcomingInput() + `
` + m + "^";
      }, "showPosition"),
      // test the lexed token: return FALSE when not a match, otherwise return token
      test_match: /* @__PURE__ */ h(function(l, m) {
        var T, d, w;
        if (this.options.backtrack_lexer && (w = {
          yylineno: this.yylineno,
          yylloc: {
            first_line: this.yylloc.first_line,
            last_line: this.last_line,
            first_column: this.yylloc.first_column,
            last_column: this.yylloc.last_column
          },
          yytext: this.yytext,
          match: this.match,
          matches: this.matches,
          matched: this.matched,
          yyleng: this.yyleng,
          offset: this.offset,
          _more: this._more,
          _input: this._input,
          yy: this.yy,
          conditionStack: this.conditionStack.slice(0),
          done: this.done
        }, this.options.ranges && (w.yylloc.range = this.yylloc.range.slice(0))), d = l[0].match(/(?:\r\n?|\n).*/g), d && (this.yylineno += d.length), this.yylloc = {
          first_line: this.yylloc.last_line,
          last_line: this.yylineno + 1,
          first_column: this.yylloc.last_column,
          last_column: d ? d[d.length - 1].length - d[d.length - 1].match(/\r?\n?/)[0].length : this.yylloc.last_column + l[0].length
        }, this.yytext += l[0], this.match += l[0], this.matches = l, this.yyleng = this.yytext.length, this.options.ranges && (this.yylloc.range = [this.offset, this.offset += this.yyleng]), this._more = !1, this._backtrack = !1, this._input = this._input.slice(l[0].length), this.matched += l[0], T = this.performAction.call(this, this.yy, this, m, this.conditionStack[this.conditionStack.length - 1]), this.done && this._input && (this.done = !1), T)
          return T;
        if (this._backtrack) {
          for (var c in w)
            this[c] = w[c];
          return !1;
        }
        return !1;
      }, "test_match"),
      // return next match in input
      next: /* @__PURE__ */ h(function() {
        if (this.done)
          return this.EOF;
        this._input || (this.done = !0);
        var l, m, T, d;
        this._more || (this.yytext = "", this.match = "");
        for (var w = this._currentRules(), c = 0; c < w.length; c++)
          if (T = this._input.match(this.rules[w[c]]), T && (!m || T[0].length > m[0].length)) {
            if (m = T, d = c, this.options.backtrack_lexer) {
              if (l = this.test_match(T, w[c]), l !== !1)
                return l;
              if (this._backtrack) {
                m = !1;
                continue;
              } else
                return !1;
            } else if (!this.options.flex)
              break;
          }
        return m ? (l = this.test_match(m, w[d]), l !== !1 ? l : !1) : this._input === "" ? this.EOF : this.parseError("Lexical error on line " + (this.yylineno + 1) + `. Unrecognized text.
` + this.showPosition(), {
          text: "",
          token: null,
          line: this.yylineno
        });
      }, "next"),
      // return next match that has a token
      lex: /* @__PURE__ */ h(function() {
        var m = this.next();
        return m || this.lex();
      }, "lex"),
      // activates a new lexer condition state (pushes the new lexer condition state onto the condition stack)
      begin: /* @__PURE__ */ h(function(m) {
        this.conditionStack.push(m);
      }, "begin"),
      // pop the previously active lexer condition state off the condition stack
      popState: /* @__PURE__ */ h(function() {
        var m = this.conditionStack.length - 1;
        return m > 0 ? this.conditionStack.pop() : this.conditionStack[0];
      }, "popState"),
      // produce the lexer rule set which is active for the currently active lexer condition state
      _currentRules: /* @__PURE__ */ h(function() {
        return this.conditionStack.length && this.conditionStack[this.conditionStack.length - 1] ? this.conditions[this.conditionStack[this.conditionStack.length - 1]].rules : this.conditions.INITIAL.rules;
      }, "_currentRules"),
      // return the currently active lexer condition state; when an index argument is provided it produces the N-th previous condition state, if available
      topState: /* @__PURE__ */ h(function(m) {
        return m = this.conditionStack.length - 1 - Math.abs(m || 0), m >= 0 ? this.conditionStack[m] : "INITIAL";
      }, "topState"),
      // alias for begin(condition)
      pushState: /* @__PURE__ */ h(function(m) {
        this.begin(m);
      }, "pushState"),
      // return the number of states currently on the stack
      stateStackSize: /* @__PURE__ */ h(function() {
        return this.conditionStack.length;
      }, "stateStackSize"),
      options: { "case-insensitive": !0 },
      performAction: /* @__PURE__ */ h(function(m, T, d, w) {
        switch (d) {
          case 0:
            return this.begin("open_directive"), "open_directive";
          case 1:
            return this.begin("acc_title"), 31;
          case 2:
            return this.popState(), "acc_title_value";
          case 3:
            return this.begin("acc_descr"), 33;
          case 4:
            return this.popState(), "acc_descr_value";
          case 5:
            this.begin("acc_descr_multiline");
            break;
          case 6:
            this.popState();
            break;
          case 7:
            return "acc_descr_multiline_value";
          case 8:
            break;
          case 9:
            break;
          case 10:
            break;
          case 11:
            return 10;
          case 12:
            break;
          case 13:
            break;
          case 14:
            this.begin("href");
            break;
          case 15:
            this.popState();
            break;
          case 16:
            return 43;
          case 17:
            this.begin("callbackname");
            break;
          case 18:
            this.popState();
            break;
          case 19:
            this.popState(), this.begin("callbackargs");
            break;
          case 20:
            return 41;
          case 21:
            this.popState();
            break;
          case 22:
            return 42;
          case 23:
            this.begin("click");
            break;
          case 24:
            this.popState();
            break;
          case 25:
            return 40;
          case 26:
            return 4;
          case 27:
            return 22;
          case 28:
            return 23;
          case 29:
            return 24;
          case 30:
            return 25;
          case 31:
            return 26;
          case 32:
            return 28;
          case 33:
            return 27;
          case 34:
            return 29;
          case 35:
            return 12;
          case 36:
            return 13;
          case 37:
            return 14;
          case 38:
            return 15;
          case 39:
            return 16;
          case 40:
            return 17;
          case 41:
            return 18;
          case 42:
            return 20;
          case 43:
            return 21;
          case 44:
            return "date";
          case 45:
            return 30;
          case 46:
            return "accDescription";
          case 47:
            return 36;
          case 48:
            return 38;
          case 49:
            return 39;
          case 50:
            return ":";
          case 51:
            return 6;
          case 52:
            return "INVALID";
        }
      }, "anonymous"),
      rules: [/^(?:%%\{)/i, /^(?:accTitle\s*:\s*)/i, /^(?:(?!\n||)*[^\n]*)/i, /^(?:accDescr\s*:\s*)/i, /^(?:(?!\n||)*[^\n]*)/i, /^(?:accDescr\s*\{\s*)/i, /^(?:[\}])/i, /^(?:[^\}]*)/i, /^(?:%%(?!\{)*[^\n]*)/i, /^(?:[^\}]%%*[^\n]*)/i, /^(?:%%*[^\n]*[\n]*)/i, /^(?:[\n]+)/i, /^(?:\s+)/i, /^(?:%[^\n]*)/i, /^(?:href[\s]+["])/i, /^(?:["])/i, /^(?:[^"]*)/i, /^(?:call[\s]+)/i, /^(?:\([\s]*\))/i, /^(?:\()/i, /^(?:[^(]*)/i, /^(?:\))/i, /^(?:[^)]*)/i, /^(?:click[\s]+)/i, /^(?:[\s\n])/i, /^(?:[^\s\n]*)/i, /^(?:gantt\b)/i, /^(?:dateFormat\s[^#\n;]+)/i, /^(?:inclusiveEndDates\b)/i, /^(?:topAxis\b)/i, /^(?:axisFormat\s[^#\n;]+)/i, /^(?:tickInterval\s[^#\n;]+)/i, /^(?:includes\s[^#\n;]+)/i, /^(?:excludes\s[^#\n;]+)/i, /^(?:todayMarker\s[^\n;]+)/i, /^(?:weekday\s+monday\b)/i, /^(?:weekday\s+tuesday\b)/i, /^(?:weekday\s+wednesday\b)/i, /^(?:weekday\s+thursday\b)/i, /^(?:weekday\s+friday\b)/i, /^(?:weekday\s+saturday\b)/i, /^(?:weekday\s+sunday\b)/i, /^(?:weekend\s+friday\b)/i, /^(?:weekend\s+saturday\b)/i, /^(?:\d\d\d\d-\d\d-\d\d\b)/i, /^(?:title\s[^\n]+)/i, /^(?:accDescription\s[^#\n;]+)/i, /^(?:section\s[^\n]+)/i, /^(?:[^:\n]+)/i, /^(?::[^#\n;]+)/i, /^(?::)/i, /^(?:$)/i, /^(?:.)/i],
      conditions: { acc_descr_multiline: { rules: [6, 7], inclusive: !1 }, acc_descr: { rules: [4], inclusive: !1 }, acc_title: { rules: [2], inclusive: !1 }, callbackargs: { rules: [21, 22], inclusive: !1 }, callbackname: { rules: [18, 19, 20], inclusive: !1 }, href: { rules: [15, 16], inclusive: !1 }, click: { rules: [24, 25], inclusive: !1 }, INITIAL: { rules: [0, 1, 3, 5, 8, 9, 10, 11, 12, 13, 14, 17, 23, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52], inclusive: !0 } }
    };
    return U;
  })();
  F.lexer = S;
  function v() {
    this.yy = {};
  }
  return h(v, "Parser"), v.prototype = F, F.Parser = v, new v();
})();
ve.parser = ve;
var za = ve;
at.extend(La);
at.extend(Oa);
at.extend(Pa);
var Ke = { friday: 5, saturday: 6 }, lt = "", Me = "", _e = void 0, Se = "", Pt = [], zt = [], Fe = /* @__PURE__ */ new Map(), Ye = [], re = [], Et = "", Ue = "", Cn = ["active", "done", "crit", "milestone", "vert"], Ee = [], Rt = !1, Le = !1, Ae = "sunday", ae = "saturday", Te = 0, Ra = /* @__PURE__ */ h(function() {
  Ye = [], re = [], Et = "", Ee = [], jt = 0, xe = void 0, Jt = void 0, tt = [], lt = "", Me = "", Ue = "", _e = void 0, Se = "", Pt = [], zt = [], Rt = !1, Le = !1, Te = 0, Fe = /* @__PURE__ */ new Map(), qn(), Ae = "sunday", ae = "saturday";
}, "clear"), qa = /* @__PURE__ */ h(function(t) {
  Me = t;
}, "setAxisFormat"), Ba = /* @__PURE__ */ h(function() {
  return Me;
}, "getAxisFormat"), Za = /* @__PURE__ */ h(function(t) {
  _e = t;
}, "setTickInterval"), Xa = /* @__PURE__ */ h(function() {
  return _e;
}, "getTickInterval"), Ga = /* @__PURE__ */ h(function(t) {
  Se = t;
}, "setTodayMarker"), $a = /* @__PURE__ */ h(function() {
  return Se;
}, "getTodayMarker"), Qa = /* @__PURE__ */ h(function(t) {
  lt = t;
}, "setDateFormat"), ja = /* @__PURE__ */ h(function() {
  Rt = !0;
}, "enableInclusiveEndDates"), Ja = /* @__PURE__ */ h(function() {
  return Rt;
}, "endDatesAreInclusive"), Ka = /* @__PURE__ */ h(function() {
  Le = !0;
}, "enableTopAxis"), ti = /* @__PURE__ */ h(function() {
  return Le;
}, "topAxisEnabled"), ei = /* @__PURE__ */ h(function(t) {
  Ue = t;
}, "setDisplayMode"), ni = /* @__PURE__ */ h(function() {
  return Ue;
}, "getDisplayMode"), ri = /* @__PURE__ */ h(function() {
  return lt;
}, "getDateFormat"), ai = /* @__PURE__ */ h(function(t) {
  Pt = t.toLowerCase().split(/[\s,]+/);
}, "setIncludes"), ii = /* @__PURE__ */ h(function() {
  return Pt;
}, "getIncludes"), si = /* @__PURE__ */ h(function(t) {
  zt = t.toLowerCase().split(/[\s,]+/);
}, "setExcludes"), oi = /* @__PURE__ */ h(function() {
  return zt;
}, "getExcludes"), ci = /* @__PURE__ */ h(function() {
  return Fe;
}, "getLinks"), ui = /* @__PURE__ */ h(function(t) {
  Et = t, Ye.push(t);
}, "addSection"), li = /* @__PURE__ */ h(function() {
  return Ye;
}, "getSections"), fi = /* @__PURE__ */ h(function() {
  let t = tn();
  const e = 10;
  let n = 0;
  for (; !t && n < e; )
    t = tn(), n++;
  return re = tt, re;
}, "getTasks"), Mn = /* @__PURE__ */ h(function(t, e, n, r) {
  const a = t.format(e.trim()), i = t.format("YYYY-MM-DD");
  return r.includes(a) || r.includes(i) ? !1 : n.includes("weekends") && (t.isoWeekday() === Ke[ae] || t.isoWeekday() === Ke[ae] + 1) || n.includes(t.format("dddd").toLowerCase()) ? !0 : n.includes(a) || n.includes(i);
}, "isInvalidDate"), hi = /* @__PURE__ */ h(function(t) {
  Ae = t;
}, "setWeekday"), di = /* @__PURE__ */ h(function() {
  return Ae;
}, "getWeekday"), mi = /* @__PURE__ */ h(function(t) {
  ae = t;
}, "setWeekend"), _n = /* @__PURE__ */ h(function(t, e, n, r) {
  if (!n.length || t.manualEndTime)
    return;
  let a;
  t.startTime instanceof Date ? a = at(t.startTime) : a = at(t.startTime, e, !0), a = a.add(1, "d");
  let i;
  t.endTime instanceof Date ? i = at(t.endTime) : i = at(t.endTime, e, !0);
  const [s, y] = gi(
    a,
    i,
    e,
    n,
    r
  );
  t.endTime = s.toDate(), t.renderEndTime = y;
}, "checkTaskDates"), gi = /* @__PURE__ */ h(function(t, e, n, r, a) {
  let i = !1, s = null;
  for (; t <= e; )
    i || (s = e.toDate()), i = Mn(t, n, r, a), i && (e = e.add(1, "d")), t = t.add(1, "d");
  return [e, s];
}, "fixTaskDates"), be = /* @__PURE__ */ h(function(t, e, n) {
  if (n = n.trim(), (e.trim() === "x" || e.trim() === "X") && /^\d+$/.test(n))
    return new Date(Number(n));
  const a = /^after\s+(?<ids>[\d\w- ]+)/.exec(n);
  if (a !== null) {
    let s = null;
    for (const _ of a.groups.ids.split(" ")) {
      let p = Ct(_);
      p !== void 0 && (!s || p.endTime > s.endTime) && (s = p);
    }
    if (s)
      return s.endTime;
    const y = /* @__PURE__ */ new Date();
    return y.setHours(0, 0, 0, 0), y;
  }
  let i = at(n, e.trim(), !0);
  if (i.isValid())
    return i.toDate();
  {
    Kt.debug("Invalid date:" + n), Kt.debug("With date format:" + e.trim());
    const s = new Date(n);
    if (s === void 0 || isNaN(s.getTime()) || // WebKit browsers can mis-parse invalid dates to be ridiculously
    // huge numbers, e.g. new Date('202304') gets parsed as January 1, 202304.
    // This can cause virtually infinite loops while rendering, so for the
    // purposes of Gantt charts we'll just treat any date beyond 10,000 AD/BC as
    // invalid.
    s.getFullYear() < -1e4 || s.getFullYear() > 1e4)
      throw new Error("Invalid date:" + n);
    return s;
  }
}, "getStartDate"), Sn = /* @__PURE__ */ h(function(t) {
  const e = /^(\d+(?:\.\d+)?)([Mdhmswy]|ms)$/.exec(t.trim());
  return e !== null ? [Number.parseFloat(e[1]), e[2]] : [NaN, "ms"];
}, "parseDuration"), Fn = /* @__PURE__ */ h(function(t, e, n, r = !1) {
  n = n.trim();
  const i = /^until\s+(?<ids>[\d\w- ]+)/.exec(n);
  if (i !== null) {
    let g = null;
    for (const C of i.groups.ids.split(" ")) {
      let b = Ct(C);
      b !== void 0 && (!g || b.startTime < g.startTime) && (g = b);
    }
    if (g)
      return g.startTime;
    const E = /* @__PURE__ */ new Date();
    return E.setHours(0, 0, 0, 0), E;
  }
  let s = at(n, e.trim(), !0);
  if (s.isValid())
    return r && (s = s.add(1, "d")), s.toDate();
  let y = at(t);
  const [_, p] = Sn(n);
  if (!Number.isNaN(_)) {
    const g = y.add(_, p);
    g.isValid() && (y = g);
  }
  return y.toDate();
}, "getEndDate"), jt = 0, Ft = /* @__PURE__ */ h(function(t) {
  return t === void 0 ? (jt = jt + 1, "task" + jt) : t;
}, "parseId"), yi = /* @__PURE__ */ h(function(t, e) {
  let n;
  e.substr(0, 1) === ":" ? n = e.substr(1, e.length) : n = e;
  const r = n.split(","), a = {};
  Ie(r, a, Cn);
  for (let s = 0; s < r.length; s++)
    r[s] = r[s].trim();
  let i = "";
  switch (r.length) {
    case 1:
      a.id = Ft(), a.startTime = t.endTime, i = r[0];
      break;
    case 2:
      a.id = Ft(), a.startTime = be(void 0, lt, r[0]), i = r[1];
      break;
    case 3:
      a.id = Ft(r[0]), a.startTime = be(void 0, lt, r[1]), i = r[2];
      break;
  }
  return i && (a.endTime = Fn(a.startTime, lt, i, Rt), a.manualEndTime = at(i, "YYYY-MM-DD", !0).isValid(), _n(a, lt, zt, Pt)), a;
}, "compileData"), ki = /* @__PURE__ */ h(function(t, e) {
  let n;
  e.substr(0, 1) === ":" ? n = e.substr(1, e.length) : n = e;
  const r = n.split(","), a = {};
  Ie(r, a, Cn);
  for (let i = 0; i < r.length; i++)
    r[i] = r[i].trim();
  switch (r.length) {
    case 1:
      a.id = Ft(), a.startTime = {
        type: "prevTaskEnd",
        id: t
      }, a.endTime = {
        data: r[0]
      };
      break;
    case 2:
      a.id = Ft(), a.startTime = {
        type: "getStartDate",
        startData: r[0]
      }, a.endTime = {
        data: r[1]
      };
      break;
    case 3:
      a.id = Ft(r[0]), a.startTime = {
        type: "getStartDate",
        startData: r[1]
      }, a.endTime = {
        data: r[2]
      };
      break;
  }
  return a;
}, "parseData"), xe, Jt, tt = [], Yn = {}, pi = /* @__PURE__ */ h(function(t, e) {
  const n = {
    section: Et,
    type: Et,
    processed: !1,
    manualEndTime: !1,
    renderEndTime: null,
    raw: { data: e },
    task: t,
    classes: []
  }, r = ki(Jt, e);
  n.raw.startTime = r.startTime, n.raw.endTime = r.endTime, n.id = r.id, n.prevTaskId = Jt, n.active = r.active, n.done = r.done, n.crit = r.crit, n.milestone = r.milestone, n.vert = r.vert, n.order = Te, Te++;
  const a = tt.push(n);
  Jt = n.id, Yn[n.id] = a - 1;
}, "addTask"), Ct = /* @__PURE__ */ h(function(t) {
  const e = Yn[t];
  return tt[e];
}, "findTaskById"), vi = /* @__PURE__ */ h(function(t, e) {
  const n = {
    section: Et,
    type: Et,
    description: t,
    task: t,
    classes: []
  }, r = yi(xe, e);
  n.startTime = r.startTime, n.endTime = r.endTime, n.id = r.id, n.active = r.active, n.done = r.done, n.crit = r.crit, n.milestone = r.milestone, n.vert = r.vert, xe = n, re.push(n);
}, "addTaskOrg"), tn = /* @__PURE__ */ h(function() {
  const t = /* @__PURE__ */ h(function(n) {
    const r = tt[n];
    let a = "";
    switch (tt[n].raw.startTime.type) {
      case "prevTaskEnd": {
        const i = Ct(r.prevTaskId);
        r.startTime = i.endTime;
        break;
      }
      case "getStartDate":
        a = be(void 0, lt, tt[n].raw.startTime.startData), a && (tt[n].startTime = a);
        break;
    }
    return tt[n].startTime && (tt[n].endTime = Fn(
      tt[n].startTime,
      lt,
      tt[n].raw.endTime.data,
      Rt
    ), tt[n].endTime && (tt[n].processed = !0, tt[n].manualEndTime = at(
      tt[n].raw.endTime.data,
      "YYYY-MM-DD",
      !0
    ).isValid(), _n(tt[n], lt, zt, Pt))), tt[n].processed;
  }, "compileTask");
  let e = !0;
  for (const [n, r] of tt.entries())
    t(n), e = e && r.processed;
  return e;
}, "compileTasks"), Ti = /* @__PURE__ */ h(function(t, e) {
  let n = e;
  _t().securityLevel !== "loose" && (n = Rn.sanitizeUrl(e)), t.split(",").forEach(function(r) {
    Ct(r) !== void 0 && (En(r, () => {
      window.open(n, "_self");
    }), Fe.set(r, n));
  }), Un(t, "clickable");
}, "setLink"), Un = /* @__PURE__ */ h(function(t, e) {
  t.split(",").forEach(function(n) {
    let r = Ct(n);
    r !== void 0 && r.classes.push(e);
  });
}, "setClass"), bi = /* @__PURE__ */ h(function(t, e, n) {
  if (_t().securityLevel !== "loose" || e === void 0)
    return;
  let r = [];
  if (typeof n == "string") {
    r = n.split(/,(?=(?:(?:[^"]*"){2})*[^"]*$)/);
    for (let i = 0; i < r.length; i++) {
      let s = r[i].trim();
      s.startsWith('"') && s.endsWith('"') && (s = s.substr(1, s.length - 2)), r[i] = s;
    }
  }
  r.length === 0 && r.push(t), Ct(t) !== void 0 && En(t, () => {
    Bn.runFunc(e, ...r);
  });
}, "setClickFun"), En = /* @__PURE__ */ h(function(t, e) {
  Ee.push(
    function() {
      const n = document.querySelector(`[id="${t}"]`);
      n !== null && n.addEventListener("click", function() {
        e();
      });
    },
    function() {
      const n = document.querySelector(`[id="${t}-text"]`);
      n !== null && n.addEventListener("click", function() {
        e();
      });
    }
  );
}, "pushFun"), xi = /* @__PURE__ */ h(function(t, e, n) {
  t.split(",").forEach(function(r) {
    bi(r, e, n);
  }), Un(t, "clickable");
}, "setClickEvent"), wi = /* @__PURE__ */ h(function(t) {
  Ee.forEach(function(e) {
    e(t);
  });
}, "bindFunctions"), Di = {
  getConfig: /* @__PURE__ */ h(() => _t().gantt, "getConfig"),
  clear: Ra,
  setDateFormat: Qa,
  getDateFormat: ri,
  enableInclusiveEndDates: ja,
  endDatesAreInclusive: Ja,
  enableTopAxis: Ka,
  topAxisEnabled: ti,
  setAxisFormat: qa,
  getAxisFormat: Ba,
  setTickInterval: Za,
  getTickInterval: Xa,
  setTodayMarker: Ga,
  getTodayMarker: $a,
  setAccTitle: Vn,
  getAccTitle: Nn,
  setDiagramTitle: Hn,
  getDiagramTitle: On,
  setDisplayMode: ei,
  getDisplayMode: ni,
  setAccDescription: Wn,
  getAccDescription: In,
  addSection: ui,
  getSections: li,
  getTasks: fi,
  addTask: pi,
  findTaskById: Ct,
  addTaskOrg: vi,
  setIncludes: ai,
  getIncludes: ii,
  setExcludes: si,
  getExcludes: oi,
  setClickEvent: xi,
  setLink: Ti,
  getLinks: ci,
  bindFunctions: wi,
  parseDuration: Sn,
  isInvalidDate: Mn,
  setWeekday: hi,
  getWeekday: di,
  setWeekend: mi
};
function Ie(t, e, n) {
  let r = !0;
  for (; r; )
    r = !1, n.forEach(function(a) {
      const i = "^\\s*" + a + "\\s*$", s = new RegExp(i);
      t[0].match(s) && (e[a] = !0, t.shift(1), r = !0);
    });
}
h(Ie, "getTaskTags");
var Ci = /* @__PURE__ */ h(function() {
  Kt.debug("Something is calling, setConf, remove the call");
}, "setConf"), en = {
  monday: Ht,
  tuesday: gn,
  wednesday: yn,
  thursday: bt,
  friday: kn,
  saturday: pn,
  sunday: Vt
}, Mi = /* @__PURE__ */ h((t, e) => {
  let n = [...t].map(() => -1 / 0), r = [...t].sort((i, s) => i.startTime - s.startTime || i.order - s.order), a = 0;
  for (const i of r)
    for (let s = 0; s < n.length; s++)
      if (i.startTime >= n[s]) {
        n[s] = i.endTime, i.order = s + e, s > a && (a = s);
        break;
      }
  return a;
}, "getMaxIntersections"), ht, _i = /* @__PURE__ */ h(function(t, e, n, r) {
  const a = _t().gantt, i = _t().securityLevel;
  let s;
  i === "sandbox" && (s = Bt("#i" + e));
  const y = i === "sandbox" ? Bt(s.nodes()[0].contentDocument.body) : Bt("body"), _ = i === "sandbox" ? s.nodes()[0].contentDocument : document, p = _.getElementById(e);
  ht = p.parentElement.offsetWidth, ht === void 0 && (ht = 1200), a.useWidth !== void 0 && (ht = a.useWidth);
  const g = r.db.getTasks();
  let E = [];
  for (const x of g)
    E.push(x.type);
  E = H(E);
  const C = {};
  let b = 2 * a.topPadding;
  if (r.db.getDisplayMode() === "compact" || a.displayMode === "compact") {
    const x = {};
    for (const F of g)
      x[F.section] === void 0 ? x[F.section] = [F] : x[F.section].push(F);
    let Y = 0;
    for (const F of Object.keys(x)) {
      const S = Mi(x[F], Y) + 1;
      Y += S, b += S * (a.barHeight + a.barGap), C[F] = S;
    }
  } else {
    b += g.length * (a.barHeight + a.barGap);
    for (const x of E)
      C[x] = g.filter((Y) => Y.type === x).length;
  }
  p.setAttribute("viewBox", "0 0 " + ht + " " + b);
  const X = y.select(`[id="${e}"]`), O = Fa().domain([
    Jn(g, function(x) {
      return x.startTime;
    }),
    jn(g, function(x) {
      return x.endTime;
    })
  ]).rangeRound([0, ht - a.leftPadding - a.rightPadding]);
  function M(x, Y) {
    const F = x.startTime, S = Y.startTime;
    let v = 0;
    return F > S ? v = 1 : F < S && (v = -1), v;
  }
  h(M, "taskCompare"), g.sort(M), I(g, ht, b), Pn(X, b, ht, a.useMaxWidth), X.append("text").text(r.db.getDiagramTitle()).attr("x", ht / 2).attr("y", a.titleTopMargin).attr("class", "titleText");
  function I(x, Y, F) {
    const S = a.barHeight, v = S + a.barGap, U = a.topPadding, l = a.leftPadding, m = $n().domain([0, E.length]).range(["#00B9FA", "#F95002"]).interpolate(dr);
    W(
      v,
      U,
      l,
      Y,
      F,
      x,
      r.db.getExcludes(),
      r.db.getIncludes()
    ), B(l, U, Y, F), V(x, v, U, l, S, m, Y), Q(v, U), D(l, U, Y, F);
  }
  h(I, "makeGantt");
  function V(x, Y, F, S, v, U, l) {
    x.sort((u, o) => u.vert === o.vert ? 0 : u.vert ? 1 : -1);
    const T = [...new Set(x.map((u) => u.order))].map((u) => x.find((o) => o.order === u));
    X.append("g").selectAll("rect").data(T).enter().append("rect").attr("x", 0).attr("y", function(u, o) {
      return o = u.order, o * Y + F - 2;
    }).attr("width", function() {
      return l - a.rightPadding / 2;
    }).attr("height", Y).attr("class", function(u) {
      for (const [o, z] of E.entries())
        if (u.type === z)
          return "section section" + o % a.numberSectionStyles;
      return "section section0";
    }).enter();
    const d = X.append("g").selectAll("rect").data(x).enter(), w = r.db.getLinks();
    if (d.append("rect").attr("id", function(u) {
      return u.id;
    }).attr("rx", 3).attr("ry", 3).attr("x", function(u) {
      return u.milestone ? O(u.startTime) + S + 0.5 * (O(u.endTime) - O(u.startTime)) - 0.5 * v : O(u.startTime) + S;
    }).attr("y", function(u, o) {
      return o = u.order, u.vert ? a.gridLineStartPadding : o * Y + F;
    }).attr("width", function(u) {
      return u.milestone ? v : u.vert ? 0.08 * v : O(u.renderEndTime || u.endTime) - O(u.startTime);
    }).attr("height", function(u) {
      return u.vert ? g.length * (a.barHeight + a.barGap) + a.barHeight * 2 : v;
    }).attr("transform-origin", function(u, o) {
      return o = u.order, (O(u.startTime) + S + 0.5 * (O(u.endTime) - O(u.startTime))).toString() + "px " + (o * Y + F + 0.5 * v).toString() + "px";
    }).attr("class", function(u) {
      const o = "task";
      let z = "";
      u.classes.length > 0 && (z = u.classes.join(" "));
      let P = 0;
      for (const [K, G] of E.entries())
        u.type === G && (P = K % a.numberSectionStyles);
      let R = "";
      return u.active ? u.crit ? R += " activeCrit" : R = " active" : u.done ? u.crit ? R = " doneCrit" : R = " done" : u.crit && (R += " crit"), R.length === 0 && (R = " task"), u.milestone && (R = " milestone " + R), u.vert && (R = " vert " + R), R += P, R += " " + z, o + R;
    }), d.append("text").attr("id", function(u) {
      return u.id + "-text";
    }).text(function(u) {
      return u.task;
    }).attr("font-size", a.fontSize).attr("x", function(u) {
      let o = O(u.startTime), z = O(u.renderEndTime || u.endTime);
      if (u.milestone && (o += 0.5 * (O(u.endTime) - O(u.startTime)) - 0.5 * v, z = o + v), u.vert)
        return O(u.startTime) + S;
      const P = this.getBBox().width;
      return P > z - o ? z + P + 1.5 * a.leftPadding > l ? o + S - 5 : z + S + 5 : (z - o) / 2 + o + S;
    }).attr("y", function(u, o) {
      return u.vert ? a.gridLineStartPadding + g.length * (a.barHeight + a.barGap) + 60 : (o = u.order, o * Y + a.barHeight / 2 + (a.fontSize / 2 - 2) + F);
    }).attr("text-height", v).attr("class", function(u) {
      const o = O(u.startTime);
      let z = O(u.endTime);
      u.milestone && (z = o + v);
      const P = this.getBBox().width;
      let R = "";
      u.classes.length > 0 && (R = u.classes.join(" "));
      let K = 0;
      for (const [j, it] of E.entries())
        u.type === it && (K = j % a.numberSectionStyles);
      let G = "";
      return u.active && (u.crit ? G = "activeCritText" + K : G = "activeText" + K), u.done ? u.crit ? G = G + " doneCritText" + K : G = G + " doneText" + K : u.crit && (G = G + " critText" + K), u.milestone && (G += " milestoneText"), u.vert && (G += " vertText"), P > z - o ? z + P + 1.5 * a.leftPadding > l ? R + " taskTextOutsideLeft taskTextOutside" + K + " " + G : R + " taskTextOutsideRight taskTextOutside" + K + " " + G + " width-" + P : R + " taskText taskText" + K + " " + G + " width-" + P;
    }), _t().securityLevel === "sandbox") {
      let u;
      u = Bt("#i" + e);
      const o = u.nodes()[0].contentDocument;
      d.filter(function(z) {
        return w.has(z.id);
      }).each(function(z) {
        var P = o.querySelector("#" + z.id), R = o.querySelector("#" + z.id + "-text");
        const K = P.parentNode;
        var G = o.createElement("a");
        G.setAttribute("xlink:href", w.get(z.id)), G.setAttribute("target", "_top"), K.appendChild(G), G.appendChild(P), G.appendChild(R);
      });
    }
  }
  h(V, "drawRects");
  function W(x, Y, F, S, v, U, l, m) {
    if (l.length === 0 && m.length === 0)
      return;
    let T, d;
    for (const { startTime: P, endTime: R } of U)
      (T === void 0 || P < T) && (T = P), (d === void 0 || R > d) && (d = R);
    if (!T || !d)
      return;
    if (at(d).diff(at(T), "year") > 5) {
      Kt.warn(
        "The difference between the min and max time is more than 5 years. This will cause performance issues. Skipping drawing exclude days."
      );
      return;
    }
    const w = r.db.getDateFormat(), c = [];
    let u = null, o = at(T);
    for (; o.valueOf() <= d; )
      r.db.isInvalidDate(o, w, l, m) ? u ? u.end = o : u = {
        start: o,
        end: o
      } : u && (c.push(u), u = null), o = o.add(1, "d");
    X.append("g").selectAll("rect").data(c).enter().append("rect").attr("id", (P) => "exclude-" + P.start.format("YYYY-MM-DD")).attr("x", (P) => O(P.start.startOf("day")) + F).attr("y", a.gridLineStartPadding).attr("width", (P) => O(P.end.endOf("day")) - O(P.start.startOf("day"))).attr("height", v - Y - a.gridLineStartPadding).attr("transform-origin", function(P, R) {
      return (O(P.start) + F + 0.5 * (O(P.end) - O(P.start))).toString() + "px " + (R * x + 0.5 * v).toString() + "px";
    }).attr("class", "exclude-range");
  }
  h(W, "drawExcludeDays");
  function B(x, Y, F, S) {
    const v = r.db.getDateFormat(), U = r.db.getAxisFormat();
    let l;
    U ? l = U : v === "D" ? l = "%d" : l = a.axisFormat ?? "%Y-%m-%d";
    let m = sr(O).tickSize(-S + Y + a.gridLineStartPadding).tickFormat(ne(l));
    const d = /^([1-9]\d*)(millisecond|second|minute|hour|day|week|month)$/.exec(
      r.db.getTickInterval() || a.tickInterval
    );
    if (d !== null) {
      const w = d[1], c = d[2], u = r.db.getWeekday() || a.weekday;
      switch (c) {
        case "millisecond":
          m.ticks(Yt.every(w));
          break;
        case "second":
          m.ticks(vt.every(w));
          break;
        case "minute":
          m.ticks(Wt.every(w));
          break;
        case "hour":
          m.ticks(Ot.every(w));
          break;
        case "day":
          m.ticks(Tt.every(w));
          break;
        case "week":
          m.ticks(en[u].every(w));
          break;
        case "month":
          m.ticks(Nt.every(w));
          break;
      }
    }
    if (X.append("g").attr("class", "grid").attr("transform", "translate(" + x + ", " + (S - 50) + ")").call(m).selectAll("text").style("text-anchor", "middle").attr("fill", "#000").attr("stroke", "none").attr("font-size", 10).attr("dy", "1em"), r.db.topAxisEnabled() || a.topAxis) {
      let w = ir(O).tickSize(-S + Y + a.gridLineStartPadding).tickFormat(ne(l));
      if (d !== null) {
        const c = d[1], u = d[2], o = r.db.getWeekday() || a.weekday;
        switch (u) {
          case "millisecond":
            w.ticks(Yt.every(c));
            break;
          case "second":
            w.ticks(vt.every(c));
            break;
          case "minute":
            w.ticks(Wt.every(c));
            break;
          case "hour":
            w.ticks(Ot.every(c));
            break;
          case "day":
            w.ticks(Tt.every(c));
            break;
          case "week":
            w.ticks(en[o].every(c));
            break;
          case "month":
            w.ticks(Nt.every(c));
            break;
        }
      }
      X.append("g").attr("class", "grid").attr("transform", "translate(" + x + ", " + Y + ")").call(w).selectAll("text").style("text-anchor", "middle").attr("fill", "#000").attr("stroke", "none").attr("font-size", 10);
    }
  }
  h(B, "makeGrid");
  function Q(x, Y) {
    let F = 0;
    const S = Object.keys(C).map((v) => [v, C[v]]);
    X.append("g").selectAll("text").data(S).enter().append(function(v) {
      const U = v[0].split(zn.lineBreakRegex), l = -(U.length - 1) / 2, m = _.createElementNS("http://www.w3.org/2000/svg", "text");
      m.setAttribute("dy", l + "em");
      for (const [T, d] of U.entries()) {
        const w = _.createElementNS("http://www.w3.org/2000/svg", "tspan");
        w.setAttribute("alignment-baseline", "central"), w.setAttribute("x", "10"), T > 0 && w.setAttribute("dy", "1em"), w.textContent = d, m.appendChild(w);
      }
      return m;
    }).attr("x", 10).attr("y", function(v, U) {
      if (U > 0)
        for (let l = 0; l < U; l++)
          return F += S[U - 1][1], v[1] * x / 2 + F * x + Y;
      else
        return v[1] * x / 2 + Y;
    }).attr("font-size", a.sectionFontSize).attr("class", function(v) {
      for (const [U, l] of E.entries())
        if (v[0] === l)
          return "sectionTitle sectionTitle" + U % a.numberSectionStyles;
      return "sectionTitle";
    });
  }
  h(Q, "vertLabels");
  function D(x, Y, F, S) {
    const v = r.db.getTodayMarker();
    if (v === "off")
      return;
    const U = X.append("g").attr("class", "today"), l = /* @__PURE__ */ new Date(), m = U.append("line");
    m.attr("x1", O(l) + x).attr("x2", O(l) + x).attr("y1", a.titleTopMargin).attr("y2", S - a.titleTopMargin).attr("class", "today"), v !== "" && m.attr("style", v.replace(/,/g, ";"));
  }
  h(D, "drawToday");
  function H(x) {
    const Y = {}, F = [];
    for (let S = 0, v = x.length; S < v; ++S)
      Object.prototype.hasOwnProperty.call(Y, x[S]) || (Y[x[S]] = !0, F.push(x[S]));
    return F;
  }
  h(H, "checkUnique");
}, "draw"), Si = {
  setConf: Ci,
  draw: _i
}, Fi = /* @__PURE__ */ h((t) => `
  .mermaid-main-font {
        font-family: ${t.fontFamily};
  }

  .exclude-range {
    fill: ${t.excludeBkgColor};
  }

  .section {
    stroke: none;
    opacity: 0.2;
  }

  .section0 {
    fill: ${t.sectionBkgColor};
  }

  .section2 {
    fill: ${t.sectionBkgColor2};
  }

  .section1,
  .section3 {
    fill: ${t.altSectionBkgColor};
    opacity: 0.2;
  }

  .sectionTitle0 {
    fill: ${t.titleColor};
  }

  .sectionTitle1 {
    fill: ${t.titleColor};
  }

  .sectionTitle2 {
    fill: ${t.titleColor};
  }

  .sectionTitle3 {
    fill: ${t.titleColor};
  }

  .sectionTitle {
    text-anchor: start;
    font-family: ${t.fontFamily};
  }


  /* Grid and axis */

  .grid .tick {
    stroke: ${t.gridColor};
    opacity: 0.8;
    shape-rendering: crispEdges;
  }

  .grid .tick text {
    font-family: ${t.fontFamily};
    fill: ${t.textColor};
  }

  .grid path {
    stroke-width: 0;
  }


  /* Today line */

  .today {
    fill: none;
    stroke: ${t.todayLineColor};
    stroke-width: 2px;
  }


  /* Task styling */

  /* Default task */

  .task {
    stroke-width: 2;
  }

  .taskText {
    text-anchor: middle;
    font-family: ${t.fontFamily};
  }

  .taskTextOutsideRight {
    fill: ${t.taskTextDarkColor};
    text-anchor: start;
    font-family: ${t.fontFamily};
  }

  .taskTextOutsideLeft {
    fill: ${t.taskTextDarkColor};
    text-anchor: end;
  }


  /* Special case clickable */

  .task.clickable {
    cursor: pointer;
  }

  .taskText.clickable {
    cursor: pointer;
    fill: ${t.taskTextClickableColor} !important;
    font-weight: bold;
  }

  .taskTextOutsideLeft.clickable {
    cursor: pointer;
    fill: ${t.taskTextClickableColor} !important;
    font-weight: bold;
  }

  .taskTextOutsideRight.clickable {
    cursor: pointer;
    fill: ${t.taskTextClickableColor} !important;
    font-weight: bold;
  }


  /* Specific task settings for the sections*/

  .taskText0,
  .taskText1,
  .taskText2,
  .taskText3 {
    fill: ${t.taskTextColor};
  }

  .task0,
  .task1,
  .task2,
  .task3 {
    fill: ${t.taskBkgColor};
    stroke: ${t.taskBorderColor};
  }

  .taskTextOutside0,
  .taskTextOutside2
  {
    fill: ${t.taskTextOutsideColor};
  }

  .taskTextOutside1,
  .taskTextOutside3 {
    fill: ${t.taskTextOutsideColor};
  }


  /* Active task */

  .active0,
  .active1,
  .active2,
  .active3 {
    fill: ${t.activeTaskBkgColor};
    stroke: ${t.activeTaskBorderColor};
  }

  .activeText0,
  .activeText1,
  .activeText2,
  .activeText3 {
    fill: ${t.taskTextDarkColor} !important;
  }


  /* Completed task */

  .done0,
  .done1,
  .done2,
  .done3 {
    stroke: ${t.doneTaskBorderColor};
    fill: ${t.doneTaskBkgColor};
    stroke-width: 2;
  }

  .doneText0,
  .doneText1,
  .doneText2,
  .doneText3 {
    fill: ${t.taskTextDarkColor} !important;
  }


  /* Tasks on the critical line */

  .crit0,
  .crit1,
  .crit2,
  .crit3 {
    stroke: ${t.critBorderColor};
    fill: ${t.critBkgColor};
    stroke-width: 2;
  }

  .activeCrit0,
  .activeCrit1,
  .activeCrit2,
  .activeCrit3 {
    stroke: ${t.critBorderColor};
    fill: ${t.activeTaskBkgColor};
    stroke-width: 2;
  }

  .doneCrit0,
  .doneCrit1,
  .doneCrit2,
  .doneCrit3 {
    stroke: ${t.critBorderColor};
    fill: ${t.doneTaskBkgColor};
    stroke-width: 2;
    cursor: pointer;
    shape-rendering: crispEdges;
  }

  .milestone {
    transform: rotate(45deg) scale(0.8,0.8);
  }

  .milestoneText {
    font-style: italic;
  }
  .doneCritText0,
  .doneCritText1,
  .doneCritText2,
  .doneCritText3 {
    fill: ${t.taskTextDarkColor} !important;
  }

  .vert {
    stroke: ${t.vertLineColor};
  }

  .vertText {
    font-size: 15px;
    text-anchor: middle;
    fill: ${t.vertLineColor} !important;
  }

  .activeCritText0,
  .activeCritText1,
  .activeCritText2,
  .activeCritText3 {
    fill: ${t.taskTextDarkColor} !important;
  }

  .titleText {
    text-anchor: middle;
    font-size: 18px;
    fill: ${t.titleColor || t.textColor};
    font-family: ${t.fontFamily};
  }
`, "getStyles"), Yi = Fi, Ii = {
  parser: za,
  db: Di,
  renderer: Si,
  styles: Yi
};
export {
  Ii as diagram
};
