! function() {
function t(t) {
var e = {
host: TTBND[2],
l: {},
cGA: [],
vSa: [],
Pxj: [],
fiF: [],
YAZ: 0,
ol: 0,
all: 0,
tr: 0,
IXl: 0,
topBarElement: !1,
reparseTimer: 0,
reparseBody: "",
text: {
isNodeUpdated: function(t) {
function n(t) {
function i(t, n) {
var i = e.tc.t5V(n);
i[1] && -1 == e.indexOf(e.fiF, n) && o++
}
if (!e.hasClass(t, "notranslate") && !e.hasClass(t, "socketio")) switch (t.nodeType) {
case 1:
if ("SCRIPT" == t.tagName || "STYLE" == t.tagName || "OBJECT" == t.tagName || !t.innerHTML) return;
for (var r = t.childNodes, a = 0; a < r.length; a++) n(r[a]);
break;
case 3:
var s = t.nodeValue,
c = s.length;
if (-1 != s.indexOf("<") && -1 != s.indexOf(">")) return;
i(t, s, c, 0)
}
}
var o = 0;
return n(t), o
}
},
tc: {
kGJ: "",
P9p: {
b: "tt",
u: !0,
h: !1
},
data: {
ohT: [],
uBP: [],
s4W: [],
toh: []
},
f8y: {
oA0: -1,
akR: 0,
D6i: 0,
d49: 0,
faq: !1,
aAE: !1
},
KD1: {
jlk: 0,
tJj: []
},
obj: {},
VEq: 0,
OrW: 0,
YGM: [],
xlN: [9e3, 9030],
port: !1,
Bkt: "85.17.190.170",
fZC: "",
currentLang: "",
w7j: function(t) {
if ("start" == t) e.tc.KD1.jlk = (new Date).getTime();
else {
if ("get" == t) {
e.tc.w7j("completed");
var n = e.tc.KD1.tJj;
return e.tc.KD1.jlk = 0, e.tc.KD1.tJj = [], n
}
var o = ((new Date).getTime() - e.tc.KD1.jlk).toString();
e.tc.KD1.tJj.push([o, t])
}
},
rk: function(t) {
for (var e = ["a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z", "A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z", "0", "1", "2", "3", "4", "5", "6", "7", "8", "9"], n = e.length, o = "", i = 0; t > i; i++) o += e[Math.floor(Math.random() * n)];
return o
},
NyB: function(t, e) {
var n, o = {},
i = {},
r = {},
a = {},
s = {},
c = {};
if (r[0] = "HTML_SPECIALCHARS", r[1] = "HTML_ENTITIES", a[0] = "ENT_NOQUOTES", a[2] = "ENT_COMPAT", a[3] = "ENT_QUOTES", s = isNaN(t) ? t ? t.toUpperCase() : "HTML_SPECIALCHARS" : r[t], c = isNaN(e) ? e ? e.toUpperCase() : "ENT_COMPAT" : a[e], "HTML_SPECIALCHARS" !== s && "HTML_ENTITIES" !== s) throw new Error("Table: " + s + " not supported");
o[38] = "&", "HTML_ENTITIES" === s && (o[160] = " ", o[161] = "¡", o[162] = "¢", o[163] = "£", o[164] = "¤", o[165] = "¥", o[166] = "¦", o[167] = "§", o[168] = "¨", o[169] = "©", o[170] = "ª", o[171] = "«", o[172] = "¬", o[173] = "", o[174] = "®", o[175] = "¯", o[176] = "°", o[177] = "±", o[178] = "²", o[179] = "³", o[180] = "´", o[181] = "µ", o[182] = "¶", o[183] = "·", o[184] = "¸", o[185] = "¹", o[186] = "º", o[187] = "»", o[188] = "¼", o[189] = "½", o[190] = "¾", o[191] = "¿", o[192] = "À", o[193] = "Á", o[194] = "Â", o[195] = "Ã", o[196] = "Ä", o[197] = "Å", o[198] = "Æ", o[199] = "Ç", o[200] = "È", o[201] = "É", o[202] = "Ê", o[203] = "Ë", o[204] = "Ì", o[205] = "Í", o[206] = "Î", o[207] = "Ï", o[208] = "Ð", o[209] = "Ñ", o[210] = "Ò", o[211] = "Ó", o[212] = "Ô", o[213] = "Õ", o[214] = "Ö", o[215] = "×", o[216] = "Ø", o[217] = "Ù", o[218] = "Ú", o[219] = "Û", o[220] = "Ü", o[221] = "Ý", o[222] = "Þ", o[223] = "ß", o[224] = "à", o[225] = "á", o[226] = "â", o[227] = "ã", o[228] = "ä", o[229] = "å", o[230] = "æ", o[231] = "ç", o[232] = "è", o[233] = "é", o[234] = "ê", o[235] = "ë", o[236] = "ì", o[237] = "í", o[238] = "î", o[239] = "ï", o[240] = "ð", o[241] = "ñ", o[242] = "ò", o[243] = "ó", o[244] = "ô", o[245] = "õ", o[246] = "ö", o[247] = "÷", o[248] = "ø", o[249] = "ù", o[250] = "ú", o[251] = "û", o[252] = "ü", o[253] = "ý", o[254] = "þ", o[255] = "ÿ"), "ENT_NOQUOTES" !== c && (o[34] = """), "ENT_QUOTES" === c && (o[39] = "'"), o[60] = "<", o[62] = ">";
for (n in o) "function" != typeof o[n] && o.hasOwnProperty(n) && (i[String.fromCharCode(n)] = o[n]);
return i
},
YTA: function(t) {
var n = {},
o = "",
i = "",
r = "";
if (i = t.toString(), !1 === (n = e.tc.NyB("HTML_ENTITIES", "ENT_QUOTES"))) return !1;
delete n["&"], n["&"] = "&";
for (o in n) "function" != typeof n[o] && (r = n[o], i = i.split(r).join(o));
return i = i.split("'").join("'")
},
pdj: function() {
"" != io && (clearInterval(e.tc.Fzcr), e.tc.Fzcr = 0, e.tc.ioLoaded())
},
LlZ: function(t) {
return !isNaN(parseFloat(t)) && isFinite(t)
},
t5V: function(t) {
if ("string" == typeof t) {
for (var e = -1, n = t.length; t.charCodeAt(--n) < 65;);
for (; t.charCodeAt(++e) < 65;);
var o = t.slice(0, e),
i = t.slice(e, n + 1),
r = t.slice(n + 1, t.length);
return [o, i, r]
}
},
pending: function(t, n) {
"object" == typeof e.tc.obj[e.tc.VEq] && e.tc.VEq++, e.tc.obj[e.tc.VEq] = {}, e.tc.obj[e.tc.VEq].associated = [], e.tc.obj[e.tc.VEq].translate = [];
for (var o in t)
if ("function" != typeof t[o] && "object" != typeof t[o]) {
var i = e.tc.t5V(t[o]);
e.tc.obj[e.tc.VEq].to = e.tc.fZC, e.tc.obj[e.tc.VEq].associated[o] = i, e.tc.obj[e.tc.VEq].translate[o] = i[1], e.tc.obj[e.tc.VEq].callback = n
}
},
completed: function() {
var t = e.tc.w7j("get"),
n = e.tc.YGM,
o = window.location.href || document.location.href || document.URL;
e.tc.send("complete", {
b: t,
d: n,
url: o.split("://")[1],
unique: e.tc.f8y.aAE
}), e.tc.obj = {}, e.tc.VEq = 0, e.tc.f8y.oA0 = -1, e.tc.f8y.aAE = !1, e.tc.currentLang = e.tc.fZC
},
wQJ: function() {
if (1 == e.tc.f8y.oA0) {
e.tc.f8y.oA0 = 2;
for (var t = 0, n = 0; !n; t++) {
var o = "";
for (var i in e.tc.obj)
if ("function" != typeof e.tc.obj[i])
for (var r in e.tc.obj[i].translate)
if ("string" == typeof e.tc.obj[i].translate[r]) {
var a = e.tc.t5V(e.tc.obj[i].translate[r]),
s = a[1].split(" ").length;
(1 == t || s > 3) && (o += a[1], o += s > 3 ? ". " : " ")
}(o.length > 500 || 1 == t) && (n = 1)
}
o = o.substr(0, e.o.maxLength);
var c = window.location.href || document.location.href || document.URL;
return c.match("/^((25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2}).){3}(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})$/") ? void alert("Using the button on IP addresses is currently not supported.") : "/" == c.split("://")[1].substr(0, 1) ? void alert("The TranslateThis Button currently only supports live websites.") : "localhost" == c.split("://")[1].split(":")[0] || -1 == c.indexOf(".") ? void alert("The TranslateThis Button currently only supports live websites.") : void e.tc.send("unique", {
url: c.split("://")[1],
to: e.tc.fZC,
data: o,
id: e.o.id
})
}
},
ioLoaded: function() {
var t = "http://";
"https:" == document.location.protocol && (t = "https://", e.tc.Bkt = "coboltcloud.com", e.tc.port = 9050), e.tc.kGJ = io.connect(t + e.tc.Bkt + ":" + e.tc.port), e.tc.send = function(t, n) {
e.tc.kGJ.emit(t, n)
}, e.tc.kGJ.on("connect", function() {
e.tc.w7j("socket connected to http://" + e.tc.Bkt + ":" + e.tc.port), e.tc.wQJ()
}), e.tc.kGJ.on("cancel", function() {
e.removeTopBar(), e.trans(0)
}), e.tc.kGJ.on("gs", function() {
e.setCookie("", -1);
var t = window.location.href || document.location.href || document.URL;
window.location.href = "http://translate.google.com/translate?sl=auto&tl=" + e.tc.fZC + "&u=" + t
}), e.tc.kGJ.on("unique", function(t) {
e.tc.w7j("received unique"), e.tc.f8y.aAE = t.data;
var n = 0,
o = window.location.href || document.location.href || document.URL;
for (var i in e.tc.obj) "function" != typeof e.tc.obj[i] && (e.tc.send("translate", {
unique: t.data,
id: n,
data: e.tc.obj[i].translate,
to: e.tc.obj[i].to,
url: o.split("://")[1]
}), n++)
}), e.tc.kGJ.on("translated", function(t) {
"string" == typeof t.data && (t.data = JSON.parse(t.data)), e.tc.w7j("received translation");
for (var n = [], o = 0; o < e.tc.obj[t.id].associated.length; o++) "function" != typeof e.tc.obj[t.id].associated[o] && -1 == t.data[o].indexOf("text-align:right;direction:rtl") && n.push(e.tc.obj[t.id].associated[o][0] != e.tc.obj[t.id].associated[o][2] || e.tc.YTA(t.data[o]) ? e.tc.obj[t.id].associated[o][0] + e.tc.YTA(t.data[o]) + e.tc.obj[t.id].associated[o][2] : e.tc.obj[t.id].associated[o][0]);
var i = {
Aec: n
};
e.tc.obj[t.id].callback(i)
})
},
i: function() {
"object" == typeof e.tc.kGJ ? e.tc.wQJ() : 0 == e.tc.f8y.d49 && (e.tc.f8y.d49 = 1, e.tc.port || (e.tc.port = Math.floor(Math.random() * (e.tc.xlN[1] - e.tc.xlN[0] + 1) + e.tc.xlN[0])), e.tc.Fzcr = setInterval(function() {
e.tc.pdj()
}, 25))
}
},
Gn1: function(t, e, n) {
t.attachEvent ? (t["e" + e + n] = n, t[e + n] = function() {
t["e" + e + n](window.event)
}, t.attachEvent("on" + e, t[e + n])) : t.addEventListener(e, n, !1)
},
tvU: function(t) {
t && t.tvUentDefault ? t.tvUentDefault() : window.event && window.event.returnValue && (window.event.returnValue = !1)
},
trans: function(t, n) {
function o(t) {
function n(t, n, o, r) {
var a = e.tc.t5V(n);
a[1] && -1 == e.indexOf(e.fiF, a[1]) && (d += o, (d >= h || u.length > 128) && (i(), c(o)), p.push(t), l.push(r), u.push(n))
}
if (!e.hasClass(t, "notranslate") && !e.hasClass(t, "socketio")) switch (t.nodeType) {
case 1:
switch (t.tagName) {
case "SCRIPT":
case "STYLE":
case "OBJECT":
return
}
if (!t.innerHTML) return;
for (var r = t.childNodes, a = 0, s = r.length; s > a; a++) o(r[a]);
break;
case 3:
var f = t.nodeValue,
m = f.length;
if (-1 != f.indexOf("<") && -1 != f.indexOf(">")) return;
if (h > m) n(t, f, m, 0);
else
for (var g = 0; f.length; g++) n(t, f.substr(0, h), f.length, g ? 1 : 0), f = f.substr(h)
}
}
function i() {
var t = {
nodes: p,
appends: l,
html: u
};
t.html.length > 0 && (e.Pxj.push(t), r(t))
}
function r(t) {
t.html.length && (e.YAZ++, e.tc.pending(t.html, function(n) {
e.cancel || (n.error || a(t, n.Aec), e.YAZ--, e.YAZ || s(0))
}))
}
function a(t, n) {
for (var o = t.nodes, i = 0, r = n.length; r > i; i++) {
var a = o[i],
s = n[i];
if ("undefined" == typeof a) return;
e.fiF.push(s), a.nodeValue = s
}
}
function s(o) {
e.wrap = document.getElementById(e.o.wrapper);
var i = e.fCTA();
if (e.bCTA(i), !o && (e.o.autoReparse && (e.o.autoReparse && (e.o.autoReparse = 500), e.reparseBody = document.body.innerHTML, e.reparseTimer = setInterval(function() {
e.reparseBody != document.body.innerHTML && (e.text.isNodeUpdated(document.body) && e.trans(e.tc.fZC, 1), e.reparseBody = document.body.innerHTML)
}, e.o.autoReparse)), e.o.cookie && e.setCookie(t, 30), "function" == typeof e.o.onComplete && e.o.onComplete(t), e.o.IXlTime >= 0 && 0 == n)) {
var r = document.createElement("a"),
a = e.o.doneText + " - ";
try {
r.href = "#"
} catch (s) {}
r.innerHTML = e.o.IXlText, r.onclick = function(t) {
e.tvU(t), e.removeTopBar(), e.trans(0)
}, e.topBar(a, e.o.IXlTime), e.topBarElement.appendChild(r)
}
e.tc.completed()
}
function c(t) {
p = [], l = [], u = [], d = t
}
var n = n || 0;
e.reparseTimer && (clearInterval(e.reparseTimer), e.reparseTimer = 0), e.tc.fZC = t, e.dd && (e.rem(e.dd), e.dd = 0, e.cGA = []), e.all && (e.rem(e.all), e.all = 0, e.vSa = []), e.YAZ = 1, t && e.topBarElement && e.removeTopBar(), t ? (e.o.IXlTime >= 0 && 0 == n && e.topBar(), e.tc.f8y.faq = e.l[t]) : (e.tc.f8y.faq = !1, e.tc.f8y.aAE = !1);
var p, l, u, d;
c(0);
var h = e.o.maxLength;
if (t && t != e.o.fromLang) {
if (e.cancel = 0, e.tc.f8y.oA0 = 1, !e.Pxj.length || e.o.reparse || e.o.autoReparse && e.tc.fZC == e.tc.currentLang) o(e.o.scope ? document.getElementById(e.o.scope) : document.body), i();
else {
var f = e.Pxj;
for (var m in f) r(f[m])
}
e.tc.i(), e.YAZ--, e.YAZ || s(0), "function" == typeof e.o.onClick && e.o.onClick()
} else if (!e.cancel) {
e.cancel = 1, e.setCookie("", -1);
for (var f = e.Pxj, m = 0, g = f.length; g > m; m++) a(f[m], f[m].html);
e.Pxj = [], e.fiF = [], e.Gbx(0), e.YAZ = 0, e.removeTopBar(), s(1)
}
},
b: function() {
function t() {
var t = document.createElement("style"),
n = "display:block;overflow:hidden;text-indent:-2000px;",
o = "background:#FFF;border:1px solid #BBB;font-family:Arial;color:#555;",
i = ".ttb-panel{display:none;position:absolute;z-index:2147483647;font-size:12px;text-align:left;" + o + "} .ttb-panel .ttb-column{width:118px;float:left;margin:0 3px 0 0;} .ttb-panel a{color:#555}";
e.o.noBtn || (i += " #" + e.o.wrapper + " ." + TTBND[1] + "-button{background:url('" + e.o.btnImg + "') no-repeat;visibility:visible;position:relative;width:" + e.o.btnWidth + "px;height:" + e.o.btnHeight + "px;float:left;" + n + "}"), i += " .ttb-more{float:right;padding:4px;} .ttb-close{display:block;position:absolute;top:3px;right:3px;height:16px;width:16px;}", i += " .ttb-cta{display:block;padding:4px 5px;text-decoration:none;cursor:pointer;} .ttb-cta:hover{background:#EEE;outline:1px solid #CCC;text-decoration:underline;}", i += " .translate-flag{background:url('" + e.o.bgImg + "') no-repeat;height:" + e.o.imgHeight + "px;width:" + e.o.imgWidth + "px;margin:0 6px 0 0;float:left;" + n + "}", i += " .ttb-overlay{position:absolute;top:0;left:0;z-index:2147483645;background:#222;filter:alpha(opacity=80);opacity:.8;} .ttb-translating{position:absolute;z-index:3500;height:80px;width:200px;font-size:16px;text-align:center;line-height:40px;" + o + "} .ttb-translating a{font-size:.8em;}", i += " .ttb-topbar{position:absolute;width:100%;z-index:2147483646;top:0;left:0;padding:5px 0;text-align:center;font-size:13px;font-family:Arial;color:#444;border:0;box-shadow:0px 4px 15px #222222;-moz-box-shadow:0px 4px 15px #222222;-webkit-box-shadow:0px 4px 15px #222222; background: url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiA/Pgo8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgd2lkdGg9IjEwMCUiIGhlaWdodD0iMTAwJSIgdmlld0JveD0iMCAwIDEgMSIgcHJlc2VydmVBc3BlY3RSYXRpbz0ibm9uZSI+CiAgPGxpbmVhckdyYWRpZW50IGlkPSJncmFkLXVjZ2ctZ2VuZXJhdGVkIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgeDE9IjAlIiB5MT0iMCUiIHgyPSIwJSIgeTI9IjEwMCUiPgogICAgPHN0b3Agb2Zmc2V0PSIwJSIgc3RvcC1jb2xvcj0iI2ZmZmZmZiIgc3RvcC1vcGFjaXR5PSIwLjk2Ii8+CiAgICA8c3RvcCBvZmZzZXQ9IjEwMCUiIHN0b3AtY29sb3I9IiNlNWU1ZTUiIHN0b3Atb3BhY2l0eT0iMC45NiIvPgogIDwvbGluZWFyR3JhZGllbnQ+CiAgPHJlY3QgeD0iMCIgeT0iMCIgd2lkdGg9IjEiIGhlaWdodD0iMSIgZmlsbD0idXJsKCNncmFkLXVjZ2ctZ2VuZXJhdGVkKSIgLz4KPC9zdmc+);background: -moz-linear-gradient(top, rgba(255,255,255,0.98) 0%, rgba(229,229,229,0.96) 100%);background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,rgba(255,255,255,0.98)), color-stop(100%,rgba(229,229,229,0.96)));background: -webkit-linear-gradient(top, rgba(255,255,255,0.96) 0%,rgba(229,229,229,0.98) 100%);background: -o-linear-gradient(top, rgba(255,255,255,0.96) 0%,rgba(229,229,229,0.96) 100%);background: -ms-linear-gradient(top, rgba(255,255,255,0.98) 0%,rgba(229,229,229,0.96) 100%);background: linear-gradient(top, rgba(255,255,255,0.96) 0%,rgba(229,229,229,0.98) 100%);filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#f5ffffff', endColorstr='#f5e5e5e5',GradientType=0 ); }", i += " .ttb-paneltop {background:#EEE;border-bottom:1px solid #CCC;padding:6px 5px 3px 5px;text-align:center;}", t.type = "text/css", t.styleSheet ? t.styleSheet.cssText = i : t.appendChild(document.createTextNode(i)), document.getElementsByTagName("head")[0].appendChild(t)
}
if (e.parseId(), e.wrap = document.getElementById(e.o.wrapper), e.wrap) {
var n = e.fCTA();
if (n && !(e.lynx.toLowerCase() != n.href.toLowerCase().substr(0, e.lynx.length) && n.href.indexOf(e.lynx2.toLowerCase()) < 0) || !e.tc.P9p.u) {
e.tc.YGM = {
h: n.href,
a: n.innerHTML
};
try {
n.href = "#translate"
} catch (o) {}
if (e.o.cookie && !e.YAZ) {
var i = e.getCookie();
i && e.trans(i)
}
t(), e.wrap.style.height = e.o.btnHeight + "px", e.bCTA(n), e.appendClear(e.wrap, 1), "function" == typeof e.o.onLoad && e.o.onLoad()
}
}
},
bFlag: function(t) {
var n = document.createElement("a");
n.className = "translate-" + t + " ttb-cta", n.title = "Translate into " + e.l[t], n.href = "#translate-" + t;
var o = document.createElement("span");
if (o.className = "translate-label", o.innerHTML = e.l[t], e.o.noImg) return n.appendChild(o), n;
var i = document.createElement("span");
return i.className = "translate-flag", i.style.backgroundPosition = "0 " + e.o.imgMap[t] * e.o.imgHeight * -1 + "px", n.appendChild(i), n.appendChild(o), n
},
fCTA: function() {
for (var t = e.wrap.childNodes, n = 0; n < t.length; n++)
if (t[n].className == TTBND[1] + "-button") return t[n];
return !1
},
bCTA: function(t) {
function n() {
e.dd = e.bPanel(1), e.dd.style.width = "250px", e.dd.onmouseover = o, e.dd.onmouseout = i
}
function o() {
if (a) return void clearTimeout(a);
e.dd || n();
var o = e.gPos(t);
e.dd.style.top = "-1000px", e.dd.style.display = "block";
var i = e.dd.offsetWidth;
e.dd.style.left = o[0] + (document.body.offsetWidth - o[0] > i ? 0 : t.offsetWidth - i) + "px";
var r = e.dd.offsetHeight;
e.dd.style.top = o[1] + (Math.max(e.wY(), document.body.offsetHeight) - o[1] > r ? t.offsetHeight : -1 * r) + "px"
}
function i() {
a = setTimeout(r, 500)
}
function r() {
a = 0, e.dd.style && (e.dd.style.display = "none")
}
var a = 0;
t.onclick = e.o.onlyDD ? e.tvU : e.showAll, t.onmouseover = o, t.onmouseout = i
},
bPanel: function(t) {
function n() {
f.innerHTML = 'TranslateThis Button by Translate Company'
}
function o(t) {
e.tvU(t);
var n = e.gTar(t.target || t.srcElement);
return e.hasClass(n, "ttb-cta") ? e.flagClick(t, n, i, r) : e.hasClass(n, "ttb-more") ? e.showAll() : e.hasClass(n, "ttb-close") && e.hideAll(), !1
}
if (0 == e.tc.f8y.d49 && e.tc.i(), t) var i = e.cGA,
r = e.o.ddLangs,
a = 2,
s = 0;
else var i = e.vSa,
r = e.o.allLangs,
a = 4,
s = "5px";
var c = document.createElement("div");
if (c.className = "ttb-panel notranslate", e.tc.f8y.faq) var p = '
' + e.tc.f8y.faq + " -
";
else var p = '' + e.o.panelText + "
";
if (c.innerHTML = "" + p + '
', document.body.appendChild(c), e.tc.f8y.faq) {
var l = document.createElement("a");
try {
l.href = "#"
} catch (u) {}
l.innerHTML = e.o.IXlText, l.onclick = function(t) {
e.tvU(t), e.removeTopBar(), e.trans(0)
}, document.getElementById("ttb-paneltop").appendChild(l)
}
for (var d = c.childNodes[1], h = [], f = c.childNodes[2], m = 0; a > m; m++) h[m] = document.createElement("div"), h[m].className = "ttb-column", d.appendChild(h[m]);
for (var g = 0, m = 0; m < r.length; m++) {
var y = e.bFlag(r[m]);
m >= r.length / a * (g + 1) && g++, h[g].appendChild(y), t ? e.cGA.push(y) : e.vSa.push(y)
}
if (e.Gn1(d, "click", o), "none" != e.tc.P9p.b && (n("TranslateThis Button by Translate Company", "Get your own TranslateThis Button", !t), t || n("What's This?", "What is the TranslateThis Button?", 0)), !t || !e.o.onlyDD) {
var v = document.createElement("a");
v.style.cursor = "pointer", t ? (v.className = "ttb-more", v.innerHTML = e.o.moreText) : (v.className = "ttb-close", e.o.noImg ? v.innerHTML = "X" : (v.style.backgroundImage = 'url("' + e.o.bgImg + '")', v.style.backgroundPosition = "0 -696px"), v.title = "Close"), d.appendChild(v)
}
return e.appendClear(d, 0), c
},
appendClear: function(t, e) {
var n = document.createElement("div");
n.style.margin = "0", n.style.padding = "0", e ? (n.style.width = "100%", n.style.height = "1px") : n.style.clear = "both", t.appendChild(n)
},
gPos: function(t) {
var e = curtop = 0;
if (t.offsetParent) {
do e += t.offsetLeft, curtop += t.offsetTop; while (t = t.offsetParent);
return [e, curtop]
}
},
gTar: function(t) {
return "A" != t.tagName && (t = t.parentNode), t
},
flagClick: function(t, n, o, i) {
function r(t, e) {
for (var n = 0; n < e.length; n++)
if (t == e[n]) return n
}
e.hideAll(t);
var a = r(n, o);
e.trans(i[a])
},
removeTopBar: function() {
0 != e.topBarElement && (e.rem(e.topBarElement), e.topBarElement = !1, e.topBarTimer && (clearTimeout(e.topBarTimer), e.topBarTimer = !1))
},
topBar: function(t, n) {
function o() {
e.topBarPx--, e.topBarPx > -35 ? (e.topBarElement.style.top = e.topBarPx + "px", setTimeout(o, 12)) : e.removeTopBar()
}
if ("hide" == t) o();
else if (t) e.topBarElement.innerHTML = t;
else {
var i = document.createElement("div"),
r = document.createElement("a");
i.className = "ttb-topbar notranslate", i.innerHTML = e.o.YAZText + " ", r.innerHTML = e.o.cancelText;
try {
r.href = "#"
} catch (a) {}
r.onclick = function(t) {
e.tvU(t), hideTopBar(), e.trans(0)
}, r.style.display = "none", i.appendChild(r), document.body.appendChild(i), e.topBarElement = i
}
n && (e.topBarTimer = setTimeout(function() {
e.topBarPx = 0, o()
}, n))
},
showOL: function() {
function t() {
var t = document.createElement("div");
return t.className = "ttb-overlay", document.body.appendChild(t), t.onclick = function(t) {
e.hideAll(t)
}, window.onresize = function() {
e.resize = setTimeout(n, 80)
}, t
}
function n() {
if (e.olShow) {
var t = document,
n = Math.max(Math.max(t.body.scrollWidth, t.documentElement.scrollWidth), Math.max(t.body.offsetWidth, t.documentElement.offsetWidth), Math.max(t.body.clientWidth, t.documentElement.clientWidth)),
o = Math.max(Math.max(t.body.scrollHeight, t.documentElement.scrollHeight), Math.max(t.body.offsetHeight, t.documentElement.offsetHeight), Math.max(t.body.clientHeight, t.documentElement.clientHeight));
e.ol.style.width = n + "px", e.ol.style.height = o + "px"
}
}
e.olShow = 1, e.ol || (e.ol = t()), n(), e.ol.style.display = "block", e.dd && (e.dd.style.display = "none")
},
hideOL: function() {
e.ol.style.display = "none", e.olShow = 0
},
showAll: function(t) {
function n() {
var t = e.bPanel(0);
return t.style.width = "492px", t
}
e.tvU(t), e.showOL(), e.all || (e.all = n()), e.centerXY(e.all, 246, 190), e.all.style.display = "block"
},
hideAll: function(t) {
e.tvU(t), e.all && (e.all.style.display = "none", e.hideOL())
},
centerXY: function(t, n, o) {
var i = 0,
r = 0;
"number" == typeof window.pageYOffset ? (r = window.pageYOffset, i = window.pageXOffset) : document.body && (document.body.scrollLeft || document.body.scrollTop) ? (r = document.body.scrollTop, i = document.body.scrollLeft) : document.documentElement && (document.documentElement.scrollLeft || document.documentElement.scrollTop) && (r = document.documentElement.scrollTop, i = document.documentElement.scrollLeft), i += e.wX() / 2 - n, r += e.wY() / 2 - o, t.style.top = r + "px", t.style.left = i + "px"
},
wX: function() {
return window.innerWidth ? window.innerWidth : document.documentElement.clientWidth ? document.documentElement.clientWidth : document.body.clientWidth
},
wY: function() {
return window.innerHeight ? window.innerHeight : document.documentElement.clientHeight ? document.documentElement.clientHeight : document.body.clientHeight
},
rem: function(t) {
t.parentNode.removeChild(t)
},
setCookie: function(t, n) {
var o = new Date;
o.setTime(o.getTime() + 864e4 * n), document.cookie = e.o.cookie + "=" + t + "; expires=" + o.toGMTString() + "; path=/"
},
getCookie: function() {
for (var t = e.o.cookie + "=", n = document.cookie.split(";"), o = 0; o < n.length; o++) {
for (var i = n[o];
" " == i.charAt(0);) i = i.substring(1, i.length);
if (0 == i.indexOf(t)) return i.substring(t.length, i.length)
}
return null
},
Gbx: function(t) {
e.o.GA && "init" != t && "undefined" != typeof pageTracker && pageTracker._trackPageview("TranslateThis-" + t), "https:" == document.location.protocol
},
indexOf: function(t, e) {
for (var n = 0; n < t.length; n++)
if (t[n] == e) return n;
return -1
},
hasClass: function(t, e) {
var n = " " + e + " ";
return (" " + t.className + " ").replace(/[\n\t]/g, " ").indexOf(n) > -1 ? !0 : !1
},
parseId: function() {
if (0 != e.o.id) {
var t = e.o.id.split(".")[1];
t && (t.indexOf("b") !== !1 && (e.tc.P9p.b = "none"), t.indexOf("u") !== !1 && (e.tc.P9p.u = !1))
}
},
demoteFlash: function() {
for (var t = document.getElementsByTagName("embed"), e = 0; e < t.length; e++) t[e].setAttribute("wmode", "opaque");
for (var n = document.getElementsByTagName("object"), o = [], e = 0; e < n.length; e++) o[e] = n[e];
for (var e = 0; e < o.length; e++) {
var i = document.createElement("param");
i.setAttribute("name", "wmode"), i.setAttribute("value", "opaque"), o[e].appendChild(i);
var r = document.createElement("div");
if (o[e].parentNode.appendChild(r), o[e].outerHTML) {
var a = o[e].outerHTML;
o[e].parentNode.removeChild(o[e]), r.innerHTML = a
} else o[e].parentNode.removeChild(o[e]), r.appendChild(o[e])
}
}
};
e.lynx = "http://translateTH.IS/", e.lynx2 = ".translatecompany.";
var t = t || [];
if (t.wrapper = t.wrapper || TTBND[1], t.scope = t.scope || !1, t.bgImg = t.bgImg || "http://" + e.host + "/tt-sprite3.png", t.fromLang = t.fromLang || "", t.flags = t.flags || [], "" == t.fromLang || "en" == t.fromLang) var n = ["fr", "es", "ar", "zh-CN", "ko", "it", "cs", "iw", "de", "pt-PT", "ru", "ja", "vi", "el", "hi", "tr"];
else var n = ["en", "fr", "es", "ar", "zh-CN", "ko", "it", "iw", "de", "pt-PT", "ru", "ja", "vi", "el", "hi", "tr"];
t.ddLangs = t.ddLangs || n, t.imgMap = t.imgMap || {
af: 10,
sq: 11,
ar: 6,
be: 12,
bg: 13,
ca: 50,
"zh-CN": 7,
"zh-TW": 14,
hr: 15,
cs: 16,
da: 17,
nl: 18,
en: 19,
et: 21,
fi: 22,
fr: 0,
gl: 51,
de: 1,
el: 23,
iw: 24,
hi: 25,
hu: 26,
is: 27,
id: 28,
ga: 29,
it: 4,
ja: 8,
ko: 9,
lv: 30,
lt: 31,
mk: 32,
ms: 33,
mt: 34,
no: 35,
fa: 36,
pl: 37,
"pt-PT": 3,
ro: 38,
ru: 5,
sr: 39,
sk: 40,
sl: 41,
es: 2,
sw: 42,
sv: 43,
tl: 44,
th: 45,
tr: 46,
uk: 47,
vi: 48,
cy: 49,
yi: 24
}, void 0 === t.allLangs && (t.allLangs = ["af", "sq", "ar", "be", "bg", "ca", "zh-CN", "zh-TW", "hr", "cs", "da", "nl", "en", "et", "fi", "fr", "gl", "de", "el", "iw", "hi", "hu", "is", "id", "ga", "it", "ja", "ko", "lv", "lt", "mk", "ms", "mt", "no", "fa", "pl", "pt-PT", "ro", "ru", "sr", "sk", "sl", "es", "sw", "sv", "tl", "th", "tr", "uk", "vi", "cy", "yi"]), t.noBtn = t.noBtn || !1, t.btnWidth = t.btnWidth || 180, t.btnHeight = t.btnHeight || 18, t.noImg = t.noImg || !1, t.imgHeight = t.imgHeight || 12, t.imgWidth = t.imgWidth || 18, t.maxLength = 4500, t.onlyDD = t.onlyDD || !1, void 0 === t.IXlTime && (t.IXlTime = -1), t.onLoad = t.onLoad || null, t.onClick = t.onClick || null, t.onComplete = t.onComplete || null, t.GA = t.GA || !1, t.cookie = void 0 !== t.cookie ? t.cookie : "tt-lang", t.IXlText = t.IXlText || "Undo »", t.panelText = t.panelText || "Translate Into", t.moreText = t.moreText || t.allLangs.length - t.ddLangs.length + " More Languages »", t.YAZText = t.YAZText || "Translating Page...", t.cancelText = t.cancelText || "cancel", t.doneText = t.doneText || "Translation Complete", t.msie = /(msie) ([\w.]+)/.exec(navigator.userAgent.toLowerCase()) || !1, t.btnImg = t.btnImg || "http://" + e.host + "/tt-btn1.png", t.id = t.id || !1, t.autoReparse = t.autoReparse || !1, e.o = t;
var o = {
AFRIKAANS: "af",
ALBANIAN: "sq",
AMHARIC: "am",
ARABIC: "ar",
ARMENIAN: "hy",
AZERBAIJANI: "az",
BASQUE: "eu",
BELARUSIAN: "be",
BENGALI: "bn",
BIHARI: "bh",
BULGARIAN: "bg",
BURMESE: "my",
BRETON: "br",
CATALAN: "ca",
CHEROKEE: "chr",
CHINESE: "zh",
CHINESE_SIMPLIFIED: "zh-CN",
CHINESE_TRADITIONAL: "zh-TW",
CORSICAN: "co",
CROATIAN: "hr",
CZECH: "cs",
DANISH: "da",
DHIVEHI: "dv",
DUTCH: "nl",
ENGLISH: "en",
ESPERANTO: "eo",
ESTONIAN: "et",
FAROESE: "fo",
FILIPINO: "tl",
FINNISH: "fi",
FRENCH: "fr",
FRISIAN: "fy",
GALICIAN: "gl",
GEORGIAN: "ka",
GERMAN: "de",
GREEK: "el",
GUJARATI: "gu",
HAITIAN_CREOLE: "ht",
HEBREW: "iw",
HINDI: "hi",
HUNGARIAN: "hu",
ICELANDIC: "is",
INDONESIAN: "id",
INUKTITUT: "iu",
IRISH: "ga",
ITALIAN: "it",
JAPANESE: "ja",
JAVANESE: "jw",
KANNADA: "kn",
KAZAKH: "kk",
KHMER: "km",
KOREAN: "ko",
KURDISH: "ku",
KYRGYZ: "ky",
LAO: "lo",
LAOTHIAN: "lo",
LATIN: "la",
LATVIAN: "lv",
LITHUANIAN: "lt",
LUXEMBOURGISH: "lb",
MACEDONIAN: "mk",
MALAY: "ms",
MALAYALAM: "ml",
MALTESE: "mt",
MAORI: "mi",
MARATHI: "mr",
MONGOLIAN: "mn",
NEPALI: "ne",
NORWEGIAN: "no",
OCCITAN: "oc",
ORIYA: "or",
PASHTO: "ps",
PERSIAN: "fa",
POLISH: "pl",
PORTUGUESE: "pt",
PORTUGUESE_PORTUGAL: "pt-PT",
PUNJABI: "pa",
QUECHUA: "qu",
ROMANIAN: "ro",
RUSSIAN: "ru",
SANSKRIT: "sa",
SCOTS_GAELIC: "gd",
SERBIAN: "sr",
SINDHI: "sd",
SINHALESE: "si",
SLOVAK: "sk",
SLOVENIAN: "sl",
SPANISH: "es",
SUNDANESE: "su",
SWAHILI: "sw",
SWEDISH: "sv",
SYRIAC: "syr",
TAJIK: "tg",
TAMIL: "ta",
TAGALOG: "tl",
TATAR: "tt",
TELUGU: "te",
THAI: "th",
TIBETAN: "bo",
TONGA: "to",
TURKISH: "tr",
UKRAINIAN: "uk",
URDU: "ur",
UZBEK: "uz",
UIGHUR: "ug",
VIETNAMESE: "vi",
WELSH: "cy",
YIDDISH: "yi",
YORUBA: "yo",
UNKNOWN: ""
};
for (l in o) {
var i = o[l],
r = l.replace("_", " ").toLowerCase();
r = r.charAt(0).toUpperCase() + r.substr(1, r.length), e.l[i] = r
}
e.l["zh-CN"] = "Chinese", e.l["zh-TW"] = "Chinese (trad.)", e.l["pt-PT"] = "Portuguese";
var a = window.onload ? window.onload : function() {};
window.onload = function() {
a(), new e.b
}
}
window.TTBND = ["TranslateThis", "translate-this", "x.translateth.is"], window[TTBND[0]] = t
}();
var io = "undefined" == typeof module ? {} : module.exports;
! function() {
! function(t, e) {
var n = t;
n.version = "0.9.16", n.protocol = 1, n.transports = [], n.j = [], n.sockets = {}, n.connect = function(t, o) {
var i, r, a = n.util.parseUri(t);
e && e.location && (a.protocol = a.protocol || e.location.protocol.slice(0, -1), a.host = a.host || (e.document ? e.document.domain : e.location.hostname), a.port = a.port || e.location.port), i = n.util.uniqueUri(a);
var s = {
host: a.host,
secure: "https" == a.protocol,
port: a.port || ("https" == a.protocol ? 443 : 80),
query: a.query || ""
};
return n.util.merge(s, o), (s["force new connection"] || !n.sockets[i]) && (r = new n.Socket(s)), !s["force new connection"] && r && (n.sockets[i] = r), r = r || n.sockets[i], r.of(a.path.length > 1 ? a.path : "")
}
}("object" == typeof module ? module.exports : this.io = {}, this),
function(t, e) {
var n = t.util = {},
o = /^(?:(?![^:@]+:[^:@\/]*@)([^:\/?#.]+):)?(?:\/\/)?((?:(([^:@]*)(?::([^:@]*))?)?@)?([^:\/?#]*)(?::(\d*))?)(((\/(?:[^?#](?![^?#\/]*\.[^?#\/.]+(?:[?#]|$)))*\/?)?([^?#\/]*))(?:\?([^#]*))?(?:#(.*))?)/,
i = ["source", "protocol", "authority", "userInfo", "user", "password", "host", "port", "relative", "path", "directory", "file", "query", "anchor"];
n.parseUri = function(t) {
for (var e = o.exec(t || ""), n = {}, r = 14; r--;) n[i[r]] = e[r] || "";
return n
}, n.uniqueUri = function(t) {
var n = t.protocol,
o = t.host,
i = t.port;
return "document" in e ? (o = o || document.domain, i = i || ("https" == n && "https:" !== document.location.protocol ? 443 : document.location.port)) : (o = o || "localhost", i || "https" != n || (i = 443)), (n || "http") + "://" + o + ":" + (i || 80)
}, n.query = function(t, e) {
var o = n.chunkQuery(t || ""),
i = [];
n.merge(o, n.chunkQuery(e || ""));
for (var r in o) o.hasOwnProperty(r) && i.push(r + "=" + o[r]);
return i.length ? "?" + i.join("&") : ""
}, n.chunkQuery = function(t) {
for (var e, n = {}, o = t.split("&"), i = 0, r = o.length; r > i; ++i) e = o[i].split("="), e[0] && (n[e[0]] = e[1]);
return n
};
var r = !1;
n.load = function(t) {
return "document" in e && "complete" === document.readyState || r ? t() : void n.on(e, "load", t, !1)
}, n.on = function(t, e, n, o) {
t.attachEvent ? t.attachEvent("on" + e, n) : t.addEventListener && t.addEventListener(e, n, o)
}, 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() {
r = !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, o, i) {
var r, a = i || [],
s = "undefined" == typeof o ? 2 : o;
for (r in e) e.hasOwnProperty(r) && n.indexOf(a, r) < 0 && ("object" == typeof t[r] && s ? n.merge(t[r], e[r], s - 1, a) : (t[r] = e[r], a.push(e[r])));
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 o = [], i = t.length > e.length ? t : e, r = t.length > e.length ? e : t, a = 0, s = r.length; s > a; a++) ~n.indexOf(i, r[a]) && o.push(r[a]);
return o
}, n.indexOf = function(t, e, n) {
for (var o = t.length, n = 0 > n ? 0 > n + o ? 0 : n + o : n || 0; o > n && t[n] !== e; n++);
return n >= o ? -1 : n
}, n.toArray = function(t) {
for (var e = [], n = 0, o = t.length; o > 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),
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() {
o.removeListener(t, n), e.apply(this, arguments)
}
var o = this;
return n.listener = e, this.on(t, n), this
}, n.prototype.removeListener = function(t, n) {
if (this.$events && this.$events[t]) {
var o = this.$events[t];
if (e.util.isArray(o)) {
for (var i = -1, r = 0, a = o.length; a > r; r++)
if (o[r] === n || o[r].listener && o[r].listener === n) {
i = r;
break
}
if (0 > i) return this;
o.splice(i, 1), o.length || delete this.$events[t]
} else(o === n || o.listener && o.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 o = Array.prototype.slice.call(arguments, 1);
if ("function" == typeof n) n.apply(this, o);
else {
if (!e.util.isArray(n)) return !1;
for (var i = n.slice(), r = 0, a = i.length; a > r; r++) i[r].apply(this, o)
}
return !0
}
}("undefined" != typeof io ? io : module.exports, "undefined" != typeof io ? io : module.parent.exports),
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, o, i, r, a, s = gap,
c = e[t];
switch (c instanceof Date && (c = date(t)), "function" == typeof rep && (c = rep.call(e, t, c)), typeof c) {
case "string":
return quote(c);
case "number":
return isFinite(c) ? String(c) : "null";
case "boolean":
case "null":
return String(c);
case "object":
if (!c) return "null";
if (gap += indent, a = [], "[object Array]" === Object.prototype.toString.apply(c)) {
for (r = c.length, n = 0; r > n; n += 1) a[n] = str(n, c) || "null";
return i = 0 === a.length ? "[]" : gap ? "[\n" + gap + a.join(",\n" + gap) + "\n" + s + "]" : "[" + a.join(",") + "]", gap = s, i
}
if (rep && "object" == typeof rep)
for (r = rep.length, n = 0; r > n; n += 1) "string" == typeof rep[n] && (o = rep[n], i = str(o, c), i && a.push(quote(o) + (gap ? ": " : ":") + i));
else
for (o in c) Object.prototype.hasOwnProperty.call(c, o) && (i = str(o, c), i && a.push(quote(o) + (gap ? ": " : ":") + i));
return i = 0 === a.length ? "{}" : gap ? "{\n" + gap + a.join(",\n" + gap) + "\n" + s + "}" : "{" + a.join(",") + "}", gap = s, i
}
}
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 o;
if (gap = "", indent = "", "number" == typeof n)
for (o = 0; n > o; o += 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, o, i = t[e];
if (i && "object" == typeof i)
for (n in i) Object.prototype.hasOwnProperty.call(i, n) && (o = walk(i, n), void 0 !== o ? i[n] = o : delete i[n]);
return reviver.call(t, e, i)
}
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),
function(t, e) {
var n = t.parser = {},
o = n.packets = ["disconnect", "connect", "heartbeat", "message", "json", "event", "ack", "error", "noop"],
i = n.reasons = ["transport not supported", "client not handshaken", "unauthorized"],
r = n.advice = ["reconnect"],
a = e.JSON,
s = e.util.indexOf;
n.encodePacket = function(t) {
var e = s(o, t.type),
n = t.id || "",
c = t.endpoint || "",
p = t.ack,
l = null;
switch (t.type) {
case "error":
var u = t.reason ? s(i, t.reason) : "",
d = t.advice ? s(r, t.advice) : "";
("" !== u || "" !== d) && (l = u + ("" !== d ? "+" + d : ""));
break;
case "message":
"" !== t.data && (l = t.data);
break;
case "event":
var h = {
name: t.name
};
t.args && t.args.length && (h.args = t.args), l = a.stringify(h);
break;
case "json":
l = a.stringify(t.data);
break;
case "connect":
t.qs && (l = t.qs);
break;
case "ack":
l = t.ackId + (t.args && t.args.length ? "+" + a.stringify(t.args) : "")
}
var f = [e, n + ("data" == p ? "+" : ""), c];
return null !== l && void 0 !== l && f.push(l), f.join(":")
}, n.encodePayload = function(t) {
var e = "";
if (1 == t.length) return t[0];
for (var n = 0, o = t.length; o > n; n++) {
var i = t[n];
e += "ГЇВїВЅ" + i.length + "ГЇВїВЅ" + t[n]
}
return e
};
var c = /([^:]+):([0-9]+)?(\+)?:([^:]+)?:?([\s\S]*)?/;
n.decodePacket = function(t) {
var e = t.match(c);
if (!e) return {};
var n = e[2] || "",
t = e[5] || "",
s = {
type: o[e[1]],
endpoint: e[4] || ""
};
switch (n && (s.id = n, s.ack = e[3] ? "data" : !0), s.type) {
case "error":
var e = t.split("+");
s.reason = i[e[0]] || "", s.advice = r[e[1]] || "";
break;
case "message":
s.data = t || "";
break;
case "event":
try {
var p = a.parse(t);
s.name = p.name, s.args = p.args
} catch (l) {}
s.args = s.args || [];
break;
case "json":
try {
s.data = a.parse(t)
} catch (l) {}
break;
case "connect":
s.qs = t || "";
break;
case "ack":
var e = t.match(/^([0-9]+)(\+)?(.*)/);
if (e && (s.ackId = e[1], s.args = [], e[3])) try {
s.args = e[3] ? a.parse(e[3]) : []
} catch (l) {}
break;
case "disconnect":
case "heartbeat":
}
return s
}, n.decodePayload = function(t) {
if ("ГЇВїВЅ" == t.charAt(0)) {
for (var e = [], o = 1, i = ""; o < t.length; o++) "ГЇВїВЅ" == t.charAt(o) ? (e.push(n.decodePacket(t.substr(o + 1).substr(0, i))), o += Number(i) + 1, i = "") : i += t.charAt(o);
return e
}
return [n.decodePacket(t)]
}
}("undefined" != typeof io ? io : module.exports, "undefined" != typeof io ? io : module.parent.exports),
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 o = 0, i = n.length; i > o; o++) this.onPacket(n[o])
}
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),
function(t, e, n) {
function o(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 o = this;
e.util.on(n, "beforeunload", function() {
o.disconnectSync()
}, !1)
}
this.options["auto connect"] && this.connect()
}
function i() {}
t.Socket = o, e.util.mixin(o, e.EventEmitter), o.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]
}, o.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))
}, o.prototype.handshake = function(t) {
function n(e) {
e instanceof Error ? (o.connecting = !1, o.onError(e.message)) : t.apply(null, e.split(":"))
}
var o = this,
r = this.options,
a = ["http" + (r.secure ? "s" : "") + ":/", r.host + ":" + r.port, r.resource, e.protocol, e.util.query(this.options.query, "t=" + +new Date)].join("/");
if (this.isXDomain() && !e.util.ua.hasCORS) {
var s = document.getElementsByTagName("script")[0],
c = document.createElement("script");
c.src = a + "&jsonp=" + e.j.length, s.parentNode.insertBefore(c, s), e.j.push(function(t) {
n(t), c.parentNode.removeChild(c)
})
} else {
var p = e.util.request();
p.open("GET", a, !0), this.isXDomain() && (p.withCredentials = !0), p.onreadystatechange = function() {
4 == p.readyState && (p.onreadystatechange = i, 200 == p.status ? n(p.responseText) : 403 == p.status ? o.onError(p.responseText) : (o.connecting = !1, !o.reconnecting && o.onError(p.responseText)))
}, p.send(null)
}
}, o.prototype.getTransport = function(t) {
for (var n, o = t || this.transports, i = 0; n = o[i]; i++)
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
}, o.prototype.connect = function(t) {
if (this.connecting) return this;
var n = this;
return n.connecting = !0, this.handshake(function(o, i, r, a) {
function s(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 ? s(t) : n.publish("connect_failed")
}
}, n.options["connect timeout"]))
}) : n.publish("connect_failed")
}
n.sessionid = o, n.closeTimeout = 1e3 * r, n.heartbeatTimeout = 1e3 * i, n.transports || (n.transports = n.origTransports = a ? e.util.intersect(a.split(","), n.options.transports) : n.options.transports), n.setHeartbeatTimeout(), s(n.transports), n.once("connect", function() {
clearTimeout(n.connectTimeoutTimer), t && "function" == typeof t && t()
})
}), this
}, o.prototype.setHeartbeatTimeout = function() {
if (clearTimeout(this.heartbeatTimeoutTimer), !this.transport || this.transport.heartbeats()) {
var t = this;
this.heartbeatTimeoutTimer = setTimeout(function() {
t.transport.onClose()
}, this.heartbeatTimeout)
}
}, o.prototype.packet = function(t) {
return this.connected && !this.doBuffer ? this.transport.packet(t) : this.buffer.push(t), this
}, o.prototype.setBuffer = function(t) {
this.doBuffer = t, !t && this.connected && this.buffer.length && (this.options.manualFlush || this.flushBuffer())
}, o.prototype.flushBuffer = function() {
this.transport.payload(this.buffer), this.buffer = []
}, o.prototype.disconnect = function() {
return (this.connected || this.connecting) && (this.open && this.of("").packet({
type: "disconnect"
}), this.onDisconnect("booted")), this
}, o.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")
}, o.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
}, o.prototype.onConnect = function() {
this.connected || (this.connected = !0, this.connecting = !1, this.doBuffer || this.setBuffer(!1), this.emit("connect"))
}, o.prototype.onOpen = function() {
this.open = !0
}, o.prototype.onClose = function() {
this.open = !1, clearTimeout(this.heartbeatTimeoutTimer)
}, o.prototype.onPacket = function(t) {
this.of(t.endpoint).onPacket(t)
}, o.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)
}, o.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()))
}, o.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"] = i
}
function e() {
return n.reconnecting ? n.connected ? t() : n.connecting && n.reconnecting ? n.reconnectionTimer = setTimeout(e, 1e3) : void(n.reconnectionAttempts++ >= o ? 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 < r && (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,
o = this.options["max reconnection attempts"],
i = this.options["try multiple transports"],
r = 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),
function(t, e) {
function n(t, e) {
this.socket = t, this.name = e || "", this.flags = {}, this.json = new o(this, "json"), this.ackPackets = 0, this.acks = {}
}
function o(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],
o = {
type: "event",
name: t
};
return "function" == typeof n && (o.id = ++this.ackPackets, o.ack = "data", this.acks[o.id] = n, e = e.slice(0, e.length - 1)), o.args = e, this.packet(o)
}, 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() {
o.packet({
type: "ack",
args: e.util.toArray(arguments),
ackId: t.id
})
}
var o = 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 i = ["message", t.data];
"data" == t.ack ? i.push(n) : t.ack && this.packet({
type: "ack",
ackId: t.id
}), this.$emit.apply(this, i);
break;
case "event":
var i = [t.name].concat(t.args);
"data" == t.ack && i.push(n), this.$emit.apply(this, i);
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)
}
}, o.prototype.send = function() {
this.namespace.flags[this.name] = !0, this.namespace.send.apply(this.namespace, arguments)
}, o.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),
function(t, e, n) {
function o() {
e.Transport.apply(this, arguments)
}
t.websocket = o, e.util.inherit(o, e.Transport), o.prototype.name = "websocket", o.prototype.open = function() {
var t, o = e.util.query(this.socket.options.query),
i = this;
return t || (t = n.MozWebSocket || n.WebSocket), this.websocket = new t(this.prepareUrl() + o), this.websocket.onopen = function() {
i.onOpen(), i.socket.setBuffer(!1)
}, this.websocket.onmessage = function(t) {
i.onData(t.data)
}, this.websocket.onclose = function() {
i.onClose(), i.socket.setBuffer(!0)
}, this.websocket.onerror = function(t) {
i.onError(t)
}, this
}, o.prototype.send = e.util.ua.iDevice ? function(t) {
var e = this;
return setTimeout(function() {
e.websocket.send(t)
}, 0), this
} : function(t) {
return this.websocket.send(t), this
}, o.prototype.payload = function(t) {
for (var e = 0, n = t.length; n > e; e++) this.packet(t[e]);
return this
}, o.prototype.close = function() {
return this.websocket.close(), this
}, o.prototype.onError = function(t) {
this.socket.onError(t)
}, o.prototype.scheme = function() {
return this.socket.options.secure ? "wss" : "ws"
}, o.check = function() {
return "WebSocket" in n && !("__addTask" in WebSocket) || "MozWebSocket" in n
}, o.xdomainCheck = function() {
return !0
}, e.transports.push("websocket")
}("undefined" != typeof io ? io.Transport : module.exports, "undefined" != typeof io ? io : module.parent.exports, this),
function(t, e, n) {
function o(t) {
t && (e.Transport.apply(this, arguments), this.sendBuffer = [])
}
function i() {}
t.XHR = o, e.util.inherit(o, e.Transport), o.prototype.open = function() {
return this.socket.setBuffer(!1), this.onOpen(), this.get(), this.setCloseTimeout(), this
}, o.prototype.payload = function(t) {
for (var n = [], o = 0, i = t.length; i > o; o++) n.push(e.parser.encodePacket(t[o]));
this.send(e.parser.encodePayload(n))
}, o.prototype.send = function(t) {
return this.post(t), this
}, o.prototype.post = function(t) {
function e() {
4 == this.readyState && (this.onreadystatechange = i, r.posting = !1, 200 == this.status ? r.socket.setBuffer(!1) : r.onClose())
}
function o() {
this.onload = i, r.socket.setBuffer(!1)
}
var r = this;
this.socket.setBuffer(!0), this.sendXHR = this.request("POST"), n.XDomainRequest && this.sendXHR instanceof XDomainRequest ? this.sendXHR.onload = this.sendXHR.onerror = o : this.sendXHR.onreadystatechange = e, this.sendXHR.send(t)
}, o.prototype.close = function() {
return this.onClose(), this
}, o.prototype.request = function(t) {
var n = e.util.request(this.socket.isXDomain()),
o = e.util.query(this.socket.options.query, "t=" + +new Date);
if (n.open(t || "GET", this.prepareUrl() + o, !0), "POST" == t) try {
n.setRequestHeader ? n.setRequestHeader("Content-type", "text/plain;charset=UTF-8") : n.contentType = "text/plain"
} catch (i) {}
return n
}, o.prototype.scheme = function() {
return this.socket.options.secure ? "https" : "http"
}, o.check = function(t, o) {
try {
var i = e.util.request(o),
r = n.XDomainRequest && i instanceof XDomainRequest,
a = t && t.options && t.options.secure ? "https:" : "http:",
s = n.location && a != n.location.protocol;
if (i && (!r || !s)) return !0
} catch (c) {}
return !1
}, o.xdomainCheck = function(t) {
return o.check(t, !0)
}
}("undefined" != typeof io ? io.Transport : module.exports, "undefined" != typeof io ? io : module.parent.exports, this),
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(""), 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,
o = e.util.query(this.socket.options.query, "t=" + +new Date);
this.iframe.src = this.prepareUrl() + o, e.util.on(window, "unload", function() {
n.destroy()
})
}, n.prototype._ = function(t, e) {
t = t.replace(/\\\//g, "/"), this.onData(t);
try {
var n = e.getElementsByTagName("script")[0];
n.parentNode.removeChild(n)
} catch (o) {}
}, 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 (o) {}
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(t, e, n) {
function o() {
e.Transport.XHR.apply(this, arguments)
}
function i() {}
t["xhr-polling"] = o, e.util.inherit(o, e.Transport.XHR), e.util.merge(o, e.Transport.XHR), o.prototype.name = "xhr-polling", o.prototype.heartbeats = function() {
return !1
}, o.prototype.open = function() {
var t = this;
return e.Transport.XHR.prototype.open.call(t), !1
}, o.prototype.get = function() {
function t() {
4 == this.readyState && (this.onreadystatechange = i, 200 == this.status ? (r.onData(this.responseText), r.get()) : r.onClose())
}
function e() {
this.onload = i, this.onerror = i, r.retryCounter = 1, r.onData(this.responseText), r.get()
}
function o() {
r.retryCounter++, !r.retryCounter || r.retryCounter > 3 ? r.onClose() : r.get()
}
if (this.isOpen) {
var r = this;
this.xhr = this.request(), n.XDomainRequest && this.xhr instanceof XDomainRequest ? (this.xhr.onload = e, this.xhr.onerror = o) : this.xhr.onreadystatechange = t, this.xhr.send(null)
}
}, o.prototype.onClose = function() {
if (e.Transport.XHR.prototype.onClose.call(this), this.xhr) {
this.xhr.onreadystatechange = this.xhr.onload = this.xhr.onerror = i;
try {
this.xhr.abort()
} catch (t) {}
this.xhr = null
}
}, o.prototype.ready = function(t, n) {
var o = this;
e.util.defer(function() {
n.call(o)
})
}, e.transports.push("xhr-polling")
}("undefined" != typeof io ? io.Transport : module.exports, "undefined" != typeof io ? io : module.parent.exports, this),
function(t, e, n) {
function o() {
e.Transport["xhr-polling"].apply(this, arguments), this.index = e.j.length;
var t = this;
e.j.push(function(e) {
t._(e)
})
}
var i = n.document && "MozAppearance" in n.document.documentElement.style;
t["jsonp-polling"] = o, e.util.inherit(o, e.Transport["xhr-polling"]), o.prototype.name = "jsonp-polling", o.prototype.post = function(t) {
function n() {
o(), i.socket.setBuffer(!1)
}
function o() {
i.iframe && i.form.removeChild(i.iframe);
try {
a = document.createElement('