Skip to content

Instantly share code, notes, and snippets.

@livingston
Created July 12, 2011 21:55
Show Gist options
  • Star 2 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save livingston/1079072 to your computer and use it in GitHub Desktop.
Save livingston/1079072 to your computer and use it in GitHub Desktop.
Beautified render_frame.js
(function() {
function i(a) {
throw a;
}
var j = void 0,
q = null,
s;
function aa(a) {
this.t = {};
this.tick = function(a, c, d) {
this.t[a] = [d != j ? d: (new Date).getTime(), c]
};
this.tick("start", q, a)
}
var ba = new aa;
window.jstiming = {
Timer: aa,
load: ba
};
try {
var ca = q;
window.chrome && window.chrome.csi && (ca = Math.floor(window.chrome.csi().pageT));
ca == q && window.gtbExternal && (ca = window.gtbExternal.pageT());
ca == q && window.external && (ca = window.external.pageT);
ca && (window.jstiming.pt = ca)
} catch(da) {};
if (window.jstiming) {
window.jstiming.kb = {};
window.jstiming.Wb = 1;
var ea = function(a, b, c) {
var d = a.t[b],
f = a.t.start;
if (d && (f || c))
return d = a.t[b][0],
c != j ? f = c: f = f[0],
d - f
},
fa = function(a, b, c) {
var d = "";
window.jstiming.pt && (d += "&srt=" + window.jstiming.pt, delete window.jstiming.pt);
try {
window.external && window.external.tran ? d += "&tran=" + window.external.tran: window.gtbExternal && window.gtbExternal.tran ? d += "&tran=" + window.gtbExternal.tran() : window.chrome && window.chrome.csi && (d += "&tran=" + window.chrome.csi().tran)
} catch(f) {}
var e = window.chrome;
if (e && (e = e.loadTimes))
e().wasFetchedViaSpdy && (d += "&p=s"),
e().wasNpnNegotiated && (d += "&npn=1"),
e().wasAlternateProtocolAvailable && (d += "&apa=1");
a.Xb && (d += "&" + a.Xb);
var g = a.t,
h = g.start,
e = [],
l = [],
k;
for (k in g)
if (k != "start" && k.indexOf("_") != 0) {
var n = g[k][1];
n ? g[n] && l.push(k + "." + ea(a, k, g[n][0])) : h && e.push(k + "." + ea(a, k))
}
delete g.start;
if (b)
for (var p in b)
d += "&" + p + "=" + b[p]; (b = c) || (b = "https:" == document.location.protocol ? "http://csi.gstatic.com/csi": "http://csi.gstatic.com/csi");
return [b, "?v=3", "&s=" + (window.jstiming.sn || "_s") + "&action=", a.name, l.length ? "&it=" + l.join(",") : "", "", d, "&rt=", e.join(",")].join("")
};
window.jstiming.report = function(a, b, c) {
a = fa(a, b, c);
if (!a)
return "";
var b = new Image,
d = window.jstiming.Wb++;
window.jstiming.kb[d] = b;
b.onload = b.onerror = function() {
delete window.jstiming.kb[d]
};
b.src = a;
b = q;
return a
}
};
var t = this,
ga = function(a) {
for (var a = a.split("."), b = t, c; c = a.shift();)
if (b[c] != q)
b = b[c];
else
return q;
return b
},
ha = function() {},
ka = function(a) {
var b = typeof a;
if (b == "object")
if (a) {
if (a instanceof Array)
return "array";
else if (a instanceof Object)
return b;
var c = Object.prototype.toString.call(a);
if (c == "[object Window]")
return "object";
if (c == "[object Array]" || typeof a.length == "number" && typeof a.splice != "undefined" && typeof a.propertyIsEnumerable != "undefined" && !a.propertyIsEnumerable("splice"))
return "array";
if (c == "[object Function]" || typeof a.call != "undefined" && typeof a.propertyIsEnumerable != "undefined" && !a.propertyIsEnumerable("call"))
return "function"
} else
return "null";
else if (b == "function" && typeof a.call == "undefined")
return "object";
return b
},
la = function(a) {
return ka(a) == "array"
},
ma = function(a) {
var b = ka(a);
return b == "array" || b == "object" && typeof a.length == "number"
},
u = function(a) {
return typeof a == "string"
},
na = function(a) {
return ka(a) == "function"
},
oa = function(a) {
a = ka(a);
return a == "object" || a == "array" || a == "function"
},
ra = function(a) {
return a[pa] || (a[pa] = ++qa)
},
pa = "closure_uid_" + Math.floor(Math.random() * 2147483648).toString(36),
qa = 0,
sa = function(a, b, c) {
return a.call.apply(a.bind, arguments)
},
ua = function(a, b, c) {
var d = b || t;
if (arguments.length > 2) {
var f = Array.prototype.slice.call(arguments, 2);
return function() {
var b = Array.prototype.slice.call(arguments);
Array.prototype.unshift.apply(b, f);
return a.apply(d, b)
}
} else
return function() {
return a.apply(d, arguments)
}
},
x = function(a, b, c) {
x = Function.prototype.bind && Function.prototype.bind.toString().indexOf("native code") != -1 ? sa: ua;
return x.apply(q, arguments)
},
va = function(a, b) {
var c = Array.prototype.slice.call(arguments, 1);
return function() {
var b = Array.prototype.slice.call(arguments);
b.unshift.apply(b, c);
return a.apply(this, b)
}
},
y = Date.now || function() {
return + new Date
},
B = function(a, b) {
function c() {}
c.prototype = b.prototype;
a.k = b.prototype;
a.prototype = new c
};
Function.prototype.bind = Function.prototype.bind || function(a, b) {
if (arguments.length > 1) {
var c = Array.prototype.slice.call(arguments, 1);
c.unshift(this, a);
return x.apply(q, c)
} else
return x(this, a)
};
var wa = function(a) {
this.stack = Error().stack || "";
if (a)
this.message = String(a)
};
B(wa, Error);
wa.prototype.name = "CustomError";
var xa = function(a, b) {
for (var c = 1; c < arguments.length; c++)
var d = String(arguments[c]).replace(/\$/g, "$$$$"),
a = a.replace(/\%s/, d);
return a
},
ya = /^[a-zA-Z0-9\-_.!~*'()]*$/,
za = function(a) {
a = String(a);
return ! ya.test(a) ? encodeURIComponent(a) : a
},
Fa = function(a) {
if (!Aa.test(a))
return a;
a.indexOf("&") != -1 && (a = a.replace(Ba, "&amp;"));
a.indexOf("<") != -1 && (a = a.replace(Ca, "&lt;"));
a.indexOf(">") != -1 && (a = a.replace(Da, "&gt;"));
a.indexOf('"') != -1 && (a = a.replace(Ea, "&quot;"));
return a
},
Ba = /&/g,
Ca = /</g,
Da = />/g,
Ea = /\"/g,
Aa = /[&<>\"]/,
Ga = function() {
return Math.floor(Math.random() * 2147483648).toString(36) + Math.abs(Math.floor(Math.random() * 2147483648)^y()).toString(36)
},
Ia = function(a, b) {
for (var c = 0, d = String(a).replace(/^[\s\xa0]+|[\s\xa0]+$/g, "").split("."), f = String(b).replace(/^[\s\xa0]+|[\s\xa0]+$/g, "").split("."), e = Math.max(d.length, f.length), g = 0; c == 0 && g < e; g++) {
var h = d[g] || "",
l = f[g] || "",
k = RegExp("(\\d*)(\\D*)", "g"),
n = RegExp("(\\d*)(\\D*)", "g");
do {
var p = k.exec(h) || ["", "", ""],
K = n.exec(l) || ["", "", ""];
if (p[0].length == 0 && K[0].length == 0)
break;
c = Ha(p[1].length == 0 ? 0: parseInt(p[1], 10), K[1].length == 0 ? 0: parseInt(K[1], 10)) || Ha(p[2].length == 0, K[2].length == 0) || Ha(p[2], K[2])
}
while (c == 0)
}
return c
},
Ha = function(a, b) {
if (a < b)
return - 1;
else if (a > b)
return 1;
return 0
};
var Ja = function(a, b) {
b.unshift(a);
wa.call(this, xa.apply(q, b));
b.shift();
this.a = a
};
B(Ja, wa);
Ja.prototype.name = "AssertionError";
var Ka = function(a, b, c) {
if (!a) {
var d = Array.prototype.slice.call(arguments, 2),
f = "Assertion failed";
if (b) {
f += ": " + b;
var e = d
}
i(new Ja("" + f, e || []))
}
},
La = function(a, b) {
i(new Ja("Failure" + (a ? ": " + a: ""), Array.prototype.slice.call(arguments, 1)))
};
var C = Array.prototype,
Ma = C.indexOf ? function(a, b, c) {
Ka(a.length != q);
return C.indexOf.call(a, b, c)
}: function(a, b, c) {
c = c == q ? 0: c < 0 ? Math.max(0, a.length + c) : c;
if (u(a))
return ! u(b) || b.length != 1 ? -1: a.indexOf(b, c);
for (; c < a.length; c++)
if (c in a && a[c] === b)
return c;
return - 1
},
Na = C.forEach ? function(a, b, c) {
Ka(a.length != q);
C.forEach.call(a, b, c)
}: function(a, b, c) {
for (var d = a.length, f = u(a) ? a.split("") : a, e = 0; e < d; e++)
e in f && b.call(c, f[e], e, a)
},
Oa = function(a, b) {
for (var c = u(a) ? a.split("") : a, d = a.length - 1; d >= 0;--d)
d in c && b.call(j, c[d], d, a)
},
Pa = C.map ? function(a, b, c) {
Ka(a.length != q);
return C.map.call(a, b, c)
}: function(a, b, c) {
for (var d = a.length, f = Array(d), e = u(a) ? a.split("") : a, g = 0; g < d; g++)
g in e && (f[g] = b.call(c, e[g], g, a));
return f
},
Qa = function(a, b) {
var c = Ma(a, b);
c >= 0 && (Ka(a.length != q), C.splice.call(a, c, 1))
},
Ta = function(a) {
return C.concat.apply(C, arguments)
},
Ua = function(a) {
if (la(a))
return Ta(a);
else {
for (var b = [], c = 0, d = a.length; c < d; c++)
b[c] = a[c];
return b
}
},
Va = function(a, b, c) {
Ka(a.length != q);
return arguments.length <= 2 ? C.slice.call(a, b) : C.slice.call(a, b, c)
};
var Wa = "StopIteration" in t ? t.StopIteration: Error("StopIteration"),
Xa = function() {};
Xa.prototype.next = function() {
i(Wa)
};
Xa.prototype.d = function() {
return this
};
var Ya = function(a, b) {
for (var c in a)
b.call(j, a[c], c, a)
},
Za = function(a) {
var b = [],
c = 0,
d;
for (d in a)
b[c++] = a[d];
return b
},
$a = ["constructor", "hasOwnProperty", "isPrototypeOf", "propertyIsEnumerable", "toLocaleString", "toString", "valueOf"],
ab = function(a, b) {
for (var c, d, f = 1; f < arguments.length; f++) {
d = arguments[f];
for (c in d)
a[c] = d[c];
for (var e = 0; e < $a.length; e++)
c = $a[e],
Object.prototype.hasOwnProperty.call(d, c) && (a[c] = d[c])
}
};
var bb = function(a, b) {
this.b = {};
this.a = [];
var c = arguments.length;
if (c > 1) {
c % 2 && i(Error("Uneven number of arguments"));
for (var d = 0; d < c; d += 2)
this.set(arguments[d], arguments[d + 1])
} else if (a) {
if (a instanceof bb)
d = cb(a),
c = db(a);
else {
var c = [],
f = 0;
for (d in a)
c[f++] = d;
d = c;
c = Za(a)
}
for (f = 0; f < d.length; f++)
this.set(d[f], c[f])
}
};
bb.prototype.n = 0;
bb.prototype.c = 0;
var db = function(a) {
eb(a);
for (var b = [], c = 0; c < a.a.length; c++)
b.push(a.b[a.a[c]]);
return b
},
cb = function(a) {
eb(a);
return a.a.concat()
};
bb.prototype.clear = function() {
this.b = {};
this.c = this.n = this.a.length = 0
};
var eb = function(a) {
if (a.n != a.a.length) {
for (var b = 0, c = 0; b < a.a.length;) {
var d = a.a[b];
Object.prototype.hasOwnProperty.call(a.b, d) && (a.a[c++] = d);
b++
}
a.a.length = c
}
if (a.n != a.a.length) {
for (var f = {}, c = b = 0; b < a.a.length;)
d = a.a[b],
Object.prototype.hasOwnProperty.call(f, d) || (a.a[c++] = d, f[d] = 1),
b++;
a.a.length = c
}
};
bb.prototype.get = function(a, b) {
return Object.prototype.hasOwnProperty.call(this.b, a) ? this.b[a] : b
};
bb.prototype.set = function(a, b) {
Object.prototype.hasOwnProperty.call(this.b, a) || (this.n++, this.a.push(a), this.c++);
this.b[a] = b
};
bb.prototype.Yb = function() {
eb(this);
for (var a = {}, b = 0; b < this.a.length; b++) {
var c = this.a[b];
a[c] = this.b[c]
}
return a
};
bb.prototype.d = function(a) {
eb(this);
var b = 0,
c = this.a,
d = this.b,
f = this.c,
e = this,
g = new Xa;
g.next = function() {
for (;;) {
f != e.c && i(Error("The map has changed since the iterator was created"));
b >= c.length && i(Wa);
var g = c[b++];
return a ? g: d[g]
}
};
return g
};
var ib = function(a) {
return hb(a || arguments.callee.caller, [])
},
hb = function(a, b) {
var c = [];
if (Ma(b, a) >= 0)
c.push("[...circular reference...]");
else if (a && b.length < 50) {
c.push(jb(a) + "(");
for (var d = a.arguments, f = 0; f < d.length; f++) {
f > 0 && c.push(", ");
var e;
e = d[f];
switch (typeof e) {
case "object":
e = e ? "object": "null";
break;
case "string":
break;
case "number":
e = String(e);
break;
case "boolean":
e = e ? "true": "false";
break;
case "function":
e = (e = jb(e)) ? e: "[fn]";
break;
default:
e = typeof e
}
e.length > 40 && (e = e.substr(0, 40) + "...");
c.push(e)
}
b.push(a);
c.push(")\n");
try {
c.push(hb(a.caller, b))
} catch(g) {
c.push("[exception trying to get caller]\n")
}
} else
a ? c.push("[...long stack...]") : c.push("[end]");
return c.join("")
},
jb = function(a) {
if (kb[a])
return kb[a];
a = String(a);
if (!kb[a]) {
var b = /function ([^\(]+)/.exec(a);
kb[a] = b ? b[1] : "[Anonymous]"
}
return kb[a]
},
kb = {};
var mb = function(a, b, c, d, f) {
this.u = typeof f == "number" ? f: lb++;
this.h = d || y();
this.c = a;
this.d = b;
this.i = c;
delete this.b;
delete this.a
};
mb.prototype.u = 0;
mb.prototype.b = q;
mb.prototype.a = q;
var lb = 0;
var nb = function(a) {
this.i = a
};
nb.prototype.b = q;
nb.prototype.d = q;
nb.prototype.c = q;
nb.prototype.a = q;
var ob = function(a, b) {
this.name = a;
this.value = b
};
ob.prototype.toString = function() {
return this.name
};
var D = new ob("SEVERE", 1E3),
pb = new ob("WARNING", 900),
qb = new ob("INFO", 800),
rb = new ob("CONFIG", 700),
sb = new ob("FINE", 500),
tb = new ob("FINEST", 300),
ub = function(a) {
if (a.d)
return a.d;
if (a.b)
return ub(a.b);
La("Root logger has no level set.");
return q
};
nb.prototype.log = function(a, b, c) {
if (a.value >= ub(this).value) {
a = this.h(a, b, c);
t.console && t.console.markTimeline && t.console.markTimeline("log:" + a.d);
for (b = this; b;) {
var c = b,
d = a;
if (c.a)
for (var f = 0, e = j; e = c.a[f]; f++)
e(d);
b = b.b
}
}
};
nb.prototype.h = function(a, b, c) {
var d = new mb(a, String(b), this.i);
if (c) {
d.b = c;
var f;
var e = arguments.callee.caller;
try {
var g;
var h = ga("window.location.href");
if (u(c))
g = {
message: c,
name: "Unknown error",
lineNumber: "Not available",
fileName: h,
stack: "Not available"
};
else {
var l,
k,
n = !1;
try {
l = c.lineNumber || c.$b || "Not available"
} catch(p) {
l = "Not available",
n = !0
}
try {
k = c.fileName || c.filename || c.sourceURL || h
} catch(K) {
k = "Not available",
n = !0
}
g = n || !c.lineNumber || !c.fileName || !c.stack ? {
message: c.message,
name: c.name,
lineNumber: l,
fileName: k,
stack: c.stack || "Not available"
}: c
}
f = "Message: " + Fa(g.message) + '\nUrl: <a href="view-source:' + g.fileName + '" target="_new">' + g.fileName + "</a>\nLine: " + g.lineNumber + "\n\nBrowser stack:\n" + Fa(g.stack + "-> ") + "[end]\n\nJS stack traversal:\n" + Fa(ib(e) + "-> ")
} catch(r) {
f = "Exception trying to expose exception! You win, we lose. " + r
}
d.a = f
}
return d
};
var vb = function(a, b) {
a.log(pb, b, j)
};
nb.prototype.info = function(a, b) {
this.log(qb, a, b)
};
var I = function(a) {
H.log(sb, a, j)
},
J = function(a) {
H.log(tb, a, j)
},
wb = {},
xb = q,
yb = function() {
if (!xb)
xb = new nb(""),
wb[""] = xb,
xb.d = rb
},
L = function(a) {
yb();
var b;
if (! (b = wb[a])) {
b = new nb(a);
var c = a.lastIndexOf("."),
d = a.substr(c + 1),
c = L(a.substr(0, c));
if (!c.c)
c.c = {};
c.c[d] = b;
b.b = c;
wb[a] = b
}
return b
};
var zb = function(a) {
a = String(a);
if (/^\s*$/.test(a) ? 0: /^[\],:{}\s\u2028\u2029]*$/.test(a.replace(/\\["\\\/bfnrtu]/g, "@").replace(/"[^"\\\n\r\u2028\u2029\x00-\x08\x10-\x1f\x80-\x9f]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g, "]").replace(/(?:^|:|,)(?:[\s\u2028\u2029]*\[)+/g, "")))
try {
return eval("(" + a + ")")
} catch(b) {}
i(Error("Invalid JSON string: " + a))
},
Ab = function() {},
Cb = function(a) {
var b = [];
Bb(new Ab, a, b);
return b.join("")
},
Bb = function(a, b, c) {
switch (typeof b) {
case "string":
Db(b, c);
break;
case "number":
c.push(isFinite(b) && !isNaN(b) ? b: "null");
break;
case "boolean":
c.push(b);
break;
case "undefined":
c.push("null");
break;
case "object":
if (b == q) {
c.push("null");
break
}
if (la(b)) {
var d = b.length;
c.push("[");
for (var f = "", e = 0; e < d; e++)
c.push(f),
Bb(a, b[e], c),
f = ",";
c.push("]");
break
}
c.push("{");
d = "";
for (f in b)
Object.prototype.hasOwnProperty.call(b, f) && (e = b[f], typeof e != "function" && (c.push(d), Db(f, c), c.push(":"), Bb(a, e, c), d = ","));
c.push("}");
break;
case "function":
break;
default:
i(Error("Unknown type: " + typeof b))
}
},
Eb = {
'"': '\\"',
"\\": "\\\\",
"/": "\\/",
"\u0008": "\\b",
"\u000c": "\\f",
"\n": "\\n",
"\r": "\\r",
"\t": "\\t",
"\u000b": "\\u000b"
},
Fb = /\uffff/.test("\uffff") ? /[\\\"\x00-\x1f\x7f-\uffff]/g: /[\\\"\x00-\x1f\x7f-\xff]/g,
Db = function(a, b) {
b.push('"', a.replace(Fb, function(a) {
if (a in Eb)
return Eb[a];
var b = a.charCodeAt(0),
f = "\\u";
b < 16 ? f += "000": b < 256 ? f += "00": b < 4096 && (f += "0");
return Eb[a] = f + b.toString(16)
}), '"')
};
var Gb = function(a, b) {
this.x = a !== j ? a: 0;
this.y = b !== j ? b: 0
};
Gb.prototype.toString = function() {
return "(" + this.x + ", " + this.y + ")"
};
var Hb = function(a, b, c, d) {
this.top = a;
this.right = b;
this.a = c;
this.left = d
};
Hb.prototype.toString = function() {
return "(" + this.top + "t, " + this.right + "r, " + this.a + "b, " + this.left + "l)"
};
var Ib = function(a, b) {
this.width = a;
this.height = b
};
Ib.prototype.toString = function() {
return "(" + this.width + " x " + this.height + ")"
};
Ib.prototype.ceil = function() {
this.width = Math.ceil(this.width);
this.height = Math.ceil(this.height);
return this
};
Ib.prototype.floor = function() {
this.width = Math.floor(this.width);
this.height = Math.floor(this.height);
return this
};
Ib.prototype.round = function() {
this.width = Math.round(this.width);
this.height = Math.round(this.height);
return this
};
var M = function(a, b, c, d) {
this.left = a;
this.top = b;
this.width = c;
this.height = d
};
M.prototype.toString = function() {
return "(" + this.left + ", " + this.top + " - " + this.width + "w x " + this.height + "h)"
};
var Jb = function() {};
Jb.prototype.u = !1;
Jb.prototype.q = function() {
if (!this.u)
this.u = !0,
this.g()
};
Jb.prototype.g = function() {
this.Zb && Lb.apply(q, this.Zb)
};
var Mb = function(a) {
a && typeof a.q == "function" && a.q()
},
Lb = function(a) {
for (var b = 0, c = arguments.length; b < c;++b) {
var d = arguments[b];
ma(d) ? Lb.apply(q, d) : Mb(d)
}
};
var Nb,
Ob,
Pb,
Qb,
Rb = function() {
return t.navigator ? t.navigator.userAgent: q
};
Qb = Pb = Ob = Nb = !1;
var Sb;
if (Sb = Rb()) {
var Tb = t.navigator;
Nb = Sb.indexOf("Opera") == 0;
Ob = !Nb && Sb.indexOf("MSIE") != -1;
Pb = !Nb && Sb.indexOf("WebKit") != -1;
Qb = !Nb && !Pb && Tb.product == "Gecko"
}
var Ub = Nb,
O = Ob,
Vb = Qb,
Wb = Pb,
Xb = t.navigator,
Yb = (Xb && Xb.platform || "").indexOf("Mac") != -1,
Zb;
a: {
var $b = "",
ac;
if (Ub && t.opera)
var bc = t.opera.version,
$b = typeof bc == "function" ? bc() : bc;
else if (Vb ? ac = /rv\:([^\);]+)(\)|;)/: O ? ac = /MSIE\s+([^\);]+)(\)|;)/: Wb && (ac = /WebKit\/(\S+)/), ac)
var cc = ac.exec(Rb()),
$b = cc ? cc[1] : "";
if (O) {
var dc,
ec = t.document;
dc = ec ? ec.documentMode: j;
if (dc > parseFloat($b)) {
Zb = String(dc);
break a
}
}
Zb = $b
}
var fc = Zb,
gc = {},
hc = function(a) {
gc[a] || (gc[a] = Ia(fc, a) >= 0)
},
ic = {},
jc = function() {
return ic[9] || (ic[9] = O && document.documentMode && document.documentMode >= 9)
};
var kc,
lc = !O || jc(); ! Vb && !O || O && jc() || Vb && hc("1.9.1");
O && hc("9");
var mc = function(a, b) {
var c;
c = (c = a.className) && typeof c.split == "function" ? c.split(/\s+/) : [];
var d = Va(arguments, 1),
f;
f = c;
for (var e = 0, g = 0; g < d.length; g++)
Ma(f, d[g]) >= 0 || (f.push(d[g]), e++);
f = e == d.length;
a.className = c.join(" ");
return f
};
var oc = function() {
return kc || (kc = new nc)
},
qc = function(a, b) {
Ya(b, function(b, d) {
d == "style" ? a.style.cssText = b: d == "class" ? a.className = b: d == "for" ? a.htmlFor = b: d in pc ? a.setAttribute(pc[d], b) : a[d] = b
})
},
pc = {
cellpadding: "cellPadding",
cellspacing: "cellSpacing",
colspan: "colSpan",
rowspan: "rowSpan",
valign: "vAlign",
height: "height",
width: "width",
usemap: "useMap",
frameborder: "frameBorder",
maxlength: "maxLength",
type: "type"
},
sc = function(a, b, c) {
var d = arguments,
f = document,
e = d[0],
g = d[1];
if (!lc && g && (g.name || g.type)) {
e = ["<", e];
g.name && e.push(' name="', Fa(g.name), '"');
if (g.type) {
e.push(' type="', Fa(g.type), '"');
var h = {};
ab(h, g);
g = h;
delete g.type
}
e.push(">");
e = e.join("")
}
e = f.createElement(e);
if (g)
u(g) ? e.className = g: la(g) ? mc.apply(q, [e].concat(g)) : qc(e, g);
d.length > 2 && rc(f, e, d);
return e
},
rc = function(a, b, c) {
function d(c) {
c && b.appendChild(u(c) ? a.createTextNode(c) : c)
}
for (var f = 2; f < c.length; f++) {
var e = c[f];
ma(e) && !(oa(e) && e.nodeType > 0) ? Na(tc(e) ? Ua(e) : e, d) : d(e)
}
},
uc = function(a) {
a && a.parentNode && a.parentNode.removeChild(a)
},
tc = function(a) {
if (a && typeof a.length == "number")
if (oa(a))
return typeof a.item == "function" || typeof a.item == "string";
else if (na(a))
return typeof a.item == "function";
return ! 1
},
nc = function(a) {
this.a = a || t.document || document
};
nc.prototype.B = function(a) {
return u(a) ? this.a.getElementById(a) : a
};
var vc = new Function("a", "return a"),
wc = function(a, b) {
try {
return vc(a[b]),
!0
} catch(c) {}
return ! 1
};
var xc; ! O || jc();
O && hc("8");
var yc = function(a, b) {
this.type = a;
this.a = this.target = b
};
B(yc, Jb);
yc.prototype.g = function() {
delete this.type;
delete this.target;
delete this.a
};
yc.prototype.b = !1;
yc.prototype.c = !0;
yc.prototype.sa = function() {
this.b = !0
};
var zc = function(a) {
a.sa()
};
var Ac = {
ic: "click",
nc: "dblclick",
Hc: "mousedown",
Lc: "mouseup",
Kc: "mouseover",
Jc: "mouseout",
Ic: "mousemove",
Vc: "selectstart",
Cc: "keypress",
Bc: "keydown",
Dc: "keyup",
gc: "blur",
vc: "focus",
oc: "deactivate",
wc: O ? "focusin": "DOMFocusIn",
xc: O ? "focusout": "DOMFocusOut",
hc: "change",
Uc: "select",
Wc: "submit",
Ac: "input",
Qc: "propertychange",
sc: "dragstart",
pc: "dragenter",
rc: "dragover",
qc: "dragleave",
tc: "drop",
$c: "touchstart",
Zc: "touchmove",
Yc: "touchend",
Xc: "touchcancel",
kc: "contextmenu",
uc: "error",
zc: "help",
Ec: "load",
Fc: "losecapture",
Rc: "readystatechange",
Sc: "resize",
Tc: "scroll",
ad: "unload",
yc: "hashchange",
Mc: "pagehide",
Nc: "pageshow",
Pc: "popstate",
lc: "copy",
Oc: "paste",
mc: "cut",
dc: "beforecopy",
ec: "beforecut",
fc: "beforepaste",
Gc: "message",
jc: "connect"
};
var Bc = function(a, b) {
a && this.P(a, b)
};
B(Bc, yc);
s = Bc.prototype;
s.target = q;
s.xa = q;
s.ub = 0;
s.vb = 0;
s.clientX = 0;
s.clientY = 0;
s.wb = 0;
s.xb = 0;
s.pb = 0;
s.sb = 0;
s.qb = 0;
s.rb = !1;
s.ob = !1;
s.yb = !1;
s.tb = !1;
s.zb = !1;
s.G = q;
s.P = function(a, b) {
var c = this.type = a.type;
yc.call(this, c);
this.target = a.target || a.srcElement;
this.a = b;
var d = a.relatedTarget;
if (d)
Vb && (wc(d, "nodeName") || (d = q));
else if (c == "mouseover")
d = a.fromElement;
else if (c == "mouseout")
d = a.toElement;
this.xa = d;
this.ub = a.offsetX !== j ? a.offsetX: a.layerX;
this.vb = a.offsetY !== j ? a.offsetY: a.layerY;
this.clientX = a.clientX !== j ? a.clientX: a.pageX;
this.clientY = a.clientY !== j ? a.clientY: a.pageY;
this.wb = a.screenX || 0;
this.xb = a.screenY || 0;
this.pb = a.button;
this.sb = a.keyCode || 0;
this.qb = a.charCode || (c == "keypress" ? a.keyCode: 0);
this.rb = a.ctrlKey;
this.ob = a.altKey;
this.yb = a.shiftKey;
this.tb = a.metaKey;
this.zb = Yb ? a.metaKey: a.ctrlKey;
this.d = a.state;
this.G = a;
delete this.c;
delete this.b
};
s.sa = function() {
Bc.k.sa.call(this);
this.G.stopPropagation ? this.G.stopPropagation() : this.G.cancelBubble = !0
};
s.g = function() {
Bc.k.g.call(this);
this.xa = this.a = this.target = this.G = q
};
var P = function(a, b) {
this.d = b;
this.b = [];
a > this.d && i(Error("[goog.structs.SimplePool] Initial cannot be greater than max"));
for (var c = 0; c < a; c++)
this.b.push(this.a ? this.a() : {})
};
B(P, Jb);
P.prototype.a = q;
P.prototype.c = q;
var Cc = function(a) {
return a.b.length ? a.b.pop() : a.a ? a.a() : {}
},
Ec = function(a, b) {
a.b.length < a.d ? a.b.push(b) : Dc(a, b)
},
Dc = function(a, b) {
if (a.c)
a.c(b);
else if (oa(b))
if (na(b.q))
b.q();
else
for (var c in b)
delete b[c]
};
P.prototype.g = function() {
P.k.g.call(this);
for (var a = this.b; a.length;)
Dc(this, a.pop());
delete this.b
};
var Fc,
Gc = (Fc = "ScriptEngine" in t && t.ScriptEngine() == "JScript") ? t.ScriptEngineMajorVersion() + "." + t.ScriptEngineMinorVersion() + "." + t.ScriptEngineBuildVersion() : "0";
var Hc = function() {},
Ic = 0;
s = Hc.prototype;
s.key = 0;
s.N = !1;
s.Ma = !1;
s.P = function(a, b, c, d, f, e) {
na(a) ? this.a = !0: a && a.handleEvent && na(a.handleEvent) ? this.a = !1: i(Error("Invalid listener argument"));
this.U = a;
this.b = b;
this.src = c;
this.type = d;
this.capture = !!f;
this.ia = e;
this.Ma = !1;
this.key = ++Ic;
this.N = !1
};
s.handleEvent = function(a) {
return this.a ? this.U.call(this.ia || this.src, a) : this.U.handleEvent.call(this.U, a)
};
var Jc,
Kc,
Lc,
Mc,
Nc,
Oc,
Pc,
Qc,
Rc,
Sc,
Tc; (function() {
function a() {
return {
n: 0,
M: 0
}
}
function b() {
return []
}
function c() {
var a = function(b) {
return g.call(a.src, a.key, b)
};
return a
}
function d() {
return new Hc
}
function f() {
return new Bc
}
var e = Fc && !(Ia(Gc, "5.7") >= 0),
g;
Oc = function(a) {
g = a
};
if (e) {
Jc = function() {
return Cc(h)
};
Kc = function(a) {
Ec(h, a)
};
Lc = function() {
return Cc(l)
};
Mc = function(a) {
Ec(l, a)
};
Nc = function() {
return Cc(k)
};
Pc = function() {
Ec(k, c())
};
Qc = function() {
return Cc(n)
};
Rc = function(a) {
Ec(n, a)
};
Sc = function() {
return Cc(p)
};
Tc = function(a) {
Ec(p, a)
};
var h = new P(0, 600);
h.a = a;
var l = new P(0, 600);
l.a = b;
var k = new P(0, 600);
k.a = c;
var n = new P(0, 600);
n.a = d;
var p = new P(0, 600);
p.a = f
} else
Jc = a,
Kc = ha,
Lc = b,
Mc = ha,
Nc = c,
Pc = ha,
Qc = d,
Rc = ha,
Sc = f,
Tc = ha
})();
var Uc = {},
Q = {},
Vc = {},
Wc = {},
Xc = function(a, b, c, d, f) {
if (b)
if (la(b)) {
for (var e = 0; e < b.length; e++)
Xc(a, b[e], c, d, f);
return q
} else {
var d = !!d,
g = Q;
b in g || (g[b] = Jc());
g = g[b];
d in g || (g[d] = Jc(), g.n++);
var g = g[d],
h = ra(a),
l;
g.M++;
if (g[h]) {
l = g[h];
for (e = 0; e < l.length; e++)
if (g = l[e], g.U == c && g.ia == f) {
if (g.N)
break;
return l[e].key
}
} else
l = g[h] = Lc(),
g.n++;
e = Nc();
e.src = a;
g = Qc();
g.P(c, e, a, b, d, f);
c = g.key;
e.key = c;
l.push(g);
Uc[c] = g;
Vc[h] || (Vc[h] = Lc());
Vc[h].push(g);
a.addEventListener ? (a == t || !a.Ua) && a.addEventListener(b, e, d) : a.attachEvent(b in Wc ? Wc[b] : Wc[b] = "on" + b, e);
return c
} else
i(Error("Invalid event type"))
},
Yc = function(a, b, c, d, f) {
if (la(b))
for (var e = 0; e < b.length; e++)
Yc(a, b[e], c, d, f);
else {
d = !!d;
a: {
e = Q;
if (b in e && (e = e[b], d in e && (e = e[d], a = ra(a), e[a]))) {
a = e[a];
break a
}
a = q
}
if (a)
for (e = 0; e < a.length; e++)
if (a[e].U == c && a[e].capture == d && a[e].ia == f) {
Zc(a[e].key);
break
}
}
},
Zc = function(a) {
if (Uc[a]) {
var b = Uc[a];
if (!b.N) {
var c = b.src,
d = b.type,
f = b.b,
e = b.capture;
c.removeEventListener ? (c == t || !c.Ua) && c.removeEventListener(d, f, e) : c.detachEvent && c.detachEvent(d in Wc ? Wc[d] : Wc[d] = "on" + d, f);
c = ra(c);
f = Q[d][e][c];
if (Vc[c]) {
var g = Vc[c];
Qa(g, b);
g.length == 0 && delete Vc[c]
}
b.N = !0;
f.Wa = !0;
$c(d, e, c, f);
delete Uc[a]
}
}
},
$c = function(a, b, c, d) {
if (!d.ca && d.Wa) {
for (var f = 0, e = 0; f < d.length; f++)
if (d[f].N) {
var g = d[f].b;
g.src = q;
Pc(g);
Rc(d[f])
} else
f != e && (d[e] = d[f]),
e++;
d.length = e;
d.Wa = !1;
e == 0 && (Mc(d), delete Q[a][b][c], Q[a][b].n--, Q[a][b].n == 0 && (Kc(Q[a][b]), delete Q[a][b], Q[a].n--), Q[a].n == 0 && (Kc(Q[a]), delete Q[a]))
}
},
ad = function(a, b, c) {
var d = 0,
f = b == q,
e = c == q,
c = !!c;
if (a == q)
Ya(Vc, function(a) {
for (var g = a.length - 1; g >= 0; g--) {
var h = a[g];
if ((f || b == h.type) && (e || c == h.capture))
Zc(h.key),
d++
}
});
else if (a = ra(a), Vc[a])
for (var a = Vc[a], g = a.length - 1; g >= 0; g--) {
var h = a[g];
if ((f || b == h.type) && (e || c == h.capture))
Zc(h.key),
d++
}
return d
},
cd = function(a, b, c, d, f) {
var e = 1,
b = ra(b);
if (a[b]) {
a.M--;
a = a[b];
a.ca ? a.ca++:a.ca = 1;
try {
for (var g = a.length, h = 0; h < g; h++) {
var l = a[h];
l && !l.N && (e & =bd(l, f) !== !1)
}
} finally {
a.ca--,
$c(c, d, b, a)
}
}
return Boolean(e)
},
bd = function(a, b) {
var c = a.handleEvent(b);
a.Ma && Zc(a.key);
return c
};
Oc(function(a, b) {
if (!Uc[a])
return ! 0;
var c = Uc[a],
d = c.type,
f = Q;
if (! (d in f))
return ! 0;
var f = f[d],
e,
g;
xc === j && (xc = O && !t.addEventListener);
if (xc) {
e = b || ga("window.event");
var h = !0 in f,
l = !1 in f;
if (h) {
if (e.keyCode < 0 || e.returnValue != j)
return ! 0;
a: {
var k = !1;
if (e.keyCode == 0)
try {
e.keyCode = -1;
break a
} catch(n) {
k = !0
}
if (k || e.returnValue == j)
e.returnValue = !0
}
}
k = Sc();
k.P(e, this);
e = !0;
try {
if (h) {
for (var p = Lc(), K = k.a; K; K = K.parentNode)
p.push(K);
g = f[!0];
g.M = g.n;
for (var r = p.length - 1; ! k.b && r >= 0 && g.M; r--)
k.a = p[r],
e & =cd(g, p[r], d, !0, k);
if (l) {
g = f[!1];
g.M = g.n;
for (r = 0; ! k.b && r < p.length && g.M; r++)
k.a = p[r],
e & =cd(g, p[r], d, !1, k)
}
} else
e = bd(c, k)
} finally {
if (p)
p.length = 0,
Mc(p);
k.q();
Tc(k)
}
return e
}
d = new Bc(b, this);
try {
e = bd(c, d)
} finally {
d.q()
}
return e
});
var dd = function() {
this.c = {}
};
B(dd, Jb);
dd.prototype.d = L("goog.messaging.AbstractChannel");
dd.prototype.w = function(a) {
a && a()
};
dd.prototype.r = function() {
return ! 0
};
dd.prototype.g = function() {
dd.k.g.call(this);
Mb(this.d);
delete this.d;
delete this.c;
delete this.i
};
var ed = RegExp("^(?:([^:/?#.]+):)?(?://(?:([^/?#]*)@)?([\\w\\d\\-\\u0100-\\uffff.%]*)(?::([0-9]+))?)?([^?#]+)?(?:\\?([^#]*))?(?:#(.*))?$"),
fd = function(a) {
var b = a.match(ed),
a = b[1],
c = b[2],
d = b[3],
b = b[4],
f = [];
a && f.push(a, ":");
d && (f.push("//"), c && f.push(c, "@"), f.push(d), b && f.push(":", b));
return f.join("")
};
var gd = {
1: "NativeMessagingTransport",
2: "FrameElementMethodTransport",
3: "IframeRelayTransport",
4: "IframePollingTransport",
5: "FlashTransport",
6: "NixTransport"
},
hd = ["pu", "lru", "pru", "lpu", "ppu"],
id = {},
kd = function() {
for (var a = 10, b = jd, c = b.length, d = ""; a-->0;)
d += b.charAt(Math.floor(Math.random() * c));
return d
},
jd = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789",
H = L("goog.net.xpc");
var ld = function(a) {
this.b = a || oc()
};
B(ld, Jb);
ld.prototype.L = 0;
var R = function(a) {
return a.b.a.parentWindow || a.b.a.defaultView
};
var md = function(a, b) {
this.b = b || oc();
this.e = a;
this.c = [];
this.i = x(this.Kb, this)
};
B(md, ld);
s = md.prototype;
s.L = 2;
s.la = !1;
s.Pb = 0;
s.w = function() {
nd(this.e) == 0 ? (this.a = this.e.K, this.a.XPC_toOuter = x(this.La, this)) : this.Ka()
};
s.Ka = function() {
var a = !0;
try {
if (!this.a)
this.a = R(this).frameElement;
if (this.a && this.a.XPC_toOuter)
this.d = this.a.XPC_toOuter,
this.a.XPC_toOuter.XPC_toInner = x(this.La, this),
a = !1,
this.send("tp", "SETUP_ACK"),
od(this.e)
} catch(b) {
H.log(D, "exception caught while attempting setup: " + b, j)
}
if (a) {
if (!this.h)
this.h = x(this.Ka, this);
R(this).setTimeout(this.h, 100)
}
};
s.ha = function(a) {
nd(this.e) == 0 && !this.e.r() && a == "SETUP_ACK" ? (this.d = this.a.XPC_toOuter.XPC_toInner, od(this.e)) : i(Error("Got unexpected transport message."))
};
s.La = function(a, b) {
if (!this.la && this.c.length == 0)
pd(this.e, a, b);
else if (this.c.push({
Ob: a,
ma: b
}), this.c.length == 1)
this.Pb = R(this).setTimeout(this.i, 1)
};
s.Kb = function() {
for (; this.c.length;) {
var a = this.c.shift();
pd(this.e, a.Ob, a.ma)
}
};
s.send = function(a, b) {
this.la = !0;
this.d(a, b);
this.la = !1
};
s.g = function() {
md.k.g.call(this);
this.a = this.d = q
};
var S = function(a, b) {
this.b = b || oc();
this.e = a;
this.R = this.e.a.ppu;
this.Eb = this.e.a.lpu;
this.F = []
},
qd,
rd;
B(S, ld);
S.prototype.L = 4;
S.prototype.D = 0;
S.prototype.Q = !1;
S.prototype.A = !1;
var sd = function(a) {
return "googlexpc_" + a.e.name + "_msg"
},
td = function(a) {
return "googlexpc_" + a.e.name + "_ack"
};
S.prototype.w = function() {
I("transport connect called");
if (!this.A) {
I("initializing...");
var a = sd(this);
this.d = ud(this, a);
this.T = R(this).frames[a];
a = td(this);
this.a = ud(this, a);
this.I = R(this).frames[a];
this.A = !0
}
if (!vd(this, sd(this)) || !vd(this, td(this))) {
J("foreign frames not (yet) present");
if (nd(this.e) == 1 && !this.Fb)
J("innerPeerReconnect called"),
this.e.name = kd(),
J("switching channels: " + this.e.name),
wd(this),
this.A = !1,
this.Fb = ud(this, "googlexpc_reconnect_" + this.e.name);
else if (nd(this.e) == 0) {
J("outerPeerReconnect called");
for (var a = this.e.o.frames, b = a.length, c = 0; c < b; c++) {
var d;
try {
if (a[c] && a[c].name)
d = a[c].name
} catch(f) {}
if (d) {
var e = d.split("_");
if (e.length == 3 && e[0] == "googlexpc" && e[1] == "reconnect") {
this.e.name = e[2];
wd(this);
this.A = !1;
break
}
}
}
}
R(this).setTimeout(x(this.w, this), 100)
} else
I("foreign frames present"),
this.Ia = new xd(this, this.e.o.frames[sd(this)], x(this.Hb, this)),
this.Ha = new xd(this, this.e.o.frames[td(this)], x(this.Gb, this)),
this.Ga()
};
var ud = function(a, b) {
J("constructing sender frame: " + b);
var c = document.createElement("iframe"),
d = c.style;
d.position = "absolute";
d.top = "-10px";
d.left = "10px";
d.width = "1px";
d.height = "1px";
c.id = c.name = b;
c.src = a.R + "#INITIAL";
R(a).document.body.appendChild(c);
return c
},
wd = function(a) {
J("deconstructSenderFrames called");
if (a.d)
a.d.parentNode.removeChild(a.d),
a.d = q,
a.T = q;
if (a.a)
a.a.parentNode.removeChild(a.a),
a.a = q,
a.I = q
},
vd = function(a, b) {
J("checking for receive frame: " + b);
try {
var c = a.e.o.frames[b];
if (!c || c.location.href.indexOf(a.Eb) != 0)
return ! 1
} catch(d) {
return ! 1
}
return ! 0
};
S.prototype.Ga = function() {
var a = this.e.o.frames;
if (!a[td(this)] || !a[sd(this)]) {
if (!this.Xa)
this.Xa = x(this.Ga, this);
R(this).setTimeout(this.Xa, 100);
I("local frames not (yet) present")
} else
this.Va = new yd(this.R, this.T),
this.i = new yd(this.R, this.I),
I("local frames ready"),
R(this).setTimeout(x(function() {
this.Va.send("SETUP");
this.Q = this.ac = !0;
I("SETUP sent")
}, this), 100)
};
var zd = function(a) {
if (a.na && a.Ta) {
if (od(a.e), a.c) {
I("delivering queued messages (" + a.c.length + ")");
for (var b = 0, c; b < a.c.length; b++)
c = a.c[b],
pd(a.e, c.Qb, c.ma);
delete a.c
}
} else
J("checking if connected: ack sent:" + a.na + ", ack rcvd: " + a.Ta)
};
S.prototype.Hb = function(a) {
J("msg received: " + a);
if (a == "SETUP") {
if (this.i)
this.i.send("SETUP_ACK"),
J("SETUP_ACK sent"),
this.na = !0,
zd(this)
} else if (this.e.r() || this.na) {
var b = a.indexOf("|"),
c = a.substring(0, b),
a = a.substring(b + 1),
b = c.indexOf(",");
if (b == -1) {
var d;
this.i.send("ACK:" + c);
Ad(this, a)
} else {
d = c.substring(0, b);
this.i.send("ACK:" + d);
c = c.substring(b + 1).split("/");
b = parseInt(c[0], 10);
c = parseInt(c[1], 10);
if (b == 1)
this.oa = [];
this.oa.push(a);
b == c && (Ad(this, this.oa.join("")), delete this.oa)
}
} else
vb(H, "received msg, but channel is not connected")
};
S.prototype.Gb = function(a) {
J("ack received: " + a);
a == "SETUP_ACK" ? (this.Q = !1, this.Ta = !0, zd(this)) : this.e.r() ? this.Q ? parseInt(a.split(":")[1], 10) == this.D ? (this.Q = !1, Bd(this)) : vb(H, "got ack with wrong sequence") : vb(H, "got unexpected ack") : vb(H, "received ack, but channel not connected")
};
var Bd = function(a) {
if (!a.Q && a.F.length) {
var b = a.F.shift();++a.D;
a.Va.send(a.D + b);
J("msg sent: " + a.D + b);
a.Q = !0
}
},
Ad = function(a, b) {
var c = b.indexOf(":"),
d = b.substr(0, c),
c = b.substring(c + 1);
a.e.r() ? pd(a.e, d, c) : ((a.c || (a.c = [])).push({
Qb: d,
ma: c
}), J("queued delivery"))
};
S.prototype.h = 3800;
S.prototype.send = function(a, b) {
var c = a + ":" + b;
if (!O || b.length <= this.h)
this.F.push("|" + c);
else
for (var d = b.length, f = Math.ceil(d / this.h), e = 0, g = 1; e < d;)
this.F.push("," + g + "/" + f + "|" + c.substr(e, this.h)),
g++,
e += this.h;
Bd(this)
};
S.prototype.g = function() {
S.k.g.call(this);
var a = Cd;
Qa(a, this.Ia);
Qa(a, this.Ha);
this.Ia = this.Ha = q;
uc(this.d);
uc(this.a);
this.T = this.I = this.d = this.a = q
};
var Cd = [],
Dd = x(function() {
var a = !1;
try {
for (var b = 0, c = Cd.length; b < c; b++) {
var d;
if (! (d = a)) {
var f = Cd[b],
e = f.b.location.href;
if (e != f.a) {
f.a = e;
var g = e.split("#")[1];
g && (g = g.substr(1), f.c(decodeURIComponent(g)));
d = !0
} else
d = !1
}
a = d
}
} catch(h) {
if (H.info("receive_() failed: " + h), b = Cd[b].d.e, H.info("Transport Error"), b.close(), !Cd.length)
return
}
b = y();
a && (qd = b);
rd = window.setTimeout(Dd, b - qd < 1E3 ? 10: 100)
}, S),
Ed = function() {
I("starting receive-timer");
qd = y();
rd && window.clearTimeout(rd);
rd = window.setTimeout(Dd, 10)
},
yd = function(a, b) {
this.c = a;
this.b = b;
this.a = 0
};
yd.prototype.send = function(a) {
this.a = ++this.a % 2;
a = this.c + "#" + this.a + encodeURIComponent(a);
try {
Wb ? this.b.location.href = a: this.b.location.replace(a)
} catch(b) {
H.log(D, "sending failed", b)
}
Ed()
};
var xd = function(a, b, c) {
this.d = a;
this.b = b;
this.c = c;
this.a = this.b.location.href.split("#")[0] + "#INITIAL";
Cd.push(this);
Ed()
};
var Gd = function(a, b) {
this.b = b || oc();
this.e = a;
this.c = this.e.a.pru;
this.a = this.e.a.ifrid;
Wb && Fd()
};
B(Gd, ld);
if (Wb)
var Hd = [],
Id = 0,
Fd = function() {
Id || (Id = window.setTimeout(function() {
Jd()
}, 1E3))
},
Jd = function(a) {
for (var b = y(), a = a || 3E3; Hd.length && b - Hd[0].timestamp >= a;) {
var c = Hd.shift().Ib;
uc(c);
J("iframe removed")
}
Id = window.setTimeout(Kd, 1E3)
},
Kd = function() {
Jd()
};
var Ld = {};
Gd.prototype.L = 3;
Gd.prototype.w = function() {
R(this).xpcRelay || (R(this).xpcRelay = Md);
this.send("tp", "SETUP")
};
var Md = function(a, b) {
var c = b.indexOf(":"),
d = b.substr(0, c),
f = b.substr(c + 1);
if (!O || (c = d.indexOf("|")) == -1)
var e = d;
else {
var e = d.substr(0, c),
d = d.substr(c + 1),
c = d.indexOf("+"),
g = d.substr(0, c),
c = parseInt(d.substr(c + 1), 10),
h = Ld[g];
h || (h = Ld[g] = {
ib: [],
jb: 0,
hb: 0
});
if (d.indexOf("++") != -1)
h.hb = c + 1;
h.ib[c] = f;
h.jb++;
if (h.jb != h.hb)
return;
f = h.ib.join("");
delete Ld[g]
}
pd(id[a], e, decodeURIComponent(f))
};
Gd.prototype.ha = function(a) {
a == "SETUP" ? (this.send("tp", "SETUP_ACK"), od(this.e)) : a == "SETUP_ACK" && od(this.e)
};
Gd.prototype.send = function(a, b) {
var c = encodeURIComponent(b),
d = c.length;
if (O && d > 1800)
for (var f = Ga(), e = 0, g = 0; e < d; g++) {
var h = c.substr(e, 1800);
e += 1800;
Nd(this, a, h, f + (e >= d ? "++": "+") + g)
} else
Nd(this, a, c)
};
var Nd = function(a, b, c, d) {
if (O) {
var f = R(a).document.createElement("div");
f.innerHTML = '<iframe onload="this.xpcOnload()"></iframe>';
f = f.childNodes[0];
f.xpcOnload = Od
} else
f = R(a).document.createElement("iframe"),
Wb ? Hd.push({
timestamp: y(),
Ib: f
}) : Xc(f, "load", Od);
var e = f.style;
e.visibility = "hidden";
e.width = f.style.height = "0px";
e.position = "absolute";
e = a.c;
e += "#" + a.e.name;
a.a && (e += "," + a.a);
e += "|" + b;
d && (e += "|" + d);
e += ":" + c;
f.src = e;
R(a).document.body.appendChild(f);
J("msg sent: " + e)
},
Od = function() {
J("iframe-load");
uc(this);
this.a = q
};
Gd.prototype.g = function() {
Gd.k.g.call(this);
Wb && Jd(0)
};
var Pd = function(a, b, c) {
this.b = c || oc();
this.e = a;
this.Sa = b || "*"
};
B(Pd, ld);
Pd.prototype.a = !1;
Pd.prototype.L = 1;
var Qd = {},
Rd = function(a) {
var b = a.G.data,
c = b.indexOf("|"),
d = b.indexOf(":");
if (c == -1 || d == -1)
return ! 1;
var f = b.substring(0, c),
c = b.substring(c + 1, d),
b = b.substring(d + 1);
I("messageReceived: channel=" + f + ", service=" + c + ", payload=" + b);
if (d = id[f])
return pd(d, c, b, a.G.origin),
!0;
for (var e in id)
if (a = id[e], nd(a) == 1 && !a.r() && c == "tp" && b == "SETUP")
return I("changing channel name to " + f),
a.name = f,
delete id[e],
id[f] = a,
pd(a, c, b),
!0;
H.info('channel name mismatch; message ignored"');
return ! 1
};
s = Pd.prototype;
s.ha = function(a) {
switch (a) {
case "SETUP":
this.send("tp", "SETUP_ACK");
break;
case "SETUP_ACK":
od(this.e)
}
};
s.w = function() {
var a = R(this),
b = ra(a),
c = Qd[b];
typeof c == "number" || (c = 0);
c == 0 && Xc(a.postMessage ? a: a.document, "message", Rd, !1, Pd);
Qd[b] = c + 1;
this.a = !0;
this.Oa()
};
s.Oa = function() { ! this.e.r() && !this.u && (this.send("tp", "SETUP"), R(this).setTimeout(x(this.Oa, this), 100))
};
s.send = function(a, b) {
var c = this.e.o;
if (c) {
var d = c.postMessage ? c: c.document;
this.send = function(a, b) {
I("send(): payload=" + b + " to hostname=" + this.Sa);
d.postMessage(this.e.name + "|" + a + ":" + b, this.Sa)
};
this.send(a, b)
} else
I("send(): window not ready")
};
s.g = function() {
Pd.k.g.call(this);
if (this.a) {
var a = R(this),
b = ra(a),
c = Qd[b];
Qd[b] = c - 1;
c == 1 && Yc(a.postMessage ? a: a.document, "message", Rd, !1, Pd)
}
delete this.send
};
var fe = function(a, b) {
this.b = b || oc();
this.e = a;
this.a = a.at || "";
this.c = a.rat || "";
var c = R(this);
if (!c.nix_setup_complete)
try {
c.execScript("Class GCXPC____NIXVBS_wrapper\n Private m_Transport\nPrivate m_Auth\nPublic Sub SetTransport(transport)\nIf isEmpty(m_Transport) Then\nSet m_Transport = transport\nEnd If\nEnd Sub\nPublic Sub SetAuth(auth)\nIf isEmpty(m_Auth) Then\nm_Auth = auth\nEnd If\nEnd Sub\nPublic Function GetAuthToken()\n GetAuthToken = m_Auth\nEnd Function\nPublic Sub SendMessage(service, payload)\n Call m_Transport.GCXPC____NIXJS_handle_message(service, payload)\nEnd Sub\nPublic Sub CreateChannel(channel)\n Call m_Transport.GCXPC____NIXJS_create_channel(channel)\nEnd Sub\nPublic Sub GCXPC____NIXVBS_container()\n End Sub\nEnd Class\n Function GCXPC____NIXVBS_get_wrapper(transport, auth)\nDim wrap\nSet wrap = New GCXPC____NIXVBS_wrapper\nwrap.SetTransport transport\nwrap.SetAuth auth\nSet GCXPC____NIXVBS_get_wrapper = wrap\nEnd Function", "vbscript"),
c.nix_setup_complete = !0
} catch(d) {
H.log(D, "exception caught while attempting global setup: " + d, j)
}
this.GCXPC____NIXJS_handle_message = this.Bb;
this.GCXPC____NIXJS_create_channel = this.Ab
};
B(fe, ld);
s = fe.prototype;
s.L = 6;
s.O = !1;
s.C = q;
s.w = function() {
nd(this.e) == 0 ? this.Pa() : this.Ja()
};
s.Pa = function() {
if (!this.O) {
var a = this.e.K;
try {
a.contentWindow.opener = R(this).GCXPC____NIXVBS_get_wrapper(this, this.a),
this.O = !0
} catch(b) {
H.log(D, "exception caught while attempting setup: " + b, j)
}
this.O || R(this).setTimeout(x(this.Pa, this), 100)
}
};
s.Ja = function() {
if (!this.O) {
try {
var a = R(this).opener;
if (a && "GCXPC____NIXVBS_container" in a) {
this.C = a;
if (this.C.GetAuthToken() != this.c) {
H.log(D, "Invalid auth token from other party", j);
return
}
this.C.CreateChannel(R(this).GCXPC____NIXVBS_get_wrapper(this, this.a));
this.O = !0;
od(this.e)
}
} catch(b) {
H.log(D, "exception caught while attempting setup: " + b, j);
return
}
this.O || R(this).setTimeout(x(this.Ja, this), 100)
}
};
s.Ab = function(a) { (typeof a != "unknown" || !("GCXPC____NIXVBS_container" in a)) && H.log(D, "Invalid NIX channel given to createChannel_", j);
this.C = a;
this.C.GetAuthToken() != this.c ? H.log(D, "Invalid auth token from other party", j) : od(this.e)
};
s.Bb = function(a, b) {
R(this).setTimeout(x(function() {
pd(this.e, a, b)
}, this), 1)
};
s.send = function(a, b) {
typeof this.C !== "unknown" && H.log(D, "NIX channel not connected", j);
this.C.SendMessage(a, b)
};
s.g = function() {
fe.k.g.call(this);
this.C = q
};
var he = function(a, b) {
this.c = {};
for (var c = 0, d; d = hd[c]; c++)
d in a && !/^https?:\/\//.test(a[d]) && i(Error("URI " + a[d] + " is invalid for field " + d));
this.a = a;
this.name = this.a.cn || kd();
this.b = b || oc();
a.lpu = a.lpu || fd((this.b.a.parentWindow || this.b.a.defaultView).location.href) + "/robots.txt";
a.ppu = a.ppu || fd(a.pu || "") + "/robots.txt";
id[this.name] = this;
Xc(window, "unload", ge);
H.info("CrossPageChannel created: " + this.name)
};
B(he, dd);
var ie = /^%*tp$/,
je = /^%+tp$/;
s = he.prototype;
s.m = q;
s.pa = 1;
s.r = function() {
return this.pa == 2
};
s.o = q;
s.K = q;
s.Db = !1;
s.Cb = !1;
s.w = function(a) {
this.h = a || ha;
if (this.Db)
H.info("connect() deferred"),
this.Cb = !0;
else {
H.info("connect()");
if (this.a.ifrid)
this.K = this.b.B(this.a.ifrid);
if (this.K)(a = this.K.contentWindow) || (a = window.frames[this.a.ifrid]),
this.o = a;
if (!this.o)
window == top ? i(Error("CrossPageChannel: Can't connect, peer window-object not set.")) : this.o = window.parent;
if (!this.m) {
if (!this.a.tp) {
var a = this.a,
b;
if (na(document.postMessage) || na(window.postMessage) || O && window.postMessage)
b = 1;
else if (Vb)
b = 2;
else if (O && this.a.pru)
b = 3;
else {
var c;
if (c = O) {
c = !1;
try {
b = window.opener,
window.opener = {},
c = wc(window, "opener"),
window.opener = b
} catch(d) {}
}
b = c ? 6: 4
}
a.tp = b
}
switch (this.a.tp) {
case 1:
this.m = new Pd(this, this.a.ph, this.b);
break;
case 6:
this.m = new fe(this, this.b);
break;
case 2:
this.m = new md(this, this.b);
break;
case 3:
this.m = new Gd(this, this.b);
break;
case 4:
this.m = new S(this, this.b)
}
this.m ? H.info("Transport created: " + (gd[this.m.L] || "")) : i(Error("CrossPageChannel: No suitable transport found!"))
}
this.m.w()
}
};
s.close = function() {
if (this.r())
this.pa = 3,
this.m.q(),
this.h = this.m = q,
H.info('Channel "' + this.name + '" closed')
};
var od = function(a) {
if (!a.r())
a.pa = 2,
H.info('Channel "' + a.name + '" connected'),
a.h()
};
he.prototype.send = function(a, b) {
this.r() ? this.o.closed ? (H.log(D, "Peer has disappeared.", j), this.close()) : (oa(b) && (b = Cb(b)), this.m.send(ke(a), b)) : H.log(D, "Can't send. Channel not connected.", j)
};
var pd = function(a, b, c, d) {
var f = a.a.ph;
if (/^[\s\xa0]*$/.test(d == q ? "": String(d)) || /^[\s\xa0]*$/.test(f == q ? "": String(f)) || d == a.a.ph)
if (a.u)
vb(H, "CrossPageChannel::deliver_(): Disposed.");
else if (!b || b == "tp")
a.m.ha(c);
else if (a.r()) {
if (b = b.replace(/%[0-9a-f]{2}/gi, decodeURIComponent), b = je.test(b) ? b.substring(1) : b, d = a.c[b], d || (a.i ? (d = va(a.i, b), f = oa(c), d = {
fa: d,
ga: f
}) : (vb(a.d, 'Unknown service name "' + b + '"'), d = q)), d) {
var e;
a: {
if ((f = d.ga) && u(c))
try {
e = zb(c);
break a
} catch(g) {
vb(a.d, "Expected JSON payload for " + b + ', was "' + c + '"');
e = q;
break a
} else if (!f && !u(c)) {
e = Cb(c);
break a
}
e = c
}
e != q && d.fa(e)
}
} else
H.info("CrossPageChannel::deliver_(): Not connected.");
else
vb(H, 'Message received from unapproved origin "' + d + '" - rejected.')
},
ke = function(a) {
ie.test(a) && (a = "%" + a);
return a.replace(/[%:|]/g, encodeURIComponent)
},
nd = function(a) {
return window.parent == a.o ? 1: 0
};
he.prototype.g = function() {
he.k.g.call(this);
this.close();
this.K = this.o = q;
delete id[this.name]
};
var ge = function() {
for (var a in id) {
var b = id[a];
b && b.q()
}
};
var le = function() {};
B(le, Jb);
s = le.prototype;
s.Ua = !0;
s.Ya = q;
s.qa = function(a) {
this.Ya = a
};
s.addEventListener = function(a, b, c, d) {
Xc(this, a, b, c, d)
};
s.removeEventListener = function(a, b, c, d) {
Yc(this, a, b, c, d)
};
s.g = function() {
le.k.g.call(this);
ad(this);
this.Ya = q
};
var me = t.window,
ne = function(a, b) {
na(a) || (a && typeof a.handleEvent == "function" ? a = x(a.handleEvent, a) : i(Error("Invalid listener argument")));
b > 2147483647 || me.setTimeout(a, b || 0)
};
var oe = function(a) {
if ("isOnce" in a)
return a;
var b = !1,
c = function() {
b && i(Error("already called: " + a));
b = !0;
a.apply(t, arguments)
};
c.isOnce = !0;
return c
},
pe = function(a) {
if ("isAsyncOnce" in a)
return a;
var b = oe(function() {
var b = arguments;
window.setTimeout(function() {
a.apply(t, b)
}, 0)
});
b.isAsyncOnce = !0;
return b
},
qe = function(a, b) {
var c = y() + 1E4,
d = function() {
var f;
try {
f = a()
} catch(e) {
return b(!1, e)
}
if (f)
return b(!0);
if (c && y() + 100 > c)
return b(!1);
ne(d, 100)
};
ne(d, 0)
},
re = function(a, b) {
var c = ha;
Oa(Va(arguments, 1), function(b) {
c = x(b, a, c)
});
c()
};
var se = function(a) {
return window.JSON ? window.JSON.stringify(a) : Cb(a)
};
var te; (function() {
function a(a) {
a = a.match(/[\d]+/g);
a.length = 3;
return a.join(".")
}
var b = !1,
c = "";
if (navigator.plugins && navigator.plugins.length) {
var d = navigator.plugins["Shockwave Flash"];
d && (b = !0, d.description && (c = a(d.description)));
navigator.plugins["Shockwave Flash 2.0"] && (b = !0, c = "2.0.0.11")
} else if (navigator.mimeTypes && navigator.mimeTypes.length)(b = (d = navigator.mimeTypes["application/x-shockwave-flash"]) && d.enabledPlugin) && (c = a(d.enabledPlugin.description));
else
try {
d = new ActiveXObject("ShockwaveFlash.ShockwaveFlash.7"),
b = !0,
c = a(d.GetVariable("$version"))
} catch(f) {
try {
d = new ActiveXObject("ShockwaveFlash.ShockwaveFlash.6"),
b = !0,
c = "6.0.21"
} catch(e) {
try {
d = new ActiveXObject("ShockwaveFlash.ShockwaveFlash"),
b = !0,
c = a(d.GetVariable("$version"))
} catch(g) {}
}
}
te = c
})();
var ue = "NONE"; (function() {
Ia(te, "9") >= 0 && (ue = "FLASH");
var a = document.createElement("canvas");
a.width = 2;
a.height = 1;
var b = a.getContext && a.getContext("2d");
if (b) {
var c = document.createElement("img");
c.onload = function() {
try {
b.drawImage(c, 0, 0);
a.toDataURL();
var d;
a: {
var f = b.getImageData(0, 0, 2, 1).data,
e = [0, 255, 0, 255, 255, 0, 0, 255];
if (!ma(e) || !ma(f) || e.length != f.length)
d = !1;
else {
for (var g = e.length, h = 0; h < g; h++)
if (e[h] !== f[h]) {
d = !1;
break a
}
d = !0
}
}
d && (ue = "CANVAS")
} catch(l) {}
};
c.src = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAIAAAABCAYAAAD0In+KAAAAEUlEQVQImWNg+M/w/z8Dw38AEPgD/V7bC9oAAAAASUVORK5CYII="
}
})();
var ve = {
aliceblue: "#f0f8ff",
antiquewhite: "#faebd7",
aqua: "#00ffff",
aquamarine: "#7fffd4",
azure: "#f0ffff",
beige: "#f5f5dc",
bisque: "#ffe4c4",
black: "#000000",
blanchedalmond: "#ffebcd",
blue: "#0000ff",
blueviolet: "#8a2be2",
brown: "#a52a2a",
burlywood: "#deb887",
cadetblue: "#5f9ea0",
chartreuse: "#7fff00",
chocolate: "#d2691e",
coral: "#ff7f50",
cornflowerblue: "#6495ed",
cornsilk: "#fff8dc",
crimson: "#dc143c",
cyan: "#00ffff",
darkblue: "#00008b",
darkcyan: "#008b8b",
darkgoldenrod: "#b8860b",
darkgray: "#a9a9a9",
darkgreen: "#006400",
darkgrey: "#a9a9a9",
darkkhaki: "#bdb76b",
darkmagenta: "#8b008b",
darkolivegreen: "#556b2f",
darkorange: "#ff8c00",
darkorchid: "#9932cc",
darkred: "#8b0000",
darksalmon: "#e9967a",
darkseagreen: "#8fbc8f",
darkslateblue: "#483d8b",
darkslategray: "#2f4f4f",
darkslategrey: "#2f4f4f",
darkturquoise: "#00ced1",
darkviolet: "#9400d3",
deeppink: "#ff1493",
deepskyblue: "#00bfff",
dimgray: "#696969",
dimgrey: "#696969",
dodgerblue: "#1e90ff",
firebrick: "#b22222",
floralwhite: "#fffaf0",
forestgreen: "#228b22",
fuchsia: "#ff00ff",
gainsboro: "#dcdcdc",
ghostwhite: "#f8f8ff",
gold: "#ffd700",
goldenrod: "#daa520",
gray: "#808080",
green: "#008000",
greenyellow: "#adff2f",
grey: "#808080",
honeydew: "#f0fff0",
hotpink: "#ff69b4",
indianred: "#cd5c5c",
indigo: "#4b0082",
ivory: "#fffff0",
khaki: "#f0e68c",
lavender: "#e6e6fa",
lavenderblush: "#fff0f5",
lawngreen: "#7cfc00",
lemonchiffon: "#fffacd",
lightblue: "#add8e6",
lightcoral: "#f08080",
lightcyan: "#e0ffff",
lightgoldenrodyellow: "#fafad2",
lightgray: "#d3d3d3",
lightgreen: "#90ee90",
lightgrey: "#d3d3d3",
lightpink: "#ffb6c1",
lightsalmon: "#ffa07a",
lightseagreen: "#20b2aa",
lightskyblue: "#87cefa",
lightslategray: "#778899",
lightslategrey: "#778899",
lightsteelblue: "#b0c4de",
lightyellow: "#ffffe0",
lime: "#00ff00",
limegreen: "#32cd32",
linen: "#faf0e6",
magenta: "#ff00ff",
maroon: "#800000",
mediumaquamarine: "#66cdaa",
mediumblue: "#0000cd",
mediumorchid: "#ba55d3",
mediumpurple: "#9370d8",
mediumseagreen: "#3cb371",
mediumslateblue: "#7b68ee",
mediumspringgreen: "#00fa9a",
mediumturquoise: "#48d1cc",
mediumvioletred: "#c71585",
midnightblue: "#191970",
mintcream: "#f5fffa",
mistyrose: "#ffe4e1",
moccasin: "#ffe4b5",
navajowhite: "#ffdead",
navy: "#000080",
oldlace: "#fdf5e6",
olive: "#808000",
olivedrab: "#6b8e23",
orange: "#ffa500",
orangered: "#ff4500",
orchid: "#da70d6",
palegoldenrod: "#eee8aa",
palegreen: "#98fb98",
paleturquoise: "#afeeee",
palevioletred: "#d87093",
papayawhip: "#ffefd5",
peachpuff: "#ffdab9",
peru: "#cd853f",
pink: "#ffc0cb",
plum: "#dda0dd",
powderblue: "#b0e0e6",
purple: "#800080",
red: "#ff0000",
rosybrown: "#bc8f8f",
royalblue: "#4169e1",
saddlebrown: "#8b4513",
salmon: "#fa8072",
sandybrown: "#f4a460",
seagreen: "#2e8b57",
seashell: "#fff5ee",
sienna: "#a0522d",
silver: "#c0c0c0",
skyblue: "#87ceeb",
slateblue: "#6a5acd",
slategray: "#708090",
slategrey: "#708090",
snow: "#fffafa",
springgreen: "#00ff7f",
steelblue: "#4682b4",
tan: "#d2b48c",
teal: "#008080",
thistle: "#d8bfd8",
tomato: "#ff6347",
turquoise: "#40e0d0",
violet: "#ee82ee",
wheat: "#f5deb3",
white: "#ffffff",
whitesmoke: "#f5f5f5",
yellow: "#ffff00",
yellowgreen: "#9acd32"
};
var Ae = function(a) {
var b = {},
a = String(a),
c = a.charAt(0) == "#" ? a: "#" + a;
if (we.test(c))
return b.ta = xe(c),
b.type = "hex",
b;
else {
a: {
var d = a.match(ye);
if (d) {
var c = Number(d[1]),
f = Number(d[2]),
d = Number(d[3]);
if (c >= 0 && c <= 255 && f >= 0 && f <= 255 && d >= 0 && d <= 255) {
c = [c, f, d];
break a
}
}
c = []
}
if (c.length)
return f = c[0],
a = c[1],
c = c[2],
f = Number(f),
a = Number(a),
c = Number(c),
(isNaN(f) || f < 0 || f > 255 || isNaN(a) || a < 0 || a > 255 || isNaN(c) || c < 0 || c > 255) && i(Error('"(' + f + "," + a + "," + c + '") is not a valid RGB color')),
f = ze(f.toString(16)),
a = ze(a.toString(16)),
c = ze(c.toString(16)),
b.ta = "#" + f + a + c,
b.type = "rgb",
b;
else if (ve && (c = ve[a.toLowerCase()]))
return b.ta = c,
b.type = "named",
b
}
i(Error(a + " is not a valid color string"))
},
Be = /#(.)(.)(.)/,
xe = function(a) {
we.test(a) || i(Error("'" + a + "' is not a valid hex color"));
a.length == 4 && (a = a.replace(Be, "#$1$1$2$2$3$3"));
return a.toLowerCase()
},
we = /^#(?:[0-9a-f]{3}){1,2}$/i,
ye = /^(?:rgb)?\((0|[1-9]\d{0,2}),\s?(0|[1-9]\d{0,2}),\s?(0|[1-9]\d{0,2})\)$/i,
ze = function(a) {
return a.length == 1 ? "0" + a: a
};
var Ce = function(a) {
this.c = a
};
B(Ce, Jb);
var De = new P(0, 100),
Ee = [],
Fe = function(a) {
if (a.a) {
for (var b in a.a)
Zc(b),
delete a.a[b];
Ec(De, a.a);
a.a = q
} else
a.b && Zc(a.b)
};
Ce.prototype.g = function() {
Ce.k.g.call(this);
Fe(this)
};
Ce.prototype.handleEvent = function() {
i(Error("EventHandler.handleEvent not implemented"))
};
var Ge = function(a) {
typeof a == "number" && (a = Math.round(a) + "px");
return a
};
var He = function() {}; (function(a) {
a.lb = function() {
return a.Vb || (a.Vb = new a)
}
})(He);
He.prototype.a = 0;
He.lb();
var V = function(a) {
this.c = a || oc();
this.Ub = Ie
};
B(V, le);
V.prototype.T = He.lb();
var Ie = q;
s = V.prototype;
s.W = q;
s.H = !1;
s.s = q;
s.Ub = q;
s.Mb = q;
s.v = q;
s.ba = q;
s.z = q;
s.Nb = !1;
var Je = function(a) {
return a.W || (a.W = ":" + (a.T.a++).toString(36))
};
s = V.prototype;
s.B = function() {
return this.s
};
s.qa = function(a) {
this.v && this.v != a && i(Error("Method not supported"));
V.k.qa.call(this, a)
};
s.Na = function() {
this.s = this.c.a.createElement("div")
};
s.X = function(a, b) {
this.H && i(Error("Component already rendered"));
this.s || this.Na();
a ? a.insertBefore(this.s, b || q) : this.c.a.body.appendChild(this.s); (!this.v || this.v.H) && this.V()
};
s.V = function() {
this.H = !0;
Ke(this, function(a) { ! a.H && a.B() && a.V()
})
};
var Le = function(a) {
Ke(a, function(a) {
a.H && Le(a)
});
a.b && Fe(a.b);
a.H = !1
};
V.prototype.g = function() {
V.k.g.call(this);
this.H && Le(this);
this.b && (this.b.q(), delete this.b);
Ke(this, function(a) {
a.q()
}); ! this.Nb && this.s && uc(this.s);
this.v = this.Mb = this.s = this.z = this.ba = q
};
var Ke = function(a, b) {
a.ba && Na(a.ba, b, j)
};
V.prototype.removeChild = function(a, b) {
if (a) {
var c = u(a) ? a: Je(a),
a = this.z && c ? (c in this.z ? this.z[c] : j) || q: q;
if (c && a) {
var d = this.z;
c in d && delete d[c];
Qa(this.ba, a);
b && (Le(a), a.s && uc(a.s));
c = a;
c == q && i(Error("Unable to set parent component"));
c.v = q;
V.k.qa.call(c, q)
}
}
a || i(Error("Child is not in parent component"));
return a
};
var W = function(a, b) {
V.call(this, b);
this.R = a;
this.d = new Ce(this);
this.a = new bb
};
B(W, V);
W.prototype.l = L("goog.ui.media.FlashObject");
W.prototype.I = "window";
W.prototype.D = "#000000";
W.prototype.F = "sameDomain";
var Me = function(a, b, c) {
a.A = u(b) ? b: Math.round(b) + "px";
a.h = u(c) ? c: Math.round(c) + "px";
if (a.B())
b = a.B() ? a.B().firstChild: q,
c = a.A,
a = a.h,
c instanceof Ib ? (a = c.height, c = c.width) : a == j && i(Error("missing height argument")),
b.style.width = Ge(c),
b.style.height = Ge(a)
};
W.prototype.V = function() {
W.k.V.call(this);
var a = this.B(),
b;
b = O ? '<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" id="%s" name="%s" class="%s"><param name="movie" value="%s"/><param name="quality" value="high"/><param name="FlashVars" value="%s"/><param name="bgcolor" value="%s"/><param name="AllowScriptAccess" value="%s"/><param name="allowFullScreen" value="true"/><param name="SeamlessTabbing" value="false"/>%s</object>': '<embed quality="high" id="%s" name="%s" class="%s" src="%s" FlashVars="%s" bgcolor="%s" AllowScriptAccess="%s" allowFullScreen="true" SeamlessTabbing="false" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" %s></embed>';
for (var c = O ? '<param name="wmode" value="%s"/>': "wmode=%s", c = xa(c, this.I), d = cb(this.a), f = db(this.a), e = [], g = 0; g < d.length; g++) {
var h = za(d[g]),
l = za(f[g]);
e.push(h + "=" + l)
}
b = xa(b, Je(this), Je(this), "goog-ui-media-flash-object", Fa(this.R), Fa(e.join("&")), this.D, this.F, c);
a.innerHTML = b;
this.A && this.h && Me(this, this.A, this.h);
a = this.d;
b = this.B();
c = Za(Ac);
la(c) || (Ee[0] = c, c = Ee);
for (d = 0; d < c.length; d++)
f = a,
e = Xc(b, c[d], zc || a, !1, a.c || a),
f.a ? f.a[e] = !0: f.b ? (f.a = Cc(De), f.a[f.b] = !0, f.b = q, f.a[e] = !0) : f.b = e
};
W.prototype.Na = function() {
this.i != q && !(Ia(te, this.i) >= 0) && (vb(this.l, "Required flash version not found:" + this.i), i(Error("Method not supported")));
var a = this.c.a.createElement("div");
a.className = "goog-ui-media-flash";
this.s = a
};
W.prototype.g = function() {
W.k.g.call(this);
this.a = q;
this.d.q();
this.d = q
};
var Ne = function(a, b, c, d) {
this.d = a;
this.c = b;
this.a = c;
this.b = d
},
Oe = function(a) {
return new Ne(a[0], a[1], a[2], a[3])
};
var Pe = function(a, b, c, d) {
d || (d = c);
a.beginPath();
X(a, 0, 0, c.d, d.d, "top");
X(a, b.width - c.c * 2, 0, c.c, d.c, "top");
X(a, b.width - c.a * 2, b.height - d.a * 2, c.a, d.a, "bottom");
X(a, 0, b.height - d.b * 2, c.b, d.b, "bottom");
a.rect(c.d, 0, b.width - c.d - c.c, b.height / 2);
a.rect(b.width / 2, d.c, b.width / 2, b.height - d.c - d.a);
a.rect(c.b, b.height / 2, b.width - c.b - c.a, b.height / 2);
a.rect(0, d.d, b.width / 2, b.height - d.d - d.b);
a.clip()
},
X = function(a, b, c, d, f, e) {
if (d && f) {
var g = 0,
h = 2 * Math.PI;
if ("top" == e)
g = Math.PI,
a.moveTo(b, c + f);
else {
if ("bottom" == e)
h = Math.PI;
a.moveTo(b + d * 2, c + f)
}
a.save();
a.translate(b + d, c + f);
a.scale(d, f);
a.arc(0, 0, 1, g, h, !1);
a.restore()
}
};
var Y = {
Sb: "GfVisibleFlash",
cd: "GfVisibleLog",
cc: "GfAllowUnsupportedPages",
bc: "GfAllowUnsupportedBrowsers",
bd: "GfUseSimpleFlow"
};
Y.P = function() {
var a = t.GOOGLE_FEEDBACK_FLAGS,
b = Y.da;
if (!Y.da)
Y.da = {},
b = Y;
Ya(b, function(b, d) {
u(b) && (Y.da[d] = b, Y[d] = a && b in a ? !!a[b] : window.location.href.indexOf(b) != -1 ? !0: !1)
})
};
Y.Yb = function() {
var a = {};
Ya(Y.da, function(b, c) {
Y[c] && (a[b] = !0)
});
return a
};
Y.P();
var Qe = [{
x: 0,
y: 0,
width: 12,
height: 12
}, {
x: 12,
y: 0,
width: 12,
height: 12
}, {
x: 24,
y: 0,
width: 12,
height: 12
}, {
x: 36,
y: 0,
width: 12,
height: 12
}, {
x: 0,
y: 12,
width: 13,
height: 13
}, {
x: 13,
y: 12,
width: 13,
height: 13
}, {
x: 26,
y: 12,
width: 13,
height: 13
}, {
x: 39,
y: 12,
width: 13,
height: 13
}];
var Re = function() {};
Re.prototype.S = ha;
var Se = function(a) {
a.aa("data:image/png;base64,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")
},
Te = function(a, b, c) {
b = Qe[b];
a.ra("data:image/png;base64,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", new M(c.x, c.y, b.width, b.height), -b.x + "px " + -b.y + "px", !1, !1)
};
var Ue = function(a, b, c) {
this.l = L("userfeedback.render.canvas.FlashCanvas");
this.c = !!c;
"GF_SCREENSHOT_RESOURCES_BASE_URL" in t || (this.l.info("GF_SCREENSHOT_RESOURCES_BASE_URL not set"), i(Error("GF_SCREENSHOT_RESOURCES_BASE_URL not set")));
var d = t.GF_SCREENSHOT_RESOURCES_BASE_URL + "/FlashCanvas.swf";
this.d = Ga().replace(/-/g, "_");
this.l.info("Creating Flash Canvas " + this.d + " thumbnailMode=" + this.c + ", src=" + d);
this.J = new Ib(a, b);
this.b = q;
var d = this.a = new W(d),
f = "GOOGLE_FEEDBACK_FLASH_CANVAS_" + this.d;
if (d.v && d.v.z) {
var e = d.v.z,
g = d.W;
g in e && delete e[g];
e = d.v.z;
f in e && i(Error('The object already contains the key "' + f + '"'));
e[f] = d
}
d.W = f;
this.a.F = this.c ? "never": "sameDomain";
this.a.I = this.c ? "opaque": "transparent";
Me(this.a, a, b);
this.a.i = "9";
this.a.D = "#ffffff";
this.c && this.a.a.set("src", c);
this.j = q
};
B(Ue, Re);
var We = function(a, b) {
a.l.info("create() called");
var b = pe(b),
c = Ve(a);
a.a.X(c);
a.j = u("GOOGLE_FEEDBACK_FLASH_CANVAS_" + a.d) ? document.getElementById("GOOGLE_FEEDBACK_FLASH_CANVAS_" + a.d) : "GOOGLE_FEEDBACK_FLASH_CANVAS_" + a.d;
a.c ? b(a) : qe(x(a.i, a), x(function(a) {
a ? (Se(this), b(this)) : (this.l.info("Timed out while waiting for FlashCanvas"), this.S(), b(q, "Timed out while waiting for FlashCanvas"))
}, a))
};
Ue.prototype.i = function() {
try {
if (this.j.flashCanvasIsReady && !this.h)
this.h = !0,
this.l.info("Flash object ready method exists");
var a = this.j.flashCanvasIsReady();
if (a && !this.u)
this.u = !0,
this.l.info("Flash object ready method returns true");
return a
} catch(b) {
return ! 1
}
};
Ue.prototype.S = function() {
this.l.info("destroy() called");
try {
this.h && this.j.flashCanvasDestroy()
} catch(a) {
this.l.info("exception in flashCanvasDestroy", a)
}
if (this.b) {
try {
document.body.removeChild(this.b)
} catch(b) {
this.l.info("exception when removing div", b)
}
this.b = q
}
this.a = this.j = q
};
var Ve = function(a) {
a.b = Y.Sb ? sc("div", {
style: "width:100px;height:100px;border:2px dotted yellow;"
}) : sc("div", {
style: "position:absolute;top:0;left:0;"
});
document.body.appendChild(a.b);
return a.b
};
s = Ue.prototype;
s.aa = function(a) {
this.j.flashCanvasPreloadImage(a)
};
s.Ra = function(a) {
return this.j.flashCanvasIsImageReady(a)
};
s.ra = function(a, b, c, d, f) {
this.j.flashCanvasTileImage(a, b.left, b.top, b.width, b.height, c, d, f)
};
s.ka = function(a, b) {
this.j.flashCanvasStretchImage(a, b.left, b.top, b.width, b.height)
};
s.bb = function(a, b, c, d, f) {
"transparent" != f && (f = Xe(f), this.j.flashCanvasStrokeRect(a, b, c, d, f))
};
s.ab = function(a, b, c) {
this.fillRect(a, c[0])
};
s.Za = function(a, b, c, d, f) {
d.top && this.fillRect(new M(a.left - d.left, a.top - d.top, a.width + d.left + d.right, d.top), f[0]);
d.right && this.fillRect(new M(a.left + a.width, a.top - d.top, d.right, a.height + d.top + d.a), f[1]);
d.a && this.fillRect(new M(a.left - d.left, a.top + a.height, a.width + d.left + d.right, d.a), f[2]);
d.left && this.fillRect(new M(a.left - d.left, a.top - d.top, d.left, a.height + d.top + d.a), f[3])
};
s.fillRect = function(a, b) {
if ("transparent" != b) {
var c = Xe(b);
this.j.flashCanvasFillRect(a.left, a.top, a.width, a.height, c)
}
};
s.cb = function(a, b, c, d, f, e, g, h, l, k) {
"transparent" != g && (g = Xe(g), this.j.flashCanvasDrawText(a, b, c, d, f, e, g, h == "bold" || parseInt(h, 10) >= 550, l, k))
};
s.$a = function(a, b, c) {
Te(this, a, new Gb(b, c))
};
s.Qa = function(a) {
this.j.flashCanvasBeginHighlights();
Na(a, function(a) {
this.j.flashCanvasAddHighlight(a.left, a.top, a.width, a.height)
}, this);
this.j.flashCanvasEndHighlights()
};
s.gb = function() {};
s.$ = function(a, b, c, d) {
this.j.flashCanvasPushClip(a, b, c, d)
};
s.fb = function() {
this.j.flashCanvasPopClip()
};
s.eb = function() {
this.j.flashCanvasPopAllClips()
};
s.clear = function() {
this.j.flashCanvasClear()
};
s.ja = function(a) {
a = pe(a);
qe(x(this.i, this), x(function(b) {
if (b) {
var c;
try {
c = this.j.flashCanvasToDataUrl(this.J.width, this.J.height)
} catch(d) {
return a(q, d)
}
return a(c)
}
return a(q, "flashCanvasToDataUrl timed out")
}, this))
};
s.Y = function(a) {
this.J = a;
Me(this.a, a.width, a.height)
};
var Xe = function(a) {
try {
var b = Ae(a)
} catch(c) {
return 16711680
}
a = b.ta;
a = xe(a);
a = [parseInt(a.substr(1, 2), 16), parseInt(a.substr(3, 2), 16), parseInt(a.substr(5, 2), 16)];
return (a[0] << 16) + (a[1] << 8) + a[2]
},
Ye = L("FlashCanvas.swf"),
Ze = function(a) {
Ye.info(a)
},
$e = "GoogleFeedbackFlashCanvasLog".split("."),
af = t; ! ($e[0] in af) && af.execScript && af.execScript("var " + $e[0]);
for (var bf; $e.length && (bf = $e.shift());) ! $e.length && Ze !== j ? af[bf] = Ze: af = af[bf] ? af[bf] : af[bf] = {};
var cf = function(a, b, c) {
this.a = a;
this.c = (this.b = b) || c || q
};
var df = function(a, b) {
this.a = document.createElement("canvas");
this.f = this.a.getContext("2d");
this.b = 0;
this.Z = new bb;
this.Y(new Ib(a, b));
Se(this)
};
B(df, Re);
s = df.prototype;
s.aa = function(a) {
var b = new Image;
b.onload = x(function() {
b.width && this.Z.set(a, b)
}, this);
b.src = a
};
s.Ra = function(a) {
return Object.prototype.hasOwnProperty.call(this.Z.b, a)
};
s.ra = function(a, b, c, d, f) {
if (a = this.Z.get(a)) {
var e = c.split(" "),
c = parseInt(e[0], 10),
g = parseInt(e[1], 10);
e[0].indexOf("%") != -1 && (c *= 0.01, c = Math.round(b.width * c - a.width * c));
e[1].indexOf("%") != -1 && (g *= 0.01, g = Math.round(b.height * g - a.height * g));
this.f.save();
this.f.beginPath();
this.f.rect(b.left, b.top, b.width, b.height);
this.f.clip();
this.f.beginPath();
e = "no-repeat";
d && f ? (e = "repeat", this.f.rect(b.left, b.top, b.width, b.height)) : d ? (e = "repeat-x", this.f.rect(b.left, b.top + g, b.width, a.height)) : f ? (e = "repeat-y", this.f.rect(b.left + c, b.top, a.width, b.height)) : this.f.rect(b.left + c, b.top + g, a.width, a.height);
this.f.clip();
try {
this.f.fillStyle = this.f.createPattern(a, e),
this.f.translate(b.left + c, b.top + g),
this.f.fillRect( - c, -g, b.width, b.height)
} finally {
this.f.restore()
}
}
};
s.ka = function(a, b) {
var c = this.Z.get(a);
c && this.f.drawImage(c, b.left, b.top, b.width, b.height)
};
s.bb = function(a, b, c, d, f) {
this.f.strokeStyle = f;
this.f.strokeRect(Math.floor(a), Math.floor(b), c, d)
};
s.ab = function(a, b, c) {
var d = this.f.createLinearGradient(b.left, b.top, b.width, b.height);
if (c.length > 1) {
var f = 1 / (c.length - 1);
Na(c, function(a, b) {
d.addColorStop(b * f, a)
})
} else
d.addColorStop(1, c[0]);
this.f.fillStyle = d;
this.f.fillRect(Math.floor(a.left), Math.floor(a.top), a.width, a.height)
};
s.Za = function(a, b, c, d, f) {
a.left -= d.left;
a.top -= d.top;
a.width += d.left + d.right;
a.height += d.top + d.a;
b = new cf(a, b, c);
a = this.f;
a.save();
a.translate(b.a.left, b.a.top);
Pe(a, b.a, b.b, b.c);
c = f[0];
if (d.top) {
a.save();
var e = b.a,
g = b.b,
h = b.c;
a.beginPath();
a.moveTo( - 1, 0);
a.lineTo(d.left + g.d - 1, d.top + h.d);
a.lineTo(e.width - d.right - g.c, d.top + h.c);
a.lineTo(e.width, 0);
a.closePath();
a.clip();
a.fillStyle = c;
a.fillRect(g.d, 0, e.width - g.c, d.top);
a.beginPath();
a.rect(0, 0, g.d, h.d);
a.rect(e.width - g.c, 0, g.c, h.c);
a.clip();
a.beginPath();
X(a, 0, 0, g.d, h.d, "top");
X(a, e.width - g.c * 2, 0, g.c, h.c, "top");
a.lineWidth = d.top * 2;
a.strokeStyle = c;
a.stroke();
a.restore()
}
c = f[1];
if (d.right)
a.save(),
e = b.a,
g = b.b,
h = b.c,
a.beginPath(),
a.moveTo(e.width, -1),
a.lineTo(e.width - d.right - g.c, d.top + h.c - 1),
a.lineTo(e.width - d.right - g.a, e.height - d.a - h.a),
a.lineTo(e.width, e.height),
a.closePath(),
a.clip(),
a.fillStyle = c,
a.fillRect(e.width - d.right, h.c, d.right, e.height - h.a),
a.beginPath(),
a.rect(e.width - g.c, 0, g.c, h.c),
a.rect(e.width - g.a, e.height - h.a, g.a, h.a),
a.clip(),
a.beginPath(),
X(a, e.width - g.c * 2, 0, g.c, h.c, "top"),
X(a, e.width - g.a * 2, e.height - h.a * 2, g.a, h.a, "bottom"),
a.lineWidth = d.right * 2,
a.strokeStyle = c,
a.stroke(),
a.restore();
c = f[2];
if (d.a)
a.save(),
e = b.a,
g = b.b,
h = b.c,
a.beginPath(),
a.moveTo(e.width + 1, e.height),
a.lineTo(e.width - d.right - g.a + 1, e.height - d.a - h.a),
a.lineTo(d.left + g.b, e.height - d.a - h.b),
a.lineTo(0, e.height),
a.closePath(),
a.clip(),
a.fillStyle = c,
a.fillRect(g.b, e.height - d.a, e.width - g.a, d.a),
a.beginPath(),
a.rect(0, e.height - h.b, g.b, h.b + d.a),
a.rect(e.width - g.a, e.height - g.a, g.a, h.a),
a.lineWidth = 1,
a.clip(),
a.beginPath(),
X(a, e.width - g.a * 2, e.height - h.a * 2, g.a, h.a, "bottom"),
X(a, 0, e.height - h.b * 2, g.b, h.b, "bottom"),
a.lineWidth = d.a * 2,
a.strokeStyle = c,
a.stroke(),
a.restore();
f = f[3];
if (d.left)
a.save(),
c = b.a,
e = b.b,
b = b.c,
a.beginPath(),
a.moveTo(0, 0),
a.lineTo(d.left + e.d, d.top + b.d),
a.lineTo(d.left + e.b, c.height - d.a - b.b + 1),
a.lineTo(0, c.height + 1),
a.closePath(),
a.clip(),
a.fillStyle = f,
a.fillRect(0, b.d, d.left, c.height - b.b),
a.beginPath(),
a.rect(0, 0, e.d, b.d),
a.rect(0, c.height - b.b, e.b, b.b + d.left),
a.clip(),
a.beginPath(),
X(a, 0, 0, e.d, b.d, "top"),
X(a, 0, c.height - b.b * 2, e.b, b.b, "bottom"),
a.lineWidth = d.left * 2,
a.strokeStyle = f,
a.stroke(),
a.restore();
a.restore()
};
s.fillRect = function(a, b) {
this.f.fillStyle = b;
this.f.fillRect(Math.floor(a.left), Math.floor(a.top), a.width, a.height)
};
s.cb = function(a, b, c, d, f, e, g, h, l, k) {
Vb && (c = Math.round(c + f / 5));
this.f.fillStyle = g;
this.f.font = h + (l ? " italic ": " ") + f + "px " + d;
this.f.fillText(a, b, c);
if (k)
a = Vb ? -1.5: 1.5 - (f >> 5),
this.f.beginPath(),
this.f.moveTo(b, c + f + a),
this.f.lineTo(b + e, c + f + a),
this.f.strokeStyle = g,
this.f.stroke()
};
s.$a = function(a, b, c) {
Te(this, a, new Gb(b, c))
};
s.Qa = function(a) {
this.f.save();
this.f.beginPath();
this.f.moveTo(0, 0);
this.f.lineTo(0, this.a.height);
this.f.lineTo(this.a.width, this.a.height);
this.f.lineTo(this.a.width, 0);
this.f.lineTo(0, 0);
Na(a, function(a) {
this.f.moveTo(a.left, a.top);
this.f.lineTo(a.left + a.width, a.top);
this.f.lineTo(a.left + a.width, a.top + a.height);
this.f.lineTo(a.left, a.top + a.height);
this.f.lineTo(a.left, a.top)
}, this);
this.f.clip();
this.f.fillStyle = "rgba(0, 0, 0, 0.4)";
this.f.fillRect(0, 0, this.a.width, this.a.height);
this.f.restore()
};
s.gb = function(a, b, c) {
this.f.save();
this.f.translate(a.left, a.top);
Pe(this.f, a, b, c);
this.f.translate( - a.left, -a.top);
this.b++
};
s.$ = function(a, b, c, d) {
this.f.save();
this.f.beginPath();
this.f.rect(a, b, c, d);
this.f.clip();
this.b++
};
s.fb = function() {
this.f.restore();
this.b--
};
s.eb = function() {
for (; this.b;)
this.f.restore(),
this.b--
};
s.ja = function(a) {
a = pe(a);
try {
var b = this.a.toDataURL("image/png");
a(b)
} catch(c) {
a(q, c)
}
};
s.Y = function(a) {
this.a.width = a.width;
this.a.height = a.height;
this.f.fillStyle = "white";
this.f.fillRect(0, 0, a.width, a.height);
this.f.textBaseline = "top"
};
s.clear = function() {
var a = new Ib(this.a.width, this.a.height);
this.a = document.createElement("canvas");
this.f = this.a.getContext("2d");
this.b = 0;
this.Y(a)
};
s.S = function() {
this.a = this.f = q
};
var ff = function(a) {
ef.info("Canvas size: 100 x 100");
a = pe(a);
if ("CANVAS" == ue) {
ef.info("Using HTML5 canvas");
a: {
var b = a,
c;
try {
c = new df(100, 100)
} catch(d) {
b(q, d);
break a
}
b(c)
}
} else if ("FLASH" == ue) {
ef.info("Using FlashCanvas");
a: {
c = a;
try {
b = new Ue(100, 100)
} catch(f) {
c(q, f);
break a
}
We(b, c)
}
} else
a(q, "Cannot create canvas for RenderingStrategy NONE")
},
ef = L("userfeedback.render.canvas");
var gf;
gf = !1;
var hf = Rb();
hf && hf.indexOf("Firefox") != -1 && (gf = !0);
var jf = gf;
var kf = q,
lf = Vb || Wb || Ub || typeof t.atob == "function";
/*
Copyright (c) 2008, Adobe Systems Incorporated
All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are
met:
Redistributions of source code must retain the above copyright notice,
this list of conditions and the following disclaimer.
Redistributions in binary form must reproduce the above copyright
notice, this list of conditions and the following disclaimer in the
documentation and/or other materials provided with the distribution.
Neither the name of Adobe Systems Incorporated nor the names of its
contributors may be used to endorse or promote products derived from
this software without specific prior written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
JPEG encoder ported to JavaScript and optimized by Andreas Ritter, www.bytestrom.eu, 11/2009
Basic GUI blocking jpeg encoder
v 0.9
*/
var mf = function() {
var a = 20;
function b(a, b) {
for (var c = 0, d = 0, e = [], f = 1; f <= 16; f++) {
for (var g = 1; g <= a[f]; g++)
e[b[d]] = [],
e[b[d]][0] = c,
e[b[d]][1] = f,
d++,
c++;
c *= 2
}
return e
}
function c(a) {
for (var b = a[0], a = a[1] - 1; a >= 0;)
b & 1 << a && (Ra | =1 << ia),
a--,
ia--,
ia < 0 && (Ra == 255 ? (d(255), d(0)) : d(Ra), ia = 7, Ra = 0)
}
function d(a) {
fb.push(Sd[a])
}
function f(a) {
d(a >> 8 & 255);
d(a & 255)
}
function e(a, b, d, e, f) {
var g = f[0],
h = f[240],
k,
l,
p,
n,
v,
m,
w,
z,
A,
o = 0;
for (k = 0; k < 8;++k) {
l = a[o];
p = a[o + 1];
n = a[o + 2];
v = a[o + 3];
m = a[o + 4];
w = a[o + 5];
z = a[o + 6];
A = a[o + 7];
var r = l + A;
l = l - A;
A = p + z;
p = p - z;
z = n + w;
n = n - w;
w = v + m;
v = v - m;
m = r + w;
r = r - w;
w = A + z;
A = A - z;
a[o] = m + w;
a[o + 4] = m - w;
m = (A + r) * 0.707106781;
a[o + 2] = r + m;
a[o + 6] = r - m;
m = v + n;
w = n + p;
A = p + l;
n = (m - A) * 0.382683433;
v = 0.5411961 * m + n;
m = 1.306562965 * A + n;
w *= 0.707106781;
n = l + w;
l -= w;
a[o + 5] = l + v;
a[o + 3] = l - v;
a[o + 1] = n + m;
a[o + 7] = n - m;
o += 8
}
for (k = o = 0; k < 8;++k)
l = a[o],
p = a[o + 8],
n = a[o + 16],
v = a[o + 24],
m = a[o + 32],
w = a[o + 40],
z = a[o + 48],
A = a[o + 56],
r = l + A,
l = l - A,
A = p + z,
p = p - z,
z = n + w,
n = n - w,
w = v + m,
v = v - m,
m = r + w,
r = r - w,
w = A + z,
A = A - z,
a[o] = m + w,
a[o + 32] = m - w,
m = (A + r) * 0.707106781,
a[o + 16] = r + m,
a[o + 48] = r - m,
m = v + n,
w = n + p,
A = p + l,
n = (m - A) * 0.382683433,
v = 0.5411961 * m + n,
m = 1.306562965 * A + n,
w *= 0.707106781,
n = l + w,
l -= w,
a[o + 40] = l + v,
a[o + 24] = l - v,
a[o + 8] = n + m,
a[o + 56] = n - m,
o++;
for (k = 0; k < 64;++k)
o = a[k] * b[k],
Td[k] = o > 0 ? o + 0.5 | 0: o - 0.5 | 0;
a = Td;
for (b = 0; b < 64;++b)
ja[ta[b]] = a[b];
a = ja[0] - d;
d = ja[0];
a == 0 ? c(e[0]) : (k = 32767 + a, c(e[Kb[k]]), c($[k]));
for (e = 63; e > 0 && ja[e] == 0; e--);
if (e == 0)
return c(g),
d;
for (a = 1; a <= e;) {
for (b = a; ja[a] == 0 && a <= e;++a);
b = a - b;
if (b >= 16) {
k = b >> 4;
for (o = 1; o <= k;++o)
c(h);
b & =15
}
k = 32767 + ja[a];
c(f[(b << 4) + Kb[k]]);
c($[k]);
a++
}
e != 63 && c(g);
return d
}
function g(a) {
a <= 0 && (a = 1);
a > 100 && (a = 100);
if (Ud != a) {
for (var b = 0, b = a < 50 ? Math.floor(5E3 / a) : Math.floor(200 - a * 2), c = [16, 11, 10, 16, 24, 40, 51, 61, 12, 12, 14, 19, 26, 58, 60, 55, 14, 13, 16, 24, 40, 57, 69, 56, 14, 17, 22, 29, 51, 87, 80, 62, 18, 22, 37, 56, 68, 109, 103, 77, 24, 35, 55, 64, 81, 104, 113, 92, 49, 64, 78, 87, 103, 121, 120, 101, 72, 92, 95, 98, 112, 100, 103, 99], d = 0; d < 64; d++) {
var e = h((c[d] * b + 50) / 100);
e < 1 ? e = 1: e > 255 && (e = 255);
l[ta[d]] = e
}
c = [17, 18, 24, 47, 99, 99, 99, 99, 18, 21, 26, 66, 99, 99, 99, 99, 24, 26, 56, 99, 99, 99, 99, 99, 47, 66, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99];
for (d = 0; d < 64; d++)
e = h((c[d] * b + 50) / 100),
e < 1 ? e = 1: e > 255 && (e = 255),
k[ta[d]] = e;
b = [1, 1.387039845, 1.306562965, 1.175875602, 1, 0.785694958, 0.5411961, 0.275899379];
for (d = c = 0; d < 8; d++)
for (e = 0; e < 8; e++)
n[c] = 1 / (l[ta[c]] * b[d] * b[e] * 8),
p[c] = 1 / (k[ta[c]] * b[d] * b[e] * 8),
c++;
Ud = a
}
}
var h = Math.floor,
l = Array(64),
k = Array(64),
n = Array(64),
p = Array(64),
K,
r,
Sa,
gb,
$ = Array(65535),
Kb = Array(65535),
Td = Array(64),
ja = Array(64),
fb = [],
Ra = 0,
ia = 7,
Vd = Array(64),
Wd = Array(64),
Xd = Array(64),
Sd = Array(256),
G = Array(2048),
Ud,
ta = [0, 1, 5, 6, 14, 15, 27, 28, 2, 4, 7, 13, 16, 26, 29, 42, 3, 8, 12, 17, 25, 30, 41, 43, 9, 11, 18, 24, 31, 40, 44, 53, 10, 19, 23, 32, 39, 45, 52, 54, 20, 22, 33, 38, 46, 51, 55, 60, 21, 34, 37, 47, 50, 56, 59, 61, 35, 36, 48, 49, 57, 58, 62, 63],
Yd = [0, 0, 1, 5, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0],
Zd = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11],
$d = [0, 0, 2, 1, 3, 3, 2, 4, 3, 5, 5, 4, 4, 0, 0, 1, 125],
ae = [1, 2, 3, 0, 4, 17, 5, 18, 33, 49, 65, 6, 19, 81, 97, 7, 34, 113, 20, 50, 129, 145, 161, 8, 35, 66, 177, 193, 21, 82, 209, 240, 36, 51, 98, 114, 130, 9, 10, 22, 23, 24, 25, 26, 37, 38, 39, 40, 41, 42, 52, 53, 54, 55, 56, 57, 58, 67, 68, 69, 70, 71, 72, 73, 74, 83, 84, 85, 86, 87, 88, 89, 90, 99, 100, 101, 102, 103, 104, 105, 106, 115, 116, 117, 118, 119, 120, 121, 122, 131, 132, 133, 134, 135, 136, 137, 138, 146, 147, 148, 149, 150, 151, 152, 153, 154, 162, 163, 164, 165, 166, 167, 168, 169, 170, 178, 179, 180, 181, 182, 183, 184, 185, 186, 194, 195, 196, 197, 198, 199, 200, 201, 202, 210, 211, 212, 213, 214, 215, 216, 217, 218, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250],
be = [0, 0, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0],
ce = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11],
de = [0, 0, 2, 1, 2, 4, 4, 3, 4, 7, 5, 4, 4, 0, 1, 2, 119],
ee = [0, 1, 2, 3, 17, 4, 5, 33, 49, 6, 18, 65, 81, 7, 97, 113, 19, 34, 50, 129, 8, 20, 66, 145, 161, 177, 193, 9, 35, 51, 82, 240, 21, 98, 114, 209, 10, 22, 36, 52, 225, 37, 241, 23, 24, 25, 26, 38, 39, 40, 41, 42, 53, 54, 55, 56, 57, 58, 67, 68, 69, 70, 71, 72, 73, 74, 83, 84, 85, 86, 87, 88, 89, 90, 99, 100, 101, 102, 103, 104, 105, 106, 115, 116, 117, 118, 119, 120, 121, 122, 130, 131, 132, 133, 134, 135, 136, 137, 138, 146, 147, 148, 149, 150, 151, 152, 153, 154, 162, 163, 164, 165, 166, 167, 168, 169, 170, 178, 179, 180, 181, 182, 183, 184, 185, 186, 194, 195, 196, 197, 198, 199, 200, 201, 202, 210, 211, 212, 213, 214, 215, 216, 217, 218, 226, 227, 228, 229, 230, 231, 232, 233, 234, 242, 243, 244, 245, 246, 247, 248, 249, 250];
this.a = function(a, b) {
b && g(b);
fb = [];
Ra = 0;
ia = 7;
f(65496);
f(65504);
f(16);
d(74);
d(70);
d(73);
d(70);
d(0);
d(1);
d(1);
d(0);
f(1);
f(1);
d(0);
d(0);
f(65499);
f(132);
d(0);
for (var h = 0; h < 64; h++)
d(l[h]);
d(1);
for (h = 0; h < 64; h++)
d(k[h]);
var h = a.width,
E = a.height;
f(65472);
f(17);
d(8);
f(E);
f(h);
d(3);
d(1);
d(17);
d(0);
d(2);
d(17);
d(1);
d(3);
d(17);
d(1);
f(65476);
f(418);
d(0);
for (h = 0; h < 16; h++)
d(Yd[h + 1]);
for (h = 0; h <= 11; h++)
d(Zd[h]);
d(16);
for (h = 0; h < 16; h++)
d($d[h + 1]);
for (h = 0; h <= 161; h++)
d(ae[h]);
d(1);
for (h = 0; h < 16; h++)
d(be[h + 1]);
for (h = 0; h <= 11; h++)
d(ce[h]);
d(17);
for (h = 0; h < 16; h++)
d(de[h + 1]);
for (h = 0; h <= 161; h++)
d(ee[h]);
f(65498);
f(12);
d(3);
d(1);
d(0);
d(2);
d(17);
d(3);
d(17);
d(0);
d(63);
d(0);
var $ = 0,
ja = 0,
ta = 0;
Ra = 0;
ia = 7;
this.a.a = "_encode_";
for (var h = a.data, E = a.height, T = a.width * 4, F, U = 0, N, v, m, w, z; U < E;) {
for (F = 0; F < T;) {
w = T * U + F;
for (z = 0; z < 64; z++)
v = z >> 3,
N = (z & 7) * 4,
m = w + v * T + N,
U + v >= E && (m -= T * (U + 1 + v - E)),
F + N >= T && (m -= F + N - T + 4),
N = h[m++],
v = h[m++],
m = h[m++],
Vd[z] = (G[N] + G[v + 256 >> 0] + G[m + 512 >> 0] >> 16) - 128,
Wd[z] = (G[N + 768 >> 0] + G[v + 1024 >> 0] + G[m + 1280 >> 0] >> 16) - 128,
Xd[z] = (G[N + 1280 >> 0] + G[v + 1536 >> 0] + G[m + 1792 >> 0] >> 16) - 128;
$ = e(Vd, n, $, K, Sa);
ja = e(Wd, p, ja, r, gb);
ta = e(Xd, p, ta, r, gb);
F += 32
}
U += 8
}
ia >= 0 && (h = [], h[1] = ia + 1, h[0] = (1 << ia + 1) - 1, c(h));
f(65497);
if (lf)
h = t.btoa(fb.join(""));
else {
E = fb.join("");
h = [];
for (F = T = 0; F < E.length; F++) {
for (U = E.charCodeAt(F); U > 255;)
h[T++] = U & 255,
U >>= 8;
h[T++] = U
}
ma(h) || i(Error("encodeByteArray takes an array as a parameter"));
if (!kf) {
kf = {};
for (E = 0; E < 65; E++)
kf[E] = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".charAt(E)
}
E = kf;
T = [];
for (F = 0; F < h.length; F += 3)
N = h[F],
v = (U = F + 1 < h.length) ? h[F + 1] : 0,
m = (w = F + 2 < h.length) ? h[F + 2] : 0,
z = N >> 2,
N = (N & 3) << 4 | v >> 4,
v = (v & 15) << 2 | m >> 6,
m & =63,
w || (m = 64, U || (v = 64)),
T.push(E[z], E[N], E[v], E[m]);
h = T.join("")
}
fb = [];
return "data:image/jpeg;base64," + h
};
a || (a = 50); (function() {
for (var a = String.fromCharCode, b = 0; b < 256; b++)
Sd[b] = a(b)
})();
K = b(Yd, Zd);
r = b(be, ce);
Sa = b($d, ae);
gb = b(de, ee); (function() {
for (var a = 1, b = 2, c = 1; c <= 15; c++) {
for (var d = a; d < b; d++)
Kb[32767 + d] = c,
$[32767 + d] = [],
$[32767 + d][1] = c,
$[32767 + d][0] = d;
for (d = -(b - 1); d <= -a; d++)
Kb[32767 + d] = c,
$[32767 + d] = [],
$[32767 + d][1] = c,
$[32767 + d][0] = b - 1 + d;
a <<= 1;
b <<= 1
}
})(); (function() {
for (var a = 0; a < 256; a++)
G[a] = 19595 * a,
G[a + 256 >> 0] = 38470 * a,
G[a + 512 >> 0] = 7471 * a + 32768,
G[a + 768 >> 0] = -11059 * a,
G[a + 1024 >> 0] = -21709 * a,
G[a + 1280 >> 0] = 32768 * a + 8421375,
G[a + 1536 >> 0] = -27439 * a,
G[a + 1792 >> 0] = -5329 * a
})();
g(a)
};
var Z = L("userfeedback.render.blackouts.shrink"),
of = function(a) {
if (a.width * a.height > 1E7)
return Z.info("ERROR: Image too big pixel-wise."),
"";
var b,
c;
try {
if (Z.info("Trying toDataURL()..."), b = a.toDataURL(), nf(b))
return b
} catch(d) {
Z.info("Exception: ", d)
}
try {
if (Z.info("Trying toDataURL(jpeg)..."), c = a.toDataURL("image/jpeg"), nf(c))
return c
} catch(f) {
Z.info("Exception: ", f)
}
if (jf)
try {
Z.info("Trying 5M limit, we are on Firefox and cannot use JpegEncoder...");
var e = b.length,
g = c.length,
h = Math.min(e, g);
if (h < 5E6)
return Z.info("fits: true (Firefox), " + h),
e < g ? b: c
} catch(l) {
Z.info("Exception: ", l)
} else
try {
Z.info("Trying JpegEncoder...");
var k = a.getContext("2d").getImageData(0, 0, a.width, a.height);
b = (new mf).a(k);
if (nf(b))
return b
} catch(n) {
Z.info("Exception: ", n)
}
Z.info("ERROR: Nothing fits.");
return ""
},
nf = function(a) {
var b = a.length;
Z.info("Checking if data URL fits: " + b + ", " + a.substr(0, 80) + "...");
a = b < 5E5;
Z.info("fits: " + a);
return a
};
var rf = function(a, b, c, d, f, e) {
pf.info("renderAnnotations");
f = pe(f);
if ("NONE" == ue)
pf.info("ERROR: Rendering Strategy is NONE"),
f("");
else {
try {
e.aa(b)
} catch(g) {
qf("preloadImage failed", g, f);
return
}
qe(function() {
return e.Ra(b)
}, function(g, l) {
pf.info("waitFor(isImageReady) done");
if (l)
return qf("isImageReady failed", l, f);
if (!g)
return qf("isImageReady timed out", "condition was never true", f);
try {
e.ka(b, new M(0, 0, a.width, a.height)),
d.length != 0 && (e.$(0, 0, a.width, a.height), e.Qa(d)),
e.$(0, 0, a.width, a.height),
Na(c, function(a) {
e.fillRect(a, "black")
}),
e.ja(function(a, b) {
return b ? qf("canvas.toDataURL failed", b, f) : e instanceof df ? (a = of(e.a), f(a)) : f(a)
})
} catch(k) {
return qf("Exception while rendering annotations", k, f)
}
})
}
},
pf = L("userfeedback.render.annotate"),
qf = function(a, b, c) {
u(b) ? pf.info(a + ": " + b) : pf.info(a, b);
c("")
};
var sf = function(a, b, c) {
var d = {
tileImage: function(b, c, d, e, f, g, r, Sa) {
a.ra(b, new M(c, d, e, f), g, r, Sa)
},
stretchImage: function(b, c, d, e, f) {
a.ka(b, new M(c, d, e, f))
},
drawRect: a.bb,
fillRect: function(b, c, d, e, f) {
a.fillRect(new M(b, c, d, e), f)
},
drawBorder: function(b, c, d, e, f) {
a.Za(new M(b[0], b[1], b[2], b[3]), Oe(c), Oe(d), new Hb(e[0], e[1], e[2], e[3]), f)
},
drawGradient: function(b, c, d, e, f, g, r, Sa, gb) {
a.ab(new M(b, c, d, e), new M(f, g, r, Sa), gb)
},
drawText: a.cb,
drawBuiltin: a.$a,
pushElipticalClip: function(b, c, d) {
a.gb(new M(b[0], b[1], b[2], b[3]), Oe(c), Oe(d))
},
pushClip: a.$,
popClip: a.fb,
popAllClips: a.eb
},
f = L("userfeedback.render.canvas.commands.run"),
e = b.length;
f.info("Rendering commands count: " + e);
var g = 0;
Na(b, function(b) {
try {
d[b.type].apply(a, b.args)
} catch(l) {
f.log(D, "Exception for command type: " + b.type, l)
} (b = Math.floor(10 * (g + 1) / e) - Math.floor(10 * g / e)) && c(b);
g++
})
};
var uf = function(a, b) {
var c = L("userfeedback.web.main.RenderFrameContent");
Ya(a, function(d, f) {
na(d) && Ya(b, function(b, g) {
b === d && (a[f] = tf(a, g, b, c))
})
})
},
tf = function(a, b, c, d) {
return function() {
var f = y();
d.info(b + " called");
try {
c.apply(a, arguments)
} catch(e) {
i(e)
} finally {
d.info(b + " finished in " + (y() - f) + "ms")
}
}
};
var wf = function(a, b) {
var c = Va(arguments, 1);
c.push(ad);
c = va(vf, a, c);
Xc(window, "unload", c)
},
vf = function(a, b) {
Na(b, function(b) {
try {
b.apply(a)
} catch(d) {
xf.info("Cleanup threw exception: " + b, d)
}
})
},
xf = L("userfeedback.util.cleanup");
var yf = function() {
this.a = y()
},
zf = new yf;
yf.prototype.set = function(a) {
this.a = a
};
yf.prototype.get = function() {
return this.a
};
var Af = function(a) {
this.a = a || "";
this.b = zf
};
s = Af.prototype;
s.ua = !0;
s.wa = !0;
s.mb = !0;
s.va = !1;
s.nb = !1;
var Bf = function(a) {
return a < 10 ? "0" + a: String(a)
},
Cf = function(a, b) {
var c = (a.h - b) / 1E3,
d = c.toFixed(3),
f = 0;
if (c < 1)
f = 2;
else
for (; c < 100;)
f++,
c *= 10;
for (; f-->0;)
d = " " + d;
return d
},
Df = function(a) {
Af.call(this, a)
};
B(Df, Af);
var Ef = function(a) {
this.e = a;
this.u = x(this.h, this);
this.a = new Df;
this.a.ua = !1;
this.a.wa = !0;
this.a.va = !0;
this.c = !1;
this.b = [];
this.d = !1
},
Ff = function(a, b) {
if (b != a.d) {
if (!b)
Na(a.b, function(a) {
this.e.send("log", a)
}, a),
a.b = [];
a.d = b
}
};
Ef.prototype.h = function(a) {
if (!this.c) {
this.c = !0;
try {
var b,
c = this.a,
d = [];
d.push(c.a, " ");
if (c.ua) {
var f = new Date(a.h);
d.push("[", Bf(f.getFullYear() - 2E3) + Bf(f.getMonth() + 1) + Bf(f.getDate()) + " " + Bf(f.getHours()) + ":" + Bf(f.getMinutes()) + ":" + Bf(f.getSeconds()) + "." + Bf(Math.floor(f.getMilliseconds() / 10)), "] ")
}
c.wa && d.push("[", Cf(a, c.b.get()), "s] ");
c.mb && d.push("[", a.i, "] ");
c.nb && d.push("[", a.c.name, "] ");
d.push(a.d, "\n");
c.va && a.b && d.push(a.a, "\n");
b = d.join("");
b = b.replace(/\n$/, "");
var e = [a.c.toString(), b];
this.d ? this.b.push(e) : this.e.send("log", e)
} finally {
this.c = !1
}
}
};
var Gf = function() {
var a;
a = document.location.href;
var b = a.indexOf("#");
a = b < 0 ? q: a.substr(b + 1);
this.d = zb(a && decodeURIComponent(a));
this.e = new he(this.d || {});
this.c = !1;
this.l = L("userfeedback.web.main.RenderFrameContent");
uf(this, {
checkCanvas_: this.ya,
connectXpc_: this.Da,
createCanvas_: this.Ea,
installCleanup_: this.Fa,
render_: this.X,
runAnnotateCommands_: this.za,
runBlackoutCommands_: this.Aa,
runRenderingCommands_: this.Ba,
sendScreenshot_: this.ea,
setCommands_: this.Ca
});
a = this.a = new Ef(this.e);
if (!0 != a.i) {
yb();
var b = xb,
c = a.u;
if (!b.a)
b.a = [];
b.a.push(c);
a.i = !0
}
Ff(this.a, !0)
},
Hf = function() {
var a = new Gf;
re(a, function(a) {
this.Fa();
ne(a, 100)
}, function(a) {
this.Ea(a)
}, function() {
this.Da()
})
};
s = Gf.prototype;
s.Fa = function() {
wf(this, function() {
this.p.S()
}, function() {
this.e.close()
})
};
s.Ea = function(a) {
ff(x(function(b, c) {
c ? u(c) ? this.l.info("createCanvas failed: " + c) : this.l.info("createCanvas failed", c) : this.p = b;
a()
}, this))
};
s.Da = function() {
this.e.c.images = {
fa: x(this.Rb, this),
ga: !1
};
this.e.c.render = {
fa: x(this.X, this),
ga: !1
};
this.e.w()
};
s.Rb = function(a) {
a = window.JSON ? window.JSON.parse(a) : zb(a);
this.p && Na(a, x(this.p.aa, this.p))
};
s.X = function(a) {
re(this, function(a) {
this.ya(a)
}, function(b) {
this.Ca(a);
this.e.send("progress", "");
ne(b)
}, function(a) {
this.e.send("progress", "");
this.Ba(a)
}, function(a) {
this.e.send("progress", "");
this.za(a)
}, function(a) {
this.e.send("progress", "");
this.Aa(a)
}, function() {
this.ea()
})
};
s.ya = function(a) {
Ff(this.a, !1);
this.p ? a() : If (this, "Canvas could not be created")
};
s.Ca = function(a) {
a = window.JSON ? window.JSON.parse(a) : zb(a);
this.i = a.render;
this.b = a.blackout;
this.h = a.highlight;
this.J = new Ib(a.width, a.height);
this.p.Y(this.J)
};
s.Ba = function(a) {
sf(this.p, this.i, x(function(a) {
this.e.send("progress", "" + a)
}, this));
this.p.ja(x(function(b, c) {
c ? If (this, c) : (this.Tb = b, a())
}, this))
};
s.za = function(a) {
Jf(this, this.b, this.h, x(function(b) {
b ? (this.Jb = b, a()) : If (this, "ERROR rendering blackouts + highlights")
}, this))
};
s.Aa = function(a) {
Jf(this, this.b, [], x(function(b) {
b ? (this.Lb = b, a()) : If (this, "ERROR rendering blackouts")
}, this))
};
var If = function(a, b) {
u(b) ? a.l.info(b) : a.l.info("ERROR", b);
a.c = !0;
a.ea()
};
Gf.prototype.ea = function() {
this.p && this.p.S();
this.e.send("done", se([this.Lb, this.Jb, this.c]))
};
var Kf = function(a) {
return Pa(a, function(a) {
return new M(a.left, a.top, a.width, a.height)
})
},
Jf = function(a, b, c, d) {
b = Kf(b);
c = Kf(c);
a.p.clear();
rf(a.J, a.Tb, b, c, d, a.p)
};
window != window.top && Hf();
})();
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment