Created
February 27, 2017 18:48
-
-
Save migaber/b81c64b8a94b49e88945ca12335524fe to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
(function() { | |
var k, aa = "function" == typeof Object.defineProperties ? Object.defineProperty : function(a, b, c) { | |
if (c.get || c.set) throw new TypeError("ES3 does not support getters and setters."); | |
a != Array.prototype && a != Object.prototype && (a[b] = c.value) | |
}, | |
ba = "undefined" != typeof window && window === this ? this : "undefined" != typeof global && null != global ? global : this, | |
ca = function(a, b) { | |
if (b) { | |
for (var c = ba, d = a.split("."), e = 0; e < d.length - 1; e++) { | |
var f = d[e]; | |
f in c || (c[f] = {}); | |
c = c[f] | |
} | |
d = d[d.length - 1]; | |
e = c[d]; | |
f = b(e); | |
f != e && null != f && aa(c, d, { | |
configurable: !0, | |
writable: !0, | |
value: f | |
}) | |
} | |
}, | |
da = function(a, b) { | |
return Object.prototype.hasOwnProperty.call(a, b) | |
}; | |
ca("Object.assign", function(a) { | |
return a ? a : function(a, c) { | |
for (var b = 1; b < arguments.length; b++) { | |
var e = arguments[b]; | |
if (e) | |
for (var f in e) da(e, f) && (a[f] = e[f]) | |
} | |
return a | |
} | |
}); | |
var ea = function() { | |
ea = function() {}; | |
ba.Symbol || (ba.Symbol = fa) | |
}, | |
ga = 0, | |
fa = function(a) { | |
return "jscomp_symbol_" + (a || "") + ga++ | |
}, | |
ja = function() { | |
ea(); | |
var a = ba.Symbol.iterator; | |
a || (a = ba.Symbol.iterator = ba.Symbol("iterator")); | |
"function" != typeof Array.prototype[a] && aa(Array.prototype, a, { | |
configurable: !0, | |
writable: !0, | |
value: function() { | |
return ia(this) | |
} | |
}); | |
ja = function() {} | |
}, | |
ia = function(a) { | |
var b = 0; | |
return la(function() { | |
return b < a.length ? { | |
done: !1, | |
value: a[b++] | |
} : { | |
done: !0 | |
} | |
}) | |
}, | |
la = function(a) { | |
ja(); | |
a = { | |
next: a | |
}; | |
a[ba.Symbol.iterator] = | |
function() { | |
return this | |
}; | |
return a | |
}, | |
ma = function(a) { | |
ja(); | |
var b = a[Symbol.iterator]; | |
return b ? b.call(a) : ia(a) | |
}; | |
ca("WeakMap", function(a) { | |
function b(a) { | |
da(a, d) || aa(a, d, { | |
value: {} | |
}) | |
} | |
function c(a) { | |
var c = Object[a]; | |
c && (Object[a] = function(a) { | |
b(a); | |
return c(a) | |
}) | |
} | |
if (function() { | |
if (!a || !Object.seal) return !1; | |
try { | |
var b = Object.seal({}), | |
c = Object.seal({}), | |
d = new a([ | |
[b, 2], | |
[c, 3] | |
]); | |
if (2 != d.get(b) || 3 != d.get(c)) return !1; | |
d["delete"](b); | |
d.set(c, 4); | |
return !d.has(b) && 4 == d.get(c) | |
} catch (m) { | |
return !1 | |
} | |
}()) return a; | |
var d = "$jscomp_hidden_" + Math.random().toString().substring(2); | |
c("freeze"); | |
c("preventExtensions"); | |
c("seal"); | |
var e = 0, | |
f = function(a) { | |
this.ta = | |
(e += Math.random() + 1).toString(); | |
if (a) { | |
ea(); | |
ja(); | |
a = ma(a); | |
for (var b; !(b = a.next()).done;) b = b.value, this.set(b[0], b[1]) | |
} | |
}; | |
f.prototype.set = function(a, c) { | |
b(a); | |
if (!da(a, d)) throw Error("WeakMap key fail: " + a); | |
a[d][this.ta] = c; | |
return this | |
}; | |
f.prototype.get = function(a) { | |
return da(a, d) ? a[d][this.ta] : void 0 | |
}; | |
f.prototype.has = function(a) { | |
return da(a, d) && da(a[d], this.ta) | |
}; | |
f.prototype["delete"] = function(a) { | |
return da(a, d) && da(a[d], this.ta) ? delete a[d][this.ta] : !1 | |
}; | |
return f | |
}); | |
ca("Map", function(a) { | |
if (function() { | |
if (!a || !a.prototype.entries || "function" != typeof Object.seal) return !1; | |
try { | |
var b = Object.seal({ | |
x: 4 | |
}), | |
c = new a(ma([ | |
[b, "s"] | |
])); | |
if ("s" != c.get(b) || 1 != c.size || c.get({ | |
x: 4 | |
}) || c.set({ | |
x: 4 | |
}, "t") != c || 2 != c.size) return !1; | |
var d = c.entries(), | |
e = d.next(); | |
if (e.done || e.value[0] != b || "s" != e.value[1]) return !1; | |
e = d.next(); | |
return e.done || 4 != e.value[0].x || "t" != e.value[1] || !d.next().done ? !1 : !0 | |
} catch (p) { | |
return !1 | |
} | |
}()) return a; | |
ea(); | |
ja(); | |
var b = new WeakMap, | |
c = function(a) { | |
this.nc = {}; | |
this.xa = f(); | |
this.size = | |
0; | |
if (a) { | |
a = ma(a); | |
for (var b; !(b = a.next()).done;) b = b.value, this.set(b[0], b[1]) | |
} | |
}; | |
c.prototype.set = function(a, b) { | |
var c = d(this, a); | |
c.list || (c.list = this.nc[c.id] = []); | |
c.qa ? c.qa.value = b : (c.qa = { | |
next: this.xa, | |
Mb: this.xa.Mb, | |
head: this.xa, | |
key: a, | |
value: b | |
}, c.list.push(c.qa), this.xa.Mb.next = c.qa, this.xa.Mb = c.qa, this.size++); | |
return this | |
}; | |
c.prototype["delete"] = function(a) { | |
a = d(this, a); | |
return a.qa && a.list ? (a.list.splice(a.index, 1), a.list.length || delete this.nc[a.id], a.qa.Mb.next = a.qa.next, a.qa.next.Mb = a.qa.Mb, a.qa.head = | |
null, this.size--, !0) : !1 | |
}; | |
c.prototype.clear = function() { | |
this.nc = {}; | |
this.xa = this.xa.Mb = f(); | |
this.size = 0 | |
}; | |
c.prototype.has = function(a) { | |
return !!d(this, a).qa | |
}; | |
c.prototype.get = function(a) { | |
return (a = d(this, a).qa) && a.value | |
}; | |
c.prototype.entries = function() { | |
return e(this, function(a) { | |
return [a.key, a.value] | |
}) | |
}; | |
c.prototype.keys = function() { | |
return e(this, function(a) { | |
return a.key | |
}) | |
}; | |
c.prototype.values = function() { | |
return e(this, function(a) { | |
return a.value | |
}) | |
}; | |
c.prototype.forEach = function(a, b) { | |
for (var c = this.entries(), d; !(d = | |
c.next()).done;) d = d.value, a.call(b, d[1], d[0], this) | |
}; | |
c.prototype[Symbol.iterator] = c.prototype.entries; | |
var d = function(a, c) { | |
var d; | |
d = c && typeof c; | |
"object" == d || "function" == d ? b.has(c) ? d = b.get(c) : (d = "" + ++g, b.set(c, d)) : d = "p_" + c; | |
var e = a.nc[d]; | |
if (e && da(a.nc, d)) | |
for (var f = 0; f < e.length; f++) { | |
var h = e[f]; | |
if (c !== c && h.key !== h.key || c === h.key) return { | |
id: d, | |
list: e, | |
index: f, | |
qa: h | |
} | |
} | |
return { | |
id: d, | |
list: e, | |
index: -1, | |
qa: void 0 | |
} | |
}, | |
e = function(a, b) { | |
var c = a.xa; | |
return la(function() { | |
if (c) { | |
for (; c.head != a.xa;) c = c.Mb; | |
for (; c.next != c.head;) return c = | |
c.next, { | |
done: !1, | |
value: b(c) | |
}; | |
c = null | |
} | |
return { | |
done: !0, | |
value: void 0 | |
} | |
}) | |
}, | |
f = function() { | |
var a = {}; | |
return a.Mb = a.next = a.head = a | |
}, | |
g = 0; | |
return c | |
}); | |
ca("Array.prototype.fill", function(a) { | |
return a ? a : function(a, c, d) { | |
var b = this.length || 0; | |
0 > c && (c = Math.max(0, b + c)); | |
if (null == d || d > b) d = b; | |
d = Number(d); | |
0 > d && (d = Math.max(0, b + d)); | |
for (c = Number(c || 0); c < d; c++) this[c] = a; | |
return this | |
} | |
}); | |
var na = function(a, b) { | |
ja(); | |
a instanceof String && (a += ""); | |
var c = 0, | |
d = { | |
next: function() { | |
if (c < a.length) { | |
var e = c++; | |
return { | |
value: b(e, a[e]), | |
done: !1 | |
} | |
} | |
d.next = function() { | |
return { | |
done: !0, | |
value: void 0 | |
} | |
}; | |
return d.next() | |
} | |
}; | |
d[Symbol.iterator] = function() { | |
return d | |
}; | |
return d | |
}; | |
ca("Array.prototype.values", function(a) { | |
return a ? a : function() { | |
return na(this, function(a, c) { | |
return c | |
}) | |
} | |
}); | |
ca("Set", function(a) { | |
if (function() { | |
if (!a || !a.prototype.entries || "function" != typeof Object.seal) return !1; | |
try { | |
var b = Object.seal({ | |
x: 4 | |
}), | |
d = new a(ma([b])); | |
if (!d.has(b) || 1 != d.size || d.add(b) != d || 1 != d.size || d.add({ | |
x: 4 | |
}) != d || 2 != d.size) return !1; | |
var e = d.entries(), | |
f = e.next(); | |
if (f.done || f.value[0] != b || f.value[1] != b) return !1; | |
f = e.next(); | |
return f.done || f.value[0] == b || 4 != f.value[0].x || f.value[1] != f.value[0] ? !1 : e.next().done | |
} catch (g) { | |
return !1 | |
} | |
}()) return a; | |
ea(); | |
ja(); | |
var b = function(a) { | |
this.R = new Map; | |
if (a) { | |
a = ma(a); | |
for (var b; !(b = | |
a.next()).done;) this.add(b.value) | |
} | |
this.size = this.R.size | |
}; | |
b.prototype.add = function(a) { | |
this.R.set(a, a); | |
this.size = this.R.size; | |
return this | |
}; | |
b.prototype["delete"] = function(a) { | |
a = this.R["delete"](a); | |
this.size = this.R.size; | |
return a | |
}; | |
b.prototype.clear = function() { | |
this.R.clear(); | |
this.size = 0 | |
}; | |
b.prototype.has = function(a) { | |
return this.R.has(a) | |
}; | |
b.prototype.entries = function() { | |
return this.R.entries() | |
}; | |
b.prototype.values = function() { | |
return this.R.values() | |
}; | |
b.prototype.keys = b.prototype.values; | |
b.prototype[Symbol.iterator] = | |
b.prototype.values; | |
b.prototype.forEach = function(a, b) { | |
var c = this; | |
this.R.forEach(function(d) { | |
return a.call(b, d, d, c) | |
}) | |
}; | |
return b | |
}); | |
var oa = oa || {}, | |
r = this, | |
t = function(a) { | |
return void 0 !== a | |
}, | |
pa = function(a, b) { | |
var c = a.split("."), | |
d = r; | |
c[0] in d || !d.execScript || d.execScript("var " + c[0]); | |
for (var e; c.length && (e = c.shift());) !c.length && t(b) ? d[e] = b : d = d[e] && Object.prototype.hasOwnProperty.call(d, e) ? d[e] : d[e] = {} | |
}, | |
qa = function(a, b) { | |
for (var c = a.split("."), d = b || r, e; e = c.shift();) | |
if (null != d[e]) d = d[e]; | |
else return null; | |
return d | |
}, | |
ra = function() {}, | |
sa = function(a) { | |
var b = typeof a; | |
if ("object" == b) | |
if (a) { | |
if (a instanceof Array) return "array"; | |
if (a instanceof Object) return b; | |
var c = Object.prototype.toString.call(a); | |
if ("[object Window]" == c) return "object"; | |
if ("[object Array]" == c || "number" == typeof a.length && "undefined" != typeof a.splice && "undefined" != typeof a.propertyIsEnumerable && !a.propertyIsEnumerable("splice")) return "array"; | |
if ("[object Function]" == c || "undefined" != typeof a.call && "undefined" != typeof a.propertyIsEnumerable && !a.propertyIsEnumerable("call")) return "function" | |
} else return "null"; | |
else if ("function" == b && "undefined" == typeof a.call) return "object"; | |
return b | |
}, | |
ta = function(a) { | |
return "array" == | |
sa(a) | |
}, | |
ua = function(a) { | |
var b = sa(a); | |
return "array" == b || "object" == b && "number" == typeof a.length | |
}, | |
u = function(a) { | |
return "string" == typeof a | |
}, | |
va = function(a) { | |
return "number" == typeof a | |
}, | |
wa = function(a) { | |
return "function" == sa(a) | |
}, | |
xa = function(a) { | |
var b = typeof a; | |
return "object" == b && null != a || "function" == b | |
}, | |
ya = "closure_uid_" + (1E9 * Math.random() >>> 0), | |
za = 0, | |
Ba = function(a, b, c) { | |
return a.call.apply(a.bind, arguments) | |
}, | |
Ca = function(a, b, c) { | |
if (!a) throw Error(); | |
if (2 < arguments.length) { | |
var d = Array.prototype.slice.call(arguments, 2); | |
return function() { | |
var c = | |
Array.prototype.slice.call(arguments); | |
Array.prototype.unshift.apply(c, d); | |
return a.apply(b, c) | |
} | |
} | |
return function() { | |
return a.apply(b, arguments) | |
} | |
}, | |
w = function(a, b, c) { | |
w = Function.prototype.bind && -1 != Function.prototype.bind.toString().indexOf("native code") ? Ba : Ca; | |
return w.apply(null, arguments) | |
}, | |
Da = function(a, b) { | |
var c = Array.prototype.slice.call(arguments, 1); | |
return function() { | |
var b = c.slice(); | |
b.push.apply(b, arguments); | |
return a.apply(this, b) | |
} | |
}, | |
Ea = Date.now || function() { | |
return +new Date | |
}, | |
x = function(a, b) { | |
function c() {} | |
c.prototype = b.prototype; | |
a.s = b.prototype; | |
a.prototype = new c; | |
a.prototype.constructor = a; | |
a.i = function(a, c, f) { | |
for (var d = Array(arguments.length - 2), e = 2; e < arguments.length; e++) d[e - 2] = arguments[e]; | |
return b.prototype[c].apply(a, d) | |
} | |
}; | |
var Fa = function(a) { | |
if (Error.captureStackTrace) Error.captureStackTrace(this, Fa); | |
else { | |
var b = Error().stack; | |
b && (this.stack = b) | |
} | |
a && (this.message = String(a)) | |
}; | |
x(Fa, Error); | |
Fa.prototype.name = "CustomError"; | |
var Ga; | |
var Ha = function(a, b) { | |
return 0 == a.lastIndexOf(b, 0) | |
}, | |
Ia = function(a) { | |
a = String(a.substr(a.length - 4, 4)).toLowerCase(); | |
return 0 == (".svg" < a ? -1 : ".svg" == a ? 0 : 1) | |
}, | |
Ja = function(a) { | |
return a.replace(/[\s\xa0]+/g, " ").replace(/^\s+|\s+$/g, "") | |
}, | |
Ka = function(a) { | |
return /^[\s\xa0]*$/.test(a) | |
}, | |
La = String.prototype.trim ? function(a) { | |
return a.trim() | |
} : function(a) { | |
return a.replace(/^[\s\xa0]+|[\s\xa0]+$/g, "") | |
}, | |
Ta = function(a) { | |
if (!Ma.test(a)) return a; - 1 != a.indexOf("&") && (a = a.replace(Na, "&")); - 1 != a.indexOf("<") && (a = a.replace(Oa, | |
"<")); - 1 != a.indexOf(">") && (a = a.replace(Pa, ">")); - 1 != a.indexOf('"') && (a = a.replace(Qa, """)); - 1 != a.indexOf("'") && (a = a.replace(Ra, "'")); - 1 != a.indexOf("\x00") && (a = a.replace(Sa, "�")); | |
return a | |
}, | |
Na = /&/g, | |
Oa = /</g, | |
Pa = />/g, | |
Qa = /"/g, | |
Ra = /'/g, | |
Sa = /\x00/g, | |
Ma = /[\x00&<>"']/, | |
y = function(a, b) { | |
return -1 != a.indexOf(b) | |
}, | |
Ua = String.prototype.repeat ? function(a, b) { | |
return a.repeat(b) | |
} : function(a, b) { | |
return Array(b + 1).join(a) | |
}, | |
Wa = function(a, b) { | |
for (var c = 0, d = La(String(a)).split("."), e = La(String(b)).split("."), f = Math.max(d.length, | |
e.length), g = 0; 0 == c && g < f; g++) { | |
var h = d[g] || "", | |
l = e[g] || ""; | |
do { | |
h = /(\d*)(\D*)(.*)/.exec(h) || ["", "", "", ""]; | |
l = /(\d*)(\D*)(.*)/.exec(l) || ["", "", "", ""]; | |
if (0 == h[0].length && 0 == l[0].length) break; | |
c = Va(0 == h[1].length ? 0 : parseInt(h[1], 10), 0 == l[1].length ? 0 : parseInt(l[1], 10)) || Va(0 == h[2].length, 0 == l[2].length) || Va(h[2], l[2]); | |
h = h[3]; | |
l = l[3] | |
} while (0 == c) | |
} | |
return c | |
}, | |
Va = function(a, b) { | |
return a < b ? -1 : a > b ? 1 : 0 | |
}, | |
Xa = function(a) { | |
return String(a).replace(/\-([a-z])/g, function(a, c) { | |
return c.toUpperCase() | |
}) | |
}, | |
Ya = function(a) { | |
var b = u(void 0) ? | |
"undefined".replace(/([-()\[\]{}+?*.$\^|,:#<!\\])/g, "\\$1").replace(/\x08/g, "\\x08") : "\\s"; | |
return a.replace(new RegExp("(^" + (b ? "|[" + b + "]+" : "") + ")([a-z])", "g"), function(a, b, e) { | |
return b + e.toUpperCase() | |
}) | |
}; | |
var Za = Array.prototype.indexOf ? function(a, b, c) { | |
return Array.prototype.indexOf.call(a, b, c) | |
} : function(a, b, c) { | |
c = null == c ? 0 : 0 > c ? Math.max(0, a.length + c) : c; | |
if (u(a)) return u(b) && 1 == b.length ? a.indexOf(b, c) : -1; | |
for (; c < a.length; c++) | |
if (c in a && a[c] === b) return c; | |
return -1 | |
}, | |
B = Array.prototype.forEach ? function(a, b, c) { | |
Array.prototype.forEach.call(a, b, c) | |
} : function(a, b, c) { | |
for (var d = a.length, e = u(a) ? a.split("") : a, f = 0; f < d; f++) f in e && b.call(c, e[f], f, a) | |
}, | |
$a = Array.prototype.filter ? function(a, b, c) { | |
return Array.prototype.filter.call(a, | |
b, c) | |
} : function(a, b, c) { | |
for (var d = a.length, e = [], f = 0, g = u(a) ? a.split("") : a, h = 0; h < d; h++) | |
if (h in g) { | |
var l = g[h]; | |
b.call(c, l, h, a) && (e[f++] = l) | |
} | |
return e | |
}, | |
ab = Array.prototype.map ? function(a, b, c) { | |
return Array.prototype.map.call(a, b, c) | |
} : function(a, b, c) { | |
for (var d = a.length, e = Array(d), f = u(a) ? a.split("") : a, g = 0; g < d; g++) g in f && (e[g] = b.call(c, f[g], g, a)); | |
return e | |
}, | |
bb = Array.prototype.some ? function(a, b, c) { | |
return Array.prototype.some.call(a, b, c) | |
} : function(a, b, c) { | |
for (var d = a.length, e = u(a) ? a.split("") : a, f = 0; f < d; f++) | |
if (f in | |
e && b.call(c, e[f], f, a)) return !0; | |
return !1 | |
}, | |
cb = function(a, b) { | |
var c; | |
a: { | |
c = a.length; | |
for (var d = u(a) ? a.split("") : a, e = 0; e < c; e++) | |
if (e in d && b.call(void 0, d[e], e, a)) { | |
c = e; | |
break a | |
} | |
c = -1 | |
} | |
return 0 > c ? null : u(a) ? a.charAt(c) : a[c] | |
}, | |
db = function(a, b) { | |
var c = Za(a, b), | |
d; | |
(d = 0 <= c) && Array.prototype.splice.call(a, c, 1); | |
return d | |
}, | |
eb = function(a) { | |
return Array.prototype.concat.apply(Array.prototype, arguments) | |
}, | |
fb = function(a) { | |
var b = a.length; | |
if (0 < b) { | |
for (var c = Array(b), d = 0; d < b; d++) c[d] = a[d]; | |
return c | |
} | |
return [] | |
}, | |
gb = function(a, b) { | |
for (var c = | |
1; c < arguments.length; c++) { | |
var d = arguments[c]; | |
if (ua(d)) { | |
var e = a.length || 0, | |
f = d.length || 0; | |
a.length = e + f; | |
for (var g = 0; g < f; g++) a[e + g] = d[g] | |
} else a.push(d) | |
} | |
}, | |
ib = function(a, b, c, d) { | |
Array.prototype.splice.apply(a, hb(arguments, 1)) | |
}, | |
hb = function(a, b, c) { | |
return 2 >= arguments.length ? Array.prototype.slice.call(a, b) : Array.prototype.slice.call(a, b, c) | |
}, | |
kb = function(a, b) { | |
a.sort(b || jb) | |
}, | |
lb = function(a, b) { | |
for (var c = Array(a.length), d = 0; d < a.length; d++) c[d] = { | |
index: d, | |
value: a[d] | |
}; | |
var e = b || jb; | |
kb(c, function(a, b) { | |
return e(a.value, b.value) || | |
a.index - b.index | |
}); | |
for (d = 0; d < a.length; d++) a[d] = c[d].value | |
}, | |
jb = function(a, b) { | |
return a > b ? 1 : a < b ? -1 : 0 | |
}; | |
var mb = function(a, b, c) { | |
for (var d in a) b.call(c, a[d], d, a) | |
}, | |
nb = function(a, b) { | |
for (var c in a) | |
if (b.call(void 0, a[c], c, a)) return !0; | |
return !1 | |
}, | |
ob = function(a) { | |
var b = [], | |
c = 0, | |
d; | |
for (d in a) b[c++] = a[d]; | |
return b | |
}, | |
pb = function(a) { | |
var b = [], | |
c = 0, | |
d; | |
for (d in a) b[c++] = d; | |
return b | |
}, | |
qb = function(a) { | |
for (var b in a) return !1; | |
return !0 | |
}, | |
rb = function(a, b) { | |
return null !== a && b in a ? a[b] : void 0 | |
}, | |
sb = "constructor hasOwnProperty isPrototypeOf propertyIsEnumerable toLocaleString toString valueOf".split(" "), | |
tb = function(a, b) { | |
for (var c, d, | |
e = 1; e < arguments.length; e++) { | |
d = arguments[e]; | |
for (c in d) a[c] = d[c]; | |
for (var f = 0; f < sb.length; f++) c = sb[f], Object.prototype.hasOwnProperty.call(d, c) && (a[c] = d[c]) | |
} | |
}; | |
var ub = { | |
area: !0, | |
base: !0, | |
br: !0, | |
col: !0, | |
command: !0, | |
embed: !0, | |
hr: !0, | |
img: !0, | |
input: !0, | |
keygen: !0, | |
link: !0, | |
meta: !0, | |
param: !0, | |
source: !0, | |
track: !0, | |
wbr: !0 | |
}; | |
var vb; | |
a: { | |
var wb = r.navigator; | |
if (wb) { | |
var xb = wb.userAgent; | |
if (xb) { | |
vb = xb; | |
break a | |
} | |
} | |
vb = "" | |
} | |
var C = function(a) { | |
return y(vb, a) | |
}; | |
var yb = function() { | |
return (C("Chrome") || C("CriOS")) && !C("Edge") | |
}; | |
var Ab = function() { | |
this.Oe = ""; | |
this.aj = zb | |
}; | |
Ab.prototype.rc = !0; | |
Ab.prototype.ec = function() { | |
return this.Oe | |
}; | |
Ab.prototype.toString = function() { | |
return "Const{" + this.Oe + "}" | |
}; | |
var Bb = function(a) { | |
return a instanceof Ab && a.constructor === Ab && a.aj === zb ? a.Oe : "type_error:Const" | |
}, | |
zb = {}, | |
D = function(a) { | |
var b = new Ab; | |
b.Oe = a; | |
return b | |
}; | |
D(""); | |
var Db = function() { | |
this.jg = ""; | |
this.Zi = Cb | |
}; | |
Db.prototype.rc = !0; | |
var Cb = {}; | |
Db.prototype.ec = function() { | |
return this.jg | |
}; | |
Db.prototype.ue = function(a) { | |
this.jg = a; | |
return this | |
}; | |
var Fb = (new Db).ue(""), | |
Gb = /^([-,."'%_!# a-zA-Z0-9]+|(?:rgb|hsl)a?\([0-9.%, ]+\))$/; | |
var Ib = function() { | |
this.kg = ""; | |
this.bj = Hb | |
}; | |
Ib.prototype.rc = !0; | |
Ib.prototype.ec = function() { | |
return this.kg | |
}; | |
Ib.prototype.Nf = !0; | |
Ib.prototype.Pc = function() { | |
return 1 | |
}; | |
var Jb = function(a) { | |
if (a instanceof Ib && a.constructor === Ib && a.bj === Hb) return a.kg; | |
sa(a); | |
return "type_error:TrustedResourceUrl" | |
}, | |
Kb = function(a) { | |
var b = new Ib; | |
b.kg = Bb(a); | |
return b | |
}, | |
Hb = {}; | |
var Mb = function() { | |
this.vc = ""; | |
this.$i = Lb | |
}; | |
Mb.prototype.rc = !0; | |
Mb.prototype.ec = function() { | |
return this.vc | |
}; | |
Mb.prototype.Nf = !0; | |
Mb.prototype.Pc = function() { | |
return 1 | |
}; | |
var Nb = function(a) { | |
if (a instanceof Mb && a.constructor === Mb && a.$i === Lb) return a.vc; | |
sa(a); | |
return "type_error:SafeUrl" | |
}, | |
Ob = /^(?:(?:https?|mailto|ftp):|[^&:/?#]*(?:[/?#]|$))/i, | |
Qb = function(a) { | |
if (a instanceof Mb) return a; | |
a = a.rc ? a.ec() : String(a); | |
Ob.test(a) || (a = "about:invalid#zClosurez"); | |
return Pb(a) | |
}, | |
Lb = {}, | |
Pb = function(a) { | |
var b = new Mb; | |
b.vc = a; | |
return b | |
}; | |
Pb("about:blank"); | |
var Sb = function() { | |
this.vc = ""; | |
this.Yi = Rb; | |
this.qh = null | |
}; | |
Sb.prototype.Nf = !0; | |
Sb.prototype.Pc = function() { | |
return this.qh | |
}; | |
Sb.prototype.rc = !0; | |
Sb.prototype.ec = function() { | |
return this.vc | |
}; | |
var Tb = function(a) { | |
if (a instanceof Sb && a.constructor === Sb && a.Yi === Rb) return a.vc; | |
sa(a); | |
return "type_error:SafeHtml" | |
}, | |
Vb = function(a) { | |
if (a instanceof Sb) return a; | |
var b = null; | |
a.Nf && (b = a.Pc()); | |
return Ub(Ta(a.rc ? a.ec() : String(a)), b) | |
}, | |
Wb = function(a) { | |
if (a instanceof Sb) return a; | |
a = Vb(a); | |
var b; | |
b = Tb(a).replace(/ /g, "  ").replace(/(\r\n|\r|\n)/g, "<br>"); | |
return Ub(b, a.Pc()) | |
}, | |
Xb = /^[a-zA-Z0-9-]+$/, | |
Yb = { | |
action: !0, | |
cite: !0, | |
data: !0, | |
formaction: !0, | |
href: !0, | |
manifest: !0, | |
poster: !0, | |
src: !0 | |
}, | |
Zb = { | |
APPLET: !0, | |
BASE: !0, | |
EMBED: !0, | |
IFRAME: !0, | |
LINK: !0, | |
MATH: !0, | |
META: !0, | |
OBJECT: !0, | |
SCRIPT: !0, | |
STYLE: !0, | |
SVG: !0, | |
TEMPLATE: !0 | |
}, | |
$b = function(a) { | |
var b = 0, | |
c = "", | |
d = function(a) { | |
ta(a) ? B(a, d) : (a = Vb(a), c += Tb(a), a = a.Pc(), 0 == b ? b = a : 0 != a && b != a && (b = null)) | |
}; | |
B(arguments, d); | |
return Ub(c, b) | |
}, | |
Rb = {}, | |
Ub = function(a, b) { | |
return (new Sb).ue(a, b) | |
}; | |
Sb.prototype.ue = function(a, b) { | |
this.vc = a; | |
this.qh = b; | |
return this | |
}; | |
var ac = Ub("<!DOCTYPE html>", 0); | |
Ub("", 0); | |
Ub("<br>", 0); | |
var E = function(a, b) { | |
this.x = t(a) ? a : 0; | |
this.y = t(b) ? b : 0 | |
}; | |
k = E.prototype; | |
k.clone = function() { | |
return new E(this.x, this.y) | |
}; | |
k.ceil = function() { | |
this.x = Math.ceil(this.x); | |
this.y = Math.ceil(this.y); | |
return this | |
}; | |
k.floor = function() { | |
this.x = Math.floor(this.x); | |
this.y = Math.floor(this.y); | |
return this | |
}; | |
k.round = function() { | |
this.x = Math.round(this.x); | |
this.y = Math.round(this.y); | |
return this | |
}; | |
k.translate = function(a, b) { | |
a instanceof E ? (this.x += a.x, this.y += a.y) : (this.x += Number(a), va(b) && (this.y += b)); | |
return this | |
}; | |
k.scale = function(a, b) { | |
var c = va(b) ? b : a; | |
this.x *= a; | |
this.y *= c; | |
return this | |
}; | |
var bc = function(a, b) { | |
this.width = a; | |
this.height = b | |
}; | |
k = bc.prototype; | |
k.clone = function() { | |
return new bc(this.width, this.height) | |
}; | |
k.ceil = function() { | |
this.width = Math.ceil(this.width); | |
this.height = Math.ceil(this.height); | |
return this | |
}; | |
k.floor = function() { | |
this.width = Math.floor(this.width); | |
this.height = Math.floor(this.height); | |
return this | |
}; | |
k.round = function() { | |
this.width = Math.round(this.width); | |
this.height = Math.round(this.height); | |
return this | |
}; | |
k.scale = function(a, b) { | |
var c = va(b) ? b : a; | |
this.width *= a; | |
this.height *= c; | |
return this | |
}; | |
var cc = function() { | |
return C("iPhone") && !C("iPod") && !C("iPad") | |
}; | |
var dc = function(a) { | |
dc[" "](a); | |
return a | |
}; | |
dc[" "] = ra; | |
var gc = function(a, b) { | |
var c = ec; | |
return Object.prototype.hasOwnProperty.call(c, a) ? c[a] : c[a] = b(a) | |
}; | |
var hc = C("Opera"), | |
F = C("Trident") || C("MSIE"), | |
ic = C("Edge"), | |
jc = C("Gecko") && !(y(vb.toLowerCase(), "webkit") && !C("Edge")) && !(C("Trident") || C("MSIE")) && !C("Edge"), | |
kc = y(vb.toLowerCase(), "webkit") && !C("Edge"), | |
lc = kc && C("Mobile"), | |
mc = C("Macintosh"), | |
nc = C("Linux") || C("CrOS"), | |
oc = cc(), | |
pc = function() { | |
var a = r.document; | |
return a ? a.documentMode : void 0 | |
}, | |
qc; | |
a: { | |
var rc = "", | |
sc = function() { | |
var a = vb; | |
if (jc) return /rv\:([^\);]+)(\)|;)/.exec(a); | |
if (ic) return /Edge\/([\d\.]+)/.exec(a); | |
if (F) return /\b(?:MSIE|rv)[: ]([^\);]+)(\)|;)/.exec(a); | |
if (kc) return /WebKit\/(\S+)/.exec(a); | |
if (hc) return /(?:Version)[ \/]?(\S+)/.exec(a) | |
}();sc && (rc = sc ? sc[1] : ""); | |
if (F) { | |
var tc = pc(); | |
if (null != tc && tc > parseFloat(rc)) { | |
qc = String(tc); | |
break a | |
} | |
} | |
qc = rc | |
} | |
var uc = qc, | |
ec = {}, | |
G = function(a) { | |
return gc(a, function() { | |
return 0 <= Wa(uc, a) | |
}) | |
}, | |
vc; | |
var wc = r.document; | |
vc = wc && F ? pc() || ("CSS1Compat" == wc.compatMode ? parseInt(uc, 10) : 5) : void 0; | |
var xc = !F || 9 <= Number(vc); | |
!jc && !F || F && 9 <= Number(vc) || jc && G("1.9.1"); | |
F && G("9"); | |
var yc = F || hc || kc; | |
var Ac = function(a) { | |
return a ? new zc(H(a)) : Ga || (Ga = new zc) | |
}, | |
Cc = function(a, b) { | |
mb(b, function(b, d) { | |
"style" == d ? a.style.cssText = b : "class" == d ? a.className = b : "for" == d ? a.htmlFor = b : Bc.hasOwnProperty(d) ? a.setAttribute(Bc[d], b) : Ha(d, "aria-") || Ha(d, "data-") ? a.setAttribute(d, b) : a[d] = b | |
}) | |
}, | |
Bc = { | |
cellpadding: "cellPadding", | |
cellspacing: "cellSpacing", | |
colspan: "colSpan", | |
frameborder: "frameBorder", | |
height: "height", | |
maxlength: "maxLength", | |
nonce: "nonce", | |
role: "role", | |
rowspan: "rowSpan", | |
type: "type", | |
usemap: "useMap", | |
valign: "vAlign", | |
width: "width" | |
}, | |
Ec = function(a) { | |
return Dc(a || window) | |
}, | |
Dc = function(a) { | |
a = a.document; | |
a = Fc(a) ? a.documentElement : a.body; | |
return new bc(a.clientWidth, a.clientHeight) | |
}, | |
Gc = function(a) { | |
var b = a.document, | |
c = 0; | |
if (b) { | |
var c = b.body, | |
d = b.documentElement; | |
if (!d || !c) return 0; | |
a = Dc(a).height; | |
if (Fc(b) && d.scrollHeight) c = d.scrollHeight != a ? d.scrollHeight : d.offsetHeight; | |
else { | |
var b = d.scrollHeight, | |
e = d.offsetHeight; | |
d.clientHeight != e && (b = c.scrollHeight, e = c.offsetHeight); | |
c = b > a ? b > e ? b : e : b < e ? b : e | |
} | |
} | |
return c | |
}, | |
Ic = function(a) { | |
var b = Hc(a); | |
a = a.parentWindow || | |
a.defaultView; | |
return F && G("10") && a.pageYOffset != b.scrollTop ? new E(b.scrollLeft, b.scrollTop) : new E(a.pageXOffset || b.scrollLeft, a.pageYOffset || b.scrollTop) | |
}, | |
Hc = function(a) { | |
return a.scrollingElement ? a.scrollingElement : !kc && Fc(a) ? a.documentElement : a.body || a.documentElement | |
}, | |
Jc = function(a) { | |
return a ? a.parentWindow || a.defaultView : window | |
}, | |
Lc = function(a, b, c) { | |
return Kc(document, arguments) | |
}, | |
Kc = function(a, b) { | |
var c = String(b[0]), | |
d = b[1]; | |
if (!xc && d && (d.name || d.type)) { | |
c = ["<", c]; | |
d.name && c.push(' name="', Ta(d.name), | |
'"'); | |
if (d.type) { | |
c.push(' type="', Ta(d.type), '"'); | |
var e = {}; | |
tb(e, d); | |
delete e.type; | |
d = e | |
} | |
c.push(">"); | |
c = c.join("") | |
} | |
c = a.createElement(c); | |
d && (u(d) ? c.className = d : ta(d) ? c.className = d.join(" ") : Cc(c, d)); | |
2 < b.length && Mc(a, c, b, 2); | |
return c | |
}, | |
Mc = function(a, b, c, d) { | |
function e(c) { | |
c && b.appendChild(u(c) ? a.createTextNode(c) : c) | |
} | |
for (; d < c.length; d++) { | |
var f = c[d]; | |
!ua(f) || xa(f) && 0 < f.nodeType ? e(f) : B(Nc(f) ? fb(f) : f, e) | |
} | |
}, | |
Fc = function(a) { | |
return "CSS1Compat" == a.compatMode | |
}, | |
Oc = function(a) { | |
for (var b; b = a.firstChild;) a.removeChild(b) | |
}, | |
Pc = | |
function(a) { | |
return a && a.parentNode ? a.parentNode.removeChild(a) : null | |
}, | |
Qc = function(a, b) { | |
var c = b.parentNode; | |
c && c.replaceChild(a, b) | |
}, | |
Sc = function(a) { | |
return t(a.firstElementChild) ? a.firstElementChild : Rc(a.firstChild) | |
}, | |
Rc = function(a) { | |
for (; a && 1 != a.nodeType;) a = a.nextSibling; | |
return a | |
}, | |
Tc = function(a) { | |
var b; | |
if (yc && !(F && G("9") && !G("10") && r.SVGElement && a instanceof r.SVGElement) && (b = a.parentElement)) return b; | |
b = a.parentNode; | |
return xa(b) && 1 == b.nodeType ? b : null | |
}, | |
Uc = function(a, b) { | |
if (!a || !b) return !1; | |
if (a.contains && 1 == | |
b.nodeType) return a == b || a.contains(b); | |
if ("undefined" != typeof a.compareDocumentPosition) return a == b || !!(a.compareDocumentPosition(b) & 16); | |
for (; b && a != b;) b = b.parentNode; | |
return b == a | |
}, | |
H = function(a) { | |
return 9 == a.nodeType ? a : a.ownerDocument || a.document | |
}, | |
Vc = function(a) { | |
return a.contentDocument || a.contentWindow.document | |
}, | |
Wc = function(a) { | |
try { | |
return a.contentWindow || (a.contentDocument ? Jc(a.contentDocument) : null) | |
} catch (b) {} | |
return null | |
}, | |
Nc = function(a) { | |
if (a && "number" == typeof a.length) { | |
if (xa(a)) return "function" == typeof a.item || | |
"string" == typeof a.item; | |
if (wa(a)) return "function" == typeof a.item | |
} | |
return !1 | |
}, | |
zc = function(a) { | |
this.J = a || r.document || document | |
}; | |
k = zc.prototype; | |
k.Z = Ac; | |
k.Di = function(a) { | |
this.J = a | |
}; | |
k.sb = function() { | |
return this.J | |
}; | |
k.F = function(a) { | |
return u(a) ? this.J.getElementById(a) : a | |
}; | |
k.getElementsByTagName = function(a, b) { | |
return (b || this.J).getElementsByTagName(String(a)) | |
}; | |
k.Yb = function(a, b, c) { | |
return Kc(this.J, arguments) | |
}; | |
k.createElement = function(a) { | |
return this.J.createElement(String(a)) | |
}; | |
k.createTextNode = function(a) { | |
return this.J.createTextNode(String(a)) | |
}; | |
k.getWindow = function() { | |
var a = this.J; | |
return a.parentWindow || a.defaultView | |
}; | |
k.appendChild = function(a, b) { | |
a.appendChild(b) | |
}; | |
k.append = function(a, b) { | |
Mc(H(a), a, arguments, 1) | |
}; | |
k.canHaveChildren = function(a) { | |
if (1 != a.nodeType) return !1; | |
switch (a.tagName) { | |
case "APPLET": | |
case "AREA": | |
case "BASE": | |
case "BR": | |
case "COL": | |
case "COMMAND": | |
case "EMBED": | |
case "FRAME": | |
case "HR": | |
case "IMG": | |
case "INPUT": | |
case "IFRAME": | |
case "ISINDEX": | |
case "KEYGEN": | |
case "LINK": | |
case "NOFRAMES": | |
case "NOSCRIPT": | |
case "META": | |
case "OBJECT": | |
case "PARAM": | |
case "SCRIPT": | |
case "SOURCE": | |
case "STYLE": | |
case "TRACK": | |
case "WBR": | |
return !1 | |
} | |
return !0 | |
}; | |
k.removeNode = Pc; | |
k.contains = Uc; | |
var Xc = function(a, b, c) { | |
this.Qj = c; | |
this.tj = a; | |
this.xk = b; | |
this.ye = 0; | |
this.xa = null | |
}; | |
Xc.prototype.get = function() { | |
var a; | |
0 < this.ye ? (this.ye--, a = this.xa, this.xa = a.next, a.next = null) : a = this.tj(); | |
return a | |
}; | |
Xc.prototype.put = function(a) { | |
this.xk(a); | |
this.ye < this.Qj && (this.ye++, a.next = this.xa, this.xa = a) | |
}; | |
var Yc = function(a) { | |
r.setTimeout(function() { | |
throw a; | |
}, 0) | |
}, | |
Zc, $c = function() { | |
var a = r.MessageChannel; | |
"undefined" === typeof a && "undefined" !== typeof window && window.postMessage && window.addEventListener && !C("Presto") && (a = function() { | |
var a = document.createElement("IFRAME"); | |
a.style.display = "none"; | |
a.src = ""; | |
document.documentElement.appendChild(a); | |
var b = a.contentWindow, | |
a = b.document; | |
a.open(); | |
a.write(""); | |
a.close(); | |
var c = "callImmediate" + Math.random(), | |
d = "file:" == b.location.protocol ? "*" : b.location.protocol + "//" + b.location.host, | |
a = w(function(a) { | |
if (("*" == d || a.origin == d) && a.data == c) this.port1.onmessage() | |
}, this); | |
b.addEventListener("message", a, !1); | |
this.port1 = {}; | |
this.port2 = { | |
postMessage: function() { | |
b.postMessage(c, d) | |
} | |
} | |
}); | |
if ("undefined" !== typeof a && !C("Trident") && !C("MSIE")) { | |
var b = new a, | |
c = {}, | |
d = c; | |
b.port1.onmessage = function() { | |
if (t(c.next)) { | |
c = c.next; | |
var a = c.fh; | |
c.fh = null; | |
a() | |
} | |
}; | |
return function(a) { | |
d.next = { | |
fh: a | |
}; | |
d = d.next; | |
b.port2.postMessage(0) | |
} | |
} | |
return "undefined" !== typeof document && "onreadystatechange" in document.createElement("SCRIPT") ? | |
function(a) { | |
var b = document.createElement("SCRIPT"); | |
b.onreadystatechange = function() { | |
b.onreadystatechange = null; | |
b.parentNode.removeChild(b); | |
b = null; | |
a(); | |
a = null | |
}; | |
document.documentElement.appendChild(b) | |
} : function(a) { | |
r.setTimeout(a, 0) | |
} | |
}; | |
var ad = function() { | |
this.Ze = this.cd = null | |
}, | |
cd = new Xc(function() { | |
return new bd | |
}, function(a) { | |
a.reset() | |
}, 100); | |
ad.prototype.add = function(a, b) { | |
var c = cd.get(); | |
c.set(a, b); | |
this.Ze ? this.Ze.next = c : this.cd = c; | |
this.Ze = c | |
}; | |
ad.prototype.remove = function() { | |
var a = null; | |
this.cd && (a = this.cd, this.cd = this.cd.next, this.cd || (this.Ze = null), a.next = null); | |
return a | |
}; | |
var bd = function() { | |
this.next = this.scope = this.zf = null | |
}; | |
bd.prototype.set = function(a, b) { | |
this.zf = a; | |
this.scope = b; | |
this.next = null | |
}; | |
bd.prototype.reset = function() { | |
this.next = this.scope = this.zf = null | |
}; | |
var hd = function(a, b) { | |
dd || ed(); | |
fd || (dd(), fd = !0); | |
gd.add(a, b) | |
}, | |
dd, ed = function() { | |
if (-1 != String(r.Promise).indexOf("[native code]")) { | |
var a = r.Promise.resolve(void 0); | |
dd = function() { | |
a.then(id) | |
} | |
} else dd = function() { | |
var a = id; | |
!wa(r.setImmediate) || r.Window && r.Window.prototype && !C("Edge") && r.Window.prototype.setImmediate == r.setImmediate ? (Zc || (Zc = $c()), Zc(a)) : r.setImmediate(a) | |
} | |
}, | |
fd = !1, | |
gd = new ad, | |
id = function() { | |
for (var a; a = gd.remove();) { | |
try { | |
a.zf.call(a.scope) | |
} catch (b) { | |
Yc(b) | |
} | |
cd.put(a) | |
} | |
fd = !1 | |
}; | |
var jd = function(a) { | |
a.prototype.then = a.prototype.then; | |
a.prototype.$goog_Thenable = !0 | |
}, | |
kd = function(a) { | |
if (!a) return !1; | |
try { | |
return !!a.$goog_Thenable | |
} catch (b) { | |
return !1 | |
} | |
}; | |
var md = function(a, b) { | |
this.ib = 0; | |
this.Pb = void 0; | |
this.Jc = this.Vb = this.K = null; | |
this.qe = this.yf = !1; | |
if (a != ra) try { | |
var c = this; | |
a.call(b, function(a) { | |
ld(c, 2, a) | |
}, function(a) { | |
ld(c, 3, a) | |
}) | |
} catch (d) { | |
ld(this, 3, d) | |
} | |
}, | |
nd = function() { | |
this.next = this.context = this.Vc = this.zd = this.mc = null; | |
this.Ud = !1 | |
}; | |
nd.prototype.reset = function() { | |
this.context = this.Vc = this.zd = this.mc = null; | |
this.Ud = !1 | |
}; | |
var od = new Xc(function() { | |
return new nd | |
}, function(a) { | |
a.reset() | |
}, 100), | |
pd = function(a, b, c) { | |
var d = od.get(); | |
d.zd = a; | |
d.Vc = b; | |
d.context = c; | |
return d | |
}, | |
qd = function(a) { | |
if (a instanceof md) return a; | |
var b = new md(ra); | |
ld(b, 2, a); | |
return b | |
}, | |
sd = function() { | |
var a, b, c = new md(function(c, e) { | |
a = c; | |
b = e | |
}); | |
return new rd(c, a, b) | |
}; | |
md.prototype.then = function(a, b, c) { | |
return td(this, wa(a) ? a : null, wa(b) ? b : null, c) | |
}; | |
jd(md); | |
md.prototype.cancel = function(a) { | |
0 == this.ib && hd(function() { | |
var b = new ud(a); | |
vd(this, b) | |
}, this) | |
}; | |
var vd = function(a, b) { | |
if (0 == a.ib) | |
if (a.K) { | |
var c = a.K; | |
if (c.Vb) { | |
for (var d = 0, e = null, f = null, g = c.Vb; g && (g.Ud || (d++, g.mc == a && (e = g), !(e && 1 < d))); g = g.next) e || (f = g); | |
e && (0 == c.ib && 1 == d ? vd(c, b) : (f ? (d = f, d.next == c.Jc && (c.Jc = d), d.next = d.next.next) : wd(c), xd(c, e, 3, b))) | |
} | |
a.K = null | |
} else ld(a, 3, b) | |
}, | |
zd = function(a, b) { | |
a.Vb || 2 != a.ib && 3 != a.ib || yd(a); | |
a.Jc ? a.Jc.next = b : a.Vb = b; | |
a.Jc = b | |
}, | |
td = function(a, b, c, d) { | |
var e = pd(null, null, null); | |
e.mc = new md(function(a, g) { | |
e.zd = b ? function(c) { | |
try { | |
var e = b.call(d, c); | |
a(e) | |
} catch (m) { | |
g(m) | |
} | |
} : a; | |
e.Vc = c ? function(b) { | |
try { | |
var e = | |
c.call(d, b); | |
!t(e) && b instanceof ud ? g(b) : a(e) | |
} catch (m) { | |
g(m) | |
} | |
} : g | |
}); | |
e.mc.K = a; | |
zd(a, e); | |
return e.mc | |
}; | |
md.prototype.Ik = function(a) { | |
this.ib = 0; | |
ld(this, 2, a) | |
}; | |
md.prototype.Jk = function(a) { | |
this.ib = 0; | |
ld(this, 3, a) | |
}; | |
var ld = function(a, b, c) { | |
if (0 == a.ib) { | |
a === c && (b = 3, c = new TypeError("Promise cannot resolve to itself")); | |
a.ib = 1; | |
var d; | |
a: { | |
var e = c, | |
f = a.Ik, | |
g = a.Jk; | |
if (e instanceof md) zd(e, pd(f || ra, g || null, a)), | |
d = !0; | |
else if (kd(e)) e.then(f, g, a), | |
d = !0; | |
else { | |
if (xa(e)) try { | |
var h = e.then; | |
if (wa(h)) { | |
Ad(e, h, f, g, a); | |
d = !0; | |
break a | |
} | |
} catch (l) { | |
g.call(a, l); | |
d = !0; | |
break a | |
} | |
d = !1 | |
} | |
} | |
d || (a.Pb = c, a.ib = b, a.K = null, yd(a), 3 != b || c instanceof ud || Bd(a, c)) | |
} | |
}, | |
Ad = function(a, b, c, d, e) { | |
var f = !1, | |
g = function(a) { | |
f || (f = !0, c.call(e, a)) | |
}, | |
h = function(a) { | |
f || (f = !0, d.call(e, a)) | |
}; | |
try { | |
b.call(a, g, h) | |
} catch (l) { | |
h(l) | |
} | |
}, | |
yd = function(a) { | |
a.yf || (a.yf = !0, hd(a.Aj, a)) | |
}, | |
wd = function(a) { | |
var b = null; | |
a.Vb && (b = a.Vb, a.Vb = b.next, b.next = null); | |
a.Vb || (a.Jc = null); | |
return b | |
}; | |
md.prototype.Aj = function() { | |
for (var a; a = wd(this);) xd(this, a, this.ib, this.Pb); | |
this.yf = !1 | |
}; | |
var xd = function(a, b, c, d) { | |
if (3 == c && b.Vc && !b.Ud) | |
for (; a && a.qe; a = a.K) a.qe = !1; | |
if (b.mc) b.mc.K = null, Cd(b, c, d); | |
else try { | |
b.Ud ? b.zd.call(b.context) : Cd(b, c, d) | |
} catch (e) { | |
Dd.call(null, e) | |
} | |
od.put(b) | |
}, | |
Cd = function(a, b, c) { | |
2 == b ? a.zd.call(a.context, c) : a.Vc && a.Vc.call(a.context, c) | |
}, | |
Bd = function(a, b) { | |
a.qe = !0; | |
hd(function() { | |
a.qe && Dd.call(null, b) | |
}) | |
}, | |
Dd = Yc, | |
ud = function(a) { | |
Fa.call(this, a) | |
}; | |
x(ud, Fa); | |
ud.prototype.name = "cancel"; | |
var rd = function(a, b, c) { | |
this.tk = a; | |
this.resolve = b; | |
this.reject = c | |
}; | |
var Ed = "StopIteration" in r ? r.StopIteration : { | |
message: "StopIteration", | |
stack: "" | |
}, | |
Jd = function() {}; | |
Jd.prototype.next = function() { | |
throw Ed; | |
}; | |
Jd.prototype.Rd = function() { | |
return this | |
}; | |
var Kd = function(a) { | |
if (a instanceof Jd) return a; | |
if ("function" == typeof a.Rd) return a.Rd(!1); | |
if (ua(a)) { | |
var b = 0, | |
c = new Jd; | |
c.next = function() { | |
for (;;) { | |
if (b >= a.length) throw Ed; | |
if (b in a) return a[b++]; | |
b++ | |
} | |
}; | |
return c | |
} | |
throw Error("Not implemented"); | |
}, | |
Ld = function(a, b, c) { | |
if (ua(a)) try { | |
B(a, b, c) | |
} catch (d) { | |
if (d !== Ed) throw d; | |
} else { | |
a = Kd(a); | |
try { | |
for (;;) b.call(c, a.next(), void 0, a) | |
} catch (d) { | |
if (d !== Ed) throw d; | |
} | |
} | |
}, | |
Md = function(a, b) { | |
var c = Kd(a), | |
d = new Jd; | |
d.next = function() { | |
for (;;) { | |
var a = c.next(); | |
if (b.call(void 0, a, void 0, c)) return a | |
} | |
}; | |
return d | |
}, | |
Nd = function(a, b) { | |
var c = Kd(a), | |
d = new Jd; | |
d.next = function() { | |
var a = c.next(); | |
return b.call(void 0, a, void 0, c) | |
}; | |
return d | |
}, | |
Od = function(a) { | |
if (ua(a)) return fb(a); | |
a = Kd(a); | |
var b = []; | |
Ld(a, function(a) { | |
b.push(a) | |
}); | |
return b | |
}; | |
var Pd = function(a, b) { | |
this.R = {}; | |
this.L = []; | |
this.Nd = this.P = 0; | |
var c = arguments.length; | |
if (1 < c) { | |
if (c % 2) throw Error("Uneven number of arguments"); | |
for (var d = 0; d < c; d += 2) this.set(arguments[d], arguments[d + 1]) | |
} else a && this.addAll(a) | |
}; | |
k = Pd.prototype; | |
k.qc = function() { | |
return this.P | |
}; | |
k.La = function() { | |
Qd(this); | |
for (var a = [], b = 0; b < this.L.length; b++) a.push(this.R[this.L[b]]); | |
return a | |
}; | |
k.Eb = function() { | |
Qd(this); | |
return this.L.concat() | |
}; | |
k.jd = function(a) { | |
return Rd(this.R, a) | |
}; | |
k.clear = function() { | |
this.R = {}; | |
this.Nd = this.P = this.L.length = 0 | |
}; | |
k.remove = function(a) { | |
return Rd(this.R, a) ? (delete this.R[a], this.P--, this.Nd++, this.L.length > 2 * this.P && Qd(this), !0) : !1 | |
}; | |
var Qd = function(a) { | |
if (a.P != a.L.length) { | |
for (var b = 0, c = 0; b < a.L.length;) { | |
var d = a.L[b]; | |
Rd(a.R, d) && (a.L[c++] = d); | |
b++ | |
} | |
a.L.length = c | |
} | |
if (a.P != a.L.length) { | |
for (var e = {}, c = b = 0; b < a.L.length;) d = a.L[b], Rd(e, d) || (a.L[c++] = d, e[d] = 1), b++; | |
a.L.length = c | |
} | |
}; | |
k = Pd.prototype; | |
k.get = function(a, b) { | |
return Rd(this.R, a) ? this.R[a] : b | |
}; | |
k.set = function(a, b) { | |
Rd(this.R, a) || (this.P++, this.L.push(a), this.Nd++); | |
this.R[a] = b | |
}; | |
k.addAll = function(a) { | |
var b; | |
a instanceof Pd ? (b = a.Eb(), a = a.La()) : (b = pb(a), a = ob(a)); | |
for (var c = 0; c < b.length; c++) this.set(b[c], a[c]) | |
}; | |
k.forEach = function(a, b) { | |
for (var c = this.Eb(), d = 0; d < c.length; d++) { | |
var e = c[d], | |
f = this.get(e); | |
a.call(b, f, e, this) | |
} | |
}; | |
k.clone = function() { | |
return new Pd(this) | |
}; | |
var Sd = function(a) { | |
Qd(a); | |
for (var b = {}, c = 0; c < a.L.length; c++) { | |
var d = a.L[c]; | |
b[d] = a.R[d] | |
} | |
return b | |
}; | |
Pd.prototype.Rd = function(a) { | |
Qd(this); | |
var b = 0, | |
c = this.Nd, | |
d = this, | |
e = new Jd; | |
e.next = function() { | |
if (c != d.Nd) throw Error("The map has changed since the iterator was created"); | |
if (b >= d.L.length) throw Ed; | |
var e = d.L[b++]; | |
return a ? e : d.R[e] | |
}; | |
return e | |
}; | |
var Rd = function(a, b) { | |
return Object.prototype.hasOwnProperty.call(a, b) | |
}; | |
var Td = function(a) { | |
if (a.La && "function" == typeof a.La) return a.La(); | |
if (u(a)) return a.split(""); | |
if (ua(a)) { | |
for (var b = [], c = a.length, d = 0; d < c; d++) b.push(a[d]); | |
return b | |
} | |
return ob(a) | |
}, | |
Ud = function(a, b, c) { | |
if (a.forEach && "function" == typeof a.forEach) a.forEach(b, c); | |
else if (ua(a) || u(a)) B(a, b, c); | |
else { | |
var d; | |
if (a.Eb && "function" == typeof a.Eb) d = a.Eb(); | |
else if (a.La && "function" == typeof a.La) d = void 0; | |
else if (ua(a) || u(a)) { | |
d = []; | |
for (var e = a.length, f = 0; f < e; f++) d.push(f) | |
} else d = pb(a); | |
for (var e = Td(a), f = e.length, g = 0; g < f; g++) b.call(c, | |
e[g], d && d[g], a) | |
} | |
}; | |
var Vd = /^(?:([^:/?#.]+):)?(?:\/\/(?:([^/?#]*)@)?([^/#?]*?)(?::([0-9]+))?(?=[/#?]|$))?([^?#]+)?(?:\?([^#]*))?(?:#([\s\S]*))?$/, | |
Wd = function(a, b) { | |
if (a) | |
for (var c = a.split("&"), d = 0; d < c.length; d++) { | |
var e = c[d].indexOf("="), | |
f, g = null; | |
0 <= e ? (f = c[d].substring(0, e), g = c[d].substring(e + 1)) : f = c[d]; | |
b(f, g ? decodeURIComponent(g.replace(/\+/g, " ")) : "") | |
} | |
}; | |
var Xd = function(a, b) { | |
this.ob = this.Bc = this.hc = ""; | |
this.Xc = null; | |
this.qd = this.tb = ""; | |
this.Sa = this.Pj = !1; | |
var c; | |
if (a instanceof Xd) this.Sa = t(b) ? b : a.Sa, Yd(this, a.hc), c = a.Bc, I(this), this.Bc = c, c = a.ob, I(this), this.ob = c, Zd(this, a.Xc), c = a.tb, I(this), this.tb = c, $d(this, a.fb.clone()), ae(this, a.qd); | |
else if (a && (c = String(a).match(Vd))) { | |
this.Sa = !!b; | |
Yd(this, c[1] || "", !0); | |
var d = c[2] || ""; | |
I(this); | |
this.Bc = be(d); | |
d = c[3] || ""; | |
I(this); | |
this.ob = be(d, !0); | |
Zd(this, c[4]); | |
d = c[5] || ""; | |
I(this); | |
this.tb = be(d, !0); | |
$d(this, c[6] || "", !0); | |
ae(this, | |
c[7] || "", !0) | |
} else this.Sa = !!b, this.fb = new ce(null, 0, this.Sa) | |
}; | |
Xd.prototype.toString = function() { | |
var a = [], | |
b = this.hc; | |
b && a.push(de(b, ee, !0), ":"); | |
var c = this.ob; | |
if (c || "file" == b) a.push("//"), (b = this.Bc) && a.push(de(b, ee, !0), "@"), a.push(encodeURIComponent(String(c)).replace(/%25([0-9a-fA-F]{2})/g, "%$1")), c = this.Xc, null != c && a.push(":", String(c)); | |
if (c = this.tb) this.ob && "/" != c.charAt(0) && a.push("/"), a.push(de(c, "/" == c.charAt(0) ? fe : ge, !0)); | |
(c = this.fb.toString()) && a.push("?", c); | |
(c = this.qd) && a.push("#", de(c, he)); | |
return a.join("") | |
}; | |
Xd.prototype.resolve = function(a) { | |
var b = this.clone(), | |
c = !!a.hc; | |
c ? Yd(b, a.hc) : c = !!a.Bc; | |
if (c) { | |
var d = a.Bc; | |
I(b); | |
b.Bc = d | |
} else c = !!a.ob; | |
c ? (d = a.ob, I(b), b.ob = d) : c = null != a.Xc; | |
d = a.tb; | |
if (c) Zd(b, a.Xc); | |
else if (c = !!a.tb) { | |
if ("/" != d.charAt(0)) | |
if (this.ob && !this.tb) d = "/" + d; | |
else { | |
var e = b.tb.lastIndexOf("/"); - 1 != e && (d = b.tb.substr(0, e + 1) + d) | |
} | |
e = d; | |
if (".." == e || "." == e) d = ""; | |
else if (y(e, "./") || y(e, "/.")) { | |
for (var d = Ha(e, "/"), e = e.split("/"), f = [], g = 0; g < e.length;) { | |
var h = e[g++]; | |
"." == h ? d && g == e.length && f.push("") : ".." == h ? ((1 < f.length || | |
1 == f.length && "" != f[0]) && f.pop(), d && g == e.length && f.push("")) : (f.push(h), d = !0) | |
} | |
d = f.join("/") | |
} else d = e | |
} | |
c ? (I(b), b.tb = d) : c = "" !== a.fb.toString(); | |
c ? $d(b, a.fb.clone()) : c = !!a.qd; | |
c && ae(b, a.qd); | |
return b | |
}; | |
Xd.prototype.clone = function() { | |
return new Xd(this) | |
}; | |
var Yd = function(a, b, c) { | |
I(a); | |
a.hc = c ? be(b, !0) : b; | |
a.hc && (a.hc = a.hc.replace(/:$/, "")) | |
}, | |
Zd = function(a, b) { | |
I(a); | |
if (b) { | |
b = Number(b); | |
if (isNaN(b) || 0 > b) throw Error("Bad port number " + b); | |
a.Xc = b | |
} else a.Xc = null | |
}, | |
$d = function(a, b, c) { | |
I(a); | |
b instanceof ce ? (a.fb = b, a.fb.vg(a.Sa)) : (c || (b = de(b, ie)), a.fb = new ce(b, 0, a.Sa)) | |
}, | |
ae = function(a, b, c) { | |
I(a); | |
a.qd = c ? be(b) : b | |
}, | |
I = function(a) { | |
if (a.Pj) throw Error("Tried to modify a read-only Uri"); | |
}; | |
Xd.prototype.vg = function(a) { | |
this.Sa = a; | |
this.fb && this.fb.vg(a); | |
return this | |
}; | |
var je = function(a) { | |
return a instanceof Xd ? a.clone() : new Xd(a, void 0) | |
}, | |
be = function(a, b) { | |
return a ? b ? decodeURI(a.replace(/%25/g, "%2525")) : decodeURIComponent(a) : "" | |
}, | |
de = function(a, b, c) { | |
return u(a) ? (a = encodeURI(a).replace(b, ke), c && (a = a.replace(/%25([0-9a-fA-F]{2})/g, "%$1")), a) : null | |
}, | |
ke = function(a) { | |
a = a.charCodeAt(0); | |
return "%" + (a >> 4 & 15).toString(16) + (a & 15).toString(16) | |
}, | |
ee = /[#\/\?@]/g, | |
ge = /[\#\?:]/g, | |
fe = /[\#\?]/g, | |
ie = /[\#\?@]/g, | |
he = /#/g, | |
ce = function(a, b, c) { | |
this.P = this.U = null; | |
this.Ja = a || null; | |
this.Sa = !!c | |
}, | |
le = function(a) { | |
a.U || | |
(a.U = new Pd, a.P = 0, a.Ja && Wd(a.Ja, function(b, c) { | |
a.add(decodeURIComponent(b.replace(/\+/g, " ")), c) | |
})) | |
}; | |
k = ce.prototype; | |
k.qc = function() { | |
le(this); | |
return this.P | |
}; | |
k.add = function(a, b) { | |
le(this); | |
this.Ja = null; | |
a = me(this, a); | |
var c = this.U.get(a); | |
c || this.U.set(a, c = []); | |
c.push(b); | |
this.P += 1; | |
return this | |
}; | |
k.remove = function(a) { | |
le(this); | |
a = me(this, a); | |
return this.U.jd(a) ? (this.Ja = null, this.P -= this.U.get(a).length, this.U.remove(a)) : !1 | |
}; | |
k.clear = function() { | |
this.U = this.Ja = null; | |
this.P = 0 | |
}; | |
k.jd = function(a) { | |
le(this); | |
a = me(this, a); | |
return this.U.jd(a) | |
}; | |
k.Eb = function() { | |
le(this); | |
for (var a = this.U.La(), b = this.U.Eb(), c = [], d = 0; d < b.length; d++) | |
for (var e = a[d], f = 0; f < e.length; f++) c.push(b[d]); | |
return c | |
}; | |
k.La = function(a) { | |
le(this); | |
var b = []; | |
if (u(a)) this.jd(a) && (b = eb(b, this.U.get(me(this, a)))); | |
else { | |
a = this.U.La(); | |
for (var c = 0; c < a.length; c++) b = eb(b, a[c]) | |
} | |
return b | |
}; | |
k.set = function(a, b) { | |
le(this); | |
this.Ja = null; | |
a = me(this, a); | |
this.jd(a) && (this.P -= this.U.get(a).length); | |
this.U.set(a, [b]); | |
this.P += 1; | |
return this | |
}; | |
k.get = function(a, b) { | |
var c = a ? this.La(a) : []; | |
return 0 < c.length ? String(c[0]) : b | |
}; | |
k.toString = function() { | |
if (this.Ja) return this.Ja; | |
if (!this.U) return ""; | |
for (var a = [], b = this.U.Eb(), c = 0; c < b.length; c++) | |
for (var d = b[c], e = encodeURIComponent(String(d)), d = this.La(d), f = 0; f < d.length; f++) { | |
var g = e; | |
"" !== d[f] && (g += "=" + encodeURIComponent(String(d[f]))); | |
a.push(g) | |
} | |
return this.Ja = a.join("&") | |
}; | |
k.clone = function() { | |
var a = new ce; | |
a.Ja = this.Ja; | |
this.U && (a.U = this.U.clone(), a.P = this.P); | |
return a | |
}; | |
var me = function(a, b) { | |
var c = String(b); | |
a.Sa && (c = c.toLowerCase()); | |
return c | |
}; | |
ce.prototype.vg = function(a) { | |
a && !this.Sa && (le(this), this.Ja = null, this.U.forEach(function(a, c) { | |
var b = c.toLowerCase(); | |
c != b && (this.remove(c), this.remove(b), 0 < a.length && (this.Ja = null, this.U.set(me(this, b), fb(a)), this.P += a.length)) | |
}, this)); | |
this.Sa = a | |
}; | |
ce.prototype.extend = function(a) { | |
for (var b = 0; b < arguments.length; b++) Ud(arguments[b], function(a, b) { | |
this.add(b, a) | |
}, this) | |
}; | |
var ne = function(a) { | |
var b; | |
b = Error(); | |
if (Error.captureStackTrace) Error.captureStackTrace(b, a || ne), b = String(b.stack); | |
else { | |
try { | |
throw b; | |
} catch (c) { | |
b = c | |
} | |
b = (b = b.stack) ? String(b) : null | |
} | |
b || (b = oe(a || arguments.callee.caller, [])); | |
return b | |
}, | |
oe = function(a, b) { | |
var c = []; | |
if (0 <= Za(b, a)) c.push("[...circular reference...]"); | |
else if (a && 50 > b.length) { | |
c.push(pe(a) + "("); | |
for (var d = a.arguments, e = 0; d && e < d.length; e++) { | |
0 < e && c.push(", "); | |
var f; | |
f = d[e]; | |
switch (typeof f) { | |
case "object": | |
f = f ? "object" : "null"; | |
break; | |
case "string": | |
break; | |
case "number": | |
f = | |
String(f); | |
break; | |
case "boolean": | |
f = f ? "true" : "false"; | |
break; | |
case "function": | |
f = (f = pe(f)) ? f : "[fn]"; | |
break; | |
default: | |
f = typeof f | |
} | |
40 < f.length && (f = f.substr(0, 40) + "..."); | |
c.push(f) | |
} | |
b.push(a); | |
c.push(")\n"); | |
try { | |
c.push(oe(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("") | |
}, | |
pe = function(a) { | |
if (qe[a]) return qe[a]; | |
a = String(a); | |
if (!qe[a]) { | |
var b = /function ([^\(]+)/.exec(a); | |
qe[a] = b ? b[1] : "[Anonymous]" | |
} | |
return qe[a] | |
}, | |
qe = {}; | |
var re = /^[\w+/]+[=]{0,2}$/; | |
pa("userfeedback.api.startFeedback", function(a, b, c) { | |
a.timeOfStartCall = (new Date).getTime(); | |
var d = c || r, | |
e = d.document, | |
f; | |
a: { | |
if ((f = (d || r).document.querySelector("script[nonce]")) && (f = f.nonce || f.getAttribute("nonce")) && re.test(f)) break a;f = void 0 | |
} | |
f && (a.nonce = f); | |
if ("help" == a.flow) { | |
var g = qa("document.location.href", d); | |
!a.helpCenterContext && g && (a.helpCenterContext = g.substring(0, 1200)); | |
g = !0; | |
if (b && JSON && JSON.stringify) { | |
var h = JSON.stringify(b); | |
(g = 1200 >= h.length) && (a.psdJson = h) | |
} | |
g || (b = { | |
invalidPsd: !0 | |
}) | |
} | |
b = [a, b, c]; | |
d.GOOGLE_FEEDBACK_START_ARGUMENTS = b; | |
c = a.serverUri || "//www.google.com/tools/feedback"; | |
if (g = d.GOOGLE_FEEDBACK_START) g.apply(d, b); | |
else { | |
var d = c + "/load.js?", | |
l; | |
for (l in a) b = a[l], null != b && !xa(b) && (d += encodeURIComponent(l) + "=" + encodeURIComponent(b) + "&"); | |
a = e.createElement("script"); | |
f && a.setAttribute("nonce", f); | |
a.src = d; | |
e.body.appendChild(a) | |
} | |
}); | |
var te = function(a) { | |
this.Ia = {}; | |
if (a) | |
for (var b = 0; b < a.length; b++) this.Ia[se(a[b])] = null | |
}, | |
ue = {}, | |
se = function(a) { | |
return a in ue || 32 == String(a).charCodeAt(0) ? " " + a : a | |
}, | |
ve = function(a) { | |
return 32 == a.charCodeAt(0) ? a.substr(1) : a | |
}; | |
k = te.prototype; | |
k.add = function(a) { | |
this.Ia[se(a)] = null | |
}; | |
k.clear = function() { | |
this.Ia = {} | |
}; | |
k.clone = function() { | |
var a = new te, | |
b; | |
for (b in this.Ia) a.Ia[b] = null; | |
return a | |
}; | |
k.contains = function(a) { | |
return se(a) in this.Ia | |
}; | |
k.forEach = function(a, b) { | |
for (var c in this.Ia) a.call(b, ve(c), void 0, this) | |
}; | |
k.qc = Object.keys ? function() { | |
return Object.keys(this.Ia).length | |
} : function() { | |
var a = 0, | |
b; | |
for (b in this.Ia) a++; | |
return a | |
}; | |
k.La = Object.keys ? function() { | |
return Object.keys(this.Ia).map(ve, this) | |
} : function() { | |
var a = [], | |
b; | |
for (b in this.Ia) a.push(ve(b)); | |
return a | |
}; | |
k.remove = function(a) { | |
a = se(a); | |
return a in this.Ia ? (delete this.Ia[a], !0) : !1 | |
}; | |
k.Rd = function() { | |
return Kd(this.La()) | |
}; | |
var we, xe = /^(https?:)|(data:image\/)/, | |
ye = new te("head HEAD link LINK style STYLE meta META defs DEFS script SCRIPT html HTML base BASE colgroup COLGROUP wbr WBR".split(" ")), | |
ze = new te("svg SVG g G br BR".split(" ")), | |
Ae = function(a) { | |
return a.replace(/(\W*)([a-zA-Z])/g, function(a, c, d, e) { | |
return c.length || !e ? c + d.toUpperCase() : a | |
}) | |
}, | |
Be = function(a, b) { | |
if ("none" == b) return a; | |
switch (b.toLowerCase()) { | |
case "lowercase": | |
return a.toLowerCase(); | |
case "uppercase": | |
return a.toUpperCase(); | |
case "capitalize": | |
return Ae(a) | |
} | |
return a | |
}, | |
Ce = function(a) { | |
return !!a && xe.test(a.toString()) | |
}, | |
De = function(a, b) { | |
var c = Jc(H(a)); | |
return c && c.getComputedStyle ? c.getComputedStyle(a, b || "") : b ? null : a.currentStyle | |
}, | |
J = function(a, b, c) { | |
try { | |
var d = De(a, c); | |
if (d) return d[b] || d.getPropertyValue(b) || "" | |
} catch (e) {} | |
return "" | |
}, | |
Ee = function(a) { | |
var b = a.document, | |
c = 0; | |
if (b) { | |
a = Ec(a).width; | |
var c = b.body, | |
d = b.documentElement; | |
if (Fc(Ac(b).J) && d.scrollWidth) c = d.scrollWidth != a ? d.scrollWidth : d.offsetWidth; | |
else { | |
var b = d.scrollWidth, | |
e = d.offsetWidth; | |
if (d.clientWidth != e || jc) b = c.scrollWidth, | |
e = c.offsetWidth; | |
c = b > a ? b > e ? b : e : b < e ? b : e | |
} | |
} | |
return c | |
}, | |
Fe = function(a) { | |
try { | |
var b = Vc(a); | |
return b && b.body ? b : null | |
} catch (c) { | |
return null | |
} | |
}, | |
Ge = function(a) { | |
return a && Ha(a, "url(") ? (a = a.substr(4, a.length - 5), '"' == a.charAt(0) && (a = a.substr(1, a.length - 2)), a) : "" | |
}, | |
He = function(a) { | |
if (a) { | |
for (var b = [], c = /url\(['"]?(.*?)['"]?\)/gi, d; d = c.exec(a);) d = d[1], "%22" == d.substr(0, 3) && (d = d.substr(3, d.length - 6)), b.push(d); | |
return b | |
} | |
return [] | |
}, | |
Ie = function(a) { | |
return y(a.parentNode.namespaceURI || "", "svg") ? !0 : !1 | |
}, | |
Je = function(a, b) { | |
for (var c = [], d = a.querySelectorAll('link[rel="import"]'), e = 0; e < d.length; e++) { | |
var f = d[e]["import"]; | |
f && !b[d[e].href] && (b[d[e].href] = !0, c.push(f), c = c.concat(Je(f, b))) | |
} | |
return c | |
}, | |
Ke = function(a) { | |
var b = a.tagName; | |
if (ye.contains(b) || 0 < a.offsetWidth || 0 < a.offsetHeight) return !0; | |
if ("none" == a.style.display) return !1; | |
if (a.style.clear && "none" != a.style.clear) return !0; | |
if ("OPTION" == a.tagName || "option" == a.tagName) { | |
for (a = a.parentElement; a;) { | |
if ("SELECT" == a.tagName || "select" == a.tagName) { | |
if (0 < a.offsetWidth && 0 < a.offsetHeight) return !0; | |
break | |
} | |
a = a.parentElement | |
} | |
return !1 | |
} | |
if (ze.contains(b)) { | |
var c = a.getBoundingClientRect(); | |
if (("br" == b || "BR" == b) && 0 < c.height || 0 < c.width && 0 < c.height) return !0 | |
} | |
for (b = a.firstElementChild; b; b = b.nextElementSibling) | |
if (Ke(b)) return !0; | |
for (a = a.shadowRoot; a; a = a.olderShadowRoot) | |
for (b = a.firstElementChild; b; b = b.nextElementSibling) | |
if (Ke(b)) return !0; | |
return !1 | |
}; | |
var Le = function() { | |
this.ze = {} | |
}; | |
Kb(D("https://www.google.com")); | |
var Me = Kb(D("//www.google.com/tools/feedback")), | |
Ne = [Me, Kb(D("https://www.google.com/tools/feedback")), Kb(D("https://support.google.com/inapp")), Kb(D("https://sandbox.google.com/inapp")), Kb(D("https://sandbox.google.com/tools/feedback"))], | |
Oe = function(a) { | |
var b = a.getParam("serverUri"); | |
a = Ne.filter(function(a) { | |
return Jb(a) == b | |
})[0]; | |
return Jb(a || Me) | |
}; | |
Kb(D("https://clients6.google.com")); | |
Kb(D("https://content-googleapis-staging.sandbox.google.com")); | |
Kb(D("https://content-googleapis-test.sandbox.google.com")); | |
Kb(D("https://support.google.com")); | |
Kb(D("https://support-content-gkmsstaging.sandbox.google.com")); | |
Kb(D("https://support-content-staging.sandbox.google.com")); | |
Kb(D("https://support-content-test.sandbox.google.com")); | |
Le.prototype.getParam = function(a) { | |
return this.ze[a] | |
}; | |
var Pe = function(a, b) { | |
this.Kk = a; | |
this.Re = b || 5E3 | |
}; | |
Pe.prototype.send = function(a) { | |
return new md(w(function(b, c) { | |
var d = Qe + "__" + (Re++).toString(36) + Date.now().toString(36), | |
e = this.Kk.clone(), | |
f; | |
for (f in a) | |
if (a.hasOwnProperty(f)) { | |
var g = e, | |
h = f, | |
l = a[f]; | |
I(g); | |
g.fb.set(h, l) | |
} | |
I(e); | |
e.fb.set("callback", d); | |
f = document.createElement("script"); | |
f.src = e; | |
r[d] = b; | |
f.onerror = c; | |
(document.head || document.documentElement).appendChild(f); | |
r.setTimeout(c, this.Re) | |
}, this)) | |
}; | |
var Qe = "_callbacks_", | |
Re = 0; | |
var Se = function(a) { | |
this.Ga = a; | |
this.ri = ""; | |
this.Tc = {} | |
}; | |
Se.prototype.oe = function() { | |
return this.ri | |
}; | |
var Te = function(a) { | |
var b = a.ri; | |
a = a.Tc.renderFrame2Url; | |
b instanceof Xd || (b = je(b)); | |
a instanceof Xd || (a = je(a)); | |
return b.resolve(a).toString() | |
}; | |
var Ue = function(a, b) { | |
this.Ga = a; | |
this.Wc = b; | |
this.ci = ""; | |
this.wk = Object.create(null) | |
}, | |
Ve = function(a, b) { | |
b.gfSessionId = (a.Wc.Tc.timestamp || "0") + "-" + (a.Wc.Ck || "0"); | |
b.at = a.Wc.Ok || ""; | |
b.productId = a.Ga.getParam("productId"); | |
b.bucket = a.Ga.getParam("bucket"); | |
b.locale = a.Ga.getParam("hl") || "en"; | |
b.flow = a.ci; | |
b.productSpecificContext = a.Ga.getParam("helpCenterContext") || window.top.location.href; | |
b.useAnonymousMetrics = !!a.Ga.getParam("enableAnonymousFeedback"); | |
(new Pe(new Xd(Oe(a.Ga) + "/metric/report"), 15E3)).send(b).then(function() {}) | |
}, | |
We = function(a, b, c, d) { | |
d = d || {}; | |
Object.assign(d, { | |
subUserAction: c | |
}); | |
a.wk[b] = !0; | |
c = { | |
elapsedMillis: Date.now() - parseInt(a.Ga.getParam("timeOfStartCall"), 10) | |
}; | |
Object.assign(c, d || {}, { | |
userAction: b | |
}); | |
Ve(a, c) | |
}, | |
Xe = function(a, b) { | |
We(a, b, "action_request") | |
}, | |
Ye = function(a, b, c) { | |
We(a, b, "action_success", { | |
elapsedMillis: c | |
}) | |
}, | |
Ze = function(a, b, c) { | |
We(a, b, "action_error", { | |
elapsedMillis: c | |
}) | |
}, | |
$e = function(a, b) { | |
We(a, "latency_measured", b, { | |
elapsedMillis: Date.now() - parseInt(a.Ga.getParam("timeOfStartCall"), 10) | |
}) | |
}; | |
var K = function() { | |
this.Mc = this.Mc; | |
this.uc = this.uc | |
}; | |
K.prototype.Mc = !1; | |
K.prototype.isDisposed = function() { | |
return this.Mc | |
}; | |
K.prototype.Db = function() { | |
this.Mc || (this.Mc = !0, this.X()) | |
}; | |
var bf = function(a, b) { | |
var c = Da(af, b); | |
a.Mc ? t(void 0) ? c.call(void 0) : c() : (a.uc || (a.uc = []), a.uc.push(t(void 0) ? w(c, void 0) : c)) | |
}; | |
K.prototype.X = function() { | |
if (this.uc) | |
for (; this.uc.length;) this.uc.shift()() | |
}; | |
var af = function(a) { | |
a && "function" == typeof a.Db && a.Db() | |
}; | |
var ff = function() { | |
K.call(this); | |
this.Ih = [] | |
}; | |
x(ff, K); | |
var gf = "width height overflow overflowX overflowY position".split(" "); | |
k = ff.prototype; | |
k.X = function() { | |
ff.s.X.call(this); | |
hf(this); | |
jf(this); | |
this.Tj && (this.Tj.content = this.Sk) | |
}; | |
k.getWindow = function() { | |
return Jc(this.Ra) | |
}; | |
k.oe = function() { | |
return this.getWindow().location.href | |
}; | |
k.sb = function() { | |
return this.Ra | |
}; | |
k.Di = function(a) { | |
this.Ra = a | |
}; | |
k.Z = function() { | |
return Ac(this.Ra) | |
}; | |
var jf = function(a) { | |
a.Ih.forEach(function(a) { | |
a.element.style.visibility = a.visibility | |
}); | |
a.Ih = [] | |
}, | |
lf = function(a) { | |
if (!a.Kf) { | |
var b = a.sb().documentElement, | |
c = Ic(a.Z().J), | |
d = Ec(a.getWindow()); | |
a.Kf = kf(b); | |
b.style.overflow = "hidden"; | |
b.style.position = "relative"; | |
b.style.width = d.width + "px"; | |
b.style.height = d.height + "px"; | |
b.scrollLeft = c.x; | |
b.scrollTop = c.y | |
} | |
}, | |
hf = function(a) { | |
mf(a.sb().documentElement, a.Kf); | |
a.Kf = null | |
}, | |
kf = function(a) { | |
var b = { | |
style: {} | |
}; | |
gf.forEach(function(c) { | |
b.style[c] = a.style[c] | |
}); | |
b.scrollLeft = a.scrollLeft; | |
b.scrollTop = a.scrollTop; | |
return b | |
}, | |
mf = function(a, b) { | |
b && (gf.forEach(function(c) { | |
a.style[c] = b.style[c] | |
}), a.scrollLeft = b.scrollLeft, a.scrollTop = b.scrollTop) | |
}; | |
var nf = function(a, b) { | |
this.type = a; | |
this.currentTarget = this.target = b; | |
this.defaultPrevented = this.wc = !1; | |
this.zi = !0 | |
}; | |
nf.prototype.stopPropagation = function() { | |
this.wc = !0 | |
}; | |
nf.prototype.preventDefault = function() { | |
this.defaultPrevented = !0; | |
this.zi = !1 | |
}; | |
var of = function(a) { | |
a.preventDefault() | |
}; | |
var pf = !F || 9 <= Number(vc), | |
qf = !F || 9 <= Number(vc), | |
rf = F && !G("9"); | |
!kc || G("528"); | |
jc && G("1.9b") || F && G("8") || hc && G("9.5") || kc && G("528"); | |
jc && !G("8") || F && G("9"); | |
var sf = function(a, b) { | |
nf.call(this, a ? a.type : ""); | |
this.relatedTarget = this.currentTarget = this.target = null; | |
this.charCode = this.keyCode = this.button = this.screenY = this.screenX = this.clientY = this.clientX = this.offsetY = this.offsetX = 0; | |
this.metaKey = this.shiftKey = this.altKey = this.ctrlKey = !1; | |
this.$b = this.state = null; | |
a && this.init(a, b) | |
}; | |
x(sf, nf); | |
var tf = [1, 4, 2]; | |
sf.prototype.init = function(a, b) { | |
var c = this.type = a.type, | |
d = a.changedTouches ? a.changedTouches[0] : null; | |
this.target = a.target || a.srcElement; | |
this.currentTarget = b; | |
var e = a.relatedTarget; | |
if (e) { | |
if (jc) { | |
var f; | |
a: { | |
try { | |
dc(e.nodeName); | |
f = !0; | |
break a | |
} catch (g) {} | |
f = !1 | |
} | |
f || (e = null) | |
} | |
} else "mouseover" == c ? e = a.fromElement : "mouseout" == c && (e = a.toElement); | |
this.relatedTarget = e; | |
null === d ? (this.offsetX = kc || void 0 !== a.offsetX ? a.offsetX : a.layerX, this.offsetY = kc || void 0 !== a.offsetY ? a.offsetY : a.layerY, this.clientX = void 0 !== a.clientX ? a.clientX : | |
a.pageX, this.clientY = void 0 !== a.clientY ? a.clientY : a.pageY, this.screenX = a.screenX || 0, this.screenY = a.screenY || 0) : (this.clientX = void 0 !== d.clientX ? d.clientX : d.pageX, this.clientY = void 0 !== d.clientY ? d.clientY : d.pageY, this.screenX = d.screenX || 0, this.screenY = d.screenY || 0); | |
this.button = a.button; | |
this.keyCode = a.keyCode || 0; | |
this.charCode = a.charCode || ("keypress" == c ? a.keyCode : 0); | |
this.ctrlKey = a.ctrlKey; | |
this.altKey = a.altKey; | |
this.shiftKey = a.shiftKey; | |
this.metaKey = a.metaKey; | |
this.state = a.state; | |
this.$b = a; | |
a.defaultPrevented && | |
this.preventDefault() | |
}; | |
sf.prototype.stopPropagation = function() { | |
sf.s.stopPropagation.call(this); | |
this.$b.stopPropagation ? this.$b.stopPropagation() : this.$b.cancelBubble = !0 | |
}; | |
sf.prototype.preventDefault = function() { | |
sf.s.preventDefault.call(this); | |
var a = this.$b; | |
if (a.preventDefault) a.preventDefault(); | |
else if (a.returnValue = !1, rf) try { | |
if (a.ctrlKey || 112 <= a.keyCode && 123 >= a.keyCode) a.keyCode = -1 | |
} catch (b) {} | |
}; | |
var uf = "closure_listenable_" + (1E6 * Math.random() | 0), | |
vf = function(a) { | |
return !(!a || !a[uf]) | |
}, | |
wf = 0; | |
var xf = function(a, b, c, d, e) { | |
this.listener = a; | |
this.Ee = null; | |
this.src = b; | |
this.type = c; | |
this.capture = !!d; | |
this.re = e; | |
this.key = ++wf; | |
this.Nb = this.$d = !1 | |
}, | |
yf = function(a) { | |
a.Nb = !0; | |
a.listener = null; | |
a.Ee = null; | |
a.src = null; | |
a.re = null | |
}; | |
var zf = function(a) { | |
this.src = a; | |
this.ma = {}; | |
this.Kd = 0 | |
}; | |
zf.prototype.add = function(a, b, c, d, e) { | |
var f = a.toString(); | |
a = this.ma[f]; | |
a || (a = this.ma[f] = [], this.Kd++); | |
var g = Af(a, b, d, e); - 1 < g ? (b = a[g], c || (b.$d = !1)) : (b = new xf(b, this.src, f, !!d, e), b.$d = c, a.push(b)); | |
return b | |
}; | |
zf.prototype.remove = function(a, b, c, d) { | |
a = a.toString(); | |
if (!(a in this.ma)) return !1; | |
var e = this.ma[a]; | |
b = Af(e, b, c, d); | |
return -1 < b ? (yf(e[b]), Array.prototype.splice.call(e, b, 1), 0 == e.length && (delete this.ma[a], this.Kd--), !0) : !1 | |
}; | |
var Bf = function(a, b) { | |
var c = b.type; | |
c in a.ma && db(a.ma[c], b) && (yf(b), 0 == a.ma[c].length && (delete a.ma[c], a.Kd--)) | |
}; | |
zf.prototype.Yc = function(a) { | |
a = a && a.toString(); | |
var b = 0, | |
c; | |
for (c in this.ma) | |
if (!a || c == a) { | |
for (var d = this.ma[c], e = 0; e < d.length; e++) ++b, yf(d[e]); | |
delete this.ma[c]; | |
this.Kd-- | |
} | |
return b | |
}; | |
zf.prototype.rd = function(a, b, c, d) { | |
a = this.ma[a.toString()]; | |
var e = -1; | |
a && (e = Af(a, b, c, d)); | |
return -1 < e ? a[e] : null | |
}; | |
zf.prototype.hasListener = function(a, b) { | |
var c = t(a), | |
d = c ? a.toString() : "", | |
e = t(b); | |
return nb(this.ma, function(a) { | |
for (var f = 0; f < a.length; ++f) | |
if (!(c && a[f].type != d || e && a[f].capture != b)) return !0; | |
return !1 | |
}) | |
}; | |
var Af = function(a, b, c, d) { | |
for (var e = 0; e < a.length; ++e) { | |
var f = a[e]; | |
if (!f.Nb && f.listener == b && f.capture == !!c && f.re == d) return e | |
} | |
return -1 | |
}; | |
var Cf = "closure_lm_" + (1E6 * Math.random() | 0), | |
Df = {}, | |
Ef = 0, | |
L = function(a, b, c, d, e) { | |
if (ta(b)) { | |
for (var f = 0; f < b.length; f++) L(a, b[f], c, d, e); | |
return null | |
} | |
c = Ff(c); | |
return vf(a) ? a.listen(b, c, d, e) : Gf(a, b, c, !1, d, e) | |
}, | |
Gf = function(a, b, c, d, e, f) { | |
if (!b) throw Error("Invalid event type"); | |
var g = !!e, | |
h = Hf(a); | |
h || (a[Cf] = h = new zf(a)); | |
c = h.add(b, c, d, e, f); | |
if (c.Ee) return c; | |
d = If(); | |
c.Ee = d; | |
d.src = a; | |
d.listener = c; | |
if (a.addEventListener) a.addEventListener(b.toString(), d, g); | |
else if (a.attachEvent) a.attachEvent(Jf(b.toString()), d); | |
else throw Error("addEventListener and attachEvent are unavailable."); | |
Ef++; | |
return c | |
}, | |
If = function() { | |
var a = Kf, | |
b = qf ? function(c) { | |
return a.call(b.src, b.listener, c) | |
} : function(c) { | |
c = a.call(b.src, b.listener, c); | |
if (!c) return c | |
}; | |
return b | |
}, | |
Lf = function(a, b, c, d, e) { | |
if (ta(b)) { | |
for (var f = 0; f < b.length; f++) Lf(a, b[f], c, d, e); | |
return null | |
} | |
c = Ff(c); | |
return vf(a) ? a.Xf(b, c, d, e) : Gf(a, b, c, !0, d, e) | |
}, | |
Mf = function(a, b, c, d, e) { | |
if (ta(b)) | |
for (var f = 0; f < b.length; f++) Mf(a, b[f], c, d, e); | |
else c = Ff(c), vf(a) ? a.We(b, c, d, e) : a && (a = Hf(a)) && (b = a.rd(b, c, !!d, e)) && Nf(b) | |
}, | |
Nf = function(a) { | |
if (!va(a) && a && !a.Nb) { | |
var b = a.src; | |
if (vf(b)) Bf(b.pb, | |
a); | |
else { | |
var c = a.type, | |
d = a.Ee; | |
b.removeEventListener ? b.removeEventListener(c, d, a.capture) : b.detachEvent && b.detachEvent(Jf(c), d); | |
Ef--; | |
(c = Hf(b)) ? (Bf(c, a), 0 == c.Kd && (c.src = null, b[Cf] = null)) : yf(a) | |
} | |
} | |
}, | |
Jf = function(a) { | |
return a in Df ? Df[a] : Df[a] = "on" + a | |
}, | |
Pf = function(a, b, c, d) { | |
var e = !0; | |
if (a = Hf(a)) | |
if (b = a.ma[b.toString()]) | |
for (b = b.concat(), a = 0; a < b.length; a++) { | |
var f = b[a]; | |
f && f.capture == c && !f.Nb && (f = Of(f, d), e = e && !1 !== f) | |
} | |
return e | |
}, | |
Of = function(a, b) { | |
var c = a.listener, | |
d = a.re || a.src; | |
a.$d && Nf(a); | |
return c.call(d, b) | |
}, | |
Kf = function(a, | |
b) { | |
if (a.Nb) return !0; | |
if (!qf) { | |
var c = b || qa("window.event"), | |
d = new sf(c, this), | |
e = !0; | |
if (!(0 > c.keyCode || void 0 != c.returnValue)) { | |
a: { | |
var f = !1; | |
if (0 == c.keyCode) try { | |
c.keyCode = -1; | |
break a | |
} catch (l) { | |
f = !0 | |
} | |
if (f || void 0 == c.returnValue) c.returnValue = !0 | |
} | |
c = []; | |
for (f = d.currentTarget; f; f = f.parentNode) c.push(f); | |
for (var f = a.type, g = c.length - 1; !d.wc && 0 <= g; g--) { | |
d.currentTarget = c[g]; | |
var h = Pf(c[g], f, !0, d), | |
e = e && h | |
} | |
for (g = 0; !d.wc && g < c.length; g++) d.currentTarget = c[g], | |
h = Pf(c[g], f, !1, d), | |
e = e && h | |
} | |
return e | |
} | |
return Of(a, new sf(b, this)) | |
}, | |
Hf = function(a) { | |
a = | |
a[Cf]; | |
return a instanceof zf ? a : null | |
}, | |
Qf = "__closure_events_fn_" + (1E9 * Math.random() >>> 0), | |
Ff = function(a) { | |
if (wa(a)) return a; | |
a[Qf] || (a[Qf] = function(b) { | |
return a.handleEvent(b) | |
}); | |
return a[Qf] | |
}; | |
var M = function() { | |
K.call(this); | |
this.pb = new zf(this); | |
this.fj = this; | |
this.Ae = null | |
}; | |
x(M, K); | |
M.prototype[uf] = !0; | |
k = M.prototype; | |
k.Ke = function(a) { | |
this.Ae = a | |
}; | |
k.addEventListener = function(a, b, c, d) { | |
L(this, a, b, c, d) | |
}; | |
k.removeEventListener = function(a, b, c, d) { | |
Mf(this, a, b, c, d) | |
}; | |
k.dispatchEvent = function(a) { | |
var b, c = this.Ae; | |
if (c) { | |
b = []; | |
for (var d = 1; c; c = c.Ae) b.push(c), ++d | |
} | |
c = this.fj; | |
d = a.type || a; | |
if (u(a)) a = new nf(a, c); | |
else if (a instanceof nf) a.target = a.target || c; | |
else { | |
var e = a; | |
a = new nf(d, c); | |
tb(a, e) | |
} | |
var e = !0, | |
f; | |
if (b) | |
for (var g = b.length - 1; !a.wc && 0 <= g; g--) f = a.currentTarget = b[g], e = Rf(f, d, !0, a) && e; | |
a.wc || (f = a.currentTarget = c, e = Rf(f, d, !0, a) && e, a.wc || (e = Rf(f, d, !1, a) && e)); | |
if (b) | |
for (g = 0; !a.wc && g < b.length; g++) f = a.currentTarget = b[g], e = Rf(f, d, !1, a) && e; | |
return e | |
}; | |
k.X = function() { | |
M.s.X.call(this); | |
this.pb && this.pb.Yc(void 0); | |
this.Ae = null | |
}; | |
k.listen = function(a, b, c, d) { | |
return this.pb.add(String(a), b, !1, c, d) | |
}; | |
k.Xf = function(a, b, c, d) { | |
return this.pb.add(String(a), b, !0, c, d) | |
}; | |
k.We = function(a, b, c, d) { | |
return this.pb.remove(String(a), b, c, d) | |
}; | |
var Rf = function(a, b, c, d) { | |
b = a.pb.ma[String(b)]; | |
if (!b) return !0; | |
b = b.concat(); | |
for (var e = !0, f = 0; f < b.length; ++f) { | |
var g = b[f]; | |
if (g && !g.Nb && g.capture == c) { | |
var h = g.listener, | |
l = g.re || g.src; | |
g.$d && Bf(a.pb, g); | |
e = !1 !== h.call(l, d) && e | |
} | |
} | |
return e && 0 != d.zi | |
}; | |
M.prototype.rd = function(a, b, c, d) { | |
return this.pb.rd(String(a), b, c, d) | |
}; | |
M.prototype.hasListener = function(a, b) { | |
return this.pb.hasListener(t(a) ? String(a) : void 0, b) | |
}; | |
var N = function(a, b, c, d) { | |
this.top = a; | |
this.right = b; | |
this.bottom = c; | |
this.left = d | |
}; | |
k = N.prototype; | |
k.Fh = function() { | |
return this.right - this.left | |
}; | |
k.Ah = function() { | |
return this.bottom - this.top | |
}; | |
k.clone = function() { | |
return new N(this.top, this.right, this.bottom, this.left) | |
}; | |
k.contains = function(a) { | |
return this && a ? a instanceof N ? a.left >= this.left && a.right <= this.right && a.top >= this.top && a.bottom <= this.bottom : a.x >= this.left && a.x <= this.right && a.y >= this.top && a.y <= this.bottom : !1 | |
}; | |
k.expand = function(a, b, c, d) { | |
xa(a) ? (this.top -= a.top, this.right += a.right, this.bottom += a.bottom, this.left -= a.left) : (this.top -= a, this.right += Number(b), this.bottom += Number(c), this.left -= Number(d)); | |
return this | |
}; | |
k.ceil = function() { | |
this.top = Math.ceil(this.top); | |
this.right = Math.ceil(this.right); | |
this.bottom = Math.ceil(this.bottom); | |
this.left = Math.ceil(this.left); | |
return this | |
}; | |
k.floor = function() { | |
this.top = Math.floor(this.top); | |
this.right = Math.floor(this.right); | |
this.bottom = Math.floor(this.bottom); | |
this.left = Math.floor(this.left); | |
return this | |
}; | |
k.round = function() { | |
this.top = Math.round(this.top); | |
this.right = Math.round(this.right); | |
this.bottom = Math.round(this.bottom); | |
this.left = Math.round(this.left); | |
return this | |
}; | |
k.translate = function(a, b) { | |
a instanceof E ? (this.left += a.x, this.right += a.x, this.top += a.y, this.bottom += a.y) : (this.left += a, this.right += a, va(b) && (this.top += b, this.bottom += b)); | |
return this | |
}; | |
k.scale = function(a, b) { | |
var c = va(b) ? b : a; | |
this.left *= a; | |
this.right *= a; | |
this.top *= c; | |
this.bottom *= c; | |
return this | |
}; | |
var O = function(a, b, c, d) { | |
this.left = a; | |
this.top = b; | |
this.width = c; | |
this.height = d | |
}; | |
O.prototype.clone = function() { | |
return new O(this.left, this.top, this.width, this.height) | |
}; | |
var Sf = function(a) { | |
return new N(a.top, a.left + a.width, a.top + a.height, a.left) | |
}, | |
Tf = function(a, b) { | |
return a.left <= b.left + b.width && b.left <= a.left + a.width && a.top <= b.top + b.height && b.top <= a.top + a.height | |
}; | |
k = O.prototype; | |
k.contains = function(a) { | |
return a instanceof E ? a.x >= this.left && a.x <= this.left + this.width && a.y >= this.top && a.y <= this.top + this.height : this.left <= a.left && this.left + this.width >= a.left + a.width && this.top <= a.top && this.top + this.height >= a.top + a.height | |
}; | |
k.ceil = function() { | |
this.left = Math.ceil(this.left); | |
this.top = Math.ceil(this.top); | |
this.width = Math.ceil(this.width); | |
this.height = Math.ceil(this.height); | |
return this | |
}; | |
k.floor = function() { | |
this.left = Math.floor(this.left); | |
this.top = Math.floor(this.top); | |
this.width = Math.floor(this.width); | |
this.height = Math.floor(this.height); | |
return this | |
}; | |
k.round = function() { | |
this.left = Math.round(this.left); | |
this.top = Math.round(this.top); | |
this.width = Math.round(this.width); | |
this.height = Math.round(this.height); | |
return this | |
}; | |
k.translate = function(a, b) { | |
a instanceof E ? (this.left += a.x, this.top += a.y) : (this.left += a, va(b) && (this.top += b)); | |
return this | |
}; | |
k.scale = function(a, b) { | |
var c = va(b) ? b : a; | |
this.left *= a; | |
this.width *= a; | |
this.top *= c; | |
this.height *= c; | |
return this | |
}; | |
var Uf = function(a, b) { | |
null != a && this.append.apply(this, arguments) | |
}; | |
k = Uf.prototype; | |
k.lc = ""; | |
k.set = function(a) { | |
this.lc = "" + a | |
}; | |
k.append = function(a, b, c) { | |
this.lc += String(a); | |
if (null != b) | |
for (var d = 1; d < arguments.length; d++) this.lc += arguments[d]; | |
return this | |
}; | |
k.clear = function() { | |
this.lc = "" | |
}; | |
k.toString = function() { | |
return this.lc | |
}; | |
var Wf = function(a, b, c) { | |
if (u(b))(b = Vf(a, b)) && (a.style[b] = c); | |
else | |
for (var d in b) { | |
c = a; | |
var e = b[d], | |
f = Vf(c, d); | |
f && (c.style[f] = e) | |
} | |
}, | |
Xf = {}, | |
Vf = function(a, b) { | |
var c = Xf[b]; | |
if (!c) { | |
var d = Xa(b), | |
c = d; | |
void 0 === a.style[d] && (d = (kc ? "Webkit" : jc ? "Moz" : F ? "ms" : hc ? "O" : null) + Ya(d), void 0 !== a.style[d] && (c = d)); | |
Xf[b] = c | |
} | |
return c | |
}, | |
Yf = function(a, b) { | |
var c = H(a); | |
return c.defaultView && c.defaultView.getComputedStyle && (c = c.defaultView.getComputedStyle(a, null)) ? c[b] || c.getPropertyValue(b) || "" : "" | |
}, | |
Zf = function(a, b) { | |
return Yf(a, b) || (a.currentStyle ? | |
a.currentStyle[b] : null) || a.style && a.style[b] | |
}, | |
ag = function(a, b, c) { | |
var d; | |
b instanceof E ? (d = b.x, b = b.y) : (d = b, b = c); | |
a.style.left = $f(d, !1); | |
a.style.top = $f(b, !1) | |
}, | |
bg = function(a) { | |
var b; | |
try { | |
b = a.getBoundingClientRect() | |
} catch (c) { | |
return { | |
left: 0, | |
top: 0, | |
right: 0, | |
bottom: 0 | |
} | |
} | |
F && a.ownerDocument.body && (a = a.ownerDocument, b.left -= a.documentElement.clientLeft + a.body.clientLeft, b.top -= a.documentElement.clientTop + a.body.clientTop); | |
return b | |
}, | |
cg = function(a, b, c) { | |
if (b instanceof bc) c = b.height, b = b.width; | |
else if (void 0 == c) throw Error("missing height argument"); | |
a.style.width = $f(b, !0); | |
a.style.height = $f(c, !0) | |
}, | |
$f = function(a, b) { | |
"number" == typeof a && (a = (b ? Math.round(a) : a) + "px"); | |
return a | |
}, | |
eg = function(a) { | |
var b = dg; | |
if ("none" != Zf(a, "display")) return b(a); | |
var c = a.style, | |
d = c.display, | |
e = c.visibility, | |
f = c.position; | |
c.visibility = "hidden"; | |
c.position = "absolute"; | |
c.display = "inline"; | |
a = b(a); | |
c.display = d; | |
c.position = f; | |
c.visibility = e; | |
return a | |
}, | |
dg = function(a) { | |
var b = a.offsetWidth, | |
c = a.offsetHeight, | |
d = kc && !b && !c; | |
return t(b) && !d || !a.getBoundingClientRect ? new bc(b, c) : (a = bg(a), new bc(a.right - | |
a.left, a.bottom - a.top)) | |
}, | |
fg = function(a, b) { | |
var c = a.style; | |
"opacity" in c ? c.opacity = b : "MozOpacity" in c ? c.MozOpacity = b : "filter" in c && (c.filter = "" === b ? "" : "alpha(opacity=" + 100 * Number(b) + ")") | |
}, | |
gg = function(a, b) { | |
a.style.display = b ? "" : "none" | |
}, | |
hg = function(a, b) { | |
if (/^\d+px?$/.test(b)) return parseInt(b, 10); | |
var c = a.style.left, | |
d = a.runtimeStyle.left; | |
a.runtimeStyle.left = a.currentStyle.left; | |
a.style.left = b; | |
var e = a.style.pixelLeft; | |
a.style.left = c; | |
a.runtimeStyle.left = d; | |
return +e | |
}, | |
ig = { | |
thin: 2, | |
medium: 4, | |
thick: 6 | |
}, | |
jg = function(a, | |
b) { | |
if ("none" == (a.currentStyle ? a.currentStyle[b + "Style"] : null)) return 0; | |
var c = a.currentStyle ? a.currentStyle[b + "Width"] : null; | |
return c in ig ? ig[c] : hg(a, c) | |
}, | |
kg = function(a) { | |
if (F && !(9 <= Number(vc))) { | |
var b = jg(a, "borderLeft"), | |
c = jg(a, "borderRight"), | |
d = jg(a, "borderTop"); | |
a = jg(a, "borderBottom"); | |
return new N(d, c, a, b) | |
} | |
b = Yf(a, "borderLeftWidth"); | |
c = Yf(a, "borderRightWidth"); | |
d = Yf(a, "borderTopWidth"); | |
a = Yf(a, "borderBottomWidth"); | |
return new N(parseFloat(d), parseFloat(c), parseFloat(a), parseFloat(b)) | |
}, | |
lg = /[^\d]+$/, | |
mg = { | |
cm: 1, | |
"in": 1, | |
mm: 1, | |
pc: 1, | |
pt: 1 | |
}, | |
ng = { | |
em: 1, | |
ex: 1 | |
}, | |
og = function(a) { | |
var b = Zf(a, "fontSize"), | |
c; | |
c = (c = b.match(lg)) && c[0] || null; | |
if (b && "px" == c) return parseInt(b, 10); | |
if (F) { | |
if (String(c) in mg) return hg(a, b); | |
if (a.parentNode && 1 == a.parentNode.nodeType && String(c) in ng) return a = a.parentNode, c = Zf(a, "fontSize"), hg(a, b == c ? "1em" : b) | |
} | |
c = Lc("SPAN", { | |
style: "visibility:hidden;position:absolute;line-height:0;padding:0;margin:0;border:0;height:1em;" | |
}); | |
a.appendChild(c); | |
b = c.offsetHeight; | |
Pc(c); | |
return b | |
}; | |
var pg = function(a) { | |
return [a.left, a.top, a.width, a.height] | |
}; | |
var qg = function() {}; | |
qg.prototype.url = null; | |
qg.prototype.title = null; | |
qg.prototype.documentElement = null; | |
var sg = function(a, b) { | |
var c = new qg, | |
d = Ec(Jc(a)), | |
d = new O(0, 0, d.width, d.height); | |
a.URL && (c.url = a.URL); | |
a.title && (c.title = a.title); | |
a.documentElement && (c.documentElement = rg(a.documentElement, d, b)); | |
return c | |
}, | |
ug = function(a) { | |
var b = []; | |
a.url && (b[0] = a.url); | |
a.title && (b[1] = a.title); | |
a.documentElement && (b[2] = tg(a.documentElement)); | |
return b | |
}, | |
vg = function(a) { | |
this.tagName = a; | |
this.children = [] | |
}; | |
k = vg.prototype; | |
k.id = null; | |
k.className = null; | |
k.rect = new O(0, 0, 0, 0); | |
k.display = "block"; | |
k.position = "static"; | |
k.visibility = "visible"; | |
k.overflowX = "visible"; | |
k.overflowY = "visible"; | |
k.zIndex = "auto"; | |
k.td = !1; | |
k.bc = null; | |
k.appendChild = function(a) { | |
a.tagName && (a.parentElement = this); | |
this.children.push(a) | |
}; | |
var wg = function(a) { | |
return a.getAttribute("google-feedback-data") | |
}, | |
rg = function(a, b, c) { | |
var d = c || wg, | |
e = new vg(a.tagName); | |
e.id = a.getAttribute("id"); | |
e.className = a.getAttribute("class"); | |
e.Wd = d(a); | |
var f = De(a); | |
null !== f && (e.display = f.display, e.position = f.position, e.visibility = f.visibility, e.overflowX = f.overflowX, e.overflowY = f.overflowY, e.zIndex = f.zIndex, d = f.backgroundColor, f = f.backgroundImage, e.td = "transparent" != d && "rgba(0, 0, 0, 0)" != d || "none" != f); | |
d = a.tagName.toLowerCase(); | |
if ("script" != d && "style" != d && "none" != | |
e.display && "hidden" != e.visibility) { | |
var g; | |
try { | |
var h = H(a), | |
l = new E(0, 0), | |
m, n; | |
n = h ? H(h) : document; | |
m = !F || 9 <= Number(vc) || Fc(Ac(n).J) ? n.documentElement : n.body; | |
if (a != m) { | |
var p = bg(a), | |
v = Ic(Ac(h).J); | |
l.x = p.left + v.x; | |
l.y = p.top + v.y | |
} | |
g = l | |
} catch (A) { | |
g = new E(0, 0) | |
} | |
h = new bc(a.offsetWidth, a.offsetHeight); | |
e.rect = new O(g.x, g.y, h.width, h.height); | |
if ("textarea" == d || "input" == d && "text" == a.getAttribute("type")) e.appendChild(a.value); | |
else | |
for (g = a.firstChild; g;) 1 == g.nodeType ? e.appendChild(rg(g, b, c)) : 3 == g.nodeType && e.appendChild(g.nodeValue), | |
g = g.nextSibling; | |
if (("frame" == d || "iframe" == d) && 1 < e.rect.width && 1 < e.rect.height) try { | |
var q = Vc(a); | |
q && (e.bc = sg(q, c)) | |
} catch (A) {} | |
} | |
return e | |
}; | |
vg.prototype.Eh = function() { | |
var a = new Uf; | |
xg(this, a); | |
a = a.toString(); | |
a = Ja(a); | |
return Ka(a) ? null : a | |
}; | |
var xg = function(a, b) { | |
a.children.forEach(function(a) { | |
"string" == typeof a ? b.append(a) : (!yg(a) || yg(this) && this.rect.contains(a.rect)) && xg(a, b) | |
}, a) | |
}, | |
zg = function(a) { | |
return "string" != typeof a | |
}, | |
yg = function(a) { | |
return "html" == a.tagName || "static" != a.position && !!a.zIndex && "auto" != a.zIndex | |
}, | |
Ag = function(a, b, c) { | |
a.children.filter(zg).forEach(function(a) { | |
b.call(c, a) | |
}) | |
}, | |
Bg = function(a, b, c, d) { | |
b.has(a) && c.set(a, d.slice(0)); | |
d.push(0); | |
Ag(a, function(a) { | |
Bg(a, b, c, d); | |
d[d.length - 1]++ | |
}, a); | |
d.pop(); | |
a.bc && a.bc.documentElement && (d.push(-1), | |
Bg(a.bc.documentElement, b, c, d), d.pop()) | |
}, | |
tg = function(a) { | |
var b = vg.prototype, | |
c = []; | |
c[0] = a.tagName; | |
a.id != b.id && (c[2] = a.id); | |
a.className != b.className && (c[3] = a.className); | |
a.display != b.display && (c[5] = a.display); | |
a.position != b.position && (c[4] = a.position); | |
a.visibility != b.visibility && (c[6] = a.visibility); | |
a.overflowX != b.overflowX && (c[7] = a.overflowX); | |
a.overflowY != b.overflowY && (c[8] = a.overflowY); | |
a.zIndex != b.zIndex && (c[9] = a.zIndex); | |
a.td != b.td && (c[10] = a.td); | |
a.rect.toString() != b.rect.toString() && (c[11] = pg(a.rect)); | |
if (0 != a.children.length) { | |
var d = []; | |
a.children.forEach(function(a) { | |
d || (d = []); | |
"string" === typeof a ? d.push(a) : d.push(tg(a)) | |
}); | |
c[1] = d | |
} | |
a.bc && (c[12] = ug(a.bc)); | |
return c | |
}; | |
var Cg = function(a, b) { | |
M.call(this); | |
this.Ca = a; | |
this.Ab = b || new O(0, 0, 100, 100) | |
}; | |
x(Cg, M); | |
Cg.prototype.V = function() { | |
return this.Ab | |
}; | |
Cg.prototype.Hd = function(a) { | |
this.Ab = a; | |
this.dispatchEvent("boundsChanged") | |
}; | |
Cg.prototype.F = function() { | |
return this.v | |
}; | |
Cg.prototype.clone = function() { | |
return new Cg(this.Ca, this.Ab.clone()) | |
}; | |
var Dg = function(a, b, c, d) { | |
this.$ = a; | |
this.Fi = b; | |
this.wj = c; | |
this.hj = d | |
}; | |
Dg.prototype.Eh = function() { | |
return this.Fi | |
}; | |
var Eg = function() {}, | |
Fg = function(a) { | |
var b = new Eg; | |
b.appCodeName = a.appCodeName; | |
b.appMinorVersion = a.appMinorVersion; | |
b.appName = a.appName; | |
b.appVersion = a.appVersion; | |
b.browserLanguage = a.browserLanguage; | |
b.cookieEnabled = a.cookieEnabled; | |
b.cpuClass = a.cpuClass; | |
b.onLine = a.onLine; | |
b.platform = a.platform; | |
b.systemLanguage = a.systemLanguage; | |
b.userAgent = a.userAgent; | |
b.userLanguage = a.userLanguage; | |
"function" == typeof a.javaEnabled && (b.javaEnabled = a.javaEnabled()); | |
"function" == typeof a.taintEnabled && (b.taintEnabled = a.taintEnabled()); | |
a.plugins && (b.plugins = a.plugins, b.gg = [], Array.prototype.forEach.call(a.plugins, function(a) { | |
b.gg.push(a.name) | |
})); | |
return b | |
}, | |
Gg = function(a) { | |
var b = []; | |
a.appCodeName && (b[0] = a.appCodeName); | |
a.appMinorVersion && (b[1] = a.appMinorVersion); | |
a.appName && (b[2] = a.appName); | |
a.appVersion && (b[3] = a.appVersion); | |
a.browserLanguage && (b[4] = a.browserLanguage); | |
null != a.cookieEnabled && (b[5] = a.cookieEnabled); | |
a.cpuClass && (b[6] = a.cpuClass); | |
null != a.onLine && (b[7] = a.onLine); | |
a.platform && (b[8] = a.platform); | |
a.systemLanguage && (b[9] = a.systemLanguage); | |
a.userAgent && (b[10] = a.userAgent); | |
a.userLanguage && (b[11] = a.userLanguage); | |
null != a.javaEnabled && (b[12] = a.javaEnabled); | |
null != a.taintEnabled && (b[13] = a.taintEnabled); | |
a.gg && (b[14] = a.gg); | |
a.plugins && (b[15] = [], Array.prototype.forEach.call(a.plugins, function(a) { | |
b[15].push({ | |
name: a.name, | |
description: a.description, | |
filename: a.filename | |
}) | |
})); | |
return b | |
}; | |
var Hg = function() {}; | |
k = Hg.prototype; | |
k.Yf = null; | |
k.document = null; | |
k.Ig = null; | |
k.navigator = null; | |
k.Ci = null; | |
k.Ak = null; | |
var Ig = function(a) { | |
var b = []; | |
a.Yf && (b[0] = a.Yf); | |
a.navigator && (b[3] = Gg(a.navigator)); | |
a.document && (b[1] = ug(a.document)); | |
if (a.Ig) { | |
var c = a.Ig; | |
b[2] = [c.width, c.height] | |
} | |
a.Ak && (a = a.Ci, b[4] = [a.left, a.top, a.width, a.height]); | |
return b | |
}, | |
Jg = function() {}; | |
Jg.prototype.Zf = null; | |
Jg.prototype.$f = null; | |
Jg.prototype.J = null; | |
Jg.prototype.Ha = function() { | |
var a = new Hg; | |
a.Yf = this.Zf; | |
a.navigator = this.$f; | |
a.document = this.J; | |
return a | |
}; | |
var Kg = F ? 'javascript:""' : "about:blank"; | |
var Lg = function(a, b, c) { | |
if (wa(a)) c && (a = w(a, c)); | |
else if (a && "function" == typeof a.handleEvent) a = w(a.handleEvent, a); | |
else throw Error("Invalid listener argument"); | |
return 2147483647 < Number(b) ? -1 : r.setTimeout(a, b || 0) | |
}; | |
var Mg = function(a) { | |
K.call(this); | |
this.Gf = a; | |
this.L = {} | |
}; | |
x(Mg, K); | |
var Ng = []; | |
Mg.prototype.listen = function(a, b, c, d) { | |
ta(b) || (b && (Ng[0] = b.toString()), b = Ng); | |
for (var e = 0; e < b.length; e++) { | |
var f = L(a, b[e], c || this.handleEvent, d || !1, this.Gf || this); | |
if (!f) break; | |
this.L[f.key] = f | |
} | |
return this | |
}; | |
Mg.prototype.Xf = function(a, b, c, d) { | |
return Og(this, a, b, c, d) | |
}; | |
var Og = function(a, b, c, d, e, f) { | |
if (ta(c)) | |
for (var g = 0; g < c.length; g++) Og(a, b, c[g], d, e, f); | |
else { | |
b = Lf(b, c, d || a.handleEvent, e, f || a.Gf || a); | |
if (!b) return a; | |
a.L[b.key] = b | |
} | |
return a | |
}; | |
Mg.prototype.We = function(a, b, c, d, e) { | |
if (ta(b)) | |
for (var f = 0; f < b.length; f++) this.We(a, b[f], c, d, e); | |
else c = c || this.handleEvent, e = e || this.Gf || this, c = Ff(c), d = !!d, b = vf(a) ? a.rd(b, c, d, e) : a ? (a = Hf(a)) ? a.rd(b, c, d, e) : null : null, b && (Nf(b), delete this.L[b.key]); | |
return this | |
}; | |
Mg.prototype.Yc = function() { | |
mb(this.L, function(a, b) { | |
this.L.hasOwnProperty(b) && Nf(a) | |
}, this); | |
this.L = {} | |
}; | |
Mg.prototype.X = function() { | |
Mg.s.X.call(this); | |
this.Yc() | |
}; | |
Mg.prototype.handleEvent = function() { | |
throw Error("EventHandler.handleEvent not implemented"); | |
}; | |
var Pg = function() {}; | |
Pg.Rf = void 0; | |
Pg.Ej = function() { | |
return Pg.Rf ? Pg.Rf : Pg.Rf = new Pg | |
}; | |
Pg.prototype.Xj = 0; | |
var P = function(a) { | |
M.call(this); | |
this.G = a || Ac(); | |
this.sg = Qg; | |
this.ta = null; | |
this.T = !1; | |
this.v = null; | |
this.fc = void 0; | |
this.kb = this.ea = this.K = null; | |
this.Ui = !1 | |
}; | |
x(P, M); | |
P.prototype.Lj = Pg.Ej(); | |
var Qg = null; | |
P.prototype.getId = function() { | |
return this.ta || (this.ta = ":" + (this.Lj.Xj++).toString(36)) | |
}; | |
P.prototype.F = function() { | |
return this.v | |
}; | |
P.prototype.zh = function() { | |
this.fc || (this.fc = new Mg(this)); | |
return this.fc | |
}; | |
var Rg = function(a, b) { | |
if (a == b) throw Error("Unable to set parent component"); | |
var c; | |
if (c = b && a.K && a.ta) { | |
c = a.K; | |
var d = a.ta; | |
c = c.kb && d ? rb(c.kb, d) || null : null | |
} | |
if (c && a.K != b) throw Error("Unable to set parent component"); | |
a.K = b; | |
P.s.Ke.call(a, b) | |
}; | |
k = P.prototype; | |
k.getParent = function() { | |
return this.K | |
}; | |
k.Ke = function(a) { | |
if (this.K && this.K != a) throw Error("Method not supported"); | |
P.s.Ke.call(this, a) | |
}; | |
k.Z = function() { | |
return this.G | |
}; | |
k.Yb = function() { | |
this.v = this.G.createElement("DIV") | |
}; | |
k.render = function(a) { | |
Sg(this, a) | |
}; | |
var Sg = function(a, b, c) { | |
if (a.T) throw Error("Component already rendered"); | |
a.v || a.Yb(); | |
b ? b.insertBefore(a.v, c || null) : a.G.sb().body.appendChild(a.v); | |
a.K && !a.K.T || a.Zb() | |
}, | |
Tg = function(a, b) { | |
if (a.T) throw Error("Component already rendered"); | |
if (b) { | |
a.Ui = !0; | |
var c = H(b); | |
a.G && a.G.sb() == c || (a.G = Ac(b)); | |
a.nb(b); | |
a.Zb() | |
} else throw Error("Invalid element to decorate"); | |
}; | |
k = P.prototype; | |
k.nb = function(a) { | |
this.v = a | |
}; | |
k.Zb = function() { | |
this.T = !0; | |
Ug(this, function(a) { | |
!a.T && a.F() && a.Zb() | |
}) | |
}; | |
k.od = function() { | |
Ug(this, function(a) { | |
a.T && a.od() | |
}); | |
this.fc && this.fc.Yc(); | |
this.T = !1 | |
}; | |
k.X = function() { | |
this.T && this.od(); | |
this.fc && (this.fc.Db(), delete this.fc); | |
Ug(this, function(a) { | |
a.Db() | |
}); | |
!this.Ui && this.v && Pc(this.v); | |
this.K = this.v = this.kb = this.ea = null; | |
P.s.X.call(this) | |
}; | |
k.Sb = function(a, b) { | |
var c = this.ea ? this.ea.length : 0; | |
if (a.T && (b || !this.T)) throw Error("Component already rendered"); | |
if (0 > c || c > (this.ea ? this.ea.length : 0)) throw Error("Child component index out of bounds"); | |
this.kb && this.ea || (this.kb = {}, this.ea = []); | |
if (a.getParent() == this) { | |
var d = a.getId(); | |
this.kb[d] = a; | |
db(this.ea, a) | |
} else { | |
var d = this.kb, | |
e = a.getId(); | |
if (null !== d && e in d) throw Error('The object already contains the key "' + e + '"'); | |
d[e] = a | |
} | |
Rg(a, this); | |
ib(this.ea, c, 0, a); | |
a.T && this.T && a.getParent() == this ? (d = this.v, c = | |
d.childNodes[c] || null, c != a.F() && d.insertBefore(a.F(), c)) : b ? (this.v || this.Yb(), c = this.ea ? this.ea[c + 1] || null : null, Sg(a, this.v, c ? c.v : null)) : this.T && !a.T && a.v && a.v.parentNode && 1 == a.v.parentNode.nodeType && a.Zb() | |
}; | |
var Ug = function(a, b) { | |
a.ea && B(a.ea, b, void 0) | |
}; | |
P.prototype.removeChild = function(a, b) { | |
if (a) { | |
var c = u(a) ? a : a.getId(); | |
a = this.kb && c ? rb(this.kb, c) || null : null; | |
if (c && a) { | |
var d = this.kb; | |
c in d && delete d[c]; | |
db(this.ea, a); | |
b && (a.od(), a.v && Pc(a.v)); | |
Rg(a, null) | |
} | |
} | |
if (!a) throw Error("Child is not in parent component"); | |
return a | |
}; | |
/* | |
Portions of this code are from MochiKit, received by | |
The Closure Authors under the MIT license. All other code is Copyright | |
2005-2009 The Closure Authors. All Rights Reserved. | |
*/ | |
var Q = function(a, b) { | |
this.Ie = []; | |
this.gi = a; | |
this.nh = b || null; | |
this.sd = this.Ka = !1; | |
this.Pb = void 0; | |
this.wg = this.mj = this.qf = !1; | |
this.Te = 0; | |
this.K = null; | |
this.Yd = 0 | |
}; | |
Q.prototype.cancel = function(a) { | |
if (this.Ka) this.Pb instanceof Q && this.Pb.cancel(); | |
else { | |
if (this.K) { | |
var b = this.K; | |
delete this.K; | |
a ? b.cancel(a) : (b.Yd--, 0 >= b.Yd && b.cancel()) | |
} | |
this.gi ? this.gi.call(this.nh, this) : this.wg = !0; | |
this.Ka || this.Y(new Vg) | |
} | |
}; | |
Q.prototype.jh = function(a, b) { | |
this.qf = !1; | |
Wg(this, a, b) | |
}; | |
var Wg = function(a, b, c) { | |
a.Ka = !0; | |
a.Pb = c; | |
a.sd = !b; | |
Xg(a) | |
}, | |
Zg = function(a) { | |
if (a.Ka) { | |
if (!a.wg) throw new Yg; | |
a.wg = !1 | |
} | |
}; | |
Q.prototype.callback = function(a) { | |
Zg(this); | |
Wg(this, !0, a) | |
}; | |
Q.prototype.Y = function(a) { | |
Zg(this); | |
Wg(this, !1, a) | |
}; | |
var R = function(a, b, c) { | |
return $g(a, b, null, c) | |
}, | |
S = function(a, b, c) { | |
return $g(a, null, b, c) | |
}, | |
ah = function(a, b, c) { | |
$g(a, b, b, c) | |
}, | |
$g = function(a, b, c, d) { | |
a.Ie.push([b, c, d]); | |
a.Ka && Xg(a); | |
return a | |
}; | |
Q.prototype.then = function(a, b, c) { | |
var d, e, f = new md(function(a, b) { | |
d = a; | |
e = b | |
}); | |
$g(this, d, function(a) { | |
a instanceof Vg ? f.cancel() : e(a) | |
}); | |
return f.then(a, b, c) | |
}; | |
jd(Q); | |
var bh = function(a, b) { | |
$g(a, b.callback, b.Y, b) | |
}, | |
ch = function(a, b) { | |
b instanceof Q ? R(a, w(b.rf, b)) : R(a, function() { | |
return b | |
}) | |
}; | |
Q.prototype.rf = function(a) { | |
var b = new Q; | |
bh(this, b); | |
a && (b.K = this, this.Yd++); | |
return b | |
}; | |
var dh = function(a) { | |
return bb(a.Ie, function(a) { | |
return wa(a[1]) | |
}) | |
}, | |
Xg = function(a) { | |
if (a.Te && a.Ka && dh(a)) { | |
var b = a.Te, | |
c = eh[b]; | |
c && (r.clearTimeout(c.ta), delete eh[b]); | |
a.Te = 0 | |
} | |
a.K && (a.K.Yd--, delete a.K); | |
for (var b = a.Pb, d = c = !1; a.Ie.length && !a.qf;) { | |
var e = a.Ie.shift(), | |
f = e[0], | |
g = e[1], | |
e = e[2]; | |
if (f = a.sd ? g : f) try { | |
var h = f.call(e || a.nh, b); | |
t(h) && (a.sd = a.sd && (h == b || h instanceof Error), a.Pb = b = h); | |
if (kd(b) || "function" === typeof r.Promise && b instanceof r.Promise) d = !0, a.qf = !0 | |
} catch (l) { | |
b = l, a.sd = !0, dh(a) || (c = !0) | |
} | |
} | |
a.Pb = b; | |
d && (h = w(a.jh, | |
a, !0), d = w(a.jh, a, !1), b instanceof Q ? ($g(b, h, d), b.mj = !0) : b.then(h, d)); | |
c && (b = new fh(b), eh[b.ta] = b, a.Te = b.ta) | |
}, | |
gh = function(a) { | |
var b = new Q; | |
b.callback(); | |
R(b, function() { | |
return a | |
}); | |
return b | |
}, | |
Yg = function() { | |
Fa.call(this) | |
}; | |
x(Yg, Fa); | |
Yg.prototype.message = "Deferred has already fired"; | |
Yg.prototype.name = "AlreadyCalledError"; | |
var Vg = function() { | |
Fa.call(this) | |
}; | |
x(Vg, Fa); | |
Vg.prototype.message = "Deferred was canceled"; | |
Vg.prototype.name = "CanceledError"; | |
var fh = function(a) { | |
this.ta = r.setTimeout(w(this.Gk, this), 0); | |
this.je = a | |
}; | |
fh.prototype.Gk = function() { | |
delete eh[this.ta]; | |
throw this.je; | |
}; | |
var eh = {}; | |
var hh = function(a, b) { | |
if ("isOnce" in a) return a; | |
var c = !1, | |
d = function() { | |
if (c) { | |
if (b) return; | |
throw Error("already called: " + a); | |
} | |
c = !0; | |
a.apply(r, arguments) | |
}; | |
d.isOnce = !0; | |
return d | |
}, | |
ih = function(a) { | |
if ("isAsyncOnce" in a) return a; | |
var b = hh(function() { | |
var b = arguments; | |
window.setTimeout(function() { | |
a.apply(r, b) | |
}, 0) | |
}); | |
b.isAsyncOnce = !0; | |
return b | |
}, | |
jh = function(a, b) { | |
var c = Ea() + 2E3, | |
d = function() { | |
var e; | |
try { | |
e = a() | |
} catch (f) { | |
return b(!1, f) | |
} | |
if (e) return b(!0); | |
if (c && Ea() + 16 > c) return b(!1); | |
r.setTimeout(d, 16) | |
}; | |
r.setTimeout(d, 0) | |
}; | |
var kh = function(a) { | |
this.fi = a || "" | |
}; | |
k = kh.prototype; | |
k.getName = function() { | |
return this.fi | |
}; | |
k.start = function() { | |
this.reset() | |
}; | |
k.tick = function(a, b) { | |
this.Se.tick(a, null, (b || new Date).getTime()) | |
}; | |
k.reset = function() { | |
this.Se = new window.jstiming.Timer(this.getStartTime()); | |
this.Se.name = this.fi | |
}; | |
k.getStartTime = function() { | |
return (new Date).getTime() | |
}; | |
k.report = function(a) { | |
window.jstiming.sn = this.Tk || "userfeedback_web_client"; | |
window.jstiming.report(this.Se, a || {}, "https://www.google.com/csi"); | |
this.Se = null | |
}; | |
var lh = function(a) { | |
this.qg = a || 0 | |
}; | |
k = lh.prototype; | |
k.onError = function(a) { | |
throw a; | |
}; | |
k.Zj = ra; | |
k.qg = 0; | |
k.nd = function(a) { | |
a instanceof Q ? (R(a, this.nd, this), S(a, this.onError, this)) : wa(a) && Lg(w(this.zk, this, a)) | |
}; | |
k.forEach = function(a, b, c) { | |
function d() { | |
if (f >= a.length) e.callback(null); | |
else try { | |
return b.call(c, a[f], f), ++f, d | |
} catch (g) { | |
e.Y(g) | |
} | |
} | |
var e = new Q, | |
f = 0; | |
this.nd(d); | |
return e | |
}; | |
k.zk = function(a) { | |
try { | |
for (var b = Ea() + this.qg, c = a(); wa(c) && Ea() < b;) c = c(); | |
if (wa(c) || c instanceof Q) this.Zj(), this.nd(c) | |
} catch (d) { | |
this.onError(d) | |
} | |
}; | |
var mh = function(a, b) { | |
Q.call(this, a, b); | |
this.Dd = 0; | |
this.Ki = 1; | |
this.sk = []; | |
R(this, this.Dj, this) | |
}; | |
x(mh, Q); | |
var nh = function(a, b) { | |
a.Ki = 100 / b; | |
return a | |
}; | |
mh.prototype.za = function() { | |
this.Ka || (this.Dd += this.Ki, oh(this)) | |
}; | |
var oh = function(a) { | |
B(a.sk, function(a) { | |
a.callback.call(a.context, this.Dd) | |
}, a) | |
}; | |
mh.prototype.Dj = function() { | |
100 <= this.Dd || (this.Dd = 100, oh(this)) | |
}; | |
var ph = function(a) { | |
K.call(this); | |
this.Sh = 1; | |
this.Be = []; | |
this.Fe = 0; | |
this.Aa = []; | |
this.vb = {}; | |
this.gj = !!a | |
}; | |
x(ph, K); | |
ph.prototype.subscribe = function(a, b, c) { | |
var d = this.vb[a]; | |
d || (d = this.vb[a] = []); | |
var e = this.Sh; | |
this.Aa[e] = a; | |
this.Aa[e + 1] = b; | |
this.Aa[e + 2] = c; | |
this.Sh = e + 3; | |
d.push(e); | |
return e | |
}; | |
ph.prototype.unsubscribe = function(a, b, c) { | |
if (a = this.vb[a]) { | |
var d = this.Aa; | |
if (a = cb(a, function(a) { | |
return d[a + 1] == b && d[a + 2] == c | |
})) return this.Eg(a) | |
} | |
return !1 | |
}; | |
ph.prototype.Eg = function(a) { | |
var b = this.Aa[a]; | |
if (b) { | |
var c = this.vb[b]; | |
0 != this.Fe ? (this.Be.push(a), this.Aa[a + 1] = ra) : (c && db(c, a), delete this.Aa[a], delete this.Aa[a + 1], delete this.Aa[a + 2]) | |
} | |
return !!b | |
}; | |
ph.prototype.uk = function(a, b) { | |
var c = this.vb[a]; | |
if (c) { | |
for (var d = Array(arguments.length - 1), e = 1, f = arguments.length; e < f; e++) d[e - 1] = arguments[e]; | |
if (this.gj) | |
for (e = 0; e < c.length; e++) { | |
var g = c[e]; | |
qh(this.Aa[g + 1], this.Aa[g + 2], d) | |
} else { | |
this.Fe++; | |
try { | |
for (e = 0, f = c.length; e < f; e++) g = c[e], this.Aa[g + 1].apply(this.Aa[g + 2], d) | |
} finally { | |
if (this.Fe--, 0 < this.Be.length && 0 == this.Fe) | |
for (; c = this.Be.pop();) this.Eg(c) | |
} | |
} | |
} | |
}; | |
var qh = function(a, b, c) { | |
hd(function() { | |
a.apply(b, c) | |
}) | |
}; | |
ph.prototype.clear = function(a) { | |
if (a) { | |
var b = this.vb[a]; | |
b && (B(b, this.Eg, this), delete this.vb[a]) | |
} else this.Aa.length = 0, this.vb = {} | |
}; | |
ph.prototype.qc = function(a) { | |
if (a) { | |
var b = this.vb[a]; | |
return b ? b.length : 0 | |
} | |
a = 0; | |
for (b in this.vb) a += this.qc(b); | |
return a | |
}; | |
ph.prototype.X = function() { | |
ph.s.X.call(this); | |
this.clear(); | |
this.Be.length = 0 | |
}; | |
var rh = C("Firefox"), | |
sh = cc() || C("iPod"), | |
th = C("iPad"), | |
uh = C("Android") && !(yb() || C("Firefox") || C("Opera") || C("Silk")), | |
vh = yb(), | |
wh = C("Safari") && !(yb() || C("Coast") || C("Opera") || C("Edge") || C("Silk") || C("Android")) && !(cc() || C("iPad") || C("iPod")); | |
var xh = function(a) { | |
return (a = a.exec(vb)) ? a[1] : "" | |
}, | |
zh = function() { | |
if (rh) return xh(/Firefox\/([0-9.]+)/); | |
if (F || ic || hc) return uc; | |
if (vh) return xh(/Chrome\/([0-9.]+)/); | |
if (wh && !(cc() || C("iPad") || C("iPod"))) return xh(/Version\/([0-9.]+)/); | |
if (sh || th) { | |
var a = /Version\/(\S+).*Mobile\/(\S+)/.exec(vb); | |
if (a) return a[1] + "." + a[2] | |
} else if (uh) return (a = xh(/Android\s+([0-9.]+)/)) ? a : xh(/Version\/([0-9.]+)/); | |
return "" | |
}(), | |
Ah = function(a) { | |
return 0 <= Wa(zh, a) | |
}; | |
var T = function(a, b, c) { | |
this.Dg = a; | |
this.we = b; | |
this.sourceId = c | |
}, | |
Bh = {}, | |
Ch = function(a) { | |
var b; | |
b = a[0]; | |
b = Bh.hasOwnProperty(b) ? Bh[b] : null; | |
if (!b) return null; | |
b = new b; | |
b.ba(a); | |
return b | |
}; | |
T.prototype.ja = function() { | |
return [this.Dg, this.we, this.sourceId] | |
}; | |
T.prototype.ba = function(a) { | |
this.Dg = a[0]; | |
this.we = a[1]; | |
this.sourceId = a[2]; | |
return 3 | |
}; | |
var Dh = function(a) { | |
T.call(this, "e"); | |
this.message = "" + (a || "") | |
}; | |
x(Dh, T); | |
Bh.e = Dh; | |
Dh.prototype.ja = function() { | |
return Dh.s.ja.call(this).concat([this.message]) | |
}; | |
Dh.prototype.ba = function(a) { | |
var b = Dh.s.ba.call(this, a); | |
this.message = a[b++]; | |
return b | |
}; | |
var Eh = function(a) { | |
this.Nk = a | |
}; | |
Eh.prototype.postMessage = function(a, b) { | |
this.Nk.postMessage(a, b) | |
}; | |
var Fh = function(a, b) { | |
K.call(this); | |
this.eg = a || "*"; | |
this.Fk = b ? qd(b) : b; | |
this.Ge = new ph; | |
bf(this, this.Ge); | |
this.va = new Mg(this); | |
bf(this, this.va); | |
this.Ad = !1; | |
this.Ce = {} | |
}; | |
x(Fh, K); | |
var Gh = F && Ah("10") || rh && Ah("6") || wh && Ah("5") || vh && Ah("12"); | |
k = Fh.prototype; | |
k.subscribe = function(a, b, c) { | |
this.Ge.subscribe(a, b, c) | |
}; | |
k.unsubscribe = function(a, b, c) { | |
this.Ge.unsubscribe(a, b, c) | |
}; | |
k.open = function(a) { | |
this.Ad || (this.va.listen(a || r, "message", this.Hh, !0), this.Ad = !0) | |
}; | |
k.close = function(a) { | |
this.Ad && (this.va.We(a || r, "message", this.Hh, !0), this.Ad = !1) | |
}; | |
k.Db = function() { | |
Fh.s.Db.call(this); | |
this.close() | |
}; | |
k.send = function(a, b, c, d) { | |
var e = sd(), | |
f = a.ja(); | |
f.unshift("google-feedback-message|"); | |
Gh || (f = JSON.stringify(f)); | |
c = c ? qd(new Eh(c)) : this.Fk; | |
var g = d || this.eg; | |
if (!c) throw Error("No target for message"); | |
var h = a.we; | |
null != h && this.Ad && (this.Ce[h] = e); | |
var l, m = this.Ce; | |
r.setTimeout(function() { | |
null != h && m[h] && (delete m[h], l = !0, e.reject("timeout")) | |
}, b || 500); | |
c.then(function(a) { | |
l || a.postMessage(f, g) | |
}); | |
return e.tk | |
}; | |
k.Hh = function(a) { | |
a = a.$b; | |
var b = Hh(a.data), | |
c = a.source, | |
d = a.origin; | |
if ((d == this.eg || "*" == this.eg) && "google-feedback-message|" == b.shift()) { | |
var e = Ch(b); | |
if (e) { | |
e.Sj = d; | |
e.sourceId && (a = this.Ce[e.sourceId], delete this.Ce[e.sourceId], a && (e instanceof Dh ? a.reject(e.message) : a.resolve(e))); | |
var f = !1; | |
a = w(function(a, b) { | |
if (!f && a) return f = !0, a.sourceId = e.we, this.send(a, b, c, d) | |
}, this); | |
try { | |
this.Ge.uk(e.Dg, e, d, a, c) | |
} catch (g) { | |
a(new Dh(g)) | |
} | |
} | |
} | |
}; | |
var Hh = function(a) { | |
if (ta(a)) return a.slice(0); | |
if (u(a) && Ha(a, "[")) try { | |
var b = JSON.parse(a); | |
return ta(b) ? b : [] | |
} catch (c) {} | |
return [] | |
}; | |
var Ih = { | |
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: "#9370db", | |
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: "#db7093", | |
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 Nh = function(a) { | |
var b = {}; | |
a = String(a); | |
var c = "#" == a.charAt(0) ? a : "#" + a; | |
if (Jh.test(c)) return b.ud = Kh(c), b.type = "hex", b; | |
a: { | |
var d = a.match(Lh); | |
if (d) { | |
var c = Number(d[1]), | |
e = Number(d[2]), | |
d = Number(d[3]); | |
if (0 <= c && 255 >= c && 0 <= e && 255 >= e && 0 <= d && 255 >= d) { | |
c = [c, e, d]; | |
break a | |
} | |
} | |
c = [] | |
} | |
if (c.length) { | |
e = c[0]; | |
a = c[1]; | |
c = c[2]; | |
e = Number(e); | |
a = Number(a); | |
c = Number(c); | |
if (e != (e & 255) || a != (a & 255) || c != (c & 255)) throw Error('"(' + e + "," + a + "," + c + '") is not a valid RGB color'); | |
e = Mh(e.toString(16)); | |
a = Mh(a.toString(16)); | |
c = Mh(c.toString(16)); | |
b.ud = | |
"#" + e + a + c; | |
b.type = "rgb"; | |
return b | |
} | |
if (Ih && (c = Ih[a.toLowerCase()])) return b.ud = c, b.type = "named", b; | |
throw Error(a + " is not a valid color string"); | |
}, | |
Oh = /#(.)(.)(.)/, | |
Kh = function(a) { | |
if (!Jh.test(a)) throw Error("'" + a + "' is not a valid hex color"); | |
4 == a.length && (a = a.replace(Oh, "#$1$1$2$2$3$3")); | |
return a.toLowerCase() | |
}, | |
Ph = function(a) { | |
a = Kh(a); | |
return [parseInt(a.substr(1, 2), 16), parseInt(a.substr(3, 2), 16), parseInt(a.substr(5, 2), 16)] | |
}, | |
Jh = /^#(?:[0-9a-f]{3}){1,2}$/i, | |
Lh = /^(?:rgb)?\((0|[1-9]\d{0,2}),\s?(0|[1-9]\d{0,2}),\s?(0|[1-9]\d{0,2})\)$/i, | |
Mh = function(a) { | |
return 1 == a.length ? "0" + a : a | |
}; | |
var Yh = function(a, b, c, d, e, f, g) { | |
g = g || { | |
ignoreMouse: !0, | |
ignoreAnimation: !0, | |
ignoreClear: !0 | |
}; | |
g.offsetX = c; | |
g.offsetY = d; | |
t(e) && (g.scaleWidth = e); | |
t(f) && (g.scaleHeight = f); | |
Xh(a, b, g) | |
}, | |
Xh = function(a, b, c) { | |
if (null == a && null == b && null == c) { | |
b = document.getElementsByTagName("svg"); | |
for (var d = 0; d < b.length; d++) { | |
a = b[d]; | |
c = document.createElement("canvas"); | |
c.width = a.clientWidth; | |
c.height = a.clientHeight; | |
a.parentNode.insertBefore(c, a); | |
a.parentNode.removeChild(a); | |
var e = document.createElement("div"); | |
e.appendChild(a); | |
Xh(c, e.innerHTML, {}) | |
} | |
} else { | |
c = c || {}; | |
"string" == typeof a && (a = document.getElementById(a)); | |
null != a.Qb && a.Qb.stop(); | |
d = Zh(); | |
if (1 != a.childNodes.length || "OBJECT" != a.childNodes[0].nodeName) a.Qb = d; | |
d.O = c; | |
a = a.getContext("2d"); | |
"undefined" != typeof b.documentElement ? d.Yh(a, b) : "<" == b.substr(0, 1) ? d.Xh(a, b) : d.load(a, b) | |
} | |
}, | |
Zh = function() { | |
var a = { | |
Og: 30, | |
Qd: 3E4, | |
init: function(b) { | |
var c = 0; | |
a.cj = function() { | |
c++; | |
return "canvg" + c | |
}; | |
a.dd = {}; | |
a.ic = {}; | |
a.cf = []; | |
a.Pd = []; | |
a.mb = b; | |
a.oa = new function() { | |
this.bd = []; | |
this.Wi = function() { | |
this.bd = [] | |
}; | |
this.fd = function(a, | |
b) { | |
this.bd.push({ | |
width: a, | |
height: b | |
}) | |
}; | |
this.Rg = function() { | |
this.bd.pop() | |
}; | |
this.Mg = function() { | |
return this.bd[this.bd.length - 1] | |
}; | |
this.width = function() { | |
return this.Mg().width | |
}; | |
this.height = function() { | |
return this.Mg().height | |
}; | |
this.Jg = function(a) { | |
return null != a && "number" == typeof a ? a : "x" == a ? this.width() : "y" == a ? this.height() : Math.sqrt(Math.pow(this.width(), 2) + Math.pow(this.height(), 2)) / Math.sqrt(2) | |
} | |
} | |
} | |
}; | |
a.init(); | |
var b = function(a) { | |
return window.console && window.console.log ? (window.console.log(a), !0) : !1 | |
}; | |
a.Pg = function() { | |
for (var b = | |
0; b < a.Pd.length; b++) | |
if (!a.Pd[b].loaded) return !1; | |
return !0 | |
}; | |
a.trim = function(a) { | |
return a.replace(/^\s+|\s+$/g, "") | |
}; | |
a.Wa = function(a) { | |
return a.replace(/[\s\r\t\n]+/gm, " ") | |
}; | |
a.mf = function(a) { | |
var b; | |
b = window.XMLHttpRequest ? new XMLHttpRequest : new ActiveXObject("Microsoft.XMLHTTP"); | |
b.open("GET", a, !1); | |
b.send(null); | |
return b.responseText | |
}; | |
a.ji = function(a) { | |
if (window.DOMParser) return (new DOMParser).parseFromString(a, "text/xml"); | |
a = a.replace(/<!DOCTYPE svg[^>]*>/, ""); | |
var b = new ActiveXObject("Microsoft.XMLDOM"); | |
b.async = | |
"false"; | |
b.loadXML(a); | |
return b | |
}; | |
a.o = function(a, b) { | |
this.name = a; | |
this.value = b | |
}; | |
a.o.prototype.j = function() { | |
return null != this.value && "" !== this.value | |
}; | |
a.o.prototype.D = function() { | |
if (!this.j()) return 0; | |
var a = parseFloat(this.value); | |
(this.value + "").match(/%$/) && (a /= 100); | |
return a | |
}; | |
a.o.prototype.wb = function(a) { | |
return this.j() ? this.value : a | |
}; | |
a.o.prototype.ag = function(a) { | |
return this.j() ? this.D() : a | |
}; | |
a.o.prototype.Td = function(b) { | |
var c = this.value; | |
if (null != b && "" != b && "string" == typeof this.value) try { | |
var e = Ph(Nh(this.value).ud), | |
c = "rgba(" + e[0] + ", " + e[1] + ", " + e[2] + ", " + b + ")" | |
} catch (f) {} | |
return new a.o(this.name, c) | |
}; | |
a.o.prototype.fa = function() { | |
var b = this.value.match(/#([^\)'"]+)/); | |
b && (b = b[1]); | |
b || (b = this.value); | |
return a.dd[b] | |
}; | |
a.o.prototype.xd = function() { | |
return 0 == this.value.indexOf("url(") | |
}; | |
a.o.prototype.xh = function(b, d) { | |
var c = this.fa(); | |
if (null != c && c.kh) return c.kh(a.mb, b, d); | |
if (null != c && c.createPattern) { | |
if (c.dc().j()) { | |
var f = c.h("patternTransform"), | |
c = c.dc().fa(); | |
f.j() && (c.h("patternTransform", !0).value = f.value) | |
} | |
return c.createPattern(a.mb, | |
b) | |
} | |
return null | |
}; | |
a.o.prototype.wh = function(b) { | |
var c = 12, | |
e = new a.o("fontSize", a.Dc.Fc(a.mb.font).fontSize); | |
e.j() && (c = e.l(b)); | |
return c | |
}; | |
a.o.prototype.Hj = function() { | |
return (this.value + "").replace(/[0-9\.\-]/g, "") | |
}; | |
a.o.prototype.l = function(b, d) { | |
if (!this.j()) return 0; | |
var c = this.value + ""; | |
if (c.match(/em$/)) return this.D() * this.wh(b); | |
if (c.match(/ex$/)) return this.D() * this.wh(b) / 2; | |
if (c.match(/px$/)) return this.D(); | |
if (c.match(/pt$/)) return 96 * this.D() * (1 / 72); | |
if (c.match(/pc$/)) return 15 * this.D(); | |
if (c.match(/cm$/)) return 96 * | |
this.D() / 2.54; | |
if (c.match(/mm$/)) return 96 * this.D() / 25.4; | |
if (c.match(/in$/)) return 96 * this.D(); | |
if (c.match(/%$/)) return this.D() * a.oa.Jg(b); | |
c = this.D(); | |
return d && 1 > c ? c * a.oa.Jg(b) : c | |
}; | |
a.o.prototype.Ni = function() { | |
if (!this.j()) return 0; | |
var a = this.value + ""; | |
if (a.match(/s$/)) return 1E3 * this.D(); | |
a.match(/ms$/); | |
return this.D() | |
}; | |
a.o.prototype.Jd = function() { | |
if (!this.j()) return 0; | |
var a = this.value + ""; | |
return a.match(/deg$/) ? this.D() * (Math.PI / 180) : a.match(/grad$/) ? this.D() * (Math.PI / 200) : a.match(/rad$/) ? this.D() : this.D() * | |
(Math.PI / 180) | |
}; | |
a.Dc = new function() { | |
this.ic = "normal|italic|oblique|inherit"; | |
this.dj = "normal|small-caps|inherit"; | |
this.ej = "normal|bold|bolder|lighter|100|200|300|400|500|600|700|800|900|inherit"; | |
this.Kg = function(b, c, f, g, h, l) { | |
l = null != l ? this.Fc(l) : this.Kg("", "", "", "", "", a.mb.font); | |
return { | |
fontFamily: h || l.fontFamily, | |
fontSize: g || l.fontSize, | |
fontStyle: b || l.fontStyle, | |
fontWeight: f || l.fontWeight, | |
fontVariant: c || l.fontVariant, | |
toString: function() { | |
return [this.fontStyle, this.fontVariant, this.fontWeight, this.fontSize, | |
this.fontFamily | |
].join(" ") | |
} | |
} | |
}; | |
var b = this; | |
this.Fc = function(c) { | |
var d = {}; | |
c = a.trim(a.Wa(c || "")).split(" "); | |
for (var f = !1, g = !1, h = !1, l = !1, m = "", n = 0; n < c.length; n++) g || -1 == b.ic.indexOf(c[n]) ? l || -1 == b.dj.indexOf(c[n]) ? h || -1 == b.ej.indexOf(c[n]) ? f ? "inherit" != c[n] && (m += c[n]) : ("inherit" != c[n] && (d.fontSize = c[n].split("/")[0]), g = l = h = f = !0) : ("inherit" != c[n] && (d.fontWeight = c[n]), g = l = h = !0) : ("inherit" != c[n] && (d.fontVariant = c[n]), g = l = !0) : ("inherit" != c[n] && (d.fontStyle = c[n]), g = !0); | |
"" != m && (d.fontFamily = m); | |
return d | |
} | |
}; | |
a.Pa = | |
function(b) { | |
b = a.trim(a.Wa((b || "").replace(/,/g, " "))).split(" "); | |
for (var c = 0; c < b.length; c++) b[c] = parseFloat(b[c]); | |
return b | |
}; | |
a.W = function(a, b) { | |
this.x = a; | |
this.y = b | |
}; | |
a.W.prototype.Vd = function(a) { | |
return Math.atan2(a.y - this.y, a.x - this.x) | |
}; | |
a.W.prototype.Hc = function(a) { | |
var b = this.x * a[1] + this.y * a[3] + a[5]; | |
this.x = this.x * a[0] + this.y * a[2] + a[4]; | |
this.y = b | |
}; | |
a.Lg = function(b) { | |
b = a.Pa(b); | |
return new a.W(b[0], b[1]) | |
}; | |
a.Xi = function(b) { | |
b = a.Pa(b); | |
for (var c = [], e = 0; e < b.length; e += 2) c.push(new a.W(b[e], b[e + 1])); | |
return c | |
}; | |
a.Oa = function(a, | |
b, e, f) { | |
this.y2 = this.x2 = this.y1 = this.x1 = Number.NaN; | |
this.x = function() { | |
return this.x1 | |
}; | |
this.y = function() { | |
return this.y1 | |
}; | |
this.width = function() { | |
return this.x2 - this.x1 | |
}; | |
this.height = function() { | |
return this.y2 - this.y1 | |
}; | |
this.pa = function(a, b) { | |
if (null != a) { | |
if (isNaN(this.x1) || isNaN(this.x2)) this.x2 = this.x1 = a; | |
a < this.x1 && (this.x1 = a); | |
a > this.x2 && (this.x2 = a) | |
} | |
if (null != b) { | |
if (isNaN(this.y1) || isNaN(this.y2)) this.y2 = this.y1 = b; | |
b < this.y1 && (this.y1 = b); | |
b > this.y2 && (this.y2 = b) | |
} | |
}; | |
this.kf = function(a) { | |
this.pa(a, null) | |
}; | |
this.lf = function(a) { | |
this.pa(null, | |
a) | |
}; | |
this.Tg = function(a) { | |
this.pa(a.x1, a.y1); | |
this.pa(a.x2, a.y2) | |
}; | |
this.Ug = function(a, b, c, d, e, f) { | |
c = a + 2 / 3 * (c - a); | |
d = b + 2 / 3 * (d - b); | |
this.hf(a, b, c, c + 1 / 3 * (e - a), d, d + 1 / 3 * (f - b), e, f) | |
}; | |
this.hf = function(a, b, c, d, e, f, v, q) { | |
var g = [a, b], | |
h = [c, d], | |
l = [e, f], | |
m = [v, q]; | |
this.pa(g[0], g[1]); | |
this.pa(m[0], m[1]); | |
for (var n = 0; 1 >= n; n++) a = function(a) { | |
return Math.pow(1 - a, 3) * g[n] + 3 * Math.pow(1 - a, 2) * a * h[n] + 3 * (1 - a) * Math.pow(a, 2) * l[n] + Math.pow(a, 3) * m[n] | |
}, b = 6 * g[n] - 12 * h[n] + 6 * l[n], c = -3 * g[n] + 9 * h[n] - 9 * l[n] + 3 * m[n], d = 3 * h[n] - 3 * g[n], 0 == c ? 0 != b && (b = -d / b, 0 < | |
b && 1 > b && (0 == n && this.kf(a(b)), 1 == n && this.lf(a(b)))) : (d = Math.pow(b, 2) - 4 * d * c, 0 > d || (e = (-b + Math.sqrt(d)) / (2 * c), 0 < e && 1 > e && (0 == n && this.kf(a(e)), 1 == n && this.lf(a(e))), b = (-b - Math.sqrt(d)) / (2 * c), 0 < b && 1 > b && (0 == n && this.kf(a(b)), 1 == n && this.lf(a(b))))) | |
}; | |
this.Oj = function(a, b) { | |
return this.x1 <= a && a <= this.x2 && this.y1 <= b && b <= this.y2 | |
}; | |
this.pa(a, b); | |
this.pa(e, f) | |
}; | |
a.Sg = function(b) { | |
var c = this; | |
this.M = {}; | |
this.M.translate = function(b) { | |
this.p = a.Lg(b); | |
this.apply = function(a) { | |
a.translate(this.p.x || 0, this.p.y || 0) | |
}; | |
this.Ld = function(a) { | |
a.translate(-1 * | |
this.p.x || 0, -1 * this.p.y || 0) | |
}; | |
this.gd = function(a) { | |
a.Hc([1, 0, 0, 1, this.p.x || 0, this.p.y || 0]) | |
} | |
}; | |
this.M.rotate = function(b) { | |
b = a.Pa(b); | |
this.angle = new a.o("angle", b[0]); | |
this.cx = b[1] || 0; | |
this.cy = b[2] || 0; | |
this.apply = function(a) { | |
a.translate(this.cx, this.cy); | |
a.rotate(this.angle.Jd()); | |
a.translate(-this.cx, -this.cy) | |
}; | |
this.Ld = function(a) { | |
a.translate(this.cx, this.cy); | |
a.rotate(-1 * this.angle.Jd()); | |
a.translate(-this.cx, -this.cy) | |
}; | |
this.gd = function(a) { | |
var b = this.angle.Jd(); | |
a.Hc([1, 0, 0, 1, this.p.x || 0, this.p.y || 0]); | |
a.Hc([Math.cos(b), | |
Math.sin(b), -Math.sin(b), Math.cos(b), 0, 0 | |
]); | |
a.Hc([1, 0, 0, 1, 0, 0]) | |
} | |
}; | |
this.M.scale = function(b) { | |
this.p = a.Lg(b); | |
this.apply = function(a) { | |
a.scale(this.p.x || 1, this.p.y || this.p.x || 1) | |
}; | |
this.Ld = function(a) { | |
a.scale(1 / this.p.x || 1, 1 / this.p.y || this.p.x || 1) | |
}; | |
this.gd = function(a) { | |
a.Hc([this.p.x || 0, 0, 0, this.p.y || 0, 0, 0]) | |
} | |
}; | |
this.M.matrix = function(b) { | |
this.Jb = a.Pa(b); | |
this.apply = function(a) { | |
a.transform(this.Jb[0], this.Jb[1], this.Jb[2], this.Jb[3], this.Jb[4], this.Jb[5]) | |
}; | |
this.gd = function(a) { | |
a.Hc(this.Jb) | |
} | |
}; | |
this.M.Gc = function(b) { | |
this.i = | |
c.M.matrix; | |
this.i(b); | |
this.angle = new a.o("angle", b) | |
}; | |
this.M.Gc.prototype = new this.M.matrix; | |
this.M.skewX = function(a) { | |
this.i = c.M.Gc; | |
this.i(a); | |
this.Jb = [1, 0, Math.tan(this.angle.Jd()), 1, 0, 0] | |
}; | |
this.M.skewX.prototype = new this.M.Gc; | |
this.M.skewY = function(a) { | |
this.i = c.M.Gc; | |
this.i(a); | |
this.Jb = [1, Math.tan(this.angle.Jd()), 0, 1, 0, 0] | |
}; | |
this.M.skewY.prototype = new this.M.Gc; | |
this.M.Hk = { | |
translate: this.M.translate, | |
rotate: this.M.rotate, | |
scale: this.M.scale, | |
matrix: this.M.matrix, | |
SkewBase: this.M.Gc, | |
skewX: this.M.skewX, | |
skewY: this.M.skewY | |
}; | |
this.Ac = []; | |
this.apply = function(a) { | |
for (var b = 0; b < this.Ac.length; b++) this.Ac[b].apply(a) | |
}; | |
this.Ld = function(a) { | |
for (var b = this.Ac.length - 1; 0 <= b; b--) this.Ac[b].Ld(a) | |
}; | |
this.gd = function(a) { | |
for (var b = 0; b < this.Ac.length; b++) this.Ac[b].gd(a) | |
}; | |
b = a.trim(a.Wa(b)).replace(/\)(\s?,\s?)/g, ") ").split(/\s(?=[a-z])/); | |
for (var e = 0; e < b.length; e++) { | |
var f = a.trim(b[e].split("(")[0]), | |
g = b[e].split("(")[1].replace(")", ""), | |
g = new this.M.Hk[f](g); | |
g.type = f; | |
this.Ac.push(g) | |
} | |
}; | |
a.df = function(b, d, e, f, g, h, l, m, n, p) { | |
d = a.Wa(d); | |
d = d.replace(/^defer\s/, | |
""); | |
var c = d.split(" ")[0] || "xMidYMid"; | |
d = d.split(" ")[1] || "meet"; | |
var q = e / f, | |
A = g / h, | |
z = Math.min(q, A), | |
ka = Math.max(q, A); | |
"meet" == d && (f *= z, h *= z); | |
"slice" == d && (f *= ka, h *= ka); | |
n = new a.o("refX", n); | |
p = new a.o("refY", p); | |
n.j() && p.j() ? b.translate(-z * n.l("x"), -z * p.l("y")) : (c.match(/^xMid/) && ("meet" == d && z == A || "slice" == d && ka == A) && b.translate(e / 2 - f / 2, 0), c.match(/YMid$/) && ("meet" == d && z == q || "slice" == d && ka == q) && b.translate(0, g / 2 - h / 2), c.match(/^xMax/) && ("meet" == d && z == A || "slice" == d && ka == A) && b.translate(e - f, 0), c.match(/YMax$/) && | |
("meet" == d && z == q || "slice" == d && ka == q) && b.translate(0, g - h)); | |
"none" == c ? b.scale(q, A) : "meet" == d ? b.scale(z, z) : "slice" == d && b.scale(ka, ka); | |
b.translate(null == l ? 0 : -l, null == m ? 0 : -m) | |
}; | |
a.Element = {}; | |
a.ff = new a.o("EMPTY", ""); | |
a.Element.C = function(b) { | |
this.attributes = {}; | |
this.Na = {}; | |
this.children = []; | |
this.h = function(b, c) { | |
var d = this.attributes[b]; | |
if (null != d) return d; | |
1 == c && (d = new a.o(b, ""), this.attributes[b] = d); | |
return d || a.ff | |
}; | |
this.dc = function() { | |
for (var b in this.attributes) | |
if (b.match(/:href$/)) return this.attributes[b]; | |
return a.ff | |
}; | |
this.style = function(b, c) { | |
var d = this.Na[b]; | |
if (null != d) return d; | |
var e = this.h(b); | |
if (null != e && e.j()) return this.Na[b] = e; | |
e = this.parent; | |
if (null != e && (e = e.style(b), null != e && e.j())) return e; | |
1 == c && (d = new a.o(b, ""), this.Na[b] = d); | |
return d || a.ff | |
}; | |
this.render = function(a) { | |
if ("none" != this.style("display").value && "hidden" != this.h("visibility").value) { | |
a.save(); | |
if (this.h("mask").j()) { | |
var b = this.h("mask").fa(); | |
null != b && b.apply(a, this) | |
} else this.style("filter").j() ? (b = this.style("filter").fa(), null != b && b.apply(a, | |
this)) : (this.hb(a), this.Ma(a), this.uf(a)); | |
a.restore() | |
} | |
}; | |
this.hb = function() {}; | |
this.uf = function() {}; | |
this.Ma = function(a) { | |
for (var b = 0; b < this.children.length; b++) this.children[b].render(a) | |
}; | |
this.Sb = function(b, c) { | |
var d = b; | |
c && (d = a.ef(b)); | |
d.parent = this; | |
this.children.push(d) | |
}; | |
if (null != b && 1 == b.nodeType) { | |
for (var c = 0; c < b.childNodes.length; c++) { | |
var e = b.childNodes[c]; | |
1 == e.nodeType && this.Sb(e, !0); | |
this.eh && 3 == e.nodeType && "" != a.trim(a.Wa(e.nodeValue || e.text || "")) && this.Sb(new a.Element.Cg(e), !1) | |
} | |
for (c = 0; c < b.attributes.length; c++) e = | |
b.attributes[c], this.attributes[e.nodeName] = new a.o(e.nodeName, e.nodeValue); | |
c = a.ic[b.nodeName]; | |
if (null != c) | |
for (var f in c) this.Na[f] = c[f]; | |
if (this.h("class").j()) | |
for (var e = a.Wa(this.h("class").value).split(" "), g = 0; g < e.length; g++) { | |
c = a.ic["." + e[g]]; | |
if (null != c) | |
for (f in c) this.Na[f] = c[f]; | |
c = a.ic[b.nodeName + "." + e[g]]; | |
if (null != c) | |
for (f in c) this.Na[f] = c[f] | |
} | |
if (this.h("id").j() && (b = a.ic["#" + this.h("id").value], null != b)) | |
for (f in b) this.Na[f] = b[f]; | |
if (this.h("style").j()) | |
for (b = this.h("style").value.split(";"), | |
c = 0; c < b.length; c++) "" != a.trim(b[c]) && (e = b[c].split(":"), f = a.trim(e[0]), e = a.trim(e[1]), this.Na[f] = new a.o(f, e)); | |
this.h("id").j() && null == a.dd[this.h("id").value] && (a.dd[this.h("id").value] = this) | |
} | |
}; | |
a.Element.ca = function(b) { | |
this.i = a.Element.C; | |
this.i(b); | |
this.hb = function(b) { | |
if (this.style("fill").xd()) { | |
var c = this.style("fill").xh(this, this.style("fill-opacity")); | |
null != c && (b.fillStyle = c) | |
} else this.style("fill").j() && (c = this.style("fill"), "currentColor" == c.value && (c.value = this.style("color").value), b.fillStyle = | |
"none" == c.value ? "rgba(0,0,0,0)" : c.value); | |
this.style("fill-opacity").j() && (c = new a.o("fill", b.fillStyle), c = c.Td(this.style("fill-opacity").value), b.fillStyle = c.value); | |
this.style("stroke").xd() ? (c = this.style("stroke").xh(this, this.style("stroke-opacity")), null != c && (b.strokeStyle = c)) : this.style("stroke").j() && (c = this.style("stroke"), "currentColor" == c.value && (c.value = this.style("color").value), b.strokeStyle = "none" == c.value ? "rgba(0,0,0,0)" : c.value); | |
this.style("stroke-opacity").j() && (c = new a.o("stroke", | |
b.strokeStyle), c = c.Td(this.style("stroke-opacity").value), b.strokeStyle = c.value); | |
this.style("stroke-width").j() && (c = this.style("stroke-width").l(), b.lineWidth = 0 == c ? .001 : c); | |
this.style("stroke-linecap").j() && (b.lineCap = this.style("stroke-linecap").value); | |
this.style("stroke-linejoin").j() && (b.lineJoin = this.style("stroke-linejoin").value); | |
this.style("stroke-miterlimit").j() && (b.miterLimit = this.style("stroke-miterlimit").value); | |
this.style("stroke-dasharray").j() && (c = a.Pa(this.style("stroke-dasharray").value), | |
"undefined" != typeof b.setLineDash ? b.setLineDash(c) : "undefined" != typeof b.Lk ? b.Lk = c : "undefined" != typeof b.Uj && (b.Uj = c), c = this.style("stroke-dashoffset").ag(1), "undefined" != typeof b.lineDashOffset ? b.lineDashOffset = c : "undefined" != typeof b.Mk ? b.Mk = c : "undefined" != typeof b.Vj && (b.Vj = c)); | |
"undefined" != typeof b.font && (b.font = a.Dc.Kg(this.style("font-style").value, this.style("font-variant").value, this.style("font-weight").value, this.style("font-size").j() ? this.style("font-size").l() + "px" : "", this.style("font-family").value).toString()); | |
this.h("transform").j() && (new a.Sg(this.h("transform").value)).apply(b); | |
this.style("clip-path").j() && (c = this.style("clip-path").fa(), null != c && c.apply(b)); | |
this.style("opacity").j() && (b.globalAlpha = this.style("opacity").D()) | |
} | |
}; | |
a.Element.ca.prototype = new a.Element.C; | |
a.Element.Ea = function(b) { | |
this.i = a.Element.ca; | |
this.i(b); | |
this.path = function(b) { | |
b = b || null; | |
null != b && b.beginPath(); | |
return new a.Oa | |
}; | |
this.Ma = function(b) { | |
this.path(b); | |
a.Ec.pj(this, b); | |
"" != b.fillStyle && (this.h("fill-rule").j() ? b.fill(this.h("fill-rule").value) : | |
b.fill()); | |
"" != b.strokeStyle && b.stroke(); | |
var c = this.ne(); | |
if (null != c) { | |
if (this.style("marker-start").xd()) { | |
var d = this.style("marker-start").fa(); | |
d.render(b, c[0][0], c[0][1]) | |
} | |
if (this.style("marker-mid").xd()) | |
for (var d = this.style("marker-mid").fa(), g = 1; g < c.length - 1; g++) d.render(b, c[g][0], c[g][1]); | |
this.style("marker-end").xd() && (d = this.style("marker-end").fa(), d.render(b, c[c.length - 1][0], c[c.length - 1][1])) | |
} | |
}; | |
this.rb = function() { | |
return this.path() | |
}; | |
this.ne = function() { | |
return null | |
} | |
}; | |
a.Element.Ea.prototype = new a.Element.ca; | |
a.Element.Qb = function(b) { | |
this.i = a.Element.ca; | |
this.i(b || null); | |
this.jj = this.uf; | |
this.uf = function(b) { | |
this.jj(b); | |
a.oa.Rg() | |
}; | |
this.kc = this.hb; | |
this.hb = function(b) { | |
b.strokeStyle = "rgba(0,0,0,0)"; | |
b.lineCap = "butt"; | |
b.lineJoin = "miter"; | |
b.miterLimit = 4; | |
this.kc(b); | |
this.h("x").j() || (this.h("x", !0).value = 0); | |
this.h("y").j() || (this.h("y", !0).value = 0); | |
b.translate(this.h("x").l("x"), this.h("y").l("y")); | |
var c = a.oa.width(), | |
d = a.oa.height(); | |
this.h("width").j() || (this.h("width", !0).value = "100%"); | |
this.h("height").j() || (this.h("height", !0).value = "100%"); | |
if ("undefined" == typeof this.root) { | |
var c = this.h("width").l("x"), | |
d = this.h("height").l("y"), | |
g = 0, | |
h = 0; | |
this.h("refX").j() && this.h("refY").j() && (g = -this.h("refX").l("x"), h = -this.h("refY").l("y")); | |
b.beginPath(); | |
b.moveTo(g, h); | |
b.lineTo(c, h); | |
b.lineTo(c, d); | |
b.lineTo(g, d); | |
b.closePath(); | |
b.clip() | |
} | |
a.oa.fd(c, d); | |
if (this.h("viewBox").j()) { | |
var g = a.Pa(this.h("viewBox").value), | |
h = g[0], | |
l = g[1], | |
c = g[2], | |
d = g[3]; | |
a.df(b, this.h("preserveAspectRatio").value, a.oa.width(), c, a.oa.height(), d, h, l, this.h("refX").value, | |
this.h("refY").value); | |
a.oa.Rg(); | |
a.oa.fd(g[2], g[3]) | |
} | |
} | |
}; | |
a.Element.Qb.prototype = new a.Element.ca; | |
a.Element.rect = function(b) { | |
this.i = a.Element.Ea; | |
this.i(b); | |
this.path = function(b) { | |
var c = this.h("x").l("x"), | |
d = this.h("y").l("y"), | |
g = this.h("width").l("x"), | |
h = this.h("height").l("y"), | |
l = this.h("rx").l("x"), | |
m = this.h("ry").l("y"); | |
this.h("rx").j() && !this.h("ry").j() && (m = l); | |
this.h("ry").j() && !this.h("rx").j() && (l = m); | |
l = Math.min(l, g / 2); | |
m = Math.min(m, h / 2); | |
null != b && (b.beginPath(), b.moveTo(c + l, d), b.lineTo(c + g - l, d), b.quadraticCurveTo(c + | |
g, d, c + g, d + m), b.lineTo(c + g, d + h - m), b.quadraticCurveTo(c + g, d + h, c + g - l, d + h), b.lineTo(c + l, d + h), b.quadraticCurveTo(c, d + h, c, d + h - m), b.lineTo(c, d + m), b.quadraticCurveTo(c, d, c + l, d), b.closePath()); | |
return new a.Oa(c, d, c + g, d + h) | |
} | |
}; | |
a.Element.rect.prototype = new a.Element.Ea; | |
a.Element.gh = function(b) { | |
this.i = a.Element.Ea; | |
this.i(b); | |
this.path = function(b) { | |
var c = this.h("cx").l("x"), | |
d = this.h("cy").l("y"), | |
g = this.h("r").l(); | |
null != b && (b.beginPath(), b.arc(c, d, g, 0, 2 * Math.PI, !0), b.closePath()); | |
return new a.Oa(c - g, d - g, c + g, d + g) | |
} | |
}; | |
a.Element.gh.prototype = new a.Element.Ea; | |
a.Element.ellipse = function(b) { | |
this.i = a.Element.Ea; | |
this.i(b); | |
this.path = function(b) { | |
var c = (Math.sqrt(2) - 1) / 3 * 4, | |
d = this.h("rx").l("x"), | |
g = this.h("ry").l("y"), | |
h = this.h("cx").l("x"), | |
l = this.h("cy").l("y"); | |
null != b && (b.beginPath(), b.moveTo(h, l - g), b.bezierCurveTo(h + c * d, l - g, h + d, l - c * g, h + d, l), b.bezierCurveTo(h + d, l + c * g, h + c * d, l + g, h, l + g), b.bezierCurveTo(h - c * d, l + g, h - d, l + c * g, h - d, l), b.bezierCurveTo(h - d, l - c * g, h - c * d, l - g, h, l - g), b.closePath()); | |
return new a.Oa(h - d, l - g, h + d, l + g) | |
} | |
}; | |
a.Element.ellipse.prototype = | |
new a.Element.Ea; | |
a.Element.Wf = function(b) { | |
this.i = a.Element.Ea; | |
this.i(b); | |
this.Bh = function() { | |
return [new a.W(this.h("x1").l("x"), this.h("y1").l("y")), new a.W(this.h("x2").l("x"), this.h("y2").l("y"))] | |
}; | |
this.path = function(b) { | |
var c = this.Bh(); | |
null != b && (b.beginPath(), b.moveTo(c[0].x, c[0].y), b.lineTo(c[1].x, c[1].y)); | |
return new a.Oa(c[0].x, c[0].y, c[1].x, c[1].y) | |
}; | |
this.ne = function() { | |
var a = this.Bh(), | |
b = a[0].Vd(a[1]); | |
return [ | |
[a[0], b], | |
[a[1], b] | |
] | |
} | |
}; | |
a.Element.Wf.prototype = new a.Element.Ea; | |
a.Element.De = function(b) { | |
this.i = | |
a.Element.Ea; | |
this.i(b); | |
this.points = a.Xi(this.h("points").value); | |
this.path = function(b) { | |
var c = new a.Oa(this.points[0].x, this.points[0].y); | |
null != b && (b.beginPath(), b.moveTo(this.points[0].x, this.points[0].y)); | |
for (var d = 1; d < this.points.length; d++) c.pa(this.points[d].x, this.points[d].y), null != b && b.lineTo(this.points[d].x, this.points[d].y); | |
return c | |
}; | |
this.ne = function() { | |
for (var a = [], b = 0; b < this.points.length - 1; b++) a.push([this.points[b], this.points[b].Vd(this.points[b + 1])]); | |
a.push([this.points[this.points.length - | |
1], a[a.length - 1][1]]); | |
return a | |
} | |
}; | |
a.Element.De.prototype = new a.Element.Ea; | |
a.Element.ki = function(b) { | |
this.i = a.Element.De; | |
this.i(b); | |
this.kj = this.path; | |
this.path = function(a) { | |
var b = this.kj(a); | |
null != a && (a.lineTo(this.points[0].x, this.points[0].y), a.closePath()); | |
return b | |
} | |
}; | |
a.Element.ki.prototype = new a.Element.De; | |
a.Element.path = function(b) { | |
this.i = a.Element.Ea; | |
this.i(b); | |
b = this.h("d").value; | |
b = b.replace(/,/gm, " "); | |
b = b.replace(/([MmZzLlHhVvCcSsQqTtAa])([MmZzLlHhVvCcSsQqTtAa])/gm, "$1 $2"); | |
b = b.replace(/([MmZzLlHhVvCcSsQqTtAa])([MmZzLlHhVvCcSsQqTtAa])/gm, | |
"$1 $2"); | |
b = b.replace(/([MmZzLlHhVvCcSsQqTtAa])([^\s])/gm, "$1 $2"); | |
b = b.replace(/([^\s])([MmZzLlHhVvCcSsQqTtAa])/gm, "$1 $2"); | |
b = b.replace(/([0-9])([+\-])/gm, "$1 $2"); | |
b = b.replace(/(\.[0-9]*)(\.)/gm, "$1 $2"); | |
b = b.replace(/([Aa](\s+[0-9]+){3})\s+([01])\s*([01])/gm, "$1 $3 $4 "); | |
b = a.Wa(b); | |
b = a.trim(b); | |
this.gf = new function(b) { | |
this.Bg = b.split(" "); | |
this.reset = function() { | |
this.se = -1; | |
this.Bd = this.be = ""; | |
this.start = new a.W(0, 0); | |
this.control = new a.W(0, 0); | |
this.current = new a.W(0, 0); | |
this.points = []; | |
this.Fa = [] | |
}; | |
this.Rh = | |
function() { | |
return this.se >= this.Bg.length - 1 | |
}; | |
this.Hb = function() { | |
return this.Rh() ? !0 : null != this.Bg[this.se + 1].match(/^[A-Za-z]$/) | |
}; | |
this.Tf = function() { | |
switch (this.be) { | |
case "m": | |
case "l": | |
case "h": | |
case "v": | |
case "c": | |
case "s": | |
case "q": | |
case "t": | |
case "a": | |
case "z": | |
return !0 | |
} | |
return !1 | |
}; | |
this.getToken = function() { | |
this.se++; | |
return this.Bg[this.se] | |
}; | |
this.Fb = function() { | |
return parseFloat(this.getToken()) | |
}; | |
this.Wj = function() { | |
this.Bd = this.be; | |
this.be = this.getToken() | |
}; | |
this.Ef = function() { | |
var b = new a.W(this.Fb(), this.Fb()); | |
return this.Rj(b) | |
}; | |
this.Af = function() { | |
var a = this.Ef(); | |
return this.control = a | |
}; | |
this.cc = function() { | |
var a = this.Ef(); | |
return this.current = a | |
}; | |
this.Ch = function() { | |
return "c" != this.Bd.toLowerCase() && "s" != this.Bd.toLowerCase() && "q" != this.Bd.toLowerCase() && "t" != this.Bd.toLowerCase() ? this.current : new a.W(2 * this.current.x - this.control.x, 2 * this.current.y - this.control.y) | |
}; | |
this.Rj = function(a) { | |
this.Tf() && (a.x += this.current.x, a.y += this.current.y); | |
return a | |
}; | |
this.xb = function(a, b, c) { | |
null != c && 0 < this.Fa.length && null == this.Fa[this.Fa.length - | |
1] && (this.Fa[this.Fa.length - 1] = this.points[this.points.length - 1].Vd(c)); | |
this.jf(a, null == b ? null : b.Vd(a)) | |
}; | |
this.jf = function(a, b) { | |
this.points.push(a); | |
this.Fa.push(b) | |
}; | |
this.Fj = function() { | |
for (var a = 0; a < this.Fa.length; a++) | |
if (null == this.Fa[a]) | |
for (var b = a + 1; b < this.Fa.length; b++) | |
if (null != this.Fa[b]) { | |
this.Fa[a] = this.Fa[b]; | |
break | |
} | |
return this.Fa | |
} | |
}(b); | |
this.path = function(b) { | |
var c = this.gf; | |
c.reset(); | |
var d = new a.Oa; | |
for (null != b && b.beginPath(); !c.Rh();) switch (c.Wj(), c.be) { | |
case "M": | |
case "m": | |
var g = c.cc(); | |
c.xb(g); | |
d.pa(g.x, | |
g.y); | |
null != b && b.moveTo(g.x, g.y); | |
for (c.start = c.current; !c.Hb();) g = c.cc(), c.xb(g, c.start), d.pa(g.x, g.y), null != b && b.lineTo(g.x, g.y); | |
break; | |
case "L": | |
case "l": | |
for (; !c.Hb();) { | |
var h = c.current, | |
g = c.cc(); | |
c.xb(g, h); | |
d.pa(g.x, g.y); | |
null != b && b.lineTo(g.x, g.y) | |
} | |
break; | |
case "H": | |
case "h": | |
for (; !c.Hb();) g = new a.W((c.Tf() ? c.current.x : 0) + c.Fb(), c.current.y), c.xb(g, c.current), c.current = g, d.pa(c.current.x, c.current.y), null != b && b.lineTo(c.current.x, c.current.y); | |
break; | |
case "V": | |
case "v": | |
for (; !c.Hb();) g = new a.W(c.current.x, (c.Tf() ? | |
c.current.y : 0) + c.Fb()), c.xb(g, c.current), c.current = g, d.pa(c.current.x, c.current.y), null != b && b.lineTo(c.current.x, c.current.y); | |
break; | |
case "C": | |
case "c": | |
for (; !c.Hb();) { | |
var l = c.current, | |
g = c.Ef(), | |
h = c.Af(), | |
m = c.cc(); | |
c.xb(m, h, g); | |
d.hf(l.x, l.y, g.x, g.y, h.x, h.y, m.x, m.y); | |
null != b && b.bezierCurveTo(g.x, g.y, h.x, h.y, m.x, m.y) | |
} | |
break; | |
case "S": | |
case "s": | |
for (; !c.Hb();) l = c.current, g = c.Ch(), h = c.Af(), m = c.cc(), c.xb(m, h, g), d.hf(l.x, l.y, g.x, g.y, h.x, h.y, m.x, m.y), null != b && b.bezierCurveTo(g.x, g.y, h.x, h.y, m.x, m.y); | |
break; | |
case "Q": | |
case "q": | |
for (; !c.Hb();) l = | |
c.current, h = c.Af(), m = c.cc(), c.xb(m, h, h), d.Ug(l.x, l.y, h.x, h.y, m.x, m.y), null != b && b.quadraticCurveTo(h.x, h.y, m.x, m.y); | |
break; | |
case "T": | |
case "t": | |
for (; !c.Hb();) l = c.current, h = c.Ch(), c.control = h, m = c.cc(), c.xb(m, h, h), d.Ug(l.x, l.y, h.x, h.y, m.x, m.y), null != b && b.quadraticCurveTo(h.x, h.y, m.x, m.y); | |
break; | |
case "A": | |
case "a": | |
for (; !c.Hb();) { | |
var l = c.current, | |
n = c.Fb(), | |
p = c.Fb(), | |
g = c.Fb() * (Math.PI / 180), | |
v = c.Fb(), | |
h = c.Fb(), | |
m = c.cc(), | |
q = new a.W(Math.cos(g) * (l.x - m.x) / 2 + Math.sin(g) * (l.y - m.y) / 2, -Math.sin(g) * (l.x - m.x) / 2 + Math.cos(g) * (l.y - | |
m.y) / 2), | |
A = Math.pow(q.x, 2) / Math.pow(n, 2) + Math.pow(q.y, 2) / Math.pow(p, 2); | |
1 < A && (n *= Math.sqrt(A), p *= Math.sqrt(A)); | |
v = (v == h ? -1 : 1) * Math.sqrt((Math.pow(n, 2) * Math.pow(p, 2) - Math.pow(n, 2) * Math.pow(q.y, 2) - Math.pow(p, 2) * Math.pow(q.x, 2)) / (Math.pow(n, 2) * Math.pow(q.y, 2) + Math.pow(p, 2) * Math.pow(q.x, 2))); | |
isNaN(v) && (v = 0); | |
var z = new a.W(v * n * q.y / p, v * -p * q.x / n), | |
l = new a.W((l.x + m.x) / 2 + Math.cos(g) * z.x - Math.sin(g) * z.y, (l.y + m.y) / 2 + Math.sin(g) * z.x + Math.cos(g) * z.y), | |
ka = function(a, b) { | |
return (a[0] * b[0] + a[1] * b[1]) / (Math.sqrt(Math.pow(a[0], | |
2) + Math.pow(a[1], 2)) * Math.sqrt(Math.pow(b[0], 2) + Math.pow(b[1], 2))) | |
}, | |
yh = function(a, b) { | |
return (a[0] * b[1] < a[1] * b[0] ? -1 : 1) * Math.acos(ka(a, b)) | |
}, | |
v = yh([1, 0], [(q.x - z.x) / n, (q.y - z.y) / p]), | |
A = [(q.x - z.x) / n, (q.y - z.y) / p], | |
z = [(-q.x - z.x) / n, (-q.y - z.y) / p], | |
q = yh(A, z); - 1 >= ka(A, z) && (q = Math.PI); | |
1 <= ka(A, z) && (q = 0); | |
A = 1 - h ? 1 : -1; | |
z = v + q / 2 * A; | |
c.jf(new a.W(l.x + n * Math.cos(z), l.y + p * Math.sin(z)), z - A * Math.PI / 2); | |
c.jf(m, z - A * Math.PI); | |
d.pa(m.x, m.y); | |
null != b && (m = n > p ? n : p, A = n > p ? 1 : n / p, n = n > p ? p / n : 1, b.translate(l.x, l.y), b.rotate(g), b.scale(A, n), b.arc(0, | |
0, m, v, v + q, 1 - h), b.scale(1 / A, 1 / n), b.rotate(-g), b.translate(-l.x, -l.y)) | |
} | |
break; | |
case "Z": | |
case "z": | |
null != b && b.closePath(), c.current = c.start | |
} | |
return d | |
}; | |
this.ne = function() { | |
for (var a = this.gf.points, b = this.gf.Fj(), c = [], g = 0; g < a.length; g++) c.push([a[g], b[g]]); | |
return c | |
} | |
}; | |
a.Element.path.prototype = new a.Element.Ea; | |
a.Element.pattern = function(b) { | |
this.i = a.Element.C; | |
this.i(b); | |
this.createPattern = function(b) { | |
var c = this.h("width").l("x", !0), | |
d = this.h("height").l("y", !0), | |
g = new a.Element.Qb; | |
g.attributes.viewBox = new a.o("viewBox", | |
this.h("viewBox").value); | |
g.attributes.width = new a.o("width", c + "px"); | |
g.attributes.height = new a.o("height", d + "px"); | |
g.attributes.transform = new a.o("transform", this.h("patternTransform").value); | |
g.children = this.children; | |
var h = document.createElement("canvas"); | |
h.width = c; | |
h.height = d; | |
c = h.getContext("2d"); | |
this.h("x").j() && this.h("y").j() && c.translate(this.h("x").l("x", !0), this.h("y").l("y", !0)); | |
for (d = -1; 1 >= d; d++) | |
for (var l = -1; 1 >= l; l++) c.save(), c.translate(d * h.width, l * h.height), g.render(c), c.restore(); | |
return b.createPattern(h, | |
"repeat") | |
} | |
}; | |
a.Element.pattern.prototype = new a.Element.C; | |
a.Element.Zh = function(b) { | |
this.i = a.Element.C; | |
this.i(b); | |
this.render = function(b, c, f) { | |
b.translate(c.x, c.y); | |
"auto" == this.h("orient").wb("auto") && b.rotate(f); | |
"strokeWidth" == this.h("markerUnits").wb("strokeWidth") && b.scale(b.lineWidth, b.lineWidth); | |
b.save(); | |
var d = new a.Element.Qb; | |
d.attributes.viewBox = new a.o("viewBox", this.h("viewBox").value); | |
d.attributes.refX = new a.o("refX", this.h("refX").value); | |
d.attributes.refY = new a.o("refY", this.h("refY").value); | |
d.attributes.width = new a.o("width", this.h("markerWidth").value); | |
d.attributes.height = new a.o("height", this.h("markerHeight").value); | |
d.attributes.fill = new a.o("fill", this.h("fill").wb("black")); | |
d.attributes.stroke = new a.o("stroke", this.h("stroke").wb("none")); | |
d.children = this.children; | |
d.render(b); | |
b.restore(); | |
"strokeWidth" == this.h("markerUnits").wb("strokeWidth") && b.scale(1 / b.lineWidth, 1 / b.lineWidth); | |
"auto" == this.h("orient").wb("auto") && b.rotate(-f); | |
b.translate(-c.x, -c.y) | |
} | |
}; | |
a.Element.Zh.prototype = new a.Element.C; | |
a.Element.oh = function(b) { | |
this.i = a.Element.C; | |
this.i(b); | |
this.render = function() {} | |
}; | |
a.Element.oh.prototype = new a.Element.C; | |
a.Element.ed = function(b) { | |
this.i = a.Element.C; | |
this.i(b); | |
this.gradientUnits = this.h("gradientUnits").wb("objectBoundingBox"); | |
this.$c = []; | |
for (b = 0; b < this.children.length; b++) { | |
var c = this.children[b]; | |
"stop" == c.type && this.$c.push(c) | |
} | |
this.Df = function() {}; | |
this.kh = function(b, c, d) { | |
var e = this; | |
this.dc().j() && (e = this.dc().fa()); | |
var f = function(b) { | |
return d.j() ? (new a.o("color", b)).Td(d.value).value : | |
b | |
}; | |
b = this.Df(b, c); | |
if (null == b) return f(e.$c[e.$c.length - 1].color); | |
for (c = 0; c < e.$c.length; c++) b.addColorStop(e.$c[c].offset, f(e.$c[c].color)); | |
return this.h("gradientTransform").j() ? (e = a.oa.bd[0], f = new a.Element.rect, f.attributes.x = new a.o("x", -a.Qd / 3), f.attributes.y = new a.o("y", -a.Qd / 3), f.attributes.width = new a.o("width", a.Qd), f.attributes.height = new a.o("height", a.Qd), c = new a.Element.me, c.attributes.transform = new a.o("transform", this.h("gradientTransform").value), c.children = [f], f = new a.Element.Qb, f.attributes.x = | |
new a.o("x", 0), f.attributes.y = new a.o("y", 0), f.attributes.width = new a.o("width", e.width), f.attributes.height = new a.o("height", e.height), f.children = [c], c = document.createElement("canvas"), c.width = e.width, c.height = e.height, e = c.getContext("2d"), e.fillStyle = b, f.render(e), e.createPattern(c, "no-repeat")) : b | |
} | |
}; | |
a.Element.ed.prototype = new a.Element.C; | |
a.Element.Wh = function(b) { | |
this.i = a.Element.ed; | |
this.i(b); | |
this.Df = function(a, b) { | |
var c = b.rb(); | |
this.h("x1").j() || this.h("y1").j() || this.h("x2").j() || this.h("y2").j() || | |
(this.h("x1", !0).value = 0, this.h("y1", !0).value = 0, this.h("x2", !0).value = 1, this.h("y2", !0).value = 0); | |
var d = "objectBoundingBox" == this.gradientUnits ? c.x() + c.width() * this.h("x1").D() : this.h("x1").l("x"), | |
e = "objectBoundingBox" == this.gradientUnits ? c.y() + c.height() * this.h("y1").D() : this.h("y1").l("y"), | |
l = "objectBoundingBox" == this.gradientUnits ? c.x() + c.width() * this.h("x2").D() : this.h("x2").l("x"), | |
c = "objectBoundingBox" == this.gradientUnits ? c.y() + c.height() * this.h("y2").D() : this.h("y2").l("y"); | |
return d == l && e == c ? | |
null : a.createLinearGradient(d, e, l, c) | |
} | |
}; | |
a.Element.Wh.prototype = new a.Element.ed; | |
a.Element.si = function(b) { | |
this.i = a.Element.ed; | |
this.i(b); | |
this.Df = function(a, b) { | |
var c = b.rb(); | |
this.h("cx").j() || (this.h("cx", !0).value = "50%"); | |
this.h("cy").j() || (this.h("cy", !0).value = "50%"); | |
this.h("r").j() || (this.h("r", !0).value = "50%"); | |
var d = "objectBoundingBox" == this.gradientUnits ? c.x() + c.width() * this.h("cx").D() : this.h("cx").l("x"), | |
e = "objectBoundingBox" == this.gradientUnits ? c.y() + c.height() * this.h("cy").D() : this.h("cy").l("y"), | |
l = d, | |
m = e; | |
this.h("fx").j() && (l = "objectBoundingBox" == this.gradientUnits ? c.x() + c.width() * this.h("fx").D() : this.h("fx").l("x")); | |
this.h("fy").j() && (m = "objectBoundingBox" == this.gradientUnits ? c.y() + c.height() * this.h("fy").D() : this.h("fy").l("y")); | |
c = "objectBoundingBox" == this.gradientUnits ? (c.width() + c.height()) / 2 * this.h("r").D() : this.h("r").l(); | |
return a.createRadialGradient(l, m, 0, d, e, c) | |
} | |
}; | |
a.Element.si.prototype = new a.Element.ed; | |
a.Element.stop = function(b) { | |
this.i = a.Element.C; | |
this.i(b); | |
this.offset = this.h("offset").D(); | |
0 > this.offset && (this.offset = 0); | |
1 < this.offset && (this.offset = 1); | |
b = this.style("stop-color"); | |
this.style("stop-opacity").j() && (b = b.Td(this.style("stop-opacity").value)); | |
this.color = b.value | |
}; | |
a.Element.stop.prototype = new a.Element.C; | |
a.Element.Cc = function(b) { | |
this.i = a.Element.C; | |
this.i(b); | |
a.cf.push(this); | |
this.duration = 0; | |
this.Xd = this.h("begin").Ni(); | |
this.ai = this.Xd + this.h("dur").Ni(); | |
this.pe = function() { | |
var a = this.h("attributeType").value, | |
b = this.h("attributeName").value; | |
return "CSS" == a ? this.parent.style(b, !0) : | |
this.parent.h(b, !0) | |
}; | |
this.Pf = null; | |
this.Oh = ""; | |
this.Nb = !1; | |
this.Zd = function() { | |
return "" | |
}; | |
this.update = function(a) { | |
null == this.Pf && (this.Pf = this.pe().value, this.Oh = this.pe().Hj()); | |
if (this.duration > this.ai) | |
if ("indefinite" == this.h("repeatCount").value || "indefinite" == this.h("repeatDur").value) this.duration = 0; | |
else { | |
if ("remove" != this.h("fill").wb("remove") || this.Nb) return !1; | |
this.Nb = !0; | |
this.pe().value = this.Pf; | |
return !0 | |
} | |
this.duration += a; | |
a = !1; | |
this.Xd < this.duration && (a = this.Zd(), this.h("type").j() && (a = this.h("type").value + | |
"(" + a + ")"), this.pe().value = a, a = !0); | |
return a | |
}; | |
this.from = this.h("from"); | |
this.ad = this.h("to"); | |
this.values = this.h("values"); | |
this.values.j() && (this.values.value = this.values.value.split(";")); | |
this.za = function() { | |
var b = { | |
za: (this.duration - this.Xd) / (this.ai - this.Xd) | |
}; | |
if (this.values.j()) { | |
var c = b.za * (this.values.value.length - 1), | |
f = Math.floor(c), | |
g = Math.ceil(c); | |
b.from = new a.o("from", parseFloat(this.values.value[f])); | |
b.ad = new a.o("to", parseFloat(this.values.value[g])); | |
b.za = (c - f) / (g - f) | |
} else b.from = this.from, b.ad = | |
this.ad; | |
return b | |
} | |
}; | |
a.Element.Cc.prototype = new a.Element.C; | |
a.Element.nf = function(b) { | |
this.i = a.Element.Cc; | |
this.i(b); | |
this.Zd = function() { | |
var a = this.za(); | |
return a.from.D() + (a.ad.D() - a.from.D()) * a.za + this.Oh | |
} | |
}; | |
a.Element.nf.prototype = new a.Element.Cc; | |
a.Element.Vg = function(b) { | |
this.i = a.Element.Cc; | |
this.i(b); | |
this.Zd = function() { | |
var a = this.za(); | |
try { | |
var b = Ph(Nh(a.from.value).ud), | |
c = Ph(Nh(a.ad.value).ud); | |
return "rgb(" + Math.floor(b[0] + (c[0] - b[0]) * a.za) + "," + Math.floor(b[1] + (c[1] - b[1]) * a.za) + "," + Math.floor(b[2] + (c[2] - | |
b[2]) * a.za) + ")" | |
} catch (g) {} | |
return this.h("from").value | |
} | |
}; | |
a.Element.Vg.prototype = new a.Element.Cc; | |
a.Element.Wg = function(b) { | |
this.i = a.Element.Cc; | |
this.i(b); | |
this.Zd = function() { | |
for (var b = this.za(), c = a.Pa(b.from.value), f = a.Pa(b.ad.value), g = "", h = 0; h < c.length; h++) g += c[h] + (f[h] - c[h]) * b.za + " "; | |
return g | |
} | |
}; | |
a.Element.Wg.prototype = new a.Element.nf; | |
a.Element.font = function(b) { | |
this.i = a.Element.C; | |
this.i(b); | |
this.Rc = this.h("horiz-adv-x").D(); | |
this.Qh = this.Sf = !1; | |
this.di = this.pd = null; | |
this.Gb = []; | |
for (b = 0; b < this.children.length; b++) { | |
var c = | |
this.children[b]; | |
"font-face" == c.type ? (this.pd = c, c.style("font-family").j() && (a.dd[c.style("font-family").value] = this)) : "missing-glyph" == c.type ? this.di = c : "glyph" == c.type && ("" != c.Xg ? (this.Qh = this.Sf = !0, "undefined" == typeof this.Gb[c.Ue] && (this.Gb[c.Ue] = []), this.Gb[c.Ue][c.Xg] = c) : this.Gb[c.Ue] = c) | |
} | |
}; | |
a.Element.font.prototype = new a.Element.C; | |
a.Element.uh = function(b) { | |
this.i = a.Element.C; | |
this.i(b); | |
this.h("ascent"); | |
this.h("descent"); | |
this.Ve = this.h("units-per-em").D() | |
}; | |
a.Element.uh.prototype = new a.Element.C; | |
a.Element.ei = function(b) { | |
this.i = a.Element.path; | |
this.i(b); | |
this.Rc = 0 | |
}; | |
a.Element.ei.prototype = new a.Element.path; | |
a.Element.Gh = function(b) { | |
this.i = a.Element.path; | |
this.i(b); | |
this.Rc = this.h("horiz-adv-x").D(); | |
this.Ue = this.h("unicode").value; | |
this.Xg = this.h("arabic-form").value | |
}; | |
a.Element.Gh.prototype = new a.Element.path; | |
a.Element.text = function(b) { | |
this.eh = !0; | |
this.i = a.Element.ca; | |
this.i(b); | |
this.kc = this.hb; | |
this.hb = function(a) { | |
this.kc(a); | |
this.style("dominant-baseline").j() && (a.textBaseline = this.style("dominant-baseline").value); | |
this.style("alignment-baseline").j() && (a.textBaseline = this.style("alignment-baseline").value) | |
}; | |
this.rb = function() { | |
return new a.Oa(this.h("x").l("x"), this.h("y").l("y"), 0, 0) | |
}; | |
this.Ma = function(a) { | |
this.x = this.h("x").l("x"); | |
this.y = this.h("y").l("y"); | |
this.x += this.vh(a, this, 0); | |
for (var b = 0; b < this.children.length; b++) this.vi(a, this, b) | |
}; | |
this.vh = function(a, b, c) { | |
var d = this.style("text-anchor").wb("start"); | |
if ("start" != d) { | |
for (var e = 0, f = c; f < b.children.length; f++) { | |
var m = b.children[f]; | |
if (f > c && m.h("x").j()) break; | |
e += m.bi(a) | |
} | |
return -1 * ("end" == d ? e : e / 2) | |
} | |
return 0 | |
}; | |
this.vi = function(a, b, c) { | |
var d = b.children[c]; | |
d.h("x").j() ? d.x = d.h("x").l("x") + this.vh(a, b, c) : (this.h("dx").j() && (this.x += this.h("dx").l("x")), d.h("dx").j() && (this.x += d.h("dx").l("x")), d.x = this.x); | |
this.x = d.x + d.measureText(a); | |
d.h("y").j() ? d.y = d.h("y").l("y") : (this.h("dy").j() && (this.y += this.h("dy").l("y")), d.h("dy").j() && (this.y += d.h("dy").l("y")), d.y = this.y); | |
this.y = d.y; | |
d.render(a); | |
for (b = 0; b < d.children.length; b++) this.vi(a, d, b) | |
} | |
}; | |
a.Element.text.prototype = | |
new a.Element.ca; | |
a.Element.jc = function(b) { | |
this.i = a.Element.ca; | |
this.i(b); | |
this.yh = function(a, b, c) { | |
var d = b[c], | |
e = null; | |
if (a.Qh) { | |
var f = "isolated"; | |
(0 == c || " " == b[c - 1]) && c < b.length - 2 && " " != b[c + 1] && (f = "terminal"); | |
0 < c && " " != b[c - 1] && c < b.length - 2 && " " != b[c + 1] && (f = "medial"); | |
0 < c && " " != b[c - 1] && (c == b.length - 1 || " " == b[c + 1]) && (f = "initial"); | |
"undefined" != typeof a.Gb[d] && (e = a.Gb[d][f], null == e && "glyph" == a.Gb[d].type && (e = a.Gb[d])) | |
} else e = a.Gb[d]; | |
null == e && (e = a.di); | |
return e | |
}; | |
this.Ma = function(b) { | |
var c = this.parent.style("font-family").fa(); | |
if (null != c) { | |
var d = this.parent.style("font-size").ag(a.Dc.Fc(a.mb.font).fontSize), | |
g = this.parent.style("font-style").wb(a.Dc.Fc(a.mb.font).fontStyle), | |
h = this.sa(); | |
c.Sf && (h = h.split("").reverse().join("")); | |
for (var l = a.Pa(this.parent.h("dx").value), m = 0; m < h.length; m++) { | |
var n = this.yh(c, h, m), | |
p = d / c.pd.Ve; | |
b.translate(this.x, this.y); | |
b.scale(p, -p); | |
var v = b.lineWidth; | |
b.lineWidth = b.lineWidth * c.pd.Ve / d; | |
"italic" == g && b.transform(1, 0, .4, 1, 0, 0); | |
n.render(b); | |
"italic" == g && b.transform(1, 0, -.4, 1, 0, 0); | |
b.lineWidth = v; | |
b.scale(1 / | |
p, -1 / p); | |
b.translate(-this.x, -this.y); | |
this.x += d * (n.Rc || c.Rc) / c.pd.Ve; | |
"undefined" == typeof l[m] || isNaN(l[m]) || (this.x += l[m]) | |
} | |
} else "" != b.fillStyle && b.fillText(a.Wa(this.sa()), this.x, this.y), "" != b.strokeStyle && b.strokeText(a.Wa(this.sa()), this.x, this.y) | |
}; | |
this.sa = function() {}; | |
this.bi = function(a) { | |
for (var b = this.measureText(a), c = 0; c < this.children.length; c++) b += this.children[c].bi(a); | |
return b | |
}; | |
this.measureText = function(b) { | |
var c = this.parent.style("font-family").fa(); | |
if (null != c) { | |
b = this.parent.style("font-size").ag(a.Dc.Fc(a.mb.font).fontSize); | |
var d = 0, | |
g = this.sa(); | |
c.Sf && (g = g.split("").reverse().join("")); | |
for (var h = a.Pa(this.parent.h("dx").value), l = 0; l < g.length; l++) d += (this.yh(c, g, l).Rc || c.Rc) * b / c.pd.Ve, "undefined" == typeof h[l] || isNaN(h[l]) || (d += h[l]); | |
return d | |
} | |
c = a.Wa(this.sa()); | |
if (!b.measureText) return 10 * c.length; | |
b.save(); | |
this.hb(b); | |
c = b.measureText(c).width; | |
b.restore(); | |
return c | |
} | |
}; | |
a.Element.jc.prototype = new a.Element.ca; | |
a.Element.Cg = function(b) { | |
this.eh = !0; | |
this.i = a.Element.jc; | |
this.i(b); | |
this.text = b.nodeValue || b.text || ""; | |
this.sa = function() { | |
return this.text | |
} | |
}; | |
a.Element.Cg.prototype = new a.Element.jc; | |
a.Element.Ri = function(b) { | |
this.i = a.Element.jc; | |
this.i(b); | |
this.sa = function() { | |
var a = this.dc().fa(); | |
if (null != a) return a.children[0].sa() | |
} | |
}; | |
a.Element.Ri.prototype = new a.Element.jc; | |
a.Element.a = function(b) { | |
this.i = a.Element.jc; | |
this.i(b); | |
this.Hf = !0; | |
for (var c = 0; c < b.childNodes.length; c++) 3 != b.childNodes[c].nodeType && (this.Hf = !1); | |
this.text = this.Hf ? b.childNodes[0].nodeValue : ""; | |
this.sa = function() { | |
return this.text | |
}; | |
this.lj = this.Ma; | |
this.Ma = function(b) { | |
if (this.Hf) { | |
this.lj(b); | |
var c = new a.o("fontSize", a.Dc.Fc(a.mb.font).fontSize); | |
a.Ec.nj(this, new a.Oa(this.x, this.y - c.l("y"), this.x + this.measureText(b), this.y)) | |
} else c = new a.Element.me, c.children = this.children, c.parent = this, c.render(b) | |
}; | |
this.onclick = function() { | |
window.open(this.dc().value) | |
}; | |
this.onmousemove = function() { | |
a.mb.canvas.style.cursor = "pointer" | |
} | |
}; | |
a.Element.a.prototype = new a.Element.jc; | |
a.Element.Lh = function(c) { | |
this.i = a.Element.ca; | |
this.i(c); | |
var d = this.dc().value, | |
e = d.match(/\.svg$/); | |
a.Pd.push(this); | |
this.loaded = !1; | |
if (e) this.Ta = | |
a.mf(d), this.loaded = !0; | |
else { | |
this.Ta = document.createElement("img"); | |
this.Ta.crossOrigin = "Anonymous"; | |
var f = this; | |
this.Ta.onload = function() { | |
f.loaded = !0 | |
}; | |
this.Ta.onerror = function() { | |
b('ERROR: image "' + d + '" not found') && (f.loaded = !0) | |
}; | |
this.Ta.src = d | |
} | |
this.Ma = function(b) { | |
var c = this.h("x").l("x"), | |
d = this.h("y").l("y"), | |
f = this.h("width").l("x"), | |
g = this.h("height").l("y"); | |
0 != f && 0 != g && (b.save(), e ? Yh(b.canvas, this.Ta, c, d, f, g, { | |
ignoreMouse: a.O.Rk, | |
ignoreAnimation: a.O.Qk, | |
ignoreClear: !0, | |
ignoreDimensions: !0 | |
}) : (b.translate(c, | |
d), a.df(b, this.h("preserveAspectRatio").value, f, this.Ta.width, g, this.Ta.height, 0, 0), b.drawImage(this.Ta, 0, 0)), b.restore()) | |
}; | |
this.rb = function() { | |
var b = this.h("x").l("x"), | |
c = this.h("y").l("y"), | |
d = this.h("width").l("x"), | |
e = this.h("height").l("y"); | |
return new a.Oa(b, c, b + d, c + e) | |
} | |
}; | |
a.Element.Lh.prototype = new a.Element.ca; | |
a.Element.me = function(b) { | |
this.i = a.Element.ca; | |
this.i(b); | |
this.rb = function() { | |
for (var b = new a.Oa, c = 0; c < this.children.length; c++) b.Tg(this.children[c].rb()); | |
return b | |
} | |
}; | |
a.Element.me.prototype = new a.Element.ca; | |
a.Element.symbol = function(b) { | |
this.i = a.Element.ca; | |
this.i(b); | |
this.kc = this.hb; | |
this.hb = function(b) { | |
this.kc(b); | |
if (this.h("viewBox").j()) { | |
var c = a.Pa(this.h("viewBox").value), | |
d = c[0], | |
g = c[1], | |
h = c[2], | |
l = c[3]; | |
a.df(b, this.h("preserveAspectRatio").value, this.h("width").l("x"), h, this.h("height").l("y"), l, d, g); | |
a.oa.fd(c[2], c[3]) | |
} | |
} | |
}; | |
a.Element.symbol.prototype = new a.Element.ca; | |
a.Element.style = function(b) { | |
this.i = a.Element.C; | |
this.i(b); | |
for (var c = "", e = 0; e < b.childNodes.length; e++) c += b.childNodes[e].nodeValue; | |
c = c.replace(/(\/\*([^*]|[\r\n]|(\*+([^*\/]|[\r\n])))*\*+\/)|(^[\s]*\/\/.*)/gm, | |
""); | |
c = a.Wa(c); | |
b = c.split("}"); | |
for (e = 0; e < b.length; e++) | |
if ("" != a.trim(b[e])) | |
for (var f = b[e].split("{"), c = f[0].split(","), f = f[1].split(";"), g = 0; g < c.length; g++) { | |
var h = a.trim(c[g]); | |
if ("" != h) { | |
for (var l = {}, m = 0; m < f.length; m++) { | |
var n = f[m].indexOf(":"), | |
p = f[m].substr(0, n), | |
n = f[m].substr(n + 1, f[m].length - n); | |
null != p && null != n && (l[a.trim(p)] = new a.o(a.trim(p), a.trim(n))) | |
} | |
a.ic[h] = l; | |
if ("@font-face" == h) | |
for (h = l["font-family"].value.replace(/"/g, ""), l = l.src.value.split(","), m = 0; m < l.length; m++) | |
if (0 < l[m].indexOf('format("svg")')) | |
for (p = | |
l[m].indexOf("url"), p = a.ji(a.mf(l[m].substr(p + 5, l[m].indexOf(")", p) - p - 6))).getElementsByTagName("font"), n = 0; n < p.length; n++) { | |
var v = a.ef(p[n]); | |
a.dd[h] = v | |
} | |
} | |
} | |
}; | |
a.Element.style.prototype = new a.Element.C; | |
a.Element.use = function(b) { | |
this.i = a.Element.ca; | |
this.i(b); | |
this.kc = this.hb; | |
this.hb = function(a) { | |
this.kc(a); | |
this.h("x").j() && a.translate(this.h("x").l("x"), 0); | |
this.h("y").j() && a.translate(0, this.h("y").l("y")) | |
}; | |
this.fa = function() { | |
var a = this.dc().fa(); | |
this.h("width").j() && (a.h("width", !0).value = this.h("width").value); | |
this.h("height").j() && (a.h("height", !0).value = this.h("height").value); | |
return a | |
}; | |
this.path = function(a) { | |
var b = this.fa(); | |
null != b && b.path(a) | |
}; | |
this.rb = function() { | |
var a = this.fa(); | |
if (null != a) return a.rb() | |
}; | |
this.Ma = function(a) { | |
var b = this.fa(); | |
if (null != b) { | |
var c = b.parent; | |
b.parent = null; | |
b.render(a); | |
b.parent = c | |
} | |
} | |
}; | |
a.Element.use.prototype = new a.Element.ca; | |
a.Element.$h = function(b) { | |
this.i = a.Element.C; | |
this.i(b); | |
this.apply = function(b, c) { | |
var d = this.h("x").l("x"), | |
e = this.h("y").l("y"), | |
h = this.h("width").l("x"), | |
l = this.h("height").l("y"); | |
if (0 == h && 0 == l) { | |
l = new a.Oa; | |
for (d = 0; d < this.children.length; d++) l.Tg(this.children[d].rb()); | |
d = Math.floor(l.x1); | |
e = Math.floor(l.y1); | |
h = Math.floor(l.width()); | |
l = Math.floor(l.height()) | |
} | |
var m = c.h("mask").value; | |
c.h("mask").value = ""; | |
var n = document.createElement("canvas"); | |
n.width = d + h; | |
n.height = e + l; | |
var p = n.getContext("2d"); | |
this.Ma(p); | |
var v = document.createElement("canvas"); | |
v.width = d + h; | |
v.height = e + l; | |
var q = v.getContext("2d"); | |
c.render(q); | |
q.globalCompositeOperation = "destination-in"; | |
q.fillStyle = p.createPattern(n, "no-repeat"); | |
q.fillRect(0, 0, d + h, e + l); | |
b.fillStyle = q.createPattern(v, "no-repeat"); | |
b.fillRect(0, 0, d + h, e + l); | |
c.h("mask").value = m | |
}; | |
this.render = function() {} | |
}; | |
a.Element.$h.prototype = new a.Element.C; | |
a.Element.hh = function(b) { | |
this.i = a.Element.C; | |
this.i(b); | |
this.apply = function(b) { | |
for (var c = 0; c < this.children.length; c++) { | |
var d = this.children[c]; | |
if ("undefined" != typeof d.path) { | |
var g = null; | |
d.h("transform").j() && (g = new a.Sg(d.h("transform").value), g.apply(b)); | |
d.path(b); | |
b.clip(); | |
g && g.Ld(b) | |
} | |
} | |
}; | |
this.render = function() {} | |
}; | |
a.Element.hh.prototype = | |
new a.Element.C; | |
a.Element.filter = function(b) { | |
this.i = a.Element.C; | |
this.i(b); | |
this.apply = function(a, b) { | |
var c = b.rb(), | |
d = Math.floor(c.x1), | |
e = Math.floor(c.y1), | |
l = Math.floor(c.width()), | |
c = Math.floor(c.height()), | |
m = b.style("filter").value; | |
b.style("filter").value = ""; | |
for (var n = 0, p = 0, v = 0; v < this.children.length; v++) var q = this.children[v].Bj || 0, | |
n = Math.max(n, q), | |
p = Math.max(p, q); | |
q = document.createElement("canvas"); | |
q.width = l + 2 * n; | |
q.height = c + 2 * p; | |
var A = q.getContext("2d"); | |
A.translate(-d + n, -e + p); | |
b.render(A); | |
for (v = 0; v < this.children.length; v++) this.children[v].apply(A, | |
0, 0, l + 2 * n, c + 2 * p); | |
a.drawImage(q, 0, 0, l + 2 * n, c + 2 * p, d - n, e - p, l + 2 * n, c + 2 * p); | |
b.style("filter", !0).value = m | |
}; | |
this.render = function() {} | |
}; | |
a.Element.filter.prototype = new a.Element.C; | |
a.Element.th = function(b) { | |
this.i = a.Element.C; | |
this.i(b); | |
this.apply = function() {} | |
}; | |
a.Element.th.prototype = new a.Element.C; | |
a.Element.rh = function(b) { | |
this.i = a.Element.C; | |
this.i(b); | |
this.apply = function(a, b, c, g, h) { | |
b = a.getImageData(0, 0, g, h); | |
for (c = 0; c < h; c++) | |
for (var d = 0; d < g; d++) { | |
var e = (b.data[c * g * 4 + 4 * d + 0] + b.data[c * g * 4 + 4 * d + 1] + b.data[c * g * 4 + 4 * d + 2]) / | |
3; | |
b.data[c * g * 4 + 4 * d + 0] = e; | |
b.data[c * g * 4 + 4 * d + 1] = e; | |
b.data[c * g * 4 + 4 * d + 2] = e | |
} | |
a.clearRect(0, 0, g, h); | |
a.putImageData(b, 0, 0) | |
} | |
}; | |
a.Element.rh.prototype = new a.Element.C; | |
a.Element.sh = function(c) { | |
this.i = a.Element.C; | |
this.i(c); | |
this.Bj = this.$g = Math.floor(this.h("stdDeviation").D()); | |
this.apply = function(c, e, f, g, h) { | |
var d = window.stackBlurCanvasRGBA; | |
"undefined" == typeof d ? b("ERROR: StackBlur.js must be included for blur to work") : (c.canvas.id = a.cj(), c.canvas.style.display = "none", document.body.appendChild(c.canvas), d(c.canvas.id, | |
e, f, g, h, this.$g), document.body.removeChild(c.canvas)) | |
} | |
}; | |
a.Element.sh.prototype = new a.Element.C; | |
a.Element.title = function() {}; | |
a.Element.title.prototype = new a.Element.C; | |
a.Element.ph = function() {}; | |
a.Element.ph.prototype = new a.Element.C; | |
a.Element.Qg = function(a) { | |
b("ERROR: Element '" + a.nodeName + "' not yet implemented.") | |
}; | |
a.Element.Qg.prototype = new a.Element.C; | |
a.Ng = { | |
svg: a.Element.Qb, | |
rect: a.Element.rect, | |
circle: a.Element.gh, | |
ellipse: a.Element.ellipse, | |
line: a.Element.Wf, | |
polyline: a.Element.De, | |
polygon: a.Element.ki, | |
path: a.Element.path, | |
pattern: a.Element.pattern, | |
marker: a.Element.Zh, | |
defs: a.Element.oh, | |
linearGradient: a.Element.Wh, | |
radialGradient: a.Element.si, | |
stop: a.Element.stop, | |
animate: a.Element.nf, | |
animateColor: a.Element.Vg, | |
animateTransform: a.Element.Wg, | |
font: a.Element.font, | |
fontface: a.Element.uh, | |
missingglyph: a.Element.ei, | |
glyph: a.Element.Gh, | |
text: a.Element.text, | |
tspan: a.Element.Cg, | |
tref: a.Element.Ri, | |
a: a.Element.a, | |
image: a.Element.Lh, | |
g: a.Element.me, | |
symbol: a.Element.symbol, | |
style: a.Element.style, | |
use: a.Element.use, | |
mask: a.Element.$h, | |
clipPath: a.Element.hh, | |
filter: a.Element.filter, | |
feMorphology: a.Element.th, | |
feColorMatrix: a.Element.rh, | |
feGaussianBlur: a.Element.sh, | |
title: a.Element.title, | |
desc: a.Element.ph | |
}; | |
a.ef = function(b) { | |
var c = b.nodeName.replace(/^[^:]+:/, ""), | |
c = c.replace(/\-/g, ""), | |
c = "undefined" != typeof a.Ng[c] ? new a.Ng[c](b) : new a.Element.Qg(b); | |
c.type = b.nodeName; | |
return c | |
}; | |
a.load = function(b, d) { | |
a.Xh(b, a.mf(d)) | |
}; | |
a.Xh = function(b, d) { | |
a.Yh(b, a.ji(d)) | |
}; | |
a.Yh = function(b, d) { | |
a.init(b); | |
var c = function(a) { | |
for (var c = b.canvas; c;) a.x -= c.offsetLeft, a.y -= | |
c.offsetTop, c = c.offsetParent; | |
window.scrollX && (a.x += window.scrollX); | |
window.scrollY && (a.y += window.scrollY); | |
return a | |
}; | |
1 != a.O.ignoreMouse && (b.canvas.onclick = function(b) { | |
b = b || window.event; | |
b = c(new a.W(b.clientX, b.clientY)); | |
a.Ec.onclick(b.x, b.y) | |
}, b.canvas.onmousemove = function(b) { | |
b = b || window.event; | |
b = c(new a.W(b.clientX, b.clientY)); | |
a.Ec.onmousemove(b.x, b.y) | |
}); | |
var f = a.ef(d.documentElement), | |
g = f.root = !0, | |
h = function() { | |
a.oa.Wi(); | |
b.canvas.parentNode && a.oa.fd(b.canvas.parentNode.clientWidth, b.canvas.parentNode.clientHeight); | |
1 != a.O.ignoreDimensions && (f.style("width").j() && (b.canvas.width = f.style("width").l("x"), b.canvas.style.width = b.canvas.width + "px"), f.style("height").j() && (b.canvas.height = f.style("height").l("y"), b.canvas.style.height = b.canvas.height + "px")); | |
var c = b.canvas.clientWidth || b.canvas.width, | |
e = b.canvas.clientHeight || b.canvas.height; | |
1 == a.O.ignoreDimensions && f.style("width").j() && f.style("height").j() && (c = f.style("width").l("x"), e = f.style("height").l("y")); | |
a.oa.fd(c, e); | |
null != a.O.offsetX && (f.h("x", !0).value = a.O.offsetX); | |
null != a.O.offsetY && (f.h("y", !0).value = a.O.offsetY); | |
if (null != a.O.scaleWidth && null != a.O.scaleHeight) { | |
var h = 1, | |
l = 1, | |
q = a.Pa(f.h("viewBox").value); | |
f.h("width").j() ? h = f.h("width").l("x") / a.O.scaleWidth : isNaN(q[2]) || (h = q[2] / a.O.scaleWidth); | |
f.h("height").j() ? l = f.h("height").l("y") / a.O.scaleHeight : isNaN(q[3]) || (l = q[3] / a.O.scaleHeight); | |
f.h("width", !0).value = a.O.scaleWidth; | |
f.h("height", !0).value = a.O.scaleHeight; | |
f.h("viewBox", !0).value = "0 0 " + c * h + " " + e * l; | |
f.h("preserveAspectRatio", !0).value = "none" | |
} | |
1 != a.O.ignoreClear && | |
b.clearRect(0, 0, c, e); | |
f.render(b); | |
g && (g = !1, "function" == typeof a.O.renderCallback && a.O.renderCallback(d)) | |
}, | |
l = !0; | |
a.Pg() && (l = !1, h()); | |
a.Ph = setInterval(function() { | |
var b = !1; | |
l && a.Pg() && (l = !1, b = !0); | |
1 != a.O.ignoreMouse && (b |= a.Ec.Kj()); | |
if (1 != a.O.ignoreAnimation) | |
for (var c = 0; c < a.cf.length; c++) b |= a.cf[c].update(1E3 / a.Og); | |
"function" == typeof a.O.forceRedraw && 1 == a.O.forceRedraw() && (b = !0); | |
b && (h(), a.Ec.yk()) | |
}, 1E3 / a.Og) | |
}; | |
a.stop = function() { | |
a.Ph && clearInterval(a.Ph) | |
}; | |
a.Ec = new function() { | |
this.qb = []; | |
this.Kj = function() { | |
return 0 != | |
this.qb.length | |
}; | |
this.onclick = function(a, b) { | |
this.qb.push({ | |
type: "onclick", | |
x: a, | |
y: b, | |
Ai: function(a) { | |
if (a.onclick) a.onclick() | |
} | |
}) | |
}; | |
this.onmousemove = function(a, b) { | |
this.qb.push({ | |
type: "onmousemove", | |
x: a, | |
y: b, | |
Ai: function(a) { | |
if (a.onmousemove) a.onmousemove() | |
} | |
}) | |
}; | |
this.ke = []; | |
this.pj = function(a, b) { | |
for (var c = 0; c < this.qb.length; c++) { | |
var d = this.qb[c]; | |
b.isPointInPath && b.isPointInPath(d.x, d.y) && (this.ke[c] = a) | |
} | |
}; | |
this.nj = function(a, b) { | |
for (var c = 0; c < this.qb.length; c++) { | |
var d = this.qb[c]; | |
b.Oj(d.x, d.y) && (this.ke[c] = a) | |
} | |
}; | |
this.yk = | |
function() { | |
a.mb.canvas.style.cursor = ""; | |
for (var b = 0; b < this.qb.length; b++) | |
for (var d = this.qb[b], e = this.ke[b]; e;) d.Ai(e), e = e.parent; | |
this.qb = []; | |
this.ke = [] | |
} | |
}; | |
return a | |
}; | |
var $h = function(a, b) { | |
return a.getAttribute("data-google-feedback-" + b) || "" | |
}, | |
ai = function(a, b, c) { | |
a.setAttribute("data-google-feedback-" + b, c) | |
}; | |
var bi = function(a) { | |
Q.call(this); | |
this.wd = new Image; | |
this.wd.onload = w(this.callback, this); | |
this.wd.onerror = w(this.Y, this); | |
this.wd.src = a | |
}; | |
x(bi, Q); | |
bi.prototype.Fh = function() { | |
return this.wd.width | |
}; | |
bi.prototype.Ah = function() { | |
return this.wd.height | |
}; | |
var ci = rh && Ah("3.6") || rh && Ah("3.5") && !nc || F && Ah("9") || kc; | |
var di = function(a, b) { | |
var c = new Image; | |
c.onload = function() { | |
var a; | |
try { | |
if (!c.width) return; | |
var e = document.createElement("canvas"); | |
e.width = c.width; | |
e.height = c.height; | |
e.getContext("2d").drawImage(c, 0, 0); | |
a = e.toDataURL() | |
} catch (f) { | |
return | |
} | |
b(a) | |
}; | |
c.src = a | |
}, | |
ei = function(a) { | |
var b = window.location.href, | |
c; | |
if (c = ci) a = a.match(Vd), b = b.match(Vd), c = a[3] == b[3] && a[1] == b[1] && a[4] == b[4]; | |
return c | |
}; | |
var fi = function() { | |
this.rg = new O(0, 0, 0, 0) | |
}; | |
fi.prototype.resize = function(a) { | |
this.rg.width = a.width; | |
this.rg.height = a.height | |
}; | |
fi.prototype.Qc = function() { | |
return this.rg | |
}; | |
fi.prototype.Cb = ra; | |
var gi = function(a) { | |
fi.call(this); | |
this.Si = a; | |
this.S = [ | |
[] | |
] | |
}; | |
x(gi, fi); | |
var hi = function(a, b, c) { | |
a.S[0].push([2, [a.Si[b], c.left, c.top, c.width, c.height]]) | |
}; | |
gi.prototype.fillRect = function(a, b) { | |
this.S[0].push([4, [a.left, a.top, a.width, a.height, b]]) | |
}; | |
gi.prototype.yc = function(a, b, c, d) { | |
this.S.unshift([]); | |
this.S[0].push([20, [a, b, c, d]]) | |
}; | |
var ji = function(a) { | |
a.S[0].push([21]); | |
ii(a) | |
}; | |
gi.prototype.pg = function(a) { | |
this.S.unshift([]); | |
this.S[0].push([23, [a]]) | |
}; | |
gi.prototype.hg = function() { | |
this.S[0].push([24]); | |
ii(this) | |
}; | |
gi.prototype.toDataURL = function() { | |
return "" | |
}; | |
var ii = function(a) { | |
var b = a.S.shift(); | |
bb(b, function(a) { | |
return 20 > a[0] | |
}) && gb(a.S[0], b) | |
}; | |
var ki = function(a) { | |
T.call(this, "rf.cs"); | |
this.cssRules = a | |
}; | |
x(ki, T); | |
Bh["rf.cs"] = ki; | |
ki.prototype.ja = function() { | |
return ki.s.ja.call(this).concat([this.cssRules]) | |
}; | |
ki.prototype.ba = function(a) { | |
var b = ki.s.ba.call(this, a); | |
this.cssRules = a[b++]; | |
return b | |
}; | |
var li = function(a) { | |
T.call(this, "rf.ip"); | |
this.Md = a || {} | |
}; | |
x(li, T); | |
Bh["rf.ip"] = li; | |
li.prototype.ja = function() { | |
return li.s.ja.call(this).concat([this.Md]) | |
}; | |
li.prototype.ba = function(a) { | |
var b = li.s.ba.call(this, a); | |
this.Md = a[b++]; | |
return b | |
}; | |
var mi = function(a) { | |
T.call(this, "rf.lp"); | |
this.links = a | |
}; | |
x(mi, T); | |
Bh["rf.lp"] = mi; | |
mi.prototype.ja = function() { | |
return mi.s.ja.call(this).concat([this.links]) | |
}; | |
mi.prototype.ba = function(a) { | |
var b = mi.s.ba.call(this, a); | |
this.links = a[b++]; | |
return b | |
}; | |
var ni = function(a, b, c, d, e, f) { | |
T.call(this, "rf.r", (this[ya] || (this[ya] = ++za)) + ""); | |
this.ih = a || []; | |
this.size = b || new bc(0, 0); | |
this.ya = c || []; | |
this.Zg = d || []; | |
this.scrollLeft = e || 0; | |
this.scrollTop = f || 0 | |
}; | |
x(ni, T); | |
Bh["rf.r"] = ni; | |
ni.prototype.ja = function() { | |
return ni.s.ja.call(this).concat([this.ih, this.size, oi(this.ya), oi(this.Zg), this.scrollLeft, this.scrollTop]) | |
}; | |
ni.prototype.ba = function(a) { | |
var b = ni.s.ba.call(this, a); | |
this.ih = a[b++]; | |
this.size = a[b++]; | |
this.ya = pi(a[b++]); | |
this.Zg = pi(a[b++]); | |
this.scrollLeft = a[b++]; | |
this.scrollTop = a[b++]; | |
return b | |
}; | |
var oi = function(a) { | |
var b = []; | |
B(a, function(a) { | |
b.push([a.left, a.top, a.width, a.height]) | |
}); | |
return b | |
}, | |
pi = function(a) { | |
var b = []; | |
B(a, function(a) { | |
b.push(new O(a[0], a[1], a[2], a[3])) | |
}); | |
return b | |
}; | |
var qi = function() { | |
T.call(this, "rf.s") | |
}; | |
x(qi, T); | |
Bh["rf.s"] = qi; | |
qi.prototype.ja = function() { | |
return qi.s.ja.call(this).concat([this.tg, this.mi, this.zj]) | |
}; | |
qi.prototype.ba = function(a) { | |
var b = qi.s.ba.call(this, a); | |
this.tg = a[b++]; | |
this.mi = a[b++]; | |
this.zj = a[b++]; | |
return b | |
}; | |
var ri = function(a) { | |
T.call(this, "rf.sp"); | |
this.Md = a || {} | |
}; | |
x(ri, T); | |
Bh["rf.sp"] = ri; | |
ri.prototype.ja = function() { | |
return ri.s.ja.call(this).concat([this.Md]) | |
}; | |
ri.prototype.ba = function(a) { | |
var b = ri.s.ba.call(this, a); | |
this.Md = a[b++]; | |
return b | |
}; | |
var si = function(a, b) { | |
this.url = a; | |
this.size = b | |
}; | |
var ti = function(a) { | |
this.Mi = a | |
}, | |
ui = function(a) { | |
return Ea() > a.Mi | |
}; | |
var vi = function(a, b, c) { | |
var d = "border-" + b + "-radius", | |
e = J(a, d); | |
e || (e = J(a, "-webkit-" + d)); | |
e || (e = J(a, "-ms-" + d)); | |
e || (d = "-moz-border-radius-" + b.replace("-", ""), e = J(a, d)); | |
if (!e) return [0, 0]; | |
a = e.match(/(\d+)(\%|px)/gi); | |
return ab(a, function(a) { | |
return -1 < a.indexOf("%") ? parseInt(a, 10) * c.width / 100 : -1 != a.indexOf("px") ? parseInt(a, 10) : 0 | |
}) | |
}, | |
wi = function(a, b) { | |
var c; | |
a: { | |
c = Math.max(a.left, b.left); | |
var d = Math.min(a.left + a.width, b.left + b.width); | |
if (c <= d) { | |
var e = Math.max(a.top, b.top), | |
f = Math.min(a.top + a.height, b.top + b.height); | |
if (e <= | |
f) { | |
c = new O(c, e, d - c, f - e); | |
break a | |
} | |
} | |
c = null | |
} | |
return c || new O(0, 0, 0, 0) | |
}, | |
xi = function(a) { | |
var b; | |
try { | |
b = a.getBoundingClientRect() | |
} catch (d) { | |
return new O(0, 0, 0, 0) | |
} | |
if (t(b.width)) return new O(b.left, b.top, b.width, b.height); | |
var c; | |
try { | |
c = eg(a) | |
} catch (d) { | |
c = null | |
} | |
return c ? new O(b.left, b.top, c.width, c.height) : new O(0, 0, 0, 0) | |
}, | |
yi = function(a) { | |
a = J(a, "fontWeight"); | |
return "401" == a ? "900" : a | |
}, | |
zi = function(a) { | |
try { | |
var b = H(a), | |
c = ""; | |
if (b.body.createTextRange && Uc(b, a)) { | |
var d = b.body.createTextRange(); | |
d.moveToElementText(a); | |
try { | |
c = d.queryCommandValue("FontName") | |
} catch (h) { | |
c = | |
"" | |
} | |
} | |
c || (c = Zf(a, "fontFamily")); | |
var e = c.split(","); | |
1 < e.length && (c = e[0]); | |
var f; | |
a: { | |
for (a = 0; 2 > a; a++) { | |
var g = "\"'".charAt(a); | |
if (c.charAt(0) == g && c.charAt(c.length - 1) == g) { | |
f = c.substring(1, c.length - 1); | |
break a | |
} | |
} | |
f = c | |
} | |
return f | |
} catch (h) { | |
return "Arial" | |
} | |
}, | |
Ai = function(a) { | |
try { | |
return og(a) | |
} catch (b) { | |
return 13 | |
} | |
}, | |
Bi = function(a, b) { | |
var c = La(a).split(" "); | |
return new E(b.left + .01 * parseInt(c[0], 10) * b.width, b.top + .01 * parseInt(c[1], 10) * b.height) | |
}; | |
var Ci = function(a, b, c) { | |
this.rj = c; | |
this.Dk = a; | |
this.xj = b | |
}; | |
var Di = /^(rgba?\([^\)]+\)|#[a-f0-9]+|[a-z]+)$/i, | |
Ei = /rgba?\([^\)]+\)|#[a-f0-9]+|[a-z]+/ig, | |
Fi = /^((from|to|color-stop)\(\s*([^,]+\s*,\s*)?\s*(rgba?\([^)]+\)|#[a-z0-9]+|[a-z]+?)\))$/i, | |
Gi = /(from|to|color-stop)\(\s*([^,]+\s*,\s*)?\s*(rgba?\([^)]+\)|#[a-z0-9]+|[a-z]+?)\)/ig, | |
Hi = /linear,([^,]+,[^,]+),/i, | |
Ii = /startcolorstr=([^,]+),/i, | |
Ji = /endcolorstr=([^,|^\)]+)/i, | |
Li = function(a, b) { | |
a = a.substring(a.indexOf("(") + 1, a.lastIndexOf(")")); | |
var c = a.match(Ei); | |
if (!c) return null; | |
c = $a(c, function(a) { | |
return y(a, "(") || y(a, "#") ? | |
!0 : a in Ih || "transparent" == a | |
}); | |
if (!c.length) return null; | |
var d, e, f = a.substring(0, a.indexOf(",")); | |
if (!Ih[f] && !Di.test(f)) { | |
var g = new E(b.left + b.width / 2, b.top + b.height / 2); | |
if (y(f, "%")) d = Bi(f, b), e = Ki(d, g, Math.PI); | |
else { | |
var h = parseFloat(f); | |
isNaN(h) || (d = new E(b.left, g.top), e = new E(b.left + b.width, g.top), y(f, "deg") && (h = h * Math.PI / 180), d = Ki(d, g, -h), e = Ki(e, g, -h)) | |
} | |
} | |
d && e || (d = new E(b.left, b.top), e = new E(b.left, b.top + b.height)); | |
return new Ci(d, e, c) | |
}, | |
Ni = function(a, b) { | |
a = a.substring(a.indexOf("(") + 1, a.lastIndexOf(")")); | |
var c = [], | |
d, e = a.match(Hi), | |
f = a.match(Gi); | |
if (!f || !e) return null; | |
for (var g = 0; g < f.length; ++g) { | |
var h = f[g].match(Fi); | |
"from" == h[2] ? c.unshift(h[4]) : "to" == h[2] ? d = h[4] : "color-stop" == h[2] && c.push(h[4]) | |
} | |
d && c.push(d); | |
if (!c.length) return null; | |
h = e[1].split(","); | |
return new Ci(Mi(h[0] || "", b), Mi(h[1] || "", b), c) | |
}, | |
Oi = function(a, b) { | |
var c = a.match(Ii), | |
d = a.match(Ji); | |
return c && d ? new Ci(new E(b.left, b.top), new E(b.left + b.width, b.top), ["#" + c[1].substring(3), "#" + d[1].substring(3)]) : null | |
}, | |
Ki = function(a, b, c) { | |
return new E(Math.cos(c) * | |
(a.x - b.x) - Math.sin(c) * (a.y - b.y) + b.x, Math.sin(c) * (a.x - b.x) + Math.cos(c) * (a.y - b.y) + b.y) | |
}, | |
Mi = function(a, b) { | |
if (y(a, "%")) return Bi(a, b); | |
var c = La(a).split(" "); | |
return new E(b.left + (parseInt(c[0], 10) || 0), b.top + (parseInt(c[1], 10) || 0)) | |
}; | |
var Pi = function(a, b, c, d) { | |
this.Oi = a; | |
this.Pi = b; | |
this.bh = c; | |
this.ah = d | |
}, | |
Qi = function(a) { | |
return [a.Oi, a.Pi, a.bh, a.ah] | |
}; | |
var U = function(a, b, c, d) { | |
this.parent = a; | |
this.element = b; | |
this.canvas = c; | |
this.ra = d; | |
this.children = [] | |
}, | |
Ri = RegExp("(-moz-|-webkit-|-ms-)?linear-gradient\\(([^()]*|\\([^()]*\\))*\\)|-webkit-gradient\\(linear,.*?\\(.*\\).*\\)|url\\(.*?\\)", "gi"), | |
Si = new te("APPLET AREA BASE EMBED HEAD LEGEND LINK MAP META NOFRAMES NOSCRIPT OBJECT OPTION OPTGROUP PARAM SCRIPT STYLE TITLE".split(" ")), | |
Ti = {}, | |
Ui = function(a, b) { | |
B(b, function(b) { | |
Ti[String(b).toUpperCase()] = a | |
}) | |
}, | |
Wi = function(a, b, c) { | |
function d() { | |
var a = e[f++]; | |
return !a || | |
ui(b) ? c : a.render(b, d) | |
} | |
var e = fb(a); | |
lb(e, function(a, b) { | |
return Vi(a) - Vi(b) | |
}); | |
var f = 0; | |
return d | |
}; | |
k = U.prototype; | |
k.Ha = function(a, b, c) { | |
function d(f, l, m) { | |
if (!f || ui(b)) return c; | |
var h = l ? l[m + 1] : t(f.nextElementSibling) ? f.nextElementSibling : Rc(f.nextSibling); | |
return 3 === f.nodeType || "none" == J(f, "display") || e.contains(f.tagName) || Xi(f) ? Da(d, h) : (new(Ti[f.tagName.toUpperCase()] || U)(g, f, g.canvas, g.ra)).Ha(a, b, function() { | |
return d(h, l, m + 1) | |
}) | |
} | |
var e = Si; | |
if (.02 >= Yi(this) || .02 >= Zi(this)) return c; | |
this.ve() ? (a.push(this), a = this.children) : $i(this) ? a.push(this) : this.parent.children.push(this); | |
if (J(this.element, "content", ":before")) { | |
var f = | |
Ti[":BEFORE"]; | |
f && (f = new f(this, this.element, this.canvas, this.ra), this.children.push(f)) | |
} | |
var g = this; | |
return this.element.shadowRoot ? Da(d, Sc(this.element.shadowRoot), null, 0) : (f = this.element.getDistributedNodes && this.element.getDistributedNodes()) && f.length ? (f = $a(f, function(a) { | |
a = a.getDestinationInsertionPoints(); | |
return a[a.length - 1] == g.element | |
}), Da(d, f[0], f, 0)) : Da(d, Sc(this.element), null, 0) | |
}; | |
k.render = function(a, b) { | |
if (ui(a) || Ie(this.element) || this.gc() && !Tf(aj(this), this.canvas.Qc())) return b; | |
(1 > Yi(this) || 1 > Zi(this)) && this.pg(); | |
($i(this) || 1 > Yi(this)) && this.yc(this.Cf(!0)); | |
if (this.Uf() && Tf(aj(this), this.canvas.Qc())) { | |
if (bj(this)) { | |
var c = this.canvas, | |
d = aj(this).clone(), | |
e = this.Od, | |
f = this.bf; | |
c.S.unshift([]); | |
c.S[0].push([25, [d.left, d.top, d.width, d.height, Qi(e), Qi(f)]]) | |
} | |
this.ti(); | |
this.ui(); | |
this.He(); | |
bj(this) && ji(this.canvas) | |
} | |
this.gc() && this.yc(V(this)); | |
return this.Ma(a, b) | |
}; | |
k.Ma = function(a, b) { | |
var c = this; | |
return Wi(this.children, a, function() { | |
($i(c) || 1 > Yi(c)) && ji(c.canvas); | |
c.gc() && ji(c.canvas); | |
(1 > Yi(c) || 1 > Zi(c)) && c.hg(); | |
return b | |
}) | |
}; | |
k.ti = function() { | |
var a = cj(this), | |
b = He(this.getStyle("backgroundImage")), | |
c = dj(this); | |
a && this.canvas.fillRect(aj(this), a); | |
if (0 < b.length || 0 < c.length) { | |
var d = ej(this), | |
e = fj(this), | |
f = gj(this), | |
a = hj(this).reverse(); | |
b.reverse(); | |
c.reverse(); | |
f.reverse(); | |
var g = 0, | |
h = 0; | |
B(a, function(a, m) { | |
if ("g" === a) { | |
if (c[h]) { | |
var l = V(this), | |
p = c[h].Dk, | |
v = c[h].xj; | |
this.canvas.S[0].push([7, [l.left, l.top, l.width, l.height, p.x, p.y, v.x, v.y, c[h].rj]]) | |
} | |
h += 1 | |
} else "i" === a && (b[g] && (l = this.canvas, p = V(this), l.S[0].push([1, [l.Si[b[g]], p.left, p.top, p.width, | |
p.height, f[m], d.x, d.y, e | |
]])), g += 1) | |
}, this) | |
} | |
}; | |
k.ui = function() { | |
var a = this.Bf(), | |
b = V(this), | |
c = [this.getStyle("borderTopColor"), this.getStyle("borderRightColor"), this.getStyle("borderBottomColor"), this.getStyle("borderLeftColor")]; | |
this.canvas.S[0].push([8, [b.left, b.top, b.width, b.height, Qi(this.Od), Qi(this.bf), a.top, a.right, a.bottom, a.left, c]]) | |
}; | |
k.He = function() {}; | |
var V = function(a) { | |
if (!a.lb) { | |
var b = a.Bf(); | |
a.lb = aj(a).clone(); | |
a.lb.top += b.top; | |
a.lb.left += b.left; | |
a.lb.width -= b.left + b.right; | |
a.lb.height -= b.top + b.bottom | |
} | |
return a.lb | |
}, | |
jj = function(a) { | |
var b = V(a).clone(); | |
a = new N(ij(a, "paddingTop"), ij(a, "paddingRight"), ij(a, "paddingBottom"), ij(a, "paddingLeft")); | |
b.top += a.top; | |
b.left += a.left; | |
b.width -= a.left + a.right; | |
b.height -= a.top + a.bottom; | |
return b | |
}, | |
aj = function(a) { | |
a.Uc || (a.Uc = a.Qc(), a.Uc.top += a.ra.top, a.Uc.left += a.ra.left); | |
return a.Uc | |
}; | |
U.prototype.Qc = function() { | |
return xi(this.element) | |
}; | |
U.prototype.Bf = function() { | |
this.Ic || (this.Ic = new N(0, 0, 0, 0), "none" != this.getStyle("borderTopStyle") && (this.Ic.top = ij(this, "borderTopWidth")), "none" != this.getStyle("borderRightStyle") && (this.Ic.right = ij(this, "borderRightWidth")), "none" != this.getStyle("borderBottomStyle") && (this.Ic.bottom = ij(this, "borderBottomWidth")), "none" != this.getStyle("borderLeftStyle") && (this.Ic.left = ij(this, "borderLeftWidth"))); | |
return this.Ic | |
}; | |
var Vi = function(a) { | |
if (!$i(a)) return 1 > Yi(a) ? 1 : 0; | |
a = ij(a, "zIndex"); | |
return 0 <= a ? a + 1 : a | |
}, | |
$i = function(a) { | |
return "static" != a.getStyle("position") | |
}; | |
U.prototype.Cf = function(a) { | |
if (this.vf && !a) return this.vf; | |
var b; | |
b = this.parent; | |
switch (this.getStyle("position")) { | |
case "relative": | |
for (; b && !b.gc() && !$i(b);) b = b.parent; | |
break; | |
case "fixed": | |
case "absolute": | |
for (; b && !$i(b);) b = b.parent | |
} | |
b = b ? b.Cf() : this.ra; | |
this.vf = wi(b, this.gc() ? V(this) : this.ra); | |
return a && this.gc() ? wi(b, aj(this)) : this.vf | |
}; | |
U.prototype.Uf = function() { | |
return "hidden" != this.getStyle("visibility") | |
}; | |
var Xi = function(a) { | |
a = J(a, "transform") || J(a, "-ms-transform") || J(a, "-webkit-transform"); | |
if (!Ha(a, "matrix3d")) return !1; | |
a = a.split(","); | |
return !!a[10] && "-1" == a[10].trim() | |
}; | |
U.prototype.gc = function() { | |
return "visible" != this.getStyle("overflow") && "inline" != this.getStyle("display") | |
}; | |
var bj = function(a) { | |
if (!a.Od || !a.bf) | |
if (!a.Od || !a.bf) { | |
var b = a.element, | |
c = vi(b, "top-left", V(a)), | |
d = vi(b, "top-right", V(a)), | |
e = vi(b, "bottom-right", V(a)), | |
b = vi(b, "bottom-left", V(a)); | |
a.Od = new Pi(c[0], d[0], e[0], b[0]); | |
a.bf = new Pi(c[1] ? c[1] : c[0], d[1] ? d[1] : d[0], e[1] ? e[1] : e[0], b[1] ? b[1] : b[0]) | |
} | |
a = a.Od; | |
return !!(a.Oi || a.Pi || a.bh || a.ah) | |
}; | |
U.prototype.yc = function(a) { | |
this.canvas.yc(a.left, a.top, a.width, a.height) | |
}; | |
var ej = function(a) { | |
var b = { | |
x: !1, | |
y: !1 | |
}; | |
a = a.getStyle("backgroundRepeat"); | |
if ("repeat" == a || "repeat-x" == a || "repeat no-repeat" == a) b.x = !0; | |
if ("repeat" == a || "repeat-y" == a || "no-repeat repeat" == a) b.y = !0; | |
return b | |
}, | |
fj = function(a) { | |
a = a.getStyle("backgroundSize"); | |
return "auto" == a ? "" : a | |
}, | |
cj = function(a) { | |
a = a.getStyle("backgroundColor"); | |
return "rgba(0, 0, 0, 0)" != a && "transparent" != a ? a : "" | |
}, | |
dj = function(a) { | |
for (var b = a.getStyle("backgroundImage"), c = aj(a), d = [], e; e = Ri.exec(b);) 0 === e[0].indexOf("-moz-linear-gradient") || 0 === e[0].indexOf("-webkit-linear-gradient") || | |
0 === e[0].indexOf("-ms-linear-gradient") || 0 === e[0].indexOf("linear-gradient") ? d.push(Li(e[0], c)) : 0 === e[0].indexOf("-webkit-gradient(linear,") && d.push(Ni(e[0], c)); | |
F && (a = a.getStyle("filter") || a.getStyle("-ms-filter"), y(a, "gradient") && d.push(Oi(a, c))); | |
return d | |
}, | |
hj = function(a) { | |
for (var b = J(a.element, "backgroundImage"), c, d = []; c = Ri.exec(b);) c = c[0], 0 === c.indexOf("-moz-") || 0 == c.indexOf("-webkit-") || 0 == c.indexOf("-ms-") || 0 == c.indexOf("linear-gradient") || 0 == c.indexOf("-webkit-gradient-") ? d.push("g") : d.push("i"); | |
F && (a = a.getStyle("filter") || a.getStyle("-ms-filter"), y(a, "gradient") && d.push("g")); | |
return d | |
}, | |
gj = function(a) { | |
var b = a.getStyle("backgroundPosition"); | |
b || (b = a.getStyle("backgroundPositionX") + " " + a.getStyle("backgroundPositionY")); | |
return b.replace(/top|left/g, "0").replace(/right|bottom/g, "100%").replace(/center/g, "50%").split(", ") | |
}; | |
U.prototype.getStyle = function(a) { | |
return J(this.element, a) | |
}; | |
var ij = function(a, b) { | |
return parseInt(a.getStyle(b), 10) || 0 | |
}, | |
Yi = function(a) { | |
if (F && !G("9")) return 1; | |
a = parseFloat(a.getStyle("opacity")); | |
return isNaN(a) ? 1 : a | |
}, | |
Zi = function(a) { | |
return F ? (a = (a.getStyle("filter").match(/alpha\(opacity=([\d.]+)\)/) || [])[1] / 100, isNaN(a) ? 1 : a) : 1 | |
}; | |
U.prototype.ve = function() { | |
return $i(this) && "auto" != this.getStyle("zIndex") || 1 > Yi(this) | |
}; | |
U.prototype.pg = function() { | |
var a = Math.min(Yi(this), Zi(this)); | |
this.canvas.pg(a) | |
}; | |
U.prototype.hg = function() { | |
this.canvas.hg() | |
}; | |
var kj = function(a, b, c, d) { | |
U.call(this, a, b, c, d); | |
this.Ti = Ge(this.getStyle("content")) | |
}; | |
x(kj, U); | |
Ui(kj, [":before"]); | |
k = kj.prototype; | |
k.Ha = function() { | |
throw Error("Not Supported"); | |
}; | |
k.render = function(a, b) { | |
var c = lj(this); | |
return !(0 < c.width && 0 < c.height && "inline" == this.getStyle("display")) || ij(this, "marginLeft") || ij(this, "marginRight") || $i(this) || this.ve() ? b : kj.s.render.call(this, a, b) | |
}; | |
k.He = function() { | |
this.Ti && hi(this.canvas, this.Ti, jj(this)) | |
}; | |
k.Qc = function() { | |
var a = lj(this), | |
b = document.createElement("gft"); | |
b.style.display = "inline-block"; | |
b.style.width = a.width + "px"; | |
b.style.height = a.height + "px"; | |
var c = this.element; | |
c.insertBefore(b, c.childNodes[0] || null); | |
var c = jj(this.parent), | |
d = xi(b); | |
this.element.removeChild(b); | |
d.left >= c.left + a.width ? d.left -= a.width : d.top = c.top; | |
return d | |
}; | |
k.getStyle = function(a) { | |
return J(this.element, a, ":before") | |
}; | |
var lj = function(a) { | |
a.Nh || (a.Nh = new bc(parseInt($h(a.element, "before-width"), 10), parseInt($h(a.element, "before-height"), 10))); | |
return a.Nh | |
}; | |
var mj = function(a, b, c) { | |
U.call(this, null, a, b, c) | |
}; | |
x(mj, U); | |
mj.prototype.Cf = function() { | |
return this.ra | |
}; | |
mj.prototype.ve = function() { | |
return !0 | |
}; | |
mj.prototype.gc = function() { | |
return !1 | |
}; | |
var nj = function(a, b, c) { | |
this.Ra = a; | |
this.ka = b; | |
this.ra = c | |
}; | |
nj.prototype.Ha = function(a, b) { | |
this.Zc = new mj(this.Ra.documentElement, this.ka, this.ra); | |
return this.Zc.Ha([], a, b) | |
}; | |
nj.prototype.render = function(a, b) { | |
this.ka.yc(this.ra.left, this.ra.top, this.ra.width, this.ra.height); | |
return this.Zc.render(a, w(function() { | |
ji(this.ka); | |
return b | |
}, this)) | |
}; | |
var oj = function(a, b, c, d) { | |
U.call(this, a, b, c, d); | |
this.hd = new O(0, 0, 0, 0) | |
}; | |
x(oj, U); | |
Ui(oj, ["IFRAME", "FRAME"]); | |
oj.prototype.Ha = function(a, b, c) { | |
this.ve() || $i(this) ? a.push(this) : this.parent.children.push(this); | |
a = Fe(this.element); | |
if (!a) return c; | |
this.Zc = new nj(a, this.canvas, this.hd); | |
return this.Zc.Ha(b, c) | |
}; | |
oj.prototype.Ma = function(a, b) { | |
function c() { | |
return oj.s.Ma.call(d, a, b) | |
} | |
var d = this; | |
if (!this.Zc) return this.canvas.fillRect(V(this), "#ffe5e5"), c; | |
pj(this); | |
return this.Zc.render(a, c) | |
}; | |
oj.prototype.gc = function() { | |
return !1 | |
}; | |
var pj = function(a) { | |
var b = V(a); | |
a.hd.top = b.top; | |
a.hd.left = b.left; | |
a.hd.width = b.width; | |
a.hd.height = b.height | |
}; | |
var qj = function(a, b, c, d) { | |
U.call(this, a, b, c, d) | |
}; | |
x(qj, U); | |
Ui(qj, ["CANVAS", "IMG", "SVG"]); | |
qj.prototype.He = function() { | |
var a = $h(this.element, "src"); | |
if (a) hi(this.canvas, a, jj(this)); | |
else if (this.element.src) hi(this.canvas, this.element.src, jj(this)); | |
else if (this.element.toDataURL) try { | |
var b = this.element.toDataURL("image/png"); | |
hi(this.canvas, b, V(this)) | |
} catch (c) {} else -1 < this.element.tagName.search(/svg/i) && !Ie(this.element) && (a = this.element.getAttribute("google-feedback-svg-id"), b = jj(this), this.canvas.S[0].push([9, [a, b.left, b.top, b.width, b.height]])) | |
}; | |
var sj = function(a, b, c, d) { | |
U.call(this, a, b, c, d); | |
a = rj; | |
this.Qf = this.element.type.toLowerCase(); | |
this.tc = a[this.Qf] || 0 | |
}; | |
x(sj, U); | |
Ui(sj, ["INPUT"]); | |
var rj = { | |
text: 0, | |
button: 1, | |
reset: 1, | |
submit: 1, | |
radio: 2, | |
checkbox: 2, | |
image: 3 | |
}; | |
k = sj.prototype; | |
k.He = function() { | |
switch (this.tc) { | |
case 2: | |
var a = aj(this).left, | |
b = aj(this).top; | |
F ? (a += 5, b += 5) : jc && (b += 2); | |
this.canvas.S[0].push([6, [("radio" == this.Qf ? 0 : 4) + (this.element.disabled ? 2 : 0) + (this.element.checked ? 1 : 0), a, b]]); | |
break; | |
case 3: | |
this.element.src && hi(this.canvas, this.element.src, jj(this)); | |
break; | |
default: | |
this.wi() | |
} | |
}; | |
k.Bf = function() { | |
return 2 == this.tc || 3 == this.tc ? new N(0, 0, 0, 0) : new N(1, 1, 1, 1) | |
}; | |
k.ui = function() { | |
if (2 != this.tc && 3 != this.tc) { | |
var a = aj(this); | |
this.canvas.S[0].push([3, [a.left, a.top, a.width, a.height, "#aaa"]]) | |
} | |
}; | |
k.ti = function() { | |
if (2 != this.tc) { | |
var a = "#fff"; | |
1 == this.tc ? a = this.element.disabled ? "#eee" : "#ddd" : this.element.disabled && (a = "#ddd"); | |
this.canvas.fillRect(aj(this), a) | |
} | |
}; | |
k.sa = function() { | |
return Be(this.element.value || "", this.getStyle("textTransform")) | |
}; | |
k.wi = function() { | |
var a = this.sa(), | |
b = "#000", | |
c = zi(this.element), | |
d = aj(this).clone(), | |
e = Ai(this.element), | |
f = yi(this.element); | |
"password" == this.Qf && (a = Ua("*", a.length)); | |
this.element.disabled && (b = "#808080"); | |
var g = Math.round((d.height - e - 4) / 2); | |
d.top += g; | |
d.height -= g; | |
d.left += 4; | |
d.width -= 4; | |
this.yc(d); | |
this.canvas.S[0].push([5, [a, d.left, d.top, c, e, d.width, b, f, !1, !1]]); | |
ji(this.canvas) | |
}; | |
var tj = function(a, b, c, d) { | |
sj.call(this, a, b, c, d) | |
}; | |
x(tj, sj); | |
Ui(tj, ["SELECT"]); | |
tj.prototype.sa = function() { | |
var a = this.element.options[this.element.selectedIndex]; | |
return !this.element.multiple && a ? Be(a.text || "", this.getStyle("textTransform")) : "" | |
}; | |
var uj = { | |
APPLET: !0, | |
AREA: !0, | |
BUTTON: !0, | |
EMBED: !0, | |
HEAD: !0, | |
INPUT: !0, | |
MAP: !0, | |
NOFRAMES: !0, | |
NOSCRIPT: !0, | |
OBJECT: !0, | |
OPTGROUP: !0, | |
OPTION: !0, | |
PARAM: !0, | |
SCRIPT: !0, | |
SELECT: !0, | |
STYLE: !0, | |
TEXTAREA: !0, | |
TITLE: !0, | |
TEXT: !0 | |
}; | |
Math.floor(2147483648 * Math.random()).toString(36); | |
Math.abs(Math.floor(2147483648 * Math.random()) ^ Ea()).toString(36); | |
var vj = function(a) { | |
var b = a.ownerDocument, | |
c = b.createElement("GFT"), | |
d = a.nodeValue, | |
e = d.match(/^([\s\xa0]+)/); | |
e && a.parentNode.insertBefore(b.createTextNode(e[1]), a); | |
(e = d.match(/([\s\xa0]+)$/)) && a.parentNode.insertBefore(b.createTextNode(e[1]), a.nextSibling); | |
a.parentNode.replaceChild(c, a); | |
a.nodeValue = La(d); | |
c.appendChild(a) | |
}, | |
wj = function(a, b) { | |
if (!u(a.tagName)) return !1; | |
var c = a.getAttribute("class"); | |
return c && -1 < c.indexOf("material-icons") ? !1 : !(a.tagName.toUpperCase() in uj) && 3 == b.nodeType && !Ka(b.nodeValue) | |
}; | |
var xj = function(a, b, c, d) { | |
U.call(this, a, b, c, d) | |
}; | |
x(xj, U); | |
Ui(xj, ["GFT"]); | |
var yj = document.createElement("canvas"), | |
zj = yj.getContext && yj.getContext("2d").measureText, | |
Aj = t(document.createElement("body").createTextRange); | |
xj.prototype.render = function(a, b) { | |
if (Tf(aj(this), this.canvas.Qc()) && !ui(a) && this.Uf()) | |
if (zj) { | |
var c = document.createElement("canvas").getContext("2d"); | |
c.font = Bj(this); | |
for (var d = this.ce(), e = this.element.getClientRects(), f = this.sa(), g = "", h = 0, l = e.length; h < l && f.length; ++h, g = "") { | |
for (var m = Math.floor(e[h].width), n = Math.floor(e[h].left), p = Math.floor(e[h].top), f = La(f); f.length && c.measureText(g).width < m;) g += f.charAt(0), f = f.substr(1); | |
d(g, n, p, m) | |
} | |
} else if (Aj) a: { | |
c = this.ce();d = Ai(this.element);e = H(this.element).body.createTextRange(); | |
try { | |
e.moveToElementText(this.element) | |
} catch (v) { | |
break a | |
} | |
e.moveStart("character");e.moveStart("character", -1);f = e.duplicate();e.collapse(); | |
for (e.moveEnd("word"); - 1 == e.compareEndPoints("StartToEnd", f);) { | |
1 == e.compareEndPoints("EndToEnd", f) && e.setEndPoint("EndToEnd", f); | |
Ka(e.text) || (g = e.boundingTop, e.boundingHeight > 2 * d && (g += e.boundingHeight - d - 10), c(e.text, e.boundingLeft, g, e.boundingWidth)); | |
if (0 == e.moveEnd("word")) break; | |
e.moveStart("word") | |
} | |
} | |
return b | |
}; | |
var Bj = function(a) { | |
return [yi(a.element), a.getStyle("fontStyle"), Ai(a.element) + "px", zi(a.element)].join(" ") | |
}; | |
xj.prototype.ce = function() { | |
var a = this, | |
b = Ai(this.element), | |
c = zi(this.element), | |
d = this.getStyle("color"), | |
e = yi(this.element), | |
f = "italic" == this.getStyle("fontStyle"), | |
g = this.getStyle("textTransform"), | |
h = y(J(this.element.parentNode, "textDecoration"), "underline"); | |
return function(l, m, n, p) { | |
m += a.ra.left; | |
n += a.ra.top; | |
l = Be(l, g); | |
a.canvas.S[0].push([5, [l, m, n, c, b, p, d, e, f, h]]) | |
} | |
}; | |
xj.prototype.sa = function() { | |
return this.element.firstChild ? Ja(this.element.firstChild.nodeValue || "") : "" | |
}; | |
var Cj = function(a, b, c, d) { | |
sj.call(this, a, b, c, d) | |
}; | |
x(Cj, sj); | |
Ui(Cj, ["TEXTAREA"]); | |
Cj.prototype.wi = function() { | |
if (Dj(this, "test")) { | |
var a = this.ce(), | |
b = V(this), | |
c = b.top - this.element.scrollTop, | |
d = b.left, | |
e = Ai(this.element), | |
f = this.sa() + "\n", | |
g = ""; | |
this.yc(V(this)); | |
for (var h = 0; h < f.length; ++h) | |
if ("\n" == f.charAt(h)) a(g, d, c, Dj(this, g)), c += e, g = ""; | |
else { | |
var g = g + f.charAt(h), | |
l = Dj(this, g); | |
if (l > b.width) { | |
for (var m = g.length - 1; 0 < m && !/\s/.test(g.charAt(m)); --m); | |
m = m || g.length - 1; | |
a(g.substring(0, m), d, c, l); | |
c += e; | |
g = La(g.substring(m)) | |
} | |
} | |
ji(this.canvas) | |
} | |
}; | |
Cj.prototype.ce = function() { | |
var a = this, | |
b = this.element, | |
c = Ai(b), | |
d = zi(b), | |
e = "#000", | |
f = yi(b), | |
g = "italic" == this.getStyle("fontStyle"); | |
this.element.disabled && (e = "#808080"); | |
return function(b, l, m, n) { | |
a.canvas.S[0].push([5, [b, l, m, d, c, n, e, f, g, !1]]) | |
} | |
}; | |
var Dj = function(a, b) { | |
var c = document.body, | |
d = document.createElement("SPAN"); | |
d.setAttribute("style", "font: " + Bj(a)); | |
if ("textContent" in d) d.textContent = b; | |
else if (3 == d.nodeType) d.data = b; | |
else if (d.firstChild && 3 == d.firstChild.nodeType) { | |
for (; d.lastChild != d.firstChild;) d.removeChild(d.lastChild); | |
d.firstChild.data = b | |
} else Oc(d), d.appendChild(H(d).createTextNode(String(b))); | |
c.appendChild(d); | |
c = d.getClientRects()[0]; | |
Pc(d); | |
return c ? c.width ? c.width : c.right - c.left : 0 | |
}; | |
var Ej = function(a, b, c, d, e, f, g) { | |
var h = new O(0, 0, b, c), | |
l = new nj(a, g, h), | |
m = function(a, b) { | |
g.Cb(); | |
var c; | |
if (u(a)) c = a; | |
else { | |
try { | |
var d; | |
var e = qa("window.location.href"); | |
if (u(a)) d = { | |
message: a, | |
name: "Unknown error", | |
lineNumber: "Not available", | |
fileName: e, | |
stack: "Not available" | |
}; | |
else { | |
var f, h, l = !1; | |
try { | |
f = a.lineNumber || a.Wf || "Not available" | |
} catch (cf) { | |
f = "Not available", l = !0 | |
} | |
try { | |
h = a.fileName || a.filename || a.sourceURL || r.$googDebugFname || e | |
} catch (cf) { | |
h = "Not available", l = !0 | |
} | |
d = !l && a.lineNumber && a.fileName && a.stack && a.message && | |
a.name ? a : { | |
message: a.message || "Not available", | |
name: a.name || "UnknownError", | |
lineNumber: f, | |
fileName: h, | |
stack: a.stack || "Not available" | |
} | |
} | |
var m; | |
var n = d.fileName; | |
null != n || (n = ""); | |
if (/^https?:\/\//i.test(n)) { | |
var p = Qb(n); | |
D("view-source scheme plus HTTP/HTTPS URL"); | |
var Eb = "view-source:" + Nb(p); | |
m = Pb(Eb) | |
} else { | |
var ha = D("sanitizedviewsrc"); | |
m = Pb(Bb(ha)) | |
} | |
var sl = Wb("Message: " + d.message + "\nUrl: "), | |
Qh, e = { | |
href: m, | |
target: "_new" | |
}, | |
fc = d.fileName; | |
if (!Xb.test("a")) throw Error("Invalid tag name <a>."); | |
if ("A" in Zb) throw Error("Tag name <a> is not allowed for SafeHtml."); | |
f = null; | |
var Fd; | |
h = ""; | |
if (e) | |
for (var Gd in e) { | |
if (!Xb.test(Gd)) throw Error('Invalid attribute name "' + Gd + '".'); | |
var Rh = e[Gd]; | |
if (null != Rh) { | |
var l = h, | |
Sh; | |
m = Gd; | |
n = Rh; | |
if (n instanceof Ab) n = Bb(n); | |
else if ("style" == m.toLowerCase()) { | |
Eb = p = void 0; | |
ha = n; | |
if (!xa(ha)) throw Error('The "style" attribute requires goog.html.SafeStyle or map of style properties, ' + typeof ha + " given: " + ha); | |
if (!(ha instanceof Db)) { | |
var Th = ha, | |
df = ""; | |
for (Eb in Th) { | |
if (!/^[-_a-zA-Z0-9]+$/.test(Eb)) throw Error("Name allows only [-_a-zA-Z0-9], got: " + Eb); | |
var Aa = Th[Eb]; | |
if (null != Aa) { | |
if (Aa instanceof Ab) Aa = Bb(Aa); | |
else if (Gb.test(Aa)) { | |
for (var Hd = !0, Id = !0, ef = 0; ef < Aa.length; ef++) { | |
var Uh = Aa.charAt(ef); | |
"'" == Uh && Id ? Hd = !Hd : '"' == Uh && Hd && (Id = !Id) | |
} | |
Hd && Id || (Aa = "zClosurez") | |
} else Aa = "zClosurez"; | |
df += Eb + ":" + Aa + ";" | |
} | |
} | |
ha = df ? (new Db).ue(df) : Fb | |
} | |
ha instanceof Db && ha.constructor === Db && ha.Zi === Cb ? p = ha.jg : (sa(ha), p = "type_error:SafeStyle"); | |
n = p | |
} else { | |
if (/^on/i.test(m)) throw Error('Attribute "' + m + '" requires goog.string.Const value, "' + n + '" given.'); | |
if (m.toLowerCase() in Yb) | |
if (n instanceof Ib) n = Jb(n); | |
else if (n instanceof Mb) n = Nb(n); | |
else if (u(n)) n = Qb(n).ec(); | |
else throw Error('Attribute "' + m + '" on tag "a" requires goog.html.SafeUrl, goog.string.Const, or string, value "' + n + '" given.'); | |
} | |
n.rc && (n = n.ec()); | |
Sh = m + '="' + Ta(String(n)) + '"'; | |
h = l + (" " + Sh) | |
} | |
} | |
Fd = "<a" + h; | |
null != fc ? ta(fc) || (fc = [fc]) : fc = []; | |
if (!0 === ub.a) Fd += ">"; | |
else { | |
var Vh = $b(fc); | |
Fd += ">" + Tb(Vh) + "</a>"; | |
f = Vh.Pc() | |
} | |
var Wh = e && e.dir; | |
Wh && (f = /^(ltr|rtl|auto)$/i.test(Wh) ? 0 : null); | |
Qh = Ub(Fd, f); | |
c = $b(sl, Qh, Wb("\nLine: " + d.lineNumber + "\n\nBrowser stack:\n" + | |
d.stack + "-> [end]\n\nJS stack traversal:\n" + ne(void 0) + "-> ")) | |
} catch (cf) { | |
c = Wb("Exception trying to expose exception! You win, we lose. " + cf) | |
} | |
c = Tb(c) | |
} | |
b(!1, "error in createRenderer: " + c) | |
}; | |
d.onError = function(a) { | |
m(a, f) | |
}; | |
f = ih(f); | |
d.nd(l.Ha(e, function() { | |
f(!0) | |
})); | |
return function(a, b, c, d) { | |
h.top = b.top; | |
h.left = b.left; | |
h.width = b.width; | |
h.height = b.height; | |
var f = ih(d); | |
a.onError = function(a) { | |
m(a, f) | |
}; | |
a.nd(l.render(c, function() { | |
var a = g.toDataURL(); | |
g.Cb(); | |
e.Mi = 0; | |
f(!0, a) | |
})) | |
} | |
}; | |
var Fj = function(a, b) { | |
K.call(this); | |
this.Mf = {}; | |
this.Nj = 0; | |
this.Li = {}; | |
this.Ya = new Q; | |
this.ua = new Fh("*", qd(this.Ya)); | |
bf(this, this.ua); | |
this.ua.open(); | |
this.la = b; | |
this.Ua = a | |
}; | |
x(Fj, K); | |
Fj.prototype.initialize = function(a, b) { | |
this.Ya.Ka || (this.wa = b.createElement("iframe"), this.wa.setAttribute("frameborder", "0"), this.wa.style.top = "-3px", this.wa.style.left = "-3px", this.wa.style.width = "4px", this.wa.style.height = "4px", this.wa.style.zIndex = "3000000", this.wa.style.border = 0, this.wa.style.position = "absolute", this.wa.style.verticalAlign = "bottom", this.wa.id = "google-feedback-render-frame", this.wa.src = a.toString(), Lf(this.wa, "load", function() { | |
var a = Wc(this.wa); | |
a ? this.Ya.callback(new Eh(a)) : this.Ya.Y() | |
}, !1, this), b.sb().body.appendChild(this.wa)) | |
}; | |
var Gj = function(a, b) { | |
b.qc(); | |
var c = {}; | |
Ud(b, function(a) { | |
if (!(a in this.Mf)) { | |
var b = this.Nj++; | |
this.Mf[a] = b; | |
c[b] = Ha(a, "data:") ? a : "/gadgets/proxy?container=fbk&rewriteMime=image/*&url=" + encodeURIComponent(a); | |
ei(a) && di(a, w(function(a) { | |
var c = {}; | |
c[b] = a; | |
this.ua.send(new li(c)) | |
}, this)) | |
} | |
}, a); | |
qb(c) || a.ua.send(new li(c)) | |
}, | |
Hj = function(a, b) { | |
b.qc(); | |
Ud(b, function(a, b) { | |
if (!(b in this.Li)) { | |
this.Li[b] = a; | |
var c = {}; | |
c[b] = a; | |
this.ua.send(new ri(c)) | |
} | |
}, a) | |
}, | |
Ij = function(a, b) { | |
a.ua.send(new ki(b)) | |
}, | |
Jj = function(a, b) { | |
a.ua.send(new mi(b)) | |
}; | |
Fj.prototype.render = function(a, b, c, d) { | |
function e() { | |
f.Ka || (f.za(), Lg(e)) | |
} | |
var f = nh(new mh(void 0, this), 10), | |
g = Ic(document), | |
h = Kj(a), | |
l = Lj(b || [], g, "blackout"), | |
m = Lj(b || [], g, "highlight"), | |
n = new gi(this.Mf), | |
p = new O(-g.x, -g.y, h.width + g.x, h.height + g.y); | |
n.resize(h); | |
e(); | |
a = Mj(this, a, n, h); | |
R(a, function(a) { | |
return R(Nj(this, a, p), function() { | |
return Oj(this, n.S[0], h, m, l, c || 0, d || 0) | |
}, this) | |
}, this); | |
R(a, f.callback, f); | |
S(a, f.Y, f); | |
return f | |
}; | |
var Mj = function(a, b, c, d) { | |
a.la.reset(); | |
Xe(a.Ua, "create_screenshot_renderer"); | |
var e = Date.now(), | |
f = new Q(void 0, a), | |
g = new lh(500), | |
h = new ti(Ea() + 6E4), | |
l = Ej(b, d.width, d.height, g, h, function(a, b) { | |
a ? f.callback(l) : f.Y(b) | |
}, c); | |
R(f, function() { | |
this.la.tick("rer"); | |
Ye(this.Ua, "create_screenshot_renderer", Date.now() - e) | |
}, a); | |
S(f, function() { | |
Ze(this.Ua, "create_screenshot_renderer", Date.now() - e) | |
}, a); | |
return f | |
}, | |
Nj = function(a, b, c) { | |
var d = new Q(void 0, a); | |
a = new lh(500); | |
var e = new ti(Ea() + 3E4); | |
b(a, c, e, function(a, b) { | |
a ? d.callback(b) : | |
d.Y(b) | |
}); | |
return d | |
}, | |
Oj = function(a, b, c, d, e, f, g) { | |
Xe(a.Ua, "render_screenshot"); | |
var h = Date.now(); | |
b = gh(qd(a.ua.send(new ni(b, c, d, e, f, g), 3E4))); | |
R(b, function(a) { | |
this.la.tick("rs"); | |
this.la.report(); | |
Ye(this.Ua, "render_screenshot", Date.now() - h); | |
this.Ek = a.tg; | |
return new si(a.mi, c) | |
}, a); | |
S(b, function() { | |
this.la.tick("rf"); | |
this.la.report(); | |
Ze(this.Ua, "render_screenshot", Date.now() - h) | |
}, a); | |
return b | |
}, | |
Lj = function(a, b, c) { | |
a = $a(a, function(a) { | |
return a.Ca == c | |
}); | |
return ab(a, function(a) { | |
a = a.V(); | |
return new O(a.left - b.x, a.top - b.y, | |
a.width, a.height) | |
}) | |
}, | |
Kj = function(a) { | |
a = Ec(Jc(a)); | |
var b = Ec(); | |
a = new bc(Math.min(a.width, b.width), Math.min(a.height, b.height)); | |
b = a.width * a.height; | |
1E7 < b && (a.height -= Math.ceil((b - 1E7) / a.width)); | |
return a | |
}; | |
if (F && F) try { | |
new ActiveXObject("MSXML2.DOMDocument") | |
} catch (a) {}; | |
var Pj = ["https://ssl.gstatic.com", "https://www.gstatic.com", "https://fonts.googleapis.com"]; | |
var Qj = function(a) { | |
this.Ab = a || new O(0, 0, 0, 0); | |
this.ee = this.de = !1; | |
this.Qi = !0; | |
this.Id = this.ld = null; | |
this.Pe = [] | |
}; | |
Qj.prototype.V = function() { | |
return this.Ab | |
}; | |
Qj.prototype.Hd = function(a) { | |
Rj(this); | |
this.Ab = a | |
}; | |
var Sj = function(a, b) { | |
Rj(a); | |
a.de = b | |
}, | |
Tj = function(a, b) { | |
Rj(a); | |
a.ee = b | |
}; | |
Qj.prototype.getData = function() { | |
return this.nc | |
}; | |
Qj.prototype.setData = function(a) { | |
this.nc = a | |
}; | |
var Uj = function(a, b) { | |
if (b.Id) throw Error("Layer already has superlayer."); | |
b.Id = a; | |
a.Pe.push(b); | |
Rj(a) | |
}, | |
Vj = function(a) { | |
if (!a.ld) { | |
var b = a.V(), | |
c = b.clone(); | |
a.de && a.ee || Ld(a.Pe, function(a) { | |
a = Vj(a); | |
a = new O(b.left + a.left, b.top + a.top, a.width, a.height); | |
var d = !this.ee; | |
if (!this.de) { | |
var f = Math.max(c.left + c.width, a.left + a.width); | |
c.left = Math.min(c.left, a.left); | |
c.width = f - c.left | |
} | |
d && (d = Math.max(c.top + c.height, a.top + a.height), c.top = Math.min(c.top, a.top), c.height = d - c.top) | |
}, a); | |
a.ld = c | |
} | |
return a.ld | |
}, | |
Rj = function(a) { | |
for (; a && | |
a.ld;) a.ld = null, a = a.Id | |
}; | |
Qj.prototype.toString = function() { | |
return this.Ab.toString() | |
}; | |
Qj.prototype.If = function(a) { | |
if (!Vj(this).contains(a)) return null; | |
for (var b = null, c = this.Pe, d = c.length - 1, e = this.V(); !b && 0 <= d;) b = c[d--].If(new E(a.x - e.left, a.y - e.top)); | |
b || this.Qi || !this.V().contains(a) || (b = this); | |
return b | |
}; | |
var Wj = function(a, b, c) { | |
var d = [], | |
e = Vj(a); | |
if (!Tf(e, b)) return d; | |
if (b.contains(e) && !bb(c, function(a) { | |
return Tf(a, e) | |
})) return d.push(a), d; | |
var f = a.V(); | |
B(a.Pe, function(a) { | |
var e = new O(b.left - f.left, b.top - f.top, b.width, b.height), | |
g = ab(c, function(a) { | |
return new O(a.left - f.left, a.top - f.top, a.width, a.height) | |
}); | |
d = eb(d, Wj(a, e, g)) | |
}, a); | |
return d | |
}; | |
var Xj = function() {}; | |
Xj.prototype.Ha = function(a) { | |
return Yj(this, a.documentElement, null) | |
}; | |
var Yj = function(a, b, c) { | |
if ("none" == b.display) return null; | |
var d = b.tagName.toLowerCase(), | |
e = !c || "static" != b.position && b.zIndex && "auto" != b.zIndex, | |
f = Zj(b), | |
g = new Qj; | |
g.setData(b); | |
"body" != d && "html" != d ? (Sj(g, "visible" != b.overflowX), Tj(g, "visible" != b.overflowY)) : (Sj(g, !1), Tj(g, !1)); | |
g.Qi = "hidden" == b.visibility || !f && !b.td; | |
var h = new ak; | |
h.element = b; | |
h.Th = g; | |
h.origin = new E(b.rect.left, b.rect.top); | |
h.xg = e ? h : c.xg; | |
f = null; | |
e ? (e = b.zIndex || "auto" == b.zIndex ? 0 : parseInt(b.zIndex, 10), h.dg = 0 <= e ? e + 1 : e, c && (f = c.xg)) : f = c; | |
(h.ik = f) ? | |
(g.Hd(new O(b.rect.left - f.origin.x, b.rect.top - f.origin.y, b.rect.width, b.rect.height)), f.tf.push(h)) : g.Hd(b.rect); | |
if ("hidden" == b.visibility || "select" == d || "button" == d || "textarea" == d || "input" == d) return g; | |
Ld(b.children, function(a) { | |
"string" != typeof a && Yj(this, a, h) | |
}, a); | |
b.bc && (Sj(g, !0), Tj(g, !0), (b = a.Ha(b.bc)) && Uj(g, b)); | |
lb(h.tf, bk); | |
Ld(h.tf, function(a) { | |
Uj(g, a.Th) | |
}, a); | |
return g | |
}, | |
Zj = function(a) { | |
var b = a.tagName.toLowerCase(); | |
if ("img" == b || "embed" == b || "object" == b || "button" == b || "input" == b || "select" == b || "textarea" == | |
b || "video" == b) return !0; | |
var c = !1; | |
Ld(a.children, function(a) { | |
if ("string" == typeof a && !Ka(a)) throw c = !0, Ed; | |
}); | |
return c | |
}, | |
ak = function() { | |
this.ik = null; | |
this.tf = []; | |
this.dg = 0; | |
this.xg = this.origin = this.Th = this.element = null | |
}, | |
bk = function(a) { | |
return jb(a.dg, a.dg) | |
}; | |
var ck = function(a, b) { | |
this.contentType = a; | |
this.ij = b | |
}; | |
ck.prototype.toDataUrl = function() { | |
return "data:" + this.contentType + ";base64," + this.ij | |
}; | |
var gk = function(a, b, c, d) { | |
var e = [], | |
f = new Set, | |
g = fb(dk(c)), | |
h = new Map, | |
l = []; | |
B(g, function(a) { | |
var b = a.Ca; | |
"blackout" == b ? e.push(a.V()) : "highlight" == b && ((b = a.F()) ? (h.set(a, b), f.add(b)) : l.push(a)) | |
}); | |
B(l, function(a) { | |
B(ek(b, a, h, e), function(a) { | |
g.push(a); | |
a = h.get(a); | |
f.add(a) | |
}) | |
}); | |
var m = new Map; | |
Bg(d.document.documentElement, f, m, []); | |
var n = []; | |
B(g, function(a) { | |
if ("highlight" == a.Ca) { | |
var b = null, | |
c = null, | |
d = [], | |
f = h.get(a); | |
if (f) { | |
fk(e, a.V()) || (b = f.Eh(), f.Wd && d.push(f.Wd)); | |
for (c = f.parentElement; c && !fk(e, c.rect);) c.Wd && d.push(c.Wd), | |
c = c.parentElement; | |
c = m.get(f) || null | |
} | |
a = new Dg(a.clone(), b, c, d); | |
n.push(a) | |
} | |
}); | |
B(n, function(b) { | |
b = b.$.V(); | |
b.left -= a.x; | |
b.top -= a.y | |
}); | |
return n | |
}, | |
fk = function(a, b) { | |
return bb(a, function(a) { | |
return Tf(b, a) | |
}) | |
}, | |
ek = function(a, b, c, d) { | |
b = b.V(); | |
a = Wj(a, b, d); | |
var e = []; | |
B(a, function(a) { | |
var b = a.getData(); | |
if (b) { | |
var d; | |
a: for (d = a.V().clone(), a = a.Id; a;) { | |
var f = a.V(); | |
d.left += f.left; | |
d.top += f.top; | |
var m = d, | |
n = a.de, | |
p = a.ee, | |
v = 0, | |
q = 0; | |
n && (v = Math.max(m.left, f.left), q = Math.min(m.left + m.width, f.left + f.width)); | |
var A = 0, | |
z = 0; | |
p && (A = Math.max(m.top, f.top), | |
z = Math.min(m.top + m.height, f.top + f.height)); | |
if (f = (!n || v <= q) && (!p || A <= z)) n && (m.left = v, m.width = q - v), p && (m.top = A, m.height = z - A); | |
if (!f) { | |
d = null; | |
break a | |
} | |
a = a.Id | |
} | |
d = new Cg("highlight", d); | |
e.push(d); | |
c.set(d, b) | |
} | |
}); | |
return e | |
}; | |
var hk = function(a, b, c) { | |
M.call(this); | |
this.target = a; | |
this.handle = b || a; | |
this.Vh = c || new O(NaN, NaN, NaN, NaN); | |
this.J = H(a); | |
this.va = new Mg(this); | |
bf(this, this.va); | |
this.deltaY = this.deltaX = this.Ji = this.Ii = this.screenY = this.screenX = this.clientY = this.clientX = 0; | |
this.$a = !0; | |
this.oc = !1; | |
this.li = !0; | |
this.Jh = 0; | |
this.Gg = this.Mj = !1; | |
L(this.handle, ["touchstart", "mousedown"], this.Hi, !1, this) | |
}; | |
x(hk, M); | |
var ik = r.document && r.document.documentElement && !!r.document.documentElement.setCapture && !!r.document.releaseCapture; | |
hk.prototype.zh = function() { | |
return this.va | |
}; | |
hk.prototype.Je = function(a) { | |
this.$a = a | |
}; | |
hk.prototype.X = function() { | |
hk.s.X.call(this); | |
Mf(this.handle, ["touchstart", "mousedown"], this.Hi, !1, this); | |
this.va.Yc(); | |
ik && this.J.releaseCapture(); | |
this.handle = this.target = null | |
}; | |
var jk = function(a) { | |
t(a.sg) || (a.sg = "rtl" == Zf(a.target, "direction")); | |
return a.sg | |
}; | |
hk.prototype.Hi = function(a) { | |
var b = "mousedown" == a.type; | |
if (!this.$a || this.oc || b && (!(pf ? 0 == a.$b.button : "click" == a.type || a.$b.button & tf[0]) || kc && mc && a.ctrlKey)) this.dispatchEvent("earlycancel"); | |
else { | |
if (0 == this.Jh) | |
if (this.dispatchEvent(new kk("start", this, a.clientX, a.clientY, a))) this.oc = !0, this.li && b && a.preventDefault(); | |
else return; | |
else this.li && b && a.preventDefault(); | |
var b = this.J, | |
c = b.documentElement, | |
d = !ik; | |
this.va.listen(b, ["touchmove", "mousemove"], this.Jj, d); | |
this.va.listen(b, ["touchend", "mouseup"], this.ie, | |
d); | |
ik ? (c.setCapture(!1), this.va.listen(c, "losecapture", this.ie)) : this.va.listen(Jc(b), "blur", this.ie); | |
F && this.Mj && this.va.listen(b, "dragstart", of ); | |
this.Bk && this.va.listen(this.Bk, "scroll", this.ak, d); | |
this.clientX = this.Ii = a.clientX; | |
this.clientY = this.Ji = a.clientY; | |
this.screenX = a.screenX; | |
this.screenY = a.screenY; | |
this.Gg ? (a = this.target, b = a.offsetLeft, c = a.offsetParent, c || "fixed" != Zf(a, "position") || (c = H(a).documentElement), c ? (jc ? (d = kg(c), b += d.left) : 8 <= Number(vc) && !(9 <= Number(vc)) && (d = kg(c), b -= d.left), a = "rtl" == | |
Zf(c, "direction") ? c.clientWidth - (b + a.offsetWidth) : b) : a = b) : a = this.target.offsetLeft; | |
this.deltaX = a; | |
this.deltaY = this.target.offsetTop; | |
this.fg = Ic(Ac(this.J).J) | |
} | |
}; | |
hk.prototype.ie = function(a) { | |
this.va.Yc(); | |
ik && this.J.releaseCapture(); | |
this.oc ? (this.oc = !1, this.dispatchEvent(new kk("end", this, a.clientX, a.clientY, a, lk(this, this.deltaX), mk(this, this.deltaY)))) : this.dispatchEvent("earlycancel") | |
}; | |
hk.prototype.Jj = function(a) { | |
if (this.$a) { | |
var b = (this.Gg && jk(this) ? -1 : 1) * (a.clientX - this.clientX), | |
c = a.clientY - this.clientY; | |
this.clientX = a.clientX; | |
this.clientY = a.clientY; | |
this.screenX = a.screenX; | |
this.screenY = a.screenY; | |
if (!this.oc) { | |
var d = this.Ii - this.clientX, | |
e = this.Ji - this.clientY; | |
if (d * d + e * e > this.Jh) | |
if (this.dispatchEvent(new kk("start", this, a.clientX, a.clientY, a))) this.oc = !0; | |
else { | |
this.isDisposed() || this.ie(a); | |
return | |
} | |
} | |
c = nk(this, b, c); | |
b = c.x; | |
c = c.y; | |
this.oc && this.dispatchEvent(new kk("beforedrag", this, a.clientX, | |
a.clientY, a, b, c)) && (ok(this, a, b, c), a.preventDefault()) | |
} | |
}; | |
var nk = function(a, b, c) { | |
var d = Ic(Ac(a.J).J); | |
b += d.x - a.fg.x; | |
c += d.y - a.fg.y; | |
a.fg = d; | |
a.deltaX += b; | |
a.deltaY += c; | |
return new E(lk(a, a.deltaX), mk(a, a.deltaY)) | |
}; | |
hk.prototype.ak = function(a) { | |
var b = nk(this, 0, 0); | |
a.clientX = this.clientX; | |
a.clientY = this.clientY; | |
ok(this, a, b.x, b.y) | |
}; | |
var ok = function(a, b, c, d) { | |
a.mh(c, d); | |
a.dispatchEvent(new kk("drag", a, b.clientX, b.clientY, b, c, d)) | |
}, | |
lk = function(a, b) { | |
var c = a.Vh, | |
d = isNaN(c.left) ? null : c.left, | |
c = isNaN(c.width) ? 0 : c.width; | |
return Math.min(null != d ? d + c : Infinity, Math.max(null != d ? d : -Infinity, b)) | |
}, | |
mk = function(a, b) { | |
var c = a.Vh, | |
d = isNaN(c.top) ? null : c.top, | |
c = isNaN(c.height) ? 0 : c.height; | |
return Math.min(null != d ? d + c : Infinity, Math.max(null != d ? d : -Infinity, b)) | |
}; | |
hk.prototype.mh = function(a, b) { | |
this.Gg && jk(this) ? this.target.style.right = a + "px" : this.target.style.left = a + "px"; | |
this.target.style.top = b + "px" | |
}; | |
var kk = function(a, b, c, d, e, f, g) { | |
nf.call(this, a); | |
this.clientX = c; | |
this.clientY = d; | |
this.sf = e; | |
this.left = t(f) ? f : b.deltaX; | |
this.top = t(g) ? g : b.deltaY | |
}; | |
x(kk, nf); | |
var pk = function(a, b, c) { | |
this.N = a; | |
this.$ = b; | |
this.xc = c; | |
this.le = !1; | |
L(this.$, "boundsChanged", function() { | |
this.N.T && this.Da() | |
}, !1, this) | |
}; | |
pk.prototype.Ib = null; | |
pk.prototype.Le = function(a) { | |
this.xc = a; | |
this.N.T && this.Da() | |
}; | |
var rk = function(a, b) { | |
(a.le = b) && a.N.T && (qk(a, a.ga), qk(a, a.gb), qk(a, a.na)); | |
a.N.T && a.Da() | |
}; | |
k = pk.prototype; | |
k.Yb = function() { | |
var a = this.N.Z(), | |
b = this.$.Ca; | |
"highlight" == b ? (this.bb = a.createElement("div"), this.bb.style.position = "absolute", this.bb.style.backgroundColor = "white", this.bb.className = "gfeedback-annotation-indicator", fg(this.bb, .1), this.N.ac.appendChild(this.bb)) : "blackout" == b && (this.jb = a.createElement("div"), this.jb.style.position = "absolute", this.jb.style.backgroundColor = "black", this.jb.className = "gfeedback-annotation-indicator", this.N.Ub.appendChild(this.jb)); | |
this.ga = a.createElement("div"); | |
this.ga.style.position = | |
"absolute"; | |
this.N.yb.appendChild(this.ga); | |
this.gb = a.createElement("div"); | |
this.gb.style.position = "absolute"; | |
this.N.yb.appendChild(this.gb); | |
this.na = a.createElement("div"); | |
this.na.style.position = "absolute"; | |
this.na.style.width = "24px"; | |
this.na.style.height = "24px"; | |
this.na.style.cursor = "pointer"; | |
a = this.na.style; | |
F && !G("8") ? a.filter = 'progid:DXImageTransform.Microsoft.AlphaImageLoader(src="data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2224px%22%20height%3D%2224px%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22%23FFFFFF%22%3E%3Cpath%20d%3D%22M12%202C6.47%202%202%206.47%202%2012s4.47%2010%2010%2010%2010-4.47%2010-10S17.53%202%2012%202zm5%2013.59L15.59%2017%2012%2013.41%208.41%2017%207%2015.59%2010.59%2012%207%208.41%208.41%207%2012%2010.59%2015.59%207%2017%208.41%2013.41%2012%2017%2015.59z%22%2F%3E%3Cpath%20d%3D%22M12%202m5%2013.59L15.59%2017%2012%2013.41%208.41%2017%207%2015.59%2010.59%2012%207%208.41%208.41%207%2012%2010.59%2015.59%207%2017%208.41%2013.41%2012%2017%2015.59z%22%20fill%3D%22%23757575%22%2F%3E%3Cpath%20d%3D%22M0%200h24v24H0z%22%20fill%3D%22none%22%2F%3E%3C%2Fsvg%3E", sizingMethod="crop")' : | |
(a.backgroundImage = "url(data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2224px%22%20height%3D%2224px%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22%23FFFFFF%22%3E%3Cpath%20d%3D%22M12%202C6.47%202%202%206.47%202%2012s4.47%2010%2010%2010%2010-4.47%2010-10S17.53%202%2012%202zm5%2013.59L15.59%2017%2012%2013.41%208.41%2017%207%2015.59%2010.59%2012%207%208.41%208.41%207%2012%2010.59%2015.59%207%2017%208.41%2013.41%2012%2017%2015.59z%22%2F%3E%3Cpath%20d%3D%22M12%202m5%2013.59L15.59%2017%2012%2013.41%208.41%2017%207%2015.59%2010.59%2012%207%208.41%208.41%207%2012%2010.59%2015.59%207%2017%208.41%2013.41%2012%2017%2015.59z%22%20fill%3D%22%23757575%22%2F%3E%3Cpath%20d%3D%22M0%200h24v24H0z%22%20fill%3D%22none%22%2F%3E%3C%2Fsvg%3E)", | |
a.backgroundPosition = "top left", a.backgroundRepeat = "no-repeat"); | |
this.N.Wb.appendChild(this.na); | |
L(this.ga, "mouseover", this.cg, !1, this); | |
L(this.ga, "mouseout", this.bg, !1, this); | |
L(this.gb, "mouseover", this.cg, !1, this); | |
L(this.gb, "mouseout", this.bg, !1, this); | |
L(this.na, "mouseover", this.cg, !1, this); | |
L(this.na, "mouseout", this.bg, !1, this); | |
L(this.na, "click", this.Yj, !1, this); | |
this.Da() | |
}; | |
k.V = function() { | |
var a = this.$.V().clone(), | |
b = a.left + a.width, | |
c = a.top + a.height; | |
a.left = Math.round(a.left); | |
a.top = Math.round(a.top); | |
a.width = Math.round(b) - a.left; | |
a.height = Math.round(c) - a.top; | |
a.width = Math.max(a.width, 2); | |
a.height = Math.max(a.height, 2); | |
return a | |
}; | |
k.Da = function() { | |
var a = this.V(); | |
this.bb && (ag(this.bb, a.left, a.top), cg(this.bb, a.width, a.height), this.bb.style.backgroundColor = this.le ? "#0044FF" : "white"); | |
this.jb && (ag(this.jb, a.left, a.top), cg(this.jb, a.width, a.height), fg(this.jb, this.xc ? .5 : this.le ? .8 : 1)); | |
ag(this.ga, a.left, a.top); | |
cg(this.ga, a.width, a.height); | |
var b = eg(this.na), | |
c = eg(this.N.F()), | |
d = this.N.Z().sb().body.getAttribute("dir"), | |
a = new E("rtl" == d ? a.left - b.width / 2 : a.left + a.width - b.width / 2, a.top - b.height / 2); | |
a.x = Math.max(-7, a.x); | |
a.y = Math.max(-7, a.y); | |
a.x = Math.min(c.width - 23, a.x); | |
a.y = Math.min(c.height - 23, a.y); | |
ag(this.na, a.x, a.y); | |
ag(this.gb, a.x, a.y); | |
cg(this.gb, b.width, b.height); | |
this.xc ? (this.ga.style.display = "none", this.gb.style.visibility = "hidden") : (this.ga.style.display = "block", this.gb.style.visibility = "visible"); | |
this.na.style.visibility = this.le && this.N.isEnabled() ? "visible" : "hidden" | |
}; | |
k.Ed = function() { | |
var a = this.N.Z(); | |
this.bb && a.removeNode(this.bb); | |
this.jb && a.removeNode(this.jb); | |
a.removeNode(this.ga); | |
a.removeNode(this.gb); | |
a.removeNode(this.na) | |
}; | |
k.cg = function(a) { | |
this.N.isEnabled() && rk(this, (a.target == this.gb || a.target == this.na || a.target == this.ga) && !this.N.Za) | |
}; | |
k.bg = function() { | |
this.N.isEnabled() && rk(this, !1) | |
}; | |
k.Yj = function(a) { | |
this.N.isEnabled() && a.target == this.na && sk(this.N, this) | |
}; | |
var qk = function(a, b) { | |
F || a.N.Z().appendChild(b.parentNode, b) | |
}; | |
var tk = function() {}; | |
tk.prototype.If = function(a) { | |
return uk(this, a) | |
}; | |
var W = function(a) { | |
P.call(this, a); | |
this.Tb = []; | |
this.fe = "default" | |
}; | |
x(W, P); | |
k = W.prototype; | |
k.Ib = null; | |
k.tg = null; | |
k.Bi = !1; | |
k.eb = null; | |
k.Za = null; | |
k.Lc = null; | |
k.Oc = null; | |
k.pf = "highlight"; | |
k.Jf = null; | |
k.$a = !0; | |
k.Yb = function() { | |
this.nb(this.G.createElement("div")) | |
}; | |
k.nb = function(a) { | |
W.s.nb.call(this, a); | |
var b = this.Z(); | |
this.rootElement = b.createElement("div"); | |
this.rootElement.style.position = "relative"; | |
this.rootElement.style.overflow = "hidden"; | |
this.rootElement.style.width = "100%"; | |
this.rootElement.style.height = "100%"; | |
a.appendChild(this.rootElement); | |
this.Xa = b.createElement("div"); | |
this.Xa.style.backgroundRepeat = "no-repeat"; | |
this.Xa.style.position = "absolute"; | |
this.Xa.style.left = "0px"; | |
this.Xa.style.top = "0px"; | |
this.Xa.style.width = "100%"; | |
this.Xa.style.height = "100%"; | |
b.appendChild(this.rootElement, | |
this.Xa); | |
this.ya = b.createElement("div"); | |
this.ya.style.position = "absolute"; | |
this.ya.style.left = "0px"; | |
this.ya.style.top = "0px"; | |
this.ya.style.width = "100%"; | |
this.ya.style.height = "100%"; | |
b.appendChild(this.rootElement, this.ya); | |
this.ac = b.createElement("div"); | |
this.ac.style.position = "absolute"; | |
this.ac.style.left = "0px"; | |
this.ac.style.top = "0px"; | |
this.ac.style.width = "0px"; | |
this.ac.style.height = "0px"; | |
b.appendChild(this.rootElement, this.ac); | |
this.Ub = b.createElement("div"); | |
this.Ub.style.position = "absolute"; | |
this.Ub.style.left = | |
"0px"; | |
this.Ub.style.top = "0px"; | |
this.Ub.style.width = "100%"; | |
this.Ub.style.height = "100%"; | |
b.appendChild(this.rootElement, this.Ub); | |
this.cb = b.createElement("div"); | |
this.cb.style.position = "absolute"; | |
this.cb.style.left = "0px"; | |
this.cb.style.top = "0px"; | |
this.cb.style.width = "100%"; | |
this.cb.style.height = "100%"; | |
b.appendChild(this.rootElement, this.cb); | |
this.yb = b.createElement("div"); | |
this.yb.style.position = "absolute"; | |
this.yb.style.left = "0px"; | |
this.yb.style.top = "0px"; | |
this.yb.style.width = "0px"; | |
this.yb.style.height = "0px"; | |
b.appendChild(this.rootElement, this.yb); | |
this.Wb = b.createElement("div"); | |
this.Wb.style.position = "absolute"; | |
this.Wb.style.left = "0px"; | |
this.Wb.style.top = "0px"; | |
this.Wb.style.width = "0px"; | |
this.Wb.style.height = "0px"; | |
b.appendChild(this.rootElement, this.Wb) | |
}; | |
k.Zb = function() { | |
W.s.Zb.call(this); | |
var a = F ? this.rootElement : this.cb; | |
L(a, "mouseover", this.hk, !1, this); | |
L(a, "mousemove", this.fk, !1, this); | |
L(a, "mouseout", this.gk, !1, this); | |
L(a, "click", this.bk, !1, this); | |
this.md = new hk(a); | |
this.md.mh = function() {}; | |
L(this.md, "start", this.ek, !1, this); | |
L(this.md, "drag", this.ck, !1, this); | |
L(this.md, "end", this.dk, !1, this); | |
this.Da() | |
}; | |
k.od = function() { | |
W.s.od.call(this); | |
this.md.Db() | |
}; | |
k.X = function() { | |
W.s.X.call(this); | |
Pc(this.rootElement); | |
Pc(this.Xa); | |
Pc(this.ya); | |
Pc(this.ac); | |
Pc(this.Ub); | |
Pc(this.cb); | |
Pc(this.yb); | |
Pc(this.Wb) | |
}; | |
k.Da = function() { | |
B(this.Tb, function(a) { | |
a.Da() | |
}); | |
vk(this); | |
this.Bi = !1 | |
}; | |
var vk = function(a) { | |
a.Bi && window.setTimeout(w(function() { | |
this.dispatchEvent("screenshotdisplayed") | |
}, a), 0) | |
}; | |
W.prototype.Ei = function() { | |
this.rootElement.style.display = "block" | |
}; | |
W.prototype.Je = function(a) { | |
this.$a = a; | |
this.T && this.Da(); | |
this.fe = a ? "crosshair" : "default"; | |
this.cb.style.cursor = this.fe | |
}; | |
W.prototype.isEnabled = function() { | |
return this.$a | |
}; | |
var wk = function(a, b) { | |
return cb(a.Tb, function(a) { | |
return a.$ == b | |
}) | |
}, | |
xk = function(a, b) { | |
if (wk(a, b)) return null; | |
var c = a.lh(b, !0); | |
a.Tb.push(c); | |
a.T && c.Yb(); | |
return c | |
}, | |
sk = function(a, b) { | |
0 <= Za(a.Tb, b) && (db(a.Tb, b), a.T && b.Ed()) | |
}; | |
W.prototype.Gd = function(a) { | |
this.pf = a | |
}; | |
var dk = function(a) { | |
a = Md(a.Tb, function(a) { | |
return !a.xc | |
}); | |
a = Nd(a, function(a) { | |
return a.$ | |
}); | |
return Od(a) | |
}; | |
W.prototype.Kc = function() { | |
var a = dk(this); | |
B(a, function(a) { | |
(a = wk(this, a)) && sk(this, a) | |
}, this) | |
}; | |
var zk = function(a, b) { | |
var c = a.Jf ? a.Jf.If(b) : null; | |
if (!c || "gfeedback-annotation-indicator" != c.className) { | |
var d = dk(a); | |
if (c) | |
for (var e = 0; e < d.length; e++) { | |
var f = d[e]; | |
if ((f = f.F()) && c.rect.contains(f.rect)) { | |
c = null; | |
break | |
} | |
} | |
c ? (a.eb || (f = new Cg(a.pf), a.eb = xk(a, f)), d = a.eb.$, e = c, d.v = e, e = e.rect.clone(), e.left -= 3, e.top -= 3, e.width += 6, e.height += 6, d.Hd(e), a.eb.Pk = c) : yk(a); | |
a.cb.style.cursor = c ? "pointer" : a.fe | |
} | |
}, | |
yk = function(a) { | |
a.eb && (sk(a, a.eb), a.eb = null, a.cb.style.cursor = a.fe) | |
}, | |
Ak = function(a, b) { | |
a.Za && a.Za.$.Hd(new O(Math.min(a.Oc.x, | |
b.x), Math.min(a.Oc.y, b.y), Math.abs(a.Oc.x - b.x), Math.abs(a.Oc.y - b.y))) | |
}, | |
Bk = function(a) { | |
a.Za && (a.Za.Le(!1), a.Za = null, a.Oc = null) | |
}; | |
k = W.prototype; | |
k.bk = function() { | |
this.isEnabled() && this.eb && this.eb && (this.eb.Le(!1), this.eb = null) | |
}; | |
k.hk = function(a) { | |
this.isEnabled() && (a = Ck(this, a), this.Za || zk(this, a)) | |
}; | |
k.gk = function() { | |
this.isEnabled() && yk(this) | |
}; | |
k.fk = function(a) { | |
this.isEnabled() && (a = Ck(this, a), this.Za || zk(this, a)) | |
}; | |
k.ek = function(a) { | |
this.isEnabled() && (this.Lc = Ck(this, a.sf)) | |
}; | |
k.ck = function(a) { | |
if (this.isEnabled()) | |
if (a = Ck(this, a.sf), this.Lc) { | |
if (10 < Math.abs(a.x - this.Lc.x) || 10 < Math.abs(a.y - this.Lc.y)) { | |
yk(this); | |
var b = this.Lc; | |
Bk(this); | |
var c = new Cg(this.pf, new O(b.x, b.y, 0, 0)); | |
this.Za = xk(this, c); | |
this.Oc = b; | |
Ak(this, a); | |
this.Lc = null | |
} | |
} else this.Za && Ak(this, a) | |
}; | |
k.dk = function(a) { | |
this.isEnabled() && this.Za && Bk(this, Ck(this, a.sf)) | |
}; | |
var Ck = function(a, b) { | |
var c; | |
c = a.Xa; | |
1 == c.nodeType ? (c = bg(c), c = new E(c.left, c.top)) : (c = c.changedTouches ? c.changedTouches[0] : c, c = new E(c.clientX, c.clientY)); | |
return new E(b.clientX - c.x, b.clientY - c.y) | |
}; | |
var Dk = function(a, b, c) { | |
pk.call(this, a, b, c) | |
}; | |
x(Dk, pk); | |
Dk.prototype.Ed = function() { | |
Dk.s.Ed.call(this); | |
"highlight" == this.$.Ca && Ek(this.N) | |
}; | |
Dk.prototype.Da = function() { | |
Dk.s.Da.call(this); | |
"highlight" == this.$.Ca && Ek(this.N) | |
}; | |
var Fk = function(a) { | |
W.call(this, a) | |
}; | |
x(Fk, W); | |
var Gk = { | |
background: "none", | |
margin: 0, | |
padding: 0, | |
display: "block" | |
}; | |
Fk.prototype.Fg = !1; | |
Fk.prototype.ka = null; | |
Fk.prototype.nb = function(a) { | |
Fk.s.nb.call(this, a); | |
this.ka = this.Z().createElement("CANVAS"); | |
Wf(this.ka, Gk); | |
this.ya.appendChild(this.ka) | |
}; | |
Fk.prototype.Da = function() { | |
this.Fg = !0; | |
try { | |
Fk.s.Da.call(this) | |
} finally { | |
this.Fg = !1 | |
} | |
Ek(this) | |
}; | |
var Ek = function(a) { | |
if (!a.Fg) { | |
var b = a.ka.getContext("2d"); | |
try { | |
var c = eg(a.Xa); | |
a.ka.width = c.width; | |
a.ka.height = c.height; | |
b.save(); | |
b.clearRect(0, 0, c.width, c.height); | |
b.fillStyle = "rgba(102, 102, 102, 0.5)"; | |
b.fillRect(0, 0, c.width, c.height); | |
B(a.Tb, function(a) { | |
if ("highlight" == a.$.Ca) { | |
a = a.V(); | |
b.save(); | |
try { | |
b.lineJoin = "bevel", b.lineWidth = 4, b.strokeStyle = "#FFEB3B", b.strokeRect(a.left - .5, a.top - .5, a.width + 1, a.height + 1) | |
} finally { | |
b.restore() | |
} | |
} | |
}); | |
B(a.Tb, function(a) { | |
"highlight" == a.$.Ca && (a = a.V(), b.clearRect(a.left, a.top, | |
a.width, a.height)) | |
}) | |
} catch (d) {} finally { | |
b.restore() | |
} | |
} | |
}; | |
Fk.prototype.lh = function(a, b) { | |
return new Dk(this, a, b) | |
}; | |
var Hk = function(a, b, c, d) { | |
this.Ra = b; | |
this.he = c || null; | |
this.Cj = d || null | |
}; | |
x(Hk, tk); | |
var Ik = { | |
IMG: !0, | |
OBJECT: !0, | |
BUTTON: !0, | |
INPUT: !0, | |
SELECT: !0, | |
TEXTAREA: !0, | |
EMBED: !0, | |
VIDEO: !0 | |
}, | |
Jk = { | |
A: !0, | |
ABBR: !0, | |
ACRONYM: !0, | |
B: !0, | |
BDO: !0, | |
BIG: !0, | |
CITE: !0, | |
CODE: !0, | |
DFN: !0, | |
EM: !0, | |
GFT: !0, | |
KBD: !0, | |
I: !0, | |
MAP: !0, | |
Q: !0, | |
SAMP: !0, | |
SMALL: !0, | |
SPAN: !0, | |
STRONG: !0, | |
SUB: !0, | |
SUP: !0, | |
TT: !0, | |
VAR: !0 | |
}, | |
uk = function(a, b) { | |
b = b.clone(); | |
F && (b.x += a.Ra.documentElement.clientLeft + a.Ra.body.clientLeft, b.y += a.Ra.documentElement.clientTop + a.Ra.body.clientTop, a.he && gg(a.he, !1)); | |
var c = Hc(Ac(a.Ra).J); | |
b.x -= c.scrollLeft; | |
b.y -= c.scrollTop; | |
c = []; | |
try { | |
var d = a.Ra, | |
e = !1, | |
f = null, | |
g; | |
do { | |
g = f; | |
f = d.elementFromPoint(b.x, b.y); | |
f = d.elementFromPoint(b.x, b.y); | |
if (!f || f == g) return null; | |
if ("gfeedback-annotation-indicator" == f.className) { | |
e = !0; | |
break | |
} | |
var h = f.tagName.toUpperCase(); | |
if ("HTML" == h) return null; | |
"FRAME" == h || "IFRAME" == h ? d = Vc(f) : !Kk(f) && Lk(f) ? (c.push({ | |
element: f, | |
visibility: f.style.visibility | |
}), f.style.visibility = "hidden") : e = !0 | |
} while (!e); | |
if (!f || !Kk(f)) return null; | |
var f = Mk(f), | |
l = Ec(Jc(H(f))); | |
return rg(f, new O(0, 0, l.width, l.height), a.Cj) | |
} finally { | |
B(c, function(a) { | |
a.element.style.visibility = | |
a.visibility | |
}), F && a.he && gg(a.he, !0) | |
} | |
}, | |
Kk = function(a) { | |
return "gfeedback-annotation-indicator" == a.className || a.tagName.toUpperCase() in Ik || a.getAttribute("google-feedback-data") ? !0 : bb(a.childNodes, function(a) { | |
return 3 == a.nodeType && !Ka(a.nodeValue) | |
}) | |
}, | |
Mk = function(a) { | |
var b = Tc(a), | |
c = !0; | |
B(b.childNodes, function(a) { | |
c &= 3 == a.nodeType || a.tagName && a.tagName.toUpperCase() in Jk | |
}); | |
return c ? b : a | |
}, | |
Lk = function(a) { | |
var b = Zf(a, "backgroundColor"); | |
a = J(a, "backgroundImage"); | |
return ("transparent" == b || "rgba(0, 0, 0, 0)" == b) && "none" == | |
a | |
}; | |
var Nk = function(a, b, c, d, e) { | |
pk.call(this, a, b, c); | |
this.Kb = d; | |
this.Ne = e; | |
this.ni = Sf(this.V()) | |
}; | |
x(Nk, pk); | |
Nk.prototype.Ib = null; | |
Nk.prototype.Le = function(a) { | |
var b = this.xc; | |
Nk.s.Le.call(this, a); | |
"highlight" == this.$.Ca && (b && !a ? Ok(this.Ne) : !b && a && Pk(this.N)) | |
}; | |
Nk.prototype.Ed = function() { | |
Nk.s.Ed.call(this); | |
"highlight" == this.$.Ca && (this.xc ? Qk(this.Ne) : Pk(this.N)) | |
}; | |
Nk.prototype.Da = function() { | |
Nk.s.Da.call(this); | |
var a = Sf(this.V()), | |
b = this.ni; | |
a == b || a && b && a.top == b.top && a.right == b.right && a.bottom == b.bottom && a.left == b.left || ("highlight" == this.$.Ca && (this.xc ? (Qk(this.Ne), this.Kb.split(Sf(this.V()), this.Ne)) : Pk(this.N)), this.ni = a) | |
}; | |
var X = function(a, b, c, d) { | |
this.G = a; | |
this.ub = b; | |
this.aa = c; | |
this.u = d; | |
a = this.aa; | |
0 == a.aa.length && (b = a.G.createElement("div"), b.style.position = "absolute", a.ub.appendChild(b), c = a.G.createElement("div"), b.appendChild(c), ag(c, 0, 0), cg(c, "100%", "100%"), c.className = "userfeedback-annotator-glass-pane", a.aa[0] = b); | |
a.aa[a.aa.length - 1].style.display = "block"; | |
this.v = a.aa.pop(); | |
this.m = []; | |
this.H = []; | |
this.Sc = !1; | |
this.u = this.u; | |
ag(this.v, this.u.left, this.u.top); | |
cg(this.v, this.u.right - this.u.left, this.u.bottom - this.u.top) | |
}; | |
X.prototype.F = function() { | |
return this.v | |
}; | |
X.prototype.clear = function() { | |
B(this.m, function(a) { | |
a.Cb() | |
}); | |
this.m = []; | |
B(this.H, function(a) { | |
a.Cb() | |
}); | |
this.H = []; | |
this.Sc = !1; | |
this.v.style.display = "block" | |
}; | |
var Rk = function(a, b) { | |
return $a(a.m, function(a) { | |
a = a.u; | |
return b.left <= a.right && a.left <= b.right && b.top <= a.bottom && a.top <= b.bottom | |
}) | |
}; | |
X.prototype.split = function(a, b) { | |
this.Sc ? B(Rk(this, a), function(c) { | |
c.split(a, b) | |
}) : Sk(this, a, b) | |
}; | |
var Sk = function(a, b, c) { | |
if (a.Sc) throw Error("Can't split panes that are already split"); | |
var d = b.top > a.u.top, | |
e = d ? b.top : a.u.top, | |
f = b.bottom < a.u.bottom, | |
g = f ? b.bottom : a.u.bottom, | |
h = b.left > a.u.left, | |
l = h ? b.left : a.u.left, | |
m = b.right < a.u.right, | |
n = m ? b.right : a.u.right; | |
d && (a.m[0] = new X(a.G, a.ub, a.aa, new N(a.u.top, n, b.top, l)), Tk(a.m[0])); | |
f && (a.m[1] = new X(a.G, a.ub, a.aa, new N(b.bottom, n, a.u.bottom, l)), Uk(a.m[1])); | |
m && (a.m[2] = new X(a.G, a.ub, a.aa, new N(e, a.u.right, g, b.right)), Vk(a.m[2])); | |
h && (a.m[3] = new X(a.G, a.ub, a.aa, new N(e, | |
b.left, g, a.u.left)), Wk(a.m[3])); | |
d && h && (a.m[5] = new X(a.G, a.ub, a.aa, new N(a.u.top, l, b.top, a.u.left)), Xk(a.m[5])); | |
d && m && (a.m[4] = new X(a.G, a.ub, a.aa, new N(a.u.top, a.u.right, b.top, n)), Yk(a.m[4])); | |
f && h && (a.m[7] = new X(a.G, a.ub, a.aa, new N(b.bottom, l, a.u.bottom, a.u.left)), Zk(a.m[7])); | |
f && m && (a.m[6] = new X(a.G, a.ub, a.aa, new N(b.bottom, a.u.right, a.u.bottom, n)), $k(a.m[6])); | |
a.H[0] && (f ? (Tk(a.m[1]), m && Tk(a.m[6]), h && Tk(a.m[7])) : m || h ? (m && Tk(a.m[2]), h && Tk(a.m[3])) : d && Tk(a.m[0])); | |
a.H[1] && (d ? (Uk(a.m[0]), m && Uk(a.m[4]), | |
h && Uk(a.m[5])) : m || h ? (m && Uk(a.m[2]), h && Uk(a.m[3])) : f && Uk(a.m[1])); | |
a.H[2] && (h ? (Vk(a.m[3]), d && Vk(a.m[5]), f && Vk(a.m[7])) : d || f ? (d && Vk(a.m[0]), f && Vk(a.m[1])) : m && Vk(a.m[2])); | |
a.H[3] && (m ? (Wk(a.m[2]), d && Wk(a.m[4]), f && Wk(a.m[6])) : d || f ? (d && Wk(a.m[0]), f && Wk(a.m[1])) : h && Wk(a.m[3])); | |
a.H[4] && (f ? h ? Yk(a.m[7]) : Yk(a.m[1]) : h && Yk(a.m[3])); | |
a.H[5] && (f ? m ? Xk(a.m[6]) : Xk(a.m[1]) : m && Xk(a.m[2])); | |
a.H[6] && (d ? h ? $k(a.m[5]) : $k(a.m[0]) : h && $k(a.m[3])); | |
a.H[7] && (d ? m ? Zk(a.m[4]) : Zk(a.m[0]) : m && Zk(a.m[2])); | |
B(a.H, function(a) { | |
a.vd() | |
}); | |
c ? c.yd.push(a) : | |
al(a); | |
a.v.style.display = "none"; | |
a.Sc = !0 | |
}, | |
al = function(a) { | |
B(a.H, function(a) { | |
a.Cb() | |
}); | |
a.H = [] | |
}, | |
bl = function(a) { | |
if (!a.Sc) throw Error("Cannot undo a split for a tile thats not split"); | |
B(a.m, function(a) { | |
a.Cb() | |
}); | |
a.m = []; | |
B(a.H, function(a) { | |
a.show() | |
}); | |
a.v.style.display = "block"; | |
a.Sc = !1 | |
}; | |
X.prototype.show = function() { | |
B(this.m, function(a) { | |
a.show() | |
}); | |
this.v.style.display = "block" | |
}; | |
X.prototype.vd = function() { | |
B(this.m, function(a) { | |
a.vd() | |
}); | |
this.v.style.display = "none" | |
}; | |
X.prototype.Cb = function() { | |
this.clear(); | |
this.v.style.display = "none"; | |
var a = this.aa; | |
a.aa[a.aa.length] = this.v | |
}; | |
var Vk = function(a) { | |
if (!a.H[2]) { | |
var b = new cl(a.G); | |
dl(b, "userfeedback-annotator-border-east", -15, 0); | |
a.F().appendChild(b.F()); | |
a.H[2] = b | |
} | |
}, | |
Wk = function(a) { | |
if (!a.H[3]) { | |
var b = new cl(a.G); | |
dl(b, "userfeedback-annotator-border-west", a.u.right - a.u.left - 15, 0); | |
a.F().appendChild(b.F()); | |
a.H[3] = b | |
} | |
}, | |
Uk = function(a) { | |
if (!a.H[1]) { | |
var b = new cl(a.G); | |
dl(b, "userfeedback-annotator-border-south", 0, -15); | |
a.F().appendChild(b.F()); | |
a.H[1] = b | |
} | |
}, | |
Tk = function(a) { | |
if (!a.H[0]) { | |
var b = new cl(a.G); | |
dl(b, "userfeedback-annotator-border-north", | |
0, a.u.bottom - a.u.top - 15); | |
a.F().appendChild(b.F()); | |
a.H[0] = b | |
} | |
}, | |
Xk = function(a) { | |
if (!a.H[5]) { | |
var b = new cl(a.G); | |
dl(b, "userfeedback-annotator-border-northwest", a.u.right - a.u.left - 15, a.u.bottom - a.u.top - 15); | |
a.F().appendChild(b.F()); | |
a.H[5] = b | |
} | |
}, | |
Yk = function(a) { | |
if (!a.H[4]) { | |
var b = new cl(a.G); | |
dl(b, "userfeedback-annotator-border-northeast", -15, a.u.bottom - a.u.top - 15); | |
a.F().appendChild(b.F()); | |
a.H[4] = b | |
} | |
}, | |
Zk = function(a) { | |
if (!a.H[7]) { | |
var b = new cl(a.G); | |
dl(b, "userfeedback-annotator-border-southwest", a.u.right - a.u.left - 15, -15); | |
a.F().appendChild(b.F()); | |
a.H[7] = b | |
} | |
}, | |
$k = function(a) { | |
if (!a.H[6]) { | |
var b = new cl(a.G); | |
dl(b, "userfeedback-annotator-border-southeast", -15, -15); | |
a.F().appendChild(b.F()); | |
a.H[6] = b | |
} | |
}, | |
cl = function(a) { | |
this.G = a; | |
this.v = this.G.createElement("div"); | |
this.v.style.position = "absolute"; | |
ag(this.v, 0, 0); | |
cg(this.v, "100%", "100%") | |
}; | |
cl.prototype.F = function() { | |
return this.v | |
}; | |
cl.prototype.vd = function() { | |
this.v.style.display = "none" | |
}; | |
cl.prototype.show = function() { | |
this.v.style.display = "block" | |
}; | |
cl.prototype.Cb = function() { | |
this.G.removeNode(this.v) | |
}; | |
var dl = function(a, b, c, d) { | |
a.v.className = b; | |
Wf(a.v, "background-position", c + "px " + d + "px") | |
}, | |
el = function() { | |
this.yd = [] | |
}, | |
Qk = function(a) { | |
B(a.yd, function(a) { | |
bl(a) | |
}); | |
a.yd = [] | |
}, | |
Ok = function(a) { | |
B(a.yd, function(a) { | |
al(a) | |
}); | |
a.yd = [] | |
}, | |
fl = function(a, b) { | |
this.G = a; | |
this.ub = b; | |
this.aa = [] | |
}; | |
var gl = function(a) { | |
W.call(this, a); | |
this.vj = new el | |
}; | |
x(gl, W); | |
gl.prototype.Ib = null; | |
gl.prototype.Kb = null; | |
gl.prototype.nb = function(a) { | |
gl.s.nb.call(this, a); | |
var b = this.Z(); | |
this.ya.style.backgroundImage = 'url("//feedback.googleusercontent.com/transparent.gif")'; | |
a = eg(this.Xa); | |
b = b.Yb("DIV", { | |
style: "position:absolute;left:0;top:0;width:100%;height:100%" | |
}); | |
this.ya.appendChild(b); | |
this.Kb = new X(this.G, b, new fl(this.G, b), new N(0, a.width, a.height, 0)); | |
a = this.Kb.F(); | |
this.ya.appendChild(a) | |
}; | |
gl.prototype.X = function() { | |
this.Kb.Cb(); | |
this.Kb = null; | |
Oc(this.F()); | |
gl.s.X.call(this) | |
}; | |
var Pk = function(a) { | |
a.Kb.clear(); | |
B(dk(a), w(function(a) { | |
"highlight" == a.Ca && this.Kb.split(Sf(a.V())) | |
}, a)) | |
}; | |
gl.prototype.lh = function(a, b) { | |
return new Nk(this, a, b, this.Kb, this.vj) | |
}; | |
var hl = function() { | |
M.call(this); | |
this.ge = new Q; | |
this.ig = []; | |
this.ug = []; | |
this.ea = []; | |
this.Gi = !0; | |
this.Lf = new te; | |
this.zg = new Pd; | |
this.Mh = {}; | |
this.Ib = null | |
}; | |
x(hl, M); | |
hl.prototype.display = function(a) { | |
var b = new Q; | |
this.Gi && (a.open("text/html", "replace"), a.write(Tb(ac)), a.close()); | |
var c = a.createElement("GFT"); | |
a.body.appendChild(c); | |
Pc(c); | |
Qc(this.Nc, a.documentElement); | |
var d = il(this); | |
jh(function() { | |
return a.styleSheets.length >= d | |
}, function(a, c) { | |
a || !c ? b.callback(null) : b.Y(c) | |
}); | |
R(b, function() { | |
jl(this) | |
}, this); | |
R(b, function() { | |
this.ge.callback(null); | |
return this.ge | |
}, this); | |
R(b, function() { | |
this.wf(a) | |
}, this); | |
S(b, function() {}, this); | |
return b | |
}; | |
var il = function(a) { | |
var b = a.Nc.querySelectorAll("style").length; | |
B(a.Nc.querySelectorAll("link"), function(a) { | |
y(a.rel, "stylesheet") && b++ | |
}); | |
return b | |
}, | |
kl = function(a, b) { | |
a.Gi = b | |
}, | |
ll = function(a) { | |
a.ug.length && B(a.ug, function(a) { | |
a() | |
}); | |
B(a.ea, function(a) { | |
ll(a) | |
}) | |
}, | |
ml = function(a, b, c, d) { | |
a.ug.push(function() { | |
b.scrollLeft = c; | |
b.scrollTop = d | |
}) | |
}, | |
nl = function(a, b, c) { | |
a.ig.push(c ? w(b, c) : b) | |
}; | |
hl.prototype.Sb = function(a) { | |
this.ea.push(a); | |
a.Ke(this); | |
return this.ge | |
}; | |
var ol = function(a) { | |
var b = new Q; | |
ch(a.ge, b); | |
return b | |
}, | |
pl = function(a, b) { | |
a.Lf.add(b) | |
}, | |
ql = function(a, b, c) { | |
if (b) { | |
var d = a.Mh[b]; | |
d || (d = new bi(b), a.Mh[b] = d); | |
R(d, function() { | |
c(d.Fh(), d.Ah()) | |
}) | |
} | |
}; | |
hl.prototype.wf = function() { | |
this.dispatchEvent("b") | |
}; | |
var jl = function(a) { | |
a.ig.length && B(a.ig, function(a) { | |
a() | |
}) | |
}; | |
var rl = function() { | |
K.call(this); | |
this.ka = document.createElement("canvas"); | |
this.Ya = new Q; | |
document.createElement("div").appendChild(this.ka) | |
}; | |
x(rl, K); | |
var ul = function(a, b) { | |
a.ka.toDataURL || a.Ya.Y("No support"); | |
try { | |
Yh(a.ka, b, 0, 0, void 0, void 0, { | |
renderCallback: w(a.vk, a), | |
ignoreAnimation: !0, | |
ignoreMouse: !0 | |
}), F && tl(a) | |
} catch (c) { | |
a.Ya.Y(c) | |
} | |
Lg(a.yj, 8E3, a); | |
return a.Ya | |
}; | |
rl.prototype.yj = function() { | |
this.Ya.Ka || this.Ya.Y("timeout") | |
}; | |
rl.prototype.vk = function() { | |
try { | |
this.Ya.callback(this.ka.toDataURL()) | |
} catch (a) {} | |
}; | |
var tl = function(a) { | |
B(a.ka.Qb.Pd, function(a) { | |
var b = a.Ta, | |
d = hh(b.onload, !0); | |
b.src = b.src; | |
var e = Lg(function() { | |
d.call(b, {}) | |
}, 1E3); | |
b.onload = function(c) { | |
var f; | |
var h = we; | |
h || (h = document.createElement("canvas"), h.width = 1, h.height = 1, we = h); | |
try { | |
var l = h.getContext("2d"); | |
l.drawImage(b, 0, 0); | |
l.getImageData(0, 0, 1, 1); | |
f = !0 | |
} catch (m) { | |
we = null, f = !1 | |
} | |
f || (a.Ta = new Image); | |
r.clearTimeout(e); | |
d.call(b, c) | |
}; | |
b.onerror = function(c) { | |
a.Ta = new Image; | |
r.clearTimeout(e); | |
d.call(b, c) | |
} | |
}) | |
}; | |
var vl = function(a) { | |
return /^\s*$/.test(a) ? !1 : /^[\],:{}\s\u2028\u2029]*$/.test(a.replace(/\\["\\\/bfnrtu]/g, "@").replace(/(?:"[^"\\\n\r\u2028\u2029\x00-\x08\x0a-\x1f]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?)[\s\u2028\u2029]*(?=:|,|]|}|$)/g, "]").replace(/(?:^|:|,)(?:[\s\u2028\u2029]*\[)+/g, "")) | |
}, | |
wl = function(a) { | |
a = String(a); | |
if (vl(a)) try { | |
return eval("(" + a + ")") | |
} catch (b) {} | |
throw Error("Invalid JSON string: " + a); | |
}; | |
var xl = function() {}; | |
xl.prototype.dh = null; | |
var zl = function(a) { | |
var b; | |
(b = a.dh) || (b = {}, yl(a) && (b[0] = !0, b[1] = !0), b = a.dh = b); | |
return b | |
}; | |
var Al, Bl = function() {}; | |
x(Bl, xl); | |
var Cl = function(a) { | |
return (a = yl(a)) ? new ActiveXObject(a) : new XMLHttpRequest | |
}, | |
yl = function(a) { | |
if (!a.Kh && "undefined" == typeof XMLHttpRequest && "undefined" != typeof ActiveXObject) { | |
for (var b = ["MSXML2.XMLHTTP.6.0", "MSXML2.XMLHTTP.3.0", "MSXML2.XMLHTTP", "Microsoft.XMLHTTP"], c = 0; c < b.length; c++) { | |
var d = b[c]; | |
try { | |
return new ActiveXObject(d), a.Kh = d | |
} catch (e) {} | |
} | |
throw Error("Could not create ActiveXObject. ActiveX might be disabled, or MSXML might not be installed"); | |
} | |
return a.Kh | |
}; | |
Al = new Bl; | |
var Y = function(a) { | |
M.call(this); | |
this.headers = new Pd; | |
this.af = a || null; | |
this.Rb = !1; | |
this.$e = this.w = null; | |
this.Vf = ""; | |
this.sc = this.Of = this.te = this.xf = !1; | |
this.Ag = 0; | |
this.Qe = null; | |
this.yi = ""; | |
this.Hg = this.rk = this.Vi = !1 | |
}; | |
x(Y, M); | |
var Dl = /^https?$/i, | |
El = ["POST", "PUT"], | |
Fl = [], | |
Gl = function(a, b, c, d) { | |
var e = new Y; | |
Fl.push(e); | |
b && e.listen("complete", b); | |
e.Xf("ready", e.qj); | |
e.send(a, c, d, void 0) | |
}; | |
Y.prototype.qj = function() { | |
this.Db(); | |
db(Fl, this) | |
}; | |
Y.prototype.send = function(a, b, c, d) { | |
if (this.w) throw Error("[goog.net.XhrIo] Object is active with another request=" + this.Vf + "; newUri=" + a); | |
b = b ? b.toUpperCase() : "GET"; | |
this.Vf = a; | |
this.xf = !1; | |
this.Rb = !0; | |
this.w = this.af ? Cl(this.af) : Cl(Al); | |
this.$e = this.af ? zl(this.af) : zl(Al); | |
this.w.onreadystatechange = w(this.ii, this); | |
this.rk && "onprogress" in this.w && (this.w.onprogress = w(function(a) { | |
this.hi(a, !0) | |
}, this), this.w.upload && (this.w.upload.onprogress = w(this.hi, this))); | |
try { | |
this.Of = !0, this.w.open(b, String(a), !0), this.Of = !1 | |
} catch (f) { | |
this.je(5, f); | |
return | |
} | |
a = c || ""; | |
var e = this.headers.clone(); | |
d && Ud(d, function(a, b) { | |
e.set(b, a) | |
}); | |
d = cb(e.Eb(), Hl); | |
c = r.FormData && a instanceof r.FormData; | |
!(0 <= Za(El, b)) || d || c || e.set("Content-Type", "application/x-www-form-urlencoded;charset=utf-8"); | |
e.forEach(function(a, b) { | |
this.w.setRequestHeader(b, a) | |
}, this); | |
this.yi && (this.w.responseType = this.yi); | |
"withCredentials" in this.w && this.w.withCredentials !== this.Vi && (this.w.withCredentials = this.Vi); | |
try { | |
Il(this), 0 < this.Ag && ((this.Hg = Jl(this.w)) ? (this.w.timeout = | |
this.Ag, this.w.ontimeout = w(this.Re, this)) : this.Qe = Lg(this.Re, this.Ag, this)), this.te = !0, this.w.send(a), this.te = !1 | |
} catch (f) { | |
this.je(5, f) | |
} | |
}; | |
var Jl = function(a) { | |
return F && G(9) && va(a.timeout) && t(a.ontimeout) | |
}, | |
Hl = function(a) { | |
return "content-type" == a.toLowerCase() | |
}; | |
Y.prototype.Re = function() { | |
"undefined" != typeof oa && this.w && (this.dispatchEvent("timeout"), this.abort(8)) | |
}; | |
Y.prototype.je = function() { | |
this.Rb = !1; | |
this.w && (this.sc = !0, this.w.abort(), this.sc = !1); | |
Kl(this); | |
Ll(this) | |
}; | |
var Kl = function(a) { | |
a.xf || (a.xf = !0, a.dispatchEvent("complete"), a.dispatchEvent("error")) | |
}; | |
Y.prototype.abort = function() { | |
this.w && this.Rb && (this.Rb = !1, this.sc = !0, this.w.abort(), this.sc = !1, this.dispatchEvent("complete"), this.dispatchEvent("abort"), Ll(this)) | |
}; | |
Y.prototype.X = function() { | |
this.w && (this.Rb && (this.Rb = !1, this.sc = !0, this.w.abort(), this.sc = !1), Ll(this, !0)); | |
Y.s.X.call(this) | |
}; | |
Y.prototype.ii = function() { | |
this.isDisposed() || (this.Of || this.te || this.sc ? Ml(this) : this.$j()) | |
}; | |
Y.prototype.$j = function() { | |
Ml(this) | |
}; | |
var Ml = function(a) { | |
if (a.Rb && "undefined" != typeof oa && (!a.$e[1] || 4 != Nl(a) || 2 != Ol(a))) | |
if (a.te && 4 == Nl(a)) Lg(a.ii, 0, a); | |
else if (a.dispatchEvent("readystatechange"), 4 == Nl(a)) { | |
a.Rb = !1; | |
try { | |
Pl(a) ? (a.dispatchEvent("complete"), a.dispatchEvent("success")) : Kl(a) | |
} finally { | |
Ll(a) | |
} | |
} | |
}; | |
Y.prototype.hi = function(a, b) { | |
this.dispatchEvent(Ql(a, "progress")); | |
this.dispatchEvent(Ql(a, b ? "downloadprogress" : "uploadprogress")) | |
}; | |
var Ql = function(a, b) { | |
return { | |
type: b, | |
lengthComputable: a.lengthComputable, | |
loaded: a.loaded, | |
total: a.total | |
} | |
}, | |
Ll = function(a, b) { | |
if (a.w) { | |
Il(a); | |
var c = a.w, | |
d = a.$e[0] ? ra : null; | |
a.w = null; | |
a.$e = null; | |
b || a.dispatchEvent("ready"); | |
try { | |
c.onreadystatechange = d | |
} catch (e) {} | |
} | |
}, | |
Il = function(a) { | |
a.w && a.Hg && (a.w.ontimeout = null); | |
va(a.Qe) && (r.clearTimeout(a.Qe), a.Qe = null) | |
}, | |
Pl = function(a) { | |
var b = Ol(a), | |
c; | |
a: switch (b) { | |
case 200: | |
case 201: | |
case 202: | |
case 204: | |
case 206: | |
case 304: | |
case 1223: | |
c = !0; | |
break a; | |
default: | |
c = !1 | |
} | |
if (!c) { | |
if (b = 0 === b) a = String(a.Vf).match(Vd)[1] || | |
null, !a && r.self && r.self.location && (a = r.self.location.protocol, a = a.substr(0, a.length - 1)), b = !Dl.test(a ? a.toLowerCase() : ""); | |
c = b | |
} | |
return c | |
}, | |
Nl = function(a) { | |
return a.w ? a.w.readyState : 0 | |
}, | |
Ol = function(a) { | |
try { | |
return 2 < Nl(a) ? a.w.status : -1 | |
} catch (b) { | |
return -1 | |
} | |
}; | |
Y.prototype.Dh = function() { | |
try { | |
return this.w ? this.w.responseText : "" | |
} catch (a) { | |
return "" | |
} | |
}; | |
Y.prototype.Ff = function(a) { | |
if (this.w) { | |
var b = this.w.responseText; | |
a && 0 == b.indexOf(a) && (b = b.substring(a.length)); | |
return wl(b) | |
} | |
}; | |
Y.prototype.getResponseHeader = function(a) { | |
if (this.w && 4 == Nl(this)) return a = this.w.getResponseHeader(a), null === a ? void 0 : a | |
}; | |
Y.prototype.getAllResponseHeaders = function() { | |
return this.w && 4 == Nl(this) ? this.w.getAllResponseHeaders() : "" | |
}; | |
var Rl = function() {}, | |
Sl = {}; | |
Rl.prototype.send = function(a, b, c) { | |
var d = new Q; | |
if ("undefined" != typeof XDomainRequest) { | |
var e = new XDomainRequest, | |
f = (e[ya] || (e[ya] = ++za)).toString(); | |
Sl[f] = e; | |
e.onprogress = ra; | |
e.onload = function() { | |
d.callback(e.responseText) | |
}; | |
e.onerror = function() { | |
d.Ka || d.Y("xhr failed") | |
}; | |
e.ontimeout = function() { | |
d.Ka || d.Y("xhr timeout") | |
}; | |
ah(d, function() { | |
delete Sl[f] | |
}); | |
e.open(b, a); | |
e.send(c) | |
} else Gl(a, function(a) { | |
a = a.target; | |
Pl(a) ? d.callback(a.Dh()) : d.Y(Ol(a)) | |
}, b, c); | |
R(d, function(a) { | |
this.xi = a | |
}, this); | |
return d | |
}; | |
Rl.prototype.Dh = function() { | |
return this.xi | |
}; | |
Rl.prototype.Ff = function() { | |
var a = this.xi; | |
Ha(a, ")]}'\n") && (a = a.substring(5)); | |
return JSON.parse(a) | |
}; | |
var Tl = function() { | |
T.call(this, "uf.xd.cr", (this[ya] || (this[ya] = ++za)) + "") | |
}; | |
x(Tl, T); | |
Bh["uf.xd.cr"] = Tl; | |
var Ul = function(a, b, c) { | |
T.call(this, "ss.xd"); | |
this.Yg = a || ""; | |
this.xe = b || []; | |
this.Na = c || null | |
}; | |
x(Ul, T); | |
Bh["ss.xd"] = Ul; | |
Ul.prototype.ja = function() { | |
return Ul.s.ja.call(this).concat([this.Yg, this.xe, this.Na]) | |
}; | |
Ul.prototype.ba = function(a) { | |
var b = Ul.s.ba.call(this, a); | |
this.Yg = a[b++] || ""; | |
this.xe = a[b++] || []; | |
this.Na = a[b++]; | |
return b | |
}; | |
var Vl = function(a) { | |
var b = {}; | |
B(a.split(","), function(a) { | |
b[a] = !0; | |
b[a.toLowerCase()] = !0 | |
}); | |
return b | |
}; | |
Vl("A,ABBR,ACRONYM,ADDRESS,AREA,ARTICLE,ASIDE,B,BASE,BDI,BDO,BIG,BLOCKQUOTE,BODY,BR,BUTTON,CAPTION,CENTER,CITE,CODE,COL,COLGROUP,DD,DEL,DFN,DIR,DIV,DL,DT,EM,EMBED,FIGCAPTION,FIGURE,FOOTER,FONT,FORM,H1,H2,H3,H4,H5,H6,HEAD,HEADER,HGROUP,HR,HTML,I,IFRAME,IMG,INPUT,INS,KBD,LABEL,LI,LINK,MAP,MARK,MENU,META,NAV,NOBR,OBJECT,OL,OPTION,OPTGROUP,P,PARAM,PRE,Q,RP,RT,RUBY,S,SAMP,SECTION,SELECT,SMALL,SPAN,STRIKE,STRONG,SUB,SUP,TABLE,TBODY,TD,TEXTAREA,TFOOT,TH,THEAD,TIME,TITLE,TR,TT,U,UL,VAR,WBR"); | |
Vl("SCRIPT,STYLE"); | |
var Wl = Vl("ABBR,ALIGN,ALT,AXIS,BGCOLOR,BORDER,CELLPADDING,CELLSPACING,CLASS,CLEAR,COLOR,COLS,COLSPAN,COMPACT,COORDS,DIR,FACE,HEADERS,HEIGHT,HREFLANG,HSPACE,ID,ISMAP,LANG,LANGUAGE,NAME,NOHREF,NOWRAP,REL,REV,ROWS,ROWSPAN,RULES,SCOPE,SCROLLING,SHAPE,SPAN,START,SUMMARY,TARGET,TITLE,TYPE,VALIGN,VSPACE,WIDTH,VALUE"), | |
Xl = Vl("selected,checked"); | |
var Yl = function(a) { | |
hl.call(this); | |
this.ab = a; | |
this.yg = {}; | |
this.Xe = new Q; | |
this.Lb = { | |
A: this.oi, | |
BASE: this.oi, | |
FRAME: this.Cd, | |
HTML: this.lg, | |
IFRAME: this.Cd, | |
IMG: this.mg, | |
LINK: this.ng, | |
STYLE: this.og, | |
TEXTAREA: this.pk | |
}; | |
for (var b in this.Lb) this.Lb[b.toLowerCase()] = this.Lb[b]; | |
this.Ib = null | |
}; | |
x(Yl, hl); | |
Yl.prototype.wf = function(a) { | |
var b = this.ab.forEach(a.querySelectorAll("html, body, body *"), function(a) { | |
var b = Ge(J(a, "backgroundImage")); | |
b && pl(this, b); | |
if (b = Ge(J(a, "content", ":before"))) pl(this, b), ql(this, b, function(b, c) { | |
ai(a, "before-width", b); | |
ai(a, "before-height", c) | |
}) | |
}, this); | |
R(b, function() { | |
Yl.s.wf.call(this, a) | |
}, this); | |
S(b, function() {}, this) | |
}; | |
var am = function(a, b) { | |
var c = Array(b.xe.length), | |
d = a.ab.forEach(b.xe, function(a, b) { | |
var d = Zl(this, a, b); | |
c[b] = d; | |
var e = c[a[1]]; | |
e && d && (e.appendChild(d), wj(e, d) && vj(d)) | |
}, a); | |
R(d, function() { | |
b.Na && $l(this, b.Na); | |
this.Xe.callback(null); | |
return this.Xe | |
}, a); | |
S(d, function() {}, a); | |
return d | |
}, | |
Zl = function(a, b, c) { | |
var d = b[0]; | |
if ("#text" == d) return document.createTextNode(b[2]); | |
var e = document.createElement(d), | |
f = b[2] || {}, | |
g; | |
for (g in f)(g in Wl || g in Xl) && e.setAttribute(g, f[g]); | |
(d = a.Lb[d]) && d.call(a, e, b, c); | |
(b = b[3]) && ml(a, e, b[0], | |
b[1]); | |
nl(a, function() { | |
var a = this.yg[c]; | |
a && Ha(a, "_ {") && (a = a.substring(3, a.length - 2), e.setAttribute("style", a)) | |
}, a); | |
return e | |
}, | |
$l = function(a, b) { | |
var c = ""; | |
mb(b, function(a, b) { | |
c += "<style id=" + b + ">" + a + "</style>" | |
}); | |
var d = document.createElement("div"); | |
d.innerHTML = c; | |
B(d.querySelectorAll("style"), function(a) { | |
this.yg[a.id] = a.innerHTML | |
}, a) | |
}; | |
k = Yl.prototype; | |
k.mg = function(a, b) { | |
var c = b[2].src; | |
c && (c = bm(a.tagName, "image/*", c), a.src = c, pl(this, a.src)) | |
}; | |
k.ng = function(a, b) { | |
var c = b[2].href; | |
if (c) { | |
var d = je(c).ob, | |
e = new Rl, | |
d = e.send("//www.google.com/tools/feedback/check_capture_domain?domain=" + encodeURIComponent(d), "GET"); | |
R(d, function() { | |
e.Ff() ? a.href = c : a.href = bm(a.tagName, "text/css", c) | |
}, this); | |
S(d, function() { | |
a.href = bm(a.tagName, "text/css", c) | |
}, this); | |
ch(this.Xe, d) | |
} | |
}; | |
k.og = function(a, b, c) { | |
nl(this, function() { | |
var b = this.yg[c]; | |
b && (a.styleSheet ? a.styleSheet.cssText = b : a.innerHTML = b) | |
}, this) | |
}; | |
k.lg = function(a) { | |
this.Nc = a | |
}; | |
k.oi = function(a, b) { | |
var c = b[2].href; | |
Ce(c) && (a.href = c) | |
}; | |
k.pk = function(a, b) { | |
nl(this, function() { | |
a.value = b[2].value | |
}) | |
}; | |
k.Cd = function(a, b) { | |
if (b[4]) { | |
var c = new Ul; | |
c.ba(b[4]); | |
var d = new Yl(this.ab), | |
c = am(d, c); | |
ch(this.Xe, c); | |
R(this.Sb(d), function() { | |
return d.display(Vc(a)) | |
}) | |
} | |
}; | |
var bm = function(a, b, c) { | |
return "//www-fbk-opensocial.googleusercontent.com/gadgets/proxy/container=fbk&gadget=feedback&debug=0&nocache=0&rewriteMime={mime}&sanitize=1&html_tag_context={tagName}/{url}".replace("{mime}", encodeURIComponent(b)).replace("{tagName}", a.toLowerCase()).replace("{url}", c) | |
}; | |
var cm = function(a, b) { | |
Yl.call(this, a); | |
this.ua = new Fh; | |
bf(this, this.ua); | |
this.Ib = null; | |
this.Fd = b | |
}; | |
x(cm, Yl); | |
cm.prototype.kd = function(a) { | |
var b = new Tl; | |
this.ua.open(); | |
a = gh(qd(this.ua.send(b, 3E4, a))); | |
this.Ye = new Q; | |
R(a, this.oj, this); | |
S(a, function() { | |
this.ua.close(); | |
this.Ye.Y() | |
}, this); | |
return this.Ye | |
}; | |
cm.prototype.oj = function(a) { | |
var b = new Rl, | |
c = b.send(this.Fd + "/check_capture_domain?domain=" + encodeURIComponent(a.Sj), "GET"); | |
R(c, function() { | |
b.Ff() && R(am(this, a), function() { | |
this.Ye.callback() | |
}, this) | |
}, this); | |
S(c, function() { | |
this.Ye.Y() | |
}, this); | |
this.ua.close() | |
}; | |
var dm = function(a, b, c, d) { | |
hl.call(this); | |
this.Ba = a; | |
this.ab = b; | |
this.Qa = new Q; | |
this.Fd = c; | |
this.ae = d || {}; | |
this.Lb = { | |
CANVAS: this.jk, | |
EMBED: this.pi, | |
FRAME: this.Cd, | |
IFRAME: this.Cd, | |
META: this.lk, | |
HEAD: this.kk, | |
HTML: this.lg, | |
IMG: this.mg, | |
NOSCRIPT: this.mk, | |
LINK: this.ng, | |
OBJECT: this.pi, | |
STYLE: this.og, | |
SVG: this.nk, | |
VIDEO: this.qk | |
}; | |
for (var e in this.Lb) this.Lb[e.toLowerCase()] = this.Lb[e]; | |
this.Ib = null | |
}; | |
x(dm, hl); | |
var em = "onblur onchange onerror onload onmouseout onmouseover onscroll onunload".split(" "), | |
fm = "import" in HTMLLinkElement.prototype; | |
dm.prototype.kd = function(a) { | |
kl(this, Fc(Ac(a).J)); | |
var b = fb(a.querySelectorAll("*")); | |
a = []; | |
for (var c = 0; c < b.length; c++) { | |
var d = b[c]; | |
Ke(d) && !Ha(d.getAttribute("id") || "", "google-feedback-") && a.push(b[c]) | |
} | |
var b = a, | |
e = Array(b.length), | |
f = -1; | |
a = this.ab.forEach(b, function(a) { | |
f += 1; | |
a["google-feedback-id"] = f; | |
var c = gm(this, a); | |
e[f] = c; | |
var d = e[(a.parentNode || {})["google-feedback-id"]]; | |
d && d.appendChild(c); | |
c.selected = a.selected; | |
c.checked = a.checked; | |
c.value = a.value; | |
c.parentNode && hm(c.parentNode, a.nextSibling); | |
if (d = this.Lb[c.tagName]) try { | |
d.call(this, | |
a, c) | |
} catch (m) {} | |
for (a = a.shadowRoot; a; a = a.olderShadowRoot) f += 1, a["google-feedback-id"] = f, e[f] = c.createShadowRoot(), gb(b, a.querySelectorAll("*")) | |
}, this); | |
R(a, function() { | |
this.Qa.callback(null); | |
return this.Qa | |
}, this); | |
S(a, function() {}, this); | |
return a | |
}; | |
var im = function(a) { | |
a = De(a); | |
if (!a) return ""; | |
if (a.cssText) return a.cssText; | |
for (var b = "", c = 0; c < a.length; c++) var d = a[c], | |
e = a.getPropertyValue(d), | |
b = b + (d + ": " + e + "; "); | |
return b | |
}, | |
jm = function(a, b) { | |
return ic || !b.shadowRoot && !y(b.tagName, "-") ? b.cloneNode(!1) : a.Ba.importNode(b, !1) | |
}, | |
gm = function(a, b) { | |
for (var c = jm(a, b), d = 0; d < em.length; ++d) c.removeAttribute(em[d]); | |
if ("SCRIPT" == c.tagName || "script" == c.tagName) return c = b.ownerDocument.createElement("script"), c.id = b.id, c; | |
hm(c, b.firstChild); | |
d = He(J(b, "backgroundImage")); | |
B(d, function(a) { | |
Ce(a) && pl(this, a) | |
}, a); | |
d = Ge(J(b, "content", ":before")); | |
Ce(d) && (pl(a, d), ql(a, d, function(a, b) { | |
ai(c, "before-width", a); | |
ai(c, "before-height", b) | |
})); | |
(b.scrollLeft || b.scrollTop) && ml(a, c, b.scrollLeft, b.scrollTop); | |
b.disabled && (c.disabled = !0, c.setAttribute("disabled", "disabled")); | |
return c | |
}, | |
hm = function(a, b) { | |
for (; b && (!xa(b) || 1 != b.nodeType);) { | |
if (3 == b.nodeType) { | |
var c = b.cloneNode(!1); | |
a.appendChild(c); | |
wj(a, c) && vj(c) | |
} | |
b = b.nextSibling | |
} | |
}; | |
dm.prototype.og = function(a, b) { | |
if (a.disabled) nl(this, function() { | |
b.disabled = !0 | |
}); | |
else if (F && a.styleSheet) { | |
var c = this.Ba; | |
nl(this, function() { | |
var d = c.createElement("style"); | |
d.id = a.id; | |
Qc(d, b); | |
d.styleSheet.cssText = a.styleSheet.cssText | |
}) | |
} | |
}; | |
dm.prototype.Cd = function(a, b) { | |
b.removeAttribute("src"); | |
b.removeAttribute("srcdoc"); | |
var c = Fe(a); | |
if (c) { | |
var d = new dm(this.Ba, this.ab, this.Fd); | |
ch(this.Qa, d.kd(c)); | |
ah(R(this.Sb(d), function() { | |
b.style.visibility = "hidden"; | |
return d.display(Vc(b)) | |
}), function() { | |
b.style.visibility = a.style.visibility | |
}) | |
} else km(this, a, b) | |
}; | |
var km = function(a, b, c) { | |
var d = new cm(a.ab, a.Fd), | |
e = a.Sb(d), | |
f = d.kd(Wc(b)); | |
ch(f, e.rf()); | |
ch(f, a.Qa.rf()); | |
R(f, function() { | |
c.style.visibility = "hidden"; | |
return d.display(Vc(c)) | |
}, a); | |
R(f, function() { | |
c.style.visibility = b.style.visibility | |
}); | |
S(f, function() {}, a) | |
}, | |
lm = function(a, b) { | |
var c = b.getBoundingClientRect(), | |
d = a.Ba.createElement("canvas"), | |
e = d.getContext("2d"), | |
f = (window.devicePixelRatio || 1) / (e.webkitBackingStorePixelRatio || e.mozBackingStorePixelRatio || e.msBackingStorePixelRatio || e.oBackingStorePixelRatio || e.backingStorePixelRatio || | |
1); | |
d.width = c.width * f; | |
d.height = c.height * f; | |
e.scale(f, f); | |
e.drawImage(b, 0, 0, c.width, c.height); | |
d.style.cssText = im(b); | |
return d | |
}; | |
k = dm.prototype; | |
k.mg = function(a, b) { | |
if (Ha(a.src, "data:image/svg+xml;base64,")) window.atob && nl(this, function() { | |
try { | |
var c = atob(a.src.substring(26)) | |
} catch (g) { | |
this.Ib.info("SVG data URL base64 conversion failure", g); | |
return | |
} | |
var d = ol(this), | |
c = ul(new rl, c); | |
R(c, function(a) { | |
pl(this, a); | |
ai(b, "src", a) | |
}, this); | |
S(c, function(a) { | |
this.Ib.info("Failed to render svg", a) | |
}, this); | |
ah(c, d.callback, d) | |
}, this); | |
else if (Ha(a.src, "blob:")) { | |
var c = lm(this, a); | |
pl(this, c.toDataURL()); | |
Qc(c, b) | |
} else if (Ce(a.src)) | |
if (Ia(a.src)) { | |
var c = this.Ba.createElement("canvas"), | |
d = w(function() { | |
try { | |
pl(this, c.toDataURL()), c.style.cssText = im(a), Qc(c, b) | |
} catch (e) {} | |
}, this); | |
a.getBoundingClientRect(); | |
Yh(c, a.src, 0, 0, void 0, void 0, { | |
renderCallback: d | |
}) | |
} else pl(this, a.src) | |
}; | |
k.jk = function(a, b) { | |
if (a.getContext) { | |
b.getContext("2d").drawImage(a, 0, 0); | |
try { | |
pl(this, b.toDataURL()) | |
} catch (c) {} | |
} | |
}; | |
k.nk = function(a, b) { | |
if (!Ie(a)) { | |
var c = fb(a.querySelectorAll("*")); | |
c.push(a); | |
var d = a.cloneNode(!0), | |
e = fb(d.querySelectorAll("*")); | |
e.push(d); | |
for (var f = 0; f < c.length; f++) { | |
var g = e[f], | |
h = window.getComputedStyle(c[f]), | |
l = h.cssText || ""; | |
if (!(l || mc && jc)) | |
for (var m = 0; m < h.length; m++) var n = h[m], | |
p = h.getPropertyValue(n), | |
l = l + (n + ": " + p + "; "); | |
g.style.cssText = l; | |
h = eg(c[f]); | |
g.setAttribute("height", h.height); | |
g.style.height = h.height + "px"; | |
g.setAttribute("width", h.width); | |
g.style.width = h.width + "px" | |
} | |
c = this.zg.qc(); | |
d.setAttribute("google-feedback-svg-id", | |
c); | |
e = d.querySelectorAll("image"); | |
for (f = 0; f < e.length; f++) g = e[f], h = new Image, m = "xlink:href", l = g.getAttribute(m), l || (m = "href", l = g.getAttribute(m)), h.src = l, g.setAttribute(m, h.src); | |
e = this.Ba.createElement("div"); | |
e.appendChild(d); | |
e = e.innerHTML.replace(/\ \;/g, " "); | |
this.zg.set(c.toString(), e); | |
Qc(d, b) | |
} | |
}; | |
k.qk = function(a, b) { | |
var c = this.Ba.createElement("canvas"), | |
d = c.getContext("2d"); | |
c.width = a.offsetWidth; | |
c.height = a.offsetWidth; | |
d.drawImage(a, 0, 0, a.offsetWidth, a.offsetHeight); | |
d = this.Ba.createElement("gfv"); | |
d.style.width = a.offsetWidth + "px"; | |
d.style.height = a.offsetHeight + "px"; | |
var e = J(a, "display"); | |
d.style.display = "inline" === e ? "inline-block" : e; | |
d.style.backgroundRepeat = "no-repeat"; | |
var f; | |
try { | |
f = c.toDataURL() | |
} catch (g) {} | |
f && (d.style.backgroundImage = "url(" + f + ")", pl(this, f)); | |
Qc(d, b) | |
}; | |
k.lg = function(a, b) { | |
this.Nc = b | |
}; | |
k.kk = function(a, b) { | |
var c = H(a), | |
d = c.location && c.location.href || c.baseURI; | |
d && "about:blank" != d && !a.querySelector("base") && (c = this.Ba.createElement("base"), d = new Xd(d), $d(d, null), ae(d, ""), c.href = d.toString(), b.insertBefore(c, b.childNodes[0] || null)) | |
}; | |
k.lk = function(a, b) { | |
"x-frame-options" === a.httpEquiv.toLowerCase() && "deny" === a.content.toLowerCase() && Qc(this.Ba.createElement(a.tagName), b) | |
}; | |
k.pi = function(a, b) { | |
var c = this.Ba.createElement(a.tagName), | |
d; | |
a.toDataUrl && (d = a.toDataUrl(), Ce(d) && (c = this.Ba.createElement("img"), c.src = d, pl(this, d))); | |
c.id = a.id; | |
c.className = a.className; | |
c.width = a.width; | |
c.height = a.height; | |
d || c.setAttribute("style", a.getAttribute("style")); | |
Qc(c, b) | |
}; | |
k.mk = function(a, b) { | |
b.style.display = "none" | |
}; | |
k.ng = function(a, b) { | |
if (fm && a["import"] && (b.href = "//ssl.gstatic.com/support/content/feedback/blank.html?" + encodeURIComponent(a.href), !this.ae[b.href])) { | |
this.ae[b.href] = b; | |
var c = new dm(this.Ba, this.ab, this.Fd, this.ae), | |
d = this.Ba.createElement("link"); | |
b.parentNode && b.parentNode.insertBefore(d, b); | |
var e = new Q; | |
Lf(b, ["load", "error"], function() { | |
var a = b["import"] && b["import"].documentElement; | |
a && (Qc(c.Nc, a), d.parentNode.replaceChild(b, d)); | |
e.callback(null) | |
}); | |
var f = c.kd(a["import"]); | |
R(f, function() { | |
for (var a = c.Nc.querySelectorAll('link[rel="import"]'), | |
d = 0; d < a.length; d++) a[d] === this.ae[a[d].href] && b.parentNode && b.parentNode.insertBefore(a[d], b) | |
}, this); | |
ch(this.Qa, f); | |
ch(this.Sb(c), e) | |
} | |
}; | |
var mm = function(a, b, c, d, e) { | |
P.call(this, e); | |
this.Ga = a; | |
this.Va = c; | |
this.Wc = b; | |
this.Ua = d; | |
b = this.Va.getWindow(); | |
c = Ec(b); | |
a = Math.max(Ee(b), c.width); | |
b = Math.max(Gc(Ac(b).getWindow()), c.height); | |
this.Me = new bc(a, b); | |
this.ab = new lh(16); | |
this.Xb = null; | |
this.Bb = "u"; | |
this.Ob = new Fj(d, new kh("render")); | |
bf(this, this.Ob); | |
this.la = new kh("snapshot") | |
}; | |
x(mm, P); | |
mm.prototype.nb = function(a) { | |
mm.s.nb.call(this, a); | |
var b = this.Z(); | |
this.ga = b.F("glass"); | |
this.ha = b.Yb("IFRAME", { | |
frameborder: 0, | |
style: "border:0;vertical-align:bottom;", | |
src: Kg | |
}); | |
this.ha.style.visibility = "hidden"; | |
this.ha.id = "snapshot-frame"; | |
a.appendChild(this.ha); | |
lc ? (cg(this.ga, "100%", "100%"), cg(a, "100%", "100%"), cg(this.ha, "100%", "100%"), oc && (this.ha.style.top = "-100%", this.ha.style.left = "-100%")) : (lf(this.Va), a = this.Va.Z(), a = Ec(a.getWindow()), cg(this.ha, a.width, a.height), hf(this.Va), cg(this.ga, this.Me.width, | |
this.Me.height)); | |
gg(this.ha, !1); | |
this.Xb = nm(this); | |
this.Ob.initialize(Te(this.Wc), b) | |
}; | |
mm.prototype.Zb = function() { | |
mm.s.Zb.call(this); | |
this.zh().listen(this.Xb, "b", this.Ij) | |
}; | |
var nm = function(a) { | |
var b = new dm(Vc(a.ha), a.ab, Oe(a.Ga)); | |
bf(a, b); | |
return b | |
}; | |
mm.prototype.Kc = function() { | |
this.da && this.da.Kc() | |
}; | |
mm.prototype.getImageData = function() { | |
var a = this.Ob.Ek; | |
if (a) { | |
if (!Ha(a, "data:")) throw Error("data scheme expected"); | |
var b = a.indexOf(",", 5); | |
if (-1 == b) throw Error("comma expected"); | |
var c = a.indexOf(";base64", 5); | |
if (-1 == c || c != b - 7) throw Error("base64 content expected"); | |
a = new ck(5 < c ? a.slice(5, c) : null, a.slice(b + 1)) | |
} else a = null; | |
return a | |
}; | |
var om = function(a) { | |
if (a.da && a.zc && a.Uh) { | |
var b = Ic(document); | |
return gk(b, a.Uh, a.da, a.zc) | |
} | |
return [] | |
}; | |
k = mm.prototype; | |
k.Sd = function() { | |
var a = this, | |
b = nh(new mh, 5); | |
if ("f" == this.Bb) return b.Y("snapshot failed"), this.dispatchEvent("activate"), b; | |
if ("s" == this.Bb) return b.callback(null), this.dispatchEvent("activate"), b; | |
this.ab.qg = 500; | |
if (!this.Qa) { | |
var c = function() { | |
b.Ka || (b.za(), Lg(c)) | |
}; | |
c(); | |
pm(this) | |
} | |
bh(S(R(R(R(this.Qa, function() { | |
return qm(a) | |
}), function() { | |
var b = Vc(a.ha), | |
c = a.Ga.ze.extractMetadataFunction, | |
f = Fg(a.Va.getWindow().navigator), | |
b = sg(b, c), | |
c = new Jg, | |
g = a.Va.oe(); | |
c.Zf = g; | |
c.$f = f; | |
c.J = b; | |
a.zc = c.Ha(); | |
a.zc.document.url = a.Va.oe(); | |
a.Uh = (new Xj).Ha(a.zc.document) | |
}), function() { | |
gg(a.ha, !0); | |
a.Bb = "s"; | |
a.dispatchEvent("activate"); | |
a.la.report() | |
}), function() { | |
a.Bb = "f"; | |
a.dispatchEvent("activate"); | |
a.la.report() | |
}), b); | |
return b | |
}; | |
k.enable = function() { | |
this.dispatchEvent("enable") && !this.$a && (this.$a = !0, this.da && this.da.Je(!0)) | |
}; | |
k.disable = function() { | |
this.dispatchEvent("disable") && this.$a && (this.$a = !1, this.da && this.da.Je(!1)) | |
}; | |
k.Ei = function() { | |
gg(this.F(), !0); | |
gg(this.ga, !0); | |
this.Z().sb().body.style.overflow = "hidden" | |
}; | |
k.show = function() { | |
gg(this.F(), !0); | |
gg(this.ga, !0); | |
gg(this.ha, !0); | |
if ("u" != this.Bb) { | |
lf(this.Va); | |
var a = Ic(this.Va.Z().J), | |
b = Hc(this.Z().J); | |
b.style.overflow = "visible"; | |
b.scrollTop = a.y; | |
b.scrollLeft = a.x; | |
this.ha.style.visibility = "visible"; | |
a = this.Z().sb().body; | |
a.style.backgroundColor = "#555"; | |
a.style.overflow = "hidden"; | |
ll(this.Xb); | |
this.dispatchEvent("show") | |
} | |
}; | |
k.Uf = function() { | |
return "none" != this.F().style.display | |
}; | |
k.vd = function() { | |
gg(this.F(), !1); | |
"u" != this.Bb && (hf(this.Va), this.Z().sb().body.style.backgroundColor = "", Hc(this.Z().J).style.overflow = "hidden", this.dispatchEvent("hide")) | |
}; | |
k.Gd = function(a) { | |
this.da && this.da.Gd(a) | |
}; | |
var pm = function(a) { | |
if (a.Qa)(new Q).Y("document already loaded"); | |
else { | |
var b = a.Va.getWindow().document; | |
Ij(a.Ob, rm(b)); | |
Jj(a.Ob, sm(b)); | |
a.la.start(); | |
a.Bb = "p"; | |
Xe(a.Ua, "snapshot_captured"); | |
var c = Date.now(); | |
a.Qa = S(R(R(R(a.Xb.kd(b), function() { | |
Gj(a.Ob, a.Xb.Lf); | |
Hj(a.Ob, a.Xb.zg); | |
a.la.tick("sc"); | |
Ye(a.Ua, "snapshot_captured", Date.now() - c) | |
}), function() { | |
return a.Xb.display(Vc(a.ha)) | |
}), function() { | |
a.la.tick("sd"); | |
a.la.tick("ss"); | |
$e(a.Ua, "feedback_snapshot_displayed") | |
}), function() { | |
a.Bb = "f"; | |
a.la.tick("sf"); | |
Ze(a.Ua, "snapshot_captured", | |
Date.now() - c) | |
}) | |
} | |
}, | |
rm = function(a) { | |
var b = []; | |
if (a.styleSheets) | |
for (var c = 0; c < a.styleSheets.length; c++) try { | |
if (a.styleSheets[c].cssRules) | |
for (var d = 0; d < a.styleSheets[c].cssRules.length; d++) 5 === a.styleSheets[c].cssRules[d].type && b.push(a.styleSheets[c].cssRules[d].cssText) | |
} catch (e) {} | |
return b | |
}, | |
sm = function(a) { | |
a = [a].concat(Je(a, {})); | |
for (var b = [], c = 0; c < a.length; c++) b = b.concat([].filter.call(a[c].querySelectorAll('link[rel="stylesheet"]'), function(a) { | |
a: { | |
a = a.href; | |
for (var b = 0; b < Pj.length; b++) { | |
var c = Pj[b], | |
d = a.match(Vd), | |
c = c.match(Vd); | |
if (d[3] == c[3] && d[4] == c[4]) { | |
a = !0; | |
break a | |
} | |
} | |
a = !1 | |
} | |
return a | |
}).map(function(a) { | |
return a.href | |
})); | |
return b | |
}, | |
qm = function(a) { | |
var b = new Q(void 0, a); | |
tm(a); | |
a.show(); | |
gg(a.ga, !1); | |
Lg(b.callback, 0, b); | |
R(b, function() { | |
this.la.tick("ar"); | |
$e(this.Ua, "feedback_annotator_ready") | |
}, a); | |
return b | |
}, | |
tm = function(a) { | |
var b = a.Z(); | |
a.da = "getContext" in document.createElement("CANVAS") ? new Fk(b) : new gl(b); | |
var b = Vc(a.ha), | |
c = b.getElementsByTagName("head")[0]; | |
c || (c = b.createElement("head"), b.appendChild(c)); | |
var d = b.createElement("link"); | |
d.rel = "stylesheet"; | |
d.href = a.Wc.Tc.annotatorCss; | |
c.appendChild(d); | |
a.zb = b.createElement("div"); | |
cg(a.zb, a.Me.width, a.Me.height); | |
a.zb.style.zIndex = "100000000000"; | |
a.zb.style.position = "absolute"; | |
a.zb.style.top = "0"; | |
a.zb.style.left = "0"; | |
a.zb.id = "feedback-annotator"; | |
b.body.appendChild(a.zb); | |
a.da.Jf = new Hk(0, b, a.zb, a.Ga.ze.extractMetadataFunction); | |
Tg(a.da, a.zb); | |
a.da.Je(a.$a) | |
}; | |
mm.prototype.Ij = function(a) { | |
a = a.target; | |
Gj(this.Ob, a.Lf); | |
ll(a) | |
}; | |
var Z = function(a, b) { | |
this.K = a; | |
this.ia = b | |
}; | |
pa("help.service.Screenshot", Z); | |
Z.create = function(a, b, c, d, e, f, g, h) { | |
f = {}; | |
f.timeOfStartCall = Date.now(); | |
h && (f.productId = h.productId); | |
e = new Le; | |
e.ze = f || {}; | |
f = new Se(e); | |
c = { | |
annotatorCss: d, | |
renderFrame2Url: c | |
}; | |
h && (c.xsrfToken = h.xsrfToken, c.sessionId = h.sessionId); | |
f.Tc = c || {}; | |
f.Ck = f.Tc.sessionId; | |
f.Ok = f.Tc.xsrfToken; | |
h = new ff; | |
h.Di(a); | |
a = new Ue(e, f); | |
a.ci = g || "help"; | |
g = new mm(e, f, h, a, Ac(b)); | |
return new Z(b, g) | |
}; | |
Z.prototype.Sd = function() { | |
return new md(function(a, b) { | |
this.ia.T || Tg(this.ia, this.K); | |
this.ia.Ei(); | |
S(R(R(this.ia.Sd(), this.ia.enable, this.ia), a), b) | |
}, this) | |
}; | |
Z.prototype.activate = Z.prototype.Sd; | |
Z.prototype.uj = function() { | |
this.ia.vd(); | |
var a = this.ia; | |
a.Qa && a.Qa.cancel(!0); | |
a.la = new kh("snapshot"); | |
a.Qa = null; | |
a.Bb = "u"; | |
a.Xb = nm(a); | |
a.da && (a.Kc(), a.da.Db(), a.da = null) | |
}; | |
Z.prototype.deactivate = Z.prototype.uj; | |
Z.prototype.Gj = function() { | |
var a = new Jg, | |
b = this.ia.Va.oe(); | |
a.Zf = b; | |
b = Fg(window.navigator); | |
a.$f = b; | |
a = (a = a.Ha()) ? Ig(a) : []; | |
return qd(a) | |
}; | |
Z.prototype.getSystemInfo = Z.prototype.Gj; | |
Z.prototype.sj = function() { | |
return this.ia.Sd().then(function() { | |
this.ia.disable(); | |
var a = this.ia; | |
a.zc.Ig = Ec(); | |
var b = Hc(Ac(a.ha.contentDocument).J); | |
a.zc.Ci = new O(b.scrollLeft, b.scrollTop, b.scrollWidth, b.scrollHeight); | |
return a.Ob.render(Vc(a.ha), dk(a.da), b.scrollLeft, b.scrollTop) | |
}, null, this).then(function(a) { | |
return um(this, a.url) | |
}, null, this) | |
}; | |
Z.prototype.createScreenshot = Z.prototype.sj; | |
Z.prototype.Gd = function(a) { | |
this.ia.Gd(a) | |
}; | |
Z.prototype.setAnnotationType = Z.prototype.Gd; | |
Z.prototype.Kc = function() { | |
this.ia.Kc() | |
}; | |
Z.prototype.clearAnnotations = Z.prototype.Kc; | |
var um = function(a, b) { | |
var c = a.ia.getImageData().toDataUrl(), | |
d = a.ia.zc || null, | |
d = d ? Ig(d) : null, | |
e = ab(om(a.ia), function(a) { | |
var b = []; | |
if (a.$) { | |
var c = a.$, | |
d = []; | |
d[0] = c.Ca; | |
c.Ab && (c = c.Ab, d[1] = [c.left, c.top, c.width, c.height]); | |
b[0] = d | |
} | |
b[1] = a.Fi; | |
b[2] = a.wj; | |
b[3] = a.hj; | |
return b | |
}); | |
return Sd(new Pd("imageData", c, "previewImageData", b, "annotationData", e, "snapshot", d)) | |
}; | |
}).call(this); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment