Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- this._ = this._ || {};
- (function(self) {
- var window = this;
- try {
- if (window.google.timers) {
- if (window.google.timers.load) {
- if (window.google.timers.load.t) {
- window.google.timers.load.t.xjses = window.google.time();
- }
- }
- }
- var wc;
- var dictSize;
- var bound;
- var $goog$bindJs_$;
- self.aaa = self.aaa || {};
- self.ca = this;
- /**
- * @param {?} property
- * @return {?}
- */
- self.Uf = function(property) {
- return void 0 !== property;
- };
- /**
- * @param {string} pair
- * @param {(Document|string)} autoplay
- * @return {?}
- */
- self.aa = function(pair, autoplay) {
- var pathConfig = pair.split(".");
- var cur = autoplay || self.ca;
- var dir;
- for (;dir = pathConfig.shift();) {
- if (null != cur[dir]) {
- cur = cur[dir];
- } else {
- return null;
- }
- }
- return cur;
- };
- /**
- * @return {undefined}
- */
- self.R = function() {
- };
- /**
- * @param {Function} res
- * @return {undefined}
- */
- self.ea = function(res) {
- /**
- * @return {?}
- */
- res.Sa = function() {
- return res.wu ? res.wu : res.wu = new res;
- };
- };
- /**
- * @param {?} value
- * @return {?}
- */
- self.ja = function(value) {
- /** @type {string} */
- var $s = typeof value;
- if ("object" == $s) {
- if (value) {
- if (value instanceof Array) {
- return "array";
- }
- if (value instanceof Object) {
- return $s;
- }
- /** @type {string} */
- var isFunction = Object.prototype.toString.call(value);
- if ("[object Window]" == isFunction) {
- return "object";
- }
- if ("[object Array]" == isFunction || "number" == typeof value.length && ("undefined" != typeof value.splice && ("undefined" != typeof value.propertyIsEnumerable && !value.propertyIsEnumerable("splice")))) {
- return "array";
- }
- if ("[object Function]" == isFunction || "undefined" != typeof value.call && ("undefined" != typeof value.propertyIsEnumerable && !value.propertyIsEnumerable("call"))) {
- return "function";
- }
- } else {
- return "null";
- }
- } else {
- if ("function" == $s && "undefined" == typeof value.call) {
- return "object";
- }
- }
- return $s;
- };
- /**
- * @param {number} dataAndEvents
- * @return {?}
- */
- self.baa = function(dataAndEvents) {
- return null === dataAndEvents;
- };
- /**
- * @param {string} dataAndEvents
- * @return {?}
- */
- self.Caa = function(dataAndEvents) {
- return null != dataAndEvents;
- };
- /**
- * @param {?} opt_attributes
- * @return {?}
- */
- self.ka = function(opt_attributes) {
- return "array" == self.ja(opt_attributes);
- };
- /**
- * @param {?} opt_attributes
- * @return {?}
- */
- self.la = function(opt_attributes) {
- var $type = self.ja(opt_attributes);
- return "array" == $type || "object" == $type && "number" == typeof opt_attributes.length;
- };
- /**
- * @param {?} opt_attributes
- * @return {?}
- */
- self.ma = function(opt_attributes) {
- return "string" == typeof opt_attributes;
- };
- /**
- * @param {?} val
- * @return {?}
- */
- self.oa = function(val) {
- return "number" == typeof val;
- };
- /**
- * @param {?} str
- * @return {?}
- */
- self.pa = function(str) {
- return "function" == self.ja(str);
- };
- /**
- * @param {?} opt_attributes
- * @return {?}
- */
- self.qa = function(opt_attributes) {
- /** @type {string} */
- var $s = typeof opt_attributes;
- return "object" == $s && null != opt_attributes || "function" == $s;
- };
- /**
- * @param {?} opt_attributes
- * @return {?}
- */
- self.ra = function(opt_attributes) {
- return opt_attributes[wc] || (opt_attributes[wc] = ++dictSize);
- };
- /** @type {string} */
- wc = "closure_uid_" + (1E9 * Math.random() >>> 0);
- /** @type {number} */
- dictSize = 0;
- /**
- * @param {Function} cb
- * @param {?} lower
- * @param {?} num
- * @return {?}
- */
- bound = function(cb, lower, num) {
- return cb.call.apply(cb.bind, arguments);
- };
- /**
- * @param {Function} matcherFunction
- * @param {Object} $selfObj$$
- * @param {?} $var_args$$
- * @return {?}
- */
- $goog$bindJs_$ = function(matcherFunction, $selfObj$$, $var_args$$) {
- if (!matcherFunction) {
- throw Error();
- }
- if (2 < arguments.length) {
- /** @type {Array.<?>} */
- var args = Array.prototype.slice.call(arguments, 2);
- return function() {
- /** @type {Array.<?>} */
- var recurring = Array.prototype.slice.call(arguments);
- Array.prototype.unshift.apply(recurring, args);
- return matcherFunction.apply($selfObj$$, recurring);
- };
- }
- return function() {
- return matcherFunction.apply($selfObj$$, arguments);
- };
- };
- /**
- * @param {Function} v
- * @param {?} l
- * @param {?} y
- * @return {?}
- */
- self.p = function(v, l, y) {
- self.p = Function.prototype.bind && -1 != Function.prototype.bind.toString().indexOf("native code") ? bound : $goog$bindJs_$;
- return self.p.apply(null, arguments);
- };
- /**
- * @param {Function} method
- * @param {Function} o
- * @return {?}
- */
- self.sa = function(method, o) {
- /** @type {Array.<?>} */
- var args = Array.prototype.slice.call(arguments, 1);
- return function() {
- /** @type {Array.<?>} */
- var newArgs = args.slice();
- newArgs.push.apply(newArgs, arguments);
- return method.apply(this, newArgs);
- };
- };
- /** @type {function (): number} */
- self.q = Date.now || function() {
- return+new Date;
- };
- /**
- * @param {string} pair
- * @param {Function} o
- * @return {undefined}
- */
- self.ua = function(pair, o) {
- var parts = pair.split(".");
- var cur = self.ca;
- if (!(parts[0] in cur)) {
- if (!!cur.execScript) {
- cur.execScript("var " + parts[0]);
- }
- }
- var i;
- for (;parts.length && (i = parts.shift());) {
- if (!parts.length && self.Uf(o)) {
- /** @type {Function} */
- cur[i] = o;
- } else {
- if (cur[i]) {
- cur = cur[i];
- } else {
- cur = cur[i] = {};
- }
- }
- }
- };
- /**
- * @param {Function} obj
- * @param {?} parentClass
- * @return {undefined}
- */
- self.r = function(obj, parentClass) {
- /**
- * @return {undefined}
- */
- function emptyConstructor() {
- }
- emptyConstructor.prototype = parentClass.prototype;
- obj.Ba = parentClass.prototype;
- obj.prototype = new emptyConstructor;
- /** @type {Function} */
- obj.prototype.constructor = obj;
- /**
- * @param {?} recurring
- * @param {?} methodname
- * @param {?} dataAndEvents
- * @return {?}
- */
- obj.Rd = function(recurring, methodname, dataAndEvents) {
- /** @type {Array} */
- var args = Array(arguments.length - 2);
- /** @type {number} */
- var i = 2;
- for (;i < arguments.length;i++) {
- args[i - 2] = arguments[i];
- }
- return parentClass.prototype[methodname].apply(recurring, args);
- };
- };
- /**
- * @param {?} opt_msg
- * @return {undefined}
- */
- self.va = function(opt_msg) {
- if (Error.captureStackTrace) {
- Error.captureStackTrace(this, self.va);
- } else {
- /** @type {string} */
- var stack = Error().stack;
- if (stack) {
- /** @type {string} */
- this.stack = stack;
- }
- }
- if (opt_msg) {
- /** @type {string} */
- this.message = String(opt_msg);
- }
- };
- self.r(self.va, Error);
- /** @type {string} */
- self.va.prototype.name = "CustomError";
- var hasMembers;
- var rreturn;
- var regExclamation;
- var regexTrim;
- var splatParam;
- var unsafe_chars;
- var rclass;
- var rneedsContext;
- var run;
- var download;
- var rmsPrefix;
- var cmp;
- /**
- * @param {string} str
- * @param {string} prefix
- * @return {?}
- */
- self.wa = function(str, prefix) {
- return 0 == str.lastIndexOf(prefix, 0);
- };
- /**
- * @param {?} opt_attributes
- * @param {Object} name
- * @return {?}
- */
- self.xa = function(opt_attributes, name) {
- /** @type {number} */
- var startIndex = opt_attributes.length - name.length;
- return 0 <= startIndex && opt_attributes.indexOf(name, startIndex) == startIndex;
- };
- /**
- * @param {?} opt_attributes
- * @param {Object} name
- * @return {?}
- */
- self.ya = function(opt_attributes, name) {
- return opt_attributes.toLowerCase() == name.toLowerCase();
- };
- /**
- * @param {?} opt_attributes
- * @param {Object} name
- * @return {?}
- */
- self.za = function(opt_attributes, name) {
- var namespaces = opt_attributes.split("%s");
- /** @type {string} */
- var optsData = "";
- /** @type {Array.<?>} */
- var resolveValues = Array.prototype.slice.call(arguments, 1);
- for (;resolveValues.length && 1 < namespaces.length;) {
- optsData += namespaces.shift() + resolveValues.shift();
- }
- return optsData + namespaces.join("%s");
- };
- /**
- * @param {?} opt_attributes
- * @return {?}
- */
- self.Ma = function(opt_attributes) {
- return/^[\s\xa0]*$/.test(opt_attributes);
- };
- /**
- * @param {string} messageFormat
- * @return {?}
- */
- self.haa = function(messageFormat) {
- return messageFormat.replace(/(\r\n|\r|\n)/g, "\n");
- };
- /** @type {function (?): ?} */
- self.Da = String.prototype.trim ? function(opt_attributes) {
- return opt_attributes.trim();
- } : function(opt_attributes) {
- return opt_attributes.replace(/^[\s\xa0]+|[\s\xa0]+$/g, "");
- };
- /**
- * @param {?} opt_attributes
- * @return {?}
- */
- self.Ea = function(opt_attributes) {
- return(0, window.encodeURIComponent)(String(opt_attributes));
- };
- /**
- * @param {string} messageFormat
- * @return {?}
- */
- self.Fa = function(messageFormat) {
- return(0, window.decodeURIComponent)(messageFormat.replace(/\+/g, " "));
- };
- /**
- * @param {string} selectors
- * @return {?}
- */
- self.Ga = function(selectors) {
- if (!rneedsContext.test(selectors)) {
- return selectors;
- }
- if (-1 != selectors.indexOf("&")) {
- selectors = selectors.replace(rreturn, "&");
- }
- if (-1 != selectors.indexOf("<")) {
- selectors = selectors.replace(regExclamation, "<");
- }
- if (-1 != selectors.indexOf(">")) {
- selectors = selectors.replace(regexTrim, ">");
- }
- if (-1 != selectors.indexOf('"')) {
- selectors = selectors.replace(splatParam, """);
- }
- if (-1 != selectors.indexOf("'")) {
- selectors = selectors.replace(unsafe_chars, "'");
- }
- if (-1 != selectors.indexOf("\x00")) {
- selectors = selectors.replace(rclass, "�");
- }
- return selectors;
- };
- /** @type {RegExp} */
- rreturn = /&/g;
- /** @type {RegExp} */
- regExclamation = /</g;
- /** @type {RegExp} */
- regexTrim = />/g;
- /** @type {RegExp} */
- splatParam = /"/g;
- /** @type {RegExp} */
- unsafe_chars = /'/g;
- /** @type {RegExp} */
- rclass = /\x00/g;
- /** @type {RegExp} */
- rneedsContext = /[\x00&<>"']/;
- /**
- * @param {?} attributes
- * @return {?}
- */
- self.Ka = function(attributes) {
- return self.Ja(attributes, "&") ? "document" in self.ca ? run(attributes) : download(attributes) : attributes;
- };
- /**
- * @param {?} string
- * @return {?}
- */
- run = function(string) {
- var values = {
- "&" : "&",
- "<" : "<",
- ">" : ">",
- """ : '"'
- };
- var div;
- div = self.ca.document.createElement("div");
- return string.replace(rmsPrefix, function(s, entity) {
- var value = values[s];
- if (value) {
- return value;
- }
- if ("#" == entity.charAt(0)) {
- /** @type {number} */
- var b = Number("0" + entity.substr(1));
- if (!(0, window.isNaN)(b)) {
- /** @type {string} */
- value = String.fromCharCode(b);
- }
- }
- if (!value) {
- /** @type {string} */
- div.innerHTML = s + " ";
- value = div.firstChild.nodeValue.slice(0, -1);
- }
- return values[s] = value;
- });
- };
- /**
- * @param {?} target
- * @return {?}
- */
- download = function(target) {
- return target.replace(/&([^;]+);/g, function(file, entity) {
- switch(entity) {
- case "amp":
- return "&";
- case "lt":
- return "<";
- case "gt":
- return ">";
- case "quot":
- return'"';
- default:
- if ("#" == entity.charAt(0)) {
- /** @type {number} */
- var b = Number("0" + entity.substr(1));
- if (!(0, window.isNaN)(b)) {
- return String.fromCharCode(b);
- }
- }
- return file;
- }
- });
- };
- /** @type {RegExp} */
- rmsPrefix = /&([^;\s<&]+);?/g;
- /**
- * @param {?} opt_attributes
- * @param {Object} name
- * @return {?}
- */
- self.Ja = function(opt_attributes, name) {
- return-1 != opt_attributes.indexOf(name);
- };
- /**
- * @param {?} name
- * @param {?} attributes
- * @return {?}
- */
- self.saa = function(name, attributes) {
- /** @type {RegExp} */
- var re = new RegExp(self.Na(attributes), "");
- return name.replace(re, "");
- };
- /**
- * @param {?} opt_attributes
- * @return {?}
- */
- self.Na = function(opt_attributes) {
- return String(opt_attributes).replace(/([-()\[\]{}+?*.$\^|,:#<!\\])/g, "\\$1").replace(/\x08/g, "\\x08");
- };
- /**
- * @param {string} delimit2
- * @param {number} len
- * @return {?}
- */
- self.Oa = function(delimit2, len) {
- return Array(len + 1).join(delimit2);
- };
- /**
- * @param {string} arg
- * @param {undefined} width
- * @param {number} i
- * @return {?}
- */
- self.Vo = function(arg, width, i) {
- arg = self.Uf(i) ? arg.toFixed(i) : String(arg);
- i = arg.indexOf(".");
- if (-1 == i) {
- i = arg.length;
- }
- return self.Oa("0", Math.max(0, width - i)) + arg;
- };
- /**
- * @param {?} opt_attributes
- * @return {?}
- */
- self.Ba = function(opt_attributes) {
- return null == opt_attributes ? "" : String(opt_attributes);
- };
- /**
- * @param {?} opt_message
- * @param {?} obj
- * @return {?}
- */
- self.Pa = function(opt_message, obj) {
- /** @type {number} */
- var year = 0;
- var v1Subs = (0, self.Da)(String(opt_message)).split(".");
- var v2Subs = (0, self.Da)(String(obj)).split(".");
- /** @type {number} */
- var month = Math.max(v1Subs.length, v2Subs.length);
- /** @type {number} */
- var subIdx = 0;
- for (;0 == year && subIdx < month;subIdx++) {
- var value = v1Subs[subIdx] || "";
- var v2Sub = v2Subs[subIdx] || "";
- /** @type {RegExp} */
- var re = RegExp("(\\d*)(\\D*)", "g");
- /** @type {RegExp} */
- var regex = RegExp("(\\d*)(\\D*)", "g");
- do {
- /** @type {Array} */
- var a = re.exec(value) || ["", "", ""];
- /** @type {Array} */
- var b = regex.exec(v2Sub) || ["", "", ""];
- if (0 == a[0].length && 0 == b[0].length) {
- break;
- }
- year = cmp(0 == a[1].length ? 0 : (0, window.parseInt)(a[1], 10), 0 == b[1].length ? 0 : (0, window.parseInt)(b[1], 10)) || (cmp(0 == a[2].length, 0 == b[2].length) || cmp(a[2], b[2]));
- } while (0 == year);
- }
- return year;
- };
- /**
- * @param {(boolean|number|string)} a
- * @param {(boolean|number|string)} b
- * @return {?}
- */
- cmp = function(a, b) {
- return a < b ? -1 : a > b ? 1 : 0;
- };
- /** @type {number} */
- self.uaa = 2147483648 * Math.random() | 0;
- /**
- * @param {?} attributes
- * @return {?}
- */
- self.Qa = function(attributes) {
- /** @type {number} */
- var b = Number(attributes);
- return 0 == b && self.Ma(attributes) ? window.NaN : b;
- };
- /**
- * @param {?} value
- * @return {?}
- */
- self.Ra = function(value) {
- return String(value).replace(/\-([a-z])/g, function(dataAndEvents, letter) {
- return letter.toUpperCase();
- });
- };
- /**
- * @param {string} arg
- * @return {?}
- */
- self.Sa = function(arg) {
- return String(arg).replace(/([A-Z])/g, "-$1").toLowerCase();
- };
- /**
- * @param {string} str
- * @return {?}
- */
- self.Ta = function(str) {
- var charset = self.ma(void 0) ? self.Na(void 0) : "\\s";
- return str.replace(new RegExp("(^" + (charset ? "|[" + charset + "]+" : "") + ")([a-z])", "g"), function(dataAndEvents, deepDataAndEvents, letter) {
- return deepDataAndEvents + letter.toUpperCase();
- });
- };
- /**
- * @param {Array} first
- * @return {?}
- */
- self.Ua = function(first) {
- return first[first.length - 1];
- };
- self.Wa = Array.prototype;
- /** @type {function (?, ?, ?): ?} */
- self.Xa = self.Wa.indexOf ? function(next_scope, mapper, graphics) {
- return self.Wa.indexOf.call(next_scope, mapper, graphics);
- } : function(attributes, opt_attributes, from) {
- from = null == from ? 0 : 0 > from ? Math.max(0, attributes.length + from) : from;
- if (self.ma(attributes)) {
- return self.ma(opt_attributes) && 1 == opt_attributes.length ? attributes.indexOf(opt_attributes, from) : -1;
- }
- for (;from < attributes.length;from++) {
- if (from in attributes && attributes[from] === opt_attributes) {
- return from;
- }
- }
- return-1;
- };
- /** @type {function (?, Object, (boolean|number|string)): undefined} */
- self.u = self.Wa.forEach ? function(opt_attributes, name, attributes) {
- self.Wa.forEach.call(opt_attributes, name, attributes);
- } : function(opt_attributes, name, attributes) {
- var valuesLen = opt_attributes.length;
- var arr2 = self.ma(opt_attributes) ? opt_attributes.split("") : opt_attributes;
- /** @type {number} */
- var i = 0;
- for (;i < valuesLen;i++) {
- if (i in arr2) {
- name.call(attributes, arr2[i], i, opt_attributes);
- }
- }
- };
- /**
- * @param {?} opt_attributes
- * @param {Object} name
- * @param {(boolean|number|string)} attributes
- * @return {undefined}
- */
- self.Ya = function(opt_attributes, name, attributes) {
- var arr2 = self.ma(opt_attributes) ? opt_attributes.split("") : opt_attributes;
- /** @type {number} */
- var i = opt_attributes.length - 1;
- for (;0 <= i;--i) {
- if (i in arr2) {
- name.call(attributes, arr2[i], i, opt_attributes);
- }
- }
- };
- /** @type {function (?, Object, (boolean|number|string)): ?} */
- self.Za = self.Wa.filter ? function(opt_attributes, name, attributes) {
- return self.Wa.filter.call(opt_attributes, name, attributes);
- } : function(opt_attributes, name, attributes) {
- var valuesLen = opt_attributes.length;
- /** @type {Array} */
- var res = [];
- /** @type {number} */
- var resLength = 0;
- var arr2 = self.ma(opt_attributes) ? opt_attributes.split("") : opt_attributes;
- /** @type {number} */
- var i = 0;
- for (;i < valuesLen;i++) {
- if (i in arr2) {
- var val = arr2[i];
- if (name.call(attributes, val, i, opt_attributes)) {
- res[resLength++] = val;
- }
- }
- }
- return res;
- };
- /** @type {function (?, ?, ?): ?} */
- self.$a = self.Wa.map ? function(next_scope, mapper, graphics) {
- return self.Wa.map.call(next_scope, mapper, graphics);
- } : function(attributes, callback, thisArg) {
- var n = attributes.length;
- /** @type {Array} */
- var result = Array(n);
- var arr2 = self.ma(attributes) ? attributes.split("") : attributes;
- /** @type {number} */
- var i = 0;
- for (;i < n;i++) {
- if (i in arr2) {
- result[i] = callback.call(thisArg, arr2[i], i, attributes);
- }
- }
- return result;
- };
- /** @type {function (?, Text, ?, ?): ?} */
- self.ab = self.Wa.reduce ? function(next_scope, callback, graphics, thisObj) {
- if (thisObj) {
- callback = (0, self.p)(callback, thisObj);
- }
- return self.Wa.reduce.call(next_scope, callback, graphics);
- } : function(arr, f, val, opt_obj) {
- var rval = val;
- (0, self.u)(arr, function(val, index) {
- rval = f.call(opt_obj, rval, val, index, arr);
- });
- return rval;
- };
- /** @type {function (?, ?, ?): ?} */
- self.bb = self.Wa.some ? function(next_scope, mapper, graphics) {
- return self.Wa.some.call(next_scope, mapper, graphics);
- } : function(attributes, f, opt_obj) {
- var aLength = attributes.length;
- var arr2 = self.ma(attributes) ? attributes.split("") : attributes;
- /** @type {number} */
- var i = 0;
- for (;i < aLength;i++) {
- if (i in arr2 && f.call(opt_obj, arr2[i], i, attributes)) {
- return true;
- }
- }
- return false;
- };
- /** @type {function (?, ?, ?): ?} */
- self.cb = self.Wa.every ? function(next_scope, mapper, graphics) {
- return self.Wa.every.call(next_scope, mapper, graphics);
- } : function(attributes, callback, T) {
- var aLength = attributes.length;
- var arr2 = self.ma(attributes) ? attributes.split("") : attributes;
- /** @type {number} */
- var i = 0;
- for (;i < aLength;i++) {
- if (i in arr2 && !callback.call(T, arr2[i], i, attributes)) {
- return false;
- }
- }
- return true;
- };
- /**
- * @param {?} attributes
- * @param {number} p
- * @param {?} db
- * @return {?}
- */
- self.eb = function(attributes, p, db) {
- p = self.db(attributes, p, db);
- return 0 > p ? null : self.ma(attributes) ? attributes.charAt(p) : attributes[p];
- };
- /**
- * @param {?} attributes
- * @param {Function} f
- * @param {?} opt_obj
- * @return {?}
- */
- self.db = function(attributes, f, opt_obj) {
- var aLength = attributes.length;
- var arr2 = self.ma(attributes) ? attributes.split("") : attributes;
- /** @type {number} */
- var i = 0;
- for (;i < aLength;i++) {
- if (i in arr2 && f.call(opt_obj, arr2[i], i, attributes)) {
- return i;
- }
- }
- return-1;
- };
- /**
- * @param {?} opt_attributes
- * @param {?} name
- * @return {?}
- */
- self.fb = function(opt_attributes, name) {
- return 0 <= (0, self.Xa)(opt_attributes, name);
- };
- /**
- * @param {Array} keepData
- * @return {?}
- */
- self.gb = function(keepData) {
- return 0 == keepData.length;
- };
- /**
- * @param {?} attributes
- * @return {undefined}
- */
- self.hb = function(attributes) {
- if (!self.ka(attributes)) {
- /** @type {number} */
- var macKey = attributes.length - 1;
- for (;0 <= macKey;macKey--) {
- delete attributes[macKey];
- }
- }
- /** @type {number} */
- attributes.length = 0;
- };
- /**
- * @param {Array} attributes
- * @param {?} k
- * @return {undefined}
- */
- self.ib = function(attributes, k) {
- if (!self.fb(attributes, k)) {
- attributes.push(k);
- }
- };
- /**
- * @param {?} bytes
- * @param {?} first
- * @return {?}
- */
- self.kb = function(bytes, first) {
- var d = (0, self.Xa)(bytes, first);
- var ls;
- if (ls = 0 <= d) {
- self.jb(bytes, d);
- }
- return ls;
- };
- /**
- * @param {?} string
- * @param {number} val
- * @return {undefined}
- */
- self.jb = function(string, val) {
- self.Wa.splice.call(string, val, 1);
- };
- /**
- * @param {?} dataAndEvents
- * @return {?}
- */
- self.lb = function(dataAndEvents) {
- return self.Wa.concat.apply(self.Wa, arguments);
- };
- /**
- * @param {?} properties
- * @return {?}
- */
- self.nb = function(properties) {
- var length = properties.length;
- if (0 < length) {
- /** @type {Array} */
- var result = Array(length);
- /** @type {number} */
- var i = 0;
- for (;i < length;i++) {
- result[i] = properties[i];
- }
- return result;
- }
- return[];
- };
- /**
- * @param {Array} obj
- * @param {?} a
- * @return {undefined}
- */
- self.ob = function(obj, a) {
- /** @type {number} */
- var i = 1;
- for (;i < arguments.length;i++) {
- var def = arguments[i];
- if (self.la(def)) {
- var n = obj.length || 0;
- var step = def.length || 0;
- obj.length = n + step;
- /** @type {number} */
- var k = 0;
- for (;k < step;k++) {
- obj[n + k] = def[k];
- }
- } else {
- obj.push(def);
- }
- }
- };
- /**
- * @param {?} recurring
- * @param {number} g
- * @param {number} v33
- * @param {Array} dataAndEvents
- * @return {?}
- */
- self.qb = function(recurring, g, v33, dataAndEvents) {
- return self.Wa.splice.apply(recurring, self.pb(arguments, 1));
- };
- /**
- * @param {?} opt_attributes
- * @param {Object} name
- * @param {(boolean|number|string)} attributes
- * @return {?}
- */
- self.pb = function(opt_attributes, name, attributes) {
- return 2 >= arguments.length ? self.Wa.slice.call(opt_attributes, name) : self.Wa.slice.call(opt_attributes, name, attributes);
- };
- /**
- * @param {Array} obj
- * @param {Object} thisObj
- * @param {Function} type
- * @return {undefined}
- */
- self.sb = function(obj, thisObj, type) {
- thisObj = thisObj || obj;
- /**
- * @param {?} attributes
- * @return {?}
- */
- var fx = function(attributes) {
- return self.qa(attributes) ? "o" + self.ra(attributes) : (typeof attributes).charAt(0) + attributes;
- };
- type = type || fx;
- fx = {};
- /** @type {number} */
- var pos = 0;
- /** @type {number} */
- var i = 0;
- for (;i < obj.length;) {
- var item = obj[i++];
- var name = type(item);
- if (!Object.prototype.hasOwnProperty.call(fx, name)) {
- /** @type {boolean} */
- fx[name] = true;
- thisObj[pos++] = item;
- }
- }
- /** @type {number} */
- thisObj.length = pos;
- };
- /**
- * @param {Array} arr
- * @param {string} opt_compareFn
- * @return {undefined}
- */
- self.ub = function(arr, opt_compareFn) {
- arr.sort(opt_compareFn || self.tb);
- };
- /**
- * @param {Array} arr
- * @param {string} v11
- * @return {undefined}
- */
- self.waa = function(arr, v11) {
- /** @type {number} */
- var i = 0;
- for (;i < arr.length;i++) {
- arr[i] = {
- index : i,
- value : arr[i]
- };
- }
- var valueCompareFn = v11 || self.tb;
- self.ub(arr, function(obj1, obj2) {
- return valueCompareFn(obj1.value, obj2.value) || obj1.index - obj2.index;
- });
- /** @type {number} */
- i = 0;
- for (;i < arr.length;i++) {
- arr[i] = arr[i].value;
- }
- };
- /**
- * @param {(boolean|number|string)} a
- * @param {(boolean|number|string)} b
- * @return {?}
- */
- self.tb = function(a, b) {
- return a > b ? 1 : a < b ? -1 : 0;
- };
- /**
- * @param {Array} params
- * @param {Function} cb
- * @param {?} _this
- * @return {?}
- */
- self.xaa = function(params, cb, _this) {
- var paramNames = {};
- /** @type {number} */
- var i = 0;
- for (;i < params.length;i++) {
- var param = params[i];
- var p = cb.call(_this, param, i, params);
- if (self.Uf(p)) {
- (paramNames[p] || (paramNames[p] = [])).push(param);
- }
- }
- return paramNames;
- };
- /**
- * @param {number} i
- * @param {number} end1
- * @param {number} step
- * @return {?}
- */
- self.n6a = function(i, end1, step) {
- /** @type {Array} */
- var bProperties = [];
- /** @type {number} */
- var start = 0;
- /** @type {number} */
- var end = i;
- step = step || 1;
- if (void 0 !== end1) {
- /** @type {number} */
- start = i;
- /** @type {number} */
- end = end1;
- }
- if (0 > step * (end - start)) {
- return[];
- }
- if (0 < step) {
- i = start;
- for (;i < end;i += step) {
- bProperties.push(i);
- }
- } else {
- i = start;
- for (;i > end;i += step) {
- bProperties.push(i);
- }
- }
- return bProperties;
- };
- /**
- * @param {?} data
- * @param {number} dataAndEvents
- * @return {?}
- */
- self.vb = function(data, dataAndEvents) {
- /** @type {Array} */
- var statesData = [];
- /** @type {number} */
- var unlock = 0;
- for (;unlock < dataAndEvents;unlock++) {
- statesData[unlock] = data;
- }
- return statesData;
- };
- /**
- * @return {undefined}
- */
- self.wb = function() {
- this.Xa = this.Xa;
- this.Za = this.Za;
- };
- /** @type {boolean} */
- self.wb.prototype.Xa = false;
- /**
- * @return {?}
- */
- self.wb.prototype.isDisposed = function() {
- return this.Xa;
- };
- /**
- * @return {undefined}
- */
- self.wb.prototype.Ka = function() {
- if (!this.Xa) {
- /** @type {boolean} */
- this.Xa = true;
- this.Ha();
- }
- };
- /**
- * @param {?} opt_attributes
- * @param {Object} name
- * @return {undefined}
- */
- self.v = function(opt_attributes, name) {
- self.xb(opt_attributes, self.sa(self.yb, name));
- };
- /**
- * @param {?} attributes
- * @param {Function} fn
- * @param {?} bind
- * @return {undefined}
- */
- self.xb = function(attributes, fn, bind) {
- if (attributes.Xa) {
- fn.call(bind);
- } else {
- if (!attributes.Za) {
- /** @type {Array} */
- attributes.Za = [];
- }
- attributes.Za.push(self.Uf(bind) ? (0, self.p)(fn, bind) : fn);
- }
- };
- /**
- * @return {undefined}
- */
- self.wb.prototype.Ha = function() {
- if (this.Za) {
- for (;this.Za.length;) {
- this.Za.shift()();
- }
- }
- };
- /**
- * @param {?} opt_attributes
- * @return {undefined}
- */
- self.yb = function(opt_attributes) {
- if (opt_attributes) {
- if ("function" == typeof opt_attributes.Ka) {
- opt_attributes.Ka();
- }
- }
- };
- /**
- * @param {?} opt_attributes
- * @return {undefined}
- */
- self.zb = function(opt_attributes) {
- /** @type {number} */
- var i = 0;
- /** @type {number} */
- var argLength = arguments.length;
- for (;i < argLength;++i) {
- var attributes = arguments[i];
- if (self.la(attributes)) {
- self.zb.apply(null, attributes);
- } else {
- self.yb(attributes);
- }
- }
- };
- var runInContext;
- var createCallback;
- /**
- * @return {?}
- */
- runInContext = function() {
- var parent = self.ca.navigator;
- return parent && (parent = parent.userAgent) ? parent : "";
- };
- self.La = runInContext();
- /**
- * @param {Object} optgroup
- * @return {?}
- */
- self.Ab = function(optgroup) {
- return self.Ja(self.La, optgroup);
- };
- /**
- * @param {?} item
- * @return {?}
- */
- createCallback = function(item) {
- /** @type {RegExp} */
- var re = RegExp("(\\w[\\w ]+)/([^\\s]+)\\s*(?:\\((.*?)\\))?", "g");
- /** @type {Array} */
- var func = [];
- var found;
- for (;found = re.exec(item);) {
- func.push([found[1], found[2], found[3] || void 0]);
- }
- return func;
- };
- var key;
- var desc;
- /**
- * @param {Object} obj
- * @param {Function} f
- * @param {?} opt_this
- * @return {undefined}
- */
- self.hc = function(obj, f, opt_this) {
- var key;
- for (key in obj) {
- f.call(opt_this, obj[key], key, obj);
- }
- };
- /**
- * @param {?} obj
- * @param {Function} f
- * @param {?} opt_this
- * @return {?}
- */
- self.ic = function(obj, f, opt_this) {
- var copy = {};
- var key;
- for (key in obj) {
- if (f.call(opt_this, obj[key], key, obj)) {
- copy[key] = obj[key];
- }
- }
- return copy;
- };
- /**
- * @param {Object} obj
- * @param {Function} f
- * @param {?} opt_obj
- * @return {?}
- */
- self.Ih = function(obj, f, opt_obj) {
- var res = {};
- var key;
- for (key in obj) {
- res[key] = f.call(opt_obj, obj[key], key, obj);
- }
- return res;
- };
- /**
- * @param {?} opt_attributes
- * @return {?}
- */
- self.jc = function(opt_attributes) {
- /** @type {number} */
- var jc = 0;
- var c;
- for (c in opt_attributes) {
- jc++;
- }
- return jc;
- };
- /**
- * @param {?} obj
- * @return {?}
- */
- self.kc = function(obj) {
- /** @type {Array} */
- var res = [];
- /** @type {number} */
- var resLength = 0;
- var key;
- for (key in obj) {
- res[resLength++] = obj[key];
- }
- return res;
- };
- /**
- * @param {?} first
- * @return {?}
- */
- self.lc = function(first) {
- /** @type {Array} */
- var res = [];
- /** @type {number} */
- var resLength = 0;
- var key;
- for (key in first) {
- /** @type {string} */
- res[resLength++] = key;
- }
- return res;
- };
- /**
- * @param {Object} index
- * @param {?} k
- * @return {?}
- */
- key = function(index, k) {
- return k in index;
- };
- /**
- * @param {?} a
- * @return {?}
- */
- self.mc = function(a) {
- var prefix;
- for (prefix in a) {
- return false;
- }
- return true;
- };
- /**
- * @param {Object} arr2
- * @param {?} i
- * @return {undefined}
- */
- self.nc = function(arr2, i) {
- if (i in arr2) {
- delete arr2[i];
- }
- };
- /**
- * @param {Object} benchmarks
- * @param {string} name
- * @param {?} ref
- * @return {undefined}
- */
- self.Taa = function(benchmarks, name, ref) {
- if (name in benchmarks) {
- throw Error("b`" + name);
- }
- benchmarks[name] = ref;
- };
- /**
- * @param {Object} meta
- * @param {?} a
- * @param {?} dataAndEvents
- * @return {?}
- */
- self.oc = function(meta, a, dataAndEvents) {
- return a in meta ? meta[a] : dataAndEvents;
- };
- /**
- * @param {Object} attrs
- * @param {Object} value
- * @return {?}
- */
- self.wga = function(attrs, value) {
- var key;
- for (key in attrs) {
- if (!(key in value) || attrs[key] !== value[key]) {
- return false;
- }
- }
- for (key in value) {
- if (!(key in attrs)) {
- return false;
- }
- }
- return true;
- };
- /**
- * @param {Object} extended
- * @return {?}
- */
- self.pc = function(extended) {
- var original = {};
- var key;
- for (key in extended) {
- original[key] = extended[key];
- }
- return original;
- };
- /**
- * @param {Object} obj
- * @return {?}
- */
- self.qc = function(obj) {
- var transposed = {};
- var key;
- for (key in obj) {
- /** @type {string} */
- transposed[obj[key]] = key;
- }
- return transposed;
- };
- /** @type {Array.<string>} */
- desc = "constructor hasOwnProperty isPrototypeOf propertyIsEnumerable toLocaleString toString valueOf".split(" ");
- /**
- * @param {?} target
- * @param {?} array
- * @return {undefined}
- */
- self.rc = function(target, array) {
- var key;
- var source;
- /** @type {number} */
- var i = 1;
- for (;i < arguments.length;i++) {
- source = arguments[i];
- for (key in source) {
- target[key] = source[key];
- }
- /** @type {number} */
- var j = 0;
- for (;j < desc.length;j++) {
- key = desc[j];
- if (Object.prototype.hasOwnProperty.call(source, key)) {
- target[key] = source[key];
- }
- }
- }
- };
- /**
- * @param {?} dataAndEvents
- * @return {?}
- */
- self.sc = function(dataAndEvents) {
- /** @type {number} */
- var argLength = arguments.length;
- if (1 == argLength && self.ka(arguments[0])) {
- return self.sc.apply(null, arguments[0]);
- }
- if (argLength % 2) {
- throw Error("c");
- }
- var rv = {};
- /** @type {number} */
- var i = 0;
- for (;i < argLength;i += 2) {
- rv[arguments[i]] = arguments[i + 1];
- }
- return rv;
- };
- /**
- * @param {?} opt_attributes
- * @return {?}
- */
- self.tc = function(opt_attributes) {
- /** @type {number} */
- var argLength = arguments.length;
- if (1 == argLength && self.ka(arguments[0])) {
- return self.tc.apply(null, arguments[0]);
- }
- var wkw = {};
- /** @type {number} */
- var i = 0;
- for (;i < argLength;i++) {
- /** @type {boolean} */
- wkw[arguments[i]] = true;
- }
- return wkw;
- };
- var detect;
- var span_;
- /**
- * @return {?}
- */
- self.Bb = function() {
- return self.Ab("Opera") || self.Ab("OPR");
- };
- /**
- * @return {?}
- */
- self.Eb = function() {
- return(self.Ab("Chrome") || self.Ab("CriOS")) && (!self.Bb() && !self.Ab("Edge"));
- };
- /**
- * @return {?}
- */
- self.Cb = function() {
- return self.Ab("Trident") || self.Ab("MSIE");
- };
- /**
- * @return {?}
- */
- self.wh = function() {
- return self.Ab("Firefox");
- };
- /**
- * @return {?}
- */
- self.Db = function() {
- return self.Ab("Safari") && !(self.Eb() || (self.Ab("Coast") || (self.Bb() || (self.Ab("Edge") || (self.Ab("Silk") || self.Ab("Android"))))));
- };
- /**
- * @return {?}
- */
- self.Ik = function() {
- return self.Ab("Android") && !(self.Eb() || (self.wh() || (self.Bb() || self.Ab("Silk"))));
- };
- /**
- * @return {?}
- */
- detect = function() {
- /**
- * @param {(Array|string)} attribute
- * @return {?}
- */
- function validator(attribute) {
- attribute = self.eb(attribute, i);
- return a[attribute] || "";
- }
- var callback = self.La;
- if (self.Cb()) {
- return span_(callback);
- }
- callback = createCallback(callback);
- var a = {};
- (0, self.u)(callback, function(b) {
- a[b[0]] = b[1];
- });
- var i = self.sa(key, a);
- return self.Bb() ? validator(["Version", "Opera", "OPR"]) : self.Ab("Edge") ? validator(["Edge"]) : self.Eb() ? validator(["Chrome", "CriOS"]) : (callback = callback[2]) && callback[1] || "";
- };
- /**
- * @param {number} opt_attributes
- * @return {?}
- */
- self.Fb = function(opt_attributes) {
- return 0 <= self.Pa(detect(), opt_attributes);
- };
- /**
- * @param {Object} style
- * @return {?}
- */
- span_ = function(style) {
- /** @type {(Array.<string>|null)} */
- var match = /rv: *([\d\.]*)/.exec(style);
- if (match && match[1]) {
- return match[1];
- }
- /** @type {string} */
- match = "";
- /** @type {(Array.<string>|null)} */
- var target = /MSIE +([\d\.]+)/.exec(style);
- if (target && target[1]) {
- if (style = /Trident\/(\d.\d)/.exec(style), "7.0" == target[1]) {
- if (style && style[1]) {
- switch(style[1]) {
- case "4.0":
- /** @type {string} */
- match = "8.0";
- break;
- case "5.0":
- /** @type {string} */
- match = "9.0";
- break;
- case "6.0":
- /** @type {string} */
- match = "10.0";
- break;
- case "7.0":
- /** @type {string} */
- match = "11.0";
- }
- } else {
- /** @type {string} */
- match = "7.0";
- }
- } else {
- /** @type {string} */
- match = target[1];
- }
- }
- return match;
- };
- var initEvent;
- /**
- * @return {?}
- */
- self.ch = function() {
- return self.Ab("Presto");
- };
- /**
- * @return {?}
- */
- initEvent = function() {
- return self.Ab("Trident") || self.Ab("MSIE");
- };
- /**
- * @return {?}
- */
- self.ta = function() {
- return self.Ja(self.La.toLowerCase(), "webkit") && !self.Ab("Edge");
- };
- /**
- * @return {?}
- */
- self.Hb = function() {
- return self.Ab("Gecko") && (!self.ta() && (!initEvent() && !self.Ab("Edge")));
- };
- /**
- * @return {?}
- */
- self.jf = function() {
- return self.Ab("Android");
- };
- /**
- * @return {?}
- */
- self.kf = function() {
- return self.Ab("iPhone") && (!self.Ab("iPod") && !self.Ab("iPad"));
- };
- /**
- * @return {?}
- */
- self.dh = function() {
- return self.Ab("iPad");
- };
- /**
- * @return {?}
- */
- self.mf = function() {
- return self.kf() || (self.dh() || self.Ab("iPod"));
- };
- /**
- * @return {?}
- */
- self.Faa = function() {
- var match = self.La;
- /** @type {string} */
- var ret = "";
- if (self.Ab("Windows")) {
- /** @type {RegExp} */
- ret = /Windows (?:NT|Phone) ([0-9.]+)/;
- /** @type {string} */
- ret = (match = ret.exec(match)) ? match[1] : "0.0";
- } else {
- if (self.mf()) {
- /** @type {RegExp} */
- ret = /(?:iPhone|iPod|iPad|CPU)\s+OS\s+(\S+)/;
- /** @type {(null|string)} */
- ret = (match = ret.exec(match)) && match[1].replace(/_/g, ".");
- } else {
- if (self.Ab("Macintosh")) {
- /** @type {RegExp} */
- ret = /Mac OS X ([0-9_.]+)/;
- /** @type {string} */
- ret = (match = ret.exec(match)) ? match[1].replace(/_/g, ".") : "10";
- } else {
- if (self.jf()) {
- /** @type {RegExp} */
- ret = /Android\s+([^\);]+)(\)|;)/;
- /** @type {(null|string)} */
- ret = (match = ret.exec(match)) && match[1];
- } else {
- if (self.Ab("CrOS")) {
- /** @type {RegExp} */
- ret = /(?:CrOS\s+(?:i686|x86_64)\s+([0-9.]+))/;
- /** @type {(null|string)} */
- ret = (match = ret.exec(match)) && match[1];
- }
- }
- }
- }
- }
- return ret || "";
- };
- /**
- * @param {?} walkers
- * @return {?}
- */
- self.nf = function(walkers) {
- return 0 <= self.Pa(self.Faa(), walkers);
- };
- var prompt;
- var iframeCssFixes;
- var collection;
- var doc;
- self.Mb = self.Bb();
- self.Aa = self.Cb();
- self.fa = self.Ab("Edge");
- self.Ob = self.Hb();
- self.Pb = self.ta();
- self.Qb = self.Pb && self.Ab("Mobile");
- self.Ib = self.Ab("Macintosh");
- self.Jb = self.Ab("Windows");
- self.vaa = self.Ab("Linux") || self.Ab("CrOS");
- self.Kb = self.jf();
- self.Baa = self.kf();
- self.Daa = self.dh();
- /**
- * @return {?}
- */
- prompt = function() {
- var xhtml = self.La;
- if (self.Ob) {
- return/rv\:([^\);]+)(\)|;)/.exec(xhtml);
- }
- if (self.fa) {
- return/Edge\/([\d\.]+)/.exec(xhtml);
- }
- if (self.Aa) {
- return/\b(?:MSIE|rv)[: ]([^\);]+)(\)|;)/.exec(xhtml);
- }
- if (self.Pb) {
- return/WebKit\/(\S+)/.exec(xhtml);
- }
- };
- /**
- * @return {?}
- */
- iframeCssFixes = function() {
- var doc = self.ca.document;
- return doc ? doc.documentMode : void 0;
- };
- self.Tb = function() {
- if (self.Mb && self.ca.opera) {
- var v = self.ca.opera.version;
- return self.pa(v) ? v() : v;
- }
- /** @type {string} */
- v = "";
- var r = prompt();
- if (r) {
- v = r ? r[1] : "";
- }
- return self.Aa && (r = iframeCssFixes(), r > (0, window.parseFloat)(v)) ? String(r) : v;
- }();
- collection = {};
- /**
- * @param {string} method
- * @return {?}
- */
- self.Ub = function(method) {
- return collection[method] || (collection[method] = 0 <= self.Pa(self.Tb, method));
- };
- doc = self.ca.document;
- self.Jaa = doc && self.Aa ? iframeCssFixes() || ("CSS1Compat" == doc.compatMode ? (0, window.parseInt)(self.Tb, 10) : 5) : void 0;
- /** @type {boolean} */
- var endInstead = !self.Aa || 9 <= self.Jaa;
- var Maa = !self.Ob && !self.Aa || (self.Aa && 9 <= self.Jaa || self.Ob && self.Ub("1.9.1"));
- var innerText = self.Aa && !self.Ub("9");
- var Oaa = self.Aa || (self.Mb || self.Pb);
- /**
- * @return {undefined}
- */
- self.on = function() {
- /** @type {string} */
- this.$ = "";
- this.ia = self.Hqa;
- };
- /** @type {boolean} */
- self.on.prototype.qu = true;
- self.Hqa = {};
- /**
- * @return {?}
- */
- self.on.prototype.yo = function() {
- return this.$;
- };
- /**
- * @param {(Object|string)} value
- * @return {?}
- */
- self.tda = function(value) {
- var element = new self.on;
- /** @type {(Object|string)} */
- element.$ = value;
- return element;
- };
- self.Jqa = self.tda("");
- /** @type {RegExp} */
- self.zqa = RegExp("[A-Za-z\u00c0-\u00d6\u00d8-\u00f6\u00f8-\u02b8\u0300-\u0590\u0800-\u1fff\u200e\u2c00-\ufb1c\ufe00-\ufe6f\ufefd-\uffff]");
- /** @type {RegExp} */
- self.Aqa = RegExp("^[^A-Za-z\u00c0-\u00d6\u00d8-\u00f6\u00f8-\u02b8\u0300-\u0590\u0800-\u1fff\u200e\u2c00-\ufb1c\ufe00-\ufe6f\ufefd-\uffff]*[\u0591-\u06ef\u06fa-\u07ff\u200f\ufb1d-\ufdff\ufe70-\ufefc]");
- /** @type {RegExp} */
- self.Cqa = RegExp("[A-Za-z\u00c0-\u00d6\u00d8-\u00f6\u00f8-\u02b8\u0300-\u0590\u0800-\u1fff\u200e\u2c00-\ufb1c\ufe00-\ufe6f\ufefd-\uffff][^\u0591-\u06ef\u06fa-\u07ff\u200f\ufb1d-\ufdff\ufe70-\ufefc]*$");
- /** @type {RegExp} */
- self.Dqa = RegExp("[\u0591-\u06ef\u06fa-\u07ff\u200f\ufb1d-\ufdff\ufe70-\ufefc][^A-Za-z\u00c0-\u00d6\u00d8-\u00f6\u00f8-\u02b8\u0300-\u0590\u0800-\u1fff\u200e\u2c00-\ufb1c\ufe00-\ufe6f\ufefd-\uffff]*$");
- var rchecked;
- var TEXT;
- /**
- * @return {undefined}
- */
- self.pn = function() {
- /** @type {string} */
- this.$ = "";
- this.ia = TEXT;
- };
- /** @type {boolean} */
- self.pn.prototype.qu = true;
- /**
- * @return {?}
- */
- self.pn.prototype.yo = function() {
- return this.$;
- };
- /** @type {boolean} */
- self.pn.prototype.aL = true;
- /**
- * @return {?}
- */
- self.pn.prototype.Vq = function() {
- return 1;
- };
- /**
- * @param {Object} item
- * @return {?}
- */
- self.ysa = function(item) {
- return item instanceof self.pn && (item.constructor === self.pn && item.ia === TEXT) ? item.$ : "type_error:SafeUrl";
- };
- /** @type {RegExp} */
- rchecked = /^(?:(?:https?|mailto|ftp):|[^&:/?#]*(?:[/?#]|$))/i;
- /**
- * @param {(Object|string)} value
- * @return {?}
- */
- self.qra = function(value) {
- if (value instanceof self.pn) {
- return value;
- }
- value = value.qu ? value.yo() : String(value);
- if (!rchecked.test(value)) {
- /** @type {string} */
- value = "about:invalid#zClosurez";
- }
- var element = new self.pn;
- /** @type {(Object|string)} */
- element.$ = value;
- return element;
- };
- TEXT = {};
- var column;
- /**
- * @return {undefined}
- */
- self.qn = function() {
- /** @type {string} */
- this.$ = "";
- this.ga = column;
- /** @type {null} */
- this.ia = null;
- };
- /** @type {boolean} */
- self.qn.prototype.aL = true;
- /**
- * @return {?}
- */
- self.qn.prototype.Vq = function() {
- return this.ia;
- };
- /** @type {boolean} */
- self.qn.prototype.qu = true;
- /**
- * @return {?}
- */
- self.qn.prototype.yo = function() {
- return this.$;
- };
- /**
- * @param {Object} item
- * @return {?}
- */
- self.Lo = function(item) {
- return item instanceof self.qn && (item.constructor === self.qn && item.ga === column) ? item.$ : "type_error:SafeHtml";
- };
- /**
- * @param {Text} arg
- * @return {?}
- */
- self.xsa = function(arg) {
- if (arg instanceof self.qn) {
- return arg;
- }
- /** @type {null} */
- var recurring = null;
- if (arg.aL) {
- recurring = arg.Vq();
- }
- arg = self.Ga(arg.qu ? arg.yo() : String(arg));
- return self.lh(arg, recurring);
- };
- column = {};
- /**
- * @param {string} value
- * @param {number} recurring
- * @return {?}
- */
- self.lh = function(value, recurring) {
- var element = new self.qn;
- /** @type {string} */
- element.$ = value;
- /** @type {number} */
- element.ia = recurring;
- return element;
- };
- self.lh("<!DOCTYPE html>", 0);
- self.tn = self.lh("", 0);
- /**
- * @param {Element} style
- * @param {Object} x
- * @return {undefined}
- */
- self.Mo = function(style, x) {
- style.innerHTML = self.Lo(x);
- };
- /**
- * @param {?} value
- * @param {?} min
- * @param {?} l2
- * @return {?}
- */
- self.cc = function(value, min, l2) {
- return Math.min(Math.max(value, min), l2);
- };
- /**
- * @param {number} a
- * @param {number} b
- * @param {number} x
- * @return {?}
- */
- self.Sb = function(a, b, x) {
- return a + x * (b - a);
- };
- self.Nk = Math.sign || function(date2) {
- return 0 < date2 ? 1 : 0 > date2 ? -1 : date2;
- };
- /**
- * @param {?} x
- * @param {?} y
- * @return {undefined}
- */
- self.dc = function(x, y) {
- this.x = self.Uf(x) ? x : 0;
- this.y = self.Uf(y) ? y : 0;
- };
- /**
- * @return {?}
- */
- self.dc.prototype.clone = function() {
- return new self.dc(this.x, this.y);
- };
- /**
- * @param {Object} a
- * @param {Object} b
- * @return {?}
- */
- self.pua = function(a, b) {
- return a == b ? true : a && b ? a.x == b.x && a.y == b.y : false;
- };
- /**
- * @param {?} $point_2
- * @param {?} $point_1
- * @return {?}
- */
- self.$l = function($point_2, $point_1) {
- /** @type {number} */
- var z0 = $point_2.x - $point_1.x;
- /** @type {number} */
- var z1 = $point_2.y - $point_1.y;
- return Math.sqrt(z0 * z0 + z1 * z1);
- };
- /**
- * @param {?} $point_2
- * @param {?} $point_1
- * @return {?}
- */
- self.Gk = function($point_2, $point_1) {
- return new self.dc($point_2.x - $point_1.x, $point_2.y - $point_1.y);
- };
- self.h = self.dc.prototype;
- /**
- * @return {?}
- */
- self.h.ceil = function() {
- /** @type {number} */
- this.x = Math.ceil(this.x);
- /** @type {number} */
- this.y = Math.ceil(this.y);
- return this;
- };
- /**
- * @return {?}
- */
- self.h.floor = function() {
- /** @type {number} */
- this.x = Math.floor(this.x);
- /** @type {number} */
- this.y = Math.floor(this.y);
- return this;
- };
- /**
- * @return {?}
- */
- self.h.round = function() {
- /** @type {number} */
- this.x = Math.round(this.x);
- /** @type {number} */
- this.y = Math.round(this.y);
- return this;
- };
- /**
- * @param {?} v
- * @param {?} y
- * @return {?}
- */
- self.h.translate = function(v, y) {
- if (v instanceof self.dc) {
- this.x += v.x;
- this.y += v.y;
- } else {
- this.x += v;
- if (self.oa(y)) {
- this.y += y;
- }
- }
- return this;
- };
- /**
- * @param {number} f
- * @param {number} v
- * @return {?}
- */
- self.h.scale = function(f, v) {
- var n = self.oa(v) ? v : f;
- this.x *= f;
- this.y *= n;
- return this;
- };
- /**
- * @param {?} pixelWidth
- * @param {?} pixelHeight
- * @return {undefined}
- */
- self.ec = function(pixelWidth, pixelHeight) {
- this.width = pixelWidth;
- this.height = pixelHeight;
- };
- /**
- * @param {Object} a
- * @param {Object} b
- * @return {?}
- */
- self.gc = function(a, b) {
- return a == b ? true : a && b ? a.width == b.width && a.height == b.height : false;
- };
- self.h = self.ec.prototype;
- /**
- * @return {?}
- */
- self.h.clone = function() {
- return new self.ec(this.width, this.height);
- };
- /**
- * @return {?}
- */
- self.h.gJ = function() {
- return this.width / this.height;
- };
- /**
- * @return {?}
- */
- self.h.isEmpty = function() {
- return!(this.width * this.height);
- };
- /**
- * @return {?}
- */
- self.h.ceil = function() {
- /** @type {number} */
- this.width = Math.ceil(this.width);
- /** @type {number} */
- this.height = Math.ceil(this.height);
- return this;
- };
- /**
- * @return {?}
- */
- self.h.floor = function() {
- /** @type {number} */
- this.width = Math.floor(this.width);
- /** @type {number} */
- this.height = Math.floor(this.height);
- return this;
- };
- /**
- * @return {?}
- */
- self.h.round = function() {
- /** @type {number} */
- this.width = Math.round(this.width);
- /** @type {number} */
- this.height = Math.round(this.height);
- return this;
- };
- /**
- * @param {number} sx
- * @param {number} opt_sy
- * @return {?}
- */
- self.h.scale = function(sx, opt_sy) {
- var sy = self.oa(opt_sy) ? opt_sy : sx;
- this.width *= sx;
- this.height *= sy;
- return this;
- };
- var names;
- var getWindowSize;
- var offset;
- var ready;
- var setText;
- var h;
- var skipEmptyTextNodes;
- var IFRAME;
- var tmp;
- var makeArray;
- /**
- * @param {?} n
- * @return {?}
- */
- self.wc = function(n) {
- return n ? new self.uc(self.vc(n)) : hasMembers || (hasMembers = new self.uc);
- };
- /**
- * @param {?} optgroup
- * @return {?}
- */
- self.x = function(optgroup) {
- return self.xc(window.document, optgroup);
- };
- /**
- * @param {?} opt_attributes
- * @param {?} attributes
- * @return {?}
- */
- self.xc = function(opt_attributes, attributes) {
- return self.ma(attributes) ? opt_attributes.getElementById(attributes) : attributes;
- };
- /**
- * @param {Object} optgroup
- * @return {?}
- */
- self.yc = function(optgroup) {
- return self.xc(window.document, optgroup);
- };
- /**
- * @param {?} opt_attributes
- * @param {Object} name
- * @param {Object} attributes
- * @return {?}
- */
- self.Ac = function(opt_attributes, name, attributes) {
- return self.zc(window.document, opt_attributes, name, attributes);
- };
- /**
- * @param {string} name
- * @param {Node} b
- * @return {?}
- */
- self.y = function(name, b) {
- var parent = b || window.document;
- return parent.querySelectorAll && parent.querySelector ? parent.querySelectorAll("." + name) : self.zc(window.document, "*", name, b);
- };
- /**
- * @param {?} attributes
- * @param {Node} ctx
- * @return {?}
- */
- self.z = function(attributes, ctx) {
- var context = ctx || window.document;
- /** @type {null} */
- var d = null;
- if (context.getElementsByClassName) {
- d = context.getElementsByClassName(attributes)[0];
- } else {
- if (context.querySelectorAll && context.querySelector) {
- d = context.querySelector("." + attributes);
- } else {
- d = self.zc(window.document, "*", attributes, ctx)[0];
- }
- }
- return d || null;
- };
- /**
- * @param {Object} root
- * @param {string} tagName
- * @param {?} attributes
- * @param {Object} args
- * @return {?}
- */
- self.zc = function(root, tagName, attributes, args) {
- root = args || root;
- tagName = tagName && "*" != tagName ? tagName.toUpperCase() : "";
- if (root.querySelectorAll && (root.querySelector && (tagName || attributes))) {
- return root.querySelectorAll(tagName + (attributes ? "." + attributes : ""));
- }
- if (attributes && root.getElementsByClassName) {
- root = root.getElementsByClassName(attributes);
- if (tagName) {
- args = {};
- /** @type {number} */
- var i = 0;
- /** @type {number} */
- var name = 0;
- var el;
- for (;el = root[name];name++) {
- if (tagName == el.nodeName) {
- args[i++] = el;
- }
- }
- /** @type {number} */
- args.length = i;
- return args;
- }
- return root;
- }
- root = root.getElementsByTagName(tagName || "*");
- if (attributes) {
- args = {};
- /** @type {number} */
- name = i = 0;
- for (;el = root[name];name++) {
- tagName = el.className;
- if ("function" == typeof tagName.split) {
- if (self.fb(tagName.split(/\s+/), attributes)) {
- args[i++] = el;
- }
- }
- }
- /** @type {number} */
- args.length = i;
- return args;
- }
- return root;
- };
- /**
- * @param {Element} element
- * @param {Object} properties
- * @return {undefined}
- */
- self.Bc = function(element, properties) {
- self.hc(properties, function(val, key) {
- if ("style" == key) {
- element.style.cssText = val;
- } else {
- if ("class" == key) {
- element.className = val;
- } else {
- if ("for" == key) {
- element.htmlFor = val;
- } else {
- if (names.hasOwnProperty(key)) {
- element.setAttribute(names[key], val);
- } else {
- if (self.wa(key, "aria-") || self.wa(key, "data-")) {
- element.setAttribute(key, val);
- } else {
- element[key] = val;
- }
- }
- }
- }
- }
- });
- };
- names = {
- cellpadding : "cellPadding",
- cellspacing : "cellSpacing",
- colspan : "colSpan",
- frameborder : "frameBorder",
- height : "height",
- maxlength : "maxLength",
- role : "role",
- rowspan : "rowSpan",
- type : "type",
- usemap : "useMap",
- valign : "vAlign",
- width : "width"
- };
- /**
- * @param {(Document|string)} opt_parentWin
- * @return {?}
- */
- self.Cc = function(opt_parentWin) {
- return getWindowSize(opt_parentWin || window);
- };
- /**
- * @param {Object} doc
- * @return {?}
- */
- getWindowSize = function(doc) {
- doc = doc.document;
- doc = h(doc) ? doc.documentElement : doc.body;
- return new self.ec(doc.clientWidth, doc.clientHeight);
- };
- /**
- * @return {?}
- */
- self.Ec = function() {
- var vh = window;
- var sh = vh.document;
- /** @type {number} */
- var body = 0;
- if (sh) {
- body = sh.body;
- var docEl = sh.documentElement;
- if (!docEl || !body) {
- return 0;
- }
- vh = getWindowSize(vh).height;
- if (h(sh) && docEl.scrollHeight) {
- body = docEl.scrollHeight != vh ? docEl.scrollHeight : docEl.offsetHeight;
- } else {
- sh = docEl.scrollHeight;
- var oh = docEl.offsetHeight;
- if (docEl.clientHeight != oh) {
- sh = body.scrollHeight;
- oh = body.offsetHeight;
- }
- body = sh > vh ? sh > oh ? sh : oh : sh < oh ? sh : oh;
- }
- }
- return body;
- };
- /**
- * @return {?}
- */
- self.Fc = function() {
- return offset(window.document);
- };
- /**
- * @param {Object} doc
- * @return {?}
- */
- offset = function(doc) {
- var el = self.Gc(doc);
- doc = doc.parentWindow || doc.defaultView;
- return self.Aa && (self.Ub("10") && doc.pageYOffset != el.scrollTop) ? new self.dc(el.scrollLeft, el.scrollTop) : new self.dc(doc.pageXOffset || el.scrollLeft, doc.pageYOffset || el.scrollTop);
- };
- /**
- * @param {Object} doc
- * @return {?}
- */
- self.Gc = function(doc) {
- return doc.scrollingElement ? doc.scrollingElement : !self.Pb && h(doc) ? doc.documentElement : doc.body || doc.documentElement;
- };
- /**
- * @param {Object} doc
- * @return {?}
- */
- self.Hc = function(doc) {
- return doc ? doc.parentWindow || doc.defaultView : window;
- };
- /**
- * @param {?} timeObject
- * @param {?} b
- * @param {?} m
- * @return {?}
- */
- self.A = function(timeObject, b, m) {
- return ready(window.document, arguments);
- };
- /**
- * @param {Document} e
- * @param {Arguments} args
- * @return {?}
- */
- ready = function(e, args) {
- var html = args[0];
- var attributes = args[1];
- if (!endInstead && (attributes && (attributes.name || attributes.type))) {
- /** @type {Array} */
- html = ["<", html];
- if (attributes.name) {
- html.push(' name="', self.Ga(attributes.name), '"');
- }
- if (attributes.type) {
- html.push(' type="', self.Ga(attributes.type), '"');
- var arg = {};
- self.rc(arg, attributes);
- delete arg.type;
- attributes = arg;
- }
- html.push(">");
- /** @type {string} */
- html = html.join("");
- }
- html = e.createElement(html);
- if (attributes) {
- if (self.ma(attributes)) {
- html.className = attributes;
- } else {
- if (self.ka(attributes)) {
- html.className = attributes.join(" ");
- } else {
- self.Bc(html, attributes);
- }
- }
- }
- if (2 < args.length) {
- setText(e, html, args, 2);
- }
- return html;
- };
- /**
- * @param {Document} el
- * @param {Object} text
- * @param {Object} args
- * @param {?} i
- * @return {undefined}
- */
- setText = function(el, text, args, i) {
- /**
- * @param {?} attributes
- * @return {undefined}
- */
- function add(attributes) {
- if (attributes) {
- text.appendChild(self.ma(attributes) ? el.createTextNode(attributes) : attributes);
- }
- }
- for (;i < args.length;i++) {
- var attributes = args[i];
- if (!self.la(attributes) || self.qa(attributes) && 0 < attributes.nodeType) {
- add(attributes);
- } else {
- (0, self.u)(makeArray(attributes) ? self.nb(attributes) : attributes, add);
- }
- }
- };
- /**
- * @param {?} opt_attributes
- * @return {?}
- */
- self.Ic = function(opt_attributes) {
- return window.document.createElement(opt_attributes);
- };
- /**
- * @param {?} obj
- * @return {?}
- */
- self.wi = function(obj) {
- return window.document.createTextNode(String(obj));
- };
- /**
- * @param {Document} Assert
- * @param {number} high
- * @param {number} b
- * @return {?}
- */
- self.Jc = function(Assert, high, b) {
- var TABLE = Assert.createElement("TABLE");
- var containerEl = TABLE.appendChild(Assert.createElement("TBODY"));
- /** @type {number} */
- var low = 0;
- for (;low < high;low++) {
- var docFrag = Assert.createElement("TR");
- /** @type {number} */
- var a = 0;
- for (;a < b;a++) {
- docFrag.appendChild(Assert.createElement("TD"));
- }
- containerEl.appendChild(docFrag);
- }
- return TABLE;
- };
- /**
- * @param {Document} a
- * @return {?}
- */
- h = function(a) {
- return "CSS1Compat" == a.compatMode;
- };
- /**
- * @param {?} child
- * @param {Array} f
- * @return {undefined}
- */
- self.Kc = function(child, f) {
- child.appendChild(f);
- };
- /**
- * @param {Object} msg
- * @param {?} v12
- * @return {undefined}
- */
- self.Lc = function(msg, v12) {
- setText(self.vc(msg), msg, arguments, 1);
- };
- /**
- * @param {HTMLElement} parent
- * @return {undefined}
- */
- self.Mc = function(parent) {
- var node;
- for (;node = parent.firstChild;) {
- parent.removeChild(node);
- }
- };
- /**
- * @param {?} relatedNode
- * @param {Node} s
- * @return {undefined}
- */
- self.Nc = function(relatedNode, s) {
- if (s.parentNode) {
- s.parentNode.insertBefore(relatedNode, s);
- }
- };
- /**
- * @param {?} relatedNode
- * @param {Node} el
- * @return {undefined}
- */
- self.Oc = function(relatedNode, el) {
- if (el.parentNode) {
- el.parentNode.insertBefore(relatedNode, el.nextSibling);
- }
- };
- /**
- * @param {?} opt_attributes
- * @param {Object} name
- * @param {(boolean|number|string)} attributes
- * @return {undefined}
- */
- self.Pc = function(opt_attributes, name, attributes) {
- opt_attributes.insertBefore(name, opt_attributes.childNodes[attributes] || null);
- };
- /**
- * @param {Object} node
- * @return {?}
- */
- self.Qc = function(node) {
- return node && node.parentNode ? node.parentNode.removeChild(node) : null;
- };
- /**
- * @param {?} opt_attributes
- * @return {?}
- */
- self.Rc = function(opt_attributes) {
- return Maa && void 0 != opt_attributes.children ? opt_attributes.children : (0, self.Za)(opt_attributes.childNodes, function(dest) {
- return 1 == dest.nodeType;
- });
- };
- /**
- * @param {Node} div
- * @return {?}
- */
- self.Uc = function(div) {
- return self.Uf(div.firstElementChild) ? div.firstElementChild : skipEmptyTextNodes(div.firstChild, true);
- };
- /**
- * @param {Node} div
- * @return {?}
- */
- self.Vc = function(div) {
- return self.Uf(div.lastElementChild) ? div.lastElementChild : skipEmptyTextNodes(div.lastChild, false);
- };
- /**
- * @param {Node} elem
- * @return {?}
- */
- self.Wc = function(elem) {
- return self.Uf(elem.nextElementSibling) ? elem.nextElementSibling : skipEmptyTextNodes(elem.nextSibling, true);
- };
- /**
- * @param {Node} el
- * @return {?}
- */
- self.Xc = function(el) {
- return self.Uf(el.previousElementSibling) ? el.previousElementSibling : skipEmptyTextNodes(el.previousSibling, false);
- };
- /**
- * @param {Object} node
- * @param {boolean} forwards
- * @return {?}
- */
- skipEmptyTextNodes = function(node, forwards) {
- for (;node && 1 != node.nodeType;) {
- node = forwards ? node.nextSibling : node.previousSibling;
- }
- return node;
- };
- /**
- * @param {?} attributes
- * @return {?}
- */
- self.Yc = function(attributes) {
- return self.qa(attributes) && 1 == attributes.nodeType;
- };
- /**
- * @param {string} element
- * @return {?}
- */
- self.Zc = function(element) {
- var parent;
- if (Oaa && (!(self.Aa && (self.Ub("9") && (!self.Ub("10") && (self.ca.SVGElement && element instanceof self.ca.SVGElement)))) && (parent = element.parentElement))) {
- return parent;
- }
- parent = element.parentNode;
- return self.Yc(parent) ? parent : null;
- };
- /**
- * @param {Object} parent
- * @param {Object} descendant
- * @return {?}
- */
- self.$c = function(parent, descendant) {
- if (parent.contains && 1 == descendant.nodeType) {
- return parent == descendant || parent.contains(descendant);
- }
- if ("undefined" != typeof parent.compareDocumentPosition) {
- return parent == descendant || Boolean(parent.compareDocumentPosition(descendant) & 16);
- }
- for (;descendant && parent != descendant;) {
- descendant = descendant.parentNode;
- }
- return descendant == parent;
- };
- /**
- * @param {Object} el
- * @return {?}
- */
- self.vc = function(el) {
- return 9 == el.nodeType ? el : el.ownerDocument || el.document;
- };
- /**
- * @param {Element} iframe
- * @return {?}
- */
- self.qpa = function(iframe) {
- return iframe.contentDocument || iframe.contentWindow.document;
- };
- /**
- * @param {HTMLElement} element
- * @param {?} value
- * @return {undefined}
- */
- self.ad = function(element, value) {
- if ("textContent" in element) {
- element.textContent = value;
- } else {
- if (3 == element.nodeType) {
- element.data = value;
- } else {
- if (element.firstChild && 3 == element.firstChild.nodeType) {
- for (;element.lastChild != element.firstChild;) {
- element.removeChild(element.lastChild);
- }
- element.firstChild.data = value;
- } else {
- self.Mc(element);
- element.appendChild(self.vc(element).createTextNode(String(value)));
- }
- }
- }
- };
- IFRAME = {
- SCRIPT : 1,
- STYLE : 1,
- HEAD : 1,
- IFRAME : 1,
- OBJECT : 1
- };
- tmp = {
- IMG : " ",
- BR : "\n"
- };
- /**
- * @param {string} el
- * @return {?}
- */
- self.bd = function(el) {
- if (innerText && "innerText" in el) {
- el = self.haa(el.innerText);
- } else {
- /** @type {Array} */
- var results = [];
- self.gba(el, results, true);
- /** @type {string} */
- el = results.join("");
- }
- el = el.replace(/ \xAD /g, " ").replace(/\xAD/g, "");
- el = el.replace(/\u200B/g, "");
- if (!innerText) {
- el = el.replace(/ +/g, " ");
- }
- if (" " != el) {
- el = el.replace(/^\s*/, "");
- }
- return el;
- };
- /**
- * @param {Node} el
- * @param {Array} nodes
- * @param {boolean} allowIntersection
- * @return {undefined}
- */
- self.gba = function(el, nodes, allowIntersection) {
- if (!(el.nodeName in IFRAME)) {
- if (3 == el.nodeType) {
- if (allowIntersection) {
- nodes.push(String(el.nodeValue).replace(/(\r\n|\r|\n)/g, ""));
- } else {
- nodes.push(el.nodeValue);
- }
- } else {
- if (el.nodeName in tmp) {
- nodes.push(tmp[el.nodeName]);
- } else {
- el = el.firstChild;
- for (;el;) {
- self.gba(el, nodes, allowIntersection);
- el = el.nextSibling;
- }
- }
- }
- }
- };
- /**
- * @param {?} attributes
- * @return {?}
- */
- makeArray = function(attributes) {
- if (attributes && "number" == typeof attributes.length) {
- if (self.qa(attributes)) {
- return "function" == typeof attributes.item || "string" == typeof attributes.item;
- }
- if (self.pa(attributes)) {
- return "function" == typeof attributes.item;
- }
- }
- return false;
- };
- /**
- * @param {?} element
- * @param {string} tag
- * @param {string} d
- * @param {number} cb
- * @return {?}
- */
- self.dd = function(element, tag, d, cb) {
- if (!tag && !d) {
- return null;
- }
- var nodeName = tag ? tag.toUpperCase() : null;
- return self.cd(element, function(child) {
- return(!nodeName || child.nodeName == nodeName) && (!d || self.ma(child.className) && self.fb(child.className.split(/\s+/), d));
- }, true, cb);
- };
- /**
- * @param {?} container
- * @param {string} millis
- * @param {number} done
- * @return {?}
- */
- self.ed = function(container, millis, done) {
- return self.dd(container, null, millis, done);
- };
- /**
- * @param {Object} element
- * @param {Function} proceed
- * @param {boolean} dataAndEvents
- * @param {number} delegate
- * @return {?}
- */
- self.cd = function(element, proceed, dataAndEvents, delegate) {
- if (!dataAndEvents) {
- element = element.parentNode;
- }
- /** @type {boolean} */
- dataAndEvents = null == delegate;
- /** @type {number} */
- var e = 0;
- for (;element && (dataAndEvents || e <= delegate);) {
- if (proceed(element)) {
- return element;
- }
- element = element.parentNode;
- e++;
- }
- return null;
- };
- /**
- * @param {Document} doc
- * @return {?}
- */
- self.fd = function(doc) {
- try {
- return doc && doc.activeElement;
- } catch (b) {
- }
- return null;
- };
- /**
- * @param {(Document|string)} dataAndEvents
- * @return {undefined}
- */
- self.uc = function(dataAndEvents) {
- this.pb = dataAndEvents || (self.ca.document || window.document);
- };
- /**
- * @param {Object} optgroup
- * @return {?}
- */
- self.uc.prototype.va = function(optgroup) {
- return self.xc(this.pb, optgroup);
- };
- /** @type {function (Element, Object): undefined} */
- self.uc.prototype.setProperties = self.Bc;
- /**
- * @param {?} opt_attributes
- * @param {Object} name
- * @param {(boolean|number|string)} attributes
- * @return {?}
- */
- self.uc.prototype.$ = function(opt_attributes, name, attributes) {
- return ready(this.pb, arguments);
- };
- /**
- * @param {string} tag
- * @return {?}
- */
- self.uc.prototype.createElement = function(tag) {
- return this.pb.createElement(tag);
- };
- /**
- * @param {?} opt_attributes
- * @param {Object} name
- * @return {?}
- */
- self.id = function(opt_attributes, name) {
- return opt_attributes.pb.createTextNode(String(name));
- };
- /**
- * @param {string} var_args
- * @return {?}
- */
- self.jd = function(var_args) {
- return h(var_args.pb);
- };
- /**
- * @param {Object} doc
- * @return {?}
- */
- self.Lb = function(doc) {
- doc = doc.pb;
- return doc.parentWindow || doc.defaultView;
- };
- /**
- * @param {?} dataAndEvents
- * @return {?}
- */
- self.ld = function(dataAndEvents) {
- return self.Gc(dataAndEvents.pb);
- };
- /**
- * @param {?} prm
- * @return {?}
- */
- self.md = function(prm) {
- return offset(prm.pb);
- };
- self.h = self.uc.prototype;
- /** @type {function (?, Array): undefined} */
- self.h.appendChild = self.Kc;
- /** @type {function (Object, ?): undefined} */
- self.h.append = self.Lc;
- /** @type {function (HTMLElement): undefined} */
- self.h.hm = self.Mc;
- /** @type {function (?, Node): undefined} */
- self.h.gL = self.Nc;
- /** @type {function (?, Object, (boolean|number|string)): undefined} */
- self.h.fL = self.Pc;
- /** @type {function (Object): ?} */
- self.h.qh = self.Qc;
- /** @type {function (?): ?} */
- self.h.getChildren = self.Rc;
- /** @type {function (Node): ?} */
- self.h.OI = self.Uc;
- /** @type {function (Node): ?} */
- self.h.XI = self.Xc;
- /** @type {function (?): ?} */
- self.h.l1 = self.Yc;
- /** @type {function (string): ?} */
- self.h.BV = self.Zc;
- /** @type {function (Object, Object): ?} */
- self.h.contains = self.$c;
- /** @type {function (HTMLElement, ?): undefined} */
- self.h.Lb = self.ad;
- /** @type {function (string): ?} */
- self.h.ux = self.bd;
- /** @type {function (?, string, number): ?} */
- self.h.IB = self.ed;
- var inspect;
- /**
- * @return {?}
- */
- self.nd = function() {
- return self.Pb ? "Webkit" : self.Ob ? "Moz" : self.Aa ? "ms" : self.Mb ? "O" : null;
- };
- /**
- * @return {?}
- */
- self.od = function() {
- return self.Pb ? "-webkit" : self.Ob ? "-moz" : self.Aa ? "-ms" : self.Mb ? "-o" : null;
- };
- /**
- * @param {string} str
- * @param {Object} obj
- * @return {?}
- */
- inspect = function(str, obj) {
- if (obj && str in obj) {
- return str;
- }
- var part = self.nd();
- return part ? (part = part.toLowerCase(), part += self.Ta(str), !self.Uf(obj) || part in obj ? part : null) : null;
- };
- var jba;
- var named;
- var lba;
- /** @type {boolean} */
- jba = !self.Aa || 9 <= self.Jaa;
- /** @type {boolean} */
- named = !self.Aa || 9 <= self.Jaa;
- lba = self.Aa && !self.Ub("9");
- self.mba = !self.Pb || self.Ub("528");
- self.nba = self.Ob && self.Ub("1.9b") || (self.Aa && self.Ub("8") || (self.Mb && self.Ub("9.5") || self.Pb && self.Ub("528")));
- self.oba = self.Ob && !self.Ub("8") || self.Aa && !self.Ub("9");
- /** @type {boolean} */
- self.pba = "ontouchstart" in self.ca || (!!(self.ca.document && (window.document.documentElement && "ontouchstart" in window.document.documentElement)) || !(!self.ca.navigator || !self.ca.navigator.msMaxTouchPoints));
- /**
- * @param {?} obj
- * @param {Object} $opt_target$$1
- * @return {undefined}
- */
- self.pd = function(obj, $opt_target$$1) {
- this.type = "undefined" != typeof self.fda && obj instanceof self.fda ? String(obj) : obj;
- this.currentTarget = this.target = $opt_target$$1;
- /** @type {boolean} */
- this.ma = false;
- /** @type {boolean} */
- this.tN = true;
- };
- /**
- * @return {undefined}
- */
- self.pd.prototype.stopPropagation = function() {
- /** @type {boolean} */
- this.ma = true;
- };
- /**
- * @return {undefined}
- */
- self.pd.prototype.preventDefault = function() {
- /** @type {boolean} */
- this.tN = false;
- };
- /**
- * @param {Object} types
- * @return {undefined}
- */
- self.oda = function(types) {
- types.preventDefault();
- };
- var normalizeEvent;
- /**
- * @param {string} eventName
- * @return {?}
- */
- normalizeEvent = function(eventName) {
- return self.Pb ? "webkit" + eventName : self.Mb ? "o" + eventName.toLowerCase() : eventName.toLowerCase();
- };
- /** @type {string} */
- self.qd = self.Aa ? "focusin" : "DOMFocusIn";
- /** @type {string} */
- self.rba = self.Aa ? "focusout" : "DOMFocusOut";
- self.sba = normalizeEvent("AnimationEnd");
- self.rd = normalizeEvent("TransitionEnd");
- /**
- * @param {?} td
- * @return {?}
- */
- self.td = function(td) {
- self.td[" "](td);
- return td;
- };
- /** @type {function (): undefined} */
- self.td[" "] = self.R;
- /**
- * @param {?} attributes
- * @param {Object} optgroup
- * @return {undefined}
- */
- self.ud = function(attributes, optgroup) {
- self.pd.call(this, attributes ? attributes.type : "");
- /** @type {null} */
- this.relatedTarget = this.currentTarget = this.target = null;
- /** @type {number} */
- this.charCode = this.keyCode = this.button = this.screenY = this.screenX = this.clientY = this.clientX = this.offsetY = this.offsetX = 0;
- /** @type {boolean} */
- this.metaKey = this.shiftKey = this.altKey = this.ctrlKey = false;
- /** @type {null} */
- this.state = null;
- /** @type {boolean} */
- this.ka = false;
- /** @type {null} */
- this.$ = null;
- if (attributes) {
- this.init(attributes, optgroup);
- }
- };
- self.r(self.ud, self.pd);
- /** @type {Array} */
- var tba = [1, 4, 2];
- /**
- * @param {?} opt_attributes
- * @param {Object} name
- * @return {undefined}
- */
- self.ud.prototype.init = function(opt_attributes, name) {
- var $type$$52 = this.type = opt_attributes.type;
- var touch = opt_attributes.changedTouches ? opt_attributes.changedTouches[0] : null;
- this.target = opt_attributes.target || opt_attributes.srcElement;
- /** @type {Object} */
- this.currentTarget = name;
- var relatedTarget = opt_attributes.relatedTarget;
- if (relatedTarget) {
- if (self.Ob) {
- var f;
- a: {
- try {
- self.td(relatedTarget.nodeName);
- /** @type {boolean} */
- f = true;
- break a;
- } catch (g) {
- }
- /** @type {boolean} */
- f = false;
- }
- if (!f) {
- /** @type {null} */
- relatedTarget = null;
- }
- }
- } else {
- if ("mouseover" == $type$$52) {
- relatedTarget = opt_attributes.fromElement;
- } else {
- if ("mouseout" == $type$$52) {
- relatedTarget = opt_attributes.toElement;
- }
- }
- }
- this.relatedTarget = relatedTarget;
- if (null === touch) {
- this.offsetX = self.Pb || void 0 !== opt_attributes.offsetX ? opt_attributes.offsetX : opt_attributes.layerX;
- this.offsetY = self.Pb || void 0 !== opt_attributes.offsetY ? opt_attributes.offsetY : opt_attributes.layerY;
- this.clientX = void 0 !== opt_attributes.clientX ? opt_attributes.clientX : opt_attributes.pageX;
- this.clientY = void 0 !== opt_attributes.clientY ? opt_attributes.clientY : opt_attributes.pageY;
- this.screenX = opt_attributes.screenX || 0;
- this.screenY = opt_attributes.screenY || 0;
- } else {
- this.clientX = void 0 !== touch.clientX ? touch.clientX : touch.pageX;
- this.clientY = void 0 !== touch.clientY ? touch.clientY : touch.pageY;
- this.screenX = touch.screenX || 0;
- this.screenY = touch.screenY || 0;
- }
- this.button = opt_attributes.button;
- this.keyCode = opt_attributes.keyCode || 0;
- this.charCode = opt_attributes.charCode || ("keypress" == $type$$52 ? opt_attributes.keyCode : 0);
- this.ctrlKey = opt_attributes.ctrlKey;
- this.altKey = opt_attributes.altKey;
- this.shiftKey = opt_attributes.shiftKey;
- this.metaKey = opt_attributes.metaKey;
- this.ka = self.Ib ? opt_attributes.metaKey : opt_attributes.ctrlKey;
- this.state = opt_attributes.state;
- this.$ = opt_attributes;
- if (opt_attributes.defaultPrevented) {
- this.preventDefault();
- }
- };
- /**
- * @param {Object} e
- * @return {?}
- */
- self.uba = function(e) {
- return jba ? 0 == e.$.button : "click" == e.type ? true : !!(e.$.button & tba[0]);
- };
- /**
- * @return {?}
- */
- self.ud.prototype.Ii = function() {
- return self.uba(this) && !(self.Pb && (self.Ib && this.ctrlKey));
- };
- /**
- * @return {undefined}
- */
- self.ud.prototype.stopPropagation = function() {
- self.ud.Ba.stopPropagation.call(this);
- if (this.$.stopPropagation) {
- this.$.stopPropagation();
- } else {
- /** @type {boolean} */
- this.$.cancelBubble = true;
- }
- };
- /**
- * @return {undefined}
- */
- self.ud.prototype.preventDefault = function() {
- self.ud.Ba.preventDefault.call(this);
- var ev = this.$;
- if (ev.preventDefault) {
- ev.preventDefault();
- } else {
- if (ev.returnValue = false, lba) {
- try {
- if (ev.ctrlKey || 112 <= ev.keyCode && 123 >= ev.keyCode) {
- /** @type {number} */
- ev.keyCode = -1;
- }
- } catch (b) {
- }
- }
- }
- };
- var functionName;
- var nextKey;
- /** @type {string} */
- functionName = "closure_listenable_" + (1E6 * Math.random() | 0);
- /**
- * @param {?} object
- * @return {?}
- */
- self.vd = function(object) {
- return!(!object || !object[functionName]);
- };
- /** @type {number} */
- nextKey = 0;
- /**
- * @param {Function} listener
- * @param {?} url
- * @param {?} type
- * @param {?} opt_vars
- * @param {?} y
- * @return {undefined}
- */
- var Player = function(listener, url, type, opt_vars, y) {
- /** @type {Function} */
- this.listener = listener;
- /** @type {null} */
- this.proxy = null;
- this.src = url;
- this.type = type;
- /** @type {boolean} */
- this.Ns = !!opt_vars;
- this.ay = y;
- /** @type {number} */
- this.key = ++nextKey;
- /** @type {boolean} */
- this.removed = this.fw = false;
- };
- /**
- * @param {Object} listener
- * @return {undefined}
- */
- var addListener = function(listener) {
- /** @type {boolean} */
- listener.removed = true;
- /** @type {null} */
- listener.listener = null;
- /** @type {null} */
- listener.proxy = null;
- /** @type {null} */
- listener.src = null;
- /** @type {null} */
- listener.ay = null;
- };
- /**
- * @param {?} src
- * @return {undefined}
- */
- var ctor = function(src) {
- this.src = src;
- this.Ad = {};
- /** @type {number} */
- this.$ = 0;
- };
- var Event;
- /**
- * @param {?} type
- * @param {?} key
- * @param {boolean} b
- * @param {Function} child
- * @param {Array} selector
- * @return {?}
- */
- ctor.prototype.add = function(type, key, b, child, selector) {
- var j = type.toString();
- type = this.Ad[j];
- if (!type) {
- /** @type {Array} */
- type = this.Ad[j] = [];
- this.$++;
- }
- var ret = Event(type, key, child, selector);
- if (-1 < ret) {
- key = type[ret];
- if (!b) {
- /** @type {boolean} */
- key.fw = false;
- }
- } else {
- key = new Player(key, this.src, j, !!child, selector);
- /** @type {boolean} */
- key.fw = b;
- type.push(key);
- }
- return key;
- };
- /**
- * @param {?} opt_attributes
- * @param {number} event
- * @param {boolean} listener
- * @param {Array} options
- * @return {?}
- */
- ctor.prototype.remove = function(opt_attributes, event, listener, options) {
- opt_attributes = opt_attributes.toString();
- if (!(opt_attributes in this.Ad)) {
- return false;
- }
- var type = this.Ad[opt_attributes];
- event = Event(type, event, listener, options);
- return-1 < event ? (addListener(type[event]), self.jb(type, event), 0 == type.length && (delete this.Ad[opt_attributes], this.$--), true) : false;
- };
- /**
- * @param {?} events
- * @param {Object} event
- * @return {?}
- */
- var connect = function(events, event) {
- var eventType = event.type;
- if (!(eventType in events.Ad)) {
- return false;
- }
- var conn = self.kb(events.Ad[eventType], event);
- if (conn) {
- addListener(event);
- if (0 == events.Ad[eventType].length) {
- delete events.Ad[eventType];
- events.$--;
- }
- }
- return conn;
- };
- /**
- * @param {Object} opt_type
- * @return {?}
- */
- ctor.prototype.removeAll = function(opt_type) {
- opt_type = opt_type && opt_type.toString();
- /** @type {number} */
- var count = 0;
- var type;
- for (type in this.Ad) {
- if (!opt_type || type == opt_type) {
- var codeSegments = this.Ad[type];
- /** @type {number} */
- var i = 0;
- for (;i < codeSegments.length;i++) {
- ++count;
- addListener(codeSegments[i]);
- }
- delete this.Ad[type];
- this.$--;
- }
- }
- return count;
- };
- /**
- * @param {?} dstUri
- * @param {?} deepDataAndEvents
- * @return {?}
- */
- ctor.prototype.ox = function(dstUri, deepDataAndEvents) {
- var codeSegments = this.Ad[dstUri.toString()];
- /** @type {Array} */
- var eventPath = [];
- if (codeSegments) {
- /** @type {number} */
- var i = 0;
- for (;i < codeSegments.length;++i) {
- var cur = codeSegments[i];
- if (cur.Ns == deepDataAndEvents) {
- eventPath.push(cur);
- }
- }
- }
- return eventPath;
- };
- /**
- * @param {Object} type
- * @param {number} key
- * @param {Object} c
- * @param {boolean} listener
- * @param {Array} params
- * @return {?}
- */
- self.Aba = function(type, key, c, listener, params) {
- type = type.Ad[key.toString()];
- /** @type {number} */
- key = -1;
- if (type) {
- key = Event(type, c, listener, params);
- }
- return-1 < key ? type[key] : null;
- };
- /**
- * @param {Array} tests
- * @param {?} listener
- * @param {boolean} type
- * @param {Array} target
- * @return {?}
- */
- Event = function(tests, listener, type, target) {
- /** @type {number} */
- var i = 0;
- for (;i < tests.length;++i) {
- var self = tests[i];
- if (!self.removed && (self.listener == listener && (self.Ns == !!type && self.ay == target))) {
- return i;
- }
- }
- return-1;
- };
- var _i;
- var args;
- var Dba;
- var addEventListener;
- var map;
- var attachEvent;
- var isArray;
- var objectToString;
- var visit;
- var LISTENER_SCRIPT_DATA;
- /** @type {string} */
- _i = "closure_lm_" + (1E6 * Math.random() | 0);
- args = {};
- /** @type {number} */
- Dba = 0;
- /**
- * @param {Object} name
- * @param {?} attributes
- * @param {Function} type
- * @param {?} obj
- * @param {Array} event
- * @return {?}
- */
- self.C = function(name, attributes, type, obj, event) {
- if (self.ka(attributes)) {
- /** @type {number} */
- var i = 0;
- for (;i < attributes.length;i++) {
- self.C(name, attributes[i], type, obj, event);
- }
- return null;
- }
- type = self.yd(type);
- return self.vd(name) ? name.listen(attributes, type, obj, event) : addEventListener(name, attributes, type, false, obj, event);
- };
- /**
- * @param {Object} src
- * @param {?} obj
- * @param {Object} listener
- * @param {Object} f
- * @param {Function} label
- * @param {Array} selector
- * @return {?}
- */
- addEventListener = function(src, obj, listener, f, label, selector) {
- if (!obj) {
- throw Error("d");
- }
- /** @type {boolean} */
- var capture = !!label;
- var listenerMap = self.zd(src);
- if (!listenerMap) {
- src[_i] = listenerMap = new ctor(src);
- }
- listener = listenerMap.add(obj, listener, f, label, selector);
- if (listener.proxy) {
- return listener;
- }
- f = map();
- /** @type {Object} */
- listener.proxy = f;
- /** @type {Object} */
- f.src = src;
- /** @type {Object} */
- f.listener = listener;
- if (src.addEventListener) {
- src.addEventListener(obj.toString(), f, capture);
- } else {
- if (src.attachEvent) {
- src.attachEvent(attachEvent(obj.toString()), f);
- } else {
- throw Error("lc");
- }
- }
- Dba++;
- return listener;
- };
- /**
- * @return {?}
- */
- map = function() {
- var proxyCallbackFunction = visit;
- /** @type {function (?): ?} */
- var f = named ? function(eventObject) {
- return proxyCallbackFunction.call(f.src, f.listener, eventObject);
- } : function(result) {
- result = proxyCallbackFunction.call(f.src, f.listener, result);
- if (!result) {
- return result;
- }
- };
- return f;
- };
- /**
- * @param {?} node
- * @param {?} attributes
- * @param {Array} type
- * @param {Function} label
- * @param {Array} until
- * @return {?}
- */
- self.Ad = function(node, attributes, type, label, until) {
- if (self.ka(attributes)) {
- /** @type {number} */
- var i = 0;
- for (;i < attributes.length;i++) {
- self.Ad(node, attributes[i], type, label, until);
- }
- return null;
- }
- type = self.yd(type);
- return self.vd(node) ? node.hj.add(String(attributes), type, true, label, until) : addEventListener(node, attributes, type, true, label, until);
- };
- /**
- * @param {Object} model
- * @param {?} attributes
- * @param {Function} type
- * @param {boolean} callback
- * @param {Array} opt_capt
- * @return {?}
- */
- self.Bd = function(model, attributes, type, callback, opt_capt) {
- if (self.ka(attributes)) {
- /** @type {number} */
- var i = 0;
- for (;i < attributes.length;i++) {
- self.Bd(model, attributes[i], type, callback, opt_capt);
- }
- return null;
- }
- type = self.yd(type);
- if (self.vd(model)) {
- return model.unlisten(attributes, type, callback, opt_capt);
- }
- if (!model) {
- return false;
- }
- if (model = self.zd(model)) {
- if (attributes = self.Aba(model, attributes, type, !!callback, opt_capt)) {
- return self.Cd(attributes);
- }
- }
- return false;
- };
- /**
- * @param {Object} listener
- * @return {?}
- */
- self.Cd = function(listener) {
- if (self.oa(listener) || (!listener || listener.removed)) {
- return false;
- }
- var src = listener.src;
- if (self.vd(src)) {
- return connect(src.hj, listener);
- }
- var type = listener.type;
- var proxy = listener.proxy;
- if (src.removeEventListener) {
- src.removeEventListener(type, proxy, listener.Ns);
- } else {
- if (src.detachEvent) {
- src.detachEvent(attachEvent(type), proxy);
- }
- }
- Dba--;
- if (type = self.zd(src)) {
- connect(type, listener);
- if (0 == type.$) {
- /** @type {null} */
- type.src = null;
- /** @type {null} */
- src[_i] = null;
- }
- } else {
- addListener(listener);
- }
- return true;
- };
- /**
- * @param {Object} source
- * @param {Object} type
- * @return {undefined}
- */
- self.ph = function(source, type) {
- if (source) {
- if (self.vd(source)) {
- source.removeAllListeners(type);
- } else {
- var properties = self.zd(source);
- if (properties) {
- /** @type {number} */
- var d = 0;
- var submit = type && type.toString();
- var key;
- for (key in properties.Ad) {
- if (!submit || key == submit) {
- var codeSegments = properties.Ad[key].concat();
- /** @type {number} */
- var i = 0;
- for (;i < codeSegments.length;++i) {
- if (self.Cd(codeSegments[i])) {
- ++d;
- }
- }
- }
- }
- }
- }
- }
- };
- /**
- * @param {string} name
- * @return {?}
- */
- attachEvent = function(name) {
- return name in args ? args[name] : args[name] = "on" + name;
- };
- /**
- * @param {?} attributes
- * @param {Object} optgroup
- * @param {?} attr
- * @return {undefined}
- */
- self.Ed = function(attributes, optgroup, attr) {
- if (self.vd(attributes)) {
- self.Dd(attributes, optgroup, false, attr);
- } else {
- isArray(attributes, optgroup, false, attr);
- }
- };
- /**
- * @param {?} v
- * @param {Object} t
- * @param {boolean} recurring
- * @param {?} item
- * @return {?}
- */
- isArray = function(v, t, recurring, item) {
- /** @type {boolean} */
- var r = true;
- if (v = self.zd(v)) {
- if (t = v.Ad[t.toString()]) {
- t = t.concat();
- /** @type {number} */
- v = 0;
- for (;v < t.length;v++) {
- var val = t[v];
- if (val) {
- if (val.Ns == recurring) {
- if (!val.removed) {
- val = objectToString(val, item);
- /** @type {boolean} */
- r = r && false !== val;
- }
- }
- }
- }
- }
- }
- return r;
- };
- /**
- * @param {Object} o
- * @param {?} d
- * @return {?}
- */
- objectToString = function(o, d) {
- var callback = o.listener;
- var T = o.ay || o.src;
- if (o.fw) {
- self.Cd(o);
- }
- return callback.call(T, d);
- };
- /**
- * @param {Object} e
- * @param {string} obj
- * @return {?}
- */
- visit = function(e, obj) {
- if (e.removed) {
- return true;
- }
- if (!named) {
- var options = obj || self.aa("window.event");
- var result = new self.ud(options, this);
- /** @type {boolean} */
- var out = true;
- if (!(0 > options.keyCode || void 0 != options.returnValue)) {
- a: {
- /** @type {boolean} */
- var target = false;
- if (0 == options.keyCode) {
- try {
- /** @type {number} */
- options.keyCode = -1;
- break a;
- } catch (g) {
- /** @type {boolean} */
- target = true;
- }
- }
- if (target || void 0 == options.returnValue) {
- /** @type {boolean} */
- options.returnValue = true;
- }
- }
- /** @type {Array} */
- options = [];
- target = result.currentTarget;
- for (;target;target = target.parentNode) {
- options.push(target);
- }
- target = e.type;
- /** @type {number} */
- var i = options.length - 1;
- for (;!result.ma && 0 <= i;i--) {
- result.currentTarget = options[i];
- var actual = isArray(options[i], target, true, result);
- out = out && actual;
- }
- /** @type {number} */
- i = 0;
- for (;!result.ma && i < options.length;i++) {
- result.currentTarget = options[i];
- actual = isArray(options[i], target, false, result);
- out = out && actual;
- }
- }
- return out;
- }
- return objectToString(e, new self.ud(obj, this));
- };
- /**
- * @param {?} obj
- * @return {?}
- */
- self.zd = function(obj) {
- obj = obj[_i];
- return obj instanceof ctor ? obj : null;
- };
- /** @type {string} */
- LISTENER_SCRIPT_DATA = "__closure_events_fn_" + (1E9 * Math.random() >>> 0);
- /**
- * @param {Function} listener
- * @return {?}
- */
- self.yd = function(listener) {
- if (self.pa(listener)) {
- return listener;
- }
- if (!listener[LISTENER_SCRIPT_DATA]) {
- /**
- * @param {?} e
- * @return {?}
- */
- listener[LISTENER_SCRIPT_DATA] = function(e) {
- return listener.handleEvent(e);
- };
- }
- return listener[LISTENER_SCRIPT_DATA];
- };
- /**
- * @return {undefined}
- */
- self.Fd = function() {
- self.wb.call(this);
- this.hj = new ctor(this);
- this.TQ = this;
- /** @type {null} */
- this.LP = null;
- };
- self.r(self.Fd, self.wb);
- /** @type {boolean} */
- self.Fd.prototype[functionName] = true;
- self.h = self.Fd.prototype;
- /**
- * @return {?}
- */
- self.h.an = function() {
- return this.LP;
- };
- /**
- * @param {?} dataAndEvents
- * @return {undefined}
- */
- self.h.Vb = function(dataAndEvents) {
- this.LP = dataAndEvents;
- };
- /**
- * @param {string} object
- * @param {Function} listener
- * @param {boolean} recurring
- * @param {Array} event
- * @return {undefined}
- */
- self.h.addEventListener = function(object, listener, recurring, event) {
- self.C(this, object, listener, recurring, event);
- };
- /**
- * @param {string} type
- * @param {Function} func
- * @param {boolean} callback
- * @param {Array} capture
- * @return {undefined}
- */
- self.h.removeEventListener = function(type, func, callback, capture) {
- self.Bd(this, type, func, callback, capture);
- };
- /**
- * @param {?} attributes
- * @return {?}
- */
- self.h.dispatchEvent = function(attributes) {
- var codeSegments;
- var item = this.an();
- if (item) {
- /** @type {Array} */
- codeSegments = [];
- for (;item;item = item.an()) {
- codeSegments.push(item);
- }
- }
- item = this.TQ;
- var optgroup = attributes.type || attributes;
- if (self.ma(attributes)) {
- attributes = new self.pd(attributes, item);
- } else {
- if (attributes instanceof self.pd) {
- attributes.target = attributes.target || item;
- } else {
- var ret = attributes;
- attributes = new self.pd(optgroup, item);
- self.rc(attributes, ret);
- }
- }
- /** @type {boolean} */
- ret = true;
- var opt_attributes;
- if (codeSegments) {
- /** @type {number} */
- var i = codeSegments.length - 1;
- for (;!attributes.ma && 0 <= i;i--) {
- opt_attributes = attributes.currentTarget = codeSegments[i];
- ret = self.Dd(opt_attributes, optgroup, true, attributes) && ret;
- }
- }
- if (!attributes.ma) {
- opt_attributes = attributes.currentTarget = item;
- ret = self.Dd(opt_attributes, optgroup, true, attributes) && ret;
- if (!attributes.ma) {
- ret = self.Dd(opt_attributes, optgroup, false, attributes) && ret;
- }
- }
- if (codeSegments) {
- /** @type {number} */
- i = 0;
- for (;!attributes.ma && i < codeSegments.length;i++) {
- opt_attributes = attributes.currentTarget = codeSegments[i];
- ret = self.Dd(opt_attributes, optgroup, false, attributes) && ret;
- }
- }
- return ret;
- };
- /**
- * @return {undefined}
- */
- self.h.Ha = function() {
- self.Fd.Ba.Ha.call(this);
- this.removeAllListeners();
- /** @type {null} */
- this.LP = null;
- };
- /**
- * @param {?} target
- * @param {Array} type
- * @param {Function} f
- * @param {Array} selector
- * @return {?}
- */
- self.h.listen = function(target, type, f, selector) {
- return this.hj.add(String(target), type, false, f, selector);
- };
- /**
- * @param {?} target
- * @param {Object} listener
- * @param {boolean} handler
- * @param {Array} opt_capt
- * @return {?}
- */
- self.h.unlisten = function(target, listener, handler, opt_capt) {
- return this.hj.remove(String(target), listener, handler, opt_capt);
- };
- /**
- * @param {Object} type
- * @return {?}
- */
- self.h.removeAllListeners = function(type) {
- return this.hj ? this.hj.removeAll(type) : 0;
- };
- /**
- * @param {?} opt_attributes
- * @param {Object} name
- * @param {(boolean|number|string)} attributes
- * @param {?} id
- * @return {?}
- */
- self.Dd = function(opt_attributes, name, attributes, id) {
- name = opt_attributes.hj.Ad[String(name)];
- if (!name) {
- return true;
- }
- name = name.concat();
- /** @type {boolean} */
- var rv = true;
- /** @type {number} */
- var i = 0;
- for (;i < name.length;++i) {
- var self = name[i];
- if (self && (!self.removed && self.Ns == attributes)) {
- var callback = self.listener;
- var T = self.ay || self.src;
- if (self.fw) {
- connect(opt_attributes.hj, self);
- }
- /** @type {boolean} */
- rv = false !== callback.call(T, id) && rv;
- }
- }
- return rv && 0 != id.tN;
- };
- /**
- * @param {string} opt_message
- * @param {?} deepDataAndEvents
- * @return {?}
- */
- self.Fd.prototype.ox = function(opt_message, deepDataAndEvents) {
- return this.hj.ox(String(opt_message), deepDataAndEvents);
- };
- var debug;
- var agree;
- /**
- * @param {?} state
- * @return {?}
- */
- self.Xb = function(state) {
- return function() {
- return state;
- };
- };
- self.Yb = self.Xb(false);
- self.Zb = self.Xb(true);
- self.Paa = self.Xb(null);
- /**
- * @param {?} fn
- * @return {?}
- */
- self.$b = function(fn) {
- return fn;
- };
- /**
- * @param {string} message
- * @return {?}
- */
- debug = function(message) {
- return function() {
- throw Error(message);
- };
- };
- /**
- * @param {Function} matcherFunction
- * @return {?}
- */
- self.oka = function(matcherFunction) {
- var start;
- /** @type {number} */
- start = start || 0;
- return function() {
- return matcherFunction.apply(this, Array.prototype.slice.call(arguments, 0, start));
- };
- };
- /**
- * @param {?} dataAndEvents
- * @return {?}
- */
- self.ac = function(dataAndEvents) {
- /** @type {Arguments} */
- var functions = arguments;
- /** @type {number} */
- var length = functions.length;
- return function() {
- var returnValue;
- /** @type {number} */
- var i = 0;
- for (;i < length;i++) {
- returnValue = functions[i].apply(this, arguments);
- }
- return returnValue;
- };
- };
- /**
- * @return {?}
- */
- agree = function() {
- var matcherFunction = plural;
- return function() {
- return!matcherFunction.apply(this, arguments);
- };
- };
- /**
- * @param {Function} parent
- * @param {?} dataAndEvents
- * @return {?}
- */
- self.Cxa = function(parent, dataAndEvents) {
- /**
- * @return {undefined}
- */
- var child = function() {
- };
- child.prototype = parent.prototype;
- child = new child;
- parent.apply(child, Array.prototype.slice.call(arguments, 1));
- return child;
- };
- /**
- * @param {?} makeIterator
- * @return {?}
- */
- self.bc = function(makeIterator) {
- /** @type {boolean} */
- var b = false;
- var callback;
- return function() {
- if (!b) {
- callback = makeIterator();
- /** @type {boolean} */
- b = true;
- }
- return callback;
- };
- };
- var compact;
- /**
- * @param {?} attributes
- * @return {?}
- */
- self.Gd = function(attributes) {
- var serializer = compact;
- return function() {
- var cache = this || self.ca;
- cache = cache.closure_memoize_cache_ || (cache.closure_memoize_cache_ = {});
- var key = serializer(self.ra(attributes), arguments);
- return cache.hasOwnProperty(key) ? cache[key] : cache[key] = attributes.apply(this, arguments);
- };
- };
- /**
- * @param {?} ref
- * @param {Object} array
- * @return {?}
- */
- compact = function(ref, array) {
- /** @type {Array} */
- var ascii = [ref];
- /** @type {number} */
- var i = array.length - 1;
- for (;0 <= i;--i) {
- ascii.push(typeof array[i], array[i]);
- }
- return ascii.join("\x0B");
- };
- /**
- * @param {(RegExp|string)} dx
- * @return {undefined}
- */
- var s = function(dx) {
- self.Fd.call(this);
- this.$d = dx || self.wc();
- if (this.ot = this.Tia()) {
- this.$ = self.C(this.$d.pb, this.ot, (0, self.p)(this.ia, this));
- }
- };
- self.r(s, self.Fd);
- self.h = s.prototype;
- self.h.Tia = self.Gd(function() {
- var any = this.isSupported();
- /** @type {boolean} */
- var whitespace = "hidden" != this.PB();
- return any ? whitespace ? ((self.nd() || "") + "visibilitychange").toLowerCase() : "visibilitychange" : null;
- });
- self.h.PB = self.Gd(function() {
- return inspect("hidden", this.$d.pb);
- });
- self.h.ija = self.Gd(function() {
- return inspect("visibilityState", this.$d.pb);
- });
- /**
- * @return {?}
- */
- self.h.isSupported = function() {
- return!!this.PB();
- };
- /**
- * @return {?}
- */
- self.h.Ou = function() {
- return!!this.$d.pb[this.PB()];
- };
- /**
- * @param {Object} dataAndEvents
- * @return {?}
- */
- self.Mba = function(dataAndEvents) {
- return dataAndEvents.isSupported() ? dataAndEvents.$d.pb[dataAndEvents.ija()] : null;
- };
- /**
- * @return {undefined}
- */
- s.prototype.ia = function() {
- self.Mba(this);
- var type = new initial(this.Ou());
- this.dispatchEvent(type);
- };
- /**
- * @return {undefined}
- */
- s.prototype.Ha = function() {
- self.Cd(this.$);
- s.Ba.Ha.call(this);
- };
- /**
- * @param {boolean} array
- * @return {undefined}
- */
- var initial = function(array) {
- self.pd.call(this, "visibilitychange");
- /** @type {boolean} */
- this.hidden = array;
- };
- self.r(initial, self.pd);
- /**
- * @param {?} opt_attributes
- * @param {?} right
- * @param {number} bottom
- * @param {?} left
- * @return {undefined}
- */
- self.Jd = function(opt_attributes, right, bottom, left) {
- this.top = opt_attributes;
- this.right = right;
- /** @type {number} */
- this.bottom = bottom;
- this.left = left;
- };
- self.h = self.Jd.prototype;
- /**
- * @return {?}
- */
- self.h.Ab = function() {
- return this.right - this.left;
- };
- /**
- * @return {?}
- */
- self.h.ub = function() {
- return this.bottom - this.top;
- };
- /**
- * @return {?}
- */
- self.h.clone = function() {
- return new self.Jd(this.top, this.right, this.bottom, this.left);
- };
- /**
- * @param {Object} region
- * @return {?}
- */
- self.h.contains = function(region) {
- return this && region ? region instanceof self.Jd ? region.left >= this.left && (region.right <= this.right && (region.top >= this.top && region.bottom <= this.bottom)) : region.x >= this.left && (region.x <= this.right && (region.y >= this.top && region.y <= this.bottom)) : false;
- };
- /**
- * @return {?}
- */
- self.h.ceil = function() {
- /** @type {number} */
- this.top = Math.ceil(this.top);
- /** @type {number} */
- this.right = Math.ceil(this.right);
- /** @type {number} */
- this.bottom = Math.ceil(this.bottom);
- /** @type {number} */
- this.left = Math.ceil(this.left);
- return this;
- };
- /**
- * @return {?}
- */
- self.h.floor = function() {
- /** @type {number} */
- this.top = Math.floor(this.top);
- /** @type {number} */
- this.right = Math.floor(this.right);
- /** @type {number} */
- this.bottom = Math.floor(this.bottom);
- /** @type {number} */
- this.left = Math.floor(this.left);
- return this;
- };
- /**
- * @return {?}
- */
- self.h.round = function() {
- /** @type {number} */
- this.top = Math.round(this.top);
- /** @type {number} */
- this.right = Math.round(this.right);
- /** @type {number} */
- this.bottom = Math.round(this.bottom);
- /** @type {number} */
- this.left = Math.round(this.left);
- return this;
- };
- /**
- * @param {?} tx
- * @param {?} t
- * @return {?}
- */
- self.h.translate = function(tx, t) {
- if (tx instanceof self.dc) {
- this.left += tx.x;
- this.right += tx.x;
- this.top += tx.y;
- this.bottom += tx.y;
- } else {
- this.left += tx;
- this.right += tx;
- if (self.oa(t)) {
- this.top += t;
- this.bottom += t;
- }
- }
- return this;
- };
- /**
- * @param {?} sx
- * @param {?} opt_sy
- * @return {?}
- */
- self.h.scale = function(sx, opt_sy) {
- var sy = self.oa(opt_sy) ? opt_sy : sx;
- this.left *= sx;
- this.right *= sx;
- this.top *= sy;
- this.bottom *= sy;
- return this;
- };
- /**
- * @param {boolean} recurring
- * @param {?} top
- * @param {?} pixelWidth
- * @param {?} pixelHeight
- * @return {undefined}
- */
- self.Kd = function(recurring, top, pixelWidth, pixelHeight) {
- /** @type {boolean} */
- this.left = recurring;
- this.top = top;
- this.width = pixelWidth;
- this.height = pixelHeight;
- };
- /**
- * @return {?}
- */
- self.Kd.prototype.clone = function() {
- return new self.Kd(this.left, this.top, this.width, this.height);
- };
- /**
- * @param {?} itemBounds
- * @return {?}
- */
- self.Ld = function(itemBounds) {
- return new self.Jd(itemBounds.top, itemBounds.left + itemBounds.width, itemBounds.top + itemBounds.height, itemBounds.left);
- };
- /**
- * @param {Object} target
- * @return {?}
- */
- self.Kd.prototype.contains = function(target) {
- return target instanceof self.Kd ? this.left <= target.left && (this.left + this.width >= target.left + target.width && (this.top <= target.top && this.top + this.height >= target.top + target.height)) : target.x >= this.left && (target.x <= this.left + this.width && (target.y >= this.top && target.y <= this.top + this.height));
- };
- /**
- * @param {?} box
- * @param {Object} coord
- * @return {?}
- */
- var getBounds = function(box, coord) {
- /** @type {number} */
- var z0 = coord.x < box.left ? box.left - coord.x : Math.max(coord.x - (box.left + box.width), 0);
- /** @type {number} */
- var z1 = coord.y < box.top ? box.top - coord.y : Math.max(coord.y - (box.top + box.height), 0);
- return z0 * z0 + z1 * z1;
- };
- /**
- * @param {Object} y
- * @return {?}
- */
- self.Kd.prototype.distance = function(y) {
- return Math.sqrt(getBounds(this, y));
- };
- /**
- * @return {?}
- */
- self.Kd.prototype.Ie = function() {
- return new self.ec(this.width, this.height);
- };
- /**
- * @param {?} item
- * @return {?}
- */
- self.yda = function(item) {
- return new self.dc(item.left, item.top);
- };
- self.h = self.Kd.prototype;
- /**
- * @return {?}
- */
- self.h.getCenter = function() {
- return new self.dc(this.left + this.width / 2, this.top + this.height / 2);
- };
- /**
- * @return {?}
- */
- self.h.ceil = function() {
- /** @type {number} */
- this.left = Math.ceil(this.left);
- /** @type {number} */
- this.top = Math.ceil(this.top);
- /** @type {number} */
- this.width = Math.ceil(this.width);
- /** @type {number} */
- this.height = Math.ceil(this.height);
- return this;
- };
- /**
- * @return {?}
- */
- self.h.floor = function() {
- /** @type {number} */
- this.left = Math.floor(this.left);
- /** @type {number} */
- this.top = Math.floor(this.top);
- /** @type {number} */
- this.width = Math.floor(this.width);
- /** @type {number} */
- this.height = Math.floor(this.height);
- return this;
- };
- /**
- * @return {?}
- */
- self.h.round = function() {
- /** @type {number} */
- this.left = Math.round(this.left);
- /** @type {number} */
- this.top = Math.round(this.top);
- /** @type {number} */
- this.width = Math.round(this.width);
- /** @type {number} */
- this.height = Math.round(this.height);
- return this;
- };
- /**
- * @param {?} tx
- * @param {?} t
- * @return {?}
- */
- self.h.translate = function(tx, t) {
- if (tx instanceof self.dc) {
- this.left += tx.x;
- this.top += tx.y;
- } else {
- this.left += tx;
- if (self.oa(t)) {
- this.top += t;
- }
- }
- return this;
- };
- /**
- * @param {?} sx
- * @param {?} opt_sy
- * @return {?}
- */
- self.h.scale = function(sx, opt_sy) {
- var sy = self.oa(opt_sy) ? opt_sy : sx;
- this.left *= sx;
- this.width *= sx;
- this.top *= sy;
- this.height *= sy;
- return this;
- };
- var results;
- var getComputedStyle;
- var getOffset;
- var px;
- var rect;
- var property;
- var computedStyle;
- var setShortStyleProperty;
- var wellKnownWords;
- var getPixelValue;
- /**
- * @param {Element} node
- * @param {?} attributes
- * @param {Element} element
- * @return {undefined}
- */
- self.D = function(node, attributes, element) {
- if (self.ma(attributes)) {
- if (attributes = getComputedStyle(node, attributes)) {
- /** @type {Element} */
- node.style[attributes] = element;
- }
- } else {
- var name;
- for (name in attributes) {
- /** @type {Element} */
- element = node;
- var value = attributes[name];
- var s = getComputedStyle(element, name);
- if (s) {
- element.style[s] = value;
- }
- }
- }
- };
- results = {};
- /**
- * @param {Element} element
- * @param {?} property
- * @return {?}
- */
- getComputedStyle = function(element, property) {
- var result = results[property];
- if (!result) {
- var prop = self.Ra(property);
- result = prop;
- if (void 0 === element.style[prop]) {
- prop = self.nd() + self.Ta(prop);
- if (void 0 !== element.style[prop]) {
- result = prop;
- }
- }
- results[property] = result;
- }
- return result;
- };
- /**
- * @param {Element} element
- * @param {?} property
- * @return {?}
- */
- self.Md = function(element, property) {
- var actual = element.style[self.Ra(property)];
- return "undefined" !== typeof actual ? actual : element.style[getComputedStyle(element, property)] || "";
- };
- /**
- * @param {?} opt_attributes
- * @param {Object} name
- * @return {?}
- */
- self.Nd = function(opt_attributes, name) {
- var s = self.vc(opt_attributes);
- return s.defaultView && (s.defaultView.getComputedStyle && (s = s.defaultView.getComputedStyle(opt_attributes, null))) ? s[name] || (s.getPropertyValue(name) || "") : "";
- };
- /**
- * @param {?} attributes
- * @param {Object} optgroup
- * @return {?}
- */
- self.Od = function(attributes, optgroup) {
- return self.Nd(attributes, optgroup) || ((attributes.currentStyle ? attributes.currentStyle[optgroup] : null) || attributes.style && attributes.style[optgroup]);
- };
- /**
- * @param {?} attr
- * @return {?}
- */
- self.Pd = function(attr) {
- return self.Od(attr, "position");
- };
- /**
- * @param {string} object
- * @return {?}
- */
- self.Rba = function(object) {
- var property;
- a: {
- property = self.Ra("transform");
- if (void 0 === object.style[property] && (property = self.nd() + self.Ta(property), void 0 !== object.style[property])) {
- property = self.od() + "-transform";
- break a;
- }
- /** @type {string} */
- property = "transform";
- }
- return self.Od(object, property) || self.Od(object, "transform");
- };
- /**
- * @param {Element} el
- * @param {?} y
- * @param {?} opt_arg2
- * @return {undefined}
- */
- self.Rd = function(el, y, opt_arg2) {
- var pos;
- if (y instanceof self.dc) {
- pos = y.x;
- y = y.y;
- } else {
- pos = y;
- y = opt_arg2;
- }
- el.style.left = px(pos, false);
- el.style.top = px(y, false);
- };
- /**
- * @param {Element} item
- * @return {?}
- */
- self.Sd = function(item) {
- return new self.dc(item.offsetLeft, item.offsetTop);
- };
- /**
- * @param {Object} e
- * @return {?}
- */
- self.Td = function(e) {
- e = e ? self.vc(e) : window.document;
- return!self.Aa || (9 <= self.Jaa || self.jd(self.wc(e))) ? e.documentElement : e.body;
- };
- /**
- * @param {Object} e
- * @return {?}
- */
- self.ti = function(e) {
- var b = e.body;
- e = e.documentElement;
- return new self.dc(b.scrollLeft || e.scrollLeft, b.scrollTop || e.scrollTop);
- };
- /**
- * @param {Object} d
- * @return {?}
- */
- getOffset = function(d) {
- var offset;
- try {
- offset = d.getBoundingClientRect();
- } catch (c) {
- return{
- left : 0,
- top : 0,
- right : 0,
- bottom : 0
- };
- }
- if (self.Aa) {
- if (d.ownerDocument.body) {
- d = d.ownerDocument;
- offset.left -= d.documentElement.clientLeft + d.body.clientLeft;
- offset.top -= d.documentElement.clientTop + d.body.clientTop;
- }
- }
- return offset;
- };
- /**
- * @param {Object} parent
- * @return {?}
- */
- self.Tba = function(parent) {
- if (self.Aa && !(8 <= self.Jaa)) {
- return parent.offsetParent;
- }
- var doc = self.vc(parent);
- var position = self.Od(parent, "position");
- /** @type {boolean} */
- var skipStatic = "fixed" == position || "absolute" == position;
- parent = parent.parentNode;
- for (;parent && parent != doc;parent = parent.parentNode) {
- if (11 == parent.nodeType && (parent.host && (parent = parent.host)), position = self.Od(parent, "position"), skipStatic = skipStatic && ("static" == position && (parent != doc.documentElement && parent != doc.body)), !skipStatic && (parent.scrollWidth > parent.clientWidth || (parent.scrollHeight > parent.clientHeight || ("fixed" == position || ("absolute" == position || "relative" == position))))) {
- return parent;
- }
- }
- return null;
- };
- /**
- * @param {?} opt_attributes
- * @return {?}
- */
- self.Hk = function(opt_attributes) {
- var visibleRect = new self.Jd(0, window.Infinity, window.Infinity, 0);
- var node = self.wc(opt_attributes);
- var scrollX = node.pb.body;
- var de = node.pb.documentElement;
- var scrollY = self.ld(node);
- for (;opt_attributes = self.Tba(opt_attributes);) {
- if (!(self.Aa && 0 == opt_attributes.clientWidth || self.Pb && (0 == opt_attributes.clientHeight && opt_attributes == scrollX)) && (opt_attributes != scrollX && (opt_attributes != de && "visible" != self.Od(opt_attributes, "overflow")))) {
- var pos = self.Ud(opt_attributes);
- var client = new self.dc(opt_attributes.clientLeft, opt_attributes.clientTop);
- pos.x += client.x;
- pos.y += client.y;
- /** @type {number} */
- visibleRect.top = Math.max(visibleRect.top, pos.y);
- /** @type {number} */
- visibleRect.right = Math.min(visibleRect.right, pos.x + opt_attributes.clientWidth);
- /** @type {number} */
- visibleRect.bottom = Math.min(visibleRect.bottom, pos.y + opt_attributes.clientHeight);
- /** @type {number} */
- visibleRect.left = Math.max(visibleRect.left, pos.x);
- }
- }
- scrollX = scrollY.scrollLeft;
- scrollY = scrollY.scrollTop;
- /** @type {number} */
- visibleRect.left = Math.max(visibleRect.left, scrollX);
- /** @type {number} */
- visibleRect.top = Math.max(visibleRect.top, scrollY);
- node = self.Cc(self.Lb(node));
- /** @type {number} */
- visibleRect.right = Math.min(visibleRect.right, scrollX + node.width);
- /** @type {number} */
- visibleRect.bottom = Math.min(visibleRect.bottom, scrollY + node.height);
- return 0 <= visibleRect.top && (0 <= visibleRect.left && (visibleRect.bottom > visibleRect.top && visibleRect.right > visibleRect.left)) ? visibleRect : null;
- };
- /**
- * @param {?} v
- * @return {?}
- */
- self.Ud = function(v) {
- var position = self.vc(v);
- var offsetCoordinate = new self.dc(0, 0);
- var val = self.Td(position);
- if (v == val) {
- return offsetCoordinate;
- }
- v = getOffset(v);
- position = self.md(self.wc(position));
- offsetCoordinate.x = v.left + position.x;
- offsetCoordinate.y = v.top + position.y;
- return offsetCoordinate;
- };
- /**
- * @param {?} part
- * @return {?}
- */
- self.Vd = function(part) {
- return self.Ud(part).x;
- };
- /**
- * @param {?} arg
- * @return {?}
- */
- self.Wd = function(arg) {
- return self.Ud(arg).y;
- };
- /**
- * @param {Object} a
- * @param {Object} b
- * @return {?}
- */
- self.Yd = function(a, b) {
- var ap = self.Xd(a);
- var bp = self.Xd(b);
- return new self.dc(ap.x - bp.x, ap.y - bp.y);
- };
- /**
- * @param {Object} elm
- * @return {?}
- */
- self.Uba = function(elm) {
- elm = getOffset(elm);
- return new self.dc(elm.left, elm.top);
- };
- /**
- * @param {Object} e
- * @return {?}
- */
- self.Xd = function(e) {
- if (1 == e.nodeType) {
- return self.Uba(e);
- }
- e = e.changedTouches ? e.changedTouches[0] : e;
- return new self.dc(e.clientX, e.clientY);
- };
- /**
- * @param {Array} bytes
- * @param {Object} w
- * @param {(Object|string)} h
- * @return {undefined}
- */
- self.be = function(bytes, w, h) {
- if (w instanceof self.ec) {
- h = w.height;
- w = w.width;
- } else {
- if (void 0 == h) {
- throw Error("e");
- }
- }
- self.$d(bytes, w);
- self.ae(bytes, h);
- };
- /**
- * @param {(number|string)} value
- * @param {boolean} recurring
- * @return {?}
- */
- px = function(value, recurring) {
- if ("number" == typeof value) {
- /** @type {string} */
- value = (recurring ? Math.round(value) : value) + "px";
- }
- return value;
- };
- /**
- * @param {Array} n
- * @param {string} height
- * @return {undefined}
- */
- self.ae = function(n, height) {
- n.style.height = px(height, true);
- };
- /**
- * @param {Array} buffer
- * @param {string} width
- * @return {undefined}
- */
- self.$d = function(buffer, width) {
- buffer.style.width = px(width, true);
- };
- /**
- * @param {string} obj
- * @return {?}
- */
- self.ce = function(obj) {
- var getActual = rect;
- if ("none" != self.Od(obj, "display")) {
- return getActual(obj);
- }
- var style = obj.style;
- var originalDisplay = style.display;
- var originalVisibility = style.visibility;
- var originalPosition = style.position;
- /** @type {string} */
- style.visibility = "hidden";
- /** @type {string} */
- style.position = "absolute";
- /** @type {string} */
- style.display = "inline";
- obj = getActual(obj);
- style.display = originalDisplay;
- style.position = originalPosition;
- style.visibility = originalVisibility;
- return obj;
- };
- /**
- * @param {Object} box
- * @return {?}
- */
- rect = function(box) {
- var width = box.offsetWidth;
- var height = box.offsetHeight;
- var d = self.Pb && (!width && !height);
- return self.Uf(width) && !d || !box.getBoundingClientRect ? new self.ec(width, height) : (box = getOffset(box), new self.ec(box.right - box.left, box.bottom - box.top));
- };
- /**
- * @param {Object} css
- * @return {?}
- */
- self.ee = function(css) {
- var m = self.Ud(css);
- css = self.ce(css);
- return new self.Kd(m.x, m.y, css.width, css.height);
- };
- /**
- * @param {Element} el
- * @param {number} value
- * @return {undefined}
- */
- self.fe = function(el, value) {
- var style = el.style;
- if ("opacity" in style) {
- /** @type {number} */
- style.opacity = value;
- } else {
- if ("MozOpacity" in style) {
- /** @type {number} */
- style.MozOpacity = value;
- } else {
- if ("filter" in style) {
- /** @type {string} */
- style.filter = "" === value ? "" : "alpha(opacity=" + 100 * value + ")";
- }
- }
- }
- };
- /**
- * @param {Element} d
- * @param {boolean} b
- * @return {undefined}
- */
- self.E = function(d, b) {
- /** @type {string} */
- d.style.display = b ? "" : "none";
- };
- /**
- * @param {?} obj
- * @return {?}
- */
- self.ge = function(obj) {
- return "none" != obj.style.display;
- };
- /**
- * @param {?} funcToCall
- * @param {?} i
- * @return {undefined}
- */
- self.he = function(funcToCall, i) {
- var target = self.wc(i);
- /** @type {null} */
- var m = null;
- var item = target.pb;
- if (self.Aa && item.createStyleSheet) {
- m = item.createStyleSheet();
- self.Wba(m, funcToCall);
- } else {
- item = self.zc(target.pb, "HEAD", void 0, void 0)[0];
- if (!item) {
- m = self.zc(target.pb, "BODY", void 0, void 0)[0];
- item = target.$("HEAD");
- m.parentNode.insertBefore(item, m);
- }
- m = target.$("STYLE");
- self.Wba(m, funcToCall);
- target.appendChild(item, m);
- }
- };
- /**
- * @param {Object} e
- * @param {?} code
- * @return {undefined}
- */
- self.Wba = function(e, code) {
- if (self.Aa && self.Uf(e.cssText)) {
- e.cssText = code;
- } else {
- e.innerHTML = code;
- }
- };
- /**
- * @param {?} attributes
- * @return {?}
- */
- self.ie = function(attributes) {
- return "rtl" == self.Od(attributes, "direction");
- };
- /** @type {(null|string)} */
- property = self.Ob ? "MozUserSelect" : self.Pb ? "WebkitUserSelect" : null;
- /**
- * @param {Node} el
- * @param {boolean} value
- * @param {boolean} elements
- * @return {undefined}
- */
- self.ke = function(el, value, elements) {
- elements = elements ? null : el.getElementsByTagName("*");
- if (property) {
- if (value = value ? "none" : "", el.style && (el.style[property] = value), elements) {
- /** @type {number} */
- el = 0;
- var element;
- for (;element = elements[el];el++) {
- if (element.style) {
- /** @type {boolean} */
- element.style[property] = value;
- }
- }
- }
- } else {
- if (self.Aa || self.Mb) {
- if (value = value ? "on" : "", el.setAttribute("unselectable", value), elements) {
- /** @type {number} */
- el = 0;
- for (;element = elements[el];el++) {
- element.setAttribute("unselectable", value);
- }
- }
- }
- }
- };
- /**
- * @param {Object} item
- * @return {?}
- */
- self.Yba = function(item) {
- return new self.ec(item.offsetWidth, item.offsetHeight);
- };
- /**
- * @param {Object} a
- * @return {?}
- */
- self.oe = function(a) {
- var value = self.vc(a);
- var b = self.Aa && a.currentStyle;
- if (b && (self.jd(self.wc(value)) && ("auto" != b.width && ("auto" != b.height && !b.boxSizing)))) {
- return value = self.le(a, b.width, "width", "pixelWidth"), a = self.le(a, b.height, "height", "pixelHeight"), new self.ec(value, a);
- }
- b = self.Yba(a);
- value = self.me(a);
- a = self.ne(a);
- return new self.ec(b.width - a.left - value.left - value.right - a.right, b.height - a.top - value.top - value.bottom - a.bottom);
- };
- /**
- * @param {Element} element
- * @param {(number|string)} value
- * @param {string} name
- * @param {string} pixelName
- * @return {?}
- */
- self.le = function(element, value, name, pixelName) {
- if (/^\d+px?$/.test(value)) {
- return(0, window.parseInt)(value, 10);
- }
- var old = element.style[name];
- var ref = element.runtimeStyle[name];
- element.runtimeStyle[name] = element.currentStyle[name];
- /** @type {(number|string)} */
- element.style[name] = value;
- value = element.style[pixelName];
- element.style[name] = old;
- element.runtimeStyle[name] = ref;
- return value;
- };
- /**
- * @param {Element} element
- * @param {string} style
- * @return {?}
- */
- computedStyle = function(element, style) {
- var value = element.currentStyle ? element.currentStyle[style] : null;
- return value ? self.le(element, value, "left", "pixelLeft") : 0;
- };
- /**
- * @param {?} attributes
- * @param {string} property
- * @return {?}
- */
- setShortStyleProperty = function(attributes, property) {
- if (self.Aa) {
- var primaryKey = computedStyle(attributes, property + "Left");
- var events = computedStyle(attributes, property + "Right");
- var values = computedStyle(attributes, property + "Top");
- var entity = computedStyle(attributes, property + "Bottom");
- return new self.Jd(values, events, entity, primaryKey);
- }
- primaryKey = self.Nd(attributes, property + "Left");
- events = self.Nd(attributes, property + "Right");
- values = self.Nd(attributes, property + "Top");
- entity = self.Nd(attributes, property + "Bottom");
- return new self.Jd((0, window.parseFloat)(values), (0, window.parseFloat)(events), (0, window.parseFloat)(entity), (0, window.parseFloat)(primaryKey));
- };
- /**
- * @param {string} v02
- * @return {?}
- */
- self.me = function(v02) {
- return setShortStyleProperty(v02, "padding");
- };
- /**
- * @param {string} opt_attributes
- * @return {?}
- */
- self.qe = function(opt_attributes) {
- return setShortStyleProperty(opt_attributes, "margin");
- };
- wellKnownWords = {
- thin : 2,
- medium : 4,
- thick : 6
- };
- /**
- * @param {Element} span
- * @param {string} prop
- * @return {?}
- */
- getPixelValue = function(span, prop) {
- if ("none" == (span.currentStyle ? span.currentStyle[prop + "Style"] : null)) {
- return 0;
- }
- var w = span.currentStyle ? span.currentStyle[prop + "Width"] : null;
- return w in wellKnownWords ? wellKnownWords[w] : self.le(span, w, "left", "pixelLeft");
- };
- /**
- * @param {?} attributes
- * @return {?}
- */
- self.ne = function(attributes) {
- if (self.Aa && !(9 <= self.Jaa)) {
- var primaryKey = getPixelValue(attributes, "borderLeft");
- var events = getPixelValue(attributes, "borderRight");
- var top = getPixelValue(attributes, "borderTop");
- attributes = getPixelValue(attributes, "borderBottom");
- return new self.Jd(top, events, attributes, primaryKey);
- }
- primaryKey = self.Nd(attributes, "borderLeftWidth");
- events = self.Nd(attributes, "borderRightWidth");
- top = self.Nd(attributes, "borderTopWidth");
- attributes = self.Nd(attributes, "borderBottomWidth");
- return new self.Jd((0, window.parseFloat)(top), (0, window.parseFloat)(events), (0, window.parseFloat)(attributes), (0, window.parseFloat)(primaryKey));
- };
- var directiveRe;
- /** @type {RegExp} */
- directiveRe = /^(\w+)?(?:\.(.+))?$/;
- self.se = self.Xb(new s);
- /**
- * @param {?} s
- * @return {?}
- */
- self.te = function(s) {
- return(self.x("xjsc") || window.document.body).appendChild(s);
- };
- /**
- * @param {string} str
- * @param {number} text
- * @return {?}
- */
- self.ue = function(str, text) {
- var matches = str.match(directiveRe);
- var li = window.document.createElement(matches[1]);
- if (matches[2]) {
- li.className = matches[2];
- }
- if (text) {
- /** @type {number} */
- li.innerHTML = text;
- }
- return li;
- };
- /**
- * @param {Object} obj
- * @param {string} sx
- * @return {undefined}
- */
- self.ve = function(obj, sx) {
- /** @type {number} */
- var i = 1;
- for (;i < arguments.length;i += 2) {
- var name = arguments[i];
- var value = arguments[i + 1];
- var style = obj.style;
- if (style && name in style) {
- style[name] = value;
- } else {
- if (name in obj) {
- obj[name] = value;
- } else {
- if (self.Cb()) {
- if (style) {
- if ("opacity" == name) {
- /** @type {number} */
- obj.zoom = 1;
- name = (style.filter || "").replace(/alpha\([^)]*\)/, "");
- if (!(0, window.isNaN)((0, window.parseFloat)(value))) {
- name += "alpha(opacity=" + 100 * value + ")";
- }
- style.filter = name;
- }
- }
- }
- }
- }
- }
- };
- /**
- * @param {?} key
- * @param {number} dataAndEvents
- * @return {undefined}
- */
- self.we = function(key, dataAndEvents) {
- var st = self.Wd(key);
- if (0 <= st) {
- window.scrollTo(0, st + (dataAndEvents || 0));
- }
- };
- /**
- * @param {number} n
- * @param {number} funcToCall
- * @param {number} millis
- * @param {Function} deepDataAndEvents
- * @param {number} v02
- * @param {Object} e
- * @return {undefined}
- */
- self.xe = function(n, funcToCall, millis, deepDataAndEvents, v02, e) {
- var j = e ? e.scrollTop : window.pageYOffset;
- if (!(0 > n)) {
- n += funcToCall || 0;
- var imgWidth = millis || 200;
- var quietMillis = v02 || 25;
- var attachEvent = deepDataAndEvents || function(value) {
- return value;
- };
- /** @type {number} */
- var ratioSrc = imgWidth / quietMillis;
- var boxMargin = (0, self.q)();
- /**
- * @param {number} dataAndEvents
- * @return {?}
- */
- var bind = function(dataAndEvents) {
- return function() {
- if (!(dataAndEvents > ratioSrc)) {
- var udataCur = (0, self.q)();
- /** @type {number} */
- udataCur = Math.min((udataCur - boxMargin) / imgWidth, 1);
- var val = j + (n - j) * attachEvent(udataCur);
- if (e) {
- e.scrollTop = val;
- } else {
- window.scrollTo(0, val);
- }
- if (1 > udataCur) {
- window.setTimeout(bind(dataAndEvents + 1), quietMillis);
- }
- }
- };
- };
- window.setTimeout(bind(1), quietMillis);
- }
- };
- var auto;
- var cca;
- var out;
- var seal;
- var abort;
- var func;
- var parseInt;
- var markup;
- var eval;
- /** @type {number} */
- auto = 0;
- /** @type {number} */
- cca = 0;
- /** @type {Array} */
- out = [];
- /**
- * @param {?} object
- * @return {?}
- */
- seal = function(object) {
- return object;
- };
- /**
- * @param {number} opt_attributes
- * @param {Object} res
- * @param {Function} dataAndEvents
- * @return {?}
- */
- self.Ae = function(opt_attributes, res, dataAndEvents) {
- /** @type {number} */
- var resLength = 0;
- var r;
- for (;r = res[resLength++];) {
- /** @type {boolean} */
- var n = "string" == typeof r[2];
- if (n) {
- r[2] = markup(r[2]);
- r[3] = markup(r[3]);
- /** @type {string} */
- r[5] = "";
- } else {
- r[5] = null == r[5] ? "px" : r[5];
- }
- r[4] = r[4] || seal;
- /** @type {boolean} */
- r[6] = n;
- self.ve(r[0], r[1], n ? (0,eval)(r[2]) : r[2] + r[5]);
- }
- var copies = {
- Lw : opt_attributes,
- /** @type {Function} */
- Zd : dataAndEvents,
- W7 : (0, self.q)(),
- Vp : res
- };
- out.push(copies);
- auto = auto || window.setInterval(func, 15);
- return{
- /**
- * @return {undefined}
- */
- finish : function() {
- if (!copies.CB) {
- /** @type {boolean} */
- copies.CB = true;
- func();
- }
- }
- };
- };
- /**
- * @return {undefined}
- */
- abort = function() {
- if (!out.length) {
- window.clearInterval(auto);
- /** @type {number} */
- auto = 0;
- }
- };
- /**
- * @return {undefined}
- */
- func = function() {
- ++cca;
- /** @type {number} */
- var index = 0;
- var sprite;
- for (;sprite = out[index++];) {
- /** @type {number} */
- var frame = (0, self.q)() - sprite.W7;
- if (frame >= sprite.Lw || sprite.CB) {
- /** @type {number} */
- var i = 0;
- var r = void 0;
- for (;r = sprite.Vp[i++];) {
- self.ve(r[0], r[1], r[6] ? (0,eval)(r[3]) : r[3] + r[5]);
- }
- /** @type {boolean} */
- sprite.CB = true;
- if (sprite.Zd) {
- sprite.Zd();
- }
- /** @type {number} */
- sprite = 0;
- } else {
- /** @type {number} */
- i = 0;
- for (;r = sprite.Vp[i++];) {
- var dir = r[4](frame / sprite.Lw);
- var date;
- if (r[6]) {
- date = parseInt(r[2][0], r[3][0], dir, true);
- var t = parseInt(r[2][1], r[3][1], dir, true);
- dir = parseInt(r[2][2], r[3][2], dir, true);
- date = (0,eval)([date, t, dir]);
- } else {
- date = parseInt(r[2], r[3], dir, "px" == r[5]);
- }
- self.ve(r[0], r[1], date + r[5]);
- }
- /** @type {number} */
- sprite = 1;
- }
- if (!sprite) {
- out.splice(--index, 1);
- }
- }
- abort();
- };
- /**
- * @param {number} value
- * @param {number} radix
- * @param {number} base
- * @param {boolean} dataAndEvents
- * @return {?}
- */
- parseInt = function(value, radix, base, dataAndEvents) {
- value += (radix - value) * base;
- return dataAndEvents ? Math.round(value) : value;
- };
- /**
- * @param {(Array|string)} spec
- * @return {?}
- */
- markup = function(spec) {
- spec = spec.match(/#(..)(..)(..)/).slice(1);
- /** @type {number} */
- var i = 0;
- for (;3 > i;++i) {
- spec[i] = (0, window.parseInt)(spec[i], 16);
- }
- return spec;
- };
- /**
- * @param {Array} vals
- * @return {?}
- */
- eval = function(vals) {
- return "rgb(" + vals.join(",") + ")";
- };
- var attrFn;
- var min;
- var plural;
- /**
- * @param {Object} ev
- * @return {undefined}
- */
- self.ij = function(ev) {
- if (ev) {
- this.$ = self.pc(ev.$);
- this.ia = self.nb(ev.ia);
- } else {
- this.$ = {};
- /** @type {Array} */
- this.ia = [];
- }
- };
- attrFn = {
- ad : true,
- adsafe : true,
- adtest : true,
- "adtest-useragent" : true,
- as_author : true,
- as_drrb : true,
- as_dt : true,
- as_epq : true,
- as_eq : true,
- as_filetype : true,
- as_ft : true,
- as_maxd : true,
- as_maxm : true,
- as_mind : true,
- as_minm : true,
- as_nhi : true,
- as_nlo : true,
- as_nloc : true,
- as_nsrc : true,
- as_occt : true,
- as_oq : true,
- as_q : true,
- as_qdr : true,
- as_rights : true,
- as_scoring : true,
- as_sitesearch : true,
- as_st : true,
- authuser : true,
- c2coff : true,
- channel : true,
- chips : true,
- complete : true,
- cr : true,
- deb : true,
- domains : true,
- e : true,
- es_th : true,
- esrch : true,
- expflags : true,
- expid : true,
- expnd : true,
- fakeads : true,
- filter : true,
- fir : true,
- fiu : true,
- flav : true,
- fll : true,
- frcnw : true,
- fspn : true,
- fz : true,
- gfns : true,
- gl : true,
- gpc : true,
- hl : true,
- host : true,
- hotel_dates : true,
- hq : true,
- igu : true,
- imgcolor : true,
- imgil : true,
- imgrefurl : true,
- imgsz : true,
- imgtype : true,
- imgurl : true,
- inlang : true,
- interests : true,
- ix : true,
- kptab : true,
- lite : true,
- lnu : true,
- lr : true,
- lrfsid : true,
- lsf : true,
- ludocid : true,
- luref : true,
- lxcar : true,
- mergelabel : true,
- meta : true,
- mid : true,
- mrestrict : true,
- near : true,
- newwindow : true,
- nfpr : true,
- nirf : true,
- noj : true,
- nomo : true,
- nord : true,
- nota : true,
- num : true,
- og : true,
- ogdeb : true,
- oll : true,
- optd : true,
- opti : true,
- optq : true,
- opts : true,
- optt : true,
- ospn : true,
- oz : true,
- plugin : true,
- prds : true,
- prmd : true,
- psgn : true,
- pstick : true,
- pws : true,
- pwst : true,
- q : true,
- qf : true,
- qr : true,
- quantum : true,
- query : true,
- rct : true,
- restrict : true,
- rflfq : true,
- rlha : true,
- rlst : true,
- sab : true,
- safe : true,
- safeui : true,
- scoring : true,
- search : true,
- site_flavored : true,
- sitesearch : true,
- skip : true,
- source_ip : true,
- sout : true,
- sp : true,
- ssui : true,
- start : true,
- stick : true,
- surl : true,
- tbas : true,
- tbm : true,
- tbs : true,
- ttsm : true,
- uid : true,
- uideb : true,
- um : true,
- useragent : true,
- userid : true,
- uuld : true,
- uule : true
- };
- self.Dda = {
- ac : true,
- action : true,
- addh : true,
- affdom : true,
- agsad : true,
- aqs : true,
- bav : true,
- bih : true,
- biw : true,
- brd : true,
- bs : true,
- bvm : true,
- cad : true,
- cd : true,
- client : true,
- changed_loc : true,
- cp : true,
- ct : true,
- ctf : true,
- ctzn : true,
- dbl : true,
- ctxs : true,
- dc : true,
- devloc : true,
- dpr : true,
- dq : true,
- ds : true,
- ech : true,
- ei : true,
- entrypoint : true,
- es_nrs : true,
- es_sm : true,
- espv : true,
- fheit : true,
- fp : true,
- gbv : true,
- gc : true,
- gcc : true,
- gcs : true,
- gko_vi : true,
- gll : true,
- gm : true,
- gr : true,
- gs_id : true,
- gs_ivs : true,
- gs_l : true,
- gs_lp : true,
- gs_mss : true,
- gs_ri : true,
- gs_rn : true,
- gs_ssp : true,
- hs : true,
- hw : true,
- ie : true,
- ig : true,
- inm : true,
- ion : true,
- kapk : true,
- lei : true,
- lsft : true,
- luul : true,
- mapsl : true,
- muul : true,
- mvs : true,
- ndsp : true,
- norc : true,
- npsic : true,
- ntyp : true,
- oe : true,
- output : true,
- oq : true,
- padb : true,
- padt : true,
- pbx : true,
- pdl : true,
- pei : true,
- pf : true,
- pjf : true,
- pnp : true,
- pq : true,
- prmdo : true,
- prog : true,
- psi : true,
- psj : true,
- qsubts : true,
- rcid : true,
- redir : true,
- redir_esc : true,
- ref : true,
- resnum : true,
- revid : true,
- rf : true,
- rlakp : true,
- rllg : true,
- rls : true,
- rlz : true,
- sa : true,
- sboxchip : true,
- sclient : true,
- se : true,
- sert : true,
- sesinv : true,
- site : true,
- sla : true,
- sns : true,
- source : true,
- sourceid : true,
- spell : true,
- spknlang : true,
- sqi : true,
- sugexp : true,
- suggest : true,
- tab : true,
- tbo : true,
- tch : true,
- tel : true,
- tok : true,
- v : true,
- ved : true,
- wf : true,
- wrapid : true,
- xhr : true,
- zx : true
- };
- /**
- * @param {?} key
- * @return {?}
- */
- min = function(key) {
- return key in attrFn ? 0 : key in self.Dda ? 1 : 2;
- };
- /**
- * @param {?} n
- * @return {?}
- */
- plural = function(n) {
- switch(min(n)) {
- case 0:
- ;
- case 1:
- return true;
- default:
- return false;
- }
- };
- /**
- * @param {Function} value
- * @return {?}
- */
- self.Wb = function(value) {
- return self.Dia(value, self.Dda);
- };
- /**
- * @param {string} value
- * @return {?}
- */
- self.vh = function(value) {
- var pos = value.indexOf("#");
- var result;
- if (-1 != pos) {
- result = self.Cia(value.substr(pos + 1));
- value = value.substr(0, pos);
- } else {
- result = new self.ij;
- }
- pos = value.indexOf("?");
- pos = -1 == pos ? new self.ij : self.Cia(value.substr(pos + 1));
- return{
- state : self.Qf(result) ? result : self.$g(pos, self.Vf(result)),
- Rd : value
- };
- };
- /**
- * @param {Object} value
- * @param {string} search
- * @param {boolean} recurring
- * @return {?}
- */
- self.Xf = function(value, search, recurring) {
- return recurring ? search.replace(/#.*$/, "") + "#" + self.Eia(value) : search.replace(/\?.*$/, "") + "?" + self.Eia(value);
- };
- /**
- * @return {?}
- */
- self.ij.prototype.toString = function() {
- return self.Eia(this);
- };
- /**
- * @param {string} tests
- * @return {?}
- */
- self.Cia = function(tests) {
- var webshims = new self.ij;
- tests = tests.split("&");
- /** @type {number} */
- var x = 0;
- for (;x < tests.length;++x) {
- var parent = tests[x].split("=");
- var i = parent[0];
- parent = parent[1];
- if (i) {
- if (plural(i)) {
- if (!(i in webshims.$)) {
- webshims.ia.push(i);
- }
- }
- webshims.$[i] = self.Uf(parent) ? parent : null;
- }
- }
- return webshims;
- };
- /**
- * @param {string} name
- * @return {?}
- */
- self.ij.prototype.getParam = function(name) {
- return this.$[name] || "";
- };
- /**
- * @param {Object} value
- * @return {?}
- */
- self.Eia = function(value) {
- /** @type {Array} */
- var results = [];
- if (0 < value.ia.length) {
- results.push(self.Uh(value));
- }
- if (value = self.xga(value)) {
- results.push(value);
- }
- return results.join("&");
- };
- /**
- * @param {Function} actual
- * @return {?}
- */
- self.Uh = function(actual) {
- return(0, self.$a)(actual.ia, function(index) {
- var value = this.$[index];
- return null === value ? index : index + "=" + value;
- }, actual).join("&");
- };
- /**
- * @param {Object} v
- * @return {?}
- */
- self.xga = function(v) {
- var names = (0, self.Za)(self.lc(v.$), agree());
- names.sort();
- return(0, self.$a)(names, function(index) {
- var value = this.$[index];
- return null === value ? index : index + "=" + value;
- }, v).join("&");
- };
- /**
- * @param {Function} value
- * @param {?} opt_attributes
- * @param {boolean} remove
- * @return {?}
- */
- self.$g = function(value, opt_attributes, remove) {
- value = new self.ij(value);
- remove = remove ? self.Yb : function(opt_attributes) {
- return!opt_attributes;
- };
- var i;
- for (i in opt_attributes) {
- if (plural(i)) {
- if (remove(opt_attributes[i]) || i in value.$) {
- if (remove(opt_attributes[i])) {
- self.kb(value.ia, i);
- }
- } else {
- value.ia.push(i);
- }
- }
- if (remove(opt_attributes[i])) {
- delete value.$[i];
- } else {
- value.$[i] = opt_attributes[i];
- }
- }
- return value;
- };
- /**
- * @param {Function} arg
- * @param {?} attributes
- * @return {?}
- */
- self.Dia = function(arg, attributes) {
- var html = self.ka(attributes) ? self.tc(attributes) : attributes;
- return self.$g(arg, self.Ih(html, self.Xb("")));
- };
- /**
- * @param {Object} v
- * @return {?}
- */
- self.Xi = function(v) {
- return self.ic(v.$, function(dataAndEvents, i) {
- return plural(i);
- });
- };
- /**
- * @param {Object} v
- * @return {?}
- */
- self.Vf = function(v) {
- return self.ic(v.$, function(dataAndEvents, subKey) {
- return 2 == min(subKey);
- });
- };
- /**
- * @param {Object} value
- * @return {?}
- */
- self.Qf = function(value) {
- return 0 != value.ia.length;
- };
- /**
- * @param {Object} b
- * @return {?}
- */
- self.ij.prototype.equals = function(b) {
- return self.wga(this.$, b.$);
- };
- /**
- * @param {Function} value
- * @param {Function} event
- * @return {?}
- */
- self.ig = function(value, event) {
- var v = self.Wb(value);
- event = self.Wb(event);
- v = self.$g(v, {
- q : (0, window.decodeURIComponent)(v.getParam("q").replace(/\+/g, " ")).toLowerCase().trim()
- });
- var hello = event = self.$g(event, {
- q : (0, window.decodeURIComponent)(event.getParam("q").replace(/\+/g, " ")).toLowerCase().trim()
- });
- return self.wga(self.Xi(v), self.Xi(hello));
- };
- /**
- * @param {Object} expected
- * @return {?}
- */
- self.ij.prototype.compare = function(expected) {
- return Number(!this.equals(expected));
- };
- var MULTI_FLAG;
- var _t;
- var setAttributes;
- var freeze;
- var trimEndRegexp;
- /** @type {RegExp} */
- MULTI_FLAG = /^(?:([^:/?#.]+):)?(?:\/\/(?:([^/?#]*)@)?([^/#?]*?)(?::([0-9]+))?(?=[/#?]|$))?([^?#]+)?(?:\?([^#]*))?(?:#(.*))?$/;
- /**
- * @param {?} opt_attributes
- * @return {?}
- */
- self.Kf = function(opt_attributes) {
- if (_t) {
- /** @type {boolean} */
- _t = false;
- var a = self.ca.location;
- if (a) {
- var value = a.href;
- if (value && ((value = self.If(self.Jf(3, value))) && value != a.hostname)) {
- throw _t = true, Error();
- }
- }
- }
- return opt_attributes.match(MULTI_FLAG);
- };
- _t = self.Pb;
- /**
- * @param {?} body
- * @return {?}
- */
- self.If = function(body) {
- return body ? (0, window.decodeURI)(body) : body;
- };
- /**
- * @param {number} desiredNonCommentArgIndex
- * @param {?} attributes
- * @return {?}
- */
- self.Jf = function(desiredNonCommentArgIndex, attributes) {
- return self.Kf(attributes)[desiredNonCommentArgIndex] || null;
- };
- /**
- * @param {?} opt_attributes
- * @return {?}
- */
- self.Lf = function(opt_attributes) {
- return self.If(self.Jf(5, opt_attributes));
- };
- /**
- * @param {string} href
- * @return {?}
- */
- self.Wh = function(href) {
- var hashIndex = href.indexOf("#");
- return 0 > hashIndex ? null : href.substr(hashIndex + 1);
- };
- /**
- * @param {string} uri
- * @param {boolean} fragment
- * @return {?}
- */
- self.bra = function(uri, fragment) {
- return self.Wf(uri) + (fragment ? "#" + fragment : "");
- };
- /**
- * @param {string} s
- * @return {?}
- */
- self.Wf = function(s) {
- var tmp = s.indexOf("#");
- return 0 > tmp ? s : s.substr(0, tmp);
- };
- /**
- * @param {Array} buffer
- * @return {?}
- */
- self.Mf = function(buffer) {
- if (buffer[1]) {
- var baseUri = buffer[0];
- var hashIndex = baseUri.indexOf("#");
- if (0 <= hashIndex) {
- buffer.push(baseUri.substr(hashIndex));
- buffer[0] = baseUri = baseUri.substr(0, hashIndex);
- }
- hashIndex = baseUri.indexOf("?");
- if (0 > hashIndex) {
- /** @type {string} */
- buffer[1] = "?";
- } else {
- if (hashIndex == baseUri.length - 1) {
- buffer[1] = void 0;
- }
- }
- }
- return buffer.join("");
- };
- /**
- * @param {string} elem
- * @param {?} attributes
- * @param {Array} isXML
- * @return {undefined}
- */
- setAttributes = function(elem, attributes, isXML) {
- if (self.ka(attributes)) {
- /** @type {number} */
- var i = 0;
- for (;i < attributes.length;i++) {
- setAttributes(elem, String(attributes[i]), isXML);
- }
- } else {
- if (null != attributes) {
- isXML.push("&", elem, "" === attributes ? "" : "=", self.Ea(attributes));
- }
- }
- };
- /**
- * @param {Array} object
- * @param {Object} buf
- * @param {number} off
- * @return {?}
- */
- freeze = function(object, buf, off) {
- off = off || 0;
- for (;off < buf.length;off += 2) {
- setAttributes(buf[off], buf[off + 1], object);
- }
- return object;
- };
- /**
- * @param {Array} isXML
- * @param {Object} context
- * @return {?}
- */
- self.ada = function(isXML, context) {
- var match;
- for (match in context) {
- setAttributes(match, context[match], isXML);
- }
- return isXML;
- };
- /**
- * @param {?} opt_attributes
- * @return {?}
- */
- self.Nf = function(opt_attributes) {
- opt_attributes = self.ada([], opt_attributes);
- /** @type {string} */
- opt_attributes[0] = "";
- return opt_attributes.join("");
- };
- /**
- * @param {string} dataAndEvents
- * @param {string} tag
- * @return {?}
- */
- self.bda = function(dataAndEvents, tag) {
- return self.Mf(2 == arguments.length ? freeze([dataAndEvents], arguments[1], 0) : freeze([dataAndEvents], arguments, 1));
- };
- /**
- * @param {?} opt_attributes
- * @param {Object} name
- * @param {?} attributes
- * @return {?}
- */
- self.ei = function(opt_attributes, name, attributes) {
- /** @type {Array} */
- opt_attributes = [opt_attributes, "&", name];
- if (null != attributes) {
- opt_attributes.push("=", self.Ea(attributes));
- }
- return self.Mf(opt_attributes);
- };
- /**
- * @param {string} string
- * @param {number} index
- * @param {string} s
- * @param {number} sz
- * @return {?}
- */
- self.cda = function(string, index, s, sz) {
- var j = s.length;
- for (;0 <= (index = string.indexOf(s, index)) && index < sz;) {
- var zeroQuoted = string.charCodeAt(index - 1);
- if (38 == zeroQuoted || 63 == zeroQuoted) {
- if (zeroQuoted = string.charCodeAt(index + j), !zeroQuoted || (61 == zeroQuoted || (38 == zeroQuoted || 35 == zeroQuoted))) {
- return index;
- }
- }
- index += j + 1;
- }
- return-1;
- };
- /** @type {RegExp} */
- self.dda = /#|$/;
- /**
- * @param {string} value
- * @param {string} s
- * @return {?}
- */
- self.Of = function(value, s) {
- var y = value.search(self.dda);
- var index = self.cda(value, 0, s, y);
- if (0 > index) {
- return null;
- }
- var length = value.indexOf("&", index);
- if (0 > length || length > y) {
- length = y;
- }
- index += s.length + 1;
- return self.Fa(value.substr(index, length - index));
- };
- /** @type {RegExp} */
- trimEndRegexp = /[?&]($|#)/;
- /**
- * @param {string} key
- * @param {string} name
- * @return {?}
- */
- self.Wga = function(key, name) {
- var size = key.search(self.dda);
- /** @type {number} */
- var p = 0;
- var ret;
- /** @type {Array} */
- var newOut = [];
- for (;0 <= (ret = self.cda(key, p, name, size));) {
- newOut.push(key.substring(p, ret));
- /** @type {number} */
- p = Math.min(key.indexOf("&", ret) + 1 || size, size);
- }
- newOut.push(key.substr(p));
- return newOut.join("").replace(trimEndRegexp, "$1");
- };
- /**
- * @param {string} newIndex
- * @param {Object} optgroup
- * @param {string} opt_attributes
- * @return {?}
- */
- self.fi = function(newIndex, optgroup, opt_attributes) {
- return self.ei(self.Wga(newIndex, optgroup), optgroup, opt_attributes);
- };
- /**
- * @return {?}
- */
- self.kd = function() {
- return self.ca.location || {};
- };
- /**
- * @return {?}
- */
- self.ug = function() {
- return self.ca.location || {};
- };
- /**
- * @param {string} deepDataAndEvents
- * @return {undefined}
- */
- self.lca = function(deepDataAndEvents) {
- self.Pba(deepDataAndEvents);
- };
- /**
- * @param {string} deepDataAndEvents
- * @return {undefined}
- */
- self.Pba = function(deepDataAndEvents) {
- if (self.Id().replace(/^#*/, "") != deepDataAndEvents) {
- /** @type {string} */
- self.kd().hash = deepDataAndEvents;
- }
- };
- /**
- * @param {string} slide
- * @return {undefined}
- */
- self.eda = function(slide) {
- self.Kca(slide);
- };
- /**
- * @param {(Object|boolean|number|string)} res
- * @return {undefined}
- */
- self.Kca = function(res) {
- var url = self.kd().href;
- if ((self.Wh(url) || "") != res) {
- var u = self.Wf(url);
- if (res || 0 < url.indexOf("#")) {
- u += "#" + res;
- }
- self.kd().replace(u);
- }
- };
- /**
- * @return {?}
- */
- self.Id = function() {
- var list = self.kd();
- return list.hash ? list.href.substr(list.href.indexOf("#")) : "";
- };
- /**
- * @return {?}
- */
- self.Rda = function() {
- return self.kd().protocol + "//" + self.kd().host;
- };
- var Zda;
- var throttledUpdate;
- var isUndefined;
- var urlParse;
- var scope;
- self.lj = {};
- /** @type {boolean} */
- self.Sda = false;
- /** @type {boolean} */
- Zda = false;
- self.Mga = void 0;
- /**
- * @param {string} name
- * @param {Function} view
- * @return {undefined}
- */
- self.nj = function(name, view) {
- if (!self.lj[name]) {
- /** @type {Function} */
- self.lj[name] = view;
- window.google.dclc(self.sa(view, self.gi.getParam(name), true));
- }
- };
- /**
- * @param {?} key
- * @param {?} value
- * @param {boolean} funcToCall
- * @return {undefined}
- */
- self.pj = function(key, value, funcToCall) {
- var flags = {};
- flags[key] = value;
- self.cQb(flags, funcToCall);
- };
- /**
- * @param {?} attributes
- * @param {boolean} funcToCall
- * @return {undefined}
- */
- self.cQb = function(attributes, funcToCall) {
- var suiteView = self.$g(self.gi, attributes);
- self.Aea(suiteView, funcToCall);
- };
- /**
- * @return {undefined}
- */
- self.zi = function() {
- window.history.back();
- };
- /**
- * @param {string} x
- * @return {?}
- */
- self.Di = function(x) {
- return 1 == min(x) ? self.lf.getParam(x) : self.gi.getParam(x);
- };
- /**
- * @return {undefined}
- */
- throttledUpdate = function() {
- var test = self.vh(self.kd().href);
- self.gi = self.Wb(test.state);
- };
- /**
- * @param {Object} arg
- * @return {?}
- */
- isUndefined = function(arg) {
- if (self.ig(arg, self.Nb)) {
- var type = self.Xi(arg);
- arg = self.Dia(arg, type);
- }
- return self.Eia(arg);
- };
- /**
- * @param {boolean} value
- * @return {?}
- */
- urlParse = function(value) {
- var l = self.kd();
- return self.Sda ? self.Xf(value, l.pathname, false) : self.Xf(value, l.pathname + l.search, true);
- };
- /**
- * @param {boolean} obj
- * @param {boolean} deepDataAndEvents
- * @return {undefined}
- */
- self.Aea = function(obj, deepDataAndEvents) {
- if (!obj.equals(self.gi)) {
- /** @type {boolean} */
- self.gi = obj;
- if (deepDataAndEvents) {
- if (Zda) {
- window.history.replaceState({}, "", urlParse(obj));
- } else {
- self.eda(isUndefined(obj));
- }
- } else {
- if (Zda) {
- window.history.pushState({}, "", urlParse(obj));
- } else {
- self.lca(isUndefined(obj));
- }
- }
- }
- };
- /**
- * @return {undefined}
- */
- self.jfa = function() {
- throttledUpdate();
- if (self.Mga) {
- window.google.dclc(self.sa(self.Mga, self.gi, false));
- }
- var name;
- for (name in self.lj) {
- window.google.dclc(self.sa(self.lj[name], self.gi.getParam(name), false));
- }
- };
- scope = self.aa("google.pmc.hsm");
- if (scope) {
- /** @type {boolean} */
- Zda = !!scope.h;
- /** @type {boolean} */
- self.Sda = !!scope.q;
- }
- var strBase64 = self.Id();
- if (strBase64) {
- if (-1 < strBase64.substr(1).indexOf("#")) {
- window.google.log("jbh", "h=" + (0, window.encodeURIComponent)(strBase64).substr(0, 40));
- /** @type {string} */
- self.kd().hash = "";
- }
- }
- self.lf = self.Cia(self.kd().search.substring(1));
- self.Nb = self.Wb(self.lf);
- throttledUpdate();
- if (self.Sda) {
- self.C(window, "popstate", self.jfa);
- } else {
- self.C(window, "hashchange", self.jfa);
- }
- self.ida = self.Xb(null);
- /**
- * @return {undefined}
- */
- self.vg = function() {
- };
- self.vg.prototype.getType = self.Xb("");
- /**
- * @param {?} opt_attributes
- * @param {Object} name
- * @param {(boolean|number|string)} attributes
- * @return {undefined}
- */
- self.Ee = function(opt_attributes, name, attributes) {
- if (null === self.ica) {
- window.google.ml(opt_attributes, !!attributes, name);
- } else {
- (0, self.ica)(opt_attributes, name, attributes);
- }
- };
- self.ua("jsl.el", self.Ee);
- /** @type {null} */
- self.ica = null;
- var fetch;
- var children;
- self.Fe = "StopIteration" in self.ca ? self.ca.StopIteration : {
- message : "StopIteration",
- stack : ""
- };
- /**
- * @return {undefined}
- */
- self.Ge = function() {
- };
- /**
- * @return {?}
- */
- self.Ge.prototype.next = function() {
- throw self.Fe;
- };
- /**
- * @return {?}
- */
- self.Ge.prototype.ii = function() {
- return this;
- };
- /**
- * @param {string} data
- * @return {?}
- */
- fetch = function(data) {
- if (data instanceof self.Ge) {
- return data;
- }
- if ("function" == typeof data.ii) {
- return data.ii(false);
- }
- if (self.la(data)) {
- /** @type {number} */
- var pos = 0;
- var source = new self.Ge;
- /**
- * @return {?}
- */
- source.next = function() {
- for (;;) {
- if (pos >= data.length) {
- throw self.Fe;
- }
- if (pos in data) {
- return data[pos++];
- }
- pos++;
- }
- };
- return source;
- }
- throw Error("g");
- };
- /**
- * @param {Object} attributes
- * @param {Function} next_callback
- * @return {undefined}
- */
- self.Ie = function(attributes, next_callback) {
- if (self.la(attributes)) {
- try {
- (0, self.u)(attributes, next_callback, void 0);
- } catch (nextSlide) {
- if (nextSlide !== self.Fe) {
- throw nextSlide;
- }
- }
- } else {
- attributes = fetch(attributes);
- try {
- for (;;) {
- next_callback.call(void 0, attributes.next(), void 0, attributes);
- }
- } catch (el) {
- if (el !== self.Fe) {
- throw el;
- }
- }
- }
- };
- /**
- * @param {string} attributes
- * @return {?}
- */
- children = function(attributes) {
- if (self.la(attributes)) {
- return self.nb(attributes);
- }
- attributes = fetch(attributes);
- /** @type {Array} */
- var children = [];
- self.Ie(attributes, function(child) {
- children.push(child);
- });
- return children;
- };
- /**
- * @param {?} r
- * @param {?} dataAndEvents
- * @return {undefined}
- */
- self.Je = function(r, dataAndEvents) {
- this.ia = {};
- /** @type {Array} */
- this.$ = [];
- /** @type {number} */
- this.ma = this.ga = 0;
- /** @type {number} */
- var n = arguments.length;
- if (1 < n) {
- if (n % 2) {
- throw Error("c");
- }
- /** @type {number} */
- var i = 0;
- for (;i < n;i += 2) {
- this.set(arguments[i], arguments[i + 1]);
- }
- } else {
- if (r) {
- if (r instanceof self.Je) {
- n = r.Pf();
- i = r.Xc();
- } else {
- n = self.lc(r);
- i = self.kc(r);
- }
- /** @type {number} */
- var s = 0;
- for (;s < n.length;s++) {
- this.set(n[s], i[s]);
- }
- }
- }
- };
- /**
- * @return {?}
- */
- self.Je.prototype.ze = function() {
- return this.ga;
- };
- /**
- * @return {?}
- */
- self.Je.prototype.Xc = function() {
- self.Ke(this);
- /** @type {Array} */
- var eventPath = [];
- /** @type {number} */
- var n = 0;
- for (;n < this.$.length;n++) {
- eventPath.push(this.ia[this.$[n]]);
- }
- return eventPath;
- };
- /**
- * @return {?}
- */
- self.Je.prototype.Pf = function() {
- self.Ke(this);
- return this.$.concat();
- };
- /**
- * @param {?} opt_attributes
- * @param {Object} name
- * @return {?}
- */
- self.Me = function(opt_attributes, name) {
- return hasOwnProperty(opt_attributes.ia, name);
- };
- /**
- * @param {boolean} val
- * @return {?}
- */
- self.Je.prototype.Us = function(val) {
- /** @type {number} */
- var i = 0;
- for (;i < this.$.length;i++) {
- var key = this.$[i];
- if (hasOwnProperty(this.ia, key) && this.ia[key] == val) {
- return true;
- }
- }
- return false;
- };
- /**
- * @param {Object} obj
- * @param {string} opt_equalityFn
- * @return {?}
- */
- self.Je.prototype.equals = function(obj, opt_equalityFn) {
- if (this === obj) {
- return true;
- }
- if (this.ga != obj.ze()) {
- return false;
- }
- var equalityFn = opt_equalityFn || ext;
- self.Ke(this);
- var attributes;
- /** @type {number} */
- var i = 0;
- for (;attributes = this.$[i];i++) {
- if (!equalityFn(this.get(attributes), obj.get(attributes))) {
- return false;
- }
- }
- return true;
- };
- /**
- * @param {?} a
- * @param {?} b
- * @return {?}
- */
- var ext = function(a, b) {
- return a === b;
- };
- /**
- * @return {?}
- */
- self.Je.prototype.isEmpty = function() {
- return 0 == this.ga;
- };
- /**
- * @return {undefined}
- */
- self.Je.prototype.clear = function() {
- this.ia = {};
- /** @type {number} */
- this.ma = this.ga = this.$.length = 0;
- };
- /**
- * @param {string} opt_attributes
- * @return {?}
- */
- self.Je.prototype.remove = function(opt_attributes) {
- return hasOwnProperty(this.ia, opt_attributes) ? (delete this.ia[opt_attributes], this.ga--, this.ma++, this.$.length > 2 * this.ga && self.Ke(this), true) : false;
- };
- /**
- * @param {Object} root
- * @return {undefined}
- */
- self.Ke = function(root) {
- if (root.ga != root.$.length) {
- /** @type {number} */
- var i = 0;
- /** @type {number} */
- var len = 0;
- for (;i < root.$.length;) {
- var feature = root.$[i];
- if (hasOwnProperty(root.ia, feature)) {
- root.$[len++] = feature;
- }
- i++;
- }
- /** @type {number} */
- root.$.length = len;
- }
- if (root.ga != root.$.length) {
- var tests = {};
- /** @type {number} */
- len = i = 0;
- for (;i < root.$.length;) {
- feature = root.$[i];
- if (!hasOwnProperty(tests, feature)) {
- root.$[len++] = feature;
- /** @type {number} */
- tests[feature] = 1;
- }
- i++;
- }
- /** @type {number} */
- root.$.length = len;
- }
- };
- self.h = self.Je.prototype;
- /**
- * @param {?} opt_attributes
- * @param {Object} name
- * @return {?}
- */
- self.h.get = function(opt_attributes, name) {
- return hasOwnProperty(this.ia, opt_attributes) ? this.ia[opt_attributes] : name;
- };
- /**
- * @param {number} opt_attributes
- * @param {?} id
- * @return {undefined}
- */
- self.h.set = function(opt_attributes, id) {
- if (!hasOwnProperty(this.ia, opt_attributes)) {
- this.ga++;
- this.$.push(opt_attributes);
- this.ma++;
- }
- this.ia[opt_attributes] = id;
- };
- /**
- * @param {Function} callback
- * @param {?} scope
- * @return {undefined}
- */
- self.h.forEach = function(callback, scope) {
- var codeSegments = this.Pf();
- /** @type {number} */
- var i = 0;
- for (;i < codeSegments.length;i++) {
- var attributes = codeSegments[i];
- var fields = this.get(attributes);
- callback.call(scope, fields, attributes, this);
- }
- };
- /**
- * @return {?}
- */
- self.h.clone = function() {
- return new self.Je(this);
- };
- /**
- * @param {boolean} opt_keys
- * @return {?}
- */
- self.h.ii = function(opt_keys) {
- self.Ke(this);
- /** @type {number} */
- var offset = 0;
- var hidden = this.ma;
- var element = this;
- var stream = new self.Ge;
- /**
- * @return {?}
- */
- stream.next = function() {
- if (hidden != element.ma) {
- throw Error("h");
- }
- if (offset >= element.$.length) {
- throw self.Fe;
- }
- var key = element.$[offset++];
- return opt_keys ? key : element.ia[key];
- };
- return stream;
- };
- /**
- * @param {?} object
- * @param {?} attributes
- * @return {?}
- */
- var hasOwnProperty = function(object, attributes) {
- return Object.prototype.hasOwnProperty.call(object, attributes);
- };
- var every;
- /**
- * @param {?} attributes
- * @return {?}
- */
- self.nca = function(attributes) {
- return "function" == typeof attributes.ze ? attributes.ze() : self.la(attributes) || self.ma(attributes) ? attributes.length : self.jc(attributes);
- };
- /**
- * @param {?} attributes
- * @return {?}
- */
- self.Ne = function(attributes) {
- if ("function" == typeof attributes.Xc) {
- return attributes.Xc();
- }
- if (self.ma(attributes)) {
- return attributes.split("");
- }
- if (self.la(attributes)) {
- /** @type {Array} */
- var byteout = [];
- var len = attributes.length;
- /** @type {number} */
- var value = 0;
- for (;value < len;value++) {
- byteout.push(attributes[value]);
- }
- return byteout;
- }
- return self.kc(attributes);
- };
- /**
- * @param {?} attributes
- * @return {?}
- */
- self.oca = function(attributes) {
- if ("function" == typeof attributes.Pf) {
- return attributes.Pf();
- }
- if ("function" != typeof attributes.Xc) {
- if (self.la(attributes) || self.ma(attributes)) {
- /** @type {Array} */
- var assigns = [];
- attributes = attributes.length;
- /** @type {number} */
- var vvar = 0;
- for (;vvar < attributes;vvar++) {
- assigns.push(vvar);
- }
- return assigns;
- }
- return self.lc(attributes);
- }
- };
- /**
- * @param {?} attributes
- * @param {Function} fn
- * @param {?} scope
- * @return {undefined}
- */
- self.pca = function(attributes, fn, scope) {
- if ("function" == typeof attributes.forEach) {
- attributes.forEach(fn, scope);
- } else {
- if (self.la(attributes) || self.ma(attributes)) {
- (0, self.u)(attributes, fn, scope);
- } else {
- var values = self.oca(attributes);
- var names = self.Ne(attributes);
- var len = names.length;
- /** @type {number} */
- var i = 0;
- for (;i < len;i++) {
- fn.call(scope, names[i], values && values[i], attributes);
- }
- }
- }
- };
- /**
- * @param {?} attributes
- * @param {Function} callback
- * @return {?}
- */
- every = function(attributes, callback) {
- if ("function" == typeof attributes.every) {
- return attributes.every(callback, void 0);
- }
- if (self.la(attributes) || self.ma(attributes)) {
- return(0, self.cb)(attributes, callback, void 0);
- }
- var fns = self.oca(attributes);
- var values = self.Ne(attributes);
- var valuesLen = values.length;
- /** @type {number} */
- var i = 0;
- for (;i < valuesLen;i++) {
- if (!callback.call(void 0, values[i], fns && fns[i], attributes)) {
- return false;
- }
- }
- return true;
- };
- var set;
- /**
- * @param {?} opt_attributes
- * @return {undefined}
- */
- self.Oe = function(opt_attributes) {
- this.$ = new self.Je;
- if (opt_attributes) {
- self.rca(this, opt_attributes);
- }
- };
- /**
- * @param {?} attributes
- * @return {?}
- */
- set = function(attributes) {
- /** @type {string} */
- var $s = typeof attributes;
- return "object" == $s && attributes || "function" == $s ? "o" + self.ra(attributes) : $s.substr(0, 1) + attributes;
- };
- /**
- * @return {?}
- */
- self.Oe.prototype.ze = function() {
- return this.$.ze();
- };
- /**
- * @param {string} attr
- * @return {undefined}
- */
- self.Oe.prototype.add = function(attr) {
- this.$.set(set(attr), attr);
- };
- /**
- * @param {Object} store
- * @param {string} attributes
- * @return {undefined}
- */
- self.rca = function(store, attributes) {
- var values = self.Ne(attributes);
- var valuesLen = values.length;
- /** @type {number} */
- var i = 0;
- for (;i < valuesLen;i++) {
- store.add(values[i]);
- }
- };
- self.h = self.Oe.prototype;
- /**
- * @param {string} items
- * @return {undefined}
- */
- self.h.removeAll = function(items) {
- items = self.Ne(items);
- var valuesLen = items.length;
- /** @type {number} */
- var i = 0;
- for (;i < valuesLen;i++) {
- this.remove(items[i]);
- }
- };
- /**
- * @param {string} opt_attributes
- * @return {?}
- */
- self.h.remove = function(opt_attributes) {
- return this.$.remove(set(opt_attributes));
- };
- /**
- * @return {undefined}
- */
- self.h.clear = function() {
- this.$.clear();
- };
- /**
- * @return {?}
- */
- self.h.isEmpty = function() {
- return this.$.isEmpty();
- };
- /**
- * @param {string} name
- * @return {?}
- */
- self.h.contains = function(name) {
- return self.Me(this.$, set(name));
- };
- /**
- * @param {?} vector1
- * @param {string} type
- * @return {?}
- */
- self.Ama = function(vector1, type) {
- var api = vector1.clone();
- api.removeAll(type);
- return api;
- };
- /**
- * @return {?}
- */
- self.Oe.prototype.Xc = function() {
- return this.$.Xc();
- };
- /**
- * @return {?}
- */
- self.Oe.prototype.clone = function() {
- return new self.Oe(this);
- };
- /**
- * @param {string} y
- * @return {?}
- */
- self.Oe.prototype.equals = function(y) {
- return this.ze() == self.nca(y) && self.tca(this, y);
- };
- /**
- * @param {string} a
- * @param {string} value
- * @return {?}
- */
- self.tca = function(a, value) {
- var isFunction = self.nca(value);
- if (a.ze() > isFunction) {
- return false;
- }
- if (!(value instanceof self.Oe)) {
- if (5 < isFunction) {
- value = new self.Oe(value);
- }
- }
- return every(a, function(name) {
- var attributes = value;
- if ("function" == typeof attributes.contains) {
- name = attributes.contains(name);
- } else {
- if ("function" == typeof attributes.Us) {
- name = attributes.Us(name);
- } else {
- if (self.la(attributes) || self.ma(attributes)) {
- name = self.fb(attributes, name);
- } else {
- a: {
- var k;
- for (k in attributes) {
- if (attributes[k] == name) {
- /** @type {boolean} */
- name = true;
- break a;
- }
- }
- /** @type {boolean} */
- name = false;
- }
- }
- }
- }
- return name;
- });
- };
- /**
- * @return {?}
- */
- self.Oe.prototype.ii = function() {
- return this.$.ii(false);
- };
- var Type;
- /**
- * @param {string} js
- * @return {?}
- */
- self.jda = function(js) {
- return/^\s*$/.test(js) ? false : /^[\],:{}\s\u2028\u2029]*$/.test(js.replace(/\\["\\\/bfnrtu]/g, "@").replace(/"[^"\\\n\r\u2028\u2029\x00-\x08\x0a-\x1f]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g, "]").replace(/(?:^|:|,)(?:[\s\u2028\u2029]*\[)+/g, ""));
- };
- /**
- * @param {?} str
- * @return {?}
- */
- self.Pe = function(str) {
- /** @type {string} */
- str = String(str);
- if (self.jda(str)) {
- try {
- return eval("(" + str + ")");
- } catch (b) {
- }
- }
- throw Error("i`" + str);
- };
- /**
- * @param {string} dataAndEvents
- * @return {?}
- */
- self.Qe = function(dataAndEvents) {
- return eval("(" + dataAndEvents + ")");
- };
- /**
- * @param {?} opt_attributes
- * @return {?}
- */
- self.Re = function(opt_attributes) {
- return(new Type(void 0)).yb(opt_attributes);
- };
- /**
- * @param {?} path
- * @return {undefined}
- */
- Type = function(path) {
- this.$ = path;
- };
- /**
- * @param {string} opt_attributes
- * @return {?}
- */
- Type.prototype.yb = function(opt_attributes) {
- /** @type {Array} */
- var sb = [];
- l(this, opt_attributes, sb);
- return sb.join("");
- };
- /**
- * @param {Object} d
- * @param {?} attributes
- * @param {Array} sb
- * @return {undefined}
- */
- var l = function(d, attributes, sb) {
- if (null == attributes) {
- sb.push("null");
- } else {
- if ("object" == typeof attributes) {
- if (self.ka(attributes)) {
- var attr = attributes;
- attributes = attr.length;
- sb.push("[");
- /** @type {string} */
- var value = "";
- /** @type {number} */
- var a = 0;
- for (;a < attributes;a++) {
- sb.push(value);
- value = attr[a];
- l(d, d.$ ? d.$.call(attr, String(a), value) : value, sb);
- /** @type {string} */
- value = ",";
- }
- sb.push("]");
- return;
- }
- if (attributes instanceof String || (attributes instanceof Number || attributes instanceof Boolean)) {
- /** @type {*} */
- attributes = attributes.valueOf();
- } else {
- sb.push("{");
- /** @type {string} */
- a = "";
- for (attr in attributes) {
- if (Object.prototype.hasOwnProperty.call(attributes, attr)) {
- value = attributes[attr];
- if ("function" != typeof value) {
- sb.push(a);
- stringify(attr, sb);
- sb.push(":");
- l(d, d.$ ? d.$.call(attributes, attr, value) : value, sb);
- /** @type {string} */
- a = ",";
- }
- }
- }
- sb.push("}");
- return;
- }
- }
- switch(typeof attributes) {
- case "string":
- stringify(attributes, sb);
- break;
- case "number":
- sb.push((0, window.isFinite)(attributes) && !(0, window.isNaN)(attributes) ? attributes : "null");
- break;
- case "boolean":
- sb.push(attributes);
- break;
- case "function":
- sb.push("null");
- break;
- default:
- throw Error("j`" + typeof attributes);;
- }
- }
- };
- var flags = {
- '"' : '\\"',
- "\\" : "\\\\",
- "/" : "\\/",
- "\b" : "\\b",
- "\f" : "\\f",
- "\n" : "\\n",
- "\r" : "\\r",
- "\t" : "\\t",
- "\x0B" : "\\u000b"
- };
- /** @type {RegExp} */
- var prop = /\uffff/.test("\uffff") ? /[\\\"\x00-\x1f\x7f-\uffff]/g : /[\\\"\x00-\x1f\x7f-\xff]/g;
- /**
- * @param {?} obj
- * @param {Array} buffer
- * @return {undefined}
- */
- var stringify = function(obj, buffer) {
- buffer.push('"', obj.replace(prop, function(key) {
- var value = flags[key];
- if (!value) {
- /** @type {string} */
- value = "\\u" + (key.charCodeAt(0) | 65536).toString(16).substr(1);
- /** @type {string} */
- flags[key] = value;
- }
- return value;
- }), '"');
- };
- /**
- * @param {?} attributes
- * @return {?}
- */
- self.Se = function(attributes) {
- if (self.ca.JSON) {
- try {
- return self.ca.JSON.stringify(attributes);
- } catch (b) {
- }
- }
- return self.Re(attributes);
- };
- /**
- * @param {?} attributes
- * @return {?}
- */
- self.Te = function(attributes) {
- if (self.ca.JSON) {
- try {
- var primaryKey = self.ca.JSON.parse(attributes);
- return primaryKey;
- } catch (c) {
- }
- }
- return primaryKey = self.Pe(attributes);
- };
- /**
- * @return {undefined}
- */
- self.zca = function() {
- };
- /**
- * @return {undefined}
- */
- self.Ue = function() {
- };
- self.r(self.Ue, self.zca);
- /**
- * @return {?}
- */
- self.Ue.prototype.ze = function() {
- /** @type {number} */
- var ze = 0;
- self.Ie(this.ii(true), function() {
- ze++;
- });
- return ze;
- };
- /**
- * @return {undefined}
- */
- self.Ue.prototype.clear = function() {
- var r20 = children(this.ii(true));
- var file = this;
- (0, self.u)(r20, function(attributes) {
- file.remove(attributes);
- });
- };
- /**
- * @param {?} yytext
- * @return {undefined}
- */
- self.Ve = function(yytext) {
- this.$ = yytext;
- };
- self.r(self.Ve, self.Ue);
- self.h = self.Ve.prototype;
- /**
- * @return {?}
- */
- self.h.isAvailable = function() {
- if (!this.$) {
- return false;
- }
- try {
- return this.$.setItem("__sak", "1"), this.$.removeItem("__sak"), true;
- } catch (a) {
- return false;
- }
- };
- /**
- * @param {number} opt_attributes
- * @param {?} id
- * @return {undefined}
- */
- self.h.set = function(opt_attributes, id) {
- try {
- this.$.setItem(opt_attributes, id);
- } catch (c) {
- if (0 == this.$.length) {
- throw "Storage mechanism: Storage disabled";
- }
- throw "Storage mechanism: Quota exceeded";
- }
- };
- /**
- * @param {?} opt_attributes
- * @return {?}
- */
- self.h.get = function(opt_attributes) {
- opt_attributes = this.$.getItem(opt_attributes);
- if (!self.ma(opt_attributes) && null !== opt_attributes) {
- throw "Storage mechanism: Invalid value was encountered";
- }
- return opt_attributes;
- };
- /**
- * @param {string} opt_attributes
- * @return {undefined}
- */
- self.h.remove = function(opt_attributes) {
- this.$.removeItem(opt_attributes);
- };
- /**
- * @return {?}
- */
- self.h.ze = function() {
- return this.$.length;
- };
- /**
- * @param {boolean} recurring
- * @return {?}
- */
- self.h.ii = function(recurring) {
- /** @type {number} */
- var i = 0;
- var items = this.$;
- var stream = new self.Ge;
- /**
- * @return {?}
- */
- stream.next = function() {
- if (i >= items.length) {
- throw self.Fe;
- }
- var attributes = items.key(i++);
- if (recurring) {
- return attributes;
- }
- attributes = items.getItem(attributes);
- if (!self.ma(attributes)) {
- throw "Storage mechanism: Invalid value was encountered";
- }
- return attributes;
- };
- return stream;
- };
- /**
- * @return {undefined}
- */
- self.h.clear = function() {
- this.$.clear();
- };
- /**
- * @param {number} index
- * @return {?}
- */
- self.h.key = function(index) {
- return this.$.key(index);
- };
- /**
- * @return {undefined}
- */
- self.Aca = function() {
- /** @type {null} */
- var $ = null;
- try {
- $ = window.sessionStorage || null;
- } catch (b) {
- }
- this.$ = $;
- };
- self.r(self.Aca, self.Ve);
- var node;
- var num;
- var special;
- var dict;
- var tag;
- var m;
- var requestFileSystem;
- special = {};
- self.Ye = {};
- dict = {
- init : [],
- history : [],
- dispose : [],
- _e : []
- };
- /** @type {boolean} */
- self.Ze = false;
- /** @type {Array} */
- self.$e = [];
- /**
- * @param {string} type
- * @param {?} opt_attributes
- * @return {undefined}
- */
- self.af = function(type, opt_attributes) {
- var g;
- for (g in opt_attributes) {
- dict[g].push(type);
- }
- special[type] = opt_attributes;
- if (self.Ze) {
- g = self.sa(m, "init", type);
- self.$e.push(g);
- }
- };
- /**
- * @return {undefined}
- */
- self.Eca = function() {
- (0, self.u)(self.$e, function($sanitize) {
- $sanitize();
- });
- /** @type {Array} */
- self.$e = [];
- };
- /**
- * @param {string} name
- * @param {?} opt_attributes
- * @return {undefined}
- */
- self.bf = function(name, opt_attributes) {
- opt_attributes = opt_attributes || {};
- opt_attributes._e = self.R;
- self.af(name, opt_attributes);
- };
- /**
- * @param {string} T
- * @return {undefined}
- */
- self.Gca = function(T) {
- if (window.google.pmc) {
- if ("dispose" != T || self.Ze) {
- tag(T);
- if ("init" == T) {
- /** @type {boolean} */
- self.Ze = true;
- } else {
- if ("dispose" == T) {
- /** @type {boolean} */
- self.Ze = false;
- /** @type {null} */
- window.google.pmc = null;
- }
- }
- }
- }
- };
- /**
- * @param {string} idx
- * @return {undefined}
- */
- tag = function(idx) {
- ("dispose" == idx ? self.Ya : self.u)(dict[idx], function(a) {
- m(idx, a);
- });
- };
- /**
- * @param {string} i
- * @param {?} type
- * @return {undefined}
- */
- m = function(i, type) {
- try {
- var ca = special[type];
- if (ca) {
- var c = ca[i];
- var gen = window.google.pmc[type];
- if (c && (gen || requestFileSystem(type))) {
- new self.vg;
- var f = (0, self.q)();
- c(gen);
- if ("init" == i || "dispose" == i) {
- if (!self.Ye[i]) {
- self.Ye[i] = {};
- }
- /** @type {number} */
- self.Ye[i][type] = (0, self.q)() - f;
- }
- }
- }
- } catch (attributes) {
- self.Ee(attributes, {
- cause : "m" + i,
- mid : type
- });
- }
- };
- /**
- * @param {Object} type
- * @return {?}
- */
- requestFileSystem = function(type) {
- type = special[type];
- return Boolean(type && type._e);
- };
- self.ua("google.initHistory", function() {
- num = window.google.kEI;
- node = new self.Aca;
- var destElements;
- a: {
- var n = num;
- try {
- var clone = node.get("web-mh" + n);
- if (clone) {
- destElements = self.Te(clone);
- break a;
- }
- } catch (d) {
- }
- /** @type {null} */
- destElements = null;
- }
- if (destElements) {
- window.google.pmc = destElements;
- }
- });
- self.ua("google.med", self.Gca);
- self.ua("google.raas", self.bf);
- var Jca;
- var event;
- var _forEach;
- var Mca;
- var onWindowHashChange;
- /** @type {Array} */
- self.df = [];
- event = {
- persisted : false
- };
- /**
- * @return {undefined}
- */
- _forEach = function() {
- /** @type {Array} */
- var ret = [];
- /** @type {Array} */
- var elems = [];
- /** @type {number} */
- var i = 0;
- var valuesLen = self.df.length;
- for (;i < valuesLen;i++) {
- var nodes = self.df[i]();
- if (nodes) {
- if (0 == nodes.indexOf("&")) {
- elems.push(nodes);
- } else {
- if (0 < ret.length) {
- ret.push(",");
- }
- ret.push(nodes);
- }
- }
- }
- /** @type {Array} */
- ret = ret.concat(elems);
- /** @type {boolean} */
- window.google._bfr = true;
- ret.push("&ei=", window.google.kEI);
- window.google.log("backbutton", ret.join(""));
- };
- Mca = window.google.j && window.google.j.en;
- /**
- * @param {?} event
- * @return {undefined}
- */
- onWindowHashChange = function(event) {
- if (!(!event.persisted && !Jca)) {
- if (!Mca) {
- _forEach();
- }
- }
- /** @type {boolean} */
- Jca = true;
- };
- self.bf("bbd", {
- /**
- * @return {undefined}
- */
- init : function() {
- event = {
- persisted : false
- };
- /** @type {boolean} */
- window.google._bfr = false;
- },
- /**
- * @param {(Function|string)} id
- * @return {undefined}
- */
- history : function(id) {
- if (id) {
- event.persisted = id.persisted;
- }
- if (event.persisted) {
- _forEach();
- } else {
- if (!event.persisted) {
- /** @type {boolean} */
- event.persisted = true;
- id = event;
- if (node && ("" !== num && (window.google.pmc.bbd || requestFileSystem("bbd")))) {
- /** @type {(Function|string)} */
- window.google.pmc.bbd = id;
- id = num;
- var attributes = window.google.pmc;
- try {
- var attr = self.Se(attributes);
- if (attr) {
- node.set("web-mh" + id, attr);
- }
- } catch (d) {
- }
- }
- if (window.addEventListener) {
- window.addEventListener("pageshow", onWindowHashChange, false);
- /** @type {boolean} */
- Jca = false;
- }
- }
- }
- },
- /**
- * @return {undefined}
- */
- dispose : function() {
- /** @type {number} */
- self.df.length = 0;
- }
- });
- /**
- * @param {?} obj
- * @param {string} type
- * @param {Function} fn
- * @return {undefined}
- */
- self.Ce = function(obj, type, fn) {
- if (obj.addEventListener) {
- obj.addEventListener(type, fn, false);
- } else {
- obj.attachEvent("on" + type, fn);
- }
- };
- /**
- * @param {?} obj
- * @param {string} type
- * @param {?} f
- * @return {undefined}
- */
- self.De = function(obj, type, f) {
- if (obj.removeEventListener) {
- obj.removeEventListener(type, f, false);
- } else {
- obj.detachEvent("on" + type, f);
- }
- };
- self.dha = self.wh();
- self.hi = self.kf() || self.Ab("iPod");
- self.ii = self.dh();
- self.fha = self.Ik();
- self.gha = self.Eb();
- self.ji = self.Db() && !self.mf();
- /** @type {boolean} */
- self.ui = !self.Aa;
- /**
- * @param {Object} obj
- * @param {string} name
- * @param {string} str
- * @return {undefined}
- */
- self.of = function(obj, name, str) {
- if (self.ui && obj.dataset) {
- /** @type {string} */
- obj.dataset[name] = str;
- } else {
- obj.setAttribute("data-" + self.Sa(name), str);
- }
- };
- /**
- * @param {Element} element
- * @param {string} key
- * @return {?}
- */
- self.F = function(element, key) {
- return self.ui && element.dataset ? key in element.dataset ? element.dataset[key] : null : element.getAttribute("data-" + self.Sa(key));
- };
- /**
- * @param {?} opt_attributes
- * @param {Object} name
- * @return {undefined}
- */
- self.pf = function(opt_attributes, name) {
- if (self.ui && opt_attributes.dataset) {
- delete opt_attributes.dataset[name];
- } else {
- opt_attributes.removeAttribute("data-" + self.Sa(name));
- }
- };
- /**
- * @param {Element} element
- * @param {string} key
- * @return {?}
- */
- self.qf = function(element, key) {
- return self.ui && element.dataset ? key in element.dataset : element.hasAttribute ? element.hasAttribute("data-" + self.Sa(key)) : !!element.getAttribute("data-" + self.Sa(key));
- };
- /**
- * @param {string} parent
- * @return {?}
- */
- self.rf = function(parent) {
- return parent && self.Yc(parent) ? self.F(parent, "ved") || "" : "";
- };
- var string;
- /**
- * @return {undefined}
- */
- self.sf = function() {
- /** @type {Array} */
- this.Ef = [];
- /** @type {string} */
- this.$ = "";
- };
- /**
- * @return {undefined}
- */
- self.sf.prototype.initialize = function() {
- /** @type {Array} */
- this.Ef = [];
- /** @type {string} */
- this.$ = "";
- };
- /**
- * @param {?} event
- * @param {?} dataAndEvents
- * @param {string} classNames
- * @return {undefined}
- */
- self.Oca = function(event, dataAndEvents, classNames) {
- event.Ef.push({
- bq : dataAndEvents,
- targetElement : classNames || "",
- oC : 0
- });
- };
- /**
- * @param {?} event
- * @param {string} classNames
- * @param {string} format
- * @return {undefined}
- */
- self.Pca = function(event, classNames, format) {
- event.Ef.push({
- bq : classNames || "",
- targetElement : format || "",
- oC : 1
- });
- };
- /**
- * @param {Object} doc
- * @param {Object} e
- * @return {?}
- */
- string = function(doc, e) {
- /** @type {string} */
- var parent = "";
- if (e) {
- parent = "string" == typeof e ? e : window.google.getEI(e);
- }
- return parent && parent != doc.$ ? parent : "";
- };
- /**
- * @param {string} a
- * @return {?}
- */
- self.tf = function(a) {
- var valuesLen = a.Ef.length;
- if (0 == valuesLen) {
- return "";
- }
- /** @type {Array} */
- var headers = [];
- var message;
- var value;
- /** @type {number} */
- var i = 0;
- for (;i < valuesLen;++i) {
- switch(message = string(a, a.Ef[i].targetElement) || "", a.Ef[i].oC) {
- case 0:
- headers.push(a.Ef[i].bq + "." + message + ".s");
- break;
- case 2:
- /** @type {string} */
- value = (value = string(a, a.Ef[i].pda)) ? ".0." + a.Ef[i].mW + "." + value : "";
- headers.push(a.Ef[i].bq + "." + message + ".i" + value);
- break;
- case 1:
- headers.push(a.Ef[i].bq + "." + message + ".h");
- break;
- case 3:
- /** @type {string} */
- value = (value = string(a, a.Ef[i].pda)) ? "." + value : "";
- if (a.Ef[i].mW) {
- if (a.Ef[i].bq) {
- headers.push(a.Ef[i].bq + "." + message + ".c." + a.Ef[i].mW + value);
- }
- }
- ;
- }
- }
- /** @type {string} */
- a = "&vet=1" + headers.join(";");
- return a = 0 < headers.length ? a : "";
- };
- var parts;
- var y;
- var getEnumerableProperties;
- parts = {};
- /**
- * @param {number} n
- * @param {number} args
- * @return {?}
- */
- y = function(n, args) {
- return self.tb(n[1], args[1]);
- };
- /**
- * @param {number} opt_attributes
- * @return {undefined}
- */
- self.vf = function(opt_attributes) {
- /** @type {number} */
- var deepDataAndEvents = 0;
- /** @type {Arguments} */
- var frames = arguments;
- /** @type {number} */
- var length = frames.length;
- if (1 == length % 2) {
- deepDataAndEvents = frames[length - 1];
- }
- /** @type {number} */
- var index = 0;
- for (;index < length - 1;index += 2) {
- getEnumerableProperties(frames[index], frames[index + 1], deepDataAndEvents);
- }
- };
- /**
- * @param {(Array|string)} value
- * @param {?} variables
- * @param {number} deepDataAndEvents
- * @return {undefined}
- */
- self.wg = function(value, variables, deepDataAndEvents) {
- getEnumerableProperties(value, variables, deepDataAndEvents, true);
- };
- /**
- * @param {Array} part
- * @param {?} object
- * @param {number} deepDataAndEvents
- * @param {boolean} dataAndEvents
- * @return {undefined}
- */
- getEnumerableProperties = function(part, object, deepDataAndEvents, dataAndEvents) {
- parts[part] = parts[part] || [];
- part = parts[part];
- part.push([object, deepDataAndEvents || 0, !!dataAndEvents]);
- self.waa(part, y);
- };
- /**
- * @param {number} opt_attributes
- * @return {undefined}
- */
- self.wf = function(opt_attributes) {
- /** @type {number} */
- var i = 0;
- for (;i < arguments.length - 1;i += 2) {
- var part = parts[arguments[i]];
- if (part) {
- var iterable = arguments[i + 1];
- /** @type {number} */
- var m = 0;
- for (;m < part.length;++m) {
- if (part[m][0] == iterable) {
- self.jb(part, m);
- break;
- }
- }
- }
- }
- };
- /**
- * @param {number} opt_attributes
- * @param {Array} expectedHashCode
- * @param {Object} x
- * @param {Object} name
- * @return {?}
- */
- self.H = function(opt_attributes, expectedHashCode, x, name) {
- var type = void 0 === x ? true : x;
- /** @type {boolean} */
- var isHorizontal = false === x;
- var g = expectedHashCode && expectedHashCode[0] === x;
- if (opt_attributes in parts) {
- if (void 0 === name) {
- /** @type {boolean} */
- name = false;
- }
- var template;
- if ("function" == typeof name) {
- /** @type {Object} */
- template = name;
- } else {
- /**
- * @param {?} str
- * @return {?}
- */
- template = function(str) {
- return str === name;
- };
- }
- var res = parts[opt_attributes].slice(0);
- /** @type {number} */
- var resLength = 0;
- var fx;
- for (;fx = res[resLength++];) {
- var wrapper = fx[0];
- if (fx[2]) {
- self.wf(opt_attributes, wrapper);
- }
- fx = wrapper.apply(null, expectedHashCode || []);
- if (isHorizontal) {
- type = type || fx;
- } else {
- if (g && (expectedHashCode[0] = fx), type = fx, template(type)) {
- return type;
- }
- }
- }
- }
- return "function" == typeof name ? x : type;
- };
- /**
- * @param {?} attributes
- * @return {?}
- */
- self.xf = function(attributes) {
- if (attributes.classList) {
- return attributes.classList;
- }
- attributes = attributes.className;
- return self.ma(attributes) && attributes.match(/\S+/g) || [];
- };
- /**
- * @param {?} item
- * @param {string} name
- * @return {?}
- */
- self.J = function(item, name) {
- return item.classList ? item.classList.contains(name) : self.fb(self.xf(item), name);
- };
- /**
- * @param {?} el
- * @param {string} v
- * @return {undefined}
- */
- self.K = function(el, v) {
- if (el.classList) {
- el.classList.add(v);
- } else {
- if (!self.J(el, v)) {
- el.className += 0 < el.className.length ? " " + v : v;
- }
- }
- };
- /**
- * @param {Element} element
- * @param {Array} description
- * @return {undefined}
- */
- self.yf = function(element, description) {
- if (element.classList) {
- (0, self.u)(description, function(cx) {
- self.K(element, cx);
- });
- } else {
- var classMap = {};
- (0, self.u)(self.xf(element), function(className) {
- /** @type {boolean} */
- classMap[className] = true;
- });
- (0, self.u)(description, function(className) {
- /** @type {boolean} */
- classMap[className] = true;
- });
- /** @type {string} */
- element.className = "";
- var className;
- for (className in classMap) {
- element.className += 0 < element.className.length ? " " + className : className;
- }
- }
- };
- /**
- * @param {?} a
- * @param {string} attributes
- * @return {undefined}
- */
- self.L = function(a, attributes) {
- if (a.classList) {
- a.classList.remove(attributes);
- } else {
- if (self.J(a, attributes)) {
- a.className = (0, self.Za)(self.xf(a), function(dataAndEvents) {
- return dataAndEvents != attributes;
- }).join(" ");
- }
- }
- };
- /**
- * @param {Element} props
- * @param {Array} opt_attributes
- * @return {undefined}
- */
- self.zf = function(props, opt_attributes) {
- if (props.classList) {
- (0, self.u)(opt_attributes, function(funcToCall) {
- self.L(props, funcToCall);
- });
- } else {
- props.className = (0, self.Za)(self.xf(props), function(funcToCall) {
- return!self.fb(opt_attributes, funcToCall);
- }).join(" ");
- }
- };
- /**
- * @param {?} a
- * @param {string} value
- * @param {boolean} millis
- * @return {undefined}
- */
- self.M = function(a, value, millis) {
- if (millis) {
- self.K(a, value);
- } else {
- self.L(a, value);
- }
- };
- /**
- * @param {?} def
- * @param {string} attr
- * @param {string} cx
- * @return {?}
- */
- self.Af = function(def, attr, cx) {
- return self.J(def, attr) ? (self.L(def, attr), self.K(def, cx), true) : false;
- };
- /**
- * @param {?} def
- * @param {string} header
- * @return {?}
- */
- self.Bf = function(def, header) {
- /** @type {boolean} */
- var millis = !self.J(def, header);
- self.M(def, header, millis);
- return millis;
- };
- /**
- * @param {?} target
- * @param {string} type
- * @param {string} fn
- * @return {undefined}
- */
- self.un = function(target, type, fn) {
- self.L(target, type);
- self.K(target, fn);
- };
- var frame;
- var poll;
- /**
- * @param {?} loc
- * @param {boolean} dataAndEvents
- * @return {undefined}
- */
- self.hg = function(loc, dataAndEvents) {
- if (dataAndEvents) {
- self.ug().replace(loc);
- } else {
- self.ug().href = loc;
- }
- };
- /**
- * @param {?} url
- * @param {?} deepDataAndEvents
- * @param {boolean} dataAndEvents
- * @return {undefined}
- */
- self.Rf = function(url, deepDataAndEvents, dataAndEvents) {
- if (!self.H(32, [url, deepDataAndEvents, dataAndEvents], 0, true)) {
- try {
- if ((new RegExp("^(" + self.Rda() + ")?/(url|aclk)\\?.*&rct=j(&|$)")).test(url)) {
- if (!frame) {
- frame = window.document.createElement("iframe");
- /** @type {string} */
- frame.style.display = "none";
- self.te(frame);
- }
- /** @type {number} */
- window.google.r = 1;
- frame.src = url;
- } else {
- if (/#.*\/blank\.html$/.test(url) || /#.*about:blank$/.test(url)) {
- self.Ee(Error("n"));
- }
- self.hg(url, dataAndEvents);
- }
- } catch (d) {
- self.hg(url, dataAndEvents);
- }
- }
- };
- /**
- * @param {Object} arg
- * @param {?} deepDataAndEvents
- * @param {boolean} dataAndEvents
- * @param {?} funcToCall
- * @return {undefined}
- */
- self.Tf = function(arg, deepDataAndEvents, dataAndEvents, funcToCall) {
- self.Rf(self.mda(arg, funcToCall), deepDataAndEvents, dataAndEvents);
- };
- /**
- * @param {?} opt_attributes
- * @return {?}
- */
- self.Sf = function(opt_attributes) {
- var a = self.kd();
- var m;
- if (opt_attributes = opt_attributes || (a.hash ? a.href : "")) {
- m = opt_attributes.indexOf("#");
- opt_attributes = opt_attributes.substr(m + 1);
- }
- var n = a.search ? a.href.substr(a.href.indexOf("?") + 1).replace(/#.*/, "") : "";
- m = opt_attributes && opt_attributes.match(/(^|&)q=/);
- opt_attributes = (m ? opt_attributes : n).replace(/(^|&)(fp|tch)=[^&]*/g, "").replace(/^&/, "");
- return(m ? "/search" : a.pathname) + (opt_attributes ? "?" + opt_attributes : "");
- };
- /**
- * @param {string} dataAndEvents
- * @param {string} path
- * @param {string} callback
- * @param {string} expr
- * @return {?}
- */
- self.sh = function(dataAndEvents, path, callback, expr) {
- callback = expr ? callback : (0, window.encodeURIComponent)(callback);
- /** @type {RegExp} */
- expr = new RegExp("([#?&]" + dataAndEvents + "=)[^&#]*");
- return path = expr.test(path) ? path.replace(expr, "$1" + callback) : path + ("&" + dataAndEvents + "=" + callback);
- };
- /**
- * @param {Object} target
- * @param {?} funcToCall
- * @return {?}
- */
- self.mda = function(target, funcToCall) {
- var results = {};
- if (!funcToCall) {
- var nodes = self.Sf().match(/[?&][\w\.\-~]+=([^&]*)/g);
- if (nodes) {
- /** @type {number} */
- var i = 0;
- var x;
- for (;x = nodes[i++];) {
- x = x.match(/([\w\.\-~]+?)=(.*)/);
- var data = x[2];
- results[x[1]] = data;
- }
- }
- }
- for (x in target) {
- if (target.hasOwnProperty(x)) {
- data = target[x];
- if (null == data) {
- delete results[x];
- } else {
- results[x] = data.toString().replace(/[&#]/g, window.encodeURIComponent);
- }
- }
- }
- /** @type {string} */
- nodes = "/search?";
- /** @type {boolean} */
- i = true;
- for (x in results) {
- if (results.hasOwnProperty(x)) {
- /** @type {string} */
- nodes = nodes.concat((i ? "" : "&") + x + "=" + results[x]);
- /** @type {boolean} */
- i = false;
- }
- }
- return nodes;
- };
- /**
- * @return {undefined}
- */
- poll = function() {
- var sTimeout = window._gjuc;
- if (sTimeout) {
- if (!(self.kd().hash && sTimeout())) {
- window.setTimeout(poll, 500);
- }
- }
- };
- /**
- * @return {undefined}
- */
- self.hda = function() {
- var cancelAnimationFrame = window._gjuc;
- if (cancelAnimationFrame) {
- if (!cancelAnimationFrame()) {
- if ("onhashchange" in window) {
- /**
- * @return {undefined}
- */
- window.onhashchange = function() {
- cancelAnimationFrame();
- };
- } else {
- poll();
- }
- }
- }
- };
- /**
- * @return {?}
- */
- self.Zf = function() {
- return self.ie(window.document.body || window.document.documentElement);
- };
- /**
- * @param {?} attributes
- * @param {Object} optgroup
- * @param {boolean} recurring
- * @return {?}
- */
- self.$f = function(attributes, optgroup, recurring) {
- if (initEvent()) {
- optgroup = optgroup.replace(/\-([a-z])/g, function(dataAndEvents, letter) {
- return letter.toUpperCase();
- });
- optgroup = attributes.currentStyle && attributes.currentStyle[optgroup] || "";
- if (!recurring) {
- if (!/^-?\d/.test(optgroup)) {
- return 0;
- }
- recurring = attributes.style.left;
- /** @type {Object} */
- attributes.style.left = optgroup;
- optgroup = attributes.style.pixelLeft;
- /** @type {boolean} */
- attributes.style.left = recurring;
- }
- return optgroup;
- }
- attributes = self.Nd(attributes, optgroup);
- return recurring ? attributes : Number(self.saa(attributes, "px")) || 0;
- };
- /**
- * @param {string} clone
- * @return {?}
- */
- self.ag = function(clone) {
- var destElements;
- if (initEvent()) {
- if (!destElements) {
- /** @type {number} */
- destElements = clone.offsetHeight - self.$f(clone, "paddingTop") - self.$f(clone, "paddingBottom") - self.$f(clone, "borderTop") - self.$f(clone, "borderBottom");
- }
- } else {
- destElements = self.$f(clone, "height");
- if ((0, window.isNaN)(destElements) || 0 == destElements) {
- if (clone.offsetHeight) {
- /** @type {number} */
- destElements = clone.offsetHeight - self.$f(clone, "padding-top") - self.$f(clone, "padding-bottom") - self.$f(clone, "border-top-width") - self.$f(clone, "border-bottom-width");
- }
- }
- }
- return(0, window.isNaN)(destElements) || 0 > destElements ? 0 : destElements;
- };
- /**
- * @param {Element} el
- * @return {?}
- */
- self.bg = function(el) {
- var box;
- if (initEvent()) {
- if (!(box = el.style.pixelWidth || 0)) {
- /** @type {number} */
- box = el.offsetWidth - self.$f(el, "paddingLeft") - self.$f(el, "paddingRight") - self.$f(el, "borderLeft") - self.$f(el, "borderRight");
- }
- } else {
- box = self.$f(el, "width");
- if ((0, window.isNaN)(box) || 0 == box) {
- if (el.offsetWidth) {
- /** @type {number} */
- box = el.offsetWidth - self.$f(el, "padding-left") - self.$f(el, "padding-right") - self.$f(el, "border-left-width") - self.$f(el, "border-right-width");
- }
- }
- }
- return(0, window.isNaN)(box) || 0 > box ? 0 : box;
- };
- /**
- * @param {Object} e
- * @return {undefined}
- */
- self.Bma = function(e) {
- if (null != e) {
- if (self.ge(e)) {
- if (self.Pb) {
- /** @type {string} */
- e.style.display = "none";
- self.td(e.offsetHeight);
- /** @type {string} */
- e.style.display = "";
- }
- }
- }
- };
- /** @type {number} */
- self.Li = 0;
- /** @type {number} */
- self.vfa = 0;
- /** @type {string} */
- self.Wha = "";
- /** @type {boolean} */
- self.Zha = false;
- /** @type {boolean} */
- self.$ha = false;
- self.ua("google.vm.e", function() {
- return "";
- });
- /**
- * @param {Object} e
- * @return {?}
- */
- self.dg = function(e) {
- if (!e) {
- e = window.event;
- }
- return e.target || e.srcElement;
- };
- /**
- * @param {Node} event
- * @return {undefined}
- */
- self.eg = function(event) {
- event = event || window.event;
- if (event.stopPropagation) {
- event.stopPropagation();
- } else {
- /** @type {boolean} */
- event.cancelBubble = true;
- }
- };
- /**
- * @param {Function} matcherFunction
- * @param {?} dataAndEvents
- * @return {?}
- */
- self.Hh = function(matcherFunction, dataAndEvents) {
- /** @type {number} */
- var tOffset = 0;
- /** @type {boolean} */
- var d = false;
- /** @type {null} */
- var args = null;
- return function() {
- var t = (0, self.q)();
- if (d) {
- /** @type {Array.<?>} */
- args = Array.prototype.slice.call(arguments, 0);
- } else {
- if (100 <= t - tOffset) {
- tOffset = t;
- matcherFunction.apply(null, arguments);
- } else {
- if (dataAndEvents) {
- /** @type {number} */
- t = 100 - (t - tOffset);
- /** @type {boolean} */
- d = true;
- /** @type {Array.<?>} */
- args = Array.prototype.slice.call(arguments, 0);
- window.setTimeout(function() {
- /** @type {boolean} */
- d = false;
- tOffset = (0, self.q)();
- matcherFunction.apply(null, args);
- }, t);
- }
- }
- }
- };
- };
- /**
- * @param {boolean} charset
- * @param {boolean} elements
- * @param {Array} scope
- * @param {Object} parts
- * @param {Object} pres
- * @param {string} message
- * @param {string} file
- * @param {string} ps
- * @return {undefined}
- */
- self.nda = function(charset, elements, scope, parts, pres, message, file, ps) {
- /** @type {string} */
- var name = charset ? "&ved=" + charset : "";
- var y = elements ? window.google.getEI(elements) : window.google.kEI;
- var s = scope || [];
- parts = parts || [];
- pres = pres || [];
- message = message || "";
- file = file || "";
- var v = new self.sf;
- var len = s.length;
- var _total = pres.length;
- v.$ = y;
- /** @type {number} */
- y = 0;
- for (;y < len;y++) {
- if (y >= _total || pres[y]) {
- self.Oca(v, s[y], parts[y]);
- } else {
- self.Pca(v, s[y], parts[y]);
- }
- }
- if (0 == len) {
- if (0 < pres.length) {
- if (!pres[0]) {
- self.Pca(v);
- }
- }
- }
- s = self.tf(v);
- if (y = elements || parts && parts[0]) {
- window.google.log(message, file + name + s + "", "", y, ps);
- } else {
- self.Ee(Error("o"), {
- ved : charset,
- trE : elements,
- vet : scope && scope[0],
- taE : parts && parts[0],
- ct : message,
- data : file,
- path : ps
- });
- }
- };
- /**
- * @param {boolean} item
- * @param {Object} parts
- * @param {Object} pres
- * @param {string} output
- * @param {Object} target
- * @param {string} ps
- * @return {undefined}
- */
- self.fg = function(item, parts, pres, output, target, ps) {
- var data = item ? self.rf(item) : "";
- if (!item || data) {
- /** @type {Array} */
- var ret = [];
- if (parts) {
- /** @type {number} */
- var i = 0;
- var part;
- for (;part = parts[i];i++) {
- if (part = self.rf(part)) {
- ret.push(part);
- } else {
- self.Ee(Error("Ac"), {
- trE : item ? 1 : 0,
- i : i,
- ct : output,
- data : target,
- path : ps
- });
- }
- }
- }
- self.nda(data, item, ret, parts, pres, output, target, ps);
- }
- };
- /**
- * @param {string} type
- * @param {string} c
- * @param {string} s
- * @param {?} obj
- * @return {undefined}
- */
- self.gg = function(type, c, s, obj) {
- var charset = self.rf(type);
- window.google.log(c || "", (s || "") + (charset ? "&ved=" + charset : "") + "", "", type, obj);
- };
- /**
- * @param {?} dataAndEvents
- * @param {Object} node
- * @param {?} deepDataAndEvents
- * @return {undefined}
- */
- var $Node = function(dataAndEvents, node, deepDataAndEvents) {
- this.ha = deepDataAndEvents;
- this.ga = dataAndEvents;
- /** @type {Object} */
- this.ma = node;
- /** @type {number} */
- this.ia = 0;
- /** @type {null} */
- this.$ = null;
- };
- /**
- * @return {?}
- */
- $Node.prototype.get = function() {
- var source;
- if (0 < this.ia) {
- this.ia--;
- source = this.$;
- this.$ = source.next;
- /** @type {null} */
- source.next = null;
- } else {
- source = this.ga();
- }
- return source;
- };
- /**
- * @param {Object} node
- * @param {?} attributes
- * @return {undefined}
- */
- var append = function(node, attributes) {
- node.ma(attributes);
- if (node.ia < node.ha) {
- node.ia++;
- attributes.next = node.$;
- node.$ = attributes;
- }
- };
- var extend;
- var addleadingZero;
- var create;
- var jQuery;
- /**
- * @param {?} b
- * @return {undefined}
- */
- extend = function(b) {
- self.ca.setTimeout(function() {
- throw b;
- }, 0);
- };
- /**
- * @param {Function} style
- * @param {?} item
- * @return {undefined}
- */
- self.xg = function(style, item) {
- /** @type {Function} */
- var tmp = style;
- if (item) {
- tmp = (0, self.p)(style, item);
- }
- tmp = jQuery(tmp);
- if (!self.pa(self.ca.setImmediate) || self.ca.Window && (self.ca.Window.prototype && self.ca.Window.prototype.setImmediate == self.ca.setImmediate)) {
- if (!addleadingZero) {
- addleadingZero = create();
- }
- addleadingZero(tmp);
- } else {
- self.ca.setImmediate(tmp);
- }
- };
- /**
- * @return {?}
- */
- create = function() {
- var Channel = self.ca.MessageChannel;
- if ("undefined" === typeof Channel) {
- if ("undefined" !== typeof window) {
- if (window.postMessage) {
- if (window.addEventListener) {
- if (!self.ch()) {
- /**
- * @return {undefined}
- */
- Channel = function() {
- var f = window.document.createElement("IFRAME");
- /** @type {string} */
- f.style.display = "none";
- /** @type {string} */
- f.src = "";
- window.document.documentElement.appendChild(f);
- var win = f.contentWindow;
- f = win.document;
- f.open();
- f.write("");
- f.close();
- /** @type {string} */
- var messageName = "callImmediate" + Math.random();
- /** @type {string} */
- var url = "file:" == win.location.protocol ? "*" : win.location.protocol + "//" + win.location.host;
- f = (0, self.p)(function(event) {
- if (("*" == url || event.origin == url) && event.data == messageName) {
- this.port1.onmessage();
- }
- }, this);
- win.addEventListener("message", f, false);
- this.port1 = {};
- this.port2 = {
- /**
- * @return {undefined}
- */
- postMessage : function() {
- win.postMessage(messageName, url);
- }
- };
- };
- }
- }
- }
- }
- }
- if ("undefined" !== typeof Channel && !self.Cb()) {
- var channel = new Channel;
- var head = {};
- var tail = head;
- /**
- * @return {undefined}
- */
- channel.port1.onmessage = function() {
- if (self.Uf(head.next)) {
- head = head.next;
- var cb = head.cb;
- /** @type {null} */
- head.cb = null;
- cb();
- }
- };
- return function(cb) {
- tail.next = {
- /** @type {Function} */
- cb : cb
- };
- tail = tail.next;
- channel.port2.postMessage(0);
- };
- }
- return "undefined" !== typeof window.document && "onreadystatechange" in window.document.createElement("SCRIPT") ? function(fetchOnlyFunction) {
- var script = window.document.createElement("SCRIPT");
- /**
- * @return {undefined}
- */
- script.onreadystatechange = function() {
- /** @type {null} */
- script.onreadystatechange = null;
- script.parentNode.removeChild(script);
- /** @type {null} */
- script = null;
- fetchOnlyFunction();
- /** @type {null} */
- fetchOnlyFunction = null;
- };
- window.document.documentElement.appendChild(script);
- } : function(funcToCall) {
- self.ca.setTimeout(funcToCall, 0);
- };
- };
- /** @type {function (?): ?} */
- jQuery = self.$b;
- /**
- * @return {undefined}
- */
- var dialog = function() {
- /** @type {null} */
- this.ia = this.$ = null;
- };
- var header = new $Node(function() {
- return new grid;
- }, function(record) {
- record.reset();
- }, 100);
- /**
- * @param {(number|string)} attributes
- * @param {Array} attr
- * @return {undefined}
- */
- dialog.prototype.add = function(attributes, attr) {
- var $ = header.get();
- $.set(attributes, attr);
- if (this.ia) {
- this.ia.next = $;
- } else {
- this.$ = $;
- }
- this.ia = $;
- };
- /**
- * @return {?}
- */
- dialog.prototype.remove = function() {
- /** @type {null} */
- var removed = null;
- if (this.$) {
- removed = this.$;
- this.$ = this.$.next;
- if (!this.$) {
- /** @type {null} */
- this.ia = null;
- }
- /** @type {null} */
- removed.next = null;
- }
- return removed;
- };
- /**
- * @return {undefined}
- */
- var grid = function() {
- /** @type {null} */
- this.next = this.scope = this.Kk = null;
- };
- /**
- * @param {number} opt_attributes
- * @param {?} id
- * @return {undefined}
- */
- grid.prototype.set = function(opt_attributes, id) {
- /** @type {number} */
- this.Kk = opt_attributes;
- this.scope = id;
- /** @type {null} */
- this.next = null;
- };
- /**
- * @return {undefined}
- */
- grid.prototype.reset = function() {
- /** @type {null} */
- this.next = this.scope = this.Kk = null;
- };
- var resolveOne;
- var resolvePromise;
- var Yda;
- var _;
- var transition;
- /**
- * @param {string} config
- * @param {Array} protoProps
- * @return {undefined}
- */
- self.$da = function(config, protoProps) {
- if (!resolveOne) {
- resolvePromise();
- }
- if (!Yda) {
- resolveOne();
- /** @type {boolean} */
- Yda = true;
- }
- _.add(config, protoProps);
- };
- /**
- * @return {undefined}
- */
- resolvePromise = function() {
- if (self.ca.Promise && self.ca.Promise.resolve) {
- var n = self.ca.Promise.resolve(void 0);
- /**
- * @return {undefined}
- */
- resolveOne = function() {
- n.then(transition);
- };
- } else {
- /**
- * @return {undefined}
- */
- resolveOne = function() {
- self.xg(transition);
- };
- }
- };
- /** @type {boolean} */
- Yda = false;
- _ = new dialog;
- /**
- * @return {undefined}
- */
- transition = function() {
- /** @type {null} */
- var value = null;
- for (;value = _.remove();) {
- try {
- value.Kk.call(value.scope);
- } catch (config) {
- extend(config);
- }
- append(header, value);
- }
- /** @type {boolean} */
- Yda = false;
- };
- var execute;
- /**
- * @param {Function} a
- * @return {undefined}
- */
- execute = function(a) {
- a.prototype.then = a.prototype.then;
- /** @type {boolean} */
- a.prototype.$goog_Thenable = true;
- };
- /**
- * @param {?} object
- * @return {?}
- */
- self.cea = function(object) {
- if (!object) {
- return false;
- }
- try {
- return!!object.$goog_Thenable;
- } catch (b) {
- return false;
- }
- };
- var sprite;
- var seg;
- var sort;
- var elementFromPoint;
- var _keys;
- var print;
- var defaults;
- var prepare;
- var constructor;
- /**
- * @param {?} next_callback
- * @param {?} next_scope
- * @return {undefined}
- */
- self.Bg = function(next_callback, next_scope) {
- /** @type {number} */
- this.$ = 0;
- this.na = void 0;
- /** @type {null} */
- this.ha = this.ia = this.ga = null;
- /** @type {boolean} */
- this.ma = this.ka = false;
- if (next_callback != self.R) {
- try {
- var n = this;
- next_callback.call(next_scope, function(opt_attributes) {
- concat(n, 2, opt_attributes);
- }, function(opt_attributes) {
- concat(n, 3, opt_attributes);
- });
- } catch (attributes) {
- concat(this, 3, attributes);
- }
- }
- };
- /**
- * @return {undefined}
- */
- sprite = function() {
- /** @type {null} */
- this.next = this.context = this.ia = this.ha = this.$ = null;
- /** @type {boolean} */
- this.ga = false;
- };
- /**
- * @return {undefined}
- */
- sprite.prototype.reset = function() {
- /** @type {null} */
- this.context = this.ia = this.ha = this.$ = null;
- /** @type {boolean} */
- this.ga = false;
- };
- seg = new $Node(function() {
- return new sprite;
- }, function(record) {
- record.reset();
- }, 100);
- /**
- * @param {string} x
- * @param {string} key
- * @param {Object} a
- * @return {?}
- */
- sort = function(x, key, a) {
- var data = seg.get();
- /** @type {string} */
- data.ha = x;
- /** @type {string} */
- data.ia = key;
- /** @type {Object} */
- data.context = a;
- return data;
- };
- /**
- * @param {?} opt_attributes
- * @return {?}
- */
- self.Cg = function(opt_attributes) {
- if (opt_attributes instanceof self.Bg) {
- return opt_attributes;
- }
- var n = new self.Bg(self.R);
- concat(n, 2, opt_attributes);
- return n;
- };
- /**
- * @param {?} outErr
- * @return {?}
- */
- self.dea = function(outErr) {
- return new self.Bg(function(dataAndEvents, cb) {
- cb(outErr);
- });
- };
- /**
- * @param {string} name
- * @param {?} i
- * @param {Function} opts
- * @return {undefined}
- */
- self.$ga = function(name, i, opts) {
- if (!objEquiv(name, i, opts, null)) {
- self.$da(self.sa(i, name));
- }
- };
- /**
- * @param {Array} heads
- * @return {?}
- */
- self.eea = function(heads) {
- return new self.Bg(function(on, getProperty) {
- var numHeads = heads.length;
- /** @type {Array} */
- var failuresLink = [];
- if (numHeads) {
- /**
- * @param {number} id
- * @param {?} obj
- * @return {undefined}
- */
- var i = function(id, obj) {
- numHeads--;
- failuresLink[id] = obj;
- if (0 == numHeads) {
- on(failuresLink);
- }
- };
- /**
- * @param {?} name
- * @return {undefined}
- */
- var opts = function(name) {
- getProperty(name);
- };
- /** @type {number} */
- var h = 0;
- var handle;
- for (;h < heads.length;h++) {
- handle = heads[h];
- self.$ga(handle, self.sa(i, h), opts);
- }
- } else {
- on(failuresLink);
- }
- });
- };
- /**
- * @return {?}
- */
- self.Eg = function() {
- var text;
- var result;
- var fn = new self.Bg(function(textAlt, subKey) {
- text = textAlt;
- result = subKey;
- });
- return new Promise(fn, text, result);
- };
- /**
- * @param {string} property
- * @param {?} options
- * @param {Object} next
- * @return {?}
- */
- self.Bg.prototype.then = function(property, options, next) {
- return self.gea(this, self.pa(property) ? property : null, self.pa(options) ? options : null, next);
- };
- execute(self.Bg);
- /**
- * @param {?} tasks
- * @param {Text} x
- * @param {Object} t
- * @return {?}
- */
- self.Fg = function(tasks, x, t) {
- x = sort(x, x, t);
- /** @type {boolean} */
- x.ga = true;
- _keys(tasks, x);
- return tasks;
- };
- /**
- * @param {?} e
- * @return {undefined}
- */
- self.Bg.prototype.cancel = function(e) {
- if (0 == this.$) {
- self.$da(function() {
- var activeClassName = new self.Gg(e);
- elementFromPoint(this, activeClassName);
- }, this);
- }
- };
- /**
- * @param {Object} doc
- * @param {Object} element
- * @return {undefined}
- */
- elementFromPoint = function(doc, element) {
- if (0 == doc.$) {
- if (doc.ga) {
- var body = doc.ga;
- if (body.ia) {
- /** @type {number} */
- var self = 0;
- /** @type {null} */
- var name = null;
- /** @type {null} */
- var fn = null;
- var n = body.ia;
- for (;n && (n.ga || (self++, n.$ == doc && (name = n), !(name && 1 < self)));n = n.next) {
- if (!name) {
- fn = n;
- }
- }
- if (name) {
- if (0 == body.$ && 1 == self) {
- elementFromPoint(body, element);
- } else {
- if (fn) {
- self = fn;
- if (self.next == body.ha) {
- body.ha = self;
- }
- self.next = self.next.next;
- } else {
- matcher(body);
- }
- print(body, name, 3, element);
- }
- }
- }
- /** @type {null} */
- doc.ga = null;
- } else {
- concat(doc, 3, element);
- }
- }
- };
- /**
- * @param {?} obj
- * @param {?} list
- * @return {undefined}
- */
- _keys = function(obj, list) {
- if (!obj.ia) {
- if (!(2 != obj.$ && 3 != obj.$)) {
- isElement(obj);
- }
- }
- if (obj.ha) {
- obj.ha.next = list;
- } else {
- obj.ia = list;
- }
- obj.ha = list;
- };
- /**
- * @param {?} results
- * @param {boolean} matches
- * @param {boolean} url
- * @param {?} item
- * @return {?}
- */
- self.gea = function(results, matches, url, item) {
- var options = sort(null, null, null);
- options.$ = new self.Bg(function(forOwn, opt_callback) {
- options.ha = matches ? function(opt_attributes) {
- try {
- var attributes = matches.call(item, opt_attributes);
- forOwn(attributes);
- } catch (gl) {
- opt_callback(gl);
- }
- } : forOwn;
- options.ia = url ? function(opt_attributes) {
- try {
- var attributes = url.call(item, opt_attributes);
- if (!self.Uf(attributes) && opt_attributes instanceof self.Gg) {
- opt_callback(opt_attributes);
- } else {
- forOwn(attributes);
- }
- } catch (gl) {
- opt_callback(gl);
- }
- } : opt_callback;
- });
- options.$.ga = results;
- _keys(results, options);
- return options.$;
- };
- /**
- * @param {?} opt_attributes
- * @return {undefined}
- */
- self.Bg.prototype.ra = function(opt_attributes) {
- /** @type {number} */
- this.$ = 0;
- concat(this, 2, opt_attributes);
- };
- /**
- * @param {?} opt_attributes
- * @return {undefined}
- */
- self.Bg.prototype.ya = function(opt_attributes) {
- /** @type {number} */
- this.$ = 0;
- concat(this, 3, opt_attributes);
- };
- /**
- * @param {string} item
- * @param {number} expectedNumberOfNonCommentArgs
- * @param {Object} opt_attributes
- * @return {undefined}
- */
- var concat = function(item, expectedNumberOfNonCommentArgs, opt_attributes) {
- if (0 == item.$) {
- if (item == opt_attributes) {
- /** @type {number} */
- expectedNumberOfNonCommentArgs = 3;
- /** @type {TypeError} */
- opt_attributes = new TypeError("Promise cannot resolve to itself");
- }
- /** @type {number} */
- item.$ = 1;
- if (!objEquiv(opt_attributes, item.ra, item.ya, item)) {
- /** @type {Object} */
- item.na = opt_attributes;
- /** @type {number} */
- item.$ = expectedNumberOfNonCommentArgs;
- /** @type {null} */
- item.ga = null;
- isElement(item);
- if (!(3 != expectedNumberOfNonCommentArgs)) {
- if (!(opt_attributes instanceof self.Gg)) {
- prepare(item, opt_attributes);
- }
- }
- }
- }
- };
- /**
- * @param {?} attributes
- * @param {string} index
- * @param {Function} next
- * @param {Object} a
- * @return {?}
- */
- var objEquiv = function(attributes, index, next, a) {
- if (attributes instanceof self.Bg) {
- return _keys(attributes, sort(index || self.R, next || null, a)), true;
- }
- if (self.cea(attributes)) {
- return attributes.then(index, next, a), true;
- }
- if (self.qa(attributes)) {
- try {
- var m = attributes.then;
- if (self.pa(m)) {
- return upload(attributes, m, index, next, a), true;
- }
- } catch (button) {
- return next.call(a, button), true;
- }
- }
- return false;
- };
- /**
- * @param {?} a
- * @param {Function} b
- * @param {Function} i
- * @param {Function} url
- * @param {Object} uri
- * @return {undefined}
- */
- var upload = function(a, b, i, url, uri) {
- /** @type {boolean} */
- var f = false;
- /**
- * @param {?} args
- * @return {undefined}
- */
- var start = function(args) {
- if (!f) {
- /** @type {boolean} */
- f = true;
- i.call(uri, args);
- }
- };
- /**
- * @param {?} callback
- * @return {undefined}
- */
- var end = function(callback) {
- if (!f) {
- /** @type {boolean} */
- f = true;
- url.call(uri, callback);
- }
- };
- try {
- b.call(a, start, end);
- } catch (restoreScript) {
- end(restoreScript);
- }
- };
- /**
- * @param {?} child
- * @return {undefined}
- */
- var isElement = function(child) {
- if (!child.ka) {
- /** @type {boolean} */
- child.ka = true;
- self.$da(child.qa, child);
- }
- };
- /**
- * @param {?} el
- * @return {?}
- */
- var matcher = function(el) {
- /** @type {null} */
- var attr = null;
- if (el.ia) {
- attr = el.ia;
- el.ia = attr.next;
- /** @type {null} */
- attr.next = null;
- }
- if (!el.ia) {
- /** @type {null} */
- el.ha = null;
- }
- return attr;
- };
- /**
- * @return {undefined}
- */
- self.Bg.prototype.qa = function() {
- /** @type {null} */
- var memory = null;
- for (;memory = matcher(this);) {
- print(this, memory, this.$, this.na);
- }
- /** @type {boolean} */
- this.ka = false;
- };
- /**
- * @param {Object} s
- * @param {Object} options
- * @param {number} defs
- * @param {Object} ast
- * @return {undefined}
- */
- print = function(s, options, defs, ast) {
- if (3 == defs && (options.ia && !options.ga)) {
- for (;s && s.ma;s = s.ga) {
- /** @type {boolean} */
- s.ma = false;
- }
- }
- if (options.$) {
- /** @type {null} */
- options.$.ga = null;
- defaults(options, defs, ast);
- } else {
- try {
- if (options.ga) {
- options.ha.call(options.context);
- } else {
- defaults(options, defs, ast);
- }
- } catch (prevTag) {
- constructor.call(null, prevTag);
- }
- }
- append(seg, options);
- };
- /**
- * @param {Object} options
- * @param {number} defs
- * @param {Object} args
- * @return {undefined}
- */
- defaults = function(options, defs, args) {
- if (2 == defs) {
- options.ha.call(options.context, args);
- } else {
- if (options.ia) {
- options.ia.call(options.context, args);
- }
- }
- };
- /**
- * @param {string} stop
- * @param {Object} node
- * @return {undefined}
- */
- prepare = function(stop, node) {
- /** @type {boolean} */
- stop.ma = true;
- self.$da(function() {
- if (stop.ma) {
- constructor.call(null, node);
- }
- });
- };
- /** @type {function (?): undefined} */
- constructor = extend;
- /**
- * @param {?} mapper
- * @return {undefined}
- */
- self.Gg = function(mapper) {
- self.va.call(this, mapper);
- };
- self.r(self.Gg, self.va);
- /** @type {string} */
- self.Gg.prototype.name = "cancel";
- /**
- * @param {string} descriptor
- * @param {?} resolve
- * @param {Function} reject
- * @return {undefined}
- */
- var Promise = function(descriptor, resolve, reject) {
- /** @type {string} */
- this.Mc = descriptor;
- this.resolve = resolve;
- /** @type {Function} */
- this.reject = reject;
- };
- self.bf("anim", {
- /**
- * @return {undefined}
- */
- dispose : function() {
- /** @type {Array} */
- out = [];
- abort();
- }
- });
- /**
- * @param {?} attributes
- * @return {undefined}
- */
- constructor = function(attributes) {
- if (attributes instanceof Error) {
- self.Ee(attributes, {
- ur : "1"
- });
- } else {
- /** @type {Error} */
- var opt_attributes = Error("mc");
- var optgroup = {
- ur : "1"
- };
- if (attributes) {
- optgroup.r = attributes;
- }
- self.Ee(opt_attributes, optgroup);
- }
- };
- self.ua("google.dom.append", self.te);
- self.ua("google.listen", self.Ce);
- self.ua("google.unlisten", self.De);
- self.ua("google.msg.listen", self.vf);
- self.ua("google.msg.unlisten", self.wf);
- self.ua("google.msg.send", self.H);
- self.ua("google.nav.go", self.Rf);
- self.ua("google.nav.search", self.Tf);
- self.ua("google.nav.gjh", self.hda);
- self.ua("google.style.getComputedStyle", self.$f);
- self.ua("google.style.hasClass", self.J);
- self.ua("google.style.isRtl", self.Zf);
- self.ua("google.style.addClass", self.K);
- self.ua("google.style.removeClass", self.L);
- self.ua("google.util.logVisibilityChange", self.fg);
- self.ua("google.nav.getLocation", function() {
- return window.location.href;
- });
- self.La = self.aa("google.ua") || (window.navigator.userAgent || runInContext());
- var read;
- var ondata;
- /**
- * @param {string} node
- * @param {Object} optgroup
- * @return {?}
- */
- self.Yf = function(node, optgroup) {
- var name = self.za("/%s=(.*?)(?:$|/|\\?)", optgroup);
- return(name = ondata(name).exec(node)) ? name[1] : null;
- };
- /**
- * @param {string} name
- * @param {string} ver
- * @return {?}
- */
- read = function(name, ver) {
- var r = name.indexOf("?");
- if (0 > r) {
- /** @type {null} */
- r = null;
- } else {
- a: {
- r = name.substring(r + 1);
- r = r.length ? r.split("&") : [];
- /** @type {number} */
- var j = 0;
- for (;j < r.length;j++) {
- var target = r[j];
- /** @type {(Array.<string>|null)} */
- var obj = /^(.+?)(?:=|$)/.exec(target);
- if ((obj ? self.Fa(obj[1]) : null) == ver) {
- r = (r = /=(.*)$/.exec(target)) ? self.Fa(r[1]) : null;
- break a;
- }
- }
- /** @type {null} */
- r = null;
- }
- }
- return r;
- };
- ondata = self.Gd(function(punctuation) {
- return new RegExp(punctuation);
- });
- /**
- * @return {?}
- */
- self.gf = function() {
- return!self.ff() && (self.Ab("iPod") || (self.Ab("iPhone") || (self.Ab("Android") || self.Ab("IEMobile"))));
- };
- /**
- * @return {?}
- */
- self.ff = function() {
- return self.Ab("iPad") || (self.Ab("Android") && !self.Ab("Mobile") || self.Ab("Silk"));
- };
- /**
- * @return {?}
- */
- self.hf = function() {
- return!self.gf() && !self.ff();
- };
- /**
- * @return {undefined}
- */
- var copy = function() {
- self.wb.call(this);
- };
- self.r(copy, self.wb);
- /**
- * @return {undefined}
- */
- copy.prototype.initialize = function() {
- };
- /**
- * @param {?} args
- * @param {?} update
- * @return {undefined}
- */
- var Subscription = function(args, update) {
- this.$ = args;
- this.ia = update;
- };
- /**
- * @param {?} opt_attributes
- * @return {undefined}
- */
- Subscription.prototype.execute = function(opt_attributes) {
- if (this.$) {
- this.$.call(this.ia || null, opt_attributes);
- /** @type {null} */
- this.$ = this.ia = null;
- }
- };
- /**
- * @return {undefined}
- */
- Subscription.prototype.abort = function() {
- /** @type {null} */
- this.ia = this.$ = null;
- };
- /**
- * @param {?} top
- * @param {?} width
- * @return {undefined}
- */
- var Canvas = function(top, width) {
- self.wb.call(this);
- this.ga = top;
- this.ma = width;
- /** @type {Array} */
- this.$ = [];
- /** @type {Array} */
- this.ia = [];
- /** @type {Array} */
- this.ha = [];
- };
- self.r(Canvas, self.wb);
- /** @type {function (): undefined} */
- Canvas.prototype.ka = copy;
- /** @type {null} */
- Canvas.prototype.ql = null;
- /**
- * @return {?}
- */
- Canvas.prototype.getId = function() {
- return this.ma;
- };
- /**
- * @param {Object} a
- * @param {string} start
- * @return {undefined}
- */
- var slice = function(a, start) {
- a.ia.push(new Subscription(start, void 0));
- };
- /**
- * @param {Object} options
- * @param {?} callback
- * @return {?}
- */
- var decrypt = function(options, callback) {
- var result = new options.ka;
- result.initialize(callback());
- options.ql = result;
- /** @type {boolean} */
- result = (result = !!createTable(options.ha, callback())) || !!createTable(options.$, callback());
- if (!result) {
- /** @type {number} */
- options.ia.length = 0;
- }
- return result;
- };
- /**
- * @param {string} options
- * @return {undefined}
- */
- Canvas.prototype.onError = function(options) {
- if (options = createTable(this.ia, options)) {
- window.setTimeout(debug("Module errback failures: " + options), 0);
- }
- /** @type {number} */
- this.ha.length = 0;
- /** @type {number} */
- this.$.length = 0;
- };
- /**
- * @param {Array} codeSegments
- * @param {?} attributes
- * @return {?}
- */
- var createTable = function(codeSegments, attributes) {
- /** @type {Array} */
- var re = [];
- /** @type {number} */
- var i = 0;
- for (;i < codeSegments.length;i++) {
- try {
- codeSegments[i].execute(attributes);
- } catch (attribs) {
- extend(attribs);
- re.push(attribs);
- }
- }
- /** @type {number} */
- codeSegments.length = 0;
- return re.length ? re : null;
- };
- /**
- * @return {undefined}
- */
- Canvas.prototype.Ha = function() {
- Canvas.Ba.Ha.call(this);
- self.yb(this.ql);
- };
- /**
- * @param {?} opt_attributes
- * @param {Object} name
- * @return {undefined}
- */
- self.Hg = function(opt_attributes, name) {
- /** @type {Array} */
- this.Vp = [];
- this.Ia = opt_attributes;
- this.Ea = name || null;
- /** @type {boolean} */
- this.ma = this.ia = false;
- this.ha = void 0;
- /** @type {boolean} */
- this.xa = this.Ja = this.qa = false;
- /** @type {number} */
- this.na = 0;
- /** @type {null} */
- this.ga = null;
- /** @type {number} */
- this.ka = 0;
- };
- /**
- * @param {?} evt
- * @return {undefined}
- */
- self.Hg.prototype.cancel = function(evt) {
- if (this.ia) {
- if (this.ha instanceof self.Hg) {
- this.ha.cancel();
- }
- } else {
- if (this.ga) {
- var item = this.ga;
- delete this.ga;
- if (evt) {
- item.cancel(evt);
- } else {
- item.ka--;
- if (0 >= item.ka) {
- item.cancel();
- }
- }
- }
- if (this.Ia) {
- this.Ia.call(this.Ea, this);
- } else {
- /** @type {boolean} */
- this.xa = true;
- }
- if (!this.ia) {
- this.$(new type);
- }
- }
- };
- /**
- * @param {?} opt_attributes
- * @param {Object} name
- * @return {undefined}
- */
- self.Hg.prototype.za = function(opt_attributes, name) {
- /** @type {boolean} */
- this.qa = false;
- _assert(this, opt_attributes, name);
- };
- /**
- * @param {Object} condition
- * @param {boolean} recurring
- * @param {?} keepData
- * @return {undefined}
- */
- var _assert = function(condition, recurring, keepData) {
- /** @type {boolean} */
- condition.ia = true;
- condition.ha = keepData;
- /** @type {boolean} */
- condition.ma = !recurring;
- tick(condition);
- };
- /**
- * @param {?} dataAndEvents
- * @return {undefined}
- */
- var isA = function(dataAndEvents) {
- if (dataAndEvents.ia) {
- if (!dataAndEvents.xa) {
- throw new plugin;
- }
- /** @type {boolean} */
- dataAndEvents.xa = false;
- }
- };
- /**
- * @param {?} name
- * @return {undefined}
- */
- self.Hg.prototype.be = function(name) {
- isA(this);
- _assert(this, true, name);
- };
- /**
- * @param {?} opt_attributes
- * @return {undefined}
- */
- self.Hg.prototype.$ = function(opt_attributes) {
- isA(this);
- _assert(this, false, opt_attributes);
- };
- /**
- * @param {?} which
- * @param {?} index
- * @return {undefined}
- */
- self.Lg = function(which, index) {
- self.Kg(which, index, null, void 0);
- };
- /**
- * @param {?} callback
- * @param {?} property
- * @param {Object} resp
- * @param {?} handler
- * @return {undefined}
- */
- self.Kg = function(callback, property, resp, handler) {
- callback.Vp.push([property, resp, handler]);
- if (callback.ia) {
- tick(callback);
- }
- };
- /**
- * @param {string} property
- * @param {Object} fn
- * @param {Object} next
- * @return {?}
- */
- self.Hg.prototype.then = function(property, fn, next) {
- var text;
- var _progressed;
- var me = new self.Bg(function(textAlt, dataAndEvents) {
- text = textAlt;
- _progressed = dataAndEvents;
- });
- self.Kg(this, text, function(value) {
- if (value instanceof type) {
- me.cancel();
- } else {
- _progressed(value);
- }
- });
- return me.then(property, fn, next);
- };
- execute(self.Hg);
- /**
- * @param {?} opt_attributes
- * @return {?}
- */
- self.Hg.prototype.Za = function(opt_attributes) {
- var result = new self.Hg;
- self.Kg(this, result.be, result.$, result);
- if (opt_attributes) {
- result.ga = this;
- this.ka++;
- }
- return result;
- };
- /**
- * @param {?} e
- * @return {?}
- */
- self.Hg.prototype.isError = function(e) {
- return e instanceof Error;
- };
- /**
- * @param {Object} req
- * @return {?}
- */
- var list = function(req) {
- return(0, self.bb)(req.Vp, function(r) {
- return self.pa(r[1]);
- });
- };
- /**
- * @param {Object} options
- * @return {undefined}
- */
- var tick = function(options) {
- if (options.na && (options.ia && list(options))) {
- var start = options.na;
- var that = range[start];
- if (that) {
- self.ca.clearTimeout(that.vx);
- delete range[start];
- }
- /** @type {number} */
- options.na = 0;
- }
- if (options.ga) {
- options.ga.ka--;
- delete options.ga;
- }
- start = options.ha;
- /** @type {boolean} */
- var model = that = false;
- for (;options.Vp.length && !options.qa;) {
- var array = options.Vp.shift();
- var src = array[0];
- var value = array[1];
- array = array[2];
- if (src = options.ma ? value : src) {
- try {
- var index = src.call(array || options.Ea, start);
- if (self.Uf(index)) {
- options.ma = options.ma && (index == start || options.isError(index));
- options.ha = start = index;
- }
- if (self.cea(start) || "function" === typeof self.ca.Promise && start instanceof self.ca.Promise) {
- /** @type {boolean} */
- model = true;
- /** @type {boolean} */
- options.qa = true;
- }
- } catch (startOrEnd) {
- start = startOrEnd;
- /** @type {boolean} */
- options.ma = true;
- if (!list(options)) {
- /** @type {boolean} */
- that = true;
- }
- }
- }
- }
- options.ha = start;
- if (model) {
- index = (0, self.p)(options.za, options, true);
- model = (0, self.p)(options.za, options, false);
- if (start instanceof self.Hg) {
- self.Kg(start, index, model);
- /** @type {boolean} */
- start.Ja = true;
- } else {
- start.then(index, model);
- }
- }
- if (that) {
- start = new block(start);
- range[start.vx] = start;
- options.na = start.vx;
- }
- };
- /**
- * @return {undefined}
- */
- var plugin = function() {
- self.va.call(this);
- };
- self.r(plugin, self.va);
- /** @type {string} */
- plugin.prototype.message = "Deferred has already fired";
- /** @type {string} */
- plugin.prototype.name = "AlreadyCalledError";
- /**
- * @return {undefined}
- */
- var type = function() {
- self.va.call(this);
- };
- self.r(type, self.va);
- /** @type {string} */
- type.prototype.message = "Deferred was canceled";
- /** @type {string} */
- type.prototype.name = "CanceledError";
- /**
- * @param {(RegExp|string)} type
- * @return {undefined}
- */
- var block = function(type) {
- this.vx = self.ca.setTimeout((0, self.p)(this.$, this), 0);
- /** @type {(RegExp|string)} */
- this.Qs = type;
- };
- /**
- * @return {undefined}
- */
- block.prototype.$ = function() {
- delete range[this.vx];
- throw this.Qs;
- };
- var range = {};
- var emit;
- var resolve;
- var condition;
- var getAll;
- /**
- * @return {undefined}
- */
- self.Sg = function() {
- self.wb.call(this);
- this.ia = {};
- /** @type {Array} */
- this.ma = [];
- /** @type {Array} */
- this.ha = [];
- /** @type {Array} */
- this.qa = [];
- /** @type {Array} */
- this.ga = [];
- /** @type {Array} */
- this.na = [];
- this.Ea = {};
- this.ka = this.ra = new Canvas([], "");
- /** @type {null} */
- this.Ca = null;
- this.xa = new self.Hg;
- /** @type {boolean} */
- this.za = false;
- /** @type {null} */
- this.Ga = null;
- /** @type {number} */
- this.ya = 0;
- /** @type {boolean} */
- this.Ma = this.Ja = false;
- };
- self.r(self.Sg, self.wb);
- self.ea(self.Sg);
- /**
- * @param {?} attributes
- * @param {?} results
- * @return {undefined}
- */
- self.Sg.prototype.wb = function(attributes, results) {
- if (self.ma(attributes)) {
- var parts = attributes.split("/");
- /** @type {Array} */
- var buf = [];
- /** @type {number} */
- var ii = 0;
- for (;ii < parts.length;ii++) {
- var codeSegments = parts[ii].split(":");
- var prefix = codeSegments[0];
- if (codeSegments[1]) {
- codeSegments = codeSegments[1].split(",");
- /** @type {number} */
- var i = 0;
- for (;i < codeSegments.length;i++) {
- codeSegments[i] = buf[(0, window.parseInt)(codeSegments[i], 36)];
- }
- } else {
- /** @type {Array} */
- codeSegments = [];
- }
- buf.push(prefix);
- this.ia[prefix] = new Canvas(codeSegments, prefix);
- }
- if (results && results.length) {
- self.ob(this.ma, results);
- this.Ca = self.Ua(results);
- } else {
- if (!this.xa.ia) {
- this.xa.be();
- }
- }
- if (this.ka == this.ra) {
- /** @type {null} */
- this.ka = null;
- if (decrypt(this.ra, (0, self.p)(this.Ia, this))) {
- errorHandler(this, 4);
- }
- isFunction(this);
- }
- }
- };
- /**
- * @return {?}
- */
- self.Sg.prototype.Ia = function() {
- return null;
- };
- /**
- * @return {?}
- */
- self.Sg.prototype.dd = function() {
- return 0 < this.ma.length;
- };
- /**
- * @param {?} item
- * @return {undefined}
- */
- var isFunction = function(item) {
- var element = item.Ja;
- var b = item.dd();
- if (b != element) {
- comparator(item, b ? "active" : "idle");
- item.Ja = b;
- }
- /** @type {boolean} */
- element = 0 < item.na.length;
- if (element != item.Ma) {
- comparator(item, element ? "userActive" : "userIdle");
- /** @type {boolean} */
- item.Ma = element;
- }
- };
- /**
- * @param {?} node
- * @param {Array} str
- * @param {Function} msg
- * @return {?}
- */
- var warn = function(node, str, msg) {
- /** @type {Array} */
- var b = [];
- self.sb(str, b);
- /** @type {Array} */
- str = [];
- var dst = {};
- /** @type {number} */
- var j = 0;
- for (;j < b.length;j++) {
- var p = b[j];
- var property = node.ia[p];
- if (!property) {
- throw Error("q`" + p);
- }
- var result = new self.Hg;
- dst[p] = result;
- if (property.ql) {
- result.be(null);
- } else {
- getValue(node, p, property, !!msg, result);
- if (!condition(node, p)) {
- str.push(p);
- }
- }
- }
- if (0 < str.length) {
- text(node, str);
- }
- return dst;
- };
- /**
- * @param {?} node
- * @param {?} list
- * @param {Object} value
- * @param {boolean} defaultValue
- * @param {Object} result
- * @return {undefined}
- */
- var getValue = function(node, list, value, defaultValue, result) {
- value.$.push(new Subscription(result.be, result));
- slice(value, function(msg) {
- result.$(Error(msg));
- });
- if (condition(node, list)) {
- if (defaultValue) {
- getAll(node, list);
- isFunction(node);
- }
- } else {
- if (defaultValue) {
- getAll(node, list);
- }
- }
- };
- /**
- * @param {?} item
- * @param {?} attributes
- * @return {undefined}
- */
- var text = function(item, attributes) {
- if (self.gb(item.ma)) {
- item.Da(attributes);
- } else {
- item.ga.push(attributes);
- isFunction(item);
- }
- };
- /**
- * @param {?} opt_attributes
- * @param {Object} name
- * @param {?} attributes
- * @return {undefined}
- */
- self.Sg.prototype.Da = function(opt_attributes, name, attributes) {
- if (!name) {
- /** @type {number} */
- this.ya = 0;
- }
- this.ma = name = emit(this, opt_attributes);
- if (this.za) {
- this.ha = opt_attributes;
- } else {
- this.ha = self.nb(name);
- }
- isFunction(this);
- if (!self.gb(name)) {
- this.qa.push.apply(this.qa, name);
- opt_attributes = (0, self.p)(this.Ga.ya, this.Ga, self.nb(name), this.ia, null, (0, self.p)(this.Na, this, this.ha, name), (0, self.p)(this.Db, this), !!attributes);
- if (attributes = 5E3 * Math.pow(this.ya, 2)) {
- window.setTimeout(opt_attributes, attributes);
- } else {
- opt_attributes();
- }
- }
- };
- /**
- * @param {?} args
- * @param {Array} codeSegments
- * @return {?}
- */
- emit = function(args, codeSegments) {
- /** @type {number} */
- var i = 0;
- for (;i < codeSegments.length;i++) {
- if (args.ia[codeSegments[i]].ql) {
- throw Error("r`" + codeSegments[i]);
- }
- }
- /** @type {Array} */
- var children = [];
- /** @type {number} */
- i = 0;
- for (;i < codeSegments.length;i++) {
- /** @type {Array} */
- children = children.concat(resolve(args, codeSegments[i]));
- }
- self.sb(children);
- return!args.za && 1 < children.length ? (i = children.shift(), args.ga = (0, self.$a)(children, function(dataAndEvents) {
- return[dataAndEvents];
- }).concat(args.ga), [i]) : children;
- };
- /**
- * @param {?} a
- * @param {?} key
- * @return {?}
- */
- resolve = function(a, key) {
- /** @type {Array} */
- var copy = [];
- if (!self.fb(a.qa, key)) {
- copy.push(key);
- }
- var recurring = self.nb(a.ia[key].ga);
- for (;recurring.length;) {
- var prefix = recurring.pop();
- if (!a.ia[prefix].ql) {
- if (!self.fb(a.qa, prefix)) {
- copy.unshift(prefix);
- Array.prototype.unshift.apply(recurring, a.ia[prefix].ga);
- }
- }
- }
- self.sb(copy);
- return copy;
- };
- /**
- * @param {string} a
- * @return {undefined}
- */
- self.P = function(a) {
- var c = self.Sg.Sa();
- if (!c.isDisposed()) {
- if (decrypt(c.ia[a], (0, self.p)(c.Ia, c))) {
- errorHandler(c, 4);
- }
- self.kb(c.na, a);
- self.kb(c.ma, a);
- if (self.gb(c.ma)) {
- mixin(c);
- }
- if (c.Ca) {
- if (a == c.Ca) {
- if (!c.xa.ia) {
- c.xa.be();
- }
- }
- }
- isFunction(c);
- }
- };
- /**
- * @param {?} index
- * @param {?} node
- * @return {?}
- */
- condition = function(index, node) {
- if (self.fb(index.ma, node)) {
- return true;
- }
- /** @type {number} */
- var i = 0;
- for (;i < index.ga.length;i++) {
- if (self.fb(index.ga[i], node)) {
- return true;
- }
- }
- return false;
- };
- /**
- * @param {string} num
- * @param {Function} b
- * @return {?}
- */
- self.Sg.prototype.load = function(num, b) {
- return warn(this, [num], b)[num];
- };
- /**
- * @param {?} key
- * @param {?} reference
- * @return {undefined}
- */
- getAll = function(key, reference) {
- if (!self.fb(key.na, reference)) {
- key.na.push(reference);
- }
- };
- /**
- * @param {strin
Add Comment
Please, Sign In to add comment