"use strict";
(() => {
  var __create = Object.create;
  var __defProp = Object.defineProperty, __defProps = Object.defineProperties, __getOwnPropDesc = Object.getOwnPropertyDescriptor, __getOwnPropDescs = Object.getOwnPropertyDescriptors, __getOwnPropNames = Object.getOwnPropertyNames, __getOwnPropSymbols = Object.getOwnPropertySymbols, __getProtoOf = Object.getPrototypeOf, __hasOwnProp = Object.prototype.hasOwnProperty, __propIsEnum = Object.prototype.propertyIsEnumerable;
  var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: !0, configurable: !0, writable: !0, value }) : obj[key] = value, __spreadValues = (a, b) => {
    for (var prop in b || (b = {}))
      __hasOwnProp.call(b, prop) && __defNormalProp(a, prop, b[prop]);
    if (__getOwnPropSymbols)
      for (var prop of __getOwnPropSymbols(b))
        __propIsEnum.call(b, prop) && __defNormalProp(a, prop, b[prop]);
    return a;
  }, __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
  var __objRest = (source, exclude) => {
    var target = {};
    for (var prop in source)
      __hasOwnProp.call(source, prop) && exclude.indexOf(prop) < 0 && (target[prop] = source[prop]);
    if (source != null && __getOwnPropSymbols)
      for (var prop of __getOwnPropSymbols(source))
        exclude.indexOf(prop) < 0 && __propIsEnum.call(source, prop) && (target[prop] = source[prop]);
    return target;
  };
  var __commonJS = (cb, mod) => function() {
    return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports;
  };
  var __copyProps = (to, from, except, desc) => {
    if (from && typeof from == "object" || typeof from == "function")
      for (let key of __getOwnPropNames(from))
        !__hasOwnProp.call(to, key) && key !== except && __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
    return to;
  };
  var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
    isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: !0 }) : target,
    mod
  ));

  // node_modules/object-assign/index.js
  var require_object_assign = __commonJS({
    "node_modules/object-assign/index.js"(exports, module) {
      "use strict";
      var getOwnPropertySymbols = Object.getOwnPropertySymbols, hasOwnProperty = Object.prototype.hasOwnProperty, propIsEnumerable = Object.prototype.propertyIsEnumerable;
      function toObject(val) {
        if (val == null)
          throw new TypeError("Object.assign cannot be called with null or undefined");
        return Object(val);
      }
      function shouldUseNative() {
        try {
          if (!Object.assign)
            return !1;
          var test1 = new String("abc");
          if (test1[5] = "de", Object.getOwnPropertyNames(test1)[0] === "5")
            return !1;
          for (var test2 = {}, i = 0; i < 10; i++)
            test2["_" + String.fromCharCode(i)] = i;
          var order2 = Object.getOwnPropertyNames(test2).map(function(n) {
            return test2[n];
          });
          if (order2.join("") !== "0123456789")
            return !1;
          var test3 = {};
          return "abcdefghijklmnopqrst".split("").forEach(function(letter) {
            test3[letter] = letter;
          }), Object.keys(Object.assign({}, test3)).join("") === "abcdefghijklmnopqrst";
        } catch {
          return !1;
        }
      }
      module.exports = shouldUseNative() ? Object.assign : function(target, source) {
        for (var from, to = toObject(target), symbols, s = 1; s < arguments.length; s++) {
          from = Object(arguments[s]);
          for (var key in from)
            hasOwnProperty.call(from, key) && (to[key] = from[key]);
          if (getOwnPropertySymbols) {
            symbols = getOwnPropertySymbols(from);
            for (var i = 0; i < symbols.length; i++)
              propIsEnumerable.call(from, symbols[i]) && (to[symbols[i]] = from[symbols[i]]);
          }
        }
        return to;
      };
    }
  });

  // node_modules/react/cjs/react.production.min.js
  var require_react_production_min = __commonJS({
    "node_modules/react/cjs/react.production.min.js"(exports) {
      "use strict";
      var l = require_object_assign(), n = 60103, p = 60106;
      exports.Fragment = 60107;
      exports.StrictMode = 60108;
      exports.Profiler = 60114;
      var q = 60109, r = 60110, t = 60112;
      exports.Suspense = 60113;
      var u = 60115, v = 60116;
      typeof Symbol == "function" && Symbol.for && (w = Symbol.for, n = w("react.element"), p = w("react.portal"), exports.Fragment = w("react.fragment"), exports.StrictMode = w("react.strict_mode"), exports.Profiler = w("react.profiler"), q = w("react.provider"), r = w("react.context"), t = w("react.forward_ref"), exports.Suspense = w("react.suspense"), u = w("react.memo"), v = w("react.lazy"));
      var w, x = typeof Symbol == "function" && Symbol.iterator;
      function y(a) {
        return a === null || typeof a != "object" ? null : (a = x && a[x] || a["@@iterator"], typeof a == "function" ? a : null);
      }
      function z(a) {
        for (var b = "https://reactjs.org/docs/error-decoder.html?invariant=" + a, c = 1; c < arguments.length; c++)
          b += "&args[]=" + encodeURIComponent(arguments[c]);
        return "Minified React error #" + a + "; visit " + b + " for the full message or use the non-minified dev environment for full errors and additional helpful warnings.";
      }
      var A = { isMounted: function() {
        return !1;
      }, enqueueForceUpdate: function() {
      }, enqueueReplaceState: function() {
      }, enqueueSetState: function() {
      } }, B = {};
      function C(a, b, c) {
        this.props = a, this.context = b, this.refs = B, this.updater = c || A;
      }
      C.prototype.isReactComponent = {};
      C.prototype.setState = function(a, b) {
        if (typeof a != "object" && typeof a != "function" && a != null)
          throw Error(z(85));
        this.updater.enqueueSetState(this, a, b, "setState");
      };
      C.prototype.forceUpdate = function(a) {
        this.updater.enqueueForceUpdate(this, a, "forceUpdate");
      };
      function D() {
      }
      D.prototype = C.prototype;
      function E(a, b, c) {
        this.props = a, this.context = b, this.refs = B, this.updater = c || A;
      }
      var F = E.prototype = new D();
      F.constructor = E;
      l(F, C.prototype);
      F.isPureReactComponent = !0;
      var G = { current: null }, H = Object.prototype.hasOwnProperty, I = { key: !0, ref: !0, __self: !0, __source: !0 };
      function J(a, b, c) {
        var e, d = {}, k = null, h = null;
        if (b != null)
          for (e in b.ref !== void 0 && (h = b.ref), b.key !== void 0 && (k = "" + b.key), b)
            H.call(b, e) && !I.hasOwnProperty(e) && (d[e] = b[e]);
        var g = arguments.length - 2;
        if (g === 1)
          d.children = c;
        else if (1 < g) {
          for (var f = Array(g), m = 0; m < g; m++)
            f[m] = arguments[m + 2];
          d.children = f;
        }
        if (a && a.defaultProps)
          for (e in g = a.defaultProps, g)
            d[e] === void 0 && (d[e] = g[e]);
        return { $$typeof: n, type: a, key: k, ref: h, props: d, _owner: G.current };
      }
      function K(a, b) {
        return { $$typeof: n, type: a.type, key: b, ref: a.ref, props: a.props, _owner: a._owner };
      }
      function L(a) {
        return typeof a == "object" && a !== null && a.$$typeof === n;
      }
      function escape(a) {
        var b = { "=": "=0", ":": "=2" };
        return "$" + a.replace(/[=:]/g, function(a2) {
          return b[a2];
        });
      }
      var M = /\/+/g;
      function N(a, b) {
        return typeof a == "object" && a !== null && a.key != null ? escape("" + a.key) : b.toString(36);
      }
      function O(a, b, c, e, d) {
        var k = typeof a;
        (k === "undefined" || k === "boolean") && (a = null);
        var h = !1;
        if (a === null)
          h = !0;
        else
          switch (k) {
            case "string":
            case "number":
              h = !0;
              break;
            case "object":
              switch (a.$$typeof) {
                case n:
                case p:
                  h = !0;
              }
          }
        if (h)
          return h = a, d = d(h), a = e === "" ? "." + N(h, 0) : e, Array.isArray(d) ? (c = "", a != null && (c = a.replace(M, "$&/") + "/"), O(d, b, c, "", function(a2) {
            return a2;
          })) : d != null && (L(d) && (d = K(d, c + (!d.key || h && h.key === d.key ? "" : ("" + d.key).replace(M, "$&/") + "/") + a)), b.push(d)), 1;
        if (h = 0, e = e === "" ? "." : e + ":", Array.isArray(a))
          for (var g = 0; g < a.length; g++) {
            k = a[g];
            var f = e + N(k, g);
            h += O(k, b, c, f, d);
          }
        else if (f = y(a), typeof f == "function")
          for (a = f.call(a), g = 0; !(k = a.next()).done; )
            k = k.value, f = e + N(k, g++), h += O(k, b, c, f, d);
        else if (k === "object")
          throw b = "" + a, Error(z(31, b === "[object Object]" ? "object with keys {" + Object.keys(a).join(", ") + "}" : b));
        return h;
      }
      function P(a, b, c) {
        if (a == null)
          return a;
        var e = [], d = 0;
        return O(a, e, "", "", function(a2) {
          return b.call(c, a2, d++);
        }), e;
      }
      function Q(a) {
        if (a._status === -1) {
          var b = a._result;
          b = b(), a._status = 0, a._result = b, b.then(function(b2) {
            a._status === 0 && (b2 = b2.default, a._status = 1, a._result = b2);
          }, function(b2) {
            a._status === 0 && (a._status = 2, a._result = b2);
          });
        }
        if (a._status === 1)
          return a._result;
        throw a._result;
      }
      var R = { current: null };
      function S() {
        var a = R.current;
        if (a === null)
          throw Error(z(321));
        return a;
      }
      var T = { ReactCurrentDispatcher: R, ReactCurrentBatchConfig: { transition: 0 }, ReactCurrentOwner: G, IsSomeRendererActing: { current: !1 }, assign: l };
      exports.Children = { map: P, forEach: function(a, b, c) {
        P(a, function() {
          b.apply(this, arguments);
        }, c);
      }, count: function(a) {
        var b = 0;
        return P(a, function() {
          b++;
        }), b;
      }, toArray: function(a) {
        return P(a, function(a2) {
          return a2;
        }) || [];
      }, only: function(a) {
        if (!L(a))
          throw Error(z(143));
        return a;
      } };
      exports.Component = C;
      exports.PureComponent = E;
      exports.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED = T;
      exports.cloneElement = function(a, b, c) {
        if (a == null)
          throw Error(z(267, a));
        var e = l({}, a.props), d = a.key, k = a.ref, h = a._owner;
        if (b != null) {
          if (b.ref !== void 0 && (k = b.ref, h = G.current), b.key !== void 0 && (d = "" + b.key), a.type && a.type.defaultProps)
            var g = a.type.defaultProps;
          for (f in b)
            H.call(b, f) && !I.hasOwnProperty(f) && (e[f] = b[f] === void 0 && g !== void 0 ? g[f] : b[f]);
        }
        var f = arguments.length - 2;
        if (f === 1)
          e.children = c;
        else if (1 < f) {
          g = Array(f);
          for (var m = 0; m < f; m++)
            g[m] = arguments[m + 2];
          e.children = g;
        }
        return {
          $$typeof: n,
          type: a.type,
          key: d,
          ref: k,
          props: e,
          _owner: h
        };
      };
      exports.createContext = function(a, b) {
        return b === void 0 && (b = null), a = { $$typeof: r, _calculateChangedBits: b, _currentValue: a, _currentValue2: a, _threadCount: 0, Provider: null, Consumer: null }, a.Provider = { $$typeof: q, _context: a }, a.Consumer = a;
      };
      exports.createElement = J;
      exports.createFactory = function(a) {
        var b = J.bind(null, a);
        return b.type = a, b;
      };
      exports.createRef = function() {
        return { current: null };
      };
      exports.forwardRef = function(a) {
        return { $$typeof: t, render: a };
      };
      exports.isValidElement = L;
      exports.lazy = function(a) {
        return { $$typeof: v, _payload: { _status: -1, _result: a }, _init: Q };
      };
      exports.memo = function(a, b) {
        return { $$typeof: u, type: a, compare: b === void 0 ? null : b };
      };
      exports.useCallback = function(a, b) {
        return S().useCallback(a, b);
      };
      exports.useContext = function(a, b) {
        return S().useContext(a, b);
      };
      exports.useDebugValue = function() {
      };
      exports.useEffect = function(a, b) {
        return S().useEffect(a, b);
      };
      exports.useImperativeHandle = function(a, b, c) {
        return S().useImperativeHandle(a, b, c);
      };
      exports.useLayoutEffect = function(a, b) {
        return S().useLayoutEffect(a, b);
      };
      exports.useMemo = function(a, b) {
        return S().useMemo(a, b);
      };
      exports.useReducer = function(a, b, c) {
        return S().useReducer(a, b, c);
      };
      exports.useRef = function(a) {
        return S().useRef(a);
      };
      exports.useState = function(a) {
        return S().useState(a);
      };
      exports.version = "17.0.2";
    }
  });

  // node_modules/react/index.js
  var require_react = __commonJS({
    "node_modules/react/index.js"(exports, module) {
      "use strict";
      module.exports = require_react_production_min();
    }
  });

  // node_modules/scheduler/cjs/scheduler.production.min.js
  var require_scheduler_production_min = __commonJS({
    "node_modules/scheduler/cjs/scheduler.production.min.js"(exports) {
      "use strict";
      var f, g, h, k;
      typeof performance == "object" && typeof performance.now == "function" ? (l = performance, exports.unstable_now = function() {
        return l.now();
      }) : (p = Date, q = p.now(), exports.unstable_now = function() {
        return p.now() - q;
      });
      var l, p, q;
      typeof window > "u" || typeof MessageChannel != "function" ? (t = null, u = null, w = function() {
        if (t !== null)
          try {
            var a = exports.unstable_now();
            t(!0, a), t = null;
          } catch (b) {
            throw setTimeout(w, 0), b;
          }
      }, f = function(a) {
        t !== null ? setTimeout(f, 0, a) : (t = a, setTimeout(w, 0));
      }, g = function(a, b) {
        u = setTimeout(a, b);
      }, h = function() {
        clearTimeout(u);
      }, exports.unstable_shouldYield = function() {
        return !1;
      }, k = exports.unstable_forceFrameRate = function() {
      }) : (x = window.setTimeout, y = window.clearTimeout, typeof console < "u" && (z = window.cancelAnimationFrame, typeof window.requestAnimationFrame != "function" && console.error("This browser doesn't support requestAnimationFrame. Make sure that you load a polyfill in older browsers. https://reactjs.org/link/react-polyfills"), typeof z != "function" && console.error("This browser doesn't support cancelAnimationFrame. Make sure that you load a polyfill in older browsers. https://reactjs.org/link/react-polyfills")), A = !1, B = null, C = -1, D = 5, E = 0, exports.unstable_shouldYield = function() {
        return exports.unstable_now() >= E;
      }, k = function() {
      }, exports.unstable_forceFrameRate = function(a) {
        0 > a || 125 < a ? console.error("forceFrameRate takes a positive int between 0 and 125, forcing frame rates higher than 125 fps is not supported") : D = 0 < a ? Math.floor(1e3 / a) : 5;
      }, F = new MessageChannel(), G = F.port2, F.port1.onmessage = function() {
        if (B !== null) {
          var a = exports.unstable_now();
          E = a + D;
          try {
            B(!0, a) ? G.postMessage(null) : (A = !1, B = null);
          } catch (b) {
            throw G.postMessage(null), b;
          }
        } else
          A = !1;
      }, f = function(a) {
        B = a, A || (A = !0, G.postMessage(null));
      }, g = function(a, b) {
        C = x(function() {
          a(exports.unstable_now());
        }, b);
      }, h = function() {
        y(C), C = -1;
      });
      var t, u, w, x, y, z, A, B, C, D, E, F, G;
      function H(a, b) {
        var c = a.length;
        a.push(b);
        a:
          for (; ; ) {
            var d = c - 1 >>> 1, e = a[d];
            if (e !== void 0 && 0 < I(e, b))
              a[d] = b, a[c] = e, c = d;
            else
              break a;
          }
      }
      function J(a) {
        return a = a[0], a === void 0 ? null : a;
      }
      function K(a) {
        var b = a[0];
        if (b !== void 0) {
          var c = a.pop();
          if (c !== b) {
            a[0] = c;
            a:
              for (var d = 0, e = a.length; d < e; ) {
                var m = 2 * (d + 1) - 1, n = a[m], v = m + 1, r = a[v];
                if (n !== void 0 && 0 > I(n, c))
                  r !== void 0 && 0 > I(r, n) ? (a[d] = r, a[v] = c, d = v) : (a[d] = n, a[m] = c, d = m);
                else if (r !== void 0 && 0 > I(r, c))
                  a[d] = r, a[v] = c, d = v;
                else
                  break a;
              }
          }
          return b;
        }
        return null;
      }
      function I(a, b) {
        var c = a.sortIndex - b.sortIndex;
        return c !== 0 ? c : a.id - b.id;
      }
      var L = [], M = [], N = 1, O = null, P = 3, Q = !1, R = !1, S = !1;
      function T(a) {
        for (var b = J(M); b !== null; ) {
          if (b.callback === null)
            K(M);
          else if (b.startTime <= a)
            K(M), b.sortIndex = b.expirationTime, H(L, b);
          else
            break;
          b = J(M);
        }
      }
      function U(a) {
        if (S = !1, T(a), !R)
          if (J(L) !== null)
            R = !0, f(V);
          else {
            var b = J(M);
            b !== null && g(U, b.startTime - a);
          }
      }
      function V(a, b) {
        R = !1, S && (S = !1, h()), Q = !0;
        var c = P;
        try {
          for (T(b), O = J(L); O !== null && (!(O.expirationTime > b) || a && !exports.unstable_shouldYield()); ) {
            var d = O.callback;
            if (typeof d == "function") {
              O.callback = null, P = O.priorityLevel;
              var e = d(O.expirationTime <= b);
              b = exports.unstable_now(), typeof e == "function" ? O.callback = e : O === J(L) && K(L), T(b);
            } else
              K(L);
            O = J(L);
          }
          if (O !== null)
            var m = !0;
          else {
            var n = J(M);
            n !== null && g(U, n.startTime - b), m = !1;
          }
          return m;
        } finally {
          O = null, P = c, Q = !1;
        }
      }
      var W = k;
      exports.unstable_IdlePriority = 5;
      exports.unstable_ImmediatePriority = 1;
      exports.unstable_LowPriority = 4;
      exports.unstable_NormalPriority = 3;
      exports.unstable_Profiling = null;
      exports.unstable_UserBlockingPriority = 2;
      exports.unstable_cancelCallback = function(a) {
        a.callback = null;
      };
      exports.unstable_continueExecution = function() {
        R || Q || (R = !0, f(V));
      };
      exports.unstable_getCurrentPriorityLevel = function() {
        return P;
      };
      exports.unstable_getFirstCallbackNode = function() {
        return J(L);
      };
      exports.unstable_next = function(a) {
        switch (P) {
          case 1:
          case 2:
          case 3:
            var b = 3;
            break;
          default:
            b = P;
        }
        var c = P;
        P = b;
        try {
          return a();
        } finally {
          P = c;
        }
      };
      exports.unstable_pauseExecution = function() {
      };
      exports.unstable_requestPaint = W;
      exports.unstable_runWithPriority = function(a, b) {
        switch (a) {
          case 1:
          case 2:
          case 3:
          case 4:
          case 5:
            break;
          default:
            a = 3;
        }
        var c = P;
        P = a;
        try {
          return b();
        } finally {
          P = c;
        }
      };
      exports.unstable_scheduleCallback = function(a, b, c) {
        var d = exports.unstable_now();
        switch (typeof c == "object" && c !== null ? (c = c.delay, c = typeof c == "number" && 0 < c ? d + c : d) : c = d, a) {
          case 1:
            var e = -1;
            break;
          case 2:
            e = 250;
            break;
          case 5:
            e = 1073741823;
            break;
          case 4:
            e = 1e4;
            break;
          default:
            e = 5e3;
        }
        return e = c + e, a = { id: N++, callback: b, priorityLevel: a, startTime: c, expirationTime: e, sortIndex: -1 }, c > d ? (a.sortIndex = c, H(M, a), J(L) === null && a === J(M) && (S ? h() : S = !0, g(U, c - d))) : (a.sortIndex = e, H(L, a), R || Q || (R = !0, f(V))), a;
      };
      exports.unstable_wrapCallback = function(a) {
        var b = P;
        return function() {
          var c = P;
          P = b;
          try {
            return a.apply(this, arguments);
          } finally {
            P = c;
          }
        };
      };
    }
  });

  // node_modules/scheduler/index.js
  var require_scheduler = __commonJS({
    "node_modules/scheduler/index.js"(exports, module) {
      "use strict";
      module.exports = require_scheduler_production_min();
    }
  });

  // node_modules/react-dom/cjs/react-dom.production.min.js
  var require_react_dom_production_min = __commonJS({
    "node_modules/react-dom/cjs/react-dom.production.min.js"(exports) {
      "use strict";
      var aa = require_react(), m = require_object_assign(), r = require_scheduler();
      function y(a) {
        for (var b = "https://reactjs.org/docs/error-decoder.html?invariant=" + a, c = 1; c < arguments.length; c++)
          b += "&args[]=" + encodeURIComponent(arguments[c]);
        return "Minified React error #" + a + "; visit " + b + " for the full message or use the non-minified dev environment for full errors and additional helpful warnings.";
      }
      if (!aa)
        throw Error(y(227));
      var ba = /* @__PURE__ */ new Set(), ca = {};
      function da(a, b) {
        ea(a, b), ea(a + "Capture", b);
      }
      function ea(a, b) {
        for (ca[a] = b, a = 0; a < b.length; a++)
          ba.add(b[a]);
      }
      var fa = !(typeof window > "u" || typeof window.document > "u" || typeof window.document.createElement > "u"), ha = /^[:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD][:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD\-.0-9\u00B7\u0300-\u036F\u203F-\u2040]*$/, ia = Object.prototype.hasOwnProperty, ja = {}, ka = {};
      function la(a) {
        return ia.call(ka, a) ? !0 : ia.call(ja, a) ? !1 : ha.test(a) ? ka[a] = !0 : (ja[a] = !0, !1);
      }
      function ma(a, b, c, d) {
        if (c !== null && c.type === 0)
          return !1;
        switch (typeof b) {
          case "function":
          case "symbol":
            return !0;
          case "boolean":
            return d ? !1 : c !== null ? !c.acceptsBooleans : (a = a.toLowerCase().slice(0, 5), a !== "data-" && a !== "aria-");
          default:
            return !1;
        }
      }
      function na(a, b, c, d) {
        if (b === null || typeof b > "u" || ma(a, b, c, d))
          return !0;
        if (d)
          return !1;
        if (c !== null)
          switch (c.type) {
            case 3:
              return !b;
            case 4:
              return b === !1;
            case 5:
              return isNaN(b);
            case 6:
              return isNaN(b) || 1 > b;
          }
        return !1;
      }
      function B(a, b, c, d, e, f, g) {
        this.acceptsBooleans = b === 2 || b === 3 || b === 4, this.attributeName = d, this.attributeNamespace = e, this.mustUseProperty = c, this.propertyName = a, this.type = b, this.sanitizeURL = f, this.removeEmptyString = g;
      }
      var D = {};
      "children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style".split(" ").forEach(function(a) {
        D[a] = new B(a, 0, !1, a, null, !1, !1);
      });
      [["acceptCharset", "accept-charset"], ["className", "class"], ["htmlFor", "for"], ["httpEquiv", "http-equiv"]].forEach(function(a) {
        var b = a[0];
        D[b] = new B(b, 1, !1, a[1], null, !1, !1);
      });
      ["contentEditable", "draggable", "spellCheck", "value"].forEach(function(a) {
        D[a] = new B(a, 2, !1, a.toLowerCase(), null, !1, !1);
      });
      ["autoReverse", "externalResourcesRequired", "focusable", "preserveAlpha"].forEach(function(a) {
        D[a] = new B(a, 2, !1, a, null, !1, !1);
      });
      "allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope".split(" ").forEach(function(a) {
        D[a] = new B(a, 3, !1, a.toLowerCase(), null, !1, !1);
      });
      ["checked", "multiple", "muted", "selected"].forEach(function(a) {
        D[a] = new B(a, 3, !0, a, null, !1, !1);
      });
      ["capture", "download"].forEach(function(a) {
        D[a] = new B(a, 4, !1, a, null, !1, !1);
      });
      ["cols", "rows", "size", "span"].forEach(function(a) {
        D[a] = new B(a, 6, !1, a, null, !1, !1);
      });
      ["rowSpan", "start"].forEach(function(a) {
        D[a] = new B(a, 5, !1, a.toLowerCase(), null, !1, !1);
      });
      var oa = /[\-:]([a-z])/g;
      function pa(a) {
        return a[1].toUpperCase();
      }
      "accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height".split(" ").forEach(function(a) {
        var b = a.replace(
          oa,
          pa
        );
        D[b] = new B(b, 1, !1, a, null, !1, !1);
      });
      "xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type".split(" ").forEach(function(a) {
        var b = a.replace(oa, pa);
        D[b] = new B(b, 1, !1, a, "http://www.w3.org/1999/xlink", !1, !1);
      });
      ["xml:base", "xml:lang", "xml:space"].forEach(function(a) {
        var b = a.replace(oa, pa);
        D[b] = new B(b, 1, !1, a, "http://www.w3.org/XML/1998/namespace", !1, !1);
      });
      ["tabIndex", "crossOrigin"].forEach(function(a) {
        D[a] = new B(a, 1, !1, a.toLowerCase(), null, !1, !1);
      });
      D.xlinkHref = new B("xlinkHref", 1, !1, "xlink:href", "http://www.w3.org/1999/xlink", !0, !1);
      ["src", "href", "action", "formAction"].forEach(function(a) {
        D[a] = new B(a, 1, !1, a.toLowerCase(), null, !0, !0);
      });
      function qa(a, b, c, d) {
        var e = D.hasOwnProperty(b) ? D[b] : null, f = e !== null ? e.type === 0 : d ? !1 : !(!(2 < b.length) || b[0] !== "o" && b[0] !== "O" || b[1] !== "n" && b[1] !== "N");
        f || (na(b, c, e, d) && (c = null), d || e === null ? la(b) && (c === null ? a.removeAttribute(b) : a.setAttribute(b, "" + c)) : e.mustUseProperty ? a[e.propertyName] = c === null ? e.type === 3 ? !1 : "" : c : (b = e.attributeName, d = e.attributeNamespace, c === null ? a.removeAttribute(b) : (e = e.type, c = e === 3 || e === 4 && c === !0 ? "" : "" + c, d ? a.setAttributeNS(d, b, c) : a.setAttribute(b, c))));
      }
      var ra = aa.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED, sa = 60103, ta = 60106, ua = 60107, wa = 60108, xa = 60114, ya = 60109, za = 60110, Aa = 60112, Ba = 60113, Ca = 60120, Da = 60115, Ea = 60116, Fa = 60121, Ga = 60128, Ha = 60129, Ia = 60130, Ja = 60131;
      typeof Symbol == "function" && Symbol.for && (E = Symbol.for, sa = E("react.element"), ta = E("react.portal"), ua = E("react.fragment"), wa = E("react.strict_mode"), xa = E("react.profiler"), ya = E("react.provider"), za = E("react.context"), Aa = E("react.forward_ref"), Ba = E("react.suspense"), Ca = E("react.suspense_list"), Da = E("react.memo"), Ea = E("react.lazy"), Fa = E("react.block"), E("react.scope"), Ga = E("react.opaque.id"), Ha = E("react.debug_trace_mode"), Ia = E("react.offscreen"), Ja = E("react.legacy_hidden"));
      var E, Ka = typeof Symbol == "function" && Symbol.iterator;
      function La(a) {
        return a === null || typeof a != "object" ? null : (a = Ka && a[Ka] || a["@@iterator"], typeof a == "function" ? a : null);
      }
      var Ma;
      function Na(a) {
        if (Ma === void 0)
          try {
            throw Error();
          } catch (c) {
            var b = c.stack.trim().match(/\n( *(at )?)/);
            Ma = b && b[1] || "";
          }
        return `
` + Ma + a;
      }
      var Oa = !1;
      function Pa(a, b) {
        if (!a || Oa)
          return "";
        Oa = !0;
        var c = Error.prepareStackTrace;
        Error.prepareStackTrace = void 0;
        try {
          if (b)
            if (b = function() {
              throw Error();
            }, Object.defineProperty(b.prototype, "props", { set: function() {
              throw Error();
            } }), typeof Reflect == "object" && Reflect.construct) {
              try {
                Reflect.construct(b, []);
              } catch (k) {
                var d = k;
              }
              Reflect.construct(a, [], b);
            } else {
              try {
                b.call();
              } catch (k) {
                d = k;
              }
              a.call(b.prototype);
            }
          else {
            try {
              throw Error();
            } catch (k) {
              d = k;
            }
            a();
          }
        } catch (k) {
          if (k && d && typeof k.stack == "string") {
            for (var e = k.stack.split(`
`), f = d.stack.split(`
`), g = e.length - 1, h = f.length - 1; 1 <= g && 0 <= h && e[g] !== f[h]; )
              h--;
            for (; 1 <= g && 0 <= h; g--, h--)
              if (e[g] !== f[h]) {
                if (g !== 1 || h !== 1)
                  do
                    if (g--, h--, 0 > h || e[g] !== f[h])
                      return `
` + e[g].replace(" at new ", " at ");
                  while (1 <= g && 0 <= h);
                break;
              }
          }
        } finally {
          Oa = !1, Error.prepareStackTrace = c;
        }
        return (a = a ? a.displayName || a.name : "") ? Na(a) : "";
      }
      function Qa(a) {
        switch (a.tag) {
          case 5:
            return Na(a.type);
          case 16:
            return Na("Lazy");
          case 13:
            return Na("Suspense");
          case 19:
            return Na("SuspenseList");
          case 0:
          case 2:
          case 15:
            return a = Pa(a.type, !1), a;
          case 11:
            return a = Pa(a.type.render, !1), a;
          case 22:
            return a = Pa(a.type._render, !1), a;
          case 1:
            return a = Pa(a.type, !0), a;
          default:
            return "";
        }
      }
      function Ra(a) {
        if (a == null)
          return null;
        if (typeof a == "function")
          return a.displayName || a.name || null;
        if (typeof a == "string")
          return a;
        switch (a) {
          case ua:
            return "Fragment";
          case ta:
            return "Portal";
          case xa:
            return "Profiler";
          case wa:
            return "StrictMode";
          case Ba:
            return "Suspense";
          case Ca:
            return "SuspenseList";
        }
        if (typeof a == "object")
          switch (a.$$typeof) {
            case za:
              return (a.displayName || "Context") + ".Consumer";
            case ya:
              return (a._context.displayName || "Context") + ".Provider";
            case Aa:
              var b = a.render;
              return b = b.displayName || b.name || "", a.displayName || (b !== "" ? "ForwardRef(" + b + ")" : "ForwardRef");
            case Da:
              return Ra(a.type);
            case Fa:
              return Ra(a._render);
            case Ea:
              b = a._payload, a = a._init;
              try {
                return Ra(a(b));
              } catch {
              }
          }
        return null;
      }
      function Sa(a) {
        switch (typeof a) {
          case "boolean":
          case "number":
          case "object":
          case "string":
          case "undefined":
            return a;
          default:
            return "";
        }
      }
      function Ta(a) {
        var b = a.type;
        return (a = a.nodeName) && a.toLowerCase() === "input" && (b === "checkbox" || b === "radio");
      }
      function Ua(a) {
        var b = Ta(a) ? "checked" : "value", c = Object.getOwnPropertyDescriptor(a.constructor.prototype, b), d = "" + a[b];
        if (!a.hasOwnProperty(b) && typeof c < "u" && typeof c.get == "function" && typeof c.set == "function") {
          var e = c.get, f = c.set;
          return Object.defineProperty(a, b, { configurable: !0, get: function() {
            return e.call(this);
          }, set: function(a2) {
            d = "" + a2, f.call(this, a2);
          } }), Object.defineProperty(a, b, { enumerable: c.enumerable }), { getValue: function() {
            return d;
          }, setValue: function(a2) {
            d = "" + a2;
          }, stopTracking: function() {
            a._valueTracker = null, delete a[b];
          } };
        }
      }
      function Va(a) {
        a._valueTracker || (a._valueTracker = Ua(a));
      }
      function Wa(a) {
        if (!a)
          return !1;
        var b = a._valueTracker;
        if (!b)
          return !0;
        var c = b.getValue(), d = "";
        return a && (d = Ta(a) ? a.checked ? "true" : "false" : a.value), a = d, a !== c ? (b.setValue(a), !0) : !1;
      }
      function Xa(a) {
        if (a = a || (typeof document < "u" ? document : void 0), typeof a > "u")
          return null;
        try {
          return a.activeElement || a.body;
        } catch {
          return a.body;
        }
      }
      function Ya(a, b) {
        var c = b.checked;
        return m({}, b, { defaultChecked: void 0, defaultValue: void 0, value: void 0, checked: c ?? a._wrapperState.initialChecked });
      }
      function Za(a, b) {
        var c = b.defaultValue == null ? "" : b.defaultValue, d = b.checked != null ? b.checked : b.defaultChecked;
        c = Sa(b.value != null ? b.value : c), a._wrapperState = { initialChecked: d, initialValue: c, controlled: b.type === "checkbox" || b.type === "radio" ? b.checked != null : b.value != null };
      }
      function $a(a, b) {
        b = b.checked, b != null && qa(a, "checked", b, !1);
      }
      function ab(a, b) {
        $a(a, b);
        var c = Sa(b.value), d = b.type;
        if (c != null)
          d === "number" ? (c === 0 && a.value === "" || a.value != c) && (a.value = "" + c) : a.value !== "" + c && (a.value = "" + c);
        else if (d === "submit" || d === "reset") {
          a.removeAttribute("value");
          return;
        }
        b.hasOwnProperty("value") ? bb(a, b.type, c) : b.hasOwnProperty("defaultValue") && bb(a, b.type, Sa(b.defaultValue)), b.checked == null && b.defaultChecked != null && (a.defaultChecked = !!b.defaultChecked);
      }
      function cb(a, b, c) {
        if (b.hasOwnProperty("value") || b.hasOwnProperty("defaultValue")) {
          var d = b.type;
          if (!(d !== "submit" && d !== "reset" || b.value !== void 0 && b.value !== null))
            return;
          b = "" + a._wrapperState.initialValue, c || b === a.value || (a.value = b), a.defaultValue = b;
        }
        c = a.name, c !== "" && (a.name = ""), a.defaultChecked = !!a._wrapperState.initialChecked, c !== "" && (a.name = c);
      }
      function bb(a, b, c) {
        (b !== "number" || Xa(a.ownerDocument) !== a) && (c == null ? a.defaultValue = "" + a._wrapperState.initialValue : a.defaultValue !== "" + c && (a.defaultValue = "" + c));
      }
      function db(a) {
        var b = "";
        return aa.Children.forEach(a, function(a2) {
          a2 != null && (b += a2);
        }), b;
      }
      function eb(a, b) {
        return a = m({ children: void 0 }, b), (b = db(b.children)) && (a.children = b), a;
      }
      function fb(a, b, c, d) {
        if (a = a.options, b) {
          b = {};
          for (var e = 0; e < c.length; e++)
            b["$" + c[e]] = !0;
          for (c = 0; c < a.length; c++)
            e = b.hasOwnProperty("$" + a[c].value), a[c].selected !== e && (a[c].selected = e), e && d && (a[c].defaultSelected = !0);
        } else {
          for (c = "" + Sa(c), b = null, e = 0; e < a.length; e++) {
            if (a[e].value === c) {
              a[e].selected = !0, d && (a[e].defaultSelected = !0);
              return;
            }
            b !== null || a[e].disabled || (b = a[e]);
          }
          b !== null && (b.selected = !0);
        }
      }
      function gb(a, b) {
        if (b.dangerouslySetInnerHTML != null)
          throw Error(y(91));
        return m({}, b, { value: void 0, defaultValue: void 0, children: "" + a._wrapperState.initialValue });
      }
      function hb(a, b) {
        var c = b.value;
        if (c == null) {
          if (c = b.children, b = b.defaultValue, c != null) {
            if (b != null)
              throw Error(y(92));
            if (Array.isArray(c)) {
              if (!(1 >= c.length))
                throw Error(y(93));
              c = c[0];
            }
            b = c;
          }
          b == null && (b = ""), c = b;
        }
        a._wrapperState = { initialValue: Sa(c) };
      }
      function ib(a, b) {
        var c = Sa(b.value), d = Sa(b.defaultValue);
        c != null && (c = "" + c, c !== a.value && (a.value = c), b.defaultValue == null && a.defaultValue !== c && (a.defaultValue = c)), d != null && (a.defaultValue = "" + d);
      }
      function jb(a) {
        var b = a.textContent;
        b === a._wrapperState.initialValue && b !== "" && b !== null && (a.value = b);
      }
      var kb = { html: "http://www.w3.org/1999/xhtml", mathml: "http://www.w3.org/1998/Math/MathML", svg: "http://www.w3.org/2000/svg" };
      function lb(a) {
        switch (a) {
          case "svg":
            return "http://www.w3.org/2000/svg";
          case "math":
            return "http://www.w3.org/1998/Math/MathML";
          default:
            return "http://www.w3.org/1999/xhtml";
        }
      }
      function mb(a, b) {
        return a == null || a === "http://www.w3.org/1999/xhtml" ? lb(b) : a === "http://www.w3.org/2000/svg" && b === "foreignObject" ? "http://www.w3.org/1999/xhtml" : a;
      }
      var nb, ob = function(a) {
        return typeof MSApp < "u" && MSApp.execUnsafeLocalFunction ? function(b, c, d, e) {
          MSApp.execUnsafeLocalFunction(function() {
            return a(b, c, d, e);
          });
        } : a;
      }(function(a, b) {
        if (a.namespaceURI !== kb.svg || "innerHTML" in a)
          a.innerHTML = b;
        else {
          for (nb = nb || document.createElement("div"), nb.innerHTML = "<svg>" + b.valueOf().toString() + "</svg>", b = nb.firstChild; a.firstChild; )
            a.removeChild(a.firstChild);
          for (; b.firstChild; )
            a.appendChild(b.firstChild);
        }
      });
      function pb(a, b) {
        if (b) {
          var c = a.firstChild;
          if (c && c === a.lastChild && c.nodeType === 3) {
            c.nodeValue = b;
            return;
          }
        }
        a.textContent = b;
      }
      var qb = {
        animationIterationCount: !0,
        borderImageOutset: !0,
        borderImageSlice: !0,
        borderImageWidth: !0,
        boxFlex: !0,
        boxFlexGroup: !0,
        boxOrdinalGroup: !0,
        columnCount: !0,
        columns: !0,
        flex: !0,
        flexGrow: !0,
        flexPositive: !0,
        flexShrink: !0,
        flexNegative: !0,
        flexOrder: !0,
        gridArea: !0,
        gridRow: !0,
        gridRowEnd: !0,
        gridRowSpan: !0,
        gridRowStart: !0,
        gridColumn: !0,
        gridColumnEnd: !0,
        gridColumnSpan: !0,
        gridColumnStart: !0,
        fontWeight: !0,
        lineClamp: !0,
        lineHeight: !0,
        opacity: !0,
        order: !0,
        orphans: !0,
        tabSize: !0,
        widows: !0,
        zIndex: !0,
        zoom: !0,
        fillOpacity: !0,
        floodOpacity: !0,
        stopOpacity: !0,
        strokeDasharray: !0,
        strokeDashoffset: !0,
        strokeMiterlimit: !0,
        strokeOpacity: !0,
        strokeWidth: !0
      }, rb = ["Webkit", "ms", "Moz", "O"];
      Object.keys(qb).forEach(function(a) {
        rb.forEach(function(b) {
          b = b + a.charAt(0).toUpperCase() + a.substring(1), qb[b] = qb[a];
        });
      });
      function sb(a, b, c) {
        return b == null || typeof b == "boolean" || b === "" ? "" : c || typeof b != "number" || b === 0 || qb.hasOwnProperty(a) && qb[a] ? ("" + b).trim() : b + "px";
      }
      function tb(a, b) {
        a = a.style;
        for (var c in b)
          if (b.hasOwnProperty(c)) {
            var d = c.indexOf("--") === 0, e = sb(c, b[c], d);
            c === "float" && (c = "cssFloat"), d ? a.setProperty(c, e) : a[c] = e;
          }
      }
      var ub = m({ menuitem: !0 }, { area: !0, base: !0, br: !0, col: !0, embed: !0, hr: !0, img: !0, input: !0, keygen: !0, link: !0, meta: !0, param: !0, source: !0, track: !0, wbr: !0 });
      function vb(a, b) {
        if (b) {
          if (ub[a] && (b.children != null || b.dangerouslySetInnerHTML != null))
            throw Error(y(137, a));
          if (b.dangerouslySetInnerHTML != null) {
            if (b.children != null)
              throw Error(y(60));
            if (!(typeof b.dangerouslySetInnerHTML == "object" && "__html" in b.dangerouslySetInnerHTML))
              throw Error(y(61));
          }
          if (b.style != null && typeof b.style != "object")
            throw Error(y(62));
        }
      }
      function wb(a, b) {
        if (a.indexOf("-") === -1)
          return typeof b.is == "string";
        switch (a) {
          case "annotation-xml":
          case "color-profile":
          case "font-face":
          case "font-face-src":
          case "font-face-uri":
          case "font-face-format":
          case "font-face-name":
          case "missing-glyph":
            return !1;
          default:
            return !0;
        }
      }
      function xb(a) {
        return a = a.target || a.srcElement || window, a.correspondingUseElement && (a = a.correspondingUseElement), a.nodeType === 3 ? a.parentNode : a;
      }
      var yb = null, zb = null, Ab = null;
      function Bb(a) {
        if (a = Cb(a)) {
          if (typeof yb != "function")
            throw Error(y(280));
          var b = a.stateNode;
          b && (b = Db(b), yb(a.stateNode, a.type, b));
        }
      }
      function Eb(a) {
        zb ? Ab ? Ab.push(a) : Ab = [a] : zb = a;
      }
      function Fb() {
        if (zb) {
          var a = zb, b = Ab;
          if (Ab = zb = null, Bb(a), b)
            for (a = 0; a < b.length; a++)
              Bb(b[a]);
        }
      }
      function Gb(a, b) {
        return a(b);
      }
      function Hb(a, b, c, d, e) {
        return a(b, c, d, e);
      }
      function Ib() {
      }
      var Jb = Gb, Kb = !1, Lb = !1;
      function Mb() {
        (zb !== null || Ab !== null) && (Ib(), Fb());
      }
      function Nb(a, b, c) {
        if (Lb)
          return a(b, c);
        Lb = !0;
        try {
          return Jb(a, b, c);
        } finally {
          Lb = !1, Mb();
        }
      }
      function Ob(a, b) {
        var c = a.stateNode;
        if (c === null)
          return null;
        var d = Db(c);
        if (d === null)
          return null;
        c = d[b];
        a:
          switch (b) {
            case "onClick":
            case "onClickCapture":
            case "onDoubleClick":
            case "onDoubleClickCapture":
            case "onMouseDown":
            case "onMouseDownCapture":
            case "onMouseMove":
            case "onMouseMoveCapture":
            case "onMouseUp":
            case "onMouseUpCapture":
            case "onMouseEnter":
              (d = !d.disabled) || (a = a.type, d = !(a === "button" || a === "input" || a === "select" || a === "textarea")), a = !d;
              break a;
            default:
              a = !1;
          }
        if (a)
          return null;
        if (c && typeof c != "function")
          throw Error(y(231, b, typeof c));
        return c;
      }
      var Pb = !1;
      if (fa)
        try {
          Qb = {}, Object.defineProperty(Qb, "passive", { get: function() {
            Pb = !0;
          } }), window.addEventListener("test", Qb, Qb), window.removeEventListener("test", Qb, Qb);
        } catch {
          Pb = !1;
        }
      var Qb;
      function Rb(a, b, c, d, e, f, g, h, k) {
        var l = Array.prototype.slice.call(arguments, 3);
        try {
          b.apply(c, l);
        } catch (n) {
          this.onError(n);
        }
      }
      var Sb = !1, Tb = null, Ub = !1, Vb = null, Wb = { onError: function(a) {
        Sb = !0, Tb = a;
      } };
      function Xb(a, b, c, d, e, f, g, h, k) {
        Sb = !1, Tb = null, Rb.apply(Wb, arguments);
      }
      function Yb(a, b, c, d, e, f, g, h, k) {
        if (Xb.apply(this, arguments), Sb) {
          if (Sb) {
            var l = Tb;
            Sb = !1, Tb = null;
          } else
            throw Error(y(198));
          Ub || (Ub = !0, Vb = l);
        }
      }
      function Zb(a) {
        var b = a, c = a;
        if (a.alternate)
          for (; b.return; )
            b = b.return;
        else {
          a = b;
          do
            b = a, (b.flags & 1026) !== 0 && (c = b.return), a = b.return;
          while (a);
        }
        return b.tag === 3 ? c : null;
      }
      function $b(a) {
        if (a.tag === 13) {
          var b = a.memoizedState;
          if (b === null && (a = a.alternate, a !== null && (b = a.memoizedState)), b !== null)
            return b.dehydrated;
        }
        return null;
      }
      function ac(a) {
        if (Zb(a) !== a)
          throw Error(y(188));
      }
      function bc(a) {
        var b = a.alternate;
        if (!b) {
          if (b = Zb(a), b === null)
            throw Error(y(188));
          return b !== a ? null : a;
        }
        for (var c = a, d = b; ; ) {
          var e = c.return;
          if (e === null)
            break;
          var f = e.alternate;
          if (f === null) {
            if (d = e.return, d !== null) {
              c = d;
              continue;
            }
            break;
          }
          if (e.child === f.child) {
            for (f = e.child; f; ) {
              if (f === c)
                return ac(e), a;
              if (f === d)
                return ac(e), b;
              f = f.sibling;
            }
            throw Error(y(188));
          }
          if (c.return !== d.return)
            c = e, d = f;
          else {
            for (var g = !1, h = e.child; h; ) {
              if (h === c) {
                g = !0, c = e, d = f;
                break;
              }
              if (h === d) {
                g = !0, d = e, c = f;
                break;
              }
              h = h.sibling;
            }
            if (!g) {
              for (h = f.child; h; ) {
                if (h === c) {
                  g = !0, c = f, d = e;
                  break;
                }
                if (h === d) {
                  g = !0, d = f, c = e;
                  break;
                }
                h = h.sibling;
              }
              if (!g)
                throw Error(y(189));
            }
          }
          if (c.alternate !== d)
            throw Error(y(190));
        }
        if (c.tag !== 3)
          throw Error(y(188));
        return c.stateNode.current === c ? a : b;
      }
      function cc(a) {
        if (a = bc(a), !a)
          return null;
        for (var b = a; ; ) {
          if (b.tag === 5 || b.tag === 6)
            return b;
          if (b.child)
            b.child.return = b, b = b.child;
          else {
            if (b === a)
              break;
            for (; !b.sibling; ) {
              if (!b.return || b.return === a)
                return null;
              b = b.return;
            }
            b.sibling.return = b.return, b = b.sibling;
          }
        }
        return null;
      }
      function dc(a, b) {
        for (var c = a.alternate; b !== null; ) {
          if (b === a || b === c)
            return !0;
          b = b.return;
        }
        return !1;
      }
      var ec, fc, gc, hc, ic = !1, jc = [], kc = null, lc = null, mc = null, nc = /* @__PURE__ */ new Map(), oc = /* @__PURE__ */ new Map(), pc = [], qc = "mousedown mouseup touchcancel touchend touchstart auxclick dblclick pointercancel pointerdown pointerup dragend dragstart drop compositionend compositionstart keydown keypress keyup input textInput copy cut paste click change contextmenu reset submit".split(" ");
      function rc(a, b, c, d, e) {
        return { blockedOn: a, domEventName: b, eventSystemFlags: c | 16, nativeEvent: e, targetContainers: [d] };
      }
      function sc(a, b) {
        switch (a) {
          case "focusin":
          case "focusout":
            kc = null;
            break;
          case "dragenter":
          case "dragleave":
            lc = null;
            break;
          case "mouseover":
          case "mouseout":
            mc = null;
            break;
          case "pointerover":
          case "pointerout":
            nc.delete(b.pointerId);
            break;
          case "gotpointercapture":
          case "lostpointercapture":
            oc.delete(b.pointerId);
        }
      }
      function tc(a, b, c, d, e, f) {
        return a === null || a.nativeEvent !== f ? (a = rc(b, c, d, e, f), b !== null && (b = Cb(b), b !== null && fc(b)), a) : (a.eventSystemFlags |= d, b = a.targetContainers, e !== null && b.indexOf(e) === -1 && b.push(e), a);
      }
      function uc(a, b, c, d, e) {
        switch (b) {
          case "focusin":
            return kc = tc(kc, a, b, c, d, e), !0;
          case "dragenter":
            return lc = tc(lc, a, b, c, d, e), !0;
          case "mouseover":
            return mc = tc(mc, a, b, c, d, e), !0;
          case "pointerover":
            var f = e.pointerId;
            return nc.set(f, tc(nc.get(f) || null, a, b, c, d, e)), !0;
          case "gotpointercapture":
            return f = e.pointerId, oc.set(f, tc(oc.get(f) || null, a, b, c, d, e)), !0;
        }
        return !1;
      }
      function vc(a) {
        var b = wc(a.target);
        if (b !== null) {
          var c = Zb(b);
          if (c !== null) {
            if (b = c.tag, b === 13) {
              if (b = $b(c), b !== null) {
                a.blockedOn = b, hc(a.lanePriority, function() {
                  r.unstable_runWithPriority(a.priority, function() {
                    gc(c);
                  });
                });
                return;
              }
            } else if (b === 3 && c.stateNode.hydrate) {
              a.blockedOn = c.tag === 3 ? c.stateNode.containerInfo : null;
              return;
            }
          }
        }
        a.blockedOn = null;
      }
      function xc(a) {
        if (a.blockedOn !== null)
          return !1;
        for (var b = a.targetContainers; 0 < b.length; ) {
          var c = yc(a.domEventName, a.eventSystemFlags, b[0], a.nativeEvent);
          if (c !== null)
            return b = Cb(c), b !== null && fc(b), a.blockedOn = c, !1;
          b.shift();
        }
        return !0;
      }
      function zc(a, b, c) {
        xc(a) && c.delete(b);
      }
      function Ac() {
        for (ic = !1; 0 < jc.length; ) {
          var a = jc[0];
          if (a.blockedOn !== null) {
            a = Cb(a.blockedOn), a !== null && ec(a);
            break;
          }
          for (var b = a.targetContainers; 0 < b.length; ) {
            var c = yc(a.domEventName, a.eventSystemFlags, b[0], a.nativeEvent);
            if (c !== null) {
              a.blockedOn = c;
              break;
            }
            b.shift();
          }
          a.blockedOn === null && jc.shift();
        }
        kc !== null && xc(kc) && (kc = null), lc !== null && xc(lc) && (lc = null), mc !== null && xc(mc) && (mc = null), nc.forEach(zc), oc.forEach(zc);
      }
      function Bc(a, b) {
        a.blockedOn === b && (a.blockedOn = null, ic || (ic = !0, r.unstable_scheduleCallback(r.unstable_NormalPriority, Ac)));
      }
      function Cc(a) {
        function b(b2) {
          return Bc(b2, a);
        }
        if (0 < jc.length) {
          Bc(jc[0], a);
          for (var c = 1; c < jc.length; c++) {
            var d = jc[c];
            d.blockedOn === a && (d.blockedOn = null);
          }
        }
        for (kc !== null && Bc(kc, a), lc !== null && Bc(lc, a), mc !== null && Bc(mc, a), nc.forEach(b), oc.forEach(b), c = 0; c < pc.length; c++)
          d = pc[c], d.blockedOn === a && (d.blockedOn = null);
        for (; 0 < pc.length && (c = pc[0], c.blockedOn === null); )
          vc(c), c.blockedOn === null && pc.shift();
      }
      function Dc(a, b) {
        var c = {};
        return c[a.toLowerCase()] = b.toLowerCase(), c["Webkit" + a] = "webkit" + b, c["Moz" + a] = "moz" + b, c;
      }
      var Ec = { animationend: Dc("Animation", "AnimationEnd"), animationiteration: Dc("Animation", "AnimationIteration"), animationstart: Dc("Animation", "AnimationStart"), transitionend: Dc("Transition", "TransitionEnd") }, Fc = {}, Gc = {};
      fa && (Gc = document.createElement("div").style, "AnimationEvent" in window || (delete Ec.animationend.animation, delete Ec.animationiteration.animation, delete Ec.animationstart.animation), "TransitionEvent" in window || delete Ec.transitionend.transition);
      function Hc(a) {
        if (Fc[a])
          return Fc[a];
        if (!Ec[a])
          return a;
        var b = Ec[a], c;
        for (c in b)
          if (b.hasOwnProperty(c) && c in Gc)
            return Fc[a] = b[c];
        return a;
      }
      var Ic = Hc("animationend"), Jc = Hc("animationiteration"), Kc = Hc("animationstart"), Lc = Hc("transitionend"), Mc = /* @__PURE__ */ new Map(), Nc = /* @__PURE__ */ new Map(), Oc = [
        "abort",
        "abort",
        Ic,
        "animationEnd",
        Jc,
        "animationIteration",
        Kc,
        "animationStart",
        "canplay",
        "canPlay",
        "canplaythrough",
        "canPlayThrough",
        "durationchange",
        "durationChange",
        "emptied",
        "emptied",
        "encrypted",
        "encrypted",
        "ended",
        "ended",
        "error",
        "error",
        "gotpointercapture",
        "gotPointerCapture",
        "load",
        "load",
        "loadeddata",
        "loadedData",
        "loadedmetadata",
        "loadedMetadata",
        "loadstart",
        "loadStart",
        "lostpointercapture",
        "lostPointerCapture",
        "playing",
        "playing",
        "progress",
        "progress",
        "seeking",
        "seeking",
        "stalled",
        "stalled",
        "suspend",
        "suspend",
        "timeupdate",
        "timeUpdate",
        Lc,
        "transitionEnd",
        "waiting",
        "waiting"
      ];
      function Pc(a, b) {
        for (var c = 0; c < a.length; c += 2) {
          var d = a[c], e = a[c + 1];
          e = "on" + (e[0].toUpperCase() + e.slice(1)), Nc.set(d, b), Mc.set(d, e), da(e, [d]);
        }
      }
      var Qc = r.unstable_now;
      Qc();
      var F = 8;
      function Rc(a) {
        if ((1 & a) !== 0)
          return F = 15, 1;
        if ((2 & a) !== 0)
          return F = 14, 2;
        if ((4 & a) !== 0)
          return F = 13, 4;
        var b = 24 & a;
        return b !== 0 ? (F = 12, b) : (a & 32) !== 0 ? (F = 11, 32) : (b = 192 & a, b !== 0 ? (F = 10, b) : (a & 256) !== 0 ? (F = 9, 256) : (b = 3584 & a, b !== 0 ? (F = 8, b) : (a & 4096) !== 0 ? (F = 7, 4096) : (b = 4186112 & a, b !== 0 ? (F = 6, b) : (b = 62914560 & a, b !== 0 ? (F = 5, b) : a & 67108864 ? (F = 4, 67108864) : (a & 134217728) !== 0 ? (F = 3, 134217728) : (b = 805306368 & a, b !== 0 ? (F = 2, b) : (1073741824 & a) !== 0 ? (F = 1, 1073741824) : (F = 8, a))))));
      }
      function Sc(a) {
        switch (a) {
          case 99:
            return 15;
          case 98:
            return 10;
          case 97:
          case 96:
            return 8;
          case 95:
            return 2;
          default:
            return 0;
        }
      }
      function Tc(a) {
        switch (a) {
          case 15:
          case 14:
            return 99;
          case 13:
          case 12:
          case 11:
          case 10:
            return 98;
          case 9:
          case 8:
          case 7:
          case 6:
          case 4:
          case 5:
            return 97;
          case 3:
          case 2:
          case 1:
            return 95;
          case 0:
            return 90;
          default:
            throw Error(y(358, a));
        }
      }
      function Uc(a, b) {
        var c = a.pendingLanes;
        if (c === 0)
          return F = 0;
        var d = 0, e = 0, f = a.expiredLanes, g = a.suspendedLanes, h = a.pingedLanes;
        if (f !== 0)
          d = f, e = F = 15;
        else if (f = c & 134217727, f !== 0) {
          var k = f & ~g;
          k !== 0 ? (d = Rc(k), e = F) : (h &= f, h !== 0 && (d = Rc(h), e = F));
        } else
          f = c & ~g, f !== 0 ? (d = Rc(f), e = F) : h !== 0 && (d = Rc(h), e = F);
        if (d === 0)
          return 0;
        if (d = 31 - Vc(d), d = c & ((0 > d ? 0 : 1 << d) << 1) - 1, b !== 0 && b !== d && (b & g) === 0) {
          if (Rc(b), e <= F)
            return b;
          F = e;
        }
        if (b = a.entangledLanes, b !== 0)
          for (a = a.entanglements, b &= d; 0 < b; )
            c = 31 - Vc(b), e = 1 << c, d |= a[c], b &= ~e;
        return d;
      }
      function Wc(a) {
        return a = a.pendingLanes & -1073741825, a !== 0 ? a : a & 1073741824 ? 1073741824 : 0;
      }
      function Xc(a, b) {
        switch (a) {
          case 15:
            return 1;
          case 14:
            return 2;
          case 12:
            return a = Yc(24 & ~b), a === 0 ? Xc(10, b) : a;
          case 10:
            return a = Yc(192 & ~b), a === 0 ? Xc(8, b) : a;
          case 8:
            return a = Yc(3584 & ~b), a === 0 && (a = Yc(4186112 & ~b), a === 0 && (a = 512)), a;
          case 2:
            return b = Yc(805306368 & ~b), b === 0 && (b = 268435456), b;
        }
        throw Error(y(358, a));
      }
      function Yc(a) {
        return a & -a;
      }
      function Zc(a) {
        for (var b = [], c = 0; 31 > c; c++)
          b.push(a);
        return b;
      }
      function $c(a, b, c) {
        a.pendingLanes |= b;
        var d = b - 1;
        a.suspendedLanes &= d, a.pingedLanes &= d, a = a.eventTimes, b = 31 - Vc(b), a[b] = c;
      }
      var Vc = Math.clz32 ? Math.clz32 : ad, bd = Math.log, cd = Math.LN2;
      function ad(a) {
        return a === 0 ? 32 : 31 - (bd(a) / cd | 0) | 0;
      }
      var dd = r.unstable_UserBlockingPriority, ed = r.unstable_runWithPriority, fd = !0;
      function gd(a, b, c, d) {
        Kb || Ib();
        var e = hd, f = Kb;
        Kb = !0;
        try {
          Hb(e, a, b, c, d);
        } finally {
          (Kb = f) || Mb();
        }
      }
      function id(a, b, c, d) {
        ed(dd, hd.bind(null, a, b, c, d));
      }
      function hd(a, b, c, d) {
        if (fd) {
          var e;
          if ((e = (b & 4) === 0) && 0 < jc.length && -1 < qc.indexOf(a))
            a = rc(null, a, b, c, d), jc.push(a);
          else {
            var f = yc(a, b, c, d);
            if (f === null)
              e && sc(a, d);
            else {
              if (e) {
                if (-1 < qc.indexOf(a)) {
                  a = rc(f, a, b, c, d), jc.push(a);
                  return;
                }
                if (uc(f, a, b, c, d))
                  return;
                sc(a, d);
              }
              jd(a, b, d, null, c);
            }
          }
        }
      }
      function yc(a, b, c, d) {
        var e = xb(d);
        if (e = wc(e), e !== null) {
          var f = Zb(e);
          if (f === null)
            e = null;
          else {
            var g = f.tag;
            if (g === 13) {
              if (e = $b(f), e !== null)
                return e;
              e = null;
            } else if (g === 3) {
              if (f.stateNode.hydrate)
                return f.tag === 3 ? f.stateNode.containerInfo : null;
              e = null;
            } else
              f !== e && (e = null);
          }
        }
        return jd(a, b, d, e, c), null;
      }
      var kd = null, ld = null, md = null;
      function nd() {
        if (md)
          return md;
        var a, b = ld, c = b.length, d, e = "value" in kd ? kd.value : kd.textContent, f = e.length;
        for (a = 0; a < c && b[a] === e[a]; a++)
          ;
        var g = c - a;
        for (d = 1; d <= g && b[c - d] === e[f - d]; d++)
          ;
        return md = e.slice(a, 1 < d ? 1 - d : void 0);
      }
      function od(a) {
        var b = a.keyCode;
        return "charCode" in a ? (a = a.charCode, a === 0 && b === 13 && (a = 13)) : a = b, a === 10 && (a = 13), 32 <= a || a === 13 ? a : 0;
      }
      function pd() {
        return !0;
      }
      function qd() {
        return !1;
      }
      function rd(a) {
        function b(b2, d, e, f, g) {
          this._reactName = b2, this._targetInst = e, this.type = d, this.nativeEvent = f, this.target = g, this.currentTarget = null;
          for (var c in a)
            a.hasOwnProperty(c) && (b2 = a[c], this[c] = b2 ? b2(f) : f[c]);
          return this.isDefaultPrevented = (f.defaultPrevented != null ? f.defaultPrevented : f.returnValue === !1) ? pd : qd, this.isPropagationStopped = qd, this;
        }
        return m(b.prototype, { preventDefault: function() {
          this.defaultPrevented = !0;
          var a2 = this.nativeEvent;
          a2 && (a2.preventDefault ? a2.preventDefault() : typeof a2.returnValue != "unknown" && (a2.returnValue = !1), this.isDefaultPrevented = pd);
        }, stopPropagation: function() {
          var a2 = this.nativeEvent;
          a2 && (a2.stopPropagation ? a2.stopPropagation() : typeof a2.cancelBubble != "unknown" && (a2.cancelBubble = !0), this.isPropagationStopped = pd);
        }, persist: function() {
        }, isPersistent: pd }), b;
      }
      var sd = { eventPhase: 0, bubbles: 0, cancelable: 0, timeStamp: function(a) {
        return a.timeStamp || Date.now();
      }, defaultPrevented: 0, isTrusted: 0 }, td = rd(sd), ud = m({}, sd, { view: 0, detail: 0 }), vd = rd(ud), wd, xd, yd, Ad = m({}, ud, { screenX: 0, screenY: 0, clientX: 0, clientY: 0, pageX: 0, pageY: 0, ctrlKey: 0, shiftKey: 0, altKey: 0, metaKey: 0, getModifierState: zd, button: 0, buttons: 0, relatedTarget: function(a) {
        return a.relatedTarget === void 0 ? a.fromElement === a.srcElement ? a.toElement : a.fromElement : a.relatedTarget;
      }, movementX: function(a) {
        return "movementX" in a ? a.movementX : (a !== yd && (yd && a.type === "mousemove" ? (wd = a.screenX - yd.screenX, xd = a.screenY - yd.screenY) : xd = wd = 0, yd = a), wd);
      }, movementY: function(a) {
        return "movementY" in a ? a.movementY : xd;
      } }), Bd = rd(Ad), Cd = m({}, Ad, { dataTransfer: 0 }), Dd = rd(Cd), Ed = m({}, ud, { relatedTarget: 0 }), Fd = rd(Ed), Gd = m({}, sd, { animationName: 0, elapsedTime: 0, pseudoElement: 0 }), Hd = rd(Gd), Id = m({}, sd, { clipboardData: function(a) {
        return "clipboardData" in a ? a.clipboardData : window.clipboardData;
      } }), Jd = rd(Id), Kd = m({}, sd, { data: 0 }), Ld = rd(Kd), Md = {
        Esc: "Escape",
        Spacebar: " ",
        Left: "ArrowLeft",
        Up: "ArrowUp",
        Right: "ArrowRight",
        Down: "ArrowDown",
        Del: "Delete",
        Win: "OS",
        Menu: "ContextMenu",
        Apps: "ContextMenu",
        Scroll: "ScrollLock",
        MozPrintableKey: "Unidentified"
      }, Nd = {
        8: "Backspace",
        9: "Tab",
        12: "Clear",
        13: "Enter",
        16: "Shift",
        17: "Control",
        18: "Alt",
        19: "Pause",
        20: "CapsLock",
        27: "Escape",
        32: " ",
        33: "PageUp",
        34: "PageDown",
        35: "End",
        36: "Home",
        37: "ArrowLeft",
        38: "ArrowUp",
        39: "ArrowRight",
        40: "ArrowDown",
        45: "Insert",
        46: "Delete",
        112: "F1",
        113: "F2",
        114: "F3",
        115: "F4",
        116: "F5",
        117: "F6",
        118: "F7",
        119: "F8",
        120: "F9",
        121: "F10",
        122: "F11",
        123: "F12",
        144: "NumLock",
        145: "ScrollLock",
        224: "Meta"
      }, Od = { Alt: "altKey", Control: "ctrlKey", Meta: "metaKey", Shift: "shiftKey" };
      function Pd(a) {
        var b = this.nativeEvent;
        return b.getModifierState ? b.getModifierState(a) : (a = Od[a]) ? !!b[a] : !1;
      }
      function zd() {
        return Pd;
      }
      var Qd = m({}, ud, { key: function(a) {
        if (a.key) {
          var b = Md[a.key] || a.key;
          if (b !== "Unidentified")
            return b;
        }
        return a.type === "keypress" ? (a = od(a), a === 13 ? "Enter" : String.fromCharCode(a)) : a.type === "keydown" || a.type === "keyup" ? Nd[a.keyCode] || "Unidentified" : "";
      }, code: 0, location: 0, ctrlKey: 0, shiftKey: 0, altKey: 0, metaKey: 0, repeat: 0, locale: 0, getModifierState: zd, charCode: function(a) {
        return a.type === "keypress" ? od(a) : 0;
      }, keyCode: function(a) {
        return a.type === "keydown" || a.type === "keyup" ? a.keyCode : 0;
      }, which: function(a) {
        return a.type === "keypress" ? od(a) : a.type === "keydown" || a.type === "keyup" ? a.keyCode : 0;
      } }), Rd = rd(Qd), Sd = m({}, Ad, { pointerId: 0, width: 0, height: 0, pressure: 0, tangentialPressure: 0, tiltX: 0, tiltY: 0, twist: 0, pointerType: 0, isPrimary: 0 }), Td = rd(Sd), Ud = m({}, ud, { touches: 0, targetTouches: 0, changedTouches: 0, altKey: 0, metaKey: 0, ctrlKey: 0, shiftKey: 0, getModifierState: zd }), Vd = rd(Ud), Wd = m({}, sd, { propertyName: 0, elapsedTime: 0, pseudoElement: 0 }), Xd = rd(Wd), Yd = m({}, Ad, {
        deltaX: function(a) {
          return "deltaX" in a ? a.deltaX : "wheelDeltaX" in a ? -a.wheelDeltaX : 0;
        },
        deltaY: function(a) {
          return "deltaY" in a ? a.deltaY : "wheelDeltaY" in a ? -a.wheelDeltaY : "wheelDelta" in a ? -a.wheelDelta : 0;
        },
        deltaZ: 0,
        deltaMode: 0
      }), Zd = rd(Yd), $d = [9, 13, 27, 32], ae = fa && "CompositionEvent" in window, be = null;
      fa && "documentMode" in document && (be = document.documentMode);
      var ce = fa && "TextEvent" in window && !be, de = fa && (!ae || be && 8 < be && 11 >= be), ee = String.fromCharCode(32), fe = !1;
      function ge(a, b) {
        switch (a) {
          case "keyup":
            return $d.indexOf(b.keyCode) !== -1;
          case "keydown":
            return b.keyCode !== 229;
          case "keypress":
          case "mousedown":
          case "focusout":
            return !0;
          default:
            return !1;
        }
      }
      function he(a) {
        return a = a.detail, typeof a == "object" && "data" in a ? a.data : null;
      }
      var ie = !1;
      function je(a, b) {
        switch (a) {
          case "compositionend":
            return he(b);
          case "keypress":
            return b.which !== 32 ? null : (fe = !0, ee);
          case "textInput":
            return a = b.data, a === ee && fe ? null : a;
          default:
            return null;
        }
      }
      function ke(a, b) {
        if (ie)
          return a === "compositionend" || !ae && ge(a, b) ? (a = nd(), md = ld = kd = null, ie = !1, a) : null;
        switch (a) {
          case "paste":
            return null;
          case "keypress":
            if (!(b.ctrlKey || b.altKey || b.metaKey) || b.ctrlKey && b.altKey) {
              if (b.char && 1 < b.char.length)
                return b.char;
              if (b.which)
                return String.fromCharCode(b.which);
            }
            return null;
          case "compositionend":
            return de && b.locale !== "ko" ? null : b.data;
          default:
            return null;
        }
      }
      var le = { color: !0, date: !0, datetime: !0, "datetime-local": !0, email: !0, month: !0, number: !0, password: !0, range: !0, search: !0, tel: !0, text: !0, time: !0, url: !0, week: !0 };
      function me(a) {
        var b = a && a.nodeName && a.nodeName.toLowerCase();
        return b === "input" ? !!le[a.type] : b === "textarea";
      }
      function ne(a, b, c, d) {
        Eb(d), b = oe(b, "onChange"), 0 < b.length && (c = new td("onChange", "change", null, c, d), a.push({ event: c, listeners: b }));
      }
      var pe = null, qe = null;
      function re(a) {
        se(a, 0);
      }
      function te(a) {
        var b = ue(a);
        if (Wa(b))
          return a;
      }
      function ve(a, b) {
        if (a === "change")
          return b;
      }
      var we = !1;
      fa && (fa ? (ye = "oninput" in document, ye || (ze = document.createElement("div"), ze.setAttribute("oninput", "return;"), ye = typeof ze.oninput == "function"), xe = ye) : xe = !1, we = xe && (!document.documentMode || 9 < document.documentMode));
      var xe, ye, ze;
      function Ae() {
        pe && (pe.detachEvent("onpropertychange", Be), qe = pe = null);
      }
      function Be(a) {
        if (a.propertyName === "value" && te(qe)) {
          var b = [];
          if (ne(b, qe, a, xb(a)), a = re, Kb)
            a(b);
          else {
            Kb = !0;
            try {
              Gb(a, b);
            } finally {
              Kb = !1, Mb();
            }
          }
        }
      }
      function Ce(a, b, c) {
        a === "focusin" ? (Ae(), pe = b, qe = c, pe.attachEvent("onpropertychange", Be)) : a === "focusout" && Ae();
      }
      function De(a) {
        if (a === "selectionchange" || a === "keyup" || a === "keydown")
          return te(qe);
      }
      function Ee(a, b) {
        if (a === "click")
          return te(b);
      }
      function Fe(a, b) {
        if (a === "input" || a === "change")
          return te(b);
      }
      function Ge(a, b) {
        return a === b && (a !== 0 || 1 / a === 1 / b) || a !== a && b !== b;
      }
      var He = typeof Object.is == "function" ? Object.is : Ge, Ie = Object.prototype.hasOwnProperty;
      function Je(a, b) {
        if (He(a, b))
          return !0;
        if (typeof a != "object" || a === null || typeof b != "object" || b === null)
          return !1;
        var c = Object.keys(a), d = Object.keys(b);
        if (c.length !== d.length)
          return !1;
        for (d = 0; d < c.length; d++)
          if (!Ie.call(b, c[d]) || !He(a[c[d]], b[c[d]]))
            return !1;
        return !0;
      }
      function Ke(a) {
        for (; a && a.firstChild; )
          a = a.firstChild;
        return a;
      }
      function Le(a, b) {
        var c = Ke(a);
        a = 0;
        for (var d; c; ) {
          if (c.nodeType === 3) {
            if (d = a + c.textContent.length, a <= b && d >= b)
              return { node: c, offset: b - a };
            a = d;
          }
          a: {
            for (; c; ) {
              if (c.nextSibling) {
                c = c.nextSibling;
                break a;
              }
              c = c.parentNode;
            }
            c = void 0;
          }
          c = Ke(c);
        }
      }
      function Me(a, b) {
        return a && b ? a === b ? !0 : a && a.nodeType === 3 ? !1 : b && b.nodeType === 3 ? Me(a, b.parentNode) : "contains" in a ? a.contains(b) : a.compareDocumentPosition ? !!(a.compareDocumentPosition(b) & 16) : !1 : !1;
      }
      function Ne() {
        for (var a = window, b = Xa(); b instanceof a.HTMLIFrameElement; ) {
          try {
            var c = typeof b.contentWindow.location.href == "string";
          } catch {
            c = !1;
          }
          if (c)
            a = b.contentWindow;
          else
            break;
          b = Xa(a.document);
        }
        return b;
      }
      function Oe(a) {
        var b = a && a.nodeName && a.nodeName.toLowerCase();
        return b && (b === "input" && (a.type === "text" || a.type === "search" || a.type === "tel" || a.type === "url" || a.type === "password") || b === "textarea" || a.contentEditable === "true");
      }
      var Pe = fa && "documentMode" in document && 11 >= document.documentMode, Qe = null, Re = null, Se = null, Te = !1;
      function Ue(a, b, c) {
        var d = c.window === c ? c.document : c.nodeType === 9 ? c : c.ownerDocument;
        Te || Qe == null || Qe !== Xa(d) || (d = Qe, "selectionStart" in d && Oe(d) ? d = { start: d.selectionStart, end: d.selectionEnd } : (d = (d.ownerDocument && d.ownerDocument.defaultView || window).getSelection(), d = { anchorNode: d.anchorNode, anchorOffset: d.anchorOffset, focusNode: d.focusNode, focusOffset: d.focusOffset }), Se && Je(Se, d) || (Se = d, d = oe(Re, "onSelect"), 0 < d.length && (b = new td("onSelect", "select", null, b, c), a.push({ event: b, listeners: d }), b.target = Qe)));
      }
      Pc(
        "cancel cancel click click close close contextmenu contextMenu copy copy cut cut auxclick auxClick dblclick doubleClick dragend dragEnd dragstart dragStart drop drop focusin focus focusout blur input input invalid invalid keydown keyDown keypress keyPress keyup keyUp mousedown mouseDown mouseup mouseUp paste paste pause pause play play pointercancel pointerCancel pointerdown pointerDown pointerup pointerUp ratechange rateChange reset reset seeked seeked submit submit touchcancel touchCancel touchend touchEnd touchstart touchStart volumechange volumeChange".split(" "),
        0
      );
      Pc("drag drag dragenter dragEnter dragexit dragExit dragleave dragLeave dragover dragOver mousemove mouseMove mouseout mouseOut mouseover mouseOver pointermove pointerMove pointerout pointerOut pointerover pointerOver scroll scroll toggle toggle touchmove touchMove wheel wheel".split(" "), 1);
      Pc(Oc, 2);
      for (Ve = "change selectionchange textInput compositionstart compositionend compositionupdate".split(" "), We = 0; We < Ve.length; We++)
        Nc.set(Ve[We], 0);
      var Ve, We;
      ea("onMouseEnter", ["mouseout", "mouseover"]);
      ea("onMouseLeave", ["mouseout", "mouseover"]);
      ea("onPointerEnter", ["pointerout", "pointerover"]);
      ea("onPointerLeave", ["pointerout", "pointerover"]);
      da("onChange", "change click focusin focusout input keydown keyup selectionchange".split(" "));
      da("onSelect", "focusout contextmenu dragend focusin keydown keyup mousedown mouseup selectionchange".split(" "));
      da("onBeforeInput", ["compositionend", "keypress", "textInput", "paste"]);
      da("onCompositionEnd", "compositionend focusout keydown keypress keyup mousedown".split(" "));
      da("onCompositionStart", "compositionstart focusout keydown keypress keyup mousedown".split(" "));
      da("onCompositionUpdate", "compositionupdate focusout keydown keypress keyup mousedown".split(" "));
      var Xe = "abort canplay canplaythrough durationchange emptied encrypted ended error loadeddata loadedmetadata loadstart pause play playing progress ratechange seeked seeking stalled suspend timeupdate volumechange waiting".split(" "), Ye = new Set("cancel close invalid load scroll toggle".split(" ").concat(Xe));
      function Ze(a, b, c) {
        var d = a.type || "unknown-event";
        a.currentTarget = c, Yb(d, b, void 0, a), a.currentTarget = null;
      }
      function se(a, b) {
        b = (b & 4) !== 0;
        for (var c = 0; c < a.length; c++) {
          var d = a[c], e = d.event;
          d = d.listeners;
          a: {
            var f = void 0;
            if (b)
              for (var g = d.length - 1; 0 <= g; g--) {
                var h = d[g], k = h.instance, l = h.currentTarget;
                if (h = h.listener, k !== f && e.isPropagationStopped())
                  break a;
                Ze(e, h, l), f = k;
              }
            else
              for (g = 0; g < d.length; g++) {
                if (h = d[g], k = h.instance, l = h.currentTarget, h = h.listener, k !== f && e.isPropagationStopped())
                  break a;
                Ze(e, h, l), f = k;
              }
          }
        }
        if (Ub)
          throw a = Vb, Ub = !1, Vb = null, a;
      }
      function G(a, b) {
        var c = $e(b), d = a + "__bubble";
        c.has(d) || (af(b, a, 2, !1), c.add(d));
      }
      var bf = "_reactListening" + Math.random().toString(36).slice(2);
      function cf(a) {
        a[bf] || (a[bf] = !0, ba.forEach(function(b) {
          Ye.has(b) || df(b, !1, a, null), df(b, !0, a, null);
        }));
      }
      function df(a, b, c, d) {
        var e = 4 < arguments.length && arguments[4] !== void 0 ? arguments[4] : 0, f = c;
        if (a === "selectionchange" && c.nodeType !== 9 && (f = c.ownerDocument), d !== null && !b && Ye.has(a)) {
          if (a !== "scroll")
            return;
          e |= 2, f = d;
        }
        var g = $e(f), h = a + "__" + (b ? "capture" : "bubble");
        g.has(h) || (b && (e |= 4), af(f, a, e, b), g.add(h));
      }
      function af(a, b, c, d) {
        var e = Nc.get(b);
        switch (e === void 0 ? 2 : e) {
          case 0:
            e = gd;
            break;
          case 1:
            e = id;
            break;
          default:
            e = hd;
        }
        c = e.bind(null, b, c, a), e = void 0, !Pb || b !== "touchstart" && b !== "touchmove" && b !== "wheel" || (e = !0), d ? e !== void 0 ? a.addEventListener(b, c, { capture: !0, passive: e }) : a.addEventListener(b, c, !0) : e !== void 0 ? a.addEventListener(b, c, { passive: e }) : a.addEventListener(b, c, !1);
      }
      function jd(a, b, c, d, e) {
        var f = d;
        if ((b & 1) === 0 && (b & 2) === 0 && d !== null)
          a:
            for (; ; ) {
              if (d === null)
                return;
              var g = d.tag;
              if (g === 3 || g === 4) {
                var h = d.stateNode.containerInfo;
                if (h === e || h.nodeType === 8 && h.parentNode === e)
                  break;
                if (g === 4)
                  for (g = d.return; g !== null; ) {
                    var k = g.tag;
                    if ((k === 3 || k === 4) && (k = g.stateNode.containerInfo, k === e || k.nodeType === 8 && k.parentNode === e))
                      return;
                    g = g.return;
                  }
                for (; h !== null; ) {
                  if (g = wc(h), g === null)
                    return;
                  if (k = g.tag, k === 5 || k === 6) {
                    d = f = g;
                    continue a;
                  }
                  h = h.parentNode;
                }
              }
              d = d.return;
            }
        Nb(function() {
          var d2 = f, e2 = xb(c), g2 = [];
          a: {
            var h2 = Mc.get(a);
            if (h2 !== void 0) {
              var k2 = td, x = a;
              switch (a) {
                case "keypress":
                  if (od(c) === 0)
                    break a;
                case "keydown":
                case "keyup":
                  k2 = Rd;
                  break;
                case "focusin":
                  x = "focus", k2 = Fd;
                  break;
                case "focusout":
                  x = "blur", k2 = Fd;
                  break;
                case "beforeblur":
                case "afterblur":
                  k2 = Fd;
                  break;
                case "click":
                  if (c.button === 2)
                    break a;
                case "auxclick":
                case "dblclick":
                case "mousedown":
                case "mousemove":
                case "mouseup":
                case "mouseout":
                case "mouseover":
                case "contextmenu":
                  k2 = Bd;
                  break;
                case "drag":
                case "dragend":
                case "dragenter":
                case "dragexit":
                case "dragleave":
                case "dragover":
                case "dragstart":
                case "drop":
                  k2 = Dd;
                  break;
                case "touchcancel":
                case "touchend":
                case "touchmove":
                case "touchstart":
                  k2 = Vd;
                  break;
                case Ic:
                case Jc:
                case Kc:
                  k2 = Hd;
                  break;
                case Lc:
                  k2 = Xd;
                  break;
                case "scroll":
                  k2 = vd;
                  break;
                case "wheel":
                  k2 = Zd;
                  break;
                case "copy":
                case "cut":
                case "paste":
                  k2 = Jd;
                  break;
                case "gotpointercapture":
                case "lostpointercapture":
                case "pointercancel":
                case "pointerdown":
                case "pointermove":
                case "pointerout":
                case "pointerover":
                case "pointerup":
                  k2 = Td;
              }
              var w = (b & 4) !== 0, z = !w && a === "scroll", u = w ? h2 !== null ? h2 + "Capture" : null : h2;
              w = [];
              for (var t = d2, q; t !== null; ) {
                q = t;
                var v = q.stateNode;
                if (q.tag === 5 && v !== null && (q = v, u !== null && (v = Ob(t, u), v != null && w.push(ef(t, v, q)))), z)
                  break;
                t = t.return;
              }
              0 < w.length && (h2 = new k2(h2, x, null, c, e2), g2.push({ event: h2, listeners: w }));
            }
          }
          if ((b & 7) === 0) {
            a: {
              if (h2 = a === "mouseover" || a === "pointerover", k2 = a === "mouseout" || a === "pointerout", h2 && (b & 16) === 0 && (x = c.relatedTarget || c.fromElement) && (wc(x) || x[ff]))
                break a;
              if ((k2 || h2) && (h2 = e2.window === e2 ? e2 : (h2 = e2.ownerDocument) ? h2.defaultView || h2.parentWindow : window, k2 ? (x = c.relatedTarget || c.toElement, k2 = d2, x = x ? wc(x) : null, x !== null && (z = Zb(x), x !== z || x.tag !== 5 && x.tag !== 6) && (x = null)) : (k2 = null, x = d2), k2 !== x)) {
                if (w = Bd, v = "onMouseLeave", u = "onMouseEnter", t = "mouse", (a === "pointerout" || a === "pointerover") && (w = Td, v = "onPointerLeave", u = "onPointerEnter", t = "pointer"), z = k2 == null ? h2 : ue(k2), q = x == null ? h2 : ue(x), h2 = new w(v, t + "leave", k2, c, e2), h2.target = z, h2.relatedTarget = q, v = null, wc(e2) === d2 && (w = new w(u, t + "enter", x, c, e2), w.target = q, w.relatedTarget = z, v = w), z = v, k2 && x)
                  b: {
                    for (w = k2, u = x, t = 0, q = w; q; q = gf(q))
                      t++;
                    for (q = 0, v = u; v; v = gf(v))
                      q++;
                    for (; 0 < t - q; )
                      w = gf(w), t--;
                    for (; 0 < q - t; )
                      u = gf(u), q--;
                    for (; t--; ) {
                      if (w === u || u !== null && w === u.alternate)
                        break b;
                      w = gf(w), u = gf(u);
                    }
                    w = null;
                  }
                else
                  w = null;
                k2 !== null && hf(g2, h2, k2, w, !1), x !== null && z !== null && hf(g2, z, x, w, !0);
              }
            }
            a: {
              if (h2 = d2 ? ue(d2) : window, k2 = h2.nodeName && h2.nodeName.toLowerCase(), k2 === "select" || k2 === "input" && h2.type === "file")
                var J = ve;
              else if (me(h2))
                if (we)
                  J = Fe;
                else {
                  J = De;
                  var K = Ce;
                }
              else
                (k2 = h2.nodeName) && k2.toLowerCase() === "input" && (h2.type === "checkbox" || h2.type === "radio") && (J = Ee);
              if (J && (J = J(a, d2))) {
                ne(g2, J, c, e2);
                break a;
              }
              K && K(a, h2, d2), a === "focusout" && (K = h2._wrapperState) && K.controlled && h2.type === "number" && bb(h2, "number", h2.value);
            }
            switch (K = d2 ? ue(d2) : window, a) {
              case "focusin":
                (me(K) || K.contentEditable === "true") && (Qe = K, Re = d2, Se = null);
                break;
              case "focusout":
                Se = Re = Qe = null;
                break;
              case "mousedown":
                Te = !0;
                break;
              case "contextmenu":
              case "mouseup":
              case "dragend":
                Te = !1, Ue(g2, c, e2);
                break;
              case "selectionchange":
                if (Pe)
                  break;
              case "keydown":
              case "keyup":
                Ue(g2, c, e2);
            }
            var Q;
            if (ae)
              b: {
                switch (a) {
                  case "compositionstart":
                    var L = "onCompositionStart";
                    break b;
                  case "compositionend":
                    L = "onCompositionEnd";
                    break b;
                  case "compositionupdate":
                    L = "onCompositionUpdate";
                    break b;
                }
                L = void 0;
              }
            else
              ie ? ge(a, c) && (L = "onCompositionEnd") : a === "keydown" && c.keyCode === 229 && (L = "onCompositionStart");
            L && (de && c.locale !== "ko" && (ie || L !== "onCompositionStart" ? L === "onCompositionEnd" && ie && (Q = nd()) : (kd = e2, ld = "value" in kd ? kd.value : kd.textContent, ie = !0)), K = oe(d2, L), 0 < K.length && (L = new Ld(L, a, null, c, e2), g2.push({ event: L, listeners: K }), Q ? L.data = Q : (Q = he(c), Q !== null && (L.data = Q)))), (Q = ce ? je(a, c) : ke(a, c)) && (d2 = oe(d2, "onBeforeInput"), 0 < d2.length && (e2 = new Ld(
              "onBeforeInput",
              "beforeinput",
              null,
              c,
              e2
            ), g2.push({ event: e2, listeners: d2 }), e2.data = Q));
          }
          se(g2, b);
        });
      }
      function ef(a, b, c) {
        return { instance: a, listener: b, currentTarget: c };
      }
      function oe(a, b) {
        for (var c = b + "Capture", d = []; a !== null; ) {
          var e = a, f = e.stateNode;
          e.tag === 5 && f !== null && (e = f, f = Ob(a, c), f != null && d.unshift(ef(a, f, e)), f = Ob(a, b), f != null && d.push(ef(a, f, e))), a = a.return;
        }
        return d;
      }
      function gf(a) {
        if (a === null)
          return null;
        do
          a = a.return;
        while (a && a.tag !== 5);
        return a || null;
      }
      function hf(a, b, c, d, e) {
        for (var f = b._reactName, g = []; c !== null && c !== d; ) {
          var h = c, k = h.alternate, l = h.stateNode;
          if (k !== null && k === d)
            break;
          h.tag === 5 && l !== null && (h = l, e ? (k = Ob(c, f), k != null && g.unshift(ef(c, k, h))) : e || (k = Ob(c, f), k != null && g.push(ef(c, k, h)))), c = c.return;
        }
        g.length !== 0 && a.push({ event: b, listeners: g });
      }
      function jf() {
      }
      var kf = null, lf = null;
      function mf(a, b) {
        switch (a) {
          case "button":
          case "input":
          case "select":
          case "textarea":
            return !!b.autoFocus;
        }
        return !1;
      }
      function nf(a, b) {
        return a === "textarea" || a === "option" || a === "noscript" || typeof b.children == "string" || typeof b.children == "number" || typeof b.dangerouslySetInnerHTML == "object" && b.dangerouslySetInnerHTML !== null && b.dangerouslySetInnerHTML.__html != null;
      }
      var of = typeof setTimeout == "function" ? setTimeout : void 0, pf = typeof clearTimeout == "function" ? clearTimeout : void 0;
      function qf(a) {
        a.nodeType === 1 ? a.textContent = "" : a.nodeType === 9 && (a = a.body, a != null && (a.textContent = ""));
      }
      function rf(a) {
        for (; a != null; a = a.nextSibling) {
          var b = a.nodeType;
          if (b === 1 || b === 3)
            break;
        }
        return a;
      }
      function sf(a) {
        a = a.previousSibling;
        for (var b = 0; a; ) {
          if (a.nodeType === 8) {
            var c = a.data;
            if (c === "$" || c === "$!" || c === "$?") {
              if (b === 0)
                return a;
              b--;
            } else
              c === "/$" && b++;
          }
          a = a.previousSibling;
        }
        return null;
      }
      var tf = 0;
      function uf(a) {
        return { $$typeof: Ga, toString: a, valueOf: a };
      }
      var vf = Math.random().toString(36).slice(2), wf = "__reactFiber$" + vf, xf = "__reactProps$" + vf, ff = "__reactContainer$" + vf, yf = "__reactEvents$" + vf;
      function wc(a) {
        var b = a[wf];
        if (b)
          return b;
        for (var c = a.parentNode; c; ) {
          if (b = c[ff] || c[wf]) {
            if (c = b.alternate, b.child !== null || c !== null && c.child !== null)
              for (a = sf(a); a !== null; ) {
                if (c = a[wf])
                  return c;
                a = sf(a);
              }
            return b;
          }
          a = c, c = a.parentNode;
        }
        return null;
      }
      function Cb(a) {
        return a = a[wf] || a[ff], !a || a.tag !== 5 && a.tag !== 6 && a.tag !== 13 && a.tag !== 3 ? null : a;
      }
      function ue(a) {
        if (a.tag === 5 || a.tag === 6)
          return a.stateNode;
        throw Error(y(33));
      }
      function Db(a) {
        return a[xf] || null;
      }
      function $e(a) {
        var b = a[yf];
        return b === void 0 && (b = a[yf] = /* @__PURE__ */ new Set()), b;
      }
      var zf = [], Af = -1;
      function Bf(a) {
        return { current: a };
      }
      function H(a) {
        0 > Af || (a.current = zf[Af], zf[Af] = null, Af--);
      }
      function I(a, b) {
        Af++, zf[Af] = a.current, a.current = b;
      }
      var Cf = {}, M = Bf(Cf), N = Bf(!1), Df = Cf;
      function Ef(a, b) {
        var c = a.type.contextTypes;
        if (!c)
          return Cf;
        var d = a.stateNode;
        if (d && d.__reactInternalMemoizedUnmaskedChildContext === b)
          return d.__reactInternalMemoizedMaskedChildContext;
        var e = {}, f;
        for (f in c)
          e[f] = b[f];
        return d && (a = a.stateNode, a.__reactInternalMemoizedUnmaskedChildContext = b, a.__reactInternalMemoizedMaskedChildContext = e), e;
      }
      function Ff(a) {
        return a = a.childContextTypes, a != null;
      }
      function Gf() {
        H(N), H(M);
      }
      function Hf(a, b, c) {
        if (M.current !== Cf)
          throw Error(y(168));
        I(M, b), I(N, c);
      }
      function If(a, b, c) {
        var d = a.stateNode;
        if (a = b.childContextTypes, typeof d.getChildContext != "function")
          return c;
        d = d.getChildContext();
        for (var e in d)
          if (!(e in a))
            throw Error(y(108, Ra(b) || "Unknown", e));
        return m({}, c, d);
      }
      function Jf(a) {
        return a = (a = a.stateNode) && a.__reactInternalMemoizedMergedChildContext || Cf, Df = M.current, I(M, a), I(N, N.current), !0;
      }
      function Kf(a, b, c) {
        var d = a.stateNode;
        if (!d)
          throw Error(y(169));
        c ? (a = If(a, b, Df), d.__reactInternalMemoizedMergedChildContext = a, H(N), H(M), I(M, a)) : H(N), I(N, c);
      }
      var Lf = null, Mf = null, Nf = r.unstable_runWithPriority, Of = r.unstable_scheduleCallback, Pf = r.unstable_cancelCallback, Qf = r.unstable_shouldYield, Rf = r.unstable_requestPaint, Sf = r.unstable_now, Tf = r.unstable_getCurrentPriorityLevel, Uf = r.unstable_ImmediatePriority, Vf = r.unstable_UserBlockingPriority, Wf = r.unstable_NormalPriority, Xf = r.unstable_LowPriority, Yf = r.unstable_IdlePriority, Zf = {}, $f = Rf !== void 0 ? Rf : function() {
      }, ag = null, bg = null, cg = !1, dg = Sf(), O = 1e4 > dg ? Sf : function() {
        return Sf() - dg;
      };
      function eg() {
        switch (Tf()) {
          case Uf:
            return 99;
          case Vf:
            return 98;
          case Wf:
            return 97;
          case Xf:
            return 96;
          case Yf:
            return 95;
          default:
            throw Error(y(332));
        }
      }
      function fg(a) {
        switch (a) {
          case 99:
            return Uf;
          case 98:
            return Vf;
          case 97:
            return Wf;
          case 96:
            return Xf;
          case 95:
            return Yf;
          default:
            throw Error(y(332));
        }
      }
      function gg(a, b) {
        return a = fg(a), Nf(a, b);
      }
      function hg(a, b, c) {
        return a = fg(a), Of(a, b, c);
      }
      function ig() {
        if (bg !== null) {
          var a = bg;
          bg = null, Pf(a);
        }
        jg();
      }
      function jg() {
        if (!cg && ag !== null) {
          cg = !0;
          var a = 0;
          try {
            var b = ag;
            gg(99, function() {
              for (; a < b.length; a++) {
                var c = b[a];
                do
                  c = c(!0);
                while (c !== null);
              }
            }), ag = null;
          } catch (c) {
            throw ag !== null && (ag = ag.slice(a + 1)), Of(Uf, ig), c;
          } finally {
            cg = !1;
          }
        }
      }
      var kg = ra.ReactCurrentBatchConfig;
      function lg(a, b) {
        if (a && a.defaultProps) {
          b = m({}, b), a = a.defaultProps;
          for (var c in a)
            b[c] === void 0 && (b[c] = a[c]);
          return b;
        }
        return b;
      }
      var mg = Bf(null), ng = null, og = null, pg = null;
      function qg() {
        pg = og = ng = null;
      }
      function rg(a) {
        var b = mg.current;
        H(mg), a.type._context._currentValue = b;
      }
      function sg(a, b) {
        for (; a !== null; ) {
          var c = a.alternate;
          if ((a.childLanes & b) === b) {
            if (c === null || (c.childLanes & b) === b)
              break;
            c.childLanes |= b;
          } else
            a.childLanes |= b, c !== null && (c.childLanes |= b);
          a = a.return;
        }
      }
      function tg(a, b) {
        ng = a, pg = og = null, a = a.dependencies, a !== null && a.firstContext !== null && ((a.lanes & b) !== 0 && (ug = !0), a.firstContext = null);
      }
      function vg(a, b) {
        if (pg !== a && b !== !1 && b !== 0)
          if ((typeof b != "number" || b === 1073741823) && (pg = a, b = 1073741823), b = { context: a, observedBits: b, next: null }, og === null) {
            if (ng === null)
              throw Error(y(308));
            og = b, ng.dependencies = { lanes: 0, firstContext: b, responders: null };
          } else
            og = og.next = b;
        return a._currentValue;
      }
      var wg = !1;
      function xg(a) {
        a.updateQueue = { baseState: a.memoizedState, firstBaseUpdate: null, lastBaseUpdate: null, shared: { pending: null }, effects: null };
      }
      function yg(a, b) {
        a = a.updateQueue, b.updateQueue === a && (b.updateQueue = { baseState: a.baseState, firstBaseUpdate: a.firstBaseUpdate, lastBaseUpdate: a.lastBaseUpdate, shared: a.shared, effects: a.effects });
      }
      function zg(a, b) {
        return { eventTime: a, lane: b, tag: 0, payload: null, callback: null, next: null };
      }
      function Ag(a, b) {
        if (a = a.updateQueue, a !== null) {
          a = a.shared;
          var c = a.pending;
          c === null ? b.next = b : (b.next = c.next, c.next = b), a.pending = b;
        }
      }
      function Bg(a, b) {
        var c = a.updateQueue, d = a.alternate;
        if (d !== null && (d = d.updateQueue, c === d)) {
          var e = null, f = null;
          if (c = c.firstBaseUpdate, c !== null) {
            do {
              var g = { eventTime: c.eventTime, lane: c.lane, tag: c.tag, payload: c.payload, callback: c.callback, next: null };
              f === null ? e = f = g : f = f.next = g, c = c.next;
            } while (c !== null);
            f === null ? e = f = b : f = f.next = b;
          } else
            e = f = b;
          c = { baseState: d.baseState, firstBaseUpdate: e, lastBaseUpdate: f, shared: d.shared, effects: d.effects }, a.updateQueue = c;
          return;
        }
        a = c.lastBaseUpdate, a === null ? c.firstBaseUpdate = b : a.next = b, c.lastBaseUpdate = b;
      }
      function Cg(a, b, c, d) {
        var e = a.updateQueue;
        wg = !1;
        var f = e.firstBaseUpdate, g = e.lastBaseUpdate, h = e.shared.pending;
        if (h !== null) {
          e.shared.pending = null;
          var k = h, l = k.next;
          k.next = null, g === null ? f = l : g.next = l, g = k;
          var n = a.alternate;
          if (n !== null) {
            n = n.updateQueue;
            var A = n.lastBaseUpdate;
            A !== g && (A === null ? n.firstBaseUpdate = l : A.next = l, n.lastBaseUpdate = k);
          }
        }
        if (f !== null) {
          A = e.baseState, g = 0, n = l = k = null;
          do {
            h = f.lane;
            var p = f.eventTime;
            if ((d & h) === h) {
              n !== null && (n = n.next = {
                eventTime: p,
                lane: 0,
                tag: f.tag,
                payload: f.payload,
                callback: f.callback,
                next: null
              });
              a: {
                var C = a, x = f;
                switch (h = b, p = c, x.tag) {
                  case 1:
                    if (C = x.payload, typeof C == "function") {
                      A = C.call(p, A, h);
                      break a;
                    }
                    A = C;
                    break a;
                  case 3:
                    C.flags = C.flags & -4097 | 64;
                  case 0:
                    if (C = x.payload, h = typeof C == "function" ? C.call(p, A, h) : C, h == null)
                      break a;
                    A = m({}, A, h);
                    break a;
                  case 2:
                    wg = !0;
                }
              }
              f.callback !== null && (a.flags |= 32, h = e.effects, h === null ? e.effects = [f] : h.push(f));
            } else
              p = { eventTime: p, lane: h, tag: f.tag, payload: f.payload, callback: f.callback, next: null }, n === null ? (l = n = p, k = A) : n = n.next = p, g |= h;
            if (f = f.next, f === null) {
              if (h = e.shared.pending, h === null)
                break;
              f = h.next, h.next = null, e.lastBaseUpdate = h, e.shared.pending = null;
            }
          } while (1);
          n === null && (k = A), e.baseState = k, e.firstBaseUpdate = l, e.lastBaseUpdate = n, Dg |= g, a.lanes = g, a.memoizedState = A;
        }
      }
      function Eg(a, b, c) {
        if (a = b.effects, b.effects = null, a !== null)
          for (b = 0; b < a.length; b++) {
            var d = a[b], e = d.callback;
            if (e !== null) {
              if (d.callback = null, d = c, typeof e != "function")
                throw Error(y(191, e));
              e.call(d);
            }
          }
      }
      var Fg = new aa.Component().refs;
      function Gg(a, b, c, d) {
        b = a.memoizedState, c = c(d, b), c = c == null ? b : m({}, b, c), a.memoizedState = c, a.lanes === 0 && (a.updateQueue.baseState = c);
      }
      var Kg = { isMounted: function(a) {
        return (a = a._reactInternals) ? Zb(a) === a : !1;
      }, enqueueSetState: function(a, b, c) {
        a = a._reactInternals;
        var d = Hg(), e = Ig(a), f = zg(d, e);
        f.payload = b, c != null && (f.callback = c), Ag(a, f), Jg(a, e, d);
      }, enqueueReplaceState: function(a, b, c) {
        a = a._reactInternals;
        var d = Hg(), e = Ig(a), f = zg(d, e);
        f.tag = 1, f.payload = b, c != null && (f.callback = c), Ag(a, f), Jg(a, e, d);
      }, enqueueForceUpdate: function(a, b) {
        a = a._reactInternals;
        var c = Hg(), d = Ig(a), e = zg(c, d);
        e.tag = 2, b != null && (e.callback = b), Ag(a, e), Jg(a, d, c);
      } };
      function Lg(a, b, c, d, e, f, g) {
        return a = a.stateNode, typeof a.shouldComponentUpdate == "function" ? a.shouldComponentUpdate(d, f, g) : b.prototype && b.prototype.isPureReactComponent ? !Je(c, d) || !Je(e, f) : !0;
      }
      function Mg(a, b, c) {
        var d = !1, e = Cf, f = b.contextType;
        return typeof f == "object" && f !== null ? f = vg(f) : (e = Ff(b) ? Df : M.current, d = b.contextTypes, f = (d = d != null) ? Ef(a, e) : Cf), b = new b(c, f), a.memoizedState = b.state !== null && b.state !== void 0 ? b.state : null, b.updater = Kg, a.stateNode = b, b._reactInternals = a, d && (a = a.stateNode, a.__reactInternalMemoizedUnmaskedChildContext = e, a.__reactInternalMemoizedMaskedChildContext = f), b;
      }
      function Ng(a, b, c, d) {
        a = b.state, typeof b.componentWillReceiveProps == "function" && b.componentWillReceiveProps(c, d), typeof b.UNSAFE_componentWillReceiveProps == "function" && b.UNSAFE_componentWillReceiveProps(c, d), b.state !== a && Kg.enqueueReplaceState(b, b.state, null);
      }
      function Og(a, b, c, d) {
        var e = a.stateNode;
        e.props = c, e.state = a.memoizedState, e.refs = Fg, xg(a);
        var f = b.contextType;
        typeof f == "object" && f !== null ? e.context = vg(f) : (f = Ff(b) ? Df : M.current, e.context = Ef(a, f)), Cg(a, c, e, d), e.state = a.memoizedState, f = b.getDerivedStateFromProps, typeof f == "function" && (Gg(a, b, f, c), e.state = a.memoizedState), typeof b.getDerivedStateFromProps == "function" || typeof e.getSnapshotBeforeUpdate == "function" || typeof e.UNSAFE_componentWillMount != "function" && typeof e.componentWillMount != "function" || (b = e.state, typeof e.componentWillMount == "function" && e.componentWillMount(), typeof e.UNSAFE_componentWillMount == "function" && e.UNSAFE_componentWillMount(), b !== e.state && Kg.enqueueReplaceState(e, e.state, null), Cg(a, c, e, d), e.state = a.memoizedState), typeof e.componentDidMount == "function" && (a.flags |= 4);
      }
      var Pg = Array.isArray;
      function Qg(a, b, c) {
        if (a = c.ref, a !== null && typeof a != "function" && typeof a != "object") {
          if (c._owner) {
            if (c = c._owner, c) {
              if (c.tag !== 1)
                throw Error(y(309));
              var d = c.stateNode;
            }
            if (!d)
              throw Error(y(147, a));
            var e = "" + a;
            return b !== null && b.ref !== null && typeof b.ref == "function" && b.ref._stringRef === e ? b.ref : (b = function(a2) {
              var b2 = d.refs;
              b2 === Fg && (b2 = d.refs = {}), a2 === null ? delete b2[e] : b2[e] = a2;
            }, b._stringRef = e, b);
          }
          if (typeof a != "string")
            throw Error(y(284));
          if (!c._owner)
            throw Error(y(290, a));
        }
        return a;
      }
      function Rg(a, b) {
        if (a.type !== "textarea")
          throw Error(y(31, Object.prototype.toString.call(b) === "[object Object]" ? "object with keys {" + Object.keys(b).join(", ") + "}" : b));
      }
      function Sg(a) {
        function b(b2, c2) {
          if (a) {
            var d2 = b2.lastEffect;
            d2 !== null ? (d2.nextEffect = c2, b2.lastEffect = c2) : b2.firstEffect = b2.lastEffect = c2, c2.nextEffect = null, c2.flags = 8;
          }
        }
        function c(c2, d2) {
          if (!a)
            return null;
          for (; d2 !== null; )
            b(c2, d2), d2 = d2.sibling;
          return null;
        }
        function d(a2, b2) {
          for (a2 = /* @__PURE__ */ new Map(); b2 !== null; )
            b2.key !== null ? a2.set(b2.key, b2) : a2.set(b2.index, b2), b2 = b2.sibling;
          return a2;
        }
        function e(a2, b2) {
          return a2 = Tg(a2, b2), a2.index = 0, a2.sibling = null, a2;
        }
        function f(b2, c2, d2) {
          return b2.index = d2, a ? (d2 = b2.alternate, d2 !== null ? (d2 = d2.index, d2 < c2 ? (b2.flags = 2, c2) : d2) : (b2.flags = 2, c2)) : c2;
        }
        function g(b2) {
          return a && b2.alternate === null && (b2.flags = 2), b2;
        }
        function h(a2, b2, c2, d2) {
          return b2 === null || b2.tag !== 6 ? (b2 = Ug(c2, a2.mode, d2), b2.return = a2, b2) : (b2 = e(b2, c2), b2.return = a2, b2);
        }
        function k(a2, b2, c2, d2) {
          return b2 !== null && b2.elementType === c2.type ? (d2 = e(b2, c2.props), d2.ref = Qg(a2, b2, c2), d2.return = a2, d2) : (d2 = Vg(c2.type, c2.key, c2.props, null, a2.mode, d2), d2.ref = Qg(a2, b2, c2), d2.return = a2, d2);
        }
        function l(a2, b2, c2, d2) {
          return b2 === null || b2.tag !== 4 || b2.stateNode.containerInfo !== c2.containerInfo || b2.stateNode.implementation !== c2.implementation ? (b2 = Wg(c2, a2.mode, d2), b2.return = a2, b2) : (b2 = e(b2, c2.children || []), b2.return = a2, b2);
        }
        function n(a2, b2, c2, d2, f2) {
          return b2 === null || b2.tag !== 7 ? (b2 = Xg(c2, a2.mode, d2, f2), b2.return = a2, b2) : (b2 = e(b2, c2), b2.return = a2, b2);
        }
        function A(a2, b2, c2) {
          if (typeof b2 == "string" || typeof b2 == "number")
            return b2 = Ug("" + b2, a2.mode, c2), b2.return = a2, b2;
          if (typeof b2 == "object" && b2 !== null) {
            switch (b2.$$typeof) {
              case sa:
                return c2 = Vg(b2.type, b2.key, b2.props, null, a2.mode, c2), c2.ref = Qg(a2, null, b2), c2.return = a2, c2;
              case ta:
                return b2 = Wg(b2, a2.mode, c2), b2.return = a2, b2;
            }
            if (Pg(b2) || La(b2))
              return b2 = Xg(
                b2,
                a2.mode,
                c2,
                null
              ), b2.return = a2, b2;
            Rg(a2, b2);
          }
          return null;
        }
        function p(a2, b2, c2, d2) {
          var e2 = b2 !== null ? b2.key : null;
          if (typeof c2 == "string" || typeof c2 == "number")
            return e2 !== null ? null : h(a2, b2, "" + c2, d2);
          if (typeof c2 == "object" && c2 !== null) {
            switch (c2.$$typeof) {
              case sa:
                return c2.key === e2 ? c2.type === ua ? n(a2, b2, c2.props.children, d2, e2) : k(a2, b2, c2, d2) : null;
              case ta:
                return c2.key === e2 ? l(a2, b2, c2, d2) : null;
            }
            if (Pg(c2) || La(c2))
              return e2 !== null ? null : n(a2, b2, c2, d2, null);
            Rg(a2, c2);
          }
          return null;
        }
        function C(a2, b2, c2, d2, e2) {
          if (typeof d2 == "string" || typeof d2 == "number")
            return a2 = a2.get(c2) || null, h(b2, a2, "" + d2, e2);
          if (typeof d2 == "object" && d2 !== null) {
            switch (d2.$$typeof) {
              case sa:
                return a2 = a2.get(d2.key === null ? c2 : d2.key) || null, d2.type === ua ? n(b2, a2, d2.props.children, e2, d2.key) : k(b2, a2, d2, e2);
              case ta:
                return a2 = a2.get(d2.key === null ? c2 : d2.key) || null, l(b2, a2, d2, e2);
            }
            if (Pg(d2) || La(d2))
              return a2 = a2.get(c2) || null, n(b2, a2, d2, e2, null);
            Rg(b2, d2);
          }
          return null;
        }
        function x(e2, g2, h2, k2) {
          for (var l2 = null, t = null, u = g2, z = g2 = 0, q = null; u !== null && z < h2.length; z++) {
            u.index > z ? (q = u, u = null) : q = u.sibling;
            var n2 = p(e2, u, h2[z], k2);
            if (n2 === null) {
              u === null && (u = q);
              break;
            }
            a && u && n2.alternate === null && b(e2, u), g2 = f(n2, g2, z), t === null ? l2 = n2 : t.sibling = n2, t = n2, u = q;
          }
          if (z === h2.length)
            return c(e2, u), l2;
          if (u === null) {
            for (; z < h2.length; z++)
              u = A(e2, h2[z], k2), u !== null && (g2 = f(u, g2, z), t === null ? l2 = u : t.sibling = u, t = u);
            return l2;
          }
          for (u = d(e2, u); z < h2.length; z++)
            q = C(u, e2, z, h2[z], k2), q !== null && (a && q.alternate !== null && u.delete(q.key === null ? z : q.key), g2 = f(q, g2, z), t === null ? l2 = q : t.sibling = q, t = q);
          return a && u.forEach(function(a2) {
            return b(e2, a2);
          }), l2;
        }
        function w(e2, g2, h2, k2) {
          var l2 = La(h2);
          if (typeof l2 != "function")
            throw Error(y(150));
          if (h2 = l2.call(h2), h2 == null)
            throw Error(y(151));
          for (var t = l2 = null, u = g2, z = g2 = 0, q = null, n2 = h2.next(); u !== null && !n2.done; z++, n2 = h2.next()) {
            u.index > z ? (q = u, u = null) : q = u.sibling;
            var w2 = p(e2, u, n2.value, k2);
            if (w2 === null) {
              u === null && (u = q);
              break;
            }
            a && u && w2.alternate === null && b(e2, u), g2 = f(w2, g2, z), t === null ? l2 = w2 : t.sibling = w2, t = w2, u = q;
          }
          if (n2.done)
            return c(e2, u), l2;
          if (u === null) {
            for (; !n2.done; z++, n2 = h2.next())
              n2 = A(e2, n2.value, k2), n2 !== null && (g2 = f(n2, g2, z), t === null ? l2 = n2 : t.sibling = n2, t = n2);
            return l2;
          }
          for (u = d(e2, u); !n2.done; z++, n2 = h2.next())
            n2 = C(u, e2, z, n2.value, k2), n2 !== null && (a && n2.alternate !== null && u.delete(n2.key === null ? z : n2.key), g2 = f(n2, g2, z), t === null ? l2 = n2 : t.sibling = n2, t = n2);
          return a && u.forEach(function(a2) {
            return b(e2, a2);
          }), l2;
        }
        return function(a2, d2, f2, h2) {
          var k2 = typeof f2 == "object" && f2 !== null && f2.type === ua && f2.key === null;
          k2 && (f2 = f2.props.children);
          var l2 = typeof f2 == "object" && f2 !== null;
          if (l2)
            switch (f2.$$typeof) {
              case sa:
                a: {
                  for (l2 = f2.key, k2 = d2; k2 !== null; ) {
                    if (k2.key === l2) {
                      switch (k2.tag) {
                        case 7:
                          if (f2.type === ua) {
                            c(a2, k2.sibling), d2 = e(k2, f2.props.children), d2.return = a2, a2 = d2;
                            break a;
                          }
                          break;
                        default:
                          if (k2.elementType === f2.type) {
                            c(a2, k2.sibling), d2 = e(k2, f2.props), d2.ref = Qg(a2, k2, f2), d2.return = a2, a2 = d2;
                            break a;
                          }
                      }
                      c(a2, k2);
                      break;
                    } else
                      b(a2, k2);
                    k2 = k2.sibling;
                  }
                  f2.type === ua ? (d2 = Xg(f2.props.children, a2.mode, h2, f2.key), d2.return = a2, a2 = d2) : (h2 = Vg(f2.type, f2.key, f2.props, null, a2.mode, h2), h2.ref = Qg(a2, d2, f2), h2.return = a2, a2 = h2);
                }
                return g(a2);
              case ta:
                a: {
                  for (k2 = f2.key; d2 !== null; ) {
                    if (d2.key === k2)
                      if (d2.tag === 4 && d2.stateNode.containerInfo === f2.containerInfo && d2.stateNode.implementation === f2.implementation) {
                        c(a2, d2.sibling), d2 = e(d2, f2.children || []), d2.return = a2, a2 = d2;
                        break a;
                      } else {
                        c(a2, d2);
                        break;
                      }
                    else
                      b(a2, d2);
                    d2 = d2.sibling;
                  }
                  d2 = Wg(f2, a2.mode, h2), d2.return = a2, a2 = d2;
                }
                return g(a2);
            }
          if (typeof f2 == "string" || typeof f2 == "number")
            return f2 = "" + f2, d2 !== null && d2.tag === 6 ? (c(a2, d2.sibling), d2 = e(d2, f2), d2.return = a2, a2 = d2) : (c(a2, d2), d2 = Ug(f2, a2.mode, h2), d2.return = a2, a2 = d2), g(a2);
          if (Pg(f2))
            return x(a2, d2, f2, h2);
          if (La(f2))
            return w(a2, d2, f2, h2);
          if (l2 && Rg(a2, f2), typeof f2 > "u" && !k2)
            switch (a2.tag) {
              case 1:
              case 22:
              case 0:
              case 11:
              case 15:
                throw Error(y(152, Ra(a2.type) || "Component"));
            }
          return c(a2, d2);
        };
      }
      var Yg = Sg(!0), Zg = Sg(!1), $g = {}, ah = Bf($g), bh = Bf($g), ch = Bf($g);
      function dh(a) {
        if (a === $g)
          throw Error(y(174));
        return a;
      }
      function eh(a, b) {
        switch (I(ch, b), I(bh, a), I(ah, $g), a = b.nodeType, a) {
          case 9:
          case 11:
            b = (b = b.documentElement) ? b.namespaceURI : mb(null, "");
            break;
          default:
            a = a === 8 ? b.parentNode : b, b = a.namespaceURI || null, a = a.tagName, b = mb(b, a);
        }
        H(ah), I(ah, b);
      }
      function fh() {
        H(ah), H(bh), H(ch);
      }
      function gh(a) {
        dh(ch.current);
        var b = dh(ah.current), c = mb(b, a.type);
        b !== c && (I(bh, a), I(ah, c));
      }
      function hh(a) {
        bh.current === a && (H(ah), H(bh));
      }
      var P = Bf(0);
      function ih(a) {
        for (var b = a; b !== null; ) {
          if (b.tag === 13) {
            var c = b.memoizedState;
            if (c !== null && (c = c.dehydrated, c === null || c.data === "$?" || c.data === "$!"))
              return b;
          } else if (b.tag === 19 && b.memoizedProps.revealOrder !== void 0) {
            if ((b.flags & 64) !== 0)
              return b;
          } else if (b.child !== null) {
            b.child.return = b, b = b.child;
            continue;
          }
          if (b === a)
            break;
          for (; b.sibling === null; ) {
            if (b.return === null || b.return === a)
              return null;
            b = b.return;
          }
          b.sibling.return = b.return, b = b.sibling;
        }
        return null;
      }
      var jh = null, kh = null, lh = !1;
      function mh(a, b) {
        var c = nh(5, null, null, 0);
        c.elementType = "DELETED", c.type = "DELETED", c.stateNode = b, c.return = a, c.flags = 8, a.lastEffect !== null ? (a.lastEffect.nextEffect = c, a.lastEffect = c) : a.firstEffect = a.lastEffect = c;
      }
      function oh(a, b) {
        switch (a.tag) {
          case 5:
            var c = a.type;
            return b = b.nodeType !== 1 || c.toLowerCase() !== b.nodeName.toLowerCase() ? null : b, b !== null ? (a.stateNode = b, !0) : !1;
          case 6:
            return b = a.pendingProps === "" || b.nodeType !== 3 ? null : b, b !== null ? (a.stateNode = b, !0) : !1;
          case 13:
            return !1;
          default:
            return !1;
        }
      }
      function ph(a) {
        if (lh) {
          var b = kh;
          if (b) {
            var c = b;
            if (!oh(a, b)) {
              if (b = rf(c.nextSibling), !b || !oh(a, b)) {
                a.flags = a.flags & -1025 | 2, lh = !1, jh = a;
                return;
              }
              mh(jh, c);
            }
            jh = a, kh = rf(b.firstChild);
          } else
            a.flags = a.flags & -1025 | 2, lh = !1, jh = a;
        }
      }
      function qh(a) {
        for (a = a.return; a !== null && a.tag !== 5 && a.tag !== 3 && a.tag !== 13; )
          a = a.return;
        jh = a;
      }
      function rh(a) {
        if (a !== jh)
          return !1;
        if (!lh)
          return qh(a), lh = !0, !1;
        var b = a.type;
        if (a.tag !== 5 || b !== "head" && b !== "body" && !nf(b, a.memoizedProps))
          for (b = kh; b; )
            mh(a, b), b = rf(b.nextSibling);
        if (qh(a), a.tag === 13) {
          if (a = a.memoizedState, a = a !== null ? a.dehydrated : null, !a)
            throw Error(y(317));
          a: {
            for (a = a.nextSibling, b = 0; a; ) {
              if (a.nodeType === 8) {
                var c = a.data;
                if (c === "/$") {
                  if (b === 0) {
                    kh = rf(a.nextSibling);
                    break a;
                  }
                  b--;
                } else
                  c !== "$" && c !== "$!" && c !== "$?" || b++;
              }
              a = a.nextSibling;
            }
            kh = null;
          }
        } else
          kh = jh ? rf(a.stateNode.nextSibling) : null;
        return !0;
      }
      function sh() {
        kh = jh = null, lh = !1;
      }
      var th = [];
      function uh() {
        for (var a = 0; a < th.length; a++)
          th[a]._workInProgressVersionPrimary = null;
        th.length = 0;
      }
      var vh = ra.ReactCurrentDispatcher, wh = ra.ReactCurrentBatchConfig, xh = 0, R = null, S = null, T = null, yh = !1, zh = !1;
      function Ah() {
        throw Error(y(321));
      }
      function Bh(a, b) {
        if (b === null)
          return !1;
        for (var c = 0; c < b.length && c < a.length; c++)
          if (!He(a[c], b[c]))
            return !1;
        return !0;
      }
      function Ch(a, b, c, d, e, f) {
        if (xh = f, R = b, b.memoizedState = null, b.updateQueue = null, b.lanes = 0, vh.current = a === null || a.memoizedState === null ? Dh : Eh, a = c(d, e), zh) {
          f = 0;
          do {
            if (zh = !1, !(25 > f))
              throw Error(y(301));
            f += 1, T = S = null, b.updateQueue = null, vh.current = Fh, a = c(d, e);
          } while (zh);
        }
        if (vh.current = Gh, b = S !== null && S.next !== null, xh = 0, T = S = R = null, yh = !1, b)
          throw Error(y(300));
        return a;
      }
      function Hh() {
        var a = { memoizedState: null, baseState: null, baseQueue: null, queue: null, next: null };
        return T === null ? R.memoizedState = T = a : T = T.next = a, T;
      }
      function Ih() {
        if (S === null) {
          var a = R.alternate;
          a = a !== null ? a.memoizedState : null;
        } else
          a = S.next;
        var b = T === null ? R.memoizedState : T.next;
        if (b !== null)
          T = b, S = a;
        else {
          if (a === null)
            throw Error(y(310));
          S = a, a = { memoizedState: S.memoizedState, baseState: S.baseState, baseQueue: S.baseQueue, queue: S.queue, next: null }, T === null ? R.memoizedState = T = a : T = T.next = a;
        }
        return T;
      }
      function Jh(a, b) {
        return typeof b == "function" ? b(a) : b;
      }
      function Kh(a) {
        var b = Ih(), c = b.queue;
        if (c === null)
          throw Error(y(311));
        c.lastRenderedReducer = a;
        var d = S, e = d.baseQueue, f = c.pending;
        if (f !== null) {
          if (e !== null) {
            var g = e.next;
            e.next = f.next, f.next = g;
          }
          d.baseQueue = e = f, c.pending = null;
        }
        if (e !== null) {
          e = e.next, d = d.baseState;
          var h = g = f = null, k = e;
          do {
            var l = k.lane;
            if ((xh & l) === l)
              h !== null && (h = h.next = { lane: 0, action: k.action, eagerReducer: k.eagerReducer, eagerState: k.eagerState, next: null }), d = k.eagerReducer === a ? k.eagerState : a(d, k.action);
            else {
              var n = {
                lane: l,
                action: k.action,
                eagerReducer: k.eagerReducer,
                eagerState: k.eagerState,
                next: null
              };
              h === null ? (g = h = n, f = d) : h = h.next = n, R.lanes |= l, Dg |= l;
            }
            k = k.next;
          } while (k !== null && k !== e);
          h === null ? f = d : h.next = g, He(d, b.memoizedState) || (ug = !0), b.memoizedState = d, b.baseState = f, b.baseQueue = h, c.lastRenderedState = d;
        }
        return [b.memoizedState, c.dispatch];
      }
      function Lh(a) {
        var b = Ih(), c = b.queue;
        if (c === null)
          throw Error(y(311));
        c.lastRenderedReducer = a;
        var d = c.dispatch, e = c.pending, f = b.memoizedState;
        if (e !== null) {
          c.pending = null;
          var g = e = e.next;
          do
            f = a(f, g.action), g = g.next;
          while (g !== e);
          He(f, b.memoizedState) || (ug = !0), b.memoizedState = f, b.baseQueue === null && (b.baseState = f), c.lastRenderedState = f;
        }
        return [f, d];
      }
      function Mh(a, b, c) {
        var d = b._getVersion;
        d = d(b._source);
        var e = b._workInProgressVersionPrimary;
        if (e !== null ? a = e === d : (a = a.mutableReadLanes, (a = (xh & a) === a) && (b._workInProgressVersionPrimary = d, th.push(b))), a)
          return c(b._source);
        throw th.push(b), Error(y(350));
      }
      function Nh(a, b, c, d) {
        var e = U;
        if (e === null)
          throw Error(y(349));
        var f = b._getVersion, g = f(b._source), h = vh.current, k = h.useState(function() {
          return Mh(e, b, c);
        }), l = k[1], n = k[0];
        k = T;
        var A = a.memoizedState, p = A.refs, C = p.getSnapshot, x = A.source;
        A = A.subscribe;
        var w = R;
        return a.memoizedState = { refs: p, source: b, subscribe: d }, h.useEffect(function() {
          p.getSnapshot = c, p.setSnapshot = l;
          var a2 = f(b._source);
          if (!He(g, a2)) {
            a2 = c(b._source), He(n, a2) || (l(a2), a2 = Ig(w), e.mutableReadLanes |= a2 & e.pendingLanes), a2 = e.mutableReadLanes, e.entangledLanes |= a2;
            for (var d2 = e.entanglements, h2 = a2; 0 < h2; ) {
              var k2 = 31 - Vc(h2), v = 1 << k2;
              d2[k2] |= a2, h2 &= ~v;
            }
          }
        }, [c, b, d]), h.useEffect(function() {
          return d(b._source, function() {
            var a2 = p.getSnapshot, c2 = p.setSnapshot;
            try {
              c2(a2(b._source));
              var d2 = Ig(w);
              e.mutableReadLanes |= d2 & e.pendingLanes;
            } catch (q) {
              c2(function() {
                throw q;
              });
            }
          });
        }, [b, d]), He(C, c) && He(x, b) && He(A, d) || (a = { pending: null, dispatch: null, lastRenderedReducer: Jh, lastRenderedState: n }, a.dispatch = l = Oh.bind(null, R, a), k.queue = a, k.baseQueue = null, n = Mh(e, b, c), k.memoizedState = k.baseState = n), n;
      }
      function Ph(a, b, c) {
        var d = Ih();
        return Nh(d, a, b, c);
      }
      function Qh(a) {
        var b = Hh();
        return typeof a == "function" && (a = a()), b.memoizedState = b.baseState = a, a = b.queue = { pending: null, dispatch: null, lastRenderedReducer: Jh, lastRenderedState: a }, a = a.dispatch = Oh.bind(null, R, a), [b.memoizedState, a];
      }
      function Rh(a, b, c, d) {
        return a = { tag: a, create: b, destroy: c, deps: d, next: null }, b = R.updateQueue, b === null ? (b = { lastEffect: null }, R.updateQueue = b, b.lastEffect = a.next = a) : (c = b.lastEffect, c === null ? b.lastEffect = a.next = a : (d = c.next, c.next = a, a.next = d, b.lastEffect = a)), a;
      }
      function Sh(a) {
        var b = Hh();
        return a = { current: a }, b.memoizedState = a;
      }
      function Th() {
        return Ih().memoizedState;
      }
      function Uh(a, b, c, d) {
        var e = Hh();
        R.flags |= a, e.memoizedState = Rh(1 | b, c, void 0, d === void 0 ? null : d);
      }
      function Vh(a, b, c, d) {
        var e = Ih();
        d = d === void 0 ? null : d;
        var f = void 0;
        if (S !== null) {
          var g = S.memoizedState;
          if (f = g.destroy, d !== null && Bh(d, g.deps)) {
            Rh(b, c, f, d);
            return;
          }
        }
        R.flags |= a, e.memoizedState = Rh(1 | b, c, f, d);
      }
      function Wh(a, b) {
        return Uh(516, 4, a, b);
      }
      function Xh(a, b) {
        return Vh(516, 4, a, b);
      }
      function Yh(a, b) {
        return Vh(4, 2, a, b);
      }
      function Zh(a, b) {
        if (typeof b == "function")
          return a = a(), b(a), function() {
            b(null);
          };
        if (b != null)
          return a = a(), b.current = a, function() {
            b.current = null;
          };
      }
      function $h(a, b, c) {
        return c = c != null ? c.concat([a]) : null, Vh(4, 2, Zh.bind(null, b, a), c);
      }
      function ai() {
      }
      function bi(a, b) {
        var c = Ih();
        b = b === void 0 ? null : b;
        var d = c.memoizedState;
        return d !== null && b !== null && Bh(b, d[1]) ? d[0] : (c.memoizedState = [a, b], a);
      }
      function ci(a, b) {
        var c = Ih();
        b = b === void 0 ? null : b;
        var d = c.memoizedState;
        return d !== null && b !== null && Bh(b, d[1]) ? d[0] : (a = a(), c.memoizedState = [a, b], a);
      }
      function di(a, b) {
        var c = eg();
        gg(98 > c ? 98 : c, function() {
          a(!0);
        }), gg(97 < c ? 97 : c, function() {
          var c2 = wh.transition;
          wh.transition = 1;
          try {
            a(!1), b();
          } finally {
            wh.transition = c2;
          }
        });
      }
      function Oh(a, b, c) {
        var d = Hg(), e = Ig(a), f = { lane: e, action: c, eagerReducer: null, eagerState: null, next: null }, g = b.pending;
        if (g === null ? f.next = f : (f.next = g.next, g.next = f), b.pending = f, g = a.alternate, a === R || g !== null && g === R)
          zh = yh = !0;
        else {
          if (a.lanes === 0 && (g === null || g.lanes === 0) && (g = b.lastRenderedReducer, g !== null))
            try {
              var h = b.lastRenderedState, k = g(h, c);
              if (f.eagerReducer = g, f.eagerState = k, He(k, h))
                return;
            } catch {
            } finally {
            }
          Jg(a, e, d);
        }
      }
      var Gh = { readContext: vg, useCallback: Ah, useContext: Ah, useEffect: Ah, useImperativeHandle: Ah, useLayoutEffect: Ah, useMemo: Ah, useReducer: Ah, useRef: Ah, useState: Ah, useDebugValue: Ah, useDeferredValue: Ah, useTransition: Ah, useMutableSource: Ah, useOpaqueIdentifier: Ah, unstable_isNewReconciler: !1 }, Dh = { readContext: vg, useCallback: function(a, b) {
        return Hh().memoizedState = [a, b === void 0 ? null : b], a;
      }, useContext: vg, useEffect: Wh, useImperativeHandle: function(a, b, c) {
        return c = c != null ? c.concat([a]) : null, Uh(4, 2, Zh.bind(
          null,
          b,
          a
        ), c);
      }, useLayoutEffect: function(a, b) {
        return Uh(4, 2, a, b);
      }, useMemo: function(a, b) {
        var c = Hh();
        return b = b === void 0 ? null : b, a = a(), c.memoizedState = [a, b], a;
      }, useReducer: function(a, b, c) {
        var d = Hh();
        return b = c !== void 0 ? c(b) : b, d.memoizedState = d.baseState = b, a = d.queue = { pending: null, dispatch: null, lastRenderedReducer: a, lastRenderedState: b }, a = a.dispatch = Oh.bind(null, R, a), [d.memoizedState, a];
      }, useRef: Sh, useState: Qh, useDebugValue: ai, useDeferredValue: function(a) {
        var b = Qh(a), c = b[0], d = b[1];
        return Wh(function() {
          var b2 = wh.transition;
          wh.transition = 1;
          try {
            d(a);
          } finally {
            wh.transition = b2;
          }
        }, [a]), c;
      }, useTransition: function() {
        var a = Qh(!1), b = a[0];
        return a = di.bind(null, a[1]), Sh(a), [a, b];
      }, useMutableSource: function(a, b, c) {
        var d = Hh();
        return d.memoizedState = { refs: { getSnapshot: b, setSnapshot: null }, source: a, subscribe: c }, Nh(d, a, b, c);
      }, useOpaqueIdentifier: function() {
        if (lh) {
          var a = !1, b = uf(function() {
            throw a || (a = !0, c("r:" + (tf++).toString(36))), Error(y(355));
          }), c = Qh(b)[1];
          return (R.mode & 2) === 0 && (R.flags |= 516, Rh(
            5,
            function() {
              c("r:" + (tf++).toString(36));
            },
            void 0,
            null
          )), b;
        }
        return b = "r:" + (tf++).toString(36), Qh(b), b;
      }, unstable_isNewReconciler: !1 }, Eh = { readContext: vg, useCallback: bi, useContext: vg, useEffect: Xh, useImperativeHandle: $h, useLayoutEffect: Yh, useMemo: ci, useReducer: Kh, useRef: Th, useState: function() {
        return Kh(Jh);
      }, useDebugValue: ai, useDeferredValue: function(a) {
        var b = Kh(Jh), c = b[0], d = b[1];
        return Xh(function() {
          var b2 = wh.transition;
          wh.transition = 1;
          try {
            d(a);
          } finally {
            wh.transition = b2;
          }
        }, [a]), c;
      }, useTransition: function() {
        var a = Kh(Jh)[0];
        return [
          Th().current,
          a
        ];
      }, useMutableSource: Ph, useOpaqueIdentifier: function() {
        return Kh(Jh)[0];
      }, unstable_isNewReconciler: !1 }, Fh = { readContext: vg, useCallback: bi, useContext: vg, useEffect: Xh, useImperativeHandle: $h, useLayoutEffect: Yh, useMemo: ci, useReducer: Lh, useRef: Th, useState: function() {
        return Lh(Jh);
      }, useDebugValue: ai, useDeferredValue: function(a) {
        var b = Lh(Jh), c = b[0], d = b[1];
        return Xh(function() {
          var b2 = wh.transition;
          wh.transition = 1;
          try {
            d(a);
          } finally {
            wh.transition = b2;
          }
        }, [a]), c;
      }, useTransition: function() {
        var a = Lh(Jh)[0];
        return [
          Th().current,
          a
        ];
      }, useMutableSource: Ph, useOpaqueIdentifier: function() {
        return Lh(Jh)[0];
      }, unstable_isNewReconciler: !1 }, ei = ra.ReactCurrentOwner, ug = !1;
      function fi(a, b, c, d) {
        b.child = a === null ? Zg(b, null, c, d) : Yg(b, a.child, c, d);
      }
      function gi(a, b, c, d, e) {
        c = c.render;
        var f = b.ref;
        return tg(b, e), d = Ch(a, b, c, d, f, e), a !== null && !ug ? (b.updateQueue = a.updateQueue, b.flags &= -517, a.lanes &= ~e, hi(a, b, e)) : (b.flags |= 1, fi(a, b, d, e), b.child);
      }
      function ii(a, b, c, d, e, f) {
        if (a === null) {
          var g = c.type;
          return typeof g == "function" && !ji(g) && g.defaultProps === void 0 && c.compare === null && c.defaultProps === void 0 ? (b.tag = 15, b.type = g, ki(a, b, g, d, e, f)) : (a = Vg(c.type, null, d, b, b.mode, f), a.ref = b.ref, a.return = b, b.child = a);
        }
        return g = a.child, (e & f) === 0 && (e = g.memoizedProps, c = c.compare, c = c !== null ? c : Je, c(e, d) && a.ref === b.ref) ? hi(a, b, f) : (b.flags |= 1, a = Tg(g, d), a.ref = b.ref, a.return = b, b.child = a);
      }
      function ki(a, b, c, d, e, f) {
        if (a !== null && Je(a.memoizedProps, d) && a.ref === b.ref)
          if (ug = !1, (f & e) !== 0)
            (a.flags & 16384) !== 0 && (ug = !0);
          else
            return b.lanes = a.lanes, hi(a, b, f);
        return li(a, b, c, d, f);
      }
      function mi(a, b, c) {
        var d = b.pendingProps, e = d.children, f = a !== null ? a.memoizedState : null;
        if (d.mode === "hidden" || d.mode === "unstable-defer-without-hiding")
          if ((b.mode & 4) === 0)
            b.memoizedState = { baseLanes: 0 }, ni(b, c);
          else if ((c & 1073741824) !== 0)
            b.memoizedState = { baseLanes: 0 }, ni(b, f !== null ? f.baseLanes : c);
          else
            return a = f !== null ? f.baseLanes | c : c, b.lanes = b.childLanes = 1073741824, b.memoizedState = { baseLanes: a }, ni(b, a), null;
        else
          f !== null ? (d = f.baseLanes | c, b.memoizedState = null) : d = c, ni(b, d);
        return fi(a, b, e, c), b.child;
      }
      function oi(a, b) {
        var c = b.ref;
        (a === null && c !== null || a !== null && a.ref !== c) && (b.flags |= 128);
      }
      function li(a, b, c, d, e) {
        var f = Ff(c) ? Df : M.current;
        return f = Ef(b, f), tg(b, e), c = Ch(a, b, c, d, f, e), a !== null && !ug ? (b.updateQueue = a.updateQueue, b.flags &= -517, a.lanes &= ~e, hi(a, b, e)) : (b.flags |= 1, fi(a, b, c, e), b.child);
      }
      function pi(a, b, c, d, e) {
        if (Ff(c)) {
          var f = !0;
          Jf(b);
        } else
          f = !1;
        if (tg(b, e), b.stateNode === null)
          a !== null && (a.alternate = null, b.alternate = null, b.flags |= 2), Mg(b, c, d), Og(b, c, d, e), d = !0;
        else if (a === null) {
          var g = b.stateNode, h = b.memoizedProps;
          g.props = h;
          var k = g.context, l = c.contextType;
          typeof l == "object" && l !== null ? l = vg(l) : (l = Ff(c) ? Df : M.current, l = Ef(b, l));
          var n = c.getDerivedStateFromProps, A = typeof n == "function" || typeof g.getSnapshotBeforeUpdate == "function";
          A || typeof g.UNSAFE_componentWillReceiveProps != "function" && typeof g.componentWillReceiveProps != "function" || (h !== d || k !== l) && Ng(b, g, d, l), wg = !1;
          var p = b.memoizedState;
          g.state = p, Cg(b, d, g, e), k = b.memoizedState, h !== d || p !== k || N.current || wg ? (typeof n == "function" && (Gg(b, c, n, d), k = b.memoizedState), (h = wg || Lg(b, c, h, d, p, k, l)) ? (A || typeof g.UNSAFE_componentWillMount != "function" && typeof g.componentWillMount != "function" || (typeof g.componentWillMount == "function" && g.componentWillMount(), typeof g.UNSAFE_componentWillMount == "function" && g.UNSAFE_componentWillMount()), typeof g.componentDidMount == "function" && (b.flags |= 4)) : (typeof g.componentDidMount == "function" && (b.flags |= 4), b.memoizedProps = d, b.memoizedState = k), g.props = d, g.state = k, g.context = l, d = h) : (typeof g.componentDidMount == "function" && (b.flags |= 4), d = !1);
        } else {
          g = b.stateNode, yg(a, b), h = b.memoizedProps, l = b.type === b.elementType ? h : lg(b.type, h), g.props = l, A = b.pendingProps, p = g.context, k = c.contextType, typeof k == "object" && k !== null ? k = vg(k) : (k = Ff(c) ? Df : M.current, k = Ef(b, k));
          var C = c.getDerivedStateFromProps;
          (n = typeof C == "function" || typeof g.getSnapshotBeforeUpdate == "function") || typeof g.UNSAFE_componentWillReceiveProps != "function" && typeof g.componentWillReceiveProps != "function" || (h !== A || p !== k) && Ng(b, g, d, k), wg = !1, p = b.memoizedState, g.state = p, Cg(b, d, g, e);
          var x = b.memoizedState;
          h !== A || p !== x || N.current || wg ? (typeof C == "function" && (Gg(b, c, C, d), x = b.memoizedState), (l = wg || Lg(b, c, l, d, p, x, k)) ? (n || typeof g.UNSAFE_componentWillUpdate != "function" && typeof g.componentWillUpdate != "function" || (typeof g.componentWillUpdate == "function" && g.componentWillUpdate(
            d,
            x,
            k
          ), typeof g.UNSAFE_componentWillUpdate == "function" && g.UNSAFE_componentWillUpdate(d, x, k)), typeof g.componentDidUpdate == "function" && (b.flags |= 4), typeof g.getSnapshotBeforeUpdate == "function" && (b.flags |= 256)) : (typeof g.componentDidUpdate != "function" || h === a.memoizedProps && p === a.memoizedState || (b.flags |= 4), typeof g.getSnapshotBeforeUpdate != "function" || h === a.memoizedProps && p === a.memoizedState || (b.flags |= 256), b.memoizedProps = d, b.memoizedState = x), g.props = d, g.state = x, g.context = k, d = l) : (typeof g.componentDidUpdate != "function" || h === a.memoizedProps && p === a.memoizedState || (b.flags |= 4), typeof g.getSnapshotBeforeUpdate != "function" || h === a.memoizedProps && p === a.memoizedState || (b.flags |= 256), d = !1);
        }
        return qi(a, b, c, d, f, e);
      }
      function qi(a, b, c, d, e, f) {
        oi(a, b);
        var g = (b.flags & 64) !== 0;
        if (!d && !g)
          return e && Kf(b, c, !1), hi(a, b, f);
        d = b.stateNode, ei.current = b;
        var h = g && typeof c.getDerivedStateFromError != "function" ? null : d.render();
        return b.flags |= 1, a !== null && g ? (b.child = Yg(b, a.child, null, f), b.child = Yg(b, null, h, f)) : fi(a, b, h, f), b.memoizedState = d.state, e && Kf(b, c, !0), b.child;
      }
      function ri(a) {
        var b = a.stateNode;
        b.pendingContext ? Hf(a, b.pendingContext, b.pendingContext !== b.context) : b.context && Hf(a, b.context, !1), eh(a, b.containerInfo);
      }
      var si = { dehydrated: null, retryLane: 0 };
      function ti(a, b, c) {
        var d = b.pendingProps, e = P.current, f = !1, g;
        return (g = (b.flags & 64) !== 0) || (g = a !== null && a.memoizedState === null ? !1 : (e & 2) !== 0), g ? (f = !0, b.flags &= -65) : a !== null && a.memoizedState === null || d.fallback === void 0 || d.unstable_avoidThisFallback === !0 || (e |= 1), I(P, e & 1), a === null ? (d.fallback !== void 0 && ph(b), a = d.children, e = d.fallback, f ? (a = ui(b, a, e, c), b.child.memoizedState = { baseLanes: c }, b.memoizedState = si, a) : typeof d.unstable_expectedLoadTime == "number" ? (a = ui(b, a, e, c), b.child.memoizedState = { baseLanes: c }, b.memoizedState = si, b.lanes = 33554432, a) : (c = vi({ mode: "visible", children: a }, b.mode, c, null), c.return = b, b.child = c)) : a.memoizedState !== null ? f ? (d = wi(a, b, d.children, d.fallback, c), f = b.child, e = a.child.memoizedState, f.memoizedState = e === null ? { baseLanes: c } : { baseLanes: e.baseLanes | c }, f.childLanes = a.childLanes & ~c, b.memoizedState = si, d) : (c = xi(a, b, d.children, c), b.memoizedState = null, c) : f ? (d = wi(a, b, d.children, d.fallback, c), f = b.child, e = a.child.memoizedState, f.memoizedState = e === null ? { baseLanes: c } : { baseLanes: e.baseLanes | c }, f.childLanes = a.childLanes & ~c, b.memoizedState = si, d) : (c = xi(a, b, d.children, c), b.memoizedState = null, c);
      }
      function ui(a, b, c, d) {
        var e = a.mode, f = a.child;
        return b = { mode: "hidden", children: b }, (e & 2) === 0 && f !== null ? (f.childLanes = 0, f.pendingProps = b) : f = vi(b, e, 0, null), c = Xg(c, e, d, null), f.return = a, c.return = a, f.sibling = c, a.child = f, c;
      }
      function xi(a, b, c, d) {
        var e = a.child;
        return a = e.sibling, c = Tg(e, { mode: "visible", children: c }), (b.mode & 2) === 0 && (c.lanes = d), c.return = b, c.sibling = null, a !== null && (a.nextEffect = null, a.flags = 8, b.firstEffect = b.lastEffect = a), b.child = c;
      }
      function wi(a, b, c, d, e) {
        var f = b.mode, g = a.child;
        a = g.sibling;
        var h = { mode: "hidden", children: c };
        return (f & 2) === 0 && b.child !== g ? (c = b.child, c.childLanes = 0, c.pendingProps = h, g = c.lastEffect, g !== null ? (b.firstEffect = c.firstEffect, b.lastEffect = g, g.nextEffect = null) : b.firstEffect = b.lastEffect = null) : c = Tg(g, h), a !== null ? d = Tg(a, d) : (d = Xg(d, f, e, null), d.flags |= 2), d.return = b, c.return = b, c.sibling = d, b.child = c, d;
      }
      function yi(a, b) {
        a.lanes |= b;
        var c = a.alternate;
        c !== null && (c.lanes |= b), sg(a.return, b);
      }
      function zi(a, b, c, d, e, f) {
        var g = a.memoizedState;
        g === null ? a.memoizedState = { isBackwards: b, rendering: null, renderingStartTime: 0, last: d, tail: c, tailMode: e, lastEffect: f } : (g.isBackwards = b, g.rendering = null, g.renderingStartTime = 0, g.last = d, g.tail = c, g.tailMode = e, g.lastEffect = f);
      }
      function Ai(a, b, c) {
        var d = b.pendingProps, e = d.revealOrder, f = d.tail;
        if (fi(a, b, d.children, c), d = P.current, (d & 2) !== 0)
          d = d & 1 | 2, b.flags |= 64;
        else {
          if (a !== null && (a.flags & 64) !== 0)
            a:
              for (a = b.child; a !== null; ) {
                if (a.tag === 13)
                  a.memoizedState !== null && yi(a, c);
                else if (a.tag === 19)
                  yi(a, c);
                else if (a.child !== null) {
                  a.child.return = a, a = a.child;
                  continue;
                }
                if (a === b)
                  break a;
                for (; a.sibling === null; ) {
                  if (a.return === null || a.return === b)
                    break a;
                  a = a.return;
                }
                a.sibling.return = a.return, a = a.sibling;
              }
          d &= 1;
        }
        if (I(P, d), (b.mode & 2) === 0)
          b.memoizedState = null;
        else
          switch (e) {
            case "forwards":
              for (c = b.child, e = null; c !== null; )
                a = c.alternate, a !== null && ih(a) === null && (e = c), c = c.sibling;
              c = e, c === null ? (e = b.child, b.child = null) : (e = c.sibling, c.sibling = null), zi(b, !1, e, c, f, b.lastEffect);
              break;
            case "backwards":
              for (c = null, e = b.child, b.child = null; e !== null; ) {
                if (a = e.alternate, a !== null && ih(a) === null) {
                  b.child = e;
                  break;
                }
                a = e.sibling, e.sibling = c, c = e, e = a;
              }
              zi(b, !0, c, null, f, b.lastEffect);
              break;
            case "together":
              zi(b, !1, null, null, void 0, b.lastEffect);
              break;
            default:
              b.memoizedState = null;
          }
        return b.child;
      }
      function hi(a, b, c) {
        if (a !== null && (b.dependencies = a.dependencies), Dg |= b.lanes, (c & b.childLanes) !== 0) {
          if (a !== null && b.child !== a.child)
            throw Error(y(153));
          if (b.child !== null) {
            for (a = b.child, c = Tg(a, a.pendingProps), b.child = c, c.return = b; a.sibling !== null; )
              a = a.sibling, c = c.sibling = Tg(a, a.pendingProps), c.return = b;
            c.sibling = null;
          }
          return b.child;
        }
        return null;
      }
      var Bi, Ci, Di, Ei;
      Bi = function(a, b) {
        for (var c = b.child; c !== null; ) {
          if (c.tag === 5 || c.tag === 6)
            a.appendChild(c.stateNode);
          else if (c.tag !== 4 && c.child !== null) {
            c.child.return = c, c = c.child;
            continue;
          }
          if (c === b)
            break;
          for (; c.sibling === null; ) {
            if (c.return === null || c.return === b)
              return;
            c = c.return;
          }
          c.sibling.return = c.return, c = c.sibling;
        }
      };
      Ci = function() {
      };
      Di = function(a, b, c, d) {
        var e = a.memoizedProps;
        if (e !== d) {
          a = b.stateNode, dh(ah.current);
          var f = null;
          switch (c) {
            case "input":
              e = Ya(a, e), d = Ya(a, d), f = [];
              break;
            case "option":
              e = eb(a, e), d = eb(a, d), f = [];
              break;
            case "select":
              e = m({}, e, { value: void 0 }), d = m({}, d, { value: void 0 }), f = [];
              break;
            case "textarea":
              e = gb(a, e), d = gb(a, d), f = [];
              break;
            default:
              typeof e.onClick != "function" && typeof d.onClick == "function" && (a.onclick = jf);
          }
          vb(c, d);
          var g;
          c = null;
          for (l in e)
            if (!d.hasOwnProperty(l) && e.hasOwnProperty(l) && e[l] != null)
              if (l === "style") {
                var h = e[l];
                for (g in h)
                  h.hasOwnProperty(g) && (c || (c = {}), c[g] = "");
              } else
                l !== "dangerouslySetInnerHTML" && l !== "children" && l !== "suppressContentEditableWarning" && l !== "suppressHydrationWarning" && l !== "autoFocus" && (ca.hasOwnProperty(l) ? f || (f = []) : (f = f || []).push(l, null));
          for (l in d) {
            var k = d[l];
            if (h = e?.[l], d.hasOwnProperty(l) && k !== h && (k != null || h != null))
              if (l === "style")
                if (h) {
                  for (g in h)
                    !h.hasOwnProperty(g) || k && k.hasOwnProperty(g) || (c || (c = {}), c[g] = "");
                  for (g in k)
                    k.hasOwnProperty(g) && h[g] !== k[g] && (c || (c = {}), c[g] = k[g]);
                } else
                  c || (f || (f = []), f.push(l, c)), c = k;
              else
                l === "dangerouslySetInnerHTML" ? (k = k ? k.__html : void 0, h = h ? h.__html : void 0, k != null && h !== k && (f = f || []).push(l, k)) : l === "children" ? typeof k != "string" && typeof k != "number" || (f = f || []).push(l, "" + k) : l !== "suppressContentEditableWarning" && l !== "suppressHydrationWarning" && (ca.hasOwnProperty(l) ? (k != null && l === "onScroll" && G("scroll", a), f || h === k || (f = [])) : typeof k == "object" && k !== null && k.$$typeof === Ga ? k.toString() : (f = f || []).push(l, k));
          }
          c && (f = f || []).push(
            "style",
            c
          );
          var l = f;
          (b.updateQueue = l) && (b.flags |= 4);
        }
      };
      Ei = function(a, b, c, d) {
        c !== d && (b.flags |= 4);
      };
      function Fi(a, b) {
        if (!lh)
          switch (a.tailMode) {
            case "hidden":
              b = a.tail;
              for (var c = null; b !== null; )
                b.alternate !== null && (c = b), b = b.sibling;
              c === null ? a.tail = null : c.sibling = null;
              break;
            case "collapsed":
              c = a.tail;
              for (var d = null; c !== null; )
                c.alternate !== null && (d = c), c = c.sibling;
              d === null ? b || a.tail === null ? a.tail = null : a.tail.sibling = null : d.sibling = null;
          }
      }
      function Gi(a, b, c) {
        var d = b.pendingProps;
        switch (b.tag) {
          case 2:
          case 16:
          case 15:
          case 0:
          case 11:
          case 7:
          case 8:
          case 12:
          case 9:
          case 14:
            return null;
          case 1:
            return Ff(b.type) && Gf(), null;
          case 3:
            return fh(), H(N), H(M), uh(), d = b.stateNode, d.pendingContext && (d.context = d.pendingContext, d.pendingContext = null), (a === null || a.child === null) && (rh(b) ? b.flags |= 4 : d.hydrate || (b.flags |= 256)), Ci(b), null;
          case 5:
            hh(b);
            var e = dh(ch.current);
            if (c = b.type, a !== null && b.stateNode != null)
              Di(a, b, c, d, e), a.ref !== b.ref && (b.flags |= 128);
            else {
              if (!d) {
                if (b.stateNode === null)
                  throw Error(y(166));
                return null;
              }
              if (a = dh(ah.current), rh(b)) {
                d = b.stateNode, c = b.type;
                var f = b.memoizedProps;
                switch (d[wf] = b, d[xf] = f, c) {
                  case "dialog":
                    G("cancel", d), G("close", d);
                    break;
                  case "iframe":
                  case "object":
                  case "embed":
                    G("load", d);
                    break;
                  case "video":
                  case "audio":
                    for (a = 0; a < Xe.length; a++)
                      G(Xe[a], d);
                    break;
                  case "source":
                    G("error", d);
                    break;
                  case "img":
                  case "image":
                  case "link":
                    G("error", d), G("load", d);
                    break;
                  case "details":
                    G("toggle", d);
                    break;
                  case "input":
                    Za(d, f), G("invalid", d);
                    break;
                  case "select":
                    d._wrapperState = { wasMultiple: !!f.multiple }, G("invalid", d);
                    break;
                  case "textarea":
                    hb(d, f), G("invalid", d);
                }
                vb(c, f), a = null;
                for (var g in f)
                  f.hasOwnProperty(g) && (e = f[g], g === "children" ? typeof e == "string" ? d.textContent !== e && (a = ["children", e]) : typeof e == "number" && d.textContent !== "" + e && (a = ["children", "" + e]) : ca.hasOwnProperty(g) && e != null && g === "onScroll" && G("scroll", d));
                switch (c) {
                  case "input":
                    Va(d), cb(d, f, !0);
                    break;
                  case "textarea":
                    Va(d), jb(d);
                    break;
                  case "select":
                  case "option":
                    break;
                  default:
                    typeof f.onClick == "function" && (d.onclick = jf);
                }
                d = a, b.updateQueue = d, d !== null && (b.flags |= 4);
              } else {
                switch (g = e.nodeType === 9 ? e : e.ownerDocument, a === kb.html && (a = lb(c)), a === kb.html ? c === "script" ? (a = g.createElement("div"), a.innerHTML = "<script><\/script>", a = a.removeChild(a.firstChild)) : typeof d.is == "string" ? a = g.createElement(c, { is: d.is }) : (a = g.createElement(c), c === "select" && (g = a, d.multiple ? g.multiple = !0 : d.size && (g.size = d.size))) : a = g.createElementNS(a, c), a[wf] = b, a[xf] = d, Bi(a, b, !1, !1), b.stateNode = a, g = wb(c, d), c) {
                  case "dialog":
                    G("cancel", a), G("close", a), e = d;
                    break;
                  case "iframe":
                  case "object":
                  case "embed":
                    G("load", a), e = d;
                    break;
                  case "video":
                  case "audio":
                    for (e = 0; e < Xe.length; e++)
                      G(Xe[e], a);
                    e = d;
                    break;
                  case "source":
                    G("error", a), e = d;
                    break;
                  case "img":
                  case "image":
                  case "link":
                    G("error", a), G("load", a), e = d;
                    break;
                  case "details":
                    G("toggle", a), e = d;
                    break;
                  case "input":
                    Za(a, d), e = Ya(a, d), G("invalid", a);
                    break;
                  case "option":
                    e = eb(a, d);
                    break;
                  case "select":
                    a._wrapperState = { wasMultiple: !!d.multiple }, e = m({}, d, { value: void 0 }), G("invalid", a);
                    break;
                  case "textarea":
                    hb(a, d), e = gb(a, d), G("invalid", a);
                    break;
                  default:
                    e = d;
                }
                vb(c, e);
                var h = e;
                for (f in h)
                  if (h.hasOwnProperty(f)) {
                    var k = h[f];
                    f === "style" ? tb(a, k) : f === "dangerouslySetInnerHTML" ? (k = k ? k.__html : void 0, k != null && ob(a, k)) : f === "children" ? typeof k == "string" ? (c !== "textarea" || k !== "") && pb(a, k) : typeof k == "number" && pb(a, "" + k) : f !== "suppressContentEditableWarning" && f !== "suppressHydrationWarning" && f !== "autoFocus" && (ca.hasOwnProperty(f) ? k != null && f === "onScroll" && G("scroll", a) : k != null && qa(a, f, k, g));
                  }
                switch (c) {
                  case "input":
                    Va(a), cb(a, d, !1);
                    break;
                  case "textarea":
                    Va(a), jb(a);
                    break;
                  case "option":
                    d.value != null && a.setAttribute("value", "" + Sa(d.value));
                    break;
                  case "select":
                    a.multiple = !!d.multiple, f = d.value, f != null ? fb(a, !!d.multiple, f, !1) : d.defaultValue != null && fb(a, !!d.multiple, d.defaultValue, !0);
                    break;
                  default:
                    typeof e.onClick == "function" && (a.onclick = jf);
                }
                mf(c, d) && (b.flags |= 4);
              }
              b.ref !== null && (b.flags |= 128);
            }
            return null;
          case 6:
            if (a && b.stateNode != null)
              Ei(a, b, a.memoizedProps, d);
            else {
              if (typeof d != "string" && b.stateNode === null)
                throw Error(y(166));
              c = dh(ch.current), dh(ah.current), rh(b) ? (d = b.stateNode, c = b.memoizedProps, d[wf] = b, d.nodeValue !== c && (b.flags |= 4)) : (d = (c.nodeType === 9 ? c : c.ownerDocument).createTextNode(d), d[wf] = b, b.stateNode = d);
            }
            return null;
          case 13:
            return H(P), d = b.memoizedState, (b.flags & 64) !== 0 ? (b.lanes = c, b) : (d = d !== null, c = !1, a === null ? b.memoizedProps.fallback !== void 0 && rh(b) : c = a.memoizedState !== null, d && !c && (b.mode & 2) !== 0 && (a === null && b.memoizedProps.unstable_avoidThisFallback !== !0 || (P.current & 1) !== 0 ? V === 0 && (V = 3) : ((V === 0 || V === 3) && (V = 4), U === null || (Dg & 134217727) === 0 && (Hi & 134217727) === 0 || Ii(U, W))), (d || c) && (b.flags |= 4), null);
          case 4:
            return fh(), Ci(b), a === null && cf(b.stateNode.containerInfo), null;
          case 10:
            return rg(b), null;
          case 17:
            return Ff(b.type) && Gf(), null;
          case 19:
            if (H(P), d = b.memoizedState, d === null)
              return null;
            if (f = (b.flags & 64) !== 0, g = d.rendering, g === null)
              if (f)
                Fi(d, !1);
              else {
                if (V !== 0 || a !== null && (a.flags & 64) !== 0)
                  for (a = b.child; a !== null; ) {
                    if (g = ih(a), g !== null) {
                      for (b.flags |= 64, Fi(d, !1), f = g.updateQueue, f !== null && (b.updateQueue = f, b.flags |= 4), d.lastEffect === null && (b.firstEffect = null), b.lastEffect = d.lastEffect, d = c, c = b.child; c !== null; )
                        f = c, a = d, f.flags &= 2, f.nextEffect = null, f.firstEffect = null, f.lastEffect = null, g = f.alternate, g === null ? (f.childLanes = 0, f.lanes = a, f.child = null, f.memoizedProps = null, f.memoizedState = null, f.updateQueue = null, f.dependencies = null, f.stateNode = null) : (f.childLanes = g.childLanes, f.lanes = g.lanes, f.child = g.child, f.memoizedProps = g.memoizedProps, f.memoizedState = g.memoizedState, f.updateQueue = g.updateQueue, f.type = g.type, a = g.dependencies, f.dependencies = a === null ? null : { lanes: a.lanes, firstContext: a.firstContext }), c = c.sibling;
                      return I(P, P.current & 1 | 2), b.child;
                    }
                    a = a.sibling;
                  }
                d.tail !== null && O() > Ji && (b.flags |= 64, f = !0, Fi(d, !1), b.lanes = 33554432);
              }
            else {
              if (!f)
                if (a = ih(g), a !== null) {
                  if (b.flags |= 64, f = !0, c = a.updateQueue, c !== null && (b.updateQueue = c, b.flags |= 4), Fi(d, !0), d.tail === null && d.tailMode === "hidden" && !g.alternate && !lh)
                    return b = b.lastEffect = d.lastEffect, b !== null && (b.nextEffect = null), null;
                } else
                  2 * O() - d.renderingStartTime > Ji && c !== 1073741824 && (b.flags |= 64, f = !0, Fi(d, !1), b.lanes = 33554432);
              d.isBackwards ? (g.sibling = b.child, b.child = g) : (c = d.last, c !== null ? c.sibling = g : b.child = g, d.last = g);
            }
            return d.tail !== null ? (c = d.tail, d.rendering = c, d.tail = c.sibling, d.lastEffect = b.lastEffect, d.renderingStartTime = O(), c.sibling = null, b = P.current, I(P, f ? b & 1 | 2 : b & 1), c) : null;
          case 23:
          case 24:
            return Ki(), a !== null && a.memoizedState !== null != (b.memoizedState !== null) && d.mode !== "unstable-defer-without-hiding" && (b.flags |= 4), null;
        }
        throw Error(y(156, b.tag));
      }
      function Li(a) {
        switch (a.tag) {
          case 1:
            Ff(a.type) && Gf();
            var b = a.flags;
            return b & 4096 ? (a.flags = b & -4097 | 64, a) : null;
          case 3:
            if (fh(), H(N), H(M), uh(), b = a.flags, (b & 64) !== 0)
              throw Error(y(285));
            return a.flags = b & -4097 | 64, a;
          case 5:
            return hh(a), null;
          case 13:
            return H(P), b = a.flags, b & 4096 ? (a.flags = b & -4097 | 64, a) : null;
          case 19:
            return H(P), null;
          case 4:
            return fh(), null;
          case 10:
            return rg(a), null;
          case 23:
          case 24:
            return Ki(), null;
          default:
            return null;
        }
      }
      function Mi(a, b) {
        try {
          var c = "", d = b;
          do
            c += Qa(d), d = d.return;
          while (d);
          var e = c;
        } catch (f) {
          e = `
Error generating stack: ` + f.message + `
` + f.stack;
        }
        return { value: a, source: b, stack: e };
      }
      function Ni(a, b) {
        try {
          console.error(b.value);
        } catch (c) {
          setTimeout(function() {
            throw c;
          });
        }
      }
      var Oi = typeof WeakMap == "function" ? WeakMap : Map;
      function Pi(a, b, c) {
        c = zg(-1, c), c.tag = 3, c.payload = { element: null };
        var d = b.value;
        return c.callback = function() {
          Qi || (Qi = !0, Ri = d), Ni(a, b);
        }, c;
      }
      function Si(a, b, c) {
        c = zg(-1, c), c.tag = 3;
        var d = a.type.getDerivedStateFromError;
        if (typeof d == "function") {
          var e = b.value;
          c.payload = function() {
            return Ni(a, b), d(e);
          };
        }
        var f = a.stateNode;
        return f !== null && typeof f.componentDidCatch == "function" && (c.callback = function() {
          typeof d != "function" && (Ti === null ? Ti = /* @__PURE__ */ new Set([this]) : Ti.add(this), Ni(a, b));
          var c2 = b.stack;
          this.componentDidCatch(b.value, { componentStack: c2 !== null ? c2 : "" });
        }), c;
      }
      var Ui = typeof WeakSet == "function" ? WeakSet : Set;
      function Vi(a) {
        var b = a.ref;
        if (b !== null)
          if (typeof b == "function")
            try {
              b(null);
            } catch (c) {
              Wi(a, c);
            }
          else
            b.current = null;
      }
      function Xi(a, b) {
        switch (b.tag) {
          case 0:
          case 11:
          case 15:
          case 22:
            return;
          case 1:
            if (b.flags & 256 && a !== null) {
              var c = a.memoizedProps, d = a.memoizedState;
              a = b.stateNode, b = a.getSnapshotBeforeUpdate(b.elementType === b.type ? c : lg(b.type, c), d), a.__reactInternalSnapshotBeforeUpdate = b;
            }
            return;
          case 3:
            b.flags & 256 && qf(b.stateNode.containerInfo);
            return;
          case 5:
          case 6:
          case 4:
          case 17:
            return;
        }
        throw Error(y(163));
      }
      function Yi(a, b, c) {
        switch (c.tag) {
          case 0:
          case 11:
          case 15:
          case 22:
            if (b = c.updateQueue, b = b !== null ? b.lastEffect : null, b !== null) {
              a = b = b.next;
              do {
                if ((a.tag & 3) === 3) {
                  var d = a.create;
                  a.destroy = d();
                }
                a = a.next;
              } while (a !== b);
            }
            if (b = c.updateQueue, b = b !== null ? b.lastEffect : null, b !== null) {
              a = b = b.next;
              do {
                var e = a;
                d = e.next, e = e.tag, (e & 4) !== 0 && (e & 1) !== 0 && (Zi(c, a), $i(c, a)), a = d;
              } while (a !== b);
            }
            return;
          case 1:
            a = c.stateNode, c.flags & 4 && (b === null ? a.componentDidMount() : (d = c.elementType === c.type ? b.memoizedProps : lg(c.type, b.memoizedProps), a.componentDidUpdate(
              d,
              b.memoizedState,
              a.__reactInternalSnapshotBeforeUpdate
            ))), b = c.updateQueue, b !== null && Eg(c, b, a);
            return;
          case 3:
            if (b = c.updateQueue, b !== null) {
              if (a = null, c.child !== null)
                switch (c.child.tag) {
                  case 5:
                    a = c.child.stateNode;
                    break;
                  case 1:
                    a = c.child.stateNode;
                }
              Eg(c, b, a);
            }
            return;
          case 5:
            a = c.stateNode, b === null && c.flags & 4 && mf(c.type, c.memoizedProps) && a.focus();
            return;
          case 6:
            return;
          case 4:
            return;
          case 12:
            return;
          case 13:
            c.memoizedState === null && (c = c.alternate, c !== null && (c = c.memoizedState, c !== null && (c = c.dehydrated, c !== null && Cc(c))));
            return;
          case 19:
          case 17:
          case 20:
          case 21:
          case 23:
          case 24:
            return;
        }
        throw Error(y(163));
      }
      function aj(a, b) {
        for (var c = a; ; ) {
          if (c.tag === 5) {
            var d = c.stateNode;
            if (b)
              d = d.style, typeof d.setProperty == "function" ? d.setProperty("display", "none", "important") : d.display = "none";
            else {
              d = c.stateNode;
              var e = c.memoizedProps.style;
              e = e != null && e.hasOwnProperty("display") ? e.display : null, d.style.display = sb("display", e);
            }
          } else if (c.tag === 6)
            c.stateNode.nodeValue = b ? "" : c.memoizedProps;
          else if ((c.tag !== 23 && c.tag !== 24 || c.memoizedState === null || c === a) && c.child !== null) {
            c.child.return = c, c = c.child;
            continue;
          }
          if (c === a)
            break;
          for (; c.sibling === null; ) {
            if (c.return === null || c.return === a)
              return;
            c = c.return;
          }
          c.sibling.return = c.return, c = c.sibling;
        }
      }
      function bj(a, b) {
        if (Mf && typeof Mf.onCommitFiberUnmount == "function")
          try {
            Mf.onCommitFiberUnmount(Lf, b);
          } catch {
          }
        switch (b.tag) {
          case 0:
          case 11:
          case 14:
          case 15:
          case 22:
            if (a = b.updateQueue, a !== null && (a = a.lastEffect, a !== null)) {
              var c = a = a.next;
              do {
                var d = c, e = d.destroy;
                if (d = d.tag, e !== void 0)
                  if ((d & 4) !== 0)
                    Zi(b, c);
                  else {
                    d = b;
                    try {
                      e();
                    } catch (f) {
                      Wi(d, f);
                    }
                  }
                c = c.next;
              } while (c !== a);
            }
            break;
          case 1:
            if (Vi(b), a = b.stateNode, typeof a.componentWillUnmount == "function")
              try {
                a.props = b.memoizedProps, a.state = b.memoizedState, a.componentWillUnmount();
              } catch (f) {
                Wi(
                  b,
                  f
                );
              }
            break;
          case 5:
            Vi(b);
            break;
          case 4:
            cj(a, b);
        }
      }
      function dj(a) {
        a.alternate = null, a.child = null, a.dependencies = null, a.firstEffect = null, a.lastEffect = null, a.memoizedProps = null, a.memoizedState = null, a.pendingProps = null, a.return = null, a.updateQueue = null;
      }
      function ej(a) {
        return a.tag === 5 || a.tag === 3 || a.tag === 4;
      }
      function fj(a) {
        a: {
          for (var b = a.return; b !== null; ) {
            if (ej(b))
              break a;
            b = b.return;
          }
          throw Error(y(160));
        }
        var c = b;
        switch (b = c.stateNode, c.tag) {
          case 5:
            var d = !1;
            break;
          case 3:
            b = b.containerInfo, d = !0;
            break;
          case 4:
            b = b.containerInfo, d = !0;
            break;
          default:
            throw Error(y(161));
        }
        c.flags & 16 && (pb(b, ""), c.flags &= -17);
        a:
          b:
            for (c = a; ; ) {
              for (; c.sibling === null; ) {
                if (c.return === null || ej(c.return)) {
                  c = null;
                  break a;
                }
                c = c.return;
              }
              for (c.sibling.return = c.return, c = c.sibling; c.tag !== 5 && c.tag !== 6 && c.tag !== 18; ) {
                if (c.flags & 2 || c.child === null || c.tag === 4)
                  continue b;
                c.child.return = c, c = c.child;
              }
              if (!(c.flags & 2)) {
                c = c.stateNode;
                break a;
              }
            }
        d ? gj(a, c, b) : hj(a, c, b);
      }
      function gj(a, b, c) {
        var d = a.tag, e = d === 5 || d === 6;
        if (e)
          a = e ? a.stateNode : a.stateNode.instance, b ? c.nodeType === 8 ? c.parentNode.insertBefore(a, b) : c.insertBefore(a, b) : (c.nodeType === 8 ? (b = c.parentNode, b.insertBefore(a, c)) : (b = c, b.appendChild(a)), c = c._reactRootContainer, c != null || b.onclick !== null || (b.onclick = jf));
        else if (d !== 4 && (a = a.child, a !== null))
          for (gj(a, b, c), a = a.sibling; a !== null; )
            gj(a, b, c), a = a.sibling;
      }
      function hj(a, b, c) {
        var d = a.tag, e = d === 5 || d === 6;
        if (e)
          a = e ? a.stateNode : a.stateNode.instance, b ? c.insertBefore(a, b) : c.appendChild(a);
        else if (d !== 4 && (a = a.child, a !== null))
          for (hj(a, b, c), a = a.sibling; a !== null; )
            hj(a, b, c), a = a.sibling;
      }
      function cj(a, b) {
        for (var c = b, d = !1, e, f; ; ) {
          if (!d) {
            d = c.return;
            a:
              for (; ; ) {
                if (d === null)
                  throw Error(y(160));
                switch (e = d.stateNode, d.tag) {
                  case 5:
                    f = !1;
                    break a;
                  case 3:
                    e = e.containerInfo, f = !0;
                    break a;
                  case 4:
                    e = e.containerInfo, f = !0;
                    break a;
                }
                d = d.return;
              }
            d = !0;
          }
          if (c.tag === 5 || c.tag === 6) {
            a:
              for (var g = a, h = c, k = h; ; )
                if (bj(g, k), k.child !== null && k.tag !== 4)
                  k.child.return = k, k = k.child;
                else {
                  if (k === h)
                    break a;
                  for (; k.sibling === null; ) {
                    if (k.return === null || k.return === h)
                      break a;
                    k = k.return;
                  }
                  k.sibling.return = k.return, k = k.sibling;
                }
            f ? (g = e, h = c.stateNode, g.nodeType === 8 ? g.parentNode.removeChild(h) : g.removeChild(h)) : e.removeChild(c.stateNode);
          } else if (c.tag === 4) {
            if (c.child !== null) {
              e = c.stateNode.containerInfo, f = !0, c.child.return = c, c = c.child;
              continue;
            }
          } else if (bj(a, c), c.child !== null) {
            c.child.return = c, c = c.child;
            continue;
          }
          if (c === b)
            break;
          for (; c.sibling === null; ) {
            if (c.return === null || c.return === b)
              return;
            c = c.return, c.tag === 4 && (d = !1);
          }
          c.sibling.return = c.return, c = c.sibling;
        }
      }
      function ij(a, b) {
        switch (b.tag) {
          case 0:
          case 11:
          case 14:
          case 15:
          case 22:
            var c = b.updateQueue;
            if (c = c !== null ? c.lastEffect : null, c !== null) {
              var d = c = c.next;
              do
                (d.tag & 3) === 3 && (a = d.destroy, d.destroy = void 0, a !== void 0 && a()), d = d.next;
              while (d !== c);
            }
            return;
          case 1:
            return;
          case 5:
            if (c = b.stateNode, c != null) {
              d = b.memoizedProps;
              var e = a !== null ? a.memoizedProps : d;
              a = b.type;
              var f = b.updateQueue;
              if (b.updateQueue = null, f !== null) {
                for (c[xf] = d, a === "input" && d.type === "radio" && d.name != null && $a(c, d), wb(a, e), b = wb(a, d), e = 0; e < f.length; e += 2) {
                  var g = f[e], h = f[e + 1];
                  g === "style" ? tb(c, h) : g === "dangerouslySetInnerHTML" ? ob(c, h) : g === "children" ? pb(c, h) : qa(c, g, h, b);
                }
                switch (a) {
                  case "input":
                    ab(c, d);
                    break;
                  case "textarea":
                    ib(c, d);
                    break;
                  case "select":
                    a = c._wrapperState.wasMultiple, c._wrapperState.wasMultiple = !!d.multiple, f = d.value, f != null ? fb(c, !!d.multiple, f, !1) : a !== !!d.multiple && (d.defaultValue != null ? fb(c, !!d.multiple, d.defaultValue, !0) : fb(c, !!d.multiple, d.multiple ? [] : "", !1));
                }
              }
            }
            return;
          case 6:
            if (b.stateNode === null)
              throw Error(y(162));
            b.stateNode.nodeValue = b.memoizedProps;
            return;
          case 3:
            c = b.stateNode, c.hydrate && (c.hydrate = !1, Cc(c.containerInfo));
            return;
          case 12:
            return;
          case 13:
            b.memoizedState !== null && (jj = O(), aj(b.child, !0)), kj(b);
            return;
          case 19:
            kj(b);
            return;
          case 17:
            return;
          case 23:
          case 24:
            aj(b, b.memoizedState !== null);
            return;
        }
        throw Error(y(163));
      }
      function kj(a) {
        var b = a.updateQueue;
        if (b !== null) {
          a.updateQueue = null;
          var c = a.stateNode;
          c === null && (c = a.stateNode = new Ui()), b.forEach(function(b2) {
            var d = lj.bind(null, a, b2);
            c.has(b2) || (c.add(b2), b2.then(d, d));
          });
        }
      }
      function mj(a, b) {
        return a !== null && (a = a.memoizedState, a === null || a.dehydrated !== null) ? (b = b.memoizedState, b !== null && b.dehydrated === null) : !1;
      }
      var nj = Math.ceil, oj = ra.ReactCurrentDispatcher, pj = ra.ReactCurrentOwner, X = 0, U = null, Y = null, W = 0, qj = 0, rj = Bf(0), V = 0, sj = null, tj = 0, Dg = 0, Hi = 0, uj = 0, vj = null, jj = 0, Ji = 1 / 0;
      function wj() {
        Ji = O() + 500;
      }
      var Z = null, Qi = !1, Ri = null, Ti = null, xj = !1, yj = null, zj = 90, Aj = [], Bj = [], Cj = null, Dj = 0, Ej = null, Fj = -1, Gj = 0, Hj = 0, Ij = null, Jj = !1;
      function Hg() {
        return (X & 48) !== 0 ? O() : Fj !== -1 ? Fj : Fj = O();
      }
      function Ig(a) {
        if (a = a.mode, (a & 2) === 0)
          return 1;
        if ((a & 4) === 0)
          return eg() === 99 ? 1 : 2;
        if (Gj === 0 && (Gj = tj), kg.transition !== 0) {
          Hj !== 0 && (Hj = vj !== null ? vj.pendingLanes : 0), a = Gj;
          var b = 4186112 & ~Hj;
          return b &= -b, b === 0 && (a = 4186112 & ~a, b = a & -a, b === 0 && (b = 8192)), b;
        }
        return a = eg(), (X & 4) !== 0 && a === 98 ? a = Xc(12, Gj) : (a = Sc(a), a = Xc(a, Gj)), a;
      }
      function Jg(a, b, c) {
        if (50 < Dj)
          throw Dj = 0, Ej = null, Error(y(185));
        if (a = Kj(a, b), a === null)
          return null;
        $c(a, b, c), a === U && (Hi |= b, V === 4 && Ii(a, W));
        var d = eg();
        b === 1 ? (X & 8) !== 0 && (X & 48) === 0 ? Lj(a) : (Mj(a, c), X === 0 && (wj(), ig())) : ((X & 4) === 0 || d !== 98 && d !== 99 || (Cj === null ? Cj = /* @__PURE__ */ new Set([a]) : Cj.add(a)), Mj(a, c)), vj = a;
      }
      function Kj(a, b) {
        a.lanes |= b;
        var c = a.alternate;
        for (c !== null && (c.lanes |= b), c = a, a = a.return; a !== null; )
          a.childLanes |= b, c = a.alternate, c !== null && (c.childLanes |= b), c = a, a = a.return;
        return c.tag === 3 ? c.stateNode : null;
      }
      function Mj(a, b) {
        for (var c = a.callbackNode, d = a.suspendedLanes, e = a.pingedLanes, f = a.expirationTimes, g = a.pendingLanes; 0 < g; ) {
          var h = 31 - Vc(g), k = 1 << h, l = f[h];
          if (l === -1) {
            if ((k & d) === 0 || (k & e) !== 0) {
              l = b, Rc(k);
              var n = F;
              f[h] = 10 <= n ? l + 250 : 6 <= n ? l + 5e3 : -1;
            }
          } else
            l <= b && (a.expiredLanes |= k);
          g &= ~k;
        }
        if (d = Uc(a, a === U ? W : 0), b = F, d === 0)
          c !== null && (c !== Zf && Pf(c), a.callbackNode = null, a.callbackPriority = 0);
        else {
          if (c !== null) {
            if (a.callbackPriority === b)
              return;
            c !== Zf && Pf(c);
          }
          b === 15 ? (c = Lj.bind(null, a), ag === null ? (ag = [c], bg = Of(Uf, jg)) : ag.push(c), c = Zf) : b === 14 ? c = hg(99, Lj.bind(null, a)) : (c = Tc(b), c = hg(c, Nj.bind(null, a))), a.callbackPriority = b, a.callbackNode = c;
        }
      }
      function Nj(a) {
        if (Fj = -1, Hj = Gj = 0, (X & 48) !== 0)
          throw Error(y(327));
        var b = a.callbackNode;
        if (Oj() && a.callbackNode !== b)
          return null;
        var c = Uc(a, a === U ? W : 0);
        if (c === 0)
          return null;
        var d = c, e = X;
        X |= 16;
        var f = Pj();
        (U !== a || W !== d) && (wj(), Qj(a, d));
        do
          try {
            Rj();
            break;
          } catch (h) {
            Sj(a, h);
          }
        while (1);
        if (qg(), oj.current = f, X = e, Y !== null ? d = 0 : (U = null, W = 0, d = V), (tj & Hi) !== 0)
          Qj(a, 0);
        else if (d !== 0) {
          if (d === 2 && (X |= 64, a.hydrate && (a.hydrate = !1, qf(a.containerInfo)), c = Wc(a), c !== 0 && (d = Tj(a, c))), d === 1)
            throw b = sj, Qj(a, 0), Ii(a, c), Mj(a, O()), b;
          switch (a.finishedWork = a.current.alternate, a.finishedLanes = c, d) {
            case 0:
            case 1:
              throw Error(y(345));
            case 2:
              Uj(a);
              break;
            case 3:
              if (Ii(a, c), (c & 62914560) === c && (d = jj + 500 - O(), 10 < d)) {
                if (Uc(a, 0) !== 0)
                  break;
                if (e = a.suspendedLanes, (e & c) !== c) {
                  Hg(), a.pingedLanes |= a.suspendedLanes & e;
                  break;
                }
                a.timeoutHandle = of(Uj.bind(null, a), d);
                break;
              }
              Uj(a);
              break;
            case 4:
              if (Ii(a, c), (c & 4186112) === c)
                break;
              for (d = a.eventTimes, e = -1; 0 < c; ) {
                var g = 31 - Vc(c);
                f = 1 << g, g = d[g], g > e && (e = g), c &= ~f;
              }
              if (c = e, c = O() - c, c = (120 > c ? 120 : 480 > c ? 480 : 1080 > c ? 1080 : 1920 > c ? 1920 : 3e3 > c ? 3e3 : 4320 > c ? 4320 : 1960 * nj(c / 1960)) - c, 10 < c) {
                a.timeoutHandle = of(Uj.bind(null, a), c);
                break;
              }
              Uj(a);
              break;
            case 5:
              Uj(a);
              break;
            default:
              throw Error(y(329));
          }
        }
        return Mj(a, O()), a.callbackNode === b ? Nj.bind(null, a) : null;
      }
      function Ii(a, b) {
        for (b &= ~uj, b &= ~Hi, a.suspendedLanes |= b, a.pingedLanes &= ~b, a = a.expirationTimes; 0 < b; ) {
          var c = 31 - Vc(b), d = 1 << c;
          a[c] = -1, b &= ~d;
        }
      }
      function Lj(a) {
        if ((X & 48) !== 0)
          throw Error(y(327));
        if (Oj(), a === U && (a.expiredLanes & W) !== 0) {
          var b = W, c = Tj(a, b);
          (tj & Hi) !== 0 && (b = Uc(a, b), c = Tj(a, b));
        } else
          b = Uc(a, 0), c = Tj(a, b);
        if (a.tag !== 0 && c === 2 && (X |= 64, a.hydrate && (a.hydrate = !1, qf(a.containerInfo)), b = Wc(a), b !== 0 && (c = Tj(a, b))), c === 1)
          throw c = sj, Qj(a, 0), Ii(a, b), Mj(a, O()), c;
        return a.finishedWork = a.current.alternate, a.finishedLanes = b, Uj(a), Mj(a, O()), null;
      }
      function Vj() {
        if (Cj !== null) {
          var a = Cj;
          Cj = null, a.forEach(function(a2) {
            a2.expiredLanes |= 24 & a2.pendingLanes, Mj(a2, O());
          });
        }
        ig();
      }
      function Wj(a, b) {
        var c = X;
        X |= 1;
        try {
          return a(b);
        } finally {
          X = c, X === 0 && (wj(), ig());
        }
      }
      function Xj(a, b) {
        var c = X;
        X &= -2, X |= 8;
        try {
          return a(b);
        } finally {
          X = c, X === 0 && (wj(), ig());
        }
      }
      function ni(a, b) {
        I(rj, qj), qj |= b, tj |= b;
      }
      function Ki() {
        qj = rj.current, H(rj);
      }
      function Qj(a, b) {
        a.finishedWork = null, a.finishedLanes = 0;
        var c = a.timeoutHandle;
        if (c !== -1 && (a.timeoutHandle = -1, pf(c)), Y !== null)
          for (c = Y.return; c !== null; ) {
            var d = c;
            switch (d.tag) {
              case 1:
                d = d.type.childContextTypes, d != null && Gf();
                break;
              case 3:
                fh(), H(N), H(M), uh();
                break;
              case 5:
                hh(d);
                break;
              case 4:
                fh();
                break;
              case 13:
                H(P);
                break;
              case 19:
                H(P);
                break;
              case 10:
                rg(d);
                break;
              case 23:
              case 24:
                Ki();
            }
            c = c.return;
          }
        U = a, Y = Tg(a.current, null), W = qj = tj = b, V = 0, sj = null, uj = Hi = Dg = 0;
      }
      function Sj(a, b) {
        do {
          var c = Y;
          try {
            if (qg(), vh.current = Gh, yh) {
              for (var d = R.memoizedState; d !== null; ) {
                var e = d.queue;
                e !== null && (e.pending = null), d = d.next;
              }
              yh = !1;
            }
            if (xh = 0, T = S = R = null, zh = !1, pj.current = null, c === null || c.return === null) {
              V = 1, sj = b, Y = null;
              break;
            }
            a: {
              var f = a, g = c.return, h = c, k = b;
              if (b = W, h.flags |= 2048, h.firstEffect = h.lastEffect = null, k !== null && typeof k == "object" && typeof k.then == "function") {
                var l = k;
                if ((h.mode & 2) === 0) {
                  var n = h.alternate;
                  n ? (h.updateQueue = n.updateQueue, h.memoizedState = n.memoizedState, h.lanes = n.lanes) : (h.updateQueue = null, h.memoizedState = null);
                }
                var A = (P.current & 1) !== 0, p = g;
                do {
                  var C;
                  if (C = p.tag === 13) {
                    var x = p.memoizedState;
                    if (x !== null)
                      C = x.dehydrated !== null;
                    else {
                      var w = p.memoizedProps;
                      C = w.fallback === void 0 ? !1 : w.unstable_avoidThisFallback !== !0 ? !0 : !A;
                    }
                  }
                  if (C) {
                    var z = p.updateQueue;
                    if (z === null) {
                      var u = /* @__PURE__ */ new Set();
                      u.add(l), p.updateQueue = u;
                    } else
                      z.add(l);
                    if ((p.mode & 2) === 0) {
                      if (p.flags |= 64, h.flags |= 16384, h.flags &= -2981, h.tag === 1)
                        if (h.alternate === null)
                          h.tag = 17;
                        else {
                          var t = zg(-1, 1);
                          t.tag = 2, Ag(h, t);
                        }
                      h.lanes |= 1;
                      break a;
                    }
                    k = void 0, h = b;
                    var q = f.pingCache;
                    if (q === null ? (q = f.pingCache = new Oi(), k = /* @__PURE__ */ new Set(), q.set(l, k)) : (k = q.get(l), k === void 0 && (k = /* @__PURE__ */ new Set(), q.set(l, k))), !k.has(h)) {
                      k.add(h);
                      var v = Yj.bind(null, f, l, h);
                      l.then(v, v);
                    }
                    p.flags |= 4096, p.lanes = b;
                    break a;
                  }
                  p = p.return;
                } while (p !== null);
                k = Error((Ra(h.type) || "A React component") + ` suspended while rendering, but no fallback UI was specified.

Add a <Suspense fallback=...> component higher in the tree to provide a loading indicator or placeholder to display.`);
              }
              V !== 5 && (V = 2), k = Mi(k, h), p = g;
              do {
                switch (p.tag) {
                  case 3:
                    f = k, p.flags |= 4096, b &= -b, p.lanes |= b;
                    var J = Pi(p, f, b);
                    Bg(p, J);
                    break a;
                  case 1:
                    f = k;
                    var K = p.type, Q = p.stateNode;
                    if ((p.flags & 64) === 0 && (typeof K.getDerivedStateFromError == "function" || Q !== null && typeof Q.componentDidCatch == "function" && (Ti === null || !Ti.has(Q)))) {
                      p.flags |= 4096, b &= -b, p.lanes |= b;
                      var L = Si(p, f, b);
                      Bg(p, L);
                      break a;
                    }
                }
                p = p.return;
              } while (p !== null);
            }
            Zj(c);
          } catch (va) {
            b = va, Y === c && c !== null && (Y = c = c.return);
            continue;
          }
          break;
        } while (1);
      }
      function Pj() {
        var a = oj.current;
        return oj.current = Gh, a === null ? Gh : a;
      }
      function Tj(a, b) {
        var c = X;
        X |= 16;
        var d = Pj();
        U === a && W === b || Qj(a, b);
        do
          try {
            ak();
            break;
          } catch (e) {
            Sj(a, e);
          }
        while (1);
        if (qg(), X = c, oj.current = d, Y !== null)
          throw Error(y(261));
        return U = null, W = 0, V;
      }
      function ak() {
        for (; Y !== null; )
          bk(Y);
      }
      function Rj() {
        for (; Y !== null && !Qf(); )
          bk(Y);
      }
      function bk(a) {
        var b = ck(a.alternate, a, qj);
        a.memoizedProps = a.pendingProps, b === null ? Zj(a) : Y = b, pj.current = null;
      }
      function Zj(a) {
        var b = a;
        do {
          var c = b.alternate;
          if (a = b.return, (b.flags & 2048) === 0) {
            if (c = Gi(c, b, qj), c !== null) {
              Y = c;
              return;
            }
            if (c = b, c.tag !== 24 && c.tag !== 23 || c.memoizedState === null || (qj & 1073741824) !== 0 || (c.mode & 4) === 0) {
              for (var d = 0, e = c.child; e !== null; )
                d |= e.lanes | e.childLanes, e = e.sibling;
              c.childLanes = d;
            }
            a !== null && (a.flags & 2048) === 0 && (a.firstEffect === null && (a.firstEffect = b.firstEffect), b.lastEffect !== null && (a.lastEffect !== null && (a.lastEffect.nextEffect = b.firstEffect), a.lastEffect = b.lastEffect), 1 < b.flags && (a.lastEffect !== null ? a.lastEffect.nextEffect = b : a.firstEffect = b, a.lastEffect = b));
          } else {
            if (c = Li(b), c !== null) {
              c.flags &= 2047, Y = c;
              return;
            }
            a !== null && (a.firstEffect = a.lastEffect = null, a.flags |= 2048);
          }
          if (b = b.sibling, b !== null) {
            Y = b;
            return;
          }
          Y = b = a;
        } while (b !== null);
        V === 0 && (V = 5);
      }
      function Uj(a) {
        var b = eg();
        return gg(99, dk.bind(null, a, b)), null;
      }
      function dk(a, b) {
        do
          Oj();
        while (yj !== null);
        if ((X & 48) !== 0)
          throw Error(y(327));
        var c = a.finishedWork;
        if (c === null)
          return null;
        if (a.finishedWork = null, a.finishedLanes = 0, c === a.current)
          throw Error(y(177));
        a.callbackNode = null;
        var d = c.lanes | c.childLanes, e = d, f = a.pendingLanes & ~e;
        a.pendingLanes = e, a.suspendedLanes = 0, a.pingedLanes = 0, a.expiredLanes &= e, a.mutableReadLanes &= e, a.entangledLanes &= e, e = a.entanglements;
        for (var g = a.eventTimes, h = a.expirationTimes; 0 < f; ) {
          var k = 31 - Vc(f), l = 1 << k;
          e[k] = 0, g[k] = -1, h[k] = -1, f &= ~l;
        }
        if (Cj !== null && (d & 24) === 0 && Cj.has(a) && Cj.delete(a), a === U && (Y = U = null, W = 0), 1 < c.flags ? c.lastEffect !== null ? (c.lastEffect.nextEffect = c, d = c.firstEffect) : d = c : d = c.firstEffect, d !== null) {
          if (e = X, X |= 32, pj.current = null, kf = fd, g = Ne(), Oe(g)) {
            if ("selectionStart" in g)
              h = { start: g.selectionStart, end: g.selectionEnd };
            else
              a:
                if (h = (h = g.ownerDocument) && h.defaultView || window, (l = h.getSelection && h.getSelection()) && l.rangeCount !== 0) {
                  h = l.anchorNode, f = l.anchorOffset, k = l.focusNode, l = l.focusOffset;
                  try {
                    h.nodeType, k.nodeType;
                  } catch {
                    h = null;
                    break a;
                  }
                  var n = 0, A = -1, p = -1, C = 0, x = 0, w = g, z = null;
                  b:
                    for (; ; ) {
                      for (var u; w !== h || f !== 0 && w.nodeType !== 3 || (A = n + f), w !== k || l !== 0 && w.nodeType !== 3 || (p = n + l), w.nodeType === 3 && (n += w.nodeValue.length), (u = w.firstChild) !== null; )
                        z = w, w = u;
                      for (; ; ) {
                        if (w === g)
                          break b;
                        if (z === h && ++C === f && (A = n), z === k && ++x === l && (p = n), (u = w.nextSibling) !== null)
                          break;
                        w = z, z = w.parentNode;
                      }
                      w = u;
                    }
                  h = A === -1 || p === -1 ? null : { start: A, end: p };
                } else
                  h = null;
            h = h || { start: 0, end: 0 };
          } else
            h = null;
          lf = { focusedElem: g, selectionRange: h }, fd = !1, Ij = null, Jj = !1, Z = d;
          do
            try {
              ek();
            } catch (va) {
              if (Z === null)
                throw Error(y(330));
              Wi(Z, va), Z = Z.nextEffect;
            }
          while (Z !== null);
          Ij = null, Z = d;
          do
            try {
              for (g = a; Z !== null; ) {
                var t = Z.flags;
                if (t & 16 && pb(Z.stateNode, ""), t & 128) {
                  var q = Z.alternate;
                  if (q !== null) {
                    var v = q.ref;
                    v !== null && (typeof v == "function" ? v(null) : v.current = null);
                  }
                }
                switch (t & 1038) {
                  case 2:
                    fj(Z), Z.flags &= -3;
                    break;
                  case 6:
                    fj(Z), Z.flags &= -3, ij(Z.alternate, Z);
                    break;
                  case 1024:
                    Z.flags &= -1025;
                    break;
                  case 1028:
                    Z.flags &= -1025, ij(Z.alternate, Z);
                    break;
                  case 4:
                    ij(Z.alternate, Z);
                    break;
                  case 8:
                    h = Z, cj(g, h);
                    var J = h.alternate;
                    dj(h), J !== null && dj(J);
                }
                Z = Z.nextEffect;
              }
            } catch (va) {
              if (Z === null)
                throw Error(y(330));
              Wi(Z, va), Z = Z.nextEffect;
            }
          while (Z !== null);
          if (v = lf, q = Ne(), t = v.focusedElem, g = v.selectionRange, q !== t && t && t.ownerDocument && Me(t.ownerDocument.documentElement, t)) {
            for (g !== null && Oe(t) && (q = g.start, v = g.end, v === void 0 && (v = q), "selectionStart" in t ? (t.selectionStart = q, t.selectionEnd = Math.min(v, t.value.length)) : (v = (q = t.ownerDocument || document) && q.defaultView || window, v.getSelection && (v = v.getSelection(), h = t.textContent.length, J = Math.min(g.start, h), g = g.end === void 0 ? J : Math.min(g.end, h), !v.extend && J > g && (h = g, g = J, J = h), h = Le(t, J), f = Le(t, g), h && f && (v.rangeCount !== 1 || v.anchorNode !== h.node || v.anchorOffset !== h.offset || v.focusNode !== f.node || v.focusOffset !== f.offset) && (q = q.createRange(), q.setStart(h.node, h.offset), v.removeAllRanges(), J > g ? (v.addRange(q), v.extend(f.node, f.offset)) : (q.setEnd(f.node, f.offset), v.addRange(q)))))), q = [], v = t; v = v.parentNode; )
              v.nodeType === 1 && q.push({ element: v, left: v.scrollLeft, top: v.scrollTop });
            for (typeof t.focus == "function" && t.focus(), t = 0; t < q.length; t++)
              v = q[t], v.element.scrollLeft = v.left, v.element.scrollTop = v.top;
          }
          fd = !!kf, lf = kf = null, a.current = c, Z = d;
          do
            try {
              for (t = a; Z !== null; ) {
                var K = Z.flags;
                if (K & 36 && Yi(t, Z.alternate, Z), K & 128) {
                  q = void 0;
                  var Q = Z.ref;
                  if (Q !== null) {
                    var L = Z.stateNode;
                    switch (Z.tag) {
                      case 5:
                        q = L;
                        break;
                      default:
                        q = L;
                    }
                    typeof Q == "function" ? Q(q) : Q.current = q;
                  }
                }
                Z = Z.nextEffect;
              }
            } catch (va) {
              if (Z === null)
                throw Error(y(330));
              Wi(Z, va), Z = Z.nextEffect;
            }
          while (Z !== null);
          Z = null, $f(), X = e;
        } else
          a.current = c;
        if (xj)
          xj = !1, yj = a, zj = b;
        else
          for (Z = d; Z !== null; )
            b = Z.nextEffect, Z.nextEffect = null, Z.flags & 8 && (K = Z, K.sibling = null, K.stateNode = null), Z = b;
        if (d = a.pendingLanes, d === 0 && (Ti = null), d === 1 ? a === Ej ? Dj++ : (Dj = 0, Ej = a) : Dj = 0, c = c.stateNode, Mf && typeof Mf.onCommitFiberRoot == "function")
          try {
            Mf.onCommitFiberRoot(Lf, c, void 0, (c.current.flags & 64) === 64);
          } catch {
          }
        if (Mj(a, O()), Qi)
          throw Qi = !1, a = Ri, Ri = null, a;
        return (X & 8) !== 0 || ig(), null;
      }
      function ek() {
        for (; Z !== null; ) {
          var a = Z.alternate;
          Jj || Ij === null || ((Z.flags & 8) !== 0 ? dc(Z, Ij) && (Jj = !0) : Z.tag === 13 && mj(a, Z) && dc(Z, Ij) && (Jj = !0));
          var b = Z.flags;
          (b & 256) !== 0 && Xi(a, Z), (b & 512) === 0 || xj || (xj = !0, hg(97, function() {
            return Oj(), null;
          })), Z = Z.nextEffect;
        }
      }
      function Oj() {
        if (zj !== 90) {
          var a = 97 < zj ? 97 : zj;
          return zj = 90, gg(a, fk);
        }
        return !1;
      }
      function $i(a, b) {
        Aj.push(b, a), xj || (xj = !0, hg(97, function() {
          return Oj(), null;
        }));
      }
      function Zi(a, b) {
        Bj.push(b, a), xj || (xj = !0, hg(97, function() {
          return Oj(), null;
        }));
      }
      function fk() {
        if (yj === null)
          return !1;
        var a = yj;
        if (yj = null, (X & 48) !== 0)
          throw Error(y(331));
        var b = X;
        X |= 32;
        var c = Bj;
        Bj = [];
        for (var d = 0; d < c.length; d += 2) {
          var e = c[d], f = c[d + 1], g = e.destroy;
          if (e.destroy = void 0, typeof g == "function")
            try {
              g();
            } catch (k) {
              if (f === null)
                throw Error(y(330));
              Wi(f, k);
            }
        }
        for (c = Aj, Aj = [], d = 0; d < c.length; d += 2) {
          e = c[d], f = c[d + 1];
          try {
            var h = e.create;
            e.destroy = h();
          } catch (k) {
            if (f === null)
              throw Error(y(330));
            Wi(f, k);
          }
        }
        for (h = a.current.firstEffect; h !== null; )
          a = h.nextEffect, h.nextEffect = null, h.flags & 8 && (h.sibling = null, h.stateNode = null), h = a;
        return X = b, ig(), !0;
      }
      function gk(a, b, c) {
        b = Mi(c, b), b = Pi(a, b, 1), Ag(a, b), b = Hg(), a = Kj(a, 1), a !== null && ($c(a, 1, b), Mj(a, b));
      }
      function Wi(a, b) {
        if (a.tag === 3)
          gk(a, a, b);
        else
          for (var c = a.return; c !== null; ) {
            if (c.tag === 3) {
              gk(c, a, b);
              break;
            } else if (c.tag === 1) {
              var d = c.stateNode;
              if (typeof c.type.getDerivedStateFromError == "function" || typeof d.componentDidCatch == "function" && (Ti === null || !Ti.has(d))) {
                a = Mi(b, a);
                var e = Si(c, a, 1);
                if (Ag(c, e), e = Hg(), c = Kj(c, 1), c !== null)
                  $c(c, 1, e), Mj(c, e);
                else if (typeof d.componentDidCatch == "function" && (Ti === null || !Ti.has(d)))
                  try {
                    d.componentDidCatch(b, a);
                  } catch {
                  }
                break;
              }
            }
            c = c.return;
          }
      }
      function Yj(a, b, c) {
        var d = a.pingCache;
        d !== null && d.delete(b), b = Hg(), a.pingedLanes |= a.suspendedLanes & c, U === a && (W & c) === c && (V === 4 || V === 3 && (W & 62914560) === W && 500 > O() - jj ? Qj(a, 0) : uj |= c), Mj(a, b);
      }
      function lj(a, b) {
        var c = a.stateNode;
        c !== null && c.delete(b), b = 0, b === 0 && (b = a.mode, (b & 2) === 0 ? b = 1 : (b & 4) === 0 ? b = eg() === 99 ? 1 : 2 : (Gj === 0 && (Gj = tj), b = Yc(62914560 & ~Gj), b === 0 && (b = 4194304))), c = Hg(), a = Kj(a, b), a !== null && ($c(a, b, c), Mj(a, c));
      }
      var ck;
      ck = function(a, b, c) {
        var d = b.lanes;
        if (a !== null)
          if (a.memoizedProps !== b.pendingProps || N.current)
            ug = !0;
          else if ((c & d) !== 0)
            ug = (a.flags & 16384) !== 0;
          else {
            switch (ug = !1, b.tag) {
              case 3:
                ri(b), sh();
                break;
              case 5:
                gh(b);
                break;
              case 1:
                Ff(b.type) && Jf(b);
                break;
              case 4:
                eh(b, b.stateNode.containerInfo);
                break;
              case 10:
                d = b.memoizedProps.value;
                var e = b.type._context;
                I(mg, e._currentValue), e._currentValue = d;
                break;
              case 13:
                if (b.memoizedState !== null)
                  return (c & b.child.childLanes) !== 0 ? ti(a, b, c) : (I(P, P.current & 1), b = hi(a, b, c), b !== null ? b.sibling : null);
                I(P, P.current & 1);
                break;
              case 19:
                if (d = (c & b.childLanes) !== 0, (a.flags & 64) !== 0) {
                  if (d)
                    return Ai(a, b, c);
                  b.flags |= 64;
                }
                if (e = b.memoizedState, e !== null && (e.rendering = null, e.tail = null, e.lastEffect = null), I(P, P.current), d)
                  break;
                return null;
              case 23:
              case 24:
                return b.lanes = 0, mi(a, b, c);
            }
            return hi(a, b, c);
          }
        else
          ug = !1;
        switch (b.lanes = 0, b.tag) {
          case 2:
            if (d = b.type, a !== null && (a.alternate = null, b.alternate = null, b.flags |= 2), a = b.pendingProps, e = Ef(b, M.current), tg(b, c), e = Ch(null, b, d, a, e, c), b.flags |= 1, typeof e == "object" && e !== null && typeof e.render == "function" && e.$$typeof === void 0) {
              if (b.tag = 1, b.memoizedState = null, b.updateQueue = null, Ff(d)) {
                var f = !0;
                Jf(b);
              } else
                f = !1;
              b.memoizedState = e.state !== null && e.state !== void 0 ? e.state : null, xg(b);
              var g = d.getDerivedStateFromProps;
              typeof g == "function" && Gg(b, d, g, a), e.updater = Kg, b.stateNode = e, e._reactInternals = b, Og(b, d, a, c), b = qi(null, b, d, !0, f, c);
            } else
              b.tag = 0, fi(null, b, e, c), b = b.child;
            return b;
          case 16:
            e = b.elementType;
            a: {
              switch (a !== null && (a.alternate = null, b.alternate = null, b.flags |= 2), a = b.pendingProps, f = e._init, e = f(e._payload), b.type = e, f = b.tag = hk(e), a = lg(e, a), f) {
                case 0:
                  b = li(null, b, e, a, c);
                  break a;
                case 1:
                  b = pi(null, b, e, a, c);
                  break a;
                case 11:
                  b = gi(null, b, e, a, c);
                  break a;
                case 14:
                  b = ii(null, b, e, lg(e.type, a), d, c);
                  break a;
              }
              throw Error(y(306, e, ""));
            }
            return b;
          case 0:
            return d = b.type, e = b.pendingProps, e = b.elementType === d ? e : lg(d, e), li(a, b, d, e, c);
          case 1:
            return d = b.type, e = b.pendingProps, e = b.elementType === d ? e : lg(d, e), pi(a, b, d, e, c);
          case 3:
            if (ri(b), d = b.updateQueue, a === null || d === null)
              throw Error(y(282));
            if (d = b.pendingProps, e = b.memoizedState, e = e !== null ? e.element : null, yg(a, b), Cg(b, d, null, c), d = b.memoizedState.element, d === e)
              sh(), b = hi(a, b, c);
            else {
              if (e = b.stateNode, (f = e.hydrate) && (kh = rf(b.stateNode.containerInfo.firstChild), jh = b, f = lh = !0), f) {
                if (a = e.mutableSourceEagerHydrationData, a != null)
                  for (e = 0; e < a.length; e += 2)
                    f = a[e], f._workInProgressVersionPrimary = a[e + 1], th.push(f);
                for (c = Zg(b, null, d, c), b.child = c; c; )
                  c.flags = c.flags & -3 | 1024, c = c.sibling;
              } else
                fi(a, b, d, c), sh();
              b = b.child;
            }
            return b;
          case 5:
            return gh(b), a === null && ph(b), d = b.type, e = b.pendingProps, f = a !== null ? a.memoizedProps : null, g = e.children, nf(d, e) ? g = null : f !== null && nf(d, f) && (b.flags |= 16), oi(a, b), fi(a, b, g, c), b.child;
          case 6:
            return a === null && ph(b), null;
          case 13:
            return ti(a, b, c);
          case 4:
            return eh(b, b.stateNode.containerInfo), d = b.pendingProps, a === null ? b.child = Yg(b, null, d, c) : fi(a, b, d, c), b.child;
          case 11:
            return d = b.type, e = b.pendingProps, e = b.elementType === d ? e : lg(d, e), gi(a, b, d, e, c);
          case 7:
            return fi(a, b, b.pendingProps, c), b.child;
          case 8:
            return fi(
              a,
              b,
              b.pendingProps.children,
              c
            ), b.child;
          case 12:
            return fi(a, b, b.pendingProps.children, c), b.child;
          case 10:
            a: {
              d = b.type._context, e = b.pendingProps, g = b.memoizedProps, f = e.value;
              var h = b.type._context;
              if (I(mg, h._currentValue), h._currentValue = f, g !== null)
                if (h = g.value, f = He(h, f) ? 0 : (typeof d._calculateChangedBits == "function" ? d._calculateChangedBits(h, f) : 1073741823) | 0, f === 0) {
                  if (g.children === e.children && !N.current) {
                    b = hi(a, b, c);
                    break a;
                  }
                } else
                  for (h = b.child, h !== null && (h.return = b); h !== null; ) {
                    var k = h.dependencies;
                    if (k !== null) {
                      g = h.child;
                      for (var l = k.firstContext; l !== null; ) {
                        if (l.context === d && (l.observedBits & f) !== 0) {
                          h.tag === 1 && (l = zg(-1, c & -c), l.tag = 2, Ag(h, l)), h.lanes |= c, l = h.alternate, l !== null && (l.lanes |= c), sg(h.return, c), k.lanes |= c;
                          break;
                        }
                        l = l.next;
                      }
                    } else
                      g = h.tag === 10 && h.type === b.type ? null : h.child;
                    if (g !== null)
                      g.return = h;
                    else
                      for (g = h; g !== null; ) {
                        if (g === b) {
                          g = null;
                          break;
                        }
                        if (h = g.sibling, h !== null) {
                          h.return = g.return, g = h;
                          break;
                        }
                        g = g.return;
                      }
                    h = g;
                  }
              fi(a, b, e.children, c), b = b.child;
            }
            return b;
          case 9:
            return e = b.type, f = b.pendingProps, d = f.children, tg(b, c), e = vg(
              e,
              f.unstable_observedBits
            ), d = d(e), b.flags |= 1, fi(a, b, d, c), b.child;
          case 14:
            return e = b.type, f = lg(e, b.pendingProps), f = lg(e.type, f), ii(a, b, e, f, d, c);
          case 15:
            return ki(a, b, b.type, b.pendingProps, d, c);
          case 17:
            return d = b.type, e = b.pendingProps, e = b.elementType === d ? e : lg(d, e), a !== null && (a.alternate = null, b.alternate = null, b.flags |= 2), b.tag = 1, Ff(d) ? (a = !0, Jf(b)) : a = !1, tg(b, c), Mg(b, d, e), Og(b, d, e, c), qi(null, b, d, !0, a, c);
          case 19:
            return Ai(a, b, c);
          case 23:
            return mi(a, b, c);
          case 24:
            return mi(a, b, c);
        }
        throw Error(y(156, b.tag));
      };
      function ik(a, b, c, d) {
        this.tag = a, this.key = c, this.sibling = this.child = this.return = this.stateNode = this.type = this.elementType = null, this.index = 0, this.ref = null, this.pendingProps = b, this.dependencies = this.memoizedState = this.updateQueue = this.memoizedProps = null, this.mode = d, this.flags = 0, this.lastEffect = this.firstEffect = this.nextEffect = null, this.childLanes = this.lanes = 0, this.alternate = null;
      }
      function nh(a, b, c, d) {
        return new ik(a, b, c, d);
      }
      function ji(a) {
        return a = a.prototype, !(!a || !a.isReactComponent);
      }
      function hk(a) {
        if (typeof a == "function")
          return ji(a) ? 1 : 0;
        if (a != null) {
          if (a = a.$$typeof, a === Aa)
            return 11;
          if (a === Da)
            return 14;
        }
        return 2;
      }
      function Tg(a, b) {
        var c = a.alternate;
        return c === null ? (c = nh(a.tag, b, a.key, a.mode), c.elementType = a.elementType, c.type = a.type, c.stateNode = a.stateNode, c.alternate = a, a.alternate = c) : (c.pendingProps = b, c.type = a.type, c.flags = 0, c.nextEffect = null, c.firstEffect = null, c.lastEffect = null), c.childLanes = a.childLanes, c.lanes = a.lanes, c.child = a.child, c.memoizedProps = a.memoizedProps, c.memoizedState = a.memoizedState, c.updateQueue = a.updateQueue, b = a.dependencies, c.dependencies = b === null ? null : { lanes: b.lanes, firstContext: b.firstContext }, c.sibling = a.sibling, c.index = a.index, c.ref = a.ref, c;
      }
      function Vg(a, b, c, d, e, f) {
        var g = 2;
        if (d = a, typeof a == "function")
          ji(a) && (g = 1);
        else if (typeof a == "string")
          g = 5;
        else
          a:
            switch (a) {
              case ua:
                return Xg(c.children, e, f, b);
              case Ha:
                g = 8, e |= 16;
                break;
              case wa:
                g = 8, e |= 1;
                break;
              case xa:
                return a = nh(12, c, b, e | 8), a.elementType = xa, a.type = xa, a.lanes = f, a;
              case Ba:
                return a = nh(13, c, b, e), a.type = Ba, a.elementType = Ba, a.lanes = f, a;
              case Ca:
                return a = nh(19, c, b, e), a.elementType = Ca, a.lanes = f, a;
              case Ia:
                return vi(c, e, f, b);
              case Ja:
                return a = nh(24, c, b, e), a.elementType = Ja, a.lanes = f, a;
              default:
                if (typeof a == "object" && a !== null)
                  switch (a.$$typeof) {
                    case ya:
                      g = 10;
                      break a;
                    case za:
                      g = 9;
                      break a;
                    case Aa:
                      g = 11;
                      break a;
                    case Da:
                      g = 14;
                      break a;
                    case Ea:
                      g = 16, d = null;
                      break a;
                    case Fa:
                      g = 22;
                      break a;
                  }
                throw Error(y(130, a == null ? a : typeof a, ""));
            }
        return b = nh(g, c, b, e), b.elementType = a, b.type = d, b.lanes = f, b;
      }
      function Xg(a, b, c, d) {
        return a = nh(7, a, d, b), a.lanes = c, a;
      }
      function vi(a, b, c, d) {
        return a = nh(23, a, d, b), a.elementType = Ia, a.lanes = c, a;
      }
      function Ug(a, b, c) {
        return a = nh(6, a, null, b), a.lanes = c, a;
      }
      function Wg(a, b, c) {
        return b = nh(4, a.children !== null ? a.children : [], a.key, b), b.lanes = c, b.stateNode = { containerInfo: a.containerInfo, pendingChildren: null, implementation: a.implementation }, b;
      }
      function jk(a, b, c) {
        this.tag = b, this.containerInfo = a, this.finishedWork = this.pingCache = this.current = this.pendingChildren = null, this.timeoutHandle = -1, this.pendingContext = this.context = null, this.hydrate = c, this.callbackNode = null, this.callbackPriority = 0, this.eventTimes = Zc(0), this.expirationTimes = Zc(-1), this.entangledLanes = this.finishedLanes = this.mutableReadLanes = this.expiredLanes = this.pingedLanes = this.suspendedLanes = this.pendingLanes = 0, this.entanglements = Zc(0), this.mutableSourceEagerHydrationData = null;
      }
      function kk(a, b, c) {
        var d = 3 < arguments.length && arguments[3] !== void 0 ? arguments[3] : null;
        return { $$typeof: ta, key: d == null ? null : "" + d, children: a, containerInfo: b, implementation: c };
      }
      function lk(a, b, c, d) {
        var e = b.current, f = Hg(), g = Ig(e);
        a:
          if (c) {
            c = c._reactInternals;
            b: {
              if (Zb(c) !== c || c.tag !== 1)
                throw Error(y(170));
              var h = c;
              do {
                switch (h.tag) {
                  case 3:
                    h = h.stateNode.context;
                    break b;
                  case 1:
                    if (Ff(h.type)) {
                      h = h.stateNode.__reactInternalMemoizedMergedChildContext;
                      break b;
                    }
                }
                h = h.return;
              } while (h !== null);
              throw Error(y(171));
            }
            if (c.tag === 1) {
              var k = c.type;
              if (Ff(k)) {
                c = If(c, k, h);
                break a;
              }
            }
            c = h;
          } else
            c = Cf;
        return b.context === null ? b.context = c : b.pendingContext = c, b = zg(f, g), b.payload = { element: a }, d = d === void 0 ? null : d, d !== null && (b.callback = d), Ag(e, b), Jg(e, g, f), g;
      }
      function mk(a) {
        if (a = a.current, !a.child)
          return null;
        switch (a.child.tag) {
          case 5:
            return a.child.stateNode;
          default:
            return a.child.stateNode;
        }
      }
      function nk(a, b) {
        if (a = a.memoizedState, a !== null && a.dehydrated !== null) {
          var c = a.retryLane;
          a.retryLane = c !== 0 && c < b ? c : b;
        }
      }
      function ok(a, b) {
        nk(a, b), (a = a.alternate) && nk(a, b);
      }
      function pk() {
        return null;
      }
      function qk(a, b, c) {
        var d = c != null && c.hydrationOptions != null && c.hydrationOptions.mutableSources || null;
        if (c = new jk(a, b, c != null && c.hydrate === !0), b = nh(3, null, null, b === 2 ? 7 : b === 1 ? 3 : 0), c.current = b, b.stateNode = c, xg(b), a[ff] = c.current, cf(a.nodeType === 8 ? a.parentNode : a), d)
          for (a = 0; a < d.length; a++) {
            b = d[a];
            var e = b._getVersion;
            e = e(b._source), c.mutableSourceEagerHydrationData == null ? c.mutableSourceEagerHydrationData = [b, e] : c.mutableSourceEagerHydrationData.push(b, e);
          }
        this._internalRoot = c;
      }
      qk.prototype.render = function(a) {
        lk(a, this._internalRoot, null, null);
      };
      qk.prototype.unmount = function() {
        var a = this._internalRoot, b = a.containerInfo;
        lk(null, a, null, function() {
          b[ff] = null;
        });
      };
      function rk(a) {
        return !(!a || a.nodeType !== 1 && a.nodeType !== 9 && a.nodeType !== 11 && (a.nodeType !== 8 || a.nodeValue !== " react-mount-point-unstable "));
      }
      function sk(a, b) {
        if (b || (b = a ? a.nodeType === 9 ? a.documentElement : a.firstChild : null, b = !(!b || b.nodeType !== 1 || !b.hasAttribute("data-reactroot"))), !b)
          for (var c; c = a.lastChild; )
            a.removeChild(c);
        return new qk(a, 0, b ? { hydrate: !0 } : void 0);
      }
      function tk(a, b, c, d, e) {
        var f = c._reactRootContainer;
        if (f) {
          var g = f._internalRoot;
          if (typeof e == "function") {
            var h = e;
            e = function() {
              var a2 = mk(g);
              h.call(a2);
            };
          }
          lk(b, g, a, e);
        } else {
          if (f = c._reactRootContainer = sk(c, d), g = f._internalRoot, typeof e == "function") {
            var k = e;
            e = function() {
              var a2 = mk(g);
              k.call(a2);
            };
          }
          Xj(function() {
            lk(b, g, a, e);
          });
        }
        return mk(g);
      }
      ec = function(a) {
        if (a.tag === 13) {
          var b = Hg();
          Jg(a, 4, b), ok(a, 4);
        }
      };
      fc = function(a) {
        if (a.tag === 13) {
          var b = Hg();
          Jg(a, 67108864, b), ok(a, 67108864);
        }
      };
      gc = function(a) {
        if (a.tag === 13) {
          var b = Hg(), c = Ig(a);
          Jg(a, c, b), ok(a, c);
        }
      };
      hc = function(a, b) {
        return b();
      };
      yb = function(a, b, c) {
        switch (b) {
          case "input":
            if (ab(a, c), b = c.name, c.type === "radio" && b != null) {
              for (c = a; c.parentNode; )
                c = c.parentNode;
              for (c = c.querySelectorAll("input[name=" + JSON.stringify("" + b) + '][type="radio"]'), b = 0; b < c.length; b++) {
                var d = c[b];
                if (d !== a && d.form === a.form) {
                  var e = Db(d);
                  if (!e)
                    throw Error(y(90));
                  Wa(d), ab(d, e);
                }
              }
            }
            break;
          case "textarea":
            ib(a, c);
            break;
          case "select":
            b = c.value, b != null && fb(a, !!c.multiple, b, !1);
        }
      };
      Gb = Wj;
      Hb = function(a, b, c, d, e) {
        var f = X;
        X |= 4;
        try {
          return gg(98, a.bind(null, b, c, d, e));
        } finally {
          X = f, X === 0 && (wj(), ig());
        }
      };
      Ib = function() {
        (X & 49) === 0 && (Vj(), Oj());
      };
      Jb = function(a, b) {
        var c = X;
        X |= 2;
        try {
          return a(b);
        } finally {
          X = c, X === 0 && (wj(), ig());
        }
      };
      function uk(a, b) {
        var c = 2 < arguments.length && arguments[2] !== void 0 ? arguments[2] : null;
        if (!rk(b))
          throw Error(y(200));
        return kk(a, b, null, c);
      }
      var vk = { Events: [Cb, ue, Db, Eb, Fb, Oj, { current: !1 }] }, wk = { findFiberByHostInstance: wc, bundleType: 0, version: "17.0.2", rendererPackageName: "react-dom" }, xk = { bundleType: wk.bundleType, version: wk.version, rendererPackageName: wk.rendererPackageName, rendererConfig: wk.rendererConfig, overrideHookState: null, overrideHookStateDeletePath: null, overrideHookStateRenamePath: null, overrideProps: null, overridePropsDeletePath: null, overridePropsRenamePath: null, setSuspenseHandler: null, scheduleUpdate: null, currentDispatcherRef: ra.ReactCurrentDispatcher, findHostInstanceByFiber: function(a) {
        return a = cc(a), a === null ? null : a.stateNode;
      }, findFiberByHostInstance: wk.findFiberByHostInstance || pk, findHostInstancesForRefresh: null, scheduleRefresh: null, scheduleRoot: null, setRefreshHandler: null, getCurrentFiber: null };
      if (typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ < "u" && (yk = __REACT_DEVTOOLS_GLOBAL_HOOK__, !yk.isDisabled && yk.supportsFiber))
        try {
          Lf = yk.inject(xk), Mf = yk;
        } catch {
        }
      var yk;
      exports.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED = vk;
      exports.createPortal = uk;
      exports.findDOMNode = function(a) {
        if (a == null)
          return null;
        if (a.nodeType === 1)
          return a;
        var b = a._reactInternals;
        if (b === void 0)
          throw typeof a.render == "function" ? Error(y(188)) : Error(y(268, Object.keys(a)));
        return a = cc(b), a = a === null ? null : a.stateNode, a;
      };
      exports.flushSync = function(a, b) {
        var c = X;
        if ((c & 48) !== 0)
          return a(b);
        X |= 1;
        try {
          if (a)
            return gg(99, a.bind(null, b));
        } finally {
          X = c, ig();
        }
      };
      exports.hydrate = function(a, b, c) {
        if (!rk(b))
          throw Error(y(200));
        return tk(null, a, b, !0, c);
      };
      exports.render = function(a, b, c) {
        if (!rk(b))
          throw Error(y(200));
        return tk(null, a, b, !1, c);
      };
      exports.unmountComponentAtNode = function(a) {
        if (!rk(a))
          throw Error(y(40));
        return a._reactRootContainer ? (Xj(function() {
          tk(null, null, a, !1, function() {
            a._reactRootContainer = null, a[ff] = null;
          });
        }), !0) : !1;
      };
      exports.unstable_batchedUpdates = Wj;
      exports.unstable_createPortal = function(a, b) {
        return uk(a, b, 2 < arguments.length && arguments[2] !== void 0 ? arguments[2] : null);
      };
      exports.unstable_renderSubtreeIntoContainer = function(a, b, c, d) {
        if (!rk(c))
          throw Error(y(200));
        if (a == null || a._reactInternals === void 0)
          throw Error(y(38));
        return tk(a, b, c, !1, d);
      };
      exports.version = "17.0.2";
    }
  });

  // node_modules/react-dom/index.js
  var require_react_dom = __commonJS({
    "node_modules/react-dom/index.js"(exports, module) {
      "use strict";
      function checkDCE() {
        if (!(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ > "u" || typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE != "function"))
          try {
            __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(checkDCE);
          } catch (err) {
            console.error(err);
          }
      }
      checkDCE(), module.exports = require_react_dom_production_min();
    }
  });

  // node_modules/prop-types/lib/ReactPropTypesSecret.js
  var require_ReactPropTypesSecret = __commonJS({
    "node_modules/prop-types/lib/ReactPropTypesSecret.js"(exports, module) {
      "use strict";
      var ReactPropTypesSecret = "SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED";
      module.exports = ReactPropTypesSecret;
    }
  });

  // node_modules/prop-types/factoryWithThrowingShims.js
  var require_factoryWithThrowingShims = __commonJS({
    "node_modules/prop-types/factoryWithThrowingShims.js"(exports, module) {
      "use strict";
      var ReactPropTypesSecret = require_ReactPropTypesSecret();
      function emptyFunction() {
      }
      function emptyFunctionWithReset() {
      }
      emptyFunctionWithReset.resetWarningCache = emptyFunction;
      module.exports = function() {
        function shim(props, propName, componentName, location, propFullName, secret) {
          if (secret !== ReactPropTypesSecret) {
            var err = new Error(
              "Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types"
            );
            throw err.name = "Invariant Violation", err;
          }
        }
        shim.isRequired = shim;
        function getShim() {
          return shim;
        }
        var ReactPropTypes = {
          array: shim,
          bigint: shim,
          bool: shim,
          func: shim,
          number: shim,
          object: shim,
          string: shim,
          symbol: shim,
          any: shim,
          arrayOf: getShim,
          element: shim,
          elementType: shim,
          instanceOf: getShim,
          node: shim,
          objectOf: getShim,
          oneOf: getShim,
          oneOfType: getShim,
          shape: getShim,
          exact: getShim,
          checkPropTypes: emptyFunctionWithReset,
          resetWarningCache: emptyFunction
        };
        return ReactPropTypes.PropTypes = ReactPropTypes, ReactPropTypes;
      };
    }
  });

  // node_modules/prop-types/index.js
  var require_prop_types = __commonJS({
    "node_modules/prop-types/index.js"(exports, module) {
      module.exports = require_factoryWithThrowingShims()();
      var ReactIs, throwOnDirectAccess;
    }
  });

  // node_modules/isarray/index.js
  var require_isarray = __commonJS({
    "node_modules/isarray/index.js"(exports, module) {
      module.exports = Array.isArray || function(arr) {
        return Object.prototype.toString.call(arr) == "[object Array]";
      };
    }
  });

  // node_modules/path-to-regexp/index.js
  var require_path_to_regexp = __commonJS({
    "node_modules/path-to-regexp/index.js"(exports, module) {
      var isarray = require_isarray();
      module.exports = pathToRegexp2;
      module.exports.parse = parse;
      module.exports.compile = compile;
      module.exports.tokensToFunction = tokensToFunction;
      module.exports.tokensToRegExp = tokensToRegExp;
      var PATH_REGEXP = new RegExp([
        "(\\\\.)",
        "([\\/.])?(?:(?:\\:(\\w+)(?:\\(((?:\\\\.|[^\\\\()])+)\\))?|\\(((?:\\\\.|[^\\\\()])+)\\))([+*?])?|(\\*))"
      ].join("|"), "g");
      function parse(str, options) {
        for (var tokens = [], key = 0, index2 = 0, path = "", defaultDelimiter = options && options.delimiter || "/", res; (res = PATH_REGEXP.exec(str)) != null; ) {
          var m = res[0], escaped = res[1], offset = res.index;
          if (path += str.slice(index2, offset), index2 = offset + m.length, escaped) {
            path += escaped[1];
            continue;
          }
          var next = str[index2], prefix2 = res[2], name = res[3], capture = res[4], group = res[5], modifier = res[6], asterisk = res[7];
          path && (tokens.push(path), path = "");
          var partial = prefix2 != null && next != null && next !== prefix2, repeat = modifier === "+" || modifier === "*", optional = modifier === "?" || modifier === "*", delimiter = res[2] || defaultDelimiter, pattern = capture || group;
          tokens.push({
            name: name || key++,
            prefix: prefix2 || "",
            delimiter,
            optional,
            repeat,
            partial,
            asterisk: !!asterisk,
            pattern: pattern ? escapeGroup(pattern) : asterisk ? ".*" : "[^" + escapeString(delimiter) + "]+?"
          });
        }
        return index2 < str.length && (path += str.substr(index2)), path && tokens.push(path), tokens;
      }
      function compile(str, options) {
        return tokensToFunction(parse(str, options), options);
      }
      function encodeURIComponentPretty(str) {
        return encodeURI(str).replace(/[\/?#]/g, function(c) {
          return "%" + c.charCodeAt(0).toString(16).toUpperCase();
        });
      }
      function encodeAsterisk(str) {
        return encodeURI(str).replace(/[?#]/g, function(c) {
          return "%" + c.charCodeAt(0).toString(16).toUpperCase();
        });
      }
      function tokensToFunction(tokens, options) {
        for (var matches = new Array(tokens.length), i = 0; i < tokens.length; i++)
          typeof tokens[i] == "object" && (matches[i] = new RegExp("^(?:" + tokens[i].pattern + ")$", flags(options)));
        return function(obj, opts) {
          for (var path = "", data = obj || {}, options2 = opts || {}, encode = options2.pretty ? encodeURIComponentPretty : encodeURIComponent, i2 = 0; i2 < tokens.length; i2++) {
            var token = tokens[i2];
            if (typeof token == "string") {
              path += token;
              continue;
            }
            var value = data[token.name], segment;
            if (value == null)
              if (token.optional) {
                token.partial && (path += token.prefix);
                continue;
              } else
                throw new TypeError('Expected "' + token.name + '" to be defined');
            if (isarray(value)) {
              if (!token.repeat)
                throw new TypeError('Expected "' + token.name + '" to not repeat, but received `' + JSON.stringify(value) + "`");
              if (value.length === 0) {
                if (token.optional)
                  continue;
                throw new TypeError('Expected "' + token.name + '" to not be empty');
              }
              for (var j = 0; j < value.length; j++) {
                if (segment = encode(value[j]), !matches[i2].test(segment))
                  throw new TypeError('Expected all "' + token.name + '" to match "' + token.pattern + '", but received `' + JSON.stringify(segment) + "`");
                path += (j === 0 ? token.prefix : token.delimiter) + segment;
              }
              continue;
            }
            if (segment = token.asterisk ? encodeAsterisk(value) : encode(value), !matches[i2].test(segment))
              throw new TypeError('Expected "' + token.name + '" to match "' + token.pattern + '", but received "' + segment + '"');
            path += token.prefix + segment;
          }
          return path;
        };
      }
      function escapeString(str) {
        return str.replace(/([.+*?=^!:${}()[\]|\/\\])/g, "\\$1");
      }
      function escapeGroup(group) {
        return group.replace(/([=!:$\/()])/g, "\\$1");
      }
      function attachKeys(re, keys) {
        return re.keys = keys, re;
      }
      function flags(options) {
        return options && options.sensitive ? "" : "i";
      }
      function regexpToRegexp(path, keys) {
        var groups = path.source.match(/\((?!\?)/g);
        if (groups)
          for (var i = 0; i < groups.length; i++)
            keys.push({
              name: i,
              prefix: null,
              delimiter: null,
              optional: !1,
              repeat: !1,
              partial: !1,
              asterisk: !1,
              pattern: null
            });
        return attachKeys(path, keys);
      }
      function arrayToRegexp(path, keys, options) {
        for (var parts = [], i = 0; i < path.length; i++)
          parts.push(pathToRegexp2(path[i], keys, options).source);
        var regexp = new RegExp("(?:" + parts.join("|") + ")", flags(options));
        return attachKeys(regexp, keys);
      }
      function stringToRegexp(path, keys, options) {
        return tokensToRegExp(parse(path, options), keys, options);
      }
      function tokensToRegExp(tokens, keys, options) {
        isarray(keys) || (options = keys || options, keys = []), options = options || {};
        for (var strict = options.strict, end = options.end !== !1, route = "", i = 0; i < tokens.length; i++) {
          var token = tokens[i];
          if (typeof token == "string")
            route += escapeString(token);
          else {
            var prefix2 = escapeString(token.prefix), capture = "(?:" + token.pattern + ")";
            keys.push(token), token.repeat && (capture += "(?:" + prefix2 + capture + ")*"), token.optional ? token.partial ? capture = prefix2 + "(" + capture + ")?" : capture = "(?:" + prefix2 + "(" + capture + "))?" : capture = prefix2 + "(" + capture + ")", route += capture;
          }
        }
        var delimiter = escapeString(options.delimiter || "/"), endsWithDelimiter = route.slice(-delimiter.length) === delimiter;
        return strict || (route = (endsWithDelimiter ? route.slice(0, -delimiter.length) : route) + "(?:" + delimiter + "(?=$))?"), end ? route += "$" : route += strict && endsWithDelimiter ? "" : "(?=" + delimiter + "|$)", attachKeys(new RegExp("^" + route, flags(options)), keys);
      }
      function pathToRegexp2(path, keys, options) {
        return isarray(keys) || (options = keys || options, keys = []), options = options || {}, path instanceof RegExp ? regexpToRegexp(path, keys) : isarray(path) ? arrayToRegexp(path, keys, options) : stringToRegexp(path, keys, options);
      }
    }
  });

  // node_modules/react-is/cjs/react-is.production.min.js
  var require_react_is_production_min = __commonJS({
    "node_modules/react-is/cjs/react-is.production.min.js"(exports) {
      "use strict";
      var b = typeof Symbol == "function" && Symbol.for, c = b ? Symbol.for("react.element") : 60103, d = b ? Symbol.for("react.portal") : 60106, e = b ? Symbol.for("react.fragment") : 60107, f = b ? Symbol.for("react.strict_mode") : 60108, g = b ? Symbol.for("react.profiler") : 60114, h = b ? Symbol.for("react.provider") : 60109, k = b ? Symbol.for("react.context") : 60110, l = b ? Symbol.for("react.async_mode") : 60111, m = b ? Symbol.for("react.concurrent_mode") : 60111, n = b ? Symbol.for("react.forward_ref") : 60112, p = b ? Symbol.for("react.suspense") : 60113, q = b ? Symbol.for("react.suspense_list") : 60120, r = b ? Symbol.for("react.memo") : 60115, t = b ? Symbol.for("react.lazy") : 60116, v = b ? Symbol.for("react.block") : 60121, w = b ? Symbol.for("react.fundamental") : 60117, x = b ? Symbol.for("react.responder") : 60118, y = b ? Symbol.for("react.scope") : 60119;
      function z(a) {
        if (typeof a == "object" && a !== null) {
          var u = a.$$typeof;
          switch (u) {
            case c:
              switch (a = a.type, a) {
                case l:
                case m:
                case e:
                case g:
                case f:
                case p:
                  return a;
                default:
                  switch (a = a && a.$$typeof, a) {
                    case k:
                    case n:
                    case t:
                    case r:
                    case h:
                      return a;
                    default:
                      return u;
                  }
              }
            case d:
              return u;
          }
        }
      }
      function A(a) {
        return z(a) === m;
      }
      exports.AsyncMode = l;
      exports.ConcurrentMode = m;
      exports.ContextConsumer = k;
      exports.ContextProvider = h;
      exports.Element = c;
      exports.ForwardRef = n;
      exports.Fragment = e;
      exports.Lazy = t;
      exports.Memo = r;
      exports.Portal = d;
      exports.Profiler = g;
      exports.StrictMode = f;
      exports.Suspense = p;
      exports.isAsyncMode = function(a) {
        return A(a) || z(a) === l;
      };
      exports.isConcurrentMode = A;
      exports.isContextConsumer = function(a) {
        return z(a) === k;
      };
      exports.isContextProvider = function(a) {
        return z(a) === h;
      };
      exports.isElement = function(a) {
        return typeof a == "object" && a !== null && a.$$typeof === c;
      };
      exports.isForwardRef = function(a) {
        return z(a) === n;
      };
      exports.isFragment = function(a) {
        return z(a) === e;
      };
      exports.isLazy = function(a) {
        return z(a) === t;
      };
      exports.isMemo = function(a) {
        return z(a) === r;
      };
      exports.isPortal = function(a) {
        return z(a) === d;
      };
      exports.isProfiler = function(a) {
        return z(a) === g;
      };
      exports.isStrictMode = function(a) {
        return z(a) === f;
      };
      exports.isSuspense = function(a) {
        return z(a) === p;
      };
      exports.isValidElementType = function(a) {
        return typeof a == "string" || typeof a == "function" || a === e || a === m || a === g || a === f || a === p || a === q || typeof a == "object" && a !== null && (a.$$typeof === t || a.$$typeof === r || a.$$typeof === h || a.$$typeof === k || a.$$typeof === n || a.$$typeof === w || a.$$typeof === x || a.$$typeof === y || a.$$typeof === v);
      };
      exports.typeOf = z;
    }
  });

  // node_modules/react-is/index.js
  var require_react_is = __commonJS({
    "node_modules/react-is/index.js"(exports, module) {
      "use strict";
      module.exports = require_react_is_production_min();
    }
  });

  // node_modules/hoist-non-react-statics/dist/hoist-non-react-statics.cjs.js
  var require_hoist_non_react_statics_cjs = __commonJS({
    "node_modules/hoist-non-react-statics/dist/hoist-non-react-statics.cjs.js"(exports, module) {
      "use strict";
      var reactIs = require_react_is(), REACT_STATICS = {
        childContextTypes: !0,
        contextType: !0,
        contextTypes: !0,
        defaultProps: !0,
        displayName: !0,
        getDefaultProps: !0,
        getDerivedStateFromError: !0,
        getDerivedStateFromProps: !0,
        mixins: !0,
        propTypes: !0,
        type: !0
      }, KNOWN_STATICS = {
        name: !0,
        length: !0,
        prototype: !0,
        caller: !0,
        callee: !0,
        arguments: !0,
        arity: !0
      }, FORWARD_REF_STATICS = {
        $$typeof: !0,
        render: !0,
        defaultProps: !0,
        displayName: !0,
        propTypes: !0
      }, MEMO_STATICS = {
        $$typeof: !0,
        compare: !0,
        defaultProps: !0,
        displayName: !0,
        propTypes: !0,
        type: !0
      }, TYPE_STATICS = {};
      TYPE_STATICS[reactIs.ForwardRef] = FORWARD_REF_STATICS;
      TYPE_STATICS[reactIs.Memo] = MEMO_STATICS;
      function getStatics(component) {
        return reactIs.isMemo(component) ? MEMO_STATICS : TYPE_STATICS[component.$$typeof] || REACT_STATICS;
      }
      var defineProperty = Object.defineProperty, getOwnPropertyNames = Object.getOwnPropertyNames, getOwnPropertySymbols = Object.getOwnPropertySymbols, getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor, getPrototypeOf = Object.getPrototypeOf, objectPrototype = Object.prototype;
      function hoistNonReactStatics(targetComponent, sourceComponent, blacklist) {
        if (typeof sourceComponent != "string") {
          if (objectPrototype) {
            var inheritedComponent = getPrototypeOf(sourceComponent);
            inheritedComponent && inheritedComponent !== objectPrototype && hoistNonReactStatics(targetComponent, inheritedComponent, blacklist);
          }
          var keys = getOwnPropertyNames(sourceComponent);
          getOwnPropertySymbols && (keys = keys.concat(getOwnPropertySymbols(sourceComponent)));
          for (var targetStatics = getStatics(targetComponent), sourceStatics = getStatics(sourceComponent), i = 0; i < keys.length; ++i) {
            var key = keys[i];
            if (!KNOWN_STATICS[key] && !(blacklist && blacklist[key]) && !(sourceStatics && sourceStatics[key]) && !(targetStatics && targetStatics[key])) {
              var descriptor = getOwnPropertyDescriptor(sourceComponent, key);
              try {
                defineProperty(targetComponent, key, descriptor);
              } catch {
              }
            }
          }
        }
        return targetComponent;
      }
      module.exports = hoistNonReactStatics;
    }
  });

  // js/main.tsx
  var import_react60 = __toESM(require_react()), import_react_dom = __toESM(require_react_dom());

  // node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js
  function _setPrototypeOf(o, p) {
    return _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function(o2, p2) {
      return o2.__proto__ = p2, o2;
    }, _setPrototypeOf(o, p);
  }

  // node_modules/@babel/runtime/helpers/esm/inheritsLoose.js
  function _inheritsLoose(subClass, superClass) {
    subClass.prototype = Object.create(superClass.prototype), subClass.prototype.constructor = subClass, _setPrototypeOf(subClass, superClass);
  }

  // node_modules/react-router/esm/react-router.js
  var import_react2 = __toESM(require_react());

  // node_modules/@babel/runtime/helpers/esm/extends.js
  function _extends() {
    return _extends = Object.assign ? Object.assign.bind() : function(target) {
      for (var i = 1; i < arguments.length; i++) {
        var source = arguments[i];
        for (var key in source)
          Object.prototype.hasOwnProperty.call(source, key) && (target[key] = source[key]);
      }
      return target;
    }, _extends.apply(this, arguments);
  }

  // node_modules/resolve-pathname/esm/resolve-pathname.js
  function isAbsolute(pathname) {
    return pathname.charAt(0) === "/";
  }
  function spliceOne(list, index2) {
    for (var i = index2, k = i + 1, n = list.length; k < n; i += 1, k += 1)
      list[i] = list[k];
    list.pop();
  }
  function resolvePathname(to, from) {
    from === void 0 && (from = "");
    var toParts = to && to.split("/") || [], fromParts = from && from.split("/") || [], isToAbs = to && isAbsolute(to), isFromAbs = from && isAbsolute(from), mustEndAbs = isToAbs || isFromAbs;
    if (to && isAbsolute(to) ? fromParts = toParts : toParts.length && (fromParts.pop(), fromParts = fromParts.concat(toParts)), !fromParts.length)
      return "/";
    var hasTrailingSlash;
    if (fromParts.length) {
      var last = fromParts[fromParts.length - 1];
      hasTrailingSlash = last === "." || last === ".." || last === "";
    } else
      hasTrailingSlash = !1;
    for (var up = 0, i = fromParts.length; i >= 0; i--) {
      var part = fromParts[i];
      part === "." ? spliceOne(fromParts, i) : part === ".." ? (spliceOne(fromParts, i), up++) : up && (spliceOne(fromParts, i), up--);
    }
    if (!mustEndAbs)
      for (; up--; up)
        fromParts.unshift("..");
    mustEndAbs && fromParts[0] !== "" && (!fromParts[0] || !isAbsolute(fromParts[0])) && fromParts.unshift("");
    var result = fromParts.join("/");
    return hasTrailingSlash && result.substr(-1) !== "/" && (result += "/"), result;
  }
  var resolve_pathname_default = resolvePathname;

  // node_modules/value-equal/esm/value-equal.js
  function valueOf(obj) {
    return obj.valueOf ? obj.valueOf() : Object.prototype.valueOf.call(obj);
  }
  function valueEqual(a, b) {
    if (a === b)
      return !0;
    if (a == null || b == null)
      return !1;
    if (Array.isArray(a))
      return Array.isArray(b) && a.length === b.length && a.every(function(item, index2) {
        return valueEqual(item, b[index2]);
      });
    if (typeof a == "object" || typeof b == "object") {
      var aValue = valueOf(a), bValue = valueOf(b);
      return aValue !== a || bValue !== b ? valueEqual(aValue, bValue) : Object.keys(Object.assign({}, a, b)).every(function(key) {
        return valueEqual(a[key], b[key]);
      });
    }
    return !1;
  }
  var value_equal_default = valueEqual;

  // node_modules/tiny-invariant/dist/tiny-invariant.esm.js
  var isProduction = !0, prefix = "Invariant failed";
  function invariant(condition, message) {
    if (!condition) {
      if (isProduction)
        throw new Error(prefix);
      var provided = typeof message == "function" ? message() : message, value = provided ? prefix + ": " + provided : prefix;
      throw new Error(value);
    }
  }

  // node_modules/history/esm/history.js
  function addLeadingSlash(path) {
    return path.charAt(0) === "/" ? path : "/" + path;
  }
  function stripLeadingSlash(path) {
    return path.charAt(0) === "/" ? path.substr(1) : path;
  }
  function hasBasename(path, prefix2) {
    return path.toLowerCase().indexOf(prefix2.toLowerCase()) === 0 && "/?#".indexOf(path.charAt(prefix2.length)) !== -1;
  }
  function stripBasename(path, prefix2) {
    return hasBasename(path, prefix2) ? path.substr(prefix2.length) : path;
  }
  function stripTrailingSlash(path) {
    return path.charAt(path.length - 1) === "/" ? path.slice(0, -1) : path;
  }
  function parsePath(path) {
    var pathname = path || "/", search = "", hash = "", hashIndex = pathname.indexOf("#");
    hashIndex !== -1 && (hash = pathname.substr(hashIndex), pathname = pathname.substr(0, hashIndex));
    var searchIndex = pathname.indexOf("?");
    return searchIndex !== -1 && (search = pathname.substr(searchIndex), pathname = pathname.substr(0, searchIndex)), {
      pathname,
      search: search === "?" ? "" : search,
      hash: hash === "#" ? "" : hash
    };
  }
  function createPath(location) {
    var pathname = location.pathname, search = location.search, hash = location.hash, path = pathname || "/";
    return search && search !== "?" && (path += search.charAt(0) === "?" ? search : "?" + search), hash && hash !== "#" && (path += hash.charAt(0) === "#" ? hash : "#" + hash), path;
  }
  function createLocation(path, state, key, currentLocation) {
    var location;
    typeof path == "string" ? (location = parsePath(path), location.state = state) : (location = _extends({}, path), location.pathname === void 0 && (location.pathname = ""), location.search ? location.search.charAt(0) !== "?" && (location.search = "?" + location.search) : location.search = "", location.hash ? location.hash.charAt(0) !== "#" && (location.hash = "#" + location.hash) : location.hash = "", state !== void 0 && location.state === void 0 && (location.state = state));
    try {
      location.pathname = decodeURI(location.pathname);
    } catch (e) {
      throw e instanceof URIError ? new URIError('Pathname "' + location.pathname + '" could not be decoded. This is likely caused by an invalid percent-encoding.') : e;
    }
    return key && (location.key = key), currentLocation ? location.pathname ? location.pathname.charAt(0) !== "/" && (location.pathname = resolve_pathname_default(location.pathname, currentLocation.pathname)) : location.pathname = currentLocation.pathname : location.pathname || (location.pathname = "/"), location;
  }
  function locationsAreEqual(a, b) {
    return a.pathname === b.pathname && a.search === b.search && a.hash === b.hash && a.key === b.key && value_equal_default(a.state, b.state);
  }
  function createTransitionManager() {
    var prompt = null;
    function setPrompt(nextPrompt) {
      return prompt = nextPrompt, function() {
        prompt === nextPrompt && (prompt = null);
      };
    }
    function confirmTransitionTo(location, action, getUserConfirmation, callback) {
      if (prompt != null) {
        var result = typeof prompt == "function" ? prompt(location, action) : prompt;
        typeof result == "string" ? typeof getUserConfirmation == "function" ? getUserConfirmation(result, callback) : callback(!0) : callback(result !== !1);
      } else
        callback(!0);
    }
    var listeners = [];
    function appendListener(fn) {
      var isActive = !0;
      function listener() {
        isActive && fn.apply(void 0, arguments);
      }
      return listeners.push(listener), function() {
        isActive = !1, listeners = listeners.filter(function(item) {
          return item !== listener;
        });
      };
    }
    function notifyListeners() {
      for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++)
        args[_key] = arguments[_key];
      listeners.forEach(function(listener) {
        return listener.apply(void 0, args);
      });
    }
    return {
      setPrompt,
      confirmTransitionTo,
      appendListener,
      notifyListeners
    };
  }
  var canUseDOM = !!(typeof window < "u" && window.document && window.document.createElement);
  function getConfirmation(message, callback) {
    callback(window.confirm(message));
  }
  function supportsHistory() {
    var ua = window.navigator.userAgent;
    return (ua.indexOf("Android 2.") !== -1 || ua.indexOf("Android 4.0") !== -1) && ua.indexOf("Mobile Safari") !== -1 && ua.indexOf("Chrome") === -1 && ua.indexOf("Windows Phone") === -1 ? !1 : window.history && "pushState" in window.history;
  }
  function supportsPopStateOnHashChange() {
    return window.navigator.userAgent.indexOf("Trident") === -1;
  }
  function supportsGoWithoutReloadUsingHash() {
    return window.navigator.userAgent.indexOf("Firefox") === -1;
  }
  function isExtraneousPopstateEvent(event) {
    return event.state === void 0 && navigator.userAgent.indexOf("CriOS") === -1;
  }
  var PopStateEvent = "popstate", HashChangeEvent = "hashchange";
  function getHistoryState() {
    try {
      return window.history.state || {};
    } catch {
      return {};
    }
  }
  function createBrowserHistory(props) {
    props === void 0 && (props = {}), canUseDOM || invariant(!1);
    var globalHistory = window.history, canUseHistory = supportsHistory(), needsHashChangeListener = !supportsPopStateOnHashChange(), _props = props, _props$forceRefresh = _props.forceRefresh, forceRefresh = _props$forceRefresh === void 0 ? !1 : _props$forceRefresh, _props$getUserConfirm = _props.getUserConfirmation, getUserConfirmation = _props$getUserConfirm === void 0 ? getConfirmation : _props$getUserConfirm, _props$keyLength = _props.keyLength, keyLength = _props$keyLength === void 0 ? 6 : _props$keyLength, basename = props.basename ? stripTrailingSlash(addLeadingSlash(props.basename)) : "";
    function getDOMLocation(historyState) {
      var _ref = historyState || {}, key = _ref.key, state = _ref.state, _window$location = window.location, pathname = _window$location.pathname, search = _window$location.search, hash = _window$location.hash, path = pathname + search + hash;
      return basename && (path = stripBasename(path, basename)), createLocation(path, state, key);
    }
    function createKey() {
      return Math.random().toString(36).substr(2, keyLength);
    }
    var transitionManager = createTransitionManager();
    function setState(nextState) {
      _extends(history, nextState), history.length = globalHistory.length, transitionManager.notifyListeners(history.location, history.action);
    }
    function handlePopState(event) {
      isExtraneousPopstateEvent(event) || handlePop(getDOMLocation(event.state));
    }
    function handleHashChange() {
      handlePop(getDOMLocation(getHistoryState()));
    }
    var forceNextPop = !1;
    function handlePop(location) {
      if (forceNextPop)
        forceNextPop = !1, setState();
      else {
        var action = "POP";
        transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function(ok) {
          ok ? setState({
            action,
            location
          }) : revertPop(location);
        });
      }
    }
    function revertPop(fromLocation) {
      var toLocation = history.location, toIndex = allKeys.indexOf(toLocation.key);
      toIndex === -1 && (toIndex = 0);
      var fromIndex = allKeys.indexOf(fromLocation.key);
      fromIndex === -1 && (fromIndex = 0);
      var delta = toIndex - fromIndex;
      delta && (forceNextPop = !0, go(delta));
    }
    var initialLocation = getDOMLocation(getHistoryState()), allKeys = [initialLocation.key];
    function createHref(location) {
      return basename + createPath(location);
    }
    function push(path, state) {
      var action = "PUSH", location = createLocation(path, state, createKey(), history.location);
      transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function(ok) {
        if (!!ok) {
          var href = createHref(location), key = location.key, state2 = location.state;
          if (canUseHistory)
            if (globalHistory.pushState({
              key,
              state: state2
            }, null, href), forceRefresh)
              window.location.href = href;
            else {
              var prevIndex = allKeys.indexOf(history.location.key), nextKeys = allKeys.slice(0, prevIndex + 1);
              nextKeys.push(location.key), allKeys = nextKeys, setState({
                action,
                location
              });
            }
          else
            window.location.href = href;
        }
      });
    }
    function replace(path, state) {
      var action = "REPLACE", location = createLocation(path, state, createKey(), history.location);
      transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function(ok) {
        if (!!ok) {
          var href = createHref(location), key = location.key, state2 = location.state;
          if (canUseHistory)
            if (globalHistory.replaceState({
              key,
              state: state2
            }, null, href), forceRefresh)
              window.location.replace(href);
            else {
              var prevIndex = allKeys.indexOf(history.location.key);
              prevIndex !== -1 && (allKeys[prevIndex] = location.key), setState({
                action,
                location
              });
            }
          else
            window.location.replace(href);
        }
      });
    }
    function go(n) {
      globalHistory.go(n);
    }
    function goBack() {
      go(-1);
    }
    function goForward() {
      go(1);
    }
    var listenerCount = 0;
    function checkDOMListeners(delta) {
      listenerCount += delta, listenerCount === 1 && delta === 1 ? (window.addEventListener(PopStateEvent, handlePopState), needsHashChangeListener && window.addEventListener(HashChangeEvent, handleHashChange)) : listenerCount === 0 && (window.removeEventListener(PopStateEvent, handlePopState), needsHashChangeListener && window.removeEventListener(HashChangeEvent, handleHashChange));
    }
    var isBlocked = !1;
    function block(prompt) {
      prompt === void 0 && (prompt = !1);
      var unblock = transitionManager.setPrompt(prompt);
      return isBlocked || (checkDOMListeners(1), isBlocked = !0), function() {
        return isBlocked && (isBlocked = !1, checkDOMListeners(-1)), unblock();
      };
    }
    function listen(listener) {
      var unlisten = transitionManager.appendListener(listener);
      return checkDOMListeners(1), function() {
        checkDOMListeners(-1), unlisten();
      };
    }
    var history = {
      length: globalHistory.length,
      action: "POP",
      location: initialLocation,
      createHref,
      push,
      replace,
      go,
      goBack,
      goForward,
      block,
      listen
    };
    return history;
  }
  var HashChangeEvent$1 = "hashchange", HashPathCoders = {
    hashbang: {
      encodePath: function(path) {
        return path.charAt(0) === "!" ? path : "!/" + stripLeadingSlash(path);
      },
      decodePath: function(path) {
        return path.charAt(0) === "!" ? path.substr(1) : path;
      }
    },
    noslash: {
      encodePath: stripLeadingSlash,
      decodePath: addLeadingSlash
    },
    slash: {
      encodePath: addLeadingSlash,
      decodePath: addLeadingSlash
    }
  };
  function stripHash(url) {
    var hashIndex = url.indexOf("#");
    return hashIndex === -1 ? url : url.slice(0, hashIndex);
  }
  function getHashPath() {
    var href = window.location.href, hashIndex = href.indexOf("#");
    return hashIndex === -1 ? "" : href.substring(hashIndex + 1);
  }
  function pushHashPath(path) {
    window.location.hash = path;
  }
  function replaceHashPath(path) {
    window.location.replace(stripHash(window.location.href) + "#" + path);
  }
  function createHashHistory(props) {
    props === void 0 && (props = {}), canUseDOM || invariant(!1);
    var globalHistory = window.history, canGoWithoutReload = supportsGoWithoutReloadUsingHash(), _props = props, _props$getUserConfirm = _props.getUserConfirmation, getUserConfirmation = _props$getUserConfirm === void 0 ? getConfirmation : _props$getUserConfirm, _props$hashType = _props.hashType, hashType = _props$hashType === void 0 ? "slash" : _props$hashType, basename = props.basename ? stripTrailingSlash(addLeadingSlash(props.basename)) : "", _HashPathCoders$hashT = HashPathCoders[hashType], encodePath2 = _HashPathCoders$hashT.encodePath, decodePath2 = _HashPathCoders$hashT.decodePath;
    function getDOMLocation() {
      var path2 = decodePath2(getHashPath());
      return basename && (path2 = stripBasename(path2, basename)), createLocation(path2);
    }
    var transitionManager = createTransitionManager();
    function setState(nextState) {
      _extends(history, nextState), history.length = globalHistory.length, transitionManager.notifyListeners(history.location, history.action);
    }
    var forceNextPop = !1, ignorePath = null;
    function locationsAreEqual$$1(a, b) {
      return a.pathname === b.pathname && a.search === b.search && a.hash === b.hash;
    }
    function handleHashChange() {
      var path2 = getHashPath(), encodedPath2 = encodePath2(path2);
      if (path2 !== encodedPath2)
        replaceHashPath(encodedPath2);
      else {
        var location = getDOMLocation(), prevLocation = history.location;
        if (!forceNextPop && locationsAreEqual$$1(prevLocation, location) || ignorePath === createPath(location))
          return;
        ignorePath = null, handlePop(location);
      }
    }
    function handlePop(location) {
      if (forceNextPop)
        forceNextPop = !1, setState();
      else {
        var action = "POP";
        transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function(ok) {
          ok ? setState({
            action,
            location
          }) : revertPop(location);
        });
      }
    }
    function revertPop(fromLocation) {
      var toLocation = history.location, toIndex = allPaths.lastIndexOf(createPath(toLocation));
      toIndex === -1 && (toIndex = 0);
      var fromIndex = allPaths.lastIndexOf(createPath(fromLocation));
      fromIndex === -1 && (fromIndex = 0);
      var delta = toIndex - fromIndex;
      delta && (forceNextPop = !0, go(delta));
    }
    var path = getHashPath(), encodedPath = encodePath2(path);
    path !== encodedPath && replaceHashPath(encodedPath);
    var initialLocation = getDOMLocation(), allPaths = [createPath(initialLocation)];
    function createHref(location) {
      var baseTag = document.querySelector("base"), href = "";
      return baseTag && baseTag.getAttribute("href") && (href = stripHash(window.location.href)), href + "#" + encodePath2(basename + createPath(location));
    }
    function push(path2, state) {
      var action = "PUSH", location = createLocation(path2, void 0, void 0, history.location);
      transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function(ok) {
        if (!!ok) {
          var path3 = createPath(location), encodedPath2 = encodePath2(basename + path3), hashChanged = getHashPath() !== encodedPath2;
          if (hashChanged) {
            ignorePath = path3, pushHashPath(encodedPath2);
            var prevIndex = allPaths.lastIndexOf(createPath(history.location)), nextPaths = allPaths.slice(0, prevIndex + 1);
            nextPaths.push(path3), allPaths = nextPaths, setState({
              action,
              location
            });
          } else
            setState();
        }
      });
    }
    function replace(path2, state) {
      var action = "REPLACE", location = createLocation(path2, void 0, void 0, history.location);
      transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function(ok) {
        if (!!ok) {
          var path3 = createPath(location), encodedPath2 = encodePath2(basename + path3), hashChanged = getHashPath() !== encodedPath2;
          hashChanged && (ignorePath = path3, replaceHashPath(encodedPath2));
          var prevIndex = allPaths.indexOf(createPath(history.location));
          prevIndex !== -1 && (allPaths[prevIndex] = path3), setState({
            action,
            location
          });
        }
      });
    }
    function go(n) {
      globalHistory.go(n);
    }
    function goBack() {
      go(-1);
    }
    function goForward() {
      go(1);
    }
    var listenerCount = 0;
    function checkDOMListeners(delta) {
      listenerCount += delta, listenerCount === 1 && delta === 1 ? window.addEventListener(HashChangeEvent$1, handleHashChange) : listenerCount === 0 && window.removeEventListener(HashChangeEvent$1, handleHashChange);
    }
    var isBlocked = !1;
    function block(prompt) {
      prompt === void 0 && (prompt = !1);
      var unblock = transitionManager.setPrompt(prompt);
      return isBlocked || (checkDOMListeners(1), isBlocked = !0), function() {
        return isBlocked && (isBlocked = !1, checkDOMListeners(-1)), unblock();
      };
    }
    function listen(listener) {
      var unlisten = transitionManager.appendListener(listener);
      return checkDOMListeners(1), function() {
        checkDOMListeners(-1), unlisten();
      };
    }
    var history = {
      length: globalHistory.length,
      action: "POP",
      location: initialLocation,
      createHref,
      push,
      replace,
      go,
      goBack,
      goForward,
      block,
      listen
    };
    return history;
  }
  function clamp(n, lowerBound, upperBound) {
    return Math.min(Math.max(n, lowerBound), upperBound);
  }
  function createMemoryHistory(props) {
    props === void 0 && (props = {});
    var _props = props, getUserConfirmation = _props.getUserConfirmation, _props$initialEntries = _props.initialEntries, initialEntries = _props$initialEntries === void 0 ? ["/"] : _props$initialEntries, _props$initialIndex = _props.initialIndex, initialIndex = _props$initialIndex === void 0 ? 0 : _props$initialIndex, _props$keyLength = _props.keyLength, keyLength = _props$keyLength === void 0 ? 6 : _props$keyLength, transitionManager = createTransitionManager();
    function setState(nextState) {
      _extends(history, nextState), history.length = history.entries.length, transitionManager.notifyListeners(history.location, history.action);
    }
    function createKey() {
      return Math.random().toString(36).substr(2, keyLength);
    }
    var index2 = clamp(initialIndex, 0, initialEntries.length - 1), entries = initialEntries.map(function(entry) {
      return typeof entry == "string" ? createLocation(entry, void 0, createKey()) : createLocation(entry, void 0, entry.key || createKey());
    }), createHref = createPath;
    function push(path, state) {
      var action = "PUSH", location = createLocation(path, state, createKey(), history.location);
      transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function(ok) {
        if (!!ok) {
          var prevIndex = history.index, nextIndex = prevIndex + 1, nextEntries = history.entries.slice(0);
          nextEntries.length > nextIndex ? nextEntries.splice(nextIndex, nextEntries.length - nextIndex, location) : nextEntries.push(location), setState({
            action,
            location,
            index: nextIndex,
            entries: nextEntries
          });
        }
      });
    }
    function replace(path, state) {
      var action = "REPLACE", location = createLocation(path, state, createKey(), history.location);
      transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function(ok) {
        !ok || (history.entries[history.index] = location, setState({
          action,
          location
        }));
      });
    }
    function go(n) {
      var nextIndex = clamp(history.index + n, 0, history.entries.length - 1), action = "POP", location = history.entries[nextIndex];
      transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function(ok) {
        ok ? setState({
          action,
          location,
          index: nextIndex
        }) : setState();
      });
    }
    function goBack() {
      go(-1);
    }
    function goForward() {
      go(1);
    }
    function canGo(n) {
      var nextIndex = history.index + n;
      return nextIndex >= 0 && nextIndex < history.entries.length;
    }
    function block(prompt) {
      return prompt === void 0 && (prompt = !1), transitionManager.setPrompt(prompt);
    }
    function listen(listener) {
      return transitionManager.appendListener(listener);
    }
    var history = {
      length: entries.length,
      action: "POP",
      location: entries[index2],
      index: index2,
      entries,
      createHref,
      push,
      replace,
      go,
      goBack,
      goForward,
      canGo,
      block,
      listen
    };
    return history;
  }

  // node_modules/mini-create-react-context/dist/esm/index.js
  var import_react = __toESM(require_react());
  var import_prop_types = __toESM(require_prop_types());
  var MAX_SIGNED_31_BIT_INT = 1073741823, commonjsGlobal = typeof globalThis < "u" ? globalThis : typeof window < "u" ? window : typeof global < "u" ? global : {};
  function getUniqueId() {
    var key = "__global_unique_id__";
    return commonjsGlobal[key] = (commonjsGlobal[key] || 0) + 1;
  }
  function objectIs(x, y) {
    return x === y ? x !== 0 || 1 / x === 1 / y : x !== x && y !== y;
  }
  function createEventEmitter(value) {
    var handlers = [];
    return {
      on: function(handler) {
        handlers.push(handler);
      },
      off: function(handler) {
        handlers = handlers.filter(function(h) {
          return h !== handler;
        });
      },
      get: function() {
        return value;
      },
      set: function(newValue, changedBits) {
        value = newValue, handlers.forEach(function(handler) {
          return handler(value, changedBits);
        });
      }
    };
  }
  function onlyChild(children) {
    return Array.isArray(children) ? children[0] : children;
  }
  function createReactContext(defaultValue, calculateChangedBits) {
    var _Provider$childContex, _Consumer$contextType, contextProp = "__create-react-context-" + getUniqueId() + "__", Provider = /* @__PURE__ */ function(_Component) {
      _inheritsLoose(Provider2, _Component);
      function Provider2() {
        var _this;
        return _this = _Component.apply(this, arguments) || this, _this.emitter = createEventEmitter(_this.props.value), _this;
      }
      var _proto = Provider2.prototype;
      return _proto.getChildContext = function() {
        var _ref;
        return _ref = {}, _ref[contextProp] = this.emitter, _ref;
      }, _proto.componentWillReceiveProps = function(nextProps) {
        if (this.props.value !== nextProps.value) {
          var oldValue = this.props.value, newValue = nextProps.value, changedBits;
          objectIs(oldValue, newValue) ? changedBits = 0 : (changedBits = typeof calculateChangedBits == "function" ? calculateChangedBits(oldValue, newValue) : MAX_SIGNED_31_BIT_INT, changedBits |= 0, changedBits !== 0 && this.emitter.set(nextProps.value, changedBits));
        }
      }, _proto.render = function() {
        return this.props.children;
      }, Provider2;
    }(import_react.Component);
    Provider.childContextTypes = (_Provider$childContex = {}, _Provider$childContex[contextProp] = import_prop_types.default.object.isRequired, _Provider$childContex);
    var Consumer = /* @__PURE__ */ function(_Component2) {
      _inheritsLoose(Consumer2, _Component2);
      function Consumer2() {
        var _this2;
        return _this2 = _Component2.apply(this, arguments) || this, _this2.state = {
          value: _this2.getValue()
        }, _this2.onUpdate = function(newValue, changedBits) {
          var observedBits = _this2.observedBits | 0;
          (observedBits & changedBits) !== 0 && _this2.setState({
            value: _this2.getValue()
          });
        }, _this2;
      }
      var _proto2 = Consumer2.prototype;
      return _proto2.componentWillReceiveProps = function(nextProps) {
        var observedBits = nextProps.observedBits;
        this.observedBits = observedBits ?? MAX_SIGNED_31_BIT_INT;
      }, _proto2.componentDidMount = function() {
        this.context[contextProp] && this.context[contextProp].on(this.onUpdate);
        var observedBits = this.props.observedBits;
        this.observedBits = observedBits ?? MAX_SIGNED_31_BIT_INT;
      }, _proto2.componentWillUnmount = function() {
        this.context[contextProp] && this.context[contextProp].off(this.onUpdate);
      }, _proto2.getValue = function() {
        return this.context[contextProp] ? this.context[contextProp].get() : defaultValue;
      }, _proto2.render = function() {
        return onlyChild(this.props.children)(this.state.value);
      }, Consumer2;
    }(import_react.Component);
    return Consumer.contextTypes = (_Consumer$contextType = {}, _Consumer$contextType[contextProp] = import_prop_types.default.object, _Consumer$contextType), {
      Provider,
      Consumer
    };
  }
  var index = import_react.default.createContext || createReactContext, esm_default = index;

  // node_modules/react-router/esm/react-router.js
  var import_path_to_regexp = __toESM(require_path_to_regexp()), import_react_is = __toESM(require_react_is());

  // node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js
  function _objectWithoutPropertiesLoose(source, excluded) {
    if (source == null)
      return {};
    var target = {}, sourceKeys = Object.keys(source), key, i;
    for (i = 0; i < sourceKeys.length; i++)
      key = sourceKeys[i], !(excluded.indexOf(key) >= 0) && (target[key] = source[key]);
    return target;
  }

  // node_modules/react-router/esm/react-router.js
  var import_hoist_non_react_statics = __toESM(require_hoist_non_react_statics_cjs()), createNamedContext = function(name) {
    var context2 = esm_default();
    return context2.displayName = name, context2;
  }, historyContext = /* @__PURE__ */ createNamedContext("Router-History"), context = /* @__PURE__ */ createNamedContext("Router"), Router = /* @__PURE__ */ function(_React$Component) {
    _inheritsLoose(Router2, _React$Component), Router2.computeRootMatch = function(pathname) {
      return {
        path: "/",
        url: "/",
        params: {},
        isExact: pathname === "/"
      };
    };
    function Router2(props) {
      var _this;
      return _this = _React$Component.call(this, props) || this, _this.state = {
        location: props.history.location
      }, _this._isMounted = !1, _this._pendingLocation = null, props.staticContext || (_this.unlisten = props.history.listen(function(location) {
        _this._pendingLocation = location;
      })), _this;
    }
    var _proto = Router2.prototype;
    return _proto.componentDidMount = function() {
      var _this2 = this;
      this._isMounted = !0, this.unlisten && this.unlisten(), this.props.staticContext || (this.unlisten = this.props.history.listen(function(location) {
        _this2._isMounted && _this2.setState({
          location
        });
      })), this._pendingLocation && this.setState({
        location: this._pendingLocation
      });
    }, _proto.componentWillUnmount = function() {
      this.unlisten && (this.unlisten(), this._isMounted = !1, this._pendingLocation = null);
    }, _proto.render = function() {
      return /* @__PURE__ */ import_react2.default.createElement(context.Provider, {
        value: {
          history: this.props.history,
          location: this.state.location,
          match: Router2.computeRootMatch(this.state.location.pathname),
          staticContext: this.props.staticContext
        }
      }, /* @__PURE__ */ import_react2.default.createElement(historyContext.Provider, {
        children: this.props.children || null,
        value: this.props.history
      }));
    }, Router2;
  }(import_react2.default.Component), MemoryRouter = /* @__PURE__ */ function(_React$Component) {
    _inheritsLoose(MemoryRouter2, _React$Component);
    function MemoryRouter2() {
      for (var _this, _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++)
        args[_key] = arguments[_key];
      return _this = _React$Component.call.apply(_React$Component, [this].concat(args)) || this, _this.history = createMemoryHistory(_this.props), _this;
    }
    var _proto = MemoryRouter2.prototype;
    return _proto.render = function() {
      return /* @__PURE__ */ import_react2.default.createElement(Router, {
        history: this.history,
        children: this.props.children
      });
    }, MemoryRouter2;
  }(import_react2.default.Component), Lifecycle = /* @__PURE__ */ function(_React$Component) {
    _inheritsLoose(Lifecycle2, _React$Component);
    function Lifecycle2() {
      return _React$Component.apply(this, arguments) || this;
    }
    var _proto = Lifecycle2.prototype;
    return _proto.componentDidMount = function() {
      this.props.onMount && this.props.onMount.call(this, this);
    }, _proto.componentDidUpdate = function(prevProps) {
      this.props.onUpdate && this.props.onUpdate.call(this, this, prevProps);
    }, _proto.componentWillUnmount = function() {
      this.props.onUnmount && this.props.onUnmount.call(this, this);
    }, _proto.render = function() {
      return null;
    }, Lifecycle2;
  }(import_react2.default.Component);
  function Prompt(_ref) {
    var message = _ref.message, _ref$when = _ref.when, when = _ref$when === void 0 ? !0 : _ref$when;
    return /* @__PURE__ */ import_react2.default.createElement(context.Consumer, null, function(context2) {
      if (context2 || invariant(!1), !when || context2.staticContext)
        return null;
      var method = context2.history.block;
      return /* @__PURE__ */ import_react2.default.createElement(Lifecycle, {
        onMount: function(self) {
          self.release = method(message);
        },
        onUpdate: function(self, prevProps) {
          prevProps.message !== message && (self.release(), self.release = method(message));
        },
        onUnmount: function(self) {
          self.release();
        },
        message
      });
    });
  }
  var cache = {}, cacheLimit = 1e4, cacheCount = 0;
  function compilePath(path) {
    if (cache[path])
      return cache[path];
    var generator = import_path_to_regexp.default.compile(path);
    return cacheCount < cacheLimit && (cache[path] = generator, cacheCount++), generator;
  }
  function generatePath(path, params) {
    return path === void 0 && (path = "/"), params === void 0 && (params = {}), path === "/" ? path : compilePath(path)(params, {
      pretty: !0
    });
  }
  function Redirect(_ref) {
    var computedMatch = _ref.computedMatch, to = _ref.to, _ref$push = _ref.push, push = _ref$push === void 0 ? !1 : _ref$push;
    return /* @__PURE__ */ import_react2.default.createElement(context.Consumer, null, function(context2) {
      context2 || invariant(!1);
      var history = context2.history, staticContext = context2.staticContext, method = push ? history.push : history.replace, location = createLocation(computedMatch ? typeof to == "string" ? generatePath(to, computedMatch.params) : _extends({}, to, {
        pathname: generatePath(to.pathname, computedMatch.params)
      }) : to);
      return staticContext ? (method(location), null) : /* @__PURE__ */ import_react2.default.createElement(Lifecycle, {
        onMount: function() {
          method(location);
        },
        onUpdate: function(self, prevProps) {
          var prevLocation = createLocation(prevProps.to);
          locationsAreEqual(prevLocation, _extends({}, location, {
            key: prevLocation.key
          })) || method(location);
        },
        to
      });
    });
  }
  var cache$1 = {}, cacheLimit$1 = 1e4, cacheCount$1 = 0;
  function compilePath$1(path, options) {
    var cacheKey = "" + options.end + options.strict + options.sensitive, pathCache = cache$1[cacheKey] || (cache$1[cacheKey] = {});
    if (pathCache[path])
      return pathCache[path];
    var keys = [], regexp = (0, import_path_to_regexp.default)(path, keys, options), result = {
      regexp,
      keys
    };
    return cacheCount$1 < cacheLimit$1 && (pathCache[path] = result, cacheCount$1++), result;
  }
  function matchPath(pathname, options) {
    options === void 0 && (options = {}), (typeof options == "string" || Array.isArray(options)) && (options = {
      path: options
    });
    var _options = options, path = _options.path, _options$exact = _options.exact, exact = _options$exact === void 0 ? !1 : _options$exact, _options$strict = _options.strict, strict = _options$strict === void 0 ? !1 : _options$strict, _options$sensitive = _options.sensitive, sensitive = _options$sensitive === void 0 ? !1 : _options$sensitive, paths = [].concat(path);
    return paths.reduce(function(matched, path2) {
      if (!path2 && path2 !== "")
        return null;
      if (matched)
        return matched;
      var _compilePath = compilePath$1(path2, {
        end: exact,
        strict,
        sensitive
      }), regexp = _compilePath.regexp, keys = _compilePath.keys, match = regexp.exec(pathname);
      if (!match)
        return null;
      var url = match[0], values = match.slice(1), isExact = pathname === url;
      return exact && !isExact ? null : {
        path: path2,
        url: path2 === "/" && url === "" ? "/" : url,
        isExact,
        params: keys.reduce(function(memo6, key, index2) {
          return memo6[key.name] = values[index2], memo6;
        }, {})
      };
    }, null);
  }
  function isEmptyChildren(children) {
    return import_react2.default.Children.count(children) === 0;
  }
  var Route = /* @__PURE__ */ function(_React$Component) {
    _inheritsLoose(Route2, _React$Component);
    function Route2() {
      return _React$Component.apply(this, arguments) || this;
    }
    var _proto = Route2.prototype;
    return _proto.render = function() {
      var _this = this;
      return /* @__PURE__ */ import_react2.default.createElement(context.Consumer, null, function(context$1) {
        context$1 || invariant(!1);
        var location = _this.props.location || context$1.location, match = _this.props.computedMatch ? _this.props.computedMatch : _this.props.path ? matchPath(location.pathname, _this.props) : context$1.match, props = _extends({}, context$1, {
          location,
          match
        }), _this$props = _this.props, children = _this$props.children, component = _this$props.component, render2 = _this$props.render;
        return Array.isArray(children) && isEmptyChildren(children) && (children = null), /* @__PURE__ */ import_react2.default.createElement(context.Provider, {
          value: props
        }, props.match ? children ? typeof children == "function" ? children(props) : children : component ? /* @__PURE__ */ import_react2.default.createElement(component, props) : render2 ? render2(props) : null : typeof children == "function" ? children(props) : null);
      });
    }, Route2;
  }(import_react2.default.Component);
  function addLeadingSlash2(path) {
    return path.charAt(0) === "/" ? path : "/" + path;
  }
  function addBasename(basename, location) {
    return basename ? _extends({}, location, {
      pathname: addLeadingSlash2(basename) + location.pathname
    }) : location;
  }
  function stripBasename2(basename, location) {
    if (!basename)
      return location;
    var base = addLeadingSlash2(basename);
    return location.pathname.indexOf(base) !== 0 ? location : _extends({}, location, {
      pathname: location.pathname.substr(base.length)
    });
  }
  function createURL(location) {
    return typeof location == "string" ? location : createPath(location);
  }
  function staticHandler(methodName) {
    return function() {
      invariant(!1);
    };
  }
  function noop() {
  }
  var StaticRouter = /* @__PURE__ */ function(_React$Component) {
    _inheritsLoose(StaticRouter2, _React$Component);
    function StaticRouter2() {
      for (var _this, _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++)
        args[_key] = arguments[_key];
      return _this = _React$Component.call.apply(_React$Component, [this].concat(args)) || this, _this.handlePush = function(location) {
        return _this.navigateTo(location, "PUSH");
      }, _this.handleReplace = function(location) {
        return _this.navigateTo(location, "REPLACE");
      }, _this.handleListen = function() {
        return noop;
      }, _this.handleBlock = function() {
        return noop;
      }, _this;
    }
    var _proto = StaticRouter2.prototype;
    return _proto.navigateTo = function(location, action) {
      var _this$props = this.props, _this$props$basename = _this$props.basename, basename = _this$props$basename === void 0 ? "" : _this$props$basename, _this$props$context = _this$props.context, context2 = _this$props$context === void 0 ? {} : _this$props$context;
      context2.action = action, context2.location = addBasename(basename, createLocation(location)), context2.url = createURL(context2.location);
    }, _proto.render = function() {
      var _this$props2 = this.props, _this$props2$basename = _this$props2.basename, basename = _this$props2$basename === void 0 ? "" : _this$props2$basename, _this$props2$context = _this$props2.context, context2 = _this$props2$context === void 0 ? {} : _this$props2$context, _this$props2$location = _this$props2.location, location = _this$props2$location === void 0 ? "/" : _this$props2$location, rest = _objectWithoutPropertiesLoose(_this$props2, ["basename", "context", "location"]), history = {
        createHref: function(path) {
          return addLeadingSlash2(basename + createURL(path));
        },
        action: "POP",
        location: stripBasename2(basename, createLocation(location)),
        push: this.handlePush,
        replace: this.handleReplace,
        go: staticHandler("go"),
        goBack: staticHandler("goBack"),
        goForward: staticHandler("goForward"),
        listen: this.handleListen,
        block: this.handleBlock
      };
      return /* @__PURE__ */ import_react2.default.createElement(Router, _extends({}, rest, {
        history,
        staticContext: context2
      }));
    }, StaticRouter2;
  }(import_react2.default.Component), Switch = /* @__PURE__ */ function(_React$Component) {
    _inheritsLoose(Switch2, _React$Component);
    function Switch2() {
      return _React$Component.apply(this, arguments) || this;
    }
    var _proto = Switch2.prototype;
    return _proto.render = function() {
      var _this = this;
      return /* @__PURE__ */ import_react2.default.createElement(context.Consumer, null, function(context2) {
        context2 || invariant(!1);
        var location = _this.props.location || context2.location, element, match;
        return import_react2.default.Children.forEach(_this.props.children, function(child) {
          if (match == null && /* @__PURE__ */ import_react2.default.isValidElement(child)) {
            element = child;
            var path = child.props.path || child.props.from;
            match = path ? matchPath(location.pathname, _extends({}, child.props, {
              path
            })) : context2.match;
          }
        }), match ? /* @__PURE__ */ import_react2.default.cloneElement(element, {
          location,
          computedMatch: match
        }) : null;
      });
    }, Switch2;
  }(import_react2.default.Component);
  var useContext = import_react2.default.useContext;
  function useHistory() {
    return useContext(historyContext);
  }
  function useLocation() {
    return useContext(context).location;
  }
  function useRouteMatch(path) {
    var location = useLocation(), match = useContext(context).match;
    return path ? matchPath(location.pathname, path) : match;
  }

  // node_modules/react-router-dom/esm/react-router-dom.js
  var import_react3 = __toESM(require_react());
  var BrowserRouter = /* @__PURE__ */ function(_React$Component) {
    _inheritsLoose(BrowserRouter2, _React$Component);
    function BrowserRouter2() {
      for (var _this, _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++)
        args[_key] = arguments[_key];
      return _this = _React$Component.call.apply(_React$Component, [this].concat(args)) || this, _this.history = createBrowserHistory(_this.props), _this;
    }
    var _proto = BrowserRouter2.prototype;
    return _proto.render = function() {
      return /* @__PURE__ */ import_react3.default.createElement(Router, {
        history: this.history,
        children: this.props.children
      });
    }, BrowserRouter2;
  }(import_react3.default.Component), HashRouter = /* @__PURE__ */ function(_React$Component) {
    _inheritsLoose(HashRouter2, _React$Component);
    function HashRouter2() {
      for (var _this, _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++)
        args[_key] = arguments[_key];
      return _this = _React$Component.call.apply(_React$Component, [this].concat(args)) || this, _this.history = createHashHistory(_this.props), _this;
    }
    var _proto = HashRouter2.prototype;
    return _proto.render = function() {
      return /* @__PURE__ */ import_react3.default.createElement(Router, {
        history: this.history,
        children: this.props.children
      });
    }, HashRouter2;
  }(import_react3.default.Component), resolveToLocation = function(to, currentLocation) {
    return typeof to == "function" ? to(currentLocation) : to;
  }, normalizeToLocation = function(to, currentLocation) {
    return typeof to == "string" ? createLocation(to, null, null, currentLocation) : to;
  }, forwardRefShim = function(C) {
    return C;
  }, forwardRef = import_react3.default.forwardRef;
  typeof forwardRef > "u" && (forwardRef = forwardRefShim);
  function isModifiedEvent(event) {
    return !!(event.metaKey || event.altKey || event.ctrlKey || event.shiftKey);
  }
  var LinkAnchor = forwardRef(function(_ref, forwardedRef) {
    var innerRef = _ref.innerRef, navigate = _ref.navigate, _onClick = _ref.onClick, rest = _objectWithoutPropertiesLoose(_ref, ["innerRef", "navigate", "onClick"]), target = rest.target, props = _extends({}, rest, {
      onClick: function(event) {
        try {
          _onClick && _onClick(event);
        } catch (ex) {
          throw event.preventDefault(), ex;
        }
        !event.defaultPrevented && event.button === 0 && (!target || target === "_self") && !isModifiedEvent(event) && (event.preventDefault(), navigate());
      }
    });
    return forwardRefShim !== forwardRef ? props.ref = forwardedRef || innerRef : props.ref = innerRef, /* @__PURE__ */ import_react3.default.createElement("a", props);
  }), Link = forwardRef(function(_ref2, forwardedRef) {
    var _ref2$component = _ref2.component, component = _ref2$component === void 0 ? LinkAnchor : _ref2$component, replace = _ref2.replace, to = _ref2.to, innerRef = _ref2.innerRef, rest = _objectWithoutPropertiesLoose(_ref2, ["component", "replace", "to", "innerRef"]);
    return /* @__PURE__ */ import_react3.default.createElement(context.Consumer, null, function(context2) {
      context2 || invariant(!1);
      var history = context2.history, location = normalizeToLocation(resolveToLocation(to, context2.location), context2.location), href = location ? history.createHref(location) : "", props = _extends({}, rest, {
        href,
        navigate: function() {
          var location2 = resolveToLocation(to, context2.location), isDuplicateNavigation = createPath(context2.location) === createPath(normalizeToLocation(location2)), method = replace || isDuplicateNavigation ? history.replace : history.push;
          method(location2);
        }
      });
      return forwardRefShim !== forwardRef ? props.ref = forwardedRef || innerRef : props.innerRef = innerRef, /* @__PURE__ */ import_react3.default.createElement(component, props);
    });
  });
  var forwardRefShim$1 = function(C) {
    return C;
  }, forwardRef$1 = import_react3.default.forwardRef;
  typeof forwardRef$1 > "u" && (forwardRef$1 = forwardRefShim$1);
  function joinClassnames() {
    for (var _len = arguments.length, classnames = new Array(_len), _key = 0; _key < _len; _key++)
      classnames[_key] = arguments[_key];
    return classnames.filter(function(i) {
      return i;
    }).join(" ");
  }
  var NavLink = forwardRef$1(function(_ref, forwardedRef) {
    var _ref$ariaCurrent = _ref["aria-current"], ariaCurrent = _ref$ariaCurrent === void 0 ? "page" : _ref$ariaCurrent, _ref$activeClassName = _ref.activeClassName, activeClassName = _ref$activeClassName === void 0 ? "active" : _ref$activeClassName, activeStyle = _ref.activeStyle, classNameProp = _ref.className, exact = _ref.exact, isActiveProp = _ref.isActive, locationProp = _ref.location, sensitive = _ref.sensitive, strict = _ref.strict, styleProp = _ref.style, to = _ref.to, innerRef = _ref.innerRef, rest = _objectWithoutPropertiesLoose(_ref, ["aria-current", "activeClassName", "activeStyle", "className", "exact", "isActive", "location", "sensitive", "strict", "style", "to", "innerRef"]);
    return /* @__PURE__ */ import_react3.default.createElement(context.Consumer, null, function(context2) {
      context2 || invariant(!1);
      var currentLocation = locationProp || context2.location, toLocation = normalizeToLocation(resolveToLocation(to, currentLocation), currentLocation), path = toLocation.pathname, escapedPath = path && path.replace(/([.+*?=^!:${}()[\]|/\\])/g, "\\$1"), match = escapedPath ? matchPath(currentLocation.pathname, {
        path: escapedPath,
        exact,
        sensitive,
        strict
      }) : null, isActive = !!(isActiveProp ? isActiveProp(match, currentLocation) : match), className = typeof classNameProp == "function" ? classNameProp(isActive) : classNameProp, style = typeof styleProp == "function" ? styleProp(isActive) : styleProp;
      isActive && (className = joinClassnames(className, activeClassName), style = _extends({}, style, activeStyle));
      var props = _extends({
        "aria-current": isActive && ariaCurrent || null,
        className,
        style,
        to: toLocation
      }, rest);
      return forwardRefShim$1 !== forwardRef$1 ? props.ref = forwardedRef || innerRef : props.innerRef = innerRef, /* @__PURE__ */ import_react3.default.createElement(Link, props);
    });
  });

  // ../lektor/translations/ca.json
  var ca_default = {
    RETURN_TO_WEBSITE: "Tornar al Lloc Web",
    UNLOAD_ACTIVE_TAB: "Hi ha informaci\xF3 sense desar, est\xE0 segur que vol abandonar aquesta p\xE0gina?",
    EDIT_METADATA: "Editar Metadades",
    EDIT: "Editar",
    DELETE: "Esborrar",
    PREVIEW: "Previsualitzar",
    ALTS: "Alternatives",
    PRIMARY_ALT: "Prim\xE0ria",
    PRIMARY_OVERLAY: "Overlaid",
    ADD_CHILD_PAGE: "Afegir P\xE0gina",
    ADD_ATTACHMENT: "Afegir Adjunt",
    ATTACHMENT_ACTIONS: "Accions sobre els Adjunts",
    PAGE_ACTIONS: "Accions sobre la P\xE0gina",
    NO_CHILD_PAGES: "Sense Subp\xE0gines",
    CHILD_PAGES: "Subp\xE0gines",
    NO_ATTACHMENTS: "Sense Adjunts",
    ATTACHMENTS: "Adjunts",
    ADD_ATTACHMENT_TO: "Afegir Adjunt a \u201C%s\u201D",
    ADD_ATTACHMENT_NOTE: "Pot pujar un nou adjunt aqu\xED.",
    UPLOAD: "Pujar",
    PROGRESS: "Aven\xE7",
    ERROR_PREFIX: "Error: ",
    ERROR_NO_ID_PROVIDED: "No s'ha proporcionat un ID.",
    ERROR_PAGE_ID_DUPLICATE: "Ja existeix una p\xE0gina amb aquest ID (%s).",
    ERROR_INVALID_ID: "ID inv\xE0lid",
    ERROR_INVALID_DATE: "Data inv\xE0lida",
    ERROR_INVALID_NUMBER: "N\xFAmero no v\xE0lid",
    ERROR_INVALID_URL: "URL no v\xE0lida",
    ERROR: "Error",
    ERROR_OCURRED: "Ha ocorregut un Error",
    ERROR_REQUEST_FAILED: "No s'ha pogut enviar la tasca al servidor.  Potser el servidor est\xE0 apagat o \xE9s inaccessible",
    ERROR_SERVER_UNAVAILABLE: "Servidor No Disponible",
    ERROR_SERVER_UNAVAILABLE_MESSAGE: "El servidor no respon.  Ha estat apagat o hi ha hagut un error cr\xEDtic que ha fet que estigui inoperatiu i hagi de ser reiniciat.",
    MODEL: "Model",
    ADD_CHILD_PAGE_TO: "Afegir Subp\xE0gina a \u201C%s\u201D",
    ADD_CHILD_PAGE_NOTE: "Pot afegir una nova subp\xE0gina aqu\xED. Tingui en compte que el model o el ID no podr\xE0 ser canviat f\xE0cilment m\xE9s endavant.",
    CREATE_CHILD_PAGE: "Afegir p\xE0gina filla",
    DELETE_ATTACHMENT_PROMPT: "Realment vol esborrar aquest adjunt?",
    DELETE_ATTACHMENT_ALT_PROMPT: "Realment vol esborrar les metadades d'aquest adjunt alternatiu?",
    DELETE_PAGE_PROMPT: "Vol realment esborrar aquesta p\xE0gina?",
    DELETE_PAGE_ALT_PROMPT: "Realment desitja esborrar aquesta alternativa?",
    DELETE_PAGE_CHILDREN_WARNING: "Tamb\xE9 s'esborraran les subp\xE0gines que pengin d'aquesta p\xE0gina.",
    DELETE_RECORD: "Esborrar \u201C%s\u201D",
    DELETE_ALL_PAGE_ALTS: "Esborrar tamb\xE9 totes les alternatives i fitxers adjunts.",
    DELETE_ALL_ATTACHMENT_ALTS: "Esborrar totes les alternatives de l'annex i el fitxer adjunt.",
    DELETE_ONLY_PRIMARY_PAGE_ALT: "Esborrar nom\xE9s el registre principal.  Els adjunts, les alternatives i les subp\xE0gines no seran esborrades.",
    DELETE_ONLY_PRIMARY_ATTACHMENT_ALT: "Esborrar nom\xE9s les metadades del registre principal.",
    DELETE_PRIMARY_ALT_INFO: "Com aquest registre \xE9s una alternativa principal, pot ser esborrat per separat o conjuntament a la resta de continguts.",
    CHILD_PAGES_TO_BE_DELETED: "Subp\xE0gines que seran esborrares:",
    ALTS_TO_BE_DELETED: "Alternatives que seran eliminades:",
    ATTACHMENTS_TO_BE_DELETED: "Adjunts que seran eliminats:",
    YES_DELETE: "S\xED, esborrar",
    NO_CANCEL: "No, cancel\xB7lar",
    SYSTEM_FIELDS: "Camps del Sistema",
    EDIT_ATTACHMENT_METADATA_OF: "Editar les Metadades de l'Adjunt \u201C%s\u201D",
    EDIT_PAGE_NAME: "Editar \u201C%s\u201D",
    SAVE_CHANGES: "Desar els canvis",
    BROWSE_FS: "Veure al Sistema de fitxers",
    BROWSE_FS_MAC: "Mostrar al Finder",
    BROWSE_FS_WINDOWS: "Mostrar a l'Explorador",
    ERROR_CANNOT_BROWSE_FS: "Error: el fitxer no existeix encara.",
    REMOVE_FLOWBLOCK_PROMPT: "\xBFRealment vol esborrar aquest block?",
    ADD_FLOWBLOCK: "Afegir Block",
    INVALID_INPUT: "Entrada inv\xE0lida",
    UP: "Amunt",
    DOWN: "Abaix",
    REMOVE: "Esborrar",
    ID: "ID",
    CLOSE: "Tancar",
    CANCEL: "Cancel\xB7lar",
    BACK_TO_OVERVIEW: "Tornar a la Revisi\xF3",
    PUBLISH: "Publicar",
    PUBLISH_NOTE: "Des d'aqu\xED pot publicar la versi\xF3 actual del lloc web.",
    PUBLISH_SERVER: "Servidor Destinaci\xF3",
    CURRENTLY_PUBLISHING: "Publicannt ...",
    STATE: "Estat",
    PUBLISH_DONE: "Publicat",
    PUBLISH_STATE_BUILDING: "Els canvis s'estan generant ...",
    PUBLISH_STATE_PUBLISH: "Els canvis s'estan publicant ...",
    PUBLISH_STATE_DONE: "Publicaci\xF3 finalitzada.",
    FIND_FILES: "Buscar Fitxers",
    FIND_FILES_PLACEHOLDER: "Introdueixi el nom de la p\xE0gina ...",
    ATTACHMENT_TYPE: "Tipus d'adjunt",
    URL_SLUG: "URL personalitzada",
    TEMPLATE: "Plantilla",
    HIDE_PAGE: "Amagar p\xE0gina",
    HIDE_PAGE_EXPLANATION: "Hauria d'estar oculta aquesta p\xE0gina?",
    PAGE_IS_DISCOVERABLE: "La P\xE0gina \xE9s detectable",
    PAGE_IS_DISCOVERABLE_EXPLANATION: "Si s'habilita, la p\xE0gina pot ser detectada, en cas contrari la URL del contingut ha de ser coneguda.",
    REFRESH_BUILD: "Regenerar Lloc Web",
    REFRESH_BUILD_NOTE: "Aix\xF2 esborra tots els resultats generats i llen\xE7a una nova generaci\xF3 des de zero.  Aix\xF2 \xE9s \xFAtil en algunes situacions on els errors de sincronitzaci\xF3 o a les plantilles han causat un resultat corrupte.",
    CURRENTLY_REFRESHING_BUILD: "Regenerant ...",
    REFRESHING_BUILD_DONE: "Actualitzaci\xF3 finalitzada!",
    FAILED_TO_LAUNCH_LEKTOR: "Ha fallat l'execuci\xF3 de Lektor.",
    PROJECT: "Projecte",
    CLOSE_PROJECT: "Tancar Projecte",
    OPEN_PROJECT: "Obrir Projecte",
    BROWSE_WEBSITE: "Anar al Lloc Web",
    VIEW_ADMIN_PANEL: "Anar al Panell d'Administraci\xF3",
    QUIT: "Sortir",
    FAILED_TO_LOAD_PROJECT: "Ha fallat la c\xE0rrega del projecte :(",
    LOADING_PROJECT: "Carregant projecte ...",
    INITIALIZING_LEKTOR: "Inicialitzant Lektor ...",
    QUIT_LEKTOR: "Sortir de Lektor",
    FILE: "Arxiu",
    UNDO: "Desfer",
    REDO: "Tornar a fer",
    CUT: "Tallar",
    COPY: "Copiar",
    PASTE: "Enganxar",
    SELECT_ALL: "Seleccionar-ho Tot",
    HELP: "Ajuda",
    VISIT_WEBSITE: "Visitar Web",
    INSTALL_SHELL_COMMAND: "Instalar Eina",
    INSTALL_SHELL_COMMAND_QUESTION: "Vol instal\xB7lar la eina 'lektor'? Es requereixen permisos d'administraci\xF3.",
    FAILED_TO_INSTALL_SHELL_COMMANDS: "Ha fallat la instal\xB7laci\xF3 de l'eina.",
    INSTALL_SHELL_COMMAND_SUCCESS: "L'eina ha estat instal\xB7lada amb \xE8xit.",
    OPERATION_SUCCESS: "Amb \xE8xit",
    YES: "S\xED",
    NO: "No",
    OK: "OK",
    FAILED_TO_OPEN_CONTENT_FILE: "Error al intentar obrir el fitxer de contingut",
    OPEN_OTHER_PROJECT: "Obrir un altre Projecte",
    OPEN_OTHER_PROJECT_QUESTION: "Obrir aquest fitxer implica obrir un altre projecte (%s). El projecte actual ser\xE0 tancat. Vol continuar?"
  };

  // ../lektor/translations/de.json
  var de_default = {
    RETURN_TO_WEBSITE: "Zur Webseite",
    UNLOAD_ACTIVE_TAB: "Du hast ungespeicherte \xC4nderungen, willst du die Seite wirklich verlassen?",
    EDIT_METADATA: "Metadaten bearbeiten",
    EDIT: "Bearbeiten",
    DELETE: "L\xF6schen",
    PREVIEW: "Vorschau",
    ALTS: "Alternativen",
    PRIMARY_ALT: "Prim\xE4r",
    PRIMARY_OVERLAY: "\xDCberlagert",
    ADD_CHILD_PAGE: "Seite hinzuf\xFCgen",
    ADD_ATTACHMENT: "Anhang hinzuf\xFCgen",
    ATTACHMENT_ACTIONS: "Anhang-Aktionen",
    PAGE_ACTIONS: "Seiten-Aktionen",
    NO_CHILD_PAGES: "Keine Unterseiten",
    CHILD_PAGES: "Unterseiten",
    NO_ATTACHMENTS: "Keine Anh\xE4nge",
    ATTACHMENTS: "Anh\xE4nge",
    ADD_ATTACHMENT_TO: "Anhang zu \u201C%s\u201D hinzuf\xFCgen",
    ADD_ATTACHMENT_NOTE: "Hier kannst du neue Anh\xE4nge hochladen.",
    UPLOAD: "Hochladen",
    PROGRESS: "Fortschritt",
    ERROR_PREFIX: "Fehler: ",
    ERROR_NO_ID_PROVIDED: "Es wurde keine ID eingegeben.",
    ERROR_PAGE_ID_DUPLICATE: "Eine Seite mit dieser ID (%s) existiert bereits.",
    ERROR_INVALID_ID: "Ung\xFCltige ID",
    ERROR_INVALID_DATE: "Ung\xFCltiges Datum",
    ERROR_INVALID_NUMBER: "Ung\xFCltige Zahl",
    ERROR_INVALID_URL: "Ung\xFCltige URL",
    ERROR: "Fehler",
    ERROR_OCURRED: "Ein Fehler ist aufgetreten",
    ERROR_REQUEST_FAILED: "Ein Befehl konnte nicht an den Server gesendet werden. Eventuell reagiert der Server nicht oder wurde gestoppt.",
    ERROR_SERVER_UNAVAILABLE: "Server unerreichbar",
    ERROR_SERVER_UNAVAILABLE_MESSAGE: "Der Server reagiert nicht. Entweder er wurde gestoppt oder ein kritischer Fehler ist aufgetreten und er muss neu gestartet werden.",
    MODEL: "Modell",
    ADD_CHILD_PAGE_TO: "Unterseite zu \u201C%s\u201D hinzuf\xFCgen",
    ADD_CHILD_PAGE_NOTE: "Du kannst hier eine neue Unterseite hinzuf\xFCgen.  Beachte, dass die ID und das Modell sp\xE4ter nicht mehr ver\xE4ndert werden kann.",
    CREATE_CHILD_PAGE: "Unterseite hinzuf\xFCgen",
    DELETE_ATTACHMENT_PROMPT: "Willst du den Anhang wirklich l\xF6schen?",
    DELETE_ATTACHMENT_ALT_PROMPT: "Willst du die Metadaten dieser Anhang-Alternative wirklich l\xF6schen?",
    DELETE_PAGE_PROMPT: "Willst du diese Seite wirklich l\xF6schen?",
    DELETE_PAGE_ALT_PROMPT: "Willst du diese Alternative wirklich l\xF6schen?",
    DELETE_PAGE_CHILDREN_WARNING: "Dies wird auch die Unterseiten der Seite l\xF6schen.",
    DELETE_RECORD: "\u201C%s\u201D L\xF6schen",
    DELETE_ALL_PAGE_ALTS: "Alle Alternativen und angeh\xE4ngten Dateien mitl\xF6schen.",
    DELETE_ALL_ATTACHMENT_ALTS: "Alle Alternativen und die angeh\xE4ngte Datei l\xF6schen.",
    DELETE_ONLY_PRIMARY_PAGE_ALT: "Nur den Prim\xE4reintrag l\xF6schen. Anh\xE4nge, andere Alternativen und Unterseiten werden nicht gel\xF6scht.",
    DELETE_ONLY_PRIMARY_ATTACHMENT_ALT: "Nur die Metadaten des Prim\xE4reintrages l\xF6schen.",
    DELETE_PRIMARY_ALT_INFO: "Da dieser Eintrag eine Prim\xE4ralternative ist, kann diese auch separat gel\xF6scht werden oder zusammen mit allen anderen Inhalten.",
    CHILD_PAGES_TO_BE_DELETED: "Unterseiten, die gel\xF6scht werden:",
    ALTS_TO_BE_DELETED: "Alternativen, die gel\xF6scht werden:",
    ATTACHMENTS_TO_BE_DELETED: "Anh\xE4nge, die gel\xF6scht werden:",
    YES_DELETE: "Ja, l\xF6schen",
    NO_CANCEL: "Nein, abbrechen",
    SYSTEM_FIELDS: "Systemfelder",
    EDIT_ATTACHMENT_METADATA_OF: "Bearbeite Metadaten von Anhang \u201C%s\u201D",
    EDIT_PAGE_NAME: "Bearbeite \u201C%s\u201D",
    SAVE_CHANGES: "\xC4nderungen speichern",
    BROWSE_FS: "Im Dateisystem \xF6ffnen",
    BROWSE_FS_MAC: "In Finder anzeigen",
    BROWSE_FS_WINDOWS: "Im Explorer \xF6ffnen",
    ERROR_CANNOT_BROWSE_FS: "Fehler: Datei existiert noch nicht",
    REMOVE_FLOWBLOCK_PROMPT: "Willst du diesen Block wirklich entfernen?",
    ADD_FLOWBLOCK: "Block hinzuf\xFCgen",
    INVALID_INPUT: "Ung\xFCltige Eingabe",
    UP: "Nach oben",
    DOWN: "Nach unten",
    REMOVE: "Entfernen",
    ID: "ID",
    CLOSE: "Schlie\xDFen",
    CANCEL: "Abbrechen",
    BACK_TO_OVERVIEW: "\xDCbersicht",
    PUBLISH: "Ver\xF6ffentlichen",
    PUBLISH_NOTE: "Von hier aus kann der aktuelle Stand der Webseite publiziert werden.",
    PUBLISH_SERVER: "Ziel-Server",
    CURRENTLY_PUBLISHING: "Ver\xF6ffentlichung \u2026",
    STATE: "Status",
    PUBLISH_DONE: "Ver\xF6ffentlicht",
    PUBLISH_STATE_BUILDING: "\xC4nderungen werden gebaut ...",
    PUBLISH_STATE_PUBLISH: "\xC4nderungen werden publiziert ...",
    PUBLISH_STATE_DONE: "Ver\xF6ffentlichung fertiggestellt.",
    FIND_FILES: "Seiten Finden",
    FIND_FILES_PLACEHOLDER: "Seitenname eingeben ...",
    ATTACHMENT_TYPE: "Attachment type",
    URL_SLUG: "URL-Slug",
    TEMPLATE: "Vorlage",
    HIDE_PAGE: "Seite verstecken",
    HIDE_PAGE_EXPLANATION: "Soll diese Seite versteckt werden?",
    PAGE_IS_DISCOVERABLE: "Seite ist erkundbar",
    PAGE_IS_DISCOVERABLE_EXPLANATION: "Wenn dies aktiviert ist, wird Seite von Vorlagen verlinkt. Ansonsten muss die URL bekannt sein.",
    REFRESH_BUILD: "\xC4nderungen regenerieren",
    REFRESH_BUILD_NOTE: "In machen Situationen kann es n\xFCtzlich sein, alle \xC4nderungen zu regenerieren.  Zum Beispiel k\xF6nnen Synchronisationsfehler und kaputte Vorlagen manchmal dazu f\xFChren, dass Seiten fehlerhaft gebaut wurden.  Dies bringt Lektor dazu, alle Seiten neu zu bauen.",
    CURRENTLY_REFRESHING_BUILD: "\xC4nderungen werden regeneriert ...",
    REFRESHING_BUILD_DONE: "\xC4nderungen wurden regeneriert!",
    FAILED_TO_LAUNCH_LEKTOR: "Lektor konnte nicht gestartet werden.",
    PROJECT: "Projekt",
    CLOSE_PROJECT: "Projekt schlie\xDFen",
    OPEN_PROJECT: "Projekt \xF6ffnen",
    BROWSE_WEBSITE: "Webseite anzeigen",
    VIEW_ADMIN_PANEL: "Admin-Panel \xF6ffnen",
    QUIT: "Beenden",
    FAILED_TO_LOAD_PROJECT: "Projekt konnte nicht geladen werden :(",
    LOADING_PROJECT: "Projekt wird ge\xF6ffnet ...",
    INITIALIZING_LEKTOR: "Initialisiere Lektor ...",
    QUIT_LEKTOR: "Lektor beenden",
    FILE: "Datei",
    UNDO: "R\xFCckg\xE4ngig",
    REDO: "Wiederholen",
    CUT: "Ausschneiden",
    COPY: "Kopieren",
    PASTE: "Einf\xFCgen",
    SELECT_ALL: "Alles Markieren",
    HELP: "Hilfe",
    VISIT_WEBSITE: "Webseite \xF6ffnen",
    INSTALL_SHELL_COMMAND: "Shell-Befehl installieren",
    INSTALL_SHELL_COMMAND_QUESTION: "M\xF6chtest du den 'lektor' Shell-Befehl installieren? Dies erfordert Admin-Rechte.",
    FAILED_TO_INSTALL_SHELL_COMMANDS: "Konnte Shell-Befehl nicht installieren.",
    INSTALL_SHELL_COMMAND_SUCCESS: "Shell-Befehl wurde erfolgreich installiert.",
    OPERATION_SUCCESS: "Operation erfolgreich",
    YES: "Ja",
    NO: "Nein",
    OK: "OK",
    FAILED_TO_OPEN_CONTENT_FILE: "Konnte Datei nicht \xF6ffnen",
    OPEN_OTHER_PROJECT: "Anderes Projekt \xF6ffnen",
    OPEN_OTHER_PROJECT_QUESTION: "Um diese Datei zu \xF6ffnen, muss ein anderes Projekt (%s) ge\xF6ffnet werden. Das aktuelle Projekt wird dadurch geschlossen. Fortfahren?"
  };

  // ../lektor/translations/en.json
  var en_default = {
    RETURN_TO_WEBSITE: "Return to Website",
    UNLOAD_ACTIVE_TAB: "You have unsaved information, are you sure you want to leave this page?",
    EDIT_METADATA: "Edit Metadata",
    EDIT: "Edit",
    DELETE: "Delete",
    PREVIEW: "Preview",
    ALTS: "Alternatives",
    PRIMARY_ALT: "Primary",
    PRIMARY_OVERLAY: "Overlaid",
    ADD_CHILD_PAGE: "Add Page",
    ADD_ATTACHMENT: "Add Attachment",
    ATTACHMENT_ACTIONS: "Attachment Actions",
    PAGE_ACTIONS: "Page Actions",
    NO_CHILD_PAGES: "No Subpages",
    CHILD_PAGES: "Subpages",
    NO_ATTACHMENTS: "No attachments",
    ATTACHMENTS: "Attachments",
    ADD_ATTACHMENT_TO: "Add Attachment to \u201C%s\u201D",
    ADD_ATTACHMENT_NOTE: "You can upload a new attachment here.",
    UPLOAD: "Upload",
    PROGRESS: "Progress",
    ERROR_PREFIX: "Error: ",
    ERROR_NO_ID_PROVIDED: "No ID provided.",
    ERROR_PAGE_ID_DUPLICATE: "A page with this ID (%s) exists already.",
    ERROR_INVALID_ID: "Invalid ID",
    ERROR_INVALID_DATE: "Invalid date",
    ERROR_INVALID_NUMBER: "Not a valid number",
    ERROR_INVALID_URL: "Not a valid URL",
    ERROR: "Error",
    ERROR_OCURRED: "An Error ocurred",
    ERROR_REQUEST_FAILED: "Could not send command to server.  Maybe the server was stopped or is unresponsive?",
    ERROR_SERVER_UNAVAILABLE: "Server Unavailable",
    ERROR_SERVER_UNAVAILABLE_MESSAGE: "The server is not responding.  Either it was stopped or a critical error made it not operable and it needs to be restarted.",
    MODEL: "Model",
    ADD_CHILD_PAGE_TO: "Add Subpage to \u201C%s\u201D",
    ADD_CHILD_PAGE_NOTE: "You can add a new subpage to the page here.  Note that the model or ID cannot be easily changed afterwards.",
    CREATE_CHILD_PAGE: "Add Child Page",
    DELETE_ATTACHMENT_PROMPT: "Do you really want to delete this attachment?",
    DELETE_ATTACHMENT_ALT_PROMPT: "Do you really want to delete the metadata of this attachment alternative?",
    DELETE_PAGE_PROMPT: "Do you really want to delete this page?",
    DELETE_PAGE_ALT_PROMPT: "Do you really want to delete this alternative?",
    DELETE_PAGE_CHILDREN_WARNING: "This will also delete the child subpages of this page.",
    DELETE_RECORD: "Delete \u201C%s\u201D",
    DELETE_ALL_PAGE_ALTS: "Also delete all alternatives and attached files.",
    DELETE_ALL_ATTACHMENT_ALTS: "Delete all alternatives and the attached file.",
    DELETE_ONLY_PRIMARY_PAGE_ALT: "Delete only the primary record.  Attachments, alternatives and subpages will not be deleted.",
    DELETE_ONLY_PRIMARY_ATTACHMENT_ALT: "Only delete the Metadata of the primary record.",
    DELETE_PRIMARY_ALT_INFO: "Because this record is a primary alternative it can be deleted separately or together with all other contents.",
    CHILD_PAGES_TO_BE_DELETED: "Subpages that will be deleted:",
    ALTS_TO_BE_DELETED: "Alternatives that will be deleted:",
    ATTACHMENTS_TO_BE_DELETED: "Attachments that will be deleted:",
    YES_DELETE: "Yes, delete",
    NO_CANCEL: "No, cancel",
    SYSTEM_FIELDS: "System Fields",
    EDIT_ATTACHMENT_METADATA_OF: "Edit Metadata of Attachment \u201C%s\u201D",
    EDIT_PAGE_NAME: "Edit \u201C%s\u201D",
    SAVE_CHANGES: "Save Changes",
    BROWSE_FS: "Browse in Filesystem",
    BROWSE_FS_MAC: "Reveal in Finder",
    BROWSE_FS_WINDOWS: "Open in Explorer",
    ERROR_CANNOT_BROWSE_FS: "Error: File does not exist yet.",
    REMOVE_FLOWBLOCK_PROMPT: "Do you really want to remove this block?",
    ADD_FLOWBLOCK: "Add Block",
    INVALID_INPUT: "Invalid Input",
    UP: "Up",
    DOWN: "Down",
    REMOVE: "Remove",
    ID: "ID",
    CLOSE: "Close",
    CANCEL: "Cancel",
    BACK_TO_OVERVIEW: "Back to Overview",
    PUBLISH: "Publish",
    PUBLISH_NOTE: "From here you can publish the current version of the website.",
    PUBLISH_SERVER: "Target Server",
    CURRENTLY_PUBLISHING: "Publishing \u2026",
    STATE: "Status",
    PUBLISH_DONE: "Published",
    PUBLISH_STATE_BUILDING: "Changes are being built ...",
    PUBLISH_STATE_PUBLISH: "Changes are being published ...",
    PUBLISH_STATE_DONE: "Publishing done.",
    FIND_FILES: "Find Files",
    FIND_FILES_PLACEHOLDER: "Enter page name ...",
    ATTACHMENT_TYPE: "Attachment type",
    URL_SLUG: "URL slug",
    TEMPLATE: "Template",
    HIDE_PAGE: "Hide page",
    HIDE_PAGE_EXPLANATION: "Should this page be hidden?",
    PAGE_IS_DISCOVERABLE: "Page is discoverable",
    PAGE_IS_DISCOVERABLE_EXPLANATION: "If this is enabled the page can be discovered, otherwise the URL has to be known.",
    REFRESH_BUILD: "Refresh Build",
    REFRESH_BUILD_NOTE: "This deletes all cached build results which triggers a rebuilt from scratch.  This is useful in certain situations where sync errors or mistakes in templates caused corrupted output.",
    CURRENTLY_REFRESHING_BUILD: "Currently refreshing build ...",
    REFRESHING_BUILD_DONE: "Done refreshing build!",
    FAILED_TO_LAUNCH_LEKTOR: "Failed to launch Lektor.",
    PROJECT: "Project",
    CLOSE_PROJECT: "Close Project",
    OPEN_PROJECT: "Open Project",
    BROWSE_WEBSITE: "Browse Website",
    VIEW_ADMIN_PANEL: "View Admin Panel",
    QUIT: "Quit",
    FAILED_TO_LOAD_PROJECT: "Failed to load the project :(",
    LOADING_PROJECT: "Loading project ...",
    INITIALIZING_LEKTOR: "Initializing Lektor ...",
    QUIT_LEKTOR: "Quit Lektor",
    FILE: "File",
    UNDO: "Undo",
    REDO: "Redo",
    CUT: "Cut",
    COPY: "Copy",
    PASTE: "Paste",
    SELECT_ALL: "Select All",
    HELP: "Help",
    VISIT_WEBSITE: "Visit Website",
    INSTALL_SHELL_COMMAND: "Install Shell Command",
    INSTALL_SHELL_COMMAND_QUESTION: "Do you want to install the 'lektor' shell command? This requires admin rights.",
    FAILED_TO_INSTALL_SHELL_COMMANDS: "Failed to install shell commands.",
    INSTALL_SHELL_COMMAND_SUCCESS: "Shell command was successfully installed.",
    OPERATION_SUCCESS: "Success",
    YES: "Yes",
    NO: "No",
    OK: "OK",
    FAILED_TO_OPEN_CONTENT_FILE: "Failed to open content file",
    OPEN_OTHER_PROJECT: "Open other Project",
    OPEN_OTHER_PROJECT_QUESTION: "Opening this file requires opening another project (%s). The current project will be closed. Do you want to continue?",
    COLLAPSE: "Collapse",
    EXPAND: "Expand",
    TRISTATE_CHECKBOX_TOOLTIP: "Tri-state checkbox: use <del> or <backspace> to revert to unset",
    AUTOSIZE_TEXTAREA: "Autosize textarea",
    SHRINK_TEXTAREA: "Shrink textarea"
  };

  // ../lektor/translations/es.json
  var es_default = {
    RETURN_TO_WEBSITE: "Volver al Sitio Web",
    UNLOAD_ACTIVE_TAB: "Tiene informaci\xF3n sin guardar, est\xE1 seguro de que quiere abandonar esta p\xE1gina?",
    EDIT_METADATA: "Editar Metadatos",
    EDIT: "Editar",
    DELETE: "Borrar",
    PREVIEW: "Previsualizar",
    ALTS: "Alternativas",
    PRIMARY_ALT: "Primaria",
    PRIMARY_OVERLAY: "Overlaid",
    ADD_CHILD_PAGE: "A\xF1adir P\xE1gina",
    ADD_ATTACHMENT: "A\xF1adir Adjunto",
    ATTACHMENT_ACTIONS: "Acciones de Adjunto",
    PAGE_ACTIONS: "Acciones de P\xE1gina",
    NO_CHILD_PAGES: "Sin Subp\xE1ginas",
    CHILD_PAGES: "Subp\xE1ginas",
    NO_ATTACHMENTS: "Sin Adjuntos",
    ATTACHMENTS: "Adjuntos",
    ADD_ATTACHMENT_TO: "A\xF1adir Adjunto a \u201C%s\u201D",
    ADD_ATTACHMENT_NOTE: "Puede cargar un nuevo adjunto aqu\xED.",
    UPLOAD: "Cargar",
    PROGRESS: "Avance",
    ERROR_PREFIX: "Error: ",
    ERROR_NO_ID_PROVIDED: "No se proporcion\xF3 un ID.",
    ERROR_PAGE_ID_DUPLICATE: "Ya existe una p\xE1gina con este ID (%s).",
    ERROR_INVALID_ID: "ID inv\xE1lido",
    ERROR_INVALID_DATE: "Fecha inv\xE1lida",
    ERROR_INVALID_NUMBER: "N\xFAmero no v\xE1lido",
    ERROR_INVALID_URL: "URL no v\xE1lida",
    ERROR: "Error",
    ERROR_OCURRED: "Ocurri\xF3 un Error",
    ERROR_REQUEST_FAILED: "No se pudo enviar el comando al servidor.  \xBFEs posible que el servidor est\xE9 apagado o no responda?",
    ERROR_SERVER_UNAVAILABLE: "Servidor No Disponible",
    ERROR_SERVER_UNAVAILABLE_MESSAGE: "El servidor no responde.  Fue apagado o hubo un error cr\xEDtico que lo hace inoperativo y necesita ser reiniciado.",
    MODEL: "Modelo",
    ADD_CHILD_PAGE_TO: "A\xF1ada Subp\xE1gina a \u201C%s\u201D",
    ADD_CHILD_PAGE_NOTE: "Puede a\xF1adir una nueva subp\xE1gina aqu\xED.  Tenga en cuenta que el modelo o el ID no puede ser cambiado f\xE1cilmente m\xE1s tarde.",
    CREATE_CHILD_PAGE: "A\xF1ada P\xE1gina Hijo",
    DELETE_ATTACHMENT_PROMPT: "\xBFQuiere realmente borrar este anexo?",
    DELETE_ATTACHMENT_ALT_PROMPT: "\xBFQuiere realmente borrar los metadatos de esta alternativa de anexo?",
    DELETE_PAGE_PROMPT: "\xBFQuiere realmente borrar esta p\xE1gina?",
    DELETE_PAGE_ALT_PROMPT: "\xBFQuiere realmente borrar esta alternativa?",
    DELETE_PAGE_CHILDREN_WARNING: "Esto tambi\xE9n borrar\xE1 las subp\xE1ginas hijo de esta p\xE1gina.",
    DELETE_RECORD: "Borrar \u201C%s\u201D",
    DELETE_ALL_PAGE_ALTS: "Borrar tambi\xE9n todas las alternativas y ficheros adjuntos.",
    DELETE_ALL_ATTACHMENT_ALTS: "Borrar todas las alternativas y el fichero adjunto.",
    DELETE_ONLY_PRIMARY_PAGE_ALT: "Borra s\xF3lo el registro principal.  Los adjuntos, las alternativas y las subp\xE1ginas no ser\xE1n borradas.",
    DELETE_ONLY_PRIMARY_ATTACHMENT_ALT: "Borra s\xF3lo los metadatos del registro principal.",
    DELETE_PRIMARY_ALT_INFO: "Como este registro es una alternativa principal, puede ser borrado por separado o junto al resto de contenidos.",
    CHILD_PAGES_TO_BE_DELETED: "Subp\xE1ginas que ser\xE1n borradas:",
    ALTS_TO_BE_DELETED: "Alternativas que ser\xE1n borradas:",
    ATTACHMENTS_TO_BE_DELETED: "Adjuntos que ser\xE1n borrados:",
    YES_DELETE: "S\xED, borrar",
    NO_CANCEL: "No, cancelar",
    SYSTEM_FIELDS: "Campos de Sistema",
    EDIT_ATTACHMENT_METADATA_OF: "Editar los Metadatos del Adjunto \u201C%s\u201D",
    EDIT_PAGE_NAME: "Editar \u201C%s\u201D",
    SAVE_CHANGES: "Guardar los cambios",
    BROWSE_FS: "Navegar en el Sistema de ficheros",
    BROWSE_FS_MAC: "Mostrar en el Finder",
    BROWSE_FS_WINDOWS: "Abrir en el Explorador",
    ERROR_CANNOT_BROWSE_FS: "Error: el fichero no existe todav\xEDa.",
    REMOVE_FLOWBLOCK_PROMPT: "\xBFQuiere realmente borrar este bloque?",
    ADD_FLOWBLOCK: "A\xF1adir Bloque",
    INVALID_INPUT: "Entrada inv\xE1lida",
    UP: "Arriba",
    DOWN: "Abajo",
    REMOVE: "Eliminar",
    ID: "ID",
    CLOSE: "Cerrar",
    CANCEL: "Cancelar",
    BACK_TO_OVERVIEW: "Vuelve a Revisi\xF3n",
    PUBLISH: "Publicar",
    PUBLISH_NOTE: "Desde aqu\xED puede publicar la versi\xF3n actual del sitio web.",
    PUBLISH_SERVER: "Servidor Destino",
    CURRENTLY_PUBLISHING: "Publicando \u2026",
    STATE: "Estado",
    PUBLISH_DONE: "Publicado",
    PUBLISH_STATE_BUILDING: "Los cambios se est\xE1n generando ...",
    PUBLISH_STATE_PUBLISH: "Los cambios est\xE1n siendo publicados ...",
    PUBLISH_STATE_DONE: "Publicaci\xF3n finalizada.",
    FIND_FILES: "Encontrar Ficheros",
    FIND_FILES_PLACEHOLDER: "Introduzca el nombre de la p\xE1gina ...",
    ATTACHMENT_TYPE: "Tipo de adjunto",
    URL_SLUG: "URL personalizada",
    TEMPLATE: "Plantilla",
    HIDE_PAGE: "Ocultar p\xE1gina",
    HIDE_PAGE_EXPLANATION: "\xBFDeber\xEDa estar oculta esta p\xE1gina?",
    PAGE_IS_DISCOVERABLE: "La P\xE1gina es detectable",
    PAGE_IS_DISCOVERABLE_EXPLANATION: "Si esto est\xE1 habilitado la p\xE1gina puede ser detectada, en caso contrario la URL ha de ser conocida.",
    REFRESH_BUILD: "Refrescar la Generaci\xF3n",
    REFRESH_BUILD_NOTE: "Esto borra todos los resultados generados y lanza una nueva generaci\xF3n desde cero. Esto es \xFAtil en ciertas situaciones donde errores de sincronizaci\xF3n o en las plantillas causaron un resultado corrupto.",
    CURRENTLY_REFRESHING_BUILD: "Regenerando ...",
    REFRESHING_BUILD_DONE: "\xA1Acab\xF3 la regeneraci\xF3n!",
    FAILED_TO_LAUNCH_LEKTOR: "Fall\xF3 la ejecuci\xF3n de Lektor.",
    PROJECT: "Proyecto",
    CLOSE_PROJECT: "Cerrar Proyecto",
    OPEN_PROJECT: "Abrir Proyecto",
    BROWSE_WEBSITE: "Navegar Sitio Web",
    VIEW_ADMIN_PANEL: "Ver Panel de Administraci\xF3n",
    QUIT: "Salir",
    FAILED_TO_LOAD_PROJECT: "Fall\xF3 la carga del proyecto :(",
    LOADING_PROJECT: "Cargando proyecto ...",
    INITIALIZING_LEKTOR: "Inicializando Lektor ...",
    QUIT_LEKTOR: "Salir de Lektor",
    FILE: "Archivo",
    UNDO: "Deshacer",
    REDO: "Rehacer",
    CUT: "Cortar",
    COPY: "Copiar",
    PASTE: "Pegar",
    SELECT_ALL: "Seleccionar Todo",
    HELP: "Ayuda",
    VISIT_WEBSITE: "Visitar Web",
    INSTALL_SHELL_COMMAND: "Instalar Comando",
    INSTALL_SHELL_COMMAND_QUESTION: "\xBFQuiere instalar el comando 'lektor'? Son necesarios privilegios de administrador.",
    FAILED_TO_INSTALL_SHELL_COMMANDS: "Fall\xF3 la instalaci\xF3n de los comandos.",
    INSTALL_SHELL_COMMAND_SUCCESS: "El comando se instal\xF3 con \xE9xito.",
    OPERATION_SUCCESS: "Con \xE9xito",
    YES: "S\xED",
    NO: "No",
    OK: "OK",
    FAILED_TO_OPEN_CONTENT_FILE: "Fall\xF3 al abrir el fichero de contenido",
    OPEN_OTHER_PROJECT: "Abrir otro Proyecto",
    OPEN_OTHER_PROJECT_QUESTION: "Abrir este fichero requiere abrir otro proyecto (%s). El proyecto actual ser\xE1 cerrado. \xBFQuiere continuar?"
  };

  // ../lektor/translations/fr.json
  var fr_default = {
    RETURN_TO_WEBSITE: "Retour au site Web",
    UNLOAD_ACTIVE_TAB: "Des informations ne sont pas enregistr\xE9es, voulez-vous vraiment quitter cette page\xA0?",
    EDIT_METADATA: "Modifier les m\xE9tadonn\xE9es",
    EDIT: "Modifier",
    DELETE: "Supprimer",
    PREVIEW: "Aper\xE7u",
    ALTS: "Alternatives",
    PRIMARY_ALT: "Primaire",
    PRIMARY_OVERLAY: "Superpos\xE9e",
    ADD_CHILD_PAGE: "Ajouter une page",
    ADD_ATTACHMENT: "Joindre un fichier",
    ATTACHMENT_ACTIONS: "Actions sur les fichiers joints",
    PAGE_ACTIONS: "Action sur les pages",
    NO_CHILD_PAGES: "Aucune sous-page",
    CHILD_PAGES: "Sous-pages",
    NO_ATTACHMENTS: "Aucun fichier joint",
    ATTACHMENTS: "Fichiers joints",
    ADD_ATTACHMENT_TO: "Joindre un fichier \xE0 \xAB\xA0%s\xA0\xBB",
    ADD_ATTACHMENT_NOTE: "Vous pouvez t\xE9l\xE9verser un nouveau fichier joint ici.",
    UPLOAD: "T\xE9l\xE9verser",
    PROGRESS: "Progression",
    ERROR_PREFIX: "Erreur\xA0: ",
    ERROR_NO_ID_PROVIDED: "Erreur\xA0: aucun ID fourni.",
    ERROR_PAGE_ID_DUPLICATE: "Une page avec cet ID (%s) existe d\xE9j\xE0.",
    ERROR_INVALID_ID: "ID non valide",
    ERROR_INVALID_DATE: "Date non valide",
    ERROR_INVALID_NUMBER: "Nombre non valide",
    ERROR_INVALID_URL: "URL non valide",
    ERROR: "Erreur",
    ERROR_OCURRED: "Une erreur a \xE9t\xE9 rencontr\xE9e",
    ERROR_REQUEST_FAILED: "La commande n'a pas pu \xEAtre envoy\xE9e au serveur. Le serveur a peut-\xEAtre \xE9t\xE9 arr\xEAt\xE9 ou ne r\xE9pond plus\xA0?",
    ERROR_SERVER_UNAVAILABLE: "Serveur indisponible",
    ERROR_SERVER_UNAVAILABLE_MESSAGE: "Le serveur ne r\xE9pond pas. Il a d\xFB \xEAtre arr\xEAt\xE9 ou une erreur critique l'a rendu inop\xE9rant et il doit \xEAtre red\xE9marr\xE9.",
    MODEL: "Mod\xE8le",
    ADD_CHILD_PAGE_TO: "Ajouter une sous-page \xE0 \xAB\xA0%s\xA0\xBB",
    ADD_CHILD_PAGE_NOTE: "Vous pouvez ajouter une nouvelle sous-page \xE0 la page ici. Veuillez noter que le mod\xE8le ou l'ID ne peut pas \xEAtre chang\xE9 facilement ult\xE9rieurement.",
    CREATE_CHILD_PAGE: "Ajouter une sous-page",
    DELETE_ATTACHMENT_PROMPT: "Voulez-vous vraiment supprimer ce fichier joint\xA0?",
    DELETE_ATTACHMENT_ALT_PROMPT: "Voulez-vous vraiment supprimer les m\xE9tadonn\xE9es de ce fichier joint alternatif\xA0?",
    DELETE_PAGE_PROMPT: "Voulez-vous vraiment supprimer cette page\xA0?",
    DELETE_PAGE_ALT_PROMPT: "Voulez-vous vraiment supprimer cette version alternative\xA0?",
    DELETE_PAGE_CHILDREN_WARNING: "Cela supprimera aussi les sous-pages de cette page.",
    DELETE_RECORD: "Supprimer \xAB\xA0%s\xA0\xBB",
    DELETE_ALL_PAGE_ALTS: "Supprimer aussi toutes les versions alternatives et les fichiers joints.",
    DELETE_ALL_ATTACHMENT_ALTS: "Supprimer toutes les versions alternatives et les fichiers joints.",
    DELETE_ONLY_PRIMARY_PAGE_ALT: "Supprimer seulement le premier enregistrement. Les fichiers joints, versions alternatives et sous-pages ne seront pas supprim\xE9es.",
    DELETE_ONLY_PRIMARY_ATTACHMENT_ALT: "Supprimer seulement les m\xE9tadonn\xE9es de la pi\xE8ce jointe primaire.",
    DELETE_PRIMARY_ALT_INFO: "Cet enregistrement \xE9tant l'alternative primaire, il peut \xEAtre supprim\xE9 s\xE9par\xE9ment ou avec tous les autres contenus.",
    CHILD_PAGES_TO_BE_DELETED: "Les sous-pages qui seront supprim\xE9es\xA0:",
    ALTS_TO_BE_DELETED: "Les versions alternatives qui seront supprim\xE9es\xA0:",
    ATTACHMENTS_TO_BE_DELETED: "Les fichiers joints qui seront supprim\xE9s\xA0:",
    YES_DELETE: "Oui, supprimer",
    NO_CANCEL: "Non, annuler",
    SYSTEM_FIELDS: "Champs syst\xE8me",
    EDIT_ATTACHMENT_METADATA_OF: "Modifier les m\xE9tadonn\xE9es du fichier joint \xAB\xA0%s\xA0\xBB",
    EDIT_PAGE_NAME: "Modifier \xAB\xA0%s\xA0\xBB",
    SAVE_CHANGES: "Enregistrer les changements",
    BROWSE_FS: "Parcourir le syst\xE8me de fichiers",
    BROWSE_FS_MAC: "R\xE9v\xE9ler dans le Finder",
    BROWSE_FS_WINDOWS: "Ouvrir dans l'Explorateur",
    ERROR_CANNOT_BROWSE_FS: "Erreur\xA0: le fichier n'existe pas encore.",
    REMOVE_FLOWBLOCK_PROMPT: "Voulez-vous vraiment supprimer ce bloc\xA0?",
    ADD_FLOWBLOCK: "Ajouter un bloc",
    INVALID_INPUT: "Saisie non valide",
    UP: "Haut",
    DOWN: "Bas",
    REMOVE: "Enlever",
    ID: "ID",
    CLOSE: "Fermer",
    CANCEL: "Annuler",
    BACK_TO_OVERVIEW: "Retour \xE0 l'aper\xE7u",
    PUBLISH: "Publier",
    PUBLISH_NOTE: "\xC0 partir de maintenant, vous pouvez publier la version actuelle de votre site Web.",
    PUBLISH_SERVER: "Serveur cible",
    CURRENTLY_PUBLISHING: "Publication en cours\u2026",
    STATE: "Statut",
    PUBLISH_DONE: "Publi\xE9",
    PUBLISH_STATE_BUILDING: "Les changements sont en cours de construction\u2026",
    PUBLISH_STATE_PUBLISH: "Les changements  sont en cours de publication\u2026",
    PUBLISH_STATE_DONE: "Publication effectu\xE9e.",
    FIND_FILES: "Trouver les fichiers",
    FIND_FILES_PLACEHOLDER: "Saisir le nom de la page\u2026",
    ATTACHMENT_TYPE: "Type de fichier joint",
    URL_SLUG: "Motif d'URL (slug)",
    TEMPLATE: "Mod\xE8le",
    HIDE_PAGE: "Masquer la page",
    HIDE_PAGE_EXPLANATION: "Est-ce que cette page devrait \xEAtre masqu\xE9e\xA0?",
    PAGE_IS_DISCOVERABLE: "La page est \xAB\xA0d\xE9couvrable\xA0\xBB",
    PAGE_IS_DISCOVERABLE_EXPLANATION: "Si activ\xE9, la page pourra \xEAtre retrouv\xE9e car elle sera index\xE9e, sinon l'URL devra \xEAtre connue pour y acc\xE9der.",
    REFRESH_BUILD: "Actualiser la construction",
    REFRESH_BUILD_NOTE: "Cela supprime tous les r\xE9sultats de la construction et entra\xEEne une reconstruction compl\xE8te. C'est utile dans certaines situations o\xF9 le r\xE9sultat est corrompu suite \xE0 des erreurs de synchronisation ou de mod\xE8les.",
    CURRENTLY_REFRESHING_BUILD: "Actualisation de la construction en cours\u2026",
    REFRESHING_BUILD_DONE: "Actualisation de la construction termin\xE9e",
    FAILED_TO_LAUNCH_LEKTOR: "Impossible de lancer Lektor.",
    PROJECT: "Projet",
    CLOSE_PROJECT: "Fermer le projet",
    OPEN_PROJECT: "Ouvrir le projet",
    BROWSE_WEBSITE: "Ouvrir le site Web",
    VIEW_ADMIN_PANEL: "Voir le panneau administrateur",
    QUIT: "Quitter",
    FAILED_TO_LOAD_PROJECT: "Impossible de charger le projet :(",
    LOADING_PROJECT: "Chargement du projet\u2026",
    INITIALIZING_LEKTOR: "Initialisation de Lektor\u2026",
    QUIT_LEKTOR: "Quitter Lektor",
    FILE: "Fichier",
    UNDO: "Annuler",
    REDO: "R\xE9tablir",
    CUT: "Couper",
    COPY: "Copier",
    PASTE: "Coller",
    SELECT_ALL: "S\xE9lectionner tout",
    HELP: "Aide",
    VISIT_WEBSITE: "Visiter le site Web",
    INSTALL_SHELL_COMMAND: "Installer la commande shell",
    INSTALL_SHELL_COMMAND_QUESTION: "Voulez-vous installer la commande shell \xAB\xA0lektor\xA0\xBB\xA0? Cela n\xE9cessite des droits administrateurs.",
    FAILED_TO_INSTALL_SHELL_COMMANDS: "Impossible d'installer les commandes shell.",
    INSTALL_SHELL_COMMAND_SUCCESS: "La commande shell  a \xE9t\xE9 correctement install\xE9e.",
    OPERATION_SUCCESS: "Succ\xE8s",
    YES: "Oui",
    NO: "Non",
    OK: "OK",
    FAILED_TO_OPEN_CONTENT_FILE: "Impossible d'ouvir le contenu du fichier",
    OPEN_OTHER_PROJECT: "Ouvrir un autre projet",
    OPEN_OTHER_PROJECT_QUESTION: "Ouvrir ce fichier n\xE9cessite d'ouvrir un autre projet (%s). Le projet actuel sera ferm\xE9. Voulez-vous vraiment continuer\xA0?"
  };

  // ../lektor/translations/it.json
  var it_default = {
    RETURN_TO_WEBSITE: "Torna al sito web",
    UNLOAD_ACTIVE_TAB: "Hai informazioni non salvate, sei sicuro di voler abbandonare questa pagina?",
    EDIT_METADATA: "Modifica metadati",
    EDIT: "Modifica",
    DELETE: "Cancella",
    PREVIEW: "Anteprima",
    ALTS: "Alternative",
    PRIMARY_ALT: "Primaria",
    PRIMARY_OVERLAY: "Sovrascritta",
    ADD_CHILD_PAGE: "Aggiungi pagina",
    ADD_ATTACHMENT: "Aggiungi allegato",
    ATTACHMENT_ACTIONS: "Azioni sull'allegato",
    PAGE_ACTIONS: "Azioni sulla pagina",
    NO_CHILD_PAGES: "Nessuna sottopagina",
    CHILD_PAGES: "Sottopagine",
    NO_ATTACHMENTS: "Nessun alleagto",
    ATTACHMENTS: "Allegati",
    ADD_ATTACHMENT_TO: "Aggiungi allegato a \u201C%s\u201D",
    ADD_ATTACHMENT_NOTE: "Puoi caricare un allegato qui.",
    UPLOAD: "Carica",
    PROGRESS: "Avanzamento",
    ERROR_PREFIX: "Errore: ",
    ERROR_NO_ID_PROVIDED: "Nessun ID fornito.",
    ERROR_PAGE_ID_DUPLICATE: "Una pagina con questo ID (%s) esiste gi\xE0.",
    ERROR_INVALID_ID: "ID non valido",
    ERROR_INVALID_DATE: "Data non valida",
    ERROR_INVALID_NUMBER: "Non \xE8 un numero valido",
    ERROR_INVALID_URL: "Non \xE8 un indirizzo valido",
    ERROR: "Errore",
    ERROR_OCURRED: "\xC8 capitato un errore",
    ERROR_REQUEST_FAILED: "Impossibile inviare comandi al server.  Magari il server \xE8 stato spento o \xE8 sovraccarico?",
    ERROR_SERVER_UNAVAILABLE: "Server non disponibile",
    ERROR_SERVER_UNAVAILABLE_MESSAGE: "Il server non risponde.  Pu\xF2 essere spento o un errore critico l'ha reso non operativo ed \xE8 necessario riavviarlo.",
    MODEL: "Modello",
    ADD_CHILD_PAGE_TO: "Aggiungi sottopagina a \u201C%s\u201D",
    ADD_CHILD_PAGE_NOTE: "Puoi aggiungere una nuova sottopagina qui.  Tieni presente che il modello o l'ID non potranno essere cambiati facilmente in futuro.",
    CREATE_CHILD_PAGE: "Aggiungi sottopagina",
    DELETE_ATTACHMENT_PROMPT: "Vuoi veramente cancellare questo allegato?",
    DELETE_ATTACHMENT_ALT_PROMPT: "Vuoi veramente cancellare i metadati di questa alternativa all'allegato?",
    DELETE_PAGE_PROMPT: "Vuoi veramente cancellare questa pagina?",
    DELETE_PAGE_ALT_PROMPT: "Vuoi veramente cancellare questa alternativa?",
    DELETE_PAGE_CHILDREN_WARNING: "Questo canceller\xE0 anche le sottopagine di questa pagina.",
    DELETE_RECORD: "Cancella \u201C%s\u201D",
    DELETE_ALL_PAGE_ALTS: "Cancella anche tutte le alternative ed i file allegati.",
    DELETE_ALL_ATTACHMENT_ALTS: "Cancella tutte le alternative ed il file allegato.",
    DELETE_ONLY_PRIMARY_PAGE_ALT: "Cancella solo la pagina principale. Allegati, alternative e sottopagine nnon verranno cancellate.",
    DELETE_ONLY_PRIMARY_ATTACHMENT_ALT: "Cancella solo i metadati dell'allegato principale.",
    DELETE_PRIMARY_ALT_INFO: "Dato che questo oggetto \xE8 l'alternativa primaria, pu\xF2 essere cancellato separatamente o insieme al resto del contenuto.",
    CHILD_PAGES_TO_BE_DELETED: "Sottopagine che verranno cancellate:",
    ALTS_TO_BE_DELETED: "Alternative che verranno cancellate:",
    ATTACHMENTS_TO_BE_DELETED: "Allegati che verranno cancellati:",
    YES_DELETE: "Si, cancella",
    NO_CANCEL: "No, annulla",
    SYSTEM_FIELDS: "Campi di sistema",
    EDIT_ATTACHMENT_METADATA_OF: "Modifica i metadati dell'allegato \u201C%s\u201D",
    EDIT_PAGE_NAME: "Modifica \u201C%s\u201D",
    SAVE_CHANGES: "Salva modifiche",
    BROWSE_FS: "Apri nel filesystem",
    BROWSE_FS_MAC: "Apri in Finder",
    BROWSE_FS_WINDOWS: "Apri in Esplora risorse",
    ERROR_CANNOT_BROWSE_FS: "Errore: il file non esiste.",
    REMOVE_FLOWBLOCK_PROMPT: "Vuoi davvero cancellare questo blocco?",
    ADD_FLOWBLOCK: "Aggiungi blocco",
    INVALID_INPUT: "Input invalido",
    UP: "Su",
    DOWN: "Gi\xF9",
    REMOVE: "Rimuovi",
    ID: "ID",
    CLOSE: "Chiudi",
    CANCEL: "Annulla",
    BACK_TO_OVERVIEW: "Torna alla panoramica",
    PUBLISH: "Pubblica",
    PUBLISH_NOTE: "Da qui puoi pubblicare la versione corrente del sito web.",
    PUBLISH_SERVER: "Server di destinazione",
    CURRENTLY_PUBLISHING: "Pubblicazione in corso...",
    STATE: "Stato",
    PUBLISH_DONE: "Pubblicato",
    PUBLISH_STATE_BUILDING: "Costruendo le pagine modificate...",
    PUBLISH_STATE_PUBLISH: "Pubblicando le pagine modificate...",
    PUBLISH_STATE_DONE: "Pubblicazione completata.",
    FIND_FILES: "Trova i file",
    FIND_FILES_PLACEHOLDER: "Inserisci il nome della pagina...",
    ATTACHMENT_TYPE: "Tipo dell'allegato",
    URL_SLUG: "Alias della pagina",
    TEMPLATE: "Template",
    HIDE_PAGE: "Nascondi pagina",
    HIDE_PAGE_EXPLANATION: "Questa pagina deve essere nascosta?",
    PAGE_IS_DISCOVERABLE: "La pagina pu\xF2 essere scoperta?",
    PAGE_IS_DISCOVERABLE_EXPLANATION: "Se \xE8 abilitato la pagina pu\xF2 essere scoperta, altrimenti l'indirizzo deve essere noto.",
    REFRESH_BUILD: "Esegui build completa",
    REFRESH_BUILD_NOTE: "Questo cancella tutti i risultati precedenti, eseguendo una build completa.  Questo \xE8 utile in casi in cui errori di sincronizzazione o errori nei template rendono il risultato corrotto.",
    CURRENTLY_REFRESHING_BUILD: "Eseguendo build completa...",
    REFRESHING_BUILD_DONE: "Build completa eseguita!",
    FAILED_TO_LAUNCH_LEKTOR: "Impossibile eseguire Lektor.",
    PROJECT: "Progetto",
    CLOSE_PROJECT: "Chiudi progetto",
    OPEN_PROJECT: "Apri progetto",
    BROWSE_WEBSITE: "Naviga nel sito web",
    VIEW_ADMIN_PANEL: "Mostra pannello di amministrazione",
    QUIT: "Esci",
    FAILED_TO_LOAD_PROJECT: "Impossibile caricare il progetto :(",
    LOADING_PROJECT: "Caricamento del progetto...",
    INITIALIZING_LEKTOR: "Preparazione di Lektor...",
    QUIT_LEKTOR: "Esci da Lektor",
    FILE: "File",
    UNDO: "Annulla",
    REDO: "Ripeti",
    CUT: "Taglia",
    COPY: "Copia",
    PASTE: "Incolla",
    SELECT_ALL: "Seleziona tutto",
    HELP: "Aiuto",
    VISIT_WEBSITE: "Visita il sito web",
    INSTALL_SHELL_COMMAND: "Installa comando shell",
    INSTALL_SHELL_COMMAND_QUESTION: "Vuoi installare il comando shell 'lektor'? Questo richiede privilegi di amministrazione.",
    FAILED_TO_INSTALL_SHELL_COMMANDS: "Impossibile installare il comando shell.",
    INSTALL_SHELL_COMMAND_SUCCESS: "Il comando shell \xE8 stato installato con successo.",
    OPERATION_SUCCESS: "Successo",
    YES: "Si",
    NO: "No",
    OK: "OK",
    FAILED_TO_OPEN_CONTENT_FILE: "Impossibile aprire il file di contenuto",
    OPEN_OTHER_PROJECT: "Apri un altro progetto",
    OPEN_OTHER_PROJECT_QUESTION: "Aprire questo file richiede l'apertura di un altro progetto (%s). Il progetto corrente verr\xE0 chiuso. Vuoi proseguire?"
  };

  // ../lektor/translations/ja.json
  var ja_default = {
    RETURN_TO_WEBSITE: "Website\u306B\u623B\u308B",
    UNLOAD_ACTIVE_TAB: "\u4FDD\u5B58\u3057\u3066\u3044\u306A\u3044\u7DE8\u96C6\u304C\u3042\u308A\u307E\u3059\u3001\u672C\u5F53\u306B\u30DA\u30FC\u30B8\u3092\u96E2\u308C\u307E\u3059\u304B?",
    EDIT_METADATA: "\u30E1\u30BF\u30C7\u30FC\u30BF\u306E\u7DE8\u96C6",
    EDIT: "\u7DE8\u96C6",
    DELETE: "\u524A\u9664",
    PREVIEW: "\u30D7\u30EC\u30D3\u30E5\u30FC",
    ALTS: "\u4EE3\u66FF",
    PRIMARY_ALT: "\u30D7\u30E9\u30A4\u30DE\u30EA\u30FC",
    PRIMARY_OVERLAY: "\u4E0A\u66F8\u304D",
    ADD_CHILD_PAGE: "\u30DA\u30FC\u30B8\u306E\u8FFD\u52A0",
    ADD_ATTACHMENT: "\u30A2\u30BF\u30C3\u30C1\u30E1\u30F3\u30C8\u306E\u8FFD\u52A0",
    ATTACHMENT_ACTIONS: "\u30A2\u30BF\u30C3\u30C1\u30E1\u30F3\u30C8\u306E\u30A2\u30AF\u30B7\u30E7\u30F3",
    PAGE_ACTIONS: "\u30DA\u30FC\u30B8\u30A2\u30AF\u30B7\u30E7\u30F3",
    NO_CHILD_PAGES: "\u30B5\u30D6\u30DA\u30FC\u30B8\u306F\u3042\u308A\u307E\u305B\u3093",
    CHILD_PAGES: "\u30B5\u30D6\u30DA\u30FC\u30B8",
    NO_ATTACHMENTS: "\u30A2\u30BF\u30C3\u30C1\u30E1\u30F3\u30C8\u306F\u3042\u308A\u307E\u305B\u3093",
    ATTACHMENTS: "\u30A2\u30BF\u30C3\u30C1\u30E1\u30F3\u30C8",
    ADD_ATTACHMENT_TO: "\u201C%s\u201D\u306B\u30A2\u30BF\u30C3\u30C1\u30E1\u30F3\u30C8\u3092\u8FFD\u52A0\u3059\u308B",
    ADD_ATTACHMENT_NOTE: "\u3053\u3053\u306B\u65B0\u3057\u3044\u30A2\u30BF\u30C3\u30C1\u30E1\u30F3\u30C8\u3092\u30A2\u30C3\u30D7\u30ED\u30FC\u30C9\u3067\u304D\u307E\u3059",
    UPLOAD: "\u30A2\u30C3\u30D7\u30ED\u30FC\u30C9",
    PROGRESS: "\u30D7\u30ED\u30B0\u30EC\u30B9",
    ERROR_PREFIX: "\u30A8\u30E9\u30FC: ",
    ERROR_NO_ID_PROVIDED: "ID\u304C\u3042\u308A\u307E\u305B\u3093",
    ERROR_PAGE_ID_DUPLICATE: "\u3053\u306EID (%s) \u306E\u30DA\u30FC\u30B8\u306F\u3059\u3067\u306B\u5B58\u5728\u3057\u307E\u3059",
    ERROR_INVALID_ID: "ID\u304C\u4E0D\u6B63\u3067\u3059",
    ERROR_INVALID_DATE: "\u65E5\u4ED8\u304C\u4E0D\u6B63\u3067\u3059",
    ERROR_INVALID_NUMBER: "\u4E0D\u6B63\u306A\u756A\u53F7\u3067\u3059",
    ERROR_INVALID_URL: "URL\u304C\u4E0D\u6B63\u3067\u3059",
    ERROR: "\u30A8\u30E9\u30FC",
    ERROR_OCURRED: "\u30A8\u30E9\u30FC\u304C\u767A\u751F\u3057\u307E\u3057\u305F",
    ERROR_REQUEST_FAILED: "\u30B5\u30FC\u30D0\u30FC\u306B\u30B3\u30DE\u30F3\u30C9\u304C\u9001\u308C\u307E\u305B\u3093\u3067\u3057\u305F\u3001\u30B5\u30FC\u30D0\u30FC\u304C\u6B62\u307E\u3063\u3066\u3044\u308B\u304B\u5FDC\u7B54\u304C\u306A\u3044\u306E\u304B\u3082\u3057\u308C\u307E\u305B\u3093",
    ERROR_SERVER_UNAVAILABLE: "\u30B5\u30FC\u30D0\u30FC\u30A2\u30F3\u30A2\u30D9\u30A4\u30E9\u30D6\u30EB",
    ERROR_SERVER_UNAVAILABLE_MESSAGE: "\u30B5\u30FC\u30D0\u30FC\u304C\u5FDC\u7B54\u3057\u307E\u305B\u3093\u3001\u4E2D\u65AD\u3055\u308C\u305F\u304B\u30AF\u30EA\u30C6\u30A3\u30AB\u30EB\u306A\u30A8\u30E9\u30FC\u304C\u767A\u751F\u3057\u305F\u305F\u305F\u3081\u30AA\u30DA\u30EC\u30FC\u30B7\u30E7\u30F3\u304C\u5B8C\u4E86\u3057\u306A\u304B\u3063\u305F\u305F\u3081\u30EA\u30B9\u30BF\u30FC\u30C8\u304C\u5FC5\u8981\u3067\u3059\u3002",
    MODEL: "\u30E2\u30C7\u30EB",
    ADD_CHILD_PAGE_TO: "\u201C%s\u201D\u306B\u30B5\u30D6\u30DA\u30FC\u30B8\u3092\u8FFD\u52A0\u3059\u308B",
    ADD_CHILD_PAGE_NOTE: "\u3053\u306E\u30DA\u30FC\u30B8\u306B\u30B5\u30D6\u30DA\u30FC\u30B8\u304C\u4F5C\u308C\u307E\u3059\u3002\u6CE8\u610F: \u30E2\u30C7\u30EB\u307E\u305F\u306FID\u306F\u305D\u306E\u5F8C\u7C21\u5358\u306B\u306F\u5909\u66F4\u3067\u304D\u307E\u305B\u3093\u3002",
    CREATE_CHILD_PAGE: "\u30C1\u30E3\u30A4\u30EB\u30C9\u30DA\u30FC\u30B8\u3092\u4F5C\u308B",
    DELETE_ATTACHMENT_PROMPT: "\u672C\u5F53\u306B\u3053\u306E\u6DFB\u4ED8\u3092\u524A\u9664\u3057\u307E\u3059\u304B\uFF1F",
    DELETE_ATTACHMENT_ALT_PROMPT: "\u672C\u5F53\u306B\u3053\u306E\u6DFB\u4ED8\u4EE3\u66FF\u306E\u30E1\u30BF\u30C7\u30FC\u30BF\u3092\u524A\u9664\u3057\u307E\u3059\u304B\uFF1F",
    DELETE_PAGE_PROMPT: "\u3053\u306E\u30DA\u30FC\u30B8\u3092\u672C\u5F53\u306B\u524A\u9664\u3057\u307E\u3059\u304B\uFF1F",
    DELETE_PAGE_ALT_PROMPT: "\u3053\u306E\u4EE3\u66FF\u3092\u672C\u80FD\u306B\u524A\u9664\u3057\u307E\u3059\u304B?",
    DELETE_PAGE_CHILDREN_WARNING: "\u3053\u306E\u30DA\u30FC\u30B8\u306E\u30B5\u30D6\u30DA\u30FC\u30B8\u3082\u524A\u9664\u3055\u308C\u307E\u3059",
    DELETE_RECORD: "\u201C%s\u201D\u3092\u524A\u9664",
    DELETE_ALL_PAGE_ALTS: "\u3059\u3079\u3066\u306E\u4EE3\u66FF\u3068\u6DFB\u4ED8\u3082\u524A\u9664",
    DELETE_ALL_ATTACHMENT_ALTS: "\u3059\u3079\u3066\u306E\u4EE3\u66FF\u3068\u6DFB\u4ED8\u3092\u524A\u9664",
    DELETE_ONLY_PRIMARY_PAGE_ALT: "\u30D7\u30E9\u30A4\u30DE\u30EA\u30EC\u30B3\u30FC\u30C9\u306E\u30E1\u30BF\u30C7\u30FC\u30BF\u306E\u307F\u524A\u9664\u3002\u6DFB\u4ED8\u3001\u4EE3\u66FF\u3001\u30B5\u30D6\u30DA\u30FC\u30B8\u306F\u524A\u9664\u3055\u308C\u307E\u305B\u3093\u3002",
    DELETE_ONLY_PRIMARY_ATTACHMENT_ALT: "\u30D7\u30E9\u30A4\u30DE\u30EA\u30EC\u30B3\u30FC\u30C9\u306E\u30E1\u30BF\u30C7\u30FC\u30BF\u306E\u307F\u524A\u9664",
    DELETE_PRIMARY_ALT_INFO: "\u3053\u306E\u30EC\u30B3\u30FC\u30C9\u306F\u30D7\u30E9\u30A4\u30DE\u30EA\u306E\u4EE3\u66FF\u306E\u305F\u3081\u3001\u5225\u306B\u524A\u9664\u3059\u308B\u3053\u3068\u3082\u3001\u4ED6\u306E\u3059\u3079\u3066\u306E\u30B3\u30F3\u30DD\u30FC\u30CD\u30F3\u30C8\u3068\u3082\u306B\u524A\u9664\u3059\u308B\u3053\u3068\u3082\u3067\u304D\u307E\u3059\u3002",
    CHILD_PAGES_TO_BE_DELETED: "\u30B5\u30D6\u30DA\u30FC\u30B8\u306F\u524A\u9664\u3055\u308C\u307E\u3059:",
    ALTS_TO_BE_DELETED: "\u4EE3\u66FF\u306F\u524A\u9664\u3055\u308C\u307E\u3059:",
    ATTACHMENTS_TO_BE_DELETED: "\u6DFB\u4ED8\u306F\u524A\u9664\u3055\u308C\u307E\u3059:",
    YES_DELETE: "\u306F\u3044\u3001\u524A\u9664\u3057\u307E\u3059",
    NO_CANCEL: "\u3044\u3044\u3048\u3001\u30AD\u30E3\u30F3\u30BB\u30EB\u3057\u307E\u3059",
    SYSTEM_FIELDS: "\u30B7\u30B9\u30C6\u30E0\u30D5\u30A3\u30FC\u30EB\u30C9",
    EDIT_ATTACHMENT_METADATA_OF: "\u6DFB\u4ED8 \u201C%s\u201D\u306E\u30E1\u30BF\u30C7\u30FC\u30BF\u3092\u7DE8\u96C6",
    EDIT_PAGE_NAME: "\u201C%s\u201D\u3092\u7DE8\u96C6",
    SAVE_CHANGES: "\u7DE8\u96C6\u3092\u4FDD\u5B58",
    BROWSE_FS: "\u30D5\u30A1\u30A4\u30EB\u30B7\u30B9\u30C6\u30E0\u3067\u95B2\u89A7\u3059\u308B",
    BROWSE_FS_MAC: "\u30D5\u30A1\u30A4\u30F3\u30C0\u30FC\u3067\u958B\u304F",
    BROWSE_FS_WINDOWS: "\u30A8\u30AF\u30B9\u30D7\u30ED\u30FC\u30E9\u3067\u958B\u304F",
    ERROR_CANNOT_BROWSE_FS: "\u30A8\u30E9\u30FC: \u30D5\u30A1\u30A4\u30EB\u306F\u5B58\u5728\u3057\u307E\u305B\u3093",
    REMOVE_FLOWBLOCK_PROMPT: "\u3053\u306E\u30D6\u30ED\u30C3\u30AF\u3092\u672C\u5F53\u306B\u524A\u9664\u3057\u307E\u3059\u304B\uFF1F",
    ADD_FLOWBLOCK: "\u30D6\u30ED\u30C3\u30AF\u3092\u8FFD\u52A0",
    INVALID_INPUT: "\u4E0D\u6B63\u306A\u5165\u529B",
    UP: "\u30A2\u30C3\u30D7",
    DOWN: "\u30C0\u30A6\u30F3",
    REMOVE: "\u53D6\u308A\u9664\u304F",
    ID: "ID",
    CLOSE: "\u9589\u3058\u308B",
    CANCEL: "\u30AD\u30E3\u30F3\u30BB\u30EB",
    BACK_TO_OVERVIEW: "\u30AA\u30FC\u30D0\u30FC\u30D3\u30E5\u30FC\u306B\u623B\u308B",
    PUBLISH: "\u516C\u958B",
    PUBLISH_NOTE: "\u3053\u3053\u304B\u3089\u73FE\u884C\u306E\u30A6\u30A7\u30D6\u30B5\u30A4\u30C8\u3092\u516C\u958B\u3067\u304D\u307E\u3059\u3002",
    PUBLISH_SERVER: "\u30BF\u30FC\u30B2\u30C3\u30C8\u30B5\u30FC\u30D0\u30FC",
    CURRENTLY_PUBLISHING: "\u516C\u958B \u2026",
    STATE: "\u72B6\u614B",
    PUBLISH_DONE: "\u516C\u958B\u4E2D",
    PUBLISH_STATE_BUILDING: "\u5909\u66F4\u304C\u3092\u30D3\u30EB\u30C9\u3057\u3066\u3044\u307E\u3059...",
    PUBLISH_STATE_PUBLISH: "\u5909\u66F4\u304C\u516C\u958B\u3055\u308C\u307E\u3057\u305F ...",
    PUBLISH_STATE_DONE: "\u516C\u958B\u5B8C\u4E86",
    FIND_FILES: "\u30D5\u30A1\u30A4\u30EB\u3092\u898B\u3064\u3051\u308B",
    FIND_FILES_PLACEHOLDER: "\u30DA\u30FC\u30B8\u540D\u3092\u5165\u529B...",
    ATTACHMENT_TYPE: "\u6DFB\u4ED8\u30BF\u30A4\u30D7",
    URL_SLUG: "URL\u30B9\u30C8\u30EA\u30F3\u30B0",
    TEMPLATE: "\u30C6\u30F3\u30D7\u30EC\u30FC\u30C8",
    HIDE_PAGE: "\u30D8\u30FC\u30B8\u3092\u96A0\u3059",
    HIDE_PAGE_EXPLANATION: "\u3053\u306E\u30DA\u30FC\u30B8\u3092\u975E\u8868\u793A\u306B\u3057\u307E\u3059\u304B?",
    PAGE_IS_DISCOVERABLE: "\u3053\u306E\u30DA\u30FC\u30B8\u306F\u5916\u90E8\u304B\u3089\u898B\u308B\u3053\u3068\u304C\u53EF\u80FD\u3067\u3059",
    PAGE_IS_DISCOVERABLE_EXPLANATION: "\u6709\u52B9\u306B\u3059\u308B\u3053\u3068\u3067\u3001\u30DA\u30FC\u30B8\u306F\u767A\u898B\u53EF\u80FD\u306B\u306A\u308A\u307E\u3059\u3001\u305D\u3046\u3057\u306A\u3044\u5834\u5408\u306F\u30A2\u30AF\u30BB\u30B9\u3059\u308B\u306E\u306B\u305D\u306EURL\u3092\u77E5\u3063\u3066\u3044\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059\u3002",
    REFRESH_BUILD: "\u30D3\u30EB\u30C9\u3092\u66F4\u65B0",
    REFRESH_BUILD_NOTE: "\u3053\u308C\u306F\u3001\u30AD\u30E3\u30C3\u30B7\u30E5\u6E08\u307F\u306E\u30D3\u30EB\u30C9\u7D50\u679C\u3092\u3059\u3079\u3066\u524A\u9664\u3057\u3001\u6700\u521D\u304B\u3089\u306E\u69CB\u7BC9\u3092\u958B\u59CB\u3057\u307E\u3059\u3002\u540C\u671F\u306E\u30A8\u30E9\u30FC\u3084\u30C6\u30F3\u30D7\u30EC\u30FC\u30C8\u5185\u306E\u30DF\u30B9\u306B\u3088\u308A\u51FA\u529B\u304C\u4E0D\u6B63\u306A\u5834\u5408\u306B\u6709\u52B9\u3067\u3059\u3002",
    CURRENTLY_REFRESHING_BUILD: "\u30D3\u30EB\u30C9\u3092\u66F4\u65B0\u4E2D...",
    REFRESHING_BUILD_DONE: "\u30D3\u30EB\u30C9\u3092\u66F4\u65B0\u304C\u5B8C\u4E86\u3057\u307E\u3057\u305F!",
    FAILED_TO_LAUNCH_LEKTOR: "Lektor\u3092\u958B\u3051\u308B\u306E\u306B\u5931\u6557\u3057\u307E\u3057\u305F",
    PROJECT: "\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8",
    CLOSE_PROJECT: "\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u3092\u9589\u3058\u308B",
    OPEN_PROJECT: "\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u3092\u958B\u3051\u308B",
    BROWSE_WEBSITE: "\u30D6\u30E9\u30A6\u30B6\u3067\u958B\u304F",
    VIEW_ADMIN_PANEL: "\u30A2\u30C9\u30DF\u30F3\u30D1\u30CD\u30EB\u3092\u958B\u304F",
    QUIT: "\u7D42\u4E86",
    FAILED_TO_LOAD_PROJECT: "Failed to load the project :(",
    LOADING_PROJECT: "\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u3092\u8AAD\u307F\u8FBC\u3093\u3067\u3044\u307E\u3059 ...",
    INITIALIZING_LEKTOR: "Lektor\u3092\u521D\u671F\u5316\u3057\u3066\u3044\u307E\u3059 ...",
    QUIT_LEKTOR: "Lektor\u3092\u7D42\u4E86\u3059\u308B",
    FILE: "\u30D5\u30A1\u30A4\u30EB",
    UNDO: "\u30A2\u30F3\u30C9\u30A5\u30FC",
    REDO: "\u30EA\u30C9\u30A5\u30FC",
    CUT: "\u30AB\u30C3\u30C8",
    COPY: "\u30B3\u30D4\u30FC",
    PASTE: "\u30DA\u30FC\u30B9\u30C8",
    SELECT_ALL: "\u5168\u3066\u3092\u9078\u629E",
    HELP: "\u30D8\u30EB\u30D7",
    VISIT_WEBSITE: "Website\u3092\u8A2A\u306D\u308B",
    INSTALL_SHELL_COMMAND: "\u30B7\u30A7\u30EB\u30B3\u30DE\u30F3\u30C9\u3092\u30A4\u30F3\u30B9\u30C8\u30FC\u30EB",
    INSTALL_SHELL_COMMAND_QUESTION: "\u300Clektor\u300D\u306E\u30B7\u30A7\u30EB\u30B3\u30DE\u30F3\u30C9\u3092\u30A4\u30F3\u30B9\u30C8\u30FC\u30EB\u3057\u307E\u3059\u304B\uFF1F\u3002\u30A4\u30F3\u30B9\u30C8\u30FC\u30EB\u3059\u308B\u306B\u306F\u7BA1\u7406\u6A29\u9650\u304C\u5FC5\u8981\u3067\u3059\u3002",
    FAILED_TO_INSTALL_SHELL_COMMANDS: "\u30B7\u30A7\u30EB\u30B3\u30DE\u30F3\u30C9\u306E\u30A4\u30F3\u30B9\u30C8\u30FC\u30EB\u306B\u5931\u6557\u3057\u307E\u3057\u305F\u3002",
    INSTALL_SHELL_COMMAND_SUCCESS: "\u30B7\u30A7\u30EB\u30B3\u30DE\u30F3\u30C9\u306E\u30A4\u30F3\u30B9\u30C8\u30FC\u30EB\u306B\u6210\u529F\u3057\u307E\u3057\u305F\u3002",
    OPERATION_SUCCESS: "\u6210\u529F",
    YES: "\u306F\u3044",
    NO: "\u3044\u3044\u3048",
    OK: "\u4E86\u89E3",
    FAILED_TO_OPEN_CONTENT_FILE: "\u30B3\u30F3\u30C6\u30F3\u30C4\u30D5\u30A1\u30A4\u30EB\u3092\u958B\u304F\u306E\u306B\u5931\u6557\u3057\u307E\u3057\u305F",
    OPEN_OTHER_PROJECT: "\u4ED6\u306E\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u3092\u958B\u304F",
    OPEN_OTHER_PROJECT_QUESTION: "\u3053\u306E\u30D5\u30A1\u30A4\u30EB\u3092\u958B\u304F\u306B\u306F\u3001\u4ED6\u306E\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8(%s)\u3092\u958B\u304F\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059\u3002\u73FE\u5728\u306E\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u306F\u9589\u3058\u3089\u308C\u307E\u3059\u3001\u51E6\u7406\u3092\u7D99\u7D9A\u3057\u307E\u3059\u304B?"
  };

  // ../lektor/translations/ko.json
  var ko_default = {
    RETURN_TO_WEBSITE: "\uC0AC\uC774\uD2B8\uB85C \uB418\uB3CC\uC544\uAC00\uAE30",
    UNLOAD_ACTIVE_TAB: "\uC800\uC7A5\uB418\uC9C0 \uC54A\uC740 \uC815\uBCF4\uAC00 \uC788\uC2B5\uB2C8\uB2E4. \uD398\uC774\uC9C0\uB97C \uB5A0\uB098\uC2DC\uACA0\uC2B5\uB2C8\uAE4C?",
    EDIT_METADATA: "\uBA54\uD0C0\uB370\uC774\uD130 \uC218\uC815",
    EDIT: "\uC218\uC815",
    DELETE: "\uC0AD\uC81C",
    PREVIEW: "\uBBF8\uB9AC\uBCF4\uAE30",
    ALTS: "\uB2E4\uB978 \uC5B8\uC5B4",
    PRIMARY_ALT: "\uAE30\uBCF8",
    PRIMARY_OVERLAY: "\uACB9\uCE5C",
    ADD_CHILD_PAGE: "\uD398\uC774\uC9C0 \uCD94\uAC00",
    ADD_ATTACHMENT: "\uCCA8\uBD80 \uD30C\uC77C \uCD94\uAC00",
    ATTACHMENT_ACTIONS: "\uCCA8\uBD80 \uD30C\uC77C \uC791\uC5C5",
    PAGE_ACTIONS: "\uD398\uC774\uC9C0 \uC791\uC5C5",
    NO_CHILD_PAGES: "\uD558\uC704 \uD398\uC774\uC9C0 \uC5C6\uC74C",
    CHILD_PAGES: "\uD558\uC704 \uD398\uC774\uC9C0",
    NO_ATTACHMENTS: "\uCCA8\uBD80 \uD30C\uC77C \uC5C6\uC74C",
    ATTACHMENTS: "\uCCA8\uBD80 \uD30C\uC77C",
    ADD_ATTACHMENT_TO: "\u201C%s\u201C\uC5D0\uC11C \uCCA8\uBD80 \uD30C\uC77C \uCD94\uAC00",
    ADD_ATTACHMENT_NOTE: "\uC5EC\uAE30\uC11C \uC0C8\uB85C\uC6B4 \uCCA8\uBD80 \uD30C\uC77C\uC744 \uC5C5\uB85C\uB4DC\uD560 \uC218 \uC788\uC2B5\uB2C8\uB2E4.",
    UPLOAD: "\uC5C5\uB85C\uB4DC",
    PROGRESS: "\uC9C4\uD589",
    ERROR_PREFIX: "\uC5D0\uB7EC: ",
    ERROR_NO_ID_PROVIDED: "\uC81C\uACF5\uB41C ID\uAC00 \uC5C6\uC2B5\uB2C8\uB2E4.",
    ERROR_PAGE_ID_DUPLICATE: "\uC774 ID (%s) \uD398\uC774\uC9C0\uB294 \uC774\uBBF8 \uC874\uC7AC\uD569\uB2C8\uB2E4.",
    ERROR_INVALID_ID: "\uC798\uBABB\uB41C ID",
    ERROR_INVALID_DATE: "\uC798\uBABB\uB41C \uB0A0\uC9DC",
    ERROR_INVALID_NUMBER: "\uC720\uD6A8\uD55C \uC22B\uC790 \uC544\uB2D8",
    ERROR_INVALID_URL: "\uC720\uD6A8\uD55C URL \uC544\uB2D8",
    ERROR: "\uC5D0\uB7EC",
    ERROR_OCURRED: "\uC624\uB958 \uBC1C\uC0DD",
    ERROR_REQUEST_FAILED: "\uC11C\uBC84\uC5D0 \uBA85\uB839\uC744 \uBCF4\uB0B4\uC9C0 \uBABB\uD588\uC2B5\uB2C8\uB2E4. \uC11C\uBC84\uAC00 \uC911\uC9C0\uB418\uC5C8\uAC70\uB098 \uC751\uB2F5\uD558\uC9C0 \uC54A\uC744 \uC218\uB3C4 \uC788\uB124\uC694?",
    ERROR_SERVER_UNAVAILABLE: "\uC11C\uBC84\uB97C \uC0AC\uC6A9\uD560 \uC218 \uC5C6\uC74C",
    ERROR_SERVER_UNAVAILABLE_MESSAGE: "\uC11C\uBC84\uAC00 \uC751\uB2F5\uD558\uC9C0 \uC54A\uC2B5\uB2C8\uB2E4. \uC11C\uBC84\uAC00 \uC911\uC9C0\uB418\uC5C8\uAC70\uB098, \uC7AC\uC2DC\uC791\uC744 \uD544\uC694\uB85C \uD558\uB294 \uCE58\uBA85\uC801\uC778 \uC624\uB958\uAC00 \uBC1C\uC0DD\uD588\uC2B5\uB2C8\uB2E4.",
    MODEL: "\uBAA8\uB378",
    ADD_CHILD_PAGE_TO: "\u201C%s\u201D\uC5D0 \uD558\uC704 \uD398\uC774\uC9C0 \uCD94\uAC00",
    ADD_CHILD_PAGE_NOTE: "\uC774 \uD398\uC774\uC9C0\uC5D0\uC11C \uC0C8\uB85C\uC6B4 \uD558\uC704 \uD398\uC774\uC9C0\uB97C \uCD94\uAC00\uD560 \uC218 \uC788\uC2B5\uB2C8\uB2E4.  \uC911\uC694, \uB098\uC911\uC5D0 \uBAA8\uB378\uC774\uB098 ID\uB97C \uBCC0\uACBD\uD558\uAE30 \uC5B4\uB835\uC2B5\uB2C8\uB2E4.",
    CREATE_CHILD_PAGE: "\uD558\uC704 \uD398\uC774\uC9C0 \uCD94\uAC00",
    DELETE_ATTACHMENT_PROMPT: "\uC815\uB9D0\uB85C \uCCA8\uBD80 \uD30C\uC77C\uC744 \uC0AD\uC81C\uD558\uC2E4 \uAC74\uAC00\uC694?",
    DELETE_ATTACHMENT_ALT_PROMPT: "\uC815\uB9D0\uB85C \uCCA8\uBD80 \uD30C\uC77C\uC758 \uB2E4\uB978 \uC5B8\uC5B4\uC5D0 \uB300\uD55C \uBA54\uD0C0\uB370\uC774\uD130\uB97C \uC0AD\uC81C\uD558\uC2E4 \uAC74\uAC00\uC694?",
    DELETE_PAGE_PROMPT: "\uC815\uB9D0\uB85C \uC774 \uD398\uC774\uC9C0\uB97C \uC0AD\uC81C\uD558\uC2E4 \uAC74\uAC00\uC694?",
    DELETE_PAGE_ALT_PROMPT: "\uC815\uB9D0\uB85C \uC774 \uB2E4\uB978 \uC5B8\uC5B4\uB97C \uC0AD\uC81C\uD558\uC2E4 \uAC74\uAC00\uC694?",
    DELETE_PAGE_CHILDREN_WARNING: "\uC774 \uD398\uC774\uC9C0\uC758 \uD558\uC704 \uD398\uC774\uC9C0 \uB610\uD55C \uC0AD\uC81C\uB429\uB2C8\uB2E4.",
    DELETE_RECORD: "\u201C%s\u201D \uC0AD\uC81C",
    DELETE_ALL_PAGE_ALTS: "\uB610\uD55C, \uBAA8\uB4E0 \uB2E4\uB978 \uC5B8\uC5B4\uC640 \uCCA8\uBD80 \uD30C\uC77C\uC744 \uC0AD\uC81C\uD569\uB2C8\uB2E4.",
    DELETE_ALL_ATTACHMENT_ALTS: "\uBAA8\uB4E0 \uB2E4\uB978 \uC5B8\uC5B4\uC640 \uCCA8\uBD80 \uD30C\uC77C\uC744 \uC0AD\uC81C\uD569\uB2C8\uB2E4.",
    DELETE_ONLY_PRIMARY_PAGE_ALT: "\uC624\uC9C1 \uC8FC \uB808\uCF54\uB4DC\uB9CC \uC0AD\uC81C\uB429\uB2C8\uB2E4. \uCCA8\uBD80 \uD30C\uC77C, \uB2E4\uB978 \uC5B8\uC5B4, \uD558\uC704 \uD398\uC774\uC9C0\uB294 \uC0AD\uC81C\uB418\uC9C0 \uC54A\uC2B5\uB2C8\uB2E4.",
    DELETE_ONLY_PRIMARY_ATTACHMENT_ALT: "\uC624\uC9C1 \uC8FC \uB808\uCF54\uB4DC\uC758 \uBA54\uD0C0\uB370\uC774\uD130\uB9CC \uC0AD\uC81C\uB429\uB2C8\uB2E4.",
    DELETE_PRIMARY_ALT_INFO: "\uC774 \uB808\uCF54\uB4DC\uB294 \uAE30\uBCF8 \uC5B8\uC5B4\uC774\uAE30 \uB54C\uBB38\uC5D0 \uBCC4\uB3C4\uB85C \uC0AD\uC81C\uD558\uAC70\uB098 \uB2E4\uB978 \uCF58\uD150\uCE20 \uC804\uBD80\uC640 \uAC19\uC774 \uC0AD\uC81C\uD560 \uC218 \uC788\uC2B5\uB2C8\uB2E4.",
    CHILD_PAGES_TO_BE_DELETED: "\uD558\uC704 \uD398\uC774\uC9C0\uB97C \uC0AD\uC81C\uD569\uB2C8\uB2E4:",
    ALTS_TO_BE_DELETED: "\uB2E4\uB978 \uC5B8\uC5B4\uB97C \uC0AD\uC81C\uD569\uB2C8\uB2E4:",
    ATTACHMENTS_TO_BE_DELETED: "\uCCA8\uBD80 \uD30C\uC77C\uC744 \uC0AD\uC81C\uD569\uB2C8\uB2E4:",
    YES_DELETE: "\uB124, \uC0AD\uC81C",
    NO_CANCEL: "\uC544\uB2C8\uC694, \uCDE8\uC18C",
    SYSTEM_FIELDS: "\uC2DC\uC2A4\uD15C \uD544\uB4DC",
    EDIT_ATTACHMENT_METADATA_OF: "\uCCA8\uBD80 \uD30C\uC77C \u201C%s\u201D\uC758 \uBA54\uD0C0\uB370\uC774\uD130 \uC218\uC815",
    EDIT_PAGE_NAME: "\u201C%s\u201D \uC218\uC815",
    SAVE_CHANGES: "\uBCC0\uACBD \uC800\uC7A5",
    BROWSE_FS: "\uD30C\uC77C \uC2DC\uC2A4\uD15C \uAC80\uC0C9",
    BROWSE_FS_MAC: "\uD30C\uC778\uB354\uC5D0\uC11C \uAC80\uC0C9",
    BROWSE_FS_WINDOWS: "\uD0D0\uC0C9\uAE30\uC5D0\uC11C \uC5F4\uAE30",
    ERROR_CANNOT_BROWSE_FS: "\uC624\uB958: \uD30C\uC77C\uC774 \uC874\uC7AC\uD558\uC9C0 \uC54A\uC2B5\uB2C8\uB2E4.",
    REMOVE_FLOWBLOCK_PROMPT: "\uC774 \uBE14\uB85D\uC744 \uC81C\uAC70\uD558\uC2DC\uACA0\uC2B5\uB2C8\uAE4C?",
    ADD_FLOWBLOCK: "\uBE14\uB85D \uCD94\uAC00",
    INVALID_INPUT: "\uC798\uBABB\uB41C \uC785\uB825",
    UP: "\uC704\uB85C",
    DOWN: "\uC544\uB798\uB85C",
    REMOVE: "\uC81C\uAC70",
    ID: "ID",
    CLOSE: "\uB2EB\uAE30",
    CANCEL: "\uCDE8\uC18C",
    BACK_TO_OVERVIEW: "\uAC1C\uC694\uB85C \uB418\uB3CC\uC544\uAC00\uAE30",
    PUBLISH: "\uBC1C\uD589",
    PUBLISH_NOTE: "\uC5EC\uAE30\uC11C \uC6F9\uC0AC\uC774\uD2B8 \uD604\uC7AC \uBC84\uC804\uC744 \uBC1C\uD589\uD560 \uC218 \uC788\uC2B5\uB2C8\uB2E4.",
    PUBLISH_SERVER: "\uB300\uC0C1 \uC11C\uBC84",
    CURRENTLY_PUBLISHING: "\uBC1C\uD589 \uC911 ...",
    STATE: "\uC0C1\uD0DC",
    PUBLISH_DONE: "\uBC1C\uD589\uB428",
    PUBLISH_STATE_BUILDING: "\uBCC0\uACBD \uC0AC\uD56D \uBE4C\uB4DC \uC911 ...",
    PUBLISH_STATE_PUBLISH: "\uBCC0\uACBD \uC0AC\uD56D \uBC1C\uD589 \uC911 ...",
    PUBLISH_STATE_DONE: "\uBC1C\uD589 \uC644\uB8CC.",
    FIND_FILES: "\uD30C\uC77C \uCC3E\uAE30",
    FIND_FILES_PLACEHOLDER: "\uD398\uC774\uC9C0 \uC774\uB984 \uC785\uB825 ...",
    ATTACHMENT_TYPE: "\uCCA8\uBD80 \uD30C\uC77C \uD615\uC2DD",
    URL_SLUG: "URL slug",
    TEMPLATE: "\uD15C\uD50C\uB9BF",
    HIDE_PAGE: "\uD398\uC774\uC9C0 \uC228\uAE30\uAE30",
    HIDE_PAGE_EXPLANATION: "\uC774 \uD398\uC774\uC9C0\uB97C \uC228\uAE38\uAE4C\uC694?",
    PAGE_IS_DISCOVERABLE: "\uD398\uC774\uC9C0 \uB2E4\uC2DC\uBCF4\uC774\uAE30",
    PAGE_IS_DISCOVERABLE_EXPLANATION: "\uC774 \uC124\uC815\uC774 \uD65C\uC131\uD654\uB418\uC5B4\uC788\uC73C\uBA74 \uD398\uC774\uC9C0\uB97C \uD655\uC778\uD560 \uC218 \uC788\uC2B5\uB2C8\uB2E4. \uADF8\uB807\uC9C0 \uC54A\uC73C\uBA74 URL\uB9CC \uD655\uC778\uD560 \uC218 \uC788\uC2B5\uB2C8\uB2E4.",
    REFRESH_BUILD: "\uC0C8\uB85C\uC6B4 \uBE4C\uB4DC",
    REFRESH_BUILD_NOTE: "\uC774 \uD2B8\uB9AC\uAC70\uB294 \uCC98\uC74C\uBD80\uD130 \uB2E4\uC2DC \uBE4C\uB4DC\uD569\uB2C8\uB2E4. \uADF8\uB7EC\uBA74\uC11C \uC774\uC804 \uBE4C\uB4DC\uD558\uBA74\uC11C \uCE90\uC2DC\uB41C \uACB0\uACFC\uB97C \uC0AD\uC81C\uD569\uB2C8\uB2E4. \uC774 \uAE30\uB2A5\uC740 \uB3D9\uAE30\uD654 \uC624\uB958\uB098 \uD15C\uD50C\uB9BF\uC5D0\uC11C \uC798\uBABB\uB41C \uC124\uC815\uC73C\uB85C \uCD9C\uB825\uBB3C\uC5D0 \uBB38\uC81C\uAC00 \uC788\uC744 \uB54C \uC720\uC6A9\uD569\uB2C8\uB2E4.",
    CURRENTLY_REFRESHING_BUILD: "\uC9C0\uAE08 \uC0C8\uB86D\uAC8C \uBE4C\uB4DC \uC911 ...",
    REFRESHING_BUILD_DONE: "\uC0C8\uB85C\uC6B4 \uBE4C\uB4DC\uB97C \uC644\uB8CC\uD558\uC600\uC2B5\uB2C8\uB2E4!",
    FAILED_TO_LAUNCH_LEKTOR: "\uC2E4\uD589\uD558\uC9C0 \uBABB\uD558\uC600\uC2B5\uB2C8\uB2E4.",
    PROJECT: "\uD504\uB85C\uC81D\uD2B8",
    CLOSE_PROJECT: "\uD504\uB85C\uC81D\uD2B8 \uB2EB\uAE30",
    OPEN_PROJECT: "\uD504\uB85C\uC81D\uD2B8 \uC5F4\uAE30",
    BROWSE_WEBSITE: "\uC6F9\uC0AC\uC774\uD2B8 \uCC3E\uC544\uBCF4\uAE30",
    VIEW_ADMIN_PANEL: "\uAD00\uB9AC\uC790 \uD310\uB12C \uBCF4\uAE30",
    QUIT: "\uB098\uAC00\uAE30",
    FAILED_TO_LOAD_PROJECT: "\uD504\uB85C\uC81D\uD2B8\uB97C \uBD88\uB7EC\uC624\uC9C0 \uBABB\uD558\uC600\uC2B5\uB2C8\uB2E4. :(",
    LOADING_PROJECT: "\uD504\uB85C\uC81D\uD2B8 \uBD88\uB7EC\uC624\uB294 \uC911 ...",
    INITIALIZING_LEKTOR: "Lektor \uCD08\uAE30\uD654 \uC911 ...",
    QUIT_LEKTOR: "Lektor \uB098\uAC00\uAE30",
    FILE: "\uD30C\uC77C",
    UNDO: "\uC2E4\uD589 \uCDE8\uC18C",
    REDO: "\uB2E4\uC2DC \uC2E4\uD589",
    CUT: "\uC798\uB77C\uB0B4\uAE30",
    COPY: "\uBCF5\uC0AC",
    PASTE: "\uBD99\uC5EC\uB123\uAE30",
    SELECT_ALL: "\uC804\uBD80 \uC120\uD0DD",
    HELP: "\uB3C4\uC6C0\uB9D0",
    VISIT_WEBSITE: "\uC6F9\uC0AC\uC774\uD2B8 \uBC29\uBB38",
    INSTALL_SHELL_COMMAND: "\uC258 \uCEE4\uBA58\uB4DC \uC124\uCE58",
    INSTALL_SHELL_COMMAND_QUESTION: "'lektor' \uC258 \uBA85\uB839\uC744 \uC124\uCE58\uD558\uC2DC\uACA0\uC2B5\uB2C8\uAE4C? \uAD00\uB9AC\uC790 \uAD8C\uD55C\uC774 \uD544\uC694\uD569\uB2C8\uB2E4.",
    FAILED_TO_INSTALL_SHELL_COMMANDS: "\uC258 \uBA85\uB839\uC744 \uC124\uCE58\uD558\uC9C0 \uBABB\uD558\uC600\uC2B5\uB2C8\uB2E4.",
    INSTALL_SHELL_COMMAND_SUCCESS: "\uC258 \uBA85\uB839\uC774 \uC131\uACF5\uC801\uC73C\uB85C \uC124\uCE58\uB418\uC5C8\uC2B5\uB2C8\uB2E4.",
    OPERATION_SUCCESS: "\uC644\uB8CC",
    YES: "\uC608",
    NO: "\uC544\uB2C8\uC624",
    OK: "OK",
    FAILED_TO_OPEN_CONTENT_FILE: "\uD604\uC7AC \uD30C\uC77C\uC744 \uC5F4\uC9C0 \uBABB\uD558\uC600\uC2B5\uB2C8\uB2E4.",
    OPEN_OTHER_PROJECT: "\uB2E4\uB978 \uD504\uB85C\uC81D\uD2B8 \uC5F4\uAE30",
    OPEN_OTHER_PROJECT_QUESTION: "\uC5F4\uB824\uB294 \uD30C\uC77C\uC740 \uB2E4\uB978 \uD504\uB85C\uC81D\uD2B8 (%s)\uB97C \uC5F4\uC5B4\uC57C\uD569\uB2C8\uB2E4. \uD604\uC7AC \uD504\uB85C\uC81D\uD2B8\uB294 \uC885\uB8CC\uB429\uB2C8\uB2E4. \uACC4\uC18D \uD558\uC2DC\uACA0\uC2B5\uB2C8\uAE4C?"
  };

  // ../lektor/translations/nl.json
  var nl_default = {
    RETURN_TO_WEBSITE: "Terug naar Website",
    UNLOAD_ACTIVE_TAB: "U hebt niet-opgeslagen data, weet je zeker dat je deze pagina wil verlaten?",
    EDIT_METADATA: "Bewerk Metadata",
    EDIT: "Bewerken",
    DELETE: "Verwijderen",
    PREVIEW: "Voorbeeld",
    ALTS: "Alternatieven",
    PRIMARY_ALT: "Primair",
    PRIMARY_OVERLAY: "Overlapt",
    ADD_CHILD_PAGE: "Pagina toevoegen",
    ADD_ATTACHMENT: "Bijlage toevoegen",
    ATTACHMENT_ACTIONS: "Bijlage Acties",
    PAGE_ACTIONS: "Pagina Acties",
    NO_CHILD_PAGES: "Geen Subpagina's",
    CHILD_PAGES: "Subpagina's",
    NO_ATTACHMENTS: "Geen bijlages",
    ATTACHMENTS: "Bijlages",
    ADD_ATTACHMENT_TO: "Voeg bijlage toe aan \u201C%s\u201D",
    ADD_ATTACHMENT_NOTE: "Je kan hier een nieuwe bijlage uploaden.",
    UPLOAD: "Upload",
    PROGRESS: "Vooruitgang",
    ERROR_PREFIX: "Fout: ",
    ERROR_NO_ID_PROVIDED: "Geen ID gegeven.",
    ERROR_PAGE_ID_DUPLICATE: "Een pagina met deze ID (%s) bestaat al.",
    ERROR_INVALID_ID: "Ongeldige ID",
    ERROR_INVALID_DATE: "Ongeldige datum",
    ERROR_INVALID_NUMBER: "Geen geldig getal",
    ERROR_INVALID_URL: "Geen geldige URL",
    ERROR: "Fout",
    ERROR_OCURRED: "Er is een fout opgetreden",
    ERROR_REQUEST_FAILED: "Kon het commando niet naar de server sturen. Misschien is de server gestopt of reageert deze niet?",
    ERROR_SERVER_UNAVAILABLE: "Server niet beschikbaar",
    ERROR_SERVER_UNAVAILABLE_MESSAGE: "De server reageert niet. Deze was gestopt of door een kritieke fout niet langer operationeel en moet worden herstart.",
    MODEL: "Model",
    ADD_CHILD_PAGE_TO: "Voeg Subpagina toe aan \u201C%s\u201D",
    ADD_CHILD_PAGE_NOTE: "U kan hier een nieuwe subpagina toevoegen. Merk op dat het model of de ID achteraf niet makkelijk gewijzigd kunnen worden.",
    CREATE_CHILD_PAGE: "Subpagina Toevoegen",
    DELETE_ATTACHMENT_PROMPT: "Weet je zeker dat je deze bijlage wilt verwijderen?",
    DELETE_ATTACHMENT_ALT_PROMPT: "Weet je zeker dat je de metadata van dit bijlage alternatief wilt verwijderen?",
    DELETE_PAGE_PROMPT: "Weet je zeker dat je deze pagina wilt verwijderen?",
    DELETE_PAGE_ALT_PROMPT: "Weet je zeker dat je dit alternatief wilt verwijderen?",
    DELETE_PAGE_CHILDREN_WARNING: "Dit zal ook de subpagina's van deze pagina verwijderen.",
    DELETE_RECORD: "Verwijder \u201C%s\u201D",
    DELETE_ALL_PAGE_ALTS: "Verwijder ook de alternatieven en bijlages.",
    DELETE_ALL_ATTACHMENT_ALTS: "Verwijder alle alternatieven en bijlages.",
    DELETE_ONLY_PRIMARY_PAGE_ALT: "Verwijder enkel de primaire record. Bijlages, alternatieven en subpagina's zullen niet verwijderd worden.",
    DELETE_ONLY_PRIMARY_ATTACHMENT_ALT: "Verwijder enkel de metadata van de primaire record.",
    DELETE_PRIMARY_ALT_INFO: "Omdat dit record een primair alternatief is, kan het apart verwijderd worden of samen met alle andere inhoud.",
    CHILD_PAGES_TO_BE_DELETED: "Subpagina's die verwijderd zullen worden:",
    ALTS_TO_BE_DELETED: "Alternatieven die verwijderd zullen worden:",
    ATTACHMENTS_TO_BE_DELETED: "Bijlages die verwijderd zullen worden:",
    YES_DELETE: "Ja, verwijder",
    NO_CANCEL: "Nee, annuleer",
    SYSTEM_FIELDS: "Systeem Velden",
    EDIT_ATTACHMENT_METADATA_OF: "Bewerk Metadata van Bijlage \u201C%s\u201D",
    EDIT_PAGE_NAME: "Bewerk \u201C%s\u201D",
    SAVE_CHANGES: "Wijzigingen opslaan",
    BROWSE_FS: "Blader in Bestandsysteem",
    BROWSE_FS_MAC: "Bekijk in Finder",
    BROWSE_FS_WINDOWS: "Open in Explorer",
    ERROR_CANNOT_BROWSE_FS: "Fout: Bestand bestaat nog niet.",
    REMOVE_FLOWBLOCK_PROMPT: "Weet je zeker dat je dit blok wilt verwijderen?",
    ADD_FLOWBLOCK: "Blok Toevoegen",
    INVALID_INPUT: "Ongeldige Invoer",
    UP: "Omhoog",
    DOWN: "Omlaag",
    REMOVE: "Verwijderen",
    ID: "ID",
    CLOSE: "Sluiten",
    CANCEL: "Annuleren",
    BACK_TO_OVERVIEW: "Terug naar Overzicht",
    PUBLISH: "Publiceren",
    PUBLISH_NOTE: "Van hieruit kan je de huidige versie van je website publiceren.",
    PUBLISH_SERVER: "Doelserver",
    CURRENTLY_PUBLISHING: "Publiceren \u2026",
    STATE: "Status",
    PUBLISH_DONE: "Gepubliceerd",
    PUBLISH_STATE_BUILDING: "De wijzigingen worden gebouwd ...",
    PUBLISH_STATE_PUBLISH: "De wijzigingen worden gepuliceerd ...",
    PUBLISH_STATE_DONE: "Klaar met publiceren.",
    FIND_FILES: "Zoek bestanden",
    FIND_FILES_PLACEHOLDER: "Vul paginanaam in ...",
    ATTACHMENT_TYPE: "Type Bijlage",
    URL_SLUG: "URL slug",
    TEMPLATE: "Template",
    HIDE_PAGE: "Verberg pagina",
    HIDE_PAGE_EXPLANATION: "Moet deze pagina verborgen zijn?",
    PAGE_IS_DISCOVERABLE: "Deze pagina is vindbaar",
    PAGE_IS_DISCOVERABLE_EXPLANATION: "Als dit ingeschakeld is, is de pagina vindbaar. Anders moet de URL bekend zijn.",
    REFRESH_BUILD: "Ververs Build",
    REFRESH_BUILD_NOTE: "Dit verwijdert alle buildresultaten in de cache en veroorzaakt een volledige rebuild. Dit is nuttig in bepaalde situaties waar synchonisatiefouten of fouten in de templates de uitvoer corrupt hebben gemaakt.",
    CURRENTLY_REFRESHING_BUILD: "Bezig met verversen van de build ...",
    REFRESHING_BUILD_DONE: "Klaar met de build te verversen!",
    FAILED_TO_LAUNCH_LEKTOR: "Het starten van Lektor is mislukt.",
    PROJECT: "Project",
    CLOSE_PROJECT: "Sluit Project",
    OPEN_PROJECT: "Open Project",
    BROWSE_WEBSITE: "Bekijk Website",
    VIEW_ADMIN_PANEL: "Bekijk Admin Paneel",
    QUIT: "Afsluiten",
    FAILED_TO_LOAD_PROJECT: "Laden van het project is mislukt :(",
    LOADING_PROJECT: "Project laden ...",
    INITIALIZING_LEKTOR: "Lektor Initializeren ...",
    QUIT_LEKTOR: "Lektor Afsluiten",
    FILE: "Bestand",
    UNDO: "Ongedaan maken",
    REDO: "Opnieuw",
    CUT: "Knippen",
    COPY: "Kopi\xEBren",
    PASTE: "Plakken",
    SELECT_ALL: "Selecteer alles",
    HELP: "Help",
    VISIT_WEBSITE: "Bezoek Website",
    INSTALL_SHELL_COMMAND: "Installeer Shell Commando",
    INSTALL_SHELL_COMMAND_QUESTION: "Weet je zeker dat je het 'lektor' shell commando wil installeren? Dit vereist admin rechten.",
    FAILED_TO_INSTALL_SHELL_COMMANDS: "Installeren van de shell commando's mislukt.",
    INSTALL_SHELL_COMMAND_SUCCESS: "Shell commando's zijn ge\xEFnstalleerd.",
    OPERATION_SUCCESS: "Success",
    YES: "Ja",
    NO: "Nee",
    OK: "OK",
    FAILED_TO_OPEN_CONTENT_FILE: "Kon het inhoudbestand niet openen",
    OPEN_OTHER_PROJECT: "Open ander Project",
    OPEN_OTHER_PROJECT_QUESTION: "Om deze file te openen moet een ander project geopend worden (%s). Het huidige project zal gesloten worden. Wil je verdergaan?"
  };

  // ../lektor/translations/pl.json
  var pl_default = {
    RETURN_TO_WEBSITE: "Wr\xF3\u0107 do strony",
    UNLOAD_ACTIVE_TAB: "Masz niezapisane dane, czy na pewno chcesz opu\u015Bci\u0107 t\u0105 stron\u0119 ?",
    EDIT_METADATA: "Edytuj dane",
    EDIT: "Edytuj",
    DELETE: "Usu\u0144",
    PREVIEW: "Podgl\u0105d",
    ALTS: "Wersje j\u0119zykowe",
    PRIMARY_ALT: "Podstawowy j\u0119zyk",
    PRIMARY_OVERLAY: "(Na\u0142o\u017Cony)",
    ADD_CHILD_PAGE: "Dodaj podstron\u0119",
    ADD_ATTACHMENT: "Dodaj za\u0142\u0105cznik",
    ATTACHMENT_ACTIONS: "Operacje na za\u0142\u0105cznikach",
    PAGE_ACTIONS: "Operacje na stronach",
    NO_CHILD_PAGES: "Brak podstron",
    CHILD_PAGES: "Podstrony",
    NO_ATTACHMENTS: "Brak za\u0142\u0105cznik\xF3w",
    ATTACHMENTS: "Za\u0142\u0105czniki",
    ADD_ATTACHMENT_TO: "Dodaj za\u0142\u0105cznik do \u201C%s\u201D",
    ADD_ATTACHMENT_NOTE: "Mo\u017Cesz wgra\u0107 nowy za\u0142\u0105cznik tutaj.",
    UPLOAD: "Wgraj",
    PROGRESS: "Post\u0119p",
    ERROR_PREFIX: "B\u0142\u0105d: ",
    ERROR_NO_ID_PROVIDED: "Nie podano ID.",
    ERROR_PAGE_ID_DUPLICATE: "Strona z ID: (%s) ju\u017C istnieje.",
    ERROR_INVALID_ID: "B\u0142\u0119dny ID",
    ERROR_INVALID_DATE: "B\u0142\u0119dna data",
    ERROR_INVALID_NUMBER: "B\u0142\u0119dny numer",
    ERROR_INVALID_URL: "B\u0142\u0119dny adres URL",
    ERROR: "B\u0142\u0105d",
    ERROR_OCURRED: "Wyst\u0105pi\u0142 b\u0142\u0105d",
    ERROR_REQUEST_FAILED: "Nie mo\u017Cna wys\u0142a\u0107 \u017C\u0105dania do serwera. Mo\u017Ce zosta\u0142 zatrzymany, albo nie odpowiada?",
    ERROR_SERVER_UNAVAILABLE: "Serwer niedost\u0119pny",
    ERROR_SERVER_UNAVAILABLE_MESSAGE: "Serwer nie odpowiada. Zosta\u0142 zatrzymany, albo wyst\u0105pi\u0142 b\u0142\u0105d krytyczny, kt\xF3ry spowodowa\u0142 brak dzia\u0142ania. By\u0107 mo\u017Ce musi zosta\u0107 zrestartowany.",
    MODEL: "Model",
    ADD_CHILD_PAGE_TO: "Dodaj podstron\u0119 do \u201C%s\u201D",
    ADD_CHILD_PAGE_NOTE: "Mo\u017Cesz doda\u0107 podstron\u0119 tutaj. Pami\u0119taj, \u017Ce Model oraz ID nie mog\u0105 by\u0107 zmienione p\xF3\u017Aniej w prosty spos\xF3b.",
    CREATE_CHILD_PAGE: "Dodaj podstron\u0119",
    DELETE_ATTACHMENT_PROMPT: "Czy na pewno chcesz usun\u0105\u0107 ten za\u0142\u0105cznik?",
    DELETE_ATTACHMENT_ALT_PROMPT: "Czy na pewno chcesz usun\u0105\u0107 dane za\u0142\u0105cznika dla tego j\u0119zyka?",
    DELETE_PAGE_PROMPT: "Czy na pewno chcesz usun\u0105\u0107 t\u0105 stron\u0119?",
    DELETE_PAGE_ALT_PROMPT: "Czy na pewno chcesz usun\u0105\u0107 ten j\u0119zyk?",
    DELETE_PAGE_CHILDREN_WARNING: "To spowoduje tak\u017Ce usuni\u0119cie wszystkich podstron.",
    DELETE_RECORD: "Skasuj \u201C%s\u201D",
    DELETE_ALL_PAGE_ALTS: "Usu\u0144 r\xF3wnie\u017C wszystkie wersje j\u0119zykowe oraz za\u0142\u0105czniki.",
    DELETE_ALL_ATTACHMENT_ALTS: "Usu\u0144 wszystkie wersje j\u0119zykowe oraz za\u0142\u0105czony plik.",
    DELETE_ONLY_PRIMARY_PAGE_ALT: "Usu\u0144 tylko podstawowy rekord.  Za\u0142\u0105czniki, wersje j\u0119zykowe oraz podstrony nie b\u0119d\u0119 usuni\u0119te.",
    DELETE_ONLY_PRIMARY_ATTACHMENT_ALT: "Usu\u0144 tylko dane podstawowego rekordu.",
    DELETE_PRIMARY_ALT_INFO: "Poniewa\u017C ten rekord zawiera podstawow\u0105 wersj\u0119 j\u0119zykow\u0105 mo\u017Ce zosta\u0107 usuni\u0119ty osobno jak i razem z pozosta\u0142\u0105 zawarto\u015Bci\u0105.",
    CHILD_PAGES_TO_BE_DELETED: "Podstrony, kt\xF3re zostan\u0105 usuni\u0119te:",
    ALTS_TO_BE_DELETED: "Wersje j\u0119zykowe, kt\xF3re zostan\u0105 usuni\u0119te:",
    ATTACHMENTS_TO_BE_DELETED: "Za\u0142\u0105czniki, kt\xF3re zostan\u0105 usuni\u0119te:",
    YES_DELETE: "Tak, usu\u0144",
    NO_CANCEL: "Nie, anuluj",
    SYSTEM_FIELDS: "Pola Systemowe",
    EDIT_ATTACHMENT_METADATA_OF: "Edytuj dane za\u0142\u0105cznika \u201C%s\u201D",
    EDIT_PAGE_NAME: "Edytuj \u201C%s\u201D",
    SAVE_CHANGES: "Zapisz zmiany",
    BROWSE_FS: "Otw\xF3rz w przegl\u0105darce plik\xF3w",
    BROWSE_FS_MAC: "Otw\xF3rz w Finderze",
    BROWSE_FS_WINDOWS: "Otw\xF3rz w eksploratorze plik\xF3w",
    ERROR_CANNOT_BROWSE_FS: "B\u0142\u0105d: Plik jeszcze nie istnieje.",
    REMOVE_FLOWBLOCK_PROMPT: "Czy na pewno chcesz usun\u0105\u0107 ten blok ?",
    ADD_FLOWBLOCK: "Dodaj blok",
    INVALID_INPUT: "B\u0142\u0119dne dane wej\u015Bciowe",
    UP: "W g\xF3r\u0119",
    DOWN: "W d\xF3\u0142",
    REMOVE: "Usu\u0144",
    ID: "ID",
    CLOSE: "Zamknij",
    CANCEL: "Anuluj",
    BACK_TO_OVERVIEW: "Powr\xF3t do przegl\u0105du",
    PUBLISH: "Publikuj",
    PUBLISH_NOTE: "St\u0105d mo\u017Cesz opublikowa\u0107 aktualn\u0105 wersj\u0119 strony.",
    PUBLISH_SERVER: "Serwer Docelowy",
    CURRENTLY_PUBLISHING: "Publikowanie \u2026",
    STATE: "Status",
    PUBLISH_DONE: "Opublikowany",
    PUBLISH_STATE_BUILDING: "Zmiany s\u0105 wprowadzane ...",
    PUBLISH_STATE_PUBLISH: "Zmiany s\u0105 publikowane ...",
    PUBLISH_STATE_DONE: "Publikowanie zako\u0144czone.",
    FIND_FILES: "Znad\u017A Pliki",
    FIND_FILES_PLACEHOLDER: "Podaj nazw\u0119 strony ...",
    ATTACHMENT_TYPE: "Typ za\u0142\u0105cznika",
    URL_SLUG: "Przyjazny URL",
    TEMPLATE: "Szablon",
    HIDE_PAGE: "Ukryj stron\u0119",
    HIDE_PAGE_EXPLANATION: "Czy ta strona powinna by\u0107 ukryta?",
    PAGE_IS_DISCOVERABLE: "Strona jest 'widoczna'",
    PAGE_IS_DISCOVERABLE_EXPLANATION: "Je\u015Bli w\u0142\u0105czone, strona jest widoczna na li\u015Bcie stron oraz w listingu dla danego rekordu. W przeciwnym razie, adres URL musi by\u0107 znany",
    REFRESH_BUILD: "Zbuduj od\u015Bwie\u017Con\u0105 wersj\u0119",
    REFRESH_BUILD_NOTE: "To spowoduje usuni\u0119cie pami\u0119ci podr\u0119cznej i stworzenie wersji ko\u0144cowej od nowa. Ta opcja jest przydatna w sytuacjach, gdzie b\u0142\u0119dy albo pomy\u0142ki synchronizacji w szablonach spowodowa\u0142y uszkodzenie danych wyj\u015Bciowych.",
    CURRENTLY_REFRESHING_BUILD: "Aktualnie od\u015Bwie\u017Cam pakiet wyj\u015Bciowy ...",
    REFRESHING_BUILD_DONE: "Zako\u0144czono od\u015Bwie\u017Canie pakietu wyj\u015Bciowego!",
    FAILED_TO_LAUNCH_LEKTOR: "Nie uda\u0142o si\u0119 uruchomi\u0107 Lektor.",
    PROJECT: "Projekt",
    CLOSE_PROJECT: "Zamknij projekt",
    OPEN_PROJECT: "Otw\xF3rz projekt",
    BROWSE_WEBSITE: "Przegl\u0105daj stron\u0119",
    VIEW_ADMIN_PANEL: "Przejd\u017A do panelu administracyjnego",
    QUIT: "Wyjd\u017A",
    FAILED_TO_LOAD_PROJECT: "Nie uda\u0142o si\u0119 za\u0142adowa\u0107 projektu :(",
    LOADING_PROJECT: "\u0141adowanie projektu ...",
    INITIALIZING_LEKTOR: "Inicjalizacja Lektor ...",
    QUIT_LEKTOR: "Opu\u015B\u0107 Lektor",
    FILE: "Plik",
    UNDO: "Cofnij",
    REDO: "Pon\xF3w",
    CUT: "Wytnij",
    COPY: "Kopiuj",
    PASTE: "Wklej",
    SELECT_ALL: "Zaznacz wszystko",
    HELP: "Pomoc",
    VISIT_WEBSITE: "Odwied\u017A stron\u0119",
    INSTALL_SHELL_COMMAND: "Zainstaluj komend\u0119 pow\u0142oki",
    INSTALL_SHELL_COMMAND_QUESTION: "Czy chcesz zainstalowa\u0107 komend\u0119 'lektor' w pow\u0142oce systemowej? Wygamane s\u0105 uprawnienia administracyjne.",
    FAILED_TO_INSTALL_SHELL_COMMANDS: "Nie uda\u0142o si\u0119 zainstalowa\u0107 komend w pow\u0142oce systemowej.",
    INSTALL_SHELL_COMMAND_SUCCESS: "Komenda zosta\u0142a pomy\u015Blnie zainstalowana w pow\u0142oce systemowej.",
    OPERATION_SUCCESS: "Sukces",
    YES: "Tak",
    NO: "Nie",
    OK: "OK",
    FAILED_TO_OPEN_CONTENT_FILE: "Nie uda\u0142o si\u0119 otworzy\u0107 zawarto\u015Bci pliku",
    OPEN_OTHER_PROJECT: "Otw\xF3rz inny projekt",
    OPEN_OTHER_PROJECT_QUESTION: "Otwarcie tego pliku wymaga otwarcia kolejnego projektu (%s). Obecny projekt zostanie zamkni\u0119ty. Czy chcesz kontynuowa\u0107?"
  };

  // ../lektor/translations/pt.json
  var pt_default = {
    RETURN_TO_WEBSITE: "Retornar ao Site",
    UNLOAD_ACTIVE_TAB: "Voc\xEA tem modifica\xE7\xF5es n\xE3o salvas, tem certeza que deseja deixar a p\xE1gina?",
    EDIT_METADATA: "Editar Metadado",
    EDIT: "Editar",
    DELETE: "Deletar",
    PREVIEW: "Pr\xE9-visualizar",
    ALTS: "Alternativas",
    PRIMARY_ALT: "Prim\xE1ria",
    PRIMARY_OVERLAY: "Revestida",
    ADD_CHILD_PAGE: "Add P\xE1gina",
    ADD_ATTACHMENT: "Add Anexo",
    ATTACHMENT_ACTIONS: "A\xE7\xF5es de Anexos",
    PAGE_ACTIONS: "A\xE7\xF5es de P\xE1ginas",
    NO_CHILD_PAGES: "Sem sub-p\xE1ginas",
    CHILD_PAGES: "Sub-p\xE1ginas",
    NO_ATTACHMENTS: "Sem anexos",
    ATTACHMENTS: "Anexos",
    ADD_ATTACHMENT_TO: "Add anexo para \u201C%s\u201D",
    ADD_ATTACHMENT_NOTE: "Voc\xEA pode subir um novo anexo aqui.",
    UPLOAD: "Upload",
    PROGRESS: "Progresso",
    ERROR_PREFIX: "Erro: ",
    ERROR_NO_ID_PROVIDED: "Nenhuma ID fornecida.",
    ERROR_PAGE_ID_DUPLICATE: "Uma p\xE1gina com este ID (%s) j\xE1 existe.",
    ERROR_INVALID_ID: "ID inv\xE1lido",
    ERROR_INVALID_DATE: "Data inv\xE1lida",
    ERROR_INVALID_NUMBER: "N\xE3o \xE9 um n\xFAmero v\xE1lido",
    ERROR_INVALID_URL: "N\xE3o \xE9 uma URL v\xE1lida",
    ERROR: "Erro",
    ERROR_OCURRED: "Ocorreu um Erro",
    ERROR_REQUEST_FAILED: "N\xE3o foi poss\xEDvel enviar o comando ao servidor.  Talvez o servidor foi parado ou n\xE3o est\xE1 respondendo",
    ERROR_SERVER_UNAVAILABLE: "Servidor N\xE3o Dispon\xEDvel",
    ERROR_SERVER_UNAVAILABLE_MESSAGE: "O servidor n\xE3o est\xE1 respondendo.  Ou foi parado ou um erro s\xE9rio o fez parar e precisa ser reiniciado.",
    MODEL: "Modelo",
    ADD_CHILD_PAGE_TO: "Add Sub-p\xE1gina para \u201C%s\u201D",
    ADD_CHILD_PAGE_NOTE: "Voc\xEA pode adicionar uma nova sub-p\xE1gina aqui.  Note que o modelo ou o ID n\xE3o podem ser mudados facilmente depois.",
    CREATE_CHILD_PAGE: "Add P\xE1gina Filha",
    DELETE_ATTACHMENT_PROMPT: "Voc\xEA tem certeza que deseja deletar este anexo?",
    DELETE_ATTACHMENT_ALT_PROMPT: "Voc\xEA tem certeza que deseja deletar o metadado deste anexo alternativo?",
    DELETE_PAGE_PROMPT: "Voc\xEA tem certeza que deseja deletar esta p\xE1gina",
    DELETE_PAGE_ALT_PROMPT: "Voc\xEA tem certeza que deseja deletar esta alternativa?",
    DELETE_PAGE_CHILDREN_WARNING: "Isto tamb\xE9m deletar\xE1 as sub-p\xE1ginas filhas desta p\xE1gina.",
    DELETE_RECORD: "Deletar \u201C%s\u201D",
    DELETE_ALL_PAGE_ALTS: "Tamb\xE9m delete todas alternativas e arquivos de anexo.",
    DELETE_ALL_ATTACHMENT_ALTS: "Delete todas alternativas e arquivo de anexo",
    DELETE_ONLY_PRIMARY_PAGE_ALT: "Delete somente o registro prim\xE1rio.  Anexos, alternativas e sub-p\xE1ginas n\xE3o ser\xE3o deletadas.",
    DELETE_ONLY_PRIMARY_ATTACHMENT_ALT: "Delete somente o Metadado do registro prim\xE1rio.",
    DELETE_PRIMARY_ALT_INFO: "Porque este registro \xE9 uma alternativa prim\xE1ria ele pode ser deletado separadamente ou junto com todos os outros conte\xFAdos.",
    CHILD_PAGES_TO_BE_DELETED: "Sub-p\xE1ginas que ser\xE3o deletadas:",
    ALTS_TO_BE_DELETED: "Alternativas que ser\xE3o deletadas:",
    ATTACHMENTS_TO_BE_DELETED: "Anexos que ser\xE3o deletados:",
    YES_DELETE: "Sim, deletar",
    NO_CANCEL: "N\xE3o, cancelar",
    SYSTEM_FIELDS: "Campos do Sistema",
    EDIT_ATTACHMENT_METADATA_OF: "Editar Metadado do Anexo \u201C%s\u201D",
    EDIT_PAGE_NAME: "Editar \u201C%s\u201D",
    SAVE_CHANGES: "Salvar Altera\xE7\xF5es",
    BROWSE_FS: "Navegar no Sistema",
    BROWSE_FS_MAC: "Mostrar no Finder",
    BROWSE_FS_WINDOWS: "Abrir no Explorer",
    ERROR_CANNOT_BROWSE_FS: "Erro: Arquivo n\xE3o existe ainda.",
    REMOVE_FLOWBLOCK_PROMPT: "Voc\xEA realmente deseja remover este bloco?",
    ADD_FLOWBLOCK: "Add Bloco",
    INVALID_INPUT: "Entrada Inv\xE1lida",
    UP: "Cima",
    DOWN: "Baixo",
    REMOVE: "Remover",
    ID: "ID",
    CLOSE: "Fechar",
    CANCEL: "Cancelar",
    BACK_TO_OVERVIEW: "Voltar para Overview",
    PUBLISH: "Publicar",
    PUBLISH_NOTE: "Daqui voc\xEA pode publicar a vers\xE3o atual do website.",
    PUBLISH_SERVER: "Servidor Alvo",
    CURRENTLY_PUBLISHING: "Publicando \u2026",
    STATE: "Status",
    PUBLISH_DONE: "Publicado",
    PUBLISH_STATE_BUILDING: "Mudan\xE7as est\xE3o sendo constru\xEDdas ...",
    PUBLISH_STATE_PUBLISH: "Mudan\xE7as est\xE3o sendo publicadas ...",
    PUBLISH_STATE_DONE: "Publica\xE7\xE3o feita.",
    FIND_FILES: "Procurar Arquivos",
    FIND_FILES_PLACEHOLDER: "Entrar com o nome da p\xE1gina ...",
    ATTACHMENT_TYPE: "Tipo de anexo",
    URL_SLUG: "URL slug",
    TEMPLATE: "Template",
    HIDE_PAGE: "Esconder p\xE1gina",
    HIDE_PAGE_EXPLANATION: "Isto deveria ser escondido?",
    PAGE_IS_DISCOVERABLE: "P\xE1gina \xE9 descobr\xEDvel",
    PAGE_IS_DISCOVERABLE_EXPLANATION: "Se isto estiver ativo a p\xE1gina pode ser descoberta, caso contr\xE1rio ser\xE1 necess\xE1rio saber a URL.",
    REFRESH_BUILD: "Atualizar Build",
    REFRESH_BUILD_NOTE: "Isto deleta todos os resultados de builds em cache ativando uma build do zero.  Isto \xE9 \xFAtil em situa\xE7\xF5es onde erros de sincroniza\xE7\xE3o ou erros no template causam sa\xEDdas corrompidas.",
    CURRENTLY_REFRESHING_BUILD: "No momento atualizando a build ...",
    REFRESHING_BUILD_DONE: "Atualiza\xE7\xE3o da build feita!",
    FAILED_TO_LAUNCH_LEKTOR: "Falha ao iniciar o Lektor.",
    PROJECT: "Projeto",
    CLOSE_PROJECT: "Fechar Projeto",
    OPEN_PROJECT: "Abrir Projeto",
    BROWSE_WEBSITE: "Navegar no Website",
    VIEW_ADMIN_PANEL: "Ver Admin Painel",
    QUIT: "Sair",
    FAILED_TO_LOAD_PROJECT: "Falha ao carregar o projeto :(",
    LOADING_PROJECT: "Carregando o projeto ...",
    INITIALIZING_LEKTOR: "Iniciando o Lektor ...",
    QUIT_LEKTOR: "Sair do Lektor",
    FILE: "Arquivo",
    UNDO: "Desfazer",
    REDO: "Refazer",
    CUT: "Cortar",
    COPY: "Copiar",
    PASTE: "Colar",
    SELECT_ALL: "Selecionar Todos",
    HELP: "Ajuda",
    VISIT_WEBSITE: "Visitar Website",
    INSTALL_SHELL_COMMAND: "Instalar Shell Command",
    INSTALL_SHELL_COMMAND_QUESTION: "Voc\xEA deseja instalar 'lektor' shell command? Isto requer permiss\xF5es de administrador.",
    FAILED_TO_INSTALL_SHELL_COMMANDS: "Falha ao instalar shell commands.",
    INSTALL_SHELL_COMMAND_SUCCESS: "Shell command foi instalado com sucesso.",
    OPERATION_SUCCESS: "Sucesso",
    YES: "Sim",
    NO: "N\xE3o",
    OK: "OK",
    FAILED_TO_OPEN_CONTENT_FILE: "Falha ao abrir o conte\xFAdo do arquivo",
    OPEN_OTHER_PROJECT: "Abrir outro Projeto",
    OPEN_OTHER_PROJECT_QUESTION: "Abrir este arquivo requer abrir outro projeto (%s). O projeto atual ser\xE1 fechado. Deseja continuar?"
  };

  // ../lektor/translations/ru.json
  var ru_default = {
    RETURN_TO_WEBSITE: "\u0412\u0435\u0440\u043D\u0443\u0442\u044C\u0441\u044F \u043D\u0430 \u0432\u0435\u0431\u0441\u0430\u0439\u0442",
    UNLOAD_ACTIVE_TAB: "\u0412\u0430\u0448\u0438 \u0438\u0437\u043C\u0435\u043D\u0435\u043D\u0438\u044F \u043D\u0435 \u0441\u043E\u0445\u0440\u0430\u043D\u0435\u043D\u044B. \u0412\u044B \u0443\u0432\u0435\u0440\u0435\u043D\u044B, \u0447\u0442\u043E \u0445\u043E\u0442\u0438\u0442\u0435 \u043F\u043E\u043A\u0438\u043D\u0443\u0442\u044C \u0441\u0442\u0440\u0430\u043D\u0438\u0446\u0443?",
    EDIT_METADATA: "\u0420\u0435\u0434\u0430\u043A\u0442\u0438\u0440\u043E\u0432\u0430\u0442\u044C \u043C\u0435\u0442\u0430\u0434\u0430\u043D\u043D\u044B\u0435",
    EDIT: "\u0420\u0435\u0434\u0430\u043A\u0442\u0438\u0440\u043E\u0432\u0430\u0442\u044C",
    DELETE: "\u0423\u0434\u0430\u043B\u0438\u0442\u044C",
    PREVIEW: "\u041F\u0440\u0435\u0434\u043F\u0440\u043E\u0441\u043C\u043E\u0442\u0440",
    ALTS: "\u0412\u0430\u0440\u0438\u0430\u043D\u0442\u044B",
    PRIMARY_ALT: "\u041E\u0441\u043D\u043E\u0432\u043D\u043E\u0439",
    PRIMARY_OVERLAY: "\u041E\u0432\u0435\u0440\u043B\u0435\u0439",
    ADD_CHILD_PAGE: "\u0414\u043E\u0431\u0430\u0432\u0438\u0442\u044C \u0441\u0442\u0440\u0430\u043D\u0438\u0446\u0443",
    ADD_ATTACHMENT: "\u041F\u0440\u0438\u043B\u043E\u0436\u0438\u0442\u044C \u0444\u0430\u0439\u043B",
    ATTACHMENT_ACTIONS: "\u0414\u0435\u0439\u0441\u0442\u0432\u0438\u044F \u0441 \u0432\u043B\u043E\u0436\u0435\u043D\u0438\u0435\u043C",
    PAGE_ACTIONS: "\u0414\u0435\u0439\u0441\u0442\u0432\u0438\u044F \u0441\u043E \u0441\u0442\u0440\u0430\u043D\u0438\u0446\u0435\u0439",
    NO_CHILD_PAGES: "\u0412\u043B\u043E\u0436\u0435\u043D\u043D\u044B\u0435 \u0441\u0442\u0440\u0430\u043D\u0438\u0446\u044B \u043E\u0442\u0441\u0443\u0442\u0441\u0442\u0432\u0443\u044E\u0442",
    CHILD_PAGES: "\u0412\u043B\u043E\u0436\u0435\u043D\u043D\u044B\u0435 \u0441\u0442\u0440\u0430\u043D\u0438\u0446\u044B",
    NO_ATTACHMENTS: "\u0412\u043B\u043E\u0436\u0435\u043D\u043D\u044B\u0435 \u0444\u0430\u0439\u043B\u044B \u043E\u0442\u0441\u0443\u0442\u0441\u0442\u0432\u0443\u044E\u0442",
    ATTACHMENTS: "\u0412\u043B\u043E\u0436\u0435\u043D\u043D\u044B\u0435 \u0444\u0430\u0439\u043B\u044B",
    ADD_ATTACHMENT_TO: "\u041F\u0440\u0438\u043B\u043E\u0436\u0438\u0442\u044C \u0444\u0430\u0439\u043B \u043A \u0441\u0442\u0440\u0430\u043D\u0438\u0446\u0435 \u201C%s\u201D",
    ADD_ATTACHMENT_NOTE: "\u0417\u0434\u0435\u0441\u044C \u0432\u044B \u043C\u043E\u0436\u0435\u0442\u0435 \u0437\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u044C \u043D\u043E\u0432\u044B\u0439 \u0444\u0430\u0439\u043B.",
    UPLOAD: "\u0417\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u044C",
    PROGRESS: "\u041F\u0440\u043E\u0433\u0440\u0435\u0441\u0441",
    ERROR_PREFIX: "\u041E\u0448\u0438\u0431\u043A\u0430: ",
    ERROR_NO_ID_PROVIDED: "\u041E\u0448\u0438\u0431\u043A\u0430: \u041E\u0442\u0441\u0443\u0442\u0441\u0443\u0435\u0442 ID.",
    ERROR_PAGE_ID_DUPLICATE: "\u0421\u0442\u0440\u0430\u043D\u0438\u0446\u0430 \u0441 ID (%s) \u0443\u0436\u0435 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442.",
    ERROR_INVALID_ID: "\u041D\u0435\u043A\u043E\u0440\u0440\u0435\u043A\u0442\u043D\u044B\u0439 ID",
    ERROR_INVALID_DATE: "\u041D\u0435\u043A\u043E\u0440\u0440\u0435\u043A\u0442\u043D\u0430\u044F \u0434\u0430\u0442\u0430",
    ERROR_INVALID_NUMBER: "\u041D\u0435\u043A\u043E\u0440\u0440\u0435\u043A\u0442\u043D\u043E\u0435 \u0447\u0438\u0441\u043B\u043E",
    ERROR_INVALID_URL: "\u041D\u0435\u043A\u043E\u0440\u0440\u0435\u043A\u0442\u043D\u044B\u0439 URL",
    ERROR: "\u041E\u0448\u0438\u0431\u043A\u0430",
    ERROR_OCURRED: "\u041F\u0440\u043E\u0438\u0437\u043E\u0448\u043B\u0430 \u043E\u0448\u0438\u0431\u043A\u0430",
    ERROR_REQUEST_FAILED: "\u041E\u0448\u0438\u0431\u043A\u0430 \u043F\u0440\u0438 \u043E\u0442\u043F\u0440\u0430\u0432\u043A\u0435 \u043A\u043E\u043C\u0430\u043D\u0434\u044B \u043D\u0430 \u0441\u0435\u0440\u0432\u0435\u0440.  \u0412\u043E\u0437\u043C\u043E\u0436\u043D\u043E, \u0441\u0435\u0440\u0432\u0435\u0440 \u043E\u0441\u0442\u0430\u043D\u043E\u0432\u043B\u0435\u043D \u0438\u043B\u0438 \u043D\u0435 \u043E\u0442\u0432\u0435\u0447\u0430\u0435\u0442.",
    ERROR_SERVER_UNAVAILABLE: "\u0421\u0435\u0440\u0432\u0435\u0440 \u043D\u0435\u0434\u043E\u0441\u0442\u0443\u043F\u0435\u043D",
    ERROR_SERVER_UNAVAILABLE_MESSAGE: "\u0421\u0435\u0440\u0432\u0435\u0440 \u043D\u0435 \u043E\u0442\u0432\u0435\u0447\u0430\u0435\u0442. \u0412\u043E\u0437\u043C\u043E\u0436\u043D\u043E, \u0441\u0435\u0440\u0432\u0435\u0440 \u043E\u0441\u0442\u0430\u043D\u043E\u0432\u043B\u0435\u043D \u0438\u043B\u0438 \u043F\u0440\u043E\u0438\u0437\u043E\u0448\u043B\u0430 \u043A\u0440\u0438\u0442\u0438\u0447\u0435\u0441\u043A\u0430\u044F \u043E\u0448\u0438\u0431\u043A\u0430. \u041F\u0435\u0440\u0435\u0437\u0430\u043F\u0443\u0441\u0442\u0438\u0442\u0435 \u0441\u0435\u0440\u0432\u0435\u0440.",
    MODEL: "\u041C\u043E\u0434\u0435\u043B\u044C",
    ADD_CHILD_PAGE_TO: "\u0421\u043E\u0437\u0434\u0430\u0442\u044C \u0432\u043B\u043E\u0436\u0435\u043D\u043D\u0443\u044E \u0441\u0442\u0440\u0430\u043D\u0438\u0446\u0443 \u0434\u043B\u044F \u201C%s\u201D",
    ADD_CHILD_PAGE_NOTE: "\u0417\u0434\u0435\u0441\u044C \u0432\u044B \u043C\u043E\u0436\u0435\u0442\u0435 \u0441\u043E\u0437\u0434\u0430\u0442\u044C \u043D\u043E\u0432\u0443\u044E \u0432\u043B\u043E\u0436\u0435\u043D\u043D\u0443\u044E \u0441\u0442\u0440\u0430\u043D\u0438\u0446\u0443. \u0418\u043C\u0435\u0439\u0442\u0435 \u0432 \u0432\u0438\u0434\u0443, \u0447\u0442\u043E \u0432\u044B \u043D\u0435 \u0441\u043C\u043E\u0436\u0435\u0442\u0435 \u043B\u0435\u0433\u043A\u043E \u0438\u0437\u043C\u0435\u043D\u0438\u0442\u044C \u043C\u043E\u0434\u0435\u043B\u044C \u0438 ID \u043F\u043E\u0441\u043B\u0435 \u0441\u043E\u0437\u0434\u0430\u043D\u0438\u044F \u0441\u0442\u0440\u0430\u043D\u0438\u0446\u044B.",
    CREATE_CHILD_PAGE: "\u0421\u043E\u0437\u0434\u0430\u0442\u044C \u0432\u043B\u043E\u0436\u0435\u043D\u043D\u0443\u044E \u0441\u0442\u0440\u0430\u043D\u0438\u0446\u0443",
    DELETE_ATTACHMENT_PROMPT: "\u0412\u044B \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043B\u044C\u043D\u043E \u0445\u043E\u0442\u0438\u0442\u0435 \u0443\u0434\u0430\u043B\u0438\u0442\u044C \u044D\u0442\u043E \u0432\u043B\u043E\u0436\u0435\u043D\u0438\u0435?",
    DELETE_ATTACHMENT_ALT_PROMPT: "\u0412\u044B \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043B\u044C\u043D\u043E \u0445\u043E\u0442\u0438\u0442\u0435 \u0443\u0434\u0430\u043B\u0438\u0442\u044C \u044D\u0442\u043E\u0442 \u0432\u0430\u0440\u0438\u0430\u043D\u0442 \u0432\u043B\u043E\u0436\u0435\u043D\u0438\u044F?",
    DELETE_PAGE_PROMPT: "\u0412\u044B \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043B\u044C\u043D\u043E \u0445\u043E\u0442\u0438\u0442\u0435 \u0443\u0434\u0430\u043B\u0438\u0442\u044C \u044D\u0442\u0443 \u0441\u0442\u0440\u0430\u043D\u0438\u0446\u0443?",
    DELETE_PAGE_ALT_PROMPT: "\u0412\u044B \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043B\u044C\u043D\u043E \u0445\u043E\u0442\u0438\u0442\u0435 \u0443\u0434\u0430\u043B\u0438\u0442\u044C \u044D\u0442\u043E\u0442 \u0432\u0430\u0440\u0438\u0430\u043D\u0442 \u0441\u0442\u0440\u0430\u043D\u0438\u0446\u044B?",
    DELETE_PAGE_CHILDREN_WARNING: "\u0421\u0442\u0440\u0430\u043D\u0438\u0446\u0430 \u0431\u0443\u0434\u0435\u0442 \u0443\u0434\u0430\u043B\u0435\u043D\u0430 \u0432\u043C\u0435\u0441\u0442\u0435 \u0441\u043E \u0432\u0441\u0435\u043C\u0438 \u0432\u043B\u043E\u0436\u0435\u043D\u043D\u044B\u043C\u0438 \u0441\u0442\u0440\u0430\u043D\u0438\u0446\u0430\u043C\u0438.",
    DELETE_RECORD: "\u0423\u0434\u0430\u043B\u0438\u0442\u044C \u201C%s\u201D",
    DELETE_ALL_PAGE_ALTS: "\u0423\u0434\u0430\u043B\u0438\u0442\u044C \u0432\u0441\u0435 \u0432\u0430\u0440\u0438\u0430\u043D\u0442\u044B \u0441\u0442\u0440\u0430\u043D\u0438\u0446\u044B \u0438 \u0432\u043B\u043E\u0436\u0435\u043D\u043D\u044B\u0435 \u0444\u0430\u0439\u043B\u044B.",
    DELETE_ALL_ATTACHMENT_ALTS: "\u0423\u0434\u0430\u043B\u0438\u0442\u044C \u0432\u0441\u0435 \u0432\u0430\u0440\u0438\u0430\u043D\u0442\u044B \u0432\u043B\u043E\u0436\u0435\u043D\u043D\u043E\u0433\u043E \u0444\u0430\u0439\u043B\u0430",
    DELETE_ONLY_PRIMARY_PAGE_ALT: "\u0423\u0434\u0430\u043B\u0438\u0442\u044C \u0442\u043E\u043B\u044C\u043A\u043E \u043E\u0441\u043D\u043E\u0432\u043D\u0443\u044E \u0432\u0435\u0440\u0441\u0438\u044E.  \u0412\u043B\u043E\u0436\u0435\u043D\u043D\u043D\u044B\u0435 \u0441\u0442\u0440\u0430\u043D\u0438\u0446\u044B, \u0444\u0430\u0439\u043B\u044B \u0438 \u0434\u0440\u0443\u0433\u0438\u0435 \u0432\u0430\u0440\u0438\u0430\u043D\u0442\u044B \u0441\u0442\u0440\u0430\u043D\u0438\u0446\u044B \u043D\u0435 \u0431\u0443\u0434\u0443\u0442 \u0443\u0434\u0430\u043B\u0435\u043D\u044B.",
    DELETE_ONLY_PRIMARY_ATTACHMENT_ALT: "\u0423\u0434\u0430\u043B\u0438\u0442\u044C \u0442\u043E\u043B\u044C\u043A\u043E \u043E\u0441\u043D\u043E\u0432\u043D\u0443\u044E \u0432\u0435\u0440\u0441\u0438\u044E.",
    DELETE_PRIMARY_ALT_INFO: "\u0414\u0430\u043D\u043D\u0430\u044F \u0432\u0435\u0440\u0441\u0438\u044F \u044F\u0432\u043B\u044F\u0435\u0442\u0441\u044F \u043E\u0441\u043D\u043E\u0432\u043D\u043E\u0439 \u0438 \u043C\u043E\u0436\u0435\u0442 \u0431\u044B\u0442\u044C \u0443\u0434\u0430\u043B\u0435\u043D\u0430 \u043A\u0430\u043A \u043E\u0442\u0434\u0435\u043B\u044C\u043D\u043E, \u0442\u0430\u043A \u0438 \u0432\u043C\u0435\u0441\u0442\u0435 \u0441\u043E \u0432\u0441\u0435\u043C \u0441\u043E\u0434\u0435\u0440\u0436\u0438\u043C\u044B\u043C.",
    CHILD_PAGES_TO_BE_DELETED: "\u0412\u043B\u043E\u0436\u0435\u043D\u043D\u044B\u0435 \u0441\u0442\u0440\u0430\u043D\u0438\u0446\u044B, \u043A\u043E\u0442\u043E\u0440\u044B\u0435 \u0431\u0443\u0434\u0443\u0442 \u0443\u0434\u0430\u043B\u0435\u043D\u044B:",
    ALTS_TO_BE_DELETED: "\u0412\u0435\u0440\u0441\u0438\u0438, \u043A\u043E\u0442\u043E\u0440\u044B\u0435 \u0431\u0443\u0434\u0443\u0442 \u0443\u0434\u0430\u043B\u0435\u043D\u044B:",
    ATTACHMENTS_TO_BE_DELETED: "\u0412\u043B\u043E\u0436\u0435\u043D\u043D\u044B\u0435 \u0444\u0430\u0439\u043B\u044B, \u043A\u043E\u0442\u043E\u0440\u044B\u0435 \u0431\u0443\u0434\u0443\u0442 \u0443\u0434\u0430\u043B\u0435\u043D\u044B:",
    YES_DELETE: "\u0414\u0430, \u0443\u0434\u0430\u043B\u0438\u0442\u044C",
    NO_CANCEL: "\u041E\u0442\u043C\u0435\u043D\u0430",
    SYSTEM_FIELDS: "\u0421\u0438\u0441\u0442\u0435\u043C\u043D\u044B\u0435 \u043F\u043E\u043B\u044F",
    EDIT_ATTACHMENT_METADATA_OF: "\u0420\u0435\u0434\u0430\u043A\u0442\u0438\u0440\u043E\u0432\u0430\u0442\u044C \u043C\u0435\u0442\u0430\u0434\u0430\u043D\u043D\u044B\u0435 \u0432\u043B\u043E\u0436\u0435\u043D\u0438\u044F \u201C%s\u201D",
    EDIT_PAGE_NAME: "\u0420\u0435\u0434\u0430\u043A\u0442\u0438\u0440\u043E\u0432\u0430\u0442\u044C \u201C%s\u201D",
    SAVE_CHANGES: "\u0421\u043E\u0445\u0440\u0430\u043D\u0438\u0442\u044C \u0438\u0437\u043C\u0435\u043D\u0435\u043D\u0438\u044F",
    BROWSE_FS: "\u041F\u043E\u0441\u043C\u043E\u0442\u0440\u0435\u0442\u044C \u0432 \u0444\u0430\u0439\u043B\u043E\u0432\u043E\u0439 \u0441\u0438\u0441\u0442\u0435\u043C\u0435",
    BROWSE_FS_MAC: "\u041E\u0442\u043A\u0440\u044B\u0442\u044C \u0432 Finder",
    BROWSE_FS_WINDOWS: "\u041E\u0442\u043A\u0440\u044B\u0442\u044C \u0432 \u041E\u0431\u043E\u0437\u0440\u0435\u0432\u0430\u0442\u0435\u043B\u0435",
    ERROR_CANNOT_BROWSE_FS: "\u041E\u0448\u0438\u0431\u043A\u0430: \u0424\u0430\u0439\u043B \u043D\u0435 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442.",
    REMOVE_FLOWBLOCK_PROMPT: "\u0412\u044B \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043B\u044C\u043D\u043E \u0445\u043E\u0442\u0438\u0442\u0435 \u0443\u0434\u0430\u043B\u0438\u0442\u044C \u044D\u0442\u043E\u0442 \u0431\u043B\u043E\u043A?",
    ADD_FLOWBLOCK: "\u0414\u043E\u0431\u0430\u0432\u0438\u0442\u044C \u0431\u043B\u043E\u043A",
    INVALID_INPUT: "\u041D\u0435\u043A\u043E\u0440\u0440\u0435\u043A\u0442\u043D\u044B\u0439 \u0432\u0432\u043E\u0434",
    UP: "\u0412\u0432\u0435\u0440\u0445",
    DOWN: "\u0412\u043D\u0438\u0437",
    REMOVE: "\u0423\u0434\u0430\u043B\u0438\u0442\u044C",
    ID: "\u0418\u0434\u0435\u043D\u0442\u0438\u0444\u0438\u043A\u0430\u0442\u043E\u0440 (ID)",
    CLOSE: "\u0417\u0430\u043A\u0440\u044B\u0442\u044C",
    CANCEL: "\u041E\u0442\u043C\u0435\u043D\u0430",
    BACK_TO_OVERVIEW: "\u041D\u0430 \u0441\u0442\u0430\u0440\u0442\u043E\u0432\u0443\u044E \u0441\u0442\u0440\u0430\u043D\u0438\u0446\u0443",
    PUBLISH: "\u041E\u043F\u0443\u0431\u043B\u0438\u043A\u043E\u0432\u0430\u0442\u044C",
    PUBLISH_NOTE: "\u0417\u0434\u0435\u0441\u044C \u0432\u044B \u043C\u043E\u0436\u0435\u0442\u0435 \u043E\u043F\u0443\u0431\u043B\u0438\u043A\u043E\u0432\u0430\u0442\u044C \u0442\u0435\u043A\u0443\u0449\u0443\u044E \u0432\u0435\u0440\u0441\u0438\u044E \u0432\u0435\u0431\u0441\u0430\u0439\u0442\u0430.",
    PUBLISH_SERVER: "\u0421\u0435\u0440\u0432\u0435\u0440",
    CURRENTLY_PUBLISHING: "\u041F\u0443\u0431\u043B\u0438\u043A\u0430\u0446\u0438\u044F \u2026",
    STATE: "\u0421\u0442\u0430\u0442\u0443\u0441",
    PUBLISH_DONE: "\u041F\u0443\u0431\u043B\u0438\u043A\u0430\u0446\u0438\u044F \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043D\u0430",
    PUBLISH_STATE_BUILDING: "\u0421\u0431\u043E\u0440\u043A\u0430 \u0438\u0437\u043C\u0435\u043D\u0435\u043D\u0438\u0439 ...",
    PUBLISH_STATE_PUBLISH: "\u041F\u0443\u0431\u043B\u0438\u043A\u0430\u0446\u0438\u044F \u0438\u0437\u043C\u0435\u043D\u0435\u043D\u0438\u0439 ...",
    PUBLISH_STATE_DONE: "\u041F\u0443\u0431\u043B\u0438\u043A\u0430\u0446\u0438\u044F \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043D\u0430.",
    FIND_FILES: "\u041F\u043E\u0438\u0441\u043A \u0444\u0430\u0439\u043B\u0430",
    FIND_FILES_PLACEHOLDER: "\u0412\u0432\u0435\u0434\u0438\u0442\u0435 \u0438\u043C\u044F \u0441\u0442\u0440\u0430\u043D\u0438\u0446\u044B ...",
    ATTACHMENT_TYPE: "\u0422\u0438\u043F \u0432\u043B\u043E\u0436\u0435\u043D\u0438\u044F",
    URL_SLUG: "\u041A\u0440\u0430\u0442\u043A\u0438\u0439 \u0437\u0430\u0433\u043E\u043B\u043E\u0432\u043E\u043A \u0434\u043B\u044F URL",
    TEMPLATE: "\u0428\u0430\u0431\u043B\u043E\u043D",
    HIDE_PAGE: "\u0421\u043A\u0440\u044B\u0442\u044C \u0441\u0442\u0440\u0430\u043D\u0438\u0446\u0443",
    HIDE_PAGE_EXPLANATION: "\u0421\u043A\u0440\u044B\u0442\u044C \u0434\u0430\u043D\u043D\u0443\u044E \u0441\u0442\u0440\u0430\u043D\u0438\u0446\u0443?",
    REFRESH_BUILD: "\u041E\u0431\u043D\u043E\u0432\u0438\u0442\u044C \u0441\u0431\u043E\u0440\u043A\u0443",
    REFRESH_BUILD_NOTE: "\u0412 \u043D\u0435\u043A\u043E\u0442\u043E\u0440\u044B\u0445 \u0441\u0438\u0442\u0443\u0430\u0446\u0438\u044F\u0445 \u0431\u044B\u0432\u0430\u0435\u0442 \u043F\u043E\u043B\u0435\u0437\u043D\u043E \u0437\u0430\u043D\u043E\u0432\u043E \u043F\u0435\u0440\u0435\u0441\u043E\u0431\u0440\u0430\u0442\u044C \u0441\u0442\u0440\u0430\u043D\u0438\u0446\u044B \u0432\u0435\u0431\u0441\u0430\u0439\u0442\u0430: \u043D\u0430\u043F\u0440\u0438\u043C\u0435\u0440, \u043A\u043E\u0433\u0434\u0430 \u043F\u0440\u043E\u0438\u0437\u043E\u0448\u0451\u043B \u0441\u0431\u043E\u0439 \u0441\u0438\u043D\u0445\u0440\u043E\u043D\u0438\u0437\u0430\u0446\u0438\u0438 \u0438\u043B\u0438 \u043E\u0448\u0438\u0431\u043A\u0430 \u0432 \u0448\u0430\u0431\u043B\u043E\u043D\u0435 \u043F\u0440\u0438\u0432\u0435\u043B\u0430 \u043A \u043D\u0435\u043A\u043E\u0440\u0440\u0435\u043A\u0442\u043D\u043E\u043C\u0443 \u043E\u0442\u043E\u0431\u0440\u0430\u0436\u0435\u043D\u0438\u044E \u0432\u0435\u0431\u0441\u0430\u0439\u0442\u0430.",
    CURRENTLY_REFRESHING_BUILD: "\u041E\u0431\u043D\u043E\u0432\u043B\u0435\u043D\u0438\u0435 \u0441\u0431\u043E\u0440\u043A\u0438 ...",
    REFRESHING_BUILD_DONE: "\u0421\u0431\u043E\u0440\u043A\u0430 \u043E\u0431\u043D\u043E\u0432\u043B\u0435\u043D\u0430!",
    FAILED_TO_LAUNCH_LEKTOR: "\u041D\u0435 \u0443\u0434\u0430\u043B\u043E\u0441\u044C \u0437\u0430\u043F\u0443\u0441\u0442\u0438\u0442\u044C Lektor.",
    PROJECT: "\u041F\u0440\u043E\u0435\u043A\u0442",
    CLOSE_PROJECT: "\u0417\u0430\u043A\u0440\u044B\u0442\u044C \u043F\u0440\u043E\u0435\u043A\u0442",
    OPEN_PROJECT: "\u041E\u0442\u043A\u0440\u044B\u0442\u044C \u043F\u0440\u043E\u0435\u043A\u0442",
    BROWSE_WEBSITE: "\u041E\u0442\u043A\u0440\u044B\u0442\u044C \u0432\u0435\u0431\u0441\u0430\u0439\u0442",
    VIEW_ADMIN_PANEL: "\u041E\u0442\u043A\u0440\u044B\u0442\u044C \u0430\u0434\u043C\u0438\u043D-\u043F\u0430\u043D\u0435\u043B\u044C",
    QUIT: "\u0412\u044B\u0439\u0442\u0438",
    FAILED_TO_LOAD_PROJECT: "\u041D\u0435 \u0443\u0434\u0430\u043B\u043E\u0441\u044C \u0437\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u044C \u043F\u0440\u043E\u0435\u043A\u0442 :(",
    LOADING_PROJECT: "\u0417\u0430\u0433\u0440\u0443\u0437\u043A\u0430 \u043F\u0440\u043E\u0435\u043A\u0442\u0430 ...",
    INITIALIZING_LEKTOR: "\u0418\u043D\u0438\u0446\u0438\u0430\u043B\u0438\u0437\u0430\u0446\u0438\u044F Lektor ...",
    QUIT_LEKTOR: "\u0412\u044B\u0439\u0442\u0438 \u0438\u0437 Lektor",
    FILE: "\u0424\u0430\u0439\u043B",
    UNDO: "\u041E\u0442\u043C\u0435\u043D\u0438\u0442\u044C",
    REDO: "\u041F\u043E\u0432\u0442\u043E\u0440\u0438\u0442\u044C",
    CUT: "\u0412\u044B\u0440\u0435\u0437\u0430\u0442\u044C",
    COPY: "\u041A\u043E\u043F\u0438\u0440\u043E\u0432\u0430\u0442\u044C",
    PASTE: "\u0412\u0441\u0442\u0430\u0432\u0438\u0442\u044C",
    SELECT_ALL: "\u0412\u044B\u0434\u0435\u043B\u0438\u0442\u044C \u0432\u0441\u0451",
    HELP: "\u041F\u043E\u043C\u043E\u0449\u044C",
    VISIT_WEBSITE: "\u041E\u0442\u043A\u0440\u044B\u0442\u044C \u0432\u0435\u0431\u0441\u0430\u0439\u0442",
    INSTALL_SHELL_COMMAND: "\u0423\u0441\u0442\u0430\u043D\u043E\u0432\u0438\u0442\u044C \u043A\u043E\u043C\u0430\u043D\u0434\u0443 \u0434\u043B\u044F \u0442\u0435\u0440\u043C\u0438\u043D\u0430\u043B\u0430",
    INSTALL_SHELL_COMMAND_QUESTION: "\u0412\u044B \u0445\u043E\u0442\u0438\u0442\u0435 \u0443\u0441\u0442\u0430\u043D\u043E\u0432\u0438\u0442\u044C \u043A\u043E\u043C\u0430\u043D\u0434\u0443 'lektor' \u0434\u043B\u044F \u0442\u0435\u0440\u043C\u0438\u043D\u0430\u043B\u0430? \u0414\u043B\u044F \u044D\u0442\u043E\u0433\u043E \u043D\u0435\u043E\u0431\u0445\u043E\u0434\u0438\u043C\u044B \u043F\u0440\u0430\u0432\u0430 \u0430\u0434\u043C\u0438\u043D\u0438\u0441\u0442\u0440\u0430\u0442\u043E\u0440\u0430.",
    FAILED_TO_INSTALL_SHELL_COMMANDS: "\u041D\u0435 \u0443\u0434\u0430\u043B\u043E\u0441\u044C \u0443\u0441\u0442\u0430\u043D\u043E\u0432\u0438\u0442\u044C \u043A\u043E\u043C\u0430\u043D\u0434\u0443 \u0434\u043B\u044F \u0442\u0435\u0440\u043C\u0438\u043D\u0430\u043B\u0430.",
    INSTALL_SHELL_COMMAND_SUCCESS: "\u041A\u043E\u043C\u0430\u043D\u0434\u0430 \u0434\u043B\u044F \u0442\u0435\u0440\u043C\u0438\u043D\u0430\u043B\u0430 \u0431\u044B\u043B\u0430 \u0443\u0441\u043F\u0435\u0448\u043D\u043E \u0443\u0441\u0442\u0430\u043D\u043E\u0432\u043B\u0435\u043D\u0430.",
    OPERATION_SUCCESS: "\u041E\u043F\u0435\u0440\u0430\u0446\u0438\u044F \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043D\u0430 \u0443\u0441\u043F\u0435\u0448\u043D\u043E",
    YES: "\u0414\u0430",
    NO: "\u041D\u0435\u0442",
    OK: "\u041E\u041A"
  };

  // ../lektor/translations/zh.json
  var zh_default = {
    RETURN_TO_WEBSITE: "\u56DE\u5230\u7DB2\u9801",
    UNLOAD_ACTIVE_TAB: "\u4F60\u9084\u6709\u672A\u5132\u5B58\u7684\u8CC7\u8A0A\uFF0C\u78BA\u5B9A\u8981\u96E2\u958B\u9019\u500B\u9801\u9762\uFF1F",
    EDIT_METADATA: "\u7DE8\u8F2F\u5143\u8CC7\u6599",
    EDIT: "\u7DE8\u8F2F",
    DELETE: "\u522A\u9664",
    PREVIEW: "\u9810\u89BD",
    ALTS: "\u526F\u8A9E",
    PRIMARY_ALT: "\u4E3B\u8A9E",
    PRIMARY_OVERLAY: "Overlaid",
    ADD_CHILD_PAGE: "\u65B0\u589E\u9801\u9762",
    ADD_ATTACHMENT: "\u65B0\u589E\u9644\u4EF6",
    ATTACHMENT_ACTIONS: "\u9644\u4EF6\u884C\u70BA",
    PAGE_ACTIONS: "\u9801\u9762\u884C\u70BA",
    NO_CHILD_PAGES: "\u6C92\u6709\u9644\u4EF6",
    CHILD_PAGES: "\u5B50\u9801\u9762",
    NO_ATTACHMENTS: "\u6C92\u6709\u9644\u4EF6",
    ATTACHMENTS: "\u9644\u4EF6",
    ADD_ATTACHMENT_TO: "\u65B0\u589E\u9644\u4EF6\u5230\u300C%s\u300D",
    ADD_ATTACHMENT_NOTE: "\u4F60\u53EF\u4EE5\u5728\u9019\u88E1\u4E0A\u50B3\u65B0\u7684\u9644\u4EF6\u3002",
    UPLOAD: "\u4E0A\u50B3",
    PROGRESS: "\u9032\u5EA6",
    ERROR_PREFIX: "\u932F\u8AA4\uFF1A",
    ERROR_NO_ID_PROVIDED: "\u932F\u8AA4\uFF1A\u6C92\u6709\u63D0\u4F9BID\u3002",
    ERROR_PAGE_ID_DUPLICATE: "\u5DF2\u7D93\u6709\u9801\u9762\u7684ID\u8DDF\u9019\u500BID\uFF08%s\uFF09\u4E00\u6A23\u4E86\u3002",
    ERROR_INVALID_ID: "\u7121\u6548\u7684ID",
    ERROR_INVALID_DATE: "\u7121\u6548\u7684\u65E5\u671F",
    ERROR_INVALID_NUMBER: "\u7121\u6548\u7684\u6578\u5B57",
    ERROR_INVALID_URL: "\u7121\u6548\u7684URL",
    ERROR: "\u932F\u8AA4",
    ERROR_OCURRED: "\u767C\u751F\u932F\u8AA4",
    ERROR_REQUEST_FAILED: "\u7121\u6CD5\u50B3\u9001\u6307\u4EE4\u5230\u4F3A\u670D\u5668\uFF0C\u53EF\u80FD\u5B83\u88AB\u95DC\u4E86\u6216\u6C92\u56DE\u61C9\uFF1F",
    ERROR_SERVER_UNAVAILABLE: "\u4F3A\u670D\u5668\u639B\u6389\u4E86",
    ERROR_SERVER_UNAVAILABLE_MESSAGE: "\u4F3A\u670D\u5668\u76EE\u524D\u6C92\u56DE\u61C9\uFF0C\u5B83\u53EF\u80FD\u5DF2\u88AB\u95DC\u9589\u6216\u662F\u9047\u5230\u56B4\u91CD\u932F\u8AA4\u5C0E\u81F4\u7121\u6CD5\u904B\u4F5C\uFF0C\u4F3A\u670D\u5668\u9700\u8981\u91CD\u65B0\u555F\u52D5\u3002",
    MODEL: "\u6A21\u578B",
    ADD_CHILD_PAGE_TO: "\u65B0\u589E\u5B50\u9762\u9801\u5230 \u300C%s\u300D",
    ADD_CHILD_PAGE_NOTE: "\u4F60\u53EF\u4EE5\u5728\u9019\u88E1\u52A0\u5165\u65B0\u7684\u5B50\u9801\u9762\uFF0C\u6CE8\u610F\u6A21\u578B\u53CAID\u4E4B\u5F8C\u7121\u6CD5\u8F15\u6613\u66F4\u6539\u3002",
    CREATE_CHILD_PAGE: "\u65B0\u589E\u5B50\u9801\u9762",
    DELETE_ATTACHMENT_PROMPT: "\u771F\u7684\u8981\u522A\u9664\u9019\u500B\u9644\u4EF6\uFF1F",
    DELETE_ATTACHMENT_ALT_PROMPT: "\u4F60\u771F\u7684\u60F3\u522A\u9664\u9019\u500B\u526F\u8A9E\u9644\u4EF6\u7684\u5143\u8CC7\u6599\u55CE\uFF1F",
    DELETE_PAGE_PROMPT: "\u771F\u7684\u8981\u522A\u9664\u9019\u500B\u9801\u9762\uFF1F",
    DELETE_PAGE_ALT_PROMPT: "\u4F60\u771F\u7684\u60F3\u522A\u9664\u9019\u500B\u5206\u652F\u55CE\uFF1F",
    DELETE_PAGE_CHILDREN_WARNING: "\u9019\u4E5F\u6703\u628A\u9019\u500B\u9801\u9762\u7684\u5B50\u9801\u9762\u522A\u9664\u3002",
    DELETE_RECORD: "\u522A\u9664\u300C%s\u300D",
    DELETE_ALL_PAGE_ALTS: "\u9806\u4FBF\u522A\u9664\u6240\u6709\u526F\u8A9E\u53CA\u9644\u52A0\u6A94\u6848\u3002",
    DELETE_ALL_ATTACHMENT_ALTS: "\u522A\u9664\u6240\u6709\u526F\u8A9E\u53CA\u9644\u52A0\u6A94\u6848\u3002",
    DELETE_ONLY_PRIMARY_PAGE_ALT: "\u53EA\u522A\u9664\u4E3B\u8A9E\u7684\u7D00\u9304\uFF0C\u9644\u4EF6\u3001\u526F\u8A9E\u3001\u53CA\u5B50\u9801\u9762\u4E0D\u6703\u88AB\u522A\u9664\u3002",
    DELETE_ONLY_PRIMARY_ATTACHMENT_ALT: "\u53EA\u522A\u9664\u4E3B\u8A9E\u7D00\u9304\u7684\u5143\u8CC7\u6599\u3002",
    DELETE_PRIMARY_ALT_INFO: "\u4E3B\u8A9E\u53EF\u4EE5\u88AB\u55AE\u7368\u522A\u9664\uFF0C\u6216\u662F\u9023\u540C\u526F\u8A9E\u4E00\u8D77\u522A\u9664\u3002",
    CHILD_PAGES_TO_BE_DELETED: "\u5373\u5C07\u88AB\u522A\u9664\u7684\u5B50\u9801\u9762\uFF1A",
    ALTS_TO_BE_DELETED: "\u5373\u5C07\u88AB\u522A\u9664\u7684\u526F\u8A9E\uFF1A",
    ATTACHMENTS_TO_BE_DELETED: "\u5373\u5C07\u88AB\u522A\u9664\u7684\u9644\u4EF6\uFF1A",
    YES_DELETE: "\u5C0D\uFF0C\u5C31\u662F\u8981\u628A\u5B83\u522A\u6389\uFF01",
    NO_CANCEL: "\u9084\u662F\u4E0D\u8981\u597D\u4E86...",
    SYSTEM_FIELDS: "\u7CFB\u7D71\u6B04\u4F4D",
    EDIT_ATTACHMENT_METADATA_OF: "\u7DE8\u8F2F\u9644\u4EF6\u300C%s\u300D\u7684\u5143\u8CC7\u6599",
    EDIT_PAGE_NAME: "\u7DE8\u8F2F\u300C%s\u300D",
    SAVE_CHANGES: "\u5132\u5B58\u8B8A\u66F4",
    BROWSE_FS: "\u7528\u6587\u4EF6\u7CFB\u7D71\u958B\u555F",
    BROWSE_FS_MAC: "\u7528Finder\u958B\u555F",
    BROWSE_FS_WINDOWS: "\u7528\u6A94\u6848\u7E3D\u7BA1\u958B\u555F",
    ERROR_CANNOT_BROWSE_FS: "\u932F\u8AA4\uFF1A\u6A94\u6848\u9084\u6C92\u6709\u5B58\u5728\u3002",
    REMOVE_FLOWBLOCK_PROMPT: "\u4F60\u771F\u7684\u8981\u522A\u6389\u9019\u500B\u5340\u584A\uFF1F",
    ADD_FLOWBLOCK: "\u65B0\u589E\u5340\u584A",
    INVALID_INPUT: "\u7121\u6548\u7684\u8F38\u5165",
    UP: "\u4E0A",
    DOWN: "\u4E0B",
    REMOVE: "\u79FB\u9664",
    ID: "ID",
    CLOSE: "\u95DC\u9589",
    CANCEL: "\u53D6\u6D88",
    BACK_TO_OVERVIEW: "\u56DE\u5230\u7E3D\u89BD",
    PUBLISH: "\u767C\u4F48",
    PUBLISH_NOTE: "\u4F60\u53EF\u4EE5\u5728\u9019\u88E1\u767C\u4F48\u7DB2\u7AD9\u76EE\u524D\u7684\u7248\u672C\u3002",
    PUBLISH_SERVER: "\u76EE\u6A19\u4F3A\u670D\u5668",
    CURRENTLY_PUBLISHING: "\u767C\u4F48\u4E2D...",
    STATE: "\u72C0\u614B",
    PUBLISH_DONE: "\u5DF2\u767C\u4F48",
    PUBLISH_STATE_BUILDING: "\u6B63\u5728\u5EFA\u7F6E\u8B8A\u66F4...",
    PUBLISH_STATE_PUBLISH: "\u6B63\u5728\u767C\u4F48\u8B8A\u66F4...",
    PUBLISH_STATE_DONE: "\u767C\u4F48\u5B8C\u6210\u3002",
    FIND_FILES: "\u641C\u5C0B\u6A94\u6848",
    FIND_FILES_PLACEHOLDER: "\u8F38\u5165\u9801\u9762\u540D\u7A31...",
    ATTACHMENT_TYPE: "\u9644\u4EF6\u985E\u578B",
    URL_SLUG: "URL\u7E2E\u7565\u540D",
    TEMPLATE: "\u6A21\u677F",
    HIDE_PAGE: "\u96B1\u85CF\u9801\u9762",
    HIDE_PAGE_EXPLANATION: "\u8981\u96B1\u85CF\u9019\u500B\u9801\u9762\u55CE\uFF1F",
    PAGE_IS_DISCOVERABLE: "\u7DB2\u9801\u53EF\u4EE5\u88AB\u767C\u73FE",
    PAGE_IS_DISCOVERABLE_EXPLANATION: "\u82E5\u555F\u7528\u5247\u9019\u500B\u9801\u9762\u53EF\u4EE5\u88AB\u767C\u73FE\uFF0C\u5426\u5247\u5FC5\u9808\u77E5\u9053URL\u624D\u80FD\u9023\u7D50\u5230\u9019\u88E1\u3002",
    REFRESH_BUILD: "\u91CD\u65B0\u6574\u7406\u5EFA\u7F6E",
    REFRESH_BUILD_NOTE: "\u9019\u6703\u522A\u6389\u6240\u6709\u7DE9\u5B58\u7684\u5EFA\u7F6E\u7D50\u679C\u4E26\u5C0E\u81F4\u91CD\u65B0\u7F6E\u5EFA\u3002\u9019\u5728\u7279\u6B8A\u60C5\u6CC1\uFF08\u5982\u540C\u6B65\u932F\u8AA4\u3001\u6A21\u677F\u51FA\u932F\u7B49\uFF09\u4E0B\u6703\u6709\u7528\u3002",
    CURRENTLY_REFRESHING_BUILD: "\u5237\u65B0\u5EFA\u7F6E\u4E2D...",
    REFRESHING_BUILD_DONE: "\u5B8C\u6210\u5237\u65B0\u5EFA\u7F6E\uFF01",
    FAILED_TO_LAUNCH_LEKTOR: "\u555F\u52D5Lektor\u5931\u6557\u3002",
    PROJECT: "\u5C08\u6848",
    CLOSE_PROJECT: "\u95DC\u9589\u5C08\u6848",
    OPEN_PROJECT: "\u958B\u555F\u5C08\u6848",
    BROWSE_WEBSITE: "\u700F\u89BD\u7DB2\u7AD9",
    VIEW_ADMIN_PANEL: "\u67E5\u770B\u7BA1\u7406\u54E1\u9762\u677F",
    QUIT: "\u96E2\u958B",
    FAILED_TO_LOAD_PROJECT: "\u8B80\u53D6\u5C08\u6848\u5931\u6557 QAQ",
    LOADING_PROJECT: "\u8B80\u53D6\u5C08\u6848\u4E2D...",
    INITIALIZING_LEKTOR: "\u521D\u59CB\u5316Lektor\u4E2D...",
    QUIT_LEKTOR: "\u96E2\u958BLektor",
    FILE: "\u6A94\u6848",
    UNDO: "\u5FA9\u539F",
    REDO: "\u91CD\u505A",
    CUT: "\u526A\u4E0B",
    COPY: "\u8907\u88FD",
    PASTE: "\u8CBC\u4E0A",
    SELECT_ALL: "\u5168\u9078",
    HELP: "\u8AAA\u660E",
    VISIT_WEBSITE: "\u53C3\u89C0\u7DB2\u7AD9",
    INSTALL_SHELL_COMMAND: "\u5B89\u88DD\u547D\u4EE4\u5217\u6A21\u5F0F",
    INSTALL_SHELL_COMMAND_QUESTION: "\u4F60\u60F3\u5B89\u88DDlektor\u547D\u4EE4\u5217\u6A21\u5F0F\u55CE\uFF1F \u9019\u9700\u8981\u7BA1\u7406\u54E1\u6B0A\u9650\u3002",
    FAILED_TO_INSTALL_SHELL_COMMANDS: "\u5B89\u88DD\u547D\u4EE4\u5217\u6A21\u5F0F\u5931\u6557\u3002",
    INSTALL_SHELL_COMMAND_SUCCESS: "\u547D\u4EE4\u5217\u6A21\u5F0F\u5B89\u88DD\u6210\u529F",
    OPERATION_SUCCESS: "\u6210\u529F",
    YES: "\u662F",
    NO: "\u5426",
    OK: "\u597D",
    FAILED_TO_OPEN_CONTENT_FILE: "\u958B\u555F\u6A94\u6848\u5931\u6557",
    OPEN_OTHER_PROJECT: "\u958B\u555F\u5176\u5B83\u5C08\u6848",
    OPEN_OTHER_PROJECT_QUESTION: "\u958B\u555F\u9019\u4EFD\u6A94\u6848\u9700\u8981\u9023\u540C\u958B\u555F\u53E6\u4E00\u500B\u5C08\u6848\uFF08%s\uFF09\uFF0C\u76EE\u524D\u7684\u5C08\u6848\u5C07\u6703\u88AB\u95DC\u9589\uFF0C\u78BA\u5B9A\u8981\u7E7C\u7E8C\uFF1F"
  };

  // js/i18n.tsx
  var translations = {
    ca: ca_default,
    de: de_default,
    en: en_default,
    es: es_default,
    fr: fr_default,
    it: it_default,
    ja: ja_default,
    ko: ko_default,
    nl: nl_default,
    pl: pl_default,
    pt: pt_default,
    ru: ru_default,
    zh: zh_default
  }, currentLanguage = "en", _a, currentTranslations = (_a = translations[currentLanguage]) != null ? _a : {};
  function setCurrentLanguage(lang) {
    currentLanguage = lang, currentTranslations = translations[currentLanguage];
  }
  function getCurrentLanguge() {
    return currentLanguage;
  }
  function trans(key) {
    var _a2;
    return (_a2 = currentTranslations[key]) != null ? _a2 : key;
  }
  function trans_obj(translation_object) {
    var _a2, _b;
    return (_b = (_a2 = translation_object[currentLanguage]) != null ? _a2 : translation_object.en) != null ? _b : "";
  }
  function trans_fallback(translation_object, fallback) {
    return translation_object && trans_obj(translation_object) || fallback;
  }
  function trans_format(key, replacement) {
    return trans(key).replace("%s", replacement);
  }

  // js/context/record-context.ts
  var import_react4 = __toESM(require_react()), RecordContext = (0, import_react4.createContext)({
    path: "/",
    alt: "_primary"
  });
  function useRecord() {
    return (0, import_react4.useContext)(RecordContext);
  }
  function useRecordAlt() {
    return useRecord().alt;
  }
  function useRecordPath() {
    return useRecord().path;
  }

  // js/views/App.tsx
  var import_react59 = __toESM(require_react());

  // js/header/Header.tsx
  var import_react10 = __toESM(require_react());

  // js/header/BreadCrumbs.tsx
  var import_react8 = __toESM(require_react());

  // js/fetch.ts
  var FetchError = class extends Error {
    constructor(code) {
      super();
      this.code = code;
    }
  };
  function handleJSON(response) {
    if (!response.ok)
      throw new FetchError("REQUEST_FAILED");
    return response.json();
  }
  var credentials = "same-origin", headers = { "Content-Type": "application/json" };
  function fetchJSON(input, method, json) {
    let init = json === void 0 ? { credentials, method } : { credentials, method, headers, body: JSON.stringify(json) };
    return fetch(input, init).then(handleJSON);
  }
  function apiUrl(endpoint, params) {
    let url = `${$LEKTOR_CONFIG.admin_root}/api${endpoint}`;
    if (params) {
      let urlParams = new URLSearchParams();
      return Object.entries(params).forEach(([key, value]) => {
        urlParams.set(key, value);
      }), `${url}?${urlParams.toString()}`;
    }
    return url;
  }
  function get(endpoint, params) {
    let url = apiUrl(endpoint, params);
    return fetchJSON(url, "GET");
  }
  function post(endpoint, params, json) {
    let url = apiUrl(endpoint, params);
    return fetchJSON(url, "POST", json);
  }
  function put(endpoint, json) {
    let url = apiUrl(endpoint);
    return fetchJSON(url, "PUT", json);
  }

  // js/events.ts
  function dispatch(type, detail) {
    document.dispatchEvent(new CustomEvent(type, { detail }));
  }
  function subscribe(type, handler) {
    document.addEventListener(type, handler);
  }
  function unsubscribe(type, handler) {
    document.removeEventListener(type, handler);
  }

  // js/error-dialog.ts
  function showErrorDialog(error) {
    error instanceof FetchError ? dispatch("lektor-error", error) : console.error("unknown error:", error);
  }

  // js/components/AdminLink.tsx
  var import_react6 = __toESM(require_react());

  // js/components/use-go-to-admin-page.ts
  var import_react5 = __toESM(require_react());
  function adminPath(page, path, alt) {
    let params = new URLSearchParams({ path });
    return alt !== "_primary" && params.set("alt", alt), `${$LEKTOR_CONFIG.admin_root}/${page}?${params}`;
  }
  function useGoToAdminPage() {
    let history = useHistory();
    return (0, import_react5.useCallback)(
      (name, path, alt) => {
        history.push(adminPath(name, path, alt));
      },
      [history]
    );
  }

  // js/components/AdminLink.tsx
  function AdminLink(_a2) {
    var _b = _a2, {
      page,
      path,
      alt,
      children
    } = _b, otherProps = __objRest(_b, [
      "page",
      "path",
      "alt",
      "children"
    ]);
    let current = useRecord(), recordMatches = path === current.path && alt === current.alt;
    return /* @__PURE__ */ import_react6.default.createElement(NavLink, __spreadValues({
      to: adminPath(page, path, alt),
      activeClassName: "active",
      isActive: (match) => recordMatches && match != null
    }, otherProps), children);
  }
  var AdminLink_default = (0, import_react6.memo)(AdminLink);

  // js/context/page-context.ts
  var import_react7 = __toESM(require_react()), PAGE_NAMES = [
    "edit",
    "delete",
    "preview",
    "add-child",
    "upload"
  ];
  function isPageName(p) {
    return PAGE_NAMES.includes(p);
  }
  var PageContext = (0, import_react7.createContext)("edit");

  // js/header/BreadCrumbs.tsx
  function Crumb({
    alt,
    item,
    targetPage
  }) {
    let { path, exists } = item, label = exists ? trans_fallback(item.label_i18n, item.label) : item.id;
    return /* @__PURE__ */ import_react8.default.createElement("li", {
      className: exists ? "breadcrumb-item" : "breadcrumb-item missing-record-crumb"
    }, /* @__PURE__ */ import_react8.default.createElement(AdminLink_default, {
      page: targetPage,
      path,
      alt
    }, label));
  }
  function AddNewPage({
    alt,
    item
  }) {
    return item.can_have_children ? /* @__PURE__ */ import_react8.default.createElement("li", {
      className: "new-record-crumb"
    }, /* @__PURE__ */ import_react8.default.createElement(AdminLink_default, {
      page: "add-child",
      path: item.path,
      alt
    }, "+")) : null;
  }
  function BreadCrumbs() {
    let page = (0, import_react8.useContext)(PageContext), { path, alt } = useRecord(), [segments, setSegments] = (0, import_react8.useState)(
      null
    );
    if ((0, import_react8.useEffect)(() => {
      let ignore = !1;
      return get("/pathinfo", { path }).then((resp) => {
        ignore || setSegments(resp.segments);
      }, showErrorDialog), () => {
        ignore = !0;
      };
    }, [path]), !segments)
      return /* @__PURE__ */ import_react8.default.createElement("ul", {
        className: "breadcrumb"
      }, /* @__PURE__ */ import_react8.default.createElement("li", null, /* @__PURE__ */ import_react8.default.createElement(AdminLink_default, {
        page: "edit",
        path: "/",
        alt: "_primary"
      }, trans("BACK_TO_OVERVIEW"))));
    let target = page === "preview" ? "preview" : "edit", lastItem = segments[segments.length - 1];
    return /* @__PURE__ */ import_react8.default.createElement("ul", {
      className: "breadcrumb"
    }, segments.map((item) => /* @__PURE__ */ import_react8.default.createElement(Crumb, {
      key: item.path,
      item,
      alt,
      targetPage: target
    })), /* @__PURE__ */ import_react8.default.createElement(AddNewPage, {
      item: lastItem,
      alt
    }));
  }
  var BreadCrumbs_default = BreadCrumbs;

  // js/header/GlobalActions.tsx
  var import_react9 = __toESM(require_react());

  // js/utils.ts
  function isValidUrl(url) {
    return !!url.match(/^([a-z0-9+.-]+):(\/\/)?[^/]\S+$/);
  }
  function trimLeadingSlashes(string) {
    let match = /^\/*(.*?)$/.exec(string);
    return match ? match[1] : "";
  }
  function trimTrailingSlashes(string) {
    let match = /^(.*?)\/*$/.exec(string);
    return match ? match[1] : "";
  }
  function trimSlashes(string) {
    let match = /^\/*(.*?)\/*$/.exec(string);
    return match ? match[1] : "";
  }
  function getCanonicalUrl(localPath) {
    return `${trimTrailingSlashes($LEKTOR_CONFIG.site_root)}/${trimLeadingSlashes(localPath)}`;
  }
  function getPlatform() {
    return navigator.appVersion.indexOf("Win") !== -1 ? "windows" : navigator.appVersion.indexOf("Mac") !== -1 ? "mac" : navigator.appVersion.indexOf("X11") !== -1 || navigator.appVersion.indexOf("Linux") !== -1 ? "linux" : "other";
  }
  function getKey(shortcut) {
    return getPlatform() === "mac" && shortcut.mac ? shortcut.mac : shortcut.key;
  }
  function keyboardShortcutHandler(shortcut, action) {
    let key = getKey(shortcut);
    return (ev) => {
      let eventKey = ev.key;
      ev.altKey && (eventKey = `Alt+${eventKey}`), ev.ctrlKey && (eventKey = `Control+${eventKey}`), ev.metaKey && (eventKey = `Meta+${eventKey}`), eventKey === key && (shortcut.preventDefault && ev.preventDefault(), action(ev));
    };
  }
  function getParentPath(path) {
    let match = /^(\/.*)\/[^/]*$/.exec(path);
    return match ? match[1] : null;
  }

  // js/header/GlobalActions.tsx
  var findFiles = () => dispatch("lektor-dialog", { type: "find-files" }), refresh = () => dispatch("lektor-dialog", { type: "refresh" }), publish = () => dispatch("lektor-dialog", { type: "publish" }), onKeyPress = keyboardShortcutHandler(
    { key: "Control+g", mac: "Meta+g", preventDefault: !0 },
    findFiles
  );
  function GlobalActions() {
    let record = useRecord();
    (0, import_react9.useEffect)(() => (window.addEventListener("keydown", onKeyPress), () => window.removeEventListener("keydown", onKeyPress)), []);
    let returnToWebsite = (0, import_react9.useCallback)(() => {
      get("/previewinfo", record).then(({ url }) => {
        window.location.href = url === null ? getCanonicalUrl("/") : getCanonicalUrl(url);
      }, showErrorDialog);
    }, [record]);
    return /* @__PURE__ */ import_react9.default.createElement("div", {
      className: "btn-group"
    }, /* @__PURE__ */ import_react9.default.createElement("button", {
      type: "button",
      className: "btn btn-secondary border",
      onClick: findFiles,
      title: trans("FIND_FILES")
    }, /* @__PURE__ */ import_react9.default.createElement("i", {
      className: "fa fa-search fa-fw"
    })), /* @__PURE__ */ import_react9.default.createElement("button", {
      type: "button",
      className: "btn btn-secondary border",
      onClick: publish,
      title: trans("PUBLISH")
    }, /* @__PURE__ */ import_react9.default.createElement("i", {
      className: "fa fa-cloud-upload fa-fw"
    })), /* @__PURE__ */ import_react9.default.createElement("button", {
      type: "button",
      className: "btn btn-secondary border",
      onClick: refresh,
      title: trans("REFRESH_BUILD")
    }, /* @__PURE__ */ import_react9.default.createElement("i", {
      className: "fa fa-refresh fa-fw"
    })), /* @__PURE__ */ import_react9.default.createElement("button", {
      type: "button",
      className: "btn btn-secondary border",
      onClick: returnToWebsite,
      title: trans("RETURN_TO_WEBSITE")
    }, /* @__PURE__ */ import_react9.default.createElement("i", {
      className: "fa fa-eye fa-fw"
    })));
  }

  // js/header/Header.tsx
  function Header({
    sidebarIsActive,
    toggleSidebar
  }) {
    return /* @__PURE__ */ import_react10.default.createElement("header", null, /* @__PURE__ */ import_react10.default.createElement("div", {
      className: "container"
    }, /* @__PURE__ */ import_react10.default.createElement("button", {
      type: "button",
      className: sidebarIsActive ? "fa fa-bars navbar-toggle active" : "fa fa-bars navbar-toggle",
      onClick: toggleSidebar,
      "aria-label": "Toggle navigation"
    }), /* @__PURE__ */ import_react10.default.createElement("div", {
      className: "d-flex justify-content-between"
    }, /* @__PURE__ */ import_react10.default.createElement(BreadCrumbs_default, null), /* @__PURE__ */ import_react10.default.createElement("div", null, /* @__PURE__ */ import_react10.default.createElement(GlobalActions, null)))));
  }

  // js/sidebar/Sidebar.tsx
  var import_react17 = __toESM(require_react());

  // js/sidebar/PageActions.tsx
  var import_react12 = __toESM(require_react());

  // js/components/AdminLinkWithHotkey.tsx
  var import_react11 = __toESM(require_react());
  function useKeyboardShortcut(key, action) {
    (0, import_react11.useEffect)(() => {
      let handler = keyboardShortcutHandler(key, action);
      return window.addEventListener("keydown", handler), () => window.removeEventListener("keydown", handler);
    }, [key, action]);
  }
  function useKeyboardShortcutRef(key) {
    let el = (0, import_react11.useRef)(null), handler = (0, import_react11.useCallback)(() => {
      var _a2;
      (_a2 = el.current) == null || _a2.click();
    }, []);
    return useKeyboardShortcut(key, handler), el;
  }
  function AdminLinkWithHotkey(_a2) {
    var _b = _a2, {
      page,
      path,
      alt,
      children,
      shortcut
    } = _b, otherProps = __objRest(_b, [
      "page",
      "path",
      "alt",
      "children",
      "shortcut"
    ]);
    let el = useKeyboardShortcutRef(shortcut), current = useRecord(), recordMatches = path === current.path && alt === current.alt;
    return /* @__PURE__ */ import_react11.default.createElement(NavLink, __spreadValues({
      to: adminPath(page, path, alt),
      activeClassName: "active",
      isActive: (match) => recordMatches && match != null,
      ref: el
    }, otherProps), children);
  }

  // js/sidebar/PageActions.tsx
  var getBrowseButtonTitle = () => {
    let platform = getPlatform();
    return platform === "mac" ? trans("BROWSE_FS_MAC") : platform === "windows" ? trans("BROWSE_FS_WINDOWS") : trans("BROWSE_FS");
  };
  function BrowseFSLink() {
    let record = useRecord(), fsOpen = (0, import_react12.useCallback)(
      (ev) => {
        ev.preventDefault(), post("/browsefs", record).then(({ okay }) => {
          okay || alert(trans("ERROR_CANNOT_BROWSE_FS"));
        }, showErrorDialog);
      },
      [record]
    );
    return /* @__PURE__ */ import_react12.default.createElement("a", {
      href: "#",
      onClick: fsOpen
    }, getBrowseButtonTitle());
  }
  var editKey = { key: "Control+e", mac: "Meta+e", preventDefault: !0 };
  function PageActions({ recordInfo }) {
    let { path, alt } = useRecord();
    return /* @__PURE__ */ import_react12.default.createElement(import_react12.default.Fragment, null, /* @__PURE__ */ import_react12.default.createElement("h3", null, recordInfo.is_attachment ? trans("ATTACHMENT_ACTIONS") : trans("PAGE_ACTIONS")), /* @__PURE__ */ import_react12.default.createElement("ul", {
      className: "nav"
    }, /* @__PURE__ */ import_react12.default.createElement("li", {
      key: "edit"
    }, /* @__PURE__ */ import_react12.default.createElement(AdminLinkWithHotkey, {
      page: "edit",
      path,
      alt,
      shortcut: editKey
    }, recordInfo.is_attachment ? trans("EDIT_METADATA") : trans("EDIT"))), recordInfo.can_be_deleted && /* @__PURE__ */ import_react12.default.createElement("li", {
      key: "delete"
    }, /* @__PURE__ */ import_react12.default.createElement(AdminLink_default, {
      page: "delete",
      path,
      alt
    }, trans("DELETE"))), /* @__PURE__ */ import_react12.default.createElement("li", {
      key: "preview"
    }, /* @__PURE__ */ import_react12.default.createElement(AdminLink_default, {
      page: "preview",
      path,
      alt
    }, trans("PREVIEW"))), recordInfo.exists && /* @__PURE__ */ import_react12.default.createElement("li", {
      key: "fs-open"
    }, /* @__PURE__ */ import_react12.default.createElement(BrowseFSLink, null)), recordInfo.can_have_children && /* @__PURE__ */ import_react12.default.createElement("li", {
      key: "add-child"
    }, /* @__PURE__ */ import_react12.default.createElement(AdminLink_default, {
      page: "add-child",
      path,
      alt
    }, trans("ADD_CHILD_PAGE"))), recordInfo.can_have_attachments && /* @__PURE__ */ import_react12.default.createElement("li", {
      key: "add-attachment"
    }, /* @__PURE__ */ import_react12.default.createElement(AdminLink_default, {
      page: "upload",
      path,
      alt
    }, trans("ADD_ATTACHMENT")))));
  }
  var PageActions_default = (0, import_react12.memo)(PageActions);

  // js/sidebar/Alternatives.tsx
  var import_react13 = __toESM(require_react());
  function Alternatives({ alts }) {
    let page = (0, import_react13.useContext)(PageContext), path = useRecordPath();
    if (alts.length < 2)
      return null;
    let items = alts.map((item) => {
      let title = trans_obj(item.name_i18n);
      item.is_primary ? title += ` (${trans("PRIMARY_ALT")})` : item.primary_overlay && (title += ` (${trans("PRIMARY_OVERLAY")})`);
      let className = item.exists ? "alt" : "alt alt-missing";
      return /* @__PURE__ */ import_react13.default.createElement("li", {
        key: item.alt,
        className
      }, /* @__PURE__ */ import_react13.default.createElement(AdminLink_default, {
        page,
        path,
        alt: item.alt
      }, title));
    });
    return /* @__PURE__ */ import_react13.default.createElement(import_react13.default.Fragment, null, /* @__PURE__ */ import_react13.default.createElement("h3", null, trans("ALTS")), /* @__PURE__ */ import_react13.default.createElement("ul", {
      className: "nav"
    }, items));
  }
  var Alternatives_default = (0, import_react13.memo)(Alternatives);

  // js/sidebar/AttachmentActions.tsx
  var import_react14 = __toESM(require_react());
  function AttachmentActions({ recordInfo }) {
    let alt = useRecordAlt(), attachments = recordInfo.attachments;
    return /* @__PURE__ */ import_react14.default.createElement(import_react14.default.Fragment, null, /* @__PURE__ */ import_react14.default.createElement("h3", null, trans("ATTACHMENTS")), /* @__PURE__ */ import_react14.default.createElement("ul", {
      className: "nav"
    }, attachments.length > 0 ? attachments.map((atch) => /* @__PURE__ */ import_react14.default.createElement("li", {
      key: atch.id
    }, /* @__PURE__ */ import_react14.default.createElement(AdminLink_default, {
      page: "edit",
      path: atch.path,
      alt
    }, atch.id, " (", atch.type, ")"))) : /* @__PURE__ */ import_react14.default.createElement("li", {
      key: "_missing"
    }, /* @__PURE__ */ import_react14.default.createElement("em", null, trans("NO_ATTACHMENTS")))));
  }
  var AttachmentActions_default = (0, import_react14.memo)(AttachmentActions);

  // js/sidebar/ChildActions.tsx
  var import_react16 = __toESM(require_react());

  // js/sidebar/ChildPagination.tsx
  var import_react15 = __toESM(require_react());
  function ChildPagination({
    page,
    numberOfChildren,
    setPage
  }) {
    let pages = Math.ceil(numberOfChildren / 15);
    return pages <= 1 ? null : /* @__PURE__ */ import_react15.default.createElement("li", {
      className: "pagination"
    }, page > 1 ? /* @__PURE__ */ import_react15.default.createElement("a", {
      href: "#",
      onClick: (ev) => {
        ev.preventDefault(), setPage(page - 1);
      }
    }, "\xAB") : /* @__PURE__ */ import_react15.default.createElement("em", null, "\xAB"), /* @__PURE__ */ import_react15.default.createElement("span", {
      className: "page"
    }, page + " / " + pages), page < pages ? /* @__PURE__ */ import_react15.default.createElement("a", {
      href: "#",
      onClick: (ev) => {
        ev.preventDefault(), setPage(page + 1);
      }
    }, "\xBB") : /* @__PURE__ */ import_react15.default.createElement("em", null, "\xBB"));
  }

  // js/sidebar/ChildActions.tsx
  function ChildActions({
    targetPage,
    allChildren,
    page,
    setPage
  }) {
    let alt = useRecordAlt(), shownChildren = allChildren.slice(
      (page - 1) * 15,
      page * 15
    );
    return /* @__PURE__ */ import_react16.default.createElement(import_react16.default.Fragment, null, /* @__PURE__ */ import_react16.default.createElement("h3", null, trans("CHILD_PAGES")), /* @__PURE__ */ import_react16.default.createElement("ul", {
      className: "nav"
    }, /* @__PURE__ */ import_react16.default.createElement(ChildPagination, {
      numberOfChildren: allChildren.length,
      page,
      setPage
    }), shownChildren.length > 0 ? shownChildren.map((child) => /* @__PURE__ */ import_react16.default.createElement("li", {
      key: child.id
    }, /* @__PURE__ */ import_react16.default.createElement(AdminLink_default, {
      page: targetPage,
      path: child.path,
      alt
    }, trans_obj(child.label_i18n)))) : /* @__PURE__ */ import_react16.default.createElement("li", {
      key: "_missing"
    }, /* @__PURE__ */ import_react16.default.createElement("em", null, trans("NO_CHILD_PAGES")))));
  }

  // js/sidebar/Sidebar.tsx
  var ChildPosCache = class {
    constructor() {
      this.memo = [];
    }
    rememberPosition(record, page) {
      this.memo = this.memo.filter(([r]) => r !== record), this.memo.unshift([record, page]), this.memo.length > 5 && (this.memo.length = 5);
    }
    getPosition(record, childCount) {
      var _a2;
      let page = (_a2 = this.memo.find(([r]) => r === record)) == null ? void 0 : _a2[1];
      return page ? Math.min(page, Math.ceil(childCount / 15)) : 1;
    }
  }, compareAlternatives = (a, b) => {
    let nameA = (a.is_primary ? "A" : "B") + trans_obj(a.name_i18n), nameB = (b.is_primary ? "A" : "B") + trans_obj(b.name_i18n);
    return nameA === nameB ? 0 : nameA < nameB ? -1 : 1;
  };
  function Sidebar() {
    let page = (0, import_react17.useContext)(PageContext), path = useRecordPath(), [recordInfo, setRecordInfo] = (0, import_react17.useState)(null), [childrenPage, setChildrenPage] = (0, import_react17.useState)(1), [childPosCache] = (0, import_react17.useState)(() => new ChildPosCache()), [updateForced, forceUpdate] = (0, import_react17.useReducer)((x) => x + 1, 0);
    return (0, import_react17.useEffect)(() => {
      let handler = ({ detail }) => {
        detail === path && forceUpdate();
      };
      return subscribe("lektor-attachments-changed", handler), () => unsubscribe("lektor-attachments-changed", handler);
    }, [path]), (0, import_react17.useEffect)(() => {
      let ignore = !1;
      return get("/recordinfo", { path }).then((resp) => {
        ignore || (setRecordInfo(__spreadProps(__spreadValues({}, resp), { alts: resp.alts.sort(compareAlternatives) })), setChildrenPage(childPosCache.getPosition(path, resp.children.length)));
      }, showErrorDialog), () => {
        ignore = !0;
      };
    }, [path, childPosCache, updateForced]), recordInfo ? /* @__PURE__ */ import_react17.default.createElement(import_react17.default.Fragment, null, /* @__PURE__ */ import_react17.default.createElement(PageActions_default, {
      recordInfo
    }), /* @__PURE__ */ import_react17.default.createElement(Alternatives_default, {
      alts: recordInfo.alts
    }), recordInfo.can_have_children && /* @__PURE__ */ import_react17.default.createElement(ChildActions, {
      targetPage: page === "preview" ? "preview" : "edit",
      allChildren: recordInfo.children,
      page: childrenPage,
      setPage: (page2) => {
        childPosCache.rememberPosition(path, page2), setChildrenPage(page2);
      }
    }), recordInfo.can_have_attachments && /* @__PURE__ */ import_react17.default.createElement(AttachmentActions_default, {
      recordInfo
    })) : null;
  }
  var Sidebar_default = Sidebar;

  // js/components/DialogSlot.tsx
  var import_react23 = __toESM(require_react());

  // js/dialogs/find-files/FindFiles.tsx
  var import_react20 = __toESM(require_react());

  // js/components/SlideDialog.tsx
  var import_react18 = __toESM(require_react());
  function SlideDialog({
    title,
    hasCloseButton,
    dismiss,
    children
  }) {
    return (0, import_react18.useEffect)(() => {
      let handler = (ev) => {
        ev.key === "Escape" && (ev.preventDefault(), dismiss());
      };
      return window.addEventListener("keydown", handler), () => window.removeEventListener("keydown", handler);
    }, [dismiss]), (0, import_react18.useEffect)(() => {
      window.scrollTo(0, 0);
    }, []), /* @__PURE__ */ import_react18.default.createElement("div", {
      className: "dialog-slot"
    }, /* @__PURE__ */ import_react18.default.createElement("div", {
      className: "container"
    }, /* @__PURE__ */ import_react18.default.createElement("div", {
      className: "sliding-panel col-md-6 offset-md-3"
    }, hasCloseButton && /* @__PURE__ */ import_react18.default.createElement("a", {
      href: "#",
      className: "close-btn",
      onClick: (ev) => {
        ev.preventDefault(), dismiss();
      }
    }, trans("CLOSE")), /* @__PURE__ */ import_react18.default.createElement("h3", null, title), children)), /* @__PURE__ */ import_react18.default.createElement("div", {
      className: "interface-protector"
    }));
  }

  // js/dialogs/find-files/ResultRow.tsx
  var import_react19 = __toESM(require_react());
  function ResultRow({
    result,
    isActive,
    dismiss,
    alt,
    target
  }) {
    return /* @__PURE__ */ import_react19.default.createElement("li", {
      className: isActive ? "active" : ""
    }, /* @__PURE__ */ import_react19.default.createElement(AdminLink_default, {
      page: target,
      path: result.path,
      alt,
      onClick: dismiss
    }, result.parents.map((item) => /* @__PURE__ */ import_react19.default.createElement("span", {
      key: item.title
    }, item.title)), /* @__PURE__ */ import_react19.default.createElement("strong", null, result.title)));
  }

  // js/dialogs/find-files/FindFiles.tsx
  function FindFiles({ dismiss }) {
    let alt = useRecordAlt(), page = (0, import_react20.useContext)(PageContext), [query, setQuery] = (0, import_react20.useState)(""), [results, setResults] = (0, import_react20.useState)([]), [selected, setSelected] = (0, import_react20.useState)(-1), goToAdminPage = useGoToAdminPage(), target = page === "preview" ? "preview" : "edit";
    (0, import_react20.useEffect)(() => {
      if (!query) {
        setResults([]), setSelected(-1);
        return;
      }
      let ignore = !1;
      return post("/find", { q: query, alt, lang: getCurrentLanguge() }).then(
        ({ results: results2 }) => {
          ignore || (setResults(results2), setSelected((selected2) => Math.min(selected2, results2.length - 1)));
        },
        showErrorDialog
      ), () => {
        ignore = !0;
      };
    }, [alt, query]);
    let onInputKey = (0, import_react20.useCallback)(
      (event) => {
        if (event.key === "ArrowDown")
          event.preventDefault(), setSelected((selected2) => (selected2 + 1) % results.length);
        else if (event.key === "ArrowUp")
          event.preventDefault(), setSelected(
            (selected2) => (selected2 - 1 + results.length) % results.length
          );
        else if (event.key === "Enter") {
          let item = results[selected];
          item && (dismiss(), goToAdminPage(target, item.path, alt));
        }
      },
      [alt, dismiss, goToAdminPage, results, selected, target]
    );
    return /* @__PURE__ */ import_react20.default.createElement(SlideDialog, {
      dismiss,
      hasCloseButton: !0,
      title: trans("FIND_FILES")
    }, /* @__PURE__ */ import_react20.default.createElement("input", {
      type: "text",
      autoFocus: !0,
      className: "form-control",
      value: query,
      onChange: (ev) => setQuery(ev.target.value),
      onKeyDown: onInputKey,
      placeholder: trans("FIND_FILES_PLACEHOLDER")
    }), /* @__PURE__ */ import_react20.default.createElement("ul", {
      className: "search-results"
    }, results.map((result, idx) => /* @__PURE__ */ import_react20.default.createElement(ResultRow, {
      key: result.path,
      result,
      isActive: idx === selected,
      dismiss,
      alt,
      target
    }))));
  }
  var FindFiles_default = FindFiles;

  // js/dialogs/Publish.tsx
  var import_react21 = __toESM(require_react());
  function TargetServers({
    activeTarget,
    servers,
    setActiveTarget
  }) {
    function onChange(event) {
      setActiveTarget(event.target.value);
    }
    let serverOptions = servers.map((server) => /* @__PURE__ */ import_react21.default.createElement("option", {
      value: server.id,
      key: server.id
    }, trans_fallback(server.name_i18n, server.name) + " (" + server.short_target + ")"));
    return /* @__PURE__ */ import_react21.default.createElement("dl", null, /* @__PURE__ */ import_react21.default.createElement("dt", null, trans("PUBLISH_SERVER")), /* @__PURE__ */ import_react21.default.createElement("dd", null, /* @__PURE__ */ import_react21.default.createElement("div", {
      className: "input-group"
    }, /* @__PURE__ */ import_react21.default.createElement("select", {
      value: activeTarget,
      onChange,
      className: "form-control"
    }, serverOptions))));
  }
  function BuildLog({ log }) {
    let buildLog = (0, import_react21.useRef)(null);
    return (0, import_react21.useEffect)(() => {
      let node = buildLog.current;
      node && (node.scrollTop = node.scrollHeight);
    }, [log]), /* @__PURE__ */ import_react21.default.createElement("pre", {
      ref: buildLog,
      className: "build-log"
    }, log.join(`
`));
  }
  function Publish({
    dismiss,
    preventNavigation
  }) {
    let [servers, setServers] = (0, import_react21.useState)([]), [activeTarget, setActiveTarget] = (0, import_react21.useState)(""), [log, setLog] = (0, import_react21.useState)([]), [state, setState] = (0, import_react21.useState)("IDLE");
    (0, import_react21.useEffect)(() => {
      get("/servers", null).then(({ servers: servers2 }) => {
        setServers(servers2), setActiveTarget(servers2.length ? servers2[0].id : "");
      }, showErrorDialog);
    }, []);
    let onPublish = (0, import_react21.useCallback)(() => {
      setLog([]), setState("BUILDING"), preventNavigation(!0), post("/build", null).then(() => {
        setState("PUBLISH");
        let eventSource = new EventSource(
          apiUrl("/publish", { server: activeTarget })
        );
        eventSource.addEventListener("message", (event) => {
          let data = JSON.parse(event.data);
          data === null ? (setState("DONE"), preventNavigation(!1), eventSource.close()) : setLog((log2) => log2.concat(data.msg));
        });
      }, showErrorDialog);
    }, [activeTarget, preventNavigation]), isSafeToPublish = state === "IDLE" || state === "DONE";
    return /* @__PURE__ */ import_react21.default.createElement(SlideDialog, {
      dismiss,
      hasCloseButton: !1,
      title: trans("PUBLISH")
    }, /* @__PURE__ */ import_react21.default.createElement("p", null, trans("PUBLISH_NOTE")), /* @__PURE__ */ import_react21.default.createElement(TargetServers, {
      activeTarget,
      servers,
      setActiveTarget
    }), /* @__PURE__ */ import_react21.default.createElement("p", null, /* @__PURE__ */ import_react21.default.createElement("button", {
      type: "button",
      className: "btn btn-primary",
      disabled: !isSafeToPublish,
      onClick: onPublish
    }, trans("PUBLISH")), " ", /* @__PURE__ */ import_react21.default.createElement("button", {
      type: "button",
      className: "btn btn-secondary border",
      disabled: !isSafeToPublish,
      onClick: dismiss
    }, trans(state === "DONE" ? "CLOSE" : "CANCEL"))), state !== "IDLE" ? /* @__PURE__ */ import_react21.default.createElement(import_react21.default.Fragment, null, /* @__PURE__ */ import_react21.default.createElement("h3", null, state !== "DONE" ? trans("CURRENTLY_PUBLISHING") : trans("PUBLISH_DONE")), /* @__PURE__ */ import_react21.default.createElement("pre", null, trans("STATE") + ": " + trans(`PUBLISH_STATE_${state}`)), /* @__PURE__ */ import_react21.default.createElement(BuildLog, {
      log
    })) : null);
  }
  var Publish_default = Publish;

  // js/dialogs/Refresh.tsx
  var import_react22 = __toESM(require_react());
  function Refresh({
    dismiss,
    preventNavigation
  }) {
    let [state, setState] = (0, import_react22.useState)("IDLE"), isSafeToNavigate = state === "IDLE" || state === "DONE", refresh2 = (0, import_react22.useCallback)(() => {
      setState("CLEANING"), post("/clean", null).then(() => {
        setState("DONE");
      }, showErrorDialog);
    }, []);
    return (0, import_react22.useEffect)(
      () => preventNavigation(!isSafeToNavigate),
      [preventNavigation, isSafeToNavigate]
    ), /* @__PURE__ */ import_react22.default.createElement(SlideDialog, {
      dismiss,
      hasCloseButton: !1,
      title: trans("REFRESH_BUILD")
    }, /* @__PURE__ */ import_react22.default.createElement("p", null, trans("REFRESH_BUILD_NOTE")), /* @__PURE__ */ import_react22.default.createElement("p", null, /* @__PURE__ */ import_react22.default.createElement("button", {
      type: "button",
      className: "btn btn-primary",
      disabled: !isSafeToNavigate,
      onClick: refresh2
    }, trans("REFRESH_BUILD")), " ", /* @__PURE__ */ import_react22.default.createElement("button", {
      type: "button",
      className: "btn btn-secondary border",
      disabled: !isSafeToNavigate,
      onClick: dismiss
    }, trans(state === "DONE" ? "CLOSE" : "CANCEL"))), state !== "IDLE" && /* @__PURE__ */ import_react22.default.createElement("div", null, /* @__PURE__ */ import_react22.default.createElement("h3", null, state !== "DONE" ? trans("CURRENTLY_REFRESHING_BUILD") : trans("REFRESHING_BUILD_DONE"))));
  }

  // js/components/DialogSlot.tsx
  function DialogSlot() {
    let [dialog, setDialog] = (0, import_react23.useState)(null), dismiss = (0, import_react23.useCallback)(
      () => setDialog((c) => c != null && c.preventNavigation ? c : null),
      []
    ), prevent = (0, import_react23.useCallback)(
      (preventNavigation) => setDialog((d) => d ? __spreadProps(__spreadValues({}, d), { preventNavigation }) : null),
      []
    );
    if ((0, import_react23.useEffect)(() => {
      let handler = ({ detail }) => {
        setDialog((current) => current != null ? current : detail);
      };
      return subscribe("lektor-dialog", handler), () => unsubscribe("lektor-dialog", handler);
    }, []), !dialog)
      return null;
    if (dialog.type === "find-files")
      return /* @__PURE__ */ import_react23.default.createElement(FindFiles_default, {
        dismiss
      });
    if (dialog.type === "refresh")
      return /* @__PURE__ */ import_react23.default.createElement(Refresh, {
        dismiss,
        preventNavigation: prevent
      });
    if (dialog.type === "publish")
      return /* @__PURE__ */ import_react23.default.createElement(Publish_default, {
        dismiss,
        preventNavigation: prevent
      });
    let exhaustiveCheck = dialog.type;
    throw new Error(exhaustiveCheck);
  }

  // js/components/ServerStatus.tsx
  var import_react24 = __toESM(require_react());
  function ServerStatus() {
    let [state, setState] = (0, import_react24.useState)({
      serverIsUp: !0,
      projectId: null
    });
    return (0, import_react24.useEffect)(() => {
      let onInterval = () => {
        get("/ping", null).then(
          ({ project_id }) => {
            setState(
              ({ projectId }) => projectId === null ? { projectId: project_id, serverIsUp: !0 } : { projectId, serverIsUp: projectId === project_id }
            );
          },
          () => {
            setState((s) => __spreadProps(__spreadValues({}, s), { serverIsUp: !1 }));
          }
        );
      }, id = window.setInterval(onInterval, 2e3);
      return () => window.clearInterval(id);
    }, []), state.serverIsUp ? null : /* @__PURE__ */ import_react24.default.createElement("div", {
      className: "interface-protector server-down-panel"
    }, /* @__PURE__ */ import_react24.default.createElement("div", {
      className: "server-down-dialog"
    }, /* @__PURE__ */ import_react24.default.createElement("h3", null, trans("ERROR_SERVER_UNAVAILABLE")), /* @__PURE__ */ import_react24.default.createElement("p", null, trans("ERROR_SERVER_UNAVAILABLE_MESSAGE"))));
  }

  // js/components/ErrorDialog.tsx
  var import_react25 = __toESM(require_react());
  function ErrorDialog() {
    let [error, setError] = (0, import_react25.useState)(null), dismiss = (0, import_react25.useCallback)(() => setError(null), []);
    return (0, import_react25.useEffect)(() => {
      let handler = ({ detail }) => setError(detail);
      return subscribe("lektor-error", handler), () => unsubscribe("lektor-error", handler);
    }, []), error ? /* @__PURE__ */ import_react25.default.createElement(SlideDialog, {
      dismiss,
      hasCloseButton: !1,
      title: trans("ERROR")
    }, /* @__PURE__ */ import_react25.default.createElement("p", null, trans("ERROR_OCURRED"), ": ", trans("ERROR_" + error.code)), /* @__PURE__ */ import_react25.default.createElement("p", null, /* @__PURE__ */ import_react25.default.createElement("button", {
      type: "button",
      className: "btn btn-primary",
      onClick: dismiss
    }, trans("CLOSE")))) : null;
  }

  // js/views/edit/EditPage.tsx
  var import_react45 = __toESM(require_react());

  // js/widgets.tsx
  var import_react42 = __toESM(require_react());

  // js/widgets/IntegerInputWidget.tsx
  var import_react28 = __toESM(require_react());

  // js/widgets/InputWidgetBase.tsx
  var import_react27 = __toESM(require_react());

  // js/userLabel.tsx
  var import_react26 = __toESM(require_react());
  function formatUserLabel(inputConfig) {
    let label = typeof inputConfig == "string" ? inputConfig : trans_obj(inputConfig);
    if (!label)
      return /* @__PURE__ */ import_react26.default.createElement("span", null);
    let iconData = label.match(/^\[\[\s*(.*?)\s*(;\s*(.*?))?\s*\]\]$/);
    if (iconData) {
      let className = "fa fa-" + iconData[1];
      return (iconData[3] || "").match(/90|180|270/) && (className += " fa-rotate-" + iconData[3]), /* @__PURE__ */ import_react26.default.createElement("i", {
        className
      });
    }
    return /* @__PURE__ */ import_react26.default.createElement("span", null, label);
  }

  // js/widgets/types.ts
  function getInputClass(type) {
    return type.size === "small" ? "form-control form-control-sm" : type.size === "large" ? "form-control form-control-lg" : "form-control";
  }

  // js/widgets/InputWidgetBase.tsx
  function InputWidgetBase({
    type,
    value,
    onChange,
    postprocessValue,
    inputAddon: inputAddon5,
    inputType,
    validate,
    disabled,
    placeholder
  }) {
    let onChangeHandler = (0, import_react27.useCallback)(
      (event) => {
        let value2 = event.target.value;
        postprocessValue && (value2 = postprocessValue(value2)), onChange(value2);
      },
      [onChange, postprocessValue]
    ), failure = validate ? validate(value) : null, setValidity = (el) => {
      el == null || el.setCustomValidity(failure != null ? failure : "");
    }, configuredAddon = type.addon_label_i18n, addon = configuredAddon ? formatUserLabel(configuredAddon) : inputAddon5;
    return /* @__PURE__ */ import_react27.default.createElement(import_react27.default.Fragment, null, /* @__PURE__ */ import_react27.default.createElement("div", {
      className: "input-group"
    }, /* @__PURE__ */ import_react27.default.createElement("input", {
      ref: setValidity,
      type: inputType,
      disabled,
      placeholder,
      className: getInputClass(type),
      onChange: onChangeHandler,
      value: value || ""
    }), /* @__PURE__ */ import_react27.default.createElement("span", {
      className: "input-group-text"
    }, addon)), failure !== null && /* @__PURE__ */ import_react27.default.createElement("div", {
      className: "validation-block validation-block-error"
    }, failure));
  }

  // js/widgets/IntegerInputWidget.tsx
  function postprocessInteger(value) {
    return value.trim();
  }
  function validateInteger(value) {
    return value && !value.match(/^-?\d+$/) ? trans("ERROR_INVALID_NUMBER") : null;
  }
  function IntegerInputWidget(props) {
    return /* @__PURE__ */ import_react28.default.createElement(InputWidgetBase, __spreadValues({
      inputType: "text",
      inputAddon: "0",
      postprocessValue: postprocessInteger,
      validate: validateInteger
    }, props));
  }

  // js/widgets/MultiLineTextInputWidget.tsx
  var import_react29 = __toESM(require_react());
  var config = {
    maxInitialHeight: 0.6,
    defaultStaticHeight: 0.4,
    maxTargetHeight: 0.8,
    minTargetLines: 5,
    fallbackShrinkFactor: 0.5,
    extraLines: 2,
    maxResizeHeight: 0.8,
    minWindowWidth: 576
  };
  function _pixels(dimension) {
    return Number(dimension.replace(/px/, ""));
  }
  function deref(ref) {
    if (ref.current === void 0 || ref.current === null)
      throw new Error("Attempt to dereference undefined reference");
    return ref.current;
  }
  function isTouchDevice() {
    return "ontouchstart" in window || navigator.maxTouchPoints > 0;
  }
  function shouldEnableDragHandle() {
    return window.innerWidth >= config.minWindowWidth && !isTouchDevice();
  }
  function textareaResizeWatcher(textarea) {
    let height;
    function mousedownListener() {
      height = textarea.style.height, window.addEventListener("mouseup", mouseupListener, { once: !0 });
    }
    function mouseupListener() {
      if (textarea.style.height !== height) {
        let event = new CustomEvent("textarea-resized", {
          detail: { height: _pixels(textarea.style.height) }
        });
        textarea.dispatchEvent(event);
      }
    }
    return textarea.addEventListener("mousedown", mousedownListener), () => {
      window.removeEventListener("mouseup", mouseupListener), textarea.removeEventListener("mousedown", mousedownListener);
    };
  }
  function initState(arg) {
    let resizeable = shouldEnableDragHandle(), height = window.innerHeight * config.defaultStaticHeight, autosized = !0, lineHeight = 21, borderHeight = 2, decorationHeight = 12.5;
    if (arg) {
      let { textarea, replica } = arg, cs = getComputedStyle(textarea);
      lineHeight = _pixels(cs.lineHeight), borderHeight = _pixels(cs.borderTopWidth) + _pixels(cs.borderBottomWidth), decorationHeight = borderHeight + _pixels(cs.paddingTop) + _pixels(cs.paddingBottom), resizeable && replica.scrollHeight + borderHeight > window.innerHeight * config.maxInitialHeight && (autosized = !1);
    }
    return {
      resizeable,
      autosized,
      height,
      lineHeight,
      borderHeight,
      decorationHeight
    };
  }
  function reduceState(state, action) {
    switch (action.type) {
      case "initialize":
        return initState(action);
      case "set-height":
        return state.autosized ? __spreadProps(__spreadValues({}, state), { autosized: !1, height: action.height }) : state;
      case "autosize":
        return state.autosized ? state : __spreadProps(__spreadValues({}, state), { autosized: !0 });
      case "enable-drag-handle":
        return state.resizeable ? state : __spreadProps(__spreadValues({}, state), { resizeable: !0 });
      case "disable-drag-handle":
        return state.resizeable ? __spreadProps(__spreadValues({}, state), { resizeable: !1, autosized: !0 }) : state;
    }
  }
  function MultiLineTextInputWidget({
    type,
    value,
    placeholder,
    disabled,
    onChange: onChangeProp
  }) {
    let textareaRef = (0, import_react29.useRef)(null), replicaRef = (0, import_react29.useRef)(null), [state, dispatch2] = (0, import_react29.useReducer)(reduceState, null, initState);
    (0, import_react29.useEffect)(() => {
      let textarea = deref(textareaRef), replica = deref(replicaRef);
      dispatch2({ type: "initialize", textarea, replica });
      let windowResizeListener = () => {
        shouldEnableDragHandle() ? dispatch2({ type: "enable-drag-handle" }) : dispatch2({ type: "disable-drag-handle" });
      };
      window.addEventListener("resize", windowResizeListener);
      let disconnectResizeWatcher = textareaResizeWatcher(textarea);
      return () => {
        disconnectResizeWatcher(), window.removeEventListener("resize", windowResizeListener);
      };
    }, []), (0, import_react29.useEffect)(() => {
      if (state.resizeable) {
        let textarea = deref(textareaRef), replica = deref(replicaRef), observer = new MutationObserver(() => {
          textarea.style.height && (replica.style.maxHeight = "0px");
        });
        observer.observe(textarea, { attributeFilter: ["style"] });
        let resizeListener = (event) => {
          let { height } = event.detail;
          dispatch2({ type: "set-height", height });
        };
        return textarea.addEventListener("textarea-resized", resizeListener), () => {
          textarea.removeEventListener("textarea-resized", resizeListener), observer.disconnect();
        };
      }
    }, [state.resizeable]);
    let getNaturalHeight = () => {
      let replica = replicaRef.current;
      return replica ? (replica.innerText = value, replica.scrollHeight + state.borderHeight) : 0;
    };
    (0, import_react29.useEffect)(() => {
      if (!state.autosized) {
        let reasonableHeight = Math.max(
          getNaturalHeight() + state.lineHeight * config.extraLines,
          window.innerHeight * config.maxResizeHeight
        );
        state.height > reasonableHeight && dispatch2({ type: "autosize" });
      }
    });
    let onChange = (event) => {
      onChangeProp(event.target.value);
    };
    return /* @__PURE__ */ import_react29.default.createElement("div", {
      className: "text-widget"
    }, /* @__PURE__ */ import_react29.default.createElement("div", {
      style: { maxHeight: state.autosized ? "" : "0px" },
      ref: replicaRef,
      className: "text-widget__replica"
    }, value), /* @__PURE__ */ import_react29.default.createElement("textarea", {
      style: { height: state.autosized ? "" : `${state.height}px` },
      ref: textareaRef,
      className: [
        "text-widget__textarea",
        state.autosized && "text-widget__textarea--autosized",
        state.resizeable && "text-widget__textarea--resizeable",
        getInputClass(type)
      ].filter(Boolean).join(" "),
      onChange,
      value,
      disabled,
      placeholder
    }), /* @__PURE__ */ import_react29.default.createElement(ToggleButton, {
      state,
      dispatch: dispatch2,
      naturalHeight: getNaturalHeight()
    }));
  }
  function ToggleButton({
    state,
    dispatch: dispatch2,
    naturalHeight
  }) {
    let action = getToggleAction(state, naturalHeight);
    if (!action)
      return null;
    let { title, icon } = toggleButtonLabels[action.type], onClick = (event) => {
      event.preventDefault(), dispatch2(action);
    }, className = "position-absolute top-0 start-100 translate-middle bg-light border rounded-circle";
    return /* @__PURE__ */ import_react29.default.createElement("a", {
      href: "#",
      title: trans(title),
      onClick,
      className
    }, /* @__PURE__ */ import_react29.default.createElement("i", {
      className: `fa fa-${icon} fa-fw`
    }));
  }
  var toggleButtonLabels = {
    autosize: {
      title: "AUTOSIZE_TEXTAREA",
      icon: "expand"
    },
    "set-height": {
      title: "SHRINK_TEXTAREA",
      icon: "compress"
    }
  };
  function getToggleAction(state, naturalHeight) {
    if (!state.resizeable)
      return null;
    if (!state.autosized)
      return { type: "autosize" };
    let targetHeight = Math.min(
      state.height,
      Math.ceil(window.innerHeight * config.maxTargetHeight)
    );
    if (targetHeight < naturalHeight)
      return { type: "set-height", height: targetHeight };
    let lines = Math.round(
      (naturalHeight - state.decorationHeight) / state.lineHeight
    ), targetLines = Math.max(
      config.minTargetLines,
      Math.ceil(lines * config.fallbackShrinkFactor)
    ), fallbackHeight = Math.ceil(
      targetLines * state.lineHeight + state.decorationHeight
    );
    return fallbackHeight < naturalHeight ? { type: "set-height", height: fallbackHeight } : null;
  }

  // js/widgets/BooleanInputWidget.tsx
  var import_react30 = __toESM(require_react());
  var isTrue = (value) => value === "true" || value === "yes" || value === "1", isDeleteOrBackspace = (event) => event.altKey || event.metaKey || event.shiftKey && !event.ctrlKey ? !1 : event.key === "Delete" || event.key === "Backspace";
  function BooleanInputWidget({
    type,
    value,
    disabled,
    placeholder,
    onChange
  }) {
    return /* @__PURE__ */ import_react30.default.createElement("div", {
      className: "form-check"
    }, /* @__PURE__ */ import_react30.default.createElement("label", {
      className: "form-check-label"
    }, /* @__PURE__ */ import_react30.default.createElement("input", {
      type: "checkbox",
      className: [
        "form-check-input",
        `form-check-input--default-${placeholder ? "true" : "false"}`
      ].join(" "),
      disabled,
      ref: (checkbox) => {
        checkbox && (checkbox.indeterminate = !value);
      },
      checked: isTrue(value || placeholder),
      onChange: (ev) => {
        onChange(ev.target.checked ? "yes" : "no");
      },
      onKeyDown: (ev) => {
        isDeleteOrBackspace(ev) && (ev.preventDefault(), ev.stopPropagation(), onChange(null));
      },
      title: trans("TRISTATE_CHECKBOX_TOOLTIP")
    }), type.checkbox_label_i18n ? trans_obj(type.checkbox_label_i18n) : null));
  }

  // js/widgets/DateInputWidget.tsx
  var import_react31 = __toESM(require_react());
  var parseInteger = (s) => Number.parseInt(s, 10);
  function isValidDate(year, month, day) {
    let date = new Date(year, month - 1, day);
    return date.getFullYear() === year && date.getMonth() === month - 1 && date.getDate() === day;
  }
  var DATE_RE = new RegExp("^\\s*(?<year>\\d{4})-(?<month>\\d{1,2})-(?<day>\\d{1,2})\\s*$");
  function validateDate(value) {
    var _a2;
    if (!value)
      return null;
    let groups = (_a2 = value.match(DATE_RE)) == null ? void 0 : _a2.groups;
    return groups && isValidDate(
      parseInteger(groups.year),
      parseInteger(groups.month),
      parseInteger(groups.day)
    ) ? null : trans("ERROR_INVALID_DATE");
  }
  var REVERSE_DATE_RE = new RegExp("^(?<day>\\d{1,2})\\.(?<month>\\d{1,2})\\.(?<year>\\d{4})\\s*$"), pad = (n) => n < 10 ? `0${n}` : `${n}`;
  function postprocessDate(value) {
    var _a2;
    value = value.trim();
    let groups = (_a2 = value.match(REVERSE_DATE_RE)) == null ? void 0 : _a2.groups;
    if (groups) {
      let day = parseInteger(groups.day), month = parseInteger(groups.month);
      return `${parseInteger(groups.year)}-${pad(month)}-${pad(day)}`;
    }
    return value;
  }
  var inputAddon = /* @__PURE__ */ import_react31.default.createElement("i", {
    className: "fa fa-calendar"
  });
  function DateInputWidget(props) {
    return /* @__PURE__ */ import_react31.default.createElement(InputWidgetBase, __spreadValues({
      inputType: "date",
      inputAddon,
      postprocessValue: postprocessDate,
      validate: validateDate
    }, props));
  }

  // js/widgets/FloatInputWidget.tsx
  var import_react32 = __toESM(require_react());
  function postprocessFloat(value) {
    return value.trim();
  }
  function validateFloat(value) {
    return value && !value.match(/^[+,-]?\d+[.]\d+$/) ? trans("ERROR_INVALID_NUMBER") : null;
  }
  function FloatInputWidget(props) {
    return /* @__PURE__ */ import_react32.default.createElement(InputWidgetBase, __spreadValues({
      inputType: "text",
      inputAddon: "0.0",
      postprocessValue: postprocessFloat,
      validate: validateFloat
    }, props));
  }

  // js/widgets/UrlInputWidget.tsx
  var import_react33 = __toESM(require_react());
  function validateUrl(value) {
    return value && !isValidUrl(value) ? trans("ERROR_INVALID_URL") : null;
  }
  var inputAddon2 = /* @__PURE__ */ import_react33.default.createElement("i", {
    className: "fa fa-external-link"
  });
  function UrlInputWidget(props) {
    return /* @__PURE__ */ import_react33.default.createElement(InputWidgetBase, __spreadValues({
      inputType: "text",
      inputAddon: inputAddon2,
      validate: validateUrl
    }, props));
  }

  // js/widgets/SlugInputWidget.tsx
  var import_react34 = __toESM(require_react());
  function postprocessSlug(value) {
    return value.replace(/\s+/g, "-");
  }
  var inputAddon3 = /* @__PURE__ */ import_react34.default.createElement("i", {
    className: "fa fa-link"
  });
  function SlugInputWidget(props) {
    return /* @__PURE__ */ import_react34.default.createElement(InputWidgetBase, __spreadValues({
      inputType: "text",
      inputAddon: inputAddon3,
      postprocessValue: postprocessSlug
    }, props));
  }

  // js/widgets/SingleLineTextInputWidget.tsx
  var import_react35 = __toESM(require_react());
  var inputAddon4 = /* @__PURE__ */ import_react35.default.createElement("i", {
    className: "fa fa-paragraph"
  });
  function SingleLineTextInputWidget(props) {
    return /* @__PURE__ */ import_react35.default.createElement(InputWidgetBase, __spreadValues({
      inputType: "text",
      inputAddon: inputAddon4
    }, props));
  }

  // js/widgets/CheckboxesInputWidget.tsx
  var import_react36 = __toESM(require_react());
  var checkboxIsActive = (field, value) => value !== null && value.includes(field), flipSetValue = (set, value, isActive) => isActive ? set.includes(value) ? set : [...set, value] : set.filter((v) => v !== value), deserialize = (value) => {
    if (!value)
      return null;
    let rv = value.split(",").map((x) => x.trim());
    return rv.length === 1 && rv[0] === "" && (rv = []), rv;
  };
  function CheckboxesInputWidget({
    disabled,
    type,
    onChange,
    value,
    placeholder
  }) {
    var _a2;
    let deserializedValue = deserialize(value), deserializedPlaceholder = deserialize(placeholder);
    return /* @__PURE__ */ import_react36.default.createElement("div", {
      className: "checkboxes-widget"
    }, (_a2 = type.choices) == null ? void 0 : _a2.map(([key, description]) => /* @__PURE__ */ import_react36.default.createElement("div", {
      className: "form-check",
      key
    }, /* @__PURE__ */ import_react36.default.createElement("label", {
      className: "form-check-label"
    }, /* @__PURE__ */ import_react36.default.createElement("input", {
      className: "form-check-input",
      type: "checkbox",
      disabled,
      checked: checkboxIsActive(
        key,
        deserializedValue != null ? deserializedValue : deserializedPlaceholder
      ),
      onChange: (ev) => {
        let newValue = flipSetValue(
          deserializedValue || [],
          key,
          ev.target.checked
        );
        onChange(newValue.join(", "));
      }
    }), trans_obj(description)))));
  }

  // js/widgets/SelectInputWidget.tsx
  var import_react37 = __toESM(require_react());
  function SelectInputWidget(props) {
    var _a2;
    let { type, value, placeholder, onChange, disabled } = props, choices = (_a2 = type.choices) == null ? void 0 : _a2.map((item) => /* @__PURE__ */ import_react37.default.createElement("option", {
      key: item[0],
      value: item[0]
    }, trans_obj(item[1])));
    return /* @__PURE__ */ import_react37.default.createElement("div", null, /* @__PURE__ */ import_react37.default.createElement("select", {
      className: getInputClass(type),
      value: value || placeholder || "",
      onChange: (e) => onChange(e.target.value),
      disabled
    }, /* @__PURE__ */ import_react37.default.createElement("option", {
      key: "",
      value: ""
    }, "----"), choices));
  }

  // js/widgets/flow/FlowWidget.tsx
  var import_react40 = __toESM(require_react());

  // js/widgets/flow/metaformat.tsx
  function lineIsDashes(rawLine) {
    let line = rawLine.trim();
    return line.length >= 3 && line.match(/[^-]/) === null;
  }
  function processBuf(buf) {
    if (buf.length === 0)
      return buf;
    let lines = buf.map((line) => lineIsDashes(line) ? line.substr(1) : line), lastLine = lines[lines.length - 1];
    return lastLine[lastLine.length - 1] === `
` && (lines[lines.length - 1] = lastLine.substr(0, lastLine.length - 1)), lines;
  }
  function trimTabsAndSpaces(str) {
    let match = str.match(/^[\t ]*(.*?)[\t ]*$/m);
    return match ? match[1] : "";
  }
  function tokenize(lines) {
    let key = null, buf = [], wantNewline = !1, rv = [];
    function flushItem() {
      key !== null && (rv.push([key, processBuf(buf)]), key = null, buf = []);
    }
    for (let i = 0; i < lines.length; i++) {
      let match = lines[i].match(/^(.*?)(\r?\n)*$/m), line = match ? `${match[1]}
` : `
`;
      if (line.trimRight() === "---")
        wantNewline = !1, flushItem();
      else if (key !== null) {
        if (wantNewline && (wantNewline = !1, line.match(/^\s*$/)))
          continue;
        buf.push(line);
      } else {
        let bits = line.split(":");
        if (bits.length >= 2) {
          let [rawKey, ...rest] = bits;
          key = rawKey.trim();
          let firstBit = trimTabsAndSpaces(rest.join(":"));
          firstBit.match(/^\s*$/) ? (buf = [], wantNewline = !0) : buf = [firstBit];
        }
      }
    }
    return flushItem(), rv;
  }
  function serialize(blocks) {
    let rv = [];
    return blocks.forEach((item, idx) => {
      let [key, value] = item;
      if (idx > 0 && rv.push(`---
`), value.match(/([\r\n]|(^[\t ])|([\t ]$))/m)) {
        rv.push(key + `:
`), rv.push(`
`);
        let lines = value.split(/\n/);
        lines[lines.length - 1] === "" && lines.pop(), lines.forEach((line) => {
          rv.push(lineIsDashes(line) ? `-${line}
` : `${line}
`);
        });
      } else
        rv.push(key + ": " + value + `
`);
    }), rv;
  }

  // js/widgets/flow/FlowBlock.tsx
  var import_react38 = __toESM(require_react());
  var FlowBlock_default = (0, import_react38.memo)(function({
    block,
    moveBlock,
    renderFormField,
    removeBlock,
    idx,
    length
  }) {
    let [collapsed, toggle] = (0, import_react38.useReducer)((s) => !s, !1);
    return /* @__PURE__ */ import_react38.default.createElement("div", {
      className: "flow-block"
    }, /* @__PURE__ */ import_react38.default.createElement("div", {
      className: "d-flex justify-content-between"
    }, /* @__PURE__ */ import_react38.default.createElement("h4", {
      className: "block-name"
    }, formatUserLabel(block.model.name_i18n)), /* @__PURE__ */ import_react38.default.createElement("div", {
      className: "btn-group action-bar"
    }, /* @__PURE__ */ import_react38.default.createElement("button", {
      type: "button",
      className: "btn btn-secondary btn-sm border",
      title: collapsed ? trans("EXPAND") : trans("COLLAPSE"),
      onClick: toggle
    }, /* @__PURE__ */ import_react38.default.createElement("i", {
      className: collapsed ? "fa fa-expand" : "fa fa-compress"
    })), /* @__PURE__ */ import_react38.default.createElement("button", {
      type: "button",
      className: "btn btn-secondary btn-sm border",
      title: trans("UP"),
      disabled: idx === 0,
      onClick: () => moveBlock(idx, -1)
    }, /* @__PURE__ */ import_react38.default.createElement("i", {
      className: "fa fa-fw fa-chevron-up"
    })), /* @__PURE__ */ import_react38.default.createElement("button", {
      type: "button",
      className: "btn btn-secondary btn-sm border",
      title: trans("DOWN"),
      disabled: idx === length - 1,
      onClick: () => moveBlock(idx, 1)
    }, /* @__PURE__ */ import_react38.default.createElement("i", {
      className: "fa fa-fw fa-chevron-down"
    })), /* @__PURE__ */ import_react38.default.createElement("button", {
      type: "button",
      className: "btn btn-secondary btn-sm border",
      title: trans("REMOVE"),
      onClick: () => removeBlock(idx)
    }, /* @__PURE__ */ import_react38.default.createElement("i", {
      className: "fa fa-fw fa-times"
    })))), collapsed ? null : /* @__PURE__ */ import_react38.default.createElement(FieldRows, {
      fields: block.model.fields,
      renderFunc: renderFormField.bind(void 0, block)
    }));
  });

  // js/widgets/flow/AddFlowBlockButtons.tsx
  var import_react39 = __toESM(require_react());
  function AddFlowBlockButtons({
    flowblock_order,
    flowblocks,
    addBlock
  }) {
    let models = flowblock_order.map((key) => flowblocks[key]);
    return /* @__PURE__ */ import_react39.default.createElement("div", {
      className: "add-flow-block"
    }, /* @__PURE__ */ import_react39.default.createElement("label", null, `${trans("ADD_FLOWBLOCK")}: `), /* @__PURE__ */ import_react39.default.createElement("div", {
      className: "btn-group"
    }, models.map((model) => {
      let label = model.button_label ? formatUserLabel(model.button_label) : formatUserLabel(model.name_i18n);
      return /* @__PURE__ */ import_react39.default.createElement("button", {
        type: "button",
        className: "btn btn-secondary border",
        onClick: () => addBlock(model),
        title: trans_obj(model.name_i18n),
        key: model.id
      }, label);
    })));
  }

  // js/widgets/flow/FlowWidget.tsx
  function parseFlowFormat(value = "") {
    let blocks = [], lines = value.split(/\r?\n/), blockName = null, blockLines = [], flush = () => {
      blockName !== null && (blocks.push([blockName, blockLines]), blockLines = []);
    };
    for (let line of lines) {
      if (blockName === null && line.match(/^\s*$/))
        continue;
      let blockStart = line.match(/^####\s*([^#]*?)\s*####\s*$/);
      if (blockStart) {
        flush(), blockName = blockStart[1];
        continue;
      } else if (blockName === null)
        return [];
      blockLines.push(line.replace(/^#####(.*?)#####$/, "####$1####"));
    }
    return flush(), blocks;
  }
  function serializeFlowFormat(blocks) {
    let serialisedBlocks = [];
    blocks.forEach(([blockName, lines]) => {
      serialisedBlocks.push(`#### ${blockName} ####
`), lines.forEach((line) => {
        serialisedBlocks.push(line.replace(/^(####(.*)####)(\r?\n)?$/, "#$1#$3"));
      });
    });
    let rv = serialisedBlocks.join("");
    return rv[rv.length - 1] === `
` ? rv.substr(0, rv.length - 1) : rv;
  }
  function deserializeFlowBlock(model, lines, localId) {
    let data = {}, rawData = {};
    return tokenize(lines).forEach(([key, lines2]) => {
      rawData[key] = lines2.join("");
    }), model.fields.forEach((field) => {
      let value = rawData[field.name] || "", Widget = getWidgetComponent(field.type);
      !value && field.default && (value = field.default), Widget && Widget.deserializeValue && (value = Widget.deserializeValue(value, field.type)), data[field.name] = value;
    }), { localId, model, data };
  }
  function serializeFlowBlock(flockBlockModel, data) {
    let rv = [];
    return flockBlockModel.fields.forEach((field) => {
      let Widget = getWidgetComponent(field.type);
      if (Widget === null)
        return;
      let value = data[field.name];
      value != null && (Widget.serializeValue && (value = Widget.serializeValue(value, field.type)), rv.push([field.name, value]));
    }), serialize(rv);
  }
  function FlowWidget(props) {
    let { value, onChange } = props, moveBlock = (0, import_react40.useCallback)(
      (idx, offset) => {
        onChange((prevValue) => {
          let newIndex = idx + offset;
          if (newIndex < 0 || newIndex >= prevValue.length)
            return prevValue;
          let newValue = [...prevValue];
          return newValue[newIndex] = prevValue[idx], newValue[idx] = prevValue[newIndex], newValue;
        });
      },
      [onChange]
    ), removeBlock = (0, import_react40.useCallback)(
      (idx) => {
        confirm(trans("REMOVE_FLOWBLOCK_PROMPT")) && onChange((v) => v.filter((item, i) => i !== idx));
      },
      [onChange]
    ), addNewBlock = (0, import_react40.useCallback)(
      (flowBlockModel) => {
        onChange((prevValue) => {
          prevValue != null || (prevValue = []);
          let newBlockId = Math.max(0, ...prevValue.map(({ localId }) => localId)) + 1, newBlock = deserializeFlowBlock(flowBlockModel, [], newBlockId);
          return [...prevValue, newBlock];
        });
      },
      [onChange]
    ), renderFormField = (0, import_react40.useCallback)(
      (block, field) => {
        let fieldValue = block.data[field.name], placeholder = field.default, Widget = getWidgetComponentWithFallback(field.type);
        Widget.deserializeValue && placeholder != null && (placeholder = Widget.deserializeValue(placeholder, field.type));
        let setFieldValue = (fieldName, v) => {
          onChange((prevValue) => {
            let newValue = [...prevValue], idx = newValue.indexOf(block), data = __spreadProps(__spreadValues({}, block.data), {
              [fieldName]: typeof v == "function" ? v(block.data[fieldName]) : v
            });
            return newValue[idx] = __spreadProps(__spreadValues({}, block), { data }), newValue;
          });
        };
        return /* @__PURE__ */ import_react40.default.createElement(FieldBox, {
          key: field.name,
          value: fieldValue,
          placeholder,
          field,
          setFieldValue
        });
      },
      [onChange]
    ), { flowblock_order, flowblocks } = props.type;
    return /* @__PURE__ */ import_react40.default.createElement("div", {
      className: "flow-widget"
    }, value.map((block, idx) => /* @__PURE__ */ import_react40.default.createElement(FlowBlock_default, {
      key: block.localId,
      block,
      moveBlock,
      renderFormField,
      removeBlock,
      length: value.length,
      idx
    })), /* @__PURE__ */ import_react40.default.createElement(AddFlowBlockButtons, {
      flowblock_order,
      flowblocks,
      addBlock: addNewBlock
    }));
  }
  FlowWidget.deserializeValue = (value, { flowblocks }) => {
    let blockId = 0, blocks = [];
    return parseFlowFormat(value).forEach(([id, lines]) => {
      let flowBlock = flowblocks[id];
      flowBlock !== void 0 && blocks.push(deserializeFlowBlock(flowBlock, lines, ++blockId));
    }), blocks;
  };
  FlowWidget.serializeValue = (value) => serializeFlowFormat(
    value.map(({ model: flowBlockModel, data }) => [
      flowBlockModel.id,
      serializeFlowBlock(flowBlockModel, data)
    ])
  );

  // js/widgets/fakeWidgets.tsx
  var import_react41 = __toESM(require_react());
  function LineWidget() {
    return /* @__PURE__ */ import_react41.default.createElement("hr", null);
  }
  LineWidget.isFakeWidget = !0;
  function SpacingWidget() {
    return /* @__PURE__ */ import_react41.default.createElement("div", {
      className: "spacing-widget"
    });
  }
  SpacingWidget.isFakeWidget = !0;
  function InfoWidget(props) {
    let label = trans_obj(props.field.label_i18n);
    return /* @__PURE__ */ import_react41.default.createElement("div", {
      className: "info-widget"
    }, /* @__PURE__ */ import_react41.default.createElement("p", null, label ? /* @__PURE__ */ import_react41.default.createElement("strong", null, label + ": ") : null, trans_obj(props.field.description_i18n)));
  }
  InfoWidget.isFakeWidget = !0;
  function HeadingWidget(props) {
    var _a2;
    return /* @__PURE__ */ import_react41.default.createElement("h3", null, trans_obj((_a2 = props.field.type.heading_i18n) != null ? _a2 : {}));
  }
  HeadingWidget.isFakeWidget = !0;

  // js/widgets.tsx
  var widgetComponents = {
    "singleline-text": SingleLineTextInputWidget,
    "multiline-text": MultiLineTextInputWidget,
    datepicker: DateInputWidget,
    integer: IntegerInputWidget,
    float: FloatInputWidget,
    checkbox: BooleanInputWidget,
    url: UrlInputWidget,
    slug: SlugInputWidget,
    flow: FlowWidget,
    checkboxes: CheckboxesInputWidget,
    select: SelectInputWidget,
    "f-line": LineWidget,
    "f-spacing": SpacingWidget,
    "f-info": InfoWidget,
    "f-heading": HeadingWidget
  };
  function FallbackWidget(props) {
    return /* @__PURE__ */ import_react42.default.createElement("div", null, /* @__PURE__ */ import_react42.default.createElement("em", null, `Widget "${props.type.widget}" not implemented`, ` (used by type "${props.type.name}")`));
  }
  var FieldBox = import_react42.default.memo(function(props) {
    let { field, value, placeholder, disabled, setFieldValue } = props, onChange = (0, import_react42.useCallback)(
      (value2) => setFieldValue(field.name, value2),
      [field, setFieldValue]
    ), className = `col-md-${getFieldColumns(field)}`, Widget = getWidgetComponentWithFallback(field.type);
    if (Widget.isFakeWidget)
      return /* @__PURE__ */ import_react42.default.createElement("div", {
        className,
        key: field.name
      }, /* @__PURE__ */ import_react42.default.createElement(Widget, {
        key: field.name,
        field
      }));
    let description = field.description_i18n ? /* @__PURE__ */ import_react42.default.createElement("div", {
      className: "help-text"
    }, trans_obj(field.description_i18n)) : null;
    return /* @__PURE__ */ import_react42.default.createElement("div", {
      className,
      key: field.name
    }, /* @__PURE__ */ import_react42.default.createElement("dl", {
      className: "field"
    }, field.hide_label ? null : /* @__PURE__ */ import_react42.default.createElement("dt", null, trans_obj(field.label_i18n)), /* @__PURE__ */ import_react42.default.createElement("dd", null, description, /* @__PURE__ */ import_react42.default.createElement(Widget, {
      value,
      onChange,
      type: field.type,
      placeholder: placeholder != null ? placeholder : void 0,
      disabled
    }))));
  });
  function getWidgetComponent(type) {
    return widgetComponents[type.widget] || null;
  }
  function getWidgetComponentWithFallback(type) {
    return widgetComponents[type.widget] || FallbackWidget;
  }
  function getFieldColumns(field) {
    let widthSpec = (field.type.width || "1/1").split("/"), fraction = 12 * +widthSpec[0] / +widthSpec[1];
    return Number.isNaN(fraction) ? 12 : Math.min(12, Math.max(2, parseInt(`${fraction}`)));
  }
  function processFields(fields) {
    let rows = [], currentColumns = 0, row = [];
    return fields.forEach((field) => {
      let columns = getFieldColumns(field);
      columns + currentColumns > 12 && (rows.push(row), currentColumns = 0, row = []), row.push(field), currentColumns += columns;
    }), row.length > 0 && rows.push(row), rows;
  }
  function splitFields(fields) {
    let normalFields = [], systemFields = [];
    return fields.forEach((field) => {
      field.name.substr(0, 1) === "_" ? systemFields.push(field) : normalFields.push(field);
    }), [normalFields, systemFields];
  }
  function FieldRows({
    fields,
    renderFunc
  }) {
    let rows = (0, import_react42.useMemo)(() => processFields(fields), [fields]);
    return /* @__PURE__ */ import_react42.default.createElement(import_react42.default.Fragment, null, rows.map((row, idx) => /* @__PURE__ */ import_react42.default.createElement("div", {
      key: idx,
      className: "row field-row"
    }, row.map(renderFunc))));
  }

  // js/views/edit/EditPageActions.tsx
  var import_react43 = __toESM(require_react());
  function EditPageActions({
    recordInfo,
    hasPendingChanges
  }) {
    let { path, alt } = useRecord(), goToAdminPage = useGoToAdminPage(), deleteRecord = (0, import_react43.useCallback)(() => {
      goToAdminPage("delete", path, alt);
    }, [alt, goToAdminPage, path]);
    return /* @__PURE__ */ import_react43.default.createElement("div", {
      className: "actions"
    }, /* @__PURE__ */ import_react43.default.createElement("button", {
      type: "submit",
      disabled: !hasPendingChanges,
      className: "btn btn-primary"
    }, trans("SAVE_CHANGES")), recordInfo.can_be_deleted ? /* @__PURE__ */ import_react43.default.createElement("button", {
      type: "button",
      className: "btn btn-secondary border",
      onClick: deleteRecord
    }, trans("DELETE")) : null);
  }

  // js/components/ToggleGroup.tsx
  var import_react44 = __toESM(require_react());
  function ToggleGroup({
    className = "",
    groupTitle,
    children
  }) {
    let [open, setOpen] = (0, import_react44.useState)(!1), toggle = (0, import_react44.useCallback)((event) => {
      event.preventDefault(), setOpen((v) => !v);
    }, []);
    return /* @__PURE__ */ import_react44.default.createElement("div", {
      className: open ? `${className} toggle-group` : `${className} toggle-group closed`
    }, /* @__PURE__ */ import_react44.default.createElement("h4", {
      className: "toggle-group-header",
      onClick: toggle
    }, groupTitle), /* @__PURE__ */ import_react44.default.createElement("div", {
      className: "toggle-group-content"
    }, children));
  }

  // js/views/edit/EditPage.tsx
  function legalFields(recordDataModel, recordInfo) {
    function isLegalField(field) {
      switch (field.name) {
        case "_id":
        case "_path":
        case "_gid":
        case "_alt":
        case "_source_alt":
        case "_model":
        case "_attachment_for":
          return !1;
        case "_attachment_type":
          return recordInfo.is_attachment;
      }
      return !0;
    }
    return recordDataModel.fields.filter(isLegalField);
  }
  function getPlaceholderForField(recordInfo, Widget, field) {
    return field.default !== null ? Widget.deserializeValue ? Widget.deserializeValue(field.default, field.type) : field.default : field.name === "_slug" ? recordInfo.slug_format : field.name === "_template" ? recordInfo.default_template : field.name === "_attachment_type" ? recordInfo.implied_attachment_type : null;
  }
  function getValueForField(recordData, Widget, field) {
    let value = recordData[field.name];
    return value === void 0 && (value = "", Widget.deserializeValue && (value = Widget.deserializeValue(value, field.type))), value;
  }
  function getValues({
    recordDataModel,
    recordInfo,
    recordData
  }) {
    let rv = {};
    return !recordDataModel || !recordInfo || legalFields(recordDataModel, recordInfo).forEach((field) => {
      let value = recordData[field.name];
      if (value !== void 0) {
        let Widget = getWidgetComponentWithFallback(field.type);
        Widget.serializeValue && (value = Widget.serializeValue(value, field.type));
      } else
        value = null;
      rv[field.name] = value;
    }), rv;
  }
  function EditPage() {
    let { path, alt } = useRecord(), form = (0, import_react45.useRef)(null), [recordData, setRecordData] = (0, import_react45.useState)({}), [recordDataModel, setRecordDataModel] = (0, import_react45.useState)(null), [recordInfo, setRecordnfo] = (0, import_react45.useState)(null), [hasPendingChanges, setHasPendingChanges] = (0, import_react45.useState)(!1), goToAdminPage = useGoToAdminPage();
    (0, import_react45.useEffect)(() => {
      let ignore = !1;
      return get("/rawrecord", { path, alt }).then(
        ({ datamodel, data, record_info }) => {
          if (!ignore) {
            let recordData2 = {};
            legalFields(datamodel, record_info).forEach((field) => {
              let Widget = getWidgetComponentWithFallback(field.type), value = data[field.name];
              value !== void 0 && (Widget.deserializeValue && (value = Widget.deserializeValue(value, field.type)), recordData2[field.name] = value);
            }), setRecordData(recordData2), setRecordDataModel(datamodel), setRecordnfo(record_info), setHasPendingChanges(!1);
          }
        },
        showErrorDialog
      ), () => {
        ignore = !0;
      };
    }, [alt, path]), (0, import_react45.useEffect)(() => {
      let onKeyPress2 = keyboardShortcutHandler(
        { key: "Control+s", mac: "Meta+s", preventDefault: !0 },
        () => {
          var _a2;
          hasPendingChanges ? (_a2 = form.current) == null || _a2.requestSubmit() : goToAdminPage("preview", path, alt);
        }
      );
      return window.addEventListener("keydown", onKeyPress2), () => window.removeEventListener("keydown", onKeyPress2);
    }, [hasPendingChanges, goToAdminPage, path, alt]);
    let setFieldValue = (0, import_react45.useCallback)(
      (fieldName, value) => {
        setRecordData((r) => __spreadProps(__spreadValues({}, r), {
          [fieldName]: typeof value == "function" ? value(r[fieldName]) : value
        })), setHasPendingChanges(!0);
      },
      []
    ), saveChanges = (0, import_react45.useCallback)(
      (ev) => {
        ev.preventDefault();
        let data = getValues({ recordDataModel, recordInfo, recordData });
        put("/rawrecord", { data, path, alt }).then(() => {
          setHasPendingChanges(!1), goToAdminPage("preview", path, alt);
        }, showErrorDialog);
      },
      [alt, goToAdminPage, path, recordData, recordDataModel, recordInfo]
    ), renderFormField = (0, import_react45.useCallback)(
      (field) => {
        let Widget = getWidgetComponentWithFallback(field.type);
        if (!recordInfo)
          return null;
        let disabled = !(field.alts_enabled === null || field.alts_enabled !== (recordInfo.alt === "_primary"));
        return /* @__PURE__ */ import_react45.default.createElement(FieldBox, {
          key: field.name,
          value: getValueForField(recordData, Widget, field),
          placeholder: getPlaceholderForField(recordInfo, Widget, field),
          field,
          setFieldValue,
          disabled
        });
      },
      [recordData, recordInfo, setFieldValue]
    );
    if (!recordInfo || !recordDataModel)
      return null;
    let label = trans_fallback(recordInfo.label_i18n, recordInfo.label), title = recordInfo.is_attachment ? trans_format("EDIT_ATTACHMENT_METADATA_OF", label) : trans_format("EDIT_PAGE_NAME", label), fields = legalFields(recordDataModel, recordInfo), [normalFields, systemFields] = splitFields(fields);
    return /* @__PURE__ */ import_react45.default.createElement(import_react45.default.Fragment, null, hasPendingChanges && /* @__PURE__ */ import_react45.default.createElement(Prompt, {
      message: trans("UNLOAD_ACTIVE_TAB")
    }), /* @__PURE__ */ import_react45.default.createElement("h2", null, title), /* @__PURE__ */ import_react45.default.createElement("form", {
      ref: form,
      onSubmit: saveChanges
    }, /* @__PURE__ */ import_react45.default.createElement(FieldRows, {
      fields: normalFields,
      renderFunc: renderFormField
    }), systemFields.length > 0 && /* @__PURE__ */ import_react45.default.createElement(ToggleGroup, {
      groupTitle: trans("SYSTEM_FIELDS"),
      className: "system-fields"
    }, /* @__PURE__ */ import_react45.default.createElement(FieldRows, {
      fields: systemFields,
      renderFunc: renderFormField
    })), /* @__PURE__ */ import_react45.default.createElement(EditPageActions, {
      recordInfo,
      hasPendingChanges
    })));
  }
  var EditPage_default = EditPage;

  // js/views/delete/DeletePage.tsx
  var import_react52 = __toESM(require_react());

  // js/views/delete/DeletableAttachments.tsx
  var import_react46 = __toESM(require_react());
  function DeletableAttachments({
    recordInfo
  }) {
    return /* @__PURE__ */ import_react46.default.createElement("div", null, /* @__PURE__ */ import_react46.default.createElement("h4", null, trans("ATTACHMENTS_TO_BE_DELETED")), /* @__PURE__ */ import_react46.default.createElement("ul", null, recordInfo.attachments.map((atch) => /* @__PURE__ */ import_react46.default.createElement("li", {
      key: atch.id
    }, atch.id, " (", atch.type, ")"))));
  }

  // js/views/delete/DeletableChildPages.tsx
  var import_react47 = __toESM(require_react());
  function DeletableChildPages({
    recordInfo
  }) {
    return /* @__PURE__ */ import_react47.default.createElement("div", null, /* @__PURE__ */ import_react47.default.createElement("h4", null, trans("CHILD_PAGES_TO_BE_DELETED")), /* @__PURE__ */ import_react47.default.createElement("ul", null, recordInfo.children.map((child) => /* @__PURE__ */ import_react47.default.createElement("li", {
      key: child.id
    }, trans_obj(child.label_i18n)))));
  }

  // js/views/delete/DeletableAlternatives.tsx
  var import_react48 = __toESM(require_react());
  function DeletableAlternatives({
    recordInfo
  }) {
    return /* @__PURE__ */ import_react48.default.createElement("div", null, /* @__PURE__ */ import_react48.default.createElement("h4", null, trans("ALTS_TO_BE_DELETED")), /* @__PURE__ */ import_react48.default.createElement("ul", null, recordInfo.alts.filter((i) => i.exists).map((item) => {
      let title = trans_obj(item.name_i18n);
      return item.is_primary ? title += " (" + trans("PRIMARY_ALT") + ")" : item.primary_overlay && (title += " (" + trans("PRIMARY_OVERLAY") + ")"), /* @__PURE__ */ import_react48.default.createElement("li", {
        key: item.alt
      }, title);
    })));
  }

  // js/views/delete/DeletePageActions.tsx
  var import_react49 = __toESM(require_react());
  function DeletePageActions({
    deleteRecord,
    cancelDelete
  }) {
    return /* @__PURE__ */ import_react49.default.createElement("div", {
      className: "actions"
    }, /* @__PURE__ */ import_react49.default.createElement("button", {
      type: "button",
      className: "btn btn-primary",
      onClick: deleteRecord
    }, trans("YES_DELETE")), /* @__PURE__ */ import_react49.default.createElement("button", {
      type: "button",
      className: "btn btn-secondary border",
      onClick: cancelDelete
    }, trans("NO_CANCEL")));
  }

  // js/views/delete/DeleteAllAltsChoice.tsx
  var import_react50 = __toESM(require_react());
  function DeleteAllAltsChoice({
    deleteMasterRecord,
    setDeleteMasterRecord,
    isAttachment
  }) {
    return /* @__PURE__ */ import_react50.default.createElement(import_react50.default.Fragment, null, /* @__PURE__ */ import_react50.default.createElement("p", null, trans("DELETE_PRIMARY_ALT_INFO")), /* @__PURE__ */ import_react50.default.createElement("ul", null, /* @__PURE__ */ import_react50.default.createElement("li", null, /* @__PURE__ */ import_react50.default.createElement("label", null, /* @__PURE__ */ import_react50.default.createElement("input", {
      type: "radio",
      checked: deleteMasterRecord,
      onChange: () => setDeleteMasterRecord(!0)
    }), " ", trans(
      isAttachment ? "DELETE_ALL_ATTACHMENT_ALTS" : "DELETE_ALL_PAGE_ALTS"
    ))), /* @__PURE__ */ import_react50.default.createElement("li", null, /* @__PURE__ */ import_react50.default.createElement("label", null, /* @__PURE__ */ import_react50.default.createElement("input", {
      type: "radio",
      checked: !deleteMasterRecord,
      onChange: () => setDeleteMasterRecord(!1)
    }), " ", trans(
      isAttachment ? "DELETE_ONLY_PRIMARY_ATTACHMENT_ALT" : "DELETE_ONLY_PRIMARY_PAGE_ALT"
    )))));
  }

  // js/views/delete/DeletePageHeader.tsx
  var import_react51 = __toESM(require_react());
  function DeletePageHeader({
    recordInfo,
    currentAlt
  }) {
    let isPrimary = currentAlt === "_primary", altInfo = recordInfo.alts.find((a) => a.alt === currentAlt), label = trans_fallback(recordInfo.label_i18n, recordInfo.id);
    return !isPrimary && altInfo && (label += ` (${trans_obj(altInfo.name_i18n)})`), /* @__PURE__ */ import_react51.default.createElement(import_react51.default.Fragment, null, /* @__PURE__ */ import_react51.default.createElement("h2", null, trans_format("DELETE_RECORD", label)), recordInfo.is_attachment ? /* @__PURE__ */ import_react51.default.createElement("p", null, isPrimary ? trans("DELETE_ATTACHMENT_PROMPT") : trans("DELETE_ATTACHMENT_ALT_PROMPT"), " ") : /* @__PURE__ */ import_react51.default.createElement("p", null, isPrimary ? trans("DELETE_PAGE_PROMPT") : trans("DELETE_PAGE_ALT_PROMPT"), " ", recordInfo.children.length > 0 && isPrimary ? trans("DELETE_PAGE_CHILDREN_WARNING") : null));
  }

  // js/views/delete/DeletePage.tsx
  function DeletePage() {
    let { path, alt } = useRecord(), [recordInfo, setRecordInfo] = (0, import_react52.useState)(null), [deleteMasterRecord, setDeleteMasterRecord] = (0, import_react52.useState)(!0), goToAdminPage = useGoToAdminPage();
    (0, import_react52.useEffect)(() => {
      let ignore = !1;
      return get("/recordinfo", { path }).then((resp) => {
        ignore || setRecordInfo(resp);
      }, showErrorDialog), () => {
        ignore = !0;
      };
    }, [path]), (0, import_react52.useEffect)(() => {
      setDeleteMasterRecord(alt === "_primary");
    }, [alt]);
    let deleteRecord = (0, import_react52.useCallback)(() => {
      let parent = getParentPath(path), targetPath = parent === null ? "/" : parent;
      post("/deleterecord", {
        path,
        alt,
        delete_master: deleteMasterRecord ? "1" : "0"
      }).then(() => {
        recordInfo != null && recordInfo.is_attachment && dispatch("lektor-attachments-changed", parent != null ? parent : ""), goToAdminPage("edit", targetPath, alt);
      }, showErrorDialog);
    }, [alt, path, deleteMasterRecord, goToAdminPage, recordInfo]), cancelDelete = (0, import_react52.useCallback)(() => {
      goToAdminPage("edit", path, alt);
    }, [goToAdminPage, path, alt]);
    if (!recordInfo || !recordInfo.can_be_deleted)
      return null;
    let hasAlts = recordInfo.alts.filter((a) => a.exists).length > 1;
    return /* @__PURE__ */ import_react52.default.createElement("div", null, /* @__PURE__ */ import_react52.default.createElement(DeletePageHeader, {
      recordInfo,
      currentAlt: alt
    }), hasAlts && alt === "_primary" && /* @__PURE__ */ import_react52.default.createElement(DeleteAllAltsChoice, {
      deleteMasterRecord,
      setDeleteMasterRecord,
      isAttachment: recordInfo.is_attachment
    }), deleteMasterRecord && /* @__PURE__ */ import_react52.default.createElement(import_react52.default.Fragment, null, hasAlts && alt === "_primary" && /* @__PURE__ */ import_react52.default.createElement(DeletableAlternatives, {
      recordInfo
    }), recordInfo.children.length > 0 && /* @__PURE__ */ import_react52.default.createElement(DeletableChildPages, {
      recordInfo
    }), recordInfo.attachments.length > 0 && /* @__PURE__ */ import_react52.default.createElement(DeletableAttachments, {
      recordInfo
    })), /* @__PURE__ */ import_react52.default.createElement(DeletePageActions, {
      deleteRecord,
      cancelDelete
    }));
  }
  var DeletePage_default = DeletePage;

  // js/views/PreviewPage.tsx
  var import_react53 = __toESM(require_react());
  function getSiteRootUrl() {
    let site_root = `/${trimLeadingSlashes($LEKTOR_CONFIG.site_root)}`, absRootUrl = new URL(site_root, document.baseURI).href;
    return trimTrailingSlashes(absRootUrl);
  }
  function usePreviewUrl(siteRootUrl) {
    let { path, alt } = useRecord(), [previewUrl, setPreviewUrl] = (0, import_react53.useState)("about:blank");
    return (0, import_react53.useEffect)(() => {
      let ignore = !1;
      return get("/previewinfo", { path, alt }).then(({ url }) => {
        ignore || setPreviewUrl(url ? siteRootUrl + url : "about:blank");
      }, showErrorDialog), () => {
        ignore = !0;
      };
    }, [path, alt, siteRootUrl]), previewUrl;
  }
  function PreviewPage() {
    let siteRootUrl = (0, import_react53.useMemo)(getSiteRootUrl, []), previewUrl = usePreviewUrl(siteRootUrl), iframe = (0, import_react53.useRef)(null), goToAdminPage = useGoToAdminPage();
    (0, import_react53.useEffect)(() => {
      var _a2, _b;
      let location = (_b = (_a2 = iframe.current) == null ? void 0 : _a2.contentWindow) == null ? void 0 : _b.location;
      location && location.href !== previewUrl && location.replace(previewUrl);
    }, [previewUrl]);
    let onLoad = (0, import_react53.useCallback)(() => {
      var _a2, _b;
      let contentWindow = (_a2 = iframe.current) == null ? void 0 : _a2.contentWindow;
      if (contentWindow)
        try {
          contentWindow.addEventListener("keydown", (ev) => {
            let clone = new KeyboardEvent(ev.type, ev);
            window.dispatchEvent(clone) || ev.preventDefault();
          });
          let href = (_b = contentWindow.location) == null ? void 0 : _b.href;
          if (href && href !== previewUrl && href.startsWith(`${siteRootUrl}/`)) {
            let url_path = href.substring(siteRootUrl.length);
            get("/matchurl", { url_path }).then(({ exists, alt, path }) => {
              exists && goToAdminPage("preview", path, alt);
            }, showErrorDialog);
          }
        } catch (e) {
          if (!(e instanceof DOMException && e.name === "SecurityError"))
            throw e;
        }
    }, [goToAdminPage, previewUrl, siteRootUrl]);
    return /* @__PURE__ */ import_react53.default.createElement("iframe", {
      className: "preview",
      ref: iframe,
      onLoad
    });
  }

  // js/views/add-child-page/AddChildPage.tsx
  var import_react57 = __toESM(require_react());

  // js/slugify.ts
  var charmap = {
    \u00C0: "A",
    \u00C1: "A",
    \u00C2: "A",
    \u00C3: "A",
    \u00C4: "Ae",
    \u00C5: "A",
    \u00C6: "AE",
    \u00C7: "C",
    \u00C8: "E",
    \u00C9: "E",
    \u00CA: "E",
    \u00CB: "E",
    \u00CC: "I",
    \u00CD: "I",
    \u00CE: "I",
    \u00CF: "I",
    \u00D0: "D",
    \u00D1: "N",
    \u00D2: "O",
    \u00D3: "O",
    \u00D4: "O",
    \u00D5: "O",
    \u00D6: "Oe",
    \u0150: "O",
    \u00D8: "O",
    \u00D9: "U",
    \u00DA: "U",
    \u00DB: "U",
    \u00DC: "Ue",
    \u0170: "U",
    \u00DD: "Y",
    \u00DE: "TH",
    \u00DF: "ss",
    \u00E0: "a",
    \u00E1: "a",
    \u00E2: "a",
    \u00E3: "a",
    \u00E4: "ae",
    \u00E5: "a",
    \u00E6: "ae",
    \u00E7: "c",
    \u00E8: "e",
    \u00E9: "e",
    \u00EA: "e",
    \u00EB: "e",
    \u00EC: "i",
    \u00ED: "i",
    \u00EE: "i",
    \u00EF: "i",
    \u00F0: "d",
    \u00F1: "n",
    \u00F2: "o",
    \u00F3: "o",
    \u00F4: "o",
    \u00F5: "o",
    \u00F6: "oe",
    \u0151: "o",
    \u00F8: "o",
    \u00F9: "u",
    \u00FA: "u",
    \u00FB: "u",
    \u00FC: "ue",
    \u0171: "u",
    \u00FD: "y",
    \u00FE: "th",
    \u00FF: "y",
    "\u1E9E": "SS",
    \u03B1: "a",
    \u03B2: "b",
    \u03B3: "g",
    \u03B4: "d",
    \u03B5: "e",
    \u03B6: "z",
    \u03B7: "h",
    \u03B8: "8",
    \u03B9: "i",
    \u03BA: "k",
    \u03BB: "l",
    \u03BC: "m",
    \u03BD: "n",
    \u03BE: "3",
    \u03BF: "o",
    \u03C0: "p",
    \u03C1: "r",
    \u03C3: "s",
    \u03C4: "t",
    \u03C5: "y",
    \u03C6: "f",
    \u03C7: "x",
    \u03C8: "ps",
    \u03C9: "w",
    \u03AC: "a",
    \u03AD: "e",
    \u03AF: "i",
    \u03CC: "o",
    \u03CD: "y",
    \u03AE: "h",
    \u03CE: "w",
    \u03C2: "s",
    \u03CA: "i",
    \u03B0: "y",
    \u03CB: "y",
    \u0390: "i",
    \u0391: "A",
    \u0392: "B",
    \u0393: "G",
    \u0394: "D",
    \u0395: "E",
    \u0396: "Z",
    \u0397: "H",
    \u0398: "8",
    \u0399: "I",
    \u039A: "K",
    \u039B: "L",
    \u039C: "M",
    \u039D: "N",
    \u039E: "3",
    \u039F: "O",
    \u03A0: "P",
    \u03A1: "R",
    \u03A3: "S",
    \u03A4: "T",
    \u03A5: "Y",
    \u03A6: "F",
    \u03A7: "X",
    \u03A8: "PS",
    \u03A9: "W",
    \u0386: "A",
    \u0388: "E",
    \u038A: "I",
    \u038C: "O",
    \u038E: "Y",
    \u0389: "H",
    \u038F: "W",
    \u03AA: "I",
    \u03AB: "Y",
    \u015F: "s",
    \u015E: "S",
    \u0131: "i",
    \u0130: "I",
    \u011F: "g",
    \u011E: "G",
    \u0430: "a",
    \u0431: "b",
    \u0432: "v",
    \u0433: "g",
    \u0434: "d",
    \u0435: "e",
    \u0451: "yo",
    \u0436: "zh",
    \u0437: "z",
    \u0438: "i",
    \u0439: "j",
    \u043A: "k",
    \u043B: "l",
    \u043C: "m",
    \u043D: "n",
    \u043E: "o",
    \u043F: "p",
    \u0440: "r",
    \u0441: "s",
    \u0442: "t",
    \u0443: "u",
    \u0444: "f",
    \u0445: "h",
    \u0446: "c",
    \u0447: "ch",
    \u0448: "sh",
    \u0449: "sh",
    \u044A: "u",
    \u044B: "y",
    \u044C: "",
    \u044D: "e",
    \u044E: "yu",
    \u044F: "ya",
    \u0410: "A",
    \u0411: "B",
    \u0412: "V",
    \u0413: "G",
    \u0414: "D",
    \u0415: "E",
    \u0401: "Yo",
    \u0416: "Zh",
    \u0417: "Z",
    \u0418: "I",
    \u0419: "J",
    \u041A: "K",
    \u041B: "L",
    \u041C: "M",
    \u041D: "N",
    \u041E: "O",
    \u041F: "P",
    \u0420: "R",
    \u0421: "S",
    \u0422: "T",
    \u0423: "U",
    \u0424: "F",
    \u0425: "H",
    \u0426: "C",
    \u0427: "Ch",
    \u0428: "Sh",
    \u0429: "Sh",
    \u042A: "U",
    \u042B: "Y",
    \u042C: "",
    \u042D: "E",
    \u042E: "Yu",
    \u042F: "Ya",
    \u0404: "Ye",
    \u0406: "I",
    \u0407: "Yi",
    \u0490: "G",
    \u0454: "ye",
    \u0456: "i",
    \u0457: "yi",
    \u0491: "g",
    \u010D: "c",
    \u010F: "d",
    \u011B: "e",
    \u0148: "n",
    \u0159: "r",
    \u0161: "s",
    \u0165: "t",
    \u016F: "u",
    \u017E: "z",
    \u010C: "C",
    \u010E: "D",
    \u011A: "E",
    \u0147: "N",
    \u0158: "R",
    \u0160: "S",
    \u0164: "T",
    \u016E: "U",
    \u017D: "Z",
    \u0105: "a",
    \u0107: "c",
    \u0119: "e",
    \u0142: "l",
    \u0144: "n",
    \u015B: "s",
    \u017A: "z",
    \u017C: "z",
    \u0104: "A",
    \u0106: "C",
    \u0118: "E",
    \u0141: "L",
    \u0143: "N",
    \u015A: "S",
    \u0179: "Z",
    \u017B: "Z",
    \u0101: "a",
    \u0113: "e",
    \u0123: "g",
    \u012B: "i",
    \u0137: "k",
    \u013C: "l",
    \u0146: "n",
    \u016B: "u",
    \u0100: "A",
    \u0112: "E",
    \u0122: "G",
    \u012A: "I",
    \u0136: "K",
    \u013B: "L",
    \u0145: "N",
    \u016A: "U",
    \u0117: "e",
    \u012F: "i",
    \u0173: "u",
    \u0116: "E",
    \u012E: "I",
    \u0172: "U",
    \u021B: "t",
    \u021A: "T",
    \u0163: "t",
    \u0162: "T",
    \u0219: "s",
    \u0218: "S",
    \u0103: "a",
    \u0102: "A",
    "\u20AC": "euro",
    "\u20A2": "cruzeiro",
    "\u20A3": "french franc",
    "\xA3": "pound",
    "\u20A4": "lira",
    "\u20A5": "mill",
    "\u20A6": "naira",
    "\u20A7": "peseta",
    "\u20A8": "rupee",
    "\u20A9": "won",
    "\u20AA": "new shequel",
    "\u20AB": "dong",
    "\u20AD": "kip",
    "\u20AE": "tugrik",
    "\u20AF": "drachma",
    "\u20B0": "penny",
    "\u20B1": "peso",
    "\u20B2": "guarani",
    "\u20B3": "austral",
    "\u20B4": "hryvnia",
    "\u20B5": "cedi",
    "\xA2": "cent",
    "\xA5": "yen",
    \u5143: "yuan",
    \u5186: "yen",
    "\uFDFC": "rial",
    "\u20A0": "ecu",
    "\xA4": "currency",
    "\u0E3F": "baht",
    $: "dollar",
    "\u20B9": "indian rupee",
    "\xA9": "(c)",
    \u0153: "oe",
    \u0152: "OE",
    "\u2211": "sum",
    "\xAE": "(r)",
    "\u2020": "+",
    "\u201C": '"',
    "\u201D": '"',
    "\u2018": "'",
    "\u2019": "'",
    "\u2202": "d",
    \u0192: "f",
    "\u2122": "tm",
    "\u2120": "sm",
    "\u2026": "...",
    "\u02DA": "o",
    \u00BA: "o",
    \u00AA: "a",
    "\u2022": "*",
    "\u2206": "delta",
    "\u221E": "infinity",
    "\u2665": "love",
    "&": "and",
    "|": "or",
    "<": "less",
    ">": "greater",
    "=": "equals"
  }, multicharmap = {
    "<3": "love",
    "&&": "and",
    "||": "or",
    "w/": "with"
  }, pretty = {
    replacement: "-",
    remove: /[.]/g,
    charmap,
    multicharmap
  };
  function slugify(rawString) {
    let string = rawString.toString(), opts = pretty, lengths = [];
    Object.keys(opts.multicharmap).forEach((key) => {
      let len = key.length;
      lengths.includes(len) || lengths.push(len);
    });
    let result = "";
    for (let char, i = 0, l = string.length; i < l; i++)
      char = string[i], lengths.some((len) => {
        let str = string.substr(i, len);
        return opts.multicharmap[str] ? (i += len - 1, char = opts.multicharmap[str], !0) : !1;
      }) || opts.charmap[char] && (char = opts.charmap[char]), char = char.replace(/[^\w\s\-._~]/g, ""), opts.remove && (char = char.replace(opts.remove, "")), result += char;
    return result = result.replace(/^\s+|\s+$/g, ""), result = result.replace(/[-\s]+/g, opts.replacement), result.replace(opts.replacement + "$", "");
  }

  // js/views/add-child-page/AvailableModels.tsx
  var import_react54 = __toESM(require_react());
  function AvailableModels({
    newChildInfo,
    selected,
    setSelected
  }) {
    let available = Object.values(newChildInfo.available_models).sort(
      (a, b) => a.name.toLowerCase().localeCompare(b.name.toLowerCase())
    );
    return /* @__PURE__ */ import_react54.default.createElement("div", {
      className: "row field-row"
    }, /* @__PURE__ */ import_react54.default.createElement("div", {
      className: "col-md-12"
    }, /* @__PURE__ */ import_react54.default.createElement("dl", {
      className: "field"
    }, /* @__PURE__ */ import_react54.default.createElement("dt", null, trans("MODEL")), /* @__PURE__ */ import_react54.default.createElement("dd", null, /* @__PURE__ */ import_react54.default.createElement("select", {
      value: selected,
      className: "form-control",
      onChange: (event) => setSelected(event.target.value)
    }, available.map((model) => /* @__PURE__ */ import_react54.default.createElement("option", {
      value: model.id,
      key: model.id
    }, trans_obj(model.name_i18n))))))));
  }

  // js/views/add-child-page/PrimaryFieldRow.tsx
  var import_react55 = __toESM(require_react());
  function PrimaryField({
    primary,
    field,
    setPrimary
  }) {
    let Widget = getWidgetComponentWithFallback(field.type), value = Widget.deserializeValue ? Widget.deserializeValue(primary, field.type) : primary;
    return /* @__PURE__ */ import_react55.default.createElement("div", {
      className: "row field-row"
    }, /* @__PURE__ */ import_react55.default.createElement("div", {
      className: "col-md-12"
    }, /* @__PURE__ */ import_react55.default.createElement("dl", {
      className: "field"
    }, /* @__PURE__ */ import_react55.default.createElement("dt", null, formatUserLabel(field.label_i18n)), /* @__PURE__ */ import_react55.default.createElement("dd", null, /* @__PURE__ */ import_react55.default.createElement(Widget, {
      value,
      onChange: setPrimary,
      type: field.type,
      field
    })))));
  }

  // js/views/add-child-page/Slug.tsx
  var import_react56 = __toESM(require_react());
  function Slug({
    id,
    placeholder,
    setId
  }) {
    return /* @__PURE__ */ import_react56.default.createElement("div", {
      className: "row field-row"
    }, /* @__PURE__ */ import_react56.default.createElement("div", {
      className: "col-md-12"
    }, /* @__PURE__ */ import_react56.default.createElement("dl", {
      className: "field"
    }, /* @__PURE__ */ import_react56.default.createElement("dt", null, formatUserLabel(trans("ID"))), /* @__PURE__ */ import_react56.default.createElement("dd", null, /* @__PURE__ */ import_react56.default.createElement(SlugInputWidget, {
      value: id,
      placeholder,
      onChange: setId,
      type: { widget: "slug", name: "slug", size: "normal" }
    })))));
  }

  // js/views/add-child-page/AddChildPage.tsx
  var alertErr = (text) => {
    alert(trans("ERROR_PREFIX") + text);
  };
  function AddChildPage() {
    var _a2;
    let { path, alt } = useRecord(), [newChildInfo, setNewChildInfo] = (0, import_react57.useState)(null), [selectedModel, setSelectedModel] = (0, import_react57.useState)(""), [id, setId] = (0, import_react57.useState)(""), [primary, setPrimary] = (0, import_react57.useState)("");
    (0, import_react57.useEffect)(() => {
      let ignore = !1;
      return get("/newrecord", { path }).then((resp) => {
        var _a3;
        if (!ignore) {
          let defaultModel = resp.available_models.page ? "page" : Object.keys(resp.available_models).sort()[0], selectedModel2 = (_a3 = resp.implied_model) != null ? _a3 : defaultModel;
          setNewChildInfo(resp), setId(""), setPrimary(""), setSelectedModel(selectedModel2);
        }
      }, showErrorDialog), () => {
        ignore = !0;
      };
    }, [path]);
    let primaryField = (_a2 = newChildInfo == null ? void 0 : newChildInfo.available_models[selectedModel]) == null ? void 0 : _a2.primary_field, goToAdminPage = useGoToAdminPage(), createRecord = (0, import_react57.useCallback)(() => {
      let currentId = id || slugify(primary).toLowerCase();
      if (!currentId) {
        alertErr(trans("ERROR_NO_ID_PROVIDED"));
        return;
      }
      let data = {};
      newChildInfo != null && newChildInfo.implied_model || (data._model = selectedModel), primaryField && (data[primaryField.name] = primary), post("/newrecord", null, { id: currentId, path, data }).then(
        ({ exists, valid_id, path: path2 }) => {
          exists ? alertErr(trans_format("ERROR_PAGE_ID_DUPLICATE", currentId)) : valid_id ? goToAdminPage("edit", path2, alt) : alertErr(trans_format("ERROR_INVALID_ID", currentId));
        },
        showErrorDialog
      );
    }, [
      alt,
      goToAdminPage,
      newChildInfo,
      id,
      path,
      primary,
      primaryField,
      selectedModel
    ]);
    return newChildInfo ? /* @__PURE__ */ import_react57.default.createElement(import_react57.default.Fragment, null, /* @__PURE__ */ import_react57.default.createElement("h2", null, trans_format("ADD_CHILD_PAGE_TO", newChildInfo.label)), /* @__PURE__ */ import_react57.default.createElement("p", null, trans("ADD_CHILD_PAGE_NOTE")), !newChildInfo.implied_model && /* @__PURE__ */ import_react57.default.createElement(AvailableModels, {
      newChildInfo,
      selected: selectedModel,
      setSelected: setSelectedModel
    }), primaryField && /* @__PURE__ */ import_react57.default.createElement(PrimaryField, {
      primary,
      setPrimary,
      field: primaryField
    }), /* @__PURE__ */ import_react57.default.createElement(Slug, {
      id,
      placeholder: slugify(primary).toLowerCase(),
      setId
    }), /* @__PURE__ */ import_react57.default.createElement("div", {
      className: "actions"
    }, /* @__PURE__ */ import_react57.default.createElement("button", {
      type: "button",
      className: "btn btn-primary",
      onClick: createRecord
    }, trans("CREATE_CHILD_PAGE")))) : null;
  }
  var AddChildPage_default = AddChildPage;

  // js/views/AddAttachmentPage.tsx
  var import_react58 = __toESM(require_react());
  function AddAttachmentPage() {
    let path = useRecordPath(), [newAttachmentInfo, setNewAttachmentInfo] = (0, import_react58.useState)(null), fileInput = (0, import_react58.useRef)(null), [currentFiles, setCurrentFiles] = (0, import_react58.useState)([]), [isUploading, setIsUploading] = (0, import_react58.useState)(!1), [currentProgress, setCurrentProgress] = (0, import_react58.useState)(0);
    (0, import_react58.useEffect)(() => {
      let ignore = !1;
      return get("/newattachment", { path }).then((resp) => {
        ignore || setNewAttachmentInfo(resp);
      }, showErrorDialog), () => {
        ignore = !0;
      };
    }, [path]);
    let onFileSelected = (0, import_react58.useCallback)(
      ({ target }) => {
        if (isUploading || !target.files)
          return;
        let files = Array.prototype.slice.call(target.files, 0);
        setCurrentFiles(files), setIsUploading(!0);
        let formData = new FormData();
        formData.append("path", path), files.forEach((file) => {
          formData.append("file", file, file.name);
        });
        let xhr = new XMLHttpRequest();
        xhr.open("POST", apiUrl("/newattachment")), xhr.onprogress = (event) => {
          setCurrentProgress(Math.round(event.loaded * 100 / event.total));
        }, xhr.onload = () => {
          setIsUploading(!1), setCurrentProgress(100), dispatch("lektor-attachments-changed", path);
        }, xhr.send(formData);
      },
      [path, isUploading]
    );
    return newAttachmentInfo ? /* @__PURE__ */ import_react58.default.createElement(import_react58.default.Fragment, null, /* @__PURE__ */ import_react58.default.createElement("h2", null, trans_format("ADD_ATTACHMENT_TO", newAttachmentInfo.label)), /* @__PURE__ */ import_react58.default.createElement("p", null, trans("ADD_ATTACHMENT_NOTE")), /* @__PURE__ */ import_react58.default.createElement("ul", null, currentFiles.map((file) => /* @__PURE__ */ import_react58.default.createElement("li", {
      key: file.name
    }, file.name, " (", file.type, ")"))), /* @__PURE__ */ import_react58.default.createElement("p", null, trans("PROGRESS"), ": ", currentProgress, "%"), /* @__PURE__ */ import_react58.default.createElement("input", {
      type: "file",
      ref: fileInput,
      multiple: !0,
      style: { display: "none" },
      onChange: onFileSelected
    }), /* @__PURE__ */ import_react58.default.createElement("div", {
      className: "actions"
    }, /* @__PURE__ */ import_react58.default.createElement("button", {
      type: "button",
      className: "btn btn-primary",
      onClick: () => {
        var _a2;
        return (_a2 = fileInput.current) == null ? void 0 : _a2.click();
      }
    }, trans("UPLOAD")))) : null;
  }
  var AddAttachmentPage_default = AddAttachmentPage;

  // js/views/App.tsx
  var mainComponentForPage = {
    edit: EditPage_default,
    delete: DeletePage_default,
    preview: PreviewPage,
    "add-child": AddChildPage_default,
    upload: AddAttachmentPage_default
  };
  function App() {
    let page = (0, import_react59.useContext)(PageContext), [sidebarIsActive, toggleSidebar] = (0, import_react59.useReducer)((v) => !v, !1), MainComponent = mainComponentForPage[page];
    return /* @__PURE__ */ import_react59.default.createElement(import_react59.default.Fragment, null, /* @__PURE__ */ import_react59.default.createElement(Header, {
      sidebarIsActive,
      toggleSidebar
    }), /* @__PURE__ */ import_react59.default.createElement(ErrorDialog, null), /* @__PURE__ */ import_react59.default.createElement(DialogSlot, null), /* @__PURE__ */ import_react59.default.createElement("div", {
      className: "container"
    }, /* @__PURE__ */ import_react59.default.createElement("div", {
      className: sidebarIsActive ? "block-offcanvas row active" : "block-offcanvas row"
    }, /* @__PURE__ */ import_react59.default.createElement("nav", {
      className: "sidebar col-md-2 col-sm-3"
    }, /* @__PURE__ */ import_react59.default.createElement(Sidebar_default, null)), /* @__PURE__ */ import_react59.default.createElement("div", {
      className: "main col-md-10 col-sm-9"
    }, /* @__PURE__ */ import_react59.default.createElement(MainComponent, null)))), /* @__PURE__ */ import_react59.default.createElement(ServerStatus, null));
  }

  // js/main.tsx
  function Page({ page }) {
    let { search } = useLocation(), record = (0, import_react60.useMemo)(() => {
      var _a2, _b;
      let params = new URLSearchParams(search);
      return {
        path: `/${trimSlashes((_a2 = params.get("path")) != null ? _a2 : "/")}`,
        alt: (_b = params.get("alt")) != null ? _b : "_primary"
      };
    }, [search]);
    return /* @__PURE__ */ import_react60.default.createElement(PageContext.Provider, {
      value: page
    }, /* @__PURE__ */ import_react60.default.createElement(RecordContext.Provider, {
      value: record
    }, /* @__PURE__ */ import_react60.default.createElement(App, null)));
  }
  function Main() {
    var _a2;
    let root = $LEKTOR_CONFIG.admin_root, page = (_a2 = useRouteMatch(`${root}/:page`)) == null ? void 0 : _a2.params.page;
    return isPageName(page) ? /* @__PURE__ */ import_react60.default.createElement(Page, {
      page
    }) : /* @__PURE__ */ import_react60.default.createElement(Redirect, {
      to: adminPath("edit", "/", "_primary")
    });
  }
  var dash = document.getElementById("dash");
  dash && (setCurrentLanguage($LEKTOR_CONFIG.lang), import_react_dom.default.render(
    /* @__PURE__ */ import_react60.default.createElement(import_react60.StrictMode, null, /* @__PURE__ */ import_react60.default.createElement(BrowserRouter, null, /* @__PURE__ */ import_react60.default.createElement(Main, null))),
    dash
  ));
})();
/*
object-assign
(c) Sindre Sorhus
@license MIT
*/
/** @license React v0.20.2
 * scheduler.production.min.js
 *
 * Copyright (c) Facebook, Inc. and its affiliates.
 *
 * This source code is licensed under the MIT license found in the
 * LICENSE file in the root directory of this source tree.
 */
/** @license React v16.13.1
 * react-is.production.min.js
 *
 * Copyright (c) Facebook, Inc. and its affiliates.
 *
 * This source code is licensed under the MIT license found in the
 * LICENSE file in the root directory of this source tree.
 */
/** @license React v17.0.2
 * react-dom.production.min.js
 *
 * Copyright (c) Facebook, Inc. and its affiliates.
 *
 * This source code is licensed under the MIT license found in the
 * LICENSE file in the root directory of this source tree.
 */
/** @license React v17.0.2
 * react.production.min.js
 *
 * Copyright (c) Facebook, Inc. and its affiliates.
 *
 * This source code is licensed under the MIT license found in the
 * LICENSE file in the root directory of this source tree.
 */
//# sourceMappingURL=app.js.map
