Last active
May 29, 2019 18:21
-
-
Save odayvhl/9079fbc7e591482548659b16568776aa to your computer and use it in GitHub Desktop.
lapuso.ru/chk_ya2
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
(function(n, q, w) { | |
function E(a, b, d) { | |
return function() { | |
try { | |
return a.apply(this, arguments) | |
} catch (e) { | |
d || Wa(e, b) | |
} | |
} | |
} | |
function Wa(a, b) { | |
var d; | |
if (.01 > Math.random()) try { | |
var e = a && a.message || ""; | |
(d = -1 < e.indexOf("network error occurred") || -1 < e.indexOf("send beacon") && -1 < e.indexOf("Content Security Policy")) || (new Oa).log("jserrs", Da, a.message, b, H.href, "", "string" === typeof a.stack && a.stack.replace(/\n/g, "\\n")) | |
} catch (g) {} | |
} | |
function C(a, b, d, e) { | |
return n.setTimeout(E(a, d || "setTimeout", e), b) | |
} | |
function Cb(a, b, d, e, g) { | |
function p(c, | |
a) { | |
a = Math.max(0, Math.min(a, 65535)); | |
k.mergeArrays(c, [a >> 8, a & 255]) | |
} | |
function h(c, a) { | |
k.mergeArrays(c, [a & 255]) | |
} | |
function m(c, a) { | |
if (-1 == xa.indexOf(a)) return !0; | |
h(c, a) | |
} | |
function f(c, a) { | |
for (a = Math.max(0, a | 0); 127 < a;) k.mergeArrays(c, [a & 127 | 128]), a >>= 7; | |
k.mergeArrays(c, [a]) | |
} | |
function c(c, a) { | |
255 < a.length && (a = a.substr(0, 255)); | |
k.mergeArrays(c, [a.length]); | |
for (var f = 0; f < a.length; f++) p(c, a.charCodeAt(f)) | |
} | |
function l(c, a) { | |
f(c, a.length); | |
for (var b = 0; b < a.length; b++) f(c, a.charCodeAt(b)) | |
} | |
function t(a) { | |
if (!a.nodeName) return a[Z] = -1, null; | |
var b = +a[Z]; | |
if (!isFinite(b) || 0 >= b) return null; | |
if (a.attributes) | |
for (var l = a; l;) { | |
if (l.attributes.__ym_wv_ign) return null; | |
l = l.parentElement | |
} | |
l = 64; | |
var d = 0, | |
e = v.getElementParent(a), | |
g = e && e[Z] ? e[Z] : 0; | |
0 > g && (g = 0); | |
var t = a.nodeName.toUpperCase(), | |
z = Eb[t]; | |
z || (l |= 2); | |
var D = v.getElementNeighborPosition(a); | |
D || (l |= 4); | |
var y = v.getElementRegion(a); | |
(e = e ? v.getElementRegion(e) : null) && y[0] == e[0] && y[1] == e[1] && y[2] == e[2] && y[3] == e[3] && (l |= 8); | |
Pa[b].pos = y[0] + "x" + y[1]; | |
Pa[b].size = y[2] + "x" + y[3]; | |
a.id && "string" == typeof a.id && | |
(l |= 32); | |
(e = v.calcTextChecksum(a)) && (l |= 16); | |
var A = v.calcAttribChecksum(a); | |
A && (d |= 2); | |
a: { | |
var k = v.getElementChildren(v.getElementParent(a), a.tagName); | |
for (var Q = 0; Q < k.length; Q++) | |
if ((!k[Q].id || "string" != typeof k[Q].id) && v.calcAttribChecksum(k[Q]) == A && v.calcTextChecksum(k[Q]) == e) { | |
k = !0; | |
break a | |
} k = !1 | |
} | |
if (k) { | |
l |= 1; | |
var aa = v.calcChildrenChecksum(a) | |
} | |
k = []; | |
if (m(k, 1)) return null; | |
f(k, b); | |
h(k, l); | |
f(k, g); | |
z ? h(k, z) : c(k, t); | |
D && f(k, D); | |
l & 8 || (f(k, y[0]), f(k, y[1]), f(k, y[2]), f(k, y[3])); | |
l & 32 && c(k, a.id); | |
e && p(k, e); | |
l & 1 && p(k, aa); | |
h(k, d); | |
A && p(k, A); | |
return k | |
} | |
function z(c, a, b, l, d, e) { | |
for (var g; b && (g = v.getElementSize(b)) && (!g[0] || !g[1]);) b = v.getElementParent(b); | |
if (!b) return null; | |
g = b[Z]; | |
if (!g || 0 > g) return null; | |
var t = { | |
mousemove: 2, | |
click: 32, | |
dblclick: 33, | |
mousedown: 4, | |
mouseup: 30, | |
touch: 12 | |
} [a]; | |
if (!t) return null; | |
var z = v.getElementXY(b); | |
b = []; | |
if (m(b, t)) return null; | |
f(b, c); | |
f(b, g); | |
f(b, Math.max(0, l[0] - z[0])); | |
f(b, Math.max(0, l[1] - z[1])); | |
/^mouse(up|down)|click$/.test(a) && (c = d || e, h(b, 2 > c ? 1 : c == (d ? 2 : 4) ? 4 : 2)); | |
return b | |
} | |
function D(c, a, b, l, d) { | |
var e = []; | |
if (m(e, 38)) return null; | |
f(e, c); | |
p(e, a); | |
h(e, b); | |
c = l[Z]; | |
if (!c || 0 > c) c = 0; | |
f(e, c); | |
h(e, d ? 1 : 0); | |
return e | |
} | |
function y(c, a) { | |
var b; | |
if (0 == a.length) var d = b = ""; | |
else 100 >= a.length ? (b = a, d = "") : 200 >= a.length ? (b = a.substr(0, 100), d = a.substr(100)) : (b = a.substr(0, 97), d = a.substr(a.length - 97)); | |
var h = []; | |
if (m(h, 29)) return null; | |
f(h, c); | |
l(h, b); | |
l(h, d); | |
return h | |
} | |
function aa(c) { | |
var a = []; | |
if (m(a, 27)) return null; | |
f(a, c); | |
return a | |
} | |
function O(c) { | |
var a = []; | |
h(a, 14); | |
f(a, c); | |
return a | |
} | |
function A(c) { | |
var a = []; | |
if (m(a, 15)) return null; | |
f(a, c); | |
return a | |
} | |
function ia(c, a) { | |
var b = []; | |
if (m(b, 17)) return null; | |
f(b, c); | |
f(b, a[Z]); | |
return b | |
} | |
function sa(c, a) { | |
var b = []; | |
if (m(b, 18)) return null; | |
f(b, c); | |
f(b, a[Z]); | |
return b | |
} | |
function Qa(a, b, l, d) { | |
var e = []; | |
if (m(e, 39)) return null; | |
f(e, a); | |
f(e, b[Z]); | |
c(e, String(l)); | |
h(e, d ? 1 : 0); | |
return e | |
} | |
function pa(c, a) { | |
var b = a[Z]; | |
if (0 < b) { | |
var l = [], | |
d = v.getElementRegion(a), | |
h = Pa[b], | |
e = d[0] + "x" + d[1], | |
g = d[2] + "x" + d[3]; | |
if (e != h.pos) { | |
h.pos = e; | |
if (m(l, 9)) return null; | |
f(l, c); | |
f(l, b); | |
f(l, d[0]); | |
f(l, d[1]) | |
} | |
if (g != h.size) { | |
h.size = g; | |
if (m(l, 10)) return null; | |
f(l, c); | |
f(l, b); | |
f(l, d[2]); | |
f(l, d[3]) | |
} | |
if (l.length) return l | |
} | |
return null | |
} | |
function ta(c) { | |
var a = c[Z]; | |
if (!a || 0 > a || !/^INPUT|SELECT|TEXTAREA$/.test(c.nodeName) || !c.form || B(c.form)) return null; | |
var b = v.getFormNumber(c.form); | |
if (0 > b) return null; | |
var d = "INPUT" == c.nodeName ? { | |
text: 0, | |
color: 0, | |
date: 0, | |
datetime: 0, | |
"datetime-local": 0, | |
email: 0, | |
number: 0, | |
range: 0, | |
search: 0, | |
tel: 0, | |
time: 0, | |
url: 0, | |
month: 0, | |
week: 0, | |
password: 2, | |
radio: 3, | |
checkbox: 4, | |
file: 6, | |
image: 7 | |
} [c.type] : { | |
SELECT: 1, | |
TEXTAREA: 5 | |
} [c.nodeName]; | |
if ("number" != typeof d) return null; | |
for (var h = -1, e = c.form.elements, g = e.length, t = 0, z = 0; t < g; t++) | |
if (e[t].name == | |
c.name) { | |
if (e[t] == c) { | |
h = z; | |
break | |
} | |
z++ | |
} if (0 > h) return null; | |
e = []; | |
if (m(e, 7)) return null; | |
f(e, a); | |
f(e, b); | |
f(e, d); | |
l(e, c.name || ""); | |
f(e, h); | |
return e | |
} | |
function F(c, a) { | |
var b = v.getFormNumber(a); | |
if (0 > b) return null; | |
for (var l = a.elements, d = l.length, h = [], e = 0; e < d; e++) | |
if (!v.isEmptyField(l[e])) { | |
var g = l[e][Z]; | |
g && 0 < g && k.mergeArrays(h, [g]) | |
} l = []; | |
if (m(l, 11)) return null; | |
f(l, c); | |
f(l, b); | |
f(l, h.length); | |
for (b = 0; b < h.length; b++) f(l, h[b]); | |
return l | |
} | |
function ja(c, a, f) { | |
c = c.apply(n, a); | |
S.append(c, f) | |
} | |
function w(c) { | |
if (c[Z]) c = pa(x.nowEventTime(), | |
c); | |
else { | |
var a = v.getElementParent(c); | |
a && w(a); | |
c[Z] = fa; | |
Pa[fa] = {}; | |
fa++; | |
a = t(c); | |
S.append(a, void 0); | |
c = ta(c) | |
} | |
S.append(c, void 0) | |
} | |
function u(c, a) { | |
var f = c && v.classNameExists(c, "(ym-disable-keys|-metrika-nokeys)"); | |
a && c && (f = f || !!v.getElementsByClassName("(ym-disable-keys|-metrika-nokeys)", c).length); | |
return f | |
} | |
function B(c) { | |
return c && v.classNameExists(c, "(ym-disable-submit|-metrika-noform)") | |
} | |
function C(c) { | |
var a = U.getTarget(c); | |
if (a && "SCROLLBAR" != a.nodeName) { | |
if (/^INPUT|SELECT|TEXTAREA|BUTTON$/.test(a.tagName)) | |
if (a[Z]) w(a); | |
else { | |
var f = a.form; | |
if (f) { | |
f = f.elements; | |
for (var b = f.length, l = 0; l < b; l++) /^INPUT|SELECT|TEXTAREA|BUTTON$/.test(f[l].tagName) && !f[l][Z] && w(f[l]) | |
} else w(a) | |
} | |
else w(a); | |
ja(z, [x.nowEventTime(), c.type, a, U.getPos(c), c.which, c.button]) | |
} | |
} | |
function E(c) { | |
C(c); | |
ha() | |
} | |
function Ia(c) { | |
return (c.shiftKey ? 2 : 0) | (c.ctrlKey ? 4 : 0) | (c.altKey ? 1 : 0) | (c.metaKey ? 8 : 0) | (c.ctrlKey || c.altKey ? 16 : 0) | |
} | |
function Ea(c) { | |
if (!c) return { | |
ignore: !0, | |
forceRecord: !1, | |
isPrivate: !1, | |
privateFlag: !1, | |
recordData: !0 | |
}; | |
var a = "password" === c.type || la.test(c.name) || la.test(c.id), | |
f = k.reduce(function(a, f) { | |
return a || Q.generalRegex.test(c[f]) | |
}, !1, ["className", "id", "name"]) || Q.placeholderRegex.test(c.placeholder), | |
b = Q.forceRecordRegex.test(c.className); | |
return { | |
forceRecord: b, | |
ignore: a, | |
isPrivate: f, | |
privateFlag: !b && (f || a), | |
recordData: b || !(f && g.get("isEU") || a) | |
} | |
} | |
function Ja(c) { | |
return "INPUT" == c.tagName ? "password" == c.type || c.name && la.test(c.name) || c.id && la.test(c.id) : !1 | |
} | |
function M(c, a, f) { | |
c = U.getTarget(c); | |
var b = Ea(c); | |
b.ignore || !b.forceRecord && (b.isPrivate && g.get("isEU") || u(c)) || (w(c), ja(D, | |
[x.nowEventTime(), a, f, c, b.privateFlag])) | |
} | |
function ba(c) { | |
var a = c.keyCode, | |
f = Ia(c); | |
if ({ | |
3: 1, | |
8: 1, | |
9: 1, | |
13: 1, | |
16: 1, | |
17: 1, | |
18: 1, | |
19: 1, | |
20: 1, | |
27: 1, | |
33: 1, | |
34: 1, | |
35: 1, | |
36: 1, | |
37: 1, | |
38: 1, | |
39: 1, | |
40: 1, | |
45: 1, | |
46: 1, | |
91: 1, | |
92: 1, | |
93: 1, | |
106: 1, | |
110: 1, | |
111: 1, | |
144: 1, | |
145: 1 | |
} [a] || 112 <= a && 123 >= a || 96 <= a && 105 >= a || f & 16) 19 == a && 4 == (f & -17) && (a = 144), M(c, a, f | 16), ya = !1, k.setTimeout(function() { | |
ya = !0 | |
}, 1, "fvl.keyDown"), !(67 == a && f & 4) || f & 1 || f & 2 || G() | |
} | |
function T(c) { | |
ya && !Ka && 0 !== c.which && (M(c, c.charCode || c.keyCode, Ia(c)), Ka = !0, k.setTimeout(function() { | |
Ka = !1 | |
}, 1, "fvl.keyPress")) | |
} | |
function ha() { | |
if (n.getSelection) { | |
try { | |
var c = n.getSelection() | |
} catch (Db) { | |
return | |
} | |
var a = c.toString(); | |
var f = c.anchorNode | |
} else q.selection && q.selection.createRange && (c = q.selection.createRange(), a = c.text, f = c.parentElement()); | |
if ("string" == typeof a) { | |
try { | |
for (; f && 1 != f.nodeType;) f = f.parentNode | |
} catch (Db) { | |
return | |
} | |
if (f) { | |
c = Ea(f).privateFlag || u(f, !0); | |
f = f.getElementsByTagName("*"); | |
for (var b = 0; b < f.length && !c;) c = Ea(f[b]).privateFlag || u(f[b], !0), b++; | |
a != Xa && (Xa = a, a = c ? k.map(function() { | |
return Q.obfuscatedSymbol | |
}, a.split("")).join("") : | |
a, ja(y, [x.nowEventTime(), a])) | |
} | |
} | |
} | |
function G() { | |
Za || (Za = !0, Xa && ja(aa, [x.nowEventTime()]), k.setTimeout(function() { | |
Za = !1 | |
}, 1, "fvl.copy")) | |
} | |
function J() { | |
Aa || (Aa = !0, ja(O, [x.nowEventTime()])) | |
} | |
function H() { | |
Aa && (Aa = !1, ja(A, [x.nowEventTime()])) | |
} | |
function N(c) { | |
(!Aa || c && !c.fromElement) && J() | |
} | |
function I(c) { | |
c && !c.toElement && H() | |
} | |
function V(c) { | |
if ((c = U.getTarget(c)) && /^INPUT|SELECT|TEXTAREA|BUTTON$/.test(c.tagName)) { | |
if (c[Z]) w(c); | |
else { | |
var a = c.form; | |
if (a) { | |
a = a.elements; | |
for (var f = a.length, b = 0; b < f; b++) /^INPUT|SELECT|TEXTAREA|BUTTON$/.test(a[b].tagName) && | |
!a[b][Z] && w(a[b]) | |
} else w(c) | |
} | |
ja(ia, [x.nowEventTime(), c]) | |
} | |
} | |
function W(c) { | |
(c = U.getTarget(c)) && /^INPUT|SELECT|TEXTAREA|BUTTON$/.test(c.tagName) && (w(c), ja(sa, [x.nowEventTime(), c])) | |
} | |
function X(c) { | |
if ((c = U.getTarget(c)) && !Ja(c) && !u(c) && /^INPUT|SELECT|TEXTAREA$/.test(c.tagName)) { | |
var a = Ea(c), | |
f = /^(checkbox|radio)$/.test(c.type) ? c.checked : c.value; | |
f = a.recordData ? f : k.map(function() { | |
return Q.obfuscatedSymbol | |
}, f.split("")).join(""); | |
w(c); | |
ja(Qa, [x.nowEventTime(), c, f, a.privateFlag]) | |
} | |
} | |
function Y(c) { | |
if ((c = U.getTarget(c)) && | |
!B(c) && "FORM" == c.nodeName) { | |
for (var a = c.elements, f = 0; f < a.length; f++) v.isEmptyField(a[f]) || w(a[f]); | |
ja(F, [x.nowEventTime(), c], !0) | |
} | |
} | |
function P(c) { | |
(c = U.getTarget(c)) && "BODY" == c.tagName && S.append([], !0) | |
} | |
var S = new kb({ | |
protocol: a, | |
counterId: b, | |
globalConfig: g, | |
counterType: d, | |
meta: { | |
url: K().href, | |
hitId: e, | |
timezone: $a, | |
timestamp: ab | |
} | |
}), | |
Eb = { | |
A: 1, | |
ABBR: 2, | |
ACRONYM: 3, | |
ADDRESS: 4, | |
APPLET: 5, | |
AREA: 6, | |
B: 7, | |
BASE: 8, | |
BASEFONT: 9, | |
BDO: 10, | |
BIG: 11, | |
BLOCKQUOTE: 12, | |
BODY: 13, | |
BR: 14, | |
BUTTON: 15, | |
CAPTION: 16, | |
CENTER: 17, | |
CITE: 18, | |
CODE: 19, | |
COL: 20, | |
COLGROUP: 21, | |
DD: 22, | |
DEL: 23, | |
DFN: 24, | |
DIR: 25, | |
DIV: 26, | |
DL: 27, | |
DT: 28, | |
EM: 29, | |
FIELDSET: 30, | |
FONT: 31, | |
FORM: 32, | |
FRAME: 33, | |
FRAMESET: 34, | |
H1: 35, | |
H2: 36, | |
H3: 37, | |
H4: 38, | |
H5: 39, | |
H6: 40, | |
HEAD: 41, | |
HR: 42, | |
HTML: 43, | |
I: 44, | |
IFRAME: 45, | |
IMG: 46, | |
INPUT: 47, | |
INS: 48, | |
ISINDEX: 49, | |
KBD: 50, | |
LABEL: 51, | |
LEGEND: 52, | |
LI: 53, | |
LINK: 54, | |
MAP: 55, | |
MENU: 56, | |
META: 57, | |
NOFRAMES: 58, | |
NOSCRIPT: 59, | |
OBJECT: 60, | |
OL: 61, | |
OPTGROUP: 62, | |
OPTION: 63, | |
P: 64, | |
PARAM: 65, | |
PRE: 66, | |
Q: 67, | |
S: 68, | |
SAMP: 69, | |
SCRIPT: 70, | |
SELECT: 71, | |
SMALL: 72, | |
SPAN: 73, | |
STRIKE: 74, | |
STRONG: 75, | |
STYLE: 76, | |
SUB: 77, | |
SUP: 78, | |
TABLE: 79, | |
TBODY: 80, | |
TD: 81, | |
TEXTAREA: 82, | |
TFOOT: 83, | |
TH: 84, | |
THEAD: 85, | |
TITLE: 86, | |
TR: 87, | |
TT: 88, | |
U: 89, | |
UL: 90, | |
VAR: 91, | |
NOINDEX: 100 | |
}, | |
xa = [17, 18, 38, 32, 39, 15, 11, 7, 1], | |
Q = function() { | |
var c = "first(-|\\.|_|\\s){0,2}name last(-|\\.|_|\\s){0,2}name zip postal phone address passport (bank|credit)(-|\\.|_|\\s){0,2}card card(-|\\.|_|\\s){0,2}number card(-|\\.|_|\\s){0,2}holder cvv card(-|\\.|_|\\s){0,2}exp card(-|\\.|_|\\s){0,2}name card.*month card.*year card.*month card.*year password email birth(-|\\.|_|\\s){0,2}(day|date) second(-|\\.|_|\\s){0,2}name third(-|\\.|_|\\s){0,2}name patronymic middle(-|\\.|_|\\s){0,2}name birth(-|\\.|_|\\s){0,2}place house street city flat state".split(" "); | |
return { | |
generalRegex: new RegExp("(" + c.join("|") + ")", "i"), | |
placeholderRegex: new RegExp("(" + c.concat("\u0438\u043c\u044f;\u0444\u0430\u043c\u0438\u043b\u0438\u044f;\u043e\u0442\u0447\u0435\u0441\u0442\u0432\u043e;\u0438\u043d\u0434\u0435\u043a\u0441;\u0442\u0435\u043b\u0435\u0444\u043e\u043d;\u0430\u0434\u0440\u0435\u0441;\u043f\u0430\u0441\u043f\u043e\u0440\u0442;\u041d\u043e\u043c\u0435\u0440(-|\\.|_|\\s){0,2}\u043a\u0430\u0440\u0442\u044b;\u0434\u0430\u0442\u0430(-|\\.|_|\\s){0,2} \u0440\u043e\u0436\u0434\u0435\u043d\u0438\u044f;\u0434\u043e\u043c;\u0443\u043b\u0438\u0446\u0430;\u043a\u0432\u0430\u0440\u0442\u0438\u0440\u0430;\u0433\u043e\u0440\u043e\u0434;\u043e\u0431\u043b\u0430\u0441\u0442\u044c".split(";")).join("|") + | |
")", "i"), | |
forceRecordRegex: /ym-record-keys/i, | |
obfuscatedSymbol: String.fromCharCode(8226), | |
obfuscatedKeyCode: 88 | |
} | |
}(), | |
fa = 1, | |
la = /^(password|passwd|pswd)$/, | |
ya = !0, | |
Ka = !1, | |
Xa = "", | |
Za = !1, | |
Aa = !0; | |
x.initCorrector(); | |
x.nowTime(); | |
var Z = "metrikaId_" + Math.random(), | |
Pa = {}, | |
L = ":submit" + Math.random(); | |
if (!k.isMetrikaPlayer()) { | |
r.on(q, "click,dblclick,mousedown", C); | |
r.on(q, "mouseup", E); | |
r.on(q, "keydown", ba); | |
r.on(q, "keypress", T); | |
r.on(q, "copy", G); | |
if (v.getBody()) r.on(q, "mouseleave", P); | |
q.attachEvent && !n.opera ? (r.on(q, "focusin", N), r.on(q, | |
"focusout", I)) : (r.on(n, "focus", J), r.on(n, "blur", H), r.on(q, "blur", H)); | |
q.addEventListener ? (r.on(q, "focus", V), r.on(q, "blur", W), r.on(q, "change", X), r.on(q, "submit", Y)) : q.attachEvent && (r.on(q, "focusin", V), r.on(q, "focusout", W), function() { | |
for (var c = q.getElementsByTagName("form"), a = 0; a < c.length; a++) { | |
for (var f = c[a].getElementsByTagName("*"), b = 0; b < f.length; b++) | |
if (/^INPUT|SELECT|TEXTAREA$/.test(f[b].tagName)) r.on(f[b], "change", X); | |
r.on(c[a], "submit", Y) | |
} | |
}()); | |
(function() { | |
var c = q.getElementsByTagName("form"); | |
if (c.length) | |
for (var a = | |
0; a < c.length; a++) { | |
var f = c[a].submit; | |
if ("function" == typeof f || "object" == typeof f && /^\s*function submit\(\)/.test(String(f))) c[a][L] = f, c[a].submit = function() { | |
Y({ | |
target: this | |
}); | |
return this[L]() | |
} | |
} | |
})() | |
} | |
return { | |
start: function() { | |
S.activate() | |
}, | |
stop: function() { | |
S.clear(); | |
r.un(q, "click", C); | |
r.un(q, "dblclick", C); | |
r.un(q, "mousedown", C); | |
r.un(q, "mouseup", E); | |
r.un(q, "keydown", ba); | |
r.un(q, "keypress", T); | |
r.un(q, "copy", G); | |
r.un(q, "focusin", N); | |
r.un(q, "focusout", I); | |
r.un(n, "focus", J); | |
r.un(n, "blur", H); | |
r.un(q, "blur", H); | |
q.removeEventListener ? | |
(r.un(q, "focus", V), r.un(q, "blur", W), r.un(q, "change", X), r.un(q, "submit", Y)) : q.detachEvent && (r.un(q, "focusin", V), r.un(q, "focusout", W), function() { | |
for (var c = q.getElementsByTagName("form"), a = 0; a < c.length; a++) { | |
for (var f = c[a].getElementsByTagName("*"), b = 0; b < f.length; b++) /^INPUT|SELECT|TEXTAREA$/.test(f[b].tagName) && r.un(f[b], "change", X); | |
r.un(c[a], "submit", Y) | |
} | |
}()); | |
(function() { | |
for (var c = q.getElementsByTagName("form"), a = 0; a < c.length; a++) c[a][L] && (c[a].submit = c[a][L]) | |
})() | |
} | |
} | |
} | |
function K() { | |
for (var a = {}, b = "hash host hostname href pathname port protocol search".split(" "), | |
d = b.length, e = d, g, p; e--;) a[b[e]] = ""; | |
try { | |
for (g = n.location, e = d; e--;) p = b[e], a[p] = "" + g[p] | |
} catch (h) { | |
H && (a = H) | |
} | |
return a | |
} | |
function ua() { | |
return 0 == K().hostname.search(/^(.*\.)?((yandex(-team)?)\.(com?\.)?[a-z]+|(auto|kinopoisk|beru|bringly)\.ru|ya\.(ru|cc)|yadi\.sk|yastatic\.net|.*\.yandex)$/) | |
} | |
function bb(a) { | |
return -1 !== ("" + n.navigator.userAgent).toLowerCase().search(a) | |
} | |
function lb(a) { | |
return (a = a && a.innerHTML && a.innerHTML.replace(/<\/?[^>]+>/gi, "")) ? ("" + a).replace(/^\s+/, "").replace(/\s+$/, "") : "" | |
} | |
function mb(a, | |
b) { | |
var d; | |
if (!a || !b) return !1; | |
var e = []; | |
for (d = 0; d < b.length; d++) e.push(b[d].replace(/\^/g, "\\^").replace(/\$/g, "\\$").replace(/\./g, "\\.").replace(/\[/g, "\\[").replace(/\]/g, "\\]").replace(/\|/g, "\\|").replace(/\(/g, "\\(").replace(/\)/g, "\\)").replace(/\?/g, "\\?").replace(/\*/g, "\\*").replace(/\+/g, "\\+").replace(/\{/g, "\\{").replace(/\}/g, "\\}")); | |
return (new RegExp("\\.(" + e.join("|") + ")$", "i")).test(a) | |
} | |
function Gb(a, b) { | |
function d(a) { | |
a = a.split(":"); | |
a = a[1] || ""; | |
a = a.replace(/^\/*/, "").replace(/^www\./, ""); | |
return a.split("/")[0] | |
} | |
return a && b ? d(a) == d(b) : a || b ? !1 : !0 | |
} | |
function nb() { | |
var a = n.performance || n.webkitPerformance, | |
b = a && a.timing, | |
d, e = []; | |
if (b && (d = b.navigationStart)) | |
for (e = [b.domainLookupEnd - b.domainLookupStart, b.connectEnd - b.connectStart, b.responseStart - b.requestStart, b.responseEnd - b.responseStart, b.fetchStart - d, b.redirectEnd - b.redirectStart, b.redirectCount || a.navigation && a.navigation.redirectCount], e.push(b.domInteractive && b.domLoading ? b.domInteractive - b.domLoading : null), e.push(b.domContentLoadedEventStart && | |
b.domContentLoadedEventEnd ? b.domContentLoadedEventEnd - b.domContentLoadedEventStart : null), e.push(b.domComplete ? b.domComplete - d : null), e.push(b.loadEventStart ? b.loadEventStart - d : null), e.push(b.loadEventStart && b.loadEventEnd ? b.loadEventEnd - b.loadEventStart : null), e.push(b.domContentLoadedEventStart ? b.domContentLoadedEventStart - d : null), a = 0; a < e.length; a++) b = e[a], null !== b && (0 > b || 36E5 < b) && (e[a] = null); | |
return e | |
} | |
function Hb(a) { | |
var b = [], | |
d = a._lastPerformanceTiming, | |
e = nb(), | |
g; | |
if (d) { | |
var p = 0; | |
for (g = d.length; p < g; p++) null === | |
e[p] ? b.push(e[p]) : b.push(d[p] === e[p] ? "" : e[p]) | |
} else b = e; | |
a._lastPerformanceTiming = e; | |
return b.join(",") | |
} | |
function Ib(a) { | |
return "first-contentful-paint" === a.name | |
} | |
function Jb() { | |
var a = n.performance && n.performance.getEntriesByType, | |
b = a ? k.filter(Ib, n.performance.getEntriesByType("paint")) : []; | |
if (b.length) return b = b[0], Math.round(b.startTime); | |
if (a) return 0; | |
if ("object" == typeof n.chrome && n.chrome.loadTimes) { | |
if (b = n.chrome.loadTimes(), b.requestTime && b.firstPaintTime && n.performance && n.performance.timing) return Math.round(1E3 * | |
b.firstPaintTime - n.performance.timing.navigationStart) | |
} else if (n.performance && n.performance.timing && (b = n.performance.timing, b.navigationStart && b.msFirstPaint)) return b.msFirstPaint - b.navigationStart; | |
return null | |
} | |
var La = !1; | |
try { | |
var Kb = function(a) { | |
function b(e) { | |
if (d[e]) return d[e].exports; | |
var g = d[e] = { | |
i: e, | |
l: !1, | |
exports: {} | |
}; | |
a[e].call(g.exports, g, g.exports, b); | |
g.l = !0; | |
return g.exports | |
} | |
var d = {}; | |
b.m = a; | |
b.c = d; | |
b.d = function(a, d, p) { | |
b.o(a, d) || Object.defineProperty(a, d, { | |
enumerable: !0, | |
get: p | |
}) | |
}; | |
b.r = function(a) { | |
"undefined" !== | |
typeof Symbol && Symbol.toStringTag && Object.defineProperty(a, Symbol.toStringTag, { | |
value: "Module" | |
}); | |
Object.defineProperty(a, "__esModule", { | |
value: !0 | |
}) | |
}; | |
b.t = function(a, d) { | |
d & 1 && (a = b(a)); | |
if (d & 8 || d & 4 && "object" === typeof a && a && a.__esModule) return a; | |
var e = Object.create(null); | |
b.r(e); | |
Object.defineProperty(e, "default", { | |
enumerable: !0, | |
value: a | |
}); | |
if (d & 2 && "string" != typeof a) | |
for (var h in a) b.d(e, h, function(b) { | |
return a[b] | |
}.bind(null, h)); | |
return e | |
}; | |
b.n = function(a) { | |
var d = a && a.__esModule ? function() { | |
return a["default"] | |
} : function() { | |
return a | |
}; | |
b.d(d, "a", d); | |
return d | |
}; | |
b.o = function(a, b) { | |
return Object.prototype.hasOwnProperty.call(a, b) | |
}; | |
b.p = ""; | |
return b(b.s = 65) | |
}([function(a, b) { | |
a.exports = function(a, b, g) { | |
b in a ? Object.defineProperty(a, b, { | |
value: g, | |
enumerable: !0, | |
configurable: !0, | |
writable: !0 | |
}) : a[b] = g; | |
return a | |
} | |
}, function(a, b, d) { | |
d.r(b); | |
d.d(b, "IterableUtils", function() { | |
return t | |
}); | |
var e = d(26), | |
g = d(17), | |
p = d(25), | |
h = d(7), | |
m = d(10); | |
a = d(8); | |
var f = d(3), | |
c = a.a.Map, | |
l = a.a.Set, | |
t = { | |
binarySearch: function(c, a, f) { | |
var b = 0, | |
l = c.length - 1; | |
for (f = "function" === typeof f ? f : function(c) { | |
return c | |
}; b <= | |
l;) { | |
var d = Math.round((b + l) / 2), | |
m = f(c[d]); | |
if (m === a) { | |
var h = c[d]; | |
break | |
} else a > m ? b = d + 1 : l = d - 1 | |
} | |
return h | |
}, | |
forof: function(c, a) { | |
c instanceof h.List ? c.forEach(a) : c instanceof m.KeyValue ? c.forEach(a) : Object(e.a)(c, a) | |
}, | |
forin: function(c, a) { | |
Object(g.a)(c, a) | |
}, | |
fastIterate: function(c, a) { | |
for (var f = 0, b = c.length; f < b; f++) a(f, c[f]) | |
}, | |
toArray: function(a) { | |
return a instanceof h.List || a instanceof m.KeyValue ? l && a instanceof l || c && a instanceof c ? Object(p.a)(a) : a.toArray() : Object(p.a)(a) | |
}, | |
addToArray: function(c) { | |
for (var a, f = arguments.length, | |
b = Array(1 < f ? f - 1 : 0), l = 1; l < f; l++) b[l - 1] = arguments[l]; | |
return (a = []).concat.apply(a, b).reduce(function(c, a) { | |
0 > c.indexOf(a) && c.push(a); | |
return c | |
}, c) | |
}, | |
removeFromArray: function(c) { | |
for (var a, f = arguments.length, b = Array(1 < f ? f - 1 : 0), l = 1; l < f; l++) b[l - 1] = arguments[l]; | |
return (a = []).concat.apply(a, b).reduce(function(c, a) { | |
var f = c.indexOf(a); | |
0 <= f && c.splice(f, 1); | |
return c | |
}, c) | |
}, | |
isArray: function(c) { | |
return "function" === typeof Array.isArray ? Array.isArray(c) : "[object Array]" === {}.toString.call(c) | |
}, | |
inArray: function(c, a) { | |
return c ? | |
"function" === typeof c.includes ? c.includes(a) : 0 <= c.indexOf(a) : !1 | |
}, | |
fill: function(c, a) { | |
if (Array.prototype.fill) return c.fill(a); | |
for (var f = c.length; 0 < f--;) c[f] = a; | |
return c | |
}, | |
reduce: function(c, a, f) { | |
return this.toArray(c).reduce(a, f) | |
}, | |
reduceRight: function(c, a, f) { | |
return this.toArray(c).reduceRight(a, f) | |
}, | |
map: function(c, a) { | |
var b = this.toArray(c); | |
if (f.ObjectUtils.isNative(b.map, "map")) return b.map(a); | |
for (var l = [], d = 0; d < b.length; d++) l[d] = a(b[d], d, b); | |
return l | |
}, | |
find: function(c, a) { | |
if (Array.prototype.find) return c.find(a); | |
var f; | |
this.forof(c, function(b, l) { | |
return !0 === !!a(b, l, c) ? (f = b, !1) : !0 | |
}); | |
return f | |
}, | |
keys: function(c) { | |
if ("function" === typeof c.keys) return c.keys(); | |
var a = []; | |
this.forof(c, function(c, f) { | |
a.push(f) | |
}); | |
return a | |
}, | |
values: function(c) { | |
if (c.hasOwnProperty("values")) return c.values(); | |
var a = []; | |
this.forof(c, function(c, f) { | |
a.push(c) | |
}); | |
return a | |
}, | |
includes: function(c, a, b) { | |
void 0 === b && (b = 0); | |
if (f.ObjectUtils.isNative(Array.prototype.includes, "includes")) return c.includes(a, b); | |
for (var l = c.length; b < l; b++) | |
if (c[b] === a) return !0; | |
return !1 | |
} | |
} | |
}, function(a, b, d) { | |
b.a = "undefined" !== typeof n ? n : "undefined" !== typeof self ? self : global | |
}, function(a, b, d) { | |
d.r(b); | |
a = d(6); | |
var e = d.n(a), | |
g = d(8), | |
p = g.a.Object.assign || function(c) { | |
for (var a = 1; a < arguments.length; a++) { | |
var f = arguments[a], | |
b = g.a.Object.prototype.hasOwnProperty.bind(f), | |
l; | |
for (l in f) b(l) && (c[l] = f[l]) | |
} | |
return c | |
}, | |
h = d(17), | |
m = d(26), | |
f = d(33); | |
d.d(b, "ObjectUtils", function() { | |
return c | |
}); | |
var c = { | |
sizeof: function(c, a) { | |
void 0 === c && (c = {}); | |
void 0 === a && (a = !1); | |
var b = JSON.stringify(c); | |
b = -~encodeURI(b).split(/%..|./).length; | |
return a ? f.NumberUtils.bytesToSize(b) : b | |
}, | |
assign: function(c) { | |
for (var a = arguments.length, f = Array(1 < a ? a - 1 : 0), b = 1; b < a; b++) f[b - 1] = arguments[b]; | |
return p.apply(void 0, [c].concat(f)) | |
}, | |
deleteProps: function(c, a) { | |
void 0 === a && (a = []); | |
Object(m.a)(a, function(a) { | |
delete c[a] | |
}); | |
return c | |
}, | |
copyObject: function(c) { | |
return e()({}, c) | |
}, | |
type: function(c) { | |
return {}.toString.call(c) | |
}, | |
deepCopyObject: function(c) { | |
return JSON.parse(JSON.stringify(c)) | |
}, | |
combine: function() { | |
for (var c = arguments.length, a = Array(c), f = 0; f < c; f++) a[f] = arguments[f]; | |
return a.reduce(function(c, a) { | |
return null != a ? e()({}, c, a) : c | |
}, {}) | |
}, | |
findNativeImplementation: function(c) { | |
if (this.isNative(g.a[c], c)) return g.a[c]; | |
var a = ["webkit", "moz", "ms", "o"]; | |
c = "" + c.slice(0, 1).toUpperCase() + c.slice(1); | |
for (var f = 0; f < a.length; f++) { | |
var b = "" + a[f] + c; | |
if (this.isNative(g.a[b], b)) return g.a[b] | |
} | |
return null | |
}, | |
isNative: function(c, a) { | |
return c ? (new RegExp("function\\s*" + a + "\\s*\\(\\)\\s*\\{\\s*\\[native[\\s-]code\\]\\s*\\}", "i")).test(c.toString()) : !1 | |
}, | |
isMonkeyPatchedOrUndefined: function(c, a) { | |
var f = | |
g.a; | |
if (f[c] === w || !this.isNative(f[c], c)) return !0; | |
if (a) | |
for (var b = 0; b < a.length; b++) | |
if (!this.isNative(f[c].prototype[a[b]], a[b])) return !0; | |
return !1 | |
}, | |
objectKeys: function(c) { | |
var a = []; | |
Object(h.a)(c, function(c) { | |
return a.push(c) | |
}); | |
return a | |
}, | |
objectValues: function(c) { | |
var a = []; | |
Object(h.a)(c, function(c, f) { | |
return a.push(f) | |
}); | |
return a | |
}, | |
safeAccess: function(c, a) { | |
if (null == c || "string" !== typeof a) return w; | |
for (var f = a.split("."), b = c, l = 0, d = f.length; l < d; l++) | |
if (b = b[f[l]], null == b) return w; | |
return b | |
} | |
} | |
}, function(a, b, d) { | |
d.r(b); | |
d.d(b, "DO_NOT_TRACK", function() { | |
return p | |
}); | |
d.d(b, "IS_INCOGNITO", function() { | |
return h | |
}); | |
d.d(b, "IS_MOBILE_DEVICE", function() { | |
return m | |
}); | |
d.d(b, "IS_DEVELOPMENT", function() { | |
return f | |
}); | |
a = d(6); | |
var e = d.n(a); | |
a = d(11); | |
var g = d(2); | |
d = e()({}, d(32).BrowserUtils, d(34).DocumentUtils, d(14).DOMUtils, d(35).FunctionUtils, d(1).IterableUtils, d(85).MapUtils, d(33).NumberUtils, d(3).ObjectUtils, d(24).StringUtils, d(36).TimeUtils, d(20).Tools, { | |
math: d(87).MathUtils | |
}); | |
try { | |
var p = a.a.respectDoNotTrack && !0 === navigator.doNotTrack | |
} catch (c) { | |
p = !1 | |
} | |
var h = function() { | |
try { | |
g.a.localStorage.setItem("test", "test"); | |
var c = "test" !== g.a.localStorage.getItem("test"); | |
g.a.localStorage.removeItem("test"); | |
return c | |
} catch (l) { | |
return !0 | |
} | |
}(); | |
try { | |
var m = /Android|webOS|iPhone|iPad|iPod|BlackBerry|Windows Phone/i.test(navigator.userAgent) ? !0 : !1 | |
} catch (c) { | |
m = !1 | |
} | |
var f = "development" === a.a.environment; | |
Object.defineProperties(d, { | |
DO_NOT_TRACK: { | |
value: p | |
}, | |
IS_INCOGNITO: { | |
value: h | |
}, | |
IS_MOBILE_DEVICE: { | |
value: m | |
}, | |
IS_DEVELOPMENT: { | |
value: f | |
} | |
}); | |
b["default"] = d | |
}, function(a, b) { | |
a.exports = function(a) { | |
if (void 0 === | |
a) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); | |
return a | |
} | |
}, function(a, b, d) { | |
var e = d(0); | |
a.exports = function(a) { | |
for (var b = 1; b < arguments.length; b++) { | |
var d = null != arguments[b] ? arguments[b] : {}, | |
m = Object.keys(d); | |
"function" === typeof Object.getOwnPropertySymbols && (m = m.concat(Object.getOwnPropertySymbols(d).filter(function(a) { | |
return Object.getOwnPropertyDescriptor(d, a).enumerable | |
}))); | |
m.forEach(function(f) { | |
e(a, f, d[f]) | |
}) | |
} | |
return a | |
} | |
}, function(a, b, d) { | |
d.r(b); | |
d.d(b, "List", function() { | |
return m | |
}); | |
a = d(12); | |
var e = d.n(a); | |
a = d(0); | |
var g = d.n(a), | |
p = d(8); | |
a = d(3); | |
var h = d(1); | |
d = p.a.Set; | |
a = a.ObjectUtils.isMonkeyPatchedOrUndefined("Set", "add has clear delete forEach toString".split(" ")); | |
var m = function() { | |
function a(c) { | |
g()(this, "list", []); | |
c && (c instanceof a ? this.create(h.IterableUtils.toArray(c)) : c instanceof Array && this.create(c)) | |
} | |
var c = a.prototype; | |
c.add = function(c) { | |
!1 === this.has(c) && this.list.push(c); | |
return this | |
}; | |
c.has = function(c) { | |
return 0 <= this.list.indexOf(c) | |
}; | |
c.clear = function() { | |
this.list.length = 0; | |
return this | |
}; | |
c["delete"] = function(c) { | |
c = this.list.indexOf(c); | |
return 0 <= c ? (this.list.splice(c, 1), !0) : !1 | |
}; | |
c.each = function(c) { | |
if ("function" === typeof c) | |
for (var a = 0; a < this.list.length;) { | |
var f = this.list[a]; | |
2 === c.length ? c(f, f) : c(f); | |
a++ | |
} | |
}; | |
c.forEach = function(c) { | |
this.each(c) | |
}; | |
c.values = function() { | |
return this.list.slice(0) | |
}; | |
c.keys = function() { | |
return this.list.slice(0) | |
}; | |
c.toArray = function() { | |
return this.list.slice(0) | |
}; | |
c.toString = function() { | |
return "List(" + this.size + ")" | |
}; | |
c.create = function(c) { | |
for (var a = 0; a < c.length;) this.add(c[a]), | |
a++ | |
}; | |
e()(a, [{ | |
key: "size", | |
get: function() { | |
return this.list.length | |
} | |
}]); | |
return a | |
}(); | |
b["default"] = a ? m : d | |
}, function(a, b, d) { | |
var e = function(a, b) { | |
var d = a.contentWindow; | |
return d ? b.reduce(function(a, f) { | |
return a && d.hasOwnProperty(f) | |
}, !0) : !1 | |
}; | |
b.a = function() { | |
var a = "undefined" !== typeof global ? global : "undefined" !== typeof self ? self : n; | |
if ("undefined" !== typeof q && q.body) { | |
var b = q.createElement("iframe"); | |
b.name = "_ym_native"; | |
b.title = "_ym_native"; | |
b.frameBorder = "0"; | |
b.style.opacity = "0"; | |
b.style.width = "0px"; | |
b.style.height = "0px"; | |
b.style.position = "absolute"; | |
b.style.left = "100%"; | |
b.style.bottom = "100%"; | |
b.style.setProperty("border", "0", "important"); | |
b.setAttribute("aria-hidden", "true"); | |
/Trident|MSIE/.test(navigator.userAgent) ? q.body.parentNode && q.body.parentNode.appendChild(b) : q.body.appendChild(b); | |
e(b, ["Set", "Map"]) && (a = b.contentWindow || a) | |
} | |
return a | |
}() | |
}, function(a, b, d) { | |
(function(a) { | |
d.d(b, "b", function() { | |
return t | |
}); | |
d.d(b, "a", function() { | |
return z | |
}); | |
var e = d(29), | |
p = d.n(e); | |
e = d(6); | |
var h = d.n(e); | |
e = d(11); | |
var m = d(3), | |
f = d(1), | |
c = d(14), | |
l = d(20); | |
e = | |
e.a.DOMIndexer; | |
var t = e.IGNORED_NODES, | |
z = e.IGNORED_ATTRIBUTES, | |
D = e.SKIPPED_ATTRIBUTES, | |
y = e.EXTRA_ATTRIBUTES, | |
k = [], | |
O = {}, | |
A = { | |
INPUT: function(c, a) { | |
var f = h()({}, a); | |
"checkbox" === a.type || "radio" === a.type ? c.checked ? a.checked = "checked" : delete a.checked : f.value = c.value; | |
return f | |
}, | |
IMG: function(c, a) { | |
var f = h()({}, a); | |
c.currentSrc && (f.src = c.currentSrc || a.src); | |
return f | |
} | |
}, | |
ia = function(c) { | |
if (null == c) return !1; | |
c = c.nodeType; | |
return c === Node.TEXT_NODE || c === Node.COMMENT_NODE | |
}, | |
n = function Ja(c, a) { | |
var f = []; | |
if ("function" === typeof a) { | |
var b = | |
a(c); | |
null != b && b !== NodeFilter.FILTER_ACCEPT || f.push(c) | |
} else f.push(c); | |
if (c.childNodes && 0 < c.childNodes.length) { | |
b = c.childNodes; | |
for (var d = 0, l = b.length; d < l; d++) f.push.apply(f, Ja(b[d])) | |
} | |
return f | |
}, | |
Qa = function(c, a, f) { | |
var b = function(c) { | |
return "function" === typeof f ? f(c) ? NodeFilter.FILTER_ACCEPT : NodeFilter.FILTER_REJECT : NodeFilter.FILTER_ACCEPT | |
}; | |
if ("function" === typeof a && b(c) === NodeFilter.FILTER_ACCEPT && (a(c), !1 === ia(c))) | |
for (c = q.createTreeWalker(c, -1, f ? { | |
acceptNode: b | |
} : null, !1); c.nextNode() && !1 !== a(c.currentNode);); | |
}, | |
pa = function(a, f) { | |
var b = []; | |
a && (c.DOMUtils.nodeIsInTree(a) ? Qa(null == a ? q.documentElement : a, function(c) { | |
b.push(c) | |
}, f) : b.push.apply(b, n(a, f))); | |
return b | |
}, | |
ta = function(c) { | |
var a = c["*"], | |
b = p()(c, ["*"]), | |
d = {}, | |
l = new RegExp(a.join("|"), "i"); | |
f.IterableUtils.forin(b, function(c) { | |
var f, l = (f = []).concat.apply(f, b[c].concat(a)); | |
d[c] = new RegExp(l.join("|"), "i") | |
}); | |
return function(c, a) { | |
if (c && a) { | |
var f = "string" === typeof c ? c : c.nodeName; | |
if (f) return (f = d[f.toLowerCase()]) && !!a.match(f) || !!a.match(l) | |
} | |
return !1 | |
} | |
}(z), | |
F = [function(c, | |
a, f) { | |
return null == f || /^javascript/.test(f) | |
}, function(c, a) { | |
return "SCRIPT" === c.nodeName && "src" === a | |
}, function(c, a) { | |
return "A" === c.nodeName && "href" === a | |
}], | |
r = function(c, a, f) { | |
for (var b = 0, d = F.length; b < d; b++) | |
if (!0 === F[b](c, a, f)) return !1; | |
return !0 | |
}, | |
v = function(c, f, b) { | |
var d = b; | |
if (r(c, f, b)) { | |
d = k.reduce(function(b, d) { | |
try { | |
var l = d(c, f, b); | |
return null != l ? l : b | |
} catch (qa) { | |
return a.warn("Filtering error", qa), b | |
} | |
}, d); | |
if ("string" === typeof d) return (b = O[f]) ? b(c, f, d) || d : d; | |
if (null != d && !1 !== d) return d.baseVal | |
} | |
return null | |
}, | |
x = function(c, | |
a) { | |
a: { | |
try { | |
q.createAttribute(a) | |
} catch (M) { | |
var f = !1; | |
break a | |
} | |
f = !0 | |
} | |
return !f || ta({ | |
nodeName: c | |
}, a) ? !1 : a | |
}, | |
u = function(c, f, b) { | |
if (b && b.name && b.value) { | |
if (!1 !== x(f, b.name)) try { | |
var d, l = v(c, b.name, b.value); | |
return d = {}, d[b.name] = l || "", d | |
} catch (T) { | |
a.warn("Error while reading attribute", b, c), a.warn(T) | |
} | |
} else a.warn("Error while reading attribute", b, c); | |
return null | |
}; | |
e = function(c) { | |
var a = new RegExp(c.join("|"), "gi"); | |
return function(c) { | |
return c && !!c.nodeName.match(a) | |
} | |
}(t); | |
var B = function(c) { | |
return c && c.namespaceURI ? /svg/.test(c.namespaceURI) : | |
!1 | |
}; | |
e = { | |
all: pa, | |
map: function(c, a, b) { | |
var d = []; | |
c = pa(c, b); | |
f.IterableUtils.fastIterate(c, function(c, f) { | |
d.push(a(f)) | |
}); | |
return d | |
}, | |
walk: Qa, | |
each: function(c, a, b) { | |
c && (c = pa(c, b), f.IterableUtils.fastIterate(c, a)) | |
}, | |
getAttributes: function(c) { | |
var a = {}, | |
b = c.nodeName, | |
d = f.IterableUtils.toArray(c.attributes); | |
d && d.length && (f.IterableUtils.fastIterate(d, function(f, d) { | |
var l = u(c, b, d); | |
l && m.ObjectUtils.assign(a, l) | |
}), (d = y[b] || w) && f.IterableUtils.fastIterate(d, function(f, d) { | |
u(a, b, { | |
name: d, | |
value: c[d] | |
}) | |
})); | |
return (d = A[b]) ? d(c, a) : | |
a | |
}, | |
getContent: function(c) { | |
if (null != c && ia(c)) return c.textContent | |
}, | |
getNamespace: function(c) { | |
if (B(c)) return c.namespaceURI | |
}, | |
normalizeAttributeValue: v, | |
cloneAttributes: function(c, a) { | |
var b = f.IterableUtils.toArray(c.attributes); | |
f.IterableUtils.fastIterate(b, function(c, f) { | |
var b = !1 === l.Tools.isNULL(f.namespaceURI), | |
d = f.cloneNode(); | |
b ? a.attributes.setNamedItemNS(d) : a.attributes.setNamedItem(d) | |
}); | |
return a | |
}, | |
isSVG: B, | |
isTextNode: ia, | |
isIgnoredNode: e, | |
isIgnoredAttr: ta, | |
isAttributeNameValid: x, | |
isSkippedAttribute: function(c) { | |
return f.IterableUtils.includes(D, | |
c) | |
} | |
}; | |
Object.defineProperty(e, "addAttributesFilter", { | |
value: function(c) { | |
"function" === typeof c && k.push(c) | |
} | |
}); | |
b.c = e | |
}).call(this, d(15)["default"]) | |
}, function(a, b, d) { | |
d.r(b); | |
d.d(b, "KeyValue", function() { | |
return m | |
}); | |
a = d(12); | |
var e = d.n(a); | |
a = d(0); | |
var g = d.n(a); | |
a = d(3); | |
var p = d(8), | |
h = d(1); | |
d = p.a.Map; | |
a = a.ObjectUtils.isMonkeyPatchedOrUndefined("Map", "set get has clear delete forEach toString".split(" ")); | |
var m = function() { | |
function a(c) { | |
g()(this, "lastIndex", 0); | |
g()(this, "list", []); | |
g()(this, "index", []); | |
c instanceof a ? this.create(h.IterableUtils.toArray(c)) : | |
c instanceof Array && this.create(c) | |
} | |
var c = a.prototype; | |
c.allocate = function(c) { | |
void 0 === c && (c = 0); | |
this.list.length = c; | |
this.index.length = c | |
}; | |
c.set = function(c, a) { | |
var f = this.indexOf(this.index, c); - 1 !== f ? this.list[f].value = a : (this.list[this.lastIndex] = { | |
key: c, | |
value: a | |
}, this.index[this.lastIndex] = c, this.lastIndex++); | |
return this | |
}; | |
c.get = function(c) { | |
return (c = this.find(c)) ? c.value : w | |
}; | |
c.keys = function() { | |
return this.list.map(function(c) { | |
return c.key | |
}) | |
}; | |
c.values = function() { | |
return this.list.map(function(c) { | |
return c.value | |
}) | |
}; | |
c.has = function(c) { | |
return -1 !== this.indexOf(this.index, c) | |
}; | |
c.clear = function() { | |
this.lastIndex = 0; | |
this.list.length = 0; | |
this.index.length = 0; | |
return this | |
}; | |
c["delete"] = function(c) { | |
if (c = this.find(c)) | |
if (c = this.indexOf(this.list, c), -1 !== c) return this.list.splice(c, 1), this.index.splice(c, 1), this.lastIndex--, !0; | |
return !1 | |
}; | |
c.each = function(c) { | |
"function" === typeof c && this.loop(function(a) { | |
var f = a.key; | |
a = a.value; | |
2 === c.length ? c(f, a) : c([f, a]) | |
}) | |
}; | |
c.forEach = function(c) { | |
var a = this; | |
"function" === typeof c && this.loop(function(f) { | |
c(f.value, | |
f.key, a) | |
}) | |
}; | |
c.toArray = function() { | |
return this.list.map(function(c) { | |
return [c.key, c.value] | |
}) | |
}; | |
c.toString = function() { | |
return "KeyValue(" + this.size + ")" | |
}; | |
c.loop = function(c) { | |
if ("function" === typeof c) | |
for (var a = 0; a < this.list.length;) c.call(this, this.list[a]), a++ | |
}; | |
c.create = function(c) { | |
var a = 0; | |
if (c && 0 < c.length) | |
for (; a < c.length;) { | |
var f = c[a]; | |
this.set(f[0], f[1]); | |
a++ | |
} | |
}; | |
c.find = function(c) { | |
c = this.indexOf(this.index, c); | |
if (-1 !== c) return this.list[c] | |
}; | |
c.indexOf = function(c, a) { | |
return [].indexOf.call(c, a) | |
}; | |
e()(a, [{ | |
key: "size", | |
get: function() { | |
return this.lastIndex | |
} | |
}]); | |
return a | |
}(); | |
b["default"] = a ? m : d | |
}, function(a, b, d) { | |
d.d(b, "a", function() { | |
return e | |
}); | |
var e = { | |
environment: "production", | |
"package": { | |
version: "2.6.2" | |
}, | |
server: function(a) { | |
switch (a) { | |
case "test": | |
return { | |
port: 8080, css_path: "/", public_host: "webvisor.local" | |
}; | |
case "production": | |
return { | |
port: 8080, css_path: "/", public_host: "webvisor.local" | |
}; | |
case "metrika": | |
return { | |
port: 8080, css_path: "/", public_host: "webvisor.local" | |
}; | |
default: | |
return { | |
port: 8080, css_path: "/", public_host: "webvisor.local" | |
} | |
} | |
}("production"), | |
respectDoNotTrack: !0, | |
experimentalWebSocket: !0, | |
captors: { | |
canvas: !1, | |
input: !0, | |
checkable: !0, | |
keystrokes: !0, | |
media: !1, | |
mouse: !0, | |
focus: !0, | |
mutations: !0, | |
resize: !0, | |
deviceRotation: !0, | |
selection: !0, | |
scroll: !0, | |
touch: !0, | |
zoom: !0, | |
window: !0, | |
srcset: !0 | |
}, | |
captorsConfig: { | |
input: { | |
PD: function() { | |
return { | |
delimiter: "(-|\\.|_|\\s){0,2}", | |
suspiciosWords: "first(-|\\.|_|\\s){0,2}name last(-|\\.|_|\\s){0,2}name zip postal phone address passport (bank|credit)(-|\\.|_|\\s){0,2}card card(-|\\.|_|\\s){0,2}number card(-|\\.|_|\\s){0,2}holder cvv card(-|\\.|_|\\s){0,2}exp card(-|\\.|_|\\s){0,2}name card.*month card.*year card.*month card.*year password email birth(-|\\.|_|\\s){0,2}(day|date) second(-|\\.|_|\\s){0,2}name third(-|\\.|_|\\s){0,2}name patronymic middle(-|\\.|_|\\s){0,2}name birth(-|\\.|_|\\s){0,2}place house street city flat state".split(" "), | |
placeholderSuspiciousWords: "\u0438\u043c\u044f \u0444\u0430\u043c\u0438\u043b\u0438\u044f \u043e\u0442\u0447\u0435\u0441\u0442\u0432\u043e \u0438\u043d\u0434\u0435\u043a\u0441 \u0442\u0435\u043b\u0435\u0444\u043e\u043d \u0430\u0434\u0440\u0435\u0441 \u043f\u0430\u0441\u043f\u043e\u0440\u0442 \u043d\u043e\u043c\u0435\u0440(-|\\.|_|\\s){0,2}\u043a\u0430\u0440\u0442\u044b \u0434\u0430\u0442\u0430(-|\\.|_|\\s){0,2}\u0440\u043e\u0436\u0434\u0435\u043d\u0438\u044f \u0434\u043e\u043c \u0443\u043b\u0438\u0446\u0430 \u043a\u0432\u0430\u0440\u0442\u0438\u0440\u0430 \u0433\u043e\u0440\u043e\u0434 \u043e\u0431\u043b\u0430\u0441\u0442\u044c".split(" ") | |
} | |
} | |
} | |
}, | |
DOMIndexer: { | |
IGNORED_NODES: ["script", "noscript", "audio"], | |
IGNORED_ATTRIBUTES: { | |
"*": ["^on*", "srcset", "integrity", "crossorigin"], | |
iframe: ["src"], | |
script: ["src", "type"] | |
}, | |
SKIPPED_ATTRIBUTES: [], | |
EXTRA_ATTRIBUTES: { | |
VIDEO: ["width", "height"] | |
}, | |
URL_NODES: ["link", "img", "svg"], | |
URL_ATTRIBUTES: "href link content poster style src srcset".split(" "), | |
IGNORE_NODES_ORDER: ["HEAD"], | |
HIDABLE_NODES: "#text IMG INPUT BUTTON SELECT TEXTAREA".split(" "), | |
REPLACE_ATTRIBUTES: { | |
a: { | |
href: "#" | |
} | |
} | |
} | |
} | |
}, function(a, b) { | |
function d(a, b) { | |
for (var d = 0; d < | |
b.length; d++) { | |
var h = b[d]; | |
h.enumerable = h.enumerable || !1; | |
h.configurable = !0; | |
"value" in h && (h.writable = !0); | |
Object.defineProperty(a, h.key, h) | |
} | |
} | |
a.exports = function(a, b, p) { | |
b && d(a.prototype, b); | |
p && d(a, p); | |
return a | |
} | |
}, function(a, b, d) { | |
(function(a, g) { | |
var e = d(7), | |
h = d(1), | |
m = d(3), | |
f = function() { | |
function c(c, f) { | |
var b = void 0 === f ? {} : f, | |
d = b.context; | |
d = void 0 === d ? null : d; | |
b = b.expose; | |
b = void 0 === b ? !1 : b; | |
this.allowedEvents = new e["default"]((this.eventsList || c || []).map(function(c) { | |
return c.split(":")[0] | |
})); | |
this.context = d || this; | |
this._define("_events", | |
new a)._define("_memory", new a)._define("_namespaces", new a)._define("_options", new a)._define("_once", new a); | |
this._setupEvents(); | |
this._exposeEvents(d, b) | |
} | |
var f = c.prototype; | |
f.emit = function(c) { | |
for (var a = this, f = arguments.length, b = Array(1 < f ? f - 1 : 0), d = 1; d < f; d++) b[d - 1] = arguments[d]; | |
return new g(function(f, d) { | |
var l = c.split(" "); | |
h.IterableUtils.forof(l, function(c) { | |
a._invokeEvent(c, b, f, d) | |
}); | |
return a | |
}) | |
}; | |
f.on = function(c, a) { | |
var f = this; | |
if ("function" === typeof a) { | |
var b = c.split(" "); | |
h.IterableUtils.forof(b, function(c) { | |
f._saveEvent(c, | |
a) | |
}) | |
} else throw Error("Callback sould be a function"); | |
return this | |
}; | |
f.off = function(c, a) { | |
var f = this; | |
var b = c ? c.split(" ") : h.IterableUtils.keys(f._events); | |
h.IterableUtils.forof(b, function(c) { | |
f._removeEvent(c, a) | |
}); | |
return this | |
}; | |
f._define = function(c, a) { | |
Object.defineProperty(this, c, { | |
value: a, | |
writable: !1 | |
}); | |
return this | |
}; | |
f._exposeEvents = function(c, a) { | |
a && m.ObjectUtils.assign(c, { | |
on: this.on.bind(this), | |
off: this.off.bind(this), | |
emit: this.emit.bind(this) | |
}) | |
}; | |
f._getNamespace = function(c, a) { | |
var f = this._namespaces.get(c); | |
return f ? f.get(a) || this._events.get(c) : this._events.get(c) | |
}; | |
f._hasOption = function(c, a) { | |
var f = this._options.get(c); | |
return !!f && f.has(a) | |
}; | |
f._invokeEvent = function(c, a, f) { | |
var b = this; | |
c = c.split("."); | |
var d = c[0]; | |
c = c[1]; | |
var l = this._hasOption(d, "stop"); | |
if ((c = this._getNamespace(d, c)) && 0 < c.size) { | |
var m = g.resolve(); | |
a = this._saveMemory(d, a); | |
h.IterableUtils.forof(c, function(c) { | |
if (b._isAlreadyCalled(d, c)) return !0; | |
m = m.then(function(m) { | |
return !1 !== m ? (m = b._runCallback(d, c, a), f(m), l ? m : null) : !1 | |
}) | |
}) | |
} | |
}; | |
f._isAlreadyCalled = function(c, | |
a) { | |
if (this._hasOption(c, "once")) { | |
var f = this._once.get(c) || new e["default"]; | |
if (f.has(a)) return !0; | |
f.add(a); | |
this._once.set(c, f) | |
} | |
return !1 | |
}; | |
f._runCallback = function(c, a, f) { | |
f = this._saveMemory(c, f); | |
return a.call.apply(a, [this.context].concat(f)) | |
}; | |
f._saveEvent = function(c, a) { | |
var f = c.split(":"), | |
b = f[0]; | |
f = f.slice(1); | |
var d = b.split("."); | |
b = d[0]; | |
d = d[1]; | |
var l = this._events.get(b) || new e["default"]; | |
f = this._options.get(b) || new e["default"](f); | |
var m = this._memory.get(b) || !1; | |
l.has(a) || (l.add(a), this._events.set(b, l), this._options.set(b, | |
f), this._saveNamespace(b, d, a), m && this._runCallback(b, a, m)) | |
}; | |
f._saveMemory = function(c, a) { | |
return this._hasOption(c, "memory") ? this._memory.has(c) ? this._memory.get(c) || [] : this._memory.set(c, a) && a : a | |
}; | |
f._saveNamespace = function(c, f, b) { | |
var d = this._namespaces.get(c) || new a, | |
l = d.get(f || "__global") || new e["default"]; | |
l.add(b); | |
d.set(f || "__global", l); | |
this._namespaces.set(c, d) | |
}; | |
f._setupEvents = function() { | |
var c = this; | |
this.allowedEvents.size && h.IterableUtils.forof(this.allowedEvents, function(a) { | |
var f = a.split(":"); | |
a = | |
f[0]; | |
f = f.slice(1); | |
c._options.set(a, new e["default"](f)); | |
c._events.set(a, new e["default"]) | |
}) | |
}; | |
f._removeCallbacks = function(c, a) { | |
if (a instanceof e["default"]) { | |
var f = this._events.get(c); | |
h.IterableUtils.forof(a, function(c) { | |
f && f["delete"](c) | |
}) | |
} | |
}; | |
f._removeEvent = function(c, a) { | |
var f = c.split("."), | |
b = f[0]; | |
f = f[1]; | |
var d = this._events.get(b) || new e["default"]; | |
d.has(a) ? (f || d["delete"](a), this._removeNamespace(b, f, a)) : (f || (this._events["delete"](b), this._options["delete"](b)), this._removeNamespace(b, f)) | |
}; | |
f._removeNamespace = | |
function(c, a) { | |
var f = this, | |
b = this._namespaces.get(c); | |
b && (a ? (this._removeCallbacks(c, b.get(a)), b["delete"](a)) : (h.IterableUtils.forof(b, function(a) { | |
f._removeCallbacks(c, a) | |
}), this._namespaces["delete"](c))) | |
}; | |
return c | |
}(); | |
b.a = f | |
}).call(this, d(10)["default"], d(23).Promise) | |
}, function(a, b, d) { | |
d.r(b); | |
d.d(b, "DOMUtils", function() { | |
return h | |
}); | |
var e = d(2), | |
g = d(1), | |
p = d(3), | |
h = { | |
base: function() { | |
var a = q.createElement("a"); | |
a.href = "/"; | |
var f = q.querySelector("base"); | |
f && f.href && (a.href = f.href); | |
return a.href | |
}, | |
getScroll: function(a) { | |
return null == | |
a ? { | |
left: 0, | |
top: 0 | |
} : a.window === a ? { | |
top: a.scrollY || 0, | |
left: a.scrollX || 0 | |
} : null === a.ownerDocument ? this.getScroll(this.scrollingElement(a)) : { | |
top: a.scrollTop || 0, | |
left: a.scrollLeft || 0 | |
} | |
}, | |
documentVisible: function() { | |
if ("undefined" !== typeof q) { | |
var a = "undefined" !== typeof q.msHidden ? "msHidden" : "undefined" !== typeof q.webkitHidden ? "webkitHidden" : "hidden"; | |
return function() { | |
return q[a] | |
} | |
} | |
}(), | |
isDOMNode: function(a) { | |
if (a) try { | |
var f = a.ownerDocument; | |
if (null === f) return !1; | |
if (f.defaultView) return a instanceof f.defaultView.Node | |
} catch (c) { | |
return "object" === | |
typeof a && "object" === typeof a.style && "object" === typeof a.ownerDocument | |
} | |
return !1 | |
}, | |
isScrollable: function(a) { | |
var f = a.scrollHeight !== a.clientHeight; | |
return a.scrollWidth !== a.clientWidth || f | |
}, | |
scrollingElement: function(a) { | |
a = a || q; | |
return a.scrollingElement || (a.documentElement.scrollHeight > a.body.scrollHeight && 0 === a.compatMode.indexOf("CSS1") ? a.documentElement : a.body) | |
}, | |
convertNode: function(a, f, c) { | |
var b = void 0 === c ? {} : c; | |
c = b.doc; | |
c = void 0 === c ? q : c; | |
b = b.saveChildren; | |
b = void 0 === b ? !0 : b; | |
c = c || a.ownerDocument; | |
var d = c.createElement(f); | |
g.IterableUtils.forof(a.attributes, function(c) { | |
d.setAttribute(c.name, c.value) | |
}); | |
b && g.IterableUtils.forof(a.childNodes, function(c) { | |
d.appendChild(c.cloneNode(!0)) | |
}); | |
return d | |
}, | |
nodeIsRecordable: function(a) { | |
if (null !== a) { | |
var f = null != a.getAttribute("metrika-ignore") || /-metrika-ignore/.test(a.className), | |
c = null != a.getAttribute("metrika-force") || /-metrika-force/.test(a.className); | |
a = a.getAttribute("type"); | |
return c ? !0 : !f && "password" !== a | |
} | |
return !1 | |
}, | |
contentSizeChanged: function(a, f) { | |
var c = a.ownerDocument ? a.ownerDocument.defaultView : | |
n, | |
b = { | |
stopped: !1, | |
height: null, | |
width: null, | |
runner: function() { | |
if (!this.stopped) { | |
var b = null == a ? {} : "function" === typeof a ? a() || {} : a; | |
var d = b.scrollHeight; | |
b = b.scrollWidth; | |
if (d !== this.height || b !== this.width) this.height = d, this.width = b, f({ | |
width: b, | |
height: d | |
}); | |
c && c.requestAnimationFrame(this.runner.bind(this)) | |
} | |
}, | |
stop: function() { | |
this.stopped = !0 | |
} | |
}; | |
b.runner(); | |
return b | |
}, | |
elementsFromPoint: function(a, f, c) { | |
c = c || q; | |
var b = c.elementsFromPoint; | |
if (b) return b.call(c, a, f); | |
b = []; | |
for (var d = [], h; | |
(h = c.elementFromPoint(a, f)) && -1 === b.indexOf(h);) { | |
b.push(h); | |
var m = h.style; | |
d.push({ | |
value: m.getPropertyValue("pointer-events"), | |
priority: m.getPropertyPriority("pointer-events") | |
}); | |
m.setProperty("pointer-events", "none", "important") | |
} | |
for (a = d.length; f = d[--a];) b[a].style.setProperty("pointer-events", f.value ? f.value : "", f.priority); | |
return b | |
}, | |
nodeIndentLevel: function(a) { | |
for (var f = 0; a.parentNode;) a = a.parentNode, f++; | |
return f | |
}, | |
offsets: function(a, f) { | |
var c = void 0 === f ? {} : f, | |
b = c.relative, | |
d = void 0 === b ? !1 : b; | |
b = c.excludeBorder; | |
var h = void 0 === b ? !1 : b; | |
c = c.excludePadding; | |
var m = void 0 === | |
c ? !1 : c; | |
!1 === "getBoundingClientRect" in a && ("documentElement" in a ? a = a.documentElement : "document" in a && (a = a.document.documentElement)); | |
var e = (a.ownerDocument || q).defaultView || n, | |
g = a.getBoundingClientRect(); | |
c = g.top; | |
b = g.right; | |
var p = g.bottom, | |
A = g.left; | |
d && (c = g.top, A = g.left); | |
if (h || m) d = e.getComputedStyle(a), h && (h = d.borderRightWidth, e = d.borderBottomWidth, g = d.borderLeftWidth, c += parseInt(d.borderTopWidth || "0", 10), b += parseInt(h || "0", 10), p += parseInt(e || "0", 10), A += parseInt(g || "0", 10)), m && (m = d.paddingRight, h = d.paddingBottom, | |
e = d.paddingLeft, c += parseInt(d.paddingTop || "0", 10), b += parseInt(m || "0", 10), p += parseInt(h || "0", 10), A += parseInt(e || "0", 10)); | |
return { | |
top: c, | |
right: b, | |
bottom: p, | |
left: A | |
} | |
}, | |
nodeIsInTree: function(a) { | |
if (this.isDOMNode(a)) { | |
var f = a.ownerDocument; | |
if (null != f) return f.documentElement.contains(a) | |
} | |
return !1 | |
}, | |
waitForNode: function(a, f, c) { | |
var b = this; | |
void 0 === c && (c = 500); | |
var d = { | |
disconnect: function() {} | |
}; | |
if (b.nodeIsInTree(a)) f(!0); | |
else { | |
var h = a.ownerDocument || q, | |
e = new MutationObserver(function() { | |
b.nodeIsInTree(a) && (f(!0), e.disconnect()) | |
}); | |
e.observe(h.documentElement, { | |
subtree: !0, | |
childList: !0 | |
}); | |
var m = isFinite(c) ? C(function() { | |
b.nodeIsInTree(a) || (f(!1), e.disconnect()) | |
}, c) : w; | |
d.disconnect = function() { | |
m && clearTimeout(m); | |
e.disconnect() | |
} | |
} | |
return d | |
}, | |
createElement: function(a, f, c) { | |
c = c || q; | |
var b = c.createElement(a); | |
g.IterableUtils.forin(f, function(c) { | |
var a = f[c]; | |
"style" === c ? p.ObjectUtils.assign(b[c], a) : b[c] = a | |
}); | |
return b | |
}, | |
matchesSelector: function(a, f) { | |
var c = g.IterableUtils.find(["matches", "webkitMatchesSelector", "mozMatchesSelector", "msMatchesSelector", | |
"oMatchesSelector" | |
], function(c) { | |
return c in q.body | |
}); | |
this.matchesSelector = function(a, f) { | |
if (c) { | |
if (null == a || null == a.ownerDocument) return !1; | |
try { | |
if (c in a) return a[c](f) | |
} catch (z) {} | |
} | |
return !1 | |
}; | |
return this.matchesSelector(a, f) | |
}, | |
closestParent: function(a, f, c) { | |
void 0 === c && (c = !1); | |
for (a = c && !this.isTextNode(a) ? a : a.parentNode; a;) { | |
if (a && this.matchesSelector(a, f)) return a; | |
a = a.parentNode | |
} | |
return null | |
}, | |
isTextNode: function(a) { | |
return 0 <= [Node.TEXT_NODE, Node.COMMENT_NODE].indexOf(a.nodeType) | |
}, | |
isChildOf: function(a, f, c) { | |
void 0 === | |
c && (c = !1); | |
return null != this.closestParent(a, f, c) | |
}, | |
copyAttributes: function(a, f) { | |
g.IterableUtils.forof(a.attributes, function(c) { | |
try { | |
f.setAttribute(c.name, c.value) | |
} catch (l) { | |
e.a.console.warn("Can't copy attribute [" + c.name + "\x3d" + c.value + "]", { | |
sourceNode: a | |
}) | |
} | |
}); | |
return f | |
}, | |
isHiddenContent: function(a) { | |
if (null == a) return !1; | |
if ("#text" === a.nodeName) return this.isHiddenContent(a.parentNode); | |
if (/ym-hidden-content/.test(a.className)) return !1; | |
var f = this.closestParent(a, ".ym-hide-content", !0); | |
a: { | |
a = this.closestParent(a, | |
".ym-show-content", !0);f === a && (a = null); | |
if (null != f || null != a) { | |
if (f && null == a) { | |
f = !0; | |
break a | |
} | |
if ((null != f || !a) && f && a) { | |
f = !f.contains(a); | |
break a | |
} | |
} | |
f = !1 | |
} | |
return f | |
} | |
} | |
}, function(a, b, d) { | |
d.r(b); | |
a = d(17); | |
var e = d(2); | |
d = d(8).a.console; | |
var g = { | |
console: function() {}, | |
warn: function() {}, | |
info: function() {}, | |
group: function() {}, | |
groupCollapsed: function() {}, | |
groupEnd: function() {}, | |
time: function() {}, | |
end: function() {} | |
}, | |
p = ["%cWV:", "font-weight: bold;"]; | |
e.a !== e.a.top && p.length && (p[1] += "color: purple"); | |
Object(a.a)(d, function(a) { | |
g[a] = function() {} | |
}, | |
!0); | |
g.__native = d; | |
g.__debugMode = !1; | |
g.__addDebug = function(a, b) {}; | |
b["default"] = g | |
}, function(a, b) { | |
a.exports = function(a, b) { | |
a.prototype = Object.create(b.prototype); | |
a.prototype.constructor = a; | |
a.__proto__ = b | |
} | |
}, function(a, b, d) { | |
b.a = function(a, b, d) { | |
void 0 === d && (d = !1); | |
var h = 2 === b.length; | |
if (a && b instanceof Function) | |
for (var e in a) | |
if (a.hasOwnProperty(e) || !0 === d) { | |
var f = h ? b(e, a[e]) : b(e); | |
if (!0 !== f && !1 === f) break | |
} | |
} | |
}, function(a, b, d) { | |
(function(a, d) { | |
var e = new a; | |
b.a = { | |
throttledFunctions: e, | |
invokeAll: function(a) { | |
d.fastIterate(e, | |
function(b, f) { | |
f.invoke.call(a) | |
}) | |
}, | |
create: function(a, b) { | |
var f = void 0 === b ? {} : b, | |
c = f.timeout, | |
l = void 0 === c ? 0 : c; | |
c = f.immediateFirstRun; | |
var h = void 0 === c ? !1 : c; | |
f = f.context; | |
var m = !0, | |
g = null, | |
p = null, | |
k = null, | |
O = null, | |
A = !1, | |
n = null, | |
sa = null; | |
f = { | |
invoke: function() { | |
var c = this.context || this; | |
k !== g && (O = d.now(), k = g, a.call(c, { | |
object: g, | |
prevObject: null, | |
timeDifff: 0, | |
args: sa | |
})) | |
}, | |
run: function(c) { | |
var f = this.context || this; | |
h && (clearTimeout(n), n = C(function() { | |
return m = !0 | |
}, l)); | |
if (!A) { | |
g = c; | |
for (var b = arguments.length, e = Array(1 < b ? b - 1 : 0), t = 1; t < | |
b; t++) e[t - 1] = arguments[t]; | |
sa = e; | |
m && h ? (m = !1, k = c, a.call(f, { | |
object: c, | |
prevObject: null, | |
timeDifff: 0, | |
args: sa | |
})) : (O = d.now(), A = !0, C(function Fb() { | |
var c = parseInt(d.now() - O, 10); | |
c >= l ? (A = !1, O = d.now(), k !== g && (p = k, k = g, a.call(f, { | |
object: g, | |
prevObject: p, | |
timeDiff: c, | |
args: sa | |
}))) : C(Fb) | |
})) | |
} | |
}, | |
context: void 0 === f ? null : f, | |
call: function() { | |
var c; | |
(c = this.run).call.apply(c, arguments) | |
} | |
}; | |
e.set(a, f); | |
return f | |
}, | |
setContext: function(a, b) { | |
if (e.has(a)) { | |
var f = e.get(a); | |
null == f.context && (f.context = b) | |
} | |
} | |
} | |
}).call(this, d(10)["default"], d(4)["default"]) | |
}, | |
function(a, b, d) { | |
(function(a, g) { | |
d.d(b, "a", function() { | |
return t | |
}); | |
var e = d(11), | |
h = new a, | |
m = String.fromCharCode(8226), | |
f = e.a.captorsConfig.input.PD(); | |
e = f.suspiciosWords; | |
f = f.placeholderSuspiciousWords; | |
var c = new RegExp("(" + e.join("|") + ")", "i"), | |
l = new RegExp("(" + e.concat(f).join("|") + ")", "i"), | |
t = { | |
isValidType: function(c) { | |
return /color|date|datetime-local|email|month|number|password|range|search|tel|text|time|url|week/i.test(c) | |
}, | |
isValidNode: function(c) { | |
var a = c.nodeName; | |
c = c.type; | |
return "INPUT" === a ? t.isValidType(c) : | |
/textarea|select|progress/i.test(a) | |
}, | |
isPrivateInformationField: function(a) { | |
var f = a.placeholder; | |
return [a.className, a.id, a.name].reduce(function(a, f) { | |
return a || c.test(f) | |
}, !1) || l.test(f) | |
}, | |
isIgnored: function(c) { | |
var a = c.className; | |
return /password/i.test(c.type) || /ym-disable-keys/i.test(a) || g.isHiddenContent(c) ? !0 : !1 | |
}, | |
isRecordable: function(c) { | |
return this.matchesClass(c.className, "ym-record-keys") ? !0 : !1 | |
}, | |
matchesClass: function(c, a) { | |
return (new RegExp(a, "i")).test(c) | |
}, | |
isAllowed: function(c, a) { | |
void 0 === a && (a = !1); | |
return a ? !0 === t.isRecordable(c) : !1 === t.isIgnored(c) | |
}, | |
isChanged: function(c, a) { | |
var f = !0; | |
h.has(c) && (f = h.get(c)[0], f = a !== f); | |
f && h.set(c, [a]); | |
return f | |
}, | |
validate: function(c, a) { | |
void 0 === a && (a = {}); | |
var f = a, | |
b = f.isEU, | |
d = f.recording.keysMode; | |
f = t.isRecordable(c); | |
var l = t.isPrivateInformationField(c); | |
b = t.isAllowed(c, "explicit" === d) && (!b || !l); | |
return { | |
forceRecord: f, | |
isPrivate: l, | |
isAllowed: b | |
} | |
}, | |
encode: function(c) { | |
void 0 === c && (c = ""); | |
return c && 0 < c.length ? c.split(/\n/).map(function(c) { | |
return g.repeatString(m, c.length) | |
}).join("\n") : | |
c | |
} | |
} | |
}).call(this, d(10)["default"], d(4)["default"]) | |
}, | |
function(a, b, d) { | |
d.r(b); | |
(function(a, g) { | |
d.d(b, "Tools", function() { | |
return l | |
}); | |
var e = d(11), | |
h = d(2), | |
m = d(39), | |
f = d(3), | |
c = { | |
"null": null, | |
undefined: w, | |
"true": !0, | |
"false": !1 | |
}, | |
l = { | |
delay: function(c, f) { | |
void 0 === f && (f = 0); | |
return new a(function(a) { | |
C(function() { | |
a(c()) | |
}, f) | |
}) | |
}, | |
copyText: function(c) { | |
return new a(function(a) { | |
var f = q.createElement("textarea"), | |
b = q.body; | |
f.value = c; | |
f.style.opacity = "0"; | |
f.style.position = "absolute"; | |
f.style.top = "-99999px"; | |
f.style.left = "-99999px"; | |
f.onselect = | |
function() { | |
try { | |
f.onselect = null, q.execCommand && q.execCommand("copy"), a() | |
} catch (aa) { | |
g.warn("Error while copying text " + c, aa) | |
} | |
b.removeChild(f) | |
}; | |
b.appendChild(f); | |
f.select() | |
}) | |
}, | |
globalize: function(c, a) { | |
"undefined" !== typeof h.a && Object.defineProperty(h.a, a, { | |
value: c | |
}) | |
}, | |
guid: function() { | |
var c = function() { | |
return Math.floor(65536 * (1 + Math.random())).toString(16).substring(1) | |
}; | |
return c() + c() + "-" + c() + "-" + c() + "-" + c() + "-" + c() + c() + c() | |
}, | |
measure: function(c, a, f) { | |
if (null != a) return "function" === typeof a ? a() : a | |
}, | |
apiMock: function(c) { | |
var a = { | |
properties: [], | |
methods: [] | |
}; | |
c = c.prototype; | |
for (var f in c) | |
if (c.hasOwnProperty(f)) try { | |
c[f] instanceof Function ? a.methods.push(f) : a.properties.push(f) | |
} catch (y) { | |
a.properties.push(f) | |
} | |
return a | |
}, | |
imageUrl: function(c) { | |
return /^\//.test(c) ? c : [e.a.server.css_path.replace(/([/]+)$/, ""), c].join("/") | |
}, | |
cast: function(a) { | |
if (c.hasOwnProperty(a)) return c[a]; | |
var f = Number(a); | |
return String(f) === a ? f : a | |
}, | |
"catch": function(c) { | |
try { | |
c() | |
} catch (z) { | |
return g.warn(z), z | |
} | |
}, | |
fetch: m.a, | |
promise: function(c) { | |
return (new a(function(a, f) { | |
c(a, f) | |
}))["catch"](function(c) { | |
h.a.console.log(c) | |
}) | |
}, | |
isNULL: function(c) { | |
return null == c | |
}, | |
isFunction: function(c) { | |
return "function" === typeof c | |
}, | |
promiseError: function(c) { | |
h.a.console.log(c); | |
return a.reject(c) | |
}, | |
promiseExec: function(c) { | |
return new a(function(a) { | |
a(c()) | |
}) | |
}, | |
requestAnimationFrame: function(c) { | |
var a = f.ObjectUtils.findNativeImplementation("requestAnimationFrame"), | |
b = f.ObjectUtils.findNativeImplementation("cancelAnimationFrame"); | |
if (a && b) return this.requestAnimationFrame = a.bind(n), this.requestAnimationFrame(c); | |
this.requestAnimationFrame = a = function(c) { | |
return C(c, | |
4) | |
}; | |
return a(c) | |
}, | |
cancelAnimationFrame: function(c) { | |
var a = f.ObjectUtils.findNativeImplementation("requestAnimationFrame"), | |
b = f.ObjectUtils.findNativeImplementation("cancelAnimationFrame"); | |
a && b ? (this.cancelAnimationFrame = b.bind(n), this.cancelAnimationFrame(c)) : (this.cancelAnimationFrame = function(c) { | |
clearTimeout(c) | |
}, clearTimeout(c)) | |
}, | |
throwError: function(c) { | |
throw Error(c); | |
}, | |
errorProxy: function(c, a, f) { | |
void 0 === a && (a = !1); | |
try { | |
return c() | |
} catch (y) { | |
return n.console.warn("Error while running " + (f || c.name), y), | |
a | |
} | |
} | |
} | |
}).call(this, d(23).Promise, d(15)["default"]) | |
}, | |
function(a, b, d) { | |
var e = d(2), | |
g = function(a) { | |
return "undefined" !== typeof Window && a && a.window && a.window === a | |
}, | |
p = function() { | |
var a = !1; | |
if (g(e.a)) try { | |
e.a.addEventListener("test", function() {}, Object.defineProperties({}, { | |
passive: { | |
get: function() { | |
return a = !0 | |
}, | |
configurable: !0, | |
enumerable: !0 | |
} | |
})) | |
} catch (f) {} | |
return a | |
}(), | |
h = function(a, f, c, b, d) { | |
void 0 === d && (d = {}); | |
a += "EventListener"; | |
return p ? f[a](c, b, d) : f[a](c, b, "boolean" === typeof d ? d : d.capture || !1) | |
}; | |
a = function() { | |
function a() {} | |
a.on = function(a, c, b, d) { | |
void 0 === d && (d = {}); | |
return h("add", a, c, b, d) | |
}; | |
a.off = function(a, c, b, d) { | |
void 0 === d && (d = {}); | |
return h("remove", a, c, b, d) | |
}; | |
return a | |
}(); | |
b.a = a | |
}, | |
function(a, b, d) { | |
d.r(b); | |
a = d(2).a.Symbol; | |
d = a instanceof Function && a.iterator ? a : d(66); | |
b["default"] = d | |
}, | |
function(a, b, d) { | |
d.r(b); | |
d.d(b, "Promise", function() { | |
return e | |
}); | |
var e = d(2).a.Promise || d(86).Promise | |
}, | |
function(a, b, d) { | |
d.r(b); | |
d.d(b, "StringUtils", function() { | |
return p | |
}); | |
var e = d(2), | |
g = d(1), | |
p = { | |
dasherize: function(a) { | |
return a.replace(/[A-Z]/g, function(b, f) { | |
var c = | |
/[A-Z]/g.test(a[f - 1]); | |
return (0 === f || c ? "" : "-") + b.toLowerCase() | |
}) | |
}, | |
pad: function(a, b, f, c) { | |
void 0 === b && (b = 2); | |
void 0 === f && (f = " "); | |
void 0 === c && (c = !1); | |
a = String(a); | |
b = g.IterableUtils.fill(Array(Math.max(0, Math.min(b - a.length, b))), f); | |
return c ? "" + a + b.join("") : "" + b.join("") + a | |
}, | |
stringToBlobURL: function(a, b, f) { | |
void 0 === f && (f = e.a.location); | |
var c = function() { | |
try { | |
return new Blob([a], { | |
type: b | |
}) | |
} catch (z) { | |
var c = e.a; | |
c = new(c.BlobBuilder || c.WebKitBlobBuilder || c.MozBlobBuilder || c.MSBlobBuilder); | |
c.append(a); | |
return c.getBlob(b) | |
} | |
}(), | |
d = function(c) { | |
return c ? (c = (URL || webkitURL).createObjectURL(c), /blob:(?!http[s]?).*/.test(c) ? c.replace("blob:", "blob:" + (f.protocol + "//" + f.host) + "/") : c) : w | |
}(c); | |
return c ? { | |
blob: c, | |
url: d | |
} : null | |
}, | |
repeatString: function(a, b) { | |
void 0 === b && (b = 1); | |
return Array(b + 1).join(a) | |
}, | |
parseURL: function(a) { | |
if (!a) return w; | |
if ("string" !== typeof a) return e.a.console.warn("URL was expected to be a string", a), w; | |
var b = a.match(/^(http[s]?|file):\/\/([^/\n]*)([^?\n]*)(\?[^\n]*)?/); | |
if (b) { | |
var f = b.slice(1); | |
b = f[0]; | |
var c = f[1], | |
d = f[2]; | |
f = f[3]; | |
var h = c ? (c.match(/([^:\s]+)(:[0-9]*)?/) || []).slice(1) : [], | |
g = h[0]; | |
g = void 0 === g ? w : g; | |
h = h[1]; | |
h = void 0 === h ? w : h; | |
var p = g ? (g.match(/\.([^.]+)$/) || [])[1] : w, | |
k = d ? function() { | |
var c = d.match(/([^/]+)\.([^/]*)$/); | |
return c ? c[0] : w | |
}() : w, | |
n = d && k ? d.replace("/" + k, "") : d || "/"; | |
return { | |
protocol: b ? b + ":" : w, | |
hostname: c, | |
host: g, | |
port: (h || "80").replace(/:/, ""), | |
path: d || "/", | |
tld: p, | |
file: k, | |
pathname: n, | |
search: f ? f.replace(/^\?/, "") : w, | |
url: a, | |
assemble: function(c) { | |
var a = this; | |
return c ? c.replace(/(\{([^}]+)\})/g, function() { | |
return a[2 >= arguments.length ? | |
w : arguments[2]] | |
}) : this.url | |
} | |
} | |
} | |
return w | |
} | |
} | |
}, | |
function(a, b, d) { | |
(function(a) { | |
var e = d(8), | |
p = d(3); | |
b.a = function(b) { | |
var d = []; | |
if (!b) return d; | |
if (b instanceof Array) return [].slice.call(b, 0); | |
if (p.ObjectUtils.isNative(e.a.Array.from, "from")) return e.a.Array.from(b); | |
var f = "length" in b ? b.length : "size" in b ? b.size : 0; | |
var c = d.slice.call(b, 0); | |
if (c.length === f) return c; | |
try { | |
if (b.forEach) b.forEach(function(c, a) { | |
var f = c; | |
a && c && a !== c && (f = [a, c]); | |
d.push(f) | |
}); | |
else | |
for (var l = b[a.iterator](), h, g; h = l.next(), g = h.value, !h.done;) d.push(g); | |
return d | |
} catch (D) { | |
return [] | |
} | |
} | |
}).call(this, d(22)["default"]) | |
}, | |
function(a, b, d) { | |
(function(a) { | |
var e = d(25), | |
p = function(a, b, f) { | |
a.forEach(function(c, a) { | |
2 === b.length ? f ? b(c, a) : b([c, a]) : b(c) | |
}) | |
}; | |
b.a = function(b, d) { | |
var f = 2 === d.length; | |
if (b && d instanceof Function) | |
if (null != b[a.iterator]) | |
if (f) | |
if (b instanceof Array) { | |
f = 0; | |
for (var c = b.length; f < c; f++) { | |
var l = d(f, b[f]); | |
if (!0 !== l && !1 === l) break | |
} | |
} else { | |
if (b[a.iterator]) | |
for (f = b, c = Array.isArray(f), l = 0, f = c ? f : f[a.iterator]();;) { | |
if (c) { | |
if (l >= f.length) break; | |
var h = f[l++] | |
} else { | |
l = f.next(); | |
if (l.done) break; | |
h = l.value | |
} | |
h = d(h[0], h[1]); | |
if (!0 !== h && !1 === h) break | |
} | |
} | |
else | |
for (f = b, c = Array.isArray(f), l = 0, f = c ? f : f[a.iterator]();;) { | |
if (c) { | |
if (l >= f.length) break; | |
h = f[l++] | |
} else { | |
l = f.next(); | |
if (l.done) break; | |
h = l.value | |
} | |
h = d(h); | |
if (!0 !== h && !1 === h) break | |
} else if ("forEach" in b) p(b, d, f); | |
else if (b instanceof Array) | |
for (c = Object(e.a)(b), l = 0; l < c.length && (h = c[l], h = f ? d.apply(void 0, h) : d(h), !0 === h || !1 !== h); l++); | |
} | |
}).call(this, d(22)["default"]) | |
}, | |
function(a, b, d) { | |
(function(a, g, p) { | |
d.d(b, "b", function() { | |
return z | |
}); | |
var h = d(0); | |
h = d.n(h); | |
var e = d(13), | |
f = "2d webgl experimental-webgl webgl2 experimental-webgl2 bitmaprenderer".split(" "), | |
c = function() { | |
var c = q.createElement("canvas"); | |
c.proxy = !1; | |
return f.filter(function(a) { | |
return null != c.getContext(a) | |
}) | |
}(), | |
l = new a, | |
t = HTMLCanvasElement.prototype.getContext, | |
z = function(c) { | |
var a = q.createElement("canvas"); | |
a.width = c.width; | |
a.height = c.height; | |
a.proxy = !1; | |
a.getContext("2d").drawImage(c, 0, 0); | |
return a.toDataURL("image/jpeg") | |
}, | |
k = function(c) { | |
c = c.constructor; | |
if (l.has(c)) return l.has(c); | |
var a = g.apiMock(c); | |
l.set(c, a); | |
return a | |
}; | |
a = function() { | |
function a() {} | |
a.mock = function() { | |
if (!this.mocked) { | |
this.mocked = !0; | |
HTMLCanvasElement.prototype.getContext = function(f) { | |
var b = t.call(this, f); | |
if (null !== b) return !1 !== this.proxy && 0 <= c.indexOf(f) && a.update(b), b | |
}; | |
var b = q.querySelectorAll("canvas"); | |
g.forof(b, function(a) { | |
g.forof(f, a.getContext.bind(a)) | |
}) | |
} | |
}; | |
a.remove = function() { | |
this.mocked && (this.mocked = !1, this.events.off(), HTMLCanvasElement.prototype.getContext = t) | |
}; | |
a.update = function(c) { | |
if (!1 === a.proxies.has(c)) { | |
var f = this, | |
b = c.canvas, | |
d = Object.getPrototypeOf(c), | |
l = k(c); | |
g.nodeIsRecordable(b) && l.properties && (g.forof(l.properties, function(a) { | |
var b = Object.getOwnPropertyDescriptor(d, a), | |
l = g.combine(b); | |
b.get && (l.get = b.get.bind(c)); | |
b.set && (l.set = function(d) { | |
f.setterInvoked(c, a, d); | |
return b.set.call(c, d) | |
}); | |
Object.defineProperty(c, a, l) | |
}), g.forof(l.methods, function(a) { | |
var b = c[a]; | |
Object.defineProperty(c, a, { | |
configurable: !0, | |
value: function() { | |
for (var d = arguments.length, l = Array(d), h = 0; h < d; h++) l[h] = arguments[h]; | |
f.methodInvoked(c, a, l); | |
return b.bind.apply(b, | |
[c].concat(l)) | |
} | |
}) | |
})); | |
a.proxies.add(c) | |
} | |
}; | |
a.setterInvoked = function(c, a, f) { | |
var b = this; | |
this.mocked && C(function() { | |
b.send(c, "setter", { | |
name: a, | |
value: String(f) | |
}) | |
}) | |
}; | |
a.methodInvoked = function(c, a, f) { | |
var b = this; | |
this.mocked && C(function() { | |
f = f.map(function(c) { | |
return c instanceof Image ? z(c) : String(c) | |
}); | |
b.send(c, "method", { | |
name: a, | |
args: f | |
}) | |
}) | |
}; | |
a.send = function() {}; | |
return a | |
}(); | |
h()(a, "proxies", new p); | |
h()(a, "mocked", !1); | |
h()(a, "events", new e.a(["setter:memory", "method:memory"])); | |
b.a = a | |
}).call(this, d(10)["default"], d(4)["default"], | |
d(7)["default"]) | |
}, | |
function(a, b, d) { | |
(function(a, g) { | |
var e = d(12), | |
h = d.n(e); | |
e = d(0); | |
var m = d.n(e); | |
e = function() { | |
function f() { | |
m()(this, "executionFrameId", null); | |
m()(this, "jobExecutionStartStamp", null); | |
this.jobs = []; | |
this.isRunning = !1 | |
} | |
var c = f.prototype; | |
c.push = function(c, f) { | |
var b, d = this; | |
void 0 === f && (f = !1); | |
(b = this.jobs).push.apply(b, [].concat(c)); | |
f ? this.start(!0) : a.requestAnimationFrame(function() { | |
return d.start(f) | |
}) | |
}; | |
c.start = function(c) { | |
void 0 === c && (c = !1); | |
this.isRunning || this.executeNextJob(c) | |
}; | |
c.executeNextJob = | |
function(c) { | |
void 0 === c && (c = !1); | |
this.hasJobs && (c ? this._executeJobsSync() : this._executeJobsAsync()) | |
}; | |
c._executeJobsSync = function() { | |
if (this.hasJobs && this.isRunning) { | |
for (a.cancelAnimationFrame(this.executionFrameId); this.hasJobs;) this._executeJob(); | |
this.jobExecutionStartStamp = null; | |
this.isRunning = !1 | |
} | |
}; | |
c._executeJobsAsync = function() { | |
var c = this; | |
if (this.hasJobs) { | |
this.isRunning = !0; | |
var f; | |
this.executionFrameId = a.requestAnimationFrame(function() { | |
for (; c.hasJobs && (!c.jobExecutionStartStamp || 150 > f);) f = c._executeJob(!c.jobExecutionStartStamp); | |
c.jobExecutionStartStamp = null; | |
c._executeJobsAsync() | |
}) | |
} else this.isRunning = !1 | |
}; | |
c._executeJob = function(c) { | |
void 0 === c && (c = !0); | |
c && (this.jobExecutionStartStamp = (new Date).valueOf()); | |
c = this.jobs.shift(); | |
try { | |
c() | |
} catch (t) { | |
g.log("Error occurred when running job"), g.log(t), g.log(c.toString()) | |
} | |
return (new Date).valueOf() - this.jobExecutionStartStamp | |
}; | |
h()(f, [{ | |
key: "hasJobs", | |
get: function() { | |
return 0 < this.jobs.length | |
} | |
}]); | |
return f | |
}(); | |
b.a = e | |
}).call(this, d(4)["default"], d(15)["default"]) | |
}, | |
function(a, b) { | |
a.exports = function(a, | |
b) { | |
if (null == a) return {}; | |
var d = {}, | |
e = Object.keys(a), | |
h; | |
for (h = 0; h < e.length; h++) { | |
var m = e[h]; | |
0 <= b.indexOf(m) || (d[m] = a[m]) | |
} | |
return d | |
} | |
}, | |
function(a, b, d) { | |
d.d(b, "a", function() { | |
return e | |
}); | |
d.d(b, "b", function() { | |
return g | |
}); | |
var e = function() { | |
function a() { | |
this.m = [] | |
} | |
var b = a.prototype; | |
b.use = function(a) { | |
this.m.push(a) | |
}; | |
b.useRight = function(a) { | |
this.m.unshift(a) | |
}; | |
b.run = function(a, f) { | |
this._execute(a, f) | |
}; | |
b._execute = function(a, f) { | |
this.m.reduceRight(function(c, f) { | |
return function(b) { | |
return f(b || a, c) | |
} | |
}, function(c) { | |
return f(c || a) | |
})(a) | |
}; | |
return a | |
}(), | |
g = function() { | |
function a() { | |
this.m = [] | |
} | |
var b = a.prototype; | |
b.use = function(a) { | |
this.m.push(a) | |
}; | |
b.useRight = function(a) { | |
this.m.unshift(a) | |
}; | |
b.run = function(a, f) { | |
return this._execute(a, f) | |
}; | |
b._execute = function(a) { | |
for (var f = 0, c = this.m.length; f < c; f++) { | |
var b = this.m[f](a); | |
if (b === w) break; | |
a = b | |
} | |
return a | |
}; | |
return a | |
}() | |
}, | |
function(a, b, d) { | |
var e = d(76)(); | |
a.exports = function(a) { | |
return a !== e && null !== a | |
} | |
}, | |
function(a, b, d) { | |
d.r(b); | |
d.d(b, "BrowserUtils", function() { | |
return p | |
}); | |
var e = d(2), | |
g = d(14), | |
p = { | |
isMSIE: function() { | |
var a = e.a.navigator.userAgent, | |
b = a.indexOf("MSIE "); | |
if (0 < b) return parseInt(a.substring(b + 5, a.indexOf(".", b)), 10); | |
if (0 < a.indexOf("Trident/")) return b = a.indexOf("rv:"), parseInt(a.substring(b + 3, a.indexOf(".", b)), 10); | |
b = a.indexOf("Edge/"); | |
return 0 < b ? parseInt(a.substring(b + 5, a.indexOf(".", b)), 10) : !1 | |
}, | |
isIframe: function(a) { | |
return a.top !== a | |
}, | |
isMobile: function(a) { | |
a = a || n && n.navigator ? navigator.userAgent : null; | |
if (null == a) return !1; | |
var b = !1; | |
if (/(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows ce|xda|xiino|android|ipad|playbook|silk/i.test(a) || | |
/1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw-(n|u)|c55\/|capi|ccwa|cdm-|cell|chtm|cldc|cmd-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc-s|devi|dica|dmob|do(c|p)o|ds(12|-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(-|_)|g1 u|g560|gene|gf-5|g-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd-(m|p|t)|hei-|hi(pt|ta)|hp( i|ip)|hs-c|ht(c(-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i-(20|go|ma)|i230|iac( |-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|-[a-w])|libw|lynx|m1-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|-([1-8]|c))|phil|pire|pl(ay|uc)|pn-2|po(ck|rt|se)|prox|psio|pt-g|qa-a|qc(07|12|21|32|60|-[2-7]|i-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h-|oo|p-)|sdk\/|se(c(-|0|1)|47|mc|nd|ri)|sgh-|shar|sie(-|m)|sk-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h-|v-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl-|tdg-|tel(i|m)|tim-|t-mo|to(pl|sh)|ts(70|m-|m3|m5)|tx-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas-|your|zeto|zte-/i.test(a.substr(0, | |
4))) b = !0; | |
return b | |
}, | |
isAndroid: function() { | |
return /android/i.test(navigator.userAgent) | |
}, | |
isIOS: function() { | |
return /ipad|iphone|ipod/i.test(navigator.userAgent) | |
}, | |
orientation: function(a) { | |
a = a || e.a; | |
return null != a ? a : (a = a.screen.orientation || a.screen.mozOrientation || a.screen.msOrientation) && a.angle || 0 | |
}, | |
devicePixelRatio: function() { | |
return e.a.devicePixelRatio || 1 | |
}, | |
meta: function(a) { | |
return (a = q.querySelector('meta[name\x3d"ym:' + a + '"]')) ? a.content : null | |
}, | |
scaleFactor: function(a, b) { | |
var f = a.clientWidth, | |
c = a.clientHeight, | |
d = b.clientWidth, | |
e = b.clientHeight; | |
return d > f || e > c ? (f /= d, c /= e, Math.min(1, Math.max(f > c ? .1 : .35, Math.min(f, c)))) : 1 | |
}, | |
viewportGetter: function(a) { | |
a = a || n.document; | |
var b = a.defaultView, | |
f = function(c) { | |
/Trident|MSIE/.test(n.navigator.userAgent) ? a.body.parentNode && a.body.parentNode.appendChild(c) : a.body.appendChild(c) | |
}, | |
c = a.querySelector("ym-measure.ym-viewport"), | |
d = a.querySelector("ym-measure.ym-zoom"); | |
null === c && (c = g.DOMUtils.createElement("ym-measure", { | |
className: "ym-viewport", | |
style: { | |
display: "block", | |
top: 0, | |
right: 0, | |
bottom: 0, | |
left: 0, | |
position: "fixed", | |
transform: "translate(0, -100%)", | |
msTransform: "translate(0, -100%)", | |
webkitTransform: "translate(0, -100%)", | |
transformOrigin: "0 0", | |
msTransformOrigin: "0 0", | |
webkitTransformOrigin: "0 0" | |
} | |
}), f(c)); | |
null === d && (d = g.DOMUtils.createElement("ym-measure", { | |
className: "ym-zoom", | |
style: { | |
bottom: "100%", | |
position: "fixed", | |
width: "100vw" | |
} | |
}), f(d)); | |
return Object.defineProperties({ | |
getSize: function(a) { | |
void 0 === a && (a = 1); | |
var f = c; | |
return { | |
width: Math.round(f.clientWidth * a), | |
height: Math.round(f.clientHeight * | |
a) | |
} | |
} | |
}, { | |
zoomLevel: { | |
get: function() { | |
return parseFloat((d.clientWidth / b.innerWidth).toFixed(3)) | |
}, | |
configurable: !0, | |
enumerable: !0 | |
}, | |
scrollingElement: { | |
get: function() { | |
return a.scrollingElement || (a.documentElement.scrollHeight > a.body.scrollHeight && 0 === a.compatMode.indexOf("CSS1") ? a.documentElement : a.body) | |
}, | |
configurable: !0, | |
enumerable: !0 | |
}, | |
orientation: { | |
get: function() { | |
var a = da ? da.orientation || da.mozOrientation || da.msOrientation : null; | |
return a && a.angle || 0 | |
}, | |
configurable: !0, | |
enumerable: !0 | |
} | |
}) | |
} | |
} | |
}, | |
function(a, b, d) { | |
d.r(b); | |
d.d(b, "NumberUtils", function() { | |
return e | |
}); | |
var e = { | |
size: function(a, b) { | |
void 0 === b && (b = "kb"); | |
switch (b.toLowerCase()) { | |
case "b": | |
case "byte": | |
case "bytes": | |
return a; | |
case "kb": | |
case "kilobyte": | |
case "kilobytes": | |
return a * this.size(1024, "bytes"); | |
case "mb": | |
case "megabyte": | |
case "megabytes": | |
return a * this.size(1024, "kilobytes"); | |
case "gb": | |
case "gigabyte": | |
case "gigabytes": | |
return a * this.size(1024, "megabytes"); | |
case "tb": | |
case "terabyte": | |
case "terabytes": | |
return a * this.size(1024, "gigabytes") | |
} | |
}, | |
bytesToSize: function(a) { | |
if (0 === | |
a) return "0 Byte"; | |
var b = parseInt(Math.floor(Math.log(a) / Math.log(1024)), 10); | |
return Math.round(a / Math.pow(1024, b), 2) + " " + ["Bytes", "KB", "MB", "GB", "TB"][b] | |
}, | |
closestNumber: function(a, b) { | |
return a.length ? a.reduce(function(a, d) { | |
return Math.abs(d - b) < Math.abs(a - b) ? d : a | |
}) : null | |
} | |
} | |
}, | |
function(a, b, d) { | |
d.r(b); | |
d.d(b, "DocumentUtils", function() { | |
return g | |
}); | |
var e = function(a) { | |
return a ? "IFRAME" === a.nodeName ? a.contentDocument : a : null | |
}, | |
g = { | |
open: function(a) { | |
(a = e(a)) && a.open() | |
}, | |
write: function(a, b) { | |
var d = e(a); | |
d && d.write(b) | |
}, | |
close: function(a) { | |
(a = | |
e(a)) && a.close() | |
}, | |
initDocument: function(a) { | |
var b = void 0 === a ? {} : a; | |
a = b.html; | |
var d = b.doctype; | |
d = void 0 === d ? "\x3c!DOCTYPE html\x3e" : d; | |
b = b.doc || q.cloneNode(!1); | |
this.open(b); | |
this.write(b, a || d + "\x3chtml\x3e\x3chead\x3e\x3c/head\x3e\x3cbody\x3e\x3c/body\x3e\x3c/html\x3e"); | |
this.close(b); | |
return b | |
} | |
} | |
}, | |
function(a, b, d) { | |
d.r(b); | |
d.d(b, "FunctionUtils", function() { | |
return e | |
}); | |
var e = { | |
invoke: function(a, b, d) { | |
void 0 === b && (b = []); | |
return "function" === typeof a ? (d && (a = a.bind(d)), a.apply(void 0, b)) : a | |
}, | |
lazy: function(a, b) { | |
void 0 === | |
b && (b = 0); | |
var d; | |
return function() { | |
for (var e = arguments.length, f = Array(e), c = 0; c < e; c++) f[c] = arguments[c]; | |
clearTimeout(d); | |
d = C(function() { | |
a.apply(void 0, f) | |
}, b) | |
} | |
}, | |
once: function(a) { | |
var b = function() { | |
var d = a.apply(void 0, arguments); | |
b = function() { | |
return d | |
}; | |
return d | |
}; | |
return function() { | |
return b.apply(void 0, arguments) | |
} | |
}, | |
noop: function() { | |
return function() {} | |
}, | |
toFunction: function(a) { | |
return "function" === typeof a ? a : this.noop() | |
}, | |
repeat: function(a, b) { | |
var d = void 0 === b ? {} : b, | |
e = d.context, | |
f = void 0 === e ? null : e; | |
e = d.args; | |
var c = | |
void 0 === e ? [] : e; | |
e = d.delay; | |
var l = void 0 === e ? 0 : e; | |
d = d.raf; | |
d = void 0 === d ? !0 : d; | |
var g = Date.now(), | |
p = !1, | |
k = null, | |
y = d ? this.requestAnimationFrame.bind(this) : C, | |
n = d ? this.cancelAnimationFrame.bind(this) : clearTimeout; | |
d = function A() { | |
p ? n(k) : (Date.now() - g >= l && (g = Date.now(), a.apply(f, c)), k = y(A)) | |
}; | |
d.stop = function() { | |
p = !0 | |
}; | |
d(); | |
return d | |
} | |
} | |
}, | |
function(a, b, d) { | |
d.r(b); | |
d.d(b, "TimeUtils", function() { | |
return g | |
}); | |
a = d(38); | |
var e = d(24), | |
g = { | |
now: function() { | |
return (new Date).getTime() | |
}, | |
formatTime: function(a, b) { | |
void 0 === b && (b = !0); | |
a = Number(a); | |
return [Math.floor(a / 3600), Math.floor(a / 60 % 60), Math.floor(a % 60)].filter(function(a, f) { | |
return !(0 === a && 0 === f) | |
}).map(function(a, f) { | |
return e.StringUtils.pad(a, 0 !== f || b ? 2 : 0, "0") | |
}) | |
}, | |
formattedTime: function(a, b, d) { | |
void 0 === b && (b = ["sec", "min", "hours"]); | |
void 0 === d && (d = !0); | |
var f = g.formatTime(a, d).reverse(); | |
return b.reduce(function(a, b, d) { | |
f[d] && parseInt(f[d], 10) && a.push(parseInt(f[d], 10) + " " + b); | |
return a | |
}, []).reverse().join(" ") | |
}, | |
timer: a.a | |
} | |
}, | |
function(a, b) { | |
function d() { | |
throw Error("setTimeout has not been defined"); | |
} | |
function e() { | |
throw Error("clearTimeout has not been defined"); | |
} | |
function g(a) { | |
if (t === C) return C(a, 0); | |
if ((t === d || !t) && C) return t = C, C(a, 0); | |
try { | |
return t(a, 0) | |
} catch (ia) { | |
try { | |
return t.call(null, a, 0) | |
} catch (sa) { | |
return t.call(this, a, 0) | |
} | |
} | |
} | |
function p(a) { | |
if (z === clearTimeout) return clearTimeout(a); | |
if ((z === e || !z) && clearTimeout) return z = clearTimeout, clearTimeout(a); | |
try { | |
return z(a) | |
} catch (ia) { | |
try { | |
return z.call(null, a) | |
} catch (sa) { | |
return z.call(this, a) | |
} | |
} | |
} | |
function h() { | |
y && n && (y = !1, n.length ? k = n.concat(k) : O = -1, k.length && | |
m()) | |
} | |
function m() { | |
if (!y) { | |
var a = g(h); | |
y = !0; | |
for (var c = k.length; c;) { | |
n = k; | |
for (k = []; ++O < c;) n && n[O].run(); | |
O = -1; | |
c = k.length | |
} | |
n = null; | |
y = !1; | |
p(a) | |
} | |
} | |
function f(a, c) { | |
this.fun = a; | |
this.array = c | |
} | |
function c() {} | |
var l = a.exports = {}; | |
try { | |
var t = "function" === typeof C ? C : d | |
} catch (A) { | |
t = d | |
} | |
try { | |
var z = "function" === typeof clearTimeout ? clearTimeout : e | |
} catch (A) { | |
z = e | |
} | |
var k = [], | |
y = !1, | |
n, O = -1; | |
l.nextTick = function(a) { | |
var c = Array(arguments.length - 1); | |
if (1 < arguments.length) | |
for (var b = 1; b < arguments.length; b++) c[b - 1] = arguments[b]; | |
k.push(new f(a, c)); | |
1 !== | |
k.length || y || g(m) | |
}; | |
f.prototype.run = function() { | |
this.fun.apply(null, this.array) | |
}; | |
l.title = "browser"; | |
l.browser = !0; | |
l.env = {}; | |
l.argv = []; | |
l.version = ""; | |
l.versions = {}; | |
l.on = c; | |
l.addListener = c; | |
l.once = c; | |
l.off = c; | |
l.removeListener = c; | |
l.removeAllListeners = c; | |
l.emit = c; | |
l.prependListener = c; | |
l.prependOnceListener = c; | |
l.listeners = function(a) { | |
return [] | |
}; | |
l.binding = function(a) { | |
throw Error("process.binding is not supported"); | |
}; | |
l.cwd = function() { | |
return "/" | |
}; | |
l.chdir = function(a) { | |
throw Error("process.chdir is not supported"); | |
}; | |
l.umask = | |
function() { | |
return 0 | |
} | |
}, | |
function(a, b, d) { | |
(function(a, d) { | |
var e = function() { | |
if ("undefined" !== typeof n) return n; | |
if ("undefined" !== typeof global) return global; | |
if ("undefined" !== typeof self) return self | |
}(), | |
h = function() { | |
return Date.now() | |
}, | |
g = function(c) { | |
return c ? (c = this._getTime() - c, 0 > c && a.warn("Invalid stamp: " + c), c) : 0 | |
}, | |
f = function(a, f) { | |
var c; | |
(c = e.console).log.apply(c, a.concat([f + "ms"])) | |
}; | |
b.a = function(a) { | |
void 0 === a && (a = {}); | |
var c = a.getStamp || g, | |
b = a.printLog || f, | |
d = { | |
start: function() { | |
var a = this._getTime(); | |
this._initializedAt = | |
this._initializedAt || a; | |
this._startedAt = a; | |
return d | |
}, | |
stamp: function() { | |
return this._getStamp(this._startedAt) | |
}, | |
stampSinceCreated: function() { | |
return this._getStamp(this._initializedAt) | |
}, | |
reset: function() { | |
return this.start() | |
}, | |
log: function() { | |
for (var a = arguments.length, c = Array(a), f = 0; f < a; f++) c[f] = arguments[f]; | |
b(c, this.stamp()); | |
return this | |
}, | |
logSinceCreated: function() { | |
for (var a = arguments.length, c = Array(a), f = 0; f < a; f++) c[f] = arguments[f]; | |
b(c, this.stampSinceCreated()); | |
return this | |
} | |
}; | |
Object.defineProperties(d, { | |
_getTime: { | |
value: (a.getTime || | |
h).bind(d) | |
}, | |
_getStamp: { | |
value: c.bind(d) | |
} | |
}); | |
return d | |
} | |
}).call(this, d(15)["default"], d(37)) | |
}, | |
function(a, b, d) { | |
(function(a) { | |
var e = d(34), | |
p = d(3), | |
h = d(17); | |
b.a = function(b) { | |
var f = p.ObjectUtils.assign({ | |
url: "", | |
headers: {}, | |
method: "get", | |
type: "json", | |
data: null | |
}, b); | |
if (b.headers === w || b.headers["Content-Type"] === w) f.headers = f.headers || {}, f.headers["Content-Type"] = function() { | |
switch (f.type) { | |
case "json": | |
return "application/json"; | |
case "css": | |
return "text/css"; | |
case "html": | |
return "text/html"; | |
default: | |
return "text/plain" | |
} | |
}(); | |
return (new a(function(a, | |
b) { | |
var c = new XMLHttpRequest, | |
d = new FileReader; | |
"css" === f.type && (c.responseType = "blob"); | |
c.addEventListener("readystatechange", function() { | |
var l = c.status; | |
4 === c.readyState && (200 <= l && 301 > l ? "css" === f.type ? (d.addEventListener("load", function(c) { | |
a({ | |
result: d.result, | |
error: null | |
}) | |
}), d.readAsText(c.response)) : (l = function(a) { | |
switch (f.type) { | |
case "json": | |
return JSON.parse(a); | |
case "html": | |
return e.DocumentUtils.initDocument({ | |
html: a | |
}); | |
default: | |
return a | |
} | |
}(c.responseText), a({ | |
result: l, | |
error: null | |
})) : b(Error(l + " " + c.statusText))) | |
}); | |
c.addEventListener("error", b); | |
c.open(f.method.toUpperCase(), f.url); | |
Object(h.a)(f.headers, function(a, f) { | |
c.setRequestHeader(a, f) | |
}); | |
c.send(f.data ? JSON.stringify(f.data) : w) | |
}))["catch"](function(a) { | |
return { | |
result: null, | |
error: a | |
} | |
}) | |
} | |
}).call(this, d(23).Promise) | |
}, | |
function(a, b, d) { | |
function e() { | |
if ("undefined" === typeof Reflect || !Reflect.construct || Reflect.construct.sham) return !1; | |
if ("function" === typeof Proxy) return !0; | |
try { | |
return Date.prototype.toString.call(Reflect.construct(Date, [], function() {})), !0 | |
} catch (h) { | |
return !1 | |
} | |
} | |
function g(b, d, f) { | |
e() ? a.exports = g = Reflect.construct : a.exports = g = function(a, f, b) { | |
var c = [null]; | |
c.push.apply(c, f); | |
a = new(Function.bind.apply(a, c)); | |
b && p(a, b.prototype); | |
return a | |
}; | |
return g.apply(null, arguments) | |
} | |
var p = d(88); | |
a.exports = g | |
}, | |
function(a, b, d) { | |
(function(a, g) { | |
var e = d(6), | |
h = d.n(e), | |
m = d(19), | |
f = new a, | |
c = { | |
input: { | |
capture: !0, | |
passive: !0 | |
}, | |
change: { | |
capture: !0 | |
}, | |
keyup: { | |
capture: !0 | |
}, | |
paste: { | |
capture: !0 | |
}, | |
cut: { | |
capture: !0 | |
} | |
}; | |
b.a = { | |
inputs: {}, | |
events: {}, | |
create: function(a) { | |
var b = this; | |
this.checkInpudDescriptorOverrideAbility = | |
this.checkInpudDescriptorOverrideAbility.bind(this); | |
this.handleInputValueChange = this.handleInputValueChange.bind(this); | |
this.handleInputChangeValueEvent = this.handleInputChangeValueEvent.bind(this); | |
this.handleNodeIndex = this.handleNodeIndex.bind(this); | |
this.handleNodeRemoval = this.handleNodeRemoval.bind(this); | |
this.recorder = a; | |
this.checkInpudDescriptorOverrideAbility() && (a.indexer.dom.forEach(function(a) { | |
b.handleNodeIndex(a) | |
}), a.indexer.on("add", this.handleNodeIndex), a.indexer.on("remove", this.handleNodeRemoval)); | |
g.forin(c, function(d) { | |
f.add(a.attachEvent(a.document, d, b.handleInputChangeValueEvent, c[d])) | |
}) | |
}, | |
handleNodeIndex: function(a) { | |
if (m.a.isValidNode(a.nativeNode) && "__ym_input_override_test" !== a.nativeNode.getAttribute("class")) { | |
var c = a.nativeNode, | |
f = a.id, | |
b = "radio" === a.attributes.type || "checkbox" === a.attributes.type; | |
a = this.getPropertyName(b); | |
this.inputs[f] = { | |
checkable: b, | |
value: c[a] | |
}; | |
b = Object.getOwnPropertyDescriptor(Object.getPrototypeOf(c), a) || {}; | |
var d = Object.getOwnPropertyDescriptor(c, a) || {}, | |
l = h()({}, b, d); | |
if (g.isNative(l.set, "(set)?")) { | |
var e = this; | |
try { | |
Object.defineProperty(c, a, h()({}, l, { | |
configurable: !0, | |
set: function(a) { | |
e.handleInputValueChange(f, a, this); | |
return l.set.call(this, a) | |
} | |
})) | |
} catch (A) { | |
delete this.inputs[f] | |
} | |
} | |
} | |
}, | |
handleInputChangeValueEvent: function(a) { | |
a = a.target; | |
var c = this.recorder.indexer.getNodeId(a); | |
if (this.inputs[c]) { | |
var f = this.getPropertyName(this.inputs[c].checkable); | |
this.handleInputValueChange(c, a[f], a) | |
} | |
}, | |
handleInputValueChange: function(a, c, f) { | |
var b = this.inputs[a], | |
d = b.checkable; | |
if (c !== b.value) { | |
if (d) f = | |
this.recorder._getEventObject("change", a, { | |
checked: c | |
}); | |
else { | |
var l = m.a.validate(f, this.recorder.options); | |
b = l.forceRecord; | |
var e = l.isPrivate; | |
l = l.isAllowed || b ? c : m.a.encode(c); | |
f = this.recorder._getEventObject("change", f, { | |
value: l, | |
hidden: e && !b | |
}) | |
} | |
this.inputs[a] = { | |
checkable: d, | |
value: c | |
}; | |
this.recorder._publishActions(f) | |
} | |
}, | |
handleNodeRemoval: function(a) { | |
a.nativeNode && "__ym_input_override_test" === a.nativeNode.getAttribute("class") || delete this.inputs[a.id] | |
}, | |
getPropertyName: function(a) { | |
return a ? "checked" : "value" | |
}, | |
checkInpudDescriptorOverrideAbility: function() { | |
var a = !0, | |
c = n.document.createElement("input"); | |
c.value = "INPUT_VALUE"; | |
c.setAttribute("style", "display: none !important;"); | |
c.setAttribute("type", "text"); | |
c.setAttribute("class", "__ym_input_override_test"); | |
n.document.documentElement.appendChild(c); | |
try { | |
var f = Object.getOwnPropertyDescriptor(Object.getPrototypeOf(c), "value") || {}, | |
b = Object.getOwnPropertyDescriptor(c, "value") || {}, | |
d = h()({}, f, b); | |
Object.defineProperty(c, "value", h()({}, d, { | |
configurable: !0, | |
set: function(a) { | |
return d.set.call(c, a) | |
} | |
})); | |
"INPUT_VALUE" !== c.value && | |
(a = !1); | |
c.value = "INPUT_TEST"; | |
"INPUT_TEST" !== c.value && (a = !1) | |
} catch (aa) { | |
a = !1 | |
} | |
n.document.documentElement.removeChild(c); | |
return a | |
}, | |
destroy: function(a) { | |
var c = this; | |
Object.keys(this.inputs).forEach(function(f) { | |
var b = a.indexer.findByID(f); | |
if (b) { | |
f = c.getPropertyName(c.inputs[f].checkable); | |
var d = Object.getOwnPropertyDescriptor(Object.getPrototypeOf(b), f); | |
Object.defineProperty(b, f, d) | |
} | |
}); | |
Object.keys(this.events).forEach(function(f) { | |
a.removeEvent(c.events[f]) | |
}); | |
a.indexer.off("add", this.handleNodeIndex); | |
a.indexer.off("remove", | |
this.handleNodeRemoval) | |
} | |
} | |
}).call(this, d(7)["default"], d(4)["default"]) | |
}, | |
function(a, b, d) { | |
(function(a, g) { | |
var e = d(18), | |
h = { | |
mousemove: { | |
capture: !0, | |
passive: !0, | |
lazy: 5 | |
}, | |
mousedown: { | |
capture: !0 | |
}, | |
mouseup: { | |
capture: !0 | |
}, | |
click: { | |
capture: !0 | |
} | |
}, | |
m = new a, | |
f = function(a) { | |
var c = a.object; | |
a = a.args[0]; | |
var f = c.type, | |
b = c.target, | |
d = c.pageX, | |
l = c.pageY, | |
e = c.clientX; | |
e = void 0 === e ? null : e; | |
c = c.clientY; | |
c = void 0 === c ? null : c; | |
b = this.document.elementFromPoint(void 0 === d ? null : d, void 0 === l ? null : l) || b; | |
a = this._getEventObject(f, b, { | |
x: e, | |
y: c | |
}, a); | |
this._publishActions(a) | |
}, | |
c = e.a.create(f, { | |
timeout: 0 | |
}), | |
l = function(a) { | |
var b = this.stamp; | |
"mousemove" === a.type ? c.call(this, a, b) : f.call(this, { | |
object: a, | |
args: [b] | |
}) | |
}; | |
b.a = { | |
create: function(a) { | |
var c = a._universalHandler(l); | |
g.forin(h, function(f) { | |
m.add(a.attachEvent(a.document, f, c, h[f])) | |
}) | |
}, | |
destroy: function(a) { | |
g.forof(m, function(c) { | |
return a.removeEvent(c) | |
}); | |
m.clear() | |
} | |
} | |
}).call(this, d(7)["default"], d(4)["default"]) | |
}, | |
function(a, b, d) { | |
(function(a, d) { | |
var e = { | |
focus: { | |
capture: !0 | |
}, | |
blur: { | |
capture: !0 | |
} | |
}, | |
h = new a, | |
g = function(a) { | |
a = this._getEventObject(a.type, | |
a.target); | |
this._publishActions(a) | |
}; | |
b.a = { | |
create: function(a) { | |
var c = a._universalHandler(g); | |
d.forin(e, function(f) { | |
h.add(a.attachEvent(a.document, f, c, e[f])) | |
}) | |
}, | |
destroy: function(a) { | |
d.forof(h, function(c) { | |
return a.removeEvent(c) | |
}); | |
h.clear() | |
} | |
} | |
}).call(this, d(7)["default"], d(4)["default"]) | |
}, | |
function(a, b, d) { | |
(function(a) { | |
var d, e = function(b, d) { | |
var f = this, | |
c = a.now(); | |
this._blockUpcomingCaptor("resize"); | |
this._executeCaptor("deviceRotation", function() { | |
C(function() { | |
var l = a.now() - c; | |
f._publishActions(d.getValue.call(f, | |
b, l)) | |
}, 300) | |
}) | |
}; | |
b.a = { | |
getValue: function(a, b) { | |
var f = this.viewport.getSize(1); | |
f = this._getEventObject("deviceRotation", 0, { | |
width: f.width, | |
height: f.height, | |
orientation: this.viewport.orientation | |
}); | |
f.stamp -= b; | |
return f | |
}, | |
create: function(a) { | |
d = a.attachEvent(a.window, "orientationchange", a._universalHandler(e, { | |
extra: [this] | |
}), { | |
passive: !0 | |
}) | |
}, | |
destroy: function(a) { | |
a.removeEvent(d) | |
} | |
} | |
}).call(this, d(4)["default"]) | |
}, | |
function(a, b, d) { | |
(function(a, g) { | |
var e = d(18), | |
h, m = new a, | |
f = function(a) { | |
var c = a.args[0], | |
f = this.viewport.scrollingElement, | |
b = this.document, | |
d = this.window; | |
a = a.object.target; | |
b = a === d || a === b ? d : a; | |
d = g.getScroll(b); | |
c = this._getEventObject("scroll", b, { | |
x: Math.max(d.left, 0), | |
y: Math.max(d.top, 0), | |
page: b === f || b === n || b === q | |
}, c); | |
this._publishActions(c) | |
}, | |
c = function(a) { | |
var c = a.target; | |
if (m.has(c)) c = m.get(c); | |
else { | |
var b = e.a.create(f, { | |
timeout: g.isAndroid() ? 0 : 100, | |
immediateFirstRun: !0 | |
}); | |
m.set(c, b); | |
c = b | |
} | |
c.call(this, a) | |
}; | |
b.a = { | |
create: function(a) { | |
var f = a._universalHandler(c); | |
h = a.attachEvent(a.document, "scroll", f.bind(a), { | |
capture: !0, | |
passive: !0 | |
}) | |
}, | |
destroy: function(a) { | |
a.removeEvent(h); | |
m.clear() | |
} | |
} | |
}).call(this, d(10)["default"], d(4)["default"]) | |
}, | |
function(a, b, d) { | |
(function(a, d) { | |
var e = { | |
mousemove: { | |
capture: !0, | |
passive: !0, | |
lazy: 5 | |
}, | |
touchmove: { | |
capture: !0, | |
passive: !0, | |
lazy: 5 | |
}, | |
mousedown: { | |
capture: !0 | |
}, | |
touchdown: { | |
capture: !0 | |
} | |
}, | |
h = new a, | |
g = !1, | |
f = function(a) { | |
var c = "select" === a.type ? this.selection.getSelectionFor(a.target) : this.selection.getPageSelection(); | |
c && c.start !== c.end && -1 !== ["mousemove", "touchmove", "touchdown"].indexOf(a.type) ? (g = !0, a = this._getEventObject("selection", "select" === a.type ? a.target : this.rootNode, | |
c), this._publishActions(a)) : g && -1 !== ["mousedown", "touchmove", "touchdown"].indexOf(a.type) && (g = !1, a = this._getEventObject("selection", null, { | |
start: 0, | |
end: 0 | |
}), this._publishActions(a)) | |
}; | |
b.a = { | |
create: function(a) { | |
var c = a._universalHandler(function(c) { | |
("mousemove" === c.type && 1 === c.which || -1 !== ["mousedown", "touchmove", "touchdown"].indexOf(c.type)) && f.call(a, c) | |
}); | |
d.forin(e, function(f) { | |
h.add(a.attachEvent(a.document, f, c, e[f])) | |
}) | |
}, | |
destroy: function(a) { | |
d.forof(h, function(c) { | |
return a.removeEvent(c) | |
}) | |
} | |
} | |
}).call(this, | |
d(7)["default"], d(4)["default"]) | |
}, | |
function(a, b, d) { | |
(function(a, g, p) { | |
var e = d(18), | |
m = { | |
touchmove: { | |
capture: !0, | |
passive: !0 | |
}, | |
touchstart: { | |
capture: !0 | |
}, | |
touchend: { | |
capture: !0 | |
}, | |
touchcancel: { | |
capture: !0 | |
}, | |
touchforcechange: { | |
capture: !0 | |
} | |
}, | |
f = new a, | |
c = new g, | |
l = !1, | |
t = function(a) { | |
var c = a.object; | |
a = a.args[0]; | |
var f = c.type, | |
b = p.map(c.changedTouches, function(a) { | |
return { | |
id: a.__id, | |
x: Math.round(a.clientX), | |
y: Math.round(a.clientY), | |
force: a.force | |
} | |
}); | |
c = this._getEventObject(f, c.target, { | |
touches: b | |
}, a); | |
this._publishActions(c) | |
}, | |
z = e.a.create(t, { | |
timeout: p.isAndroid() ? 0 : 300 | |
}), | |
k = function(a) { | |
var f = this.stamp, | |
b = "touchcancel" === a.type || "touchend" === a.type; | |
a.changedTouches && 0 < a.changedTouches.length && p.forof(a.changedTouches, function(a) { | |
var f = void 0 === b ? !1 : b; | |
if (c.has(a.identifier)) var d = c.get(a.identifier); | |
else d = p.guid(), c.set(a.identifier, d); | |
f && c["delete"](a.identifier); | |
a.__id = d | |
}); | |
"touchmove" === a.type ? l ? t.call(this, { | |
object: a, | |
args: [f] | |
}) : z.call(this, a, f) : t.call(this, { | |
object: a, | |
args: [f] | |
}) | |
}; | |
b.a = { | |
create: function(a) { | |
var c = a._universalHandler(k); | |
p.forin(m, | |
function(b) { | |
f.add(a.attachEvent(a.document, b, c, m[b])) | |
}); | |
var b = null, | |
d = a._universalHandler(function() { | |
clearTimeout(b); | |
l = !0; | |
b = C(function() { | |
return l = !1 | |
}, 150) | |
}); | |
f.add(a.attachEvent(q, "scroll", d, { | |
passive: !0, | |
capture: !0 | |
})) | |
}, | |
destroy: function(a) { | |
p.forof(f, function(c) { | |
return a.removeEvent(c) | |
}); | |
f.clear() | |
} | |
} | |
}).call(this, d(7)["default"], d(10)["default"], d(4)["default"]) | |
}, | |
function(a, b, d) { | |
(function(a, d) { | |
var e = new a, | |
h = [], | |
g = null, | |
f = function() { | |
var a = this, | |
f = this.stamp, | |
b = this.viewport.zoomLevel; | |
if (this.zoomLevel !== b) { | |
clearTimeout(g); | |
var e = d.scrollingElement(), | |
m = e.scrollLeft; | |
e = e.scrollTop; | |
this.zoomLevel = b; | |
h.push([f, b, m, e]); | |
g = C(function() { | |
var c = h[0], | |
f = h[h.length - 1], | |
b = f[0]; | |
c = a._getEventObject("zoom", 0, { | |
zoomFrom: { | |
level: c[1], | |
x: c[2], | |
y: c[3] | |
}, | |
zoomTo: { | |
level: f[1], | |
x: f[2], | |
y: f[3] | |
}, | |
duration: b - c[0] | |
}, b); | |
h.length = 0; | |
a._publishActions(c) | |
}, 100) | |
} | |
}; | |
b.a = { | |
create: function(a) { | |
a = a._universalHandler(f); | |
this.captor = d.repeat(a) | |
}, | |
destroy: function() { | |
this.captor.stop(); | |
e.clear() | |
} | |
} | |
}).call(this, d(7)["default"], d(4)["default"]) | |
}, | |
function(a, b, d) { | |
(function(a, d) { | |
var e, | |
h = "undefined" !== typeof q.hidden ? { | |
hidden: "hidden", | |
event: "visibilitychange" | |
} : "undefined" !== typeof q.msHidden ? { | |
hidden: "msHidden", | |
event: "msvisibilitychange" | |
} : "undefined" !== typeof q.webkitHidden ? { | |
hidden: "webkitHidden", | |
event: "webkitvisibilitychange" | |
} : null, | |
g = h ? (e = {}, e[h.event] = { | |
capture: !0 | |
}, e) : { | |
focus: { | |
capture: !0 | |
}, | |
blur: { | |
capture: !0 | |
} | |
}, | |
f = { | |
focus: "windowfocus", | |
blur: "windowblur" | |
}, | |
c = new a, | |
l = function(a) { | |
a = h ? this._getEventObject(f[q[h.hidden] ? "blur" : "focus"], n) : this._getEventObject(f[a.type], n); | |
this._publishActions(a) | |
}; | |
b.a = { | |
create: function(a) { | |
var f = a._universalHandler(l); | |
d.forin(g, function(b) { | |
c.add(a.attachEvent(a.window, b, f, g[b])) | |
}) | |
}, | |
destroy: function(a) { | |
d.forof(c, function(c) { | |
return a.removeEvent(c) | |
}); | |
c.clear() | |
} | |
} | |
}).call(this, d(7)["default"], d(4)["default"]) | |
}, | |
function(a, b, d) { | |
(function(a) { | |
var e = d(12), | |
p = d.n(e); | |
e = d(5); | |
var h = d.n(e); | |
e = d(16); | |
var m = d.n(e); | |
e = d(0); | |
var f = d.n(e); | |
e = d(13); | |
var c = d(51), | |
l = d(28), | |
t = d(9); | |
e = function(b) { | |
function d(d, e) { | |
var g = b.call(this) || this; | |
f()(h()(g), "IGNORE_NODE_ATTRIBUTE", "__ym_wv_ign"); | |
f()(h()(g), | |
"eventsList", ["mutation"]); | |
g.indexer = e; | |
g.originalHTML = g.indexer.html; | |
g.target = d; | |
g.watcher = new c.a(g.target); | |
g.queue = new l.a; | |
g._timer = a.timer(); | |
g.watcher.on("mutation", g.collectMutations.bind(h()(g))); | |
return g | |
} | |
m()(d, b); | |
var e = d.prototype; | |
e.addChanges = function(c, f) { | |
for (var b = arguments.length, d = Array(2 < b ? b - 2 : 0), e = 2; e < b; e++) d[e - 2] = arguments[e]; | |
if (null != c[f] && 0 < d.length) { | |
var l, h = c[f].length; | |
a.fastIterate(d, function(a, c) { | |
return c.i = h + a | |
}); | |
c[f] = (l = c[f]).concat.apply(l, d) | |
} | |
}; | |
e.collectMutations = function(a) { | |
var c = | |
this; | |
this.queue.push(function() { | |
var f = c.processMutations(a); | |
f.hasData && c.emit("mutation", f.store) | |
}) | |
}; | |
e.destroy = function() { | |
this.queue.start(!0); | |
this.off(); | |
this.watcher.off(); | |
this.watcher.stop() | |
}; | |
e.cleanChangesObject = function(c) { | |
a.forin(c, function(a) { | |
0 === c[a].length && delete c[a] | |
}); | |
return c | |
}; | |
e.initObserver = function() { | |
this.initObserver = a.noop(); | |
this.watcher.start(); | |
this._timer.start() | |
}; | |
e.processMutations = function(c) { | |
var f = this, | |
b = !1, | |
d = []; | |
a.fastIterate(c, function(a, c) { | |
if (c.target.parentNode && !t.c.isIgnoredNode(c.target.parentNode)) { | |
var e = | |
f.changesObject; | |
!1 !== function() { | |
var a = c.type, | |
b = c.target, | |
d = f.indexer.getIndexedNodeId(b); | |
if (null == d) return !1; | |
b = [c, d, b, e]; | |
switch (a) { | |
case "childList": | |
return f.processTreeChanges.apply(f, b); | |
case "attributes": | |
return f.processAttributesChanges.apply(f, b); | |
case "characterData": | |
return f.processContentChanges.apply(f, b) | |
} | |
}() && (b = !0, d.push(f.cleanChangesObject(e))) | |
} | |
}); | |
return { | |
store: d, | |
hasData: b | |
} | |
}; | |
e.combineMutations = function(c, f) { | |
return a.reduce(Object.keys(f), function(a, c) { | |
var b; | |
null == a[c] && (a[c] = []); | |
a[c] = (b = a[c]).concat.apply(b, | |
f[c]); | |
return a | |
}, c) | |
}; | |
e.processTreeChanges = function(c, f, b, d) { | |
var e = this, | |
l = c.nextSibling, | |
h = c.previousSibling; | |
b = c.meta; | |
c = b.addedNodes; | |
b = b.removedNodes; | |
b = void 0 === b ? [] : b; | |
var g = [], | |
m = []; | |
a.fastIterate(void 0 === c ? [] : c, function(c, b) { | |
e.indexer.reindexNodeTree(b, { | |
parentID: f, | |
callback: function(c, f) { | |
if (c) { | |
var d = a.combine({ | |
id: c.id, | |
pa: c.parent, | |
nm: c.name | |
}, f === b && { | |
pr: e.getIDForNode(h), | |
nx: e.getIDForNode(l) | |
}); | |
c.content && (d.ct = c.content); | |
c.namespace && (d.ns = c.namespace); | |
d.at = t.c.getAttributes(c.nativeNode); | |
g.push(d) | |
} | |
} | |
}) | |
}); | |
a.fastIterate(b, function(a, c) { | |
var b = { | |
id: e.indexer.removeNodeTree(c), | |
pa: f, | |
pr: e.getIDForNode(h), | |
nx: e.getIDForNode(l) | |
}; | |
b.id && m.push(b) | |
}); | |
if (0 === g.length && 0 === m.length) return !1; | |
this.addChanges.apply(this, [d, "a"].concat(m)); | |
this.addChanges.apply(this, [d, "b"].concat(g)) | |
}; | |
e.processAttributesChanges = function(a, c, f, b) { | |
var d, e = a.meta; | |
a = e.name; | |
f = e.oldValue; | |
e = e.newValue; | |
this.addChanges(b, "c", { | |
id: c, | |
at: (d = {}, d[a] = { | |
n: e, | |
o: f | |
}, d) | |
}) | |
}; | |
e.processContentChanges = function(a, c, f, b) { | |
this.addChanges(b, "d", { | |
id: c, | |
ct: { | |
n: a.meta.newValue, | |
o: a.meta.oldValue | |
} | |
}) | |
}; | |
e.getIDForNode = function(a) { | |
if (a) { | |
var c = this.indexer.getNodeId(a); | |
if (null != c) return c; | |
this.indexer.reindexNodeTree(a); | |
return this.indexer.getNodeId(a) | |
} | |
}; | |
p()(d, [{ | |
key: "changesObject", | |
get: function() { | |
return { | |
a: [], | |
b: [], | |
c: [], | |
d: [] | |
} | |
} | |
}, { | |
key: "html", | |
get: function() { | |
return this.originalHTML | |
} | |
}]); | |
return d | |
}(e.a); | |
b.a = e | |
}).call(this, d(4)["default"]) | |
}, | |
function(a, b, d) { | |
(function(a, g) { | |
var e = d(5), | |
h = d.n(e); | |
e = d(16); | |
var m = d.n(e); | |
e = d(0); | |
var f = d.n(e), | |
c = d(9); | |
e = function(b) { | |
function d(a) { | |
var c = b.call(this) || | |
this; | |
f()(h()(c), "eventsList", ["mutation"]); | |
c.paused = !0; | |
c.element = a; | |
c.document = a.ownerDocument; | |
c.observer = null; | |
c.initMutationObserver(); | |
return c | |
} | |
m()(d, b); | |
var e = d.prototype; | |
e.start = function() { | |
this.observer.observe(this.element, { | |
childList: !0, | |
attributes: !0, | |
characterData: !0, | |
subtree: !0, | |
attributeOldValue: !0, | |
characterDataOldValue: !0 | |
}) | |
}; | |
e.stop = function() { | |
this.observer.disconnect() | |
}; | |
e.initMutationObserver = function() { | |
var a = this; | |
this.observer = new MutationObserver(function() { | |
try { | |
for (var c = arguments.length, f = Array(c), | |
b = 0; b < c; b++) f[b] = arguments[b]; | |
a.processMutations.apply(a, f) | |
} catch (A) {} | |
}) | |
}; | |
e.processMutations = function(c) { | |
var f = this; | |
c = a.toArray(c); | |
var b = { | |
added: new g, | |
removed: new g | |
}; | |
c = a.reduceRight(c, function(a, c) { | |
var d = c.type, | |
e = c.target, | |
l = f.collectSummary(d, e, b, c); | |
null != l && a.unshift({ | |
target: e, | |
type: d, | |
meta: l, | |
nextSibling: c.nextSibling, | |
previousSibling: c.previousSibling | |
}); | |
return a | |
}, []); | |
0 < c.length && this.emit("mutation", c); | |
b.added.clear(); | |
b.removed.clear() | |
}; | |
e.collectSummary = function(f, b, d, e) { | |
switch (f) { | |
case "childList": | |
b = | |
a.reduce(e.addedNodes, function(a, f) { | |
!1 === d.added.has(f) && (a.push(f), c.c.walk(f, function(a) { | |
return d.added.add(a) | |
})); | |
return a | |
}, []); | |
e = a.reduce(e.removedNodes, function(a, f) { | |
!1 === d.removed.has(f) && (a.push(f), c.c.walk(f, function(a) { | |
return d.removed.add(a) | |
})); | |
return a | |
}, []); | |
if (0 < b.length || 0 < e.length) return { | |
addedNodes: b, | |
removedNodes: e | |
}; | |
break; | |
case "attributes": | |
f = e.attributeName; | |
e = e.oldValue; | |
var l = b.getAttribute(f); | |
if (e !== l) return { | |
name: f, | |
oldValue: c.c.normalizeAttributeValue(b, f, e), | |
newValue: c.c.normalizeAttributeValue(b, | |
f, l) | |
}; | |
break; | |
case "characterData": | |
if (e = e.oldValue, b = b.textContent, b !== e) return { | |
oldValue: e, | |
newValue: b | |
} | |
} | |
}; | |
return d | |
}(d(13).a); | |
b.a = e | |
}).call(this, d(4)["default"], d(7)["default"]) | |
}, | |
function(a, b, d) { | |
(function(a) { | |
var e = d(16), | |
p = d.n(e); | |
e = function(b) { | |
function d(c) { | |
void 0 === c && (c = []); | |
var f = b.call(this) || this; | |
a.fastIterate(c, function(a, c) { | |
f.use(c) | |
}); | |
return f | |
} | |
p()(d, b); | |
var f = d.prototype; | |
f.main = function(a, f) { | |
"function" === typeof f && f() | |
}; | |
f.send = function(a) { | |
this.run(a, this.main.bind(this)) | |
}; | |
return d | |
}(d(30).a); | |
b.a = e | |
}).call(this, | |
d(4)["default"]) | |
}, | |
function(a, b, d) { | |
a = d(0); | |
var e = d.n(a), | |
g = d(2); | |
d = function() { | |
function a(a) { | |
var f = this; | |
e()(this, "_options", { | |
checkOnLoad: !1, | |
resetOnEnd: !1, | |
loopCheckTime: 50, | |
loopMaxNumber: 5, | |
baitClass: "adsbygoogle yap-reset ya_partner", | |
baitStyle: "width: 1px !important; height: 1px !important; position: absolute !important; left: -10000px !important; top: -1000px !important;", | |
debug: !1 | |
}); | |
e()(this, "_var", { | |
version: "3.2.1", | |
bait: null, | |
checking: !1, | |
loop: null, | |
loopNumber: 0, | |
event: { | |
detected: [], | |
notDetected: [] | |
} | |
}); | |
a !== w && | |
this.setOption(a); | |
a = function() { | |
C(function() { | |
!0 === f._options.checkOnLoad && (!0 === f._options.debug && f._log("onload-\x3eeventCallback", "A check loading is launched"), null === f._var.bait && f._creatBait(), C(function() { | |
f.check() | |
}, 1)) | |
}, 1) | |
}; | |
g.a.addEventListener !== w ? g.a.addEventListener("load", a, !1) : g.a.attachEvent("onload", a) | |
} | |
var b = a.prototype; | |
b._log = function() {}; | |
b.setOption = function(a, f) { | |
if (f !== w) { | |
var c = a; | |
a = {}; | |
a[c] = f | |
} | |
for (var b in a) this._options[b] = a[b], !0 === this._options.debug && this._log("setOption", 'The option "' + | |
b + '" he was assigned to "' + a[b] + '"'); | |
return this | |
}; | |
b._creatBait = function() { | |
var a = q.createElement("div"); | |
a.setAttribute("class", this._options.baitClass); | |
a.setAttribute("style", this._options.baitStyle); | |
this._var.bait = g.a.document.body.appendChild(a); | |
this._var.bait = g.a.document.body.appendChild(a); | |
this._var.bait.offsetParent; | |
this._var.bait.offsetHeight; | |
this._var.bait.offsetLeft; | |
this._var.bait.offsetTop; | |
this._var.bait.offsetWidth; | |
this._var.bait.clientHeight; | |
this._var.bait.clientWidth; | |
!0 === this._options.debug && | |
this._log("_creatBait", "Bait has been created") | |
}; | |
b._destroyBait = function() { | |
g.a.document.body.removeChild(this._var.bait); | |
this._var.bait = null; | |
!0 === this._options.debug && this._log("_destroyBait", "Bait has been removed") | |
}; | |
b.check = function(a) { | |
var f = this; | |
a === w && (a = !0); | |
!0 === this._options.debug && this._log("check", "An audit was requested " + (!0 === a ? "with a" : "without") + " loop"); | |
if (!0 === this._var.checking) return !0 === this._options.debug && this._log("check", "A check was canceled because there is already an ongoing"), | |
!1; | |
this._var.checking = !0; | |
null === this._var.bait && this._creatBait(); | |
this._var.loopNumber = 0; | |
!0 === a && (this._var.loop = setInterval(function() { | |
f._checkBait(a) | |
}, this._options.loopCheckTime)); | |
C(function() { | |
f._checkBait(a) | |
}, 1); | |
!0 === this._options.debug && this._log("check", "A check is in progress ..."); | |
return !0 | |
}; | |
b.checkSync = function() { | |
return this._checkBait() | |
}; | |
b._checkBait = function(a) { | |
var f = !1; | |
if (!g.a.document.body) return !1; | |
null === this._var.bait && this._creatBait(); | |
if (null !== g.a.document.body.getAttribute("abp") || | |
null === this._var.bait.offsetParent || 0 === parseInt(this._var.bait.offsetHeight, 10) || 0 === parseInt(this._var.bait.offsetLeft, 10) || 0 === parseInt(this._var.bait.offsetTop, 10) || 0 === parseInt(this._var.bait.offsetWidth, 10) || 0 === parseInt(this._var.bait.clientHeight, 10) || 0 === parseInt(this._var.bait.clientWidth, 10)) f = !0; | |
if (g.a.getComputedStyle !== w) { | |
var c = g.a.getComputedStyle(this._var.bait, null); | |
!c || "none" !== c.getPropertyValue("display") && "hidden" !== c.getPropertyValue("visibility") || (f = !0) | |
}!0 === this._options.debug && | |
this._log("_checkBait", "A check (" + (this._var.loopNumber + 1) + "/" + this._options.loopMaxNumber + " ~" + (1 + this._var.loopNumber * this._options.loopCheckTime) + "ms) was conducted and detection is " + (!0 === f ? "positive" : "negative")); | |
!0 === a && (this._var.loopNumber++, this._var.loopNumber >= this._options.loopMaxNumber && this._stopLoop()); | |
if (!0 === f) this._stopLoop(), this._destroyBait(), this.emitEvent(!0), !0 === a && (this._var.checking = !1); | |
else if (null === this._var.loop || !1 === a) this._destroyBait(), this.emitEvent(!1), !0 === | |
a && (this._var.checking = !1); | |
return f | |
}; | |
b._stopLoop = function() { | |
clearInterval(this._var.loop); | |
this._var.loop = null; | |
this._var.loopNumber = 0; | |
!0 === this._options.debug && this._log("_stopLoop", "A loop has been stopped") | |
}; | |
b.emitEvent = function(a) { | |
!0 === this._options.debug && this._log("emitEvent", "An event with a " + (!0 === a ? "positive" : "negative") + " detection was called"); | |
a = this._var.event[!0 === a ? "detected" : "notDetected"]; | |
for (var f in a) | |
if (!0 === this._options.debug && this._log("emitEvent", "Call function " + (parseInt(f, | |
10) + 1) + "/" + a.length), a.hasOwnProperty(f)) a[f](); | |
!0 === this._options.resetOnEnd && this.clearEvent(); | |
return this | |
}; | |
b.clearEvent = function() { | |
this._var.event.detected = []; | |
this._var.event.notDetected = []; | |
!0 === this._options.debug && this._log("clearEvent", "The event list has been cleared") | |
}; | |
b.on = function(a, f) { | |
this._var.event[!0 === a ? "detected" : "notDetected"].push(f); | |
!0 === this._options.debug && this._log("on", 'A type of event "' + (!0 === a ? "detected" : "notDetected") + '" was added'); | |
return this | |
}; | |
b.onDetected = function(a) { | |
return this.on(!0, | |
a) | |
}; | |
b.onNotDetected = function(a) { | |
return this.on(!1, a) | |
}; | |
return a | |
}(); | |
b.a = d | |
}, | |
function(a, b, d) { | |
a = function() { | |
function a(a) { | |
void 0 === a && (a = "body"); | |
this.root = "string" === typeof a ? q.querySelector(a) : a; | |
a = -1 !== navigator.appVersion.indexOf("Mac") ? "macos" : "other"; | |
this.OS = a; | |
this.modifierCodes = { | |
91: "super", | |
93: "super", | |
224: "super", | |
18: "alt", | |
17: "ctrl", | |
16: "shift", | |
9: "tab", | |
8: "backspace", | |
46: "delete" | |
}; | |
this.keyOrder = { | |
"super": 1, | |
ctrl: 2, | |
alt: 3, | |
shift: 4, | |
tab: 5, | |
"delete": 6, | |
backspace: 6 | |
}; | |
this.singleKeys = [4, 9, 8, 32, 37, 38, 39, 40, 46]; | |
this.keyDict = { | |
macos: { | |
91: "\x26#8984;", | |
93: "\x26#8984;", | |
224: "\x26#8984;", | |
18: "\x26#8997;", | |
17: "\x26#8963;", | |
16: "\x26#8679;", | |
9: "\x26#8677;", | |
8: "\x26#9003;", | |
46: "\x26#9003;" | |
}, | |
other: { | |
91: "\x26#xff;", | |
93: "\x26#xff;", | |
224: "\x26#xff;", | |
18: "Alt", | |
17: "Ctrl", | |
16: "Shift", | |
9: "Tab", | |
8: "Backspace", | |
46: "Delete" | |
}, | |
multi: { | |
32: "SPACEBAR", | |
37: "\x26larr;", | |
38: "\x26uarr;", | |
39: "\x26rarr;", | |
40: "\x26darr;", | |
13: "Enter" | |
} | |
}; | |
this.initialModifier = null; | |
this.modifierPressed = 0; | |
this.events = []; | |
this.modifiers = {}; | |
this.captors = []; | |
this.filters = []; | |
this.keyStroke = []; | |
this.holding = []; | |
this.initHandler() | |
} | |
var b = a.prototype; | |
b.onCapture = function(a) { | |
"function" === typeof a && 0 > this.captors.indexOf(a) && this.captors.push(a) | |
}; | |
b.addElementFilter = function(a) { | |
"function" === typeof a && 0 > this.captors.indexOf(a) && this.filters.push(a) | |
}; | |
b.applyFilters = function(a) { | |
var b = this; | |
return this.filters.reduce(function(d, f) { | |
return !0 === d ? d && f.call(b, a) : !1 | |
}, !0) | |
}; | |
b.initHandler = function() { | |
this.attachEvent("keydown", this.keydownHandler); | |
this.attachEvent("keyup", this.keyupHandler) | |
}; | |
b.getKeystroke = function(a) { | |
var b = | |
this, | |
d = this.keyOrder; | |
return a.map(function(a) { | |
var c = a.keyCode, | |
f = b.modifierCodes[a.keyCode], | |
d = b.getKeySymbol(a); | |
return { | |
id: c, | |
key: b.getKeySymbol(a), | |
isMeta: !!f && /^&#/.test(d), | |
modifier: f | |
} | |
}).sort(function(a, c) { | |
return (d[a.modifier] || 100) - (d[c.modifier] || 100) | |
}) | |
}; | |
b.getKeySymbol = function(a) { | |
return this.keyDict[this.OS][a.keyCode] || this.keyDict.multi[a.keyCode] || String.fromCharCode(a.keyCode) | |
}; | |
b.startCapture = function(a) { | |
this.initialModifier = a; | |
this.pushKey(a); | |
this.cancelCapture() | |
}; | |
b.sendKeys = function(a, b) { | |
var d = | |
this; | |
void 0 === b && (b = !1); | |
if (1 < a.length || b) { | |
var f = this.getKeystroke(a); | |
this.captors.forEach(function(a) { | |
return a.call(d, f, b) | |
}) | |
} | |
}; | |
b.endCapture = function() { | |
var a = this; | |
this._keyStroke = this.keyStroke.slice(0); | |
clearTimeout(this._endCapture); | |
this._endCapture = C(function() { | |
a.sendKeys(a._keyStroke) | |
}) | |
}; | |
b.pushKey = function(a) { | |
!1 === this.isCaptured(a) && this.keyStroke.push(a) | |
}; | |
b.removeKey = function(a) { | |
this.keyStroke = this.keyStroke.reduce(function(b, d) { | |
d.keyCode !== a.keyCode && b.push(d); | |
return b | |
}, []) | |
}; | |
b.cancelCapture = | |
function() { | |
this.isModifierPressed() ? C(this.cancelCapture.bind(this), 100) : this.keyStroke.length = 0 | |
}; | |
b.reset = function() { | |
var a = this; | |
this._reset = C(function() { | |
a.resetImmediate() | |
}, 300) | |
}; | |
b.resetImmediate = function() { | |
this.modifierPressed = 0; | |
this.keyStroke.length = 0; | |
this.holding.length = 0; | |
clearTimeout(this._endCapture) | |
}; | |
b.cancelReset = function() { | |
clearTimeout(this._reset) | |
}; | |
b.keydownHandler = function(a) { | |
this.applyFilters(a.target) && !1 === this.isInputWithShift(a) && !a.repeat && 0 > this.held(a.keyCode) && (this.holding.push(a.keyCode), | |
this.isModifier(a.keyCode) && !this.isModifierPressed() ? (this.modifierPressed += 1, this.startCapture(a), this.reset()) : this.isModifierPressed() ? (this.cancelReset(), this.pushKey(a), this.endCapture()) : (this.resetImmediate(), this.pushKey(a))) | |
}; | |
b.keyupHandler = function(a) { | |
if (this.applyFilters(a.target)) { | |
var b = this.isModifier(a.keyCode), | |
d = this.held(a.keyCode); | |
0 <= d && this.holding.splice(d, 1); | |
b && this.isModifierPressed() && (this.modifierPressed = 0, this.holding.length = 0); | |
1 === this.keyStroke.length && (b = this.keyStroke[0], | |
0 <= this.singleKeys.indexOf(b.keyCode) && (this.sendKeys([b], !0), this.resetImmediate())); | |
this.removeKey(a); | |
clearTimeout(this._endCapture) | |
} | |
}; | |
b.attachEvent = function(a, b) { | |
var d = this; | |
if ("function" === typeof b) { | |
var f = function(a) { | |
(d.root && d.root.contains(a.target) || a.target === d.root) && b.call(d, a) | |
}; | |
q.addEventListener(a, f, !0); | |
this.events.push(function() { | |
q.removeEventListener(a, f, !0) | |
}) | |
} | |
}; | |
b.held = function(a) { | |
return this.holding.indexOf(a) | |
}; | |
b.isModifier = function(a) { | |
return null != this.modifierCodes[a] | |
}; | |
b.isModifierPressed = | |
function() { | |
return 0 < this.modifierPressed | |
}; | |
b.isInitialModifier = function(a) { | |
return this.initialModifier ? this.initialModifier.keyCode === a.keyCode : !1 | |
}; | |
b.isCaptured = function(a) { | |
return null != this.keyStroke.reduce(function(b, d) { | |
null == b && d.keyCode === a.keyCode && (b = d); | |
return b | |
}, null) | |
}; | |
b.isInputWithShift = function(a) { | |
return "INPUT" === a.target.nodeName ? a.shiftKey || 32 === a.keyCode || "shift" === this.modifierCodes[a.keyCode] : !1 | |
}; | |
b.destroy = function() { | |
var a; | |
for (this.resetImmediate(); a = this.events.pop();) a(); | |
this.filters.length = | |
0 | |
}; | |
return a | |
}(); | |
b.a = a | |
}, | |
function(a, b, d) { | |
(function(a, g) { | |
var e = d(0), | |
h = d.n(e), | |
m = d(13), | |
f = d(27), | |
c = d(3), | |
l = d(20), | |
t = d(1); | |
e = "HTMLMediaElement" in n; | |
var z = {}, | |
k = new a(["addEventListener", "removeEventListener"]), | |
y = function() { | |
function a() { | |
h()(this, "originalDescriptors", new g); | |
h()(this, "mocked", !1); | |
h()(this, "events", new m.a(["setter", "method"])); | |
c.ObjectUtils.assign(z, l.Tools.apiMock(HTMLMediaElement)) | |
} | |
var b = a.prototype; | |
b.descriptor = function(a, c) { | |
return Object.getOwnPropertyDescriptor(a, c) | |
}; | |
b.mock = function() { | |
var a = | |
this, | |
b = HTMLMediaElement.prototype, | |
f = this; | |
t.IterableUtils.forof(z.properties, function(d) { | |
if (k.has(d)) return !0; | |
var e = a.descriptor(b, d); | |
if (e) { | |
a.originalDescriptors.set(d, e); | |
var l = c.ObjectUtils.combine(e); | |
e.get && (l.get = function() { | |
return e.get.call(this) | |
}); | |
e.set && (l.set = function(a) { | |
f.setterInvoked(this, d, a); | |
return e.set.call(this, a) | |
}); | |
Object.defineProperty(b, d, l) | |
} | |
}); | |
t.IterableUtils.forof(z.methods, function(c) { | |
if (k.has(c)) return !0; | |
var d = a.descriptor(b, c); | |
a.originalDescriptors.set(c, d); | |
Object.defineProperty(b, | |
c, { | |
configurable: !0, | |
value: function() { | |
for (var a, b = arguments.length, e = Array(b), l = 0; l < b; l++) e[l] = arguments[l]; | |
f.methodInvoked(this, c, e); | |
return (a = d.value).call.apply(a, [this].concat(e)) | |
} | |
}) | |
}); | |
this.mocked = !0 | |
}; | |
b.remove = function() { | |
this.events.off(); | |
var a = HTMLMediaElement.prototype; | |
t.IterableUtils.forof(this.originalDescriptors, function(c, b) { | |
delete a[b]; | |
Object.defineProperty(a, b, c) | |
}); | |
this.mocked = !1 | |
}; | |
b.setterInvoked = function(a, c, b) { | |
var f = this; | |
this.mocked && C(function() { | |
f.send(a, "setter", { | |
name: c, | |
value: b | |
}) | |
}) | |
}; | |
b.methodInvoked = function(a, c, b) { | |
var d = this; | |
this.mocked && C(function() { | |
b = b.map(function(a) { | |
return a instanceof Image ? Object(f.b)(a) : a | |
}); | |
d.send(a, "method", { | |
name: c, | |
args: b | |
}) | |
}) | |
}; | |
b.send = function(a, b, f) { | |
this.events.emit(b, c.ObjectUtils.combine(f, { | |
media: a | |
})) | |
}; | |
return a | |
}(); | |
h()(y, "supported", e); | |
b.a = y | |
}).call(this, d(7)["default"], d(10)["default"]) | |
}, | |
function(a, b, d) { | |
(function(a) { | |
d.d(b, "a", function() { | |
return e | |
}); | |
var e = function(b, d) { | |
void 0 === d && (d = "body"); | |
return new a(function(a) { | |
null == b.querySelector(d) || q.hidden || | |
q.msHidden || q.webkitHidden ? function c() { | |
null == b.querySelector(d) || q.hidden || q.msHidden || q.webkitHidden ? C(c, 100) : a() | |
}() : a() | |
}) | |
} | |
}).call(this, d(23).Promise) | |
}, | |
function(a, b, d) { | |
(function(a, g, p) { | |
var e = d(12), | |
m = d.n(e); | |
e = d(5); | |
var f = d.n(e); | |
e = d(16); | |
var c = d.n(e); | |
e = d(0); | |
var l = d.n(e), | |
t = d(9); | |
e = d(13); | |
var z = d(30), | |
k = d(1), | |
n = d(3), | |
q = d(35), | |
O = d(20), | |
A = ["attributes", "namespace", "content", "parent"]; | |
e = function(b) { | |
function d(c, d) { | |
var e = void 0 === d ? {} : d; | |
var h = e.autoIndex; | |
h = void 0 === h ? !0 : h; | |
e = e.disabled; | |
var m = void 0 === e ? !1 : e; | |
e = b.call(this) || | |
this; | |
l()(f()(e), "eventsList", ["initialIndex:once:memory", "add", "remove", "node"]); | |
e.disabled = m; | |
e.nextID = 0; | |
e.closed = !1; | |
e.dom = new a; | |
e.index = new a; | |
e.initialDOM = new g; | |
e.middleware = new z.b; | |
e.document = c; | |
e.quickAccess = {}; | |
h && e.initialIndex(); | |
return e | |
} | |
c()(d, b); | |
var e = d.prototype; | |
e.initialIndex = function() { | |
this.fastIndex(this.document.documentElement) | |
}; | |
e.use = function(a) { | |
this.middleware.use(a) | |
}; | |
e.initDOMCache = function() { | |
this.domCache = new a(this.index) | |
}; | |
e.writeCache = function(a, c, b) { | |
this.domCache && this.domCache.set(a, { | |
node: c, | |
data: b | |
}) | |
}; | |
e.findCache = function(a) { | |
if (this.domCache) return this.domCache.get(a) | |
}; | |
e.addQuckAccessItem = function(a, c) { | |
null == this.quickAccess[a] && null == this[a] && (this.quickAccess[a] = c, Object.defineProperty(this, a, { | |
get: function() { | |
return this.quickAccess[a] | |
} | |
})) | |
}; | |
e.addToIndex = function(a, c, b) { | |
void 0 === b && (b = null); | |
if (a = this.middleware.run(a)) { | |
this.emit("node", a); | |
var f = a._DOMIndexerInfo; | |
if (!1 === this.dom.has(a) || null == f) b = this.generateNodeID(b), f = { | |
id: b, | |
name: a.tagName || a.nodeName, | |
parent: c, | |
nativeNode: a, | |
namespace: t.c.getNamespace(a), | |
attributes: t.c.getAttributes(a), | |
content: t.c.getContent(a) | |
}, this.domCache && this.writeCache(b, a, f), this.dom.set(a, f), this.index.set(b, a), a._DOMIndexerID = b, a._DOMIndexerInfo = f, a._DOMIndexer = this; | |
this.emit("add", f); | |
return f | |
} | |
p.warn("Can't index undefined node") | |
}; | |
e.clear = function(a) { | |
void 0 === a && (a = !0); | |
k.IterableUtils.forof(k.IterableUtils.keys(this.dom), function(a) { | |
k.IterableUtils.forof(["_DOMIndexer", "_DOMIndexerID", "_DOMIndexerInfo"], function(c) { | |
a[c] = null; | |
delete a[c] | |
}) | |
}); | |
a && (this.document = null); | |
this.dom.clear(); | |
this.index.clear() | |
}; | |
e.dump = function() { | |
return { | |
dom: new a(this.dom), | |
index: new a(this.index) | |
} | |
}; | |
e.dumpRestore = function(a) { | |
n.ObjectUtils.assign(this, a); | |
this.document.body.innerHTML = "" | |
}; | |
e.findByID = function(a) { | |
return this.find(a) | |
}; | |
e.findByNode = function(a) { | |
return this.get(a) | |
}; | |
e.find = function(a) { | |
if (null != a) { | |
var c = this.index.get(a); | |
return null == c && this.domCache ? (a = this.findCache(a)) && a.node : c | |
} | |
}; | |
e.findInfo = function(a) { | |
return this.dom.get(this.find(a)) | |
}; | |
e.generateNodeID = | |
function(a) { | |
return null != a ? a : this.nextID++ | |
}; | |
e.get = function(a) { | |
return this.dom.get(a) | |
}; | |
e.getNodeId = function(a) { | |
return (a = this.get(a)) && a.id | |
}; | |
e.getIndexedNodeId = function(a) { | |
var c = this.getNodeId(a); | |
return null == c ? (this.reindexNodeTree(a), this.getNodeId(a)) : c | |
}; | |
e.getNodesIds = function(a) { | |
var c = this; | |
return k.IterableUtils.toArray(a).map(function(a) { | |
return { | |
id: c.getNodeId(a), | |
nodes: c.getNodesIds(a.childNodes) | |
} | |
}) | |
}; | |
e.reindexNodeTree = function(a, c) { | |
var b = this, | |
f = void 0 === c ? {} : c, | |
d = f.returnAll; | |
d = void 0 === d ? !1 : d; | |
var e = | |
f.callback, | |
l = void 0 === e ? null : e; | |
f = f.parentID; | |
var h = void 0 === f ? null : f; | |
if (a) { | |
var g = []; | |
if (a.parentNode || h) l = q.FunctionUtils.toFunction(l), t.c.each(a, function(a, c) { | |
h = c.parentNode && b.getNodeId(c.parentNode) || h; | |
if (null != h) { | |
var f = b.addToIndex(c, h); | |
g.push(f); | |
l(f, c) | |
} | |
}); | |
return d ? g : a._DOMIndexerID | |
} | |
}; | |
e.removeFromIndex = function(a) { | |
var c = this.getNodeId(a); | |
this.dom["delete"](a); | |
this.index["delete"](c); | |
k.IterableUtils.toArray(a.childNodes).map(this.removeFromIndex.bind(this)); | |
this.emit("remove", a); | |
return c | |
}; | |
e.replaceBody = | |
function(a) { | |
this.removeNodeTree(this.BODY.id); | |
var c = this.BODY.nativeNode; | |
delete c._DOMIndexerInfo; | |
delete c._DOMIndexerID; | |
this.addToIndex(c, this.HTML.id, a) | |
}; | |
e.removeNodeTree = function(a, c) { | |
var b = this; | |
void 0 === c && (c = !1); | |
if (a) { | |
var f = [], | |
d = a._DOMIndexerID; | |
t.c.each(a, function(a, c) { | |
var d = c._DOMIndexerID; | |
b.dom["delete"](c); | |
b.index["delete"](d); | |
b.emit("remove", c); | |
f.push(d) | |
}); | |
return c ? f : d | |
} | |
}; | |
e.fastIndex = function(a) { | |
if (!this.disabled) { | |
var c = this.addToIndex.bind(this), | |
b = this.initialDOM.add.bind(this.initialDOM); | |
t.c.each(a, function(a, f) { | |
var d = c(f, f.parentNode && f.parentNode._DOMIndexerID); | |
b(n.ObjectUtils.copyObject(d)) | |
}) | |
} | |
}; | |
e.toJSON = function(a) { | |
return d.toJSON(a || this.dom) | |
}; | |
e.isIndexed = function(a) { | |
return this.dom.has(a) | |
}; | |
e.showMissingNodes = function(a) { | |
var c = this; | |
void 0 === a && (a = !1); | |
a && O.Tools.measure("Show missing nodes", function() { | |
var a = t.c.all(c.document.documentElement); | |
k.IterableUtils.fastIterate(a, function(a, b) { | |
!1 === c.dom.has(b) && p.log("Missing node", b) | |
}); | |
p.log("Index diff: [DOM: " + a.length + "] [INDEX: " + | |
c.dom.size + "] [DIFF: " + (c.dom.size - a.length) + "]") | |
}) | |
}; | |
e.getCurrentHtml = function() { | |
var a = k.IterableUtils.map(this.dom, function(a) { | |
return a[1] | |
}); | |
return d.simplify(a) | |
}; | |
e.getDocument = function() { | |
return this.document | |
}; | |
e.setDocument = function(a) { | |
this.document = a | |
}; | |
m()(d, [{ | |
key: "HTML", | |
get: function() { | |
return this.document.documentElement._DOMIndexerInfo | |
} | |
}, { | |
key: "BODY", | |
get: function() { | |
return this.document.body._DOMIndexerInfo | |
} | |
}, { | |
key: "html", | |
get: function() { | |
return d.simplify(this.initialDOM) | |
} | |
}]); | |
return d | |
}(e.a); | |
l()(e, | |
"simplify", | |
function(a) { | |
return k.IterableUtils.map(a, function(a) { | |
var c = { | |
id: a.id, | |
name: a.name.toLowerCase() | |
}; | |
k.IterableUtils.forof(A, function(b) { | |
null != a[b] && (c[b] = a[b]) | |
}); | |
return c | |
}) | |
}); | |
l()(e, "toNodesTree", function(a) { | |
var c = {}; | |
a = k.IterableUtils.toArray(a); | |
k.IterableUtils.forof(a, function(a) { | |
if (null == c[a.id]) { | |
var b = n.ObjectUtils.combine(a); | |
c[a.id] = b; | |
null != a.parent && (a = c[a.parent]) && (a.children = a.children || [], a.children.push(b)) | |
} | |
}); | |
return c[0] | |
}); | |
b.a = e | |
}).call(this, d(10)["default"], d(7)["default"], d(15)["default"]) | |
}, | |
function(a, b, d) { | |
(function(a, g) { | |
var e = d(6), | |
h = d.n(e); | |
e = d(12); | |
var m = d.n(e); | |
e = d(0); | |
var f = d.n(e); | |
e = function() { | |
function c(c) { | |
void 0 === c && (c = n); | |
f()(this, "_cancelMainHandler", null); | |
f()(this, "subscriptions", {}); | |
var b = a.isIframe(c); | |
this.window = b ? c.parent : c; | |
if (c._messenger) return c._messenger; | |
this.targetWindow = c; | |
c._messenger = this; | |
g.log("Messenger created [isFrame: " + b + "]", this.targetWindow.location.href); | |
c = this.targetWindow; | |
b = this.targetWindow.name || ""; | |
b = /^ym-/.test(b) ? b : "ym-" + a.guid(); | |
c.name = b; | |
this.identifier = | |
this.targetWindow.name; | |
this._handleMessages(); | |
return this | |
} | |
var b = c.prototype; | |
b.send = function(a, c) { | |
var b = void 0 === c ? {} : c, | |
f = b.data, | |
d = b.onResponse; | |
b = b.receiver; | |
var e = null, | |
l = []; | |
"function" === typeof d && (e = a + "." + this.timestamp, this.listenOnce(function(a) { | |
a = a.data; | |
var c = a._ym_cancel_response, | |
b = a.data; | |
if (a.type === e) c ? g.warn("Seems like you forgot to call `answer` in message handler. This message requires your response") : d(b); | |
else return !1 | |
}, this.targetWindow)); | |
e && l.push("response:" + e); | |
this._sendMessage({ | |
data: f, | |
type: a, | |
target: this._getReceiver(b), | |
flags: l | |
}) | |
}; | |
b.subscribe = function(a, c) { | |
var b = this._createSubscriptionsGroup(a); | |
if (!1 === this._isSubscribed(b, c)) b.push(c); | |
else throw Error("This callback has already been subscribed to " + a); | |
}; | |
b.unsubscribe = function(c, b) { | |
var f = this._getSubcribers(c); | |
!0 === this._isSubscribed(f, b) && a.removeFromArray(f, b) | |
}; | |
b.unsubscribeAll = function(a) { | |
(a = this._getSubcribers(a)) && a.splice(0) | |
}; | |
b.listen = function(a) { | |
var c = this; | |
this._attachEvent("message", a); | |
return function() { | |
return c._removeEvent("message", | |
a) | |
} | |
}; | |
b.listenOnce = function(a, c) { | |
var b = this; | |
c = c || this.window; | |
var f = function(c) { | |
!1 !== a(c) && d() | |
}, | |
d = function() { | |
b._removeEvent("message", f, c) | |
}; | |
this._attachEvent("message", f, c); | |
return d | |
}; | |
b._attachEvent = function(a, c, b) { | |
var f = this; | |
(b || this.window).addEventListener(a, c); | |
return function() { | |
return f._removeEvent(a, c) | |
} | |
}; | |
b._createSubscriptionsGroup = function(a) { | |
return this._getSubcribers(a) || (this.subscriptions[a] = []) | |
}; | |
b._isSubscribed = function(a, c) { | |
return a && c && 0 <= a.indexOf(c) | |
}; | |
b._removeEvent = function(a, c, b) { | |
(b || | |
this.window).removeEventListener(a, c) | |
}; | |
b._getSubcribers = function(a) { | |
return this.subscriptions[a] || null | |
}; | |
b._sendMessage = function(a) { | |
var c = void 0 === a ? {} : a; | |
a = c.target; | |
var b = c.flags; | |
b = void 0 === b ? [] : b; | |
c = { | |
_ym_messenger: !0, | |
_ym_identifier: this.identifier, | |
type: c.type, | |
data: c.data | |
}; | |
if (b && 0 < b.length) | |
for (var f = 0, d = b.length; f < d; f++) { | |
var e = b[f].split(":"); | |
c["_ym_" + e[0]] = e[1] || !0 | |
} | |
this._postMessage(c, a) | |
}; | |
b._postMessage = function(a, c) { | |
(c || this.window).postMessage(a, "*") | |
}; | |
b._getReceiver = function(a) { | |
if (null != a) { | |
if (a.postMessage) return a; | |
if (a.contentWindow) return a.contentWindow | |
} | |
}; | |
b._handleMessages = function() { | |
var a = this; | |
if (null == this._cancelMainHandler) { | |
var c = this._attachEvent("message", function(c) { | |
c = c.data || {}; | |
var b = c._ym_response, | |
f = c._ym_identifier, | |
d = c.data, | |
e = c.type; | |
if (!0 === c._ym_messenger && e && !/\.([0-9]+)$/.test(e)) { | |
c = a._getSubcribers(e); | |
var l = a._findIframeByName(f); | |
if (null === l) g.warn("Cannot find iframe with id " + f); | |
else { | |
var m = { | |
id: f, | |
sender: l, | |
data: d, | |
type: e | |
}; | |
f = 0; | |
for (d = c.length; f < d; f++) { | |
var p = c[f]; | |
b ? function() { | |
var c = { | |
type: b, | |
target: l.contentWindow | |
}, | |
f = 2 === p.length, | |
d = null, | |
e = function(b) { | |
clearTimeout(d); | |
b = f ? h()({}, c, { | |
data: b | |
}) : h()({}, c, { | |
flags: ["cancel_response"] | |
}); | |
a._sendMessage(b) | |
}; | |
f ? (d = C(function() { | |
g.warn("Response has been canceled because `answer` was never called"); | |
f = !1; | |
e() | |
}, 2E3), p(m, e)) : (p(m), e()) | |
}() : p(m) | |
} | |
} | |
} | |
}, this.targetWindow); | |
this._cancelMainHandler = function() { | |
c(); | |
a._cancelMainHandler = null | |
} | |
} | |
}; | |
b._findIframe = function(c) { | |
var b = [].slice.call(q.querySelectorAll("iframe")); | |
return a.find(b, function(a) { | |
return a.contentWindow === c | |
}) || null | |
}; | |
b._findIframeByName = | |
function(a) { | |
return this._findIframe(this.targetWindow.frames[a]) || null | |
}; | |
m()(c, [{ | |
key: "timestamp", | |
get: function() { | |
return a.now() | |
} | |
}]); | |
return c | |
}(); | |
b.a = e | |
}).call(this, d(4)["default"], d(15)["default"]) | |
}, | |
function(a, b, d) { | |
(function(a, g) { | |
var e = d(6), | |
h = d.n(e); | |
e = function() { | |
function b(a, b, f) { | |
void 0 === a && (a = n); | |
void 0 === b && (b = q); | |
Object.defineProperty(this, "_indexer", { | |
value: f | |
}); | |
this.window = a; | |
this.document = b; | |
this.indexer = this._indexer; | |
this.selection = this.window.getSelection() | |
} | |
var f = b.prototype; | |
f.getPageSelection = function() { | |
var a = | |
this.getSelection(); | |
if (a) { | |
var b = this.indexer.getNodeId(a.startNode), | |
f = this.indexer.getNodeId(a.endNode); | |
this.restoreIndexer(); | |
return h()({}, a, { | |
startNode: b, | |
endNode: f | |
}) | |
} | |
}; | |
f.restorePageSelection = function(c) { | |
if (c) { | |
var b = this.indexer.find(c.startNode), | |
f = this.indexer.find(c.endNode); | |
this.restoreIndexer(); | |
a.isDOMNode(b) && a.isDOMNode(f) && this.restoreSelection(h()({}, c, { | |
startNode: b, | |
endNode: f | |
})) | |
} | |
}; | |
f.getSelection = function() { | |
if (0 < this.selection.rangeCount) { | |
var a = this.selection.getRangeAt(0) || this.document.createRange(); | |
return { | |
start: a.startOffset, | |
end: a.endOffset, | |
startNode: a.startContainer, | |
endNode: a.endContainer | |
} | |
} | |
}; | |
f.restoreSelection = function(a) { | |
var c = a.start, | |
b = a.end, | |
f = a.startNode; | |
a = a.endNode; | |
try { | |
var d = f.ownerDocument, | |
e = d.defaultView.getSelection(), | |
h = d.createRange(); | |
h.setStart(f, c); | |
h.setEnd(a, b); | |
e.removeAllRanges(); | |
e.addRange(h) | |
} catch (O) { | |
g.log({ | |
start: { | |
startNode: f, | |
start: c | |
}, | |
end: { | |
endNode: a, | |
end: b | |
} | |
}) | |
} | |
}; | |
f.getSelectionFor = function(a) { | |
if (/text|search|password|tel|url/.test(a.type)) return { | |
start: a.selectionStart, | |
end: a.selectionEnd | |
} | |
}; | |
f.restoreSelectionFor = function(a, b) { | |
b && null != b.start && null != b.end && /text|search|password|tel|url/.test(a.type) && (a.selectionStart = b.start, a.selectionEnd = b.end) | |
}; | |
f.clear = function() { | |
var a = this.document.createRange(); | |
a.setStart(this.document.body, 0); | |
a.setEnd(this.document.body, 0); | |
this.selection.removeAllRanges(); | |
this.selection.addRange(a) | |
}; | |
f.setIndexer = function(a) { | |
a !== this.indexer && (this.indexer = a) | |
}; | |
f.restoreIndexer = function() { | |
this.indexer = this._indexer | |
}; | |
return b | |
}(); | |
b.a = e | |
}).call(this, d(4)["default"], | |
d(15)["default"]) | |
}, | |
function(a, b, d) { | |
(function(a, g) { | |
var e = d(2), | |
h = { | |
doNotTrack: function() { | |
return !0 !== navigator.doNotTrack | |
}, | |
localStorage: function() { | |
try { | |
return e.a.localStorage.setItem("test", "value"), e.a.localStorage.removeItem("test"), !0 | |
} catch (m) { | |
return !1 | |
} | |
}, | |
defineProperty: function() { | |
try { | |
return Object.defineProperty({}, "test", { | |
value: 123 | |
}), !0 | |
} catch (m) { | |
return !1 | |
} | |
} | |
}; | |
b.a = function() { | |
a.forin(h, function(a) { | |
if (!h[a]()) return g.log("Feature not supported: " + a), !1 | |
}); | |
return !0 | |
}() | |
}).call(this, d(4)["default"], d(15)["default"]) | |
}, | |
function(a, b, d) { | |
(function(a) { | |
var e = d(29), | |
p = d.n(e); | |
e = d(10); | |
var h = d(1), | |
m = d(24), | |
f = d(3), | |
c = { | |
items: { | |
extnameFinder: /\.(css|png|gif|svg|jp[e]?g|mp4|ogv|webm|webp|mp3|ico|woff|ttf|eot)/gi, | |
urlPartsFinder: /([?./]*)/gi, | |
anchorFinder: /^(?!#).*([#]+)/g, | |
cssURLFinder: /url\(['"]?((?!#|data|blob))([^()'"]+)['"]?\)/g, | |
URLImportFinder: /@import ['"]((?!#|data|blob)([^()'"]+))['"]/g, | |
protocolMissing: /^(?!http[s]?).*/, | |
dataurlTest: /^(data|blob):/, | |
selectorTest: /^#(.*)/, | |
protocolIncomplete: /^(http[s]?)?(:?\/\/)/, | |
resourceFinder: /{{RESOURCE_URL}}/, | |
proxiedURL: /proxy([^?]*)\?url=/i | |
}, | |
get: function(a) { | |
return this.items[a] | |
}, | |
reset: function(a) { | |
this.items[a].lastIndex = 0 | |
}, | |
test: function(a, c) { | |
var b = this.get(a); | |
this.reset(a); | |
return b.test(c) | |
}, | |
resetMultiple: function() { | |
for (var a, c = this, b = arguments.length, f = Array(b), d = 0; d < b; d++) f[d] = arguments[d]; | |
f = (a = []).concat.apply(a, f); | |
h.IterableUtils.fastIterate(f, function(a, b) { | |
return c.reset(b) | |
}) | |
}, | |
resetAll: function() { | |
this.resetMultiple(h.IterableUtils.keys(this.items)) | |
} | |
}, | |
l = { | |
location: null, | |
proxy: null, | |
base: null, | |
window: "object" === | |
typeof n && n || null, | |
document: "object" === typeof q && q || null | |
}, | |
t = new e["default"], | |
k = new e["default"], | |
D = function(a) { | |
return "string" === typeof a ? URL.parse ? URL.parse(a) : new URL(a) : a | |
}, | |
y = function(a) { | |
return k.get(a) || a | |
}, | |
aa = function() { | |
var a = D(function() { | |
if (l.base) return l.base; | |
if (l.document) { | |
var a = l.document.querySelector("base[href]"); | |
return a ? a.href : l.location | |
} | |
return l.location | |
}()); | |
return l.location = { | |
host: a.host, | |
protocol: a.protocol, | |
path: (a.pathname || a.path || "").replace(/[^/]*$/, "") | |
} | |
}, | |
O = []; | |
e = Object.defineProperties({ | |
regexp: c, | |
patchCSS: function(a, b) { | |
var f = this, | |
d = (void 0 === b ? {} : b).location, | |
e = void 0 === d ? null : d, | |
l = { | |
cssURLFinder: function(a) { | |
return "url('" + a + "')" | |
}, | |
URLImportFinder: function(a) { | |
return '@import "' + a + '"' | |
} | |
}; | |
["cssURLFinder", "URLImportFinder"].forEach(function(a) { | |
return c.reset(a) | |
}); | |
return ["cssURLFinder", "URLImportFinder"].reduce(function(a, b) { | |
return f.patchURLS(a, c.get(b), e, l[b]) | |
}, a) | |
}, | |
patchURLS: function(a, c, b, f) { | |
var d = this, | |
e = a, | |
l = function(a) { | |
return "function" === typeof a ? a : function(a) { | |
return a | |
} | |
}(f); | |
"string" === typeof a && | |
a.match(c) && (e = a.replace(c, function() { | |
var a = d.patchURL(2 >= arguments.length ? w : arguments[2], { | |
location: b | |
}); | |
return l(a) | |
})); | |
return e | |
}, | |
patchURL: function(a, c) { | |
var b = this, | |
f = void 0 === c ? {} : c, | |
d = f.location, | |
e = void 0 === d ? null : d; | |
f = f.split; | |
var l = void 0 === f ? !1 : f; | |
return "string" === typeof a ? function(a) { | |
return l ? a.split(",") : [a] | |
}(a).reduce(function(a, c) { | |
var f = c.trim().split(" "), | |
d = f[0]; | |
f = f.slice(1); | |
d = b.applyPatch(d, e); | |
a.push([d].concat(f).join(" ")); | |
return a | |
}, []).join(", ") : a | |
}, | |
applyPatch: function(b, f) { | |
var d = /^(?!\\)/.test(b), | |
e = this.getRelativeLocation(f), | |
h = e.host, | |
g = e.protocol; | |
e = e.pathname || e.path || ""; | |
d = d ? this.resolvePath(b, e) : b; | |
if (0 <= O.indexOf(d)) return d; | |
if (k.has(d)) return t.get(d); | |
e = b; | |
c.resetAll(); | |
if (c.test("dataurlTest", b) || c.test("selectorTest", b)) return b; | |
c.test("protocolMissing", b) && (e = c.test("protocolIncomplete", b) ? b.replace(c.get("protocolIncomplete"), g + "//") : g + "//" + (h + "/" + d).replace(/([/]+)/g, "/")); | |
k.set(b, e); | |
/http[s]?/.test(e) ? (h = e, c.test("proxiedURL", h) ? e = h : (l.isWhitelisted ? (g = l.isWhitelisted(h)) && a.warn("Whitelisted: " + | |
h) : g = !1, e = g ? h : (g = l.proxy) && c.test("resourceFinder", g) ? g.replace(c.get("resourceFinder"), h.replace(/&/g, "%26")) : h), O.push(e), t.set(b, e), h = e) : (O.push(b), t.set(b, e), h = b); | |
return l.noEncode ? decodeURIComponent(h) : h | |
}, | |
getRelativeLocation: function(a) { | |
var c = /^(?!\\)/.test(a); | |
return a ? c ? (c = m.StringUtils.parseURL(y(a)), a = this.resolvePath(a, this.location.protocol + "//" + this.location.host + (this.location.path || this.location.pathname)), c || f.ObjectUtils.assign({}, this.location, { | |
path: a | |
})) : f.ObjectUtils.assign({}, this.location, { | |
path: a | |
}) : this.location | |
}, | |
resolvePath: function(a, c) { | |
if (/^\//.test(a)) return a; | |
for (var b = (c + "/" + a).replace(/([/]+)/g, "/").split("/"), f = [], d = 0, e = b.length; d < e; d++) { | |
var l = b[d]; | |
"" === l ? f.length = 0 : "." !== l && (".." === l ? 0 < f.length && --f.length : f.push(l)) | |
} | |
f.unshift(""); | |
return f.join("/") | |
}, | |
configure: function(a) { | |
void 0 === a && (a = {}); | |
var c = a; | |
a = c.proxyWhitelist; | |
c = p()(c, ["proxyWhitelist"]); | |
l = f.ObjectUtils.assign({}, l, c); | |
if (a) { | |
a = a.map(function(a) { | |
return a.replace("*", "(.*)") | |
}).join("|"); | |
var b = new RegExp("" + a, "ig"); | |
l.isWhitelisted = | |
function(a) { | |
b.lastIndex = 0; | |
return b.test(a) | |
} | |
} | |
}, | |
isURLLike: function(a) { | |
c.resetMultiple(["dataurlTest", "selectorTest", "extnameFinder", "protocolMissing"]); | |
return c.test("dataurlTest", a) || c.test("selectorTest", a) ? !1 : c.test("extnameFinder", a) && c.test("protocolMissing", a) | |
}, | |
clearCache: function() { | |
t.clear() | |
}, | |
isProxiedURL: function(a) { | |
return a ? c.test("proxiedURL", a) : !1 | |
} | |
}, { | |
location: { | |
get: function() { | |
return aa() | |
}, | |
set: function(a) { | |
return (l = f.ObjectUtils.assign({}, l, { | |
location: a | |
})).location | |
}, | |
configurable: !0, | |
enumerable: !0 | |
}, | |
config: { | |
get: function() { | |
return l | |
}, | |
configurable: !0, | |
enumerable: !0 | |
} | |
}); | |
b.a = e | |
}).call(this, d(15)["default"]) | |
}, | |
function(a, b, d) { | |
function e() { | |
try { | |
if (!n.sessionStorage) return null; | |
var a = n.sessionStorage.getItem(p), | |
b = !1; | |
try { | |
var f = n.opener ? n.opener.sessionStorage : null; | |
b = !!f && a === f.getItem(p) | |
} catch (c) { | |
b = !0 | |
} | |
if (!a || b) a = g["default"].guid(), n.sessionStorage.setItem(p, a); | |
return a | |
} catch (c) { | |
return null | |
} | |
} | |
d.d(b, "a", function() { | |
return e | |
}); | |
var g = d(4), | |
p = "__vw_tab_guid" | |
}, | |
function(a, b, d) { | |
a = d(41); | |
var e = new(d(28).a), | |
g = 0, | |
p = 0, | |
h = | |
function(a) { | |
var c = this, | |
b = this.stamp; | |
e.push(function() { | |
b !== g && (p = 0); | |
g = b; | |
c._publishMutations(c._getMutationObject(a, b, p++)) | |
}) | |
}, | |
m = d(42), | |
f = d(43), | |
c, l = function(a, c) { | |
if (!this.IS_MOBILE_DEVICE) { | |
var b = 0, | |
f = function() { | |
var d = c.getValue.call(this, a); | |
d && (0 !== d.stamp ? this._publishActions(d) : 3 > b && (C(f, 300), b += 1)) | |
}.bind(this); | |
f() | |
} | |
}, | |
t = d(44), | |
k = d(45), | |
n = d(46), | |
y = d(47), | |
aa = d(48); | |
d = d(49); | |
b.a = { | |
canvas: { | |
create: function(a) { | |
var c = a.canvasProxy, | |
b = a._universalHandler(function(a) { | |
a = this._getEventObject("canvasProperty", a.canvas, { | |
property: a.name, | |
value: a.value | |
}); | |
this._publishActions(a) | |
}); | |
a = a._universalHandler(function(a) { | |
a = this._getEventObject("canvasMethod", a.canvas, { | |
method: a.name, | |
args: a.args | |
}); | |
this._publishActions(a) | |
}); | |
c.events.on("setter", b); | |
c.events.on("method", a); | |
c.mock() | |
}, | |
destroy: function(a) { | |
a.canvasProxy.remove() | |
} | |
}, | |
input: a.a, | |
keystrokes: { | |
create: function(a) { | |
a.keyCapture.onCapture(function(c) { | |
c = a._getEventObject("keystroke", -1, c); | |
a._publishActions(c) | |
}) | |
}, | |
destroy: function(a) { | |
a.keyCapture.destroy() | |
} | |
}, | |
media: { | |
create: function(a) { | |
var c = | |
new a.MediaProxy, | |
b = a._universalHandler(function(c) { | |
c = a._getEventObject("mediaProperty", c.media, { | |
property: c.name, | |
value: c.value | |
}); | |
a._publishActions(c) | |
}), | |
f = a._universalHandler(function(c) { | |
c = a._getEventObject("mediaMethod", c.media, { | |
method: c.name, | |
args: c.args | |
}); | |
a._publishActions(c) | |
}); | |
c.events.on("setter", b); | |
c.events.on("method", f); | |
c.mock() | |
}, | |
destroy: function(a) { | |
a.mediaProxy.remove() | |
} | |
}, | |
mutations: { | |
create: function(a) { | |
a.summary.on("mutation", a._universalHandler(h)) | |
}, | |
destroy: function(a) { | |
a.summary.off("mutation"); | |
e.start(!0) | |
} | |
}, | |
mouse: m.a, | |
focus: f.a, | |
resize: { | |
getValue: function() { | |
var a = this.viewport.getSize(1), | |
c = a.width; | |
a = a.height; | |
var b = this.viewport.scrollingElement; | |
if (0 < c && 0 < a) return this._getEventObject("resize", 0, { | |
width: c, | |
height: a, | |
pageWidth: b.scrollWidth, | |
pageHeight: b.scrollHeight | |
}) | |
}, | |
create: function(a) { | |
c = a.attachEvent(a.window, "resize", a._universalHandler(l, { | |
extra: [this] | |
}), { | |
passive: !0 | |
}) | |
}, | |
destroy: function(a) { | |
a.removeEvent(c) | |
} | |
}, | |
deviceRotation: t.a, | |
scroll: k.a, | |
selection: n.a, | |
touch: y.a, | |
zoom: aa.a, | |
window: d.a, | |
checkable: { | |
scanFrequency: 50, | |
timeoutId: null, | |
checkables: {}, | |
recorder: null, | |
create: function(a) { | |
this.recorder = a; | |
this.handleNodeIndex = this.handleNodeIndex.bind(this); | |
this.handleNodeRemoval = this.handleNodeRemoval.bind(this); | |
a.indexer.on("add", this.handleNodeIndex); | |
a.indexer.on("remove", this.handleNodeRemoval); | |
this.updatecheckablesStates() | |
}, | |
updatecheckablesStates: function() { | |
var a = this; | |
Object.keys(this.checkables).forEach(function(c) { | |
if ((c = a.checkables[c]) && c.nodeInfo.nativeNode.checked !== c.checked) { | |
var b = a.recorder._getEventObject("change", | |
c.nodeInfo.id, { | |
checked: c.nodeInfo.nativeNode.checked | |
}); | |
a.recorder._publishActions(b); | |
c.checked = c.nodeInfo.nativeNode.checked | |
} | |
}); | |
C(this.updatecheckablesStates.bind(this), this.scanFrequency) | |
}, | |
handleNodeIndex: function(a) { | |
"INPUT" !== a.name || "checkbox" !== a.attributes.type && "radio" !== a.attributes.type || (this.checkables[a.id] = { | |
checked: a.nativeNode.checked, | |
nodeInfo: a | |
}) | |
}, | |
handleNodeRemoval: function(a) { | |
delete this.checkables[a.id] | |
}, | |
destroy: function() { | |
clearTimeout(this.timeoutId); | |
this.recorder.indexer.off("add", | |
this.handleNodeIndex); | |
this.recorder.indexer.off("remove", this.handleNodeRemoval) | |
} | |
}, | |
srcset: { | |
create: function(a) { | |
this.onImageLoad = this.onImageLoad.bind(this); | |
q.addEventListener("load", this.onImageLoad, !0); | |
this.recorder = a | |
}, | |
onImageLoad: function(a) { | |
a = a.target; | |
"IMG" === (a.tagName || a.nodeName) && a.getAttribute("srcset") && this.recorder.summary.collectMutations([{ | |
meta: { | |
name: "src", | |
oldValue: null, | |
newValue: a.currentSrc | |
}, | |
target: a, | |
type: "attributes" | |
}]) | |
}, | |
destroy: function() { | |
q.removeEventListener("load", this.onImageLoad) | |
} | |
} | |
} | |
}, | |
function(a, b, d) { | |
a = d(11); | |
var e = d(10), | |
g = d(14), | |
p = { | |
rand: function(a, b) { | |
return Math.round(Math.random() * (b - a)) + a | |
}, | |
charFromRange: function(a, b) { | |
var c = this.rand(a, b); | |
return String.fromCharCode(c) | |
}, | |
isLetter: function(a) { | |
return /[\w\u0410-\u042f\u0430-\u044f]/.test(a) | |
}, | |
isNumber: function(a) { | |
return /[0-9]/.test(a) | |
}, | |
isUpperCase: function(a) { | |
return a === a.toUpperCase() | |
}, | |
randomizeString: function(a) { | |
var c = this; | |
return (a || "").split("").map(function(a) { | |
return c.isNumber(a) ? c.rand(0, 9) : c.isLetter(a) ? c.isUpperCase(a) ? c.charFromRange(65, | |
90) : c.charFromRange(97, 122) : a | |
}).join("") | |
}, | |
getNodeBounds: function(a) { | |
if (a.getBoundingClientRect) return a.getBoundingClientRect(); | |
var c = q.createRange(); | |
c.selectNode(a); | |
a = c.getBoundingClientRect(); | |
c.detach(); | |
return a | |
} | |
}, | |
h = a.a.DOMIndexer.HIDABLE_NODES, | |
m = new e.KeyValue, | |
f = function(a, b) { | |
var c = q.createElement(b), | |
f = p.getNodeBounds(a); | |
c.setAttribute("ym-node-type", a.nodeName.toLowerCase()); | |
a.attributes && (g.DOMUtils.copyAttributes(a, c), c.className = a.className); | |
c.className += " ym-hidden-content"; | |
return { | |
placeholder: c, | |
bounds: f | |
} | |
}; | |
b.a = function(a) { | |
if (0 <= h.indexOf(a.nodeName)) { | |
var c = g.DOMUtils.isHiddenContent(a); | |
if (m.has(a)) return m.get(a); | |
if (c) { | |
var b = a.nodeName; | |
c = a.textContent; | |
if ("#text" === b && c && "" === c.trim()) return a; | |
c = function(a) { | |
switch (b) { | |
case "#text": | |
var c = f(a, "span").placeholder; | |
c.setAttribute("ym-text-content", p.randomizeString(a.textContent || "")); | |
return c; | |
case "IMG": | |
return c = f(a, "img"), a = c.placeholder, c = c.bounds, a.src = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mNkYAAAAAYAAjCB0C8AAAAASUVORK5CYII\x3d", | |
a.width = c.width, a.height = c.height, a; | |
case "TEXTAREA": | |
case "INPUT": | |
return c = f(a, "input"), a = c.placeholder, c = c.bounds, a.style.width = c.width + "px", a.style.height = c.height + "px", a; | |
default: | |
return c = f(a, "span"), a = c.placeholder, c = c.bounds, a.style.width = c.width + "px", a.style.height = c.height + "px", a | |
} | |
}(a); | |
m.set(a, c); | |
return c | |
} | |
} | |
return a | |
} | |
}, | |
function(a, b, d) { | |
d.r(b); | |
(function(a, g, p, h) { | |
d.d(b, "default", function() { | |
return X | |
}); | |
var e = d(40), | |
f = d.n(e); | |
e = d(6); | |
var c = d.n(e); | |
e = d(12); | |
var l = d.n(e); | |
e = d(5); | |
var t = d.n(e); | |
e = d(16); | |
var k = d.n(e); | |
e = d(0); | |
var D = d.n(e), | |
y = d(11), | |
aa = d(27), | |
O = d(63), | |
A = d(50), | |
ia = d(52), | |
v = d(19); | |
e = d(53); | |
var r = d(54), | |
w = d(55), | |
x = d(56), | |
u = d(57), | |
B = d(13), | |
E = d(21); | |
d(58); | |
var G = d(59), | |
K = d(60), | |
J = d(18), | |
I = d(61), | |
L = d(9), | |
P = d(62), | |
U = d(32), | |
M = d(14), | |
ba = d(36), | |
T = d(4), | |
ha = d(64), | |
R = n.console, | |
za = new e.a({ | |
checkOnLoad: !1, | |
resetOnEnd: !0 | |
}), | |
ca = {}, | |
N = { | |
maxSize: a.size(50, "mb"), | |
maxDuration: 864E5, | |
compression: !1, | |
isEU: !1, | |
recording: { | |
keysMode: "explicit" | |
} | |
}, | |
ka = !0 === K.a, | |
V = T.IS_INCOGNITO || T.DO_NOT_TRACK || "disable" === a.meta("webvisor"), | |
W = n !== n.top, | |
X = function(b) { | |
function d(c, | |
f) { | |
void 0 === c && (c = {}); | |
void 0 === f && (f = {}); | |
var d = b.call(this) || this; | |
D()(t()(d), "middlewares", []); | |
D()(t()(d), "iframes", []); | |
D()(t()(d), "waitingBody", null); | |
D()(t()(d), "_identifier", a.guid()); | |
D()(t()(d), "offsets", { | |
left: 0, | |
top: 0 | |
}); | |
D()(t()(d), "fatalError", !1); | |
D()(t()(d), "captors", new g); | |
D()(t()(d), "prevMutationStamp", null); | |
D()(t()(d), "prevMutationOrderingID", 0); | |
D()(t()(d), "inited", !1); | |
D()(t()(d), "startOptions", null); | |
D()(t()(d), "precache", []); | |
D()(t()(d), "paused", !0); | |
D()(t()(d), "started", !1); | |
D()(t()(d), "stopped", | |
!1); | |
D()(t()(d), "eventsList", ["error"]); | |
D()(t()(d), "_sendEOF", a.once(function() { | |
if (!d._EOF_SENT) { | |
var a = d._getEventObject("eof"); | |
d._saveChanges({ | |
events: [a] | |
}); | |
d._EOF_SENT = !0 | |
} | |
})); | |
d._context = function(a) { | |
var c = {}; | |
return a ? (c.window = a.window || n, c.document = a.document || q, c) : { | |
window: n, | |
document: q | |
} | |
}(f); | |
d._configOptions = c; | |
Object.defineProperty(d.window, "__YM_WV_ENABLED__", { | |
value: !0 | |
}); | |
return !ka || V ? t()(d) || t()(d) : d | |
} | |
k()(d, b); | |
var e = d.prototype; | |
e.configure = function() { | |
var c = this, | |
b = this._configOptions; | |
this.frames = []; | |
this.sender = new ia.a(this.middlewares.splice(0)); | |
this.viewport = U.BrowserUtils.viewportGetter(this.document); | |
this.zoomLevel = this.viewport.zoomLevel; | |
this.captors = new g; | |
this.prevMutationStamp = null; | |
this.prevMutationOrderingID = 0; | |
this.inited = !1; | |
this.startOptions = this.initException = null; | |
this._timer = ba.TimeUtils.timer(); | |
this.precache = []; | |
this.options = a.combine(N, b); | |
this.canvasProxy = aa.a; | |
this.MediaProxy = w.a; | |
L.c.addAttributesFilter(function(a, b, f) { | |
if (v.a.isValidNode(a) && "value" === b) return a = v.a.validate(a, c.options), | |
b = a.forceRecord, a.isAllowed || b ? f : v.a.encode(f) | |
}) | |
}; | |
e.attachEvent = function() { | |
for (var a, c = arguments.length, b = Array(c), f = 0; f < c; f++) b[f] = arguments[f]; | |
E.a.on.apply(E.a, (a = []).concat.apply(a, b)); | |
return b | |
}; | |
e.removeEvent = function() { | |
for (var a, c = arguments.length, b = Array(c), f = 0; f < c; f++) b[f] = arguments[f]; | |
E.a.off.apply(E.a, (a = []).concat.apply(a, b)); | |
return b | |
}; | |
e["continue"] = function() { | |
V || (this.paused = !1) | |
}; | |
e.findNode = function(a) { | |
return this.indexer.getNodeId(a) | |
}; | |
e.pause = function() { | |
V || (this.paused = !0) | |
}; | |
e.middleware = | |
function(a) { | |
this.sender ? this.sender.use(a) : this.middlewares.push(a); | |
return this | |
}; | |
e.init = function(a) { | |
var c = this; | |
void 0 === a && (a = {}); | |
this.errorLogger(function() { | |
if (!ka || V) return p.resolve(); | |
c.waitingDocument = Object(x.a)(q); | |
c.waitingDocument["catch"](function(a) { | |
var b = a; | |
"timeout" === a.message && (b = Error("No \x3cbody\x3e found. Can't continue")); | |
c.fatal("init-failed", b) | |
}); | |
return c.waitingDocument.then(function() { | |
c.configure(); | |
var b = c._initMessenger(); | |
b["catch"](function(a) { | |
c.fatal("init-failed", a) | |
}); | |
return b.then(function() { | |
c.waitingDocument = !1; | |
c.indexer = new u.a(q, { | |
autoIndex: !1, | |
disabled: a.disableIndex | |
}); | |
c.indexer.on("node", function(a) { | |
return c.connectSlaveRecorder(a) | |
}); | |
c.indexer.use(ha.a); | |
c.indexer.initialIndex(); | |
c.summary = new A.a(q.documentElement, c.indexer); | |
c.selection = new G.a(n, q, c.indexer); | |
c.keyCapture = new r.a("body"); | |
a.disableMutations || c.summary.initObserver(); | |
c._initCaptors(); | |
c._createSnapshot(); | |
c.cancelIfNotStarted = C(function() { | |
c.stop(!0, !1) | |
}, 3E4); | |
c.emit("ready"); | |
c.inited = !0; | |
c.startOptions && c.start(c.startOptions) | |
}) | |
}) | |
}, "init")["catch"](function(a) { | |
clearTimeout(c.cancelIfNotStarted); | |
c.waitingDocument = !1; | |
c.fatal("init-failed", a); | |
c.sendErrors = C(function() { | |
c.stop(!0, !1) | |
}, 3E4) | |
}) | |
}; | |
e.connectSlaveRecorder = function(a) {}; | |
e.start = function(c) { | |
var b = this; | |
void 0 === c && (c = {}); | |
this.errorLogger(function() { | |
if (b.waitingDocument)(function ya() { | |
b.waitingDocument ? C(ya, 50) : b.start(c) | |
})(); | |
else if (!1 === b.fatalError) | |
if (!b.inited) b.savePageSnapshot(), b.fatal("init-failed", Error("Unknown error")); | |
else { | |
if (ka && !V) { | |
clearTimeout(b.cancelIfNotStarted); | |
var f = (c || {}).forms; | |
b.options.recording = a.combine(N.recording, { | |
keysMode: void 0 === f || f ? "regular" : "explicit" | |
}); | |
b.start = a.noop(); | |
b.started = !0; | |
b.sendSnapshot().then(function(a) { | |
a && (b._sendInitialEvents(), b._sendPreCachedData(), b._timer.start()) | |
})["catch"](function(a) { | |
b.fatal("recording-interrupted", a); | |
b.start() | |
}); | |
b["continue"]() | |
} | |
} | |
else b.stop(!0, !0) | |
}, "start") | |
}; | |
e.stop = function(a, c) { | |
var b = this; | |
void 0 === a && (a = !1); | |
void 0 === c && (c = !0); | |
ka && !V && (!1 !== this.started && this.inited || a) && !0 !== this.stopped && (clearTimeout(this.cancelIfNotStarted), clearTimeout(this.sendErrors), this.captors.forEach(function(a) { | |
a && | |
a.hasOwnProperty("destroy") && a.destroy(b) | |
}), this.indexer && this.indexer.clear(), this.captors && this.captors.clear(), J.a.invokeAll(this), this.summary && this.summary.destroy(), this.keyCapture && this.keyCapture.destroy(), c ? (this._sendEOF(), !0 === this.fatalError && this._sendPreCachedData({ | |
force: !0 | |
}), this.emit("stop")) : a && this.emit("close"), this.started = !1, this.stopped = !0) | |
}; | |
e.fatal = function(c, b) { | |
void 0 === b && (b = null); | |
this.fatal = a.noop(); | |
b = b || { | |
message: "Unknown exception", | |
stack: "No stack provided" | |
}; | |
this.fatalError || | |
(this.fatalError = !0, R.error("FATAL [" + c + "]:", b), this.savePageSnapshot(), this.sendCustomEvent("fatalError", { | |
code: c, | |
exception: b.message, | |
stack: b.stack | |
}), this.stop(!0, !0)) | |
}; | |
e.setURLProxy = function(a) { | |
I.a.proxy = function() { | |
if ("string" === typeof a) return a; | |
if ("function" === typeof a) return a.call(this) | |
}(a) | |
}; | |
e.sendCustomEvent = function(a, c) { | |
var b = this._getEventObject(a, null, c); | |
this._saveChanges({ | |
events: [b] | |
}) | |
}; | |
e._initCaptors = function() { | |
var c = this; | |
this.keyCapture.addElementFilter(function(a) { | |
return "INPUT" === a.nodeName ? | |
"password" !== a.type && !1 === /ym-disable-keys/.test(a.className) : !0 | |
}); | |
var b = a.combine({}, y.a.captors, W ? y.a.iframeCaptors : null); | |
a.forin(b, function(a) { | |
if (!0 === b[a]) { | |
var f = O.a[a]; | |
c.errorLogger(function() { | |
return f.create(c) | |
}, "init-captor-" + a); | |
c.captors.set(a, f) | |
} | |
}); | |
E.a.on(this.window, "beforeunload", this.stop.bind(this)) | |
}; | |
e.throwError = function(a, c) { | |
void 0 === c && (c = "recorder"); | |
this.emit("error", { | |
error: a, | |
namespace: "recorder:" + c | |
}); | |
throw a; | |
}; | |
e.errorLogger = function(a, c) { | |
var b = this; | |
void 0 === c && (c = "recorder"); | |
try { | |
var f = | |
a(); | |
return f instanceof p ? f["catch"](function(a) { | |
b.throwError(a, c + ":async") | |
}) : f | |
} catch (ya) { | |
this.throwError(ya, c) | |
} | |
}; | |
e._blockUpcomingCaptor = function(a, c) { | |
var b = this; | |
void 0 === c && (c = Infinity); | |
a && (this._blockedCaptors = this._blockedCaptors || new h, this._blockedCaptors.add(a), Infinity > c && C(function() { | |
return b._releaseCaptor(a) | |
}, c)) | |
}; | |
e._releaseCaptor = function(a) { | |
a && this._blockedCaptors.has(a) && this._blockedCaptors["delete"](a) | |
}; | |
e._executeCaptor = function(a, c) { | |
a && "function" === typeof c && (this._blockedCaptors && | |
this._blockedCaptors.has(a) ? this._releaseCaptor(a) : c()) | |
}; | |
e._getEventObject = function(a, c, b, f) { | |
c = "number" === typeof c ? c : c ? this.findNode(c) || -1 : null; | |
return { | |
stamp: this._stampForType(a, f), | |
type: a, | |
target: c, | |
meta: b || null | |
} | |
}; | |
e._getMutationObject = function(a, c, b) { | |
void 0 === b && (b = 0); | |
return { | |
stamp: this._stampForType("mutation", c), | |
meta: { | |
changes: a, | |
index: b | |
} | |
} | |
}; | |
e._stampForType = function(a, c) { | |
var b = c || this.stamp; | |
return ca[a] = b + (b === ca[a] ? 1 : 0) | |
}; | |
e._getInitialScroll = function() { | |
var a = [], | |
c = this.document.body, | |
b = this._getScroll(c); | |
null != b && a.push(b); | |
a.concat(this._getScrolls(c.childNodes)); | |
return a | |
}; | |
e._getScrolls = function(c) { | |
var b = this; | |
return a.toArray(c).reduce(function(a, c) { | |
var f = b._getScroll(c); | |
null != f && a.push(f); | |
0 < c.childNodes.length && a.concat(b._getScrolls(c.childNodes)); | |
return a | |
}, []) | |
}; | |
e._getScroll = function(a) { | |
var c = a.scrollTop, | |
b = a.scrollLeft; | |
if (0 < c || 0 < b) return { | |
target: this.findNode(a), | |
scroll: [c, b] | |
} | |
}; | |
e._initMessenger = function() { | |
return p.resolve() | |
}; | |
e._initMasterMessenger = function() { | |
var b = this; | |
this.messenger.subscribe("iframe_register", | |
function(c, b) { | |
var f = a.offsets(c.sender); | |
b({ | |
success: !0, | |
offsets: { | |
top: f.top, | |
left: f.left | |
} | |
}) | |
}); | |
this.messenger.subscribe("iframe_data", function(f) { | |
var d = f.data; | |
f = f.sender; | |
var e = b.findNode(f); | |
if (null != e) { | |
var l = { | |
frameId: e | |
}; | |
d.page && (e = c()({}, d.page, l, { | |
stamp: b._stampForType("page") | |
}), b._request("/dump", { | |
page: e | |
})); | |
if (d.events) { | |
f = a.offsets(f, { | |
relative: !0 | |
}); | |
var h = f.left, | |
g = f.top; | |
f = d.events.map(function(a) { | |
/mouse/.test(a.type) && (a.meta.x = Math.round(a.meta.x + h), a.meta.y = Math.round(a.meta.y + g)); | |
return c()({}, a, l, { | |
stamp: b._stampForType(a.type) | |
}) | |
}); | |
b._publishActions(f) | |
} | |
d.mutations && (d = d.mutations.map(function(a) { | |
return c()({}, a, l, { | |
stamp: b._stampForType("mutation") | |
}) | |
}), b._publishMutations(d)) | |
} | |
}) | |
}; | |
e._initSlaveMessenger = function() {}; | |
e._publishActions = function() { | |
var a; | |
this._saveChanges({ | |
events: (a = []).concat.apply(a, arguments) | |
}) | |
}; | |
e._publishMutations = function() { | |
var a; | |
this._saveChanges({ | |
mutations: (a = []).concat.apply(a, arguments) | |
}) | |
}; | |
e._request = function(b, f, d) { | |
void 0 === f && (f = {}); | |
void 0 === d && (d = !1); | |
this._EOF_SENT && !0 !== | |
d || (!0 === this.started || !0 === d ? (f = a.combine({ | |
_v: y.a["package"].version | |
}, c()({}, f)), this.sender.send({ | |
url: b, | |
data: c()({}, f) | |
})) : this.precache.push([b, f])) | |
}; | |
e._saveChanges = function(a) { | |
this._request("/dump", a); | |
!this._EOF_SENT && this.started && (this.dataSent >= this.options.maxSize || this.hitDuration >= this.options.maxDuration) && this.stop() | |
}; | |
e.sendSnapshot = function() { | |
var a = this; | |
return this.snapshot.get({ | |
onSuccess: function(c) { | |
a.savePageSnapshot(c); | |
return !0 | |
}, | |
onFail: function() { | |
return !1 | |
} | |
}) | |
}; | |
e._createSnapshot = function() { | |
var a = | |
this, | |
c = p.resolve().then(function() { | |
return { | |
content: a.summary.html | |
} | |
})["catch"](function(a) { | |
return { | |
error: a | |
} | |
}).then(function(a) { | |
return { | |
content: a.content, | |
error: a.error | |
} | |
}); | |
this.snapshot = { | |
get: function(b) { | |
var f = b.onSuccess, | |
d = b.onFail; | |
return c.then(function(c) { | |
var b = c.error; | |
c = c.content; | |
b ? (c = d.call(a, c, b), a.fatal("invalid-snapshot", b)) : c = f.call(a, c); | |
return c | |
}) | |
} | |
} | |
}; | |
e.savePageSnapshot = function(a) { | |
if (this.indexer && !this.indexer.disabled) return a = c()({ | |
content: a, | |
tabId: Object(P.a)(), | |
recordStamp: (new Date).getTime() | |
}, | |
this.page), this._saveChanges({ | |
page: a | |
}) | |
}; | |
e._sendInitialEvents = function() { | |
var a = this, | |
c = [], | |
b = function() { | |
var c = a.captors.get("resize"); | |
return c && c.getValue.call(a) | |
}(), | |
f = this.viewport.scrollingElement, | |
d = this._getInitialScroll().map(function(c) { | |
var b = c.scroll, | |
d = b[0]; | |
b = b[1]; | |
c = function(a) { | |
return a === this.document || a === this.window ? f : a | |
}(a.indexer.find(c.target)); | |
return a._getEventObject("scroll", c, { | |
x: b, | |
y: d, | |
page: c === f | |
}) | |
}); | |
b && c.push(b); | |
c.push.apply(c, d); | |
this._saveChanges({ | |
events: c | |
}) | |
}; | |
e._sendPreCachedData = function(a) { | |
a = | |
(void 0 === a ? {} : a).force; | |
a = void 0 === a ? !1 : a; | |
if (this.precache.length) | |
for (var c; null != (c = this.precache.shift());) this._request(c[0], c[1], a) | |
}; | |
e._connectToParent = function() { | |
this._sendMessage("connect", { | |
id: this._identifier | |
}) | |
}; | |
e._sendMessage = function(a, c) { | |
(W ? this.window.top : this.window).postMessage({ | |
type: a, | |
data: c | |
}, "*") | |
}; | |
e._universalHandler = function(a, c) { | |
var b = this, | |
f = (void 0 === c ? {} : c).extra, | |
d = void 0 === f ? [] : f; | |
return function() { | |
for (var c = arguments.length, f = Array(c), e = 0; e < c; e++) f[e] = arguments[e]; | |
b.errorLogger(function() { | |
b.paused || | |
a.apply(b, f.concat(d)) | |
}, "universal-handler") | |
} | |
}; | |
e._createInstance = function() { | |
for (var a = arguments.length, c = Array(a), b = 0; b < a; b++) c[b] = arguments[b]; | |
return f()(this.constructor, c) | |
}; | |
l()(d, [{ | |
key: "window", | |
get: function() { | |
return this._context.window | |
} | |
}, { | |
key: "document", | |
get: function() { | |
return this._context.document | |
} | |
}, { | |
key: "bodyNode", | |
get: function() { | |
return this.__bodyNode || (this.__bodyNode = this.document.body) | |
} | |
}, { | |
key: "fpsDelay", | |
get: function() { | |
return 1E3 / this.fps | |
} | |
}, { | |
key: "doctype", | |
get: function() { | |
var a = this.document.doctype || {}, | |
c = a.publicId, | |
b = a.systemId; | |
return "\x3c!DOCTYPE " + [a.name || "html", c ? ' PUBLIC "' + c + '"' : "", !c && b ? " SYSTEM" : "", b ? ' "' + b + '"' : ""].join("") + "\x3e" | |
} | |
}, { | |
key: "rootNode", | |
get: function() { | |
return this.__rootNode || (this.__rootNode = this.document.documentElement) | |
} | |
}, { | |
key: "stamp", | |
get: function() { | |
return this._timer ? this._timer.stamp() : 0 | |
} | |
}, { | |
key: "eventID", | |
get: function() { | |
return this._eventID ? this._eventID += 1 : this._eventID = 1 | |
} | |
}, { | |
key: "page", | |
get: function() { | |
var a = this.viewport ? this.viewport.getSize() : { | |
width: 0, | |
height: 0 | |
}, | |
c = M.DOMUtils.base(), | |
b = !!q.querySelector("base[href]"); | |
return { | |
meta: { | |
base: c, | |
hasBase: b, | |
viewport: a, | |
title: q.title, | |
doctype: this.doctype, | |
address: H.href, | |
ua: navigator.userAgent, | |
referrer: q.referrer, | |
adblocking: za.checkSync(), | |
screen: { | |
width: da.width, | |
height: da.height | |
}, | |
location: { | |
host: H.host, | |
protocol: H.protocol, | |
path: H.pathname | |
} | |
} | |
} | |
} | |
}]); | |
return d | |
}(B.a), | |
Y = { | |
IS_INCOGNITO: T.IS_INCOGNITO, | |
IS_MOBILE_DEVICE: T.IS_MOBILE_DEVICE, | |
DO_NOT_TRACK: T.DO_NOT_TRACK | |
}; | |
a.forin(Y, function(a) { | |
var c = { | |
value: Y[a] | |
}; | |
Object.defineProperty(X, a, c); | |
Object.defineProperty(X.prototype, | |
a, c) | |
}) | |
}).call(this, d(4)["default"], d(10)["default"], d(23).Promise, d(7)["default"]) | |
}, | |
function(a, b, d) { | |
b = d(22)["default"]; | |
a.exports = d(67)() ? b : d(68) | |
}, | |
function(a, b, d) { | |
(function(b) { | |
var d = { | |
object: !0, | |
symbol: !0 | |
}; | |
a.exports = function() { | |
if ("function" !== typeof b) return !1; | |
var a = b("test symbol"); | |
try { | |
String(a) | |
} catch (h) { | |
return !1 | |
} | |
return d[typeof b.iterator] && d[typeof b.toPrimitive] && d[typeof b.toStringTag] ? !0 : !1 | |
} | |
}).call(this, d(22)["default"]) | |
}, | |
function(a, b, d) { | |
(function(b) { | |
var e = d(69), | |
p = d(83), | |
h = Object.create, | |
m = Object.defineProperties, | |
f = Object.defineProperty, | |
c = Object.prototype, | |
l, t = h(null); | |
if ("function" === typeof b) { | |
var k = b; | |
try { | |
String(k()); | |
var n = !0 | |
} catch (O) {} | |
} | |
var y = function() { | |
var a = h(null); | |
return function(b) { | |
for (var d = 0, l, h; a[b + (d || "")];) ++d; | |
b += d || ""; | |
a[b] = !0; | |
l = "@@" + b; | |
f(c, l, e.gs(null, function(a) { | |
h || (h = !0, f(this, l, e(a)), h = !1) | |
})); | |
return l | |
} | |
}(); | |
var q = function(a) { | |
if (this instanceof q) throw new TypeError("Symbol is not a constructor"); | |
return l(a) | |
}; | |
a.exports = l = function ia(a) { | |
if (this instanceof ia) throw new TypeError("Symbol is not a constructor"); | |
if (n) return k(a); | |
var c = h(q.prototype); | |
a = a === w ? "" : String(a); | |
return m(c, { | |
__description__: e("", a), | |
__name__: e("", y(a)) | |
}) | |
}; | |
m(l, { | |
"for": e(function(a) { | |
return t[a] ? t[a] : t[a] = l(String(a)) | |
}), | |
keyFor: e(function(a) { | |
var c; | |
p(a); | |
for (c in t) | |
if (t[c] === a) return c | |
}), | |
hasInstance: e("", k && k.hasInstance || l("hasInstance")), | |
isConcatSpreadable: e("", k && k.isConcatSpreadable || l("isConcatSpreadable")), | |
iterator: e("", k && k.iterator || l("iterator")), | |
match: e("", k && k.match || l("match")), | |
replace: e("", k && k.replace || l("replace")), | |
search: e("", | |
k && k.search || l("search")), | |
species: e("", k && k.species || l("species")), | |
split: e("", k && k.split || l("split")), | |
toPrimitive: e("", k && k.toPrimitive || l("toPrimitive")), | |
toStringTag: e("", k && k.toStringTag || l("toStringTag")), | |
unscopables: e("", k && k.unscopables || l("unscopables")) | |
}); | |
m(q.prototype, { | |
constructor: e(l), | |
toString: e("", function() { | |
return this.__name__ | |
}) | |
}); | |
m(l.prototype, { | |
toString: e(function() { | |
return "Symbol (" + p(this).__description__ + ")" | |
}), | |
valueOf: e(function() { | |
return p(this) | |
}) | |
}); | |
f(l.prototype, l.toPrimitive, e("", | |
function() { | |
var a = p(this); | |
return "symbol" === typeof a ? a : a.toString() | |
})); | |
f(l.prototype, l.toStringTag, e("c", "Symbol")); | |
f(q.prototype, l.toStringTag, e("c", l.prototype[l.toStringTag])); | |
f(q.prototype, l.toPrimitive, e("c", l.prototype[l.toPrimitive])) | |
}).call(this, d(22)["default"]) | |
}, | |
function(a, b, d) { | |
var e = d(70), | |
g = d(78), | |
p = d(79), | |
h = d(80); | |
(a.exports = function(a, b) { | |
var c; | |
if (2 > arguments.length || "string" !== typeof a) { | |
var f = b; | |
b = a; | |
a = null | |
} else f = arguments[2]; | |
if (null == a) { | |
var d = c = !0; | |
var m = !1 | |
} else d = h.call(a, "c"), m = h.call(a, | |
"e"), c = h.call(a, "w"); | |
d = { | |
value: b, | |
configurable: d, | |
enumerable: m, | |
writable: c | |
}; | |
return f ? e(g(f), d) : d | |
}).gs = function(a, b, c, d) { | |
"string" !== typeof a && (d = c, c = b, b = a, a = null); | |
null == b ? b = w : p(b) ? null == c ? c = w : p(c) || (d = c, c = w) : (d = b, b = c = w); | |
if (null == a) { | |
var f = !0; | |
a = !1 | |
} else f = h.call(a, "c"), a = h.call(a, "e"); | |
b = { | |
get: b, | |
set: c, | |
configurable: f, | |
enumerable: a | |
}; | |
return d ? e(g(d), b) : b | |
} | |
}, | |
function(a, b, d) { | |
a.exports = d(71)() ? Object.assign : d(72) | |
}, | |
function(a, b, d) { | |
a.exports = function() { | |
var a = Object.assign; | |
if ("function" !== typeof a) return !1; | |
var b = { | |
foo: "raz" | |
}; | |
a(b, { | |
bar: "dwa" | |
}, { | |
trzy: "trzy" | |
}); | |
return "razdwatrzy" === b.foo + b.bar + b.trzy | |
} | |
}, | |
function(a, b, d) { | |
var e = d(73), | |
g = d(77), | |
p = Math.max; | |
a.exports = function(a, b) { | |
var f, c, d = p(arguments.length, 2); | |
a = Object(g(a)); | |
var h = function(c) { | |
try { | |
a[c] = b[c] | |
} catch (D) { | |
f || (f = D) | |
} | |
}; | |
for (c = 1; c < d; ++c) b = arguments[c], e(b).forEach(h); | |
if (f !== w) throw f; | |
return a | |
} | |
}, | |
function(a, b, d) { | |
a.exports = d(74)() ? Object.keys : d(75) | |
}, | |
function(a, b, d) { | |
a.exports = function() { | |
try { | |
return Object.keys("primitive"), !0 | |
} catch (e) { | |
return !1 | |
} | |
} | |
}, | |
function(a, b, d) { | |
var e = d(31), | |
g = Object.keys; | |
a.exports = function(a) { | |
return g(e(a) ? Object(a) : a) | |
} | |
}, | |
function(a, b, d) { | |
a.exports = function() {} | |
}, | |
function(a, b, d) { | |
var e = d(31); | |
a.exports = function(a) { | |
if (!e(a)) throw new TypeError("Cannot use null or undefined"); | |
return a | |
} | |
}, | |
function(a, b, d) { | |
var e = d(31), | |
g = Array.prototype.forEach, | |
p = Object.create; | |
a.exports = function(a) { | |
var b = p(null); | |
g.call(arguments, function(a) { | |
if (e(a)) { | |
a = Object(a); | |
for (var c in a) b[c] = a[c] | |
} | |
}); | |
return b | |
} | |
}, | |
function(a, b, d) { | |
a.exports = function(a) { | |
return "function" === typeof a | |
} | |
}, | |
function(a, b, d) { | |
a.exports = | |
d(81)() ? String.prototype.contains : d(82) | |
}, | |
function(a, b, d) { | |
a.exports = function() { | |
return "function" !== typeof "razdwatrzy".contains ? !1 : !0 === "razdwatrzy".contains("dwa") && !1 === "razdwatrzy".contains("foo") | |
} | |
}, | |
function(a, b, d) { | |
var e = String.prototype.indexOf; | |
a.exports = function(a, b) { | |
return -1 < e.call(this, a, b) | |
} | |
}, | |
function(a, b, d) { | |
var e = d(84); | |
a.exports = function(a) { | |
if (!e(a)) throw new TypeError(a + " is not a symbol"); | |
return a | |
} | |
}, | |
function(a, b, d) { | |
a.exports = function(a) { | |
return a ? "symbol" === typeof a ? !0 : a.constructor && "Symbol" === | |
a.constructor.name ? "Symbol" === a[a.constructor.toStringTag] : !1 : !1 | |
} | |
}, | |
function(a, b, d) { | |
d.r(b); | |
d.d(b, "MapUtils", function() { | |
return e | |
}); | |
var e = { | |
setIfNotExists: function(a, b, d) { | |
!1 === a.has(b) && a.set(b, this.invoke(d)) | |
}, | |
getOrSet: function(a, b, d) { | |
if (a.has(b)) return a.get(b); | |
d = this.invoke(d); | |
a.set(b, d); | |
return d | |
}, | |
getAndUpdate: function(a, b, d) { | |
var e = d = this.invoke(d); | |
a.has(b) && (e = a.get(b)); | |
a.set(b, d); | |
return e | |
} | |
} | |
}, | |
function(a, b, d) { | |
(function(b) { | |
(function(b, d) { | |
a.exports = d() | |
})(this, function() { | |
function a(a) { | |
return "function" === | |
typeof a | |
} | |
function d() { | |
return function() { | |
return b.nextTick(l) | |
} | |
} | |
function e() { | |
return "undefined" !== typeof P ? function() { | |
P(l) | |
} : c() | |
} | |
function m() { | |
var a = 0, | |
c = new U(l), | |
b = q.createTextNode(""); | |
c.observe(b, { | |
characterData: !0 | |
}); | |
return function() { | |
b.data = a = ++a % 2 | |
} | |
} | |
function f() { | |
var a = new MessageChannel; | |
a.port1.onmessage = l; | |
return function() { | |
return a.port2.postMessage(0) | |
} | |
} | |
function c() { | |
return function() { | |
return C(l, 1) | |
} | |
} | |
function l() { | |
for (var a = 0; a < L; a += 2)(0, R[a])(R[a + 1]), R[a] = w, R[a + 1] = w; | |
L = 0 | |
} | |
function t() { | |
try { | |
var a = Function("return this")().require("vertx"); | |
P = a.runOnLoop || a.runOnContext; | |
return e() | |
} catch (xa) { | |
return c() | |
} | |
} | |
function k(a, c) { | |
var b = this, | |
f = new this.constructor(y); | |
f[N] === w && J(f); | |
var d = b._state; | |
if (d) { | |
var e = arguments[d - 1]; | |
ba(function() { | |
return G(d, f, e, b._result) | |
}) | |
} else B(b, f, a, c); | |
return f | |
} | |
function D(a) { | |
if (a && "object" === typeof a && a.constructor === this) return a; | |
var c = new this(y); | |
r(c, a); | |
return c | |
} | |
function y() {} | |
function aa(a) { | |
try { | |
return a.then | |
} catch (xa) { | |
return X.error = xa, X | |
} | |
} | |
function O(a, c, b, f) { | |
try { | |
a.call(c, b, f) | |
} catch (la) { | |
return la | |
} | |
} | |
function A(a, c, b) { | |
ba(function(a) { | |
var f = !1, | |
d = O(b, c, function(b) { | |
f || (f = !0, c !== b ? r(a, b) : u(a, b)) | |
}, function(c) { | |
f || (f = !0, F(a, c)) | |
}, "Settle: " + (a._label || " unknown promise")); | |
!f && d && (f = !0, F(a, d)) | |
}, a) | |
} | |
function ia(a, c) { | |
c._state === V ? u(a, c._result) : c._state === W ? F(a, c._result) : B(c, w, function(c) { | |
return r(a, c) | |
}, function(c) { | |
return F(a, c) | |
}) | |
} | |
function v(c, b, f) { | |
b.constructor === c.constructor && f === k && b.constructor.resolve === D ? ia(c, b) : f === X ? (F(c, X.error), X.error = null) : f === w ? u(c, b) : a(f) ? A(c, b, f) : u(c, b) | |
} | |
function r(a, c) { | |
if (a === c) F(a, new TypeError("You cannot resolve a promise with itself")); | |
else { | |
var b = typeof c; | |
null === c || "object" !== b && "function" !== b ? u(a, c) : v(a, c, aa(c)) | |
} | |
} | |
function x(a) { | |
a._onerror && a._onerror(a._result); | |
E(a) | |
} | |
function u(a, c) { | |
a._state === ka && (a._result = c, a._state = V, 0 !== a._subscribers.length && ba(E, a)) | |
} | |
function F(a, c) { | |
a._state === ka && (a._state = W, a._result = c, ba(x, a)) | |
} | |
function B(a, c, b, f) { | |
var d = a._subscribers, | |
e = d.length; | |
a._onerror = null; | |
d[e] = c; | |
d[e + V] = b; | |
d[e + W] = f; | |
0 === e && a._state && ba(E, a) | |
} | |
function E(a) { | |
var c = a._subscribers, | |
b = a._state; | |
if (0 !== c.length) { | |
for (var f, d, e = a._result, l = 0; l < c.length; l += | |
3) f = c[l], d = c[l + b], f ? G(b, f, d, e) : d(e); | |
a._subscribers.length = 0 | |
} | |
} | |
function G(c, b, f, d) { | |
var e = a(f), | |
l = void 0, | |
h = void 0, | |
g = void 0, | |
m = void 0; | |
if (e) { | |
try { | |
l = f(d) | |
} catch (Aa) { | |
X.error = Aa, l = X | |
} | |
l === X ? (m = !0, h = l.error, l.error = null) : g = !0; | |
if (b === l) { | |
F(b, new TypeError("A promises callback cannot return that same promise.")); | |
return | |
} | |
} else l = d, g = !0; | |
b._state === ka && (e && g ? r(b, l) : m ? F(b, h) : c === V ? u(b, l) : c === W && F(b, l)) | |
} | |
function K(a, c) { | |
try { | |
c(function(c) { | |
r(a, c) | |
}, function(c) { | |
F(a, c) | |
}) | |
} catch (Q) { | |
F(a, Q) | |
} | |
} | |
function J(a) { | |
a[N] = Y++; | |
a._state = w; | |
a._result = | |
w; | |
a._subscribers = [] | |
} | |
var H = void 0, | |
I = H = Array.isArray ? Array.isArray : function(a) { | |
return "[object Array]" === Object.prototype.toString.call(a) | |
}, | |
L = 0, | |
P = void 0, | |
M = void 0, | |
ba = function(a, c) { | |
R[L] = a; | |
R[L + 1] = c; | |
L += 2; | |
2 === L && (M ? M(l) : ea()) | |
}, | |
T = (H = "undefined" !== typeof n ? n : w) || {}, | |
U = T.MutationObserver || T.WebKitMutationObserver; | |
T = "undefined" === typeof self && "undefined" !== typeof b && "[object process]" === {}.toString.call(b); | |
var ca = "undefined" !== typeof Uint8ClampedArray && "undefined" !== typeof importScripts && "undefined" !== typeof MessageChannel, | |
R = Array(1E3), | |
ea = void 0; | |
ea = T ? d() : U ? m() : ca ? f() : H === w ? t() : c(); | |
var N = Math.random().toString(36).substring(2), | |
ka = void 0, | |
V = 1, | |
W = 2, | |
X = { | |
error: null | |
}, | |
Y = 0, | |
da = function() { | |
function a(a, c) { | |
this._instanceConstructor = a; | |
this.promise = new a(y); | |
this.promise[N] || J(this.promise); | |
I(c) ? (this._remaining = this.length = c.length, this._result = Array(this.length), 0 === this.length ? u(this.promise, this._result) : (this.length = this.length || 0, this._enumerate(c), 0 === this._remaining && u(this.promise, this._result))) : F(this.promise, Error("Array Methods must be provided an Array")) | |
} | |
a.prototype._enumerate = function(a) { | |
for (var c = 0; this._state === ka && c < a.length; c++) this._eachEntry(a[c], c) | |
}; | |
a.prototype._eachEntry = function(a, c) { | |
var b = this._instanceConstructor, | |
f = b.resolve; | |
f === D ? (f = aa(a), f === k && a._state !== ka ? this._settledAt(a._state, c, a._result) : "function" !== typeof f ? (this._remaining--, this._result[c] = a) : b === S ? (b = new b(y), v(b, a, f), this._willSettleAt(b, c)) : this._willSettleAt(new b(function(c) { | |
return c(a) | |
}), c)) : this._willSettleAt(f(a), c) | |
}; | |
a.prototype._settledAt = function(a, c, b) { | |
var f = this.promise; | |
f._state === ka && (this._remaining--, a === W ? F(f, b) : this._result[c] = b); | |
0 === this._remaining && u(f, this._result) | |
}; | |
a.prototype._willSettleAt = function(a, c) { | |
var b = this; | |
B(a, w, function(a) { | |
return b._settledAt(V, c, a) | |
}, function(a) { | |
return b._settledAt(W, c, a) | |
}) | |
}; | |
return a | |
}(), | |
S = function() { | |
function c(a) { | |
this[N] = Y++; | |
this._result = this._state = w; | |
this._subscribers = []; | |
if (y !== a) { | |
if ("function" !== typeof a) throw new TypeError("You must pass a resolver function as the first argument to the promise constructor"); | |
if (this instanceof c) K(this, a); | |
else throw new TypeError("Failed to construct 'Promise': Please use the 'new' operator, this object constructor cannot be called as a function."); | |
} | |
} | |
c.prototype["catch"] = function(a) { | |
return this.then(null, a) | |
}; | |
c.prototype["finally"] = function(c) { | |
var b = this.constructor; | |
return a(c) ? this.then(function(a) { | |
return b.resolve(c()).then(function() { | |
return a | |
}) | |
}, function(a) { | |
return b.resolve(c()).then(function() { | |
throw a; | |
}) | |
}) : this.then(c, c) | |
}; | |
return c | |
}(); | |
S.prototype.then = k; | |
S.all = function(a) { | |
return (new da(this, | |
a)).promise | |
}; | |
S.race = function(a) { | |
var c = this; | |
return I(a) ? new c(function(b, f) { | |
for (var d = a.length, e = 0; e < d; e++) c.resolve(a[e]).then(b, f) | |
}) : new c(function(a, c) { | |
return c(new TypeError("You must pass an array to race.")) | |
}) | |
}; | |
S.resolve = D; | |
S.reject = function(a) { | |
var c = new this(y); | |
F(c, a); | |
return c | |
}; | |
S._setScheduler = function(a) { | |
M = a | |
}; | |
S._setAsap = function(a) { | |
ba = a | |
}; | |
S._asap = ba; | |
S.polyfill = function() { | |
var a = void 0; | |
if ("undefined" !== typeof global) a = global; | |
else if ("undefined" !== typeof self) a = self; | |
else try { | |
a = Function("return this")() | |
} catch (fa) { | |
throw Error("polyfill failed because global object is unavailable in this environment"); | |
} | |
var c = a.Promise; | |
if (c) { | |
var b = null; | |
try { | |
b = Object.prototype.toString.call(c.resolve()) | |
} catch (fa) {} | |
if ("[object Promise]" === b && !c.cast) return | |
} | |
a.Promise = S | |
}; | |
return S.Promise = S | |
}) | |
}).call(this, d(37)) | |
}, | |
function(a, b, d) { | |
d.r(b); | |
(function(a) { | |
d.d(b, "MathUtils", function() { | |
return e | |
}); | |
var e = { | |
toChunks: function(b, d) { | |
var e = b.slice(0), | |
f = e.length, | |
c = f === d ? Math.round : Math.floor, | |
l = 0; | |
return e.reduce(function(b, h, g) { | |
var m = c(d / (f / g)); | |
0 < g && 1 < m - l && a.warn("Invalid index " + m + ": " + c(d / (f / (g - 1))) + " \x3c\x3d\x3e " + c(d / (f / g)), [e.length, | |
g, d | |
], [e.length / g], [d / (e.length / g)]); | |
l = m; | |
b[m] = b[m] || []; | |
b[m].push(h); | |
return b | |
}, []) | |
}, | |
split: function(a, b) { | |
return a.reduce(function(a, f, c) { | |
c = Math.floor(c / b); | |
a[c] = (a[c] || []).concat(f); | |
return a | |
}, []) | |
}, | |
avg: function(a) { | |
return a.length ? a.reduce(function(a, b) { | |
return a + b | |
}) / a.length : NaN | |
}, | |
max: function(a) { | |
return a.length ? a.reduce(function(a, b) { | |
return a > b ? a : b | |
}) : NaN | |
}, | |
random: function(a, b) { | |
void 0 === a && (a = 0); | |
return Math.round(Math.random() * b + a) | |
} | |
} | |
}).call(this, d(15)["default"]) | |
}, | |
function(a, b) { | |
function d(b, g) { | |
a.exports = | |
d = Object.setPrototypeOf || function(a, b) { | |
a.__proto__ = b; | |
return a | |
}; | |
return d(b, g) | |
} | |
a.exports = d | |
} | |
])["default"] | |
} catch (a) { | |
La = { | |
error: a, | |
scope: "recoder" | |
} | |
} | |
var k = { | |
isNativeFunction: function(a, b) { | |
return a ? (new RegExp("function\\s*" + b + "\\s*\\(\\)\\s*\\{\\s*\\[native[\\s-]code\\]\\s*\\}", "i")).test(a.toString()) : !1 | |
}, | |
mixin: function(a) { | |
var b, d; | |
for (b = 1; b < arguments.length; b++) | |
if (arguments[b]) { | |
for (d in arguments[b]) arguments[b].hasOwnProperty(d) && (a[d] = arguments[b][d]); | |
arguments[b].hasOwnProperty("toString") && (a.toString = | |
arguments[b].toString) | |
} return a | |
} | |
}, | |
I = function(a) { | |
a = a || {}; | |
k.mixin(this, a); | |
this._initComponent() | |
}; | |
I.prototype._initComponent = function() {}; | |
I.inherit = function(a) { | |
a = a || {}; | |
var b = "function" == typeof this ? this : Object; | |
a.hasOwnProperty("constructor") || (a.constructor = function() { | |
b.apply(this, arguments) | |
}); | |
var d = function() {}; | |
d.prototype = b.prototype; | |
a.constructor.prototype = new d; | |
k.mixin(a.constructor.prototype, a); | |
a.constructor.prototype.constructor = a.constructor; | |
a.constructor.superclass = b.prototype; | |
a.constructor.inherit = | |
I.inherit; | |
return a.constructor | |
}; | |
k.forEachKey = function(a, b, d) { | |
for (var e in a) a.hasOwnProperty(e) && b.call(d, e, a[e], a) | |
}; | |
k.isEqual = function(a, b) { | |
var d = !0; | |
k.forEachKey(a, function(a, g) { | |
b.hasOwnProperty(a) && b[a] === g || (d = !1) | |
}); | |
if (!d) return d; | |
k.forEachKey(b, function(b, g) { | |
a.hasOwnProperty(b) && a[b] === g || (d = !1) | |
}); | |
return d | |
}; | |
k.getNativeFunction = function(a, b) { | |
var d; | |
b = b || n; | |
return (d = b.constructor && b.constructor.prototype && b.constructor.prototype[a] || b[a]) && "apply" in d ? function() { | |
return d.apply(b, arguments) | |
} : function() {} | |
}; | |
k.setTimeout = function(a, b, d) { | |
return k.getNativeFunction("setTimeout")(E(a, d || "setTimeout"), b) | |
}; | |
var r = I.inherit({ | |
_initComponent: function() { | |
r.superclass._initComponent.apply(this, arguments); | |
this._listeners = [] | |
}, | |
on: function(a, b, d, e, g) { | |
g = r._getOpts(g); | |
b = b.split(","); | |
var p = b.length, | |
h = this._listeners, | |
m; | |
for (m = 0; m < p; m++) { | |
var f = b[m]; | |
var c = E(function(a) { | |
d.call(e || this, a || n.event) | |
}, "on" + (f || "") + (g.name || "")); | |
h[h.length] = [a, f, d, e, g, c]; | |
a.addEventListener ? a.addEventListener(f, c, r._prepOpts(g)) : a.attachEvent && a.attachEvent("on" + | |
f, c) | |
} | |
}, | |
un: function(a, b, d, e, g) { | |
g = r._getOpts(g); | |
var p = this._listeners, | |
h = p.length, | |
m; | |
for (m = 0; m < h; m++) { | |
var f = p[m]; | |
if (f[0] == a && f[1] == b && f[2] == d && f[3] == e && k.isEqual(f[4], g)) { | |
p.splice(m, 1); | |
this._removeListener(a, b, f[5], g); | |
break | |
} | |
} | |
}, | |
unAll: function() { | |
var a = this._listeners, | |
b = a.length, | |
d; | |
for (d = 0; d < b; d++) { | |
var e = a[d]; | |
this._removeListener(e[0], e[1], e[5], e[4]) | |
} | |
a.length = 0 | |
}, | |
_removeListener: function(a, b, d, e) { | |
a.removeEventListener ? a.removeEventListener(b, d, r._prepOpts(e)) : a.detachEvent && a.detachEvent("on" + b, d) | |
} | |
}); | |
r.supportsPassive = | |
function() { | |
if (r._supportsPassive !== w) return r._supportsPassive; | |
r._supportsPassive = !1; | |
try { | |
var a = Object.defineProperty({}, "passive", { | |
get: function() { | |
r._supportsPassive = !0 | |
} | |
}); | |
n.addEventListener("test", null, a) | |
} catch (b) {} | |
return r._supportsPassive | |
}; | |
r._getOpts = function(a) { | |
return k.mixin({ | |
capture: !0, | |
passive: !0 | |
}, a || {}) | |
}; | |
r._prepOpts = function(a) { | |
return r.supportsPassive() ? a : !!a.capture | |
}; | |
r.on = function() { | |
r._instance || (r._instance = new r); | |
r._instance.on.apply(r._instance, arguments) | |
}; | |
r.un = function() { | |
r._instance && | |
r._instance.un.apply(r._instance, arguments) | |
}; | |
var x = { | |
UNLOAD_MS: 0, | |
isPerfomance: n.performance && n.performance.timing && n.performance.timing.navigationStart && n.performance.now, | |
getMs: function() { | |
return 0 < this.UNLOAD_MS ? this.UNLOAD_MS : this.isPerfomance ? Math.round(n.performance.timing.navigationStart + n.performance.now()) : x.oldMs() | |
}, | |
getFormStart: function() { | |
return this.isPerfomance ? Math.round(n.performance.now()) : this.getMs() - this.initTime | |
} | |
}; | |
x.oldMs = Date.now ? Date.now : function() { | |
return (new Date).getTime() | |
}; | |
x.initTime = | |
x.getMs(); | |
r.on(n, "beforeunload,unload", function() { | |
0 === x.UNLOAD_MS && (x.UNLOAD_MS = x.getMs()) | |
}); | |
k.pad = function(a) { | |
return (10 > a ? "0" : "") + a | |
}; | |
x.getTimestamp = function() { | |
var a = new Date; | |
a = [a.getFullYear(), a.getMonth() + 1, a.getDate(), a.getHours(), a.getMinutes(), a.getSeconds()]; | |
var b = "", | |
d; | |
for (d = 0; d < a.length; d++) b += k.pad(a[d]); | |
return b | |
}; | |
x.getTimezone = function() { | |
return -(new Date).getTimezoneOffset() | |
}; | |
x.getMinutes = function() { | |
return Math.floor(this.getMs() / 1E3 / 60) | |
}; | |
x.getSeconds = function() { | |
return Math.round(this.getMs() / | |
1E3) | |
}; | |
x.isPerfomance || (x.deltaTime = 0, x.lastNowTime = 0, x.correctTime = 0, x.timeCorrector = function(a) { | |
x.correctTime = x.getMs(); | |
a && x.correctTime < x.lastTime && (x.deltaTime += a - x.correctTime + 20); | |
k.setTimeout(function() { | |
x.timeCorrector(x.correctTime) | |
}, 20, "timeCorrector") | |
}); | |
x.initCorrector = function() { | |
x.isPerfomance || x.timeCorrector(0) | |
}; | |
x.nowTime = function() { | |
if (this.isPerfomance) return this.getMs(); | |
var a = this.getMs() + x.deltaTime; | |
a < x.lastNowTime && (a += x.lastNowTime + 10); | |
return x.lastNowTime = a | |
}; | |
x.nowEventTime = function() { | |
return Math.round((x.nowTime() - | |
x.initTime) / 50) | |
}; | |
k.toString = function(a) { | |
return Object.prototype.toString.call(a) | |
}; | |
k.isFunction = function(a) { | |
return "function" === typeof a | |
}; | |
k.isArray = function(a) { | |
return "function" === k.isFunction(Array.isArray) ? Array.isArray(a) : "[object Array]" === k.toString(a) | |
}; | |
k.mergeArrays = function(a) { | |
var b, d, e = arguments.length; | |
for (b = 1; b < e; b++) { | |
var g = arguments[b]; | |
if (k.isArray(g) || g && "[object Arguments]" === g.toString()) | |
for (d = 0; d < g.length; d++) a[a.length] = g[d] | |
} | |
return a | |
}; | |
k.defer = function(a, b, d, e, g) { | |
return k.setTimeout(function() { | |
a.apply(d, | |
e || []) | |
}, b, g) | |
}; | |
k.throttle = function(a, b, d, e) { | |
var g, p, h; | |
return function() { | |
p = arguments; | |
h = this; | |
g || function() { | |
g = null; | |
p && (a.apply(d || h, p), p = null, g = k.setTimeout(arguments.callee, b, e)) | |
}() | |
} | |
}; | |
var va = I.inherit({ | |
storage: null, | |
storageKey: "dataBuffer", | |
store: { | |
_keys: [], | |
_values: [], | |
get: function(a) { | |
a = k.arrayIndexOf(this._keys, a); | |
return -1 == a ? null : this._values[a] | |
}, | |
set: function(a, b) { | |
this._keys.push(a); | |
this._values.push(b) | |
}, | |
pop: function(a) { | |
a = k.arrayIndexOf(this._keys, a); | |
if (-1 == a) return null; | |
var b = this._values[a]; | |
this._keys.splice(a, | |
1); | |
this._values.splice(a, 1); | |
return b | |
} | |
}, | |
maxBufferSize: 255, | |
flushTimeout: 1E4, | |
startBufferTime: 0, | |
active: !0, | |
meta: null, | |
onFlush: function() {}, | |
onFlushCtx: null, | |
bufferExpireTime: 864E5, | |
_initComponent: function() { | |
var a; | |
va.superclass._initComponent.apply(this, arguments); | |
this.wrappers = []; | |
this._data = []; | |
this._packetNumber = 0; | |
this._flushTID = null; | |
this._saveToStorageThrottled = k.throttle(this._saveToStorage, 300, this, "DataBuffer._saveToStorage"); | |
this.storage && (a = this.storage.get(this.storageKey)) && a.data && a.meta && a.time && | |
a.time + this.bufferExpireTime > +x.getMs() && this.onFlush.call(this.onFlushCtx || this, this.dataFromStorage(a.data), a.meta, a.pnum); | |
this.clear() | |
}, | |
setWVType: function(a) { | |
this.wvType = a; | |
this._sender.version = a | |
}, | |
getFlushSize: function() { | |
return this._data.length | |
}, | |
mergeData: function(a, b) { | |
k.mergeArrays(a, b) | |
}, | |
append: function(a, b) { | |
this.mergeData(this._data, a); | |
this._saveToStorageThrottled(); | |
this.active && ((b || this.getFlushSize() >= this.maxBufferSize || this.getFlushSize() === this.maxChunkSize) && this._flush(b), this._flushTID || | |
(this._flushTID = k.defer(this._flush, this.flushTimeout, this, [b], "DataBuffer._flush"))) | |
}, | |
activate: function() { | |
this.active || (this.active = !0, this.append([])) | |
}, | |
clear: function() { | |
this._data.length = 0; | |
this._flushTID = null; | |
this.storage && this.storage.remove(this.storageKey) | |
}, | |
_flush: function(a) { | |
if (!this.getFlushSize()) return this.clear(), !1; | |
this.onFlush.call(this.onFlushCtx || this, this._data, this.meta, this._packetNumber, a); | |
this._packetNumber++; | |
this.clear() | |
}, | |
dataFromStorage: function(a) { | |
return a | |
}, | |
dataToStorage: function(a) { | |
return a | |
}, | |
_saveToStorage: function() { | |
this.storage && this._data.length && this.storage.set(this.storageKey, { | |
data: this.dataToStorage(this._data), | |
meta: this.meta, | |
pnum: this._packetNumber, | |
time: x.getMs() | |
}) | |
} | |
}), | |
ob = "ru ua by kz az kg lv md tj tm uz ee fr co.il com.ge com.am com.tr".split(" "); | |
var ra = ["mc.webvisor.org", "mc.yandex.ru"]; | |
var B = { | |
storage: {}, | |
init: function() { | |
var a = this; | |
E(function() { | |
n.Ya = n.Ya || {}; | |
n.Ya._metrika = n.Ya._metrika || {}; | |
a.storage = n.Ya._metrika | |
}, "", !0)(); | |
return this | |
}, | |
setSafe: function(a, b) { | |
var d = this; | |
E(function() { | |
d.storage[a] === | |
w && (d.storage[a] = b) | |
}, "", !0)(); | |
return this | |
}, | |
set: function(a, b) { | |
E(function() { | |
n.Ya._metrika[a] = b | |
}, "", !0)(); | |
return this | |
}, | |
get: function(a, b) { | |
return E(function() { | |
var d = n.Ya._metrika[a]; | |
return d === w ? b : d | |
}, "", !0)() | |
} | |
}; | |
k.async = function(a, b, d) { | |
if (n.postMessage) { | |
var e = "__ym__promise" + Math.random() + "_" + x.getMs(); | |
var g = function(d) { | |
try { | |
var h = d.data | |
} catch (m) { | |
return | |
} | |
h === e && (d.stopPropagation && d.stopPropagation(), a.call(b), r.un(n, "message", g, null, { | |
passive: !1 | |
})) | |
}; | |
r.on(n, "message", g, null, { | |
passive: !1, | |
name: ".async." + (d || | |
"") | |
}); | |
n.postMessage(e, "*") | |
} else k.setTimeout(function() { | |
a.call(b) | |
}, 0) | |
}; | |
var J = I.inherit({ | |
counterId: "", | |
onlyCurrentDomain: !1, | |
skipPrefix: !1, | |
_initComponent: function() { | |
var a; | |
J.superclass._initComponent.apply(this, arguments); | |
this._domain = null; | |
if (!this.onlyCurrentDomain) { | |
var b = n.location.host.split("."); | |
for (a = 2;;) | |
if (a <= b.length) { | |
if (this._domain = "." + b.slice(-a).join("."), a++, this.isEnabled()) break | |
} else { | |
this._domain = null; | |
break | |
} | |
} | |
}, | |
create: function(a, b, d) { | |
a = [this._prepareName(a) + "\x3d" + encodeURIComponent(b)]; | |
d && (b = new Date, b.setTime(b.getTime() + 6E4 * d), a.push("expires\x3d" + b.toGMTString())); | |
this._domain && a.push("domain\x3d" + this._domain); | |
a.push("path\x3d/"); | |
try { | |
q.cookie = a.join(";") | |
} catch (e) {} | |
}, | |
read: function(a) { | |
try { | |
var b = q.cookie | |
} catch (d) {} | |
return b && b.match(new RegExp("(?:^|;\\s*)" + this._prepareName(a) + "\x3d([^;]*)")) ? decodeURIComponent(RegExp.$1) : null | |
}, | |
erase: function(a) { | |
this.create(a, "", -1) | |
}, | |
isEnabled: function() { | |
this.create("metrika_enabled", "1", 60); | |
var a = !!this.read("metrika_enabled"); | |
this.erase("metrika_enabled"); | |
return a | |
}, | |
_prepareName: function(a) { | |
return (this.skipPrefix ? "" : "_ym_") + a + (this.counterId ? "_" + this.counterId : "") | |
} | |
}); | |
J.get = function(a) { | |
return (new J({ | |
onlyCurrentDomain: !0 | |
})).read(a) | |
}; | |
J.set = function(a, b, d) { | |
return (new J({ | |
onlyCurrentDomain: !0 | |
})).create(a, b, d) | |
}; | |
J.isEnabled = function() { | |
return (new J({ | |
onlyCurrentDomain: !0 | |
})).isEnabled() | |
}; | |
k._hasIndexOf = [].indexOf && 0 === [w].indexOf(w); | |
k.arrayIndexOf = k._hasIndexOf ? function(a, b) { | |
return a.indexOf(b) | |
} : function(a, b) { | |
var d; | |
for (d = 0; d < a.length; d++) | |
if (a[d] === b) return d; | |
return -1 | |
}; | |
k.map = function(a, b) { | |
var d, e = []; | |
for (d = 0; d < b.length; d++) e.push(a(b[d], d)); | |
return e | |
}; | |
var Fa = I.inherit({ | |
hostIndexCookieName: "hostIndex", | |
hosts: ra.slice(), | |
HOSTS_DELIMITER: ",", | |
COUNTERS_DELIMITER: "-", | |
INDEX: 0, | |
SUCCESS_COUNTER: 1, | |
_initComponent: function() { | |
this.cookie = new J | |
}, | |
readCookie: function() { | |
var a = this.cookie.read(this.hostIndexCookieName), | |
b, d = this; | |
if (null === a) this.hostsInfo = k.map(function(a, b) { | |
return [b, 0].join(d.COUNTERS_DELIMITER) | |
}, ra); | |
else | |
for (this.hostsInfo = a.split(this.HOSTS_DELIMITER), b = 0; b < this.hostsInfo.length; b++) a = | |
this.hostsInfo[b].split(this.COUNTERS_DELIMITER), 1 < parseInt(a[this.SUCCESS_COUNTER], 10) && (this.cookieIndex = parseInt(a[this.INDEX], 10)); | |
this.cookieIndex === w && (this.cookieIndex = 1); | |
this.selectedHost = ra[this.cookieIndex]; | |
return this | |
}, | |
getUrls: function(a) { | |
var b = this, | |
d = ra.slice(); | |
this.readCookie(); | |
var e = this.cookieIndex; | |
d[0] = [d[e], d[e] = d[0]][0]; | |
this.hosts = d; | |
return k.map(function(d) { | |
return [b.protocol, "//", d, "/", a].join("") | |
}, d) | |
}, | |
onSuccess: function(a, b) { | |
var d = k.arrayIndexOf(ra, this.hosts[a]), | |
e = this; | |
"beacon" !== | |
b && this.cookieIndex !== w && d !== this.cookieIndex && this.cookie.create(this.hostIndexCookieName, k.map(function(a) { | |
a = a.split(e.COUNTERS_DELIMITER); | |
d == a[e.INDEX] && (a[e.SUCCESS_COUNTER] = parseInt(a[e.SUCCESS_COUNTER], 10) + 1); | |
return [a[e.INDEX], a[e.SUCCESS_COUNTER]].join(e.COUNTERS_DELIMITER) | |
}, this.hostsInfo).join(e.HOSTS_DELIMITER), 1440) | |
} | |
}); | |
Fa.isEnabled = function() { | |
return 1 != (new Fa).readCookie().cookieIndex | |
}; | |
var Lb = I.inherit({ | |
transports: [], | |
globalConfig: B, | |
postParams: [], | |
isDisabled: function() { | |
return this.globalConfig.get("oo") | |
}, | |
send: function(a, b, d, e) { | |
var g = [a], | |
p = this, | |
h = d || function() {}; | |
if (p.isDisabled()) h.call(e); | |
else { | |
var m = new Fa({ | |
protocol: this.protocol | |
}); | |
this.forceHost ? g = [ | |
[this.protocol, "//", this.forceHost, "/", a].join("") | |
] : ra && (g = m.getUrls(a)); | |
(function l(a) { | |
if (a < this.transports.length) try { | |
var c = new this.transports[a]({ | |
timeout: this.timeout, | |
postParams: this.postParams, | |
queryStringParams: this.queryStringParams | |
}); | |
b["browser-info"] = c.logInfo(b["browser-info"]); | |
(function y(d) { | |
d >= g.length ? c.blockNext() || l.call(this, a + 1) : c.request(g[d], | |
b, | |
function(a, b, l) { | |
a ? (h.call(e, b, l), m.onSuccess(d, c.id)) : k.async(function() { | |
y.call(p, d + 1) | |
}, this, "senderCall") | |
}, this) | |
}).call(this, 0) | |
} catch (z) { | |
Wa(z, "send by " + (c && c.id)), l.call(this, a + 1) | |
} | |
}).call(this, 0) | |
} | |
} | |
}), | |
Ba = {}; | |
k.keys = function(a) { | |
var b, d = []; | |
for (b in a) a.hasOwnProperty(b) && d.push(b); | |
return d | |
}; | |
Ba.stringify = function(a, b) { | |
var d = [], | |
e = b || {}, | |
g = {}, | |
p = k.keys(a).length, | |
h, m; | |
if (e.lastOrdering !== w) | |
for (m = 1; m <= b.lastOrdering.length; m++) g[b.lastOrdering[m - 1]] = p + m; | |
if (e.firstOrdering !== w) | |
for (m = 0; m < b.firstOrdering.length; m++) g[b.firstOrdering[m]] = | |
m; | |
for (h in a) | |
if (a.hasOwnProperty(h)) | |
if (e = a[h], k.isArray(e)) | |
for (m = 0; m < e.length; m++) d.push({ | |
key: h, | |
value: encodeURIComponent(h) + "\x3d" + encodeURIComponent(String(e[m])) | |
}); | |
else d.push({ | |
key: h, | |
value: encodeURIComponent(h) + "\x3d" + encodeURIComponent(String(e)) | |
}); | |
d.sort(function(a, c) { | |
var b = g[a.key], | |
f = g[c.key]; | |
"undefined" === typeof b && (b = p); | |
"undefined" === typeof f && (f = p); | |
return b - f | |
}); | |
return k.map(function(a) { | |
return a.value | |
}, d).join("\x26") | |
}; | |
k.inArray = function(a, b) { | |
var d; | |
for (d = 0; d < a.length; d++) | |
if (a[d] == b) return !0; | |
return !1 | |
}; | |
var na = I.inherit({ | |
postParams: [], | |
index: 0, | |
blockNext: function() { | |
return !1 | |
}, | |
logInfo: function(a) { | |
var b; | |
if (a) return a = (b = a.match(/^ti:\d:/)) ? a.replace(b[0], "") : a, "ti:" + this.index + ":" + a | |
}, | |
_buildUrl: function(a, b) { | |
var d = Ba.stringify(b, this.queryStringParams); | |
return a + (-1 < a.indexOf("?") ? "\x26" : d ? "?" : "") + d | |
}, | |
_splitParams: function(a) { | |
var b = {}, | |
d = {}; | |
k.forEachKey(a, function(a, g) { | |
k.inArray(this.postParams, a) ? d[a] = g : b[a] = g | |
}, this); | |
return { | |
get: b, | |
post: d | |
} | |
}, | |
_parseResp: function(a) { | |
return a | |
} | |
}), | |
Ca = na.inherit({ | |
id: "XHR", | |
index: 7, | |
method: "POST", | |
withCredentials: !0, | |
blockNext: function() { | |
return !n.XMLHttpRequest || navigator.platform.match(/Win/) ? !1 : "withCredentials" in new n.XMLHttpRequest | |
}, | |
request: function(a, b, d, e) { | |
var g = this, | |
p; | |
if (/[^a-z0-9.:-]/.test(H.host) && n.opera && "function" === typeof n.opera.version) { | |
var h = n.opera.version(); | |
if ("string" === typeof h && "12" === h.split(".")[0]) return d.call(e, !1) | |
} | |
if (n.XMLHttpRequest) { | |
var m = new XMLHttpRequest; | |
if ("withCredentials" in m) { | |
b = this._splitParams(b); | |
a = this._buildUrl(a, b.get); | |
try { | |
m.open(this.method, | |
a, !0) | |
} catch (f) { | |
return d.call(e, !1) | |
} | |
m.withCredentials = this.withCredentials; | |
this._setHeaders(m); | |
m.send(this._preparePostParams(b)); | |
m.onreadystatechange = function() { | |
if (4 === m.readyState) { | |
try { | |
p = g._parseResp(m.responseText) | |
} catch (f) { | |
return d.call(e, !1) | |
} | |
d.apply(e, [200 === m.status].concat(p)) | |
} | |
}; | |
return | |
} | |
} | |
d.call(e, !1) | |
}, | |
setMethod: function(a) { | |
this.method = a | |
}, | |
_preparePostParams: function(a) { | |
return Ba.stringify(a.post) | |
}, | |
_setHeaders: function(a) { | |
a.setRequestHeader("Content-Type", "application/x-www-form-urlencoded") | |
} | |
}), | |
u = {}; | |
k.memorize = function(a, b) { | |
var d = "memorize"; | |
return function() { | |
"memorize" === d && (d = a.apply(b || this, arguments)); | |
return d | |
} | |
}; | |
u.isAndroidWebView = E(function() { | |
var a = navigator.userAgent || ""; | |
return a.match(/Android.*Version\/[0-9][0-9.]*\sChrome\/[0-9][0-9.]/) || a.match(/Android.*Version\/[0-9][0-9.]*\s(?:Mobile\s)?Safari\/[0-9][0-9.]*\sChrome\/[0-9][0-9.]*/) || a.match(/; wv\).*Chrome\/[0-9][0-9.]*\sMobile/) | |
}, "isAndroidWebView"); | |
var Mb = na.inherit({ | |
id: "beacon", | |
index: 1, | |
request: function(a, b, d, e) { | |
"function" === | |
typeof navigator.sendBeacon && !u.isAndroidWebView() && navigator.onLine ? (b = this._splitParams(b), b.get["force-urlencoded"] = 1, d.call(e, navigator.sendBeacon(this._buildUrl(a, b.get), Ba.stringify(b.post)))) : d.call(e, !1) | |
} | |
}); | |
k.random = function(a, b) { | |
2 > arguments.length && (b = a, a = 0); | |
1 > arguments.length && (b = 1073741824); | |
return Math.floor(Math.random() * (b - a)) + a | |
}; | |
var Ra = na.inherit({ | |
id: "form", | |
index: 2, | |
enctype: "application/x-www-form-urlencoded", | |
htmlfileOnly: !1, | |
_initComponent: function() { | |
Ra.superclass._initComponent.apply(this, | |
arguments); | |
"_htmlfile" in Ra.prototype || (Ra.prototype._htmlfile = this._createHtmlfile()); | |
this._doc = this._htmlfile || (this.htmlfileOnly ? null : q) | |
}, | |
request: function(a, b, d, e) { | |
var g = this._doc; | |
if (!g) return d.call(e, !1); | |
b = this._splitParams(b); | |
var p = "ifr" + k.random(); | |
var h = g.createElement("div"); | |
h.style.position = "absolute"; | |
h.style.left = "-99999px"; | |
h.style.top = "-99999px"; | |
var m = ['\x3ciframe name\x3d"', p, '"\x3e\x3c/iframe\x3e', '\x3cform action\x3d"', this._buildUrl(a, b.get), '" method\x3d"post" target\x3d"', p, '" enctype\x3d"', | |
this.enctype, '"\x3e' | |
]; | |
k.forEachKey(b.post, function(a) { | |
k.mergeArrays(m, ['\x3cinput type\x3d"hidden" autocomplete\x3d"off" autocorrect\x3d"off"', ' autocapitalize\x3d"off" spellcheck\x3d"false" name\x3d"', a, '"/\x3e']) | |
}); | |
k.mergeArrays(m, ["\x3c/form\x3e"]); | |
h.innerHTML = m.join(""); | |
g.body.appendChild(h); | |
var f = h.getElementsByTagName("form")[0]; | |
k.forEachKey(b.post, function(a, b) { | |
f[a].value = b | |
}); | |
f.submit(); | |
k.setTimeout(function() { | |
g.body.removeChild(h) | |
}, 1E4, "TransportForm.request.2"); | |
return d.call(e, !0, "tf.request") | |
}, | |
_createHtmlfile: function() { | |
try { | |
if (n.ActiveXObject) { | |
var a = new ActiveXObject("htmlfile"); | |
a.open(); | |
a.write("\x3chtml\x3e\x3cbody\x3e\x3c/body\x3e\x3c/html\x3e"); | |
a.close(); | |
return a | |
} | |
} catch (b) {} | |
return null | |
} | |
}), | |
Nb = Ra.inherit({ | |
id: "htmlfile", | |
index: 3, | |
htmlfileOnly: !0 | |
}), | |
oa = na.inherit({ | |
id: "img", | |
index: 4, | |
request: function(a, b, d, e) { | |
a = this._buildUrl(a, b); | |
var g = !1; | |
b = q.createElement("img"); | |
d = d || function() {}; | |
b.onload = E(function() { | |
g || (d.call(e, !0), g = !0) | |
}, "TransportImage.request"); | |
b.onerror = E(function() { | |
g || (d.call(e, !1), | |
g = !0) | |
}, "TransportImage.request"); | |
b.src = a; | |
this.timeout && k.setTimeout(function() { | |
g || (d.call(e, !1), g = !0) | |
}, this.timeout, "ti.request") | |
} | |
}), | |
ea = { | |
stringify: function(a) { | |
try { | |
var b = JSON.stringify(a) | |
} catch (d) {} | |
return k.inArray(["{}", w], b) ? "null" : b | |
} | |
}; | |
k.toJSON = function(a) { | |
var b; | |
if (a === w) return ""; | |
if (null === a) return "null"; | |
switch (a.constructor) { | |
case Boolean: | |
return a.toString(); | |
case Number: | |
return isFinite(a) ? a.toString() : "null"; | |
case String: | |
return '"' + a.replace(/\\/g, "\\\\").replace(/"/g, '\\"').replace(/\n/g, "\\n").replace(/\r/g, | |
"\\r") + '"'; | |
case Array: | |
var d = []; | |
var e = 0; | |
for (b = a.length; e < b; e++) d[d.length] = k.toJSON(a[e]); | |
return "[" + d.join(",") + "]"; | |
case Object: | |
d = []; | |
for (e in a) a.hasOwnProperty(e) && a[e] !== w && (d[d.length] = k.toJSON(e) + ":" + k.toJSON(a[e])); | |
return "{" + d.join(",") + "}"; | |
default: | |
return ea.stringify(a) | |
} | |
}; | |
var ca = I.inherit({ | |
counterId: "", | |
_initComponent: function() { | |
ca.superclass._initComponent.apply(this, arguments); | |
this._ls = null; | |
try { | |
this._ls = n.localStorage | |
} catch (a) {} | |
}, | |
set: function(a, b) { | |
if (this.isEnabled()) try { | |
!b || b && k.isArray(b) && | |
!b.length ? this.remove(a) : this._ls.setItem(this._getLsKey(a), k.toJSON(b)) | |
} catch (d) {} | |
}, | |
get: function(a) { | |
if (this.isEnabled()) try { | |
return JSON.parse(this._ls.getItem(this._getLsKey(a))) | |
} catch (b) {} | |
return null | |
}, | |
remove: function(a) { | |
if (this.isEnabled()) try { | |
this._ls.removeItem(this._getLsKey(a)) | |
} catch (b) {} | |
}, | |
isEnabled: function() { | |
return this._ls && n.JSON && "object" == typeof this._ls && "object" == typeof n.JSON | |
}, | |
getStorageId: function() { | |
var a = this.get("lsid"); | |
a || (a = Math.round(Math.random() * x.getMs()), this.set("lsid", a)); | |
return a | |
}, | |
clearStorageId: function() { | |
this.remove("lsid") | |
}, | |
_getLsKey: function(a) { | |
return "_ym_alt" + this.counterId + "_" + a | |
} | |
}); | |
k.fnv32a = function(a) { | |
var b = 2166136261, | |
d; | |
var e = 0; | |
for (d = a.length; e < d; ++e) b ^= a.charCodeAt(e), b += (b << 1) + (b << 4) + (b << 7) + (b << 8) + (b << 24); | |
return b >>> 0 | |
}; | |
k.getTld = function() { | |
if (!this._tld) { | |
var a = H.hostname.split("."); | |
this._tld = a[a.length - 1] | |
} | |
return this._tld | |
}; | |
var L = { | |
abc: "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789", | |
tail: "+/\x3d", | |
tailSafe: "*-_" | |
}, | |
v = { | |
removeNode: function(a) { | |
var b = | |
a && a.parentNode; | |
b && b.removeChild(a) | |
} | |
}; | |
u.isSafariWebView = E(function() { | |
var a = navigator.userAgent || ""; | |
return navigator.vendor && -1 < navigator.vendor.indexOf("Apple") && (!a.match(/Safari/) && a.match(/Mobile/) || a.match(/CFNetwork\/[0-9][0-9.]*.*Darwin\/[0-9][0-9.]*/) || -1 !== a.indexOf("FB_IAB") || -1 !== a.indexOf("FBAV") || -1 !== a.indexOf("OKApp") || -1 !== a.indexOf("GSA/")) | |
}, "isSafariWebView"); | |
u.isSafari = function() { | |
try { | |
return navigator.vendor && -1 < navigator.vendor.indexOf("Apple") && navigator.userAgent && !navigator.userAgent.match("CriOS") | |
} catch (a) {} | |
return !1 | |
}; | |
u.getMacOSVersion = E(function() { | |
var a = navigator.userAgent.match(/Mac OS X ([0-9]+)_([0-9]+)_([0-9]+)/); | |
return a ? [+a[1], +a[2], +a[2]] : [0, 0, 0] | |
}, "", !0); | |
u.getPlatform = E(function() { | |
return "" + navigator.platform | |
}, "", !0); | |
u.isIOS = E(function() { | |
var a = u.getPlatform() || ""; | |
return "iPhone" === a || "iPad" === a | |
}, "", !0); | |
u.isFF = E(function() { | |
return n && n.document && n.document.documentElement && n.document.documentElement.style ? "MozAppearance" in n.document.documentElement.style && "undefined" !== typeof n.InstallTrigger : !1 | |
}, "isFF"); | |
var Ma = { | |
_storage: new ca, | |
_cookie: new J, | |
key: "zzlc", | |
updateInfo: function(a) { | |
k.forEachKey(this.getInfoFlags(), function(b, d) { | |
var e = d.call(this); | |
e && (a[b] = e) | |
}, this); | |
return a | |
}, | |
getZZ: function() { | |
return this._storage.get(this.key) ? this._storage.get(this.key) : this.zz | |
}, | |
getPP: function() { | |
return this.globalConfig && this.globalConfig.get("pp") ? this.globalConfig.get("pp") : this.pp | |
}, | |
getPU: function() { | |
return this.globalConfig && this.globalConfig.get("pu") ? this.globalConfig.get("pu") : this.pu | |
}, | |
getFip: function() { | |
if (this._storage.get(this.fipKey)) return this._storage.get(this.fipKey) | |
}, | |
getInfoFlags: function() { | |
return { | |
zz: this.getZZ, | |
pp: this.getPP, | |
pu: this.getPU, | |
fip: this.getFip | |
} | |
}, | |
checkVersion: function() { | |
var a = u.getMacOSVersion(); | |
return !((u.isIOS() || 10 <= a[0] && 13 <= a[2]) && u.isSafari()) || u.isSafariWebView() | |
}, | |
noop: function() {}, | |
genPu: function(a) { | |
var b = k.fnv32a(n.location.host) + this._cookie.read("uid"); | |
this.pu = b; | |
a.set("pu", b); | |
return b | |
}, | |
initPU: function(a, b) { | |
var d = this; | |
b.get("pu") !== w || this.checkVersion() || (this.globalConfig = b, b.setSafe("pu", null), a.addHandler("gpu-get", function() { | |
return { | |
type: "gpu-get", | |
pu: b.get("pu") | |
} | |
}, this), n.opener ? (k.setTimeout(function() { | |
d.genPu(b) | |
}, 200, "pu"), a.sendToIframe(n.opener, { | |
type: "gpu-get" | |
}, this.handleGpu, this)) : this.genPu(b)) | |
}, | |
handleGpu: function(a) { | |
if (a = a.pu) this.pu = a, this.globalConfig.set("pu", a) | |
}, | |
onicecandidate: E(function(a) { | |
var b; | |
try { | |
var d = (b = a.localDescription.sdp) && b.match(/c=IN\s[\w\d]+\s([\w\d:.]+)/) | |
} catch (e) { | |
a.onicecandidate = this.noop; | |
"closed" !== a.iceConnectionState && a.close(); | |
return | |
} | |
d && 0 < d.length && (this.pp = k.fnv32a(d[1]), this.globalConfig.set("pp", this.pp)); | |
a.onicecandidate = this.noop; | |
a.close() | |
}, "wrt"), | |
onOffer: function(a, b) { | |
k.isFunction(a.setLocalDescription) && a.setLocalDescription(b, this.noop, this.noop) | |
}, | |
initPP: E(function(a) { | |
var b = n.RTCPeerConnection || n.mozRTCPeerConnection || n.webkitRTCPeerConnection; | |
this.globalConfig = a; | |
if (n.navigator.onLine && b && a.get("pp") == w && (this.globalConfig.setSafe("pp", null), b && b.prototype && b.prototype.constructor && b.prototype.constructor.name)) { | |
try { | |
var d = new b({ | |
iceServers: [] | |
}); | |
d.createDataChannel("y.metrika") | |
} catch (g) { | |
return | |
} | |
if (k.isFunction(d.createOffer) && | |
!d.createOffer.length) { | |
try { | |
var e = d.createOffer() | |
} catch (g) { | |
return | |
} | |
k.isFunction(e.then) && e.then(k.bind(this.onOffer, this, d)); | |
d.onicecandidate = k.bind(this.onicecandidate, this, d) | |
} | |
} | |
}, "rcinit"), | |
initZZ: function() { | |
var a = this; | |
if (!this.getZZ() && !this.checkVersion()) { | |
var b = k.getNativeFunction("createElement", q)("iframe"); | |
b.style.display = "none"; | |
b.style.width = "1px"; | |
b.style.height = "1px"; | |
b.style.visibility = "hidden"; | |
b.src = "https://mc.webvisor.org" + L.decode("L21ldHJpa2EvenpsYy5odG1s"); | |
n.document.documentElement.appendChild(b); | |
r.on(n, "message", this.onMessage, this, { | |
passive: !1 | |
}); | |
this.frame = b; | |
this.timeout = k.setTimeout(function() { | |
r.un(n, "message", a.onMessage, a, { | |
passive: !1 | |
}); | |
v.removeNode(a.frame); | |
a.zz = "na" | |
}, 3E3, "cd.initZZ") | |
} | |
}, | |
onMessage: function(a) { | |
a.data && a.data.substr && "__ym__zz" === a.data.substr(0, 8) && (this.zz = a.data.substr(8), v.removeNode(this.frame), this._storage.set(this.key, this.zz), r.un(n, "message", this.onMessage, this, { | |
passive: !1 | |
}), clearTimeout(this.timeout)) | |
}, | |
fipKey: "fip", | |
fpFactors: ["webGL", "plugins", "applePay", "dnt"], | |
initFip: function() { | |
if (Object.keys && !this.checkVersion() && !this._storage.get(this.fipKey)) { | |
var a = new cb(k.reduce(function(a, d) { | |
a[d] = 1; | |
return a | |
}, {}, this.fpFactors)); | |
a = a.toString(!1).join("-"); | |
this._storage.set(this.fipKey, a) | |
} | |
} | |
}, | |
P = Lb.inherit({ | |
protocol: "", | |
timeout: 4E3, | |
queryStringParams: { | |
firstOrdering: ["wmode", "callback", "cnt-class"], | |
lastOrdering: ["browser-info"] | |
}, | |
resource: "", | |
counterId: "", | |
counterType: 0, | |
retry: !1, | |
transports: [Mb, Ca, oa, Nb], | |
_initComponent: function() { | |
P.superclass._initComponent.apply(this, arguments); | |
this.retry && (this._storage = new ca) | |
}, | |
send: function(a, b, d, e) { | |
var g = this.globalConfig.get(wa.globalKey), | |
p = this; | |
g && 3 !== this.counterId ? g(function() { | |
var h = p._registerRequest(a, b); | |
p._sendSavedRequest(h, a, b, d, e) | |
}, a) : (g = p._registerRequest(a, b), p._sendSavedRequest(g, a, b, d, e)) | |
}, | |
_sendSavedRequest: function(a, b, d, e, g) { | |
var p = this.globalConfig.get("firstReqStatus"), | |
h = b.forceNoRedirect; | |
if ("process" == p) this.globalConfig.set("firstReqCallbacks", k.mergeArrays(this.globalConfig.get("firstReqCallbacks") || [], [ | |
[this, arguments] | |
])); | |
else { | |
p || this.globalConfig.set("firstReqStatus", "process"); | |
this.counterType && (b["cnt-class"] = this.counterType); | |
this.globalConfig.get("pri") && (d.pri = this.globalConfig.get("pri")); | |
d.st = x.getSeconds(); | |
d.u = P._userID; | |
d = Ma.updateInfo(d); | |
d.hi = P._hostID; | |
p = [this.resource, "/", this.counterId, h ? "/1" : ""].join(""); | |
delete b.forceNoRedirect; | |
var m = []; | |
d && (k.forEachKey(d, function(a, c) { | |
"t" != a && k.mergeArrays(m, [a, c]) | |
}), d.t && k.mergeArrays(m, ["t", d.t])); | |
m.length && (b["browser-info"] = m.join(":")); | |
return P.superclass.send.call(this, | |
p, b, | |
function() { | |
var b; | |
this.globalConfig.set("firstReqStatus", "complete"); | |
this._unregisterRequest(a); | |
var c = this.globalConfig.get("firstReqCallbacks"); | |
this.globalConfig.set("firstReqCallbacks", null); | |
if (c) | |
for (b = 0; b < c.length; b++) c[b][0]._sendSavedRequest.apply(c[b][0], c[b][1]); | |
e && e.apply(g, arguments) | |
}, this) | |
} | |
}, | |
_isRetryEnabled: function() { | |
return this.retry && this._storage && this._storage.isEnabled() | |
}, | |
_registerRequest: function(a, b) { | |
var d; | |
if (this._isRetryEnabled()) { | |
b.rqnl = b.rqnl || 0; | |
b.rqnl++; | |
var e = this._storage.get("retryReqs") || {}; | |
for (d = 1; e[d];) d++; | |
e[d] = { | |
protocol: this.protocol, | |
host: this.host, | |
resource: this.resource, | |
counterId: this.counterId, | |
counterType: this.counterType, | |
postParams: this.postParams, | |
params: a, | |
browserInfo: b, | |
ghid: this.globalConfig.get("_globalMetrikaHitId"), | |
time: x.getMs() | |
}; | |
this._storage.set("retryReqs", e); | |
return d | |
} | |
}, | |
_unregisterRequest: function(a) { | |
if (a && this._isRetryEnabled()) { | |
var b = this._storage.get("retryReqs") || {}; | |
b[a] && (delete b[a], this._storage.set("retryReqs", b)) | |
} | |
}, | |
_getVersion: E(function() { | |
return Da | |
}, "", !0) | |
}); | |
P._storage = new ca; | |
P.initCookie = function() { | |
var a = new J, | |
b = a.read("uid"), | |
d = a.read("d"), | |
e = x.getSeconds(); | |
if (!b) b = e + "" + k.random(), a.create("uid", b, 525600), a.create("d", e, 525600); | |
else if (!d || 15768E3 < e - parseInt(d)) a.create("uid", b, 525600), a.create("d", e, 525600); | |
P._hostID = a.read("hostIndex"); | |
P._userID = b | |
}; | |
P.retransmit = function(a) { | |
var b = P._storage, | |
d = b.get("retryReqs") || {}, | |
e; | |
b.remove("retryReqs"); | |
k.forEachKey(d, function(b, d) { | |
var h = x.getMs(); | |
a.get("firstReqStatus") || a.set("firstReqStatus", "complete"); | |
d.ghid && | |
d.ghid != a.get("_globalMetrikaHitId") && d.time && d.time + 864E5 > h && 500 < h - d.time && 2 >= d.browserInfo.rqnl && (e = new P({ | |
protocol: d.protocol, | |
host: d.host, | |
resource: d.resource, | |
counterId: d.counterId, | |
counterType: d.counterType, | |
postParams: d.postParams || [], | |
retry: !0 | |
}), e.send(d.params, d.browserInfo)) | |
}) | |
}; | |
k.fletcher = function(a) { | |
for (var b = a.length, d = 0, e = 255, g = 255, p, h, m; b;) { | |
p = 21 < b ? 21 : b; | |
b -= p; | |
do h = "string" == typeof a ? a.charCodeAt(d) : a[d], d++, 255 < h && (m = h >> 8, h &= 255, h ^= m), e += h, g += e; while (--p); | |
e = (e & 255) + (e >> 8); | |
g = (g & 255) + (g >> 8) | |
} | |
a = | |
(e & 255) + (e >> 8) << 8 | (g & 255) + (g >> 8); | |
return 65535 == a ? 0 : a | |
}; | |
L.encode = function(a, b) { | |
var d = (L.abc + (b ? L.tailSafe : L.tail)).split(""), | |
e = a.length, | |
g = [], | |
p = e - e % 3, | |
h; | |
for (h = 0; h < p; h += 3) { | |
var m = (a[h] << 16) + (a[h + 1] << 8) + a[h + 2]; | |
k.mergeArrays(g, [d[m >> 18 & 63], d[m >> 12 & 63], d[m >> 6 & 63], d[m & 63]]) | |
} | |
switch (e - p) { | |
case 1: | |
m = a[p] << 4; | |
k.mergeArrays(g, [d[m >> 6 & 63], d[m & 63], d[64], d[64]]); | |
break; | |
case 2: | |
m = (a[p] << 10) + (a[p + 1] << 2), k.mergeArrays(g, [d[m >> 12 & 63], d[m >> 6 & 63], d[m & 63], d[64]]) | |
} | |
return g.join("") | |
}; | |
k.arrayEvery = function(a, b, d) { | |
var e; | |
for (e = 0; e < | |
a.length; e++) | |
if (!b.call(d, a[e], e, a)) return !1; | |
return !0 | |
}; | |
k.is4Bytes = function(a) { | |
return !k.arrayEvery((encodeURIComponent(a).match(/(%[A-F,\d]{2})+/g) || []).join("").split("%"), function(a) { | |
return 240 > parseInt(a, 16) | |
}) | |
}; | |
k.trim = function(a, b) { | |
a = String(a).replace(/^\s+|\s+$/g, ""); | |
b && a.length > b && (a = a.substr(0, b)); | |
return a | |
}; | |
k.isNumber = function(a) { | |
return isFinite(a) && !isNaN(a) && "[object Number]" === k.toString(a) | |
}; | |
k.isString = function(a) { | |
return "[object String]" === k.toString(a) | |
}; | |
k.warning = function() { | |
n.console && "function" === | |
typeof n.console.warn && console.warn.apply(console, arguments) | |
}; | |
k.isObject = function(a) { | |
try { | |
return a && null !== a && "[object Object]" === k.toString(a) | |
} catch (b) { | |
return !1 | |
} | |
}; | |
k._urlParser = null; | |
k.parseUrl = function(a) { | |
if (!this._urlParser) try { | |
this._urlParser = q.createElement("a") | |
} catch (b) {} | |
return this._urlParser ? (this._urlParser.href = a, { | |
protocol: this._urlParser.protocol, | |
host: this._urlParser.host, | |
port: this._urlParser.port, | |
hostname: this._urlParser.hostname, | |
hash: this._urlParser.hash, | |
search: this._urlParser.search, | |
query: this._urlParser.search.replace(/^\?/, | |
""), | |
pathname: this._urlParser.pathname || "/", | |
path: (this._urlParser.pathname || "/") + this._urlParser.search, | |
href: this._urlParser.href | |
}) : {} | |
}; | |
k._playerRegexp = /^.+\.mtproxy\.yandex\.net$/; | |
k.isMetrikaPlayer = function() { | |
return "MetrikaPlayer" == n.name || this._playerRegexp.test(n.location.hostname) | |
}; | |
v.getDocumentCharset = function() { | |
return ("" + (q.characterSet || q.charset || "")).toLowerCase() | |
}; | |
v.getBody = function() { | |
for (var a = q.getElementsByTagName("body"); 0 < a.length;) return a[0] | |
}; | |
v.getRootElement = function() { | |
var a = q.documentElement, | |
b = v.getBody(); | |
return "CSS1Compat" == q.compatMode ? a : b || a | |
}; | |
v.getViewportSize = function() { | |
var a = v.getRootElement(); | |
return [a.clientWidth || n.innerWidth, a.clientHeight || n.innerHeight] | |
}; | |
v.getDocumentTitle = function() { | |
var a = q.title; | |
"string" != typeof a && (a = (a = q.getElementsByTagName("title")) && a.length ? a[0].innerHTML : ""); | |
return a | |
}; | |
u.getSilverlightVersion = k.memorize(function() { | |
if (n.ActiveXObject) try { | |
var a = new ActiveXObject("AgControl.AgControl"); | |
var b = function(a, b, e, f) { | |
for (; d(a, b);) b[e] += f; | |
b[e] -= f | |
}; | |
var d = function(a, | |
b) { | |
return a.isVersionSupported(b[0] + "." + b[1] + "." + b[2] + "." + b[3]) | |
}; | |
var e = [1, 0, 0, 0]; | |
b(a, e, 0, 1); | |
b(a, e, 1, 1); | |
b(a, e, 2, 1E4); | |
b(a, e, 2, 1E3); | |
b(a, e, 2, 100); | |
b(a, e, 2, 10); | |
b(a, e, 2, 1); | |
b(a, e, 3, 1); | |
var g = e.join(".") | |
} catch (p) {} else if (b = n.navigator, b = b.plugins && b.plugins["Silverlight Plug-In"]) g = b.description; | |
return g || "" | |
}); | |
u.getFlashVersion = k.memorize(function() { | |
var a = n.navigator; | |
if ("undefined" != typeof a.plugins && "object" == typeof a.plugins["Shockwave Flash"]) { | |
var b = a.plugins["Shockwave Flash"]; | |
var d = b.version; | |
if ((b = b.description) || | |
d) | |
if (a = a.mimeTypes, "undefined" == typeof a || !a["application/x-shockwave-flash"] || a["application/x-shockwave-flash"].enabledPlugin) d ? u._flashVersion = d : b && (u._flashVersion = b.replace(/([a-zA-Z]|\s)+/, "").replace(/(\s+r|\s+b[0-9]+)/, ".")) | |
} else if ("undefined" != typeof n.ActiveXObject) try { | |
if (d = new ActiveXObject("ShockwaveFlash.ShockwaveFlash"), b = d.GetVariable("$version")) u._flashVersion = b.split(" ")[1].replace(/,/g, ".").replace(/[^.\d]/g, "") | |
} catch (e) {} | |
return u._flashVersion | |
}); | |
u.getLanguage = k.memorize(function() { | |
var a = | |
(n.navigator ? navigator.language || navigator.userLanguage || navigator.browserLanguage || navigator.systemLanguage : "").toLowerCase(); | |
return k.isString(a) ? a : "" | |
}); | |
u.getJavaEnabled = k.memorize(function() { | |
try { | |
return navigator.javaEnabled() | |
} catch (a) { | |
return !1 | |
} | |
}); | |
u.getFingerPrint = k.memorize(function() { | |
var a = [], | |
b; | |
if (navigator.plugins && navigator.plugins.length) | |
for (b = 0; b < navigator.plugins.length; b++) { | |
var d = navigator.plugins[b]; | |
k.mergeArrays(a, [d.name, d.version, d.description, d.filename]) | |
} | |
if (navigator.mimeTypes && navigator.mimeTypes.length) | |
for (b = | |
0; b < navigator.mimeTypes.length; b++) d = navigator.mimeTypes[b], k.mergeArrays(a, [d.type, d.description, d.suffixes]); | |
return k.fnv32a(a.join(";")) + "01" | |
}); | |
u.getNotificationPermission = function() { | |
try { | |
var a = Notification.permission | |
} catch (b) {} | |
switch (a) { | |
case "denied": | |
return 1; | |
case "granted": | |
return 2 | |
} | |
}; | |
u.isIframe = k.memorize(function() { | |
try { | |
return n.top != n.self | |
} catch (a) { | |
return !1 | |
} | |
}); | |
u._nMap = { | |
other: "0", | |
none: "1", | |
unknown: "2", | |
wifi: "3", | |
ethernet: "4", | |
bluetooth: "5", | |
cellular: "6", | |
wimax: "7", | |
mixed: "8" | |
}; | |
u.netType = function() { | |
var a = | |
(navigator.connection || { | |
type: "" | |
}).type; | |
return u._nMap[a] || a | |
}; | |
u.isHeadLess = k.memorize(function() { | |
var a, b = ["_phantom", "__nightmare", "callPhantom"]; | |
for (a = 0; a < b.length; a++) | |
if (n[b[a]]) return !0; | |
return /PhantomJS/.test(n.navigator.userAgent) || n.navigator.webdriver || n.isChrome && !n.chrome ? !0 : /HeadlessChrome/.test(n.navigator.userAgent) | |
}); | |
u.getNavigationStart = k.memorize(function() { | |
var a = n.performance || n.webkitPerformance; | |
return a && a.timing && a.timing.navigationStart | |
}); | |
u.isSameOriginTopFrame = function() { | |
try { | |
return n.top.contentWindow || | |
!0 | |
} catch (a) { | |
return !1 | |
} | |
}; | |
u.isDesktop = function(a) { | |
var b = a.get("bt", {}); | |
a.get("bt") === w && (b.p = navigator.getBattery ? navigator.getBattery() : null, a.set("bt", b), b.p && b.p.then && b.p.then(function(a) { | |
b.v = a.charging && 0 === a.chargingTime | |
})); | |
return b.v | |
}; | |
u.isSelenium = k.memorize(function() { | |
var a = ["_selenium", "callSelenium", "_Selenium_IDE_Recorder"], | |
b = ["selenium", "webdriver", "driver"], | |
d, e = n.document, | |
g = "__webdriver_evaluate __selenium_evaluate __webdriver_script_function __webdriver_script_func __webdriver_script_fn __fxdriver_evaluate __driver_unwrapped __webdriver_unwrapped __driver_evaluate __selenium_unwrapped __fxdriver_unwrapped".split(" "); | |
for (d = 0; d < a.length; d++) | |
if (n[a[d]]) return !0; | |
for (d = 0; d < g.length; d++) | |
if (e && e[g[d]]) return !0; | |
if (n.external && n.external.toString && 0 <= n.external.toString().indexOf("Sequentum")) return !0; | |
if (e.documentElement && e.documentElement.getAttribute) | |
for (d = 0; d < b.length; d++) | |
if (e.documentElement.getAttribute(b[d])) return !0; | |
return !1 | |
}); | |
r.ready = function(a) { | |
var b = q.readyState; | |
if ("interactive" === b || "complete" === b) k.setTimeout(a, 0, "evt::ready"); | |
else { | |
var d = function() { | |
r.un(q, "DOMContentLoaded", d); | |
r.un(n, "load", d); | |
a() | |
}; | |
r.on(q, | |
"DOMContentLoaded", d); | |
r.on(n, "load", d) | |
} | |
}; | |
var pb = { | |
url: "https://mc.webvisor.org/metrika/", | |
_value: null, | |
init: function(a) { | |
var b = this._getLs().read("isad"); | |
this.globalConfig = a || B; | |
b ? this._set(b) : this._getReqStatus() || this._send() | |
}, | |
getVal: function() { | |
return this._value | |
}, | |
_set: function(a) { | |
this._value = "1" == a || "2" == a ? a : null | |
}, | |
_send: function() { | |
var a = this; | |
this._setReqStatus("process"); | |
r.ready(function() { | |
var b = q.createElement("img"); | |
b.onload = function() { | |
a._saveReq(!1); | |
v.removeNode(this) | |
}; | |
b.onerror = function() { | |
a._saveReq(!0); | |
v.removeNode(this) | |
}; | |
b.src = a.url + String.fromCharCode(97, 100, 118, 101, 114, 116, 46, 103, 105, 102); | |
u.isSafari() && (b.style.position = "absolute", b.style.visibility = "hidden", b.style.width = "0px", b.style.height = "0px", v.getRootElement().appendChild(b)) | |
}) | |
}, | |
_saveReq: function(a) { | |
this._value = a = a ? "1" : "2"; | |
this._setReqStatus("complete"); | |
this._getLs().create("isad", a, 1200) | |
}, | |
_setReqStatus: function(a) { | |
try { | |
this.globalConfig.set("adStatus", a) | |
} catch (b) {} | |
}, | |
_getReqStatus: function() { | |
try { | |
return this.globalConfig.get("adStatus") | |
} catch (a) { | |
return "complete" | |
} | |
}, | |
_getLs: function() { | |
this._ls || (this._ls = new J); | |
return this._ls | |
} | |
}, | |
Sa = { | |
encode: function(a) { | |
var b = [], | |
d; | |
var e = 0; | |
for (d = a.length; e < d; e++) { | |
var g = a.charCodeAt(e); | |
128 > g ? b.push(g) : (127 < g && 2048 > g ? b.push(g >> 6 | 192) : (b.push(g >> 12 | 224), b.push(g >> 6 & 63 | 128)), b.push(g & 63 | 128)) | |
} | |
return b | |
}, | |
decode: function(a) { | |
for (var b = "", d = 0, e, g, p; d < a.length;) e = a.charCodeAt(d), 128 > e ? (b += String.fromCharCode(e), d++) : 191 < e && 224 > e ? (g = a.charCodeAt(d + 1), b += String.fromCharCode((e & 31) << 6 | g & 63), d += 2) : (g = a.charCodeAt(d + 1), p = a.charCodeAt(d + 2), b += String.fromCharCode((e & | |
15) << 12 | (g & 63) << 6 | p & 63), d += 3); | |
return b | |
} | |
}; | |
L.decode = function(a, b) { | |
for (var d = L.abc + (b ? L.tailSafe : L.tail), e = 0, g = "", p, h, m, f, c; a.length % 4;) a += "\x3d"; | |
do { | |
p = d.indexOf(a.charAt(e++)); | |
h = d.indexOf(a.charAt(e++)); | |
f = d.indexOf(a.charAt(e++)); | |
c = d.indexOf(a.charAt(e++)); | |
if (0 > p || 0 > h || 0 > f || 0 > c) return null; | |
m = p << 18 | h << 12 | f << 6 | c; | |
p = m >> 16 & 255; | |
h = m >> 8 & 255; | |
m &= 255; | |
g = 64 == f ? g + String.fromCharCode(p) : 64 == c ? g + String.fromCharCode(p, h) : g + String.fromCharCode(p, h, m) | |
} while (e < a.length); | |
return g | |
}; | |
k.reduce = function(a, b, d) { | |
var e = 0; | |
b == w && | |
(b = d[0], e++); | |
for (; e < d.length;) b = a(b, d[e]), e++; | |
return b | |
}; | |
k.filter = function(a, b) { | |
var d, e = []; | |
for (d = 0; d < b.length; d++) a(b[d]) && e.push(b[d]); | |
return e | |
}; | |
ea.parse = function(a) { | |
try { | |
return JSON.parse(a) | |
} catch (b) { | |
return null | |
} | |
}; | |
var Ga = P.inherit({ | |
hitId: 0, | |
trackHash: !1, | |
trimParams: !1, | |
webvisor: !1, | |
counter: null, | |
counterNum: 0, | |
resource: "watch", | |
retry: !0, | |
paramsQueue: { | |
paramsQueue: [], | |
length: function() { | |
return this.paramsQueue.length | |
}, | |
push: function(a) { | |
this.paramsQueue.push(a) | |
}, | |
_reduce: function(a) { | |
return function(b, d) { | |
k.arrayEvery(k.keys(d), | |
function(e) { | |
if (b.hasOwnProperty(e)) return 1; - 1 == k.arrayIndexOf(a, e) && (b[e] = d[e], delete d[e]); | |
return 1 | |
}); | |
return b | |
} | |
}, | |
_filter: function(a) { | |
return k.keys(a).length | |
}, | |
mixin: function(a) { | |
var b = {}; | |
this.paramsQueue.length && (b = k.reduce(this._reduce(k.keys(a)), {}, this.paramsQueue), this.paramsQueue = k.filter(this._filter, this.paramsQueue)); | |
return k.mixin({}, a, b) | |
} | |
}, | |
postParams: ["site-info"], | |
countersNoTitle: "22836271 1143050 29626870 9928105 26128362 29850769".split(" "), | |
fake: !1, | |
sendTitle: !0, | |
_initComponent: function() { | |
Ga.superclass._initComponent.apply(this, | |
arguments); | |
this._trackHash = this.trackHash; | |
"0" === "" + this.counterType && (this.sendTitle = -1 === k.arrayIndexOf(this.countersNoTitle, "" + this.counterId)) | |
}, | |
setTrackHash: function(a) { | |
this._trackHash = a | |
}, | |
sendHit: function(a) { | |
this._hitExt({ | |
url: a.url, | |
title: a.title, | |
referrer: a.referrer, | |
vParams: a.vParams, | |
modes: k.mixin(a.modes || {}, { | |
ar: !0, | |
saveRef: !0, | |
pv: !0 | |
}), | |
callback: a.callback, | |
hasPrerender: a.hasPrerender, | |
ctx: a.ctx | |
}, "hit") | |
}, | |
sendExperiments: function(a) { | |
this._hitExt({ | |
url: K().href, | |
title: "", | |
referrer: "", | |
modes: { | |
ex: !0, | |
ar: !0 | |
}, | |
experiments: a.experiments, | |
callback: a.callback, | |
ctx: a.ctx | |
}, "exp") | |
}, | |
sendPrerenderHit: function(a) { | |
this._hitExt({ | |
url: a.url, | |
vParams: a.vParams, | |
title: a.title, | |
referrer: a.referrer, | |
modes: { | |
ar: !0, | |
pq: !0 | |
} | |
}, "hit") | |
}, | |
sendAjaxHit: function(a) { | |
this._hitExt({ | |
url: a.url, | |
title: a.title, | |
referrer: a.referrer, | |
modes: a.modes | |
}, "hit") | |
}, | |
sendParams: function(a, b, d, e) { | |
this._hitExt({ | |
url: e || K().href, | |
title: "", | |
referrer: "", | |
forceNoRedirect: !0, | |
vParams: a, | |
modes: { | |
ar: !0, | |
pa: !0, | |
onlyData: !0 | |
}, | |
callback: b, | |
ctx: d | |
}, "pa") | |
}, | |
sendGoal: function(a, b) { | |
if (/[/&=?#]/.test(a)) k.warning("Incorrect goal"); | |
else if (a) { | |
var d = b.url ? k.parseUrl(b.url) : K(); | |
this._hitExt({ | |
url: "goal://" + d.hostname + "/" + encodeURIComponent(a), | |
title: v.getDocumentTitle(), | |
referrer: d.href, | |
forceNoRedirect: !0, | |
vParams: b.vParams, | |
modes: { | |
ar: !0 | |
}, | |
callback: b.callback, | |
ctx: b.ctx | |
}, "go") | |
} else k.warning("Empty goal") | |
}, | |
sendClickLink: function(a, b) { | |
this._hitExt({ | |
url: a.url, | |
title: a.title, | |
referrer: b || K().href, | |
modes: a.modes | |
}) | |
}, | |
sendExtLink: function(a, b) { | |
this._hitExt({ | |
url: a.url, | |
title: a.title || "", | |
referrer: b || K().href, | |
vParams: a.vParams, | |
modes: { | |
ar: !0, | |
ln: !0, | |
ut: db | |
}, | |
callback: a.callback, | |
ctx: a.ctx | |
}, "cl") | |
}, | |
sendFileUpload: function(a) { | |
this._hitExt({ | |
url: a.url, | |
title: a.title || "", | |
referrer: K().href, | |
vParams: a.vParams, | |
modes: { | |
ar: !0, | |
ln: !0, | |
dl: !0 | |
}, | |
callback: a.callback, | |
ctx: a.ctx | |
}, "fu") | |
}, | |
sendNotBounce: function(a, b) { | |
this._hitExt({ | |
url: b.url || K().href, | |
title: "", | |
referrer: "", | |
modes: { | |
cl: a, | |
ar: !0, | |
nb: !0, | |
onlyData: !0 | |
}, | |
callback: b.callback, | |
ctx: b.ctx | |
}, "nb") | |
}, | |
sendDevice: function(a) { | |
this._hitExt({ | |
browserInfo: { | |
di: a.data, | |
dip: a.port | |
}, | |
callback: a.callback, | |
ctx: a.ctx | |
}, "de") | |
}, | |
_hitExt: function(a, | |
b) { | |
function d(a, c) { | |
c && (t[a] = c) | |
} | |
var e, g, p, h = {}; | |
if (!k.isMetrikaPlayer()) { | |
var m = a.modes || {}; | |
var f = a.browserInfo || {}; | |
var c = "undefined" !== typeof a.referrer ? a.referrer : Ta.lastReferrer; | |
var l = a.url || ""; | |
var t = {}; | |
a.nohit && d("nohit", 1); | |
m.ar && !m.onlyData && (c = null === c || "" === c ? "" : this._prepareHitUrl(c), l = this._prepareHitUrl(a.url)); | |
d("forceNoRedirect", a.forceNoRedirect); | |
d("page-ref", k.trim(c, eb)); | |
d("page-url", k.trim(l, eb)); | |
k.is4Bytes(a.title) && d("charset", "utf-8"); - 1 != K().hostname.search(/(?:^|\.)(?:ya|yandex)\.(?:\w+|com?\.\w+)$/) ? | |
d("ut", db) : "undefined" != typeof m.ut && d("ut", k.trim(m.ut, Ob)); | |
d("exp", a.experiments); | |
(g = a.vParams) && this.counter && g.__ym && (k.isNumber(g.__ym.turbo_page) && (this.counter.tp = g.__ym.turbo_page), k.isNumber(g.__ym.turbo_page_id) && (this.counter.tpid = g.__ym.turbo_page_id)); | |
(!g || k.isObject(g) && !g.__ym && !g.__ymu) && this.paramsQueue.length() && k.inArray(["go", "hit", "pa"], b) && (g = this.paramsQueue.mixin(g)); | |
g && (l = k.toJSON(g), this.trimParams && l.length > Pb ? p = !0 : 7E5 < l ? k.warning("Too big params") : d("site-info", l)); | |
m.saveRef && | |
(Ta.lastReferrer = c); | |
h = function(a, c) { | |
var b = {}; | |
k.forEachKey(c, function(a, c) { | |
-1 === k.arrayIndexOf(["", 0, w, null], c) && (b[a] = c) | |
}); | |
return k.mixin({}, a, b) | |
}(h, { | |
gdpr: wa.getState(this.globalConfig), | |
tp: this.counter && this.counter.tp, | |
tpid: this.counter && this.counter.tpid, | |
fu: this.getFu(a.url, a.referrer), | |
eu: this.globalConfig.get("isEU"), | |
v: this._getVersion(), | |
pr: a.hasPrerender ? 1 : null | |
}); | |
this.fake || (e = this._getTechInfo(a.title, m, this.counterId, a.ts, a.tz, this._trackHash, this.hitId, this.webvisor, this.counter, a.nohit)); | |
h.wv = | |
2; | |
k.mixin(f, e, h); | |
this.send(t, f, function() { | |
p && this.counter.params(g); | |
a.userParams && this.counter.userParams(a.userParams); | |
k.isFunction(a.callback) && a.callback.apply(a.ctx, arguments) | |
}, this) | |
} | |
}, | |
_prepareHitUrl: function(a) { | |
var b = K(), | |
d = b.host; | |
b = b.href; | |
if (!k.isString(a)) return b; | |
if (-1 != a.search(/^[a-z][\w.+-]+:\/\//i)) return a; | |
var e = a.charAt(0); | |
if ("?" == e) return e = b.search(/\?/), -1 == e ? b + a : b.substr(0, e) + a; | |
if ("#" == e) return e = b.search(/#/), -1 == e ? b + a : b.substr(0, e) + a; | |
if ("/" == e) { | |
if (e = b.search(d), -1 != e) return b.substr(0, | |
e + d.length) + a | |
} else return d = b.split("/"), d[d.length - 1] = a, d.join("/"); | |
return a | |
}, | |
getFu: function(a, b) { | |
var d = a !== K().href, | |
e = q.referrer.replace(/\/$/, ""), | |
g = (b || "").replace(/\/$/, ""); | |
e = e !== g; | |
g = 0; | |
e && d ? g = 3 : e ? g = 1 : d && (g = 2); | |
return g | |
}, | |
_getTechInfo: function(a, b, d, e, g, p, h, m, f, c) { | |
function l(a, c, b) { | |
var f = "" + c; | |
a && c && (b || -1 === f.indexOf(":")) && (z[a] = f) | |
} | |
function t(a) { | |
b[a] && l(a, "1") | |
} | |
var z = {}; | |
b = b || {}; | |
e = e || x.getTimestamp(); | |
g = g || x.getTimezone(); | |
l("j", u.getJavaEnabled() ? "1" : ""); | |
var D = u.isDesktop(this.globalConfig); | |
D !== w && | |
l("dp", D ? "1" : "0"); | |
l("nt", u.netType()); | |
l("ns", u.getNavigationStart()); | |
da && l("s", da.width + "x" + da.height + "x" + (da.colorDepth || da.pixelDepth)); | |
n.devicePixelRatio && l("sk", n.devicePixelRatio); | |
u.isSelenium() && l("iss", "1"); | |
u.isHeadLess() && l("hdl", "1"); | |
u.isIframe() && (l("ifr", "1"), l("sti", u.isSameOriginTopFrame() ? "1" : "0")); | |
n.ia_document && n.ia_document.shareURL && n.ia_document.referrer && l("iia", "1"); | |
l("adb", pb.getVal()); | |
l("f", u.getFlashVersion()); | |
l("l", u.getSilverlightVersion()); | |
l("fpr", u.getFingerPrint()); | |
l("cn", | |
this.counterNum); | |
b.pa || (D = v.getViewportSize(), l("w", D[0] + "x" + D[1])); | |
l("z", g); | |
l("i", e); | |
l("et", x.getSeconds()); | |
l("en", v.getDocumentCharset()); | |
l("c", navigator.cookieEnabled ? "1" : ""); | |
l("la", u.getLanguage()); | |
l("ntf", u.getNotificationPermission()); | |
k.random(100) || l("np", L.encode(Sa.encode(k.trim(u.getPlatform(), 100)))); | |
p && l("wh", "1"); | |
g = "ar ln dl cpf ad nb pa pq pv ex".split(" "); | |
for (e = 0; e < g.length; e++) t(g[e]); | |
g = "va vt sn sa he pai".split(" "); | |
b.nb && g.push("cl"); | |
for (e = 0; e < g.length; e++) p = g[e], l(p, b[p]); | |
g = new ca({ | |
counterId: d | |
}); | |
g.isEnabled() && (d = g.getStorageId(), e = g.get("reqNum"), c || (e ? e++ : e = 1), g.set("reqNum", e), g.get("reqNum") == e ? (l("ls", d), l("rqn", e)) : (g.remove("reqNum"), g.clearStorageId(), 1 < e && (l("ls", d), l("rqn", 0)))); | |
l("rn", k.random()); | |
l("hid", h); | |
c || 3 == this.counterId || b.pq || l("ds", Hb(f)); | |
f._firstPaint || c || (f._firstPaint = Jb(), l("fp", f._firstPaint)); | |
if (m) { | |
n.name || (n.name = Math.round(65535 * Math.random())); | |
if (h = +n.name) 0 > h && (h *= -1), h %= 65535; | |
l("wn", h || k.fletcher(n.name)); | |
try { | |
n.history && l("hl", String(n.history.length)) | |
} catch (y) {} | |
} | |
h = | |
""; | |
this.sendTitle && (h = this._getTitle(a)); | |
l("t", h, !0); | |
return z | |
}, | |
_getTitle: function(a) { | |
a = "undefined" == typeof a ? (a = v.getDocumentTitle()) ? k.trim(a, qb) : "" : k.trim(a, qb); | |
return a | |
} | |
}); | |
k.array2Props = function(a) { | |
var b = a.length, | |
d = {}, | |
e = d, | |
g; | |
for (g = 0; g < b - 1; g++) { | |
var p = a[g]; | |
e[p] = {}; | |
g < b - 2 && (e = e[p]) | |
} | |
e[p] = a[b - 1]; | |
return d | |
}; | |
var Oa = I.inherit({ | |
sampling: 1, | |
counterId: 26302566, | |
_initComponent: function() { | |
Oa.superclass._initComponent.apply(this, arguments); | |
this._sender = new Ga({ | |
protocol: "https:", | |
counterId: this.counterId, | |
retry: !1, | |
counter: {} | |
}) | |
}, | |
log: function() { | |
this.logParams(k.array2Props(arguments)) | |
}, | |
logParams: function(a) { | |
Math.random() < this.sampling && this._sender.sendHit({ | |
url: H.href, | |
title: "", | |
referrer: "", | |
vParams: a | |
}) | |
} | |
}), | |
Qb = P.inherit({ | |
resource: "webvisor", | |
retry: !0, | |
postParams: ["wv-data"], | |
sendPacket: function(a, b, d, e, g, p, h, m) { | |
if (!a || !a.length) return !1; | |
var f = L.encode(a, !0); | |
if (0 == f.indexOf("AAAAAAAAADw") && n.Error) { | |
var c = Error(); | |
"string" == typeof c.stack && (new Oa({ | |
sampling: .1 | |
})).log("bad visor packet 5", 1) | |
} | |
a = { | |
rn: k.random(), | |
"page-url": b, | |
wmode: 0, | |
"wv-type": 0, | |
"wv-hit": d, | |
"wv-part": e + 1, | |
"wv-check": k.fletcher(a), | |
"wv-data": f | |
}; | |
g = { | |
v: this._getVersion(), | |
z: g, | |
i: p | |
}; | |
return this.send(a, g, h, m) | |
} | |
}), | |
kb = va.inherit({ | |
protocol: "", | |
counterId: "", | |
counterType: "", | |
meta: null, | |
maxBufferSize: 7500, | |
flushTimeout: 3E4, | |
storageKey: "visorbuff", | |
active: !1, | |
_initComponent: function() { | |
this.storage = new ca({ | |
counterId: this.counterId | |
}); | |
this._sender = new Qb({ | |
globalConfig: this.globalConfig, | |
protocol: this.protocol, | |
counterId: this.counterId, | |
counterType: this.counterType | |
}); | |
kb.superclass._initComponent.apply(this, | |
arguments) | |
}, | |
onFlush: function(a, b, d) { | |
this._sender.sendPacket(a, b.url, b.hitId, d, b.timezone, b.timestamp) | |
} | |
}); | |
v.getDocumentHTML = function() { | |
var a = ""; | |
var b = q.documentElement; | |
var d = b.outerHTML, | |
e, g; | |
if (d) b = d; | |
else { | |
d = b.attributes; | |
var p = ""; | |
for (e = 0; e < d.length; e++)(g = d[e]) && (p += " " + g.name + '\x3d"' + (g.value || "") + '"'); | |
b = "\x3chtml" + p + "\x3e" + b.innerHTML + "\x3c/html\x3e" | |
} | |
if (d = q.doctype) a = d.publicId ? ' PUBLIC "' + d.publicId + '"' : "", p = d.systemId ? ' "' + d.systemId + '"' : "", a = "\x3c!DOCTYPE " + d.name + a + p + "\x3e\n"; | |
return a + b | |
}; | |
v.getElementParent = | |
function(a) { | |
if (!a || a == q.documentElement) return null; | |
if (a == v.getBody()) return q.documentElement; | |
var b = null; | |
try { | |
b = a.parentNode | |
} catch (d) {} | |
return b | |
}; | |
v.getElementChildren = function(a, b) { | |
var d = [], | |
e, g, p; | |
if (a && (e = a.childNodes)) { | |
var h = 0; | |
for (p = e.length; h < p; h++) { | |
var m = e[h]; | |
(g = "INPUT" == m.nodeName && m.type && "hidden" == m.type.toLocaleLowerCase()) || b && m.nodeName != b || k.mergeArrays(d, [m]) | |
} | |
} | |
return d | |
}; | |
v.getElementNeighborPosition = function(a) { | |
var b = v.getElementParent(a), | |
d; | |
if (b) { | |
var e = 0; | |
b = b.childNodes; | |
var g = a && a.nodeName; | |
for (d = 0; d < b.length; d++) { | |
var p = b[d] && b[d].nodeName; | |
if (g == p) { | |
if (a == b[d]) return e; | |
e++ | |
} | |
} | |
} | |
return 0 | |
}; | |
v.getDocumentScroll = function() { | |
var a = v.getBody(); | |
return [n.pageXOffset || q.documentElement && q.documentElement.scrollLeft || a && a.scrollLeft || 0, n.pageYOffset || q.documentElement && q.documentElement.scrollTop || a && a.scrollTop || 0] | |
}; | |
v.getElementXY = function(a) { | |
var b; | |
if (!a || !a.ownerDocument || "PARAM" == a.tagName || a == v.getBody() || a == q.documentElement) return [0, 0]; | |
if (a.getBoundingClientRect) { | |
a = a.getBoundingClientRect(); | |
var d = | |
v.getDocumentScroll(); | |
return [Math.round(a.left + d[0]), Math.round(a.top + d[1])] | |
} | |
for (b = d = 0; a;) d += a.offsetLeft, b += a.offsetTop, a = a.offsetParent; | |
return [d, b] | |
}; | |
v.getDocumentSize = function() { | |
var a = v.getRootElement(), | |
b = v.getViewportSize(); | |
return [Math.max(a.scrollWidth, b[0]), Math.max(a.scrollHeight, b[1])] | |
}; | |
v.getElementSize = function(a) { | |
var b; | |
return a == v.getBody() || a == q.documentElement ? v.getDocumentSize() : (b = a.getBoundingClientRect && a.getBoundingClientRect()) ? [b.width, b.height] : [a.offsetWidth, a.offsetHeight] | |
}; | |
v.getElementRegion = | |
function(a) { | |
var b = v.getElementXY(a); | |
a = v.getElementSize(a); | |
return [b[0], b[1], a[0], a[1]] | |
}; | |
v.calcChildrenChecksum = function(a) { | |
var b = E(function() { | |
return a.innerHTML | |
}, "", !0)() || ""; | |
return k.fletcher(b.replace(/(<[^>]*>|[\u0000-\u0020])/g, "")) | |
}; | |
v.getFormNumber = function(a) { | |
var b = q.getElementsByTagName("form"), | |
d; | |
var e = 0; | |
for (d = b.length; e < d; e++) | |
if (b[e] == a) return e; | |
return -1 | |
}; | |
v.isEmptyField = function(a) { | |
return "INPUT" == a.nodeName && "submit" != a.type && "image" != a.type && "hidden" != a.type ? "radio" == a.type || "checkbox" == a.type ? | |
!a.checked : !a.value : "TEXTAREA" == a.nodeName ? !a.value : "SELECT" == a.nodeName ? 0 > a.selectedIndex : !0 | |
}; | |
v.calcTextChecksum = function(a) { | |
var b = ""; | |
a = a.childNodes; | |
var d; | |
var e = 0; | |
for (d = a.length; e < d; e++) a[e] && 3 == a[e].nodeType && (b += a[e].nodeValue); | |
return k.fletcher(b.replace(/[\u0000-\u0020]+/g, "")) | |
}; | |
v.calcAttribChecksum = function(a) { | |
var b = "", | |
d = "width height align title alt name".split(" "), | |
e; | |
"IMG" == a.tagName && (b += a.src.toLowerCase()); | |
"A" == a.tagName && (b += a.href.toLowerCase()); | |
b += String(a.className || "").toLowerCase(); | |
for (e = 0; e < d.length; e++) a.getAttribute && (b += String(a.getAttribute(d[e]) || "").toLowerCase()); | |
return k.fletcher(b.replace(/[\u0000-\u0020]+/g, "")) | |
}; | |
v.classNameExists = function(a, b) { | |
try { | |
return (new RegExp("(?:^|\\s)" + b + "(?:\\s|$)")).test(a.className) | |
} catch (d) { | |
return !1 | |
} | |
}; | |
v.getElementsByClassName = function(a, b) { | |
var d; | |
b = b || q; | |
var e = b.getElementsByTagName("*"); | |
var g = []; | |
for (d = 0; d < e.length; d++) v.classNameExists(e[d], a) && g.push(e[d]); | |
return g | |
}; | |
try { | |
var cb = function(a) { | |
function b(e) { | |
if (d[e]) return d[e].f; | |
var g = d[e] = { | |
Z: e, | |
L: !1, | |
f: {} | |
}; | |
return a[e].call(g.f, g, g.f, b), g.L = !0, g.f | |
} | |
var d = {}; | |
return b.aa = a, b.W = d, b.o = function(a, d, p) { | |
b.D(a, d) || Object.defineProperty(a, d, { | |
enumerable: !0, | |
get: p | |
}) | |
}, b.C = function(a) { | |
"undefined" != typeof Symbol && Symbol.toStringTag && Object.defineProperty(a, Symbol.toStringTag, { | |
value: "Module" | |
}); | |
Object.defineProperty(a, "__esModule", { | |
value: !0 | |
}) | |
}, b.$ = function(a, d) { | |
if ((1 & d && (a = b(a)), 8 & d) || 4 & d && "object" == typeof a && a && a.a) return a; | |
var e = Object.create(null); | |
if (b.C(e), Object.defineProperty(e, "default", { | |
enumerable: !0, | |
value: a | |
}), 2 & d && "string" != typeof a) | |
for (var h in a) b.o(e, h, function(b) { | |
return a[b] | |
}.bind(null, h)); | |
return e | |
}, b.X = function(a) { | |
var d = a && a.a ? function() { | |
return a["default"] | |
} : function() { | |
return a | |
}; | |
return b.o(d, "a", d), d | |
}, b.D = function(a, b) { | |
return Object.prototype.hasOwnProperty.call(a, b) | |
}, b.Y = "", b(b.ba = 0) | |
}([function(a, b, d) { | |
var e = this && this.U || function() { | |
return (e = Object.assign || function(a) { | |
for (var c, b = 1, f = arguments.length; b < f; b++) | |
for (var d in c = arguments[b]) Object.prototype.hasOwnProperty.call(c, d) && (a[d] = c[d]); | |
return a | |
}).apply(this, arguments) | |
}; | |
b.a = !0; | |
var g = d(1), | |
p = d(2), | |
h = d(4), | |
m = d(5), | |
f = d(6); | |
a = function() { | |
function a(a) { | |
var c = this; | |
this.l = a; | |
this.H = { | |
webGL: g.B, | |
dnt: m.w, | |
plugins: p.A, | |
applePay: h.v | |
}; | |
this.l = e({ | |
webGL: !1, | |
dnt: !1, | |
plugins: !1, | |
applePay: !1 | |
}, a); | |
this.G = Object.keys(this.l).filter(function(a) { | |
return c.l[a] | |
}).map(function(a) { | |
return new c.H[a] | |
}) | |
} | |
return a.prototype.toString = function(a) { | |
void 0 === a && (a = !0); | |
var c = this.G.map(function(a) { | |
var c = ""; | |
try { | |
c = a.g() | |
} catch (y) {} | |
return c | |
}); | |
return a ? [f.hash(c.join(""), 210)] : c.map(function(a) { | |
return f.hash(a, | |
210) | |
}) | |
}, a | |
}(); | |
b.T = a; | |
b["default"] = a | |
}, function(a, b) { | |
var d = this && this.V || function() { | |
function a(b, d) { | |
return (a = Object.setPrototypeOf || { | |
__proto__: [] | |
} | |
instanceof Array && function(a, b) { | |
a.__proto__ = b | |
} || function(a, b) { | |
for (var c in b) b.hasOwnProperty(c) && (a[c] = b[c]) | |
})(b, d) | |
} | |
return function(b, d) { | |
function e() { | |
this.constructor = b | |
} | |
a(b, d); | |
b.prototype = null === d ? Object.create(d) : (e.prototype = d.prototype, new e) | |
} | |
}(); | |
b.a = !0; | |
var e = function(a) { | |
function b() { | |
var b = a.call(this, "webgl") || this; | |
return b.h && !b.J() && (b.h = !1), b | |
} | |
return d(b, | |
a), b.prototype.J = function() { | |
var a = this.canvas.getContext && (this.canvas.getContext("webgl") || this.canvas.getContext("experimental-webgl")); | |
return !!n.WebGLRenderingContext && !!a | |
}, b.prototype.j = function(a) { | |
var b = this.c; | |
return b.clearColor(0, 0, 0, 1), b.enable(b.DEPTH_TEST), b.depthFunc(b.LEQUAL), b.clear(b.COLOR_BUFFER_BIT | b.DEPTH_BUFFER_BIT), "[" + a[0] + ", " + a[1] + "]" | |
}, b.prototype.M = function(a) { | |
var b, f = a.getExtension("EXT_texture_filter_anisotropic") || a.getExtension("WEBKIT_EXT_texture_filter_anisotropic") || | |
a.getExtension("MOZ_EXT_texture_filter_anisotropic"); | |
return f ? (0 === (b = a.getParameter(f.MAX_TEXTURE_MAX_ANISOTROPY_EXT)) && (b = 2), b) : null | |
}, b.prototype.s = function() { | |
var a = this.c, | |
b = [], | |
f = a.createBuffer(); | |
a.bindBuffer(a.ARRAY_BUFFER, f); | |
a.bufferData(a.ARRAY_BUFFER, new Float32Array([-.2, -.9, 0, .4, -.26, 0, 0, .732134444, 0]), a.STATIC_DRAW); | |
f.K = 3; | |
f.O = 3; | |
var c = a.createProgram(), | |
d = a.createShader(a.VERTEX_SHADER); | |
a.shaderSource(d, "attribute vec2 attrVertex;varying vec2 varyinTexCoordinate;uniform vec2 uniformOffset;void main(){varyinTexCoordinate\x3dattrVertex+uniformOffset;gl_Position\x3dvec4(attrVertex,0,1);}"); | |
a.compileShader(d); | |
var e = a.createShader(a.FRAGMENT_SHADER); | |
a.shaderSource(e, "precision mediump float;varying vec2 varyinTexCoordinate;void main() {gl_FragColor\x3dvec4(varyinTexCoordinate,0,1);}"); | |
a.compileShader(e); | |
a.attachShader(c, d); | |
a.attachShader(c, e); | |
a.linkProgram(c); | |
a.useProgram(c); | |
c.R = a.getAttribLocation(c, "attrVertex"); | |
c.P = a.getUniformLocation(c, "uniformOffset"); | |
a.enableVertexAttribArray(c.ca); | |
a.vertexAttribPointer(c.R, f.K, a.FLOAT, !1, 0, 0); | |
a.uniform2f(c.P, 1, 1); | |
a.drawArrays(a.TRIANGLE_STRIP, | |
0, f.O); | |
null != a.canvas && b.push(a.canvas.toDataURL()); | |
b.push("extensions:" + a.getSupportedExtensions().join(";")); | |
b.push("webgl aliased line width range:" + this.j(a.getParameter(a.ALIASED_LINE_WIDTH_RANGE))); | |
b.push("webgl aliased point size range:" + this.j(a.getParameter(a.ALIASED_POINT_SIZE_RANGE))); | |
b.push("webgl alpha bits:" + a.getParameter(a.ALPHA_BITS)); | |
b.push("webgl antialiasing:" + (a.getContextAttributes().antialias ? "yes" : "no")); | |
b.push("webgl blue bits:" + a.getParameter(a.BLUE_BITS)); | |
b.push("webgl depth bits:" + | |
a.getParameter(a.DEPTH_BITS)); | |
b.push("webgl green bits:" + a.getParameter(a.GREEN_BITS)); | |
b.push("webgl max anisotropy:" + this.M(a)); | |
b.push("webgl max combined texture image units:" + a.getParameter(a.MAX_COMBINED_TEXTURE_IMAGE_UNITS)); | |
b.push("webgl max cube map texture size:" + a.getParameter(a.MAX_CUBE_MAP_TEXTURE_SIZE)); | |
b.push("webgl max fragment uniform vectors:" + a.getParameter(a.MAX_FRAGMENT_UNIFORM_VECTORS)); | |
b.push("webgl max render buffer size:" + a.getParameter(a.MAX_RENDERBUFFER_SIZE)); | |
b.push("webgl max texture image units:" + | |
a.getParameter(a.MAX_TEXTURE_IMAGE_UNITS)); | |
b.push("webgl max texture size:" + a.getParameter(a.MAX_TEXTURE_SIZE)); | |
b.push("webgl max varying vectors:" + a.getParameter(a.MAX_VARYING_VECTORS)); | |
b.push("webgl max vertex attribs:" + a.getParameter(a.MAX_VERTEX_ATTRIBS)); | |
b.push("webgl max vertex texture image units:" + a.getParameter(a.MAX_VERTEX_TEXTURE_IMAGE_UNITS)); | |
b.push("webgl max vertex uniform vectors:" + a.getParameter(a.MAX_VERTEX_UNIFORM_VECTORS)); | |
b.push("webgl max viewport dims:" + this.j(a.getParameter(a.MAX_VIEWPORT_DIMS))); | |
b.push("webgl red bits:" + a.getParameter(a.RED_BITS)); | |
b.push("webgl renderer:" + a.getParameter(a.RENDERER)); | |
b.push("webgl shading language version:" + a.getParameter(a.SHADING_LANGUAGE_VERSION)); | |
b.push("webgl stencil bits:" + a.getParameter(a.STENCIL_BITS)); | |
b.push("webgl vendor:" + a.getParameter(a.VENDOR)); | |
b.push("webgl version:" + a.getParameter(a.VERSION)); | |
try { | |
var g = a.getExtension("WEBGL_debug_renderer_info"); | |
g && (b.push("webgl unmasked vendor:" + a.getParameter(g.UNMASKED_VENDOR_WEBGL)), b.push("webgl unmasked renderer:" + | |
a.getParameter(g.UNMASKED_RENDERER_WEBGL))) | |
} catch (D) {} | |
return a.getShaderPrecisionFormat ? (b.push("webgl vertex shader high float precision:" + a.getShaderPrecisionFormat(a.VERTEX_SHADER, a.HIGH_FLOAT).precision), b.push("webgl vertex shader high float precision rangeMin:" + a.getShaderPrecisionFormat(a.VERTEX_SHADER, a.HIGH_FLOAT).rangeMin), b.push("webgl vertex shader high float precision rangeMax:" + a.getShaderPrecisionFormat(a.VERTEX_SHADER, a.HIGH_FLOAT).rangeMax), b.push("webgl vertex shader medium float precision:" + | |
a.getShaderPrecisionFormat(a.VERTEX_SHADER, a.MEDIUM_FLOAT).precision), b.push("webgl vertex shader medium float precision rangeMin:" + a.getShaderPrecisionFormat(a.VERTEX_SHADER, a.MEDIUM_FLOAT).rangeMin), b.push("webgl vertex shader medium float precision rangeMax:" + a.getShaderPrecisionFormat(a.VERTEX_SHADER, a.MEDIUM_FLOAT).rangeMax), b.push("webgl vertex shader low float precision:" + a.getShaderPrecisionFormat(a.VERTEX_SHADER, a.LOW_FLOAT).precision), b.push("webgl vertex shader low float precision rangeMin:" + | |
a.getShaderPrecisionFormat(a.VERTEX_SHADER, a.LOW_FLOAT).rangeMin), b.push("webgl vertex shader low float precision rangeMax:" + a.getShaderPrecisionFormat(a.VERTEX_SHADER, a.LOW_FLOAT).rangeMax), b.push("webgl fragment shader high float precision:" + a.getShaderPrecisionFormat(a.FRAGMENT_SHADER, a.HIGH_FLOAT).precision), b.push("webgl fragment shader high float precision rangeMin:" + a.getShaderPrecisionFormat(a.FRAGMENT_SHADER, a.HIGH_FLOAT).rangeMin), b.push("webgl fragment shader high float precision rangeMax:" + | |
a.getShaderPrecisionFormat(a.FRAGMENT_SHADER, a.HIGH_FLOAT).rangeMax), b.push("webgl fragment shader medium float precision:" + a.getShaderPrecisionFormat(a.FRAGMENT_SHADER, a.MEDIUM_FLOAT).precision), b.push("webgl fragment shader medium float precision rangeMin:" + a.getShaderPrecisionFormat(a.FRAGMENT_SHADER, a.MEDIUM_FLOAT).rangeMin), b.push("webgl fragment shader medium float precision rangeMax:" + a.getShaderPrecisionFormat(a.FRAGMENT_SHADER, a.MEDIUM_FLOAT).rangeMax), b.push("webgl fragment shader low float precision:" + | |
a.getShaderPrecisionFormat(a.FRAGMENT_SHADER, a.LOW_FLOAT).precision), b.push("webgl fragment shader low float precision rangeMin:" + a.getShaderPrecisionFormat(a.FRAGMENT_SHADER, a.LOW_FLOAT).rangeMin), b.push("webgl fragment shader low float precision rangeMax:" + a.getShaderPrecisionFormat(a.FRAGMENT_SHADER, a.LOW_FLOAT).rangeMax), b.push("webgl vertex shader high int precision:" + a.getShaderPrecisionFormat(a.VERTEX_SHADER, a.HIGH_INT).precision), b.push("webgl vertex shader high int precision rangeMin:" + a.getShaderPrecisionFormat(a.VERTEX_SHADER, | |
a.HIGH_INT).rangeMin), b.push("webgl vertex shader high int precision rangeMax:" + a.getShaderPrecisionFormat(a.VERTEX_SHADER, a.HIGH_INT).rangeMax), b.push("webgl vertex shader medium int precision:" + a.getShaderPrecisionFormat(a.VERTEX_SHADER, a.MEDIUM_INT).precision), b.push("webgl vertex shader medium int precision rangeMin:" + a.getShaderPrecisionFormat(a.VERTEX_SHADER, a.MEDIUM_INT).rangeMin), b.push("webgl vertex shader medium int precision rangeMax:" + a.getShaderPrecisionFormat(a.VERTEX_SHADER, a.MEDIUM_INT).rangeMax), | |
b.push("webgl vertex shader low int precision:" + a.getShaderPrecisionFormat(a.VERTEX_SHADER, a.LOW_INT).precision), b.push("webgl vertex shader low int precision rangeMin:" + a.getShaderPrecisionFormat(a.VERTEX_SHADER, a.LOW_INT).rangeMin), b.push("webgl vertex shader low int precision rangeMax:" + a.getShaderPrecisionFormat(a.VERTEX_SHADER, a.LOW_INT).rangeMax), b.push("webgl fragment shader high int precision:" + a.getShaderPrecisionFormat(a.FRAGMENT_SHADER, a.HIGH_INT).precision), b.push("webgl fragment shader high int precision rangeMin:" + | |
a.getShaderPrecisionFormat(a.FRAGMENT_SHADER, a.HIGH_INT).rangeMin), b.push("webgl fragment shader high int precision rangeMax:" + a.getShaderPrecisionFormat(a.FRAGMENT_SHADER, a.HIGH_INT).rangeMax), b.push("webgl fragment shader medium int precision:" + a.getShaderPrecisionFormat(a.FRAGMENT_SHADER, a.MEDIUM_INT).precision), b.push("webgl fragment shader medium int precision rangeMin:" + a.getShaderPrecisionFormat(a.FRAGMENT_SHADER, a.MEDIUM_INT).rangeMin), b.push("webgl fragment shader medium int precision rangeMax:" + | |
a.getShaderPrecisionFormat(a.FRAGMENT_SHADER, a.MEDIUM_INT).rangeMax), b.push("webgl fragment shader low int precision:" + a.getShaderPrecisionFormat(a.FRAGMENT_SHADER, a.LOW_INT).precision), b.push("webgl fragment shader low int precision rangeMin:" + a.getShaderPrecisionFormat(a.FRAGMENT_SHADER, a.LOW_INT).rangeMin), b.push("webgl fragment shader low int precision rangeMax:" + a.getShaderPrecisionFormat(a.FRAGMENT_SHADER, a.LOW_INT).rangeMax), b.join("~")) : b.join("~") | |
}, b | |
}(a = function() { | |
function a(a) { | |
this.F = a; | |
this.h = !0; | |
this.canvas = q.createElement("canvas"); | |
this.I() || (this.h = !1) | |
} | |
return a.prototype.I = function() { | |
return this.c = this.canvas.getContext(this.F), !(!this.canvas.getContext || !this.c) | |
}, a.prototype.g = function() { | |
return this.h ? this.s() : this.id | |
}, a | |
}()); | |
b.B = e; | |
a = function(a) { | |
function b() { | |
return a.call(this, "2d") || this | |
} | |
return d(b, a), b.prototype.s = function() { | |
var a = this.canvas, | |
b = this.c, | |
f = []; | |
return a.width = 2E3, a.height = 200, a.style.display = "inline", b.rect(0, 0, 10, 10), b.rect(2, 2, 6, 6), f.push("canvas winding:" + (!1 === | |
b.isPointInPath(5, 5, "evenodd") ? "yes" : "no")), b.textBaseline = "alphabetic", b.fillStyle = "#f60", b.fillRect(125, 1, 62, 20), b.fillStyle = "#069", b.font = "11pt Arial", b.fillText("Cwm fjordbank glyphs vext quiz, \ud83d\ude03", 2, 15), b.fillStyle = "rgba(102, 204, 0, 0.2)", b.font = "18pt Arial", b.fillText("Cwm fjordbank glyphs vext quiz, \ud83d\ude03", 4, 45), b.globalCompositeOperation = "multiply", b.fillStyle = "rgb(255,0,255)", b.beginPath(), b.arc(50, 50, 50, 0, 2 * Math.PI, !0), b.closePath(), b.fill(), b.fillStyle = "rgb(0,255,255)", | |
b.beginPath(), b.arc(100, 50, 50, 0, 2 * Math.PI, !0), b.closePath(), b.fill(), b.fillStyle = "rgb(255,255,0)", b.beginPath(), b.arc(75, 100, 50, 0, 2 * Math.PI, !0), b.closePath(), b.fill(), b.fillStyle = "rgb(255,0,255)", b.arc(75, 75, 75, 0, 2 * Math.PI, !0), b.arc(75, 75, 25, 0, 2 * Math.PI, !0), b.fill("evenodd"), f.push("canvas fp:" + a.toDataURL()), f.join("~") | |
}, b | |
}(a); | |
b.S = a | |
}, function(a, b, d) { | |
b.a = !0; | |
var e = d(3); | |
a = function() { | |
function a() {} | |
return a.prototype.g = function() { | |
return e.u(navigator.plugins).sort(function(a, b) { | |
return a.name > b.name ? 1 : | |
2 | |
}).map(function(a) { | |
return [a.name, a.description, e.u(a).map(function(a) { | |
return [a.description, a.suffixes, a.type].join() | |
}).join()].join() | |
}).join() | |
}, a | |
}(); | |
b.A = a | |
}, function(a, b) { | |
b.a = !0; | |
b.u = function(a) { | |
return Array.prototype.slice.call(a) | |
} | |
}, function(a, b) { | |
b.a = !0; | |
a = function() { | |
function a() { | |
this.m = n.ApplePaySession | |
} | |
return a.prototype.g = function() { | |
var a = !1; | |
try { | |
a = n.self !== n.top | |
} catch (p) {} | |
if (!this.m || "https:" !== H.protocol || a) return ""; | |
a = ""; | |
for (var b = 1; 10 >= b; b++) a += this.m.supportsVersion(b) ? b : "0"; | |
return a + this.m.canMakePayments() | |
}, | |
a | |
}(); | |
b.v = a | |
}, function(a, b) { | |
b.a = !0; | |
a = function() { | |
function a() { | |
this.b = n.navigator | |
} | |
return a.prototype.g = function() { | |
return this.b.i ? this.b.i : this.b.N ? this.b.N : this.b.i ? this.b.i : "unknown" | |
}, a | |
}(); | |
b.w = a | |
}, function(a, b) { | |
function d(a, c) { | |
a = [a[0] >>> 16, 65535 & a[0], a[1] >>> 16, 65535 & a[1]]; | |
c = [c[0] >>> 16, 65535 & c[0], c[1] >>> 16, 65535 & c[1]]; | |
var b = [0, 0, 0, 0]; | |
return b[3] += a[3] * c[3], b[2] += b[3] >>> 16, b[3] &= 65535, b[2] += a[2] * c[3], b[1] += b[2] >>> 16, b[2] &= 65535, b[2] += a[3] * c[2], b[1] += b[2] >>> 16, b[2] &= 65535, b[1] += a[1] * c[3], b[0] += b[1] >>> 16, | |
b[1] &= 65535, b[1] += a[2] * c[2], b[0] += b[1] >>> 16, b[1] &= 65535, b[1] += a[3] * c[1], b[0] += b[1] >>> 16, b[1] &= 65535, b[0] += a[0] * c[3] + a[1] * c[2] + a[2] * c[1] + a[3] * c[0], b[0] &= 65535, [b[0] << 16 | b[1], b[2] << 16 | b[3]] | |
} | |
function e(a, c) { | |
a = [a[0] >>> 16, 65535 & a[0], a[1] >>> 16, 65535 & a[1]]; | |
c = [c[0] >>> 16, 65535 & c[0], c[1] >>> 16, 65535 & c[1]]; | |
var b = [0, 0, 0, 0]; | |
return b[3] += a[3] + c[3], b[2] += b[3] >>> 16, b[3] &= 65535, b[2] += a[2] + c[2], b[1] += b[2] >>> 16, b[2] &= 65535, b[1] += a[1] + c[1], b[0] += b[1] >>> 16, b[1] &= 65535, b[0] += a[0] + c[0], b[0] &= 65535, [b[0] << 16 | b[1], b[2] << 16 | | |
b[3] | |
] | |
} | |
function g(a, c) { | |
return 32 === (c %= 64) ? [a[1], a[0]] : 32 > c ? [a[0] << c | a[1] >>> 32 - c, a[1] << c | a[0] >>> 32 - c] : (c -= 32, [a[1] << c | a[0] >>> 32 - c, a[0] << c | a[1] >>> 32 - c]) | |
} | |
function p(a, c) { | |
return 0 === (c %= 64) ? a : 32 > c ? [a[0] << c | a[1] >>> 32 - c, a[1] << c] : [a[1] << c - 32, 0] | |
} | |
function h(a, c) { | |
return [a[0] ^ c[0], a[1] ^ c[1]] | |
} | |
function m(a) { | |
return a = h(a, [0, a[0] >>> 1]), a = h(a = d(a, [4283543511, 3981806797]), [0, a[0] >>> 1]), h(a = d(a, [3301882366, 444984403]), [0, a[0] >>> 1]) | |
} | |
b.a = !0; | |
b.hash = function(a, c) { | |
c = c || 0; | |
var b = (a = a || "").length % 16, | |
f = a.length - b, | |
k = [0, c]; | |
c = [0, c]; | |
for (var n, y, q = [2277735313, 289559509], r = [1291169091, 658871167], A = 0; A < f; A += 16) n = [255 & a.charCodeAt(A + 4) | (255 & a.charCodeAt(A + 5)) << 8 | (255 & a.charCodeAt(A + 6)) << 16 | (255 & a.charCodeAt(A + 7)) << 24, 255 & a.charCodeAt(A) | (255 & a.charCodeAt(A + 1)) << 8 | (255 & a.charCodeAt(A + 2)) << 16 | (255 & a.charCodeAt(A + 3)) << 24], y = [255 & a.charCodeAt(A + 12) | (255 & a.charCodeAt(A + 13)) << 8 | (255 & a.charCodeAt(A + 14)) << 16 | (255 & a.charCodeAt(A + 15)) << 24, 255 & a.charCodeAt(A + 8) | (255 & a.charCodeAt(A + 9)) << 8 | (255 & a.charCodeAt(A + 10)) << 16 | (255 & a.charCodeAt(A + | |
11)) << 24], n = g(n = d(n, q), 31), k = e(k = g(k = h(k, d(n, r)), 27), c), k = e(d(k, [0, 5]), [0, 1390208809]), y = g(y = d(y, r), 33), c = e(c = g(c = h(c, d(y, q)), 31), k), c = e(d(c, [0, 5]), [0, 944331445]); | |
switch (n = [0, 0], y = [0, 0], b) { | |
case 15: | |
y = h(y, p([0, a.charCodeAt(A + 14)], 48)); | |
case 14: | |
y = h(y, p([0, a.charCodeAt(A + 13)], 40)); | |
case 13: | |
y = h(y, p([0, a.charCodeAt(A + 12)], 32)); | |
case 12: | |
y = h(y, p([0, a.charCodeAt(A + 11)], 24)); | |
case 11: | |
y = h(y, p([0, a.charCodeAt(A + 10)], 16)); | |
case 10: | |
y = h(y, p([0, a.charCodeAt(A + 9)], 8)); | |
case 9: | |
y = d(y = h(y, [0, a.charCodeAt(A + 8)]), r), c = h(c, d(g(y, | |
33), q)); | |
case 8: | |
n = h(n, p([0, a.charCodeAt(A + 7)], 56)); | |
case 7: | |
n = h(n, p([0, a.charCodeAt(A + 6)], 48)); | |
case 6: | |
n = h(n, p([0, a.charCodeAt(A + 5)], 40)); | |
case 5: | |
n = h(n, p([0, a.charCodeAt(A + 4)], 32)); | |
case 4: | |
n = h(n, p([0, a.charCodeAt(A + 3)], 24)); | |
case 3: | |
n = h(n, p([0, a.charCodeAt(A + 2)], 16)); | |
case 2: | |
n = h(n, p([0, a.charCodeAt(A + 1)], 8)); | |
case 1: | |
n = d(n = h(n, [0, a.charCodeAt(A)]), q), k = h(k, d(g(n, 31), r)) | |
} | |
return k = e(k = h(k, [0, a.length]), c = h(c, [0, a.length])), c = e(c, k), k = e(k = m(k), c = m(c)), c = e(c, k), ("00000000" + (k[0] >>> 0).toString(16)).slice(-8) + ("00000000" + | |
(k[1] >>> 0).toString(16)).slice(-8) + ("00000000" + (c[0] >>> 0).toString(16)).slice(-8) + ("00000000" + (c[1] >>> 0).toString(16)).slice(-8) | |
} | |
}]); | |
cb = cb["default"] | |
} catch (a) { | |
La = { | |
error: a, | |
scope: "fip" | |
} | |
} | |
k.arrayFilter = function(a, b, d) { | |
var e = [], | |
g; | |
for (g = 0; g < a.length; g++) b.call(d, a[g], g, a) && e.push(a[g]); | |
return e | |
}; | |
k.arrDiff = function(a, b) { | |
return k.arrayFilter(a, function(a) { | |
return -1 === k.arrayIndexOf(b, a) | |
}) | |
}; | |
k.encodeURIComponent = function(a, b) { | |
a = String(a); | |
b && a.length > b && (a = a.substr(0, b)); | |
return (n.encodeURIComponent || n.escape)(a).replace(/\+/g, | |
"%2B") | |
}; | |
k.bind = function(a, b) { | |
var d = [].slice.call(arguments, 2); | |
return function() { | |
return a.apply(b || this, d.concat([].slice.call(arguments, 0))) | |
} | |
}; | |
k.clearTimeout = function(a) { | |
return k.getNativeFunction("clearTimeout")(a) | |
}; | |
k.safeDecodeURIComponent = function(a) { | |
try { | |
return decodeURIComponent(a) | |
} catch (b) { | |
return "" | |
} | |
}; | |
k.isDev = function() { | |
return !1 | |
}; | |
k.noop = function() {}; | |
!bb(/webkit/) && bb(/gecko/); | |
var fb = { | |
asyncChunk: 400, | |
maxDuration: 20, | |
restTime: 100, | |
asyncBuffer: [], | |
timeout: null, | |
rest: 0, | |
addAsyncItem: function(a, b, d, e, g) { | |
var p = | |
this; | |
this.asyncBuffer.push({ | |
fn: a, | |
ctx: b, | |
args: e || [], | |
loggerName: g || "" | |
}); | |
d ? (clearTimeout(this.timeout), p.flushAsync(!0)) : x.getMs() - this.rest >= this.restTime && !this.timeout ? (this.rest = x.getMs(), p.flushAsync()) : this.timeout || (this.timeout = k.setTimeout(function() { | |
p.rest = x.getMs(); | |
p.flushAsync(); | |
p.timeout = !1 | |
}, this.restTime)) | |
}, | |
chain: function(a, b, d, e) { | |
var g = this; | |
a.push = function(a) { | |
throw 'Try to push in Executor when it started "' + a + '"'; | |
}; | |
(function c(b, d, f) { | |
g.addAsyncItem(function(b, f, d) { | |
f = a[b++](f); | |
b <= a.length - | |
1 && c(b, f, d) | |
}, null, f, [b, d], e + "." + b) | |
})(0, b, d) | |
}, | |
callByTimeout: function(a, b) { | |
for (var d = x.getMs(), e = 0, g, p = (b || 0) + 1, h = 0, m = this; this.asyncBuffer.length;) | |
if (g = this.asyncBuffer.shift(), h += 1, !g.isExecuted && (E(function() { | |
g.fn.apply(g.ctx, g.args) | |
}, "AsyncExecutor." + g.loggerName)(), e = x.getMs() - d, g.isExecuted = !0, !a && (h >= this.asyncChunk || e >= this.maxDuration))) { | |
k.setTimeout(function() { | |
m.callByTimeout(a, p) | |
}, this.restTime); | |
break | |
} | |
}, | |
flushAsync: function(a) { | |
this.asyncBuffer.length && this.callByTimeout(a) | |
} | |
}, | |
Rb = Ca.inherit({ | |
id: "XHRPlain", | |
index: 8, | |
_splitParams: function(a) { | |
var b = {}, | |
d = {}; | |
k.forEachKey(a, function(a, g) { | |
k.inArray(this.postParams, a) ? this.postParams.isSingle ? d = g : d[a] = g : b[a] = g | |
}, this); | |
return { | |
get: b, | |
post: d | |
} | |
}, | |
_preparePostParams: function(a) { | |
return a.post | |
}, | |
_setHeaders: function(a) { | |
a.setRequestHeader("Content-Type", "text/plain") | |
} | |
}), | |
gb = P.inherit({ | |
resource: "webvisor", | |
version: 2, | |
retry: !1, | |
postParams: ["wv-data"], | |
transports: [Rb], | |
_initComponent: function() { | |
gb.superclass._initComponent.apply(this, arguments); | |
this.postParams.isSingle = !0 | |
}, | |
sendPacket: function(a, | |
b, d, e, g, p, h, m, f) { | |
var c = v.getViewportSize(); | |
if (!a || !a.length) return !1; | |
a = { | |
rn: k.random(), | |
"page-url": b, | |
wmode: 0, | |
"wv-type": this.version, | |
"wv-hit": d, | |
"wv-part": e + 1, | |
"wv-data": a | |
}; | |
g = { | |
et: h, | |
w: c[0] + "x" + c[1], | |
v: this._getVersion(), | |
z: g, | |
i: p | |
}; | |
this.browserInfoMix && (g = k.mixin(g, this.browserInfoMix)); | |
return this.send(a, g, m, f) | |
} | |
}), | |
Ua = va.inherit({ | |
protocol: "", | |
chunkSize: 0, | |
counterId: "", | |
counterType: "", | |
meta: null, | |
maxBufferSize: 7E5, | |
flushTimeout: 2E3, | |
storageKey: "visorbuff2", | |
active: !1, | |
wvType: 2, | |
_v: "", | |
_initComponent: function() { | |
this._sender = | |
new gb({ | |
version: this.wvType, | |
protocol: this.protocol, | |
globalConfig: this.globalConfig, | |
counterId: this.counterId, | |
browserInfoMix: this.browserInfoMix, | |
counterType: this.counterType | |
}); | |
Ua.superclass._initComponent.apply(this, arguments) | |
}, | |
append: function(a) { | |
!this._data.length && a && a.length && (this.startBufferTime = x.getSeconds()); | |
Ua.superclass.append.apply(this, arguments) | |
}, | |
_getSize: function(a) { | |
var b = this; | |
this.chunkSize = n.Blob ? this.chunkSize + (new Blob([a])).size : this.chunkSize + 2 * a.length; | |
this.wrappers.length && k.reduce(function(a, | |
e) { | |
var d = e.getBufferData(); | |
b.chunkSize += k.toJSON(d).length | |
}, 0, this.wrappers); | |
return this.chunkSize | |
}, | |
addData: function(a, b, d, e, g) { | |
var p = 0, | |
h = 1, | |
m = { | |
type: a | |
}, | |
f = .9 * this.maxBufferSize; | |
this._v = d; | |
this.wrappers.length && k.arrayEvery(this.wrappers, function(c) { | |
c.trigger && c.trigger(a, b); | |
return 1 | |
}); | |
if (g) this._getSize("{}"), this.append([], e); | |
else { | |
b.stamp && (m.stamp = b.stamp, delete b.stamp); | |
d = ea.stringify(b); | |
g = this._getSize(d); | |
if (g > this.maxBufferSize) | |
for (this._data.length && this._flush(), e = Math.ceil(g / f); p < d.length;) m.partNum = | |
h, m.end = h === e, m.data = d.slice(p, p += f), h++, this._getSize(m.data), this.append([m], !0); | |
else m.data = d, this.append([m], e); | |
this.store.set(m, { | |
id: a, | |
data: b | |
}) | |
} | |
}, | |
onFlush: function(a, b, d) { | |
this.chunkSize = 0; | |
k.arrayEvery(this.wrappers, function(b) { | |
if (!b.onFlush) return 1; | |
k.arrayEvery(a, function(a) { | |
a = this.store.pop(a); | |
if (!a) return 1; | |
b.onFlush(a.id, a.data); | |
return 1 | |
}, this); | |
return 1 | |
}, this); | |
k.arrayEvery(this.wrappers, function(b) { | |
b = b.getBufferData(); | |
b.data = ea.stringify(b.data); | |
a.push(b); | |
return 1 | |
}); | |
this._sender.sendPacket(ea.stringify(a), | |
b.url, b.hitId, d, b.timezone, b.timestamp, this.startBufferTime) | |
}, | |
getFlushSize: function() { | |
return this.chunkSize | |
} | |
}), | |
G = function(a) { | |
function b(e) { | |
if (d[e]) return d[e].exports; | |
var g = d[e] = { | |
i: e, | |
l: !1, | |
exports: {} | |
}; | |
a[e].call(g.exports, g, g.exports, b); | |
g.l = !0; | |
return g.exports | |
} | |
var d = {}; | |
b.m = a; | |
b.c = d; | |
b.d = function(a, d, k) { | |
b.o(a, d) || Object.defineProperty(a, d, { | |
configurable: !1, | |
enumerable: !0, | |
get: k | |
}) | |
}; | |
b.r = function(a) { | |
Object.defineProperty(a, "__esModule", { | |
value: !0 | |
}) | |
}; | |
b.n = function(a) { | |
var d = a && a.__esModule ? function() { | |
return a["default"] | |
} : | |
function() { | |
return a | |
}; | |
b.d(d, "a", d); | |
return d | |
}; | |
b.o = function(a, b) { | |
return Object.prototype.hasOwnProperty.call(a, b) | |
}; | |
b.p = ""; | |
return b(b.s = 18) | |
}([function(a, b, d) { | |
function e(a, b, d) { | |
for (var f = Object.keys(b), c = 0; c < f.length; ++c) void 0 !== a[f[c]] && d || (a[f[c]] = b[f[c]]); | |
return a | |
} | |
function g(a) { | |
function b(a, f) { | |
if (!(this instanceof b)) return new b(a, f); | |
Object.defineProperty(this, "message", { | |
get: function() { | |
return a | |
} | |
}); | |
Error.captureStackTrace ? Error.captureStackTrace(this, b) : Object.defineProperty(this, "stack", { | |
value: Error().stack || | |
"" | |
}); | |
f && e(this, f) | |
}(b.prototype = Object.create(Error.prototype)).constructor = b; | |
Object.defineProperty(b.prototype, "name", { | |
get: function() { | |
return a | |
} | |
}); | |
b.prototype.toString = function() { | |
return this.name + ": " + this.message | |
}; | |
return b | |
} | |
b.asPromise = d(15); | |
b.base64 = d(14); | |
b.EventEmitter = d(13); | |
b["float"] = d(12); | |
b.inquire = d(11); | |
b.utf8 = d(10); | |
b.pool = d(9); | |
b.LongBits = d(8); | |
b.global = "undefined" != typeof n && n || "undefined" != typeof global && global || "undefined" != typeof self && self || this; | |
b.emptyArray = Object.freeze ? Object.freeze([]) : []; | |
b.emptyObject = Object.freeze ? Object.freeze({}) : {}; | |
b.isNode = !!(b.global.process && b.global.process.versions && b.global.process.versions.node); | |
b.isInteger = Number.isInteger || function(a) { | |
return "number" == typeof a && isFinite(a) && Math.floor(a) === a | |
}; | |
b.isString = function(a) { | |
return "string" == typeof a || a instanceof String | |
}; | |
b.isObject = function(a) { | |
return a && "object" == typeof a | |
}; | |
b.isset = b.isSet = function(a, b) { | |
var d = a[b]; | |
return !(null == d || !a.hasOwnProperty(b)) && ("object" != typeof d || 0 < (Array.isArray(d) ? d.length : Object.keys(d).length)) | |
}; | |
b.Buffer = function() { | |
try { | |
var a = b.inquire("buffer").Buffer; | |
return a.prototype.utf8Write ? a : null | |
} catch (h) { | |
return null | |
} | |
}(); | |
b._Buffer_from = null; | |
b._Buffer_allocUnsafe = null; | |
b.newBuffer = function(a) { | |
return "number" == typeof a ? b.Buffer ? b._Buffer_allocUnsafe(a) : new b.Array(a) : b.Buffer ? b._Buffer_from(a) : "undefined" == typeof Uint8Array ? a : new Uint8Array(a) | |
}; | |
b.Array = "undefined" != typeof Uint8Array ? Uint8Array : Array; | |
b.Long = b.global.dcodeIO && b.global.dcodeIO.Long || b.global.Long || b.inquire("long"); | |
b.key2Re = /^true|false|0|1$/; | |
b.key32Re = /^-?(?:0|[1-9][0-9]*)$/; | |
b.key64Re = /^(?:[\\x00-\\xff]{8}|-?(?:0|[1-9][0-9]*))$/; | |
b.longToHash = function(a) { | |
return a ? b.LongBits.from(a).toHash() : b.LongBits.zeroHash | |
}; | |
b.longFromHash = function(a, d) { | |
var e = b.LongBits.fromHash(a); | |
return b.Long ? b.Long.fromBits(e.lo, e.hi, d) : e.toNumber(!!d) | |
}; | |
b.merge = e; | |
b.lcFirst = function(a) { | |
return a.charAt(0).toLowerCase() + a.substring(1) | |
}; | |
b.newError = g; | |
b.ProtocolError = g("ProtocolError"); | |
b.oneOfGetter = function(a) { | |
for (var b = {}, d = 0; d < a.length; ++d) b[a[d]] = 1; | |
return function() { | |
for (var a = | |
Object.keys(this), c = a.length - 1; - 1 < c; --c) | |
if (1 === b[a[c]] && void 0 !== this[a[c]] && null !== this[a[c]]) return a[c] | |
} | |
}; | |
b.oneOfSetter = function(a) { | |
return function(b) { | |
for (var d = 0; d < a.length; ++d) a[d] !== b && delete this[a[d]] | |
} | |
}; | |
b.toJSONOptions = { | |
longs: String, | |
enums: String, | |
bytes: String, | |
json: !0 | |
}; | |
b._configure = function() { | |
var a = b.Buffer; | |
a ? (b._Buffer_from = a.from !== Uint8Array.from && a.from || function(b, d) { | |
return new a(b, d) | |
}, b._Buffer_allocUnsafe = a.allocUnsafe || function(b) { | |
return new a(b) | |
}) : b._Buffer_from = b._Buffer_allocUnsafe = | |
null | |
} | |
}, function(a, b, d) { | |
function e(a, c) { | |
return RangeError("index out of range: " + a.pos + " + " + (c || 1) + " \x3e " + a.len) | |
} | |
function g(a) { | |
this.buf = a; | |
this.pos = 0; | |
this.len = a.length | |
} | |
function k() { | |
var a = new l(0, 0), | |
c = 0; | |
if (!(4 < this.len - this.pos)) { | |
for (; 3 > c; ++c) { | |
if (this.pos >= this.len) throw e(this); | |
a.lo = (a.lo | (127 & this.buf[this.pos]) << 7 * c) >>> 0; | |
if (128 > this.buf[this.pos++]) return a | |
} | |
a.lo = (a.lo | (127 & this.buf[this.pos++]) << 7 * c) >>> 0; | |
return a | |
} | |
for (; 4 > c; ++c) | |
if (a.lo = (a.lo | (127 & this.buf[this.pos]) << 7 * c) >>> 0, 128 > this.buf[this.pos++]) return a; | |
a.lo = (a.lo | (127 & this.buf[this.pos]) << 28) >>> 0; | |
a.hi = (a.hi | (127 & this.buf[this.pos]) >> 4) >>> 0; | |
if (128 > this.buf[this.pos++]) return a; | |
c = 0; | |
if (4 < this.len - this.pos) | |
for (; 5 > c; ++c) { | |
if (a.hi = (a.hi | (127 & this.buf[this.pos]) << 7 * c + 3) >>> 0, 128 > this.buf[this.pos++]) return a | |
} else | |
for (; 5 > c; ++c) { | |
if (this.pos >= this.len) throw e(this); | |
a.hi = (a.hi | (127 & this.buf[this.pos]) << 7 * c + 3) >>> 0; | |
if (128 > this.buf[this.pos++]) return a | |
} | |
throw Error("invalid varint encoding"); | |
} | |
function h(a, c) { | |
return (a[c - 4] | a[c - 3] << 8 | a[c - 2] << 16 | a[c - 1] << 24) >>> 0 | |
} | |
function m() { | |
if (this.pos + | |
8 > this.len) throw e(this, 8); | |
return new l(h(this.buf, this.pos += 4), h(this.buf, this.pos += 4)) | |
} | |
a.exports = g; | |
var f, c = d(0), | |
l = c.LongBits, | |
t = c.utf8, | |
z, n = "undefined" != typeof Uint8Array ? function(a) { | |
if (a instanceof Uint8Array || Array.isArray(a)) return new g(a); | |
throw Error("illegal buffer"); | |
} : function(a) { | |
if (Array.isArray(a)) return new g(a); | |
throw Error("illegal buffer"); | |
}; | |
g.create = c.Buffer ? function(a) { | |
return (g.create = function(a) { | |
return c.Buffer.isBuffer(a) ? new f(a) : n(a) | |
})(a) | |
} : n; | |
g.prototype._slice = c.Array.prototype.subarray || | |
c.Array.prototype.slice; | |
g.prototype.uint32 = (z = 4294967295, function() { | |
z = (127 & this.buf[this.pos]) >>> 0; | |
if (128 > this.buf[this.pos++]) return z; | |
z = (z | (127 & this.buf[this.pos]) << 7) >>> 0; | |
if (128 > this.buf[this.pos++]) return z; | |
z = (z | (127 & this.buf[this.pos]) << 14) >>> 0; | |
if (128 > this.buf[this.pos++]) return z; | |
z = (z | (127 & this.buf[this.pos]) << 21) >>> 0; | |
if (128 > this.buf[this.pos++]) return z; | |
z = (z | (15 & this.buf[this.pos]) << 28) >>> 0; | |
if (128 > this.buf[this.pos++]) return z; | |
if ((this.pos += 5) > this.len) throw this.pos = this.len, e(this, 10); | |
return z | |
}); | |
g.prototype.int32 = function() { | |
return 0 | this.uint32() | |
}; | |
g.prototype.sint32 = function() { | |
var a = this.uint32(); | |
return a >>> 1 ^ -(1 & a) | 0 | |
}; | |
g.prototype.bool = function() { | |
return 0 !== this.uint32() | |
}; | |
g.prototype.fixed32 = function() { | |
if (this.pos + 4 > this.len) throw e(this, 4); | |
return h(this.buf, this.pos += 4) | |
}; | |
g.prototype.sfixed32 = function() { | |
if (this.pos + 4 > this.len) throw e(this, 4); | |
return 0 | h(this.buf, this.pos += 4) | |
}; | |
g.prototype["float"] = function() { | |
if (this.pos + 4 > this.len) throw e(this, 4); | |
var a = c["float"].readFloatLE(this.buf, this.pos); | |
this.pos += 4; | |
return a | |
}; | |
g.prototype["double"] = function() { | |
if (this.pos + 8 > this.len) throw e(this, 4); | |
var a = c["float"].readDoubleLE(this.buf, this.pos); | |
this.pos += 8; | |
return a | |
}; | |
g.prototype.bytes = function() { | |
var a = this.uint32(), | |
c = this.pos, | |
b = this.pos + a; | |
if (b > this.len) throw e(this, a); | |
this.pos += a; | |
return Array.isArray(this.buf) ? this.buf.slice(c, b) : c === b ? new this.buf.constructor(0) : this._slice.call(this.buf, c, b) | |
}; | |
g.prototype.string = function() { | |
var a = this.bytes(); | |
return t.read(a, 0, a.length) | |
}; | |
g.prototype.skip = function(a) { | |
if ("number" == | |
typeof a) { | |
if (this.pos + a > this.len) throw e(this, a); | |
this.pos += a | |
} else { | |
do | |
if (this.pos >= this.len) throw e(this); while (128 & this.buf[this.pos++]) | |
} | |
return this | |
}; | |
g.prototype.skipType = function(a) { | |
switch (a) { | |
case 0: | |
this.skip(); | |
break; | |
case 1: | |
this.skip(8); | |
break; | |
case 2: | |
this.skip(this.uint32()); | |
break; | |
case 3: | |
for (; 4 != (a = 7 & this.uint32());) this.skipType(a); | |
break; | |
case 5: | |
this.skip(4); | |
break; | |
default: | |
throw Error("invalid wire type " + a + " at offset " + this.pos); | |
} | |
return this | |
}; | |
g._configure = function(a) { | |
f = a; | |
var b = c.Long ? "toLong" : "toNumber"; | |
c.merge(g.prototype, { | |
int64: function() { | |
return k.call(this)[b](!1) | |
}, | |
uint64: function() { | |
return k.call(this)[b](!0) | |
}, | |
sint64: function() { | |
return k.call(this).zzDecode()[b](!1) | |
}, | |
fixed64: function() { | |
return m.call(this)[b](!0) | |
}, | |
sfixed64: function() { | |
return m.call(this)[b](!1) | |
} | |
}) | |
} | |
}, function(a, b, d) { | |
function e(a, c, b) { | |
this.fn = a; | |
this.len = c; | |
this.next = void 0; | |
this.val = b | |
} | |
function g() {} | |
function k(a) { | |
this.head = a.head; | |
this.tail = a.tail; | |
this.len = a.len; | |
this.next = a.states | |
} | |
function h() { | |
this.len = 0; | |
this.tail = this.head = new e(g, 0, | |
0); | |
this.states = null | |
} | |
function m(a, c, b) { | |
c[b] = 255 & a | |
} | |
function f(a, c) { | |
this.len = a; | |
this.next = void 0; | |
this.val = c | |
} | |
function c(a, c, b) { | |
for (; a.hi;) c[b++] = 127 & a.lo | 128, a.lo = (a.lo >>> 7 | a.hi << 25) >>> 0, a.hi >>>= 7; | |
for (; 127 < a.lo;) c[b++] = 127 & a.lo | 128, a.lo >>>= 7; | |
c[b++] = a.lo | |
} | |
function l(a, c, b) { | |
c[b] = 255 & a; | |
c[b + 1] = a >>> 8 & 255; | |
c[b + 2] = a >>> 16 & 255; | |
c[b + 3] = a >>> 24 | |
} | |
a.exports = h; | |
var t, z = d(0), | |
n = z.LongBits, | |
q = z.base64, | |
r = z.utf8; | |
h.create = z.Buffer ? function() { | |
return (h.create = function() { | |
return new t | |
})() | |
} : function() { | |
return new h | |
}; | |
h.alloc = function(a) { | |
return new z.Array(a) | |
}; | |
z.Array !== Array && (h.alloc = z.pool(h.alloc, z.Array.prototype.subarray)); | |
h.prototype._push = function(a, c, b) { | |
this.tail = this.tail.next = new e(a, c, b); | |
this.len += c; | |
return this | |
}; | |
f.prototype = Object.create(e.prototype); | |
f.prototype.fn = function(a, c, b) { | |
for (; 127 < a;) c[b++] = 127 & a | 128, a >>>= 7; | |
c[b] = a | |
}; | |
h.prototype.uint32 = function(a) { | |
this.len += (this.tail = this.tail.next = new f(128 > (a >>>= 0) ? 1 : 16384 > a ? 2 : 2097152 > a ? 3 : 268435456 > a ? 4 : 5, a)).len; | |
return this | |
}; | |
h.prototype.int32 = function(a) { | |
return 0 > a ? this._push(c, 10, n.fromNumber(a)) : | |
this.uint32(a) | |
}; | |
h.prototype.sint32 = function(a) { | |
return this.uint32((a << 1 ^ a >> 31) >>> 0) | |
}; | |
h.prototype.uint64 = function(a) { | |
a = n.from(a); | |
return this._push(c, a.length(), a) | |
}; | |
h.prototype.int64 = h.prototype.uint64; | |
h.prototype.sint64 = function(a) { | |
a = n.from(a).zzEncode(); | |
return this._push(c, a.length(), a) | |
}; | |
h.prototype.bool = function(a) { | |
return this._push(m, 1, a ? 1 : 0) | |
}; | |
h.prototype.fixed32 = function(a) { | |
return this._push(l, 4, a >>> 0) | |
}; | |
h.prototype.sfixed32 = h.prototype.fixed32; | |
h.prototype.fixed64 = function(a) { | |
a = n.from(a); | |
return this._push(l, | |
4, a.lo)._push(l, 4, a.hi) | |
}; | |
h.prototype.sfixed64 = h.prototype.fixed64; | |
h.prototype["float"] = function(a) { | |
return this._push(z["float"].writeFloatLE, 4, a) | |
}; | |
h.prototype["double"] = function(a) { | |
return this._push(z["float"].writeDoubleLE, 8, a) | |
}; | |
var v = z.Array.prototype.set ? function(a, c, b) { | |
c.set(a, b) | |
} : function(a, c, b) { | |
for (var f = 0; f < a.length; ++f) c[b + f] = a[f] | |
}; | |
h.prototype.bytes = function(a) { | |
var c = a.length >>> 0; | |
if (!c) return this._push(m, 1, 0); | |
if (z.isString(a)) { | |
var b = h.alloc(c = q.length(a)); | |
q.decode(a, b, 0); | |
a = b | |
} | |
return this.uint32(c)._push(v, | |
c, a) | |
}; | |
h.prototype.string = function(a) { | |
var c = r.length(a); | |
return c ? this.uint32(c)._push(r.write, c, a) : this._push(m, 1, 0) | |
}; | |
h.prototype.fork = function() { | |
this.states = new k(this); | |
this.head = this.tail = new e(g, 0, 0); | |
this.len = 0; | |
return this | |
}; | |
h.prototype.reset = function() { | |
this.states ? (this.head = this.states.head, this.tail = this.states.tail, this.len = this.states.len, this.states = this.states.next) : (this.head = this.tail = new e(g, 0, 0), this.len = 0); | |
return this | |
}; | |
h.prototype.ldelim = function() { | |
var a = this.head, | |
c = this.tail, | |
b = this.len; | |
this.reset().uint32(b); | |
b && (this.tail.next = a.next, this.tail = c, this.len += b); | |
return this | |
}; | |
h.prototype.finish = function() { | |
for (var a = this.head.next, c = this.constructor.alloc(this.len), b = 0; a;) a.fn(a.val, c, b), b += a.len, a = a.next; | |
return c | |
}; | |
h._configure = function(a) { | |
t = a | |
} | |
}, function(a, b, d) { | |
a.exports = {} | |
}, function(a, b, d) { | |
function e(a, b, d) { | |
if ("function" != typeof a) throw TypeError("rpcImpl must be a function"); | |
g.EventEmitter.call(this); | |
this.rpcImpl = a; | |
this.requestDelimited = !!b; | |
this.responseDelimited = !!d | |
} | |
a.exports = e; | |
var g = | |
d(0); | |
(e.prototype = Object.create(g.EventEmitter.prototype)).constructor = e; | |
e.prototype.rpcCall = function t(a, b, f, c, d) { | |
if (!c) throw TypeError("request must be specified"); | |
var e = this; | |
if (!d) return g.asPromise(t, e, a, b, f, c); | |
if (e.rpcImpl) try { | |
return e.rpcImpl(a, b[e.requestDelimited ? "encodeDelimited" : "encode"](c).finish(), function(c, b) { | |
if (c) return e.emit("error", c, a), d(c); | |
if (null !== b) { | |
if (!(b instanceof f)) try { | |
b = f[e.responseDelimited ? "decodeDelimited" : "decode"](b) | |
} catch (aa) { | |
return e.emit("error", aa, a), d(aa) | |
} | |
e.emit("data", | |
b, a); | |
return d(null, b) | |
} | |
e.end(!0) | |
}) | |
} catch (D) { | |
e.emit("error", D, a), C(function() { | |
d(D) | |
}, 0) | |
} else C(function() { | |
d(Error("already ended")) | |
}, 0) | |
}; | |
e.prototype.end = function(a) { | |
this.rpcImpl && (a || this.rpcImpl(null, null, null), this.rpcImpl = null, this.emit("end").off()); | |
return this | |
} | |
}, function(a, b, d) { | |
b.Service = d(4) | |
}, function(a, b, d) { | |
function e(a) { | |
g.call(this, a) | |
} | |
a.exports = e; | |
var g = d(1); | |
(e.prototype = Object.create(g.prototype)).constructor = e; | |
a = d(0); | |
a.Buffer && (e.prototype._slice = a.Buffer.prototype.slice); | |
e.prototype.string = | |
function() { | |
var a = this.uint32(); | |
return this.buf.utf8Slice(this.pos, this.pos = Math.min(this.pos + a, this.len)) | |
} | |
}, function(a, b, d) { | |
function e() { | |
k.call(this) | |
} | |
function g(a, b, f) { | |
40 > a.length ? h.utf8.write(a, b, f) : b.utf8Write(a, f) | |
} | |
a.exports = e; | |
var k = d(2); | |
(e.prototype = Object.create(k.prototype)).constructor = e; | |
var h = d(0), | |
m = h.Buffer; | |
e.alloc = function(a) { | |
return (e.alloc = h._Buffer_allocUnsafe)(a) | |
}; | |
var f = m && m.prototype instanceof Uint8Array && "set" === m.prototype.set.name ? function(a, b, f) { | |
b.set(a, f) | |
} : function(a, b, f) { | |
if (a.copy) a.copy(b, | |
f, 0, a.length); | |
else | |
for (var c = 0; c < a.length;) b[f++] = a[c++] | |
}; | |
e.prototype.bytes = function(a) { | |
h.isString(a) && (a = h._Buffer_from(a, "base64")); | |
var c = a.length >>> 0; | |
this.uint32(c); | |
c && this._push(f, c, a); | |
return this | |
}; | |
e.prototype.string = function(a) { | |
var c = m.byteLength(a); | |
this.uint32(c); | |
c && this._push(g, c, a); | |
return this | |
} | |
}, function(a, b, d) { | |
function e(a, c) { | |
this.lo = a >>> 0; | |
this.hi = c >>> 0 | |
} | |
a.exports = e; | |
var g = d(0), | |
k = e.zero = new e(0, 0); | |
k.toNumber = function() { | |
return 0 | |
}; | |
k.zzEncode = k.zzDecode = function() { | |
return this | |
}; | |
k.length = function() { | |
return 1 | |
}; | |
var h = e.zeroHash = "\x00\x00\x00\x00\x00\x00\x00\x00"; | |
e.fromNumber = function(a) { | |
if (0 === a) return k; | |
var c = 0 > a; | |
c && (a = -a); | |
var b = a >>> 0; | |
a = (a - b) / 4294967296 >>> 0; | |
c && (a = ~a >>> 0, b = ~b >>> 0, 4294967295 < ++b && (b = 0, 4294967295 < ++a && (a = 0))); | |
return new e(b, a) | |
}; | |
e.from = function(a) { | |
if ("number" == typeof a) return e.fromNumber(a); | |
if (g.isString(a)) { | |
if (!g.Long) return e.fromNumber(parseInt(a, 10)); | |
a = g.Long.fromString(a) | |
} | |
return a.low || a.high ? new e(a.low >>> 0, a.high >>> 0) : k | |
}; | |
e.prototype.toNumber = function(a) { | |
if (!a && this.hi >>> 31) { | |
a = 1 + ~this.lo >>> | |
0; | |
var c = ~this.hi >>> 0; | |
a || (c = c + 1 >>> 0); | |
return -(a + 4294967296 * c) | |
} | |
return this.lo + 4294967296 * this.hi | |
}; | |
e.prototype.toLong = function(a) { | |
return g.Long ? new g.Long(0 | this.lo, 0 | this.hi, !!a) : { | |
low: 0 | this.lo, | |
high: 0 | this.hi, | |
unsigned: !!a | |
} | |
}; | |
var m = String.prototype.charCodeAt; | |
e.fromHash = function(a) { | |
return a === h ? k : new e((m.call(a, 0) | m.call(a, 1) << 8 | m.call(a, 2) << 16 | m.call(a, 3) << 24) >>> 0, (m.call(a, 4) | m.call(a, 5) << 8 | m.call(a, 6) << 16 | m.call(a, 7) << 24) >>> 0) | |
}; | |
e.prototype.toHash = function() { | |
return String.fromCharCode(255 & this.lo, this.lo >>> | |
8 & 255, this.lo >>> 16 & 255, this.lo >>> 24, 255 & this.hi, this.hi >>> 8 & 255, this.hi >>> 16 & 255, this.hi >>> 24) | |
}; | |
e.prototype.zzEncode = function() { | |
var a = this.hi >> 31; | |
this.hi = ((this.hi << 1 | this.lo >>> 31) ^ a) >>> 0; | |
this.lo = (this.lo << 1 ^ a) >>> 0; | |
return this | |
}; | |
e.prototype.zzDecode = function() { | |
var a = -(1 & this.lo); | |
this.lo = ((this.lo >>> 1 | this.hi << 31) ^ a) >>> 0; | |
this.hi = (this.hi >>> 1 ^ a) >>> 0; | |
return this | |
}; | |
e.prototype.length = function() { | |
var a = this.lo, | |
c = (this.lo >>> 28 | this.hi << 4) >>> 0, | |
b = this.hi >>> 24; | |
return 0 === b ? 0 === c ? 16384 > a ? 128 > a ? 1 : 2 : 2097152 > a ? 3 : | |
4 : 16384 > c ? 128 > c ? 5 : 6 : 2097152 > c ? 7 : 8 : 128 > b ? 9 : 10 | |
} | |
}, function(a, b, d) { | |
a.exports = function(a, b, d) { | |
var e = d || 8192, | |
g = e >>> 1, | |
f = null, | |
c = e; | |
return function(d) { | |
if (1 > d || d > g) return a(d); | |
c + d > e && (f = a(e), c = 0); | |
d = b.call(f, c, c += d); | |
7 & c && (c = 1 + (7 | c)); | |
return d | |
} | |
} | |
}, function(a, b, d) { | |
b.length = function(a) { | |
for (var b = 0, d, e = 0; e < a.length; ++e) d = a.charCodeAt(e), 128 > d ? b += 1 : 2048 > d ? b += 2 : 55296 == (64512 & d) && 56320 == (64512 & a.charCodeAt(e + 1)) ? (++e, b += 4) : b += 3; | |
return b | |
}; | |
b.read = function(a, b, d) { | |
if (1 > d - b) return ""; | |
for (var e, g = null, f = [], c = 0; b < d;) e = a[b++], | |
128 > e ? f[c++] = e : 191 < e && 224 > e ? f[c++] = (31 & e) << 6 | 63 & a[b++] : 239 < e && 365 > e ? (e = ((7 & e) << 18 | (63 & a[b++]) << 12 | (63 & a[b++]) << 6 | 63 & a[b++]) - 65536, f[c++] = 55296 + (e >> 10), f[c++] = 56320 + (1023 & e)) : f[c++] = (15 & e) << 12 | (63 & a[b++]) << 6 | 63 & a[b++], 8191 < c && ((g || (g = [])).push(String.fromCharCode.apply(String, f)), c = 0); | |
return g ? (c && g.push(String.fromCharCode.apply(String, f.slice(0, c))), g.join("")) : String.fromCharCode.apply(String, f.slice(0, c)) | |
}; | |
b.write = function(a, b, d) { | |
for (var e, g, f = d, c = 0; c < a.length; ++c) e = a.charCodeAt(c), 128 > e ? b[d++] = | |
e : (2048 > e ? b[d++] = e >> 6 | 192 : (55296 == (64512 & e) && 56320 == (64512 & (g = a.charCodeAt(c + 1))) ? (e = 65536 + ((1023 & e) << 10) + (1023 & g), ++c, b[d++] = e >> 18 | 240, b[d++] = e >> 12 & 63 | 128) : b[d++] = e >> 12 | 224, b[d++] = e >> 6 & 63 | 128), b[d++] = 63 & e | 128); | |
return d - f | |
} | |
}, function(a, b, d) { | |
a.exports = function(a) { | |
return null | |
} | |
}, function(a, b, d) { | |
function e(a) { | |
"undefined" != typeof Float32Array ? function() { | |
function c(a, c, b) { | |
e[0] = a; | |
c[b] = g[0]; | |
c[b + 1] = g[1]; | |
c[b + 2] = g[2]; | |
c[b + 3] = g[3] | |
} | |
function b(a, c, b) { | |
e[0] = a; | |
c[b] = g[3]; | |
c[b + 1] = g[2]; | |
c[b + 2] = g[1]; | |
c[b + 3] = g[0] | |
} | |
function f(a, | |
c) { | |
g[0] = a[c]; | |
g[1] = a[c + 1]; | |
g[2] = a[c + 2]; | |
g[3] = a[c + 3]; | |
return e[0] | |
} | |
function d(a, c) { | |
g[3] = a[c]; | |
g[2] = a[c + 1]; | |
g[1] = a[c + 2]; | |
g[0] = a[c + 3]; | |
return e[0] | |
} | |
var e = new Float32Array([-0]), | |
g = new Uint8Array(e.buffer), | |
h = 128 === g[3]; | |
a.writeFloatLE = h ? c : b; | |
a.writeFloatBE = h ? b : c; | |
a.readFloatLE = h ? f : d; | |
a.readFloatBE = h ? d : f | |
}() : function() { | |
function c(a, c, b, f) { | |
var d = 0 > c ? 1 : 0; | |
d && (c = -c); | |
if (0 === c) a(0 < 1 / c ? 0 : 2147483648, b, f); | |
else if (isNaN(c)) a(2143289344, b, f); | |
else if (3.4028234663852886e+38 < c) a((d << 31 | 2139095040) >>> 0, b, f); | |
else if (1.1754943508222875e-38 > | |
c) a((d << 31 | Math.round(c / 1.401298464324817e-45)) >>> 0, b, f); | |
else { | |
var e = Math.floor(Math.log(c) / Math.LN2); | |
a((d << 31 | e + 127 << 23 | 8388607 & Math.round(c * Math.pow(2, -e) * 8388608)) >>> 0, b, f) | |
} | |
} | |
function b(a, c, b) { | |
b = a(c, b); | |
a = 2 * (b >> 31) + 1; | |
c = b >>> 23 & 255; | |
b &= 8388607; | |
return 255 === c ? b ? NaN : 1 / 0 * a : 0 === c ? 1.401298464324817e-45 * a * b : a * Math.pow(2, c - 150) * (b + 8388608) | |
} | |
a.writeFloatLE = c.bind(null, g); | |
a.writeFloatBE = c.bind(null, k); | |
a.readFloatLE = b.bind(null, h); | |
a.readFloatBE = b.bind(null, m) | |
}(); | |
"undefined" != typeof Float64Array ? function() { | |
function c(a, | |
c, b) { | |
e[0] = a; | |
c[b] = g[0]; | |
c[b + 1] = g[1]; | |
c[b + 2] = g[2]; | |
c[b + 3] = g[3]; | |
c[b + 4] = g[4]; | |
c[b + 5] = g[5]; | |
c[b + 6] = g[6]; | |
c[b + 7] = g[7] | |
} | |
function b(a, c, b) { | |
e[0] = a; | |
c[b] = g[7]; | |
c[b + 1] = g[6]; | |
c[b + 2] = g[5]; | |
c[b + 3] = g[4]; | |
c[b + 4] = g[3]; | |
c[b + 5] = g[2]; | |
c[b + 6] = g[1]; | |
c[b + 7] = g[0] | |
} | |
function f(a, c) { | |
g[0] = a[c]; | |
g[1] = a[c + 1]; | |
g[2] = a[c + 2]; | |
g[3] = a[c + 3]; | |
g[4] = a[c + 4]; | |
g[5] = a[c + 5]; | |
g[6] = a[c + 6]; | |
g[7] = a[c + 7]; | |
return e[0] | |
} | |
function d(a, c) { | |
g[7] = a[c]; | |
g[6] = a[c + 1]; | |
g[5] = a[c + 2]; | |
g[4] = a[c + 3]; | |
g[3] = a[c + 4]; | |
g[2] = a[c + 5]; | |
g[1] = a[c + 6]; | |
g[0] = a[c + 7]; | |
return e[0] | |
} | |
var e = new Float64Array([-0]), | |
g = new Uint8Array(e.buffer), | |
h = 128 === g[7]; | |
a.writeDoubleLE = h ? c : b; | |
a.writeDoubleBE = h ? b : c; | |
a.readDoubleLE = h ? f : d; | |
a.readDoubleBE = h ? d : f | |
}() : function() { | |
function c(a, c, b, f, d, e) { | |
var l = 0 > f ? 1 : 0; | |
l && (f = -f); | |
if (0 === f) a(0, d, e + c), a(0 < 1 / f ? 0 : 2147483648, d, e + b); | |
else if (isNaN(f)) a(0, d, e + c), a(2146959360, d, e + b); | |
else if (1.7976931348623157e+308 < f) a(0, d, e + c), a((l << 31 | 2146435072) >>> 0, d, e + b); | |
else if (2.2250738585072014e-308 > f) f /= 5e-324, a(f >>> 0, d, e + c), a((l << 31 | f / 4294967296) >>> 0, d, e + b); | |
else { | |
var g = Math.floor(Math.log(f) / Math.LN2); | |
1024 === g && (g = 1023); | |
f *= Math.pow(2, | |
-g); | |
a(4503599627370496 * f >>> 0, d, e + c); | |
a((l << 31 | g + 1023 << 20 | 1048576 * f & 1048575) >>> 0, d, e + b) | |
} | |
} | |
function b(a, c, b, f, d) { | |
c = a(f, d + c); | |
f = a(f, d + b); | |
a = 2 * (f >> 31) + 1; | |
b = f >>> 20 & 2047; | |
c = 4294967296 * (1048575 & f) + c; | |
return 2047 === b ? c ? NaN : 1 / 0 * a : 0 === b ? 5e-324 * a * c : a * Math.pow(2, b - 1075) * (c + 4503599627370496) | |
} | |
a.writeDoubleLE = c.bind(null, g, 0, 4); | |
a.writeDoubleBE = c.bind(null, k, 4, 0); | |
a.readDoubleLE = b.bind(null, h, 0, 4); | |
a.readDoubleBE = b.bind(null, m, 4, 0) | |
}(); | |
return a | |
} | |
function g(a, c, b) { | |
c[b] = 255 & a; | |
c[b + 1] = a >>> 8 & 255; | |
c[b + 2] = a >>> 16 & 255; | |
c[b + 3] = a >>> 24 | |
} | |
function k(a, c, b) { | |
c[b] = a >>> 24; | |
c[b + 1] = a >>> 16 & 255; | |
c[b + 2] = a >>> 8 & 255; | |
c[b + 3] = 255 & a | |
} | |
function h(a, c) { | |
return (a[c] | a[c + 1] << 8 | a[c + 2] << 16 | a[c + 3] << 24) >>> 0 | |
} | |
function m(a, c) { | |
return (a[c] << 24 | a[c + 1] << 16 | a[c + 2] << 8 | a[c + 3]) >>> 0 | |
} | |
a.exports = e(e) | |
}, function(a, b, d) { | |
function e() { | |
this._listeners = {} | |
} | |
a.exports = e; | |
e.prototype.on = function(a, b, d) { | |
(this._listeners[a] || (this._listeners[a] = [])).push({ | |
fn: b, | |
ctx: d || this | |
}); | |
return this | |
}; | |
e.prototype.off = function(a, b) { | |
if (void 0 === a) this._listeners = {}; | |
else if (void 0 === b) this._listeners[a] = []; | |
else | |
for (var d = this._listeners[a], e = 0; e < d.length;) d[e].fn === b ? d.splice(e, 1) : ++e; | |
return this | |
}; | |
e.prototype.emit = function(a) { | |
var b = this._listeners[a]; | |
if (b) { | |
for (var d = [], e = 1; e < arguments.length;) d.push(arguments[e++]); | |
for (e = 0; e < b.length;) b[e].fn.apply(b[e++].ctx, d) | |
} | |
return this | |
} | |
}, function(a, b, d) { | |
b.length = function(a) { | |
var b = a.length; | |
if (!b) return 0; | |
for (var d = 0; 1 < --b % 4 && "\x3d" === a.charAt(b);) ++d; | |
return Math.ceil(3 * a.length) / 4 - d | |
}; | |
var e = Array(64), | |
g = Array(123); | |
for (a = 0; 64 > a;) g[e[a] = 26 > a ? a + 65 : 52 > a ? a + 71 : 62 > a ? a - 4 : | |
a - 59 | 43] = a++; | |
b.encode = function(a, b, d) { | |
for (var f, c = null, l = [], g = 0, h = 0; b < d;) { | |
var m = a[b++]; | |
switch (h) { | |
case 0: | |
l[g++] = e[m >> 2]; | |
f = (3 & m) << 4; | |
h = 1; | |
break; | |
case 1: | |
l[g++] = e[f | m >> 4]; | |
f = (15 & m) << 2; | |
h = 2; | |
break; | |
case 2: | |
l[g++] = e[f | m >> 6], l[g++] = e[63 & m], h = 0 | |
} | |
8191 < g && ((c || (c = [])).push(String.fromCharCode.apply(String, l)), g = 0) | |
} | |
h && (l[g++] = e[f], l[g++] = 61, 1 === h && (l[g++] = 61)); | |
return c ? (g && c.push(String.fromCharCode.apply(String, l.slice(0, g))), c.join("")) : String.fromCharCode.apply(String, l.slice(0, g)) | |
}; | |
b.decode = function(a, b, d) { | |
for (var f, | |
c = d, e = 0, h = 0; h < a.length;) { | |
var m = a.charCodeAt(h++); | |
if (61 === m && 1 < e) break; | |
if (void 0 === (m = g[m])) throw Error("invalid encoding"); | |
switch (e) { | |
case 0: | |
f = m; | |
e = 1; | |
break; | |
case 1: | |
b[d++] = f << 2 | (48 & m) >> 4; | |
f = m; | |
e = 2; | |
break; | |
case 2: | |
b[d++] = (15 & f) << 4 | (60 & m) >> 2; | |
f = m; | |
e = 3; | |
break; | |
case 3: | |
b[d++] = (3 & f) << 6 | m, e = 0 | |
} | |
} | |
if (1 === e) throw Error("invalid encoding"); | |
return d - c | |
}; | |
b.test = function(a) { | |
return /^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/.test(a) | |
} | |
}, function(a, b, d) { | |
a.exports = function(a, b) { | |
for (var d = Array(arguments.length - | |
1), e = 0, g = 2, f = !0; g < arguments.length;) d[e++] = arguments[g++]; | |
return new Promise(function(c, l) { | |
d[e] = function(a) { | |
if (f) | |
if (f = !1, a) l(a); | |
else { | |
for (var b = Array(arguments.length - 1), d = 0; d < b.length;) b[d++] = arguments[d]; | |
c.apply(null, b) | |
} | |
}; | |
try { | |
a.apply(b || null, d) | |
} catch (t) { | |
f && (f = !1, l(t)) | |
} | |
}) | |
} | |
}, function(a, b, d) { | |
function e() { | |
g.Reader._configure(g.BufferReader); | |
g.util._configure() | |
} | |
var g = b; | |
g.build = "minimal"; | |
g.Writer = d(2); | |
g.BufferWriter = d(7); | |
g.Reader = d(1); | |
g.BufferReader = d(6); | |
g.util = d(0); | |
g.rpc = d(5); | |
g.roots = d(3); | |
g.configure = | |
e; | |
g.Writer._configure(g.BufferWriter); | |
e() | |
}, function(a, b, d) { | |
a.exports = d(16) | |
}, function(a, b, d) { | |
b = d(17); | |
var e = b.Reader, | |
g = b.Writer, | |
k = b.util, | |
h = b.roots["default"] || (b.roots["default"] = {}); | |
h.BufferWrapper = function() { | |
function a(a) { | |
this.buffer = []; | |
if (a) | |
for (var c = Object.keys(a), b = 0; b < c.length; ++b) null != a[c[b]] && (this[c[b]] = a[c[b]]) | |
} | |
a.prototype.buffer = k.emptyArray; | |
a.create = function(b) { | |
return new a(b) | |
}; | |
a.encode = function(a, c) { | |
c || (c = g.create()); | |
if (null != a.buffer && a.buffer.length) | |
for (var b = 0; b < a.buffer.length; ++b) h.Buffer.encode(a.buffer[b], | |
c.uint32(10).fork()).ldelim(); | |
return c | |
}; | |
a.decode = function(a, c) { | |
a instanceof e || (a = e.create(a)); | |
for (var b = void 0 === c ? a.len : a.pos + c, f = new h.BufferWrapper; a.pos < b;) { | |
var d = a.uint32(); | |
switch (d >>> 3) { | |
case 1: | |
f.buffer && f.buffer.length || (f.buffer = []); | |
f.buffer.push(h.Buffer.decode(a, a.uint32())); | |
break; | |
default: | |
a.skipType(7 & d) | |
} | |
} | |
return f | |
}; | |
return a | |
}(); | |
h.Buffer = function() { | |
function a(a) { | |
if (a) | |
for (var c = Object.keys(a), b = 0; b < c.length; ++b) null != a[c[b]] && (this[c[b]] = a[c[b]]) | |
} | |
a.prototype.stamp = 0; | |
a.prototype.data = null; | |
a.prototype.page = | |
0; | |
a.prototype.chunk = k.newBuffer([]); | |
a.prototype.end = !1; | |
a.create = function(b) { | |
return new a(b) | |
}; | |
a.encode = function(a, c) { | |
c || (c = g.create()); | |
null != a.stamp && a.hasOwnProperty("stamp") && c.uint32(8).int32(a.stamp); | |
null != a.data && a.hasOwnProperty("data") && h.Wrapper.encode(a.data, c.uint32(18).fork()).ldelim(); | |
null != a.page && a.hasOwnProperty("page") && c.uint32(24).int32(a.page); | |
null != a.chunk && a.hasOwnProperty("chunk") && c.uint32(34).bytes(a.chunk); | |
null != a.end && a.hasOwnProperty("end") && c.uint32(40).bool(a.end); | |
return c | |
}; | |
a.decode = function(a, c) { | |
a instanceof e || (a = e.create(a)); | |
for (var b = void 0 === c ? a.len : a.pos + c, f = new h.Buffer; a.pos < b;) { | |
var d = a.uint32(); | |
switch (d >>> 3) { | |
case 1: | |
f.stamp = a.int32(); | |
break; | |
case 2: | |
f.data = h.Wrapper.decode(a, a.uint32()); | |
break; | |
case 3: | |
f.page = a.int32(); | |
break; | |
case 4: | |
f.chunk = a.bytes(); | |
break; | |
case 5: | |
f.end = a.bool(); | |
break; | |
default: | |
a.skipType(7 & d) | |
} | |
} | |
return f | |
}; | |
return a | |
}(); | |
h.Wrapper = function() { | |
function a(a) { | |
if (a) | |
for (var c = Object.keys(a), b = 0; b < c.length; ++b) null != a[c[b]] && (this[c[b]] = a[c[b]]) | |
} | |
a.prototype.page = | |
null; | |
a.prototype.mutation = null; | |
a.prototype.event = null; | |
a.prototype.articleInfo = null; | |
a.prototype.publishersHeader = null; | |
a.prototype.activity = 0; | |
var b; | |
Object.defineProperty(a.prototype, "data", { | |
get: k.oneOfGetter(b = "page mutation event articleInfo publishersHeader activity".split(" ")), | |
set: k.oneOfSetter(b) | |
}); | |
a.create = function(c) { | |
return new a(c) | |
}; | |
a.encode = function(a, b) { | |
b || (b = g.create()); | |
null != a.page && a.hasOwnProperty("page") && h.Page.encode(a.page, b.uint32(10).fork()).ldelim(); | |
null != a.mutation && a.hasOwnProperty("mutation") && | |
h.Mutation.encode(a.mutation, b.uint32(18).fork()).ldelim(); | |
null != a.event && a.hasOwnProperty("event") && h.Event.encode(a.event, b.uint32(26).fork()).ldelim(); | |
null != a.articleInfo && a.hasOwnProperty("articleInfo") && h.ArticleInfo.encode(a.articleInfo, b.uint32(34).fork()).ldelim(); | |
null != a.publishersHeader && a.hasOwnProperty("publishersHeader") && h.PublishersHeader.encode(a.publishersHeader, b.uint32(42).fork()).ldelim(); | |
null != a.activity && a.hasOwnProperty("activity") && b.uint32(48).uint32(a.activity); | |
return b | |
}; | |
a.decode = function(a, b) { | |
a instanceof e || (a = e.create(a)); | |
for (var c = void 0 === b ? a.len : a.pos + b, f = new h.Wrapper; a.pos < c;) { | |
var d = a.uint32(); | |
switch (d >>> 3) { | |
case 1: | |
f.page = h.Page.decode(a, a.uint32()); | |
break; | |
case 2: | |
f.mutation = h.Mutation.decode(a, a.uint32()); | |
break; | |
case 3: | |
f.event = h.Event.decode(a, a.uint32()); | |
break; | |
case 4: | |
f.articleInfo = h.ArticleInfo.decode(a, a.uint32()); | |
break; | |
case 5: | |
f.publishersHeader = h.PublishersHeader.decode(a, a.uint32()); | |
break; | |
case 6: | |
f.activity = a.uint32(); | |
break; | |
default: | |
a.skipType(7 & d) | |
} | |
} | |
return f | |
}; | |
return a | |
}(); | |
h.Page = function() { | |
function a(a) { | |
this.content = []; | |
if (a) | |
for (var c = Object.keys(a), b = 0; b < c.length; ++b) null != a[c[b]] && (this[c[b]] = a[c[b]]) | |
} | |
a.prototype.meta = null; | |
a.prototype.content = k.emptyArray; | |
a.prototype.frameId = 0; | |
a.prototype.tabId = ""; | |
a.prototype.recordStamp = k.Long ? k.Long.fromBits(0, 0, !1) : 0; | |
a.create = function(b) { | |
return new a(b) | |
}; | |
a.encode = function(a, c) { | |
c || (c = g.create()); | |
null != a.meta && a.hasOwnProperty("meta") && h.Page.Meta.encode(a.meta, c.uint32(10).fork()).ldelim(); | |
if (null != a.content && a.content.length) | |
for (var b = | |
0; b < a.content.length; ++b) h.Page.Content.encode(a.content[b], c.uint32(18).fork()).ldelim(); | |
null != a.frameId && a.hasOwnProperty("frameId") && c.uint32(24).sint32(a.frameId); | |
null != a.tabId && a.hasOwnProperty("tabId") && c.uint32(34).string(a.tabId); | |
null != a.recordStamp && a.hasOwnProperty("recordStamp") && c.uint32(40).int64(a.recordStamp); | |
return c | |
}; | |
a.decode = function(a, c) { | |
a instanceof e || (a = e.create(a)); | |
for (var b = void 0 === c ? a.len : a.pos + c, d = new h.Page; a.pos < b;) { | |
var f = a.uint32(); | |
switch (f >>> 3) { | |
case 1: | |
d.meta = h.Page.Meta.decode(a, | |
a.uint32()); | |
break; | |
case 2: | |
d.content && d.content.length || (d.content = []); | |
d.content.push(h.Page.Content.decode(a, a.uint32())); | |
break; | |
case 3: | |
d.frameId = a.sint32(); | |
break; | |
case 4: | |
d.tabId = a.string(); | |
break; | |
case 5: | |
d.recordStamp = a.int64(); | |
break; | |
default: | |
a.skipType(7 & f) | |
} | |
} | |
return d | |
}; | |
a.Box = function() { | |
function a(a) { | |
if (a) | |
for (var c = Object.keys(a), b = 0; b < c.length; ++b) null != a[c[b]] && (this[c[b]] = a[c[b]]) | |
} | |
a.prototype.width = 0; | |
a.prototype.height = 0; | |
a.create = function(c) { | |
return new a(c) | |
}; | |
a.encode = function(a, b) { | |
b || (b = g.create()); | |
null != a.width && a.hasOwnProperty("width") && b.uint32(8).int32(a.width); | |
null != a.height && a.hasOwnProperty("height") && b.uint32(16).int32(a.height); | |
return b | |
}; | |
a.decode = function(a, b) { | |
a instanceof e || (a = e.create(a)); | |
for (var c = void 0 === b ? a.len : a.pos + b, d = new h.Page.Box; a.pos < c;) { | |
var f = a.uint32(); | |
switch (f >>> 3) { | |
case 1: | |
d.width = a.int32(); | |
break; | |
case 2: | |
d.height = a.int32(); | |
break; | |
default: | |
a.skipType(7 & f) | |
} | |
} | |
return d | |
}; | |
return a | |
}(); | |
a.Location = function() { | |
function a(a) { | |
if (a) | |
for (var c = Object.keys(a), b = 0; b < c.length; ++b) null != | |
a[c[b]] && (this[c[b]] = a[c[b]]) | |
} | |
a.prototype.host = ""; | |
a.prototype.protocol = ""; | |
a.prototype.path = ""; | |
a.create = function(c) { | |
return new a(c) | |
}; | |
a.encode = function(a, b) { | |
b || (b = g.create()); | |
null != a.host && a.hasOwnProperty("host") && b.uint32(10).string(a.host); | |
null != a.protocol && a.hasOwnProperty("protocol") && b.uint32(18).string(a.protocol); | |
null != a.path && a.hasOwnProperty("path") && b.uint32(26).string(a.path); | |
return b | |
}; | |
a.decode = function(a, b) { | |
a instanceof e || (a = e.create(a)); | |
for (var c = void 0 === b ? a.len : a.pos + b, d = new h.Page.Location; a.pos < | |
c;) { | |
var f = a.uint32(); | |
switch (f >>> 3) { | |
case 1: | |
d.host = a.string(); | |
break; | |
case 2: | |
d.protocol = a.string(); | |
break; | |
case 3: | |
d.path = a.string(); | |
break; | |
default: | |
a.skipType(7 & f) | |
} | |
} | |
return d | |
}; | |
return a | |
}(); | |
a.Scroll = function() { | |
function a(a) { | |
this.scroll = []; | |
if (a) | |
for (var c = Object.keys(a), b = 0; b < c.length; ++b) null != a[c[b]] && (this[c[b]] = a[c[b]]) | |
} | |
a.prototype.target = 0; | |
a.prototype.scroll = k.emptyArray; | |
a.create = function(c) { | |
return new a(c) | |
}; | |
a.encode = function(a, b) { | |
b || (b = g.create()); | |
null != a.target && a.hasOwnProperty("target") && b.uint32(8).int32(a.target); | |
if (null != a.scroll && a.scroll.length) { | |
b.uint32(18).fork(); | |
for (var c = 0; c < a.scroll.length; ++c) b.int32(a.scroll[c]); | |
b.ldelim() | |
} | |
return b | |
}; | |
a.decode = function(a, b) { | |
a instanceof e || (a = e.create(a)); | |
for (var c = void 0 === b ? a.len : a.pos + b, d = new h.Page.Scroll; a.pos < c;) { | |
var f = a.uint32(); | |
switch (f >>> 3) { | |
case 1: | |
d.target = a.int32(); | |
break; | |
case 2: | |
d.scroll && d.scroll.length || (d.scroll = []); | |
if (2 == (7 & f)) | |
for (f = a.uint32() + a.pos; a.pos < f;) d.scroll.push(a.int32()); | |
else d.scroll.push(a.int32()); | |
break; | |
default: | |
a.skipType(7 & f) | |
} | |
} | |
return d | |
}; | |
return a | |
}(); | |
a.Meta = function() { | |
function a(a) { | |
this.initialScroll = []; | |
if (a) | |
for (var c = Object.keys(a), b = 0; b < c.length; ++b) null != a[c[b]] && (this[c[b]] = a[c[b]]) | |
} | |
a.prototype.doctype = ""; | |
a.prototype.title = ""; | |
a.prototype.address = ""; | |
a.prototype.ua = ""; | |
a.prototype.referrer = ""; | |
a.prototype.base = ""; | |
a.prototype.hasBase = !1; | |
a.prototype.screen = null; | |
a.prototype.viewport = null; | |
a.prototype.location = null; | |
a.prototype.initialScroll = k.emptyArray; | |
a.create = function(c) { | |
return new a(c) | |
}; | |
a.encode = function(a, b) { | |
b || (b = g.create()); | |
null != | |
a.doctype && a.hasOwnProperty("doctype") && b.uint32(10).string(a.doctype); | |
null != a.title && a.hasOwnProperty("title") && b.uint32(18).string(a.title); | |
null != a.address && a.hasOwnProperty("address") && b.uint32(26).string(a.address); | |
null != a.ua && a.hasOwnProperty("ua") && b.uint32(34).string(a.ua); | |
null != a.referrer && a.hasOwnProperty("referrer") && b.uint32(42).string(a.referrer); | |
null != a.base && a.hasOwnProperty("base") && b.uint32(50).string(a.base); | |
null != a.hasBase && a.hasOwnProperty("hasBase") && b.uint32(56).bool(a.hasBase); | |
null != a.screen && a.hasOwnProperty("screen") && h.Page.Box.encode(a.screen, b.uint32(66).fork()).ldelim(); | |
null != a.viewport && a.hasOwnProperty("viewport") && h.Page.Box.encode(a.viewport, b.uint32(74).fork()).ldelim(); | |
null != a.location && a.hasOwnProperty("location") && h.Page.Location.encode(a.location, b.uint32(82).fork()).ldelim(); | |
if (null != a.initialScroll && a.initialScroll.length) | |
for (var c = 0; c < a.initialScroll.length; ++c) h.Page.Scroll.encode(a.initialScroll[c], b.uint32(90).fork()).ldelim(); | |
return b | |
}; | |
a.decode = function(a, | |
b) { | |
a instanceof e || (a = e.create(a)); | |
for (var c = void 0 === b ? a.len : a.pos + b, d = new h.Page.Meta; a.pos < c;) { | |
var f = a.uint32(); | |
switch (f >>> 3) { | |
case 1: | |
d.doctype = a.string(); | |
break; | |
case 2: | |
d.title = a.string(); | |
break; | |
case 3: | |
d.address = a.string(); | |
break; | |
case 4: | |
d.ua = a.string(); | |
break; | |
case 5: | |
d.referrer = a.string(); | |
break; | |
case 6: | |
d.base = a.string(); | |
break; | |
case 7: | |
d.hasBase = a.bool(); | |
break; | |
case 8: | |
d.screen = h.Page.Box.decode(a, a.uint32()); | |
break; | |
case 9: | |
d.viewport = h.Page.Box.decode(a, a.uint32()); | |
break; | |
case 10: | |
d.location = h.Page.Location.decode(a, | |
a.uint32()); | |
break; | |
case 11: | |
d.initialScroll && d.initialScroll.length || (d.initialScroll = []); | |
d.initialScroll.push(h.Page.Scroll.decode(a, a.uint32())); | |
break; | |
default: | |
a.skipType(7 & f) | |
} | |
} | |
return d | |
}; | |
return a | |
}(); | |
a.Content = function() { | |
function a(a) { | |
this.attributes = {}; | |
if (a) | |
for (var b = Object.keys(a), c = 0; c < b.length; ++c) null != a[b[c]] && (this[b[c]] = a[b[c]]) | |
} | |
a.prototype.id = 0; | |
a.prototype.name = ""; | |
a.prototype.attributes = k.emptyObject; | |
a.prototype.parent = 0; | |
a.prototype.content = ""; | |
a.prototype.next = 0; | |
a.prototype.prev = 0; | |
a.create = | |
function(b) { | |
return new a(b) | |
}; | |
a.encode = function(a, b) { | |
b || (b = g.create()); | |
null != a.id && a.hasOwnProperty("id") && b.uint32(8).int32(a.id); | |
null != a.name && a.hasOwnProperty("name") && b.uint32(18).string(a.name); | |
if (null != a.attributes && a.hasOwnProperty("attributes")) | |
for (var c = Object.keys(a.attributes), d = 0; d < c.length; ++d) b.uint32(26).fork().uint32(10).string(c[d]).uint32(18).string(a.attributes[c[d]]).ldelim(); | |
null != a.parent && a.hasOwnProperty("parent") && b.uint32(32).int32(a.parent); | |
null != a.content && a.hasOwnProperty("content") && | |
b.uint32(42).string(a.content); | |
null != a.next && a.hasOwnProperty("next") && b.uint32(48).int32(a.next); | |
null != a.prev && a.hasOwnProperty("prev") && b.uint32(56).int32(a.prev); | |
return b | |
}; | |
a.decode = function(a, b) { | |
a instanceof e || (a = e.create(a)); | |
for (var c, d = void 0 === b ? a.len : a.pos + b, f = new h.Page.Content; a.pos < d;) switch (c = a.uint32(), c >>> 3) { | |
case 1: | |
f.id = a.int32(); | |
break; | |
case 2: | |
f.name = a.string(); | |
break; | |
case 3: | |
a.skip().pos++; | |
f.attributes === k.emptyObject && (f.attributes = {}); | |
c = a.string(); | |
a.pos++; | |
f.attributes[c] = a.string(); | |
break; | |
case 4: | |
f.parent = a.int32(); | |
break; | |
case 5: | |
f.content = a.string(); | |
break; | |
case 6: | |
f.next = a.int32(); | |
break; | |
case 7: | |
f.prev = a.int32(); | |
break; | |
default: | |
a.skipType(7 & c) | |
} | |
return f | |
}; | |
return a | |
}(); | |
return a | |
}(); | |
h.Mutation = function() { | |
function a(a) { | |
if (a) | |
for (var b = Object.keys(a), d = 0; d < b.length; ++d) null != a[b[d]] && (this[b[d]] = a[b[d]]) | |
} | |
a.prototype.target = 0; | |
a.prototype.stamp = 0; | |
a.prototype.meta = null; | |
a.prototype.frameId = 0; | |
a.create = function(b) { | |
return new a(b) | |
}; | |
a.encode = function(a, b) { | |
b || (b = g.create()); | |
null != a.target && a.hasOwnProperty("target") && | |
b.uint32(8).int32(a.target); | |
null != a.stamp && a.hasOwnProperty("stamp") && b.uint32(16).int32(a.stamp); | |
null != a.meta && a.hasOwnProperty("meta") && h.Mutation.Meta.encode(a.meta, b.uint32(26).fork()).ldelim(); | |
null != a.frameId && a.hasOwnProperty("frameId") && b.uint32(32).sint32(a.frameId); | |
return b | |
}; | |
a.decode = function(a, b) { | |
a instanceof e || (a = e.create(a)); | |
for (var c = void 0 === b ? a.len : a.pos + b, d = new h.Mutation; a.pos < c;) { | |
var f = a.uint32(); | |
switch (f >>> 3) { | |
case 1: | |
d.target = a.int32(); | |
break; | |
case 2: | |
d.stamp = a.int32(); | |
break; | |
case 3: | |
d.meta = | |
h.Mutation.Meta.decode(a, a.uint32()); | |
break; | |
case 4: | |
d.frameId = a.sint32(); | |
break; | |
default: | |
a.skipType(7 & f) | |
} | |
} | |
return d | |
}; | |
a.Delete = function() { | |
function a(a) { | |
if (a) | |
for (var b = Object.keys(a), c = 0; c < b.length; ++c) null != a[b[c]] && (this[b[c]] = a[b[c]]) | |
} | |
a.prototype.id = 0; | |
a.prototype.pr = 0; | |
a.prototype.nx = 0; | |
a.prototype.pa = 0; | |
a.create = function(b) { | |
return new a(b) | |
}; | |
a.encode = function(a, b) { | |
b || (b = g.create()); | |
null != a.id && a.hasOwnProperty("id") && b.uint32(8).int32(a.id); | |
null != a.pr && a.hasOwnProperty("pr") && b.uint32(16).int32(a.pr); | |
null != | |
a.nx && a.hasOwnProperty("nx") && b.uint32(24).int32(a.nx); | |
null != a.pa && a.hasOwnProperty("pa") && b.uint32(32).int32(a.pa); | |
return b | |
}; | |
a.decode = function(a, b) { | |
a instanceof e || (a = e.create(a)); | |
for (var c = void 0 === b ? a.len : a.pos + b, d = new h.Mutation.Delete; a.pos < c;) { | |
var f = a.uint32(); | |
switch (f >>> 3) { | |
case 1: | |
d.id = a.int32(); | |
break; | |
case 2: | |
d.pr = a.int32(); | |
break; | |
case 3: | |
d.nx = a.int32(); | |
break; | |
case 4: | |
d.pa = a.int32(); | |
break; | |
default: | |
a.skipType(7 & f) | |
} | |
} | |
return d | |
}; | |
return a | |
}(); | |
a.Add = function() { | |
function a(a) { | |
this.at = {}; | |
if (a) | |
for (var b = Object.keys(a), | |
c = 0; c < b.length; ++c) null != a[b[c]] && (this[b[c]] = a[b[c]]) | |
} | |
a.prototype.id = 0; | |
a.prototype.nm = ""; | |
a.prototype.pa = 0; | |
a.prototype.ns = ""; | |
a.prototype.pr = 0; | |
a.prototype.at = k.emptyObject; | |
a.prototype.ct = ""; | |
a.prototype.nx = 0; | |
a.create = function(b) { | |
return new a(b) | |
}; | |
a.encode = function(a, b) { | |
b || (b = g.create()); | |
null != a.id && a.hasOwnProperty("id") && b.uint32(8).int32(a.id); | |
null != a.nm && a.hasOwnProperty("nm") && b.uint32(18).string(a.nm); | |
null != a.pa && a.hasOwnProperty("pa") && b.uint32(24).int32(a.pa); | |
null != a.ns && a.hasOwnProperty("ns") && | |
b.uint32(34).string(a.ns); | |
null != a.pr && a.hasOwnProperty("pr") && b.uint32(40).int32(a.pr); | |
if (null != a.at && a.hasOwnProperty("at")) | |
for (var c = Object.keys(a.at), d = 0; d < c.length; ++d) b.uint32(50).fork().uint32(10).string(c[d]).uint32(18).string(a.at[c[d]]).ldelim(); | |
null != a.ct && a.hasOwnProperty("ct") && b.uint32(58).string(a.ct); | |
null != a.nx && a.hasOwnProperty("nx") && b.uint32(64).int32(a.nx); | |
return b | |
}; | |
a.decode = function(a, b) { | |
a instanceof e || (a = e.create(a)); | |
for (var c, d = void 0 === b ? a.len : a.pos + b, f = new h.Mutation.Add; a.pos < | |
d;) switch (c = a.uint32(), c >>> 3) { | |
case 1: | |
f.id = a.int32(); | |
break; | |
case 2: | |
f.nm = a.string(); | |
break; | |
case 3: | |
f.pa = a.int32(); | |
break; | |
case 4: | |
f.ns = a.string(); | |
break; | |
case 5: | |
f.pr = a.int32(); | |
break; | |
case 6: | |
a.skip().pos++; | |
f.at === k.emptyObject && (f.at = {}); | |
c = a.string(); | |
a.pos++; | |
f.at[c] = a.string(); | |
break; | |
case 7: | |
f.ct = a.string(); | |
break; | |
case 8: | |
f.nx = a.int32(); | |
break; | |
default: | |
a.skipType(7 & c) | |
} | |
return f | |
}; | |
return a | |
}(); | |
a.BeforeAfter = function() { | |
function a(a) { | |
if (a) | |
for (var b = Object.keys(a), c = 0; c < b.length; ++c) null != a[b[c]] && (this[b[c]] = a[b[c]]) | |
} | |
a.prototype.o = | |
""; | |
a.prototype.n = ""; | |
a.create = function(b) { | |
return new a(b) | |
}; | |
a.encode = function(a, b) { | |
b || (b = g.create()); | |
null != a.o && a.hasOwnProperty("o") && b.uint32(10).string(a.o); | |
null != a.n && a.hasOwnProperty("n") && b.uint32(18).string(a.n); | |
return b | |
}; | |
a.decode = function(a, b) { | |
a instanceof e || (a = e.create(a)); | |
for (var c = void 0 === b ? a.len : a.pos + b, d = new h.Mutation.BeforeAfter; a.pos < c;) { | |
var f = a.uint32(); | |
switch (f >>> 3) { | |
case 1: | |
d.o = a.string(); | |
break; | |
case 2: | |
d.n = a.string(); | |
break; | |
default: | |
a.skipType(7 & f) | |
} | |
} | |
return d | |
}; | |
return a | |
}(); | |
a.AttributeChange = | |
function() { | |
function a(a) { | |
this.at = {}; | |
if (a) | |
for (var b = Object.keys(a), c = 0; c < b.length; ++c) null != a[b[c]] && (this[b[c]] = a[b[c]]) | |
} | |
a.prototype.id = 0; | |
a.prototype.at = k.emptyObject; | |
a.create = function(b) { | |
return new a(b) | |
}; | |
a.encode = function(a, b) { | |
b || (b = g.create()); | |
null != a.id && a.hasOwnProperty("id") && b.uint32(8).int32(a.id); | |
if (null != a.at && a.hasOwnProperty("at")) | |
for (var c = Object.keys(a.at), d = 0; d < c.length; ++d) b.uint32(18).fork().uint32(10).string(c[d]), h.Mutation.BeforeAfter.encode(a.at[c[d]], b.uint32(18).fork()).ldelim().ldelim(); | |
return b | |
}; | |
a.decode = function(a, b) { | |
a instanceof e || (a = e.create(a)); | |
for (var c, d = void 0 === b ? a.len : a.pos + b, f = new h.Mutation.AttributeChange; a.pos < d;) switch (c = a.uint32(), c >>> 3) { | |
case 1: | |
f.id = a.int32(); | |
break; | |
case 2: | |
a.skip().pos++; | |
f.at === k.emptyObject && (f.at = {}); | |
c = a.string(); | |
a.pos++; | |
f.at[c] = h.Mutation.BeforeAfter.decode(a, a.uint32()); | |
break; | |
default: | |
a.skipType(7 & c) | |
} | |
return f | |
}; | |
return a | |
}(); | |
a.TextChange = function() { | |
function a(a) { | |
if (a) | |
for (var b = Object.keys(a), c = 0; c < b.length; ++c) null != a[b[c]] && (this[b[c]] = a[b[c]]) | |
} | |
a.prototype.id = 0; | |
a.prototype.ct = null; | |
a.create = function(b) { | |
return new a(b) | |
}; | |
a.encode = function(a, b) { | |
b || (b = g.create()); | |
null != a.id && a.hasOwnProperty("id") && b.uint32(8).int32(a.id); | |
null != a.ct && a.hasOwnProperty("ct") && h.Mutation.BeforeAfter.encode(a.ct, b.uint32(18).fork()).ldelim(); | |
return b | |
}; | |
a.decode = function(a, b) { | |
a instanceof e || (a = e.create(a)); | |
for (var c = void 0 === b ? a.len : a.pos + b, d = new h.Mutation.TextChange; a.pos < c;) { | |
var f = a.uint32(); | |
switch (f >>> 3) { | |
case 1: | |
d.id = a.int32(); | |
break; | |
case 2: | |
d.ct = h.Mutation.BeforeAfter.decode(a, | |
a.uint32()); | |
break; | |
default: | |
a.skipType(7 & f) | |
} | |
} | |
return d | |
}; | |
return a | |
}(); | |
a.Changes = function() { | |
function a(a) { | |
this.a = []; | |
this.b = []; | |
this.c = []; | |
this.d = []; | |
if (a) | |
for (var b = Object.keys(a), c = 0; c < b.length; ++c) null != a[b[c]] && (this[b[c]] = a[b[c]]) | |
} | |
a.prototype.a = k.emptyArray; | |
a.prototype.b = k.emptyArray; | |
a.prototype.c = k.emptyArray; | |
a.prototype.d = k.emptyArray; | |
a.create = function(b) { | |
return new a(b) | |
}; | |
a.encode = function(a, b) { | |
b || (b = g.create()); | |
if (null != a.a && a.a.length) | |
for (var c = 0; c < a.a.length; ++c) h.Mutation.Delete.encode(a.a[c], b.uint32(10).fork()).ldelim(); | |
if (null != a.b && a.b.length) | |
for (c = 0; c < a.b.length; ++c) h.Mutation.Add.encode(a.b[c], b.uint32(18).fork()).ldelim(); | |
if (null != a.c && a.c.length) | |
for (c = 0; c < a.c.length; ++c) h.Mutation.AttributeChange.encode(a.c[c], b.uint32(26).fork()).ldelim(); | |
if (null != a.d && a.d.length) | |
for (c = 0; c < a.d.length; ++c) h.Mutation.TextChange.encode(a.d[c], b.uint32(34).fork()).ldelim(); | |
return b | |
}; | |
a.decode = function(a, b) { | |
a instanceof e || (a = e.create(a)); | |
for (var c = void 0 === b ? a.len : a.pos + b, d = new h.Mutation.Changes; a.pos < c;) { | |
var f = a.uint32(); | |
switch (f >>> | |
3) { | |
case 1: | |
d.a && d.a.length || (d.a = []); | |
d.a.push(h.Mutation.Delete.decode(a, a.uint32())); | |
break; | |
case 2: | |
d.b && d.b.length || (d.b = []); | |
d.b.push(h.Mutation.Add.decode(a, a.uint32())); | |
break; | |
case 3: | |
d.c && d.c.length || (d.c = []); | |
d.c.push(h.Mutation.AttributeChange.decode(a, a.uint32())); | |
break; | |
case 4: | |
d.d && d.d.length || (d.d = []); | |
d.d.push(h.Mutation.TextChange.decode(a, a.uint32())); | |
break; | |
default: | |
a.skipType(7 & f) | |
} | |
} | |
return d | |
}; | |
return a | |
}(); | |
a.Meta = function() { | |
function a(a) { | |
this.changes = []; | |
if (a) | |
for (var b = Object.keys(a), c = 0; c < b.length; ++c) null != | |
a[b[c]] && (this[b[c]] = a[b[c]]) | |
} | |
a.prototype.index = 0; | |
a.prototype.changes = k.emptyArray; | |
a.create = function(b) { | |
return new a(b) | |
}; | |
a.encode = function(a, b) { | |
b || (b = g.create()); | |
null != a.index && a.hasOwnProperty("index") && b.uint32(8).int32(a.index); | |
if (null != a.changes && a.changes.length) | |
for (var c = 0; c < a.changes.length; ++c) h.Mutation.Changes.encode(a.changes[c], b.uint32(18).fork()).ldelim(); | |
return b | |
}; | |
a.decode = function(a, b) { | |
a instanceof e || (a = e.create(a)); | |
for (var c = void 0 === b ? a.len : a.pos + b, d = new h.Mutation.Meta; a.pos < c;) { | |
var f = | |
a.uint32(); | |
switch (f >>> 3) { | |
case 1: | |
d.index = a.int32(); | |
break; | |
case 2: | |
d.changes && d.changes.length || (d.changes = []); | |
d.changes.push(h.Mutation.Changes.decode(a, a.uint32())); | |
break; | |
default: | |
a.skipType(7 & f) | |
} | |
} | |
return d | |
}; | |
return a | |
}(); | |
return a | |
}(); | |
h.Event = function() { | |
function a(a) { | |
if (a) | |
for (var b = Object.keys(a), c = 0; c < b.length; ++c) null != a[b[c]] && (this[b[c]] = a[b[c]]) | |
} | |
a.prototype.type = 0; | |
a.prototype.target = 0; | |
a.prototype.frameId = 0; | |
a.prototype.mouseEvent = null; | |
a.prototype.scrollEvent = null; | |
a.prototype.windowEvent = null; | |
a.prototype.selectionEvent = | |
null; | |
a.prototype.changeEvent = null; | |
a.prototype.touchEvent = null; | |
a.prototype.methodEvent = null; | |
a.prototype.propertyEvent = null; | |
a.prototype.zoomEvent = null; | |
a.prototype.resizeEvent = null; | |
a.prototype.keystrokesEvent = null; | |
a.prototype.deviceRotationEvent = null; | |
a.prototype.fatalErrorEvent = null; | |
a.prototype.hashchangeEvent = null; | |
var b; | |
Object.defineProperty(a.prototype, "meta", { | |
get: k.oneOfGetter(b = "mouseEvent scrollEvent windowEvent selectionEvent changeEvent touchEvent methodEvent propertyEvent zoomEvent resizeEvent keystrokesEvent deviceRotationEvent fatalErrorEvent hashchangeEvent".split(" ")), | |
set: k.oneOfSetter(b) | |
}); | |
a.create = function(b) { | |
return new a(b) | |
}; | |
a.encode = function(a, b) { | |
b || (b = g.create()); | |
null != a.type && a.hasOwnProperty("type") && b.uint32(8).int32(a.type); | |
null != a.target && a.hasOwnProperty("target") && b.uint32(16).sint32(a.target); | |
null != a.frameId && a.hasOwnProperty("frameId") && b.uint32(24).sint32(a.frameId); | |
null != a.mouseEvent && a.hasOwnProperty("mouseEvent") && h.MouseEvent.encode(a.mouseEvent, b.uint32(34).fork()).ldelim(); | |
null != a.scrollEvent && a.hasOwnProperty("scrollEvent") && h.ScrollEvent.encode(a.scrollEvent, | |
b.uint32(42).fork()).ldelim(); | |
null != a.windowEvent && a.hasOwnProperty("windowEvent") && h.WindowEvent.encode(a.windowEvent, b.uint32(50).fork()).ldelim(); | |
null != a.selectionEvent && a.hasOwnProperty("selectionEvent") && h.SelectionEvent.encode(a.selectionEvent, b.uint32(58).fork()).ldelim(); | |
null != a.changeEvent && a.hasOwnProperty("changeEvent") && h.ChangeEvent.encode(a.changeEvent, b.uint32(66).fork()).ldelim(); | |
null != a.touchEvent && a.hasOwnProperty("touchEvent") && h.TouchEvent.encode(a.touchEvent, b.uint32(74).fork()).ldelim(); | |
null != a.methodEvent && a.hasOwnProperty("methodEvent") && h.MethodEvent.encode(a.methodEvent, b.uint32(82).fork()).ldelim(); | |
null != a.propertyEvent && a.hasOwnProperty("propertyEvent") && h.PropertyEvent.encode(a.propertyEvent, b.uint32(90).fork()).ldelim(); | |
null != a.zoomEvent && a.hasOwnProperty("zoomEvent") && h.ZoomEvent.encode(a.zoomEvent, b.uint32(98).fork()).ldelim(); | |
null != a.resizeEvent && a.hasOwnProperty("resizeEvent") && h.ResizeEvent.encode(a.resizeEvent, b.uint32(106).fork()).ldelim(); | |
null != a.keystrokesEvent && | |
a.hasOwnProperty("keystrokesEvent") && h.KeystrokesEvent.encode(a.keystrokesEvent, b.uint32(114).fork()).ldelim(); | |
null != a.deviceRotationEvent && a.hasOwnProperty("deviceRotationEvent") && h.DeviceRotationEvent.encode(a.deviceRotationEvent, b.uint32(122).fork()).ldelim(); | |
null != a.fatalErrorEvent && a.hasOwnProperty("fatalErrorEvent") && h.FatalErrorEvent.encode(a.fatalErrorEvent, b.uint32(130).fork()).ldelim(); | |
null != a.hashchangeEvent && a.hasOwnProperty("hashchangeEvent") && h.HashchangeEvent.encode(a.hashchangeEvent, | |
b.uint32(138).fork()).ldelim(); | |
return b | |
}; | |
a.decode = function(a, b) { | |
a instanceof e || (a = e.create(a)); | |
for (var c = void 0 === b ? a.len : a.pos + b, d = new h.Event; a.pos < c;) { | |
var f = a.uint32(); | |
switch (f >>> 3) { | |
case 1: | |
d.type = a.int32(); | |
break; | |
case 2: | |
d.target = a.sint32(); | |
break; | |
case 3: | |
d.frameId = a.sint32(); | |
break; | |
case 4: | |
d.mouseEvent = h.MouseEvent.decode(a, a.uint32()); | |
break; | |
case 5: | |
d.scrollEvent = h.ScrollEvent.decode(a, a.uint32()); | |
break; | |
case 6: | |
d.windowEvent = h.WindowEvent.decode(a, a.uint32()); | |
break; | |
case 7: | |
d.selectionEvent = h.SelectionEvent.decode(a, | |
a.uint32()); | |
break; | |
case 8: | |
d.changeEvent = h.ChangeEvent.decode(a, a.uint32()); | |
break; | |
case 9: | |
d.touchEvent = h.TouchEvent.decode(a, a.uint32()); | |
break; | |
case 10: | |
d.methodEvent = h.MethodEvent.decode(a, a.uint32()); | |
break; | |
case 11: | |
d.propertyEvent = h.PropertyEvent.decode(a, a.uint32()); | |
break; | |
case 12: | |
d.zoomEvent = h.ZoomEvent.decode(a, a.uint32()); | |
break; | |
case 13: | |
d.resizeEvent = h.ResizeEvent.decode(a, a.uint32()); | |
break; | |
case 14: | |
d.keystrokesEvent = h.KeystrokesEvent.decode(a, a.uint32()); | |
break; | |
case 15: | |
d.deviceRotationEvent = h.DeviceRotationEvent.decode(a, | |
a.uint32()); | |
break; | |
case 16: | |
d.fatalErrorEvent = h.FatalErrorEvent.decode(a, a.uint32()); | |
break; | |
case 17: | |
d.hashchangeEvent = h.HashchangeEvent.decode(a, a.uint32()); | |
break; | |
default: | |
a.skipType(7 & f) | |
} | |
} | |
return d | |
}; | |
return a | |
}(); | |
h.MouseEvent = function() { | |
function a(a) { | |
if (a) | |
for (var b = Object.keys(a), d = 0; d < b.length; ++d) null != a[b[d]] && (this[b[d]] = a[b[d]]) | |
} | |
a.prototype.x = 0; | |
a.prototype.y = 0; | |
a.create = function(b) { | |
return new a(b) | |
}; | |
a.encode = function(a, b) { | |
b || (b = g.create()); | |
null != a.x && a.hasOwnProperty("x") && b.uint32(8).int32(a.x); | |
null != | |
a.y && a.hasOwnProperty("y") && b.uint32(16).int32(a.y); | |
return b | |
}; | |
a.decode = function(a, b) { | |
a instanceof e || (a = e.create(a)); | |
for (var c = void 0 === b ? a.len : a.pos + b, d = new h.MouseEvent; a.pos < c;) { | |
var f = a.uint32(); | |
switch (f >>> 3) { | |
case 1: | |
d.x = a.int32(); | |
break; | |
case 2: | |
d.y = a.int32(); | |
break; | |
default: | |
a.skipType(7 & f) | |
} | |
} | |
return d | |
}; | |
return a | |
}(); | |
h.ScrollEvent = function() { | |
function a(a) { | |
if (a) | |
for (var b = Object.keys(a), d = 0; d < b.length; ++d) null != a[b[d]] && (this[b[d]] = a[b[d]]) | |
} | |
a.prototype.x = 0; | |
a.prototype.y = 0; | |
a.prototype.page = !1; | |
a.create = function(b) { | |
return new a(b) | |
}; | |
a.encode = function(a, b) { | |
b || (b = g.create()); | |
null != a.x && a.hasOwnProperty("x") && b.uint32(8).int32(a.x); | |
null != a.y && a.hasOwnProperty("y") && b.uint32(16).int32(a.y); | |
null != a.page && a.hasOwnProperty("page") && b.uint32(24).bool(a.page); | |
return b | |
}; | |
a.decode = function(a, b) { | |
a instanceof e || (a = e.create(a)); | |
for (var c = void 0 === b ? a.len : a.pos + b, d = new h.ScrollEvent; a.pos < c;) { | |
var f = a.uint32(); | |
switch (f >>> 3) { | |
case 1: | |
d.x = a.int32(); | |
break; | |
case 2: | |
d.y = a.int32(); | |
break; | |
case 3: | |
d.page = a.bool(); | |
break; | |
default: | |
a.skipType(7 & f) | |
} | |
} | |
return d | |
}; | |
return a | |
}(); | |
h.WindowEvent = function() { | |
function a(a) { | |
if (a) | |
for (var b = Object.keys(a), d = 0; d < b.length; ++d) null != a[b[d]] && (this[b[d]] = a[b[d]]) | |
} | |
a.create = function(b) { | |
return new a(b) | |
}; | |
a.encode = function(a, b) { | |
b || (b = g.create()); | |
return b | |
}; | |
a.decode = function(a, b) { | |
a instanceof e || (a = e.create(a)); | |
for (var c = void 0 === b ? a.len : a.pos + b, d = new h.WindowEvent; a.pos < c;) { | |
var f = a.uint32(); | |
a.skipType(7 & f) | |
} | |
return d | |
}; | |
return a | |
}(); | |
h.SelectionEvent = function() { | |
function a(a) { | |
if (a) | |
for (var b = Object.keys(a), d = 0; d < b.length; ++d) null != a[b[d]] && | |
(this[b[d]] = a[b[d]]) | |
} | |
a.prototype.start = 0; | |
a.prototype.end = 0; | |
a.prototype.startNode = 0; | |
a.prototype.endNode = 0; | |
a.create = function(b) { | |
return new a(b) | |
}; | |
a.encode = function(a, b) { | |
b || (b = g.create()); | |
null != a.start && a.hasOwnProperty("start") && b.uint32(8).int32(a.start); | |
null != a.end && a.hasOwnProperty("end") && b.uint32(16).int32(a.end); | |
null != a.startNode && a.hasOwnProperty("startNode") && b.uint32(24).int32(a.startNode); | |
null != a.endNode && a.hasOwnProperty("endNode") && b.uint32(32).int32(a.endNode); | |
return b | |
}; | |
a.decode = function(a, | |
b) { | |
a instanceof e || (a = e.create(a)); | |
for (var c = void 0 === b ? a.len : a.pos + b, d = new h.SelectionEvent; a.pos < c;) { | |
var f = a.uint32(); | |
switch (f >>> 3) { | |
case 1: | |
d.start = a.int32(); | |
break; | |
case 2: | |
d.end = a.int32(); | |
break; | |
case 3: | |
d.startNode = a.int32(); | |
break; | |
case 4: | |
d.endNode = a.int32(); | |
break; | |
default: | |
a.skipType(7 & f) | |
} | |
} | |
return d | |
}; | |
return a | |
}(); | |
h.ChangeEvent = function() { | |
function a(a) { | |
if (a) | |
for (var b = Object.keys(a), d = 0; d < b.length; ++d) null != a[b[d]] && (this[b[d]] = a[b[d]]) | |
} | |
a.prototype.value = ""; | |
a.prototype.checked = !1; | |
a.prototype.hidden = !1; | |
a.create = | |
function(b) { | |
return new a(b) | |
}; | |
a.encode = function(a, b) { | |
b || (b = g.create()); | |
null != a.value && a.hasOwnProperty("value") && b.uint32(10).string(a.value); | |
null != a.checked && a.hasOwnProperty("checked") && b.uint32(16).bool(a.checked); | |
null != a.hidden && a.hasOwnProperty("hidden") && b.uint32(24).bool(a.hidden); | |
return b | |
}; | |
a.decode = function(a, b) { | |
a instanceof e || (a = e.create(a)); | |
for (var c = void 0 === b ? a.len : a.pos + b, d = new h.ChangeEvent; a.pos < c;) { | |
var f = a.uint32(); | |
switch (f >>> 3) { | |
case 1: | |
d.value = a.string(); | |
break; | |
case 2: | |
d.checked = a.bool(); | |
break; | |
case 3: | |
d.hidden = a.bool(); | |
break; | |
default: | |
a.skipType(7 & f) | |
} | |
} | |
return d | |
}; | |
return a | |
}(); | |
h.TouchEvent = function() { | |
function a(a) { | |
this.touches = []; | |
if (a) | |
for (var b = Object.keys(a), d = 0; d < b.length; ++d) null != a[b[d]] && (this[b[d]] = a[b[d]]) | |
} | |
a.prototype.touches = k.emptyArray; | |
a.create = function(b) { | |
return new a(b) | |
}; | |
a.encode = function(a, b) { | |
b || (b = g.create()); | |
if (null != a.touches && a.touches.length) | |
for (var c = 0; c < a.touches.length; ++c) h.TouchEvent.SubMeta.encode(a.touches[c], b.uint32(10).fork()).ldelim(); | |
return b | |
}; | |
a.decode = function(a, | |
b) { | |
a instanceof e || (a = e.create(a)); | |
for (var c = void 0 === b ? a.len : a.pos + b, d = new h.TouchEvent; a.pos < c;) { | |
var f = a.uint32(); | |
switch (f >>> 3) { | |
case 1: | |
d.touches && d.touches.length || (d.touches = []); | |
d.touches.push(h.TouchEvent.SubMeta.decode(a, a.uint32())); | |
break; | |
default: | |
a.skipType(7 & f) | |
} | |
} | |
return d | |
}; | |
a.SubMeta = function() { | |
function a(a) { | |
if (a) | |
for (var b = Object.keys(a), c = 0; c < b.length; ++c) null != a[b[c]] && (this[b[c]] = a[b[c]]) | |
} | |
a.prototype.id = ""; | |
a.prototype.x = 0; | |
a.prototype.y = 0; | |
a.prototype.force = 0; | |
a.create = function(b) { | |
return new a(b) | |
}; | |
a.encode = function(a, b) { | |
b || (b = g.create()); | |
null != a.id && a.hasOwnProperty("id") && b.uint32(10).string(a.id); | |
null != a.x && a.hasOwnProperty("x") && b.uint32(21)["float"](a.x); | |
null != a.y && a.hasOwnProperty("y") && b.uint32(29)["float"](a.y); | |
null != a.force && a.hasOwnProperty("force") && b.uint32(37)["float"](a.force); | |
return b | |
}; | |
a.decode = function(a, b) { | |
a instanceof e || (a = e.create(a)); | |
for (var c = void 0 === b ? a.len : a.pos + b, d = new h.TouchEvent.SubMeta; a.pos < c;) { | |
var f = a.uint32(); | |
switch (f >>> 3) { | |
case 1: | |
d.id = a.string(); | |
break; | |
case 2: | |
d.x = | |
a["float"](); | |
break; | |
case 3: | |
d.y = a["float"](); | |
break; | |
case 4: | |
d.force = a["float"](); | |
break; | |
default: | |
a.skipType(7 & f) | |
} | |
} | |
return d | |
}; | |
return a | |
}(); | |
return a | |
}(); | |
h.ZoomEvent = function() { | |
function a(a) { | |
if (a) | |
for (var b = Object.keys(a), d = 0; d < b.length; ++d) null != a[b[d]] && (this[b[d]] = a[b[d]]) | |
} | |
a.prototype.zoomFrom = null; | |
a.prototype.zoomTo = null; | |
a.create = function(b) { | |
return new a(b) | |
}; | |
a.encode = function(a, b) { | |
b || (b = g.create()); | |
null != a.zoomFrom && a.hasOwnProperty("zoomFrom") && h.ZoomEvent.ZoomPoint.encode(a.zoomFrom, b.uint32(10).fork()).ldelim(); | |
null != a.zoomTo && a.hasOwnProperty("zoomTo") && h.ZoomEvent.ZoomPoint.encode(a.zoomTo, b.uint32(18).fork()).ldelim(); | |
return b | |
}; | |
a.decode = function(a, b) { | |
a instanceof e || (a = e.create(a)); | |
for (var c = void 0 === b ? a.len : a.pos + b, d = new h.ZoomEvent; a.pos < c;) { | |
var f = a.uint32(); | |
switch (f >>> 3) { | |
case 1: | |
d.zoomFrom = h.ZoomEvent.ZoomPoint.decode(a, a.uint32()); | |
break; | |
case 2: | |
d.zoomTo = h.ZoomEvent.ZoomPoint.decode(a, a.uint32()); | |
break; | |
default: | |
a.skipType(7 & f) | |
} | |
} | |
return d | |
}; | |
a.ZoomPoint = function() { | |
function a(a) { | |
if (a) | |
for (var b = Object.keys(a), | |
c = 0; c < b.length; ++c) null != a[b[c]] && (this[b[c]] = a[b[c]]) | |
} | |
a.prototype.level = 0; | |
a.prototype.x = 0; | |
a.prototype.y = 0; | |
a.create = function(b) { | |
return new a(b) | |
}; | |
a.encode = function(a, b) { | |
b || (b = g.create()); | |
null != a.level && a.hasOwnProperty("level") && b.uint32(13)["float"](a.level); | |
null != a.x && a.hasOwnProperty("x") && b.uint32(16).int32(a.x); | |
null != a.y && a.hasOwnProperty("y") && b.uint32(24).int32(a.y); | |
return b | |
}; | |
a.decode = function(a, b) { | |
a instanceof e || (a = e.create(a)); | |
for (var c = void 0 === b ? a.len : a.pos + b, d = new h.ZoomEvent.ZoomPoint; a.pos < | |
c;) { | |
var f = a.uint32(); | |
switch (f >>> 3) { | |
case 1: | |
d.level = a["float"](); | |
break; | |
case 2: | |
d.x = a.int32(); | |
break; | |
case 3: | |
d.y = a.int32(); | |
break; | |
default: | |
a.skipType(7 & f) | |
} | |
} | |
return d | |
}; | |
return a | |
}(); | |
return a | |
}(); | |
h.ResizeEvent = function() { | |
function a(a) { | |
if (a) | |
for (var b = Object.keys(a), d = 0; d < b.length; ++d) null != a[b[d]] && (this[b[d]] = a[b[d]]) | |
} | |
a.prototype.width = 0; | |
a.prototype.height = 0; | |
a.prototype.pageWidth = 0; | |
a.prototype.pageHeight = 0; | |
a.create = function(b) { | |
return new a(b) | |
}; | |
a.encode = function(a, b) { | |
b || (b = g.create()); | |
null != a.width && a.hasOwnProperty("width") && | |
b.uint32(8).int32(a.width); | |
null != a.height && a.hasOwnProperty("height") && b.uint32(16).int32(a.height); | |
null != a.pageWidth && a.hasOwnProperty("pageWidth") && b.uint32(24).int32(a.pageWidth); | |
null != a.pageHeight && a.hasOwnProperty("pageHeight") && b.uint32(32).int32(a.pageHeight); | |
return b | |
}; | |
a.decode = function(a, b) { | |
a instanceof e || (a = e.create(a)); | |
for (var c = void 0 === b ? a.len : a.pos + b, d = new h.ResizeEvent; a.pos < c;) { | |
var f = a.uint32(); | |
switch (f >>> 3) { | |
case 1: | |
d.width = a.int32(); | |
break; | |
case 2: | |
d.height = a.int32(); | |
break; | |
case 3: | |
d.pageWidth = | |
a.int32(); | |
break; | |
case 4: | |
d.pageHeight = a.int32(); | |
break; | |
default: | |
a.skipType(7 & f) | |
} | |
} | |
return d | |
}; | |
return a | |
}(); | |
h.MethodEvent = function() { | |
function a(a) { | |
this.args = []; | |
if (a) | |
for (var b = Object.keys(a), d = 0; d < b.length; ++d) null != a[b[d]] && (this[b[d]] = a[b[d]]) | |
} | |
a.prototype.method = ""; | |
a.prototype.args = k.emptyArray; | |
a.create = function(b) { | |
return new a(b) | |
}; | |
a.encode = function(a, b) { | |
b || (b = g.create()); | |
null != a.method && a.hasOwnProperty("method") && b.uint32(10).string(a.method); | |
if (null != a.args && a.args.length) | |
for (var c = 0; c < a.args.length; ++c) b.uint32(18).string(a.args[c]); | |
return b | |
}; | |
a.decode = function(a, b) { | |
a instanceof e || (a = e.create(a)); | |
for (var c = void 0 === b ? a.len : a.pos + b, d = new h.MethodEvent; a.pos < c;) { | |
var f = a.uint32(); | |
switch (f >>> 3) { | |
case 1: | |
d.method = a.string(); | |
break; | |
case 2: | |
d.args && d.args.length || (d.args = []); | |
d.args.push(a.string()); | |
break; | |
default: | |
a.skipType(7 & f) | |
} | |
} | |
return d | |
}; | |
return a | |
}(); | |
h.PropertyEvent = function() { | |
function a(a) { | |
if (a) | |
for (var b = Object.keys(a), d = 0; d < b.length; ++d) null != a[b[d]] && (this[b[d]] = a[b[d]]) | |
} | |
a.prototype.property = ""; | |
a.prototype.value = ""; | |
a.create = function(b) { | |
return new a(b) | |
}; | |
a.encode = function(a, b) { | |
b || (b = g.create()); | |
null != a.property && a.hasOwnProperty("property") && b.uint32(10).string(a.property); | |
null != a.value && a.hasOwnProperty("value") && b.uint32(18).string(a.value); | |
return b | |
}; | |
a.decode = function(a, b) { | |
a instanceof e || (a = e.create(a)); | |
for (var c = void 0 === b ? a.len : a.pos + b, d = new h.PropertyEvent; a.pos < c;) { | |
var f = a.uint32(); | |
switch (f >>> 3) { | |
case 1: | |
d.property = a.string(); | |
break; | |
case 2: | |
d.value = a.string(); | |
break; | |
default: | |
a.skipType(7 & f) | |
} | |
} | |
return d | |
}; | |
return a | |
}(); | |
h.KeystrokesEvent = function() { | |
function a(a) { | |
this.keystrokes = []; | |
if (a) | |
for (var b = Object.keys(a), d = 0; d < b.length; ++d) null != a[b[d]] && (this[b[d]] = a[b[d]]) | |
} | |
a.prototype.keystrokes = k.emptyArray; | |
a.create = function(b) { | |
return new a(b) | |
}; | |
a.encode = function(a, b) { | |
b || (b = g.create()); | |
if (null != a.keystrokes && a.keystrokes.length) | |
for (var c = 0; c < a.keystrokes.length; ++c) h.KeystrokesEvent.KeystrokeEvent.encode(a.keystrokes[c], b.uint32(10).fork()).ldelim(); | |
return b | |
}; | |
a.decode = function(a, b) { | |
a instanceof e || (a = e.create(a)); | |
for (var c = void 0 === b ? a.len : a.pos + b, d = new h.KeystrokesEvent; a.pos < c;) { | |
var f = | |
a.uint32(); | |
switch (f >>> 3) { | |
case 1: | |
d.keystrokes && d.keystrokes.length || (d.keystrokes = []); | |
d.keystrokes.push(h.KeystrokesEvent.KeystrokeEvent.decode(a, a.uint32())); | |
break; | |
default: | |
a.skipType(7 & f) | |
} | |
} | |
return d | |
}; | |
a.KeystrokeEvent = function() { | |
function a(a) { | |
if (a) | |
for (var b = Object.keys(a), c = 0; c < b.length; ++c) null != a[b[c]] && (this[b[c]] = a[b[c]]) | |
} | |
a.prototype.id = 0; | |
a.prototype.key = ""; | |
a.prototype.isMeta = !1; | |
a.prototype.modifier = ""; | |
a.create = function(b) { | |
return new a(b) | |
}; | |
a.encode = function(a, b) { | |
b || (b = g.create()); | |
null != a.id && a.hasOwnProperty("id") && | |
b.uint32(8).int32(a.id); | |
null != a.key && a.hasOwnProperty("key") && b.uint32(18).string(a.key); | |
null != a.isMeta && a.hasOwnProperty("isMeta") && b.uint32(24).bool(a.isMeta); | |
null != a.modifier && a.hasOwnProperty("modifier") && b.uint32(34).string(a.modifier); | |
return b | |
}; | |
a.decode = function(a, b) { | |
a instanceof e || (a = e.create(a)); | |
for (var c = void 0 === b ? a.len : a.pos + b, d = new h.KeystrokesEvent.KeystrokeEvent; a.pos < c;) { | |
var f = a.uint32(); | |
switch (f >>> 3) { | |
case 1: | |
d.id = a.int32(); | |
break; | |
case 2: | |
d.key = a.string(); | |
break; | |
case 3: | |
d.isMeta = a.bool(); | |
break; | |
case 4: | |
d.modifier = a.string(); | |
break; | |
default: | |
a.skipType(7 & f) | |
} | |
} | |
return d | |
}; | |
return a | |
}(); | |
return a | |
}(); | |
h.DeviceRotationEvent = function() { | |
function a(a) { | |
if (a) | |
for (var b = Object.keys(a), d = 0; d < b.length; ++d) null != a[b[d]] && (this[b[d]] = a[b[d]]) | |
} | |
a.prototype.width = 0; | |
a.prototype.height = 0; | |
a.prototype.orientation = 0; | |
a.create = function(b) { | |
return new a(b) | |
}; | |
a.encode = function(a, b) { | |
b || (b = g.create()); | |
null != a.width && a.hasOwnProperty("width") && b.uint32(8).int32(a.width); | |
null != a.height && a.hasOwnProperty("height") && b.uint32(16).int32(a.height); | |
null != a.orientation && a.hasOwnProperty("orientation") && b.uint32(24).int32(a.orientation); | |
return b | |
}; | |
a.decode = function(a, b) { | |
a instanceof e || (a = e.create(a)); | |
for (var c = void 0 === b ? a.len : a.pos + b, d = new h.DeviceRotationEvent; a.pos < c;) { | |
var f = a.uint32(); | |
switch (f >>> 3) { | |
case 1: | |
d.width = a.int32(); | |
break; | |
case 2: | |
d.height = a.int32(); | |
break; | |
case 3: | |
d.orientation = a.int32(); | |
break; | |
default: | |
a.skipType(7 & f) | |
} | |
} | |
return d | |
}; | |
return a | |
}(); | |
h.FatalErrorEvent = function() { | |
function a(a) { | |
if (a) | |
for (var b = Object.keys(a), d = 0; d < b.length; ++d) null != | |
a[b[d]] && (this[b[d]] = a[b[d]]) | |
} | |
a.prototype.code = ""; | |
a.prototype.exception = ""; | |
a.prototype.stack = ""; | |
a.create = function(b) { | |
return new a(b) | |
}; | |
a.encode = function(a, b) { | |
b || (b = g.create()); | |
null != a.code && a.hasOwnProperty("code") && b.uint32(10).string(a.code); | |
null != a.exception && a.hasOwnProperty("exception") && b.uint32(18).string(a.exception); | |
null != a.stack && a.hasOwnProperty("stack") && b.uint32(26).string(a.stack); | |
return b | |
}; | |
a.decode = function(a, b) { | |
a instanceof e || (a = e.create(a)); | |
for (var c = void 0 === b ? a.len : a.pos + b, d = new h.FatalErrorEvent; a.pos < | |
c;) { | |
var f = a.uint32(); | |
switch (f >>> 3) { | |
case 1: | |
d.code = a.string(); | |
break; | |
case 2: | |
d.exception = a.string(); | |
break; | |
case 3: | |
d.stack = a.string(); | |
break; | |
default: | |
a.skipType(7 & f) | |
} | |
} | |
return d | |
}; | |
return a | |
}(); | |
h.HashchangeEvent = function() { | |
function a(a) { | |
if (a) | |
for (var b = Object.keys(a), d = 0; d < b.length; ++d) null != a[b[d]] && (this[b[d]] = a[b[d]]) | |
} | |
a.prototype.hash = ""; | |
a.create = function(b) { | |
return new a(b) | |
}; | |
a.encode = function(a, b) { | |
b || (b = g.create()); | |
null != a.hash && a.hasOwnProperty("hash") && b.uint32(10).string(a.hash); | |
return b | |
}; | |
a.decode = function(a, | |
b) { | |
a instanceof e || (a = e.create(a)); | |
for (var c = void 0 === b ? a.len : a.pos + b, d = new h.HashchangeEvent; a.pos < c;) { | |
var f = a.uint32(); | |
switch (f >>> 3) { | |
case 1: | |
d.hash = a.string(); | |
break; | |
default: | |
a.skipType(7 & f) | |
} | |
} | |
return d | |
}; | |
return a | |
}(); | |
h.EventType = function() { | |
var a = {}, | |
b = Object.create(a); | |
b[a[0] = "mousemove"] = 0; | |
b[a[1] = "mouseup"] = 1; | |
b[a[2] = "mousedown"] = 2; | |
b[a[3] = "click"] = 3; | |
b[a[4] = "scroll"] = 4; | |
b[a[5] = "windowblur"] = 5; | |
b[a[6] = "windowfocus"] = 6; | |
b[a[7] = "focus"] = 7; | |
b[a[8] = "blur"] = 8; | |
b[a[9] = "eof"] = 9; | |
b[a[10] = "selection"] = 10; | |
b[a[11] = "change"] = | |
11; | |
b[a[12] = "input"] = 12; | |
b[a[13] = "touchmove"] = 13; | |
b[a[14] = "touchstart"] = 14; | |
b[a[15] = "touchend"] = 15; | |
b[a[16] = "touchcancel"] = 16; | |
b[a[17] = "touchforcechange"] = 17; | |
b[a[18] = "canvasMethod"] = 18; | |
b[a[19] = "canvasProperty"] = 19; | |
b[a[20] = "zoom"] = 20; | |
b[a[21] = "resize"] = 21; | |
b[a[22] = "mediaMethod"] = 22; | |
b[a[23] = "mediaProperty"] = 23; | |
b[a[24] = "keystroke"] = 24; | |
b[a[25] = "deviceRotation"] = 25; | |
b[a[26] = "fatalError"] = 26; | |
b[a[27] = "hashchange"] = 27; | |
return b | |
}(); | |
h.PublishersHeader = function() { | |
function a(a) { | |
this.articleMeta = []; | |
if (a) | |
for (var b = Object.keys(a), | |
d = 0; d < b.length; ++d) null != a[b[d]] && (this[b[d]] = a[b[d]]) | |
} | |
a.prototype.articleMeta = k.emptyArray; | |
a.prototype.involvedTime = 0; | |
a.create = function(b) { | |
return new a(b) | |
}; | |
a.encode = function(a, b) { | |
b || (b = g.create()); | |
if (null != a.articleMeta && a.articleMeta.length) | |
for (var c = 0; c < a.articleMeta.length; ++c) h.ArticleMeta.encode(a.articleMeta[c], b.uint32(10).fork()).ldelim(); | |
null != a.involvedTime && a.hasOwnProperty("involvedTime") && b.uint32(16).int32(a.involvedTime); | |
return b | |
}; | |
a.decode = function(a, b) { | |
a instanceof e || (a = e.create(a)); | |
for (var c = void 0 === b ? a.len : a.pos + b, d = new h.PublishersHeader; a.pos < c;) { | |
var f = a.uint32(); | |
switch (f >>> 3) { | |
case 1: | |
d.articleMeta && d.articleMeta.length || (d.articleMeta = []); | |
d.articleMeta.push(h.ArticleMeta.decode(a, a.uint32())); | |
break; | |
case 2: | |
d.involvedTime = a.int32(); | |
break; | |
default: | |
a.skipType(7 & f) | |
} | |
} | |
return d | |
}; | |
return a | |
}(); | |
h.ArticleMeta = function() { | |
function a(a) { | |
if (a) | |
for (var b = Object.keys(a), d = 0; d < b.length; ++d) null != a[b[d]] && (this[b[d]] = a[b[d]]) | |
} | |
a.prototype.id = 0; | |
a.prototype.x = 0; | |
a.prototype.y = 0; | |
a.prototype.width = | |
0; | |
a.prototype.height = 0; | |
a.prototype.involvedTime = 0; | |
a.prototype.maxScrolled = 0; | |
a.prototype.chars = 0; | |
a.create = function(b) { | |
return new a(b) | |
}; | |
a.encode = function(a, b) { | |
b || (b = g.create()); | |
null != a.id && a.hasOwnProperty("id") && b.uint32(8).uint32(a.id); | |
null != a.x && a.hasOwnProperty("x") && b.uint32(16).int32(a.x); | |
null != a.y && a.hasOwnProperty("y") && b.uint32(24).int32(a.y); | |
null != a.width && a.hasOwnProperty("width") && b.uint32(32).int32(a.width); | |
null != a.height && a.hasOwnProperty("height") && b.uint32(40).int32(a.height); | |
null != | |
a.involvedTime && a.hasOwnProperty("involvedTime") && b.uint32(48).int32(a.involvedTime); | |
null != a.maxScrolled && a.hasOwnProperty("maxScrolled") && b.uint32(61)["float"](a.maxScrolled); | |
null != a.chars && a.hasOwnProperty("chars") && b.uint32(64).int32(a.chars); | |
return b | |
}; | |
a.decode = function(a, b) { | |
a instanceof e || (a = e.create(a)); | |
for (var c = void 0 === b ? a.len : a.pos + b, d = new h.ArticleMeta; a.pos < c;) { | |
var f = a.uint32(); | |
switch (f >>> 3) { | |
case 1: | |
d.id = a.uint32(); | |
break; | |
case 2: | |
d.x = a.int32(); | |
break; | |
case 3: | |
d.y = a.int32(); | |
break; | |
case 4: | |
d.width = | |
a.int32(); | |
break; | |
case 5: | |
d.height = a.int32(); | |
break; | |
case 6: | |
d.involvedTime = a.int32(); | |
break; | |
case 7: | |
d.maxScrolled = a["float"](); | |
break; | |
case 8: | |
d.chars = a.int32(); | |
break; | |
default: | |
a.skipType(7 & f) | |
} | |
} | |
return d | |
}; | |
return a | |
}(); | |
h.ArticleInfo = function() { | |
function a(a) { | |
this.authors = []; | |
this.topics = []; | |
this.rubric = []; | |
if (a) | |
for (var b = Object.keys(a), d = 0; d < b.length; ++d) null != a[b[d]] && (this[b[d]] = a[b[d]]) | |
} | |
a.prototype.id = 0; | |
a.prototype.pageUrlCanonical = ""; | |
a.prototype.pageTitle = ""; | |
a.prototype.authors = k.emptyArray; | |
a.prototype.topics = k.emptyArray; | |
a.prototype.publicationDate = ""; | |
a.prototype.chars = 0; | |
a.prototype.rubric = k.emptyArray; | |
a.prototype.updateDate = ""; | |
a.create = function(b) { | |
return new a(b) | |
}; | |
a.encode = function(a, b) { | |
b || (b = g.create()); | |
null != a.id && a.hasOwnProperty("id") && b.uint32(8).uint32(a.id); | |
null != a.pageUrlCanonical && a.hasOwnProperty("pageUrlCanonical") && b.uint32(18).string(a.pageUrlCanonical); | |
null != a.pageTitle && a.hasOwnProperty("pageTitle") && b.uint32(26).string(a.pageTitle); | |
if (null != a.authors && a.authors.length) | |
for (var c = 0; c < a.authors.length; ++c) h.ArticleAuthor.encode(a.authors[c], | |
b.uint32(34).fork()).ldelim(); | |
if (null != a.topics && a.topics.length) | |
for (c = 0; c < a.topics.length; ++c) h.ArticleTopic.encode(a.topics[c], b.uint32(42).fork()).ldelim(); | |
null != a.publicationDate && a.hasOwnProperty("publicationDate") && b.uint32(50).string(a.publicationDate); | |
null != a.chars && a.hasOwnProperty("chars") && b.uint32(56).int32(a.chars); | |
if (null != a.rubric && a.rubric.length) | |
for (c = 0; c < a.rubric.length; ++c) h.ArticleRubric.encode(a.rubric[c], b.uint32(66).fork()).ldelim(); | |
null != a.updateDate && a.hasOwnProperty("updateDate") && | |
b.uint32(74).string(a.updateDate); | |
return b | |
}; | |
a.decode = function(a, b) { | |
a instanceof e || (a = e.create(a)); | |
for (var c = void 0 === b ? a.len : a.pos + b, d = new h.ArticleInfo; a.pos < c;) { | |
var f = a.uint32(); | |
switch (f >>> 3) { | |
case 1: | |
d.id = a.uint32(); | |
break; | |
case 2: | |
d.pageUrlCanonical = a.string(); | |
break; | |
case 3: | |
d.pageTitle = a.string(); | |
break; | |
case 4: | |
d.authors && d.authors.length || (d.authors = []); | |
d.authors.push(h.ArticleAuthor.decode(a, a.uint32())); | |
break; | |
case 5: | |
d.topics && d.topics.length || (d.topics = []); | |
d.topics.push(h.ArticleTopic.decode(a, a.uint32())); | |
break; | |
case 6: | |
d.publicationDate = a.string(); | |
break; | |
case 7: | |
d.chars = a.int32(); | |
break; | |
case 8: | |
d.rubric && d.rubric.length || (d.rubric = []); | |
d.rubric.push(h.ArticleRubric.decode(a, a.uint32())); | |
break; | |
case 9: | |
d.updateDate = a.string(); | |
break; | |
default: | |
a.skipType(7 & f) | |
} | |
} | |
return d | |
}; | |
return a | |
}(); | |
h.ArticleAuthor = function() { | |
function a(a) { | |
if (a) | |
for (var b = Object.keys(a), d = 0; d < b.length; ++d) null != a[b[d]] && (this[b[d]] = a[b[d]]) | |
} | |
a.prototype.name = ""; | |
a.create = function(b) { | |
return new a(b) | |
}; | |
a.encode = function(a, b) { | |
b || (b = g.create()); | |
null != a.name && | |
a.hasOwnProperty("name") && b.uint32(10).string(a.name); | |
return b | |
}; | |
a.decode = function(a, b) { | |
a instanceof e || (a = e.create(a)); | |
for (var c = void 0 === b ? a.len : a.pos + b, d = new h.ArticleAuthor; a.pos < c;) { | |
var f = a.uint32(); | |
switch (f >>> 3) { | |
case 1: | |
d.name = a.string(); | |
break; | |
default: | |
a.skipType(7 & f) | |
} | |
} | |
return d | |
}; | |
return a | |
}(); | |
h.ArticleTopic = function() { | |
function a(a) { | |
if (a) | |
for (var b = Object.keys(a), d = 0; d < b.length; ++d) null != a[b[d]] && (this[b[d]] = a[b[d]]) | |
} | |
a.prototype.name = ""; | |
a.create = function(b) { | |
return new a(b) | |
}; | |
a.encode = function(a, b) { | |
b || | |
(b = g.create()); | |
null != a.name && a.hasOwnProperty("name") && b.uint32(10).string(a.name); | |
return b | |
}; | |
a.decode = function(a, b) { | |
a instanceof e || (a = e.create(a)); | |
for (var c = void 0 === b ? a.len : a.pos + b, d = new h.ArticleTopic; a.pos < c;) { | |
var f = a.uint32(); | |
switch (f >>> 3) { | |
case 1: | |
d.name = a.string(); | |
break; | |
default: | |
a.skipType(7 & f) | |
} | |
} | |
return d | |
}; | |
return a | |
}(); | |
h.ArticleRubric = function() { | |
function a(a) { | |
if (a) | |
for (var b = Object.keys(a), d = 0; d < b.length; ++d) null != a[b[d]] && (this[b[d]] = a[b[d]]) | |
} | |
a.prototype.name = ""; | |
a.prototype.position = 0; | |
a.create = | |
function(b) { | |
return new a(b) | |
}; | |
a.encode = function(a, b) { | |
b || (b = g.create()); | |
null != a.name && a.hasOwnProperty("name") && b.uint32(10).string(a.name); | |
null != a.position && a.hasOwnProperty("position") && b.uint32(16).int32(a.position); | |
return b | |
}; | |
a.decode = function(a, b) { | |
a instanceof e || (a = e.create(a)); | |
for (var c = void 0 === b ? a.len : a.pos + b, d = new h.ArticleRubric; a.pos < c;) { | |
var f = a.uint32(); | |
switch (f >>> 3) { | |
case 1: | |
d.name = a.string(); | |
break; | |
case 2: | |
d.position = a.int32(); | |
break; | |
default: | |
a.skipType(7 & f) | |
} | |
} | |
return d | |
}; | |
return a | |
}(); | |
a.exports = | |
h | |
}]), | |
hb = { | |
ScrollEvent: { | |
type: G.ScrollEvent, | |
events: ["scroll"] | |
}, | |
SelectionEvent: { | |
type: G.SelectionEvent, | |
events: ["selection"] | |
}, | |
ChangeEvent: { | |
type: G.ChangeEvent, | |
events: ["change", "input"] | |
}, | |
MethodEvent: { | |
type: G.MethodEvent, | |
events: ["canvasMethod", "mediaMethod"] | |
}, | |
PropertyEvent: { | |
type: G.PropertyEvent, | |
events: ["canvasProperty", "mediaProperty"] | |
}, | |
KeystrokeEvent: { | |
type: G.KeystrokesEvent, | |
events: ["keystroke"] | |
}, | |
ZoomEvent: { | |
type: G.ZoomEvent, | |
events: ["zoom"] | |
}, | |
ResizeEvent: { | |
type: G.ResizeEvent, | |
events: ["resize"] | |
}, | |
WindowEvent: { | |
type: G.WindowEvent, | |
events: ["windowfocus", "windowblur", "focus", "blur", "eof"] | |
}, | |
MouseEvent: { | |
type: G.MouseEvent, | |
events: ["mousemove", "mouseup", "mousedown", "click"] | |
}, | |
DeviceRotationEvent: { | |
type: G.DeviceRotationEvent, | |
events: ["deviceRotation"] | |
}, | |
FatalErrorEvent: { | |
type: G.FatalErrorEvent, | |
events: ["fatalError"] | |
}, | |
TouchEvent: { | |
type: G.TouchEvent, | |
events: ["touchmove", "touchstart", "touchend", "touchcancel", "touchforcechange"] | |
} | |
}, | |
Sb = k.reduce(function(a, b) { | |
return a.concat(k.map(function(a) { | |
return { | |
eventName: a, | |
type: hb[b].type, | |
typeStr: b | |
} | |
}, hb[b].events)) | |
}, | |
[], k.keys(hb)), | |
rb = va.inherit({ | |
protocol: "", | |
chunkSize: 0, | |
counterId: "", | |
counterType: "", | |
meta: null, | |
maxBufferSize: 7E5, | |
serializer: { | |
nullToStr: function(a) { | |
var b = this; | |
if (k.isArray(a)) return k.map(function(a) { | |
return b.nullToStr(a) | |
}, a); | |
if (k.isObject(a)) k.forEachKey(a, function(d, e) { | |
a[d] = b.nullToStr(e); | |
return !0 | |
}); | |
else if (null === a || a === w) a = ""; | |
return a | |
}, | |
uncapitalize: function(a, b) { | |
var d = a.slice(1); | |
return a.charAt(0).toLowerCase() + (b ? d.toLowerCase() : d) | |
}, | |
capitalize: function(a, b) { | |
var d = a.slice(1); | |
return a.charAt(0).toUpperCase() + | |
(b ? d.toLowerCase() : d) | |
}, | |
notNaN: function(a) { | |
return isNaN(a) && "number" == typeof a ? 0 : a | |
}, | |
eventSerialize: function(a) { | |
var b = k.filter(function(b) { | |
return b.eventName == a.type | |
}, Sb), | |
d; | |
for (d = 0; d < b.length; d++) var e = b[d]; | |
if (e) return d = new e.type(this.nullToStr(a.meta)), b = new G.Event({ | |
type: G.EventType[e.eventName], | |
target: a.target, | |
frameId: a.frameId | |
}), b[this.uncapitalize(e.typeStr)] = d, b | |
}, | |
pageSerialize: function(a) { | |
return new G.Page(this.nullToStr(a)) | |
}, | |
articleInfoSerialize: function(a) { | |
return new G.ArticleInfo(this.nullToStr(a)) | |
}, | |
publishersHeaderSerialize: function(a) { | |
return new G.PublishersHeader(this.nullToStr(a)) | |
}, | |
mutationSerialize: function(a) { | |
return new G.Mutation(this.nullToStr(a)) | |
}, | |
initBuffer: function() { | |
return new G.BufferWrapper | |
}, | |
appendBuffer: function(a, b) { | |
a.buffer.push(b) | |
}, | |
serializeChunk: function(a) { | |
return this.serializeBuffer(null, a) | |
}, | |
serializeBuffer: function(a, b, d) { | |
var e = new G.Buffer(b); | |
a = a || new G.Wrapper; | |
b || (e.data = a); | |
d !== w && (e.stamp = d); | |
b && b.stamp === w && (e.stamp = x.getFormStart()); | |
return e | |
}, | |
toTransport: function(a, | |
b, d, e) { | |
var g = b || "BufferWrapper", | |
k = this; | |
if (d) fb.chain([function() { | |
return k.nullToStr(a) | |
}, function(a) { | |
return G[g].encode(a) | |
}, function(a) { | |
return a.finish() | |
}, function(a) { | |
return d.call(e, a) | |
}], "", !1, "toTransportChain." + g); | |
else return G[g].encode(this.nullToStr(a)).finish() | |
}, | |
fromTrasport: function(a, b) { | |
if ("number" == typeof a[0]) return G[b || "BufferWrapper"].decode(a) | |
}, | |
serialize: function(a, b, d) { | |
var e = {}, | |
g = {}, | |
k = this[a + "Serialize"]; | |
if (k) e[a] = k.call(this, b), g = new G.Wrapper(e); | |
else if (d && G.Wrapper.prototype[a] !== | |
w) g[a] = b; | |
else throw "Unrecoginze type of message"; | |
return d ? G.Wrapper.encode(g).finish() : g | |
} | |
}, | |
_dataSize: 0, | |
flushTimeout: 2E3, | |
storageKey: "visorbuff3", | |
active: !1, | |
wvType: 3, | |
_v: "", | |
_initComponent: function() { | |
this._sender = new gb({ | |
version: this.wvType, | |
protocol: this.protocol, | |
browserInfoMix: this.browserInfoMix, | |
globalConfig: this.globalConfig, | |
counterId: this.counterId, | |
counterType: this.counterType | |
}); | |
this.maxChunkSize = .9 * this.maxBufferSize; | |
Ua.superclass._initComponent.apply(this, arguments) | |
}, | |
activate: function() { | |
this.active || | |
(this.active = !0) | |
}, | |
mergeData: function(a, b) { | |
b.data && 0 === b.data.size || (this.serializer.appendBuffer(a, b), this._dataSize = 0) | |
}, | |
_getSize: function(a) { | |
return a.length | |
}, | |
sendEncoded: function(a, b, d, e, g) { | |
var k = this._getSize(a), | |
h = this.getFlushSize(), | |
m = 0, | |
f = 0, | |
c = 1; | |
d.size = k; | |
h + k > this.maxBufferSize && h && this._flush(e); | |
if (k > this.maxBufferSize) | |
for (h = Math.ceil(k / this.maxChunkSize); f < k;) { | |
b.page = c; | |
b.end = c === h; | |
b.chunk = a.slice(m, m += this.maxChunkSize); | |
if (0 == b.chunk.length) break; | |
b.size = this._getSize(b.chunk); | |
f += b.size; | |
d = this.serializer.serializeChunk(b); | |
this.store.set(d, g); | |
this.append(d, e); | |
c++ | |
} else d = this.serializer.serializeBuffer(d, null, b.stamp), this.store.set(d, g), this.append(d, e) | |
}, | |
addData: function(a, b, d, e, g) { | |
var p = { | |
type: a | |
}; | |
this._v = d; | |
this.wrappers.length && k.arrayEvery(this.wrappers, function(d) { | |
d.trigger && d.trigger(a, b); | |
return 1 | |
}); | |
if (g) { | |
var h = this.serializer.serializeBuffer({ | |
size: 0 | |
}); | |
this.append(h, e) | |
} else this._data && 0 == this._data.buffer.length && (this.startBufferTime = x.getSeconds()), b.stamp !== w && (p.stamp = b.stamp, delete b.stamp), h = this.serializer.serialize(a, | |
b), e ? (d = this.serializer.toTransport(h, "Wrapper"), this.sendEncoded(d, p, h, !0, { | |
id: a, | |
data: b | |
})) : this.serializer.toTransport(h, "Wrapper", function(d) { | |
this.sendEncoded(d, p, h, !1, { | |
id: a, | |
data: b | |
}) | |
}, this) | |
}, | |
dataFromStorage: function(a) { | |
return this.serializer.fromTrasport(a) | |
}, | |
dataToStorage: function(a) { | |
return this.serializer.toTransport(a) | |
}, | |
getFlushSize: function() { | |
var a = this, | |
b = k.reduce(function(a, b) { | |
return a + (b.data ? b.data.size : b.size) | |
}, 0, this._data.buffer); | |
this.wrappers.length && (b += k.reduce(function(b, e) { | |
var d = e.getBufferData(); | |
return b += a.serializer.serialize(d.type, d.data, !0).length | |
}, b, this.wrappers)); | |
return b | |
}, | |
onFlush: function(a, b, d, e) { | |
var g = this; | |
this._dataSize = 0; | |
a && (this.wrappers.length && (k.arrayEvery(this.wrappers, function(b) { | |
if (!b.onFlush) return 1; | |
k.arrayEvery(a.buffer, function(a) { | |
a = this.store.pop(a); | |
if (!a) return 1; | |
b.onFlush(a.id, a.data); | |
return 1 | |
}, this) | |
}, this), a = k.reduce(function(a, b) { | |
var d = b.getBufferData(), | |
e = { | |
data: {} | |
}; | |
e.data[d.type] = d.data; | |
d = new g.serializer.serializeBuffer(null, e); | |
g.mergeData(a, d); | |
return a | |
}, a, this.wrappers)), | |
e ? this._sender.sendPacket(this.serializer.toTransport(a), b.url, b.hitId, d, b.timezone, b.timestamp, this.startBufferTime) : this.serializer.toTransport(a, "BufferWrapper", function(a) { | |
this._sender.sendPacket(a, b.url, b.hitId, d, b.timezone, b.timestamp, this.startBufferTime) | |
}, this)) | |
}, | |
clear: function() { | |
this._data = this.serializer.initBuffer(); | |
this._dataSize = 0; | |
this._flushTID = null; | |
this.storage && this.storage.remove(this.storageKey) | |
} | |
}), | |
R = {}; | |
R._cookie = new J({ | |
onlyCurrentDomain: !0 | |
}); | |
R._check = E(function() { | |
return -1 < n.location.href.indexOf("_ym_debug\x3d1") || | |
n._ym_debug || "1" === R._cookie.read("debug") | |
}); | |
R.enabled = R._check(); | |
R.log = E(function() { | |
(-1 < H.href.indexOf("_ym_debug\x3d1") || n._ym_debug) && this._cookie.create("debug", "1"); | |
n.console && console.log && this._check() && (R.enabled = !0, console.log.apply(console, arguments)) | |
}, "DebugConsole.log"); | |
var Tb = I.inherit({ | |
eventMap: { | |
mousemove: { | |
val: 0, | |
multiply: 1 / .68 | |
}, | |
click: { | |
val: 0, | |
multiply: 1 / .00975 | |
}, | |
input: { | |
val: 0, | |
multiply: 1 / .0116 | |
}, | |
scroll: { | |
val: 0, | |
multiply: 1 / .31 | |
}, | |
fatalError: { | |
val: 0, | |
multiply: 1 | |
} | |
}, | |
getBufferData: function() { | |
var a = this; | |
return { | |
type: "activity", | |
data: k.reduce(function(b, d) { | |
var e = a.eventMap[d]; | |
return Math.round(b + e.val * e.multiply) | |
}, 0, k.keys(this.eventMap)) | |
} | |
}, | |
onFlush: function(a, b) { | |
var d; | |
if (d = this.eventMap["event" !== a ? a : b.type]) d.val += 1 | |
} | |
}), | |
Ub = I.inherit({ | |
buffer: null, | |
meta: !1, | |
activeEvents: "page resize scroll mousemove mousedown click windowfocus keystroke deviceRotation input touchmove touchstart".split(" "), | |
isStopped: !1, | |
schemas: { | |
schema: { | |
id: "s", | |
_select: function(a, b) { | |
return a.querySelectorAll(b) | |
}, | |
_getVal: function(a) { | |
if (a && | |
0 != a.length) return a.length === w && (a = [a]), a[0].getAttribute("content") || a[0].innerText | |
}, | |
_getDate: function(a) { | |
var b = ""; | |
a.length || (a = [a]); | |
a = a[0]; | |
return b = a.attributes && a.attributes.datetime ? b + a.attributes.datetime.value : b + this._getVal(a) | |
}, | |
fields: { | |
id: function(a) { | |
var b = this._select(a, '[itemprop\x3d"identifier"]'); | |
if (b.length) return this._getVal(b); | |
b = this._select(a, '[itemprop\x3d"mainEntityOfPage"]'); | |
return b.length && b[0].getAttribute("itemid") ? b[0].getAttribute("itemid") : null | |
}, | |
chars: function(a) { | |
var b = | |
0, | |
d = this._select(a, '[itemprop\x3d"articleBody"]'); | |
return b = d.length ? b + d[0].innerText.length : b + a.innerText.length | |
}, | |
topics: function(a) { | |
var b = []; | |
a = this._select(a, '[itemprop\x3d"about"]'); | |
return b = k.map(function(a) { | |
var b = {}; | |
a = self._select(a, '[itemprop\x3d"name"]'); | |
a.length && (b.name = self._getVal(a)); | |
return b | |
}, a) | |
}, | |
rubric: function(a) { | |
var b = [], | |
d = this; | |
a = this._select(a, '[itemtype\x3d"http://schema.org/BreadcrumbList"]'); | |
a.length || (a = this._select(this.root, '[itemtype\x3d"http://schema.org/BreadcrumbList"]')); | |
a.length && (a = this._select(a[0], '[itemprop\x3d"itemListElement"]'), a.length && (b = k.map(function(a) { | |
return { | |
name: d._getVal(d._select(a, '[itemprop\x3d"name"]')), | |
position: d._getVal(d._select(a, '[itemprop\x3d"position"]')) | |
} | |
}, a))); | |
return b | |
}, | |
updateDate: function(a) { | |
a = this._select(a, '[itemprop\x3d"dateModified"]'); | |
return a.length ? this._getDate(a) : "" | |
}, | |
publicationDate: function(a) { | |
a = this._select(a, '[itemprop\x3d"datePublished"]'); | |
return a.length ? this._getDate(a) : "" | |
}, | |
pageUrlCanonical: function() { | |
var a = this._select(this.root, | |
'[rel\x3d"canonical"]'); | |
if (a.length) return a[0].href | |
}, | |
pageTitle: function(a) { | |
var b = "", | |
d = this._select(a, '[itemprop\x3d"headline"]'); | |
d.length && (b += this._getVal(d)); | |
d = this._select(a, '[itemprop\x3d"alternativeHeadline"]'); | |
d.length && (b += " " + this._getVal(d)); | |
return b | |
}, | |
authors: function(a) { | |
a = this._select(a, '[itemprop\x3d"author"]'); | |
var b = this, | |
d = []; | |
return d = k.map(function(a) { | |
var d = {}; | |
if ("http://schema.org/Person" == a.getAttribute("itemtype")) { | |
var e = b._select(a, '[itemprop\x3d"name"]'); | |
e.length && (d.name = b._getVal(e)) | |
} | |
d.name || | |
(d.name = a.getAttribute("content") || a.innerText || a.getAttribute("href")); | |
return d | |
}, a) | |
} | |
}, | |
_nodeToDict: function(a, b) { | |
var d = {}, | |
e, g, p = this; | |
if (b) return p.fields[b].call(p, a); | |
k.map(function(b) { | |
d[b] = p.fields[b].call(p, a); | |
return 1 | |
}, k.keys(this.fields)); | |
d.stamp = x.getFormStart(); | |
d.id || (d.id = d.pageTitle); | |
if (!d.id) | |
for (e = 1; 5 >= e; e++) | |
if (g = this._getVal(this._select(a, "h" + e))) { | |
d.id = g; | |
d.pageTitle = g; | |
break | |
} d.id || (e = this._select(this.root, '[rel\x3d"canonical"]'), e.length && (d.id = e[0].href)); | |
d.id = k.fnv32a(d.id) || 1; | |
d.update = | |
k.bind(this._nodeToDict, this, a); | |
return d | |
}, | |
findArticals: function() { | |
var a, b = [], | |
d = n.document.querySelectorAll('[itemtype*\x3d"Article"]'); | |
for (a = 0; a < d.length; a++) b.push(k.mixin({ | |
node: d[a], | |
sended: !1, | |
involvedTime: 0 | |
}, this._nodeToDict(d[a]))); | |
return b | |
} | |
} | |
}, | |
checkSize: function() { | |
var a = this, | |
b = "pai" + this._schema.id, | |
d = this.globalConfig.get(b, []); | |
d.push(function(b) { | |
!a.isStopped && b.length && (a.findArticals(b), a.meta = a.getMeta(), a.send()) | |
}); | |
this.globalConfig.setSafe(b, d); | |
if (1 == d.length) { | |
var e = function(d) { | |
var g = a.globalConfig.get(b), | |
h = a._schema.findArticals(); | |
a.findArticals(h); | |
a.meta = a.getMeta(); | |
var m = k.toJSON(a.meta); | |
if (!a.isStopped) { | |
if (d !== m) | |
for (d = 0; d < g.length; d++) { | |
var f = k.map(function(a) { | |
return k.mixin({}, a) | |
}, h); | |
g[d](f) | |
} | |
a.timeout = k.setTimeout(function() { | |
e(m) | |
}, 1E3) | |
} | |
}; | |
e() | |
} | |
}, | |
stop: function() { | |
this.isStopped = !0 | |
}, | |
getBufferData: function() { | |
return { | |
type: "publishersHeader", | |
data: { | |
articleMeta: this.meta || {}, | |
involvedTime: this.involvedTime || 0 | |
} | |
} | |
}, | |
findArticals: function(a) { | |
var b = k.map(function(a) { | |
return a.id | |
}, this.articles); | |
this.articles = this.articles.concat(k.filter(function(a) { | |
return !k.inArray(b, | |
a.id) | |
}, a)) | |
}, | |
getScroll: function() { | |
this.scroll = { | |
x: n.pageXOffset || this.root.scrollLeft, | |
y: n.pageYOffset || this.root.scrollTop | |
} | |
}, | |
_initComponent: function() { | |
var a = v.getViewportSize(); | |
this.handlers = []; | |
this.events = []; | |
this.articles = []; | |
this.root = v.getRootElement(); | |
this.getScroll(); | |
this.viewbox = { | |
width: a[0], | |
height: a[1] | |
} | |
}, | |
getMeta: function() { | |
var a = this; | |
this.getScroll(); | |
return k.map(function(b) { | |
var d = { | |
id: b.id, | |
involvedTime: b.involvedTime || 0, | |
maxScrolled: b.maxScrolled || 0, | |
chars: b.update ? b.update("chars") : 0 | |
}; | |
b.node && k.isFunction(b.node.getBoundingClientRect) && | |
(b = b.node.getBoundingClientRect(), d.x = Math.round(b.left) + a.scroll.x, d.y = Math.round(b.top) + a.scroll.y, d.width = Math.round(b.width), d.height = Math.round(b.height)); | |
return d | |
}, this.articles) | |
}, | |
getArticalsToSend: function() { | |
var a = [], | |
b; | |
for (b = 0; b < this.articles.length; b++) | |
if (!this.articles[b].sended) { | |
var d = k.mixin({}, this.articles[b]); | |
delete d.node; | |
delete d.sended; | |
delete d.involvedTime; | |
delete d.visibility; | |
delete d.maxScrolled; | |
delete d.update; | |
a.push(d) | |
} return a | |
}, | |
send: function() { | |
var a = this.getArticalsToSend(); | |
a.length && (this.push({ | |
articleInfo: a | |
}), k.arrayEvery(this.articles, function(a) { | |
a.sended = !0; | |
return 1 | |
})) | |
}, | |
start: function(a) { | |
var b = this; | |
a && a.schema && this.schemas[a.schema] && n.document && k.isFunction(n.document.querySelectorAll) ? (this.globalConfig.setSafe("pai", function() { | |
return k.reduce(function(a, b) { | |
(a.visibility || 0) <= b.visibility && (a = b); | |
return a | |
}, {}, b.articles).id | |
}), this._schema = this.schemas[a.schema], this._schema.root = this.root, this.checkSize()) : this.stop() | |
}, | |
push: function(a) { | |
k.arrayEvery(this.handlers, | |
function(b) { | |
b(a); | |
return 1 | |
}); | |
this.events.push(a) | |
}, | |
middleware: function(a) { | |
this.handlers.push(a); | |
k.arrayEvery(this.events, function(b) { | |
a(b) | |
}) | |
}, | |
lastStamp: 0, | |
involvedTime: 0, | |
MAX_INACTIVE: 5E3, | |
trigger: function(a, b) { | |
var d = "event" !== a ? a : b.type; | |
if (k.inArray(this.activeEvents, d)) { | |
"scroll" == d && b.meta && b.meta.page && (this.scroll = b.meta); | |
"resize" == d && 0 == b.target && (this.viewbox = b.meta); | |
var e = x.getMs() - this.lastStamp; | |
e = Math.min(e, this.MAX_INACTIVE); | |
this.involvedTime += Math.round(e); | |
this.lastStamp = x.getMs(); | |
this.meta && | |
this.scroll && this.viewbox && k.arrayEvery(this.articles, function(a, b) { | |
var d = this.meta[b], | |
g = Math.max((Math.min(this.scroll.y + this.viewbox.height, d.y + d.height) - Math.max(this.scroll.y, d.y)) / this.viewbox.height, 0), | |
f = Math.max((this.scroll.y + this.viewbox.height - d.y) / d.height, 0); | |
a.involvedTime += Math.round(g * e); | |
a.maxScrolled = Math.round(1E4 * f) / 1E4; | |
a.visibility = g; | |
d.involvedTime = a.involvedTime; | |
return 1 | |
}, this) | |
} | |
} | |
}), | |
sb = I.inherit({ | |
hid: 0, | |
tz: 0, | |
ts: 0, | |
counterId: 0, | |
counterType: 0, | |
url: "", | |
protocol: "", | |
executor: fb, | |
enabled: !1, | |
_map: { | |
page: { | |
iterate: !1, | |
name: "page" | |
}, | |
events: { | |
iterate: !0, | |
name: "event" | |
}, | |
mutations: { | |
iterate: !0, | |
name: "mutation" | |
}, | |
articleInfo: { | |
iterate: !0, | |
name: "articleInfo" | |
} | |
}, | |
_getBufferType: function() { | |
var a = Ua; | |
R.enabled || n.Uint8Array && n.Uint8Array.prototype.slice && (a = rb); | |
return a | |
}, | |
_initComponent: E(function() { | |
var a = this._getBufferType(); | |
this._localStorage = new ca({ | |
counterId: this.counterId | |
}); | |
var b = this._localStorage.get("pai"); | |
var d = this._getStorage(); | |
var e = d.read("visorc"); | |
"b" !== e && "w" !== e && (e = ""); | |
if (!d.isEnabled() || bb("opera mini")) e = | |
"b"; | |
this._publisher = new Ub({ | |
globalConfig: this.globalConfig | |
}); | |
this._vc = e; | |
d = { | |
protocol: this.protocol, | |
counterId: this.counterId, | |
counterType: this.counterType, | |
globalConfig: this.globalConfig, | |
meta: { | |
url: this.url, | |
hitId: this.hid, | |
timezone: this.tz, | |
timestamp: this.ts | |
} | |
}; | |
this._recorder = new Kb; | |
this._buffer = new a(k.mixin({}, d, { | |
browserInfoMix: { | |
bt: 1 | |
} | |
})); | |
this._eventsBuffer = new a(k.mixin(d, b && { | |
browserInfoMix: { | |
pai: b | |
} | |
})); | |
this._localStorage.remove("pai"); | |
this._buffer.activate(); | |
this._eventsBuffer.activate(); | |
"b" !== e && (this._formRecorder = | |
new Cb(this.protocol, this.counterId, this.counterType, this.hid, this.globalConfig), this._recorder.on("error", function(a) { | |
Wa(a.error, a.namespace) | |
}), this._activity = new Tb); | |
sb.superclass._initComponent.apply(this, arguments) | |
}, "wv2.init"), | |
start: E(function(a, b) { | |
var d = this, | |
e = this._vc; | |
if (this._recorder) { | |
a = a || {}; | |
var g = +a.recp; | |
if (!isFinite(g) || 0 > g || 1 < g) e = "w"; | |
e || (e = this.hid % 1E4 / 1E4 < g ? "w" : "b"); | |
this._getStorage().create("visorc", e, 30); | |
this._publisher.start(b); | |
"w" === e && this.isEnabled() && this.globalConfig.setSafe("wv2Counter", | |
this.counterId); | |
"w" === e && this.isEnabled() && this._isCorrectCounter() ? (this._recorder.middleware(function(a) { | |
d.send(a.data) | |
}), this._recorder.init(), this._eventsBuffer.wrappers.push(this._activity), this._recorder.start(a), this._formRecorder.start(), this.globalConfig.get("stopRecoder", function() {})(), this.globalConfig.set("stopRecoder", function() { | |
d.stop() | |
})) : this._publisher && !this._publisher.isStopped ? (this._recorder.middleware(function(a) { | |
d.send(a.data, !0) | |
}), this._recorder.init({ | |
disableIndex: !0, | |
disableMutations: !0 | |
}), | |
this._recorder.start(a)) : this.stop(); | |
this._publisher && !this._publisher.isStopped && (this._eventsBuffer.wrappers.push(this._publisher), this._eventsBuffer.setWVType(this._buffer instanceof rb ? 5 : 4), this._publisher.middleware(function(a) { | |
d.send(a) | |
})) | |
} | |
}, "wv2.start"), | |
stop: function() { | |
this._publisher && this._publisher.stop(); | |
this._recorder && (this._recorder.stop(), this._formRecorder && this._formRecorder.stop()) | |
}, | |
isEnabled: function() { | |
var a = !this.globalConfig.get("oo"); | |
return this.enabled && n.MutationObserver && | |
a | |
}, | |
send: function(a, b) { | |
var d = a._v; | |
k.forEachKey(a, function(a, g) { | |
var e = this._map[a], | |
h = this._buffer; | |
if (e) { | |
var m = e.name; | |
k.inArray(["event", "articleInfo"], m) && (h = this._eventsBuffer); | |
e.iterate ? k.forEachKey(g, function(a, c) { | |
var e = "eof" === c.type, | |
f = [h], | |
g; | |
e && (f = [this._eventsBuffer, this._buffer]); | |
for (g = 0; g < f.length; g++) this.executor.addAsyncItem(f[g].addData, f[g], e, [m, c, d, e, b], "send." + (c ? c.type || c.group || "" : "empty")) | |
}, this) : h.addData(m, g, d) | |
} | |
}, this) | |
}, | |
getVc: function() { | |
return this._vc | |
}, | |
_getStorage: function() { | |
this._storage || | |
(this._storage = new J({ | |
counterId: this.counterId | |
})); | |
return this._storage | |
}, | |
_isCorrectCounter: function() { | |
return this.counterId === this.globalConfig.get("wv2Counter") | |
} | |
}), | |
tb = { | |
FN: "ym", | |
STACK: "a", | |
counters: [], | |
waitPool: {}, | |
handle: function(a) { | |
if (2 > a.length) return 1; | |
var b = "" + a[0]; | |
k.inArray(b, ":") || (b += ":0"); | |
var d = b.split(":")[0]; | |
var e = a[1]; | |
var g = this.globalConfig.get("counters", {})[b]; | |
"init" == e ? (e = "yaCounter" + d, n[e] || (a = k.mixin(a[2] || {}, { | |
id: +d | |
}), n[e] = new n.Ya[this.constructorName](a))) : k.inArray(this.counters, b) && | |
g && g[e] ? (a = [].slice.call(a, 2), g[e].apply(g, a)) : k.inArray(this.counters, b) || (this.waitPool[b] || (this.waitPool[b] = []), this.waitPool[b].push(a)); | |
return 1 | |
}, | |
subscribe: function(a) { | |
a && (this.counters.push(a), this.waitPool[a] && (k.arrayEvery(this.waitPool[a], this.handle, this), delete this.waitPool[a])) | |
}, | |
init: function(a, b) { | |
var d = this, | |
e = n[this.FN]; | |
if (e) { | |
var g = e[this.STACK]; | |
this.constructorName = a; | |
this.globalConfig = b; | |
g || (e[this.STACK] = g = []); | |
var p = g.push; | |
g.push = function() { | |
var a = p.apply(g, arguments); | |
k.arrayEvery(arguments, | |
d.handle, d); | |
return a | |
}; | |
e && k.isArray(g) && k.arrayEvery(g, this.handle, this) | |
} | |
} | |
}, | |
Vb = function(a, b) { | |
var d = ["R0lGODlhAQABAO+/vQAAAAAAAAAAIe+/vQQBAAAAACwAAAAAAQABAAACAkQBADs\x3d", "R0lGODlhAQABAO+/vQEAAAAA77+977+977+9Ie+/vQQBAAABACwAAAAAAQABAAACAkwBADs\x3d"], | |
e = {}, | |
g = !1, | |
p = function(b) { | |
g || (a(b), g = !0) | |
}, | |
h = b || "aHR0cHM6Ly95YW5kZXgucnUvcG9ydGFsL2dlbmVyYXRlXzIwNA\x3d\x3d aHR0cHM6Ly95YW5kZXgudWEvcG9ydGFsL2dlbmVyYXRlXzIwNA\x3d\x3d aHR0cHM6Ly95YW5kZXguZnIvcG9ydGFsL2dlbmVyYXRlXzIwNA\x3d\x3d aHR0cHM6Ly9wYXNzcG9ydC55YW5kZXguZnIvbWMvcGl4ZWw\x3d aHR0cHM6Ly9wYXNzcG9ydC55YW5kZXgudWEvbWMvcGl4ZWw\x3d aHR0cHM6Ly9wYXNzcG9ydC55YW5kZXgucnUvbWMvcGl4ZWw\x3d aHR0cHM6Ly9nZXRmYXN0YnJvd3Nlci5jb20vbWMvcGl4ZWw\x3d aHR0cHM6Ly9nZXR5YWJyb3dzZXIuY29tL21jL3BpeGVs aHR0cHM6Ly9nZXRicm93c2VyMjQuY29tL21jL3BpeGVs aHR0cHM6Ly9tYy53ZWJ2aXNvci5jb20vd2F0Y2gvNDQ4ODk0NjMvMQ\x3d\x3d aHR0cHM6Ly9tYy53ZWJ2aXNvci5vcmcvd2F0Y2gvNDQ4ODk0NjMvMQ\x3d\x3d aHR0cHM6Ly9tYy55YW5kZXgudWEvd2F0Y2gvNDQ4ODk0NjMvMQ\x3d\x3d aHR0cHM6Ly9tYy55YW5kZXgucnUvd2F0Y2gvNDQ4ODk0NjMvMQ\x3d\x3d aHR0cHM6Ly95bWV0cmljYS5jb20vd2F0Y2gvNDQ4ODk0NjMvMQ\x3d\x3d aHR0cHM6Ly95bWV0cmljYTEuY29tL3dhdGNoLzQ0ODg5NDYzLzE aHR0cHM6Ly95bWV0cmljYTIuY29tL3dhdGNoLzQ0ODg5NDYzLzE\x3d aHR0cHM6Ly9tYWlsLnlhbmRleC5mci9tYy9waXhlbA\x3d\x3d aHR0cHM6Ly9tYWlsLnlhbmRleC5jb20vbWMvcGl4ZWw\x3d aHR0cHM6Ly9tYWlsLnlhbmRleC51YS9tYy9waXhlbA\x3d\x3d aHR0cHM6Ly9tYWlsLnlhbmRleC5ydS9tYy9waXhlbA\x3d\x3d aHR0cHM6Ly9zdGFydHVwLm1vYmlsZS55YW5kZXgubmV0L21jL3BpeGVs aHR0cHM6Ly9zdGFydHVwLm1vYmlsZS53ZWJ2aXNvci5jb20vbWMvcGl4ZWw\x3d aHR0cHM6Ly9yZXBvcnQuYXBwbWV0cmljYS53ZWJ2aXNvci5jb20vbWMvcGl4ZWw\x3d aHR0cHM6Ly9yZWRpcmVjdC5hcHBtZXRyaWNhLndlYnZpc29yLmNvbS9tYy9waXhlbA\x3d\x3d aHR0cHM6Ly9yZXBvcnQtMS5hcHBtZXRyaWNhLndlYnZpc29yLmNvbS9tYy9waXhlbA\x3d\x3d aHR0cHM6Ly9yZXBvcnQtMi5hcHBtZXRyaWNhLndlYnZpc29yLmNvbS9tYy9waXhlbA\x3d\x3d".split(" "), | |
m = k.random(0, h.length); | |
if (n.XMLHttpRequest) { | |
var f = L.decode(h[m]); | |
var c = new XMLHttpRequest; | |
c.timeout = 1E4; | |
c.open("GET", f, !0); | |
c.ontimeout = function() { | |
e[f] = { | |
status: "timeout" | |
}; | |
p(e) | |
}; | |
c.onreadystatechange = function() { | |
4 == c.readyState && c.responseURL && (c.responseURL !== f ? e[f] = { | |
status: "redirect", | |
body: c.responseURL | |
} : 2 >= m ? e[f] = 204 == c.status ? { | |
status: c.status | |
} : { | |
status: "onerror", | |
code: c.status | |
} : 200 != c.status || k.inArray(d, L.encode(Sa.encode(c.response))) ? e[f] = { | |
status: c.status | |
} : e[f] = { | |
status: "content" | |
}, p(e)) | |
}; | |
c.onerror = | |
function(a) { | |
e[f] = { | |
status: "onerror", | |
code: a.target.status | |
}; | |
p(e) | |
}; | |
c.send() | |
} | |
}; | |
v.loadScript = function(a, b) { | |
b = b || n; | |
var d = k.mixin({ | |
type: "text/javascript", | |
charset: "utf-8", | |
async: !0 | |
}, a), | |
e = b.document, | |
g = k.getNativeFunction("createElement", e), | |
p = g("script"); | |
if (p) { | |
p.type = d.type; | |
p.charset = d.charset; | |
p.src = d.src; | |
d.async && (p.async = !0); | |
try { | |
var h = e.getElementsByTagName("head")[0]; | |
if (!h) { | |
var m = e.getElementsByTagName("html")[0]; | |
h = g("head"); | |
m && m.appendChild(h) | |
} | |
h.insertBefore(p, h.firstChild); | |
return p | |
} catch (f) {} | |
} | |
}; | |
var Wb = na.inherit({ | |
id: "script", | |
index: 6, | |
timeout: 6E4, | |
request: function(a, b, d, e) { | |
var g = !1, | |
p = k.getNativeFunction("createElement", q)("script"); | |
this.timeout && k.setTimeout(function() { | |
g || (g = !0, v.removeNode(p), d.call(e, !1)) | |
}, this.timeout, "ts.request"); | |
if (!p) return g = !0, d.call(e, !1), !1; | |
var h = "_ymjsp" + k.random(); | |
n[h] = E(function() { | |
if (!g) { | |
try { | |
delete n[h] | |
} catch (f) { | |
n[h] = w | |
} | |
d.apply(e, k.mergeArrays([!0], arguments)); | |
g = !0; | |
v.removeNode(p) | |
} | |
}, "transport.script"); | |
p.type = "text/javascript"; | |
p.src = this._buildUrl(a, k.mixin({ | |
wmode: 5, | |
callback: h | |
}, b)); | |
p.async = | |
"async"; | |
var m = q.getElementsByTagName("head")[0]; | |
m || (m = q.createElement("head"), q.documentElement.appendChild(m)); | |
k.async(function() { | |
m.insertBefore(p, m.firstChild) | |
}); | |
p.onerror = function() { | |
g = !0; | |
d.call(e, !1); | |
n[h] = w | |
}; | |
return !0 | |
} | |
}), | |
ub = Ca.inherit({ | |
id: "XHRhit", | |
index: 10, | |
_buildUrl: function(a, b) { | |
b.wmode = 7; | |
return ub.superclass._buildUrl.apply(this, [a, b]) | |
}, | |
_parseResp: function(a) { | |
var b = ea.parse(a); | |
if (!b) throw ""; | |
return k.map(function(a) { | |
return b[a] | |
}, k.keys(b)) | |
} | |
}), | |
ib = Ga.inherit({ | |
transports: [ub, Wb], | |
trimParams: !0, | |
_initComponent: function() { | |
ib.superclass._initComponent.apply(this, | |
arguments); | |
this._ilStorage = new ca({ | |
counterId: this.counterId | |
}) | |
}, | |
postParams: [], | |
checkYandexHost: function(a) { | |
if (a) { | |
a: { | |
if (a = k.parseUrl(a).host.match(/(?:^|\.)(?:ya|yandex)\.(?:\w+|com?\.\w+)$/)) | |
if (a = a[0].split("yandex").reverse()[0].substring(1), -1 != k.arrayIndexOf(ob, a)) break a;a = !1 | |
} | |
a && !Fa.isEnabled() && (this.forceHost = "mc.yandex." + a) | |
} | |
}, | |
sendHit: function(a) { | |
var b = {}, | |
d = this._ilStorage.get("il"); | |
a.visitColor && (b.vc = a.visitColor); | |
d && (this._ilStorage.remove("il"), b.ilt = L.encode(Sa.encode(k.trim(d, vb)))); | |
this.checkYandexHost(a.referrer); | |
this._hitExt({ | |
url: a.url, | |
forceNoRedirect: a.forceNoRedirect, | |
nohit: a.nohit, | |
hasPrerender: a.hasPrerender, | |
title: a.title, | |
referrer: a.referrer, | |
vParams: a.vParams, | |
userParams: a.userParams, | |
experiments: a.experiments, | |
modes: a.modes, | |
browserInfo: b, | |
ts: a.ts, | |
tz: a.tz, | |
callback: a.callback, | |
ctx: a.ctx | |
}, "hit") | |
} | |
}), | |
wb = I.inherit({ | |
cid: 3, | |
cnt: 0, | |
KEY_NAME: "wasSynced", | |
_initComponent: function() { | |
this._storage = new ca; | |
this._cookie = new J | |
}, | |
hit: function(a, b) { | |
var d = this, | |
e = b === w ? !0 : !1, | |
g = e ? this._storage.get(this.KEY_NAME) : !1, | |
p = [], | |
h = this.globalConfig.get("fakeHit"); | |
if (h) return h(function(b) { | |
a(b) | |
}); | |
!g && e && (g = this._cookie.read(this.KEY_NAME)) && (g = ea.parse(g)); | |
g && g.params && g.time + 864E5 > x.getMs() ? (d.globalConfig.set("isEU", g.params.eu), a(g)) : (this.globalConfig.set("fakeHit", function(a) { | |
p.push(a) | |
}), this._getSender().sendHit({ | |
forceNoRedirect: this.forceNoRedirect, | |
callback: function(b, e) { | |
var c = b || {}; | |
g = { | |
time: x.getMs(), | |
params: c, | |
bkParams: e | |
}; | |
d.globalConfig.set("isEU", c.eu); | |
d._storage.set(d.KEY_NAME, g); | |
d._cookie.create(d.KEY_NAME, ea.stringify(g), 1728); | |
a(g); | |
d.globalConfig.set("fakeHit", | |
function(a) { | |
a(g) | |
}); | |
k.arrayEvery(p, function(a) { | |
a(g); | |
return 1 | |
}) | |
} | |
})) | |
}, | |
_getSender: function() { | |
this._sender || (this._sender = new ib({ | |
protocol: "https:", | |
counterType: this.cnt, | |
counterId: this.cid, | |
sendTitle: !1, | |
globalConfig: this.globalConfig, | |
fake: !0 | |
})); | |
return this._sender | |
} | |
}), | |
xb = I.inherit({ | |
baseUrl: "mc.yandex.", | |
globalConfig: B, | |
baseTld: "ru", | |
partners: { | |
"mc.yandexsport.ru": { | |
regex: /^([^/]+\.)?yandexsport\.ru$/, | |
tld: "ru" | |
}, | |
"mc.beru.ru": { | |
regex: /^([^/]+\.)?beru\.ru$/, | |
tld: "ru" | |
}, | |
"mc.kinopoisk.ru": { | |
regex: /^([^/]+\.)?kinopoisk\.ru$/, | |
tld: "ru" | |
} | |
}, | |
_initComponent: function() { | |
var a = this; | |
xb.superclass._initComponent.apply(this, arguments); | |
this.syncTlds = k.reduce(function(a, d) { | |
return d(a) | |
}, ob, [k.bind(k.filter, null, function(b) { | |
return b !== a.baseTld | |
}), k.bind(k.reduce, null, function(a, d) { | |
a[d] = [d]; | |
return a | |
}, {})]); | |
k.forEachKey(this.partners, function(a, d) { | |
d.regex.test(n.location.hostname) && (this.syncTlds[d.tld] || (this.syncTlds[d.tld] = []), this.syncTlds[d.tld].push(a), this._replaceBase[a] = !0) | |
}, this); | |
this.syncTlds = k.mixin(this.syncTlds, { | |
ru: ["mc.webvisor.org"] | |
}); | |
this._replaceBase["mc.webvisor.org"] = !0 | |
}, | |
_replaceBase: {}, | |
langToDomain: { | |
ka: "ge", | |
ro: "md", | |
tg: "tj", | |
tk: "tm", | |
et: "ee", | |
hy: "com.am", | |
he: "co.li", | |
ky: "kg", | |
uk: "ua", | |
be: "by", | |
tr: "com.tr", | |
kk: "kz" | |
}, | |
sync: function(a) { | |
var b = this, | |
d = this._need(), | |
e = -1 != K().hostname.search(/(?:^|\.)(?:ya|yandex|beru|kinopoisk)\.(?:\w+|com?\.\w+)$/); | |
this._is() ? a() : (e && b._syncAdmetrica(), d ? (this._setStatus(!0), this._getCn().hit(function() { | |
b._sync(d, a) | |
})) : a()); | |
e && this._addMda() | |
}, | |
_addMda: function() { | |
var a = new J({ | |
skipPrefix: !0 | |
}), | |
b = new J, | |
d = a.read("mda"); | |
"0" !== d && "1" !== d && a.create("mda", "0", 1036800); | |
b.read("mda") && b.erase("mda") | |
}, | |
_is: function() { | |
try { | |
return !!this.globalConfig.get("startSync") | |
} catch (a) { | |
return !1 | |
} | |
}, | |
_setStatus: function(a) { | |
try { | |
this.globalConfig.set("startSync", a) | |
} catch (b) {} | |
}, | |
_need: function() { | |
var a = this._getDomainByLang(), | |
b = this._getTld(), | |
d = [], | |
e; | |
(e = this.syncTlds[b]) && d.push.apply(d, e); | |
e = this.syncTlds[a]; | |
a !== b && e && d.push.apply(d, e); | |
var g = this._getLs().get("synced") || {}; | |
d = k.arrayFilter(d, function(a) { | |
return (g[a] || 1) + 1440 < x.getMinutes() | |
}); | |
return d.length && | |
d || !1 | |
}, | |
_syncAdmetrica: function() { | |
var a = new oa({ | |
timeout: 1E3 | |
}), | |
b = this._getLs(); | |
((b.get("synced") || {}).SYNCED_ADM || 1) + 1440 < x.getMinutes() && a.request("https://mc.admetrica.ru/sync_cookie_image_check", {}, function(a) { | |
b.get("synced"); | |
var d = x.getMinutes(); | |
a = b.get("synced") || {}; | |
a.SYNCED_ADM = d; | |
b.set("synced", a) | |
}) | |
}, | |
_sync: function(a, b) { | |
var d, e = 0, | |
g = a.length, | |
k = this; | |
if (0 < g) { | |
b = b || function() {}; | |
var h = function() { | |
e++; | |
g === e && b() | |
}; | |
var m = k._getLs(); | |
var f = new oa({ | |
timeout: 1E3 | |
}); | |
for (d = 0; d < g; d++)(function(a) { | |
f.request("https://" + | |
(k._replaceBase[a] ? a : k.baseUrl + a) + "/sync_cookie_image_check", {}, | |
function(b) { | |
h(); | |
var c = x.getMinutes(); | |
b = m.get("synced") || {}; | |
b[a] = c; | |
m.set("synced", b) | |
}) | |
})(a[d]) | |
} else b() | |
}, | |
_getCn: function() { | |
this._cn || (this._cn = new wb({ | |
fake: !0, | |
globalConfig: this.globalConfig | |
})); | |
return this._cn | |
}, | |
_getLs: function() { | |
this._ls || (this._ls = new ca); | |
return this._ls | |
}, | |
_getTld: function() { | |
var a = k.getTld(); | |
return { | |
am: "com.am", | |
tr: "com.tr", | |
ge: "com.ge", | |
il: "co.il", | |
"\u0440\u0444": "ru", | |
"xn--p1ai": "ru", | |
"\u0443\u043a\u0440": "ua", | |
"xn--j1amh": "ua", | |
"\u0431\u0435\u043b": "by", | |
"xn--90ais": "by" | |
} [a] || a | |
}, | |
_getDomainByLang: function() { | |
if (!n.navigator) return "ru"; | |
try { | |
var a = navigator.languages ? navigator.languages[0] : u.getLanguage() | |
} catch (b) {} | |
a && a.toLowerCase && (a = a.toLowerCase().split("-")[0]); | |
return this.langToDomain[a] || "ru" | |
} | |
}), | |
Xb = Ca.inherit({ | |
id: "RawBodyXHR", | |
index: 9, | |
postParams: ["body"], | |
_setHeaders: function() {}, | |
_preparePostParams: function(a) { | |
return a.post.body || "" | |
} | |
}); | |
u.isAndroid = E(function() { | |
var a = navigator.userAgent.toLowerCase(), | |
b = u.getPlatform() || ""; | |
return -1 < a.indexOf("android") && -1 < a.indexOf("mobile") && b.match(/^android|linux armv/i) | |
}, "", !0); | |
var Na = { | |
_url: "https://mc.webvisor.org/user_storage_set?", | |
_params: {}, | |
init: function(a) { | |
this._params = a || {} | |
}, | |
save: function(a, b) { | |
this._getReq().request(this._url + Ba.stringify({ | |
key: a, | |
value: k.toJSON(b) | |
})); | |
this._getLs().set(a, b) | |
}, | |
get: function(a) { | |
return { | |
remote: this._params[a], | |
local: this._getLs().get(a) | |
} | |
}, | |
getNum: function(a) { | |
a = this.get(a); | |
return Math.max(+a.remote || 0, +a.local || 0) | |
}, | |
_getLs: function() { | |
this._ls || (this._ls = | |
new ca); | |
return this._ls | |
}, | |
_getReq: function() { | |
this._req || (this._req = new oa); | |
return this._req | |
} | |
}, | |
Yb = { | |
sync: E(function(a, b, d, e) { | |
var g = { | |
t: 'UV|L7,!"T[rwe\x26D_\x3eZIb\\aW#98Y.PC6k' | |
}; | |
this.globalConfig = e || B; | |
if (this._enabled(a, b, d)) { | |
this._setStatus(!0); | |
var k = new Xb({ | |
method: "GET", | |
withCredentials: !1 | |
}); | |
var h = this._getHosts(); | |
var m = h.length; | |
(function l(a) { | |
var b = h[a]; | |
a < m ? k.request(b[0] + ":" + b[1] + "/p", g, function(c, d) { | |
c ? this._save(c, d, b[1]) : l.call(this, a + 1) | |
}, this) : this._save(!1) | |
}).call(this, 0) | |
} | |
}, "ds"), | |
_getHosts: function() { | |
var a = [], | |
b = H.protocol, | |
d = u.isIOS(); | |
(u.isAndroid() || d && "http:" === b) && a.push(["http://127.0.0.1", "30102"], ["http://127.0.0.1", "29009"]); | |
d && "https:" === b && a.push(["https://yandexmetrica.com", "30103"], ["https://yandexmetrica.com", "29010"]); | |
return a | |
}, | |
_save: function(a, b, d) { | |
var e = x.getMinutes(); | |
a ? (new Ga({ | |
protocol: "https:", | |
counterType: 0, | |
counterId: 42822899, | |
sendTitle: !1, | |
fake: !0 | |
})).sendDevice({ | |
data: k.trim(b), | |
port: d | |
}) : e -= 45; | |
Na.save("ds", e) | |
}, | |
_is: function() { | |
try { | |
return !!this.globalConfig.get("dSync") | |
} catch (a) { | |
return !1 | |
} | |
}, | |
_enabled: function(a, b, d) { | |
if (!(60 < x.getMinutes() - Na.getNum("ds")) || this._is() || k.isDev(this.globalConfig)) return !1; | |
a = 0 === b && 0 <= k.arrayIndexOf([39370095, 1282253, 29302335, 43653484, 41734944, 31048081, 16443139, 27737346, 41870499, 33911514, 30744873, 5564395, 2580487], a); | |
a = ua() || !d && .1 >= Math.random() && a; | |
d = u.isIOS() && a; | |
return u.isAndroid() && a || d | |
}, | |
_setStatus: function(a) { | |
try { | |
this.globalConfig.set("dSync", a) | |
} catch (b) {} | |
} | |
}, | |
U = { | |
getPos: function(a) { | |
var b = v.getRootElement(), | |
d = v.getDocumentScroll(); | |
return [a.pageX || a.clientX + | |
d[0] - (b.clientLeft || 0) || 0, a.pageY || a.clientY + d[1] - (b.clientTop || 0) || 0 | |
] | |
}, | |
getTarget: function(a) { | |
var b = null; | |
try { | |
if (b = a.target || a.srcElement) !b.ownerDocument && b.documentElement ? b = b.documentElement : b.ownerDocument !== q && (b = null) | |
} catch (d) {} | |
return b | |
}, | |
getMouseButton: function(a) { | |
return a.which || a.button == w ? a.which : a.button & 1 ? 1 : a.button & 2 ? 3 : a.button & 4 ? 2 : 0 | |
}, | |
prevent: function(a) { | |
a = a || n.event; | |
a.preventDefault ? a.preventDefault() : a.returnValue = !1 | |
} | |
}; | |
U.dispatchCustomEvent = E(function(a, b) { | |
var d; | |
b = b || q; | |
if (d = k.getNativeFunction("createEvent", | |
q)("Event")) d.initEvent(a, !1, !1), k.getNativeFunction("dispatchEvent", b)(d) | |
}, "evt.dispatch"); | |
var Ta = { | |
lastReferrer: null | |
}, | |
Ha = I.inherit({ | |
counter: null, | |
prefsEcommerce: null, | |
status: { | |
NEW: w, | |
PENDING: 1, | |
OK: 2, | |
FAIL: 3 | |
}, | |
dataLayerName: "dataLayer", | |
_initComponent: function() { | |
Ha.superclass._initComponent.apply(this, arguments); | |
this.frameConnector && this.frameConnector.addHandler("params", function(a, b) { | |
if (this.counter && this.counter.params) this.onCookies(function(a) { | |
this.counter.params(a.data) | |
}, this, b) | |
}, this); | |
this._overridePush(this.globalConfig.get("dataLayer")) | |
}, | |
waitPool: [], | |
onCookies: function(a, b) { | |
this.waitPool.push({ | |
fn: a, | |
ctx: b, | |
args: [].slice.call(arguments, 2) | |
}) | |
}, | |
initUserLayer: function() { | |
var a = "customArr"; | |
k.arrayEvery(this.waitPool, function(a) { | |
a.fn.apply(a.ctx, a.args); | |
return 1 | |
}); | |
this.onCookies = function(a, d) { | |
a.apply(d, [].slice.call(arguments, 2)) | |
}; | |
if (this.prefsEcommerce || this.prefsUseDataLayer) this._overridePush(this.prefsEcommerce) || (k.isString(this.prefsEcommerce) && (this.dataLayerName = this.prefsEcommerce), a = this.dataLayerName, this._tryTimeout = k.bind(this._tryTimeout, | |
this), this._tryTimeout()), this.counter._ecommerce = a | |
}, | |
_overridePush: function(a) { | |
if (a && "function" == typeof a.push) { | |
var b = this; | |
b._send(a); | |
var d = a.push; | |
a.push = function() { | |
var a = d.apply(this, arguments); | |
b._send([].slice.call(arguments, 0)); | |
return a | |
}; | |
return !0 | |
} | |
return !1 | |
}, | |
_tryTimeout: function() { | |
this._overridePush(n[this.dataLayerName]) || k.setTimeout(this._tryTimeout, 1E3, "dlObserver") | |
}, | |
_callHandlers: function(a) { | |
k.arrayEvery(Ha.handlers, function(b) { | |
b && b.type && k.arrayEvery(b.type.split(","), function(d) { | |
d.replace(" ", | |
"") === a.type && b.callback && b.callback(a); | |
return 1 | |
}); | |
return 1 | |
}) | |
}, | |
allowedEvents: "currencyCode add delete remove purchase checkout detail".split(" "), | |
_convert: function(a, b) { | |
var d = k.keys(b), | |
e = !1, | |
g = { | |
transaction_id: "id", | |
value: "revenue" | |
}; | |
if (b.items) { | |
var p = {}; | |
p[a] = { | |
products: b.items | |
}; | |
1 < d.length && (p[a].actionField = k.reduce(function(a, d) { | |
g[d] ? a[g[d]] = b[d] : "currency" === d ? e = b[d] : "items" !== d && b[d] && (a[d] = b[d]); | |
return a | |
}, {}, d)); | |
e && (p.currencyCode = e); | |
return p | |
} | |
}, | |
_checkGtag: function(a) { | |
var b = { | |
view_item: "detail", | |
add_to_cart: "add", | |
remove_from_cart: "remove", | |
begin_checkout: "checkout", | |
purchase: "purchase" | |
}, | |
d = []; | |
a && "event" === a[0] && b[a[1]] && (a = this._convert(b[a[1]], a[2])) && d.push(a); | |
return d | |
}, | |
_send: function(a) { | |
var b = [], | |
d = this.allowedEvents, | |
e, g; | |
var p = 0; | |
for (g = a.length; p < g; p++) { | |
if ((e = a[p]) && e.ymetrikaEvent) { | |
var h = e.ymetrikaEvent; | |
this._callHandlers(h); | |
if ("params" === h.type && h.data) { | |
h.sended || (h.sended = []); | |
if (h.counter) this.counter && this.counter.params && this.counterId == h.counter && (this.onCookies(function(a) { | |
this.counter.params(a.data) | |
}, | |
this, k.mixin({}, h)), h.sended.push(this.counterId)); | |
else this.onCookies(function(a) { | |
k.forEachKey(this.globalConfig.get("counters"), function(b, c) { | |
var d = b.split(":")[0]; | |
!k.inArray(a.sended, d) && c && c.params && (c.params(a.data), a.sended.push(d)) | |
}, this) | |
}, this, k.mixin({}, h)); | |
h.status == this.status.NEW && h.parent && this.frameConnector && this.frameConnector.checkFrame(n.parent) && n.parent !== n && (this.frameConnector.sendToParents({ | |
type: "params", | |
data: h.data | |
}, function() { | |
h.status = this.status.OK | |
}, this), h.status = this.status.PENDING) | |
} | |
} | |
if (e && | |
e.ecommerce) { | |
var m = {}; | |
var f = !1; | |
k.forEachKey(e.ecommerce, function(a, b) { | |
0 <= k.arrayIndexOf(d, a) && (f = !0, m[a] = b) | |
}); | |
f && b.push(m) | |
} | |
b = b.concat(this._checkGtag(e)) | |
} | |
if (b.length) this.onCookies(function(a) { | |
this.counter.params({ | |
__ym: { | |
ecommerce: a | |
} | |
}) | |
}, this, b) | |
} | |
}); | |
Ha.handlers = []; | |
var yb = "GDPR-ok GDPR-cross GDPR-cancel GDPR-skip GDPR-frame-skip GDPR-frame-ya GDPR-frame-noya GDPR-open-start GDPR-eu-skip GDPR-open-fail GDPR-open-success GDPR-cookie-success GDPR-cookie-fail GDPR-skip-login GDPR-skip-domain GDPR-skip-na GDPR-skip-eu-na GDPR-skip-wv".split(" "), | |
Zb = ["https://brozen.yandex.ru", "https://yabro1.zen-test.yandex.ru/yabro/index.html", "https://yabro2.zen-test.yandex.ru/yabro/index.html"], | |
wa = I.inherit({ | |
globalKey: "f1", | |
MAX_SIZE: 1E6, | |
isYAN: !1, | |
trigger: function(a) { | |
this.globalConfig.get("dataLayer").push({ | |
ymetrikaEvent: { | |
type: a | |
} | |
}) | |
}, | |
initCounter: function() {}, | |
enabled: ua() && -1 < n.location.href.indexOf("yagdprcheck\x3d1"), | |
_initComponent: function() { | |
this._cookie = wa.cookie; | |
this._sender = new wb({ | |
fake: !0, | |
globalConfig: this.globalConfig, | |
forceNoRedirect: !0 | |
}) | |
}, | |
realise: function(a, | |
b) { | |
this.initCounter.apply(n, a); | |
this.globalConfig.set(this.globalKey, function(a) { | |
a() | |
}); | |
b.length && fb.chain(b.concat([function() { | |
b = [] | |
}]), null, !1, "GDPR") | |
}, | |
showPopup: function(a, b, d, e, g) { | |
var k = this; | |
a = v.loadScript({ | |
src: "https://yastatic.net/q/global-notifications/cc/_lego-cc" + a + "." + b + ".js" | |
}); | |
k.trigger("GDPR-open-start"); | |
a.onerror = function(a) { | |
E(function() { | |
throw a; | |
}, "gdpr-popup")(); | |
k.trigger("GDPR-open-fail"); | |
k.realise(d, e); | |
k.frameConnector.sendToChildren({ | |
type: "GDPR-ok" | |
}) | |
}; | |
a.onload = function() { | |
k.trigger("GDPR-open-success"); | |
Ha.handlers = Ha.handlers.concat([{ | |
type: "GDPR-ok, GDPR-cross", | |
callback: function(a) { | |
a.once || (g.create("gdpr", "0", 525600), k.realise(d, e), k.frameConnector.sendToChildren({ | |
type: "GDPR-ok" | |
}), a.once = !0) | |
} | |
}, { | |
type: "GDPR-cancel", | |
callback: function() { | |
g.create("gdpr", "1"); | |
k.logCancel(); | |
k.frameConnector.sendToChildren({ | |
type: "GDPR-cancel" | |
}) | |
} | |
}]) | |
} | |
}, | |
askGDPR: function(a, b, d, e, g, n) { | |
if (k.inArray([null, ""], a)) this.showPopup(b, d, e, g, n); | |
else if ("0" === a) this.trigger("GDPR-cookie-success"), this.realise(e, g); | |
else if ("1" === a) return this.trigger("GDPR-cookie-fail"), | |
this.logCancel(), !1 | |
}, | |
logCancel: function() { | |
this._sender.hit(function() {}, !1) | |
}, | |
handle: function() { | |
var a = this._sender, | |
b = [], | |
d = (u.getLanguage() || "").toLowerCase().split("-")[0], | |
e = "ontouchstart" in n ? "-touch" : "", | |
g = this._cookie, | |
p = g.read("gdpr"), | |
h = g.read("yaGdprCheck"), | |
m = this, | |
f = this.globalConfig.get(this.globalKey), | |
c = arguments; | |
b.size = 0; | |
if (f) return f(function() { | |
m.realise(c, b) | |
}); | |
k.inArray("ru en kk be ky tr tt uk".split(" "), d) || (d = "en"); | |
if (!this.enabled && ("0" === p || u.isSafariWebView() || u.isAndroidWebView() || | |
k.inArray(Zb, n.location.href.split("?")[0]) || !ua() || g.read("yandex_login") || this.disable)) return g.read("yandex_login") ? this.trigger("GDPR-skip-login") : ua() ? "0" === p ? this.trigger("GDPR-skip") : u.isSafariWebView() || u.isAndroidWebView() ? this.trigger("GDPR-skip-wv") : this.trigger("GDPR-skip-na") : this.trigger("GDPR-skip-domain"), this.realise(c, b); | |
this.globalConfig.set(this.globalKey, function(a, c) { | |
var d = 0; | |
try { | |
d = JSON.stringify(c).length || 0 | |
} catch (D) {} | |
b.size + d < m.MAX_SIZE ? (b.push(a), b.size += d) : k.warning("GDPR buffer is exceeded") | |
}); | |
a.hit(function(a) { | |
if (a.params.eu || h || m.enabled) | |
if (m.frameConnector && m.frameConnector.addHandler("isYandex", function() { | |
return { | |
type: "isYandex", | |
isYandex: ua() | |
} | |
}), m.frameConnector.isIframe) { | |
m.frameConnector.sendToParents({ | |
type: "isYandex" | |
}, function(a, c) { | |
var d = !1; | |
clearTimeout(f); | |
c[0].isYandex ? (m.trigger("GDPR-frame-ya"), m.frameConnector.addHandler("GDPR-ok", function() { | |
d || (g.create("gdpr", "0", 525600), m.realise(c, b), d = !0) | |
}), m.frameConnector.addHandler("GDPR-cancel", function() { | |
g.create("gdpr", "1") | |
})) : (m.trigger("GDPR-frame-noya"), | |
m.realise(c, b)) | |
}); | |
var f = k.setTimeout(function() { | |
m.trigger("GDPR-frame-skip"); | |
m.realise(c, b) | |
}, 2E3) | |
} else m.askGDPR(p, e, d, c, b, g); | |
else return a.params.eu ? m.trigger("GDPR-skip-eu-na") : m.trigger("GDPR-eu-skip"), m.realise(c, b) | |
}) | |
} | |
}); | |
wa.globalKey = "f1"; | |
wa.cookie = new J({ | |
skipPrefix: !0 | |
}); | |
wa.getState = function(a) { | |
var b = wa.cookie.read("gdpr"); | |
a = k.reduce(function(a, b) { | |
b.ymetrikaEvent && k.inArray(yb, b.ymetrikaEvent.type) && a.push(k.arrayIndexOf(yb, b.ymetrikaEvent.type)); | |
return a | |
}, [], a.get("dataLayer")); | |
return a.length ? | |
(a = a.join(","), b && (a += "-" + (k.inArray(["0", "1"], b) ? b : "2")), a) : "" | |
}; | |
var $b = { | |
init: function(a, b) { | |
var d = q.createElement("img"); | |
a && a.account && a.tmsec && b && (d.src = "https://www.tns-counter.ru/V13a****" + a.account + "/ru/UTF-8/tmsec\x3d" + a.tmsec + "/" + b) | |
} | |
}; | |
u.isIE = k.memorize(function() { | |
return q && !q.addEventListener || !1 | |
}); | |
u.isChromePdf = k.memorize(function() { | |
var a, b = navigator.plugins; | |
if (b && b.length) | |
for (a = 0; a < b.length; a++) | |
if (/Chrome PDF Viewer/.test(b[a].name)) return !0; | |
return !1 | |
}); | |
u.isPrivate = E(function(a) { | |
var b = k.bind(a, | |
null, 0); | |
a = k.bind(a, null, 1); | |
if (k.isFunction(n.webkitRequestFileSystem) && !u.isAndroid()) return n.webkitRequestFileSystem(0, 0, b, a); | |
if (u.isFF()) return "undefined" == typeof navigator.serviceWorker; | |
if (u.isSafari() && k.isFunction(n.openDatabase)) try { | |
n.openDatabase(null, null, null, null), b() | |
} catch (d) { | |
a() | |
} else { | |
if (n.indexedDB || !n.PointerEvent && !n.MSPointerEvent) return b(); | |
a() | |
} | |
}, "isPrivate"); | |
u.findTarget = function(a) { | |
a = a.target || a.srcElement; | |
var b; | |
if (!a) return !1; | |
3 == a.nodeType && (a = a.parentNode); | |
for (b = a && a.nodeName && | |
a.nodeName.toString().toLowerCase(); a && a.parentNode && a.parentNode.nodeName && ("a" !== b && "area" !== b || !a.href && !a["xlink:href"]);) b = (a = a.parentNode) && a.nodeName && a.nodeName.toString().toLowerCase(); | |
return a.href ? a : !1 | |
}; | |
u.getHref = function(a) { | |
if (!a) return ""; | |
a = a.href; | |
return k.isString(a) ? "" + a : "[object SVGAnimatedString]" === k.toString(a) ? "" + a.baseVal : "" | |
}; | |
u.getLinkComponents = function(a) { | |
return a && "function" === typeof HTMLAnchorElement && a instanceof HTMLAnchorElement ? { | |
href: a.href, | |
hostname: a.hostname || k.parseUrl(a.href).hostname || | |
"", | |
host: a.host, | |
protocol: a.protocol, | |
pathname: a.pathname, | |
hash: a.hash, | |
port: a.port, | |
search: a.search, | |
query: a.search.slice(Math.min(1, a.search.length)), | |
path: (a.pathname || "/") + a.search | |
} : k.isString(a) ? k.parseUrl(a) : { | |
href: "", | |
hostname: "", | |
host: "", | |
protocol: "", | |
pathname: "", | |
hash: "", | |
port: "", | |
search: "", | |
query: "", | |
path: "" | |
} | |
}; | |
var ac = P.inherit({ | |
resource: "clmap", | |
retry: !0, | |
transports: [oa], | |
sendClick: function(a, b, d, e) { | |
this.send({ | |
"page-url": a, | |
"pointer-click": b | |
}, {}, d, e) | |
} | |
}), | |
bc = I.inherit({ | |
filter: null, | |
ignoreTags: [], | |
quota: 0, | |
isTrackHash: !1, | |
protocol: "", | |
counterId: 0, | |
counterType: 0, | |
startTime: 0, | |
MAX_LEN_PATH: 128, | |
TIMEOUT_CLICK: 50, | |
TIMEOUT_SAME_CLICKS: 1E3, | |
DELTA_SAME_CLICKS: 2, | |
tags: "A B BIG BODY BUTTON DD DIV DL DT EM FIELDSET FORM H1 H2 H3 H4 H5 H6 HR I IMG INPUT LI OL P PRE SELECT SMALL SPAN STRONG SUB SUP TABLE TBODY TD TEXTAREA TFOOT TH THEAD TR U UL ABBR AREA BLOCKQUOTE CAPTION CENTER CITE CODE CANVAS DFN EMBED FONT INS KBD LEGEND LABEL MAP OBJECT Q S SAMP STRIKE TT ARTICLE AUDIO ASIDE FOOTER HEADER MENU METER NAV PROGRESS SECTION TIME VIDEO NOINDEX NOBR MAIN svg circle clippath ellipse defs foreignobject g glyph glyphref image line lineargradient marker mask path pattern polygon polyline radialgradient rect set text textpath title".split(" "), | |
_initComponent: function() { | |
var a, b; | |
this._lastClick = null; | |
this.hasQuota = !!this.quota; | |
this._quota = this.quota; | |
this._ignoreTags = []; | |
if (this.ignoreTags) | |
for (a = 0; a < this.ignoreTags.length; a++) this.ignoreTags[a] && k.mergeArrays(this._ignoreTags, [String(this.ignoreTags[a]).toUpperCase()]); | |
this._cacheTags = {}; | |
a = 59; | |
var d = String.fromCharCode; | |
for (b = 0; b < this.tags.length; b++) this._cacheTags[this.tags[b]] = d(a), d(a), a++; | |
this._sender = new ac({ | |
globalConfig: this.globalConfig, | |
protocol: this.protocol, | |
counterId: this.counterId, | |
counterType: this.counterType | |
}); | |
this._start = !1; | |
this.start() | |
}, | |
destroy: function() { | |
this.stop() | |
}, | |
start: function() { | |
if (!this._start) r.on(q, "click", this._handler, this); | |
this._start = !0 | |
}, | |
stop: function() { | |
this._start && r.un(q, "click", this._handler, this); | |
this._start = !1 | |
}, | |
setTrackHash: function(a) { | |
this.isTrackHash = a | |
}, | |
_isIgnore: function(a) { | |
return v.classNameExists(a, "(ym-disable-clickmap|ym-clickmap-ignore)") | |
}, | |
_handler: function(a) { | |
a = { | |
el: U.getTarget(a), | |
pos: U.getPos(a), | |
button: U.getMouseButton(a), | |
time: +new Date | |
}; | |
if (this._isTrackingClick(a)) { | |
var b = | |
v.getElementSize(a.el); | |
var d = v.getElementXY(a.el); | |
b = ["rn", k.random(), "x", Math.floor(65535 * (a.pos[0] - d[0]) / (b[0] || 1)), "y", Math.floor(65535 * (a.pos[1] - d[1]) / (b[1] || 1)), "t", Math.floor((a.time - this.startTime) / 100), "p", this._getElPath(a.el)]; | |
d = K().href; | |
this.isTrackHash ? k.mergeArrays(b, ["wh", "1"]) : d = d.split("#")[0]; | |
this._sender.sendClick(k.trim(d, eb), b.join(":")); | |
this._lastClick = a | |
} | |
}, | |
_isTrackingClick: function(a) { | |
var b; | |
if (n.ymDisabledClickmap || k.isMetrikaPlayer() || !a.el) return !1; | |
var d = a.el.tagName; | |
if ((2 == | |
a.button || 3 == a.button) && "A" != d || this.filter && !this.filter(a.el, d)) return !1; | |
for (b = 0; b < this._ignoreTags.length; b++) | |
if (this._ignoreTags[b] == d) return !1; | |
for (d = a.el; d;) { | |
if (this._isIgnore(d)) return !1; | |
d = d.parentNode | |
} | |
if (this._lastClick) { | |
if (a.time - this._lastClick.time < this.TIMEOUT_CLICK) return !1; | |
d = Math.abs(this._lastClick.pos[0] - a.pos[0]); | |
b = Math.abs(this._lastClick.pos[1] - a.pos[1]); | |
var e = a.time - this._lastClick.time; | |
if (this._lastClick.el == a.el && d < this.DELTA_SAME_CLICKS && b < this.DELTA_SAME_CLICKS && e < this.TIMEOUT_SAME_CLICKS) return !1 | |
} | |
if (this.hasQuota) { | |
if (!this._quota) return !1; | |
this._quota-- | |
} | |
return !0 | |
}, | |
_getElPath: function(a) { | |
for (var b = ""; a && a.parentNode && "BODY" != a.tagName && "HTML" != a.tagName;) b += this._cacheTags[a.tagName] || "*", b += v.getElementNeighborPosition(a) || "", a = a.parentNode; | |
return k.trim(b, this.MAX_LEN_PATH) | |
} | |
}), | |
zb = I.inherit({ | |
injectHash: { | |
Wjw75ghm7fa7JW8p: "https://yastatic.net/metrika-static-watch/assessor-init.js", | |
Z4RhWJNDJanzkGJa: "https://yastatic.net/metrika-static-watch/assessor-compare.js" | |
}, | |
ASSESSOR_COOKIE: "assessor", | |
REMOTE_CONTROL: "i", | |
getInjectHash: function() { | |
var a = {}; | |
k.forEachKey(this.injectHash, function(b) { | |
a[Da + ("" + k.fnv32a(b))] = this.injectHash[b] | |
}, this); | |
return a | |
}, | |
checkAssessor: function() { | |
var a = [], | |
b = this.getInjectHash(); | |
k.forEachKey(b, function(d) { | |
if ((new RegExp(d)).test(n.location.hash) || J.get(this.ASSESSOR_COOKIE + d)) J.set(this.ASSESSOR_COOKIE + d), a.push(b[d]) | |
}, this); | |
return a | |
}, | |
_initComponent: function() { | |
var a = this.checkAssessor(); | |
this.globalConfig.get(this.REMOTE_CONTROL) || (this.globalConfig.set(this.REMOTE_CONTROL, !0), zb.superclass._initComponent.apply(this, | |
arguments), this._executedMsgs = {}, r.on(n, "message", this._onMessage, this), a.length && (this.globalConfig.set("oo", !0), this.globalConfig.get("stopRecoder", function() {})(), k.arrayEvery(a, function(a) { | |
v.loadScript({ | |
src: a | |
}, n); | |
return 1 | |
}))) | |
}, | |
_buildRemoteIframe: function(a) { | |
var b = k.getNativeFunction("createElement", q)("div"), | |
d = v.getBody() || q.documentElement; | |
if (d) { | |
b.innerHTML = '\x3ciframe name\x3d"RemoteIframe" allowtransparency\x3d"true" style\x3d"position: absolute; left: -999px; top: -999px; width: 1px; height: 1px;"\x3e\x3c/iframe\x3e'; | |
var e = b.firstChild; | |
e.onload = function() { | |
v.loadScript({ | |
src: a | |
}, e.contentWindow) | |
}; | |
n._ym__remoteIframeEl = e; | |
b.createShadowRoot || b.webkitCreateShadowRoot ? (d.appendChild(b), b.removeChild(e), (d = b.createShadowRoot ? b.createShadowRoot() : b.webkitCreateShadowRoot()) && d.appendChild(e), n._ym__remoteIframeContainer = b) : (d.appendChild(e), n._ym__remoteIframeContainer = e) | |
} | |
}, | |
_isAllowedLang: function(a) { | |
return -1 !== k.arrayIndexOf(["ru", "uk", "en", "tr"], a) | |
}, | |
_isAllowedOrigin: function(a) { | |
return /^http:\/\/([\w\-.]+\.)?webvisor\.com\/?$/.test(a) | |
}, | |
_isAllowedStatic: function(a) { | |
return /^(([\w\-.]+\.)?dev\.webvisor\.com|yastatic\.net|[\w\-.]+\.s3\.yandex\.net)$/.test(a) | |
}, | |
_onMessage: function(a) { | |
try { | |
var b = a.origin | |
} catch (d) {} | |
b && this._isAllowedOrigin(b) && (b = ea.parse(a.data)) && "appendremote" === b.action && this._isAllowedStatic(k.parseUrl(b.domain).host) && this._isAllowedLang(b.lang) && !this._executedMsgs[b.id] && (this._executedMsgs[b.id] = !0, n._ym__postMessageEvent = a, n._ym__inpageMode = b.inpageMode, n._ym__initMessage = b.initMessage, this._buildRemoteIframe(b.domain + | |
"/cdn/inpage-remote/" + (b.newScriptAddr ? "_inpage-remote_" : "inpage-remote.") + b.lang + ".js")) | |
} | |
}), | |
cc = { | |
match: function() { | |
this.enabled() && r.ready(function() { | |
var a = k.getNativeFunction("createElement", q)("iframe"); | |
a.onload = function() { | |
Na.save("cm", x.getMinutes()); | |
v.removeNode(a) | |
}; | |
a.style.display = "none"; | |
a.src = "https://mc.webvisor.org/metrika/watch_match.html"; | |
q.documentElement.appendChild(a) | |
}) | |
}, | |
enabled: function() { | |
return 1440 < x.getMinutes() - Na.getNum("cm") && "tr" === k.getTld() | |
} | |
}; | |
E(function() { | |
(function(a) { | |
function b(e) { | |
if (d[e]) return d[e].exports; | |
var g = d[e] = { | |
i: e, | |
l: !1, | |
exports: {} | |
}; | |
a[e].call(g.exports, g, g.exports, b); | |
g.l = !0; | |
return g.exports | |
} | |
var d = {}; | |
b.m = a; | |
b.c = d; | |
b.d = function(a, d, k) { | |
b.o(a, d) || Object.defineProperty(a, d, { | |
configurable: !1, | |
enumerable: !0, | |
get: k | |
}) | |
}; | |
b.n = function(a) { | |
var d = a && a.__esModule ? function() { | |
return a["default"] | |
} : function() { | |
return a | |
}; | |
b.d(d, "a", d); | |
return d | |
}; | |
b.o = function(a, b) { | |
return Object.prototype.hasOwnProperty.call(a, b) | |
}; | |
b.p = ""; | |
return b(b.s = 3) | |
})({ | |
0: function(a, b, d) { | |
b.__esModule = !0; | |
b.listToArray = function(a) { | |
return a ? [].slice.call(a) : [] | |
} | |
}, | |
1: function(a, b, d) { | |
b.__esModule = !0; | |
var e = [".googlesyndication.com/", "/googleads"]; | |
b.isGoogleSrc = function(a) { | |
return !(!a || !e.filter(function(b) { | |
return 0 < a.indexOf(b) | |
}).length) | |
} | |
}, | |
3: function(a, b, d) { | |
b.__esModule = !0; | |
a = { | |
detectAd: d(4).detectAd | |
}; | |
n.Ya ? n.Ya.AdDetector ? a = n.Ya.AdDetector : n.Ya.AdDetector = a : n.Ya = { | |
AdDetector: a | |
}; | |
b.AdDetector = a | |
}, | |
34: function(a, b, d) { | |
b.__esModule = !0; | |
b.getParentElementsCount = function(a) { | |
for (var b = 0;;) | |
if (a = a.parentElement) b++; | |
else return b | |
} | |
}, | |
4: function(a, b, d) { | |
b.__esModule = !0; | |
var e = | |
d(5), | |
g = d(9), | |
k = d(34), | |
h = d(6), | |
m = q.body, | |
f = q.documentElement; | |
b.detectAd = function() { | |
var a = n.pageYOffset || f.scrollTop || m.scrollTop, | |
b = n.pageXOffset || f.scrollLeft || m.scrollLeft, | |
d = f.clientTop || m.clientTop || 0, | |
p = f.clientLeft || m.clientLeft || 0, | |
q = f.scrollWidth || f.offsetWidth || n.innerWidth, | |
r = f.scrollHeight || f.offsetHeight || n.innerHeight, | |
v = h.getFrienlyWindowsTree(n), | |
u = []; | |
h.windowsTreeEach(v, function(a) { | |
var b = a.window, | |
c = a.parent, | |
d = 0 < e.getParentFriendlyIFrames(b.document.documentElement).length, | |
f = g.getAdsInWindow(b, { | |
isInIFrame: d | |
}); | |
d = f.adElements; | |
f = f.iframeProviders; | |
if (c) { | |
var h = b.frameElement, | |
k = u.filter(function(a) { | |
return a.windowsTree === c | |
})[0].adElements; | |
f.forEach(function(a) { | |
k.push({ | |
provider: a, | |
element: h | |
}) | |
}) | |
} | |
u.push({ | |
windowsTree: a, | |
adElements: d | |
}) | |
}); | |
u.forEach(function(a) { | |
a.adElements = a.adElements.sort(function(a, b) { | |
return k.getParentElementsCount(a.element) - k.getParentElementsCount(b.element) | |
}) | |
}); | |
var w = [], | |
x = []; | |
u.forEach(function(a) { | |
var b = a.windowsTree, | |
c = b.parent; | |
a = a.adElements; | |
b = e.getParentFriendlyIFrames(b.window.document.documentElement); | |
var d = b[b.length - 1]; | |
a.forEach(function(a) { | |
var b = a.element; | |
x.push({ | |
provider: a.provider, | |
element: c ? d : b | |
}) | |
}) | |
}); | |
x.forEach(function(c) { | |
var e = c.element; | |
var f = e.getBoundingClientRect(); | |
var g = f.top + a - d; | |
f = f.left + b - p; | |
var h = e.clientWidth; | |
e = e.clientHeight; | |
var k = f + h, | |
l = g + e, | |
m = 0 > f ? 0 : f < q ? f : q, | |
n = 0 > g ? 0 : g < r ? g : r; | |
100 <= ((k > q ? q : k > m ? k : m) - m) * ((l > r ? r : l > n ? l : n) - n) && w.push({ | |
top: g, | |
left: f, | |
width: h, | |
height: e, | |
provider: c.provider | |
}) | |
}); | |
return { | |
page: { | |
width: q, | |
height: r | |
}, | |
window: { | |
top: a, | |
left: b, | |
width: n.innerWidth, | |
height: n.innerHeight | |
}, | |
ads: w | |
} | |
} | |
}, | |
5: function(a, | |
b, d) { | |
b.__esModule = !0; | |
b.getParentFriendlyIFrames = function(a) { | |
for (var b = [];;) try { | |
if (a = a.ownerDocument.defaultView.frameElement) b.push(a); | |
else return b | |
} catch (p) { | |
return b | |
} | |
} | |
}, | |
6: function(a, b, d) { | |
function e(a) { | |
return m.listToArray(a.document.getElementsByTagName("iframe")).filter(function(a) { | |
if (h.isSafari) return !1; | |
try { | |
return a.contentWindow.document | |
} catch (l) { | |
return !1 | |
} | |
}).map(function(a) { | |
return a.contentWindow | |
}) | |
} | |
function g(a, b) { | |
var c = { | |
window: a, | |
children: [], | |
parent: b | |
}; | |
c.children = e(a).map(function(a) { | |
return g(a, | |
c) | |
}); | |
return c | |
} | |
function k(a, b) { | |
b(a); | |
a.children.forEach(function(a) { | |
return k(a, b) | |
}) | |
} | |
b.__esModule = !0; | |
var h = d(7), | |
m = d(0); | |
b.getFrienlyWindowsTree = g; | |
b.windowsTreeEach = k | |
}, | |
7: function(a, b, d) { | |
b.__esModule = !0; | |
a = d(8); | |
b.isSafari = a.isSafari() | |
}, | |
8: function(a, b, d) { | |
b.__esModule = !0; | |
b.isSafari = function() { | |
var a = navigator.userAgent.toLowerCase(); | |
return -1 !== a.indexOf("safari") && -1 === a.indexOf("chrome") && -1 === a.indexOf("android") | |
} | |
}, | |
9: function(a, b, d) { | |
b.__esModule = !0; | |
var e = d(0), | |
g = d(1); | |
b.getAdsInWindow = function(a, b) { | |
function d(a, | |
b) { | |
b.forEach(function(b) { | |
q.push({ | |
provider: a, | |
element: b | |
}) | |
}) | |
} | |
var f = b.isInIFrame, | |
c = a.document.body, | |
h = e.listToArray(c.querySelectorAll("img")), | |
k = e.listToArray(c.querySelectorAll("iframe")), | |
n = e.listToArray(c.querySelectorAll("script")), | |
p = e.listToArray(c.querySelectorAll("div")), | |
q = [], | |
r = [], | |
v = e.listToArray(c.querySelectorAll("yatag")), | |
u = e.listToArray(c.querySelectorAll("yatag yatag")); | |
d("yandex", v.filter(function(a) { | |
return -1 === u.indexOf(a) | |
})); | |
d("adriver", k.filter(function(a) { | |
return (a = a.src) && -1 < a.indexOf(".adriver.ru/") | |
})); | |
d("adfox", k.filter(function(a) { | |
return (a = a.id) && -1 < a.toLowerCase().indexOf("adfox") | |
})); | |
d("adfox", h.filter(function(a) { | |
return (a = a.src) && -1 < a.indexOf("/banners.adfox.ru/") | |
})); | |
d("adfox", p.filter(function(a) { | |
return -1 < a.id.indexOf("AdFox_banner_") | |
})); | |
f && h.filter(function(a) { | |
return (a = a.src) && -1 < a.indexOf(".adfox.ru/") | |
}).length && r.push("adfox"); | |
k.filter(function(a) { | |
return g.isGoogleSrc(a.src) | |
}).forEach(function(a) { | |
q.push({ | |
provider: "google", | |
element: a | |
}) | |
}); | |
f && n.filter(function(a) { | |
return g.isGoogleSrc(a.src) | |
}).length && | |
r.push("google"); | |
d("awaps", k.filter(function(a) { | |
return (a = a.src) && -1 < a.indexOf("awaps.yandex.net/") | |
})); | |
d("criteo", k.filter(function(a) { | |
var b = a.src; | |
a = a.id; | |
return b && (-1 < b.indexOf(".criteo.com/") || a && -1 < a.indexOf("cto_iframe_")) ? !0 : !1 | |
})); | |
return { | |
adElements: q, | |
iframeProviders: r | |
} | |
} | |
} | |
}) | |
}, "", !0)(); | |
var dc = { | |
init: function(a, b) { | |
if (Math.random() < (b || .005) && !B.get("adDetect")) { | |
B.set("adDetect", !0); | |
var d = function(b) { | |
var d = n.Ya.AdDetector.detectAd(); | |
var e = d.window; | |
var g = d.page; | |
a.sendParams({ | |
__ym: { | |
ads: { | |
w: { | |
t: e.top, | |
l: e.left, | |
w: e.width, | |
h: e.height | |
}, | |
p: { | |
w: g.width, | |
h: g.height | |
}, | |
a: k.map(function(a) { | |
return { | |
t: a.top, | |
l: a.left, | |
w: a.width, | |
h: a.height, | |
p: a.provider | |
} | |
}, d.ads), | |
full: b ? 1 : 0 | |
} | |
} | |
}) | |
}; | |
var e = E(function() { | |
r.un(n, "load", e); | |
d(!0) | |
}, "", !0); | |
r.on(n, "load", e); | |
k.setTimeout(d, 1E4, "AdDetector", !0) | |
} | |
} | |
}, | |
Ab = I.inherit({ | |
message: n.postMessage, | |
spliter: ":", | |
nameSpace: "__yminfo", | |
pending: {}, | |
childs: {}, | |
isIframe: !1, | |
parents: {}, | |
dataToSend: { | |
parents: [], | |
childs: [] | |
}, | |
checkFrame: function(a) { | |
try { | |
var b = a && a.postMessage | |
} catch (d) { | |
return !1 | |
} | |
return b | |
}, | |
checkChildrenData: function(a, | |
b) { | |
k.arrayEvery(this.dataToSend.childs, function(d) { | |
-1 == k.arrayIndexOf(d.tryTo, b.counterId) && (d.tryTo.push(b.counterId), k.mixin(d.data, { | |
toCounter: b.counterId | |
}), this.sendToIframe(a, d.data, function() { | |
d.sendedTo.push(b.counterId); | |
d.callback && d.callback(b, arguments) | |
})); | |
return !0 | |
}, this) | |
}, | |
checkParentData: function(a, b) { | |
k.arrayEvery(this.dataToSend.parents, function(d) { | |
-1 == k.arrayIndexOf(d.tryTo, b.counterId) && (d.tryTo.push(b.counterId), k.mixin(d.data, { | |
toCounter: b.counterId | |
}), this.sendToIframe(a, d.data, function() { | |
d.sendedTo.push(b.counterId); | |
d.callback && d.callback(b, arguments) | |
})); | |
return !0 | |
}, this) | |
}, | |
getHandlers: function() { | |
return { | |
initToChild: [{ | |
fn: function(a, b) { | |
a.source === n.top && this.trigger("parentConnect", a, b) | |
} | |
}], | |
initToParent: [{ | |
fn: function(a, b) { | |
this.childs[b.counterId] = { | |
info: b, | |
window: a.source | |
}; | |
this.checkChildrenData(a.source, b) | |
} | |
}], | |
parentConnect: [{ | |
fn: function(a, b) { | |
this.parents[b.counterId] = { | |
info: b, | |
window: a.source | |
}; | |
this.checkParentData(a.source, b) | |
} | |
}] | |
} | |
}, | |
genMessage: function(a, b) { | |
var d = { | |
date: x.getMs(), | |
key: Math.random(), | |
dir: 0 | |
}; | |
b && (d = { | |
date: b[0], | |
key: b[1], | |
dir: b[2] | |
}); | |
k.mixin(a, { | |
counterId: this.counterId, | |
hid: this.hid | |
}); | |
var e = { | |
data: a | |
}; | |
e[this.nameSpace] = [this.nameSpace, d.date, d.key, d.dir].join(this.spliter); | |
return { | |
meta: d, | |
string: ea.stringify(e) | |
} | |
}, | |
sendToIframe: function(a, b, d, e) { | |
b = this.genMessage(b); | |
var g = this, | |
n = [b.meta.date, b.meta.key].join(this.spliter); | |
this.checkFrame(a) && (a.postMessage(b.string, "*"), this.pending[n] = k.bind(d, e || this), k.setTimeout(function() { | |
delete g.pending[n] | |
}, 5E3, this, "fc.toSendToIframe")) | |
}, | |
sendToChildren: function(a, b, d) { | |
var e = | |
this, | |
g = this.dataToSend.childs.push({ | |
sendedTo: [], | |
tryTo: [], | |
callback: b ? k.bind(b, d || this) : !1, | |
data: a | |
}) - 1; | |
k.forEachKey(this.childs, function(a) { | |
this.dataToSend.childs[g].tryTo.push(a); | |
return 1 | |
}, this); | |
k.keys(this.childs).length && k.forEachKey(this.childs, function(b) { | |
this.sendToIframe(e.childs[b].window, k.mixin(a, { | |
toCounter: b | |
}), function(a) { | |
this.dataToSend.childs[g].sendedTo.push(b); | |
this.dataToSend.childs[g].callback && this.dataToSend.childs[g].callback(a) | |
}, this) | |
}, this) | |
}, | |
sendToParents: function(a, b, d) { | |
var e = this.dataToSend.parents.push({ | |
sendedTo: [], | |
tryTo: [], | |
callback: b ? k.bind(b, d || this) : !1, | |
data: a | |
}) - 1; | |
k.forEachKey(this.parents, function(a) { | |
this.dataToSend.parents[e].tryTo.push(a); | |
return 1 | |
}, this); | |
k.keys(this.parents).length && this.sendToIframe(n.parent, a, function(a) { | |
k.forEachKey(this.parents, function(b) { | |
this.dataToSend.parents[e].sendedTo.push(b); | |
this.dataToSend.parents[e].callback && this.dataToSend.parents[e].callback(a) | |
}, this) | |
}, this) | |
}, | |
addHandler: function(a, b, d) { | |
this.handlers[a] || (this.handlers[a] = []); | |
this.handlers[a].push({ | |
fn: b, | |
ctx: d | |
}) | |
}, | |
_initComponent: function() { | |
var a = | |
n.document.getElementsByTagName("iframe"), | |
b = 0; | |
Ab.superclass._initComponent.apply(this, arguments); | |
this.handlers = k.mixin({}, this.getHandlers()); | |
this.isIframe = u.isIframe(); | |
if (this.message) { | |
for (b = 0; b < a.length; b++) { | |
var d = a[b]; | |
(function(a, b) { | |
a.sendToIframe(b.contentWindow, { | |
type: "initToChild" | |
}, function(d) { | |
a.childs[d.counterId] = { | |
info: d, | |
window: b.contentWindow | |
} | |
}) | |
})(this, d) | |
} | |
this.isIframe && this.sendToIframe(n.parent, { | |
type: "initToParent" | |
}, function(a) { | |
this.trigger("parentConnect", { | |
source: n.parent | |
}, a) | |
}); | |
r.on(n, | |
"message", this.onMessage, this, { | |
passive: !1, | |
name: "FrameConnector" | |
}) | |
} | |
}, | |
trigger: function(a, b, d) { | |
var e = this; | |
return k.map(function(a) { | |
a = a.fn.call(a.ctx || e, b, d) || {}; | |
return k.mixin(a, { | |
counterId: e.counterId, | |
hid: e.hid | |
}) | |
}, this.handlers[a]) | |
}, | |
DIR_INDEX: 2, | |
onMessage: function(a) { | |
var b, d = []; | |
try { | |
var e = a.data; | |
e = ea.parse(a.data); | |
var g = e[this.nameSpace] | |
} catch (h) { | |
return | |
} | |
if (g && g.substring && g.substring(0, this.nameSpace.length) == this.nameSpace) { | |
for (b = 0; 3 >= b; b++) { | |
var n = k.arrayIndexOf(g, this.spliter); - 1 !== n ? d.push(g.substring(0, | |
n)) : d.push(g); | |
g = g.substring(n + 1) | |
} | |
b = d.splice(1, 3); | |
if ((e = e.data) && e.type && this.handlers[e.type] && "0" === b[this.DIR_INDEX]) { | |
if (!e.toCounter || e.toCounter === this.counterId) { | |
try { | |
a.source | |
} catch (h) { | |
return | |
} | |
e.counterId && this.checkFrame(a.source) && (n = this.trigger(e.type, a, e), a.source.postMessage(this.genMessage(n, [b[0], b[1], e.counterId]).string, "*")) | |
} | |
} else b[this.DIR_INDEX] == this.counterId && k.isArray(e) && k.arrayEvery(e, function(a) { | |
return a.counterId && a.hid | |
}) && (a = this.pending[[b[0], b[1]].join(this.spliter)]) && | |
a.apply(this, e) | |
} | |
} | |
}), | |
H = K(), | |
$a = x.getTimezone(), | |
ab = x.getTimestamp(), | |
da = n.screen, | |
Ob = 64, | |
eb = u.isIE() ? 512 : 2048, | |
Pb = u.isIE() ? 512 : 2048, | |
qb = u.isIE() ? 100 : 400, | |
vb = 100, | |
db = "noindex", | |
Bb = /\.(3gp|7z|aac|ac3|acs|ai|avi|ape|apk|asf|bmp|bz2|cab|cdr|crc32|css|csv|cue|divx|dmg|djvu?|doc(x|m|b)?|emf|eps|exe|flac?|flv|iso|swf|gif|t?gz|jpe?g?|js|m3u8?|m4a|mp(3|4|e?g?)|m4v|md5|mkv|mov|msi|ods|og(g|m|v)|psd|rar|rss|rtf|sea|sfv|sit|sha1|svg|tar|tif?f|torrent|ts|txt|vob|wave?|wma|wmv|wmf|webm|ppt(x|m|b)?|xls(x|m|b)?|pdf|phps|png|xpi|g?zip)$/i, | |
ec = +new Date, | |
ma = "Metrika", | |
jb, Va, Da = function() { | |
return "1528" | |
}(); | |
B.init().setSafe("counters", {}).setSafe("hitParam", {}).setSafe("counterNum", 0).setSafe("dataLayer", []).setSafe("hitId", k.random(1, 1073741824)).setSafe("_globalMetrikaHitId", k.random()).setSafe("v", Da); | |
ma = "Metrika2"; | |
n.Ya[ma] = function(a, b, d, e) { | |
var g = this; | |
return E(function() { | |
function p(a, b, d) { | |
b = new J({ | |
counterId: b | |
}); | |
b.erase("mp2_substs"); | |
if (a) { | |
a: { | |
var e = a.conditions; | |
var g; | |
if (e && e.length) | |
for (g = 0; g < e.length; g++) { | |
var l = e[g]; | |
if ("ref" == l.type) var p = | |
h(l); | |
else if ("adv" == l.type) { | |
var Q = n.Ya._metrika.counter._directCampaign; | |
var fa = l.ServiceNamePattern; | |
var r = l.RefererPattern; | |
p = Q ? l.direct_orders : l.direct_camp; | |
var t = q.referrer, | |
v = Ba.parse(H.search), | |
la = c(H.search, H.hash), | |
u; | |
var w = v; | |
var x = {}; | |
var y = ["source", "medium", "campaign", "term", "content"]; | |
for (u = 0; u < y.length; u++) w["utm_" + y[u]] && (x[y[u]] = w["utm_" + y[u]]); | |
w = x; | |
y = Q ? "direct.yandex.ru" : la && la.service || w.source; | |
u = !1; | |
if (!u && fa && fa.length) | |
for (x = 0; x < fa.length; x++) | |
if ((new RegExp(fa[x], "i")).test(y)) { | |
u = !0; | |
break | |
} if (!u && | |
!l.yandex_direct && r && r.length) | |
for (fa = 0; fa < r.length; fa++) | |
if ((new RegExp(r[fa], "i")).test(t)) { | |
u = !0; | |
break | |
}! u && l.google_adwords && v.gclid && (u = !0); | |
if (u && p && p.length && (u = !1, Q = Q || la && la.campaign || w && w.campaign)) | |
for (l = 0; l < p.length; l++) | |
if (p[l] == Q) { | |
u = !0; | |
break | |
} p = u | |
} else p = !1; | |
if (p) { | |
e[g].track_id && b.create("mp2_track", e[g].track_id, 43200); | |
break a | |
} | |
} | |
} | |
e = b.read("mp2_track");a = a.substs && a.substs[e];e && a ? (b.create("mp2_substs", k.toJSON(a)), a = m(a), d.params("__ym", a ? "mp_trackid" : "mp_trackid_bad", e)) : f() | |
} | |
else f() | |
} | |
function h(a) { | |
var b = | |
q.referrer || "", | |
c, d; | |
if ((new RegExp("^https?://" + H.host + "/")).test(b)) return !1; | |
var e = a.patterns; | |
for (c = 0; c < e.length; c++) { | |
var f = new RegExp(e[c], "i"); | |
if (b.match(f)) | |
if (f = a.params || [], f.length) { | |
var g = k.safeDecodeURIComponent((RegExp.$1 || "").replace(/\+/g, "%20")); | |
for (d = 0; d < f.length; d++) | |
if (g == k.safeDecodeURIComponent(f[d])) return !0 | |
} else return !0 | |
} | |
return !1 | |
} | |
function m(a, b) { | |
var c = !1, | |
d; | |
if (a && "string" != typeof a && a.length) | |
for (d = 0; d < a.length; d++) { | |
var e = a[d].selector; | |
var f = a[d].text; | |
var g = e.charAt(0); | |
e = e.slice(1); | |
if ("#" == g) { | |
if (g = q.getElementById(e)) c = !0, b && T.unshift([g, g.innerHTML]), g.innerHTML = f | |
} else if ("." == g) | |
for (g = v.getElementsByClassName(e), e = 0; e < g.length; e++) { | |
c = !0; | |
var h = g[e], | |
k = f; | |
b && T.unshift([h, h.innerHTML]); | |
h.innerHTML = k | |
} | |
} | |
return c | |
} | |
function f() { | |
var a; | |
for (a = 0; a < T.length; a++) T[a][0].innerHTML = T[a][1] | |
} | |
function c(a, b) { | |
var c, d = ""; | |
a = a && a.replace(/^\?/, ""); | |
b = b && b.replace(/^#/, "") || ""; | |
if (a) { | |
var e = a.split("\x26"); | |
for (c = 0; c < e.length; c++) { | |
var f = e[c].split("\x3d"); | |
"_openstat" === f[0] && (d = f[1]) | |
} | |
} | |
var g = b.split("?"); | |
for (c = 0; c < g.length; c++) { | |
var h = g[c].split("\x26"); | |
for (e = 0; e < h.length; e++) f = h[e].split("\x3d"), "_openstat" === f[0] && (d = f[1]) | |
} | |
d && (d = -1 < d.indexOf(";") ? k.safeDecodeURIComponent(d) : Sa.decode(L.decode(d.replace(/[-*_]/g, function(a) { | |
return { | |
"*": "+", | |
"-": "/", | |
_: "\x3d" | |
} [a] || a | |
})))); | |
return d && (c = d.split(";"), 4 == c.length) ? { | |
service: c[0], | |
campaign: c[1], | |
ad: c[2], | |
source: c[3] | |
} : null | |
} | |
function l(a, b) { | |
return E(function() { | |
if (!g.isDestructing()) return a.apply(this, arguments) | |
}, b || "") | |
} | |
function t() { | |
var c = !1; | |
Ja || (P.initCookie(), pb.init(B)); | |
Ma.initPU(za, B); | |
u.isAndroidWebView() || Ma.initPP(B); | |
Ia && $b.init(Ia, qa); | |
ka.init(ua); | |
tb.subscribe(ha); | |
if (B.get("hitParam")[ha]) { | |
if (1 != d || B.get("counters")[ha]) return !1; | |
c = !0 | |
} | |
B.get("counters")[ha] = g; | |
B.get("hitParam")[ha] = 1; | |
k.async(function() { | |
Ma.initFip(B) | |
}, this, "initFip"); | |
g._webvisor = F.webvisor || !1; | |
g._directCampaign = F.directCampaign; | |
F.trackHash && da(!0); | |
if (!c) { | |
oa = new sb({ | |
protocol: "https:", | |
globalConfig: B, | |
counterId: a, | |
counterType: d, | |
hid: qa, | |
tz: $a, | |
ts: ab, | |
url: H.href, | |
enabled: g._webvisor | |
}); | |
g.replacePhones(); | |
c = new xb({ | |
globalConfig: B | |
}); | |
var f = function(c) { | |
var f = new ib({ | |
protocol: "https:", | |
counterType: d, | |
counterId: a, | |
trackHash: Y, | |
hitId: qa, | |
webvisor: g._webvisor, | |
counter: g, | |
globalConfig: B, | |
counterNum: va | |
}), | |
h = { | |
ut: ta, | |
he: ~~F.httpError, | |
ad: 1 == d && n.Ya && n.Ya.Direct, | |
pv: !0, | |
cpf: u.isChromePdf(), | |
saveRef: !0 | |
}; | |
jb = +new Date; | |
f.sendHit({ | |
url: M, | |
referrer: ba, | |
title: v.getDocumentTitle(), | |
vParams: b, | |
userParams: Da, | |
nohit: e, | |
experiments: Ea, | |
modes: h, | |
visitColor: oa.getVc(), | |
hasPrerender: na, | |
ts: ab, | |
tz: $a, | |
callback: function(f, h) { | |
var k; | |
e || (na = !1); | |
f = f || {}; | |
(k = "0" !== f.pcs) || Ma.initZZ(); | |
f.eu !== w && B.set("isEU", f.eu); | |
P.retransmit(B); | |
!k && .01 > Math.random() && Vb(function(a) { | |
(new Ga({ | |
forceHost: L.decode("bGFsYWJsYWguY29t"), | |
noRedir: !0, | |
protocol: "https:", | |
counterType: d, | |
globalConfig: B, | |
counterId: 44743195, | |
hitId: qa, | |
counter: g, | |
counterNum: va | |
})).sendParams({ | |
__ym: { | |
monitor: a | |
} | |
}) | |
}); | |
Na.init(h); | |
cc.match(); | |
Yb.sync(a, d, k, B); | |
R.log("PageView. Counter ", a, ". URL: ", H.href, ". Referrer: " + q.referrer, ". Params: ", b); | |
Va || (Va = +new Date); | |
f.webvisor && (f.webvisor.isEU = B.get("isEU")); | |
g.isDestructing() || (oa.start(f.webvisor, | |
f.publisher), p(f.mp2, a, g), r.on(n, "load", g.replacePhones, g)); | |
g._inited = !0; | |
c && c() | |
} | |
}) | |
}; | |
c.sync(f) | |
} | |
D(!1); | |
r.on(q, "click", y, null, { | |
name: "extLinkClick" | |
}); | |
0 != k.keys(F).length && (Ca && Ca.initUserLayer(), F.enableAll ? (D(!0), C(!0), A()) : (F.clickmap && C(F.clickmap), F.trackLinks && D(F.trackLinks), F.accurateTrackBounce && A(F.accurateTrackBounce)), F.triggerEvent && k.async(function() { | |
U.dispatchCustomEvent("yacounter" + a + "inited") | |
}, this, "yacounterInit")) | |
} | |
function z(a) { | |
var b = new wa({ | |
frameConnector: za, | |
globalConfig: B, | |
initCounter: t, | |
disable: F.yaDisableGDPR | |
}); | |
na = a; | |
b.handle.apply(b, arguments) | |
} | |
function D(a) { | |
var b = {}; | |
switch (typeof a) { | |
case "string": | |
b.on = !0; | |
break; | |
case "object": | |
b.on = !0; | |
break; | |
case "boolean": | |
b.on = a; | |
break; | |
default: | |
return | |
} | |
g._trackLinks = b | |
} | |
function y(a) { | |
if (g._trackLinks && g._trackLinks.on) { | |
a = u.findTarget(a); | |
var b = u.getLinkComponents(a), | |
c = b.href, | |
d = B.get("pai", k.noop)(); | |
if (c && !v.classNameExists(a, "ym-disable-tracklink")) { | |
var e = b.protocol + "//" + b.hostname + b.pathname; | |
d = { | |
pai: d && d + "-" + qa, | |
ln: !0 | |
}; | |
var f = lb(a); | |
f = c === f ? "" : f; | |
if (v.classNameExists(a, | |
"ym-external-link")) N.sendClickLink({ | |
url: c, | |
title: f, | |
modes: d | |
}, M); | |
else { | |
var h = F.url ? k.parseUrl(M).hostname : K().hostname; | |
d.dl = Bb.test(e) || Bb.test(c) || mb(c, W) || mb(e, W); | |
b = b.hostname; | |
(h ? h.replace(/^www\./, "") : "").toLowerCase() == (b ? b.replace(/^www\./, "") : "").toLowerCase() ? d.dl ? (d.ln = !1, N.sendClickLink({ | |
url: c, | |
title: f, | |
modes: d | |
}, M)) : (f = lb(a), V.set("pai", d.pai), f && f !== c && V.set("il", k.trim(f, vb))) : c && -1 !== c.search(/^ *(data|javascript):/i) || (d.ut = db, N.sendClickLink({ | |
url: c, | |
title: f, | |
modes: d | |
}, M)) | |
} | |
} | |
} | |
} | |
function C(b) { | |
"undefined" === | |
typeof b && (b = !0); | |
!0 === b && (b = {}); | |
g._clickmap && g._clickmap.destroy(); | |
b && (g._clickmap = new bc({ | |
globalConfig: B, | |
filter: b.filter, | |
ignoreTags: b.ignoreTags, | |
quota: b.quota, | |
isTrackHash: b.isTrackHash, | |
protocol: "https:", | |
counterId: a, | |
counterType: d, | |
startTime: ec | |
})) | |
} | |
function G(a, b) { | |
function c() { | |
if (!Q) { | |
p && k.clearTimeout(p); | |
var c = h ? l : l + +new Date - m; | |
c = b - c; | |
0 > c && (c = 0); | |
p = k.setTimeout(function() { | |
Q = !0; | |
e(!1); | |
a() | |
}, c, "trackUserTime") | |
} | |
} | |
function d() { | |
g || (f = !0, h = !1, g = !0, c()) | |
} | |
function e(a) { | |
var b; | |
for (b = 0; b < t.length; b += 3) | |
if (a) r.on(t[b], | |
t[b + 1], t[b + 2], { | |
name: "tabTrack" | |
}); | |
else r.un(t[b], t[b + 1], t[b + 2]) | |
} | |
var f = !1, | |
g = !1, | |
h = !0, | |
l = 0, | |
m = +new Date, | |
p = null, | |
Q = !1; | |
if (u.isIE()) k.setTimeout(a, b, "trackUserTime"); | |
else { | |
var t = [n, "blur", function() { | |
h = f = g = !0; | |
l += +new Date - m; | |
m = +new Date; | |
c() | |
}, n, "focus", function() { | |
f || g || (l = 0); | |
m = +new Date; | |
f = g = !0; | |
h = !1; | |
c() | |
}, q, "click", d, q, "mousemove", d, q, "keydown", d, q, "scroll", d]; | |
e(!0); | |
c() | |
} | |
} | |
function A(b) { | |
var c = F.referrer ? ba : q.referrer, | |
d = F.url ? M : K().href; | |
"number" !== typeof b && (b = 15E3); | |
if (!g._isAccurateTrackBounce) { | |
g._isAccurateTrackBounce = !0; | |
var e = new ca({ | |
counterId: a | |
}); | |
var f = e.get("lastHit"); | |
e.set("lastHit", x.getMs()); | |
((e = e.get("lastHit")) && (!f || f < e - 18E5) || !Gb(c, d) || .1 > Math.random()) && G(function() { | |
g.notBounce() | |
}, b) | |
} | |
} | |
function I(a) { | |
var b = function() { | |
var a = K().hash.split("#")[1]; | |
if ("undefined" == typeof a) return !1; | |
var b = a.indexOf("?"); | |
0 < b && (a = a.substring(0, b)); | |
return a | |
}; | |
var c = b(); | |
(function Ka() { | |
var d = b(); | |
d !== c && (a(), c = d); | |
X = k.setTimeout(Ka, 200, "trackHash") | |
})() | |
} | |
function da(a) { | |
if (!1 === a) Y && ("onhashchange" in n ? r.un(n, "hashchange", ma) : k.clearTimeout(X), | |
Y = !1); | |
else if (a = ma, !Y) { | |
if ("onhashchange" in n) r.on(n, "hashchange", a); | |
else I(a); | |
Y = !0 | |
} | |
N.setTrackHash(Y); | |
g._trackHash = Y | |
} | |
function ma() { | |
var a = { | |
ut: ta, | |
ad: 1 == d && n.Ya && n.Ya.Direct, | |
wh: !0, | |
saveRef: !0, | |
pv: !0 | |
}; | |
ja = Ta.lastReferrer = ra; | |
N.sendAjaxHit({ | |
url: F.url ? M : K().href, | |
title: v.getDocumentTitle(), | |
referrer: ja, | |
modes: a | |
}); | |
ra = K().href | |
} | |
function pa(a, b, c) { | |
a = Fa.parseValidate(a, b); | |
b = []; | |
a && (b.push(a), c = c || {}, k.isFunction(c.callback) && (b.push(c.callback), c.ctx && b.push(c.ctx))); | |
b.length && g.params.apply(g, b) | |
} | |
var ta = "", | |
F = {}, | |
ja = "", | |
ra = Ta.lastReferrer = H.href, | |
ua = 0, | |
na = !1, | |
oa; | |
B.setSafe("counter", g); | |
La && E(function() { | |
throw La.error; | |
}, "include." + La.scope)(); | |
if ("object" === typeof a) { | |
F = a; | |
e = a.defer; | |
ta = a.ut; | |
d = a.type; | |
b = a.params; | |
var Da = a.userParams; | |
var Ia = a.tns; | |
var Ea = F.experiments; | |
var Ja = F.nck; | |
var M = a.url; | |
var ba = a.referrer; | |
a = a.id | |
} | |
if (!n["disableYaCounter" + a]) { | |
Ba.parse = function(a, b) { | |
var c = {}, | |
d; | |
a = a && a.replace(/^\?/, "") || ""; | |
if (a.length) { | |
var e = a.split("\x26"); | |
for (d = 0; d < e.length; d++) | |
if (e[d]) { | |
var f = e[d].split("\x3d"); | |
if (f[0]) { | |
var g = k.safeDecodeURIComponent(f[0]); | |
f = k.safeDecodeURIComponent((f[1] || "").replace(/\+/g, "%20")); | |
b && g in c ? k.isArray(c[g]) ? c[g].push(f) : c[g] = [c[g], f] : c[g] = f | |
} | |
} | |
} | |
return c | |
}; | |
var T = []; | |
M = M ? M : K().href; | |
ba = ba ? ba : q.referrer; | |
a = a || 0; | |
/^\d+$/.test(a) || (a = 0); | |
d = d || 0; | |
var ha = a + ":" + d; | |
if (B.get("counters")[ha]) return R.log("Duplicate counter " + ha + " initialization"), B.get("counters")[ha]; | |
var qa = B.get("hitId"); | |
var za = new Ab({ | |
counterId: a, | |
hid: qa | |
}); | |
B.set("counterNum", B.get("counterNum") + 1); | |
var va = B.get("counterNum"); | |
var N = new Ga({ | |
protocol: "https:", | |
counterType: d, | |
counterId: a, | |
hitId: qa, | |
counter: g, | |
globalConfig: B, | |
counterNum: va | |
}); | |
var ka = { | |
init: function(a, b) { | |
if (n.performance && "function" === typeof performance.getEntries && (a === w && (a = 1), !(Math.random() >= a))) { | |
var c = { | |
1882689622: 1, | |
2318205080: 1, | |
3115871109: 1, | |
3604875100: 1, | |
339366994: 1, | |
2890452365: 1, | |
849340123: 1, | |
173872646: 1, | |
2343947156: 1, | |
655012937: 1, | |
1996539654: 1, | |
2065498185: 1, | |
823651274: 1, | |
12282461: 1, | |
1555719328: 1, | |
1417229093: 1, | |
138396985: 1 | |
}, | |
d = performance.getEntries(), | |
e = {}, | |
f = {}, | |
g = {}, | |
h = {}, | |
l; | |
b && (g.counterId = 51533966); | |
for (l = 0; l < d.length; l++) { | |
var m = | |
d[l]; | |
var p = m.name.replace(/^https?:\/\//, "").split("?")[0]; | |
var q = k.fnv32a(p); | |
"script" == m.initiatorType && b && (f[p] = { | |
dns: Math.round(m.domainLookupEnd - m.domainLookupStart), | |
tcp: Math.round(m.connectEnd - m.connectStart), | |
duration: Math.round(m.duration), | |
response: Math.round(m.responseEnd - m.requestStart), | |
name: m.name, | |
decodedBodySize: m.decodedBodySize | |
}); | |
!c[q] || e[p] || b || (e[p] = { | |
dns: Math.round(m.domainLookupEnd - m.domainLookupStart), | |
tcp: Math.round(m.connectEnd - m.connectStart), | |
duration: Math.round(m.duration), | |
response: Math.round(m.responseEnd - | |
m.requestStart), | |
pages: H.href | |
}) | |
} | |
k.keys(e).length && (h.timings8 = e); | |
k.keys(f).length && (h.scripts = f); | |
k.keys(h).length && (new Oa(g)).logParams(h) | |
} | |
} | |
}; | |
ua = 24226447 == a ? 1 : .002; | |
g.replacePhones = l(function() { | |
var b, c; | |
try { | |
(b = (new J({ | |
counterId: a | |
})).read("mp2_substs")) && (c = ea.parse(b)) && m(c, !0) | |
} catch (la) {} | |
return g | |
}, "counter.replacePhones"); | |
g.reachGoal = l(function(b, c, d, e) { | |
2 <= arguments.length && "function" === typeof c && (e = d, d = c, c = w); | |
R.log("Reach goal. Counter: " + a + ". Goal id: " + b + ". Params: ", c); | |
N.sendGoal(b, { | |
url: F.url ? | |
M : K().href, | |
vParams: c, | |
callback: d, | |
ctx: e | |
}); | |
return g | |
}, "counter.reachGoal"); | |
g.trackLinks = l(function(a) { | |
D(a); | |
return g | |
}, "counter.trackLinks"); | |
var V = new ca({ | |
counterId: a | |
}); | |
g.hit = l(function(b, c, d, e, f, h) { | |
b ? (k.isObject(c) && (d = c.referer, e = c.params, f = c.callback, h = c.ctx, c = c.title), M = b, R.log("PageView. Counter " + a, ". URL: " + b, ". Referrer: " + d, ". Params: ", e), N.sendHit({ | |
url: b, | |
title: c, | |
hasPrerender: na, | |
referrer: d, | |
vParams: e, | |
callback: f, | |
ctx: h | |
}), na = !1) : k.warning("Empty hit url"); | |
return g | |
}, "counter.hit"); | |
g.params = l(function(b) { | |
var c = | |
arguments.length, | |
d = c, | |
e = [].slice.call(arguments, 0); | |
if (b) { | |
if (1 < arguments.length) { | |
if (k.isFunction(arguments[c - 1])) { | |
var f = arguments[c - 1]; | |
d = c - 1 | |
} else if (k.isFunction(arguments[c - 2])) { | |
f = arguments[c - 2]; | |
var h = arguments[c - 1]; | |
d = c - 2 | |
} | |
e = [].slice.call(e, 0, d); | |
1 < e.length && (e = [k.array2Props(e)]) | |
} | |
c = -1 !== k.arrayIndexOf(k.keys(e[0]), "__ymu"); | |
(d = -1 !== k.arrayIndexOf(k.keys(e[0]), "__ym") && e[0].__ym.user_id) ? R.log('Set user id "' + e[0].__ym.user_id + '"'): R.log((c ? "User p" : "P") + "arams. Counter " + a + ". Params: ", e[0]); | |
N.sendParams(e[0], | |
f, h, F.url ? M : K().href) | |
} else k.warning("Wrong params"); | |
return g | |
}, "counter.params"); | |
za.addHandler("pluginInfo", function() { | |
return F | |
}, this); | |
za.addHandler("parentConnect", function(a, b) { | |
N.paramsQueue.push({ | |
__ym: { | |
parentIframe: { | |
counterId: b.counterId, | |
hid: b.hid | |
} | |
} | |
}) | |
}, this); | |
g.file = l(function(a, b) { | |
a ? (b = b || {}, N.sendFileUpload({ | |
url: a, | |
title: b.title, | |
vParams: b.params, | |
callback: b.callback, | |
ctx: b.ctx, | |
referrer: F.url ? M : K().href | |
})) : k.warning("Empty file url"); | |
return g | |
}, "counter.file"); | |
g.extLink = l(function(a, b) { | |
a ? (b = b || {}, | |
N.sendExtLink({ | |
url: a, | |
title: b.title, | |
vParams: b.params, | |
callback: b.callback, | |
ctx: b.ctx, | |
referrer: F.url ? M : K().href | |
}, M)) : k.warning("Empty link"); | |
return g | |
}, "counter.extLink"); | |
g.notBounce = l(function(a) { | |
var b = 0; | |
a = a || {}; | |
jb && Va && (b = Va - jb); | |
N.sendNotBounce(b, { | |
url: F.url ? M : K().href, | |
callback: a.callback, | |
ctx: a.ctx | |
}); | |
return g | |
}, "counter.notBounce"); | |
var W = []; | |
g.addFileExtension = l(function(a) { | |
if (!a) return k.warning("Empty extension"), g; | |
"string" === typeof a ? W.push(a) : W = W.concat(a); | |
return g | |
}); | |
g.clickmap = function(a) { | |
C(a); | |
return g | |
}; | |
g.accurateTrackBounce = l(function(a) { | |
A(a); | |
return g | |
}); | |
var X = null; | |
var Y = !1; | |
g.trackHash = l(function(a) { | |
da(a); | |
return g | |
}); | |
var Fa = { | |
requiredEcommerceFields: ["currency", "goods"], | |
parseValidate: function(a, b) { | |
var c = this.validate(a, b), | |
d; | |
if (!c.isValid) return console && console.log(c.message), !1; | |
c = {}; | |
c[a] = {}; | |
b.currency && (c.currencyCode = b.currency); | |
b.goods && (c[a].products = b.goods); | |
for (d in b) b.hasOwnProperty(d) && -1 === k.arrayIndexOf(this.requiredEcommerceFields, d) && (c[a].actionField || (c[a].actionField = {}), c[a].actionField[d] = | |
b[d]); | |
return { | |
__ym: { | |
ecommerce: [c] | |
} | |
} | |
}, | |
validate: function(a, b) { | |
var c = !1, | |
d = ""; | |
if (k.isObject(b)) switch (a) { | |
case "detail": | |
case "add": | |
case "remove": | |
k.isArray(b.goods) && b.goods.length ? (c = k.arrayEvery(b.goods, function(a) { | |
return k.isObject(a) && (k.isString(a.id) || k.isNumber(a.id) || k.isString(a.name) || k.isString(a.name)) | |
})) || (d = "All items in 'goods' should be objects and contain 'id' or 'name' field") : d = "Ecommerce data should contain 'goods' non-empty array"; | |
break; | |
case "purchase": | |
k.isNumber(b.id) || k.isString(b.id) ? | |
c = !0 : d = "Purchase object should contain string or number 'id' field" | |
} else d = "Ecommerce data should be an object"; | |
return { | |
isValid: c, | |
message: d | |
} | |
} | |
}; | |
g.ecommerceDetail = l(function(a, b) { | |
pa("detail", a, b); | |
return g | |
}, "ecommerce.detail"); | |
g.ecommerceAdd = l(function(a, b) { | |
pa("add", a, b); | |
return g | |
}, "ecommerce.add"); | |
g.ecommerceRemove = l(function(a, b) { | |
pa("remove", a, b); | |
return g | |
}, "ecommerce.remove"); | |
g.ecommercePurchase = l(function(a, b) { | |
pa("purchase", a, b); | |
return g | |
}, "ecommerce.purchase"); | |
g.userParams = l(function(a, b, c) { | |
k.isObject(a) ? | |
g.params({ | |
__ymu: a | |
}, b || function() {}, c) : k.warning("Wrong user params"); | |
return g | |
}, "uparams"); | |
g.experiments = l(function(a, b, c) { | |
N.sendExperiments({ | |
callback: b, | |
ctx: c, | |
experiments: a | |
}); | |
return g | |
}, "exps"); | |
g.id = g.setUserID = l(function(a, b, c) { | |
k.isString(a) || k.isNumber(a) ? g.params({ | |
__ym: { | |
user_id: a | |
} | |
}, b || function() {}, c) : k.warning("Incorrect user ID"); | |
return g | |
}, "id"); | |
var S = new J; | |
g.getClientID = l(function(a) { | |
var b = S.read("uid"); | |
a && k.isFunction(a) && a(b); | |
return b | |
}, "guid"); | |
g.enableAll = function() { | |
D(!0); | |
C(!0); | |
A(); | |
return g | |
}; | |
g.uploadPage = function() {}; | |
g.destruct = l(function() { | |
g._isDestructing = !0; | |
r.un(q, "click", y, null, { | |
name: "extLinkClick" | |
}); | |
r.un(n, "load", g.replacePhones, g); | |
da(!1); | |
oa && oa.stop(); | |
B.set("stopRecoder", w); | |
B.set("counter", w); | |
C(!1); | |
try { | |
delete n["yaCounter" + a], delete B.get("counters")[ha], delete B.get("hitParam")[ha] | |
} catch (Q) {} | |
}); | |
g.isDestructing = function() { | |
return !!g._isDestructing | |
}; | |
dc.init(N); | |
g._performanceTiming = nb; | |
if (a) { | |
var Ca = new Ha({ | |
counter: g, | |
counterId: a, | |
globalConfig: B, | |
frameConnector: za, | |
prefsEcommerce: F.ecommerce, | |
prefsUseDataLayer: F.useDataLayer | |
}); | |
if ("prerender" === q.webkitVisibilityState || "prerender" === q.visibilityState) { | |
N.sendPrerenderHit({ | |
url: M, | |
vParams: b, | |
title: v.getDocumentTitle(), | |
referrer: q.referrer | |
}); | |
var xa = function() { | |
"prerender" !== q.webkitVisibilityState && "prerender" !== q.visibilityState && (r.un(q, "webkitvisibilitychange,visibilitychange", xa), z(!0)) | |
}; | |
r.on(q, "webkitvisibilitychange,visibilitychange", xa) | |
} else z(!1) | |
} | |
} | |
}, "init")() | |
}; | |
tb.init(ma, B); | |
new zb({ | |
globalConfig: B | |
}); | |
n.Ya[ma].counters = function() { | |
var a = []; | |
k.forEachKey(B.get("counters"), function(b, d) { | |
var e = b.split(":"); | |
a.push({ | |
id: +e[0], | |
type: +e[1], | |
accurateTrackBounce: d._isAccurateTrackBounce, | |
clickmap: d._clickmap && d._clickmap._start, | |
oldCode: !!n.ya_cid, | |
trackHash: !!d._trackHash, | |
trackLinks: d._trackLinks && d._trackLinks.on, | |
webvisor: !!d._webvisor | |
}) | |
}); | |
return a | |
}; | |
B.setSafe("getCounters", function() { | |
var a = []; | |
k.forEachKey(B.get("counters"), function(b, d) { | |
var e = b.split(":"); | |
a.push({ | |
id: +e[0], | |
type: +e[1], | |
accurateTrackBounce: d._isAccurateTrackBounce, | |
clickmap: d._clickmap && | |
d._clickmap._start, | |
oldCode: !!n.ya_cid, | |
trackHash: !!d._trackHash, | |
trackLinks: d._trackLinks && d._trackLinks.on, | |
webvisor: !!d._webvisor | |
}) | |
}); | |
return a | |
}); | |
n.ya_cid && n.Ya.Metrika && new n.Ya.Metrika(n.ya_cid, n.ya_params, n.ya_class); | |
n.ya_cid && !n.ya_hit && (n.ya_hit = function(a, b) { | |
n.Ya._metrika.counter && n.Ya._metrika.counter.reachGoal(a, b) | |
}); | |
(function() { | |
function a(a) { | |
try { | |
delete n[a] | |
} catch (m) { | |
n[a] = w | |
} | |
} | |
var b = "yandex_metrika_callback", | |
d = "yandex_metrika_callbacks"; | |
b = "yandex_metrika_callback2"; | |
d = "yandex_metrika_callbacks2"; | |
var e = n[b], | |
g = n[d], | |
k; | |
"function" == typeof e && e(); | |
if ("object" == typeof g) | |
for (e = 0; e < g.length; e++) | |
if (k = g[e]) g[e] = null, k(); | |
a(b); | |
a(d) | |
})(); | |
n.Ya[ma].informer = function(a) { | |
var b = !!n.Ya[ma]._informer; | |
Ya[ma]._informer = a; | |
Ya[ma]._informer.domain = "metrika-informer.com"; | |
b || v.loadScript({ | |
src: "https://metrika-informer.com/metrika/informer.js" | |
}) | |
}; | |
r.on(q, "click", E(function(a) { | |
var b = U.getTarget(a); | |
if (b && "ym-advanced-informer" === b.className) { | |
var d = b.getAttribute("data-lang"); | |
var e = b.getAttribute("data-cid"); | |
n.Ya[ma].informer({ | |
i: b, | |
id: +e, | |
lang: d | |
}); | |
U.prevent(a) | |
} | |
}, "adv-inf"), null, { | |
passive: !1 | |
}) | |
})(this, this.document); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment