/*! Sortable 1.13.0 - MIT | git://github.com/SortableJS/Sortable.git */
!(function (t, e) {
  "object" == typeof exports && "undefined" != typeof module
    ? (module.exports = e())
    : "function" == typeof define && define.amd
    ? define(e)
    : ((t = t || self).Sortable = e());
})(this, function () {
  "use strict";
  function o(t) {
    return (o =
      "function" == typeof Symbol && "symbol" == typeof Symbol.iterator
        ? function (t) {
            return typeof t;
          }
        : function (t) {
            return t &&
              "function" == typeof Symbol &&
              t.constructor === Symbol &&
              t !== Symbol.prototype
              ? "symbol"
              : typeof t;
          })(t);
  }
  function a() {
    return (a =
      Object.assign ||
      function (t) {
        for (var e = 1; e < arguments.length; e++) {
          var n = arguments[e];
          for (var o in n)
            Object.prototype.hasOwnProperty.call(n, o) && (t[o] = n[o]);
        }
        return t;
      }).apply(this, arguments);
  }
  function I(i) {
    for (var t = 1; t < arguments.length; t++) {
      var r = null != arguments[t] ? arguments[t] : {},
        e = Object.keys(r);
      "function" == typeof Object.getOwnPropertySymbols &&
        (e = e.concat(
          Object.getOwnPropertySymbols(r).filter(function (t) {
            return Object.getOwnPropertyDescriptor(r, t).enumerable;
          })
        )),
        e.forEach(function (t) {
          var e, n, o;
          (e = i),
            (o = r[(n = t)]),
            n in e
              ? Object.defineProperty(e, n, {
                  value: o,
                  enumerable: !0,
                  configurable: !0,
                  writable: !0
                })
              : (e[n] = o);
        });
    }
    return i;
  }
  function l(t, e) {
    if (null == t) return {};
    var n,
      o,
      i = (function (t, e) {
        if (null == t) return {};
        var n,
          o,
          i = {},
          r = Object.keys(t);
        for (o = 0; o < r.length; o++)
          (n = r[o]), 0 <= e.indexOf(n) || (i[n] = t[n]);
        return i;
      })(t, e);
    if (Object.getOwnPropertySymbols) {
      var r = Object.getOwnPropertySymbols(t);
      for (o = 0; o < r.length; o++)
        (n = r[o]),
          0 <= e.indexOf(n) ||
            (Object.prototype.propertyIsEnumerable.call(t, n) && (i[n] = t[n]));
    }
    return i;
  }
  function e(t) {
    return (
      (function (t) {
        if (Array.isArray(t)) {
          for (var e = 0, n = new Array(t.length); e < t.length; e++)
            n[e] = t[e];
          return n;
        }
      })(t) ||
      (function (t) {
        if (
          Symbol.iterator in Object(t) ||
          "[object Arguments]" === Object.prototype.toString.call(t)
        )
          return Array.from(t);
      })(t) ||
      (function () {
        throw new TypeError("Invalid attempt to spread non-iterable instance");
      })()
    );
  }
  function t(t) {
    if ("undefined" != typeof window && window.navigator)
      return !!navigator.userAgent.match(t);
  }
  var w = t(/(?:Trident.*rv[ :]?11\.|msie|iemobile|Windows Phone)/i),
    E = t(/Edge/i),
    c = t(/firefox/i),
    u = t(/safari/i) && !t(/chrome/i) && !t(/android/i),
    n = t(/iP(ad|od|hone)/i),
    i = t(/chrome/i) && t(/android/i),
    r = { capture: !1, passive: !1 };
  function d(t, e, n) {
    t.addEventListener(e, n, !w && r);
  }
  function s(t, e, n) {
    t.removeEventListener(e, n, !w && r);
  }
  function h(t, e) {
    if (e) {
      if ((">" === e[0] && (e = e.substring(1)), t))
        try {
          if (t.matches) return t.matches(e);
          if (t.msMatchesSelector) return t.msMatchesSelector(e);
          if (t.webkitMatchesSelector) return t.webkitMatchesSelector(e);
        } catch (t) {
          return !1;
        }
      return !1;
    }
  }
  function P(t, e, n, o) {
    if (t) {
      n = n || document;
      do {
        if (
          (null != e &&
            (">" === e[0] ? t.parentNode === n && h(t, e) : h(t, e))) ||
          (o && t === n)
        )
          return t;
        if (t === n) break;
      } while (
        (t =
          (i = t).host && i !== document && i.host.nodeType
            ? i.host
            : i.parentNode)
      );
    }
    var i;
    return null;
  }
  var f,
    p = /\s+/g;
  function k(t, e, n) {
    if (t && e)
      if (t.classList) t.classList[n ? "add" : "remove"](e);
      else {
        var o = (" " + t.className + " ")
          .replace(p, " ")
          .replace(" " + e + " ", " ");
        t.className = (o + (n ? " " + e : "")).replace(p, " ");
      }
  }
  function R(t, e, n) {
    var o = t && t.style;
    if (o) {
      if (void 0 === n)
        return (
          document.defaultView && document.defaultView.getComputedStyle
            ? (n = document.defaultView.getComputedStyle(t, ""))
            : t.currentStyle && (n = t.currentStyle),
          void 0 === e ? n : n[e]
        );
      e in o || -1 !== e.indexOf("webkit") || (e = "-webkit-" + e),
        (o[e] = n + ("string" == typeof n ? "" : "px"));
    }
  }
  function v(t, e) {
    var n = "";
    if ("string" == typeof t) n = t;
    else
      do {
        var o = R(t, "transform");
        o && "none" !== o && (n = o + " " + n);
      } while (!e && (t = t.parentNode));
    var i =
      window.DOMMatrix ||
      window.WebKitCSSMatrix ||
      window.CSSMatrix ||
      window.MSCSSMatrix;
    return i && new i(n);
  }
  function g(t, e, n) {
    if (t) {
      var o = t.getElementsByTagName(e),
        i = 0,
        r = o.length;
      if (n) for (; i < r; i++) n(o[i], i);
      return o;
    }
    return [];
  }
  function A() {
    var t = document.scrollingElement;
    return t || document.documentElement;
  }
  function X(t, e, n, o, i) {
    if (t.getBoundingClientRect || t === window) {
      var r, a, l, s, c, u, d;
      if (
        ((d =
          t !== window && t.parentNode && t !== A()
            ? ((a = (r = t.getBoundingClientRect()).top),
              (l = r.left),
              (s = r.bottom),
              (c = r.right),
              (u = r.height),
              r.width)
            : ((l = a = 0),
              (s = window.innerHeight),
              (c = window.innerWidth),
              (u = window.innerHeight),
              window.innerWidth)),
        (e || n) && t !== window && ((i = i || t.parentNode), !w))
      )
        do {
          if (
            i &&
            i.getBoundingClientRect &&
            ("none" !== R(i, "transform") ||
              (n && "static" !== R(i, "position")))
          ) {
            var h = i.getBoundingClientRect();
            (a -= h.top + parseInt(R(i, "border-top-width"))),
              (l -= h.left + parseInt(R(i, "border-left-width"))),
              (s = a + r.height),
              (c = l + r.width);
            break;
          }
        } while ((i = i.parentNode));
      if (o && t !== window) {
        var f = v(i || t),
          p = f && f.a,
          g = f && f.d;
        f && ((s = (a /= g) + (u /= g)), (c = (l /= p) + (d /= p)));
      }
      return { top: a, left: l, bottom: s, right: c, width: d, height: u };
    }
  }
  function Y(t, e, n) {
    for (var o = H(t, !0), i = X(t)[e]; o; ) {
      var r = X(o)[n];
      if (!("top" === n || "left" === n ? r <= i : i <= r)) return o;
      if (o === A()) break;
      o = H(o, !1);
    }
    return !1;
  }
  function m(t, e, n) {
    for (var o = 0, i = 0, r = t.children; i < r.length; ) {
      if (
        "none" !== r[i].style.display &&
        r[i] !== Rt.ghost &&
        r[i] !== Rt.dragged &&
        P(r[i], n.draggable, t, !1)
      ) {
        if (o === e) return r[i];
        o++;
      }
      i++;
    }
    return null;
  }
  function B(t, e) {
    for (
      var n = t.lastElementChild;
      n && (n === Rt.ghost || "none" === R(n, "display") || (e && !h(n, e)));

    )
      n = n.previousElementSibling;
    return n || null;
  }
  function F(t, e) {
    var n = 0;
    if (!t || !t.parentNode) return -1;
    for (; (t = t.previousElementSibling); )
      "TEMPLATE" === t.nodeName.toUpperCase() ||
        t === Rt.clone ||
        (e && !h(t, e)) ||
        n++;
    return n;
  }
  function b(t) {
    var e = 0,
      n = 0,
      o = A();
    if (t)
      do {
        var i = v(t),
          r = i.a,
          a = i.d;
        (e += t.scrollLeft * r), (n += t.scrollTop * a);
      } while (t !== o && (t = t.parentNode));
    return [e, n];
  }
  function H(t, e) {
    if (!t || !t.getBoundingClientRect) return A();
    var n = t,
      o = !1;
    do {
      if (n.clientWidth < n.scrollWidth || n.clientHeight < n.scrollHeight) {
        var i = R(n);
        if (
          (n.clientWidth < n.scrollWidth &&
            ("auto" == i.overflowX || "scroll" == i.overflowX)) ||
          (n.clientHeight < n.scrollHeight &&
            ("auto" == i.overflowY || "scroll" == i.overflowY))
        ) {
          if (!n.getBoundingClientRect || n === document.body) return A();
          if (o || e) return n;
          o = !0;
        }
      }
    } while ((n = n.parentNode));
    return A();
  }
  function y(t, e) {
    return (
      Math.round(t.top) === Math.round(e.top) &&
      Math.round(t.left) === Math.round(e.left) &&
      Math.round(t.height) === Math.round(e.height) &&
      Math.round(t.width) === Math.round(e.width)
    );
  }
  function D(e, n) {
    return function () {
      if (!f) {
        var t = arguments;
        1 === t.length ? e.call(this, t[0]) : e.apply(this, t),
          (f = setTimeout(function () {
            f = void 0;
          }, n));
      }
    };
  }
  function L(t, e, n) {
    (t.scrollLeft += e), (t.scrollTop += n);
  }
  function S(t) {
    var e = window.Polymer,
      n = window.jQuery || window.Zepto;
    return e && e.dom
      ? e.dom(t).cloneNode(!0)
      : n
      ? n(t).clone(!0)[0]
      : t.cloneNode(!0);
  }
  function _(t, e) {
    R(t, "position", "absolute"),
      R(t, "top", e.top),
      R(t, "left", e.left),
      R(t, "width", e.width),
      R(t, "height", e.height);
  }
  function C(t) {
    R(t, "position", ""),
      R(t, "top", ""),
      R(t, "left", ""),
      R(t, "width", ""),
      R(t, "height", "");
  }
  var j = "Sortable" + new Date().getTime();
  function T() {
    var e,
      o = [];
    return {
      captureAnimationState: function () {
        (o = []),
          this.options.animation &&
            [].slice.call(this.el.children).forEach(function (t) {
              if ("none" !== R(t, "display") && t !== Rt.ghost) {
                o.push({ target: t, rect: X(t) });
                var e = I({}, o[o.length - 1].rect);
                if (t.thisAnimationDuration) {
                  var n = v(t, !0);
                  n && ((e.top -= n.f), (e.left -= n.e));
                }
                t.fromRect = e;
              }
            });
      },
      addAnimationState: function (t) {
        o.push(t);
      },
      removeAnimationState: function (t) {
        o.splice(
          (function (t, e) {
            for (var n in t)
              if (t.hasOwnProperty(n))
                for (var o in e)
                  if (e.hasOwnProperty(o) && e[o] === t[n][o]) return Number(n);
            return -1;
          })(o, { target: t }),
          1
        );
      },
      animateAll: function (t) {
        var c = this;
        if (!this.options.animation)
          return clearTimeout(e), void ("function" == typeof t && t());
        var u = !1,
          d = 0;
        o.forEach(function (t) {
          var e = 0,
            n = t.target,
            o = n.fromRect,
            i = X(n),
            r = n.prevFromRect,
            a = n.prevToRect,
            l = t.rect,
            s = v(n, !0);
          s && ((i.top -= s.f), (i.left -= s.e)),
            (n.toRect = i),
            n.thisAnimationDuration &&
              y(r, i) &&
              !y(o, i) &&
              (l.top - i.top) / (l.left - i.left) ==
                (o.top - i.top) / (o.left - i.left) &&
              (e = (function (t, e, n, o) {
                return (
                  (Math.sqrt(
                    Math.pow(e.top - t.top, 2) + Math.pow(e.left - t.left, 2)
                  ) /
                    Math.sqrt(
                      Math.pow(e.top - n.top, 2) + Math.pow(e.left - n.left, 2)
                    )) *
                  o.animation
                );
              })(l, r, a, c.options)),
            y(i, o) ||
              ((n.prevFromRect = o),
              (n.prevToRect = i),
              e || (e = c.options.animation),
              c.animate(n, l, i, e)),
            e &&
              ((u = !0),
              (d = Math.max(d, e)),
              clearTimeout(n.animationResetTimer),
              (n.animationResetTimer = setTimeout(function () {
                (n.animationTime = 0),
                  (n.prevFromRect = null),
                  (n.fromRect = null),
                  (n.prevToRect = null),
                  (n.thisAnimationDuration = null);
              }, e)),
              (n.thisAnimationDuration = e));
        }),
          clearTimeout(e),
          u
            ? (e = setTimeout(function () {
                "function" == typeof t && t();
              }, d))
            : "function" == typeof t && t(),
          (o = []);
      },
      animate: function (t, e, n, o) {
        if (o) {
          R(t, "transition", ""), R(t, "transform", "");
          var i = v(this.el),
            r = i && i.a,
            a = i && i.d,
            l = (e.left - n.left) / (r || 1),
            s = (e.top - n.top) / (a || 1);
          (t.animatingX = !!l),
            (t.animatingY = !!s),
            R(t, "transform", "translate3d(" + l + "px," + s + "px,0)"),
            (this.forRepaintDummy = (function (t) {
              return t.offsetWidth;
            })(t)),
            R(
              t,
              "transition",
              "transform " +
                o +
                "ms" +
                (this.options.easing ? " " + this.options.easing : "")
            ),
            R(t, "transform", "translate3d(0,0,0)"),
            "number" == typeof t.animated && clearTimeout(t.animated),
            (t.animated = setTimeout(function () {
              R(t, "transition", ""),
                R(t, "transform", ""),
                (t.animated = !1),
                (t.animatingX = !1),
                (t.animatingY = !1);
            }, o));
        }
      }
    };
  }
  var x = [],
    M = { initializeByDefault: !0 },
    O = {
      mount: function (e) {
        for (var t in M) !M.hasOwnProperty(t) || t in e || (e[t] = M[t]);
        x.forEach(function (t) {
          if (t.pluginName === e.pluginName)
            throw "Sortable: Cannot mount plugin ".concat(
              e.pluginName,
              " more than once"
            );
        }),
          x.push(e);
      },
      pluginEvent: function (e, n, o) {
        var t = this;
        (this.eventCanceled = !1),
          (o.cancel = function () {
            t.eventCanceled = !0;
          });
        var i = e + "Global";
        x.forEach(function (t) {
          n[t.pluginName] &&
            (n[t.pluginName][i] && n[t.pluginName][i](I({ sortable: n }, o)),
            n.options[t.pluginName] &&
              n[t.pluginName][e] &&
              n[t.pluginName][e](I({ sortable: n }, o)));
        });
      },
      initializePlugins: function (o, i, r, t) {
        for (var e in (x.forEach(function (t) {
          var e = t.pluginName;
          if (o.options[e] || t.initializeByDefault) {
            var n = new t(o, i, o.options);
            (n.sortable = o),
              (n.options = o.options),
              (o[e] = n),
              a(r, n.defaults);
          }
        }),
        o.options))
          if (o.options.hasOwnProperty(e)) {
            var n = this.modifyOption(o, e, o.options[e]);
            void 0 !== n && (o.options[e] = n);
          }
      },
      getEventProperties: function (e, n) {
        var o = {};
        return (
          x.forEach(function (t) {
            "function" == typeof t.eventProperties &&
              a(o, t.eventProperties.call(n[t.pluginName], e));
          }),
          o
        );
      },
      modifyOption: function (e, n, o) {
        var i;
        return (
          x.forEach(function (t) {
            e[t.pluginName] &&
              t.optionListeners &&
              "function" == typeof t.optionListeners[n] &&
              (i = t.optionListeners[n].call(e[t.pluginName], o));
          }),
          i
        );
      }
    };
  function N(t) {
    var e = t.sortable,
      n = t.rootEl,
      o = t.name,
      i = t.targetEl,
      r = t.cloneEl,
      a = t.toEl,
      l = t.fromEl,
      s = t.oldIndex,
      c = t.newIndex,
      u = t.oldDraggableIndex,
      d = t.newDraggableIndex,
      h = t.originalEvent,
      f = t.putSortable,
      p = t.extraEventProperties;
    if ((e = e || (n && n[j]))) {
      var g,
        v = e.options,
        m = "on" + o.charAt(0).toUpperCase() + o.substr(1);
      !window.CustomEvent || w || E
        ? (g = document.createEvent("Event")).initEvent(o, !0, !0)
        : (g = new CustomEvent(o, { bubbles: !0, cancelable: !0 })),
        (g.to = a || n),
        (g.from = l || n),
        (g.item = i || n),
        (g.clone = r),
        (g.oldIndex = s),
        (g.newIndex = c),
        (g.oldDraggableIndex = u),
        (g.newDraggableIndex = d),
        (g.originalEvent = h),
        (g.pullMode = f ? f.lastPutMode : void 0);
      var b = I({}, p, O.getEventProperties(o, e));
      for (var y in b) g[y] = b[y];
      n && n.dispatchEvent(g), v[m] && v[m].call(e, g);
    }
  }
  function K(t, e, n) {
    var o = 2 < arguments.length && void 0 !== n ? n : {},
      i = o.evt,
      r = l(o, ["evt"]);
    O.pluginEvent.bind(Rt)(
      t,
      e,
      I(
        {
          dragEl: z,
          parentEl: G,
          ghostEl: U,
          rootEl: q,
          nextEl: V,
          lastDownEl: Z,
          cloneEl: Q,
          cloneHidden: $,
          dragStarted: dt,
          putSortable: it,
          activeSortable: Rt.active,
          originalEvent: i,
          oldIndex: J,
          oldDraggableIndex: et,
          newIndex: tt,
          newDraggableIndex: nt,
          hideGhostForTarget: At,
          unhideGhostForTarget: It,
          cloneNowHidden: function () {
            $ = !0;
          },
          cloneNowShown: function () {
            $ = !1;
          },
          dispatchSortableEvent: function (t) {
            W({ sortable: e, name: t, originalEvent: i });
          }
        },
        r
      )
    );
  }
  function W(t) {
    N(
      I(
        {
          putSortable: it,
          cloneEl: Q,
          targetEl: z,
          rootEl: q,
          oldIndex: J,
          oldDraggableIndex: et,
          newIndex: tt,
          newDraggableIndex: nt
        },
        t
      )
    );
  }
  var z,
    G,
    U,
    q,
    V,
    Z,
    Q,
    $,
    J,
    tt,
    et,
    nt,
    ot,
    it,
    rt,
    at,
    lt,
    st,
    ct,
    ut,
    dt,
    ht,
    ft,
    pt,
    gt,
    vt = !1,
    mt = !1,
    bt = [],
    yt = !1,
    wt = !1,
    Et = [],
    Dt = !1,
    St = [],
    _t = "undefined" != typeof document,
    Ct = n,
    Tt = E || w ? "cssFloat" : "float",
    xt = _t && !i && !n && "draggable" in document.createElement("div"),
    Mt = (function () {
      if (_t) {
        if (w) return !1;
        var t = document.createElement("x");
        return (
          (t.style.cssText = "pointer-events:auto"),
          "auto" === t.style.pointerEvents
        );
      }
    })(),
    Ot = function (t, e) {
      var n = R(t),
        o =
          parseInt(n.width) -
          parseInt(n.paddingLeft) -
          parseInt(n.paddingRight) -
          parseInt(n.borderLeftWidth) -
          parseInt(n.borderRightWidth),
        i = m(t, 0, e),
        r = m(t, 1, e),
        a = i && R(i),
        l = r && R(r),
        s = a && parseInt(a.marginLeft) + parseInt(a.marginRight) + X(i).width,
        c = l && parseInt(l.marginLeft) + parseInt(l.marginRight) + X(r).width;
      if ("flex" === n.display)
        return "column" === n.flexDirection ||
          "column-reverse" === n.flexDirection
          ? "vertical"
          : "horizontal";
      if ("grid" === n.display)
        return n.gridTemplateColumns.split(" ").length <= 1
          ? "vertical"
          : "horizontal";
      if (i && a.float && "none" !== a.float) {
        var u = "left" === a.float ? "left" : "right";
        return !r || ("both" !== l.clear && l.clear !== u)
          ? "horizontal"
          : "vertical";
      }
      return i &&
        ("block" === a.display ||
          "flex" === a.display ||
          "table" === a.display ||
          "grid" === a.display ||
          (o <= s && "none" === n[Tt]) ||
          (r && "none" === n[Tt] && o < s + c))
        ? "vertical"
        : "horizontal";
    },
    Nt = function (t) {
      function s(a, l) {
        return function (t, e, n, o) {
          var i =
            t.options.group.name &&
            e.options.group.name &&
            t.options.group.name === e.options.group.name;
          if (null == a && (l || i)) return !0;
          if (null == a || !1 === a) return !1;
          if (l && "clone" === a) return a;
          if ("function" == typeof a) return s(a(t, e, n, o), l)(t, e, n, o);
          var r = (l ? t : e).options.group.name;
          return (
            !0 === a ||
            ("string" == typeof a && a === r) ||
            (a.join && -1 < a.indexOf(r))
          );
        };
      }
      var e = {},
        n = t.group;
      (n && "object" == o(n)) || (n = { name: n }),
        (e.name = n.name),
        (e.checkPull = s(n.pull, !0)),
        (e.checkPut = s(n.put)),
        (e.revertClone = n.revertClone),
        (t.group = e);
    },
    At = function () {
      !Mt && U && R(U, "display", "none");
    },
    It = function () {
      !Mt && U && R(U, "display", "");
    };
  _t &&
    document.addEventListener(
      "click",
      function (t) {
        if (mt)
          return (
            t.preventDefault(),
            t.stopPropagation && t.stopPropagation(),
            t.stopImmediatePropagation && t.stopImmediatePropagation(),
            (mt = !1)
          );
      },
      !0
    );
  function Pt(t) {
    if (z) {
      var e = (function (r, a) {
        var l;
        return (
          bt.some(function (t) {
            if (!B(t)) {
              var e = X(t),
                n = t[j].options.emptyInsertThreshold,
                o = r >= e.left - n && r <= e.right + n,
                i = a >= e.top - n && a <= e.bottom + n;
              return n && o && i ? (l = t) : void 0;
            }
          }),
          l
        );
      })((t = t.touches ? t.touches[0] : t).clientX, t.clientY);
      if (e) {
        var n = {};
        for (var o in t) t.hasOwnProperty(o) && (n[o] = t[o]);
        (n.target = n.rootEl = e),
          (n.preventDefault = void 0),
          (n.stopPropagation = void 0),
          e[j]._onDragOver(n);
      }
    }
  }
  function kt(t) {
    z && z.parentNode[j]._isOutsideThisEl(t.target);
  }
  function Rt(t, e) {
    if (!t || !t.nodeType || 1 !== t.nodeType)
      throw "Sortable: `el` must be an HTMLElement, not ".concat(
        {}.toString.call(t)
      );
    (this.el = t), (this.options = e = a({}, e)), (t[j] = this);
    var n = {
      group: null,
      sort: !0,
      disabled: !1,
      store: null,
      handle: null,
      draggable: /^[uo]l$/i.test(t.nodeName) ? ">li" : ">*",
      swapThreshold: 1,
      invertSwap: !1,
      invertedSwapThreshold: null,
      removeCloneOnHide: !0,
      direction: function () {
        return Ot(t, this.options);
      },
      ghostClass: "sortable-ghost",
      chosenClass: "sortable-chosen",
      dragClass: "sortable-drag",
      ignore: "a, img",
      filter: null,
      preventOnFilter: !0,
      animation: 0,
      easing: null,
      setData: function (t, e) {
        t.setData("Text", e.textContent);
      },
      dropBubble: !1,
      dragoverBubble: !1,
      dataIdAttr: "data-id",
      delay: 0,
      delayOnTouchOnly: !1,
      touchStartThreshold:
        (Number.parseInt ? Number : window).parseInt(
          window.devicePixelRatio,
          10
        ) || 1,
      forceFallback: !1,
      fallbackClass: "sortable-fallback",
      fallbackOnBody: !1,
      fallbackTolerance: 0,
      fallbackOffset: { x: 0, y: 0 },
      supportPointer:
        !1 !== Rt.supportPointer && "PointerEvent" in window && !u,
      emptyInsertThreshold: 5
    };
    for (var o in (O.initializePlugins(this, t, n), n)) o in e || (e[o] = n[o]);
    for (var i in (Nt(e), this))
      "_" === i.charAt(0) &&
        "function" == typeof this[i] &&
        (this[i] = this[i].bind(this));
    (this.nativeDraggable = !e.forceFallback && xt),
      this.nativeDraggable && (this.options.touchStartThreshold = 1),
      e.supportPointer
        ? d(t, "pointerdown", this._onTapStart)
        : (d(t, "mousedown", this._onTapStart),
          d(t, "touchstart", this._onTapStart)),
      this.nativeDraggable && (d(t, "dragover", this), d(t, "dragenter", this)),
      bt.push(this.el),
      e.store && e.store.get && this.sort(e.store.get(this) || []),
      a(this, T());
  }
  function Xt(t, e, n, o, i, r, a, l) {
    var s,
      c,
      u = t[j],
      d = u.options.onMove;
    return (
      !window.CustomEvent || w || E
        ? (s = document.createEvent("Event")).initEvent("move", !0, !0)
        : (s = new CustomEvent("move", { bubbles: !0, cancelable: !0 })),
      (s.to = e),
      (s.from = t),
      (s.dragged = n),
      (s.draggedRect = o),
      (s.related = i || e),
      (s.relatedRect = r || X(e)),
      (s.willInsertAfter = l),
      (s.originalEvent = a),
      t.dispatchEvent(s),
      d && (c = d.call(u, s, a)),
      c
    );
  }
  function Yt(t) {
    t.draggable = !1;
  }
  function Bt() {
    Dt = !1;
  }
  function Ft(t) {
    for (
      var e = t.tagName + t.className + t.src + t.href + t.textContent,
        n = e.length,
        o = 0;
      n--;

    )
      o += e.charCodeAt(n);
    return o.toString(36);
  }
  function Ht(t) {
    return setTimeout(t, 0);
  }
  function Lt(t) {
    return clearTimeout(t);
  }
  (Rt.prototype = {
    constructor: Rt,
    _isOutsideThisEl: function (t) {
      this.el.contains(t) || t === this.el || (ht = null);
    },
    _getDirection: function (t, e) {
      return "function" == typeof this.options.direction
        ? this.options.direction.call(this, t, e, z)
        : this.options.direction;
    },
    _onTapStart: function (e) {
      if (e.cancelable) {
        var n = this,
          o = this.el,
          t = this.options,
          i = t.preventOnFilter,
          r = e.type,
          a =
            (e.touches && e.touches[0]) ||
            (e.pointerType && "touch" === e.pointerType && e),
          l = (a || e).target,
          s =
            (e.target.shadowRoot &&
              ((e.path && e.path[0]) ||
                (e.composedPath && e.composedPath()[0]))) ||
            l,
          c = t.filter;
        if (
          ((function (t) {
            St.length = 0;
            var e = t.getElementsByTagName("input"),
              n = e.length;
            for (; n--; ) {
              var o = e[n];
              o.checked && St.push(o);
            }
          })(o),
          !z &&
            !(
              (/mousedown|pointerdown/.test(r) && 0 !== e.button) ||
              t.disabled
            ) &&
            !s.isContentEditable &&
            (this.nativeDraggable ||
              !u ||
              !l ||
              "SELECT" !== l.tagName.toUpperCase()) &&
            !(((l = P(l, t.draggable, o, !1)) && l.animated) || Z === l))
        ) {
          if (((J = F(l)), (et = F(l, t.draggable)), "function" == typeof c)) {
            if (c.call(this, e, l, this))
              return (
                W({
                  sortable: n,
                  rootEl: s,
                  name: "filter",
                  targetEl: l,
                  toEl: o,
                  fromEl: o
                }),
                K("filter", n, { evt: e }),
                void (i && e.cancelable && e.preventDefault())
              );
          } else if (
            c &&
            (c = c.split(",").some(function (t) {
              if ((t = P(s, t.trim(), o, !1)))
                return (
                  W({
                    sortable: n,
                    rootEl: t,
                    name: "filter",
                    targetEl: l,
                    fromEl: o,
                    toEl: o
                  }),
                  K("filter", n, { evt: e }),
                  !0
                );
            }))
          )
            return void (i && e.cancelable && e.preventDefault());
          (t.handle && !P(s, t.handle, o, !1)) ||
            this._prepareDragStart(e, a, l);
        }
      }
    },
    _prepareDragStart: function (t, e, n) {
      var o,
        i = this,
        r = i.el,
        a = i.options,
        l = r.ownerDocument;
      if (n && !z && n.parentNode === r) {
        var s = X(n);
        if (
          ((q = r),
          (G = (z = n).parentNode),
          (V = z.nextSibling),
          (Z = n),
          (ot = a.group),
          (rt = {
            target: (Rt.dragged = z),
            clientX: (e || t).clientX,
            clientY: (e || t).clientY
          }),
          (ct = rt.clientX - s.left),
          (ut = rt.clientY - s.top),
          (this._lastX = (e || t).clientX),
          (this._lastY = (e || t).clientY),
          (z.style["will-change"] = "all"),
          (o = function () {
            K("delayEnded", i, { evt: t }),
              Rt.eventCanceled
                ? i._onDrop()
                : (i._disableDelayedDragEvents(),
                  !c && i.nativeDraggable && (z.draggable = !0),
                  i._triggerDragStart(t, e),
                  W({ sortable: i, name: "choose", originalEvent: t }),
                  k(z, a.chosenClass, !0));
          }),
          a.ignore.split(",").forEach(function (t) {
            g(z, t.trim(), Yt);
          }),
          d(l, "dragover", Pt),
          d(l, "mousemove", Pt),
          d(l, "touchmove", Pt),
          d(l, "mouseup", i._onDrop),
          d(l, "touchend", i._onDrop),
          d(l, "touchcancel", i._onDrop),
          c &&
            this.nativeDraggable &&
            ((this.options.touchStartThreshold = 4), (z.draggable = !0)),
          K("delayStart", this, { evt: t }),
          !a.delay ||
            (a.delayOnTouchOnly && !e) ||
            (this.nativeDraggable && (E || w)))
        )
          o();
        else {
          if (Rt.eventCanceled) return void this._onDrop();
          d(l, "mouseup", i._disableDelayedDrag),
            d(l, "touchend", i._disableDelayedDrag),
            d(l, "touchcancel", i._disableDelayedDrag),
            d(l, "mousemove", i._delayedDragTouchMoveHandler),
            d(l, "touchmove", i._delayedDragTouchMoveHandler),
            a.supportPointer &&
              d(l, "pointermove", i._delayedDragTouchMoveHandler),
            (i._dragStartTimer = setTimeout(o, a.delay));
        }
      }
    },
    _delayedDragTouchMoveHandler: function (t) {
      var e = t.touches ? t.touches[0] : t;
      Math.max(
        Math.abs(e.clientX - this._lastX),
        Math.abs(e.clientY - this._lastY)
      ) >=
        Math.floor(
          this.options.touchStartThreshold /
            ((this.nativeDraggable && window.devicePixelRatio) || 1)
        ) && this._disableDelayedDrag();
    },
    _disableDelayedDrag: function () {
      z && Yt(z),
        clearTimeout(this._dragStartTimer),
        this._disableDelayedDragEvents();
    },
    _disableDelayedDragEvents: function () {
      var t = this.el.ownerDocument;
      s(t, "mouseup", this._disableDelayedDrag),
        s(t, "touchend", this._disableDelayedDrag),
        s(t, "touchcancel", this._disableDelayedDrag),
        s(t, "mousemove", this._delayedDragTouchMoveHandler),
        s(t, "touchmove", this._delayedDragTouchMoveHandler),
        s(t, "pointermove", this._delayedDragTouchMoveHandler);
    },
    _triggerDragStart: function (t, e) {
      (e = e || ("touch" == t.pointerType && t)),
        !this.nativeDraggable || e
          ? this.options.supportPointer
            ? d(document, "pointermove", this._onTouchMove)
            : d(document, e ? "touchmove" : "mousemove", this._onTouchMove)
          : (d(z, "dragend", this), d(q, "dragstart", this._onDragStart));
      try {
        document.selection
          ? Ht(function () {
              document.selection.empty();
            })
          : window.getSelection().removeAllRanges();
      } catch (t) {}
    },
    _dragStarted: function (t, e) {
      if (((vt = !1), q && z)) {
        K("dragStarted", this, { evt: e }),
          this.nativeDraggable && d(document, "dragover", kt);
        var n = this.options;
        t || k(z, n.dragClass, !1),
          k(z, n.ghostClass, !0),
          (Rt.active = this),
          t && this._appendGhost(),
          W({ sortable: this, name: "start", originalEvent: e });
      } else this._nulling();
    },
    _emulateDragOver: function () {
      if (at) {
        (this._lastX = at.clientX), (this._lastY = at.clientY), At();
        for (
          var t = document.elementFromPoint(at.clientX, at.clientY), e = t;
          t &&
          t.shadowRoot &&
          (t = t.shadowRoot.elementFromPoint(at.clientX, at.clientY)) !== e;

        )
          e = t;
        if ((z.parentNode[j]._isOutsideThisEl(t), e))
          do {
            if (e[j]) {
              if (
                e[j]._onDragOver({
                  clientX: at.clientX,
                  clientY: at.clientY,
                  target: t,
                  rootEl: e
                }) &&
                !this.options.dragoverBubble
              )
                break;
            }
            t = e;
          } while ((e = e.parentNode));
        It();
      }
    },
    _onTouchMove: function (t) {
      if (rt) {
        var e = this.options,
          n = e.fallbackTolerance,
          o = e.fallbackOffset,
          i = t.touches ? t.touches[0] : t,
          r = U && v(U, !0),
          a = U && r && r.a,
          l = U && r && r.d,
          s = Ct && gt && b(gt),
          c =
            (i.clientX - rt.clientX + o.x) / (a || 1) +
            (s ? s[0] - Et[0] : 0) / (a || 1),
          u =
            (i.clientY - rt.clientY + o.y) / (l || 1) +
            (s ? s[1] - Et[1] : 0) / (l || 1);
        if (!Rt.active && !vt) {
          if (
            n &&
            Math.max(
              Math.abs(i.clientX - this._lastX),
              Math.abs(i.clientY - this._lastY)
            ) < n
          )
            return;
          this._onDragStart(t, !0);
        }
        if (U) {
          r
            ? ((r.e += c - (lt || 0)), (r.f += u - (st || 0)))
            : (r = { a: 1, b: 0, c: 0, d: 1, e: c, f: u });
          var d = "matrix("
            .concat(r.a, ",")
            .concat(r.b, ",")
            .concat(r.c, ",")
            .concat(r.d, ",")
            .concat(r.e, ",")
            .concat(r.f, ")");
          R(U, "webkitTransform", d),
            R(U, "mozTransform", d),
            R(U, "msTransform", d),
            R(U, "transform", d),
            (lt = c),
            (st = u),
            (at = i);
        }
        t.cancelable && t.preventDefault();
      }
    },
    _appendGhost: function () {
      if (!U) {
        var t = this.options.fallbackOnBody ? document.body : q,
          e = X(z, !0, Ct, !0, t),
          n = this.options;
        if (Ct) {
          for (
            gt = t;
            "static" === R(gt, "position") &&
            "none" === R(gt, "transform") &&
            gt !== document;

          )
            gt = gt.parentNode;
          gt !== document.body && gt !== document.documentElement
            ? (gt === document && (gt = A()),
              (e.top += gt.scrollTop),
              (e.left += gt.scrollLeft))
            : (gt = A()),
            (Et = b(gt));
        }
        k((U = z.cloneNode(!0)), n.ghostClass, !1),
          k(U, n.fallbackClass, !0),
          k(U, n.dragClass, !0),
          R(U, "transition", ""),
          R(U, "transform", ""),
          R(U, "box-sizing", "border-box"),
          R(U, "margin", 0),
          R(U, "top", e.top),
          R(U, "left", e.left),
          R(U, "width", e.width),
          R(U, "height", e.height),
          R(U, "opacity", "0.8"),
          R(U, "position", Ct ? "absolute" : "fixed"),
          R(U, "zIndex", "100000"),
          R(U, "pointerEvents", "none"),
          (Rt.ghost = U),
          t.appendChild(U),
          R(
            U,
            "transform-origin",
            (ct / parseInt(U.style.width)) * 100 +
              "% " +
              (ut / parseInt(U.style.height)) * 100 +
              "%"
          );
      }
    },
    _onDragStart: function (t, e) {
      var n = this,
        o = t.dataTransfer,
        i = n.options;
      K("dragStart", this, { evt: t }),
        Rt.eventCanceled
          ? this._onDrop()
          : (K("setupClone", this),
            Rt.eventCanceled ||
              (((Q = S(z)).draggable = !1),
              (Q.style["will-change"] = ""),
              this._hideClone(),
              k(Q, this.options.chosenClass, !1),
              (Rt.clone = Q)),
            (n.cloneId = Ht(function () {
              K("clone", n),
                Rt.eventCanceled ||
                  (n.options.removeCloneOnHide || q.insertBefore(Q, z),
                  n._hideClone(),
                  W({ sortable: n, name: "clone" }));
            })),
            e || k(z, i.dragClass, !0),
            e
              ? ((mt = !0), (n._loopId = setInterval(n._emulateDragOver, 50)))
              : (s(document, "mouseup", n._onDrop),
                s(document, "touchend", n._onDrop),
                s(document, "touchcancel", n._onDrop),
                o &&
                  ((o.effectAllowed = "move"),
                  i.setData && i.setData.call(n, o, z)),
                d(document, "drop", n),
                R(z, "transform", "translateZ(0)")),
            (vt = !0),
            (n._dragStartId = Ht(n._dragStarted.bind(n, e, t))),
            d(document, "selectstart", n),
            (dt = !0),
            u && R(document.body, "user-select", "none"));
    },
    _onDragOver: function (n) {
      var o,
        i,
        r,
        a,
        l = this.el,
        s = n.target,
        e = this.options,
        t = e.group,
        c = Rt.active,
        u = ot === t,
        d = e.sort,
        h = it || c,
        f = this,
        p = !1;
      if (!Dt) {
        if (
          (void 0 !== n.preventDefault && n.cancelable && n.preventDefault(),
          (s = P(s, e.draggable, l, !0)),
          M("dragOver"),
          Rt.eventCanceled)
        )
          return p;
        if (
          z.contains(n.target) ||
          (s.animated && s.animatingX && s.animatingY) ||
          f._ignoreWhileAnimating === s
        )
          return N(!1);
        if (
          ((mt = !1),
          c &&
            !e.disabled &&
            (u
              ? d || (r = !q.contains(z))
              : it === this ||
                ((this.lastPutMode = ot.checkPull(this, c, z, n)) &&
                  t.checkPut(this, c, z, n))))
        ) {
          if (
            ((a = "vertical" === this._getDirection(n, s)),
            (o = X(z)),
            M("dragOverValid"),
            Rt.eventCanceled)
          )
            return p;
          if (r)
            return (
              (G = q),
              O(),
              this._hideClone(),
              M("revert"),
              Rt.eventCanceled || (V ? q.insertBefore(z, V) : q.appendChild(z)),
              N(!0)
            );
          var g = B(l, e.draggable);
          if (
            !g ||
            ((function (t, e, n) {
              var o = X(B(n.el, n.options.draggable));
              return e
                ? t.clientX > o.right + 10 ||
                    (t.clientX <= o.right &&
                      t.clientY > o.bottom &&
                      t.clientX >= o.left)
                : (t.clientX > o.right && t.clientY > o.top) ||
                    (t.clientX <= o.right && t.clientY > o.bottom + 10);
            })(n, a, this) &&
              !g.animated)
          ) {
            if (g === z) return N(!1);
            if (
              (g && l === n.target && (s = g),
              s && (i = X(s)),
              !1 !== Xt(q, l, z, o, s, i, n, !!s))
            )
              return O(), l.appendChild(z), (G = l), A(), N(!0);
          } else if (s.parentNode === l) {
            i = X(s);
            var v,
              m,
              b,
              y = z.parentNode !== l,
              w = !(function (t, e, n) {
                var o = n ? t.left : t.top,
                  i = n ? t.right : t.bottom,
                  r = n ? t.width : t.height,
                  a = n ? e.left : e.top,
                  l = n ? e.right : e.bottom,
                  s = n ? e.width : e.height;
                return o === a || i === l || o + r / 2 === a + s / 2;
              })(
                (z.animated && z.toRect) || o,
                (s.animated && s.toRect) || i,
                a
              ),
              E = a ? "top" : "left",
              D = Y(s, "top", "top") || Y(z, "top", "top"),
              S = D ? D.scrollTop : void 0;
            if (
              (ht !== s &&
                ((m = i[E]), (yt = !1), (wt = (!w && e.invertSwap) || y)),
              0 !==
                (v = (function (t, e, n, o, i, r, a, l) {
                  var s = o ? t.clientY : t.clientX,
                    c = o ? n.height : n.width,
                    u = o ? n.top : n.left,
                    d = o ? n.bottom : n.right,
                    h = !1;
                  if (!a)
                    if (l && pt < c * i) {
                      if (
                        (!yt &&
                          (1 === ft
                            ? u + (c * r) / 2 < s
                            : s < d - (c * r) / 2) &&
                          (yt = !0),
                        yt)
                      )
                        h = !0;
                      else if (1 === ft ? s < u + pt : d - pt < s) return -ft;
                    } else if (
                      u + (c * (1 - i)) / 2 < s &&
                      s < d - (c * (1 - i)) / 2
                    )
                      return (function (t) {
                        return F(z) < F(t) ? 1 : -1;
                      })(e);
                  if (
                    (h = h || a) &&
                    (s < u + (c * r) / 2 || d - (c * r) / 2 < s)
                  )
                    return u + c / 2 < s ? 1 : -1;
                  return 0;
                })(
                  n,
                  s,
                  i,
                  a,
                  w ? 1 : e.swapThreshold,
                  null == e.invertedSwapThreshold
                    ? e.swapThreshold
                    : e.invertedSwapThreshold,
                  wt,
                  ht === s
                )))
            )
              for (
                var _ = F(z);
                (_ -= v),
                  (b = G.children[_]) &&
                    ("none" === R(b, "display") || b === U);

              );
            if (0 === v || b === s) return N(!1);
            ft = v;
            var C = (ht = s).nextElementSibling,
              T = !1,
              x = Xt(q, l, z, o, s, i, n, (T = 1 === v));
            if (!1 !== x)
              return (
                (1 !== x && -1 !== x) || (T = 1 === x),
                (Dt = !0),
                setTimeout(Bt, 30),
                O(),
                T && !C
                  ? l.appendChild(z)
                  : s.parentNode.insertBefore(z, T ? C : s),
                D && L(D, 0, S - D.scrollTop),
                (G = z.parentNode),
                void 0 === m || wt || (pt = Math.abs(m - X(s)[E])),
                A(),
                N(!0)
              );
          }
          if (l.contains(z)) return N(!1);
        }
        return !1;
      }
      function M(t, e) {
        K(
          t,
          f,
          I(
            {
              evt: n,
              isOwner: u,
              axis: a ? "vertical" : "horizontal",
              revert: r,
              dragRect: o,
              targetRect: i,
              canSort: d,
              fromSortable: h,
              target: s,
              completed: N,
              onMove: function (t, e) {
                return Xt(q, l, z, o, t, X(t), n, e);
              },
              changed: A
            },
            e
          )
        );
      }
      function O() {
        M("dragOverAnimationCapture"),
          f.captureAnimationState(),
          f !== h && h.captureAnimationState();
      }
      function N(t) {
        return (
          M("dragOverCompleted", { insertion: t }),
          t &&
            (u ? c._hideClone() : c._showClone(f),
            f !== h &&
              (k(z, it ? it.options.ghostClass : c.options.ghostClass, !1),
              k(z, e.ghostClass, !0)),
            it !== f && f !== Rt.active
              ? (it = f)
              : f === Rt.active && it && (it = null),
            h === f && (f._ignoreWhileAnimating = s),
            f.animateAll(function () {
              M("dragOverAnimationComplete"), (f._ignoreWhileAnimating = null);
            }),
            f !== h && (h.animateAll(), (h._ignoreWhileAnimating = null))),
          ((s === z && !z.animated) || (s === l && !s.animated)) && (ht = null),
          e.dragoverBubble ||
            n.rootEl ||
            s === document ||
            (z.parentNode[j]._isOutsideThisEl(n.target), t || Pt(n)),
          !e.dragoverBubble && n.stopPropagation && n.stopPropagation(),
          (p = !0)
        );
      }
      function A() {
        (tt = F(z)),
          (nt = F(z, e.draggable)),
          W({
            sortable: f,
            name: "change",
            toEl: l,
            newIndex: tt,
            newDraggableIndex: nt,
            originalEvent: n
          });
      }
    },
    _ignoreWhileAnimating: null,
    _offMoveEvents: function () {
      s(document, "mousemove", this._onTouchMove),
        s(document, "touchmove", this._onTouchMove),
        s(document, "pointermove", this._onTouchMove),
        s(document, "dragover", Pt),
        s(document, "mousemove", Pt),
        s(document, "touchmove", Pt);
    },
    _offUpEvents: function () {
      var t = this.el.ownerDocument;
      s(t, "mouseup", this._onDrop),
        s(t, "touchend", this._onDrop),
        s(t, "pointerup", this._onDrop),
        s(t, "touchcancel", this._onDrop),
        s(document, "selectstart", this);
    },
    _onDrop: function (t) {
      var e = this.el,
        n = this.options;
      (tt = F(z)),
        (nt = F(z, n.draggable)),
        K("drop", this, { evt: t }),
        (G = z && z.parentNode),
        (tt = F(z)),
        (nt = F(z, n.draggable)),
        Rt.eventCanceled ||
          ((yt = wt = vt = !1),
          clearInterval(this._loopId),
          clearTimeout(this._dragStartTimer),
          Lt(this.cloneId),
          Lt(this._dragStartId),
          this.nativeDraggable &&
            (s(document, "drop", this), s(e, "dragstart", this._onDragStart)),
          this._offMoveEvents(),
          this._offUpEvents(),
          u && R(document.body, "user-select", ""),
          R(z, "transform", ""),
          t &&
            (dt &&
              (t.cancelable && t.preventDefault(),
              n.dropBubble || t.stopPropagation()),
            U && U.parentNode && U.parentNode.removeChild(U),
            (q === G || (it && "clone" !== it.lastPutMode)) &&
              Q &&
              Q.parentNode &&
              Q.parentNode.removeChild(Q),
            z &&
              (this.nativeDraggable && s(z, "dragend", this),
              Yt(z),
              (z.style["will-change"] = ""),
              dt &&
                !vt &&
                k(z, it ? it.options.ghostClass : this.options.ghostClass, !1),
              k(z, this.options.chosenClass, !1),
              W({
                sortable: this,
                name: "unchoose",
                toEl: G,
                newIndex: null,
                newDraggableIndex: null,
                originalEvent: t
              }),
              q !== G
                ? (0 <= tt &&
                    (W({
                      rootEl: G,
                      name: "add",
                      toEl: G,
                      fromEl: q,
                      originalEvent: t
                    }),
                    W({
                      sortable: this,
                      name: "remove",
                      toEl: G,
                      originalEvent: t
                    }),
                    W({
                      rootEl: G,
                      name: "sort",
                      toEl: G,
                      fromEl: q,
                      originalEvent: t
                    }),
                    W({
                      sortable: this,
                      name: "sort",
                      toEl: G,
                      originalEvent: t
                    })),
                  it && it.save())
                : tt !== J &&
                  0 <= tt &&
                  (W({
                    sortable: this,
                    name: "update",
                    toEl: G,
                    originalEvent: t
                  }),
                  W({
                    sortable: this,
                    name: "sort",
                    toEl: G,
                    originalEvent: t
                  })),
              Rt.active &&
                ((null != tt && -1 !== tt) || ((tt = J), (nt = et)),
                W({ sortable: this, name: "end", toEl: G, originalEvent: t }),
                this.save())))),
        this._nulling();
    },
    _nulling: function () {
      K("nulling", this),
        (q =
          z =
          G =
          U =
          V =
          Q =
          Z =
          $ =
          rt =
          at =
          dt =
          tt =
          nt =
          J =
          et =
          ht =
          ft =
          it =
          ot =
          Rt.dragged =
          Rt.ghost =
          Rt.clone =
          Rt.active =
            null),
        St.forEach(function (t) {
          t.checked = !0;
        }),
        (St.length = lt = st = 0);
    },
    handleEvent: function (t) {
      switch (t.type) {
        case "drop":
        case "dragend":
          this._onDrop(t);
          break;
        case "dragenter":
        case "dragover":
          z &&
            (this._onDragOver(t),
            (function (t) {
              t.dataTransfer && (t.dataTransfer.dropEffect = "move");
              t.cancelable && t.preventDefault();
            })(t));
          break;
        case "selectstart":
          t.preventDefault();
      }
    },
    toArray: function () {
      for (
        var t,
          e = [],
          n = this.el.children,
          o = 0,
          i = n.length,
          r = this.options;
        o < i;
        o++
      )
        P((t = n[o]), r.draggable, this.el, !1) &&
          e.push(t.getAttribute(r.dataIdAttr) || Ft(t));
      return e;
    },
    sort: function (t, e) {
      var o = {},
        i = this.el;
      this.toArray().forEach(function (t, e) {
        var n = i.children[e];
        P(n, this.options.draggable, i, !1) && (o[t] = n);
      }, this),
        e && this.captureAnimationState(),
        t.forEach(function (t) {
          o[t] && (i.removeChild(o[t]), i.appendChild(o[t]));
        }),
        e && this.animateAll();
    },
    save: function () {
      var t = this.options.store;
      t && t.set && t.set(this);
    },
    closest: function (t, e) {
      return P(t, e || this.options.draggable, this.el, !1);
    },
    option: function (t, e) {
      var n = this.options;
      if (void 0 === e) return n[t];
      var o = O.modifyOption(this, t, e);
      (n[t] = void 0 !== o ? o : e), "group" === t && Nt(n);
    },
    destroy: function () {
      K("destroy", this);
      var t = this.el;
      (t[j] = null),
        s(t, "mousedown", this._onTapStart),
        s(t, "touchstart", this._onTapStart),
        s(t, "pointerdown", this._onTapStart),
        this.nativeDraggable &&
          (s(t, "dragover", this), s(t, "dragenter", this)),
        Array.prototype.forEach.call(
          t.querySelectorAll("[draggable]"),
          function (t) {
            t.removeAttribute("draggable");
          }
        ),
        this._onDrop(),
        this._disableDelayedDragEvents(),
        bt.splice(bt.indexOf(this.el), 1),
        (this.el = t = null);
    },
    _hideClone: function () {
      if (!$) {
        if ((K("hideClone", this), Rt.eventCanceled)) return;
        R(Q, "display", "none"),
          this.options.removeCloneOnHide &&
            Q.parentNode &&
            Q.parentNode.removeChild(Q),
          ($ = !0);
      }
    },
    _showClone: function (t) {
      if ("clone" === t.lastPutMode) {
        if ($) {
          if ((K("showClone", this), Rt.eventCanceled)) return;
          z.parentNode != q || this.options.group.revertClone
            ? V
              ? q.insertBefore(Q, V)
              : q.appendChild(Q)
            : q.insertBefore(Q, z),
            this.options.group.revertClone && this.animate(z, Q),
            R(Q, "display", ""),
            ($ = !1);
        }
      } else this._hideClone();
    }
  }),
    _t &&
      d(document, "touchmove", function (t) {
        (Rt.active || vt) && t.cancelable && t.preventDefault();
      }),
    (Rt.utils = {
      on: d,
      off: s,
      css: R,
      find: g,
      is: function (t, e) {
        return !!P(t, e, t, !1);
      },
      extend: function (t, e) {
        if (t && e) for (var n in e) e.hasOwnProperty(n) && (t[n] = e[n]);
        return t;
      },
      throttle: D,
      closest: P,
      toggleClass: k,
      clone: S,
      index: F,
      nextTick: Ht,
      cancelNextTick: Lt,
      detectDirection: Ot,
      getChild: m
    }),
    (Rt.get = function (t) {
      return t[j];
    }),
    (Rt.mount = function () {
      for (var t = arguments.length, e = new Array(t), n = 0; n < t; n++)
        e[n] = arguments[n];
      e[0].constructor === Array && (e = e[0]),
        e.forEach(function (t) {
          if (!t.prototype || !t.prototype.constructor)
            throw "Sortable: Mounted plugin must be a constructor function, not ".concat(
              {}.toString.call(t)
            );
          t.utils && (Rt.utils = I({}, Rt.utils, t.utils)), O.mount(t);
        });
    }),
    (Rt.create = function (t, e) {
      return new Rt(t, e);
    });
  var jt,
    Kt,
    Wt,
    zt,
    Gt,
    Ut,
    qt = [],
    Vt = !(Rt.version = "1.13.0");
  function Zt() {
    qt.forEach(function (t) {
      clearInterval(t.pid);
    }),
      (qt = []);
  }
  function Qt() {
    clearInterval(Ut);
  }
  function $t(t) {
    var e = t.originalEvent,
      n = t.putSortable,
      o = t.dragEl,
      i = t.activeSortable,
      r = t.dispatchSortableEvent,
      a = t.hideGhostForTarget,
      l = t.unhideGhostForTarget;
    if (e) {
      var s = n || i;
      a();
      var c =
          e.changedTouches && e.changedTouches.length ? e.changedTouches[0] : e,
        u = document.elementFromPoint(c.clientX, c.clientY);
      l(),
        s &&
          !s.el.contains(u) &&
          (r("spill"), this.onSpill({ dragEl: o, putSortable: n }));
    }
  }
  var Jt,
    te = D(function (n, t, e, o) {
      if (t.scroll) {
        var i,
          r = (n.touches ? n.touches[0] : n).clientX,
          a = (n.touches ? n.touches[0] : n).clientY,
          l = t.scrollSensitivity,
          s = t.scrollSpeed,
          c = A(),
          u = !1;
        Kt !== e &&
          ((Kt = e),
          Zt(),
          (jt = t.scroll),
          (i = t.scrollFn),
          !0 === jt && (jt = H(e, !0)));
        var d = 0,
          h = jt;
        do {
          var f = h,
            p = X(f),
            g = p.top,
            v = p.bottom,
            m = p.left,
            b = p.right,
            y = p.width,
            w = p.height,
            E = void 0,
            D = void 0,
            S = f.scrollWidth,
            _ = f.scrollHeight,
            C = R(f),
            T = f.scrollLeft,
            x = f.scrollTop;
          D =
            f === c
              ? ((E =
                  y < S &&
                  ("auto" === C.overflowX ||
                    "scroll" === C.overflowX ||
                    "visible" === C.overflowX)),
                w < _ &&
                  ("auto" === C.overflowY ||
                    "scroll" === C.overflowY ||
                    "visible" === C.overflowY))
              : ((E =
                  y < S &&
                  ("auto" === C.overflowX || "scroll" === C.overflowX)),
                w < _ && ("auto" === C.overflowY || "scroll" === C.overflowY));
          var M =
              E &&
              (Math.abs(b - r) <= l && T + y < S) -
                (Math.abs(m - r) <= l && !!T),
            O =
              D &&
              (Math.abs(v - a) <= l && x + w < _) -
                (Math.abs(g - a) <= l && !!x);
          if (!qt[d]) for (var N = 0; N <= d; N++) qt[N] || (qt[N] = {});
          (qt[d].vx == M && qt[d].vy == O && qt[d].el === f) ||
            ((qt[d].el = f),
            (qt[d].vx = M),
            (qt[d].vy = O),
            clearInterval(qt[d].pid),
            (0 == M && 0 == O) ||
              ((u = !0),
              (qt[d].pid = setInterval(
                function () {
                  o && 0 === this.layer && Rt.active._onTouchMove(Gt);
                  var t = qt[this.layer].vy ? qt[this.layer].vy * s : 0,
                    e = qt[this.layer].vx ? qt[this.layer].vx * s : 0;
                  ("function" == typeof i &&
                    "continue" !==
                      i.call(
                        Rt.dragged.parentNode[j],
                        e,
                        t,
                        n,
                        Gt,
                        qt[this.layer].el
                      )) ||
                    L(qt[this.layer].el, e, t);
                }.bind({ layer: d }),
                24
              )))),
            d++;
        } while (t.bubbleScroll && h !== c && (h = H(h, !1)));
        Vt = u;
      }
    }, 30);
  function ee() {}
  function ne() {}
  (ee.prototype = {
    startIndex: null,
    dragStart: function (t) {
      var e = t.oldDraggableIndex;
      this.startIndex = e;
    },
    onSpill: function (t) {
      var e = t.dragEl,
        n = t.putSortable;
      this.sortable.captureAnimationState(), n && n.captureAnimationState();
      var o = m(this.sortable.el, this.startIndex, this.options);
      o ? this.sortable.el.insertBefore(e, o) : this.sortable.el.appendChild(e),
        this.sortable.animateAll(),
        n && n.animateAll();
    },
    drop: $t
  }),
    a(ee, { pluginName: "revertOnSpill" }),
    (ne.prototype = {
      onSpill: function (t) {
        var e = t.dragEl,
          n = t.putSortable || this.sortable;
        n.captureAnimationState(),
          e.parentNode && e.parentNode.removeChild(e),
          n.animateAll();
      },
      drop: $t
    }),
    a(ne, { pluginName: "removeOnSpill" });
  var oe,
    ie,
    re,
    ae,
    le,
    se = [],
    ce = [],
    ue = !1,
    de = !1,
    he = !1;
  function fe(o, i) {
    ce.forEach(function (t, e) {
      var n = i.children[t.sortableIndex + (o ? Number(e) : 0)];
      n ? i.insertBefore(t, n) : i.appendChild(t);
    });
  }
  function pe() {
    se.forEach(function (t) {
      t !== re && t.parentNode && t.parentNode.removeChild(t);
    });
  }
  return (
    Rt.mount(
      new (function () {
        function t() {
          for (var t in ((this.defaults = {
            scroll: !0,
            scrollSensitivity: 30,
            scrollSpeed: 10,
            bubbleScroll: !0
          }),
          this))
            "_" === t.charAt(0) &&
              "function" == typeof this[t] &&
              (this[t] = this[t].bind(this));
        }
        return (
          (t.prototype = {
            dragStarted: function (t) {
              var e = t.originalEvent;
              this.sortable.nativeDraggable
                ? d(document, "dragover", this._handleAutoScroll)
                : this.options.supportPointer
                ? d(document, "pointermove", this._handleFallbackAutoScroll)
                : e.touches
                ? d(document, "touchmove", this._handleFallbackAutoScroll)
                : d(document, "mousemove", this._handleFallbackAutoScroll);
            },
            dragOverCompleted: function (t) {
              var e = t.originalEvent;
              this.options.dragOverBubble ||
                e.rootEl ||
                this._handleAutoScroll(e);
            },
            drop: function () {
              this.sortable.nativeDraggable
                ? s(document, "dragover", this._handleAutoScroll)
                : (s(document, "pointermove", this._handleFallbackAutoScroll),
                  s(document, "touchmove", this._handleFallbackAutoScroll),
                  s(document, "mousemove", this._handleFallbackAutoScroll)),
                Qt(),
                Zt(),
                clearTimeout(f),
                (f = void 0);
            },
            nulling: function () {
              (Gt = Kt = jt = Vt = Ut = Wt = zt = null), (qt.length = 0);
            },
            _handleFallbackAutoScroll: function (t) {
              this._handleAutoScroll(t, !0);
            },
            _handleAutoScroll: function (e, n) {
              var o = this,
                i = (e.touches ? e.touches[0] : e).clientX,
                r = (e.touches ? e.touches[0] : e).clientY,
                t = document.elementFromPoint(i, r);
              if (((Gt = e), n || E || w || u)) {
                te(e, this.options, t, n);
                var a = H(t, !0);
                !Vt ||
                  (Ut && i === Wt && r === zt) ||
                  (Ut && Qt(),
                  (Ut = setInterval(function () {
                    var t = H(document.elementFromPoint(i, r), !0);
                    t !== a && ((a = t), Zt()), te(e, o.options, t, n);
                  }, 10)),
                  (Wt = i),
                  (zt = r));
              } else {
                if (!this.options.bubbleScroll || H(t, !0) === A())
                  return void Zt();
                te(e, this.options, H(t, !1), !1);
              }
            }
          }),
          a(t, { pluginName: "scroll", initializeByDefault: !0 })
        );
      })()
    ),
    Rt.mount(ne, ee),
    Rt.mount(
      new (function () {
        function t() {
          this.defaults = { swapClass: "sortable-swap-highlight" };
        }
        return (
          (t.prototype = {
            dragStart: function (t) {
              var e = t.dragEl;
              Jt = e;
            },
            dragOverValid: function (t) {
              var e = t.completed,
                n = t.target,
                o = t.onMove,
                i = t.activeSortable,
                r = t.changed,
                a = t.cancel;
              if (i.options.swap) {
                var l = this.sortable.el,
                  s = this.options;
                if (n && n !== l) {
                  var c = Jt;
                  (Jt = !1 !== o(n) ? (k(n, s.swapClass, !0), n) : null),
                    c && c !== Jt && k(c, s.swapClass, !1);
                }
                r(), e(!0), a();
              }
            },
            drop: function (t) {
              var e = t.activeSortable,
                n = t.putSortable,
                o = t.dragEl,
                i = n || this.sortable,
                r = this.options;
              Jt && k(Jt, r.swapClass, !1),
                Jt &&
                  (r.swap || (n && n.options.swap)) &&
                  o !== Jt &&
                  (i.captureAnimationState(),
                  i !== e && e.captureAnimationState(),
                  (function (t, e) {
                    var n,
                      o,
                      i = t.parentNode,
                      r = e.parentNode;
                    if (!i || !r || i.isEqualNode(e) || r.isEqualNode(t))
                      return;
                    (n = F(t)), (o = F(e)), i.isEqualNode(r) && n < o && o++;
                    i.insertBefore(e, i.children[n]),
                      r.insertBefore(t, r.children[o]);
                  })(o, Jt),
                  i.animateAll(),
                  i !== e && e.animateAll());
            },
            nulling: function () {
              Jt = null;
            }
          }),
          a(t, {
            pluginName: "swap",
            eventProperties: function () {
              return { swapItem: Jt };
            }
          })
        );
      })()
    ),
    Rt.mount(
      new (function () {
        function t(o) {
          for (var t in this)
            "_" === t.charAt(0) &&
              "function" == typeof this[t] &&
              (this[t] = this[t].bind(this));
          o.options.supportPointer
            ? d(document, "pointerup", this._deselectMultiDrag)
            : (d(document, "mouseup", this._deselectMultiDrag),
              d(document, "touchend", this._deselectMultiDrag)),
            d(document, "keydown", this._checkKeyDown),
            d(document, "keyup", this._checkKeyUp),
            (this.defaults = {
              selectedClass: "sortable-selected",
              multiDragKey: null,
              setData: function (t, e) {
                var n = "";
                se.length && ie === o
                  ? se.forEach(function (t, e) {
                      n += (e ? ", " : "") + t.textContent;
                    })
                  : (n = e.textContent),
                  t.setData("Text", n);
              }
            });
        }
        return (
          (t.prototype = {
            multiDragKeyDown: !1,
            isMultiDrag: !1,
            delayStartGlobal: function (t) {
              var e = t.dragEl;
              re = e;
            },
            delayEnded: function () {
              this.isMultiDrag = ~se.indexOf(re);
            },
            setupClone: function (t) {
              var e = t.sortable,
                n = t.cancel;
              if (this.isMultiDrag) {
                for (var o = 0; o < se.length; o++)
                  ce.push(S(se[o])),
                    (ce[o].sortableIndex = se[o].sortableIndex),
                    (ce[o].draggable = !1),
                    (ce[o].style["will-change"] = ""),
                    k(ce[o], this.options.selectedClass, !1),
                    se[o] === re && k(ce[o], this.options.chosenClass, !1);
                e._hideClone(), n();
              }
            },
            clone: function (t) {
              var e = t.sortable,
                n = t.rootEl,
                o = t.dispatchSortableEvent,
                i = t.cancel;
              this.isMultiDrag &&
                (this.options.removeCloneOnHide ||
                  (se.length && ie === e && (fe(!0, n), o("clone"), i())));
            },
            showClone: function (t) {
              var e = t.cloneNowShown,
                n = t.rootEl,
                o = t.cancel;
              this.isMultiDrag &&
                (fe(!1, n),
                ce.forEach(function (t) {
                  R(t, "display", "");
                }),
                e(),
                (le = !1),
                o());
            },
            hideClone: function (t) {
              var e = this,
                n = (t.sortable, t.cloneNowHidden),
                o = t.cancel;
              this.isMultiDrag &&
                (ce.forEach(function (t) {
                  R(t, "display", "none"),
                    e.options.removeCloneOnHide &&
                      t.parentNode &&
                      t.parentNode.removeChild(t);
                }),
                n(),
                (le = !0),
                o());
            },
            dragStartGlobal: function (t) {
              t.sortable;
              !this.isMultiDrag && ie && ie.multiDrag._deselectMultiDrag(),
                se.forEach(function (t) {
                  t.sortableIndex = F(t);
                }),
                (se = se.sort(function (t, e) {
                  return t.sortableIndex - e.sortableIndex;
                })),
                (he = !0);
            },
            dragStarted: function (t) {
              var e = this,
                n = t.sortable;
              if (this.isMultiDrag) {
                if (
                  this.options.sort &&
                  (n.captureAnimationState(), this.options.animation)
                ) {
                  se.forEach(function (t) {
                    t !== re && R(t, "position", "absolute");
                  });
                  var o = X(re, !1, !0, !0);
                  se.forEach(function (t) {
                    t !== re && _(t, o);
                  }),
                    (ue = de = !0);
                }
                n.animateAll(function () {
                  (ue = de = !1),
                    e.options.animation &&
                      se.forEach(function (t) {
                        C(t);
                      }),
                    e.options.sort && pe();
                });
              }
            },
            dragOver: function (t) {
              var e = t.target,
                n = t.completed,
                o = t.cancel;
              de && ~se.indexOf(e) && (n(!1), o());
            },
            revert: function (t) {
              var e = t.fromSortable,
                n = t.rootEl,
                o = t.sortable,
                i = t.dragRect;
              1 < se.length &&
                (se.forEach(function (t) {
                  o.addAnimationState({ target: t, rect: de ? X(t) : i }),
                    C(t),
                    (t.fromRect = i),
                    e.removeAnimationState(t);
                }),
                (de = !1),
                (function (o, i) {
                  se.forEach(function (t, e) {
                    var n = i.children[t.sortableIndex + (o ? Number(e) : 0)];
                    n ? i.insertBefore(t, n) : i.appendChild(t);
                  });
                })(!this.options.removeCloneOnHide, n));
            },
            dragOverCompleted: function (t) {
              var e = t.sortable,
                n = t.isOwner,
                o = t.insertion,
                i = t.activeSortable,
                r = t.parentEl,
                a = t.putSortable,
                l = this.options;
              if (o) {
                if (
                  (n && i._hideClone(),
                  (ue = !1),
                  l.animation &&
                    1 < se.length &&
                    (de || (!n && !i.options.sort && !a)))
                ) {
                  var s = X(re, !1, !0, !0);
                  se.forEach(function (t) {
                    t !== re && (_(t, s), r.appendChild(t));
                  }),
                    (de = !0);
                }
                if (!n)
                  if ((de || pe(), 1 < se.length)) {
                    var c = le;
                    i._showClone(e),
                      i.options.animation &&
                        !le &&
                        c &&
                        ce.forEach(function (t) {
                          i.addAnimationState({ target: t, rect: ae }),
                            (t.fromRect = ae),
                            (t.thisAnimationDuration = null);
                        });
                  } else i._showClone(e);
              }
            },
            dragOverAnimationCapture: function (t) {
              var e = t.dragRect,
                n = t.isOwner,
                o = t.activeSortable;
              if (
                (se.forEach(function (t) {
                  t.thisAnimationDuration = null;
                }),
                o.options.animation && !n && o.multiDrag.isMultiDrag)
              ) {
                ae = a({}, e);
                var i = v(re, !0);
                (ae.top -= i.f), (ae.left -= i.e);
              }
            },
            dragOverAnimationComplete: function () {
              de && ((de = !1), pe());
            },
            drop: function (t) {
              var e = t.originalEvent,
                n = t.rootEl,
                o = t.parentEl,
                i = t.sortable,
                r = t.dispatchSortableEvent,
                a = t.oldIndex,
                l = t.putSortable,
                s = l || this.sortable;
              if (e) {
                var c = this.options,
                  u = o.children;
                if (!he)
                  if (
                    (c.multiDragKey &&
                      !this.multiDragKeyDown &&
                      this._deselectMultiDrag(),
                    k(re, c.selectedClass, !~se.indexOf(re)),
                    ~se.indexOf(re))
                  )
                    se.splice(se.indexOf(re), 1),
                      (oe = null),
                      N({
                        sortable: i,
                        rootEl: n,
                        name: "deselect",
                        targetEl: re,
                        originalEvt: e
                      });
                  else {
                    if (
                      (se.push(re),
                      N({
                        sortable: i,
                        rootEl: n,
                        name: "select",
                        targetEl: re,
                        originalEvt: e
                      }),
                      e.shiftKey && oe && i.el.contains(oe))
                    ) {
                      var d,
                        h,
                        f = F(oe),
                        p = F(re);
                      if (~f && ~p && f !== p)
                        for (
                          d = f < p ? ((h = f), p) : ((h = p), f + 1);
                          h < d;
                          h++
                        )
                          ~se.indexOf(u[h]) ||
                            (k(u[h], c.selectedClass, !0),
                            se.push(u[h]),
                            N({
                              sortable: i,
                              rootEl: n,
                              name: "select",
                              targetEl: u[h],
                              originalEvt: e
                            }));
                    } else oe = re;
                    ie = s;
                  }
                if (he && this.isMultiDrag) {
                  if ((o[j].options.sort || o !== n) && 1 < se.length) {
                    var g = X(re),
                      v = F(re, ":not(." + this.options.selectedClass + ")");
                    if (
                      (!ue && c.animation && (re.thisAnimationDuration = null),
                      s.captureAnimationState(),
                      !ue &&
                        (c.animation &&
                          ((re.fromRect = g),
                          se.forEach(function (t) {
                            if (((t.thisAnimationDuration = null), t !== re)) {
                              var e = de ? X(t) : g;
                              (t.fromRect = e),
                                s.addAnimationState({ target: t, rect: e });
                            }
                          })),
                        pe(),
                        se.forEach(function (t) {
                          u[v] ? o.insertBefore(t, u[v]) : o.appendChild(t),
                            v++;
                        }),
                        a === F(re)))
                    ) {
                      var m = !1;
                      se.forEach(function (t) {
                        t.sortableIndex === F(t) || (m = !0);
                      }),
                        m && r("update");
                    }
                    se.forEach(function (t) {
                      C(t);
                    }),
                      s.animateAll();
                  }
                  ie = s;
                }
                (n === o || (l && "clone" !== l.lastPutMode)) &&
                  ce.forEach(function (t) {
                    t.parentNode && t.parentNode.removeChild(t);
                  });
              }
            },
            nullingGlobal: function () {
              (this.isMultiDrag = he = !1), (ce.length = 0);
            },
            destroyGlobal: function () {
              this._deselectMultiDrag(),
                s(document, "pointerup", this._deselectMultiDrag),
                s(document, "mouseup", this._deselectMultiDrag),
                s(document, "touchend", this._deselectMultiDrag),
                s(document, "keydown", this._checkKeyDown),
                s(document, "keyup", this._checkKeyUp);
            },
            _deselectMultiDrag: function (t) {
              if (
                !(
                  (void 0 !== he && he) ||
                  ie !== this.sortable ||
                  (t &&
                    P(
                      t.target,
                      this.options.draggable,
                      this.sortable.el,
                      !1
                    )) ||
                  (t && 0 !== t.button)
                )
              )
                for (; se.length; ) {
                  var e = se[0];
                  k(e, this.options.selectedClass, !1),
                    se.shift(),
                    N({
                      sortable: this.sortable,
                      rootEl: this.sortable.el,
                      name: "deselect",
                      targetEl: e,
                      originalEvt: t
                    });
                }
            },
            _checkKeyDown: function (t) {
              t.key === this.options.multiDragKey &&
                (this.multiDragKeyDown = !0);
            },
            _checkKeyUp: function (t) {
              t.key === this.options.multiDragKey &&
                (this.multiDragKeyDown = !1);
            }
          }),
          a(t, {
            pluginName: "multiDrag",
            utils: {
              select: function (t) {
                var e = t.parentNode[j];
                e &&
                  e.options.multiDrag &&
                  !~se.indexOf(t) &&
                  (ie &&
                    ie !== e &&
                    (ie.multiDrag._deselectMultiDrag(), (ie = e)),
                  k(t, e.options.selectedClass, !0),
                  se.push(t));
              },
              deselect: function (t) {
                var e = t.parentNode[j],
                  n = se.indexOf(t);
                e &&
                  e.options.multiDrag &&
                  ~n &&
                  (k(t, e.options.selectedClass, !1), se.splice(n, 1));
              }
            },
            eventProperties: function () {
              var n = this,
                o = [],
                i = [];
              return (
                se.forEach(function (t) {
                  var e;
                  o.push({ multiDragElement: t, index: t.sortableIndex }),
                    (e =
                      de && t !== re
                        ? -1
                        : de
                        ? F(t, ":not(." + n.options.selectedClass + ")")
                        : F(t)),
                    i.push({ multiDragElement: t, index: e });
                }),
                {
                  items: e(se),
                  clones: [].concat(ce),
                  oldIndicies: o,
                  newIndicies: i
                }
              );
            },
            optionListeners: {
              multiDragKey: function (t) {
                return (
                  "ctrl" === (t = t.toLowerCase())
                    ? (t = "Control")
                    : 1 < t.length &&
                      (t = t.charAt(0).toUpperCase() + t.substr(1)),
                  t
                );
              }
            }
          })
        );
      })()
    ),
    Rt
  );
});