前端可爱的熊猫遮眼登录页面

先看效果图:

 


HTML代码:

<!DOCTYPE html>
<html>

<head>
    <meta http-equiv="content-type" content="text/html; charset=utf-8">
    <meta name="viewport" content="width=device-width,initial-scale=1,maximum-scale=1,user-scalable=no">
    <title>熊猫遮眼登录界面</title>
    <link rel="stylesheet" href="./panda.css">
    <link rel="shortcut icon" href="https://cn-assets.gitee.com/assets/favicon-9007bd527d8a7851c8330e783151df58.ico"
        type="image/x-icon">
</head>

<body>

    <!-- 登录页面的容器 -->
    <div class="container">
        <!-- 熊猫插图 -->
        <div class="panda">
            <div class="ear left"></div> <!-- 左耳朵 -->
            <div class="ear right"></div> <!-- 右耳朵 -->
            <div class="face">
                <div class="eye-shadow left"></div> <!-- 左眼影 -->
                <div class="eye-white left">
                    <div class="eye-ball"></div> <!-- 左眼白色区域 -->
                </div>
                <div class="eye-shadow right"></div> <!-- 右眼影 -->
                <div class="eye-white right">
                    <div class="eye-ball"></div> <!-- 右眼白色区域 -->
                </div>
                <div class="nose"></div> <!-- 鼻子 -->
                <div class="mouth"></div> <!-- 嘴巴 -->
            </div>
            <div class="body"></div> <!-- 身体 -->
            <div class="foot left">
                <div class="sole"></div> <!-- 左脚底 -->
            </div>
            <div class="foot right">
                <div class="sole"></div> <!-- 右脚底 -->
            </div>
        </div>

        <!-- 登录框 -->
        <div class="login-box">
            <div class="hand left"></div> <!-- 左手 -->
            <div class="hand right"></div> <!-- 右手 -->
            <h1>用户登录</h1> <!-- 登录标题 -->
            <div class="ipt-box">
                <input type="text" required> <!-- 用户名输入框 -->
                <label>用户名</label> <!-- 用户名标签 -->
            </div>
            <div class="ipt-box">
                <input type="password" id="password" required> <!-- 密码输入框 -->
                <label>密码</label> <!-- 密码标签 -->
            </div>
            <button>登录</button> <!-- 登录按钮 -->
        </div>
    </div>
    <script src="./jquery-1.8.3.min.js"></script>
    <script src="./panda.js"></script>
</body>

</html>

CSS代码:

*{
    /* 初始化 */
    margin: 0;
    padding: 0;
}
body{
    /* 100%窗口高度 */
    height: 100vh;
    /* 弹性布局 水平+垂直居中 */
    display: flex;
    justify-content: center;
    align-items: center;
    /* 渐变背景 */
    background: linear-gradient(200deg,#37e2b2,#2fa080);
}
/* 开始画熊猫 */
.panda{
    /* 相对定位 */
    position: relative;
    width: 200px;
}
/* 脸部 */
.face{
    width: 200px;
    height: 200px;
    background-color: #fff;
    border-radius: 100%;
    box-shadow: 0 10px 15px rgba(0,0,0,0.15);
    position: relative;
    z-index: 1;
}
/* 耳朵 */
.ear{
    width: 70px;
    height: 70px;
    background-color: #000;
    border-radius: 100%;
    position: absolute;
    top: -10px;
}
.ear.right{
    right: 0;
}
/* 黑眼圈 */
.eye-shadow{
    width: 50px;
    height: 80px;
    background-color: #000;
    border-radius: 50%;
    /* 绝对定位 */
    position: absolute;
    top: 40px;
}
.eye-shadow.left{
    transform: rotate(45deg);
    left: 30px;
}
.eye-shadow.right{
    transform: rotate(-45deg);
    right: 30px;
}
/* 眼白 */
.eye-white{
    width: 30px;
    height: 30px;
    background-color: #fff;
    border-radius: 100%;
    position: absolute;
    top: 68px;
}
.eye-white.left{
    left: 38px;
}
.eye-white.right{
    right: 38px;
}
/* 眼球 */
.eye-ball{
    width: 20px;
    height: 20px;
    background-color: #000;
    border-radius: 100%;
    position: absolute;
    left: 5px;
    top: 5px;
}
/* 鼻子 */
.nose{
    width: 35px;
    height: 20px;
    background-color: #000;
    position: absolute;
    left: 0;
    right: 0;
    margin: auto;
    bottom: 65px;
    border-radius: 42px 42px 60px 60px / 30px 30px 60px 60px;
}
/* 嘴巴 */
.mouth{
    width: 68px;
    height: 25px;
    border-bottom: 7px solid #000;
    border-radius: 50%;
    position: absolute;
    left: 0;
    right: 0;
    margin: auto;
    bottom: 35px;
}
/* 身体 */
.body{
    width: 250px;
    height: 280px;
    background-color: #fff;
    position: relative;
    left: -25px;
    top: -10px;
    border-radius: 100px 100px 100px 100px / 126px 126px 96px 96px;
    box-shadow: 0 5px 10px rgba(0,0,0,0.3);
}
/* 脚 */
.foot{
    width: 82px;
    height: 120px;
    background-color: #000;
    position: absolute;
    bottom: 8px;
    z-index: 3;
    border-radius: 40px 40px 35px 40px / 26px 26px 63px 63px;
    box-shadow: 0 5px 5px rgba(0,0,0,0.2);
}
.foot.left{
    left: -80px;
}
.foot.right{
    right: -80px;
    transform: rotateY(180deg);
}
/* 脚掌-大椭圆 */
.foot::after{
    content: "";
    width: 55px;
    height: 65px;
    background-color: #222;
    position: absolute;
    border-radius: 50%;
    left: 0;
    right: 0;
    margin: auto;
    bottom: 10px;
}
/* 脚掌-三个小椭圆 */
.foot .sole,
.foot .sole::before,
.foot .sole::after{
    width: 20px;
    height: 30px;
    background-color: #222;
    position: absolute;
    border-radius: 50%;
    left: 0;
    right: 0;
    margin: auto;
    top: 8px;
}
.foot .sole::before{
    content: "";
    left: -50px;
}
.foot .sole::after{
    content: "";
    left: 25px;
}
/* 手 */
.hand,
.hand::before,
.hand::after{
    width: 40px;
    height: 30px;
    background-color: #000;
    border-radius: 50px;
    position: absolute;
    top: 70px;
    left: -20px;
}
.hand::before{
    content: "";
    top: 16px;
    left: 0;
}
.hand::after{
    content: "";
    top: 32px;
    left: 0;
}
.hand.right{
    right: -20px;
    left: auto;
}
/* 登录框 */
.login-box{
    width: 400px;
    height: 300px;
    background-color: #fff;
    border-radius: 3px;
    box-shadow: 0 0 15px rgba(0,0,0,0.2);
    position: absolute;
    left: 50%;
    top: 50%;
    transform: translate(-50%,-110px);
    z-index: 2;
    /* 弹性布局 居中 垂直排列 */
    display: flex;
    justify-content: center;
    align-items: center;
    flex-direction: column;
    /* 设置过渡 */
    transition: 0.3s;
}
h1{
    color: #1dc797;
    font-weight: normal;
    margin-bottom: 5px;
}
.ipt-box{
    width: 80%;
    margin-top: 25px;
    position: relative;
}
.ipt-box input{
    width: 100%;
    height: 35px;
    border: none;
    border-bottom: 1px solid #bbb;
    text-indent: 5px;
    outline: none;
    transition: 0.3s;
}
.ipt-box label{
    position: absolute;
    left: 5px;
    top: 5px;
    font-size: 14px;
    color: #888;
    transition: 0.3s;
    pointer-events: none;
}
/* 输入框选中或有值时输入框的样式 */
.ipt-box input:focus,
.ipt-box input:valid{
    border-color: #1dc797;
    box-shadow: 0 1px #1dc797;
}
/* 输入框选中或有值时label的样式 */
.ipt-box input:focus ~ label,
.ipt-box input:valid ~ label{
    color: #1dc797;
    font-size: 12px;
    transform: translateY(-15px);
}
button{
    width: 150px;
    height: 40px;
    background-color: #1dc797;
    border: none;
    border-radius: 3px;
    margin-top: 30px;
    color: #fff;
    letter-spacing: 10px;
    text-indent: 10px;
    cursor: pointer;
    transition: 0.3s;
}
button:hover{
    letter-spacing: 25px;
    text-indent: 25px;
    background-color: #2fa080;
}
/* 登录框向上举 */
.up{
    transform: translate(-50%,-180px);
}

JS代码:

$('#password').focusin(function () {
    // 当密码框获得焦点时
    $('.login-box').addClass('up'); // 添加 'up' 类来改变登录框的位置
}).focusout(function () {
    // 当密码框失去焦点时
    $('.login-box').removeClass('up'); // 移除 'up' 类,恢复登录框的位置
})

// 眼球移动
$(document).on('mousemove', function (e) {
    let dw = $(document).width() / 10; // 计算文档宽度的十分之一
    let dh = $(document).height() / 18; // 计算文档高度的十八分之一
    let x = e.pageX / dw; // 根据鼠标在页面上的位置计算眼球的水平位置
    let y = e.pageY / dh; // 根据鼠标在页面上的位置计算眼球的垂直位置
    $('.eye-ball').css({
        left: x,
        top: y
    })
})

这段代码实现了以下功能:

  • 当密码框获得焦点时,登录框会上移;
  • 当密码框失去焦点时,登录框会恢复原位;
  • 根据鼠标在页面上的位置,眼球会相应地移动。

这是jQuery包,直接cv就可以了(有点多,直接cv就好了):

/*! jQuery v1.8.3 jquery.com | jquery.org/license */
(function (e, t) {
  function _(e) {
    var t = (M[e] = {});
    return (
      v.each(e.split(y), function (e, n) {
        t[n] = !0;
      }),
      t
    );
  }
  function H(e, n, r) {
    if (r === t && e.nodeType === 1) {
      var i = "data-" + n.replace(P, "-$1").toLowerCase();
      r = e.getAttribute(i);
      if (typeof r == "string") {
        try {
          r =
            r === "true"
              ? !0
              : r === "false"
              ? !1
              : r === "null"
              ? null
              : +r + "" === r
              ? +r
              : D.test(r)
              ? v.parseJSON(r)
              : r;
        } catch (s) {}
        v.data(e, n, r);
      } else r = t;
    }
    return r;
  }
  function B(e) {
    var t;
    for (t in e) {
      if (t === "data" && v.isEmptyObject(e[t])) continue;
      if (t !== "toJSON") return !1;
    }
    return !0;
  }
  function et() {
    return !1;
  }
  function tt() {
    return !0;
  }
  function ut(e) {
    return !e || !e.parentNode || e.parentNode.nodeType === 11;
  }
  function at(e, t) {
    do e = e[t];
    while (e && e.nodeType !== 1);
    return e;
  }
  function ft(e, t, n) {
    t = t || 0;
    if (v.isFunction(t))
      return v.grep(e, function (e, r) {
        var i = !!t.call(e, r, e);
        return i === n;
      });
    if (t.nodeType)
      return v.grep(e, function (e, r) {
        return (e === t) === n;
      });
    if (typeof t == "string") {
      var r = v.grep(e, function (e) {
        return e.nodeType === 1;
      });
      if (it.test(t)) return v.filter(t, r, !n);
      t = v.filter(t, r);
    }
    return v.grep(e, function (e, r) {
      return v.inArray(e, t) >= 0 === n;
    });
  }
  function lt(e) {
    var t = ct.split("|"),
      n = e.createDocumentFragment();
    if (n.createElement) while (t.length) n.createElement(t.pop());
    return n;
  }
  function Lt(e, t) {
    return (
      e.getElementsByTagName(t)[0] ||
      e.appendChild(e.ownerDocument.createElement(t))
    );
  }
  function At(e, t) {
    if (t.nodeType !== 1 || !v.hasData(e)) return;
    var n,
      r,
      i,
      s = v._data(e),
      o = v._data(t, s),
      u = s.events;
    if (u) {
      delete o.handle, (o.events = {});
      for (n in u)
        for (r = 0, i = u[n].length; r < i; r++) v.event.add(t, n, u[n][r]);
    }
    o.data && (o.data = v.extend({}, o.data));
  }
  function Ot(e, t) {
    var n;
    if (t.nodeType !== 1) return;
    t.clearAttributes && t.clearAttributes(),
      t.mergeAttributes && t.mergeAttributes(e),
      (n = t.nodeName.toLowerCase()),
      n === "object"
        ? (t.parentNode && (t.outerHTML = e.outerHTML),
          v.support.html5Clone &&
            e.innerHTML &&
            !v.trim(t.innerHTML) &&
            (t.innerHTML = e.innerHTML))
        : n === "input" && Et.test(e.type)
        ? ((t.defaultChecked = t.checked = e.checked),
          t.value !== e.value && (t.value = e.value))
        : n === "option"
        ? (t.selected = e.defaultSelected)
        : n === "input" || n === "textarea"
        ? (t.defaultValue = e.defaultValue)
        : n === "script" && t.text !== e.text && (t.text = e.text),
      t.removeAttribute(v.expando);
  }
  function Mt(e) {
    return typeof e.getElementsByTagName != "undefined"
      ? e.getElementsByTagName("*")
      : typeof e.querySelectorAll != "undefined"
      ? e.querySelectorAll("*")
      : [];
  }
  function _t(e) {
    Et.test(e.type) && (e.defaultChecked = e.checked);
  }
  function Qt(e, t) {
    if (t in e) return t;
    var n = t.charAt(0).toUpperCase() + t.slice(1),
      r = t,
      i = Jt.length;
    while (i--) {
      t = Jt[i] + n;
      if (t in e) return t;
    }
    return r;
  }
  function Gt(e, t) {
    return (
      (e = t || e),
      v.css(e, "display") === "none" || !v.contains(e.ownerDocument, e)
    );
  }
  function Yt(e, t) {
    var n,
      r,
      i = [],
      s = 0,
      o = e.length;
    for (; s < o; s++) {
      n = e[s];
      if (!n.style) continue;
      (i[s] = v._data(n, "olddisplay")),
        t
          ? (!i[s] && n.style.display === "none" && (n.style.display = ""),
            n.style.display === "" &&
              Gt(n) &&
              (i[s] = v._data(n, "olddisplay", nn(n.nodeName))))
          : ((r = Dt(n, "display")),
            !i[s] && r !== "none" && v._data(n, "olddisplay", r));
    }
    for (s = 0; s < o; s++) {
      n = e[s];
      if (!n.style) continue;
      if (!t || n.style.display === "none" || n.style.display === "")
        n.style.display = t ? i[s] || "" : "none";
    }
    return e;
  }
  function Zt(e, t, n) {
    var r = Rt.exec(t);
    return r ? Math.max(0, r[1] - (n || 0)) + (r[2] || "px") : t;
  }
  function en(e, t, n, r) {
    var i = n === (r ? "border" : "content") ? 4 : t === "width" ? 1 : 0,
      s = 0;
    for (; i < 4; i += 2)
      n === "margin" && (s += v.css(e, n + $t[i], !0)),
        r
          ? (n === "content" &&
              (s -= parseFloat(Dt(e, "padding" + $t[i])) || 0),
            n !== "margin" &&
              (s -= parseFloat(Dt(e, "border" + $t[i] + "Width")) || 0))
          : ((s += parseFloat(Dt(e, "padding" + $t[i])) || 0),
            n !== "padding" &&
              (s += parseFloat(Dt(e, "border" + $t[i] + "Width")) || 0));
    return s;
  }
  function tn(e, t, n) {
    var r = t === "width" ? e.offsetWidth : e.offsetHeight,
      i = !0,
      s = v.support.boxSizing && v.css(e, "boxSizing") === "border-box";
    if (r <= 0 || r == null) {
      r = Dt(e, t);
      if (r < 0 || r == null) r = e.style[t];
      if (Ut.test(r)) return r;
      (i = s && (v.support.boxSizingReliable || r === e.style[t])),
        (r = parseFloat(r) || 0);
    }
    return r + en(e, t, n || (s ? "border" : "content"), i) + "px";
  }
  function nn(e) {
    if (Wt[e]) return Wt[e];
    var t = v("<" + e + ">").appendTo(i.body),
      n = t.css("display");
    t.remove();
    if (n === "none" || n === "") {
      Pt = i.body.appendChild(
        Pt ||
          v.extend(i.createElement("iframe"), {
            frameBorder: 0,
            width: 0,
            height: 0,
          })
      );
      if (!Ht || !Pt.createElement)
        (Ht = (Pt.contentWindow || Pt.contentDocument).document),
          Ht.write("<!doctype html><html><body>"),
          Ht.close();
      (t = Ht.body.appendChild(Ht.createElement(e))),
        (n = Dt(t, "display")),
        i.body.removeChild(Pt);
    }
    return (Wt[e] = n), n;
  }
  function fn(e, t, n, r) {
    var i;
    if (v.isArray(t))
      v.each(t, function (t, i) {
        n || sn.test(e)
          ? r(e, i)
          : fn(e + "[" + (typeof i == "object" ? t : "") + "]", i, n, r);
      });
    else if (!n && v.type(t) === "object")
      for (i in t) fn(e + "[" + i + "]", t[i], n, r);
    else r(e, t);
  }
  function Cn(e) {
    return function (t, n) {
      typeof t != "string" && ((n = t), (t = "*"));
      var r,
        i,
        s,
        o = t.toLowerCase().split(y),
        u = 0,
        a = o.length;
      if (v.isFunction(n))
        for (; u < a; u++)
          (r = o[u]),
            (s = /^\+/.test(r)),
            s && (r = r.substr(1) || "*"),
            (i = e[r] = e[r] || []),
            i[s ? "unshift" : "push"](n);
    };
  }
  function kn(e, n, r, i, s, o) {
    (s = s || n.dataTypes[0]), (o = o || {}), (o[s] = !0);
    var u,
      a = e[s],
      f = 0,
      l = a ? a.length : 0,
      c = e === Sn;
    for (; f < l && (c || !u); f++)
      (u = a[f](n, r, i)),
        typeof u == "string" &&
          (!c || o[u]
            ? (u = t)
            : (n.dataTypes.unshift(u), (u = kn(e, n, r, i, u, o))));
    return (c || !u) && !o["*"] && (u = kn(e, n, r, i, "*", o)), u;
  }
  function Ln(e, n) {
    var r,
      i,
      s = v.ajaxSettings.flatOptions || {};
    for (r in n) n[r] !== t && ((s[r] ? e : i || (i = {}))[r] = n[r]);
    i && v.extend(!0, e, i);
  }
  function An(e, n, r) {
    var i,
      s,
      o,
      u,
      a = e.contents,
      f = e.dataTypes,
      l = e.responseFields;
    for (s in l) s in r && (n[l[s]] = r[s]);
    while (f[0] === "*")
      f.shift(),
        i === t && (i = e.mimeType || n.getResponseHeader("content-type"));
    if (i)
      for (s in a)
        if (a[s] && a[s].test(i)) {
          f.unshift(s);
          break;
        }
    if (f[0] in r) o = f[0];
    else {
      for (s in r) {
        if (!f[0] || e.converters[s + " " + f[0]]) {
          o = s;
          break;
        }
        u || (u = s);
      }
      o = o || u;
    }
    if (o) return o !== f[0] && f.unshift(o), r[o];
  }
  function On(e, t) {
    var n,
      r,
      i,
      s,
      o = e.dataTypes.slice(),
      u = o[0],
      a = {},
      f = 0;
    e.dataFilter && (t = e.dataFilter(t, e.dataType));
    if (o[1]) for (n in e.converters) a[n.toLowerCase()] = e.converters[n];
    for (; (i = o[++f]); )
      if (i !== "*") {
        if (u !== "*" && u !== i) {
          n = a[u + " " + i] || a["* " + i];
          if (!n)
            for (r in a) {
              s = r.split(" ");
              if (s[1] === i) {
                n = a[u + " " + s[0]] || a["* " + s[0]];
                if (n) {
                  n === !0
                    ? (n = a[r])
                    : a[r] !== !0 && ((i = s[0]), o.splice(f--, 0, i));
                  break;
                }
              }
            }
          if (n !== !0)
            if (n && e["throws"]) t = n(t);
            else
              try {
                t = n(t);
              } catch (l) {
                return {
                  state: "parsererror",
                  error: n ? l : "No conversion from " + u + " to " + i,
                };
              }
        }
        u = i;
      }
    return { state: "success", data: t };
  }
  function Fn() {
    try {
      return new e.XMLHttpRequest();
    } catch (t) {}
  }
  function In() {
    try {
      return new e.ActiveXObject("Microsoft.XMLHTTP");
    } catch (t) {}
  }
  function $n() {
    return (
      setTimeout(function () {
        qn = t;
      }, 0),
      (qn = v.now())
    );
  }
  function Jn(e, t) {
    v.each(t, function (t, n) {
      var r = (Vn[t] || []).concat(Vn["*"]),
        i = 0,
        s = r.length;
      for (; i < s; i++) if (r[i].call(e, t, n)) return;
    });
  }
  function Kn(e, t, n) {
    var r,
      i = 0,
      s = 0,
      o = Xn.length,
      u = v.Deferred().always(function () {
        delete a.elem;
      }),
      a = function () {
        var t = qn || $n(),
          n = Math.max(0, f.startTime + f.duration - t),
          r = n / f.duration || 0,
          i = 1 - r,
          s = 0,
          o = f.tweens.length;
        for (; s < o; s++) f.tweens[s].run(i);
        return (
          u.notifyWith(e, [f, i, n]),
          i < 1 && o ? n : (u.resolveWith(e, [f]), !1)
        );
      },
      f = u.promise({
        elem: e,
        props: v.extend({}, t),
        opts: v.extend(!0, { specialEasing: {} }, n),
        originalProperties: t,
        originalOptions: n,
        startTime: qn || $n(),
        duration: n.duration,
        tweens: [],
        createTween: function (t, n, r) {
          var i = v.Tween(
            e,
            f.opts,
            t,
            n,
            f.opts.specialEasing[t] || f.opts.easing
          );
          return f.tweens.push(i), i;
        },
        stop: function (t) {
          var n = 0,
            r = t ? f.tweens.length : 0;
          for (; n < r; n++) f.tweens[n].run(1);
          return t ? u.resolveWith(e, [f, t]) : u.rejectWith(e, [f, t]), this;
        },
      }),
      l = f.props;
    Qn(l, f.opts.specialEasing);
    for (; i < o; i++) {
      r = Xn[i].call(f, e, l, f.opts);
      if (r) return r;
    }
    return (
      Jn(f, l),
      v.isFunction(f.opts.start) && f.opts.start.call(e, f),
      v.fx.timer(v.extend(a, { anim: f, queue: f.opts.queue, elem: e })),
      f
        .progress(f.opts.progress)
        .done(f.opts.done, f.opts.complete)
        .fail(f.opts.fail)
        .always(f.opts.always)
    );
  }
  function Qn(e, t) {
    var n, r, i, s, o;
    for (n in e) {
      (r = v.camelCase(n)),
        (i = t[r]),
        (s = e[n]),
        v.isArray(s) && ((i = s[1]), (s = e[n] = s[0])),
        n !== r && ((e[r] = s), delete e[n]),
        (o = v.cssHooks[r]);
      if (o && "expand" in o) {
        (s = o.expand(s)), delete e[r];
        for (n in s) n in e || ((e[n] = s[n]), (t[n] = i));
      } else t[r] = i;
    }
  }
  function Gn(e, t, n) {
    var r,
      i,
      s,
      o,
      u,
      a,
      f,
      l,
      c,
      h = this,
      p = e.style,
      d = {},
      m = [],
      g = e.nodeType && Gt(e);
    n.queue ||
      ((l = v._queueHooks(e, "fx")),
      l.unqueued == null &&
        ((l.unqueued = 0),
        (c = l.empty.fire),
        (l.empty.fire = function () {
          l.unqueued || c();
        })),
      l.unqueued++,
      h.always(function () {
        h.always(function () {
          l.unqueued--, v.queue(e, "fx").length || l.empty.fire();
        });
      })),
      e.nodeType === 1 &&
        ("height" in t || "width" in t) &&
        ((n.overflow = [p.overflow, p.overflowX, p.overflowY]),
        v.css(e, "display") === "inline" &&
          v.css(e, "float") === "none" &&
          (!v.support.inlineBlockNeedsLayout || nn(e.nodeName) === "inline"
            ? (p.display = "inline-block")
            : (p.zoom = 1))),
      n.overflow &&
        ((p.overflow = "hidden"),
        v.support.shrinkWrapBlocks ||
          h.done(function () {
            (p.overflow = n.overflow[0]),
              (p.overflowX = n.overflow[1]),
              (p.overflowY = n.overflow[2]);
          }));
    for (r in t) {
      s = t[r];
      if (Un.exec(s)) {
        delete t[r], (a = a || s === "toggle");
        if (s === (g ? "hide" : "show")) continue;
        m.push(r);
      }
    }
    o = m.length;
    if (o) {
      (u = v._data(e, "fxshow") || v._data(e, "fxshow", {})),
        "hidden" in u && (g = u.hidden),
        a && (u.hidden = !g),
        g
          ? v(e).show()
          : h.done(function () {
              v(e).hide();
            }),
        h.done(function () {
          var t;
          v.removeData(e, "fxshow", !0);
          for (t in d) v.style(e, t, d[t]);
        });
      for (r = 0; r < o; r++)
        (i = m[r]),
          (f = h.createTween(i, g ? u[i] : 0)),
          (d[i] = u[i] || v.style(e, i)),
          i in u ||
            ((u[i] = f.start),
            g &&
              ((f.end = f.start),
              (f.start = i === "width" || i === "height" ? 1 : 0)));
    }
  }
  function Yn(e, t, n, r, i) {
    return new Yn.prototype.init(e, t, n, r, i);
  }
  function Zn(e, t) {
    var n,
      r = { height: e },
      i = 0;
    t = t ? 1 : 0;
    for (; i < 4; i += 2 - t)
      (n = $t[i]), (r["margin" + n] = r["padding" + n] = e);
    return t && (r.opacity = r.width = e), r;
  }
  function tr(e) {
    return v.isWindow(e)
      ? e
      : e.nodeType === 9
      ? e.defaultView || e.parentWindow
      : !1;
  }
  var n,
    r,
    i = e.document,
    s = e.location,
    o = e.navigator,
    u = e.jQuery,
    a = e.$,
    f = Array.prototype.push,
    l = Array.prototype.slice,
    c = Array.prototype.indexOf,
    h = Object.prototype.toString,
    p = Object.prototype.hasOwnProperty,
    d = String.prototype.trim,
    v = function (e, t) {
      return new v.fn.init(e, t, n);
    },
    m = /[\-+]?(?:\d*\.|)\d+(?:[eE][\-+]?\d+|)/.source,
    g = /\S/,
    y = /\s+/,
    b = /^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,
    w = /^(?:[^#<]*(<[\w\W]+>)[^>]*$|#([\w\-]*)$)/,
    E = /^<(\w+)\s*\/?>(?:<\/\1>|)$/,
    S = /^[\],:{}\s]*$/,
    x = /(?:^|:|,)(?:\s*\[)+/g,
    T = /\\(?:["\\\/bfnrt]|u[\da-fA-F]{4})/g,
    N = /"[^"\\\r\n]*"|true|false|null|-?(?:\d\d*\.|)\d+(?:[eE][\-+]?\d+|)/g,
    C = /^-ms-/,
    k = /-([\da-z])/gi,
    L = function (e, t) {
      return (t + "").toUpperCase();
    },
    A = function () {
      i.addEventListener
        ? (i.removeEventListener("DOMContentLoaded", A, !1), v.ready())
        : i.readyState === "complete" &&
          (i.detachEvent("onreadystatechange", A), v.ready());
    },
    O = {};
  (v.fn = v.prototype =
    {
      constructor: v,
      init: function (e, n, r) {
        var s, o, u, a;
        if (!e) return this;
        if (e.nodeType)
          return (this.context = this[0] = e), (this.length = 1), this;
        if (typeof e == "string") {
          e.charAt(0) === "<" && e.charAt(e.length - 1) === ">" && e.length >= 3
            ? (s = [null, e, null])
            : (s = w.exec(e));
          if (s && (s[1] || !n)) {
            if (s[1])
              return (
                (n = n instanceof v ? n[0] : n),
                (a = n && n.nodeType ? n.ownerDocument || n : i),
                (e = v.parseHTML(s[1], a, !0)),
                E.test(s[1]) && v.isPlainObject(n) && this.attr.call(e, n, !0),
                v.merge(this, e)
              );
            o = i.getElementById(s[2]);
            if (o && o.parentNode) {
              if (o.id !== s[2]) return r.find(e);
              (this.length = 1), (this[0] = o);
            }
            return (this.context = i), (this.selector = e), this;
          }
          return !n || n.jquery
            ? (n || r).find(e)
            : this.constructor(n).find(e);
        }
        return v.isFunction(e)
          ? r.ready(e)
          : (e.selector !== t &&
              ((this.selector = e.selector), (this.context = e.context)),
            v.makeArray(e, this));
      },
      selector: "",
      jquery: "1.8.3",
      length: 0,
      size: function () {
        return this.length;
      },
      toArray: function () {
        return l.call(this);
      },
      get: function (e) {
        return e == null
          ? this.toArray()
          : e < 0
          ? this[this.length + e]
          : this[e];
      },
      pushStack: function (e, t, n) {
        var r = v.merge(this.constructor(), e);
        return (
          (r.prevObject = this),
          (r.context = this.context),
          t === "find"
            ? (r.selector = this.selector + (this.selector ? " " : "") + n)
            : t && (r.selector = this.selector + "." + t + "(" + n + ")"),
          r
        );
      },
      each: function (e, t) {
        return v.each(this, e, t);
      },
      ready: function (e) {
        return v.ready.promise().done(e), this;
      },
      eq: function (e) {
        return (e = +e), e === -1 ? this.slice(e) : this.slice(e, e + 1);
      },
      first: function () {
        return this.eq(0);
      },
      last: function () {
        return this.eq(-1);
      },
      slice: function () {
        return this.pushStack(
          l.apply(this, arguments),
          "slice",
          l.call(arguments).join(",")
        );
      },
      map: function (e) {
        return this.pushStack(
          v.map(this, function (t, n) {
            return e.call(t, n, t);
          })
        );
      },
      end: function () {
        return this.prevObject || this.constructor(null);
      },
      push: f,
      sort: [].sort,
      splice: [].splice,
    }),
    (v.fn.init.prototype = v.fn),
    (v.extend = v.fn.extend =
      function () {
        var e,
          n,
          r,
          i,
          s,
          o,
          u = arguments[0] || {},
          a = 1,
          f = arguments.length,
          l = !1;
        typeof u == "boolean" && ((l = u), (u = arguments[1] || {}), (a = 2)),
          typeof u != "object" && !v.isFunction(u) && (u = {}),
          f === a && ((u = this), --a);
        for (; a < f; a++)
          if ((e = arguments[a]) != null)
            for (n in e) {
              (r = u[n]), (i = e[n]);
              if (u === i) continue;
              l && i && (v.isPlainObject(i) || (s = v.isArray(i)))
                ? (s
                    ? ((s = !1), (o = r && v.isArray(r) ? r : []))
                    : (o = r && v.isPlainObject(r) ? r : {}),
                  (u[n] = v.extend(l, o, i)))
                : i !== t && (u[n] = i);
            }
        return u;
      }),
    v.extend({
      noConflict: function (t) {
        return e.$ === v && (e.$ = a), t && e.jQuery === v && (e.jQuery = u), v;
      },
      isReady: !1,
      readyWait: 1,
      holdReady: function (e) {
        e ? v.readyWait++ : v.ready(!0);
      },
      ready: function (e) {
        if (e === !0 ? --v.readyWait : v.isReady) return;
        if (!i.body) return setTimeout(v.ready, 1);
        v.isReady = !0;
        if (e !== !0 && --v.readyWait > 0) return;
        r.resolveWith(i, [v]),
          v.fn.trigger && v(i).trigger("ready").off("ready");
      },
      isFunction: function (e) {
        return v.type(e) === "function";
      },
      isArray:
        Array.isArray ||
        function (e) {
          return v.type(e) === "array";
        },
      isWindow: function (e) {
        return e != null && e == e.window;
      },
      isNumeric: function (e) {
        return !isNaN(parseFloat(e)) && isFinite(e);
      },
      type: function (e) {
        return e == null ? String(e) : O[h.call(e)] || "object";
      },
      isPlainObject: function (e) {
        if (!e || v.type(e) !== "object" || e.nodeType || v.isWindow(e))
          return !1;
        try {
          if (
            e.constructor &&
            !p.call(e, "constructor") &&
            !p.call(e.constructor.prototype, "isPrototypeOf")
          )
            return !1;
        } catch (n) {
          return !1;
        }
        var r;
        for (r in e);
        return r === t || p.call(e, r);
      },
      isEmptyObject: function (e) {
        var t;
        for (t in e) return !1;
        return !0;
      },
      error: function (e) {
        throw new Error(e);
      },
      parseHTML: function (e, t, n) {
        var r;
        return !e || typeof e != "string"
          ? null
          : (typeof t == "boolean" && ((n = t), (t = 0)),
            (t = t || i),
            (r = E.exec(e))
              ? [t.createElement(r[1])]
              : ((r = v.buildFragment([e], t, n ? null : [])),
                v.merge(
                  [],
                  (r.cacheable ? v.clone(r.fragment) : r.fragment).childNodes
                )));
      },
      parseJSON: function (t) {
        if (!t || typeof t != "string") return null;
        t = v.trim(t);
        if (e.JSON && e.JSON.parse) return e.JSON.parse(t);
        if (S.test(t.replace(T, "@").replace(N, "]").replace(x, "")))
          return new Function("return " + t)();
        v.error("Invalid JSON: " + t);
      },
      parseXML: function (n) {
        var r, i;
        if (!n || typeof n != "string") return null;
        try {
          e.DOMParser
            ? ((i = new DOMParser()), (r = i.parseFromString(n, "text/xml")))
            : ((r = new ActiveXObject("Microsoft.XMLDOM")),
              (r.async = "false"),
              r.loadXML(n));
        } catch (s) {
          r = t;
        }
        return (
          (!r ||
            !r.documentElement ||
            r.getElementsByTagName("parsererror").length) &&
            v.error("Invalid XML: " + n),
          r
        );
      },
      noop: function () {},
      globalEval: function (t) {
        t &&
          g.test(t) &&
          (
            e.execScript ||
            function (t) {
              e.eval.call(e, t);
            }
          )(t);
      },
      camelCase: function (e) {
        return e.replace(C, "ms-").replace(k, L);
      },
      nodeName: function (e, t) {
        return e.nodeName && e.nodeName.toLowerCase() === t.toLowerCase();
      },
      each: function (e, n, r) {
        var i,
          s = 0,
          o = e.length,
          u = o === t || v.isFunction(e);
        if (r) {
          if (u) {
            for (i in e) if (n.apply(e[i], r) === !1) break;
          } else for (; s < o; ) if (n.apply(e[s++], r) === !1) break;
        } else if (u) {
          for (i in e) if (n.call(e[i], i, e[i]) === !1) break;
        } else for (; s < o; ) if (n.call(e[s], s, e[s++]) === !1) break;
        return e;
      },
      trim:
        d && !d.call("\ufeff\u00a0")
          ? function (e) {
              return e == null ? "" : d.call(e);
            }
          : function (e) {
              return e == null ? "" : (e + "").replace(b, "");
            },
      makeArray: function (e, t) {
        var n,
          r = t || [];
        return (
          e != null &&
            ((n = v.type(e)),
            e.length == null ||
            n === "string" ||
            n === "function" ||
            n === "regexp" ||
            v.isWindow(e)
              ? f.call(r, e)
              : v.merge(r, e)),
          r
        );
      },
      inArray: function (e, t, n) {
        var r;
        if (t) {
          if (c) return c.call(t, e, n);
          (r = t.length), (n = n ? (n < 0 ? Math.max(0, r + n) : n) : 0);
          for (; n < r; n++) if (n in t && t[n] === e) return n;
        }
        return -1;
      },
      merge: function (e, n) {
        var r = n.length,
          i = e.length,
          s = 0;
        if (typeof r == "number") for (; s < r; s++) e[i++] = n[s];
        else while (n[s] !== t) e[i++] = n[s++];
        return (e.length = i), e;
      },
      grep: function (e, t, n) {
        var r,
          i = [],
          s = 0,
          o = e.length;
        n = !!n;
        for (; s < o; s++) (r = !!t(e[s], s)), n !== r && i.push(e[s]);
        return i;
      },
      map: function (e, n, r) {
        var i,
          s,
          o = [],
          u = 0,
          a = e.length,
          f =
            e instanceof v ||
            (a !== t &&
              typeof a == "number" &&
              ((a > 0 && e[0] && e[a - 1]) || a === 0 || v.isArray(e)));
        if (f)
          for (; u < a; u++)
            (i = n(e[u], u, r)), i != null && (o[o.length] = i);
        else for (s in e) (i = n(e[s], s, r)), i != null && (o[o.length] = i);
        return o.concat.apply([], o);
      },
      guid: 1,
      proxy: function (e, n) {
        var r, i, s;
        return (
          typeof n == "string" && ((r = e[n]), (n = e), (e = r)),
          v.isFunction(e)
            ? ((i = l.call(arguments, 2)),
              (s = function () {
                return e.apply(n, i.concat(l.call(arguments)));
              }),
              (s.guid = e.guid = e.guid || v.guid++),
              s)
            : t
        );
      },
      access: function (e, n, r, i, s, o, u) {
        var a,
          f = r == null,
          l = 0,
          c = e.length;
        if (r && typeof r == "object") {
          for (l in r) v.access(e, n, l, r[l], 1, o, i);
          s = 1;
        } else if (i !== t) {
          (a = u === t && v.isFunction(i)),
            f &&
              (a
                ? ((a = n),
                  (n = function (e, t, n) {
                    return a.call(v(e), n);
                  }))
                : (n.call(e, i), (n = null)));
          if (n)
            for (; l < c; l++)
              n(e[l], r, a ? i.call(e[l], l, n(e[l], r)) : i, u);
          s = 1;
        }
        return s ? e : f ? n.call(e) : c ? n(e[0], r) : o;
      },
      now: function () {
        return new Date().getTime();
      },
    }),
    (v.ready.promise = function (t) {
      if (!r) {
        r = v.Deferred();
        if (i.readyState === "complete") setTimeout(v.ready, 1);
        else if (i.addEventListener)
          i.addEventListener("DOMContentLoaded", A, !1),
            e.addEventListener("load", v.ready, !1);
        else {
          i.attachEvent("onreadystatechange", A),
            e.attachEvent("onload", v.ready);
          var n = !1;
          try {
            n = e.frameElement == null && i.documentElement;
          } catch (s) {}
          n &&
            n.doScroll &&
            (function o() {
              if (!v.isReady) {
                try {
                  n.doScroll("left");
                } catch (e) {
                  return setTimeout(o, 50);
                }
                v.ready();
              }
            })();
        }
      }
      return r.promise(t);
    }),
    v.each(
      "Boolean Number String Function Array Date RegExp Object".split(" "),
      function (e, t) {
        O["[object " + t + "]"] = t.toLowerCase();
      }
    ),
    (n = v(i));
  var M = {};
  (v.Callbacks = function (e) {
    e = typeof e == "string" ? M[e] || _(e) : v.extend({}, e);
    var n,
      r,
      i,
      s,
      o,
      u,
      a = [],
      f = !e.once && [],
      l = function (t) {
        (n = e.memory && t),
          (r = !0),
          (u = s || 0),
          (s = 0),
          (o = a.length),
          (i = !0);
        for (; a && u < o; u++)
          if (a[u].apply(t[0], t[1]) === !1 && e.stopOnFalse) {
            n = !1;
            break;
          }
        (i = !1),
          a && (f ? f.length && l(f.shift()) : n ? (a = []) : c.disable());
      },
      c = {
        add: function () {
          if (a) {
            var t = a.length;
            (function r(t) {
              v.each(t, function (t, n) {
                var i = v.type(n);
                i === "function"
                  ? (!e.unique || !c.has(n)) && a.push(n)
                  : n && n.length && i !== "string" && r(n);
              });
            })(arguments),
              i ? (o = a.length) : n && ((s = t), l(n));
          }
          return this;
        },
        remove: function () {
          return (
            a &&
              v.each(arguments, function (e, t) {
                var n;
                while ((n = v.inArray(t, a, n)) > -1)
                  a.splice(n, 1), i && (n <= o && o--, n <= u && u--);
              }),
            this
          );
        },
        has: function (e) {
          return v.inArray(e, a) > -1;
        },
        empty: function () {
          return (a = []), this;
        },
        disable: function () {
          return (a = f = n = t), this;
        },
        disabled: function () {
          return !a;
        },
        lock: function () {
          return (f = t), n || c.disable(), this;
        },
        locked: function () {
          return !f;
        },
        fireWith: function (e, t) {
          return (
            (t = t || []),
            (t = [e, t.slice ? t.slice() : t]),
            a && (!r || f) && (i ? f.push(t) : l(t)),
            this
          );
        },
        fire: function () {
          return c.fireWith(this, arguments), this;
        },
        fired: function () {
          return !!r;
        },
      };
    return c;
  }),
    v.extend({
      Deferred: function (e) {
        var t = [
            ["resolve", "done", v.Callbacks("once memory"), "resolved"],
            ["reject", "fail", v.Callbacks("once memory"), "rejected"],
            ["notify", "progress", v.Callbacks("memory")],
          ],
          n = "pending",
          r = {
            state: function () {
              return n;
            },
            always: function () {
              return i.done(arguments).fail(arguments), this;
            },
            then: function () {
              var e = arguments;
              return v
                .Deferred(function (n) {
                  v.each(t, function (t, r) {
                    var s = r[0],
                      o = e[t];
                    i[r[1]](
                      v.isFunction(o)
                        ? function () {
                            var e = o.apply(this, arguments);
                            e && v.isFunction(e.promise)
                              ? e
                                  .promise()
                                  .done(n.resolve)
                                  .fail(n.reject)
                                  .progress(n.notify)
                              : n[s + "With"](this === i ? n : this, [e]);
                          }
                        : n[s]
                    );
                  }),
                    (e = null);
                })
                .promise();
            },
            promise: function (e) {
              return e != null ? v.extend(e, r) : r;
            },
          },
          i = {};
        return (
          (r.pipe = r.then),
          v.each(t, function (e, s) {
            var o = s[2],
              u = s[3];
            (r[s[1]] = o.add),
              u &&
                o.add(
                  function () {
                    n = u;
                  },
                  t[e ^ 1][2].disable,
                  t[2][2].lock
                ),
              (i[s[0]] = o.fire),
              (i[s[0] + "With"] = o.fireWith);
          }),
          r.promise(i),
          e && e.call(i, i),
          i
        );
      },
      when: function (e) {
        var t = 0,
          n = l.call(arguments),
          r = n.length,
          i = r !== 1 || (e && v.isFunction(e.promise)) ? r : 0,
          s = i === 1 ? e : v.Deferred(),
          o = function (e, t, n) {
            return function (r) {
              (t[e] = this),
                (n[e] = arguments.length > 1 ? l.call(arguments) : r),
                n === u ? s.notifyWith(t, n) : --i || s.resolveWith(t, n);
            };
          },
          u,
          a,
          f;
        if (r > 1) {
          (u = new Array(r)), (a = new Array(r)), (f = new Array(r));
          for (; t < r; t++)
            n[t] && v.isFunction(n[t].promise)
              ? n[t]
                  .promise()
                  .done(o(t, f, n))
                  .fail(s.reject)
                  .progress(o(t, a, u))
              : --i;
        }
        return i || s.resolveWith(f, n), s.promise();
      },
    }),
    (v.support = (function () {
      var t,
        n,
        r,
        s,
        o,
        u,
        a,
        f,
        l,
        c,
        h,
        p = i.createElement("div");
      p.setAttribute("className", "t"),
        (p.innerHTML =
          "  <link/><table></table><a href='/a'>a</a><input type='checkbox'/>"),
        (n = p.getElementsByTagName("*")),
        (r = p.getElementsByTagName("a")[0]);
      if (!n || !r || !n.length) return {};
      (s = i.createElement("select")),
        (o = s.appendChild(i.createElement("option"))),
        (u = p.getElementsByTagName("input")[0]),
        (r.style.cssText = "top:1px;float:left;opacity:.5"),
        (t = {
          leadingWhitespace: p.firstChild.nodeType === 3,
          tbody: !p.getElementsByTagName("tbody").length,
          htmlSerialize: !!p.getElementsByTagName("link").length,
          style: /top/.test(r.getAttribute("style")),
          hrefNormalized: r.getAttribute("href") === "/a",
          opacity: /^0.5/.test(r.style.opacity),
          cssFloat: !!r.style.cssFloat,
          checkOn: u.value === "on",
          optSelected: o.selected,
          getSetAttribute: p.className !== "t",
          enctype: !!i.createElement("form").enctype,
          html5Clone:
            i.createElement("nav").cloneNode(!0).outerHTML !== "<:nav></:nav>",
          boxModel: i.compatMode === "CSS1Compat",
          submitBubbles: !0,
          changeBubbles: !0,
          focusinBubbles: !1,
          deleteExpando: !0,
          noCloneEvent: !0,
          inlineBlockNeedsLayout: !1,
          shrinkWrapBlocks: !1,
          reliableMarginRight: !0,
          boxSizingReliable: !0,
          pixelPosition: !1,
        }),
        (u.checked = !0),
        (t.noCloneChecked = u.cloneNode(!0).checked),
        (s.disabled = !0),
        (t.optDisabled = !o.disabled);
      try {
        delete p.test;
      } catch (d) {
        t.deleteExpando = !1;
      }
      !p.addEventListener &&
        p.attachEvent &&
        p.fireEvent &&
        (p.attachEvent(
          "onclick",
          (h = function () {
            t.noCloneEvent = !1;
          })
        ),
        p.cloneNode(!0).fireEvent("onclick"),
        p.detachEvent("onclick", h)),
        (u = i.createElement("input")),
        (u.value = "t"),
        u.setAttribute("type", "radio"),
        (t.radioValue = u.value === "t"),
        u.setAttribute("checked", "checked"),
        u.setAttribute("name", "t"),
        p.appendChild(u),
        (a = i.createDocumentFragment()),
        a.appendChild(p.lastChild),
        (t.checkClone = a.cloneNode(!0).cloneNode(!0).lastChild.checked),
        (t.appendChecked = u.checked),
        a.removeChild(u),
        a.appendChild(p);
      if (p.attachEvent)
        for (l in { submit: !0, change: !0, focusin: !0 })
          (f = "on" + l),
            (c = f in p),
            c ||
              (p.setAttribute(f, "return;"), (c = typeof p[f] == "function")),
            (t[l + "Bubbles"] = c);
      return (
        v(function () {
          var n,
            r,
            s,
            o,
            u = "padding:0;margin:0;border:0;display:block;overflow:hidden;",
            a = i.getElementsByTagName("body")[0];
          if (!a) return;
          (n = i.createElement("div")),
            (n.style.cssText =
              "visibility:hidden;border:0;width:0;height:0;position:static;top:0;margin-top:1px"),
            a.insertBefore(n, a.firstChild),
            (r = i.createElement("div")),
            n.appendChild(r),
            (r.innerHTML = "<table><tr><td></td><td>t</td></tr></table>"),
            (s = r.getElementsByTagName("td")),
            (s[0].style.cssText = "padding:0;margin:0;border:0;display:none"),
            (c = s[0].offsetHeight === 0),
            (s[0].style.display = ""),
            (s[1].style.display = "none"),
            (t.reliableHiddenOffsets = c && s[0].offsetHeight === 0),
            (r.innerHTML = ""),
            (r.style.cssText =
              "box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;padding:1px;border:1px;display:block;width:4px;margin-top:1%;position:absolute;top:1%;"),
            (t.boxSizing = r.offsetWidth === 4),
            (t.doesNotIncludeMarginInBodyOffset = a.offsetTop !== 1),
            e.getComputedStyle &&
              ((t.pixelPosition =
                (e.getComputedStyle(r, null) || {}).top !== "1%"),
              (t.boxSizingReliable =
                (e.getComputedStyle(r, null) || { width: "4px" }).width ===
                "4px"),
              (o = i.createElement("div")),
              (o.style.cssText = r.style.cssText = u),
              (o.style.marginRight = o.style.width = "0"),
              (r.style.width = "1px"),
              r.appendChild(o),
              (t.reliableMarginRight = !parseFloat(
                (e.getComputedStyle(o, null) || {}).marginRight
              ))),
            typeof r.style.zoom != "undefined" &&
              ((r.innerHTML = ""),
              (r.style.cssText =
                u + "width:1px;padding:1px;display:inline;zoom:1"),
              (t.inlineBlockNeedsLayout = r.offsetWidth === 3),
              (r.style.display = "block"),
              (r.style.overflow = "visible"),
              (r.innerHTML = "<div></div>"),
              (r.firstChild.style.width = "5px"),
              (t.shrinkWrapBlocks = r.offsetWidth !== 3),
              (n.style.zoom = 1)),
            a.removeChild(n),
            (n = r = s = o = null);
        }),
        a.removeChild(p),
        (n = r = s = o = u = a = p = null),
        t
      );
    })());
  var D = /(?:\{[\s\S]*\}|\[[\s\S]*\])$/,
    P = /([A-Z])/g;
  v.extend({
    cache: {},
    deletedIds: [],
    uuid: 0,
    expando: "jQuery" + (v.fn.jquery + Math.random()).replace(/\D/g, ""),
    noData: {
      embed: !0,
      object: "clsid:D27CDB6E-AE6D-11cf-96B8-444553540000",
      applet: !0,
    },
    hasData: function (e) {
      return (
        (e = e.nodeType ? v.cache[e[v.expando]] : e[v.expando]), !!e && !B(e)
      );
    },
    data: function (e, n, r, i) {
      if (!v.acceptData(e)) return;
      var s,
        o,
        u = v.expando,
        a = typeof n == "string",
        f = e.nodeType,
        l = f ? v.cache : e,
        c = f ? e[u] : e[u] && u;
      if ((!c || !l[c] || (!i && !l[c].data)) && a && r === t) return;
      c || (f ? (e[u] = c = v.deletedIds.pop() || v.guid++) : (c = u)),
        l[c] || ((l[c] = {}), f || (l[c].toJSON = v.noop));
      if (typeof n == "object" || typeof n == "function")
        i ? (l[c] = v.extend(l[c], n)) : (l[c].data = v.extend(l[c].data, n));
      return (
        (s = l[c]),
        i || (s.data || (s.data = {}), (s = s.data)),
        r !== t && (s[v.camelCase(n)] = r),
        a ? ((o = s[n]), o == null && (o = s[v.camelCase(n)])) : (o = s),
        o
      );
    },
    removeData: function (e, t, n) {
      if (!v.acceptData(e)) return;
      var r,
        i,
        s,
        o = e.nodeType,
        u = o ? v.cache : e,
        a = o ? e[v.expando] : v.expando;
      if (!u[a]) return;
      if (t) {
        r = n ? u[a] : u[a].data;
        if (r) {
          v.isArray(t) ||
            (t in r
              ? (t = [t])
              : ((t = v.camelCase(t)),
                t in r ? (t = [t]) : (t = t.split(" "))));
          for (i = 0, s = t.length; i < s; i++) delete r[t[i]];
          if (!(n ? B : v.isEmptyObject)(r)) return;
        }
      }
      if (!n) {
        delete u[a].data;
        if (!B(u[a])) return;
      }
      o
        ? v.cleanData([e], !0)
        : v.support.deleteExpando || u != u.window
        ? delete u[a]
        : (u[a] = null);
    },
    _data: function (e, t, n) {
      return v.data(e, t, n, !0);
    },
    acceptData: function (e) {
      var t = e.nodeName && v.noData[e.nodeName.toLowerCase()];
      return !t || (t !== !0 && e.getAttribute("classid") === t);
    },
  }),
    v.fn.extend({
      data: function (e, n) {
        var r,
          i,
          s,
          o,
          u,
          a = this[0],
          f = 0,
          l = null;
        if (e === t) {
          if (this.length) {
            l = v.data(a);
            if (a.nodeType === 1 && !v._data(a, "parsedAttrs")) {
              s = a.attributes;
              for (u = s.length; f < u; f++)
                (o = s[f].name),
                  o.indexOf("data-") ||
                    ((o = v.camelCase(o.substring(5))), H(a, o, l[o]));
              v._data(a, "parsedAttrs", !0);
            }
          }
          return l;
        }
        return typeof e == "object"
          ? this.each(function () {
              v.data(this, e);
            })
          : ((r = e.split(".", 2)),
            (r[1] = r[1] ? "." + r[1] : ""),
            (i = r[1] + "!"),
            v.access(
              this,
              function (n) {
                if (n === t)
                  return (
                    (l = this.triggerHandler("getData" + i, [r[0]])),
                    l === t && a && ((l = v.data(a, e)), (l = H(a, e, l))),
                    l === t && r[1] ? this.data(r[0]) : l
                  );
                (r[1] = n),
                  this.each(function () {
                    var t = v(this);
                    t.triggerHandler("setData" + i, r),
                      v.data(this, e, n),
                      t.triggerHandler("changeData" + i, r);
                  });
              },
              null,
              n,
              arguments.length > 1,
              null,
              !1
            ));
      },
      removeData: function (e) {
        return this.each(function () {
          v.removeData(this, e);
        });
      },
    }),
    v.extend({
      queue: function (e, t, n) {
        var r;
        if (e)
          return (
            (t = (t || "fx") + "queue"),
            (r = v._data(e, t)),
            n &&
              (!r || v.isArray(n)
                ? (r = v._data(e, t, v.makeArray(n)))
                : r.push(n)),
            r || []
          );
      },
      dequeue: function (e, t) {
        t = t || "fx";
        var n = v.queue(e, t),
          r = n.length,
          i = n.shift(),
          s = v._queueHooks(e, t),
          o = function () {
            v.dequeue(e, t);
          };
        i === "inprogress" && ((i = n.shift()), r--),
          i &&
            (t === "fx" && n.unshift("inprogress"),
            delete s.stop,
            i.call(e, o, s)),
          !r && s && s.empty.fire();
      },
      _queueHooks: function (e, t) {
        var n = t + "queueHooks";
        return (
          v._data(e, n) ||
          v._data(e, n, {
            empty: v.Callbacks("once memory").add(function () {
              v.removeData(e, t + "queue", !0), v.removeData(e, n, !0);
            }),
          })
        );
      },
    }),
    v.fn.extend({
      queue: function (e, n) {
        var r = 2;
        return (
          typeof e != "string" && ((n = e), (e = "fx"), r--),
          arguments.length < r
            ? v.queue(this[0], e)
            : n === t
            ? this
            : this.each(function () {
                var t = v.queue(this, e, n);
                v._queueHooks(this, e),
                  e === "fx" && t[0] !== "inprogress" && v.dequeue(this, e);
              })
        );
      },
      dequeue: function (e) {
        return this.each(function () {
          v.dequeue(this, e);
        });
      },
      delay: function (e, t) {
        return (
          (e = v.fx ? v.fx.speeds[e] || e : e),
          (t = t || "fx"),
          this.queue(t, function (t, n) {
            var r = setTimeout(t, e);
            n.stop = function () {
              clearTimeout(r);
            };
          })
        );
      },
      clearQueue: function (e) {
        return this.queue(e || "fx", []);
      },
      promise: function (e, n) {
        var r,
          i = 1,
          s = v.Deferred(),
          o = this,
          u = this.length,
          a = function () {
            --i || s.resolveWith(o, [o]);
          };
        typeof e != "string" && ((n = e), (e = t)), (e = e || "fx");
        while (u--)
          (r = v._data(o[u], e + "queueHooks")),
            r && r.empty && (i++, r.empty.add(a));
        return a(), s.promise(n);
      },
    });
  var j,
    F,
    I,
    q = /[\t\r\n]/g,
    R = /\r/g,
    U = /^(?:button|input)$/i,
    z = /^(?:button|input|object|select|textarea)$/i,
    W = /^a(?:rea|)$/i,
    X =
      /^(?:autofocus|autoplay|async|checked|controls|defer|disabled|hidden|loop|multiple|open|readonly|required|scoped|selected)$/i,
    V = v.support.getSetAttribute;
  v.fn.extend({
    attr: function (e, t) {
      return v.access(this, v.attr, e, t, arguments.length > 1);
    },
    removeAttr: function (e) {
      return this.each(function () {
        v.removeAttr(this, e);
      });
    },
    prop: function (e, t) {
      return v.access(this, v.prop, e, t, arguments.length > 1);
    },
    removeProp: function (e) {
      return (
        (e = v.propFix[e] || e),
        this.each(function () {
          try {
            (this[e] = t), delete this[e];
          } catch (n) {}
        })
      );
    },
    addClass: function (e) {
      var t, n, r, i, s, o, u;
      if (v.isFunction(e))
        return this.each(function (t) {
          v(this).addClass(e.call(this, t, this.className));
        });
      if (e && typeof e == "string") {
        t = e.split(y);
        for (n = 0, r = this.length; n < r; n++) {
          i = this[n];
          if (i.nodeType === 1)
            if (!i.className && t.length === 1) i.className = e;
            else {
              s = " " + i.className + " ";
              for (o = 0, u = t.length; o < u; o++)
                s.indexOf(" " + t[o] + " ") < 0 && (s += t[o] + " ");
              i.className = v.trim(s);
            }
        }
      }
      return this;
    },
    removeClass: function (e) {
      var n, r, i, s, o, u, a;
      if (v.isFunction(e))
        return this.each(function (t) {
          v(this).removeClass(e.call(this, t, this.className));
        });
      if ((e && typeof e == "string") || e === t) {
        n = (e || "").split(y);
        for (u = 0, a = this.length; u < a; u++) {
          i = this[u];
          if (i.nodeType === 1 && i.className) {
            r = (" " + i.className + " ").replace(q, " ");
            for (s = 0, o = n.length; s < o; s++)
              while (r.indexOf(" " + n[s] + " ") >= 0)
                r = r.replace(" " + n[s] + " ", " ");
            i.className = e ? v.trim(r) : "";
          }
        }
      }
      return this;
    },
    toggleClass: function (e, t) {
      var n = typeof e,
        r = typeof t == "boolean";
      return v.isFunction(e)
        ? this.each(function (n) {
            v(this).toggleClass(e.call(this, n, this.className, t), t);
          })
        : this.each(function () {
            if (n === "string") {
              var i,
                s = 0,
                o = v(this),
                u = t,
                a = e.split(y);
              while ((i = a[s++]))
                (u = r ? u : !o.hasClass(i)),
                  o[u ? "addClass" : "removeClass"](i);
            } else if (n === "undefined" || n === "boolean") this.className && v._data(this, "__className__", this.className), (this.className = this.className || e === !1 ? "" : v._data(this, "__className__") || "");
          });
    },
    hasClass: function (e) {
      var t = " " + e + " ",
        n = 0,
        r = this.length;
      for (; n < r; n++)
        if (
          this[n].nodeType === 1 &&
          (" " + this[n].className + " ").replace(q, " ").indexOf(t) >= 0
        )
          return !0;
      return !1;
    },
    val: function (e) {
      var n,
        r,
        i,
        s = this[0];
      if (!arguments.length) {
        if (s)
          return (
            (n = v.valHooks[s.type] || v.valHooks[s.nodeName.toLowerCase()]),
            n && "get" in n && (r = n.get(s, "value")) !== t
              ? r
              : ((r = s.value),
                typeof r == "string" ? r.replace(R, "") : r == null ? "" : r)
          );
        return;
      }
      return (
        (i = v.isFunction(e)),
        this.each(function (r) {
          var s,
            o = v(this);
          if (this.nodeType !== 1) return;
          i ? (s = e.call(this, r, o.val())) : (s = e),
            s == null
              ? (s = "")
              : typeof s == "number"
              ? (s += "")
              : v.isArray(s) &&
                (s = v.map(s, function (e) {
                  return e == null ? "" : e + "";
                })),
            (n =
              v.valHooks[this.type] || v.valHooks[this.nodeName.toLowerCase()]);
          if (!n || !("set" in n) || n.set(this, s, "value") === t)
            this.value = s;
        })
      );
    },
  }),
    v.extend({
      valHooks: {
        option: {
          get: function (e) {
            var t = e.attributes.value;
            return !t || t.specified ? e.value : e.text;
          },
        },
        select: {
          get: function (e) {
            var t,
              n,
              r = e.options,
              i = e.selectedIndex,
              s = e.type === "select-one" || i < 0,
              o = s ? null : [],
              u = s ? i + 1 : r.length,
              a = i < 0 ? u : s ? i : 0;
            for (; a < u; a++) {
              n = r[a];
              if (
                (n.selected || a === i) &&
                (v.support.optDisabled
                  ? !n.disabled
                  : n.getAttribute("disabled") === null) &&
                (!n.parentNode.disabled ||
                  !v.nodeName(n.parentNode, "optgroup"))
              ) {
                t = v(n).val();
                if (s) return t;
                o.push(t);
              }
            }
            return o;
          },
          set: function (e, t) {
            var n = v.makeArray(t);
            return (
              v(e)
                .find("option")
                .each(function () {
                  this.selected = v.inArray(v(this).val(), n) >= 0;
                }),
              n.length || (e.selectedIndex = -1),
              n
            );
          },
        },
      },
      attrFn: {},
      attr: function (e, n, r, i) {
        var s,
          o,
          u,
          a = e.nodeType;
        if (!e || a === 3 || a === 8 || a === 2) return;
        if (i && v.isFunction(v.fn[n])) return v(e)[n](r);
        if (typeof e.getAttribute == "undefined") return v.prop(e, n, r);
        (u = a !== 1 || !v.isXMLDoc(e)),
          u &&
            ((n = n.toLowerCase()),
            (o = v.attrHooks[n] || (X.test(n) ? F : j)));
        if (r !== t) {
          if (r === null) {
            v.removeAttr(e, n);
            return;
          }
          return o && "set" in o && u && (s = o.set(e, r, n)) !== t
            ? s
            : (e.setAttribute(n, r + ""), r);
        }
        return o && "get" in o && u && (s = o.get(e, n)) !== null
          ? s
          : ((s = e.getAttribute(n)), s === null ? t : s);
      },
      removeAttr: function (e, t) {
        var n,
          r,
          i,
          s,
          o = 0;
        if (t && e.nodeType === 1) {
          r = t.split(y);
          for (; o < r.length; o++)
            (i = r[o]),
              i &&
                ((n = v.propFix[i] || i),
                (s = X.test(i)),
                s || v.attr(e, i, ""),
                e.removeAttribute(V ? i : n),
                s && n in e && (e[n] = !1));
        }
      },
      attrHooks: {
        type: {
          set: function (e, t) {
            if (U.test(e.nodeName) && e.parentNode)
              v.error("type property can't be changed");
            else if (
              !v.support.radioValue &&
              t === "radio" &&
              v.nodeName(e, "input")
            ) {
              var n = e.value;
              return e.setAttribute("type", t), n && (e.value = n), t;
            }
          },
        },
        value: {
          get: function (e, t) {
            return j && v.nodeName(e, "button")
              ? j.get(e, t)
              : t in e
              ? e.value
              : null;
          },
          set: function (e, t, n) {
            if (j && v.nodeName(e, "button")) return j.set(e, t, n);
            e.value = t;
          },
        },
      },
      propFix: {
        tabindex: "tabIndex",
        readonly: "readOnly",
        for: "htmlFor",
        class: "className",
        maxlength: "maxLength",
        cellspacing: "cellSpacing",
        cellpadding: "cellPadding",
        rowspan: "rowSpan",
        colspan: "colSpan",
        usemap: "useMap",
        frameborder: "frameBorder",
        contenteditable: "contentEditable",
      },
      prop: function (e, n, r) {
        var i,
          s,
          o,
          u = e.nodeType;
        if (!e || u === 3 || u === 8 || u === 2) return;
        return (
          (o = u !== 1 || !v.isXMLDoc(e)),
          o && ((n = v.propFix[n] || n), (s = v.propHooks[n])),
          r !== t
            ? s && "set" in s && (i = s.set(e, r, n)) !== t
              ? i
              : (e[n] = r)
            : s && "get" in s && (i = s.get(e, n)) !== null
            ? i
            : e[n]
        );
      },
      propHooks: {
        tabIndex: {
          get: function (e) {
            var n = e.getAttributeNode("tabindex");
            return n && n.specified
              ? parseInt(n.value, 10)
              : z.test(e.nodeName) || (W.test(e.nodeName) && e.href)
              ? 0
              : t;
          },
        },
      },
    }),
    (F = {
      get: function (e, n) {
        var r,
          i = v.prop(e, n);
        return i === !0 ||
          (typeof i != "boolean" &&
            (r = e.getAttributeNode(n)) &&
            r.nodeValue !== !1)
          ? n.toLowerCase()
          : t;
      },
      set: function (e, t, n) {
        var r;
        return (
          t === !1
            ? v.removeAttr(e, n)
            : ((r = v.propFix[n] || n),
              r in e && (e[r] = !0),
              e.setAttribute(n, n.toLowerCase())),
          n
        );
      },
    }),
    V ||
      ((I = { name: !0, id: !0, coords: !0 }),
      (j = v.valHooks.button =
        {
          get: function (e, n) {
            var r;
            return (
              (r = e.getAttributeNode(n)),
              r && (I[n] ? r.value !== "" : r.specified) ? r.value : t
            );
          },
          set: function (e, t, n) {
            var r = e.getAttributeNode(n);
            return (
              r || ((r = i.createAttribute(n)), e.setAttributeNode(r)),
              (r.value = t + "")
            );
          },
        }),
      v.each(["width", "height"], function (e, t) {
        v.attrHooks[t] = v.extend(v.attrHooks[t], {
          set: function (e, n) {
            if (n === "") return e.setAttribute(t, "auto"), n;
          },
        });
      }),
      (v.attrHooks.contenteditable = {
        get: j.get,
        set: function (e, t, n) {
          t === "" && (t = "false"), j.set(e, t, n);
        },
      })),
    v.support.hrefNormalized ||
      v.each(["href", "src", "width", "height"], function (e, n) {
        v.attrHooks[n] = v.extend(v.attrHooks[n], {
          get: function (e) {
            var r = e.getAttribute(n, 2);
            return r === null ? t : r;
          },
        });
      }),
    v.support.style ||
      (v.attrHooks.style = {
        get: function (e) {
          return e.style.cssText.toLowerCase() || t;
        },
        set: function (e, t) {
          return (e.style.cssText = t + "");
        },
      }),
    v.support.optSelected ||
      (v.propHooks.selected = v.extend(v.propHooks.selected, {
        get: function (e) {
          var t = e.parentNode;
          return (
            t && (t.selectedIndex, t.parentNode && t.parentNode.selectedIndex),
            null
          );
        },
      })),
    v.support.enctype || (v.propFix.enctype = "encoding"),
    v.support.checkOn ||
      v.each(["radio", "checkbox"], function () {
        v.valHooks[this] = {
          get: function (e) {
            return e.getAttribute("value") === null ? "on" : e.value;
          },
        };
      }),
    v.each(["radio", "checkbox"], function () {
      v.valHooks[this] = v.extend(v.valHooks[this], {
        set: function (e, t) {
          if (v.isArray(t)) return (e.checked = v.inArray(v(e).val(), t) >= 0);
        },
      });
    });
  var $ = /^(?:textarea|input|select)$/i,
    J = /^([^\.]*|)(?:\.(.+)|)$/,
    K = /(?:^|\s)hover(\.\S+|)\b/,
    Q = /^key/,
    G = /^(?:mouse|contextmenu)|click/,
    Y = /^(?:focusinfocus|focusoutblur)$/,
    Z = function (e) {
      return v.event.special.hover
        ? e
        : e.replace(K, "mouseenter$1 mouseleave$1");
    };
  (v.event = {
    add: function (e, n, r, i, s) {
      var o, u, a, f, l, c, h, p, d, m, g;
      if (e.nodeType === 3 || e.nodeType === 8 || !n || !r || !(o = v._data(e)))
        return;
      r.handler && ((d = r), (r = d.handler), (s = d.selector)),
        r.guid || (r.guid = v.guid++),
        (a = o.events),
        a || (o.events = a = {}),
        (u = o.handle),
        u ||
          ((o.handle = u =
            function (e) {
              return typeof v == "undefined" ||
                (!!e && v.event.triggered === e.type)
                ? t
                : v.event.dispatch.apply(u.elem, arguments);
            }),
          (u.elem = e)),
        (n = v.trim(Z(n)).split(" "));
      for (f = 0; f < n.length; f++) {
        (l = J.exec(n[f]) || []),
          (c = l[1]),
          (h = (l[2] || "").split(".").sort()),
          (g = v.event.special[c] || {}),
          (c = (s ? g.delegateType : g.bindType) || c),
          (g = v.event.special[c] || {}),
          (p = v.extend(
            {
              type: c,
              origType: l[1],
              data: i,
              handler: r,
              guid: r.guid,
              selector: s,
              needsContext: s && v.expr.match.needsContext.test(s),
              namespace: h.join("."),
            },
            d
          )),
          (m = a[c]);
        if (!m) {
          (m = a[c] = []), (m.delegateCount = 0);
          if (!g.setup || g.setup.call(e, i, h, u) === !1)
            e.addEventListener
              ? e.addEventListener(c, u, !1)
              : e.attachEvent && e.attachEvent("on" + c, u);
        }
        g.add &&
          (g.add.call(e, p), p.handler.guid || (p.handler.guid = r.guid)),
          s ? m.splice(m.delegateCount++, 0, p) : m.push(p),
          (v.event.global[c] = !0);
      }
      e = null;
    },
    global: {},
    remove: function (e, t, n, r, i) {
      var s,
        o,
        u,
        a,
        f,
        l,
        c,
        h,
        p,
        d,
        m,
        g = v.hasData(e) && v._data(e);
      if (!g || !(h = g.events)) return;
      t = v.trim(Z(t || "")).split(" ");
      for (s = 0; s < t.length; s++) {
        (o = J.exec(t[s]) || []), (u = a = o[1]), (f = o[2]);
        if (!u) {
          for (u in h) v.event.remove(e, u + t[s], n, r, !0);
          continue;
        }
        (p = v.event.special[u] || {}),
          (u = (r ? p.delegateType : p.bindType) || u),
          (d = h[u] || []),
          (l = d.length),
          (f = f
            ? new RegExp(
                "(^|\\.)" +
                  f.split(".").sort().join("\\.(?:.*\\.|)") +
                  "(\\.|$)"
              )
            : null);
        for (c = 0; c < d.length; c++)
          (m = d[c]),
            (i || a === m.origType) &&
              (!n || n.guid === m.guid) &&
              (!f || f.test(m.namespace)) &&
              (!r || r === m.selector || (r === "**" && m.selector)) &&
              (d.splice(c--, 1),
              m.selector && d.delegateCount--,
              p.remove && p.remove.call(e, m));
        d.length === 0 &&
          l !== d.length &&
          ((!p.teardown || p.teardown.call(e, f, g.handle) === !1) &&
            v.removeEvent(e, u, g.handle),
          delete h[u]);
      }
      v.isEmptyObject(h) && (delete g.handle, v.removeData(e, "events", !0));
    },
    customEvent: { getData: !0, setData: !0, changeData: !0 },
    trigger: function (n, r, s, o) {
      if (!s || (s.nodeType !== 3 && s.nodeType !== 8)) {
        var u,
          a,
          f,
          l,
          c,
          h,
          p,
          d,
          m,
          g,
          y = n.type || n,
          b = [];
        if (Y.test(y + v.event.triggered)) return;
        y.indexOf("!") >= 0 && ((y = y.slice(0, -1)), (a = !0)),
          y.indexOf(".") >= 0 &&
            ((b = y.split(".")), (y = b.shift()), b.sort());
        if ((!s || v.event.customEvent[y]) && !v.event.global[y]) return;
        (n =
          typeof n == "object"
            ? n[v.expando]
              ? n
              : new v.Event(y, n)
            : new v.Event(y)),
          (n.type = y),
          (n.isTrigger = !0),
          (n.exclusive = a),
          (n.namespace = b.join(".")),
          (n.namespace_re = n.namespace
            ? new RegExp("(^|\\.)" + b.join("\\.(?:.*\\.|)") + "(\\.|$)")
            : null),
          (h = y.indexOf(":") < 0 ? "on" + y : "");
        if (!s) {
          u = v.cache;
          for (f in u)
            u[f].events &&
              u[f].events[y] &&
              v.event.trigger(n, r, u[f].handle.elem, !0);
          return;
        }
        (n.result = t),
          n.target || (n.target = s),
          (r = r != null ? v.makeArray(r) : []),
          r.unshift(n),
          (p = v.event.special[y] || {});
        if (p.trigger && p.trigger.apply(s, r) === !1) return;
        m = [[s, p.bindType || y]];
        if (!o && !p.noBubble && !v.isWindow(s)) {
          (g = p.delegateType || y), (l = Y.test(g + y) ? s : s.parentNode);
          for (c = s; l; l = l.parentNode) m.push([l, g]), (c = l);
          c === (s.ownerDocument || i) &&
            m.push([c.defaultView || c.parentWindow || e, g]);
        }
        for (f = 0; f < m.length && !n.isPropagationStopped(); f++)
          (l = m[f][0]),
            (n.type = m[f][1]),
            (d = (v._data(l, "events") || {})[n.type] && v._data(l, "handle")),
            d && d.apply(l, r),
            (d = h && l[h]),
            d &&
              v.acceptData(l) &&
              d.apply &&
              d.apply(l, r) === !1 &&
              n.preventDefault();
        return (
          (n.type = y),
          !o &&
            !n.isDefaultPrevented() &&
            (!p._default || p._default.apply(s.ownerDocument, r) === !1) &&
            (y !== "click" || !v.nodeName(s, "a")) &&
            v.acceptData(s) &&
            h &&
            s[y] &&
            ((y !== "focus" && y !== "blur") || n.target.offsetWidth !== 0) &&
            !v.isWindow(s) &&
            ((c = s[h]),
            c && (s[h] = null),
            (v.event.triggered = y),
            s[y](),
            (v.event.triggered = t),
            c && (s[h] = c)),
          n.result
        );
      }
      return;
    },
    dispatch: function (n) {
      n = v.event.fix(n || e.event);
      var r,
        i,
        s,
        o,
        u,
        a,
        f,
        c,
        h,
        p,
        d = (v._data(this, "events") || {})[n.type] || [],
        m = d.delegateCount,
        g = l.call(arguments),
        y = !n.exclusive && !n.namespace,
        b = v.event.special[n.type] || {},
        w = [];
      (g[0] = n), (n.delegateTarget = this);
      if (b.preDispatch && b.preDispatch.call(this, n) === !1) return;
      if (m && (!n.button || n.type !== "click"))
        for (s = n.target; s != this; s = s.parentNode || this)
          if (s.disabled !== !0 || n.type !== "click") {
            (u = {}), (f = []);
            for (r = 0; r < m; r++)
              (c = d[r]),
                (h = c.selector),
                u[h] === t &&
                  (u[h] = c.needsContext
                    ? v(h, this).index(s) >= 0
                    : v.find(h, this, null, [s]).length),
                u[h] && f.push(c);
            f.length && w.push({ elem: s, matches: f });
          }
      d.length > m && w.push({ elem: this, matches: d.slice(m) });
      for (r = 0; r < w.length && !n.isPropagationStopped(); r++) {
        (a = w[r]), (n.currentTarget = a.elem);
        for (
          i = 0;
          i < a.matches.length && !n.isImmediatePropagationStopped();
          i++
        ) {
          c = a.matches[i];
          if (
            y ||
            (!n.namespace && !c.namespace) ||
            (n.namespace_re && n.namespace_re.test(c.namespace))
          )
            (n.data = c.data),
              (n.handleObj = c),
              (o = (
                (v.event.special[c.origType] || {}).handle || c.handler
              ).apply(a.elem, g)),
              o !== t &&
                ((n.result = o),
                o === !1 && (n.preventDefault(), n.stopPropagation()));
        }
      }
      return b.postDispatch && b.postDispatch.call(this, n), n.result;
    },
    props:
      "attrChange attrName relatedNode srcElement altKey bubbles cancelable ctrlKey currentTarget eventPhase metaKey relatedTarget shiftKey target timeStamp view which".split(
        " "
      ),
    fixHooks: {},
    keyHooks: {
      props: "char charCode key keyCode".split(" "),
      filter: function (e, t) {
        return (
          e.which == null &&
            (e.which = t.charCode != null ? t.charCode : t.keyCode),
          e
        );
      },
    },
    mouseHooks: {
      props:
        "button buttons clientX clientY fromElement offsetX offsetY pageX pageY screenX screenY toElement".split(
          " "
        ),
      filter: function (e, n) {
        var r,
          s,
          o,
          u = n.button,
          a = n.fromElement;
        return (
          e.pageX == null &&
            n.clientX != null &&
            ((r = e.target.ownerDocument || i),
            (s = r.documentElement),
            (o = r.body),
            (e.pageX =
              n.clientX +
              ((s && s.scrollLeft) || (o && o.scrollLeft) || 0) -
              ((s && s.clientLeft) || (o && o.clientLeft) || 0)),
            (e.pageY =
              n.clientY +
              ((s && s.scrollTop) || (o && o.scrollTop) || 0) -
              ((s && s.clientTop) || (o && o.clientTop) || 0))),
          !e.relatedTarget &&
            a &&
            (e.relatedTarget = a === e.target ? n.toElement : a),
          !e.which &&
            u !== t &&
            (e.which = u & 1 ? 1 : u & 2 ? 3 : u & 4 ? 2 : 0),
          e
        );
      },
    },
    fix: function (e) {
      if (e[v.expando]) return e;
      var t,
        n,
        r = e,
        s = v.event.fixHooks[e.type] || {},
        o = s.props ? this.props.concat(s.props) : this.props;
      e = v.Event(r);
      for (t = o.length; t; ) (n = o[--t]), (e[n] = r[n]);
      return (
        e.target || (e.target = r.srcElement || i),
        e.target.nodeType === 3 && (e.target = e.target.parentNode),
        (e.metaKey = !!e.metaKey),
        s.filter ? s.filter(e, r) : e
      );
    },
    special: {
      load: { noBubble: !0 },
      focus: { delegateType: "focusin" },
      blur: { delegateType: "focusout" },
      beforeunload: {
        setup: function (e, t, n) {
          v.isWindow(this) && (this.onbeforeunload = n);
        },
        teardown: function (e, t) {
          this.onbeforeunload === t && (this.onbeforeunload = null);
        },
      },
    },
    simulate: function (e, t, n, r) {
      var i = v.extend(new v.Event(), n, {
        type: e,
        isSimulated: !0,
        originalEvent: {},
      });
      r ? v.event.trigger(i, null, t) : v.event.dispatch.call(t, i),
        i.isDefaultPrevented() && n.preventDefault();
    },
  }),
    (v.event.handle = v.event.dispatch),
    (v.removeEvent = i.removeEventListener
      ? function (e, t, n) {
          e.removeEventListener && e.removeEventListener(t, n, !1);
        }
      : function (e, t, n) {
          var r = "on" + t;
          e.detachEvent &&
            (typeof e[r] == "undefined" && (e[r] = null), e.detachEvent(r, n));
        }),
    (v.Event = function (e, t) {
      if (!(this instanceof v.Event)) return new v.Event(e, t);
      e && e.type
        ? ((this.originalEvent = e),
          (this.type = e.type),
          (this.isDefaultPrevented =
            e.defaultPrevented ||
            e.returnValue === !1 ||
            (e.getPreventDefault && e.getPreventDefault())
              ? tt
              : et))
        : (this.type = e),
        t && v.extend(this, t),
        (this.timeStamp = (e && e.timeStamp) || v.now()),
        (this[v.expando] = !0);
    }),
    (v.Event.prototype = {
      preventDefault: function () {
        this.isDefaultPrevented = tt;
        var e = this.originalEvent;
        if (!e) return;
        e.preventDefault ? e.preventDefault() : (e.returnValue = !1);
      },
      stopPropagation: function () {
        this.isPropagationStopped = tt;
        var e = this.originalEvent;
        if (!e) return;
        e.stopPropagation && e.stopPropagation(), (e.cancelBubble = !0);
      },
      stopImmediatePropagation: function () {
        (this.isImmediatePropagationStopped = tt), this.stopPropagation();
      },
      isDefaultPrevented: et,
      isPropagationStopped: et,
      isImmediatePropagationStopped: et,
    }),
    v.each(
      { mouseenter: "mouseover", mouseleave: "mouseout" },
      function (e, t) {
        v.event.special[e] = {
          delegateType: t,
          bindType: t,
          handle: function (e) {
            var n,
              r = this,
              i = e.relatedTarget,
              s = e.handleObj,
              o = s.selector;
            if (!i || (i !== r && !v.contains(r, i)))
              (e.type = s.origType),
                (n = s.handler.apply(this, arguments)),
                (e.type = t);
            return n;
          },
        };
      }
    ),
    v.support.submitBubbles ||
      (v.event.special.submit = {
        setup: function () {
          if (v.nodeName(this, "form")) return !1;
          v.event.add(this, "click._submit keypress._submit", function (e) {
            var n = e.target,
              r =
                v.nodeName(n, "input") || v.nodeName(n, "button") ? n.form : t;
            r &&
              !v._data(r, "_submit_attached") &&
              (v.event.add(r, "submit._submit", function (e) {
                e._submit_bubble = !0;
              }),
              v._data(r, "_submit_attached", !0));
          });
        },
        postDispatch: function (e) {
          e._submit_bubble &&
            (delete e._submit_bubble,
            this.parentNode &&
              !e.isTrigger &&
              v.event.simulate("submit", this.parentNode, e, !0));
        },
        teardown: function () {
          if (v.nodeName(this, "form")) return !1;
          v.event.remove(this, "._submit");
        },
      }),
    v.support.changeBubbles ||
      (v.event.special.change = {
        setup: function () {
          if ($.test(this.nodeName)) {
            if (this.type === "checkbox" || this.type === "radio")
              v.event.add(this, "propertychange._change", function (e) {
                e.originalEvent.propertyName === "checked" &&
                  (this._just_changed = !0);
              }),
                v.event.add(this, "click._change", function (e) {
                  this._just_changed &&
                    !e.isTrigger &&
                    (this._just_changed = !1),
                    v.event.simulate("change", this, e, !0);
                });
            return !1;
          }
          v.event.add(this, "beforeactivate._change", function (e) {
            var t = e.target;
            $.test(t.nodeName) &&
              !v._data(t, "_change_attached") &&
              (v.event.add(t, "change._change", function (e) {
                this.parentNode &&
                  !e.isSimulated &&
                  !e.isTrigger &&
                  v.event.simulate("change", this.parentNode, e, !0);
              }),
              v._data(t, "_change_attached", !0));
          });
        },
        handle: function (e) {
          var t = e.target;
          if (
            this !== t ||
            e.isSimulated ||
            e.isTrigger ||
            (t.type !== "radio" && t.type !== "checkbox")
          )
            return e.handleObj.handler.apply(this, arguments);
        },
        teardown: function () {
          return v.event.remove(this, "._change"), !$.test(this.nodeName);
        },
      }),
    v.support.focusinBubbles ||
      v.each({ focus: "focusin", blur: "focusout" }, function (e, t) {
        var n = 0,
          r = function (e) {
            v.event.simulate(t, e.target, v.event.fix(e), !0);
          };
        v.event.special[t] = {
          setup: function () {
            n++ === 0 && i.addEventListener(e, r, !0);
          },
          teardown: function () {
            --n === 0 && i.removeEventListener(e, r, !0);
          },
        };
      }),
    v.fn.extend({
      on: function (e, n, r, i, s) {
        var o, u;
        if (typeof e == "object") {
          typeof n != "string" && ((r = r || n), (n = t));
          for (u in e) this.on(u, n, r, e[u], s);
          return this;
        }
        r == null && i == null
          ? ((i = n), (r = n = t))
          : i == null &&
            (typeof n == "string"
              ? ((i = r), (r = t))
              : ((i = r), (r = n), (n = t)));
        if (i === !1) i = et;
        else if (!i) return this;
        return (
          s === 1 &&
            ((o = i),
            (i = function (e) {
              return v().off(e), o.apply(this, arguments);
            }),
            (i.guid = o.guid || (o.guid = v.guid++))),
          this.each(function () {
            v.event.add(this, e, i, r, n);
          })
        );
      },
      one: function (e, t, n, r) {
        return this.on(e, t, n, r, 1);
      },
      off: function (e, n, r) {
        var i, s;
        if (e && e.preventDefault && e.handleObj)
          return (
            (i = e.handleObj),
            v(e.delegateTarget).off(
              i.namespace ? i.origType + "." + i.namespace : i.origType,
              i.selector,
              i.handler
            ),
            this
          );
        if (typeof e == "object") {
          for (s in e) this.off(s, n, e[s]);
          return this;
        }
        if (n === !1 || typeof n == "function") (r = n), (n = t);
        return (
          r === !1 && (r = et),
          this.each(function () {
            v.event.remove(this, e, r, n);
          })
        );
      },
      bind: function (e, t, n) {
        return this.on(e, null, t, n);
      },
      unbind: function (e, t) {
        return this.off(e, null, t);
      },
      live: function (e, t, n) {
        return v(this.context).on(e, this.selector, t, n), this;
      },
      die: function (e, t) {
        return v(this.context).off(e, this.selector || "**", t), this;
      },
      delegate: function (e, t, n, r) {
        return this.on(t, e, n, r);
      },
      undelegate: function (e, t, n) {
        return arguments.length === 1
          ? this.off(e, "**")
          : this.off(t, e || "**", n);
      },
      trigger: function (e, t) {
        return this.each(function () {
          v.event.trigger(e, t, this);
        });
      },
      triggerHandler: function (e, t) {
        if (this[0]) return v.event.trigger(e, t, this[0], !0);
      },
      toggle: function (e) {
        var t = arguments,
          n = e.guid || v.guid++,
          r = 0,
          i = function (n) {
            var i = (v._data(this, "lastToggle" + e.guid) || 0) % r;
            return (
              v._data(this, "lastToggle" + e.guid, i + 1),
              n.preventDefault(),
              t[i].apply(this, arguments) || !1
            );
          };
        i.guid = n;
        while (r < t.length) t[r++].guid = n;
        return this.click(i);
      },
      hover: function (e, t) {
        return this.mouseenter(e).mouseleave(t || e);
      },
    }),
    v.each(
      "blur focus focusin focusout load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup error contextmenu".split(
        " "
      ),
      function (e, t) {
        (v.fn[t] = function (e, n) {
          return (
            n == null && ((n = e), (e = null)),
            arguments.length > 0 ? this.on(t, null, e, n) : this.trigger(t)
          );
        }),
          Q.test(t) && (v.event.fixHooks[t] = v.event.keyHooks),
          G.test(t) && (v.event.fixHooks[t] = v.event.mouseHooks);
      }
    ),
    (function (e, t) {
      function nt(e, t, n, r) {
        (n = n || []), (t = t || g);
        var i,
          s,
          a,
          f,
          l = t.nodeType;
        if (!e || typeof e != "string") return n;
        if (l !== 1 && l !== 9) return [];
        a = o(t);
        if (!a && !r)
          if ((i = R.exec(e)))
            if ((f = i[1])) {
              if (l === 9) {
                s = t.getElementById(f);
                if (!s || !s.parentNode) return n;
                if (s.id === f) return n.push(s), n;
              } else if (
                t.ownerDocument &&
                (s = t.ownerDocument.getElementById(f)) &&
                u(t, s) &&
                s.id === f
              )
                return n.push(s), n;
            } else {
              if (i[2])
                return S.apply(n, x.call(t.getElementsByTagName(e), 0)), n;
              if ((f = i[3]) && Z && t.getElementsByClassName)
                return S.apply(n, x.call(t.getElementsByClassName(f), 0)), n;
            }
        return vt(e.replace(j, "$1"), t, n, r, a);
      }
      function rt(e) {
        return function (t) {
          var n = t.nodeName.toLowerCase();
          return n === "input" && t.type === e;
        };
      }
      function it(e) {
        return function (t) {
          var n = t.nodeName.toLowerCase();
          return (n === "input" || n === "button") && t.type === e;
        };
      }
      function st(e) {
        return N(function (t) {
          return (
            (t = +t),
            N(function (n, r) {
              var i,
                s = e([], n.length, t),
                o = s.length;
              while (o--) n[(i = s[o])] && (n[i] = !(r[i] = n[i]));
            })
          );
        });
      }
      function ot(e, t, n) {
        if (e === t) return n;
        var r = e.nextSibling;
        while (r) {
          if (r === t) return -1;
          r = r.nextSibling;
        }
        return 1;
      }
      function ut(e, t) {
        var n,
          r,
          s,
          o,
          u,
          a,
          f,
          l = L[d][e + " "];
        if (l) return t ? 0 : l.slice(0);
        (u = e), (a = []), (f = i.preFilter);
        while (u) {
          if (!n || (r = F.exec(u)))
            r && (u = u.slice(r[0].length) || u), a.push((s = []));
          n = !1;
          if ((r = I.exec(u)))
            s.push((n = new m(r.shift()))),
              (u = u.slice(n.length)),
              (n.type = r[0].replace(j, " "));
          for (o in i.filter)
            (r = J[o].exec(u)) &&
              (!f[o] || (r = f[o](r))) &&
              (s.push((n = new m(r.shift()))),
              (u = u.slice(n.length)),
              (n.type = o),
              (n.matches = r));
          if (!n) break;
        }
        return t ? u.length : u ? nt.error(e) : L(e, a).slice(0);
      }
      function at(e, t, r) {
        var i = t.dir,
          s = r && t.dir === "parentNode",
          o = w++;
        return t.first
          ? function (t, n, r) {
              while ((t = t[i])) if (s || t.nodeType === 1) return e(t, n, r);
            }
          : function (t, r, u) {
              if (!u) {
                var a,
                  f = b + " " + o + " ",
                  l = f + n;
                while ((t = t[i]))
                  if (s || t.nodeType === 1) {
                    if ((a = t[d]) === l) return t.sizset;
                    if (typeof a == "string" && a.indexOf(f) === 0) {
                      if (t.sizset) return t;
                    } else {
                      t[d] = l;
                      if (e(t, r, u)) return (t.sizset = !0), t;
                      t.sizset = !1;
                    }
                  }
              } else
                while ((t = t[i]))
                  if (s || t.nodeType === 1) if (e(t, r, u)) return t;
            };
      }
      function ft(e) {
        return e.length > 1
          ? function (t, n, r) {
              var i = e.length;
              while (i--) if (!e[i](t, n, r)) return !1;
              return !0;
            }
          : e[0];
      }
      function lt(e, t, n, r, i) {
        var s,
          o = [],
          u = 0,
          a = e.length,
          f = t != null;
        for (; u < a; u++)
          if ((s = e[u])) if (!n || n(s, r, i)) o.push(s), f && t.push(u);
        return o;
      }
      function ct(e, t, n, r, i, s) {
        return (
          r && !r[d] && (r = ct(r)),
          i && !i[d] && (i = ct(i, s)),
          N(function (s, o, u, a) {
            var f,
              l,
              c,
              h = [],
              p = [],
              d = o.length,
              v = s || dt(t || "*", u.nodeType ? [u] : u, []),
              m = e && (s || !t) ? lt(v, h, e, u, a) : v,
              g = n ? (i || (s ? e : d || r) ? [] : o) : m;
            n && n(m, g, u, a);
            if (r) {
              (f = lt(g, p)), r(f, [], u, a), (l = f.length);
              while (l--) if ((c = f[l])) g[p[l]] = !(m[p[l]] = c);
            }
            if (s) {
              if (i || e) {
                if (i) {
                  (f = []), (l = g.length);
                  while (l--) (c = g[l]) && f.push((m[l] = c));
                  i(null, (g = []), f, a);
                }
                l = g.length;
                while (l--)
                  (c = g[l]) &&
                    (f = i ? T.call(s, c) : h[l]) > -1 &&
                    (s[f] = !(o[f] = c));
              }
            } else (g = lt(g === o ? g.splice(d, g.length) : g)), i ? i(null, o, g, a) : S.apply(o, g);
          })
        );
      }
      function ht(e) {
        var t,
          n,
          r,
          s = e.length,
          o = i.relative[e[0].type],
          u = o || i.relative[" "],
          a = o ? 1 : 0,
          f = at(
            function (e) {
              return e === t;
            },
            u,
            !0
          ),
          l = at(
            function (e) {
              return T.call(t, e) > -1;
            },
            u,
            !0
          ),
          h = [
            function (e, n, r) {
              return (
                (!o && (r || n !== c)) ||
                ((t = n).nodeType ? f(e, n, r) : l(e, n, r))
              );
            },
          ];
        for (; a < s; a++)
          if ((n = i.relative[e[a].type])) h = [at(ft(h), n)];
          else {
            n = i.filter[e[a].type].apply(null, e[a].matches);
            if (n[d]) {
              r = ++a;
              for (; r < s; r++) if (i.relative[e[r].type]) break;
              return ct(
                a > 1 && ft(h),
                a > 1 &&
                  e
                    .slice(0, a - 1)
                    .join("")
                    .replace(j, "$1"),
                n,
                a < r && ht(e.slice(a, r)),
                r < s && ht((e = e.slice(r))),
                r < s && e.join("")
              );
            }
            h.push(n);
          }
        return ft(h);
      }
      function pt(e, t) {
        var r = t.length > 0,
          s = e.length > 0,
          o = function (u, a, f, l, h) {
            var p,
              d,
              v,
              m = [],
              y = 0,
              w = "0",
              x = u && [],
              T = h != null,
              N = c,
              C = u || (s && i.find.TAG("*", (h && a.parentNode) || a)),
              k = (b += N == null ? 1 : Math.E);
            T && ((c = a !== g && a), (n = o.el));
            for (; (p = C[w]) != null; w++) {
              if (s && p) {
                for (d = 0; (v = e[d]); d++)
                  if (v(p, a, f)) {
                    l.push(p);
                    break;
                  }
                T && ((b = k), (n = ++o.el));
              }
              r && ((p = !v && p) && y--, u && x.push(p));
            }
            y += w;
            if (r && w !== y) {
              for (d = 0; (v = t[d]); d++) v(x, m, a, f);
              if (u) {
                if (y > 0) while (w--) !x[w] && !m[w] && (m[w] = E.call(l));
                m = lt(m);
              }
              S.apply(l, m),
                T && !u && m.length > 0 && y + t.length > 1 && nt.uniqueSort(l);
            }
            return T && ((b = k), (c = N)), x;
          };
        return (o.el = 0), r ? N(o) : o;
      }
      function dt(e, t, n) {
        var r = 0,
          i = t.length;
        for (; r < i; r++) nt(e, t[r], n);
        return n;
      }
      function vt(e, t, n, r, s) {
        var o,
          u,
          f,
          l,
          c,
          h = ut(e),
          p = h.length;
        if (!r && h.length === 1) {
          u = h[0] = h[0].slice(0);
          if (
            u.length > 2 &&
            (f = u[0]).type === "ID" &&
            t.nodeType === 9 &&
            !s &&
            i.relative[u[1].type]
          ) {
            t = i.find.ID(f.matches[0].replace($, ""), t, s)[0];
            if (!t) return n;
            e = e.slice(u.shift().length);
          }
          for (o = J.POS.test(e) ? -1 : u.length - 1; o >= 0; o--) {
            f = u[o];
            if (i.relative[(l = f.type)]) break;
            if ((c = i.find[l]))
              if (
                (r = c(
                  f.matches[0].replace($, ""),
                  (z.test(u[0].type) && t.parentNode) || t,
                  s
                ))
              ) {
                u.splice(o, 1), (e = r.length && u.join(""));
                if (!e) return S.apply(n, x.call(r, 0)), n;
                break;
              }
          }
        }
        return a(e, h)(r, t, s, n, z.test(e)), n;
      }
      function mt() {}
      var n,
        r,
        i,
        s,
        o,
        u,
        a,
        f,
        l,
        c,
        h = !0,
        p = "undefined",
        d = ("sizcache" + Math.random()).replace(".", ""),
        m = String,
        g = e.document,
        y = g.documentElement,
        b = 0,
        w = 0,
        E = [].pop,
        S = [].push,
        x = [].slice,
        T =
          [].indexOf ||
          function (e) {
            var t = 0,
              n = this.length;
            for (; t < n; t++) if (this[t] === e) return t;
            return -1;
          },
        N = function (e, t) {
          return (e[d] = t == null || t), e;
        },
        C = function () {
          var e = {},
            t = [];
          return N(function (n, r) {
            return (
              t.push(n) > i.cacheLength && delete e[t.shift()], (e[n + " "] = r)
            );
          }, e);
        },
        k = C(),
        L = C(),
        A = C(),
        O = "[\\x20\\t\\r\\n\\f]",
        M = "(?:\\\\.|[-\\w]|[^\\x00-\\xa0])+",
        _ = M.replace("w", "w#"),
        D = "([*^$|!~]?=)",
        P =
          "\\[" +
          O +
          "*(" +
          M +
          ")" +
          O +
          "*(?:" +
          D +
          O +
          "*(?:(['\"])((?:\\\\.|[^\\\\])*?)\\3|(" +
          _ +
          ")|)|)" +
          O +
          "*\\]",
        H =
          ":(" +
          M +
          ")(?:\\((?:(['\"])((?:\\\\.|[^\\\\])*?)\\2|([^()[\\]]*|(?:(?:" +
          P +
          ")|[^:]|\\\\.)*|.*))\\)|)",
        B =
          ":(even|odd|eq|gt|lt|nth|first|last)(?:\\(" +
          O +
          "*((?:-\\d)?\\d*)" +
          O +
          "*\\)|)(?=[^-]|$)",
        j = new RegExp("^" + O + "+|((?:^|[^\\\\])(?:\\\\.)*)" + O + "+$", "g"),
        F = new RegExp("^" + O + "*," + O + "*"),
        I = new RegExp("^" + O + "*([\\x20\\t\\r\\n\\f>+~])" + O + "*"),
        q = new RegExp(H),
        R = /^(?:#([\w\-]+)|(\w+)|\.([\w\-]+))$/,
        U = /^:not/,
        z = /[\x20\t\r\n\f]*[+~]/,
        W = /:not\($/,
        X = /h\d/i,
        V = /input|select|textarea|button/i,
        $ = /\\(?!\\)/g,
        J = {
          ID: new RegExp("^#(" + M + ")"),
          CLASS: new RegExp("^\\.(" + M + ")"),
          NAME: new RegExp("^\\[name=['\"]?(" + M + ")['\"]?\\]"),
          TAG: new RegExp("^(" + M.replace("w", "w*") + ")"),
          ATTR: new RegExp("^" + P),
          PSEUDO: new RegExp("^" + H),
          POS: new RegExp(B, "i"),
          CHILD: new RegExp(
            "^:(only|nth|first|last)-child(?:\\(" +
              O +
              "*(even|odd|(([+-]|)(\\d*)n|)" +
              O +
              "*(?:([+-]|)" +
              O +
              "*(\\d+)|))" +
              O +
              "*\\)|)",
            "i"
          ),
          needsContext: new RegExp("^" + O + "*[>+~]|" + B, "i"),
        },
        K = function (e) {
          var t = g.createElement("div");
          try {
            return e(t);
          } catch (n) {
            return !1;
          } finally {
            t = null;
          }
        },
        Q = K(function (e) {
          return (
            e.appendChild(g.createComment("")),
            !e.getElementsByTagName("*").length
          );
        }),
        G = K(function (e) {
          return (
            (e.innerHTML = "<a href='#'></a>"),
            e.firstChild &&
              typeof e.firstChild.getAttribute !== p &&
              e.firstChild.getAttribute("href") === "#"
          );
        }),
        Y = K(function (e) {
          e.innerHTML = "<select></select>";
          var t = typeof e.lastChild.getAttribute("multiple");
          return t !== "boolean" && t !== "string";
        }),
        Z = K(function (e) {
          return (
            (e.innerHTML =
              "<div class='hidden e'></div><div class='hidden'></div>"),
            !e.getElementsByClassName || !e.getElementsByClassName("e").length
              ? !1
              : ((e.lastChild.className = "e"),
                e.getElementsByClassName("e").length === 2)
          );
        }),
        et = K(function (e) {
          (e.id = d + 0),
            (e.innerHTML =
              "<a name='" + d + "'></a><div name='" + d + "'></div>"),
            y.insertBefore(e, y.firstChild);
          var t =
            g.getElementsByName &&
            g.getElementsByName(d).length ===
              2 + g.getElementsByName(d + 0).length;
          return (r = !g.getElementById(d)), y.removeChild(e), t;
        });
      try {
        x.call(y.childNodes, 0)[0].nodeType;
      } catch (tt) {
        x = function (e) {
          var t,
            n = [];
          for (; (t = this[e]); e++) n.push(t);
          return n;
        };
      }
      (nt.matches = function (e, t) {
        return nt(e, null, null, t);
      }),
        (nt.matchesSelector = function (e, t) {
          return nt(t, null, null, [e]).length > 0;
        }),
        (s = nt.getText =
          function (e) {
            var t,
              n = "",
              r = 0,
              i = e.nodeType;
            if (i) {
              if (i === 1 || i === 9 || i === 11) {
                if (typeof e.textContent == "string") return e.textContent;
                for (e = e.firstChild; e; e = e.nextSibling) n += s(e);
              } else if (i === 3 || i === 4) return e.nodeValue;
            } else for (; (t = e[r]); r++) n += s(t);
            return n;
          }),
        (o = nt.isXML =
          function (e) {
            var t = e && (e.ownerDocument || e).documentElement;
            return t ? t.nodeName !== "HTML" : !1;
          }),
        (u = nt.contains =
          y.contains
            ? function (e, t) {
                var n = e.nodeType === 9 ? e.documentElement : e,
                  r = t && t.parentNode;
                return (
                  e === r ||
                  !!(r && r.nodeType === 1 && n.contains && n.contains(r))
                );
              }
            : y.compareDocumentPosition
            ? function (e, t) {
                return t && !!(e.compareDocumentPosition(t) & 16);
              }
            : function (e, t) {
                while ((t = t.parentNode)) if (t === e) return !0;
                return !1;
              }),
        (nt.attr = function (e, t) {
          var n,
            r = o(e);
          return (
            r || (t = t.toLowerCase()),
            (n = i.attrHandle[t])
              ? n(e)
              : r || Y
              ? e.getAttribute(t)
              : ((n = e.getAttributeNode(t)),
                n
                  ? typeof e[t] == "boolean"
                    ? e[t]
                      ? t
                      : null
                    : n.specified
                    ? n.value
                    : null
                  : null)
          );
        }),
        (i = nt.selectors =
          {
            cacheLength: 50,
            createPseudo: N,
            match: J,
            attrHandle: G
              ? {}
              : {
                  href: function (e) {
                    return e.getAttribute("href", 2);
                  },
                  type: function (e) {
                    return e.getAttribute("type");
                  },
                },
            find: {
              ID: r
                ? function (e, t, n) {
                    if (typeof t.getElementById !== p && !n) {
                      var r = t.getElementById(e);
                      return r && r.parentNode ? [r] : [];
                    }
                  }
                : function (e, n, r) {
                    if (typeof n.getElementById !== p && !r) {
                      var i = n.getElementById(e);
                      return i
                        ? i.id === e ||
                          (typeof i.getAttributeNode !== p &&
                            i.getAttributeNode("id").value === e)
                          ? [i]
                          : t
                        : [];
                    }
                  },
              TAG: Q
                ? function (e, t) {
                    if (typeof t.getElementsByTagName !== p)
                      return t.getElementsByTagName(e);
                  }
                : function (e, t) {
                    var n = t.getElementsByTagName(e);
                    if (e === "*") {
                      var r,
                        i = [],
                        s = 0;
                      for (; (r = n[s]); s++) r.nodeType === 1 && i.push(r);
                      return i;
                    }
                    return n;
                  },
              NAME:
                et &&
                function (e, t) {
                  if (typeof t.getElementsByName !== p)
                    return t.getElementsByName(name);
                },
              CLASS:
                Z &&
                function (e, t, n) {
                  if (typeof t.getElementsByClassName !== p && !n)
                    return t.getElementsByClassName(e);
                },
            },
            relative: {
              ">": { dir: "parentNode", first: !0 },
              " ": { dir: "parentNode" },
              "+": { dir: "previousSibling", first: !0 },
              "~": { dir: "previousSibling" },
            },
            preFilter: {
              ATTR: function (e) {
                return (
                  (e[1] = e[1].replace($, "")),
                  (e[3] = (e[4] || e[5] || "").replace($, "")),
                  e[2] === "~=" && (e[3] = " " + e[3] + " "),
                  e.slice(0, 4)
                );
              },
              CHILD: function (e) {
                return (
                  (e[1] = e[1].toLowerCase()),
                  e[1] === "nth"
                    ? (e[2] || nt.error(e[0]),
                      (e[3] = +(e[3]
                        ? e[4] + (e[5] || 1)
                        : 2 * (e[2] === "even" || e[2] === "odd"))),
                      (e[4] = +(e[6] + e[7] || e[2] === "odd")))
                    : e[2] && nt.error(e[0]),
                  e
                );
              },
              PSEUDO: function (e) {
                var t, n;
                if (J.CHILD.test(e[0])) return null;
                if (e[3]) e[2] = e[3];
                else if ((t = e[4]))
                  q.test(t) &&
                    (n = ut(t, !0)) &&
                    (n = t.indexOf(")", t.length - n) - t.length) &&
                    ((t = t.slice(0, n)), (e[0] = e[0].slice(0, n))),
                    (e[2] = t);
                return e.slice(0, 3);
              },
            },
            filter: {
              ID: r
                ? function (e) {
                    return (
                      (e = e.replace($, "")),
                      function (t) {
                        return t.getAttribute("id") === e;
                      }
                    );
                  }
                : function (e) {
                    return (
                      (e = e.replace($, "")),
                      function (t) {
                        var n =
                          typeof t.getAttributeNode !== p &&
                          t.getAttributeNode("id");
                        return n && n.value === e;
                      }
                    );
                  },
              TAG: function (e) {
                return e === "*"
                  ? function () {
                      return !0;
                    }
                  : ((e = e.replace($, "").toLowerCase()),
                    function (t) {
                      return t.nodeName && t.nodeName.toLowerCase() === e;
                    });
              },
              CLASS: function (e) {
                var t = k[d][e + " "];
                return (
                  t ||
                  ((t = new RegExp("(^|" + O + ")" + e + "(" + O + "|$)")) &&
                    k(e, function (e) {
                      return t.test(
                        e.className ||
                          (typeof e.getAttribute !== p &&
                            e.getAttribute("class")) ||
                          ""
                      );
                    }))
                );
              },
              ATTR: function (e, t, n) {
                return function (r, i) {
                  var s = nt.attr(r, e);
                  return s == null
                    ? t === "!="
                    : t
                    ? ((s += ""),
                      t === "="
                        ? s === n
                        : t === "!="
                        ? s !== n
                        : t === "^="
                        ? n && s.indexOf(n) === 0
                        : t === "*="
                        ? n && s.indexOf(n) > -1
                        : t === "$="
                        ? n && s.substr(s.length - n.length) === n
                        : t === "~="
                        ? (" " + s + " ").indexOf(n) > -1
                        : t === "|="
                        ? s === n || s.substr(0, n.length + 1) === n + "-"
                        : !1)
                    : !0;
                };
              },
              CHILD: function (e, t, n, r) {
                return e === "nth"
                  ? function (e) {
                      var t,
                        i,
                        s = e.parentNode;
                      if (n === 1 && r === 0) return !0;
                      if (s) {
                        i = 0;
                        for (t = s.firstChild; t; t = t.nextSibling)
                          if (t.nodeType === 1) {
                            i++;
                            if (e === t) break;
                          }
                      }
                      return (i -= r), i === n || (i % n === 0 && i / n >= 0);
                    }
                  : function (t) {
                      var n = t;
                      switch (e) {
                        case "only":
                        case "first":
                          while ((n = n.previousSibling))
                            if (n.nodeType === 1) return !1;
                          if (e === "first") return !0;
                          n = t;
                        case "last":
                          while ((n = n.nextSibling))
                            if (n.nodeType === 1) return !1;
                          return !0;
                      }
                    };
              },
              PSEUDO: function (e, t) {
                var n,
                  r =
                    i.pseudos[e] ||
                    i.setFilters[e.toLowerCase()] ||
                    nt.error("unsupported pseudo: " + e);
                return r[d]
                  ? r(t)
                  : r.length > 1
                  ? ((n = [e, e, "", t]),
                    i.setFilters.hasOwnProperty(e.toLowerCase())
                      ? N(function (e, n) {
                          var i,
                            s = r(e, t),
                            o = s.length;
                          while (o--)
                            (i = T.call(e, s[o])), (e[i] = !(n[i] = s[o]));
                        })
                      : function (e) {
                          return r(e, 0, n);
                        })
                  : r;
              },
            },
            pseudos: {
              not: N(function (e) {
                var t = [],
                  n = [],
                  r = a(e.replace(j, "$1"));
                return r[d]
                  ? N(function (e, t, n, i) {
                      var s,
                        o = r(e, null, i, []),
                        u = e.length;
                      while (u--) if ((s = o[u])) e[u] = !(t[u] = s);
                    })
                  : function (e, i, s) {
                      return (t[0] = e), r(t, null, s, n), !n.pop();
                    };
              }),
              has: N(function (e) {
                return function (t) {
                  return nt(e, t).length > 0;
                };
              }),
              contains: N(function (e) {
                return function (t) {
                  return (t.textContent || t.innerText || s(t)).indexOf(e) > -1;
                };
              }),
              enabled: function (e) {
                return e.disabled === !1;
              },
              disabled: function (e) {
                return e.disabled === !0;
              },
              checked: function (e) {
                var t = e.nodeName.toLowerCase();
                return (
                  (t === "input" && !!e.checked) ||
                  (t === "option" && !!e.selected)
                );
              },
              selected: function (e) {
                return (
                  e.parentNode && e.parentNode.selectedIndex, e.selected === !0
                );
              },
              parent: function (e) {
                return !i.pseudos.empty(e);
              },
              empty: function (e) {
                var t;
                e = e.firstChild;
                while (e) {
                  if (e.nodeName > "@" || (t = e.nodeType) === 3 || t === 4)
                    return !1;
                  e = e.nextSibling;
                }
                return !0;
              },
              header: function (e) {
                return X.test(e.nodeName);
              },
              text: function (e) {
                var t, n;
                return (
                  e.nodeName.toLowerCase() === "input" &&
                  (t = e.type) === "text" &&
                  ((n = e.getAttribute("type")) == null ||
                    n.toLowerCase() === t)
                );
              },
              radio: rt("radio"),
              checkbox: rt("checkbox"),
              file: rt("file"),
              password: rt("password"),
              image: rt("image"),
              submit: it("submit"),
              reset: it("reset"),
              button: function (e) {
                var t = e.nodeName.toLowerCase();
                return (t === "input" && e.type === "button") || t === "button";
              },
              input: function (e) {
                return V.test(e.nodeName);
              },
              focus: function (e) {
                var t = e.ownerDocument;
                return (
                  e === t.activeElement &&
                  (!t.hasFocus || t.hasFocus()) &&
                  !!(e.type || e.href || ~e.tabIndex)
                );
              },
              active: function (e) {
                return e === e.ownerDocument.activeElement;
              },
              first: st(function () {
                return [0];
              }),
              last: st(function (e, t) {
                return [t - 1];
              }),
              eq: st(function (e, t, n) {
                return [n < 0 ? n + t : n];
              }),
              even: st(function (e, t) {
                for (var n = 0; n < t; n += 2) e.push(n);
                return e;
              }),
              odd: st(function (e, t) {
                for (var n = 1; n < t; n += 2) e.push(n);
                return e;
              }),
              lt: st(function (e, t, n) {
                for (var r = n < 0 ? n + t : n; --r >= 0; ) e.push(r);
                return e;
              }),
              gt: st(function (e, t, n) {
                for (var r = n < 0 ? n + t : n; ++r < t; ) e.push(r);
                return e;
              }),
            },
          }),
        (f = y.compareDocumentPosition
          ? function (e, t) {
              return e === t
                ? ((l = !0), 0)
                : (
                    !e.compareDocumentPosition || !t.compareDocumentPosition
                      ? e.compareDocumentPosition
                      : e.compareDocumentPosition(t) & 4
                  )
                ? -1
                : 1;
            }
          : function (e, t) {
              if (e === t) return (l = !0), 0;
              if (e.sourceIndex && t.sourceIndex)
                return e.sourceIndex - t.sourceIndex;
              var n,
                r,
                i = [],
                s = [],
                o = e.parentNode,
                u = t.parentNode,
                a = o;
              if (o === u) return ot(e, t);
              if (!o) return -1;
              if (!u) return 1;
              while (a) i.unshift(a), (a = a.parentNode);
              a = u;
              while (a) s.unshift(a), (a = a.parentNode);
              (n = i.length), (r = s.length);
              for (var f = 0; f < n && f < r; f++)
                if (i[f] !== s[f]) return ot(i[f], s[f]);
              return f === n ? ot(e, s[f], -1) : ot(i[f], t, 1);
            }),
        [0, 0].sort(f),
        (h = !l),
        (nt.uniqueSort = function (e) {
          var t,
            n = [],
            r = 1,
            i = 0;
          (l = h), e.sort(f);
          if (l) {
            for (; (t = e[r]); r++) t === e[r - 1] && (i = n.push(r));
            while (i--) e.splice(n[i], 1);
          }
          return e;
        }),
        (nt.error = function (e) {
          throw new Error("Syntax error, unrecognized expression: " + e);
        }),
        (a = nt.compile =
          function (e, t) {
            var n,
              r = [],
              i = [],
              s = A[d][e + " "];
            if (!s) {
              t || (t = ut(e)), (n = t.length);
              while (n--) (s = ht(t[n])), s[d] ? r.push(s) : i.push(s);
              s = A(e, pt(i, r));
            }
            return s;
          }),
        g.querySelectorAll &&
          (function () {
            var e,
              t = vt,
              n = /'|\\/g,
              r = /\=[\x20\t\r\n\f]*([^'"\]]*)[\x20\t\r\n\f]*\]/g,
              i = [":focus"],
              s = [":active"],
              u =
                y.matchesSelector ||
                y.mozMatchesSelector ||
                y.webkitMatchesSelector ||
                y.oMatchesSelector ||
                y.msMatchesSelector;
            K(function (e) {
              (e.innerHTML = "<select><option selected=''></option></select>"),
                e.querySelectorAll("[selected]").length ||
                  i.push(
                    "\\[" +
                      O +
                      "*(?:checked|disabled|ismap|multiple|readonly|selected|value)"
                  ),
                e.querySelectorAll(":checked").length || i.push(":checked");
            }),
              K(function (e) {
                (e.innerHTML = "<p test=''></p>"),
                  e.querySelectorAll("[test^='']").length &&
                    i.push("[*^$]=" + O + "*(?:\"\"|'')"),
                  (e.innerHTML = "<input type='hidden'/>"),
                  e.querySelectorAll(":enabled").length ||
                    i.push(":enabled", ":disabled");
              }),
              (i = new RegExp(i.join("|"))),
              (vt = function (e, r, s, o, u) {
                if (!o && !u && !i.test(e)) {
                  var a,
                    f,
                    l = !0,
                    c = d,
                    h = r,
                    p = r.nodeType === 9 && e;
                  if (
                    r.nodeType === 1 &&
                    r.nodeName.toLowerCase() !== "object"
                  ) {
                    (a = ut(e)),
                      (l = r.getAttribute("id"))
                        ? (c = l.replace(n, "\\$&"))
                        : r.setAttribute("id", c),
                      (c = "[id='" + c + "'] "),
                      (f = a.length);
                    while (f--) a[f] = c + a[f].join("");
                    (h = (z.test(e) && r.parentNode) || r), (p = a.join(","));
                  }
                  if (p)
                    try {
                      return S.apply(s, x.call(h.querySelectorAll(p), 0)), s;
                    } catch (v) {
                    } finally {
                      l || r.removeAttribute("id");
                    }
                }
                return t(e, r, s, o, u);
              }),
              u &&
                (K(function (t) {
                  e = u.call(t, "div");
                  try {
                    u.call(t, "[test!='']:sizzle"), s.push("!=", H);
                  } catch (n) {}
                }),
                (s = new RegExp(s.join("|"))),
                (nt.matchesSelector = function (t, n) {
                  n = n.replace(r, "='$1']");
                  if (!o(t) && !s.test(n) && !i.test(n))
                    try {
                      var a = u.call(t, n);
                      if (a || e || (t.document && t.document.nodeType !== 11))
                        return a;
                    } catch (f) {}
                  return nt(n, null, null, [t]).length > 0;
                }));
          })(),
        (i.pseudos.nth = i.pseudos.eq),
        (i.filters = mt.prototype = i.pseudos),
        (i.setFilters = new mt()),
        (nt.attr = v.attr),
        (v.find = nt),
        (v.expr = nt.selectors),
        (v.expr[":"] = v.expr.pseudos),
        (v.unique = nt.uniqueSort),
        (v.text = nt.getText),
        (v.isXMLDoc = nt.isXML),
        (v.contains = nt.contains);
    })(e);
  var nt = /Until$/,
    rt = /^(?:parents|prev(?:Until|All))/,
    it = /^.[^:#\[\.,]*$/,
    st = v.expr.match.needsContext,
    ot = { children: !0, contents: !0, next: !0, prev: !0 };
  v.fn.extend({
    find: function (e) {
      var t,
        n,
        r,
        i,
        s,
        o,
        u = this;
      if (typeof e != "string")
        return v(e).filter(function () {
          for (t = 0, n = u.length; t < n; t++)
            if (v.contains(u[t], this)) return !0;
        });
      o = this.pushStack("", "find", e);
      for (t = 0, n = this.length; t < n; t++) {
        (r = o.length), v.find(e, this[t], o);
        if (t > 0)
          for (i = r; i < o.length; i++)
            for (s = 0; s < r; s++)
              if (o[s] === o[i]) {
                o.splice(i--, 1);
                break;
              }
      }
      return o;
    },
    has: function (e) {
      var t,
        n = v(e, this),
        r = n.length;
      return this.filter(function () {
        for (t = 0; t < r; t++) if (v.contains(this, n[t])) return !0;
      });
    },
    not: function (e) {
      return this.pushStack(ft(this, e, !1), "not", e);
    },
    filter: function (e) {
      return this.pushStack(ft(this, e, !0), "filter", e);
    },
    is: function (e) {
      return (
        !!e &&
        (typeof e == "string"
          ? st.test(e)
            ? v(e, this.context).index(this[0]) >= 0
            : v.filter(e, this).length > 0
          : this.filter(e).length > 0)
      );
    },
    closest: function (e, t) {
      var n,
        r = 0,
        i = this.length,
        s = [],
        o = st.test(e) || typeof e != "string" ? v(e, t || this.context) : 0;
      for (; r < i; r++) {
        n = this[r];
        while (n && n.ownerDocument && n !== t && n.nodeType !== 11) {
          if (o ? o.index(n) > -1 : v.find.matchesSelector(n, e)) {
            s.push(n);
            break;
          }
          n = n.parentNode;
        }
      }
      return (
        (s = s.length > 1 ? v.unique(s) : s), this.pushStack(s, "closest", e)
      );
    },
    index: function (e) {
      return e
        ? typeof e == "string"
          ? v.inArray(this[0], v(e))
          : v.inArray(e.jquery ? e[0] : e, this)
        : this[0] && this[0].parentNode
        ? this.prevAll().length
        : -1;
    },
    add: function (e, t) {
      var n =
          typeof e == "string"
            ? v(e, t)
            : v.makeArray(e && e.nodeType ? [e] : e),
        r = v.merge(this.get(), n);
      return this.pushStack(ut(n[0]) || ut(r[0]) ? r : v.unique(r));
    },
    addBack: function (e) {
      return this.add(e == null ? this.prevObject : this.prevObject.filter(e));
    },
  }),
    (v.fn.andSelf = v.fn.addBack),
    v.each(
      {
        parent: function (e) {
          var t = e.parentNode;
          return t && t.nodeType !== 11 ? t : null;
        },
        parents: function (e) {
          return v.dir(e, "parentNode");
        },
        parentsUntil: function (e, t, n) {
          return v.dir(e, "parentNode", n);
        },
        next: function (e) {
          return at(e, "nextSibling");
        },
        prev: function (e) {
          return at(e, "previousSibling");
        },
        nextAll: function (e) {
          return v.dir(e, "nextSibling");
        },
        prevAll: function (e) {
          return v.dir(e, "previousSibling");
        },
        nextUntil: function (e, t, n) {
          return v.dir(e, "nextSibling", n);
        },
        prevUntil: function (e, t, n) {
          return v.dir(e, "previousSibling", n);
        },
        siblings: function (e) {
          return v.sibling((e.parentNode || {}).firstChild, e);
        },
        children: function (e) {
          return v.sibling(e.firstChild);
        },
        contents: function (e) {
          return v.nodeName(e, "iframe")
            ? e.contentDocument || e.contentWindow.document
            : v.merge([], e.childNodes);
        },
      },
      function (e, t) {
        v.fn[e] = function (n, r) {
          var i = v.map(this, t, n);
          return (
            nt.test(e) || (r = n),
            r && typeof r == "string" && (i = v.filter(r, i)),
            (i = this.length > 1 && !ot[e] ? v.unique(i) : i),
            this.length > 1 && rt.test(e) && (i = i.reverse()),
            this.pushStack(i, e, l.call(arguments).join(","))
          );
        };
      }
    ),
    v.extend({
      filter: function (e, t, n) {
        return (
          n && (e = ":not(" + e + ")"),
          t.length === 1
            ? v.find.matchesSelector(t[0], e)
              ? [t[0]]
              : []
            : v.find.matches(e, t)
        );
      },
      dir: function (e, n, r) {
        var i = [],
          s = e[n];
        while (
          s &&
          s.nodeType !== 9 &&
          (r === t || s.nodeType !== 1 || !v(s).is(r))
        )
          s.nodeType === 1 && i.push(s), (s = s[n]);
        return i;
      },
      sibling: function (e, t) {
        var n = [];
        for (; e; e = e.nextSibling) e.nodeType === 1 && e !== t && n.push(e);
        return n;
      },
    });
  var ct =
      "abbr|article|aside|audio|bdi|canvas|data|datalist|details|figcaption|figure|footer|header|hgroup|mark|meter|nav|output|progress|section|summary|time|video",
    ht = / jQuery\d+="(?:null|\d+)"/g,
    pt = /^\s+/,
    dt =
      /<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi,
    vt = /<([\w:]+)/,
    mt = /<tbody/i,
    gt = /<|&#?\w+;/,
    yt = /<(?:script|style|link)/i,
    bt = /<(?:script|object|embed|option|style)/i,
    wt = new RegExp("<(?:" + ct + ")[\\s/>]", "i"),
    Et = /^(?:checkbox|radio)$/,
    St = /checked\s*(?:[^=]|=\s*.checked.)/i,
    xt = /\/(java|ecma)script/i,
    Tt = /^\s*<!(?:\[CDATA\[|\-\-)|[\]\-]{2}>\s*$/g,
    Nt = {
      option: [1, "<select multiple='multiple'>", "</select>"],
      legend: [1, "<fieldset>", "</fieldset>"],
      thead: [1, "<table>", "</table>"],
      tr: [2, "<table><tbody>", "</tbody></table>"],
      td: [3, "<table><tbody><tr>", "</tr></tbody></table>"],
      col: [2, "<table><tbody></tbody><colgroup>", "</colgroup></table>"],
      area: [1, "<map>", "</map>"],
      _default: [0, "", ""],
    },
    Ct = lt(i),
    kt = Ct.appendChild(i.createElement("div"));
  (Nt.optgroup = Nt.option),
    (Nt.tbody = Nt.tfoot = Nt.colgroup = Nt.caption = Nt.thead),
    (Nt.th = Nt.td),
    v.support.htmlSerialize || (Nt._default = [1, "X<div>", "</div>"]),
    v.fn.extend({
      text: function (e) {
        return v.access(
          this,
          function (e) {
            return e === t
              ? v.text(this)
              : this.empty().append(
                  ((this[0] && this[0].ownerDocument) || i).createTextNode(e)
                );
          },
          null,
          e,
          arguments.length
        );
      },
      wrapAll: function (e) {
        if (v.isFunction(e))
          return this.each(function (t) {
            v(this).wrapAll(e.call(this, t));
          });
        if (this[0]) {
          var t = v(e, this[0].ownerDocument).eq(0).clone(!0);
          this[0].parentNode && t.insertBefore(this[0]),
            t
              .map(function () {
                var e = this;
                while (e.firstChild && e.firstChild.nodeType === 1)
                  e = e.firstChild;
                return e;
              })
              .append(this);
        }
        return this;
      },
      wrapInner: function (e) {
        return v.isFunction(e)
          ? this.each(function (t) {
              v(this).wrapInner(e.call(this, t));
            })
          : this.each(function () {
              var t = v(this),
                n = t.contents();
              n.length ? n.wrapAll(e) : t.append(e);
            });
      },
      wrap: function (e) {
        var t = v.isFunction(e);
        return this.each(function (n) {
          v(this).wrapAll(t ? e.call(this, n) : e);
        });
      },
      unwrap: function () {
        return this.parent()
          .each(function () {
            v.nodeName(this, "body") || v(this).replaceWith(this.childNodes);
          })
          .end();
      },
      append: function () {
        return this.domManip(arguments, !0, function (e) {
          (this.nodeType === 1 || this.nodeType === 11) && this.appendChild(e);
        });
      },
      prepend: function () {
        return this.domManip(arguments, !0, function (e) {
          (this.nodeType === 1 || this.nodeType === 11) &&
            this.insertBefore(e, this.firstChild);
        });
      },
      before: function () {
        if (!ut(this[0]))
          return this.domManip(arguments, !1, function (e) {
            this.parentNode.insertBefore(e, this);
          });
        if (arguments.length) {
          var e = v.clean(arguments);
          return this.pushStack(v.merge(e, this), "before", this.selector);
        }
      },
      after: function () {
        if (!ut(this[0]))
          return this.domManip(arguments, !1, function (e) {
            this.parentNode.insertBefore(e, this.nextSibling);
          });
        if (arguments.length) {
          var e = v.clean(arguments);
          return this.pushStack(v.merge(this, e), "after", this.selector);
        }
      },
      remove: function (e, t) {
        var n,
          r = 0;
        for (; (n = this[r]) != null; r++)
          if (!e || v.filter(e, [n]).length)
            !t &&
              n.nodeType === 1 &&
              (v.cleanData(n.getElementsByTagName("*")), v.cleanData([n])),
              n.parentNode && n.parentNode.removeChild(n);
        return this;
      },
      empty: function () {
        var e,
          t = 0;
        for (; (e = this[t]) != null; t++) {
          e.nodeType === 1 && v.cleanData(e.getElementsByTagName("*"));
          while (e.firstChild) e.removeChild(e.firstChild);
        }
        return this;
      },
      clone: function (e, t) {
        return (
          (e = e == null ? !1 : e),
          (t = t == null ? e : t),
          this.map(function () {
            return v.clone(this, e, t);
          })
        );
      },
      html: function (e) {
        return v.access(
          this,
          function (e) {
            var n = this[0] || {},
              r = 0,
              i = this.length;
            if (e === t)
              return n.nodeType === 1 ? n.innerHTML.replace(ht, "") : t;
            if (
              typeof e == "string" &&
              !yt.test(e) &&
              (v.support.htmlSerialize || !wt.test(e)) &&
              (v.support.leadingWhitespace || !pt.test(e)) &&
              !Nt[(vt.exec(e) || ["", ""])[1].toLowerCase()]
            ) {
              e = e.replace(dt, "<$1></$2>");
              try {
                for (; r < i; r++)
                  (n = this[r] || {}),
                    n.nodeType === 1 &&
                      (v.cleanData(n.getElementsByTagName("*")),
                      (n.innerHTML = e));
                n = 0;
              } catch (s) {}
            }
            n && this.empty().append(e);
          },
          null,
          e,
          arguments.length
        );
      },
      replaceWith: function (e) {
        return ut(this[0])
          ? this.length
            ? this.pushStack(v(v.isFunction(e) ? e() : e), "replaceWith", e)
            : this
          : v.isFunction(e)
          ? this.each(function (t) {
              var n = v(this),
                r = n.html();
              n.replaceWith(e.call(this, t, r));
            })
          : (typeof e != "string" && (e = v(e).detach()),
            this.each(function () {
              var t = this.nextSibling,
                n = this.parentNode;
              v(this).remove(), t ? v(t).before(e) : v(n).append(e);
            }));
      },
      detach: function (e) {
        return this.remove(e, !0);
      },
      domManip: function (e, n, r) {
        e = [].concat.apply([], e);
        var i,
          s,
          o,
          u,
          a = 0,
          f = e[0],
          l = [],
          c = this.length;
        if (
          !v.support.checkClone &&
          c > 1 &&
          typeof f == "string" &&
          St.test(f)
        )
          return this.each(function () {
            v(this).domManip(e, n, r);
          });
        if (v.isFunction(f))
          return this.each(function (i) {
            var s = v(this);
            (e[0] = f.call(this, i, n ? s.html() : t)), s.domManip(e, n, r);
          });
        if (this[0]) {
          (i = v.buildFragment(e, this, l)),
            (o = i.fragment),
            (s = o.firstChild),
            o.childNodes.length === 1 && (o = s);
          if (s) {
            n = n && v.nodeName(s, "tr");
            for (u = i.cacheable || c - 1; a < c; a++)
              r.call(
                n && v.nodeName(this[a], "table")
                  ? Lt(this[a], "tbody")
                  : this[a],
                a === u ? o : v.clone(o, !0, !0)
              );
          }
          (o = s = null),
            l.length &&
              v.each(l, function (e, t) {
                t.src
                  ? v.ajax
                    ? v.ajax({
                        url: t.src,
                        type: "GET",
                        dataType: "script",
                        async: !1,
                        global: !1,
                        throws: !0,
                      })
                    : v.error("no ajax")
                  : v.globalEval(
                      (t.text || t.textContent || t.innerHTML || "").replace(
                        Tt,
                        ""
                      )
                    ),
                  t.parentNode && t.parentNode.removeChild(t);
              });
        }
        return this;
      },
    }),
    (v.buildFragment = function (e, n, r) {
      var s,
        o,
        u,
        a = e[0];
      return (
        (n = n || i),
        (n = (!n.nodeType && n[0]) || n),
        (n = n.ownerDocument || n),
        e.length === 1 &&
          typeof a == "string" &&
          a.length < 512 &&
          n === i &&
          a.charAt(0) === "<" &&
          !bt.test(a) &&
          (v.support.checkClone || !St.test(a)) &&
          (v.support.html5Clone || !wt.test(a)) &&
          ((o = !0), (s = v.fragments[a]), (u = s !== t)),
        s ||
          ((s = n.createDocumentFragment()),
          v.clean(e, n, s, r),
          o && (v.fragments[a] = u && s)),
        { fragment: s, cacheable: o }
      );
    }),
    (v.fragments = {}),
    v.each(
      {
        appendTo: "append",
        prependTo: "prepend",
        insertBefore: "before",
        insertAfter: "after",
        replaceAll: "replaceWith",
      },
      function (e, t) {
        v.fn[e] = function (n) {
          var r,
            i = 0,
            s = [],
            o = v(n),
            u = o.length,
            a = this.length === 1 && this[0].parentNode;
          if (
            (a == null ||
              (a && a.nodeType === 11 && a.childNodes.length === 1)) &&
            u === 1
          )
            return o[t](this[0]), this;
          for (; i < u; i++)
            (r = (i > 0 ? this.clone(!0) : this).get()),
              v(o[i])[t](r),
              (s = s.concat(r));
          return this.pushStack(s, e, o.selector);
        };
      }
    ),
    v.extend({
      clone: function (e, t, n) {
        var r, i, s, o;
        v.support.html5Clone ||
        v.isXMLDoc(e) ||
        !wt.test("<" + e.nodeName + ">")
          ? (o = e.cloneNode(!0))
          : ((kt.innerHTML = e.outerHTML), kt.removeChild((o = kt.firstChild)));
        if (
          (!v.support.noCloneEvent || !v.support.noCloneChecked) &&
          (e.nodeType === 1 || e.nodeType === 11) &&
          !v.isXMLDoc(e)
        ) {
          Ot(e, o), (r = Mt(e)), (i = Mt(o));
          for (s = 0; r[s]; ++s) i[s] && Ot(r[s], i[s]);
        }
        if (t) {
          At(e, o);
          if (n) {
            (r = Mt(e)), (i = Mt(o));
            for (s = 0; r[s]; ++s) At(r[s], i[s]);
          }
        }
        return (r = i = null), o;
      },
      clean: function (e, t, n, r) {
        var s,
          o,
          u,
          a,
          f,
          l,
          c,
          h,
          p,
          d,
          m,
          g,
          y = t === i && Ct,
          b = [];
        if (!t || typeof t.createDocumentFragment == "undefined") t = i;
        for (s = 0; (u = e[s]) != null; s++) {
          typeof u == "number" && (u += "");
          if (!u) continue;
          if (typeof u == "string")
            if (!gt.test(u)) u = t.createTextNode(u);
            else {
              (y = y || lt(t)),
                (c = t.createElement("div")),
                y.appendChild(c),
                (u = u.replace(dt, "<$1></$2>")),
                (a = (vt.exec(u) || ["", ""])[1].toLowerCase()),
                (f = Nt[a] || Nt._default),
                (l = f[0]),
                (c.innerHTML = f[1] + u + f[2]);
              while (l--) c = c.lastChild;
              if (!v.support.tbody) {
                (h = mt.test(u)),
                  (p =
                    a === "table" && !h
                      ? c.firstChild && c.firstChild.childNodes
                      : f[1] === "<table>" && !h
                      ? c.childNodes
                      : []);
                for (o = p.length - 1; o >= 0; --o)
                  v.nodeName(p[o], "tbody") &&
                    !p[o].childNodes.length &&
                    p[o].parentNode.removeChild(p[o]);
              }
              !v.support.leadingWhitespace &&
                pt.test(u) &&
                c.insertBefore(t.createTextNode(pt.exec(u)[0]), c.firstChild),
                (u = c.childNodes),
                c.parentNode.removeChild(c);
            }
          u.nodeType ? b.push(u) : v.merge(b, u);
        }
        c && (u = c = y = null);
        if (!v.support.appendChecked)
          for (s = 0; (u = b[s]) != null; s++)
            v.nodeName(u, "input")
              ? _t(u)
              : typeof u.getElementsByTagName != "undefined" &&
                v.grep(u.getElementsByTagName("input"), _t);
        if (n) {
          m = function (e) {
            if (!e.type || xt.test(e.type))
              return r
                ? r.push(e.parentNode ? e.parentNode.removeChild(e) : e)
                : n.appendChild(e);
          };
          for (s = 0; (u = b[s]) != null; s++)
            if (!v.nodeName(u, "script") || !m(u))
              n.appendChild(u),
                typeof u.getElementsByTagName != "undefined" &&
                  ((g = v.grep(
                    v.merge([], u.getElementsByTagName("script")),
                    m
                  )),
                  b.splice.apply(b, [s + 1, 0].concat(g)),
                  (s += g.length));
        }
        return b;
      },
      cleanData: function (e, t) {
        var n,
          r,
          i,
          s,
          o = 0,
          u = v.expando,
          a = v.cache,
          f = v.support.deleteExpando,
          l = v.event.special;
        for (; (i = e[o]) != null; o++)
          if (t || v.acceptData(i)) {
            (r = i[u]), (n = r && a[r]);
            if (n) {
              if (n.events)
                for (s in n.events)
                  l[s] ? v.event.remove(i, s) : v.removeEvent(i, s, n.handle);
              a[r] &&
                (delete a[r],
                f
                  ? delete i[u]
                  : i.removeAttribute
                  ? i.removeAttribute(u)
                  : (i[u] = null),
                v.deletedIds.push(r));
            }
          }
      },
    }),
    (function () {
      var e, t;
      (v.uaMatch = function (e) {
        e = e.toLowerCase();
        var t =
          /(chrome)[ \/]([\w.]+)/.exec(e) ||
          /(webkit)[ \/]([\w.]+)/.exec(e) ||
          /(opera)(?:.*version|)[ \/]([\w.]+)/.exec(e) ||
          /(msie) ([\w.]+)/.exec(e) ||
          (e.indexOf("compatible") < 0 &&
            /(mozilla)(?:.*? rv:([\w.]+)|)/.exec(e)) ||
          [];
        return { browser: t[1] || "", version: t[2] || "0" };
      }),
        (e = v.uaMatch(o.userAgent)),
        (t = {}),
        e.browser && ((t[e.browser] = !0), (t.version = e.version)),
        t.chrome ? (t.webkit = !0) : t.webkit && (t.safari = !0),
        (v.browser = t),
        (v.sub = function () {
          function e(t, n) {
            return new e.fn.init(t, n);
          }
          v.extend(!0, e, this),
            (e.superclass = this),
            (e.fn = e.prototype = this()),
            (e.fn.constructor = e),
            (e.sub = this.sub),
            (e.fn.init = function (r, i) {
              return (
                i && i instanceof v && !(i instanceof e) && (i = e(i)),
                v.fn.init.call(this, r, i, t)
              );
            }),
            (e.fn.init.prototype = e.fn);
          var t = e(i);
          return e;
        });
    })();
  var Dt,
    Pt,
    Ht,
    Bt = /alpha\([^)]*\)/i,
    jt = /opacity=([^)]*)/,
    Ft = /^(top|right|bottom|left)$/,
    It = /^(none|table(?!-c[ea]).+)/,
    qt = /^margin/,
    Rt = new RegExp("^(" + m + ")(.*)$", "i"),
    Ut = new RegExp("^(" + m + ")(?!px)[a-z%]+$", "i"),
    zt = new RegExp("^([-+])=(" + m + ")", "i"),
    Wt = { BODY: "block" },
    Xt = { position: "absolute", visibility: "hidden", display: "block" },
    Vt = { letterSpacing: 0, fontWeight: 400 },
    $t = ["Top", "Right", "Bottom", "Left"],
    Jt = ["Webkit", "O", "Moz", "ms"],
    Kt = v.fn.toggle;
  v.fn.extend({
    css: function (e, n) {
      return v.access(
        this,
        function (e, n, r) {
          return r !== t ? v.style(e, n, r) : v.css(e, n);
        },
        e,
        n,
        arguments.length > 1
      );
    },
    show: function () {
      return Yt(this, !0);
    },
    hide: function () {
      return Yt(this);
    },
    toggle: function (e, t) {
      var n = typeof e == "boolean";
      return v.isFunction(e) && v.isFunction(t)
        ? Kt.apply(this, arguments)
        : this.each(function () {
            (n ? e : Gt(this)) ? v(this).show() : v(this).hide();
          });
    },
  }),
    v.extend({
      cssHooks: {
        opacity: {
          get: function (e, t) {
            if (t) {
              var n = Dt(e, "opacity");
              return n === "" ? "1" : n;
            }
          },
        },
      },
      cssNumber: {
        fillOpacity: !0,
        fontWeight: !0,
        lineHeight: !0,
        opacity: !0,
        orphans: !0,
        widows: !0,
        zIndex: !0,
        zoom: !0,
      },
      cssProps: { float: v.support.cssFloat ? "cssFloat" : "styleFloat" },
      style: function (e, n, r, i) {
        if (!e || e.nodeType === 3 || e.nodeType === 8 || !e.style) return;
        var s,
          o,
          u,
          a = v.camelCase(n),
          f = e.style;
        (n = v.cssProps[a] || (v.cssProps[a] = Qt(f, a))),
          (u = v.cssHooks[n] || v.cssHooks[a]);
        if (r === t)
          return u && "get" in u && (s = u.get(e, !1, i)) !== t ? s : f[n];
        (o = typeof r),
          o === "string" &&
            (s = zt.exec(r)) &&
            ((r = (s[1] + 1) * s[2] + parseFloat(v.css(e, n))), (o = "number"));
        if (r == null || (o === "number" && isNaN(r))) return;
        o === "number" && !v.cssNumber[a] && (r += "px");
        if (!u || !("set" in u) || (r = u.set(e, r, i)) !== t)
          try {
            f[n] = r;
          } catch (l) {}
      },
      css: function (e, n, r, i) {
        var s,
          o,
          u,
          a = v.camelCase(n);
        return (
          (n = v.cssProps[a] || (v.cssProps[a] = Qt(e.style, a))),
          (u = v.cssHooks[n] || v.cssHooks[a]),
          u && "get" in u && (s = u.get(e, !0, i)),
          s === t && (s = Dt(e, n)),
          s === "normal" && n in Vt && (s = Vt[n]),
          r || i !== t
            ? ((o = parseFloat(s)), r || v.isNumeric(o) ? o || 0 : s)
            : s
        );
      },
      swap: function (e, t, n) {
        var r,
          i,
          s = {};
        for (i in t) (s[i] = e.style[i]), (e.style[i] = t[i]);
        r = n.call(e);
        for (i in t) e.style[i] = s[i];
        return r;
      },
    }),
    e.getComputedStyle
      ? (Dt = function (t, n) {
          var r,
            i,
            s,
            o,
            u = e.getComputedStyle(t, null),
            a = t.style;
          return (
            u &&
              ((r = u.getPropertyValue(n) || u[n]),
              r === "" &&
                !v.contains(t.ownerDocument, t) &&
                (r = v.style(t, n)),
              Ut.test(r) &&
                qt.test(n) &&
                ((i = a.width),
                (s = a.minWidth),
                (o = a.maxWidth),
                (a.minWidth = a.maxWidth = a.width = r),
                (r = u.width),
                (a.width = i),
                (a.minWidth = s),
                (a.maxWidth = o))),
            r
          );
        })
      : i.documentElement.currentStyle &&
        (Dt = function (e, t) {
          var n,
            r,
            i = e.currentStyle && e.currentStyle[t],
            s = e.style;
          return (
            i == null && s && s[t] && (i = s[t]),
            Ut.test(i) &&
              !Ft.test(t) &&
              ((n = s.left),
              (r = e.runtimeStyle && e.runtimeStyle.left),
              r && (e.runtimeStyle.left = e.currentStyle.left),
              (s.left = t === "fontSize" ? "1em" : i),
              (i = s.pixelLeft + "px"),
              (s.left = n),
              r && (e.runtimeStyle.left = r)),
            i === "" ? "auto" : i
          );
        }),
    v.each(["height", "width"], function (e, t) {
      v.cssHooks[t] = {
        get: function (e, n, r) {
          if (n)
            return e.offsetWidth === 0 && It.test(Dt(e, "display"))
              ? v.swap(e, Xt, function () {
                  return tn(e, t, r);
                })
              : tn(e, t, r);
        },
        set: function (e, n, r) {
          return Zt(
            e,
            n,
            r
              ? en(
                  e,
                  t,
                  r,
                  v.support.boxSizing && v.css(e, "boxSizing") === "border-box"
                )
              : 0
          );
        },
      };
    }),
    v.support.opacity ||
      (v.cssHooks.opacity = {
        get: function (e, t) {
          return jt.test(
            (t && e.currentStyle ? e.currentStyle.filter : e.style.filter) || ""
          )
            ? 0.01 * parseFloat(RegExp.$1) + ""
            : t
            ? "1"
            : "";
        },
        set: function (e, t) {
          var n = e.style,
            r = e.currentStyle,
            i = v.isNumeric(t) ? "alpha(opacity=" + t * 100 + ")" : "",
            s = (r && r.filter) || n.filter || "";
          n.zoom = 1;
          if (t >= 1 && v.trim(s.replace(Bt, "")) === "" && n.removeAttribute) {
            n.removeAttribute("filter");
            if (r && !r.filter) return;
          }
          n.filter = Bt.test(s) ? s.replace(Bt, i) : s + " " + i;
        },
      }),
    v(function () {
      v.support.reliableMarginRight ||
        (v.cssHooks.marginRight = {
          get: function (e, t) {
            return v.swap(e, { display: "inline-block" }, function () {
              if (t) return Dt(e, "marginRight");
            });
          },
        }),
        !v.support.pixelPosition &&
          v.fn.position &&
          v.each(["top", "left"], function (e, t) {
            v.cssHooks[t] = {
              get: function (e, n) {
                if (n) {
                  var r = Dt(e, t);
                  return Ut.test(r) ? v(e).position()[t] + "px" : r;
                }
              },
            };
          });
    }),
    v.expr &&
      v.expr.filters &&
      ((v.expr.filters.hidden = function (e) {
        return (
          (e.offsetWidth === 0 && e.offsetHeight === 0) ||
          (!v.support.reliableHiddenOffsets &&
            ((e.style && e.style.display) || Dt(e, "display")) === "none")
        );
      }),
      (v.expr.filters.visible = function (e) {
        return !v.expr.filters.hidden(e);
      })),
    v.each({ margin: "", padding: "", border: "Width" }, function (e, t) {
      (v.cssHooks[e + t] = {
        expand: function (n) {
          var r,
            i = typeof n == "string" ? n.split(" ") : [n],
            s = {};
          for (r = 0; r < 4; r++) s[e + $t[r] + t] = i[r] || i[r - 2] || i[0];
          return s;
        },
      }),
        qt.test(e) || (v.cssHooks[e + t].set = Zt);
    });
  var rn = /%20/g,
    sn = /\[\]$/,
    on = /\r?\n/g,
    un =
      /^(?:color|date|datetime|datetime-local|email|hidden|month|number|password|range|search|tel|text|time|url|week)$/i,
    an = /^(?:select|textarea)/i;
  v.fn.extend({
    serialize: function () {
      return v.param(this.serializeArray());
    },
    serializeArray: function () {
      return this.map(function () {
        return this.elements ? v.makeArray(this.elements) : this;
      })
        .filter(function () {
          return (
            this.name &&
            !this.disabled &&
            (this.checked || an.test(this.nodeName) || un.test(this.type))
          );
        })
        .map(function (e, t) {
          var n = v(this).val();
          return n == null
            ? null
            : v.isArray(n)
            ? v.map(n, function (e, n) {
                return { name: t.name, value: e.replace(on, "\r\n") };
              })
            : { name: t.name, value: n.replace(on, "\r\n") };
        })
        .get();
    },
  }),
    (v.param = function (e, n) {
      var r,
        i = [],
        s = function (e, t) {
          (t = v.isFunction(t) ? t() : t == null ? "" : t),
            (i[i.length] = encodeURIComponent(e) + "=" + encodeURIComponent(t));
        };
      n === t && (n = v.ajaxSettings && v.ajaxSettings.traditional);
      if (v.isArray(e) || (e.jquery && !v.isPlainObject(e)))
        v.each(e, function () {
          s(this.name, this.value);
        });
      else for (r in e) fn(r, e[r], n, s);
      return i.join("&").replace(rn, "+");
    });
  var ln,
    cn,
    hn = /#.*$/,
    pn = /^(.*?):[ \t]*([^\r\n]*)\r?$/gm,
    dn = /^(?:about|app|app\-storage|.+\-extension|file|res|widget):$/,
    vn = /^(?:GET|HEAD)$/,
    mn = /^\/\//,
    gn = /\?/,
    yn = /<script\b[^<]*(?:(?!<\/script>)<[^<]*)*<\/script>/gi,
    bn = /([?&])_=[^&]*/,
    wn = /^([\w\+\.\-]+:)(?:\/\/([^\/?#:]*)(?::(\d+)|)|)/,
    En = v.fn.load,
    Sn = {},
    xn = {},
    Tn = ["*/"] + ["*"];
  try {
    cn = s.href;
  } catch (Nn) {
    (cn = i.createElement("a")), (cn.href = ""), (cn = cn.href);
  }
  (ln = wn.exec(cn.toLowerCase()) || []),
    (v.fn.load = function (e, n, r) {
      if (typeof e != "string" && En) return En.apply(this, arguments);
      if (!this.length) return this;
      var i,
        s,
        o,
        u = this,
        a = e.indexOf(" ");
      return (
        a >= 0 && ((i = e.slice(a, e.length)), (e = e.slice(0, a))),
        v.isFunction(n)
          ? ((r = n), (n = t))
          : n && typeof n == "object" && (s = "POST"),
        v
          .ajax({
            url: e,
            type: s,
            dataType: "html",
            data: n,
            complete: function (e, t) {
              r && u.each(r, o || [e.responseText, t, e]);
            },
          })
          .done(function (e) {
            (o = arguments),
              u.html(i ? v("<div>").append(e.replace(yn, "")).find(i) : e);
          }),
        this
      );
    }),
    v.each(
      "ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend".split(
        " "
      ),
      function (e, t) {
        v.fn[t] = function (e) {
          return this.on(t, e);
        };
      }
    ),
    v.each(["get", "post"], function (e, n) {
      v[n] = function (e, r, i, s) {
        return (
          v.isFunction(r) && ((s = s || i), (i = r), (r = t)),
          v.ajax({ type: n, url: e, data: r, success: i, dataType: s })
        );
      };
    }),
    v.extend({
      getScript: function (e, n) {
        return v.get(e, t, n, "script");
      },
      getJSON: function (e, t, n) {
        return v.get(e, t, n, "json");
      },
      ajaxSetup: function (e, t) {
        return (
          t ? Ln(e, v.ajaxSettings) : ((t = e), (e = v.ajaxSettings)),
          Ln(e, t),
          e
        );
      },
      ajaxSettings: {
        url: cn,
        isLocal: dn.test(ln[1]),
        global: !0,
        type: "GET",
        contentType: "application/x-www-form-urlencoded; charset=UTF-8",
        processData: !0,
        async: !0,
        accepts: {
          xml: "application/xml, text/xml",
          html: "text/html",
          text: "text/plain",
          json: "application/json, text/javascript",
          "*": Tn,
        },
        contents: { xml: /xml/, html: /html/, json: /json/ },
        responseFields: { xml: "responseXML", text: "responseText" },
        converters: {
          "* text": e.String,
          "text html": !0,
          "text json": v.parseJSON,
          "text xml": v.parseXML,
        },
        flatOptions: { context: !0, url: !0 },
      },
      ajaxPrefilter: Cn(Sn),
      ajaxTransport: Cn(xn),
      ajax: function (e, n) {
        function T(e, n, s, a) {
          var l,
            y,
            b,
            w,
            S,
            T = n;
          if (E === 2) return;
          (E = 2),
            u && clearTimeout(u),
            (o = t),
            (i = a || ""),
            (x.readyState = e > 0 ? 4 : 0),
            s && (w = An(c, x, s));
          if ((e >= 200 && e < 300) || e === 304)
            c.ifModified &&
              ((S = x.getResponseHeader("Last-Modified")),
              S && (v.lastModified[r] = S),
              (S = x.getResponseHeader("Etag")),
              S && (v.etag[r] = S)),
              e === 304
                ? ((T = "notmodified"), (l = !0))
                : ((l = On(c, w)),
                  (T = l.state),
                  (y = l.data),
                  (b = l.error),
                  (l = !b));
          else {
            b = T;
            if (!T || e) (T = "error"), e < 0 && (e = 0);
          }
          (x.status = e),
            (x.statusText = (n || T) + ""),
            l ? d.resolveWith(h, [y, T, x]) : d.rejectWith(h, [x, T, b]),
            x.statusCode(g),
            (g = t),
            f &&
              p.trigger("ajax" + (l ? "Success" : "Error"), [x, c, l ? y : b]),
            m.fireWith(h, [x, T]),
            f &&
              (p.trigger("ajaxComplete", [x, c]),
              --v.active || v.event.trigger("ajaxStop"));
        }
        typeof e == "object" && ((n = e), (e = t)), (n = n || {});
        var r,
          i,
          s,
          o,
          u,
          a,
          f,
          l,
          c = v.ajaxSetup({}, n),
          h = c.context || c,
          p = h !== c && (h.nodeType || h instanceof v) ? v(h) : v.event,
          d = v.Deferred(),
          m = v.Callbacks("once memory"),
          g = c.statusCode || {},
          b = {},
          w = {},
          E = 0,
          S = "canceled",
          x = {
            readyState: 0,
            setRequestHeader: function (e, t) {
              if (!E) {
                var n = e.toLowerCase();
                (e = w[n] = w[n] || e), (b[e] = t);
              }
              return this;
            },
            getAllResponseHeaders: function () {
              return E === 2 ? i : null;
            },
            getResponseHeader: function (e) {
              var n;
              if (E === 2) {
                if (!s) {
                  s = {};
                  while ((n = pn.exec(i))) s[n[1].toLowerCase()] = n[2];
                }
                n = s[e.toLowerCase()];
              }
              return n === t ? null : n;
            },
            overrideMimeType: function (e) {
              return E || (c.mimeType = e), this;
            },
            abort: function (e) {
              return (e = e || S), o && o.abort(e), T(0, e), this;
            },
          };
        d.promise(x),
          (x.success = x.done),
          (x.error = x.fail),
          (x.complete = m.add),
          (x.statusCode = function (e) {
            if (e) {
              var t;
              if (E < 2) for (t in e) g[t] = [g[t], e[t]];
              else (t = e[x.status]), x.always(t);
            }
            return this;
          }),
          (c.url = ((e || c.url) + "")
            .replace(hn, "")
            .replace(mn, ln[1] + "//")),
          (c.dataTypes = v
            .trim(c.dataType || "*")
            .toLowerCase()
            .split(y)),
          c.crossDomain == null &&
            ((a = wn.exec(c.url.toLowerCase())),
            (c.crossDomain = !(
              !a ||
              (a[1] === ln[1] &&
                a[2] === ln[2] &&
                (a[3] || (a[1] === "http:" ? 80 : 443)) ==
                  (ln[3] || (ln[1] === "http:" ? 80 : 443)))
            ))),
          c.data &&
            c.processData &&
            typeof c.data != "string" &&
            (c.data = v.param(c.data, c.traditional)),
          kn(Sn, c, n, x);
        if (E === 2) return x;
        (f = c.global),
          (c.type = c.type.toUpperCase()),
          (c.hasContent = !vn.test(c.type)),
          f && v.active++ === 0 && v.event.trigger("ajaxStart");
        if (!c.hasContent) {
          c.data &&
            ((c.url += (gn.test(c.url) ? "&" : "?") + c.data), delete c.data),
            (r = c.url);
          if (c.cache === !1) {
            var N = v.now(),
              C = c.url.replace(bn, "$1_=" + N);
            c.url =
              C + (C === c.url ? (gn.test(c.url) ? "&" : "?") + "_=" + N : "");
          }
        }
        ((c.data && c.hasContent && c.contentType !== !1) || n.contentType) &&
          x.setRequestHeader("Content-Type", c.contentType),
          c.ifModified &&
            ((r = r || c.url),
            v.lastModified[r] &&
              x.setRequestHeader("If-Modified-Since", v.lastModified[r]),
            v.etag[r] && x.setRequestHeader("If-None-Match", v.etag[r])),
          x.setRequestHeader(
            "Accept",
            c.dataTypes[0] && c.accepts[c.dataTypes[0]]
              ? c.accepts[c.dataTypes[0]] +
                  (c.dataTypes[0] !== "*" ? ", " + Tn + "; q=0.01" : "")
              : c.accepts["*"]
          );
        for (l in c.headers) x.setRequestHeader(l, c.headers[l]);
        if (!c.beforeSend || (c.beforeSend.call(h, x, c) !== !1 && E !== 2)) {
          S = "abort";
          for (l in { success: 1, error: 1, complete: 1 }) x[l](c[l]);
          o = kn(xn, c, n, x);
          if (!o) T(-1, "No Transport");
          else {
            (x.readyState = 1),
              f && p.trigger("ajaxSend", [x, c]),
              c.async &&
                c.timeout > 0 &&
                (u = setTimeout(function () {
                  x.abort("timeout");
                }, c.timeout));
            try {
              (E = 1), o.send(b, T);
            } catch (k) {
              if (!(E < 2)) throw k;
              T(-1, k);
            }
          }
          return x;
        }
        return x.abort();
      },
      active: 0,
      lastModified: {},
      etag: {},
    });
  var Mn = [],
    _n = /\?/,
    Dn = /(=)\?(?=&|$)|\?\?/,
    Pn = v.now();
  v.ajaxSetup({
    jsonp: "callback",
    jsonpCallback: function () {
      var e = Mn.pop() || v.expando + "_" + Pn++;
      return (this[e] = !0), e;
    },
  }),
    v.ajaxPrefilter("json jsonp", function (n, r, i) {
      var s,
        o,
        u,
        a = n.data,
        f = n.url,
        l = n.jsonp !== !1,
        c = l && Dn.test(f),
        h =
          l &&
          !c &&
          typeof a == "string" &&
          !(n.contentType || "").indexOf("application/x-www-form-urlencoded") &&
          Dn.test(a);
      if (n.dataTypes[0] === "jsonp" || c || h)
        return (
          (s = n.jsonpCallback =
            v.isFunction(n.jsonpCallback)
              ? n.jsonpCallback()
              : n.jsonpCallback),
          (o = e[s]),
          c
            ? (n.url = f.replace(Dn, "$1" + s))
            : h
            ? (n.data = a.replace(Dn, "$1" + s))
            : l && (n.url += (_n.test(f) ? "&" : "?") + n.jsonp + "=" + s),
          (n.converters["script json"] = function () {
            return u || v.error(s + " was not called"), u[0];
          }),
          (n.dataTypes[0] = "json"),
          (e[s] = function () {
            u = arguments;
          }),
          i.always(function () {
            (e[s] = o),
              n[s] && ((n.jsonpCallback = r.jsonpCallback), Mn.push(s)),
              u && v.isFunction(o) && o(u[0]),
              (u = o = t);
          }),
          "script"
        );
    }),
    v.ajaxSetup({
      accepts: {
        script:
          "text/javascript, application/javascript, application/ecmascript, application/x-ecmascript",
      },
      contents: { script: /javascript|ecmascript/ },
      converters: {
        "text script": function (e) {
          return v.globalEval(e), e;
        },
      },
    }),
    v.ajaxPrefilter("script", function (e) {
      e.cache === t && (e.cache = !1),
        e.crossDomain && ((e.type = "GET"), (e.global = !1));
    }),
    v.ajaxTransport("script", function (e) {
      if (e.crossDomain) {
        var n,
          r = i.head || i.getElementsByTagName("head")[0] || i.documentElement;
        return {
          send: function (s, o) {
            (n = i.createElement("script")),
              (n.async = "async"),
              e.scriptCharset && (n.charset = e.scriptCharset),
              (n.src = e.url),
              (n.onload = n.onreadystatechange =
                function (e, i) {
                  if (
                    i ||
                    !n.readyState ||
                    /loaded|complete/.test(n.readyState)
                  )
                    (n.onload = n.onreadystatechange = null),
                      r && n.parentNode && r.removeChild(n),
                      (n = t),
                      i || o(200, "success");
                }),
              r.insertBefore(n, r.firstChild);
          },
          abort: function () {
            n && n.onload(0, 1);
          },
        };
      }
    });
  var Hn,
    Bn = e.ActiveXObject
      ? function () {
          for (var e in Hn) Hn[e](0, 1);
        }
      : !1,
    jn = 0;
  (v.ajaxSettings.xhr = e.ActiveXObject
    ? function () {
        return (!this.isLocal && Fn()) || In();
      }
    : Fn),
    (function (e) {
      v.extend(v.support, { ajax: !!e, cors: !!e && "withCredentials" in e });
    })(v.ajaxSettings.xhr()),
    v.support.ajax &&
      v.ajaxTransport(function (n) {
        if (!n.crossDomain || v.support.cors) {
          var r;
          return {
            send: function (i, s) {
              var o,
                u,
                a = n.xhr();
              n.username
                ? a.open(n.type, n.url, n.async, n.username, n.password)
                : a.open(n.type, n.url, n.async);
              if (n.xhrFields) for (u in n.xhrFields) a[u] = n.xhrFields[u];
              n.mimeType &&
                a.overrideMimeType &&
                a.overrideMimeType(n.mimeType),
                !n.crossDomain &&
                  !i["X-Requested-With"] &&
                  (i["X-Requested-With"] = "XMLHttpRequest");
              try {
                for (u in i) a.setRequestHeader(u, i[u]);
              } catch (f) {}
              a.send((n.hasContent && n.data) || null),
                (r = function (e, i) {
                  var u, f, l, c, h;
                  try {
                    if (r && (i || a.readyState === 4)) {
                      (r = t),
                        o &&
                          ((a.onreadystatechange = v.noop), Bn && delete Hn[o]);
                      if (i) a.readyState !== 4 && a.abort();
                      else {
                        (u = a.status),
                          (l = a.getAllResponseHeaders()),
                          (c = {}),
                          (h = a.responseXML),
                          h && h.documentElement && (c.xml = h);
                        try {
                          c.text = a.responseText;
                        } catch (p) {}
                        try {
                          f = a.statusText;
                        } catch (p) {
                          f = "";
                        }
                        !u && n.isLocal && !n.crossDomain
                          ? (u = c.text ? 200 : 404)
                          : u === 1223 && (u = 204);
                      }
                    }
                  } catch (d) {
                    i || s(-1, d);
                  }
                  c && s(u, f, c, l);
                }),
                n.async
                  ? a.readyState === 4
                    ? setTimeout(r, 0)
                    : ((o = ++jn),
                      Bn && (Hn || ((Hn = {}), v(e).unload(Bn)), (Hn[o] = r)),
                      (a.onreadystatechange = r))
                  : r();
            },
            abort: function () {
              r && r(0, 1);
            },
          };
        }
      });
  var qn,
    Rn,
    Un = /^(?:toggle|show|hide)$/,
    zn = new RegExp("^(?:([-+])=|)(" + m + ")([a-z%]*)$", "i"),
    Wn = /queueHooks$/,
    Xn = [Gn],
    Vn = {
      "*": [
        function (e, t) {
          var n,
            r,
            i = this.createTween(e, t),
            s = zn.exec(t),
            o = i.cur(),
            u = +o || 0,
            a = 1,
            f = 20;
          if (s) {
            (n = +s[2]), (r = s[3] || (v.cssNumber[e] ? "" : "px"));
            if (r !== "px" && u) {
              u = v.css(i.elem, e, !0) || n || 1;
              do (a = a || ".5"), (u /= a), v.style(i.elem, e, u + r);
              while (a !== (a = i.cur() / o) && a !== 1 && --f);
            }
            (i.unit = r),
              (i.start = u),
              (i.end = s[1] ? u + (s[1] + 1) * n : n);
          }
          return i;
        },
      ],
    };
  (v.Animation = v.extend(Kn, {
    tweener: function (e, t) {
      v.isFunction(e) ? ((t = e), (e = ["*"])) : (e = e.split(" "));
      var n,
        r = 0,
        i = e.length;
      for (; r < i; r++) (n = e[r]), (Vn[n] = Vn[n] || []), Vn[n].unshift(t);
    },
    prefilter: function (e, t) {
      t ? Xn.unshift(e) : Xn.push(e);
    },
  })),
    (v.Tween = Yn),
    (Yn.prototype = {
      constructor: Yn,
      init: function (e, t, n, r, i, s) {
        (this.elem = e),
          (this.prop = n),
          (this.easing = i || "swing"),
          (this.options = t),
          (this.start = this.now = this.cur()),
          (this.end = r),
          (this.unit = s || (v.cssNumber[n] ? "" : "px"));
      },
      cur: function () {
        var e = Yn.propHooks[this.prop];
        return e && e.get ? e.get(this) : Yn.propHooks._default.get(this);
      },
      run: function (e) {
        var t,
          n = Yn.propHooks[this.prop];
        return (
          this.options.duration
            ? (this.pos = t =
                v.easing[this.easing](
                  e,
                  this.options.duration * e,
                  0,
                  1,
                  this.options.duration
                ))
            : (this.pos = t = e),
          (this.now = (this.end - this.start) * t + this.start),
          this.options.step &&
            this.options.step.call(this.elem, this.now, this),
          n && n.set ? n.set(this) : Yn.propHooks._default.set(this),
          this
        );
      },
    }),
    (Yn.prototype.init.prototype = Yn.prototype),
    (Yn.propHooks = {
      _default: {
        get: function (e) {
          var t;
          return e.elem[e.prop] == null ||
            (!!e.elem.style && e.elem.style[e.prop] != null)
            ? ((t = v.css(e.elem, e.prop, !1, "")), !t || t === "auto" ? 0 : t)
            : e.elem[e.prop];
        },
        set: function (e) {
          v.fx.step[e.prop]
            ? v.fx.step[e.prop](e)
            : e.elem.style &&
              (e.elem.style[v.cssProps[e.prop]] != null || v.cssHooks[e.prop])
            ? v.style(e.elem, e.prop, e.now + e.unit)
            : (e.elem[e.prop] = e.now);
        },
      },
    }),
    (Yn.propHooks.scrollTop = Yn.propHooks.scrollLeft =
      {
        set: function (e) {
          e.elem.nodeType && e.elem.parentNode && (e.elem[e.prop] = e.now);
        },
      }),
    v.each(["toggle", "show", "hide"], function (e, t) {
      var n = v.fn[t];
      v.fn[t] = function (r, i, s) {
        return r == null ||
          typeof r == "boolean" ||
          (!e && v.isFunction(r) && v.isFunction(i))
          ? n.apply(this, arguments)
          : this.animate(Zn(t, !0), r, i, s);
      };
    }),
    v.fn.extend({
      fadeTo: function (e, t, n, r) {
        return this.filter(Gt)
          .css("opacity", 0)
          .show()
          .end()
          .animate({ opacity: t }, e, n, r);
      },
      animate: function (e, t, n, r) {
        var i = v.isEmptyObject(e),
          s = v.speed(t, n, r),
          o = function () {
            var t = Kn(this, v.extend({}, e), s);
            i && t.stop(!0);
          };
        return i || s.queue === !1 ? this.each(o) : this.queue(s.queue, o);
      },
      stop: function (e, n, r) {
        var i = function (e) {
          var t = e.stop;
          delete e.stop, t(r);
        };
        return (
          typeof e != "string" && ((r = n), (n = e), (e = t)),
          n && e !== !1 && this.queue(e || "fx", []),
          this.each(function () {
            var t = !0,
              n = e != null && e + "queueHooks",
              s = v.timers,
              o = v._data(this);
            if (n) o[n] && o[n].stop && i(o[n]);
            else for (n in o) o[n] && o[n].stop && Wn.test(n) && i(o[n]);
            for (n = s.length; n--; )
              s[n].elem === this &&
                (e == null || s[n].queue === e) &&
                (s[n].anim.stop(r), (t = !1), s.splice(n, 1));
            (t || !r) && v.dequeue(this, e);
          })
        );
      },
    }),
    v.each(
      {
        slideDown: Zn("show"),
        slideUp: Zn("hide"),
        slideToggle: Zn("toggle"),
        fadeIn: { opacity: "show" },
        fadeOut: { opacity: "hide" },
        fadeToggle: { opacity: "toggle" },
      },
      function (e, t) {
        v.fn[e] = function (e, n, r) {
          return this.animate(t, e, n, r);
        };
      }
    ),
    (v.speed = function (e, t, n) {
      var r =
        e && typeof e == "object"
          ? v.extend({}, e)
          : {
              complete: n || (!n && t) || (v.isFunction(e) && e),
              duration: e,
              easing: (n && t) || (t && !v.isFunction(t) && t),
            };
      r.duration = v.fx.off
        ? 0
        : typeof r.duration == "number"
        ? r.duration
        : r.duration in v.fx.speeds
        ? v.fx.speeds[r.duration]
        : v.fx.speeds._default;
      if (r.queue == null || r.queue === !0) r.queue = "fx";
      return (
        (r.old = r.complete),
        (r.complete = function () {
          v.isFunction(r.old) && r.old.call(this),
            r.queue && v.dequeue(this, r.queue);
        }),
        r
      );
    }),
    (v.easing = {
      linear: function (e) {
        return e;
      },
      swing: function (e) {
        return 0.5 - Math.cos(e * Math.PI) / 2;
      },
    }),
    (v.timers = []),
    (v.fx = Yn.prototype.init),
    (v.fx.tick = function () {
      var e,
        n = v.timers,
        r = 0;
      qn = v.now();
      for (; r < n.length; r++)
        (e = n[r]), !e() && n[r] === e && n.splice(r--, 1);
      n.length || v.fx.stop(), (qn = t);
    }),
    (v.fx.timer = function (e) {
      e() &&
        v.timers.push(e) &&
        !Rn &&
        (Rn = setInterval(v.fx.tick, v.fx.interval));
    }),
    (v.fx.interval = 13),
    (v.fx.stop = function () {
      clearInterval(Rn), (Rn = null);
    }),
    (v.fx.speeds = { slow: 600, fast: 200, _default: 400 }),
    (v.fx.step = {}),
    v.expr &&
      v.expr.filters &&
      (v.expr.filters.animated = function (e) {
        return v.grep(v.timers, function (t) {
          return e === t.elem;
        }).length;
      });
  var er = /^(?:body|html)$/i;
  (v.fn.offset = function (e) {
    if (arguments.length)
      return e === t
        ? this
        : this.each(function (t) {
            v.offset.setOffset(this, e, t);
          });
    var n,
      r,
      i,
      s,
      o,
      u,
      a,
      f = { top: 0, left: 0 },
      l = this[0],
      c = l && l.ownerDocument;
    if (!c) return;
    return (r = c.body) === l
      ? v.offset.bodyOffset(l)
      : ((n = c.documentElement),
        v.contains(n, l)
          ? (typeof l.getBoundingClientRect != "undefined" &&
              (f = l.getBoundingClientRect()),
            (i = tr(c)),
            (s = n.clientTop || r.clientTop || 0),
            (o = n.clientLeft || r.clientLeft || 0),
            (u = i.pageYOffset || n.scrollTop),
            (a = i.pageXOffset || n.scrollLeft),
            { top: f.top + u - s, left: f.left + a - o })
          : f);
  }),
    (v.offset = {
      bodyOffset: function (e) {
        var t = e.offsetTop,
          n = e.offsetLeft;
        return (
          v.support.doesNotIncludeMarginInBodyOffset &&
            ((t += parseFloat(v.css(e, "marginTop")) || 0),
            (n += parseFloat(v.css(e, "marginLeft")) || 0)),
          { top: t, left: n }
        );
      },
      setOffset: function (e, t, n) {
        var r = v.css(e, "position");
        r === "static" && (e.style.position = "relative");
        var i = v(e),
          s = i.offset(),
          o = v.css(e, "top"),
          u = v.css(e, "left"),
          a =
            (r === "absolute" || r === "fixed") &&
            v.inArray("auto", [o, u]) > -1,
          f = {},
          l = {},
          c,
          h;
        a
          ? ((l = i.position()), (c = l.top), (h = l.left))
          : ((c = parseFloat(o) || 0), (h = parseFloat(u) || 0)),
          v.isFunction(t) && (t = t.call(e, n, s)),
          t.top != null && (f.top = t.top - s.top + c),
          t.left != null && (f.left = t.left - s.left + h),
          "using" in t ? t.using.call(e, f) : i.css(f);
      },
    }),
    v.fn.extend({
      position: function () {
        if (!this[0]) return;
        var e = this[0],
          t = this.offsetParent(),
          n = this.offset(),
          r = er.test(t[0].nodeName) ? { top: 0, left: 0 } : t.offset();
        return (
          (n.top -= parseFloat(v.css(e, "marginTop")) || 0),
          (n.left -= parseFloat(v.css(e, "marginLeft")) || 0),
          (r.top += parseFloat(v.css(t[0], "borderTopWidth")) || 0),
          (r.left += parseFloat(v.css(t[0], "borderLeftWidth")) || 0),
          { top: n.top - r.top, left: n.left - r.left }
        );
      },
      offsetParent: function () {
        return this.map(function () {
          var e = this.offsetParent || i.body;
          while (e && !er.test(e.nodeName) && v.css(e, "position") === "static")
            e = e.offsetParent;
          return e || i.body;
        });
      },
    }),
    v.each(
      { scrollLeft: "pageXOffset", scrollTop: "pageYOffset" },
      function (e, n) {
        var r = /Y/.test(n);
        v.fn[e] = function (i) {
          return v.access(
            this,
            function (e, i, s) {
              var o = tr(e);
              if (s === t)
                return o
                  ? n in o
                    ? o[n]
                    : o.document.documentElement[i]
                  : e[i];
              o
                ? o.scrollTo(
                    r ? v(o).scrollLeft() : s,
                    r ? s : v(o).scrollTop()
                  )
                : (e[i] = s);
            },
            e,
            i,
            arguments.length,
            null
          );
        };
      }
    ),
    v.each({ Height: "height", Width: "width" }, function (e, n) {
      v.each(
        { padding: "inner" + e, content: n, "": "outer" + e },
        function (r, i) {
          v.fn[i] = function (i, s) {
            var o = arguments.length && (r || typeof i != "boolean"),
              u = r || (i === !0 || s === !0 ? "margin" : "border");
            return v.access(
              this,
              function (n, r, i) {
                var s;
                return v.isWindow(n)
                  ? n.document.documentElement["client" + e]
                  : n.nodeType === 9
                  ? ((s = n.documentElement),
                    Math.max(
                      n.body["scroll" + e],
                      s["scroll" + e],
                      n.body["offset" + e],
                      s["offset" + e],
                      s["client" + e]
                    ))
                  : i === t
                  ? v.css(n, r, i, u)
                  : v.style(n, r, i, u);
              },
              n,
              o ? i : t,
              o,
              null
            );
          };
        }
      );
    }),
    (e.jQuery = e.$ = v),
    typeof define == "function" &&
      define.amd &&
      define.amd.jQuery &&
      define("jquery", [], function () {
        return v;
      });
})(window);

  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

耀南.

你的鼓励将是我最最最最大的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值