var aI = Object.defineProperty;
var uI = (e, n, t) => n in e ? aI(e, n, { enumerable: !0, configurable: !0, writable: !0, value: t }) : e[n] = t;
var f = (e, n, t) => uI(e, typeof n != "symbol" ? n + "" : n, t);
import { createSingletonModel as Ms, createMapModel as lI } from "@networkoptix/crdt-sync/core";
const dI = Ms({
  room: "cloud-access-token",
  provider: {
    debug: !1
  }
}), VA = Ms({
  room: "cloud-account",
  provider: {
    debug: !1
  }
}), WA = Ms({
  room: "cloud-nx-config",
  provider: {
    debug: !1
  }
}), zA = lI({
  room: "cloud-systems",
  provider: {
    debug: !1
  }
}), GA = Ms({
  room: "cloud-uri",
  provider: {
    debug: !1
  }
});
var Hc = function(e, n) {
  return Hc = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function(t, r) {
    t.__proto__ = r;
  } || function(t, r) {
    for (var o in r) Object.prototype.hasOwnProperty.call(r, o) && (t[o] = r[o]);
  }, Hc(e, n);
};
function En(e, n) {
  if (typeof n != "function" && n !== null)
    throw new TypeError("Class extends value " + String(n) + " is not a constructor or null");
  Hc(e, n);
  function t() {
    this.constructor = e;
  }
  e.prototype = n === null ? Object.create(n) : (t.prototype = n.prototype, new t());
}
function fI(e, n, t, r) {
  function o(i) {
    return i instanceof t ? i : new t(function(s) {
      s(i);
    });
  }
  return new (t || (t = Promise))(function(i, s) {
    function c(l) {
      try {
        u(r.next(l));
      } catch (d) {
        s(d);
      }
    }
    function a(l) {
      try {
        u(r.throw(l));
      } catch (d) {
        s(d);
      }
    }
    function u(l) {
      l.done ? i(l.value) : o(l.value).then(c, a);
    }
    u((r = r.apply(e, n || [])).next());
  });
}
function Lf(e, n) {
  var t = { label: 0, sent: function() {
    if (i[0] & 1) throw i[1];
    return i[1];
  }, trys: [], ops: [] }, r, o, i, s = Object.create((typeof Iterator == "function" ? Iterator : Object).prototype);
  return s.next = c(0), s.throw = c(1), s.return = c(2), typeof Symbol == "function" && (s[Symbol.iterator] = function() {
    return this;
  }), s;
  function c(u) {
    return function(l) {
      return a([u, l]);
    };
  }
  function a(u) {
    if (r) throw new TypeError("Generator is already executing.");
    for (; s && (s = 0, u[0] && (t = 0)), t; ) try {
      if (r = 1, o && (i = u[0] & 2 ? o.return : u[0] ? o.throw || ((i = o.return) && i.call(o), 0) : o.next) && !(i = i.call(o, u[1])).done) return i;
      switch (o = 0, i && (u = [u[0] & 2, i.value]), u[0]) {
        case 0:
        case 1:
          i = u;
          break;
        case 4:
          return t.label++, { value: u[1], done: !1 };
        case 5:
          t.label++, o = u[1], u = [0];
          continue;
        case 7:
          u = t.ops.pop(), t.trys.pop();
          continue;
        default:
          if (i = t.trys, !(i = i.length > 0 && i[i.length - 1]) && (u[0] === 6 || u[0] === 2)) {
            t = 0;
            continue;
          }
          if (u[0] === 3 && (!i || u[1] > i[0] && u[1] < i[3])) {
            t.label = u[1];
            break;
          }
          if (u[0] === 6 && t.label < i[1]) {
            t.label = i[1], i = u;
            break;
          }
          if (i && t.label < i[2]) {
            t.label = i[2], t.ops.push(u);
            break;
          }
          i[2] && t.ops.pop(), t.trys.pop();
          continue;
      }
      u = n.call(e, t);
    } catch (l) {
      u = [6, l], o = 0;
    } finally {
      r = i = 0;
    }
    if (u[0] & 5) throw u[1];
    return { value: u[0] ? u[1] : void 0, done: !0 };
  }
}
function sr(e) {
  var n = typeof Symbol == "function" && Symbol.iterator, t = n && e[n], r = 0;
  if (t) return t.call(e);
  if (e && typeof e.length == "number") return {
    next: function() {
      return e && r >= e.length && (e = void 0), { value: e && e[r++], done: !e };
    }
  };
  throw new TypeError(n ? "Object is not iterable." : "Symbol.iterator is not defined.");
}
function cr(e, n) {
  var t = typeof Symbol == "function" && e[Symbol.iterator];
  if (!t) return e;
  var r = t.call(e), o, i = [], s;
  try {
    for (; (n === void 0 || n-- > 0) && !(o = r.next()).done; ) i.push(o.value);
  } catch (c) {
    s = { error: c };
  } finally {
    try {
      o && !o.done && (t = r.return) && t.call(r);
    } finally {
      if (s) throw s.error;
    }
  }
  return i;
}
function uo(e, n, t) {
  if (t || arguments.length === 2) for (var r = 0, o = n.length, i; r < o; r++)
    (i || !(r in n)) && (i || (i = Array.prototype.slice.call(n, 0, r)), i[r] = n[r]);
  return e.concat(i || Array.prototype.slice.call(n));
}
function nr(e) {
  return this instanceof nr ? (this.v = e, this) : new nr(e);
}
function hI(e, n, t) {
  if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined.");
  var r = t.apply(e, n || []), o, i = [];
  return o = Object.create((typeof AsyncIterator == "function" ? AsyncIterator : Object).prototype), c("next"), c("throw"), c("return", s), o[Symbol.asyncIterator] = function() {
    return this;
  }, o;
  function s(p) {
    return function(g) {
      return Promise.resolve(g).then(p, d);
    };
  }
  function c(p, g) {
    r[p] && (o[p] = function(m) {
      return new Promise(function(M, D) {
        i.push([p, m, M, D]) > 1 || a(p, m);
      });
    }, g && (o[p] = g(o[p])));
  }
  function a(p, g) {
    try {
      u(r[p](g));
    } catch (m) {
      h(i[0][3], m);
    }
  }
  function u(p) {
    p.value instanceof nr ? Promise.resolve(p.value.v).then(l, d) : h(i[0][2], p);
  }
  function l(p) {
    a("next", p);
  }
  function d(p) {
    a("throw", p);
  }
  function h(p, g) {
    p(g), i.shift(), i.length && a(i[0][0], i[0][1]);
  }
}
function pI(e) {
  if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined.");
  var n = e[Symbol.asyncIterator], t;
  return n ? n.call(e) : (e = typeof sr == "function" ? sr(e) : e[Symbol.iterator](), t = {}, r("next"), r("throw"), r("return"), t[Symbol.asyncIterator] = function() {
    return this;
  }, t);
  function r(i) {
    t[i] = e[i] && function(s) {
      return new Promise(function(c, a) {
        s = e[i](s), o(c, a, s.done, s.value);
      });
    };
  }
  function o(i, s, c, a) {
    Promise.resolve(a).then(function(u) {
      i({ value: u, done: c });
    }, s);
  }
}
function Z(e) {
  return typeof e == "function";
}
function Ja(e) {
  var n = function(r) {
    Error.call(r), r.stack = new Error().stack;
  }, t = e(n);
  return t.prototype = Object.create(Error.prototype), t.prototype.constructor = t, t;
}
var ac = Ja(function(e) {
  return function(t) {
    e(this), this.message = t ? t.length + ` errors occurred during unsubscription:
` + t.map(function(r, o) {
      return o + 1 + ") " + r.toString();
    }).join(`
  `) : "", this.name = "UnsubscriptionError", this.errors = t;
  };
});
function Ri(e, n) {
  if (e) {
    var t = e.indexOf(n);
    0 <= t && e.splice(t, 1);
  }
}
var Gn = (function() {
  function e(n) {
    this.initialTeardown = n, this.closed = !1, this._parentage = null, this._finalizers = null;
  }
  return e.prototype.unsubscribe = function() {
    var n, t, r, o, i;
    if (!this.closed) {
      this.closed = !0;
      var s = this._parentage;
      if (s)
        if (this._parentage = null, Array.isArray(s))
          try {
            for (var c = sr(s), a = c.next(); !a.done; a = c.next()) {
              var u = a.value;
              u.remove(this);
            }
          } catch (m) {
            n = { error: m };
          } finally {
            try {
              a && !a.done && (t = c.return) && t.call(c);
            } finally {
              if (n) throw n.error;
            }
          }
        else
          s.remove(this);
      var l = this.initialTeardown;
      if (Z(l))
        try {
          l();
        } catch (m) {
          i = m instanceof ac ? m.errors : [m];
        }
      var d = this._finalizers;
      if (d) {
        this._finalizers = null;
        try {
          for (var h = sr(d), p = h.next(); !p.done; p = h.next()) {
            var g = p.value;
            try {
              Ll(g);
            } catch (m) {
              i = i ?? [], m instanceof ac ? i = uo(uo([], cr(i)), cr(m.errors)) : i.push(m);
            }
          }
        } catch (m) {
          r = { error: m };
        } finally {
          try {
            p && !p.done && (o = h.return) && o.call(h);
          } finally {
            if (r) throw r.error;
          }
        }
      }
      if (i)
        throw new ac(i);
    }
  }, e.prototype.add = function(n) {
    var t;
    if (n && n !== this)
      if (this.closed)
        Ll(n);
      else {
        if (n instanceof e) {
          if (n.closed || n._hasParent(this))
            return;
          n._addParent(this);
        }
        (this._finalizers = (t = this._finalizers) !== null && t !== void 0 ? t : []).push(n);
      }
  }, e.prototype._hasParent = function(n) {
    var t = this._parentage;
    return t === n || Array.isArray(t) && t.includes(n);
  }, e.prototype._addParent = function(n) {
    var t = this._parentage;
    this._parentage = Array.isArray(t) ? (t.push(n), t) : t ? [t, n] : n;
  }, e.prototype._removeParent = function(n) {
    var t = this._parentage;
    t === n ? this._parentage = null : Array.isArray(t) && Ri(t, n);
  }, e.prototype.remove = function(n) {
    var t = this._finalizers;
    t && Ri(t, n), n instanceof e && n._removeParent(this);
  }, e.EMPTY = (function() {
    var n = new e();
    return n.closed = !0, n;
  })(), e;
})(), Ff = Gn.EMPTY;
function jf(e) {
  return e instanceof Gn || e && "closed" in e && Z(e.remove) && Z(e.add) && Z(e.unsubscribe);
}
function Ll(e) {
  Z(e) ? e() : e.unsubscribe();
}
var gI = {
  Promise: void 0
}, mI = {
  setTimeout: function(e, n) {
    for (var t = [], r = 2; r < arguments.length; r++)
      t[r - 2] = arguments[r];
    return setTimeout.apply(void 0, uo([e, n], cr(t)));
  },
  clearTimeout: function(e) {
    return clearTimeout(e);
  },
  delegate: void 0
};
function Hf(e) {
  mI.setTimeout(function() {
    throw e;
  });
}
function Fl() {
}
function mi(e) {
  e();
}
var Xa = (function(e) {
  En(n, e);
  function n(t) {
    var r = e.call(this) || this;
    return r.isStopped = !1, t ? (r.destination = t, jf(t) && t.add(r)) : r.destination = II, r;
  }
  return n.create = function(t, r, o) {
    return new $c(t, r, o);
  }, n.prototype.next = function(t) {
    this.isStopped || this._next(t);
  }, n.prototype.error = function(t) {
    this.isStopped || (this.isStopped = !0, this._error(t));
  }, n.prototype.complete = function() {
    this.isStopped || (this.isStopped = !0, this._complete());
  }, n.prototype.unsubscribe = function() {
    this.closed || (this.isStopped = !0, e.prototype.unsubscribe.call(this), this.destination = null);
  }, n.prototype._next = function(t) {
    this.destination.next(t);
  }, n.prototype._error = function(t) {
    try {
      this.destination.error(t);
    } finally {
      this.unsubscribe();
    }
  }, n.prototype._complete = function() {
    try {
      this.destination.complete();
    } finally {
      this.unsubscribe();
    }
  }, n;
})(Gn), vI = (function() {
  function e(n) {
    this.partialObserver = n;
  }
  return e.prototype.next = function(n) {
    var t = this.partialObserver;
    if (t.next)
      try {
        t.next(n);
      } catch (r) {
        ii(r);
      }
  }, e.prototype.error = function(n) {
    var t = this.partialObserver;
    if (t.error)
      try {
        t.error(n);
      } catch (r) {
        ii(r);
      }
    else
      ii(n);
  }, e.prototype.complete = function() {
    var n = this.partialObserver;
    if (n.complete)
      try {
        n.complete();
      } catch (t) {
        ii(t);
      }
  }, e;
})(), $c = (function(e) {
  En(n, e);
  function n(t, r, o) {
    var i = e.call(this) || this, s;
    return Z(t) || !t ? s = {
      next: t ?? void 0,
      error: r ?? void 0,
      complete: o ?? void 0
    } : s = t, i.destination = new vI(s), i;
  }
  return n;
})(Xa);
function ii(e) {
  Hf(e);
}
function yI(e) {
  throw e;
}
var II = {
  closed: !0,
  next: Fl,
  error: yI,
  complete: Fl
}, Ka = (function() {
  return typeof Symbol == "function" && Symbol.observable || "@@observable";
})();
function MI(e) {
  return e;
}
function DI(e) {
  return e.length === 0 ? MI : e.length === 1 ? e[0] : function(t) {
    return e.reduce(function(r, o) {
      return o(r);
    }, t);
  };
}
var De = (function() {
  function e(n) {
    n && (this._subscribe = n);
  }
  return e.prototype.lift = function(n) {
    var t = new e();
    return t.source = this, t.operator = n, t;
  }, e.prototype.subscribe = function(n, t, r) {
    var o = this, i = bI(n) ? n : new $c(n, t, r);
    return mi(function() {
      var s = o, c = s.operator, a = s.source;
      i.add(c ? c.call(i, a) : a ? o._subscribe(i) : o._trySubscribe(i));
    }), i;
  }, e.prototype._trySubscribe = function(n) {
    try {
      return this._subscribe(n);
    } catch (t) {
      n.error(t);
    }
  }, e.prototype.forEach = function(n, t) {
    var r = this;
    return t = jl(t), new t(function(o, i) {
      var s = new $c({
        next: function(c) {
          try {
            n(c);
          } catch (a) {
            i(a), s.unsubscribe();
          }
        },
        error: i,
        complete: o
      });
      r.subscribe(s);
    });
  }, e.prototype._subscribe = function(n) {
    var t;
    return (t = this.source) === null || t === void 0 ? void 0 : t.subscribe(n);
  }, e.prototype[Ka] = function() {
    return this;
  }, e.prototype.pipe = function() {
    for (var n = [], t = 0; t < arguments.length; t++)
      n[t] = arguments[t];
    return DI(n)(this);
  }, e.prototype.toPromise = function(n) {
    var t = this;
    return n = jl(n), new n(function(r, o) {
      var i;
      t.subscribe(function(s) {
        return i = s;
      }, function(s) {
        return o(s);
      }, function() {
        return r(i);
      });
    });
  }, e.create = function(n) {
    return new e(n);
  }, e;
})();
function jl(e) {
  var n;
  return (n = e ?? gI.Promise) !== null && n !== void 0 ? n : Promise;
}
function EI(e) {
  return e && Z(e.next) && Z(e.error) && Z(e.complete);
}
function bI(e) {
  return e && e instanceof Xa || EI(e) && jf(e);
}
function _I(e) {
  return Z(e == null ? void 0 : e.lift);
}
function qn(e) {
  return function(n) {
    if (_I(n))
      return n.lift(function(t) {
        try {
          return e(t, this);
        } catch (r) {
          this.error(r);
        }
      });
    throw new TypeError("Unable to lift unknown Observable type");
  };
}
function jn(e, n, t, r, o) {
  return new CI(e, n, t, r, o);
}
var CI = (function(e) {
  En(n, e);
  function n(t, r, o, i, s, c) {
    var a = e.call(this, t) || this;
    return a.onFinalize = s, a.shouldUnsubscribe = c, a._next = r ? function(u) {
      try {
        r(u);
      } catch (l) {
        t.error(l);
      }
    } : e.prototype._next, a._error = i ? function(u) {
      try {
        i(u);
      } catch (l) {
        t.error(l);
      } finally {
        this.unsubscribe();
      }
    } : e.prototype._error, a._complete = o ? function() {
      try {
        o();
      } catch (u) {
        t.error(u);
      } finally {
        this.unsubscribe();
      }
    } : e.prototype._complete, a;
  }
  return n.prototype.unsubscribe = function() {
    var t;
    if (!this.shouldUnsubscribe || this.shouldUnsubscribe()) {
      var r = this.closed;
      e.prototype.unsubscribe.call(this), !r && ((t = this.onFinalize) === null || t === void 0 || t.call(this));
    }
  }, n;
})(Xa), wI = Ja(function(e) {
  return function() {
    e(this), this.name = "ObjectUnsubscribedError", this.message = "object unsubscribed";
  };
}), Ao = (function(e) {
  En(n, e);
  function n() {
    var t = e.call(this) || this;
    return t.closed = !1, t.currentObservers = null, t.observers = [], t.isStopped = !1, t.hasError = !1, t.thrownError = null, t;
  }
  return n.prototype.lift = function(t) {
    var r = new Hl(this, this);
    return r.operator = t, r;
  }, n.prototype._throwIfClosed = function() {
    if (this.closed)
      throw new wI();
  }, n.prototype.next = function(t) {
    var r = this;
    mi(function() {
      var o, i;
      if (r._throwIfClosed(), !r.isStopped) {
        r.currentObservers || (r.currentObservers = Array.from(r.observers));
        try {
          for (var s = sr(r.currentObservers), c = s.next(); !c.done; c = s.next()) {
            var a = c.value;
            a.next(t);
          }
        } catch (u) {
          o = { error: u };
        } finally {
          try {
            c && !c.done && (i = s.return) && i.call(s);
          } finally {
            if (o) throw o.error;
          }
        }
      }
    });
  }, n.prototype.error = function(t) {
    var r = this;
    mi(function() {
      if (r._throwIfClosed(), !r.isStopped) {
        r.hasError = r.isStopped = !0, r.thrownError = t;
        for (var o = r.observers; o.length; )
          o.shift().error(t);
      }
    });
  }, n.prototype.complete = function() {
    var t = this;
    mi(function() {
      if (t._throwIfClosed(), !t.isStopped) {
        t.isStopped = !0;
        for (var r = t.observers; r.length; )
          r.shift().complete();
      }
    });
  }, n.prototype.unsubscribe = function() {
    this.isStopped = this.closed = !0, this.observers = this.currentObservers = null;
  }, Object.defineProperty(n.prototype, "observed", {
    get: function() {
      var t;
      return ((t = this.observers) === null || t === void 0 ? void 0 : t.length) > 0;
    },
    enumerable: !1,
    configurable: !0
  }), n.prototype._trySubscribe = function(t) {
    return this._throwIfClosed(), e.prototype._trySubscribe.call(this, t);
  }, n.prototype._subscribe = function(t) {
    return this._throwIfClosed(), this._checkFinalizedStatuses(t), this._innerSubscribe(t);
  }, n.prototype._innerSubscribe = function(t) {
    var r = this, o = this, i = o.hasError, s = o.isStopped, c = o.observers;
    return i || s ? Ff : (this.currentObservers = null, c.push(t), new Gn(function() {
      r.currentObservers = null, Ri(c, t);
    }));
  }, n.prototype._checkFinalizedStatuses = function(t) {
    var r = this, o = r.hasError, i = r.thrownError, s = r.isStopped;
    o ? t.error(i) : s && t.complete();
  }, n.prototype.asObservable = function() {
    var t = new De();
    return t.source = this, t;
  }, n.create = function(t, r) {
    return new Hl(t, r);
  }, n;
})(De), Hl = (function(e) {
  En(n, e);
  function n(t, r) {
    var o = e.call(this) || this;
    return o.destination = t, o.source = r, o;
  }
  return n.prototype.next = function(t) {
    var r, o;
    (o = (r = this.destination) === null || r === void 0 ? void 0 : r.next) === null || o === void 0 || o.call(r, t);
  }, n.prototype.error = function(t) {
    var r, o;
    (o = (r = this.destination) === null || r === void 0 ? void 0 : r.error) === null || o === void 0 || o.call(r, t);
  }, n.prototype.complete = function() {
    var t, r;
    (r = (t = this.destination) === null || t === void 0 ? void 0 : t.complete) === null || r === void 0 || r.call(t);
  }, n.prototype._subscribe = function(t) {
    var r, o;
    return (o = (r = this.source) === null || r === void 0 ? void 0 : r.subscribe(t)) !== null && o !== void 0 ? o : Ff;
  }, n;
})(Ao), TI = (function(e) {
  En(n, e);
  function n(t) {
    var r = e.call(this) || this;
    return r._value = t, r;
  }
  return Object.defineProperty(n.prototype, "value", {
    get: function() {
      return this.getValue();
    },
    enumerable: !1,
    configurable: !0
  }), n.prototype._subscribe = function(t) {
    var r = e.prototype._subscribe.call(this, t);
    return !r.closed && t.next(this._value), r;
  }, n.prototype.getValue = function() {
    var t = this, r = t.hasError, o = t.thrownError, i = t._value;
    if (r)
      throw o;
    return this._throwIfClosed(), i;
  }, n.prototype.next = function(t) {
    e.prototype.next.call(this, this._value = t);
  }, n;
})(Ao), SI = {
  now: function() {
    return Date.now();
  }
}, kI = (function(e) {
  En(n, e);
  function n(t, r) {
    return e.call(this) || this;
  }
  return n.prototype.schedule = function(t, r) {
    return this;
  }, n;
})(Gn), $l = {
  setInterval: function(e, n) {
    for (var t = [], r = 2; r < arguments.length; r++)
      t[r - 2] = arguments[r];
    return setInterval.apply(void 0, uo([e, n], cr(t)));
  },
  clearInterval: function(e) {
    return clearInterval(e);
  },
  delegate: void 0
}, xI = (function(e) {
  En(n, e);
  function n(t, r) {
    var o = e.call(this, t, r) || this;
    return o.scheduler = t, o.work = r, o.pending = !1, o;
  }
  return n.prototype.schedule = function(t, r) {
    var o;
    if (r === void 0 && (r = 0), this.closed)
      return this;
    this.state = t;
    var i = this.id, s = this.scheduler;
    return i != null && (this.id = this.recycleAsyncId(s, i, r)), this.pending = !0, this.delay = r, this.id = (o = this.id) !== null && o !== void 0 ? o : this.requestAsyncId(s, this.id, r), this;
  }, n.prototype.requestAsyncId = function(t, r, o) {
    return o === void 0 && (o = 0), $l.setInterval(t.flush.bind(t, this), o);
  }, n.prototype.recycleAsyncId = function(t, r, o) {
    if (o === void 0 && (o = 0), o != null && this.delay === o && this.pending === !1)
      return r;
    r != null && $l.clearInterval(r);
  }, n.prototype.execute = function(t, r) {
    if (this.closed)
      return new Error("executing a cancelled action");
    this.pending = !1;
    var o = this._execute(t, r);
    if (o)
      return o;
    this.pending === !1 && this.id != null && (this.id = this.recycleAsyncId(this.scheduler, this.id, null));
  }, n.prototype._execute = function(t, r) {
    var o = !1, i;
    try {
      this.work(t);
    } catch (s) {
      o = !0, i = s || new Error("Scheduled action threw falsy error");
    }
    if (o)
      return this.unsubscribe(), i;
  }, n.prototype.unsubscribe = function() {
    if (!this.closed) {
      var t = this, r = t.id, o = t.scheduler, i = o.actions;
      this.work = this.state = this.scheduler = null, this.pending = !1, Ri(i, this), r != null && (this.id = this.recycleAsyncId(o, r, null)), this.delay = null, e.prototype.unsubscribe.call(this);
    }
  }, n;
})(kI), Bl = (function() {
  function e(n, t) {
    t === void 0 && (t = e.now), this.schedulerActionCtor = n, this.now = t;
  }
  return e.prototype.schedule = function(n, t, r) {
    return t === void 0 && (t = 0), new this.schedulerActionCtor(this, n).schedule(r, t);
  }, e.now = SI.now, e;
})(), AI = (function(e) {
  En(n, e);
  function n(t, r) {
    r === void 0 && (r = Bl.now);
    var o = e.call(this, t, r) || this;
    return o.actions = [], o._active = !1, o;
  }
  return n.prototype.flush = function(t) {
    var r = this.actions;
    if (this._active) {
      r.push(t);
      return;
    }
    var o;
    this._active = !0;
    do
      if (o = t.execute(t.state, t.delay))
        break;
    while (t = r.shift());
    if (this._active = !1, o) {
      for (; t = r.shift(); )
        t.unsubscribe();
      throw o;
    }
  }, n;
})(Bl), OI = new AI(xI), RI = new De(function(e) {
  return e.complete();
});
function PI(e) {
  return e && Z(e.schedule);
}
function NI(e) {
  return e[e.length - 1];
}
function LI(e) {
  return PI(NI(e)) ? e.pop() : void 0;
}
var eu = (function(e) {
  return e && typeof e.length == "number" && typeof e != "function";
});
function $f(e) {
  return Z(e == null ? void 0 : e.then);
}
function Bf(e) {
  return Z(e[Ka]);
}
function Uf(e) {
  return Symbol.asyncIterator && Z(e == null ? void 0 : e[Symbol.asyncIterator]);
}
function Vf(e) {
  return new TypeError("You provided " + (e !== null && typeof e == "object" ? "an invalid object" : "'" + e + "'") + " where a stream was expected. You can provide an Observable, Promise, ReadableStream, Array, AsyncIterable, or Iterable.");
}
function FI() {
  return typeof Symbol != "function" || !Symbol.iterator ? "@@iterator" : Symbol.iterator;
}
var Wf = FI();
function zf(e) {
  return Z(e == null ? void 0 : e[Wf]);
}
function Gf(e) {
  return hI(this, arguments, function() {
    var t, r, o, i;
    return Lf(this, function(s) {
      switch (s.label) {
        case 0:
          t = e.getReader(), s.label = 1;
        case 1:
          s.trys.push([1, , 9, 10]), s.label = 2;
        case 2:
          return [4, nr(t.read())];
        case 3:
          return r = s.sent(), o = r.value, i = r.done, i ? [4, nr(void 0)] : [3, 5];
        case 4:
          return [2, s.sent()];
        case 5:
          return [4, nr(o)];
        case 6:
          return [4, s.sent()];
        case 7:
          return s.sent(), [3, 2];
        case 8:
          return [3, 10];
        case 9:
          return t.releaseLock(), [7];
        case 10:
          return [2];
      }
    });
  });
}
function qf(e) {
  return Z(e == null ? void 0 : e.getReader);
}
function bn(e) {
  if (e instanceof De)
    return e;
  if (e != null) {
    if (Bf(e))
      return jI(e);
    if (eu(e))
      return HI(e);
    if ($f(e))
      return $I(e);
    if (Uf(e))
      return Qf(e);
    if (zf(e))
      return BI(e);
    if (qf(e))
      return UI(e);
  }
  throw Vf(e);
}
function jI(e) {
  return new De(function(n) {
    var t = e[Ka]();
    if (Z(t.subscribe))
      return t.subscribe(n);
    throw new TypeError("Provided object does not correctly implement Symbol.observable");
  });
}
function HI(e) {
  return new De(function(n) {
    for (var t = 0; t < e.length && !n.closed; t++)
      n.next(e[t]);
    n.complete();
  });
}
function $I(e) {
  return new De(function(n) {
    e.then(function(t) {
      n.closed || (n.next(t), n.complete());
    }, function(t) {
      return n.error(t);
    }).then(null, Hf);
  });
}
function BI(e) {
  return new De(function(n) {
    var t, r;
    try {
      for (var o = sr(e), i = o.next(); !i.done; i = o.next()) {
        var s = i.value;
        if (n.next(s), n.closed)
          return;
      }
    } catch (c) {
      t = { error: c };
    } finally {
      try {
        i && !i.done && (r = o.return) && r.call(o);
      } finally {
        if (t) throw t.error;
      }
    }
    n.complete();
  });
}
function Qf(e) {
  return new De(function(n) {
    VI(e, n).catch(function(t) {
      return n.error(t);
    });
  });
}
function UI(e) {
  return Qf(Gf(e));
}
function VI(e, n) {
  var t, r, o, i;
  return fI(this, void 0, void 0, function() {
    var s, c;
    return Lf(this, function(a) {
      switch (a.label) {
        case 0:
          a.trys.push([0, 5, 6, 11]), t = pI(e), a.label = 1;
        case 1:
          return [4, t.next()];
        case 2:
          if (r = a.sent(), !!r.done) return [3, 4];
          if (s = r.value, n.next(s), n.closed)
            return [2];
          a.label = 3;
        case 3:
          return [3, 1];
        case 4:
          return [3, 11];
        case 5:
          return c = a.sent(), o = { error: c }, [3, 11];
        case 6:
          return a.trys.push([6, , 9, 10]), r && !r.done && (i = t.return) ? [4, i.call(t)] : [3, 8];
        case 7:
          a.sent(), a.label = 8;
        case 8:
          return [3, 10];
        case 9:
          if (o) throw o.error;
          return [7];
        case 10:
          return [7];
        case 11:
          return n.complete(), [2];
      }
    });
  });
}
function Pn(e, n, t, r, o) {
  r === void 0 && (r = 0), o === void 0 && (o = !1);
  var i = n.schedule(function() {
    t(), o ? e.add(this.schedule(null, r)) : this.unsubscribe();
  }, r);
  if (e.add(i), !o)
    return i;
}
function Zf(e, n) {
  return n === void 0 && (n = 0), qn(function(t, r) {
    t.subscribe(jn(r, function(o) {
      return Pn(r, e, function() {
        return r.next(o);
      }, n);
    }, function() {
      return Pn(r, e, function() {
        return r.complete();
      }, n);
    }, function(o) {
      return Pn(r, e, function() {
        return r.error(o);
      }, n);
    }));
  });
}
function Yf(e, n) {
  return n === void 0 && (n = 0), qn(function(t, r) {
    r.add(e.schedule(function() {
      return t.subscribe(r);
    }, n));
  });
}
function WI(e, n) {
  return bn(e).pipe(Yf(n), Zf(n));
}
function zI(e, n) {
  return bn(e).pipe(Yf(n), Zf(n));
}
function GI(e, n) {
  return new De(function(t) {
    var r = 0;
    return n.schedule(function() {
      r === e.length ? t.complete() : (t.next(e[r++]), t.closed || this.schedule());
    });
  });
}
function qI(e, n) {
  return new De(function(t) {
    var r;
    return Pn(t, n, function() {
      r = e[Wf](), Pn(t, n, function() {
        var o, i, s;
        try {
          o = r.next(), i = o.value, s = o.done;
        } catch (c) {
          t.error(c);
          return;
        }
        s ? t.complete() : t.next(i);
      }, 0, !0);
    }), function() {
      return Z(r == null ? void 0 : r.return) && r.return();
    };
  });
}
function Jf(e, n) {
  if (!e)
    throw new Error("Iterable cannot be null");
  return new De(function(t) {
    Pn(t, n, function() {
      var r = e[Symbol.asyncIterator]();
      Pn(t, n, function() {
        r.next().then(function(o) {
          o.done ? t.complete() : t.next(o.value);
        });
      }, 0, !0);
    });
  });
}
function QI(e, n) {
  return Jf(Gf(e), n);
}
function ZI(e, n) {
  if (e != null) {
    if (Bf(e))
      return WI(e, n);
    if (eu(e))
      return GI(e, n);
    if ($f(e))
      return zI(e, n);
    if (Uf(e))
      return Jf(e, n);
    if (zf(e))
      return qI(e, n);
    if (qf(e))
      return QI(e, n);
  }
  throw Vf(e);
}
function YI(e, n) {
  return n ? ZI(e, n) : bn(e);
}
function JI() {
  for (var e = [], n = 0; n < arguments.length; n++)
    e[n] = arguments[n];
  var t = LI(e);
  return YI(e, t);
}
function XI(e, n) {
  var t = Z(e) ? e : function() {
    return e;
  }, r = function(o) {
    return o.error(t());
  };
  return new De(r);
}
function KI(e) {
  return e instanceof Date && !isNaN(e);
}
var Xf = Ja(function(e) {
  return function(t) {
    t === void 0 && (t = null), e(this), this.message = "Timeout has occurred", this.name = "TimeoutError", this.info = t;
  };
});
function eM(e, n) {
  var t = KI(e) ? { first: e } : { each: e }, r = t.first, o = t.each, i = t.with, s = i === void 0 ? nM : i, c = t.scheduler, a = c === void 0 ? OI : c, u = t.meta, l = u === void 0 ? null : u;
  if (r == null && o == null)
    throw new TypeError("No timeout provided.");
  return qn(function(d, h) {
    var p, g, m = null, M = 0, D = function(v) {
      g = Pn(h, a, function() {
        try {
          p.unsubscribe(), bn(s({
            meta: l,
            lastValue: m,
            seen: M
          })).subscribe(h);
        } catch (j) {
          h.error(j);
        }
      }, v);
    };
    p = d.subscribe(jn(h, function(v) {
      g == null || g.unsubscribe(), M++, h.next(m = v), o > 0 && D(o);
    }, void 0, void 0, function() {
      g != null && g.closed || g == null || g.unsubscribe(), m = null;
    })), !M && D(r != null ? typeof r == "number" ? r : +r - a.now() : o);
  });
}
function nM(e) {
  throw new Xf(e);
}
function lo(e, n) {
  return qn(function(t, r) {
    var o = 0;
    t.subscribe(jn(r, function(i) {
      r.next(e.call(n, i, o++));
    }));
  });
}
var tM = Array.isArray;
function rM(e, n) {
  return tM(n) ? e.apply(void 0, uo([], cr(n))) : e(n);
}
function oM(e) {
  return lo(function(n) {
    return rM(e, n);
  });
}
function iM(e, n, t, r, o, i, s, c) {
  var a = [], u = 0, l = 0, d = !1, h = function() {
    d && !a.length && !u && n.complete();
  }, p = function(m) {
    return u < r ? g(m) : a.push(m);
  }, g = function(m) {
    u++;
    var M = !1;
    bn(t(m, l++)).subscribe(jn(n, function(D) {
      n.next(D);
    }, function() {
      M = !0;
    }, void 0, function() {
      if (M)
        try {
          u--;
          for (var D = function() {
            var v = a.shift();
            s || g(v);
          }; a.length && u < r; )
            D();
          h();
        } catch (v) {
          n.error(v);
        }
    }));
  };
  return e.subscribe(jn(n, p, function() {
    d = !0, h();
  })), function() {
  };
}
function Kf(e, n, t) {
  return t === void 0 && (t = 1 / 0), Z(n) ? Kf(function(r, o) {
    return lo(function(i, s) {
      return n(r, i, o, s);
    })(bn(e(r, o)));
  }, t) : (typeof n == "number" && (t = n), qn(function(r, o) {
    return iM(r, o, e, t);
  }));
}
function sM(e) {
  return new De(function(n) {
    bn(e()).subscribe(n);
  });
}
var cM = ["addListener", "removeListener"], aM = ["addEventListener", "removeEventListener"], uM = ["on", "off"];
function Bc(e, n, t, r) {
  if (Z(t) && (r = t, t = void 0), r)
    return Bc(e, n, t).pipe(oM(r));
  var o = cr(fM(e) ? aM.map(function(c) {
    return function(a) {
      return e[c](n, a, t);
    };
  }) : lM(e) ? cM.map(Ul(e, n)) : dM(e) ? uM.map(Ul(e, n)) : [], 2), i = o[0], s = o[1];
  if (!i && eu(e))
    return Kf(function(c) {
      return Bc(c, n, t);
    })(bn(e));
  if (!i)
    throw new TypeError("Invalid event target");
  return new De(function(c) {
    var a = function() {
      for (var u = [], l = 0; l < arguments.length; l++)
        u[l] = arguments[l];
      return c.next(1 < u.length ? u : u[0]);
    };
    return i(a), function() {
      return s(a);
    };
  });
}
function Ul(e, n) {
  return function(t) {
    return function(r) {
      return e[t](n, r);
    };
  };
}
function lM(e) {
  return Z(e.addListener) && Z(e.removeListener);
}
function dM(e) {
  return Z(e.on) && Z(e.off);
}
function fM(e) {
  return Z(e.addEventListener) && Z(e.removeEventListener);
}
function hM(e, n) {
  return qn(function(t, r) {
    var o = 0;
    t.subscribe(jn(r, function(i) {
      return e.call(n, i, o++) && r.next(i);
    }));
  });
}
function eh(e) {
  return qn(function(n, t) {
    var r = null, o = !1, i;
    r = n.subscribe(jn(t, void 0, void 0, function(s) {
      i = bn(e(s, eh(e)(n))), r ? (r.unsubscribe(), r = null, i.subscribe(t)) : o = !0;
    })), o && (r.unsubscribe(), r = null, i.subscribe(t));
  });
}
function pM(e) {
  return e <= 0 ? function() {
    return RI;
  } : qn(function(n, t) {
    var r = 0;
    n.subscribe(jn(t, function(o) {
      ++r <= e && (t.next(o), e <= r && t.complete());
    }));
  });
}
/**
 * @license Angular v20.1.6
 * (c) 2010-2025 Google LLC. https://angular.io/
 * License: MIT
 */
let Uc;
function nh() {
  return Uc;
}
function An(e) {
  const n = Uc;
  return Uc = e, n;
}
const gM = Symbol("NotFound");
function nu(e) {
  return e === gM || (e == null ? void 0 : e.name) === "ɵNotFound";
}
/**
 * @license Angular v20.1.6
 * (c) 2010-2025 Google LLC. https://angular.io/
 * License: MIT
 */
function th(e, n) {
  return Object.is(e, n);
}
let ge = null, vi = !1, tu = 1;
const un = /* @__PURE__ */ Symbol("SIGNAL");
function N(e) {
  const n = ge;
  return ge = e, n;
}
function Ds() {
  return ge;
}
const Es = {
  version: 0,
  lastCleanEpoch: 0,
  dirty: !1,
  producers: void 0,
  producersTail: void 0,
  consumers: void 0,
  consumersTail: void 0,
  recomputing: !1,
  consumerAllowSignalWrites: !1,
  consumerIsAlwaysLive: !1,
  kind: "unknown",
  producerMustRecompute: () => !1,
  producerRecomputeValue: () => {
  },
  consumerMarkedDirty: () => {
  },
  consumerOnSignalRead: () => {
  }
};
function rh(e) {
  if (vi)
    throw new Error(typeof ngDevMode < "u" && ngDevMode ? "Assertion error: signal read during notification phase" : "");
  if (ge === null)
    return;
  ge.consumerOnSignalRead(e);
  const n = ge.producersTail;
  if (n !== void 0 && n.producer === e)
    return;
  let t;
  const r = ge.recomputing;
  if (r && (t = n !== void 0 ? n.nextProducer : ge.producers, t !== void 0 && t.producer === e)) {
    ge.producersTail = t, t.lastReadVersion = e.version;
    return;
  }
  const o = e.consumersTail;
  if (o !== void 0 && o.consumer === ge && // However, we have to make sure that the link we've discovered isn't from a node that is incrementally rebuilding its producer list
  (!r || yM(o, ge)))
    return;
  const i = mr(ge), s = {
    producer: e,
    consumer: ge,
    // instead of eagerly destroying the previous link, we delay until we've finished recomputing
    // the producers list, so that we can destroy all of the old links at once.
    nextProducer: t,
    prevConsumer: o,
    lastReadVersion: e.version,
    nextConsumer: void 0
  };
  ge.producersTail = s, n !== void 0 ? n.nextProducer = s : ge.producers = s, i && lh(e, s);
}
function mM() {
  tu++;
}
function oh(e) {
  if (!(mr(e) && !e.dirty) && !(!e.dirty && e.lastCleanEpoch === tu)) {
    if (!e.producerMustRecompute(e) && !ah(e)) {
      Vl(e);
      return;
    }
    e.producerRecomputeValue(e), Vl(e);
  }
}
function ih(e) {
  if (e.consumers === void 0)
    return;
  const n = vi;
  vi = !0;
  try {
    for (let t = e.consumers; t !== void 0; t = t.nextConsumer) {
      const r = t.consumer;
      r.dirty || vM(r);
    }
  } finally {
    vi = n;
  }
}
function sh() {
  return (ge == null ? void 0 : ge.consumerAllowSignalWrites) !== !1;
}
function vM(e) {
  var n;
  e.dirty = !0, ih(e), (n = e.consumerMarkedDirty) == null || n.call(e, e);
}
function Vl(e) {
  e.dirty = !1, e.lastCleanEpoch = tu;
}
function Vc(e) {
  return e && (e.producersTail = void 0, e.recomputing = !0), N(e);
}
function ch(e, n) {
  if (N(n), !e)
    return;
  e.recomputing = !1;
  const t = e.producersTail;
  let r = t !== void 0 ? t.nextProducer : e.producers;
  if (r !== void 0) {
    if (mr(e))
      do
        r = ru(r);
      while (r !== void 0);
    t !== void 0 ? t.nextProducer = void 0 : e.producers = void 0;
  }
}
function ah(e) {
  for (let n = e.producers; n !== void 0; n = n.nextProducer) {
    const t = n.producer, r = n.lastReadVersion;
    if (r !== t.version || (oh(t), r !== t.version))
      return !0;
  }
  return !1;
}
function uh(e) {
  if (mr(e)) {
    let n = e.producers;
    for (; n !== void 0; )
      n = ru(n);
  }
  e.producers = void 0, e.producersTail = void 0, e.consumers = void 0, e.consumersTail = void 0;
}
function lh(e, n) {
  const t = e.consumersTail, r = mr(e);
  if (t !== void 0 ? (n.nextConsumer = t.nextConsumer, t.nextConsumer = n) : (n.nextConsumer = void 0, e.consumers = n), n.prevConsumer = t, e.consumersTail = n, !r)
    for (let o = e.producers; o !== void 0; o = o.nextProducer)
      lh(o.producer, o);
}
function ru(e) {
  const n = e.producer, t = e.nextProducer, r = e.nextConsumer, o = e.prevConsumer;
  if (e.nextConsumer = void 0, e.prevConsumer = void 0, r !== void 0 ? r.prevConsumer = o : n.consumersTail = o, o !== void 0)
    o.nextConsumer = r;
  else if (n.consumers = r, !mr(n)) {
    let i = n.producers;
    for (; i !== void 0; )
      i = ru(i);
  }
  return t;
}
function mr(e) {
  return e.consumerIsAlwaysLive || e.consumers !== void 0;
}
function yM(e, n) {
  const t = n.producersTail;
  if (t !== void 0) {
    let r = n.producers;
    do {
      if (r === e)
        return !0;
      if (r === t)
        break;
      r = r.nextProducer;
    } while (r !== void 0);
  }
  return !1;
}
function IM(e, n) {
  const t = Object.create(MM);
  t.computation = e;
  const r = () => {
    if (oh(t), rh(t), t.value === yi)
      throw t.error;
    return t.value;
  };
  if (r[un] = t, typeof ngDevMode < "u" && ngDevMode) {
    const o = t.debugName ? " (" + t.debugName + ")" : "";
    r.toString = () => `[Computed${o}: ${t.value}]`;
  }
  return r;
}
const uc = /* @__PURE__ */ Symbol("UNSET"), lc = /* @__PURE__ */ Symbol("COMPUTING"), yi = /* @__PURE__ */ Symbol("ERRORED"), MM = {
  ...Es,
  value: uc,
  dirty: !0,
  error: null,
  equal: th,
  kind: "computed",
  producerMustRecompute(e) {
    return e.value === uc || e.value === lc;
  },
  producerRecomputeValue(e) {
    if (e.value === lc)
      throw new Error(typeof ngDevMode < "u" && ngDevMode ? "Detected cycle in computations." : "");
    const n = e.value;
    e.value = lc;
    const t = Vc(e);
    let r, o = !1;
    try {
      r = e.computation(), N(null), o = n !== uc && n !== yi && r !== yi && e.equal(n, r);
    } catch (i) {
      r = yi, e.error = i;
    } finally {
      ch(e, t);
    }
    if (o) {
      e.value = n;
      return;
    }
    e.value = r, e.version++;
  }
};
function DM() {
  throw new Error();
}
let dh = DM;
function fh(e) {
  dh(e);
}
function EM(e) {
  dh = e;
}
function bM(e, n) {
  const t = Object.create(wM);
  t.value = e;
  const r = (() => _M(t));
  if (r[un] = t, typeof ngDevMode < "u" && ngDevMode) {
    const s = t.debugName ? " (" + t.debugName + ")" : "";
    r.toString = () => `[Signal${s}: ${t.value}]`;
  }
  return [r, (s) => hh(t, s), (s) => CM(t, s)];
}
function _M(e) {
  return rh(e), e.value;
}
function hh(e, n) {
  sh() || fh(e), e.equal(e.value, n) || (e.value = n, TM(e));
}
function CM(e, n) {
  sh() || fh(e), hh(e, n(e.value));
}
const wM = {
  ...Es,
  equal: th,
  value: void 0,
  kind: "signal"
};
function TM(e) {
  e.version++, mM(), ih(e);
}
/**
 * @license Angular v20.1.6
 * (c) 2010-2025 Google LLC. https://angular.io/
 * License: MIT
 */
const SM = "https://angular.dev/errors", vr = "https://angular.dev/best-practices/security#preventing-cross-site-scripting-xss";
class b extends Error {
  constructor(t, r) {
    super(Xe(t, r));
    f(this, "code");
    this.code = t;
  }
}
function kM(e) {
  return `NG0${Math.abs(e)}`;
}
function Xe(e, n) {
  const t = kM(e);
  let r = `${t}${n ? ": " + n : ""}`;
  if (ngDevMode && e < 0) {
    const i = !r.match(/[.,;!?\n]$/) ? "." : "";
    r = `${r}${i} Find more at ${SM}/${t}`;
  }
  return r;
}
const Ce = globalThis;
function xM() {
  const e = typeof location < "u" ? location.toString() : "", n = {
    hydratedNodes: 0,
    hydratedComponents: 0,
    dehydratedViewsRemoved: 0,
    dehydratedViewsCleanupRuns: 0,
    componentsSkippedHydration: 0,
    deferBlocksWithIncrementalHydration: 0
  };
  return e.indexOf("ngDevMode=false") === -1 ? (typeof Ce.ngDevMode != "object" && (Ce.ngDevMode = {}), Object.assign(Ce.ngDevMode, n)) : Ce.ngDevMode = !1, n;
}
function ou() {
  return typeof ngDevMode > "u" || ngDevMode ? ((typeof ngDevMode != "object" || Object.keys(ngDevMode).length === 0) && xM(), typeof ngDevMode < "u" && !!ngDevMode) : !1;
}
function W(e) {
  for (let n in e)
    if (e[n] === W)
      return n;
  throw Error(typeof ngDevMode < "u" && ngDevMode ? "Could not find renamed property on target object." : "");
}
function AM(e, n) {
  for (const t in n)
    n.hasOwnProperty(t) && !e.hasOwnProperty(t) && (e[t] = n[t]);
}
function J(e) {
  if (typeof e == "string")
    return e;
  if (Array.isArray(e))
    return `[${e.map(J).join(", ")}]`;
  if (e == null)
    return "" + e;
  const n = e.overriddenName || e.name;
  if (n)
    return `${n}`;
  const t = e.toString();
  if (t == null)
    return "" + t;
  const r = t.indexOf(`
`);
  return r >= 0 ? t.slice(0, r) : t;
}
function Wc(e, n) {
  return e ? n ? `${e} ${n}` : e : n || "";
}
const OM = W({ __forward_ref__: W });
function iu(e) {
  return e.__forward_ref__ = iu, e.toString = function() {
    return J(this());
  }, e;
}
function x(e) {
  return bs(e) ? e() : e;
}
function bs(e) {
  return typeof e == "function" && e.hasOwnProperty(OM) && e.__forward_ref__ === iu;
}
function q(e, n) {
  typeof e != "number" && C(n, typeof e, "number", "===");
}
function fo(e, n, t) {
  q(e, "Expected a number"), mh(e, t, "Expected number to be less than or equal to"), _n(e, n, "Expected number to be greater than or equal to");
}
function yr(e, n) {
  typeof e != "string" && C(n, e === null ? "null" : typeof e, "string", "===");
}
function ph(e, n) {
  typeof e != "function" && C(n, e === null ? "null" : typeof e, "function", "===");
}
function T(e, n, t) {
  e != n && C(t, e, n, "==");
}
function Ve(e, n, t) {
  e == n && C(t, e, n, "!=");
}
function gh(e, n, t) {
  e !== n && C(t, e, n, "===");
}
function Ir(e, n, t) {
  e === n && C(t, e, n, "!==");
}
function gn(e, n, t) {
  e < n || C(t, e, n, "<");
}
function mh(e, n, t) {
  e <= n || C(t, e, n, "<=");
}
function Bt(e, n, t) {
  e > n || C(t, e, n, ">");
}
function _n(e, n, t) {
  e >= n || C(t, e, n, ">=");
}
function E(e, n) {
  e == null && C(n, e, null, "!=");
}
function C(e, n, t, r) {
  throw new Error(`ASSERTION ERROR: ${e}` + (r == null ? "" : ` [Expected=> ${t} ${r} ${n} <=Actual]`));
}
function mt(e) {
  e instanceof Node || C(`The provided value must be an instance of a DOM Node but got ${J(e)}`);
}
function RM(e) {
  e instanceof Element || C(`The provided value must be an element but got ${J(e)}`);
}
function ue(e, n) {
  E(e, "Array must be defined.");
  const t = e.length;
  (n < 0 || n >= t) && C(`Index expected to be less than ${t} but got ${n}`);
}
function PM(e, ...n) {
  if (n.indexOf(e) !== -1)
    return !0;
  C(`Expected value to be one of ${JSON.stringify(n)} but was ${JSON.stringify(e)}.`);
}
function su(e) {
  Ds() !== null && C(`${e}() should never be called in a reactive context.`);
}
function X(e) {
  return {
    token: e.token,
    providedIn: e.providedIn || null,
    factory: e.factory,
    value: void 0
  };
}
function cu(e) {
  return { providers: e.providers || [], imports: e.imports || [] };
}
function au(e) {
  return NM(e, Ni);
}
function NM(e, n) {
  return e.hasOwnProperty(n) && e[n] || null;
}
function LM(e) {
  const n = (e == null ? void 0 : e[Ni]) ?? null;
  return n ? (ngDevMode && console.warn(`DEPRECATED: DI is instantiating a token "${e.name}" that inherits its @Injectable decorator but does not provide one itself.
This will become an error in a future version of Angular. Please add @Injectable() to the "${e.name}" class.`), n) : null;
}
function Pi(e) {
  return e && e.hasOwnProperty(zc) ? e[zc] : null;
}
const Ni = W({ ɵprov: W }), zc = W({ ɵinj: W });
class w {
  /**
   * @param _desc   Description for the token,
   *                used only for debugging purposes,
   *                it should but does not need to be unique
   * @param options Options for the token's usage, as described above
   */
  constructor(n, t) {
    f(this, "_desc");
    /** @internal */
    f(this, "ngMetadataName", "InjectionToken");
    f(this, "ɵprov");
    this._desc = n, this.ɵprov = void 0, typeof t == "number" ? ((typeof ngDevMode > "u" || ngDevMode) && gn(t, 0, "Only negative numbers are supported here"), this.__NG_ELEMENT_ID__ = t) : t !== void 0 && (this.ɵprov = X({
      token: this,
      providedIn: t.providedIn || "root",
      factory: t.factory
    }));
  }
  /**
   * @internal
   */
  get multi() {
    return this;
  }
  toString() {
    return `InjectionToken ${this._desc}`;
  }
}
let Gc;
function _s() {
  return !ngDevMode && C("getInjectorProfilerContext should never be called in production mode"), Gc;
}
function Ne(e) {
  !ngDevMode && C("setInjectorProfilerContext should never be called in production mode");
  const n = Gc;
  return Gc = e, n;
}
const vt = [], FM = () => {
};
function jM(e) {
  const n = vt.indexOf(e);
  n !== -1 && vt.splice(n, 1);
}
function vh(e) {
  return !ngDevMode && C("setInjectorProfiler should never be called in production mode"), e !== null ? (vt.includes(e) || vt.push(e), () => jM(e)) : (vt.length = 0, FM);
}
function Cs(e) {
  !ngDevMode && C("Injector profiler should never be called in production mode");
  for (let n = 0; n < vt.length; n++) {
    const t = vt[n];
    t(e);
  }
}
function qc(e, n = !1) {
  !ngDevMode && C("Injector profiler should never be called in production mode");
  let t;
  typeof e == "function" || e instanceof w ? t = e : t = x(e.provide);
  let r = e;
  e instanceof w && (r = e.ɵprov || e), Cs({
    type: 2,
    context: _s(),
    providerRecord: { token: t, provider: r, isViewProvider: n }
  });
}
function Li(e) {
  !ngDevMode && C("Injector profiler should never be called in production mode"), Cs({
    type: 4,
    context: _s(),
    token: e
  });
}
function Fi(e) {
  !ngDevMode && C("Injector profiler should never be called in production mode"), Cs({
    type: 1,
    context: _s(),
    instance: { value: e }
  });
}
function yh(e, n, t) {
  !ngDevMode && C("Injector profiler should never be called in production mode"), Cs({
    type: 0,
    context: _s(),
    service: { token: e, value: n, flags: t }
  });
}
function zr(e, n, t) {
  !ngDevMode && C("runInInjectorProfilerContext should never be called in production mode");
  const r = Ne({ injector: e, token: n });
  try {
    t();
  } finally {
    Ne(r);
  }
}
function ws(e) {
  return e && !!e.ɵproviders;
}
const Mr = W({ ɵcmp: W }), uu = W({ ɵdir: W }), lu = W({ ɵpipe: W }), Ih = W({ ɵmod: W }), mn = W({ ɵfac: W }), Gr = W({
  __NG_ELEMENT_ID__: W
}), Wl = W({ __NG_ENV_ID__: W });
function O(e) {
  return typeof e == "string" ? e : e == null ? "" : String(e);
}
function P(e) {
  return typeof e == "function" ? e.name || e.toString() : typeof e == "object" && e != null && typeof e.type == "function" ? e.type.name || e.type.toString() : O(e);
}
function HM(e) {
  let n = e[Mr] || null;
  return n !== null && n.debugInfo ? $M(n.debugInfo) : P(e);
}
function $M(e) {
  return !e.filePath || !e.lineNumber ? e.className : `${e.className} (at ${e.filePath}:${e.lineNumber})`;
}
const du = W({ ngErrorCode: W }), Mh = W({ ngErrorMessage: W }), tt = W({ ngTokenPath: W });
function fu(e, n) {
  const t = ngDevMode ? `Circular dependency detected for \`${e}\`.` : "";
  return bh(t, -200, n);
}
function Dh(e, n) {
  return Eh(fu(e, n), null);
}
function zl() {
  throw new Error("Cannot mix multi providers and regular providers");
}
function Qc(e, n, t) {
  if (e && n) {
    const r = n.map((o) => o == t ? "?" + t + "?" : "...");
    throw new Error(`Invalid provider for the NgModule '${J(e)}' - only instances of Provider and Type are allowed, got: [${r.join(", ")}]`);
  } else throw ws(t) ? t.ɵfromNgModule ? new b(207, "Invalid providers from 'importProvidersFrom' present in a non-environment injector. 'importProvidersFrom' can't be used for component providers.") : new b(207, "Invalid providers present in a non-environment injector. 'EnvironmentProviders' can't be used for component providers.") : new Error("Invalid provider");
}
function hu(e, n) {
  const t = ngDevMode && `No provider for ${P(e)} found${n ? ` in ${n}` : ""}`;
  throw new b(-201, t);
}
function BM(e, n) {
  e[tt] ?? (e[tt] = []);
  const t = e[tt];
  let r;
  typeof n == "object" && "multi" in n && (n == null ? void 0 : n.multi) === !0 ? (E(n.provide, "Token with multi: true should have a provide property"), r = P(n.provide)) : r = P(n), t[0] !== r && e[tt].unshift(r);
}
function Eh(e, n) {
  const t = e[tt], r = e[du], o = e[Mh] || e.message;
  return e.message = VM(o, r, t, n), e;
}
function bh(e, n, t) {
  const r = new b(n, e);
  return r[du] = n, r[Mh] = e, t && (r[tt] = t), r;
}
function UM(e) {
  return e[du];
}
function VM(e, n, t = [], r = null) {
  let o = "";
  t && t.length > 1 && (o = ` Path: ${t.join(" -> ")}.`);
  const i = r ? ` Source: ${r}.` : "";
  return Xe(n, `${e}${i}${o}`);
}
let ji;
function _h() {
  return ji;
}
function Le(e) {
  const n = ji;
  return ji = e, n;
}
function Ch(e, n, t) {
  const r = au(e);
  if (r && r.providedIn == "root")
    return r.value === void 0 ? r.value = r.factory() : r.value;
  if (t & 8)
    return null;
  if (n !== void 0)
    return n;
  hu(e, "Injector");
}
function WM(e) {
  ngDevMode && Ve(ji, e, "Calling ɵɵinject would cause infinite recursion");
}
const zM = {}, yt = zM, Zc = "__NG_DI_FLAG__";
class GM {
  constructor(n) {
    f(this, "injector");
    this.injector = n;
  }
  retrieve(n, t) {
    const r = ho(t) || 0;
    try {
      return this.injector.get(
        n,
        // When a dependency is requested with an optional flag, DI returns null as the default value.
        r & 8 ? null : yt,
        r
      );
    } catch (o) {
      if (nu(o))
        return o;
      throw o;
    }
  }
}
function qM(e, n = 0) {
  const t = nh();
  if (t === void 0)
    throw new b(-203, ngDevMode && `The \`${J(e)}\` token injection failed. \`inject()\` function must be called from an injection context such as a constructor, a factory function, a field initializer, or a function used with \`runInInjectionContext\`.`);
  if (t === null)
    return Ch(e, void 0, n);
  {
    const r = QM(n), o = t.retrieve(e, r);
    if (ngDevMode && yh(e, o, n), nu(o)) {
      if (r.optional)
        return null;
      throw o;
    }
    return o;
  }
}
function we(e, n = 0) {
  return (_h() || qM)(x(e), n);
}
function wh(e) {
  throw new b(202, ngDevMode && `This constructor is not compatible with Angular Dependency Injection because its dependency at index ${e} of the parameter list is invalid.
This can happen if the dependency type is a primitive like a string or if an ancestor of this class is missing an Angular decorator.

Please check that 1) the type for the parameter at index ${e} is correct and 2) the correct Angular decorators are defined for this class and its ancestors.`);
}
function S(e, n) {
  return we(e, ho(n));
}
function ho(e) {
  return typeof e > "u" || typeof e == "number" ? e : 0 | // comment to force a line break in the formatter
  (e.optional && 8) | (e.host && 1) | (e.self && 2) | (e.skipSelf && 4);
}
function QM(e) {
  return {
    optional: !!(e & 8),
    host: !!(e & 1),
    self: !!(e & 2),
    skipSelf: !!(e & 4)
  };
}
function Yc(e) {
  const n = [];
  for (let t = 0; t < e.length; t++) {
    const r = x(e[t]);
    if (Array.isArray(r)) {
      if (r.length === 0)
        throw new b(900, ngDevMode && "Arguments array must have arguments.");
      let o, i = 0;
      for (let s = 0; s < r.length; s++) {
        const c = r[s], a = ZM(c);
        typeof a == "number" ? a === -1 ? o = c.token : i |= a : o = c;
      }
      n.push(we(o, i));
    } else
      n.push(we(r));
  }
  return n;
}
function Oo(e, n) {
  return e[Zc] = n, e.prototype[Zc] = n, e;
}
function ZM(e) {
  return e[Zc];
}
function Ct(e, n) {
  const t = e.hasOwnProperty(mn);
  if (!t && n === !0 && ngDevMode)
    throw new Error(`Type ${J(e)} does not have 'ɵfac' property.`);
  return t ? e[mn] : null;
}
function YM(e, n, t) {
  if (e.length !== n.length)
    return !1;
  for (let r = 0; r < e.length; r++) {
    let o = e[r], i = n[r];
    if (t && (o = t(o), i = t(i)), i !== o)
      return !1;
  }
  return !0;
}
function Fe(e) {
  return e.flat(Number.POSITIVE_INFINITY);
}
function ar(e, n) {
  e.forEach((t) => Array.isArray(t) ? ar(t, n) : n(t));
}
function Th(e, n, t) {
  n >= e.length ? e.push(t) : e.splice(n, 0, t);
}
function Hi(e, n) {
  return n >= e.length - 1 ? e.pop() : e.splice(n, 1)[0];
}
function qr(e, n) {
  const t = [];
  for (let r = 0; r < e; r++)
    t.push(n);
  return t;
}
function Gl(e, n, t) {
  const r = e.length - t;
  for (; n < r; )
    e[n] = e[n + t], n++;
  for (; t--; )
    e.pop();
}
function Sh(e, n, t, r) {
  ngDevMode && mh(n, e.length, "Can't insert past array end.");
  let o = e.length;
  if (o == n)
    e.push(t, r);
  else if (o === 1)
    e.push(r, e[0]), e[0] = t;
  else {
    for (o--, e.push(e[o - 1], e[o]); o > n; ) {
      const i = o - 2;
      e[o] = e[i], o--;
    }
    e[n] = t, e[n + 1] = r;
  }
}
function Ts(e, n, t) {
  let r = Ro(e, n);
  return r >= 0 ? e[r | 1] = t : (r = ~r, Sh(e, r, n, t)), r;
}
function dc(e, n) {
  const t = Ro(e, n);
  if (t >= 0)
    return e[t | 1];
}
function Ro(e, n) {
  return JM(e, n, 1);
}
function JM(e, n, t) {
  ngDevMode && T(Array.isArray(e), !0, "Expecting an array");
  let r = 0, o = e.length >> t;
  for (; o !== r; ) {
    const i = r + (o - r >> 1), s = e[i << t];
    if (n === s)
      return i << t;
    s > n ? o = i : r = i + 1;
  }
  return ~(o << t);
}
const Qe = {}, B = [];
(typeof ngDevMode > "u" || ngDevMode) && ou() && (Object.freeze(Qe), Object.freeze(B));
const ur = new w(ngDevMode ? "ENVIRONMENT_INITIALIZER" : ""), kh = new w(
  ngDevMode ? "INJECTOR" : "",
  // Disable tslint because this is const enum which gets inlined not top level prop access.
  // tslint:disable-next-line: no-toplevel-property-access
  -1
  /* InjectorMarkers.Injector */
), pu = new w(ngDevMode ? "INJECTOR_DEF_TYPES" : "");
class Ss {
  get(n, t = yt) {
    if (t === yt) {
      const r = ngDevMode ? `No provider found for \`${J(n)}\`.` : "", o = bh(
        r,
        -201
        /* RuntimeErrorCode.PROVIDER_NOT_FOUND */
      );
      throw o.name = "ɵNotFound", o;
    }
    return t;
  }
}
function ln(e) {
  return e[Ih] || null;
}
function ks(e) {
  const n = ln(e);
  if (!n)
    throw new b(915, (typeof ngDevMode > "u" || ngDevMode) && `Type ${J(e)} does not have 'ɵmod' property.`);
  return n;
}
function H(e) {
  return e[Mr] || null;
}
function XM(e) {
  const n = fe(e);
  if (!n)
    throw new b(916, (typeof ngDevMode > "u" || ngDevMode) && `Type ${J(e)} does not have 'ɵdir' property.`);
  return n;
}
function fe(e) {
  return e[uu] || null;
}
function je(e) {
  return e[lu] || null;
}
function It(e) {
  const n = H(e) || fe(e) || je(e);
  return n !== null && n.standalone;
}
function KM(...e) {
  return {
    ɵproviders: gu(!0, e),
    ɵfromNgModule: !0
  };
}
function gu(e, ...n) {
  const t = [], r = /* @__PURE__ */ new Set();
  let o;
  const i = (s) => {
    t.push(s);
  };
  return ar(n, (s) => {
    if ((typeof ngDevMode > "u" || ngDevMode) && e) {
      const a = H(s);
      if (a != null && a.standalone)
        throw new b(800, `Importing providers supports NgModule or ModuleWithProviders but got a standalone component "${P(s)}"`);
    }
    const c = s;
    $i(c, i, [], r) && (o || (o = []), o.push(c));
  }), o !== void 0 && xh(o, i), t;
}
function xh(e, n) {
  for (let t = 0; t < e.length; t++) {
    const { ngModule: r, providers: o } = e[t];
    mu(o, (i) => {
      ngDevMode && Ah(i, o || B, r), n(i, r);
    });
  }
}
function $i(e, n, t, r) {
  if (e = x(e), !e)
    return !1;
  let o = null, i = Pi(e);
  const s = !i && H(e);
  if (!i && !s) {
    const a = e.ngModule;
    if (i = Pi(a), i)
      o = a;
    else
      return !1;
  } else {
    if (s && !s.standalone)
      return !1;
    o = e;
  }
  if (ngDevMode && t.indexOf(o) !== -1) {
    const a = J(o), u = t.map(J).concat(a);
    throw Dh(a, u);
  }
  const c = r.has(o);
  if (s) {
    if (c)
      return !1;
    if (r.add(o), s.dependencies) {
      const a = typeof s.dependencies == "function" ? s.dependencies() : s.dependencies;
      for (const u of a)
        $i(u, n, t, r);
    }
  } else if (i) {
    if (i.imports != null && !c) {
      ngDevMode && t.push(o), r.add(o);
      let u;
      try {
        ar(i.imports, (l) => {
          $i(l, n, t, r) && (u || (u = []), u.push(l));
        });
      } finally {
        ngDevMode && t.pop();
      }
      u !== void 0 && xh(u, n);
    }
    if (!c) {
      const u = Ct(o) || (() => new o());
      n({ provide: o, useFactory: u, deps: B }, o), n({ provide: pu, useValue: o, multi: !0 }, o), n({ provide: ur, useValue: () => we(o), multi: !0 }, o);
    }
    const a = i.providers;
    if (a != null && !c) {
      const u = e;
      mu(a, (l) => {
        ngDevMode && Ah(l, a, u), n(l, u);
      });
    }
  } else
    return !1;
  return o !== e && e.providers !== void 0;
}
function Ah(e, n, t) {
  if (vn(e) || xs(e) || Rh(e) || Oh(e))
    return;
  x(e && (e.useClass || e.provide)) || Qc(t, n, e);
}
function mu(e, n) {
  for (let t of e)
    ws(t) && (t = t.ɵproviders), Array.isArray(t) ? mu(t, n) : n(t);
}
const eD = W({
  provide: String,
  useValue: W
});
function xs(e) {
  return e !== null && typeof e == "object" && eD in e;
}
function Oh(e) {
  return !!(e && e.useExisting);
}
function Rh(e) {
  return !!(e && e.useFactory);
}
function vn(e) {
  return typeof e == "function";
}
function Ph(e) {
  return !!e.useClass;
}
const Nh = new w(ngDevMode ? "Set Injector scope." : ""), Ii = {}, ql = {};
let fc;
function vu() {
  return fc === void 0 && (fc = new Ss()), fc;
}
class Ze {
}
class Ut extends Ze {
  constructor(t, r, o, i) {
    super();
    f(this, "parent");
    f(this, "source");
    f(this, "scopes");
    /**
     * Map of tokens to records which contain the instances of those tokens.
     * - `null` value implies that we don't have the record. Used by tree-shakable injectors
     * to prevent further searches.
     */
    f(this, "records", /* @__PURE__ */ new Map());
    /**
     * Set of values instantiated by this injector which contain `ngOnDestroy` lifecycle hooks.
     */
    f(this, "_ngOnDestroyHooks", /* @__PURE__ */ new Set());
    f(this, "_onDestroyHooks", []);
    f(this, "_destroyed", !1);
    f(this, "injectorDefTypes");
    this.parent = r, this.source = o, this.scopes = i, Xc(t, (c) => this.processProvider(c)), this.records.set(kh, Qt(void 0, this)), i.has("environment") && this.records.set(Ze, Qt(void 0, this));
    const s = this.records.get(Nh);
    s != null && typeof s.value == "string" && this.scopes.add(s.value), this.injectorDefTypes = new Set(this.get(pu, B, { self: !0 }));
  }
  /**
   * Flag indicating that this injector was previously destroyed.
   */
  get destroyed() {
    return this._destroyed;
  }
  retrieve(t, r) {
    const o = ho(r) || 0;
    try {
      return this.get(
        t,
        // When a dependency is requested with an optional flag, DI returns null as the default value.
        yt,
        o
      );
    } catch (i) {
      if (nu(i))
        return i;
      throw i;
    }
  }
  /**
   * Destroy the injector and release references to every instance or provider associated with it.
   *
   * Also calls the `OnDestroy` lifecycle hooks of every instance that was created for which a
   * hook was found.
   */
  destroy() {
    $r(this), this._destroyed = !0;
    const t = N(null);
    try {
      for (const o of this._ngOnDestroyHooks)
        o.ngOnDestroy();
      const r = this._onDestroyHooks;
      this._onDestroyHooks = [];
      for (const o of r)
        o();
    } finally {
      this.records.clear(), this._ngOnDestroyHooks.clear(), this.injectorDefTypes.clear(), N(t);
    }
  }
  onDestroy(t) {
    return $r(this), this._onDestroyHooks.push(t), () => this.removeOnDestroy(t);
  }
  runInContext(t) {
    $r(this);
    const r = An(this), o = Le(void 0);
    let i;
    ngDevMode && (i = Ne({ injector: this, token: null }));
    try {
      return t();
    } finally {
      An(r), Le(o), ngDevMode && Ne(i);
    }
  }
  get(t, r = yt, o) {
    if ($r(this), t.hasOwnProperty(Wl))
      return t[Wl](this);
    const i = ho(o);
    let s;
    ngDevMode && (s = Ne({ injector: this, token: t }));
    const c = An(this), a = Le(void 0);
    try {
      if (!(i & 4)) {
        let l = this.records.get(t);
        if (l === void 0) {
          const d = iD(t) && au(t);
          d && this.injectableDefInScope(d) ? (ngDevMode && zr(this, t, () => {
            qc(t);
          }), l = Qt(Jc(t), Ii)) : l = null, this.records.set(t, l);
        }
        if (l != null)
          return this.hydrate(t, l, i);
      }
      const u = i & 2 ? vu() : this.parent;
      return r = i & 8 && r === yt ? null : r, u.get(t, r);
    } catch (u) {
      const l = UM(u);
      throw l === -200 || l === -201 ? ngDevMode ? (BM(u, t), c ? u : Eh(u, this.source)) : new b(l, null) : u;
    } finally {
      Le(a), An(c), ngDevMode && Ne(s);
    }
  }
  /** @internal */
  resolveInjectorInitializers() {
    const t = N(null), r = An(this), o = Le(void 0);
    let i;
    ngDevMode && (i = Ne({ injector: this, token: null }));
    try {
      const s = this.get(ur, B, { self: !0 });
      if (ngDevMode && !Array.isArray(s))
        throw new b(-209, `Unexpected type of the \`ENVIRONMENT_INITIALIZER\` token value (expected an array, but got ${typeof s}). Please check that the \`ENVIRONMENT_INITIALIZER\` token is configured as a \`multi: true\` provider.`);
      for (const c of s)
        c();
    } finally {
      An(r), Le(o), ngDevMode && Ne(i), N(t);
    }
  }
  toString() {
    const t = [], r = this.records;
    for (const o of r.keys())
      t.push(J(o));
    return `R3Injector[${t.join(", ")}]`;
  }
  /**
   * Process a `SingleProvider` and add it.
   */
  processProvider(t) {
    t = x(t);
    let r = vn(t) ? t : x(t && t.provide);
    const o = tD(t);
    if (ngDevMode && zr(this, r, () => {
      xs(t) && (Li(r), Fi(t.useValue)), qc(t);
    }), !vn(t) && t.multi === !0) {
      let i = this.records.get(r);
      i ? ngDevMode && i.multi === void 0 && zl() : (i = Qt(void 0, Ii, !0), i.factory = () => Yc(i.multi), this.records.set(r, i)), r = t, i.multi.push(t);
    } else if (ngDevMode) {
      const i = this.records.get(r);
      i && i.multi !== void 0 && zl();
    }
    this.records.set(r, o);
  }
  hydrate(t, r, o) {
    const i = N(null);
    try {
      if (r.value === ql)
        throw fu(J(t));
      return r.value === Ii && (r.value = ql, ngDevMode ? zr(this, t, () => {
        Li(t), r.value = r.factory(void 0, o), Fi(r.value);
      }) : r.value = r.factory(void 0, o)), typeof r.value == "object" && r.value && oD(r.value) && this._ngOnDestroyHooks.add(r.value), r.value;
    } finally {
      N(i);
    }
  }
  injectableDefInScope(t) {
    if (!t.providedIn)
      return !1;
    const r = x(t.providedIn);
    return typeof r == "string" ? r === "any" || this.scopes.has(r) : this.injectorDefTypes.has(r);
  }
  removeOnDestroy(t) {
    const r = this._onDestroyHooks.indexOf(t);
    r !== -1 && this._onDestroyHooks.splice(r, 1);
  }
}
function Jc(e) {
  const n = au(e), t = n !== null ? n.factory : Ct(e);
  if (t !== null)
    return t;
  if (e instanceof w)
    throw new b(204, ngDevMode && `Token ${J(e)} is missing a ɵprov definition.`);
  if (e instanceof Function)
    return nD(e);
  throw new b(204, ngDevMode && "unreachable");
}
function nD(e) {
  const n = e.length;
  if (n > 0)
    throw new b(204, ngDevMode && `Can't resolve all parameters for ${J(e)}: (${qr(n, "?").join(", ")}).`);
  const t = LM(e);
  return t !== null ? () => t.factory(e) : () => new e();
}
function tD(e) {
  if (xs(e))
    return Qt(void 0, e.useValue);
  {
    const n = Lh(e);
    return Qt(n, Ii);
  }
}
function Lh(e, n, t) {
  let r;
  if (ngDevMode && ws(e) && Qc(void 0, t, e), vn(e)) {
    const o = x(e);
    return Ct(o) || Jc(o);
  } else if (xs(e))
    r = () => x(e.useValue);
  else if (Rh(e))
    r = () => e.useFactory(...Yc(e.deps || []));
  else if (Oh(e))
    r = (o, i) => we(x(e.useExisting), i !== void 0 && i & 8 ? 8 : void 0);
  else {
    const o = x(e && (e.useClass || e.provide));
    if (ngDevMode && !o && Qc(n, t, e), rD(e))
      r = () => new o(...Yc(e.deps));
    else
      return Ct(o) || Jc(o);
  }
  return r;
}
function $r(e) {
  if (e.destroyed)
    throw new b(205, ngDevMode && "Injector has already been destroyed.");
}
function Qt(e, n, t = !1) {
  return {
    factory: e,
    value: n,
    multi: t ? [] : void 0
  };
}
function rD(e) {
  return !!e.deps;
}
function oD(e) {
  return e !== null && typeof e == "object" && typeof e.ngOnDestroy == "function";
}
function iD(e) {
  return typeof e == "function" || typeof e == "object" && e.ngMetadataName === "InjectionToken";
}
function Xc(e, n) {
  for (const t of e)
    Array.isArray(t) ? Xc(t, n) : t && ws(t) ? Xc(t.ɵproviders, n) : n(t);
}
function Fh(e, n) {
  let t;
  e instanceof Ut ? ($r(e), t = e) : t = new GM(e);
  let r;
  ngDevMode && (r = Ne({ injector: e, token: null }));
  const o = An(t), i = Le(void 0);
  try {
    return n();
  } finally {
    An(o), ngDevMode && Ne(r), Le(i);
  }
}
function yu() {
  return _h() !== void 0 || nh() != null;
}
function jh(e) {
  if (!yu())
    throw new b(-203, ngDevMode && e.name + "() can only be used within an injection context such as a constructor, a factory function, a field initializer, or a function used with `runInInjectionContext`");
}
const ce = 0, y = 1, A = 2, ae = 3, Me = 4, ye = 5, wt = 6, Mt = 7, V = 8, oe = 9, $e = 10, F = 11, Tt = 12, Bi = 13, Hn = 14, pe = 15, St = 16, Zt = 17, Be = 18, kt = 19, Hh = 20, Nn = 21, hc = 22, Ui = 23, Ue = 24, Ln = 25, _ = 26, Iu = 1, $n = 6, Bn = 7, Vi = 8, xt = 9, K = 10;
function re(e) {
  return Array.isArray(e) && typeof e[Iu] == "object";
}
function ke(e) {
  return Array.isArray(e) && e[Iu] === !0;
}
function $h(e) {
  return (e.flags & 4) !== 0;
}
function Dr(e) {
  return e.componentOffset > -1;
}
function Er(e) {
  return (e.flags & 1) === 1;
}
function Te(e) {
  return !!e.template;
}
function Un(e) {
  return (e[A] & 512) !== 0;
}
function yn(e) {
  return (e[A] & 256) === 256;
}
function We(e, n) {
  br(e, n[y]);
}
function Po(e, n) {
  const t = n + _;
  ue(e, t), gn(t, e[y].bindingStartIndex, "TNodes should be created before any bindings");
}
function br(e, n) {
  Vn(e);
  const t = n.data;
  for (let r = _; r < t.length; r++)
    if (t[r] === e)
      return;
  C("This TNode does not belong to this TView.");
}
function Vn(e) {
  E(e, "TNode must be defined"), e && typeof e == "object" && e.hasOwnProperty("directiveStylingLast") || C("Not of type TNode, got: " + e);
}
function Mu(e) {
  E(e, "Expected TIcu to be defined"), typeof e.currentCaseLViewIndex != "number" && C("Object is not of TIcu type.");
}
function sD(e, n = "Type passed in is not ComponentType, it does not have 'ɵcmp' property.") {
  H(e) || C(n);
}
function cD(e, n = "Type passed in is not NgModuleType, it does not have 'ɵmod' property.") {
  ln(e) || C(n);
}
function aD(e) {
  E(e, "currentTNode should exist!"), E(e.parent, "currentTNode should have a parent");
}
function Ke(e) {
  E(e, "LContainer must be defined"), T(ke(e), !0, "Expecting LContainer");
}
function Bh(e) {
  e && T(re(e), !0, "Expecting LView or undefined or null");
}
function ze(e) {
  E(e, "LView must be defined"), T(re(e), !0, "Expecting LView");
}
function Se(e, n) {
  T(e.firstCreatePass, !0, n || "Should only be called in first create pass.");
}
function Du(e, n) {
  T(e.firstUpdatePass, !0, "Should only be called in first update pass.");
}
function uD(e) {
  (e.type === void 0 || e.selectors == null || e.inputs === void 0) && C("Expected a DirectiveDef/ComponentDef and this object does not seem to have the expected shape.");
}
function No(e, n) {
  Uh(_, e.bindingStartIndex, n);
}
function Wi(e, n) {
  const t = e[1];
  Uh(t.expandoStartIndex, e.length, n);
}
function Uh(e, n, t) {
  e <= t && t < n || C(`Index out of range (expecting ${e} <= ${t} < ${n})`);
}
function lD(e, n) {
  E(e[pe], "Component views should exist."), E(e[pe][ye].projection, "Components with projection nodes (<ng-content>) must have projection slots defined.");
}
function Vh(e, n) {
  E(e, "Component views should always have a parent view (component's host view)");
}
function Wh(e, n) {
  Wi(e, n), Wi(
    e,
    n + 8
    /* NodeInjectorOffset.PARENT */
  ), q(e[n + 0], "injectorIndex should point to a bloom filter"), q(e[n + 1], "injectorIndex should point to a bloom filter"), q(e[n + 2], "injectorIndex should point to a bloom filter"), q(e[n + 3], "injectorIndex should point to a bloom filter"), q(e[n + 4], "injectorIndex should point to a bloom filter"), q(e[n + 5], "injectorIndex should point to a bloom filter"), q(e[n + 6], "injectorIndex should point to a bloom filter"), q(e[n + 7], "injectorIndex should point to a bloom filter"), q(e[
    n + 8
    /* NodeInjectorOffset.PARENT */
  ], "injectorIndex should point to parent injector");
}
const zh = "svg", Gh = "math";
function ve(e) {
  for (; Array.isArray(e); )
    e = e[ce];
  return e;
}
function dD(e) {
  for (; Array.isArray(e); ) {
    if (typeof e[Iu] == "object")
      return e;
    e = e[ce];
  }
  return null;
}
function _r(e, n) {
  return ngDevMode && ue(n, e), ngDevMode && _n(e, _, "Expected to be past HEADER_OFFSET"), ve(n[e]);
}
function xe(e, n) {
  return ngDevMode && We(e, n), ngDevMode && ue(n, e.index), ve(n[e.index]);
}
function Cr(e, n) {
  ngDevMode && Bt(n, -1, "wrong index for TNode"), ngDevMode && gn(n, e.data.length, "wrong index for TNode");
  const t = e.data[n];
  return ngDevMode && t !== null && Vn(t), t;
}
function Vt(e, n) {
  return ngDevMode && ue(e, n), e[n];
}
function Eu(e, n, t, r) {
  t >= e.data.length && (e.data[t] = null, e.blueprint[t] = null), n[t] = r;
}
function Ye(e, n) {
  ngDevMode && ue(n, e);
  const t = n[e];
  return re(t) ? t : t[ce];
}
function Lo(e) {
  return (e[A] & 4) === 4;
}
function bu(e) {
  return (e[A] & 128) === 128;
}
function fD(e) {
  return ke(e[ae]);
}
function Ee(e, n) {
  return n == null ? null : (ngDevMode && ue(e, n), e[n]);
}
function qh(e) {
  e[Zt] = 0;
}
function Qh(e) {
  e[A] & 1024 || (e[A] |= 1024, bu(e) && Fo(e));
}
function Zh(e, n) {
  for (; e > 0; )
    ngDevMode && E(n[Hn], "Declaration view should be defined if nesting level is greater than 0."), n = n[Hn], e--;
  return n;
}
function zi(e) {
  var n;
  return !!(e[A] & 9216 || (n = e[Ue]) != null && n.dirty);
}
function Kc(e) {
  var n;
  (n = e[$e].changeDetectionScheduler) == null || n.notify(8), e[A] & 64 && (e[A] |= 1024), zi(e) && Fo(e);
}
function Fo(e) {
  var t;
  (t = e[$e].changeDetectionScheduler) == null || t.notify(0);
  let n = In(e);
  for (; n !== null && !(n[A] & 8192 || (n[A] |= 8192, !bu(n))); )
    n = In(n);
}
function As(e, n) {
  if (yn(e))
    throw new b(911, ngDevMode && "View has already been destroyed.");
  e[Nn] === null && (e[Nn] = []), e[Nn].push(n);
}
function _u(e, n) {
  if (e[Nn] === null)
    return;
  const t = e[Nn].indexOf(n);
  t !== -1 && e[Nn].splice(t, 1);
}
function In(e) {
  ngDevMode && ze(e);
  const n = e[ae];
  return ke(n) ? n[ae] : n;
}
function Yh(e) {
  return e[Mt] ?? (e[Mt] = []);
}
function ea(e) {
  return e.cleanup ?? (e.cleanup = []);
}
function hD(e, n, t, r) {
  const o = Yh(n);
  ngDevMode && E(t, "Cleanup context is mandatory when registering framework-level destroy hooks"), o.push(t), e.firstCreatePass ? ea(e).push(r, o.length - 1) : ngDevMode && Object.freeze(ea(e));
}
const k = {
  lFrame: lp(null),
  bindingsEnabled: !0,
  skipHydrationRootTNode: null
};
var Dt;
(function(e) {
  e[e.Off = 0] = "Off", e[e.Exhaustive = 1] = "Exhaustive", e[e.OnlyDirtyViews = 2] = "OnlyDirtyViews";
})(Dt || (Dt = {}));
let Cu = 0, na = !1;
function pD() {
  return k.lFrame.elementDepthCount;
}
function gD() {
  k.lFrame.elementDepthCount++;
}
function Jh() {
  k.lFrame.elementDepthCount--;
}
function wu() {
  return k.bindingsEnabled;
}
function Xh() {
  return k.skipHydrationRootTNode !== null;
}
function Kh(e) {
  return k.skipHydrationRootTNode === e;
}
function mD() {
  k.bindingsEnabled = !0;
}
function vD() {
  k.bindingsEnabled = !1;
}
function ep() {
  k.skipHydrationRootTNode = null;
}
function I() {
  return k.lFrame.lView;
}
function R() {
  return k.lFrame.tView;
}
function yD(e) {
  return k.lFrame.contextLView = e, e[V];
}
function ID(e) {
  return k.lFrame.contextLView = null, e;
}
function L() {
  let e = np();
  for (; e !== null && e.type === 64; )
    e = e.parent;
  return e;
}
function np() {
  return k.lFrame.currentTNode;
}
function po() {
  const e = k.lFrame, n = e.currentTNode;
  return e.isParent ? n : n.parent;
}
function Mn(e, n) {
  ngDevMode && e && br(e, k.lFrame.tView);
  const t = k.lFrame;
  t.currentTNode = e, t.isParent = n;
}
function tp() {
  return k.lFrame.isParent;
}
function rp() {
  k.lFrame.isParent = !1;
}
function op() {
  const e = k.lFrame.contextLView;
  return ngDevMode && E(e, "contextLView must be defined."), e;
}
function Wt() {
  return !ngDevMode && C("Must never be called in production mode"), Cu !== Dt.Off;
}
function Tu() {
  return !ngDevMode && C("Must never be called in production mode"), Cu === Dt.Exhaustive;
}
function Ql(e) {
  !ngDevMode && C("Must never be called in production mode"), Cu = e;
}
function ip() {
  return na;
}
function Zl(e) {
  const n = na;
  return na = e, n;
}
function Ae() {
  const e = k.lFrame;
  let n = e.bindingRootIndex;
  return n === -1 && (n = e.bindingRootIndex = e.tView.bindingStartIndex), n;
}
function Cn() {
  return k.lFrame.bindingIndex;
}
function sp(e) {
  return k.lFrame.bindingIndex = e;
}
function Ge() {
  return k.lFrame.bindingIndex++;
}
function wn(e) {
  const n = k.lFrame, t = n.bindingIndex;
  return n.bindingIndex = n.bindingIndex + e, t;
}
function MD() {
  return k.lFrame.inI18n;
}
function cp(e) {
  k.lFrame.inI18n = e;
}
function DD(e, n) {
  const t = k.lFrame;
  t.bindingIndex = t.bindingRootIndex = e, ta(n);
}
function ED() {
  return k.lFrame.currentDirectiveIndex;
}
function ta(e) {
  k.lFrame.currentDirectiveIndex = e;
}
function Su(e) {
  const n = k.lFrame.currentDirectiveIndex;
  return n === -1 ? null : e[n];
}
function ku() {
  return k.lFrame.currentQueryIndex;
}
function Os(e) {
  k.lFrame.currentQueryIndex = e;
}
function bD(e) {
  const n = e[y];
  return n.type === 2 ? (ngDevMode && E(n.declTNode, "Embedded TNodes should have declaration parents."), n.declTNode) : n.type === 1 ? e[ye] : null;
}
function ap(e, n, t) {
  if (ngDevMode && Bh(e), t & 4) {
    ngDevMode && br(n, e[y]);
    let o = n, i = e;
    for (; ngDevMode && E(o, "Parent TNode should be defined"), o = o.parent, o === null && !(t & 1); )
      if (o = bD(i), o === null || (ngDevMode && E(i, "Parent LView should be defined"), i = i[Hn], o.type & 10))
        break;
    if (o === null)
      return !1;
    n = o, e = i;
  }
  ngDevMode && We(n, e);
  const r = k.lFrame = up();
  return r.currentTNode = n, r.lView = e, !0;
}
function xu(e) {
  ngDevMode && Ve(e[0], e[1], "????"), ngDevMode && Bh(e);
  const n = up();
  ngDevMode && (T(n.isParent, !0, "Expected clean LFrame"), T(n.lView, null, "Expected clean LFrame"), T(n.tView, null, "Expected clean LFrame"), T(n.selectedIndex, -1, "Expected clean LFrame"), T(n.elementDepthCount, 0, "Expected clean LFrame"), T(n.currentDirectiveIndex, -1, "Expected clean LFrame"), T(n.currentNamespace, null, "Expected clean LFrame"), T(n.bindingRootIndex, -1, "Expected clean LFrame"), T(n.currentQueryIndex, 0, "Expected clean LFrame"));
  const t = e[y];
  k.lFrame = n, ngDevMode && t.firstChild && br(t.firstChild, t), n.currentTNode = t.firstChild, n.lView = e, n.tView = t, n.contextLView = e, n.bindingIndex = t.bindingStartIndex, n.inI18n = !1;
}
function up() {
  const e = k.lFrame, n = e === null ? null : e.child;
  return n === null ? lp(e) : n;
}
function lp(e) {
  const n = {
    currentTNode: null,
    isParent: !0,
    lView: null,
    tView: null,
    selectedIndex: -1,
    contextLView: null,
    elementDepthCount: 0,
    currentNamespace: null,
    currentDirectiveIndex: -1,
    bindingRootIndex: -1,
    bindingIndex: -1,
    currentQueryIndex: 0,
    parent: e,
    child: null,
    inI18n: !1
  };
  return e !== null && (e.child = n), n;
}
function dp() {
  const e = k.lFrame;
  return k.lFrame = e.parent, e.currentTNode = null, e.lView = null, e;
}
const fp = dp;
function Au() {
  const e = dp();
  e.isParent = !0, e.tView = null, e.selectedIndex = -1, e.contextLView = null, e.elementDepthCount = 0, e.currentDirectiveIndex = -1, e.currentNamespace = null, e.bindingRootIndex = -1, e.bindingIndex = -1, e.currentQueryIndex = 0;
}
function _D(e) {
  return (k.lFrame.contextLView = Zh(e, k.lFrame.contextLView))[V];
}
function Ie() {
  return k.lFrame.selectedIndex;
}
function At(e) {
  ngDevMode && e !== -1 && _n(e, _, "Index must be past HEADER_OFFSET (or -1)."), ngDevMode && gn(e, k.lFrame.lView.length, "Can't set index passed end of LView"), k.lFrame.selectedIndex = e;
}
function dn() {
  const e = k.lFrame;
  return Cr(e.tView, e.selectedIndex);
}
function CD() {
  k.lFrame.currentNamespace = zh;
}
function wD() {
  k.lFrame.currentNamespace = Gh;
}
function TD() {
  SD();
}
function SD() {
  k.lFrame.currentNamespace = null;
}
function kD() {
  return k.lFrame.currentNamespace;
}
let hp = !0;
function Rs() {
  return hp;
}
function jo(e) {
  hp = e;
}
function Yl(e, n = null, t = null, r) {
  const o = pp(e, n, t, r);
  return o.resolveInjectorInitializers(), o;
}
function pp(e, n = null, t = null, r, o = /* @__PURE__ */ new Set()) {
  const i = [t || B, KM(e)];
  return r = r || (typeof e == "object" ? void 0 : J(e)), new Ut(i, n || vu(), r || null, o);
}
const rt = class rt {
  static create(n, t) {
    if (Array.isArray(n))
      return Yl({ name: "" }, t, n, "");
    {
      const r = n.name ?? "";
      return Yl({ name: r }, n.parent, n.providers, r);
    }
  }
};
f(rt, "THROW_IF_NOT_FOUND", yt), f(rt, "NULL", new Ss()), /** @nocollapse */
f(
  rt,
  "ɵprov",
  /** @pureOrBreakMyCode */
  /* @__PURE__ */ X({
    token: rt,
    providedIn: "any",
    factory: () => we(kh)
  })
), /**
 * @internal
 * @nocollapse
 */
f(rt, "__NG_ELEMENT_ID__", -1);
let tn = rt;
const xD = new w(ngDevMode ? "DocumentToken" : "");
class Wn {
}
/**
 * @internal
 * @nocollapse
 */
f(Wn, "__NG_ELEMENT_ID__", OD), /**
 * @internal
 * @nocollapse
 */
f(Wn, "__NG_ENV_ID__", (n) => n);
class AD extends Wn {
  constructor(t) {
    super();
    f(this, "_lView");
    this._lView = t;
  }
  get destroyed() {
    return yn(this._lView);
  }
  onDestroy(t) {
    const r = this._lView;
    return As(r, t), () => _u(r, t);
  }
}
function OD() {
  return new AD(I());
}
class Ps {
  constructor() {
    /**
     * @internal
     */
    f(this, "_console", console);
  }
  handleError(n) {
    this._console.error("ERROR", n);
  }
}
const Qn = new w(typeof ngDevMode > "u" || ngDevMode ? "internal error handler" : "", {
  providedIn: "root",
  factory: () => {
    const e = S(Ze);
    let n;
    return (t) => {
      e.destroyed && !n ? setTimeout(() => {
        throw t;
      }) : (n ?? (n = e.get(Ps)), n.handleError(t));
    };
  }
}), RD = {
  provide: ur,
  useValue: () => void S(Ps),
  multi: !0
};
new w(ngDevMode ? "GlobalErrorListeners" : "", {
  providedIn: "root",
  factory: () => {
    if (typeof ngServerMode < "u" && ngServerMode)
      return;
    const e = S(xD).defaultView;
    if (!e)
      return;
    const n = S(Qn), t = (i) => {
      n(i.reason), i.preventDefault();
    }, r = (i) => {
      i.error ? n(i.error) : n(new Error(ngDevMode ? `An ErrorEvent with no error occurred. See Error.cause for details: ${i.message}` : i.message, { cause: i })), i.preventDefault();
    }, o = () => {
      e.addEventListener("unhandledrejection", t), e.addEventListener("error", r);
    };
    typeof Zone < "u" ? Zone.root.run(o) : o(), S(Wn).onDestroy(() => {
      e.removeEventListener("error", r), e.removeEventListener("unhandledrejection", t);
    });
  }
});
function gp(e) {
  return typeof e == "function" && e[un] !== void 0;
}
function si(e, n) {
  const [t, r, o] = bM(e), i = t, s = i[un];
  return i.set = r, i.update = o, i.asReadonly = PD.bind(i), ngDevMode && (i.toString = () => `[Signal: ${i()}]`, s.debugName = n == null ? void 0 : n.debugName), i;
}
function PD() {
  const e = this[un];
  if (e.readonlyFn === void 0) {
    const n = () => this();
    n[un] = e, e.readonlyFn = n;
  }
  return e.readonlyFn;
}
function mp(e) {
  return gp(e) && typeof e.set == "function";
}
class Ho {
}
const vp = new w(typeof ngDevMode > "u" || ngDevMode ? "Zoneless enabled" : "", { providedIn: "root", factory: () => !1 }), ND = new w(typeof ngDevMode > "u" || ngDevMode ? "Zoneless provided" : "", { providedIn: "root", factory: () => !1 }), yp = new w(typeof ngDevMode > "u" || ngDevMode ? "scheduler disabled" : ""), Ip = new w(typeof ngDevMode > "u" || ngDevMode ? "run changes outside zone in root" : "");
function LD(e, n) {
  if (Ds() !== null)
    throw new b(-602, ngDevMode && `${e.name}() cannot be called from within a reactive context.${` ${n}`}`);
}
class Ou {
  constructor(n, t) {
    f(this, "view");
    f(this, "node");
    this.view = n, this.node = t;
  }
}
/**
 * @internal
 * @nocollapse
 */
f(Ou, "__NG_ELEMENT_ID__", FD);
function FD() {
  return new Ou(I(), L());
}
const no = class no {
  constructor() {
    f(this, "taskId", 0);
    f(this, "pendingTasks", /* @__PURE__ */ new Set());
    f(this, "destroyed", !1);
    f(this, "pendingTask", new TI(!1));
  }
  get hasPendingTasks() {
    return this.destroyed ? !1 : this.pendingTask.value;
  }
  /**
   * In case the service is about to be destroyed, return a self-completing observable.
   * Otherwise, return the observable that emits the current state of pending tasks.
   */
  get hasPendingTasksObservable() {
    return this.destroyed ? new De((n) => {
      n.next(!1), n.complete();
    }) : this.pendingTask;
  }
  add() {
    !this.hasPendingTasks && !this.destroyed && this.pendingTask.next(!0);
    const n = this.taskId++;
    return this.pendingTasks.add(n), n;
  }
  has(n) {
    return this.pendingTasks.has(n);
  }
  remove(n) {
    this.pendingTasks.delete(n), this.pendingTasks.size === 0 && this.hasPendingTasks && this.pendingTask.next(!1);
  }
  ngOnDestroy() {
    this.pendingTasks.clear(), this.hasPendingTasks && this.pendingTask.next(!1), this.destroyed = !0, this.pendingTask.unsubscribe();
  }
};
/** @nocollapse */
f(
  no,
  "ɵprov",
  /** @pureOrBreakMyCode */
  /* @__PURE__ */ X({
    token: no,
    providedIn: "root",
    factory: () => new no()
  })
);
let Dn = no;
const to = class to {
  constructor() {
    f(this, "internalPendingTasks", S(Dn));
    f(this, "scheduler", S(Ho));
    f(this, "errorHandler", S(Qn));
  }
  /**
   * Adds a new task that should block application's stability.
   * @returns A cleanup function that removes a task when called.
   */
  add() {
    const n = this.internalPendingTasks.add();
    return () => {
      this.internalPendingTasks.has(n) && (this.scheduler.notify(
        11
        /* NotificationSource.PendingTaskRemoved */
      ), this.internalPendingTasks.remove(n));
    };
  }
  /**
   * Runs an asynchronous function and blocks the application's stability until the function completes.
   *
   * ```ts
   * pendingTasks.run(async () => {
   *   const userData = await fetch('/api/user');
   *   this.userData.set(userData);
   * });
   * ```
   *
   * @param fn The asynchronous function to execute
   * @developerPreview 19.0
   */
  run(n) {
    const t = this.add();
    n().catch(this.errorHandler).finally(t);
  }
};
/** @nocollapse */
f(
  to,
  "ɵprov",
  /** @pureOrBreakMyCode */
  /* @__PURE__ */ X({
    token: to,
    providedIn: "root",
    factory: () => new to()
  })
);
let ra = to;
function Gi(...e) {
}
const vs = class vs {
};
/** @nocollapse */
f(
  vs,
  "ɵprov",
  /** @pureOrBreakMyCode */
  /* @__PURE__ */ X({
    token: vs,
    providedIn: "root",
    factory: () => new jD()
  })
);
let oa = vs;
class jD {
  constructor() {
    f(this, "dirtyEffectCount", 0);
    f(this, "queues", /* @__PURE__ */ new Map());
  }
  add(n) {
    this.enqueue(n), this.schedule(n);
  }
  schedule(n) {
    n.dirty && this.dirtyEffectCount++;
  }
  remove(n) {
    const t = n.zone, r = this.queues.get(t);
    r.has(n) && (r.delete(n), n.dirty && this.dirtyEffectCount--);
  }
  enqueue(n) {
    const t = n.zone;
    this.queues.has(t) || this.queues.set(t, /* @__PURE__ */ new Set());
    const r = this.queues.get(t);
    r.has(n) || r.add(n);
  }
  /**
   * Run all scheduled effects.
   *
   * Execution order of effects within the same zone is guaranteed to be FIFO, but there is no
   * ordering guarantee between effects scheduled in different zones.
   */
  flush() {
    for (; this.dirtyEffectCount > 0; ) {
      let n = !1;
      for (const [t, r] of this.queues)
        t === null ? n || (n = this.flushQueue(r)) : n || (n = t.run(() => this.flushQueue(r)));
      n || (this.dirtyEffectCount = 0);
    }
  }
  flushQueue(n) {
    let t = !1;
    for (const r of n)
      r.dirty && (this.dirtyEffectCount--, t = !0, r.run());
    return t;
  }
}
/**
 * @license Angular v20.1.6
 * (c) 2010-2025 Google LLC. https://angular.io/
 * License: MIT
 */
/**
 * @license Angular v20.1.6
 * (c) 2010-2025 Google LLC. https://angular.io/
 * License: MIT
 */
function Tn(e) {
  return { toString: e }.toString();
}
const Yt = "__annotations__", Jt = "__parameters__", Xt = "__prop__metadata__";
function $o(e, n, t, r, o) {
  return Tn(() => {
    const i = Ru(n);
    function s(...c) {
      if (this instanceof s)
        return i.call(this, ...c), this;
      const a = new s(...c);
      return function(l) {
        return o && o(l, ...c), (l.hasOwnProperty(Yt) ? l[Yt] : Object.defineProperty(l, Yt, { value: [] })[Yt]).push(a), l;
      };
    }
    return t && (s.prototype = Object.create(t.prototype)), s.prototype.ngMetadataName = e, s.annotationCls = s, s;
  });
}
function Ru(e) {
  return function(...t) {
    if (e) {
      const r = e(...t);
      for (const o in r)
        this[o] = r[o];
    }
  };
}
function wr(e, n, t) {
  return Tn(() => {
    const r = Ru(n);
    function o(...i) {
      if (this instanceof o)
        return r.apply(this, i), this;
      const s = new o(...i);
      return c.annotation = s, c;
      function c(a, u, l) {
        const d = a.hasOwnProperty(Jt) ? a[Jt] : Object.defineProperty(a, Jt, { value: [] })[Jt];
        for (; d.length <= l; )
          d.push(null);
        return (d[l] = d[l] || []).push(s), a;
      }
    }
    return o.prototype.ngMetadataName = e, o.annotationCls = o, o;
  });
}
function Zn(e, n, t, r) {
  return Tn(() => {
    const o = Ru(n);
    function i(...s) {
      if (this instanceof i)
        return o.apply(this, s), this;
      const c = new i(...s);
      function a(u, l) {
        if (u === void 0)
          throw new Error("Standard Angular field decorators are not supported in JIT mode.");
        const d = u.constructor, h = d.hasOwnProperty(Xt) ? d[Xt] : Object.defineProperty(d, Xt, { value: {} })[Xt];
        h[l] = h.hasOwnProperty(l) && h[l] || [], h[l].unshift(c);
      }
      return a;
    }
    return t && (i.prototype = Object.create(t.prototype)), i.prototype.ngMetadataName = e, i.annotationCls = i, i;
  });
}
const Mp = Oo(
  // Disable tslint because `DecoratorFlags` is a const enum which gets inlined.
  wr("Inject", (e) => ({ token: e })),
  -1
  /* DecoratorFlags.Inject */
), HD = (
  // Disable tslint because `InternalInjectFlags` is a const enum which gets inlined.
  // tslint:disable-next-line: no-toplevel-property-access
  Oo(
    wr("Optional"),
    8
    /* InternalInjectFlags.Optional */
  )
), $D = (
  // Disable tslint because `InternalInjectFlags` is a const enum which gets inlined.
  // tslint:disable-next-line: no-toplevel-property-access
  Oo(
    wr("Self"),
    2
    /* InternalInjectFlags.Self */
  )
), BD = (
  // Disable tslint because `InternalInjectFlags` is a const enum which gets inlined.
  // tslint:disable-next-line: no-toplevel-property-access
  Oo(
    wr("SkipSelf"),
    4
    /* InternalInjectFlags.SkipSelf */
  )
), UD = (
  // Disable tslint because `InternalInjectFlags` is a const enum which gets inlined.
  // tslint:disable-next-line: no-toplevel-property-access
  Oo(
    wr("Host"),
    1
    /* InternalInjectFlags.Host */
  )
);
function qe(e) {
  const n = Ce.ng;
  if (n && n.ɵcompilerFacade)
    return n.ɵcompilerFacade;
  if (typeof ngDevMode > "u" || ngDevMode) {
    console.error(`JIT compilation failed for ${e.kind}`, e.type);
    let t = `The ${e.kind} '${e.type.name}' needs to be compiled using the JIT compiler, but '@angular/compiler' is not available.

`;
    throw e.usage === 1 ? (t += `The ${e.kind} is part of a library that has been partially compiled.
`, t += `However, the Angular Linker has not processed the library such that JIT compilation is used as fallback.
`, t += `
`, t += `Ideally, the library is processed using the Angular Linker to become fully AOT compiled.
`) : t += `JIT compilation is discouraged for production use-cases! Consider using AOT mode instead.
`, t += `Alternatively, the JIT compiler should be loaded by bootstrapping using '@angular/platform-browser-dynamic' or '@angular/platform-server',
`, t += `or manually provide the compiler with 'import "@angular/compiler";' before bootstrapping.`, new Error(t);
  } else
    throw new Error("JIT compiler unavailable");
}
const Jl = {
  ɵɵdefineInjectable: X,
  ɵɵdefineInjector: cu,
  ɵɵinject: we,
  ɵɵinvalidFactoryDep: wh,
  resolveForwardRef: x
}, VD = Function;
function Br(e) {
  return typeof e == "function";
}
const WD = /^function\s+\S+\(\)\s*{[\s\S]+\.apply\(this,\s*(arguments|(?:[^()]+\(\[\],)?[^()]+\(arguments\).*)\)/, zD = /^class\s+[A-Za-z\d$_]*\s*extends\s+[^{]+{/, GD = /^class\s+[A-Za-z\d$_]*\s*extends\s+[^{]+{[\s\S]*constructor\s*\(/, qD = /^class\s+[A-Za-z\d$_]*\s*extends\s+[^{]+{[\s\S]*constructor\s*\(\)\s*{[^}]*super\(\.\.\.arguments\)/;
function QD(e) {
  return WD.test(e) || qD.test(e) || zD.test(e) && !GD.test(e);
}
class ZD {
  constructor(n) {
    f(this, "_reflect");
    this._reflect = n || Ce.Reflect;
  }
  factory(n) {
    return (...t) => new n(...t);
  }
  /** @internal */
  _zipTypesAndAnnotations(n, t) {
    let r;
    typeof n > "u" ? r = qr(t.length) : r = qr(n.length);
    for (let o = 0; o < r.length; o++)
      typeof n > "u" ? r[o] = [] : n[o] && n[o] != Object ? r[o] = [n[o]] : r[o] = [], t && t[o] != null && (r[o] = r[o].concat(t[o]));
    return r;
  }
  _ownParameters(n, t) {
    const r = n.toString();
    if (QD(r))
      return null;
    if (n.parameters && n.parameters !== t.parameters)
      return n.parameters;
    const o = n.ctorParameters;
    if (o && o !== t.ctorParameters) {
      const c = typeof o == "function" ? o() : o, a = c.map((l) => l && l.type), u = c.map((l) => l && pc(l.decorators));
      return this._zipTypesAndAnnotations(a, u);
    }
    const i = n.hasOwnProperty(Jt) && n[Jt], s = this._reflect && this._reflect.getOwnMetadata && this._reflect.getOwnMetadata("design:paramtypes", n);
    return s || i ? this._zipTypesAndAnnotations(s, i) : qr(n.length);
  }
  parameters(n) {
    if (!Br(n))
      return [];
    const t = ci(n);
    let r = this._ownParameters(n, t);
    return !r && t !== Object && (r = this.parameters(t)), r || [];
  }
  _ownAnnotations(n, t) {
    if (n.annotations && n.annotations !== t.annotations) {
      let r = n.annotations;
      return typeof r == "function" && r.annotations && (r = r.annotations), r;
    }
    return n.decorators && n.decorators !== t.decorators ? pc(n.decorators) : n.hasOwnProperty(Yt) ? n[Yt] : null;
  }
  annotations(n) {
    if (!Br(n))
      return [];
    const t = ci(n), r = this._ownAnnotations(n, t) || [];
    return (t !== Object ? this.annotations(t) : []).concat(r);
  }
  _ownPropMetadata(n, t) {
    if (n.propMetadata && n.propMetadata !== t.propMetadata) {
      let r = n.propMetadata;
      return typeof r == "function" && r.propMetadata && (r = r.propMetadata), r;
    }
    if (n.propDecorators && n.propDecorators !== t.propDecorators) {
      const r = n.propDecorators, o = {};
      return Object.keys(r).forEach((i) => {
        o[i] = pc(r[i]);
      }), o;
    }
    return n.hasOwnProperty(Xt) ? n[Xt] : null;
  }
  propMetadata(n) {
    if (!Br(n))
      return {};
    const t = ci(n), r = {};
    if (t !== Object) {
      const i = this.propMetadata(t);
      Object.keys(i).forEach((s) => {
        r[s] = i[s];
      });
    }
    const o = this._ownPropMetadata(n, t);
    return o && Object.keys(o).forEach((i) => {
      const s = [];
      r.hasOwnProperty(i) && s.push(...r[i]), s.push(...o[i]), r[i] = s;
    }), r;
  }
  ownPropMetadata(n) {
    return Br(n) ? this._ownPropMetadata(n, ci(n)) || {} : {};
  }
  hasLifecycleHook(n, t) {
    return n instanceof VD && t in n.prototype;
  }
}
function pc(e) {
  return e ? e.map((n) => {
    const r = n.type.annotationCls, o = n.args ? n.args : [];
    return new r(...o);
  }) : [];
}
function ci(e) {
  const n = e.prototype ? Object.getPrototypeOf(e.prototype) : null;
  return (n ? n.constructor : null) || Object;
}
class YD {
  constructor(n, t, r) {
    f(this, "previousValue");
    f(this, "currentValue");
    f(this, "firstChange");
    this.previousValue = n, this.currentValue = t, this.firstChange = r;
  }
  /**
   * Check whether the new value is the first value assigned.
   */
  isFirstChange() {
    return this.firstChange;
  }
}
function Dp(e, n, t, r) {
  n !== null ? n.applyValueToInputSignal(n, r) : e[t] = r;
}
const JD = /* @__PURE__ */ (() => {
  const e = () => Ep;
  return e.ngInherit = !0, e;
})();
function Ep(e) {
  return e.type.prototype.ngOnChanges && (e.setInput = KD), XD;
}
function XD() {
  const e = _p(this), n = e == null ? void 0 : e.current;
  if (n) {
    const t = e.previous;
    if (t === Qe)
      e.previous = n;
    else
      for (let r in n)
        t[r] = n[r];
    e.current = null, this.ngOnChanges(n);
  }
}
function KD(e, n, t, r, o) {
  const i = this.declaredInputs[r];
  ngDevMode && yr(i, "Name of input in ngOnChanges has to be a string");
  const s = _p(e) || eE(e, { previous: Qe, current: null }), c = s.current || (s.current = {}), a = s.previous, u = a[i];
  c[i] = new YD(u && u.currentValue, t, a === Qe), Dp(e, n, o, t);
}
const bp = "__ngSimpleChanges__";
function _p(e) {
  return e[bp] || null;
}
function eE(e, n) {
  return e[bp] = n;
}
const Et = [], nE = () => {
};
function tE(e) {
  const n = Et.indexOf(e);
  n !== -1 && Et.splice(n, 1);
}
function Cp(e) {
  return e !== null ? (Et.includes(e) || Et.push(e), () => tE(e)) : (Et.length = 0, nE);
}
const Q = function(e, n = null, t) {
  for (let r = 0; r < Et.length; r++) {
    const o = Et[r];
    o(e, n, t);
  }
};
function rE(e, n, t) {
  ngDevMode && Se(t);
  const { ngOnChanges: r, ngOnInit: o, ngDoCheck: i } = n.type.prototype;
  if (r) {
    const s = Ep(n);
    (t.preOrderHooks ?? (t.preOrderHooks = [])).push(e, s), (t.preOrderCheckHooks ?? (t.preOrderCheckHooks = [])).push(e, s);
  }
  o && (t.preOrderHooks ?? (t.preOrderHooks = [])).push(0 - e, o), i && ((t.preOrderHooks ?? (t.preOrderHooks = [])).push(e, i), (t.preOrderCheckHooks ?? (t.preOrderCheckHooks = [])).push(e, i));
}
function wp(e, n) {
  ngDevMode && Se(e);
  for (let t = n.directiveStart, r = n.directiveEnd; t < r; t++) {
    const o = e.data[t];
    ngDevMode && E(o, "Expecting DirectiveDef");
    const i = o.type.prototype, { ngAfterContentInit: s, ngAfterContentChecked: c, ngAfterViewInit: a, ngAfterViewChecked: u, ngOnDestroy: l } = i;
    s && (e.contentHooks ?? (e.contentHooks = [])).push(-t, s), c && ((e.contentHooks ?? (e.contentHooks = [])).push(t, c), (e.contentCheckHooks ?? (e.contentCheckHooks = [])).push(t, c)), a && (e.viewHooks ?? (e.viewHooks = [])).push(-t, a), u && ((e.viewHooks ?? (e.viewHooks = [])).push(t, u), (e.viewCheckHooks ?? (e.viewCheckHooks = [])).push(t, u)), l != null && (e.destroyHooks ?? (e.destroyHooks = [])).push(t, l);
  }
}
function Mi(e, n, t) {
  Tp(e, n, 3, t);
}
function Di(e, n, t, r) {
  ngDevMode && Ve(t, 3, "Init pre-order hooks should not be called more than once"), (e[A] & 3) === t && Tp(e, n, t, r);
}
function gc(e, n) {
  ngDevMode && Ve(n, 3, "Init hooks phase should not be incremented after all init hooks have been run.");
  let t = e[A];
  (t & 3) === n && (t &= 16383, t += 1, e[A] = t);
}
function Tp(e, n, t, r) {
  ngDevMode && T(Wt(), !1, "Hooks should never be run when in check no changes mode.");
  const o = r !== void 0 ? e[Zt] & 65535 : 0, i = r ?? -1, s = n.length - 1;
  let c = 0;
  for (let a = o; a < s; a++)
    if (typeof n[a + 1] == "number") {
      if (c = n[a], r != null && c >= r)
        break;
    } else
      n[a] < 0 && (e[Zt] += 65536), (c < i || i == -1) && (oE(e, t, n, a), e[Zt] = (e[Zt] & 4294901760) + a + 2), a++;
}
function Xl(e, n) {
  Q(4, e, n);
  const t = N(null);
  try {
    n.call(e);
  } finally {
    N(t), Q(5, e, n);
  }
}
function oE(e, n, t, r) {
  const o = t[r] < 0, i = t[r + 1], s = o ? -t[r] : t[r], c = e[s];
  o ? e[A] >> 14 < e[Zt] >> 16 && (e[A] & 3) === n && (e[A] += 16384, Xl(c, i)) : Xl(c, i);
}
const tr = -1;
class Tr {
  constructor(n, t, r, o) {
    f(this, "factory");
    f(this, "name");
    /**
     * The inject implementation to be activated when using the factory.
     */
    f(this, "injectImpl");
    /**
     * Marker set to true during factory invocation to see if we get into recursive loop.
     * Recursive loop causes an error to be displayed.
     */
    f(this, "resolving", !1);
    /**
     * Marks that the token can see other Tokens declared in `viewProviders` on the same node.
     */
    f(this, "canSeeViewProviders");
    /**
     * An array of factories to use in case of `multi` provider.
     */
    f(this, "multi");
    /**
     * Number of `multi`-providers which belong to the component.
     *
     * This is needed because when multiple components and directives declare the `multi` provider
     * they have to be concatenated in the correct order.
     *
     * Example:
     *
     * If we have a component and directive active an a single element as declared here
     * ```ts
     * component:
     *   providers: [ {provide: String, useValue: 'component', multi: true} ],
     *   viewProviders: [ {provide: String, useValue: 'componentView', multi: true} ],
     *
     * directive:
     *   providers: [ {provide: String, useValue: 'directive', multi: true} ],
     * ```
     *
     * Then the expected results are:
     *
     * ```ts
     * providers: ['component', 'directive']
     * viewProviders: ['component', 'componentView', 'directive']
     * ```
     *
     * The way to think about it is that the `viewProviders` have been inserted after the component
     * but before the directives, which is why we need to know how many `multi`s have been declared by
     * the component.
     */
    f(this, "componentProviders");
    /**
     * Current index of the Factory in the `data`. Needed for `viewProviders` and `providers` merging.
     * See `providerFactory`.
     */
    f(this, "index");
    /**
     * Because the same `multi` provider can be declared in `providers` and `viewProviders` it is
     * possible for `viewProviders` to shadow the `providers`. For this reason we store the
     * `provideFactory` of the `providers` so that `providers` can be extended with `viewProviders`.
     *
     * Example:
     *
     * Given:
     * ```ts
     * providers: [ {provide: String, useValue: 'all', multi: true} ],
     * viewProviders: [ {provide: String, useValue: 'viewOnly', multi: true} ],
     * ```
     *
     * We have to return `['all']` in case of content injection, but `['all', 'viewOnly']` in case
     * of view injection. We further have to make sure that the shared instances (in our case
     * `all`) are the exact same instance in both the content as well as the view injection. (We
     * have to make sure that we don't double instantiate.) For this reason the `viewProviders`
     * `Factory` has a pointer to the shadowed `providers` factory so that it can instantiate the
     * `providers` (`['all']`) and then extend it with `viewProviders` (`['all'] + ['viewOnly'] =
     * ['all', 'viewOnly']`).
     */
    f(this, "providerFactory");
    this.factory = n, this.name = o, ngDevMode && E(n, "Factory not specified"), ngDevMode && T(typeof n, "function", "Expected factory function."), this.canSeeViewProviders = t, this.injectImpl = r;
  }
}
function ia(e) {
  let n = "";
  return e & 1 && (n += "|Text"), e & 2 && (n += "|Element"), e & 4 && (n += "|Container"), e & 8 && (n += "|ElementContainer"), e & 16 && (n += "|Projection"), e & 32 && (n += "|IcuContainer"), e & 64 && (n += "|Placeholder"), e & 128 && (n += "|LetDeclaration"), n.length > 0 ? n.substring(1) : n;
}
function iE(e) {
  return e != null && typeof e == "object" && (e.insertBeforeIndex === null || typeof e.insertBeforeIndex == "number" || Array.isArray(e.insertBeforeIndex));
}
function sE(e) {
  return (e.flags & 8) !== 0;
}
function cE(e) {
  return (e.flags & 16) !== 0;
}
function le(e, n, t) {
  E(e, "should be called with a TNode"), (e.type & n) === 0 && C(t || `Expected [${ia(n)}] but got ${ia(e.type)}.`);
}
function aE(e) {
  e === 2 || e === 1 || e === 4 || e === 8 || e === 32 || e === 16 || e === 64 || e === 128 || C(`Expected TNodeType to have only a single type selected, but got ${ia(e)}.`);
}
function uE(e, n, t) {
  let r = 0;
  for (; r < t.length; ) {
    const o = t[r];
    if (typeof o == "number") {
      if (o !== 0)
        break;
      r++;
      const i = t[r++], s = t[r++], c = t[r++];
      e.setAttribute(n, s, c, i);
    } else {
      const i = o, s = t[++r];
      kp(i) ? e.setProperty(n, i, s) : e.setAttribute(n, i, s), r++;
    }
  }
  return r;
}
function Sp(e) {
  return e === 3 || e === 4 || e === 6;
}
function kp(e) {
  return e.charCodeAt(0) === 64;
}
function lr(e, n) {
  if (!(n === null || n.length === 0)) if (e === null || e.length === 0)
    e = n.slice();
  else {
    let t = -1;
    for (let r = 0; r < n.length; r++) {
      const o = n[r];
      typeof o == "number" ? t = o : t === 0 || (t === -1 || t === 2 ? Kl(e, t, o, null, n[++r]) : Kl(e, t, o, null, null));
    }
  }
  return e;
}
function Kl(e, n, t, r, o) {
  let i = 0, s = e.length;
  if (n === -1)
    s = -1;
  else
    for (; i < e.length; ) {
      const c = e[i++];
      if (typeof c == "number") {
        if (c === n) {
          s = -1;
          break;
        } else if (c > n) {
          s = i - 1;
          break;
        }
      }
    }
  for (; i < e.length; ) {
    const c = e[i];
    if (typeof c == "number")
      break;
    if (c === t) {
      o !== null && (e[i + 1] = o);
      return;
    }
    i++, o !== null && i++;
  }
  s !== -1 && (e.splice(s, 0, n), i = s + 1), e.splice(i++, 0, t), o !== null && e.splice(i++, 0, o);
}
function Pu(e) {
  return e !== tr;
}
function go(e) {
  if (ngDevMode) {
    q(e, "Number expected"), Ve(e, -1, "Not a valid state.");
    const n = e & 32767;
    Bt(n, _, "Parent injector must be pointing past HEADER_OFFSET.");
  }
  return e & 32767;
}
function lE(e) {
  return e >> 16;
}
function mo(e, n) {
  let t = lE(e), r = n;
  for (; t > 0; )
    r = r[Hn], t--;
  return r;
}
let sa = !0;
function qi(e) {
  const n = sa;
  return sa = e, n;
}
const dE = 256, xp = dE - 1, Ap = 5;
let fE = 0;
const cn = {};
function hE(e, n, t) {
  ngDevMode && T(n.firstCreatePass, !0, "expected firstCreatePass to be true");
  let r;
  typeof t == "string" ? r = t.charCodeAt(0) || 0 : t.hasOwnProperty(Gr) && (r = t[Gr]), r == null && (r = t[Gr] = fE++);
  const o = r & xp, i = 1 << o;
  n.data[e + (o >> Ap)] |= i;
}
function Qi(e, n) {
  const t = Op(e, n);
  if (t !== -1)
    return t;
  const r = n[y];
  r.firstCreatePass && (e.injectorIndex = n.length, mc(r.data, e), mc(n, null), mc(r.blueprint, null));
  const o = Ns(e, n), i = e.injectorIndex;
  if (Pu(o)) {
    const s = go(o), c = mo(o, n), a = c[y].data;
    for (let u = 0; u < 8; u++)
      n[i + u] = c[s + u] | a[s + u];
  }
  return n[
    i + 8
    /* NodeInjectorOffset.PARENT */
  ] = o, i;
}
function mc(e, n) {
  e.push(0, 0, 0, 0, 0, 0, 0, 0, n);
}
function Op(e, n) {
  return e.injectorIndex === -1 || // If the injector index is the same as its parent's injector index, then the index has been
  // copied down from the parent node. No injector has been created yet on this node.
  e.parent && e.parent.injectorIndex === e.injectorIndex || // After the first template pass, the injector index might exist but the parent values
  // might not have been calculated yet for this instance
  n[
    e.injectorIndex + 8
    /* NodeInjectorOffset.PARENT */
  ] === null ? -1 : (ngDevMode && ue(n, e.injectorIndex), e.injectorIndex);
}
function Ns(e, n) {
  if (e.parent && e.parent.injectorIndex !== -1)
    return e.parent.injectorIndex;
  let t = 0, r = null, o = n;
  for (; o !== null; ) {
    if (r = Fp(o), r === null)
      return tr;
    if (ngDevMode && r && We(r, o[Hn]), t++, o = o[Hn], r.injectorIndex !== -1)
      return r.injectorIndex | t << 16;
  }
  return tr;
}
function ca(e, n, t) {
  hE(e, n, t);
}
function pE(e, n) {
  if (ngDevMode && le(
    e,
    15
    /* TNodeType.AnyRNode */
  ), ngDevMode && E(e, "expecting tNode"), n === "class")
    return e.classes;
  if (n === "style")
    return e.styles;
  const t = e.attrs;
  if (t) {
    const r = t.length;
    let o = 0;
    for (; o < r; ) {
      const i = t[o];
      if (Sp(i))
        break;
      if (i === 0)
        o = o + 2;
      else if (typeof i == "number")
        for (o++; o < r && typeof t[o] == "string"; )
          o++;
      else {
        if (i === n)
          return t[o + 1];
        o = o + 2;
      }
    }
  }
  return null;
}
function Rp(e, n, t) {
  if (t & 8 || e !== void 0)
    return e;
  hu(n, "NodeInjector");
}
function Pp(e, n, t, r) {
  if (t & 8 && r === void 0 && (r = null), (t & 3) === 0) {
    const o = e[oe], i = Le(void 0);
    try {
      return o ? o.get(
        n,
        r,
        t & 8
        /* InternalInjectFlags.Optional */
      ) : Ch(
        n,
        r,
        t & 8
        /* InternalInjectFlags.Optional */
      );
    } finally {
      Le(i);
    }
  }
  return Rp(r, n, t);
}
function Np(e, n, t, r = 0, o) {
  if (e !== null) {
    if (n[A] & 2048 && // The token must be present on the current node injector when the `Self`
    // flag is set, so the lookup on embedded view injector(s) can be skipped.
    !(r & 2)) {
      const s = IE(e, n, t, r, cn);
      if (s !== cn)
        return s;
    }
    const i = Lp(e, n, t, r, cn);
    if (i !== cn)
      return i;
  }
  return Pp(n, t, r, o);
}
function Lp(e, n, t, r, o) {
  const i = mE(t);
  if (typeof i == "function") {
    if (!ap(n, e, r))
      return r & 1 ? Rp(o, t, r) : Pp(n, t, r, o);
    try {
      let s;
      if (ngDevMode ? zr(new Y(L(), I()), t, () => {
        Li(t), s = i(r), Fi(s);
      }) : s = i(r), s == null && !(r & 8))
        hu(t);
      else
        return s;
    } finally {
      fp();
    }
  } else if (typeof i == "number") {
    let s = null, c = Op(e, n), a = tr, u = r & 1 ? n[pe][ye] : null;
    for ((c === -1 || r & 4) && (a = c === -1 ? Ns(e, n) : n[
      c + 8
      /* NodeInjectorOffset.PARENT */
    ], a === tr || !nd(r, !1) ? c = -1 : (s = n[y], c = go(a), n = mo(a, n))); c !== -1; ) {
      ngDevMode && Wh(n, c);
      const l = n[y];
      if (ngDevMode && We(l.data[
        c + 8
        /* NodeInjectorOffset.TNODE */
      ], n), ed(i, c, l.data)) {
        const d = gE(c, n, t, s, r, u);
        if (d !== cn)
          return d;
      }
      a = n[
        c + 8
        /* NodeInjectorOffset.PARENT */
      ], a !== tr && nd(r, n[y].data[
        c + 8
        /* NodeInjectorOffset.TNODE */
      ] === u) && ed(i, c, n) ? (s = l, c = go(a), n = mo(a, n)) : c = -1;
    }
  }
  return o;
}
function gE(e, n, t, r, o, i) {
  const s = n[y], c = s.data[
    e + 8
    /* NodeInjectorOffset.TNODE */
  ], a = r == null ? (
    // 1) This is the first invocation `previousTView == null` which means that we are at the
    // `TNode` of where injector is starting to look. In such a case the only time we are allowed
    // to look into the ViewProviders is if:
    // - we are on a component
    // - AND the injector set `includeViewProviders` to true (implying that the token can see
    // ViewProviders because it is the Component or a Service which itself was declared in
    // ViewProviders)
    Dr(c) && sa
  ) : (
    // 2) `previousTView != null` which means that we are now walking across the parent nodes.
    // In such a case we are only allowed to look into the ViewProviders if:
    // - We just crossed from child View to Parent View `previousTView != currentTView`
    // - AND the parent TNode is an Element.
    // This means that we just came from the Component's View and therefore are allowed to see
    // into the ViewProviders.
    r != s && (c.type & 3) !== 0
  ), u = o & 1 && i === c, l = Ei(c, s, t, a, u);
  return l !== null ? vo(n, s, l, c, o) : cn;
}
function Ei(e, n, t, r, o) {
  const i = e.providerIndexes, s = n.data, c = i & 1048575, a = e.directiveStart, u = e.directiveEnd, l = i >> 20, d = r ? c : c + l, h = o ? c + l : u;
  for (let p = d; p < h; p++) {
    const g = s[p];
    if (p < a && t === g || p >= a && g.type === t)
      return p;
  }
  if (o) {
    const p = s[a];
    if (p && Te(p) && p.type === t)
      return a;
  }
  return null;
}
let vc = [];
function vo(e, n, t, r, o) {
  let i = e[t];
  const s = n.data;
  if (i instanceof Tr) {
    const c = i;
    if (ngDevMode && vc.push(c.name ?? "unknown"), c.resolving) {
      const p = P(s[t]);
      throw ngDevMode ? Dh(p, vc) : fu(p);
    }
    const a = qi(c.canSeeViewProviders);
    c.resolving = !0;
    const u = s[t].type || s[t];
    let l;
    if (ngDevMode) {
      const p = new Y(r, e);
      l = Ne({ injector: p, token: u });
    }
    const d = c.injectImpl ? Le(c.injectImpl) : null, h = ap(
      e,
      r,
      0
      /* InternalInjectFlags.Default */
    );
    ngDevMode && T(h, !0, "Because flags do not contain `SkipSelf' we expect this to always succeed.");
    try {
      ngDevMode && Li(u), i = e[t] = c.factory(void 0, o, s, e, r), ngDevMode && Fi(i), n.firstCreatePass && t >= r.directiveStart && (ngDevMode && uD(s[t]), rE(t, s[t], n));
    } finally {
      ngDevMode && Ne(l), d !== null && Le(d), qi(a), c.resolving = !1, fp(), ngDevMode && (vc = []);
    }
  }
  return i;
}
function mE(e) {
  if (ngDevMode && E(e, "token must be defined"), typeof e == "string")
    return e.charCodeAt(0) || 0;
  const n = (
    // First check with `hasOwnProperty` so we don't get an inherited ID.
    e.hasOwnProperty(Gr) ? e[Gr] : void 0
  );
  return typeof n == "number" ? n >= 0 ? n & xp : (ngDevMode && T(n, -1, "Expecting to get Special Injector Id"), vE) : n;
}
function ed(e, n, t) {
  const r = 1 << e;
  return !!(t[n + (e >> Ap)] & r);
}
function nd(e, n) {
  return !(e & 2) && !(e & 1 && n);
}
function Yn(e) {
  return e._lView;
}
function zt(e) {
  return e._tNode;
}
class Y {
  constructor(n, t) {
    f(this, "_tNode");
    f(this, "_lView");
    this._tNode = n, this._lView = t;
  }
  get(n, t, r) {
    return Np(this._tNode, this._lView, n, ho(r), t);
  }
}
function vE() {
  return new Y(L(), I());
}
function yE(e) {
  return Tn(() => {
    const n = e.prototype.constructor, t = n[mn] || aa(n), r = Object.prototype;
    let o = Object.getPrototypeOf(e.prototype).constructor;
    for (; o && o !== r; ) {
      const i = o[mn] || aa(o);
      if (i && i !== t)
        return i;
      o = Object.getPrototypeOf(o);
    }
    return (i) => new i();
  });
}
function aa(e) {
  return bs(e) ? () => {
    const n = aa(x(e));
    return n && n();
  } : Ct(e);
}
function IE(e, n, t, r, o) {
  let i = e, s = n;
  for (; i !== null && s !== null && s[A] & 2048 && !Un(s); ) {
    ngDevMode && We(i, s);
    const c = Lp(i, s, t, r | 2, cn);
    if (c !== cn)
      return c;
    let a = i.parent;
    if (!a) {
      const u = s[Hh];
      if (u) {
        const l = u.get(t, cn, r);
        if (l !== cn)
          return l;
      }
      a = Fp(s), s = s[Hn];
    }
    i = a;
  }
  return o;
}
function Fp(e) {
  const n = e[y], t = n.type;
  return t === 2 ? (ngDevMode && E(n.declTNode, "Embedded TNodes should have declaration parents."), n.declTNode) : t === 1 ? e[ye] : null;
}
function jp(e) {
  return pE(L(), e);
}
const ME = wr("Attribute", (e) => ({
  attributeName: e,
  __NG_ELEMENT_ID__: () => jp(e)
}));
let td = null;
function Nu() {
  return td = td || new ZD();
}
function Ls(e) {
  return Hp(Nu().parameters(e));
}
function Hp(e) {
  return e.map((n) => DE(n));
}
function DE(e) {
  const n = {
    token: null,
    attribute: null,
    host: !1,
    optional: !1,
    self: !1,
    skipSelf: !1
  };
  if (Array.isArray(e) && e.length > 0)
    for (let t = 0; t < e.length; t++) {
      const r = e[t];
      if (r === void 0)
        continue;
      const o = Object.getPrototypeOf(r);
      if (r instanceof HD || o.ngMetadataName === "Optional")
        n.optional = !0;
      else if (r instanceof BD || o.ngMetadataName === "SkipSelf")
        n.skipSelf = !0;
      else if (r instanceof $D || o.ngMetadataName === "Self")
        n.self = !0;
      else if (r instanceof UD || o.ngMetadataName === "Host")
        n.host = !0;
      else if (r instanceof Mp)
        n.token = r.token;
      else if (r instanceof ME) {
        if (r.attributeName === void 0)
          throw new b(204, ngDevMode && "Attribute name must be defined.");
        n.attribute = r.attributeName;
      } else
        n.token = r;
    }
  else e === void 0 || Array.isArray(e) && e.length === 0 ? n.token = null : n.token = e;
  return n;
}
function EE(e, n) {
  let t = null, r = null;
  e.hasOwnProperty(Ni) || Object.defineProperty(e, Ni, {
    get: () => (t === null && (t = qe({
      usage: 0,
      kind: "injectable",
      type: e
    }).compileInjectable(Jl, `ng:///${e.name}/ɵprov.js`, wE(e, n))), t)
  }), e.hasOwnProperty(mn) || Object.defineProperty(e, mn, {
    get: () => {
      if (r === null) {
        const o = qe({
          usage: 0,
          kind: "injectable",
          type: e
        });
        r = o.compileFactory(Jl, `ng:///${e.name}/ɵfac.js`, {
          name: e.name,
          type: e,
          typeArgumentCount: 0,
          // In JIT mode types are not available nor used.
          deps: Ls(e),
          target: o.FactoryTarget.Injectable
        });
      }
      return r;
    },
    // Leave this configurable so that the factories from directives or pipes can take precedence.
    configurable: !0
  });
}
const bE = W({
  provide: String,
  useValue: W
});
function rd(e) {
  return e.useClass !== void 0;
}
function _E(e) {
  return bE in e;
}
function od(e) {
  return e.useFactory !== void 0;
}
function CE(e) {
  return e.useExisting !== void 0;
}
function wE(e, n) {
  const t = n || { providedIn: null }, r = {
    name: e.name,
    type: e,
    typeArgumentCount: 0,
    providedIn: t.providedIn
  };
  return (rd(t) || od(t)) && t.deps !== void 0 && (r.deps = Hp(t.deps)), rd(t) ? r.useClass = t.useClass : _E(t) ? r.useValue = t.useValue : od(t) ? r.useFactory = t.useFactory : CE(t) && (r.useExisting = t.useExisting), r;
}
const on = $o("Injectable", void 0, void 0, void 0, (e, n) => EE(e, n));
function TE() {
  return Sr(L(), I());
}
function Sr(e, n) {
  return new Bo(xe(e, n));
}
class Bo {
  constructor(n) {
    /**
     * <div class="docs-alert docs-alert-important">
     *   <header>Use with caution</header>
     *   <p>
     *    Use this API as the last resort when direct access to DOM is needed. Use templating and
     *    data-binding provided by Angular instead. If used, it is recommended in combination with
     *    {@link /best-practices/security#direct-use-of-the-dom-apis-and-explicit-sanitization-calls DomSanitizer}
     *    for maxiumum security;
     *   </p>
     * </div>
     */
    f(this, "nativeElement");
    this.nativeElement = n;
  }
}
/**
 * @internal
 * @nocollapse
 */
f(Bo, "__NG_ELEMENT_ID__", TE);
function SE(e) {
  return e instanceof Bo ? e.nativeElement : e;
}
function kE() {
  return this._results[Symbol.iterator]();
}
var Pf;
Pf = Symbol.iterator;
class xE {
  /**
   * @param emitDistinctChangesOnly Whether `QueryList.changes` should fire only when actual change
   *     has occurred. Or if it should fire when query is recomputed. (recomputing could resolve in
   *     the same result)
   */
  constructor(n = !1) {
    f(this, "_emitDistinctChangesOnly");
    f(this, "dirty", !0);
    f(this, "_onDirty");
    f(this, "_results", []);
    f(this, "_changesDetected", !1);
    f(this, "_changes");
    f(this, "length", 0);
    f(this, "first");
    f(this, "last");
    f(this, Pf, kE);
    this._emitDistinctChangesOnly = n;
  }
  /**
   * Returns `Observable` of `QueryList` notifying the subscriber of changes.
   */
  get changes() {
    return this._changes ?? (this._changes = new Ao());
  }
  /**
   * Returns the QueryList entry at `index`.
   */
  get(n) {
    return this._results[n];
  }
  /**
   * See
   * [Array.map](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/map)
   */
  map(n) {
    return this._results.map(n);
  }
  filter(n) {
    return this._results.filter(n);
  }
  /**
   * See
   * [Array.find](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/find)
   */
  find(n) {
    return this._results.find(n);
  }
  /**
   * See
   * [Array.reduce](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/reduce)
   */
  reduce(n, t) {
    return this._results.reduce(n, t);
  }
  /**
   * See
   * [Array.forEach](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/forEach)
   */
  forEach(n) {
    this._results.forEach(n);
  }
  /**
   * See
   * [Array.some](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/some)
   */
  some(n) {
    return this._results.some(n);
  }
  /**
   * Returns a copy of the internal results list as an Array.
   */
  toArray() {
    return this._results.slice();
  }
  toString() {
    return this._results.toString();
  }
  /**
   * Updates the stored data of the query list, and resets the `dirty` flag to `false`, so that
   * on change detection, it will not notify of changes to the queries, unless a new change
   * occurs.
   *
   * @param resultsTree The query results to store
   * @param identityAccessor Optional function for extracting stable object identity from a value
   *    in the array. This function is executed for each element of the query result list while
   *    comparing current query list with the new one (provided as a first argument of the `reset`
   *    function) to detect if the lists are different. If the function is not provided, elements
   *    are compared as is (without any pre-processing).
   */
  reset(n, t) {
    this.dirty = !1;
    const r = Fe(n);
    (this._changesDetected = !YM(this._results, r, t)) && (this._results = r, this.length = r.length, this.last = r[this.length - 1], this.first = r[0]);
  }
  /**
   * Triggers a change event by emitting on the `changes` {@link EventEmitter}.
   */
  notifyOnChanges() {
    this._changes !== void 0 && (this._changesDetected || !this._emitDistinctChangesOnly) && this._changes.next(this);
  }
  /** @internal */
  onDirty(n) {
    this._onDirty = n;
  }
  /** internal */
  setDirty() {
    var n;
    this.dirty = !0, (n = this._onDirty) == null || n.call(this);
  }
  /** internal */
  destroy() {
    this._changes !== void 0 && (this._changes.complete(), this._changes.unsubscribe());
  }
}
function $p(e) {
  return (e.flags & 128) === 128;
}
var dr;
(function(e) {
  e[e.OnPush = 0] = "OnPush", e[e.Default = 1] = "Default";
})(dr || (dr = {}));
const Fs = /* @__PURE__ */ new Map();
let AE = 0;
function OE() {
  return AE++;
}
function RE(e) {
  ngDevMode && q(e[kt], "LView must have an ID in order to be registered"), Fs.set(e[kt], e);
}
function Bp(e) {
  return ngDevMode && q(e, "ID used for LView lookup must be a number"), Fs.get(e) || null;
}
function ua(e) {
  ngDevMode && q(e[kt], "Cannot stop tracking an LView that does not have an ID"), Fs.delete(e[kt]);
}
function PE() {
  return Fs;
}
class NE {
  constructor(n, t, r) {
    f(this, "lViewId");
    f(this, "nodeIndex");
    f(this, "native");
    /**
     * The instance of the Component node.
     */
    f(this, "component");
    /**
     * The list of active directives that exist on this element.
     */
    f(this, "directives");
    /**
     * The map of local references (local reference name => element or directive instance) that
     * exist on this element.
     */
    f(this, "localRefs");
    this.lViewId = n, this.nodeIndex = t, this.native = r;
  }
  /** Component's parent view data. */
  get lView() {
    return Bp(this.lViewId);
  }
}
function Jn(e) {
  let n = Qr(e);
  if (n) {
    if (re(n)) {
      const t = n;
      let r, o, i;
      if (Wp(e)) {
        if (r = zp(t, e), r == -1)
          throw new Error("The provided component was not found in the application");
        o = e;
      } else if (LE(e)) {
        if (r = jE(t, e), r == -1)
          throw new Error("The provided directive was not found in the application");
        i = Gp(r, t);
      } else if (r = id(t, e), r == -1)
        return null;
      const s = ve(t[r]), c = Qr(s), a = c && !Array.isArray(c) ? c : la(t, r, s);
      if (o && a.component === void 0 && (a.component = o, He(a.component, a)), i && a.directives === void 0) {
        a.directives = i;
        for (let u = 0; u < i.length; u++)
          He(i[u], a);
      }
      He(a.native, a), n = a;
    }
  } else {
    const t = e;
    ngDevMode && mt(t);
    let r = t;
    for (; r = r.parentNode; ) {
      const o = Qr(r);
      if (o) {
        const i = Array.isArray(o) ? o : o.lView;
        if (!i)
          return null;
        const s = id(i, t);
        if (s >= 0) {
          const c = ve(i[s]), a = la(i, s, c);
          He(c, a), n = a;
          break;
        }
      }
    }
  }
  return n || null;
}
function la(e, n, t) {
  return new NE(e[kt], n, t);
}
function Up(e) {
  let n = Qr(e), t;
  if (re(n)) {
    const r = n, o = zp(r, e);
    t = Ye(o, r);
    const i = la(r, o, t[ce]);
    i.component = e, He(e, i), He(i.native, i);
  } else {
    const r = n, o = r.lView;
    ngDevMode && ze(o), t = Ye(r.nodeIndex, o);
  }
  return t;
}
const da = "__ngContext__";
function He(e, n) {
  ngDevMode && E(e, "Target expected"), re(n) ? (e[da] = n[kt], RE(n)) : e[da] = n;
}
function Qr(e) {
  ngDevMode && E(e, "Target expected");
  const n = e[da];
  return typeof n == "number" ? Bp(n) : n || null;
}
function Vp(e) {
  const n = Qr(e);
  return n ? re(n) ? n : n.lView : null;
}
function Wp(e) {
  return e && e.constructor && e.constructor.ɵcmp;
}
function LE(e) {
  return e && e.constructor && e.constructor.ɵdir;
}
function id(e, n) {
  const t = e[y];
  for (let r = _; r < t.bindingStartIndex; r++)
    if (ve(e[r]) === n)
      return r;
  return -1;
}
function FE(e) {
  if (e.child)
    return e.child;
  if (e.next)
    return e.next;
  for (; e.parent && !e.parent.next; )
    e = e.parent;
  return e.parent && e.parent.next;
}
function zp(e, n) {
  const t = e[y].components;
  if (t)
    for (let r = 0; r < t.length; r++) {
      const o = t[r];
      if (Ye(o, e)[V] === n)
        return o;
    }
  else if (Ye(_, e)[V] === n)
    return _;
  return -1;
}
function jE(e, n) {
  let t = e[y].firstChild;
  for (; t; ) {
    const r = t.directiveStart, o = t.directiveEnd;
    for (let i = r; i < o; i++)
      if (e[i] === n)
        return t.index;
    t = FE(t);
  }
  return -1;
}
function Gp(e, n) {
  const t = n[y].data[e];
  if (t.directiveStart === 0)
    return B;
  const r = [];
  for (let o = t.directiveStart; o < t.directiveEnd; o++) {
    const i = n[o];
    Wp(i) || r.push(i);
  }
  return r;
}
function HE(e, n) {
  const t = n[y].data[e];
  return Dr(t) ? n[t.directiveStart + t.componentOffset] : null;
}
function $E(e) {
  ngDevMode && E(e, "component");
  let n = re(e) ? e : Vp(e);
  for (; n && !Un(n); )
    n = In(n);
  return ngDevMode && ze(n), n;
}
function BE(e) {
  const n = $E(e);
  return ngDevMode && E(n[V], "Root view has no context. Perhaps it is disconnected?"), n[V];
}
function qp(e) {
  return Zp(e[Tt]);
}
function Qp(e) {
  return Zp(e[Me]);
}
function Zp(e) {
  for (; e !== null && !ke(e); )
    e = e[Me];
  return e;
}
function Yp(e) {
  ngDevMode && Lu(e);
  const n = Jn(e);
  if (n === null)
    return null;
  if (n.component === void 0) {
    const t = n.lView;
    if (t === null)
      return null;
    n.component = HE(n.nodeIndex, t);
  }
  return n.component;
}
function UE(e) {
  Lu(e);
  const n = Jn(e), t = n ? n.lView : null;
  return t === null ? null : t[V];
}
function VE(e) {
  const n = Jn(e);
  let t = n ? n.lView : null;
  if (t === null)
    return null;
  let r;
  for (; t[y].type === 2 && (r = In(t)); )
    t = r;
  return Un(t) ? null : t[V];
}
function Jp(e) {
  const n = Vp(e);
  return n !== null ? [BE(n)] : [];
}
function WE(e) {
  const n = Jn(e), t = n ? n.lView : null;
  if (t === null)
    return tn.NULL;
  const r = t[y].data[n.nodeIndex];
  return new Y(r, t);
}
function zE(e) {
  if (e instanceof Text)
    return [];
  const n = Jn(e), t = n ? n.lView : null;
  if (t === null)
    return [];
  const r = t[y], o = n.nodeIndex;
  return r != null && r.data[o] ? (n.directives === void 0 && (n.directives = Gp(o, t)), n.directives === null ? [] : [...n.directives]) : [];
}
var sd;
(function(e) {
  e.Angular = "angular", e.ACX = "acx", e.Wiz = "wiz";
})(sd || (sd = {}));
var cd;
(function(e) {
  e[e.Default = 0] = "Default", e[e.OnPush = 1] = "OnPush";
})(cd || (cd = {}));
var ad;
(function(e) {
  e[e.Emulated = 0] = "Emulated", e[e.None = 1] = "None";
})(ad || (ad = {}));
function GE(e) {
  const { constructor: n } = e;
  if (!n)
    throw new Error("Unable to find the instance constructor");
  const t = H(n);
  if (t)
    return {
      inputs: ud(t.inputs),
      outputs: t.outputs,
      encapsulation: t.encapsulation,
      changeDetection: t.onPush ? dr.OnPush : dr.Default
    };
  const r = fe(n);
  return r ? { inputs: ud(r.inputs), outputs: r.outputs } : null;
}
function qE(e) {
  return Jn(e).native;
}
function QE(e) {
  ngDevMode && Lu(e);
  const n = Jn(e), t = n === null ? null : n.lView;
  if (t === null)
    return [];
  const r = t[y], o = t[Mt], i = r.cleanup, s = [];
  if (i && o)
    for (let c = 0; c < i.length; ) {
      const a = i[c++], u = i[c++];
      if (typeof a == "string") {
        const l = a, d = ve(t[u]), h = o[i[c++]], p = i[c++], g = typeof p == "boolean" || p >= 0 ? "dom" : "output", m = typeof p == "boolean" ? p : !1;
        e == d && s.push({ element: e, name: l, callback: h, useCapture: m, type: g });
      }
    }
  return s.sort(ZE), s;
}
function ZE(e, n) {
  return e.name == n.name ? 0 : e.name < n.name ? -1 : 1;
}
function Lu(e) {
  if (typeof Element < "u" && !(e instanceof Element))
    throw new Error("Expecting instance of DOM Element");
}
function ud(e) {
  const n = {};
  for (const t in e)
    if (e.hasOwnProperty(t)) {
      const r = e[t];
      r !== void 0 && (n[t] = r[0]);
    }
  return n;
}
function fr() {
  if (typeof document < "u")
    return document;
  throw new b(210, (typeof ngDevMode > "u" || ngDevMode) && "The document object is not available in this context. Make sure the DOCUMENT injection token is provided.");
}
const YE = new w(ngDevMode ? "AppId" : "", {
  providedIn: "root",
  factory: () => JE
}), JE = "ng", XE = new w(ngDevMode ? "Platform Initializer" : "");
new w(ngDevMode ? "Platform ID" : "", {
  providedIn: "platform",
  factory: () => "unknown"
  // set a default platform name, when none set explicitly
});
new w(ngDevMode ? "Application Packages Root URL" : "");
new w(ngDevMode ? "AnimationModuleType" : "");
new w(ngDevMode ? "CSP nonce" : "", {
  providedIn: "root",
  factory: () => {
    var e, n;
    return ((n = (e = fr().body) == null ? void 0 : e.querySelector("[ngCspNonce]")) == null ? void 0 : n.getAttribute("ngCspNonce")) || null;
  }
});
const KE = {
  breakpoints: [16, 32, 48, 64, 96, 128, 256, 384, 640, 750, 828, 1080, 1200, 1920, 2048, 3840],
  placeholderResolution: 30,
  disableImageSizeWarning: !1,
  disableImageLazyLoadWarning: !1
}, eb = new w(ngDevMode ? "ImageConfig" : "", {
  providedIn: "root",
  factory: () => KE
});
function nb() {
  const e = new yo();
  return (typeof ngServerMode > "u" || !ngServerMode) && (e.store = tb(fr(), S(YE))), e;
}
const ys = class ys {
  constructor() {
    /** @internal */
    f(this, "store", {});
    f(this, "onSerializeCallbacks", {});
  }
  /**
   * Get the value corresponding to a key. Return `defaultValue` if key is not found.
   */
  get(n, t) {
    return this.store[n] !== void 0 ? this.store[n] : t;
  }
  /**
   * Set the value corresponding to a key.
   */
  set(n, t) {
    this.store[n] = t;
  }
  /**
   * Remove a key from the store.
   */
  remove(n) {
    delete this.store[n];
  }
  /**
   * Test whether a key exists in the store.
   */
  hasKey(n) {
    return this.store.hasOwnProperty(n);
  }
  /**
   * Indicates whether the state is empty.
   */
  get isEmpty() {
    return Object.keys(this.store).length === 0;
  }
  /**
   * Register a callback to provide the value for a key when `toJson` is called.
   */
  onSerialize(n, t) {
    this.onSerializeCallbacks[n] = t;
  }
  /**
   * Serialize the current state of the store to JSON.
   */
  toJson() {
    for (const n in this.onSerializeCallbacks)
      if (this.onSerializeCallbacks.hasOwnProperty(n))
        try {
          this.store[n] = this.onSerializeCallbacks[n]();
        } catch (t) {
          console.warn("Exception in onSerialize callback: ", t);
        }
    return JSON.stringify(this.store).replace(/</g, "\\u003C");
  }
};
/** @nocollapse */
f(
  ys,
  "ɵprov",
  /** @pureOrBreakMyCode */
  /* @__PURE__ */ X({
    token: ys,
    providedIn: "root",
    factory: nb
  })
);
let yo = ys;
function tb(e, n) {
  const t = e.getElementById(n + "-state");
  if (t != null && t.textContent)
    try {
      return JSON.parse(t.textContent);
    } catch (r) {
      console.warn("Exception while restoring TransferState for app " + n, r);
    }
  return {};
}
const Xp = "r", Kp = "di", eg = "s", rb = "p";
new w(typeof ngDevMode > "u" || ngDevMode ? "IS_HYDRATION_DOM_REUSE_ENABLED" : "");
const ng = !1, ob = new w(typeof ngDevMode > "u" || ngDevMode ? "PRESERVE_HOST_CONTENT" : "", {
  providedIn: "root",
  factory: () => ng
});
new w(typeof ngDevMode > "u" || ngDevMode ? "IS_I18N_HYDRATION_ENABLED" : "");
new w(typeof ngDevMode > "u" || ngDevMode ? "IS_EVENT_REPLAY_ENABLED" : "");
const ib = new w(typeof ngDevMode > "u" || ngDevMode ? "IS_INCREMENTAL_HYDRATION_ENABLED" : ""), qA = new w(ngDevMode ? "JSACTION_BLOCK_ELEMENT_MAP" : "", {
  providedIn: "root",
  factory: () => /* @__PURE__ */ new Map()
});
/*!
 * @license
 * Copyright Google LLC All Rights Reserved.
 *
 * Use of this source code is governed by an MIT-style license that can be
 * found in the LICENSE file at https://angular.dev/license
 */
const Zi = {
  passive: !0,
  capture: !0
}, yc = /* @__PURE__ */ new WeakMap(), Ic = /* @__PURE__ */ new WeakMap(), Kt = /* @__PURE__ */ new WeakMap(), ld = ["click", "keydown"], dd = ["mouseenter", "mouseover", "focusin"];
let sn = null, Mc = 0;
class Fu {
  constructor() {
    f(this, "callbacks", /* @__PURE__ */ new Set());
    f(this, "listener", () => {
      for (const n of this.callbacks)
        n();
    });
  }
}
function tg(e, n) {
  let t = Ic.get(e);
  if (!t) {
    t = new Fu(), Ic.set(e, t);
    for (const r of ld)
      e.addEventListener(r, t.listener, Zi);
  }
  return t.callbacks.add(n), () => {
    const { callbacks: r, listener: o } = t;
    if (r.delete(n), r.size === 0) {
      Ic.delete(e);
      for (const i of ld)
        e.removeEventListener(i, o, Zi);
    }
  };
}
function rg(e, n) {
  let t = yc.get(e);
  if (!t) {
    t = new Fu(), yc.set(e, t);
    for (const r of dd)
      e.addEventListener(r, t.listener, Zi);
  }
  return t.callbacks.add(n), () => {
    const { callbacks: r, listener: o } = t;
    if (r.delete(n), r.size === 0) {
      for (const i of dd)
        e.removeEventListener(i, o, Zi);
      yc.delete(e);
    }
  };
}
function sb() {
  return new IntersectionObserver((e) => {
    for (const n of e)
      n.isIntersecting && Kt.has(n.target) && Kt.get(n.target).listener();
  });
}
function cb(e, n, t) {
  let r = Kt.get(e);
  return sn = sn || t(), r || (r = new Fu(), sn.observe(e), Kt.set(e, r), Mc++), r.callbacks.add(n), () => {
    Kt.has(e) && (r.callbacks.delete(n), r.callbacks.size === 0 && (sn == null || sn.unobserve(e), Kt.delete(e), Mc--), Mc === 0 && (sn == null || sn.disconnect(), sn = null));
  };
}
const QA = new w(ngDevMode ? "EVENT_CONTRACT_DETAILS" : "", {
  providedIn: "root",
  factory: () => ({})
}), Uo = new w(ngDevMode ? "DEHYDRATED_BLOCK_REGISTRY" : "");
function ju(e) {
  return (e.flags & 32) === 32;
}
const ab = "__nghDeferData__", og = ab;
let ub = () => null;
function ig(e, n, t = !1) {
  return ub();
}
function lb(e) {
  let n = e._lView;
  return n[y].type === 2 ? null : (Un(n) && (n = n[_]), n);
}
var fa;
(function(e) {
  e.Hydrated = "hydrated", e.Skipped = "skipped", e.Mismatched = "mismatched";
})(fa || (fa = {}));
const db = "__ngDebugHydrationInfo__";
function fb(e, n) {
  e[db] = n;
}
function sg(e, n = null, t = null) {
  if (!ngDevMode)
    throw new Error("Calling `markRNodeAsMismatchedByHydration` in prod mode is not supported and likely a mistake.");
  for (; e && !Yp(e); )
    e = e == null ? void 0 : e.parentNode;
  e && fb(e, {
    status: fa.Mismatched,
    expectedNodeDetails: n,
    actualNodeDetails: t
  });
}
function cg(e) {
  return e.get(ib, !1, {
    optional: !0
  });
}
function hb(e) {
  if (!cg(e))
    throw new b(508, "Angular has detected that some `@defer` blocks use `hydrate` triggers, but incremental hydration was not enabled. Please ensure that the `withIncrementalHydration()` call is added as an argument for the `provideClientHydration()` function call in your application config.");
}
function Hu(e) {
  E(e, "Internal error: expecting an SSR id for a defer block that should be hydrated, but the id is not present");
}
function pb(e, n) {
  const t = n.get(Uo), o = n.get(yo).get(og, {});
  let i = !1, s = e, c = null;
  const a = [];
  for (; !i && s; ) {
    ngDevMode && T(a.indexOf(s), -1, "Internal error: defer block hierarchy has a cycle."), i = t.has(s);
    const u = t.hydrating.get(s);
    if (c === null && u != null) {
      c = u.promise;
      break;
    }
    a.unshift(s), s = o[s][rb];
  }
  return { parentBlockPromise: c, hydrationQueue: a };
}
function ag(e, n) {
  const t = e.contentQueries;
  if (t !== null) {
    const r = N(null);
    try {
      for (let o = 0; o < t.length; o += 2) {
        const i = t[o], s = t[o + 1];
        if (s !== -1) {
          const c = e.data[s];
          ngDevMode && E(c, "DirectiveDef not found."), ngDevMode && E(c.contentQueries, "contentQueries function should be defined"), Os(i), c.contentQueries(2, n[s], s);
        }
      }
    } finally {
      N(r);
    }
  }
}
function ha(e, n, t) {
  ngDevMode && E(n, "View queries function to execute must be defined."), Os(0);
  const r = N(null);
  try {
    n(e, t);
  } finally {
    N(r);
  }
}
function $u(e, n, t) {
  if ($h(n)) {
    const r = N(null);
    try {
      const o = n.directiveStart, i = n.directiveEnd;
      for (let s = o; s < i; s++) {
        const c = e.data[s];
        if (c.contentQueries) {
          const a = t[s];
          ngDevMode && E(s, "Incorrect reference to a directive defining a content query"), c.contentQueries(1, a, s);
        }
      }
    } finally {
      N(r);
    }
  }
}
var zn;
(function(e) {
  e[e.Emulated = 0] = "Emulated", e[e.None = 2] = "None", e[e.ShadowDom = 3] = "ShadowDom";
})(zn || (zn = {}));
let ai;
function ug() {
  if (ai === void 0 && (ai = null, Ce.trustedTypes))
    try {
      ai = Ce.trustedTypes.createPolicy("angular", {
        createHTML: (e) => e,
        createScript: (e) => e,
        createScriptURL: (e) => e
      });
    } catch {
    }
  return ai;
}
function kr(e) {
  var n;
  return ((n = ug()) == null ? void 0 : n.createHTML(e)) || e;
}
function gb(e) {
  var n;
  return ((n = ug()) == null ? void 0 : n.createScriptURL(e)) || e;
}
let ui;
function Bu() {
  if (ui === void 0 && (ui = null, Ce.trustedTypes))
    try {
      ui = Ce.trustedTypes.createPolicy("angular#unsafe-bypass", {
        createHTML: (e) => e,
        createScript: (e) => e,
        createScriptURL: (e) => e
      });
    } catch {
    }
  return ui;
}
function fd(e) {
  var n;
  return ((n = Bu()) == null ? void 0 : n.createHTML(e)) || e;
}
function hd(e) {
  var n;
  return ((n = Bu()) == null ? void 0 : n.createScript(e)) || e;
}
function pd(e) {
  var n;
  return ((n = Bu()) == null ? void 0 : n.createScriptURL(e)) || e;
}
class lg {
  constructor(n) {
    f(this, "changingThisBreaksApplicationSecurity");
    this.changingThisBreaksApplicationSecurity = n;
  }
  toString() {
    return `SafeValue must use [property]=binding: ${this.changingThisBreaksApplicationSecurity} (see ${vr})`;
  }
}
function Xn(e) {
  return e instanceof lg ? e.changingThisBreaksApplicationSecurity : e;
}
function Vo(e, n) {
  const t = mb(e);
  if (t != null && t !== n) {
    if (t === "ResourceURL" && n === "URL")
      return !0;
    throw new Error(`Required a safe ${n}, got a ${t} (see ${vr})`);
  }
  return t === n;
}
function mb(e) {
  return e instanceof lg && e.getTypeName() || null;
}
function dg(e) {
  const n = new yb(e);
  return Ib() ? new vb(n) : n;
}
class vb {
  constructor(n) {
    f(this, "inertDocumentHelper");
    this.inertDocumentHelper = n;
  }
  getInertBodyElement(n) {
    var t;
    n = "<body><remove></remove>" + n;
    try {
      const r = new window.DOMParser().parseFromString(kr(n), "text/html").body;
      return r === null ? this.inertDocumentHelper.getInertBodyElement(n) : ((t = r.firstChild) == null || t.remove(), r);
    } catch {
      return null;
    }
  }
}
class yb {
  constructor(n) {
    f(this, "defaultDoc");
    f(this, "inertDocument");
    this.defaultDoc = n, this.inertDocument = this.defaultDoc.implementation.createHTMLDocument("sanitization-inert");
  }
  getInertBodyElement(n) {
    const t = this.inertDocument.createElement("template");
    return t.innerHTML = kr(n), t;
  }
}
function Ib() {
  try {
    return !!new window.DOMParser().parseFromString(kr(""), "text/html");
  } catch {
    return !1;
  }
}
const Mb = /^(?!javascript:)(?:[a-z0-9+.-]+:|[^&:\/?#]*(?:[\/?#]|$))/i;
function Uu(e) {
  return e = String(e), e.match(Mb) ? e : ((typeof ngDevMode > "u" || ngDevMode) && console.warn(`WARNING: sanitizing unsafe URL value ${e} (see ${vr})`), "unsafe:" + e);
}
function Sn(e) {
  const n = {};
  for (const t of e.split(","))
    n[t] = !0;
  return n;
}
function Wo(...e) {
  const n = {};
  for (const t of e)
    for (const r in t)
      t.hasOwnProperty(r) && (n[r] = !0);
  return n;
}
const fg = Sn("area,br,col,hr,img,wbr"), hg = Sn("colgroup,dd,dt,li,p,tbody,td,tfoot,th,thead,tr"), pg = Sn("rp,rt"), Db = Wo(pg, hg), Eb = Wo(hg, Sn("address,article,aside,blockquote,caption,center,del,details,dialog,dir,div,dl,figure,figcaption,footer,h1,h2,h3,h4,h5,h6,header,hgroup,hr,ins,main,map,menu,nav,ol,pre,section,summary,table,ul")), bb = Wo(pg, Sn("a,abbr,acronym,audio,b,bdi,bdo,big,br,cite,code,del,dfn,em,font,i,img,ins,kbd,label,map,mark,picture,q,ruby,rp,rt,s,samp,small,source,span,strike,strong,sub,sup,time,track,tt,u,var,video")), pa = Wo(fg, Eb, bb, Db), Vu = Sn("background,cite,href,itemtype,longdesc,poster,src,xlink:href"), _b = Sn("abbr,accesskey,align,alt,autoplay,axis,bgcolor,border,cellpadding,cellspacing,class,clear,color,cols,colspan,compact,controls,coords,datetime,default,dir,download,face,headers,height,hidden,hreflang,hspace,ismap,itemscope,itemprop,kind,label,lang,language,loop,media,muted,nohref,nowrap,open,preload,rel,rev,role,rows,rowspan,rules,scope,scrolling,shape,size,sizes,span,srclang,srcset,start,summary,tabindex,target,title,translate,type,usemap,valign,value,vspace,width"), Cb = Sn("aria-activedescendant,aria-atomic,aria-autocomplete,aria-busy,aria-checked,aria-colcount,aria-colindex,aria-colspan,aria-controls,aria-current,aria-describedby,aria-details,aria-disabled,aria-dropeffect,aria-errormessage,aria-expanded,aria-flowto,aria-grabbed,aria-haspopup,aria-hidden,aria-invalid,aria-keyshortcuts,aria-label,aria-labelledby,aria-level,aria-live,aria-modal,aria-multiline,aria-multiselectable,aria-orientation,aria-owns,aria-placeholder,aria-posinset,aria-pressed,aria-readonly,aria-relevant,aria-required,aria-roledescription,aria-rowcount,aria-rowindex,aria-rowspan,aria-selected,aria-setsize,aria-sort,aria-valuemax,aria-valuemin,aria-valuenow,aria-valuetext"), gg = Wo(Vu, _b, Cb), wb = Sn("script,style,template");
class Tb {
  constructor() {
    // Explicitly track if something was stripped, to avoid accidentally warning of sanitization just
    // because characters were re-encoded.
    f(this, "sanitizedSomething", !1);
    f(this, "buf", []);
  }
  sanitizeChildren(n) {
    let t = n.firstChild, r = !0, o = [];
    for (; t; ) {
      if (t.nodeType === Node.ELEMENT_NODE ? r = this.startElement(t) : t.nodeType === Node.TEXT_NODE ? this.chars(t.nodeValue) : this.sanitizedSomething = !0, r && t.firstChild) {
        o.push(t), t = xb(t);
        continue;
      }
      for (; t; ) {
        t.nodeType === Node.ELEMENT_NODE && this.endElement(t);
        let i = kb(t);
        if (i) {
          t = i;
          break;
        }
        t = o.pop();
      }
    }
    return this.buf.join("");
  }
  /**
   * Sanitizes an opening element tag (if valid) and returns whether the element's contents should
   * be traversed. Element content must always be traversed (even if the element itself is not
   * valid/safe), unless the element is one of `SKIP_TRAVERSING_CONTENT_IF_INVALID_ELEMENTS`.
   *
   * @param element The element to sanitize.
   * @return True if the element's contents should be traversed.
   */
  startElement(n) {
    const t = gd(n).toLowerCase();
    if (!pa.hasOwnProperty(t))
      return this.sanitizedSomething = !0, !wb.hasOwnProperty(t);
    this.buf.push("<"), this.buf.push(t);
    const r = n.attributes;
    for (let o = 0; o < r.length; o++) {
      const i = r.item(o), s = i.name, c = s.toLowerCase();
      if (!gg.hasOwnProperty(c)) {
        this.sanitizedSomething = !0;
        continue;
      }
      let a = i.value;
      Vu[c] && (a = Uu(a)), this.buf.push(" ", s, '="', md(a), '"');
    }
    return this.buf.push(">"), !0;
  }
  endElement(n) {
    const t = gd(n).toLowerCase();
    pa.hasOwnProperty(t) && !fg.hasOwnProperty(t) && (this.buf.push("</"), this.buf.push(t), this.buf.push(">"));
  }
  chars(n) {
    this.buf.push(md(n));
  }
}
function Sb(e, n) {
  return (e.compareDocumentPosition(n) & Node.DOCUMENT_POSITION_CONTAINED_BY) !== Node.DOCUMENT_POSITION_CONTAINED_BY;
}
function kb(e) {
  const n = e.nextSibling;
  if (n && e !== n.previousSibling)
    throw mg(n);
  return n;
}
function xb(e) {
  const n = e.firstChild;
  if (n && Sb(e, n))
    throw mg(n);
  return n;
}
function gd(e) {
  const n = e.nodeName;
  return typeof n == "string" ? n : "FORM";
}
function mg(e) {
  return new Error(`Failed to sanitize html because the element is clobbered: ${e.outerHTML}`);
}
const Ab = /[\uD800-\uDBFF][\uDC00-\uDFFF]/g, Ob = /([^\#-~ |!])/g;
function md(e) {
  return e.replace(/&/g, "&amp;").replace(Ab, function(n) {
    const t = n.charCodeAt(0), r = n.charCodeAt(1);
    return "&#" + ((t - 55296) * 1024 + (r - 56320) + 65536) + ";";
  }).replace(Ob, function(n) {
    return "&#" + n.charCodeAt(0) + ";";
  }).replace(/</g, "&lt;").replace(/>/g, "&gt;");
}
let li;
function Rb(e, n) {
  let t = null;
  try {
    li = li || dg(e);
    let r = n ? String(n) : "";
    t = li.getInertBodyElement(r);
    let o = 5, i = r;
    do {
      if (o === 0)
        throw new Error("Failed to sanitize html because the input is unstable");
      o--, r = i, i = t.innerHTML, t = li.getInertBodyElement(r);
    } while (r !== i);
    const s = new Tb(), c = s.sanitizeChildren(ga(t) || t);
    return (typeof ngDevMode > "u" || ngDevMode) && s.sanitizedSomething && console.warn(`WARNING: sanitizing HTML stripped some content, see ${vr}`), kr(c);
  } finally {
    if (t) {
      const r = ga(t) || t;
      for (; r.firstChild; )
        r.firstChild.remove();
    }
  }
}
function ga(e) {
  return "content" in e && Pb(e) ? e.content : null;
}
function Pb(e) {
  return e.nodeType === Node.ELEMENT_NODE && e.nodeName === "TEMPLATE";
}
var Ot;
(function(e) {
  e[e.NONE = 0] = "NONE", e[e.HTML = 1] = "HTML", e[e.STYLE = 2] = "STYLE", e[e.SCRIPT = 3] = "SCRIPT", e[e.URL = 4] = "URL", e[e.RESOURCE_URL = 5] = "RESOURCE_URL";
})(Ot || (Ot = {}));
function Nb(e) {
  const n = zo();
  return n ? fd(n.sanitize(Ot.HTML, e) || "") : Vo(
    e,
    "HTML"
    /* BypassType.Html */
  ) ? fd(Xn(e)) : Rb(fr(), O(e));
}
function Lb(e) {
  const n = zo();
  return n ? n.sanitize(Ot.STYLE, e) || "" : Vo(
    e,
    "Style"
    /* BypassType.Style */
  ) ? Xn(e) : O(e);
}
function vg(e) {
  const n = zo();
  return n ? n.sanitize(Ot.URL, e) || "" : Vo(
    e,
    "URL"
    /* BypassType.Url */
  ) ? Xn(e) : Uu(O(e));
}
function yg(e) {
  const n = zo();
  if (n)
    return pd(n.sanitize(Ot.RESOURCE_URL, e) || "");
  if (Vo(
    e,
    "ResourceURL"
    /* BypassType.ResourceUrl */
  ))
    return pd(Xn(e));
  throw new b(904, ngDevMode && `unsafe value used in a resource URL context (see ${vr})`);
}
function Fb(e) {
  const n = zo();
  if (n)
    return hd(n.sanitize(Ot.SCRIPT, e) || "");
  if (Vo(
    e,
    "Script"
    /* BypassType.Script */
  ))
    return hd(Xn(e));
  throw new b(905, ngDevMode && "unsafe value used in a script context");
}
function jb(e) {
  if (ngDevMode && (!Array.isArray(e) || !Array.isArray(e.raw) || e.length !== 1))
    throw new Error(`Unexpected interpolation in trusted HTML constant: ${e.join("?")}`);
  return kr(e[0]);
}
function Hb(e) {
  if (ngDevMode && (!Array.isArray(e) || !Array.isArray(e.raw) || e.length !== 1))
    throw new Error(`Unexpected interpolation in trusted URL constant: ${e.join("?")}`);
  return gb(e[0]);
}
function $b(e, n) {
  return n === "src" && (e === "embed" || e === "frame" || e === "iframe" || e === "media" || e === "script") || n === "href" && (e === "base" || e === "link") ? yg : vg;
}
function Bb(e, n, t) {
  return $b(n, t)(e);
}
function Ub(e) {
  if (e.toLowerCase().startsWith("on")) {
    const n = `Binding to event property '${e}' is disallowed for security reasons, please use (${e.slice(2)})=...
If '${e}' is a directive input, make sure the directive is imported by the current module.`;
    throw new b(306, n);
  }
}
function Vb(e) {
  if (e.toLowerCase().startsWith("on")) {
    const n = `Binding to event attribute '${e}' is disallowed for security reasons, please use (${e.slice(2)})=...`;
    throw new b(306, n);
  }
}
function zo() {
  const e = I();
  return e && e[$e].sanitizer;
}
const Wb = /^>|^->|<!--|-->|--!>|<!-$/g, zb = /(<|>)/g, Gb = "​$1​";
function Ig(e) {
  return e.replace(Wb, (n) => n.replace(zb, Gb));
}
const Mg = !1, qb = new w(typeof ngDevMode > "u" || ngDevMode ? "NG_REFLECT_FLAG" : "", {
  providedIn: "root",
  factory: () => Mg
});
function Qb(e) {
  return e = Yb(e.replace(/[$@]/g, "_")), `ng-reflect-${e}`;
}
const Zb = /([A-Z])/g;
function Yb(e) {
  return e.replace(Zb, (...n) => "-" + n[1].toLowerCase());
}
function Jb(e) {
  try {
    return e != null ? e.toString().slice(0, 30) : e;
  } catch {
    return "[ERROR] Exception while trying to serialize the value";
  }
}
const Xb = {}, Kb = {};
function Dg(e, n) {
  const t = e[y];
  if (t.schemas === null)
    return;
  const r = n.value;
  if (!Er(n) && r !== null && // Note that we can't check for `typeof HTMLUnknownElement === 'function'` because
  // Domino doesn't expose HTMLUnknownElement globally.
  (typeof HTMLUnknownElement < "u" && HTMLUnknownElement && xe(n, e) instanceof HTMLUnknownElement || typeof customElements < "u" && r.indexOf("-") > -1 && !customElements.get(r)) && !zu(t.schemas, r)) {
    const i = js(e), s = Hs(e), c = `'${i ? "@Component" : "@NgModule"}.schemas'`;
    let a = `'${r}' is not a known element${s}:
`;
    a += `1. If '${r}' is an Angular component, then verify that it is ${i ? "included in the '@Component.imports' of this component" : "a part of an @NgModule where this component is declared"}.
`, r && r.indexOf("-") > -1 ? a += `2. If '${r}' is a Web Component then add 'CUSTOM_ELEMENTS_SCHEMA' to the ${c} of this component to suppress this message.` : a += `2. To allow any element add 'NO_ERRORS_SCHEMA' to the ${c} of this component.`, console.error(Xe(304, a));
  }
}
function e_(e, n, t, r) {
  return r === null || zu(r, t) || n in e || kp(n) ? !0 : typeof Node > "u" || Node === null || !(e instanceof Node);
}
function vd(e, n, t, r) {
  !n && t === 4 && (n = "ng-template");
  const o = js(r), i = Hs(r);
  let s = `Can't bind to '${e}' since it isn't a known property of '${n}'${i}.`;
  const c = `'${o ? "@Component" : "@NgModule"}.schemas'`, a = o ? "included in the '@Component.imports' of this component" : "a part of an @NgModule where this component is declared";
  if (yd.has(e)) {
    const u = yd.get(e);
    s += `
If the '${e}' is an Angular control flow directive, please make sure that either the '${u}' directive or the 'CommonModule' is ${a}.`;
  } else
    s += `
1. If '${n}' is an Angular component and it has the '${e}' input, then verify that it is ${a}.`, n && n.indexOf("-") > -1 ? (s += `
2. If '${n}' is a Web Component then add 'CUSTOM_ELEMENTS_SCHEMA' to the ${c} of this component to suppress this message.`, s += `
3. To allow any property add 'NO_ERRORS_SCHEMA' to the ${c} of this component.`) : s += `
2. To allow any property add 'NO_ERRORS_SCHEMA' to the ${c} of this component.`;
  Eg(s);
}
function Eg(e) {
  console.error(Xe(303, e));
}
function Wu(e) {
  !ngDevMode && C("Must never be called in production mode");
  const t = e[pe][V];
  return t && t.constructor ? H(t.constructor) : null;
}
function js(e) {
  !ngDevMode && C("Must never be called in production mode");
  const n = Wu(e);
  return !!(n != null && n.standalone);
}
function Hs(e) {
  var r;
  !ngDevMode && C("Must never be called in production mode");
  const n = Wu(e), t = (r = n == null ? void 0 : n.type) == null ? void 0 : r.name;
  return t ? ` (used in the '${t}' component template)` : "";
}
const yd = /* @__PURE__ */ new Map([
  ["ngIf", "NgIf"],
  ["ngFor", "NgFor"],
  ["ngSwitchCase", "NgSwitchCase"],
  ["ngSwitchDefault", "NgSwitchDefault"]
]);
function zu(e, n) {
  if (e !== null)
    for (let t = 0; t < e.length; t++) {
      const r = e[t];
      if (r === Kb || r === Xb && n && n.indexOf("-") > -1)
        return !0;
    }
  return !1;
}
function n_(e) {
  return e.ownerDocument.defaultView;
}
function t_(e) {
  return e.ownerDocument;
}
function r_(e) {
  return e.ownerDocument.body;
}
const Io = "�";
function an(e) {
  return e instanceof Function ? e() : e;
}
const Id = 200;
function bg(e) {
  if (!H(e))
    throw new b(906, `The ${P(e)} is not an Angular component, make sure it has the \`@Component\` decorator.`);
}
function o_(e, n, t) {
  throw new b(-300, `Multiple components match node with tagname ${e.value}: ${P(n)} and ${P(t)}`);
}
function i_(e, n, t, r, o) {
  var u;
  const i = Wu(o), s = (u = i == null ? void 0 : i.type) == null ? void 0 : u.name;
  let a = `ExpressionChangedAfterItHasBeenCheckedError: Expression has changed after it was checked. Previous value${r ? ` for '${r}'` : ""}: '${Md(n)}'. Current value: '${Md(t)}'.${s ? ` Expression location: ${s} component` : ""}`;
  throw e && (a += " It seems like the view has been created after its parent and its children have been dirty checked. Has it been created in a change detection hook?"), new b(-100, a);
}
function Md(e) {
  let n = String(e);
  try {
    (Array.isArray(e) || n === "[object Object]") && (n = JSON.stringify(e));
  } catch {
  }
  return n.length > Id ? n.substring(0, Id) + "…" : n;
}
function Dd(e, n, t, r, o) {
  const [i, s, ...c] = r.split(Io);
  let a = s, u = s;
  for (let l = 0; l < c.length; l++) {
    const d = n + l;
    a += `${e[d]}${c[l]}`, u += `${d === t ? o : e[d]}${c[l]}`;
  }
  return { propName: i, oldValue: a, newValue: u };
}
function s_(e, n, t, r) {
  const o = e[y].data, i = o[n];
  if (typeof i == "string")
    return i.indexOf(Io) > -1 ? Dd(e, n, n, i, r) : { propName: i, oldValue: t, newValue: r };
  if (i === null) {
    let s = n - 1;
    for (; typeof o[s] != "string" && o[s + 1] === null; )
      s--;
    const c = o[s];
    if (typeof c == "string") {
      const a = c.match(new RegExp(Io, "g"));
      if (a && a.length - 1 > n - s)
        return Dd(e, s, n, c, r);
    }
  }
  return { propName: void 0, oldValue: t, newValue: r };
}
function c_(e, n, t) {
  ngDevMode && Ve(n, "", 'can not look for "" string.');
  let r = e.length;
  for (; ; ) {
    const o = e.indexOf(n, t);
    if (o === -1)
      return o;
    if (o === 0 || e.charCodeAt(o - 1) <= 32) {
      const i = n.length;
      if (o + i === r || e.charCodeAt(o + i) <= 32)
        return o;
    }
    t = o + 1;
  }
}
const _g = "ng-template";
function a_(e, n, t, r) {
  ngDevMode && T(t, t.toLowerCase(), "Class name expected to be lowercase.");
  let o = 0;
  if (r) {
    for (; o < n.length && typeof n[o] == "string"; o += 2)
      if (n[o] === "class" && c_(n[o + 1].toLowerCase(), t, 0) !== -1)
        return !0;
  } else if (Gu(e))
    return !1;
  if (o = n.indexOf(1, o), o > -1) {
    let i;
    for (; ++o < n.length && typeof (i = n[o]) == "string"; )
      if (i.toLowerCase() === t)
        return !0;
  }
  return !1;
}
function Gu(e) {
  return e.type === 4 && e.value !== _g;
}
function u_(e, n, t) {
  const r = e.type === 4 && !t ? _g : e.value;
  return n === r;
}
function l_(e, n, t) {
  ngDevMode && E(n[0], "Selector should have a tag name");
  let r = 4;
  const o = e.attrs, i = o !== null ? h_(o) : 0;
  let s = !1;
  for (let c = 0; c < n.length; c++) {
    const a = n[c];
    if (typeof a == "number") {
      if (!s && !nn(r) && !nn(a))
        return !1;
      if (s && nn(a))
        continue;
      s = !1, r = a | r & 1;
      continue;
    }
    if (!s)
      if (r & 4) {
        if (r = 2 | r & 1, a !== "" && !u_(e, a, t) || a === "" && n.length === 1) {
          if (nn(r))
            return !1;
          s = !0;
        }
      } else if (r & 8) {
        if (o === null || !a_(e, o, a, t)) {
          if (nn(r))
            return !1;
          s = !0;
        }
      } else {
        const u = n[++c], l = d_(a, o, Gu(e), t);
        if (l === -1) {
          if (nn(r))
            return !1;
          s = !0;
          continue;
        }
        if (u !== "") {
          let d;
          if (l > i ? d = "" : (ngDevMode && Ve(o[l], 0, "We do not match directives on namespaced attributes"), d = o[l + 1].toLowerCase()), r & 2 && u !== d) {
            if (nn(r))
              return !1;
            s = !0;
          }
        }
      }
  }
  return nn(r) || s;
}
function nn(e) {
  return (e & 1) === 0;
}
function d_(e, n, t, r) {
  if (n === null)
    return -1;
  let o = 0;
  if (r || !t) {
    let i = !1;
    for (; o < n.length; ) {
      const s = n[o];
      if (s === e)
        return o;
      if (s === 3 || s === 6)
        i = !0;
      else if (s === 1 || s === 2) {
        let c = n[++o];
        for (; typeof c == "string"; )
          c = n[++o];
        continue;
      } else {
        if (s === 4)
          break;
        if (s === 0) {
          o += 4;
          continue;
        }
      }
      o += i ? 1 : 2;
    }
    return -1;
  } else
    return p_(n, e);
}
function Cg(e, n, t = !1) {
  for (let r = 0; r < n.length; r++)
    if (l_(e, n[r], t))
      return !0;
  return !1;
}
function f_(e) {
  const n = e.attrs;
  if (n != null) {
    const t = n.indexOf(
      5
      /* AttributeMarker.ProjectAs */
    );
    if ((t & 1) === 0)
      return n[t + 1];
  }
  return null;
}
function h_(e) {
  for (let n = 0; n < e.length; n++) {
    const t = e[n];
    if (Sp(t))
      return n;
  }
  return e.length;
}
function p_(e, n) {
  let t = e.indexOf(
    4
    /* AttributeMarker.Template */
  );
  if (t > -1)
    for (t++; t < e.length; ) {
      const r = e[t];
      if (typeof r == "number")
        return -1;
      if (r === n)
        return t;
      t++;
    }
  return -1;
}
function g_(e, n) {
  e: for (let t = 0; t < n.length; t++) {
    const r = n[t];
    if (e.length === r.length) {
      for (let o = 0; o < e.length; o++)
        if (e[o] !== r[o])
          continue e;
      return !0;
    }
  }
  return !1;
}
function Ed(e, n) {
  return e ? ":not(" + n.trim() + ")" : n;
}
function m_(e) {
  let n = e[0], t = 1, r = 2, o = "", i = !1;
  for (; t < e.length; ) {
    let s = e[t];
    if (typeof s == "string")
      if (r & 2) {
        const c = e[++t];
        o += "[" + s + (c.length > 0 ? '="' + c + '"' : "") + "]";
      } else r & 8 ? o += "." + s : r & 4 && (o += " " + s);
    else
      o !== "" && !nn(s) && (n += Ed(i, o), o = ""), r = s, i = i || !nn(r);
    t++;
  }
  return o !== "" && (n += Ed(i, o)), n;
}
function wg(e) {
  return e.map(m_).join(",");
}
function v_(e) {
  const n = [], t = [];
  let r = 1, o = 2;
  for (; r < e.length; ) {
    let i = e[r];
    if (typeof i == "string")
      o === 2 ? i !== "" && n.push(i, e[++r]) : o === 8 && t.push(i);
    else {
      if (!nn(o))
        break;
      o = i;
    }
    r++;
  }
  return t.length && n.push(1, ...t), n;
}
const $ = typeof ngDevMode > "u" || ngDevMode ? { __brand__: "NO_CHANGE" } : {};
function Tg(e, n) {
  return e.createText(n);
}
function Sg(e, n, t) {
  e.setValue(n, t);
}
function kg(e, n) {
  return e.createComment(Ig(n));
}
function qu(e, n, t) {
  return e.createElement(n, t);
}
function Rt(e, n, t, r, o) {
  e.insertBefore(n, t, r, o);
}
function xg(e, n, t) {
  ngDevMode && E(n, "parent node must be defined"), e.appendChild(n, t);
}
function bd(e, n, t, r, o) {
  r !== null ? Rt(e, n, t, r, o) : xg(e, n, t);
}
function Go(e, n, t) {
  e.removeChild(null, n, t);
}
function y_(e, n, t) {
  ngDevMode && yr(t, "'newValue' should be a string"), e.setAttribute(n, "style", t);
}
function I_(e, n, t) {
  ngDevMode && yr(t, "'newValue' should be a string"), t === "" ? e.removeAttribute(n, "class") : e.setAttribute(n, "class", t);
}
function Ag(e, n, t) {
  const { mergedAttrs: r, classes: o, styles: i } = t;
  r !== null && uE(e, n, r), o !== null && I_(e, n, o), i !== null && y_(e, n, i);
}
function Qu(e, n, t, r, o, i, s, c, a, u, l) {
  const d = _ + r, h = d + o, p = M_(d, h), g = typeof u == "function" ? u() : u, m = p[y] = {
    type: e,
    blueprint: p,
    template: t,
    queries: null,
    viewQuery: c,
    declTNode: n,
    data: p.slice().fill(null, d),
    bindingStartIndex: d,
    expandoStartIndex: h,
    hostBindingOpCodes: null,
    firstCreatePass: !0,
    firstUpdatePass: !0,
    staticViewQueries: !1,
    staticContentQueries: !1,
    preOrderHooks: null,
    preOrderCheckHooks: null,
    contentHooks: null,
    contentCheckHooks: null,
    viewHooks: null,
    viewCheckHooks: null,
    destroyHooks: null,
    cleanup: null,
    contentQueries: null,
    components: null,
    directiveRegistry: typeof i == "function" ? i() : i,
    pipeRegistry: typeof s == "function" ? s() : s,
    firstChild: null,
    schemas: a,
    consts: g,
    incompleteFirstPass: !1,
    ssrId: l
  };
  return ngDevMode && Object.seal(m), m;
}
function M_(e, n) {
  const t = [];
  for (let r = 0; r < n; r++)
    t.push(r < e ? null : $);
  return t;
}
function Og(e) {
  const n = e.tView;
  return n === null || n.incompleteFirstPass ? e.tView = Qu(1, null, e.template, e.decls, e.vars, e.directiveDefs, e.pipeDefs, e.viewQuery, e.schemas, e.consts, e.id) : n;
}
function $s(e, n, t, r, o, i, s, c, a, u, l) {
  const d = n.blueprint.slice();
  return d[ce] = o, d[A] = r | 4 | 128 | 8 | 64 | 1024, (u !== null || e && e[A] & 2048) && (d[A] |= 2048), qh(d), ngDevMode && n.declTNode && e && We(n.declTNode, e), d[ae] = d[Hn] = e, d[V] = t, d[$e] = s || e && e[$e], ngDevMode && E(d[$e], "LViewEnvironment is required"), d[F] = c || e && e[F], ngDevMode && E(d[F], "Renderer is required"), d[oe] = a || e && e[oe] || null, d[ye] = i, d[kt] = OE(), d[wt] = l, d[Hh] = u, ngDevMode && T(n.type == 2 ? e !== null : !0, !0, "Embedded views must have parentLView"), d[pe] = n.type == 2 ? e[pe] : d, d;
}
function D_(e, n, t) {
  const r = xe(n, e), o = Og(t), i = e[$e].rendererFactory, s = Yu(e, $s(e, o, null, Zu(t), r, n, null, i.createRenderer(r, t), null, null, null));
  return e[n.index] = s;
}
function Zu(e) {
  let n = 16;
  return e.signals ? n = 4096 : e.onPush && (n = 64), n;
}
function qo(e, n, t, r) {
  if (t === 0)
    return -1;
  ngDevMode && (Se(e), gh(e, n[y], "`LView` must be associated with `TView`!"), T(e.data.length, n.length, "Expecting LView to be same size as TView"), T(e.data.length, e.blueprint.length, "Expecting Blueprint to be same size as TView"), Du(e));
  const o = n.length;
  for (let i = 0; i < t; i++)
    n.push(r), e.blueprint.push(r), e.data.push(null);
  return o;
}
function Yu(e, n) {
  return e[Tt] ? e[Bi][Me] = n : e[Tt] = n, e[Bi] = n, n;
}
function E_(e = 1) {
  ngDevMode && Bt(e, 0, "Can only advance forward"), Rg(R(), I(), Ie() + e, !!ngDevMode && Wt());
}
function Rg(e, n, t, r) {
  if (ngDevMode && No(n[y], t), !r)
    if ((n[A] & 3) === 3) {
      const i = e.preOrderCheckHooks;
      i !== null && Mi(n, i, t);
    } else {
      const i = e.preOrderHooks;
      i !== null && Di(n, i, 0, t);
    }
  At(t);
}
var Mo;
(function(e) {
  e[e.None = 0] = "None", e[e.SignalBased = 1] = "SignalBased", e[e.HasDecoratorInputTransform = 2] = "HasDecoratorInputTransform";
})(Mo || (Mo = {}));
function ma(e, n, t, r) {
  const o = N(null);
  try {
    if (ngDevMode) {
      if (!e.inputs.hasOwnProperty(t))
        throw new Error(`ASSERTION ERROR: Directive ${e.type.name} does not have an input with a public name of "${t}"`);
      if (n instanceof Tr)
        throw new Error(`ASSERTION ERROR: Cannot write input to factory for type ${e.type.name}. Directive has not been created yet.`);
    }
    const [i, s, c] = e.inputs[t];
    let a = null;
    (s & Mo.SignalBased) !== 0 && (a = n[i][un]), a !== null && a.transformFn !== void 0 ? r = a.transformFn(r) : c !== null && (r = c.call(n, r)), e.setInput !== null ? e.setInput(n, a, r, t, i) : Dp(n, a, i, r);
  } finally {
    N(o);
  }
}
var Yi;
(function(e) {
  e[e.Important = 1] = "Important", e[e.DashCase = 2] = "DashCase";
})(Yi || (Yi = {}));
let va;
function Ju(e, n) {
  return va(e, n);
}
function b_(e) {
  va === void 0 && (va = e());
}
function er(e, n, t, r, o) {
  if (r != null) {
    let i, s = !1;
    ke(r) ? i = r : re(r) && (s = !0, ngDevMode && E(r[ce], "HOST must be defined for a component LView"), r = r[ce]);
    const c = ve(r);
    e === 0 && t !== null ? o == null ? xg(n, t, c) : Rt(n, t, c, o || null, !0) : e === 1 && t !== null ? Rt(n, t, c, o || null, !0) : e === 2 ? Go(n, c, s) : e === 3 && n.destroyNode(c), i != null && T_(n, e, i, t, o);
  }
}
function Pg(e, n) {
  Ng(e, n), n[ce] = null, n[ye] = null;
}
function __(e, n, t, r, o, i) {
  r[ce] = o, r[ye] = n, Bs(e, r, t, 1, o, i);
}
function Ng(e, n) {
  var t;
  (t = n[$e].changeDetectionScheduler) == null || t.notify(9), Bs(e, n, n[F], 2, null, null);
}
function C_(e) {
  let n = e[Tt];
  if (!n)
    return Dc(e[y], e);
  for (; n; ) {
    let t = null;
    if (re(n))
      t = n[Tt];
    else {
      ngDevMode && Ke(n);
      const r = n[K];
      r && (t = r);
    }
    if (!t) {
      for (; n && !n[Me] && n !== e; )
        re(n) && Dc(n[y], n), n = n[ae];
      n === null && (n = e), re(n) && Dc(n[y], n), t = n && n[Me];
    }
    n = t;
  }
}
function Xu(e, n) {
  ngDevMode && Ke(e), ngDevMode && E(e[xt], "A projected view should belong to a non-empty projected views collection");
  const t = e[xt], r = t.indexOf(n);
  t.splice(r, 1);
}
function Qo(e, n) {
  if (yn(n))
    return;
  const t = n[F];
  t.destroyNode && Bs(e, n, t, 3, null, null), C_(n);
}
function Dc(e, n) {
  if (yn(n))
    return;
  const t = N(null);
  try {
    n[A] &= -129, n[A] |= 256, n[Ue] && uh(n[Ue]), Fg(e, n), Lg(e, n), n[y].type === 1 && n[F].destroy();
    const r = n[St];
    if (r !== null && ke(n[ae])) {
      r !== n[ae] && Xu(r, n);
      const o = n[Be];
      o !== null && o.detachView(e);
    }
    ua(n);
  } finally {
    N(t);
  }
}
function Lg(e, n) {
  ngDevMode && su(Lg.name);
  const t = e.cleanup, r = n[Mt];
  if (t !== null)
    for (let s = 0; s < t.length - 1; s += 2)
      if (typeof t[s] == "string") {
        const c = t[s + 3];
        ngDevMode && q(c, "cleanup target must be a number"), c >= 0 ? r[c]() : r[-c].unsubscribe(), s += 2;
      } else {
        const c = r[t[s + 1]];
        t[s].call(c);
      }
  r !== null && (n[Mt] = null);
  const o = n[Nn];
  if (o !== null) {
    n[Nn] = null;
    for (let s = 0; s < o.length; s++) {
      const c = o[s];
      ngDevMode && ph(c, "Expecting destroy hook to be a function."), c();
    }
  }
  const i = n[Ui];
  if (i !== null) {
    n[Ui] = null;
    for (const s of i)
      s.destroy();
  }
}
function Fg(e, n) {
  ngDevMode && su(Fg.name);
  let t;
  if (e != null && (t = e.destroyHooks) != null)
    for (let r = 0; r < t.length; r += 2) {
      const o = n[t[r]];
      if (!(o instanceof Tr)) {
        const i = t[r + 1];
        if (Array.isArray(i))
          for (let s = 0; s < i.length; s += 2) {
            const c = o[i[s]], a = i[s + 1];
            Q(4, c, a);
            try {
              a.call(c);
            } finally {
              Q(5, c, a);
            }
          }
        else {
          Q(4, o, i);
          try {
            i.call(o);
          } finally {
            Q(5, o, i);
          }
        }
      }
    }
}
function Ku(e, n, t) {
  return jg(e, n.parent, t);
}
function jg(e, n, t) {
  let r = n;
  for (; r !== null && r.type & 168; )
    n = r, r = n.parent;
  if (r === null)
    return t[ce];
  if (ngDevMode && le(
    r,
    7
    /* TNodeType.Container */
  ), Dr(r)) {
    ngDevMode && We(r, t);
    const { encapsulation: o } = e.data[r.directiveStart + r.componentOffset];
    if (o === zn.None || o === zn.Emulated)
      return null;
  }
  return xe(r, t);
}
function Hg(e, n, t) {
  return Bg(e, n, t);
}
function $g(e, n, t) {
  return e.type & 40 ? xe(e, t) : null;
}
let Bg = $g, ya;
function Ug(e, n) {
  Bg = e, ya = n;
}
function el(e, n, t, r) {
  const o = Ku(e, r, n), i = n[F], s = r.parent || n[ye], c = Hg(s, r, n);
  if (o != null)
    if (Array.isArray(t))
      for (let a = 0; a < t.length; a++)
        bd(i, o, t[a], c, !1);
    else
      bd(i, o, t, c, !1);
  ya !== void 0 && ya(i, r, n, t, o);
}
function Ur(e, n) {
  if (n !== null) {
    ngDevMode && le(
      n,
      191
      /* TNodeType.LetDeclaration */
    );
    const t = n.type;
    if (t & 3)
      return xe(n, e);
    if (t & 4)
      return Ia(-1, e[n.index]);
    if (t & 8) {
      const r = n.child;
      if (r !== null)
        return Ur(e, r);
      {
        const o = e[n.index];
        return ke(o) ? Ia(-1, o) : ve(o);
      }
    } else {
      if (t & 128)
        return Ur(e, n.next);
      if (t & 32)
        return Ju(n, e)() || ve(e[n.index]);
      {
        const r = Vg(e, n);
        if (r !== null) {
          if (Array.isArray(r))
            return r[0];
          const o = In(e[pe]);
          return ngDevMode && Vh(o), Ur(o, r);
        } else
          return Ur(e, n.next);
      }
    }
  }
  return null;
}
function Vg(e, n) {
  if (n !== null) {
    const r = e[pe][ye], o = n.projection;
    return ngDevMode && lD(e), r.projection[o];
  }
  return null;
}
function Ia(e, n) {
  const t = K + e + 1;
  if (t < n.length) {
    const r = n[t], o = r[y].firstChild;
    if (o !== null)
      return Ur(r, o);
  }
  return n[Bn];
}
function nl(e, n, t, r, o, i, s) {
  for (; t != null; ) {
    if (ngDevMode && We(t, r), t.type === 128) {
      t = t.next;
      continue;
    }
    ngDevMode && le(
      t,
      63
      /* TNodeType.Icu */
    );
    const c = r[t.index], a = t.type;
    if (s && n === 0 && (c && He(ve(c), r), t.flags |= 2), !ju(t))
      if (a & 8)
        nl(e, n, t.child, r, o, i, !1), er(n, e, o, c, i);
      else if (a & 32) {
        const u = Ju(t, r);
        let l;
        for (; l = u(); )
          er(n, e, o, l, i);
        er(n, e, o, c, i);
      } else a & 16 ? Wg(e, n, r, t, o, i) : (ngDevMode && le(
        t,
        7
        /* TNodeType.Container */
      ), er(n, e, o, c, i));
    t = s ? t.projectionNext : t.next;
  }
}
function Bs(e, n, t, r, o, i) {
  nl(t, r, e.firstChild, n, o, i, !1);
}
function w_(e, n, t) {
  const r = n[F], o = Ku(e, t, n), i = t.parent || n[ye];
  let s = Hg(i, t, n);
  Wg(r, 0, n, t, o, s);
}
function Wg(e, n, t, r, o, i) {
  const s = t[pe], c = s[ye];
  ngDevMode && T(typeof r.projection, "number", "expecting projection index");
  const a = c.projection[r.projection];
  if (Array.isArray(a))
    for (let u = 0; u < a.length; u++) {
      const l = a[u];
      er(n, e, o, l, i);
    }
  else {
    let u = a;
    const l = s[ae];
    $p(r) && (u.flags |= 128), nl(e, n, u, l, o, i, !0);
  }
}
function T_(e, n, t, r, o) {
  ngDevMode && Ke(t);
  const i = t[Bn], s = ve(t);
  i !== s && er(n, e, r, i, o);
  for (let c = K; c < t.length; c++) {
    const a = t[c];
    Bs(a[y], a, e, n, r, i);
  }
}
function S_(e, n, t, r, o) {
  if (n)
    o ? e.addClass(t, r) : e.removeClass(t, r);
  else {
    let i = r.indexOf("-") === -1 ? void 0 : Yi.DashCase;
    o == null ? e.removeStyle(t, r, i) : (typeof o == "string" && o.endsWith("!important") && (o = o.slice(0, -10), i |= Yi.Important), e.setStyle(t, r, o, i));
  }
}
function zg(e, n, t, r, o) {
  const i = Ie(), s = r & 2;
  try {
    At(-1), s && n.length > _ && Rg(e, n, _, !!ngDevMode && Wt()), Q(s ? 2 : 0, o, t), t(r, o);
  } finally {
    At(i), Q(s ? 3 : 1, o, t);
  }
}
function Us(e, n, t) {
  R_(e, n, t), (t.flags & 64) === 64 && P_(e, n, t);
}
function xr(e, n, t = xe) {
  const r = n.localNames;
  if (r !== null) {
    let o = n.index + 1;
    for (let i = 0; i < r.length; i += 2) {
      const s = r[i + 1], c = s === -1 ? t(n, e) : e[s];
      e[o++] = c;
    }
  }
}
function k_(e, n, t, r) {
  const i = r.get(ob, ng) || t === zn.ShadowDom;
  return e.selectRootElement(n, i);
}
function x_(e) {
  return e === "class" ? "className" : e === "for" ? "htmlFor" : e === "formaction" ? "formAction" : e === "innerHtml" ? "innerHTML" : e === "readonly" ? "readOnly" : e === "tabindex" ? "tabIndex" : e;
}
function tl(e, n, t, r, o, i) {
  ngDevMode && Ir(r, $, "Incoming value should never be NO_CHANGE.");
  const s = n[y];
  if (cl(e, s, n, t, r)) {
    Dr(e) && A_(n, e.index), ngDevMode && O_(n, s, e, t, r);
    return;
  }
  e.type & 3 && (t = x_(t)), rl(e, n, t, r, o, i);
}
function rl(e, n, t, r, o, i) {
  if (e.type & 3) {
    const s = xe(e, n);
    ngDevMode && (Ub(t), e_(s, t, e.value, n[y].schemas) || vd(t, e.value, e.type, n)), r = i != null ? i(r, e.value || "", t) : r, o.setProperty(s, t, r);
  } else e.type & 12 && ngDevMode && !zu(n[y].schemas, e.value) && vd(t, e.value, e.type, n);
}
function A_(e, n) {
  ngDevMode && ze(e);
  const t = Ye(n, e);
  t[A] & 16 || (t[A] |= 64);
}
function Ma(e, n, t, r) {
  if (!e[$e].ngReflect)
    return;
  const i = xe(n, e), s = e[F];
  t = Qb(t);
  const c = Jb(r);
  if (n.type & 3)
    r == null ? s.removeAttribute(i, t) : s.setAttribute(i, t, c);
  else {
    const a = Ig(`bindings=${JSON.stringify({ [t]: c }, null, 2)}`);
    s.setValue(i, a);
  }
}
function O_(e, n, t, r, o) {
  var a, u;
  if (!e[$e].ngReflect || !(t.type & 7))
    return;
  const s = (a = t.inputs) == null ? void 0 : a[r], c = (u = t.hostDirectiveInputs) == null ? void 0 : u[r];
  if (c)
    for (let l = 0; l < c.length; l += 2) {
      const d = c[l], h = c[l + 1], p = n.data[d];
      Ma(e, t, p.inputs[h][0], o);
    }
  if (s)
    for (const l of s) {
      const d = n.data[l];
      Ma(e, t, d.inputs[r][0], o);
    }
}
function R_(e, n, t) {
  const r = t.directiveStart, o = t.directiveEnd;
  Dr(t) && (ngDevMode && le(
    t,
    3
    /* TNodeType.AnyRNode */
  ), D_(n, t, e.data[r + t.componentOffset])), e.firstCreatePass || Qi(t, n);
  const i = t.initialInputs;
  for (let s = r; s < o; s++) {
    const c = e.data[s], a = vo(n, e, s, t);
    if (He(a, n), i !== null && F_(n, s - r, a, c, t, i), Te(c)) {
      const u = Ye(t.index, n);
      u[V] = vo(n, e, s, t);
    }
  }
}
function P_(e, n, t) {
  const r = t.directiveStart, o = t.directiveEnd, i = t.index, s = ED();
  try {
    At(i);
    for (let c = r; c < o; c++) {
      const a = e.data[c], u = n[c];
      ta(c), (a.hostBindings !== null || a.hostVars !== 0 || a.hostAttrs !== null) && N_(a, u);
    }
  } finally {
    At(-1), ta(s);
  }
}
function N_(e, n) {
  e.hostBindings !== null && e.hostBindings(1, n);
}
function ol(e, n) {
  ngDevMode && Se(e), ngDevMode && le(
    n,
    15
    /* TNodeType.AnyContainer */
  );
  const t = e.directiveRegistry;
  let r = null;
  if (t)
    for (let o = 0; o < t.length; o++) {
      const i = t[o];
      Cg(
        n,
        i.selectors,
        /* isProjectionMode */
        !1
      ) && (r ?? (r = []), Te(i) ? (ngDevMode && (le(n, 2, `"${n.value}" tags cannot be used as component hosts. Please use a different tag to activate the ${J(i.type)} component.`), r.length && Te(r[0]) && o_(n, r.find(Te).type, i.type)), r.unshift(i)) : r.push(i));
    }
  return r;
}
function L_(e, n, t, r, o, i) {
  ngDevMode && (Ir(r, $, "Incoming value should never be NO_CHANGE."), Vb(t), le(e, 2, `Attempted to set attribute \`${t}\` on a container node. Host bindings are not valid on ng-container or ng-template.`));
  const s = xe(e, n);
  il(n[F], s, i, e.value, t, r, o);
}
function il(e, n, t, r, o, i, s) {
  if (i == null)
    e.removeAttribute(n, o, t);
  else {
    const c = s == null ? O(i) : s(i, r || "", o);
    e.setAttribute(n, o, c, t);
  }
}
function F_(e, n, t, r, o, i) {
  const s = i[n];
  if (s !== null)
    for (let c = 0; c < s.length; c += 2) {
      const a = s[c], u = s[c + 1];
      ma(r, t, a, u), ngDevMode && Ma(e, o, r.inputs[a][0], u);
    }
}
function Vs(e, n, t, r, o) {
  const i = _ + t, s = n[y], c = o(s, n, e, r, t);
  n[i] = c, Mn(e, !0);
  const a = e.type === 2;
  return a ? (Ag(n[F], c, e), (pD() === 0 || Er(e)) && He(c, n), gD()) : He(c, n), Rs() && (!a || !ju(e)) && el(s, n, c, e), e;
}
function Ws(e) {
  let n = e;
  return tp() ? rp() : (ngDevMode && aD(L()), n = n.parent, Mn(n, !1)), n;
}
function Zo(e, n, t, r, ...o) {
  var i, s;
  if (e[r] === null && !((i = n.inputs) != null && i[t]) && !((s = n.hostDirectiveInputs) != null && s[t])) {
    (n.propertyBindings || (n.propertyBindings = [])).push(r);
    let a = t;
    o.length > 0 && (a += Io + o.join(Io)), e[r] = a;
  }
}
function Gg(e, n, t) {
  return (e === null || Te(e)) && (t = dD(t[n.index])), t[F];
}
function sl(e, n) {
  const t = e[oe];
  if (!t)
    return;
  const r = t.get(Qn, null);
  r == null || r(n);
}
function cl(e, n, t, r, o) {
  var a, u;
  const i = (a = e.inputs) == null ? void 0 : a[r], s = (u = e.hostDirectiveInputs) == null ? void 0 : u[r];
  let c = !1;
  if (s)
    for (let l = 0; l < s.length; l += 2) {
      const d = s[l];
      ngDevMode && ue(t, d);
      const h = s[l + 1], p = n.data[d];
      ma(p, t[d], h, o), c = !0;
    }
  if (i)
    for (const l of i) {
      ngDevMode && ue(t, l);
      const d = t[l], h = n.data[l];
      ma(h, d, r, o), c = !0;
    }
  return c;
}
function j_(e, n) {
  ngDevMode && T(Lo(e), !0, "Should be run in creation mode");
  const t = Ye(n, e), r = t[y];
  H_(r, t);
  const o = t[ce];
  o !== null && t[wt] === null && (t[wt] = ig(o, t[oe])), Q(
    18
    /* ProfilerEvent.ComponentStart */
  ), Yo(r, t, t[V]), Q(19, t[V]);
}
function H_(e, n) {
  for (let t = n.length; t < e.blueprint.length; t++)
    n.push(e.blueprint[t]);
}
function Yo(e, n, t) {
  var r;
  ngDevMode && T(Lo(n), !0, "Should be run in creation mode"), ngDevMode && su(Yo.name), xu(n);
  try {
    const o = e.viewQuery;
    o !== null && ha(1, o, t);
    const i = e.template;
    i !== null && zg(e, n, i, 1, t), e.firstCreatePass && (e.firstCreatePass = !1), (r = n[Be]) == null || r.finishViewCreation(e), e.staticContentQueries && ag(e, n), e.staticViewQueries && ha(2, e.viewQuery, t);
    const s = e.components;
    s !== null && $_(n, s);
  } catch (o) {
    throw e.firstCreatePass && (e.incompleteFirstPass = !0, e.firstCreatePass = !1), o;
  } finally {
    n[A] &= -5, Au();
  }
}
function $_(e, n) {
  for (let t = 0; t < n.length; t++)
    j_(e, n[t]);
}
function Ar(e, n, t, r) {
  const o = N(null);
  try {
    const i = n.tView;
    ngDevMode && E(i, "TView must be defined for a template node."), ngDevMode && We(n, e);
    const c = e[A] & 4096 ? 4096 : 16, a = $s(e, i, t, c, null, n, null, null, (r == null ? void 0 : r.injector) ?? null, (r == null ? void 0 : r.embeddedViewInjector) ?? null, (r == null ? void 0 : r.dehydratedView) ?? null), u = e[n.index];
    ngDevMode && Ke(u), a[St] = u;
    const l = e[Be];
    return l !== null && (a[Be] = l.createEmbeddedView(i)), Yo(i, a, t), a;
  } finally {
    N(o);
  }
}
function Pt(e, n) {
  return !n || n.firstChild === null || $p(e);
}
const _d = !1, B_ = new w(ngDevMode ? "exhaustive checkNoChanges" : "");
function Do(e, n, t, r, o = !1) {
  for (; t !== null; ) {
    if (t.type === 128) {
      t = o ? t.projectionNext : t.next;
      continue;
    }
    ngDevMode && le(
      t,
      63
      /* TNodeType.Icu */
    );
    const i = n[t.index];
    i !== null && r.push(ve(i)), ke(i) && U_(i, r);
    const s = t.type;
    if (s & 8)
      Do(e, n, t.child, r);
    else if (s & 32) {
      const c = Ju(t, n);
      let a;
      for (; a = c(); )
        r.push(a);
    } else if (s & 16) {
      const c = Vg(n, t);
      if (Array.isArray(c))
        r.push(...c);
      else {
        const a = In(n[pe]);
        ngDevMode && Vh(a), Do(a[y], a, c, r, !0);
      }
    }
    t = o ? t.projectionNext : t.next;
  }
  return r;
}
function U_(e, n) {
  for (let t = K; t < e.length; t++) {
    const r = e[t], o = r[y].firstChild;
    o !== null && Do(r[y], r, o, n);
  }
  e[Bn] !== e[ce] && n.push(e[Bn]);
}
function qg(e) {
  if (e[Ln] !== null) {
    for (const n of e[Ln])
      n.impl.addSequence(n);
    e[Ln].length = 0;
  }
}
let Qg = [];
function V_(e) {
  return e[Ue] ?? W_(e);
}
function W_(e) {
  const n = Qg.pop() ?? Object.create(G_);
  return n.lView = e, n;
}
function z_(e) {
  e.lView[Ue] !== e && (e.lView = null, Qg.push(e));
}
const G_ = {
  ...Es,
  consumerIsAlwaysLive: !0,
  kind: "template",
  consumerMarkedDirty: (e) => {
    Fo(e.lView);
  },
  consumerOnSignalRead() {
    this.lView[Ue] = this;
  }
};
function q_(e) {
  const n = e[Ue] ?? Object.create(Q_);
  return n.lView = e, n;
}
const Q_ = {
  ...Es,
  consumerIsAlwaysLive: !0,
  kind: "template",
  consumerMarkedDirty: (e) => {
    let n = In(e.lView);
    for (; n && !Zg(n[y]); )
      n = In(n);
    n && Qh(n);
  },
  consumerOnSignalRead() {
    this.lView[Ue] = this;
  }
};
function Zg(e) {
  return e.type !== 2;
}
function Z_(e) {
  return e.kind === "template";
}
function Yg(e) {
  if (e[Ui] === null)
    return;
  let n = !0;
  for (; n; ) {
    let t = !1;
    for (const r of e[Ui])
      r.dirty && (t = !0, r.zone === null || Zone.current === r.zone ? r.run() : r.zone.run(() => r.run()));
    n = t && !!(e[A] & 8192);
  }
}
const Y_ = 100;
function zs(e, n = 0) {
  var i, s;
  const r = e[$e].rendererFactory, o = !!ngDevMode && Wt();
  o || (i = r.begin) == null || i.call(r);
  try {
    J_(e, n);
  } finally {
    o || (s = r.end) == null || s.call(r);
  }
}
function J_(e, n) {
  const t = ip();
  try {
    if (Zl(!0), Da(e, n), ngDevMode && Tu())
      return;
    let r = 0;
    for (; zi(e); ) {
      if (r === Y_)
        throw new b(103, ngDevMode && "Infinite change detection while trying to refresh views. There may be components which each cause the other to require a refresh, causing an infinite loop.");
      r++, Da(
        e,
        1
        /* ChangeDetectionMode.Targeted */
      );
    }
  } finally {
    Zl(t);
  }
}
function X_(e, n) {
  Ql(n ? Dt.Exhaustive : Dt.OnlyDirtyViews);
  try {
    zs(e);
  } finally {
    Ql(Dt.Off);
  }
}
function Jg(e, n, t, r) {
  if (ngDevMode && T(Lo(n), !1, "Should be run in update mode"), yn(n))
    return;
  const o = n[A], i = ngDevMode && Wt(), s = ngDevMode && Tu();
  xu(n);
  let c = !0, a = null, u = null;
  i || (Zg(e) ? (u = V_(n), a = Vc(u)) : Ds() === null ? (c = !1, u = q_(n), a = Vc(u)) : n[Ue] && (uh(n[Ue]), n[Ue] = null));
  try {
    qh(n), sp(e.bindingStartIndex), t !== null && zg(e, n, t, 2, r);
    const l = (o & 3) === 3;
    if (!i)
      if (l) {
        const p = e.preOrderCheckHooks;
        p !== null && Mi(n, p, null);
      } else {
        const p = e.preOrderHooks;
        p !== null && Di(n, p, 0, null), gc(
          n,
          0
          /* InitPhaseState.OnInitHooksToBeRun */
        );
      }
    if (s || K_(n), Yg(n), Xg(
      n,
      0
      /* ChangeDetectionMode.Global */
    ), e.contentQueries !== null && ag(e, n), !i)
      if (l) {
        const p = e.contentCheckHooks;
        p !== null && Mi(n, p);
      } else {
        const p = e.contentHooks;
        p !== null && Di(
          n,
          p,
          1
          /* InitPhaseState.AfterContentInitHooksToBeRun */
        ), gc(
          n,
          1
          /* InitPhaseState.AfterContentInitHooksToBeRun */
        );
      }
    nC(e, n);
    const d = e.components;
    d !== null && em(
      n,
      d,
      0
      /* ChangeDetectionMode.Global */
    );
    const h = e.viewQuery;
    if (h !== null && ha(2, h, r), !i)
      if (l) {
        const p = e.viewCheckHooks;
        p !== null && Mi(n, p);
      } else {
        const p = e.viewHooks;
        p !== null && Di(
          n,
          p,
          2
          /* InitPhaseState.AfterViewInitHooksToBeRun */
        ), gc(
          n,
          2
          /* InitPhaseState.AfterViewInitHooksToBeRun */
        );
      }
    if (e.firstUpdatePass === !0 && (e.firstUpdatePass = !1), n[hc]) {
      for (const p of n[hc])
        p();
      n[hc] = null;
    }
    i || (qg(n), n[A] &= -73);
  } catch (l) {
    throw i || Fo(n), l;
  } finally {
    u !== null && (ch(u, a), c && z_(u)), Au();
  }
}
function Xg(e, n) {
  for (let t = qp(e); t !== null; t = Qp(t))
    for (let r = K; r < t.length; r++) {
      const o = t[r];
      Kg(o, n);
    }
}
function K_(e) {
  for (let n = qp(e); n !== null; n = Qp(n)) {
    if (!(n[A] & 2))
      continue;
    const t = n[xt];
    ngDevMode && E(t, "Transplanted View flags set but missing MOVED_VIEWS");
    for (let r = 0; r < t.length; r++) {
      const o = t[r];
      Qh(o);
    }
  }
}
function eC(e, n, t) {
  ngDevMode && T(Lo(e), !1, "Should be run in update mode"), Q(
    18
    /* ProfilerEvent.ComponentStart */
  );
  const r = Ye(n, e);
  Kg(r, t), Q(19, r[V]);
}
function Kg(e, n) {
  bu(e) && Da(e, n);
}
function Da(e, n) {
  const t = ngDevMode && Wt(), r = e[y], o = e[A], i = e[Ue];
  let s = !!(n === 0 && o & 16);
  if (s || (s = !!(o & 64 && n === 0 && !t)), s || (s = !!(o & 1024)), s || (s = !!(i != null && i.dirty && ah(i))), s || (s = !!(ngDevMode && Tu())), i && (i.dirty = !1), e[A] &= -9217, s)
    Jg(r, e, r.template, e[V]);
  else if (o & 8192) {
    const c = N(null);
    try {
      t || Yg(e), Xg(
        e,
        1
        /* ChangeDetectionMode.Targeted */
      );
      const a = r.components;
      a !== null && em(
        e,
        a,
        1
        /* ChangeDetectionMode.Targeted */
      ), t || qg(e);
    } finally {
      N(c);
    }
  }
}
function em(e, n, t) {
  for (let r = 0; r < n.length; r++)
    eC(e, n[r], t);
}
function nC(e, n) {
  const t = e.hostBindingOpCodes;
  if (t !== null)
    try {
      for (let r = 0; r < t.length; r++) {
        const o = t[r];
        if (o < 0)
          At(~o);
        else {
          const i = o, s = t[++r], c = t[++r];
          DD(s, i);
          const a = n[i];
          Q(24, a), c(2, a), Q(25, a);
        }
      }
    } finally {
      At(-1);
    }
}
function Jo(e, n) {
  var r;
  const t = ip() ? (
    // When we are actively refreshing views, we only use the `Dirty` bit to mark a view
    64
  ) : (
    // When we are not actively refreshing a view tree, it is absolutely
    // valid to update state and mark views dirty. We use the `RefreshView` flag in this
    // case to allow synchronously rerunning change detection. This applies today to
    // afterRender hooks as well as animation listeners which execute after detecting
    // changes in a view when the render factory flushes.
    1088
  );
  for ((r = e[$e].changeDetectionScheduler) == null || r.notify(n); e; ) {
    e[A] |= t;
    const o = In(e);
    if (Un(e) && !o)
      return e;
    e = o;
  }
  return null;
}
function nm(e, n, t, r) {
  ngDevMode && ze(n);
  const o = [
    e,
    // host native
    !0,
    // Boolean `true` in this position signifies that this is an `LContainer`
    0,
    // flags
    n,
    // parent
    null,
    // next
    r,
    // t_host
    null,
    // dehydrated views
    t,
    // native,
    null,
    // view refs
    null
    // moved views
  ];
  return ngDevMode && T(o.length, K, "Should allocate correct number of slots for LContainer header."), o;
}
function tm(e, n) {
  const t = K + n;
  if (t < e.length) {
    const r = e[t];
    return ngDevMode && ze(r), r;
  }
}
function Or(e, n, t, r = !0) {
  const o = n[y];
  if (tC(o, n, e, t), r) {
    const s = Ia(t, e), c = n[F], a = c.parentNode(e[Bn]);
    a !== null && __(o, e[ye], c, n, a, s);
  }
  const i = n[wt];
  i !== null && i.firstChild !== null && (i.firstChild = null);
}
function al(e, n) {
  const t = Eo(e, n);
  return t !== void 0 && Qo(t[y], t), t;
}
function Eo(e, n) {
  if (e.length <= K)
    return;
  const t = K + n, r = e[t];
  if (r) {
    const o = r[St];
    o !== null && o !== e && Xu(o, r), n > 0 && (e[t - 1][Me] = r[Me]);
    const i = Hi(e, K + n);
    Pg(r[y], r);
    const s = i[Be];
    s !== null && s.detachView(i[y]), r[ae] = null, r[Me] = null, r[A] &= -129;
  }
  return r;
}
function tC(e, n, t, r) {
  ngDevMode && ze(n), ngDevMode && Ke(t);
  const o = K + r, i = t.length;
  r > 0 && (t[o - 1][Me] = n), r < i - K ? (n[Me] = t[o], Th(t, K + r, n)) : (t.push(n), n[Me] = null), n[ae] = t;
  const s = n[St];
  s !== null && t !== s && rm(s, n);
  const c = n[Be];
  c !== null && c.insertView(e), Kc(n), n[A] |= 128;
}
function rm(e, n) {
  ngDevMode && E(n, "LView required"), ngDevMode && Ke(e);
  const t = e[xt], r = n[ae];
  if (ngDevMode && E(r, "missing parent"), re(r))
    e[A] |= 2;
  else {
    const o = r[ae][pe];
    ngDevMode && E(o, "Missing insertedComponentLView");
    const i = n[pe];
    ngDevMode && E(i, "Missing declaredComponentLView"), i !== o && (e[A] |= 2);
  }
  t === null ? e[xt] = [n] : t.push(n);
}
class ul {
  constructor(n, t) {
    f(this, "_lView");
    f(this, "_cdRefInjectingView");
    f(this, "_appRef", null);
    f(this, "_attachedToViewContainer", !1);
    f(this, "exhaustive");
    this._lView = n, this._cdRefInjectingView = t;
  }
  get rootNodes() {
    const n = this._lView, t = n[y];
    return Do(t, n, t.firstChild, []);
  }
  get context() {
    return this._lView[V];
  }
  /**
   * @deprecated Replacing the full context object is not supported. Modify the context
   *   directly, or consider using a `Proxy` if you need to replace the full object.
   * // TODO(devversion): Remove this.
   */
  set context(n) {
    ngDevMode && console.warn("Angular: Replacing the `context` object of an `EmbeddedViewRef` is deprecated."), this._lView[V] = n;
  }
  get destroyed() {
    return yn(this._lView);
  }
  destroy() {
    if (this._appRef)
      this._appRef.detachView(this);
    else if (this._attachedToViewContainer) {
      const n = this._lView[ae];
      if (ke(n)) {
        const t = n[Vi], r = t ? t.indexOf(this) : -1;
        r > -1 && (ngDevMode && T(r, n.indexOf(this._lView) - K, "An attached view should be in the same position within its container as its ViewRef in the VIEW_REFS array."), Eo(n, r), Hi(t, r));
      }
      this._attachedToViewContainer = !1;
    }
    Qo(this._lView[y], this._lView);
  }
  onDestroy(n) {
    As(this._lView, n);
  }
  /**
   * Marks a view and all of its ancestors dirty.
   *
   * This can be used to ensure an {@link ChangeDetectionStrategy#OnPush} component is
   * checked when it needs to be re-rendered but the two normal triggers haven't marked it
   * dirty (i.e. inputs haven't changed and events haven't fired in the view).
   *
   * <!-- TODO: Add a link to a chapter on OnPush components -->
   *
   * @usageNotes
   * ### Example
   *
   * ```ts
   * @Component({
   *   selector: 'app-root',
   *   template: `Number of ticks: {{numberOfTicks}}`
   *   changeDetection: ChangeDetectionStrategy.OnPush,
   * })
   * class AppComponent {
   *   numberOfTicks = 0;
   *
   *   constructor(private ref: ChangeDetectorRef) {
   *     setInterval(() => {
   *       this.numberOfTicks++;
   *       // the following is required, otherwise the view will not be updated
   *       this.ref.markForCheck();
   *     }, 1000);
   *   }
   * }
   * ```
   */
  markForCheck() {
    Jo(
      this._cdRefInjectingView || this._lView,
      4
      /* NotificationSource.MarkForCheck */
    );
  }
  /**
   * Detaches the view from the change detection tree.
   *
   * Detached views will not be checked during change detection runs until they are
   * re-attached, even if they are dirty. `detach` can be used in combination with
   * {@link ChangeDetectorRef#detectChanges} to implement local change
   * detection checks.
   *
   * <!-- TODO: Add a link to a chapter on detach/reattach/local digest -->
   * <!-- TODO: Add a live demo once ref.detectChanges is merged into master -->
   *
   * @usageNotes
   * ### Example
   *
   * The following example defines a component with a large list of readonly data.
   * Imagine the data changes constantly, many times per second. For performance reasons,
   * we want to check and update the list every five seconds. We can do that by detaching
   * the component's change detector and doing a local check every five seconds.
   *
   * ```ts
   * class DataProvider {
   *   // in a real application the returned data will be different every time
   *   get data() {
   *     return [1,2,3,4,5];
   *   }
   * }
   *
   * @Component({
   *   selector: 'giant-list',
   *   template: `
   *     @for(d of dataProvider.data; track $index) {
   *        <li>Data {{d}}</li>
   *     }
   *   `,
   * })
   * class GiantList {
   *   constructor(private ref: ChangeDetectorRef, private dataProvider: DataProvider) {
   *     ref.detach();
   *     setInterval(() => {
   *       this.ref.detectChanges();
   *     }, 5000);
   *   }
   * }
   *
   * @Component({
   *   selector: 'app',
   *   providers: [DataProvider],
   *   template: `
   *     <giant-list><giant-list>
   *   `,
   * })
   * class App {
   * }
   * ```
   */
  detach() {
    this._lView[A] &= -129;
  }
  /**
   * Re-attaches a view to the change detection tree.
   *
   * This can be used to re-attach views that were previously detached from the tree
   * using {@link ChangeDetectorRef#detach}. Views are attached to the tree by default.
   *
   * <!-- TODO: Add a link to a chapter on detach/reattach/local digest -->
   *
   * @usageNotes
   * ### Example
   *
   * The following example creates a component displaying `live` data. The component will detach
   * its change detector from the main change detector tree when the component's live property
   * is set to false.
   *
   * ```ts
   * class DataProvider {
   *   data = 1;
   *
   *   constructor() {
   *     setInterval(() => {
   *       this.data = this.data * 2;
   *     }, 500);
   *   }
   * }
   *
   * @Component({
   *   selector: 'live-data',
   *   inputs: ['live'],
   *   template: 'Data: {{dataProvider.data}}'
   * })
   * class LiveData {
   *   constructor(private ref: ChangeDetectorRef, private dataProvider: DataProvider) {}
   *
   *   set live(value) {
   *     if (value) {
   *       this.ref.reattach();
   *     } else {
   *       this.ref.detach();
   *     }
   *   }
   * }
   *
   * @Component({
   *   selector: 'app-root',
   *   providers: [DataProvider],
   *   template: `
   *     Live Update: <input type="checkbox" [(ngModel)]="live">
   *     <live-data [live]="live"><live-data>
   *   `,
   * })
   * class AppComponent {
   *   live = true;
   * }
   * ```
   */
  reattach() {
    Kc(this._lView), this._lView[A] |= 128;
  }
  /**
   * Checks the view and its children.
   *
   * This can also be used in combination with {@link ChangeDetectorRef#detach} to implement
   * local change detection checks.
   *
   * <!-- TODO: Add a link to a chapter on detach/reattach/local digest -->
   * <!-- TODO: Add a live demo once ref.detectChanges is merged into master -->
   *
   * @usageNotes
   * ### Example
   *
   * The following example defines a component with a large list of readonly data.
   * Imagine, the data changes constantly, many times per second. For performance reasons,
   * we want to check and update the list every five seconds.
   *
   * We can do that by detaching the component's change detector and doing a local change detection
   * check every five seconds.
   *
   * See {@link ChangeDetectorRef#detach} for more information.
   */
  detectChanges() {
    this._lView[A] |= 1024, zs(this._lView);
  }
  /**
   * Checks the change detector and its children, and throws if any changes are detected.
   *
   * This is used in development mode to verify that running change detection doesn't
   * introduce other changes.
   */
  checkNoChanges() {
    if (ngDevMode) {
      try {
        this.exhaustive ?? (this.exhaustive = this._lView[oe].get(B_, _d));
      } catch {
        this.exhaustive = _d;
      }
      X_(this._lView, this.exhaustive);
    }
  }
  attachToViewContainerRef() {
    if (this._appRef)
      throw new b(902, ngDevMode && "This view is already attached directly to the ApplicationRef!");
    this._attachedToViewContainer = !0;
  }
  detachFromAppRef() {
    this._appRef = null;
    const n = Un(this._lView), t = this._lView[St];
    t !== null && !n && Xu(t, this._lView), Ng(this._lView[y], this._lView);
  }
  attachToAppRef(n) {
    if (this._attachedToViewContainer)
      throw new b(902, ngDevMode && "This view is already attached to a ViewContainer!");
    this._appRef = n;
    const t = Un(this._lView), r = this._lView[St];
    r !== null && !t && rm(r, this._lView), Kc(this._lView);
  }
}
class bo {
  /** @internal */
  constructor(n, t, r) {
    f(this, "_declarationLView");
    f(this, "_declarationTContainer");
    /**
     * The anchor element in the parent view for this embedded view.
     *
     * The data-binding and [injection contexts](guide/di/dependency-injection-context) of embedded
     * views created from this `TemplateRef` inherit from the contexts of this location.
     *
     * Typically new embedded views are attached to the view container of this location, but in
     * advanced use-cases, the view can be attached to a different container while keeping the
     * data-binding and injection context from the original location.
     *
     */
    f(this, "elementRef");
    this._declarationLView = n, this._declarationTContainer = t, this.elementRef = r;
  }
  /**
   * Returns an `ssrId` associated with a TView, which was used to
   * create this instance of the `TemplateRef`.
   *
   * @internal
   */
  get ssrId() {
    var n;
    return ((n = this._declarationTContainer.tView) == null ? void 0 : n.ssrId) || null;
  }
  /**
   * Instantiates an unattached embedded view based on this template.
   * @param context The data-binding context of the embedded view, as declared
   * in the `<ng-template>` usage.
   * @param injector Injector to be used within the embedded view.
   * @returns The new embedded view object.
   */
  createEmbeddedView(n, t) {
    return this.createEmbeddedViewImpl(n, t);
  }
  /**
   * Implementation of the `createEmbeddedView` function.
   *
   * This implementation is internal and allows framework code
   * to invoke it with extra parameters (e.g. for hydration) without
   * affecting public API.
   *
   * @internal
   */
  createEmbeddedViewImpl(n, t, r) {
    const o = Ar(this._declarationLView, this._declarationTContainer, n, { embeddedViewInjector: t, dehydratedView: r });
    return new ul(o);
  }
}
/**
 * @internal
 * @nocollapse
 */
f(bo, "__NG_ELEMENT_ID__", rC);
function rC() {
  return Gs(L(), I());
}
function Gs(e, n) {
  return e.type & 4 ? (ngDevMode && E(e.tView, "TView must be allocated"), new bo(n, e, Sr(e, n))) : null;
}
const om = "<-- AT THIS LOCATION";
function oC(e) {
  switch (e) {
    case 4:
      return "view container";
    case 2:
      return "element";
    case 8:
      return "ng-container";
    case 32:
      return "icu";
    case 64:
      return "i18n";
    case 16:
      return "projection";
    case 1:
      return "text";
    case 128:
      return "@let";
    default:
      return "<unknown>";
  }
}
function iC(e) {
  if (sC(e), !e.nextSibling) {
    const n = `During hydration Angular expected more sibling nodes to be present.

`, t = `Actual DOM is:

${dC(e)}

`, r = im(), o = n + t + r;
    throw sg(e, "", t), new b(-501, o);
  }
}
function sC(e, n = null, t = null) {
  if (!e) {
    const r = `During hydration, Angular expected an element to be present at this location.

`;
    let o = "", i = "";
    throw n !== null && t !== null && (o = lC(n, t), i = im(), sg(ve(n[ce]), o, "")), new b(-502, `${r}${o}

${i}`);
  }
}
function cC(e) {
  const n = [];
  if (e.attrs)
    for (let t = 0; t < e.attrs.length; ) {
      const r = e.attrs[t++];
      if (typeof r == "number")
        break;
      const o = e.attrs[t++];
      n.push(`${r}="${Ji(o)}"`);
    }
  return n.join(" ");
}
const aC = /* @__PURE__ */ new Set(["ngh", "ng-version", "ng-server-context"]);
function uC(e) {
  const n = [];
  for (let t = 0; t < e.attributes.length; t++) {
    const r = e.attributes[t];
    aC.has(r.name) || n.push(`${r.name}="${Ji(r.value)}"`);
  }
  return n.join(" ");
}
function Cd(e, n = "…") {
  switch (e.type) {
    case 1:
      return `#text${e.value ? `(${e.value})` : ""}`;
    case 2:
      const r = cC(e), o = e.value.toLowerCase();
      return `<${o}${r ? " " + r : ""}>${n}</${o}>`;
    case 8:
      return "<!-- ng-container -->";
    case 4:
      return "<!-- container -->";
    default:
      return `#node(${oC(e.type)})`;
  }
}
function bi(e, n = "…") {
  const t = e;
  switch (t.nodeType) {
    case Node.ELEMENT_NODE:
      const r = t.tagName.toLowerCase(), o = uC(t);
      return `<${r}${o ? " " + o : ""}>${n}</${r}>`;
    case Node.TEXT_NODE:
      const i = t.textContent ? Ji(t.textContent) : "";
      return `#text${i ? `(${i})` : ""}`;
    case Node.COMMENT_NODE:
      return `<!-- ${Ji(t.textContent ?? "")} -->`;
    default:
      return `#node(${t.nodeType})`;
  }
}
function lC(e, n, t) {
  let o = "";
  n.prev ? (o += `  …
`, o += "  " + Cd(n.prev) + `
`) : n.type && n.type & 12 && (o += `  …
`), o += "  " + Cd(n) + `  ${om}
`, o += `  …
`;
  const i = n.type ? Ku(e[y], n, e) : null;
  return i && (o = bi(i, `
` + o)), o;
}
function dC(e) {
  let t = "";
  const r = e;
  return r.previousSibling && (t += `  …
`, t += "  " + bi(r.previousSibling) + `
`), t += "  " + bi(r) + `  ${om}
`, e.nextSibling && (t += `  …
`), e.parentNode && (t = bi(r.parentNode, `
` + t)), t;
}
function im(e) {
  return `To fix this problem:
  * check corresponding component for hydration-related issues
  * check to see if your template has valid HTML structure
  * or skip hydration by adding the \`ngSkipHydration\` attribute to its host node in a template

`;
}
function fC(e) {
  return e.replace(/\s+/gm, "");
}
function Ji(e, n = 50) {
  return e ? (e = fC(e), e.length > n ? `${e.substring(0, n - 1)}…` : e) : "";
}
function sm(e, n, t) {
  const r = n.insertBeforeIndex, o = Array.isArray(r) ? r[0] : r;
  return o === null ? $g(e, n, t) : (ngDevMode && ue(t, o), ve(t[o]));
}
function cm(e, n, t, r, o) {
  const i = n.insertBeforeIndex;
  if (Array.isArray(i)) {
    ngDevMode && mt(r);
    let s = r, c = null;
    if (n.type & 3 || (c = s, s = o), s !== null && n.componentOffset === -1)
      for (let a = 1; a < i.length; a++) {
        const u = t[i[a]];
        Rt(e, s, u, c, !1);
      }
  }
}
function Gt(e, n, t, r, o) {
  ngDevMode && n !== 0 && // 0 are bogus nodes and they are OK. See `createContainerRef` in
  // `view_engine_compatibility` for additional context.
  _n(n, _, "TNodes can't be in the LView header."), ngDevMode && aE(t);
  let i = e.data[n];
  if (i === null)
    i = ll(e, n, t, r, o), MD() && (i.flags |= 32);
  else if (i.type & 64) {
    i.type = t, i.value = r, i.attrs = o;
    const s = po();
    i.injectorIndex = s === null ? -1 : s.injectorIndex, ngDevMode && br(i, e), ngDevMode && T(n, i.index, "Expecting same index");
  }
  return Mn(i, !0), i;
}
function ll(e, n, t, r, o) {
  const i = np(), s = tp(), c = s ? i : i && i.parent, a = e.data[n] = pC(e, c, t, n, r, o);
  return hC(e, a, i, s), a;
}
function hC(e, n, t, r) {
  e.firstChild === null && (e.firstChild = n), t !== null && (r ? t.child == null && n.parent !== null && (t.child = n) : t.next === null && (t.next = n, n.prev = t));
}
function pC(e, n, t, r, o, i) {
  ngDevMode && r !== 0 && // 0 are bogus nodes and they are OK. See `createContainerRef` in
  // `view_engine_compatibility` for additional context.
  _n(r, _, "TNodes can't be in the LView header."), ngDevMode && Ir(i, void 0, "'undefined' is not valid value for 'attrs'"), ngDevMode && n && br(n, e);
  let s = n ? n.injectorIndex : -1, c = 0;
  Xh() && (c |= 128);
  const a = {
    type: t,
    index: r,
    insertBeforeIndex: null,
    injectorIndex: s,
    directiveStart: -1,
    directiveEnd: -1,
    directiveStylingLast: -1,
    componentOffset: -1,
    propertyBindings: null,
    flags: c,
    providerIndexes: 0,
    value: o,
    attrs: i,
    mergedAttrs: null,
    localNames: null,
    initialInputs: null,
    inputs: null,
    hostDirectiveInputs: null,
    outputs: null,
    hostDirectiveOutputs: null,
    directiveToIndex: null,
    tView: null,
    next: null,
    prev: null,
    projectionNext: null,
    child: null,
    parent: n,
    projection: null,
    styles: null,
    stylesWithoutHost: null,
    residualStyles: void 0,
    classes: null,
    classesWithoutHost: null,
    residualClasses: void 0,
    classBindings: 0,
    styleBindings: 0
  };
  return ngDevMode && Object.seal(a), a;
}
function am(e, n) {
  if (ngDevMode && T(n.insertBeforeIndex, null, "We expect that insertBeforeIndex is not set"), e.push(n), e.length > 1)
    for (let t = e.length - 2; t >= 0; t--) {
      const r = e[t];
      um(r) || gC(r, n) && mC(r) === null && vC(r, n.index);
    }
}
function um(e) {
  return !(e.type & 64);
}
function gC(e, n) {
  return um(n) || e.index > n.index;
}
function mC(e) {
  const n = e.insertBeforeIndex;
  return Array.isArray(n) ? n[0] : n;
}
function vC(e, n) {
  const t = e.insertBeforeIndex;
  Array.isArray(t) ? t[0] = n : (Ug(sm, cm), e.insertBeforeIndex = n);
}
function Zr(e, n) {
  const t = e.data[n];
  if (t === null || typeof t == "string")
    return null;
  ngDevMode && !(t.hasOwnProperty("tView") || t.hasOwnProperty("currentCaseLViewIndex")) && C("We expect to get 'null'|'TIcu'|'TIcuContainer', but got: " + t);
  const r = t.hasOwnProperty("currentCaseLViewIndex") ? t : t.value;
  return ngDevMode && Mu(r), r;
}
function yC(e, n, t) {
  const r = e.data[n];
  ngDevMode && T(r === null || r.hasOwnProperty("tView"), !0, "We expect to get 'null'|'TIcuContainer'"), r === null ? e.data[n] = t : (ngDevMode && le(
    r,
    32
    /* TNodeType.Icu */
  ), r.value = t);
}
function IC(e, n) {
  ngDevMode && Vn(e);
  let t = e.insertBeforeIndex;
  t === null ? (Ug(sm, cm), t = e.insertBeforeIndex = [
    null,
    n
  ]) : (T(Array.isArray(t), !0, "Expecting array here"), t.push(n));
}
function MC(e, n, t) {
  const r = ll(e, t, 64, null, null);
  return am(n, r), r;
}
function qs(e, n) {
  const t = n[e.currentCaseLViewIndex];
  return t === null ? t : t < 0 ? ~t : t;
}
function lm(e) {
  return e >>> 17;
}
function dm(e) {
  return (e & 131070) >>> 1;
}
function wd(e) {
  return e & 1;
}
function DC(e, n, t) {
  return ngDevMode && _n(n, 0, "Missing parent index"), ngDevMode && Bt(t, 0, "Missing ref index"), e | n << 17 | t << 1;
}
function EC(e) {
  return e === -1;
}
function fm(e, n, t) {
  e.index = 0;
  const r = qs(n, t);
  r !== null ? (ngDevMode && fo(r, 0, n.cases.length - 1), e.removes = n.remove[r]) : e.removes = B;
}
function Ea(e) {
  if (e.index < e.removes.length) {
    const n = e.removes[e.index++];
    if (ngDevMode && q(n, "Expecting OpCode number"), n > 0) {
      const t = e.lView[n];
      return ngDevMode && mt(t), t;
    } else {
      e.stack.push(e.index, e.removes);
      const t = ~n, r = e.lView[y].data[t];
      return ngDevMode && Mu(r), fm(e, r, e.lView), Ea(e);
    }
  } else
    return e.stack.length === 0 ? null : (e.removes = e.stack.pop(), e.index = e.stack.pop(), Ea(e));
}
function bC() {
  const e = {
    stack: [],
    index: -1
  };
  function n(t, r) {
    for (e.lView = r; e.stack.length; )
      e.stack.pop();
    return ngDevMode && We(t, r), fm(e, t.value, r), Ea.bind(null, e);
  }
  return n;
}
function _C(e) {
  const n = e[wt];
  if (n) {
    const { i18nNodes: t, dehydratedIcuData: r } = n;
    if (t && r) {
      const o = e[F];
      for (const i of r.values())
        CC(o, t, i);
    }
    n.i18nNodes = void 0, n.dehydratedIcuData = void 0;
  }
}
function CC(e, n, t) {
  for (const r of t.node.cases[t.case]) {
    const o = n.get(r.index - _);
    o && Go(e, o, !1);
  }
}
function hm(e) {
  const n = e[$n] ?? [], r = e[ae][F], o = [];
  for (const i of n)
    i.data[Kp] !== void 0 ? o.push(i) : (pm(i, r), ngDevMode && ngDevMode.dehydratedViewsRemoved++);
  e[$n] = o;
}
function wC(e) {
  const { lContainer: n } = e, t = n[$n];
  if (t === null)
    return;
  const o = n[ae][F];
  for (const i of t)
    pm(i, o), ngDevMode && ngDevMode.dehydratedViewsRemoved++;
}
function pm(e, n) {
  let t = 0, r = e.firstChild;
  if (r) {
    const o = e.data[Xp];
    for (; t < o; ) {
      ngDevMode && iC(r);
      const i = r.nextSibling;
      Go(n, r, !1), r = i, t++;
    }
  }
}
function Qs(e) {
  hm(e);
  const n = e[ce];
  re(n) && Xi(n);
  for (let t = K; t < e.length; t++)
    Xi(e[t]);
}
function Xi(e) {
  _C(e);
  const n = e[y];
  for (let t = _; t < n.bindingStartIndex; t++)
    if (ke(e[t])) {
      const r = e[t];
      Qs(r);
    } else re(e[t]) && Xi(e[t]);
}
function TC(e) {
  const n = e._views;
  for (const t of n) {
    const r = lb(t);
    r !== null && r[ce] !== null && (re(r) ? Xi(r) : Qs(r), ngDevMode && ngDevMode.dehydratedViewsCleanupRuns++);
  }
}
function SC(e, n, t, r) {
  e !== null && (t.cleanup(n), Qs(e.lContainer), TC(r));
}
let kC = () => null, xC = () => null;
function Ki(e, n) {
  return kC();
}
function gm(e, n, t) {
  return xC();
}
let AC = class {
}, mm = class {
};
class OC {
  resolveComponentFactory(n) {
    throw new b(917, typeof ngDevMode < "u" && ngDevMode && `No component factory found for ${J(n)}.`);
  }
}
var jc;
let Zs = (jc = class {
}, f(jc, "NULL", new OC()), jc);
class vm {
}
const Is = class Is {
};
/** @nocollapse */
f(
  Is,
  "ɵprov",
  /** @pureOrBreakMyCode */
  /* @__PURE__ */ X({
    token: Is,
    providedIn: "root",
    factory: () => null
  })
);
let ba = Is;
function dl(e) {
  return e.ngModule !== void 0;
}
function qt(e) {
  return !!ln(e);
}
function di(e) {
  return !!je(e);
}
function Td(e) {
  return !!fe(e);
}
function Yr(e) {
  return !!H(e);
}
function RC(e) {
  return H(e) ? "component" : fe(e) ? "directive" : je(e) ? "pipe" : "type";
}
function _a(e, n) {
  if (bs(e) && (e = x(e), !e))
    throw new Error(`Expected forwardRef function, imported from "${P(n)}", to return a standalone entity or NgModule but got "${P(e) || e}".`);
  if (ln(e) == null) {
    const t = H(e) || fe(e) || je(e);
    if (t != null) {
      if (!t.standalone)
        throw new Error(`The "${P(e)}" ${RC(e)}, imported from "${P(n)}", is not standalone. Did you forget to add the standalone: true flag?`);
    } else
      throw dl(e) ? new Error(`A module with providers was imported from "${P(n)}". Modules with providers are not supported in standalone components imports.`) : new Error(`The "${P(e)}" type, imported from "${P(n)}", must be a standalone component / directive / pipe or an NgModule. Did you forget to add the required @Component / @Directive / @Pipe or @NgModule annotation?`);
  }
}
class PC {
  constructor() {
    f(this, "ownerNgModule", /* @__PURE__ */ new Map());
    f(this, "ngModulesWithSomeUnresolvedDecls", /* @__PURE__ */ new Set());
    f(this, "ngModulesScopeCache", /* @__PURE__ */ new Map());
    f(this, "standaloneComponentsScopeCache", /* @__PURE__ */ new Map());
  }
  /**
   * Attempts to resolve ng module's forward ref declarations as much as possible and add them to
   * the `ownerNgModule` map. This method normally should be called after the initial parsing when
   * all the forward refs are resolved (e.g., when trying to render a component)
   */
  resolveNgModulesDecls() {
    if (this.ngModulesWithSomeUnresolvedDecls.size !== 0) {
      for (const n of this.ngModulesWithSomeUnresolvedDecls) {
        const t = ln(n);
        if (t != null && t.declarations)
          for (const r of an(t.declarations))
            Yr(r) && this.ownerNgModule.set(r, n);
      }
      this.ngModulesWithSomeUnresolvedDecls.clear();
    }
  }
  /** @override */
  getComponentDependencies(n, t) {
    this.resolveNgModulesDecls();
    const r = H(n);
    if (r === null)
      throw new Error(`Attempting to get component dependencies for a type that is not a component: ${n}`);
    if (r.standalone) {
      const o = this.getStandaloneComponentScope(n, t);
      return o.compilation.isPoisoned ? { dependencies: [] } : {
        dependencies: [
          ...o.compilation.directives,
          ...o.compilation.pipes,
          ...o.compilation.ngModules
        ]
      };
    } else {
      if (!this.ownerNgModule.has(n))
        return { dependencies: [] };
      const o = this.getNgModuleScope(this.ownerNgModule.get(n));
      return o.compilation.isPoisoned ? { dependencies: [] } : {
        dependencies: [...o.compilation.directives, ...o.compilation.pipes]
      };
    }
  }
  /**
   * @override
   * This implementation does not make use of param scopeInfo since it assumes the scope info is
   * already added to the type itself through methods like {@link ɵɵsetNgModuleScope}
   */
  registerNgModule(n, t) {
    if (!qt(n))
      throw new Error(`Attempting to register a Type which is not NgModule as NgModule: ${n}`);
    this.ngModulesWithSomeUnresolvedDecls.add(n);
  }
  /** @override */
  clearScopeCacheFor(n) {
    this.ngModulesScopeCache.delete(n), this.standaloneComponentsScopeCache.delete(n);
  }
  /** @override */
  getNgModuleScope(n) {
    if (this.ngModulesScopeCache.has(n))
      return this.ngModulesScopeCache.get(n);
    const t = this.computeNgModuleScope(n);
    return this.ngModulesScopeCache.set(n, t), t;
  }
  /** Compute NgModule scope afresh. */
  computeNgModuleScope(n) {
    const t = ks(n), r = {
      exported: { directives: /* @__PURE__ */ new Set(), pipes: /* @__PURE__ */ new Set() },
      compilation: { directives: /* @__PURE__ */ new Set(), pipes: /* @__PURE__ */ new Set() }
    };
    for (const o of an(t.imports))
      if (qt(o)) {
        const i = this.getNgModuleScope(o);
        xn(i.exported.directives, r.compilation.directives), xn(i.exported.pipes, r.compilation.pipes);
      } else if (It(o))
        if (Td(o) || Yr(o))
          r.compilation.directives.add(o);
        else if (di(o))
          r.compilation.pipes.add(o);
        else
          throw new b(980, "The standalone imported type is neither a component nor a directive nor a pipe");
      else {
        r.compilation.isPoisoned = !0;
        break;
      }
    if (!r.compilation.isPoisoned)
      for (const o of an(t.declarations)) {
        if (qt(o) || It(o)) {
          r.compilation.isPoisoned = !0;
          break;
        }
        di(o) ? r.compilation.pipes.add(o) : r.compilation.directives.add(o);
      }
    for (const o of an(t.exports))
      if (qt(o)) {
        const i = this.getNgModuleScope(o);
        xn(i.exported.directives, r.exported.directives), xn(i.exported.pipes, r.exported.pipes), xn(i.exported.directives, r.compilation.directives), xn(i.exported.pipes, r.compilation.pipes);
      } else di(o) ? r.exported.pipes.add(o) : r.exported.directives.add(o);
    return r;
  }
  /** @override */
  getStandaloneComponentScope(n, t) {
    if (this.standaloneComponentsScopeCache.has(n))
      return this.standaloneComponentsScopeCache.get(n);
    const r = this.computeStandaloneComponentScope(n, t);
    return this.standaloneComponentsScopeCache.set(n, r), r;
  }
  computeStandaloneComponentScope(n, t) {
    const r = {
      compilation: {
        // Standalone components are always able to self-reference.
        directives: /* @__PURE__ */ new Set([n]),
        pipes: /* @__PURE__ */ new Set(),
        ngModules: /* @__PURE__ */ new Set()
      }
    };
    for (const o of Fe(t ?? [])) {
      const i = x(o);
      try {
        _a(i, n);
      } catch {
        return r.compilation.isPoisoned = !0, r;
      }
      if (qt(i)) {
        r.compilation.ngModules.add(i);
        const s = this.getNgModuleScope(i);
        if (s.exported.isPoisoned)
          return r.compilation.isPoisoned = !0, r;
        xn(s.exported.directives, r.compilation.directives), xn(s.exported.pipes, r.compilation.pipes);
      } else if (di(i))
        r.compilation.pipes.add(i);
      else if (Td(i) || Yr(i))
        r.compilation.directives.add(i);
      else
        return r.compilation.isPoisoned = !0, r;
    }
    return r;
  }
  /** @override */
  isOrphanComponent(n) {
    const t = H(n);
    return !t || t.standalone ? !1 : (this.resolveNgModulesDecls(), !this.ownerNgModule.has(n));
  }
}
function xn(e, n) {
  for (const t of e)
    n.add(t);
}
const hr = new PC(), Ec = {};
class rr {
  constructor(n, t) {
    f(this, "injector");
    f(this, "parentInjector");
    this.injector = n, this.parentInjector = t;
  }
  get(n, t, r) {
    const o = this.injector.get(n, Ec, r);
    return o !== Ec || t === Ec ? o : this.parentInjector.get(n, t, r);
  }
}
function es(e, n, t) {
  ngDevMode && Se(R(), "Expecting to be called in first template pass only");
  let r = t ? e.styles : null, o = t ? e.classes : null, i = 0;
  if (n !== null)
    for (let s = 0; s < n.length; s++) {
      const c = n[s];
      if (typeof c == "number")
        i = c;
      else if (i == 1)
        o = Wc(o, c);
      else if (i == 2) {
        const a = c, u = n[++s];
        r = Wc(r, a + ": " + u + ";");
      }
    }
  t ? e.styles = r : e.stylesWithoutHost = r, t ? e.classes = o : e.classesWithoutHost = o;
}
function Rr(e, n = 0) {
  const t = I();
  if (t === null)
    return ngDevMode && WM(Rr), we(e, n);
  const r = L(), o = Np(r, t, x(e), n);
  return ngDevMode && yh(e, o, n), o;
}
function NC() {
  const e = ngDevMode ? "This constructor was not compatible with Dependency Injection." : "invalid";
  throw new Error(e);
}
function ym(e, n, t, r, o) {
  ngDevMode && Se(e);
  const i = r === null ? null : { "": -1 }, s = o(e, t);
  if (s !== null) {
    let c = s, a = null, u = null;
    for (const l of s)
      if (l.resolveHostDirectives !== null) {
        [c, a, u] = l.resolveHostDirectives(s);
        break;
      }
    ngDevMode && zC(c), jC(e, n, t, c, i, a, u);
  }
  i !== null && r !== null && LC(t, r, i);
}
function LC(e, n, t) {
  const r = e.localNames = [];
  for (let o = 0; o < n.length; o += 2) {
    const i = t[n[o + 1]];
    if (i == null)
      throw new b(-301, ngDevMode && `Export of name '${n[o + 1]}' not found!`);
    r.push(n[o], i);
  }
}
function FC(e, n, t) {
  ngDevMode && Se(e), ngDevMode && Bt(t, -1, "componentOffset must be great than -1"), n.componentOffset = t, (e.components ?? (e.components = [])).push(n.index);
}
function jC(e, n, t, r, o, i, s) {
  ngDevMode && Se(e);
  const c = r.length;
  let a = !1;
  for (let h = 0; h < c; h++) {
    const p = r[h];
    !a && Te(p) && (a = !0, FC(e, t, h)), ca(Qi(t, n), e, p.type);
  }
  WC(t, e.data.length, c);
  for (let h = 0; h < c; h++) {
    const p = r[h];
    p.providersResolver && p.providersResolver(p);
  }
  let u = !1, l = !1, d = qo(e, n, c, null);
  ngDevMode && gh(d, t.directiveStart, "TNode.directiveStart should point to just allocated space"), c > 0 && (t.directiveToIndex = /* @__PURE__ */ new Map());
  for (let h = 0; h < c; h++) {
    const p = r[h];
    if (t.mergedAttrs = lr(t.mergedAttrs, p.hostAttrs), $C(e, t, n, d, p), VC(d, p, o), s !== null && s.has(p)) {
      const [m, M] = s.get(p);
      t.directiveToIndex.set(p.type, [
        d,
        m + t.directiveStart,
        M + t.directiveStart
      ]);
    } else (i === null || !i.has(p)) && t.directiveToIndex.set(p.type, d);
    p.contentQueries !== null && (t.flags |= 4), (p.hostBindings !== null || p.hostAttrs !== null || p.hostVars !== 0) && (t.flags |= 64);
    const g = p.type.prototype;
    !u && (g.ngOnChanges || g.ngOnInit || g.ngDoCheck) && ((e.preOrderHooks ?? (e.preOrderHooks = [])).push(t.index), u = !0), !l && (g.ngOnChanges || g.ngDoCheck) && ((e.preOrderCheckHooks ?? (e.preOrderCheckHooks = [])).push(t.index), l = !0), d++;
  }
  HC(e, t, i);
}
function HC(e, n, t) {
  ngDevMode && Se(e);
  for (let r = n.directiveStart; r < n.directiveEnd; r++) {
    const o = e.data[r];
    if (t === null || !t.has(o))
      Sd(0, n, o, r), Sd(1, n, o, r), xd(n, r, !1);
    else {
      const i = t.get(o);
      kd(0, n, i, r), kd(1, n, i, r), xd(n, r, !0);
    }
  }
}
function Sd(e, n, t, r) {
  const o = e === 0 ? t.inputs : t.outputs;
  for (const i in o)
    if (o.hasOwnProperty(i)) {
      let s;
      e === 0 ? s = n.inputs ?? (n.inputs = {}) : s = n.outputs ?? (n.outputs = {}), s[i] ?? (s[i] = []), s[i].push(r), Im(n, i);
    }
}
function kd(e, n, t, r) {
  const o = e === 0 ? t.inputs : t.outputs;
  for (const i in o)
    if (o.hasOwnProperty(i)) {
      const s = o[i];
      let c;
      e === 0 ? c = n.hostDirectiveInputs ?? (n.hostDirectiveInputs = {}) : c = n.hostDirectiveOutputs ?? (n.hostDirectiveOutputs = {}), c[s] ?? (c[s] = []), c[s].push(r, i), Im(n, s);
    }
}
function Im(e, n) {
  n === "class" ? e.flags |= 8 : n === "style" && (e.flags |= 16);
}
function xd(e, n, t) {
  const { attrs: r, inputs: o, hostDirectiveInputs: i } = e;
  if (r === null || !t && o === null || t && i === null || // Do not use unbound attributes as inputs to structural directives, since structural
  // directive inputs can only be set using microsyntax (e.g. `<div *dir="exp">`).
  Gu(e)) {
    e.initialInputs ?? (e.initialInputs = []), e.initialInputs.push(null);
    return;
  }
  let s = null, c = 0;
  for (; c < r.length; ) {
    const a = r[c];
    if (a === 0) {
      c += 4;
      continue;
    } else if (a === 5) {
      c += 2;
      continue;
    } else if (typeof a == "number")
      break;
    if (!t && o.hasOwnProperty(a)) {
      const u = o[a];
      for (const l of u)
        if (l === n) {
          s ?? (s = []), s.push(a, r[c + 1]);
          break;
        }
    } else if (t && i.hasOwnProperty(a)) {
      const u = i[a];
      for (let l = 0; l < u.length; l += 2)
        if (u[l] === n) {
          s ?? (s = []), s.push(u[l + 1], r[c + 1]);
          break;
        }
    }
    c += 2;
  }
  e.initialInputs ?? (e.initialInputs = []), e.initialInputs.push(s);
}
function $C(e, n, t, r, o) {
  ngDevMode && _n(r, _, "Must be in Expando section"), e.data[r] = o;
  const i = o.factory || (o.factory = Ct(o.type, !0)), s = new Tr(i, Te(o), Rr, ngDevMode ? o.type.name : null);
  e.blueprint[r] = s, t[r] = s, BC(e, n, r, qo(e, t, o.hostVars, $), o);
}
function BC(e, n, t, r, o) {
  ngDevMode && Se(e);
  const i = o.hostBindings;
  if (i) {
    let s = e.hostBindingOpCodes;
    s === null && (s = e.hostBindingOpCodes = []);
    const c = ~n.index;
    UC(s) != c && s.push(c), s.push(t, r, i);
  }
}
function UC(e) {
  let n = e.length;
  for (; n > 0; ) {
    const t = e[--n];
    if (typeof t == "number" && t < 0)
      return t;
  }
  return 0;
}
function VC(e, n, t) {
  if (t) {
    if (n.exportAs)
      for (let r = 0; r < n.exportAs.length; r++)
        t[n.exportAs[r]] = e;
    Te(n) && (t[""] = e);
  }
}
function WC(e, n, t) {
  ngDevMode && Ve(t, e.directiveEnd - e.directiveStart, "Reached the max number of directives"), e.flags |= 1, e.directiveStart = n, e.directiveEnd = n + t, e.providerIndexes = n;
}
function zC(e) {
  if (e.length < 2)
    return;
  const n = /* @__PURE__ */ new Set();
  for (const t of e) {
    if (n.has(t))
      throw new b(309, `Directive ${t.type.name} matches multiple times on the same element. Directives can only match an element once.`);
    n.add(t);
  }
}
function fl(e, n, t, r, o, i, s, c) {
  const a = n[y];
  ngDevMode && Se(a);
  const u = a.consts, l = Ee(u, s), d = Gt(a, e, t, r, l);
  return i && ym(a, n, d, Ee(u, c), o), d.mergedAttrs = lr(d.mergedAttrs, d.attrs), d.attrs !== null && es(d, d.attrs, !1), d.mergedAttrs !== null && es(d, d.mergedAttrs, !0), a.queries !== null && a.queries.elementStart(a, d), d;
}
function hl(e, n) {
  ngDevMode && Se(e), wp(e, n), $h(n) && e.queries.elementEnd(n);
}
function Mm(e, n, t, r, o, i) {
  ngDevMode && Se(n);
  const s = n.consts, c = Ee(s, o), a = Gt(n, e, t, r, c);
  if (a.mergedAttrs = lr(a.mergedAttrs, a.attrs), i != null) {
    const u = Ee(s, i);
    a.localNames = [];
    for (let l = 0; l < u.length; l += 2)
      a.localNames.push(u[l], -1);
  }
  return a.attrs !== null && es(a, a.attrs, !1), a.mergedAttrs !== null && es(a, a.mergedAttrs, !0), n.queries !== null && n.queries.elementStart(n, a), a;
}
function Ad(e) {
  return qC(e) ? Array.isArray(e) || !(e instanceof Map) && // JS Map are iterables but return entries as [k, v]
  Symbol.iterator in e : !1;
}
function GC(e, n, t) {
  const r = e[Symbol.iterator](), o = n[Symbol.iterator]();
  for (; ; ) {
    const i = r.next(), s = o.next();
    if (i.done && s.done)
      return !0;
    if (i.done || s.done || !t(i.value, s.value))
      return !1;
  }
}
function qC(e) {
  return e !== null && (typeof e == "function" || typeof e == "object");
}
function Dm(e, n) {
  const t = Ad(e), r = Ad(n);
  return t && r ? GC(e, n, Dm) : !t && (e && (typeof e == "object" || typeof e == "function")) && !r && (n && (typeof n == "object" || typeof n == "function")) ? !0 : Object.is(e, n);
}
function fn(e, n, t) {
  return e[n] = t;
}
function Xo(e, n) {
  return ngDevMode && ue(e, n), ngDevMode && Ir(e[n], $, "Stored value should never be NO_CHANGE."), e[n];
}
function ne(e, n, t) {
  if (ngDevMode && gn(n, e.length, "Slot should have been initialized to NO_CHANGE"), t === $)
    return !1;
  const r = e[n];
  if (Object.is(r, t))
    return !1;
  if (ngDevMode && Wt()) {
    const o = r !== $ ? r : void 0;
    if (!Dm(o, t)) {
      const i = s_(e, n, o, t);
      i_(r === $, i.oldValue, i.newValue, i.propName, e);
    }
    return !1;
  }
  return e[n] = t, !0;
}
function Nt(e, n, t, r) {
  const o = ne(e, n, t);
  return ne(e, n + 1, r) || o;
}
function Ys(e, n, t, r, o) {
  const i = Nt(e, n, t, r);
  return ne(e, n + 2, o) || i;
}
function Je(e, n, t, r, o, i) {
  const s = Nt(e, n, t, r);
  return Nt(e, n + 2, o, i) || s;
}
function _i(e, n, t) {
  return function r(o) {
    const i = Dr(e) ? Ye(e.index, n) : n;
    Jo(
      i,
      5
      /* NotificationSource.Listener */
    );
    const s = n[V];
    let c = Od(n, s, t, o), a = r.__ngNextListenerFn__;
    for (; a; )
      c = Od(n, s, a, o) && c, a = a.__ngNextListenerFn__;
    return c;
  };
}
function Od(e, n, t, r) {
  const o = N(null);
  try {
    return Q(6, n, t), t(r) !== !1;
  } catch (i) {
    return sl(e, i), !1;
  } finally {
    Q(7, n, t), N(o);
  }
}
function Em(e, n, t, r, o, i, s, c) {
  ngDevMode && Ir(c, s, "Expected wrapped and original listeners to be different.");
  const a = Er(e);
  let u = !1, l = null;
  if (!r && a && (l = QC(n, t, i, e.index)), l !== null) {
    const d = l.__ngLastListenerFn__ || l;
    d.__ngNextListenerFn__ = s, l.__ngLastListenerFn__ = s, u = !0;
  } else {
    const d = xe(e, t), h = r ? r(d) : d, p = o.listen(h, i, c), g = r ? (m) => r(ve(m[e.index])) : e.index;
    bm(g, n, t, i, c, p, !1);
  }
  return u;
}
function QC(e, n, t, r) {
  const o = e.cleanup;
  if (o != null)
    for (let i = 0; i < o.length - 1; i += 2) {
      const s = o[i];
      if (s === t && o[i + 1] === r) {
        const c = n[Mt], a = o[i + 2];
        return c && c.length > a ? c[a] : null;
      }
      typeof s == "string" && (i += 2);
    }
  return null;
}
function bm(e, n, t, r, o, i, s) {
  const c = n.firstCreatePass ? ea(n) : null, a = Yh(t), u = a.length;
  a.push(o, i), c && c.push(r, e, u, (u + 1) * (s ? -1 : 1));
}
function Rd(e, n, t, r, o, i) {
  ngDevMode && ue(n, t);
  const s = n[t], c = n[y], u = c.data[t].outputs[r], l = s[u];
  if (ngDevMode && !ZC(l))
    throw new Error(`@Output ${u} not initialized in '${s.constructor.name}'.`);
  const d = l.subscribe(i);
  bm(e.index, c, n, o, i, d, !0);
}
function ZC(e) {
  return e != null && typeof e.subscribe == "function";
}
/*!
 * @license
 * Copyright Google LLC All Rights Reserved.
 *
 * Use of this source code is governed by an MIT-style license that can be
 * found in the LICENSE file at https://angular.dev/license
 */
const Ca = /* @__PURE__ */ Symbol("BINDING");
class _m extends Zs {
  /**
   * @param ngModule The NgModuleRef to which all resolved factories are bound.
   */
  constructor(t) {
    super();
    f(this, "ngModule");
    this.ngModule = t;
  }
  resolveComponentFactory(t) {
    ngDevMode && sD(t);
    const r = H(t);
    return new pl(r, this.ngModule);
  }
}
function YC(e) {
  return Object.keys(e).map((n) => {
    const [t, r, o] = e[n], i = {
      propName: t,
      templateName: n,
      isSignal: (r & Mo.SignalBased) !== 0
    };
    return o && (i.transform = o), i;
  });
}
function JC(e) {
  return Object.keys(e).map((n) => ({ propName: e[n], templateName: n }));
}
function XC(e) {
  var n;
  if ((typeof ngJitMode > "u" || ngJitMode) && ((n = e.debugInfo) != null && n.forbidOrphanRendering) && hr.isOrphanComponent(e.type))
    throw new b(981, `Orphan component found! Trying to render the component ${HM(e.type)} without first loading the NgModule that declares it. It is recommended to make this component standalone in order to avoid this error. If this is not possible now, import the component's NgModule in the appropriate NgModule, or the standalone component in which you are trying to render this component. If this is a lazy import, load the NgModule lazily as well and use its module injector.`);
}
function KC(e, n, t) {
  let r = n instanceof Ze ? n : n == null ? void 0 : n.injector;
  return r && e.getStandaloneInjector !== null && (r = e.getStandaloneInjector(r) || r), r ? new rr(t, r) : t;
}
function ew(e) {
  const n = e.get(vm, null);
  if (n === null)
    throw new b(407, ngDevMode && "Angular was not able to inject a renderer (RendererFactory2). Likely this is due to a broken DI hierarchy. Make sure that any injector used to create this component has a correct parent.");
  const t = e.get(ba, null), r = e.get(Ho, null);
  let o = !1;
  return (typeof ngDevMode > "u" || ngDevMode) && (o = e.get(qb, Mg)), {
    rendererFactory: n,
    sanitizer: t,
    changeDetectionScheduler: r,
    ngReflect: o
  };
}
function nw(e, n) {
  const t = (e.selectors[0][0] || "div").toLowerCase();
  return qu(n, t, t === "svg" ? zh : t === "math" ? Gh : null);
}
class pl extends mm {
  /**
   * @param componentDef The component definition.
   * @param ngModule The NgModuleRef to which the factory is bound.
   */
  constructor(t, r) {
    super();
    f(this, "componentDef");
    f(this, "ngModule");
    f(this, "selector");
    f(this, "componentType");
    f(this, "ngContentSelectors");
    f(this, "isBoundToModule");
    f(this, "cachedInputs", null);
    f(this, "cachedOutputs", null);
    this.componentDef = t, this.ngModule = r, this.componentType = t.type, this.selector = wg(t.selectors), this.ngContentSelectors = t.ngContentSelectors ?? [], this.isBoundToModule = !!r;
  }
  get inputs() {
    return this.cachedInputs ?? (this.cachedInputs = YC(this.componentDef.inputs)), this.cachedInputs;
  }
  get outputs() {
    return this.cachedOutputs ?? (this.cachedOutputs = JC(this.componentDef.outputs)), this.cachedOutputs;
  }
  create(t, r, o, i, s, c) {
    Q(
      22
      /* ProfilerEvent.DynamicComponentStart */
    );
    const a = N(null);
    try {
      const u = this.componentDef;
      ngDevMode && XC(u);
      const l = tw(o, u, c, s), d = KC(u, i || this.ngModule, t), h = ew(d), p = h.rendererFactory.createRenderer(null, u), g = o ? k_(p, o, u.encapsulation, d) : nw(u, p), m = (c == null ? void 0 : c.some(Pd)) || (s == null ? void 0 : s.some((v) => typeof v != "function" && v.bindings.some(Pd))), M = $s(null, l, null, 512 | Zu(u), null, null, h, p, d, null, ig(
        g,
        d,
        !0
        /* isRootView */
      ));
      M[_] = g, xu(M);
      let D = null;
      try {
        const v = fl(_, M, 2, "#host", () => l.directiveRegistry, !0, 0);
        g && (Ag(p, g, v), He(g, M)), Us(l, M, v), $u(l, v, M), hl(l, v), r !== void 0 && iw(v, this.ngContentSelectors, r), D = Ye(v.index, M), M[V] = D[V], Yo(l, M, null);
      } catch (v) {
        throw D !== null && ua(D), ua(M), v;
      } finally {
        Q(
          23
          /* ProfilerEvent.DynamicComponentEnd */
        ), Au();
      }
      return new ow(this.componentType, M, !!m);
    } finally {
      N(a);
    }
  }
}
function tw(e, n, t, r) {
  const o = e ? ["ng-version", "20.1.6"] : (
    // Extract attributes and classes from the first selector only to match VE behavior.
    v_(n.selectors[0])
  );
  let i = null, s = null, c = 0;
  if (t)
    for (const l of t)
      c += l[Ca].requiredVars, l.create && (l.targetIdx = 0, (i ?? (i = [])).push(l)), l.update && (l.targetIdx = 0, (s ?? (s = [])).push(l));
  if (r)
    for (let l = 0; l < r.length; l++) {
      const d = r[l];
      if (typeof d != "function")
        for (const h of d.bindings) {
          c += h[Ca].requiredVars;
          const p = l + 1;
          h.create && (h.targetIdx = p, (i ?? (i = [])).push(h)), h.update && (h.targetIdx = p, (s ?? (s = [])).push(h));
        }
    }
  const a = [n];
  if (r)
    for (const l of r) {
      const d = typeof l == "function" ? l : l.type, h = ngDevMode ? XM(d) : fe(d);
      if (ngDevMode && !h.standalone)
        throw new b(907, `The ${P(d)} directive must be standalone in order to be applied to a dynamically-created component.`);
      a.push(h);
    }
  return Qu(0, null, rw(i, s), 1, c, a, null, null, null, [o], null);
}
function rw(e, n) {
  return !e && !n ? null : (t) => {
    if (t & 1 && e)
      for (const r of e)
        r.create();
    if (t & 2 && n)
      for (const r of n)
        r.update();
  };
}
function Pd(e) {
  const n = e[Ca].kind;
  return n === "input" || n === "twoWay";
}
class ow extends AC {
  constructor(t, r, o) {
    super();
    f(this, "_rootLView");
    f(this, "_hasInputBindings");
    f(this, "instance");
    f(this, "hostView");
    f(this, "changeDetectorRef");
    f(this, "componentType");
    f(this, "location");
    f(this, "previousInputValues", null);
    f(this, "_tNode");
    this._rootLView = r, this._hasInputBindings = o, this._tNode = Cr(r[y], _), this.location = Sr(this._tNode, r), this.instance = Ye(this._tNode.index, r)[V], this.hostView = this.changeDetectorRef = new ul(
      r,
      void 0
      /* _cdRefInjectingView */
    ), this.componentType = t;
  }
  setInput(t, r) {
    if (this._hasInputBindings && ngDevMode)
      throw new b(317, "Cannot call `setInput` on a component that is using the `inputBinding` or `twoWayBinding` functions.");
    const o = this._tNode;
    if (this.previousInputValues ?? (this.previousInputValues = /* @__PURE__ */ new Map()), this.previousInputValues.has(t) && Object.is(this.previousInputValues.get(t), r))
      return;
    const i = this._rootLView, s = cl(o, i[y], i, t, r);
    this.previousInputValues.set(t, r);
    const c = Ye(o.index, i);
    if (Jo(
      c,
      1
      /* NotificationSource.SetInput */
    ), ngDevMode && !s) {
      const a = P(this.componentType);
      let u = `Can't set value of the '${t}' input on the '${a}' component. `;
      u += `Make sure that the '${t}' property is declared as an input using the @Input() decorator or the input() function.`, Eg(u);
    }
  }
  get injector() {
    return new Y(this._tNode, this._rootLView);
  }
  destroy() {
    this.hostView.destroy();
  }
  onDestroy(t) {
    this.hostView.onDestroy(t);
  }
}
function iw(e, n, t) {
  const r = e.projection = [];
  for (let o = 0; o < n.length; o++) {
    const i = t[o];
    r.push(i != null && i.length ? Array.from(i) : null);
  }
}
class Js {
}
/**
 * @internal
 * @nocollapse
 */
f(Js, "__NG_ELEMENT_ID__", sw);
function sw() {
  const e = L();
  return wm(e, I());
}
const cw = Js, Cm = class extends cw {
  constructor(t, r, o) {
    super();
    f(this, "_lContainer");
    f(this, "_hostTNode");
    f(this, "_hostLView");
    this._lContainer = t, this._hostTNode = r, this._hostLView = o;
  }
  get element() {
    return Sr(this._hostTNode, this._hostLView);
  }
  get injector() {
    return new Y(this._hostTNode, this._hostLView);
  }
  /** @deprecated No replacement */
  get parentInjector() {
    const t = Ns(this._hostTNode, this._hostLView);
    if (Pu(t)) {
      const r = mo(t, this._hostLView), o = go(t);
      ngDevMode && Wh(r, o);
      const i = r[y].data[
        o + 8
        /* NodeInjectorOffset.TNODE */
      ];
      return new Y(i, r);
    } else
      return new Y(null, this._hostLView);
  }
  clear() {
    for (; this.length > 0; )
      this.remove(this.length - 1);
  }
  get(t) {
    const r = Nd(this._lContainer);
    return r !== null && r[t] || null;
  }
  get length() {
    return this._lContainer.length - K;
  }
  createEmbeddedView(t, r, o) {
    let i, s;
    typeof o == "number" ? i = o : o != null && (i = o.index, s = o.injector);
    const c = Ki(this._lContainer, t.ssrId), a = t.createEmbeddedViewImpl(r || {}, s, c);
    return this.insertImpl(a, i, Pt(this._hostTNode, c)), a;
  }
  createComponent(t, r, o, i, s, c, a) {
    const u = t && !Br(t);
    let l;
    if (u)
      ngDevMode && T(typeof r != "object", !0, "It looks like Component factory was provided as the first argument and an options object as the second argument. This combination of arguments is incompatible. You can either change the first argument to provide Component type or change the second argument to be a number (representing an index at which to insert the new component's host view into this container)"), l = r;
    else {
      ngDevMode && (E(H(t), "Provided Component class doesn't contain Component definition. Please check whether provided class has @Component decorator."), T(typeof r != "number", !0, "It looks like Component type was provided as the first argument and a number (representing an index at which to insert the new component's host view into this container as the second argument. This combination of arguments is incompatible. Please use an object as the second argument instead."));
      const D = r || {};
      ngDevMode && D.environmentInjector && D.ngModuleRef && C("Cannot pass both environmentInjector and ngModuleRef options to createComponent()."), l = D.index, o = D.injector, i = D.projectableNodes, s = D.environmentInjector || D.ngModuleRef, c = D.directives, a = D.bindings;
    }
    const d = u ? t : new pl(H(t)), h = o || this.parentInjector;
    if (!s && d.ngModule == null) {
      const v = (u ? h : this.parentInjector).get(Ze, null);
      v && (s = v);
    }
    const p = H(d.componentType ?? {}), g = Ki(this._lContainer, (p == null ? void 0 : p.id) ?? null), M = d.create(h, i, null, s, c, a);
    return this.insertImpl(M.hostView, l, Pt(this._hostTNode, g)), M;
  }
  insert(t, r) {
    return this.insertImpl(t, r, !0);
  }
  insertImpl(t, r, o) {
    const i = t._lView;
    if (ngDevMode && t.destroyed)
      throw new Error("Cannot insert a destroyed View in a ViewContainer!");
    if (fD(i)) {
      const a = this.indexOf(t);
      if (a !== -1)
        this.detach(a);
      else {
        const u = i[ae];
        ngDevMode && T(ke(u), !0, "An attached view should have its PARENT point to a container.");
        const l = new Cm(u, u[ye], u[ae]);
        l.detach(l.indexOf(t));
      }
    }
    const s = this._adjustIndex(r), c = this._lContainer;
    return Or(c, i, s, o), t.attachToViewContainerRef(), Th(bc(c), s, t), t;
  }
  move(t, r) {
    if (ngDevMode && t.destroyed)
      throw new Error("Cannot move a destroyed View in a ViewContainer!");
    return this.insert(t, r);
  }
  indexOf(t) {
    const r = Nd(this._lContainer);
    return r !== null ? r.indexOf(t) : -1;
  }
  remove(t) {
    const r = this._adjustIndex(t, -1), o = Eo(this._lContainer, r);
    o && (Hi(bc(this._lContainer), r), Qo(o[y], o));
  }
  detach(t) {
    const r = this._adjustIndex(t, -1), o = Eo(this._lContainer, r);
    return o && Hi(bc(this._lContainer), r) != null ? new ul(o) : null;
  }
  _adjustIndex(t, r = 0) {
    return t == null ? this.length + r : (ngDevMode && (Bt(t, -1, `ViewRef index must be positive, got ${t}`), gn(t, this.length + 1 + r, "index")), t);
  }
};
function Nd(e) {
  return e[Vi];
}
function bc(e) {
  return e[Vi] || (e[Vi] = []);
}
function wm(e, n) {
  ngDevMode && le(
    e,
    15
    /* TNodeType.AnyRNode */
  );
  let t;
  const r = n[e.index];
  return ke(r) ? t = r : (t = nm(r, n, null, e), n[e.index] = t, Yu(n, t)), uw(t, n, e, r), new Cm(t, e, n);
}
function aw(e, n) {
  const t = e[F], r = t.createComment(ngDevMode ? "container" : ""), o = xe(n, e), i = t.parentNode(o);
  return Rt(t, i, r, t.nextSibling(o), !1), r;
}
let uw = lw;
function lw(e, n, t, r) {
  if (e[Bn])
    return;
  let o;
  t.type & 8 ? o = ve(r) : o = aw(n, t), e[Bn] = o;
}
class gl {
  constructor(n) {
    f(this, "queryList");
    f(this, "matches", null);
    this.queryList = n;
  }
  clone() {
    return new gl(this.queryList);
  }
  setDirty() {
    this.queryList.setDirty();
  }
}
class ml {
  constructor(n = []) {
    f(this, "queries");
    this.queries = n;
  }
  createEmbeddedView(n) {
    const t = n.queries;
    if (t !== null) {
      const r = n.contentQueries !== null ? n.contentQueries[0] : t.length, o = [];
      for (let i = 0; i < r; i++) {
        const s = t.getByIndex(i), c = this.queries[s.indexInDeclarationView];
        o.push(c.clone());
      }
      return new ml(o);
    }
    return null;
  }
  insertView(n) {
    this.dirtyQueriesWithMatches(n);
  }
  detachView(n) {
    this.dirtyQueriesWithMatches(n);
  }
  finishViewCreation(n) {
    this.dirtyQueriesWithMatches(n);
  }
  dirtyQueriesWithMatches(n) {
    for (let t = 0; t < this.queries.length; t++)
      Il(n, t).matches !== null && this.queries[t].setDirty();
  }
}
class Tm {
  constructor(n, t, r = null) {
    f(this, "flags");
    f(this, "read");
    f(this, "predicate");
    this.flags = t, this.read = r, typeof n == "string" ? this.predicate = gw(n) : this.predicate = n;
  }
}
class vl {
  constructor(n = []) {
    f(this, "queries");
    this.queries = n;
  }
  elementStart(n, t) {
    ngDevMode && Se(n, "Queries should collect results on the first template pass only");
    for (let r = 0; r < this.queries.length; r++)
      this.queries[r].elementStart(n, t);
  }
  elementEnd(n) {
    for (let t = 0; t < this.queries.length; t++)
      this.queries[t].elementEnd(n);
  }
  embeddedTView(n) {
    let t = null;
    for (let r = 0; r < this.length; r++) {
      const o = t !== null ? t.length : 0, i = this.getByIndex(r).embeddedTView(n, o);
      i && (i.indexInDeclarationView = r, t !== null ? t.push(i) : t = [i]);
    }
    return t !== null ? new vl(t) : null;
  }
  template(n, t) {
    ngDevMode && Se(n, "Queries should collect results on the first template pass only");
    for (let r = 0; r < this.queries.length; r++)
      this.queries[r].template(n, t);
  }
  getByIndex(n) {
    return ngDevMode && ue(this.queries, n), this.queries[n];
  }
  get length() {
    return this.queries.length;
  }
  track(n) {
    this.queries.push(n);
  }
}
class yl {
  constructor(n, t = -1) {
    f(this, "metadata");
    f(this, "matches", null);
    f(this, "indexInDeclarationView", -1);
    f(this, "crossesNgTemplate", !1);
    /**
     * A node index on which a query was declared (-1 for view queries and ones inherited from the
     * declaration template). We use this index (alongside with _appliesToNextNode flag) to know
     * when to apply content queries to elements in a template.
     */
    f(this, "_declarationNodeIndex");
    /**
     * A flag indicating if a given query still applies to nodes it is crossing. We use this flag
     * (alongside with _declarationNodeIndex) to know when to stop applying content queries to
     * elements in a template.
     */
    f(this, "_appliesToNextNode", !0);
    this.metadata = n, this._declarationNodeIndex = t;
  }
  elementStart(n, t) {
    this.isApplyingToNode(t) && this.matchTNode(n, t);
  }
  elementEnd(n) {
    this._declarationNodeIndex === n.index && (this._appliesToNextNode = !1);
  }
  template(n, t) {
    this.elementStart(n, t);
  }
  embeddedTView(n, t) {
    return this.isApplyingToNode(n) ? (this.crossesNgTemplate = !0, this.addMatch(-n.index, t), new yl(this.metadata)) : null;
  }
  isApplyingToNode(n) {
    if (this._appliesToNextNode && (this.metadata.flags & 1) !== 1) {
      const t = this._declarationNodeIndex;
      let r = n.parent;
      for (; r !== null && r.type & 8 && r.index !== t; )
        r = r.parent;
      return t === (r !== null ? r.index : -1);
    }
    return this._appliesToNextNode;
  }
  matchTNode(n, t) {
    const r = this.metadata.predicate;
    if (Array.isArray(r))
      for (let o = 0; o < r.length; o++) {
        const i = r[o];
        this.matchTNodeWithReadOption(n, t, dw(t, i)), this.matchTNodeWithReadOption(n, t, Ei(t, n, i, !1, !1));
      }
    else
      r === bo ? t.type & 4 && this.matchTNodeWithReadOption(n, t, -1) : this.matchTNodeWithReadOption(n, t, Ei(t, n, r, !1, !1));
  }
  matchTNodeWithReadOption(n, t, r) {
    if (r !== null) {
      const o = this.metadata.read;
      if (o !== null)
        if (o === Bo || o === Js || o === bo && t.type & 4)
          this.addMatch(t.index, -2);
        else {
          const i = Ei(t, n, o, !1, !1);
          i !== null && this.addMatch(t.index, i);
        }
      else
        this.addMatch(t.index, r);
    }
  }
  addMatch(n, t) {
    this.matches === null ? this.matches = [n, t] : this.matches.push(n, t);
  }
}
function dw(e, n) {
  const t = e.localNames;
  if (t !== null) {
    for (let r = 0; r < t.length; r += 2)
      if (t[r] === n)
        return t[r + 1];
  }
  return null;
}
function fw(e, n) {
  return e.type & 11 ? Sr(e, n) : e.type & 4 ? Gs(e, n) : null;
}
function hw(e, n, t, r) {
  return t === -1 ? fw(n, e) : t === -2 ? pw(e, n, r) : vo(e, e[y], t, n);
}
function pw(e, n, t) {
  if (t === Bo)
    return Sr(n, e);
  if (t === bo)
    return Gs(n, e);
  if (t === Js)
    return ngDevMode && le(
      n,
      15
      /* TNodeType.AnyContainer */
    ), wm(n, e);
  ngDevMode && C(`Special token to read should be one of ElementRef, TemplateRef or ViewContainerRef but got ${J(t)}.`);
}
function Sm(e, n, t, r) {
  const o = n[Be].queries[r];
  if (o.matches === null) {
    const i = e.data, s = t.matches, c = [];
    for (let a = 0; s !== null && a < s.length; a += 2) {
      const u = s[a];
      if (u < 0)
        c.push(null);
      else {
        ngDevMode && ue(i, u);
        const l = i[u];
        c.push(hw(n, l, s[a + 1], t.metadata.read));
      }
    }
    o.matches = c;
  }
  return o.matches;
}
function wa(e, n, t, r) {
  const o = e.queries.getByIndex(t), i = o.matches;
  if (i !== null) {
    const s = Sm(e, n, o, t);
    for (let c = 0; c < i.length; c += 2) {
      const a = i[c];
      if (a > 0)
        r.push(s[c / 2]);
      else {
        const u = i[c + 1], l = n[-a];
        ngDevMode && Ke(l);
        for (let d = K; d < l.length; d++) {
          const h = l[d];
          h[St] === h[ae] && wa(h[y], h, u, r);
        }
        if (l[xt] !== null) {
          const d = l[xt];
          for (let h = 0; h < d.length; h++) {
            const p = d[h];
            wa(p[y], p, u, r);
          }
        }
      }
    }
  }
  return r;
}
function km(e, n) {
  return ngDevMode && E(e[Be], "LQueries should be defined when trying to load a query"), ngDevMode && ue(e[Be].queries, n), e[Be].queries[n].queryList;
}
function xm(e, n, t) {
  const r = new xE(
    (t & 4) === 4
    /* QueryFlags.emitDistinctChangesOnly */
  );
  return hD(e, n, r, r.destroy), (n[Be] ?? (n[Be] = new ml())).queries.push(new gl(r)) - 1;
}
function Am(e, n, t) {
  ngDevMode && q(n, "Expecting flags");
  const r = R();
  return r.firstCreatePass && (Rm(r, new Tm(e, n, t), -1), (n & 2) === 2 && (r.staticViewQueries = !0)), xm(r, I(), n);
}
function Om(e, n, t, r) {
  ngDevMode && q(t, "Expecting flags");
  const o = R();
  if (o.firstCreatePass) {
    const i = L();
    Rm(o, new Tm(n, t, r), i.index), mw(o, e), (t & 2) === 2 && (o.staticContentQueries = !0);
  }
  return xm(o, I(), t);
}
function gw(e) {
  return e.split(",").map((n) => n.trim());
}
function Rm(e, n, t) {
  e.queries === null && (e.queries = new vl()), e.queries.track(new yl(n, t));
}
function mw(e, n) {
  const t = e.contentQueries || (e.contentQueries = []), r = t.length ? t[t.length - 1] : -1;
  n !== r && t.push(e.queries.length - 1, n);
}
function Il(e, n) {
  return ngDevMode && E(e.queries, "TQueries must be defined to retrieve a TQuery"), e.queries.getByIndex(n);
}
function vw(e, n) {
  const t = e[y], r = Il(t, n);
  return r.crossesNgTemplate ? wa(t, e, n, []) : Sm(t, e, r, n);
}
function Pm(e, n) {
  const t = e[un];
  t._lView = I(), t._queryIndex = n, t._queryList = km(t._lView, n), t._queryList.onDirty(() => t._dirtyCounter.update((r) => r + 1));
}
function yw(e) {
  const n = [], t = /* @__PURE__ */ new Map();
  function r(o) {
    let i = t.get(o);
    if (!i) {
      const s = e(o);
      t.set(o, i = s.then((c) => Ew(o, c)));
    }
    return i;
  }
  return _o.forEach((o, i) => {
    var u, l;
    const s = [];
    o.templateUrl && s.push(r(o.templateUrl).then((d) => {
      o.template = d;
    }));
    const c = typeof o.styles == "string" ? [o.styles] : o.styles || [];
    if (o.styles = c, o.styleUrl && ((u = o.styleUrls) != null && u.length))
      throw new Error("@Component cannot define both `styleUrl` and `styleUrls`. Use `styleUrl` if the component has one stylesheet, or `styleUrls` if it has multiple");
    if ((l = o.styleUrls) != null && l.length) {
      const d = o.styles.length, h = o.styleUrls;
      o.styleUrls.forEach((p, g) => {
        c.push(""), s.push(r(p).then((m) => {
          c[d + g] = m, h.splice(h.indexOf(p), 1), h.length == 0 && (o.styleUrls = void 0);
        }));
      });
    } else o.styleUrl && s.push(r(o.styleUrl).then((d) => {
      c.push(d), o.styleUrl = void 0;
    }));
    const a = Promise.all(s).then(() => bw(i));
    n.push(a);
  }), Mw(), Promise.all(n).then(() => {
  });
}
let _o = /* @__PURE__ */ new Map();
const Nm = /* @__PURE__ */ new Set();
function Iw(e, n) {
  Lm(n) && (_o.set(e, n), Nm.add(e));
}
function Lm(e) {
  return !!(e.templateUrl && !e.hasOwnProperty("template") || e.styleUrls && e.styleUrls.length || e.styleUrl);
}
function Mw() {
  const e = _o;
  return _o = /* @__PURE__ */ new Map(), e;
}
function Dw() {
  return _o.size === 0;
}
function Ew(e, n) {
  return typeof n == "string" ? n : n.status !== void 0 && n.status !== 200 ? Promise.reject(new b(918, ngDevMode && `Could not load resource: ${e}. Response status: ${n.status}`)) : n.text();
}
function bw(e) {
  Nm.delete(e);
}
const Ld = /* @__PURE__ */ new Map();
let _w = !0;
function Cw(e, n, t) {
  if (n && n !== t && _w)
    throw new Error(`Duplicate module registered for ${e} - ${J(n)} vs ${J(n.name)}`);
}
function Fm(e, n) {
  const t = Ld.get(n) || null;
  Cw(n, t, e), Ld.set(n, e);
}
function ww(e, n, t) {
  const r = I(), o = dn(), i = xe(o, r);
  if (o.type === 2 && n.toLowerCase() === "iframe") {
    const s = i;
    s.src = "", s.srcdoc = kr(""), Go(r[F], s);
    const c = ngDevMode && `Angular has detected that the \`${t}\` was applied as a binding to an <iframe>${Hs(r)}. For security reasons, the \`${t}\` can be set on an <iframe> as a static attribute only. 
To fix this, switch the \`${t}\` binding to a static attribute in a template or in host bindings section.`;
    throw new b(-910, c);
  }
  return e;
}
const Fd = /* @__PURE__ */ new Set();
function hn(e) {
  var n;
  Fd.has(e) || (Fd.add(e), (n = performance == null ? void 0 : performance.mark) == null || n.call(performance, "mark_feature_usage", { detail: { feature: e } }));
}
let pr = class {
}, Tw = class {
};
class jm extends pr {
  constructor(t, r, o, i = !0) {
    super();
    f(this, "ngModuleType");
    f(this, "_parent");
    // tslint:disable-next-line:require-internal-with-underscore
    f(this, "_bootstrapComponents", []);
    f(this, "_r3Injector");
    f(this, "instance");
    f(this, "destroyCbs", []);
    // When bootstrapping a module we have a dependency graph that looks like this:
    // ApplicationRef -> ComponentFactoryResolver -> NgModuleRef. The problem is that if the
    // module being resolved tries to inject the ComponentFactoryResolver, it'll create a
    // circular dependency which will result in a runtime error, because the injector doesn't
    // exist yet. We work around the issue by creating the ComponentFactoryResolver ourselves
    // and providing it, rather than letting the injector resolve it.
    f(this, "componentFactoryResolver", new _m(this));
    this.ngModuleType = t, this._parent = r;
    const s = ln(t);
    ngDevMode && E(s, `NgModule '${J(t)}' is not a subtype of 'NgModuleType'.`), this._bootstrapComponents = an(s.bootstrap), this._r3Injector = pp(t, r, [
      { provide: pr, useValue: this },
      {
        provide: Zs,
        useValue: this.componentFactoryResolver
      },
      ...o
    ], J(t), /* @__PURE__ */ new Set(["environment"])), i && this.resolveInjectorInitializers();
  }
  resolveInjectorInitializers() {
    this._r3Injector.resolveInjectorInitializers(), this.instance = this._r3Injector.get(this.ngModuleType);
  }
  get injector() {
    return this._r3Injector;
  }
  destroy() {
    ngDevMode && E(this.destroyCbs, "NgModule already destroyed");
    const t = this._r3Injector;
    !t.destroyed && t.destroy(), this.destroyCbs.forEach((r) => r()), this.destroyCbs = null;
  }
  onDestroy(t) {
    ngDevMode && E(this.destroyCbs, "NgModule already destroyed"), this.destroyCbs.push(t);
  }
}
class Hm extends Tw {
  constructor(t) {
    super();
    f(this, "moduleType");
    this.moduleType = t;
  }
  create(t) {
    return new jm(this.moduleType, t, []);
  }
}
function Sw(e, n, t) {
  return new jm(e, n, t, !1);
}
class kw extends pr {
  constructor(t) {
    super();
    f(this, "injector");
    f(this, "componentFactoryResolver", new _m(this));
    f(this, "instance", null);
    const r = new Ut([
      ...t.providers,
      { provide: pr, useValue: this },
      { provide: Zs, useValue: this.componentFactoryResolver }
    ], t.parent || vu(), t.debugName, /* @__PURE__ */ new Set(["environment"]));
    this.injector = r, t.runEnvironmentInitializers && r.resolveInjectorInitializers();
  }
  destroy() {
    this.injector.destroy();
  }
  onDestroy(t) {
    this.injector.onDestroy(t);
  }
}
function $m(e, n, t = null) {
  return new kw({
    providers: e,
    parent: n,
    debugName: t,
    runEnvironmentInitializers: !0
  }).injector;
}
const ro = class ro {
  constructor(n) {
    f(this, "_injector");
    f(this, "cachedInjectors", /* @__PURE__ */ new Map());
    this._injector = n;
  }
  getOrCreateStandaloneInjector(n) {
    if (!n.standalone)
      return null;
    if (!this.cachedInjectors.has(n)) {
      const t = gu(!1, n.type), r = t.length > 0 ? $m([t], this._injector, `Standalone[${n.type.name}]`) : null;
      this.cachedInjectors.set(n, r);
    }
    return this.cachedInjectors.get(n);
  }
  ngOnDestroy() {
    try {
      for (const n of this.cachedInjectors.values())
        n !== null && n.destroy();
    } finally {
      this.cachedInjectors.clear();
    }
  }
};
/** @nocollapse */
f(
  ro,
  "ɵprov",
  /** @pureOrBreakMyCode */
  /* @__PURE__ */ X({
    token: ro,
    providedIn: "environment",
    factory: () => new ro(we(Ze))
  })
);
let Ta = ro;
function xw(e) {
  return Tn(() => {
    (typeof ngDevMode > "u" || ngDevMode) && ou();
    const n = Vm(e), t = {
      ...n,
      decls: e.decls,
      vars: e.vars,
      template: e.template,
      consts: e.consts || null,
      ngContentSelectors: e.ngContentSelectors,
      onPush: e.changeDetection === dr.OnPush,
      directiveDefs: null,
      // assigned in noSideEffects
      pipeDefs: null,
      // assigned in noSideEffects
      dependencies: n.standalone && e.dependencies || null,
      getStandaloneInjector: n.standalone ? (o) => o.get(Ta).getOrCreateStandaloneInjector(t) : null,
      getExternalStyles: null,
      signals: e.signals ?? !1,
      data: e.data || {},
      encapsulation: e.encapsulation || zn.Emulated,
      styles: e.styles || B,
      _: null,
      schemas: e.schemas || null,
      tView: null,
      id: ""
    };
    n.standalone && hn("NgStandalone"), Wm(t);
    const r = e.dependencies;
    return t.directiveDefs = ns(r, Bm), t.pipeDefs = ns(r, je), t.id = Nw(t), t;
  });
}
function Bm(e) {
  return H(e) || fe(e);
}
function Um(e) {
  return Tn(() => ({
    type: e.type,
    bootstrap: e.bootstrap || B,
    declarations: e.declarations || B,
    imports: e.imports || B,
    exports: e.exports || B,
    transitiveCompileScopes: null,
    schemas: e.schemas || null,
    id: e.id || null
  }));
}
function Aw(e, n) {
  if (e == null)
    return Qe;
  const t = {};
  for (const r in e)
    if (e.hasOwnProperty(r)) {
      const o = e[r];
      let i, s, c, a;
      Array.isArray(o) ? (c = o[0], i = o[1], s = o[2] ?? i, a = o[3] || null) : (i = o, s = o, c = Mo.None, a = null), t[i] = [r, c, a], n[i] = s;
    }
  return t;
}
function Ow(e) {
  if (e == null)
    return Qe;
  const n = {};
  for (const t in e)
    e.hasOwnProperty(t) && (n[e[t]] = t);
  return n;
}
function Rw(e) {
  return Tn(() => {
    const n = Vm(e);
    return Wm(n), n;
  });
}
function Pw(e) {
  return {
    type: e.type,
    name: e.name,
    factory: null,
    pure: e.pure !== !1,
    standalone: e.standalone ?? !0,
    onDestroy: e.type.prototype.ngOnDestroy || null
  };
}
function Vm(e) {
  const n = {};
  return {
    type: e.type,
    providersResolver: null,
    factory: null,
    hostBindings: e.hostBindings || null,
    hostVars: e.hostVars || 0,
    hostAttrs: e.hostAttrs || null,
    contentQueries: e.contentQueries || null,
    declaredInputs: n,
    inputConfig: e.inputs || Qe,
    exportAs: e.exportAs || null,
    standalone: e.standalone ?? !0,
    signals: e.signals === !0,
    selectors: e.selectors || B,
    viewQuery: e.viewQuery || null,
    features: e.features || null,
    setInput: null,
    resolveHostDirectives: null,
    hostDirectives: null,
    inputs: Aw(e.inputs, n),
    outputs: Ow(e.outputs),
    debugInfo: null
  };
}
function Wm(e) {
  var n;
  (n = e.features) == null || n.forEach((t) => t(e));
}
function ns(e, n) {
  return e ? () => {
    const t = typeof e == "function" ? e() : e, r = [];
    for (const o of t) {
      const i = n(o);
      i !== null && r.push(i);
    }
    return r;
  } : null;
}
const _c = /* @__PURE__ */ new Map();
function Nw(e) {
  let n = 0;
  const t = typeof e.consts == "function" ? "" : e.consts, r = [
    e.selectors,
    e.ngContentSelectors,
    e.hostVars,
    e.hostAttrs,
    t,
    e.vars,
    e.decls,
    e.encapsulation,
    e.standalone,
    e.signals,
    e.exportAs,
    JSON.stringify(e.inputs),
    JSON.stringify(e.outputs),
    // We cannot use 'componentDef.type.name' as the name of the symbol will change and will not
    // match in the server and browser bundles.
    Object.getOwnPropertyNames(e.type.prototype),
    !!e.contentQueries,
    !!e.viewQuery
  ];
  if (typeof ngDevMode > "u" || ngDevMode)
    for (const i of r)
      Ve(typeof i, "function", "Internal error: attempting to use a function in component id computation logic.");
  for (const i of r.join("|"))
    n = Math.imul(31, n) + i.charCodeAt(0) << 0;
  n += 2147483648;
  const o = "c" + n;
  if ((typeof ngDevMode > "u" || ngDevMode) && // Skip the check on the server since we can't guarantee the same component instance between
  // requests. Note that we can't use DI to check if we're on the server, because the component
  // hasn't been instantiated yet.
  (typeof ngServerMode > "u" || !ngServerMode))
    if (_c.has(o)) {
      const i = _c.get(o);
      i !== e.type && console.warn(Xe(-912, `Component ID generation collision detected. Components '${i.name}' and '${e.type.name}' with selector '${wg(e.selectors)}' generated the same component ID. To fix this, you can change the selector of one of those components or add an extra host attribute to force a different ID.`));
    } else
      _c.set(o, e.type);
  return o;
}
function zm(e) {
  return Object.getPrototypeOf(e.prototype).constructor;
}
function Gm(e) {
  let n = zm(e.type), t = !0;
  const r = [e];
  for (; n; ) {
    let o;
    if (Te(e))
      o = n.ɵcmp || n.ɵdir;
    else {
      if (n.ɵcmp)
        throw new b(903, ngDevMode && `Directives cannot inherit Components. Directive ${P(e.type)} is attempting to extend component ${P(n)}`);
      o = n.ɵdir;
    }
    if (o) {
      if (t) {
        r.push(o);
        const s = e;
        s.inputs = Cc(e.inputs), s.declaredInputs = Cc(e.declaredInputs), s.outputs = Cc(e.outputs);
        const c = o.hostBindings;
        c && $w(e, c);
        const a = o.viewQuery, u = o.contentQueries;
        if (a && jw(e, a), u && Hw(e, u), Lw(e, o), AM(e.outputs, o.outputs), Te(o) && o.data.animation) {
          const l = e.data;
          l.animation = (l.animation || []).concat(o.data.animation);
        }
      }
      const i = o.features;
      if (i)
        for (let s = 0; s < i.length; s++) {
          const c = i[s];
          c && c.ngInherit && c(e), c === Gm && (t = !1);
        }
    }
    n = Object.getPrototypeOf(n);
  }
  Fw(r);
}
function Lw(e, n) {
  for (const t in n.inputs) {
    if (!n.inputs.hasOwnProperty(t) || e.inputs.hasOwnProperty(t))
      continue;
    const r = n.inputs[t];
    r !== void 0 && (e.inputs[t] = r, e.declaredInputs[t] = n.declaredInputs[t]);
  }
}
function Fw(e) {
  let n = 0, t = null;
  for (let r = e.length - 1; r >= 0; r--) {
    const o = e[r];
    o.hostVars = n += o.hostVars, o.hostAttrs = lr(o.hostAttrs, t = lr(t, o.hostAttrs));
  }
}
function Cc(e) {
  return e === Qe ? {} : e === B ? [] : e;
}
function jw(e, n) {
  const t = e.viewQuery;
  t ? e.viewQuery = (r, o) => {
    n(r, o), t(r, o);
  } : e.viewQuery = n;
}
function Hw(e, n) {
  const t = e.contentQueries;
  t ? e.contentQueries = (r, o, i) => {
    n(r, o, i), t(r, o, i);
  } : e.contentQueries = n;
}
function $w(e, n) {
  const t = e.hostBindings;
  t ? e.hostBindings = (r, o) => {
    n(r, o), t(r, o);
  } : e.hostBindings = n;
}
const Bw = [
  // The child class should use the providers of its parent.
  "providersResolver"
  // Not listed here are any fields which are handled by the `ɵɵInheritDefinitionFeature`, such
  // as inputs, outputs, and host binding functions.
], Uw = [
  // The child class should use the template function of its parent, including all template
  // semantics.
  "template",
  "decls",
  "consts",
  "vars",
  "onPush",
  "ngContentSelectors",
  // The child class should use the CSS styles of its parent, including all styling semantics.
  "styles",
  "encapsulation",
  // The child class should be checked by the runtime in the same way as its parent.
  "schemas"
];
function Vw(e) {
  let n = zm(e.type), t;
  Te(e) ? t = n.ɵcmp : t = n.ɵdir;
  const r = e;
  for (const o of Bw)
    r[o] = t[o];
  if (Te(t))
    for (const o of Uw)
      r[o] = t[o];
}
function Ww(e) {
  const n = (t) => {
    const r = Array.isArray(e);
    t.hostDirectives === null ? (t.resolveHostDirectives = zw, t.hostDirectives = r ? e.map(Sa) : [e]) : r ? t.hostDirectives.unshift(...e.map(Sa)) : t.hostDirectives.unshift(e);
  };
  return n.ngInherit = !0, n;
}
function zw(e) {
  const n = [];
  let t = !1, r = null, o = null;
  for (let i = 0; i < e.length; i++) {
    const s = e[i];
    if (s.hostDirectives !== null) {
      const c = n.length;
      r ?? (r = /* @__PURE__ */ new Map()), o ?? (o = /* @__PURE__ */ new Map()), qm(s, n, r), o.set(s, [c, n.length - 1]);
    }
    i === 0 && Te(s) && (t = !0, n.push(s));
  }
  for (let i = t ? 1 : 0; i < e.length; i++)
    n.push(e[i]);
  return [n, r, o];
}
function qm(e, n, t) {
  if (e.hostDirectives !== null)
    for (const r of e.hostDirectives)
      if (typeof r == "function") {
        const o = r();
        for (const i of o)
          jd(Sa(i), n, t);
      } else
        jd(r, n, t);
}
function jd(e, n, t) {
  const r = fe(e.directive);
  (typeof ngDevMode > "u" || ngDevMode) && qw(e, r), Gw(r.declaredInputs, e.inputs), qm(r, n, t), t.set(r, e), n.push(r);
}
function Sa(e) {
  return typeof e == "function" ? { directive: x(e), inputs: Qe, outputs: Qe } : {
    directive: x(e.directive),
    inputs: Hd(e.inputs),
    outputs: Hd(e.outputs)
  };
}
function Hd(e) {
  if (e === void 0 || e.length === 0)
    return Qe;
  const n = {};
  for (let t = 0; t < e.length; t += 2)
    n[e[t]] = e[t + 1];
  return n;
}
function Gw(e, n) {
  for (const t in n)
    if (n.hasOwnProperty(t)) {
      const r = n[t], o = e[t];
      (typeof ngDevMode > "u" || ngDevMode) && e.hasOwnProperty(r) && T(e[r], e[t], `Conflicting host directive input alias ${t}.`), e[r] = o;
    }
}
function qw(e, n) {
  const t = e.directive;
  if (n === null)
    throw H(t) !== null ? new b(310, `Host directive ${t.name} cannot be a component.`) : new b(307, `Could not resolve metadata for host directive ${t.name}. Make sure that the ${t.name} class is annotated with an @Directive decorator.`);
  if (!n.standalone)
    throw new b(308, `Host directive ${n.type.name} must be standalone.`);
  $d("input", n, e.inputs), $d("output", n, e.outputs);
}
function $d(e, n, t) {
  const r = n.type.name, o = e === "input" ? n.inputs : n.outputs;
  for (const i in t)
    if (t.hasOwnProperty(i)) {
      if (!o.hasOwnProperty(i))
        throw new b(311, `Directive ${r} does not have an ${e} with a public name of ${i}.`);
      const s = t[i];
      if (o.hasOwnProperty(s) && s !== i)
        throw new b(312, `Cannot alias ${e} ${i} of host directive ${r} to ${s}, because it already has a different ${e} with the same public name.`);
    }
}
function Qm(e, n, t, r, o, i, s, c) {
  if (t.firstCreatePass) {
    e.mergedAttrs = lr(e.mergedAttrs, e.attrs);
    const l = e.tView = Qu(
      2,
      e,
      o,
      i,
      s,
      t.directiveRegistry,
      t.pipeRegistry,
      null,
      t.schemas,
      t.consts,
      null
      /* ssrId */
    );
    t.queries !== null && (t.queries.template(t, e), l.queries = t.queries.embeddedTView(e));
  }
  c && (e.flags |= c), Mn(e, !1);
  const a = Zw(t, n);
  Rs() && el(t, n, a, e), He(a, n);
  const u = nm(a, n, a, e);
  n[r + _] = u, Yu(n, u);
}
function Qw(e, n, t, r, o, i, s, c, a, u, l) {
  const d = t + _;
  let h;
  return n.firstCreatePass ? (h = Gt(n, d, 4, s || null, c || null), wu() && ym(n, e, h, Ee(n.consts, u), ol), wp(n, h)) : h = n.data[d], Qm(h, e, n, t, r, o, i, a), Er(h) && Us(n, e, h), u != null && xr(e, h, l), h;
}
function Lt(e, n, t, r, o, i, s, c, a, u, l) {
  const d = t + _;
  let h;
  if (n.firstCreatePass) {
    if (h = Gt(n, d, 4, s || null, c || null), u != null) {
      const p = Ee(n.consts, u);
      h.localNames = [];
      for (let g = 0; g < p.length; g += 2)
        h.localNames.push(p[g], -1);
    }
  } else
    h = n.data[d];
  return Qm(h, e, n, t, r, o, i, a), u != null && xr(e, h, l), h;
}
function Zm(e, n, t, r, o, i, s, c) {
  const a = I(), u = R(), l = Ee(u.consts, i);
  return Qw(a, u, e, n, t, r, o, l, void 0, s, c), Zm;
}
function Ym(e, n, t, r, o, i, s, c) {
  const a = I(), u = R(), l = Ee(u.consts, i);
  return Lt(a, u, e, n, t, r, o, l, void 0, s, c), Ym;
}
let Zw = Yw;
function Yw(e, n, t, r) {
  return jo(!0), n[F].createComment(ngDevMode ? "container" : "");
}
var te;
(function(e) {
  e[e.NOT_STARTED = 0] = "NOT_STARTED", e[e.IN_PROGRESS = 1] = "IN_PROGRESS", e[e.COMPLETE = 2] = "COMPLETE", e[e.FAILED = 3] = "FAILED";
})(te || (te = {}));
const ts = 0, Jm = 1;
var G;
(function(e) {
  e[e.Placeholder = 0] = "Placeholder", e[e.Loading = 1] = "Loading", e[e.Complete = 2] = "Complete", e[e.Error = 3] = "Error";
})(G || (G = {}));
var Ft;
(function(e) {
  e[e.Initial = -1] = "Initial";
})(Ft || (Ft = {}));
const or = 0, Kn = 1, Vr = 2, fi = 3, Jw = 4, Xw = 5, jt = 6, Kw = 7, ir = 8, eT = 9;
var ka;
(function(e) {
  e[e.Manual = 0] = "Manual", e[e.Playthrough = 1] = "Playthrough";
})(ka || (ka = {}));
/*!
 * @license
 * Copyright Google LLC All Rights Reserved.
 *
 * Use of this source code is governed by an MIT-style license that can be
 * found in the LICENSE file at https://angular.dev/license
 */
function Ko(e, n, t) {
  const r = Km(e);
  n[r] === null && (n[r] = []), n[r].push(t);
}
function Ci(e, n) {
  const t = Km(e), r = n[t];
  if (r !== null) {
    for (const o of r)
      o();
    n[t] = null;
  }
}
function Xm(e) {
  Ci(1, e), Ci(0, e), Ci(2, e);
}
function Km(e) {
  let n = Jw;
  return e === 1 ? n = Xw : e === 2 && (n = eT), n;
}
var rs;
(function(e) {
  e[e.CHANGE_DETECTION = 0] = "CHANGE_DETECTION", e[e.AFTER_NEXT_RENDER = 1] = "AFTER_NEXT_RENDER";
})(rs || (rs = {}));
const Xs = new w(ngDevMode ? "TracingService" : ""), ev = !1;
class nT extends Ao {
  constructor(t = !1) {
    super();
    // tslint:disable-next-line:require-internal-with-underscore
    f(this, "__isAsync");
    f(this, "destroyRef");
    f(this, "pendingTasks");
    this.__isAsync = t, yu() && (this.destroyRef = S(Wn, { optional: !0 }) ?? void 0, this.pendingTasks = S(Dn, { optional: !0 }) ?? void 0);
  }
  emit(t) {
    const r = N(null);
    try {
      super.next(t);
    } finally {
      N(r);
    }
  }
  subscribe(t, r, o) {
    var u, l, d;
    let i = t, s = r || (() => null), c = o;
    if (t && typeof t == "object") {
      const h = t;
      i = (u = h.next) == null ? void 0 : u.bind(h), s = (l = h.error) == null ? void 0 : l.bind(h), c = (d = h.complete) == null ? void 0 : d.bind(h);
    }
    this.__isAsync && (s = this.wrapInTimeout(s), i && (i = this.wrapInTimeout(i)), c && (c = this.wrapInTimeout(c)));
    const a = super.subscribe({ next: i, error: s, complete: c });
    return t instanceof Gn && t.add(a), a;
  }
  wrapInTimeout(t) {
    return (r) => {
      var i;
      const o = (i = this.pendingTasks) == null ? void 0 : i.add();
      setTimeout(() => {
        var s;
        try {
          t(r);
        } finally {
          o !== void 0 && ((s = this.pendingTasks) == null || s.remove(o));
        }
      });
    };
  }
}
const On = nT;
function nv(e) {
  let n, t;
  function r() {
    e = Gi;
    try {
      t !== void 0 && typeof cancelAnimationFrame == "function" && cancelAnimationFrame(t), n !== void 0 && clearTimeout(n);
    } catch {
    }
  }
  return n = setTimeout(() => {
    e(), r();
  }), typeof requestAnimationFrame == "function" && (t = requestAnimationFrame(() => {
    e(), r();
  })), () => r();
}
function Bd(e) {
  return queueMicrotask(() => e()), () => {
    e = Gi;
  };
}
class tT {
  constructor(n, t = console) {
    f(this, "createTask");
    // ZoneSpec implementation below.
    f(this, "name");
    this.name = "asyncStackTagging for " + n, this.createTask = (t == null ? void 0 : t.createTask) ?? (() => null);
  }
  onScheduleTask(n, t, r, o) {
    return o.consoleTask = this.createTask(`Zone - ${o.source || o.type}`), n.scheduleTask(r, o);
  }
  onInvokeTask(n, t, r, o, i, s) {
    let c;
    return o.consoleTask ? c = o.consoleTask.run(() => n.invokeTask(r, o, i, s)) : c = n.invokeTask(r, o, i, s), c;
  }
}
const Ml = "isAngularZone", os = Ml + "_ID";
let rT = 0;
class ee {
  constructor(n) {
    f(this, "hasPendingMacrotasks", !1);
    f(this, "hasPendingMicrotasks", !1);
    /**
     * Whether there are no outstanding microtasks or macrotasks.
     */
    f(this, "isStable", !0);
    /**
     * Notifies when code enters Angular Zone. This gets fired first on VM Turn.
     */
    f(this, "onUnstable", new On(!1));
    /**
     * Notifies when there is no more microtasks enqueued in the current VM Turn.
     * This is a hint for Angular to do change detection, which may enqueue more microtasks.
     * For this reason this event can fire multiple times per VM Turn.
     */
    f(this, "onMicrotaskEmpty", new On(!1));
    /**
     * Notifies when the last `onMicrotaskEmpty` has run and there are no more microtasks, which
     * implies we are about to relinquish VM turn.
     * This event gets called just once.
     */
    f(this, "onStable", new On(!1));
    /**
     * Notifies that an error has been delivered.
     */
    f(this, "onError", new On(!1));
    const { enableLongStackTrace: t = !1, shouldCoalesceEventChangeDetection: r = !1, shouldCoalesceRunChangeDetection: o = !1, scheduleInRootZone: i = ev } = n;
    if (typeof Zone > "u")
      throw new b(908, ngDevMode && "In this configuration Angular requires Zone.js");
    Zone.assertZonePatched();
    const s = this;
    s._nesting = 0, s._outer = s._inner = Zone.current, ngDevMode && (s._inner = s._inner.fork(new tT("Angular"))), Zone.TaskTrackingZoneSpec && (s._inner = s._inner.fork(new Zone.TaskTrackingZoneSpec())), t && Zone.longStackTraceZoneSpec && (s._inner = s._inner.fork(Zone.longStackTraceZoneSpec)), s.shouldCoalesceEventChangeDetection = !o && r, s.shouldCoalesceRunChangeDetection = o, s.callbackScheduled = !1, s.scheduleInRootZone = i, sT(s);
  }
  /**
    This method checks whether the method call happens within an Angular Zone instance.
  */
  static isInAngularZone() {
    return typeof Zone < "u" && Zone.current.get(Ml) === !0;
  }
  /**
    Assures that the method is called within the Angular Zone, otherwise throws an error.
  */
  static assertInAngularZone() {
    if (!ee.isInAngularZone())
      throw new b(909, ngDevMode && "Expected to be in Angular Zone, but it is not!");
  }
  /**
    Assures that the method is called outside of the Angular Zone, otherwise throws an error.
  */
  static assertNotInAngularZone() {
    if (ee.isInAngularZone())
      throw new b(909, ngDevMode && "Expected to not be in Angular Zone, but it is!");
  }
  /**
   * Executes the `fn` function synchronously within the Angular zone and returns value returned by
   * the function.
   *
   * Running functions via `run` allows you to reenter Angular zone from a task that was executed
   * outside of the Angular zone (typically started via {@link #runOutsideAngular}).
   *
   * Any future tasks or microtasks scheduled from within this function will continue executing from
   * within the Angular zone.
   *
   * If a synchronous error happens it will be rethrown and not reported via `onError`.
   */
  run(n, t, r) {
    return this._inner.run(n, t, r);
  }
  /**
   * Executes the `fn` function synchronously within the Angular zone as a task and returns value
   * returned by the function.
   *
   * Running functions via `runTask` allows you to reenter Angular zone from a task that was executed
   * outside of the Angular zone (typically started via {@link #runOutsideAngular}).
   *
   * Any future tasks or microtasks scheduled from within this function will continue executing from
   * within the Angular zone.
   *
   * If a synchronous error happens it will be rethrown and not reported via `onError`.
   */
  runTask(n, t, r, o) {
    const i = this._inner, s = i.scheduleEventTask("NgZoneEvent: " + o, n, oT, Gi, Gi);
    try {
      return i.runTask(s, t, r);
    } finally {
      i.cancelTask(s);
    }
  }
  /**
   * Same as `run`, except that synchronous errors are caught and forwarded via `onError` and not
   * rethrown.
   */
  runGuarded(n, t, r) {
    return this._inner.runGuarded(n, t, r);
  }
  /**
   * Executes the `fn` function synchronously in Angular's parent zone and returns value returned by
   * the function.
   *
   * Running functions via {@link #runOutsideAngular} allows you to escape Angular's zone and do
   * work that
   * doesn't trigger Angular change-detection or is subject to Angular's error handling.
   *
   * Any future tasks or microtasks scheduled from within this function will continue executing from
   * outside of the Angular zone.
   *
   * Use {@link #run} to reenter the Angular zone and do work that updates the application model.
   */
  runOutsideAngular(n) {
    return this._outer.run(n);
  }
}
const oT = {};
function Dl(e) {
  if (e._nesting == 0 && !e.hasPendingMicrotasks && !e.isStable)
    try {
      e._nesting++, e.onMicrotaskEmpty.emit(null);
    } finally {
      if (e._nesting--, !e.hasPendingMicrotasks)
        try {
          e.runOutsideAngular(() => e.onStable.emit(null));
        } finally {
          e.isStable = !0;
        }
    }
}
function iT(e) {
  if (e.isCheckStableRunning || e.callbackScheduled)
    return;
  e.callbackScheduled = !0;
  function n() {
    nv(() => {
      e.callbackScheduled = !1, xa(e), e.isCheckStableRunning = !0, Dl(e), e.isCheckStableRunning = !1;
    });
  }
  e.scheduleInRootZone ? Zone.root.run(() => {
    n();
  }) : e._outer.run(() => {
    n();
  }), xa(e);
}
function sT(e) {
  const n = () => {
    iT(e);
  }, t = rT++;
  e._inner = e._inner.fork({
    name: "angular",
    properties: {
      [Ml]: !0,
      [os]: t,
      [os + t]: !0
    },
    onInvokeTask: (r, o, i, s, c, a) => {
      if (cT(a))
        return r.invokeTask(i, s, c, a);
      try {
        return Ud(e), r.invokeTask(i, s, c, a);
      } finally {
        (e.shouldCoalesceEventChangeDetection && s.type === "eventTask" || e.shouldCoalesceRunChangeDetection) && n(), Vd(e);
      }
    },
    onInvoke: (r, o, i, s, c, a, u) => {
      try {
        return Ud(e), r.invoke(i, s, c, a, u);
      } finally {
        e.shouldCoalesceRunChangeDetection && // Do not delay change detection when the task is the scheduler's tick.
        // We need to synchronously trigger the stability logic so that the
        // zone-based scheduler can prevent a duplicate ApplicationRef.tick
        // by first checking if the scheduler tick is running. This does seem a bit roundabout,
        // but we _do_ still want to trigger all the correct events when we exit the zone.run
        // (`onMicrotaskEmpty` and `onStable` _should_ emit; developers can have code which
        // relies on these events happening after change detection runs).
        // Note: `zone.callbackScheduled` is already in delayChangeDetectionForEventsDelegate
        // but is added here as well to prevent reads of applyArgs when not necessary
        !e.callbackScheduled && !aT(a) && n(), Vd(e);
      }
    },
    onHasTask: (r, o, i, s) => {
      r.hasTask(i, s), o === i && (s.change == "microTask" ? (e._hasPendingMicrotasks = s.microTask, xa(e), Dl(e)) : s.change == "macroTask" && (e.hasPendingMacrotasks = s.macroTask));
    },
    onHandleError: (r, o, i, s) => (r.handleError(i, s), e.runOutsideAngular(() => e.onError.emit(s)), !1)
  });
}
function xa(e) {
  e._hasPendingMicrotasks || (e.shouldCoalesceEventChangeDetection || e.shouldCoalesceRunChangeDetection) && e.callbackScheduled === !0 ? e.hasPendingMicrotasks = !0 : e.hasPendingMicrotasks = !1;
}
function Ud(e) {
  e._nesting++, e.isStable && (e.isStable = !1, e.onUnstable.emit(null));
}
function Vd(e) {
  e._nesting--, Dl(e);
}
class tv {
  constructor() {
    f(this, "hasPendingMicrotasks", !1);
    f(this, "hasPendingMacrotasks", !1);
    f(this, "isStable", !0);
    f(this, "onUnstable", new On());
    f(this, "onMicrotaskEmpty", new On());
    f(this, "onStable", new On());
    f(this, "onError", new On());
  }
  run(n, t, r) {
    return n.apply(t, r);
  }
  runGuarded(n, t, r) {
    return n.apply(t, r);
  }
  runOutsideAngular(n) {
    return n();
  }
  runTask(n, t, r, o) {
    return n.apply(t, r);
  }
}
function cT(e) {
  return rv(e, "__ignore_ng_zone__");
}
function aT(e) {
  return rv(e, "__scheduler_tick__");
}
function rv(e, n) {
  var t, r;
  return !Array.isArray(e) || e.length !== 1 ? !1 : ((r = (t = e[0]) == null ? void 0 : t.data) == null ? void 0 : r[n]) === !0;
}
function uT(e = "zone.js", n) {
  return e === "noop" ? new tv() : e === "zone.js" ? new ee(n) : e;
}
const oo = class oo {
  constructor() {
    f(this, "impl", null);
  }
  execute() {
    var n;
    (n = this.impl) == null || n.execute();
  }
};
/** @nocollapse */
f(
  oo,
  "ɵprov",
  /** @pureOrBreakMyCode */
  /* @__PURE__ */ X({
    token: oo,
    providedIn: "root",
    factory: () => new oo()
  })
);
let is = oo;
const lT = [
  0,
  1,
  2,
  3
], io = class io {
  constructor() {
    f(this, "ngZone", S(ee));
    f(this, "scheduler", S(Ho));
    f(this, "errorHandler", S(Ps, { optional: !0 }));
    /** Current set of active sequences. */
    f(this, "sequences", /* @__PURE__ */ new Set());
    /** Tracks registrations made during the current set of executions. */
    f(this, "deferredRegistrations", /* @__PURE__ */ new Set());
    /** Whether the `AfterRenderManager` is currently executing hooks. */
    f(this, "executing", !1);
    S(Xs, { optional: !0 });
  }
  /**
   * Run the sequence of phases of hooks, once through. As a result of executing some hooks, more
   * might be scheduled.
   */
  execute() {
    var t;
    const n = this.sequences.size > 0;
    n && Q(
      16
      /* ProfilerEvent.AfterRenderHooksStart */
    ), this.executing = !0;
    for (const r of lT)
      for (const o of this.sequences)
        if (!(o.erroredOrDestroyed || !o.hooks[r]))
          try {
            o.pipelinedValue = this.ngZone.runOutsideAngular(() => this.maybeTrace(() => {
              const i = o.hooks[r];
              return i(o.pipelinedValue);
            }, o.snapshot));
          } catch (i) {
            o.erroredOrDestroyed = !0, (t = this.errorHandler) == null || t.handleError(i);
          }
    this.executing = !1;
    for (const r of this.sequences)
      r.afterRun(), r.once && (this.sequences.delete(r), r.destroy());
    for (const r of this.deferredRegistrations)
      this.sequences.add(r);
    this.deferredRegistrations.size > 0 && this.scheduler.notify(
      7
      /* NotificationSource.RenderHook */
    ), this.deferredRegistrations.clear(), n && Q(
      17
      /* ProfilerEvent.AfterRenderHooksEnd */
    );
  }
  register(n) {
    const { view: t } = n;
    t !== void 0 ? ((t[Ln] ?? (t[Ln] = [])).push(n), Fo(t), t[A] |= 8192) : this.executing ? this.deferredRegistrations.add(n) : this.addSequence(n);
  }
  addSequence(n) {
    this.sequences.add(n), this.scheduler.notify(
      7
      /* NotificationSource.RenderHook */
    );
  }
  unregister(n) {
    this.executing && this.sequences.has(n) ? (n.erroredOrDestroyed = !0, n.pipelinedValue = void 0, n.once = !0) : (this.sequences.delete(n), this.deferredRegistrations.delete(n));
  }
  maybeTrace(n, t) {
    return t ? t.run(rs.AFTER_NEXT_RENDER, n) : n();
  }
};
/** @nocollapse */
f(
  io,
  "ɵprov",
  /** @pureOrBreakMyCode */
  /* @__PURE__ */ X({
    token: io,
    providedIn: "root",
    factory: () => new io()
  })
);
let Aa = io;
class dT {
  constructor(n, t, r, o, i, s = null) {
    f(this, "impl");
    f(this, "hooks");
    f(this, "view");
    f(this, "once");
    f(this, "snapshot");
    /**
     * Whether this sequence errored or was destroyed during this execution, and hooks should no
     * longer run for it.
     */
    f(this, "erroredOrDestroyed", !1);
    /**
     * The value returned by the last hook execution (if any), ready to be pipelined into the next
     * one.
     */
    f(this, "pipelinedValue");
    f(this, "unregisterOnDestroy");
    this.impl = n, this.hooks = t, this.view = r, this.once = o, this.snapshot = s, this.unregisterOnDestroy = i == null ? void 0 : i.onDestroy(() => this.destroy());
  }
  afterRun() {
    var n;
    this.erroredOrDestroyed = !1, this.pipelinedValue = void 0, (n = this.snapshot) == null || n.dispose(), this.snapshot = null;
  }
  destroy() {
    var t, r;
    this.impl.unregister(this), (t = this.unregisterOnDestroy) == null || t.call(this);
    const n = (r = this.view) == null ? void 0 : r[Ln];
    n && (this.view[Ln] = n.filter((o) => o !== this));
  }
}
function Oa(e, n) {
  ngDevMode && LD(Oa, "Call `afterEveryRender` outside of a reactive context. For example, schedule the render callback inside the component constructor`."), ngDevMode && !(n != null && n.injector) && jh(Oa);
  const t = (n == null ? void 0 : n.injector) ?? S(tn);
  return typeof ngServerMode < "u" && ngServerMode ? sv : (hn("NgAfterRender"), iv(
    e,
    t,
    n,
    /* once */
    !1
  ));
}
function ov(e, n) {
  ngDevMode && !(n != null && n.injector) && jh(ov);
  const t = (n == null ? void 0 : n.injector) ?? S(tn);
  return typeof ngServerMode < "u" && ngServerMode ? sv : (hn("NgAfterNextRender"), iv(
    e,
    t,
    n,
    /* once */
    !0
  ));
}
function fT(e) {
  return e instanceof Function ? [
    void 0,
    void 0,
    /* MixedReadWrite */
    e,
    void 0
  ] : [
    e.earlyRead,
    e.write,
    e.mixedReadWrite,
    e.read
  ];
}
function iv(e, n, t, r) {
  const o = n.get(is);
  o.impl ?? (o.impl = n.get(Aa));
  const i = n.get(Xs, null, { optional: !0 }), s = (t == null ? void 0 : t.manualCleanup) !== !0 ? n.get(Wn) : null, c = n.get(Ou, null, { optional: !0 }), a = new dT(o.impl, fT(e), c == null ? void 0 : c.view, r, s, i == null ? void 0 : i.snapshot(null));
  return o.impl.register(a), a;
}
const sv = {
  destroy() {
  }
};
function Ks(e) {
  return e + 1;
}
function Oe(e, n) {
  const t = e[y], r = Ks(n.index);
  return ngDevMode && No(t, r), e[r];
}
function hT(e, n, t) {
  const r = e[y], o = Ks(n);
  ngDevMode && No(r, o), e[o] = t;
}
function be(e, n) {
  const t = Ks(n.index);
  return ngDevMode && No(e, t), e.data[t];
}
function pT(e, n, t) {
  const r = Ks(n);
  ngDevMode && No(e, r), e.data[r] = t;
}
function gT(e, n, t) {
  const r = n[y], o = be(r, t);
  switch (e) {
    case G.Complete:
      return o.primaryTmplIndex;
    case G.Loading:
      return o.loadingTmplIndex;
    case G.Error:
      return o.errorTmplIndex;
    case G.Placeholder:
      return o.placeholderTmplIndex;
    default:
      return ngDevMode && C(`Unexpected defer block state: ${e}`), null;
  }
}
function Ra(e, n) {
  var t, r;
  return n === G.Placeholder ? ((t = e.placeholderBlockConfig) == null ? void 0 : t[ts]) ?? null : n === G.Loading ? ((r = e.loadingBlockConfig) == null ? void 0 : r[ts]) ?? null : null;
}
function cv(e) {
  var n;
  return ((n = e.loadingBlockConfig) == null ? void 0 : n[Jm]) ?? null;
}
function Wd(e, n) {
  if (!e || e.length === 0)
    return n;
  const t = new Set(e);
  for (const r of n)
    t.add(r);
  return e.length === t.size ? e : Array.from(t);
}
function mT(e, n) {
  const t = n.primaryTmplIndex + _;
  return Cr(e, t);
}
function av(e) {
  T(e.loadingState, te.COMPLETE, "Expecting all deferred dependencies to be loaded.");
}
function vT(e) {
  return e !== null && typeof e == "object" && typeof e.primaryTmplIndex == "number";
}
function ie(e, n, t) {
  var o;
  const r = be(e, n);
  r.debug ?? (r.debug = {}), (o = r.debug).triggers ?? (o.triggers = /* @__PURE__ */ new Set()), r.debug.triggers.add(t);
}
/*!
 * @license
 * Copyright Google LLC All Rights Reserved.
 *
 * Use of this source code is governed by an MIT-style license that can be
 * found in the LICENSE file at https://angular.dev/license
 */
function uv(e, n, t) {
  const r = t.get(ee);
  return cb(e, () => r.run(n), () => r.runOutsideAngular(() => sb()));
}
function yT(e, n, t) {
  if (t == null)
    return e;
  if (t >= 0)
    return Zh(t, e);
  const r = e[n.index];
  ngDevMode && Ke(r);
  const o = r[K] ?? null;
  if (ngDevMode && o !== null) {
    const s = Oe(e, n)[Kn];
    T(s, G.Placeholder, "Expected a placeholder to be rendered in this defer block."), ze(o);
  }
  return o;
}
function IT(e, n) {
  const t = _r(_ + n, e);
  return ngDevMode && RM(t), t;
}
function Pr(e, n, t, r, o, i, s) {
  const c = e[oe], a = c.get(ee);
  let u;
  function l() {
    if (yn(e)) {
      u.destroy();
      return;
    }
    const d = Oe(e, n), h = d[Kn];
    if (h !== Ft.Initial && h !== G.Placeholder) {
      u.destroy();
      return;
    }
    const p = yT(e, n, r);
    if (!p || (u.destroy(), yn(p)))
      return;
    const g = IT(p, t), m = o(g, () => {
      a.run(() => {
        e !== p && _u(p, m), i();
      });
    }, c);
    e !== p && As(p, m), Ko(s, d, m);
  }
  u = Oa({ read: l }, { injector: c });
}
function El(e, n) {
  const t = n.get(Pa), r = () => t.remove(e);
  return t.add(e), r;
}
const MT = () => typeof requestIdleCallback < "u" ? requestIdleCallback : setTimeout, DT = () => typeof requestIdleCallback < "u" ? cancelIdleCallback : clearTimeout, so = class so {
  constructor() {
    // Indicates whether current callbacks are being invoked.
    f(this, "executingCallbacks", !1);
    // Currently scheduled idle callback id.
    f(this, "idleId", null);
    // Set of callbacks to be invoked next.
    f(this, "current", /* @__PURE__ */ new Set());
    // Set of callbacks collected while invoking current set of callbacks.
    // Those callbacks are scheduled for the next idle period.
    f(this, "deferred", /* @__PURE__ */ new Set());
    f(this, "ngZone", S(ee));
    f(this, "requestIdleCallbackFn", MT().bind(globalThis));
    f(this, "cancelIdleCallbackFn", DT().bind(globalThis));
  }
  add(n) {
    (this.executingCallbacks ? this.deferred : this.current).add(n), this.idleId === null && this.scheduleIdleCallback();
  }
  remove(n) {
    const { current: t, deferred: r } = this;
    t.delete(n), r.delete(n), t.size === 0 && r.size === 0 && this.cancelIdleCallback();
  }
  scheduleIdleCallback() {
    const n = () => {
      this.cancelIdleCallback(), this.executingCallbacks = !0;
      for (const t of this.current)
        t();
      if (this.current.clear(), this.executingCallbacks = !1, this.deferred.size > 0) {
        for (const t of this.deferred)
          this.current.add(t);
        this.deferred.clear(), this.scheduleIdleCallback();
      }
    };
    this.idleId = this.requestIdleCallbackFn(() => this.ngZone.run(n));
  }
  cancelIdleCallback() {
    this.idleId !== null && (this.cancelIdleCallbackFn(this.idleId), this.idleId = null);
  }
  ngOnDestroy() {
    this.cancelIdleCallback(), this.current.clear(), this.deferred.clear();
  }
};
/** @nocollapse */
f(
  so,
  "ɵprov",
  /** @pureOrBreakMyCode */
  /* @__PURE__ */ X({
    token: so,
    providedIn: "root",
    factory: () => new so()
  })
);
let Pa = so;
function bl(e) {
  return (n, t) => lv(e, n, t);
}
function lv(e, n, t) {
  const r = t.get(Na), o = t.get(ee), i = () => r.remove(n);
  return r.add(e, n, o), i;
}
const co = class co {
  constructor() {
    // Indicates whether current callbacks are being invoked.
    f(this, "executingCallbacks", !1);
    // Currently scheduled `setTimeout` id.
    f(this, "timeoutId", null);
    // When currently scheduled timer would fire.
    f(this, "invokeTimerAt", null);
    // List of callbacks to be invoked.
    // For each callback we also store a timestamp on when the callback
    // should be invoked. We store timestamps and callback functions
    // in a flat array to avoid creating new objects for each entry.
    // [timestamp1, callback1, timestamp2, callback2, ...]
    f(this, "current", []);
    // List of callbacks collected while invoking current set of callbacks.
    // Those callbacks are added to the "current" queue at the end of
    // the current callback invocation. The shape of this list is the same
    // as the shape of the `current` list.
    f(this, "deferred", []);
  }
  add(n, t, r) {
    const o = this.executingCallbacks ? this.deferred : this.current;
    this.addToQueue(o, Date.now() + n, t), this.scheduleTimer(r);
  }
  remove(n) {
    const { current: t, deferred: r } = this;
    this.removeFromQueue(t, n) === -1 && this.removeFromQueue(r, n), t.length === 0 && r.length === 0 && this.clearTimeout();
  }
  addToQueue(n, t, r) {
    let o = n.length;
    for (let i = 0; i < n.length; i += 2)
      if (n[i] > t) {
        o = i;
        break;
      }
    Sh(n, o, t, r);
  }
  removeFromQueue(n, t) {
    let r = -1;
    for (let o = 0; o < n.length; o += 2)
      if (n[o + 1] === t) {
        r = o;
        break;
      }
    return r > -1 && Gl(n, r, 2), r;
  }
  scheduleTimer(n) {
    const t = () => {
      this.clearTimeout(), this.executingCallbacks = !0;
      const o = [...this.current], i = Date.now();
      for (let c = 0; c < o.length; c += 2) {
        const a = o[c], u = o[c + 1];
        if (a <= i)
          u();
        else
          break;
      }
      let s = -1;
      for (let c = 0; c < this.current.length && this.current[c] <= i; c += 2)
        s = c + 1;
      if (s >= 0 && Gl(this.current, 0, s + 1), this.executingCallbacks = !1, this.deferred.length > 0) {
        for (let c = 0; c < this.deferred.length; c += 2) {
          const a = this.deferred[c], u = this.deferred[c + 1];
          this.addToQueue(this.current, a, u);
        }
        this.deferred.length = 0;
      }
      this.scheduleTimer(n);
    };
    if (this.current.length > 0) {
      const o = Date.now(), i = this.current[0];
      if (this.timeoutId === null || // Reschedule a timer in case a queue contains an item with
      // an earlier timestamp and the delta is more than an average
      // frame duration.
      this.invokeTimerAt && this.invokeTimerAt - i > 16) {
        this.clearTimeout();
        const s = Math.max(i - o, 16);
        this.invokeTimerAt = i, this.timeoutId = n.runOutsideAngular(() => setTimeout(() => n.run(t), s));
      }
    }
  }
  clearTimeout() {
    this.timeoutId !== null && (clearTimeout(this.timeoutId), this.timeoutId = null);
  }
  ngOnDestroy() {
    this.clearTimeout(), this.current.length = 0, this.deferred.length = 0;
  }
};
/** @nocollapse */
f(
  co,
  "ɵprov",
  /** @pureOrBreakMyCode */
  /* @__PURE__ */ X({
    token: co,
    providedIn: "root",
    factory: () => new co()
  })
);
let Na = co;
const ao = class ao {
  constructor() {
    f(this, "cachedInjectors", /* @__PURE__ */ new Map());
  }
  getOrCreateInjector(n, t, r, o) {
    if (!this.cachedInjectors.has(n)) {
      const i = r.length > 0 ? $m(r, t, o) : null;
      this.cachedInjectors.set(n, i);
    }
    return this.cachedInjectors.get(n);
  }
  ngOnDestroy() {
    try {
      for (const n of this.cachedInjectors.values())
        n !== null && n.destroy();
    } finally {
      this.cachedInjectors.clear();
    }
  }
};
/** @nocollapse */
f(
  ao,
  "ɵprov",
  /** @pureOrBreakMyCode */
  /* @__PURE__ */ X({
    token: ao,
    providedIn: "environment",
    factory: () => new ao()
  })
);
let La = ao;
const ET = /* @__PURE__ */ new w("DEFER_BLOCK_DEPENDENCY_INTERCEPTOR"), bT = new w(ngDevMode ? "DEFER_BLOCK_CONFIG" : "");
function wc(e, n, t) {
  return e.get(La).getOrCreateInjector(n, e, t, ngDevMode ? "DeferBlock Injector" : "");
}
function _T(e, n, t) {
  if (e instanceof rr) {
    const o = e.injector, i = e.parentInjector, s = wc(i, n, t);
    return new rr(o, s);
  }
  const r = e.get(Ze);
  if (r !== e) {
    const o = wc(r, n, t);
    return new rr(e, o);
  }
  return wc(e, n, t);
}
function Rn(e, n, t, r = !1) {
  const o = t[ae], i = o[y];
  if (yn(o))
    return;
  ngDevMode && We(n, o);
  const s = Oe(o, n);
  ngDevMode && E(s, "Expected a defer block state defined");
  const c = s[Kn], a = s[Kw];
  if (!(a !== null && e < a) && Gd(c, e) && Gd(s[or] ?? -1, e)) {
    const u = be(i, n), l = !r && (typeof ngServerMode > "u" || !ngServerMode) && (cv(u) !== null || Ra(u, G.Loading) !== null || Ra(u, G.Placeholder));
    ngDevMode && l && E(ss, "Expected scheduling function to be defined");
    const d = l ? ss : dv;
    try {
      d(e, s, t, n, o);
    } catch (h) {
      sl(o, h);
    }
  }
}
function CT(e, n) {
  var o;
  const t = ((o = e[$n]) == null ? void 0 : o.findIndex((i) => i.data[eg] === n[Kn])) ?? -1;
  return { dehydratedView: t > -1 ? e[$n][t] : null, dehydratedViewIx: t };
}
function dv(e, n, t, r, o) {
  var s;
  Q(
    20
    /* ProfilerEvent.DeferBlockStateStart */
  );
  const i = gT(e, o, r);
  if (i !== null) {
    n[Kn] = e;
    const c = o[y], a = i + _, u = Cr(c, a), l = 0;
    al(t, l);
    let d;
    if (e === G.Complete) {
      const m = be(c, r), M = m.providers;
      M && M.length > 0 && (d = _T(o[oe], m, M));
    }
    const { dehydratedView: h, dehydratedViewIx: p } = CT(t, n), g = Ar(o, u, null, {
      injector: d,
      dehydratedView: h
    });
    if (Or(t, g, l, Pt(u, h)), Jo(
      g,
      2
      /* NotificationSource.DeferBlockStateUpdate */
    ), p > -1 && ((s = t[$n]) == null || s.splice(p, 1)), (e === G.Complete || e === G.Error) && Array.isArray(n[ir])) {
      for (const m of n[ir])
        m();
      n[ir] = null;
    }
  }
  Q(
    21
    /* ProfilerEvent.DeferBlockStateEnd */
  );
}
function wT(e, n, t, r, o) {
  const i = Date.now(), s = o[y], c = be(s, r);
  if (n[Vr] === null || n[Vr] <= i) {
    n[Vr] = null;
    const a = cv(c), u = n[fi] !== null;
    if (e === G.Loading && a !== null && !u) {
      n[or] = e;
      const l = zd(a, n, r, t, o);
      n[fi] = l;
    } else {
      e > G.Loading && u && (n[fi](), n[fi] = null, n[or] = null), dv(e, n, t, r, o);
      const l = Ra(c, e);
      l !== null && (n[Vr] = i + l, zd(l, n, r, t, o));
    }
  } else
    n[or] = e;
}
function zd(e, n, t, r, o) {
  return lv(e, () => {
    const s = n[or];
    n[Vr] = null, n[or] = null, s !== null && Rn(s, t, r);
  }, o[oe]);
}
function Gd(e, n) {
  return e < n;
}
function Nr(e, n) {
  const t = e[n.index];
  ngDevMode && Ke(t), Rn(G.Placeholder, n, t);
}
function qd(e, n, t) {
  ngDevMode && E(e.loadingPromise, "Expected loading Promise to exist on this defer block"), e.loadingPromise.then(() => {
    e.loadingState === te.COMPLETE ? (ngDevMode && av(e), Rn(G.Complete, n, t)) : e.loadingState === te.FAILED && Rn(G.Error, n, t);
  });
}
let ss = null;
function TT(e, n, t, r) {
  const o = e.consts;
  t != null && (n.placeholderBlockConfig = Ee(o, t)), r != null && (n.loadingBlockConfig = Ee(o, r)), ss === null && (ss = wT);
}
function en(e, n, t, r) {
  return Tn(() => {
    const o = e;
    n !== null && (o.hasOwnProperty("decorators") && o.decorators !== void 0 ? o.decorators.push(...n) : o.decorators = n), t !== null && (o.ctorParameters = t);
  });
}
const ot = class ot {
  log(n) {
    console.log(n);
  }
  // Note: for reporting errors use `DOM.logError()` as it is platform specific
  warn(n) {
    console.warn(n);
  }
};
f(ot, "ɵfac", function(t) {
  return new (t || ot)();
}), f(ot, "ɵprov", /* @__PURE__ */ X({ token: ot, factory: ot.ɵfac, providedIn: "platform" }));
let Co = ot;
(typeof ngDevMode > "u" || ngDevMode) && en(Co, [{
  type: on,
  args: [{ providedIn: "platform" }]
}], null);
class ST {
  constructor() {
    f(this, "resolverToTokenToDependencies", /* @__PURE__ */ new WeakMap());
    f(this, "resolverToProviders", /* @__PURE__ */ new WeakMap());
    f(this, "resolverToEffects", /* @__PURE__ */ new WeakMap());
    f(this, "standaloneInjectorToComponent", /* @__PURE__ */ new WeakMap());
  }
  reset() {
    this.resolverToTokenToDependencies = /* @__PURE__ */ new WeakMap(), this.resolverToProviders = /* @__PURE__ */ new WeakMap(), this.standaloneInjectorToComponent = /* @__PURE__ */ new WeakMap();
  }
}
let Lr = new ST();
function ei() {
  return Lr;
}
function kT() {
  Lr.reset(), vh(xT);
}
function xT(e) {
  const { context: n, type: t } = e;
  t === 0 ? OT(n, e.service) : t === 1 ? PT(n, e.instance) : t === 2 ? LT(n, e.providerRecord) : t === 3 && AT(n, e.effect);
}
function AT(e, n) {
  const t = _l(e.injector);
  t === null && C("An EffectCreated event must be run within an injection context.");
  const { resolverToEffects: r } = Lr;
  r.has(t) || r.set(t, []), r.get(t).push(n);
}
function OT(e, n) {
  const t = _l(e.injector);
  t === null && C("An Inject event must be run within an injection context.");
  const r = Lr.resolverToTokenToDependencies;
  if (r.has(t) || r.set(t, /* @__PURE__ */ new WeakMap()), !FT(e.token))
    return;
  const o = r.get(t);
  o.has(e.token) || o.set(e.token, []);
  const { token: i, value: s, flags: c } = n;
  E(e.token, "Injector profiler context token is undefined.");
  const a = o.get(e.token);
  E(a, "Could not resolve dependencies for token."), e.injector instanceof Y ? a.push({ token: i, value: s, flags: c, injectedIn: RT(e.injector) }) : a.push({ token: i, value: s, flags: c });
}
function RT(e) {
  e instanceof Y || C("getNodeInjectorContext must be called with a NodeInjector");
  const n = Yn(e), t = zt(e);
  if (t !== null)
    return We(t, n), { lView: n, tNode: t };
}
function PT(e, n) {
  const { value: t } = n;
  if (n.value == null)
    return;
  _l(e.injector) === null && C("An InjectorCreatedInstance event must be run within an injection context.");
  let r;
  if (typeof t == "object" && (r = t == null ? void 0 : t.constructor), r == null || !NT(r))
    return;
  const o = e.injector.get(Ze, null, { optional: !0 });
  if (o === null)
    return;
  const { standaloneInjectorToComponent: i } = Lr;
  i.has(o) || i.set(o, r);
}
function NT(e) {
  const n = H(e);
  return !!(n != null && n.standalone);
}
function LT(e, n) {
  const { resolverToProviders: t } = Lr;
  let r;
  (e == null ? void 0 : e.injector) instanceof Y ? r = zt(e.injector) : r = e.injector, r === null && C("A ProviderConfigured event must be run within an injection context."), t.has(r) || t.set(r, []), t.get(r).push(n);
}
function _l(e) {
  let n = null;
  return e === void 0 || (e instanceof Y ? n = Yn(e) : n = e), n;
}
function FT(e) {
  return e !== null && (typeof e == "object" || typeof e == "function" || typeof e == "symbol");
}
function jT(e) {
  ngDevMode && E(e, "component"), Jo(
    Up(e),
    3
    /* NotificationSource.DebugApplyChanges */
  ), Jp(e).forEach((n) => HT(n));
}
function HT(e) {
  const n = Up(e);
  n[A] |= 1024, zs(n);
}
function wi(e, n) {
  const t = e[y];
  for (let r = _; r < t.bindingStartIndex; r++)
    if (ke(e[r])) {
      const o = e[r];
      if (!(r === t.bindingStartIndex - 1)) {
        const s = t.data[r], c = be(t, s);
        if (vT(c)) {
          n.push({ lContainer: o, lView: e, tNode: s, tDetails: c });
          continue;
        }
      }
      re(o[ce]) && wi(o[ce], n);
      for (let s = K; s < o.length; s++)
        wi(o[s], n);
    } else re(e[r]) && wi(e[r], n);
}
/*!
 * @license
 * Copyright Google LLC All Rights Reserved.
 *
 * Use of this source code is governed by an MIT-style license that can be
 * found in the LICENSE file at https://angular.dev/license
 */
function $T(e) {
  var r;
  const n = [], t = (r = Jn(e)) == null ? void 0 : r.lView;
  return t && fv(e, t, n), n;
}
function fv(e, n, t) {
  var a, u, l, d;
  const r = n[oe], o = r.get(Uo, null, { optional: !0 }), i = [];
  wi(n, i);
  const c = r.get(yo).get(og, {});
  for (const h of i) {
    const p = xe(h.tNode, h.lView), g = Oe(h.lView, h.tNode);
    if (!e.contains(p))
      continue;
    const m = h.tDetails, M = VT(h), D = [], v = UT(m, g, o);
    if (M !== null)
      Do(M[y], M, M[y].firstChild, D);
    else if (v === "dehydrated") {
      const z = g[jt], de = c[z][Xp];
      let me = 0, pn = h.lContainer[Bn].previousSibling;
      for (; me < de && pn; )
        D.unshift(pn), pn = pn.previousSibling, me++;
    }
    const j = {
      state: BT(g[Kn]),
      incrementalHydrationState: v,
      hasErrorBlock: m.errorTmplIndex !== null,
      loadingBlock: {
        exists: m.loadingTmplIndex !== null,
        minimumTime: ((a = m.loadingBlockConfig) == null ? void 0 : a[ts]) ?? null,
        afterTime: ((u = m.loadingBlockConfig) == null ? void 0 : u[Jm]) ?? null
      },
      placeholderBlock: {
        exists: m.placeholderTmplIndex !== null,
        minimumTime: ((l = m.placeholderBlockConfig) == null ? void 0 : l[ts]) ?? null
      },
      triggers: (d = m.debug) != null && d.triggers ? Array.from(m.debug.triggers).sort() : [],
      rootNodes: D
    };
    t.push(j), M !== null && fv(e, M, t);
  }
}
function BT(e) {
  switch (e) {
    case G.Complete:
      return "complete";
    case G.Loading:
      return "loading";
    case G.Placeholder:
      return "placeholder";
    case G.Error:
      return "error";
    case Ft.Initial:
      return "initial";
    default:
      throw new Error(`Unrecognized state ${e}`);
  }
}
function UT(e, n, t) {
  return t === null || n[jt] === null || e.hydrateTriggers === null || e.hydrateTriggers.has(
    7
    /* DeferBlockTrigger.Never */
  ) ? "not-configured" : t.has(n[jt]) ? "dehydrated" : "hydrated";
}
function VT(e) {
  if (e.lContainer.length <= K)
    return null;
  const n = e.lContainer[K];
  return ngDevMode && ze(n), n;
}
function WT(e, n) {
  const t = e.get(n, null, { self: !0, optional: !0 });
  if (t === null)
    throw new Error(`Unable to determine instance of ${n} in given injector`);
  const r = zT(n, e), o = hv(e), i = r.map((s) => {
    const c = {
      value: s.value
    }, a = s.flags;
    c.flags = {
      optional: (8 & a) === 8,
      host: (1 & a) === 1,
      self: (2 & a) === 2,
      skipSelf: (4 & a) === 4
    };
    for (let u = 0; u < o.length; u++) {
      const l = o[u];
      if (u === 0 && c.flags.skipSelf)
        continue;
      if (c.flags.host && l instanceof Ze)
        break;
      if (l.get(s.token, null, {
        self: !0,
        optional: !0
      }) !== null) {
        if (c.flags.host) {
          o[0].get(s.token, null, {
            ...c.flags,
            optional: !0
          }) !== null && (c.providedIn = l);
          break;
        }
        c.providedIn = l;
        break;
      }
      if (u === 0 && c.flags.self)
        break;
    }
    return s.token && (c.token = s.token), c;
  });
  return { instance: t, dependencies: i };
}
function zT(e, n) {
  var s, c;
  const { resolverToTokenToDependencies: t } = ei();
  if (!(n instanceof Y))
    return ((c = (s = t.get(n)) == null ? void 0 : s.get) == null ? void 0 : c.call(s, e)) ?? [];
  const r = Yn(n), o = t.get(r);
  return ((o == null ? void 0 : o.get(e)) ?? []).filter((a) => {
    var d;
    const u = (d = a.injectedIn) == null ? void 0 : d.tNode;
    if (u === void 0)
      return !1;
    const l = zt(n);
    return Vn(u), Vn(l), u === l;
  });
}
function GT(e) {
  const { standaloneInjectorToComponent: n } = ei();
  if (n.has(e))
    return n.get(e);
  const t = e.get(pr, null, { self: !0, optional: !0 });
  return t === null || t.instance === null ? null : t.instance.constructor;
}
function qT(e) {
  const n = zt(e), { resolverToProviders: t } = ei();
  return t.get(n) ?? [];
}
function QT(e) {
  const n = /* @__PURE__ */ new Map(), r = ZT(n, /* @__PURE__ */ new Set());
  return $i(e, r, [], /* @__PURE__ */ new Set()), n;
}
function ZT(e, n) {
  return (t, r) => {
    if (e.has(t) || e.set(t, [r]), !n.has(r))
      for (const o of e.keys()) {
        const i = e.get(o);
        let s = Pi(r);
        if (!s) {
          const u = r.ngModule;
          s = Pi(u);
        }
        if (!s)
          return;
        const c = i[0];
        let a = !1;
        ar(s.imports, (u) => {
          var l;
          a || (a = u.ngModule === c || u === c, a && ((l = e.get(o)) == null || l.unshift(r)));
        });
      }
    n.add(r);
  };
}
function YT(e) {
  const n = ei().resolverToProviders.get(e) ?? [];
  if (JT(e))
    return n;
  const t = GT(e);
  if (t === null)
    return n;
  const r = QT(t), o = [];
  for (const i of n) {
    const s = i.provider, c = s.provide;
    if (c === ur || c === pu)
      continue;
    let a = r.get(s) ?? [];
    const u = H(t);
    !!(u != null && u.standalone) && (a = [t, ...a]), o.push({ ...i, importPath: a });
  }
  return o;
}
function JT(e) {
  return e instanceof Ut && e.scopes.has("platform");
}
function XT(e) {
  if (e instanceof Y)
    return qT(e);
  if (e instanceof Ze)
    return YT(e);
  C("getInjectorProviders only supports NodeInjector and EnvironmentInjector");
}
function KT(e) {
  if (e instanceof Y) {
    const n = Yn(e), t = zt(e);
    return We(t, n), { type: "element", source: xe(t, n) };
  }
  return e instanceof Ut ? { type: "environment", source: e.source ?? null } : e instanceof Ss ? { type: "null", source: null } : null;
}
function hv(e) {
  const n = [e];
  return Fa(e, n), n;
}
function Fa(e, n) {
  const t = eS(e);
  if (t === null) {
    if (e instanceof Y) {
      const r = n[0];
      if (r instanceof Y) {
        const o = nS(r);
        o === null && C("NodeInjector must have some connection to the module injector tree"), n.push(o), Fa(o, n);
      }
      return n;
    }
  } else
    n.push(t), Fa(t, n);
  return n;
}
function eS(e) {
  var o;
  if (e instanceof Ut)
    return e.parent;
  let n, t;
  if (e instanceof Y)
    n = zt(e), t = Yn(e);
  else {
    if (e instanceof Ss)
      return null;
    if (e instanceof rr)
      return e.parentInjector;
    C("getInjectorParent only support injectors of type R3Injector, NodeInjector, NullInjector");
  }
  const r = Ns(n, t);
  if (Pu(r)) {
    const i = go(r), s = mo(r, t), a = s[y].data[
      i + 8
      /* NodeInjectorOffset.TNODE */
    ];
    return new Y(a, s);
  } else {
    const s = (o = t[oe].injector) == null ? void 0 : o.parent;
    if (s instanceof Y)
      return s;
  }
  return null;
}
function nS(e) {
  let n;
  e instanceof Y ? n = Yn(e) : C("getModuleInjectorOfNodeInjector must be called with a NodeInjector");
  const t = n[oe], r = t instanceof rr ? t.parentInjector : t.parent;
  return r || C("NodeInjector must have some connection to the module injector tree"), r;
}
function tS(e) {
  return e.kind === "computed";
}
function rS(e) {
  return e.kind === "template";
}
function oS(e) {
  return e.kind === "signal";
}
function iS(e) {
  const n = zt(e);
  Vn(n);
  const t = Yn(e);
  ze(t);
  const r = t[n.index];
  return re(r) ? r[Ue] ?? null : null;
}
const Qd = /* @__PURE__ */ new WeakMap();
let Zd = 0;
function sS(e) {
  var o, i, s, c, a, u;
  const n = Array.from(e.keys()), t = [], r = [];
  for (const [l, d] of e.entries()) {
    const h = n.indexOf(l);
    let p = Qd.get(l);
    p || (Zd++, p = Zd.toString(), Qd.set(l, p)), tS(l) ? t.push({
      label: l.debugName,
      value: l.value,
      kind: l.kind,
      epoch: l.version,
      debuggableFn: l.computation,
      id: p
    }) : oS(l) ? t.push({
      label: l.debugName,
      value: l.value,
      kind: l.kind,
      epoch: l.version,
      id: p
    }) : rS(l) ? t.push({
      label: l.debugName ?? ((c = (s = (i = (o = l.lView) == null ? void 0 : o[ce]) == null ? void 0 : i.tagName) == null ? void 0 : s.toLowerCase) == null ? void 0 : c.call(s)),
      kind: l.kind,
      epoch: l.version,
      // The `lView[CONTEXT]` is a reference to an instance of the component's class.
      // We get the constructor so that `inspect(.constructor)` shows the component class.
      debuggableFn: (u = (a = l.lView) == null ? void 0 : a[V]) == null ? void 0 : u.constructor,
      id: p
    }) : t.push({
      label: l.debugName,
      kind: l.kind,
      epoch: l.version,
      id: p
    });
    for (const g of d)
      r.push({ consumer: h, producer: n.indexOf(g) });
  }
  return { nodes: t, edges: r };
}
function cS(e) {
  let n = e;
  return e instanceof Y && (n = Yn(e)), (ei().resolverToEffects.get(n) ?? []).map((o) => o[un]);
}
function pv(e, n = /* @__PURE__ */ new Map()) {
  for (const t of e) {
    if (n.has(t))
      continue;
    const r = [];
    for (let o = t.producers; o !== void 0; o = o.nextProducer) {
      const i = o.producer;
      r.push(i);
    }
    n.set(t, r), pv(r, n);
  }
  return n;
}
function aS(e) {
  let n = null;
  if (!(e instanceof Y) && !(e instanceof Ut))
    return C("getSignalGraph must be called with a NodeInjector or R3Injector");
  e instanceof Y && (n = iS(e));
  const t = cS(e), r = n ? [n, ...t] : t, o = pv(r);
  return sS(o);
}
let uS = 0, Yd = 0, Jd = 0;
const gv = [];
function mv(e) {
  gv.push([e, Jd]), console.timeStamp("Event_" + e + "_" + Jd++);
}
function Pe(e, n, t) {
  const r = gv.pop();
  E(r, "Profiling error: could not find start event entry " + e), T(r[0], e, `Profiling error: expected to see ${e} event but got ${r[0]}`), console.timeStamp(n, "Event_" + r[0] + "_" + r[1], void 0, "🅰️ Angular", void 0, t);
}
const lS = (e) => {
  const n = e.type;
  if (n === 4)
    mv(
      100
      /* ProfilerDIEvent.InjectorToCreateInstanceEvent */
    );
  else if (n === 1) {
    const t = e.context.token;
    Pe(100, vv(t), "tertiary-dark");
  }
}, dS = (e, n, t) => {
  switch (e) {
    case 8:
    case 10:
    case 12:
    case 14:
    case 16:
    case 18:
    case 20:
    case 22:
    case 0:
    case 4:
    case 2:
    case 24:
    case 6: {
      mv(e);
      break;
    }
    case 9: {
      Pe(8, "Bootstrap application", "primary-dark");
      break;
    }
    case 11: {
      Pe(10, "Bootstrap component", "primary-dark");
      break;
    }
    case 13: {
      Yd = 0, Pe(12, "Change detection " + uS++, "primary-dark");
      break;
    }
    case 15: {
      Pe(14, "Synchronization " + Yd++, "primary");
      break;
    }
    case 17: {
      Pe(16, "After render hooks", "primary");
      break;
    }
    case 19: {
      const r = Xd(n);
      Pe(18, r, "primary-light");
      break;
    }
    case 21: {
      Pe(20, "Defer block", "primary-dark");
      break;
    }
    case 23: {
      Pe(22, "Dynamic component creation", "primary-dark");
      break;
    }
    case 3: {
      Pe(2, P(t) + " (update)", "secondary-dark");
      break;
    }
    case 1: {
      Pe(0, P(t) + " (create)", "secondary");
      break;
    }
    case 25: {
      Pe(24, "HostBindings", "secondary-dark");
      break;
    }
    case 5: {
      const r = Xd(n);
      Pe(4, `${r}:${P(t)}`, "tertiary");
      break;
    }
    case 7: {
      Pe(6, P(t), "tertiary-light");
      break;
    }
    default:
      throw new Error("Unexpected profiling event type: " + e);
  }
};
function Xd(e) {
  return e.constructor.name;
}
function vv(e) {
  return vn(e) ? e.name : e.provide != null ? vv(e.provide) : e.toString();
}
function fS() {
  if (hn("Chrome DevTools profiling"), typeof ngDevMode < "u" && ngDevMode) {
    const e = vh(lS), n = Cp(dS);
    return () => {
      e(), n();
    };
  }
  return () => {
  };
}
const hi = "ng", hS = {
  /**
   * Warning: functions that start with `ɵ` are considered *INTERNAL* and should not be relied upon
   * in application's code. The contract of those functions might be changed in any release and/or a
   * function can be removed completely.
   */
  ɵgetDependenciesFromInjectable: WT,
  ɵgetInjectorProviders: XT,
  ɵgetInjectorResolutionPath: hv,
  ɵgetInjectorMetadata: KT,
  ɵsetProfiler: Cp,
  ɵgetSignalGraph: aS,
  ɵgetDeferBlocks: $T,
  getDirectiveMetadata: GE,
  getComponent: Yp,
  getContext: UE,
  getListeners: QE,
  getOwningComponent: VE,
  getHostElement: qE,
  getInjector: WE,
  getRootComponents: Jp,
  getDirectives: zE,
  applyChanges: jT,
  isSignal: gp,
  enableProfiling: fS
};
let Kd = !1;
function pS() {
  if (!Kd) {
    Kd = !0, typeof window < "u" && kT();
    for (const [e, n] of Object.entries(hS))
      gS(e, n);
  }
}
function gS(e, n) {
  mS(e, n);
}
function mS(e, n) {
  if (typeof COMPILED > "u" || !COMPILED) {
    const t = Ce;
    ngDevMode && E(n, "function not defined"), t[hi] ?? (t[hi] = {}), t[hi][e] = n;
  }
}
const vS = new w(""), yv = new w(""), it = class it {
  constructor(n, t, r) {
    f(this, "_ngZone");
    f(this, "registry");
    f(this, "_isZoneStable", !0);
    f(this, "_callbacks", []);
    f(this, "_taskTrackingZone", null);
    f(this, "_destroyRef");
    this._ngZone = n, this.registry = t, yu() && (this._destroyRef = S(Wn, { optional: !0 }) ?? void 0), Jr || (yS(r), r.addToWindow(t)), this._watchAngularEvents(), n.run(() => {
      this._taskTrackingZone = typeof Zone > "u" ? null : Zone.current.get("TaskTrackingZone");
    });
  }
  _watchAngularEvents() {
    var r;
    const n = this._ngZone.onUnstable.subscribe({
      next: () => {
        this._isZoneStable = !1;
      }
    }), t = this._ngZone.runOutsideAngular(() => this._ngZone.onStable.subscribe({
      next: () => {
        ee.assertNotInAngularZone(), queueMicrotask(() => {
          this._isZoneStable = !0, this._runCallbacksIfReady();
        });
      }
    }));
    (r = this._destroyRef) == null || r.onDestroy(() => {
      n.unsubscribe(), t.unsubscribe();
    });
  }
  /**
   * Whether an associated application is stable
   */
  isStable() {
    return this._isZoneStable && !this._ngZone.hasPendingMacrotasks;
  }
  _runCallbacksIfReady() {
    if (this.isStable())
      queueMicrotask(() => {
        for (; this._callbacks.length !== 0; ) {
          let n = this._callbacks.pop();
          clearTimeout(n.timeoutId), n.doneCb();
        }
      });
    else {
      let n = this.getPendingTasks();
      this._callbacks = this._callbacks.filter((t) => t.updateCb && t.updateCb(n) ? (clearTimeout(t.timeoutId), !1) : !0);
    }
  }
  getPendingTasks() {
    return this._taskTrackingZone ? this._taskTrackingZone.macroTasks.map((n) => ({
      source: n.source,
      // From TaskTrackingZone:
      // https://github.com/angular/zone.js/blob/master/lib/zone-spec/task-tracking.ts#L40
      creationLocation: n.creationLocation,
      data: n.data
    })) : [];
  }
  addCallback(n, t, r) {
    let o = -1;
    t && t > 0 && (o = setTimeout(() => {
      this._callbacks = this._callbacks.filter((i) => i.timeoutId !== o), n();
    }, t)), this._callbacks.push({ doneCb: n, timeoutId: o, updateCb: r });
  }
  /**
   * Wait for the application to be stable with a timeout. If the timeout is reached before that
   * happens, the callback receives a list of the macro tasks that were pending, otherwise null.
   *
   * @param doneCb The callback to invoke when Angular is stable or the timeout expires
   *    whichever comes first.
   * @param timeout Optional. The maximum time to wait for Angular to become stable. If not
   *    specified, whenStable() will wait forever.
   * @param updateCb Optional. If specified, this callback will be invoked whenever the set of
   *    pending macrotasks changes. If this callback returns true doneCb will not be invoked
   *    and no further updates will be issued.
   */
  whenStable(n, t, r) {
    if (r && !this._taskTrackingZone)
      throw new Error('Task tracking zone is required when passing an update callback to whenStable(). Is "zone.js/plugins/task-tracking" loaded?');
    this.addCallback(n, t, r), this._runCallbacksIfReady();
  }
  /**
   * Registers an application with a testability hook so that it can be tracked.
   * @param token token of application, root element
   *
   * @internal
   */
  registerApplication(n) {
    this.registry.registerApplication(n, this);
  }
  /**
   * Unregisters an application.
   * @param token token of application, root element
   *
   * @internal
   */
  unregisterApplication(n) {
    this.registry.unregisterApplication(n);
  }
  /**
   * Find providers by name
   * @param using The root element to search from
   * @param provider The name of binding variable
   * @param exactMatch Whether using exactMatch
   */
  findProviders(n, t, r) {
    return [];
  }
};
f(it, "ɵfac", function(t) {
  return new (t || it)(we(ee), we(wo), we(yv));
}), f(it, "ɵprov", /* @__PURE__ */ X({ token: it, factory: it.ɵfac }));
let ja = it;
(typeof ngDevMode > "u" || ngDevMode) && en(ja, [{
  type: on
}], () => [{ type: ee }, { type: wo }, { type: void 0, decorators: [{
  type: Mp,
  args: [yv]
}] }]);
const st = class st {
  constructor() {
    /** @internal */
    f(this, "_applications", /* @__PURE__ */ new Map());
  }
  /**
   * Registers an application with a testability hook so that it can be tracked
   * @param token token of application, root element
   * @param testability Testability hook
   */
  registerApplication(n, t) {
    this._applications.set(n, t);
  }
  /**
   * Unregisters an application.
   * @param token token of application, root element
   */
  unregisterApplication(n) {
    this._applications.delete(n);
  }
  /**
   * Unregisters all applications
   */
  unregisterAllApplications() {
    this._applications.clear();
  }
  /**
   * Get a testability hook associated with the application
   * @param elem root element
   */
  getTestability(n) {
    return this._applications.get(n) || null;
  }
  /**
   * Get all registered testabilities
   */
  getAllTestabilities() {
    return Array.from(this._applications.values());
  }
  /**
   * Get all registered applications(root elements)
   */
  getAllRootElements() {
    return Array.from(this._applications.keys());
  }
  /**
   * Find testability of a node in the Tree
   * @param elem node
   * @param findInAncestors whether finding testability in ancestors if testability was not found in
   * current node
   */
  findTestabilityInTree(n, t = !0) {
    return (Jr == null ? void 0 : Jr.findTestabilityInTree(this, n, t)) ?? null;
  }
};
f(st, "ɵfac", function(t) {
  return new (t || st)();
}), f(st, "ɵprov", /* @__PURE__ */ X({ token: st, factory: st.ɵfac, providedIn: "platform" }));
let wo = st;
(typeof ngDevMode > "u" || ngDevMode) && en(wo, [{
  type: on,
  args: [{ providedIn: "platform" }]
}], null);
function yS(e) {
  Jr = e;
}
let Jr;
function Iv(e) {
  return !!e && typeof e.then == "function";
}
function IS(e) {
  return !!e && typeof e.subscribe == "function";
}
const MS = new w(ngDevMode ? "Application Initializer" : ""), ct = class ct {
  constructor() {
    // Using non null assertion, these fields are defined below
    // within the `new Promise` callback (synchronously).
    f(this, "resolve");
    f(this, "reject");
    f(this, "initialized", !1);
    f(this, "done", !1);
    f(this, "donePromise", new Promise((n, t) => {
      this.resolve = n, this.reject = t;
    }));
    f(this, "appInits", S(MS, { optional: !0 }) ?? []);
    f(this, "injector", S(tn));
    if ((typeof ngDevMode > "u" || ngDevMode) && !Array.isArray(this.appInits))
      throw new b(-209, `Unexpected type of the \`APP_INITIALIZER\` token value (expected an array, but got ${typeof this.appInits}). Please check that the \`APP_INITIALIZER\` token is configured as a \`multi: true\` provider.`);
  }
  /** @internal */
  runInitializers() {
    if (this.initialized)
      return;
    const n = [];
    for (const r of this.appInits) {
      const o = Fh(this.injector, r);
      if (Iv(o))
        n.push(o);
      else if (IS(o)) {
        const i = new Promise((s, c) => {
          o.subscribe({ complete: s, error: c });
        });
        n.push(i);
      }
    }
    const t = () => {
      this.done = !0, this.resolve();
    };
    Promise.all(n).then(() => {
      t();
    }).catch((r) => {
      this.reject(r);
    }), n.length === 0 && t(), this.initialized = !0;
  }
};
f(ct, "ɵfac", function(t) {
  return new (t || ct)();
}), f(ct, "ɵprov", /* @__PURE__ */ X({ token: ct, factory: ct.ɵfac, providedIn: "root" }));
let To = ct;
(typeof ngDevMode > "u" || ngDevMode) && en(To, [{
  type: on,
  args: [{ providedIn: "root" }]
}], () => []);
const DS = new w(ngDevMode ? "appBootstrapListener" : "");
function ES() {
  ngDevMode && pS();
}
function bS() {
  EM(() => {
    let e = "";
    if (ngDevMode) {
      const n = Ds();
      e = n && Z_(n) ? "Writing to signals is not allowed while Angular renders the template (eg. interpolations)" : "Writing to signals is not allowed in a `computed`";
    }
    throw new b(600, e);
  });
}
function _S(e) {
  return e.isBoundToModule;
}
const ef = 10;
function Mv(e, n) {
  return Array.isArray(n) ? n.reduce(Mv, e) : { ...e, ...n };
}
const at = class at {
  constructor() {
    /** @internal */
    f(this, "_runningTick", !1);
    f(this, "_destroyed", !1);
    f(this, "_destroyListeners", []);
    /** @internal */
    f(this, "_views", []);
    f(this, "internalErrorHandler", S(Qn));
    f(this, "afterRenderManager", S(is));
    f(this, "zonelessEnabled", S(vp));
    f(this, "rootEffectScheduler", S(oa));
    /**
     * Current dirty state of the application across a number of dimensions (views, afterRender hooks,
     * etc).
     *
     * A flag set here means that `tick()` will attempt to resolve the dirtiness when executed.
     *
     * @internal
     */
    f(this, "dirtyFlags", 0);
    /**
     * Most recent snapshot from the `TracingService`, if any.
     *
     * This snapshot attempts to capture the context when `tick()` was first
     * scheduled. It then runs wrapped in this context.
     *
     * @internal
     */
    f(this, "tracingSnapshot", null);
    // Needed for ComponentFixture temporarily during migration of autoDetect behavior
    // Eventually the hostView of the fixture should just attach to ApplicationRef.
    f(this, "allTestViews", /* @__PURE__ */ new Set());
    f(this, "autoDetectTestViews", /* @__PURE__ */ new Set());
    f(this, "includeAllTestViews", !1);
    /** @internal */
    f(this, "afterTick", new Ao());
    /**
     * Get a list of component types registered to this application.
     * This list is populated even before the component is created.
     */
    f(this, "componentTypes", []);
    /**
     * Get a list of components registered to this application.
     */
    f(this, "components", []);
    f(this, "internalPendingTask", S(Dn));
    f(this, "_injector", S(Ze));
    f(this, "_rendererFactory", null);
    f(this, "tickImpl", () => {
      var t;
      if ((typeof ngDevMode > "u" || ngDevMode) && jr(this._destroyed), this._runningTick)
        throw new b(101, ngDevMode && "ApplicationRef.tick is called recursively");
      const n = N(null);
      try {
        if (this._runningTick = !0, this.synchronize(), typeof ngDevMode > "u" || ngDevMode)
          for (let r of this.allViews)
            r.checkNoChanges();
      } finally {
        this._runningTick = !1, (t = this.tracingSnapshot) == null || t.dispose(), this.tracingSnapshot = null, N(n), this.afterTick.next(), Q(
          13
          /* ProfilerEvent.ChangeDetectionEnd */
        );
      }
    });
    S(Xs, { optional: !0 });
  }
  /** @internal */
  get allViews() {
    return [
      ...(this.includeAllTestViews ? this.allTestViews : this.autoDetectTestViews).keys(),
      ...this._views
    ];
  }
  /**
   * Indicates whether this instance was destroyed.
   */
  get destroyed() {
    return this._destroyed;
  }
  /**
   * Returns an Observable that indicates when the application is stable or unstable.
   */
  get isStable() {
    return this.internalPendingTask.hasPendingTasksObservable.pipe(lo((n) => !n));
  }
  /**
   * @returns A promise that resolves when the application becomes stable
   */
  whenStable() {
    let n;
    return new Promise((t) => {
      n = this.isStable.subscribe({
        next: (r) => {
          r && t();
        }
      });
    }).finally(() => {
      n.unsubscribe();
    });
  }
  /**
   * The `EnvironmentInjector` used to create this application.
   */
  get injector() {
    return this._injector;
  }
  /**
   * Bootstrap a component onto the element identified by its selector or, optionally, to a
   * specified element.
   *
   * @usageNotes
   * ### Bootstrap process
   *
   * When bootstrapping a component, Angular mounts it onto a target DOM element
   * and kicks off automatic change detection. The target DOM element can be
   * provided using the `rootSelectorOrNode` argument.
   *
   * If the target DOM element is not provided, Angular tries to find one on a page
   * using the `selector` of the component that is being bootstrapped
   * (first matched element is used).
   *
   * ### Example
   *
   * Generally, we define the component to bootstrap in the `bootstrap` array of `NgModule`,
   * but it requires us to know the component while writing the application code.
   *
   * Imagine a situation where we have to wait for an API call to decide about the component to
   * bootstrap. We can use the `ngDoBootstrap` hook of the `NgModule` and call this method to
   * dynamically bootstrap a component.
   *
   * {@example core/ts/platform/platform.ts region='componentSelector'}
   *
   * Optionally, a component can be mounted onto a DOM element that does not match the
   * selector of the bootstrapped component.
   *
   * In the following example, we are providing a CSS selector to match the target element.
   *
   * {@example core/ts/platform/platform.ts region='cssSelector'}
   *
   * While in this example, we are providing reference to a DOM node.
   *
   * {@example core/ts/platform/platform.ts region='domNode'}
   */
  bootstrap(n, t) {
    return this.bootstrapImpl(n, t);
  }
  bootstrapImpl(n, t, r = tn.NULL) {
    return this._injector.get(ee).run(() => {
      Q(
        10
        /* ProfilerEvent.BootstrapComponentStart */
      ), (typeof ngDevMode > "u" || ngDevMode) && jr(this._destroyed);
      const i = n instanceof mm;
      if (!this._injector.get(To).done) {
        let p = "";
        throw (typeof ngDevMode > "u" || ngDevMode) && (p = "Cannot bootstrap as there are still asynchronous initializers running." + (!i && It(n) ? "" : " Bootstrap components in the `ngDoBootstrap` method of the root module.")), new b(405, p);
      }
      let c;
      i ? c = n : c = this._injector.get(Zs).resolveComponentFactory(n), this.componentTypes.push(c.componentType);
      const a = _S(c) ? void 0 : this._injector.get(pr), u = t || c.selector, l = c.create(r, [], u, a), d = l.location.nativeElement, h = l.injector.get(vS, null);
      return h == null || h.registerApplication(d), l.onDestroy(() => {
        this.detachView(l.hostView), Ti(this.components, l), h == null || h.unregisterApplication(d);
      }), this._loadComponent(l), (typeof ngDevMode > "u" || ngDevMode) && this._injector.get(Co).log("Angular is running in development mode."), Q(11, l), l;
    });
  }
  /**
   * Invoke this method to explicitly process change detection and its side-effects.
   *
   * In development mode, `tick()` also performs a second change detection cycle to ensure that no
   * further changes are detected. If additional changes are picked up during this second cycle,
   * bindings in the app have side-effects that cannot be resolved in a single change detection
   * pass.
   * In this case, Angular throws an error, since an Angular application can only have one change
   * detection pass during which all change detection must complete.
   */
  tick() {
    this.zonelessEnabled || (this.dirtyFlags |= 1), this._tick();
  }
  /** @internal */
  _tick() {
    Q(
      12
      /* ProfilerEvent.ChangeDetectionStart */
    ), this.tracingSnapshot !== null ? this.tracingSnapshot.run(rs.CHANGE_DETECTION, this.tickImpl) : this.tickImpl();
  }
  /**
   * Performs the core work of synchronizing the application state with the UI, resolving any
   * pending dirtiness (potentially in a loop).
   */
  synchronize() {
    this._rendererFactory === null && !this._injector.destroyed && (this._rendererFactory = this._injector.get(vm, null, { optional: !0 }));
    let n = 0;
    for (; this.dirtyFlags !== 0 && n++ < ef; )
      Q(
        14
        /* ProfilerEvent.ChangeDetectionSyncStart */
      ), this.synchronizeOnce(), Q(
        15
        /* ProfilerEvent.ChangeDetectionSyncEnd */
      );
    if ((typeof ngDevMode > "u" || ngDevMode) && n >= ef)
      throw new b(103, ngDevMode && "Infinite change detection while refreshing application views. Ensure views are not calling `markForCheck` on every template execution or that afterRender hooks always mark views for check.");
  }
  /**
   * Perform a single synchronization pass.
   */
  synchronizeOnce() {
    var t, r, o, i;
    this.dirtyFlags & 16 && (this.dirtyFlags &= -17, this.rootEffectScheduler.flush());
    let n = !1;
    if (this.dirtyFlags & 7) {
      const s = !!(this.dirtyFlags & 1);
      this.dirtyFlags &= -8, this.dirtyFlags |= 8;
      for (let { _lView: c } of this.allViews) {
        if (!s && !zi(c))
          continue;
        const a = s && !this.zonelessEnabled ? (
          // Global mode includes `CheckAlways` views.
          0
        ) : (
          // Only refresh views with the `RefreshView` flag or views is a changed signal
          1
        );
        zs(c, a), n = !0;
      }
      if (this.dirtyFlags &= -5, this.syncDirtyFlagsWithViews(), this.dirtyFlags & 23)
        return;
    }
    n || ((r = (t = this._rendererFactory) == null ? void 0 : t.begin) == null || r.call(t), (i = (o = this._rendererFactory) == null ? void 0 : o.end) == null || i.call(o)), this.dirtyFlags & 8 && (this.dirtyFlags &= -9, this.afterRenderManager.execute()), this.syncDirtyFlagsWithViews();
  }
  /**
   * Checks `allViews` for views which require refresh/traversal, and updates `dirtyFlags`
   * accordingly, with two potential behaviors:
   *
   * 1. If any of our views require updating, then this adds the `ViewTreeTraversal` dirty flag.
   *    This _should_ be a no-op, since the scheduler should've added the flag at the same time the
   *    view was marked as needing updating.
   *
   *    TODO(alxhub): figure out if this behavior is still needed for edge cases.
   *
   * 2. If none of our views require updating, then clear the view-related `dirtyFlag`s. This
   *    happens when the scheduler is notified of a view becoming dirty, but the view itself isn't
   *    reachable through traversal from our roots (e.g. it's detached from the CD tree).
   */
  syncDirtyFlagsWithViews() {
    if (this.allViews.some(({ _lView: n }) => zi(n))) {
      this.dirtyFlags |= 2;
      return;
    } else
      this.dirtyFlags &= -8;
  }
  /**
   * Attaches a view so that it will be dirty checked.
   * The view will be automatically detached when it is destroyed.
   * This will throw if the view is already attached to a ViewContainer.
   */
  attachView(n) {
    (typeof ngDevMode > "u" || ngDevMode) && jr(this._destroyed);
    const t = n;
    this._views.push(t), t.attachToAppRef(this);
  }
  /**
   * Detaches a view from dirty checking again.
   */
  detachView(n) {
    (typeof ngDevMode > "u" || ngDevMode) && jr(this._destroyed);
    const t = n;
    Ti(this._views, t), t.detachFromAppRef();
  }
  _loadComponent(n) {
    this.attachView(n.hostView);
    try {
      this.tick();
    } catch (r) {
      this.internalErrorHandler(r);
    }
    this.components.push(n);
    const t = this._injector.get(DS, []);
    if (ngDevMode && !Array.isArray(t))
      throw new b(-209, `Unexpected type of the \`APP_BOOTSTRAP_LISTENER\` token value (expected an array, but got ${typeof t}). Please check that the \`APP_BOOTSTRAP_LISTENER\` token is configured as a \`multi: true\` provider.`);
    t.forEach((r) => r(n));
  }
  /** @internal */
  ngOnDestroy() {
    if (!this._destroyed)
      try {
        this._destroyListeners.forEach((n) => n()), this._views.slice().forEach((n) => n.destroy());
      } finally {
        this._destroyed = !0, this._views = [], this._destroyListeners = [];
      }
  }
  /**
   * Registers a listener to be called when an instance is destroyed.
   *
   * @param callback A callback function to add as a listener.
   * @returns A function which unregisters a listener.
   */
  onDestroy(n) {
    return (typeof ngDevMode > "u" || ngDevMode) && jr(this._destroyed), this._destroyListeners.push(n), () => Ti(this._destroyListeners, n);
  }
  /**
   * Destroys an Angular application represented by this `ApplicationRef`. Calling this function
   * will destroy the associated environment injectors as well as all the bootstrapped components
   * with their views.
   */
  destroy() {
    if (this._destroyed)
      throw new b(406, ngDevMode && "This instance of the `ApplicationRef` has already been destroyed.");
    const n = this._injector;
    n.destroy && !n.destroyed && n.destroy();
  }
  /**
   * Returns the number of attached views.
   */
  get viewCount() {
    return this._views.length;
  }
};
f(at, "ɵfac", function(t) {
  return new (t || at)();
}), f(at, "ɵprov", /* @__PURE__ */ X({ token: at, factory: at.ɵfac, providedIn: "root" }));
let rn = at;
(typeof ngDevMode > "u" || ngDevMode) && en(rn, [{
  type: on,
  args: [{ providedIn: "root" }]
}], () => []);
function jr(e) {
  e && console.warn(Xe(406, "This instance of the `ApplicationRef` has already been destroyed."));
}
function Ti(e, n) {
  const t = e.indexOf(n);
  t > -1 && e.splice(t, 1);
}
function Dv(e) {
  const n = I(), t = L();
  if (Nr(n, t), !_v(0, n))
    return;
  const r = n[oe], o = Oe(n, t), i = e(() => Re(0, n, t), r);
  Ko(0, o, i);
}
function Ev(e, n) {
  if (typeof ngServerMode < "u" && ngServerMode)
    return;
  const t = I(), r = t[oe], o = L(), i = t[y], s = be(i, o);
  if (s.loadingState === te.NOT_STARTED) {
    const c = Oe(t, o), u = e(() => ni(s, t, o), r);
    Ko(1, c, u);
  }
}
function bv(e, n, t) {
  if (typeof ngServerMode < "u" && ngServerMode)
    return;
  const r = n[oe], o = Oe(n, t), i = o[jt];
  ngDevMode && Hu(i);
  const s = e(() => wl(r, i), r);
  Ko(2, o, s);
}
function ni(e, n, t) {
  Cl(e, n, t);
}
function Cl(e, n, t) {
  const r = n[oe], o = n[y];
  if (e.loadingState !== te.NOT_STARTED)
    return e.loadingPromise ?? Promise.resolve();
  const i = Oe(n, t), s = mT(o, e);
  e.loadingState = te.IN_PROGRESS, Ci(1, i);
  let c = e.dependencyResolverFn;
  if (ngDevMode) {
    const u = r.get(ET, null, {
      optional: !0
    });
    u && (c = u.intercept(c));
  }
  const a = r.get(ra).add();
  return c ? (e.loadingPromise = Promise.allSettled(c()).then((u) => {
    let l = !1;
    const d = [], h = [];
    for (const p of u)
      if (p.status === "fulfilled") {
        const g = p.value, m = H(g) || fe(g);
        if (m)
          d.push(m);
        else {
          const M = je(g);
          M && h.push(M);
        }
      } else {
        l = !0;
        break;
      }
    if (l) {
      if (e.loadingState = te.FAILED, e.errorTmplIndex === null) {
        const p = ngDevMode ? Hs(n) : "", g = new b(-750, ngDevMode && `Loading dependencies for \`@defer\` block failed, but no \`@error\` block was configured${p}. Consider using the \`@error\` block to render an error state.`);
        sl(n, g);
      }
    } else {
      e.loadingState = te.COMPLETE;
      const p = s.tView;
      if (d.length > 0) {
        p.directiveRegistry = Wd(p.directiveRegistry, d);
        const g = d.map((M) => M.type), m = gu(!1, ...g);
        e.providers = m;
      }
      h.length > 0 && (p.pipeRegistry = Wd(p.pipeRegistry, h));
    }
  }), e.loadingPromise.finally(() => {
    e.loadingPromise = null, a();
  })) : (e.loadingPromise = Promise.resolve().then(() => {
    e.loadingPromise = null, e.loadingState = te.COMPLETE, a();
  }), e.loadingPromise);
}
function _v(e, n) {
  if (e === 0 && typeof ngServerMode < "u" && ngServerMode)
    return !1;
  const r = n[oe].get(bT, null, { optional: !0 });
  return (r == null ? void 0 : r.behavior) !== ka.Manual;
}
function Re(e, n, t) {
  const r = n[y], o = n[t.index];
  if (ngDevMode && Ke(o), !_v(e, n))
    return;
  const i = Oe(n, t), s = be(r, t);
  switch (Xm(i), s.loadingState) {
    case te.NOT_STARTED:
      Rn(G.Loading, t, o), Cl(s, n, t), s.loadingState === te.IN_PROGRESS && qd(s, t, o);
      break;
    case te.IN_PROGRESS:
      Rn(G.Loading, t, o), qd(s, t, o);
      break;
    case te.COMPLETE:
      ngDevMode && av(s), Rn(G.Complete, t, o);
      break;
    case te.FAILED:
      Rn(G.Error, t, o);
      break;
    default:
      ngDevMode && C("Unknown defer block state");
  }
}
async function wl(e, n, t) {
  const r = e.get(Uo);
  if (r.hydrating.has(n))
    return;
  const { parentBlockPromise: i, hydrationQueue: s } = pb(n, e);
  if (s.length === 0)
    return;
  i !== null && s.shift(), TS(r, s), i !== null && await i;
  const c = s[0];
  r.has(c) ? await nf(e, s) : r.awaitParentBlock(c, async () => await nf(e, s));
}
async function nf(e, n, t) {
  var a;
  const r = e.get(Uo), o = r.hydrating, i = e.get(Dn), s = i.add();
  for (let u = 0; u < n.length; u++) {
    const l = n[u], d = r.get(l);
    if (d != null) {
      if (await kS(d), await SS(e), CS(d)) {
        wC(d), tf(n.slice(u), r);
        break;
      }
      o.get(l).resolve();
    } else {
      wS(u, n, r), tf(n.slice(u), r);
      break;
    }
  }
  const c = n[n.length - 1];
  await ((a = o.get(c)) == null ? void 0 : a.promise), i.remove(s), SC(r.get(c), n, r, e.get(rn));
}
function CS(e) {
  return Oe(e.lView, e.tNode)[Kn] === G.Error;
}
function wS(e, n, t) {
  const r = e - 1, o = r > -1 ? t.get(n[r]) : null;
  o && Qs(o.lContainer);
}
function tf(e, n) {
  var r;
  const t = n.hydrating;
  for (const o in e)
    (r = t.get(o)) == null || r.reject();
  n.cleanup(e);
}
function TS(e, n) {
  for (let t of n)
    e.hydrating.set(t, Promise.withResolvers());
}
function SS(e) {
  return new Promise((n) => ov(n, { injector: e }));
}
async function kS(e) {
  const { tNode: n, lView: t } = e, r = Oe(t, n);
  return new Promise((o) => {
    xS(r, o), Re(2, t, n);
  });
}
function xS(e, n) {
  Array.isArray(e[ir]) || (e[ir] = []), e[ir].push(n);
}
function se(e, n, t) {
  return e === 0 ? rf(n, t) : e === 2 ? !rf(n, t) : !(typeof ngServerMode < "u" && ngServerMode);
}
function Cv(e) {
  return e != null && (e & 1) === 1;
}
function rf(e, n) {
  const t = e[oe], r = be(e[y], n), o = cg(t), i = Cv(r.flags);
  if (typeof ngServerMode < "u" && ngServerMode)
    return !o || !i;
  const c = Oe(e, n)[jt] !== null;
  return !(i && c && o);
}
function et(e, n) {
  const t = be(e, n);
  return t.hydrateTriggers ?? (t.hydrateTriggers = /* @__PURE__ */ new Map());
}
let of = !1;
function AS(e) {
  of || (of = !0, e.get(Co).log(Xe(-751, "Angular has detected that this application contains `@defer` blocks and the hot module replacement (HMR) mode is enabled. All `@defer` block dependencies will be loaded eagerly.")));
}
function OS(e, n, t, r, o, i, s, c, a, u) {
  var U;
  const l = I(), d = R(), h = e + _, p = Lt(l, d, e, null, 0, 0), g = l[oe];
  if (d.firstCreatePass) {
    hn("NgDefer"), ngDevMode && (typeof ngHmrMode < "u" && ngHmrMode && AS(g), Cv(u) && hb(g));
    const de = {
      primaryTmplIndex: n,
      loadingTmplIndex: r ?? null,
      placeholderTmplIndex: o ?? null,
      errorTmplIndex: i ?? null,
      placeholderBlockConfig: null,
      loadingBlockConfig: null,
      dependencyResolverFn: t ?? null,
      loadingState: te.NOT_STARTED,
      loadingPromise: null,
      providers: null,
      hydrateTriggers: null,
      debug: null,
      flags: u ?? 0
    };
    a == null || a(d, de, c, s), pT(d, h, de);
  }
  const m = l[h];
  let M = null, D = null;
  if (((U = m[$n]) == null ? void 0 : U.length) > 0) {
    const de = m[$n][0].data;
    D = de[Kp] ?? null, M = de[eg];
  }
  const v = [
    null,
    // NEXT_DEFER_BLOCK_STATE
    Ft.Initial,
    // DEFER_BLOCK_STATE
    null,
    // STATE_IS_FROZEN_UNTIL
    null,
    // LOADING_AFTER_CLEANUP_FN
    null,
    // TRIGGER_CLEANUP_FNS
    null,
    // PREFETCH_TRIGGER_CLEANUP_FNS
    D,
    // SSR_UNIQUE_ID
    M,
    // SSR_BLOCK_STATE
    null,
    // ON_COMPLETE_FNS
    null
    // HYDRATE_TRIGGER_CLEANUP_FNS
  ];
  hT(l, h, v);
  let j = null;
  D !== null && (j = g.get(Uo), j.add(D, { lView: l, tNode: p, lContainer: m }));
  const z = () => {
    Xm(v), D !== null && (j == null || j.cleanup([D]));
  };
  Ko(0, v, () => _u(l, z)), As(l, z);
}
function RS(e) {
  const n = I(), t = dn();
  if (ngDevMode && ie(n[y], t, "when <expression>"), !se(0, n, t))
    return;
  const r = Ge();
  if (ne(n, r, e)) {
    const o = N(null);
    try {
      const i = !!e, c = Oe(n, t)[Kn];
      i === !1 && c === Ft.Initial ? Nr(n, t) : i === !0 && (c === Ft.Initial || c === G.Placeholder) && Re(0, n, t);
    } finally {
      N(o);
    }
  }
}
function PS(e) {
  const n = I(), t = dn();
  if (ngDevMode && ie(n[y], t, "prefetch when <expression>"), !se(1, n, t))
    return;
  const r = Ge();
  if (ne(n, r, e)) {
    const o = N(null);
    try {
      const i = !!e, s = n[y], c = dn(), a = be(s, c);
      i === !0 && a.loadingState === te.NOT_STARTED && ni(a, n, c);
    } finally {
      N(o);
    }
  }
}
function NS(e) {
  const n = I(), t = dn();
  if (ngDevMode && ie(n[y], t, "hydrate when <expression>"), !se(2, n, t))
    return;
  const r = Ge(), o = R();
  if (et(o, t).set(6, null), ne(n, r, e))
    if (typeof ngServerMode < "u" && ngServerMode)
      Re(2, n, t);
    else {
      const s = n[oe], c = N(null);
      try {
        if (!!e === !0) {
          const l = Oe(n, t)[jt];
          ngDevMode && Hu(l), wl(s, l);
        }
      } finally {
        N(c);
      }
    }
}
function LS() {
  const e = I(), n = L();
  if (ngDevMode && ie(e[y], n, "hydrate never"), !se(2, e, n))
    return;
  et(R(), n).set(7, null), typeof ngServerMode < "u" && ngServerMode && Re(2, e, n);
}
function FS() {
  const e = I(), n = L();
  ngDevMode && ie(e[y], n, "on idle"), se(0, e, n) && Dv(El);
}
function jS() {
  const e = I(), n = L();
  ngDevMode && ie(e[y], n, "prefetch on idle"), se(1, e, n) && Ev(El);
}
function HS() {
  const e = I(), n = L();
  if (ngDevMode && ie(e[y], n, "hydrate on idle"), !se(2, e, n))
    return;
  et(R(), n).set(0, null), typeof ngServerMode < "u" && ngServerMode ? Re(2, e, n) : bv(El, e, n);
}
function $S() {
  const e = I(), n = L();
  if (ngDevMode && ie(e[y], n, "on immediate"), !se(0, e, n))
    return;
  be(e[y], n).loadingTmplIndex === null && Nr(e, n), Re(0, e, n);
}
function BS() {
  const e = I(), n = L();
  if (ngDevMode && ie(e[y], n, "prefetch on immediate"), !se(1, e, n))
    return;
  const t = e[y], r = be(t, n);
  r.loadingState === te.NOT_STARTED && Cl(r, e, n);
}
function US() {
  const e = I(), n = L();
  if (ngDevMode && ie(e[y], n, "hydrate on immediate"), !se(2, e, n))
    return;
  if (et(R(), n).set(1, null), typeof ngServerMode < "u" && ngServerMode)
    Re(2, e, n);
  else {
    const r = e[oe], i = Oe(e, n)[jt];
    ngDevMode && Hu(i), wl(r, i);
  }
}
function VS(e) {
  const n = I(), t = L();
  ngDevMode && ie(n[y], t, `on timer(${e}ms)`), se(0, n, t) && Dv(bl(e));
}
function WS(e) {
  const n = I(), t = L();
  ngDevMode && ie(n[y], t, `prefetch on timer(${e}ms)`), se(1, n, t) && Ev(bl(e));
}
function zS(e) {
  const n = I(), t = L();
  if (ngDevMode && ie(n[y], t, `hydrate on timer(${e}ms)`), !se(2, n, t))
    return;
  et(R(), t).set(5, { delay: e }), typeof ngServerMode < "u" && ngServerMode ? Re(2, n, t) : bv(bl(e), n, t);
}
function GS(e, n) {
  const t = I(), r = L();
  ngDevMode && ie(t[y], r, `on hover${n === -1 ? "" : "(<target>)"}`), se(0, t, r) && (Nr(t, r), typeof ngServerMode < "u" && ngServerMode || Pr(
    t,
    r,
    e,
    n,
    rg,
    () => Re(0, t, r),
    0
    /* TriggerType.Regular */
  ));
}
function qS(e, n) {
  const t = I(), r = L();
  if (ngDevMode && ie(t[y], r, `prefetch on hover${n === -1 ? "" : "(<target>)"}`), !se(1, t, r))
    return;
  const o = t[y], i = be(o, r);
  i.loadingState === te.NOT_STARTED && Pr(
    t,
    r,
    e,
    n,
    rg,
    () => ni(i, t, r),
    1
    /* TriggerType.Prefetch */
  );
}
function QS() {
  const e = I(), n = L();
  if (ngDevMode && ie(e[y], n, "hydrate on hover"), !se(2, e, n))
    return;
  et(R(), n).set(4, null), typeof ngServerMode < "u" && ngServerMode && Re(2, e, n);
}
function ZS(e, n) {
  const t = I(), r = L();
  ngDevMode && ie(t[y], r, `on interaction${n === -1 ? "" : "(<target>)"}`), se(0, t, r) && (Nr(t, r), typeof ngServerMode < "u" && ngServerMode || Pr(
    t,
    r,
    e,
    n,
    tg,
    () => Re(0, t, r),
    0
    /* TriggerType.Regular */
  ));
}
function YS(e, n) {
  const t = I(), r = L();
  if (ngDevMode && ie(t[y], r, `prefetch on interaction${n === -1 ? "" : "(<target>)"}`), !se(1, t, r))
    return;
  const o = t[y], i = be(o, r);
  i.loadingState === te.NOT_STARTED && Pr(
    t,
    r,
    e,
    n,
    tg,
    () => ni(i, t, r),
    1
    /* TriggerType.Prefetch */
  );
}
function JS() {
  const e = I(), n = L();
  if (ngDevMode && ie(e[y], n, "hydrate on interaction"), !se(2, e, n))
    return;
  et(R(), n).set(3, null), typeof ngServerMode < "u" && ngServerMode && Re(2, e, n);
}
function XS(e, n) {
  const t = I(), r = L();
  ngDevMode && ie(t[y], r, `on viewport${n === -1 ? "" : "(<target>)"}`), se(0, t, r) && (Nr(t, r), typeof ngServerMode < "u" && ngServerMode || Pr(
    t,
    r,
    e,
    n,
    uv,
    () => Re(0, t, r),
    0
    /* TriggerType.Regular */
  ));
}
function KS(e, n) {
  const t = I(), r = L();
  if (ngDevMode && ie(t[y], r, `prefetch on viewport${n === -1 ? "" : "(<target>)"}`), !se(1, t, r))
    return;
  const o = t[y], i = be(o, r);
  i.loadingState === te.NOT_STARTED && Pr(
    t,
    r,
    e,
    n,
    uv,
    () => ni(i, t, r),
    1
    /* TriggerType.Prefetch */
  );
}
function ek() {
  const e = I(), n = L();
  if (ngDevMode && ie(e[y], n, "hydrate on viewport"), !se(2, e, n))
    return;
  et(R(), n).set(2, null), typeof ngServerMode < "u" && ngServerMode && Re(2, e, n);
}
function wv(e, n, t, r) {
  const o = I(), i = Ge();
  if (ne(o, i, n)) {
    const s = R(), c = dn();
    L_(c, o, e, n, t, r), ngDevMode && Zo(s.data, c, "attr." + e, i);
  }
  return wv;
}
/*!
 * @license
 * Copyright Google LLC All Rights Reserved.
 *
 * Use of this source code is governed by an MIT-style license that can be
 * found in the LICENSE file at https://angular.dev/license
 */
function nk() {
  const e = I()[pe][V];
  return ngDevMode && E(e, "Expected component instance to be defined"), e;
}
class tk {
  destroy(n) {
  }
  updateValue(n, t) {
  }
  // operations below could be implemented on top of the operations defined so far, but having
  // them explicitly allow clear expression of intent and potentially more performant
  // implementations
  swap(n, t) {
    const r = Math.min(n, t), o = Math.max(n, t), i = this.detach(o);
    if (o - r > 1) {
      const s = this.detach(r);
      this.attach(r, i), this.attach(o, s);
    } else
      this.attach(r, i);
  }
  move(n, t) {
    this.attach(t, this.detach(n));
  }
}
function Tc(e, n, t, r, o) {
  return e === t && Object.is(n, r) ? 1 : Object.is(o(e, n), o(t, r)) ? -1 : 0;
}
function Sc(e, n, t) {
  const r = e.get(n);
  r !== void 0 ? r.add(t) : e.set(n, /* @__PURE__ */ new Set([t]));
}
function rk(e, n, t) {
  let r, o, i = 0, s = e.length - 1;
  const c = ngDevMode ? /* @__PURE__ */ new Map() : void 0;
  if (Array.isArray(n)) {
    let a = n.length - 1;
    for (; i <= s && i <= a; ) {
      const u = e.at(i), l = n[i];
      ngDevMode && Sc(c, t(i, l), i);
      const d = Tc(i, u, i, l, t);
      if (d !== 0) {
        d < 0 && e.updateValue(i, l), i++;
        continue;
      }
      const h = e.at(s), p = n[a];
      ngDevMode && Sc(c, t(a, p), a);
      const g = Tc(s, h, a, p, t);
      if (g !== 0) {
        g < 0 && e.updateValue(s, p), s--, a--;
        continue;
      }
      const m = t(i, u), M = t(s, h), D = t(i, l);
      if (Object.is(D, M)) {
        const v = t(a, p);
        Object.is(v, m) ? (e.swap(i, s), e.updateValue(s, p), a--, s--) : e.move(s, i), e.updateValue(i, l), i++;
        continue;
      }
      if (r ?? (r = new af()), o ?? (o = cf(e, i, s, t)), Ha(e, r, i, D))
        e.updateValue(i, l), i++, s++;
      else if (o.has(D))
        r.set(m, e.detach(i)), s--;
      else {
        const v = e.create(i, n[i]);
        e.attach(i, v), i++, s++;
      }
    }
    for (; i <= a; )
      sf(e, r, t, i, n[i]), i++;
  } else if (n != null) {
    const a = n[Symbol.iterator]();
    let u = a.next();
    for (; !u.done && i <= s; ) {
      const l = e.at(i), d = u.value;
      ngDevMode && Sc(c, t(i, d), i);
      const h = Tc(i, l, i, d, t);
      if (h !== 0)
        h < 0 && e.updateValue(i, d), i++, u = a.next();
      else {
        r ?? (r = new af()), o ?? (o = cf(e, i, s, t));
        const p = t(i, d);
        if (Ha(e, r, i, p))
          e.updateValue(i, d), i++, s++, u = a.next();
        else if (!o.has(p))
          e.attach(i, e.create(i, d)), i++, s++, u = a.next();
        else {
          const g = t(i, l);
          r.set(g, e.detach(i)), s--;
        }
      }
    }
    for (; !u.done; )
      sf(e, r, t, e.length, u.value), u = a.next();
  }
  for (; i <= s; )
    e.destroy(e.detach(s--));
  if (r == null || r.forEach((a) => {
    e.destroy(a);
  }), ngDevMode) {
    let a = [];
    for (const [u, l] of c)
      if (l.size > 1) {
        const d = [...l].sort((h, p) => h - p);
        for (let h = 1; h < d.length; h++)
          a.push(`key "${P(u)}" at index "${d[h - 1]}" and "${d[h]}"`);
      }
    if (a.length > 0) {
      const u = Xe(-955, `The provided track expression resulted in duplicated keys for a given collection. Adjust the tracking expression such that it uniquely identifies all the items in the collection. Duplicated keys were: 
` + a.join(`, 
`) + ".");
      console.warn(u);
    }
  }
}
function Ha(e, n, t, r) {
  return n !== void 0 && n.has(r) ? (e.attach(t, n.get(r)), n.delete(r), !0) : !1;
}
function sf(e, n, t, r, o) {
  if (Ha(e, n, r, t(r, o)))
    e.updateValue(r, o);
  else {
    const i = e.create(r, o);
    e.attach(r, i);
  }
}
function cf(e, n, t, r) {
  const o = /* @__PURE__ */ new Set();
  for (let i = n; i <= t; i++)
    o.add(r(i, e.at(i)));
  return o;
}
class af {
  constructor() {
    // A map from a key to the first value corresponding to this key.
    f(this, "kvMap", /* @__PURE__ */ new Map());
    // A map that acts as a linked list of values - each value maps to the next value in this "linked
    // list" (this only works if values are unique). Allocated lazily to avoid memory consumption when
    // there are no duplicated values.
    f(this, "_vMap");
  }
  has(n) {
    return this.kvMap.has(n);
  }
  delete(n) {
    if (!this.has(n))
      return !1;
    const t = this.kvMap.get(n);
    return this._vMap !== void 0 && this._vMap.has(t) ? (this.kvMap.set(n, this._vMap.get(t)), this._vMap.delete(t)) : this.kvMap.delete(n), !0;
  }
  get(n) {
    return this.kvMap.get(n);
  }
  set(n, t) {
    if (this.kvMap.has(n)) {
      let r = this.kvMap.get(n);
      if (ngDevMode && r === t)
        throw new Error(`Detected a duplicated value ${t} for the key ${n}`);
      this._vMap === void 0 && (this._vMap = /* @__PURE__ */ new Map());
      const o = this._vMap;
      for (; o.has(r); )
        r = o.get(r);
      o.set(r, t);
    } else
      this.kvMap.set(n, t);
  }
  forEach(n) {
    for (let [t, r] of this.kvMap)
      if (n(r, t), this._vMap !== void 0) {
        const o = this._vMap;
        for (; o.has(r); )
          r = o.get(r), n(r, t);
      }
  }
}
function ok(e, n, t, r, o, i, s, c) {
  hn("NgControlFlow");
  const a = I(), u = R(), l = Ee(u.consts, i);
  return Lt(a, u, e, n, t, r, o, l, 256, s, c), Tl;
}
function Tl(e, n, t, r, o, i, s, c) {
  hn("NgControlFlow");
  const a = I(), u = R(), l = Ee(u.consts, i);
  return Lt(a, u, e, n, t, r, o, l, 512, s, c), Tl;
}
function ik(e, n) {
  hn("NgControlFlow");
  const t = I(), r = Ge(), o = t[r] !== $ ? t[r] : -1, i = o !== -1 ? cs(t, _ + o) : void 0, s = 0;
  if (ne(t, r, e)) {
    const c = N(null);
    try {
      if (i !== void 0 && al(i, s), e !== -1) {
        const a = _ + e, u = cs(t, a), l = $a(t[y], a), d = gm(u, l, t), h = Ar(t, l, n, {
          dehydratedView: d
        });
        Or(u, h, s, Pt(l, d));
      }
    } finally {
      N(c);
    }
  } else if (i !== void 0) {
    const c = tm(i, s);
    c !== void 0 && (c[V] = n);
  }
}
class sk {
  constructor(n, t, r) {
    f(this, "lContainer");
    f(this, "$implicit");
    f(this, "$index");
    this.lContainer = n, this.$implicit = t, this.$index = r;
  }
  get $count() {
    return this.lContainer.length - K;
  }
}
function ck(e) {
  return e;
}
function Tv(e, n) {
  return n;
}
class ak {
  constructor(n, t, r) {
    f(this, "hasEmptyBlock");
    f(this, "trackByFn");
    f(this, "liveCollection");
    this.hasEmptyBlock = n, this.trackByFn = t, this.liveCollection = r;
  }
}
function uk(e, n, t, r, o, i, s, c, a, u, l, d, h) {
  hn("NgControlFlow"), ngDevMode && ph(s, `A track expression must be a function, was ${typeof s} instead.`);
  const p = I(), g = R(), m = a !== void 0, M = I(), D = c ? (
    // We only want to bind when necessary, because it produces a
    // new function. For pure functions it's not necessary.
    s.bind(M[pe][V])
  ) : s, v = new ak(m, D);
  M[_ + e] = v, Lt(
    p,
    g,
    e + 1,
    n,
    t,
    r,
    o,
    Ee(g.consts, i),
    256
    /* TNodeFlags.isControlFlowStart */
  ), m && (ngDevMode && E(u, "Missing number of declarations for the empty repeater block."), ngDevMode && E(l, "Missing number of bindings for the empty repeater block."), Lt(
    p,
    g,
    e + 2,
    a,
    u,
    l,
    d,
    Ee(g.consts, h),
    512
    /* TNodeFlags.isInControlFlow */
  ));
}
function lk(e) {
  return e.length - _ > 2;
}
class dk {
  constructor() {
    f(this, "created", 0);
    f(this, "destroyed", 0);
  }
  reset() {
    this.created = 0, this.destroyed = 0;
  }
  recordCreate() {
    this.created++;
  }
  recordDestroy() {
    this.destroyed++;
  }
  /**
   * A method indicating if the entire collection was re-created as part of the reconciliation pass.
   * Used to warn developers about the usage of a tracking function that might result in excessive
   * amount of view creation / destroy operations.
   *
   * @returns boolean value indicating if a live collection was re-created
   */
  wasReCreated(n) {
    return n > 0 && this.created === this.destroyed && this.created === n;
  }
}
class fk extends tk {
  constructor(t, r, o) {
    super();
    f(this, "lContainer");
    f(this, "hostLView");
    f(this, "templateTNode");
    f(this, "operationsCounter", ngDevMode ? new dk() : void 0);
    /**
      Property indicating if indexes in the repeater context need to be updated following the live
      collection changes. Index updates are necessary if and only if views are inserted / removed in
      the middle of LContainer. Adds and removals at the end don't require index updates.
    */
    f(this, "needsIndexUpdate", !1);
    this.lContainer = t, this.hostLView = r, this.templateTNode = o;
  }
  get length() {
    return this.lContainer.length - K;
  }
  at(t) {
    return this.getLView(t)[V].$implicit;
  }
  attach(t, r) {
    const o = r[wt];
    this.needsIndexUpdate || (this.needsIndexUpdate = t !== this.length), Or(this.lContainer, r, t, Pt(this.templateTNode, o));
  }
  detach(t) {
    return this.needsIndexUpdate || (this.needsIndexUpdate = t !== this.length - 1), pk(this.lContainer, t);
  }
  create(t, r) {
    var s;
    const o = Ki(this.lContainer, this.templateTNode.tView.ssrId), i = Ar(this.hostLView, this.templateTNode, new sk(this.lContainer, r, t), { dehydratedView: o });
    return (s = this.operationsCounter) == null || s.recordCreate(), i;
  }
  destroy(t) {
    var r;
    Qo(t[y], t), (r = this.operationsCounter) == null || r.recordDestroy();
  }
  updateValue(t, r) {
    this.getLView(t)[V].$implicit = r;
  }
  reset() {
    var t;
    this.needsIndexUpdate = !1, (t = this.operationsCounter) == null || t.reset();
  }
  updateIndexes() {
    if (this.needsIndexUpdate)
      for (let t = 0; t < this.length; t++)
        this.getLView(t)[V].$index = t;
  }
  getLView(t) {
    return Sv(this.lContainer, t);
  }
}
function hk(e) {
  var r;
  const n = N(null), t = Ie();
  try {
    const o = I(), i = o[y], s = o[t], c = t + 1, a = cs(o, c);
    if (s.liveCollection === void 0) {
      const l = $a(i, c);
      s.liveCollection = new fk(a, o, l);
    } else
      s.liveCollection.reset();
    const u = s.liveCollection;
    if (rk(u, e, s.trackByFn), ngDevMode && s.trackByFn === Tv && ((r = u.operationsCounter) != null && r.wasReCreated(u.length)) && lk(Sv(a, 0))) {
      const l = Xe(-956, `The configured tracking expression (track by identity) caused re-creation of the entire collection of size ${u.length}. This is an expensive operation requiring destruction and subsequent creation of DOM nodes, directives, components etc. Please review the "track expression" and make sure that it uniquely identifies items in a collection.`);
      console.warn(l);
    }
    if (u.updateIndexes(), s.hasEmptyBlock) {
      const l = Ge(), d = u.length === 0;
      if (ne(o, l, d)) {
        const h = t + 2, p = cs(o, h);
        if (d) {
          const g = $a(i, h), m = gm(p, g, o), M = Ar(o, g, void 0, { dehydratedView: m });
          Or(p, M, 0, Pt(g, m));
        } else
          i.firstUpdatePass && hm(p), al(p, 0);
      }
    }
  } finally {
    N(n);
  }
}
function cs(e, n) {
  const t = e[n];
  return ngDevMode && Ke(t), t;
}
function pk(e, n) {
  const t = Eo(e, n);
  return ngDevMode && ze(t), t;
}
function Sv(e, n) {
  const t = tm(e, n);
  return ngDevMode && ze(t), t;
}
function $a(e, n) {
  const t = Cr(e, n);
  return ngDevMode && Vn(t), t;
}
function kv(e, n, t) {
  const r = I(), o = Ge();
  if (ne(r, o, n)) {
    const i = R(), s = dn();
    tl(s, r, e, n, r[F], t), ngDevMode && Zo(i.data, s, e, o);
  }
  return kv;
}
function Ba(e, n, t, r, o) {
  cl(n, e, t, o ? "class" : "style", r);
}
function Sl(e, n, t, r) {
  const o = I();
  ngDevMode && Po(o, e);
  const i = o[y], s = e + _, c = i.firstCreatePass ? fl(s, o, 2, n, ol, wu(), t, r) : i.data[s];
  if (Vs(c, o, e, n, Ov), Er(c)) {
    const a = o[y];
    Us(a, o, c), $u(a, c, o);
  }
  return r != null && xr(o, c), ngDevMode && o[y].firstCreatePass && Dg(o, c), Sl;
}
function kl() {
  const e = R(), n = L();
  ngDevMode && E(n, "No parent node to close.");
  const t = Ws(n);
  return ngDevMode && le(
    t,
    3
    /* TNodeType.AnyRNode */
  ), e.firstCreatePass && hl(e, t), Kh(t) && ep(), Jh(), t.classesWithoutHost != null && sE(t) && Ba(e, t, I(), t.classesWithoutHost, !0), t.stylesWithoutHost != null && cE(t) && Ba(e, t, I(), t.stylesWithoutHost, !1), kl;
}
function xv(e, n, t, r) {
  return Sl(e, n, t, r), kl(), xv;
}
function xl(e, n, t, r) {
  const o = I();
  ngDevMode && Po(o, e);
  const i = o[y], s = e + _, c = i.firstCreatePass ? Mm(s, i, 2, n, t, r) : i.data[s];
  return Vs(c, o, e, n, Ov), r != null && xr(o, c), ngDevMode && o[y].firstCreatePass && Dg(o, c), xl;
}
function Al() {
  const e = L();
  ngDevMode && E(e, "No parent node to close.");
  const n = Ws(e);
  return ngDevMode && le(
    n,
    3
    /* TNodeType.AnyRNode */
  ), Kh(n) && ep(), Jh(), Al;
}
function Av(e, n, t, r) {
  return xl(e, n, t, r), Al(), Av;
}
let Ov = (e, n, t, r, o) => (jo(!0), qu(n[F], r, kD()));
function Ol(e, n, t) {
  const r = I();
  ngDevMode && Po(r, e);
  const o = r[y], i = e + _, s = o.firstCreatePass ? fl(i, r, 8, "ng-container", ol, wu(), n, t) : o.data[i];
  if (Vs(s, r, e, "ng-container", Lv), Er(s)) {
    const c = r[y];
    Us(c, r, s), $u(c, s, r);
  }
  return t != null && xr(r, s), Ol;
}
function ec() {
  const e = R(), n = L();
  ngDevMode && E(n, "No parent node to close.");
  const t = Ws(n);
  return e.firstCreatePass && hl(e, t), ngDevMode && le(
    t,
    8
    /* TNodeType.ElementContainer */
  ), ec;
}
function Rv(e, n, t) {
  return Ol(e, n, t), ec(), Rv;
}
function Rl(e, n, t) {
  const r = I();
  ngDevMode && Po(r, e);
  const o = r[y], i = e + _, s = o.firstCreatePass ? Mm(i, o, 8, "ng-container", n, t) : o.data[i];
  return Vs(s, r, e, "ng-container", Lv), t != null && xr(r, s), Rl;
}
function Pv() {
  const e = L();
  ngDevMode && E(e, "No parent node to close.");
  const n = Ws(e);
  return ngDevMode && le(
    n,
    8
    /* TNodeType.ElementContainer */
  ), ec;
}
function Nv(e, n, t) {
  return Rl(e, n, t), Pv(), Nv;
}
let Lv = (e, n, t, r, o) => (jo(!0), kg(n[F], ngDevMode ? r : ""));
function gk() {
  return I();
}
function Fv(e, n, t) {
  const r = I(), o = Ge();
  if (ne(r, o, n)) {
    const i = R(), s = dn();
    rl(s, r, e, n, r[F], t), ngDevMode && Zo(i.data, s, e, o);
  }
  return Fv;
}
function jv(e, n, t) {
  const r = I(), o = Ge();
  if (ne(r, o, n)) {
    const i = R(), s = dn(), c = Su(i.data), a = Gg(c, s, r);
    rl(s, r, e, n, a, t), ngDevMode && Zo(i.data, s, e, o);
  }
  return jv;
}
const nt = void 0;
function mk(e) {
  const n = Math.floor(Math.abs(e)), t = e.toString().replace(/^[^.]*\.?/, "").length;
  return n === 1 && t === 0 ? 1 : 5;
}
var vk = ["en", [["a", "p"], ["AM", "PM"], nt], [["AM", "PM"], nt, nt], [["S", "M", "T", "W", "T", "F", "S"], ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"], ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"], ["Su", "Mo", "Tu", "We", "Th", "Fr", "Sa"]], nt, [["J", "F", "M", "A", "M", "J", "J", "A", "S", "O", "N", "D"], ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"], ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"]], nt, [["B", "A"], ["BC", "AD"], ["Before Christ", "Anno Domini"]], 0, [6, 0], ["M/d/yy", "MMM d, y", "MMMM d, y", "EEEE, MMMM d, y"], ["h:mm a", "h:mm:ss a", "h:mm:ss a z", "h:mm:ss a zzzz"], ["{1}, {0}", nt, "{1} 'at' {0}", nt], [".", ",", ";", "%", "+", "-", "E", "×", "‰", "∞", "NaN", ":"], ["#,##0.###", "#,##0%", "¤#,##0.00", "#E0"], "USD", "$", "US Dollar", {}, "ltr", mk];
let kc = {};
function yk(e) {
  const n = Mk(e);
  let t = uf(n);
  if (t)
    return t;
  const r = n.split("-")[0];
  if (t = uf(r), t)
    return t;
  if (r === "en")
    return vk;
  throw new b(701, ngDevMode && `Missing locale data for the locale "${e}".`);
}
function Ik(e) {
  return yk(e)[Ua.PluralCase];
}
function uf(e) {
  return e in kc || (kc[e] = Ce.ng && Ce.ng.common && Ce.ng.common.locales && Ce.ng.common.locales[e]), kc[e];
}
var Ua;
(function(e) {
  e[e.LocaleId = 0] = "LocaleId", e[e.DayPeriodsFormat = 1] = "DayPeriodsFormat", e[e.DayPeriodsStandalone = 2] = "DayPeriodsStandalone", e[e.DaysFormat = 3] = "DaysFormat", e[e.DaysStandalone = 4] = "DaysStandalone", e[e.MonthsFormat = 5] = "MonthsFormat", e[e.MonthsStandalone = 6] = "MonthsStandalone", e[e.Eras = 7] = "Eras", e[e.FirstDayOfWeek = 8] = "FirstDayOfWeek", e[e.WeekendRange = 9] = "WeekendRange", e[e.DateFormat = 10] = "DateFormat", e[e.TimeFormat = 11] = "TimeFormat", e[e.DateTimeFormat = 12] = "DateTimeFormat", e[e.NumberSymbols = 13] = "NumberSymbols", e[e.NumberFormats = 14] = "NumberFormats", e[e.CurrencyCode = 15] = "CurrencyCode", e[e.CurrencySymbol = 16] = "CurrencySymbol", e[e.CurrencyName = 17] = "CurrencyName", e[e.Currencies = 18] = "Currencies", e[e.Directionality = 19] = "Directionality", e[e.PluralCase = 20] = "PluralCase", e[e.ExtraData = 21] = "ExtraData";
})(Ua || (Ua = {}));
function Mk(e) {
  return e.toLowerCase().replace(/_/g, "-");
}
const Dk = ["zero", "one", "two", "few", "many"];
function Ek(e, n) {
  const t = Ik(n)(parseInt(e, 10)), r = Dk[t];
  return r !== void 0 ? r : "other";
}
const as = "en-US", bk = "USD", nc = {
  marker: "element"
}, tc = {
  marker: "ICU"
};
var _e;
(function(e) {
  e[e.SHIFT = 2] = "SHIFT", e[e.APPEND_EAGERLY = 1] = "APPEND_EAGERLY", e[e.COMMENT = 2] = "COMMENT";
})(_e || (_e = {}));
let Hv = as;
function _k(e) {
  ngDevMode && E(e, "Expected localeId to be defined"), typeof e == "string" && (Hv = e.toLowerCase().replace(/_/g, "-"));
}
function Ck() {
  return Hv;
}
let So = 0, Xr = 0;
function wk(e) {
  e && (So = So | 1 << Math.min(Xr, 31)), Xr++;
}
function Tk(e, n, t) {
  if (Xr > 0) {
    ngDevMode && E(e, "tView should be defined");
    const r = e.data[t], o = Array.isArray(r) ? r : r.update, i = Cn() - Xr - 1;
    Bv(e, n, o, i, So);
  }
  So = 0, Xr = 0;
}
function Sk(e, n, t) {
  const r = e[F];
  switch (t) {
    case Node.COMMENT_NODE:
      return kg(r, n);
    case Node.TEXT_NODE:
      return Tg(r, n);
    case Node.ELEMENT_NODE:
      return qu(r, n, null);
  }
}
let Si = (e, n, t, r) => (jo(!0), Sk(e, t, r));
function kk(e, n, t, r) {
  const o = e[F];
  for (let i = 0; i < n.length; i++) {
    const s = n[i++], c = n[i], a = (s & _e.COMMENT) === _e.COMMENT, u = (s & _e.APPEND_EAGERLY) === _e.APPEND_EAGERLY, l = s >>> _e.SHIFT;
    let d = e[l], h = !1;
    d === null && (d = e[l] = Si(e, l, c, a ? Node.COMMENT_NODE : Node.TEXT_NODE), h = Rs()), u && t !== null && h && Rt(o, t, d, r, !1);
  }
}
function $v(e, n, t, r) {
  ngDevMode && mt(r);
  const o = t[F];
  let i = null, s;
  for (let c = 0; c < n.length; c++) {
    const a = n[c];
    if (typeof a == "string") {
      const u = n[++c];
      t[u] === null && (ngDevMode && ue(t, u), t[u] = Si(t, u, a, Node.TEXT_NODE));
    } else if (typeof a == "number")
      switch (a & 1) {
        case 0:
          const u = lm(a);
          i === null && (i = u, s = o.parentNode(r));
          let l, d;
          if (u === i ? (l = r, d = s) : (l = null, d = ve(t[u])), d !== null) {
            ngDevMode && mt(d);
            const m = dm(a);
            ngDevMode && Bt(m, _, "Missing ref");
            const M = t[m];
            ngDevMode && mt(M), Rt(o, d, M, l, !1);
            const D = Zr(e, m);
            if (D !== null && typeof D == "object") {
              ngDevMode && Mu(D);
              const v = qs(D, t);
              v !== null && $v(e, D.create[v], t, t[D.anchorIdx]);
            }
          }
          break;
        case 1:
          const h = a >>> 1, p = n[++c], g = n[++c];
          il(o, _r(h, t), null, null, p, g, null);
          break;
        default:
          if (ngDevMode)
            throw new b(700, `Unable to determine the type of mutate operation for "${a}"`);
      }
    else
      switch (a) {
        case tc:
          const u = n[++c], l = n[++c];
          if (t[l] === null) {
            ngDevMode && T(typeof u, "string", `Expected "${u}" to be a comment node value`), ngDevMode && Wi(t, l);
            const p = t[l] = Si(t, l, u, Node.COMMENT_NODE);
            He(p, t);
          }
          break;
        case nc:
          const d = n[++c], h = n[++c];
          if (t[h] === null) {
            ngDevMode && T(typeof d, "string", `Expected "${d}" to be an element node tag name`), ngDevMode && Wi(t, h);
            const p = t[h] = Si(t, h, d, Node.ELEMENT_NODE);
            He(p, t);
          }
          break;
        default:
          ngDevMode && C(`Unable to determine the type of mutate operation for "${a}"`);
      }
  }
}
function Bv(e, n, t, r, o) {
  for (let i = 0; i < t.length; i++) {
    const s = t[i], c = t[++i];
    if (s & o) {
      let a = "";
      for (let u = i + 1; u <= i + c; u++) {
        const l = t[u];
        if (typeof l == "string")
          a += l;
        else if (typeof l == "number")
          if (l < 0)
            a += O(n[r - l]);
          else {
            const d = l >>> 2;
            switch (l & 3) {
              case 1:
                const h = t[++u], p = t[++u], g = e.data[d];
                ngDevMode && E(g, "Experting TNode or string"), typeof g == "string" ? il(n[F], n[d], null, g, h, a, p) : tl(g, n, h, a, n[F], p);
                break;
              case 0:
                const m = n[d];
                m !== null && Sg(n[F], m, a);
                break;
              case 2:
                xk(e, Zr(e, d), n, a);
                break;
              case 3:
                lf(e, Zr(e, d), r, n);
                break;
            }
          }
      }
    } else {
      const a = t[i + 1];
      if (a > 0 && (a & 3) === 3) {
        const u = a >>> 2, l = Zr(e, u);
        n[l.currentCaseLViewIndex] < 0 && lf(e, l, r, n);
      }
    }
    i += c;
  }
}
function lf(e, n, t, r) {
  ngDevMode && ue(r, n.currentCaseLViewIndex);
  let o = r[n.currentCaseLViewIndex];
  if (o !== null) {
    let i = So;
    o < 0 && (o = r[n.currentCaseLViewIndex] = ~o, i = -1), Bv(e, r, n.update[o], t, i);
  }
}
function xk(e, n, t, r) {
  const o = Ak(n, r);
  if (qs(n, t) !== o && (Uv(e, n, t), t[n.currentCaseLViewIndex] = o === null ? null : ~o, o !== null)) {
    const s = t[n.anchorIdx];
    s && (ngDevMode && mt(s), $v(e, n.create[o], t, s)), n.anchorIdx;
  }
}
function Uv(e, n, t) {
  let r = qs(n, t);
  if (r !== null) {
    const o = n.remove[r];
    for (let i = 0; i < o.length; i++) {
      const s = o[i];
      if (s > 0) {
        const c = _r(s, t);
        c !== null && Go(t[F], c);
      } else
        Uv(e, Zr(e, ~s), t);
    }
  }
}
function Ak(e, n) {
  let t = e.cases.indexOf(n);
  if (t === -1)
    switch (e.type) {
      case 1: {
        const r = Ek(n, Ck());
        t = e.cases.indexOf(r), t === -1 && r !== "other" && (t = e.cases.indexOf("other"));
        break;
      }
      case 0: {
        t = e.cases.indexOf("other");
        break;
      }
    }
  return t === -1 ? null : t;
}
function Ok(e) {
  const n = e || (Array.isArray(this) ? this : []);
  let t = [];
  for (let r = 0; r < n.length; r++) {
    const o = n[r++], i = n[r], s = (o & _e.COMMENT) === _e.COMMENT, c = (o & _e.APPEND_EAGERLY) === _e.APPEND_EAGERLY, a = o >>> _e.SHIFT;
    t.push(`lView[${a}] = document.${s ? "createComment" : "createText"}(${JSON.stringify(i)});`), c && t.push(`parent.appendChild(lView[${a}]);`);
  }
  return t;
}
function rc(e) {
  const n = new Vv(e || (Array.isArray(this) ? this : []));
  let t = [];
  function r(o) {
    const i = o >>> 2;
    switch (o & 3) {
      case 0:
        return `(lView[${i}] as Text).textContent = $$$`;
      case 1:
        const c = n.consumeString(), a = n.consumeFunction(), u = a ? `(${a})($$$)` : "$$$";
        return `(lView[${i}] as Element).setAttribute('${c}', ${u})`;
      case 2:
        return `icuSwitchCase(${i}, $$$)`;
      case 3:
        return `icuUpdateCase(${i})`;
    }
    throw new Error("unexpected OpCode");
  }
  for (; n.hasMore(); ) {
    let o = n.consumeNumber(), i = n.consumeNumber();
    const s = n.i + i, c = [];
    let a = "";
    for (; n.i < s; ) {
      let u = n.consumeNumberOrString();
      if (typeof u == "string")
        a += u;
      else if (u < 0)
        a += "${lView[i" + u + "]}";
      else {
        const l = r(u);
        c.push(l.replace("$$$", "`" + a + "`") + ";"), a = "";
      }
    }
    t.push(`if (mask & 0b${o.toString(2)}) { ${c.join(" ")} }`);
  }
  return t;
}
function Rk(e) {
  const n = new Vv(e || (Array.isArray(this) ? this : []));
  let t = [];
  function r(i) {
    const s = lm(i), c = dm(i);
    switch (wd(i)) {
      case 0:
        return `(lView[${s}] as Element).appendChild(lView[${o}])`;
      case 1:
        return `(lView[${c}] as Element).setAttribute("${n.consumeString()}", "${n.consumeString()}")`;
    }
    throw new Error("Unexpected OpCode: " + wd(i));
  }
  let o = -1;
  for (; n.hasMore(); ) {
    let i = n.consumeNumberStringOrMarker();
    if (i === tc) {
      const s = n.consumeString();
      o = n.consumeNumber(), t.push(`lView[${o}] = document.createComment("${s}")`);
    } else if (i === nc) {
      const s = n.consumeString();
      o = n.consumeNumber(), t.push(`lView[${o}] = document.createElement("${s}")`);
    } else if (typeof i == "string")
      o = n.consumeNumber(), t.push(`lView[${o}] = document.createTextNode("${i}")`);
    else if (typeof i == "number") {
      const s = r(i);
      s && t.push(s);
    } else
      throw new Error("Unexpected value");
  }
  return t;
}
function Pk(e) {
  const n = e || (Array.isArray(this) ? this : []);
  let t = [];
  for (let r = 0; r < n.length; r++) {
    const o = n[r];
    o > 0 ? t.push(`remove(lView[${o}])`) : t.push(`removeNestedICU(${~o})`);
  }
  return t;
}
class Vv {
  constructor(n) {
    f(this, "i", 0);
    f(this, "codes");
    this.codes = n;
  }
  hasMore() {
    return this.i < this.codes.length;
  }
  consumeNumber() {
    let n = this.codes[this.i++];
    return q(n, "expecting number in OpCode"), n;
  }
  consumeString() {
    let n = this.codes[this.i++];
    return yr(n, "expecting string in OpCode"), n;
  }
  consumeFunction() {
    let n = this.codes[this.i++];
    if (n === null || typeof n == "function")
      return n;
    throw new Error("expecting function in OpCode");
  }
  consumeNumberOrString() {
    let n = this.codes[this.i++];
    return typeof n == "string" || q(n, "expecting number or string in OpCode"), n;
  }
  consumeNumberStringOrMarker() {
    let n = this.codes[this.i++];
    return typeof n == "string" || typeof n == "number" || n == tc || n == nc || q(n, "expecting number, string, ICU_MARKER or ELEMENT_MARKER in OpCode"), n;
  }
}
const us = /�(\d+):?\d*�/gi, Nk = /({\s*�\d+:?\d*�\s*,\s*\S{6}\s*,[\s\S]*})/gi, Lk = /�(\d+)�/, Wv = /^\s*(�\d+:?\d*�)\s*,\s*(select|plural)\s*,/, Kr = "�", Fk = /�\/?\*(\d+:\d+)�/gi, jk = /�(\/?[#*]\d+):?\d*�/gi, Hk = /\uE500/g;
function $k(e) {
  return e.replace(Hk, " ");
}
function bt(e, n) {
  if (ngDevMode)
    Object.defineProperty(e, "debug", { get: n, enumerable: !1 });
  else
    throw new Error("This method should be guarded with `ngDevMode` so that it can be tree shaken in production!");
}
function Bk(e, n, t, r, o, i) {
  const s = po(), c = [], a = [], u = [[]], l = [[]];
  ngDevMode && (bt(c, Ok), bt(a, rc)), o = zk(o, i);
  const d = $k(o).split(jk);
  for (let h = 0; h < d.length; h++) {
    let p = d[h];
    if ((h & 1) === 0) {
      const g = Va(p);
      for (let m = 0; m < g.length; m++) {
        let M = g[m];
        if ((m & 1) === 0) {
          const D = M;
          ngDevMode && yr(D, "Parsed ICU part should be string"), D !== "" && Uk(l[0], e, s, u[0], c, a, t, D);
        } else {
          const D = M;
          if (typeof D != "object")
            throw new Error(`Unable to parse ICU expression in "${o}" message.`);
          const j = zv(e, s, u[0], t, c, ngDevMode ? `ICU ${r}:${D.mainBinding}` : "", !0).index;
          ngDevMode && _n(j, _, "Index must be in absolute LView offset"), qv(l[0], e, t, a, n, D, j);
        }
      }
    } else {
      const g = p.charCodeAt(0) === 47, m = p.charCodeAt(g ? 1 : 0);
      ngDevMode && PM(
        m,
        42,
        35
        /* CharCode.HASH */
      );
      const M = _ + Number.parseInt(p.substring(g ? 2 : 1));
      if (g)
        u.shift(), l.shift(), Mn(po(), !1);
      else {
        const D = MC(e, u[0], M);
        u.unshift([]), Mn(D, !0);
        const v = {
          kind: 2,
          index: M,
          children: [],
          type: m === 35 ? 0 : 1
        };
        l[0].push(v), l.unshift(v.children);
      }
    }
  }
  e.data[r] = {
    create: c,
    update: a,
    ast: l[0],
    parentTNodeIndex: n
  };
}
function zv(e, n, t, r, o, i, s) {
  const c = qo(e, r, 1, null);
  let a = c << _e.SHIFT, u = po();
  n === u && (u = null), u === null && (a |= _e.APPEND_EAGERLY), s && (a |= _e.COMMENT, b_(bC)), o.push(a, i === null ? "" : i);
  const l = ll(e, c, s ? 32 : 1, i === null ? ngDevMode ? "{{?}}" : "" : i, null);
  am(t, l);
  const d = l.index;
  return Mn(
    l,
    !1
    /* Text nodes are self closing */
  ), u !== null && n !== u && IC(u, d), l;
}
function Uk(e, n, t, r, o, i, s, c) {
  const a = c.match(us), l = zv(n, t, r, s, o, a ? null : c, !1).index;
  a && eo(i, c, l, null, 0, null), e.push({ kind: 0, index: l });
}
function Vk(e, n, t) {
  const o = L().index, i = [];
  if (ngDevMode && bt(i, rc), e.firstCreatePass && e.data[n] === null) {
    for (let s = 0; s < t.length; s += 2) {
      const c = t[s], a = t[s + 1];
      if (a !== "") {
        if (Nk.test(a))
          throw new Error(`ICU expressions are not supported in attributes. Message: "${a}".`);
        eo(i, a, o, c, Wk(i), null);
      }
    }
    e.data[n] = i;
  }
}
function eo(e, n, t, r, o, i) {
  ngDevMode && _n(t, _, "Index must be in absolute LView offset");
  const s = e.length, c = s + 1;
  e.push(null, null);
  const a = s + 2;
  ngDevMode && bt(e, rc);
  const u = n.split(us);
  let l = 0;
  for (let d = 0; d < u.length; d++) {
    const h = u[d];
    if (d & 1) {
      const p = o + parseInt(h, 10);
      e.push(-1 - p), l = l | Gv(p);
    } else h !== "" && e.push(h);
  }
  return e.push(t << 2 | (r ? 1 : 0)), r && e.push(r, i), e[s] = l, e[c] = e.length - a, l;
}
function Wk(e) {
  let n = 0;
  for (let t = 0; t < e.length; t++) {
    const r = e[t];
    typeof r == "number" && r < 0 && n++;
  }
  return n;
}
function Gv(e) {
  return 1 << Math.min(e, 31);
}
function df(e) {
  let n, t = "", r = 0, o = !1, i;
  for (; (n = Fk.exec(e)) !== null; )
    o ? n[0] === `${Kr}/*${i}${Kr}` && (r = n.index, o = !1) : (t += e.substring(r, n.index + n[0].length), i = n[1], o = !0);
  return ngDevMode && T(o, !1, `Tag mismatch: unable to find the end of the sub-template in the translation "${e}"`), t += e.slice(r), t;
}
function zk(e, n) {
  if (EC(n))
    return df(e);
  {
    const t = e.indexOf(`:${n}${Kr}`) + 2 + n.toString().length, r = e.search(new RegExp(`${Kr}\\/\\*\\d+:${n}${Kr}`));
    return df(e.substring(t, r));
  }
}
function qv(e, n, t, r, o, i, s) {
  ngDevMode && E(i, "ICU expression must be defined");
  let c = 0;
  const a = {
    type: i.type,
    currentCaseLViewIndex: qo(n, t, 1, null),
    anchorIdx: s,
    cases: [],
    create: [],
    remove: [],
    update: []
  };
  Zk(r, i, s), yC(n, s, a);
  const u = i.values, l = [];
  for (let d = 0; d < u.length; d++) {
    const h = u[d], p = [];
    for (let m = 0; m < h.length; m++) {
      const M = h[m];
      if (typeof M != "string") {
        const D = p.push(M) - 1;
        h[m] = `<!--�${D}�-->`;
      }
    }
    const g = [];
    l.push(g), c = qk(g, n, a, t, r, o, i.cases[d], h.join(""), p) | c;
  }
  c && Yk(r, c, s), e.push({
    kind: 3,
    index: s,
    cases: l,
    currentCaseLViewIndex: a.currentCaseLViewIndex
  });
}
function Gk(e) {
  const n = [], t = [];
  let r = 1, o = 0;
  e = e.replace(Wv, function(s, c, a) {
    return a === "select" ? r = 0 : r = 1, o = parseInt(c.slice(1), 10), "";
  });
  const i = Va(e);
  for (let s = 0; s < i.length; ) {
    let c = i[s++].trim();
    r === 1 && (c = c.replace(/\s*(?:=)?(\w+)\s*/, "$1")), c.length && n.push(c);
    const a = Va(i[s++]);
    n.length > t.length && t.push(a);
  }
  return { type: r, mainBinding: o, cases: n, values: t };
}
function Va(e) {
  if (!e)
    return [];
  let n = 0;
  const t = [], r = [], o = /[{}]/g;
  o.lastIndex = 0;
  let i;
  for (; i = o.exec(e); ) {
    const c = i.index;
    if (i[0] == "}") {
      if (t.pop(), t.length == 0) {
        const a = e.substring(n, c);
        Wv.test(a) ? r.push(Gk(a)) : r.push(a), n = c + 1;
      }
    } else {
      if (t.length == 0) {
        const a = e.substring(n, c);
        r.push(a), n = c + 1;
      }
      t.push("{");
    }
  }
  const s = e.substring(n);
  return r.push(s), r;
}
function qk(e, n, t, r, o, i, s, c, a) {
  const u = [], l = [], d = [];
  ngDevMode && (bt(u, Rk), bt(l, Pk), bt(d, rc)), t.cases.push(s), t.create.push(u), t.remove.push(l), t.update.push(d);
  const p = dg(fr()).getInertBodyElement(c);
  ngDevMode && E(p, "Unable to generate inert body element");
  const g = ga(p) || p;
  return g ? Qv(e, n, t, r, o, u, l, d, g, i, a, 0) : 0;
}
function Qv(e, n, t, r, o, i, s, c, a, u, l, d) {
  let h = 0, p = a.firstChild;
  for (; p; ) {
    const g = qo(n, r, 1, null);
    switch (p.nodeType) {
      case Node.ELEMENT_NODE:
        const m = p, M = m.tagName.toLowerCase();
        if (pa.hasOwnProperty(M)) {
          xc(i, nc, M, u, g), n.data[g] = M;
          const z = m.attributes;
          for (let de = 0; de < z.length; de++) {
            const me = z.item(de), Fr = me.name.toLowerCase();
            !!me.value.match(us) ? gg.hasOwnProperty(Fr) ? Vu[Fr] ? eo(c, me.value, g, me.name, 0, Uu) : eo(c, me.value, g, me.name, 0, null) : ngDevMode && console.warn(`WARNING: ignoring unsafe attribute value ${Fr} on element ${M} (see ${vr})`) : Jk(i, g, me);
          }
          const U = {
            kind: 1,
            index: g,
            children: []
          };
          e.push(U), h = Qv(U.children, n, t, r, o, i, s, c, p, g, l, d + 1) | h, ff(s, g, d);
        }
        break;
      case Node.TEXT_NODE:
        const D = p.textContent || "", v = D.match(us);
        xc(i, null, v ? "" : D, u, g), ff(s, g, d), v && (h = eo(c, D, g, null, 0, null) | h), e.push({
          kind: 0,
          index: g
        });
        break;
      case Node.COMMENT_NODE:
        const j = Lk.exec(p.textContent || "");
        if (j) {
          const z = parseInt(j[1], 10), U = l[z];
          xc(i, tc, ngDevMode ? `nested ICU ${z}` : "", u, g), qv(e, n, r, o, u, U, g), Qk(s, g, d);
        }
        break;
    }
    p = p.nextSibling;
  }
  return h;
}
function ff(e, n, t) {
  t === 0 && e.push(n);
}
function Qk(e, n, t) {
  t === 0 && (e.push(~n), e.push(n));
}
function Zk(e, n, t) {
  e.push(
    Gv(n.mainBinding),
    2,
    -1 - n.mainBinding,
    t << 2 | 2
    /* I18nUpdateOpCode.IcuSwitch */
  );
}
function Yk(e, n, t) {
  e.push(
    n,
    1,
    t << 2 | 3
    /* I18nUpdateOpCode.IcuUpdate */
  );
}
function xc(e, n, t, r, o) {
  n !== null && e.push(n), e.push(t, o, DC(0, r, o));
}
function Jk(e, n, t) {
  e.push(n << 1 | 1, t.name, t.value);
}
const hf = 0, Xk = /\[(�.+?�?)\]/, Kk = /\[(�.+?�?)\]|(�\/?\*\d+:\d+�)/g, e0 = /({\s*)(VAR_(PLURAL|SELECT)(_\d+)?)(\s*,)/g, n0 = /{([A-Z0-9_]+)}/g, t0 = /�I18N_EXP_(ICU(_\d+)?)�/g, r0 = /\/\*/, o0 = /\d+\:(\d+)/;
function i0(e, n = {}) {
  let t = e;
  if (Xk.test(e)) {
    const r = {}, o = [hf];
    t = t.replace(Kk, (i, s, c) => {
      const a = s || c, u = r[a] || [];
      if (u.length || (a.split("|").forEach((m) => {
        const M = m.match(o0), D = M ? parseInt(M[1], 10) : hf, v = r0.test(m);
        u.push([D, v, m]);
      }), r[a] = u), !u.length)
        throw new Error(`i18n postprocess: unmatched placeholder - ${a}`);
      const l = o[o.length - 1];
      let d = 0;
      for (let m = 0; m < u.length; m++)
        if (u[m][0] === l) {
          d = m;
          break;
        }
      const [h, p, g] = u[d];
      return p ? o.pop() : l !== h && o.push(h), u.splice(d, 1), g;
    });
  }
  return Object.keys(n).length && (t = t.replace(e0, (r, o, i, s, c, a) => n.hasOwnProperty(i) ? `${o}${n[i]}${a}` : r), t = t.replace(n0, (r, o) => n.hasOwnProperty(o) ? n[o] : r), t = t.replace(t0, (r, o) => {
    if (n.hasOwnProperty(o)) {
      const i = n[o];
      if (!i.length)
        throw new Error(`i18n postprocess: unmatched ICU - ${r} with key: ${o}`);
      return i.shift();
    }
    return r;
  })), t;
}
function Zv(e, n, t = -1) {
  const r = R(), o = I(), i = _ + e;
  ngDevMode && E(r, "tView should be defined");
  const s = Ee(r.consts, n), c = po();
  if (r.firstCreatePass && Bk(r, c === null ? 0 : c.index, o, i, s, t), r.type === 2) {
    const h = o[pe];
    h[A] |= 32;
  } else
    o[A] |= 32;
  const a = r.data[i], u = c === o[ye] ? null : c, l = jg(r, u, o), d = c && c.type & 8 ? o[c.index] : null;
  kk(o, a.create, l, d), cp(!0);
}
function Yv() {
  cp(!1);
}
function s0(e, n, t) {
  Zv(e, n, t), Yv();
}
function c0(e, n) {
  const t = R();
  ngDevMode && E(t, "tView should be defined");
  const r = Ee(t.consts, n);
  Vk(t, e + _, r);
}
function Jv(e) {
  const n = I();
  return wk(ne(n, Ge(), e)), Jv;
}
function a0(e) {
  Tk(R(), I(), e + _);
}
function u0(e, n = {}) {
  return i0(e, n);
}
function Xv(e, n, t) {
  const r = I(), o = R(), i = L();
  return Pl(o, r, r[F], i, e, n, t), Xv;
}
function Kv(e, n) {
  const t = L(), r = I(), o = R(), i = Su(o.data), s = Gg(i, t, r);
  return Pl(o, r, s, t, e, n), Kv;
}
function ey(e, n, t) {
  const r = I(), o = R(), i = L();
  return (i.type & 3 || t) && Em(i, o, r, t, r[F], e, n, _i(i, r, n)), ey;
}
function Pl(e, n, t, r, o, i, s) {
  var u, l;
  ngDevMode && le(
    r,
    15
    /* TNodeType.AnyContainer */
  );
  let c = !0, a = null;
  if ((r.type & 3 || s) && (a ?? (a = _i(r, n, i)), Em(r, e, n, s, t, o, i, a) && (c = !1)), c) {
    const d = (u = r.outputs) == null ? void 0 : u[o], h = (l = r.hostDirectiveOutputs) == null ? void 0 : l[o];
    if (h && h.length)
      for (let p = 0; p < h.length; p += 2) {
        const g = h[p], m = h[p + 1];
        a ?? (a = _i(r, n, i)), Rd(r, n, g, m, o, a);
      }
    if (d && d.length)
      for (const p of d)
        a ?? (a = _i(r, n, i)), Rd(r, n, p, o, o, a);
  }
}
function l0(e = 1) {
  return _D(e);
}
function d0(e, n) {
  let t = null;
  const r = f_(e);
  for (let o = 0; o < n.length; o++) {
    const i = n[o];
    if (i === "*") {
      t = o;
      continue;
    }
    if (r === null ? Cg(
      e,
      i,
      /* isProjectionMode */
      !0
    ) : g_(r, i))
      return o;
  }
  return t;
}
function f0(e) {
  const n = I()[pe][ye];
  if (!n.projection) {
    const t = e ? e.length : 1, r = n.projection = qr(t, null), o = r.slice();
    let i = n.child;
    for (; i !== null; ) {
      if (i.type !== 128) {
        const s = e ? d0(i, e) : 0;
        s !== null && (o[s] ? o[s].projectionNext = i : r[s] = i, o[s] = i);
      }
      i = i.next;
    }
  }
}
function h0(e, n = 0, t, r, o, i) {
  const s = I(), c = R(), a = r ? e + 1 : null;
  a !== null && Lt(s, c, a, r, o, i, null, t);
  const u = Gt(c, _ + e, 16, null, t || null);
  u.projection === null && (u.projection = n), rp();
  const d = !s[wt] || Xh();
  s[pe][ye].projection[u.projection] === null && a !== null ? p0(s, c, a) : d && !ju(u) && w_(c, s, u);
}
function p0(e, n, t) {
  const r = _ + t, o = n.data[r], i = e[r];
  ngDevMode && Vn(o), ngDevMode && Ke(i);
  const s = Ki(i, o.tView.ssrId), c = Ar(e, o, void 0, {
    dehydratedView: s
  });
  Or(i, c, 0, Pt(o, s));
}
function g0(e, n, t, r) {
  Om(e, n, t, r);
}
function m0(e, n, t) {
  Am(e, n, t);
}
function v0(e) {
  const n = I(), t = R(), r = ku();
  Os(r + 1);
  const o = Il(t, r);
  if (e.dirty && Lo(n) === ((o.metadata.flags & 2) === 2)) {
    if (o.matches === null)
      e.reset([]);
    else {
      const i = vw(n, r);
      e.reset(i, SE), e.notifyOnChanges();
    }
    return !0;
  }
  return !1;
}
function y0() {
  return km(I(), ku());
}
function I0(e, n, t, r, o) {
  Pm(n, Om(e, t, r, o));
}
function M0(e, n, t, r) {
  Pm(e, Am(n, t, r));
}
function D0(e = 1) {
  Os(ku() + e);
}
function E0(e) {
  const n = op();
  return Vt(n, _ + e);
}
function pi(e, n) {
  return ngDevMode && fo(
    e,
    0,
    32767
    /* StylingRange.UNSIGNED_MASK */
  ), ngDevMode && fo(
    n,
    0,
    32767
    /* StylingRange.UNSIGNED_MASK */
  ), e << 17 | n << 2;
}
function Ht(e) {
  return ngDevMode && q(e, "expected number"), e >> 17 & 32767;
}
function b0(e) {
  return ngDevMode && q(e, "expected number"), (e & 2) == 2;
}
function _0(e, n) {
  return ngDevMode && q(e, "expected number"), ngDevMode && fo(
    n,
    0,
    32767
    /* StylingRange.UNSIGNED_MASK */
  ), e & 131071 | n << 17;
}
function Wa(e) {
  return ngDevMode && q(e, "expected number"), e | 2;
}
function $t(e) {
  return ngDevMode && q(e, "expected number"), (e & 131068) >> 2;
}
function Ac(e, n) {
  return ngDevMode && q(e, "expected number"), ngDevMode && fo(
    n,
    0,
    32767
    /* StylingRange.UNSIGNED_MASK */
  ), e & -131069 | //
  n << 2;
}
function C0(e) {
  return ngDevMode && q(e, "expected number"), (e & 1) === 1;
}
function za(e) {
  return ngDevMode && q(e, "expected number"), e | 1;
}
function w0(e, n, t, r, o, i) {
  ngDevMode && Du(R());
  let s = i ? n.classBindings : n.styleBindings, c = Ht(s), a = $t(s);
  e[r] = t;
  let u = !1, l;
  if (Array.isArray(t)) {
    const d = t;
    l = d[1], (l === null || Ro(d, l) > 0) && (u = !0);
  } else
    l = t;
  if (o)
    if (a !== 0) {
      const h = Ht(e[c + 1]);
      e[r + 1] = pi(h, c), h !== 0 && (e[h + 1] = Ac(e[h + 1], r)), e[c + 1] = _0(e[c + 1], r);
    } else
      e[r + 1] = pi(c, 0), c !== 0 && (e[c + 1] = Ac(e[c + 1], r)), c = r;
  else
    e[r + 1] = pi(a, 0), ngDevMode && T(c !== 0 && a === 0, !1, "Adding template bindings after hostBindings is not allowed."), c === 0 ? c = r : e[a + 1] = Ac(e[a + 1], r), a = r;
  u && (e[r + 1] = Wa(e[r + 1])), pf(e, l, r, !0), pf(e, l, r, !1), T0(n, l, e, r, i), s = pi(c, a), i ? n.classBindings = s : n.styleBindings = s;
}
function T0(e, n, t, r, o) {
  const i = o ? e.residualClasses : e.residualStyles;
  i != null && typeof n == "string" && Ro(i, n) >= 0 && (t[r + 1] = za(t[r + 1]));
}
function pf(e, n, t, r) {
  const o = e[t + 1], i = n === null;
  let s = r ? Ht(o) : $t(o), c = !1;
  for (; s !== 0 && (c === !1 || i); ) {
    ngDevMode && ue(e, s);
    const a = e[s], u = e[s + 1];
    S0(a, n) && (c = !0, e[s + 1] = r ? za(u) : Wa(u)), s = r ? Ht(u) : $t(u);
  }
  c && (e[t + 1] = r ? Wa(o) : za(o));
}
function S0(e, n) {
  return ngDevMode && Ve(Array.isArray(n), !0, "Expected that 'tStylingKey' has been unwrapped"), e === null || // If the cursor is `null` it means that we have map at that
  // location so we must assume that we have a match.
  n == null || // If `tStylingKey` is `null` then it is a map therefor assume that it
  // contains a match.
  (Array.isArray(e) ? e[1] : e) === n ? !0 : Array.isArray(e) && typeof n == "string" ? Ro(e, n) >= 0 : !1;
}
const he = {
  textEnd: 0,
  key: 0,
  keyEnd: 0,
  value: 0,
  valueEnd: 0
};
function ny(e) {
  return e.substring(he.key, he.keyEnd);
}
function k0(e) {
  return e.substring(he.value, he.valueEnd);
}
function x0(e) {
  return oy(e), ty(e, gr(e, 0, he.textEnd));
}
function ty(e, n) {
  const t = he.textEnd;
  return t === n ? -1 : (n = he.keyEnd = O0(e, he.key = n, t), gr(e, n, t));
}
function A0(e) {
  return oy(e), ry(e, gr(e, 0, he.textEnd));
}
function ry(e, n) {
  const t = he.textEnd;
  let r = he.key = gr(e, n, t);
  return t === r ? -1 : (r = he.keyEnd = R0(e, r, t), r = gf(
    e,
    r,
    t,
    58
    /* CharCode.COLON */
  ), r = he.value = gr(e, r, t), r = he.valueEnd = P0(e, r, t), gf(
    e,
    r,
    t,
    59
    /* CharCode.SEMI_COLON */
  ));
}
function oy(e) {
  he.key = 0, he.keyEnd = 0, he.value = 0, he.valueEnd = 0, he.textEnd = e.length;
}
function gr(e, n, t) {
  for (; n < t && e.charCodeAt(n) <= 32; )
    n++;
  return n;
}
function O0(e, n, t) {
  for (; n < t && e.charCodeAt(n) > 32; )
    n++;
  return n;
}
function R0(e, n, t) {
  let r;
  for (; n < t && ((r = e.charCodeAt(n)) === 45 || r === 95 || (r & -33) >= 65 && (r & -33) <= 90 || r >= 48 && r <= 57); )
    n++;
  return n;
}
function gf(e, n, t, r) {
  return n = gr(e, n, t), n < t && (ngDevMode && e.charCodeAt(n) !== r && iy(e, String.fromCharCode(r), n), n++), n;
}
function P0(e, n, t) {
  let r = -1, o = -1, i = -1, s = n, c = s;
  for (; s < t; ) {
    const a = e.charCodeAt(s++);
    if (a === 59)
      return c;
    a === 34 || a === 39 ? c = s = mf(e, a, s, t) : n === s - 4 && // We have seen only 4 characters so far "URL(" (Ignore "foo_URL()")
    i === 85 && o === 82 && r === 76 && a === 40 ? c = s = mf(e, 41, s, t) : a > 32 && (c = s), i = o, o = r, r = a & -33;
  }
  return c;
}
function mf(e, n, t, r) {
  let o = -1, i = t;
  for (; i < r; ) {
    const s = e.charCodeAt(i++);
    if (s == n && o !== 92)
      return i;
    s == 92 && o === 92 ? o = 0 : o = s;
  }
  throw ngDevMode ? iy(e, String.fromCharCode(n), r) : new Error();
}
function iy(e, n, t) {
  throw ngDevMode && T(typeof e == "string", !0, "String expected here"), C(`Malformed style at location ${t} in string '` + e.substring(0, t) + "[>>" + e.substring(t, t + 1) + "<<]" + e.slice(t + 1) + `'. Expecting '${n}'.`);
}
function sy(e, n, t) {
  return ay(e, n, t, !1), sy;
}
function cy(e, n) {
  return ay(e, n, null, !0), cy;
}
function N0(e) {
  uy(fy, L0, e, !1);
}
function L0(e, n) {
  for (let t = A0(n); t >= 0; t = ry(n, t))
    fy(e, ny(n), k0(n));
}
function F0(e) {
  uy(W0, j0, e, !0);
}
function j0(e, n) {
  for (let t = x0(n); t >= 0; t = ty(n, t))
    Ts(e, ny(n), !0);
}
function ay(e, n, t, r) {
  const o = I(), i = R(), s = wn(2);
  if (i.firstUpdatePass && dy(i, e, s, r), n !== $ && ne(o, s, n)) {
    const c = i.data[Ie()];
    hy(i, c, o, o[F], e, o[s + 1] = G0(n, t), r, s);
  }
}
function uy(e, n, t, r) {
  const o = R(), i = wn(2);
  o.firstUpdatePass && dy(o, null, i, r);
  const s = I();
  if (t !== $ && ne(s, i, t)) {
    const c = o.data[Ie()];
    if (py(c, r) && !ly(o, i)) {
      if (ngDevMode) {
        const u = o.data[i];
        T(Array.isArray(u) ? u[1] : u, !1, "Styling linked list shadow input should be marked as 'false'");
      }
      let a = r ? c.classesWithoutHost : c.stylesWithoutHost;
      ngDevMode && r === !1 && a !== null && T(a.endsWith(";"), !0, "Expecting static portion to end with ';'"), a !== null && (t = Wc(a, t || "")), Ba(o, c, s, t, r);
    } else
      z0(o, c, s, s[F], s[i + 1], s[i + 1] = V0(e, n, t), r, i);
  }
}
function ly(e, n) {
  return n >= e.expandoStartIndex;
}
function dy(e, n, t, r) {
  ngDevMode && Du(e);
  const o = e.data;
  if (o[t + 1] === null) {
    const i = o[Ie()];
    ngDevMode && E(i, "TNode expected");
    const s = ly(e, t);
    py(i, r) && n === null && !s && (n = !1), n = H0(o, i, n, r), w0(o, i, n, t, s, r);
  }
}
function H0(e, n, t, r) {
  const o = Su(e);
  let i = r ? n.residualClasses : n.residualStyles;
  if (o === null)
    (r ? n.classBindings : n.styleBindings) === 0 && (t = Oc(null, e, n, t, r), t = ko(t, n.attrs, r), i = null);
  else {
    const s = n.directiveStylingLast;
    if (s === -1 || e[s] !== o)
      if (t = Oc(o, e, n, t, r), i === null) {
        let a = $0(e, n, r);
        a !== void 0 && Array.isArray(a) && (a = Oc(null, e, n, a[1], r), a = ko(a, n.attrs, r), B0(e, n, r, a));
      } else
        i = U0(e, n, r);
  }
  return i !== void 0 && (r ? n.residualClasses = i : n.residualStyles = i), t;
}
function $0(e, n, t) {
  const r = t ? n.classBindings : n.styleBindings;
  if ($t(r) !== 0)
    return e[Ht(r)];
}
function B0(e, n, t, r) {
  const o = t ? n.classBindings : n.styleBindings;
  ngDevMode && Ve($t(o), 0, "Expecting to have at least one template styling binding."), e[Ht(o)] = r;
}
function U0(e, n, t) {
  let r;
  const o = n.directiveEnd;
  ngDevMode && Ve(n.directiveStylingLast, -1, "By the time this function gets called at least one hostBindings-node styling instruction must have executed.");
  for (let i = 1 + n.directiveStylingLast; i < o; i++) {
    const s = e[i].hostAttrs;
    r = ko(r, s, t);
  }
  return ko(r, n.attrs, t);
}
function Oc(e, n, t, r, o) {
  let i = null;
  const s = t.directiveEnd;
  let c = t.directiveStylingLast;
  for (c === -1 ? c = t.directiveStart : c++; c < s && (i = n[c], ngDevMode && E(i, "expected to be defined"), r = ko(r, i.hostAttrs, o), i !== e); )
    c++;
  return e !== null && (t.directiveStylingLast = c), r;
}
function ko(e, n, t) {
  const r = t ? 1 : 2;
  let o = -1;
  if (n !== null)
    for (let i = 0; i < n.length; i++) {
      const s = n[i];
      typeof s == "number" ? o = s : o === r && (Array.isArray(e) || (e = e === void 0 ? [] : ["", e]), Ts(e, s, t ? !0 : n[++i]));
    }
  return e === void 0 ? null : e;
}
function V0(e, n, t) {
  if (t == null || t === "")
    return B;
  const r = [], o = Xn(t);
  if (Array.isArray(o))
    for (let i = 0; i < o.length; i++)
      e(r, o[i], !0);
  else if (typeof o == "object")
    for (const i in o)
      o.hasOwnProperty(i) && e(r, i, o[i]);
  else typeof o == "string" ? n(r, o) : ngDevMode && C("Unsupported styling type: " + typeof o + " (" + o + ")");
  return r;
}
function fy(e, n, t) {
  Ts(e, n, Xn(t));
}
function W0(e, n, t) {
  const r = String(n);
  r !== "" && !r.includes(" ") && Ts(e, r, t);
}
function z0(e, n, t, r, o, i, s, c) {
  o === $ && (o = B);
  let a = 0, u = 0, l = 0 < o.length ? o[0] : null, d = 0 < i.length ? i[0] : null;
  for (; l !== null || d !== null; ) {
    ngDevMode && gn(a, 999, "Are we stuck in infinite loop?"), ngDevMode && gn(u, 999, "Are we stuck in infinite loop?");
    const h = a < o.length ? o[a + 1] : void 0, p = u < i.length ? i[u + 1] : void 0;
    let g = null, m;
    l === d ? (a += 2, u += 2, h !== p && (g = d, m = p)) : d === null || l !== null && l < d ? (a += 2, g = l) : (ngDevMode && E(d, "Expecting to have a valid key"), u += 2, g = d, m = p), g !== null && hy(e, n, t, r, g, m, s, c), l = a < o.length ? o[a] : null, d = u < i.length ? i[u] : null;
  }
}
function hy(e, n, t, r, o, i, s, c) {
  if (!(n.type & 3))
    return;
  const a = e.data, u = a[c + 1], l = C0(u) ? vf(a, n, t, o, $t(u), s) : void 0;
  if (!ls(l)) {
    ls(i) || b0(u) && (i = vf(a, null, t, o, c, s));
    const d = _r(Ie(), t);
    S_(r, s, d, o, i);
  }
}
function vf(e, n, t, r, o, i) {
  const s = n === null;
  let c;
  for (; o > 0; ) {
    const a = e[o], u = Array.isArray(a), l = u ? a[1] : a, d = l === null;
    let h = t[o + 1];
    h === $ && (h = d ? B : void 0);
    let p = d ? dc(h, r) : l === r ? h : void 0;
    if (u && !ls(p) && (p = dc(a, r)), ls(p) && (c = p, s))
      return c;
    const g = e[o + 1];
    o = s ? Ht(g) : $t(g);
  }
  if (n !== null) {
    let a = i ? n.residualClasses : n.residualStyles;
    a != null && (c = dc(a, r));
  }
  return c;
}
function ls(e) {
  return e !== void 0;
}
function G0(e, n) {
  return e == null || e === "" || (typeof n == "string" ? e = e + n : typeof e == "object" && (e = J(Xn(e)))), e;
}
function py(e, n) {
  return (e.flags & (n ? 8 : 16)) !== 0;
}
function q0(e, n = "") {
  const t = I(), r = R(), o = e + _;
  ngDevMode && Po(t, e);
  const i = r.firstCreatePass ? Gt(r, o, 1, n, null) : r.data[o], s = Q0(r, t, i, n);
  t[o] = s, Rs() && el(r, t, s, i), Mn(i, !1);
}
let Q0 = (e, n, t, r, o) => (jo(!0), Tg(n[F], r));
function gy(e, n) {
  ngDevMode && gn(2, n.length, "should have at least 3 values");
  let t = !1, r = Cn();
  for (let i = 1; i < n.length; i += 2)
    t = ne(e, r++, n[i]) || t;
  if (sp(r), !t)
    return $;
  let o = n[0];
  for (let i = 1; i < n.length; i += 2)
    o += O(n[i]) + (i + 1 !== n.length ? n[i + 1] : "");
  return o;
}
function my(e, n, t, r = "") {
  return ne(e, Ge(), t) ? n + O(t) + r : $;
}
function vy(e, n, t, r, o, i = "") {
  const s = Cn(), c = Nt(e, s, t, o);
  return wn(2), c ? n + O(t) + r + O(o) + i : $;
}
function yy(e, n, t, r, o, i, s, c = "") {
  const a = Cn(), u = Ys(e, a, t, o, s);
  return wn(3), u ? n + O(t) + r + O(o) + i + O(s) + c : $;
}
function Iy(e, n, t, r, o, i, s, c, a, u = "") {
  const l = Cn(), d = Je(e, l, t, o, s, a);
  return wn(4), d ? n + O(t) + r + O(o) + i + O(s) + c + O(a) + u : $;
}
function My(e, n, t, r, o, i, s, c, a, u, l, d = "") {
  const h = Cn();
  let p = Je(e, h, t, o, s, a);
  return p = ne(e, h + 4, l) || p, wn(5), p ? n + O(t) + r + O(o) + i + O(s) + c + O(a) + u + O(l) + d : $;
}
function Dy(e, n, t, r, o, i, s, c, a, u, l, d, h, p = "") {
  const g = Cn();
  let m = Je(e, g, t, o, s, a);
  return m = Nt(e, g + 4, l, h) || m, wn(6), m ? n + O(t) + r + O(o) + i + O(s) + c + O(a) + u + O(l) + d + O(h) + p : $;
}
function Ey(e, n, t, r, o, i, s, c, a, u, l, d, h, p, g, m = "") {
  const M = Cn();
  let D = Je(e, M, t, o, s, a);
  return D = Ys(e, M + 4, l, h, g) || D, wn(7), D ? n + O(t) + r + O(o) + i + O(s) + c + O(a) + u + O(l) + d + O(h) + p + O(g) + m : $;
}
function by(e, n, t, r, o, i, s, c, a, u, l, d, h, p, g, m, M, D = "") {
  const v = Cn();
  let j = Je(e, v, t, o, s, a);
  return j = Je(e, v + 4, l, h, g, M) || j, wn(8), j ? n + O(t) + r + O(o) + i + O(s) + c + O(a) + u + O(l) + d + O(h) + p + O(g) + m + O(M) + D : $;
}
function _y(e) {
  return Nl("", e), _y;
}
function Nl(e, n, t) {
  const r = I(), o = my(r, e, n, t);
  return o !== $ && kn(r, Ie(), o), Nl;
}
function Cy(e, n, t, r, o) {
  const i = I(), s = vy(i, e, n, t, r, o);
  return s !== $ && kn(i, Ie(), s), Cy;
}
function wy(e, n, t, r, o, i, s) {
  const c = I(), a = yy(c, e, n, t, r, o, i, s);
  return a !== $ && kn(c, Ie(), a), wy;
}
function Ty(e, n, t, r, o, i, s, c, a) {
  const u = I(), l = Iy(u, e, n, t, r, o, i, s, c, a);
  return l !== $ && kn(u, Ie(), l), Ty;
}
function Sy(e, n, t, r, o, i, s, c, a, u, l) {
  const d = I(), h = My(d, e, n, t, r, o, i, s, c, a, u, l);
  return h !== $ && kn(d, Ie(), h), Sy;
}
function ky(e, n, t, r, o, i, s, c, a, u, l, d, h) {
  const p = I(), g = Dy(p, e, n, t, r, o, i, s, c, a, u, l, d, h);
  return g !== $ && kn(p, Ie(), g), ky;
}
function xy(e, n, t, r, o, i, s, c, a, u, l, d, h, p, g) {
  const m = I(), M = Ey(m, e, n, t, r, o, i, s, c, a, u, l, d, h, p, g);
  return M !== $ && kn(m, Ie(), M), xy;
}
function Ay(e, n, t, r, o, i, s, c, a, u, l, d, h, p, g, m, M) {
  const D = I(), v = by(D, e, n, t, r, o, i, s, c, a, u, l, d, h, p, g, m, M);
  return v !== $ && kn(D, Ie(), v), Ay;
}
function Oy(e) {
  const n = I(), t = gy(n, e);
  return t !== $ && kn(n, Ie(), t), Oy;
}
function kn(e, n, t) {
  ngDevMode && yr(t, "Value should be a string"), ngDevMode && Ir(t, $, "value should not be NO_CHANGE"), ngDevMode && ue(e, n);
  const r = _r(n, e);
  ngDevMode && E(r, "native element should exist"), Sg(e[F], r, t);
}
/*!
 * @license
 * Copyright Google LLC All Rights Reserved.
 *
 * Use of this source code is governed by an MIT-style license that can be
 * found in the LICENSE file at https://angular.dev/license
 */
function Ry(e, n, t) {
  mp(n) && (n = n());
  const r = I(), o = Ge();
  if (ne(r, o, n)) {
    const i = R(), s = dn();
    tl(s, r, e, n, r[F], t), ngDevMode && Zo(i.data, s, e, o);
  }
  return Ry;
}
function Z0(e, n) {
  const t = mp(e);
  return t && e.set(n), t;
}
function Py(e, n) {
  const t = I(), r = R(), o = L();
  return Pl(r, t, t[F], o, e, n), Py;
}
/*!
 * @license
 * Copyright Google LLC All Rights Reserved.
 *
 * Use of this source code is governed by an MIT-style license that can be
 * found in the LICENSE file at https://angular.dev/license
 */
const Ny = {};
function Ly(e) {
  const n = R(), t = I(), r = e + _, o = Gt(n, r, 128, null, null);
  return Mn(o, !1), Eu(n, t, r, Ny), Ly;
}
function Y0(e) {
  hn("NgLet");
  const n = R(), t = I(), r = Ie();
  return Eu(n, t, r, e), e;
}
function J0(e) {
  const n = op(), t = Vt(n, _ + e);
  if (t === Ny)
    throw new b(314, ngDevMode && "Attempting to access a @let declaration whose value is not available yet");
  return t;
}
/*!
 * @license
 * Copyright Google LLC All Rights Reserved.
 *
 * Use of this source code is governed by an MIT-style license that can be
 * found in the LICENSE file at https://angular.dev/license
 */
function X0(e, n) {
  const t = R(), r = I(), o = r[F], i = "data-ng-source-location";
  for (const [s, c, a, u] of n) {
    const l = Cr(t, s + _);
    ngDevMode && le(
      l,
      2
      /* TNodeType.Element */
    );
    const d = _r(s + _, r);
    if (!d.hasAttribute(i)) {
      const h = `${e}@o:${c},l:${a},c:${u}`;
      o.setAttribute(d, i, h);
    }
  }
}
/*!
 * @license
 * Copyright Google LLC All Rights Reserved.
 *
 * Use of this source code is governed by an MIT-style license that can be
 * found in the LICENSE file at https://angular.dev/license
 */
function K0(e) {
  return ne(I(), Ge(), e) ? O(e) : $;
}
function ex(e, n, t = "") {
  return my(I(), e, n, t);
}
function nx(e, n, t, r, o = "") {
  return vy(I(), e, n, t, r, o);
}
function tx(e, n, t, r, o, i, s = "") {
  return yy(I(), e, n, t, r, o, i, s);
}
function rx(e, n, t, r, o, i, s, c, a = "") {
  return Iy(I(), e, n, t, r, o, i, s, c, a);
}
function ox(e, n, t, r, o, i, s, c, a, u, l = "") {
  return My(I(), e, n, t, r, o, i, s, c, a, u, l);
}
function ix(e, n, t, r, o, i, s, c, a, u, l, d, h = "") {
  return Dy(I(), e, n, t, r, o, i, s, c, a, u, l, d, h);
}
function sx(e, n, t, r, o, i, s, c, a, u, l, d, h, p, g = "") {
  return Ey(I(), e, n, t, r, o, i, s, c, a, u, l, d, h, p, g);
}
function cx(e, n, t, r, o, i, s, c, a, u, l, d, h, p, g, m, M = "") {
  return by(I(), e, n, t, r, o, i, s, c, a, u, l, d, h, p, g, m, M);
}
function ax(e) {
  return gy(I(), e);
}
function ux(e, n, t) {
  const r = R();
  if (r.firstCreatePass) {
    const o = Te(e);
    Ga(t, r.data, r.blueprint, o, !0), Ga(n, r.data, r.blueprint, o, !1);
  }
}
function Ga(e, n, t, r, o) {
  if (e = x(e), Array.isArray(e))
    for (let i = 0; i < e.length; i++)
      Ga(e[i], n, t, r, o);
  else {
    const i = R(), s = I(), c = L();
    let a = vn(e) ? e : x(e.provide);
    const u = Lh(e);
    if (ngDevMode) {
      const p = new Y(c, s);
      zr(p, a, () => {
        qc(e, o);
      });
    }
    const l = c.providerIndexes & 1048575, d = c.directiveStart, h = c.providerIndexes >> 20;
    if (vn(e) || !e.multi) {
      const p = new Tr(u, o, Rr, ngDevMode ? jy(e) : null), g = Pc(a, n, o ? l : l + h, d);
      g === -1 ? (ca(Qi(c, s), i, a), Rc(i, e, n.length), n.push(a), c.directiveStart++, c.directiveEnd++, o && (c.providerIndexes += 1048576), t.push(p), s.push(p)) : (t[g] = p, s[g] = p);
    } else {
      const p = Pc(a, n, l + h, d), g = Pc(a, n, l, l + h), m = p >= 0 && t[p], M = g >= 0 && t[g];
      if (o && !M || !o && !m) {
        ca(Qi(c, s), i, a);
        const D = fx(o ? dx : lx, t.length, o, r, u, e);
        !o && M && (t[g].providerFactory = D), Rc(i, e, n.length, 0), n.push(a), c.directiveStart++, c.directiveEnd++, o && (c.providerIndexes += 1048576), t.push(D), s.push(D);
      } else {
        const D = Fy(t[o ? g : p], u, !o && r);
        Rc(i, e, p > -1 ? p : g, D);
      }
      !o && r && M && t[g].componentProviders++;
    }
  }
}
function Rc(e, n, t, r) {
  const o = vn(n), i = Ph(n);
  if (o || i) {
    const a = (i ? x(n.useClass) : n).prototype.ngOnDestroy;
    if (a) {
      const u = e.destroyHooks || (e.destroyHooks = []);
      if (!o && n.multi) {
        ngDevMode && E(r, "indexInFactory when registering multi factory destroy hook");
        const l = u.indexOf(t);
        l === -1 ? u.push(t, [r, a]) : u[l + 1].push(r, a);
      } else
        u.push(t, a);
    }
  }
}
function Fy(e, n, t) {
  return t && e.componentProviders++, e.multi.push(n) - 1;
}
function Pc(e, n, t, r) {
  for (let o = t; o < r; o++)
    if (n[o] === e)
      return o;
  return -1;
}
function lx(e, n, t, r, o) {
  return qa(this.multi, []);
}
function dx(e, n, t, r, o) {
  const i = this.multi;
  let s;
  if (this.providerFactory) {
    const c = this.providerFactory.componentProviders, a = vo(r, r[y], this.providerFactory.index, o);
    s = a.slice(0, c), qa(i, s);
    for (let u = c; u < a.length; u++)
      s.push(a[u]);
  } else
    s = [], qa(i, s);
  return s;
}
function qa(e, n) {
  for (let t = 0; t < e.length; t++) {
    const r = e[t];
    n.push(r());
  }
  return n;
}
function fx(e, n, t, r, o, i) {
  const s = new Tr(e, t, Rr, ngDevMode ? jy(i) : null);
  return s.multi = [], s.index = n, s.componentProviders = 0, Fy(s, o, r && !t), s;
}
function jy(e) {
  return Array.isArray(e) ? null : vn(e) ? e.name : Ph(e) ? e.provide instanceof w ? `('${e.provide.toString()}':${e.useClass.name})` : e.useClass.name : e.provide instanceof w ? e.provide.toString() : typeof e.provide == "string" ? e.provide : null;
}
function hx(e, n = []) {
  return (t) => {
    t.providersResolver = (r, o) => ux(
      r,
      //
      o ? o(e) : e,
      //
      n
    );
  };
}
function px(e) {
  return (n) => {
    e.length < 1 || (n.getExternalStyles = (t) => e.map((o) => o + "?ngcomp" + (t ? "=" + encodeURIComponent(t) : "") + "&e=" + n.encapsulation));
  };
}
function gx(e, n, t) {
  const r = e.ɵcmp;
  r.directiveDefs = ns(n, Bm), r.pipeDefs = ns(t, je);
}
function mx(e, n) {
  return Tn(() => {
    const t = ks(e);
    t.declarations = gi(n.declarations || B), t.imports = gi(n.imports || B), t.exports = gi(n.exports || B), n.bootstrap && (t.bootstrap = gi(n.bootstrap)), hr.registerNgModule(e, n);
  });
}
function gi(e) {
  if (typeof e == "function")
    return e;
  const n = Fe(e);
  return n.some(bs) ? () => n.map(x).map(yf) : n.map(yf);
}
function yf(e) {
  return dl(e) ? e.ngModule : e;
}
function vx(e, n, t) {
  const r = Ae() + e, o = I();
  return o[r] === $ ? fn(o, r, t ? n.call(t) : n()) : Xo(o, r);
}
function yx(e, n, t, r) {
  return Hy(I(), Ae(), e, n, t, r);
}
function Ix(e, n, t, r, o) {
  return $y(I(), Ae(), e, n, t, r, o);
}
function Mx(e, n, t, r, o, i) {
  return By(I(), Ae(), e, n, t, r, o, i);
}
function Dx(e, n, t, r, o, i, s) {
  return Uy(I(), Ae(), e, n, t, r, o, i, s);
}
function Ex(e, n, t, r, o, i, s, c) {
  const a = Ae() + e, u = I(), l = Je(u, a, t, r, o, i);
  return ne(u, a + 4, s) || l ? fn(u, a + 5, c ? n.call(c, t, r, o, i, s) : n(t, r, o, i, s)) : Xo(u, a + 5);
}
function bx(e, n, t, r, o, i, s, c, a) {
  const u = Ae() + e, l = I(), d = Je(l, u, t, r, o, i);
  return Nt(l, u + 4, s, c) || d ? fn(l, u + 6, a ? n.call(a, t, r, o, i, s, c) : n(t, r, o, i, s, c)) : Xo(l, u + 6);
}
function _x(e, n, t, r, o, i, s, c, a, u) {
  const l = Ae() + e, d = I();
  let h = Je(d, l, t, r, o, i);
  return Ys(d, l + 4, s, c, a) || h ? fn(d, l + 7, u ? n.call(u, t, r, o, i, s, c, a) : n(t, r, o, i, s, c, a)) : Xo(d, l + 7);
}
function Cx(e, n, t, r, o, i, s, c, a, u, l) {
  const d = Ae() + e, h = I(), p = Je(h, d, t, r, o, i);
  return Je(h, d + 4, s, c, a, u) || p ? fn(h, d + 8, l ? n.call(l, t, r, o, i, s, c, a, u) : n(t, r, o, i, s, c, a, u)) : Xo(h, d + 8);
}
function wx(e, n, t, r) {
  return Vy(I(), Ae(), e, n, t, r);
}
function ti(e, n) {
  ngDevMode && ue(e, n);
  const t = e[n];
  return t === $ ? void 0 : t;
}
function Hy(e, n, t, r, o, i) {
  const s = n + t;
  return ne(e, s, o) ? fn(e, s + 1, i ? r.call(i, o) : r(o)) : ti(e, s + 1);
}
function $y(e, n, t, r, o, i, s) {
  const c = n + t;
  return Nt(e, c, o, i) ? fn(e, c + 2, s ? r.call(s, o, i) : r(o, i)) : ti(e, c + 2);
}
function By(e, n, t, r, o, i, s, c) {
  const a = n + t;
  return Ys(e, a, o, i, s) ? fn(e, a + 3, c ? r.call(c, o, i, s) : r(o, i, s)) : ti(e, a + 3);
}
function Uy(e, n, t, r, o, i, s, c, a) {
  const u = n + t;
  return Je(e, u, o, i, s, c) ? fn(e, u + 4, a ? r.call(a, o, i, s, c) : r(o, i, s, c)) : ti(e, u + 4);
}
function Vy(e, n, t, r, o, i) {
  let s = n + t, c = !1;
  for (let a = 0; a < o.length; a++)
    ne(e, s++, o[a]) && (c = !0);
  return c ? fn(e, s, r.apply(i, o)) : ti(e, s);
}
function Tx(e, n) {
  const t = R();
  let r;
  const o = e + _;
  t.firstCreatePass ? (r = Sx(n, t.pipeRegistry), t.data[o] = r, r.onDestroy && (t.destroyHooks ?? (t.destroyHooks = [])).push(o, r.onDestroy)) : r = t.data[o];
  const i = r.factory || (r.factory = Ct(r.type, !0));
  let s;
  ngDevMode && (s = Ne({
    injector: new Y(L(), I()),
    token: r.type
  }));
  const c = Le(Rr);
  try {
    const a = qi(!1), u = i();
    return qi(a), Eu(t, I(), o, u), u;
  } finally {
    Le(c), ngDevMode && Ne(s);
  }
}
function Sx(e, n) {
  if (n) {
    ngDevMode && n.filter((r) => r.name === e).length > 1 && console.warn(Xe(313, kx(e)));
    for (let t = n.length - 1; t >= 0; t--) {
      const r = n[t];
      if (e === r.name)
        return r;
    }
  }
  if (ngDevMode)
    throw new b(-302, xx(e));
}
function kx(e) {
  const n = I(), r = n[pe][V], o = js(n), i = r ? ` in the '${r.constructor.name}' component` : "";
  return `Multiple pipes match the name \`${e}\`${i}. ${`check ${o ? "'@Component.imports' of this component" : "the imports of this module"}`}`;
}
function xx(e) {
  const n = I(), r = n[pe][V], o = js(n), i = r ? ` in the '${r.constructor.name}' component` : "";
  return `The pipe '${e}' could not be found${i}. ${`Verify that it is ${o ? "included in the '@Component.imports' of this component" : "declared or imported in this module"}`}`;
}
function Ax(e, n, t) {
  const r = e + _, o = I(), i = Vt(o, r);
  return ri(o, r) ? Hy(o, Ae(), n, i.transform, t, i) : i.transform(t);
}
function Ox(e, n, t, r) {
  const o = e + _, i = I(), s = Vt(i, o);
  return ri(i, o) ? $y(i, Ae(), n, s.transform, t, r, s) : s.transform(t, r);
}
function Rx(e, n, t, r, o) {
  const i = e + _, s = I(), c = Vt(s, i);
  return ri(s, i) ? By(s, Ae(), n, c.transform, t, r, o, c) : c.transform(t, r, o);
}
function Px(e, n, t, r, o, i) {
  const s = e + _, c = I(), a = Vt(c, s);
  return ri(c, s) ? Uy(c, Ae(), n, a.transform, t, r, o, i, a) : a.transform(t, r, o, i);
}
function Nx(e, n, t) {
  const r = e + _, o = I(), i = Vt(o, r);
  return ri(o, r) ? Vy(o, Ae(), n, i.transform, t, i) : i.transform.apply(i, t);
}
function ri(e, n) {
  return e[y].data[n].pure;
}
function Lx(e, n) {
  return Gs(e, n);
}
function Fx(e, n) {
  return () => {
    try {
      return hr.getComponentDependencies(e, n).dependencies;
    } catch (t) {
      throw console.error(`Computing dependencies in local compilation mode for the component "${e.name}" failed with the exception:`, t), t;
    }
  };
}
function jx(e, n) {
  const t = H(e);
  t !== null && (t.debugInfo = n);
}
/*!
 * @license
 * Copyright Google LLC All Rights Reserved.
 *
 * Use of this source code is governed by an MIT-style license that can be
 * found in the LICENSE file at https://angular.dev/license
 */
function Hx(e, n, t) {
  const r = `./@ng/component?c=${e}&t=${encodeURIComponent(n)}`;
  return new URL(r, t).href;
}
function $x(e, n, t, r, o = null, i = null) {
  ngDevMode && bg(e);
  const s = H(e);
  n.apply(null, [e, t, ...r]);
  const { newDef: c, oldDef: a } = Bx(s, H(e));
  if (e[Mr] = c, a.tView) {
    const u = PE().values();
    for (const l of u)
      Un(l) && l[ae] === null && ki(o, i, c, a, l);
  }
}
function Bx(e, n) {
  const t = { ...e }, r = Object.assign(e, n, {
    // We need to keep the existing directive and pipe defs, because they can get patched on
    // by a call to `setComponentScope` from a module file. That call won't make it into the
    // HMR replacement function, because it lives in an entirely different file.
    directiveDefs: t.directiveDefs,
    pipeDefs: t.pipeDefs,
    // Preserve the old `setInput` function, because it has some state.
    // This is fine, because the component instance is preserved as well.
    setInput: t.setInput,
    // Externally this is redundant since we redeclare the definition using the original type.
    // Internally we may receive a definition with an alternate, but identical, type so we have
    // to ensure that the original one is preserved.
    type: t.type
  });
  return ngDevMode && T(r, e, "Expected definition to be merged in place"), { newDef: r, oldDef: t };
}
function ki(e, n, t, r, o) {
  ngDevMode && E(r.tView, "Expected a component definition that has been instantiated at least once");
  const i = o[y];
  if (i === r.tView) {
    ngDevMode && bg(r.type), Vx(e, n, t, r, o);
    return;
  }
  for (let s = _; s < i.bindingStartIndex; s++) {
    const c = o[s];
    if (ke(c)) {
      re(c[ce]) && ki(e, n, t, r, c[ce]);
      for (let a = K; a < c.length; a++)
        ki(e, n, t, r, c[a]);
    } else re(c) && ki(e, n, t, r, c);
  }
}
function Ux(e, n) {
  var t;
  (t = e.componentReplaced) == null || t.call(e, n.id);
}
function Vx(e, n, t, r, o) {
  const i = o[V];
  let s = o[ce];
  const c = o[ae];
  ngDevMode && ze(c);
  const a = o[ye];
  ngDevMode && le(
    a,
    2
    /* TNodeType.Element */
  ), ngDevMode && Ve(t, r, "Expected different component definition");
  const u = o[oe].get(ee, null), l = () => {
    if (r.encapsulation === zn.ShadowDom) {
      const g = s.cloneNode(!1);
      s.replaceWith(g), s = g;
    }
    const d = Og(t), h = $s(
      c,
      d,
      i,
      Zu(t),
      s,
      a,
      null,
      null,
      // The renderer will be created a bit further down once the old one is destroyed.
      null,
      null,
      null
    );
    Wx(c, o, h, a.index), Qo(o[y], o);
    const p = o[$e].rendererFactory;
    Ux(p, r), h[F] = p.createRenderer(s, t), Pg(o[y], o), zx(a), Yo(d, h, i), Jg(d, h, d.template, i);
  };
  u === null ? If(e, n, l) : u.run(() => If(e, n, l));
}
function If(e, n, t) {
  var r, o;
  try {
    t();
  } catch (i) {
    const s = i;
    if (n !== null && s.message) {
      const c = s.message + (s.stack ? `
` + s.stack : "");
      (o = (r = e == null ? void 0 : e.hot) == null ? void 0 : r.send) == null || o.call(r, "angular:invalidate", { id: n, message: c, error: !0 });
    }
    throw i;
  }
}
function Wx(e, n, t, r) {
  for (let o = _; o < e[y].bindingStartIndex; o++) {
    const i = e[o];
    if ((re(i) || ke(i)) && i[Me] === n) {
      i[Me] = t;
      break;
    }
  }
  e[Tt] === n && (e[Tt] = t), e[Bi] === n && (e[Bi] = t), t[Me] = n[Me], n[Me] = null, e[r] = t;
}
function zx(e) {
  if (e.projection !== null) {
    for (const n of e.projection)
      iE(n) && (n.projectionNext = null, n.flags &= -3);
    e.projection = null;
  }
}
const Fn = {
  ɵɵattribute: wv,
  ɵɵdefineComponent: xw,
  ɵɵdefineDirective: Rw,
  ɵɵdefineInjectable: X,
  ɵɵdefineInjector: cu,
  ɵɵdefineNgModule: Um,
  ɵɵdefinePipe: Pw,
  ɵɵdirectiveInject: Rr,
  ɵɵgetInheritedFactory: yE,
  ɵɵinject: we,
  ɵɵinjectAttribute: jp,
  ɵɵinvalidFactory: NC,
  ɵɵinvalidFactoryDep: wh,
  ɵɵtemplateRefExtractor: Lx,
  ɵɵresetView: ID,
  ɵɵHostDirectivesFeature: Ww,
  ɵɵNgOnChangesFeature: JD,
  ɵɵProvidersFeature: hx,
  ɵɵCopyDefinitionFeature: Vw,
  ɵɵInheritDefinitionFeature: Gm,
  ɵɵExternalStylesFeature: px,
  ɵɵnextContext: l0,
  ɵɵnamespaceHTML: TD,
  ɵɵnamespaceMathML: wD,
  ɵɵnamespaceSVG: CD,
  ɵɵenableBindings: mD,
  ɵɵdisableBindings: vD,
  ɵɵelementStart: Sl,
  ɵɵelementEnd: kl,
  ɵɵelement: xv,
  ɵɵelementContainerStart: Ol,
  ɵɵelementContainerEnd: ec,
  ɵɵdomElement: Av,
  ɵɵdomElementStart: xl,
  ɵɵdomElementEnd: Al,
  ɵɵdomElementContainer: Nv,
  ɵɵdomElementContainerStart: Rl,
  ɵɵdomElementContainerEnd: Pv,
  ɵɵdomTemplate: Ym,
  ɵɵdomListener: ey,
  ɵɵelementContainer: Rv,
  ɵɵpureFunction0: vx,
  ɵɵpureFunction1: yx,
  ɵɵpureFunction2: Ix,
  ɵɵpureFunction3: Mx,
  ɵɵpureFunction4: Dx,
  ɵɵpureFunction5: Ex,
  ɵɵpureFunction6: bx,
  ɵɵpureFunction7: _x,
  ɵɵpureFunction8: Cx,
  ɵɵpureFunctionV: wx,
  ɵɵgetCurrentView: gk,
  ɵɵrestoreView: yD,
  ɵɵlistener: Xv,
  ɵɵprojection: h0,
  ɵɵsyntheticHostProperty: jv,
  ɵɵsyntheticHostListener: Kv,
  ɵɵpipeBind1: Ax,
  ɵɵpipeBind2: Ox,
  ɵɵpipeBind3: Rx,
  ɵɵpipeBind4: Px,
  ɵɵpipeBindV: Nx,
  ɵɵprojectionDef: f0,
  ɵɵdomProperty: Fv,
  ɵɵproperty: kv,
  ɵɵpipe: Tx,
  ɵɵqueryRefresh: v0,
  ɵɵqueryAdvance: D0,
  ɵɵviewQuery: m0,
  ɵɵviewQuerySignal: M0,
  ɵɵloadQuery: y0,
  ɵɵcontentQuery: g0,
  ɵɵcontentQuerySignal: I0,
  ɵɵreference: E0,
  ɵɵclassMap: F0,
  ɵɵstyleMap: N0,
  ɵɵstyleProp: sy,
  ɵɵclassProp: cy,
  ɵɵadvance: E_,
  ɵɵtemplate: Zm,
  ɵɵconditional: ik,
  ɵɵconditionalCreate: ok,
  ɵɵconditionalBranchCreate: Tl,
  ɵɵdefer: OS,
  ɵɵdeferWhen: RS,
  ɵɵdeferOnIdle: FS,
  ɵɵdeferOnImmediate: $S,
  ɵɵdeferOnTimer: VS,
  ɵɵdeferOnHover: GS,
  ɵɵdeferOnInteraction: ZS,
  ɵɵdeferOnViewport: XS,
  ɵɵdeferPrefetchWhen: PS,
  ɵɵdeferPrefetchOnIdle: jS,
  ɵɵdeferPrefetchOnImmediate: BS,
  ɵɵdeferPrefetchOnTimer: WS,
  ɵɵdeferPrefetchOnHover: qS,
  ɵɵdeferPrefetchOnInteraction: YS,
  ɵɵdeferPrefetchOnViewport: KS,
  ɵɵdeferHydrateWhen: NS,
  ɵɵdeferHydrateNever: LS,
  ɵɵdeferHydrateOnIdle: HS,
  ɵɵdeferHydrateOnImmediate: US,
  ɵɵdeferHydrateOnTimer: zS,
  ɵɵdeferHydrateOnHover: QS,
  ɵɵdeferHydrateOnInteraction: JS,
  ɵɵdeferHydrateOnViewport: ek,
  ɵɵdeferEnableTimerScheduling: TT,
  ɵɵrepeater: hk,
  ɵɵrepeaterCreate: uk,
  ɵɵrepeaterTrackByIndex: ck,
  ɵɵrepeaterTrackByIdentity: Tv,
  ɵɵcomponentInstance: nk,
  ɵɵtext: q0,
  ɵɵtextInterpolate: _y,
  ɵɵtextInterpolate1: Nl,
  ɵɵtextInterpolate2: Cy,
  ɵɵtextInterpolate3: wy,
  ɵɵtextInterpolate4: Ty,
  ɵɵtextInterpolate5: Sy,
  ɵɵtextInterpolate6: ky,
  ɵɵtextInterpolate7: xy,
  ɵɵtextInterpolate8: Ay,
  ɵɵtextInterpolateV: Oy,
  ɵɵi18n: s0,
  ɵɵi18nAttributes: c0,
  ɵɵi18nExp: Jv,
  ɵɵi18nStart: Zv,
  ɵɵi18nEnd: Yv,
  ɵɵi18nApply: a0,
  ɵɵi18nPostprocess: u0,
  ɵɵresolveWindow: n_,
  ɵɵresolveDocument: t_,
  ɵɵresolveBody: r_,
  ɵɵsetComponentScope: gx,
  ɵɵsetNgModuleScope: mx,
  ɵɵregisterNgModuleType: Fm,
  ɵɵgetComponentDepsFactory: Fx,
  ɵsetClassDebugInfo: jx,
  ɵɵdeclareLet: Ly,
  ɵɵstoreLet: Y0,
  ɵɵreadContextLet: J0,
  ɵɵattachSourceLocations: X0,
  ɵɵinterpolate: K0,
  ɵɵinterpolate1: ex,
  ɵɵinterpolate2: nx,
  ɵɵinterpolate3: tx,
  ɵɵinterpolate4: rx,
  ɵɵinterpolate5: ox,
  ɵɵinterpolate6: ix,
  ɵɵinterpolate7: sx,
  ɵɵinterpolate8: cx,
  ɵɵinterpolateV: ax,
  ɵɵsanitizeHtml: Nb,
  ɵɵsanitizeStyle: Lb,
  ɵɵsanitizeResourceUrl: yg,
  ɵɵsanitizeScript: Fb,
  ɵɵsanitizeUrl: vg,
  ɵɵsanitizeUrlOrResourceUrl: Bb,
  ɵɵtrustConstantHtml: jb,
  ɵɵtrustConstantResourceUrl: Hb,
  ɵɵvalidateIframeAttribute: ww,
  forwardRef: iu,
  resolveForwardRef: x,
  ɵɵtwoWayProperty: Ry,
  ɵɵtwoWayBindingSet: Z0,
  ɵɵtwoWayListener: Py,
  ɵɵreplaceMetadata: $x,
  ɵɵgetReplaceMetadataURL: Hx
};
let Wr = null;
function Gx(e) {
  if (Wr !== null) {
    if (e.defaultEncapsulation !== Wr.defaultEncapsulation) {
      ngDevMode && console.error("Provided value for `defaultEncapsulation` can not be changed once it has been set.");
      return;
    }
    if (e.preserveWhitespaces !== Wr.preserveWhitespaces) {
      ngDevMode && console.error("Provided value for `preserveWhitespaces` can not be changed once it has been set.");
      return;
    }
  }
  Wr = e;
}
function qx() {
  return Wr;
}
const xi = [];
function Qx(e, n) {
  xi.push({ moduleType: e, ngModule: n });
}
let Nc = !1;
function Zx() {
  if (!Nc) {
    Nc = !0;
    try {
      for (let e = xi.length - 1; e >= 0; e--) {
        const { moduleType: n, ngModule: t } = xi[e];
        t.declarations && t.declarations.every(Wy) && (xi.splice(e, 1), eA(n, t));
      }
    } finally {
      Nc = !1;
    }
  }
}
function Wy(e) {
  return Array.isArray(e) ? e.every(Wy) : !!x(e);
}
function Yx(e, n = {}) {
  Jx(e, n), n.id !== void 0 && Fm(e, n.id), Qx(e, n);
}
function Jx(e, n, t = !1) {
  ngDevMode && E(e, "Required value moduleType"), ngDevMode && E(n, "Required value ngModule");
  const r = Fe(n.declarations || B);
  let o = null;
  Object.defineProperty(e, Ih, {
    configurable: !0,
    get: () => {
      if (o === null) {
        if (ngDevMode && n.imports && n.imports.indexOf(e) > -1)
          throw new Error(`'${P(e)}' module can't import itself`);
        o = qe({
          usage: 0,
          kind: "NgModule",
          type: e
        }).compileNgModule(Fn, `ng:///${e.name}/ɵmod.js`, {
          type: e,
          bootstrap: Fe(n.bootstrap || B).map(x),
          declarations: r.map(x),
          imports: Fe(n.imports || B).map(x).map(Ef),
          exports: Fe(n.exports || B).map(x).map(Ef),
          schemas: n.schemas ? Fe(n.schemas) : null,
          id: n.id || null
        }), o.schemas || (o.schemas = []);
      }
      return o;
    }
  });
  let i = null;
  Object.defineProperty(e, mn, {
    get: () => {
      if (i === null) {
        const c = qe({
          usage: 0,
          kind: "NgModule",
          type: e
        });
        i = c.compileFactory(Fn, `ng:///${e.name}/ɵfac.js`, {
          name: e.name,
          type: e,
          deps: Ls(e),
          target: c.FactoryTarget.NgModule,
          typeArgumentCount: 0
        });
      }
      return i;
    },
    // Make the property configurable in dev mode to allow overriding in tests
    configurable: !!ngDevMode
  });
  let s = null;
  Object.defineProperty(e, zc, {
    get: () => {
      if (s === null) {
        ngDevMode && ds(e, t);
        const c = {
          name: e.name,
          type: e,
          providers: n.providers || B,
          imports: [
            (n.imports || B).map(x),
            (n.exports || B).map(x)
          ]
        };
        s = qe({
          usage: 0,
          kind: "NgModule",
          type: e
        }).compileInjector(Fn, `ng:///${e.name}/ɵinj.js`, c);
      }
      return s;
    },
    // Make the property configurable in dev mode to allow overriding in tests
    configurable: !!ngDevMode
  });
}
function Xx(e, n) {
  const t = `Unexpected "${P(e)}" found in the "declarations" array of the`, r = `"${P(e)}" is marked as standalone and can't be declared in any NgModule - did you intend to import it instead (by adding it to the "imports" array)?`;
  return `${t} ${n}, ${r}`;
}
function ds(e, n, t) {
  if (Df.get(e) || It(e))
    return;
  Df.set(e, !0), e = x(e);
  let r;
  if (t) {
    if (r = ln(e), !r)
      throw new Error(`Unexpected value '${e.name}' imported by the module '${t.name}'. Please add an @NgModule annotation.`);
  } else
    r = ks(e);
  const o = [], i = an(r.declarations), s = an(r.imports);
  Fe(s).map(Mf).forEach((v) => {
    D(v, e), ds(v, !1, e);
  });
  const c = an(r.exports);
  i.forEach(l), i.forEach(d), i.forEach((v) => h(v, e));
  const a = [
    ...i.map(x),
    ...Fe(s.map(zy)).map(x)
  ];
  c.forEach(p), i.forEach((v) => g(v, n));
  const u = Kx(e, "NgModule");
  if (u && (u.imports && Fe(u.imports).map(Mf).forEach((v) => {
    D(v, e), ds(v, !1, e);
  }), u.bootstrap && ar(u.bootstrap, M), u.bootstrap && ar(u.bootstrap, m)), o.length)
    throw new Error(o.join(`
`));
  function l(v) {
    v = x(v), H(v) || fe(v) || je(v) || o.push(`Unexpected value '${P(v)}' declared by the module '${P(e)}'. Please add a @Pipe/@Directive/@Component annotation.`);
  }
  function d(v) {
    v = x(v);
    const j = fe(v);
    !H(v) && j && j.selectors.length == 0 && o.push(`Directive ${P(v)} has no selector, please add it!`);
  }
  function h(v, j) {
    v = x(v);
    const z = H(v) || fe(v) || je(v);
    if (z != null && z.standalone) {
      const U = `"${P(j)}" NgModule`;
      o.push(Xx(v, U));
    }
  }
  function p(v) {
    v = x(v);
    const j = H(v) && "component" || fe(v) && "directive" || je(v) && "pipe";
    j && a.lastIndexOf(v) === -1 && o.push(`Can't export ${j} ${P(v)} from ${P(e)} as it was neither declared nor imported!`);
  }
  function g(v, j) {
    v = x(v);
    const z = Lc.get(v);
    if (z && z !== e) {
      if (!j) {
        const U = [z, e].map(P).sort();
        o.push(`Type ${P(v)} is part of the declarations of 2 modules: ${U[0]} and ${U[1]}! Please consider moving ${P(v)} to a higher module that imports ${U[0]} and ${U[1]}. You can also create a new NgModule that exports and includes ${P(v)} then import that NgModule in ${U[0]} and ${U[1]}.`);
      }
    } else
      Lc.set(v, e);
  }
  function m(v) {
    v = x(v), !Lc.get(v) && !It(v) && o.push(`Component ${P(v)} is not part of any NgModule or the module has not been imported into your module.`);
  }
  function M(v) {
    v = x(v), H(v) || o.push(`${P(v)} cannot be used as an entry component.`), It(v) && o.push(`The \`${P(v)}\` class is a standalone component, which can not be used in the \`@NgModule.bootstrap\` array. Use the \`bootstrapApplication\` function for bootstrap instead.`);
  }
  function D(v, j) {
    v = x(v);
    const z = H(v) || fe(v);
    if (z !== null && !z.standalone)
      throw new Error(`Unexpected directive '${v.name}' imported by the module '${j.name}'. Please add an @NgModule annotation.`);
    const U = je(v);
    if (U !== null && !U.standalone)
      throw new Error(`Unexpected pipe '${v.name}' imported by the module '${j.name}'. Please add an @NgModule annotation.`);
  }
}
function Mf(e) {
  return e = x(e), e.ngModule || e;
}
function Kx(e, n) {
  let t = null;
  return r(e.__annotations__), r(e.decorators), t;
  function r(i) {
    i && i.forEach(o);
  }
  function o(i) {
    t || (Object.getPrototypeOf(i).ngMetadataName == n ? t = i : i.type && Object.getPrototypeOf(i.type).ngMetadataName == n && (t = i.args[0]));
  }
}
let Lc = /* @__PURE__ */ new WeakMap(), Df = /* @__PURE__ */ new WeakMap();
function zy(e) {
  e = x(e);
  const n = ln(e);
  return n === null ? [e] : Fe(an(n.exports).map((t) => ln(t) ? (ds(t, !1), zy(t)) : t));
}
function eA(e, n) {
  const t = Fe(n.declarations || B), r = qy(e);
  t.forEach((o) => {
    if (o = x(o), o.hasOwnProperty(Mr)) {
      const s = H(o);
      Gy(s, r);
    } else !o.hasOwnProperty(uu) && !o.hasOwnProperty(lu) && (o.ngSelectorScope = e);
  });
}
function Gy(e, n) {
  e.directiveDefs = () => Array.from(n.compilation.directives).map((t) => t.hasOwnProperty(Mr) ? H(t) : fe(t)).filter((t) => !!t), e.pipeDefs = () => Array.from(n.compilation.pipes).map((t) => je(t)), e.schemas = n.schemas, e.tView = null;
}
function qy(e) {
  if (qt(e)) {
    const n = hr.getNgModuleScope(e);
    return {
      schemas: ks(e).schemas || null,
      ...n
    };
  } else if (It(e)) {
    if ((H(e) || fe(e)) !== null)
      return {
        schemas: null,
        compilation: {
          directives: /* @__PURE__ */ new Set(),
          pipes: /* @__PURE__ */ new Set()
        },
        exported: {
          directives: /* @__PURE__ */ new Set([e]),
          pipes: /* @__PURE__ */ new Set()
        }
      };
    if (je(e) !== null)
      return {
        schemas: null,
        compilation: {
          directives: /* @__PURE__ */ new Set(),
          pipes: /* @__PURE__ */ new Set()
        },
        exported: {
          directives: /* @__PURE__ */ new Set(),
          pipes: /* @__PURE__ */ new Set([e])
        }
      };
  }
  throw new Error(`${e.name} does not have a module def (ɵmod property)`);
}
function Ef(e) {
  return dl(e) ? e.ngModule : e;
}
let Fc = 0;
function nA(e, n) {
  (typeof ngDevMode > "u" || ngDevMode) && ou();
  let t = null;
  Iw(e, n), Yy(e, n), Object.defineProperty(e, Mr, {
    get: () => {
      if (t === null) {
        const r = qe({
          usage: 0,
          kind: "component",
          type: e
        });
        if (Lm(n)) {
          const l = [`Component '${e.name}' is not resolved:`];
          throw n.templateUrl && l.push(` - templateUrl: ${n.templateUrl}`), n.styleUrls && n.styleUrls.length && l.push(` - styleUrls: ${JSON.stringify(n.styleUrls)}`), n.styleUrl && l.push(` - styleUrl: ${n.styleUrl}`), l.push("Did you run and wait for 'resolveComponentResources()'?"), new Error(l.join(`
`));
        }
        const o = qx();
        let i = n.preserveWhitespaces;
        i === void 0 && (o !== null && o.preserveWhitespaces !== void 0 ? i = o.preserveWhitespaces : i = !1);
        let s = n.encapsulation;
        s === void 0 && (o !== null && o.defaultEncapsulation !== void 0 ? s = o.defaultEncapsulation : s = zn.Emulated);
        const c = n.templateUrl || `ng:///${e.name}/template.html`, a = Jy(e, n), u = {
          ...a,
          typeSourceSpan: r.createParseSourceSpan("Component", e.name, c),
          template: n.template || "",
          preserveWhitespaces: i,
          styles: typeof n.styles == "string" ? [n.styles] : n.styles || B,
          animations: n.animations,
          // JIT components are always compiled against an empty set of `declarations`. Instead, the
          // `directiveDefs` and `pipeDefs` are updated at a later point:
          //  * for NgModule-based components, they're set when the NgModule which declares the
          //    component resolves in the module scoping queue
          //  * for standalone components, they're set just below, after `compileComponent`.
          declarations: [],
          changeDetection: n.changeDetection,
          encapsulation: s,
          interpolation: n.interpolation,
          viewProviders: n.viewProviders || null,
          // We can't inspect whether any of the dependencies are actually directives, because they
          // get patched on after compilation. That's why in JIT mode we consider that any
          // dependency might be a directive dependency.
          hasDirectiveDependencies: !a.isStandalone || n.imports != null && n.imports.length > 0
        };
        Fc++;
        try {
          if (u.usesInheritance && Xy(e), t = r.compileComponent(Fn, c, u), u.isStandalone) {
            const l = Fe(n.imports || B), { directiveDefs: d, pipeDefs: h } = tA(e, l);
            t.directiveDefs = d, t.pipeDefs = h, t.dependencies = () => l.map(x);
          }
        } finally {
          Fc--;
        }
        if (Fc === 0 && Zx(), rA(e)) {
          const l = qy(e.ngSelectorScope);
          Gy(t, l);
        }
        if (n.schemas)
          if (u.isStandalone)
            t.schemas = n.schemas;
          else
            throw new Error(`The 'schemas' was specified for the ${P(e)} but is only valid on a component that is standalone.`);
        else u.isStandalone && (t.schemas = []);
      }
      return t;
    },
    set: (r) => {
      t = r;
    },
    // Make the property configurable in dev mode to allow overriding in tests
    configurable: !!ngDevMode
  });
}
function tA(e, n) {
  return {
    directiveDefs: () => {
      if (ngDevMode)
        for (const i of n)
          _a(i, e);
      return Yr(e) ? [...hr.getStandaloneComponentScope(e, n).compilation.directives].map((i) => H(i) || fe(i)).filter((i) => i !== null) : [];
    },
    pipeDefs: () => {
      if (ngDevMode)
        for (const i of n)
          _a(i, e);
      return Yr(e) ? [...hr.getStandaloneComponentScope(e, n).compilation.pipes].map((i) => je(i)).filter((i) => i !== null) : [];
    }
  };
}
function rA(e) {
  return e.ngSelectorScope !== void 0;
}
function Qy(e, n) {
  let t = null;
  Yy(e, n || {}), Object.defineProperty(e, uu, {
    get: () => {
      if (t === null) {
        const r = Zy(e, n || {});
        t = qe({
          usage: 0,
          kind: "directive",
          type: e
        }).compileDirective(Fn, r.sourceMapUrl, r.metadata);
      }
      return t;
    },
    // Make the property configurable in dev mode to allow overriding in tests
    configurable: !!ngDevMode
  });
}
function Zy(e, n) {
  const t = e && e.name, r = `ng:///${t}/ɵdir.js`, o = qe({ usage: 0, kind: "directive", type: e }), i = Jy(e, n);
  return i.typeSourceSpan = o.createParseSourceSpan("Directive", t, r), i.usesInheritance && Xy(e), { metadata: i, sourceMapUrl: r };
}
function Yy(e, n) {
  let t = null;
  Object.defineProperty(e, mn, {
    get: () => {
      if (t === null) {
        const r = Zy(e, n), o = qe({
          usage: 0,
          kind: "directive",
          type: e
        });
        t = o.compileFactory(Fn, `ng:///${e.name}/ɵfac.js`, {
          name: r.metadata.name,
          type: r.metadata.type,
          typeArgumentCount: 0,
          deps: Ls(e),
          target: o.FactoryTarget.Directive
        });
      }
      return t;
    },
    // Make the property configurable in dev mode to allow overriding in tests
    configurable: !!ngDevMode
  });
}
function oA(e) {
  return Object.getPrototypeOf(e.prototype) === Object.prototype;
}
function Jy(e, n) {
  var o;
  const t = Nu(), r = t.ownPropMetadata(e);
  return {
    name: e.name,
    type: e,
    selector: n.selector !== void 0 ? n.selector : null,
    host: n.host || Qe,
    propMetadata: r,
    inputs: n.inputs || B,
    outputs: n.outputs || B,
    queries: bf(e, r, Ky),
    lifecycle: { usesOnChanges: t.hasLifecycleHook(e, "ngOnChanges") },
    typeSourceSpan: null,
    usesInheritance: !oA(e),
    exportAs: cA(n.exportAs),
    providers: n.providers || null,
    viewQueries: bf(e, r, eI),
    isStandalone: n.standalone === void 0 ? !0 : !!n.standalone,
    isSignal: !!n.signals,
    hostDirectives: ((o = n.hostDirectives) == null ? void 0 : o.map((i) => typeof i == "function" ? { directive: i } : i)) || null
  };
}
function Xy(e) {
  const n = Object.prototype;
  let t = Object.getPrototypeOf(e.prototype).constructor;
  for (; t && t !== n; )
    !fe(t) && !H(t) && uA(t) && Qy(t, null), t = Object.getPrototypeOf(t);
}
function iA(e) {
  return typeof e == "string" ? tI(e) : x(e);
}
function sA(e, n) {
  return {
    propertyName: e,
    predicate: iA(n.selector),
    descendants: n.descendants,
    first: n.first,
    read: n.read ? n.read : null,
    static: !!n.static,
    emitDistinctChangesOnly: !!n.emitDistinctChangesOnly,
    isSignal: !!n.isSignal
  };
}
function bf(e, n, t) {
  const r = [];
  for (const o in n)
    if (n.hasOwnProperty(o)) {
      const i = n[o];
      i.forEach((s) => {
        if (t(s)) {
          if (!s.selector)
            throw new Error(`Can't construct a query for the property "${o}" of "${P(e)}" since the query selector wasn't defined.`);
          if (i.some(nI))
            throw new Error("Cannot combine @Input decorators with query decorators");
          r.push(sA(o, s));
        }
      });
    }
  return r;
}
function cA(e) {
  return e === void 0 ? null : tI(e);
}
function Ky(e) {
  const n = e.ngMetadataName;
  return n === "ContentChild" || n === "ContentChildren";
}
function eI(e) {
  const n = e.ngMetadataName;
  return n === "ViewChild" || n === "ViewChildren";
}
function nI(e) {
  return e.ngMetadataName === "Input";
}
function tI(e) {
  return e.split(",").map((n) => n.trim());
}
const aA = [
  "ngOnChanges",
  "ngOnInit",
  "ngOnDestroy",
  "ngDoCheck",
  "ngAfterViewInit",
  "ngAfterViewChecked",
  "ngAfterContentInit",
  "ngAfterContentChecked"
];
function uA(e) {
  const n = Nu();
  if (aA.some((r) => n.hasLifecycleHook(e, r)))
    return !0;
  const t = n.propMetadata(e);
  for (const r in t) {
    const o = t[r];
    for (let i = 0; i < o.length; i++) {
      const s = o[i], c = s.ngMetadataName;
      if (nI(s) || Ky(s) || eI(s) || c === "Output" || c === "HostBinding" || c === "HostListener")
        return !0;
    }
  }
  return !1;
}
function lA(e, n) {
  let t = null, r = null;
  Object.defineProperty(e, mn, {
    get: () => {
      if (r === null) {
        const o = _f(e, n), i = qe({
          usage: 0,
          kind: "pipe",
          type: o.type
        });
        r = i.compileFactory(Fn, `ng:///${o.name}/ɵfac.js`, {
          name: o.name,
          type: o.type,
          typeArgumentCount: 0,
          deps: Ls(e),
          target: i.FactoryTarget.Pipe
        });
      }
      return r;
    },
    // Make the property configurable in dev mode to allow overriding in tests
    configurable: !!ngDevMode
  }), Object.defineProperty(e, lu, {
    get: () => {
      if (t === null) {
        const o = _f(e, n);
        t = qe({
          usage: 0,
          kind: "pipe",
          type: o.type
        }).compilePipe(Fn, `ng:///${o.name}/ɵpipe.js`, o);
      }
      return t;
    },
    // Make the property configurable in dev mode to allow overriding in tests
    configurable: !!ngDevMode
  });
}
function _f(e, n) {
  return {
    type: e,
    name: e.name,
    pipeName: n.name,
    pure: n.pure !== void 0 ? n.pure : !0,
    isStandalone: n.standalone === void 0 ? !0 : !!n.standalone
  };
}
const dA = $o("Directive", (e = {}) => e, void 0, void 0, (e, n) => Qy(e, n));
$o("Component", (e = {}) => ({ changeDetection: dr.Default, ...e }), dA, void 0, (e, n) => nA(e, n));
$o("Pipe", (e) => ({ pure: !0, ...e }), void 0, void 0, (e, n) => lA(e, n));
Zn("Input", (e) => e ? typeof e == "string" ? { alias: e } : e : {});
Zn("Output", (e) => ({ alias: e }));
Zn("HostBinding", (e) => ({ hostPropertyName: e }));
Zn("HostListener", (e, n) => ({ eventName: e, args: n }));
const fA = $o(
  "NgModule",
  (e) => e,
  void 0,
  void 0,
  /**
   * Decorator that marks the following class as an NgModule, and supplies
   * configuration metadata for it.
   *
   * * The `declarations` option configures the compiler
   * with information about what belongs to the NgModule.
   * * The `providers` options configures the NgModule's injector to provide
   * dependencies the NgModule members.
   * * The `imports` and `exports` options bring in members from other modules, and make
   * this module's members available to others.
   */
  (e, n) => Yx(e, n)
);
class hA {
  constructor(n, t) {
    f(this, "ngModuleFactory");
    f(this, "componentFactories");
    this.ngModuleFactory = n, this.componentFactories = t;
  }
}
const ut = class ut {
  /**
   * Compiles the given NgModule and all of its components. All templates of the components
   * have to be inlined.
   */
  compileModuleSync(n) {
    return new Hm(n);
  }
  /**
   * Compiles the given NgModule and all of its components
   */
  compileModuleAsync(n) {
    return Promise.resolve(this.compileModuleSync(n));
  }
  /**
   * Same as {@link Compiler#compileModuleSync compileModuleSync} but also creates ComponentFactories for all components.
   */
  compileModuleAndAllComponentsSync(n) {
    const t = this.compileModuleSync(n), r = ln(n), o = an(r.declarations).reduce((i, s) => {
      const c = H(s);
      return c && i.push(new pl(c)), i;
    }, []);
    return new hA(t, o);
  }
  /**
   * Same as {@link Compiler#compileModuleAsync compileModuleAsync} but also creates ComponentFactories for all components.
   */
  compileModuleAndAllComponentsAsync(n) {
    return Promise.resolve(this.compileModuleAndAllComponentsSync(n));
  }
  /**
   * Clears all caches.
   */
  clearCache() {
  }
  /**
   * Clears the cache for the given component/ngModule.
   */
  clearCacheFor(n) {
  }
  /**
   * Returns the id for a given NgModule, if one is defined and known to the compiler.
   */
  getModuleId(n) {
  }
};
f(ut, "ɵfac", function(t) {
  return new (t || ut)();
}), f(ut, "ɵprov", /* @__PURE__ */ X({ token: ut, factory: ut.ɵfac, providedIn: "root" }));
let Qa = ut;
(typeof ngDevMode > "u" || ngDevMode) && en(Qa, [{
  type: on,
  args: [{ providedIn: "root" }]
}], null);
const pA = new w(ngDevMode ? "compilerOptions" : ""), lt = class lt {
  constructor() {
    f(this, "zone", S(ee));
    f(this, "changeDetectionScheduler", S(Ho));
    f(this, "applicationRef", S(rn));
    f(this, "applicationErrorHandler", S(Qn));
    f(this, "_onMicrotaskEmptySubscription");
  }
  initialize() {
    this._onMicrotaskEmptySubscription || (this._onMicrotaskEmptySubscription = this.zone.onMicrotaskEmpty.subscribe({
      next: () => {
        this.changeDetectionScheduler.runningTick || this.zone.run(() => {
          try {
            this.applicationRef.dirtyFlags |= 1, this.applicationRef._tick();
          } catch (n) {
            this.applicationErrorHandler(n);
          }
        });
      }
    }));
  }
  ngOnDestroy() {
    var n;
    (n = this._onMicrotaskEmptySubscription) == null || n.unsubscribe();
  }
};
f(lt, "ɵfac", function(t) {
  return new (t || lt)();
}), f(lt, "ɵprov", /* @__PURE__ */ X({ token: lt, factory: lt.ɵfac, providedIn: "root" }));
let fs = lt;
(typeof ngDevMode > "u" || ngDevMode) && en(fs, [{
  type: on,
  args: [{ providedIn: "root" }]
}], null);
const gA = new w(typeof ngDevMode > "u" || ngDevMode ? "provideZoneChangeDetection token" : "", { factory: () => !1 });
function mA({ ngZoneFactory: e, ignoreChangesOutsideZone: n, scheduleInRootZone: t }) {
  return e ?? (e = () => new ee({ ...rI(), scheduleInRootZone: t })), [
    { provide: ee, useFactory: e },
    {
      provide: ur,
      multi: !0,
      useFactory: () => {
        const r = S(fs, {
          optional: !0
        });
        if ((typeof ngDevMode > "u" || ngDevMode) && r === null)
          throw new b(402, "A required Injectable was not found in the dependency injection tree. If you are bootstrapping an NgModule, make sure that the `BrowserModule` is imported.");
        return () => r.initialize();
      }
    },
    {
      provide: ur,
      multi: !0,
      useFactory: () => {
        const r = S(hs);
        return () => {
          r.initialize();
        };
      }
    },
    // Always disable scheduler whenever explicitly disabled, even if another place called
    // `provideZoneChangeDetection` without the 'ignore' option.
    n === !0 ? { provide: yp, useValue: !0 } : [],
    {
      provide: Ip,
      useValue: t ?? ev
    },
    {
      provide: Qn,
      useFactory: () => {
        const r = S(ee), o = S(Ze);
        let i;
        return (s) => {
          r.runOutsideAngular(() => {
            o.destroyed && !i ? setTimeout(() => {
              throw s;
            }) : (i ?? (i = o.get(Ps)), i.handleError(s));
          });
        };
      }
    }
  ];
}
function rI(e) {
  return {
    enableLongStackTrace: typeof ngDevMode > "u" ? !1 : !!ngDevMode,
    shouldCoalesceEventChangeDetection: (e == null ? void 0 : e.eventCoalescing) ?? !1,
    shouldCoalesceRunChangeDetection: (e == null ? void 0 : e.runCoalescing) ?? !1
  };
}
const dt = class dt {
  constructor() {
    f(this, "subscription", new Gn());
    f(this, "initialized", !1);
    f(this, "zone", S(ee));
    f(this, "pendingTasks", S(Dn));
  }
  initialize() {
    if (this.initialized)
      return;
    this.initialized = !0;
    let n = null;
    !this.zone.isStable && !this.zone.hasPendingMacrotasks && !this.zone.hasPendingMicrotasks && (n = this.pendingTasks.add()), this.zone.runOutsideAngular(() => {
      this.subscription.add(this.zone.onStable.subscribe(() => {
        ee.assertNotInAngularZone(), queueMicrotask(() => {
          n !== null && !this.zone.hasPendingMacrotasks && !this.zone.hasPendingMicrotasks && (this.pendingTasks.remove(n), n = null);
        });
      }));
    }), this.subscription.add(this.zone.onUnstable.subscribe(() => {
      ee.assertInAngularZone(), n ?? (n = this.pendingTasks.add());
    }));
  }
  ngOnDestroy() {
    this.subscription.unsubscribe();
  }
};
f(dt, "ɵfac", function(t) {
  return new (t || dt)();
}), f(dt, "ɵprov", /* @__PURE__ */ X({ token: dt, factory: dt.ɵfac, providedIn: "root" }));
let hs = dt;
(typeof ngDevMode > "u" || ngDevMode) && en(hs, [{
  type: on,
  args: [{ providedIn: "root" }]
}], null);
const Cf = 100;
let Ai = 0, Za = [];
function vA() {
  if (Ai++, Cf - Ai < 5) {
    const e = new Error().stack;
    e && Za.push(e);
  }
  if (Ai === Cf)
    throw new b(103, `Angular could not stabilize because there were endless change notifications within the browser event loop. The stack from the last several notifications: 
` + Za.join(`
`));
}
var Nf;
const ft = class ft {
  constructor() {
    f(this, "applicationErrorHandler", S(Qn));
    f(this, "appRef", S(rn));
    f(this, "taskService", S(Dn));
    f(this, "ngZone", S(ee));
    f(this, "zonelessEnabled", S(vp));
    f(this, "tracing", S(Xs, { optional: !0 }));
    f(this, "disableScheduling", S(yp, { optional: !0 }) ?? !1);
    f(this, "zoneIsDefined", typeof Zone < "u" && !!Zone.root.run);
    f(this, "schedulerTickApplyArgs", [{ data: { __scheduler_tick__: !0 } }]);
    f(this, "subscriptions", new Gn());
    f(this, "angularZoneId", this.zoneIsDefined ? (Nf = this.ngZone._inner) == null ? void 0 : Nf.get(os) : null);
    f(this, "scheduleInRootZone", !this.zonelessEnabled && this.zoneIsDefined && (S(Ip, { optional: !0 }) ?? !1));
    f(this, "cancelScheduledCallback", null);
    f(this, "useMicrotaskScheduler", !1);
    f(this, "runningTick", !1);
    f(this, "pendingRenderTaskId", null);
    this.subscriptions.add(this.appRef.afterTick.subscribe(() => {
      this.runningTick || this.cleanup();
    })), this.subscriptions.add(this.ngZone.onUnstable.subscribe(() => {
      this.runningTick || this.cleanup();
    })), this.disableScheduling || (this.disableScheduling = !this.zonelessEnabled && // NoopNgZone without enabling zoneless means no scheduling whatsoever
    (this.ngZone instanceof tv || // The same goes for the lack of Zone without enabling zoneless scheduling
    !this.zoneIsDefined));
  }
  notify(n) {
    var o;
    if (!this.zonelessEnabled && n === 5)
      return;
    let t = !1;
    switch (n) {
      case 0: {
        this.appRef.dirtyFlags |= 2;
        break;
      }
      case 3:
      case 2:
      case 4:
      case 5:
      case 1: {
        this.appRef.dirtyFlags |= 4;
        break;
      }
      case 6: {
        this.appRef.dirtyFlags |= 2, t = !0;
        break;
      }
      case 12: {
        this.appRef.dirtyFlags |= 16, t = !0;
        break;
      }
      case 13: {
        this.appRef.dirtyFlags |= 2, t = !0;
        break;
      }
      case 11: {
        t = !0;
        break;
      }
      case 9:
      case 8:
      case 7:
      case 10:
      default:
        this.appRef.dirtyFlags |= 8;
    }
    if (this.appRef.tracingSnapshot = ((o = this.tracing) == null ? void 0 : o.snapshot(this.appRef.tracingSnapshot)) ?? null, !this.shouldScheduleTick(t))
      return;
    (typeof ngDevMode > "u" || ngDevMode) && (this.useMicrotaskScheduler ? vA() : (Ai = 0, Za.length = 0));
    const r = this.useMicrotaskScheduler ? Bd : nv;
    this.pendingRenderTaskId = this.taskService.add(), this.scheduleInRootZone ? this.cancelScheduledCallback = Zone.root.run(() => r(() => this.tick())) : this.cancelScheduledCallback = this.ngZone.runOutsideAngular(() => r(() => this.tick()));
  }
  shouldScheduleTick(n) {
    return !(this.disableScheduling && !n || this.appRef.destroyed || this.pendingRenderTaskId !== null || this.runningTick || this.appRef._runningTick || !this.zonelessEnabled && this.zoneIsDefined && Zone.current.get(os + this.angularZoneId));
  }
  /**
   * Calls ApplicationRef._tick inside the `NgZone`.
   *
   * Calling `tick` directly runs change detection and cancels any change detection that had been
   * scheduled previously.
   *
   * @param shouldRefreshViews Passed directly to `ApplicationRef._tick` and skips straight to
   *     render hooks when `false`.
   */
  tick() {
    if (this.runningTick || this.appRef.destroyed)
      return;
    if (this.appRef.dirtyFlags === 0) {
      this.cleanup();
      return;
    }
    !this.zonelessEnabled && this.appRef.dirtyFlags & 7 && (this.appRef.dirtyFlags |= 1);
    const n = this.taskService.add();
    try {
      this.ngZone.run(() => {
        this.runningTick = !0, this.appRef._tick();
      }, void 0, this.schedulerTickApplyArgs);
    } catch (t) {
      this.taskService.remove(n), this.applicationErrorHandler(t);
    } finally {
      this.cleanup();
    }
    this.useMicrotaskScheduler = !0, Bd(() => {
      this.useMicrotaskScheduler = !1, this.taskService.remove(n);
    });
  }
  ngOnDestroy() {
    this.subscriptions.unsubscribe(), this.cleanup();
  }
  cleanup() {
    var n;
    if (this.runningTick = !1, (n = this.cancelScheduledCallback) == null || n.call(this), this.cancelScheduledCallback = null, this.pendingRenderTaskId !== null) {
      const t = this.pendingRenderTaskId;
      this.pendingRenderTaskId = null, this.taskService.remove(t);
    }
  }
};
f(ft, "ɵfac", function(t) {
  return new (t || ft)();
}), f(ft, "ɵprov", /* @__PURE__ */ X({ token: ft, factory: ft.ɵfac, providedIn: "root" }));
let ps = ft;
(typeof ngDevMode > "u" || ngDevMode) && en(ps, [{
  type: on,
  args: [{ providedIn: "root" }]
}], () => []);
function yA() {
  return typeof ngI18nClosureMode < "u" && ngI18nClosureMode && typeof goog < "u" && goog.LOCALE !== "en" ? goog.LOCALE : typeof $localize < "u" && $localize.locale || as;
}
const oI = new w(ngDevMode ? "LocaleId" : "", {
  providedIn: "root",
  factory: () => S(oI, { optional: !0, skipSelf: !0 }) || yA()
});
new w(ngDevMode ? "DefaultCurrencyCode" : "", {
  providedIn: "root",
  factory: () => bk
});
new w(ngDevMode ? "Translations" : "");
new w(ngDevMode ? "TranslationsFormat" : "");
var wf;
(function(e) {
  e[e.Error = 0] = "Error", e[e.Warning = 1] = "Warning", e[e.Ignore = 2] = "Ignore";
})(wf || (wf = {}));
/**
 * @license Angular v20.1.6
 * (c) 2010-2025 Google LLC. https://angular.io/
 * License: MIT
 */
function IA(e, n) {
  const t = IM(e);
  return ngDevMode && (t.toString = () => `[Computed: ${t()}]`, t[un].debugName = n == null ? void 0 : n.debugName), t;
}
/**
 * @license Angular v20.1.6
 * (c) 2010-2025 Google LLC. https://angular.io/
 * License: MIT
 */
var Tf;
(function(e) {
  e[e.Directive = 0] = "Directive", e[e.Component = 1] = "Component", e[e.Injectable = 2] = "Injectable", e[e.Pipe = 3] = "Pipe", e[e.NgModule = 4] = "NgModule";
})(Tf || (Tf = {}));
var Sf;
(function(e) {
  e[e.Directive = 0] = "Directive", e[e.Pipe = 1] = "Pipe", e[e.NgModule = 2] = "NgModule";
})(Sf || (Sf = {}));
var kf;
(function(e) {
  e[e.Emulated = 0] = "Emulated", e[e.None = 2] = "None", e[e.ShadowDom = 3] = "ShadowDom";
})(kf || (kf = {}));
const MA = new w(ngDevMode ? "HOST_TAG_NAME" : "");
MA.__NG_ELEMENT_ID__ = (e) => {
  const n = L();
  if (n === null)
    throw new b(204, ngDevMode && "HOST_TAG_NAME can only be injected in directives and components during construction time (in a class constructor or as a class field initializer)");
  if (n.type & 2)
    return n.value;
  if (e & 8)
    return null;
  throw new b(204, ngDevMode && `HOST_TAG_NAME was used on ${DA(n)} which doesn't have an underlying element in the DOM. This is invalid, and so the dependency should be marked as optional.`);
};
function DA(e) {
  return e.type & 8 ? "an <ng-container>" : e.type & 4 ? "an <ng-template>" : e.type & 128 ? "an @let declaration" : "a node";
}
const iI = !0;
class oc {
}
Zn("ContentChildren", (e, n = {}) => ({
  selector: e,
  first: !1,
  isViewQuery: !1,
  descendants: !1,
  emitDistinctChangesOnly: iI,
  ...n
}), oc);
Zn("ContentChild", (e, n = {}) => ({
  selector: e,
  first: !0,
  isViewQuery: !1,
  descendants: !0,
  ...n
}), oc);
Zn("ViewChildren", (e, n = {}) => ({
  selector: e,
  first: !1,
  isViewQuery: !0,
  descendants: !0,
  emitDistinctChangesOnly: iI,
  ...n
}), oc);
Zn("ViewChild", (e, n) => ({
  selector: e,
  first: !0,
  isViewQuery: !0,
  descendants: !0,
  ...n
}), oc);
class EA {
  constructor(n) {
    f(this, "full");
    f(this, "major");
    f(this, "minor");
    f(this, "patch");
    this.full = n;
    const t = n.split(".");
    this.major = t[0], this.minor = t[1], this.patch = t.slice(2).join(".");
  }
}
new EA("20.1.6");
function bA(e, n, t) {
  ngDevMode && cD(t);
  const r = new Hm(t);
  if (typeof ngJitMode < "u" && !ngJitMode)
    return Promise.resolve(r);
  const o = e.get(pA, []).concat(n);
  if (Gx({
    defaultEncapsulation: xf(o.map((u) => u.defaultEncapsulation)),
    preserveWhitespaces: xf(o.map((u) => u.preserveWhitespaces))
  }), Dw())
    return Promise.resolve(r);
  const i = o.flatMap((u) => u.providers ?? []);
  if (i.length === 0)
    return Promise.resolve(r);
  const s = qe({
    usage: 0,
    kind: "NgModule",
    type: t
  }), a = tn.create({ providers: i }).get(s.ResourceLoader);
  return yw((u) => Promise.resolve(a.get(u))).then(() => r);
}
function xf(e) {
  for (let n = e.length - 1; n >= 0; n--)
    if (e[n] !== void 0)
      return e[n];
}
const _A = 200, Af = 1200, ht = class ht {
  constructor() {
    // Map of full image URLs -> original `ngSrc` values.
    f(this, "window", null);
    f(this, "observer", null);
    f(this, "options", S(eb));
    f(this, "lcpImageUrl");
  }
  start() {
    var r, o;
    if (typeof ngServerMode < "u" && ngServerMode || typeof PerformanceObserver > "u" || (r = this.options) != null && r.disableImageSizeWarning && ((o = this.options) != null && o.disableImageLazyLoadWarning))
      return;
    this.observer = this.initPerformanceObserver();
    const n = fr(), t = n.defaultView;
    if (t) {
      this.window = t;
      const i = () => {
        setTimeout(this.scanImages.bind(this), _A);
      }, s = () => {
        var c;
        n.readyState === "complete" ? i() : (c = this.window) == null || c.addEventListener("load", i, { once: !0 });
      };
      typeof Zone < "u" ? Zone.root.run(() => s()) : s();
    }
  }
  ngOnDestroy() {
    var n;
    (n = this.observer) == null || n.disconnect();
  }
  initPerformanceObserver() {
    if (typeof PerformanceObserver > "u")
      return null;
    const n = new PerformanceObserver((t) => {
      var s;
      const r = t.getEntries();
      if (r.length === 0)
        return;
      const i = ((s = r[r.length - 1].element) == null ? void 0 : s.src) ?? "";
      i.startsWith("data:") || i.startsWith("blob:") || (this.lcpImageUrl = i);
    });
    return n.observe({ type: "largest-contentful-paint", buffered: !0 }), n;
  }
  scanImages() {
    var o, i, s;
    const n = fr().querySelectorAll("img");
    let t, r = !1;
    for (let c = 0; c < n.length; c++) {
      const a = n[c];
      a && ((o = this.options) != null && o.disableImageSizeWarning || !a.getAttribute("ng-img") && this.isOversized(a) && wA(a.src), !((i = this.options) != null && i.disableImageLazyLoadWarning) && this.lcpImageUrl && a.src === this.lcpImageUrl && (t = !0, (a.loading !== "lazy" || a.getAttribute("ng-img")) && (r = !0)));
    }
    t && !r && this.lcpImageUrl && !((s = this.options) != null && s.disableImageLazyLoadWarning) && CA(this.lcpImageUrl);
  }
  isOversized(n) {
    if (!this.window)
      return !1;
    const t = [
      // SVG images are vector-based, which means they can scale
      // to any size without losing quality.
      ".svg"
    ], r = (n.src || "").toLowerCase();
    if (t.some((m) => r.endsWith(m)))
      return !1;
    const o = this.window.getComputedStyle(n);
    let i = parseFloat(o.getPropertyValue("width")), s = parseFloat(o.getPropertyValue("height"));
    const c = o.getPropertyValue("box-sizing");
    if (o.getPropertyValue("object-fit") === "cover")
      return !1;
    if (c === "border-box") {
      const m = o.getPropertyValue("padding-top"), M = o.getPropertyValue("padding-right"), D = o.getPropertyValue("padding-bottom"), v = o.getPropertyValue("padding-left");
      i -= parseFloat(M) + parseFloat(v), s -= parseFloat(m) + parseFloat(D);
    }
    const u = n.naturalWidth, l = n.naturalHeight, d = this.window.devicePixelRatio * i, h = this.window.devicePixelRatio * s, p = u - d >= Af, g = l - h >= Af;
    return p || g;
  }
};
f(ht, "ɵfac", function(t) {
  return new (t || ht)();
}), f(ht, "ɵprov", /* @__PURE__ */ X({ token: ht, factory: ht.ɵfac, providedIn: "root" }));
let gs = ht;
(typeof ngDevMode > "u" || ngDevMode) && en(gs, [{
  type: on,
  args: [{ providedIn: "root" }]
}], null);
function CA(e) {
  console.warn(Xe(-913, `An image with src ${e} is the Largest Contentful Paint (LCP) element but was given a "loading" value of "lazy", which can negatively impact application loading performance. This warning can be addressed by changing the loading value of the LCP image to "eager", or by using the NgOptimizedImage directive's prioritization utilities. For more information about addressing or disabling this warning, see https://angular.dev/errors/NG0913`));
}
function wA(e) {
  console.warn(Xe(-913, `An image with src ${e} has intrinsic file dimensions much larger than its rendered size. This can negatively impact application loading performance. For more information about addressing or disabling this warning, see https://angular.dev/errors/NG0913`));
}
const ms = new w(ngDevMode ? "PlatformDestroyListeners" : ""), TA = new w(ngDevMode ? "ENABLE_ROOT_COMPONENT_BOOTSTRAP" : "");
function Hr(e) {
  return !e.moduleRef;
}
function SA(e) {
  const n = Hr(e) ? e.r3Injector : e.moduleRef.injector, t = n.get(ee);
  return t.run(() => {
    Hr(e) ? e.r3Injector.resolveInjectorInitializers() : e.moduleRef.resolveInjectorInitializers();
    const r = n.get(Qn);
    if ((typeof ngDevMode > "u" || ngDevMode) && n.get(ND) && n.get(gA))
      throw new b(408, "Invalid change detection configuration: provideZoneChangeDetection and provideZonelessChangeDetection cannot be used together.");
    let o;
    if (t.runOutsideAngular(() => {
      o = t.onError.subscribe({
        next: r
      });
    }), Hr(e)) {
      const i = () => n.destroy(), s = e.platformInjector.get(ms);
      s.add(i), n.onDestroy(() => {
        o.unsubscribe(), s.delete(i);
      });
    } else {
      const i = () => e.moduleRef.destroy(), s = e.platformInjector.get(ms);
      s.add(i), e.moduleRef.onDestroy(() => {
        Ti(e.allPlatformModules, e.moduleRef), o.unsubscribe(), s.delete(i);
      });
    }
    return xA(r, t, () => {
      const i = n.get(Dn), s = i.add(), c = n.get(To);
      return c.runInitializers(), c.donePromise.then(() => {
        const a = n.get(oI, as);
        if (_k(a || as), !n.get(TA, !0))
          return Hr(e) ? n.get(rn) : (e.allPlatformModules.push(e.moduleRef), e.moduleRef);
        if ((typeof ngDevMode > "u" || ngDevMode) && n.get(gs).start(), Hr(e)) {
          const l = n.get(rn);
          return e.rootComponent !== void 0 && l.bootstrap(e.rootComponent), l;
        } else
          return Oi == null || Oi(e.moduleRef, e.allPlatformModules), e.moduleRef;
      }).finally(() => void i.remove(s));
    });
  });
}
let Oi;
function Of() {
  Oi = kA;
}
function kA(e, n) {
  const t = e.injector.get(rn);
  if (e._bootstrapComponents.length > 0)
    e._bootstrapComponents.forEach((r) => t.bootstrap(r));
  else if (e.instance.ngDoBootstrap)
    e.instance.ngDoBootstrap(t);
  else
    throw new b(-403, ngDevMode && `The module ${J(e.instance.constructor)} was bootstrapped, but it does not declare "@NgModule.bootstrap" components nor a "ngDoBootstrap" method. Please define one of these.`);
  n.push(e);
}
function xA(e, n, t) {
  try {
    const r = t();
    return Iv(r) ? r.catch((o) => {
      throw n.runOutsideAngular(() => e(o)), o;
    }) : r;
  } catch (r) {
    throw n.runOutsideAngular(() => e(r)), r;
  }
}
const pt = class pt {
  /** @internal */
  constructor(n) {
    f(this, "_injector");
    f(this, "_modules", []);
    f(this, "_destroyListeners", []);
    f(this, "_destroyed", !1);
    this._injector = n;
  }
  /**
   * Creates an instance of an `@NgModule` for the given platform.
   *
   * @deprecated Passing NgModule factories as the `PlatformRef.bootstrapModuleFactory` function
   *     argument is deprecated. Use the `PlatformRef.bootstrapModule` API instead.
   */
  bootstrapModuleFactory(n, t) {
    const r = t == null ? void 0 : t.scheduleInRootZone, o = () => uT(t == null ? void 0 : t.ngZone, {
      ...rI({
        eventCoalescing: t == null ? void 0 : t.ngZoneEventCoalescing,
        runCoalescing: t == null ? void 0 : t.ngZoneRunCoalescing
      }),
      scheduleInRootZone: r
    }), i = t == null ? void 0 : t.ignoreChangesOutsideZone, s = [
      mA({
        ngZoneFactory: o,
        ignoreChangesOutsideZone: i
      }),
      { provide: Ho, useExisting: ps },
      RD
    ], c = Sw(n.moduleType, this.injector, s);
    return Of(), SA({
      moduleRef: c,
      allPlatformModules: this._modules,
      platformInjector: this.injector
    });
  }
  /**
   * Creates an instance of an `@NgModule` for a given platform.
   *
   * @usageNotes
   * ### Simple Example
   *
   * ```ts
   * @NgModule({
   *   imports: [BrowserModule]
   * })
   * class MyModule {}
   *
   * let moduleRef = platformBrowser().bootstrapModule(MyModule);
   * ```
   *
   */
  bootstrapModule(n, t = []) {
    const r = Mv({}, t);
    return Of(), bA(this.injector, r, n).then((o) => this.bootstrapModuleFactory(o, r));
  }
  /**
   * Registers a listener to be called when the platform is destroyed.
   */
  onDestroy(n) {
    this._destroyListeners.push(n);
  }
  /**
   * Retrieves the platform {@link Injector}, which is the parent injector for
   * every Angular application on the page and provides singleton providers.
   */
  get injector() {
    return this._injector;
  }
  /**
   * Destroys the current Angular platform and all Angular applications on the page.
   * Destroys all modules and listeners registered with the platform.
   */
  destroy() {
    if (this._destroyed)
      throw new b(404, ngDevMode && "The platform has already been destroyed!");
    this._modules.slice().forEach((t) => t.destroy()), this._destroyListeners.forEach((t) => t());
    const n = this._injector.get(ms, null);
    n && (n.forEach((t) => t()), n.clear()), this._destroyed = !0;
  }
  /**
   * Indicates whether this instance was destroyed.
   */
  get destroyed() {
    return this._destroyed;
  }
};
f(pt, "ɵfac", function(t) {
  return new (t || pt)(we(tn));
}), f(pt, "ɵprov", /* @__PURE__ */ X({ token: pt, factory: pt.ɵfac, providedIn: "platform" }));
let xo = pt;
(typeof ngDevMode > "u" || ngDevMode) && en(xo, [{
  type: on,
  args: [{ providedIn: "platform" }]
}], () => [{ type: tn }]);
let _t = null;
const sI = new w(ngDevMode ? "AllowMultipleToken" : "");
function AA(e) {
  if (_t && !_t.get(sI, !1))
    throw new b(400, ngDevMode && "There can be only one platform. Destroy the previous one to create a new one.");
  ES(), bS(), _t = e;
  const n = e.get(xo);
  return NA(e), n;
}
function OA(e, n, t = []) {
  const r = `Platform: ${n}`, o = new w(r);
  return (i = []) => {
    let s = cI();
    if (!s || s.injector.get(sI, !1)) {
      const c = [
        ...t,
        ...i,
        { provide: o, useValue: !0 }
      ];
      AA(RA(c, r));
    }
    return PA(o);
  };
}
function RA(e = [], n) {
  return tn.create({
    name: n,
    providers: [
      { provide: Nh, useValue: "platform" },
      { provide: ms, useValue: /* @__PURE__ */ new Set([() => _t = null]) },
      ...e
    ]
  });
}
function PA(e) {
  const n = cI();
  if (!n)
    throw new b(401, ngDevMode && "No platform exists!");
  if ((typeof ngDevMode > "u" || ngDevMode) && !n.injector.get(e, null))
    throw new b(400, "A platform with a different configuration has been created. Please destroy it first.");
  return n;
}
function cI() {
  return (_t == null ? void 0 : _t.get(xo)) ?? null;
}
function NA(e) {
  const n = e.get(XE, null);
  Fh(e, () => {
    n == null || n.forEach((t) => t());
  });
}
OA(null, "core", []);
const gt = class gt {
  // Inject ApplicationRef to make it eager...
  constructor(n) {
  }
};
f(gt, "ɵfac", function(t) {
  return new (t || gt)(we(rn));
}), f(gt, "ɵmod", /* @__PURE__ */ Um({ type: gt })), f(gt, "ɵinj", /* @__PURE__ */ cu({}));
let Ya = gt;
(typeof ngDevMode > "u" || ngDevMode) && en(Ya, [{
  type: fA
}], () => [{ type: rn }]);
new w(typeof ngDevMode > "u" || ngDevMode ? "REQUEST" : "", {
  providedIn: "platform",
  factory: () => null
});
new w(typeof ngDevMode > "u" || ngDevMode ? "RESPONSE_INIT" : "", {
  providedIn: "platform",
  factory: () => null
});
new w(typeof ngDevMode > "u" || ngDevMode ? "REQUEST_CONTEXT" : "", {
  providedIn: "platform",
  factory: () => null
});
function LA(e, n) {
  const t = {
    room: "default-room",
    debug: !1
  }, r = {
    room: t.room || "default-room"
  };
  t.provider = r;
  const o = new e(t), i = async (...z) => {
    if (!t.debug)
      return;
    (await o.awaitProvider()).log(...z);
  }, s = o.getValue(), c = si(s), a = si("offline"), u = si(0), l = si(
    { total: 0, local: 0, remote: 0 }
  ), d = o.subscribe((z) => {
    c.set(z);
  });
  let h = null, p = null, g = null, m = null;
  const M = (z) => {
    let U = z;
    U || (U = o.connectionStatus || {
      type: "offline",
      connected: !1,
      peers: 0
    });
    let de = "offline";
    U.connected ? de = "connected" : U.type === "websocket" || U.type === "webrtc" ? de = "connecting" : de = "offline";
    const me = {
      total: U.peers || 0,
      local: "broadcastChannelPeers" in U && U.broadcastChannelPeers || 0,
      remote: "webrtcPeers" in U && U.webrtcPeers || 0
    }, pn = o.presenceInfo, oi = (pn == null ? void 0 : pn.activeCount) || 0, ic = p !== de, sc = !g || g.total !== me.total || g.local !== me.local || g.remote !== me.remote, cc = m !== oi;
    (ic || sc || cc) && i("[syncModelSignal] Connection status update:", {
      status: de,
      statusChanged: ic,
      peers: me,
      peerInfoChanged: sc,
      activeUsers: oi,
      usersChanged: cc
    }), ic && (a.set(de), p = de), sc && (l.set(me), g = me), cc && (u.set(oi), m = oi);
  };
  M(), "subscribeToConnection" in o && typeof o.subscribeToConnection == "function" && (h = o.subscribeToConnection((z) => M(z)));
  const D = setInterval(() => {
    M();
  }, 2e3);
  try {
    S(Wn).onDestroy(() => {
      d(), h == null || h(), clearInterval(D), "dispose" in o && typeof o.dispose == "function" && o.dispose();
    });
  } catch {
  }
  const v = IA(() => a() === "connected"), j = () => {
    d(), h == null || h(), clearInterval(D), "dispose" in o && typeof o.dispose == "function" && o.dispose();
  };
  return {
    model: o,
    value: c.asReadonly(),
    isConnected: v,
    connectionStatus: a.asReadonly(),
    activeUsers: u.asReadonly(),
    peerInfo: l.asReadonly(),
    destroy: j
  };
}
const FA = new w("AuthTokenProvider"), jA = 15e3;
let HA = 0;
function Rf(e, n) {
  return sM(() => {
    const t = `nx-auth-${e}-${n}-${++HA}`;
    return window.parent.postMessage({ nxAuthRequest: { kind: e, systemId: n, requestId: t } }, "*"), Bc(window, "message").pipe(
      lo(({ data: r }) => r == null ? void 0 : r.nxAuthResponse),
      hM((r) => (r == null ? void 0 : r.requestId) === t),
      pM(1),
      lo((r) => {
        if (r.error)
          throw new Error(r.error);
        return r.value;
      }),
      eM(jA),
      eh((r) => {
        throw r instanceof Xf ? new Error(`Host did not answer ${e} request for ${n}`) : r;
      })
    );
  });
}
function nO() {
  return {
    provide: FA,
    useFactory: () => {
      const e = LA(dI);
      return {
        fetchAccessToken: () => JI(e.value() ?? ""),
        fetchAccessCode: () => XI(() => new Error("Access codes are not available in experiments")),
        doesRefreshTokenExist: () => !!e.value(),
        fetchSystemToken: (n) => Rf("systemToken", n),
        fetchSystemAuth: (n) => Rf("systemAuth", n)
      };
    }
  };
}
export {
  dI as AccessTokenModel,
  VA as AccountModel,
  WA as NxConfigModel,
  zA as SystemsModel,
  GA as UriModel,
  nO as provideExperimentAuth
};
