Skip to content

Instantly share code, notes, and snippets.

@cdata
Created May 20, 2014 04:49
Show Gist options
  • Select an option

  • Save cdata/d5147771a94c4f5ae766 to your computer and use it in GitHub Desktop.

Select an option

Save cdata/d5147771a94c4f5ae766 to your computer and use it in GitHub Desktop.
This file has been truncated, but you can view the full file.
! function (t) {
var e = window.Bugsnag;
window.Bugsnag = t(window, document, navigator, e)
}(function (t, e, n, r) {
function o(t, e) {
try {
if ("function" != typeof t) return t;
if (!t.bugsnag) {
var n = s();
t.bugsnag = function (r) {
if (e && e.eventHandler && (x = r), k = n, !E) {
var o = t.apply(this, arguments);
return k = null, o
}
try {
return t.apply(this, arguments)
} catch (i) {
throw h("autoNotify", !0) && (C.notifyException(i, null, null, "error"), _()), i
} finally {
k = null
}
}, t.bugsnag.bugsnag = t.bugsnag
}
return t.bugsnag
} catch (r) {
return t
}
}
function i() {
R = !1
}
function s() {
var t = e.currentScript || k;
if (!t && R) {
var n = e.getElementsByTagName("script");
t = n[n.length - 1]
}
return t
}
function a(t) {
var e = s();
e && (t.script = {
src: e.src,
content: h("inlineScript", !0) ? e.innerHTML : ""
})
}
function u(e) {
var n = t.console;
void 0 !== n && void 0 !== n.log && n.log("[Bugsnag] " + e)
}
function l(t, e) {
var n = [];
for (var r in t)
if (t.hasOwnProperty(r) && null != r && null != t[r]) {
var o = e ? e + "[" + r + "]" : r,
i = t[r];
n.push("object" == typeof i ? l(i, o) : encodeURIComponent(o) + "=" + encodeURIComponent(i))
}
return n.join("&")
}
function c(t, e) {
if (null == e) return t;
t = t || {};
for (var n in e)
if (e.hasOwnProperty(n)) try {
t[n] = e[n].constructor === Object ? c(t[n], e[n]) : e[n]
} catch (r) {
t[n] = e[n]
}
return t
}
function p(t, e) {
if ("undefined" != typeof BUGSNAG_TESTING && C.testRequest) C.testRequest(t, e);
else {
var n = new Image;
n.src = t + "?" + l(e) + "&ct=img&cb=" + (new Date).getTime()
}
}
function d(t) {
for (var e = {}, n = /^data\-([\w\-]+)$/, r = t.attributes, o = 0; o < r.length; o++) {
var i = r[o];
if (n.test(i.nodeName)) {
var s = i.nodeName.match(n)[1];
e[s] = i.nodeValue
}
}
return e
}
function h(t, e) {
M = M || d(D);
var n = void 0 !== C[t] ? C[t] : M[t.toLowerCase()];
return "false" === n && (n = !1), void 0 !== n ? n : e
}
function f(t) {
return null != t && t.match(N) ? !0 : (u("Invalid API key '" + t + "'"), !1)
}
function m(e, r) {
var o = h("apiKey");
if (f(o) && S) {
S -= 1;
var i = h("releaseStage"),
s = h("notifyReleaseStages");
if (s) {
for (var a = !1, u = 0; u < s.length; u++)
if (i === s[u]) {
a = !0;
break
}
if (!a) return
}
var l = [e.name, e.message, e.stacktrace].join("|");
if (l !== T) {
T = l, x && (r = r || {}, r["Last Event"] = y(x));
var d = c(c({}, h("metaData")), r),
m = C.beforeNotify;
if ("function" == typeof m) {
var g = m(e, d);
if (g === !1) return
}
var v = t.location;
p(h("endpoint") || A, {
notifierVersion: I,
apiKey: o,
projectRoot: h("projectRoot") || v.protocol + "//" + v.host,
context: h("context") || v.pathname,
userId: h("userId"),
user: h("user"),
metaData: d,
releaseStage: i,
appVersion: h("appVersion"),
url: t.location.href,
userAgent: n.userAgent,
language: n.language || n.userLanguage,
severity: e.severity,
name: e.name,
message: e.message,
stacktrace: e.stacktrace,
file: e.file,
lineNumber: e.lineNumber,
columnNumber: e.columnNumber,
payloadVersion: "2"
})
}
}
}
function g() {
var t, e = 10,
n = "[anonymous]";
try {
throw new Error("")
} catch (r) {
t = v(r)
}
if (!t) {
var o = [];
try {
for (var i = arguments.callee.caller.caller; i && o.length < e;) {
var s = O.test(i.toString()) ? RegExp.$1 || n : n;
o.push(s), i = i.caller
}
} catch (a) {
u(a)
}
t = o.join("\n")
}
return "<generated>\n" + t
}
function v(t) {
return t.stack || t.backtrace || t.stacktrace
}
function y(t) {
var e = {
millisecondsAgo: new Date - t.timeStamp,
type: t.type,
which: t.which,
target: w(t.target)
};
return e
}
function w(t) {
if (t) {
var e = t.attributes;
if (e) {
for (var n = "<" + t.nodeName.toLowerCase(), r = 0; r < e.length; r++) e[r].value && "null" != e[r].value.toString() && (n += " " + e[r].name + '="' + e[r].value + '"');
return n + ">"
}
return t.nodeName
}
}
function _() {
P += 1, t.setTimeout(function () {
P -= 1
})
}
function b(e, n, r) {
var o = e[n],
i = r(o);
e[n] = i, "undefined" != typeof BUGSNAG_TESTING && t.undo && t.undo.push(function () {
e[n] = o
})
}
var x, k, T, C = {},
E = !0,
P = 0,
S = 10;
C.noConflict = function () {
return t.Bugsnag = r, C
}, C.notifyException = function (t, e, n, r) {
e && "string" != typeof e && (n = e), n || (n = {}), a(n), m({
name: e || t.name,
message: t.message || t.description,
stacktrace: v(t) || g(),
file: t.fileName || t.sourceURL,
lineNumber: t.lineNumber || t.line,
columnNumber: t.columnNumber ? t.columnNumber + 1 : void 0,
severity: r || "error"
}, n)
}, C.notify = function (t, e, n) {
m({
name: t,
message: e,
stacktrace: g(),
severity: "warning"
}, n)
};
var R = "complete" !== e.readyState;
e.addEventListener ? (e.addEventListener("DOMContentLoaded", i, !0), t.addEventListener("load", i, !0)) : t.attachEvent("onload", i);
var M, N = /^[0-9a-f]{32}$/i,
O = /function\s*([\w\-$]+)?\s*\(/i,
F = "https://notify.bugsnag.com/",
A = F + "js",
I = "2.3.3",
$ = e.getElementsByTagName("script"),
D = $[$.length - 1];
if (t.atob) {
if (t.ErrorEvent) try {
0 === new t.ErrorEvent("test").colno && (E = !1)
} catch (L) {}
} else E = !1; if (h("autoNotify", !0)) {
b(t, "onerror", function (e) {
return "undefined" != typeof BUGSNAG_TESTING && (C._onerror = e),
function (n, r, o, i, s) {
var u = h("autoNotify", !0),
l = {};
!i && t.event && (i = t.event.errorCharacter), a(l), k = null, u && !P && m({
name: s && s.name || "window.onerror",
message: n,
file: r,
lineNumber: o,
columnNumber: i,
stacktrace: s && v(s) || g(),
severity: "error"
}, l), "undefined" != typeof BUGSNAG_TESTING && (e = C._onerror), e && e(n, r, o, i, s)
}
});
var U = function (t) {
return function (e, n) {
if ("function" == typeof e) {
e = o(e);
var r = Array.prototype.slice.call(arguments, 2);
return t(function () {
e.apply(this, r)
}, n)
}
return t(e, n)
}
};
b(t, "setTimeout", U), b(t, "setInterval", U), t.requestAnimationFrame && b(t, "requestAnimationFrame", U);
var H = function (t) {
return function (e, n, r, i) {
return n && n.handleEvent && (n.handleEvent = o(n.handleEvent, {
eventHandler: !0
})), t.call(this, e, o(n, {
eventHandler: !0
}), r, i)
}
};
"EventTarget Window Node ApplicationCache AudioTrackList ChannelMergerNode CryptoOperation EventSource FileReader HTMLUnknownElement IDBDatabase IDBRequest IDBTransaction KeyOperation MediaController MessagePort ModalWindow Notification SVGElementInstance Screen TextTrack TextTrackCue TextTrackList WebSocket WebSocketWorker Worker XMLHttpRequest XMLHttpRequestEventTarget XMLHttpRequestUpload".replace(/\w+/g, function (e) {
var n = t[e] && t[e].prototype;
n && n.hasOwnProperty && n.hasOwnProperty("addEventListener") && (b(n, "addEventListener", H), b(n, "removeEventListener", H))
})
}
return C
}); /*! Socket.IO.js build:0.9.11, development. Copyright(c) 2011 LearnBoost <dev@learnboost.com> MIT Licensed */
var io = "undefined" == typeof module ? {} : module.exports;
! function () {
/**
* socket.io
* Copyright(c) 2011 LearnBoost <dev@learnboost.com>
* MIT Licensed
*/
! function (t, e) {
var n = t;
n.version = "0.9.11", n.protocol = 1, n.transports = [], n.j = [], n.sockets = {}, n.connect = function (t, r) {
var o, i, s = n.util.parseUri(t);
e && e.location && (s.protocol = s.protocol || e.location.protocol.slice(0, -1), s.host = s.host || (e.document ? e.document.domain : e.location.hostname), s.port = s.port || e.location.port), o = n.util.uniqueUri(s);
var a = {
host: s.host,
secure: "https" == s.protocol,
port: s.port || ("https" == s.protocol ? 443 : 80),
query: s.query || ""
};
return n.util.merge(a, r), (a["force new connection"] || !n.sockets[o]) && (i = new n.Socket(a)), !a["force new connection"] && i && (n.sockets[o] = i), i = i || n.sockets[o], i.of(s.path.length > 1 ? s.path : "")
}
}("object" == typeof module ? module.exports : this.io = {}, this),
/**
* socket.io
* Copyright(c) 2011 LearnBoost <dev@learnboost.com>
* MIT Licensed
*/
function (t, e) {
var n = t.util = {},
r = /^(?:(?![^:@]+:[^:@\/]*@)([^:\/?#.]+):)?(?:\/\/)?((?:(([^:@]*)(?::([^:@]*))?)?@)?([^:\/?#]*)(?::(\d*))?)(((\/(?:[^?#](?![^?#\/]*\.[^?#\/.]+(?:[?#]|$)))*\/?)?([^?#\/]*))(?:\?([^#]*))?(?:#(.*))?)/,
o = ["source", "protocol", "authority", "userInfo", "user", "password", "host", "port", "relative", "path", "directory", "file", "query", "anchor"];
n.parseUri = function (t) {
for (var e = r.exec(t || ""), n = {}, i = 14; i--;) n[o[i]] = e[i] || "";
return n
}, n.uniqueUri = function (t) {
var n = t.protocol,
r = t.host,
o = t.port;
return "document" in e ? (r = r || document.domain, o = o || ("https" == n && "https:" !== document.location.protocol ? 443 : document.location.port)) : (r = r || "localhost", o || "https" != n || (o = 443)), (n || "http") + "://" + r + ":" + (o || 80)
}, n.query = function (t, e) {
var r = n.chunkQuery(t || ""),
o = [];
n.merge(r, n.chunkQuery(e || ""));
for (var i in r) r.hasOwnProperty(i) && o.push(i + "=" + r[i]);
return o.length ? "?" + o.join("&") : ""
}, n.chunkQuery = function (t) {
for (var e, n = {}, r = t.split("&"), o = 0, i = r.length; i > o; ++o) e = r[o].split("="), e[0] && (n[e[0]] = e[1]);
return n
};
var i = !1;
n.load = function (t) {
return "document" in e && "complete" === document.readyState || i ? t() : void n.on(e, "load", t, !1)
}, n.on = function (t, e, n, r) {
t.attachEvent ? t.attachEvent("on" + e, n) : t.addEventListener && t.addEventListener(e, n, r)
}, n.request = function (t) {
if (t && "undefined" != typeof XDomainRequest && !n.ua.hasCORS) return new XDomainRequest;
if ("undefined" != typeof XMLHttpRequest && (!t || n.ua.hasCORS)) return new XMLHttpRequest;
if (!t) try {
return new(window[["Active"].concat("Object").join("X")])("Microsoft.XMLHTTP")
} catch (e) {}
return null
}, "undefined" != typeof window && n.load(function () {
i = !0
}), n.defer = function (t) {
return n.ua.webkit && "undefined" == typeof importScripts ? void n.load(function () {
setTimeout(t, 100)
}) : t()
}, n.merge = function (t, e, r, o) {
var i, s = o || [],
a = "undefined" == typeof r ? 2 : r;
for (i in e) e.hasOwnProperty(i) && n.indexOf(s, i) < 0 && ("object" == typeof t[i] && a ? n.merge(t[i], e[i], a - 1, s) : (t[i] = e[i], s.push(e[i])));
return t
}, n.mixin = function (t, e) {
n.merge(t.prototype, e.prototype)
}, n.inherit = function (t, e) {
function n() {}
n.prototype = e.prototype, t.prototype = new n
}, n.isArray = Array.isArray || function (t) {
return "[object Array]" === Object.prototype.toString.call(t)
}, n.intersect = function (t, e) {
for (var r = [], o = t.length > e.length ? t : e, i = t.length > e.length ? e : t, s = 0, a = i.length; a > s; s++)~ n.indexOf(o, i[s]) && r.push(i[s]);
return r
}, n.indexOf = function (t, e, n) {
for (var r = t.length, n = 0 > n ? 0 > n + r ? 0 : n + r : n || 0; r > n && t[n] !== e; n++);
return n >= r ? -1 : n
}, n.toArray = function (t) {
for (var e = [], n = 0, r = t.length; r > n; n++) e.push(t[n]);
return e
}, n.ua = {}, n.ua.hasCORS = "undefined" != typeof XMLHttpRequest && function () {
try {
var t = new XMLHttpRequest
} catch (e) {
return !1
}
return void 0 != t.withCredentials
}(), n.ua.webkit = "undefined" != typeof navigator && /webkit/i.test(navigator.userAgent), n.ua.iDevice = "undefined" != typeof navigator && /iPad|iPhone|iPod/i.test(navigator.userAgent)
}("undefined" != typeof io ? io : module.exports, this),
/**
* socket.io
* Copyright(c) 2011 LearnBoost <dev@learnboost.com>
* MIT Licensed
*/
function (t, e) {
function n() {}
t.EventEmitter = n, n.prototype.on = function (t, n) {
return this.$events || (this.$events = {}), this.$events[t] ? e.util.isArray(this.$events[t]) ? this.$events[t].push(n) : this.$events[t] = [this.$events[t], n] : this.$events[t] = n, this
}, n.prototype.addListener = n.prototype.on, n.prototype.once = function (t, e) {
function n() {
r.removeListener(t, n), e.apply(this, arguments)
}
var r = this;
return n.listener = e, this.on(t, n), this
}, n.prototype.removeListener = function (t, n) {
if (this.$events && this.$events[t]) {
var r = this.$events[t];
if (e.util.isArray(r)) {
for (var o = -1, i = 0, s = r.length; s > i; i++)
if (r[i] === n || r[i].listener && r[i].listener === n) {
o = i;
break
}
if (0 > o) return this;
r.splice(o, 1), r.length || delete this.$events[t]
} else(r === n || r.listener && r.listener === n) && delete this.$events[t]
}
return this
}, n.prototype.removeAllListeners = function (t) {
return void 0 === t ? (this.$events = {}, this) : (this.$events && this.$events[t] && (this.$events[t] = null), this)
}, n.prototype.listeners = function (t) {
return this.$events || (this.$events = {}), this.$events[t] || (this.$events[t] = []), e.util.isArray(this.$events[t]) || (this.$events[t] = [this.$events[t]]), this.$events[t]
}, n.prototype.emit = function (t) {
if (!this.$events) return !1;
var n = this.$events[t];
if (!n) return !1;
var r = Array.prototype.slice.call(arguments, 1);
if ("function" == typeof n) n.apply(this, r);
else {
if (!e.util.isArray(n)) return !1;
for (var o = n.slice(), i = 0, s = o.length; s > i; i++) o[i].apply(this, r)
}
return !0
}
}("undefined" != typeof io ? io : module.exports, "undefined" != typeof io ? io : module.parent.exports),
/**
* socket.io
* Copyright(c) 2011 LearnBoost <dev@learnboost.com>
* MIT Licensed
*/
function (exports, nativeJSON) {
"use strict";
function f(t) {
return 10 > t ? "0" + t : t
}
function date(t) {
return isFinite(t.valueOf()) ? t.getUTCFullYear() + "-" + f(t.getUTCMonth() + 1) + "-" + f(t.getUTCDate()) + "T" + f(t.getUTCHours()) + ":" + f(t.getUTCMinutes()) + ":" + f(t.getUTCSeconds()) + "Z" : null
}
function quote(t) {
return escapable.lastIndex = 0, escapable.test(t) ? '"' + t.replace(escapable, function (t) {
var e = meta[t];
return "string" == typeof e ? e : "\\u" + ("0000" + t.charCodeAt(0).toString(16)).slice(-4)
}) + '"' : '"' + t + '"'
}
function str(t, e) {
var n, r, o, i, s, a = gap,
u = e[t];
switch (u instanceof Date && (u = date(t)), "function" == typeof rep && (u = rep.call(e, t, u)), typeof u) {
case "string":
return quote(u);
case "number":
return isFinite(u) ? String(u) : "null";
case "boolean":
case "null":
return String(u);
case "object":
if (!u) return "null";
if (gap += indent, s = [], "[object Array]" === Object.prototype.toString.apply(u)) {
for (i = u.length, n = 0; i > n; n += 1) s[n] = str(n, u) || "null";
return o = 0 === s.length ? "[]" : gap ? "[\n" + gap + s.join(",\n" + gap) + "\n" + a + "]" : "[" + s.join(",") + "]", gap = a, o
}
if (rep && "object" == typeof rep)
for (i = rep.length, n = 0; i > n; n += 1) "string" == typeof rep[n] && (r = rep[n], o = str(r, u), o && s.push(quote(r) + (gap ? ": " : ":") + o));
else
for (r in u) Object.prototype.hasOwnProperty.call(u, r) && (o = str(r, u), o && s.push(quote(r) + (gap ? ": " : ":") + o));
return o = 0 === s.length ? "{}" : gap ? "{\n" + gap + s.join(",\n" + gap) + "\n" + a + "}" : "{" + s.join(",") + "}", gap = a, o
}
}
if (nativeJSON && nativeJSON.parse) return exports.JSON = {
parse: nativeJSON.parse,
stringify: nativeJSON.stringify
};
var JSON = exports.JSON = {},
cx = /[\u0000\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g,
escapable = /[\\\"\x00-\x1f\x7f-\x9f\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g,
gap, indent, meta = {
"\b": "\\b",
" ": "\\t",
"\n": "\\n",
"\f": "\\f",
"\r": "\\r",
'"': '\\"',
"\\": "\\\\"
},
rep;
JSON.stringify = function (t, e, n) {
var r;
if (gap = "", indent = "", "number" == typeof n)
for (r = 0; n > r; r += 1) indent += " ";
else "string" == typeof n && (indent = n); if (rep = e, e && "function" != typeof e && ("object" != typeof e || "number" != typeof e.length)) throw new Error("JSON.stringify");
return str("", {
"": t
})
}, JSON.parse = function (text, reviver) {
function walk(t, e) {
var n, r, o = t[e];
if (o && "object" == typeof o)
for (n in o) Object.prototype.hasOwnProperty.call(o, n) && (r = walk(o, n), void 0 !== r ? o[n] = r : delete o[n]);
return reviver.call(t, e, o)
}
var j;
if (text = String(text), cx.lastIndex = 0, cx.test(text) && (text = text.replace(cx, function (t) {
return "\\u" + ("0000" + t.charCodeAt(0).toString(16)).slice(-4)
})), /^[\],:{}\s]*$/.test(text.replace(/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g, "@").replace(/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g, "]").replace(/(?:^|:|,)(?:\s*\[)+/g, ""))) return j = eval("(" + text + ")"), "function" == typeof reviver ? walk({
"": j
}, "") : j;
throw new SyntaxError("JSON.parse")
}
}("undefined" != typeof io ? io : module.exports, "undefined" != typeof JSON ? JSON : void 0),
/**
* socket.io
* Copyright(c) 2011 LearnBoost <dev@learnboost.com>
* MIT Licensed
*/
function (t, e) {
var n = t.parser = {},
r = n.packets = ["disconnect", "connect", "heartbeat", "message", "json", "event", "ack", "error", "noop"],
o = n.reasons = ["transport not supported", "client not handshaken", "unauthorized"],
i = n.advice = ["reconnect"],
s = e.JSON,
a = e.util.indexOf;
n.encodePacket = function (t) {
var e = a(r, t.type),
n = t.id || "",
u = t.endpoint || "",
l = t.ack,
c = null;
switch (t.type) {
case "error":
var p = t.reason ? a(o, t.reason) : "",
d = t.advice ? a(i, t.advice) : "";
("" !== p || "" !== d) && (c = p + ("" !== d ? "+" + d : ""));
break;
case "message":
"" !== t.data && (c = t.data);
break;
case "event":
var h = {
name: t.name
};
t.args && t.args.length && (h.args = t.args), c = s.stringify(h);
break;
case "json":
c = s.stringify(t.data);
break;
case "connect":
t.qs && (c = t.qs);
break;
case "ack":
c = t.ackId + (t.args && t.args.length ? "+" + s.stringify(t.args) : "")
}
var f = [e, n + ("data" == l ? "+" : ""), u];
return null !== c && void 0 !== c && f.push(c), f.join(":")
}, n.encodePayload = function (t) {
var e = "";
if (1 == t.length) return t[0];
for (var n = 0, r = t.length; r > n; n++) {
var o = t[n];
e += "\ufffd" + o.length + "\ufffd" + t[n]
}
return e
};
var u = /([^:]+):([0-9]+)?(\+)?:([^:]+)?:?([\s\S]*)?/;
n.decodePacket = function (t) {
var e = t.match(u);
if (!e) return {};
var n = e[2] || "",
t = e[5] || "",
a = {
type: r[e[1]],
endpoint: e[4] || ""
};
switch (n && (a.id = n, a.ack = e[3] ? "data" : !0), a.type) {
case "error":
var e = t.split("+");
a.reason = o[e[0]] || "", a.advice = i[e[1]] || "";
break;
case "message":
a.data = t || "";
break;
case "event":
try {
var l = s.parse(t);
a.name = l.name, a.args = l.args
} catch (c) {}
a.args = a.args || [];
break;
case "json":
try {
a.data = s.parse(t)
} catch (c) {}
break;
case "connect":
a.qs = t || "";
break;
case "ack":
var e = t.match(/^([0-9]+)(\+)?(.*)/);
if (e && (a.ackId = e[1], a.args = [], e[3])) try {
a.args = e[3] ? s.parse(e[3]) : []
} catch (c) {}
break;
case "disconnect":
case "heartbeat":
}
return a
}, n.decodePayload = function (t) {
if ("\ufffd" == t.charAt(0)) {
for (var e = [], r = 1, o = ""; r < t.length; r++) "\ufffd" == t.charAt(r) ? (e.push(n.decodePacket(t.substr(r + 1).substr(0, o))), r += Number(o) + 1, o = "") : o += t.charAt(r);
return e
}
return [n.decodePacket(t)]
}
}("undefined" != typeof io ? io : module.exports, "undefined" != typeof io ? io : module.parent.exports),
/**
* socket.io
* Copyright(c) 2011 LearnBoost <dev@learnboost.com>
* MIT Licensed
*/
function (t, e) {
function n(t, e) {
this.socket = t, this.sessid = e
}
t.Transport = n, e.util.mixin(n, e.EventEmitter), n.prototype.heartbeats = function () {
return !0
}, n.prototype.onData = function (t) {
if (this.clearCloseTimeout(), (this.socket.connected || this.socket.connecting || this.socket.reconnecting) && this.setCloseTimeout(), "" !== t) {
var n = e.parser.decodePayload(t);
if (n && n.length)
for (var r = 0, o = n.length; o > r; r++) this.onPacket(n[r])
}
return this
}, n.prototype.onPacket = function (t) {
return this.socket.setHeartbeatTimeout(), "heartbeat" == t.type ? this.onHeartbeat() : ("connect" == t.type && "" == t.endpoint && this.onConnect(), "error" == t.type && "reconnect" == t.advice && (this.isOpen = !1), this.socket.onPacket(t), this)
}, n.prototype.setCloseTimeout = function () {
if (!this.closeTimeout) {
var t = this;
this.closeTimeout = setTimeout(function () {
t.onDisconnect()
}, this.socket.closeTimeout)
}
}, n.prototype.onDisconnect = function () {
return this.isOpen && this.close(), this.clearTimeouts(), this.socket.onDisconnect(), this
}, n.prototype.onConnect = function () {
return this.socket.onConnect(), this
}, n.prototype.clearCloseTimeout = function () {
this.closeTimeout && (clearTimeout(this.closeTimeout), this.closeTimeout = null)
}, n.prototype.clearTimeouts = function () {
this.clearCloseTimeout(), this.reopenTimeout && clearTimeout(this.reopenTimeout)
}, n.prototype.packet = function (t) {
this.send(e.parser.encodePacket(t))
}, n.prototype.onHeartbeat = function () {
this.packet({
type: "heartbeat"
})
}, n.prototype.onOpen = function () {
this.isOpen = !0, this.clearCloseTimeout(), this.socket.onOpen()
}, n.prototype.onClose = function () {
this.isOpen = !1, this.socket.onClose(), this.onDisconnect()
}, n.prototype.prepareUrl = function () {
var t = this.socket.options;
return this.scheme() + "://" + t.host + ":" + t.port + "/" + t.resource + "/" + e.protocol + "/" + this.name + "/" + this.sessid
}, n.prototype.ready = function (t, e) {
e.call(this)
}
}("undefined" != typeof io ? io : module.exports, "undefined" != typeof io ? io : module.parent.exports),
/**
* socket.io
* Copyright(c) 2011 LearnBoost <dev@learnboost.com>
* MIT Licensed
*/
function (t, e, n) {
function r(t) {
if (this.options = {
port: 80,
secure: !1,
document: "document" in n ? document : !1,
resource: "socket.io",
transports: e.transports,
"connect timeout": 1e4,
"try multiple transports": !0,
reconnect: !0,
"reconnection delay": 500,
"reconnection limit": 1 / 0,
"reopen delay": 3e3,
"max reconnection attempts": 10,
"sync disconnect on unload": !1,
"auto connect": !0,
"flash policy port": 10843,
manualFlush: !1
}, e.util.merge(this.options, t), this.connected = !1, this.open = !1, this.connecting = !1, this.reconnecting = !1, this.namespaces = {}, this.buffer = [], this.doBuffer = !1, this.options["sync disconnect on unload"] && (!this.isXDomain() || e.util.ua.hasCORS)) {
var r = this;
e.util.on(n, "beforeunload", function () {
r.disconnectSync()
}, !1)
}
this.options["auto connect"] && this.connect()
}
function o() {}
t.Socket = r, e.util.mixin(r, e.EventEmitter), r.prototype.of = function (t) {
return this.namespaces[t] || (this.namespaces[t] = new e.SocketNamespace(this, t), "" !== t && this.namespaces[t].packet({
type: "connect"
})), this.namespaces[t]
}, r.prototype.publish = function () {
this.emit.apply(this, arguments);
var t;
for (var e in this.namespaces) this.namespaces.hasOwnProperty(e) && (t = this.of(e), t.$emit.apply(t, arguments))
}, r.prototype.handshake = function (t) {
function n(e) {
e instanceof Error ? (r.connecting = !1, r.onError(e.message)) : t.apply(null, e.split(":"))
}
var r = this,
i = this.options,
s = ["http" + (i.secure ? "s" : "") + ":/", i.host + ":" + i.port, i.resource, e.protocol, e.util.query(this.options.query, "t=" + +new Date)].join("/");
if (this.isXDomain() && !e.util.ua.hasCORS) {
var a = document.getElementsByTagName("script")[0],
u = document.createElement("script");
u.src = s + "&jsonp=" + e.j.length, a.parentNode.insertBefore(u, a), e.j.push(function (t) {
n(t), u.parentNode.removeChild(u)
})
} else {
var l = e.util.request();
l.open("GET", s, !0), this.isXDomain() && (l.withCredentials = !0), l.onreadystatechange = function () {
4 == l.readyState && (l.onreadystatechange = o, 200 == l.status ? n(l.responseText) : 403 == l.status ? r.onError(l.responseText) : (r.connecting = !1, !r.reconnecting && r.onError(l.responseText)))
}, l.send(null)
}
}, r.prototype.getTransport = function (t) {
for (var n, r = t || this.transports, o = 0; n = r[o]; o++)
if (e.Transport[n] && e.Transport[n].check(this) && (!this.isXDomain() || e.Transport[n].xdomainCheck(this))) return new e.Transport[n](this, this.sessionid);
return null
}, r.prototype.connect = function (t) {
if (this.connecting) return this;
var n = this;
return n.connecting = !0, this.handshake(function (r, o, i, s) {
function a(t) {
return n.transport && n.transport.clearTimeouts(), n.transport = n.getTransport(t), n.transport ? void n.transport.ready(n, function () {
n.connecting = !0, n.publish("connecting", n.transport.name), n.transport.open(), n.options["connect timeout"] && (n.connectTimeoutTimer = setTimeout(function () {
if (!n.connected && (n.connecting = !1, n.options["try multiple transports"])) {
for (var t = n.transports; t.length > 0 && t.splice(0, 1)[0] != n.transport.name;);
t.length ? a(t) : n.publish("connect_failed")
}
}, n.options["connect timeout"]))
}) : n.publish("connect_failed")
}
n.sessionid = r, n.closeTimeout = 1e3 * i, n.heartbeatTimeout = 1e3 * o, n.transports || (n.transports = n.origTransports = s ? e.util.intersect(s.split(","), n.options.transports) : n.options.transports), n.setHeartbeatTimeout(), a(n.transports), n.once("connect", function () {
clearTimeout(n.connectTimeoutTimer), t && "function" == typeof t && t()
})
}), this
}, r.prototype.setHeartbeatTimeout = function () {
if (clearTimeout(this.heartbeatTimeoutTimer), !this.transport || this.transport.heartbeats()) {
var t = this;
this.heartbeatTimeoutTimer = setTimeout(function () {
t.transport.onClose()
}, this.heartbeatTimeout)
}
}, r.prototype.packet = function (t) {
return this.connected && !this.doBuffer ? this.transport.packet(t) : this.buffer.push(t), this
}, r.prototype.setBuffer = function (t) {
this.doBuffer = t, !t && this.connected && this.buffer.length && (this.options.manualFlush || this.flushBuffer())
}, r.prototype.flushBuffer = function () {
this.transport.payload(this.buffer), this.buffer = []
}, r.prototype.disconnect = function () {
return (this.connected || this.connecting) && (this.open && this.of("").packet({
type: "disconnect"
}), this.onDisconnect("booted")), this
}, r.prototype.disconnectSync = function () {
var t = e.util.request(),
n = ["http" + (this.options.secure ? "s" : "") + ":/", this.options.host + ":" + this.options.port, this.options.resource, e.protocol, "", this.sessionid].join("/") + "/?disconnect=1";
t.open("GET", n, !1), t.send(null), this.onDisconnect("booted")
}, r.prototype.isXDomain = function () {
var t = n.location.port || ("https:" == n.location.protocol ? 443 : 80);
return this.options.host !== n.location.hostname || this.options.port != t
}, r.prototype.onConnect = function () {
this.connected || (this.connected = !0, this.connecting = !1, this.emit("connect"), this.doBuffer || this.setBuffer(!1))
}, r.prototype.onOpen = function () {
this.open = !0
}, r.prototype.onClose = function () {
this.open = !1, clearTimeout(this.heartbeatTimeoutTimer)
}, r.prototype.onPacket = function (t) {
this.of(t.endpoint).onPacket(t)
}, r.prototype.onError = function (t) {
t && t.advice && "reconnect" === t.advice && (this.connected || this.connecting) && (this.disconnect(), this.options.reconnect && this.reconnect()), this.publish("error", t && t.reason ? t.reason : t)
}, r.prototype.onDisconnect = function (t) {
var e = this.connected,
n = this.connecting;
this.connected = !1, this.connecting = !1, this.open = !1, (e || n) && (this.transport.close(), this.transport.clearTimeouts(), e && (this.publish("disconnect", t), "booted" != t && this.options.reconnect && !this.reconnecting && this.reconnect()))
}, r.prototype.reconnect = function () {
function t() {
if (n.connected) {
for (var t in n.namespaces) n.namespaces.hasOwnProperty(t) && "" !== t && n.namespaces[t].packet({
type: "connect"
});
n.publish("reconnect", n.transport.name, n.reconnectionAttempts)
}
clearTimeout(n.reconnectionTimer), n.removeListener("connect_failed", e), n.removeListener("connect", e), n.reconnecting = !1, delete n.reconnectionAttempts, delete n.reconnectionDelay, delete n.reconnectionTimer, delete n.redoTransports, n.options["try multiple transports"] = o
}
function e() {
return n.reconnecting ? n.connected ? t() : n.connecting && n.reconnecting ? n.reconnectionTimer = setTimeout(e, 1e3) : void(n.reconnectionAttempts++ >= r ? n.redoTransports ? (n.publish("reconnect_failed"), t()) : (n.on("connect_failed", e), n.options["try multiple transports"] = !0, n.transports = n.origTransports, n.transport = n.getTransport(), n.redoTransports = !0, n.connect()) : (n.reconnectionDelay < i && (n.reconnectionDelay *= 2), n.connect(), n.publish("reconnecting", n.reconnectionDelay, n.reconnectionAttempts), n.reconnectionTimer = setTimeout(e, n.reconnectionDelay))) : void 0
}
this.reconnecting = !0, this.reconnectionAttempts = 0, this.reconnectionDelay = this.options["reconnection delay"];
var n = this,
r = this.options["max reconnection attempts"],
o = this.options["try multiple transports"],
i = this.options["reconnection limit"];
this.options["try multiple transports"] = !1, this.reconnectionTimer = setTimeout(e, this.reconnectionDelay), this.on("connect", e)
}
}("undefined" != typeof io ? io : module.exports, "undefined" != typeof io ? io : module.parent.exports, this),
/**
* socket.io
* Copyright(c) 2011 LearnBoost <dev@learnboost.com>
* MIT Licensed
*/
function (t, e) {
function n(t, e) {
this.socket = t, this.name = e || "", this.flags = {}, this.json = new r(this, "json"), this.ackPackets = 0, this.acks = {}
}
function r(t, e) {
this.namespace = t, this.name = e
}
t.SocketNamespace = n, e.util.mixin(n, e.EventEmitter), n.prototype.$emit = e.EventEmitter.prototype.emit, n.prototype.of = function () {
return this.socket.of.apply(this.socket, arguments)
}, n.prototype.packet = function (t) {
return t.endpoint = this.name, this.socket.packet(t), this.flags = {}, this
}, n.prototype.send = function (t, e) {
var n = {
type: this.flags.json ? "json" : "message",
data: t
};
return "function" == typeof e && (n.id = ++this.ackPackets, n.ack = !0, this.acks[n.id] = e), this.packet(n)
}, n.prototype.emit = function (t) {
var e = Array.prototype.slice.call(arguments, 1),
n = e[e.length - 1],
r = {
type: "event",
name: t
};
return "function" == typeof n && (r.id = ++this.ackPackets, r.ack = "data", this.acks[r.id] = n, e = e.slice(0, e.length - 1)), r.args = e, this.packet(r)
}, n.prototype.disconnect = function () {
return "" === this.name ? this.socket.disconnect() : (this.packet({
type: "disconnect"
}), this.$emit("disconnect")), this
}, n.prototype.onPacket = function (t) {
function n() {
r.packet({
type: "ack",
args: e.util.toArray(arguments),
ackId: t.id
})
}
var r = this;
switch (t.type) {
case "connect":
this.$emit("connect");
break;
case "disconnect":
"" === this.name ? this.socket.onDisconnect(t.reason || "booted") : this.$emit("disconnect", t.reason);
break;
case "message":
case "json":
var o = ["message", t.data];
"data" == t.ack ? o.push(n) : t.ack && this.packet({
type: "ack",
ackId: t.id
}), this.$emit.apply(this, o);
break;
case "event":
var o = [t.name].concat(t.args);
"data" == t.ack && o.push(n), this.$emit.apply(this, o);
break;
case "ack":
this.acks[t.ackId] && (this.acks[t.ackId].apply(this, t.args), delete this.acks[t.ackId]);
break;
case "error":
t.advice ? this.socket.onError(t) : "unauthorized" == t.reason ? this.$emit("connect_failed", t.reason) : this.$emit("error", t.reason)
}
}, r.prototype.send = function () {
this.namespace.flags[this.name] = !0, this.namespace.send.apply(this.namespace, arguments)
}, r.prototype.emit = function () {
this.namespace.flags[this.name] = !0, this.namespace.emit.apply(this.namespace, arguments)
}
}("undefined" != typeof io ? io : module.exports, "undefined" != typeof io ? io : module.parent.exports),
/**
* socket.io
* Copyright(c) 2011 LearnBoost <dev@learnboost.com>
* MIT Licensed
*/
function (t, e, n) {
function r() {
e.Transport.apply(this, arguments)
}
t.websocket = r, e.util.inherit(r, e.Transport), r.prototype.name = "websocket", r.prototype.open = function () {
var t, r = e.util.query(this.socket.options.query),
o = this;
return t || (t = n.MozWebSocket || n.WebSocket), this.websocket = new t(this.prepareUrl() + r), this.websocket.onopen = function () {
o.onOpen(), o.socket.setBuffer(!1)
}, this.websocket.onmessage = function (t) {
o.onData(t.data)
}, this.websocket.onclose = function () {
o.onClose(), o.socket.setBuffer(!0)
}, this.websocket.onerror = function (t) {
o.onError(t)
}, this
}, r.prototype.send = e.util.ua.iDevice ? function (t) {
var e = this;
return setTimeout(function () {
try {
e.websocket.send(t)
} catch (n) {
e.onError(n)
}
}, 0), this
} : function (t) {
try {
this.websocket.send(t)
} catch (e) {
this.onError(e)
}
return this
}, r.prototype.payload = function (t) {
for (var e = 0, n = t.length; n > e; e++) this.packet(t[e]);
return this
}, r.prototype.close = function () {
return this.websocket.close(), this
}, r.prototype.onError = function (t) {
this.socket.onError(t)
}, r.prototype.scheme = function () {
return this.socket.options.secure ? "wss" : "ws"
}, r.check = function () {
return "WebSocket" in n && !("__addTask" in WebSocket) || "MozWebSocket" in n
}, r.xdomainCheck = function () {
return !0
}, e.transports.push("websocket")
}("undefined" != typeof io ? io.Transport : module.exports, "undefined" != typeof io ? io : module.parent.exports, this),
/**
* socket.io
* Copyright(c) 2011 LearnBoost <dev@learnboost.com>
* MIT Licensed
*/
function (t, e, n) {
function r(t) {
t && (e.Transport.apply(this, arguments), this.sendBuffer = [])
}
function o() {}
t.XHR = r, e.util.inherit(r, e.Transport), r.prototype.open = function () {
return this.socket.setBuffer(!1), this.onOpen(), this.get(), this.setCloseTimeout(), this
}, r.prototype.payload = function (t) {
for (var n = [], r = 0, o = t.length; o > r; r++) n.push(e.parser.encodePacket(t[r]));
this.send(e.parser.encodePayload(n))
}, r.prototype.send = function (t) {
return this.post(t), this
}, r.prototype.post = function (t) {
function e() {
4 == this.readyState && (this.onreadystatechange = o, i.posting = !1, 200 == this.status ? i.socket.setBuffer(!1) : i.onClose())
}
function r() {
this.onload = o, i.socket.setBuffer(!1)
}
var i = this;
this.socket.setBuffer(!0), this.sendXHR = this.request("POST"), n.XDomainRequest && this.sendXHR instanceof XDomainRequest ? this.sendXHR.onload = this.sendXHR.onerror = r : this.sendXHR.onreadystatechange = e, this.sendXHR.send(t)
}, r.prototype.close = function () {
return this.onClose(), this
}, r.prototype.request = function (t) {
var n = e.util.request(this.socket.isXDomain()),
r = e.util.query(this.socket.options.query, "t=" + +new Date);
if (n.open(t || "GET", this.prepareUrl() + r, !0), "POST" == t) try {
n.setRequestHeader ? n.setRequestHeader("Content-type", "text/plain;charset=UTF-8") : n.contentType = "text/plain"
} catch (o) {}
return n
}, r.prototype.scheme = function () {
return this.socket.options.secure ? "https" : "http"
}, r.check = function (t, r) {
try {
var o = e.util.request(r),
i = n.XDomainRequest && o instanceof XDomainRequest,
s = t && t.options && t.options.secure ? "https:" : "http:",
a = n.location && s != n.location.protocol;
if (o && (!i || !a)) return !0
} catch (u) {}
return !1
}, r.xdomainCheck = function (t) {
return r.check(t, !0)
}
}("undefined" != typeof io ? io.Transport : module.exports, "undefined" != typeof io ? io : module.parent.exports, this),
/**
* socket.io
* Copyright(c) 2011 LearnBoost <dev@learnboost.com>
* MIT Licensed
*/
function (t, e, n) {
function r() {
e.Transport.XHR.apply(this, arguments)
}
function o() {}
t["xhr-polling"] = r, e.util.inherit(r, e.Transport.XHR), e.util.merge(r, e.Transport.XHR), r.prototype.name = "xhr-polling", r.prototype.heartbeats = function () {
return !1
}, r.prototype.open = function () {
var t = this;
return e.Transport.XHR.prototype.open.call(t), !1
}, r.prototype.get = function () {
function t() {
4 == this.readyState && (this.onreadystatechange = o, 200 == this.status ? (i.onData(this.responseText), i.get()) : i.onClose())
}
function e() {
this.onload = o, this.onerror = o, i.retryCounter = 1, i.onData(this.responseText), i.get()
}
function r() {
i.retryCounter++, !i.retryCounter || i.retryCounter > 3 ? i.onClose() : i.get()
}
if (this.isOpen) {
var i = this;
this.xhr = this.request(), n.XDomainRequest && this.xhr instanceof XDomainRequest ? (this.xhr.onload = e, this.xhr.onerror = r) : this.xhr.onreadystatechange = t, this.xhr.send(null)
}
}, r.prototype.onClose = function () {
if (e.Transport.XHR.prototype.onClose.call(this), this.xhr) {
this.xhr.onreadystatechange = this.xhr.onload = this.xhr.onerror = o;
try {
this.xhr.abort()
} catch (t) {}
this.xhr = null
}
}, r.prototype.ready = function (t, n) {
var r = this;
e.util.defer(function () {
n.call(r)
})
}, e.transports.push("xhr-polling")
}("undefined" != typeof io ? io.Transport : module.exports, "undefined" != typeof io ? io : module.parent.exports, this),
/**
* socket.io
* Copyright(c) 2011 LearnBoost <dev@learnboost.com>
* MIT Licensed
*/
function (t, e) {
function n() {
e.Transport.XHR.apply(this, arguments)
}
t.htmlfile = n, e.util.inherit(n, e.Transport.XHR), n.prototype.name = "htmlfile", n.prototype.get = function () {
this.doc = new(window[["Active"].concat("Object").join("X")])("htmlfile"), this.doc.open(), this.doc.write("<html></html>"), this.doc.close(), this.doc.parentWindow.s = this;
var t = this.doc.createElement("div");
t.className = "socketio", this.doc.body.appendChild(t), this.iframe = this.doc.createElement("iframe"), t.appendChild(this.iframe);
var n = this,
r = e.util.query(this.socket.options.query, "t=" + +new Date);
this.iframe.src = this.prepareUrl() + r, e.util.on(window, "unload", function () {
n.destroy()
})
}, n.prototype._ = function (t, e) {
this.onData(t);
try {
var n = e.getElementsByTagName("script")[0];
n.parentNode.removeChild(n)
} catch (r) {}
}, n.prototype.destroy = function () {
if (this.iframe) {
try {
this.iframe.src = "about:blank"
} catch (t) {}
this.doc = null, this.iframe.parentNode.removeChild(this.iframe), this.iframe = null, CollectGarbage()
}
}, n.prototype.close = function () {
return this.destroy(), e.Transport.XHR.prototype.close.call(this)
}, n.check = function (t) {
if ("undefined" != typeof window && ["Active"].concat("Object").join("X") in window) try {
var n = new(window[["Active"].concat("Object").join("X")])("htmlfile");
return n && e.Transport.XHR.check(t)
} catch (r) {}
return !1
}, n.xdomainCheck = function () {
return !1
}, e.transports.push("htmlfile")
}("undefined" != typeof io ? io.Transport : module.exports, "undefined" != typeof io ? io : module.parent.exports)
}(),
function () {
var t = this,
e = t._,
n = {},
r = Array.prototype,
o = Object.prototype,
i = Function.prototype,
s = r.push,
a = r.slice,
u = r.concat,
l = o.toString,
c = o.hasOwnProperty,
p = r.forEach,
d = r.map,
h = r.reduce,
f = r.reduceRight,
m = r.filter,
g = r.every,
v = r.some,
y = r.indexOf,
w = r.lastIndexOf,
_ = Array.isArray,
b = Object.keys,
x = i.bind,
k = function (t) {
return t instanceof k ? t : this instanceof k ? void(this._wrapped = t) : new k(t)
};
"undefined" != typeof exports ? ("undefined" != typeof module && module.exports && (exports = module.exports = k), exports._ = k) : t._ = k, k.VERSION = "1.6.0";
var T = k.each = k.forEach = function (t, e, r) {
if (null == t) return t;
if (p && t.forEach === p) t.forEach(e, r);
else if (t.length === +t.length) {
for (var o = 0, i = t.length; i > o; o++)
if (e.call(r, t[o], o, t) === n) return
} else
for (var s = k.keys(t), o = 0, i = s.length; i > o; o++)
if (e.call(r, t[s[o]], s[o], t) === n) return; return t
};
k.map = k.collect = function (t, e, n) {
var r = [];
return null == t ? r : d && t.map === d ? t.map(e, n) : (T(t, function (t, o, i) {
r.push(e.call(n, t, o, i))
}), r)
};
var C = "Reduce of empty array with no initial value";
k.reduce = k.foldl = k.inject = function (t, e, n, r) {
var o = arguments.length > 2;
if (null == t && (t = []), h && t.reduce === h) return r && (e = k.bind(e, r)), o ? t.reduce(e, n) : t.reduce(e);
if (T(t, function (t, i, s) {
o ? n = e.call(r, n, t, i, s) : (n = t, o = !0)
}), !o) throw new TypeError(C);
return n
}, k.reduceRight = k.foldr = function (t, e, n, r) {
var o = arguments.length > 2;
if (null == t && (t = []), f && t.reduceRight === f) return r && (e = k.bind(e, r)), o ? t.reduceRight(e, n) : t.reduceRight(e);
var i = t.length;
if (i !== +i) {
var s = k.keys(t);
i = s.length
}
if (T(t, function (a, u, l) {
u = s ? s[--i] : --i, o ? n = e.call(r, n, t[u], u, l) : (n = t[u], o = !0)
}), !o) throw new TypeError(C);
return n
}, k.find = k.detect = function (t, e, n) {
var r;
return E(t, function (t, o, i) {
return e.call(n, t, o, i) ? (r = t, !0) : void 0
}), r
}, k.filter = k.select = function (t, e, n) {
var r = [];
return null == t ? r : m && t.filter === m ? t.filter(e, n) : (T(t, function (t, o, i) {
e.call(n, t, o, i) && r.push(t)
}), r)
}, k.reject = function (t, e, n) {
return k.filter(t, function (t, r, o) {
return !e.call(n, t, r, o)
}, n)
}, k.every = k.all = function (t, e, r) {
e || (e = k.identity);
var o = !0;
return null == t ? o : g && t.every === g ? t.every(e, r) : (T(t, function (t, i, s) {
return (o = o && e.call(r, t, i, s)) ? void 0 : n
}), !!o)
};
var E = k.some = k.any = function (t, e, r) {
e || (e = k.identity);
var o = !1;
return null == t ? o : v && t.some === v ? t.some(e, r) : (T(t, function (t, i, s) {
return o || (o = e.call(r, t, i, s)) ? n : void 0
}), !!o)
};
k.contains = k.include = function (t, e) {
return null == t ? !1 : y && t.indexOf === y ? -1 != t.indexOf(e) : E(t, function (t) {
return t === e
})
}, k.invoke = function (t, e) {
var n = a.call(arguments, 2),
r = k.isFunction(e);
return k.map(t, function (t) {
return (r ? e : t[e]).apply(t, n)
})
}, k.pluck = function (t, e) {
return k.map(t, k.property(e))
}, k.where = function (t, e) {
return k.filter(t, k.matches(e))
}, k.findWhere = function (t, e) {
return k.find(t, k.matches(e))
}, k.max = function (t, e, n) {
if (!e && k.isArray(t) && t[0] === +t[0] && t.length < 65535) return Math.max.apply(Math, t);
var r = -1 / 0,
o = -1 / 0;
return T(t, function (t, i, s) {
var a = e ? e.call(n, t, i, s) : t;
a > o && (r = t, o = a)
}), r
}, k.min = function (t, e, n) {
if (!e && k.isArray(t) && t[0] === +t[0] && t.length < 65535) return Math.min.apply(Math, t);
var r = 1 / 0,
o = 1 / 0;
return T(t, function (t, i, s) {
var a = e ? e.call(n, t, i, s) : t;
o > a && (r = t, o = a)
}), r
}, k.shuffle = function (t) {
var e, n = 0,
r = [];
return T(t, function (t) {
e = k.random(n++), r[n - 1] = r[e], r[e] = t
}), r
}, k.sample = function (t, e, n) {
return null == e || n ? (t.length !== +t.length && (t = k.values(t)), t[k.random(t.length - 1)]) : k.shuffle(t).slice(0, Math.max(0, e))
};
var P = function (t) {
return null == t ? k.identity : k.isFunction(t) ? t : k.property(t)
};
k.sortBy = function (t, e, n) {
return e = P(e), k.pluck(k.map(t, function (t, r, o) {
return {
value: t,
index: r,
criteria: e.call(n, t, r, o)
}
}).sort(function (t, e) {
var n = t.criteria,
r = e.criteria;
if (n !== r) {
if (n > r || void 0 === n) return 1;
if (r > n || void 0 === r) return -1
}
return t.index - e.index
}), "value")
};
var S = function (t) {
return function (e, n, r) {
var o = {};
return n = P(n), T(e, function (i, s) {
var a = n.call(r, i, s, e);
t(o, a, i)
}), o
}
};
k.groupBy = S(function (t, e, n) {
k.has(t, e) ? t[e].push(n) : t[e] = [n]
}), k.indexBy = S(function (t, e, n) {
t[e] = n
}), k.countBy = S(function (t, e) {
k.has(t, e) ? t[e]++ : t[e] = 1
}), k.sortedIndex = function (t, e, n, r) {
n = P(n);
for (var o = n.call(r, e), i = 0, s = t.length; s > i;) {
var a = i + s >>> 1;
n.call(r, t[a]) < o ? i = a + 1 : s = a
}
return i
}, k.toArray = function (t) {
return t ? k.isArray(t) ? a.call(t) : t.length === +t.length ? k.map(t, k.identity) : k.values(t) : []
}, k.size = function (t) {
return null == t ? 0 : t.length === +t.length ? t.length : k.keys(t).length
}, k.first = k.head = k.take = function (t, e, n) {
return null == t ? void 0 : null == e || n ? t[0] : 0 > e ? [] : a.call(t, 0, e)
}, k.initial = function (t, e, n) {
return a.call(t, 0, t.length - (null == e || n ? 1 : e))
}, k.last = function (t, e, n) {
return null == t ? void 0 : null == e || n ? t[t.length - 1] : a.call(t, Math.max(t.length - e, 0))
}, k.rest = k.tail = k.drop = function (t, e, n) {
return a.call(t, null == e || n ? 1 : e)
}, k.compact = function (t) {
return k.filter(t, k.identity)
};
var R = function (t, e, n) {
return e && k.every(t, k.isArray) ? u.apply(n, t) : (T(t, function (t) {
k.isArray(t) || k.isArguments(t) ? e ? s.apply(n, t) : R(t, e, n) : n.push(t)
}), n)
};
k.flatten = function (t, e) {
return R(t, e, [])
}, k.without = function (t) {
return k.difference(t, a.call(arguments, 1))
}, k.partition = function (t, e) {
var n = [],
r = [];
return T(t, function (t) {
(e(t) ? n : r).push(t)
}), [n, r]
}, k.uniq = k.unique = function (t, e, n, r) {
k.isFunction(e) && (r = n, n = e, e = !1);
var o = n ? k.map(t, n, r) : t,
i = [],
s = [];
return T(o, function (n, r) {
(e ? r && s[s.length - 1] === n : k.contains(s, n)) || (s.push(n), i.push(t[r]))
}), i
}, k.union = function () {
return k.uniq(k.flatten(arguments, !0))
}, k.intersection = function (t) {
var e = a.call(arguments, 1);
return k.filter(k.uniq(t), function (t) {
return k.every(e, function (e) {
return k.contains(e, t)
})
})
}, k.difference = function (t) {
var e = u.apply(r, a.call(arguments, 1));
return k.filter(t, function (t) {
return !k.contains(e, t)
})
}, k.zip = function () {
for (var t = k.max(k.pluck(arguments, "length").concat(0)), e = new Array(t), n = 0; t > n; n++) e[n] = k.pluck(arguments, "" + n);
return e
}, k.object = function (t, e) {
if (null == t) return {};
for (var n = {}, r = 0, o = t.length; o > r; r++) e ? n[t[r]] = e[r] : n[t[r][0]] = t[r][1];
return n
}, k.indexOf = function (t, e, n) {
if (null == t) return -1;
var r = 0,
o = t.length;
if (n) {
if ("number" != typeof n) return r = k.sortedIndex(t, e), t[r] === e ? r : -1;
r = 0 > n ? Math.max(0, o + n) : n
}
if (y && t.indexOf === y) return t.indexOf(e, n);
for (; o > r; r++)
if (t[r] === e) return r;
return -1
}, k.lastIndexOf = function (t, e, n) {
if (null == t) return -1;
var r = null != n;
if (w && t.lastIndexOf === w) return r ? t.lastIndexOf(e, n) : t.lastIndexOf(e);
for (var o = r ? n : t.length; o--;)
if (t[o] === e) return o;
return -1
}, k.range = function (t, e, n) {
arguments.length <= 1 && (e = t || 0, t = 0), n = arguments[2] || 1;
for (var r = Math.max(Math.ceil((e - t) / n), 0), o = 0, i = new Array(r); r > o;) i[o++] = t, t += n;
return i
};
var M = function () {};
k.bind = function (t, e) {
var n, r;
if (x && t.bind === x) return x.apply(t, a.call(arguments, 1));
if (!k.isFunction(t)) throw new TypeError;
return n = a.call(arguments, 2), r = function () {
if (!(this instanceof r)) return t.apply(e, n.concat(a.call(arguments)));
M.prototype = t.prototype;
var o = new M;
M.prototype = null;
var i = t.apply(o, n.concat(a.call(arguments)));
return Object(i) === i ? i : o
}
}, k.partial = function (t) {
var e = a.call(arguments, 1);
return function () {
for (var n = 0, r = e.slice(), o = 0, i = r.length; i > o; o++) r[o] === k && (r[o] = arguments[n++]);
for (; n < arguments.length;) r.push(arguments[n++]);
return t.apply(this, r)
}
}, k.bindAll = function (t) {
var e = a.call(arguments, 1);
if (0 === e.length) throw new Error("bindAll must be passed function names");
return T(e, function (e) {
t[e] = k.bind(t[e], t)
}), t
}, k.memoize = function (t, e) {
var n = {};
return e || (e = k.identity),
function () {
var r = e.apply(this, arguments);
return k.has(n, r) ? n[r] : n[r] = t.apply(this, arguments)
}
}, k.delay = function (t, e) {
var n = a.call(arguments, 2);
return setTimeout(function () {
return t.apply(null, n)
}, e)
}, k.defer = function (t) {
return k.delay.apply(k, [t, 1].concat(a.call(arguments, 1)))
}, k.throttle = function (t, e, n) {
var r, o, i, s = null,
a = 0;
n || (n = {});
var u = function () {
a = n.leading === !1 ? 0 : k.now(), s = null, i = t.apply(r, o), r = o = null
};
return function () {
var l = k.now();
a || n.leading !== !1 || (a = l);
var c = e - (l - a);
return r = this, o = arguments, 0 >= c ? (clearTimeout(s), s = null, a = l, i = t.apply(r, o), r = o = null) : s || n.trailing === !1 || (s = setTimeout(u, c)), i
}
}, k.debounce = function (t, e, n) {
var r, o, i, s, a, u = function () {
var l = k.now() - s;
e > l ? r = setTimeout(u, e - l) : (r = null, n || (a = t.apply(i, o), i = o = null))
};
return function () {
i = this, o = arguments, s = k.now();
var l = n && !r;
return r || (r = setTimeout(u, e)), l && (a = t.apply(i, o), i = o = null), a
}
}, k.once = function (t) {
var e, n = !1;
return function () {
return n ? e : (n = !0, e = t.apply(this, arguments), t = null, e)
}
}, k.wrap = function (t, e) {
return k.partial(e, t)
}, k.compose = function () {
var t = arguments;
return function () {
for (var e = arguments, n = t.length - 1; n >= 0; n--) e = [t[n].apply(this, e)];
return e[0]
}
}, k.after = function (t, e) {
return function () {
return --t < 1 ? e.apply(this, arguments) : void 0
}
}, k.keys = function (t) {
if (!k.isObject(t)) return [];
if (b) return b(t);
var e = [];
for (var n in t) k.has(t, n) && e.push(n);
return e
}, k.values = function (t) {
for (var e = k.keys(t), n = e.length, r = new Array(n), o = 0; n > o; o++) r[o] = t[e[o]];
return r
}, k.pairs = function (t) {
for (var e = k.keys(t), n = e.length, r = new Array(n), o = 0; n > o; o++) r[o] = [e[o], t[e[o]]];
return r
}, k.invert = function (t) {
for (var e = {}, n = k.keys(t), r = 0, o = n.length; o > r; r++) e[t[n[r]]] = n[r];
return e
}, k.functions = k.methods = function (t) {
var e = [];
for (var n in t) k.isFunction(t[n]) && e.push(n);
return e.sort()
}, k.extend = function (t) {
return T(a.call(arguments, 1), function (e) {
if (e)
for (var n in e) t[n] = e[n]
}), t
}, k.pick = function (t) {
var e = {},
n = u.apply(r, a.call(arguments, 1));
return T(n, function (n) {
n in t && (e[n] = t[n])
}), e
}, k.omit = function (t) {
var e = {},
n = u.apply(r, a.call(arguments, 1));
for (var o in t) k.contains(n, o) || (e[o] = t[o]);
return e
}, k.defaults = function (t) {
return T(a.call(arguments, 1), function (e) {
if (e)
for (var n in e) void 0 === t[n] && (t[n] = e[n])
}), t
}, k.clone = function (t) {
return k.isObject(t) ? k.isArray(t) ? t.slice() : k.extend({}, t) : t
}, k.tap = function (t, e) {
return e(t), t
};
var N = function (t, e, n, r) {
if (t === e) return 0 !== t || 1 / t == 1 / e;
if (null == t || null == e) return t === e;
t instanceof k && (t = t._wrapped), e instanceof k && (e = e._wrapped);
var o = l.call(t);
if (o != l.call(e)) return !1;
switch (o) {
case "[object String]":
return t == String(e);
case "[object Number]":
return t != +t ? e != +e : 0 == t ? 1 / t == 1 / e : t == +e;
case "[object Date]":
case "[object Boolean]":
return +t == +e;
case "[object RegExp]":
return t.source == e.source && t.global == e.global && t.multiline == e.multiline && t.ignoreCase == e.ignoreCase
}
if ("object" != typeof t || "object" != typeof e) return !1;
for (var i = n.length; i--;)
if (n[i] == t) return r[i] == e;
var s = t.constructor,
a = e.constructor;
if (s !== a && !(k.isFunction(s) && s instanceof s && k.isFunction(a) && a instanceof a) && "constructor" in t && "constructor" in e) return !1;
n.push(t), r.push(e);
var u = 0,
c = !0;
if ("[object Array]" == o) {
if (u = t.length, c = u == e.length)
for (; u-- && (c = N(t[u], e[u], n, r)););
} else {
for (var p in t)
if (k.has(t, p) && (u++, !(c = k.has(e, p) && N(t[p], e[p], n, r)))) break;
if (c) {
for (p in e)
if (k.has(e, p) && !u--) break;
c = !u
}
}
return n.pop(), r.pop(), c
};
k.isEqual = function (t, e) {
return N(t, e, [], [])
}, k.isEmpty = function (t) {
if (null == t) return !0;
if (k.isArray(t) || k.isString(t)) return 0 === t.length;
for (var e in t)
if (k.has(t, e)) return !1;
return !0
}, k.isElement = function (t) {
return !(!t || 1 !== t.nodeType)
}, k.isArray = _ || function (t) {
return "[object Array]" == l.call(t)
}, k.isObject = function (t) {
return t === Object(t)
}, T(["Arguments", "Function", "String", "Number", "Date", "RegExp"], function (t) {
k["is" + t] = function (e) {
return l.call(e) == "[object " + t + "]"
}
}), k.isArguments(arguments) || (k.isArguments = function (t) {
return !(!t || !k.has(t, "callee"))
}), "function" != typeof / . / && (k.isFunction = function (t) {
return "function" == typeof t
}), k.isFinite = function (t) {
return isFinite(t) && !isNaN(parseFloat(t))
}, k.isNaN = function (t) {
return k.isNumber(t) && t != +t
}, k.isBoolean = function (t) {
return t === !0 || t === !1 || "[object Boolean]" == l.call(t)
}, k.isNull = function (t) {
return null === t
}, k.isUndefined = function (t) {
return void 0 === t
}, k.has = function (t, e) {
return c.call(t, e)
}, k.noConflict = function () {
return t._ = e, this
}, k.identity = function (t) {
return t
}, k.constant = function (t) {
return function () {
return t
}
}, k.property = function (t) {
return function (e) {
return e[t]
}
}, k.matches = function (t) {
return function (e) {
if (e === t) return !0;
for (var n in t)
if (t[n] !== e[n]) return !1;
return !0
}
}, k.times = function (t, e, n) {
for (var r = Array(Math.max(0, t)), o = 0; t > o; o++) r[o] = e.call(n, o);
return r
}, k.random = function (t, e) {
return null == e && (e = t, t = 0), t + Math.floor(Math.random() * (e - t + 1))
}, k.now = Date.now || function () {
return (new Date).getTime()
};
var O = {
escape: {
"&": "&amp;",
"<": "&lt;",
">": "&gt;",
'"': "&quot;",
"'": "&#x27;"
}
};
O.unescape = k.invert(O.escape);
var F = {
escape: new RegExp("[" + k.keys(O.escape).join("") + "]", "g"),
unescape: new RegExp("(" + k.keys(O.unescape).join("|") + ")", "g")
};
k.each(["escape", "unescape"], function (t) {
k[t] = function (e) {
return null == e ? "" : ("" + e).replace(F[t], function (e) {
return O[t][e]
})
}
}), k.result = function (t, e) {
if (null == t) return void 0;
var n = t[e];
return k.isFunction(n) ? n.call(t) : n
}, k.mixin = function (t) {
T(k.functions(t), function (e) {
var n = k[e] = t[e];
k.prototype[e] = function () {
var t = [this._wrapped];
return s.apply(t, arguments), L.call(this, n.apply(k, t))
}
})
};
var A = 0;
k.uniqueId = function (t) {
var e = ++A + "";
return t ? t + e : e
}, k.templateSettings = {
evaluate: /<%([\s\S]+?)%>/g,
interpolate: /<%=([\s\S]+?)%>/g,
escape: /<%-([\s\S]+?)%>/g
};
var I = /(.)^/,
$ = {
"'": "'",
"\\": "\\",
"\r": "r",
"\n": "n",
" ": "t",
"\u2028": "u2028",
"\u2029": "u2029"
},
D = /\\|'|\r|\n|\t|\u2028|\u2029/g;
k.template = function (t, e, n) {
var r;
n = k.defaults({}, n, k.templateSettings);
var o = new RegExp([(n.escape || I).source, (n.interpolate || I).source, (n.evaluate || I).source].join("|") + "|$", "g"),
i = 0,
s = "__p+='";
t.replace(o, function (e, n, r, o, a) {
return s += t.slice(i, a).replace(D, function (t) {
return "\\" + $[t]
}), n && (s += "'+\n((__t=(" + n + "))==null?'':_.escape(__t))+\n'"), r && (s += "'+\n((__t=(" + r + "))==null?'':__t)+\n'"), o && (s += "';\n" + o + "\n__p+='"), i = a + e.length, e
}), s += "';\n", n.variable || (s = "with(obj||{}){\n" + s + "}\n"), s = "var __t,__p='',__j=Array.prototype.join,print=function(){__p+=__j.call(arguments,'');};\n" + s + "return __p;\n";
try {
r = new Function(n.variable || "obj", "_", s)
} catch (a) {
throw a.source = s, a
}
if (e) return r(e, k);
var u = function (t) {
return r.call(this, t, k)
};
return u.source = "function(" + (n.variable || "obj") + "){\n" + s + "}", u
}, k.chain = function (t) {
return k(t).chain()
};
var L = function (t) {
return this._chain ? k(t).chain() : t
};
k.mixin(k), T(["pop", "push", "reverse", "shift", "sort", "splice", "unshift"], function (t) {
var e = r[t];
k.prototype[t] = function () {
var n = this._wrapped;
return e.apply(n, arguments), "shift" != t && "splice" != t || 0 !== n.length || delete n[0], L.call(this, n)
}
}), T(["concat", "join", "slice"], function (t) {
var e = r[t];
k.prototype[t] = function () {
return L.call(this, e.apply(this._wrapped, arguments))
}
}), k.extend(k.prototype, {
chain: function () {
return this._chain = !0, this
},
value: function () {
return this._wrapped
}
}), "function" == typeof define && define.amd && define("underscore", [], function () {
return k
})
}.call(this),
function (t, e) {
if ("function" == typeof define && define.amd) define(["underscore", "jquery", "exports"], function (n, r, o) {
t.Backbone = e(t, o, n, r)
});
else if ("undefined" != typeof exports) {
var n = require("underscore");
e(t, exports, n)
} else t.Backbone = e(t, {}, t._, t.jQuery || t.Zepto || t.ender || t.$)
}(this, function (t, e, n, r) {
{
var o = t.Backbone,
i = [],
s = (i.push, i.slice);
i.splice
}
e.VERSION = "1.1.2", e.$ = r, e.noConflict = function () {
return t.Backbone = o, this
}, e.emulateHTTP = !1, e.emulateJSON = !1;
var a = e.Events = {
on: function (t, e, n) {
if (!l(this, "on", t, [e, n]) || !e) return this;
this._events || (this._events = {});
var r = this._events[t] || (this._events[t] = []);
return r.push({
callback: e,
context: n,
ctx: n || this
}), this
},
once: function (t, e, r) {
if (!l(this, "once", t, [e, r]) || !e) return this;
var o = this,
i = n.once(function () {
o.off(t, i), e.apply(this, arguments)
});
return i._callback = e, this.on(t, i, r)
},
off: function (t, e, r) {
var o, i, s, a, u, c, p, d;
if (!this._events || !l(this, "off", t, [e, r])) return this;
if (!t && !e && !r) return this._events = void 0, this;
for (a = t ? [t] : n.keys(this._events), u = 0, c = a.length; c > u; u++)
if (t = a[u], s = this._events[t]) {
if (this._events[t] = o = [], e || r)
for (p = 0, d = s.length; d > p; p++) i = s[p], (e && e !== i.callback && e !== i.callback._callback || r && r !== i.context) && o.push(i);
o.length || delete this._events[t]
}
return this
},
trigger: function (t) {
if (!this._events) return this;
var e = s.call(arguments, 1);
if (!l(this, "trigger", t, e)) return this;
var n = this._events[t],
r = this._events.all;
return n && c(n, e), r && c(r, arguments), this
},
stopListening: function (t, e, r) {
var o = this._listeningTo;
if (!o) return this;
var i = !e && !r;
r || "object" != typeof e || (r = this), t && ((o = {})[t._listenId] = t);
for (var s in o) t = o[s], t.off(e, r, this), (i || n.isEmpty(t._events)) && delete this._listeningTo[s];
return this
}
},
u = /\s+/,
l = function (t, e, n, r) {
if (!n) return !0;
if ("object" == typeof n) {
for (var o in n) t[e].apply(t, [o, n[o]].concat(r));
return !1
}
if (u.test(n)) {
for (var i = n.split(u), s = 0, a = i.length; a > s; s++) t[e].apply(t, [i[s]].concat(r));
return !1
}
return !0
},
c = function (t, e) {
var n, r = -1,
o = t.length,
i = e[0],
s = e[1],
a = e[2];
switch (e.length) {
case 0:
for (; ++r < o;)(n = t[r]).callback.call(n.ctx);
return;
case 1:
for (; ++r < o;)(n = t[r]).callback.call(n.ctx, i);
return;
case 2:
for (; ++r < o;)(n = t[r]).callback.call(n.ctx, i, s);
return;
case 3:
for (; ++r < o;)(n = t[r]).callback.call(n.ctx, i, s, a);
return;
default:
for (; ++r < o;)(n = t[r]).callback.apply(n.ctx, e);
return
}
},
p = {
listenTo: "on",
listenToOnce: "once"
};
n.each(p, function (t, e) {
a[e] = function (e, r, o) {
var i = this._listeningTo || (this._listeningTo = {}),
s = e._listenId || (e._listenId = n.uniqueId("l"));
return i[s] = e, o || "object" != typeof r || (o = this), e[t](r, o, this), this
}
}), a.bind = a.on, a.unbind = a.off, n.extend(e, a);
var d = e.Model = function (t, e) {
var r = t || {};
e || (e = {}), this.cid = n.uniqueId("c"), this.attributes = {}, e.collection && (this.collection = e.collection), e.parse && (r = this.parse(r, e) || {}), r = n.defaults({}, r, n.result(this, "defaults")), this.set(r, e), this.changed = {}, this.initialize.apply(this, arguments)
};
n.extend(d.prototype, a, {
changed: null,
validationError: null,
idAttribute: "id",
initialize: function () {},
toJSON: function () {
return n.clone(this.attributes)
},
sync: function () {
return e.sync.apply(this, arguments)
},
get: function (t) {
return this.attributes[t]
},
escape: function (t) {
return n.escape(this.get(t))
},
has: function (t) {
return null != this.get(t)
},
set: function (t, e, r) {
var o, i, s, a, u, l, c, p;
if (null == t) return this;
if ("object" == typeof t ? (i = t, r = e) : (i = {})[t] = e, r || (r = {}), !this._validate(i, r)) return !1;
s = r.unset, u = r.silent, a = [], l = this._changing, this._changing = !0, l || (this._previousAttributes = n.clone(this.attributes), this.changed = {}), p = this.attributes, c = this._previousAttributes, this.idAttribute in i && (this.id = i[this.idAttribute]);
for (o in i) e = i[o], n.isEqual(p[o], e) || a.push(o), n.isEqual(c[o], e) ? delete this.changed[o] : this.changed[o] = e, s ? delete p[o] : p[o] = e;
if (!u) {
a.length && (this._pending = r);
for (var d = 0, h = a.length; h > d; d++) this.trigger("change:" + a[d], this, p[a[d]], r)
}
if (l) return this;
if (!u)
for (; this._pending;) r = this._pending, this._pending = !1, this.trigger("change", this, r);
return this._pending = !1, this._changing = !1, this
},
unset: function (t, e) {
return this.set(t, void 0, n.extend({}, e, {
unset: !0
}))
},
clear: function (t) {
var e = {};
for (var r in this.attributes) e[r] = void 0;
return this.set(e, n.extend({}, t, {
unset: !0
}))
},
hasChanged: function (t) {
return null == t ? !n.isEmpty(this.changed) : n.has(this.changed, t)
},
changedAttributes: function (t) {
if (!t) return this.hasChanged() ? n.clone(this.changed) : !1;
var e, r = !1,
o = this._changing ? this._previousAttributes : this.attributes;
for (var i in t) n.isEqual(o[i], e = t[i]) || ((r || (r = {}))[i] = e);
return r
},
previous: function (t) {
return null != t && this._previousAttributes ? this._previousAttributes[t] : null
},
previousAttributes: function () {
return n.clone(this._previousAttributes)
},
fetch: function (t) {
t = t ? n.clone(t) : {}, void 0 === t.parse && (t.parse = !0);
var e = this,
r = t.success;
return t.success = function (n) {
return e.set(e.parse(n, t), t) ? (r && r(e, n, t), void e.trigger("sync", e, n, t)) : !1
}, D(this, t), this.sync("read", this, t)
},
save: function (t, e, r) {
var o, i, s, a = this.attributes;
if (null == t || "object" == typeof t ? (o = t, r = e) : (o = {})[t] = e, r = n.extend({
validate: !0
}, r), o && !r.wait) {
if (!this.set(o, r)) return !1
} else if (!this._validate(o, r)) return !1;
o && r.wait && (this.attributes = n.extend({}, a, o)), void 0 === r.parse && (r.parse = !0);
var u = this,
l = r.success;
return r.success = function (t) {
u.attributes = a;
var e = u.parse(t, r);
return r.wait && (e = n.extend(o || {}, e)), n.isObject(e) && !u.set(e, r) ? !1 : (l && l(u, t, r), void u.trigger("sync", u, t, r))
}, D(this, r), i = this.isNew() ? "create" : r.patch ? "patch" : "update", "patch" === i && (r.attrs = o), s = this.sync(i, this, r), o && r.wait && (this.attributes = a), s
},
destroy: function (t) {
t = t ? n.clone(t) : {};
var e = this,
r = t.success,
o = function () {
e.trigger("destroy", e, e.collection, t)
};
if (t.success = function (n) {
(t.wait || e.isNew()) && o(), r && r(e, n, t), e.isNew() || e.trigger("sync", e, n, t)
}, this.isNew()) return t.success(), !1;
D(this, t);
var i = this.sync("delete", this, t);
return t.wait || o(), i
},
url: function () {
var t = n.result(this, "urlRoot") || n.result(this.collection, "url") || $();
return this.isNew() ? t : t.replace(/([^\/])$/, "$1/") + encodeURIComponent(this.id)
},
parse: function (t) {
return t
},
clone: function () {
return new this.constructor(this.attributes)
},
isNew: function () {
return !this.has(this.idAttribute)
},
isValid: function (t) {
return this._validate({}, n.extend(t || {}, {
validate: !0
}))
},
_validate: function (t, e) {
if (!e.validate || !this.validate) return !0;
t = n.extend({}, this.attributes, t);
var r = this.validationError = this.validate(t, e) || null;
return r ? (this.trigger("invalid", this, r, n.extend(e, {
validationError: r
})), !1) : !0
}
});
var h = ["keys", "values", "pairs", "invert", "pick", "omit"];
n.each(h, function (t) {
d.prototype[t] = function () {
var e = s.call(arguments);
return e.unshift(this.attributes), n[t].apply(n, e)
}
});
var f = e.Collection = function (t, e) {
e || (e = {}), e.model && (this.model = e.model), void 0 !== e.comparator && (this.comparator = e.comparator), this._reset(), this.initialize.apply(this, arguments), t && this.reset(t, n.extend({
silent: !0
}, e))
},
m = {
add: !0,
remove: !0,
merge: !0
},
g = {
add: !0,
remove: !1
};
n.extend(f.prototype, a, {
model: d,
initialize: function () {},
toJSON: function (t) {
return this.map(function (e) {
return e.toJSON(t)
})
},
sync: function () {
return e.sync.apply(this, arguments)
},
add: function (t, e) {
return this.set(t, n.extend({
merge: !1
}, e, g))
},
remove: function (t, e) {
var r = !n.isArray(t);
t = r ? [t] : n.clone(t), e || (e = {});
var o, i, s, a;
for (o = 0, i = t.length; i > o; o++) a = t[o] = this.get(t[o]), a && (delete this._byId[a.id], delete this._byId[a.cid], s = this.indexOf(a), this.models.splice(s, 1), this.length--, e.silent || (e.index = s, a.trigger("remove", a, this, e)), this._removeReference(a, e));
return r ? t[0] : t
},
set: function (t, e) {
e = n.defaults({}, e, m), e.parse && (t = this.parse(t, e));
var r = !n.isArray(t);
t = r ? t ? [t] : [] : n.clone(t);
var o, i, s, a, u, l, c, p = e.at,
h = this.model,
f = this.comparator && null == p && e.sort !== !1,
g = n.isString(this.comparator) ? this.comparator : null,
v = [],
y = [],
w = {},
_ = e.add,
b = e.merge,
x = e.remove,
k = !f && _ && x ? [] : !1;
for (o = 0, i = t.length; i > o; o++) {
if (u = t[o] || {}, s = u instanceof d ? a = u : u[h.prototype.idAttribute || "id"], l = this.get(s)) x && (w[l.cid] = !0), b && (u = u === a ? a.attributes : u, e.parse && (u = l.parse(u, e)), l.set(u, e), f && !c && l.hasChanged(g) && (c = !0)), t[o] = l;
else if (_) {
if (a = t[o] = this._prepareModel(u, e), !a) continue;
v.push(a), this._addReference(a, e)
}
a = l || a, a && (!k || !a.isNew() && w[a.id] || k.push(a), w[a.id] = !0)
}
if (x) {
for (o = 0, i = this.length; i > o; ++o) w[(a = this.models[o]).cid] || y.push(a);
y.length && this.remove(y, e)
}
if (v.length || k && k.length)
if (f && (c = !0), this.length += v.length, null != p)
for (o = 0, i = v.length; i > o; o++) this.models.splice(p + o, 0, v[o]);
else {
k && (this.models.length = 0);
var T = k || v;
for (o = 0, i = T.length; i > o; o++) this.models.push(T[o])
}
if (c && this.sort({
silent: !0
}), !e.silent) {
for (o = 0, i = v.length; i > o; o++)(a = v[o]).trigger("add", a, this, e);
(c || k && k.length) && this.trigger("sort", this, e)
}
return r ? t[0] : t
},
reset: function (t, e) {
e || (e = {});
for (var r = 0, o = this.models.length; o > r; r++) this._removeReference(this.models[r], e);
return e.previousModels = this.models, this._reset(), t = this.add(t, n.extend({
silent: !0
}, e)), e.silent || this.trigger("reset", this, e), t
},
push: function (t, e) {
return this.add(t, n.extend({
at: this.length
}, e))
},
pop: function (t) {
var e = this.at(this.length - 1);
return this.remove(e, t), e
},
unshift: function (t, e) {
return this.add(t, n.extend({
at: 0
}, e))
},
shift: function (t) {
var e = this.at(0);
return this.remove(e, t), e
},
slice: function () {
return s.apply(this.models, arguments)
},
get: function (t) {
return null == t ? void 0 : this._byId[t] || this._byId[t.id] || this._byId[t.cid]
},
at: function (t) {
return this.models[t]
},
where: function (t, e) {
return n.isEmpty(t) ? e ? void 0 : [] : this[e ? "find" : "filter"](function (e) {
for (var n in t)
if (t[n] !== e.get(n)) return !1;
return !0
})
},
findWhere: function (t) {
return this.where(t, !0)
},
sort: function (t) {
if (!this.comparator) throw new Error("Cannot sort a set without a comparator");
return t || (t = {}), n.isString(this.comparator) || 1 === this.comparator.length ? this.models = this.sortBy(this.comparator, this) : this.models.sort(n.bind(this.comparator, this)), t.silent || this.trigger("sort", this, t), this
},
pluck: function (t) {
return n.invoke(this.models, "get", t)
},
fetch: function (t) {
t = t ? n.clone(t) : {}, void 0 === t.parse && (t.parse = !0);
var e = t.success,
r = this;
return t.success = function (n) {
var o = t.reset ? "reset" : "set";
r[o](n, t), e && e(r, n, t), r.trigger("sync", r, n, t)
}, D(this, t), this.sync("read", this, t)
},
create: function (t, e) {
if (e = e ? n.clone(e) : {}, !(t = this._prepareModel(t, e))) return !1;
e.wait || this.add(t, e);
var r = this,
o = e.success;
return e.success = function (t, n) {
e.wait && r.add(t, e), o && o(t, n, e)
}, t.save(null, e), t
},
parse: function (t) {
return t
},
clone: function () {
return new this.constructor(this.models)
},
_reset: function () {
this.length = 0, this.models = [], this._byId = {}
},
_prepareModel: function (t, e) {
if (t instanceof d) return t;
e = e ? n.clone(e) : {}, e.collection = this;
var r = new this.model(t, e);
return r.validationError ? (this.trigger("invalid", this, r.validationError, e), !1) : r
},
_addReference: function (t) {
this._byId[t.cid] = t, null != t.id && (this._byId[t.id] = t), t.collection || (t.collection = this), t.on("all", this._onModelEvent, this)
},
_removeReference: function (t) {
this === t.collection && delete t.collection, t.off("all", this._onModelEvent, this)
},
_onModelEvent: function (t, e, n, r) {
("add" !== t && "remove" !== t || n === this) && ("destroy" === t && this.remove(e, r), e && t === "change:" + e.idAttribute && (delete this._byId[e.previous(e.idAttribute)], null != e.id && (this._byId[e.id] = e)), this.trigger.apply(this, arguments))
}
});
var v = ["forEach", "each", "map", "collect", "reduce", "foldl", "inject", "reduceRight", "foldr", "find", "detect", "filter", "select", "reject", "every", "all", "some", "any", "include", "contains", "invoke", "max", "min", "toArray", "size", "first", "head", "take", "initial", "rest", "tail", "drop", "last", "without", "difference", "indexOf", "shuffle", "lastIndexOf", "isEmpty", "chain", "sample"];
n.each(v, function (t) {
f.prototype[t] = function () {
var e = s.call(arguments);
return e.unshift(this.models), n[t].apply(n, e)
}
});
var y = ["groupBy", "countBy", "sortBy", "indexBy"];
n.each(y, function (t) {
f.prototype[t] = function (e, r) {
var o = n.isFunction(e) ? e : function (t) {
return t.get(e)
};
return n[t](this.models, o, r)
}
});
var w = e.View = function (t) {
this.cid = n.uniqueId("view"), t || (t = {}), n.extend(this, n.pick(t, b)), this._ensureElement(), this.initialize.apply(this, arguments), this.delegateEvents()
},
_ = /^(\S+)\s*(.*)$/,
b = ["model", "collection", "el", "id", "attributes", "className", "tagName", "events"];
n.extend(w.prototype, a, {
tagName: "div",
$: function (t) {
return this.$el.find(t)
},
initialize: function () {},
render: function () {
return this
},
remove: function () {
return this.$el.remove(), this.stopListening(), this
},
setElement: function (t, n) {
return this.$el && this.undelegateEvents(), this.$el = t instanceof e.$ ? t : e.$(t), this.el = this.$el[0], n !== !1 && this.delegateEvents(), this
},
delegateEvents: function (t) {
if (!t && !(t = n.result(this, "events"))) return this;
this.undelegateEvents();
for (var e in t) {
var r = t[e];
if (n.isFunction(r) || (r = this[t[e]]), r) {
var o = e.match(_),
i = o[1],
s = o[2];
r = n.bind(r, this), i += ".delegateEvents" + this.cid, "" === s ? this.$el.on(i, r) : this.$el.on(i, s, r)
}
}
return this
},
undelegateEvents: function () {
return this.$el.off(".delegateEvents" + this.cid), this
},
_ensureElement: function () {
if (this.el) this.setElement(n.result(this, "el"), !1);
else {
var t = n.extend({}, n.result(this, "attributes"));
this.id && (t.id = n.result(this, "id")), this.className && (t["class"] = n.result(this, "className"));
var r = e.$("<" + n.result(this, "tagName") + ">").attr(t);
this.setElement(r, !1)
}
}
}), e.sync = function (t, r, o) {
var i = k[t];
n.defaults(o || (o = {}), {
emulateHTTP: e.emulateHTTP,
emulateJSON: e.emulateJSON
});
var s = {
type: i,
dataType: "json"
};
if (o.url || (s.url = n.result(r, "url") || $()), null != o.data || !r || "create" !== t && "update" !== t && "patch" !== t || (s.contentType = "application/json", s.data = JSON.stringify(o.attrs || r.toJSON(o))), o.emulateJSON && (s.contentType = "application/x-www-form-urlencoded", s.data = s.data ? {
model: s.data
} : {}), o.emulateHTTP && ("PUT" === i || "DELETE" === i || "PATCH" === i)) {
s.type = "POST", o.emulateJSON && (s.data._method = i);
var a = o.beforeSend;
o.beforeSend = function (t) {
return t.setRequestHeader("X-HTTP-Method-Override", i), a ? a.apply(this, arguments) : void 0
}
}
"GET" === s.type || o.emulateJSON || (s.processData = !1), "PATCH" === s.type && x && (s.xhr = function () {
return new ActiveXObject("Microsoft.XMLHTTP")
});
var u = o.xhr = e.ajax(n.extend(s, o));
return r.trigger("request", r, u, o), u
};
var x = !("undefined" == typeof window || !window.ActiveXObject || window.XMLHttpRequest && (new XMLHttpRequest).dispatchEvent),
k = {
create: "POST",
update: "PUT",
patch: "PATCH",
"delete": "DELETE",
read: "GET"
};
e.ajax = function () {
return e.$.ajax.apply(e.$, arguments)
};
var T = e.Router = function (t) {
t || (t = {}), t.routes && (this.routes = t.routes), this._bindRoutes(), this.initialize.apply(this, arguments)
},
C = /\((.*?)\)/g,
E = /(\(\?)?:\w+/g,
P = /\*\w+/g,
S = /[\-{}\[\]+?.,\\\^$|#\s]/g;
n.extend(T.prototype, a, {
initialize: function () {},
route: function (t, r, o) {
n.isRegExp(t) || (t = this._routeToRegExp(t)), n.isFunction(r) && (o = r, r = ""), o || (o = this[r]);
var i = this;
return e.history.route(t, function (n) {
var s = i._extractParameters(t, n);
i.execute(o, s) !== !1 && (i.trigger.apply(i, ["route:" + r].concat(s)), i.trigger("route", r, s), e.history.trigger("route", i, r, s))
}), this
},
execute: function (t, e) {
t && t.apply(this, e)
},
navigate: function (t, n) {
return e.history.navigate(t, n), this
},
_bindRoutes: function () {
if (this.routes) {
this.routes = n.result(this, "routes");
for (var t, e = n.keys(this.routes); null != (t = e.pop());) this.route(t, this.routes[t])
}
},
_routeToRegExp: function (t) {
return t = t.replace(S, "\\$&").replace(C, "(?:$1)?").replace(E, function (t, e) {
return e ? t : "([^/?]+)"
}).replace(P, "([^?]*?)"), new RegExp("^" + t + "(?:\\?([\\s\\S]*))?$")
},
_extractParameters: function (t, e) {
var r = t.exec(e).slice(1);
return n.map(r, function (t, e) {
return e === r.length - 1 ? t || null : t ? decodeURIComponent(t) : null
})
}
});
var R = e.History = function () {
this.handlers = [], n.bindAll(this, "checkUrl"), "undefined" != typeof window && (this.location = window.location, this.history = window.history)
},
M = /^[#\/]|\s+$/g,
N = /^\/+|\/+$/g,
O = /msie [\w.]+/,
F = /\/$/,
A = /#.*$/;
R.started = !1, n.extend(R.prototype, a, {
interval: 50,
atRoot: function () {
return this.location.pathname.replace(/[^\/]$/, "$&/") === this.root
},
getHash: function (t) {
var e = (t || this).location.href.match(/#(.*)$/);
return e ? e[1] : ""
},
getFragment: function (t, e) {
if (null == t)
if (this._hasPushState || !this._wantsHashChange || e) {
t = decodeURI(this.location.pathname + this.location.search);
var n = this.root.replace(F, "");
t.indexOf(n) || (t = t.slice(n.length))
} else t = this.getHash();
return t.replace(M, "")
},
start: function (t) {
if (R.started) throw new Error("Backbone.history has already been started");
R.started = !0, this.options = n.extend({
root: "/"
}, this.options, t), this.root = this.options.root, this._wantsHashChange = this.options.hashChange !== !1, this._wantsPushState = !!this.options.pushState, this._hasPushState = !!(this.options.pushState && this.history && this.history.pushState);
var r = this.getFragment(),
o = document.documentMode,
i = O.exec(navigator.userAgent.toLowerCase()) && (!o || 7 >= o);
if (this.root = ("/" + this.root + "/").replace(N, "/"), i && this._wantsHashChange) {
var s = e.$('<iframe src="javascript:0" tabindex="-1">');
this.iframe = s.hide().appendTo("body")[0].contentWindow, this.navigate(r)
}
this._hasPushState ? e.$(window).on("popstate", this.checkUrl) : this._wantsHashChange && "onhashchange" in window && !i ? e.$(window).on("hashchange", this.checkUrl) : this._wantsHashChange && (this._checkUrlInterval = setInterval(this.checkUrl, this.interval)), this.fragment = r;
var a = this.location;
if (this._wantsHashChange && this._wantsPushState) {
if (!this._hasPushState && !this.atRoot()) return this.fragment = this.getFragment(null, !0), this.location.replace(this.root + "#" + this.fragment), !0;
this._hasPushState && this.atRoot() && a.hash && (this.fragment = this.getHash().replace(M, ""), this.history.replaceState({}, document.title, this.root + this.fragment))
}
return this.options.silent ? void 0 : this.loadUrl()
},
stop: function () {
e.$(window).off("popstate", this.checkUrl).off("hashchange", this.checkUrl), this._checkUrlInterval && clearInterval(this._checkUrlInterval), R.started = !1
},
route: function (t, e) {
this.handlers.unshift({
route: t,
callback: e
})
},
checkUrl: function () {
var t = this.getFragment();
return t === this.fragment && this.iframe && (t = this.getFragment(this.getHash(this.iframe))), t === this.fragment ? !1 : (this.iframe && this.navigate(t), void this.loadUrl())
},
loadUrl: function (t) {
return t = this.fragment = this.getFragment(t), n.any(this.handlers, function (e) {
return e.route.test(t) ? (e.callback(t), !0) : void 0
})
},
navigate: function (t, e) {
if (!R.started) return !1;
e && e !== !0 || (e = {
trigger: !!e
});
var n = this.root + (t = this.getFragment(t || ""));
if (t = t.replace(A, ""), this.fragment !== t) {
if (this.fragment = t, "" === t && "/" !== n && (n = n.slice(0, -1)), this._hasPushState) this.history[e.replace ? "replaceState" : "pushState"]({}, document.title, n);
else {
if (!this._wantsHashChange) return this.location.assign(n);
this._updateHash(this.location, t, e.replace), this.iframe && t !== this.getFragment(this.getHash(this.iframe)) && (e.replace || this.iframe.document.open().close(), this._updateHash(this.iframe.location, t, e.replace))
}
return e.trigger ? this.loadUrl(t) : void 0
}
},
_updateHash: function (t, e, n) {
if (n) {
var r = t.href.replace(/(javascript:|#).*$/, "");
t.replace(r + "#" + e)
} else t.hash = "#" + e
}
}), e.history = new R;
var I = function (t, e) {
var r, o = this;
r = t && n.has(t, "constructor") ? t.constructor : function () {
return o.apply(this, arguments)
}, n.extend(r, o, e);
var i = function () {
this.constructor = r
};
return i.prototype = o.prototype, r.prototype = new i, t && n.extend(r.prototype, t), r.__super__ = o.prototype, r
};
d.extend = f.extend = T.extend = w.extend = R.extend = I;
var $ = function () {
throw new Error('A "url" property or function must be specified')
},
D = function (t, e) {
var n = e.error;
e.error = function (r) {
n && n(t, r, e), t.trigger("error", t, r, e)
}
};
return e
}), Backbone.History.prototype.navigate = function (t, e) {
if (!Backbone.History.started) return !1;
e && e !== !0 || (e = {
trigger: !!e
});
var n = this.root + (t = this.getFragment(t || ""));
if (this.fragment !== t) {
if (this.fragment = t, "" === t && "/" !== n && (n = n.slice(0, -1)), this._hasPushState) this.history[e.replace ? "replaceState" : "pushState"]({}, document.title, n);
else {
if (!this._wantsHashChange) return this.location.assign(n);
this._updateHash(this.location, t, e.replace), this.iframe && t !== this.getFragment(this.getHash(this.iframe)) && (e.replace || this.iframe.document.open().close(), this._updateHash(this.iframe.location, t, e.replace))
}
return e.trigger ? this.loadUrl(t) : void 0
}
},
function (t, e) {
"object" == typeof exports && t.require ? module.exports = e(require("underscore"), require("backbone")) : "function" == typeof define && define.amd ? define(["underscore", "backbone"], function (n, r) {
return e(n || t._, r || t.Backbone)
}) : e(_, Backbone)
}(this, function (t, e) {
function n(r, o) {
function i(t) {
return String(t).replace(s, encodeURIComponent(s))
}
var s = e.Router.arrayValueSplit;
if (!r) return "";
o = o || "";
var a = [];
return t.each(r, function (e, r) {
if (r = o + r, t.isString(e) || t.isNumber(e) || t.isBoolean(e) || t.isDate(e)) null != e && a.push(r + "=" + i(encodeURIComponent(e)));
else if (t.isArray(e)) {
for (var u = "", l = 0; l < e.length; l++) {
var c = e[l];
null != c && (u += s + i(c))
}
u && a.push(r + "=" + u)
} else {
var p = n(e, r + ".");
p && a.push(p)
}
}), a.join("&")
}
function r(t) {
try {
return decodeURIComponent(t.replace(/\+/g, " "))
} catch (e) {
return t
}
}
function o(e, n) {
var r = e.split("&");
t.each(r, function (t) {
var e = t.split("=");
n(e.shift(), e.join("="))
})
}
var i = /^\?(.*)/,
s = /\((.*?)\)/g,
a = /(\(\?)?:\w+/g,
u = /\*\w+/g,
l = /[\-{}\[\]+?.,\\\^$|#\s]/g,
c = /^([^\?]*)/,
p = /[\:\*]([^\:\?\/]+)/g,
d = /^[#\/]|\s+$/g,
h = /\/$/;
e.Router.arrayValueSplit = "|", t.extend(e.History.prototype, {
getFragment: function (t, e) {
if (null == t)
if (this._hasPushState || !this._wantsHashChange || e) {
t = this.location.pathname;
var n = this.root.replace(h, ""),
r = this.location.search;
t.indexOf(n) || (t = t.substr(n.length)), r && this._hasPushState && (t += r)
} else t = this.getHash();
return t.replace(d, "")
},
getQueryParameters: function (e, n) {
e = this.getFragment(e, n);
var s = e.replace(c, ""),
a = s.match(i);
if (a) {
s = a[1];
var u = {};
return o(s, function (e, n) {
n = r(n), u[e] ? t.isString(u[e]) ? u[e] = [u[e], n] : u[e].push(n) : u[e] = n
}), u
}
return {}
}
}), t.extend(e.Router.prototype, {
initialize: function (t) {
this.encodedSplatParts = t && t.encodedSplatParts
},
_routeToRegExp: function (e) {
var n = u.exec(e) || {
index: -1
},
r = a.exec(e) || {
index: -1
},
o = e.match(p) || [];
e = e.replace(l, "\\$&").replace(s, "(?:$1)?").replace(a, function (t, e) {
return e ? t : "([^\\/\\?]+)"
}).replace(u, "([^??]*?)"), e += "(\\?.*)?";
var i = new RegExp("^" + e + "$");
return n.index >= 0 && (i.splatMatch = r >= 0 ? n.index - r.index : -1), i.paramNames = t.map(o, function (t) {
return t.substring(1)
}), i.namedParameters = this.namedParameters, i
},
_extractParameters: function (n, s) {
var a = n.exec(s).slice(1),
u = {};
a.length > 0 && t.isUndefined(a[a.length - 1]) && a.splice(a.length - 1, 1);
var l = a.length && a[a.length - 1] && a[a.length - 1].match(i);
if (l) {
var c = l[1],
p = {};
if (c) {
var d = this;
o(c, function (t, e) {
d._setParamValue(t, e, p)
})
}
a[a.length - 1] = p, t.extend(u, p)
}
var h = a.length;
if (n.splatMatch && this.encodedSplatParts) {
if (n.splatMatch < 0) return a;
h -= 1
}
for (var f = 0; h > f; f++) t.isString(a[f]) && (a[f] = r(a[f]), n.paramNames && n.paramNames.length >= f - 1 && (u[n.paramNames[f]] = a[f]));
return e.Router.namedParameters || n.namedParameters ? [u] : a
},
_setParamValue: function (t, e, n) {
t = t.replace("[]", ""), t = t.replace("%5B%5D", "");
for (var r = t.split("."), o = n, i = 0; i < r.length; i++) {
var s = r[i];
i === r.length - 1 ? o[s] = this._decodeParamValue(e, o[s]) : o = o[s] = o[s] || {}
}
},
_decodeParamValue: function (n, o) {
var i = e.Router.arrayValueSplit;
if (i && n.indexOf(i) >= 0) {
for (var s = n.split(i), a = s.length - 1; a >= 0; a--) s[a] ? s[a] = r(s[a]) : s.splice(a, 1);
return s
}
return n = r(n), o ? t.isArray(o) ? (o.push(n), o) : [o, n] : n
},
toFragment: function (e, r) {
return r && (t.isString(r) || (r = n(r)), r && (e += "?" + r)), e
}
})
}),
function (t) {
if ("function" == typeof bootstrap) bootstrap("backboneprojections", t);
else if ("object" == typeof exports) module.exports = t();
else if ("function" == typeof define && define.amd) define(t);
else if ("undefined" != typeof ses) {
if (!ses.ok()) return;
ses.makeBackboneProjections = t
} else "undefined" != typeof window ? window.BackboneProjections = t() : global.BackboneProjections = t()
}(function () {
return function (t, e, n) {
function r(n, i) {
if (!e[n]) {
if (!t[n]) {
var s = "function" == typeof require && require;
if (!i && s) return s(n, !0);
if (o) return o(n, !0);
throw new Error("Cannot find module '" + n + "'")
}
var a = e[n] = {
exports: {}
};
t[n][0].call(a.exports, function (e) {
var o = t[n][1][e];
return r(o ? o : e)
}, a, a.exports)
}
return e[n].exports
}
for (var o = "function" == typeof require && require, i = 0; i < n.length; i++) r(n[i]);
return r
}({
"lib/index.js": [
function (t, e) {
var n;
n = (("undefined" != typeof window && null !== window ? window._ : void 0) || t("underscore")).extend, e.exports = n({}, t("./capped"), t("./filtered"), t("./sorted"))
}, {
"./capped": "lib/capped.js",
"./filtered": "lib/filtered.js",
"./sorted": "lib/sorted.js",
underscore: "underscore"
}
],
"lib/capped.js": [
function (t, e, n) {
var r, o, i, s, a, u = {}.hasOwnProperty,
l = function (t, e) {
function n() {
this.constructor = t
}
for (var r in e) u.call(e, r) && (t[r] = e[r]);
return n.prototype = e.prototype, t.prototype = new n, t.__super__ = e.prototype, t
};
r = (("undefined" != typeof window && null !== window ? window.Backbone : void 0) || t("backbone")).Collection, a = ("undefined" != typeof window && null !== window ? window._ : void 0) || t("underscore"), s = a.toArray, o = a.extend, i = function (t) {
var e;
return e = function (e) {
return t.indexOf(e)
}, e.induced = !0, e
}, n.Capped = function (t) {
function e(t, n) {
var r = this;
null == n && (n = {}), this.underlying = t, this.model = t.model, this.comparator = n.comparator || i(t), this.options = o({
cap: 5
}, t.options, n), e.__super__.constructor.call(this, this._capped(this.underlying.models), n), this.listenTo(this.underlying, {
reset: function () {
return r.reset(r._capped(r.underlying.models))
},
remove: function (t) {
var e;
return r.contains(t) ? (r.remove(t), e = r._capped(r.underlying.models), r.add(e[r.options.cap - 1])) : void 0
},
add: function (t) {
return r.length < r.options.cap ? r.add(t) : r.comparator(t) < r.comparator(r.last()) ? (r.add(t), r.remove(r.at(r.options.cap))) : void 0
},
sort: function () {
return r.comparator.induced ? r.reset(r._capped(r.underlying.models)) : void 0
}
})
}
return l(e, t), e.prototype._capped = function (t) {
var e = this;
return t = s(t), t.sort(function (t, n) {
return t = e.comparator(t), n = e.comparator(n), t > n ? 1 : n > t ? -1 : 0
}), t.slice(0, this.options.cap)
}, e.prototype.resize = function (t) {
var e, n, r, o, i;
if (this.options.cap > t)
for (this.options.cap = t, i = this.models, n = o = i.length - 1; o >= 0 && (r = i[n], !(t > n)); n = o += -1) this.remove(r);
else this.options.cap < t && (this.options.cap = t, e = this._capped(this.underlying.models), this.add(e.slice(this.length, this.options.cap)));
return this.trigger("resize")
}, e
}(r), n.CappedCollection = n.Capped
}, {
backbone: "backbone",
underscore: "underscore"
}
],
"lib/filtered.js": [
function (t, e, n) {
var r, o, i, s = {}.hasOwnProperty,
a = function (t, e) {
function n() {
this.constructor = t
}
for (var r in e) s.call(e, r) && (t[r] = e[r]);
return n.prototype = e.prototype, t.prototype = new n, t.__super__ = e.prototype, t
};
r = (("undefined" != typeof window && null !== window ? window.Backbone : void 0) || t("backbone")).Collection, o = (("undefined" != typeof window && null !== window ? window._ : void 0) || t("underscore")).extend, i = function (t) {
var e;
return e = function (e) {
return t.indexOf(e)
}, e.induced = !0, e
}, n.Filtered = function (t) {
function e(t, n) {
var r = this;
null == n && (n = {}), this.underlying = t, this.model = t.model, this.comparator = n.comparator || i(t), this.options = o({}, t.options, n), e.__super__.constructor.call(this, this.underlying.models.filter(this.options.filter), n), this.listenTo(this.underlying, {
reset: function () {
return r.reset(r.underlying.models.filter(r.options.filter))
},
remove: function (t) {
return r.contains(t) ? r.remove(t) : void 0
},
add: function (t) {
return r.options.filter(t) ? r.add(t) : void 0
},
change: function (t) {
return r.decideOn(t)
},
sort: function () {
return r.comparator.induced ? r.sort() : void 0
}
})
}
return a(e, t), e.prototype.update = function () {
var t, e, n, r, o;
for (r = this.underlying.models, o = [], e = 0, n = r.length; n > e; e++) t = r[e], o.push(this.decideOn(t));
return o
}, e.prototype.decideOn = function (t) {
if (this.contains(t)) {
if (!this.options.filter(t)) return this.remove(t)
} else if (this.options.filter(t)) return this.add(t)
}, e
}(r), n.FilteredCollection = n.Filtered
}, {
backbone: "backbone",
underscore: "underscore"
}
],
"lib/sorted.js": [
function (t, e, n) {
var r, o, i = {}.hasOwnProperty,
s = function (t, e) {
function n() {
this.constructor = t
}
for (var r in e) i.call(e, r) && (t[r] = e[r]);
return n.prototype = e.prototype, t.prototype = new n, t.__super__ = e.prototype, t
};
r = (("undefined" != typeof window && null !== window ? window.Backbone : void 0) || t("backbone")).Collection, o = (("undefined" != typeof window && null !== window ? window._ : void 0) || t("underscore")).extend, n.Sorted = function (t) {
function e(t, n) {
var r = this;
if (null == n && (n = {}), !n.comparator) throw new Error("provide a comparator");
this.underlying = t, this.model = t.model, this.comparator = n.comparator, this.options = o({}, t.options, n), e.__super__.constructor.call(this, this.underlying.models, n), this.listenTo(this.underlying, {
reset: function () {
return r.reset(r.underlying.models)
},
remove: function (t) {
return r.remove(t)
},
add: function (t) {
return r.add(t)
}
})
}
return s(e, t), e
}(r), n.Reversed = function (t) {
function e(t, n) {
null == n && (n = {}), n.comparator = function (e) {
return -t.indexOf(e)
}, e.__super__.constructor.call(this, t, n), this.listenTo(this.underlying, {
sort: this.sort
})
}
return s(e, t), e
}(n.Sorted), n.SortedCollection = n.Sorted, n.ReversedCollection = n.Reversed
}, {
backbone: "backbone",
underscore: "underscore"
}
]
}, {}, ["lib/index.js"])("lib/index.js")
}),
function (t, e) {
"function" == typeof define && define.amd ? define(e) : "object" == typeof exports ? module.exports = e() : t.returnExports = e()
}(this, function () {
function t() {}
function e(t) {
return t = +t, t !== t ? t = 0 : 0 !== t && t !== 1 / 0 && t !== -(1 / 0) && (t = (t > 0 || -1) * Math.floor(Math.abs(t))), t
}
function n(t) {
var e = typeof t;
return null === t || "undefined" === e || "boolean" === e || "number" === e || "string" === e
}
function r(t) {
var e, r, o;
if (n(t)) return t;
if (r = t.valueOf, p(r) && (e = r.call(t), n(e))) return e;
if (o = t.toString, p(o) && (e = o.call(t), n(e))) return e;
throw new TypeError
}
var o = Function.prototype.call,
i = Array.prototype,
s = Object.prototype,
a = i.slice,
u = Array.prototype.splice,
l = Array.prototype.push,
c = Array.prototype.unshift,
p = function (t) {
return "[object Function]" === s.toString.call(t)
},
d = function (t) {
return "[object RegExp]" === s.toString.call(t)
};
Function.prototype.bind || (Function.prototype.bind = function (e) {
var n = this;
if (!p(n)) throw new TypeError("Function.prototype.bind called on incompatible " + n);
for (var r = a.call(arguments, 1), o = function () {
if (this instanceof l) {
var t = n.apply(this, r.concat(a.call(arguments)));
return Object(t) === t ? t : this
}
return n.apply(e, r.concat(a.call(arguments)))
}, i = Math.max(0, n.length - r.length), s = [], u = 0; i > u; u++) s.push("$" + u);
var l = Function("binder", "return function(" + s.join(",") + "){return binder.apply(this,arguments)}")(o);
return n.prototype && (t.prototype = n.prototype, l.prototype = new t, t.prototype = null), l
});
var h, f, m, g, v, y = o.bind(s.hasOwnProperty),
w = o.bind(s.toString);
(v = y(s, "__defineGetter__")) && (h = o.bind(s.__defineGetter__), f = o.bind(s.__defineSetter__), m = o.bind(s.__lookupGetter__), g = o.bind(s.__lookupSetter__)), 2 !== [1, 2].splice(0).length && (Array.prototype.splice = function () {
function t(t) {
for (var e = []; t--;) e.unshift(t);
return e
}
var e, n = [];
return n.splice.bind(n, 0, 0).apply(null, t(20)), n.splice.bind(n, 0, 0).apply(null, t(26)), e = n.length, n.splice(5, 0, "XXX"), e + 1 === n.length ? !0 : void 0
}() ? function (t, e) {
return arguments.length ? u.apply(this, [void 0 === t ? 0 : t, void 0 === e ? this.length - t : e].concat(a.call(arguments, 2))) : []
} : function (t, e) {
var n, r = a.call(arguments, 2),
o = r.length;
if (!arguments.length) return [];
if (void 0 === t && (t = 0), void 0 === e && (e = this.length - t), o > 0) {
if (0 >= e) {
if (t === this.length) return l.apply(this, r), [];
if (0 === t) return c.apply(this, r), []
}
return n = a.call(this, t, t + e), r.push.apply(r, a.call(this, t + e, this.length)), r.unshift.apply(r, a.call(this, 0, t)), r.unshift(0, this.length), u.apply(this, r), n
}
return u.call(this, t, e)
}), 1 !== [].unshift(0) && (Array.prototype.unshift = function () {
return c.apply(this, arguments), this.length
}), Array.isArray || (Array.isArray = function (t) {
return "[object Array]" === w(t)
});
var _ = Object("a"),
b = "a" !== _[0] || !(0 in _),
x = function (t) {
var e = !0;
return t && t.call("foo", function (t, n, r) {
"object" != typeof r && (e = !1)
}), !!t && e
};
Array.prototype.forEach && x(Array.prototype.forEach) || (Array.prototype.forEach = function (t) {
var e = B(this),
n = b && "[object String]" === w(this) ? this.split("") : e,
r = arguments[1],
o = -1,
i = n.length >>> 0;
if (!p(t)) throw new TypeError;
for (; ++o < i;) o in n && t.call(r, n[o], o, e)
}), Array.prototype.map && x(Array.prototype.map) || (Array.prototype.map = function (t) {
var e = B(this),
n = b && "[object String]" === w(this) ? this.split("") : e,
r = n.length >>> 0,
o = Array(r),
i = arguments[1];
if (!p(t)) throw new TypeError(t + " is not a function");
for (var s = 0; r > s; s++) s in n && (o[s] = t.call(i, n[s], s, e));
return o
}), Array.prototype.filter && x(Array.prototype.filter) || (Array.prototype.filter = function (t) {
var e, n = B(this),
r = b && "[object String]" === w(this) ? this.split("") : n,
o = r.length >>> 0,
i = [],
s = arguments[1];
if (!p(t)) throw new TypeError(t + " is not a function");
for (var a = 0; o > a; a++) a in r && (e = r[a], t.call(s, e, a, n) && i.push(e));
return i
}), Array.prototype.every && x(Array.prototype.every) || (Array.prototype.every = function (t) {
var e = B(this),
n = b && "[object String]" === w(this) ? this.split("") : e,
r = n.length >>> 0,
o = arguments[1];
if (!p(t)) throw new TypeError(t + " is not a function");
for (var i = 0; r > i; i++)
if (i in n && !t.call(o, n[i], i, e)) return !1;
return !0
}), Array.prototype.some && x(Array.prototype.some) || (Array.prototype.some = function (t) {
var e = B(this),
n = b && "[object String]" === w(this) ? this.split("") : e,
r = n.length >>> 0,
o = arguments[1];
if (!p(t)) throw new TypeError(t + " is not a function");
for (var i = 0; r > i; i++)
if (i in n && t.call(o, n[i], i, e)) return !0;
return !1
});
var k = !1;
if (Array.prototype.reduce && (k = "object" == typeof Array.prototype.reduce.call("a", function (t, e, n, r) {
return r
})), Array.prototype.reduce && k || (Array.prototype.reduce = function (t) {
var e = B(this),
n = b && "[object String]" === w(this) ? this.split("") : e,
r = n.length >>> 0;
if (!p(t)) throw new TypeError(t + " is not a function");
if (!r && 1 === arguments.length) throw new TypeError("reduce of empty array with no initial value");
var o, i = 0;
if (arguments.length >= 2) o = arguments[1];
else
for (;;) {
if (i in n) {
o = n[i++];
break
}
if (++i >= r) throw new TypeError("reduce of empty array with no initial value")
}
for (; r > i; i++) i in n && (o = t.call(void 0, o, n[i], i, e));
return o
}), Array.prototype.reduceRight || (Array.prototype.reduceRight = function (t) {
var e = B(this),
n = b && "[object String]" === w(this) ? this.split("") : e,
r = n.length >>> 0;
if (!p(t)) throw new TypeError(t + " is not a function");
if (!r && 1 === arguments.length) throw new TypeError("reduceRight of empty array with no initial value");
var o, i = r - 1;
if (arguments.length >= 2) o = arguments[1];
else
for (;;) {
if (i in n) {
o = n[i--];
break
}
if (--i < 0) throw new TypeError("reduceRight of empty array with no initial value")
}
if (0 > i) return o;
do i in this && (o = t.call(void 0, o, n[i], i, e)); while (i--);
return o
}), Array.prototype.indexOf && -1 === [0, 1].indexOf(1, 2) || (Array.prototype.indexOf = function (t) {
var n = b && "[object String]" === w(this) ? this.split("") : B(this),
r = n.length >>> 0;
if (!r) return -1;
var o = 0;
for (arguments.length > 1 && (o = e(arguments[1])), o = o >= 0 ? o : Math.max(0, r + o); r > o; o++)
if (o in n && n[o] === t) return o;
return -1
}), Array.prototype.lastIndexOf && -1 === [0, 1].lastIndexOf(0, -3) || (Array.prototype.lastIndexOf = function (t) {
var n = b && "[object String]" === w(this) ? this.split("") : B(this),
r = n.length >>> 0;
if (!r) return -1;
var o = r - 1;
for (arguments.length > 1 && (o = Math.min(o, e(arguments[1]))), o = o >= 0 ? o : r - Math.abs(o); o >= 0; o--)
if (o in n && t === n[o]) return o;
return -1
}), !Object.keys) {
var T = !{
toString: null
}.propertyIsEnumerable("toString"),
C = function () {}.propertyIsEnumerable("prototype"),
E = ["toString", "toLocaleString", "valueOf", "hasOwnProperty", "isPrototypeOf", "propertyIsEnumerable", "constructor"],
P = E.length,
S = function (t) {
var e = w(t),
n = "[object Arguments]" === e;
return n || (n = !Array.isArray(e) && null !== t && "object" == typeof t && "number" == typeof t.length && t.length >= 0 && p(t.callee)), n
};
Object.keys = function (t) {
var e = p(t),
n = S(t),
r = null !== t && "object" == typeof t,
o = r && "[object String]" === w(t);
if (!r && !e && !n) throw new TypeError("Object.keys called on a non-object");
var i = [],
s = C && e;
if (o || n)
for (var a = 0; a < t.length; ++a) i.push(String(a));
else
for (var u in t) s && "prototype" === u || !y(t, u) || i.push(String(u)); if (T)
for (var l = t.constructor, c = l && l.prototype === t, d = 0; P > d; d++) {
var h = E[d];
c && "constructor" === h || !y(t, h) || i.push(h)
}
return i
}
}
var R = -621987552e5,
M = "-000001";
Date.prototype.toISOString && -1 !== new Date(R).toISOString().indexOf(M) || (Date.prototype.toISOString = function () {
var t, e, n, r, o;
if (!isFinite(this)) throw new RangeError("Date.prototype.toISOString called on non-finite value.");
for (r = this.getUTCFullYear(), o = this.getUTCMonth(), r += Math.floor(o / 12), o = (o % 12 + 12) % 12, t = [o + 1, this.getUTCDate(), this.getUTCHours(), this.getUTCMinutes(), this.getUTCSeconds()], r = (0 > r ? "-" : r > 9999 ? "+" : "") + ("00000" + Math.abs(r)).slice(r >= 0 && 9999 >= r ? -4 : -6), e = t.length; e--;) n = t[e], 10 > n && (t[e] = "0" + n);
return r + "-" + t.slice(0, 2).join("-") + "T" + t.slice(2).join(":") + "." + ("000" + this.getUTCMilliseconds()).slice(-3) + "Z"
});
var N = !1;
try {
N = Date.prototype.toJSON && null === new Date(0 / 0).toJSON() && -1 !== new Date(R).toJSON().indexOf(M) && Date.prototype.toJSON.call({
toISOString: function () {
return !0
}
})
} catch (O) {}
N || (Date.prototype.toJSON = function () {
var t, e = Object(this),
n = r(e);
if ("number" == typeof n && !isFinite(n)) return null;
if (t = e.toISOString, "function" != typeof t) throw new TypeError("toISOString property is not callable");
return t.call(e)
});
var F = 1e15 === Date.parse("+033658-09-27T01:46:40.000Z"),
A = !isNaN(Date.parse("2012-04-04T24:00:00.500Z")) || !isNaN(Date.parse("2012-11-31T23:59:59.000Z")),
I = isNaN(Date.parse("2000-01-01T00:00:00.000Z"));
(!Date.parse || I || A || !F) && (Date = function (t) {
function e(n, r, o, i, s, a, u) {
var l = arguments.length;
if (this instanceof t) {
var c = 1 === l && String(n) === n ? new t(e.parse(n)) : l >= 7 ? new t(n, r, o, i, s, a, u) : l >= 6 ? new t(n, r, o, i, s, a) : l >= 5 ? new t(n, r, o, i, s) : l >= 4 ? new t(n, r, o, i) : l >= 3 ? new t(n, r, o) : l >= 2 ? new t(n, r) : l >= 1 ? new t(n) : new t;
return c.constructor = e, c
}
return t.apply(this, arguments)
}
function n(t, e) {
var n = e > 1 ? 1 : 0;
return i[e] + Math.floor((t - 1969 + n) / 4) - Math.floor((t - 1901 + n) / 100) + Math.floor((t - 1601 + n) / 400) + 365 * (t - 1970)
}
function r(e) {
return Number(new t(1970, 0, 1, 0, 0, 0, e))
}
var o = new RegExp("^(\\d{4}|[+-]\\d{6})(?:-(\\d{2})(?:-(\\d{2})(?:T(\\d{2}):(\\d{2})(?::(\\d{2})(?:(\\.\\d{1,}))?)?(Z|(?:([-+])(\\d{2}):(\\d{2})))?)?)?)?$"),
i = [0, 31, 59, 90, 120, 151, 181, 212, 243, 273, 304, 334, 365];
for (var s in t) e[s] = t[s];
return e.now = t.now, e.UTC = t.UTC, e.prototype = t.prototype, e.prototype.constructor = e, e.parse = function (e) {
var i = o.exec(e);
if (i) {
var s, a = Number(i[1]),
u = Number(i[2] || 1) - 1,
l = Number(i[3] || 1) - 1,
c = Number(i[4] || 0),
p = Number(i[5] || 0),
d = Number(i[6] || 0),
h = Math.floor(1e3 * Number(i[7] || 0)),
f = Boolean(i[4] && !i[8]),
m = "-" === i[9] ? 1 : -1,
g = Number(i[10] || 0),
v = Number(i[11] || 0);
return (p > 0 || d > 0 || h > 0 ? 24 : 25) > c && 60 > p && 60 > d && 1e3 > h && u > -1 && 12 > u && 24 > g && 60 > v && l > -1 && l < n(a, u + 1) - n(a, u) && (s = 60 * (24 * (n(a, u) + l) + c + g * m), s = 1e3 * (60 * (s + p + v * m) + d) + h, f && (s = r(s)), s >= -864e13 && 864e13 >= s) ? s : 0 / 0
}
return t.parse.apply(this, arguments)
}, e
}(Date)), Date.now || (Date.now = function () {
return (new Date).getTime()
}), Number.prototype.toFixed && "0.000" === 8e-5.toFixed(3) && "0" !== .9.toFixed(0) && "1.25" === 1.255.toFixed(2) && "1000000000000000128" === 0xde0b6b3a7640080.toFixed(0) || ! function () {
function t(t, e) {
for (var n = -1; ++n < s;) e += t * a[n], a[n] = e % i, e = Math.floor(e / i)
}
function e(t) {
for (var e = s, n = 0; --e >= 0;) n += a[e], a[e] = Math.floor(n / t), n = n % t * i
}
function n() {
for (var t = s, e = ""; --t >= 0;)
if ("" !== e || 0 === t || 0 !== a[t]) {
var n = String(a[t]);
"" === e ? e = n : e += "0000000".slice(0, 7 - n.length) + n
}
return e
}
function r(t, e, n) {
return 0 === e ? n : e % 2 === 1 ? r(t, e - 1, n * t) : r(t * t, e / 2, n)
}
function o(t) {
for (var e = 0; t >= 4096;) e += 12, t /= 4096;
for (; t >= 2;) e += 1, t /= 2;
return e
}
var i, s, a;
i = 1e7, s = 6, a = [0, 0, 0, 0, 0, 0], Number.prototype.toFixed = function (i) {
var s, a, u, l, c, p, d, h;
if (s = Number(i), s = s !== s ? 0 : Math.floor(s), 0 > s || s > 20) throw new RangeError("Number.toFixed called with invalid number of decimals");
if (a = Number(this), a !== a) return "NaN";
if (-1e21 >= a || a >= 1e21) return String(a);
if (u = "", 0 > a && (u = "-", a = -a), l = "0", a > 1e-21)
if (c = o(a * r(2, 69, 1)) - 69, p = 0 > c ? a * r(2, -c, 1) : a / r(2, c, 1), p *= 4503599627370496, c = 52 - c, c > 0) {
for (t(0, p), d = s; d >= 7;) t(1e7, 0), d -= 7;
for (t(r(10, d, 1), 0), d = c - 1; d >= 23;) e(1 << 23), d -= 23;
e(1 << d), t(1, 1), e(2), l = n()
} else t(0, p), t(1 << -c, 0), l = n() + "0.00000000000000000000".slice(2, 2 + s);
return s > 0 ? (h = l.length, l = s >= h ? u + "0.0000000000000000000".slice(0, s - h + 2) + l : u + l.slice(0, h - s) + "." + l.slice(h - s)) : l = u + l, l
}
}();
var $ = String.prototype.split;
2 !== "ab".split(/(?:ab)*/).length || 4 !== ".".split(/(.?)(.?)/).length || "t" === "tesst".split(/(s)*/)[1] || "".split(/.?/).length || ".".split(/()()/).length > 1 ? ! function () {
var t = void 0 === /()??/.exec("")[1];
String.prototype.split = function (e, n) {
var r = this;
if (void 0 === e && 0 === n) return [];
if ("[object RegExp]" !== Object.prototype.toString.call(e)) return $.apply(this, arguments);
var o, i, s, a, u = [],
l = (e.ignoreCase ? "i" : "") + (e.multiline ? "m" : "") + (e.extended ? "x" : "") + (e.sticky ? "y" : ""),
c = 0;
for (e = new RegExp(e.source, l + "g"), r += "", t || (o = new RegExp("^" + e.source + "$(?!\\s)", l)), n = void 0 === n ? -1 >>> 0 : n >>> 0;
(i = e.exec(r)) && (s = i.index + i[0].length, !(s > c && (u.push(r.slice(c, i.index)), !t && i.length > 1 && i[0].replace(o, function () {
for (var t = 1; t < arguments.length - 2; t++) void 0 === arguments[t] && (i[t] = void 0)
}), i.length > 1 && i.index < r.length && Array.prototype.push.apply(u, i.slice(1)), a = i[0].length, c = s, u.length >= n)));) e.lastIndex === i.index && e.lastIndex++;
return c === r.length ? (a || !e.test("")) && u.push("") : u.push(r.slice(c)), u.length > n ? u.slice(0, n) : u
}
}() : "0".split(void 0, 0).length && (String.prototype.split = function (t, e) {
return void 0 === t && 0 === e ? [] : $.apply(this, arguments)
});
var D = String.prototype.replace,
L = function () {
var t = [];
return "x".replace(/x(.)?/g, function (e, n) {
t.push(n)
}), 1 === t.length && "undefined" == typeof t[0]
}();
if (L || (String.prototype.replace = function (t, e) {
var n = p(e),
r = d(t) && /\)[*?]/.test(t.source);
if (n && r) {
var o = function (n) {
var r = arguments.length,
o = t.lastIndex;
t.lastIndex = 0;
var i = t.exec(n);
return t.lastIndex = o, i.push(arguments[r - 2], arguments[r - 1]), e.apply(this, i)
};
return D.call(this, t, o)
}
return D.apply(this, arguments)
}), "".substr && "b" !== "0b".substr(-1)) {
var U = String.prototype.substr;
String.prototype.substr = function (t, e) {
return U.call(this, 0 > t && (t = this.length + t) < 0 ? 0 : t, e)
}
}
var H = " \n \f\r \xa0\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000\u2028\u2029\ufeff",
V = "\u200b";
if (!String.prototype.trim || H.trim() || !V.trim()) {
H = "[" + H + "]";
var z = new RegExp("^" + H + H + "*"),
j = new RegExp(H + H + "*$");
String.prototype.trim = function () {
if (void 0 === this || null === this) throw new TypeError("can't convert " + this + " to object");
return String(this).replace(z, "").replace(j, "")
}
}(8 !== parseInt(H + "08") || 22 !== parseInt(H + "0x16")) && (parseInt = function (t) {
var e = /^0[xX]/;
return function (n, r) {
return n = String(n).trim(), Number(r) || (r = e.test(n) ? 16 : 10), t(n, r)
}
}(parseInt));
var B = function (t) {
if (null == t) throw new TypeError("can't convert " + t + " to object");
return Object(t)
}
}),
/**
* React v0.10.0
*
* Copyright 2013-2014 Facebook, Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
! function (t) {
if ("object" == typeof exports) module.exports = t();
else if ("function" == typeof define && define.amd) define(t);
else {
var e;
"undefined" != typeof window ? e = window : "undefined" != typeof global ? e = global : "undefined" != typeof self && (e = self), e.React = t()
}
}(function () {
return function t(e, n, r) {
function o(s, a) {
if (!n[s]) {
if (!e[s]) {
var u = "function" == typeof require && require;
if (!a && u) return u(s, !0);
if (i) return i(s, !0);
throw new Error("Cannot find module '" + s + "'")
}
var l = n[s] = {
exports: {}
};
e[s][0].call(l.exports, function (t) {
var n = e[s][1][t];
return o(n ? n : t)
}, l, l.exports, t, e, n, r)
}
return n[s].exports
}
for (var i = "function" == typeof require && require, s = 0; s < r.length; s++) o(r[s]);
return o
}({
1: [
function (t, e) {
"use strict";
var n = t("./focusNode"),
r = {
componentDidMount: function () {
this.props.autoFocus && n(this.getDOMNode())
}
};
e.exports = r
}, {
"./focusNode": 98
}
],
2: [
function (t, e) {
"use strict";
function n(t, e) {
return t + e.charAt(0).toUpperCase() + e.substring(1)
}
var r = {
columnCount: !0,
fillOpacity: !0,
flex: !0,
flexGrow: !0,
flexShrink: !0,
fontWeight: !0,
lineClamp: !0,
lineHeight: !0,
opacity: !0,
order: !0,
orphans: !0,
widows: !0,
zIndex: !0,
zoom: !0
},
o = ["Webkit", "ms", "Moz", "O"];
Object.keys(r).forEach(function (t) {
o.forEach(function (e) {
r[n(e, t)] = r[t]
})
});
var i = {
background: {
backgroundImage: !0,
backgroundPosition: !0,
backgroundRepeat: !0,
backgroundColor: !0
},
border: {
borderWidth: !0,
borderStyle: !0,
borderColor: !0
},
borderBottom: {
borderBottomWidth: !0,
borderBottomStyle: !0,
borderBottomColor: !0
},
borderLeft: {
borderLeftWidth: !0,
borderLeftStyle: !0,
borderLeftColor: !0
},
borderRight: {
borderRightWidth: !0,
borderRightStyle: !0,
borderRightColor: !0
},
borderTop: {
borderTopWidth: !0,
borderTopStyle: !0,
borderTopColor: !0
},
font: {
fontStyle: !0,
fontVariant: !0,
fontWeight: !0,
fontSize: !0,
lineHeight: !0,
fontFamily: !0
}
},
s = {
isUnitlessNumber: r,
shorthandPropertyExpansions: i
};
e.exports = s
}, {}
],
3: [
function (t, e) {
"use strict";
var n = t("./CSSProperty"),
r = t("./dangerousStyleValue"),
o = t("./escapeTextForBrowser"),
i = t("./hyphenate"),
s = t("./memoizeStringOnly"),
a = s(function (t) {
return o(i(t))
}),
u = {
createMarkupForStyles: function (t) {
var e = "";
for (var n in t)
if (t.hasOwnProperty(n)) {
var o = t[n];
null != o && (e += a(n) + ":", e += r(n, o) + ";")
}
return e || null
},
setValueForStyles: function (t, e) {
var o = t.style;
for (var i in e)
if (e.hasOwnProperty(i)) {
var s = r(i, e[i]);
if (s) o[i] = s;
else {
var a = n.shorthandPropertyExpansions[i];
if (a)
for (var u in a) o[u] = "";
else o[i] = ""
}
}
}
};
e.exports = u
}, {
"./CSSProperty": 2,
"./dangerousStyleValue": 93,
"./escapeTextForBrowser": 96,
"./hyphenate": 108,
"./memoizeStringOnly": 118
}
],
4: [
function (t, e) {
"use strict";
function n(t) {
return "SELECT" === t.nodeName || "INPUT" === t.nodeName && "file" === t.type
}
function r(t) {
var e = x.getPooled(P.change, R, t);
w.accumulateTwoPhaseDispatches(e), b.batchedUpdates(o, e)
}
function o(t) {
y.enqueueEvents(t), y.processEventQueue()
}
function i(t, e) {
S = t, R = e, S.attachEvent("onchange", r)
}
function s() {
S && (S.detachEvent("onchange", r), S = null, R = null)
}
function a(t, e, n) {
return t === E.topChange ? n : void 0
}
function u(t, e, n) {
t === E.topFocus ? (s(), i(e, n)) : t === E.topBlur && s()
}
function l(t, e) {
S = t, R = e, M = t.value, N = Object.getOwnPropertyDescriptor(t.constructor.prototype, "value"), Object.defineProperty(S, "value", A), S.attachEvent("onpropertychange", p)
}
function c() {
S && (delete S.value, S.detachEvent("onpropertychange", p), S = null, R = null, M = null, N = null)
}
function p(t) {
if ("value" === t.propertyName) {
var e = t.srcElement.value;
e !== M && (M = e, r(t))
}
}
function d(t, e, n) {
return t === E.topInput ? n : void 0
}
function h(t, e, n) {
t === E.topFocus ? (c(), l(e, n)) : t === E.topBlur && c()
}
function f(t) {
return t !== E.topSelectionChange && t !== E.topKeyUp && t !== E.topKeyDown || !S || S.value === M ? void 0 : (M = S.value, R)
}
function m(t) {
return "INPUT" === t.nodeName && ("checkbox" === t.type || "radio" === t.type)
}
function g(t, e, n) {
return t === E.topClick ? n : void 0
}
var v = t("./EventConstants"),
y = t("./EventPluginHub"),
w = t("./EventPropagators"),
_ = t("./ExecutionEnvironment"),
b = t("./ReactUpdates"),
x = t("./SyntheticEvent"),
k = t("./isEventSupported"),
T = t("./isTextInputElement"),
C = t("./keyOf"),
E = v.topLevelTypes,
P = {
change: {
phasedRegistrationNames: {
bubbled: C({
onChange: null
}),
captured: C({
onChangeCapture: null
})
},
dependencies: [E.topBlur, E.topChange, E.topClick, E.topFocus, E.topInput, E.topKeyDown, E.topKeyUp, E.topSelectionChange]
}
},
S = null,
R = null,
M = null,
N = null,
O = !1;
_.canUseDOM && (O = k("change") && (!("documentMode" in document) || document.documentMode > 8));
var F = !1;
_.canUseDOM && (F = k("input") && (!("documentMode" in document) || document.documentMode > 9));
var A = {
get: function () {
return N.get.call(this)
},
set: function (t) {
M = "" + t, N.set.call(this, t)
}
},
I = {
eventTypes: P,
extractEvents: function (t, e, r, o) {
var i, s;
if (n(e) ? O ? i = a : s = u : T(e) ? F ? i = d : (i = f, s = h) : m(e) && (i = g), i) {
var l = i(t, e, r);
if (l) {
var c = x.getPooled(P.change, l, o);
return w.accumulateTwoPhaseDispatches(c), c
}
}
s && s(t, e, r)
}
};
e.exports = I
}, {
"./EventConstants": 14,
"./EventPluginHub": 16,
"./EventPropagators": 19,
"./ExecutionEnvironment": 20,
"./ReactUpdates": 69,
"./SyntheticEvent": 76,
"./isEventSupported": 111,
"./isTextInputElement": 113,
"./keyOf": 117
}
],
5: [
function (t, e) {
"use strict";
var n = 0,
r = {
createReactRootIndex: function () {
return n++
}
};
e.exports = r
}, {}
],
6: [
function (t, e) {
"use strict";
function n(t) {
switch (t) {
case v.topCompositionStart:
return w.compositionStart;
case v.topCompositionEnd:
return w.compositionEnd;
case v.topCompositionUpdate:
return w.compositionUpdate
}
}
function r(t, e) {
return t === v.topKeyDown && e.keyCode === f
}
function o(t, e) {
switch (t) {
case v.topKeyUp:
return -1 !== h.indexOf(e.keyCode);
case v.topKeyDown:
return e.keyCode !== f;
case v.topKeyPress:
case v.topMouseDown:
case v.topBlur:
return !0;
default:
return !1
}
}
function i(t) {
this.root = t, this.startSelection = l.getSelection(t), this.startValue = this.getText()
}
var s = t("./EventConstants"),
a = t("./EventPropagators"),
u = t("./ExecutionEnvironment"),
l = t("./ReactInputSelection"),
c = t("./SyntheticCompositionEvent"),
p = t("./getTextContentAccessor"),
d = t("./keyOf"),
h = [9, 13, 27, 32],
f = 229,
m = u.canUseDOM && "CompositionEvent" in window,
g = !m || "documentMode" in document && document.documentMode > 8,
v = s.topLevelTypes,
y = null,
w = {
compositionEnd: {
phasedRegistrationNames: {
bubbled: d({
onCompositionEnd: null
}),
captured: d({
onCompositionEndCapture: null
})
},
dependencies: [v.topBlur, v.topCompositionEnd, v.topKeyDown, v.topKeyPress, v.topKeyUp, v.topMouseDown]
},
compositionStart: {
phasedRegistrationNames: {
bubbled: d({
onCompositionStart: null
}),
captured: d({
onCompositionStartCapture: null
})
},
dependencies: [v.topBlur, v.topCompositionStart, v.topKeyDown, v.topKeyPress, v.topKeyUp, v.topMouseDown]
},
compositionUpdate: {
phasedRegistrationNames: {
bubbled: d({
onCompositionUpdate: null
}),
captured: d({
onCompositionUpdateCapture: null
})
},
dependencies: [v.topBlur, v.topCompositionUpdate, v.topKeyDown, v.topKeyPress, v.topKeyUp, v.topMouseDown]
}
};
i.prototype.getText = function () {
return this.root.value || this.root[p()]
}, i.prototype.getData = function () {
var t = this.getText(),
e = this.startSelection.start,
n = this.startValue.length - this.startSelection.end;
return t.substr(e, t.length - n - e)
};
var _ = {
eventTypes: w,
extractEvents: function (t, e, s, u) {
var l, p;
if (m ? l = n(t) : y ? o(t, u) && (l = w.compositionEnd) : r(t, u) && (l = w.compositionStart), g && (y || l !== w.compositionStart ? l === w.compositionEnd && y && (p = y.getData(), y = null) : y = new i(e)), l) {
var d = c.getPooled(l, s, u);
return p && (d.data = p), a.accumulateTwoPhaseDispatches(d), d
}
}
};
e.exports = _
}, {
"./EventConstants": 14,
"./EventPropagators": 19,
"./ExecutionEnvironment": 20,
"./ReactInputSelection": 50,
"./SyntheticCompositionEvent": 74,
"./getTextContentAccessor": 106,
"./keyOf": 117
}
],
7: [
function (t, e) {
"use strict";
function n(t, e, n) {
var r = t.childNodes;
r[n] !== e && (e.parentNode === t && t.removeChild(e), n >= r.length ? t.appendChild(e) : t.insertBefore(e, r[n]))
}
var r, o = t("./Danger"),
i = t("./ReactMultiChildUpdateTypes"),
s = t("./getTextContentAccessor"),
a = s();
r = "textContent" === a ? function (t, e) {
t.textContent = e
} : function (t, e) {
for (; t.firstChild;) t.removeChild(t.firstChild);
if (e) {
var n = t.ownerDocument || document;
t.appendChild(n.createTextNode(e))
}
};
var u = {
dangerouslyReplaceNodeWithMarkup: o.dangerouslyReplaceNodeWithMarkup,
updateTextContent: r,
processUpdates: function (t, e) {
for (var s, a = null, u = null, l = 0; s = t[l]; l++)
if (s.type === i.MOVE_EXISTING || s.type === i.REMOVE_NODE) {
var c = s.fromIndex,
p = s.parentNode.childNodes[c],
d = s.parentID;
a = a || {}, a[d] = a[d] || [], a[d][c] = p, u = u || [], u.push(p)
}
var h = o.dangerouslyRenderMarkup(e);
if (u)
for (var f = 0; f < u.length; f++) u[f].parentNode.removeChild(u[f]);
for (var m = 0; s = t[m]; m++) switch (s.type) {
case i.INSERT_MARKUP:
n(s.parentNode, h[s.markupIndex], s.toIndex);
break;
case i.MOVE_EXISTING:
n(s.parentNode, a[s.parentID][s.fromIndex], s.toIndex);
break;
case i.TEXT_CONTENT:
r(s.parentNode, s.textContent);
break;
case i.REMOVE_NODE:
}
}
};
e.exports = u
}, {
"./Danger": 10,
"./ReactMultiChildUpdateTypes": 56,
"./getTextContentAccessor": 106
}
],
8: [
function (t, e) {
"use strict";
var n = t("./invariant"),
r = {
MUST_USE_ATTRIBUTE: 1,
MUST_USE_PROPERTY: 2,
HAS_SIDE_EFFECTS: 4,
HAS_BOOLEAN_VALUE: 8,
HAS_POSITIVE_NUMERIC_VALUE: 16,
injectDOMPropertyConfig: function (t) {
var e = t.Properties || {},
o = t.DOMAttributeNames || {},
s = t.DOMPropertyNames || {},
a = t.DOMMutationMethods || {};
t.isCustomAttribute && i._isCustomAttributeFunctions.push(t.isCustomAttribute);
for (var u in e) {
n(!i.isStandardName[u]), i.isStandardName[u] = !0;
var l = u.toLowerCase();
i.getPossibleStandardName[l] = u;
var c = o[u];
c && (i.getPossibleStandardName[c] = u), i.getAttributeName[u] = c || l, i.getPropertyName[u] = s[u] || u;
var p = a[u];
p && (i.getMutationMethod[u] = p);
var d = e[u];
i.mustUseAttribute[u] = d & r.MUST_USE_ATTRIBUTE, i.mustUseProperty[u] = d & r.MUST_USE_PROPERTY, i.hasSideEffects[u] = d & r.HAS_SIDE_EFFECTS, i.hasBooleanValue[u] = d & r.HAS_BOOLEAN_VALUE, i.hasPositiveNumericValue[u] = d & r.HAS_POSITIVE_NUMERIC_VALUE, n(!i.mustUseAttribute[u] || !i.mustUseProperty[u]), n(i.mustUseProperty[u] || !i.hasSideEffects[u]), n(!i.hasBooleanValue[u] || !i.hasPositiveNumericValue[u])
}
}
},
o = {},
i = {
ID_ATTRIBUTE_NAME: "data-reactid",
isStandardName: {},
getPossibleStandardName: {},
getAttributeName: {},
getPropertyName: {},
getMutationMethod: {},
mustUseAttribute: {},
mustUseProperty: {},
hasSideEffects: {},
hasBooleanValue: {},
hasPositiveNumericValue: {},
_isCustomAttributeFunctions: [],
isCustomAttribute: function (t) {
for (var e = 0; e < i._isCustomAttributeFunctions.length; e++) {
var n = i._isCustomAttributeFunctions[e];
if (n(t)) return !0
}
return !1
},
getDefaultValueForProperty: function (t, e) {
var n, r = o[t];
return r || (o[t] = r = {}), e in r || (n = document.createElement(t), r[e] = n[e]), r[e]
},
injection: r
};
e.exports = i
}, {
"./invariant": 110
}
],
9: [
function (t, e) {
"use strict";
function n(t, e) {
return null == e || r.hasBooleanValue[t] && !e || r.hasPositiveNumericValue[t] && (isNaN(e) || 1 > e)
}
var r = t("./DOMProperty"),
o = t("./escapeTextForBrowser"),
i = t("./memoizeStringOnly"),
s = (t("./warning"), i(function (t) {
return o(t) + '="'
})),
a = {
createMarkupForID: function (t) {
return s(r.ID_ATTRIBUTE_NAME) + o(t) + '"'
},
createMarkupForProperty: function (t, e) {
if (r.isStandardName[t]) {
if (n(t, e)) return "";
var i = r.getAttributeName[t];
return r.hasBooleanValue[t] ? o(i) : s(i) + o(e) + '"'
}
return r.isCustomAttribute(t) ? null == e ? "" : s(t) + o(e) + '"' : null
},
setValueForProperty: function (t, e, o) {
if (r.isStandardName[e]) {
var i = r.getMutationMethod[e];
if (i) i(t, o);
else if (n(e, o)) this.deleteValueForProperty(t, e);
else if (r.mustUseAttribute[e]) t.setAttribute(r.getAttributeName[e], "" + o);
else {
var s = r.getPropertyName[e];
r.hasSideEffects[e] && t[s] === o || (t[s] = o)
}
} else r.isCustomAttribute(e) && (null == o ? t.removeAttribute(r.getAttributeName[e]) : t.setAttribute(e, "" + o))
},
deleteValueForProperty: function (t, e) {
if (r.isStandardName[e]) {
var n = r.getMutationMethod[e];
if (n) n(t, void 0);
else if (r.mustUseAttribute[e]) t.removeAttribute(r.getAttributeName[e]);
else {
var o = r.getPropertyName[e],
i = r.getDefaultValueForProperty(t.nodeName, o);
r.hasSideEffects[e] && t[o] === i || (t[o] = i)
}
} else r.isCustomAttribute(e) && t.removeAttribute(e)
}
};
e.exports = a
}, {
"./DOMProperty": 8,
"./escapeTextForBrowser": 96,
"./memoizeStringOnly": 118,
"./warning": 131
}
],
10: [
function (t, e) {
"use strict";
function n(t) {
return t.substring(1, t.indexOf(" "))
}
var r = t("./ExecutionEnvironment"),
o = t("./createNodesFromMarkup"),
i = t("./emptyFunction"),
s = t("./getMarkupWrap"),
a = t("./invariant"),
u = /^(<[^ \/>]+)/,
l = "data-danger-index",
c = {
dangerouslyRenderMarkup: function (t) {
a(r.canUseDOM);
for (var e, c = {}, p = 0; p < t.length; p++) a(t[p]), e = n(t[p]), e = s(e) ? e : "*", c[e] = c[e] || [], c[e][p] = t[p];
var d = [],
h = 0;
for (e in c)
if (c.hasOwnProperty(e)) {
var f = c[e];
for (var m in f)
if (f.hasOwnProperty(m)) {
var g = f[m];
f[m] = g.replace(u, "$1 " + l + '="' + m + '" ')
}
var v = o(f.join(""), i);
for (p = 0; p < v.length; ++p) {
var y = v[p];
y.hasAttribute && y.hasAttribute(l) && (m = +y.getAttribute(l), y.removeAttribute(l), a(!d.hasOwnProperty(m)), d[m] = y, h += 1)
}
}
return a(h === d.length), a(d.length === t.length), d
},
dangerouslyReplaceNodeWithMarkup: function (t, e) {
a(r.canUseDOM), a(e), a("html" !== t.tagName.toLowerCase());
var n = o(e, i)[0];
t.parentNode.replaceChild(n, t)
}
};
e.exports = c
}, {
"./ExecutionEnvironment": 20,
"./createNodesFromMarkup": 91,
"./emptyFunction": 94,
"./getMarkupWrap": 103,
"./invariant": 110
}
],
11: [
function (t, e) {
"use strict";
var n = t("./DOMProperty"),
r = n.injection.MUST_USE_ATTRIBUTE,
o = n.injection.MUST_USE_PROPERTY,
i = n.injection.HAS_BOOLEAN_VALUE,
s = n.injection.HAS_SIDE_EFFECTS,
a = n.injection.HAS_POSITIVE_NUMERIC_VALUE,
u = {
isCustomAttribute: RegExp.prototype.test.bind(/^(data|aria)-[a-z_][a-z\d_.\-]*$/),
Properties: {
accept: null,
accessKey: null,
action: null,
allowFullScreen: r | i,
allowTransparency: r,
alt: null,
async: i,
autoComplete: null,
autoPlay: i,
cellPadding: null,
cellSpacing: null,
charSet: r,
checked: o | i,
className: o,
cols: r | a,
colSpan: null,
content: null,
contentEditable: null,
contextMenu: r,
controls: o | i,
crossOrigin: null,
data: null,
dateTime: r,
defer: i,
dir: null,
disabled: r | i,
download: null,
draggable: null,
encType: null,
form: r,
formNoValidate: i,
frameBorder: r,
height: r,
hidden: r | i,
href: null,
hrefLang: null,
htmlFor: null,
httpEquiv: null,
icon: null,
id: o,
label: null,
lang: null,
list: null,
loop: o | i,
max: null,
maxLength: r,
mediaGroup: null,
method: null,
min: null,
multiple: o | i,
muted: o | i,
name: null,
noValidate: i,
pattern: null,
placeholder: null,
poster: null,
preload: null,
radioGroup: null,
readOnly: o | i,
rel: null,
required: i,
role: r,
rows: r | a,
rowSpan: null,
sandbox: null,
scope: null,
scrollLeft: o,
scrollTop: o,
seamless: r | i,
selected: o | i,
size: r | a,
span: a,
spellCheck: null,
src: null,
srcDoc: o,
srcSet: null,
step: null,
style: null,
tabIndex: null,
target: null,
title: null,
type: null,
value: o | s,
width: r,
wmode: r,
autoCapitalize: null,
autoCorrect: null,
property: null,
cx: r,
cy: r,
d: r,
fill: r,
fx: r,
fy: r,
gradientTransform: r,
gradientUnits: r,
offset: r,
points: r,
r: r,
rx: r,
ry: r,
spreadMethod: r,
stopColor: r,
stopOpacity: r,
stroke: r,
strokeLinecap: r,
strokeWidth: r,
textAnchor: r,
transform: r,
version: r,
viewBox: r,
x1: r,
x2: r,
x: r,
y1: r,
y2: r,
y: r
},
DOMAttributeNames: {
className: "class",
gradientTransform: "gradientTransform",
gradientUnits: "gradientUnits",
htmlFor: "for",
spreadMethod: "spreadMethod",
stopColor: "stop-color",
stopOpacity: "stop-opacity",
strokeLinecap: "stroke-linecap",
strokeWidth: "stroke-width",
textAnchor: "text-anchor",
viewBox: "viewBox"
},
DOMPropertyNames: {
autoCapitalize: "autocapitalize",
autoComplete: "autocomplete",
autoCorrect: "autocorrect",
autoFocus: "autofocus",
autoPlay: "autoplay",
encType: "enctype",
hrefLang: "hreflang",
radioGroup: "radiogroup",
spellCheck: "spellcheck",
srcDoc: "srcdoc",
srcSet: "srcset"
}
};
e.exports = u
}, {
"./DOMProperty": 8
}
],
12: [
function (t, e) {
"use strict";
var n = t("./keyOf"),
r = [n({
ResponderEventPlugin: null
}), n({
SimpleEventPlugin: null
}), n({
TapEventPlugin: null
}), n({
EnterLeaveEventPlugin: null
}), n({
ChangeEventPlugin: null
}), n({
SelectEventPlugin: null
}), n({
CompositionEventPlugin: null
}), n({
AnalyticsEventPlugin: null
}), n({
MobileSafariClickEventPlugin: null
})];
e.exports = r
}, {
"./keyOf": 117
}
],
13: [
function (t, e) {
"use strict";
var n = t("./EventConstants"),
r = t("./EventPropagators"),
o = t("./SyntheticMouseEvent"),
i = t("./ReactMount"),
s = t("./keyOf"),
a = n.topLevelTypes,
u = i.getFirstReactDOM,
l = {
mouseEnter: {
registrationName: s({
onMouseEnter: null
}),
dependencies: [a.topMouseOut, a.topMouseOver]
},
mouseLeave: {
registrationName: s({
onMouseLeave: null
}),
dependencies: [a.topMouseOut, a.topMouseOver]
}
},
c = [null, null],
p = {
eventTypes: l,
extractEvents: function (t, e, n, s) {
if (t === a.topMouseOver && (s.relatedTarget || s.fromElement)) return null;
if (t !== a.topMouseOut && t !== a.topMouseOver) return null;
var p;
if (e.window === e) p = e;
else {
var d = e.ownerDocument;
p = d ? d.defaultView || d.parentWindow : window
}
var h, f;
if (t === a.topMouseOut ? (h = e, f = u(s.relatedTarget || s.toElement) || p) : (h = p, f = e), h === f) return null;
var m = h ? i.getID(h) : "",
g = f ? i.getID(f) : "",
v = o.getPooled(l.mouseLeave, m, s);
v.type = "mouseleave", v.target = h, v.relatedTarget = f;
var y = o.getPooled(l.mouseEnter, g, s);
return y.type = "mouseenter", y.target = f, y.relatedTarget = h, r.accumulateEnterLeaveDispatches(v, y, m, g), c[0] = v, c[1] = y, c
}
};
e.exports = p
}, {
"./EventConstants": 14,
"./EventPropagators": 19,
"./ReactMount": 53,
"./SyntheticMouseEvent": 79,
"./keyOf": 117
}
],
14: [
function (t, e) {
"use strict";
var n = t("./keyMirror"),
r = n({
bubbled: null,
captured: null
}),
o = n({
topBlur: null,
topChange: null,
topClick: null,
topCompositionEnd: null,
topCompositionStart: null,
topCompositionUpdate: null,
topContextMenu: null,
topCopy: null,
topCut: null,
topDoubleClick: null,
topDrag: null,
topDragEnd: null,
topDragEnter: null,
topDragExit: null,
topDragLeave: null,
topDragOver: null,
topDragStart: null,
topDrop: null,
topError: null,
topFocus: null,
topInput: null,
topKeyDown: null,
topKeyPress: null,
topKeyUp: null,
topLoad: null,
topMouseDown: null,
topMouseMove: null,
topMouseOut: null,
topMouseOver: null,
topMouseUp: null,
topPaste: null,
topReset: null,
topScroll: null,
topSelectionChange: null,
topSubmit: null,
topTouchCancel: null,
topTouchEnd: null,
topTouchMove: null,
topTouchStart: null,
topWheel: null
}),
i = {
topLevelTypes: o,
PropagationPhases: r
};
e.exports = i
}, {
"./keyMirror": 116
}
],
15: [
function (t, e) {
var n = t("./emptyFunction"),
r = {
listen: function (t, e, n) {
return t.addEventListener ? (t.addEventListener(e, n, !1), {
remove: function () {
t.removeEventListener(e, n, !1)
}
}) : t.attachEvent ? (t.attachEvent("on" + e, n), {
remove: function () {
t.detachEvent(e, n)
}
}) : void 0
},
capture: function (t, e, r) {
return t.addEventListener ? (t.addEventListener(e, r, !0), {
remove: function () {
t.removeEventListener(e, r, !0)
}
}) : {
remove: n
}
}
};
e.exports = r
}, {
"./emptyFunction": 94
}
],
16: [
function (t, e) {
"use strict";
var n = t("./EventPluginRegistry"),
r = t("./EventPluginUtils"),
o = t("./ExecutionEnvironment"),
i = t("./accumulate"),
s = t("./forEachAccumulated"),
a = t("./invariant"),
u = (t("./isEventSupported"), t("./monitorCodeUse"), {}),
l = null,
c = function (t) {
if (t) {
var e = r.executeDispatch,
o = n.getPluginModuleForEvent(t);
o && o.executeDispatch && (e = o.executeDispatch), r.executeDispatchesInOrder(t, e), t.isPersistent() || t.constructor.release(t)
}
},
p = null,
d = {
injection: {
injectMount: r.injection.injectMount,
injectInstanceHandle: function (t) {
p = t
},
getInstanceHandle: function () {
return p
},
injectEventPluginOrder: n.injectEventPluginOrder,
injectEventPluginsByName: n.injectEventPluginsByName
},
eventNameDispatchConfigs: n.eventNameDispatchConfigs,
registrationNameModules: n.registrationNameModules,
putListener: function (t, e, n) {
a(o.canUseDOM), a(!n || "function" == typeof n);
var r = u[e] || (u[e] = {});
r[t] = n
},
getListener: function (t, e) {
var n = u[e];
return n && n[t]
},
deleteListener: function (t, e) {
var n = u[e];
n && delete n[t]
},
deleteAllListeners: function (t) {
for (var e in u) delete u[e][t]
},
extractEvents: function (t, e, r, o) {
for (var s, a = n.plugins, u = 0, l = a.length; l > u; u++) {
var c = a[u];
if (c) {
var p = c.extractEvents(t, e, r, o);
p && (s = i(s, p))
}
}
return s
},
enqueueEvents: function (t) {
t && (l = i(l, t))
},
processEventQueue: function () {
var t = l;
l = null, s(t, c), a(!l)
},
__purge: function () {
u = {}
},
__getListenerBank: function () {
return u
}
};
e.exports = d
}, {
"./EventPluginRegistry": 17,
"./EventPluginUtils": 18,
"./ExecutionEnvironment": 20,
"./accumulate": 85,
"./forEachAccumulated": 99,
"./invariant": 110,
"./isEventSupported": 111,
"./monitorCodeUse": 123
}
],
17: [
function (t, e) {
"use strict";
function n() {
if (s)
for (var t in a) {
var e = a[t],
n = s.indexOf(t);
if (i(n > -1), !u.plugins[n]) {
i(e.extractEvents), u.plugins[n] = e;
var o = e.eventTypes;
for (var l in o) i(r(o[l], e, l))
}
}
}
function r(t, e, n) {
i(!u.eventNameDispatchConfigs[n]), u.eventNameDispatchConfigs[n] = t;
var r = t.phasedRegistrationNames;
if (r) {
for (var s in r)
if (r.hasOwnProperty(s)) {
var a = r[s];
o(a, e, n)
}
return !0
}
return t.registrationName ? (o(t.registrationName, e, n), !0) : !1
}
function o(t, e, n) {
i(!u.registrationNameModules[t]), u.registrationNameModules[t] = e, u.registrationNameDependencies[t] = e.eventTypes[n].dependencies
}
var i = t("./invariant"),
s = null,
a = {},
u = {
plugins: [],
eventNameDispatchConfigs: {},
registrationNameModules: {},
registrationNameDependencies: {},
injectEventPluginOrder: function (t) {
i(!s), s = Array.prototype.slice.call(t), n()
},
injectEventPluginsByName: function (t) {
var e = !1;
for (var r in t)
if (t.hasOwnProperty(r)) {
var o = t[r];
a[r] !== o && (i(!a[r]), a[r] = o, e = !0)
}
e && n()
},
getPluginModuleForEvent: function (t) {
var e = t.dispatchConfig;
if (e.registrationName) return u.registrationNameModules[e.registrationName] || null;
for (var n in e.phasedRegistrationNames)
if (e.phasedRegistrationNames.hasOwnProperty(n)) {
var r = u.registrationNameModules[e.phasedRegistrationNames[n]];
if (r) return r
}
return null
},
_resetEventPlugins: function () {
s = null;
for (var t in a) a.hasOwnProperty(t) && delete a[t];
u.plugins.length = 0;
var e = u.eventNameDispatchConfigs;
for (var n in e) e.hasOwnProperty(n) && delete e[n];
var r = u.registrationNameModules;
for (var o in r) r.hasOwnProperty(o) && delete r[o]
}
};
e.exports = u
}, {
"./invariant": 110
}
],
18: [
function (t, e) {
"use strict";
function n(t) {
return t === f.topMouseUp || t === f.topTouchEnd || t === f.topTouchCancel
}
function r(t) {
return t === f.topMouseMove || t === f.topTouchMove
}
function o(t) {
return t === f.topMouseDown || t === f.topTouchStart
}
function i(t, e) {
var n = t._dispatchListeners,
r = t._dispatchIDs;
if (Array.isArray(n))
for (var o = 0; o < n.length && !t.isPropagationStopped(); o++) e(t, n[o], r[o]);
else n && e(t, n, r)
}
function s(t, e, n) {
t.currentTarget = h.Mount.getNode(n);
var r = e(t, n);
return t.currentTarget = null, r
}
function a(t, e) {
i(t, e), t._dispatchListeners = null, t._dispatchIDs = null
}
function u(t) {
var e = t._dispatchListeners,
n = t._dispatchIDs;
if (Array.isArray(e)) {
for (var r = 0; r < e.length && !t.isPropagationStopped(); r++)
if (e[r](t, n[r])) return n[r]
} else if (e && e(t, n)) return n;
return null
}
function l(t) {
var e = t._dispatchListeners,
n = t._dispatchIDs;
d(!Array.isArray(e));
var r = e ? e(t, n) : null;
return t._dispatchListeners = null, t._dispatchIDs = null, r
}
function c(t) {
return !!t._dispatchListeners
}
var p = t("./EventConstants"),
d = t("./invariant"),
h = {
Mount: null,
injectMount: function (t) {
h.Mount = t
}
},
f = p.topLevelTypes,
m = {
isEndish: n,
isMoveish: r,
isStartish: o,
executeDirectDispatch: l,
executeDispatch: s,
executeDispatchesInOrder: a,
executeDispatchesInOrderStopAtTrue: u,
hasDispatches: c,
injection: h,
useTouchEvents: !1
};
e.exports = m
}, {
"./EventConstants": 14,
"./invariant": 110
}
],
19: [
function (t, e) {
"use strict";
function n(t, e, n) {
var r = e.dispatchConfig.phasedRegistrationNames[n];
return m(t, r)
}
function r(t, e, r) {
var o = e ? f.bubbled : f.captured,
i = n(t, r, o);
i && (r._dispatchListeners = d(r._dispatchListeners, i), r._dispatchIDs = d(r._dispatchIDs, t))
}
function o(t) {
t && t.dispatchConfig.phasedRegistrationNames && p.injection.getInstanceHandle().traverseTwoPhase(t.dispatchMarker, r, t)
}
function i(t, e, n) {
if (n && n.dispatchConfig.registrationName) {
var r = n.dispatchConfig.registrationName,
o = m(t, r);
o && (n._dispatchListeners = d(n._dispatchListeners, o), n._dispatchIDs = d(n._dispatchIDs, t))
}
}
function s(t) {
t && t.dispatchConfig.registrationName && i(t.dispatchMarker, null, t)
}
function a(t) {
h(t, o)
}
function u(t, e, n, r) {
p.injection.getInstanceHandle().traverseEnterLeave(n, r, i, t, e)
}
function l(t) {
h(t, s)
}
var c = t("./EventConstants"),
p = t("./EventPluginHub"),
d = t("./accumulate"),
h = t("./forEachAccumulated"),
f = c.PropagationPhases,
m = p.getListener,
g = {
accumulateTwoPhaseDispatches: a,
accumulateDirectDispatches: l,
accumulateEnterLeaveDispatches: u
};
e.exports = g
}, {
"./EventConstants": 14,
"./EventPluginHub": 16,
"./accumulate": 85,
"./forEachAccumulated": 99
}
],
20: [
function (t, e) {
"use strict";
var n = "undefined" != typeof window,
r = {
canUseDOM: n,
canUseWorkers: "undefined" != typeof Worker,
canUseEventListeners: n && (window.addEventListener || window.attachEvent),
isInWorker: !n
};
e.exports = r
}, {}
],
21: [
function (t, e) {
"use strict";
function n(t) {
u(null == t.props.checkedLink || null == t.props.valueLink)
}
function r(t) {
n(t), u(null == t.props.value && null == t.props.onChange)
}
function o(t) {
n(t), u(null == t.props.checked && null == t.props.onChange)
}
function i(t) {
this.props.valueLink.requestChange(t.target.value)
}
function s(t) {
this.props.checkedLink.requestChange(t.target.checked)
}
var a = t("./ReactPropTypes"),
u = t("./invariant"),
l = (t("./warning"), {
Mixin: {
propTypes: {
value: function () {},
checked: function () {},
onChange: a.func
}
},
getValue: function (t) {
return t.props.valueLink ? (r(t), t.props.valueLink.value) : t.props.value
},
getChecked: function (t) {
return t.props.checkedLink ? (o(t), t.props.checkedLink.value) : t.props.checked
},
getOnChange: function (t) {
return t.props.valueLink ? (r(t), i) : t.props.checkedLink ? (o(t), s) : t.props.onChange
}
});
e.exports = l
}, {
"./ReactPropTypes": 62,
"./invariant": 110,
"./warning": 131
}
],
22: [
function (t, e) {
"use strict";
var n = t("./EventConstants"),
r = t("./emptyFunction"),
o = n.topLevelTypes,
i = {
eventTypes: null,
extractEvents: function (t, e, n, i) {
if (t === o.topTouchStart) {
var s = i.target;
s && !s.onclick && (s.onclick = r)
}
}
};
e.exports = i
}, {
"./EventConstants": 14,
"./emptyFunction": 94
}
],
23: [
function (t, e) {
"use strict";
var n = t("./invariant"),
r = function (t) {
var e = this;
if (e.instancePool.length) {
var n = e.instancePool.pop();
return e.call(n, t), n
}
return new e(t)
},
o = function (t, e) {
var n = this;
if (n.instancePool.length) {
var r = n.instancePool.pop();
return n.call(r, t, e), r
}
return new n(t, e)
},
i = function (t, e, n) {
var r = this;
if (r.instancePool.length) {
var o = r.instancePool.pop();
return r.call(o, t, e, n), o
}
return new r(t, e, n)
},
s = function (t, e, n, r, o) {
var i = this;
if (i.instancePool.length) {
var s = i.instancePool.pop();
return i.call(s, t, e, n, r, o), s
}
return new i(t, e, n, r, o)
},
a = function (t) {
var e = this;
n(t instanceof e), t.destructor && t.destructor(), e.instancePool.length < e.poolSize && e.instancePool.push(t)
},
u = 10,
l = r,
c = function (t, e) {
var n = t;
return n.instancePool = [], n.getPooled = e || l, n.poolSize || (n.poolSize = u), n.release = a, n
},
p = {
addPoolingTo: c,
oneArgumentPooler: r,
twoArgumentPooler: o,
threeArgumentPooler: i,
fiveArgumentPooler: s
};
e.exports = p
}, {
"./invariant": 110
}
],
24: [
function (t, e) {
"use strict";
var n = t("./DOMPropertyOperations"),
r = t("./EventPluginUtils"),
o = t("./ReactChildren"),
i = t("./ReactComponent"),
s = t("./ReactCompositeComponent"),
a = t("./ReactContext"),
u = t("./ReactCurrentOwner"),
l = t("./ReactDOM"),
c = t("./ReactDOMComponent"),
p = t("./ReactDefaultInjection"),
d = t("./ReactInstanceHandles"),
h = t("./ReactMount"),
f = t("./ReactMultiChild"),
m = t("./ReactPerf"),
g = t("./ReactPropTypes"),
v = t("./ReactServerRendering"),
y = t("./ReactTextComponent"),
w = t("./onlyChild");
p.inject();
var _ = {
Children: {
map: o.map,
forEach: o.forEach,
only: w
},
DOM: l,
PropTypes: g,
initializeTouchEvents: function (t) {
r.useTouchEvents = t
},
createClass: s.createClass,
constructAndRenderComponent: h.constructAndRenderComponent,
constructAndRenderComponentByID: h.constructAndRenderComponentByID,
renderComponent: m.measure("React", "renderComponent", h.renderComponent),
renderComponentToString: v.renderComponentToString,
renderComponentToStaticMarkup: v.renderComponentToStaticMarkup,
unmountComponentAtNode: h.unmountComponentAtNode,
isValidClass: s.isValidClass,
isValidComponent: i.isValidComponent,
withContext: a.withContext,
__internals: {
Component: i,
CurrentOwner: u,
DOMComponent: c,
DOMPropertyOperations: n,
InstanceHandles: d,
Mount: h,
MultiChild: f,
TextComponent: y
}
};
_.version = "0.10.0", e.exports = _
}, {
"./DOMPropertyOperations": 9,
"./EventPluginUtils": 18,
"./ReactChildren": 26,
"./ReactComponent": 27,
"./ReactCompositeComponent": 29,
"./ReactContext": 30,
"./ReactCurrentOwner": 31,
"./ReactDOM": 32,
"./ReactDOMComponent": 34,
"./ReactDefaultInjection": 44,
"./ReactInstanceHandles": 51,
"./ReactMount": 53,
"./ReactMultiChild": 55,
"./ReactPerf": 58,
"./ReactPropTypes": 62,
"./ReactServerRendering": 66,
"./ReactTextComponent": 68,
"./onlyChild": 126
}
],
25: [
function (t, e) {
"use strict";
var n = t("./ReactMount"),
r = t("./invariant"),
o = {
getDOMNode: function () {
return r(this.isMounted()), n.getNode(this._rootNodeID)
}
};
e.exports = o
}, {
"./ReactMount": 53,
"./invariant": 110
}
],
26: [
function (t, e) {
"use strict";
function n(t, e) {
this.forEachFunction = t, this.forEachContext = e
}
function r(t, e, n, r) {
var o = t;
o.forEachFunction.call(o.forEachContext, e, r)
}
function o(t, e, o) {
if (null == t) return t;
var i = n.getPooled(e, o);
c(t, r, i), n.release(i)
}
function i(t, e, n) {
this.mapResult = t, this.mapFunction = e, this.mapContext = n
}
function s(t, e, n, r) {
var o = t,
i = o.mapResult,
s = o.mapFunction.call(o.mapContext, e, r);
l(!i.hasOwnProperty(n)), i[n] = s
}
function a(t, e, n) {
if (null == t) return t;
var r = {},
o = i.getPooled(r, e, n);
return c(t, s, o), i.release(o), r
}
var u = t("./PooledClass"),
l = t("./invariant"),
c = t("./traverseAllChildren"),
p = u.twoArgumentPooler,
d = u.threeArgumentPooler;
u.addPoolingTo(n, p), u.addPoolingTo(i, d);
var h = {
forEach: o,
map: a
};
e.exports = h
}, {
"./PooledClass": 23,
"./invariant": 110,
"./traverseAllChildren": 130
}
],
27: [
function (t, e) {
"use strict";
var n = t("./ReactCurrentOwner"),
r = t("./ReactOwner"),
o = t("./ReactUpdates"),
i = t("./invariant"),
s = t("./keyMirror"),
a = t("./merge"),
u = (t("./monitorCodeUse"), s({
MOUNTED: null,
UNMOUNTED: null
})),
l = !1,
c = null,
p = null,
d = {
injection: {
injectEnvironment: function (t) {
i(!l), p = t.mountImageIntoNode, c = t.unmountIDFromEnvironment, d.BackendIDOperations = t.BackendIDOperations, d.ReactReconcileTransaction = t.ReactReconcileTransaction, l = !0
}
},
isValidComponent: function (t) {
if (!t || !t.type || !t.type.prototype) return !1;
var e = t.type.prototype;
return "function" == typeof e.mountComponentIntoNode && "function" == typeof e.receiveComponent
},
LifeCycle: u,
BackendIDOperations: null,
ReactReconcileTransaction: null,
Mixin: {
isMounted: function () {
return this._lifeCycleState === u.MOUNTED
},
setProps: function (t, e) {
this.replaceProps(a(this._pendingProps || this.props, t), e)
},
replaceProps: function (t, e) {
i(this.isMounted()), i(0 === this._mountDepth), this._pendingProps = t, o.enqueueUpdate(this, e)
},
construct: function (t, e) {
this.props = t || {}, this._owner = n.current, this._lifeCycleState = u.UNMOUNTED, this._pendingProps = null, this._pendingCallbacks = null, this._pendingOwner = this._owner;
var r = arguments.length - 1;
if (1 === r) this.props.children = e;
else if (r > 1) {
for (var o = Array(r), i = 0; r > i; i++) o[i] = arguments[i + 1];
this.props.children = o
}
},
mountComponent: function (t, e, n) {
i(!this.isMounted());
var o = this.props;
null != o.ref && r.addComponentAsRefTo(this, o.ref, this._owner), this._rootNodeID = t, this._lifeCycleState = u.MOUNTED, this._mountDepth = n
},
unmountComponent: function () {
i(this.isMounted());
var t = this.props;
null != t.ref && r.removeComponentAsRefFrom(this, t.ref, this._owner), c(this._rootNodeID), this._rootNodeID = null, this._lifeCycleState = u.UNMOUNTED
},
receiveComponent: function (t, e) {
i(this.isMounted()), this._pendingOwner = t._owner, this._pendingProps = t.props, this._performUpdateIfNecessary(e)
},
performUpdateIfNecessary: function () {
var t = d.ReactReconcileTransaction.getPooled();
t.perform(this._performUpdateIfNecessary, this, t), d.ReactReconcileTransaction.release(t)
},
_performUpdateIfNecessary: function (t) {
if (null != this._pendingProps) {
var e = this.props,
n = this._owner;
this.props = this._pendingProps, this._owner = this._pendingOwner, this._pendingProps = null, this.updateComponent(t, e, n)
}
},
updateComponent: function (t, e, n) {
var o = this.props;
(this._owner !== n || o.ref !== e.ref) && (null != e.ref && r.removeComponentAsRefFrom(this, e.ref, n), null != o.ref && r.addComponentAsRefTo(this, o.ref, this._owner))
},
mountComponentIntoNode: function (t, e, n) {
var r = d.ReactReconcileTransaction.getPooled();
r.perform(this._mountComponentIntoNode, this, t, e, r, n), d.ReactReconcileTransaction.release(r)
},
_mountComponentIntoNode: function (t, e, n, r) {
var o = this.mountComponent(t, n, 0);
p(o, e, r)
},
isOwnedBy: function (t) {
return this._owner === t
},
getSiblingByRef: function (t) {
var e = this._owner;
return e && e.refs ? e.refs[t] : null
}
}
};
e.exports = d
}, {
"./ReactCurrentOwner": 31,
"./ReactOwner": 57,
"./ReactUpdates": 69,
"./invariant": 110,
"./keyMirror": 116,
"./merge": 119,
"./monitorCodeUse": 123
}
],
28: [
function (t, e) {
"use strict";
var n = t("./ReactDOMIDOperations"),
r = t("./ReactMarkupChecksum"),
o = t("./ReactMount"),
i = t("./ReactPerf"),
s = t("./ReactReconcileTransaction"),
a = t("./getReactRootElementInContainer"),
u = t("./invariant"),
l = 1,
c = 9,
p = {
ReactReconcileTransaction: s,
BackendIDOperations: n,
unmountIDFromEnvironment: function (t) {
o.purgeID(t)
},
mountImageIntoNode: i.measure("ReactComponentBrowserEnvironment", "mountImageIntoNode", function (t, e, n) {
if (u(e && (e.nodeType === l || e.nodeType === c)), n) {
if (r.canReuseMarkup(t, a(e))) return;
u(e.nodeType !== c)
}
u(e.nodeType !== c), e.innerHTML = t
})
};
e.exports = p
}, {
"./ReactDOMIDOperations": 36,
"./ReactMarkupChecksum": 52,
"./ReactMount": 53,
"./ReactPerf": 58,
"./ReactReconcileTransaction": 64,
"./getReactRootElementInContainer": 105,
"./invariant": 110
}
],
29: [
function (t, e) {
"use strict";
function n(t, e) {
for (var n in e) e.hasOwnProperty(n) && b("function" == typeof e[n])
}
function r(t, e) {
var n = R[e];
O.hasOwnProperty(e) && b(n === P.OVERRIDE_BASE), t.hasOwnProperty(e) && b(n === P.DEFINE_MANY || n === P.DEFINE_MANY_MERGED)
}
function o(t) {
var e = t._compositeLifeCycleState;
b(t.isMounted() || e === N.MOUNTING), b(e !== N.RECEIVING_STATE), b(e !== N.UNMOUNTING)
}
function i(t, e) {
b(!c(e)), b(!p.isValidComponent(e));
var n = t.componentConstructor,
o = n.prototype;
for (var i in e) {
var s = e[i];
if (e.hasOwnProperty(i))
if (r(o, i), M.hasOwnProperty(i)) M[i](t, s);
else {
var a = i in R,
d = i in o,
h = s && s.__reactDontBind,
f = "function" == typeof s,
m = f && !a && !d && !h;
m ? (o.__reactAutoBindMap || (o.__reactAutoBindMap = {}), o.__reactAutoBindMap[i] = s, o[i] = s) : o[i] = d ? R[i] === P.DEFINE_MANY_MERGED ? u(o[i], s) : l(o[i], s) : s
}
}
}
function s(t, e) {
if (e)
for (var n in e) {
var r = e[n];
if (!e.hasOwnProperty(n)) return;
var o = n in t,
i = r;
if (o) {
var s = t[n],
a = typeof s,
u = typeof r;
b("function" === a && "function" === u), i = l(s, r)
}
t[n] = i, t.componentConstructor[n] = i
}
}
function a(t, e) {
return b(t && e && "object" == typeof t && "object" == typeof e), C(e, function (e, n) {
b(void 0 === t[n]), t[n] = e
}), t
}
function u(t, e) {
return function () {
var n = t.apply(this, arguments),
r = e.apply(this, arguments);
return null == n ? r : null == r ? n : a(n, r)
}
}
function l(t, e) {
return function () {
t.apply(this, arguments), e.apply(this, arguments)
}
}
function c(t) {
return t instanceof Function && "componentConstructor" in t && t.componentConstructor instanceof Function
}
var p = t("./ReactComponent"),
d = t("./ReactContext"),
h = t("./ReactCurrentOwner"),
f = t("./ReactErrorUtils"),
m = t("./ReactOwner"),
g = t("./ReactPerf"),
v = t("./ReactPropTransferer"),
y = t("./ReactPropTypeLocations"),
w = (t("./ReactPropTypeLocationNames"), t("./ReactUpdates")),
_ = t("./instantiateReactComponent"),
b = t("./invariant"),
x = t("./keyMirror"),
k = t("./merge"),
T = t("./mixInto"),
C = (t("./monitorCodeUse"), t("./objMap")),
E = t("./shouldUpdateReactComponent"),
P = (t("./warning"), x({
DEFINE_ONCE: null,
DEFINE_MANY: null,
OVERRIDE_BASE: null,
DEFINE_MANY_MERGED: null
})),
S = [],
R = {
mixins: P.DEFINE_MANY,
statics: P.DEFINE_MANY,
propTypes: P.DEFINE_MANY,
contextTypes: P.DEFINE_MANY,
childContextTypes: P.DEFINE_MANY,
getDefaultProps: P.DEFINE_MANY_MERGED,
getInitialState: P.DEFINE_MANY_MERGED,
getChildContext: P.DEFINE_MANY_MERGED,
render: P.DEFINE_ONCE,
componentWillMount: P.DEFINE_MANY,
componentDidMount: P.DEFINE_MANY,
componentWillReceiveProps: P.DEFINE_MANY,
shouldComponentUpdate: P.DEFINE_ONCE,
componentWillUpdate: P.DEFINE_MANY,
componentDidUpdate: P.DEFINE_MANY,
componentWillUnmount: P.DEFINE_MANY,
updateComponent: P.OVERRIDE_BASE
},
M = {
displayName: function (t, e) {
t.componentConstructor.displayName = e
},
mixins: function (t, e) {
if (e)
for (var n = 0; n < e.length; n++) i(t, e[n])
},
childContextTypes: function (t, e) {
var r = t.componentConstructor;
n(r, e, y.childContext), r.childContextTypes = k(r.childContextTypes, e)
},
contextTypes: function (t, e) {
var r = t.componentConstructor;
n(r, e, y.context), r.contextTypes = k(r.contextTypes, e)
},
propTypes: function (t, e) {
var r = t.componentConstructor;
n(r, e, y.prop), r.propTypes = k(r.propTypes, e)
},
statics: function (t, e) {
s(t, e)
}
},
N = x({
MOUNTING: null,
UNMOUNTING: null,
RECEIVING_PROPS: null,
RECEIVING_STATE: null
}),
O = {
construct: function () {
p.Mixin.construct.apply(this, arguments), m.Mixin.construct.apply(this, arguments), this.state = null, this._pendingState = null, this.context = null, this._currentContext = d.current, this._pendingContext = null, this._descriptor = null, this._compositeLifeCycleState = null
},
toJSON: function () {
return {
type: this.type,
props: this.props
}
},
isMounted: function () {
return p.Mixin.isMounted.call(this) && this._compositeLifeCycleState !== N.MOUNTING
},
mountComponent: g.measure("ReactCompositeComponent", "mountComponent", function (t, e, n) {
p.Mixin.mountComponent.call(this, t, e, n), this._compositeLifeCycleState = N.MOUNTING, this.context = this._processContext(this._currentContext), this._defaultProps = this.getDefaultProps ? this.getDefaultProps() : null, this.props = this._processProps(this.props), this.__reactAutoBindMap && this._bindAutoBindMethods(), this.state = this.getInitialState ? this.getInitialState() : null, b("object" == typeof this.state && !Array.isArray(this.state)), this._pendingState = null, this._pendingForceUpdate = !1, this.componentWillMount && (this.componentWillMount(), this._pendingState && (this.state = this._pendingState, this._pendingState = null)), this._renderedComponent = _(this._renderValidatedComponent()), this._compositeLifeCycleState = null;
var r = this._renderedComponent.mountComponent(t, e, n + 1);
return this.componentDidMount && e.getReactMountReady().enqueue(this, this.componentDidMount), r
}),
unmountComponent: function () {
this._compositeLifeCycleState = N.UNMOUNTING, this.componentWillUnmount && this.componentWillUnmount(), this._compositeLifeCycleState = null, this._defaultProps = null, this._renderedComponent.unmountComponent(), this._renderedComponent = null, p.Mixin.unmountComponent.call(this)
},
setState: function (t, e) {
b("object" == typeof t || null == t), this.replaceState(k(this._pendingState || this.state, t), e)
},
replaceState: function (t, e) {
o(this), this._pendingState = t, w.enqueueUpdate(this, e)
},
_processContext: function (t) {
var e = null,
n = this.constructor.contextTypes;
if (n) {
e = {};
for (var r in n) e[r] = t[r]
}
return e
},
_processChildContext: function (t) {
var e = this.getChildContext && this.getChildContext();
if (this.constructor.displayName || "ReactCompositeComponent", e) {
b("object" == typeof this.constructor.childContextTypes);
for (var n in e) b(n in this.constructor.childContextTypes);
return k(t, e)
}
return t
},
_processProps: function (t) {
var e = k(t),
n = this._defaultProps;
for (var r in n) "undefined" == typeof e[r] && (e[r] = n[r]);
return e
},
_checkPropTypes: function (t, e, n) {
var r = this.constructor.displayName;
for (var o in t) t.hasOwnProperty(o) && t[o](e, o, r, n)
},
performUpdateIfNecessary: function () {
var t = this._compositeLifeCycleState;
t !== N.MOUNTING && t !== N.RECEIVING_PROPS && p.Mixin.performUpdateIfNecessary.call(this)
},
_performUpdateIfNecessary: function (t) {
if (null != this._pendingProps || null != this._pendingState || null != this._pendingContext || this._pendingForceUpdate) {
var e = this._pendingContext || this._currentContext,
n = this._processContext(e);
this._pendingContext = null;
var r = this.props;
null != this._pendingProps && (r = this._processProps(this._pendingProps), this._pendingProps = null, this._compositeLifeCycleState = N.RECEIVING_PROPS, this.componentWillReceiveProps && this.componentWillReceiveProps(r, n)), this._compositeLifeCycleState = N.RECEIVING_STATE;
var o = this._pendingOwner,
i = this._pendingState || this.state;
this._pendingState = null;
try {
this._pendingForceUpdate || !this.shouldComponentUpdate || this.shouldComponentUpdate(r, i, n) ? (this._pendingForceUpdate = !1, this._performComponentUpdate(r, o, i, e, n, t)) : (this.props = r, this._owner = o, this.state = i, this._currentContext = e, this.context = n)
} finally {
this._compositeLifeCycleState = null
}
}
},
_performComponentUpdate: function (t, e, n, r, o, i) {
var s = this.props,
a = this._owner,
u = this.state,
l = this.context;
this.componentWillUpdate && this.componentWillUpdate(t, n, o), this.props = t, this._owner = e, this.state = n, this._currentContext = r, this.context = o, this.updateComponent(i, s, a, u, l), this.componentDidUpdate && i.getReactMountReady().enqueue(this, this.componentDidUpdate.bind(this, s, u, l))
},
receiveComponent: function (t, e) {
t !== this._descriptor && (this._descriptor = t, this._pendingContext = t._currentContext, p.Mixin.receiveComponent.call(this, t, e))
},
updateComponent: g.measure("ReactCompositeComponent", "updateComponent", function (t, e, n) {
p.Mixin.updateComponent.call(this, t, e, n);
var r = this._renderedComponent,
o = this._renderValidatedComponent();
if (E(r, o)) r.receiveComponent(o, t);
else {
var i = this._rootNodeID,
s = r._rootNodeID;
r.unmountComponent(), this._renderedComponent = _(o);
var a = this._renderedComponent.mountComponent(i, t, this._mountDepth + 1);
p.BackendIDOperations.dangerouslyReplaceNodeWithMarkupByID(s, a)
}
}),
forceUpdate: function (t) {
var e = this._compositeLifeCycleState;
b(this.isMounted() || e === N.MOUNTING), b(e !== N.RECEIVING_STATE && e !== N.UNMOUNTING), this._pendingForceUpdate = !0, w.enqueueUpdate(this, t)
},
_renderValidatedComponent: g.measure("ReactCompositeComponent", "_renderValidatedComponent", function () {
var t, e = d.current;
d.current = this._processChildContext(this._currentContext), h.current = this;
try {
t = this.render()
} finally {
d.current = e, h.current = null
}
return b(p.isValidComponent(t)), t
}),
_bindAutoBindMethods: function () {
for (var t in this.__reactAutoBindMap)
if (this.__reactAutoBindMap.hasOwnProperty(t)) {
var e = this.__reactAutoBindMap[t];
this[t] = this._bindAutoBindMethod(f.guard(e, this.constructor.displayName + "." + t))
}
},
_bindAutoBindMethod: function (t) {
var e = this,
n = function () {
return t.apply(e, arguments)
};
return n
}
},
F = function () {};
T(F, p.Mixin), T(F, m.Mixin), T(F, v.Mixin), T(F, O);
var A = {
LifeCycle: N,
Base: F,
createClass: function (t) {
var e = function () {};
e.prototype = new F, e.prototype.constructor = e;
var n = e,
r = function () {
var t = new n;
return t.construct.apply(t, arguments), t
};
r.componentConstructor = e, e.ConvenienceConstructor = r, r.originalSpec = t, S.forEach(i.bind(null, r)), i(r, t), b(e.prototype.render), r.type = e, e.prototype.type = e;
for (var o in R) e.prototype[o] || (e.prototype[o] = null);
return r
},
isValidClass: c,
injection: {
injectMixin: function (t) {
S.push(t)
}
}
};
e.exports = A
}, {
"./ReactComponent": 27,
"./ReactContext": 30,
"./ReactCurrentOwner": 31,
"./ReactErrorUtils": 45,
"./ReactOwner": 57,
"./ReactPerf": 58,
"./ReactPropTransferer": 59,
"./ReactPropTypeLocationNames": 60,
"./ReactPropTypeLocations": 61,
"./ReactUpdates": 69,
"./instantiateReactComponent": 109,
"./invariant": 110,
"./keyMirror": 116,
"./merge": 119,
"./mixInto": 122,
"./monitorCodeUse": 123,
"./objMap": 124,
"./shouldUpdateReactComponent": 128,
"./warning": 131
}
],
30: [
function (t, e) {
"use strict";
var n = t("./merge"),
r = {
current: {},
withContext: function (t, e) {
var o, i = r.current;
r.current = n(i, t);
try {
o = e()
} finally {
r.current = i
}
return o
}
};
e.exports = r
}, {
"./merge": 119
}
],
31: [
function (t, e) {
"use strict";
var n = {
current: null
};
e.exports = n
}, {}
],
32: [
function (t, e) {
"use strict";
function n(t, e) {
var n = function () {};
n.prototype = new r(t, e), n.prototype.constructor = n, n.displayName = t;
var o = function () {
var t = new n;
return t.construct.apply(t, arguments), t
};
return o.type = n, n.prototype.type = n, n.ConvenienceConstructor = o, o.componentConstructor = n, o
}
var r = t("./ReactDOMComponent"),
o = t("./mergeInto"),
i = t("./objMapKeyVal"),
s = i({
a: !1,
abbr: !1,
address: !1,
area: !0,
article: !1,
aside: !1,
audio: !1,
b: !1,
base: !0,
bdi: !1,
bdo: !1,
big: !1,
blockquote: !1,
body: !1,
br: !0,
button: !1,
canvas: !1,
caption: !1,
cite: !1,
code: !1,
col: !0,
colgroup: !1,
data: !1,
datalist: !1,
dd: !1,
del: !1,
details: !1,
dfn: !1,
div: !1,
dl: !1,
dt: !1,
em: !1,
embed: !0,
fieldset: !1,
figcaption: !1,
figure: !1,
footer: !1,
form: !1,
h1: !1,
h2: !1,
h3: !1,
h4: !1,
h5: !1,
h6: !1,
head: !1,
header: !1,
hr: !0,
html: !1,
i: !1,
iframe: !1,
img: !0,
input: !0,
ins: !1,
kbd: !1,
keygen: !0,
label: !1,
legend: !1,
li: !1,
link: !0,
main: !1,
map: !1,
mark: !1,
menu: !1,
menuitem: !1,
meta: !0,
meter: !1,
nav: !1,
noscript: !1,
object: !1,
ol: !1,
optgroup: !1,
option: !1,
output: !1,
p: !1,
param: !0,
pre: !1,
progress: !1,
q: !1,
rp: !1,
rt: !1,
ruby: !1,
s: !1,
samp: !1,
script: !1,
section: !1,
select: !1,
small: !1,
source: !0,
span: !1,
strong: !1,
style: !1,
sub: !1,
summary: !1,
sup: !1,
table: !1,
tbody: !1,
td: !1,
textarea: !1,
tfoot: !1,
th: !1,
thead: !1,
time: !1,
title: !1,
tr: !1,
track: !0,
u: !1,
ul: !1,
"var": !1,
video: !1,
wbr: !0,
circle: !1,
defs: !1,
g: !1,
line: !1,
linearGradient: !1,
path: !1,
polygon: !1,
polyline: !1,
radialGradient: !1,
rect: !1,
stop: !1,
svg: !1,
text: !1
}, n),
a = {
injectComponentClasses: function (t) {
o(s, t)
}
};
s.injection = a, e.exports = s
}, {
"./ReactDOMComponent": 34,
"./mergeInto": 121,
"./objMapKeyVal": 125
}
],
33: [
function (t, e) {
"use strict";
var n = t("./AutoFocusMixin"),
r = t("./ReactBrowserComponentMixin"),
o = t("./ReactCompositeComponent"),
i = t("./ReactDOM"),
s = t("./keyMirror"),
a = i.button,
u = s({
onClick: !0,
onDoubleClick: !0,
onMouseDown: !0,
onMouseMove: !0,
onMouseUp: !0,
onClickCapture: !0,
onDoubleClickCapture: !0,
onMouseDownCapture: !0,
onMouseMoveCapture: !0,
onMouseUpCapture: !0
}),
l = o.createClass({
displayName: "ReactDOMButton",
mixins: [n, r],
render: function () {
var t = {};
for (var e in this.props)!this.props.hasOwnProperty(e) || this.props.disabled && u[e] || (t[e] = this.props[e]);
return a(t, this.props.children)
}
});
e.exports = l
}, {
"./AutoFocusMixin": 1,
"./ReactBrowserComponentMixin": 25,
"./ReactCompositeComponent": 29,
"./ReactDOM": 32,
"./keyMirror": 116
}
],
34: [
function (t, e) {
"use strict";
function n(t) {
t && (m(null == t.children || null == t.dangerouslySetInnerHTML), m(null == t.style || "object" == typeof t.style))
}
function r(t, e, n, r) {
var o = p.findReactContainerForID(t);
if (o) {
var i = o.nodeType === T ? o.ownerDocument : o;
_(e, i)
}
r.getPutListenerQueue().enqueuePutListener(t, e, n)
}
function o(t, e) {
this._tagOpen = "<" + t, this._tagClose = e ? "" : "</" + t + ">", this.tagName = t.toUpperCase()
}
var i = t("./CSSPropertyOperations"),
s = t("./DOMProperty"),
a = t("./DOMPropertyOperations"),
u = t("./ReactBrowserComponentMixin"),
l = t("./ReactComponent"),
c = t("./ReactEventEmitter"),
p = t("./ReactMount"),
d = t("./ReactMultiChild"),
h = t("./ReactPerf"),
f = t("./escapeTextForBrowser"),
m = t("./invariant"),
g = t("./keyOf"),
v = t("./merge"),
y = t("./mixInto"),
w = c.deleteListener,
_ = c.listenTo,
b = c.registrationNameModules,
x = {
string: !0,
number: !0
},
k = g({
style: null
}),
T = 1;
o.Mixin = {
mountComponent: h.measure("ReactDOMComponent", "mountComponent", function (t, e, r) {
return l.Mixin.mountComponent.call(this, t, e, r), n(this.props), this._createOpenTagMarkupAndPutListeners(e) + this._createContentMarkup(e) + this._tagClose
}),
_createOpenTagMarkupAndPutListeners: function (t) {
var e = this.props,
n = this._tagOpen;
for (var o in e)
if (e.hasOwnProperty(o)) {
var s = e[o];
if (null != s)
if (b[o]) r(this._rootNodeID, o, s, t);
else {
o === k && (s && (s = e.style = v(e.style)), s = i.createMarkupForStyles(s));
var u = a.createMarkupForProperty(o, s);
u && (n += " " + u)
}
}
if (t.renderToStaticMarkup) return n + ">";
var l = a.createMarkupForID(this._rootNodeID);
return n + " " + l + ">"
},
_createContentMarkup: function (t) {
var e = this.props.dangerouslySetInnerHTML;
if (null != e) {
if (null != e.__html) return e.__html
} else {
var n = x[typeof this.props.children] ? this.props.children : null,
r = null != n ? null : this.props.children;
if (null != n) return f(n);
if (null != r) {
var o = this.mountChildren(r, t);
return o.join("")
}
}
return ""
},
receiveComponent: function (t, e) {
t !== this && (n(t.props), l.Mixin.receiveComponent.call(this, t, e))
},
updateComponent: h.measure("ReactDOMComponent", "updateComponent", function (t, e, n) {
l.Mixin.updateComponent.call(this, t, e, n), this._updateDOMProperties(e, t), this._updateDOMChildren(e, t)
}),
_updateDOMProperties: function (t, e) {
var n, o, i, a = this.props;
for (n in t)
if (!a.hasOwnProperty(n) && t.hasOwnProperty(n))
if (n === k) {
var u = t[n];
for (o in u) u.hasOwnProperty(o) && (i = i || {}, i[o] = "")
} else b[n] ? w(this._rootNodeID, n) : (s.isStandardName[n] || s.isCustomAttribute(n)) && l.BackendIDOperations.deletePropertyByID(this._rootNodeID, n);
for (n in a) {
var c = a[n],
p = t[n];
if (a.hasOwnProperty(n) && c !== p)
if (n === k)
if (c && (c = a.style = v(c)), p) {
for (o in p) p.hasOwnProperty(o) && !c.hasOwnProperty(o) && (i = i || {}, i[o] = "");
for (o in c) c.hasOwnProperty(o) && p[o] !== c[o] && (i = i || {}, i[o] = c[o])
} else i = c;
else b[n] ? r(this._rootNodeID, n, c, e) : (s.isStandardName[n] || s.isCustomAttribute(n)) && l.BackendIDOperations.updatePropertyByID(this._rootNodeID, n, c)
}
i && l.BackendIDOperations.updateStylesByID(this._rootNodeID, i)
},
_updateDOMChildren: function (t, e) {
var n = this.props,
r = x[typeof t.children] ? t.children : null,
o = x[typeof n.children] ? n.children : null,
i = t.dangerouslySetInnerHTML && t.dangerouslySetInnerHTML.__html,
s = n.dangerouslySetInnerHTML && n.dangerouslySetInnerHTML.__html,
a = null != r ? null : t.children,
u = null != o ? null : n.children,
c = null != r || null != i,
p = null != o || null != s;
null != a && null == u ? this.updateChildren(null, e) : c && !p && this.updateTextContent(""), null != o ? r !== o && this.updateTextContent("" + o) : null != s ? i !== s && l.BackendIDOperations.updateInnerHTMLByID(this._rootNodeID, s) : null != u && this.updateChildren(u, e)
},
unmountComponent: function () {
this.unmountChildren(), c.deleteAllListeners(this._rootNodeID), l.Mixin.unmountComponent.call(this)
}
}, y(o, l.Mixin), y(o, o.Mixin), y(o, d.Mixin), y(o, u), e.exports = o
}, {
"./CSSPropertyOperations": 3,
"./DOMProperty": 8,
"./DOMPropertyOperations": 9,
"./ReactBrowserComponentMixin": 25,
"./ReactComponent": 27,
"./ReactEventEmitter": 46,
"./ReactMount": 53,
"./ReactMultiChild": 55,
"./ReactPerf": 58,
"./escapeTextForBrowser": 96,
"./invariant": 110,
"./keyOf": 117,
"./merge": 119,
"./mixInto": 122
}
],
35: [
function (t, e) {
"use strict";
var n = t("./ReactBrowserComponentMixin"),
r = t("./ReactCompositeComponent"),
o = t("./ReactDOM"),
i = t("./ReactEventEmitter"),
s = t("./EventConstants"),
a = o.form,
u = r.createClass({
displayName: "ReactDOMForm",
mixins: [n],
render: function () {
return this.transferPropsTo(a(null, this.props.children))
},
componentDidMount: function () {
i.trapBubbledEvent(s.topLevelTypes.topReset, "reset", this.getDOMNode()), i.trapBubbledEvent(s.topLevelTypes.topSubmit, "submit", this.getDOMNode())
}
});
e.exports = u
}, {
"./EventConstants": 14,
"./ReactBrowserComponentMixin": 25,
"./ReactCompositeComponent": 29,
"./ReactDOM": 32,
"./ReactEventEmitter": 46
}
],
36: [
function (t, e) {
"use strict";
var n, r = t("./CSSPropertyOperations"),
o = t("./DOMChildrenOperations"),
i = t("./DOMPropertyOperations"),
s = t("./ReactMount"),
a = t("./ReactPerf"),
u = t("./invariant"),
l = {
dangerouslySetInnerHTML: "`dangerouslySetInnerHTML` must be set using `updateInnerHTMLByID()`.",
style: "`style` must be set using `updateStylesByID()`."
},
c = {
updatePropertyByID: a.measure("ReactDOMIDOperations", "updatePropertyByID", function (t, e, n) {
var r = s.getNode(t);
u(!l.hasOwnProperty(e)), null != n ? i.setValueForProperty(r, e, n) : i.deleteValueForProperty(r, e)
}),
deletePropertyByID: a.measure("ReactDOMIDOperations", "deletePropertyByID", function (t, e, n) {
var r = s.getNode(t);
u(!l.hasOwnProperty(e)), i.deleteValueForProperty(r, e, n)
}),
updateStylesByID: a.measure("ReactDOMIDOperations", "updateStylesByID", function (t, e) {
var n = s.getNode(t);
r.setValueForStyles(n, e)
}),
updateInnerHTMLByID: a.measure("ReactDOMIDOperations", "updateInnerHTMLByID", function (t, e) {
var r = s.getNode(t);
if (void 0 === n) {
var o = document.createElement("div");
o.innerHTML = " ", n = "" === o.innerHTML
}
n && r.parentNode.replaceChild(r, r), n && e.match(/^[ \r\n\t\f]/) ? (r.innerHTML = "" + e, r.firstChild.deleteData(0, 1)) : r.innerHTML = e
}),
updateTextContentByID: a.measure("ReactDOMIDOperations", "updateTextContentByID", function (t, e) {
var n = s.getNode(t);
o.updateTextContent(n, e)
}),
dangerouslyReplaceNodeWithMarkupByID: a.measure("ReactDOMIDOperations", "dangerouslyReplaceNodeWithMarkupByID", function (t, e) {
var n = s.getNode(t);
o.dangerouslyReplaceNodeWithMarkup(n, e)
}),
dangerouslyProcessChildrenUpdates: a.measure("ReactDOMIDOperations", "dangerouslyProcessChildrenUpdates", function (t, e) {
for (var n = 0; n < t.length; n++) t[n].parentNode = s.getNode(t[n].parentID);
o.processUpdates(t, e)
})
};
e.exports = c
}, {
"./CSSPropertyOperations": 3,
"./DOMChildrenOperations": 7,
"./DOMPropertyOperations": 9,
"./ReactMount": 53,
"./ReactPerf": 58,
"./invariant": 110
}
],
37: [
function (t, e) {
"use strict";
var n = t("./ReactBrowserComponentMixin"),
r = t("./ReactCompositeComponent"),
o = t("./ReactDOM"),
i = t("./ReactEventEmitter"),
s = t("./EventConstants"),
a = o.img,
u = r.createClass({
displayName: "ReactDOMImg",
tagName: "IMG",
mixins: [n],
render: function () {
return a(this.props)
},
componentDidMount: function () {
var t = this.getDOMNode();
i.trapBubbledEvent(s.topLevelTypes.topLoad, "load", t), i.trapBubbledEvent(s.topLevelTypes.topError, "error", t)
}
});
e.exports = u
}, {
"./EventConstants": 14,
"./ReactBrowserComponentMixin": 25,
"./ReactCompositeComponent": 29,
"./ReactDOM": 32,
"./ReactEventEmitter": 46
}
],
38: [
function (t, e) {
"use strict";
var n = t("./AutoFocusMixin"),
r = t("./DOMPropertyOperations"),
o = t("./LinkedValueUtils"),
i = t("./ReactBrowserComponentMixin"),
s = t("./ReactCompositeComponent"),
a = t("./ReactDOM"),
u = t("./ReactMount"),
l = t("./invariant"),
c = t("./merge"),
p = a.input,
d = {},
h = s.createClass({
displayName: "ReactDOMInput",
mixins: [n, o.Mixin, i],
getInitialState: function () {
var t = this.props.defaultValue;
return {
checked: this.props.defaultChecked || !1,
value: null != t ? t : null
}
},
shouldComponentUpdate: function () {
return !this._isChanging
},
render: function () {
var t = c(this.props);
t.defaultChecked = null, t.defaultValue = null;
var e = o.getValue(this);
t.value = null != e ? e : this.state.value;
var n = o.getChecked(this);
return t.checked = null != n ? n : this.state.checked, t.onChange = this._handleChange, p(t, this.props.children)
},
componentDidMount: function () {
var t = u.getID(this.getDOMNode());
d[t] = this
},
componentWillUnmount: function () {
var t = this.getDOMNode(),
e = u.getID(t);
delete d[e]
},
componentDidUpdate: function () {
var t = this.getDOMNode();
null != this.props.checked && r.setValueForProperty(t, "checked", this.props.checked || !1);
var e = o.getValue(this);
null != e && r.setValueForProperty(t, "value", "" + e)
},
_handleChange: function (t) {
var e, n = o.getOnChange(this);
n && (this._isChanging = !0, e = n.call(this, t), this._isChanging = !1), this.setState({
checked: t.target.checked,
value: t.target.value
});
var r = this.props.name;
if ("radio" === this.props.type && null != r) {
for (var i = this.getDOMNode(), s = i; s.parentNode;) s = s.parentNode;
for (var a = s.querySelectorAll("input[name=" + JSON.stringify("" + r) + '][type="radio"]'), c = 0, p = a.length; p > c; c++) {
var h = a[c];
if (h !== i && h.form === i.form) {
var f = u.getID(h);
l(f);
var m = d[f];
l(m), m.setState({
checked: !1
})
}
}
}
return e
}
});
e.exports = h
}, {
"./AutoFocusMixin": 1,
"./DOMPropertyOperations": 9,
"./LinkedValueUtils": 21,
"./ReactBrowserComponentMixin": 25,
"./ReactCompositeComponent": 29,
"./ReactDOM": 32,
"./ReactMount": 53,
"./invariant": 110,
"./merge": 119
}
],
39: [
function (t, e) {
"use strict";
var n = t("./ReactBrowserComponentMixin"),
r = t("./ReactCompositeComponent"),
o = t("./ReactDOM"),
i = (t("./warning"), o.option),
s = r.createClass({
displayName: "ReactDOMOption",
mixins: [n],
componentWillMount: function () {},
render: function () {
return i(this.props, this.props.children)
}
});
e.exports = s
}, {
"./ReactBrowserComponentMixin": 25,
"./ReactCompositeComponent": 29,
"./ReactDOM": 32,
"./warning": 131
}
],
40: [
function (t, e) {
"use strict";
function n(t, e) {
null != t[e] && l(t.multiple ? Array.isArray(t[e]) : !Array.isArray(t[e]))
}
function r(t, e) {
var n, r, o, i = t.props.multiple,
s = null != e ? e : t.state.value,
a = t.getDOMNode().options;
if (i)
for (n = {}, r = 0, o = s.length; o > r; ++r) n["" + s[r]] = !0;
else n = "" + s;
for (r = 0, o = a.length; o > r; r++) {
var u = i ? n.hasOwnProperty(a[r].value) : a[r].value === n;
u !== a[r].selected && (a[r].selected = u)
}
}
var o = t("./AutoFocusMixin"),
i = t("./LinkedValueUtils"),
s = t("./ReactBrowserComponentMixin"),
a = t("./ReactCompositeComponent"),
u = t("./ReactDOM"),
l = t("./invariant"),
c = t("./merge"),
p = u.select,
d = a.createClass({
displayName: "ReactDOMSelect",
mixins: [o, i.Mixin, s],
propTypes: {
defaultValue: n,
value: n
},
getInitialState: function () {
return {
value: this.props.defaultValue || (this.props.multiple ? [] : "")
}
},
componentWillReceiveProps: function (t) {
!this.props.multiple && t.multiple ? this.setState({
value: [this.state.value]
}) : this.props.multiple && !t.multiple && this.setState({
value: this.state.value[0]
})
},
shouldComponentUpdate: function () {
return !this._isChanging
},
render: function () {
var t = c(this.props);
return t.onChange = this._handleChange, t.value = null, p(t, this.props.children)
},
componentDidMount: function () {
r(this, i.getValue(this))
},
componentDidUpdate: function () {
var t = i.getValue(this);
null != t && r(this, t)
},
_handleChange: function (t) {
var e, n = i.getOnChange(this);
n && (this._isChanging = !0, e = n.call(this, t), this._isChanging = !1);
var r;
if (this.props.multiple) {
r = [];
for (var o = t.target.options, s = 0, a = o.length; a > s; s++) o[s].selected && r.push(o[s].value)
} else r = t.target.value;
return this.setState({
value: r
}), e
}
});
e.exports = d
}, {
"./AutoFocusMixin": 1,
"./LinkedValueUtils": 21,
"./ReactBrowserComponentMixin": 25,
"./ReactCompositeComponent": 29,
"./ReactDOM": 32,
"./invariant": 110,
"./merge": 119
}
],
41: [
function (t, e) {
"use strict";
function n(t) {
var e = document.selection,
n = e.createRange(),
r = n.text.length,
o = n.duplicate();
o.moveToElementText(t), o.setEndPoint("EndToStart", n);
var i = o.text.length,
s = i + r;
return {
start: i,
end: s
}
}
function r(t) {
var e = window.getSelection();
if (0 === e.rangeCount) return null;
var n = e.anchorNode,
r = e.anchorOffset,
o = e.focusNode,
i = e.focusOffset,
s = e.getRangeAt(0),
a = s.toString().length,
u = s.cloneRange();
u.selectNodeContents(t), u.setEnd(s.startContainer, s.startOffset);
var l = u.toString().length,
c = l + a,
p = document.createRange();
p.setStart(n, r), p.setEnd(o, i);
var d = p.collapsed;
return p.detach(), {
start: d ? c : l,
end: d ? l : c
}
}
function o(t, e) {
var n, r, o = document.selection.createRange().duplicate();
"undefined" == typeof e.end ? (n = e.start, r = n) : e.start > e.end ? (n = e.end, r = e.start) : (n = e.start, r = e.end), o.moveToElementText(t), o.moveStart("character", n), o.setEndPoint("EndToStart", o), o.moveEnd("character", r - n), o.select()
}
function i(t, e) {
var n = window.getSelection(),
r = t[a()].length,
o = Math.min(e.start, r),
i = "undefined" == typeof e.end ? o : Math.min(e.end, r);
if (!n.extend && o > i) {
var u = i;
i = o, o = u
}
var l = s(t, o),
c = s(t, i);
if (l && c) {
var p = document.createRange();
p.setStart(l.node, l.offset), n.removeAllRanges(), o > i ? (n.addRange(p), n.extend(c.node, c.offset)) : (p.setEnd(c.node, c.offset), n.addRange(p)), p.detach()
}
}
var s = t("./getNodeForCharacterOffset"),
a = t("./getTextContentAccessor"),
u = {
getOffsets: function (t) {
var e = document.selection ? n : r;
return e(t)
},
setOffsets: function (t, e) {
var n = document.selection ? o : i;
n(t, e)
}
};
e.exports = u
}, {
"./getNodeForCharacterOffset": 104,
"./getTextContentAccessor": 106
}
],
42: [
function (t, e) {
"use strict";
var n = t("./AutoFocusMixin"),
r = t("./DOMPropertyOperations"),
o = t("./LinkedValueUtils"),
i = t("./ReactBrowserComponentMixin"),
s = t("./ReactCompositeComponent"),
a = t("./ReactDOM"),
u = t("./invariant"),
l = t("./merge"),
c = (t("./warning"), a.textarea),
p = s.createClass({
displayName: "ReactDOMTextarea",
mixins: [n, o.Mixin, i],
getInitialState: function () {
var t = this.props.defaultValue,
e = this.props.children;
null != e && (u(null == t), Array.isArray(e) && (u(e.length <= 1), e = e[0]), t = "" + e), null == t && (t = "");
var n = o.getValue(this);
return {
initialValue: "" + (null != n ? n : t),
value: t
}
},
shouldComponentUpdate: function () {
return !this._isChanging
},
render: function () {
var t = l(this.props),
e = o.getValue(this);
return u(null == t.dangerouslySetInnerHTML), t.defaultValue = null, t.value = null != e ? e : this.state.value, t.onChange = this._handleChange, c(t, this.state.initialValue)
},
componentDidUpdate: function () {
var t = o.getValue(this);
if (null != t) {
var e = this.getDOMNode();
r.setValueForProperty(e, "value", "" + t)
}
},
_handleChange: function (t) {
var e, n = o.getOnChange(this);
return n && (this._isChanging = !0, e = n.call(this, t), this._isChanging = !1), this.setState({
value: t.target.value
}), e
}
});
e.exports = p
}, {
"./AutoFocusMixin": 1,
"./DOMPropertyOperations": 9,
"./LinkedValueUtils": 21,
"./ReactBrowserComponentMixin": 25,
"./ReactCompositeComponent": 29,
"./ReactDOM": 32,
"./invariant": 110,
"./merge": 119,
"./warning": 131
}
],
43: [
function (t, e) {
"use strict";
function n() {
this.reinitializeTransaction()
}
var r = t("./ReactUpdates"),
o = t("./Transaction"),
i = t("./emptyFunction"),
s = t("./mixInto"),
a = {
initialize: i,
close: function () {
p.isBatchingUpdates = !1
}
},
u = {
initialize: i,
close: r.flushBatchedUpdates.bind(r)
},
l = [u, a];
s(n, o.Mixin), s(n, {
getTransactionWrappers: function () {
return l
}
});
var c = new n,
p = {
isBatchingUpdates: !1,
batchedUpdates: function (t, e) {
var n = p.isBatchingUpdates;
p.isBatchingUpdates = !0, n ? t(e) : c.perform(t, null, e)
}
};
e.exports = p
}, {
"./ReactUpdates": 69,
"./Transaction": 83,
"./emptyFunction": 94,
"./mixInto": 122
}
],
44: [
function (t, e) {
"use strict";
function n() {
r.EventEmitter.injectTopLevelCallbackCreator(f), r.EventPluginHub.injectEventPluginOrder(l), r.EventPluginHub.injectInstanceHandle(k), r.EventPluginHub.injectMount(T), r.EventPluginHub.injectEventPluginsByName({
SimpleEventPlugin: P,
EnterLeaveEventPlugin: c,
ChangeEventPlugin: s,
CompositionEventPlugin: u,
MobileSafariClickEventPlugin: p,
SelectEventPlugin: C
}), r.DOM.injectComponentClasses({
button: g,
form: v,
img: y,
input: w,
option: _,
select: b,
textarea: x,
html: R(m.html),
head: R(m.head),
title: R(m.title),
body: R(m.body)
}), r.CompositeComponent.injectMixin(d), r.DOMProperty.injectDOMPropertyConfig(i), r.Updates.injectBatchingStrategy(S), r.RootIndex.injectCreateReactRootIndex(o.canUseDOM ? a.createReactRootIndex : E.createReactRootIndex), r.Component.injectEnvironment(h)
}
var r = t("./ReactInjection"),
o = t("./ExecutionEnvironment"),
i = t("./DefaultDOMPropertyConfig"),
s = t("./ChangeEventPlugin"),
a = t("./ClientReactRootIndex"),
u = t("./CompositionEventPlugin"),
l = t("./DefaultEventPluginOrder"),
c = t("./EnterLeaveEventPlugin"),
p = t("./MobileSafariClickEventPlugin"),
d = t("./ReactBrowserComponentMixin"),
h = t("./ReactComponentBrowserEnvironment"),
f = t("./ReactEventTopLevelCallback"),
m = t("./ReactDOM"),
g = t("./ReactDOMButton"),
v = t("./ReactDOMForm"),
y = t("./ReactDOMImg"),
w = t("./ReactDOMInput"),
_ = t("./ReactDOMOption"),
b = t("./ReactDOMSelect"),
x = t("./ReactDOMTextarea"),
k = t("./ReactInstanceHandles"),
T = t("./ReactMount"),
C = t("./SelectEventPlugin"),
E = t("./ServerReactRootIndex"),
P = t("./SimpleEventPlugin"),
S = t("./ReactDefaultBatchingStrategy"),
R = t("./createFullPageComponent");
e.exports = {
inject: n
}
}, {
"./ChangeEventPlugin": 4,
"./ClientReactRootIndex": 5,
"./CompositionEventPlugin": 6,
"./DefaultDOMPropertyConfig": 11,
"./DefaultEventPluginOrder": 12,
"./EnterLeaveEventPlugin": 13,
"./ExecutionEnvironment": 20,
"./MobileSafariClickEventPlugin": 22,
"./ReactBrowserComponentMixin": 25,
"./ReactComponentBrowserEnvironment": 28,
"./ReactDOM": 32,
"./ReactDOMButton": 33,
"./ReactDOMForm": 35,
"./ReactDOMImg": 37,
"./ReactDOMInput": 38,
"./ReactDOMOption": 39,
"./ReactDOMSelect": 40,
"./ReactDOMTextarea": 42,
"./ReactDefaultBatchingStrategy": 43,
"./ReactEventTopLevelCallback": 48,
"./ReactInjection": 49,
"./ReactInstanceHandles": 51,
"./ReactMount": 53,
"./SelectEventPlugin": 70,
"./ServerReactRootIndex": 71,
"./SimpleEventPlugin": 72,
"./createFullPageComponent": 90
}
],
45: [
function (t, e) {
"use strict";
var n = {
guard: function (t) {
return t
}
};
e.exports = n
}, {}
],
46: [
function (t, e) {
"use strict";
function n(t) {
return null == t[w] && (t[w] = v++, m[t[w]] = {}), m[t[w]]
}
function r(t, e, n) {
s.listen(n, e, _.TopLevelCallbackCreator.createTopLevelCallback(t))
}
function o(t, e, n) {
s.capture(n, e, _.TopLevelCallbackCreator.createTopLevelCallback(t))
}
var i = t("./EventConstants"),
s = t("./EventListener"),
a = t("./EventPluginHub"),
u = t("./EventPluginRegistry"),
l = t("./ExecutionEnvironment"),
c = t("./ReactEventEmitterMixin"),
p = t("./ViewportMetrics"),
d = t("./invariant"),
h = t("./isEventSupported"),
f = t("./merge"),
m = {},
g = !1,
v = 0,
y = {
topBlur: "blur",
topChange: "change",
topClick: "click",
topCompositionEnd: "compositionend",
topCompositionStart: "compositionstart",
topCompositionUpdate: "compositionupdate",
topContextMenu: "contextmenu",
topCopy: "copy",
topCut: "cut",
topDoubleClick: "dblclick",
topDrag: "drag",
topDragEnd: "dragend",
topDragEnter: "dragenter",
topDragExit: "dragexit",
topDragLeave: "dragleave",
topDragOver: "dragover",
topDragStart: "dragstart",
topDrop: "drop",
topFocus: "focus",
topInput: "input",
topKeyDown: "keydown",
topKeyPress: "keypress",
topKeyUp: "keyup",
topMouseDown: "mousedown",
topMouseMove: "mousemove",
topMouseOut: "mouseout",
topMouseOver: "mouseover",
topMouseUp: "mouseup",
topPaste: "paste",
topScroll: "scroll",
topSelectionChange: "selectionchange",
topTouchCancel: "touchcancel",
topTouchEnd: "touchend",
topTouchMove: "touchmove",
topTouchStart: "touchstart",
topWheel: "wheel"
},
w = "_reactListenersID" + String(Math.random()).slice(2),
_ = f(c, {
TopLevelCallbackCreator: null,
injection: {
injectTopLevelCallbackCreator: function (t) {
_.TopLevelCallbackCreator = t
}
},
setEnabled: function (t) {
d(l.canUseDOM), _.TopLevelCallbackCreator && _.TopLevelCallbackCreator.setEnabled(t)
},
isEnabled: function () {
return !(!_.TopLevelCallbackCreator || !_.TopLevelCallbackCreator.isEnabled())
},
listenTo: function (t, e) {
for (var s = e, a = n(s), l = u.registrationNameDependencies[t], c = i.topLevelTypes, p = 0, d = l.length; d > p; p++) {
var f = l[p];
if (!a[f]) {
var m = c[f];
m === c.topWheel ? h("wheel") ? r(c.topWheel, "wheel", s) : h("mousewheel") ? r(c.topWheel, "mousewheel", s) : r(c.topWheel, "DOMMouseScroll", s) : m === c.topScroll ? h("scroll", !0) ? o(c.topScroll, "scroll", s) : r(c.topScroll, "scroll", window) : m === c.topFocus || m === c.topBlur ? (h("focus", !0) ? (o(c.topFocus, "focus", s), o(c.topBlur, "blur", s)) : h("focusin") && (r(c.topFocus, "focusin", s), r(c.topBlur, "focusout", s)), a[c.topBlur] = !0, a[c.topFocus] = !0) : y[f] && r(m, y[f], s), a[f] = !0
}
}
},
ensureScrollValueMonitoring: function () {
if (!g) {
var t = p.refreshScrollValues;
s.listen(window, "scroll", t), s.listen(window, "resize", t), g = !0
}
},
eventNameDispatchConfigs: a.eventNameDispatchConfigs,
registrationNameModules: a.registrationNameModules,
putListener: a.putListener,
getListener: a.getListener,
deleteListener: a.deleteListener,
deleteAllListeners: a.deleteAllListeners,
trapBubbledEvent: r,
trapCapturedEvent: o
});
e.exports = _
}, {
"./EventConstants": 14,
"./EventListener": 15,
"./EventPluginHub": 16,
"./EventPluginRegistry": 17,
"./ExecutionEnvironment": 20,
"./ReactEventEmitterMixin": 47,
"./ViewportMetrics": 84,
"./invariant": 110,
"./isEventSupported": 111,
"./merge": 119
}
],
47: [
function (t, e) {
"use strict";
function n(t) {
r.enqueueEvents(t), r.processEventQueue()
}
var r = t("./EventPluginHub"),
o = t("./ReactUpdates"),
i = {
handleTopLevel: function (t, e, i, s) {
var a = r.extractEvents(t, e, i, s);
o.batchedUpdates(n, a)
}
};
e.exports = i
}, {
"./EventPluginHub": 16,
"./ReactUpdates": 69
}
],
48: [
function (t, e) {
"use strict";
function n(t) {
var e = u.getID(t),
n = a.getReactRootIDFromNodeID(e),
r = u.findReactContainerForID(n),
o = u.getFirstReactDOM(r);
return o
}
function r(t, e, r) {
for (var o = u.getFirstReactDOM(l(e)) || window, i = o; i;) r.ancestors.push(i), i = n(i);
for (var a = 0, c = r.ancestors.length; c > a; a++) {
o = r.ancestors[a];
var p = u.getID(o) || "";
s.handleTopLevel(t, o, p, e)
}
}
function o() {
this.ancestors = []
}
var i = t("./PooledClass"),
s = t("./ReactEventEmitter"),
a = t("./ReactInstanceHandles"),
u = t("./ReactMount"),
l = t("./getEventTarget"),
c = t("./mixInto"),
p = !0;
c(o, {
destructor: function () {
this.ancestors.length = 0
}
}), i.addPoolingTo(o);
var d = {
setEnabled: function (t) {
p = !!t
},
isEnabled: function () {
return p
},
createTopLevelCallback: function (t) {
return function (e) {
if (p) {
var n = o.getPooled();
try {
r(t, e, n)
} finally {
o.release(n)
}
}
}
}
};
e.exports = d
}, {
"./PooledClass": 23,
"./ReactEventEmitter": 46,
"./ReactInstanceHandles": 51,
"./ReactMount": 53,
"./getEventTarget": 102,
"./mixInto": 122
}
],
49: [
function (t, e) {
"use strict";
var n = t("./DOMProperty"),
r = t("./EventPluginHub"),
o = t("./ReactComponent"),
i = t("./ReactCompositeComponent"),
s = t("./ReactDOM"),
a = t("./ReactEventEmitter"),
u = t("./ReactPerf"),
l = t("./ReactRootIndex"),
c = t("./ReactUpdates"),
p = {
Component: o.injection,
CompositeComponent: i.injection,
DOMProperty: n.injection,
EventPluginHub: r.injection,
DOM: s.injection,
EventEmitter: a.injection,
Perf: u.injection,
RootIndex: l.injection,
Updates: c.injection
};
e.exports = p
}, {
"./DOMProperty": 8,
"./EventPluginHub": 16,
"./ReactComponent": 27,
"./ReactCompositeComponent": 29,
"./ReactDOM": 32,
"./ReactEventEmitter": 46,
"./ReactPerf": 58,
"./ReactRootIndex": 65,
"./ReactUpdates": 69
}
],
50: [
function (t, e) {
"use strict";
function n(t) {
return o(document.documentElement, t)
}
var r = t("./ReactDOMSelection"),
o = t("./containsNode"),
i = t("./focusNode"),
s = t("./getActiveElement"),
a = {
hasSelectionCapabilities: function (t) {
return t && ("INPUT" === t.nodeName && "text" === t.type || "TEXTAREA" === t.nodeName || "true" === t.contentEditable)
},
getSelectionInformation: function () {
var t = s();
return {
focusedElem: t,
selectionRange: a.hasSelectionCapabilities(t) ? a.getSelection(t) : null
}
},
restoreSelection: function (t) {
var e = s(),
r = t.focusedElem,
o = t.selectionRange;
e !== r && n(r) && (a.hasSelectionCapabilities(r) && a.setSelection(r, o), i(r))
},
getSelection: function (t) {
var e;
if ("selectionStart" in t) e = {
start: t.selectionStart,
end: t.selectionEnd
};
else if (document.selection && "INPUT" === t.nodeName) {
var n = document.selection.createRange();
n.parentElement() === t && (e = {
start: -n.moveStart("character", -t.value.length),
end: -n.moveEnd("character", -t.value.length)
})
} else e = r.getOffsets(t);
return e || {
start: 0,
end: 0
}
},
setSelection: function (t, e) {
var n = e.start,
o = e.end;
if ("undefined" == typeof o && (o = n), "selectionStart" in t) t.selectionStart = n, t.selectionEnd = Math.min(o, t.value.length);
else if (document.selection && "INPUT" === t.nodeName) {
var i = t.createTextRange();
i.collapse(!0), i.moveStart("character", n), i.moveEnd("character", o - n), i.select()
} else r.setOffsets(t, e)
}
};
e.exports = a
}, {
"./ReactDOMSelection": 41,
"./containsNode": 87,
"./focusNode": 98,
"./getActiveElement": 100
}
],
51: [
function (t, e) {
"use strict";
function n(t) {
return d + t.toString(36)
}
function r(t, e) {
return t.charAt(e) === d || e === t.length
}
function o(t) {
return "" === t || t.charAt(0) === d && t.charAt(t.length - 1) !== d
}
function i(t, e) {
return 0 === e.indexOf(t) && r(e, t.length)
}
function s(t) {
return t ? t.substr(0, t.lastIndexOf(d)) : ""
}
function a(t, e) {
if (p(o(t) && o(e)), p(i(t, e)), t === e) return t;
for (var n = t.length + h, s = n; s < e.length && !r(e, s); s++);
return e.substr(0, s)
}
function u(t, e) {
var n = Math.min(t.length, e.length);
if (0 === n) return "";
for (var i = 0, s = 0; n >= s; s++)
if (r(t, s) && r(e, s)) i = s;
else if (t.charAt(s) !== e.charAt(s)) break;
var a = t.substr(0, i);
return p(o(a)), a
}
function l(t, e, n, r, o, u) {
t = t || "", e = e || "", p(t !== e);
var l = i(e, t);
p(l || i(t, e));
for (var c = 0, d = l ? s : a, h = t;; h = d(h, e)) {
var m;
if (o && h === t || u && h === e || (m = n(h, l, r)), m === !1 || h === e) break;
p(c++ < f)
}
}
var c = t("./ReactRootIndex"),
p = t("./invariant"),
d = ".",
h = d.length,
f = 100,
m = {
createReactRootID: function () {
return n(c.createReactRootIndex())
},
createReactID: function (t, e) {
return t + e
},
getReactRootIDFromNodeID: function (t) {
if (t && t.charAt(0) === d && t.length > 1) {
var e = t.indexOf(d, 1);
return e > -1 ? t.substr(0, e) : t
}
return null
},
traverseEnterLeave: function (t, e, n, r, o) {
var i = u(t, e);
i !== t && l(t, i, n, r, !1, !0), i !== e && l(i, e, n, o, !0, !1)
},
traverseTwoPhase: function (t, e, n) {
t && (l("", t, e, n, !0, !1), l(t, "", e, n, !1, !0))
},
traverseAncestors: function (t, e, n) {
l("", t, e, n, !0, !1)
},
_getFirstCommonAncestorID: u,
_getNextDescendantID: a,
isAncestorIDOf: i,
SEPARATOR: d
};
e.exports = m
}, {
"./ReactRootIndex": 65,
"./invariant": 110
}
],
52: [
function (t, e) {
"use strict";
var n = t("./adler32"),
r = {
CHECKSUM_ATTR_NAME: "data-react-checksum",
addChecksumToMarkup: function (t) {
var e = n(t);
return t.replace(">", " " + r.CHECKSUM_ATTR_NAME + '="' + e + '">')
},
canReuseMarkup: function (t, e) {
var o = e.getAttribute(r.CHECKSUM_ATTR_NAME);
o = o && parseInt(o, 10);
var i = n(t);
return i === o
}
};
e.exports = r
}, {
"./adler32": 86
}
],
53: [
function (t, e) {
"use strict";
function n(t) {
var e = g(t);
return e && R.getID(e)
}
function r(t) {
var e = o(t);
if (e)
if (x.hasOwnProperty(e)) {
var n = x[e];
n !== t && (y(!a(n, e)), x[e] = t)
} else x[e] = t;
return e
}
function o(t) {
return t && t.getAttribute && t.getAttribute(b) || ""
}
function i(t, e) {
var n = o(t);
n !== e && delete x[n], t.setAttribute(b, e), x[e] = t
}
function s(t) {
return x.hasOwnProperty(t) && a(x[t], t) || (x[t] = R.findReactNodeByID(t)), x[t]
}
function a(t, e) {
if (t) {
y(o(t) === e);
var n = R.findReactContainerForID(e);
if (n && m(n, t)) return !0
}
return !1
}
function u(t) {
delete x[t]
}
function l(t) {
var e = x[t];
return e && a(e, t) ? void(S = e) : !1
}
function c(t) {
S = null, h.traverseAncestors(t, l);
var e = S;
return S = null, e
}
var p = t("./DOMProperty"),
d = t("./ReactEventEmitter"),
h = t("./ReactInstanceHandles"),
f = t("./ReactPerf"),
m = t("./containsNode"),
g = t("./getReactRootElementInContainer"),
v = t("./instantiateReactComponent"),
y = t("./invariant"),
w = t("./shouldUpdateReactComponent"),
_ = h.SEPARATOR,
b = p.ID_ATTRIBUTE_NAME,
x = {},
k = 1,
T = 9,
C = {},
E = {},
P = [],
S = null,
R = {
totalInstantiationTime: 0,
totalInjectionTime: 0,
useTouchEvents: !1,
_instancesByReactRootID: C,
scrollMonitor: function (t, e) {
e()
},
_updateRootComponent: function (t, e, n, r) {
var o = e.props;
return R.scrollMonitor(n, function () {
t.replaceProps(o, r)
}), t
},
_registerComponent: function (t, e) {
y(e && (e.nodeType === k || e.nodeType === T)), d.ensureScrollValueMonitoring();
var n = R.registerContainer(e);
return C[n] = t, n
},
_renderNewRootComponent: f.measure("ReactMount", "_renderNewRootComponent", function (t, e, n) {
var r = v(t),
o = R._registerComponent(r, e);
return r.mountComponentIntoNode(o, e, n), r
}),
renderComponent: function (t, e, r) {
var o = C[n(e)];
if (o) {
if (w(o, t)) return R._updateRootComponent(o, t, e, r);
R.unmountComponentAtNode(e)
}
var i = g(e),
s = i && R.isRenderedByReact(i),
a = s && !o,
u = R._renderNewRootComponent(t, e, a);
return r && r.call(u), u
},
constructAndRenderComponent: function (t, e, n) {
return R.renderComponent(t(e), n)
},
constructAndRenderComponentByID: function (t, e, n) {
var r = document.getElementById(n);
return y(r), R.constructAndRenderComponent(t, e, r)
},
registerContainer: function (t) {
var e = n(t);
return e && (e = h.getReactRootIDFromNodeID(e)), e || (e = h.createReactRootID()), E[e] = t, e
},
unmountComponentAtNode: function (t) {
var e = n(t),
r = C[e];
return r ? (R.unmountComponentFromNode(r, t), delete C[e], delete E[e], !0) : !1
},
unmountComponentFromNode: function (t, e) {
for (t.unmountComponent(), e.nodeType === T && (e = e.documentElement); e.lastChild;) e.removeChild(e.lastChild)
},
findReactContainerForID: function (t) {
var e = h.getReactRootIDFromNodeID(t),
n = E[e];
return n
},
findReactNodeByID: function (t) {
var e = R.findReactContainerForID(t);
return R.findComponentRoot(e, t)
},
isRenderedByReact: function (t) {
if (1 !== t.nodeType) return !1;
var e = R.getID(t);
return e ? e.charAt(0) === _ : !1
},
getFirstReactDOM: function (t) {
for (var e = t; e && e.parentNode !== e;) {
if (R.isRenderedByReact(e)) return e;
e = e.parentNode
}
return null
},
findComponentRoot: function (t, e) {
var n = P,
r = 0,
o = c(e) || t;
for (n[0] = o.firstChild, n.length = 1; r < n.length;) {
for (var i, s = n[r++]; s;) {
var a = R.getID(s);
a ? e === a ? i = s : h.isAncestorIDOf(a, e) && (n.length = r = 0, n.push(s.firstChild)) : n.push(s.firstChild), s = s.nextSibling
}
if (i) return n.length = 0, i
}
n.length = 0, y(!1)
},
getReactRootID: n,
getID: r,
setID: i,
getNode: s,
purgeID: u
};
e.exports = R
}, {
"./DOMProperty": 8,
"./ReactEventEmitter": 46,
"./ReactInstanceHandles": 51,
"./ReactPerf": 58,
"./containsNode": 87,
"./getReactRootElementInContainer": 105,
"./instantiateReactComponent": 109,
"./invariant": 110,
"./shouldUpdateReactComponent": 128
}
],
54: [
function (t, e) {
"use strict";
function n(t) {
this._queue = t || null
}
var r = t("./PooledClass"),
o = t("./mixInto");
o(n, {
enqueue: function (t, e) {
this._queue = this._queue || [], this._queue.push({
component: t,
callback: e
})
},
notifyAll: function () {
var t = this._queue;
if (t) {
this._queue = null;
for (var e = 0, n = t.length; n > e; e++) {
var r = t[e].component,
o = t[e].callback;
o.call(r)
}
t.length = 0
}
},
reset: function () {
this._queue = null
},
destructor: function () {
this.reset()
}
}), r.addPoolingTo(n), e.exports = n
}, {
"./PooledClass": 23,
"./mixInto": 122
}
],
55: [
function (t, e) {
"use strict";
function n(t, e, n) {
f.push({
parentID: t,
parentNode: null,
type: l.INSERT_MARKUP,
markupIndex: m.push(e) - 1,
textContent: null,
fromIndex: null,
toIndex: n
})
}
function r(t, e, n) {
f.push({
parentID: t,
parentNode: null,
type: l.MOVE_EXISTING,
markupIndex: null,
textContent: null,
fromIndex: e,
toIndex: n
})
}
function o(t, e) {
f.push({
parentID: t,
parentNode: null,
type: l.REMOVE_NODE,
markupIndex: null,
textContent: null,
fromIndex: e,
toIndex: null
})
}
function i(t, e) {
f.push({
parentID: t,
parentNode: null,
type: l.TEXT_CONTENT,
markupIndex: null,
textContent: e,
fromIndex: null,
toIndex: null
})
}
function s() {
f.length && (u.BackendIDOperations.dangerouslyProcessChildrenUpdates(f, m), a())
}
function a() {
f.length = 0, m.length = 0
}
var u = t("./ReactComponent"),
l = t("./ReactMultiChildUpdateTypes"),
c = t("./flattenChildren"),
p = t("./instantiateReactComponent"),
d = t("./shouldUpdateReactComponent"),
h = 0,
f = [],
m = [],
g = {
Mixin: {
mountChildren: function (t, e) {
var n = c(t),
r = [],
o = 0;
this._renderedChildren = n;
for (var i in n) {
var s = n[i];
if (n.hasOwnProperty(i)) {
var a = p(s);
n[i] = a;
var u = this._rootNodeID + i,
l = a.mountComponent(u, e, this._mountDepth + 1);
a._mountIndex = o, r.push(l), o++
}
}
return r
},
updateTextContent: function (t) {
h++;
var e = !0;
try {
var n = this._renderedChildren;
for (var r in n) n.hasOwnProperty(r) && this._unmountChildByName(n[r], r);
this.setTextContent(t), e = !1
} finally {
h--, h || (e ? a() : s())
}
},
updateChildren: function (t, e) {
h++;
var n = !0;
try {
this._updateChildren(t, e), n = !1
} finally {
h--, h || (n ? a() : s())
}
},
_updateChildren: function (t, e) {
var n = c(t),
r = this._renderedChildren;
if (n || r) {
var o, i = 0,
s = 0;
for (o in n)
if (n.hasOwnProperty(o)) {
var a = r && r[o],
u = n[o];
if (d(a, u)) this.moveChild(a, s, i), i = Math.max(a._mountIndex, i), a.receiveComponent(u, e), a._mountIndex = s;
else {
a && (i = Math.max(a._mountIndex, i), this._unmountChildByName(a, o));
var l = p(u);
this._mountChildByNameAtIndex(l, o, s, e)
}
s++
}
for (o in r)!r.hasOwnProperty(o) || n && n[o] || this._unmountChildByName(r[o], o)
}
},
unmountChildren: function () {
var t = this._renderedChildren;
for (var e in t) {
var n = t[e];
n.unmountComponent && n.unmountComponent()
}
this._renderedChildren = null
},
moveChild: function (t, e, n) {
t._mountIndex < n && r(this._rootNodeID, t._mountIndex, e)
},
createChild: function (t, e) {
n(this._rootNodeID, e, t._mountIndex)
},
removeChild: function (t) {
o(this._rootNodeID, t._mountIndex)
},
setTextContent: function (t) {
i(this._rootNodeID, t)
},
_mountChildByNameAtIndex: function (t, e, n, r) {
var o = this._rootNodeID + e,
i = t.mountComponent(o, r, this._mountDepth + 1);
t._mountIndex = n, this.createChild(t, i), this._renderedChildren = this._renderedChildren || {}, this._renderedChildren[e] = t
},
_unmountChildByName: function (t, e) {
u.isValidComponent(t) && (this.removeChild(t), t._mountIndex = null, t.unmountComponent(), delete this._renderedChildren[e])
}
}
};
e.exports = g
}, {
"./ReactComponent": 27,
"./ReactMultiChildUpdateTypes": 56,
"./flattenChildren": 97,
"./instantiateReactComponent": 109,
"./shouldUpdateReactComponent": 128
}
],
56: [
function (t, e) {
"use strict";
var n = t("./keyMirror"),
r = n({
INSERT_MARKUP: null,
MOVE_EXISTING: null,
REMOVE_NODE: null,
TEXT_CONTENT: null
});
e.exports = r
}, {
"./keyMirror": 116
}
],
57: [
function (t, e) {
"use strict";
var n = t("./emptyObject"),
r = t("./invariant"),
o = {
isValidOwner: function (t) {
return !(!t || "function" != typeof t.attachRef || "function" != typeof t.detachRef)
},
addComponentAsRefTo: function (t, e, n) {
r(o.isValidOwner(n)), n.attachRef(e, t)
},
removeComponentAsRefFrom: function (t, e, n) {
r(o.isValidOwner(n)), n.refs[e] === t && n.detachRef(e)
},
Mixin: {
construct: function () {
this.refs = n
},
attachRef: function (t, e) {
r(e.isOwnedBy(this));
var o = this.refs === n ? this.refs = {} : this.refs;
o[t] = e
},
detachRef: function (t) {
delete this.refs[t]
}
}
};
e.exports = o
}, {
"./emptyObject": 95,
"./invariant": 110
}
],
58: [
function (t, e) {
"use strict";
function n(t, e, n) {
return n
}
var r = {
enableMeasure: !1,
storedMeasure: n,
measure: function (t, e, n) {
return n
},
injection: {
injectMeasure: function (t) {
r.storedMeasure = t
}
}
};
e.exports = r
}, {}
],
59: [
function (t, e) {
"use strict";
function n(t) {
return function (e, n, r) {
e[n] = e.hasOwnProperty(n) ? t(e[n], r) : r
}
}
var r = t("./emptyFunction"),
o = t("./invariant"),
i = t("./joinClasses"),
s = t("./merge"),
a = {
children: r,
className: n(i),
key: r,
ref: r,
style: n(s)
},
u = {
TransferStrategies: a,
mergeProps: function (t, e) {
var n = s(t);
for (var r in e)
if (e.hasOwnProperty(r)) {
var o = a[r];
o && a.hasOwnProperty(r) ? o(n, r, e[r]) : n.hasOwnProperty(r) || (n[r] = e[r])
}
return n
},
Mixin: {
transferPropsTo: function (t) {
return o(t._owner === this), t.props = u.mergeProps(t.props, this.props), t
}
}
};
e.exports = u
}, {
"./emptyFunction": 94,
"./invariant": 110,
"./joinClasses": 115,
"./merge": 119
}
],
60: [
function (t, e) {
"use strict";
var n = {};
e.exports = n
}, {}
],
61: [
function (t, e) {
"use strict";
var n = t("./keyMirror"),
r = n({
prop: null,
context: null,
childContext: null
});
e.exports = r
}, {
"./keyMirror": 116
}
],
62: [
function (t, e) {
"use strict";
function n(t) {
switch (typeof t) {
case "number":
case "string":
return !0;
case "object":
if (Array.isArray(t)) return t.every(n);
if (f.isValidComponent(t)) return !0;
for (var e in t)
if (!n(t[e])) return !1;
return !0;
default:
return !1
}
}
function r(t) {
var e = typeof t;
return "object" === e && Array.isArray(t) ? "array" : e
}
function o() {
function t() {
return !0
}
return h(t)
}
function i(t) {
function e(e, n) {
var o = r(n),
i = o === t;
return i
}
return h(e)
}
function s(t) {
function e(t, e) {
var r = n[e];
return r
}
var n = m(t);
return h(e)
}
function a(t) {
function e(e, n, o, i, s) {
var a = r(n),
u = "object" === a;
if (u)
for (var l in t) {
var c = t[l];
if (c && !c(n, l, i, s)) return !1
}
return u
}
return h(e)
}
function u(t) {
function e(e, n) {
var r = n instanceof t;
return r
}
return h(e)
}
function l(t) {
function e(e, n, r, o, i) {
var s = Array.isArray(n);
if (s)
for (var a = 0; a < n.length; a++)
if (!t(n, a, o, i)) return !1;
return s
}
return h(e)
}
function c() {
function t(t, e) {
var r = n(e);
return r
}
return h(t)
}
function p() {
function t(t, e) {
var n = f.isValidComponent(e);
return n
}
return h(t)
}
function d(t) {
return function (e, n, r, o) {
for (var i = !1, s = 0; s < t.length; s++) {
var a = t[s];
if ("function" == typeof a.weak && (a = a.weak), a(e, n, r, o)) {
i = !0;
break
}
}
return i
}
}
function h(t) {
function e(e, n, r, o, i, s) {
var a = r[o];
if (null != a) return t(n, a, o, i || v, s);
var u = !e;
return u
}
var n = e.bind(null, !1, !0);
return n.weak = e.bind(null, !1, !1), n.isRequired = e.bind(null, !0, !0), n.weak.isRequired = e.bind(null, !0, !1), n.isRequired.weak = n.weak.isRequired, n
}
var f = t("./ReactComponent"),
m = (t("./ReactPropTypeLocationNames"), t("./warning"), t("./createObjectFrom")),
g = {
array: i("array"),
bool: i("boolean"),
func: i("function"),
number: i("number"),
object: i("object"),
string: i("string"),
shape: a,
oneOf: s,
oneOfType: d,
arrayOf: l,
instanceOf: u,
renderable: c(),
component: p(),
any: o()
},
v = "<<anonymous>>";
e.exports = g
}, {
"./ReactComponent": 27,
"./ReactPropTypeLocationNames": 60,
"./createObjectFrom": 92,
"./warning": 131
}
],
63: [
function (t, e) {
"use strict";
function n() {
this.listenersToPut = []
}
var r = t("./PooledClass"),
o = t("./ReactEventEmitter"),
i = t("./mixInto");
i(n, {
enqueuePutListener: function (t, e, n) {
this.listenersToPut.push({
rootNodeID: t,
propKey: e,
propValue: n
})
},
putListeners: function () {
for (var t = 0; t < this.listenersToPut.length; t++) {
var e = this.listenersToPut[t];
o.putListener(e.rootNodeID, e.propKey, e.propValue)
}
},
reset: function () {
this.listenersToPut.length = 0
},
destructor: function () {
this.reset()
}
}), r.addPoolingTo(n), e.exports = n
}, {
"./PooledClass": 23,
"./ReactEventEmitter": 46,
"./mixInto": 122
}
],
64: [
function (t, e) {
"use strict";
function n() {
this.reinitializeTransaction(), this.renderToStaticMarkup = !1, this.reactMountReady = s.getPooled(null), this.putListenerQueue = a.getPooled()
}
var r = t("./PooledClass"),
o = t("./ReactEventEmitter"),
i = t("./ReactInputSelection"),
s = t("./ReactMountReady"),
a = t("./ReactPutListenerQueue"),
u = t("./Transaction"),
l = t("./mixInto"),
c = {
initialize: i.getSelectionInformation,
close: i.restoreSelection
},
p = {
initialize: function () {
var t = o.isEnabled();
return o.setEnabled(!1), t
},
close: function (t) {
o.setEnabled(t)
}
},
d = {
initialize: function () {
this.reactMountReady.reset()
},
close: function () {
this.reactMountReady.notifyAll()
}
},
h = {
initialize: function () {
this.putListenerQueue.reset()
},
close: function () {
this.putListenerQueue.putListeners()
}
},
f = [h, c, p, d],
m = {
getTransactionWrappers: function () {
return f
},
getReactMountReady: function () {
return this.reactMountReady
},
getPutListenerQueue: function () {
return this.putListenerQueue
},
destructor: function () {
s.release(this.reactMountReady), this.reactMountReady = null, a.release(this.putListenerQueue), this.putListenerQueue = null
}
};
l(n, u.Mixin), l(n, m), r.addPoolingTo(n), e.exports = n
}, {
"./PooledClass": 23,
"./ReactEventEmitter": 46,
"./ReactInputSelection": 50,
"./ReactMountReady": 54,
"./ReactPutListenerQueue": 63,
"./Transaction": 83,
"./mixInto": 122
}
],
65: [
function (t, e) {
"use strict";
var n = {
injectCreateReactRootIndex: function (t) {
r.createReactRootIndex = t
}
},
r = {
createReactRootIndex: null,
injection: n
};
e.exports = r
}, {}
],
66: [
function (t, e) {
"use strict";
function n(t) {
l(o.isValidComponent(t)), l(!(2 === arguments.length && "function" == typeof arguments[1]));
var e;
try {
var n = i.createReactRootID();
return e = a.getPooled(!1), e.perform(function () {
var r = u(t),
o = r.mountComponent(n, e, 0);
return s.addChecksumToMarkup(o)
}, null)
} finally {
a.release(e)
}
}
function r(t) {
l(o.isValidComponent(t));
var e;
try {
var n = i.createReactRootID();
return e = a.getPooled(!0), e.perform(function () {
var r = u(t);
return r.mountComponent(n, e, 0)
}, null)
} finally {
a.release(e)
}
}
var o = t("./ReactComponent"),
i = t("./ReactInstanceHandles"),
s = t("./ReactMarkupChecksum"),
a = t("./ReactServerRenderingTransaction"),
u = t("./instantiateReactComponent"),
l = t("./invariant");
e.exports = {
renderComponentToString: n,
renderComponentToStaticMarkup: r
}
}, {
"./ReactComponent": 27,
"./ReactInstanceHandles": 51,
"./ReactMarkupChecksum": 52,
"./ReactServerRenderingTransaction": 67,
"./instantiateReactComponent": 109,
"./invariant": 110
}
],
67: [
function (t, e) {
"use strict";
function n(t) {
this.reinitializeTransaction(), this.renderToStaticMarkup = t, this.reactMountReady = o.getPooled(null), this.putListenerQueue = i.getPooled()
}
var r = t("./PooledClass"),
o = t("./ReactMountReady"),
i = t("./ReactPutListenerQueue"),
s = t("./Transaction"),
a = t("./emptyFunction"),
u = t("./mixInto"),
l = {
initialize: function () {
this.reactMountReady.reset()
},
close: a
},
c = {
initialize: function () {
this.putListenerQueue.reset()
},
close: a
},
p = [c, l],
d = {
getTransactionWrappers: function () {
return p
},
getReactMountReady: function () {
return this.reactMountReady
},
getPutListenerQueue: function () {
return this.putListenerQueue
},
destructor: function () {
o.release(this.reactMountReady), this.reactMountReady = null, i.release(this.putListenerQueue), this.putListenerQueue = null
}
};
u(n, s.Mixin), u(n, d), r.addPoolingTo(n), e.exports = n
}, {
"./PooledClass": 23,
"./ReactMountReady": 54,
"./ReactPutListenerQueue": 63,
"./Transaction": 83,
"./emptyFunction": 94,
"./mixInto": 122
}
],
68: [
function (t, e) {
"use strict";
var n = t("./DOMPropertyOperations"),
r = t("./ReactBrowserComponentMixin"),
o = t("./ReactComponent"),
i = t("./escapeTextForBrowser"),
s = t("./mixInto"),
a = function (t) {
this.construct({
text: t
})
};
a.ConvenienceConstructor = function (t) {
return new a(t.text)
}, s(a, o.Mixin), s(a, r), s(a, {
mountComponent: function (t, e, r) {
o.Mixin.mountComponent.call(this, t, e, r);
var s = i(this.props.text);
return e.renderToStaticMarkup ? s : "<span " + n.createMarkupForID(t) + ">" + s + "</span>"
},
receiveComponent: function (t) {
var e = t.props;
e.text !== this.props.text && (this.props.text = e.text, o.BackendIDOperations.updateTextContentByID(this._rootNodeID, e.text))
}
}), a.type = a, a.prototype.type = a, e.exports = a
}, {
"./DOMPropertyOperations": 9,
"./ReactBrowserComponentMixin": 25,
"./ReactComponent": 27,
"./escapeTextForBrowser": 96,
"./mixInto": 122
}
],
69: [
function (t, e) {
"use strict";
function n() {
l(p)
}
function r(t, e) {
n(), p.batchedUpdates(t, e)
}
function o(t, e) {
return t._mountDepth - e._mountDepth
}
function i() {
c.sort(o);
for (var t = 0; t < c.length; t++) {
var e = c[t];
if (e.isMounted()) {
var n = e._pendingCallbacks;
if (e._pendingCallbacks = null, e.performUpdateIfNecessary(), n)
for (var r = 0; r < n.length; r++) n[r].call(e)
}
}
}
function s() {
c.length = 0
}
function a(t, e) {
return l(!e || "function" == typeof e), n(), p.isBatchingUpdates ? (c.push(t), void(e && (t._pendingCallbacks ? t._pendingCallbacks.push(e) : t._pendingCallbacks = [e]))) : (t.performUpdateIfNecessary(), void(e && e.call(t)))
}
var u = t("./ReactPerf"),
l = t("./invariant"),
c = [],
p = null,
d = u.measure("ReactUpdates", "flushBatchedUpdates", function () {
try {
i()
} finally {
s()
}
}),
h = {
injectBatchingStrategy: function (t) {
l(t), l("function" == typeof t.batchedUpdates), l("boolean" == typeof t.isBatchingUpdates), p = t
}
},
f = {
batchedUpdates: r,
enqueueUpdate: a,
flushBatchedUpdates: d,
injection: h
};
e.exports = f
}, {
"./ReactPerf": 58,
"./invariant": 110
}
],
70: [
function (t, e) {
"use strict";
function n(t) {
if ("selectionStart" in t && s.hasSelectionCapabilities(t)) return {
start: t.selectionStart,
end: t.selectionEnd
};
if (document.selection) {
var e = document.selection.createRange();
return {
parentElement: e.parentElement(),
text: e.text,
top: e.boundingTop,
left: e.boundingLeft
}
}
var n = window.getSelection();
return {
anchorNode: n.anchorNode,
anchorOffset: n.anchorOffset,
focusNode: n.focusNode,
focusOffset: n.focusOffset
}
}
function r(t) {
if (!v && null != f && f == u()) {
var e = n(f);
if (!g || !p(g, e)) {
g = e;
var r = a.getPooled(h.select, m, t);
return r.type = "select", r.target = f, i.accumulateTwoPhaseDispatches(r), r
}
}
}
var o = t("./EventConstants"),
i = t("./EventPropagators"),
s = t("./ReactInputSelection"),
a = t("./SyntheticEvent"),
u = t("./getActiveElement"),
l = t("./isTextInputElement"),
c = t("./keyOf"),
p = t("./shallowEqual"),
d = o.topLevelTypes,
h = {
select: {
phasedRegistrationNames: {
bubbled: c({
onSelect: null
}),
captured: c({
onSelectCapture: null
})
},
dependencies: [d.topBlur, d.topContextMenu, d.topFocus, d.topKeyDown, d.topMouseDown, d.topMouseUp, d.topSelectionChange]
}
},
f = null,
m = null,
g = null,
v = !1,
y = {
eventTypes: h,
extractEvents: function (t, e, n, o) {
switch (t) {
case d.topFocus:
(l(e) || "true" === e.contentEditable) && (f = e, m = n, g = null);
break;
case d.topBlur:
f = null, m = null, g = null;
break;
case d.topMouseDown:
v = !0;
break;
case d.topContextMenu:
case d.topMouseUp:
return v = !1, r(o);
case d.topSelectionChange:
case d.topKeyDown:
case d.topKeyUp:
return r(o)
}
}
};
e.exports = y
}, {
"./EventConstants": 14,
"./EventPropagators": 19,
"./ReactInputSelection": 50,
"./SyntheticEvent": 76,
"./getActiveElement": 100,
"./isTextInputElement": 113,
"./keyOf": 117,
"./shallowEqual": 127
}
],
71: [
function (t, e) {
"use strict";
var n = Math.pow(2, 53),
r = {
createReactRootIndex: function () {
return Math.ceil(Math.random() * n)
}
};
e.exports = r
}, {}
],
72: [
function (t, e) {
"use strict";
var n = t("./EventConstants"),
r = t("./EventPluginUtils"),
o = t("./EventPropagators"),
i = t("./SyntheticClipboardEvent"),
s = t("./SyntheticEvent"),
a = t("./SyntheticFocusEvent"),
u = t("./SyntheticKeyboardEvent"),
l = t("./SyntheticMouseEvent"),
c = t("./SyntheticDragEvent"),
p = t("./SyntheticTouchEvent"),
d = t("./SyntheticUIEvent"),
h = t("./SyntheticWheelEvent"),
f = t("./invariant"),
m = t("./keyOf"),
g = n.topLevelTypes,
v = {
blur: {
phasedRegistrationNames: {
bubbled: m({
onBlur: !0
}),
captured: m({
onBlurCapture: !0
})
}
},
click: {
phasedRegistrationNames: {
bubbled: m({
onClick: !0
}),
captured: m({
onClickCapture: !0
})
}
},
contextMenu: {
phasedRegistrationNames: {
bubbled: m({
onContextMenu: !0
}),
captured: m({
onContextMenuCapture: !0
})
}
},
copy: {
phasedRegistrationNames: {
bubbled: m({
onCopy: !0
}),
captured: m({
onCopyCapture: !0
})
}
},
cut: {
phasedRegistrationNames: {
bubbled: m({
onCut: !0
}),
captured: m({
onCutCapture: !0
})
}
},
doubleClick: {
phasedRegistrationNames: {
bubbled: m({
onDoubleClick: !0
}),
captured: m({
onDoubleClickCapture: !0
})
}
},
drag: {
phasedRegistrationNames: {
bubbled: m({
onDrag: !0
}),
captured: m({
onDragCapture: !0
})
}
},
dragEnd: {
phasedRegistrationNames: {
bubbled: m({
onDragEnd: !0
}),
captured: m({
onDragEndCapture: !0
})
}
},
dragEnter: {
phasedRegistrationNames: {
bubbled: m({
onDragEnter: !0
}),
captured: m({
onDragEnterCapture: !0
})
}
},
dragExit: {
phasedRegistrationNames: {
bubbled: m({
onDragExit: !0
}),
captured: m({
onDragExitCapture: !0
})
}
},
dragLeave: {
phasedRegistrationNames: {
bubbled: m({
onDragLeave: !0
}),
captured: m({
onDragLeaveCapture: !0
})
}
},
dragOver: {
phasedRegistrationNames: {
bubbled: m({
onDragOver: !0
}),
captured: m({
onDragOverCapture: !0
})
}
},
dragStart: {
phasedRegistrationNames: {
bubbled: m({
onDragStart: !0
}),
captured: m({
onDragStartCapture: !0
})
}
},
drop: {
phasedRegistrationNames: {
bubbled: m({
onDrop: !0
}),
captured: m({
onDropCapture: !0
})
}
},
focus: {
phasedRegistrationNames: {
bubbled: m({
onFocus: !0
}),
captured: m({
onFocusCapture: !0
})
}
},
input: {
phasedRegistrationNames: {
bubbled: m({
onInput: !0
}),
captured: m({
onInputCapture: !0
})
}
},
keyDown: {
phasedRegistrationNames: {
bubbled: m({
onKeyDown: !0
}),
captured: m({
onKeyDownCapture: !0
})
}
},
keyPress: {
phasedRegistrationNames: {
bubbled: m({
onKeyPress: !0
}),
captured: m({
onKeyPressCapture: !0
})
}
},
keyUp: {
phasedRegistrationNames: {
bubbled: m({
onKeyUp: !0
}),
captured: m({
onKeyUpCapture: !0
})
}
},
load: {
phasedRegistrationNames: {
bubbled: m({
onLoad: !0
}),
captured: m({
onLoadCapture: !0
})
}
},
error: {
phasedRegistrationNames: {
bubbled: m({
onError: !0
}),
captured: m({
onErrorCapture: !0
})
}
},
mouseDown: {
phasedRegistrationNames: {
bubbled: m({
onMouseDown: !0
}),
captured: m({
onMouseDownCapture: !0
})
}
},
mouseMove: {
phasedRegistrationNames: {
bubbled: m({
onMouseMove: !0
}),
captured: m({
onMouseMoveCapture: !0
})
}
},
mouseOut: {
phasedRegistrationNames: {
bubbled: m({
onMouseOut: !0
}),
captured: m({
onMouseOutCapture: !0
})
}
},
mouseOver: {
phasedRegistrationNames: {
bubbled: m({
onMouseOver: !0
}),
captured: m({
onMouseOverCapture: !0
})
}
},
mouseUp: {
phasedRegistrationNames: {
bubbled: m({
onMouseUp: !0
}),
captured: m({
onMouseUpCapture: !0
})
}
},
paste: {
phasedRegistrationNames: {
bubbled: m({
onPaste: !0
}),
captured: m({
onPasteCapture: !0
})
}
},
reset: {
phasedRegistrationNames: {
bubbled: m({
onReset: !0
}),
captured: m({
onResetCapture: !0
})
}
},
scroll: {
phasedRegistrationNames: {
bubbled: m({
onScroll: !0
}),
captured: m({
onScrollCapture: !0
})
}
},
submit: {
phasedRegistrationNames: {
bubbled: m({
onSubmit: !0
}),
captured: m({
onSubmitCapture: !0
})
}
},
touchCancel: {
phasedRegistrationNames: {
bubbled: m({
onTouchCancel: !0
}),
captured: m({
onTouchCancelCapture: !0
})
}
},
touchEnd: {
phasedRegistrationNames: {
bubbled: m({
onTouchEnd: !0
}),
captured: m({
onTouchEndCapture: !0
})
}
},
touchMove: {
phasedRegistrationNames: {
bubbled: m({
onTouchMove: !0
}),
captured: m({
onTouchMoveCapture: !0
})
}
},
touchStart: {
phasedRegistrationNames: {
bubbled: m({
onTouchStart: !0
}),
captured: m({
onTouchStartCapture: !0
})
}
},
wheel: {
phasedRegistrationNames: {
bubbled: m({
onWheel: !0
}),
captured: m({
onWheelCapture: !0
})
}
}
},
y = {
topBlur: v.blur,
topClick: v.click,
topContextMenu: v.contextMenu,
topCopy: v.copy,
topCut: v.cut,
topDoubleClick: v.doubleClick,
topDrag: v.drag,
topDragEnd: v.dragEnd,
topDragEnter: v.dragEnter,
topDragExit: v.dragExit,
topDragLeave: v.dragLeave,
topDragOver: v.dragOver,
topDragStart: v.dragStart,
topDrop: v.drop,
topError: v.error,
topFocus: v.focus,
topInput: v.input,
topKeyDown: v.keyDown,
topKeyPress: v.keyPress,
topKeyUp: v.keyUp,
topLoad: v.load,
topMouseDown: v.mouseDown,
topMouseMove: v.mouseMove,
topMouseOut: v.mouseOut,
topMouseOver: v.mouseOver,
topMouseUp: v.mouseUp,
topPaste: v.paste,
topReset: v.reset,
topScroll: v.scroll,
topSubmit: v.submit,
topTouchCancel: v.touchCancel,
topTouchEnd: v.touchEnd,
topTouchMove: v.touchMove,
topTouchStart: v.touchStart,
topWheel: v.wheel
};
for (var w in y) y[w].dependencies = [w];
var _ = {
eventTypes: v,
executeDispatch: function (t, e, n) {
var o = r.executeDispatch(t, e, n);
o === !1 && (t.stopPropagation(), t.preventDefault())
},
extractEvents: function (t, e, n, r) {
var m = y[t];
if (!m) return null;
var v;
switch (t) {
case g.topInput:
case g.topLoad:
case g.topError:
case g.topReset:
case g.topSubmit:
v = s;
break;
case g.topKeyDown:
case g.topKeyPress:
case g.topKeyUp:
v = u;
break;
case g.topBlur:
case g.topFocus:
v = a;
break;
case g.topClick:
if (2 === r.button) return null;
case g.topContextMenu:
case g.topDoubleClick:
case g.topMouseDown:
case g.topMouseMove:
case g.topMouseOut:
case g.topMouseOver:
case g.topMouseUp:
v = l;
break;
case g.topDrag:
case g.topDragEnd:
case g.topDragEnter:
case g.topDragExit:
case g.topDragLeave:
case g.topDragOver:
case g.topDragStart:
case g.topDrop:
v = c;
break;
case g.topTouchCancel:
case g.topTouchEnd:
case g.topTouchMove:
case g.topTouchStart:
v = p;
break;
case g.topScroll:
v = d;
break;
case g.topWheel:
v = h;
break;
case g.topCopy:
case g.topCut:
case g.topPaste:
v = i
}
f(v);
var w = v.getPooled(m, n, r);
return o.accumulateTwoPhaseDispatches(w), w
}
};
e.exports = _
}, {
"./EventConstants": 14,
"./EventPluginUtils": 18,
"./EventPropagators": 19,
"./SyntheticClipboardEvent": 73,
"./SyntheticDragEvent": 75,
"./SyntheticEvent": 76,
"./SyntheticFocusEvent": 77,
"./SyntheticKeyboardEvent": 78,
"./SyntheticMouseEvent": 79,
"./SyntheticTouchEvent": 80,
"./SyntheticUIEvent": 81,
"./SyntheticWheelEvent": 82,
"./invariant": 110,
"./keyOf": 117
}
],
73: [
function (t, e) {
"use strict";
function n(t, e, n) {
r.call(this, t, e, n)
}
var r = t("./SyntheticEvent"),
o = {
clipboardData: function (t) {
return "clipboardData" in t ? t.clipboardData : window.clipboardData
}
};
r.augmentClass(n, o), e.exports = n
}, {
"./SyntheticEvent": 76
}
],
74: [
function (t, e) {
"use strict";
function n(t, e, n) {
r.call(this, t, e, n)
}
var r = t("./SyntheticEvent"),
o = {
data: null
};
r.augmentClass(n, o), e.exports = n
}, {
"./SyntheticEvent": 76
}
],
75: [
function (t, e) {
"use strict";
function n(t, e, n) {
r.call(this, t, e, n)
}
var r = t("./SyntheticMouseEvent"),
o = {
dataTransfer: null
};
r.augmentClass(n, o), e.exports = n
}, {
"./SyntheticMouseEvent": 79
}
],
76: [
function (t, e) {
"use strict";
function n(t, e, n) {
this.dispatchConfig = t, this.dispatchMarker = e, this.nativeEvent = n;
var r = this.constructor.Interface;
for (var i in r)
if (r.hasOwnProperty(i)) {
var s = r[i];
this[i] = s ? s(n) : n[i]
}
var a = null != n.defaultPrevented ? n.defaultPrevented : n.returnValue === !1;
this.isDefaultPrevented = a ? o.thatReturnsTrue : o.thatReturnsFalse, this.isPropagationStopped = o.thatReturnsFalse
}
var r = t("./PooledClass"),
o = t("./emptyFunction"),
i = t("./getEventTarget"),
s = t("./merge"),
a = t("./mergeInto"),
u = {
type: null,
target: i,
currentTarget: o.thatReturnsNull,
eventPhase: null,
bubbles: null,
cancelable: null,
timeStamp: function (t) {
return t.timeStamp || Date.now()
},
defaultPrevented: null,
isTrusted: null
};
a(n.prototype, {
preventDefault: function () {
this.defaultPrevented = !0;
var t = this.nativeEvent;
t.preventDefault ? t.preventDefault() : t.returnValue = !1, this.isDefaultPrevented = o.thatReturnsTrue
},
stopPropagation: function () {
var t = this.nativeEvent;
t.stopPropagation ? t.stopPropagation() : t.cancelBubble = !0, this.isPropagationStopped = o.thatReturnsTrue
},
persist: function () {
this.isPersistent = o.thatReturnsTrue
},
isPersistent: o.thatReturnsFalse,
destructor: function () {
var t = this.constructor.Interface;
for (var e in t) this[e] = null;
this.dispatchConfig = null, this.dispatchMarker = null, this.nativeEvent = null
}
}), n.Interface = u, n.augmentClass = function (t, e) {
var n = this,
o = Object.create(n.prototype);
a(o, t.prototype), t.prototype = o, t.prototype.constructor = t, t.Interface = s(n.Interface, e), t.augmentClass = n.augmentClass, r.addPoolingTo(t, r.threeArgumentPooler)
}, r.addPoolingTo(n, r.threeArgumentPooler), e.exports = n
}, {
"./PooledClass": 23,
"./emptyFunction": 94,
"./getEventTarget": 102,
"./merge": 119,
"./mergeInto": 121
}
],
77: [
function (t, e) {
"use strict";
function n(t, e, n) {
r.call(this, t, e, n)
}
var r = t("./SyntheticUIEvent"),
o = {
relatedTarget: null
};
r.augmentClass(n, o), e.exports = n
}, {
"./SyntheticUIEvent": 81
}
],
78: [
function (t, e) {
"use strict";
function n(t, e, n) {
r.call(this, t, e, n)
}
var r = t("./SyntheticUIEvent"),
o = t("./getEventKey"),
i = {
key: o,
location: null,
ctrlKey: null,
shiftKey: null,
altKey: null,
metaKey: null,
repeat: null,
locale: null,
"char": null,
charCode: null,
keyCode: null,
which: null
};
r.augmentClass(n, i), e.exports = n
}, {
"./SyntheticUIEvent": 81,
"./getEventKey": 101
}
],
79: [
function (t, e) {
"use strict";
function n(t, e, n) {
r.call(this, t, e, n)
}
var r = t("./SyntheticUIEvent"),
o = t("./ViewportMetrics"),
i = {
screenX: null,
screenY: null,
clientX: null,
clientY: null,
ctrlKey: null,
shiftKey: null,
altKey: null,
metaKey: null,
button: function (t) {
var e = t.button;
return "which" in t ? e : 2 === e ? 2 : 4 === e ? 1 : 0
},
buttons: null,
relatedTarget: function (t) {
return t.relatedTarget || (t.fromElement === t.srcElement ? t.toElement : t.fromElement)
},
pageX: function (t) {
return "pageX" in t ? t.pageX : t.clientX + o.currentScrollLeft
},
pageY: function (t) {
return "pageY" in t ? t.pageY : t.clientY + o.currentScrollTop
}
};
r.augmentClass(n, i), e.exports = n
}, {
"./SyntheticUIEvent": 81,
"./ViewportMetrics": 84
}
],
80: [
function (t, e) {
"use strict";
function n(t, e, n) {
r.call(this, t, e, n)
}
var r = t("./SyntheticUIEvent"),
o = {
touches: null,
targetTouches: null,
changedTouches: null,
altKey: null,
metaKey: null,
ctrlKey: null,
shiftKey: null
};
r.augmentClass(n, o), e.exports = n
}, {
"./SyntheticUIEvent": 81
}
],
81: [
function (t, e) {
"use strict";
function n(t, e, n) {
r.call(this, t, e, n)
}
var r = t("./SyntheticEvent"),
o = {
view: null,
detail: null
};
r.augmentClass(n, o), e.exports = n
}, {
"./SyntheticEvent": 76
}
],
82: [
function (t, e) {
"use strict";
function n(t, e, n) {
r.call(this, t, e, n)
}
var r = t("./SyntheticMouseEvent"),
o = {
deltaX: function (t) {
return "deltaX" in t ? t.deltaX : "wheelDeltaX" in t ? -t.wheelDeltaX : 0
},
deltaY: function (t) {
return "deltaY" in t ? t.deltaY : "wheelDeltaY" in t ? -t.wheelDeltaY : "wheelDelta" in t ? -t.wheelDelta : 0
},
deltaZ: null,
deltaMode: null
};
r.augmentClass(n, o), e.exports = n
}, {
"./SyntheticMouseEvent": 79
}
],
83: [
function (t, e) {
"use strict";
var n = t("./invariant"),
r = {
reinitializeTransaction: function () {
this.transactionWrappers = this.getTransactionWrappers(), this.wrapperInitData ? this.wrapperInitData.length = 0 : this.wrapperInitData = [], this.timingMetrics || (this.timingMetrics = {}), this.timingMetrics.methodInvocationTime = 0, this.timingMetrics.wrapperInitTimes ? this.timingMetrics.wrapperInitTimes.length = 0 : this.timingMetrics.wrapperInitTimes = [], this.timingMetrics.wrapperCloseTimes ? this.timingMetrics.wrapperCloseTimes.length = 0 : this.timingMetrics.wrapperCloseTimes = [], this._isInTransaction = !1
},
_isInTransaction: !1,
getTransactionWrappers: null,
isInTransaction: function () {
return !!this._isInTransaction
},
perform: function (t, e, r, o, i, s, a, u) {
n(!this.isInTransaction());
var l, c, p = Date.now();
try {
this._isInTransaction = !0, l = !0, this.initializeAll(0), c = t.call(e, r, o, i, s, a, u), l = !1
} finally {
var d = Date.now();
this.methodInvocationTime += d - p;
try {
if (l) try {
this.closeAll(0)
} catch (h) {} else this.closeAll(0)
} finally {
this._isInTransaction = !1
}
}
return c
},
initializeAll: function (t) {
for (var e = this.transactionWrappers, n = this.timingMetrics.wrapperInitTimes, r = t; r < e.length; r++) {
var i = Date.now(),
s = e[r];
try {
this.wrapperInitData[r] = o.OBSERVED_ERROR, this.wrapperInitData[r] = s.initialize ? s.initialize.call(this) : null
} finally {
var a = n[r],
u = Date.now();
if (n[r] = (a || 0) + (u - i), this.wrapperInitData[r] === o.OBSERVED_ERROR) try {
this.initializeAll(r + 1)
} catch (l) {}
}
}
},
closeAll: function (t) {
n(this.isInTransaction());
for (var e = this.transactionWrappers, r = this.timingMetrics.wrapperCloseTimes, i = t; i < e.length; i++) {
var s, a = e[i],
u = Date.now(),
l = this.wrapperInitData[i];
try {
s = !0, l !== o.OBSERVED_ERROR && a.close && a.close.call(this, l), s = !1
} finally {
var c = Date.now(),
p = r[i];
if (r[i] = (p || 0) + (c - u), s) try {
this.closeAll(i + 1)
} catch (d) {}
}
}
this.wrapperInitData.length = 0
}
},
o = {
Mixin: r,
OBSERVED_ERROR: {}
};
e.exports = o
}, {
"./invariant": 110
}
],
84: [
function (t, e) {
"use strict";
var n = t("./getUnboundedScrollPosition"),
r = {
currentScrollLeft: 0,
currentScrollTop: 0,
refreshScrollValues: function () {
var t = n(window);
r.currentScrollLeft = t.x, r.currentScrollTop = t.y
}
};
e.exports = r
}, {
"./getUnboundedScrollPosition": 107
}
],
85: [
function (t, e) {
"use strict";
function n(t, e) {
if (r(null != e), null == t) return e;
var n = Array.isArray(t),
o = Array.isArray(e);
return n ? t.concat(e) : o ? [t].concat(e) : [t, e]
}
var r = t("./invariant");
e.exports = n
}, {
"./invariant": 110
}
],
86: [
function (t, e) {
"use strict";
function n(t) {
for (var e = 1, n = 0, o = 0; o < t.length; o++) e = (e + t.charCodeAt(o)) % r, n = (n + e) % r;
return e | n << 16
}
var r = 65521;
e.exports = n
}, {}
],
87: [
function (t, e) {
function n(t, e) {
return t && e ? t === e ? !0 : r(t) ? !1 : r(e) ? n(t, e.parentNode) : t.contains ? t.contains(e) : t.compareDocumentPosition ? !!(16 & t.compareDocumentPosition(e)) : !1 : !1
}
var r = t("./isTextNode");
e.exports = n
}, {
"./isTextNode": 114
}
],
88: [
function (t, e) {
function n(t, e, n, r, o, i) {
t = t || {};
for (var s, a = [e, n, r, o, i], u = 0; a[u];) {
s = a[u++];
for (var l in s) t[l] = s[l];
s.hasOwnProperty && s.hasOwnProperty("toString") && "undefined" != typeof s.toString && t.toString !== s.toString && (t.toString = s.toString)
}
return t
}
e.exports = n
}, {}
],
89: [
function (t, e) {
function n(t) {
return !!t && ("object" == typeof t || "function" == typeof t) && "length" in t && !("setInterval" in t) && "number" != typeof t.nodeType && (Array.isArray(t) || "callee" in t || "item" in t)
}
function r(t) {
return n(t) ? Array.isArray(t) ? t.slice() : o(t) : [t]
}
var o = t("./toArray");
e.exports = r
}, {
"./toArray": 129
}
],
90: [
function (t, e) {
"use strict";
function n(t) {
var e = r.createClass({
displayName: "ReactFullPageComponent" + (t.componentConstructor.displayName || ""),
componentWillUnmount: function () {
o(!1)
},
render: function () {
return this.transferPropsTo(t(null, this.props.children))
}
});
return e
}
var r = t("./ReactCompositeComponent"),
o = t("./invariant");
e.exports = n
}, {
"./ReactCompositeComponent": 29,
"./invariant": 110
}
],
91: [
function (t, e) {
function n(t) {
var e = t.match(l);
return e && e[1].toLowerCase()
}
function r(t, e) {
var r = u;
a(!!u);
var o = n(t),
l = o && s(o);
if (l) {
r.innerHTML = l[1] + t + l[2];
for (var c = l[0]; c--;) r = r.lastChild
} else r.innerHTML = t;
var p = r.getElementsByTagName("script");
p.length && (a(e), i(p).forEach(e));
for (var d = i(r.childNodes); r.lastChild;) r.removeChild(r.lastChild);
return d
}
var o = t("./ExecutionEnvironment"),
i = t("./createArrayFrom"),
s = t("./getMarkupWrap"),
a = t("./invariant"),
u = o.canUseDOM ? document.createElement("div") : null,
l = /^\s*<(\w+)/;
e.exports = r
}, {
"./ExecutionEnvironment": 20,
"./createArrayFrom": 89,
"./getMarkupWrap": 103,
"./invariant": 110
}
],
92: [
function (t, e) {
function n(t, e) {
var n = {},
r = Array.isArray(e);
"undefined" == typeof e && (e = !0);
for (var o = t.length; o--;) n[t[o]] = r ? e[o] : e;
return n
}
e.exports = n
}, {}
],
93: [
function (t, e) {
"use strict";
function n(t, e) {
var n = null == e || "boolean" == typeof e || "" === e;
if (n) return "";
var o = isNaN(e);
return o || 0 === e || r.isUnitlessNumber[t] ? "" + e : e + "px"
}
var r = t("./CSSProperty");
e.exports = n
}, {
"./CSSProperty": 2
}
],
94: [
function (t, e) {
function n(t) {
return function () {
return t
}
}
function r() {}
var o = t("./copyProperties");
o(r, {
thatReturns: n,
thatReturnsFalse: n(!1),
thatReturnsTrue: n(!0),
thatReturnsNull: n(null),
thatReturnsThis: function () {
return this
},
thatReturnsArgument: function (t) {
return t
}
}), e.exports = r
}, {
"./copyProperties": 88
}
],
95: [
function (t, e) {
"use strict";
var n = {};
e.exports = n
}, {}
],
96: [
function (t, e) {
"use strict";
function n(t) {
return o[t]
}
function r(t) {
return ("" + t).replace(i, n)
}
var o = {
"&": "&amp;",
">": "&gt;",
"<": "&lt;",
'"': "&quot;",
"'": "&#x27;",
"/": "&#x2f;"
},
i = /[&><"'\/]/g;
e.exports = r
}, {}
],
97: [
function (t, e) {
"use strict";
function n(t, e, n) {
var r = t;
o(!r.hasOwnProperty(n)), null != e && (r[n] = e)
}
function r(t) {
if (null == t) return t;
var e = {};
return i(t, n, e), e
}
var o = t("./invariant"),
i = t("./traverseAllChildren");
e.exports = r
}, {
"./invariant": 110,
"./traverseAllChildren": 130
}
],
98: [
function (t, e) {
"use strict";
function n(t) {
t.disabled || t.focus()
}
e.exports = n
}, {}
],
99: [
function (t, e) {
"use strict";
var n = function (t, e, n) {
Array.isArray(t) ? t.forEach(e, n) : t && e.call(n, t)
};
e.exports = n
}, {}
],
100: [
function (t, e) {
function n() {
try {
return document.activeElement || document.body
} catch (t) {
return document.body
}
}
e.exports = n
}, {}
],
101: [
function (t, e) {
"use strict";
function n(t) {
return "key" in t ? r[t.key] || t.key : o[t.which || t.keyCode] || "Unidentified"
}
var r = {
Esc: "Escape",
Spacebar: " ",
Left: "ArrowLeft",
Up: "ArrowUp",
Right: "ArrowRight",
Down: "ArrowDown",
Del: "Delete",
Win: "OS",
Menu: "ContextMenu",
Apps: "ContextMenu",
Scroll: "ScrollLock",
MozPrintableKey: "Unidentified"
},
o = {
8: "Backspace",
9: "Tab",
12: "Clear",
13: "Enter",
16: "Shift",
17: "Control",
18: "Alt",
19: "Pause",
20: "CapsLock",
27: "Escape",
32: " ",
33: "PageUp",
34: "PageDown",
35: "End",
36: "Home",
37: "ArrowLeft",
38: "ArrowUp",
39: "ArrowRight",
40: "ArrowDown",
45: "Insert",
46: "Delete",
112: "F1",
113: "F2",
114: "F3",
115: "F4",
116: "F5",
117: "F6",
118: "F7",
119: "F8",
120: "F9",
121: "F10",
122: "F11",
123: "F12",
144: "NumLock",
145: "ScrollLock",
224: "Meta"
};
e.exports = n
}, {}
],
102: [
function (t, e) {
"use strict";
function n(t) {
var e = t.target || t.srcElement || window;
return 3 === e.nodeType ? e.parentNode : e
}
e.exports = n
}, {}
],
103: [
function (t, e) {
function n(t) {
return o(!!i), p.hasOwnProperty(t) || (t = "*"), s.hasOwnProperty(t) || (i.innerHTML = "*" === t ? "<link />" : "<" + t + "></" + t + ">", s[t] = !i.firstChild), s[t] ? p[t] : null
}
var r = t("./ExecutionEnvironment"),
o = t("./invariant"),
i = r.canUseDOM ? document.createElement("div") : null,
s = {
circle: !0,
defs: !0,
g: !0,
line: !0,
linearGradient: !0,
path: !0,
polygon: !0,
polyline: !0,
radialGradient: !0,
rect: !0,
stop: !0,
text: !0
},
a = [1, '<select multiple="true">', "</select>"],
u = [1, "<table>", "</table>"],
l = [3, "<table><tbody><tr>", "</tr></tbody></table>"],
c = [1, "<svg>", "</svg>"],
p = {
"*": [1, "?<div>", "</div>"],
area: [1, "<map>", "</map>"],
col: [2, "<table><tbody></tbody><colgroup>", "</colgroup></table>"],
legend: [1, "<fieldset>", "</fieldset>"],
param: [1, "<object>", "</object>"],
tr: [2, "<table><tbody>", "</tbody></table>"],
optgroup: a,
option: a,
caption: u,
colgroup: u,
tbody: u,
tfoot: u,
thead: u,
td: l,
th: l,
circle: c,
defs: c,
g: c,
line: c,
linearGradient: c,
path: c,
polygon: c,
polyline: c,
radialGradient: c,
rect: c,
stop: c,
text: c
};
e.exports = n
}, {
"./ExecutionEnvironment": 20,
"./invariant": 110
}
],
104: [
function (t, e) {
"use strict";
function n(t) {
for (; t && t.firstChild;) t = t.firstChild;
return t
}
function r(t) {
for (; t;) {
if (t.nextSibling) return t.nextSibling;
t = t.parentNode
}
}
function o(t, e) {
for (var o = n(t), i = 0, s = 0; o;) {
if (3 == o.nodeType) {
if (s = i + o.textContent.length, e >= i && s >= e) return {
node: o,
offset: e - i
};
i = s
}
o = n(r(o))
}
}
e.exports = o
}, {}
],
105: [
function (t, e) {
"use strict";
function n(t) {
return t ? t.nodeType === r ? t.documentElement : t.firstChild : null
}
var r = 9;
e.exports = n
}, {}
],
106: [
function (t, e) {
"use strict";
function n() {
return !o && r.canUseDOM && (o = "textContent" in document.createElement("div") ? "textContent" : "innerText"), o
}
var r = t("./ExecutionEnvironment"),
o = null;
e.exports = n
}, {
"./ExecutionEnvironment": 20
}
],
107: [
function (t, e) {
"use strict";
function n(t) {
return t === window ? {
x: window.pageXOffset || document.documentElement.scrollLeft,
y: window.pageYOffset || document.documentElement.scrollTop
} : {
x: t.scrollLeft,
y: t.scrollTop
}
}
e.exports = n
}, {}
],
108: [
function (t, e) {
function n(t) {
return t.replace(r, "-$1").toLowerCase()
}
var r = /([A-Z])/g;
e.exports = n
}, {}
],
109: [
function (t, e) {
"use strict";
function n(t) {
return t._descriptor = t, t
}
t("./warning"), e.exports = n
}, {
"./warning": 131
}
],
110: [
function (t, e) {
"use strict";
var n = function (t) {
if (!t) {
var e = new Error("Minified exception occured; use the non-minified dev environment for the full error message and additional helpful warnings.");
throw e.framesToPop = 1, e
}
};
e.exports = n
}, {}
],
111: [
function (t, e) {
"use strict";
function n(t, e) {
if (!o.canUseDOM || e && !("addEventListener" in document)) return !1;
var n = "on" + t,
i = n in document;
if (!i) {
var s = document.createElement("div");
s.setAttribute(n, "return;"), i = "function" == typeof s[n]
}
return !i && r && "wheel" === t && (i = document.implementation.hasFeature("Events.wheel", "3.0")), i
}
var r, o = t("./ExecutionEnvironment");
o.canUseDOM && (r = document.implementation && document.implementation.hasFeature && document.implementation.hasFeature("", "") !== !0), e.exports = n
}, {
"./ExecutionEnvironment": 20
}
],
112: [
function (t, e) {
function n(t) {
return !(!t || !("function" == typeof Node ? t instanceof Node : "object" == typeof t && "number" == typeof t.nodeType && "string" == typeof t.nodeName))
}
e.exports = n
}, {}
],
113: [
function (t, e) {
"use strict";
function n(t) {
return t && ("INPUT" === t.nodeName && r[t.type] || "TEXTAREA" === t.nodeName)
}
var r = {
color: !0,
date: !0,
datetime: !0,
"datetime-local": !0,
email: !0,
month: !0,
number: !0,
password: !0,
range: !0,
search: !0,
tel: !0,
text: !0,
time: !0,
url: !0,
week: !0
};
e.exports = n
}, {}
],
114: [
function (t, e) {
function n(t) {
return r(t) && 3 == t.nodeType
}
var r = t("./isNode");
e.exports = n
}, {
"./isNode": 112
}
],
115: [
function (t, e) {
"use strict";
function n(t) {
t || (t = "");
var e, n = arguments.length;
if (n > 1)
for (var r = 1; n > r; r++) e = arguments[r], e && (t += " " + e);
return t
}
e.exports = n
}, {}
],
116: [
function (t, e) {
"use strict";
var n = t("./invariant"),
r = function (t) {
var e, r = {};
n(t instanceof Object && !Array.isArray(t));
for (e in t) t.hasOwnProperty(e) && (r[e] = e);
return r
};
e.exports = r
}, {
"./invariant": 110
}
],
117: [
function (t, e) {
var n = function (t) {
var e;
for (e in t)
if (t.hasOwnProperty(e)) return e;
return null
};
e.exports = n
}, {}
],
118: [
function (t, e) {
"use strict";
function n(t) {
var e = {};
return function (n) {
return e.hasOwnProperty(n) ? e[n] : e[n] = t.call(this, n)
}
}
e.exports = n
}, {}
],
119: [
function (t, e) {
"use strict";
var n = t("./mergeInto"),
r = function (t, e) {
var r = {};
return n(r, t), n(r, e), r
};
e.exports = r
}, {
"./mergeInto": 121
}
],
120: [
function (t, e) {
"use strict";
var n = t("./invariant"),
r = t("./keyMirror"),
o = 36,
i = function (t) {
return "object" != typeof t || null === t
},
s = {
MAX_MERGE_DEPTH: o,
isTerminal: i,
normalizeMergeArg: function (t) {
return void 0 === t || null === t ? {} : t
},
checkMergeArrayArgs: function (t, e) {
n(Array.isArray(t) && Array.isArray(e))
},
checkMergeObjectArgs: function (t, e) {
s.checkMergeObjectArg(t), s.checkMergeObjectArg(e)
},
checkMergeObjectArg: function (t) {
n(!i(t) && !Array.isArray(t))
},
checkMergeLevel: function (t) {
n(o > t)
},
checkArrayStrategy: function (t) {
n(void 0 === t || t in s.ArrayStrategies)
},
ArrayStrategies: r({
Clobber: !0,
IndexByIndex: !0
})
};
e.exports = s
}, {
"./invariant": 110,
"./keyMirror": 116
}
],
121: [
function (t, e) {
"use strict";
function n(t, e) {
if (o(t), null != e) {
o(e);
for (var n in e) e.hasOwnProperty(n) && (t[n] = e[n])
}
}
var r = t("./mergeHelpers"),
o = r.checkMergeObjectArg;
e.exports = n
}, {
"./mergeHelpers": 120
}
],
122: [
function (t, e) {
"use strict";
var n = function (t, e) {
var n;
for (n in e) e.hasOwnProperty(n) && (t.prototype[n] = e[n])
};
e.exports = n
}, {}
],
123: [
function (t, e) {
"use strict";
function n(t) {
r(t && !/[^a-z0-9_]/.test(t))
}
var r = t("./invariant");
e.exports = n
}, {
"./invariant": 110
}
],
124: [
function (t, e) {
"use strict";
function n(t, e, n) {
if (!t) return null;
var r = 0,
o = {};
for (var i in t) t.hasOwnProperty(i) && (o[i] = e.call(n, t[i], i, r++));
return o
}
e.exports = n
}, {}
],
125: [
function (t, e) {
"use strict";
function n(t, e, n) {
if (!t) return null;
var r = 0,
o = {};
for (var i in t) t.hasOwnProperty(i) && (o[i] = e.call(n, i, t[i], r++));
return o
}
e.exports = n
}, {}
],
126: [
function (t, e) {
"use strict";
function n(t) {
return o(r.isValidComponent(t)), t
}
var r = t("./ReactComponent"),
o = t("./invariant");
e.exports = n
}, {
"./ReactComponent": 27,
"./invariant": 110
}
],
127: [
function (t, e) {
"use strict";
function n(t, e) {
if (t === e) return !0;
var n;
for (n in t)
if (t.hasOwnProperty(n) && (!e.hasOwnProperty(n) || t[n] !== e[n])) return !1;
for (n in e)
if (e.hasOwnProperty(n) && !t.hasOwnProperty(n)) return !1;
return !0
}
e.exports = n
}, {}
],
128: [
function (t, e) {
"use strict";
function n(t, e) {
return t && e && t.constructor === e.constructor && (t.props && t.props.key) === (e.props && e.props.key) && t._owner === e._owner ? !0 : !1
}
e.exports = n
}, {}
],
129: [
function (t, e) {
function n(t) {
var e = t.length;
if (r(!Array.isArray(t) && ("object" == typeof t || "function" == typeof t)), r("number" == typeof e), r(0 === e || e - 1 in t), t.hasOwnProperty) try {
return Array.prototype.slice.call(t)
} catch (n) {}
for (var o = Array(e), i = 0; e > i; i++) o[i] = t[i];
return o
}
var r = t("./invariant");
e.exports = n
}, {
"./invariant": 110
}
],
130: [
function (t, e) {
"use strict";
function n(t) {
return d[t]
}
function r(t, e) {
return t && t.props && null != t.props.key ? i(t.props.key) : e.toString(36)
}
function o(t) {
return ("" + t).replace(h, n)
}
function i(t) {
return "$" + o(t)
}
function s(t, e, n) {
null !== t && void 0 !== t && f(t, "", 0, e, n)
}
var a = t("./ReactInstanceHandles"),
u = t("./ReactTextComponent"),
l = t("./invariant"),
c = a.SEPARATOR,
p = ":",
d = {
"=": "=0",
".": "=1",
":": "=2"
},
h = /[=.:]/g,
f = function (t, e, n, o, s) {
var a = 0;
if (Array.isArray(t))
for (var d = 0; d < t.length; d++) {
var h = t[d],
m = e + (e ? p : c) + r(h, d),
g = n + a;
a += f(h, m, g, o, s)
} else {
var v = typeof t,
y = "" === e,
w = y ? c + r(t, 0) : e;
if (null == t || "boolean" === v) o(s, null, w, n), a = 1;
else if (t.type && t.type.prototype && t.type.prototype.mountComponentIntoNode) o(s, t, w, n), a = 1;
else if ("object" === v) {
l(!t || 1 !== t.nodeType);
for (var _ in t) t.hasOwnProperty(_) && (a += f(t[_], e + (e ? p : c) + i(_) + p + r(t[_], 0), n + a, o, s))
} else if ("string" === v) {
var b = new u(t);
o(s, b, w, n), a += 1
} else if ("number" === v) {
var x = new u("" + t);
o(s, x, w, n), a += 1
}
}
return a
};
e.exports = s
}, {
"./ReactInstanceHandles": 51,
"./ReactTextComponent": 68,
"./invariant": 110
}
],
131: [
function (t, e) {
"use strict";
var n = t("./emptyFunction"),
r = n;
e.exports = r
}, {
"./emptyFunction": 94
}
]
}, {}, [24])(24)
}),
function () {
var t, e, n, r, o, i, s, a, u, l, c, p, d, h, f, m, g, v, y, w, _, b, x, k, T, C, E, P, S, R, M, N, O, F, A, I, $, D, L, U, H, V, z, j, B, q, W, Y, G, K, X, Q, Z, J, te = [].slice,
ee = {}.hasOwnProperty,
ne = function (t, e) {
function n() {
this.constructor = t
}
for (var r in e) ee.call(e, r) && (t[r] = e[r]);
return n.prototype = e.prototype, t.prototype = new n, t.__super__ = e.prototype, t
},
re = function (t, e) {
return function () {
return t.apply(e, arguments)
}
};
t = {}, t.version = "0.6.22", t.fromBinder = function (e, n) {
return null == n && (n = X.id), new a(function (r) {
var o;
return o = e(function () {
var e, i, a, u, l, c;
for (e = 1 <= arguments.length ? te.call(arguments, 0) : [], u = n.apply(null, e), u instanceof Array && X.last(u) instanceof s || (u = [u]), a = t.more, l = 0, c = u.length; c > l; l++)
if (i = u[l], a = r(i = B(i)), a === t.noMore || i.isEnd()) return null != o ? o() : t.scheduler.setTimeout(function () {
return o()
}, 0), a;
return a
})
})
}, t.$ = {
asEventStream: function (e, n, r) {
var o, i = this;
return F(n) && (o = [n, null], r = o[0], n = o[1]), t.fromBinder(function (t) {
return i.on(e, n, t),
function () {
return i.off(e, n, t)
}
}, r)
}
}, null != (Q = "undefined" != typeof jQuery && null !== jQuery ? jQuery : "undefined" != typeof Zepto && null !== Zepto ? Zepto : null) && (Q.fn.asEventStream = t.$.asEventStream), t.fromEventTarget = function (e, n, r) {
var o, i, s, a, u, l;
return o = null != (s = e.addEventListener) ? s : null != (a = e.addListener) ? a : e.bind, i = null != (u = e.removeEventListener) ? u : null != (l = e.removeListener) ? l : e.unbind, t.fromBinder(function (t) {
return o.call(e, n, t),
function () {
return i.call(e, n, t)
}
}, r)
}, t.fromPromise = function (e, n) {
return t.fromBinder(function (t) {
return e.then(t, function (e) {
return t(new i(e))
}),
function () {
return n && "function" == typeof e.abort ? e.abort() : void 0
}
}, function (t) {
return [t, S()]
})
}, t.noMore = ["<no-more>"], t.more = ["<more>"], t.later = function (e, n) {
return t.sequentially(e, [n])
}, t.sequentially = function (e, n) {
var r;
return r = 0, t.fromPoll(e, function () {
var t;
return t = n[r++], r < n.length ? t : r === n.length ? [t, S()] : S()
})
}, t.repeatedly = function (e, n) {
var r;
return r = 0, t.fromPoll(e, function () {
return n[r++ % n.length]
})
}, K = function (t) {
return function () {
var e, n, r, o;
return r = arguments[0], e = 2 <= arguments.length ? te.call(arguments, 1) : [], "object" == typeof r && e.length && (n = r, o = e[0], r = function () {
return n[o].apply(n, arguments)
}, e = e.slice(1)), t.apply(null, [r].concat(te.call(e)))
}
}, I = function (e) {
return K(function () {
var n, r, o;
return r = arguments[0], n = 2 <= arguments.length ? te.call(arguments, 1) : [], o = z(e, [
function (t, e) {
return r.apply(null, te.call(t).concat([e]))
}
]), t.combineAsArray(n).flatMap(o)
})
}, t.fromCallback = I(function () {
var e, n;
return n = arguments[0], e = 2 <= arguments.length ? te.call(arguments, 1) : [], t.fromBinder(function (t) {
return $(n, e)(t), V
}, function (t) {
return [t, S()]
})
}), t.fromNodeCallback = I(function () {
var e, n;
return n = arguments[0], e = 2 <= arguments.length ? te.call(arguments, 1) : [], t.fromBinder(function (t) {
return $(n, e)(t), V
}, function (t, e) {
return t ? [new i(t), S()] : [e, S()]
})
}), t.fromPoll = function (e, n) {
return t.fromBinder(function (n) {
var r;
return r = t.scheduler.setInterval(n, e),
function () {
return t.scheduler.clearInterval(r)
}
}, n)
}, t.interval = function (e, n) {
return null == n && (n = {}), t.fromPoll(e, function () {
return H(n)
})
}, t.constant = function (t) {
return new d(function (e) {
return e(N(t)), e(S()), V
})
}, t.never = function () {
return t.fromArray([])
}, t.once = function (e) {
return t.fromArray([e])
}, t.fromArray = function (e) {
return w(e), e = C(e), new a(function (n) {
var r, o;
return o = !1, r = function () {
var i, s;
return X.empty(e) ? n(S()) : (s = e.splice(0, 1)[0], i = n(B(s)), i === t.noMore || o ? void 0 : r())
}, r(),
function () {
return o = !0
}
})
}, t.mergeAll = function () {
var e;
return e = 1 <= arguments.length ? te.call(arguments, 0) : [], e[0] instanceof Array && (e = e[0]), X.fold(e, t.never(), function (t, e) {
return t.merge(e)
})
}, t.zipAsArray = function () {
var e;
return e = 1 <= arguments.length ? te.call(arguments, 0) : [], e[0] instanceof Array && (e = e[0]), t.zipWith(e, function () {
var t;
return t = 1 <= arguments.length ? te.call(arguments, 0) : []
})
}, t.zipWith = function () {
var e, n, r;
return e = arguments[0], n = 2 <= arguments.length ? te.call(arguments, 1) : [], F(e) || (r = [e, n[0]], n = r[0], e = r[1]), t.when(X.map(function (t) {
return t.toEventStream()
}, n), e)
}, t.combineAsArray = function () {
var e, n, r, o, i, s, a;
for (i = 1 <= arguments.length ? te.call(arguments, 0) : [], 1 === i.length && i[0] instanceof Array && (i = i[0]), e = s = 0, a = i.length; a > s; e = ++s) o = i[e], o instanceof p || (i[e] = t.constant(o));
return i.length ? (r = function () {
var t, e, r;
for (r = [], t = 0, e = i.length; e > t; t++) n = i[t], r.push(new g(n, !0, !1, n.subscribeInternal));
return r
}(), t.when(r, function () {
var t;
return t = 1 <= arguments.length ? te.call(arguments, 0) : []
}).toProperty()) : t.constant([])
}, t.onValues = function () {
var e, n, r;
return n = 2 <= arguments.length ? te.call(arguments, 0, r = arguments.length - 1) : (r = 0, []), e = arguments[r++], t.combineAsArray(n).onValues(e)
}, t.combineWith = function () {
var e, n;
return e = arguments[0], n = 2 <= arguments.length ? te.call(arguments, 1) : [], t.combineAsArray(n).map(function (t) {
return e.apply(null, t)
})
}, t.combineTemplate = function (e) {
var n, r, o, i, s, a, u, l, c, d;
return u = [], d = [], a = function (t) {
return t[t.length - 1]
}, c = function (t, e, n) {
return a(t)[e] = n
}, n = function (t, e) {
return function (n, r) {
return c(n, t, r[e])
}
}, s = function (t, e) {
return function (n) {
return c(n, t, e)
}
}, l = function (t) {
return t instanceof Array ? [] : {}
}, o = function (t, e) {
var r, o;
return e instanceof p ? (d.push(e), u.push(n(t, d.length - 1))) : e === Object(e) && "function" != typeof e ? (o = function (t) {
return function (n) {
var r;
return r = l(e), c(n, t, r), n.push(r)
}
}, r = function (t) {
return t.pop()
}, u.push(o(t)), i(e), u.push(r)) : u.push(s(t, e))
}, i = function (t) {
return X.each(t, o)
}, i(e), r = function (t) {
var n, r, o, i, s;
for (o = l(e), n = [o], i = 0, s = u.length; s > i; i++)(r = u[i])(n, t);
return o
}, t.combineAsArray(d).map(r)
}, s = function () {
function t() {}
return t.prototype.isEvent = function () {
return !0
}, t.prototype.isEnd = function () {
return !1
}, t.prototype.isInitial = function () {
return !1
}, t.prototype.isNext = function () {
return !1
}, t.prototype.isError = function () {
return !1
}, t.prototype.hasValue = function () {
return !1
}, t.prototype.filter = function () {
return !0
}, t
}(), l = function (t) {
function e(t) {
this.value = F(t) ? X.cached(t) : X.always(t)
}
return ne(e, t), e.prototype.isNext = function () {
return !0
}, e.prototype.hasValue = function () {
return !0
}, e.prototype.fmap = function (t) {
var e = this;
return this.apply(function () {
return t(e.value())
})
}, e.prototype.apply = function (t) {
return new e(t)
}, e.prototype.filter = function (t) {
return t(this.value())
}, e.prototype.describe = function () {
return this.value()
}, e
}(s), u = function (t) {
function e() {
return Z = e.__super__.constructor.apply(this, arguments)
}
return ne(e, t), e.prototype.isInitial = function () {
return !0
}, e.prototype.isNext = function () {
return !1
}, e.prototype.apply = function (t) {
return new e(t)
}, e.prototype.toNext = function () {
return new l(this.value)
}, e
}(l), o = function (t) {
function e() {
return J = e.__super__.constructor.apply(this, arguments)
}
return ne(e, t), e.prototype.isEnd = function () {
return !0
}, e.prototype.fmap = function () {
return this
}, e.prototype.apply = function () {
return this
}, e.prototype.describe = function () {
return "<end>"
}, e
}(s), i = function (t) {
function e(t) {
this.error = t
}
return ne(e, t), e.prototype.isError = function () {
return !0
}, e.prototype.fmap = function () {
return this
}, e.prototype.apply = function () {
return this
}, e.prototype.describe = function () {
return "<error> " + this.error
}, e
}(s), p = function () {
function e() {
this.combine = re(this.combine, this), this.flatMapLatest = re(this.flatMapLatest, this), this.fold = re(this.fold, this), this.scan = re(this.scan, this), this.assign = this.onValue
}
return e.prototype.onValue = function () {
var t;
return t = D(arguments), this.subscribe(function (e) {
return e.hasValue() ? t(e.value()) : void 0
})
}, e.prototype.onValues = function (t) {
return this.onValue(function (e) {
return t.apply(null, e)
})
}, e.prototype.onError = function () {
var t;
return t = D(arguments), this.subscribe(function (e) {
return e.isError() ? t(e.error) : void 0
})
}, e.prototype.onEnd = function () {
var t;
return t = D(arguments), this.subscribe(function (e) {
return e.isEnd() ? t() : void 0
})
}, e.prototype.errors = function () {
return this.filter(function () {
return !1
})
}, e.prototype.filter = function () {
var e, n;
return n = arguments[0], e = 2 <= arguments.length ? te.call(arguments, 1) : [], P(this, n, e, function (e) {
return this.withHandler(function (n) {
return n.filter(e) ? this.push(n) : t.more
})
})
}, e.prototype.takeWhile = function () {
var e, n;
return n = arguments[0], e = 2 <= arguments.length ? te.call(arguments, 1) : [], P(this, n, e, function (e) {
return this.withHandler(function (n) {
return n.filter(e) ? this.push(n) : (this.push(S()), t.noMore)
})
})
}, e.prototype.endOnError = function () {
var t, e;
return e = arguments[0], t = 2 <= arguments.length ? te.call(arguments, 1) : [], null == e && (e = !0), P(this, e, t, function (t) {
return this.withHandler(function (e) {
return e.isError() && t(e.error) ? (this.push(e), this.push(S())) : this.push(e)
})
})
}, e.prototype.take = function (e) {
return 0 >= e ? t.never() : this.withHandler(function (n) {
return n.hasValue() ? (e--, e > 0 ? this.push(n) : (0 === e && this.push(n), this.push(S()), t.noMore)) : this.push(n)
})
}, e.prototype.map = function () {
var t, e;
return e = arguments[0], t = 2 <= arguments.length ? te.call(arguments, 1) : [], e instanceof d ? e.sampledBy(this, R) : P(this, e, t, function (t) {
return this.withHandler(function (e) {
return this.push(e.fmap(t))
})
})
}, e.prototype.mapError = function () {
var t;
return t = D(arguments), this.withHandler(function (e) {
return this.push(e.isError() ? H(t(e.error)) : e)
})
}, e.prototype.mapEnd = function () {
var e;
return e = D(arguments), this.withHandler(function (n) {
return n.isEnd() ? (this.push(H(e(n))), this.push(S()), t.noMore) : this.push(n)
})
}, e.prototype.doAction = function () {
var t;
return t = D(arguments), this.withHandler(function (e) {
return e.hasValue() && t(e.value()), this.push(e)
})
}, e.prototype.skip = function (e) {
return this.withHandler(function (n) {
return n.hasValue() && e > 0 ? (e--, t.more) : this.push(n)
})
}, e.prototype.skipDuplicates = function (t) {
return null == t && (t = function (t, e) {
return t === e
}), this.withStateMachine(c, function (e, n) {
return n.hasValue() ? n.isInitial() || e === c || !t(e.get(), n.value()) ? [new m(n.value()), [n]] : [e, []] : [e, [n]]
})
}, e.prototype.skipErrors = function () {
return this.withHandler(function (e) {
return e.isError() ? t.more : this.push(e)
})
}, e.prototype.withStateMachine = function (e, n) {
var r;
return r = e, this.withHandler(function (e) {
var o, i, s, a, u, l, c;
for (o = n(r, e), i = o[0], a = o[1], r = i, u = t.more, l = 0, c = a.length; c > l; l++)
if (s = a[l], u = this.push(s), u === t.noMore) return u;
return u
})
}, e.prototype.scan = function (e, n, r) {
var o, i, s, a = this;
return i = j(n), n = r ? i : function (t, e) {
return i(t(), e())
}, o = Y(e).map(function (t) {
return X.always(t)
}), s = function (e) {
var r, i, s, l;
return r = !1, l = V, i = t.more, s = function () {
return r ? void 0 : (r = !0, o.forEach(function (n) {
return i = e(new u(n)), i === t.noMore ? (l(), l = V) : void 0
}))
}, l = a.subscribe(function (a) {
var u, l;
return a.hasValue() ? r && a.isInitial() ? t.more : (a.isInitial() || s(), r = !0, l = o.getOrElse(function () {
return void 0
}), u = X.cached(function () {
return n(l, a.value)
}), o = new m(u), e(a.apply(u))) : (a.isEnd() && (i = s()), i !== t.noMore ? e(a) : void 0)
}), s(), l
}, new d(s)
}, e.prototype.fold = function (t, e) {
return this.scan(t, e).sampledBy(this.filter(!1).mapEnd().toProperty())
}, e.prototype.zip = function (e, n) {
return null == n && (n = Array), t.zipWith([this, e], n)
}, e.prototype.diff = function (t, e) {
return e = j(e), this.scan([t], function (t, n) {
return [n, e(t[0], n)]
}).filter(function (t) {
return 2 === t.length
}).map(function (t) {
return t[1]
})
}, e.prototype.flatMap = function (r, o) {
var i;
return r = U(r), i = this, new a(function (s) {
var a, l;
return l = new n, a = function (t) {
return t(), l.empty() ? s(S()) : void 0
}, l.add(function (n, c) {
return i.subscribe(function (n) {
var i;
return n.isEnd() ? a(c) : n.isError() ? s(n) : o && l.count() > 1 ? t.more : l.unsubscribed ? t.noMore : (i = r(n.value()), i instanceof e || (i = t.once(i)), l.add(function (e, n) {
return i.subscribe(function (r) {
var o;
return r.isEnd() ? (a(n), t.noMore) : (r instanceof u && (r = r.toNext()), o = s(r), o === t.noMore && e(), o)
})
}))
})
}), l.unsubscribe
})
}, e.prototype.flatMapFirst = function (t) {
return this.flatMap(t, !0)
}, e.prototype.flatMapLatest = function (t) {
var e;
return t = U(t), e = this.toEventStream(), e.flatMap(function (n) {
return t(n).takeUntil(e)
})
}, e.prototype.not = function () {
return this.map(function (t) {
return !t
})
}, e.prototype.log = function () {
var t;
return t = 1 <= arguments.length ? te.call(arguments, 0) : [], this.subscribe(function (e) {
return "undefined" != typeof console && null !== console && "function" == typeof console.log ? console.log.apply(console, te.call(t).concat([e.describe()])) : void 0
}), this
}, e.prototype.slidingWindow = function (t, e) {
return null == e && (e = 0), this.scan([], function (e, n) {
return e.concat([n]).slice(-t)
}).filter(function (t) {
return t.length >= e
})
}, e.prototype.combine = function (e, n) {
var r;
return r = j(n), t.combineAsArray(this, e).map(function (t) {
return r(t[0], t[1])
})
}, e.prototype.decode = function (e) {
return this.combine(t.combineTemplate(e), function (t, e) {
return e[t]
})
}, e.prototype.awaiting = function (t) {
return this.toEventStream().map(!0).merge(t.toEventStream().map(!1)).toProperty(!1)
}, e
}(), p.prototype.reduce = p.prototype.fold, a = function (e) {
function n(t) {
this.takeUntil = re(this.takeUntil, this), this.sampledBy = re(this.sampledBy, this);
var e;
n.__super__.constructor.call(this), x(t), e = new r(t), this.subscribe = e.subscribe, this.subscribeInternal = this.subscribe, this.hasSubscribers = e.hasSubscribers
}
return ne(n, e), n.prototype.delay = function (e) {
return this.flatMap(function (n) {
return t.later(e, n)
})
}, n.prototype.debounce = function (e) {
return this.flatMapLatest(function (n) {
return t.later(e, n)
})
}, n.prototype.debounceImmediate = function (e) {
return this.flatMapFirst(function (n) {
return t.once(n).concat(t.later(e).filter(!1))
})
}, n.prototype.throttle = function (t) {
return this.bufferWithTime(t).map(function (t) {
return t[t.length - 1]
})
}, n.prototype.bufferWithTime = function (t) {
return this.bufferWithTimeOrCount(t, Number.MAX_VALUE)
}, n.prototype.bufferWithCount = function (t) {
return this.bufferWithTimeOrCount(void 0, t)
}, n.prototype.bufferWithTimeOrCount = function (t, e) {
var n;
return n = function (n) {
return n.values.length === e ? n.flush() : void 0 !== t ? n.schedule() : void 0
}, this.buffer(t, n, n)
}, n.prototype.buffer = function (e, n, r) {
var o, i, s;
return null == n && (n = function () {}), null == r && (r = function () {}), o = {
scheduled: !1,
end: null,
values: [],
flush: function () {
var e;
if (this.scheduled = !1, this.values.length > 0) {
if (e = this.push(H(this.values)), this.values = [], null != this.end) return this.push(this.end);
if (e !== t.noMore) return r(this)
} else if (null != this.end) return this.push(this.end)
},
schedule: function () {
var t = this;
return this.scheduled ? void 0 : (this.scheduled = !0, e(function () {
return t.flush()
}))
}
}, s = t.more, F(e) || (i = e, e = function (e) {
return t.scheduler.setTimeout(e, i)
}), this.withHandler(function (t) {
return o.push = this.push, t.isError() ? s = this.push(t) : t.isEnd() ? (o.end = t, o.scheduled || o.flush()) : (o.values.push(t.value()), n(o)), s
})
}, n.prototype.merge = function (e) {
var r;
return b(e), r = this, new n(function (n) {
var o, i;
return o = 0, i = function (e) {
return function (r) {
return e.subscribe(function (e) {
var i;
return e.isEnd() ? (o++, 2 === o ? n(S()) : t.more) : (i = n(e), i === t.noMore && r(), i)
})
}
}, E(i(r), i(e))
})
}, n.prototype.toProperty = function (t) {
return 0 === arguments.length && (t = c), this.scan(t, A, !0)
}, n.prototype.toEventStream = function () {
return this
}, n.prototype.sampledBy = function (t, e) {
return this.toProperty().sampledBy(t, e)
}, n.prototype.concat = function (t) {
var e;
return e = this, new n(function (n) {
var r, o;
return o = V, r = e.subscribe(function (e) {
return e.isEnd() ? o = t.subscribe(n) : n(e)
}),
function () {
return r(), o()
}
})
}, n.prototype.takeUntil = function (e) {
var r;
return r = this, new n(function (n) {
var o, i;
return i = function (r) {
return e.onValue(function () {
return n(S()), r(), t.noMore
})
}, o = function (e) {
return r.subscribe(function (r) {
var o;
return o = n(r), (r.isEnd() || o === t.noMore) && e(), o
})
}, E(i, o)
})
}, n.prototype.skipUntil = function (t) {
var e;
return e = t.take(1).map(!0).toProperty(!1), this.filter(e)
}, n.prototype.skipWhile = function () {
var e, n, r;
return n = arguments[0], e = 2 <= arguments.length ? te.call(arguments, 1) : [], r = !1, P(this, n, e, function (e) {
return this.withHandler(function (n) {
return !r && n.hasValue() && e(n.value()) ? t.more : (n.hasValue() && (r = !0), this.push(n))
})
})
}, n.prototype.startWith = function (e) {
return t.once(e).concat(this)
}, n.prototype.withHandler = function (t) {
var e;
return e = new r(this.subscribe, t), new n(e.subscribe)
}, n.prototype.withSubscribe = function (t) {
return new n(t)
}, n
}(p), d = function (e) {
function n(e, r) {
this.toEventStream = re(this.toEventStream, this), this.toProperty = re(this.toProperty, this), this.changes = re(this.changes, this), this.sample = re(this.sample, this);
var o = this;
n.__super__.constructor.call(this), this.subscribeInternal = r === !0 ? e : new h(e, r).subscribe, this.sampledBy = function (e, r) {
var i, s, a, u;
return null != r ? r = j(r) : (i = !0, r = function (t) {
return t()
}), u = new g(o, !1, !1, o.subscribeInternal, i), s = new g(e, !0, !1, e.subscribe, i), a = t.when([u, s], r), e instanceof n ? a.toProperty() : a
}, this.subscribe = function (e) {
var n, r, i, s, a;
return i = t.more, n = function () {
function n() {}
return n.prototype.set = function (t) {
return this.event = t
}, n.prototype.send = function () {
var n;
return n = this.event, this.event = null, null != n && i !== t.noMore && (i = e(n), i === t.noMore) ? s() : void 0
}, n
}(), a = new n, r = new n, s = V, s = o.subscribeInternal(function (n) {
return n.isError() ? i !== t.noMore && (i = e(n)) : (n.hasValue() ? a.set(n) : n.isEnd() && r.set(n), f.onDone(function () {
return a.send(), r.send()
})), i
}),
function () {
return i = t.noMore, s()
}
}
}
return ne(n, e), n.prototype.sample = function (e) {
return this.sampledBy(t.interval(e, {}))
}, n.prototype.changes = function () {
var t = this;
return new a(function (e) {
return t.subscribe(function (t) {
return t.isInitial() ? void 0 : e(t)
})
})
}, n.prototype.withHandler = function (t) {
return new n(this.subscribeInternal, t)
}, n.prototype.withSubscribe = function (t) {
return new n(t)
}, n.prototype.toProperty = function () {
return k(arguments), this
}, n.prototype.toEventStream = function () {
var t = this;
return new a(function (e) {
return t.subscribe(function (t) {
return t.isInitial() && (t = t.toNext()), e(t)
})
})
}, n.prototype.and = function (t) {
return this.combine(t, function (t, e) {
return t && e
})
}, n.prototype.or = function (t) {
return this.combine(t, function (t, e) {
return t || e
})
}, n.prototype.delay = function (t) {
return this.delayChanges(function (e) {
return e.delay(t)
})
}, n.prototype.debounce = function (t) {
return this.delayChanges(function (e) {
return e.debounce(t)
})
}, n.prototype.throttle = function (t) {
return this.delayChanges(function (e) {
return e.throttle(t)
})
}, n.prototype.delayChanges = function (t) {
return v(this, t(this.changes()))
}, n.prototype.takeUntil = function (t) {
var e;
return e = this.changes().takeUntil(t), v(this, e)
}, n.prototype.startWith = function (t) {
return this.scan(t, function (t, e) {
return e
})
}, n
}(p), P = function (t, e, n, r) {
var o;
return e instanceof d ? (o = e.sampledBy(t, function (t, e) {
return [t, e]
}), r.apply(o, [
function (t) {
var e, n;
return e = t[0], n = t[1], e
}
]).map(function (t) {
var e, n;
return e = t[0], n = t[1]
})) : (e = $(e, n), r.apply(t, [e]))
}, v = function (e, n) {
var r;
return r = function (e) {
var n;
return n = c, e.subscribe(function (e) {
return e.hasValue() && (n = new m(e.value())), t.noMore
}), n
}, n.toProperty(r(e))
}, r = function () {
function e(e, n) {
var r, o, i, s, a, u, l, c, p, d = this;
null == e && (e = function () {
return V
}), l = [], a = null, s = !1, o = !1, this.hasSubscribers = function () {
return l.length > 0
}, i = null, c = V, u = function (t) {
return l = X.without(t, l)
}, p = null, r = function () {
var t, e, n, r, o;
if (null != p) {
for (e = p, p = null, o = [], n = 0, r = e.length; r > n; n++) t = e[n], o.push(t());
return o
}
}, this.push = function (e) {
var n, o, c, p, h, f;
if (s) return a = (a || []).concat([e]), t.more;
if (e !== i) {
e.isError() && (i = e), c = !1;
try {
for (s = !0, p = l, h = 0, f = p.length; f > h; h++) o = p[h], n = o.sink(e), (n === t.noMore || e.isEnd()) && u(o);
c = !0
} finally {
s = !1, c || (a = null)
}
for (c = !0; null != a ? a.length : void 0;) e = X.head(a), a = X.tail(a), d.push(e);
return r(e), d.hasSubscribers() ? t.more : t.noMore
}
}, null == n && (n = function (t) {
return this.push(t)
}), this.handleEvent = function (t) {
return t.isEnd() && (o = !0), n.apply(d, [t])
}, this.subscribe = function (t) {
var n;
return o ? (t(S()), V) : (x(t), n = {
sink: t
}, l = l.concat(n), 1 === l.length && (c = e(d.handleEvent)), x(c), function () {
return u(n), d.hasSubscribers() ? void 0 : c()
})
}
}
return e
}(), h = function (e) {
function n(e, r) {
var o, i, s, a = this;
n.__super__.constructor.call(this, e, r), o = c, s = this.push, e = this.subscribe, i = !1, this.push = function (t) {
return t.isEnd() && (i = !0), t.hasValue() && (o = new m(t.value)), f.inTransaction(function () {
return s.apply(a, [t])
})
}, this.subscribe = function (n) {
var r, s, u;
return r = !1, u = function () {
return a.hasSubscribers() || i
}, s = o.filter(u).map(function (t) {
return n(N(t()))
}), s.getOrElse(t.more) === t.noMore ? V : i ? (n(S()), V) : e.apply(a, [n])
}
}
return ne(n, e), n
}(r), f = function () {
var t, e, n, r;
return r = [], n = !1, e = function (t) {
return n ? r.push(t) : t()
}, t = function (t) {
var e, o, i, s, a;
if (n) return t();
n = !0;
try {
i = t()
} finally {
n = !1
}
for (o = r, r = [], s = 0, a = o.length; a > s; s++)(e = o[s])();
return i
}, {
onDone: e,
inTransaction: t
}
}(), e = function (e) {
function n() {
var e, r, o, s, a, u, l, c;
o = void 0, u = [], e = !1, r = function (e) {
return function (n) {
return n.isEnd() ? (c(e), t.noMore) : o(n)
}
}, l = function () {
var t, e, n, r;
for (r = [], e = 0, n = u.length; n > e; e++) t = u[e], r.push("function" == typeof t.unsub ? t.unsub() : void 0);
return r
}, a = function (t) {
return t.unsub = t.input.subscribe(r(t.input))
}, c = function (t) {
var e, n, r, o;
for (e = r = 0, o = u.length; o > r; e = ++r)
if (n = u[e], n.input === t) return "function" == typeof n.unsub && n.unsub(), void u.splice(e, 1)
}, s = function (t) {
var e, n, r, i;
for (o = t, i = C(u), n = 0, r = i.length; r > n; n++) e = i[n], a(e);
return l
}, n.__super__.constructor.call(this, s), this.plug = function (t) {
var n;
if (!e) return n = {
input: t
}, u.push(n), null != o && a(n),
function () {
return c(t)
}
}, this.push = function (t) {
return "function" == typeof o ? o(H(t)) : void 0
}, this.error = function (t) {
return "function" == typeof o ? o(new i(t)) : void 0
}, this.end = function () {
return e = !0, l(), "function" == typeof o ? o(S()) : void 0
}
}
return ne(n, e), n
}(a), g = function () {
function t(t, e, n, r, o) {
var i, s;
this.sync = e, this.subscribe = r, null == o && (o = !1), s = [], i = o ? X.id : function (t) {
return t()
}, null == this.subscribe && (this.subscribe = t.subscribe), this.markEnded = function () {
return this.ended = !0
}, n ? (this.consume = function () {
return i(s.shift())
}, this.push = function (t) {
return s.push(t)
}, this.mayHave = function (t) {
return !this.ended || s.length >= t
}, this.hasAtLeast = function (t) {
return s.length >= t
}) : (this.consume = function () {
return i(s[0])
}, this.push = function (t) {
return s = [t]
}, this.mayHave = function () {
return !0
}, this.hasAtLeast = function () {
return s.length
})
}
return t
}(), g.fromObservable = function (t) {
return t instanceof g ? t : t instanceof d ? new g(t, !1, !1) : new g(t, !0, !0)
}, t.when = function () {
var e, n, r, o, i, s, u, l, c, d, h, f, m, v, w, _, b;
if (c = 1 <= arguments.length ? te.call(arguments, 0) : [], 0 === c.length) return t.never();
for (i = c.length, f = "when: expecting arguments in the form (Observable+,function)+", y(f, i % 2 === 0), h = [], l = [], n = 0; i > n;) {
for (u = X.toArray(c[n]), e = c[n + 1], s = {
f: F(e) ? e : function () {
return e
},
ixs: []
}, m = 0, w = u.length; w > m; m++) {
for (d = u[m], y(d instanceof p, f), r = M(h, d), 0 > r && (h.push(d), r = h.length - 1), b = s.ixs, v = 0, _ = b.length; _ > v; v++) o = b[v], o.index === r && o.count++;
s.ixs.push({
index: r,
count: 1
})
}
u.length > 0 && l.push(s), n += 2
}
return h.length ? (h = X.map(g.fromObservable, h), new a(function (e) {
var r, o, i, s;
return i = function (t) {
return X.all(t.ixs, function (t) {
return h[t.index].hasAtLeast(t.count)
})
}, o = function (t) {
return !t.sync || t.ended
}, r = function (t) {
return X.any(t.ixs, function (t) {
return !h[t.index].mayHave(t.count)
})
}, s = function (s) {
return function (a) {
return s.subscribe(function (u) {
var c, p, d, f, m;
if (u.isEnd()) s.markEnded(), (X.all(h, o) || X.all(l, r)) && (p = t.noMore, e(S()));
else if (u.isError()) p = e(u);
else if (s.push(u.value), s.sync)
for (f = 0, m = l.length; m > f; f++)
if (c = l[f], i(c)) {
d = function () {
return c.f.apply(c, function () {
var t, e, r, o;
for (r = c.ixs, o = [], t = 0, e = r.length; e > t; t++) n = r[t], o.push(h[n.index].consume());
return o
}())
}, p = e(u.apply(d));
break
}
return p === t.noMore && a(), p || t.more
})
}
}, E.apply(null, function () {
var t, e, r;
for (r = [], n = t = 0, e = h.length; e > t; n = ++t) d = h[n], r.push(s(d, n));
return r
}())
})) : t.never()
}, t.update = function () {
var e, n, r, o;
for (n = arguments[0], o = 2 <= arguments.length ? te.call(arguments, 1) : [], r = function (t) {
return function () {
var e;
return e = 1 <= arguments.length ? te.call(arguments, 0) : [],
function (n) {
return t.apply(null, [n].concat(e))
}
}
}, e = o.length - 1; e > 0;) o[e] instanceof Function || (o[e] = function (t) {
return function () {
return t
}
}(o[e])), o[e] = r(o[e]), e -= 2;
return t.when.apply(t, o).scan(n, function (t, e) {
return e(t)
})
}, E = function () {
var t;
return t = 1 <= arguments.length ? te.call(arguments, 0) : [], new n(t).unsubscribe
}, n = function () {
function t(t) {
var e, n, r;
for (null == t && (t = []), this.empty = re(this.empty, this), this.count = re(this.count, this), this.unsubscribe = re(this.unsubscribe, this), this.add = re(this.add, this), this.unsubscribed = !1, this.subscriptions = [], this.starting = [], n = 0, r = t.length; r > n; n++) e = t[n], this.add(e)
}
return t.prototype.add = function (t) {
var e, n, r, o = this;
if (!this.unsubscribed) return e = !1, n = V, this.starting.push(t), r = function () {
return o.unsubscribed ? void 0 : (e = !0, o.remove(n), X.remove(t, o.starting))
}, n = t(this.unsubscribe, r), this.unsubscribed || e || this.subscriptions.push(n), X.remove(t, this.starting), n
}, t.prototype.remove = function (t) {
return this.unsubscribed ? void 0 : void 0 !== X.remove(t, this.subscriptions) ? t() : void 0
}, t.prototype.unsubscribe = function () {
var t, e, n, r;
if (!this.unsubscribed) {
for (this.unsubscribed = !0, r = this.subscriptions, e = 0, n = r.length; n > e; e++)(t = r[e])();
return this.subscriptions = [], this.starting = []
}
}, t.prototype.count = function () {
return this.unsubscribed ? 0 : this.subscriptions.length + this.starting.length
}, t.prototype.empty = function () {
return 0 === this.count()
}, t
}(), t.CompositeUnsubscribe = n, m = function () {
function t(t) {
this.value = t
}
return t.prototype.getOrElse = function () {
return this.value
}, t.prototype.get = function () {
return this.value
}, t.prototype.filter = function (e) {
return e(this.value) ? new t(this.value) : c
}, t.prototype.map = function (e) {
return new t(e(this.value))
}, t.prototype.forEach = function (t) {
return t(this.value)
}, t.prototype.isDefined = !0, t.prototype.toArray = function () {
return [this.value]
}, t
}(), c = {
getOrElse: function (t) {
return t
},
filter: function () {
return c
},
map: function () {
return c
},
forEach: function () {},
isDefined: !1,
toArray: function () {
return []
}
}, t.EventStream = a, t.Property = d, t.Observable = p, t.Bus = e, t.Initial = u, t.Next = l, t.End = o, t.Error = i, V = function () {}, A = function (t, e) {
return e()
}, R = function (t) {
return t
}, N = function (t) {
return new u(X.always(t))
}, H = function (t) {
return new l(X.always(t))
}, S = function () {
return new o
}, B = function (t) {
return t instanceof s ? t : H(t)
}, C = function (t) {
return t.slice(0)
}, M = Array.prototype.indexOf ? function (t, e) {
return t.indexOf(e)
} : function (t, e) {
var n, r, o, i;
for (n = o = 0, i = t.length; i > o; n = ++o)
if (r = t[n], e === r) return n;
return -1
}, y = function (t, e) {
if (!e) throw t
}, _ = function (t) {
return y("not an event : " + t, t instanceof s && t.isEvent())
}, b = function (t) {
return y("not an EventStream : " + t, t instanceof a)
}, x = function (t) {
return y("not a function : " + t, F(t))
}, F = function (t) {
return "function" == typeof t
}, w = function (t) {
return y("not an array : " + t, t instanceof Array)
}, k = function (t) {
return y("no arguments supported", 0 === t.length)
}, T = function (t) {
return y("not a string : " + t, "string" == typeof t)
}, z = function (t, e) {
return function () {
var n;
return n = 1 <= arguments.length ? te.call(arguments, 0) : [], t.apply(null, e.concat(n))
}
}, U = function (t) {
return t instanceof p && (t = X.always(t)), x(t), t
}, D = function (t) {
return t = Array.prototype.slice.call(t), L.apply(null, t)
}, L = K(function () {
var t, e;
return e = arguments[0], t = 2 <= arguments.length ? te.call(arguments, 1) : [], F(e) ? t.length ? z(e, t) : e : O(e) ? q(e, t) : X.always(e)
}), $ = function (t, e) {
return L.apply(null, [t].concat(te.call(e)))
}, O = function (t) {
return "string" == typeof t && t.length > 1 && "." === t.charAt(0)
}, t.isFieldKey = O, q = function (t, e) {
var n, r;
return r = t.slice(1).split("."), n = X.map(G(e), r),
function (e) {
var r, o;
for (r = 0, o = n.length; o > r; r++) t = n[r], e = t(e);
return e
}
}, G = function (t) {
return function (e) {
return function (n) {
var r;
return null == n ? void 0 : (r = n[e], F(r) ? r.apply(n, t) : r)
}
}
}, W = function (t) {
return t.slice(1)
}, j = function (t) {
var e;
return F(t) ? t : O(t) ? (e = W(t), function (t, n) {
return t[e](n)
}) : y("not a function or a field key: " + t, !1)
}, Y = function (t) {
return t instanceof m || t === c ? t : new m(t)
}, X = {
head: function (t) {
return t[0]
},
always: function (t) {
return function () {
return t
}
},
negate: function (t) {
return function (e) {
return !t(e)
}
},
empty: function (t) {
return 0 === t.length
},
tail: function (t) {
return t.slice(1, t.length)
},
filter: function (t, e) {
var n, r, o, i;
for (n = [], o = 0, i = e.length; i > o; o++) r = e[o], t(r) && n.push(r);
return n
},
map: function (t, e) {
var n, r, o, i;
for (i = [], r = 0, o = e.length; o > r; r++) n = e[r], i.push(t(n));
return i
},
each: function (t, e) {
var n, r, o;
o = [];
for (n in t) r = t[n], o.push(e(n, r));
return o
},
toArray: function (t) {
return t instanceof Array ? t : [t]
},
contains: function (t, e) {
return -1 !== M(t, e)
},
id: function (t) {
return t
},
last: function (t) {
return t[t.length - 1]
},
all: function (t, e) {
var n, r, o;
for (null == e && (e = X.id), r = 0, o = t.length; o > r; r++)
if (n = t[r], !e(n)) return !1;
return !0
},
any: function (t, e) {
var n, r, o;
for (null == e && (e = X.id), r = 0, o = t.length; o > r; r++)
if (n = t[r], e(n)) return !0;
return !1
},
without: function (t, e) {
return X.filter(function (e) {
return e !== t
}, e)
},
remove: function (t, e) {
var n;
return n = M(e, t), n >= 0 ? e.splice(n, 1) : void 0
},
fold: function (t, e, n) {
var r, o, i;
for (o = 0, i = t.length; i > o; o++) r = t[o], e = n(e, r);
return e
},
cached: function (t) {
var e;
return e = c,
function () {
return e === c && (e = t(), t = null), e
}
}
}, t._ = X, t.scheduler = {
setTimeout: function (t, e) {
return setTimeout(t, e)
},
setInterval: function (t, e) {
return setInterval(t, e)
},
clearInterval: function (t) {
return clearInterval(t)
},
now: function () {
return (new Date).getTime()
}
}, "undefined" != typeof module && null !== module ? (module.exports = t, t.Bacon = t) : ("undefined" != typeof define && null !== define && null != define.amd && define([], function () {
return t
}), this.Bacon = t)
}.call(this),
/*!
* Modernizr v2.8.1
* www.modernizr.com
*
* Copyright (c) Faruk Ates, Paul Irish, Alex Sexton
* Available under the BSD and MIT licenses: www.modernizr.com/license/
*/
window.Modernizr = function (t, e, n) {
function r(t) {
w.cssText = t
}
function o(t, e) {
return r(k.join(t + ";") + (e || ""))
}
function i(t, e) {
return typeof t === e
}
function s(t, e) {
return !!~("" + t).indexOf(e)
}
function a(t, e) {
for (var r in t) {
var o = t[r];
if (!s(o, "-") && w[o] !== n) return "pfx" == e ? o : !0
}
return !1
}
function u(t, e, r) {
for (var o in t) {
var s = e[t[o]];
if (s !== n) return r === !1 ? t[o] : i(s, "function") ? s.bind(r || e) : s
}
return !1
}
function l(t, e, n) {
var r = t.charAt(0).toUpperCase() + t.slice(1),
o = (t + " " + C.join(r + " ") + r).split(" ");
return i(e, "string") || i(e, "undefined") ? a(o, e) : (o = (t + " " + E.join(r + " ") + r).split(" "), u(o, e, n))
}
function c() {
f.input = function (n) {
for (var r = 0, o = n.length; o > r; r++) M[n[r]] = !!(n[r] in _);
return M.list && (M.list = !(!e.createElement("datalist") || !t.HTMLDataListElement)), M
}("autocomplete autofocus list placeholder max min multiple pattern required step".split(" ")), f.inputtypes = function (t) {
for (var r, o, i, s = 0, a = t.length; a > s; s++) _.setAttribute("type", o = t[s]), r = "text" !== _.type, r && (_.value = b, _.style.cssText = "position:absolute;visibility:hidden;", /^range$/.test(o) && _.style.WebkitAppearance !== n ? (g.appendChild(_), i = e.defaultView, r = i.getComputedStyle && "textfield" !== i.getComputedStyle(_, null).WebkitAppearance && 0 !== _.offsetHeight, g.removeChild(_)) : /^(search|tel)$/.test(o) || (r = /^(url|email)$/.test(o) ? _.checkValidity && _.checkValidity() === !1 : _.value != b)), R[t[s]] = !!r;
return R
}("search tel url email datetime date month week time datetime-local number range color".split(" "))
}
var p, d, h = "2.8.1",
f = {},
m = !0,
g = e.documentElement,
v = "modernizr",
y = e.createElement(v),
w = y.style,
_ = e.createElement("input"),
b = ":)",
x = {}.toString,
k = " -webkit- -moz- -o- -ms- ".split(" "),
T = "Webkit Moz O ms",
C = T.split(" "),
E = T.toLowerCase().split(" "),
P = {
svg: "http://www.w3.org/2000/svg"
},
S = {},
R = {},
M = {},
N = [],
O = N.slice,
F = function (t, n, r, o) {
var i, s, a, u, l = e.createElement("div"),
c = e.body,
p = c || e.createElement("body");
if (parseInt(r, 10))
for (; r--;) a = e.createElement("div"), a.id = o ? o[r] : v + (r + 1), l.appendChild(a);
return i = ["&#173;", '<style id="s', v, '">', t, "</style>"].join(""), l.id = v, (c ? l : p).innerHTML += i, p.appendChild(l), c || (p.style.background = "", p.style.overflow = "hidden", u = g.style.overflow, g.style.overflow = "hidden", g.appendChild(p)), s = n(l, t), c ? l.parentNode.removeChild(l) : (p.parentNode.removeChild(p), g.style.overflow = u), !!s
},
A = function (e) {
var n = t.matchMedia || t.msMatchMedia;
if (n) return n(e) && n(e).matches || !1;
var r;
return F("@media " + e + " { #" + v + " { position: absolute; } }", function (e) {
r = "absolute" == (t.getComputedStyle ? getComputedStyle(e, null) : e.currentStyle).position
}), r
},
I = function () {
function t(t, o) {
o = o || e.createElement(r[t] || "div"), t = "on" + t;
var s = t in o;
return s || (o.setAttribute || (o = e.createElement("div")), o.setAttribute && o.removeAttribute && (o.setAttribute(t, ""), s = i(o[t], "function"), i(o[t], "undefined") || (o[t] = n), o.removeAttribute(t))), o = null, s
}
var r = {
select: "input",
change: "input",
submit: "form",
reset: "form",
error: "img",
load: "img",
abort: "img"
};
return t
}(),
$ = {}.hasOwnProperty;
d = i($, "undefined") || i($.call, "undefined") ? function (t, e) {
return e in t && i(t.constructor.prototype[e], "undefined")
} : function (t, e) {
return $.call(t, e)
}, Function.prototype.bind || (Function.prototype.bind = function (t) {
var e = this;
if ("function" != typeof e) throw new TypeError;
var n = O.call(arguments, 1),
r = function () {
if (this instanceof r) {
var o = function () {};
o.prototype = e.prototype;
var i = new o,
s = e.apply(i, n.concat(O.call(arguments)));
return Object(s) === s ? s : i
}
return e.apply(t, n.concat(O.call(arguments)))
};
return r
}), S.flexbox = function () {
return l("flexWrap")
}, S.flexboxlegacy = function () {
return l("boxDirection")
}, S.canvas = function () {
var t = e.createElement("canvas");
return !(!t.getContext || !t.getContext("2d"))
}, S.canvastext = function () {
return !(!f.canvas || !i(e.createElement("canvas").getContext("2d").fillText, "function"))
}, S.webgl = function () {
return !!t.WebGLRenderingContext
}, S.touch = function () {
var n;
return "ontouchstart" in t || t.DocumentTouch && e instanceof DocumentTouch ? n = !0 : F(["@media (", k.join("touch-enabled),("), v, ")", "{#modernizr{top:9px;position:absolute}}"].join(""), function (t) {
n = 9 === t.offsetTop
}), n
}, S.geolocation = function () {
return "geolocation" in navigator
}, S.postmessage = function () {
return !!t.postMessage
}, S.websqldatabase = function () {
return !!t.openDatabase
}, S.indexedDB = function () {
return !!l("indexedDB", t)
}, S.hashchange = function () {
return I("hashchange", t) && (e.documentMode === n || e.documentMode > 7)
}, S.history = function () {
return !(!t.history || !history.pushState)
}, S.draganddrop = function () {
var t = e.createElement("div");
return "draggable" in t || "ondragstart" in t && "ondrop" in t
}, S.websockets = function () {
return "WebSocket" in t || "MozWebSocket" in t
}, S.rgba = function () {
return r("background-color:rgba(150,255,150,.5)"), s(w.backgroundColor, "rgba")
}, S.hsla = function () {
return r("background-color:hsla(120,40%,100%,.5)"), s(w.backgroundColor, "rgba") || s(w.backgroundColor, "hsla")
}, S.multiplebgs = function () {
return r("background:url(https://),url(https://),red url(https://)"), /(url\s*\(.*?){3}/.test(w.background)
}, S.backgroundsize = function () {
return l("backgroundSize")
}, S.borderimage = function () {
return l("borderImage")
}, S.borderradius = function () {
return l("borderRadius")
}, S.boxshadow = function () {
return l("boxShadow")
}, S.textshadow = function () {
return "" === e.createElement("div").style.textShadow
}, S.opacity = function () {
return o("opacity:.55"), /^0.55$/.test(w.opacity)
}, S.cssanimations = function () {
return l("animationName")
}, S.csscolumns = function () {
return l("columnCount")
}, S.cssgradients = function () {
var t = "background-image:",
e = "gradient(linear,left top,right bottom,from(#9f9),to(white));",
n = "linear-gradient(left top,#9f9, white);";
return r((t + "-webkit- ".split(" ").join(e + t) + k.join(n + t)).slice(0, -t.length)), s(w.backgroundImage, "gradient")
}, S.cssreflections = function () {
return l("boxReflect")
}, S.csstransforms = function () {
return !!l("transform")
}, S.csstransforms3d = function () {
var t = !!l("perspective");
return t && "webkitPerspective" in g.style && F("@media (transform-3d),(-webkit-transform-3d){#modernizr{left:9px;position:absolute;height:3px;}}", function (e) {
t = 9 === e.offsetLeft && 3 === e.offsetHeight
}), t
}, S.csstransitions = function () {
return l("transition")
}, S.fontface = function () {
var t;
return F('@font-face {font-family:"font";src:url("https://")}', function (n, r) {
var o = e.getElementById("smodernizr"),
i = o.sheet || o.styleSheet,
s = i ? i.cssRules && i.cssRules[0] ? i.cssRules[0].cssText : i.cssText || "" : "";
t = /src/i.test(s) && 0 === s.indexOf(r.split(" ")[0])
}), t
}, S.generatedcontent = function () {
var t;
return F(["#", v, "{font:0/0 a}#", v, ':after{content:"', b, '";visibility:hidden;font:3px/1 a}'].join(""), function (e) {
t = e.offsetHeight >= 3
}), t
}, S.video = function () {
var t = e.createElement("video"),
n = !1;
try {
(n = !!t.canPlayType) && (n = new Boolean(n), n.ogg = t.canPlayType('video/ogg; codecs="theora"').replace(/^no$/, ""), n.h264 = t.canPlayType('video/mp4; codecs="avc1.42E01E"').replace(/^no$/, ""), n.webm = t.canPlayType('video/webm; codecs="vp8, vorbis"').replace(/^no$/, ""))
} catch (r) {}
return n
}, S.audio = function () {
var t = e.createElement("audio"),
n = !1;
try {
(n = !!t.canPlayType) && (n = new Boolean(n), n.ogg = t.canPlayType('audio/ogg; codecs="vorbis"').replace(/^no$/, ""), n.mp3 = t.canPlayType("audio/mpeg;").replace(/^no$/, ""), n.wav = t.canPlayType('audio/wav; codecs="1"').replace(/^no$/, ""), n.m4a = (t.canPlayType("audio/x-m4a;") || t.canPlayType("audio/aac;")).replace(/^no$/, ""))
} catch (r) {}
return n
}, S.localstorage = function () {
try {
return localStorage.setItem(v, v), localStorage.removeItem(v), !0
} catch (t) {
return !1
}
}, S.sessionstorage = function () {
try {
return sessionStorage.setItem(v, v), sessionStorage.removeItem(v), !0
} catch (t) {
return !1
}
}, S.webworkers = function () {
return !!t.Worker
}, S.applicationcache = function () {
return !!t.applicationCache
}, S.svg = function () {
return !!e.createElementNS && !!e.createElementNS(P.svg, "svg").createSVGRect
}, S.inlinesvg = function () {
var t = e.createElement("div");
return t.innerHTML = "<svg/>", (t.firstChild && t.firstChild.namespaceURI) == P.svg
}, S.smil = function () {
return !!e.createElementNS && /SVGAnimate/.test(x.call(e.createElementNS(P.svg, "animate")))
}, S.svgclippaths = function () {
return !!e.createElementNS && /SVGClipPath/.test(x.call(e.createElementNS(P.svg, "clipPath")))
};
for (var D in S) d(S, D) && (p = D.toLowerCase(), f[p] = S[D](), N.push((f[p] ? "" : "no-") + p));
return f.input || c(), f.addTest = function (t, e) {
if ("object" == typeof t)
for (var r in t) d(t, r) && f.addTest(r, t[r]);
else {
if (t = t.toLowerCase(), f[t] !== n) return f;
e = "function" == typeof e ? e() : e, "undefined" != typeof m && m && (g.className += " " + (e ? "" : "no-") + t), f[t] = e
}
return f
}, r(""), y = _ = null,
function (t, e) {
function n(t, e) {
var n = t.createElement("p"),
r = t.getElementsByTagName("head")[0] || t.documentElement;
return n.innerHTML = "x<style>" + e + "</style>", r.insertBefore(n.lastChild, r.firstChild)
}
function r() {
var t = y.elements;
return "string" == typeof t ? t.split(" ") : t
}
function o(t) {
var e = v[t[m]];
return e || (e = {}, g++, t[m] = g, v[g] = e), e
}
function i(t, n, r) {
if (n || (n = e), c) return n.createElement(t);
r || (r = o(n));
var i;
return i = r.cache[t] ? r.cache[t].cloneNode() : f.test(t) ? (r.cache[t] = r.createElem(t)).cloneNode() : r.createElem(t), !i.canHaveChildren || h.test(t) || i.tagUrn ? i : r.frag.appendChild(i)
}
function s(t, n) {
if (t || (t = e), c) return t.createDocumentFragment();
n = n || o(t);
for (var i = n.frag.cloneNode(), s = 0, a = r(), u = a.length; u > s; s++) i.createElement(a[s]);
return i
}
function a(t, e) {
e.cache || (e.cache = {}, e.createElem = t.createElement, e.createFrag = t.createDocumentFragment, e.frag = e.createFrag()), t.createElement = function (n) {
return y.shivMethods ? i(n, t, e) : e.createElem(n)
}, t.createDocumentFragment = Function("h,f", "return function(){var n=f.cloneNode(),c=n.createElement;h.shivMethods&&(" + r().join().replace(/[\w\-]+/g, function (t) {
return e.createElem(t), e.frag.createElement(t), 'c("' + t + '")'
}) + ");return n}")(y, e.frag)
}
function u(t) {
t || (t = e);
var r = o(t);
return !y.shivCSS || l || r.hasCSS || (r.hasCSS = !!n(t, "article,aside,dialog,figcaption,figure,footer,header,hgroup,main,nav,section{display:block}mark{background:#FF0;color:#000}template{display:none}")), c || a(t, r), t
}
var l, c, p = "3.7.0",
d = t.html5 || {},
h = /^<|^(?:button|map|select|textarea|object|iframe|option|optgroup)$/i,
f = /^(?:a|b|code|div|fieldset|h1|h2|h3|h4|h5|h6|i|label|li|ol|p|q|span|strong|style|table|tbody|td|th|tr|ul)$/i,
m = "_html5shiv",
g = 0,
v = {};
! function () {
try {
var t = e.createElement("a");
t.innerHTML = "<xyz></xyz>", l = "hidden" in t, c = 1 == t.childNodes.length || function () {
e.createElement("a");
var t = e.createDocumentFragment();
return "undefined" == typeof t.cloneNode || "undefined" == typeof t.createDocumentFragment || "undefined" == typeof t.createElement
}()
} catch (n) {
l = !0, c = !0
}
}();
var y = {
elements: d.elements || "abbr article aside audio bdi canvas data datalist details dialog figcaption figure footer header hgroup main mark meter nav output progress section summary template time video",
version: p,
shivCSS: d.shivCSS !== !1,
supportsUnknownElements: c,
shivMethods: d.shivMethods !== !1,
type: "default",
shivDocument: u,
createElement: i,
createDocumentFragment: s
};
t.html5 = y, u(e)
}(this, e), f._version = h, f._prefixes = k, f._domPrefixes = E, f._cssomPrefixes = C, f.mq = A, f.hasEvent = I, f.testProp = function (t) {
return a([t])
}, f.testAllProps = l, f.testStyles = F, f.prefixed = function (t, e, n) {
return e ? l(t, e, n) : l(t, "pfx")
}, g.className = g.className.replace(/(^|\s)no-js(\s|$)/, "$1$2") + (m ? " js " + N.join(" ") : ""), f
}(this, this.document), Modernizr.addTest("csspositionsticky", function () {
var t = "position:",
e = "sticky",
n = document.createElement("modernizr"),
r = n.style;
return r.cssText = t + Modernizr._prefixes.join(e + ";" + t).slice(0, -t.length), -1 !== r.position.indexOf(e)
}),
function (t) {
function e() {
return {
empty: !1,
unusedTokens: [],
unusedInput: [],
overflow: -2,
charsLeftOver: 0,
nullInput: !1,
invalidMonth: null,
invalidFormat: !1,
userInvalidated: !1,
iso: !1
}
}
function n(t, e) {
function n() {
ue.suppressDeprecationWarnings === !1 && "undefined" != typeof console && console.warn && console.warn("Deprecation warning: " + t)
}
var r = !0;
return u(function () {
return r && (n(), r = !1), e.apply(this, arguments)
}, e)
}
function r(t, e) {
return function (n) {
return p(t.call(this, n), e)
}
}
function o(t, e) {
return function (n) {
return this.lang().ordinal(t.call(this, n), e)
}
}
function i() {}
function s(t) {
T(t), u(this, t)
}
function a(t) {
var e = v(t),
n = e.year || 0,
r = e.quarter || 0,
o = e.month || 0,
i = e.week || 0,
s = e.day || 0,
a = e.hour || 0,
u = e.minute || 0,
l = e.second || 0,
c = e.millisecond || 0;
this._milliseconds = +c + 1e3 * l + 6e4 * u + 36e5 * a, this._days = +s + 7 * i, this._months = +o + 3 * r + 12 * n, this._data = {}, this._bubble()
}
function u(t, e) {
for (var n in e) e.hasOwnProperty(n) && (t[n] = e[n]);
return e.hasOwnProperty("toString") && (t.toString = e.toString), e.hasOwnProperty("valueOf") && (t.valueOf = e.valueOf), t
}
function l(t) {
var e, n = {};
for (e in t) t.hasOwnProperty(e) && xe.hasOwnProperty(e) && (n[e] = t[e]);
return n
}
function c(t) {
return 0 > t ? Math.ceil(t) : Math.floor(t)
}
function p(t, e, n) {
for (var r = "" + Math.abs(t), o = t >= 0; r.length < e;) r = "0" + r;
return (o ? n ? "+" : "" : "-") + r
}
function d(t, e, n, r) {
var o = e._milliseconds,
i = e._days,
s = e._months;
r = null == r ? !0 : r, o && t._d.setTime(+t._d + o * n), i && re(t, "Date", ne(t, "Date") + i * n), s && ee(t, ne(t, "Month") + s * n), r && ue.updateOffset(t, i || s)
}
function h(t) {
return "[object Array]" === Object.prototype.toString.call(t)
}
function f(t) {
return "[object Date]" === Object.prototype.toString.call(t) || t instanceof Date
}
function m(t, e, n) {
var r, o = Math.min(t.length, e.length),
i = Math.abs(t.length - e.length),
s = 0;
for (r = 0; o > r; r++)(n && t[r] !== e[r] || !n && w(t[r]) !== w(e[r])) && s++;
return s + i
}
function g(t) {
if (t) {
var e = t.toLowerCase().replace(/(.)s$/, "$1");
t = Qe[t] || Ze[e] || e
}
return t
}
function v(t) {
var e, n, r = {};
for (n in t) t.hasOwnProperty(n) && (e = g(n), e && (r[e] = t[n]));
return r
}
function y(e) {
var n, r;
if (0 === e.indexOf("week")) n = 7, r = "day";
else {
if (0 !== e.indexOf("month")) return;
n = 12, r = "month"
}
ue[e] = function (o, i) {
var s, a, u = ue.fn._lang[e],
l = [];
if ("number" == typeof o && (i = o, o = t), a = function (t) {
var e = ue().utc().set(r, t);
return u.call(ue.fn._lang, e, o || "")
}, null != i) return a(i);
for (s = 0; n > s; s++) l.push(a(s));
return l
}
}
function w(t) {
var e = +t,
n = 0;
return 0 !== e && isFinite(e) && (n = e >= 0 ? Math.floor(e) : Math.ceil(e)), n
}
function _(t, e) {
return new Date(Date.UTC(t, e + 1, 0)).getUTCDate()
}
function b(t, e, n) {
return Z(ue([t, 11, 31 + e - n]), e, n).week
}
function x(t) {
return k(t) ? 366 : 365
}
function k(t) {
return t % 4 === 0 && t % 100 !== 0 || t % 400 === 0
}
function T(t) {
var e;
t._a && -2 === t._pf.overflow && (e = t._a[me] < 0 || t._a[me] > 11 ? me : t._a[ge] < 1 || t._a[ge] > _(t._a[fe], t._a[me]) ? ge : t._a[ve] < 0 || t._a[ve] > 23 ? ve : t._a[ye] < 0 || t._a[ye] > 59 ? ye : t._a[we] < 0 || t._a[we] > 59 ? we : t._a[_e] < 0 || t._a[_e] > 999 ? _e : -1, t._pf._overflowDayOfYear && (fe > e || e > ge) && (e = ge), t._pf.overflow = e)
}
function C(t) {
return null == t._isValid && (t._isValid = !isNaN(t._d.getTime()) && t._pf.overflow < 0 && !t._pf.empty && !t._pf.invalidMonth && !t._pf.nullInput && !t._pf.invalidFormat && !t._pf.userInvalidated, t._strict && (t._isValid = t._isValid && 0 === t._pf.charsLeftOver && 0 === t._pf.unusedTokens.length)), t._isValid
}
function E(t) {
return t ? t.toLowerCase().replace("_", "-") : t
}
function P(t, e) {
return e._isUTC ? ue(t).zone(e._offset || 0) : ue(t).local()
}
function S(t, e) {
return e.abbr = t, be[t] || (be[t] = new i), be[t].set(e), be[t]
}
function R(t) {
delete be[t]
}
function M(t) {
var e, n, r, o, i = 0,
s = function (t) {
if (!be[t] && ke) try {
require("./lang/" + t)
} catch (e) {}
return be[t]
};
if (!t) return ue.fn._lang;
if (!h(t)) {
if (n = s(t)) return n;
t = [t]
}
for (; i < t.length;) {
for (o = E(t[i]).split("-"), e = o.length, r = E(t[i + 1]), r = r ? r.split("-") : null; e > 0;) {
if (n = s(o.slice(0, e).join("-"))) return n;
if (r && r.length >= e && m(o, r, !0) >= e - 1) break;
e--
}
i++
}
return ue.fn._lang
}
function N(t) {
return t.match(/\[[\s\S]/) ? t.replace(/^\[|\]$/g, "") : t.replace(/\\/g, "")
}
function O(t) {
var e, n, r = t.match(Pe);
for (e = 0, n = r.length; n > e; e++) r[e] = nn[r[e]] ? nn[r[e]] : N(r[e]);
return function (o) {
var i = "";
for (e = 0; n > e; e++) i += r[e] instanceof Function ? r[e].call(o, t) : r[e];
return i
}
}
function F(t, e) {
return t.isValid() ? (e = A(e, t.lang()), Je[e] || (Je[e] = O(e)), Je[e](t)) : t.lang().invalidDate()
}
function A(t, e) {
function n(t) {
return e.longDateFormat(t) || t
}
var r = 5;
for (Se.lastIndex = 0; r >= 0 && Se.test(t);) t = t.replace(Se, n), Se.lastIndex = 0, r -= 1;
return t
}
function I(t, e) {
var n, r = e._strict;
switch (t) {
case "Q":
return Ue;
case "DDDD":
return Ve;
case "YYYY":
case "GGGG":
case "gggg":
return r ? ze : Ne;
case "Y":
case "G":
case "g":
return Be;
case "YYYYYY":
case "YYYYY":
case "GGGGG":
case "ggggg":
return r ? je : Oe;
case "S":
if (r) return Ue;
case "SS":
if (r) return He;
case "SSS":
if (r) return Ve;
case "DDD":
return Me;
case "MMM":
case "MMMM":
case "dd":
case "ddd":
case "dddd":
return Ae;
case "a":
case "A":
return M(e._l)._meridiemParse;
case "X":
return De;
case "Z":
case "ZZ":
return Ie;
case "T":
return $e;
case "SSSS":
return Fe;
case "MM":
case "DD":
case "YY":
case "GG":
case "gg":
case "HH":
case "hh":
case "mm":
case "ss":
case "ww":
case "WW":
return r ? He : Re;
case "M":
case "D":
case "d":
case "H":
case "h":
case "m":
case "s":
case "w":
case "W":
case "e":
case "E":
return Re;
case "Do":
return Le;
default:
return n = new RegExp(j(z(t.replace("\\", "")), "i"))
}
}
function $(t) {
t = t || "";
var e = t.match(Ie) || [],
n = e[e.length - 1] || [],
r = (n + "").match(Ke) || ["-", 0, 0],
o = +(60 * r[1]) + w(r[2]);
return "+" === r[0] ? -o : o
}
function D(t, e, n) {
var r, o = n._a;
switch (t) {
case "Q":
null != e && (o[me] = 3 * (w(e) - 1));
break;
case "M":
case "MM":
null != e && (o[me] = w(e) - 1);
break;
case "MMM":
case "MMMM":
r = M(n._l).monthsParse(e), null != r ? o[me] = r : n._pf.invalidMonth = e;
break;
case "D":
case "DD":
null != e && (o[ge] = w(e));
break;
case "Do":
null != e && (o[ge] = w(parseInt(e, 10)));
break;
case "DDD":
case "DDDD":
null != e && (n._dayOfYear = w(e));
break;
case "YY":
o[fe] = ue.parseTwoDigitYear(e);
break;
case "YYYY":
case "YYYYY":
case "YYYYYY":
o[fe] = w(e);
break;
case "a":
case "A":
n._isPm = M(n._l).isPM(e);
break;
case "H":
case "HH":
case "h":
case "hh":
o[ve] = w(e);
break;
case "m":
case "mm":
o[ye] = w(e);
break;
case "s":
case "ss":
o[we] = w(e);
break;
case "S":
case "SS":
case "SSS":
case "SSSS":
o[_e] = w(1e3 * ("0." + e));
break;
case "X":
n._d = new Date(1e3 * parseFloat(e));
break;
case "Z":
case "ZZ":
n._useUTC = !0, n._tzm = $(e);
break;
case "w":
case "ww":
case "W":
case "WW":
case "d":
case "dd":
case "ddd":
case "dddd":
case "e":
case "E":
t = t.substr(0, 1);
case "gg":
case "gggg":
case "GG":
case "GGGG":
case "GGGGG":
t = t.substr(0, 2), e && (n._w = n._w || {}, n._w[t] = e)
}
}
function L(t) {
var e, n, r, o, i, s, a, u, l, c, p = [];
if (!t._d) {
for (r = H(t), t._w && null == t._a[ge] && null == t._a[me] && (i = function (e) {
var n = parseInt(e, 10);
return e ? e.length < 3 ? n > 68 ? 1900 + n : 2e3 + n : n : null == t._a[fe] ? ue().weekYear() : t._a[fe]
}, s = t._w, null != s.GG || null != s.W || null != s.E ? a = J(i(s.GG), s.W || 1, s.E, 4, 1) : (u = M(t._l), l = null != s.d ? K(s.d, u) : null != s.e ? parseInt(s.e, 10) + u._week.dow : 0, c = parseInt(s.w, 10) || 1, null != s.d && l < u._week.dow && c++, a = J(i(s.gg), c, l, u._week.doy, u._week.dow)), t._a[fe] = a.year, t._dayOfYear = a.dayOfYear), t._dayOfYear && (o = null == t._a[fe] ? r[fe] : t._a[fe], t._dayOfYear > x(o) && (t._pf._overflowDayOfYear = !0), n = G(o, 0, t._dayOfYear), t._a[me] = n.getUTCMonth(), t._a[ge] = n.getUTCDate()), e = 0; 3 > e && null == t._a[e]; ++e) t._a[e] = p[e] = r[e];
for (; 7 > e; e++) t._a[e] = p[e] = null == t._a[e] ? 2 === e ? 1 : 0 : t._a[e];
p[ve] += w((t._tzm || 0) / 60), p[ye] += w((t._tzm || 0) % 60), t._d = (t._useUTC ? G : Y).apply(null, p)
}
}
function U(t) {
var e;
t._d || (e = v(t._i), t._a = [e.year, e.month, e.day, e.hour, e.minute, e.second, e.millisecond], L(t))
}
function H(t) {
var e = new Date;
return t._useUTC ? [e.getUTCFullYear(), e.getUTCMonth(), e.getUTCDate()] : [e.getFullYear(), e.getMonth(), e.getDate()]
}
function V(t) {
t._a = [], t._pf.empty = !0;
var e, n, r, o, i, s = M(t._l),
a = "" + t._i,
u = a.length,
l = 0;
for (r = A(t._f, s).match(Pe) || [], e = 0; e < r.length; e++) o = r[e], n = (a.match(I(o, t)) || [])[0], n && (i = a.substr(0, a.indexOf(n)), i.length > 0 && t._pf.unusedInput.push(i), a = a.slice(a.indexOf(n) + n.length), l += n.length), nn[o] ? (n ? t._pf.empty = !1 : t._pf.unusedTokens.push(o), D(o, n, t)) : t._strict && !n && t._pf.unusedTokens.push(o);
t._pf.charsLeftOver = u - l, a.length > 0 && t._pf.unusedInput.push(a), t._isPm && t._a[ve] < 12 && (t._a[ve] += 12), t._isPm === !1 && 12 === t._a[ve] && (t._a[ve] = 0), L(t), T(t)
}
function z(t) {
return t.replace(/\\(\[)|\\(\])|\[([^\]\[]*)\]|\\(.)/g, function (t, e, n, r, o) {
return e || n || r || o
})
}
function j(t) {
return t.replace(/[-\/\\^$*+?.()|[\]{}]/g, "\\$&")
}
function B(t) {
var n, r, o, i, s;
if (0 === t._f.length) return t._pf.invalidFormat = !0, void(t._d = new Date(0 / 0));
for (i = 0; i < t._f.length; i++) s = 0, n = u({}, t), n._pf = e(), n._f = t._f[i], V(n), C(n) && (s += n._pf.charsLeftOver, s += 10 * n._pf.unusedTokens.length, n._pf.score = s, (null == o || o > s) && (o = s, r = n));
u(t, r || n)
}
function q(t) {
var e, n, r = t._i,
o = qe.exec(r);
if (o) {
for (t._pf.iso = !0, e = 0, n = Ye.length; n > e; e++)
if (Ye[e][1].exec(r)) {
t._f = Ye[e][0] + (o[6] || " ");
break
}
for (e = 0, n = Ge.length; n > e; e++)
if (Ge[e][1].exec(r)) {
t._f += Ge[e][0];
break
}
r.match(Ie) && (t._f += "Z"), V(t)
} else ue.createFromInputFallback(t)
}
function W(e) {
var n = e._i,
r = Te.exec(n);
n === t ? e._d = new Date : r ? e._d = new Date(+r[1]) : "string" == typeof n ? q(e) : h(n) ? (e._a = n.slice(0), L(e)) : f(n) ? e._d = new Date(+n) : "object" == typeof n ? U(e) : "number" == typeof n ? e._d = new Date(n) : ue.createFromInputFallback(e)
}
function Y(t, e, n, r, o, i, s) {
var a = new Date(t, e, n, r, o, i, s);
return 1970 > t && a.setFullYear(t), a
}
function G(t) {
var e = new Date(Date.UTC.apply(null, arguments));
return 1970 > t && e.setUTCFullYear(t), e
}
function K(t, e) {
if ("string" == typeof t)
if (isNaN(t)) {
if (t = e.weekdaysParse(t), "number" != typeof t) return null
} else t = parseInt(t, 10);
return t
}
function X(t, e, n, r, o) {
return o.relativeTime(e || 1, !!n, t, r)
}
function Q(t, e, n) {
var r = he(Math.abs(t) / 1e3),
o = he(r / 60),
i = he(o / 60),
s = he(i / 24),
a = he(s / 365),
u = 45 > r && ["s", r] || 1 === o && ["m"] || 45 > o && ["mm", o] || 1 === i && ["h"] || 22 > i && ["hh", i] || 1 === s && ["d"] || 25 >= s && ["dd", s] || 45 >= s && ["M"] || 345 > s && ["MM", he(s / 30)] || 1 === a && ["y"] || ["yy", a];
return u[2] = e, u[3] = t > 0, u[4] = n, X.apply({}, u)
}
function Z(t, e, n) {
var r, o = n - e,
i = n - t.day();
return i > o && (i -= 7), o - 7 > i && (i += 7), r = ue(t).add("d", i), {
week: Math.ceil(r.dayOfYear() / 7),
year: r.year()
}
}
function J(t, e, n, r, o) {
var i, s, a = G(t, 0, 1).getUTCDay();
return n = null != n ? n : o, i = o - a + (a > r ? 7 : 0) - (o > a ? 7 : 0), s = 7 * (e - 1) + (n - o) + i + 1, {
year: s > 0 ? t : t - 1,
dayOfYear: s > 0 ? s : x(t - 1) + s
}
}
function te(e) {
var n = e._i,
r = e._f;
return null === n || r === t && "" === n ? ue.invalid({
nullInput: !0
}) : ("string" == typeof n && (e._i = n = M().preparse(n)), ue.isMoment(n) ? (e = l(n), e._d = new Date(+n._d)) : r ? h(r) ? B(e) : V(e) : W(e), new s(e))
}
function ee(t, e) {
var n;
return "string" == typeof e && (e = t.lang().monthsParse(e), "number" != typeof e) ? t : (n = Math.min(t.date(), _(t.year(), e)), t._d["set" + (t._isUTC ? "UTC" : "") + "Month"](e, n), t)
}
function ne(t, e) {
return t._d["get" + (t._isUTC ? "UTC" : "") + e]()
}
function re(t, e, n) {
return "Month" === e ? ee(t, n) : t._d["set" + (t._isUTC ? "UTC" : "") + e](n)
}
function oe(t, e) {
return function (n) {
return null != n ? (re(this, t, n), ue.updateOffset(this, e), this) : ne(this, t)
}
}
function ie(t) {
ue.duration.fn[t] = function () {
return this._data[t]
}
}
function se(t, e) {
ue.duration.fn["as" + t] = function () {
return +this / e
}
}
function ae(t) {
"undefined" == typeof ender && (le = de.moment, de.moment = t ? n("Accessing Moment through the global scope is deprecated, and will be removed in an upcoming release.", ue) : ue)
}
for (var ue, le, ce, pe = "2.6.0", de = "undefined" != typeof global ? global : this, he = Math.round, fe = 0, me = 1, ge = 2, ve = 3, ye = 4, we = 5, _e = 6, be = {}, xe = {
_isAMomentObject: null,
_i: null,
_f: null,
_l: null,
_strict: null,
_isUTC: null,
_offset: null,
_pf: null,
_lang: null
}, ke = "undefined" != typeof module && module.exports, Te = /^\/?Date\((\-?\d+)/i, Ce = /(\-)?(?:(\d*)\.)?(\d+)\:(\d+)(?:\:(\d+)\.?(\d{3})?)?/, Ee = /^(-)?P(?:(?:([0-9,.]*)Y)?(?:([0-9,.]*)M)?(?:([0-9,.]*)D)?(?:T(?:([0-9,.]*)H)?(?:([0-9,.]*)M)?(?:([0-9,.]*)S)?)?|([0-9,.]*)W)$/, Pe = /(\[[^\[]*\])|(\\)?(Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|Q|YYYYYY|YYYYY|YYYY|YY|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|mm?|ss?|S{1,4}|X|zz?|ZZ?|.)/g, Se = /(\[[^\[]*\])|(\\)?(LT|LL?L?L?|l{1,4})/g, Re = /\d\d?/, Me = /\d{1,3}/, Ne = /\d{1,4}/, Oe = /[+\-]?\d{1,6}/, Fe = /\d+/, Ae = /[0-9]*['a-z\u00A0-\u05FF\u0700-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]+|[\u0600-\u06FF\/]+(\s*?[\u0600-\u06FF]+){1,2}/i, Ie = /Z|[\+\-]\d\d:?\d\d/gi, $e = /T/i, De = /[\+\-]?\d+(\.\d{1,3})?/, Le = /\d{1,2}/, Ue = /\d/, He = /\d\d/, Ve = /\d{3}/, ze = /\d{4}/, je = /[+-]?\d{6}/, Be = /[+-]?\d+/, qe = /^\s*(?:[+-]\d{6}|\d{4})-(?:(\d\d-\d\d)|(W\d\d$)|(W\d\d-\d)|(\d\d\d))((T| )(\d\d(:\d\d(:\d\d(\.\d+)?)?)?)?([\+\-]\d\d(?::?\d\d)?|\s*Z)?)?$/, We = "YYYY-MM-DDTHH:mm:ssZ", Ye = [
["YYYYYY-MM-DD", /[+-]\d{6}-\d{2}-\d{2}/],
["YYYY-MM-DD", /\d{4}-\d{2}-\d{2}/],
["GGGG-[W]WW-E", /\d{4}-W\d{2}-\d/],
["GGGG-[W]WW", /\d{4}-W\d{2}/],
["YYYY-DDD", /\d{4}-\d{3}/]
], Ge = [
["HH:mm:ss.SSSS", /(T| )\d\d:\d\d:\d\d\.\d+/],
["HH:mm:ss", /(T| )\d\d:\d\d:\d\d/],
["HH:mm", /(T| )\d\d:\d\d/],
["HH", /(T| )\d\d/]
], Ke = /([\+\-]|\d\d)/gi, Xe = ("Date|Hours|Minutes|Seconds|Milliseconds".split("|"), {
Milliseconds: 1,
Seconds: 1e3,
Minutes: 6e4,
Hours: 36e5,
Days: 864e5,
Months: 2592e6,
Years: 31536e6
}), Qe = {
ms: "millisecond",
s: "second",
m: "minute",
h: "hour",
d: "day",
D: "date",
w: "week",
W: "isoWeek",
M: "month",
Q: "quarter",
y: "year",
DDD: "dayOfYear",
e: "weekday",
E: "isoWeekday",
gg: "weekYear",
GG: "isoWeekYear"
}, Ze = {
dayofyear: "dayOfYear",
isoweekday: "isoWeekday",
isoweek: "isoWeek",
weekyear: "weekYear",
isoweekyear: "isoWeekYear"
}, Je = {}, tn = "DDD w W M D d".split(" "), en = "M D H h m s w W".split(" "), nn = {
M: function () {
return this.month() + 1
},
MMM: function (t) {
return this.lang().monthsShort(this, t)
},
MMMM: function (t) {
return this.lang().months(this, t)
},
D: function () {
return this.date()
},
DDD: function () {
return this.dayOfYear()
},
d: function () {
return this.day()
},
dd: function (t) {
return this.lang().weekdaysMin(this, t)
},
ddd: function (t) {
return this.lang().weekdaysShort(this, t)
},
dddd: function (t) {
return this.lang().weekdays(this, t)
},
w: function () {
return this.week()
},
W: function () {
return this.isoWeek()
},
YY: function () {
return p(this.year() % 100, 2)
},
YYYY: function () {
return p(this.year(), 4)
},
YYYYY: function () {
return p(this.year(), 5)
},
YYYYYY: function () {
var t = this.year(),
e = t >= 0 ? "+" : "-";
return e + p(Math.abs(t), 6)
},
gg: function () {
return p(this.weekYear() % 100, 2)
},
gggg: function () {
return p(this.weekYear(), 4)
},
ggggg: function () {
return p(this.weekYear(), 5)
},
GG: function () {
return p(this.isoWeekYear() % 100, 2)
},
GGGG: function () {
return p(this.isoWeekYear(), 4)
},
GGGGG: function () {
return p(this.isoWeekYear(), 5)
},
e: function () {
return this.weekday()
},
E: function () {
return this.isoWeekday()
},
a: function () {
return this.lang().meridiem(this.hours(), this.minutes(), !0)
},
A: function () {
return this.lang().meridiem(this.hours(), this.minutes(), !1)
},
H: function () {
return this.hours()
},
h: function () {
return this.hours() % 12 || 12
},
m: function () {
return this.minutes()
},
s: function () {
return this.seconds()
},
S: function () {
return w(this.milliseconds() / 100)
},
SS: function () {
return p(w(this.milliseconds() / 10), 2)
},
SSS: function () {
return p(this.milliseconds(), 3)
},
SSSS: function () {
return p(this.milliseconds(), 3)
},
Z: function () {
var t = -this.zone(),
e = "+";
return 0 > t && (t = -t, e = "-"), e + p(w(t / 60), 2) + ":" + p(w(t) % 60, 2)
},
ZZ: function () {
var t = -this.zone(),
e = "+";
return 0 > t && (t = -t, e = "-"), e + p(w(t / 60), 2) + p(w(t) % 60, 2)
},
z: function () {
return this.zoneAbbr()
},
zz: function () {
return this.zoneName()
},
X: function () {
return this.unix()
},
Q: function () {
return this.quarter()
}
}, rn = ["months", "monthsShort", "weekdays", "weekdaysShort", "weekdaysMin"]; tn.length;) ce = tn.pop(), nn[ce + "o"] = o(nn[ce], ce);
for (; en.length;) ce = en.pop(), nn[ce + ce] = r(nn[ce], 2);
for (nn.DDDD = r(nn.DDD, 3), u(i.prototype, {
set: function (t) {
var e, n;
for (n in t) e = t[n], "function" == typeof e ? this[n] = e : this["_" + n] = e
},
_months: "January_February_March_April_May_June_July_August_September_October_November_December".split("_"),
months: function (t) {
return this._months[t.month()]
},
_monthsShort: "Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"),
monthsShort: function (t) {
return this._monthsShort[t.month()]
},
monthsParse: function (t) {
var e, n, r;
for (this._monthsParse || (this._monthsParse = []), e = 0; 12 > e; e++)
if (this._monthsParse[e] || (n = ue.utc([2e3, e]), r = "^" + this.months(n, "") + "|^" + this.monthsShort(n, ""), this._monthsParse[e] = new RegExp(r.replace(".", ""), "i")), this._monthsParse[e].test(t)) return e
},
_weekdays: "Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),
weekdays: function (t) {
return this._weekdays[t.day()]
},
_weekdaysShort: "Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),
weekdaysShort: function (t) {
return this._weekdaysShort[t.day()]
},
_weekdaysMin: "Su_Mo_Tu_We_Th_Fr_Sa".split("_"),
weekdaysMin: function (t) {
return this._weekdaysMin[t.day()]
},
weekdaysParse: function (t) {
var e, n, r;
for (this._weekdaysParse || (this._weekdaysParse = []), e = 0; 7 > e; e++)
if (this._weekdaysParse[e] || (n = ue([2e3, 1]).day(e), r = "^" + this.weekdays(n, "") + "|^" + this.weekdaysShort(n, "") + "|^" + this.weekdaysMin(n, ""), this._weekdaysParse[e] = new RegExp(r.replace(".", ""), "i")), this._weekdaysParse[e].test(t)) return e
},
_longDateFormat: {
LT: "h:mm A",
L: "MM/DD/YYYY",
LL: "MMMM D YYYY",
LLL: "MMMM D YYYY LT",
LLLL: "dddd, MMMM D YYYY LT"
},
longDateFormat: function (t) {
var e = this._longDateFormat[t];
return !e && this._longDateFormat[t.toUpperCase()] && (e = this._longDateFormat[t.toUpperCase()].replace(/MMMM|MM|DD|dddd/g, function (t) {
return t.slice(1)
}), this._longDateFormat[t] = e), e
},
isPM: function (t) {
return "p" === (t + "").toLowerCase().charAt(0)
},
_meridiemParse: /[ap]\.?m?\.?/i,
meridiem: function (t, e, n) {
return t > 11 ? n ? "pm" : "PM" : n ? "am" : "AM"
},
_calendar: {
sameDay: "[Today at] LT",
nextDay: "[Tomorrow at] LT",
nextWeek: "dddd [at] LT",
lastDay: "[Yesterday at] LT",
lastWeek: "[Last] dddd [at] LT",
sameElse: "L"
},
calendar: function (t, e) {
var n = this._calendar[t];
return "function" == typeof n ? n.apply(e) : n
},
_relativeTime: {
future: "in %s",
past: "%s ago",
s: "a few seconds",
m: "a minute",
mm: "%d minutes",
h: "an hour",
hh: "%d hours",
d: "a day",
dd: "%d days",
M: "a month",
MM: "%d months",
y: "a year",
yy: "%d years"
},
relativeTime: function (t, e, n, r) {
var o = this._relativeTime[n];
return "function" == typeof o ? o(t, e, n, r) : o.replace(/%d/i, t)
},
pastFuture: function (t, e) {
var n = this._relativeTime[t > 0 ? "future" : "past"];
return "function" == typeof n ? n(e) : n.replace(/%s/i, e)
},
ordinal: function (t) {
return this._ordinal.replace("%d", t)
},
_ordinal: "%d",
preparse: function (t) {
return t
},
postformat: function (t) {
return t
},
week: function (t) {
return Z(t, this._week.dow, this._week.doy).week
},
_week: {
dow: 0,
doy: 6
},
_invalidDate: "Invalid date",
invalidDate: function () {
return this._invalidDate
}
}), ue = function (n, r, o, i) {
var s;
return "boolean" == typeof o && (i = o, o = t), s = {}, s._isAMomentObject = !0, s._i = n, s._f = r, s._l = o, s._strict = i, s._isUTC = !1, s._pf = e(), te(s)
}, ue.suppressDeprecationWarnings = !1, ue.createFromInputFallback = n("moment construction falls back to js Date. This is discouraged and will be removed in upcoming major release. Please refer to https://github.com/moment/moment/issues/1407 for more info.", function (t) {
t._d = new Date(t._i)
}), ue.utc = function (n, r, o, i) {
var s;
return "boolean" == typeof o && (i = o, o = t), s = {}, s._isAMomentObject = !0, s._useUTC = !0, s._isUTC = !0, s._l = o, s._i = n, s._f = r, s._strict = i, s._pf = e(), te(s).utc()
}, ue.unix = function (t) {
return ue(1e3 * t)
}, ue.duration = function (t, e) {
var n, r, o, i = t,
s = null;
return ue.isDuration(t) ? i = {
ms: t._milliseconds,
d: t._days,
M: t._months
} : "number" == typeof t ? (i = {}, e ? i[e] = t : i.milliseconds = t) : (s = Ce.exec(t)) ? (n = "-" === s[1] ? -1 : 1, i = {
y: 0,
d: w(s[ge]) * n,
h: w(s[ve]) * n,
m: w(s[ye]) * n,
s: w(s[we]) * n,
ms: w(s[_e]) * n
}) : (s = Ee.exec(t)) && (n = "-" === s[1] ? -1 : 1, o = function (t) {
var e = t && parseFloat(t.replace(",", "."));
return (isNaN(e) ? 0 : e) * n
}, i = {
y: o(s[2]),
M: o(s[3]),
d: o(s[4]),
h: o(s[5]),
m: o(s[6]),
s: o(s[7]),
w: o(s[8])
}), r = new a(i), ue.isDuration(t) && t.hasOwnProperty("_lang") && (r._lang = t._lang), r
}, ue.version = pe, ue.defaultFormat = We, ue.momentProperties = xe, ue.updateOffset = function () {}, ue.lang = function (t, e) {
var n;
return t ? (e ? S(E(t), e) : null === e ? (R(t), t = "en") : be[t] || M(t), n = ue.duration.fn._lang = ue.fn._lang = M(t), n._abbr) : ue.fn._lang._abbr
}, ue.langData = function (t) {
return t && t._lang && t._lang._abbr && (t = t._lang._abbr), M(t)
}, ue.isMoment = function (t) {
return t instanceof s || null != t && t.hasOwnProperty("_isAMomentObject")
}, ue.isDuration = function (t) {
return t instanceof a
}, ce = rn.length - 1; ce >= 0; --ce) y(rn[ce]);
ue.normalizeUnits = function (t) {
return g(t)
}, ue.invalid = function (t) {
var e = ue.utc(0 / 0);
return null != t ? u(e._pf, t) : e._pf.userInvalidated = !0, e
}, ue.parseZone = function () {
return ue.apply(null, arguments).parseZone()
}, ue.parseTwoDigitYear = function (t) {
return w(t) + (w(t) > 68 ? 1900 : 2e3)
}, u(ue.fn = s.prototype, {
clone: function () {
return ue(this)
},
valueOf: function () {
return +this._d + 6e4 * (this._offset || 0)
},
unix: function () {
return Math.floor(+this / 1e3)
},
toString: function () {
return this.clone().lang("en").format("ddd MMM DD YYYY HH:mm:ss [GMT]ZZ")
},
toDate: function () {
return this._offset ? new Date(+this) : this._d
},
toISOString: function () {
var t = ue(this).utc();
return 0 < t.year() && t.year() <= 9999 ? F(t, "YYYY-MM-DD[T]HH:mm:ss.SSS[Z]") : F(t, "YYYYYY-MM-DD[T]HH:mm:ss.SSS[Z]")
},
toArray: function () {
var t = this;
return [t.year(), t.month(), t.date(), t.hours(), t.minutes(), t.seconds(), t.milliseconds()]
},
isValid: function () {
return C(this)
},
isDSTShifted: function () {
return this._a ? this.isValid() && m(this._a, (this._isUTC ? ue.utc(this._a) : ue(this._a)).toArray()) > 0 : !1
},
parsingFlags: function () {
return u({}, this._pf)
},
invalidAt: function () {
return this._pf.overflow
},
utc: function () {
return this.zone(0)
},
local: function () {
return this.zone(0), this._isUTC = !1, this
},
format: function (t) {
var e = F(this, t || ue.defaultFormat);
return this.lang().postformat(e)
},
add: function (t, e) {
var n;
return n = "string" == typeof t ? ue.duration(+e, t) : ue.duration(t, e), d(this, n, 1), this
},
subtract: function (t, e) {
var n;
return n = "string" == typeof t ? ue.duration(+e, t) : ue.duration(t, e), d(this, n, -1), this
},
diff: function (t, e, n) {
var r, o, i = P(t, this),
s = 6e4 * (this.zone() - i.zone());
return e = g(e), "year" === e || "month" === e ? (r = 432e5 * (this.daysInMonth() + i.daysInMonth()), o = 12 * (this.year() - i.year()) + (this.month() - i.month()), o += (this - ue(this).startOf("month") - (i - ue(i).startOf("month"))) / r, o -= 6e4 * (this.zone() - ue(this).startOf("month").zone() - (i.zone() - ue(i).startOf("month").zone())) / r, "year" === e && (o /= 12)) : (r = this - i, o = "second" === e ? r / 1e3 : "minute" === e ? r / 6e4 : "hour" === e ? r / 36e5 : "day" === e ? (r - s) / 864e5 : "week" === e ? (r - s) / 6048e5 : r), n ? o : c(o)
},
from: function (t, e) {
return ue.duration(this.diff(t)).lang(this.lang()._abbr).humanize(!e)
},
fromNow: function (t) {
return this.from(ue(), t)
},
calendar: function () {
var t = P(ue(), this).startOf("day"),
e = this.diff(t, "days", !0),
n = -6 > e ? "sameElse" : -1 > e ? "lastWeek" : 0 > e ? "lastDay" : 1 > e ? "sameDay" : 2 > e ? "nextDay" : 7 > e ? "nextWeek" : "sameElse";
return this.format(this.lang().calendar(n, this))
},
isLeapYear: function () {
return k(this.year())
},
isDST: function () {
return this.zone() < this.clone().month(0).zone() || this.zone() < this.clone().month(5).zone()
},
day: function (t) {
var e = this._isUTC ? this._d.getUTCDay() : this._d.getDay();
return null != t ? (t = K(t, this.lang()), this.add({
d: t - e
})) : e
},
month: oe("Month", !0),
startOf: function (t) {
switch (t = g(t)) {
case "year":
this.month(0);
case "quarter":
case "month":
this.date(1);
case "week":
case "isoWeek":
case "day":
this.hours(0);
case "hour":
this.minutes(0);
case "minute":
this.seconds(0);
case "second":
this.milliseconds(0)
}
return "week" === t ? this.weekday(0) : "isoWeek" === t && this.isoWeekday(1), "quarter" === t && this.month(3 * Math.floor(this.month() / 3)), this
},
endOf: function (t) {
return t = g(t), this.startOf(t).add("isoWeek" === t ? "week" : t, 1).subtract("ms", 1)
},
isAfter: function (t, e) {
return e = "undefined" != typeof e ? e : "millisecond", +this.clone().startOf(e) > +ue(t).startOf(e)
},
isBefore: function (t, e) {
return e = "undefined" != typeof e ? e : "millisecond", +this.clone().startOf(e) < +ue(t).startOf(e)
},
isSame: function (t, e) {
return e = e || "ms", +this.clone().startOf(e) === +P(t, this).startOf(e)
},
min: function (t) {
return t = ue.apply(null, arguments), this > t ? this : t
},
max: function (t) {
return t = ue.apply(null, arguments), t > this ? this : t
},
zone: function (t, e) {
var n = this._offset || 0;
return null == t ? this._isUTC ? n : this._d.getTimezoneOffset() : ("string" == typeof t && (t = $(t)), Math.abs(t) < 16 && (t = 60 * t), this._offset = t, this._isUTC = !0, n !== t && (!e || this._changeInProgress ? d(this, ue.duration(n - t, "m"), 1, !1) : this._changeInProgress || (this._changeInProgress = !0, ue.updateOffset(this, !0), this._changeInProgress = null)), this)
},
zoneAbbr: function () {
return this._isUTC ? "UTC" : ""
},
zoneName: function () {
return this._isUTC ? "Coordinated Universal Time" : ""
},
parseZone: function () {
return this._tzm ? this.zone(this._tzm) : "string" == typeof this._i && this.zone(this._i), this
},
hasAlignedHourOffset: function (t) {
return t = t ? ue(t).zone() : 0, (this.zone() - t) % 60 === 0
},
daysInMonth: function () {
return _(this.year(), this.month())
},
dayOfYear: function (t) {
var e = he((ue(this).startOf("day") - ue(this).startOf("year")) / 864e5) + 1;
return null == t ? e : this.add("d", t - e)
},
quarter: function (t) {
return null == t ? Math.ceil((this.month() + 1) / 3) : this.month(3 * (t - 1) + this.month() % 3)
},
weekYear: function (t) {
var e = Z(this, this.lang()._week.dow, this.lang()._week.doy).year;
return null == t ? e : this.add("y", t - e)
},
isoWeekYear: function (t) {
var e = Z(this, 1, 4).year;
return null == t ? e : this.add("y", t - e)
},
week: function (t) {
var e = this.lang().week(this);
return null == t ? e : this.add("d", 7 * (t - e))
},
isoWeek: function (t) {
var e = Z(this, 1, 4).week;
return null == t ? e : this.add("d", 7 * (t - e))
},
weekday: function (t) {
var e = (this.day() + 7 - this.lang()._week.dow) % 7;
return null == t ? e : this.add("d", t - e)
},
isoWeekday: function (t) {
return null == t ? this.day() || 7 : this.day(this.day() % 7 ? t : t - 7)
},
isoWeeksInYear: function () {
return b(this.year(), 1, 4)
},
weeksInYear: function () {
var t = this._lang._week;
return b(this.year(), t.dow, t.doy)
},
get: function (t) {
return t = g(t), this[t]()
},
set: function (t, e) {
return t = g(t), "function" == typeof this[t] && this[t](e), this
},
lang: function (e) {
return e === t ? this._lang : (this._lang = M(e), this)
}
}), ue.fn.millisecond = ue.fn.milliseconds = oe("Milliseconds", !1), ue.fn.second = ue.fn.seconds = oe("Seconds", !1), ue.fn.minute = ue.fn.minutes = oe("Minutes", !1), ue.fn.hour = ue.fn.hours = oe("Hours", !0), ue.fn.date = oe("Date", !0), ue.fn.dates = n("dates accessor is deprecated. Use date instead.", oe("Date", !0)), ue.fn.year = oe("FullYear", !0), ue.fn.years = n("years accessor is deprecated. Use year instead.", oe("FullYear", !0)), ue.fn.days = ue.fn.day, ue.fn.months = ue.fn.month, ue.fn.weeks = ue.fn.week, ue.fn.isoWeeks = ue.fn.isoWeek, ue.fn.quarters = ue.fn.quarter, ue.fn.toJSON = ue.fn.toISOString, u(ue.duration.fn = a.prototype, {
_bubble: function () {
var t, e, n, r, o = this._milliseconds,
i = this._days,
s = this._months,
a = this._data;
a.milliseconds = o % 1e3, t = c(o / 1e3), a.seconds = t % 60, e = c(t / 60), a.minutes = e % 60, n = c(e / 60), a.hours = n % 24, i += c(n / 24), a.days = i % 30, s += c(i / 30), a.months = s % 12, r = c(s / 12), a.years = r
},
weeks: function () {
return c(this.days() / 7)
},
valueOf: function () {
return this._milliseconds + 864e5 * this._days + this._months % 12 * 2592e6 + 31536e6 * w(this._months / 12)
},
humanize: function (t) {
var e = +this,
n = Q(e, !t, this.lang());
return t && (n = this.lang().pastFuture(e, n)), this.lang().postformat(n)
},
add: function (t, e) {
var n = ue.duration(t, e);
return this._milliseconds += n._milliseconds, this._days += n._days, this._months += n._months, this._bubble(), this
},
subtract: function (t, e) {
var n = ue.duration(t, e);
return this._milliseconds -= n._milliseconds, this._days -= n._days, this._months -= n._months, this._bubble(), this
},
get: function (t) {
return t = g(t), this[t.toLowerCase() + "s"]()
},
as: function (t) {
return t = g(t), this["as" + t.charAt(0).toUpperCase() + t.slice(1) + "s"]()
},
lang: ue.fn.lang,
toIsoString: function () {
var t = Math.abs(this.years()),
e = Math.abs(this.months()),
n = Math.abs(this.days()),
r = Math.abs(this.hours()),
o = Math.abs(this.minutes()),
i = Math.abs(this.seconds() + this.milliseconds() / 1e3);
return this.asSeconds() ? (this.asSeconds() < 0 ? "-" : "") + "P" + (t ? t + "Y" : "") + (e ? e + "M" : "") + (n ? n + "D" : "") + (r || o || i ? "T" : "") + (r ? r + "H" : "") + (o ? o + "M" : "") + (i ? i + "S" : "") : "P0D"
}
});
for (ce in Xe) Xe.hasOwnProperty(ce) && (se(ce, Xe[ce]), ie(ce.toLowerCase()));
se("Weeks", 6048e5), ue.duration.fn.asMonths = function () {
return (+this - 31536e6 * this.years()) / 2592e6 + 12 * this.years()
}, ue.lang("en", {
ordinal: function (t) {
var e = t % 10,
n = 1 === w(t % 100 / 10) ? "th" : 1 === e ? "st" : 2 === e ? "nd" : 3 === e ? "rd" : "th";
return t + n
}
}), ke ? module.exports = ue : "function" == typeof define && define.amd ? (define("moment", function (t, e, n) {
return n.config && n.config() && n.config().noGlobal === !0 && (de.moment = le), ue
}), ae(!0)) : ae()
}.call(this),
/*!
* Joseph Myer's md5() algorithm wrapped in a self-invoked function to prevent
* global namespace polution, modified to hash unicode characters as UTF-8.
*
* Copyright 1999-2010, Joseph Myers, Paul Johnston, Greg Holt, Will Bond <will@wbond.net>
* http://www.myersdaily.org/joseph/javascript/md5-text.html
* http://pajhome.org.uk/crypt/md5
*
* Released under the BSD license
* http://www.opensource.org/licenses/bsd-license
*/
function () {
function t(t, e) {
var s = t[0],
a = t[1],
u = t[2],
l = t[3];
s = n(s, a, u, l, e[0], 7, -680876936), l = n(l, s, a, u, e[1], 12, -389564586), u = n(u, l, s, a, e[2], 17, 606105819), a = n(a, u, l, s, e[3], 22, -1044525330), s = n(s, a, u, l, e[4], 7, -176418897), l = n(l, s, a, u, e[5], 12, 1200080426), u = n(u, l, s, a, e[6], 17, -1473231341), a = n(a, u, l, s, e[7], 22, -45705983), s = n(s, a, u, l, e[8], 7, 1770035416), l = n(l, s, a, u, e[9], 12, -1958414417), u = n(u, l, s, a, e[10], 17, -42063), a = n(a, u, l, s, e[11], 22, -1990404162), s = n(s, a, u, l, e[12], 7, 1804603682), l = n(l, s, a, u, e[13], 12, -40341101), u = n(u, l, s, a, e[14], 17, -1502002290), a = n(a, u, l, s, e[15], 22, 1236535329), s = r(s, a, u, l, e[1], 5, -165796510), l = r(l, s, a, u, e[6], 9, -1069501632), u = r(u, l, s, a, e[11], 14, 643717713), a = r(a, u, l, s, e[0], 20, -373897302), s = r(s, a, u, l, e[5], 5, -701558691), l = r(l, s, a, u, e[10], 9, 38016083), u = r(u, l, s, a, e[15], 14, -660478335), a = r(a, u, l, s, e[4], 20, -405537848), s = r(s, a, u, l, e[9], 5, 568446438), l = r(l, s, a, u, e[14], 9, -1019803690), u = r(u, l, s, a, e[3], 14, -187363961), a = r(a, u, l, s, e[8], 20, 1163531501), s = r(s, a, u, l, e[13], 5, -1444681467), l = r(l, s, a, u, e[2], 9, -51403784), u = r(u, l, s, a, e[7], 14, 1735328473), a = r(a, u, l, s, e[12], 20, -1926607734), s = o(s, a, u, l, e[5], 4, -378558), l = o(l, s, a, u, e[8], 11, -2022574463), u = o(u, l, s, a, e[11], 16, 1839030562), a = o(a, u, l, s, e[14], 23, -35309556), s = o(s, a, u, l, e[1], 4, -1530992060), l = o(l, s, a, u, e[4], 11, 1272893353), u = o(u, l, s, a, e[7], 16, -155497632), a = o(a, u, l, s, e[10], 23, -1094730640), s = o(s, a, u, l, e[13], 4, 681279174), l = o(l, s, a, u, e[0], 11, -358537222), u = o(u, l, s, a, e[3], 16, -722521979), a = o(a, u, l, s, e[6], 23, 76029189), s = o(s, a, u, l, e[9], 4, -640364487), l = o(l, s, a, u, e[12], 11, -421815835), u = o(u, l, s, a, e[15], 16, 530742520), a = o(a, u, l, s, e[2], 23, -995338651), s = i(s, a, u, l, e[0], 6, -198630844), l = i(l, s, a, u, e[7], 10, 1126891415), u = i(u, l, s, a, e[14], 15, -1416354905), a = i(a, u, l, s, e[5], 21, -57434055), s = i(s, a, u, l, e[12], 6, 1700485571), l = i(l, s, a, u, e[3], 10, -1894986606), u = i(u, l, s, a, e[10], 15, -1051523), a = i(a, u, l, s, e[1], 21, -2054922799), s = i(s, a, u, l, e[8], 6, 1873313359), l = i(l, s, a, u, e[15], 10, -30611744), u = i(u, l, s, a, e[6], 15, -1560198380), a = i(a, u, l, s, e[13], 21, 1309151649), s = i(s, a, u, l, e[4], 6, -145523070), l = i(l, s, a, u, e[11], 10, -1120210379), u = i(u, l, s, a, e[2], 15, 718787259), a = i(a, u, l, s, e[9], 21, -343485551), t[0] = c(s, t[0]), t[1] = c(a, t[1]), t[2] = c(u, t[2]), t[3] = c(l, t[3])
}
function e(t, e, n, r, o, i) {
return e = c(c(e, t), c(r, i)), c(e << o | e >>> 32 - o, n)
}
function n(t, n, r, o, i, s, a) {
return e(n & r | ~n & o, t, n, i, s, a)
}
function r(t, n, r, o, i, s, a) {
return e(n & o | r & ~o, t, n, i, s, a)
}
function o(t, n, r, o, i, s, a) {
return e(n ^ r ^ o, t, n, i, s, a)
}
function i(t, n, r, o, i, s, a) {
return e(r ^ (n | ~o), t, n, i, s, a)
}
function s(e) {
/[\x80-\xFF]/.test(e) && (e = unescape(encodeURI(e))), txt = "";
var n, r = e.length,
o = [1732584193, -271733879, -1732584194, 271733878];
for (n = 64; n <= e.length; n += 64) t(o, a(e.substring(n - 64, n)));
e = e.substring(n - 64);
var i = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0];
for (n = 0; n < e.length; n++) i[n >> 2] |= e.charCodeAt(n) << (n % 4 << 3);
if (i[n >> 2] |= 128 << (n % 4 << 3), n > 55)
for (t(o, i), n = 0; 16 > n; n++) i[n] = 0;
return i[14] = 8 * r, t(o, i), o
}
function a(t) {
var e, n = [];
for (e = 0; 64 > e; e += 4) n[e >> 2] = t.charCodeAt(e) + (t.charCodeAt(e + 1) << 8) + (t.charCodeAt(e + 2) << 16) + (t.charCodeAt(e + 3) << 24);
return n
}
function u(t) {
for (var e = "", n = 0; 4 > n; n++) e += p[t >> 8 * n + 4 & 15] + p[t >> 8 * n & 15];
return e
}
function l(t) {
for (var e = 0; e < t.length; e++) t[e] = u(t[e]);
return t.join("")
}
function c(t, e) {
return t + e & 4294967295
}
function c(t, e) {
var n = (65535 & t) + (65535 & e),
r = (t >> 16) + (e >> 16) + (n >> 16);
return r << 16 | 65535 & n
}
var p = "0123456789abcdef".split("");
md5 = function (t) {
return l(s(t))
}, "5d41402abc4b2a76b9719d911017c592" != md5("hello")
}(),
/*!
* flowdock-text 0.1.7
*
* Copyright 2011 Twitter, Inc.
* Copyright 2011 Flowdock Ltd
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this work except in compliance with the License.
* You may obtain a copy of the License at:
*
* http://www.apache.org/licenses/LICENSE-2.0
*/
("undefined" == typeof window || null === window) && (window = {
FlowdockText: {}
}), null == window.FlowdockText && (window.FlowdockText = {}), ("undefined" == typeof FlowdockText || null === FlowdockText) && (FlowdockText = {}),
function () {
function t(t, e) {
return e = e || "", "string" != typeof t && (t.global && e.indexOf("g") < 0 && (e += "g"), t.ignoreCase && e.indexOf("i") < 0 && (e += "i"), t.multiline && e.indexOf("m") < 0 && (e += "m"), t = t.source), new RegExp(t.replace(/#\{(\w+)\}/g, function (t, e) {
var n = FlowdockText.regexen[e] || "";
return "string" != typeof n && (n = n.source), n
}), e)
}
function e(t, e) {
return t.replace(/#\{(\w+)\}/g, function (t, n) {
return e[n] || ""
})
}
function n(t, e, n) {
var r = String.fromCharCode(e);
return n !== e && (r += "-" + String.fromCharCode(n)), t.push(r), t
}
function r(t) {
var e = {};
for (var n in t) t.hasOwnProperty(n) && (e[n] = t[n]);
return e
}
function o(t, e, n) {
var r = n + t.index,
o = e.slice(0, r),
i = e.slice(r + t[0].length);
return FlowdockText.regexen.startHashTagMatch.test(o) && !FlowdockText.regexen.endHashtagMatch.test(i)
}
function i(t, e, n, r, o) {
if (void 0 !== t && (null === t || t.start >= r)) return t;
var s = e.match(o.regex);
if (s) {
if (!o.check(s, n, r)) {
var a = r + s.index + 1;
return i(t, n.slice(a), n, a, o)
}
return {
type: o.type,
match: s,
start: r + s.index,
end: r + s.index + s[0].length
}
}
return s
}
function s(t) {
for (var e = [], n = 0, r = [void 0, void 0, void 0, void 0];;) {
for (var o = t.substr(n), s = 0; 4 > s; s++) r[s] = i(r[s], o, t, n, L[s]);
for (var a = void 0, u = 0; u < r.length; u++) {
var l = r[u];
(!a || l && l.start < a.start) && (a = l)
}
if (!a) return e.push({
type: "text",
value: o
}), e;
a.start > n && e.push({
type: "text",
value: o.substr(0, a.start - n)
}), e.push(a), n = a.end
}
}
function a(t, n) {
var r, o, i;
if (t.urlEntities)
for (r = {}, o = 0, i = t.urlEntities.length; i > o; o++) r[t.urlEntities[o].url] = t.urlEntities[o];
var s = n.match[2],
a = n.match[3] || n.match[5],
u = "",
l = n.match[1],
c = "";
for (var p in t) u += e(' #{k}="#{v}" ', {
k: p,
v: t[p].toString().replace(/"/, "&quot;").replace(/</, "&lt;").replace(/>/, "&gt;")
});
s.match(FlowdockText.regexen.validTcoUrl) && (s = RegExp.lastMatch, c = RegExp.rightContext);
var d = {
htmlAttrs: u,
url: FlowdockText.htmlEscape(s),
after: c,
before: l
};
return d.displayUrl = r && r[s] && r[s].display_url ? FlowdockText.htmlEscape(r[s].display_url) : d.url, a || (d.url = "http://" + d.url), e('#{before}<a href="#{url}"#{htmlAttrs}>#{displayUrl}</a>#{after}', d)
}
function u(t, n) {
return n.match[0].replace(FlowdockText.regexen.email, function (n) {
d = {
subMatch: FlowdockText.htmlEscape(n)
};
for (var r in t) t.hasOwnProperty(r) && (d[r] = t[r]);
return e("<a href='mailto:#{subMatch}' class='#{emailClass}'>#{subMatch}</a>", d)
})
}
function l(t, n) {
var r = n.match,
o = r[1],
i = r[2],
s = {
hash: FlowdockText.htmlEscape(o),
preText: "",
text: FlowdockText.htmlEscape(i),
postText: ""
};
for (var a in t) t.hasOwnProperty(a) && (s[a] = t[a]);
return e('<a href="#{hashtagUrlBase}#{text}" title="##{text}" class="#{hashtagClass}">#{hash}#{preText}#{text}#{postText}</a>', s)
}
function c(t, n) {
var r = [];
t && t.userTags && (r = t.userTags.map(function (t) {
return t.toLowerCase()
}));
var o = n.match,
i = o[1],
s = o[2],
a = {
hash: FlowdockText.htmlEscape(i),
preText: "",
text: FlowdockText.htmlEscape(s),
postText: ""
};
for (var u in t) t.hasOwnProperty(u) && (a[u] = t[u]);
return 0 === r.length || S(a.hash + a.text.toLowerCase(), r) ? e('<a title="Search #{hash}#{text}" class="#{hashtagClass}" href="#{hashtagUrlBase}#{hash}#{text}">#{hash}#{preText}#{text}#{postText}</a>', a) : e("#{hash}#{preText}#{text}#{postText}", a)
}
function p(t, e, n) {
switch (n.type) {
case "text":
return n.value;
case "url":
return a(e, n);
case "hash":
return l(t, n);
case "mention":
return c(t, n);
case "email":
return u(t, n)
}
}
function h(t) {
return t = r(t || {}), t.hashtagClass = t.hashtagClass || D, t.hashtagUrlBase = t.hashtagUrlBase || "#flowser/all/", t.emailClass = t.emailClass || "email-link", t
}
function f(t) {
return r(t || {})
}
function m(t, e) {
return e.type === t || "text" === e.type ? e : {
type: "text",
value: e.match[0]
}
}
function g(t, e, n, r) {
e = h(e), n = f(n);
var o = s(t);
r && (o = o.map(m.bind(null, r)));
var i = o.map(p.bind(null, e, n));
return i.join("")
}
function v(t) {
return t.email
}
function y(t) {
t = t.filter(function (t) {
return "email" == t.type
});
var e = [];
return t.forEach(function (t) {
return t.match[0].replace(FlowdockText.regexen.email, function (n) {
n = FlowdockText.htmlEscape(n);
var r = t.end + FlowdockText.regexen.extractEmails.lastIndex,
o = r - n.length;
e.push({
email: n,
indices: [o, r]
})
})
}), e
}
function w(t) {
return t.url
}
function _(t) {
t = t.filter(function (t) {
return "url" == t.type
});
var e = [];
return t.forEach(function (t) {
var n = t.match,
r = n[1],
o = n[2],
i = n[3] || n[5],
s = n[4] || n[6],
a = n[8],
u = t.start + r.length,
l = t.end;
if (i) o.match(FlowdockText.regexen.validTcoUrl) && (o = RegExp.lastMatch, l = u + o.length), e.push({
url: o,
indices: [u, l]
});
else {
var c = null,
p = !1,
d = 0;
if (s.replace(FlowdockText.regexen.validAsciiDomain, function (t) {
var n = s.indexOf(t, d);
d = n + t.length, c = {
url: t,
indices: [u + n, u + d]
}, e.push(c)
}), null == c) return;
a && (p && e.push(c), c.url = o.replace(s, c.url), c.indices[1] = l)
}
}), e
}
function b(t) {
return t.tag
}
function x(t) {
t = t.filter(function (t) {
return "hash" == t.type
});
var e = [];
return t.forEach(function (t) {
var n = t.match,
r = (n[1], n[2]),
o = t.start,
i = t.end;
e.push({
tag: r,
indices: [o, i]
})
}), e
}
function k(t) {
return t.tag
}
function T(t, e) {
t = t.filter(function (t) {
return "mention" == t.type
});
var n = [];
return t.forEach(function (t) {
var e = t.match,
r = e[1],
o = e[2],
i = t.start,
s = t.end;
n.push({
tag: r + o,
indices: [i, s]
})
}), e ? (e = P(e.map(E)), n.filter(function (t) {
return S(t.tag.toLowerCase(), e)
})) : n
}
function C(t, e, n) {
return n ? !t || t.match(e) && RegExp["$&"] === t : "string" == typeof t && t.match(e) && RegExp["$&"] === t
}
function E(t) {
return "string" == typeof t ? "@" === t[0] ? t : "@" + t : "@" + t.nick
}
function P(t) {
return t.map(function (t) {
return t.toLowerCase()
})
}
function S(t, e) {
return -1 !== e.indexOf(t)
}
function R(t) {
return "[object Array]" === Object.prototype.toString.call(t)
}
function M(t) {
return t.replace(/[-[\]{}()*+?.,\\^$|#\s]/g, "\\$&")
}
FlowdockText = {}, FlowdockText.regexen = {};
var N = {
"&": "&amp;",
">": "&gt;",
"<": "&lt;",
'"': "&quot;",
"'": "&#39;"
};
FlowdockText.htmlEscape = function (t) {
return t && t.replace(/[&"'><]/g, function (t) {
return N[t]
})
};
var O = String.fromCharCode,
F = [O(32), O(133), O(160), O(5760), O(6158), O(8232), O(8233), O(8239), O(8287), O(12288)];
n(F, 9, 13), n(F, 8192, 8202);
var A = [O(65534), O(65279), O(65535)];
n(A, 8234, 8238), FlowdockText.regexen.spaces_group = t(F.join("")), FlowdockText.regexen.spaces = t("[" + F.join("") + "]"), FlowdockText.regexen.invalid_chars_group = t(A.join("")), FlowdockText.regexen.punct = /\!'#%&'\(\)*\+,\\\-\.\/:;<=>\?@\[\]\^_{|}~\$/, FlowdockText.regexen.atSigns = /[@\uff20]/, FlowdockText.regexen.extractMentions = t(/(^|[^a-zA-Z0-9_!#$%&*@\uff20])(#{atSigns})([a-zA-Z0-9_]{1,20})/g);
var I = [];
n(I, 1024, 1279), n(I, 1280, 1319), n(I, 11744, 11775), n(I, 42560, 42655), n(I, 880, 1023), n(I, 4352, 4607), n(I, 12592, 12677), n(I, 43360, 43391), n(I, 44032, 55215), n(I, 55216, 55295), n(I, 65441, 65500), n(I, 12449, 12538), n(I, 12540, 12542), n(I, 65382, 65439), n(I, 65392, 65392), n(I, 65296, 65305), n(I, 65313, 65338), n(I, 65345, 65370), n(I, 12353, 12438), n(I, 12441, 12446), n(I, 13312, 19903), n(I, 19968, 40959), n(I, 12291, 12291), n(I, 12293, 12293), n(I, 12347, 12347), FlowdockText.regexen.nonLatinHashtagChars = t(I.join(""));
var $ = [];
n($, 192, 255), n($, 256, 383), n($, 7680, 7935), FlowdockText.regexen.latinAccentChars = t($.join("")), FlowdockText.regexen.endScreenNameMatch = t(/^(?:#{atSigns}|[#{latinAccentChars}]|:\/\/)/), FlowdockText.regexen.hashtagAlpha = t(/[a-z_#{latinAccentChars}#{nonLatinHashtagChars}]/i), FlowdockText.regexen.usernameAlphaNumeric = t(/[a-z0-9_\-\.#{latinAccentChars}#{nonLatinHashtagChars}]/i), FlowdockText.regexen.usernameAlphaNumericEnd = t(/[a-z0-9_\-#{latinAccentChars}#{nonLatinHashtagChars}]/i), FlowdockText.regexen.hashtagAlphaNumeric = t(/[a-z0-9_\-#{latinAccentChars}#{nonLatinHashtagChars}]/i), FlowdockText.regexen.endHashtagMatch = /^(?:[#\uff03]|:\/\/)/, FlowdockText.regexen.hashtagBoundary = t(/(?:^|$|[^&\/a-z0-9_#{latinAccentChars}#{nonLatinHashtagChars}])/), FlowdockText.regexen.singleValidHashTag = t(/^#{hashtagAlphaNumeric}+$/i), FlowdockText.regexen.autoLinkHashtags = t(/(#{hashtagBoundary})(#|\uff03)(#{hashtagAlphaNumeric}+)/gi), FlowdockText.regexen.startHashTagMatch = t(/(?:^|[^&\/a-z0-9_#{latinAccentChars}#{nonLatinHashtagChars}])$/), FlowdockText.regexen.singleHashTag = t(/(#|\uff03)(#{hashtagAlphaNumeric}+)/i), FlowdockText.regexen.singleMention = t(/(@)(#{usernameAlphaNumeric}*#{usernameAlphaNumericEnd}+)/i), FlowdockText.regexen.autoLinkMentions = t(/(#{hashtagBoundary})(@)(#{usernameAlphaNumeric}*#{usernameAlphaNumericEnd}+)/gi), FlowdockText.regexen.highlightRegex = function (t) {
return t && t.length > 0 ? new RegExp("(\\b)" + M(t) + "(\\b)", "i") : void 0
}, FlowdockText.regexen.validPrecedingChars = t(/(?:[^-\/"'!=A-Za-z0-9_@\uff20$#\uff03\.#{invalid_chars_group}]|^)/), FlowdockText.regexen.invalidDomainChars = e("#{punct}#{spaces_group}#{invalid_chars_group}", FlowdockText.regexen), FlowdockText.regexen.validDomainChars = t(/[^#{invalidDomainChars}]/), FlowdockText.regexen.validSubdomain = t(/(?:(?:#{validDomainChars}(?:[_-]|#{validDomainChars})*)?#{validDomainChars}\.)/), FlowdockText.regexen.validDomainName = t(/(?:(?:#{validDomainChars}(?:-|#{validDomainChars})*)?#{validDomainChars}\.)/), FlowdockText.regexen.validGTLD = t(RegExp("(?:(?:academy|actor|aero|agency|arpa|asia|bar|bargains|berlin|best|bid|bike|biz|blue|boutique|build|builders|buzz|cab|camera|camp|cards|careers|cat|catering|center|ceo|cheap|christmas|cleaning|clothing|club|codes|coffee|com|community|company|computer|construction|contractors|cool|coop|cruises|dance|dating|democrat|diamonds|directory|domains|edu|education|email|enterprises|equipment|estate|events|expert|exposed|farm|fish|flights|florist|foundation|futbol|gallery|gift|glass|gov|graphics|guitars|guru|holdings|holiday|house|immobilien|industries|info|institute|int|international|jobs|kaufen|kim|kitchen|kiwi|koeln|kred|land|lighting|limo|link|luxury|management|mango|marketing|menu|mil|mobi|moda|monash|museum|nagoya|name|net|neustar|ninja|okinawa|onl|org|partners|parts|photo|photography|photos|pics|pink|plumbing|post|pro|productions|properties|pub|qpon|recipes|red|rentals|repair|report|reviews|rich|ruhr|sexy|shiksha|shoes|singles|social|solar|solutions|supplies|supply|support|systems|tattoo|technology|tel|tienda|tips|today|tokyo|tools|training|travel|uno|vacations|ventures|viajes|villas|vision|vote|voting|voto|voyage|wang|watch|wed|wien|wiki|works|local|dmz|lan|corp|xxx|xyz|zone|\u0434\u0435\u0442\u0438|\u043e\u043d\u043b\u0430\u0439\u043d|\u043e\u0440\u0433|\u0441\u0430\u0439\u0442|\u0628\u0627\u0632\u0627\u0631|\u0634\u0628\u0643\u0629|\u307f\u3093\u306a|\u4e2d\u4fe1|\u4e2d\u6587\u7f51|\u516c\u53f8|\u516c\u76ca|\u5728\u7ebf|\u6211\u7231\u4f60|\u653f\u52a1|\u6e38\u620f|\u79fb\u52a8|\u7f51\u7edc|\u96c6\u56e2|\uc0bc\uc131)(?=[^0-9a-zA-Z@]|$))")), FlowdockText.regexen.validCCTLD = t(RegExp("(?:(?:ac|ad|ae|af|ag|ai|al|am|an|ao|aq|ar|as|at|au|aw|ax|az|ba|bb|bd|be|bf|bg|bh|bi|bj|bl|bm|bn|bo|bq|br|bs|bt|bv|bw|by|bz|ca|cc|cd|cf|cg|ch|ci|ck|cl|cm|cn|co|cr|cu|cv|cw|cx|cy|cz|de|dj|dk|dm|do|dz|ec|ee|eg|eh|er|es|et|eu|fi|fj|fk|fm|fo|fr|ga|gb|gd|ge|gf|gg|gh|gi|gl|gm|gn|gp|gq|gr|gs|gt|gu|gw|gy|hk|hm|hn|hr|ht|hu|id|ie|il|im|in|io|iq|ir|is|it|je|jm|jo|jp|ke|kg|kh|ki|km|kn|kp|kr|kw|ky|kz|la|lb|lc|li|lk|lr|ls|lt|lu|lv|ly|ma|mc|md|me|mf|mg|mh|mk|ml|mm|mn|mo|mp|mq|mr|ms|mt|mu|mv|mw|mx|my|mz|na|nc|ne|nf|ng|ni|nl|no|np|nr|nu|nz|om|pa|pe|pf|pg|ph|pk|pl|pm|pn|pr|ps|pt|pw|py|qa|re|ro|rs|ru|rw|sa|sb|sc|sd|se|sg|sh|si|sj|sk|sl|sm|sn|so|sr|ss|st|su|sv|sx|sy|sz|tc|td|tf|tg|th|tj|tk|tl|tm|tn|to|tp|tr|tt|tv|tw|tz|ua|ug|uk|um|us|uy|uz|va|vc|ve|vg|vi|vn|vu|wf|ws|ye|yt|za|zm|zw|\u043c\u043e\u043d|\u0440\u0444|\u0441\u0440\u0431|\u0443\u043a\u0440|\u049b\u0430\u0437|\u0627\u0644\u0627\u0631\u062f\u0646|\u0627\u0644\u062c\u0632\u0627\u0626\u0631|\u0627\u0644\u0633\u0639\u0648\u062f\u064a\u0629|\u0627\u0644\u0645\u063a\u0631\u0628|\u0627\u0645\u0627\u0631\u0627\u062a|\u0627\u06cc\u0631\u0627\u0646|\u0628\u06be\u0627\u0631\u062a|\u062a\u0648\u0646\u0633|\u0633\u0648\u062f\u0627\u0646|\u0633\u0648\u0631\u064a\u0629|\u0639\u0645\u0627\u0646|\u0641\u0644\u0633\u0637\u064a\u0646|\u0642\u0637\u0631|\u0645\u0635\u0631|\u0645\u0644\u064a\u0633\u064a\u0627|\u067e\u0627\u06a9\u0633\u062a\u0627\u0646|\u092d\u093e\u0930\u0924|\u09ac\u09be\u0982\u09b2\u09be|\u09ad\u09be\u09b0\u09a4|\u0a2d\u0a3e\u0a30\u0a24|\u0aad\u0abe\u0ab0\u0aa4|\u0b87\u0ba8\u0bcd\u0ba4\u0bbf\u0baf\u0bbe|\u0b87\u0bb2\u0b99\u0bcd\u0b95\u0bc8|\u0b9a\u0bbf\u0b99\u0bcd\u0b95\u0baa\u0bcd\u0baa\u0bc2\u0bb0\u0bcd|\u0c2d\u0c3e\u0c30\u0c24\u0c4d|\u0dbd\u0d82\u0d9a\u0dcf|\u0e44\u0e17\u0e22|\u10d2\u10d4|\u4e2d\u56fd|\u4e2d\u570b|\u53f0\u6e7e|\u53f0\u7063|\u65b0\u52a0\u5761|\u9999\u6e2f|\ud55c\uad6d)(?=[^0-9a-zA-Z@]|$))")), FlowdockText.regexen.validPunycode = t(/(?:xn--[0-9a-z]+)/), FlowdockText.regexen.validDomain = t(/(?:#{validSubdomain}*#{validDomainName}(?:#{validGTLD}|#{validCCTLD}|#{validPunycode}))/), FlowdockText.regexen.pseudoValidIP = t(/(?:\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})/), FlowdockText.regexen.validAsciiDomain = t(/(?:(?:[a-z0-9#{latinAccentChars}\-]+)\.)+(?:#{validGTLD}|#{validCCTLD}|#{validPunycode})/gi), FlowdockText.regexen.validPortNumber = t(/[0-9]+/), FlowdockText.regexen.validGeneralUrlPathChars = t(/[a-z0-9!\*';:=\+,\.\$\/%#\[\]\-_~|&#{latinAccentChars}]/i), FlowdockText.regexen.validUrlBalancedParens = t(/\(#{validGeneralUrlPathChars}+\)/i), FlowdockText.regexen.validUrlPathEndingChars = t(/[\+\-a-z0-9=_#\/#{latinAccentChars}]|(?:#{validUrlBalancedParens})/i), FlowdockText.regexen.validUrlPath = t("(?:(?:#{validGeneralUrlPathChars}*(?:#{validUrlBalancedParens}#{validGeneralUrlPathChars}*)*#{validUrlPathEndingChars})|(?:(@|@@)#{validGeneralUrlPathChars}+/?))", "i"), FlowdockText.regexen.validUrlQueryChars = /[a-z0-9!?\*'\(\);:&=\+\$\/%#\[\]\-_\.,~|]/i, FlowdockText.regexen.validUrlQueryEndingChars = /[a-z0-9_&=#\/]/i, FlowdockText.regexen.extractUrl = t("((#{validPrecedingChars})((?:(?:(https?:\\/\\/)?(#{validDomain}|#{pseudoValidIP}))|(?:(https?:\\/\\/)((?:#{validDomainChars}|-)+)(?=:|/|#{spaces}|$)))(?::(#{validPortNumber}))?(\\/#{validUrlPath}*)?(\\?#{validUrlQueryChars}*#{validUrlQueryEndingChars})?))", "gi"), FlowdockText.regexen.singleUrl = t("(#{validPrecedingChars})((?:(?:(https?:\\/\\/)?(#{validDomain}|#{pseudoValidIP}))|(?:(https?:\\/\\/)((?:#{validDomainChars}|-)+)(?=:|/|#{spaces}|$)))(?::(#{validPortNumber}))?(\\/#{validUrlPath}*)?(\\?#{validUrlQueryChars}*#{validUrlQueryEndingChars})?)", "i"), FlowdockText.regexen.validTcoUrl = /^https?:\/\/t\.co\/[a-z0-9]+/i, FlowdockText.regexen.validateUrlUnreserved = /[a-z0-9\-._~]/i, FlowdockText.regexen.validateUrlPctEncoded = /(?:%[0-9a-f]{2})/i, FlowdockText.regexen.validateUrlSubDelims = /[!$&'()*+,;=]/i, FlowdockText.regexen.validateUrlPchar = t("(?:#{validateUrlUnreserved}|#{validateUrlPctEncoded}|#{validateUrlSubDelims}|[:|@])", "i"), FlowdockText.regexen.validateUrlScheme = /(?:[a-z][a-z0-9+\-.]*)/i, FlowdockText.regexen.validateUrlUserinfo = t("(?:#{validateUrlUnreserved}|#{validateUrlPctEncoded}|#{validateUrlSubDelims}|:)*", "i"), FlowdockText.regexen.validateUrlDecOctet = /(?:[0-9]|(?:[1-9][0-9])|(?:1[0-9]{2})|(?:2[0-4][0-9])|(?:25[0-5]))/i, FlowdockText.regexen.validateUrlIpv4 = t(/(?:#{validateUrlDecOctet}(?:\.#{validateUrlDecOctet}){3})/i), FlowdockText.regexen.validateUrlIpv6 = /(?:\[[a-f0-9:\.]+\])/i, FlowdockText.regexen.validateUrlIp = t("(?:#{validateUrlIpv4}|#{validateUrlIpv6})", "i"), FlowdockText.regexen.validateUrlSubDomainSegment = /(?:[a-z0-9](?:[a-z0-9_\-]*[a-z0-9])?)/i, FlowdockText.regexen.validateUrlDomainSegment = /(?:[a-z0-9](?:[a-z0-9\-]*[a-z0-9])?)/i, FlowdockText.regexen.validateUrlDomainTld = /(?:[a-z](?:[a-z0-9\-]*[a-z0-9])?)/i, FlowdockText.regexen.validateUrlDomain = t(/(?:(?:#{validateUrlSubDomainSegment]}\.)*(?:#{validateUrlDomainSegment]}\.)#{validateUrlDomainTld})/i), FlowdockText.regexen.validateUrlHost = t("(?:#{validateUrlIp}|#{validateUrlDomain})", "i"), FlowdockText.regexen.validateUrlUnicodeSubDomainSegment = /(?:(?:[a-z0-9]|[^\u0000-\u007f])(?:(?:[a-z0-9_\-]|[^\u0000-\u007f])*(?:[a-z0-9]|[^\u0000-\u007f]))?)/i, FlowdockText.regexen.validateUrlUnicodeDomainSegment = /(?:(?:[a-z0-9]|[^\u0000-\u007f])(?:(?:[a-z0-9\-]|[^\u0000-\u007f])*(?:[a-z0-9]|[^\u0000-\u007f]))?)/i, FlowdockText.regexen.validateUrlUnicodeDomainTld = /(?:(?:[a-z]|[^\u0000-\u007f])(?:(?:[a-z0-9\-]|[^\u0000-\u007f])*(?:[a-z0-9]|[^\u0000-\u007f]))?)/i, FlowdockText.regexen.validateUrlUnicodeDomain = t(/(?:(?:#{validateUrlUnicodeSubDomainSegment}\.)*(?:#{validateUrlUnicodeDomainSegment}\.)#{validateUrlUnicodeDomainTld})/i), FlowdockText.regexen.validateUrlUnicodeHost = t("(?:#{validateUrlIp}|#{validateUrlUnicodeDomain})", "i"), FlowdockText.regexen.validateUrlPort = /[0-9]{1,5}/, FlowdockText.regexen.validateUrlUnicodeAuthority = t("(?:(#{validateUrlUserinfo})@)?(#{validateUrlUnicodeHost})(?::(#{validateUrlPort}))?", "i"), FlowdockText.regexen.validateUrlAuthority = t("(?:(#{validateUrlUserinfo})@)?(#{validateUrlHost})(?::(#{validateUrlPort}))?", "i"), FlowdockText.regexen.validateUrlPath = t(/(\/#{validateUrlPchar}*)*/i), FlowdockText.regexen.validateUrlQuery = t(/(#{validateUrlPchar}|\/|\?)*/i), FlowdockText.regexen.validateUrlFragment = t(/(#{validateUrlPchar}|\/|\?)*/i), FlowdockText.regexen.validateUrlUnencoded = t("^(?:([^:/?#]+):\\/\\/)?([^/?#]*)([^?#]*)(?:\\?([^#]*))?(?:#(.*))?$", "i"), FlowdockText.regexen.validEmailLocalPart = t("[A-z|0-9|.|_|%|+|-]+"), FlowdockText.regexen.email = t(/#{validEmailLocalPart}@#{validDomain}/, "gi"), FlowdockText.regexen.extractEmails = t(/(?:^|\s|,|"|')?(#{email})/, "gi"), FlowdockText.regexen.singleEmail = t(/(?:^|\s|,|"|')?(#{email})/, "i");
var D = "app-tag-link",
L = [{
type: "url",
regex: FlowdockText.regexen.singleUrl,
check: function () {
return !0
}
}, {
type: "hash",
regex: FlowdockText.regexen.singleHashTag,
check: o
}, {
type: "mention",
regex: FlowdockText.regexen.singleMention,
check: o
}, {
type: "email",
regex: FlowdockText.regexen.singleEmail,
check: function () {
return !0
}
}];
FlowdockText.autoLink = function (t, e, n) {
return g(t, e, n)
}, FlowdockText.autoLinkHashtags = function (t, e) {
return g(t, e, {}, "hash")
}, FlowdockText.autoLinkEmails = function (t, e) {
return g(t, e, {}, "email")
}, FlowdockText.autoLinkUrlsCustom = function (t, e) {
return g(t, {}, e, "url")
}, FlowdockText.autoLinkMentions = function (t, e) {
return g(t, e, {}, "mention")
}, FlowdockText.extractEmails = function (t) {
var e = FlowdockText.extractEmailsWithIndices(t);
return e.map(v)
}, FlowdockText.extractEmailsWithIndices = function (t) {
return FlowdockText.extractAllWithIndices(t).emails
}, FlowdockText.extractUrls = function (t) {
var e = FlowdockText.extractUrlsWithIndices(t);
return e.map(w)
}, FlowdockText.extractUrlsWithIndices = function (t) {
return FlowdockText.extractAllWithIndices(t).urls
}, FlowdockText.extractHashtags = function (t) {
var e = FlowdockText.extractHashtagsWithIndices(t);
return e.map(b)
}, FlowdockText.extractHashtagsWithIndices = function (t) {
return FlowdockText.extractAllWithIndices(t).hashtags
}, FlowdockText.modifyIndicesFromUnicodeToUTF16 = function (t, e) {
FlowdockText.shiftIndices(t, e, 1)
}, FlowdockText.modifyIndicesFromUTF16ToUnicode = function (t, e) {
FlowdockText.shiftIndices(t, e, -1)
}, FlowdockText.shiftIndices = function (t, e, n) {
for (var r = 0; r < t.length - 1; r++) {
var o = t.charCodeAt(r),
i = t.charCodeAt(r + 1);
if (o >= 55296 && 56319 >= o && i >= 56320 && 57343 >= i) {
r++;
for (var s = 0; s < e.length; s++) e[s].indices[0] >= r && (e[s].indices[0] += n, e[s].indices[1] += n)
}
}
}, FlowdockText.extractMentions = function (t, e) {
var n = FlowdockText.extractMentionsWithIndices(t, e);
return n.map(k)
}, FlowdockText.extractMentionsWithIndices = function (t, e) {
return FlowdockText.extractAllWithIndices(t, e).mentions
}, FlowdockText.extractAllWithIndices = function (t, e) {
if (!t) return {
hashtags: [],
mentions: [],
emails: [],
urls: []
};
var n = s(t);
return {
hashtags: x(n),
mentions: T(n, e),
emails: y(n),
urls: _(n)
}
}, FlowdockText.extractAll = function (t, e) {
var n = FlowdockText.extractAllWithIndices(t, e);
return {
hashtags: n.hashtags.map(b),
mentions: n.mentions.map(k),
emails: n.emails.map(v),
urls: n.urls.map(w)
}
}, FlowdockText.mentionsAll = function (t) {
return R(t) ? ["@everyone", "@everybody", "@all", "@anyone", "@anybody"].some(function (e) {
return -1 !== P(t).indexOf(e)
}) : FlowdockText.mentionsAll(FlowdockText.extractMentions(t))
}, FlowdockText.mentionsUser = function (t, e) {
return R(t) ? -1 !== P(t).indexOf(E(e).toLowerCase()) : FlowdockText.extractMentions(t, [E(e)]).length > 0
}, FlowdockText.isValidUrl = function (t, e, n) {
if (null == e && (e = !0), null == n && (n = !0), !t) return !1;
var r = t.match(FlowdockText.regexen.validateUrlUnencoded);
if (!r || r[0] !== t) return !1;
var o = r[1],
i = r[2],
s = r[3],
a = r[4],
u = r[5];
return (!n || C(o, FlowdockText.regexen.validateUrlScheme) && o.match(/^https?$/i)) && C(s, FlowdockText.regexen.validateUrlPath) && C(a, FlowdockText.regexen.validateUrlQuery, !0) && C(u, FlowdockText.regexen.validateUrlFragment, !0) ? e && C(i, FlowdockText.regexen.validateUrlUnicodeAuthority) || !e && C(i, FlowdockText.regexen.validateUrlAuthority) : !1
}, "undefined" != typeof module && module.exports && (module.exports = FlowdockText)
}(); // Copyright (C) 2006 Google Inc.
var IN_GLOBAL_SCOPE = !0;
window.PR_SHOULD_USE_CONTINUATION = !0;
var prettyPrintOne, prettyPrint;
! function () {
function t(t) {
function e(t) {
var e = t.charCodeAt(0);
if (92 !== e) return e;
var n = t.charAt(1);
return e = p[n], e ? e : n >= "0" && "7" >= n ? parseInt(t.substring(1), 8) : "u" === n || "x" === n ? parseInt(t.substring(2), 16) : t.charCodeAt(1)
}
function n(t) {
if (32 > t) return (16 > t ? "\\x0" : "\\x") + t.toString(16);
var e = String.fromCharCode(t);
return "\\" === e || "-" === e || "]" === e || "^" === e ? "\\" + e : e
}
function r(t) {
var r = t.substring(1, t.length - 1).match(new RegExp("\\\\u[0-9A-Fa-f]{4}|\\\\x[0-9A-Fa-f]{2}|\\\\[0-3][0-7]{0,2}|\\\\[0-7]{1,2}|\\\\[\\s\\S]|-|[^-\\\\]", "g")),
o = [],
i = "^" === r[0],
s = ["["];
i && s.push("^");
for (var a = i ? 1 : 0, u = r.length; u > a; ++a) {
var l = r[a];
if (/\\[bdsw]/i.test(l)) s.push(l);
else {
var c, p = e(l);
u > a + 2 && "-" === r[a + 1] ? (c = e(r[a + 2]), a += 2) : c = p, o.push([p, c]), 65 > c || p > 122 || (65 > c || p > 90 || o.push([32 | Math.max(65, p), 32 | Math.min(c, 90)]), 97 > c || p > 122 || o.push([-33 & Math.max(97, p), -33 & Math.min(c, 122)]))
}
}
o.sort(function (t, e) {
return t[0] - e[0] || e[1] - t[1]
});
for (var d = [], h = [], a = 0; a < o.length; ++a) {
var f = o[a];
f[0] <= h[1] + 1 ? h[1] = Math.max(h[1], f[1]) : d.push(h = f)
}
for (var a = 0; a < d.length; ++a) {
var f = d[a];
s.push(n(f[0])), f[1] > f[0] && (f[1] + 1 > f[0] && s.push("-"), s.push(n(f[1])))
}
return s.push("]"), s.join("")
}
function o(t) {
for (var e = t.source.match(new RegExp("(?:\\[(?:[^\\x5C\\x5D]|\\\\[\\s\\S])*\\]|\\\\u[A-Fa-f0-9]{4}|\\\\x[A-Fa-f0-9]{2}|\\\\[0-9]+|\\\\[^ux0-9]|\\(\\?[:!=]|[\\(\\)\\^]|[^\\x5B\\x5C\\(\\)\\^]+)", "g")), o = e.length, a = [], u = 0, l = 0; o > u; ++u) {
var c = e[u];
if ("(" === c)++l;
else if ("\\" === c.charAt(0)) {
var p = +c.substring(1);
p && (l >= p ? a[p] = -1 : e[u] = n(p))
}
}
for (var u = 1; u < a.length; ++u) - 1 === a[u] && (a[u] = ++i);
for (var u = 0, l = 0; o > u; ++u) {
var c = e[u];
if ("(" === c)++l, a[l] || (e[u] = "(?:");
else if ("\\" === c.charAt(0)) {
var p = +c.substring(1);
p && l >= p && (e[u] = "\\" + a[p])
}
}
for (var u = 0; o > u; ++u) "^" === e[u] && "^" !== e[u + 1] && (e[u] = "");
if (t.ignoreCase && s)
for (var u = 0; o > u; ++u) {
var c = e[u],
d = c.charAt(0);
c.length >= 2 && "[" === d ? e[u] = r(c) : "\\" !== d && (e[u] = c.replace(/[a-zA-Z]/g, function (t) {
var e = t.charCodeAt(0);
return "[" + String.fromCharCode(-33 & e, 32 | e) + "]"
}))
}
return e.join("")
}
for (var i = 0, s = !1, a = !1, u = 0, l = t.length; l > u; ++u) {
var c = t[u];
if (c.ignoreCase) a = !0;
else if (/[a-z]/i.test(c.source.replace(/\\u[0-9a-f]{4}|\\x[0-9a-f]{2}|\\[^ux]/gi, ""))) {
s = !0, a = !1;
break
}
}
for (var p = {
b: 8,
t: 9,
n: 10,
v: 11,
f: 12,
r: 13
}, d = [], u = 0, l = t.length; l > u; ++u) {
var c = t[u];
if (c.global || c.multiline) throw new Error("" + c);
d.push("(?:" + o(c) + ")")
}
return new RegExp(d.join("|"), a ? "gi" : "g")
}
function e(t, e) {
function n(t) {
var u = t.nodeType;
if (1 == u) {
if (r.test(t.className)) return;
for (var l = t.firstChild; l; l = l.nextSibling) n(l);
var c = t.nodeName.toLowerCase();
("br" === c || "li" === c) && (o[a] = "\n", s[a << 1] = i++, s[a++ << 1 | 1] = t)
} else if (3 == u || 4 == u) {
var p = t.nodeValue;
p.length && (p = e ? p.replace(/\r\n?/g, "\n") : p.replace(/[ \t\r\n]+/g, " "), o[a] = p, s[a << 1] = i, i += p.length, s[a++ << 1 | 1] = t)
}
}
var r = /(?:^|\s)nocode(?:\s|$)/,
o = [],
i = 0,
s = [],
a = 0;
return n(t), {
sourceCode: o.join("").replace(/\n$/, ""),
spans: s
}
}
function n(t, e, n, r) {
if (e) {
var o = {
sourceCode: e,
basePos: t
};
n(o), r.push.apply(r, o.decorations)
}
}
function r(t) {
for (var e = void 0, n = t.firstChild; n; n = n.nextSibling) {
var r = n.nodeType;
e = 1 === r ? e ? t : n : 3 === r && j.test(n.nodeValue) ? t : e
}
return e === t ? void 0 : e
}
function o(e, r) {
var o, i = {};
! function () {
for (var n = e.concat(r), s = [], a = {}, u = 0, l = n.length; l > u; ++u) {
var c = n[u],
p = c[3];
if (p)
for (var d = p.length; --d >= 0;) i[p.charAt(d)] = c;
var h = c[1],
f = "" + h;
a.hasOwnProperty(f) || (s.push(h), a[f] = null)
}
s.push(/[\0-\uffff]/), o = t(s)
}();
var s = r.length,
a = function (t) {
for (var e = t.sourceCode, u = t.basePos, c = [u, I], p = 0, d = e.match(o) || [], h = {}, f = 0, m = d.length; m > f; ++f) {
var g, v = d[f],
y = h[v],
w = void 0;
if ("string" == typeof y) g = !1;
else {
var _ = i[v.charAt(0)];
if (_) w = v.match(_[1]), y = _[0];
else {
for (var b = 0; s > b; ++b)
if (_ = r[b], w = v.match(_[1])) {
y = _[0];
break
}
w || (y = I)
}
g = y.length >= 5 && "lang-" === y.substring(0, 5), !g || w && "string" == typeof w[1] || (g = !1, y = L), g || (h[v] = y)
}
var x = p;
if (p += v.length, g) {
var k = w[1],
T = v.indexOf(k),
C = T + k.length;
w[2] && (C = v.length - w[2].length, T = C - k.length);
var E = y.substring(5);
n(u + x, v.substring(0, T), a, c), n(u + x + T, k, l(E, k), c), n(u + x + C, v.substring(C), a, c)
} else c.push(u + x, y)
}
t.decorations = c
};
return a
}
function i(t) {
var e = [],
n = [];
e.push(t.tripleQuotedStrings ? [R, /^(?:\'\'\'(?:[^\'\\]|\\[\s\S]|\'{1,2}(?=[^\']))*(?:\'\'\'|$)|\"\"\"(?:[^\"\\]|\\[\s\S]|\"{1,2}(?=[^\"]))*(?:\"\"\"|$)|\'(?:[^\\\']|\\[\s\S])*(?:\'|$)|\"(?:[^\\\"]|\\[\s\S])*(?:\"|$))/, null, "'\""] : t.multiLineStrings ? [R, /^(?:\'(?:[^\\\']|\\[\s\S])*(?:\'|$)|\"(?:[^\\\"]|\\[\s\S])*(?:\"|$)|\`(?:[^\\\`]|\\[\s\S])*(?:\`|$))/, null, "'\"`"] : [R, /^(?:\'(?:[^\\\'\r\n]|\\.)*(?:\'|$)|\"(?:[^\\\"\r\n]|\\.)*(?:\"|$))/, null, "\"'"]), t.verbatimStrings && n.push([R, /^@\"(?:[^\"]|\"\")*(?:\"|$)/, null]);
var r = t.hashComments;
r && (t.cStyleComments ? (e.push(r > 1 ? [N, /^#(?:##(?:[^#]|#(?!##))*(?:###|$)|.*)/, null, "#"] : [N, /^#(?:(?:define|e(?:l|nd)if|else|error|ifn?def|include|line|pragma|undef|warning)\b|[^\r\n]*)/, null, "#"]), n.push([R, /^<(?:(?:(?:\.\.\/)*|\/?)(?:[\w-]+(?:\/[\w-]+)+)?[\w-]+\.h(?:h|pp|\+\+)?|[a-z]\w*)>/, null])) : e.push([N, /^#[^\r\n]*/, null, "#"])), t.cStyleComments && (n.push([N, /^\/\/[^\r\n]*/, null]), n.push([N, /^\/\*[\s\S]*?(?:\*\/|$)/, null]));
var i = t.regexLiterals;
if (i) {
var s = i > 1 ? "" : "\n\r",
a = s ? "." : "[\\S\\s]",
u = "/(?=[^/*" + s + "])(?:[^/\\x5B\\x5C" + s + "]|\\x5C" + a + "|\\x5B(?:[^\\x5C\\x5D" + s + "]|\\x5C" + a + ")*(?:\\x5D|$))+/";
n.push(["lang-regex", RegExp("^" + z + "(" + u + ")")])
}
var l = t.types;
l && n.push([O, l]);
var c = ("" + t.keywords).replace(/^ | $/g, "");
c.length && n.push([M, new RegExp("^(?:" + c.replace(/[\s,]+/g, "|") + ")\\b"), null]), e.push([I, /^\s+/, null, " \r\n \xa0"]);
var p = "^.[^\\s\\w.$@'\"`/\\\\]*";
return t.regexLiterals && (p += "(?!s*/)"), n.push([F, /^@[a-z_$][a-z_$@0-9]*/i, null], [O, /^(?:[@_]?[A-Z]+[a-z][A-Za-z_$@0-9]*|\w+_t\b)/, null], [I, /^[a-z_$][a-z_$@0-9]*/i, null], [F, new RegExp("^(?:0x[a-f0-9]+|(?:\\d(?:_\\d+)*\\d*(?:\\.\\d*)?|\\.\\d\\+)(?:e[+\\-]?\\d+)?)[a-z]*", "i"), null, "0123456789"], [I, /^\\[\s\S]?/, null], [A, new RegExp(p), null]), o(e, n)
}
function s(t, e, n) {
function r(t) {
var e = t.nodeType;
if (1 != e || i.test(t.className)) {
if ((3 == e || 4 == e) && n) {
var u = t.nodeValue,
l = u.match(s);
if (l) {
var c = u.substring(0, l.index);
t.nodeValue = c;
var p = u.substring(l.index + l[0].length);
if (p) {
var d = t.parentNode;
d.insertBefore(a.createTextNode(p), t.nextSibling)
}
o(t), c || t.parentNode.removeChild(t)
}
}
} else if ("br" === t.nodeName) o(t), t.parentNode && t.parentNode.removeChild(t);
else
for (var h = t.firstChild; h; h = h.nextSibling) r(h)
}
function o(t) {
function e(t, n) {
var r = n ? t.cloneNode(!1) : t,
o = t.parentNode;
if (o) {
var i = e(o, 1),
s = t.nextSibling;
i.appendChild(r);
for (var a = s; a; a = s) s = a.nextSibling, i.appendChild(a)
}
return r
}
for (; !t.nextSibling;)
if (t = t.parentNode, !t) return;
for (var n, r = e(t.nextSibling, 0);
(n = r.parentNode) && 1 === n.nodeType;) r = n;
l.push(r)
}
for (var i = /(?:^|\s)nocode(?:\s|$)/, s = /\r\n?|\n/, a = t.ownerDocument, u = a.createElement("li"); t.firstChild;) u.appendChild(t.firstChild);
for (var l = [u], c = 0; c < l.length; ++c) r(l[c]);
e === (0 | e) && l[0].setAttribute("value", e);
var p = a.createElement("ol");
p.className = "linenums";
for (var d = Math.max(0, e - 1 | 0) || 0, c = 0, h = l.length; h > c; ++c) u = l[c], u.className = "L" + (c + d) % 10, u.firstChild || u.appendChild(a.createTextNode("\xa0")), p.appendChild(u);
t.appendChild(p)
}
function a(t) {
var e = /\bMSIE\s(\d+)/.exec(navigator.userAgent);
e = e && +e[1] <= 8;
var n = /\n/g,
r = t.sourceCode,
o = r.length,
i = 0,
s = t.spans,
a = s.length,
u = 0,
l = t.decorations,
c = l.length,
p = 0;
l[c] = o;
var d, h;
for (h = d = 0; c > h;) l[h] !== l[h + 2] ? (l[d++] = l[h++], l[d++] = l[h++]) : h += 2;
for (c = d, h = d = 0; c > h;) {
for (var f = l[h], m = l[h + 1], g = h + 2; c >= g + 2 && l[g + 1] === m;) g += 2;
l[d++] = f, l[d++] = m, h = g
}
c = l.length = d;
var v, y = t.sourceNode;
y && (v = y.style.display, y.style.display = "none");
try {
for (; a > u;) {
var w, _ = (s[u], s[u + 2] || o),
b = l[p + 2] || o,
g = Math.min(_, b),
x = s[u + 1];
if (1 !== x.nodeType && (w = r.substring(i, g))) {
e && (w = w.replace(n, "\r")), x.nodeValue = w;
var k = x.ownerDocument,
T = k.createElement("span");
T.className = l[p + 1];
var C = x.parentNode;
C.replaceChild(T, x), T.appendChild(x), _ > i && (s[u + 1] = x = k.createTextNode(r.substring(g, _)), C.insertBefore(x, T.nextSibling))
}
i = g, i >= _ && (u += 2), i >= b && (p += 2)
}
} finally {
y && (y.style.display = v)
}
}
function u(t, e) {
for (var n = e.length; --n >= 0;) {
var r = e[n];
q.hasOwnProperty(r) ? h.console && console.warn("cannot override language handler %s", r) : q[r] = t
}
}
function l(t, e) {
return t && q.hasOwnProperty(t) || (t = /^\s*</.test(e) ? "default-markup" : "default-code"), q[t]
}
function c(t) {
var n = t.langExtension;
try {
var r = e(t.sourceNode, t.pre),
o = r.sourceCode;
t.sourceCode = o, t.spans = r.spans, t.basePos = 0, l(n, o)(t), a(t)
} catch (i) {
h.console && console.log(i && i.stack || i)
}
}
function p(t, e, n) {
var r = document.createElement("div");
r.innerHTML = "<pre>" + t + "</pre>", r = r.firstChild, n && s(r, n, !0);
var o = {
langExtension: e,
numberLines: n,
sourceNode: r,
pre: 1
};
return c(o), r.innerHTML
}
function d(t, e) {
function n(t) {
return i.getElementsByTagName(t)
}
function o() {
for (var e = h.PR_SHOULD_USE_CONTINUATION ? m.now() + 250 : 1 / 0; v < l.length && m.now() < e; v++) {
for (var n = l[v], i = T, u = n; u = u.previousSibling;) {
var p = u.nodeType,
d = (7 === p || 8 === p) && u.nodeValue;
if (d ? !/^\??prettify\b/.test(d) : 3 !== p || /\S/.test(u.nodeValue)) break;
if (d) {
i = {}, d.replace(/\b(\w+)=([\w:.%+-]+)/g, function (t, e, n) {
i[e] = n
});
break
}
}
var f = n.className;
if ((i !== T || w.test(f)) && !_.test(f)) {
for (var C = !1, E = n.parentNode; E; E = E.parentNode) {
var P = E.tagName;
if (k.test(P) && E.className && w.test(E.className)) {
C = !0;
break
}
}
if (!C) {
n.className += " prettyprinted";
var S = i.lang;
if (!S) {
S = f.match(y);
var R;
!S && (R = r(n)) && x.test(R.tagName) && (S = R.className.match(y)), S && (S = S[1])
}
var M;
if (b.test(n.tagName)) M = 1;
else {
var N = n.currentStyle,
O = a.defaultView,
F = N ? N.whiteSpace : O && O.getComputedStyle ? O.getComputedStyle(n, null).getPropertyValue("white-space") : 0;
M = F && "pre" === F.substring(0, 3)
}
var A = i.linenums;
(A = "true" === A || +A) || (A = f.match(/\blinenums\b(?::(\d+))?/), A = A ? A[1] && A[1].length ? +A[1] : !0 : !1), A && s(n, A, M), g = {
langExtension: S,
sourceNode: n,
numberLines: A,
pre: M
}, c(g)
}
}
}
v < l.length ? setTimeout(o, 250) : "function" == typeof t && t()
}
for (var i = e || document.body, a = i.ownerDocument || document, u = [n("pre"), n("code"), n("xmp")], l = [], p = 0; p < u.length; ++p)
for (var d = 0, f = u[p].length; f > d; ++d) l.push(u[p][d]);
u = null;
var m = Date;
m.now || (m = {
now: function () {
return +new Date
}
});
var g, v = 0,
y = /\blang(?:uage)?-([\w.]+)(?!\S)/,
w = /\bprettyprint\b/,
_ = /\bprettyprinted\b/,
b = /pre|xmp/i,
x = /^code$/i,
k = /^(?:pre|code|xmp)$/i,
T = {};
o()
}
var h = window,
f = ["break,continue,do,else,for,if,return,while"],
m = [f, "auto,case,char,const,default,double,enum,extern,float,goto,inline,int,long,register,short,signed,sizeof,static,struct,switch,typedef,union,unsigned,void,volatile"],
g = [m, "catch,class,delete,false,import,new,operator,private,protected,public,this,throw,true,try,typeof"],
v = [g, "alignof,align_union,asm,axiom,bool,concept,concept_map,const_cast,constexpr,decltype,delegate,dynamic_cast,explicit,export,friend,generic,late_check,mutable,namespace,nullptr,property,reinterpret_cast,static_assert,static_cast,template,typeid,typename,using,virtual,where"],
y = [g, "abstract,assert,boolean,byte,extends,final,finally,implements,import,instanceof,interface,null,native,package,strictfp,super,synchronized,throws,transient"],
w = [g, "abstract,as,base,bool,by,byte,checked,decimal,delegate,descending,dynamic,event,finally,fixed,foreach,from,group,implicit,in,interface,internal,into,is,let,lock,null,object,out,override,orderby,params,partial,readonly,ref,sbyte,sealed,stackalloc,string,select,uint,ulong,unchecked,unsafe,ushort,var,virtual,where"],
_ = "all,and,by,catch,class,else,extends,false,finally,for,if,in,is,isnt,loop,new,no,not,null,of,off,on,or,return,super,then,throw,true,try,unless,until,when,while,yes",
b = [g, "debugger,eval,export,function,get,null,set,undefined,var,with,Infinity,NaN"],
x = "caller,delete,die,do,dump,elsif,eval,exit,foreach,for,goto,if,import,last,local,my,next,no,our,print,package,redo,require,sub,undef,unless,until,use,wantarray,while,BEGIN,END",
k = [f, "and,as,assert,class,def,del,elif,except,exec,finally,from,global,import,in,is,lambda,nonlocal,not,or,pass,print,raise,try,with,yield,False,True,None"],
T = [f, "alias,and,begin,case,class,def,defined,elsif,end,ensure,false,in,module,next,nil,not,or,redo,rescue,retry,self,super,then,true,undef,unless,until,when,yield,BEGIN,END"],
C = [f, "as,assert,const,copy,drop,enum,extern,fail,false,fn,impl,let,log,loop,match,mod,move,mut,priv,pub,pure,ref,self,static,struct,true,trait,type,unsafe,use"],
E = [f, "case,done,elif,esac,eval,fi,function,in,local,set,then,until"],
P = [v, w, b, x, k, T, E],
S = /^(DIR|FILE|vector|(de|priority_)?queue|list|stack|(const_)?iterator|(multi)?(set|map)|bitset|u?(int|float)\d*)\b/,
R = "prettify-str",
M = "prettify-kwd",
N = "prettify-com",
O = "prettify-typ",
F = "prettify-lit",
A = "prettify-pun",
I = "prettify-pln",
$ = "prettify-tag",
D = "prettify-dec",
L = "prettify-src",
U = "prettify-atn",
H = "prettify-atv",
V = "prettify-nocode",
z = "(?:^^\\.?|[+-]|[!=]=?=?|\\#|%=?|&&?=?|\\(|\\*=?|[+\\-]=|->|\\/=?|::?|<<?=?|>>?>?=?|,|;|\\?|@|\\[|~|{|\\^\\^?=?|\\|\\|?=?|break|case|continue|delete|do|else|finally|instanceof|return|throw|try|typeof)\\s*",
j = /\S/,
B = i({
keywords: P,
hashComments: !0,
cStyleComments: !0,
multiLineStrings: !0,
regexLiterals: !0
}),
q = {};
u(B, ["default-code"]), u(o([], [
[I, /^[^<?]+/],
[D, /^<!\w[^>]*(?:>|$)/],
[N, /^<\!--[\s\S]*?(?:-\->|$)/],
["lang-", /^<\?([\s\S]+?)(?:\?>|$)/],
["lang-", /^<%([\s\S]+?)(?:%>|$)/],
[A, /^(?:<[%?]|[%?]>)/],
["lang-", /^<xmp\b[^>]*>([\s\S]+?)<\/xmp\b[^>]*>/i],
["lang-js", /^<script\b[^>]*>([\s\S]*?)(<\/script\b[^>]*>)/i],
["lang-css", /^<style\b[^>]*>([\s\S]*?)(<\/style\b[^>]*>)/i],
["lang-in.tag", /^(<\/?[a-z][^<>]*>)/i]
]), ["default-markup", "htm", "html", "mxml", "xhtml", "xml", "xsl"]), u(o([
[I, /^[\s]+/, null, " \r\n"],
[H, /^(?:\"[^\"]*\"?|\'[^\']*\'?)/, null, "\"'"]
], [
[$, /^^<\/?[a-z](?:[\w.:-]*\w)?|\/?>$/i],
[U, /^(?!style[\s=]|on)[a-z](?:[\w:-]*\w)?/i],
["lang-uq.val", /^=\s*([^>\'\"\s]*(?:[^>\'\"\s\/]|\/(?=\s)))/],
[A, /^[=<>\/]+/],
["lang-js", /^on\w+\s*=\s*\"([^\"]+)\"/i],
["lang-js", /^on\w+\s*=\s*\'([^\']+)\'/i],
["lang-js", /^on\w+\s*=\s*([^\"\'>\s]+)/i],
["lang-css", /^style\s*=\s*\"([^\"]+)\"/i],
["lang-css", /^style\s*=\s*\'([^\']+)\'/i],
["lang-css", /^style\s*=\s*([^\"\'>\s]+)/i]
]), ["in.tag"]), u(o([], [
[H, /^[\s\S]+/]
]), ["uq.val"]), u(i({
keywords: v,
hashComments: !0,
cStyleComments: !0,
types: S
}), ["c", "cc", "cpp", "cxx", "cyc", "m"]), u(i({
keywords: "null,true,false"
}), ["json"]), u(i({
keywords: w,
hashComments: !0,
cStyleComments: !0,
verbatimStrings: !0,
types: S
}), ["cs"]), u(i({
keywords: y,
cStyleComments: !0
}), ["java"]), u(i({
keywords: E,
hashComments: !0,
multiLineStrings: !0
}), ["bash", "bsh", "csh", "sh"]), u(i({
keywords: k,
hashComments: !0,
multiLineStrings: !0,
tripleQuotedStrings: !0
}), ["cv", "py", "python"]), u(i({
keywords: x,
hashComments: !0,
multiLineStrings: !0,
regexLiterals: 2
}), ["perl", "pl", "pm"]), u(i({
keywords: T,
hashComments: !0,
multiLineStrings: !0,
regexLiterals: !0
}), ["rb", "ruby"]), u(i({
keywords: b,
cStyleComments: !0,
regexLiterals: !0
}), ["javascript", "js"]), u(i({
keywords: _,
hashComments: 3,
cStyleComments: !0,
multilineStrings: !0,
tripleQuotedStrings: !0,
regexLiterals: !0
}), ["coffee"]), u(i({
keywords: C,
cStyleComments: !0,
multilineStrings: !0
}), ["rc", "rs", "rust"]), u(o([], [
[R, /^[\s\S]+/]
]), ["regex"]);
var W = h.PR = {
createSimpleLexer: o,
registerLangHandler: u,
sourceDecorator: i,
PR_ATTRIB_NAME: U,
PR_ATTRIB_VALUE: H,
PR_COMMENT: N,
PR_DECLARATION: D,
PR_KEYWORD: M,
PR_LITERAL: F,
PR_NOCODE: V,
PR_PLAIN: I,
PR_PUNCTUATION: A,
PR_SOURCE: L,
PR_STRING: R,
PR_TAG: $,
PR_TYPE: O,
prettyPrintOne: IN_GLOBAL_SCOPE ? h.prettyPrintOne = p : prettyPrintOne = p,
prettyPrint: prettyPrint = IN_GLOBAL_SCOPE ? h.prettyPrint = d : prettyPrint = d
};
"function" == typeof define && define.amd && define("google-code-prettify", [], function () {
return W
})
}(), // Copyright (C) 2009 Onno Hommes.
PR.registerLangHandler(PR.createSimpleLexer([
[PR.PR_COMMENT, /^#[^\r\n]*/, null, "#"],
[PR.PR_PLAIN, /^[\t\n\r \xA0]+/, null, " \n\r \xa0"],
[PR.PR_STRING, /^\"(?:[^\"\\]|\\[\s\S])*(?:\"|$)/, null, '"']
], [
[PR.PR_KEYWORD, /^(?:ADS|AD|AUG|BZF|BZMF|CAE|CAF|CA|CCS|COM|CS|DAS|DCA|DCOM|DCS|DDOUBL|DIM|DOUBLE|DTCB|DTCF|DV|DXCH|EDRUPT|EXTEND|INCR|INDEX|NDX|INHINT|LXCH|MASK|MSK|MP|MSU|NOOP|OVSK|QXCH|RAND|READ|RELINT|RESUME|RETURN|ROR|RXOR|SQUARE|SU|TCR|TCAA|OVSK|TCF|TC|TS|WAND|WOR|WRITE|XCH|XLQ|XXALQ|ZL|ZQ|ADD|ADZ|SUB|SUZ|MPY|MPR|MPZ|DVP|COM|ABS|CLA|CLZ|LDQ|STO|STQ|ALS|LLS|LRS|TRA|TSQ|TMI|TOV|AXT|TIX|DLY|INP|OUT)\s/, null],
[PR.PR_TYPE, /^(?:-?GENADR|=MINUS|2BCADR|VN|BOF|MM|-?2CADR|-?[1-6]DNADR|ADRES|BBCON|[SE]?BANK\=?|BLOCK|BNKSUM|E?CADR|COUNT\*?|2?DEC\*?|-?DNCHAN|-?DNPTR|EQUALS|ERASE|MEMORY|2?OCT|REMADR|SETLOC|SUBRO|ORG|BSS|BES|SYN|EQU|DEFINE|END)\s/, null],
[PR.PR_LITERAL, /^\'(?:-*(?:\w|\\[\x21-\x7e])(?:[\w-]*|\\[\x21-\x7e])[=!?]?)?/],
[PR.PR_PLAIN, /^-*(?:[!-z_]|\\[\x21-\x7e])(?:[\w-]*|\\[\x21-\x7e])[=!?]?/i],
[PR.PR_PUNCTUATION, /^[^\w\t\n\r \xA0()\"\\\';]+/]
]), ["apollo", "agc", "aea"]), PR.registerLangHandler(PR.createSimpleLexer([
[PR.PR_STRING, /^(?:"(?:[^\\"\r\n]|\\.)*(?:"|$))/, null, '"'],
[PR.PR_PLAIN, /^\s+/, null, " \r\n \xa0"]
], [
[PR.PR_COMMENT, /^REM[^\r\n]*/, null],
[PR.PR_KEYWORD, /^\b(?:AND|CLOSE|CLR|CMD|CONT|DATA|DEF ?FN|DIM|END|FOR|GET|GOSUB|GOTO|IF|INPUT|LET|LIST|LOAD|NEW|NEXT|NOT|ON|OPEN|OR|POKE|PRINT|READ|RESTORE|RETURN|RUN|SAVE|STEP|STOP|SYS|THEN|TO|VERIFY|WAIT)\b/, null],
[PR.PR_PLAIN, /^[A-Z][A-Z0-9]?(?:\$|%)?/i, null],
[PR.PR_LITERAL, /^(?:\d+(?:\.\d*)?|\.\d+)(?:e[+\-]?\d+)?/i, null, "0123456789"],
[PR.PR_PUNCTUATION, /^.[^\s\w\.$%"]*/, null]
]), ["basic", "cbm"]),
/**
* @license Copyright (C) 2011 Google Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
PR.registerLangHandler(PR.createSimpleLexer([
["opn", /^[\(\{\[]+/, null, "([{"],
["clo", /^[\)\}\]]+/, null, ")]}"],
[PR.PR_COMMENT, /^;[^\r\n]*/, null, ";"],
[PR.PR_PLAIN, /^[\t\n\r \xA0]+/, null, " \n\r \xa0"],
[PR.PR_STRING, /^\"(?:[^\"\\]|\\[\s\S])*(?:\"|$)/, null, '"']
], [
[PR.PR_KEYWORD, /^(?:def|if|do|let|quote|var|fn|loop|recur|throw|try|monitor-enter|monitor-exit|defmacro|defn|defn-|macroexpand|macroexpand-1|for|doseq|dosync|dotimes|and|or|when|not|assert|doto|proxy|defstruct|first|rest|cons|defprotocol|deftype|defrecord|reify|defmulti|defmethod|meta|with-meta|ns|in-ns|create-ns|import|intern|refer|alias|namespace|resolve|ref|deref|refset|new|set!|memfn|to-array|into-array|aset|gen-class|reduce|map|filter|find|nil?|empty?|hash-map|hash-set|vec|vector|seq|flatten|reverse|assoc|dissoc|list|list?|disj|get|union|difference|intersection|extend|extend-type|extend-protocol|prn)\b/, null],
[PR.PR_TYPE, /^:[0-9a-zA-Z\-]+/]
]), ["clj"]), // Copyright (C) 2009 Google Inc.
PR.registerLangHandler(PR.createSimpleLexer([
[PR.PR_PLAIN, /^[ \t\r\n\f]+/, null, " \r\n\f"]
], [
[PR.PR_STRING, /^\"(?:[^\n\r\f\\\"]|\\(?:\r\n?|\n|\f)|\\[\s\S])*\"/, null],
[PR.PR_STRING, /^\'(?:[^\n\r\f\\\']|\\(?:\r\n?|\n|\f)|\\[\s\S])*\'/, null],
["lang-css-str", /^url\(([^\)\"\']+)\)/i],
[PR.PR_KEYWORD, /^(?:url|rgb|\!important|@import|@page|@media|@charset|inherit)(?=[^\-\w]|$)/i, null],
["lang-css-kw", /^(-?(?:[_a-z]|(?:\\[0-9a-f]+ ?))(?:[_a-z0-9\-]|\\(?:\\[0-9a-f]+ ?))*)\s*:/i],
[PR.PR_COMMENT, /^\/\*[^*]*\*+(?:[^\/*][^*]*\*+)*\//],
[PR.PR_COMMENT, /^(?:<!--|-->)/],
[PR.PR_LITERAL, /^(?:\d+|\d*\.\d+)(?:%|[a-z]+)?/i],
[PR.PR_LITERAL, /^#(?:[0-9a-f]{3}){1,2}\b/i],
[PR.PR_PLAIN, /^-?(?:[_a-z]|(?:\\[\da-f]+ ?))(?:[_a-z\d\-]|\\(?:\\[\da-f]+ ?))*/i],
[PR.PR_PUNCTUATION, /^[^\s\w\'\"]+/]
]), ["css"]), PR.registerLangHandler(PR.createSimpleLexer([], [
[PR.PR_KEYWORD, /^-?(?:[_a-z]|(?:\\[\da-f]+ ?))(?:[_a-z\d\-]|\\(?:\\[\da-f]+ ?))*/i]
]), ["css-kw"]), PR.registerLangHandler(PR.createSimpleLexer([], [
[PR.PR_STRING, /^[^\)\"\']+/]
]), ["css-str"]), // Copyright (C) 2013 Google Inc.
PR.registerLangHandler(PR.createSimpleLexer([
[PR.PR_PLAIN, /^[\t\n\r \xA0]+/, null, " \n\r \xa0"]
], [
[PR.PR_COMMENT, /^#!(?:.*)/],
[PR.PR_KEYWORD, /^\b(?:import|library|part of|part|as|show|hide)\b/i],
[PR.PR_COMMENT, /^\/\/(?:.*)/],
[PR.PR_COMMENT, /^\/\*[^*]*\*+(?:[^\/*][^*]*\*+)*\//],
[PR.PR_KEYWORD, /^\b(?:class|interface)\b/i],
[PR.PR_KEYWORD, /^\b(?:assert|break|case|catch|continue|default|do|else|finally|for|if|in|is|new|return|super|switch|this|throw|try|while)\b/i],
[PR.PR_KEYWORD, /^\b(?:abstract|const|extends|factory|final|get|implements|native|operator|set|static|typedef|var)\b/i],
[PR.PR_TYPE, /^\b(?:bool|double|Dynamic|int|num|Object|String|void)\b/i],
[PR.PR_KEYWORD, /^\b(?:false|null|true)\b/i],
[PR.PR_STRING, /^r?[\']{3}[\s|\S]*?[^\\][\']{3}/],
[PR.PR_STRING, /^r?[\"]{3}[\s|\S]*?[^\\][\"]{3}/],
[PR.PR_STRING, /^r?\'(\'|(?:[^\n\r\f])*?[^\\]\')/],
[PR.PR_STRING, /^r?\"(\"|(?:[^\n\r\f])*?[^\\]\")/],
[PR.PR_PLAIN, /^[a-z_$][a-z0-9_]*/i],
[PR.PR_PUNCTUATION, /^[~!%^&*+=|?:<>/-]/],
[PR.PR_LITERAL, /^\b0x[0-9a-f]+/i],
[PR.PR_LITERAL, /^\b\d+(?:\.\d*)?(?:e[+-]?\d+)?/i],
[PR.PR_LITERAL, /^\b\.\d+(?:e[+-]?\d+)?/i],
[PR.PR_PUNCTUATION, /^[(){}\[\],.;]/]
]), ["dart"]), // Copyright (C) 2013 Andrew Allen
PR.registerLangHandler(PR.createSimpleLexer([
[PR.PR_PLAIN, /^[\t\n\x0B\x0C\r ]+/, null, " \n \f\r "],
[PR.PR_STRING, /^\"(?:[^\"\\\n\x0C\r]|\\[\s\S])*(?:\"|$)/, null, '"'],
[PR.PR_LITERAL, /^[a-z][a-zA-Z0-9_]*/],
[PR.PR_LITERAL, /^\'(?:[^\'\\\n\x0C\r]|\\[^&])+\'?/, null, "'"],
[PR.PR_LITERAL, /^\?[^ \t\n({]+/, null, "?"],
[PR.PR_LITERAL, /^(?:0o[0-7]+|0x[\da-f]+|\d+(?:\.\d+)?(?:e[+\-]?\d+)?)/i, null, "0123456789"]
], [
[PR.PR_COMMENT, /^%[^\n]*/],
[PR.PR_KEYWORD, /^(?:module|attributes|do|let|in|letrec|apply|call|primop|case|of|end|when|fun|try|catch|receive|after|char|integer|float,atom,string,var)\b/],
[PR.PR_KEYWORD, /^-[a-z_]+/],
[PR.PR_TYPE, /^[A-Z_][a-zA-Z0-9_]*/],
[PR.PR_PUNCTUATION, /^[.,;]/]
]), ["erlang", "erl"]), // Copyright (C) 2010 Google Inc.
PR.registerLangHandler(PR.createSimpleLexer([
[PR.PR_PLAIN, /^[\t\n\r \xA0]+/, null, " \n\r \xa0"],
[PR.PR_PLAIN, /^(?:\"(?:[^\"\\]|\\[\s\S])*(?:\"|$)|\'(?:[^\'\\]|\\[\s\S])+(?:\'|$)|`[^`]*(?:`|$))/, null, "\"'"]
], [
[PR.PR_COMMENT, /^(?:\/\/[^\r\n]*|\/\*[\s\S]*?\*\/)/],
[PR.PR_PLAIN, /^(?:[^\/\"\'`]|\/(?![\/\*]))+/i]
]), ["go"]), // Copyright (C) 2009 Google Inc.
PR.registerLangHandler(PR.createSimpleLexer([
[PR.PR_PLAIN, /^[\t\n\x0B\x0C\r ]+/, null, " \n \f\r "],
[PR.PR_STRING, /^\"(?:[^\"\\\n\x0C\r]|\\[\s\S])*(?:\"|$)/, null, '"'],
[PR.PR_STRING, /^\'(?:[^\'\\\n\x0C\r]|\\[^&])\'?/, null, "'"],
[PR.PR_LITERAL, /^(?:0o[0-7]+|0x[\da-f]+|\d+(?:\.\d+)?(?:e[+\-]?\d+)?)/i, null, "0123456789"]
], [
[PR.PR_COMMENT, /^(?:(?:--+(?:[^\r\n\x0C]*)?)|(?:\{-(?:[^-]|-+[^-\}])*-\}))/],
[PR.PR_KEYWORD, /^(?:case|class|data|default|deriving|do|else|if|import|in|infix|infixl|infixr|instance|let|module|newtype|of|then|type|where|_)(?=[^a-zA-Z0-9\']|$)/, null],
[PR.PR_PLAIN, /^(?:[A-Z][\w\']*\.)*[a-zA-Z][\w\']*/],
[PR.PR_PUNCTUATION, /^[^\t\n\x0B\x0C\r a-zA-Z0-9\'\"]+/]
]), ["hs"]), // Copyright (C) 2008 Google Inc.
PR.registerLangHandler(PR.createSimpleLexer([
["opn", /^\(+/, null, "("],
["clo", /^\)+/, null, ")"],
[PR.PR_COMMENT, /^;[^\r\n]*/, null, ";"],
[PR.PR_PLAIN, /^[\t\n\r \xA0]+/, null, " \n\r \xa0"],
[PR.PR_STRING, /^\"(?:[^\"\\]|\\[\s\S])*(?:\"|$)/, null, '"']
], [
[PR.PR_KEYWORD, /^(?:block|c[ad]+r|catch|con[ds]|def(?:ine|un)|do|eq|eql|equal|equalp|eval-when|flet|format|go|if|labels|lambda|let|load-time-value|locally|macrolet|multiple-value-call|nil|progn|progv|quote|require|return-from|setq|symbol-macrolet|t|tagbody|the|throw|unwind)\b/, null],
[PR.PR_LITERAL, /^[+\-]?(?:[0#]x[0-9a-f]+|\d+\/\d+|(?:\.\d+|\d+(?:\.\d*)?)(?:[ed][+\-]?\d+)?)/i],
[PR.PR_LITERAL, /^\'(?:-*(?:\w|\\[\x21-\x7e])(?:[\w-]*|\\[\x21-\x7e])[=!?]?)?/],
[PR.PR_PLAIN, /^-*(?:[a-z_]|\\[\x21-\x7e])(?:[\w-]*|\\[\x21-\x7e])[=!?]?/i],
[PR.PR_PUNCTUATION, /^[^\w\t\n\r \xA0()\"\\\';]+/]
]), ["cl", "el", "lisp", "lsp", "scm", "ss", "rkt"]), // Copyright (C) 2013 Nikhil Dabas
PR.registerLangHandler(PR.createSimpleLexer([
[PR.PR_PLAIN, /^[\t\n\r \xA0]+/, null, " \n\r \xa0"],
[PR.PR_STRING, /^!?\"(?:[^\"\\]|\\[\s\S])*(?:\"|$)/, null, '"'],
[PR.PR_COMMENT, /^;[^\r\n]*/, null, ";"]
], [
[PR.PR_PLAIN, /^[%@!](?:[-a-zA-Z$._][-a-zA-Z$._0-9]*|\d+)/],
[PR.PR_KEYWORD, /^[A-Za-z_][0-9A-Za-z_]*/, null],
[PR.PR_LITERAL, /^\d+\.\d+/],
[PR.PR_LITERAL, /^(?:\d+|0[xX][a-fA-F0-9]+)/],
[PR.PR_PUNCTUATION, /^[()\[\]{},=*<>:]|\.\.\.$/]
]), ["llvm", "ll"]), // Copyright (C) 2008 Google Inc.
PR.registerLangHandler(PR.createSimpleLexer([
[PR.PR_PLAIN, /^[\t\n\r \xA0]+/, null, " \n\r \xa0"],
[PR.PR_STRING, /^(?:\"(?:[^\"\\]|\\[\s\S])*(?:\"|$)|\'(?:[^\'\\]|\\[\s\S])*(?:\'|$))/, null, "\"'"]
], [
[PR.PR_COMMENT, /^--(?:\[(=*)\[[\s\S]*?(?:\]\1\]|$)|[^\r\n]*)/],
[PR.PR_STRING, /^\[(=*)\[[\s\S]*?(?:\]\1\]|$)/],
[PR.PR_KEYWORD, /^(?:and|break|do|else|elseif|end|false|for|function|if|in|local|nil|not|or|repeat|return|then|true|until|while)\b/, null],
[PR.PR_LITERAL, /^[+-]?(?:0x[\da-f]+|(?:(?:\.\d+|\d+(?:\.\d*)?)(?:e[+\-]?\d+)?))/i],
[PR.PR_PLAIN, /^[a-z_]\w*/i],
[PR.PR_PUNCTUATION, /^[^\w\t\n\r \xA0][^\w\t\n\r \xA0\"\'\-\+=]*/]
]), ["lua"]), // Copyright (c) 2013 by Amro <amroamroamro@gmail.com>
// The above copyright notice and this permission notice shall be included in
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
function (t) {
var e = "ident",
n = "const",
r = "fun",
o = "fun_tbx",
i = "syscmd",
s = "codeoutput",
a = "err",
u = "wrn",
l = "transpose",
c = "linecont",
p = ["abs|accumarray|acos(?:d|h)?|acot(?:d|h)?|acsc(?:d|h)?|actxcontrol(?:list|select)?|actxGetRunningServer|actxserver|addlistener|addpath|addpref|addtodate|airy|align|alim|all|allchild|alpha|alphamap|amd|ancestor|and|angle|annotation|any|area|arrayfun|asec(?:d|h)?|asin(?:d|h)?|assert|assignin|atan(?:2|d|h)?|audiodevinfo|audioplayer|audiorecorder|aufinfo|auread|autumn|auwrite|avifile|aviinfo|aviread|axes|axis|balance|bar(?:3|3h|h)?|base2dec|beep|BeginInvoke|bench|bessel(?:h|i|j|k|y)|beta|betainc|betaincinv|betaln|bicg|bicgstab|bicgstabl|bin2dec|bitand|bitcmp|bitget|bitmax|bitnot|bitor|bitset|bitshift|bitxor|blanks|blkdiag|bone|box|brighten|brush|bsxfun|builddocsearchdb|builtin|bvp4c|bvp5c|bvpget|bvpinit|bvpset|bvpxtend|calendar|calllib|callSoapService|camdolly|cameratoolbar|camlight|camlookat|camorbit|campan|campos|camproj|camroll|camtarget|camup|camva|camzoom|cart2pol|cart2sph|cast|cat|caxis|cd|cdf2rdf|cdfepoch|cdfinfo|cdflib(?:.(?:close|closeVar|computeEpoch|computeEpoch16|create|createAttr|createVar|delete|deleteAttr|deleteAttrEntry|deleteAttrgEntry|deleteVar|deleteVarRecords|epoch16Breakdown|epochBreakdown|getAttrEntry|getAttrgEntry|getAttrMaxEntry|getAttrMaxgEntry|getAttrName|getAttrNum|getAttrScope|getCacheSize|getChecksum|getCompression|getCompressionCacheSize|getConstantNames|getConstantValue|getCopyright|getFileBackward|getFormat|getLibraryCopyright|getLibraryVersion|getMajority|getName|getNumAttrEntries|getNumAttrgEntries|getNumAttributes|getNumgAttributes|getReadOnlyMode|getStageCacheSize|getValidate|getVarAllocRecords|getVarBlockingFactor|getVarCacheSize|getVarCompression|getVarData|getVarMaxAllocRecNum|getVarMaxWrittenRecNum|getVarName|getVarNum|getVarNumRecsWritten|getVarPadValue|getVarRecordData|getVarReservePercent|getVarsMaxWrittenRecNum|getVarSparseRecords|getVersion|hyperGetVarData|hyperPutVarData|inquire|inquireAttr|inquireAttrEntry|inquireAttrgEntry|inquireVar|open|putAttrEntry|putAttrgEntry|putVarData|putVarRecordData|renameAttr|renameVar|setCacheSize|setChecksum|setCompression|setCompressionCacheSize|setFileBackward|setFormat|setMajority|setReadOnlyMode|setStageCacheSize|setValidate|setVarAllocBlockRecords|setVarBlockingFactor|setVarCacheSize|setVarCompression|setVarInitialRecs|setVarPadValue|SetVarReservePercent|setVarsCacheSize|setVarSparseRecords))?|cdfread|cdfwrite|ceil|cell2mat|cell2struct|celldisp|cellfun|cellplot|cellstr|cgs|checkcode|checkin|checkout|chol|cholinc|cholupdate|circshift|cla|clabel|class|clc|clear|clearvars|clf|clipboard|clock|close|closereq|cmopts|cmpermute|cmunique|colamd|colon|colorbar|colordef|colormap|colormapeditor|colperm|Combine|comet|comet3|commandhistory|commandwindow|compan|compass|complex|computer|cond|condeig|condest|coneplot|conj|containers.Map|contour(?:3|c|f|slice)?|contrast|conv|conv2|convhull|convhulln|convn|cool|copper|copyfile|copyobj|corrcoef|cos(?:d|h)?|cot(?:d|h)?|cov|cplxpair|cputime|createClassFromWsdl|createSoapMessage|cross|csc(?:d|h)?|csvread|csvwrite|ctranspose|cumprod|cumsum|cumtrapz|curl|customverctrl|cylinder|daqread|daspect|datacursormode|datatipinfo|date|datenum|datestr|datetick|datevec|dbclear|dbcont|dbdown|dblquad|dbmex|dbquit|dbstack|dbstatus|dbstep|dbstop|dbtype|dbup|dde23|ddeget|ddesd|ddeset|deal|deblank|dec2base|dec2bin|dec2hex|decic|deconv|del2|delaunay|delaunay3|delaunayn|DelaunayTri|delete|demo|depdir|depfun|det|detrend|deval|diag|dialog|diary|diff|diffuse|dir|disp|display|dither|divergence|dlmread|dlmwrite|dmperm|doc|docsearch|dos|dot|dragrect|drawnow|dsearch|dsearchn|dynamicprops|echo|echodemo|edit|eig|eigs|ellipj|ellipke|ellipsoid|empty|enableNETfromNetworkDrive|enableservice|EndInvoke|enumeration|eomday|eq|erf|erfc|erfcinv|erfcx|erfinv|error|errorbar|errordlg|etime|etree|etreeplot|eval|evalc|evalin|event.(?:EventData|listener|PropertyEvent|proplistener)|exifread|exist|exit|exp|expint|expm|expm1|export2wsdlg|eye|ezcontour|ezcontourf|ezmesh|ezmeshc|ezplot|ezplot3|ezpolar|ezsurf|ezsurfc|factor|factorial|fclose|feather|feature|feof|ferror|feval|fft|fft2|fftn|fftshift|fftw|fgetl|fgets|fieldnames|figure|figurepalette|fileattrib|filebrowser|filemarker|fileparts|fileread|filesep|fill|fill3|filter|filter2|find|findall|findfigs|findobj|findstr|finish|fitsdisp|fitsinfo|fitsread|fitswrite|fix|flag|flipdim|fliplr|flipud|floor|flow|fminbnd|fminsearch|fopen|format|fplot|fprintf|frame2im|fread|freqspace|frewind|fscanf|fseek|ftell|FTP|full|fullfile|func2str|functions|funm|fwrite|fzero|gallery|gamma|gammainc|gammaincinv|gammaln|gca|gcbf|gcbo|gcd|gcf|gco|ge|genpath|genvarname|get|getappdata|getenv|getfield|getframe|getpixelposition|getpref|ginput|gmres|gplot|grabcode|gradient|gray|graymon|grid|griddata(?:3|n)?|griddedInterpolant|gsvd|gt|gtext|guidata|guide|guihandles|gunzip|gzip|h5create|h5disp|h5info|h5read|h5readatt|h5write|h5writeatt|hadamard|handle|hankel|hdf|hdf5|hdf5info|hdf5read|hdf5write|hdfinfo|hdfread|hdftool|help|helpbrowser|helpdesk|helpdlg|helpwin|hess|hex2dec|hex2num|hgexport|hggroup|hgload|hgsave|hgsetget|hgtransform|hidden|hilb|hist|histc|hold|home|horzcat|hostid|hot|hsv|hsv2rgb|hypot|ichol|idivide|ifft|ifft2|ifftn|ifftshift|ilu|im2frame|im2java|imag|image|imagesc|imapprox|imfinfo|imformats|import|importdata|imread|imwrite|ind2rgb|ind2sub|inferiorto|info|inline|inmem|inpolygon|input|inputdlg|inputname|inputParser|inspect|instrcallback|instrfind|instrfindall|int2str|integral(?:2|3)?|interp(?:1|1q|2|3|ft|n)|interpstreamspeed|intersect|intmax|intmin|inv|invhilb|ipermute|isa|isappdata|iscell|iscellstr|ischar|iscolumn|isdir|isempty|isequal|isequaln|isequalwithequalnans|isfield|isfinite|isfloat|isglobal|ishandle|ishghandle|ishold|isinf|isinteger|isjava|iskeyword|isletter|islogical|ismac|ismatrix|ismember|ismethod|isnan|isnumeric|isobject|isocaps|isocolors|isonormals|isosurface|ispc|ispref|isprime|isprop|isreal|isrow|isscalar|issorted|isspace|issparse|isstr|isstrprop|isstruct|isstudent|isunix|isvarname|isvector|javaaddpath|javaArray|javachk|javaclasspath|javacomponent|javaMethod|javaMethodEDT|javaObject|javaObjectEDT|javarmpath|jet|keyboard|kron|lasterr|lasterror|lastwarn|lcm|ldivide|ldl|le|legend|legendre|length|libfunctions|libfunctionsview|libisloaded|libpointer|libstruct|license|light|lightangle|lighting|lin2mu|line|lines|linkaxes|linkdata|linkprop|linsolve|linspace|listdlg|listfonts|load|loadlibrary|loadobj|log|log10|log1p|log2|loglog|logm|logspace|lookfor|lower|ls|lscov|lsqnonneg|lsqr|lt|lu|luinc|magic|makehgtform|mat2cell|mat2str|material|matfile|matlab.io.MatFile|matlab.mixin.(?:Copyable|Heterogeneous(?:.getDefaultScalarElement)?)|matlabrc|matlabroot|max|maxNumCompThreads|mean|median|membrane|memmapfile|memory|menu|mesh|meshc|meshgrid|meshz|meta.(?:class(?:.fromName)?|DynamicProperty|EnumeratedValue|event|MetaData|method|package(?:.(?:fromName|getAllPackages))?|property)|metaclass|methods|methodsview|mex(?:.getCompilerConfigurations)?|MException|mexext|mfilename|min|minres|minus|mislocked|mkdir|mkpp|mldivide|mlint|mlintrpt|mlock|mmfileinfo|mmreader|mod|mode|more|move|movefile|movegui|movie|movie2avi|mpower|mrdivide|msgbox|mtimes|mu2lin|multibandread|multibandwrite|munlock|namelengthmax|nargchk|narginchk|nargoutchk|native2unicode|nccreate|ncdisp|nchoosek|ncinfo|ncread|ncreadatt|ncwrite|ncwriteatt|ncwriteschema|ndgrid|ndims|ne|NET(?:.(?:addAssembly|Assembly|convertArray|createArray|createGeneric|disableAutoRelease|enableAutoRelease|GenericClass|invokeGenericMethod|NetException|setStaticProperty))?|netcdf.(?:abort|close|copyAtt|create|defDim|defGrp|defVar|defVarChunking|defVarDeflate|defVarFill|defVarFletcher32|delAtt|endDef|getAtt|getChunkCache|getConstant|getConstantNames|getVar|inq|inqAtt|inqAttID|inqAttName|inqDim|inqDimID|inqDimIDs|inqFormat|inqGrpName|inqGrpNameFull|inqGrpParent|inqGrps|inqLibVers|inqNcid|inqUnlimDims|inqVar|inqVarChunking|inqVarDeflate|inqVarFill|inqVarFletcher32|inqVarID|inqVarIDs|open|putAtt|putVar|reDef|renameAtt|renameDim|renameVar|setChunkCache|setDefaultFormat|setFill|sync)|newplot|nextpow2|nnz|noanimate|nonzeros|norm|normest|not|notebook|now|nthroot|null|num2cell|num2hex|num2str|numel|nzmax|ode(?:113|15i|15s|23|23s|23t|23tb|45)|odeget|odeset|odextend|onCleanup|ones|open|openfig|opengl|openvar|optimget|optimset|or|ordeig|orderfields|ordqz|ordschur|orient|orth|pack|padecoef|pagesetupdlg|pan|pareto|parseSoapResponse|pascal|patch|path|path2rc|pathsep|pathtool|pause|pbaspect|pcg|pchip|pcode|pcolor|pdepe|pdeval|peaks|perl|perms|permute|pie|pink|pinv|planerot|playshow|plot|plot3|plotbrowser|plotedit|plotmatrix|plottools|plotyy|plus|pol2cart|polar|poly|polyarea|polyder|polyeig|polyfit|polyint|polyval|polyvalm|pow2|power|ppval|prefdir|preferences|primes|print|printdlg|printopt|printpreview|prod|profile|profsave|propedit|propertyeditor|psi|publish|PutCharArray|PutFullMatrix|PutWorkspaceData|pwd|qhull|qmr|qr|qrdelete|qrinsert|qrupdate|quad|quad2d|quadgk|quadl|quadv|questdlg|quit|quiver|quiver3|qz|rand|randi|randn|randperm|RandStream(?:.(?:create|getDefaultStream|getGlobalStream|list|setDefaultStream|setGlobalStream))?|rank|rat|rats|rbbox|rcond|rdivide|readasync|real|reallog|realmax|realmin|realpow|realsqrt|record|rectangle|rectint|recycle|reducepatch|reducevolume|refresh|refreshdata|regexp|regexpi|regexprep|regexptranslate|rehash|rem|Remove|RemoveAll|repmat|reset|reshape|residue|restoredefaultpath|rethrow|rgb2hsv|rgb2ind|rgbplot|ribbon|rmappdata|rmdir|rmfield|rmpath|rmpref|rng|roots|rose|rosser|rot90|rotate|rotate3d|round|rref|rsf2csf|run|save|saveas|saveobj|savepath|scatter|scatter3|schur|sec|secd|sech|selectmoveresize|semilogx|semilogy|sendmail|serial|set|setappdata|setdiff|setenv|setfield|setpixelposition|setpref|setstr|setxor|shading|shg|shiftdim|showplottool|shrinkfaces|sign|sin(?:d|h)?|size|slice|smooth3|snapnow|sort|sortrows|sound|soundsc|spalloc|spaugment|spconvert|spdiags|specular|speye|spfun|sph2cart|sphere|spinmap|spline|spones|spparms|sprand|sprandn|sprandsym|sprank|spring|sprintf|spy|sqrt|sqrtm|squeeze|ss2tf|sscanf|stairs|startup|std|stem|stem3|stopasync|str2double|str2func|str2mat|str2num|strcat|strcmp|strcmpi|stream2|stream3|streamline|streamparticles|streamribbon|streamslice|streamtube|strfind|strjust|strmatch|strncmp|strncmpi|strread|strrep|strtok|strtrim|struct2cell|structfun|strvcat|sub2ind|subplot|subsasgn|subsindex|subspace|subsref|substruct|subvolume|sum|summer|superclasses|superiorto|support|surf|surf2patch|surface|surfc|surfl|surfnorm|svd|svds|swapbytes|symamd|symbfact|symmlq|symrcm|symvar|system|tan(?:d|h)?|tar|tempdir|tempname|tetramesh|texlabel|text|textread|textscan|textwrap|tfqmr|throw|tic|Tiff(?:.(?:getTagNames|getVersion))?|timer|timerfind|timerfindall|times|timeseries|title|toc|todatenum|toeplitz|toolboxdir|trace|transpose|trapz|treelayout|treeplot|tril|trimesh|triplequad|triplot|TriRep|TriScatteredInterp|trisurf|triu|tscollection|tsearch|tsearchn|tstool|type|typecast|uibuttongroup|uicontextmenu|uicontrol|uigetdir|uigetfile|uigetpref|uiimport|uimenu|uiopen|uipanel|uipushtool|uiputfile|uiresume|uisave|uisetcolor|uisetfont|uisetpref|uistack|uitable|uitoggletool|uitoolbar|uiwait|uminus|undocheckout|unicode2native|union|unique|unix|unloadlibrary|unmesh|unmkpp|untar|unwrap|unzip|uplus|upper|urlread|urlwrite|usejava|userpath|validateattributes|validatestring|vander|var|vectorize|ver|verctrl|verLessThan|version|vertcat|VideoReader(?:.isPlatformSupported)?|VideoWriter(?:.getProfiles)?|view|viewmtx|visdiff|volumebounds|voronoi|voronoin|wait|waitbar|waitfor|waitforbuttonpress|warndlg|warning|waterfall|wavfinfo|wavplay|wavread|wavrecord|wavwrite|web|weekday|what|whatsnew|which|whitebg|who|whos|wilkinson|winopen|winqueryreg|winter|wk1finfo|wk1read|wk1write|workspace|xlabel|xlim|xlsfinfo|xlsread|xlswrite|xmlread|xmlwrite|xor|xslt|ylabel|ylim|zeros|zip|zlabel|zlim|zoom"].join("|"),
d = ["addedvarplot|andrewsplot|anova(?:1|2|n)|ansaribradley|aoctool|barttest|bbdesign|beta(?:cdf|fit|inv|like|pdf|rnd|stat)|bino(?:cdf|fit|inv|pdf|rnd|stat)|biplot|bootci|bootstrp|boxplot|candexch|candgen|canoncorr|capability|capaplot|caseread|casewrite|categorical|ccdesign|cdfplot|chi2(?:cdf|gof|inv|pdf|rnd|stat)|cholcov|Classification(?:BaggedEnsemble|Discriminant(?:.(?:fit|make|template))?|Ensemble|KNN(?:.(?:fit|template))?|PartitionedEnsemble|PartitionedModel|Tree(?:.(?:fit|template))?)|classify|classregtree|cluster|clusterdata|cmdscale|combnk|Compact(?:Classification(?:Discriminant|Ensemble|Tree)|Regression(?:Ensemble|Tree)|TreeBagger)|confusionmat|controlchart|controlrules|cophenet|copula(?:cdf|fit|param|pdf|rnd|stat)|cordexch|corr|corrcov|coxphfit|createns|crosstab|crossval|cvpartition|datasample|dataset|daugment|dcovary|dendrogram|dfittool|disttool|dummyvar|dwtest|ecdf|ecdfhist|ev(?:cdf|fit|inv|like|pdf|rnd|stat)|ExhaustiveSearcher|exp(?:cdf|fit|inv|like|pdf|rnd|stat)|factoran|fcdf|ff2n|finv|fitdist|fitensemble|fpdf|fracfact|fracfactgen|friedman|frnd|fstat|fsurfht|fullfact|gagerr|gam(?:cdf|fit|inv|like|pdf|rnd|stat)|GeneralizedLinearModel(?:.fit)?|geo(?:cdf|inv|mean|pdf|rnd|stat)|gev(?:cdf|fit|inv|like|pdf|rnd|stat)|gline|glmfit|glmval|glyphplot|gmdistribution(?:.fit)?|gname|gp(?:cdf|fit|inv|like|pdf|rnd|stat)|gplotmatrix|grp2idx|grpstats|gscatter|haltonset|harmmean|hist3|histfit|hmm(?:decode|estimate|generate|train|viterbi)|hougen|hyge(?:cdf|inv|pdf|rnd|stat)|icdf|inconsistent|interactionplot|invpred|iqr|iwishrnd|jackknife|jbtest|johnsrnd|KDTreeSearcher|kmeans|knnsearch|kruskalwallis|ksdensity|kstest|kstest2|kurtosis|lasso|lassoglm|lassoPlot|leverage|lhsdesign|lhsnorm|lillietest|LinearModel(?:.fit)?|linhyptest|linkage|logn(?:cdf|fit|inv|like|pdf|rnd|stat)|lsline|mad|mahal|maineffectsplot|manova1|manovacluster|mdscale|mhsample|mle|mlecov|mnpdf|mnrfit|mnrnd|mnrval|moment|multcompare|multivarichart|mvn(?:cdf|pdf|rnd)|mvregress|mvregresslike|mvt(?:cdf|pdf|rnd)|NaiveBayes(?:.fit)?|nan(?:cov|max|mean|median|min|std|sum|var)|nbin(?:cdf|fit|inv|pdf|rnd|stat)|ncf(?:cdf|inv|pdf|rnd|stat)|nct(?:cdf|inv|pdf|rnd|stat)|ncx2(?:cdf|inv|pdf|rnd|stat)|NeighborSearcher|nlinfit|nlintool|nlmefit|nlmefitsa|nlparci|nlpredci|nnmf|nominal|NonLinearModel(?:.fit)?|norm(?:cdf|fit|inv|like|pdf|rnd|stat)|normplot|normspec|ordinal|outlierMeasure|parallelcoords|paretotails|partialcorr|pcacov|pcares|pdf|pdist|pdist2|pearsrnd|perfcurve|perms|piecewisedistribution|plsregress|poiss(?:cdf|fit|inv|pdf|rnd|tat)|polyconf|polytool|prctile|princomp|ProbDist(?:Kernel|Parametric|UnivKernel|UnivParam)?|probplot|procrustes|qqplot|qrandset|qrandstream|quantile|randg|random|randsample|randtool|range|rangesearch|ranksum|rayl(?:cdf|fit|inv|pdf|rnd|stat)|rcoplot|refcurve|refline|regress|Regression(?:BaggedEnsemble|Ensemble|PartitionedEnsemble|PartitionedModel|Tree(?:.(?:fit|template))?)|regstats|relieff|ridge|robustdemo|robustfit|rotatefactors|rowexch|rsmdemo|rstool|runstest|sampsizepwr|scatterhist|sequentialfs|signrank|signtest|silhouette|skewness|slicesample|sobolset|squareform|statget|statset|stepwise|stepwisefit|surfht|tabulate|tblread|tblwrite|tcdf|tdfread|tiedrank|tinv|tpdf|TreeBagger|treedisp|treefit|treeprune|treetest|treeval|trimmean|trnd|tstat|ttest|ttest2|unid(?:cdf|inv|pdf|rnd|stat)|unif(?:cdf|inv|it|pdf|rnd|stat)|vartest(?:2|n)?|wbl(?:cdf|fit|inv|like|pdf|rnd|stat)|wblplot|wishrnd|x2fx|xptread|zscore|ztest"].join("|"),
h = ["adapthisteq|analyze75info|analyze75read|applycform|applylut|axes2pix|bestblk|blockproc|bwarea|bwareaopen|bwboundaries|bwconncomp|bwconvhull|bwdist|bwdistgeodesic|bweuler|bwhitmiss|bwlabel|bwlabeln|bwmorph|bwpack|bwperim|bwselect|bwtraceboundary|bwulterode|bwunpack|checkerboard|col2im|colfilt|conndef|convmtx2|corner|cornermetric|corr2|cp2tform|cpcorr|cpselect|cpstruct2pairs|dct2|dctmtx|deconvblind|deconvlucy|deconvreg|deconvwnr|decorrstretch|demosaic|dicom(?:anon|dict|info|lookup|read|uid|write)|edge|edgetaper|entropy|entropyfilt|fan2para|fanbeam|findbounds|fliptform|freqz2|fsamp2|fspecial|ftrans2|fwind1|fwind2|getheight|getimage|getimagemodel|getline|getneighbors|getnhood|getpts|getrangefromclass|getrect|getsequence|gray2ind|graycomatrix|graycoprops|graydist|grayslice|graythresh|hdrread|hdrwrite|histeq|hough|houghlines|houghpeaks|iccfind|iccread|iccroot|iccwrite|idct2|ifanbeam|im2bw|im2col|im2double|im2int16|im2java2d|im2single|im2uint16|im2uint8|imabsdiff|imadd|imadjust|ImageAdapter|imageinfo|imagemodel|imapplymatrix|imattributes|imbothat|imclearborder|imclose|imcolormaptool|imcomplement|imcontour|imcontrast|imcrop|imdilate|imdisplayrange|imdistline|imdivide|imellipse|imerode|imextendedmax|imextendedmin|imfill|imfilter|imfindcircles|imfreehand|imfuse|imgca|imgcf|imgetfile|imhandles|imhist|imhmax|imhmin|imimposemin|imlincomb|imline|immagbox|immovie|immultiply|imnoise|imopen|imoverview|imoverviewpanel|impixel|impixelinfo|impixelinfoval|impixelregion|impixelregionpanel|implay|impoint|impoly|impositionrect|improfile|imputfile|impyramid|imreconstruct|imrect|imregconfig|imregionalmax|imregionalmin|imregister|imresize|imroi|imrotate|imsave|imscrollpanel|imshow|imshowpair|imsubtract|imtool|imtophat|imtransform|imview|ind2gray|ind2rgb|interfileinfo|interfileread|intlut|ippl|iptaddcallback|iptcheckconn|iptcheckhandle|iptcheckinput|iptcheckmap|iptchecknargin|iptcheckstrs|iptdemos|iptgetapi|iptGetPointerBehavior|iptgetpref|ipticondir|iptnum2ordinal|iptPointerManager|iptprefs|iptremovecallback|iptSetPointerBehavior|iptsetpref|iptwindowalign|iradon|isbw|isflat|isgray|isicc|isind|isnitf|isrgb|isrset|lab2double|lab2uint16|lab2uint8|label2rgb|labelmatrix|makecform|makeConstrainToRectFcn|makehdr|makelut|makeresampler|maketform|mat2gray|mean2|medfilt2|montage|nitfinfo|nitfread|nlfilter|normxcorr2|ntsc2rgb|openrset|ordfilt2|otf2psf|padarray|para2fan|phantom|poly2mask|psf2otf|qtdecomp|qtgetblk|qtsetblk|radon|rangefilt|reflect|regionprops|registration.metric.(?:MattesMutualInformation|MeanSquares)|registration.optimizer.(?:OnePlusOneEvolutionary|RegularStepGradientDescent)|rgb2gray|rgb2ntsc|rgb2ycbcr|roicolor|roifill|roifilt2|roipoly|rsetwrite|std2|stdfilt|strel|stretchlim|subimage|tformarray|tformfwd|tforminv|tonemap|translate|truesize|uintlut|viscircles|warp|watershed|whitepoint|wiener2|xyz2double|xyz2uint16|ycbcr2rgb"].join("|"),
f = ["bintprog|color|fgoalattain|fminbnd|fmincon|fminimax|fminsearch|fminunc|fseminf|fsolve|fzero|fzmult|gangstr|ktrlink|linprog|lsqcurvefit|lsqlin|lsqnonlin|lsqnonneg|optimget|optimset|optimtool|quadprog"].join("|"),
m = [
[t.PR_PLAIN, /^[ \t\r\n\v\f\xA0]+/, null, " \r\n \f\xa0"],
[t.PR_COMMENT, /^%\{[^%]*%+(?:[^\}%][^%]*%+)*\}/, null],
[t.PR_COMMENT, /^%[^\r\n]*/, null, "%"],
[i, /^![^\r\n]*/, null, "!"]
],
g = [
[c, /^\.\.\.\s*[\r\n]/, null],
[a, /^\?\?\? [^\r\n]*/, null],
[u, /^Warning: [^\r\n]*/, null],
[s, /^>>\s+/, null],
[s, /^octave:\d+>\s+/, null],
["lang-matlab-operators", /^((?:[a-zA-Z][a-zA-Z0-9_]*(?:\.[a-zA-Z][a-zA-Z0-9_]*)*|\)|\]|\}|\.)')/, null],
["lang-matlab-identifiers", /^([a-zA-Z][a-zA-Z0-9_]*(?:\.[a-zA-Z][a-zA-Z0-9_]*)*)(?!')/, null],
[t.PR_STRING, /^'(?:[^']|'')*'/, null],
[t.PR_LITERAL, /^[+\-]?\.?\d+(?:\.\d*)?(?:[Ee][+\-]?\d+)?[ij]?/, null],
[t.PR_TAG, /^(?:\{|\}|\(|\)|\[|\])/, null],
[t.PR_PUNCTUATION, /^(?:<|>|=|~|@|&|;|,|:|!|\-|\+|\*|\^|\.|\||\\|\/)/, null]
],
v = [
[t.PR_KEYWORD, /^\b(?:break|case|catch|classdef|continue|else|elseif|end|for|function|global|if|otherwise|parfor|persistent|return|spmd|switch|try|while)\b/, null],
[n, /^\b(?:true|false|inf|Inf|nan|NaN|eps|pi|ans|nargin|nargout|varargin|varargout)\b/, null],
[t.PR_TYPE, /^\b(?:cell|struct|char|double|single|logical|u?int(?:8|16|32|64)|sparse)\b/, null],
[r, new RegExp("^\\b(?:" + p + ")\\b"), null],
[o, new RegExp("^\\b(?:" + d + ")\\b"), null],
[o, new RegExp("^\\b(?:" + h + ")\\b"), null],
[o, new RegExp("^\\b(?:" + f + ")\\b"), null],
[e, /^[a-zA-Z][a-zA-Z0-9_]*(?:\.[a-zA-Z][a-zA-Z0-9_]*)*/, null]
],
y = [
["lang-matlab-identifiers", /^([a-zA-Z][a-zA-Z0-9_]*(?:\.[a-zA-Z][a-zA-Z0-9_]*)*)/, null],
[t.PR_TAG, /^(?:\{|\}|\(|\)|\[|\])/, null],
[t.PR_PUNCTUATION, /^(?:<|>|=|~|@|&|;|,|:|!|\-|\+|\*|\^|\.|\||\\|\/)/, null],
[l, /^'/, null]
];
t.registerLangHandler(t.createSimpleLexer([], v), ["matlab-identifiers"]), t.registerLangHandler(t.createSimpleLexer([], y), ["matlab-operators"]), t.registerLangHandler(t.createSimpleLexer(m, g), ["matlab"])
}(window.PR), // Copyright (C) 2008 Google Inc.
PR.registerLangHandler(PR.createSimpleLexer([
[PR.PR_PLAIN, /^[\t\n\r \xA0]+/, null, " \n\r \xa0"],
[PR.PR_COMMENT, /^#(?:if[\t\n\r \xA0]+(?:[a-z_$][\w\']*|``[^\r\n\t`]*(?:``|$))|else|endif|light)/i, null, "#"],
[PR.PR_STRING, /^(?:\"(?:[^\"\\]|\\[\s\S])*(?:\"|$)|\'(?:[^\'\\]|\\[\s\S])(?:\'|$))/, null, "\"'"]
], [
[PR.PR_COMMENT, /^(?:\/\/[^\r\n]*|\(\*[\s\S]*?\*\))/],
[PR.PR_KEYWORD, /^(?:abstract|and|as|assert|begin|class|default|delegate|do|done|downcast|downto|elif|else|end|exception|extern|false|finally|for|fun|function|if|in|inherit|inline|interface|internal|lazy|let|match|member|module|mutable|namespace|new|null|of|open|or|override|private|public|rec|return|static|struct|then|to|true|try|type|upcast|use|val|void|when|while|with|yield|asr|land|lor|lsl|lsr|lxor|mod|sig|atomic|break|checked|component|const|constraint|constructor|continue|eager|event|external|fixed|functor|global|include|method|mixin|object|parallel|process|protected|pure|sealed|trait|virtual|volatile)\b/],
[PR.PR_LITERAL, /^[+\-]?(?:0x[\da-f]+|(?:(?:\.\d+|\d+(?:\.\d*)?)(?:e[+\-]?\d+)?))/i],
[PR.PR_PLAIN, /^(?:[a-z_][\w']*[!?#]?|``[^\r\n\t`]*(?:``|$))/i],
[PR.PR_PUNCTUATION, /^[^\t\n\r \xA0\"\'\w]+/]
]), ["fs", "ml"]), // Copyright (C) 2011 Kitware Inc.
function () {
var t = "B|BREAK|C|CLOSE|D|DO|E|ELSE|F|FOR|G|GOTO|H|HALT|H|HANG|I|IF|J|JOB|K|KILL|L|LOCK|M|MERGE|N|NEW|O|OPEN|Q|QUIT|R|READ|S|SET|TC|TCOMMIT|TRE|TRESTART|TRO|TROLLBACK|TS|TSTART|U|USE|V|VIEW|W|WRITE|X|XECUTE",
e = "D|DEVICE|EC|ECODE|ES|ESTACK|ET|ETRAP|H|HOROLOG|I|IO|J|JOB|K|KEY|P|PRINCIPAL|Q|QUIT|ST|STACK|S|STORAGE|SY|SYSTEM|T|TEST|TL|TLEVEL|TR|TRESTART|X|Y|Z[A-Z]*|",
n = "A|ASCII|C|CHAR|D|DATA|E|EXTRACT|F|FIND|FN|FNUMBER|G|GET|J|JUSTIFY|L|LENGTH|NA|NAME|O|ORDER|P|PIECE|QL|QLENGTH|QS|QSUBSCRIPT|Q|QUERY|R|RANDOM|RE|REVERSE|S|SELECT|ST|STACK|T|TEXT|TR|TRANSLATE|NaN",
r = e + n,
o = [
[PR.PR_PLAIN, /^[\t\n\r \xA0]+/, null, " \n\r \xa0"],
[PR.PR_STRING, /^(?:"(?:[^"]|\\.)*")/, null, '"']
],
i = [
[PR.PR_COMMENT, /^;[^\r\n]*/, null, ";"],
[PR.PR_DECLARATION, new RegExp("^(?:\\$(?:" + r + "))\\b", "i"), null],
[PR.PR_KEYWORD, new RegExp("^(?:[^\\$]" + t + ")\\b", "i"), null],
[PR.PR_LITERAL, /^[+-]?(?:(?:\.\d+|\d+(?:\.\d*)?)(?:E[+\-]?\d+)?)/i],
[PR.PR_PLAIN, /^[a-z][a-zA-Z0-9]*/i],
[PR.PR_PUNCTUATION, /^[^\w\t\n\r\xA0\"\$;%\^]|_/]
];
PR.registerLangHandler(PR.createSimpleLexer(o, i), ["mumps"])
}(), // Copyright (C) 2011 Zimin A.V.
function () {
var t = "abstract|and|as|base|catch|class|def|delegate|enum|event|extern|false|finally|fun|implements|interface|internal|is|macro|match|matches|module|mutable|namespace|new|null|out|override|params|partial|private|protected|public|ref|sealed|static|struct|syntax|this|throw|true|try|type|typeof|using|variant|virtual|volatile|when|where|with|assert|assert2|async|break|checked|continue|do|else|ensures|for|foreach|if|late|lock|new|nolate|otherwise|regexp|repeat|requires|return|surroundwith|unchecked|unless|using|while|yield";
PR.registerLangHandler(PR.createSimpleLexer([
[PR.PR_STRING, /^(?:\'(?:[^\\\'\r\n]|\\.)*\'|\"(?:[^\\\"\r\n]|\\.)*(?:\"|$))/, null, '"'],
[PR.PR_COMMENT, /^#(?:(?:define|elif|else|endif|error|ifdef|include|ifndef|line|pragma|undef|warning)\b|[^\r\n]*)/, null, "#"],
[PR.PR_PLAIN, /^\s+/, null, " \r\n \xa0"]
], [
[PR.PR_STRING, /^@\"(?:[^\"]|\"\")*(?:\"|$)/, null],
[PR.PR_STRING, /^<#(?:[^#>])*(?:#>|$)/, null],
[PR.PR_STRING, /^<(?:(?:(?:\.\.\/)*|\/?)(?:[\w-]+(?:\/[\w-]+)+)?[\w-]+\.h|[a-z]\w*)>/, null],
[PR.PR_COMMENT, /^\/\/[^\r\n]*/, null],
[PR.PR_COMMENT, /^\/\*[\s\S]*?(?:\*\/|$)/, null],
[PR.PR_KEYWORD, new RegExp("^(?:" + t + ")\\b"), null],
[PR.PR_TYPE, /^(?:array|bool|byte|char|decimal|double|float|int|list|long|object|sbyte|short|string|ulong|uint|ufloat|ulong|ushort|void)\b/, null],
[PR.PR_LITERAL, /^@[a-z_$][a-z_$@0-9]*/i, null],
[PR.PR_TYPE, /^@[A-Z]+[a-z][A-Za-z_$@0-9]*/, null],
[PR.PR_PLAIN, /^'?[A-Za-z_$][a-z_$@0-9]*/i, null],
[PR.PR_LITERAL, new RegExp("^(?:0x[a-f0-9]+|(?:\\d(?:_\\d+)*\\d*(?:\\.\\d*)?|\\.\\d\\+)(?:e[+\\-]?\\d+)?)[a-z]*", "i"), null, "0123456789"],
[PR.PR_PUNCTUATION, /^.[^\s\w\.$@\'\"\`\/\#]*/, null]
]), ["n", "nemerle"])
}(), PR.registerLangHandler(PR.createSimpleLexer([
[PR.PR_STRING, /^(?:\'(?:[^\\\'\r\n]|\\.)*(?:\'|$))/, null, "'"],
[PR.PR_PLAIN, /^\s+/, null, " \r\n \xa0"]
], [
[PR.PR_COMMENT, /^\(\*[\s\S]*?(?:\*\)|$)|^\{[\s\S]*?(?:\}|$)/, null],
[PR.PR_KEYWORD, /^(?:ABSOLUTE|AND|ARRAY|ASM|ASSEMBLER|BEGIN|CASE|CONST|CONSTRUCTOR|DESTRUCTOR|DIV|DO|DOWNTO|ELSE|END|EXTERNAL|FOR|FORWARD|FUNCTION|GOTO|IF|IMPLEMENTATION|IN|INLINE|INTERFACE|INTERRUPT|LABEL|MOD|NOT|OBJECT|OF|OR|PACKED|PROCEDURE|PROGRAM|RECORD|REPEAT|SET|SHL|SHR|THEN|TO|TYPE|UNIT|UNTIL|USES|VAR|VIRTUAL|WHILE|WITH|XOR)\b/i, null],
[PR.PR_LITERAL, /^(?:true|false|self|nil)/i, null],
[PR.PR_PLAIN, /^[a-z][a-z0-9]*/i, null],
[PR.PR_LITERAL, /^(?:\$[a-f0-9]+|(?:\d+(?:\.\d*)?|\.\d+)(?:e[+\-]?\d+)?)/i, null, "0123456789"],
[PR.PR_PUNCTUATION, /^.[^\s\w\.$@\'\/]*/, null]
]), ["pascal"]), // Copyright (C) 2006 Google Inc.
PR.registerLangHandler(PR.sourceDecorator({
keywords: "bytes,default,double,enum,extend,extensions,false,group,import,max,message,option,optional,package,repeated,required,returns,rpc,service,syntax,to,true",
types: /^(bool|(double|s?fixed|[su]?int)(32|64)|float|string)\b/,
cStyleComments: !0
}), ["proto"]), // Copyright (C) 2012 Jeffrey B. Arnold
PR.registerLangHandler(PR.createSimpleLexer([
[PR.PR_PLAIN, /^[\t\n\r \xA0]+/, null, " \n\r \xa0"],
[PR.PR_STRING, /^\"(?:[^\"\\]|\\[\s\S])*(?:\"|$)/, null, '"'],
[PR.PR_STRING, /^\'(?:[^\'\\]|\\[\s\S])*(?:\'|$)/, null, "'"]
], [
[PR.PR_COMMENT, /^#.*/],
[PR.PR_KEYWORD, /^(?:if|else|for|while|repeat|in|next|break|return|switch|function)(?![A-Za-z0-9_.])/],
[PR.PR_LITERAL, /^0[xX][a-fA-F0-9]+([pP][0-9]+)?[Li]?/],
[PR.PR_LITERAL, /^[+-]?([0-9]+(\.[0-9]+)?|\.[0-9]+)([eE][+-]?[0-9]+)?[Li]?/],
[PR.PR_LITERAL, /^(?:NULL|NA(?:_(?:integer|real|complex|character)_)?|Inf|TRUE|FALSE|NaN|\.\.(?:\.|[0-9]+))(?![A-Za-z0-9_.])/],
[PR.PR_PUNCTUATION, /^(?:<<?-|->>?|-|==|<=|>=|<|>|&&?|!=|\|\|?|\*|\+|\^|\/|!|%.*?%|=|~|\$|@|:{1,3}|[\[\](){};,?])/],
[PR.PR_PLAIN, /^(?:[A-Za-z]+[A-Za-z0-9_.]*|\.[a-zA-Z_][0-9a-zA-Z\._]*)(?![A-Za-z0-9_.])/],
[PR.PR_STRING, /^`.+`/]
]), ["r", "s", "R", "S", "Splus"]), // Copyright (C) 2012 Jeffrey Arnold
PR.registerLangHandler(PR.createSimpleLexer([
[PR.PR_PLAIN, /^[\t\n\r \xA0]+/, null, " \n\r \xa0"],
[PR.PR_COMMENT, /^%[^\r\n]*/, null, "%"]
], [
[PR.PR_LITERAL, /^\\(?:cr|l?dots|R|tab)\b/],
[PR.PR_KEYWORD, /^\\[a-zA-Z@]+/],
[PR.PR_KEYWORD, /^#(?:ifn?def|endif)/],
[PR.PR_PLAIN, /^\\[{}]/],
[PR.PR_PUNCTUATION, /^[{}()\[\]]+/]
]), ["Rd", "rd"]), // Copyright (C) 2010 Google Inc.
PR.registerLangHandler(PR.createSimpleLexer([
[PR.PR_PLAIN, /^[\t\n\r \xA0]+/, null, " \n\r \xa0"],
[PR.PR_STRING, /^(?:"(?:(?:""(?:""?(?!")|[^\\"]|\\.)*"{0,3})|(?:[^"\r\n\\]|\\.)*"?))/, null, '"'],
[PR.PR_LITERAL, /^`(?:[^\r\n\\`]|\\.)*`?/, null, "`"],
[PR.PR_PUNCTUATION, /^[!#%&()*+,\-:;<=>?@\[\\\]^{|}~]+/, null, "!#%&()*+,-:;<=>?@[\\]^{|}~"]
], [
[PR.PR_STRING, /^'(?:[^\r\n\\']|\\(?:'|[^\r\n']+))'/],
[PR.PR_LITERAL, /^'[a-zA-Z_$][\w$]*(?!['$\w])/],
[PR.PR_KEYWORD, /^(?:abstract|case|catch|class|def|do|else|extends|final|finally|for|forSome|if|implicit|import|lazy|match|new|object|override|package|private|protected|requires|return|sealed|super|throw|trait|try|type|val|var|while|with|yield)\b/],
[PR.PR_LITERAL, /^(?:true|false|null|this)\b/],
[PR.PR_LITERAL, /^(?:(?:0(?:[0-7]+|X[0-9A-F]+))L?|(?:(?:0|[1-9][0-9]*)(?:(?:\.[0-9]+)?(?:E[+\-]?[0-9]+)?F?|L?))|\\.[0-9]+(?:E[+\-]?[0-9]+)?F?)/i],
[PR.PR_TYPE, /^[$_]*[A-Z][_$A-Z0-9]*[a-z][\w$]*/],
[PR.PR_PLAIN, /^[$a-zA-Z_][\w$]*/],
[PR.PR_COMMENT, /^\/(?:\/.*|\*(?:\/|\**[^*/])*(?:\*+\/?)?)/],
[PR.PR_PUNCTUATION, /^(?:\.+|\/)/]
]), ["scala"]), // Copyright (C) 2008 Google Inc.
PR.registerLangHandler(PR.createSimpleLexer([
[PR.PR_PLAIN, /^[\t\n\r \xA0]+/, null, " \n\r \xa0"],
[PR.PR_STRING, /^(?:"(?:[^\"\\]|\\.)*"|'(?:[^\'\\]|\\.)*')/, null, "\"'"]
], [
[PR.PR_COMMENT, /^(?:--[^\r\n]*|\/\*[\s\S]*?(?:\*\/|$))/],
[PR.PR_KEYWORD, /^(?:ADD|ALL|ALTER|AND|ANY|APPLY|AS|ASC|AUTHORIZATION|BACKUP|BEGIN|BETWEEN|BREAK|BROWSE|BULK|BY|CASCADE|CASE|CHECK|CHECKPOINT|CLOSE|CLUSTERED|COALESCE|COLLATE|COLUMN|COMMIT|COMPUTE|CONNECT|CONSTRAINT|CONTAINS|CONTAINSTABLE|CONTINUE|CONVERT|CREATE|CROSS|CURRENT|CURRENT_DATE|CURRENT_TIME|CURRENT_TIMESTAMP|CURRENT_USER|CURSOR|DATABASE|DBCC|DEALLOCATE|DECLARE|DEFAULT|DELETE|DENY|DESC|DISK|DISTINCT|DISTRIBUTED|DOUBLE|DROP|DUMMY|DUMP|ELSE|END|ERRLVL|ESCAPE|EXCEPT|EXEC|EXECUTE|EXISTS|EXIT|FETCH|FILE|FILLFACTOR|FOLLOWING|FOR|FOREIGN|FREETEXT|FREETEXTTABLE|FROM|FULL|FUNCTION|GOTO|GRANT|GROUP|HAVING|HOLDLOCK|IDENTITY|IDENTITYCOL|IDENTITY_INSERT|IF|IN|INDEX|INNER|INSERT|INTERSECT|INTO|IS|JOIN|KEY|KILL|LEFT|LIKE|LINENO|LOAD|MATCH|MATCHED|MERGE|NATURAL|NATIONAL|NOCHECK|NONCLUSTERED|NOCYCLE|NOT|NULL|NULLIF|OF|OFF|OFFSETS|ON|OPEN|OPENDATASOURCE|OPENQUERY|OPENROWSET|OPENXML|OPTION|OR|ORDER|OUTER|OVER|PARTITION|PERCENT|PIVOT|PLAN|PRECEDING|PRECISION|PRIMARY|PRINT|PROC|PROCEDURE|PUBLIC|RAISERROR|READ|READTEXT|RECONFIGURE|REFERENCES|REPLICATION|RESTORE|RESTRICT|RETURN|REVOKE|RIGHT|ROLLBACK|ROWCOUNT|ROWGUIDCOL|ROWS?|RULE|SAVE|SCHEMA|SELECT|SESSION_USER|SET|SETUSER|SHUTDOWN|SOME|START|STATISTICS|SYSTEM_USER|TABLE|TEXTSIZE|THEN|TO|TOP|TRAN|TRANSACTION|TRIGGER|TRUNCATE|TSEQUAL|UNBOUNDED|UNION|UNIQUE|UNPIVOT|UPDATE|UPDATETEXT|USE|USER|USING|VALUES|VARYING|VIEW|WAITFOR|WHEN|WHERE|WHILE|WITH|WITHIN|WRITETEXT|XML)(?=[^\w-]|$)/i, null],
[PR.PR_LITERAL, /^[+-]?(?:0x[\da-f]+|(?:(?:\.\d+|\d+(?:\.\d*)?)(?:e[+\-]?\d+)?))/i],
[PR.PR_PLAIN, /^[a-z_][\w-]*/i],
[PR.PR_PUNCTUATION, /^[^\w\t\n\r \xA0\"\'][^\w\t\n\r \xA0+\-\"\']*/]
]), ["sql"]), // Copyright (C) 2012 Pyrios.
PR.registerLangHandler(PR.createSimpleLexer([
["opn", /^\{+/, null, "{"],
["clo", /^\}+/, null, "}"],
[PR.PR_COMMENT, /^#[^\r\n]*/, null, "#"],
[PR.PR_PLAIN, /^[\t\n\r \xA0]+/, null, " \n\r \xa0"],
[PR.PR_STRING, /^\"(?:[^\"\\]|\\[\s\S])*(?:\"|$)/, null, '"']
], [
[PR.PR_KEYWORD, /^(?:after|append|apply|array|break|case|catch|continue|error|eval|exec|exit|expr|for|foreach|if|incr|info|proc|return|set|switch|trace|uplevel|upvar|while)\b/, null],
[PR.PR_LITERAL, /^[+\-]?(?:[0#]x[0-9a-f]+|\d+\/\d+|(?:\.\d+|\d+(?:\.\d*)?)(?:[ed][+\-]?\d+)?)/i],
[PR.PR_LITERAL, /^\'(?:-*(?:\w|\\[\x21-\x7e])(?:[\w-]*|\\[\x21-\x7e])[=!?]?)?/],
[PR.PR_PLAIN, /^-*(?:[a-z_]|\\[\x21-\x7e])(?:[\w-]*|\\[\x21-\x7e])[=!?]?/i],
[PR.PR_PUNCTUATION, /^[^\w\t\n\r \xA0()\"\\\';]+/]
]), ["tcl"]), // Copyright (C) 2011 Martin S.
PR.registerLangHandler(PR.createSimpleLexer([
[PR.PR_PLAIN, /^[\t\n\r \xA0]+/, null, " \n\r \xa0"],
[PR.PR_COMMENT, /^%[^\r\n]*/, null, "%"]
], [
[PR.PR_KEYWORD, /^\\[a-zA-Z@]+/],
[PR.PR_KEYWORD, /^\\./],
[PR.PR_TYPE, /^[$&]/],
[PR.PR_LITERAL, /[+-]?(?:\.\d+|\d+(?:\.\d*)?)(cm|em|ex|in|pc|pt|bp|mm)/i],
[PR.PR_PUNCTUATION, /^[{}()\[\]=]+/]
]), ["latex", "tex"]), // Copyright (C) 2009 Google Inc.
PR.registerLangHandler(PR.createSimpleLexer([
[PR.PR_PLAIN, /^[\t\n\r \xA0\u2028\u2029]+/, null, " \n\r \xa0\u2028\u2029"],
[PR.PR_STRING, /^(?:[\"\u201C\u201D](?:[^\"\u201C\u201D]|[\"\u201C\u201D]{2})(?:[\"\u201C\u201D]c|$)|[\"\u201C\u201D](?:[^\"\u201C\u201D]|[\"\u201C\u201D]{2})*(?:[\"\u201C\u201D]|$))/i, null, '"\u201c\u201d'],
[PR.PR_COMMENT, /^[\'\u2018\u2019](?:_(?:\r\n?|[^\r]?)|[^\r\n_\u2028\u2029])*/, null, "'\u2018\u2019"]
], [
[PR.PR_KEYWORD, /^(?:AddHandler|AddressOf|Alias|And|AndAlso|Ansi|As|Assembly|Auto|Boolean|ByRef|Byte|ByVal|Call|Case|Catch|CBool|CByte|CChar|CDate|CDbl|CDec|Char|CInt|Class|CLng|CObj|Const|CShort|CSng|CStr|CType|Date|Decimal|Declare|Default|Delegate|Dim|DirectCast|Do|Double|Each|Else|ElseIf|End|EndIf|Enum|Erase|Error|Event|Exit|Finally|For|Friend|Function|Get|GetType|GoSub|GoTo|Handles|If|Implements|Imports|In|Inherits|Integer|Interface|Is|Let|Lib|Like|Long|Loop|Me|Mod|Module|MustInherit|MustOverride|MyBase|MyClass|Namespace|New|Next|Not|NotInheritable|NotOverridable|Object|On|Option|Optional|Or|OrElse|Overloads|Overridable|Overrides|ParamArray|Preserve|Private|Property|Protected|Public|RaiseEvent|ReadOnly|ReDim|RemoveHandler|Resume|Return|Select|Set|Shadows|Shared|Short|Single|Static|Step|Stop|String|Structure|Sub|SyncLock|Then|Throw|To|Try|TypeOf|Unicode|Until|Variant|Wend|When|While|With|WithEvents|WriteOnly|Xor|EndIf|GoSub|Let|Variant|Wend)\b/i, null],
[PR.PR_COMMENT, /^REM\b[^\r\n\u2028\u2029]*/i],
[PR.PR_LITERAL, /^(?:True\b|False\b|Nothing\b|\d+(?:E[+\-]?\d+[FRD]?|[FRDSIL])?|(?:&H[0-9A-F]+|&O[0-7]+)[SIL]?|\d*\.\d+(?:E[+\-]?\d+)?[FRD]?|#\s+(?:\d+[\-\/]\d+[\-\/]\d+(?:\s+\d+:\d+(?::\d+)?(\s*(?:AM|PM))?)?|\d+:\d+(?::\d+)?(\s*(?:AM|PM))?)\s+#)/i],
[PR.PR_PLAIN, /^(?:(?:[a-z]|_\w)\w*(?:\[[%&@!#]+\])?|\[(?:[a-z]|_\w)\w*\])/i],
[PR.PR_PUNCTUATION, /^[^\w\t\n\r \"\'\[\]\xA0\u2018\u2019\u201C\u201D\u2028\u2029]+/],
[PR.PR_PUNCTUATION, /^(?:\[|\])/]
]), ["vb", "vbs"]), PR.registerLangHandler(PR.createSimpleLexer([
[PR.PR_PLAIN, /^[\t\n\r \xA0]+/, null, " \n\r \xa0"]
], [
[PR.PR_STRING, /^(?:[BOX]?"(?:[^\"]|"")*"|'.')/i],
[PR.PR_COMMENT, /^--[^\r\n]*/],
[PR.PR_KEYWORD, /^(?:abs|access|after|alias|all|and|architecture|array|assert|attribute|begin|block|body|buffer|bus|case|component|configuration|constant|disconnect|downto|else|elsif|end|entity|exit|file|for|function|generate|generic|group|guarded|if|impure|in|inertial|inout|is|label|library|linkage|literal|loop|map|mod|nand|new|next|nor|not|null|of|on|open|or|others|out|package|port|postponed|procedure|process|pure|range|record|register|reject|rem|report|return|rol|ror|select|severity|shared|signal|sla|sll|sra|srl|subtype|then|to|transport|type|unaffected|units|until|use|variable|wait|when|while|with|xnor|xor)(?=[^\w-]|$)/i, null],
[PR.PR_TYPE, /^(?:bit|bit_vector|character|boolean|integer|real|time|string|severity_level|positive|natural|signed|unsigned|line|text|std_u?logic(?:_vector)?)(?=[^\w-]|$)/i, null],
[PR.PR_TYPE, /^\'(?:ACTIVE|ASCENDING|BASE|DELAYED|DRIVING|DRIVING_VALUE|EVENT|HIGH|IMAGE|INSTANCE_NAME|LAST_ACTIVE|LAST_EVENT|LAST_VALUE|LEFT|LEFTOF|LENGTH|LOW|PATH_NAME|POS|PRED|QUIET|RANGE|REVERSE_RANGE|RIGHT|RIGHTOF|SIMPLE_NAME|STABLE|SUCC|TRANSACTION|VAL|VALUE)(?=[^\w-]|$)/i, null],
[PR.PR_LITERAL, /^\d+(?:_\d+)*(?:#[\w\\.]+#(?:[+\-]?\d+(?:_\d+)*)?|(?:\.\d+(?:_\d+)*)?(?:E[+\-]?\d+(?:_\d+)*)?)/i],
[PR.PR_PLAIN, /^(?:[a-z]\w*|\\[^\\]*\\)/i],
[PR.PR_PUNCTUATION, /^[^\w\t\n\r \xA0\"\'][^\w\t\n\r \xA0\-\"\']*/]
]), ["vhdl", "vhd"]), // Copyright (C) 2009 Google Inc.
PR.registerLangHandler(PR.createSimpleLexer([
[PR.PR_PLAIN, /^[\t \xA0a-gi-z0-9]+/, null, " \xa0abcdefgijklmnopqrstuvwxyz0123456789"],
[PR.PR_PUNCTUATION, /^[=*~\^\[\]]+/, null, "=*~^[]"]
], [
["lang-wiki.meta", /(?:^^|\r\n?|\n)(#[a-z]+)\b/],
[PR.PR_LITERAL, /^(?:[A-Z][a-z][a-z0-9]+[A-Z][a-z][a-zA-Z0-9]+)\b/],
["lang-", /^\{\{\{([\s\S]+?)\}\}\}/],
["lang-", /^`([^\r\n`]+)`/],
[PR.PR_STRING, /^https?:\/\/[^\/?#\s]*(?:\/[^?#\s]*)?(?:\?[^#\s]*)?(?:#\S*)?/i],
[PR.PR_PLAIN, /^(?:\r\n|[\s\S])[^#=*~^A-Zh\{`\[\r\n]*/]
]), ["wiki"]), PR.registerLangHandler(PR.createSimpleLexer([
[PR.PR_KEYWORD, /^#[a-z]+/i, null, "#"]
], []), ["wiki.meta"]); // Copyright (C) 2011 Patrick Wied
var PR_FUNCTION = "fun pln",
PR_VARIABLE = "var pln";
PR.registerLangHandler(PR.createSimpleLexer([
[PR_VARIABLE, /^\$[A-Za-z0-9_\-]+/, null, "$"]
], [
[PR.PR_PLAIN, /^[\s=][<>][\s=]/],
[PR.PR_LITERAL, /^\@[\w-]+/],
[PR.PR_TAG, /^<\/?[a-z](?:[\w.:-]*\w)?|\/?>$/i],
[PR.PR_COMMENT, /^\(:[\s\S]*?:\)/],
[PR.PR_PLAIN, /^[\/\{\};,\[\]\(\)]$/],
[PR.PR_STRING, /^(?:\"(?:[^\"\\\{]|\\[\s\S])*(?:\"|$)|\'(?:[^\'\\\{]|\\[\s\S])*(?:\'|$))/, null, "\"'"],
[PR.PR_KEYWORD, /^(?:xquery|where|version|variable|union|typeswitch|treat|to|then|text|stable|sortby|some|self|schema|satisfies|returns|return|ref|processing-instruction|preceding-sibling|preceding|precedes|parent|only|of|node|namespace|module|let|item|intersect|instance|in|import|if|function|for|follows|following-sibling|following|external|except|every|else|element|descending|descendant-or-self|descendant|define|default|declare|comment|child|cast|case|before|attribute|assert|ascending|as|ancestor-or-self|ancestor|after|eq|order|by|or|and|schema-element|document-node|node|at)\b/],
[PR.PR_TYPE, /^(?:xs:yearMonthDuration|xs:unsignedLong|xs:time|xs:string|xs:short|xs:QName|xs:Name|xs:long|xs:integer|xs:int|xs:gYearMonth|xs:gYear|xs:gMonthDay|xs:gDay|xs:float|xs:duration|xs:double|xs:decimal|xs:dayTimeDuration|xs:dateTime|xs:date|xs:byte|xs:boolean|xs:anyURI|xf:yearMonthDuration)\b/, null],
[PR_FUNCTION, /^(?:xp:dereference|xinc:node-expand|xinc:link-references|xinc:link-expand|xhtml:restructure|xhtml:clean|xhtml:add-lists|xdmp:zip-manifest|xdmp:zip-get|xdmp:zip-create|xdmp:xquery-version|xdmp:word-convert|xdmp:with-namespaces|xdmp:version|xdmp:value|xdmp:user-roles|xdmp:user-last-login|xdmp:user|xdmp:url-encode|xdmp:url-decode|xdmp:uri-is-file|xdmp:uri-format|xdmp:uri-content-type|xdmp:unquote|xdmp:unpath|xdmp:triggers-database|xdmp:trace|xdmp:to-json|xdmp:tidy|xdmp:subbinary|xdmp:strftime|xdmp:spawn-in|xdmp:spawn|xdmp:sleep|xdmp:shutdown|xdmp:set-session-field|xdmp:set-response-encoding|xdmp:set-response-content-type|xdmp:set-response-code|xdmp:set-request-time-limit|xdmp:set|xdmp:servers|xdmp:server-status|xdmp:server-name|xdmp:server|xdmp:security-database|xdmp:security-assert|xdmp:schema-database|xdmp:save|xdmp:role-roles|xdmp:role|xdmp:rethrow|xdmp:restart|xdmp:request-timestamp|xdmp:request-status|xdmp:request-cancel|xdmp:request|xdmp:redirect-response|xdmp:random|xdmp:quote|xdmp:query-trace|xdmp:query-meters|xdmp:product-edition|xdmp:privilege-roles|xdmp:privilege|xdmp:pretty-print|xdmp:powerpoint-convert|xdmp:platform|xdmp:permission|xdmp:pdf-convert|xdmp:path|xdmp:octal-to-integer|xdmp:node-uri|xdmp:node-replace|xdmp:node-kind|xdmp:node-insert-child|xdmp:node-insert-before|xdmp:node-insert-after|xdmp:node-delete|xdmp:node-database|xdmp:mul64|xdmp:modules-root|xdmp:modules-database|xdmp:merging|xdmp:merge-cancel|xdmp:merge|xdmp:md5|xdmp:logout|xdmp:login|xdmp:log-level|xdmp:log|xdmp:lock-release|xdmp:lock-acquire|xdmp:load|xdmp:invoke-in|xdmp:invoke|xdmp:integer-to-octal|xdmp:integer-to-hex|xdmp:http-put|xdmp:http-post|xdmp:http-options|xdmp:http-head|xdmp:http-get|xdmp:http-delete|xdmp:hosts|xdmp:host-status|xdmp:host-name|xdmp:host|xdmp:hex-to-integer|xdmp:hash64|xdmp:hash32|xdmp:has-privilege|xdmp:groups|xdmp:group-serves|xdmp:group-servers|xdmp:group-name|xdmp:group-hosts|xdmp:group|xdmp:get-session-field-names|xdmp:get-session-field|xdmp:get-response-encoding|xdmp:get-response-code|xdmp:get-request-username|xdmp:get-request-user|xdmp:get-request-url|xdmp:get-request-protocol|xdmp:get-request-path|xdmp:get-request-method|xdmp:get-request-header-names|xdmp:get-request-header|xdmp:get-request-field-names|xdmp:get-request-field-filename|xdmp:get-request-field-content-type|xdmp:get-request-field|xdmp:get-request-client-certificate|xdmp:get-request-client-address|xdmp:get-request-body|xdmp:get-current-user|xdmp:get-current-roles|xdmp:get|xdmp:function-name|xdmp:function-module|xdmp:function|xdmp:from-json|xdmp:forests|xdmp:forest-status|xdmp:forest-restore|xdmp:forest-restart|xdmp:forest-name|xdmp:forest-delete|xdmp:forest-databases|xdmp:forest-counts|xdmp:forest-clear|xdmp:forest-backup|xdmp:forest|xdmp:filesystem-file|xdmp:filesystem-directory|xdmp:exists|xdmp:excel-convert|xdmp:eval-in|xdmp:eval|xdmp:estimate|xdmp:email|xdmp:element-content-type|xdmp:elapsed-time|xdmp:document-set-quality|xdmp:document-set-property|xdmp:document-set-properties|xdmp:document-set-permissions|xdmp:document-set-collections|xdmp:document-remove-properties|xdmp:document-remove-permissions|xdmp:document-remove-collections|xdmp:document-properties|xdmp:document-locks|xdmp:document-load|xdmp:document-insert|xdmp:document-get-quality|xdmp:document-get-properties|xdmp:document-get-permissions|xdmp:document-get-collections|xdmp:document-get|xdmp:document-forest|xdmp:document-delete|xdmp:document-add-properties|xdmp:document-add-permissions|xdmp:document-add-collections|xdmp:directory-properties|xdmp:directory-locks|xdmp:directory-delete|xdmp:directory-create|xdmp:directory|xdmp:diacritic-less|xdmp:describe|xdmp:default-permissions|xdmp:default-collections|xdmp:databases|xdmp:database-restore-validate|xdmp:database-restore-status|xdmp:database-restore-cancel|xdmp:database-restore|xdmp:database-name|xdmp:database-forests|xdmp:database-backup-validate|xdmp:database-backup-status|xdmp:database-backup-purge|xdmp:database-backup-cancel|xdmp:database-backup|xdmp:database|xdmp:collection-properties|xdmp:collection-locks|xdmp:collection-delete|xdmp:collation-canonical-uri|xdmp:castable-as|xdmp:can-grant-roles|xdmp:base64-encode|xdmp:base64-decode|xdmp:architecture|xdmp:apply|xdmp:amp-roles|xdmp:amp|xdmp:add64|xdmp:add-response-header|xdmp:access|trgr:trigger-set-recursive|trgr:trigger-set-permissions|trgr:trigger-set-name|trgr:trigger-set-module|trgr:trigger-set-event|trgr:trigger-set-description|trgr:trigger-remove-permissions|trgr:trigger-module|trgr:trigger-get-permissions|trgr:trigger-enable|trgr:trigger-disable|trgr:trigger-database-online-event|trgr:trigger-data-event|trgr:trigger-add-permissions|trgr:remove-trigger|trgr:property-content|trgr:pre-commit|trgr:post-commit|trgr:get-trigger-by-id|trgr:get-trigger|trgr:document-scope|trgr:document-content|trgr:directory-scope|trgr:create-trigger|trgr:collection-scope|trgr:any-property-content|thsr:set-entry|thsr:remove-term|thsr:remove-synonym|thsr:remove-entry|thsr:query-lookup|thsr:lookup|thsr:load|thsr:insert|thsr:expand|thsr:add-synonym|spell:suggest-detailed|spell:suggest|spell:remove-word|spell:make-dictionary|spell:load|spell:levenshtein-distance|spell:is-correct|spell:insert|spell:double-metaphone|spell:add-word|sec:users-collection|sec:user-set-roles|sec:user-set-password|sec:user-set-name|sec:user-set-description|sec:user-set-default-permissions|sec:user-set-default-collections|sec:user-remove-roles|sec:user-privileges|sec:user-get-roles|sec:user-get-description|sec:user-get-default-permissions|sec:user-get-default-collections|sec:user-doc-permissions|sec:user-doc-collections|sec:user-add-roles|sec:unprotect-collection|sec:uid-for-name|sec:set-realm|sec:security-version|sec:security-namespace|sec:security-installed|sec:security-collection|sec:roles-collection|sec:role-set-roles|sec:role-set-name|sec:role-set-description|sec:role-set-default-permissions|sec:role-set-default-collections|sec:role-remove-roles|sec:role-privileges|sec:role-get-roles|sec:role-get-description|sec:role-get-default-permissions|sec:role-get-default-collections|sec:role-doc-permissions|sec:role-doc-collections|sec:role-add-roles|sec:remove-user|sec:remove-role-from-users|sec:remove-role-from-role|sec:remove-role-from-privileges|sec:remove-role-from-amps|sec:remove-role|sec:remove-privilege|sec:remove-amp|sec:protect-collection|sec:privileges-collection|sec:privilege-set-roles|sec:privilege-set-name|sec:privilege-remove-roles|sec:privilege-get-roles|sec:privilege-add-roles|sec:priv-doc-permissions|sec:priv-doc-collections|sec:get-user-names|sec:get-unique-elem-id|sec:get-role-names|sec:get-role-ids|sec:get-privilege|sec:get-distinct-permissions|sec:get-collection|sec:get-amp|sec:create-user-with-role|sec:create-user|sec:create-role|sec:create-privilege|sec:create-amp|sec:collections-collection|sec:collection-set-permissions|sec:collection-remove-permissions|sec:collection-get-permissions|sec:collection-add-permissions|sec:check-admin|sec:amps-collection|sec:amp-set-roles|sec:amp-remove-roles|sec:amp-get-roles|sec:amp-doc-permissions|sec:amp-doc-collections|sec:amp-add-roles|search:unparse|search:suggest|search:snippet|search:search|search:resolve-nodes|search:resolve|search:remove-constraint|search:parse|search:get-default-options|search:estimate|search:check-options|prof:value|prof:reset|prof:report|prof:invoke|prof:eval|prof:enable|prof:disable|prof:allowed|ppt:clean|pki:template-set-request|pki:template-set-name|pki:template-set-key-type|pki:template-set-key-options|pki:template-set-description|pki:template-in-use|pki:template-get-version|pki:template-get-request|pki:template-get-name|pki:template-get-key-type|pki:template-get-key-options|pki:template-get-id|pki:template-get-description|pki:need-certificate|pki:is-temporary|pki:insert-trusted-certificates|pki:insert-template|pki:insert-signed-certificates|pki:insert-certificate-revocation-list|pki:get-trusted-certificate-ids|pki:get-template-ids|pki:get-template-certificate-authority|pki:get-template-by-name|pki:get-template|pki:get-pending-certificate-requests-xml|pki:get-pending-certificate-requests-pem|pki:get-pending-certificate-request|pki:get-certificates-for-template-xml|pki:get-certificates-for-template|pki:get-certificates|pki:get-certificate-xml|pki:get-certificate-pem|pki:get-certificate|pki:generate-temporary-certificate-if-necessary|pki:generate-temporary-certificate|pki:generate-template-certificate-authority|pki:generate-certificate-request|pki:delete-template|pki:delete-certificate|pki:create-template|pdf:make-toc|pdf:insert-toc-headers|pdf:get-toc|pdf:clean|p:status-transition|p:state-transition|p:remove|p:pipelines|p:insert|p:get-by-id|p:get|p:execute|p:create|p:condition|p:collection|p:action|ooxml:runs-merge|ooxml:package-uris|ooxml:package-parts-insert|ooxml:package-parts|msword:clean|mcgm:polygon|mcgm:point|mcgm:geospatial-query-from-elements|mcgm:geospatial-query|mcgm:circle|math:tanh|math:tan|math:sqrt|math:sinh|math:sin|math:pow|math:modf|math:log10|math:log|math:ldexp|math:frexp|math:fmod|math:floor|math:fabs|math:exp|math:cosh|math:cos|math:ceil|math:atan2|math:atan|math:asin|math:acos|map:put|map:map|map:keys|map:get|map:delete|map:count|map:clear|lnk:to|lnk:remove|lnk:insert|lnk:get|lnk:from|lnk:create|kml:polygon|kml:point|kml:interior-polygon|kml:geospatial-query-from-elements|kml:geospatial-query|kml:circle|kml:box|gml:polygon|gml:point|gml:interior-polygon|gml:geospatial-query-from-elements|gml:geospatial-query|gml:circle|gml:box|georss:point|georss:geospatial-query|georss:circle|geo:polygon|geo:point|geo:interior-polygon|geo:geospatial-query-from-elements|geo:geospatial-query|geo:circle|geo:box|fn:zero-or-one|fn:years-from-duration|fn:year-from-dateTime|fn:year-from-date|fn:upper-case|fn:unordered|fn:true|fn:translate|fn:trace|fn:tokenize|fn:timezone-from-time|fn:timezone-from-dateTime|fn:timezone-from-date|fn:sum|fn:subtract-dateTimes-yielding-yearMonthDuration|fn:subtract-dateTimes-yielding-dayTimeDuration|fn:substring-before|fn:substring-after|fn:substring|fn:subsequence|fn:string-to-codepoints|fn:string-pad|fn:string-length|fn:string-join|fn:string|fn:static-base-uri|fn:starts-with|fn:seconds-from-time|fn:seconds-from-duration|fn:seconds-from-dateTime|fn:round-half-to-even|fn:round|fn:root|fn:reverse|fn:resolve-uri|fn:resolve-QName|fn:replace|fn:remove|fn:QName|fn:prefix-from-QName|fn:position|fn:one-or-more|fn:number|fn:not|fn:normalize-unicode|fn:normalize-space|fn:node-name|fn:node-kind|fn:nilled|fn:namespace-uri-from-QName|fn:namespace-uri-for-prefix|fn:namespace-uri|fn:name|fn:months-from-duration|fn:month-from-dateTime|fn:month-from-date|fn:minutes-from-time|fn:minutes-from-duration|fn:minutes-from-dateTime|fn:min|fn:max|fn:matches|fn:lower-case|fn:local-name-from-QName|fn:local-name|fn:last|fn:lang|fn:iri-to-uri|fn:insert-before|fn:index-of|fn:in-scope-prefixes|fn:implicit-timezone|fn:idref|fn:id|fn:hours-from-time|fn:hours-from-duration|fn:hours-from-dateTime|fn:floor|fn:false|fn:expanded-QName|fn:exists|fn:exactly-one|fn:escape-uri|fn:escape-html-uri|fn:error|fn:ends-with|fn:encode-for-uri|fn:empty|fn:document-uri|fn:doc-available|fn:doc|fn:distinct-values|fn:distinct-nodes|fn:default-collation|fn:deep-equal|fn:days-from-duration|fn:day-from-dateTime|fn:day-from-date|fn:data|fn:current-time|fn:current-dateTime|fn:current-date|fn:count|fn:contains|fn:concat|fn:compare|fn:collection|fn:codepoints-to-string|fn:codepoint-equal|fn:ceiling|fn:boolean|fn:base-uri|fn:avg|fn:adjust-time-to-timezone|fn:adjust-dateTime-to-timezone|fn:adjust-date-to-timezone|fn:abs|feed:unsubscribe|feed:subscription|feed:subscribe|feed:request|feed:item|feed:description|excel:clean|entity:enrich|dom:set-pipelines|dom:set-permissions|dom:set-name|dom:set-evaluation-context|dom:set-domain-scope|dom:set-description|dom:remove-pipeline|dom:remove-permissions|dom:remove|dom:get|dom:evaluation-context|dom:domains|dom:domain-scope|dom:create|dom:configuration-set-restart-user|dom:configuration-set-permissions|dom:configuration-set-evaluation-context|dom:configuration-set-default-domain|dom:configuration-get|dom:configuration-create|dom:collection|dom:add-pipeline|dom:add-permissions|dls:retention-rules|dls:retention-rule-remove|dls:retention-rule-insert|dls:retention-rule|dls:purge|dls:node-expand|dls:link-references|dls:link-expand|dls:documents-query|dls:document-versions-query|dls:document-version-uri|dls:document-version-query|dls:document-version-delete|dls:document-version-as-of|dls:document-version|dls:document-update|dls:document-unmanage|dls:document-set-quality|dls:document-set-property|dls:document-set-properties|dls:document-set-permissions|dls:document-set-collections|dls:document-retention-rules|dls:document-remove-properties|dls:document-remove-permissions|dls:document-remove-collections|dls:document-purge|dls:document-manage|dls:document-is-managed|dls:document-insert-and-manage|dls:document-include-query|dls:document-history|dls:document-get-permissions|dls:document-extract-part|dls:document-delete|dls:document-checkout-status|dls:document-checkout|dls:document-checkin|dls:document-add-properties|dls:document-add-permissions|dls:document-add-collections|dls:break-checkout|dls:author-query|dls:as-of-query|dbk:convert|dbg:wait|dbg:value|dbg:stopped|dbg:stop|dbg:step|dbg:status|dbg:stack|dbg:out|dbg:next|dbg:line|dbg:invoke|dbg:function|dbg:finish|dbg:expr|dbg:eval|dbg:disconnect|dbg:detach|dbg:continue|dbg:connect|dbg:clear|dbg:breakpoints|dbg:break|dbg:attached|dbg:attach|cvt:save-converted-documents|cvt:part-uri|cvt:destination-uri|cvt:basepath|cvt:basename|cts:words|cts:word-query-weight|cts:word-query-text|cts:word-query-options|cts:word-query|cts:word-match|cts:walk|cts:uris|cts:uri-match|cts:train|cts:tokenize|cts:thresholds|cts:stem|cts:similar-query-weight|cts:similar-query-nodes|cts:similar-query|cts:shortest-distance|cts:search|cts:score|cts:reverse-query-weight|cts:reverse-query-nodes|cts:reverse-query|cts:remainder|cts:registered-query-weight|cts:registered-query-options|cts:registered-query-ids|cts:registered-query|cts:register|cts:query|cts:quality|cts:properties-query-query|cts:properties-query|cts:polygon-vertices|cts:polygon|cts:point-longitude|cts:point-latitude|cts:point|cts:or-query-queries|cts:or-query|cts:not-query-weight|cts:not-query-query|cts:not-query|cts:near-query-weight|cts:near-query-queries|cts:near-query-options|cts:near-query-distance|cts:near-query|cts:highlight|cts:geospatial-co-occurrences|cts:frequency|cts:fitness|cts:field-words|cts:field-word-query-weight|cts:field-word-query-text|cts:field-word-query-options|cts:field-word-query-field-name|cts:field-word-query|cts:field-word-match|cts:entity-highlight|cts:element-words|cts:element-word-query-weight|cts:element-word-query-text|cts:element-word-query-options|cts:element-word-query-element-name|cts:element-word-query|cts:element-word-match|cts:element-values|cts:element-value-ranges|cts:element-value-query-weight|cts:element-value-query-text|cts:element-value-query-options|cts:element-value-query-element-name|cts:element-value-query|cts:element-value-match|cts:element-value-geospatial-co-occurrences|cts:element-value-co-occurrences|cts:element-range-query-weight|cts:element-range-query-value|cts:element-range-query-options|cts:element-range-query-operator|cts:element-range-query-element-name|cts:element-range-query|cts:element-query-query|cts:element-query-element-name|cts:element-query|cts:element-pair-geospatial-values|cts:element-pair-geospatial-value-match|cts:element-pair-geospatial-query-weight|cts:element-pair-geospatial-query-region|cts:element-pair-geospatial-query-options|cts:element-pair-geospatial-query-longitude-name|cts:element-pair-geospatial-query-latitude-name|cts:element-pair-geospatial-query-element-name|cts:element-pair-geospatial-query|cts:element-pair-geospatial-boxes|cts:element-geospatial-values|cts:element-geospatial-value-match|cts:element-geospatial-query-weight|cts:element-geospatial-query-region|cts:element-geospatial-query-options|cts:element-geospatial-query-element-name|cts:element-geospatial-query|cts:element-geospatial-boxes|cts:element-child-geospatial-values|cts:element-child-geospatial-value-match|cts:element-child-geospatial-query-weight|cts:element-child-geospatial-query-region|cts:element-child-geospatial-query-options|cts:element-child-geospatial-query-element-name|cts:element-child-geospatial-query-child-name|cts:element-child-geospatial-query|cts:element-child-geospatial-boxes|cts:element-attribute-words|cts:element-attribute-word-query-weight|cts:element-attribute-word-query-text|cts:element-attribute-word-query-options|cts:element-attribute-word-query-element-name|cts:element-attribute-word-query-attribute-name|cts:element-attribute-word-query|cts:element-attribute-word-match|cts:element-attribute-values|cts:element-attribute-value-ranges|cts:element-attribute-value-query-weight|cts:element-attribute-value-query-text|cts:element-attribute-value-query-options|cts:element-attribute-value-query-element-name|cts:element-attribute-value-query-attribute-name|cts:element-attribute-value-query|cts:element-attribute-value-match|cts:element-attribute-value-geospatial-co-occurrences|cts:element-attribute-value-co-occurrences|cts:element-attribute-range-query-weight|cts:element-attribute-range-query-value|cts:element-attribute-range-query-options|cts:element-attribute-range-query-operator|cts:element-attribute-range-query-element-name|cts:element-attribute-range-query-attribute-name|cts:element-attribute-range-query|cts:element-attribute-pair-geospatial-values|cts:element-attribute-pair-geospatial-value-match|cts:element-attribute-pair-geospatial-query-weight|cts:element-attribute-pair-geospatial-query-region|cts:element-attribute-pair-geospatial-query-options|cts:element-attribute-pair-geospatial-query-longitude-name|cts:element-attribute-pair-geospatial-query-latitude-name|cts:element-attribute-pair-geospatial-query-element-name|cts:element-attribute-pair-geospatial-query|cts:element-attribute-pair-geospatial-boxes|cts:document-query-uris|cts:document-query|cts:distance|cts:directory-query-uris|cts:directory-query-depth|cts:directory-query|cts:destination|cts:deregister|cts:contains|cts:confidence|cts:collections|cts:collection-query-uris|cts:collection-query|cts:collection-match|cts:classify|cts:circle-radius|cts:circle-center|cts:circle|cts:box-west|cts:box-south|cts:box-north|cts:box-east|cts:box|cts:bearing|cts:arc-intersection|cts:and-query-queries|cts:and-query-options|cts:and-query|cts:and-not-query-positive-query|cts:and-not-query-negative-query|cts:and-not-query|css:get|css:convert|cpf:success|cpf:failure|cpf:document-set-state|cpf:document-set-processing-status|cpf:document-set-last-updated|cpf:document-set-error|cpf:document-get-state|cpf:document-get-processing-status|cpf:document-get-last-updated|cpf:document-get-error|cpf:check-transition|alert:spawn-matching-actions|alert:rule-user-id-query|alert:rule-set-user-id|alert:rule-set-query|alert:rule-set-options|alert:rule-set-name|alert:rule-set-description|alert:rule-set-action|alert:rule-remove|alert:rule-name-query|alert:rule-insert|alert:rule-id-query|alert:rule-get-user-id|alert:rule-get-query|alert:rule-get-options|alert:rule-get-name|alert:rule-get-id|alert:rule-get-description|alert:rule-get-action|alert:rule-action-query|alert:remove-triggers|alert:make-rule|alert:make-log-action|alert:make-config|alert:make-action|alert:invoke-matching-actions|alert:get-my-rules|alert:get-all-rules|alert:get-actions|alert:find-matching-rules|alert:create-triggers|alert:config-set-uri|alert:config-set-trigger-ids|alert:config-set-options|alert:config-set-name|alert:config-set-description|alert:config-set-cpf-domain-names|alert:config-set-cpf-domain-ids|alert:config-insert|alert:config-get-uri|alert:config-get-trigger-ids|alert:config-get-options|alert:config-get-name|alert:config-get-id|alert:config-get-description|alert:config-get-cpf-domain-names|alert:config-get-cpf-domain-ids|alert:config-get|alert:config-delete|alert:action-set-options|alert:action-set-name|alert:action-set-module-root|alert:action-set-module-db|alert:action-set-module|alert:action-set-description|alert:action-remove|alert:action-insert|alert:action-get-options|alert:action-get-name|alert:action-get-module-root|alert:action-get-module-db|alert:action-get-module|alert:action-get-description|zero-or-one|years-from-duration|year-from-dateTime|year-from-date|upper-case|unordered|true|translate|trace|tokenize|timezone-from-time|timezone-from-dateTime|timezone-from-date|sum|subtract-dateTimes-yielding-yearMonthDuration|subtract-dateTimes-yielding-dayTimeDuration|substring-before|substring-after|substring|subsequence|string-to-codepoints|string-pad|string-length|string-join|string|static-base-uri|starts-with|seconds-from-time|seconds-from-duration|seconds-from-dateTime|round-half-to-even|round|root|reverse|resolve-uri|resolve-QName|replace|remove|QName|prefix-from-QName|position|one-or-more|number|not|normalize-unicode|normalize-space|node-name|node-kind|nilled|namespace-uri-from-QName|namespace-uri-for-prefix|namespace-uri|name|months-from-duration|month-from-dateTime|month-from-date|minutes-from-time|minutes-from-duration|minutes-from-dateTime|min|max|matches|lower-case|local-name-from-QName|local-name|last|lang|iri-to-uri|insert-before|index-of|in-scope-prefixes|implicit-timezone|idref|id|hours-from-time|hours-from-duration|hours-from-dateTime|floor|false|expanded-QName|exists|exactly-one|escape-uri|escape-html-uri|error|ends-with|encode-for-uri|empty|document-uri|doc-available|doc|distinct-values|distinct-nodes|default-collation|deep-equal|days-from-duration|day-from-dateTime|day-from-date|data|current-time|current-dateTime|current-date|count|contains|concat|compare|collection|codepoints-to-string|codepoint-equal|ceiling|boolean|base-uri|avg|adjust-time-to-timezone|adjust-dateTime-to-timezone|adjust-date-to-timezone|abs)\b/],
[PR.PR_PLAIN, /^[A-Za-z0-9_\-\:]+/],
[PR.PR_PLAIN, /^[\t\n\r \xA0]+/]
]), ["xq", "xquery"]), PR.registerLangHandler(PR.createSimpleLexer([
[PR.PR_PUNCTUATION, /^[:|>?]+/, null, ":|>?"],
[PR.PR_DECLARATION, /^%(?:YAML|TAG)[^#\r\n]+/, null, "%"],
[PR.PR_TYPE, /^[&]\S+/, null, "&"],
[PR.PR_TYPE, /^!\S*/, null, "!"],
[PR.PR_STRING, /^"(?:[^\\"]|\\.)*(?:"|$)/, null, '"'],
[PR.PR_STRING, /^'(?:[^']|'')*(?:'|$)/, null, "'"],
[PR.PR_COMMENT, /^#[^\r\n]*/, null, "#"],
[PR.PR_PLAIN, /^\s+/, null, " \r\n"]
], [
[PR.PR_DECLARATION, /^(?:---|\.\.\.)(?:[\r\n]|$)/],
[PR.PR_PUNCTUATION, /^-/],
[PR.PR_KEYWORD, /^\w+:[ \r\n]/],
[PR.PR_PLAIN, /^\w+/]
]), ["yaml", "yml"]),
/*!
* jQuery UI Widget 1.10.4+amd
* https://github.com/blueimp/jQuery-File-Upload
*
* Copyright 2014 jQuery Foundation and other contributors
* Released under the MIT license.
* http://jquery.org/license
*
* http://api.jqueryui.com/jQuery.widget/
*/
function (t) {
"function" == typeof define && define.amd ? define(["jquery"], t) : t(jQuery)
}(function (t, e) {
var n = 0,
r = Array.prototype.slice,
o = t.cleanData;
t.cleanData = function (e) {
for (var n, r = 0; null != (n = e[r]); r++) try {
t(n).triggerHandler("remove")
} catch (i) {}
o(e)
}, t.widget = function (e, n, r) {
var o, i, s, a, u = {},
l = e.split(".")[0];
e = e.split(".")[1], o = l + "-" + e, r || (r = n, n = t.Widget), t.expr[":"][o.toLowerCase()] = function (e) {
return !!t.data(e, o)
}, t[l] = t[l] || {}, i = t[l][e], s = t[l][e] = function (t, e) {
return this._createWidget ? void(arguments.length && this._createWidget(t, e)) : new s(t, e)
}, t.extend(s, i, {
version: r.version,
_proto: t.extend({}, r),
_childConstructors: []
}), a = new n, a.options = t.widget.extend({}, a.options), t.each(r, function (e, r) {
return t.isFunction(r) ? void(u[e] = function () {
var t = function () {
return n.prototype[e].apply(this, arguments)
},
o = function (t) {
return n.prototype[e].apply(this, t)
};
return function () {
var e, n = this._super,
i = this._superApply;
return this._super = t, this._superApply = o, e = r.apply(this, arguments), this._super = n, this._superApply = i, e
}
}()) : void(u[e] = r)
}), s.prototype = t.widget.extend(a, {
widgetEventPrefix: i ? a.widgetEventPrefix || e : e
}, u, {
constructor: s,
namespace: l,
widgetName: e,
widgetFullName: o
}), i ? (t.each(i._childConstructors, function (e, n) {
var r = n.prototype;
t.widget(r.namespace + "." + r.widgetName, s, n._proto)
}), delete i._childConstructors) : n._childConstructors.push(s), t.widget.bridge(e, s)
}, t.widget.extend = function (n) {
for (var o, i, s = r.call(arguments, 1), a = 0, u = s.length; u > a; a++)
for (o in s[a]) i = s[a][o], s[a].hasOwnProperty(o) && i !== e && (n[o] = t.isPlainObject(i) ? t.isPlainObject(n[o]) ? t.widget.extend({}, n[o], i) : t.widget.extend({}, i) : i);
return n
}, t.widget.bridge = function (n, o) {
var i = o.prototype.widgetFullName || n;
t.fn[n] = function (s) {
var a = "string" == typeof s,
u = r.call(arguments, 1),
l = this;
return s = !a && u.length ? t.widget.extend.apply(null, [s].concat(u)) : s, this.each(a ? function () {
var r, o = t.data(this, i);
return o ? t.isFunction(o[s]) && "_" !== s.charAt(0) ? (r = o[s].apply(o, u), r !== o && r !== e ? (l = r && r.jquery ? l.pushStack(r.get()) : r, !1) : void 0) : t.error("no such method '" + s + "' for " + n + " widget instance") : t.error("cannot call methods on " + n + " prior to initialization; attempted to call method '" + s + "'")
} : function () {
var e = t.data(this, i);
e ? e.option(s || {})._init() : t.data(this, i, new o(s, this))
}), l
}
}, t.Widget = function () {}, t.Widget._childConstructors = [], t.Widget.prototype = {
widgetName: "widget",
widgetEventPrefix: "",
defaultElement: "<div>",
options: {
disabled: !1,
create: null
},
_createWidget: function (e, r) {
r = t(r || this.defaultElement || this)[0], this.element = t(r), this.uuid = n++, this.eventNamespace = "." + this.widgetName + this.uuid, this.options = t.widget.extend({}, this.options, this._getCreateOptions(), e), this.bindings = t(), this.hoverable = t(), this.focusable = t(), r !== this && (t.data(r, this.widgetFullName, this), this._on(!0, this.element, {
remove: function (t) {
t.target === r && this.destroy()
}
}), this.document = t(r.style ? r.ownerDocument : r.document || r), this.window = t(this.document[0].defaultView || this.document[0].parentWindow)), this._create(), this._trigger("create", null, this._getCreateEventData()), this._init()
},
_getCreateOptions: t.noop,
_getCreateEventData: t.noop,
_create: t.noop,
_init: t.noop,
destroy: function () {
this._destroy(), this.element.unbind(this.eventNamespace).removeData(this.widgetName).removeData(this.widgetFullName).removeData(t.camelCase(this.widgetFullName)), this.widget().unbind(this.eventNamespace).removeAttr("aria-disabled").removeClass(this.widgetFullName + "-disabled ui-state-disabled"), this.bindings.unbind(this.eventNamespace), this.hoverable.removeClass("ui-state-hover"), this.focusable.removeClass("ui-state-focus")
},
_destroy: t.noop,
widget: function () {
return this.element
},
option: function (n, r) {
var o, i, s, a = n;
if (0 === arguments.length) return t.widget.extend({}, this.options);
if ("string" == typeof n)
if (a = {}, o = n.split("."), n = o.shift(), o.length) {
for (i = a[n] = t.widget.extend({}, this.options[n]), s = 0; s < o.length - 1; s++) i[o[s]] = i[o[s]] || {}, i = i[o[s]];
if (n = o.pop(), 1 === arguments.length) return i[n] === e ? null : i[n];
i[n] = r
} else {
if (1 === arguments.length) return this.options[n] === e ? null : this.options[n];
a[n] = r
}
return this._setOptions(a), this
},
_setOptions: function (t) {
var e;
for (e in t) this._setOption(e, t[e]);
return this
},
_setOption: function (t, e) {
return this.options[t] = e, "disabled" === t && (this.widget().toggleClass(this.widgetFullName + "-disabled ui-state-disabled", !!e).attr("aria-disabled", e), this.hoverable.removeClass("ui-state-hover"), this.focusable.removeClass("ui-state-focus")), this
},
enable: function () {
return this._setOption("disabled", !1)
},
disable: function () {
return this._setOption("disabled", !0)
},
_on: function (e, n, r) {
var o, i = this;
"boolean" != typeof e && (r = n, n = e, e = !1), r ? (n = o = t(n), this.bindings = this.bindings.add(n)) : (r = n, n = this.element, o = this.widget()), t.each(r, function (r, s) {
function a() {
return e || i.options.disabled !== !0 && !t(this).hasClass("ui-state-disabled") ? ("string" == typeof s ? i[s] : s).apply(i, arguments) : void 0
}
"string" != typeof s && (a.guid = s.guid = s.guid || a.guid || t.guid++);
var u = r.match(/^(\w+)\s*(.*)$/),
l = u[1] + i.eventNamespace,
c = u[2];
c ? o.delegate(c, l, a) : n.bind(l, a)
})
},
_off: function (t, e) {
e = (e || "").split(" ").join(this.eventNamespace + " ") + this.eventNamespace, t.unbind(e).undelegate(e)
},
_delay: function (t, e) {
function n() {
return ("string" == typeof t ? r[t] : t).apply(r, arguments)
}
var r = this;
return setTimeout(n, e || 0)
},
_hoverable: function (e) {
this.hoverable = this.hoverable.add(e), this._on(e, {
mouseenter: function (e) {
t(e.currentTarget).addClass("ui-state-hover")
},
mouseleave: function (e) {
t(e.currentTarget).removeClass("ui-state-hover")
}
})
},
_focusable: function (e) {
this.focusable = this.focusable.add(e), this._on(e, {
focusin: function (e) {
t(e.currentTarget).addClass("ui-state-focus")
},
focusout: function (e) {
t(e.currentTarget).removeClass("ui-state-focus")
}
})
},
_trigger: function (e, n, r) {
var o, i, s = this.options[e];
if (r = r || {}, n = t.Event(n), n.type = (e === this.widgetEventPrefix ? e : this.widgetEventPrefix + e).toLowerCase(), n.target = this.element[0], i = n.originalEvent)
for (o in i) o in n || (n[o] = i[o]);
return this.element.trigger(n, r), !(t.isFunction(s) && s.apply(this.element[0], [n].concat(r)) === !1 || n.isDefaultPrevented())
}
}, t.each({
show: "fadeIn",
hide: "fadeOut"
}, function (e, n) {
t.Widget.prototype["_" + e] = function (r, o, i) {
"string" == typeof o && (o = {
effect: o
});
var s, a = o ? o === !0 || "number" == typeof o ? n : o.effect || n : e;
o = o || {}, "number" == typeof o && (o = {
duration: o
}), s = !t.isEmptyObject(o), o.complete = i, o.delay && r.delay(o.delay), s && t.effects && t.effects.effect[a] ? r[e](o) : a !== e && r[a] ? r[a](o.duration, o.easing, i) : r.queue(function (n) {
t(this)[e](), i && i.call(r[0]), n()
})
}
})
}),
/*
* jQuery Iframe Transport Plugin 1.8.2
* https://github.com/blueimp/jQuery-File-Upload
*
* Copyright 2011, Sebastian Tschan
* https://blueimp.net
*
* Licensed under the MIT license:
* http://www.opensource.org/licenses/MIT
*/
function (t) {
"use strict";
"function" == typeof define && define.amd ? define(["jquery"], t) : t(window.jQuery)
}(function (t) {
"use strict";
var e = 0;
t.ajaxTransport("iframe", function (n) {
if (n.async) {
var r, o, i, s = n.initialIframeSrc || "javascript:false;";
return {
send: function (a, u) {
r = t('<form style="display:none;"></form>'), r.attr("accept-charset", n.formAcceptCharset), i = /\?/.test(n.url) ? "&" : "?", "DELETE" === n.type ? (n.url = n.url + i + "_method=DELETE", n.type = "POST") : "PUT" === n.type ? (n.url = n.url + i + "_method=PUT", n.type = "POST") : "PATCH" === n.type && (n.url = n.url + i + "_method=PATCH", n.type = "POST"), e += 1, o = t('<iframe src="' + s + '" name="iframe-transport-' + e + '"></iframe>').bind("load", function () {
var e, i = t.isArray(n.paramName) ? n.paramName : [n.paramName];
o.unbind("load").bind("load", function () {
var e;
try {
if (e = o.contents(), !e.length || !e[0].firstChild) throw new Error
} catch (n) {
e = void 0
}
u(200, "success", {
iframe: e
}), t('<iframe src="' + s + '"></iframe>').appendTo(r), window.setTimeout(function () {
r.remove()
}, 0)
}), r.prop("target", o.prop("name")).prop("action", n.url).prop("method", n.type), n.formData && t.each(n.formData, function (e, n) {
t('<input type="hidden"/>').prop("name", n.name).val(n.value).appendTo(r)
}), n.fileInput && n.fileInput.length && "POST" === n.type && (e = n.fileInput.clone(), n.fileInput.after(function (t) {
return e[t]
}), n.paramName && n.fileInput.each(function (e) {
t(this).prop("name", i[e] || n.paramName)
}), r.append(n.fileInput).prop("enctype", "multipart/form-data").prop("encoding", "multipart/form-data"), n.fileInput.removeAttr("form")), r.submit(), e && e.length && n.fileInput.each(function (n, r) {
var o = t(e[n]);
t(r).prop("name", o.prop("name")).attr("form", o.attr("form")), o.replaceWith(r)
})
}), r.append(o).appendTo(document.body)
},
abort: function () {
o && o.unbind("load").prop("src", s), r && r.remove()
}
}
}
}), t.ajaxSetup({
converters: {
"iframe text": function (e) {
return e && t(e[0].body).text()
},
"iframe json": function (e) {
return e && t.parseJSON(t(e[0].body).text())
},
"iframe html": function (e) {
return e && t(e[0].body).html()
},
"iframe xml": function (e) {
var n = e && e[0];
return n && t.isXMLDoc(n) ? n : t.parseXML(n.XMLDocument && n.XMLDocument.xml || t(n.body).html())
},
"iframe script": function (e) {
return e && t.globalEval(t(e[0].body).text())
}
}
})
}),
/*
* jQuery File Upload Plugin 5.40.1
* https://github.com/blueimp/jQuery-File-Upload
*
* Copyright 2010, Sebastian Tschan
* https://blueimp.net
*
* Licensed under the MIT license:
* http://www.opensource.org/licenses/MIT
*/
function (t) {
"use strict";
"function" == typeof define && define.amd ? define(["jquery", "jquery.ui.widget"], t) : t(window.jQuery)
}(function (t) {
"use strict";
t.support.fileInput = !(new RegExp("(Android (1\\.[0156]|2\\.[01]))|(Windows Phone (OS 7|8\\.0))|(XBLWP)|(ZuneWP)|(WPDesktop)|(w(eb)?OSBrowser)|(webOS)|(Kindle/(1\\.0|2\\.[05]|3\\.0))").test(window.navigator.userAgent) || t('<input type="file">').prop("disabled")), t.support.xhrFileUpload = !(!window.ProgressEvent || !window.FileReader), t.support.xhrFormDataFileUpload = !!window.FormData, t.support.blobSlice = window.Blob && (Blob.prototype.slice || Blob.prototype.webkitSlice || Blob.prototype.mozSlice), t.widget("blueimp.fileupload", {
options: {
dropZone: t(document),
pasteZone: t(document),
fileInput: void 0,
replaceFileInput: !0,
paramName: void 0,
singleFileUploads: !0,
limitMultiFileUploads: void 0,
limitMultiFileUploadSize: void 0,
limitMultiFileUploadSizeOverhead: 512,
sequentialUploads: !1,
limitConcurrentUploads: void 0,
forceIframeTransport: !1,
redirect: void 0,
redirectParamName: void 0,
postMessage: void 0,
multipart: !0,
maxChunkSize: void 0,
uploadedBytes: void 0,
recalculateProgress: !0,
progressInterval: 100,
bitrateInterval: 500,
autoUpload: !0,
messages: {
uploadedBytes: "Uploaded bytes exceed file size"
},
i18n: function (e, n) {
return e = this.messages[e] || e.toString(), n && t.each(n, function (t, n) {
e = e.replace("{" + t + "}", n)
}), e
},
formData: function (t) {
return t.serializeArray()
},
add: function (e, n) {
return e.isDefaultPrevented() ? !1 : void((n.autoUpload || n.autoUpload !== !1 && t(this).fileupload("option", "autoUpload")) && n.process().done(function () {
n.submit()
}))
},
processData: !1,
contentType: !1,
cache: !1
},
_specialOptions: ["fileInput", "dropZone", "pasteZone", "multipart", "forceIframeTransport"],
_blobSlice: t.support.blobSlice && function () {
var t = this.slice || this.webkitSlice || this.mozSlice;
return t.apply(this, arguments)
},
_BitrateTimer: function () {
this.timestamp = Date.now ? Date.now() : (new Date).getTime(), this.loaded = 0, this.bitrate = 0, this.getBitrate = function (t, e, n) {
var r = t - this.timestamp;
return (!this.bitrate || !n || r > n) && (this.bitrate = (e - this.loaded) * (1e3 / r) * 8, this.loaded = e, this.timestamp = t), this.bitrate
}
},
_isXHRUpload: function (e) {
return !e.forceIframeTransport && (!e.multipart && t.support.xhrFileUpload || t.support.xhrFormDataFileUpload)
},
_getFormData: function (e) {
var n;
return "function" === t.type(e.formData) ? e.formData(e.form) : t.isArray(e.formData) ? e.formData : "object" === t.type(e.formData) ? (n = [], t.each(e.formData, function (t, e) {
n.push({
name: t,
value: e
})
}), n) : []
},
_getTotal: function (e) {
var n = 0;
return t.each(e, function (t, e) {
n += e.size || 1
}), n
},
_initProgressObject: function (e) {
var n = {
loaded: 0,
total: 0,
bitrate: 0
};
e._progress ? t.extend(e._progress, n) : e._progress = n
},
_initResponseObject: function (t) {
var e;
if (t._response)
for (e in t._response) t._response.hasOwnProperty(e) && delete t._response[e];
else t._response = {}
},
_onProgress: function (e, n) {
if (e.lengthComputable) {
var r, o = Date.now ? Date.now() : (new Date).getTime();
if (n._time && n.progressInterval && o - n._time < n.progressInterval && e.loaded !== e.total) return;
n._time = o, r = Math.floor(e.loaded / e.total * (n.chunkSize || n._progress.total)) + (n.uploadedBytes || 0), this._progress.loaded += r - n._progress.loaded, this._progress.bitrate = this._bitrateTimer.getBitrate(o, this._progress.loaded, n.bitrateInterval), n._progress.loaded = n.loaded = r, n._progress.bitrate = n.bitrate = n._bitrateTimer.getBitrate(o, r, n.bitrateInterval), this._trigger("progress", t.Event("progress", {
delegatedEvent: e
}), n), this._trigger("progressall", t.Event("progressall", {
delegatedEvent: e
}), this._progress)
}
},
_initProgressListener: function (e) {
var n = this,
r = e.xhr ? e.xhr() : t.ajaxSettings.xhr();
r.upload && (t(r.upload).bind("progress", function (t) {
var r = t.originalEvent;
t.lengthComputable = r.lengthComputable, t.loaded = r.loaded, t.total = r.total, n._onProgress(t, e)
}), e.xhr = function () {
return r
})
},
_isInstanceOf: function (t, e) {
return Object.prototype.toString.call(e) === "[object " + t + "]"
},
_initXHRData: function (e) {
var n, r = this,
o = e.files[0],
i = e.multipart || !t.support.xhrFileUpload,
s = "array" === t.type(e.paramName) ? e.paramName[0] : e.paramName;
e.headers = t.extend({}, e.headers), e.contentRange && (e.headers["Content-Range"] = e.contentRange), i && !e.blob && this._isInstanceOf("File", o) || (e.headers["Content-Disposition"] = 'attachment; filename="' + encodeURI(o.name) + '"'), i ? t.support.xhrFormDataFileUpload && (e.postMessage ? (n = this._getFormData(e), e.blob ? n.push({
name: s,
value: e.blob
}) : t.each(e.files, function (r, o) {
n.push({
name: "array" === t.type(e.paramName) && e.paramName[r] || s,
value: o
})
})) : (r._isInstanceOf("FormData", e.formData) ? n = e.formData : (n = new FormData, t.each(this._getFormData(e), function (t, e) {
n.append(e.name, e.value)
})), e.blob ? n.append(s, e.blob, o.name) : t.each(e.files, function (o, i) {
(r._isInstanceOf("File", i) || r._isInstanceOf("Blob", i)) && n.append("array" === t.type(e.paramName) && e.paramName[o] || s, i, i.uploadName || i.name)
})), e.data = n) : (e.contentType = o.type || "application/octet-stream", e.data = e.blob || o), e.blob = null
},
_initIframeSettings: function (e) {
var n = t("<a></a>").prop("href", e.url).prop("host");
e.dataType = "iframe " + (e.dataType || ""), e.formData = this._getFormData(e), e.redirect && n && n !== location.host && e.formData.push({
name: e.redirectParamName || "redirect",
value: e.redirect
})
},
_initDataSettings: function (t) {
this._isXHRUpload(t) ? (this._chunkedUpload(t, !0) || (t.data || this._initXHRData(t), this._initProgressListener(t)), t.postMessage && (t.dataType = "postmessage " + (t.dataType || ""))) : this._initIframeSettings(t)
},
_getParamName: function (e) {
var n = t(e.fileInput),
r = e.paramName;
return r ? t.isArray(r) || (r = [r]) : (r = [], n.each(function () {
for (var e = t(this), n = e.prop("name") || "files[]", o = (e.prop("files") || [1]).length; o;) r.push(n), o -= 1
}), r.length || (r = [n.prop("name") || "files[]"])), r
},
_initFormSettings: function (e) {
e.form && e.form.length || (e.form = t(e.fileInput.prop("form")), e.form.length || (e.form = t(this.options.fileInput.prop("form")))), e.paramName = this._getParamName(e), e.url || (e.url = e.form.prop("action") || location.href), e.type = (e.type || "string" === t.type(e.form.prop("method")) && e.form.prop("method") || "").toUpperCase(), "POST" !== e.type && "PUT" !== e.type && "PATCH" !== e.type && (e.type = "POST"), e.formAcceptCharset || (e.formAcceptCharset = e.form.attr("accept-charset"))
},
_getAJAXSettings: function (e) {
var n = t.extend({}, this.options, e);
return this._initFormSettings(n), this._initDataSettings(n), n
},
_getDeferredState: function (t) {
return t.state ? t.state() : t.isResolved() ? "resolved" : t.isRejected() ? "rejected" : "pending"
},
_enhancePromise: function (t) {
return t.success = t.done, t.error = t.fail, t.complete = t.always, t
},
_getXHRPromise: function (e, n, r) {
var o = t.Deferred(),
i = o.promise();
return n = n || this.options.context || i, e === !0 ? o.resolveWith(n, r) : e === !1 && o.rejectWith(n, r), i.abort = o.promise, this._enhancePromise(i)
},
_addConvenienceMethods: function (e, n) {
var r = this,
o = function (e) {
return t.Deferred().resolveWith(r, e).promise()
};
n.process = function (e, i) {
return (e || i) && (n._processQueue = this._processQueue = (this._processQueue || o([this])).pipe(function () {
return n.errorThrown ? t.Deferred().rejectWith(r, [n]).promise() : o(arguments)
}).pipe(e, i)), this._processQueue || o([this])
}, n.submit = function () {
return "pending" !== this.state() && (n.jqXHR = this.jqXHR = r._trigger("submit", t.Event("submit", {
delegatedEvent: e
}), this) !== !1 && r._onSend(e, this)), this.jqXHR || r._getXHRPromise()
}, n.abort = function () {
return this.jqXHR ? this.jqXHR.abort() : (this.errorThrown = "abort", r._trigger("fail", null, this), r._getXHRPromise(!1))
}, n.state = function () {
return this.jqXHR ? r._getDeferredState(this.jqXHR) : this._processQueue ? r._getDeferredState(this._processQueue) : void 0
}, n.processing = function () {
return !this.jqXHR && this._processQueue && "pending" === r._getDeferredState(this._processQueue)
}, n.progress = function () {
return this._progress
}, n.response = function () {
return this._response
}
},
_getUploadedBytes: function (t) {
var e = t.getResponseHeader("Range"),
n = e && e.split("-"),
r = n && n.length > 1 && parseInt(n[1], 10);
return r && r + 1
},
_chunkedUpload: function (e, n) {
e.uploadedBytes = e.uploadedBytes || 0;
var r, o, i = this,
s = e.files[0],
a = s.size,
u = e.uploadedBytes,
l = e.maxChunkSize || a,
c = this._blobSlice,
p = t.Deferred(),
d = p.promise();
return this._isXHRUpload(e) && c && (u || a > l) && !e.data ? n ? !0 : u >= a ? (s.error = e.i18n("uploadedBytes"), this._getXHRPromise(!1, e.context, [null, "error", s.error])) : (o = function () {
var n = t.extend({}, e),
d = n._progress.loaded;
n.blob = c.call(s, u, u + l, s.type), n.chunkSize = n.blob.size, n.contentRange = "bytes " + u + "-" + (u + n.chunkSize - 1) + "/" + a, i._initXHRData(n), i._initProgressListener(n), r = (i._trigger("chunksend", null, n) !== !1 && t.ajax(n) || i._getXHRPromise(!1, n.context)).done(function (r, s, l) {
u = i._getUploadedBytes(l) || u + n.chunkSize, d + n.chunkSize - n._progress.loaded && i._onProgress(t.Event("progress", {
lengthComputable: !0,
loaded: u - n.uploadedBytes,
total: u - n.uploadedBytes
}), n), e.uploadedBytes = n.uploadedBytes = u, n.result = r, n.textStatus = s, n.jqXHR = l, i._trigger("chunkdone", null, n), i._trigger("chunkalways", null, n), a > u ? o() : p.resolveWith(n.context, [r, s, l])
}).fail(function (t, e, r) {
n.jqXHR = t, n.textStatus = e, n.errorThrown = r, i._trigger("chunkfail", null, n), i._trigger("chunkalways", null, n), p.rejectWith(n.context, [t, e, r])
})
}, this._enhancePromise(d), d.abort = function () {
return r.abort()
}, o(), d) : !1
},
_beforeSend: function (t, e) {
0 === this._active && (this._trigger("start"), this._bitrateTimer = new this._BitrateTimer, this._progress.loaded = this._progress.total = 0, this._progress.bitrate = 0), this._initResponseObject(e), this._initProgressObject(e), e._progress.loaded = e.loaded = e.uploadedBytes || 0, e._progress.total = e.total = this._getTotal(e.files) || 1, e._progress.bitrate = e.bitrate = 0, this._active += 1, this._progress.loaded += e.loaded, this._progress.total += e.total
},
_onDone: function (e, n, r, o) {
var i = o._progress.total,
s = o._response;
o._progress.loaded < i && this._onProgress(t.Event("progress", {
lengthComputable: !0,
loaded: i,
total: i
}), o), s.result = o.result = e, s.textStatus = o.textStatus = n, s.jqXHR = o.jqXHR = r, this._trigger("done", null, o)
},
_onFail: function (t, e, n, r) {
var o = r._response;
r.recalculateProgress && (this._progress.loaded -= r._progress.loaded, this._progress.total -= r._progress.total), o.jqXHR = r.jqXHR = t, o.textStatus = r.textStatus = e, o.errorThrown = r.errorThrown = n, this._trigger("fail", null, r)
},
_onAlways: function (t, e, n, r) {
this._trigger("always", null, r)
},
_onSend: function (e, n) {
n.submit || this._addConvenienceMethods(e, n);
var r, o, i, s, a = this,
u = a._getAJAXSettings(n),
l = function () {
return a._sending += 1, u._bitrateTimer = new a._BitrateTimer, r = r || ((o || a._trigger("send", t.Event("send", {
delegatedEvent: e
}), u) === !1) && a._getXHRPromise(!1, u.context, o) || a._chunkedUpload(u) || t.ajax(u)).done(function (t, e, n) {
a._onDone(t, e, n, u)
}).fail(function (t, e, n) {
a._onFail(t, e, n, u)
}).always(function (t, e, n) {
if (a._onAlways(t, e, n, u), a._sending -= 1, a._active -= 1, u.limitConcurrentUploads && u.limitConcurrentUploads > a._sending)
for (var r = a._slots.shift(); r;) {
if ("pending" === a._getDeferredState(r)) {
r.resolve();
break
}
r = a._slots.shift()
}
0 === a._active && a._trigger("stop")
})
};
return this._beforeSend(e, u), this.options.sequentialUploads || this.options.limitConcurrentUploads && this.options.limitConcurrentUploads <= this._sending ? (this.options.limitConcurrentUploads > 1 ? (i = t.Deferred(), this._slots.push(i), s = i.pipe(l)) : (this._sequence = this._sequence.pipe(l, l), s = this._sequence), s.abort = function () {
return o = [void 0, "abort", "abort"], r ? r.abort() : (i && i.rejectWith(u.context, o), l())
}, this._enhancePromise(s)) : l()
},
_onAdd: function (e, n) {
var r, o, i, s, a = this,
u = !0,
l = t.extend({}, this.options, n),
c = n.files,
p = c.length,
d = l.limitMultiFileUploads,
h = l.limitMultiFileUploadSize,
f = l.limitMultiFileUploadSizeOverhead,
m = 0,
g = this._getParamName(l),
v = 0;
if (!h || p && void 0 !== c[0].size || (h = void 0), (l.singleFileUploads || d || h) && this._isXHRUpload(l))
if (l.singleFileUploads || h || !d)
if (!l.singleFileUploads && h)
for (i = [], r = [], s = 0; p > s; s += 1) m += c[s].size + f, (s + 1 === p || m + c[s + 1].size + f > h || d && s + 1 - v >= d) && (i.push(c.slice(v, s + 1)), o = g.slice(v, s + 1), o.length || (o = g), r.push(o), v = s + 1, m = 0);
else r = g;
else
for (i = [], r = [], s = 0; p > s; s += d) i.push(c.slice(s, s + d)), o = g.slice(s, s + d), o.length || (o = g), r.push(o);
else i = [c], r = [g];
return n.originalFiles = c, t.each(i || c, function (o, s) {
var l = t.extend({}, n);
return l.files = i ? s : [s], l.paramName = r[o], a._initResponseObject(l), a._initProgressObject(l), a._addConvenienceMethods(e, l), u = a._trigger("add", t.Event("add", {
delegatedEvent: e
}), l)
}), u
},
_replaceFileInput: function (e) {
var n = e.clone(!0);
t("<form></form>").append(n)[0].reset(), e.after(n).detach(), t.cleanData(e.unbind("remove")), this.options.fileInput = this.options.fileInput.map(function (t, r) {
return r === e[0] ? n[0] : r
}), e[0] === this.element[0] && (this.element = n)
},
_handleFileTreeEntry: function (e, n) {
var r, o = this,
i = t.Deferred(),
s = function (t) {
t && !t.entry && (t.entry = e), i.resolve([t])
};
return n = n || "", e.isFile ? e._file ? (e._file.relativePath = n, i.resolve(e._file)) : e.file(function (t) {
t.relativePath = n, i.resolve(t)
}, s) : e.isDirectory ? (r = e.createReader(), r.readEntries(function (t) {
o._handleFileTreeEntries(t, n + e.name + "/").done(function (t) {
i.resolve(t)
}).fail(s)
}, s)) : i.resolve([]), i.promise()
},
_handleFileTreeEntries: function (e, n) {
var r = this;
return t.when.apply(t, t.map(e, function (t) {
return r._handleFileTreeEntry(t, n)
})).pipe(function () {
return Array.prototype.concat.apply([], arguments)
})
},
_getDroppedFiles: function (e) {
e = e || {};
var n = e.items;
return n && n.length && (n[0].webkitGetAsEntry || n[0].getAsEntry) ? this._handleFileTreeEntries(t.map(n, function (t) {
var e;
return t.webkitGetAsEntry ? (e = t.webkitGetAsEntry(), e && (e._file = t.getAsFile()), e) : t.getAsEntry()
})) : t.Deferred().resolve(t.makeArray(e.files)).promise()
},
_getSingleFileInputFiles: function (e) {
e = t(e);
var n, r, o = e.prop("webkitEntries") || e.prop("entries");
if (o && o.length) return this._handleFileTreeEntries(o);
if (n = t.makeArray(e.prop("files")), n.length) void 0 === n[0].name && n[0].fileName && t.each(n, function (t, e) {
e.name = e.fileName, e.size = e.fileSize
});
else {
if (r = e.prop("value"), !r) return t.Deferred().resolve([]).promise();
n = [{
name: r.replace(/^.*\\/, "")
}]
}
return t.Deferred().resolve(n).promise()
},
_getFileInputFiles: function (e) {
return e instanceof t && 1 !== e.length ? t.when.apply(t, t.map(e, this._getSingleFileInputFiles)).pipe(function () {
return Array.prototype.concat.apply([], arguments)
}) : this._getSingleFileInputFiles(e)
},
_onChange: function (e) {
var n = this,
r = {
fileInput: t(e.target),
form: t(e.target.form)
};
this._getFileInputFiles(r.fileInput).always(function (o) {
r.files = o, n.options.replaceFileInput && n._replaceFileInput(r.fileInput), n._trigger("change", t.Event("change", {
delegatedEvent: e
}), r) !== !1 && n._onAdd(e, r)
})
},
_onPaste: function (e) {
var n = e.originalEvent && e.originalEvent.clipboardData && e.originalEvent.clipboardData.items,
r = {
files: []
};
n && n.length && (t.each(n, function (t, e) {
var n = e.getAsFile && e.getAsFile();
n && r.files.push(n)
}), this._trigger("paste", t.Event("paste", {
delegatedEvent: e
}), r) !== !1 && this._onAdd(e, r))
},
_onDrop: function (e) {
e.dataTransfer = e.originalEvent && e.originalEvent.dataTransfer;
var n = this,
r = e.dataTransfer,
o = {};
r && r.files && r.files.length && (e.preventDefault(), this._getDroppedFiles(r).always(function (r) {
o.files = r, n._trigger("drop", t.Event("drop", {
delegatedEvent: e
}), o) !== !1 && n._onAdd(e, o)
}))
},
_onDragOver: function (e) {
e.dataTransfer = e.originalEvent && e.originalEvent.dataTransfer;
var n = e.dataTransfer;
n && -1 !== t.inArray("Files", n.types) && this._trigger("dragover", t.Event("dragover", {
delegatedEvent: e
})) !== !1 && (e.preventDefault(), n.dropEffect = "copy")
},
_initEventHandlers: function () {
this._isXHRUpload(this.options) && (this._on(this.options.dropZone, {
dragover: this._onDragOver,
drop: this._onDrop
}), this._on(this.options.pasteZone, {
paste: this._onPaste
})), t.support.fileInput && this._on(this.options.fileInput, {
change: this._onChange
})
},
_destroyEventHandlers: function () {
this._off(this.options.dropZone, "dragover drop"), this._off(this.options.pasteZone, "paste"), this._off(this.options.fileInput, "change")
},
_setOption: function (e, n) {
var r = -1 !== t.inArray(e, this._specialOptions);
r && this._destroyEventHandlers(), this._super(e, n), r && (this._initSpecialOptions(), this._initEventHandlers())
},
_initSpecialOptions: function () {
var e = this.options;
void 0 === e.fileInput ? e.fileInput = this.element.is('input[type="file"]') ? this.element : this.element.find('input[type="file"]') : e.fileInput instanceof t || (e.fileInput = t(e.fileInput)), e.dropZone instanceof t || (e.dropZone = t(e.dropZone)), e.pasteZone instanceof t || (e.pasteZone = t(e.pasteZone))
},
_getRegExp: function (t) {
var e = t.split("/"),
n = e.pop();
return e.shift(), new RegExp(e.join("/"), n)
},
_isRegExpOption: function (e, n) {
return "url" !== e && "string" === t.type(n) && /^\/.*\/[igm]{0,3}$/.test(n)
},
_initDataAttributes: function () {
var e = this,
n = this.options,
r = t(this.element[0].cloneNode(!1));
t.each(r.data(), function (t, o) {
var i = "data-" + t.replace(/([a-z])([A-Z])/g, "$1-$2").toLowerCase();
r.attr(i) && (e._isRegExpOption(t, o) && (o = e._getRegExp(o)), n[t] = o)
})
},
_create: function () {
this._initDataAttributes(), this._initSpecialOptions(), this._slots = [], this._sequence = this._getXHRPromise(!0), this._sending = this._active = 0, this._initProgressObject(this), this._initEventHandlers()
},
active: function () {
return this._active
},
progress: function () {
return this._progress
},
add: function (e) {
var n = this;
e && !this.options.disabled && (e.fileInput && !e.files ? this._getFileInputFiles(e.fileInput).always(function (t) {
e.files = t, n._onAdd(null, e)
}) : (e.files = t.makeArray(e.files), this._onAdd(null, e)))
},
send: function (e) {
if (e && !this.options.disabled) {
if (e.fileInput && !e.files) {
var n, r, o = this,
i = t.Deferred(),
s = i.promise();
return s.abort = function () {
return r = !0, n ? n.abort() : (i.reject(null, "abort", "abort"), s)
}, this._getFileInputFiles(e.fileInput).always(function (t) {
if (!r) {
if (!t.length) return void i.reject();
e.files = t, n = o._onSend(null, e).then(function (t, e, n) {
i.resolve(t, e, n)
}, function (t, e, n) {
i.reject(t, e, n)
})
}
}), this._enhancePromise(s)
}
if (e.files = t.makeArray(e.files), e.files.length) return this._onSend(null, e)
}
return this._getXHRPromise(!1, e && e.context)
}
})
}),
/*
* jQuery Hotkeys Plugin
* Copyright 2010, John Resig
* Dual licensed under the MIT or GPL Version 2 licenses.
*
* Based upon the plugin by Tzury Bar Yochay:
* http://github.com/tzuryby/hotkeys
*
* Original idea by:
* Binny V A, http://www.openjs.com/scripts/events/keyboard_shortcuts/
*/
function (t) {
function e(e) {
if ("string" == typeof e.data) {
var n = e.handler,
r = e.data.toLowerCase().split(" ");
e.handler = function (e) {
if (this === e.target || !/textarea|select/i.test(e.target.nodeName) && "text" !== e.target.type) {
var o = "keypress" !== e.type && t.hotkeys.specialKeys[e.which],
i = String.fromCharCode(e.which).toLowerCase(),
s = "",
a = {};
e.altKey && "alt" !== o && (s += "alt+"), e.ctrlKey && "ctrl" !== o && (s += "ctrl+"), e.metaKey && !e.ctrlKey && "meta" !== o && (s += "meta+"), e.shiftKey && "shift" !== o && (s += "shift+"), o ? a[s + o] = !0 : (a[s + i] = !0, a[s + t.hotkeys.shiftNums[i]] = !0, "shift+" === s && (a[t.hotkeys.shiftNums[i]] = !0));
for (var u = 0, l = r.length; l > u; u++)
if (a[r[u]]) return n.apply(this, arguments)
}
}
}
}
t.hotkeys = {
version: "0.8",
specialKeys: {
8: "backspace",
9: "tab",
13: "return",
16: "shift",
17: "ctrl",
18: "alt",
19: "pause",
20: "capslock",
27: "esc",
32: "space",
33: "pageup",
34: "pagedown",
35: "end",
36: "home",
37: "left",
38: "up",
39: "right",
40: "down",
45: "insert",
46: "del",
96: "0",
97: "1",
98: "2",
99: "3",
100: "4",
101: "5",
102: "6",
103: "7",
104: "8",
105: "9",
106: "*",
107: "+",
109: "-",
110: ".",
111: "/",
112: "f1",
113: "f2",
114: "f3",
115: "f4",
116: "f5",
117: "f6",
118: "f7",
119: "f8",
120: "f9",
121: "f10",
122: "f11",
123: "f12",
144: "numlock",
145: "scroll",
191: "/",
224: "meta"
},
shiftNums: {
"`": "~",
1: "!",
2: "@",
3: "#",
4: "$",
5: "%",
6: "^",
7: "&",
8: "*",
9: "(",
0: ")",
"-": "_",
"=": "+",
";": ": ",
"'": '"',
",": "<",
".": ">",
"/": "?",
"\\": "|"
}
}, t.each(["keydown", "keyup", "keypress"], function () {
t.event.special[this] = {
add: e
}
})
}(jQuery),
function (t) {
function e(t, e) {
return "function" == typeof t ? t.call(e) : t
}
function n(t) {
for (; t = t.parentNode;)
if (t == document) return !0;
return !1
}
function r(e, n) {
this.$element = t(e), this.options = n, this.enabled = !0, this.fixTitle()
}
r.prototype = {
show: function () {
var n = this.getTitle();
if (n && this.enabled) {
var r = this.tip();
r.find(".tipsy-inner")[this.options.html ? "html" : "text"](n), r[0].className = "tipsy", r.remove().css({
top: 0,
left: 0,
visibility: "hidden",
display: "block"
}).prependTo(document.body);
var o, i = t.extend({}, this.$element.offset(), {
width: this.$element[0].offsetWidth,
height: this.$element[0].offsetHeight
}),
s = r[0].offsetWidth,
a = r[0].offsetHeight,
u = e(this.options.gravity, this.$element[0]);
switch (u.charAt(0)) {
case "n":
o = {
top: i.top + i.height + this.options.offset,
left: i.left + i.width / 2 - s / 2
};
break;
case "s":
o = {
top: i.top - a - this.options.offset,
left: i.left + i.width / 2 - s / 2
};
break;
case "e":
o = {
top: i.top + i.height / 2 - a / 2,
left: i.left - s - this.options.offset
};
break;
case "w":
o = {
top: i.top + i.height / 2 - a / 2,
left: i.left + i.width + this.options.offset
}
}
2 == u.length && (o.left = "w" == u.charAt(1) ? i.left + i.width / 2 - 15 : i.left + i.width / 2 - s + 15), r.css(o).addClass("tipsy-" + u), r.find(".tipsy-arrow")[0].className = "tipsy-arrow tipsy-arrow-" + u.charAt(0), this.options.className && r.addClass(e(this.options.className, this.$element[0])), this.options.fade ? r.stop().css({
opacity: 0,
display: "block",
visibility: "visible"
}).animate({
opacity: this.options.opacity
}) : r.css({
visibility: "visible",
opacity: this.options.opacity
})
}
},
hide: function () {
this.options.fade ? this.tip().stop().fadeOut(function () {
t(this).remove()
}) : this.tip().remove()
},
fixTitle: function () {
var t = this.$element;
(t.attr("title") || "string" != typeof t.attr("original-title")) && t.attr("original-title", t.attr("title") || "").removeAttr("title")
},
getTitle: function () {
var t, e = this.$element,
n = this.options;
this.fixTitle();
var t, n = this.options;
return "string" == typeof n.title ? t = e.attr("title" == n.title ? "original-title" : n.title) : "function" == typeof n.title && (t = n.title.call(e[0])), t = ("" + t).replace(/(^\s*|\s*$)/, ""), t || n.fallback
},
tip: function () {
return this.$tip || (this.$tip = t('<div class="tipsy"></div>').html('<div class="tipsy-arrow"></div><div class="tipsy-inner"></div>'), this.$tip.data("tipsy-pointee", this.$element[0])), this.$tip
},
validate: function () {
this.$element[0].parentNode || (this.hide(), this.$element = null, this.options = null)
},
enable: function () {
this.enabled = !0
},
disable: function () {
this.enabled = !1
},
toggleEnabled: function () {
this.enabled = !this.enabled
}
}, t.fn.tipsy = function (e) {
function n(n) {
var o = t.data(n, "tipsy");
return o || (o = new r(n, t.fn.tipsy.elementOptions(n, e)), t.data(n, "tipsy", o)), o
}
function o() {
var t = n(this);
t.hoverState = "in", 0 == e.delayIn ? t.show() : (t.fixTitle(), setTimeout(function () {
"in" == t.hoverState && s(t.$element) && t.show()
}, e.delayIn))
}
function i() {
var t = n(this);
t.hoverState = "out", 0 == e.delayOut ? t.hide() : setTimeout(function () {
"out" == t.hoverState && t.hide()
}, e.delayOut)
}
function s(t) {
return t.closest("body").length > 0
}
if (e === !0) return this.data("tipsy");
if ("string" == typeof e) {
var a = this.data("tipsy");
return a && a[e](), this
}
if (e = t.extend({}, t.fn.tipsy.defaults, e), e.live || this.each(function () {
n(this)
}), "manual" != e.trigger) {
var u = e.live ? t(this.context) : this,
l = e.live ? this.selector : null,
c = "hover" == e.trigger ? "mouseenter" : "focus",
p = "hover" == e.trigger ? "mouseleave" : "blur";
u.on(c, l, o).on(p, l, i)
}
return this
}, t.fn.tipsy.defaults = {
className: null,
delayIn: 0,
delayOut: 0,
fade: !1,
fallback: "",
gravity: "n",
html: !1,
live: !1,
offset: 0,
opacity: .8,
title: "title",
trigger: "hover"
}, t.fn.tipsy.revalidate = function () {
t(".tipsy").each(function () {
var e = t.data(this, "tipsy-pointee");
e && n(e) || t(this).remove()
})
}, t.fn.tipsy.elementOptions = function (e, n) {
return t.metadata ? t.extend({}, n, t(e).metadata()) : n
}, t.fn.tipsy.autoNS = function () {
return t(this).offset().top > t(document).scrollTop() + t(window).height() / 2 ? "s" : "n"
}, t.fn.tipsy.autoWE = function () {
return t(this).offset().left > t(document).scrollLeft() + t(window).width() / 2 ? "e" : "w"
}, t.fn.tipsy.autoBounds = function (e, n) {
return function () {
var r = {
ns: n[0],
ew: n.length > 1 ? n[1] : !1
},
o = t(document).scrollTop() + e,
i = t(document).scrollLeft() + e,
s = t(this);
return s.offset().top < o && (r.ns = "n"), s.offset().left < i && (r.ew = "w"), t(window).width() + t(document).scrollLeft() - s.offset().left < e && (r.ew = "e"), t(window).height() + t(document).scrollTop() - s.offset().top < e && (r.ns = "s"), r.ns + (r.ew ? r.ew : "")
}
}
}(jQuery),
function () {
window.Flowdock = window.Flowdock || {}, window.Views = {}, window.Models = {}, window.Collections = {}, window.Helpers = {}, window.Presenters = {}, window.Components = {}
}.call(this),
function () {
var t, e, n;
_.extend(Helpers, {
autoLink: function (t, e) {
return Helpers.autoLinkEmails(Helpers.autoLinkUrls(Helpers.autoLinkMentions(Helpers.autoLinkHashtags(t, e), e)), e)
},
autoLinkEmails: function (n, r) {
var o, i, s;
return o = $("<div>").html(n)[0], s = function (t) {
return $("<a>").attr({
href: "mailto:" + t
}).text(t).addClass(r.emailClass || "")[0]
}, i = t(FlowdockText.extractEmailsWithIndices, s, "email"), e(o, i).innerHTML
},
autoLinkUrls: function (n, r) {
var o, i, s;
return null == r && (r = {}), o = $("<div>").html(n)[0], s = function (t) {
var e;
return e = /^https?:\/\//.test(t) ? "" : "http://", $("<a>").attr("href", "" + e + t).text(t).addClass("external")[0]
}, i = t(FlowdockText.extractUrlsWithIndices, s, "url"), e(o, i).innerHTML
},
autoLinkMentions: function (t, r) {
var o, i, s, a;
return null == r && (r = {}), o = $("<div>").html(t)[0], i = function (t) {
return FlowdockText.extractMentionsWithIndices(t, r.userTags)
}, a = function (t) {
return $("<a>").attr({
href: "" + r.hashtagUrlBase + t,
title: "Search " + t
}).text("" + t).addClass(r.hashtagClass)[0]
}, s = n(i, a), e(o, s).innerHTML
},
autoLinkHashtags: function (t, r) {
var o, i, s;
return null == r && (r = {}), o = $("<div>").html(t)[0], s = function (t) {
return $("<a>").attr({
href: "" + r.hashtagUrlBase + t,
title: "#" + t
}).text("#" + t).addClass(r.hashtagClass)[0]
}, i = n(FlowdockText.extractHashtagsWithIndices, s), e(o, i).innerHTML
}
}), t = function (t, e, n) {
return function (r) {
var o, i, s, a, u, l, c;
for (s = r.textContent || r.data, o = t(s), l = o.reverse(), c = [], a = 0, u = l.length; u > a; a++) i = l[a], c.push(function (t) {
var o, i;
return i = r.splitText(t.indices[0]), i.splitText(t[n].length), o = e(t[n]), r.parentNode.replaceChild(o, i)
}(i));
return c
}
}, n = function (t, e) {
return function (n) {
var r, o, i, s, a, u, l;
for (i = n.textContent || n.data, o = t(i), u = o.reverse(), l = [], s = 0, a = u.length; a > s; s++) r = u[s], l.push(function (t) {
var r, o;
return r = n.splitText(t.indices[0]), r.splitText(t.indices[1] - t.indices[0]), o = e(t.tag), n.parentNode.replaceChild(o, r)
}(r));
return l
}
}, e = function (t, n) {
var r, o;
for (o = 0; o < t.childNodes.length;) r = t.childNodes[o], 3 === r.nodeType ? n(r) : r.hasChildNodes() && "A" !== r.nodeName && e(r, n), o++;
return t
}
}.call(this),
function () {
var t;
t = function () {
var t, e, n;
return e = ["green", "red", "blue", "yellow", "purple", "teal", "orange", "dirty-green", "brown", "pink"], t = {}, n = function () {
var t;
return t = e.pop(), e.unshift(t), t
},
function (e) {
return t[e] || (t[e] = n())
}
}, Helpers.CommentHelper = {
flows: {},
color: function (e, n) {
var r, o;
return (r = (o = this.flows)[e] || (o[e] = t(e)))(n)
}
}
}.call(this),
function () {
Helpers.FileHelper = {
parseAttachment: function (t) {
var e;
return e = {
file: {
type: this.iconType(t.content_type),
path: Helpers.apiUrl(this.escapePath(t.path), !0),
size: Helpers.format.bytes(t.file_size),
name: t.file_name
}
}, t.thumbnail && (e.file.type = "thumbnailed-image", e.image = {
width: t.image.width,
height: t.image.height
}, e.thumbnail = {
path: Helpers.apiUrl(this.escapePath(t.thumbnail.path), !0),
width: t.thumbnail.width,
height: t.thumbnail.height
}), t.rotated && (e.rotated = {
path: Helpers.apiUrl(this.escapePath(t.rotated.path), !0)
}), e
},
iconType: function (t) {
var e, n, r, o, i;
return r = function (t, e) {
var n, r;
for (n in e)
if (r = e[n], -1 !== n.split(",").indexOf(t)) return r
}, e = {
audio: function () {
return "audio"
},
video: function () {
return "video"
},
image: function () {
return "image"
},
text: function (t) {
return r(t, {
html: "html",
css: "css",
plain: "text"
})
},
application: function (t) {
return r(t, {
pdf: "pdf",
msword: "word",
powerpoint: "powerpoint",
"excel,vnd.ms-excel": "excel",
"shockwave-flash": "flash",
"octet-stream": "binary",
"zip,x-zip,x-tar,x-gzip,x-stuffit": "zip"
})
}
}, i = t.split("/"), o = i[0], n = i[1], ("function" == typeof e[o] ? e[o](n) : void 0) || "document"
},
escapePath: function (t) {
var e;
return e = _.map(t.split("/"), function (t) {
return encodeURIComponent(t)
}), e.join("/")
}
}
}.call(this),
function () {
var t = [].slice;
_.extend(Helpers, {
format: {
number: function (e, n) {
var r, o;
return null == n && (n = 2), r = function (e) {
var r, o, i, s;
for (s = e.split("."), o = s[0], n = 2 <= s.length ? t.call(s, 1) : [], n = function () {
var t, e, o;
for (o = [], t = 0, e = n.length; e > t; t++) r = n[t], o.push("." + r);
return o
}().join(), i = /(\d+)(\d{3})/; i.test(o);) o = o.replace(i, "$1,$2");
return "" + o + n
}, o = Math.pow(10, n), r(String(Math.round(e * o) / o))
},
pad: function (t, e, n) {
var r;
return null == n && (n = "0"), r = String(t), r.length < e ? Helpers.format.pad(n + r, e, n) : r
},
toSentence: function (t) {
switch (null == t && (t = []), t.length) {
case 0:
return "";
case 1:
return t[0];
case 2:
return t.join(" and ");
default:
return t.slice(0, +(t.length - 2) + 1 || 9e9).join(", ") + (" and " + _.last(t))
}
},
bytes: function (t) {
return t >= 1e3 * Math.pow(2, 20) ? Helpers.format.number(t / Math.pow(2, 30)) + " GB" : t >= 1e3 * Math.pow(2, 10) ? Helpers.format.number(t / Math.pow(2, 20)) + " MB" : Helpers.format.number(t / Math.pow(2, 10)) + " kB"
}
},
absoluteUrlFor: function (t) {
return "" + window.location.protocol + "//" + window.location.host + Helpers.urlFor(t)
},
urlFor: function (t) {
return "" + window.Router.root + Helpers.pathFor(t)
},
pathFor: function (t) {
var e, n;
return null == t && (t = {}), t.flow ? (e = t.flow.path ? t.flow.path() : t.flow, t.message ? "" + e + "/inbox/" + (t.message.id || t.message) : t.thread ? "" + e + "/threads/" + t.thread : t.filter && t.filter.url(t.flow) && "inbox" !== t.filter.url(t.flow) ? "" + e + "/filter/" + t.filter.url(t.flow) : t.settings ? "" + e + "/settings/" + t.settings.active : t.renameFlow ? "" + e + "/rename" : e) : t["private"] ? n = t["private"].id ? "private/" + t["private"].id : "private/" + t["private"] : t.createFlow ? t.organization ? "create-flow/" + t.organization : "create-flow" : t.createOrganization ? "create-organization" : t.showNewTab ? "new-tab" : t.newPrivateDialog ? "new-1-to-1" : t.feedback ? "feedback" : t.preferences ? "preferences/" + t.preferences.active : t.iframe ? "iframe/" + t.iframe : t.renameFlow ? "" : ""
},
assetPath: function (t) {
return Flowdock.assetHost + ("/" === t[0] ? t : "/" + t)
},
apiUrl: function (t) {
var e;
return e = Helpers.url.stripHost(t), 0 === e.indexOf("/rest") ? e : "/rest" + e
},
url: {
stripHost: function (t) {
var e, n;
return e = document.createElement("a"), e.href = t, n = 0 === e.pathname.indexOf("/") ? "" : "/", n + e.pathname + e.search + e.hash
}
},
generateQuery: function (t) {
var e, n, r;
n = "";
for (e in t) r = t[e], n.length > 0 && (n += "&"), null != e && (n += "" + Helpers.urlEncode(e) + "=" + Helpers.encodeValue(r));
return n.length > 0 ? "?" + n : ""
},
encodeValue: function (t) {
return Helpers.urlEncode(t).replace(/%40/g, "@").replace(/%2C/g, ",")
},
parseQuery: function (t) {
var e;
return 0 === t.length ? {} : (e = {}, "?" === t[0] && (t = t.slice(1)), _.each(t.split("&"), function (t) {
var n, r, o;
return o = t.split("=", 2), n = o[0], r = o[1], null != n && null != r ? e[Helpers.urlDecode(n)] = Helpers.urlDecode(r) : void 0
}), e)
},
animationend: function () {
var t;
return t = {
WebkitAnimation: "webkitAnimationEnd",
MozAnimation: "animationend",
MsAnimation: "MSAnimationEnd",
OAnimation: "oAnimationEnd",
animation: "animationend"
}, t[Modernizr.prefixed("animation")]
},
transitionend: function () {
var t;
return t = {
WebkitTransition: "webkitTransitionEnd",
MozTransition: "transitionend",
MsTransition: "MSTransitionEnd",
OTransition: "oTransitionEnd",
transition: "transitionend"
}, t[Modernizr.prefixed("transition")]
},
unsafeLink: function (t, e) {
return t = $("<div/>").text(t).html(), '<a class="external" href="' + e + '">' + t + "</a>"
},
textSelected: function () {
var t;
return t = window.getSelection ? window.getSelection().toString() : document.selection ? document.selection.createRange().text : void 0, (null != t ? t.length : void 0) > 0
},
urlDecode: function (t) {
return null == t ? null : decodeURIComponent(t.replace(/\+/g, " "))
},
urlEncode: function (t) {
return null == t ? "" : encodeURIComponent(t).replace(/#{" "}/g, "+")
},
capitalize: function (t) {
return t.split(" ").map(function (t) {
return Helpers.capitalizeFirst(t)
}).join(" ")
},
capitalizeFirst: function (t) {
var e;
return t || (t = ""), "" + ((null != (e = t[0]) ? e.toUpperCase() : void 0) || "") + t.slice(1)
},
buttonConfirm: function (t, e, n) {
var r, o;
return r = t.html(), o = function () {
return t.one(Helpers.transitionend(), function () {
return t.hasClass("danger-button") ? t.one("click", n) : void 0
}), t.one("mouseout", function () {
return t.removeClass("danger-button").html(r), t.off("click", n), t.one("click", o)
}), t.addClass("danger-button").text(e)
}, t.one("click", o)
},
selectText: function (t) {
var e, n;
return e = document.createRange(), e.selectNodeContents(t), n = window.getSelection(), n.removeAllRanges(), n.addRange(e)
},
clickWithin: function (t, e) {
var n;
return n = $(t.target), n.hasClass(e) || n.parents(e).length > 0
},
confirmDelete: function () {
return confirm("Do you want to permanently delete this message?\nWhen deleted, no one will be able to see the message anymore.")
},
addMixin: function (t, e) {
var n;
return n = _.extend({}, t.prototype.events), _.extend(t.prototype, e), t.prototype.events = _.extend(n, e.events)
}
})
}.call(this),
function () {
var t, e;
e = /(^|\n)((?:[ ]{4}|\t).*\n?)+/g, t = /(^|\n)(?:[ ]{4}|\t)/g, Helpers.IndentationHelper = {
indented: function (e) {
return e.search(t) >= 0
},
formatIndented: function (n) {
var r;
try {
return n.replace(e, function (e) {
var n;
return e = e.replace(/^\n/, "").replace(t, function (t, e) {
return "\n" === e ? e : ""
}), n = SourceDetector.detect(e) ? (e = prettyPrintOne(e), " code") : "", 0 === $.trim(e).length ? "" : "<pre class='formatted" + n + "' data-no-text-emoji><code>" + e + "</code></pre>"
}).replace(/\n/g, "<br />").replace(/[ ]{2}/g, " &nbsp;")
} catch (o) {
return r = o, n
}
},
parseEmojies: function (t) {
var e, n;
return n = function () {
var n, r, o, i;
for (o = t.split("\n"), i = [], n = 0, r = o.length; r > n; n++) e = o[n], i.push(Helpers.IndentationHelper.indented(e) ? e : emojimoji(e));
return i
}(), n.join("\n")
}
}
}.call(this),
function () {
Helpers.MailHelper = {
mailtoUrl: function (t, e, n) {
var r, o, i, s, a, u, l, c, p, d, h, f;
return i = "%0A> ", u = encodeURIComponent(t.subject), a = moment(n).format("MMMM D, YYYY (LT)") + ", ", s = "%0A%0AOn " + a + " " + encodeURIComponent((null != t && null != (c = t.from[0]) ? c.name : void 0) || (null != (p = t.from[0]) ? p.address : void 0)) + " wrote:" + i, o = _.isArray(t.content) ? t.content[0] : t.content, _.isString(o) ? (o = o.replace(/<img /g, "<img src "), r = $("<div />").html(o.replace(/(<br \/>|<br>)/g, "\n")).text(), r = r.replace(/(\r\n|\r|\n|\u0085|\u000C|\u2028|\u2029)/g, i), r = r.replace(new RegExp("^(" + i + "\\s*)+"), ""), r = r.replace(new RegExp("(" + i + "\\s*)+$"), ""), r = r.replace(new RegExp("(" + i + "\\s*){2,}", "g"), i + i), r = encodeURIComponent(r.replace(/\&amp;/g, "&"))) : r = "", l = "reply" === e ? (null != (d = t.replyTo) && null != (h = d[0]) ? h.address : void 0) || (null != (f = t.from[0]) ? f.address : void 0) : "", u = "reply" === e ? "Re: " + u : "Fwd: " + u, "mailto:" + l + "?subject=" + u + "&body=" + s + r.replace(/%250A/g, "%0A")
}
}
}.call(this),
function () {
var t, e;
Helpers.TagHelper = {}, e = function (t) {
return t.replace(/[-[\]{}()*+?.,\\^$|#\s]/g, "\\$&")
}, t = function (t) {
var n;
return t && t.length > 0 ? (n = FlowdockText.regexen.hashtagBoundary.source, new RegExp(n + e(t) + n, "i")) : void 0
}, Helpers.TagHelper.parseTags = function (e, n) {
var r, o, i, s, a, u, l, c, p;
return c = function (t) {
return t.get("nick") && t.get("nick").length > 0 && 0 !== t.get("id") && !t.get("disabled")
}, p = function (t) {
return t.get("id") === n.me().get("id")
}, u = [], a = n.me().toJSON(), r = FlowdockText.extractAll(e), l = r.urls, s = r.hashtags, i = r.mentions, s.forEach(function (t) {
return _.contains(u, t.toLowerCase()) ? void 0 : u.push(t)
}), l.length > 0 && u.push(":url"), o = FlowdockText.mentionsAll(i), o && u.push(":user:everyone"), n.users.filter(c).forEach(function (n) {
var r;
return r = !1, n.id !== a.id && e.match(t(n.nick())) && (u.push(":highlight:" + n.id), r = !0), FlowdockText.mentionsUser(i, n.nick()) && (u.push(":user:" + n.id), r = !0), !p(n) && (r || o && n.get("in_flow")) ? u.push(":unread:" + n.id) : void 0
}), u.filter(function (t) {
return "@" !== t[0]
})
}, Helpers.TagHelper.textualize = function (t) {
return _.compact(t.tags().map(function (t) {
return t.humanize()
})).join(", ")
}, Helpers.TagHelper.textualizeChange = function (t, e, n) {
var r, o, i, s;
return e || (e = t.previousTags()), o = function (t) {
return t.filter(function (t) {
return t.humanize()
})
}, r = o(e.add), s = o(e.remove), i = function (t, e, n) {
return n.length > 0 ? "" + e + " " + n.map(function (t) {
return t.humanize()
}).join(", ") : void 0
}, r.length > 0 || s.length > 0 ? _.compact([n.get("nick"), i("add", "added", r), i("remove", "removed", s)]).join(" ") : void 0
}
}.call(this),
function () {
var t, e, n;
e = function (t) {
var e, n;
return n = moment(t.attr("datetime")), e = n.fromNow(), t.text() !== e ? t.text(e) : void 0
}, t = function (t) {
var e, n;
return n = moment(t.attr("datetime")), e = n.format(Helpers.TimeHelper.detailedTimestampOptions(n).textFormat), t.text() !== e ? t.text(e) : void 0
}, n = function (t) {
var e, n;
return n = moment(t.attr("datetime")), e = n.format("LLL"), t.text() !== e ? t.text(e) : void 0
}, Helpers.TimeHelper = {
timestamp: function (t, e) {
return null == e && (e = {}),
function () {
return Helpers.TimeHelper.render(t, e)
}
},
detailedTimestamp: function (t, e) {
return null == e && (e = {}),
function () {
return e = Helpers.TimeHelper.detailedTimestampOptions(t, e), Helpers.TimeHelper.render(t, e)
}
},
detailedTimestampOptions: function (t, e) {
return null == e && (e = {}), e.classes || (e.classes = "timestamp detailed"), e.textFormat = moment().startOf("day").diff(t) > 0 ? "MMM D, YYYY LT" : "LT", e
},
editTime: function (t, e) {
return t ? Helpers.TimeHelper.detailedTimestamp(t, {
classes: e ? "detailed message-delete-time" : "detailed message-edit-time"
}) : void 0
},
render: function (t, e) {
var n, r, o;
return null == e && (e = {}), r = {
classes: "timestamp",
relative: !1,
textFormat: "LT",
datetimeFormat: "YYYY-MM-DDTHH:mm:ss",
timestampFormat: "LLL",
before: "",
after: ""
}, e = _.extend(r, e), moment.isMoment(t) || (t = moment(t)), e.relative && (e.classes += " autoupdate"), n = $("<time>").attr({
datetime: t.format(e.datetimeFormat),
title: t.format(e.timestampFormat),
"class": e.classes
}).text(function () {
var n;
return n = e.relative ? t.fromNow() : t.format(e.textFormat), [e.before, n, e.after].join(" ")
}), null != e.link && (o = $("<a>").attr(e.link).addClass("timestamp-link"), n = o.append(n)), n[0].outerHTML
},
updateAllTimestamps: function () {
return $("time.autoupdate").each(function () {
return e($(this))
})
},
updateDetailedTimestamps: function () {
return $("time.detailed").each(function () {
return t($(this))
})
},
updateGlobalLocale: function (r) {
return moment.lang(r), $("time[datetime]").each(function () {
var r;
return r = $(this), r.attr({
title: moment(r.attr("datetime")).format("LLL")
}), r.is(".autoupdate") ? e(r) : r.is(".detailed") ? t(r) : n(r)
})
}
}
}.call(this),
function () {
Helpers.setWindowTitle = function (t, e, n) {
var r;
return r = "", (e || n) && (r += "(" + (n > 0 ? "" + n : "*") + ") "), t && t.get("name") && (r += "" + t.get("name"), t.get("organization") && (r += " (" + t.get("organization").name + ")"), r += " - "), r += "Flowdock", window.document.title = r
}
}.call(this),
function () {
Helpers.TwitterHelper = {
tweetIdFromTweetUrl: function (t) {
return t.match(/status\/([0-9]+)/)[1]
},
tweetApiUrl: function (t) {
return "https://api.twitter.com/1/statuses/show/" + t + ".json?callback=?&include_entities=true"
},
profileImageApiUrl: function (t, e) {
return null == e && (e = "normal"), "https://api.twitter.com/1/users/profile_image/" + t + "?size=" + e
},
userTimelineApiUrl: function (t, e) {
return "https://api.twitter.com/1/statuses/user_timeline/" + t + ".json" + ("?messageCount=" + e + "&suppress_response_codes=1&include_rts=true&callback=?")
},
searchApiUrl: function (t, e) {
var n;
return n = e ? "&" + $.param(e) : "", "https://search.twitter.com/search.json?q=" + t + n + "&callback=?"
},
intentReplyUrl: function (t) {
return "https://twitter.com/intent/tweet?in_reply_to=" + t
},
intentRetweetUrl: function (t) {
return "https://twitter.com/intent/retweet/?tweet_id=" + t
},
intentFavoriteUrl: function (t) {
return "https://twitter.com/intent/favorite/?tweet_id=" + t
}
}
}.call(this),
function () {
var t, e, n = [].slice;
e = function (t, e, r) {
return null == r && (r = _.identity), new Bacon.EventStream(function (o) {
var i, s;
return i = function () {
var t, e;
return t = 1 <= arguments.length ? n.call(arguments, 0) : [], e = o(new Bacon.Next(r.apply(null, t))), e === Bacon.noMore ? s() : void 0
}, s = function () {
return t.off(e, i)
}, t.on(e, i), s
})
}, t = function (t, n) {
return null == n && (n = _.identity), e(this, t, n)
}, Backbone.Model.prototype.asProperty = function (t) {
return t ? e(this, "change:" + t).map(this, "get", t).toProperty(this.get(t)) : e(this, "change").map(this, "toJSON").toProperty(this.toJSON())
}, Backbone.Model.prototype.asEventStream = t, Backbone.Collection.prototype.asEventStream = t, Backbone.View.prototype.asEventStream = t, Backbone.Events.asEventStream = t, Backbone.Bacon = {
asEventStream: t
}
}.call(this),
function () {
_.extend(Backbone.Collection.prototype, {
isLoadingStream: function () {
var t, e, n;
return t = this.asEventStream("request", function (t, e) {
return e
}), n = this.asEventStream("sync"), e = function (t) {
var e;
return e = n.filter(function () {
return 4 === t.readyState
}).take(1), Bacon.once(!0).merge(e.map(!1))
}, t.flatMapLatest(e)
}
})
}.call(this),
function () {
var t;
t = {
update: "put",
destroy: "delete",
create: "post",
read: "get"
}, _.extend(Backbone.Model.prototype, {
saveWithRetry: function (t, e) {
var n, r, o;
return null == e && (e = {}), o = null != e.retries ? e.retries : 3, n = {
success: function (t, n) {
return _.isFunction(e.success) ? e.success(t, n) : void 0
},
error: function (n, r) {
return 0 >= o ? _.isFunction(e.error) ? e.error(n, r) : void 0 : setTimeout(function () {
return n.saveWithRetry(t, _.extend({}, e, {
retries: o - 1
}))
}, 1e4)
}
}, r = _.extend({}, e), r.retries = void 0, this.save(t, _.extend(r, n))
},
can: function (e, n, r) {
var o, i, s;
return e = t[e] || e, o = function (t) {
return function () {
var r, o;
return !!((null != (r = t.get("_links")) && null != (o = r[n]) ? o.methods.indexOf(e.toUpperCase()) : void 0) >= 0)
}
}(this), null != r ? (r = _.flatten([r]), o() && 0 === _.difference(r, null != (i = this.get("_links")) && null != (s = i[n]) ? s.fields : void 0).length) : o()
},
resourceUrl: function (t) {
var e, n, r;
return e = "self" === t ? this.get("url") || (_.isFunction(this.url) ? this.url() : this.url) : null != (n = this.get("_links")) && null != (r = n[t]) ? r.href : void 0, null != e ? Helpers.apiUrl(e) : void 0
},
cleanup: function () {
return this.trigger("cleanup"), null != this._end ? this._end = null : void 0
},
untilEnd: function (t) {
return this._end || (this._end = this.asEventStream("cleanup")), t.takeUntil(this._end)
}
})
}.call(this),
function () {
var t;
t = function (t) {
return _.extend(t, {
user: Flowdock.app.user.id
})
}, Flowdock.socketIoSync = function (e, n, r) {
return "create" === e ? Flowdock.app.connection.sendStream.push(t(n.toJSON())) : "tag-change" === e ? Flowdock.app.connection.sendStream.push(t(_.extend(n.flowKey(), {
event: "tag-change",
content: _.extend({
message: n.get("id")
}, r.tagChanges)
}))) : Backbone.sync(e, n, r)
}
}.call(this),
function () {
Bacon.throttledStream = function (t, e, n) {
return new Bacon.EventStream(function (r) {
var o, i, s;
return s = !1, i = function (s) {
var a;
return t.removeEventListener(e, i, !1), a = r(new Bacon.Next(s)), a !== Bacon.noMore ? setTimeout(o, n) : void 0
}, o = function () {
return s ? void 0 : t.addEventListener(e, i, !1)
}, o(),
function () {
return s = !0, t.removeEventListener(e, i, !1)
}
})
}
}.call(this),
/*!
* Emojie
*
* Copyright (C) 2011 by Ville Lautanala
* Licensed under the MIT license
*/
function (t) {
function e(t, e, n) {
if (null != t)
for (var r, o, i, s = [t]; s.length > 0;)
if (i = s.pop(), 3 == i.nodeType) n(i);
else if (null == i.getAttribute(e.ignoreAttribute || "data-no-emojie"))
for (r = i.childNodes.length, o = r - 1; o >= 0; --o) s.push(i.childNodes[o])
}
function n(t, e) {
var n = document.createElement(e.elementName || "img");
null != e.content && (n.textContent = e.content);
for (attr in e) "content" != attr && "elementName" != attr && n.setAttribute(attr, e[attr]);
return n
}
function r(t) {
return function e(r) {
var o, i, s = r.data,
a = 0,
u = "";
for (a = 0; a < s.length; a++)
if (u += s[a], !(t[u] === !0 || t[u] && t[u + s[a + 1]])) {
if (t[u]) return o = r.splitText(a - u.length + 1), o.length > u.length && (i = o.splitText(u.length)), r.parentNode.replaceChild(n(o, t[u]), o), i ? e(i) : void 0;
u = ""
}
}
}
function o(t) {
function n(n) {
var i = r(o);
return 3 == n.nodeType ? i(n) : e(n, t || {}, i), n
}
var o = {};
return n._emojis = o, n.register = function (t, e) {
var r, i;
for (r = 1; r < t.length; r++) i = t.slice(0, r), i in o || (o[i] = !0);
return o[t] = e, n
}, n.merge = function (t) {
function e(t, e) {
return t && e ? 1 == t ? e : 1 == e ? t : t : t || e
}
var r;
for (r in t._emojis) t._emojis.hasOwnProperty(r) && (o[r] = e(t._emojis[r], o[r]));
return n
}, n
}
o.canRender = function (t) {
function e(t, e) {
var n, r = t.getImageData(0, 0, e, e).data;
for (n = 0; n < r.length; n += 4)
if (r[n] != r[n + 1] && r[n] != r[n + 2]) return !0;
return !1
}
try {
var n = document.createElement("canvas").getContext("2d");
return n.fillText(t, 0, 0), e(n, 10)
} catch (r) {
return !1
}
}, t.Emojie = o
}(window),
function () {
var t, e, n, r, o, i, s, a, u, l, c, p, d, h;
for (window.emojie = Emojie(), window.emojimoji = function (t) {
return t.replace(/:([\w-+]+):/gm, function (t, e) {
var n;
return n = i[e.toLowerCase()], n ? _.last(n) : ":" + e + ":"
})
}, window.remojimoji = function (t) {
var e, n, r, o;
for (e in i)
if (r = i[e])
for (o = r.length - 1; o >= 0; o += -1) n = r[o], t = t.replace(new RegExp(n, "gm"), function (t) {
return Emojie.canRender(t) ? t : ":" + e + ":"
});
return t
}, i = {
"+1": ["\ud83d\udc4d"],
"-1": ["\ud83d\udc4e"],
100: ["\ud83d\udcaf"],
1234: ["\ud83d\udd22"],
"8ball": ["\ud83c\udfb1"],
a: ["\ud83c\udd70"],
ab: ["\ud83c\udd8e"],
abc: ["\ud83d\udd24"],
abcd: ["\ud83d\udd21"],
accept: ["\ud83c\ude51"],
aerial_tramway: ["\ud83d\udea1"],
airplane: ["\u2708", "\u2708\ufe0f"],
alarm_clock: ["\u23f0"],
alien: ["\ud83d\udc7d"],
ambulance: ["\ud83d\ude91"],
anchor: ["\u2693", "\u2693\ufe0f"],
angel: ["\ud83d\udc7c"],
anger: ["\ud83d\udca2"],
angry: ["\ud83d\ude20"],
anguished: ["\ud83d\ude27"],
ant: ["\ud83d\udc1c"],
apple: ["\ud83c\udf4e"],
aquarius: ["\u2652", "\u2652\ufe0f"],
aries: ["\u2648", "\u2648\ufe0f"],
arrow_backward: ["\u25c0", "\u25c0\ufe0f"],
arrow_double_down: ["\u23ec"],
arrow_double_up: ["\u23eb"],
arrow_down: ["\u2b07", "\u2b07\ufe0f"],
arrow_down_small: ["\ud83d\udd3d"],
arrow_forward: ["\u25b6", "\u25b6\ufe0f"],
arrow_heading_down: ["\u2935", "\u2935\ufe0f"],
arrow_heading_up: ["\u2934", "\u2934\ufe0f"],
arrow_left: ["\u2b05", "\u2b05\ufe0f"],
arrow_lower_left: ["\u2199", "\u2199\ufe0f"],
arrow_lower_right: ["\u2198", "\u2198\ufe0f"],
arrow_right: ["\u27a1", "\u27a1\ufe0f"],
arrow_right_hook: ["\u21aa", "\u21aa\ufe0f"],
arrow_up: ["\u2b06", "\u2b06\ufe0f"],
arrow_up_down: ["\u2195", "\u2195\ufe0f"],
arrow_up_small: ["\ud83d\udd3c"],
arrow_upper_left: ["\u2196", "\u2196\ufe0f"],
arrow_upper_right: ["\u2197", "\u2197\ufe0f"],
arrows_clockwise: ["\ud83d\udd03"],
arrows_counterclockwise: ["\ud83d\udd04"],
art: ["\ud83c\udfa8"],
articulated_lorry: ["\ud83d\ude9b"],
astonished: ["\ud83d\ude32"],
athletic_shoe: ["\ud83d\udc5f"],
atm: ["\ud83c\udfe7"],
b: ["\ud83c\udd71"],
baby: ["\ud83d\udc76"],
baby_bottle: ["\ud83c\udf7c"],
baby_chick: ["\ud83d\udc24"],
baby_symbol: ["\ud83d\udebc"],
back: ["\ud83d\udd19"],
baggage_claim: ["\ud83d\udec4"],
balloon: ["\ud83c\udf88"],
ballot_box_with_check: ["\u2611", "\u2611\ufe0f"],
bamboo: ["\ud83c\udf8d"],
banana: ["\ud83c\udf4c"],
bangbang: ["\u203c", "\u203c\ufe0f"],
bank: ["\ud83c\udfe6"],
bar_chart: ["\ud83d\udcca"],
barber: ["\ud83d\udc88"],
baseball: ["\u26be", "\u26be\ufe0f"],
basketball: ["\ud83c\udfc0"],
bath: ["\ud83d\udec0"],
bathtub: ["\ud83d\udec1"],
battery: ["\ud83d\udd0b"],
bear: ["\ud83d\udc3b"],
bee: ["\ud83d\udc1d"],
beer: ["\ud83c\udf7a"],
beers: ["\ud83c\udf7b"],
beetle: ["\ud83d\udc1e"],
beginner: ["\ud83d\udd30"],
bell: ["\ud83d\udd14"],
bento: ["\ud83c\udf71"],
bicyclist: ["\ud83d\udeb4"],
bike: ["\ud83d\udeb2"],
bikini: ["\ud83d\udc59"],
bird: ["\ud83d\udc26"],
birthday: ["\ud83c\udf82"],
black_circle: ["\u26ab", "\u26ab\ufe0f"],
black_joker: ["\ud83c\udccf"],
black_large_square: ["\u2b1b", "\u2b1b\ufe0f"],
black_medium_small_square: ["\u25fe", "\u25fe\ufe0f"],
black_medium_square: ["\u25fc", "\u25fc\ufe0f"],
black_nib: ["\u2712", "\u2712\ufe0f"],
black_small_square: ["\u25aa", "\u25aa\ufe0f"],
black_square_button: ["\ud83d\udd32"],
blossom: ["\ud83c\udf3c"],
blowfish: ["\ud83d\udc21"],
blue_book: ["\ud83d\udcd8"],
blue_car: ["\ud83d\ude99"],
blue_heart: ["\ud83d\udc99"],
blush: ["\ud83d\ude0a"],
boar: ["\ud83d\udc17"],
boat: ["\u26f5", "\u26f5\ufe0f"],
bomb: ["\ud83d\udca3"],
book: ["\ud83d\udcd6"],
bookmark: ["\ud83d\udd16"],
bookmark_tabs: ["\ud83d\udcd1"],
books: ["\ud83d\udcda"],
boom: ["\ud83d\udca5"],
boot: ["\ud83d\udc62"],
bouquet: ["\ud83d\udc90"],
bow: ["\ud83d\ude47"],
bowling: ["\ud83c\udfb3"],
bowtie: null,
boy: ["\ud83d\udc66"],
bread: ["\ud83c\udf5e"],
bride_with_veil: ["\ud83d\udc70"],
bridge_at_night: ["\ud83c\udf09"],
briefcase: ["\ud83d\udcbc"],
broken_heart: ["\ud83d\udc94"],
bug: ["\ud83d\udc1b"],
bulb: ["\ud83d\udca1"],
bullettrain_front: ["\ud83d\ude85"],
bullettrain_side: ["\ud83d\ude84"],
bus: ["\ud83d\ude8c"],
busstop: ["\ud83d\ude8f"],
bust_in_silhouette: ["\ud83d\udc64"],
busts_in_silhouette: ["\ud83d\udc65"],
cactus: ["\ud83c\udf35"],
cake: ["\ud83c\udf70"],
calendar: ["\ud83d\udcc6"],
calling: ["\ud83d\udcf2"],
camel: ["\ud83d\udc2b"],
camera: ["\ud83d\udcf7"],
cancer: ["\u264b", "\u264b\ufe0f"],
candy: ["\ud83c\udf6c"],
capital_abcd: ["\ud83d\udd20"],
capricorn: ["\u2651", "\u2651\ufe0f"],
car: ["\ud83d\ude97"],
card_index: ["\ud83d\udcc7"],
carousel_horse: ["\ud83c\udfa0"],
cat: ["\ud83d\udc31"],
cat2: ["\ud83d\udc08"],
cd: ["\ud83d\udcbf"],
chart: ["\ud83d\udcb9"],
chart_with_downwards_trend: ["\ud83d\udcc9"],
chart_with_upwards_trend: ["\ud83d\udcc8"],
checkered_flag: ["\ud83c\udfc1"],
cherries: ["\ud83c\udf52"],
cherry_blossom: ["\ud83c\udf38"],
chestnut: ["\ud83c\udf30"],
chicken: ["\ud83d\udc14"],
children_crossing: ["\ud83d\udeb8"],
chocolate_bar: ["\ud83c\udf6b"],
christmas_tree: ["\ud83c\udf84"],
church: ["\u26ea", "\u26ea\ufe0f"],
cinema: ["\ud83c\udfa6"],
circus_tent: ["\ud83c\udfaa"],
city_sunrise: ["\ud83c\udf07"],
city_sunset: ["\ud83c\udf06"],
cl: ["\ud83c\udd91"],
clap: ["\ud83d\udc4f"],
clapper: ["\ud83c\udfac"],
clipboard: ["\ud83d\udccb"],
clock1: ["\ud83d\udd50"],
clock10: ["\ud83d\udd59"],
clock1030: ["\ud83d\udd65"],
clock11: ["\ud83d\udd5a"],
clock1130: ["\ud83d\udd66"],
clock12: ["\ud83d\udd5b"],
clock1230: ["\ud83d\udd67"],
clock130: ["\ud83d\udd5c"],
clock2: ["\ud83d\udd51"],
clock230: ["\ud83d\udd5d"],
clock3: ["\ud83d\udd52"],
clock330: ["\ud83d\udd5e"],
clock4: ["\ud83d\udd53"],
clock430: ["\ud83d\udd5f"],
clock5: ["\ud83d\udd54"],
clock530: ["\ud83d\udd60"],
clock6: ["\ud83d\udd55"],
clock630: ["\ud83d\udd61"],
clock7: ["\ud83d\udd56"],
clock730: ["\ud83d\udd62"],
clock8: ["\ud83d\udd57"],
clock830: ["\ud83d\udd63"],
clock9: ["\ud83d\udd58"],
clock930: ["\ud83d\udd64"],
closed_book: ["\ud83d\udcd5"],
closed_lock_with_key: ["\ud83d\udd10"],
closed_umbrella: ["\ud83c\udf02"],
cloud: ["\u2601", "\u2601\ufe0f"],
clubs: ["\u2663", "\u2663\ufe0f"],
cn: ["\ud83c\udde8\ud83c\uddf3"],
cocktail: ["\ud83c\udf78"],
coffee: ["\u2615", "\u2615\ufe0f"],
cold_sweat: ["\ud83d\ude30"],
collision: ["\ud83d\udca5"],
computer: ["\ud83d\udcbb"],
confetti_ball: ["\ud83c\udf8a"],
confounded: ["\ud83d\ude16"],
confused: ["\ud83d\ude15"],
congratulations: ["\u3297", "\u3297\ufe0f"],
construction: ["\ud83d\udea7"],
construction_worker: ["\ud83d\udc77"],
convenience_store: ["\ud83c\udfea"],
cookie: ["\ud83c\udf6a"],
cool: ["\ud83c\udd92"],
cop: ["\ud83d\udc6e"],
copyright: ["\xa9"],
corn: ["\ud83c\udf3d"],
couple: ["\ud83d\udc6b"],
couple_with_heart: ["\ud83d\udc91"],
couplekiss: ["\ud83d\udc8f"],
cow: ["\ud83d\udc2e"],
cow2: ["\ud83d\udc04"],
credit_card: ["\ud83d\udcb3"],
crescent_moon: ["\ud83c\udf19"],
crocodile: ["\ud83d\udc0a"],
crossed_flags: ["\ud83c\udf8c"],
crown: ["\ud83d\udc51"],
cry: ["\ud83d\ude22"],
crying_cat_face: ["\ud83d\ude3f"],
crystal_ball: ["\ud83d\udd2e"],
cupid: ["\ud83d\udc98"],
curly_loop: ["\u27b0"],
currency_exchange: ["\ud83d\udcb1"],
curry: ["\ud83c\udf5b"],
custard: ["\ud83c\udf6e"],
customs: ["\ud83d\udec3"],
cyclone: ["\ud83c\udf00"],
dancer: ["\ud83d\udc83"],
dancers: ["\ud83d\udc6f"],
dango: ["\ud83c\udf61"],
dart: ["\ud83c\udfaf"],
dash: ["\ud83d\udca8"],
date: ["\ud83d\udcc5"],
de: ["\ud83c\udde9\ud83c\uddea"],
deciduous_tree: ["\ud83c\udf33"],
department_store: ["\ud83c\udfec"],
diamond_shape_with_a_dot_inside: ["\ud83d\udca0"],
diamonds: ["\u2666", "\u2666\ufe0f"],
disappointed: ["\ud83d\ude1e"],
disappointed_relieved: ["\ud83d\ude25"],
dizzy: ["\ud83d\udcab"],
dizzy_face: ["\ud83d\ude35"],
do_not_litter: ["\ud83d\udeaf"],
dog: ["\ud83d\udc36"],
dog2: ["\ud83d\udc15"],
dollar: ["\ud83d\udcb5"],
dolls: ["\ud83c\udf8e"],
dolphin: ["\ud83d\udc2c"],
door: ["\ud83d\udeaa"],
doughnut: ["\ud83c\udf69"],
dragon: ["\ud83d\udc09"],
dragon_face: ["\ud83d\udc32"],
dress: ["\ud83d\udc57"],
dromedary_camel: ["\ud83d\udc2a"],
droplet: ["\ud83d\udca7"],
dvd: ["\ud83d\udcc0"],
"e-mail": ["\ud83d\udce7"],
ear: ["\ud83d\udc42"],
ear_of_rice: ["\ud83c\udf3e"],
earth_africa: ["\ud83c\udf0d"],
earth_americas: ["\ud83c\udf0e"],
earth_asia: ["\ud83c\udf0f"],
egg: ["\ud83c\udf73"],
eggplant: ["\ud83c\udf46"],
eight: ["8\u20e3", "8\ufe0f\u20e3"],
eight_pointed_black_star: ["\u2734", "\u2734\ufe0f"],
eight_spoked_asterisk: ["\u2733", "\u2733\ufe0f"],
electric_plug: ["\ud83d\udd0c"],
elephant: ["\ud83d\udc18"],
email: ["\u2709", "\u2709\ufe0f"],
end: ["\ud83d\udd1a"],
envelope: ["\u2709", "\u2709\ufe0f"],
envelope_with_arrow: ["\ud83d\udce9"],
es: ["\ud83c\uddea\ud83c\uddf8"],
euro: ["\ud83d\udcb6"],
european_castle: ["\ud83c\udff0"],
european_post_office: ["\ud83c\udfe4"],
evergreen_tree: ["\ud83c\udf32"],
exclamation: ["\u2757", "\u2757\ufe0f"],
expressionless: ["\ud83d\ude11"],
eyeglasses: ["\ud83d\udc53"],
eyes: ["\ud83d\udc40"],
facepunch: ["\ud83d\udc4a"],
factory: ["\ud83c\udfed"],
fallen_leaf: ["\ud83c\udf42"],
family: ["\ud83d\udc6a"],
fast_forward: ["\u23e9"],
fax: ["\ud83d\udce0"],
fearful: ["\ud83d\ude28"],
feelsgood: null,
feet: ["\ud83d\udc3e"],
ferris_wheel: ["\ud83c\udfa1"],
file_folder: ["\ud83d\udcc1"],
finnadie: null,
fire: ["\ud83d\udd25"],
fire_engine: ["\ud83d\ude92"],
fireworks: ["\ud83c\udf86"],
first_quarter_moon: ["\ud83c\udf13"],
first_quarter_moon_with_face: ["\ud83c\udf1b"],
fish: ["\ud83d\udc1f"],
fish_cake: ["\ud83c\udf65"],
fishing_pole_and_fish: ["\ud83c\udfa3"],
fist: ["\u270a"],
five: ["5\u20e3", "5\ufe0f\u20e3"],
flags: ["\ud83c\udf8f"],
flashlight: ["\ud83d\udd26"],
flipper: ["\ud83d\udc2c"],
floppy_disk: ["\ud83d\udcbe"],
flower_playing_cards: ["\ud83c\udfb4"],
flushed: ["\ud83d\ude33"],
foggy: ["\ud83c\udf01"],
football: ["\ud83c\udfc8"],
footprints: ["\ud83d\udc63"],
fork_and_knife: ["\ud83c\udf74"],
fountain: ["\u26f2", "\u26f2\ufe0f"],
four: ["4\u20e3", "4\ufe0f\u20e3"],
four_leaf_clover: ["\ud83c\udf40"],
fr: ["\ud83c\uddeb\ud83c\uddf7"],
free: ["\ud83c\udd93"],
fried_shrimp: ["\ud83c\udf64"],
fries: ["\ud83c\udf5f"],
frog: ["\ud83d\udc38"],
frowning: ["\ud83d\ude26"],
fu: null,
fuelpump: ["\u26fd", "\u26fd\ufe0f"],
full_moon: ["\ud83c\udf15"],
full_moon_with_face: ["\ud83c\udf1d"],
game_die: ["\ud83c\udfb2"],
gb: ["\ud83c\uddec\ud83c\udde7"],
gem: ["\ud83d\udc8e"],
gemini: ["\u264a", "\u264a\ufe0f"],
ghost: ["\ud83d\udc7b"],
gift: ["\ud83c\udf81"],
gift_heart: ["\ud83d\udc9d"],
girl: ["\ud83d\udc67"],
globe_with_meridians: ["\ud83c\udf10"],
goat: ["\ud83d\udc10"],
goberserk: null,
godmode: null,
golf: ["\u26f3", "\u26f3\ufe0f"],
grapes: ["\ud83c\udf47"],
green_apple: ["\ud83c\udf4f"],
green_book: ["\ud83d\udcd7"],
green_heart: ["\ud83d\udc9a"],
grey_exclamation: ["\u2755"],
grey_question: ["\u2754"],
grimacing: ["\ud83d\ude2c"],
grin: ["\ud83d\ude01"],
grinning: ["\ud83d\ude00"],
guardsman: ["\ud83d\udc82"],
guitar: ["\ud83c\udfb8"],
gun: ["\ud83d\udd2b"],
haircut: ["\ud83d\udc87"],
hamburger: ["\ud83c\udf54"],
hammer: ["\ud83d\udd28"],
hamster: ["\ud83d\udc39"],
hand: ["\u270b"],
handbag: ["\ud83d\udc5c"],
hankey: ["\ud83d\udca9"],
hash: ["#\u20e3", "#\ufe0f\u20e3"],
hatched_chick: ["\ud83d\udc25"],
hatching_chick: ["\ud83d\udc23"],
headphones: ["\ud83c\udfa7"],
hear_no_evil: ["\ud83d\ude49"],
heart: ["\u2764", "\u2764\ufe0f"],
heart_decoration: ["\ud83d\udc9f"],
heart_eyes: ["\ud83d\ude0d"],
heart_eyes_cat: ["\ud83d\ude3b"],
heartbeat: ["\ud83d\udc93"],
heartpulse: ["\ud83d\udc97"],
hearts: ["\u2665", "\u2665\ufe0f"],
heavy_check_mark: ["\u2714", "\u2714\ufe0f"],
heavy_division_sign: ["\u2797"],
heavy_dollar_sign: ["\ud83d\udcb2"],
heavy_exclamation_mark: ["\u2757", "\u2757\ufe0f"],
heavy_minus_sign: ["\u2796"],
heavy_multiplication_x: ["\u2716", "\u2716\ufe0f"],
heavy_plus_sign: ["\u2795"],
helicopter: ["\ud83d\ude81"],
herb: ["\ud83c\udf3f"],
hibiscus: ["\ud83c\udf3a"],
high_brightness: ["\ud83d\udd06"],
high_heel: ["\ud83d\udc60"],
hocho: ["\ud83d\udd2a"],
honey_pot: ["\ud83c\udf6f"],
honeybee: ["\ud83d\udc1d"],
horse: ["\ud83d\udc34"],
horse_racing: ["\ud83c\udfc7"],
hospital: ["\ud83c\udfe5"],
hotel: ["\ud83c\udfe8"],
hotsprings: ["\u2668", "\u2668\ufe0f"],
hourglass: ["\u231b", "\u231b\ufe0f"],
hourglass_flowing_sand: ["\u23f3"],
house: ["\ud83c\udfe0"],
house_with_garden: ["\ud83c\udfe1"],
hurtrealbad: null,
hushed: ["\ud83d\ude2f"],
ice_cream: ["\ud83c\udf68"],
icecream: ["\ud83c\udf66"],
id: ["\ud83c\udd94"],
ideograph_advantage: ["\ud83c\ude50"],
imp: ["\ud83d\udc7f"],
inbox_tray: ["\ud83d\udce5"],
incoming_envelope: ["\ud83d\udce8"],
information_desk_person: ["\ud83d\udc81"],
information_source: ["\u2139", "\u2139\ufe0f"],
innocent: ["\ud83d\ude07"],
interrobang: ["\u2049", "\u2049\ufe0f"],
iphone: ["\ud83d\udcf1"],
it: ["\ud83c\uddee\ud83c\uddf9"],
izakaya_lantern: ["\ud83c\udfee"],
jack_o_lantern: ["\ud83c\udf83"],
japan: ["\ud83d\uddfe"],
japanese_castle: ["\ud83c\udfef"],
japanese_goblin: ["\ud83d\udc7a"],
japanese_ogre: ["\ud83d\udc79"],
jeans: ["\ud83d\udc56"],
joy: ["\ud83d\ude02"],
joy_cat: ["\ud83d\ude39"],
jp: ["\ud83c\uddef\ud83c\uddf5"],
key: ["\ud83d\udd11"],
keycap_ten: ["\ud83d\udd1f"],
kimono: ["\ud83d\udc58"],
kiss: ["\ud83d\udc8b"],
kissing: ["\ud83d\ude17"],
kissing_cat: ["\ud83d\ude3d"],
kissing_closed_eyes: ["\ud83d\ude1a"],
kissing_heart: ["\ud83d\ude18"],
kissing_smiling_eyes: ["\ud83d\ude19"],
koala: ["\ud83d\udc28"],
koko: ["\ud83c\ude01"],
kr: ["\ud83c\uddf0\ud83c\uddf7"],
lantern: ["\ud83c\udfee"],
large_blue_circle: ["\ud83d\udd35"],
large_blue_diamond: ["\ud83d\udd37"],
large_orange_diamond: ["\ud83d\udd36"],
last_quarter_moon: ["\ud83c\udf17"],
last_quarter_moon_with_face: ["\ud83c\udf1c"],
laughing: ["\ud83d\ude06"],
leaves: ["\ud83c\udf43"],
ledger: ["\ud83d\udcd2"],
left_luggage: ["\ud83d\udec5"],
left_right_arrow: ["\u2194", "\u2194\ufe0f"],
leftwards_arrow_with_hook: ["\u21a9", "\u21a9\ufe0f"],
lemon: ["\ud83c\udf4b"],
leo: ["\u264c", "\u264c\ufe0f"],
leopard: ["\ud83d\udc06"],
libra: ["\u264e", "\u264e\ufe0f"],
light_rail: ["\ud83d\ude88"],
link: ["\ud83d\udd17"],
lips: ["\ud83d\udc44"],
lipstick: ["\ud83d\udc84"],
lock: ["\ud83d\udd12"],
lock_with_ink_pen: ["\ud83d\udd0f"],
lollipop: ["\ud83c\udf6d"],
loop: ["\u27bf"],
loud_sound: ["\ud83d\udd0a"],
loudspeaker: ["\ud83d\udce2"],
love_hotel: ["\ud83c\udfe9"],
love_letter: ["\ud83d\udc8c"],
low_brightness: ["\ud83d\udd05"],
m: ["\u24c2", "\u24c2\ufe0f"],
mag: ["\ud83d\udd0d"],
mag_right: ["\ud83d\udd0e"],
mahjong: ["\ud83c\udc04", "\ud83c\udc04\ufe0f"],
mailbox: ["\ud83d\udceb"],
mailbox_closed: ["\ud83d\udcea"],
mailbox_with_mail: ["\ud83d\udcec"],
mailbox_with_no_mail: ["\ud83d\udced"],
man: ["\ud83d\udc68"],
man_with_gua_pi_mao: ["\ud83d\udc72"],
man_with_turban: ["\ud83d\udc73"],
mans_shoe: ["\ud83d\udc5e"],
maple_leaf: ["\ud83c\udf41"],
mask: ["\ud83d\ude37"],
massage: ["\ud83d\udc86"],
meat_on_bone: ["\ud83c\udf56"],
mega: ["\ud83d\udce3"],
melon: ["\ud83c\udf48"],
memo: ["\ud83d\udcdd"],
mens: ["\ud83d\udeb9"],
metal: null,
metro: ["\ud83d\ude87"],
microphone: ["\ud83c\udfa4"],
microscope: ["\ud83d\udd2c"],
milky_way: ["\ud83c\udf0c"],
minibus: ["\ud83d\ude90"],
minidisc: ["\ud83d\udcbd"],
mobile_phone_off: ["\ud83d\udcf4"],
money_with_wings: ["\ud83d\udcb8"],
moneybag: ["\ud83d\udcb0"],
monkey: ["\ud83d\udc12"],
monkey_face: ["\ud83d\udc35"],
monorail: ["\ud83d\ude9d"],
moon: ["\ud83c\udf14"],
mortar_board: ["\ud83c\udf93"],
mount_fuji: ["\ud83d\uddfb"],
mountain_bicyclist: ["\ud83d\udeb5"],
mountain_cableway: ["\ud83d\udea0"],
mountain_railway: ["\ud83d\ude9e"],
mouse: ["\ud83d\udc2d"],
mouse2: ["\ud83d\udc01"],
movie_camera: ["\ud83c\udfa5"],
moyai: ["\ud83d\uddff"],
muscle: ["\ud83d\udcaa"],
mushroom: ["\ud83c\udf44"],
musical_keyboard: ["\ud83c\udfb9"],
musical_note: ["\ud83c\udfb5"],
musical_score: ["\ud83c\udfbc"],
mute: ["\ud83d\udd07"],
nail_care: ["\ud83d\udc85"],
name_badge: ["\ud83d\udcdb"],
neckbeard: null,
necktie: ["\ud83d\udc54"],
negative_squared_cross_mark: ["\u274e"],
neutral_face: ["\ud83d\ude10"],
"new": ["\ud83c\udd95"],
new_moon: ["\ud83c\udf11"],
new_moon_with_face: ["\ud83c\udf1a"],
newspaper: ["\ud83d\udcf0"],
ng: ["\ud83c\udd96"],
night_with_stars: ["\ud83c\udf03"],
nine: ["9\u20e3", "9\ufe0f\u20e3"],
no_bell: ["\ud83d\udd15"],
no_bicycles: ["\ud83d\udeb3"],
no_entry: ["\u26d4", "\u26d4\ufe0f"],
no_entry_sign: ["\ud83d\udeab"],
no_good: ["\ud83d\ude45"],
no_mobile_phones: ["\ud83d\udcf5"],
no_mouth: ["\ud83d\ude36"],
no_pedestrians: ["\ud83d\udeb7"],
no_smoking: ["\ud83d\udead"],
"non-potable_water": ["\ud83d\udeb1"],
nose: ["\ud83d\udc43"],
notebook: ["\ud83d\udcd3"],
notebook_with_decorative_cover: ["\ud83d\udcd4"],
notes: ["\ud83c\udfb6"],
nut_and_bolt: ["\ud83d\udd29"],
o: ["\u2b55", "\u2b55\ufe0f"],
o2: ["\ud83c\udd7e"],
ocean: ["\ud83c\udf0a"],
octocat: null,
octopus: ["\ud83d\udc19"],
oden: ["\ud83c\udf62"],
office: ["\ud83c\udfe2"],
ok: ["\ud83c\udd97"],
ok_hand: ["\ud83d\udc4c"],
ok_woman: ["\ud83d\ude46"],
older_man: ["\ud83d\udc74"],
older_woman: ["\ud83d\udc75"],
on: ["\ud83d\udd1b"],
oncoming_automobile: ["\ud83d\ude98"],
oncoming_bus: ["\ud83d\ude8d"],
oncoming_police_car: ["\ud83d\ude94"],
oncoming_taxi: ["\ud83d\ude96"],
one: ["1\u20e3", "1\ufe0f\u20e3"],
open_book: ["\ud83d\udcd6"],
open_file_folder: ["\ud83d\udcc2"],
open_hands: ["\ud83d\udc50"],
open_mouth: ["\ud83d\ude2e"],
ophiuchus: ["\u26ce"],
orange_book: ["\ud83d\udcd9"],
outbox_tray: ["\ud83d\udce4"],
ox: ["\ud83d\udc02"],
"package": ["\ud83d\udce6"],
page_facing_up: ["\ud83d\udcc4"],
page_with_curl: ["\ud83d\udcc3"],
pager: ["\ud83d\udcdf"],
palm_tree: ["\ud83c\udf34"],
panda_face: ["\ud83d\udc3c"],
paperclip: ["\ud83d\udcce"],
parking: ["\ud83c\udd7f", "\ud83c\udd7f\ufe0f"],
part_alternation_mark: ["\u303d", "\u303d\ufe0f"],
partly_sunny: ["\u26c5", "\u26c5\ufe0f"],
passport_control: ["\ud83d\udec2"],
paw_prints: ["\ud83d\udc3e"],
peach: ["\ud83c\udf51"],
pear: ["\ud83c\udf50"],
pencil: ["\ud83d\udcdd"],
pencil2: ["\u270f", "\u270f\ufe0f"],
penguin: ["\ud83d\udc27"],
pensive: ["\ud83d\ude14"],
performing_arts: ["\ud83c\udfad"],
persevere: ["\ud83d\ude23"],
person_frowning: ["\ud83d\ude4d"],
person_with_blond_hair: ["\ud83d\udc71"],
person_with_pouting_face: ["\ud83d\ude4e"],
phone: ["\u260e", "\u260e\ufe0f"],
pig: ["\ud83d\udc37"],
pig2: ["\ud83d\udc16"],
pig_nose: ["\ud83d\udc3d"],
pill: ["\ud83d\udc8a"],
pineapple: ["\ud83c\udf4d"],
pisces: ["\u2653", "\u2653\ufe0f"],
pizza: ["\ud83c\udf55"],
point_down: ["\ud83d\udc47"],
point_left: ["\ud83d\udc48"],
point_right: ["\ud83d\udc49"],
point_up: ["\u261d", "\u261d\ufe0f"],
point_up_2: ["\ud83d\udc46"],
police_car: ["\ud83d\ude93"],
poodle: ["\ud83d\udc29"],
poop: ["\ud83d\udca9"],
post_office: ["\ud83c\udfe3"],
postal_horn: ["\ud83d\udcef"],
postbox: ["\ud83d\udcee"],
potable_water: ["\ud83d\udeb0"],
pouch: ["\ud83d\udc5d"],
poultry_leg: ["\ud83c\udf57"],
pound: ["\ud83d\udcb7"],
pouting_cat: ["\ud83d\ude3e"],
pray: ["\ud83d\ude4f"],
princess: ["\ud83d\udc78"],
punch: ["\ud83d\udc4a"],
purple_heart: ["\ud83d\udc9c"],
purse: ["\ud83d\udc5b"],
pushpin: ["\ud83d\udccc"],
put_litter_in_its_place: ["\ud83d\udeae"],
question: ["\u2753"],
rabbit: ["\ud83d\udc30"],
rabbit2: ["\ud83d\udc07"],
racehorse: ["\ud83d\udc0e"],
radio: ["\ud83d\udcfb"],
radio_button: ["\ud83d\udd18"],
rage: ["\ud83d\ude21"],
rage1: null,
rage2: null,
rage3: null,
rage4: null,
railway_car: ["\ud83d\ude83"],
rainbow: ["\ud83c\udf08"],
raised_hand: ["\u270b"],
raised_hands: ["\ud83d\ude4c"],
raising_hand: ["\ud83d\ude4b"],
ram: ["\ud83d\udc0f"],
ramen: ["\ud83c\udf5c"],
rat: ["\ud83d\udc00"],
recycle: ["\u267b", "\u267b\ufe0f"],
red_car: ["\ud83d\ude97"],
red_circle: ["\ud83d\udd34"],
registered: ["\xae"],
relaxed: ["\u263a", "\u263a\ufe0f"],
relieved: ["\ud83d\ude0c"],
repeat: ["\ud83d\udd01"],
repeat_one: ["\ud83d\udd02"],
restroom: ["\ud83d\udebb"],
revolving_hearts: ["\ud83d\udc9e"],
rewind: ["\u23ea"],
ribbon: ["\ud83c\udf80"],
rice: ["\ud83c\udf5a"],
rice_ball: ["\ud83c\udf59"],
rice_cracker: ["\ud83c\udf58"],
rice_scene: ["\ud83c\udf91"],
ring: ["\ud83d\udc8d"],
rocket: ["\ud83d\ude80"],
roller_coaster: ["\ud83c\udfa2"],
rooster: ["\ud83d\udc13"],
rose: ["\ud83c\udf39"],
rotating_light: ["\ud83d\udea8"],
round_pushpin: ["\ud83d\udccd"],
rowboat: ["\ud83d\udea3"],
ru: ["\ud83c\uddf7\ud83c\uddfa"],
rugby_football: ["\ud83c\udfc9"],
runner: ["\ud83c\udfc3"],
running: ["\ud83c\udfc3"],
running_shirt_with_sash: ["\ud83c\udfbd"],
sa: ["\ud83c\ude02"],
sagittarius: ["\u2650", "\u2650\ufe0f"],
sailboat: ["\u26f5", "\u26f5\ufe0f"],
sake: ["\ud83c\udf76"],
sandal: ["\ud83d\udc61"],
santa: ["\ud83c\udf85"],
satellite: ["\ud83d\udce1"],
satisfied: ["\ud83d\ude06"],
saxophone: ["\ud83c\udfb7"],
school: ["\ud83c\udfeb"],
school_satchel: ["\ud83c\udf92"],
scissors: ["\u2702", "\u2702\ufe0f"],
scorpius: ["\u264f", "\u264f\ufe0f"],
scream: ["\ud83d\ude31"],
scream_cat: ["\ud83d\ude40"],
scroll: ["\ud83d\udcdc"],
seat: ["\ud83d\udcba"],
secret: ["\u3299", "\u3299\ufe0f"],
see_no_evil: ["\ud83d\ude48"],
seedling: ["\ud83c\udf31"],
seven: ["7\u20e3", "7\ufe0f\u20e3"],
shaved_ice: ["\ud83c\udf67"],
sheep: ["\ud83d\udc11"],
shell: ["\ud83d\udc1a"],
ship: ["\ud83d\udea2"],
shipit: null,
shirt: ["\ud83d\udc55"],
shit: ["\ud83d\udca9"],
shoe: ["\ud83d\udc5e"],
shower: ["\ud83d\udebf"],
signal_strength: ["\ud83d\udcf6"],
six: ["6\u20e3", "6\ufe0f\u20e3"],
six_pointed_star: ["\ud83d\udd2f"],
ski: ["\ud83c\udfbf"],
skull: ["\ud83d\udc80"],
sleeping: ["\ud83d\ude34"],
sleepy: ["\ud83d\ude2a"],
slot_machine: ["\ud83c\udfb0"],
small_blue_diamond: ["\ud83d\udd39"],
small_orange_diamond: ["\ud83d\udd38"],
small_red_triangle: ["\ud83d\udd3a"],
small_red_triangle_down: ["\ud83d\udd3b"],
smile: ["\ud83d\ude04"],
smile_cat: ["\ud83d\ude38"],
smiley: ["\ud83d\ude03"],
smiley_cat: ["\ud83d\ude3a"],
smiling_imp: ["\ud83d\ude08"],
smirk: ["\ud83d\ude0f"],
smirk_cat: ["\ud83d\ude3c"],
smoking: ["\ud83d\udeac"],
snail: ["\ud83d\udc0c"],
snake: ["\ud83d\udc0d"],
snowboarder: ["\ud83c\udfc2"],
snowflake: ["\u2744", "\u2744\ufe0f"],
snowman: ["\u26c4", "\u26c4\ufe0f"],
sob: ["\ud83d\ude2d"],
soccer: ["\u26bd", "\u26bd\ufe0f"],
soon: ["\ud83d\udd1c"],
sos: ["\ud83c\udd98"],
sound: ["\ud83d\udd09"],
space_invader: ["\ud83d\udc7e"],
spades: ["\u2660", "\u2660\ufe0f"],
spaghetti: ["\ud83c\udf5d"],
sparkle: ["\u2747", "\u2747\ufe0f"],
sparkler: ["\ud83c\udf87"],
sparkles: ["\u2728"],
sparkling_heart: ["\ud83d\udc96"],
speak_no_evil: ["\ud83d\ude4a"],
speaker: ["\ud83d\udd08"],
speech_balloon: ["\ud83d\udcac"],
speedboat: ["\ud83d\udea4"],
squirrel: null,
star: ["\u2b50", "\u2b50\ufe0f"],
star2: ["\ud83c\udf1f"],
stars: ["\ud83c\udf20"],
station: ["\ud83d\ude89"],
statue_of_liberty: ["\ud83d\uddfd"],
steam_locomotive: ["\ud83d\ude82"],
stew: ["\ud83c\udf72"],
straight_ruler: ["\ud83d\udccf"],
strawberry: ["\ud83c\udf53"],
stuck_out_tongue: ["\ud83d\ude1b"],
stuck_out_tongue_closed_eyes: ["\ud83d\ude1d"],
stuck_out_tongue_winking_eye: ["\ud83d\ude1c"],
sun_with_face: ["\ud83c\udf1e"],
sunflower: ["\ud83c\udf3b"],
sunglasses: ["\ud83d\ude0e"],
sunny: ["\u2600", "\u2600\ufe0f"],
sunrise: ["\ud83c\udf05"],
sunrise_over_mountains: ["\ud83c\udf04"],
surfer: ["\ud83c\udfc4"],
sushi: ["\ud83c\udf63"],
suspect: null,
suspension_railway: ["\ud83d\ude9f"],
sweat: ["\ud83d\ude13"],
sweat_drops: ["\ud83d\udca6"],
sweat_smile: ["\ud83d\ude05"],
sweet_potato: ["\ud83c\udf60"],
swimmer: ["\ud83c\udfca"],
symbols: ["\ud83d\udd23"],
syringe: ["\ud83d\udc89"],
tada: ["\ud83c\udf89"],
tanabata_tree: ["\ud83c\udf8b"],
tangerine: ["\ud83c\udf4a"],
taurus: ["\u2649", "\u2649\ufe0f"],
taxi: ["\ud83d\ude95"],
tea: ["\ud83c\udf75"],
telephone: ["\u260e", "\u260e\ufe0f"],
telephone_receiver: ["\ud83d\udcde"],
telescope: ["\ud83d\udd2d"],
tennis: ["\ud83c\udfbe"],
tent: ["\u26fa", "\u26fa\ufe0f"],
thought_balloon: ["\ud83d\udcad"],
three: ["3\u20e3", "3\ufe0f\u20e3"],
thumbsdown: ["\ud83d\udc4e"],
thumbsup: ["\ud83d\udc4d"],
ticket: ["\ud83c\udfab"],
tiger: ["\ud83d\udc2f"],
tiger2: ["\ud83d\udc05"],
tired_face: ["\ud83d\ude2b"],
tm: ["\u2122"],
toilet: ["\ud83d\udebd"],
tokyo_tower: ["\ud83d\uddfc"],
tomato: ["\ud83c\udf45"],
tongue: ["\ud83d\udc45"],
top: ["\ud83d\udd1d"],
tophat: ["\ud83c\udfa9"],
tractor: ["\ud83d\ude9c"],
traffic_light: ["\ud83d\udea5"],
train: ["\ud83d\ude8b"],
train2: ["\ud83d\ude86"],
tram: ["\ud83d\ude8a"],
triangular_flag_on_post: ["\ud83d\udea9"],
triangular_ruler: ["\ud83d\udcd0"],
trident: ["\ud83d\udd31"],
triumph: ["\ud83d\ude24"],
trolleybus: ["\ud83d\ude8e"],
trollface: null,
trophy: ["\ud83c\udfc6"],
tropical_drink: ["\ud83c\udf79"],
tropical_fish: ["\ud83d\udc20"],
truck: ["\ud83d\ude9a"],
trumpet: ["\ud83c\udfba"],
tshirt: ["\ud83d\udc55"],
tulip: ["\ud83c\udf37"],
turtle: ["\ud83d\udc22"],
tv: ["\ud83d\udcfa"],
twisted_rightwards_arrows: ["\ud83d\udd00"],
two: ["2\u20e3", "2\ufe0f\u20e3"],
two_hearts: ["\ud83d\udc95"],
two_men_holding_hands: ["\ud83d\udc6c"],
two_women_holding_hands: ["\ud83d\udc6d"],
u5272: ["\ud83c\ude39"],
u5408: ["\ud83c\ude34"],
u55b6: ["\ud83c\ude3a"],
u6307: ["\ud83c\ude2f", "\ud83c\ude2f\ufe0f"],
u6708: ["\ud83c\ude37"],
u6709: ["\ud83c\ude36"],
u6e80: ["\ud83c\ude35"],
u7121: ["\ud83c\ude1a", "\ud83c\ude1a\ufe0f"],
u7533: ["\ud83c\ude38"],
u7981: ["\ud83c\ude32"],
u7a7a: ["\ud83c\ude33"],
uk: ["\ud83c\uddec\ud83c\udde7"],
umbrella: ["\u2614", "\u2614\ufe0f"],
unamused: ["\ud83d\ude12"],
underage: ["\ud83d\udd1e"],
unlock: ["\ud83d\udd13"],
up: ["\ud83c\udd99"],
us: ["\ud83c\uddfa\ud83c\uddf8"],
v: ["\u270c", "\u270c\ufe0f"],
vertical_traffic_light: ["\ud83d\udea6"],
vhs: ["\ud83d\udcfc"],
vibration_mode: ["\ud83d\udcf3"],
video_camera: ["\ud83d\udcf9"],
video_game: ["\ud83c\udfae"],
violin: ["\ud83c\udfbb"],
virgo: ["\u264d", "\u264d\ufe0f"],
volcano: ["\ud83c\udf0b"],
vs: ["\ud83c\udd9a"],
walking: ["\ud83d\udeb6"],
waning_crescent_moon: ["\ud83c\udf18"],
waning_gibbous_moon: ["\ud83c\udf16"],
warning: ["\u26a0", "\u26a0\ufe0f"],
watch: ["\u231a", "\u231a\ufe0f"],
water_buffalo: ["\ud83d\udc03"],
watermelon: ["\ud83c\udf49"],
wave: ["\ud83d\udc4b"],
wavy_dash: ["\u3030"],
waxing_crescent_moon: ["\ud83c\udf12"],
waxing_gibbous_moon: ["\ud83c\udf14"],
wc: ["\ud83d\udebe"],
weary: ["\ud83d\ude29"],
wedding: ["\ud83d\udc92"],
whale: ["\ud83d\udc33"],
whale2: ["\ud83d\udc0b"],
wheelchair: ["\u267f", "\u267f\ufe0f"],
white_check_mark: ["\u2705"],
white_circle: ["\u26aa", "\u26aa\ufe0f"],
white_flower: ["\ud83d\udcae"],
white_large_square: ["\u2b1c", "\u2b1c\ufe0f"],
white_medium_small_square: ["\u25fd", "\u25fd\ufe0f"],
white_medium_square: ["\u25fb", "\u25fb\ufe0f"],
white_small_square: ["\u25ab", "\u25ab\ufe0f"],
white_square_button: ["\ud83d\udd33"],
wind_chime: ["\ud83c\udf90"],
wine_glass: ["\ud83c\udf77"],
wink: ["\ud83d\ude09"],
wolf: ["\ud83d\udc3a"],
woman: ["\ud83d\udc69"],
womans_clothes: ["\ud83d\udc5a"],
womans_hat: ["\ud83d\udc52"],
womens: ["\ud83d\udeba"],
worried: ["\ud83d\ude1f"],
wrench: ["\ud83d\udd27"],
x: ["\u274c"],
yellow_heart: ["\ud83d\udc9b"],
yen: ["\ud83d\udcb4"],
yum: ["\ud83d\ude0b"],
zap: ["\u26a1", "\u26a1\ufe0f"],
zero: ["0\u20e3", "0\ufe0f\u20e3"],
zzz: ["\ud83d\udca4"]
}, t = function (t, e) {
var n, r;
return n = t.charCodeAt(e), r = t.charCodeAt(e + 1), n >= 55296 && 56319 >= n && r >= 56320 && 57343 >= r ? 1024 * (n - 55296) + (r - 56320) + 65536 : n
}, e = function (e) {
var n, r, o, i, s;
for (r = e.length > 2 ? [t(e, 0), t(e, 2)] : [t(e, 0)], s = [], o = 0, i = r.length; i > o; o++) n = r[o], s.push(n.toString(16));
return s
}, a = function (t) {
return "https://d2ph5hv9wbwvla.cloudfront.net/emoji/2/" + encodeURIComponent(t) + ".png"
}, o = Emojie.canRender("\ud83c\udc04") ? function (t, e) {
return {
elementName: "span",
content: e,
title: ":" + t + ":",
"class": "emojie"
}
} : function (t) {
return {
src: a(t),
title: ":" + t + ":",
"class": "emojie"
}
}, d = _.keys(i).reverse(), u = 0, c = d.length; c > u; u++)
if (r = d[u], i[r])
for (h = i[r], l = 0, p = h.length; p > l; l++) s = h[l], emojie.register(s, o(r, s));
window.emojie.custom = Emojie();
for (r in i) s = i[r], s || window.emojie.custom.register(":" + r + ":", {
title: ":" + r + ":",
src: a(r),
"class": "emojie"
});
window.emojimoji.autocomplete = function () {
var t;
t = [];
for (n in i) s = i[n], t.push(":" + n + ":");
return t
}()
}.call(this),
function () {
Flowdock.ActivityHeartbeats = function () {
function t(t, e, n, r) {
this.connection = e, this.flows = r, this.lastFlowActivity = {}, this.activities = n.sampledBy(t.merge(n.changes()).delay(0), function (t, e) {
return {
flow: t,
flowChange: t === e
}
})
}
return t.ACTIVITY_HEARTBEAT_INTERVAL = 6e4, t.prototype.start = function () {
return this.stopped = !1, this.setupEmitters()
}, t.prototype.stop = function () {
return this.stopped = !0
}, t.prototype.userBecameActive = function (t) {
var e;
return e = (new Date).getTime(), null == this.lastFlowActivity[t.id] || e - this.lastFlowActivity[t.id] > Flowdock.ActivityHeartbeats.ACTIVITY_HEARTBEAT_INTERVAL
}, t.prototype.setupEmitters = function () {
return this.activities.onValue(function (t) {
return function (e) {
var n, r;
return t.stopped ? Bacon.noMore : (null != e ? e.flow : void 0) ? (n = e.flow, r = (new Date).getTime(), e.flowChange || t.userBecameActive(n) ? (t.sendHeartbeat(n, r), t.lastFlowActivity[n.id] = r) : void 0) : Bacon.more
}
}(this)), Bacon.interval(Flowdock.ActivityHeartbeats.ACTIVITY_HEARTBEAT_INTERVAL).onValue(function (t) {
return function () {
return t.stopped ? Bacon.noMore : t.flows.each(function (e) {
return e.get("open") ? t.sendHeartbeat(e, t.lastFlowActivity[e.id]) : void 0
})
}
}(this))
}, t.prototype.sendHeartbeat = function (t, e) {
var n, r, o;
if (null != t && ((o = t.constructor) === Models.PrivateConversation || o === Models.Flow)) return n = t.isPrivate() ? {
to: "" + t.id
} : {
flow: t.id
}, r = null != e ? {
last_activity: e
} : {}, this.connection.sendStream.push(_.extend(n, {
event: "activity.user",
content: {
last_activity: e
},
persist: !1,
tags: []
}))
}, t
}()
}.call(this),
function () {
Flowdock.AudioNotifications = function () {
function t(t, e, n) {
this.format = t, this.activeFlow = e, this.user = n, this._subscriptions = [], this.muted = !1
}
return t.create = function (t, e) {
var n;
return n = this.format(), n ? new Flowdock.AudioNotifications(n, t, e) : void 0
}, t.format = function () {
var t;
return t = function (t) {
return _.find(["mp3", "wav"], function (e) {
return Modernizr.audio[e] === t
})
}, t("probably") || t("maybe")
}, t.prototype.consume = function (t) {
var e, n;
return e = Models.Message.ignoreByFlow(t, Flowdock.windowFocus.and(this.activeFlow)).filter(function (t) {
return function (e) {
return e.user !== t.user.id
}
}(this)), n = e.map(function (t) {
return function (e) {
var n;
return n = new Models.Message(e), t.isMention(n) ? "mention" : "chat"
}
}(this)), this._subscriptions.push(n.onValue(function (t) {
return function (e) {
var n;
return t.muted ? void 0 : null != (n = t[e]) ? n.play() : void 0
}
}(this)))
}, t.prototype.isMention = function (t) {
return t.get("to") ? Number(t.get("to")) === this.user.id && _.include(Models.Filter.Chat.prototype.event, t.get("event")) : t.highlights(this.user)
}, t.prototype.fromCurrentFlow = function (t) {
return this.activeFlow.sampledBy(t, function (t, e) {
return (null != t ? t.isFlow() : void 0) && (null != t ? t.id : void 0) === e.flow ? e : (null != t ? t.isPrivate() : void 0) && null != e.to && t.isBetweenUsers([e.user, e.to]) ? e : !1
}).filter(function (t) {
return t
})
}, t.prototype.load = function (t, e) {
var n, r;
return n = {
chat_or_mentions: ["chat", "mention"],
mentions: ["mention"],
none: []
}, r = Bacon.combineAsArray(t, e), this._subscriptions.push(r.onValues(function (t) {
return function (e, r) {
var o, i, s, a, u, l, c, p;
for (l = ["chat", "mention"], i = 0, a = l.length; a > i; i++) o = l[i], delete t[o];
for (c = n[e], p = [], s = 0, u = c.length; u > s; s++) o = c[s], p.push(t.loadSound(o, r));
return p
}
}(this)))
}, t.prototype.loadSound = function (t, e) {
return this[t] = new Audio(""), this[t].src = Flowdock.audios[this.format][t], this[t].volume = e, $(this[t]).on("ended", function (e) {
return function () {
return e[t].load()
}
}(this))
}, t.prototype.mute = function (t) {
return this.muted = t
}, t.prototype.cleanup = function () {
var t, e, n, r, o;
for (r = this._subscriptions, o = [], e = 0, n = r.length; n > e; e++) t = r[e], o.push(t());
return o
}, t
}()
}.call(this),
function () {
var t = {}.hasOwnProperty,
e = function (e, n) {
function r() {
this.constructor = e
}
for (var o in n) t.call(n, o) && (e[o] = n[o]);
return r.prototype = n.prototype, e.prototype = new r, e.__super__ = n.prototype, e
};
Flowdock.Collection = function (t) {
function n(t, e) {
(null != e ? e.flow : void 0) && (this.flow = e.flow), this._unsubscribers = [], n.__super__.constructor.apply(this, arguments)
}
return e(n, t), n.prototype.addStream = function (t) {
return this._unsubscribers.push(t), t
}, n.prototype.untilEnd = function (t) {
return this._end || (this._end = this.asEventStream("cleanup")), t.takeUntil(this._end)
}, n.prototype.consume = function (t) {
this.stream = t
}, n.prototype.unconsume = function () {
var t, e, n, r;
for (r = this._unsubscribers, e = 0, n = r.length; n > e; e++)(t = r[e])();
return this._unsubscribers = [], delete this.stream, this
}, n.prototype.cleanup = function () {
return this.trigger("cleanup"), this.stopListening(), this.unconsume(), this.reset(), null != this.flow && (this.flow = null), null != this._end && (this._end = null), this
}, n
}(Backbone.Collection)
}.call(this),
function () {
var t, e = {}.hasOwnProperty,
n = function (t, n) {
function r() {
this.constructor = t
}
for (var o in n) e.call(n, o) && (t[o] = n[o]);
return r.prototype = n.prototype, t.prototype = new r, t.__super__ = n.prototype, t
};
t = function (t) {
return t.$el.is(".dropdown") ? t.$el : t.$(".dropdown")
}, Flowdock.Dropdown = function (e) {
function r() {
return r.__super__.constructor.apply(this, arguments)
}
return n(r, e), r.CLOSE_DELAY = 5e3, r.prototype.events = {
"click .dropdown-toggle": "toggle",
mouseleave: "_closeOnMouseLeave",
mouseenter: "_clearDelayedClose"
}, r.prototype.isOpen = !1, r.prototype.toggle = function (t) {
var e;
return Flowdock.mobile ? void 0 : (t.stopPropagation(), e = $(t.target).closest(".dropdown"), this.isOpen ? this.close(t) : ($(document).click(), this.open(t)))
}, r.prototype.open = function (e) {
var n;
return this.isOpen ? void 0 : (n = e ? $(e.target).closest(".dropdown") : t(this), n.addClass("open"), $(document).one("click", {
view: this
}, this.blur), this.isOpen = !0)
}, r.prototype.blur = function (t) {
var e, n;
return e = null != t && null != (n = t.data) ? n.view : void 0, _.delay(function () {
return e.close()
})
}, r.prototype.close = function () {
var e;
return this.isOpen ? (e = t(this), e.removeClass("open"), $(document).off("click", this.blur), clearTimeout(this.delayedClose), this.isOpen = !1) : void 0
}, r.prototype._closeOnMouseLeave = function (t) {
return this.closeOnMouseLeave && this.isOpen ? this.close(t) : this.isOpen ? this.delayedClose = setTimeout(this.close.bind(this), Flowdock.Dropdown.CLOSE_DELAY) : void 0
}, r.prototype._clearDelayedClose = function () {
return clearTimeout(this.delayedClose)
}, r.prototype.remove = function () {
return this.close(), r.__super__.remove.apply(this, arguments)
}, r
}(Backbone.View)
}.call(this),
function () {
Flowdock.commit = "b38fa1788eaed8590b4ba49a0e23f19bb3d36cbe", Flowdock.assetHost = "https://d2cxspbh1aoie1.cloudfront.net", Flowdock.environment = "production", Flowdock.icons = {
notification: "https://d2cxspbh1aoie1.cloudfront.net/images/flowdock-notification-icon.png",
spotify: "https://d2cxspbh1aoie1.cloudfront.net/owl-assets/owl/icons/spotify-icon-green-c7732d50b90de8f34652f75656e90c10.png",
pivotaltracker: "https://d2cxspbh1aoie1.cloudfront.net/owl-assets/owl/avatars/tracker-120-31d5241a012523cd97ea59347b8b7572.png",
zendesk: "https://d2cxspbh1aoie1.cloudfront.net/owl-assets/owl/avatars/zendesk_45-3be88c3250f91ebace12812c39c217f7.png",
uservoice: "https://d2cxspbh1aoie1.cloudfront.net/owl-assets/owl/avatars/uservoice_45-8f4c78fbf83588562a5b3d02fb72c886.png",
jira: "https://d2cxspbh1aoie1.cloudfront.net/owl-assets/owl/avatars/jira_45-480fe4932a1933ff998517854ff445dc.png",
confluence: "https://d2cxspbh1aoie1.cloudfront.net/owl-assets/owl/avatars/confluence_45-735ff19b71b842f98f64ec6134be7afc.png",
git: "https://d2cxspbh1aoie1.cloudfront.net/owl-assets/owl/avatars/git_45-1254824760d2a7a6db52d654c87da707.png",
svn: "https://d2cxspbh1aoie1.cloudfront.net/owl-assets/owl/avatars/subversion_45-876bc6df36fc7dc3cf607cf045e26464.png",
mercurial: "https://d2cxspbh1aoie1.cloudfront.net/owl-assets/owl/avatars/hg_45-bbe5a86ae46225755d9752886161fb61.png",
kiln: "https://d2cxspbh1aoie1.cloudfront.net/owl-assets/owl/avatars/kiln_45-d0a053ba85d689b5e6551e99368a4806.png",
agilezen: "https://d2cxspbh1aoie1.cloudfront.net/owl-assets/owl/avatars/agilezen_45-2d18b860cafc17d2d99440c84386e130.png",
scout: "https://d2cxspbh1aoie1.cloudfront.net/owl-assets/owl/avatars/scout_45-fcc46ae1899533982d10908fa8100111.png",
pagerduty: "https://d2cxspbh1aoie1.cloudfront.net/owl-assets/owl/avatars/pagerduty_45-b94e4ba358a1993eaebe4c9160ca3acc.png",
twitter: "https://d2cxspbh1aoie1.cloudfront.net/owl-assets/owl/avatars/twitter_48-db3b8fd43acf44d9287ecd2e7b2864a5.png",
mail: "https://d2cxspbh1aoie1.cloudfront.net/images/function_icons/mail_48.png",
rss: "https://d2cxspbh1aoie1.cloudfront.net/owl-assets/owl/avatars/rss-120-ea6720a038bac5a8b2a679c504b0fc96.png",
newrelic: "https://d2cxspbh1aoie1.cloudfront.net/owl-assets/owl/avatars/newrelic_45-213c11bf859df6e8fc7cc3a747bd04c4.png",
defaultAvatar: "https://d2cxspbh1aoie1.cloudfront.net/owl-assets/owl/avatars/anonymous-120-5a3ee0bcef3d2d959c1be83852d1d587.png"
}, Flowdock.audios = {
wav: {
chat: "https://d2cxspbh1aoie1.cloudfront.net/owl-assets/chat-4d52e7200192b66ddba8b495e0d2b325.wav",
mention: "https://d2cxspbh1aoie1.cloudfront.net/owl-assets/mention-f711745ff5abb1a16f1db7c55466f05b.wav"
},
mp3: {
chat: "https://d2cxspbh1aoie1.cloudfront.net/owl-assets/chat-0870fb7420bfab9852d09e5d82c5ec24.mp3",
mention: "https://d2cxspbh1aoie1.cloudfront.net/owl-assets/mention-cff3eeb2514e1ea8d344c045f4f09376.mp3"
}
}
}.call(this),
function () {
Flowdock.triggerMethod = function () {
var t, e, n;
return e = /(^|:)(\w)/g, t = function (t, e, n) {
return n.toUpperCase()
}, n = function (n) {
var r, o;
return o = "on" + n.replace(e, t), r = this[o], _.isFunction(this.trigger) && this.trigger.apply(this, arguments), _.isFunction(r) ? r.apply(this, _.tail(arguments)) : void 0
}
}()
}.call(this),
function () {
var t, e = {}.hasOwnProperty,
n = function (t, n) {
function r() {
this.constructor = t
}
for (var o in n) e.call(n, o) && (t[o] = n[o]);
return r.prototype = n.prototype, t.prototype = new r, t.__super__ = n.prototype, t
};
t = function (t, e) {
var n, r, o;
return r = "view:" + t.toLowerCase() + ":before", n = "view:" + t.toLowerCase() + ":after", o = "on" + t,
function () {
var t, i, s, a;
for (this.trigger(r), a = this.subviews, i = 0, s = a.length; s > i; i++) t = a[i], _.isFunction(t[e]) && t[e]();
return _.isFunction(this[o]) && this[o](), _.defer(function (t) {
return function () {
return t.trigger(n)
}
}(this))
}
}, Flowdock.HierarchicalView = function (e) {
function r(t) {
var e, n, o, i, s;
if (this.subviews = [], (null != t ? t.flow : void 0) && (this.flow = t.flow), r.__super__.constructor.apply(this, arguments), null != this.model && null != this.modelEvents) {
o = this.modelEvents;
for (e in o) n = o[e], _.isFunction(this[n]) && this.listenTo(this.model, e, this[n])
}
if (null != this.collection && null != this.collectionEvents) {
i = this.collectionEvents;
for (e in i) n = i[e], _.isFunction(this[n]) && this.listenTo(this.collection, e, this[n])
}
if (null != this.flow && null != this.flowEvents) {
s = this.flowEvents;
for (e in s) n = s[e], _.isFunction(this[n]) && this.listenTo(this.flow, e, this[n])
}
}
return n(r, e), r.prototype.modelEvents = void 0, r.prototype.collectionEvents = void 0, r.prototype.flowEvents = void 0, r.prototype.addStream = function (t) {
return this._unsubscribers || (this._unsubscribers = []), this._unsubscribers.push(t), t
}, r.prototype.untilEnd = function (t) {
return this._end || (this._end = this.asEventStream("destructor")), t.takeUntil(this._end)
}, r.prototype.subview = function (t) {
if (!(t instanceof Flowdock.HierarchicalView)) throw console.error("View is not an instance of HierarchicalView", t), new Error("View is not an instance of HierarchicalView");
return this.subviews.indexOf(t) >= 0 || this.subviews.push(t), t
}, r.prototype.removeSubview = function (t, e) {
var n, r, o, i, s, a;
for (null == e && (e = {}), r = this.findSubviews(t), i = 0, s = r.length; s > i; i++) o = r[i], e.destroy !== !1 && o.destructor(e), this.stopListening(o), n = this.subviews.indexOf(o), n > -1 && ([].splice.apply(this.subviews, [n, n - n + 1].concat(a = [])), a);
return r
}, r.prototype.findSubviews = function (t) {
var e, n, r, o, i, s;
if (null == t) return [];
if (this.subviews.indexOf(t) >= 0) return [t];
for (o = this.subviews, s = [], n = 0, r = o.length; r > n; n++) e = o[n], (e.model === t || null != t.id === (null != (i = e.model) ? i.id : void 0)) && s.push(e);
return s
}, r.prototype.destructor = function (t) {
var e, n, r, o, i, s, a, u;
for (null == t && (t = {}), a = this.subviews.slice(0), r = 0, i = a.length; i > r; r++) n = a[r], this.removeSubview(n, {
removeDomElement: !1
});
if (this.subviews = [], this.trigger("destructor", t), null != this._unsubscribers) {
for (u = this._unsubscribers, o = 0, s = u.length; s > o; o++)(e = u[o])();
this._unsubscribers = null
}
return this.undelegateEvents(), t.removeDomElement === !1 ? this.stopListening() : this.remove(), this.flow && (this.flow = null), this.model && (this.model = null), this.collection && (this.collection = null), this._end ? this._end = null : void 0
}, r.prototype.triggerAttach = t("Attach", "triggerAttach"), r.prototype.triggerDetach = t("Detach", "triggerDetach"), r
}(Backbone.View)
}.call(this),
function () {
var t = {}.hasOwnProperty,
e = function (e, n) {
function r() {
this.constructor = e
}
for (var o in n) t.call(n, o) && (e[o] = n[o]);
return r.prototype = n.prototype, e.prototype = new r, e.__super__ = n.prototype, e
};
Flowdock.ItemView = function (t) {
function n() {
return n.__super__.constructor.apply(this, arguments)
}
return e(n, t), n.prototype.triggerMethod = Flowdock.triggerMethod, n.prototype.render = function () {
var t;
return (t = _.result(this, "template")) ? (this.triggerMethod("before:render"), this.$el.html(t.render(this.serializeData(), _.result(this, "partials"))), this.triggerMethod("after:render"), this) : console.error("Template is not defined", "TemplateNotFoundError")
}, n.prototype.serializeData = function () {
return {}
}, n
}(Flowdock.HierarchicalView)
}.call(this),
function () {
Flowdock.KeyboardEvents = {
bindKeyboardEvents: function () {
return null != this.keyboardEvents ? this.listenToOnce(this, "view:attach:after", function () {
var t;
return t = null != this.keyboardEventFilter ? Flowdock.app.shortcutStream.filter(this.keyboardEventFilter) : Flowdock.app.shortcutStream, null != t ? this.addStream(t.filter(function (t) {
return function (e) {
return null != t.keyboardEvents[e.action]
}
}(this)).onValue(function (t) {
return function (e) {
var n;
return n = t.keyboardEvents[e.action], _.isFunction(n) || (n = t[t.keyboardEvents[e.action]]), null != n ? n.call(t, e) : void 0
}
}(this))) : void 0
}) : void 0
}
}
}.call(this),
function () {
String.capitalize = function (t) {
return t ? t.replace(/^\w/, function (t) {
return t.toUpperCase()
}) : null
}
}.call(this),
function () {
var t, e, n = [].slice,
r = [].indexOf || function (t) {
for (var e = 0, n = this.length; n > e; e++)
if (e in this && this[e] === t) return e;
return -1
};
t = {
backspace: 8,
tab: 9,
enter: 13,
esc: 27,
spacebar: 32,
pagedown: 33,
pageup: 34,
home: 35,
end: 36,
left: 37,
up: 38,
right: 39,
down: 40,
"delete": 46,
forwardSlash: [47, 191],
numeric: [48, 49, 50, 51, 52, 53, 54, 55, 56, 57],
"?": 63,
a: 65,
b: 66,
c: 67,
d: 68,
e: 69,
f: 70,
g: 71,
h: 72,
i: 73,
j: 74,
k: 75,
l: 76,
m: 77,
n: 78,
o: 79,
p: 80,
q: 81,
r: 82,
s: 83,
t: 84,
u: 85,
v: 86,
w: 87,
x: 88,
y: 89,
z: 90,
comma: 188
}, e = {
ctrl: "ctrlKey",
alt: "altKey",
meta: "metaKey",
cmd: "metaKey",
shift: "shiftKey"
}, t.cursor = [t.left, t.up, t.right, t.down], window.KeyEvent = {
keymap: t,
modifierDown: function (t) {
return t.ctrlKey || t.altKey || t.metaKey
},
is: function () {
var o, i, s;
return s = 1 <= arguments.length ? n.call(arguments, 0) : [], o = _.flatten(s.map(function (t) {
return t.split(":")
})), i = [], _.each(o, function (n) {
var r;
return r = {
modifiers: [],
keyCodes: []
}, _.each(n.split("+"), function (n) {
var o, i;
return (o = t[n]) ? r.keyCodes.push(o) : (i = e[n]) ? r.modifiers.push(i) : void 0
}), r.keyCodes = _.flatten(r.keyCodes), i.push(r)
}),
function (t) {
var e;
return "keypress" === t.type ? (e = String.fromCharCode(t.which), r.call(o, e) >= 0) : null != _.find(i, function (e) {
var n, o, i, s, a, u;
for (o = [], a = ["ctrlKey", "altKey", "metaKey", "shiftKey"], i = 0, s = a.length; s > i; i++) n = a[i], t[n] === !0 && o.push(n);
return _.isEqual(o.sort(), e.modifiers.sort()) ? (u = t.which, r.call(e.keyCodes, u) >= 0 ? !0 : void 0) : !1
})
}
},
not: function () {
var e, o, i;
return i = 1 <= arguments.length ? n.call(arguments, 0) : [], e = _.flatten(function () {
var e, n, r;
for (r = [], e = 0, n = i.length; n > e; e++) o = i[e], r.push(t[o]);
return r
}()),
function (t) {
var n;
return n = t.which, !(r.call(e, n) >= 0)
}
}
}
}.call(this),
function () {
Flowdock.shortcutMap = {
web: {
esc: function () {
return document.activeElement.blur()
},
"esc w": "closeTab",
"esc u": "toggleUserList",
"esc comma": "openPreferences",
"esc numeric": "navigateToNthTab",
"esc d": "quickMute",
"esc left": "previousTab",
"esc right": "nextTab",
"esc n": "newTab",
"esc t": "newTab",
"esc f": "focusSearch",
"esc i": "focusChat",
tab: function () {
var t;
return t = window.lastFocusedInput.replace(/^[A-z]{1}/, function (t) {
return t.toUpperCase()
}), "focus" + t
}
},
alwaysAvailable: {
"?": "openHelp"
},
macGap: {
"cmd+numeric": "navigateToNthTab",
"ctrl+tab": "nextTab",
"ctrl+shift+tab": "previousTab"
}
}, Flowdock.KeyboardShortcuts = function () {
function t(t, e) {
this.keydowns = t, this.shortcuts = e
}
return t.build = function (t) {
return new this(keydownsNotInInput, t)
}, t.bind = function (e, n, r) {
var o, i;
return null == r && (r = []), i = 0 === r.length ? e.filter(KeyEvent.is(n[0])) : (o = Bacon.later(1e3, !0), e.take(1).filter(KeyEvent.is(n[0])).takeUntil(o)), i.flatMap(function (o) {
return 1 === n.length ? Bacon.once(o) : t.bind(e, n.slice(1), r.concat(o)).take(1)
})
}, t._isNotInput = function (t) {
var e;
return e = t.target || t.srcElement, !("INPUT" === e.tagName || "SELECT" === e.tagName || "TEXTAREA" === e.tagName || e.contentEditable && ("true" === e.contentEditable || "plaintext-only" === e.contentEditable))
}, t.keyStream = function () {
return Bacon.mergeAll([$(document).asEventStream("keydown").filter(function (t) {
return !(t.altKey || t.shiftKey)
}), $(document).asEventStream("keypress").filter(function (t) {
return t.altKey || t.shiftKey
})])
}, t.prototype.when = function (e) {
var n;
return n = e.flatMapLatest(function (t) {
return function (e) {
return e ? t.keydowns : Bacon.never()
}
}(this)), new t(n, this.shortcuts)
}, t.prototype.toStream = function (e) {
var n, r, o, i;
return null == e && (e = Bacon.constant(!0)), r = this.keydowns.filter(function (t) {
return 27 === t.which || Flowdock.KeyboardShortcuts._isNotInput(t)
}), r = r.merge(e.flatMapLatest(function (t) {
return function (e) {
return e ? t.keydowns.filter(function (t) {
return KeyEvent.modifierDown(t)
}) : Bacon.never()
}
}(this))), i = function () {
var e, i;
e = this.shortcuts, i = [];
for (o in e) n = e[o], i.push(function (e) {
return function (n) {
return t.bind(r, o.split(" ")).map(function (t) {
var r;
return r = _.isFunction(n) ? n.call(e, t) : n, new $.Event(t, {
action: r
})
})
}
}(this)(n));
return i
}.call(this), Bacon.mergeAll(i).throttle(50)
}, t
}(), Flowdock.KeyboardShortcuts.forMacGap = function () {
return Bacon.mergeAll([new Flowdock.KeyboardShortcuts($(document).asEventStream("keydown"), Flowdock.shortcutMap.macGap).toStream(), $(document).asEventStream("macgapNextTab").map(function (t) {
return t.action = "nextTab", t
}), $(document).asEventStream("macgapPreviousTab").map(function (t) {
return t.action = "previousTab", t
}), $(document).asEventStream("macgapNextThread").map(function (t) {
return t.action = "nextThread", t
}), $(document).asEventStream("macgapPreviousThread").map(function (t) {
return t.action = "previousThread", t
}), $(document).asEventStream("macgapOpenTab").map(function (t) {
return t.action = "newTab", t
}), $(document).asEventStream("macgapCloseTab").map(function (t) {
return t.action = "closeTab", t
}), $(document).asEventStream("macgapOpenKeyboardHelp").map(function (t) {
return t.action = "openHelp", t
}), $(document).asEventStream("macgapOpenChatCommandHelp").map(function (t) {
return t.action = "openChatCommandHelp", t
})])
}
}.call(this),
function () {
var t;
t = {
titleFor: function (t) {
var e, n, r;
return e = t.flow(), n = t.user(), e.isPrivate() ? n.get("nick") || (null != (r = Flowdock.app.users.get(n.id)) ? r.get("nick") : void 0) || "" : n ? "" + n.get("nick") + " - " + e.fullName() : e.fullName()
},
messageFilter: function (e, n, r) {
return Models.Message.ignoreByFlow(Models.Message.fromOpenFlows(e, n), t.ignoredFlow(r, Flowdock.windowFocus)).filter(function (t) {
return String(t.user) !== String(Flowdock.app.user.id)
}).map(function (t) {
return new Models.Message(t)
})
},
format: function (e) {
var n, r, o;
try {
return {
title: t.titleFor(e),
body: null != (r = e.presenter()) ? r.summary() : void 0,
icon: null != (o = e.user()) ? o.avatar(30) : void 0
}
} catch (i) {
return n = i, console.error(n), console.error("Could not render notification for ", e)
}
},
display: function (e, n) {
var r, o, i, s, a;
return r = t.format(n), (null != r ? r.body : void 0) ? (o = n.flow(), i = "influx" === n.get("app") ? function () {
return Flowdock.app.router.navigateTo({
message: n,
flow: o
})
} : n.parent() ? function () {
return Flowdock.app.router.navigateTo({
message: n.parent(),
flow: o
})
} : function () {
var t;
return null != (t = Flowdock.app.router) ? t.navigateBackToFlow(o) : void 0
}, a = "influx" === n.get("app") ? n.id : n.parent() ? n.parent() : null, s = null != o.path ? o.path() : o.isPrivate() ? "private/" + o.id : void 0, e.closingNotification(r.title, {
body: r.body,
icon: r.icon,
payload: JSON.stringify({
flowPath: s,
message: a
}),
onclick: function () {
return i(), window.focus()
}
})) : void 0
},
ignoredFlow: function (t, e) {
return t.map(function (t) {
return t || !1
}).combine(e, function (t, e) {
return e ? t : !1
})
}
}, Flowdock.messageDesktopNotifications = function (e, n, r, o) {
return t.messageFilter(n, r, o).onValue(function (n) {
return t.display(e, n)
})
}, _.extend(Flowdock.messageDesktopNotifications, t)
}.call(this),
function () {
var t = function (t, e) {
return function () {
return t.apply(e, arguments)
}
};
Flowdock.NotificationCenter = function () {
function e(e, n) {
var r;
this.Notification = e, this.throttled = null != n ? n : !0, this.muteEnded = t(this.muteEnded, this), this.hasPermission = t(this.hasPermission, this), this.queueNotification = t(this.queueNotification, this), this.dispatchNotification = t(this.dispatchNotification, this), this.subscriptions = [], this.notifications = [], r = Flowdock.app.preferences.mute(), this.mutedQueue = [], this.noteBus = new Bacon.Bus, r.diff(!1, function (t, e) {
return t && !e
}).filter(function (t) {
return t
}).onValue(this.muteEnded), this.noteBus.filter(r).onValue(this.queueNotification), this.addStream(this.noteBus.filter(r.not()).filter(this.hasPermission).filter(function (t) {
return function () {
return !t.throttlingRequired()
}
}(this)).onValue(this.dispatchNotification))
}
return e.prototype.notificationLimit = 3, e.prototype.addStream = function (t) {
return this.subscriptions.push(t)
}, e.prototype.closingNotification = function (t, e) {
return null == e && (e = {}), this.noteBus.push({
title: t,
options: e
})
}, e.prototype.dispatchNotification = function (t) {
var e, n, r, o, i, s;
return n = (null != (s = t.options) ? s.onclick : void 0) || function () {}, o = this.createNotification(t.title, _.omit(t.options, "onclick")), e = function () {
return clearTimeout(i), setTimeout(function () {
return o.close()
}, 5e3)
}, i = setTimeout(function () {
return o.close()
}, 3e4), n && o.addEventListener("click", n), o.addEventListener("show", e), o.addEventListener("close", r = function (t) {
return function () {
return t.notifications = _.reject(t.notifications, function (t) {
return t === o
}), setTimeout(function () {
return n && o.removeEventListener("click", n), o.removeEventListener("show", e), o.removeEventListener("close", r)
}, 0)
}
}(this)), this.notifications.push(o), o
}, e.prototype.createNotification = function (t, e) {
return new this.Notification(t, e)
}, e.prototype.queueNotification = function (t, e) {
return this.mutedQueue.push({
title: t,
options: e
})
}, e.prototype.throttlingRequired = function () {
return this.throttled && this.notifications.length >= this.notificationLimit
}, e.prototype.hasPermission = function () {
return "granted" === this.permissionLevel()
}, e.prototype.requestPermission = function (t) {
return null == this.Notification ? void(t && t("denied")) : this.Notification.requestPermission(function (e) {
return function () {
return t(e.permissionLevel())
}
}(this))
}, e.prototype.permissionLevel = function () {
var t, e;
return null != (null != (t = this.Notification) ? t.permission : void 0) ? this.Notification.permission : (null != (e = this.Notification) ? e.permissionLevel : void 0) ? this.Notification.permissionLevel() : "denied"
}, e.prototype.muteEnded = function () {
var t, e, n, r;
if (this.mutedQueue.length < 5)
for (r = this.mutedQueue, e = 0, n = r.length; n > e; e++) t = r[e], this.dispatchNotification(t.title, t.options);
else this.dispatchNotification({
title: "" + this.mutedQueue.length + " new messages",
options: {
body: "Sent while you were in Do Not Disturb mode.",
onclick: function () {}
}
});
return this.mutedQueue = []
}, e.prototype.destructor = function () {
var t, e, n, r;
for (r = this.subscriptions, e = 0, n = r.length; n > e; e++)(t = r[e])();
return this.mutedQueue = this.notifications = null
}, e.prototype.close = function () {
var t, e, n, r;
for (r = this.notifications, e = 0, n = r.length; n > e; e++) t = r[e], t.close();
return this.notifications = []
}, e.create = function (t) {
var e;
return e = new Flowdock.NotificationCenter(NotificationPolyfill.bestAlternative()), $(t).bind("beforeunload", function () {
return e.close()
}), e
}, e
}()
}.call(this),
function () {
var t, e;
e = $(window).asEventStream("resize"), Flowdock.resize = t = {
window: {
move: e,
end: e.debounce(500)
},
splitter: {
move: $(document).asEventStream("split-resize"),
end: $(document).asEventStream("split-resize-end").debounce(10)
}
}, _.extend(Flowdock.resize, {
moves: Bacon.mergeAll([t.window.move, t.splitter.move]),
ends: Bacon.mergeAll([t.window.end, t.splitter.end])
})
}.call(this),
function () {
Flowdock.TitleManager = function () {
function t(t, e, n) {
this.activityProperty = t, this.activeFlow = e, this.user = n.id || n
}
return t.prototype.start = function () {
return Bacon.combineAsArray(this.activeFlow, this.activityProperty, Flowdock.app.preferences.mute()).flatMapLatest(function (t) {
var e, n, r, o;
return n = t[0], e = t[1], r = t[2], r ? Bacon.once([n, {
chat: !1,
mentions: 0
}]) : (o = n ? n.asProperty("name").changes().map([n, e]) : Bacon.never(), Bacon.once([n, e]).merge(o))
}).onValue(this.update)
}, t.prototype.update = function (e) {
var n, r;
return r = e[0], n = e[1], Helpers.setWindowTitle(r, n.chat, n.mentions), t.setDockBadge(n.chat, n.mentions)
}, t.setDockBadge = function (t, e) {
return null != window.macgap ? macgap.dock.badge = e ? "" + e : t ? "\u22ef" : null : void 0
}, t
}()
}.call(this),
function () {
var t = function (t, e) {
return function () {
return t.apply(e, arguments)
}
};
Flowdock.Tutorial = function () {
function e(e) {
this.cleanUpHelps = t(this.cleanUpHelps, this), this.inbox_seen = e.inbox_seen, this.tasks = e.tasks.filter(function (t) {
return null === t.completed_at
}), this.flow_id = e.flow, this.cleanups = []
}
return e.prototype.isNew = function () {
return this.tasks.some(function (t) {
return "chat" === t.name
})
}, e.prototype.consume = function (t) {
var e, n, r, o, i;
for (this._subscriptions = [], this._stream = t.filter(function (t) {
return function (e) {
return e.flow === t.flow_id && e.id
}
}(this)), o = this.tasks, i = [], n = 0, r = o.length; r > n; n++) e = o[n], i.push(this._subscriptions.push(this.whenTaskCompleted(e.name).take(1).onValue(function (t) {
return function (e) {
return t.onCompleted(e)
}
}(this))));
return i
}, e.prototype.onCompleted = function (t) {
return $.post("/owl/tutorial", {
completed: t,
flow: this.flow_id,
_method: "PUT"
})
}, e.prototype.whenTaskCompleted = function (t) {
var e, n, r;
return e = {
chat: this.chatTaskFilter,
comment: this.commentTaskFilter,
influx: this.inboxTaskFilter,
invite: this.inviteTaskFilter
}, r = {
avatarupload: {
event: "change:avatar",
filter: this.avatarTaskFilter
}
}, null != e[t] ? this._stream.filter(e[t]).map(function () {
return t
}) : (n = r[t], Flowdock.app.user.asEventStream(n.event).filter(n.filter).map(function () {
return t
}))
}, e.prototype.cleanup = function () {
var t, e, n, r;
for (r = this._subscriptions, e = 0, n = r.length; n > e; e++)(t = r[e])();
return this._subscriptions = [], this.cleanUpHelps()
}, e.prototype.chatTaskFilter = function (t) {
var e;
return !Flowdock.Tutorial.prototype.inviteTaskFilter(t) && ("message" === (e = t.event) || "comment" === e || "file" === e || "action" === e || "status" === e) && t.user === Flowdock.app.user.id
}, e.prototype.commentTaskFilter = function (t) {
return "comment" === t.event && t.user === Flowdock.app.user.id
}, e.prototype.inboxTaskFilter = function (t) {
var e, n, r;
return "mail" === t.event && !(null != (n = t.content.from) && null != (r = n[0]) && "function" == typeof (e = r.address).match ? e.match(/.+@flowdock.com$/) : void 0)
}, e.prototype.inviteTaskFilter = function (t) {
return "open-invitation-enable" === t.event || "action" === t.event && "invite" === t.content.type || "backend.join.user" === t.event
}, e.prototype.avatarTaskFilter = function (t) {
return null != t.avatar().match(/local/)
}, e.prototype.start = function (t) {
return this.flow = t, this.inbox_seen || this.viewInboxHelp(this.flow.inbox), this.isNew() ? ("function" == typeof ga && ga("send", "event", "tutorial", "start"), this.viewUserBarHelp(this.flow.chat.users)) : void 0
}, e.prototype.viewInboxHelp = function (t) {
var e;
return e = function (e) {
return function () {
var n, r, o;
return n = t.toolbar.$("button#inbox-settings"), o = "show", r = $(HoganTemplates["owl/templates/tutorial/mail_help"].render({
url: Helpers.urlFor({
flow: e.flow.model,
settings: {
active: "inbox"
}
})
})), r.find(".inbox-example").click(function (n) {
return $.post("/owl/tutorial/inbox_example", {
flow: e.flow.model.id
}), e.removeInboxTutorial(r, t), n.preventDefault()
}), r.find(".set-sources").click(function () {
return _.defer(function () {
return e.removeInboxTutorial(r, t)
})
}), t.messageList.$el.prepend(r), e.flow.model.fullyLoaded.done(function () {
return t.messageList.$(".info-message.last-message").hide()
}), e.cleanups.push(function () {
return _.pluck(messages, "remove")
})
}
}(this), t.messageList.on("render", e), this.cleanups.push(function () {
return t.messageList.off("render", e)
})
}, e.prototype.removeInboxTutorial = function (t, e) {
return $.ajax({
url: "/owl/tutorial",
type: "PUT",
data: {
flow: this.flow.model.id,
inbox_seen: !0
},
complete: function () {
return e.messageList.$(".info-message.last-message").show()
}
}), t.remove()
}, e.prototype.viewUserBarHelp = function (t) {
var e, n, r, o, i;
return n = t.$("button#user-settings"), n.tipsy({
gravity: "ne",
trigger: "manual",
fallback: "Click here to invite your team!"
}), i = "show", r = function () {
var t, e;
for (e = [], o = t = 0; 4 >= t; o = ++t) e.push($("<li>").addClass("dummy").append($("<div>").addClass("user-avatar").on("mouseenter mouseleave", function () {
return n.toggleClass("hover").tipsy(i), i = "show" === i ? "hide" : "show"
})));
return e
}(), e = function () {
return t.$(".userbar.online").append(r)
}, t.on("render", e), n.one("click", this.cleanUpHelps), this.cleanups.push(function (o) {
return function () {
return r = null, t.off("render", e), n.off("click", o.cleanUpHelps), t.$(".userbar.online .dummy").remove()
}
}(this))
}, e.prototype.cleanUpHelps = function () {
return this.cleanups.forEach(function (t) {
return t()
})
}, e.slides = [{
name: "welcome",
template: HoganTemplates["owl/templates/tutorial/slides/welcome"]
}, {
name: "chat",
template: HoganTemplates["owl/templates/tutorial/slides/chat"]
}, {
name: "inbox",
template: HoganTemplates["owl/templates/tutorial/slides/inbox"]
}], e
}()
}.call(this),
function () {
var t;
t = function () {
function t(t) {
this.typing = t
}
return t.prototype.toStream = function (t) {
var e;
return e = function (t, e) {
return t === e || void 0 === t && e === !1
}, this.typing.skipDuplicates(e).flatMapLatest(function (e) {
return e ? Bacon.interval(t, e).merge(Bacon.once(e)) : null != e ? Bacon.once(!1) : Bacon.never()
})
}, t.prototype.toMessages = function (t, e) {
var n;
return n = this.toStream(e), t.flatMapLatest(function (t) {
return n.map(function (e) {
var n;
return n = {
event: "activity.user",
content: {
typing: e
},
persist: !1,
tags: []
}, t.isPrivate() ? _.extend(n, {
to: "" + t.id
}) : _.extend(n, {
flow: t.id
})
})
})
}, t.prototype.when = function (e) {
var n;
return n = e.flatMapLatest(function (t) {
return function (e) {
return e ? t.typing : Bacon.constant(void 0)
}
}(this)), new t(n, this.interval)
}, t.build = function (e, n, r) {
return new t(this.asProperty(e, n, r))
}, t.asProperty = function (t, e, n) {
var r, o;
return o = t.asEventStream("keyup", e).map(function (t) {
var e, n;
return e = $(t.target), n = e.val(), n.length > 0 && 0 !== n.indexOf("/") ? e.attr("data-input-id") : !1
}), r = t.asEventStream("reset", e).map(void 0), o.merge(r).flatMapLatest(function (t) {
var e;
return e = Bacon.once(t), t ? e.merge(Bacon.later(n, !1)) : e
}).toProperty()
}, t
}(), Flowdock.TypingActivity = t
}.call(this),
function () {
var t, e, n;
Flowdock.UserActivity = t = {
IDLE_THRESHOLD: 12e4,
MOUSEMOVE_INTERVAL: 5e3,
KEYDOWN_INTERVAL: 3e3
}, _.extend(t, {
mousemoves: Bacon.throttledStream(document, "mousemove", t.MOUSEMOVE_INTERVAL),
focuses: $(window).asEventStream("focus"),
blurs: $(window).asEventStream("blur"),
keydowns: Bacon.throttledStream(document, "keydown", t.KEYDOWN_INTERVAL)
}), t.visibility = (n = Modernizr.prefixed("hidden", document, !1)) ? (e = n.replace(/[Hh]idden/, ""), $(document).asEventStream("" + e + "visibilitychange").map(function () {
return !document[n]
})) : Bacon.never(), Flowdock.userActivity = Bacon.mergeAll([t.mousemoves, t.focuses, t.keydowns]), Flowdock.appFocus = Bacon.mergeAll([Flowdock.userActivity.flatMapLatest(function () {
return Bacon.once(!0).merge(Bacon.later(t.IDLE_THRESHOLD, !1))
}), t.visibility, t.blurs.map(function () {
return !1
})]).toProperty(!0).skipDuplicates(), Flowdock.windowFocus = Bacon.mergeAll([t.blurs.map(function () {
return !1
}), t.focuses.map(function () {
return !0
}), t.visibility]).toProperty(!0).skipDuplicates()
}.call(this),
function () {
var t, e, n = function (t, e) {
return function () {
return t.apply(e, arguments)
}
},
r = [].slice,
o = [].indexOf || function (t) {
for (var e = 0, n = this.length; n > e; e++)
if (e in this && this[e] === t) return e;
return -1
};
t = 540, e = 720, Flowdock.WhiteSpaceControl = function () {
function i(t, e) {
this.preference = t, this.resize = e, this.setClass = n(this.setClass, this), this.panelWidths = n(this.panelWidths, this), this.lowestWidth = n(this.lowestWidth, this), this.panelWidthToWhiteSpaceClass = n(this.panelWidthToWhiteSpaceClass, this), _.extend(this, Backbone.Events)
}
return i.prototype.klasses = {
body: "compact normal cozy",
inbox: "compact-inbox normal-inbox cozy-inbox",
chat: "compact-chat normal-chat cozy-chat"
}, i.prototype.start = function () {
var t, e;
return Bacon.combineWith(this.pickLowest, this.resize.map(function (t) {
return function () {
return t.panelWidthToWhiteSpaceClass(t.lowestWidth())
}
}(this)).toProperty(this.panelWidthToWhiteSpaceClass(this.lowestWidth())), this.preference).skipDuplicates().onValue(this.setClass), e = this.panelClassProperty(function (t) {
return function () {
return t.panelWidthToWhiteSpaceClass(t.inboxWidth())
}
}(this)), t = this.panelClassProperty(function (t) {
return function () {
return t.panelWidthToWhiteSpaceClass(t.chatWidth())
}
}(this)), e.onValue(function (t) {
return function (e) {
return t.setClass(e, "inbox")
}
}(this)), t.onValue(function (t) {
return function (e) {
return t.setClass(e, "chat")
}
}(this))
}, i.prototype.panelWidthToWhiteSpaceClass = function (n) {
return t > n ? "compact" : e > n ? "normal" : "cozy"
}, i.prototype.panelClassProperty = function (t) {
return this.resize.map(t).toProperty(t()).skipDuplicates()
}, i.prototype.lowestWidth = function () {
return Math.min.apply(Math, this.panelWidths().filter(function (t) {
return t
}))
}, i.prototype.panelWidths = function () {
return [this.chatWidth(), this.inboxWidth()]
}, i.prototype.chatWidth = function () {
return $("#chat").width()
}, i.prototype.inboxWidth = function () {
return $(".inbox-panel").width()
}, i.prototype.element = function () {
return $("body")
}, i.prototype.pickLowest = function () {
var t;
return t = 1 <= arguments.length ? r.call(arguments, 0) : [], o.call(t, "compact") >= 0 ? "compact" : o.call(t, "normal") >= 0 ? "normal" : "cozy"
}, i.prototype.setClass = function (t, e) {
var n, r, o;
return e ? (o = "" + t + "-" + e, r = "change-" + e) : (o = t, r = "change"), n = this.element(), this.trigger("before-" + r, t), n.removeClass(this.klasses[e || "body"]).addClass(o), this.trigger("after-" + r, t)
}, i
}()
}.call(this),
function (t) {
function e(t) {
var e = t.toLowerCase();
return e = e.replace(new RegExp("[\xe0\xe1\xe2\xe4\xe5]", "g"), "a"), e = e.replace(new RegExp("\xe6", "g"), "ae"), e = e.replace(new RegExp("\xe7", "g"), "c"), e = e.replace(new RegExp("[\xe8\xe9\xea\xeb]", "g"), "e"), e = e.replace(new RegExp("[\xec\xed\xee\xef]", "g"), "i"), e = e.replace(new RegExp("\xf1", "g"), "n"), e = e.replace(new RegExp("[\xf2\xf3\xf4\xf5\xf6]", "g"), "o"), e = e.replace(new RegExp("\u0153", "g"), "oe"), e = e.replace(new RegExp("[\xf9\xfa\xfb\xfc]", "g"), "u"), e = e.replace(new RegExp("[\xfd\xff]", "g"), "y")
}
t.fn.autoComplete = function (n) {
if (window.addEventListener) {
var r = {
sort: !0
};
return t.extend(r, n), r.source instanceof Array ? r.words = function () {
return r.source
} : "function" == typeof r.source && (r.words = r.source), this.each(function () {
function n(t) {
if (t.selectionStart) return t.selectionStart;
if (document.selection) {
t.focus();
var e = document.selection.createRange();
if (null == e) return 0;
var n = t.createTextRange(),
r = n.duplicate();
n.moveToBookmark(e.getBookmark()), r.setEndPoint("EndToStart", n);
for (var o = 0, i = 0; i < r.text.length; i++) "\r\n" == r.text.substr(i, 2) && (o += 2, i++);
return r.text.length + o
}
return 0
}
function o(t, e) {
for (var n = [], r = 0, o = t.length, i = e.length, s = 0; o >= s; s++) n[s] = [], n[s][0] = s;
for (var a = 0; i >= a; a++) n[0][a] = a;
for (s = 1; o >= s; s++)
for (a = 1; i >= a; a++) {
r = t[s] == e[a] ? 0 : 1;
var u = n[s - 1][a] + 1,
l = n[s][a - 1] + 1,
c = n[s - 1][a - 1] + r;
u > l && (u = l), u > c && (u = c), n[s][a] = u, s > 1 && a > 1 && t[s] === e[a - 1] && t[s - 1] === e[a] && (n[s][a] = Math.min(n[s][a], n[s - 2][a - 2] + r))
}
return n[o][i]
}
function s() {
var s = n(T),
u = T.value.substr(0, s).match(/\s?([^\s]+)$/);
if (u && (m = e(u[1])), !u || m.length < 1 || T.value.charAt(s) && !T.value.charAt(s).match(/\s/)) return m = void 0, [];
var l, c = m.replace(/[-\/\\^$*+?.()|[\]{}]/g, "\\$&");
l = a() ? "^" + c + ".*" : ".*" + c.split("").reduce(function (t, e) {
return "\\" === t.slice(-1) ? t + e : m[0] === t ? t + ".*" + e : t + ".{0,2}" + e
}) + ".*";
var p = RegExp(l, "i"),
d = function (t) {
return _.reduce(t.matches, function (t, e) {
return t || p.test(e)
}, !1)
},
h = _.pluck(jQuery.grep(r.cachedWords, d), "word");
if (t.isFunction(r.sort) ? h.sort(r.sort) : r.sort === !0 ? h.sort() : h.length < 25 && h.sort(function (t, e) {
return o(m, t) > o(m, e) ? 1 : -1
}), 1 != r.sort && h.length < 100) {
var f, g = [],
v = [],
y = m.toLowerCase();
for (i = 0; i < h.length; i++) f = h[i].toLowerCase(), f == y ? g.unshift(h[i]) : 0 == f.indexOf(y) ? g.push(h[i]) : v.push(h[i]);
h = g.concat(v)
}
return h
}
function a() {
if (r.hiddenComplete)
if (r.hiddenCompleteLimiter instanceof Array) {
if (-1 == r.hiddenCompleteLimiter.indexOf(m.charAt(0))) return !0
} else if (m.charAt(0) == r.hiddenCompleteLimiter) return !0;
return !1
}
function u(e) {
null != selected && selected.removeClass("selected"), selected = t(e).addClass("selected"), selectedWord = selected.text();
for (var n = 0; n < tagFields.length; n++) tagFields[n].text() == selectedWord && (g = n)
}
function l() {
w = s();
var e = w.length;
if (w = w.slice(0, E), C.empty().removeClass("has-more").attr("data-more", ""), tagFields = [], w.length > 0) {
if (1 == w.length && w[0] == m) return;
k = a(), k ? (void 0 != r.excludeHidden && (w = w.filter(function (t) {
return -1 === r.excludeHidden.indexOf(t)
})), selectedWord = w[g], p()) : (w.forEach(function (e) {
field = t("<li class='ac'>"), "function" == typeof r.displayHtml ? field.append(r.displayHtml(e)) : field.text(e), C.append(field), tagFields.push(field)
}), e > E && C.addClass("has-more").attr("data-more", "\u2026 and " + String(e - E) + " more. Narrow your search."), "function" != typeof r.autoSelect || r.autoSelect(w[0]) ? (selected = tagFields[0].addClass("selected"), selectedWord = selected.text(), g = 0) : selected = selectedWord = g = void 0, r.el ? C.appendTo(r.el).show() : C.appendTo("body").show().css({
bottom: t(window).height() - t(T).offset().top,
left: t(T).offset().left,
width: t(T).width()
}), x = !0, v = void 0)
} else {
if (!r.emptyHook || !m || !C.is(":empty")) return;
var n = r.emptyHook(m);
n && (x = !0), C.append(n).show()
}
C.is(":empty") && C.hide()
}
function c() {
selected && 0 != selected.length && (selected[0].offsetTop < C.scrollTop() ? C.scrollTop(selected[0].offsetTop) : selected[0].offsetTop + selected.outerHeight() > C.height() + C.scrollTop() && C.scrollTop(selected[0].offsetTop + selected.outerHeight() - C.height()))
}
function p() {
b = y = g = v = selected = selectedWord = tagFields = void 0, C.empty().hide(), x = !1
}
function d() {
if (k && g + 1 < w.length ? g += 1 : k && (g = 0), void 0 == v && (v = n(T)), void 0 == b && (b = T.value.substr(v)), void 0 != w[g]) {
if (r.completionHook) var t = v - m.length,
e = r.completionHook(w[g], t);
else var e = w[g];
var o = e.substr(m.length);
if (T.value = T.value.substr(0, v - m.length) + e + b, y = v + o.length, T.focus(), T.selectionStart) T.setSelectionRange(y, y);
else if (T.createTextRange) {
var i = T.createTextRange();
i.collapse(!0), i.moveEnd("character", y), i.moveStart("character", y), i.select()
}
k ? 1 == w.length && (w = []) : p()
}
}
function h(t) {
t.preventDefault(), t.stopImmediatePropagation()
}
function f(t) {
return t.altKey || t.ctrlKey || t.shiftKey
}
var m, g, v, y, w, b, x, k, T = this,
C = t('<ul id="autocomplete" class="autocompleter"></ul>'),
E = 200;
t(T).bind("keydown", "Return", function (t) {
x && null != selected && (d(), h(t))
}), t(T).bind("keydown", "Tab", function (t) {
(x || k) && t.preventDefault()
}), t(T).bind("keyup", function (t) {
!x || 38 != t.which && 40 != t.which ? 9 != t.which || f(t) || !x && !k ? 39 == t.which && x ? (h(t), p()) : (x = !1, C.hide(), l()) : (h(t), d()) : t.preventDefault()
}), t(T).bind("keydown", "Up", function (t) {
x && (t.preventDefault(), null == selected ? (selected = C.children("li.ac").last().addClass("selected"), selectedWord = selected.text(), g = C.children("li.ac").length - 1) : selected.prev("li.ac").length > 0 ? (selected = selected.removeClass("selected").prev("li.ac").addClass("selected"), selectedWord = selected.text(), g--) : (null != selected && selected.removeClass("selected"), selected = selectedWord = g = void 0), c())
}), t(T).bind("keydown", "Down", function (t) {
x && (t.preventDefault(), null == selected ? (selected = C.children("li.ac").first().addClass("selected"), selectedWord = selected.text(), g = 0) : selected.next("li.ac").length > 0 ? (selected = selected.removeClass("selected").next("li.ac").addClass("selected"), selectedWord = selected.text(), g++) : (null != selected && selected.removeClass("selected"), selected = selectedWord = g = void 0), c())
}), t(T).bind("blur", function () {
setTimeout(function () {
x && p()
}, 150)
}), t(T).bind("focus", function () {
r.cachedWords = r.words().map(function (t) {
return {
word: t.word,
matches: (t.aliases || []).map(e).concat(e(t.word))
}
}), l()
}), C.on("click", "li.ac", function (e) {
e.preventDefault(), d(), t(T).focus()
}), C.on("mouseover", "li.ac", function (t) {
u(t.currentTarget)
})
})
}
}
}(jQuery),
function () {
jQuery.fn.delayedHover = function (t, e) {
return null == t && (t = "hover"), this.asEventStream("mouseenter", e).flatMap(function (t) {
var e, n, r, o;
return r = $(t.currentTarget).asEventStream("mouseenter").map(!0), o = $(t.currentTarget).asEventStream("mouseleave").map(!1), e = r.merge(o).flatMapLatest(function (e) {
var n;
return e ? Bacon.never() : (n = $(t.currentTarget).data("close-delay"), Bacon.later(n || 0, {
target: $(t.currentTarget),
action: "close"
}))
}), n = $(t.currentTarget).data("hover-delay"), Bacon.later(n || 0, {
target: $(t.currentTarget),
action: "open"
}).takeUntil(e).merge(e)
}).skipDuplicates(function (t, e) {
return t.action === e.action
}).onValue(function (e) {
return e.target.toggleClass(t, "open" === e.action), e.target.triggerHandler("hover-delay-" + e.action)
}), this
}
}.call(this),
function () {
! function (t) {
var e, n, r, o;
return r = "filedragndrop", o = "filedragndrop-intercept-overlay", e = function (e) {
var n, i;
if (!this.data("" + r + ".initialized")) return n = !1, i = t("<div id='" + o + "'></div>").addClass(e.overlayClass).on("dragleave." + r, function (t) {
i.detach(), e.dragleave(t), n = !1
}).on("drop." + r, function (t) {
i.detach(), e.drop(t), n = !1
}).data("" + r + ".overlay-initialized", !0), this.on("dragenter." + r, function () {
return function (r) {
n || (n = !0, r.originalEvent.dataTransfer && _.any(r.originalEvent.dataTransfer.types, function (t) {
return "Files" === t
}) && (r.preventDefault(), t(e.target).append(i), e.dragenter(r)))
}
}(this)), this.data("" + r + ".initialized", !0)
}, n = function () {
return this.data("" + r + ".initialized", !1), this.off("." + r)
}, t.fn.dragNDropFileEvents = function (r) {
var o;
return null == r && (r = {}), "destroy" === r ? (this.each(function () {
return n.call(t(this))
}), this) : (o = {
dragenter: function () {},
dragleave: function () {},
drop: function () {},
overlayClass: "overlay"
}, r = t.extend(o, r), this.each(function () {
return e.call(t(this), r)
}), this)
}
}(jQuery)
}.call(this),
function () {
jQuery.fn.emojie = function () {
return this.each(function () {
var t;
try {
return emojie(this)
} catch (e) {
t = e
}
})
}
}.call(this),
function () {
var t = [].indexOf || function (t) {
for (var e = 0, n = this.length; n > e; e++)
if (e in this && this[e] === t) return e;
return -1
};
! function (e) {
var n, r, o, i, s, a, u, l, c, p, d, h;
return r = 9, n = 8, d = " ", s = function () {
return e(this).on("paste", function (t) {
return function () {
return l.call(t)
}
}(this)), e(this).on("keydown", function (t) {
return function (e) {
return u.call(t, e)
}
}(this))
}, u = function (t) {
var e, s;
switch (t.which) {
case r:
if (t.ctrlKey || t.metaKey) return;
if (t.preventDefault(), t.shiftKey) return o.call(this, this.selectionStart, this.selectionEnd);
if (this.selectionStart !== this.selectionEnd) return i.call(this, this.selectionStart, this.selectionEnd);
if (this.selectionStart === this.selectionEnd && (/\s/.test(this.value.slice(0, +(this.selectionStart - 1) + 1 || 9e9).slice(-1)[0]) || 0 === this.selectionStart)) return s = this.selectionStart + 4, e = this.value.split(""), e.splice(this.selectionStart, 0, " "), this.value = e.join(""), this.setSelectionRange(s, s);
break;
case n:
if (!(t.metaKey || t.ctrlKey || t.altKey || t.shiftKey) && p.call(this)) return t.preventDefault(), o.call(this, this.selectionStart, this.selectionEnd)
}
}, p = function () {
var t;
return t = this.value.slice(0, +(this.selectionStart - 1) + 1 || 9e9).split("\n").slice(-1)[0], this.selectionStart === this.selectionEnd && /(^|\n)[\s]{4}$/.test(t)
}, l = function () {
var t;
return t = this.selectionStart, setTimeout(function (e) {
return function () {
return a.call(e, t)
}
}(this), 0)
}, a = function (t) {
var e, n, r;
return n = this.selectionStart, e = this.value.slice(t, n), e.match(/\n/g) ? (r = this.value.slice(0, t) + e, "\n" !== r.slice(-1) && (r += "\n"), this.value = r + this.value.slice(n, this.value.length), i.call(this, t, n), this.setSelectionRange(this.selectionEnd + 1, this.selectionEnd + 1)) : void 0
}, h = function (t) {
return "\n" === t[0] && (t = t.substr(1, t.length - 1)), "\n" === t[t.length - 1] && (t = t.substr(0, t.length - 1)), t
}, c = function (t, e) {
return t.setSelectionRange(e, e)
}, i = function (t, e) {
var n, r, o, i, s;
return i = this, s = i.value.split("\n"), r = i.value.substr(0, t).split("").filter(function (t) {
return "\n" === t
}).length, o = i.value.substr(0, e).split("").filter(function (t) {
return "\n" === t
}).length, 0 === s[o].length && (o -= 1), n = _.map(s.slice(r, +o + 1 || 9e9), function (t) {