javascript screenshot.js

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了javascript screenshot.js相关的知识,希望对你有一定的参考价值。

(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, "&amp;")); - 1 != a.indexOf("<") && (a = a.replace(Oa,
                "&lt;")); - 1 != a.indexOf(">") && (a = a.replace(Pa, "&gt;")); - 1 != a.indexOf('"') && (a = a.replace(Qa, "&quot;")); - 1 != a.indexOf("'") && (a = a.replace(Ra, "&#39;")); - 1 != a.indexOf("\x00") && (a = a.replace(Sa, "&#0;"));
            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, " &#160;").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(/\&nbsp\;/g, "&#160;");
            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);

以上是关于javascript screenshot.js的主要内容,如果未能解决你的问题,请参考以下文章

javascript的题。

javascript JavaScript isset()等效: - JavaScript

JavaScript 使用JavaScript更改CSS(JavaScript)

JavaScript之基础-1 JavaScript(概述基础语法)

前端基础-JavaScript的基本概述和语法

JavaScript