/*pako 1.0.10 nodeca/pako */
!function(t) {
if ("object" == typeof exports && "undefined" != typeof module)
module.exports = t();
else if ("function" == typeof define && define.amd)
define([], t);
else {
("undefined" != typeof window ? window : "undefined" != typeof global ? global : "undefined" != typeof self ? self : this).pako = t()
}
}(function() {
return function i(s, h, l) {
function o(e, t) {
if (!h[e]) {
if (!s[e]) {
var a = "function" == typeof require && require;
if (!t && a)
return a(e, !0);
if (_)
return _(e, !0);
var n = new Error("Cannot find module '" + e + "'");
throw n.code = "MODULE_NOT_FOUND",
n
}
var r = h[e] = {
exports: {}
};
s[e][0].call(r.exports, function(t) {
return o(s[e][1][t] || t)
}, r, r.exports, i, s, h, l)
}
return h[e].exports
}
for (var _ = "function" == typeof require && require, t = 0; t < l.length; t++)
o(l[t]);
return o
}({
1: [function(t, e, a) {
"use strict";
var n = "undefined" != typeof Uint8Array && "undefined" != typeof Uint16Array && "undefined" != typeof Int32Array;
a.assign = function(t) {
for (var e, a, n = Array.prototype.slice.call(arguments, 1); n.length; ) {
var r = n.shift();
if (r) {
if ("object" != typeof r)
throw new TypeError(r + "must be non-object");
for (var i in r)
e = r,
a = i,
Object.prototype.hasOwnProperty.call(e, a) && (t[i] = r[i])
}
}
return t
}
,
a.shrinkBuf = function(t, e) {
return t.length === e ? t : t.subarray ? t.subarray(0, e) : (t.length = e,
t)
}
;
var r = {
arraySet: function(t, e, a, n, r) {
if (e.subarray && t.subarray)
t.set(e.subarray(a, a + n), r);
else
for (var i = 0; i < n; i++)
t[r + i] = e[a + i]
},
flattenChunks: function(t) {
var e, a, n, r, i, s;
for (e = n = 0,
a = t.length; e < a; e++)
n += t[e].length;
for (s = new Uint8Array(n),
e = r = 0,
a = t.length; e < a; e++)
i = t[e],
s.set(i, r),
r += i.length;
return s
}
}
, i = {
arraySet: function(t, e, a, n, r) {
for (var i = 0; i < n; i++)
t[r + i] = e[a + i]
},
flattenChunks: function(t) {
return [].concat.apply([], t)
}
};
a.setTyped = function(t) {
t ? (a.Buf8 = Uint8Array,
a.Buf16 = Uint16Array,
a.Buf32 = Int32Array,
a.assign(a, r)) : (a.Buf8 = Array,
a.Buf16 = Array,
a.Buf32 = Array,
a.assign(a, i))
}
,
a.setTyped(n)
}
, {}],
2: [function(t, e, a) {
"use strict";
var l = t("./common")
, r = !0
, i = !0;
try {
String.fromCharCode.apply(null, [0])
} catch (t) {
r = !1
}
try {
String.fromCharCode.apply(null, new Uint8Array(1))
} catch (t) {
i = !1
}
for (var o = new l.Buf8(256), n = 0; n < 256; n++)
o[n] = 252 <= n ? 6 : 248 <= n ? 5 : 240 <= n ? 4 : 224 <= n ? 3 : 192 <= n ? 2 : 1;
function _(t, e) {
if (e < 65534 && (t.subarray && i || !t.subarray && r))
return String.fromCharCode.apply(null, l.shrinkBuf(t, e));
for (var a = "", n = 0; n < e; n++)
a += String.fromCharCode(t[n]);
return a
}
o[254] = o[254] = 1,
a.string2buf = function(t) {
var e, a, n, r, i, s = t.length, h = 0;
for (r = 0; r < s; r++)
55296 == (64512 & (a = t.charCodeAt(r))) && r + 1 < s && 56320 == (64512 & (n = t.charCodeAt(r + 1))) && (a = 65536 + (a - 55296 << 10) + (n - 56320),
r++),
h += a < 128 ? 1 : a < 2048 ? 2 : a < 65536 ? 3 : 4;
for (e = new l.Buf8(h),
r = i = 0; i < h; r++)
55296 == (64512 & (a = t.charCodeAt(r))) && r + 1 < s && 56320 == (64512 & (n = t.charCodeAt(r + 1))) && (a = 65536 + (a - 55296 << 10) + (n - 56320),
r++),
a < 128 ? e[i++] = a : (a < 2048 ? e[i++] = 192 | a >>> 6 : (a < 65536 ? e[i++] = 224 | a >>> 12 : (e[i++] = 240 | a >>> 18,
e[i++] = 128 | a >>> 12 & 63),
e[i++] = 128 | a >>> 6 & 63),
e[i++] = 128 | 63 & a);
return e
}
,
a.buf2binstring = function(t) {
return _(t, t.length)
}
,
a.binstring2buf = function(t) {
for (var e = new l.Buf8(t.length), a = 0, n = e.length; a < n; a++)
e[a] = t.charCodeAt(a);
return e
}
,
a.buf2string = function(t, e) {
var a, n, r, i, s = e || t.length, h = new Array(2 * s);
for (a = n = 0; a < s; )
if ((r = t[a++]) < 128)
h[n++] = r;
else if (4 < (i = o[r]))
h[n++] = 65533,
a += i - 1;
else {
for (r &= 2 === i ? 31 : 3 === i ? 15 : 7; 1 < i && a < s; )
r = r << 6 | 63 & t[a++],
i--;
1 < i ? h[n++] = 65533 : r < 65536 ? h[n++] = r : (r -= 65536,
h[n++] = 55296 | r >> 10 & 1023,
h[n++] = 56320 | 1023 & r)
}
return _(h, n)
}
,
a.utf8border = function(t, e) {
var a;
for ((e = e || t.length) > t.length && (e = t.length),
a = e - 1; 0 <= a && 128 == (192 & t[a]); )
a--;
return a < 0 ? e : 0 === a ? e : a + o[t[a]] > e ? a : e
}
}
, {
"./common": 1
}],
3: [function(t, e, a) {
"use strict";
e.exports = function(t, e, a, n) {
for (var r = 65535 & t | 0, i = t >>> 16 & 65535 | 0, s = 0; 0 !== a; ) {
for (a -= s = 2e3 < a ? 2e3 : a; i = i + (r = r + e[n++] | 0) | 0,
--s; )
;
r %= 65521,
i %= 65521
}
return r | i << 16 | 0
}
}
, {}],
4: [function(t, e, a) {
"use strict";
var h = function() {
for (var t, e = [], a = 0; a < 256; a++) {
t = a;
for (var n = 0; n < 8; n++)
t = 1 & t ? 3988292384 ^ t >>> 1 : t >>> 1;
e[a] = t
}
return e
}();
e.exports = function(t, e, a, n) {
var r = h
, i = n + a;
t ^= -1;
for (var s = n; s < i; s++)
t = t >>> 8 ^ r[255 & (t ^ e[s])];
return -1 ^ t
}
}
, {}],
5: [function(t, e, a) {
"use strict";
var l, u = t("../utils/common"), o = t("./trees"), f = t("./adler32"), c = t("./crc32"), n = t("./messages"), _ = 0, d = 4, p = 0, g = -2, m = -1, b = 4, r = 2, v = 8, w = 9, i = 286, s = 30, h = 19, y = 2 * i + 1, k = 15, z = 3, x = 258, B = x + z + 1, A = 42, C = 113, S = 1, j = 2, E = 3, U = 4;
function D(t, e) {
return t.msg = n[e],
e
}
function I(t) {
return (t << 1) - (4 < t ? 9 : 0)
}
function O(t) {
for (var e = t.length; 0 <= --e; )
t[e] = 0
}
function q(t) {
var e = t.state
, a = e.pending;
a > t.avail_out && (a = t.avail_out),
0 !== a && (u.arraySet(t.output, e.pending_buf, e.pending_out, a, t.next_out),
t.next_out += a,
e.pending_out += a,
t.total_out += a,
t.avail_out -= a,
e.pending -= a,
0 === e.pending && (e.pending_out = 0))
}
function T(t, e) {
o._tr_flush_block(t, 0 <= t.block_start ? t.block_start : -1, t.strstart - t.block_start, e),
t.block_start = t.strstart,
q(t.strm)
}
function L(t, e) {
t.pending_buf[t.pending++] = e
}
function N(t, e) {
t.pending_buf[t.pending++] = e >>> 8 & 255,
t.pending_buf[t.pending++] = 255 & e
}
function R(t, e) {
var a, n, r = t.max_chain_length, i = t.strstart, s = t.prev_length, h = t.nice_match, l = t.strstart > t.w_size - B ? t.strstart - (t.w_size - B) : 0, o = t.window, _ = t.w_mask, d = t.prev, u = t.strstart + x, f = o[i + s - 1], c = o[i + s];
t.prev_length >= t.good_match && (r >>= 2),
h > t.lookahead && (h = t.lookahead);
do {
if (o[(a = e) + s] === c && o[a + s - 1] === f && o[a] === o[i] && o[++a] === o[i + 1]) {
i += 2,
a++;
do {} while (o[++i] === o[++a] && o[++i] === o[++a] && o[++i] === o[++a] && o[++i] === o[++a] && o[++i] === o[++a] && o[++i] === o[++a] && o[++i] === o[++a] && o[++i] === o[++a] && i < u);
if (n = x - (u - i),
i = u - x,
s < n) {
if (t.match_start = e,
h <= (s = n))
break;
f = o[i + s - 1],
c = o[i + s]
}
}
} while ((e = d[e & _]) > l && 0 != --r);
return s <= t.lookahead ? s : t.lookahead
}
function H(t) {
var e, a, n, r, i, s, h, l, o, _, d = t.w_size;
do {
if (r = t.window_size - t.lookahead - t.strstart,
t.strstart >= d + (d - B)) {
for (u.arraySet(t.window, t.window, d, d, 0),
t.match_start -= d,
t.strstart -= d,
t.block_start -= d,
e = a = t.hash_size; n = t.head[--e],
t.head[e] = d <= n ? n - d : 0,
--a; )
;
for (e = a = d; n = t.prev[--e],
t.prev[e] = d <= n ? n - d : 0,
--a; )
;
r += d
}
if (0 === t.strm.avail_in)
break;
if (s = t.strm,
h = t.window,
l = t.strstart + t.lookahead,
o = r,
_ = void 0,
_ = s.avail_in,
o < _ && (_ = o),
a = 0 === _ ? 0 : (s.avail_in -= _,
u.arraySet(h, s.input, s.next_in, _, l),
1 === s.state.wrap ? s.adler = f(s.adler, h, _, l) : 2 === s.state.wrap && (s.adler = c(s.adler, h, _, l)),
s.next_in += _,
s.total_in += _,
_),
t.lookahead += a,
t.lookahead + t.insert >= z)
for (i = t.strstart - t.insert,
t.ins_h = t.window[i],
t.ins_h = (t.ins_h << t.hash_shift ^ t.window[i + 1]) & t.hash_mask; t.insert && (t.ins_h = (t.ins_h << t.hash_shift ^ t.window[i + z - 1]) & t.hash_mask,
t.prev[i & t.w_mask] = t.head[t.ins_h],
t.head[t.ins_h] = i,
i++,
t.insert--,
!(t.lookahead + t.insert < z)); )
;
} while (t.lookahead < B && 0 !== t.strm.avail_in)
}
function F(t, e) {
for (var a, n; ; ) {
if (t.lookahead < B) {
if (H(t),
t.lookahead < B && e === _)
return S;
if (0 === t.lookahead)
break
}
if (a = 0,
t.lookahead >= z && (t.ins_h = (t.ins_h << t.hash_shift ^ t.window[t.strstart + z - 1]) & t.hash_mask,
a = t.prev[t.strstart & t.w_mask] = t.head[t.ins_h],
t.head[t.ins_h] = t.strstart),
0 !== a && t.strstart - a <= t.w_size - B && (t.match_length = R(t, a)),
t.match_length >= z)
if (n = o._tr_tally(t, t.strstart - t.match_start, t.match_length - z),
t.lookahead -= t.match_length,
t.match_length <= t.max_lazy_match && t.lookahead >= z) {
for (t.match_length--; t.strstart++,
t.ins_h = (t.ins_h << t.hash_shift ^ t.window[t.strstart + z - 1]) & t.hash_mask,
a = t.prev[t.strstart & t.w_mask] = t.head[t.ins_h],
t.head[t.ins_h] = t.strstart,
0 != --t.match_length; )
;
t.strstart++
} else
t.strstart += t.match_length,
t.match_length = 0,
t.ins_h = t.window[t.strstart],
t.ins_h = (t.ins_h << t.hash_shift ^ t.window[t.strstart + 1]) & t.hash_mask;
else
n = o._tr_tally(t, 0, t.window[t.strstart]),
t.lookahead--,
t.strstart++;
if (n && (T(t, !1),
0 === t.strm.avail_out))
return S
}
return t.insert = t.strstart < z - 1 ? t.strstart : z - 1,
e === d ? (T(t, !0),
0 === t.strm.avail_out ? E : U) : t.last_lit && (T(t, !1),
0 === t.strm.avail_out) ? S : j
}
function K(t, e) {
for (var a, n, r; ; ) {
if (t.lookahead < B) {
if (H(t),
t.lookahead < B && e === _)
return S;
if (0 === t.lookahead)
break
}
if (a = 0,
t.lookahead >= z && (t.ins_h = (t.ins_h << t.hash_shift ^ t.window[t.strstart + z - 1]) & t.hash_mask,
a = t.prev[t.strstart & t.w_mask] = t.head[t.ins_h],
t.head[t.ins_h] = t.strstart),
t.prev_length = t.match_length,
t.prev_match = t.match_start,
t.match_length = z - 1,
0 !== a && t.prev_length < t.max_lazy_match && t.strstart - a <= t.w_size - B && (t.match_length = R(t, a),
t.match_length <= 5 && (1 === t.strategy || t.match_length === z && 4096 < t.strstart - t.match_start) && (t.match_length = z - 1)),
t.prev_length >= z && t.match_length <= t.prev_length) {
for (r = t.strstart + t.lookahead - z,
n = o._tr_tally(t, t.strstart - 1 - t.prev_match, t.prev_length - z),
t.lookahead -= t.prev_length - 1,
t.prev_length -= 2; ++t.strstart <= r && (t.ins_h = (t.ins_h << t.hash_shift ^ t.window[t.strstart + z - 1]) & t.hash_mask,
a = t.prev[t.strstart & t.w_mask] = t.head[t.ins_h],
t.head[t.ins_h] = t.strstart),
0 != --t.prev_length; )
;
if (t.match_available = 0,
t.match_length = z - 1,
t.strstart++,
n && (T(t, !1),
0 === t.strm.avail_out))
return S
} else if (t.match_available) {
if ((n = o._tr_tally(t, 0, t.window[t.strstart - 1])) && T(t, !1),
t.strstart++,
t.lookahead--,
0 === t.strm.avail_out)
return S
} else
t.match_available = 1,
t.strstart++,
t.lookahead--
}
return t.match_available && (n = o._tr_tally(t, 0, t.window[t.strstart - 1]),
t.match_available = 0),
t.insert = t.strstart < z - 1 ? t.strstart : z - 1,
e === d ? (T(t, !0),
0 === t.strm.avail_out ? E : U) : t.last_lit && (T(t, !1),
0 === t.strm.avail_out) ? S : j
}
function M(t, e, a, n, r) {
this.good_length = t,
this.max_lazy = e,
this.nice_length = a,
this.max_chain = n,
this.func = r
}
function P() {
this.strm = null,
this.status = 0,
this.pending_buf = null,
this.pending_buf_size = 0,
this.pending_out = 0,
this.pending = 0,
this.wrap = 0,
this.gzhead = null,
this.gzindex = 0,
this.method = v,
this.last_flush = -1,
this.w_size = 0,
this.w_bits = 0,
this.w_mask = 0,
this.window = null,
this.window_size = 0,
this.prev = null,
this.head = null,
this.ins_h = 0,
this.hash_size = 0,
this.hash_bits = 0,
this.hash_mask = 0,
this.hash_shift = 0,
this.block_start = 0,
this.match_length = 0,
this.prev_match = 0,
this.match_available = 0,
this.strstart = 0,
this.match_start = 0,
this.lookahead = 0,
this.prev_length = 0,
this.max_chain_length = 0,
this.max_lazy_match = 0,
this.level = 0,
this.strategy = 0,
this.good_match = 0,
this.nice_match = 0,
this.dyn_ltree = new u.Buf16(2 * y),
this.dyn_dtree = new u.Buf16(2 * (2 * s + 1)),
this.bl_tree = new u.Buf16(2 * (2 * h + 1)),
O(this.dyn_ltree),
O(this.dyn_dtree),
O(this.bl_tree),
this.l_desc = null,
this.d_desc = null,
this.bl_desc = null,
this.bl_count = new u.Buf16(k + 1),
this.heap = new u.Buf16(2 * i + 1),
O(this.heap),
this.heap_len = 0,
this.heap_max = 0,
this.depth = new u.Buf16(2 * i + 1),
O(this.depth),
this.l_buf = 0,
this.lit_bufsize = 0,
this.last_lit = 0,
this.d_buf = 0,
this.opt_len = 0,
this.static_len = 0,
this.matches = 0,
this.insert = 0,
this.bi_buf = 0,
this.bi_valid = 0
}
function G(t) {
var e;
return t && t.state ? (t.total_in = t.total_out = 0,
t.data_type = r,
(e = t.state).pending = 0,
e.pending_out = 0,
e.wrap < 0 && (e.wrap = -e.wrap),
e.status = e.wrap ? A : C,
t.adler = 2 === e.wrap ? 0 : 1,
e.last_flush = _,
o._tr_init(e),
p) : D(t, g)
}
function J(t) {
var e, a = G(t);
return a === p && ((e = t.state).window_size = 2 * e.w_size,
O(e.head),
e.max_lazy_match = l[e.level].max_lazy,
e.good_match = l[e.level].good_length,
e.nice_match = l[e.level].nice_length,
e.max_chain_length = l[e.level].max_chain,
e.strstart = 0,
e.block_start = 0,
e.lookahead = 0,
e.insert = 0,
e.match_length = e.prev_length = z - 1,
e.match_available = 0,
e.ins_h = 0),
a
}
function Q(t, e, a, n, r, i) {
if (!t)
return g;
var s = 1;
if (e === m && (e = 6),
n < 0 ? (s = 0,
n = -n) : 15 < n && (s = 2,
n -= 16),
r < 1 || w < r || a !== v || n < 8 || 15 < n || e < 0 || 9 < e || i < 0 || b < i)
return D(t, g);
8 === n && (n = 9);
var h = new P;
return (t.state = h).strm = t,
h.wrap = s,
h.gzhead = null,
h.w_bits = n,
h.w_size = 1 << h.w_bits,
h.w_mask = h.w_size - 1,
h.hash_bits = r + 7,
h.hash_size = 1 << h.hash_bits,
h.hash_mask = h.hash_size - 1,
h.hash_shift = ~~((h.hash_bits + z - 1) / z),
h.window = new u.Buf8(2 * h.w_size),
h.head = new u.Buf16(h.hash_size),
h.prev = new u.Buf16(h.w_size),
h.lit_bufsize = 1 << r + 6,
h.pending_buf_size = 4 * h.lit_bufsize,
h.pending_buf = new u.Buf8(h.pending_buf_size),
h.d_buf = 1 * h.lit_bufsize,
h.l_buf = 3 * h.lit_bufsize,
h.level = e,
h.strategy = i,
h.method = a,
J(t)
}
l = [new M(0,0,0,0,function(t, e) {
var a = 65535;
for (a > t.pending_buf_size - 5 && (a = t.pending_buf_size - 5); ; ) {
if (t.lookahead <= 1) {
if (H(t),
0 === t.lookahead && e === _)
return S;
if (0 === t.lookahead)
break
}
t.strstart += t.lookahead,
t.lookahead = 0;
var n = t.block_start + a;
if ((0 === t.strstart || t.strstart >= n) && (t.lookahead = t.strstart - n,
t.strstart = n,
T(t, !1),
0 === t.strm.avail_out))
return S;
if (t.strstart - t.block_start >= t.w_size - B && (T(t, !1),
0 === t.strm.avail_out))
return S
}
return t.insert = 0,
e === d ? (T(t, !0),
0 === t.strm.avail_out ? E : U) : (t.strstart > t.block_start && (T(t, !1),
t.strm.avail_out),
S)
}
), new M(4,4,8,4,F), new M(4,5,16,8,F), new M(4,6,32,32,F), new M(4,4,16,16,K), new M(8,16,32,32,K), new M(8,16,128,128,K), new M(8,32,128,256,K), new M(32,128,258,1024,K), new M(32,258,258,4096,K)],
a.deflateInit = function(t, e) {
return Q(t, e, v, 15, 8, 0)
}
,
a.deflateInit2 = Q,
a.deflateReset = J,
a.deflateResetKeep = G,
a.deflateSetHeader = function(t, e) {
return t && t.state ? 2 !== t.state.wrap ? g : (t.state.gzhead = e,
p) : g
}
,
a.deflate = function(t, e) {
var a, n, r, i;
if (!t || !t.state || 5 < e || e < 0)
return t ? D(t, g) : g;
if (n = t.state,
!t.output || !t.input && 0 !== t.avail_in || 666 === n.status && e !== d)
return D(t, 0 === t.avail_out ? -5 : g);
if (n.strm = t,
a = n.last_flush,
n.last_flush = e,
n.status === A)
if (2 === n.wrap)
t.adler = 0,
L(n, 31),
L(n, 139),
L(n, 8),
n.gzhead ? (L(n, (n.gzhead.text ? 1 : 0) + (n.gzhead.hcrc ? 2 : 0) + (n.gzhead.extra ? 4 : 0) + (n.gzhead.name ? 8 : 0) + (n.gzhead.comment ? 16 : 0)),
L(n, 255 & n.gzhead.time),
L(n, n.gzhead.time >> 8 & 255),
L(n, n.gzhead.time >> 16 & 255),
L(n, n.gzhead.time >> 24 & 255),
L(n, 9 === n.level ? 2 : 2 <= n.strategy || n.level < 2 ? 4 : 0),
L(n, 255 & n.gzhead.os),
n.gzhead.extra && n.gzhead.extra.length && (L(n, 255 & n.gzhead.extra.length),
L(n, n.gzhead.extra.length >> 8 & 255)),
n.gzhead.hcrc && (t.adler = c(t.adler, n.pending_buf, n.pending, 0)),
n.gzindex = 0,
n.status = 69) : (L(n, 0),
L(n, 0),
L(n, 0),
L(n, 0),
L(n, 0),
L(n, 9 === n.level ? 2 : 2 <= n.strategy || n.level < 2 ? 4 : 0),
L(n, 3),
n.status = C);
else {
var s = v + (n.w_bits - 8 << 4) << 8;
s |= (2 <= n.strategy || n.level < 2 ? 0 : n.level < 6 ? 1 : 6 === n.level ? 2 : 3) << 6,
0 !== n.strstart && (s |= 32),
s += 31 - s % 31,
n.status = C,
N(n, s),
0 !== n.strstart && (N(n, t.adler >>> 16),
N(n, 65535 & t.adler)),
t.adler = 1
}
if (69 === n.status)
if (n.gzhead.extra) {
for (r = n.pending; n.gzindex < (65535 & n.gzhead.extra.length) && (n.pending !== n.pending_buf_size || (n.gzhead.hcrc && n.pending > r && (t.adler = c(t.adler, n.pending_buf, n.pending - r, r)),
q(t),
r = n.pending,
n.pending !== n.pending_buf_size)); )
L(n, 255 & n.gzhead.extra[n.gzindex]),
n.gzindex++;
n.gzhead.hcrc && n.pending > r && (t.adler = c(t.adler, n.pending_buf, n.pending - r, r)),
n.gzindex === n.gzhead.extra.length && (n.gzindex = 0,
n.status = 73)
} else
n.status = 73;
if (73 === n.status)
if (n.gzhead.name) {
r = n.pending;
do {
if (n.pending === n.pending_buf_size && (n.gzhead.hcrc && n.pending > r && (t.adler = c(t.adler, n.pending_buf, n.pending - r, r)),
q(t),
r = n.pending,
n.pending === n.pending_buf_size)) {
i = 1;
break
}
L(n, i = n.gzindex < n.gzhead.name.length ? 255 & n.gzhead.name.charCodeAt(n.gzindex++) : 0)
} while (0 !== i);
n.gzhead.hcrc && n.pending > r && (t.adler = c(t.adler, n.pending_buf, n.pending - r, r)),
0 === i && (n.gzindex = 0,
n.status = 91)
} else
n.status = 91;
if (91 === n.status)
if (n.gzhead.comment) {
r = n.pending;
do {
if (n.pending === n.pending_buf_size && (n.gzhead.hcrc && n.pending > r && (t.adler = c(t.adler, n.pending_buf, n.pending - r, r)),
q(t),
r = n.pending,
n.pending === n.pending_buf_size)) {
i = 1;
break
}
L(n, i = n.gzindex < n.gzhead.comment.length ? 255 & n.gzhead.comment.charCodeAt(n.gzindex++) : 0)
} while (0 !== i);
n.gzhead.hcrc && n.pending > r && (t.adler = c(t.adler, n.pending_buf, n.pending - r, r)),
0 === i && (n.status = 103)
} else
n.status = 103;
if (103 === n.status && (n.gzhead.hcrc ? (n.pending + 2 > n.pending_buf_size && q(t),
n.pending + 2 <= n.pending_buf_size && (L(n, 255 & t.adler),
L(n, t.adler >> 8 & 255),
t.adler = 0,
n.status = C)) : n.status = C),
0 !== n.pending) {
if (q(t),
0 === t.avail_out)
return n.last_flush = -1,
p
} else if (0 === t.avail_in && I(e) <= I(a) && e !== d)
return D(t, -5);
if (666 === n.status && 0 !== t.avail_in)
return D(t, -5);
if (0 !== t.avail_in || 0 !== n.lookahead || e !== _ && 666 !== n.status) {
var h = 2 === n.strategy ? function(t, e) {
for (var a; ; ) {
if (0 === t.lookahead && (H(t),
0 === t.lookahead)) {
if (e === _)
return S;
break
}
if (t.match_length = 0,
a = o._tr_tally(t, 0, t.window[t.strstart]),
t.lookahead--,
t.strstart++,
a && (T(t, !1),
0 === t.strm.avail_out))
return S
}
return t.insert = 0,
e === d ? (T(t, !0),
0 === t.strm.avail_out ? E : U) : t.last_lit && (T(t, !1),
0 === t.strm.avail_out) ? S : j
}(n, e) : 3 === n.strategy ? function(t, e) {
for (var a, n, r, i, s = t.window; ; ) {
if (t.lookahead <= x) {
if (H(t),
t.lookahead <= x && e === _)
return S;
if (0 === t.lookahead)
break
}
if (t.match_length = 0,
t.lookahead >= z && 0 < t.strstart && (n = s[r = t.strstart - 1]) === s[++r] && n === s[++r] && n === s[++r]) {
i = t.strstart + x;
do {} while (n === s[++r] && n === s[++r] && n === s[++r] && n === s[++r] && n === s[++r] && n === s[++r] && n === s[++r] && n === s[++r] && r < i);
t.match_length = x - (i - r),
t.match_length > t.lookahead && (t.match_length = t.lookahead)
}
if (t.match_length >= z ? (a = o._tr_tally(t, 1, t.match_length - z),
t.lookahead -= t.match_length,
t.strstart += t.match_length,
t.match_length = 0) : (a = o._tr_tally(t, 0, t.window[t.strstart]),
t.lookahead--,
t.strstart++),
a && (T(t, !1),
0 === t.strm.avail_out))
return S
}
return t.insert = 0,
e === d ? (T(t, !0),
0 === t.strm.avail_out ? E : U) : t.last_lit && (T(t, !1),
0 === t.strm.avail_out) ? S : j
}(n, e) : l[n.level].func(n, e);
if (h !== E && h !== U || (n.status = 666),
h === S || h === E)
return 0 === t.avail_out && (n.last_flush = -1),
p;
if (h === j && (1 === e ? o._tr_align(n) : 5 !== e && (o._tr_stored_block(n, 0, 0, !1),
3 === e && (O(n.head),
0 === n.lookahead && (n.strstart = 0,
n.block_start = 0,
n.insert = 0))),
q(t),
0 === t.avail_out))
return n.last_flush = -1,
p
}
return e !== d ? p : n.wrap <= 0 ? 1 : (2 === n.wrap ? (L(n, 255 & t.adler),
L(n, t.adler >> 8 & 255),
L(n, t.adler >> 16 & 255),
L(n, t.adler >> 24 & 255),
L(n, 255 & t.total_in),
L(n, t.total_in >> 8 & 255),
L(n, t.total_in >> 16 & 255),
L(n, t.total_in >> 24 & 255)) : (N(n, t.adler >>> 16),
N(n, 65535 & t.adler)),
q(t),
0 < n.wrap && (n.wrap = -n.wrap),
0 !== n.pending ? p : 1)
}
,
a.deflateEnd = function(t) {
var e;
return t && t.state ? (e = t.state.status) !== A && 69 !== e && 73 !== e && 91 !== e && 103 !== e && e !== C && 666 !== e ? D(t, g) : (t.state = null,
e === C ? D(t, -3) : p) : g
}
,
a.deflateSetDictionary = function(t, e) {
var a, n, r, i, s, h, l, o, _ = e.length;
if (!t || !t.state)
return g;
if (2 === (i = (a = t.state).wrap) || 1 === i && a.status !== A || a.lookahead)
return g;
for (1 === i && (t.adler = f(t.adler, e, _, 0)),
a.wrap = 0,
_ >= a.w_size && (0 === i && (O(a.head),
a.strstart = 0,
a.block_start = 0,
a.insert = 0),
o = new u.Buf8(a.w_size),
u.arraySet(o, e, _ - a.w_size, a.w_size, 0),
e = o,
_ = a.w_size),
s = t.avail_in,
h = t.next_in,
l = t.input,
t.avail_in = _,
t.next_in = 0,
t.input = e,
H(a); a.lookahead >= z; ) {
for (n = a.strstart,
r = a.lookahead - (z - 1); a.ins_h = (a.ins_h << a.hash_shift ^ a.window[n + z - 1]) & a.hash_mask,
a.prev[n & a.w_mask] = a.head[a.ins_h],
a.head[a.ins_h] = n,
n++,
--r; )
;
a.strstart = n,
a.lookahead = z - 1,
H(a)
}
return a.strstart += a.lookahead,
a.block_start = a.strstart,
a.insert = a.lookahead,
a.lookahead = 0,
a.match_length = a.prev_length = z - 1,
a.match_available = 0,
t.next_in = h,
t.input = l,
t.avail_in = s,
a.wrap = i,
p
}
,
a.deflateInfo = "pako deflate (from Nodeca project)"
}
, {
"../utils/common": 1,
"./adler32": 3,
"./crc32": 4,
"./messages": 6,
"./trees": 7
}],
6: [function(t, e, a) {
"use strict";
e.exports = {
2: "need dictionary",
1: "stream end",
0: "",
"-1": "file error",
"-2": "stream error",
"-3": "data error",
"-4": "insufficient memory",
"-5": "buffer error",
"-6": "incompatible version"
}
}
, {}],
7: [function(t, e, a) {
"use strict";
var l = t("../utils/common")
, h = 0
, o = 1;
function n(t) {
for (var e = t.length; 0 <= --e; )
t[e] = 0
}
var _ = 0
, s = 29
, d = 256
, u = d + 1 + s
, f = 30
, c = 19
, g = 2 * u + 1
, m = 15
, r = 16
, p = 7
, b = 256
, v = 16
, w = 17
, y = 18
, k = [0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 2, 2, 2, 2, 3, 3, 3, 3, 4, 4, 4, 4, 5, 5, 5, 5, 0]
, z = [0, 0, 0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 8, 8, 9, 9, 10, 10, 11, 11, 12, 12, 13, 13]
, x = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 3, 7]
, B = [16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15]
, A = new Array(2 * (u + 2));
n(A);
var C = new Array(2 * f);
n(C);
var S = new Array(512);
n(S);
var j = new Array(256);
n(j);
var E = new Array(s);
n(E);
var U, D, I, O = new Array(f);
function q(t, e, a, n, r) {
this.static_tree = t,
this.extra_bits = e,
this.extra_base = a,
this.elems = n,
this.max_length = r,
this.has_stree = t && t.length
}
function i(t, e) {
this.dyn_tree = t,
this.max_code = 0,
this.stat_desc = e
}
function T(t) {
return t < 256 ? S[t] : S[256 + (t >>> 7)]
}
function L(t, e) {
t.pending_buf[t.pending++] = 255 & e,
t.pending_buf[t.pending++] = e >>> 8 & 255
}
function N(t, e, a) {
t.bi_valid > r - a ? (t.bi_buf |= e << t.bi_valid & 65535,
L(t, t.bi_buf),
t.bi_buf = e >> r - t.bi_valid,
t.bi_valid += a - r) : (t.bi_buf |= e << t.bi_valid & 65535,
t.bi_valid += a)
}
function R(t, e, a) {
N(t, a[2 * e], a[2 * e + 1])
}
function H(t, e) {
for (var a = 0; a |= 1 & t,
t >>>= 1,
a <<= 1,
0 < --e; )
;
return a >>> 1
}
function F(t, e, a) {
var n, r, i = new Array(m + 1), s = 0;
for (n = 1; n <= m; n++)
i[n] = s = s + a[n - 1] << 1;
for (r = 0; r <= e; r++) {
var h = t[2 * r + 1];
0 !== h && (t[2 * r] = H(i[h]++, h))
}
}
function K(t) {
var e;
for (e = 0; e < u; e++)
t.dyn_ltree[2 * e] = 0;
for (e = 0; e < f; e++)
t.dyn_dtree[2 * e] = 0;
for (e = 0; e < c; e++)
t.bl_tree[2 * e] = 0;
t.dyn_ltree[2 * b] = 1,
t.opt_len = t.static_len = 0,
t.last_lit = t.matches = 0
}
function M(t) {
8 < t.bi_valid ? L(t, t.bi_buf) : 0 < t.bi_valid && (t.pending_buf[t.pending++] = t.bi_buf),
t.bi_buf = 0,
t.bi_valid = 0
}
function P(t, e, a, n) {
var r = 2 * e
, i = 2 * a;
return t[r] < t[i] || t[r] === t[i] && n[e] <= n[a]
}
function G(t, e, a) {
for (var n = t.heap[a], r = a << 1; r <= t.heap_len && (r < t.heap_len && P(e, t.heap[r + 1], t.heap[r], t.depth) && r++,
!P(e, n, t.heap[r], t.depth)); )
t.heap[a] = t.heap[r],
a = r,
r <<= 1;
t.heap[a] = n
}
function J(t, e, a) {
var n, r, i, s, h = 0;
if (0 !== t.last_lit)
for (; n = t.pending_buf[t.d_buf + 2 * h] << 8 | t.pending_buf[t.d_buf + 2 * h + 1],
r = t.pending_buf[t.l_buf + h],
h++,
0 === n ? R(t, r, e) : (R(t, (i = j[r]) + d + 1, e),
0 !== (s = k[i]) && N(t, r -= E[i], s),
R(t, i = T(--n), a),
0 !== (s = z[i]) && N(t, n -= O[i], s)),
h < t.last_lit; )
;
R(t, b, e)
}
function Q(t, e) {
var a, n, r, i = e.dyn_tree, s = e.stat_desc.static_tree, h = e.stat_desc.has_stree, l = e.stat_desc.elems, o = -1;
for (t.heap_len = 0,
t.heap_max = g,
a = 0; a < l; a++)
0 !== i[2 * a] ? (t.heap[++t.heap_len] = o = a,
t.depth[a] = 0) : i[2 * a + 1] = 0;
for (; t.heap_len < 2; )
i[2 * (r = t.heap[++t.heap_len] = o < 2 ? ++o : 0)] = 1,
t.depth[r] = 0,
t.opt_len--,
h && (t.static_len -= s[2 * r + 1]);
for (e.max_code = o,
a = t.heap_len >> 1; 1 <= a; a--)
G(t, i, a);
for (r = l; a = t.heap[1],
t.heap[1] = t.heap[t.heap_len--],
G(t, i, 1),
n = t.heap[1],
t.heap[--t.heap_max] = a,
t.heap[--t.heap_max] = n,
i[2 * r] = i[2 * a] + i[2 * n],
t.depth[r] = (t.depth[a] >= t.depth[n] ? t.depth[a] : t.depth[n]) + 1,
i[2 * a + 1] = i[2 * n + 1] = r,
t.heap[1] = r++,
G(t, i, 1),
2 <= t.heap_len; )
;
t.heap[--t.heap_max] = t.heap[1],
function(t, e) {
var a, n, r, i, s, h, l = e.dyn_tree, o = e.max_code, _ = e.stat_desc.static_tree, d = e.stat_desc.has_stree, u = e.stat_desc.extra_bits, f = e.stat_desc.extra_base, c = e.stat_desc.max_length, p = 0;
for (i = 0; i <= m; i++)
t.bl_count[i] = 0;
for (l[2 * t.heap[t.heap_max] + 1] = 0,
a = t.heap_max + 1; a < g; a++)
c < (i = l[2 * l[2 * (n = t.heap[a]) + 1] + 1] + 1) && (i = c,
p++),
l[2 * n + 1] = i,
o < n || (t.bl_count[i]++,
s = 0,
f <= n && (s = u[n - f]),
h = l[2 * n],
t.opt_len += h * (i + s),
d && (t.static_len += h * (_[2 * n + 1] + s)));
if (0 !== p) {
do {
for (i = c - 1; 0 === t.bl_count[i]; )
i--;
t.bl_count[i]--,
t.bl_count[i + 1] += 2,
t.bl_count[c]--,
p -= 2
} while (0 < p);
for (i = c; 0 !== i; i--)
for (n = t.bl_count[i]; 0 !== n; )
o < (r = t.heap[--a]) || (l[2 * r + 1] !== i && (t.opt_len += (i - l[2 * r + 1]) * l[2 * r],
l[2 * r + 1] = i),
n--)
}
}(t, e),
F(i, o, t.bl_count)
}
function V(t, e, a) {
var n, r, i = -1, s = e[1], h = 0, l = 7, o = 4;
for (0 === s && (l = 138,
o = 3),
e[2 * (a + 1) + 1] = 65535,
n = 0; n <= a; n++)
r = s,
s = e[2 * (n + 1) + 1],
++h < l && r === s || (h < o ? t.bl_tree[2 * r] += h : 0 !== r ? (r !== i && t.bl_tree[2 * r]++,
t.bl_tree[2 * v]++) : h <= 10 ? t.bl_tree[2 * w]++ : t.bl_tree[2 * y]++,
i = r,
(h = 0) === s ? (l = 138,
o = 3) : r === s ? (l = 6,
o = 3) : (l = 7,
o = 4))
}
function W(t, e, a) {
var n, r, i = -1, s = e[1], h = 0, l = 7, o = 4;
for (0 === s && (l = 138,
o = 3),
n = 0; n <= a; n++)
if (r = s,
s = e[2 * (n + 1) + 1],
!(++h < l && r === s)) {
if (h < o)
for (; R(t, r, t.bl_tree),
0 != --h; )
;
else
0 !== r ? (r !== i && (R(t, r, t.bl_tree),
h--),
R(t, v, t.bl_tree),
N(t, h - 3, 2)) : h <= 10 ? (R(t, w, t.bl_tree),
N(t, h - 3, 3)) : (R(t, y, t.bl_tree),
N(t, h - 11, 7));
i = r,
(h = 0) === s ? (l = 138,
o = 3) : r === s ? (l = 6,
o = 3) : (l = 7,
o = 4)
}
}
n(O);
var X = !1;
function Y(t, e, a, n) {
var r, i, s, h;
N(t, (_ << 1) + (n ? 1 : 0), 3),
i = e,
s = a,
h = !0,
M(r = t),
h && (L(r, s),
L(r, ~s)),
l.arraySet(r.pending_buf, r.window, i, s, r.pending),
r.pending += s
}
a._tr_init = function(t) {
X || (function() {
var t, e, a, n, r, i = new Array(m + 1);
for (n = a = 0; n < s - 1; n++)
for (E[n] = a,
t = 0; t < 1 << k[n]; t++)
j[a++] = n;
for (j[a - 1] = n,
n = r = 0; n < 16; n++)
for (O[n] = r,
t = 0; t < 1 << z[n]; t++)
S[r++] = n;
for (r >>= 7; n < f; n++)
for (O[n] = r << 7,
t = 0; t < 1 << z[n] - 7; t++)
S[256 + r++] = n;
for (e = 0; e <= m; e++)
i[e] = 0;
for (t = 0; t <= 143; )
A[2 * t + 1] = 8,
t++,
i[8]++;
for (; t <= 255; )
A[2 * t + 1] = 9,
t++,
i[9]++;
for (; t <= 279; )
A[2 * t + 1] = 7,
t++,
i[7]++;
for (; t <= 287; )
A[2 * t + 1] = 8,
t++,
i[8]++;
for (F(A, u + 1, i),
t = 0; t < f; t++)
C[2 * t + 1] = 5,
C[2 * t] = H(t, 5);
U = new q(A,k,d + 1,u,m),
D = new q(C,z,0,f,m),
I = new q(new Array(0),x,0,c,p)
}(),
X = !0),
t.l_desc = new i(t.dyn_ltree,U),
t.d_desc = new i(t.dyn_dtree,D),
t.bl_desc = new i(t.bl_tree,I),
t.bi_buf = 0,
t.bi_valid = 0,
K(t)
}
,
a._tr_stored_block = Y,
a._tr_flush_block = function(t, e, a, n) {
var r, i, s = 0;
0 < t.level ? (2 === t.strm.data_type && (t.strm.data_type = function(t) {
var e, a = 4093624447;
for (e = 0; e <= 31; e++,
a >>>= 1)
if (1 & a && 0 !== t.dyn_ltree[2 * e])
return h;
if (0 !== t.dyn_ltree[18] || 0 !== t.dyn_ltree[20] || 0 !== t.dyn_ltree[26])
return o;
for (e = 32; e < d; e++)
if (0 !== t.dyn_ltree[2 * e])
return o;
return h
}(t)),
Q(t, t.l_desc),
Q(t, t.d_desc),
s = function(t) {
var e;
for (V(t, t.dyn_ltree, t.l_desc.max_code),
V(t, t.dyn_dtree, t.d_desc.max_code),
Q(t, t.bl_desc),
e = c - 1; 3 <= e && 0 === t.bl_tree[2 * B[e] + 1]; e--)
;
return t.opt_len += 3 * (e + 1) + 5 + 5 + 4,
e
}(t),
r = t.opt_len + 3 + 7 >>> 3,
(i = t.static_len + 3 + 7 >>> 3) <= r && (r = i)) : r = i = a + 5,
a + 4 <= r && -1 !== e ? Y(t, e, a, n) : 4 === t.strategy || i === r ? (N(t, 2 + (n ? 1 : 0), 3),
J(t, A, C)) : (N(t, 4 + (n ? 1 : 0), 3),
function(t, e, a, n) {
var r;
for (N(t, e - 257, 5),
N(t, a - 1, 5),
N(t, n - 4, 4),
r = 0; r < n; r++)
N(t, t.bl_tree[2 * B[r] + 1], 3);
W(t, t.dyn_ltree, e - 1),
W(t, t.dyn_dtree, a - 1)
}(t, t.l_desc.max_code + 1, t.d_desc.max_code + 1, s + 1),
J(t, t.dyn_ltree, t.dyn_dtree)),
K(t),
n && M(t)
}
,
a._tr_tally = function(t, e, a) {
return t.pending_buf[t.d_buf + 2 * t.last_lit] = e >>> 8 & 255,
t.pending_buf[t.d_buf + 2 * t.last_lit + 1] = 255 & e,
t.pending_buf[t.l_buf + t.last_lit] = 255 & a,
t.last_lit++,
0 === e ? t.dyn_ltree[2 * a]++ : (t.matches++,
e--,
t.dyn_ltree[2 * (j[a] + d + 1)]++,
t.dyn_dtree[2 * T(e)]++),
t.last_lit === t.lit_bufsize - 1
}
,
a._tr_align = function(t) {
var e;
N(t, 2, 3),
R(t, b, A),
16 === (e = t).bi_valid ? (L(e, e.bi_buf),
e.bi_buf = 0,
e.bi_valid = 0) : 8 <= e.bi_valid && (e.pending_buf[e.pending++] = 255 & e.bi_buf,
e.bi_buf >>= 8,
e.bi_valid -= 8)
}
}
, {
"../utils/common": 1
}],
8: [function(t, e, a) {
"use strict";
e.exports = function() {
this.input = null,
this.next_in = 0,
this.avail_in = 0,
this.total_in = 0,
this.output = null,
this.next_out = 0,
this.avail_out = 0,
this.total_out = 0,
this.msg = "",
this.state = null,
this.data_type = 2,
this.adler = 0
}
}
, {}],
"/lib/deflate.js": [function(t, e, a) {
"use strict";
var s = t("./zlib/deflate")
, h = t("./utils/common")
, l = t("./utils/strings")
, r = t("./zlib/messages")
, i = t("./zlib/zstream")
, o = Object.prototype.toString
, _ = 0
, d = -1
, u = 0
, f = 8;
function c(t) {
if (!(this instanceof c))
return new c(t);
this.options = h.assign({
level: d,
method: f,
chunkSize: 16384,
windowBits: 15,
memLevel: 8,
strategy: u,
to: ""
}, t || {});
var e = this.options;
e.raw && 0 < e.windowBits ? e.windowBits = -e.windowBits : e.gzip && 0 < e.windowBits && e.windowBits < 16 && (e.windowBits += 16),
this.err = 0,
this.msg = "",
this.ended = !1,
this.chunks = [],
this.strm = new i,
this.strm.avail_out = 0;
var a = s.deflateInit2(this.strm, e.level, e.method, e.windowBits, e.memLevel, e.strategy);
if (a !== _)
throw new Error(r[a]);
if (e.header && s.deflateSetHeader(this.strm, e.header),
e.dictionary) {
var n;
if (n = "string" == typeof e.dictionary ? l.string2buf(e.dictionary) : "[object ArrayBuffer]" === o.call(e.dictionary) ? new Uint8Array(e.dictionary) : e.dictionary,
(a = s.deflateSetDictionary(this.strm, n)) !== _)
throw new Error(r[a]);
this._dict_set = !0
}
}
function n(t, e) {
var a = new c(e);
if (a.push(t, !0),
a.err)
throw a.msg || r[a.err];
return a.result
}
c.prototype.push = function(t, e) {
var a, n, r = this.strm, i = this.options.chunkSize;
if (this.ended)
return !1;
n = e === ~~e ? e : !0 === e ? 4 : 0,
"string" == typeof t ? r.input = l.string2buf(t) : "[object ArrayBuffer]" === o.call(t) ? r.input = new Uint8Array(t) : r.input = t,
r.next_in = 0,
r.avail_in = r.input.length;
do {
if (0 === r.avail_out && (r.output = new h.Buf8(i),
r.next_out = 0,
r.avail_out = i),
1 !== (a = s.deflate(r, n)) && a !== _)
return this.onEnd(a),
!(this.ended = !0);
0 !== r.avail_out && (0 !== r.avail_in || 4 !== n && 2 !== n) || ("string" === this.options.to ? this.onData(l.buf2binstring(h.shrinkBuf(r.output, r.next_out))) : this.onData(h.shrinkBuf(r.output, r.next_out)))
} while ((0 < r.avail_in || 0 === r.avail_out) && 1 !== a);
return 4 === n ? (a = s.deflateEnd(this.strm),
this.onEnd(a),
this.ended = !0,
a === _) : 2 !== n || (this.onEnd(_),
!(r.avail_out = 0))
}
,
c.prototype.onData = function(t) {
this.chunks.push(t)
}
,
c.prototype.onEnd = function(t) {
t === _ && ("string" === this.options.to ? this.result = this.chunks.join("") : this.result = h.flattenChunks(this.chunks)),
this.chunks = [],
this.err = t,
this.msg = this.strm.msg
}
,
a.Deflate = c,
a.deflate = n,
a.deflateRaw = function(t, e) {
return (e = e || {}).raw = !0,
n(t, e)
}
,
a.gzip = function(t, e) {
return (e = e || {}).gzip = !0,
n(t, e)
}
}
, {
"./utils/common": 1,
"./utils/strings": 2,
"./zlib/deflate": 5,
"./zlib/messages": 6,
"./zlib/zstream": 8
}]
}, {}, [])("/lib/deflate.js")
});
if (typeof WorkerGlobalScope !== "undefined" && self instanceof WorkerGlobalScope) {
if ("function" === typeof importScripts) {
var gzipEncoder = pako.gzip;
this.onmessage = function(a) {
var i = a.data, g = i.data, f, c = i.url, e = i.headers, d = i.id, b, h;
if (!g || !c) {
return
}
b = JSON.stringify(g);
if (gzipEncoder) {
h = gzipEncoder(b);
e["Content-Encoding"] = "gzip"
} else {
h = "ERROR: Invalid gzip encoder or encoder not found. Check dcxWorker deployment."
}
e["X-Requested-With"] = "fetch";
e["X-Requested-From"] = "dcxWorker";
f = {
method: "POST",
headers: e,
body: h,
mode: "cors",
credentials: "omit",
keepalive: i.isUnloading,
cache: "no-store"
};
fetch(c, f).then(function(k) {
var j = {
success: k.ok,
statusCode: k.status,
statusText: k.statusText,
id: d
};
if (j.success) {
k.text().then(function(l) {
try {
j.data = JSON.parse(l)
} catch (m) {
j.data = l
}
postMessage(j)
})["catch"](function(l) {
j.statusCode = 1;
j.statusText = l.message;
postMessage(j)
})
}
})["catch"](function(k) {
var j = {
success: false,
statusCode: 2,
statusText: k.message,
id: d
};
postMessage(j)
})
}
}
} else {
/*
* **************************************************************************
* Licensed Materials - Property of HCL
* (c) Copyright HCL Technologies Ltd. 2020. All Rights Reserved.
* US Government Users Restricted Rights - Use, duplication or disclosure
* restricted by GSA ADP Schedule Contract with HCL Technologies.
* **************************************************************************
*
* @version 12.1.12
* @flags w3c,NDEBUG
*/
//-----------------------------------------------
// Discover Core Library v12.1.12 Minified
//-----------------------------------------------
if (window.DCX) {
throw "Attempting to recreate DCX. Library may be included more than once on the page."
}
window.DCX = (function() {
var x, r, B, H, o, D, e, f, E;
function y(R, K, L, S) {
var P = null
, T = null
, N = DCX.getModule("replay")
, Q = DCX.getModule("DCCookie")
, U = DCX.getModule("performance")
, M = null
, O = E.getOriginAndPath()
, J = E.getQueryString(window.location.search);
if (!K || typeof K !== "string") {
return
}
T = {
type: 2,
screenview: {
type: R,
name: K,
originalUrl: O.path,
url: DCX.normalizeUrl(O.path),
host: O.origin,
referrer: L,
title: document.title,
queryString: J
}
};
if (!J) {
delete T.screenview.queryString
}
if (!L || typeof L !== "string") {
delete T.screenview.referrer
}
if (R === "LOAD") {
M = {
type: "screenview_load",
name: K
}
} else {
if (R === "UNLOAD") {
M = {
type: "screenview_unload",
name: K
}
}
}
if (M && N) {
P = N.onevent(M)
}
if (P) {
T.dcid = P
}
if (R === "LOAD" || R === "UNLOAD") {
D.post("", T)
}
if (M && Q) {
Q.onevent(M)
}
if (M && U) {
U.onevent(M)
}
}
function z(J) {
var K;
if (!J || !J.coords) {
return
}
K = {
type: 13,
geolocation: {
lat: J.coords.latitude,
"long": J.coords.longitude,
accuracy: Math.ceil(J.coords.accuracy)
}
};
D.post("", K)
}
function t() {
var J;
J = {
type: 13,
geolocation: {
errorCode: 201,
error: "Permission denied."
}
};
D.post("", J)
}
var d = (new Date()).getTime(), k, F = {}, b = {}, h = false, j = null, s = false, v = (function() {
var K, M = [];
function L(Q) {
var N = f.framesBlacklist, P, O;
K = K || [];
Q = Q || null;
if (typeof N !== "undefined" && N.length > 0) {
for (O = 0; O < N.length; O += 1) {
P = B.queryAll(N[O], Q);
if (P && P.length > 0) {
K = K.concat(P)
}
}
M = M.concat(B.queryAll("iframe", Q))
}
}
function J(N) {
if (E.indexOf(M, N) < 0) {
L(N.ownerDocument)
}
return E.indexOf(K, N) > -1
}
J.clearCache = function() {
K = null
}
;
return J
}()), w = null, l = {
config: ["getConfig", "updateConfig", "getCoreConfig", "updateCoreConfig", "getModuleConfig", "updateModuleConfig", "getServiceConfig", "updateServiceConfig"],
queue: ["post", "setAutoFlush", "flushAll"],
browserBase: ["getXPathFromNode", "processDOMEvent"]
}, A = (function() {
var J = {};
return {
normalizeModuleEvents: function(O, M, Q, L) {
var K = J[O]
, P = false
, N = false;
Q = Q || C._getLocalTop();
L = L || Q.document;
if (K) {
return
}
J[O] = {
loadFired: false,
pageHideFired: false
};
E.forEach(M, function(R) {
switch (R.name) {
case "load":
P = true;
M.push(E.mixin(E.mixin({}, R), {
name: "pageshow"
}));
break;
case "unload":
N = true;
M.push(E.mixin(E.mixin({}, R), {
name: "pagehide"
}));
M.push(E.mixin(E.mixin({}, R), {
name: "beforeunload"
}));
break;
case "change":
if (E.isLegacyIE && C.getFlavor() === "w3c") {
M.push(E.mixin(E.mixin({}, R), {
name: "propertychange"
}))
}
break
}
});
if (!P && !N) {
delete J[O];
return
}
J[O].silentLoad = !P;
J[O].silentUnload = !N;
if (!P) {
M.push({
name: "load",
target: Q
})
}
if (!N) {
M.push({
name: "unload",
target: Q
})
}
},
canPublish: function(K, M) {
var L;
if (J.hasOwnProperty(K) === false) {
return true
}
L = J[K];
switch (M.type) {
case "load":
L.pageHideFired = false;
L.loadFired = true;
return !L.silentLoad;
case "pageshow":
L.pageHideFired = false;
M.type = "load";
return !L.loadFired && !L.silentLoad;
case "pagehide":
M.type = "unload";
L.loadFired = false;
L.pageHideFired = true;
return !L.silentUnload;
case "unload":
case "beforeunload":
M.type = "unload";
L.loadFired = false;
return !L.pageHideFired && !L.silentUnload
}
return true
},
isUnload: function(K) {
return typeof K === "object" ? (K.type === "unload" || K.type === "beforeunload" || K.type === "pagehide") : false
}
}
}()), G = {}, c = {}, a = {}, n = function() {}, q = null, p = true, g = function() {}, m = false, u = (function() {
var K = window.location
, M = K.pathname
, L = K.hash
, O = E && E.getQueryString(K.search) || ""
, J = E && E.getOriginAndPath(K) || ""
, N = ""
, P = document.title;
return function() {
var V = K.pathname
, Q = K.hash
, T = N
, U = E && E.getOriginAndPath(K) || ""
, S = document.title
, R = E && E.getQueryString(K.search) || "";
if (V !== M) {
T = DCX.normalizeUrl(V + Q)
} else {
if (Q !== L) {
T = DCX.normalizeUrl(Q)
}
}
if (T !== N) {
if (N) {
y("UNLOAD", N, null, null, {
path: J && J.path,
origin: J && J.origin,
prevHash: L,
queryString: O,
title: P
})
}
y("LOAD", T);
N = T;
M = V;
L = Q;
J = U;
P = S;
O = R
}
}
}()), i = function(L, S) {
var M, K, N, R = false, J = f.blockedElements, P, Q, O;
if (!J || !J.length) {
i = function() {
return false
}
;
return R
}
if (!L || !L.nodeType) {
return R
}
S = S || E.getDocument(L);
for (M = 0,
N = J.length; M < N && !R; M += 1) {
Q = B.queryAll(J[M], S);
for (K = 0,
O = Q.length; K < O && !R; K += 1) {
P = Q[K];
R = P.contains ? P.contains(L) : P === L
}
}
return R
}, I = function(K) {
var J = false
, L = ["intent:", "mailto:", "sms:", "tel:"];
if (K && E.getTagName(K) === "a" && L.indexOf(K.protocol) !== -1) {
J = true
}
return J
}, C = {
_loadGlobalsForUnitTesting: function(J) {
E = J.utils;
x = J.getService("ajax");
r = J.getService("browserBase");
B = J.getService("browser");
H = J.getService("config");
o = J.getService("domCapture");
D = J.getService("queue");
e = J.getService("serializer");
f = H ? H.getCoreConfig() : null
},
getStartTime: function() {
return d
},
getPageId: function() {
return k || "#"
},
getLibraryVersion: function() {
return "12.1.12"
},
getInternalVersion: function() {
var J = this.getCoreConfig();
if (J.version) {
return J.version
}
},
getCurrentWebEvent: function() {
return G
},
normalizeUrl: function(L, K) {
if (typeof K === "undefined") {
K = L
}
var J = this.getCoreConfig();
if (J.normalization && J.normalization.urlFunction) {
return J.normalization.urlFunction(K)
}
return K
},
init: function(K, L) {
var J;
E = this.utils;
if (E.isLegacyIE) {
return
}
q = L;
if (!p) {
throw "init must only be called once!"
}
k = "P." + E.getRandomString(28);
p = false;
J = function(M) {
M = M || window.event || {};
if (M.type === "load" || document.readyState !== "loading") {
if (document.removeEventListener) {
document.removeEventListener("DOMContentLoaded", J, false);
window.removeEventListener("load", J, false)
} else {
document.detachEvent("onreadystatechange", J);
window.detachEvent("onload", J)
}
n(K, L)
}
}
;
if (document.readyState === "complete" || (document.readyState === "interactive" && !E.isIE)) {
setTimeout(J)
} else {
if (document.addEventListener) {
document.addEventListener("DOMContentLoaded", J, false);
window.addEventListener("load", J, false)
} else {
document.attachEvent("onreadystatechange", J);
window.attachEvent("onload", J)
}
}
},
isInitialized: function() {
return h
},
getState: function() {
return j
},
setState: function(K, L) {
var J = {
destroyedParent: K,
jMsg: L
};
j = K + "(" + L.destroyedBy + ") : " + L.destroyedReason;
DCX.logCustomEvent("state", J, 6);
sessionStorage.setItem("DCXLabState", JSON.stringify(J))
},
setWorkerStatus: function(J) {
s = J
},
getWorkerStatus: function() {
return s
},
destroy: function(L) {
var M = ""
, K = ""
, Q = null
, N = null
, J = null
, O = false;
if (p) {
return false
}
this.stopAll();
if (!L) {
for (M in c) {
if (c.hasOwnProperty(M)) {
K = M.split("|")[0];
Q = c[M].target;
O = c[M].delegateTarget || undefined;
B.unsubscribe(K, Q, this._publishEvent, O)
}
}
}
for (N in b) {
if (b.hasOwnProperty(N)) {
J = b[N].instance;
if (J && typeof J.destroy === "function") {
J.destroy()
}
b[N].instance = null
}
}
v.clearCache();
c = {};
h = false;
p = true;
if (j === "unloading" || j === "loaded") {
j = "destroyed"
}
if (typeof q === "function") {
try {
q("destroyed")
} catch (P) {}
}
},
_updateModules: function(L) {
var O = null
, K = null
, J = true;
if (f && f.modules) {
try {
for (K in f.modules) {
if (f.modules.hasOwnProperty(K)) {
O = f.modules[K];
if (F.hasOwnProperty(K)) {
if (O.enabled === false) {
this.stop(K);
continue
}
this.start(K);
if (O.events) {
this._registerModuleEvents(K, O.events, L)
}
}
}
}
this._registerModuleEvents.clearCache()
} catch (N) {
var M = {
destroyedReason: "UIC destroyed while update Modules.",
destroyedBy: "_updateModules",
destroyedByModule: K
};
DCX.setState("_updateModules", M);
C.destroy();
J = false
}
} else {
J = false
}
return J
},
rebind: function(J) {
C._updateModules(J)
},
getSessionData: function() {
if (!C.isInitialized()) {
return
}
var M = null, J = null, K, L;
if (!f || !f.sessionDataEnabled) {
return null
}
J = f.sessionData || {};
K = J.sessionQueryName;
if (K) {
L = E.getQueryStringValue(K, J.sessionQueryDelim)
} else {
K = J.sessionCookieName || "TLTSID";
L = E.getCookieValue(K)
}
if (K && L) {
M = M || {};
M.dcxSCN = K;
M.dcxSCV = L;
M.dcxSCVNeedsHashing = !!J.sessionValueNeedsHashing
}
return M
},
logGeolocation: function(J) {
var N = C.getModuleConfig("replay") || {}
, M = E.getValue(N, "geolocation.options", {
timeout: 30000,
enableHighAccuracy: true,
maximumAge: 0
})
, L = E.getValue(N, "geolocation.enabled", false)
, K = window.navigator;
if (!J) {
if (!L || !K || !K.geolocation || !K.geolocation.getCurrentPosition) {
return
}
K.geolocation.getCurrentPosition(z, t, M)
} else {
z(J)
}
},
logCustomEvent: function(M, K, J) {
if (!C.isInitialized()) {
return
}
var L = null;
if (!M || typeof M !== "string") {
M = "CUSTOM"
}
if (!J || typeof J !== "number") {
J = 5
}
K = K || {};
L = {
type: J,
customEvent: {
name: M,
data: K
}
};
D.post("", L)
},
logExceptionEvent: function(M, K, J) {
if (!C.isInitialized()) {
return
}
var L = null;
if (!M || typeof M !== "string") {
return
}
K = K || "";
J = J || "";
L = {
type: 6,
exception: {
description: M,
url: K,
line: J
}
};
D.post("", L)
},
logFormCompletion: function(J, L) {
if (!C.isInitialized()) {
return
}
var K = {
type: 15,
formCompletion: {
submitted: !!J,
valid: (typeof L === "boolean" ? L : null)
}
};
D.post("", K)
},
logScreenviewLoad: function(L, K, J) {
if (!C.isInitialized()) {
return
}
y("LOAD", L, K, J)
},
logScreenviewUnload: function(J) {
if (!C.isInitialized()) {
return
}
y("UNLOAD", J)
},
logDOMCapture: function(J, M) {
var N = null, L, K, O;
if (!this.isInitialized()) {
return N
}
if (E.isLegacyIE) {
return N
}
if (o) {
J = J || window.document;
K = this.getServiceConfig("domCapture");
M = E.mixin({}, K.options, M);
L = o.captureDOM(J, M);
if (L) {
N = M.dcid || ("dcid-" + E.getSerialNumber() + "." + (new Date()).getTime());
L.dcid = N;
L.eventOn = !!M.eventOn;
O = {
type: 12,
domCapture: L
};
D.post("", O);
if (M.qffd !== false && !m && O.domCapture.fullDOM) {
D.flush();
m = true
}
} else {
N = null
}
}
return N
},
performDOMCapture: function(L, J, K) {
return this.logDOMCapture(J, K)
},
performFormCompletion: function(K, J, L) {
return this.logFormCompletion(J, L)
},
_bridgeCallback: function(K) {
var J = a[K];
if (J && J.enabled) {
return J
}
return null
},
logScreenCapture: function() {
if (!C.isInitialized()) {
return
}
var J = C._bridgeCallback("screenCapture");
if (J !== null) {
J.cbFunction()
}
},
enableDiscoverFramework: function() {
if (!C.isInitialized()) {
return
}
var J = C._bridgeCallback("enableDiscoverFramework");
if (J !== null) {
J.cbFunction()
}
},
disableDiscoverFramework: function() {
if (!C.isInitialized()) {
return
}
var J = C._bridgeCallback("disableDiscoverFramework");
if (J !== null) {
J.cbFunction()
}
},
startNewTLFSession: function() {
if (!C.isInitialized()) {
return
}
var J = C._bridgeCallback("startNewTLFSession");
if (J !== null) {
J.cbFunction()
}
},
currentSessionId: function() {
if (!C.isInitialized()) {
return
}
var K, J = C._bridgeCallback("currentSessionId");
if (J !== null) {
K = J.cbFunction()
}
return K
},
defaultValueForConfigurableItem: function(J) {
if (!C.isInitialized()) {
return
}
var L, K = C._bridgeCallback("defaultValueForConfigurableItem");
if (K !== null) {
L = K.cbFunction(J)
}
return L
},
valueForConfigurableItem: function(J) {
if (!C.isInitialized()) {
return
}
var L, K = C._bridgeCallback("valueForConfigurableItem");
if (K !== null) {
L = K.cbFunction(J)
}
return L
},
setConfigurableItem: function(K, M) {
if (!C.isInitialized()) {
return
}
var J = false
, L = C._bridgeCallback("setConfigurableItem");
if (L !== null) {
J = L.cbFunction(K, M)
}
return J
},
addAdditionalHttpHeader: function(K, M) {
if (!C.isInitialized()) {
return
}
var J = false
, L = C._bridgeCallback("addAdditionalHttpHeader");
if (L !== null) {
J = L.cbFunction(K, M)
}
return J
},
logCustomEventBridge: function(L, M, K) {
if (!C.isInitialized()) {
return
}
var J = false
, N = C._bridgeCallback("logCustomEventBridge");
if (N !== null) {
J = N.cbFunction(L, M, K)
}
return J
},
registerBridgeCallbacks: function(R) {
var O, M, P, L = null, N, S, K, J;
if (!R) {
return false
}
if (R.length === 0) {
a = {};
return false
}
try {
for (O = 0,
P = R.length; O < P; O += 1) {
L = R[O];
if (typeof L === "object" && L.cbType && L.cbFunction) {
N = {
enabled: L.enabled,
cbFunction: L.cbFunction,
cbOrder: L.order || 0
};
if (E.isUndefOrNull(a[L.cbType])) {
if (N.enabled) {
a[L.cbType] = N
}
} else {
if (!E.isArray(a[L.cbType])) {
a[L.cbType] = [a[L.cbType]]
}
S = a[L.cbType];
for (M = 0,
K = false,
J = S.length; M < J; M += 1) {
if (S[M].cbOrder === N.cbOrder && S[M].cbFunction === N.cbFunction) {
K = true;
if (!N.enabled) {
S.splice(M, 1);
if (!S.length) {
delete a[L.cbType]
}
}
} else {
if (S[M].cbOrder > N.cbOrder) {
break
}
}
}
if (!K) {
if (N.enabled) {
S.splice(M, 0, N)
}
}
}
}
}
} catch (Q) {
return false
}
return true
},
redirectQueue: function(M) {
var P, O, L, K, J, Q, N;
if (!M || !M.length) {
return M
}
K = a.messageRedirect;
if (!K) {
return M
}
if (!E.isArray(K)) {
J = [K]
} else {
J = K
}
for (O = 0,
Q = J.length; O < Q; O += 1) {
K = J[O];
if (K && K.enabled) {
for (P = 0,
L = M.length; P < L; P += 1) {
N = K.cbFunction(e.serialize(M[P]), M[P]);
if (N && typeof N === "object") {
M[P] = N
} else {
M.splice(P, 1);
P -= 1;
L = M.length
}
}
}
}
return M
},
_hasSameOrigin: function(J) {
try {
return J.document.location.host === document.location.host && J.document.location.protocol === document.location.protocol
} catch (K) {}
return false
},
provideRequestHeaders: function() {
var O = null, L = a.addRequestHeaders, K, N, M;
if (!E.isArray(L)) {
K = [L]
} else {
K = L
}
for (M = 0,
N = K.length; M < N; M += 1) {
L = K[M];
if (L && L.enabled) {
var J = L.cbFunction();
if (J) {
O = (O || []).concat(J)
}
}
}
return O
},
_registerModuleEvents: (function() {
var L, N = 0, M = function(R, Q, P) {
if (R === "window") {
return Q
}
if (R === "document") {
return P
}
return R
};
function O(P, V, X) {
var W = E.getDocument(X), R = C._getLocalTop(), Q = E.isIFrameDescendant(X), U, T, S;
X = X || W;
A.normalizeModuleEvents(P, V, R, W);
if (Q) {
U = r.ElementData.prototype.examineID(X).id;
if (typeof U === "string") {
U = U.slice(0, U.length - 1);
for (T in c) {
if (c.hasOwnProperty(T)) {
for (S = 0; S < c[T].length; S += 1) {
if (P === c[T][S]) {
if (T.indexOf(U) !== -1) {
delete c[T];
break
}
}
}
}
}
}
}
E.forEach(V, function(Y) {
var ab = M(Y.target, R, W) || W
, aa = M(Y.delegateTarget, R, W)
, Z = "";
if (Y.recurseFrames !== true && Q) {
return
}
if (typeof ab === "string") {
if (Y.delegateTarget && C.getFlavor() === "jQuery") {
Z = C._buildToken4delegateTarget(Y.name, ab, Y.delegateTarget);
if (!c.hasOwnProperty(Z)) {
c[Z] = [P];
c[Z].target = ab;
c[Z].delegateTarget = aa;
B.subscribe(Y.name, ab, C._publishEvent, aa, Z)
} else {
c[Z].push(P)
}
} else {
E.forEach(B.queryAll(ab, X), function(ac) {
var ad = L.get(ac);
if (!ad) {
ad = r.ElementData.prototype.examineID(ac);
L.set(ac, ad)
}
Z = Y.name + "|" + ad.id + ad.idType;
if (E.indexOf(c[Z], P) !== -1) {
return
}
c[Z] = c[Z] || [];
c[Z].push(P);
c[Z].target = ac;
B.subscribe(Y.name, ac, C._publishEvent)
})
}
} else {
Z = C._buildToken4bubbleTarget(Y.name, ab, typeof Y.target === "undefined");
if (!c.hasOwnProperty(Z)) {
c[Z] = [P];
B.subscribe(Y.name, ab, C._publishEvent)
} else {
if (E.indexOf(c[Z], P) === -1) {
c[Z].push(P)
}
}
}
if (Z !== "") {
if (typeof ab !== "string") {
c[Z].target = ab
}
}
})
}
function K(P) {
var Q = E.getIFrameWindow(P);
return (Q !== null) && C._hasSameOrigin(Q) && (Q.document !== null) && Q.document.readyState === "complete"
}
function J(S, Q, W) {
W = W || C._getLocalTop().document;
L = L || new E.WeakMap();
O(S, Q, W);
if (S !== "performance") {
var V = null, R = null, P = B.queryAll("iframe, frame", W), U, T;
for (U = 0,
T = P.length; U < T; U += 1) {
V = P[U];
if (v(V)) {
continue
}
if (K(V)) {
R = E.getIFrameWindow(V);
C._registerModuleEvents(S, Q, R.document);
o.observeWindow(R);
continue
}
N += 1;
(function(Z, X, aa) {
var Y = null
, ab = {
moduleName: Z,
moduleEvents: X,
hIFrame: aa,
_registerModuleEventsDelayed: function() {
var ac = null;
if (!v(aa)) {
ac = E.getIFrameWindow(aa);
if (C._hasSameOrigin(ac)) {
C._registerModuleEvents(Z, X, ac.document);
o.observeWindow(ac)
}
}
N -= 1;
if (!N) {
C._publishEvent({
type: "loadWithFrames",
custom: true
})
}
}
};
E.addEventListener(aa, "load", function() {
ab._registerModuleEventsDelayed()
});
if (E.isLegacyIE && K(aa)) {
Y = E.getIFrameWindow(aa);
E.addEventListener(Y.document, "readystatechange", function() {
ab._registerModuleEventsDelayed()
})
}
}(S, Q, V))
}
}
}
J.clearCache = function() {
if (L) {
L.clear();
L = null
}
}
;
return J
}()),
_buildToken4currentTarget: function(K) {
var L = K.nativeEvent ? K.nativeEvent.currentTarget : null
, J = L ? r.ElementData.prototype.examineID(L) : {
id: K.target ? K.target.id : null,
idType: K.target ? K.target.idType : -1
};
return K.type + "|" + J.id + J.idType
},
_buildToken4delegateTarget: function(J, L, K) {
return J + "|" + L + "|" + K
},
_buildToken4bubbleTarget: function(K, Q, P, T) {
var N = C._getLocalTop(), J, U = function(V) {
var W = null;
if (C._hasSameOrigin(J.parent)) {
E.forEach(B.queryAll("iframe, frame", J.parent.document), function(X) {
var Y = null;
if (!v(X)) {
Y = E.getIFrameWindow(X);
if (C._hasSameOrigin(Y) && Y.document === V) {
W = X
}
}
})
}
return W
}, R = E.getDocument(Q), S = null, M, L = K, O;
if (R) {
J = R.defaultView || R.parentWindow
}
if (Q === window || Q === window.window) {
L += "|null-2|window"
} else {
if (P && J && C._hasSameOrigin(J.parent) && typeof R !== "undefined" && N.document !== R) {
S = U(R);
if (S) {
M = r.ElementData.prototype.examineID(S);
L += "|" + M.xPath + "-2"
}
} else {
if (T && T !== document && C.getFlavor() === "jQuery") {
L += "|null-2|" + E.getTagName(Q) + "|" + E.getTagName(T)
} else {
L += "|null-2|document"
}
}
}
return L
},
_reinitConfig: function() {
C._updateModules()
},
_publishEvent: function(J) {
var K = null, M = null, O = (J.delegateTarget && J.data) ? J.data : C._buildToken4currentTarget(J), P = null, Q, R, S, L = null, T = false, U = false, W = J.delegateTarget || null, V, N;
G = J;
if (J.type.match(/^(click|change|blur|mouse|touch)/)) {
g();
D.resetFlushTimer()
}
V = E.getValue(f, "screenviewAutoDetect", true);
if (V) {
u()
}
if ((J.type === "load" || J.type === "pageshow") && !J.nativeEvent.customLoad) {
G = {};
return
}
if (J.type === "click") {
w = J.target.element
}
if (J.type === "beforeunload") {
T = false;
N = (E.getTagName(w) === "a") ? w : document.activeElement;
if (N) {
if (I(N)) {
T = true
} else {
E.forEach(f.ieExcludedLinks, function(Y) {
var Z, X, aa = B.queryAll(Y);
for (Z = 0,
X = aa ? aa.length : 0; Z < X; Z += 1) {
if (typeof aa[Z] !== undefined && aa[Z] === w) {
T = true;
break
}
}
})
}
}
if (T) {
G = {};
return
}
}
if (A.isUnload(J)) {
j = "unloading"
}
if (J.type === "change" && E.isLegacyIE && C.getFlavor() === "w3c" && (J.target.element.type === "checkbox" || J.target.element.type === "radio")) {
G = {};
return
}
if (J.type === "propertychange") {
if (J.nativeEvent.propertyName === "checked" && (J.target.element.type === "checkbox" || (J.target.element.type === "radio" && J.target.element.checked))) {
J.type = "change";
J.target.type = "INPUT"
} else {
G = {};
return
}
}
if (J.target && i(J.target.element)) {
G = {};
return
}
if (!c.hasOwnProperty(O)) {
if (J.hasOwnProperty("nativeEvent")) {
S = J.nativeEvent.currentTarget || J.nativeEvent.target
}
O = C._buildToken4bubbleTarget(J.type, S, true, W)
}
if (c.hasOwnProperty(O)) {
P = c[O];
for (Q = 0,
R = P.length; Q < R; Q += 1) {
K = P[Q];
M = C.getModule(K);
L = E.mixin({}, J);
if (M && C.isStarted(K) && typeof M.onevent === "function") {
U = A.canPublish(K, L);
if (U) {
M.onevent(L)
}
}
}
}
if (L && L.type === "unload" && U) {
C.destroy()
}
G = {}
},
_getLocalTop: function() {
return window.window
},
addModule: function(J, K) {
F[J] = {
creator: K,
instance: null,
context: null,
messages: []
};
if (this.isInitialized()) {
this.start(J)
}
},
getModule: function(J) {
if (F[J] && F[J].instance) {
return F[J].instance
}
return null
},
removeModule: function(J) {
this.stop(J);
delete F[J]
},
isStarted: function(J) {
return F.hasOwnProperty(J) && F[J].instance !== null
},
start: function(K) {
var L = F[K]
, J = null;
if (L && L.instance === null) {
L.context = new DCX.ModuleContext(K,this);
J = L.instance = L.creator(L.context);
if (typeof J.init === "function") {
J.init()
}
}
},
startAll: function() {
var J = null;
for (J in F) {
if (F.hasOwnProperty(J)) {
this.start(J)
}
}
},
stop: function(K) {
var L = F[K]
, J = null;
if (L && L.instance !== null) {
J = L.instance;
if (typeof J.destroy === "function") {
J.destroy()
}
L.instance = L.context = null
}
},
stopAll: function() {
var J = null;
for (J in F) {
if (F.hasOwnProperty(J)) {
this.stop(J)
}
}
},
addService: function(K, J) {
b[K] = {
creator: J,
instance: null
}
},
getService: function(J) {
if (b.hasOwnProperty(J)) {
if (!b[J].instance) {
try {
b[J].instance = b[J].creator(this);
if (typeof b[J].instance.init === "function") {
b[J].instance.init()
}
} catch (K) {
E.clog("UIC terminated due to error when instanciating the " + J + " service.");
throw K
}
if (typeof b[J].instance.getServiceName !== "function") {
b[J].instance.getServiceName = function() {
return J
}
}
}
return b[J].instance
}
return null
},
removeService: function(J) {
delete b[J]
},
broadcast: function(M) {
var L = 0
, J = 0
, N = null
, K = null;
if (M && typeof M === "object") {
for (N in F) {
if (F.hasOwnProperty(N)) {
K = F[N];
if (E.indexOf(K.messages, M.type) > -1) {
if (typeof K.instance.onmessage === "function") {
K.instance.onmessage(M)
}
}
}
}
}
},
listen: function(J, L) {
var K = null;
if (this.isStarted(J)) {
K = F[J];
if (E.indexOf(K.messages, L) === -1) {
K.messages.push(L)
}
}
},
fail: function(M, L, J) {
M = "UIC FAILED. " + M;
try {
var K = {
destroyedReason: "UIC FAILED. " + M,
destroyedBy: "fail",
};
DCX.setState("_publishEvent", K);
C.destroy(!!J)
} finally {
E.clog(M);
throw new C.UICError(M,L)
}
},
UICError: (function() {
function J(K, L) {
this.message = K;
this.code = L
}
J.prototype = new Error();
J.prototype.name = "UICError";
J.prototype.constructor = J;
return J
}()),
getFlavor: function() {
return "w3c"
},
isScreenviewInAccessList: function(L, K) {
var J = K.some(function(N) {
if (typeof N === "string") {
return (L || "").includes(N)
} else {
if (typeof N === "object" && N.regex) {
var M = new RegExp(N.regex,N.flag);
return M.test(L)
}
}
return false
});
return J
}
};
g = function() {
var L = null
, K = E.getValue(f, "inactivityTimeout", 600000);
if (!K) {
g = function() {}
;
return
}
function J() {
E.clog("UIC self-terminated due to inactivity timeout.");
var M = {
destroyedReason: "UIC self-terminated due to inactivity timeout.",
destroyedBy: "inactivityTimeoutHandler"
};
DCX.setState("resetInactivityTimer", M);
try {
if (!f.sessionKeepAlive) {
C.destroy()
}
} catch (N) {
C.destroy()
}
}
g = function() {
if (L) {
clearTimeout(L);
L = null
}
L = setTimeout(J, K)
}
;
g()
}
;
n = function(L, X) {
var J, O, M, V, R, N, W, K, P, Q;
if (h) {
E.clog("DCX.init() called more than once. Ignoring.");
return
}
if (DCX && DCX.replay) {
return
}
H = C.getService("config");
H.updateConfig(L);
x = C.getService("ajax");
r = C.getService("browserBase");
B = C.getService("browser");
o = C.getService("domCapture");
D = C.getService("queue");
e = C.getService("serializer");
f = H.getCoreConfig();
M = H.getModuleConfig("DCCookie") || {};
N = M.sessionizationCookieName || "TLTSID";
W = E.getCookieValue(N);
if (W === "DND") {
if (j !== "destroyed") {
var S = {
destroyedReason: "Cookie value is DND",
destroyedBy: "sessionCookieValue"
};
DCX.setState("_init", S);
C.destroy()
}
return
}
if (!C._updateModules()) {
if (j !== "destroyed") {
var S = {
destroyedReason: "UIC destroyed while updating modules",
destroyedBy: "core._updateModules"
};
DCX.setState("_init", S);
C.destroy()
}
return
}
if (H.subscribe) {
H.subscribe("configupdated", C._reinitConfig)
}
h = true;
j = "loaded";
try {
if (typeof DCExtensionNotify === "function") {
DCExtensionNotify("Initialized")
}
} catch (U) {}
J = {
type: "load",
target: window.window,
srcElement: window.window,
currentTarget: window.window,
bubbles: true,
cancelBubble: false,
cancelable: true,
timeStamp: +new Date(),
customLoad: true
};
O = new r.WebEvent(J);
C._publishEvent(O);
V = C.getServiceConfig("queue");
R = V.queues || [];
for (Q = 0; Q < R.length; Q += 1) {
if (!W && M.dcAppKey) {
K = R[Q].endpoint;
P = R[Q].killswitchURL || (K.match("collectorPost") ? K.replace("collectorPost", "switch/" + M.dcAppKey) : null);
if (P) {
x.sendRequest({
type: "GET",
url: P,
async: true,
timeout: 5000,
oncomplete: function(Y) {
if (Y.responseText === "0") {
C.setAutoFlush(false);
E.setCookie(N, "DND");
var Z = {
destroyedReason: "UIC destroyed while kill switch URL",
destroyedBy: "killswitchURl"
};
DCX.setState("_init", Z);
C.destroy()
}
}
})
}
}
if (R[Q].checkEndpoint) {
x.sendRequest({
oncomplete: function(Y) {},
timeout: R[Q].endpointCheckTimeout || 3000,
url: R[Q].endpoint,
headers: {
"X-PageId": k,
"X-Discover-SaaS-AppKey": M.dcAppKey,
"X-Discover-EndpointCheck": true
},
async: true,
error: function(Y) {
if (Y.success) {
return
}
C.setAutoFlush(false);
var Z = {
destroyedReason: "UIC destroyed while checking end point.",
destroyedBy: "checkEndPointinit"
};
DCX.setState("_init", Z);
C.destroy()
}
})
}
}
if (typeof q === "function") {
try {
q("initialized")
} catch (T) {}
}
if (JSON.parse(sessionStorage.getItem("DCXLabState")) !== null) {
var S = JSON.parse(sessionStorage.getItem("DCXLabState"));
DCX.logCustomEvent("LastState", S, 6);
sessionStorage.removeItem("DCXLabState")
}
}
;
(function() {
var K = null, L, J;
for (K in l) {
if (l.hasOwnProperty(K)) {
for (L = 0,
J = l[K].length; L < J; L += 1) {
(function(N, M) {
C[M] = function() {
var O = this.getService(N);
if (O) {
return O[M].apply(O, arguments)
}
}
}(K, l[K][L]))
}
}
}
}());
return C
}());
(function() {
var a = window.navigator.userAgent.toLowerCase()
, i = (a.indexOf("msie") !== -1 || a.indexOf("trident") !== -1)
, c = (function() {
var j = !!window.performance;
return (i && (!j || document.documentMode < 9))
}())
, e = (a.indexOf("android") !== -1)
, f = /(ipad|iphone|ipod)/.test(a)
, d = (a.indexOf("opera mini") !== -1)
, b = 1
, h = {
"a:": "link",
"button:button": "button",
"button:submit": "button",
"input:button": "button",
"input:checkbox": "checkBox",
"input:color": "colorPicker",
"input:date": "datePicker",
"input:datetime": "datetimePicker",
"input:datetime-local": "datetime-local",
"input:email": "emailInput",
"input:file": "fileInput",
"input:image": "button",
"input:month": "month",
"input:number": "numberPicker",
"input:password": "textBox",
"input:radio": "radioButton",
"input:range": "slider",
"input:reset": "button",
"input:search": "searchBox",
"input:submit": "button",
"input:tel": "tel",
"input:text": "textBox",
"input:time": "timePicker",
"input:url": "urlBox",
"input:week": "week",
"select:": "selectList",
"select:select-one": "selectList",
"textarea:": "textBox",
"textarea:textarea": "textBox"
}
, g = {
isIE: i,
isLegacyIE: c,
isAndroid: e,
isLandscapeZeroDegrees: false,
isiOS: f,
isOperaMini: d,
isUndefOrNull: function(j) {
return typeof j === "undefined" || j === null
},
isArray: function(j) {
return !!(j && Object.prototype.toString.call(j) === "[object Array]")
},
getSerialNumber: function() {
var j;
j = b;
b += 1;
return j
},
getRandomString: function(o, n) {
var m, l, j = "ABCDEFGHJKLMNPQRSTUVWXYZ23456789", k = "";
if (!o) {
return k
}
if (typeof n !== "string") {
n = j
}
for (m = 0,
l = n.length; m < o; m += 1) {
k += n.charAt(Math.floor(Math.random() * l))
}
return k
},
getValue: function(o, n, k) {
var m, j, l;
k = typeof k === "undefined" ? null : k;
if (!o || typeof o !== "object" || typeof n !== "string") {
return k
}
l = n.split(".");
for (m = 0,
j = l.length; m < j; m += 1) {
if (this.isUndefOrNull(o) || typeof o[l[m]] === "undefined") {
return k
}
o = o[l[m]]
}
return o
},
indexOf: function(m, l) {
var k, j;
if (m && m.indexOf) {
return m.indexOf(l)
}
if (m && m instanceof Array) {
for (k = 0,
j = m.length; k < j; k += 1) {
if (m[k] === l) {
return k
}
}
}
return -1
},
forEach: function(n, m, l) {
var k, j;
if (!n || !n.length || !m || !m.call) {
return
}
for (k = 0,
j = n.length; k < j; k += 1) {
m.call(l, n[k], k, n)
}
},
some: function(n, m) {
var k, j, l = false;
for (k = 0,
j = n.length; k < j; k += 1) {
l = m(n[k], k, n);
if (l) {
return l
}
}
return l
},
convertToArray: function(l) {
var m = 0
, k = l.length
, j = [];
while (m < k) {
j.push(l[m]);
m += 1
}
return j
},
mixin: function(n) {
var m, l, k, j;
for (k = 1,
j = arguments.length; k < j; k += 1) {
l = arguments[k];
for (m in l) {
if (Object.prototype.hasOwnProperty.call(l, m)) {
n[m] = l[m]
}
}
}
return n
},
extend: function(j, k, l) {
var m = "";
for (m in l) {
if (Object.prototype.hasOwnProperty.call(l, m)) {
if (j && Object.prototype.toString.call(l[m]) === "[object Object]") {
if (typeof k[m] === "undefined") {
k[m] = {}
}
this.extend(j, k[m], l[m])
} else {
k[m] = l[m]
}
}
}
return k
},
clone: function(k) {
var l, j;
if (null === k || "object" !== typeof k) {
return k
}
if (k instanceof Object) {
l = (Object.prototype.toString.call(k) === "[object Array]") ? [] : {};
for (j in k) {
if (Object.prototype.hasOwnProperty.call(k, j)) {
l[j] = this.clone(k[j])
}
}
return l
}
},
parseVersion: function(l) {
var m, j, k = [];
if (!l || !l.length) {
return k
}
k = l.split(".");
for (m = 0,
j = k.length; m < j; m += 1) {
k[m] = /^[0-9]+$/.test(k[m]) ? parseInt(k[m], 10) : k[m]
}
return k
},
isEqual: function(l, k) {
var m, n, p, o, j;
if (l === k) {
return true
}
if (typeof l !== typeof k) {
return false
}
if (l instanceof Object && k instanceof Object) {
if (Object.prototype.toString.call(l) === "[object Array]" && Object.prototype.toString.call(k) === "[object Array]") {
if (l.length !== k.length) {
return false
}
for (m = 0,
j = l.length; m < j; m += 1) {
if (!this.isEqual(l[m], k[m])) {
return false
}
}
return true
}
if (Object.prototype.toString.call(l) === "[object Object]" && Object.prototype.toString.call(k) === "[object Object]") {
for (m = 0; m < 2; m += 1) {
for (p in l) {
if (l.hasOwnProperty(p)) {
if (!k.hasOwnProperty(p)) {
return false
}
n = this.isEqual(l[p], k[p]);
if (!n) {
return false
}
}
}
o = l;
l = k;
k = o
}
return true
}
}
return false
},
createObject: (function() {
var j = null
, k = null;
if (typeof Object.create === "function") {
j = Object.create
} else {
k = function() {}
;
j = function(l) {
if (typeof l !== "object" && typeof l !== "function") {
throw new TypeError("Object prototype need to be an object!")
}
k.prototype = l;
return new k()
}
}
return j
}()),
access: function(o, m) {
var n = m || window, k, l, j;
if (typeof o !== "string" || (typeof n !== "object" && n !== null)) {
return
}
k = o.split(".");
for (l = 0,
j = k.length; l < j; l += 1) {
if (l === 0 && k[l] === "window") {
continue
}
if (!Object.prototype.hasOwnProperty.call(n, k[l])) {
return
}
n = n[k[l]];
if (l < (j - 1) && !(n instanceof Object)) {
return
}
}
return n
},
isNumeric: function(j) {
var k = false;
if (g.isUndefOrNull(j) || !(/\S/.test(j))) {
return k
}
k = !isNaN(j * 2);
return k
},
isUpperCase: function(j) {
return j === j.toUpperCase() && j !== j.toLowerCase()
},
isLowerCase: function(j) {
return j === j.toLowerCase() && j !== j.toUpperCase()
},
extractResponseHeaders: function(l) {
var n = {}, k, j, m = null;
if (!l || !l.length) {
l = []
} else {
l = l.split("\n")
}
for (k = 0,
j = l.length; k < j; k += 1) {
m = l[k].split(": ");
if (m.length === 2) {
n[m[0]] = m[1]
}
}
return n
},
getTargetState: function(q) {
var j = {
a: ["innerText", "href"],
input: {
range: ["maxValue:max", "value"],
checkbox: ["value", "checked"],
radio: ["value", "checked"],
image: ["src"]
},
select: ["value"],
button: ["value", "innerText"],
textarea: ["value"]
}
, l = this.getTagName(q)
, r = j[l] || null
, m = null
, k = null
, n = 0
, p = 0
, o = null
, s = "";
if (r !== null) {
if (Object.prototype.toString.call(r) === "[object Object]") {
r = r[q.type] || ["value"]
}
k = {};
for (s in r) {
if (r.hasOwnProperty(s)) {
if (r[s].indexOf(":") !== -1) {
o = r[s].split(":");
k[o[0]] = q[o[1]]
} else {
if (r[s] === "innerText") {
k[r[s]] = this.trim(q.innerText || q.textContent)
} else {
k[r[s]] = q[r[s]]
}
}
}
}
}
if (l === "select" && q.options && !isNaN(q.selectedIndex)) {
k.index = q.selectedIndex;
if (k.index >= 0 && k.index < q.options.length) {
m = q.options[q.selectedIndex];
k.value = m.getAttribute("value") || m.getAttribute("label") || m.text || m.innerText;
k.text = m.text || m.innerText
}
}
return k
},
getDocument: function(j) {
var k = j;
if (j && j.nodeType !== 9) {
if (j.getRootNode) {
k = j.getRootNode()
} else {
k = j.ownerDocument || j.document
}
}
return k
},
getWindow: function(k) {
try {
if (k.self !== k) {
var j = g.getDocument(k);
return (!g.isUndefOrNull(j.defaultView)) ? (j.defaultView) : (j.parentWindow)
}
} catch (l) {
k = null
}
return k
},
getOriginAndPath: function(j) {
var l = {}, k;
j = j || window.location;
if (j.origin) {
l.origin = j.origin
} else {
l.origin = (j.protocol || "") + "//" + (j.host || "")
}
l.path = (j.pathname || "").split(";", 1)[0];
if (l.origin.indexOf("file://") > -1) {
k = l.path.match(/(.*)(\/.*app.*)/);
if (k !== null) {
l.path = k[2]
}
}
return l
},
getQueryString: function(q) {
try {
q = q.replace("?", "") + "";
if (q.length) {
var l = q.split("&");
var m = {};
var p, o, j;
for (var k = 0; k < l.length; k++) {
p = (l[k]).split("=");
o = decodeURIComponent(p[0]);
if (o.length === 0) {
continue
}
j = decodeURIComponent(p[1]);
if (typeof m[o] === "undefined") {
m[o] = j
} else {
if (m[o]instanceof Array) {
m[o].push(j)
} else {
m[o] = [m[o], j]
}
}
}
return m
}
} catch (n) {
return ""
}
},
getIFrameWindow: function(l) {
var j = null;
if (!l) {
return j
}
try {
j = l.contentWindow || (l.contentDocument ? l.contentDocument.parentWindow : null)
} catch (k) {}
return j
},
getTagName: function(k) {
var j = "";
if (g.isUndefOrNull(k)) {
return j
}
if (k === document || k.nodeType === 9) {
j = "document"
} else {
if (k === window || k === window.window) {
j = "window"
} else {
if (typeof k === "string") {
j = k.toLowerCase()
} else {
if (k.tagName) {
j = k.tagName.toLowerCase()
} else {
if (k.nodeName) {
j = k.nodeName.toLowerCase()
} else {
j = ""
}
}
}
}
}
return j
},
getDcType: function(m) {
var j, l, k = "";
if (g.isUndefOrNull(m) || !m.type) {
return k
}
j = m.type.toLowerCase();
l = j + ":";
if (m.subType) {
l += m.subType.toLowerCase()
}
k = h[l] || j;
return k
},
isIFrameDescendant: function(k) {
var j = g.getWindow(k);
return (j ? (j != DCX._getLocalTop()) : false)
},
getOrientationMode: function(j) {
var k = "INVALID";
if (typeof j !== "number") {
return k
}
switch (j) {
case 0:
case 180:
case 360:
k = "PORTRAIT";
break;
case 90:
case -90:
case 270:
k = "LANDSCAPE";
break;
default:
k = "UNKNOWN";
break
}
return k
},
clog: (function(j) {
return function() {}
}(window)),
trim: function(j) {
if (!j || !j.toString) {
return j
}
return j.toString().replace(/^\s+|\s+$/g, "")
},
ltrim: function(j) {
if (!j || !j.toString) {
return j
}
return j.toString().replace(/^\s+/, "")
},
rtrim: function(j) {
if (!j || !j.toString) {
return j
}
return j.toString().replace(/\s+$/, "")
},
setCookie: function(t, k, r, v, o, j) {
var p, q, n, m, l = "", u, s = j ? ";secure" : "";
if (!t) {
return
}
t = encodeURIComponent(t);
k = encodeURIComponent(k);
n = (o || location.hostname).split(".");
u = ";path=" + (v || "/");
if (typeof r === "number") {
if (this.isIE) {
m = new Date();
m.setTime(m.getTime() + (r * 1000));
l = ";expires=" + m.toUTCString()
} else {
l = ";max-age=" + r
}
}
for (q = n.length,
p = (q === 1 ? 1 : 2); p <= q; p += 1) {
document.cookie = t + "=" + k + ";domain=" + n.slice(-p).join(".") + u + l + s;
if (this.getCookieValue(t) === k) {
break
}
if (q === 1) {
document.cookie = t + "=" + k + u + l + s
}
}
},
getCookieValue: function(p, r) {
var m, n, l, q, k = null, j;
try {
r = r || document.cookie;
if (!p || !p.toString) {
return null
}
p += "=";
j = p.length;
q = r.split(";");
for (m = 0,
n = q.length; m < n; m += 1) {
l = q[m];
l = g.ltrim(l);
if (l.indexOf(p) === 0) {
k = l.substring(j, l.length);
break
}
}
} catch (o) {
k = null
}
return k
},
getQueryStringValue: function(o, r, k) {
var n, m, s, l = null, p;
try {
k = k || window.location.search;
s = k.length;
if (!o || !o.toString || !s) {
return null
}
r = r || "&";
k = r + k.substring(1);
o = r + o + "=";
n = k.indexOf(o);
if (n !== -1) {
p = n + o.length;
m = k.indexOf(r, p);
if (m === -1) {
m = s
}
l = decodeURIComponent(k.substring(p, m))
}
} catch (q) {}
return l
},
addEventListener: (function() {
if (window.addEventListener) {
return function(k, j, l) {
k.addEventListener(j, l, false)
}
}
return function(k, j, l) {
k.attachEvent("on" + j, l)
}
}()),
matchTarget: function(u, q) {
var o, m, n, t = -1, s, k, l, p, r, v = document;
if (!u || !q) {
return t
}
if (!this.browserService || !this.browserBaseService) {
this.browserService = DCX.getService("browser");
this.browserBaseService = DCX.getService("browserBase")
}
if (q.idType === -2) {
n = this.browserBaseService.getNodeFromID(q.id, q.idType);
v = this.getDocument(n)
}
for (o = 0,
p = u.length; o < p && t === -1; o += 1) {
r = u[o];
if (typeof r === "string") {
s = this.browserService.queryAll(r, v);
for (m = 0,
k = s ? s.length : 0; m < k; m += 1) {
if (s[m]) {
l = this.browserBaseService.ElementData.prototype.examineID(s[m]);
if (l.idType === q.idType && l.id === q.id) {
t = o;
break
}
}
}
} else {
if (r && r.id && r.idType && q.idType && q.idType.toString() === r.idType.toString()) {
switch (typeof r.id) {
case "string":
if (r.id === q.id) {
t = o
}
break;
case "object":
if (!r.cRegex) {
r.cRegex = new RegExp(r.id.regex,r.id.flags)
}
r.cRegex.lastIndex = 0;
if (r.cRegex.test(q.id)) {
t = o
}
break
}
}
}
}
return t
},
WeakMap: (function() {
function j(n, m) {
var l, k;
n = n || [];
for (l = 0,
k = n.length; l < k; l += 1) {
if (n[l][0] === m) {
return l
}
}
return -1
}
return function() {
var k = [];
this.set = function(m, n) {
var l = j(k, m);
k[l > -1 ? l : k.length] = [m, n]
}
;
this.get = function(m) {
var l = k[j(k, m)];
return (l ? l[1] : undefined)
}
;
this.clear = function() {
k = []
}
;
this.has = function(l) {
return (j(k, l) >= 0)
}
;
this.remove = function(m) {
var l = j(k, m);
if (l >= 0) {
k.splice(l, 1)
}
}
;
this["delete"] = this.remove
}
}())
};
if (typeof DCX === "undefined" || !DCX) {
window.DCX = {}
}
DCX.utils = g
}());
(function() {
DCX.EventTarget = function() {
this._handlers = {}
}
;
DCX.EventTarget.prototype = {
constructor: DCX.EventTarget,
publish: function(c, f) {
var d = 0
, a = 0
, b = this._handlers[c]
, e = {
type: c,
data: f
};
if (typeof b !== "undefined") {
for (a = b.length; d < a; d += 1) {
b[d](e)
}
}
},
subscribe: function(a, b) {
if (!this._handlers.hasOwnProperty(a)) {
this._handlers[a] = []
}
this._handlers[a].push(b)
},
unsubscribe: function(c, e) {
var d = 0
, a = 0
, b = this._handlers[c];
if (b) {
for (a = b.length; d < a; d += 1) {
if (b[d] === e) {
b.splice(d, 1);
return
}
}
}
}
}
}());
DCX.ModuleContext = (function() {
var a = ["broadcast", "getConfig:getModuleConfig", "listen", "post", "getXPathFromNode", "performDOMCapture", "performFormCompletion", "isInitialized", "getStartTime", "normalizeUrl"];
return function(f, d) {
var h = {}
, g = 0
, b = a.length
, j = null
, e = null
, c = null;
for (g = 0; g < b; g += 1) {
j = a[g].split(":");
if (j.length > 1) {
c = j[0];
e = j[1]
} else {
c = j[0];
e = j[0]
}
h[c] = (function(i) {
return function() {
var k = d.utils.convertToArray(arguments);
k.unshift(f);
return d[i].apply(d, k)
}
}(e))
}
h.utils = d.utils;
return h
}
}());
DCX.addService("config", function(a) {
function d(f, e) {
a.utils.extend(true, f, e);
c.publish("configupdated", c.getConfig())
}
var b = {
core: {},
modules: {},
services: {}
}
, c = a.utils.extend(false, a.utils.createObject(new DCX.EventTarget()), {
getConfig: function() {
return b
},
updateConfig: function(e) {
d(b, e)
},
getCoreConfig: function() {
return b.core
},
updateCoreConfig: function(e) {
d(b.core, e)
},
getServiceConfig: function(e) {
return b.services[e] || {}
},
updateServiceConfig: function(f, e) {
if (typeof b.services[f] === "undefined") {
b.services[f] = {}
}
d(b.services[f], e)
},
getModuleConfig: function(e) {
return b.modules[e] || {}
},
updateModuleConfig: function(f, e) {
if (typeof b.modules[f] === "undefined") {
b.modules[f] = {}
}
d(b.modules[f], e)
},
destroy: function() {
b = {
core: {},
modules: {},
services: {}
}
}
});
return c
});
DCX.addService("queue", function(q) {
var K = q.utils
, k = null
, i = {}
, F = 1500000
, p = q.getService("ajax")
, c = q.getService("browser")
, e = q.getService("encoder")
, u = q.getService("serializer")
, D = q.getService("config")
, r = q.getService("message")
, z = null
, m = {}
, H = true
, h = true
, y = {
5: {
limit: 300,
count: 0
},
6: {
limit: 400,
count: 0
}
}
, d = []
, B = false
, t = (function() {
var Q = {};
function T(U) {
return typeof Q[U] !== "undefined"
}
function M(U, V) {
if (!T(U)) {
Q[U] = {
lastOffset: 0,
data: [],
queueId: U,
url: V.url,
eventThreshold: V.eventThreshold,
sizeThreshold: V.sizeThreshold || 0,
timerInterval: V.timerInterval,
size: -1,
serializer: V.serializer,
encoder: V.encoder,
crossDomainEnabled: !!V.crossDomainEnabled,
crossDomainIFrame: V.crossDomainIFrame
}
}
return Q[U]
}
function O(U) {
if (T(U)) {
delete Q[U]
}
}
function R(U) {
if (T(U)) {
return Q[U]
}
return null
}
function P(V) {
var U = R(V);
if (U !== null) {
U.data = []
}
}
function S(U) {
var V = null;
if (T(U)) {
V = R(U).data;
P(U)
}
return V
}
function N(W, Y) {
var U = null
, X = null
, aa = window.dcBridge
, V = window.iOSJSONShuttle;
try {
X = u.serialize(Y)
} catch (Z) {
X = "Serialization failed: " + (Z.name ? Z.name + " - " : "") + Z.message;
Y = {
error: X
}
}
if ((typeof aa !== "undefined") && (typeof aa.addMessage === "function")) {
aa.addMessage(X)
} else {
if ((typeof V !== "undefined") && (typeof V === "function")) {
V(X)
} else {
if (T(W)) {
U = R(W);
U.data.push(Y);
U.data = q.redirectQueue(U.data);
if (U.sizeThreshold) {
X = u.serialize(U.data);
U.size = X.length
}
return U.data.length
}
}
}
return 0
}
return {
exists: T,
add: M,
remove: O,
reset: function() {
Q = {}
},
get: R,
clear: P,
flush: S,
push: N
}
}());
function n(M) {
if (M && M.id) {
K.extend(true, d[M.id - 1], {
xhrRspEnd: r.createMessage({
type: 0
}).offset,
success: M.success,
statusCode: M.statusCode,
statusText: M.statusText
})
}
}
function w() {
return window.location.pathname
}
function A(O, S, P, R) {
var M = t.get(O)
, Q = {
name: S,
value: P
}
, N = null;
if (typeof S !== "string" || typeof P !== "string") {
return
}
if (!M.headers) {
M.headers = {
once: [],
always: []
}
}
N = !!R ? M.headers.always : M.headers.once;
N.push(Q)
}
function g(O, R) {
var Q = 0
, N = 0
, M = t.get(O)
, S = M.headers
, P = null;
R = R || {};
function T(V, X) {
var W = 0
, U = 0
, Y = null;
for (W = 0,
U = V.length; W < U; W += 1) {
Y = V[W];
X[Y.name] = Y.value
}
}
if (S) {
P = [S.always, S.once];
for (Q = 0,
N = P.length; Q < N; Q += 1) {
T(P[Q], R)
}
}
return R
}
function o(N) {
var M = null
, O = null;
if (!t.exists(N)) {
throw new Error("Queue: " + N + " does not exist!")
}
M = t.get(N);
O = M ? M.headers : null;
if (O) {
O.once = []
}
}
function l() {
var N = 0, M, P, O = q.provideRequestHeaders();
if (O && O.length) {
for (N = 0,
M = O.length; N < M; N += 1) {
P = O[N];
A("DEFAULT", P.name, P.value, P.recurring)
}
}
return N
}
function J(Q) {
var P, M, O = [], N = "";
if (!Q || !Q.length) {
return N
}
for (P = 0,
M = Q.length; P < M; P += 1) {
O[Q[P].type] = true
}
for (P = 0,
M = O.length; P < M; P += 1) {
if (O[P]) {
if (N) {
N += ","
}
N += P
}
}
return N
}
function j(ab, R) {
var V = t.get(ab), ad = V.url ? t.flush(ab) : null, O = ad ? ad.length : 0, Q = {
"Content-Type": "application/json",
"X-PageId": q.getPageId(),
"X-Discover": "device (UIC) Lib/12.1.12",
"X-DiscoverType": "GUI",
"X-Discover-Page-Url": w(),
"X-Discover-SyncXHR": (!!R).toString()
}, P = null, M = r.createMessage({
type: 0
}).offset, Z = V.serializer || "json", N = V.encoder, X, S, U, ac = q.getState() === "unloading", aa = null, ae = k.dcxWorker || null;
if (!O || !V) {
return
}
U = M - ad[O - 1].offset;
if (U > (F + 60000)) {
return
}
V.lastOffset = ad[O - 1].offset;
Q["X-Discover-MessageTypes"] = J(ad);
ad = r.wrapMessages(ad);
if (k.xhrLogging) {
P = ad.serialNumber;
d[P - 1] = {
serialNumber: P,
xhrReqStart: M
};
ad.log = {
xhr: d
}
}
l();
g(ab, Q);
function T() {
var af = {
state: false,
error: "Failed to load worker file."
};
DCX.logCustomEvent("workerStatus", af, 6);
k.dcxWorker = null;
ae = null;
DCX.setWorkerStatus(false)
}
function W() {
return new Promise(function(ag, af) {
ae.onerror = function(ah) {
T()
}
;
ae.onmessageerror = function(ah) {
T()
}
;
ae.onmessage = function(ai) {
var ah;
ah = ai.data;
n(ah)
}
}
)
}
if (ae && !DCX.getWorkerStatus()) {
W().then(function() {
console.log("Worker successfully loaded");
workerLoaded = true;
DCX.setWorkerStatus(true)
})
}
if (ae && !(R || ac)) {
ae.postMessage({
id: P,
url: V.url,
headers: Q,
data: ad,
isUnloading: ac
})
} else {
if (Z) {
ad = u.serialize(ad, Z)
}
if (N) {
S = e.encode(ad, N);
if (S) {
if (S.data && !S.error) {
ad = S.data;
Q["Content-Encoding"] = S.encoding
} else {
ad = S.error
}
}
}
if (V.crossDomainEnabled) {
aa = K.getIFrameWindow(V.crossDomainIFrame);
if (!aa) {
return
}
X = {
request: {
id: P,
url: V.url,
async: !R,
headers: Q,
data: ad
}
};
if (!K.isIE && typeof window.postMessage === "function") {
aa.postMessage(X, V.crossDomainIFrame.src)
} else {
try {
aa.sendMessage(X)
} catch (Y) {
return
}
}
} else {
p.sendRequest({
id: P,
oncomplete: n,
url: V.url,
async: !R,
isUnloading: ac,
headers: Q,
data: ad
})
}
}
o(ab)
}
function I(Q) {
var N = null
, P = k.queues
, O = 0;
try {
if (P && P.length && P.length > 0) {
for (O = 0; O < P.length; O += 1) {
N = P[O];
j(N.qid, Q)
}
return true
}
} catch (M) {
return false
}
}
function L(N, S) {
var U, O = r.createMessage(S), T = t.get(N), aa, M, Q;
var Y = O.screenViewPath
, P = q.getCoreConfig()
, Z = P && P.screenViewAllowlist || []
, R = P && P.screenViewBlocklist || [];
if (Z && Z.length) {
var X = DCX.isScreenviewInAccessList(Y, Z);
if (!X) {
return
}
}
if (R && R.length) {
var W = DCX.isScreenviewInAccessList(Y, R);
if (W) {
return
}
}
U = T.data.length;
if (U) {
M = O.offset - T.data[U - 1].offset;
if (M > F) {
t.flush(N);
var V = {
destroyedReason: "UIC destroyed while Safety check to ensure the data to be added is not stale beyond the inactivity timeout.",
destroyedBy: "queueManager"
};
DCX.setState("addToQueue", V);
q.destroy();
return
}
}
U = t.push(N, O);
aa = T.size;
if ((U >= T.eventThreshold || aa >= T.sizeThreshold) && H && q.getState() !== "unloading") {
Q = q.getCurrentWebEvent();
if (Q.type === "click" && q.getState() == "unloading" && U > 0) {
if (h) {
h = false;
window.setTimeout(function() {
if (t.exists(N)) {
j(N);
h = true
}
}, 500)
}
} else {
j(N)
}
}
}
function a(O) {
var M, N = false;
if (!O || !O.type) {
return true
}
M = y[O.type];
if (M) {
M.count += 1;
if (M.count > M.limit) {
N = true;
if (M.count === M.limit + 1) {
L("DEFAULT", {
type: 16,
dataLimit: {
messageType: O.type,
maxCount: M.limit
}
})
}
}
}
return N
}
function G(O) {
var N = null
, R = k.queues
, Q = ""
, P = 0
, M = 0;
for (P = 0; P < R.length; P += 1) {
N = R[P];
if (N && N.modules) {
for (M = 0; M < N.modules.length; M += 1) {
Q = N.modules[M];
if (Q === O) {
return N.qid
}
}
}
}
return z.qid
}
function x(O, M) {
m[O] = window.setTimeout(function N() {
j(O);
m[O] = window.setTimeout(N, M)
}, M)
}
function f(N) {
var M = false;
if (N && m[N]) {
window.clearTimeout(m[N]);
delete m[N];
M = true
}
return M
}
function v() {
var M = 0;
for (M in m) {
if (m.hasOwnProperty(M)) {
f(M)
}
}
m = {}
}
function b(N) {
var M;
if (!N) {
return
}
if (f(N)) {
M = t.get(N);
if (M.timerInterval) {
x(N, M.timerInterval)
}
}
}
function E(M) {}
function s(M) {
k = M;
i = q.getCoreConfig();
F = K.getValue(i, "inactivityTimeout", 600000);
K.forEach(k.queues, function(N, O) {
var P = null;
if (N.qid === "DEFAULT") {
z = N
}
if (N.crossDomainEnabled) {
P = c.query(N.crossDomainFrameSelector);
if (!P) {
q.fail("Cross domain iframe not found")
}
}
t.add(N.qid, {
url: N.endpoint,
eventThreshold: N.maxEvents,
sizeThreshold: N.maxSize || 0,
serializer: N.serializer,
encoder: N.encoder,
timerInterval: N.timerInterval || 0,
crossDomainEnabled: N.crossDomainEnabled || false,
crossDomainIFrame: P
});
if (typeof N.timerInterval !== "undefined" && N.timerInterval > 0) {
x(N.qid, N.timerInterval)
}
});
D.subscribe("configupdated", E);
B = true
}
function C() {
if (H) {
I(!k.asyncReqOnUnload)
}
D.unsubscribe("configupdated", E);
v();
t.reset();
k = null;
z = null;
B = false
}
return {
init: function() {
if (!B) {
s(D.getServiceConfig("queue") || {})
} else {}
},
destroy: function() {
C()
},
_getQueue: function(M) {
return t.get(M).data
},
setAutoFlush: function(M) {
if (M === true) {
H = true
} else {
H = false
}
},
flush: function(M) {
M = M || z.qid;
if (!t.exists(M)) {
throw new Error("Queue: " + M + " does not exist!")
}
j(M)
},
flushAll: function(M) {
return I(!!M)
},
post: function(N, O, M) {
if (!q.isInitialized()) {
return
}
M = M || G(N);
if (!t.exists(M)) {
return
}
if (!a(O)) {
L(M, O)
}
},
resetFlushTimer: function(M) {
M = M || z.qid;
if (!t.exists(M)) {
return
}
b(M)
}
}
});
DCX.addService("browserBase", function(r) {
var g, L = r.utils, h = {
optgroup: true,
option: true,
nobr: true
}, p = {}, e, m = null, A, w, f, q, F = false;
function s() {
e = r.getService("config");
m = r.getService("serializer");
A = e ? e.getServiceConfig("browser") : {};
w = A.hasOwnProperty("blacklist") ? A.blacklist : [];
f = A.hasOwnProperty("customid") ? A.customid : []
}
function b() {
s();
if (e) {
e.subscribe("configupdated", s)
}
F = true
}
function G() {
if (e) {
e.unsubscribe("configupdated", s)
}
F = false
}
function v(P) {
var N, M, O;
if (!P || !P.id || typeof P.id !== "string") {
return false
}
for (N = 0,
M = w.length; N < M; N += 1) {
if (typeof w[N] === "string") {
if (P.id === w[N]) {
return false
}
} else {
if (typeof w[N] === "object") {
if (!w[N].cRegex) {
w[N].cRegex = new RegExp(w[N].regex,w[N].flags)
}
w[N].cRegex.lastIndex = 0;
if (w[N].cRegex.test(P.id)) {
return false
}
}
}
}
return true
}
function o(O, P) {
var M = {
type: null,
subType: null
}, N;
if (!O) {
return M
}
N = O.type;
switch (N) {
case "focusin":
N = "focus";
break;
case "focusout":
N = "blur";
break;
default:
break
}
M.type = N;
return M
}
function y(N) {
var M = {
type: null,
subType: null
};
if (!N) {
return M
}
M.type = L.getTagName(N);
M.subType = N.type || null;
return M
}
function c(M, O, N) {
var S = {
HTML_ID: "-1",
XPATH_ID: "-2",
ATTRIBUTE_ID: "-3"
}, R, P = null, Q;
if (!M || !O) {
return P
}
R = N || window.document;
O = O.toString();
if (O === S.HTML_ID) {
if (R.getElementById) {
P = R.getElementById(M)
} else {
if (R.querySelector) {
P = R.querySelector("#" + M)
}
}
} else {
if (O === S.ATTRIBUTE_ID) {
Q = M.split("=");
if (R.querySelector) {
P = R.querySelector("[" + Q[0] + '="' + Q[1] + '"]')
}
} else {
if (O === S.XPATH_ID) {
P = p.xpath(M, R)
}
}
}
return P
}
q = (function() {
var M = {
nobr: true,
p: true
};
return function(S, P) {
var V, T, ac = document.documentElement, U = false, aa = null, R = null, Y = null, Z = [], N, X = true, Q = r._getLocalTop(), O = "", W = false, ad;
while (X) {
X = false;
O = L.getTagName(S);
if (O && !W) {
if (M[O]) {
S = S.parentNode;
X = true;
continue
}
}
for (U = v(S); S && [1, 9].indexOf(S.nodeType) > -1 && S !== document && (P || !U); U = v(S)) {
Y = S.parentNode;
if (!Y) {
R = L.getWindow(S);
if (!R) {
return Z
}
Y = (R !== Q) ? R.frameElement : ac
}
aa = Y.firstChild;
if (!aa) {
Z.push(["XPath Error(1)"]);
S = null;
break
}
for (T = 0; aa; aa = aa.nextSibling) {
if (aa.nodeType === 1 && L.getTagName(aa) === O) {
if (aa === S) {
N = [O, T];
if (W) {
N.push("h");
W = false
}
Z[Z.length] = N;
break
}
T += 1
}
}
if (Y.nodeType === 11) {
S = Y.host;
W = true
} else {
S = Y
}
O = L.getTagName(S)
}
if (U && !P) {
N = [S.id];
if (W) {
N.push("h");
W = false
}
Z[Z.length] = N;
if (L.isIFrameDescendant(S)) {
X = true;
S = L.getWindow(S).frameElement
} else {
try {
if (!ac.contains(S)) {
X = true;
ad = S.getRootNode();
S = ad.host;
W = true
}
} catch (ab) {}
}
}
}
return Z.reverse()
}
}());
function C(M) {
var N = "null";
if (!M || !M.length) {
return N
}
N = m.serialize(M, "json");
return N
}
function u(O, N, Q) {
var P, M;
M = q(O, !!N);
if (Q) {
P = M
} else {
P = C(M)
}
return P
}
function K(N) {
var O = {
left: -1,
top: -1
}, M;
N = N || document;
M = N.documentElement || N.body.parentNode || N.body;
O.left = Math.round((typeof window.pageXOffset === "number") ? window.pageXOffset : M.scrollLeft);
O.top = Math.round((typeof window.pageYOffset === "number") ? window.pageYOffset : M.scrollTop);
return O
}
function J(M) {
return M && typeof M.originalEvent !== "undefined" && typeof M.isDefaultPrevented !== "undefined" && !M.isSimulated
}
function j(M) {
if (!M) {
return null
}
if (M.type && M.type.indexOf("touch") === 0) {
if (J(M)) {
M = M.originalEvent
}
if (M.type === "touchstart") {
M = M.touches[M.touches.length - 1]
} else {
if (M.type === "touchend") {
M = M.changedTouches[0]
}
}
}
return M
}
function t(P) {
var S = P || window.event
, R = document.documentElement
, M = document.body
, Q = false
, O = null
, N = 0;
if (J(S)) {
S = S.originalEvent
}
if (typeof P === "undefined" || typeof S.target === "undefined") {
S.target = S.srcElement || window.window;
S.timeStamp = Number(new Date());
if (S.pageX === null || typeof S.pageX === "undefined") {
S.pageX = S.clientX + ((R && R.scrollLeft) || (M && M.scrollLeft) || 0) - ((R && R.clientLeft) || (M && M.clientLeft) || 0);
S.pageY = S.clientY + ((R && R.scrollTop) || (M && M.scrollTop) || 0) - ((R && R.clientTop) || (M && M.clientTop) || 0)
}
S.preventDefault = function() {
this.returnValue = false
}
;
S.stopPropagation = function() {
this.cancelBubble = true
}
}
if (window.chrome && S.path !== undefined && S.type === "click") {
if (S.path.length === undefined) {
return S
}
for (N = 0; N < S.path.length; N++) {
if (L.getTagName(S.path[N]) === "button") {
Q = true;
O = S.path[N];
N = S.path.length
}
}
if (Q) {
return {
originalEvent: S,
target: O,
srcElement: O,
type: S.type,
pageX: document.body.scrollLeft + O.getBoundingClientRect().left,
pageY: document.body.scrollTop + O.getBoundingClientRect().top
}
}
}
return S
}
function x(O) {
var N, M, P, Q = null;
if (!O || !O.type) {
return null
}
if (O.type.indexOf("touch") === 0) {
Q = j(O).target
} else {
if (typeof O.composedPath === "function") {
P = O.composedPath();
if (P && P.length) {
Q = P[0];
for (N = 0,
M = P.length; N < M; N += 1) {
if (L.getTagName(P[N]) === "a") {
Q = P[N];
break
}
}
} else {
Q = O.target || window.window
}
} else {
if (O.srcElement) {
Q = O.srcElement
} else {
Q = O.target
}
}
}
while (Q && h[L.getTagName(Q)]) {
if (Q.parentElement) {
Q = Q.parentElement
} else {
break
}
}
return Q
}
function I(N) {
var Q = 0
, P = 0
, O = document.documentElement
, M = document.body;
N = j(N);
if (N) {
if (N.pageX || N.pageY) {
Q = N.pageX;
P = N.pageY
} else {
if (N.clientX || N.clientY) {
Q = N.clientX + (O ? O.scrollLeft : (M ? M.scrollLeft : 0)) - (O ? O.clientLeft : (M ? M.clientLeft : 0));
P = N.clientY + (O ? O.scrollTop : (M ? M.scrollTop : 0)) - (O ? O.clientTop : (M ? M.clientTop : 0))
}
}
}
return {
x: Q,
y: P
}
}
p.xpath = function(U, W) {
var S = null, N, T = null, X = false, M, Q, P, O, R, V;
if (!U) {
return null
}
S = m.parse(U);
W = W || document;
N = W;
if (!S) {
return null
}
for (Q = 0,
R = S.length; Q < R && N; Q += 1) {
T = S[Q];
X = T.length > 1 && T[T.length - 1] === "h";
if (T.length === 1 || (T.length === 2 && X)) {
if (W.getElementById) {
N = W.getElementById(T[0])
} else {
if (W.querySelector) {
N = W.querySelector("#" + T[0])
} else {
N = null
}
}
} else {
for (P = 0,
O = -1,
V = N.childNodes.length; P < V; P += 1) {
if (N.childNodes[P].nodeType === 1 && L.getTagName(N.childNodes[P]) === T[0].toLowerCase()) {
O += 1;
if (O === T[1]) {
N = N.childNodes[P];
break
}
}
}
if (O !== T[1]) {
return null
}
}
if (!N) {
return null
}
if (X) {
if (Q < R - 1) {
if (!N.shadowRoot) {
return null
}
N = N.shadowRoot;
W = N
}
}
M = L.getTagName(N);
if (M === "frame" || M === "iframe") {
N = L.getIFrameWindow(N).document;
W = N
}
}
return (N === W || !N) ? null : N
}
;
function l(M, N) {
this.x = Math.round(M || 0);
this.y = Math.round(N || 0)
}
function a(N, M) {
this.width = Math.round(N || 0);
this.height = Math.round(M || 0)
}
function d(N, O) {
var Q, M, P;
O = x(N);
Q = this.examineID(O);
M = y(O);
P = this.examinePosition(N, O);
this.element = O;
this.id = Q.id;
this.idType = Q.idType;
this.type = M.type;
this.subType = M.subType;
this.state = this.examineState(O);
this.position = new l(P.x,P.y);
this.size = new a(P.width,P.height);
this.xPath = Q.xPath;
this.name = Q.name
}
d.HTML_ID = -1;
d.XPATH_ID = -2;
d.ATTRIBUTE_ID = -3;
d.prototype.examineID = function(S, N) {
var Q = {
id: "",
idType: 0,
xPath: "",
name: ""
}, M = f.length, P, O = document.documentElement, T;
if (!S) {
return Q
}
Q.xPath = u(S);
Q.name = S.name;
try {
T = typeof O.contains === "function" ? O.contains(S) : true;
if ((T || N) && (!L.getWindow(S) || !L.isIFrameDescendant(S))) {
if (v(S)) {
Q.id = S.id;
Q.idType = d.HTML_ID
} else {
if (f.length && S.attributes) {
while (M) {
M -= 1;
P = S.attributes[f[M]];
if (typeof P !== "undefined") {
Q.id = f[M] + "=" + (P.value || P);
Q.idType = d.ATTRIBUTE_ID
}
}
}
}
}
} catch (R) {}
if (!Q.id) {
Q.id = Q.xPath;
if (Q.id !== "null") {
Q.idType = d.XPATH_ID
}
}
return Q
}
;
d.prototype.examineState = function(M) {
return L.getTargetState(M)
}
;
function E() {
var N = 1, O, Q, M;
if (document.body.getBoundingClientRect) {
try {
O = document.body.getBoundingClientRect()
} catch (P) {
return N
}
Q = O.right - O.left;
M = document.body.offsetWidth;
N = Math.round((Q / M) * 100) / 100
}
return N
}
function n(N) {
var P, M, O, R;
if (!N || !N.getBoundingClientRect) {
return {
x: 0,
y: 0,
width: 0,
height: 0
}
}
try {
P = N.getBoundingClientRect();
R = K(document)
} catch (Q) {
return {
x: 0,
y: 0,
width: 0,
height: 0
}
}
M = {
x: P.left + R.left,
y: P.top + R.top,
width: P.right - P.left,
height: P.bottom - P.top
};
if (L.isIE) {
M.x -= document.documentElement.clientLeft;
M.y -= document.documentElement.clientTop;
O = E();
if (O !== 1) {
M.x = Math.round(M.x / O);
M.y = Math.round(M.y / O);
M.width = Math.round(M.width / O);
M.height = Math.round(M.height / O)
}
}
return M
}
d.prototype.examinePosition = function(N, O) {
var P = I(N)
, M = n(O);
M.x = (P.x || P.y) ? Math.round(Math.abs(P.x - M.x)) : M.width / 2;
M.y = (P.x || P.y) ? Math.round(Math.abs(P.y - M.y)) : M.height / 2;
return M
}
;
function H() {
var M = (typeof window.orientation === "number") ? window.orientation : 0;
if (L.isLandscapeZeroDegrees) {
if (Math.abs(M) === 180 || Math.abs(M) === 0) {
M = 90
} else {
if (Math.abs(M) === 90) {
M = 0
}
}
}
return M
}
function B(S) {
var P, M, R, Q, O, N;
if (S) {
return S
}
R = r.getCoreConfig() || {};
O = R.modules;
S = {};
for (N in O) {
if (O.hasOwnProperty(N) && O[N].events) {
for (P = 0,
M = O[N].events.length; P < M; P += 1) {
Q = O[N].events[P];
if (Q.state) {
S[Q.name] = Q.state
}
}
}
}
return S
}
function i(M) {
var N;
g = B(g);
if (g[M.type]) {
N = L.getValue(M, g[M.type], null)
}
return N
}
function k(N) {
var P, M, O;
this.data = N.data || null;
this.delegateTarget = N.delegateTarget || null;
if (N.gesture || (N.originalEvent && N.originalEvent.gesture)) {
this.gesture = N.gesture || N.originalEvent.gesture;
this.gesture.idType = (new d(this.gesture,this.gesture.target)).idType
}
N = t(N);
P = I(N);
this.custom = false;
this.nativeEvent = this.custom === true ? null : N;
this.position = new l(P.x,P.y);
this.target = new d(N,N.target);
this.orientation = H();
O = i(N);
if (O) {
this.target.state = O
}
this.timestamp = (new Date()).getTime();
M = o(N, this.target);
this.type = M.type;
this.subType = M.subType
}
function D(M) {
if (r.isInitialized()) {
r._publishEvent(new k(M))
} else {}
}
function z(R) {
var Q = "", O = [], N, M = "", P = [];
if (!(this instanceof z)) {
return null
}
if (typeof R !== "object" || !R.nodeType) {
this.fullXpath = "";
this.xpath = "";
this.fullXpathList = [];
this.xpathList = [];
return
}
if (R.nodeType === 3) {
R = R.parentElement
}
P = q(R, false);
N = P[0];
if (P.length && (N.length === 1 || (N.length === 2 && N[1] === "h"))) {
O = q(R, true)
} else {
O = L.clone(P)
}
this.xpath = C(P);
this.xpathList = P;
this.fullXpath = C(O);
this.fullXpathList = O;
this.applyPrefix = function(U) {
var S, T;
if (!(U instanceof z) || !U.fullXpathList.length) {
return
}
T = U.fullXpathList[U.fullXpathList.length - 1];
S = this.fullXpathList.shift();
if (L.isEqual(S[0], T[0])) {
this.fullXpathList = U.fullXpathList.concat(this.fullXpathList)
} else {
this.fullXpathList.unshift(S);
return
}
this.fullXpath = C(this.fullXpathList);
S = this.xpathList.shift();
if (S.length === 1) {
this.xpathList.unshift(S);
return
}
this.xpathList = U.xpathList.concat(this.xpathList);
this.xpath = C(this.xpathList)
}
;
this.compare = function(S) {
if (!(S instanceof z)) {
return 0
}
return (this.fullXpathList.length - S.fullXpathList.length)
}
;
this.isSame = function(S) {
var T = false;
if (!(S instanceof z)) {
return T
}
if (this.compare(S) === 0) {
T = (this.fullXpath === S.fullXpath)
}
return T
}
;
this.containedIn = function(U, T) {
var W, V, S, X;
if (!(U instanceof z)) {
return false
}
if (U.fullXpathList.length > this.fullXpathList.length) {
return false
}
for (W = 0,
S = U.fullXpathList.length; W < S; W += 1) {
if (!L.isEqual(U.fullXpathList[W], this.fullXpathList[W])) {
return false
}
}
if (!T) {
for (V = W,
S = this.fullXpathList.length; V < S; V += 1) {
X = this.fullXpathList[V];
if (X[X.length - 1] === "h") {
return false
}
}
}
return true
}
}
z.prototype = (function() {
return {}
}());
return {
init: function() {
if (!F) {
b()
} else {}
},
destroy: function() {
G()
},
WebEvent: k,
ElementData: d,
Xpath: z,
processDOMEvent: D,
getNormalizedOrientation: H,
getXPathFromNode: function(N, O, M, P) {
return u(O, M, P)
},
getNodeFromID: c,
queryDom: p
}
});
DCX.addService("browser", function(d) {
var m = d.utils
, h = d.getService("config")
, f = d.getService("browserBase")
, n = d.getService("ajax")
, g = null
, c = null
, k = h ? h.getServiceConfig("browser") : {}
, b = m.getValue(k, "useCapture", true)
, l = false
, e = {
NO_QUERY_SELECTOR: "NOQUERYSELECTOR"
}
, p = function(q) {
return function(s) {
var r = new f.WebEvent(s);
if (s.type === "resize" || s.type === "hashchange") {
setTimeout(function() {
q(r)
}, 5)
} else {
q(r)
}
}
}
, a = {
list2Array: function(s) {
var r = s.length, q = [], t;
if (typeof s.length === "undefined") {
return [s]
}
for (t = 0; t < r; t += 1) {
q[t] = s[t]
}
return q
},
find: function(s, r, q) {
q = q || "css";
return this.list2Array(this[q](s, r))
},
css: function(r, u) {
var v = this
, y = null
, w = document.getElementsByTagName("body")[0]
, x = k.jQueryObject ? m.access(k.jQueryObject) : window.jQuery
, t = k.sizzleObject ? m.access(k.sizzleObject) : window.Sizzle;
if (typeof document.querySelectorAll === "undefined") {
v.css = function(A, z) {
z = z || document;
return v.Sizzle(A, z)
}
;
if (typeof v.Sizzle === "undefined") {
try {
if (w === t("html > body", document)[0]) {
v.Sizzle = t
}
} catch (s) {
try {
if (w === x(document).find("html > body").get()[0]) {
v.Sizzle = function(A, z) {
return x(z).find(A).get()
}
}
} catch (q) {
d.fail("Neither querySelectorAll nor Sizzle was found.", e.NO_QUERY_SELECTOR)
}
}
}
} else {
v.css = function(A, z) {
z = z || document;
return z.querySelectorAll(A)
}
}
return v.css(r, u)
}
}
, o = (function() {
var q = new m.WeakMap();
return {
add: function(r) {
var s = q.get(r) || [p(r), 0];
s[1] += 1;
q.set(r, s);
return s[0]
},
find: function(r) {
var s = q.get(r);
return s ? s[0] : null
},
remove: function(r) {
var s = q.get(r);
if (s) {
s[1] -= 1;
if (s[1] <= 0) {
q.remove(r)
}
}
}
}
}());
function j() {
var r = k.jQueryObject ? m.access(k.jQueryObject) : window.jQuery
, q = k.sizzleObject ? m.access(k.sizzleObject) : window.Sizzle;
if (!document.querySelectorAll && !r && !q) {
d.fail("querySelectorAll does not exist!", e.NO_QUERY_SELECTOR)
}
}
function i() {
a.xpath = f.queryDom.xpath;
j();
if (typeof document.addEventListener === "function") {
g = function(s, q, r) {
s.addEventListener(q, r, b)
}
;
c = function(s, q, r) {
s.removeEventListener(q, r, b)
}
} else {
if (typeof document.attachEvent !== "undefined") {
g = function(s, q, r) {
s.attachEvent("on" + q, r)
}
;
c = function(s, q, r) {
s.detachEvent("on" + q, r)
}
} else {
throw new Error("Unsupported browser")
}
}
l = true
}
return {
init: function() {
if (!l) {
i()
} else {}
},
destroy: function() {
l = false
},
getServiceName: function() {
return "W3C"
},
query: function(t, r, q) {
try {
return a.find(t, r, q)[0] || null
} catch (s) {
return []
}
},
queryAll: function(t, r, q) {
try {
return a.find(t, r, q)
} catch (s) {
return []
}
},
subscribe: function(q, t, r) {
var s = o.add(r);
g(t, q, s)
},
unsubscribe: function(q, u, r) {
var s = o.find(r);
if (s) {
try {
c(u, q, s)
} catch (t) {}
o.remove(r)
}
}
}
});
DCX.addService("ajax", function(e) {
var k = e.utils, i, m = false, b = false, j = false;
function g(p) {
var o = ""
, n = [];
for (o in p) {
if (p.hasOwnProperty(o)) {
n.push([o, p[o]])
}
}
return n
}
function h(p) {
var o = ""
, n = "?";
for (o in p) {
if (p.hasOwnProperty(o)) {
n += encodeURIComponent(o) + "=" + encodeURIComponent(p[o]) + "&"
}
}
return n.slice(0, -1)
}
function l(n) {
var p, q = false, o = h(n.headers);
if (typeof n.data === "string") {
p = n.data
} else {
p = n.data ? new Uint8Array(n.data) : ""
}
q = navigator.sendBeacon(n.url + o, p);
return q
}
function f(o) {
var q = o.headers || {}
, p = o.id || 0
, n = o.oncomplete || function() {}
;
q["X-Requested-With"] = "fetch";
window.fetch(o.url, {
method: o.type,
headers: q,
body: o.data,
mode: "cors",
credentials: "omit",
keepalive: o.isUnloading,
cache: "no-store"
}).then(function(s) {
var r = {
success: s.ok,
statusCode: s.status,
statusText: s.statusText,
id: p
};
if (r.success) {
s.json().then(function(t) {
r.data = t;
n(r)
})["catch"](function(t) {
r.statusCode = 1;
r.statusText = t.message;
n(r)
});
n(r)
}
})["catch"](function(s) {
var r = {
success: false,
statusCode: 2,
statusText: s.message,
id: p
};
n(r);
o.headers["X-Requested-With"] = "";
d(o)
})
}
function a(o) {
if (typeof o !== "function") {
return
}
return function n(q) {
var s, p, r = false;
if (!q) {
return
}
s = q.target;
if (!s) {
return o(q)
}
p = s.status;
if (p >= 200 && p < 300) {
r = true
}
o({
headers: k.extractResponseHeaders(s.getAllResponseHeaders()),
responseText: s.responseText,
statusCode: p,
statusText: s.statusText,
id: s.id,
success: r
})
}
}
function d(v) {
var u = i(), o = [["X-Requested-With", "XMLHttpRequest"]], t = 0, p = typeof v.async !== "boolean" ? true : v.async, r = "", s = null, q, n;
if (v.headers) {
o = o.concat(g(v.headers))
}
if (v.contentType) {
o.push(["Content-Type", v.contentType])
}
u.open(v.type.toUpperCase(), v.url, p);
for (q = 0,
n = o.length; q < n; q += 1) {
r = o[q];
if (r[0] && r[1]) {
u.setRequestHeader(r[0], r[1])
}
}
if (v.error) {
v.error = a(v.error);
u.addEventListener("error", v.error)
}
u.onreadystatechange = s = function() {
if (u.readyState === 4) {
u.onreadystatechange = s = function() {}
;
if (v.timeout) {
window.clearTimeout(t)
}
v.oncomplete({
id: v.id,
headers: k.extractResponseHeaders(u.getAllResponseHeaders()),
responseText: (u.responseText || null),
statusCode: u.status,
statusText: u.statusText,
success: (u.status >= 200 && u.status < 300)
});
u = null
}
}
;
u.send(v.data || null);
s();
if (v.timeout) {
t = window.setTimeout(function() {
if (!u) {
return
}
u.onreadystatechange = function() {}
;
if (u.readyState !== 4) {
u.abort();
if (typeof v.error === "function") {
v.error({
id: v.id,
statusCode: u.status,
statusText: "timeout",
success: false
})
}
}
v.oncomplete({
id: v.id,
headers: k.extractResponseHeaders(u.getAllResponseHeaders()),
responseText: (u.responseText || null),
statusCode: u.status,
statusText: "timeout",
success: false
});
u = null
}, v.timeout)
}
}
function c() {
var n = e.getServiceConfig("queue");
if (typeof window.XMLHttpRequest !== "undefined") {
i = function() {
return new XMLHttpRequest()
}
} else {
i = function() {
return new ActiveXObject("Microsoft.XMLHTTP")
}
}
if (n) {
m = k.getValue(n, "useBeacon", true) && (typeof navigator.sendBeacon === "function");
b = k.getValue(n, "useFetch", true) && (typeof window.fetch === "function")
}
j = true
}
return {
init: function() {
if (!j) {
c()
}
},
destroy: function() {
j = false
},
sendRequest: function(n) {
var p = true, o;
n.type = n.type || "POST";
if ((n.isUnloading || !n.async) && m) {
p = false;
o = l(n);
if (!o) {
p = true
}
}
if (p) {
if (n.isUnloading && b) {
f(n)
} else {
d(n)
}
}
}
}
});
DCX.addService("domCapture", function(G) {
var m = G.getService("config"), n = G.getService("browserBase"), d = G.getService("browser"), C, k, h = {
maxMutations: 100,
maxLength: 1000000,
captureShadowDOM: false,
captureFrames: false,
removeScripts: true,
removeComments: true,
captureStyle: true,
removeBase64: 50000
}, aj = {
childList: true,
attributes: true,
attributeOldValue: true,
characterData: true,
subtree: true
}, j = {
attributes: true,
attributeOldValue: true,
subtree: true
}, a = (typeof window.MutationObserver !== "undefined"), E, P = aj, x, s = j, W = [], Q = [], D = [], ak = [], B = [], F = 0, N = 100, c = false, v = false, X = false, R = 1, y = function() {}, A = function() {}, I = function() {}, S = G._publishEvent, aq = G.utils;
function O() {
ak = [];
B = [];
F = 0;
c = false
}
function ae(av) {
var au, at, ar;
if (!av || !av.length) {
return
}
av = av.sort(function(ax, aw) {
return ax.compare(aw)
});
for (au = 0; au < av.length; au += 1) {
ar = av[au];
for (at = au + 1; at < av.length; at += 0) {
if (av[at].containedIn(ar)) {
av.splice(at, 1)
} else {
at += 1
}
}
}
}
function w(au) {
var at, ar;
if (!au) {
return au
}
for (at = 0,
ar = au.length; at < ar; at += 1) {
delete au[at].oldValue
}
return au
}
function aa(aw, au) {
var at, ar, av = -1;
if (!aw || !au) {
return av
}
for (at = 0,
ar = aw.length; at < ar; at += 1) {
if (aw[at].name === au) {
av = at;
break
}
}
return av
}
function H(av, ax) {
var au, at, ar, aw;
for (au = 0,
at = av.length,
aw = false; au < at; au += 1) {
ar = av[au];
if (ar.name === ax.name) {
if (ar.oldValue === ax.value) {
av.splice(au, 1)
} else {
ar.value = ax.value
}
aw = true;
break
}
}
if (!aw) {
av.push(ax)
}
return av
}
function V(ay, ar) {
var ax, av, au, az, aB, aA, aw, at = 0;
ay.removedNodes = ar.removedNodes.length;
ay.addedNodes = aq.convertToArray(ar.addedNodes);
for (ax = 0,
az = ak.length; ax < az; ax += 1) {
aA = ak[ax];
if (ay.isSame(aA)) {
if (ay.removedNodes) {
for (av = 0; av < ar.removedNodes.length; av += 1) {
au = aA.addedNodes.indexOf(ar.removedNodes[av]);
if (au !== -1) {
aA.addedNodes.splice(au, 1);
ay.removedNodes -= 1
}
}
}
aA.removedNodes += ay.removedNodes;
aA.addedNodes.concat(ay.addedNodes);
if (!aA.removedNodes && !aA.addedNodes.length) {
aw = false;
for (av = 0; av < ak.length; av += 1) {
if (aA !== ak[av] && ak[av].containedIn(aA)) {
aw = true;
break
}
}
if (!aw) {
ak.splice(ax, 1);
at = -1
}
}
aB = true;
break
}
}
if (!aB) {
ak.push(ay);
at = 1
}
return at
}
function ag(at, ax) {
var av, au, ar, ay = false, aw, az;
for (av = 0,
ar = ak.length; !ay && av < ar; av += 1) {
az = ak[av];
if (at.containedIn(az)) {
aw = az.addedNodes;
for (au = 0; au < aw.length; au += 1) {
if (aw[au].contains && aw[au].contains(ax)) {
ay = true;
break
}
}
}
}
return ay
}
function g(ar) {
var at = ar.attributeName;
return at === "type" && ar.oldValue === "password" && ar.target[at] === "text"
}
function l(ar) {
var au = G.getService("config")
, at = au.getServiceConfig("message");
if (at && at.maskVisiblePasswords) {
ar.target.setAttribute("dcxMaskVisiblePassword", true)
}
}
function af(ar) {
var at = g(ar);
if (at) {
l(ar)
}
}
function M(aw, ar) {
var au, ax, az, av, aA, ay = null, at = 0;
az = ar.attributeName;
if (g(ar)) {
l(ar);
return at
}
if (az === "checked" || az === "selected") {
ay = n.ElementData.prototype.examineID(ar.target);
if (C.isPrivacyMatched(ay)) {
return at
}
ay = null
}
if (az === "value") {
ay = n.ElementData.prototype.examineID(ar.target);
ay.currState = aq.getTargetState(ar.target) || {};
if (ay.currState.value) {
C.applyPrivacyToTarget(ay)
} else {
ay = null
}
}
aw.attributes = [{
name: az,
oldValue: ar.oldValue,
value: ay ? ay.currState.value : ar.target.getAttribute(az)
}];
av = aw.attributes[0];
if (av.oldValue === av.value) {
return at
}
for (au = 0,
ax = B.length,
aA = false; au < ax; au += 1) {
ay = B[au];
if (aw.isSame(ay)) {
ay.attributes = H(ay.attributes, av);
if (!ay.attributes.length) {
B.splice(au, 1);
at = -1
} else {
if (ag(aw, ar.target)) {
B.splice(au, 1);
at = -1
}
}
aA = true;
break
}
}
if (!aA && !ag(aw, ar.target)) {
B.push(aw);
at = 1
}
return at
}
function r(av) {
var ax, ar, aw, at, au;
if (!av || !av.length) {
return
}
if (c) {
F += av.length;
return
}
for (ax = 0,
ar = av.length; ax < ar && F < N; ax += 1) {
at = av[ax];
au = new n.Xpath(at.target);
if (au) {
aw = au.fullXpathList;
if (aw.length && aw[0][0] === "html") {
switch (at.type) {
case "characterData":
case "childList":
F += V(au, at);
break;
case "attributes":
F += M(au, at);
break;
default:
aq.clog("Unknown mutation type: " + at.type);
break
}
}
}
}
if (F >= N) {
c = true;
F += ar - ax
}
}
function ap() {
var av;
var ax, ar, aw, at, au;
av = new window.MutationObserver(function(ay) {
if (ay) {
if (!ay || !ay.length) {
return
}
for (ax = 0,
ar = ay.length; ax < ar && F < N; ax += 1) {
at = ay[ax];
au = new n.Xpath(at.target);
if (au) {
aw = au.fullXpathList;
if (aw.length && aw[0][0] === "html") {
switch (at.type) {
case "attributes":
af(at);
break;
default:
break
}
}
}
}
}
}
);
return av
}
function z() {
var ar;
ar = new window.MutationObserver(function(at) {
if (at) {
r(at);
aq.clog("Processed [" + at.length + "] mutation records.")
}
}
);
return ar
}
function o(at) {
var av, ar, au, az, ay, ax = m.getCoreConfig(), aw = m.getServiceConfig("message");
m.subscribe("configupdated", I);
C = G.getService("message");
k = at;
k.options = aq.mixin({}, h, k.options);
a = a && aq.getValue(k, "diffEnabled", true);
N = aq.getValue(k.options, "maxMutations", 100);
if (a) {
P = aq.getValue(k, "diffObserverConfig", aj);
E = z();
W.push(window)
}
if (!a && aw.maskVisiblePasswords) {
s = aq.getValue(k, "customObserverConfig", j);
x = ap();
W.push(window)
}
for (au in ax.modules) {
if (ax.modules.hasOwnProperty(au)) {
ay = ax.modules[au].events || [];
for (av = 0,
ar = ay.length; av < ar; av += 1) {
if (ay[av].attachToShadows) {
az = ay[av].name;
if (D.indexOf(az) === -1) {
D.push(az)
}
}
}
}
}
X = true
}
function ac() {
m.unsubscribe("configupdated", I);
if (E) {
E.disconnect()
}
if (x) {
x.disconnect()
}
X = false
}
function t() {
var ar;
ar = "tlt-" + aq.getSerialNumber();
return ar
}
function ad(au, at, ar) {
var aw, ay, ax, av, aA, az = [];
if (!au || !au.getElementsByTagName || !at) {
return az
}
if (ar && ar.length === 2) {
ay = ar[0];
ax = ar[1]
}
av = au.getElementsByTagName(at);
if (av && av.length) {
for (aw = av.length - 1; aw >= 0; aw -= 1) {
aA = av[aw];
if (!ay) {
az.push(aA)
} else {
if (aA[ay] === ax) {
az.push(aA)
}
}
}
}
return az
}
function i(ay, aw, ax) {
var av, au, az, at, ar;
if (!ay || !ay.getElementsByTagName || !aw) {
return
}
if (ax && ax.length === 2) {
au = ax[0];
az = ax[1]
}
at = ay.getElementsByTagName(aw);
if (at && at.length) {
for (av = at.length - 1; av >= 0; av -= 1) {
ar = at[av];
if (!au) {
ar.parentNode.removeChild(ar)
} else {
if (ar[au] === az) {
ar.parentNode.removeChild(ar)
}
}
}
}
return ay
}
function ao(aw, au) {
var av, ar, ax = ad(aw, "img"), at = new RegExp("^data:image/(.*?);base64");
for (av = 0; av < ax.length; av++) {
ar = ax[av];
if (at.test(ar.src) && (ar.src.length > au)) {
ar.src = "";
ar.setAttribute("removedByDCX", true)
}
}
return aw
}
function U(au, ar) {
var at, av;
for (at = 0; au.hasChildNodes() && at < au.childNodes.length; at += 1) {
av = au.childNodes[at];
if (av.nodeType === ar) {
au.removeChild(av);
at -= 1
} else {
if (av.hasChildNodes()) {
U(av, ar)
}
}
}
return au
}
function f(aw, av) {
var au, at, ar;
if (!aw || !aw.getElementsByTagName || !av) {
return
}
at = aw.querySelectorAll(av);
if (at && at.length) {
for (au = at.length - 1; au >= 0; au -= 1) {
ar = at[au];
ar.parentNode.removeChild(ar)
}
}
return aw
}
function ai(au) {
var at, ar = null;
if (!au || !au.doctype) {
return null
}
at = au.doctype;
if (at) {
ar = ""
}
return ar
}
function ah(ay, az) {
var ax, au, aw, av, at, ar;
if (!az) {
return
}
av = ay.getElementsByTagName("input");
at = az.getElementsByTagName("input");
if (at) {
for (ax = 0,
ar = at.length; ax < ar; ax += 1) {
au = av[ax];
aw = at[ax];
switch (aw.type) {
case "checkbox":
case "radio":
if (aq.isIE ? au.checked : aw.checked) {
aw.setAttribute("checked", "checked")
} else {
aw.removeAttribute("checked")
}
break;
default:
aw.setAttribute("value", aw.value);
if (!aw.getAttribute("type")) {
aw.setAttribute("type", "text")
}
break
}
}
}
}
function p(ay, az) {
var av, ar, ax, at, au, aw;
if (!ay || !ay.getElementsByTagName || !az || !az.getElementsByTagName) {
return
}
at = ay.getElementsByTagName("textarea");
aw = az.getElementsByTagName("textarea");
if (at && aw) {
for (av = 0,
ar = at.length; av < ar; av += 1) {
ax = at[av];
au = aw[av];
au.setAttribute("value", ax.value);
au.value = au.textContent = ax.value
}
}
}
function Z(ar, ax) {
var at, az, ay, aA, av, au, aw;
if (!ar || !ar.getElementsByTagName || !ax || !ax.getElementsByTagName) {
return
}
az = ar.getElementsByTagName("select");
aA = ax.getElementsByTagName("select");
if (az) {
for (av = 0,
aw = az.length; av < aw; av += 1) {
at = az[av];
ay = aA[av];
for (au = 0; au < at.options.length; au += 1) {
if (au === at.selectedIndex || at.options[au].selected) {
ay.options[au].setAttribute("selected", "selected")
} else {
ay.options[au].removeAttribute("selected")
}
}
}
}
}
function J(at) {
var ar, au = null;
if (at) {
ar = at.nodeType || -1;
switch (ar) {
case 11:
au = at.innerHTML;
break;
case 9:
au = at.documentElement ? at.documentElement.outerHTML : "";
break;
case 1:
au = at.outerHTML;
break;
default:
au = null;
break
}
}
return au
}
function an(au) {
var ar, at = false;
if (au && typeof au === "object") {
ar = au.nodeType || -1;
switch (ar) {
case 9:
case 1:
at = true;
break;
default:
at = false;
break
}
}
return at
}
function b(az, aI, at) {
var aC, aB, aD, aJ, aA = ["iframe", "frame"], aH, au, ax, aG, av, aF, aw = {
frames: []
}, aK, ay, ar;
for (aB = 0; aB < aA.length; aB += 1) {
aJ = aA[aB];
aK = az.getElementsByTagName(aJ);
ay = aI.getElementsByTagName(aJ);
if (aK) {
for (aC = 0,
aD = aK.length; aC < aD; aC += 1) {
try {
aH = aK[aC];
au = aq.getIFrameWindow(aH);
if (au && au.document && au.location.href !== "about:blank") {
ax = au.document;
aG = A(ax, ax, "", at);
av = t();
ay[aC].setAttribute("tltid", av);
aG.tltid = av;
ar = aq.getOriginAndPath(ax.location);
aG.host = ar.origin;
aG.url = ar.path;
aG.charset = ax.characterSet || ax.charset;
aF = ay[aC].getAttribute("src");
if (!aF) {
aF = au.location.href;
ay[aC].setAttribute("src", aF)
}
aw.frames = aw.frames.concat(aG.frames);
delete aG.frames;
aw.frames.push(aG)
}
} catch (aE) {}
}
}
}
return aw
}
function al(at) {
var au, ar, av;
at.DCXListeners = at.DCXListeners || {};
for (au = 0,
ar = D.length; au < ar; au += 1) {
av = D[au];
if (!at.DCXListeners[av]) {
d.subscribe(av, at, S);
at.DCXListeners[av] = true
}
}
}
function Y(au) {
var az = au.adoptedStyleSheets;
var ax = "";
for (var aw = 0; aw < az.length; aw++) {
try {
var av = az[aw].cssRules.length;
for (var at = 0; at < av; at++) {
var ay = az[aw].cssRules[at].cssText;
ay = ay.replace("opacity: 0;", "opacity: 1;");
ay = ay.replace("visibility: hidden;", "visibility: visible;");
ax = ax + " " + ay
}
} catch (ar) {}
}
return ax
}
function L() {
return ("setTimeout(() => { const rootElement = document.body;function traverse(element) {if (element.getAttribute('shadow-dom-id')) {const childNodes = element.childNodes;let shadowHtmlContent = '';for (let i = 0; i < childNodes.length; i++) {const childNode = childNodes[i];if (childNode.nodeType === Node.COMMENT_NODE) {continue;}if (childNode.nodeName === 'HCLDISCOVER') {while (element.firstChild !== childNode) {element.removeChild(element.firstChild);}if (element.firstChild === childNode) {element.removeChild(childNode);}break;} else {shadowHtmlContent += childNode.outerHTML || childNode.nodeValue;}}const rootHTML = shadowHtmlContent;const selector = element.tagName.toLowerCase();if (!customElements.get(selector)) {customElements.define(selector, class extends HTMLElement {html = rootHTML;constructor(html) {super();this.html = html;const template = document.createElement('template');template.innerHTML = this.html || rootHTML;const shadowRoot = this.attachShadow({ mode: 'open' });shadowRoot.appendChild(template.content.cloneNode(true));}});}const getClassInstance = customElements.get(selector);const newClass = new getClassInstance(rootHTML);element.shadowRoot.innerHTML = newClass.shadowRoot.innerHTML;}if (element.shadowRoot) {const childrenShadow = element.shadowRoot.children || [];for (let i = 0; i < childrenShadow.length; i++) {traverse(childrenShadow[i]);}}const children = element.children || [];for (let i = 0; i < children.length; i++) {traverse(children[i]);}}traverse(rootElement);}, 500);")
}
function e(aD, aJ, at, aC) {
var aF, aG, ax, ar, az, aE, ay = {
shadows: []
}, aw, aB, av, aA = ".TLUIHighlighting { background-color: #AFFFC9 !important; outline-color:#2FBF5E !important; outline-style:solid !important; z-index:5000 !important; }";
if (!aD || (!aC && !aD.children)) {
return ay
}
if (aC) {
az = [aD]
} else {
az = aD.children
}
for (aF = 0,
aG = az.length; aF < aG; aF += 1) {
ar = az[aF];
if (ar.shadowRoot) {
aE = new n.Xpath(ar);
ax = A(ar.ownerDocument, ar.shadowRoot, "", at);
aw = y(ar);
aB = Y(ar.shadowRoot);
av = "shadow_dom_" + t();
aw.setAttribute("shadow-dom-id", av);
aw.innerHTML = ax.root + '" + aw.innerHTML;
ay.shadows.push({
root: J(aw),
xpath: aE.xpath
});
ay.shadows = ay.shadows.concat(ax.shadows);
al(ar.shadowRoot);
if (a) {
try {
E.observe(ar.shadowRoot, P);
ar.shadowRoot.DCXListeners.mutation = true;
if (aq.indexOf(Q, ar) === -1) {
Q.push(ar)
}
} catch (aH) {}
}
if (!a) {
var aI = G.getService("config")
, au = aI.getServiceConfig("message");
if (!au.maskVisiblePasswords) {
return
}
try {
x.observe(ar.shadowRoot, s);
ar.shadowRoot.DCXListeners.mutation = true;
if (aq.indexOf(Q, ar) === -1) {
Q.push(ar)
}
} catch (aH) {}
}
}
ax = e(ar, null, at);
ay.shadows = ay.shadows.concat(ax.shadows)
}
return ay
}
function am(ay) {
var aw, au, ar, av, at, ax, az = 0;
if (!ay) {
return az
}
if (ay.root) {
az += ay.root.length;
if (ay.frames) {
for (aw = 0,
ar = ay.frames.length; aw < ar; aw += 1) {
if (ay.frames[aw].root) {
az += ay.frames[aw].root.length
}
}
}
} else {
if (ay.diffs) {
for (aw = 0,
ar = ay.diffs.length; aw < ar; aw += 1) {
ax = ay.diffs[aw];
az += ax.xpath.length;
if (ax.root) {
az += ax.root.length
} else {
if (ax.attributes) {
for (au = 0,
av = ax.attributes.length; au < av; au += 1) {
at = ax.attributes[au];
az += at.name.length;
if (at.value) {
az += at.value.length
}
}
}
}
}
}
}
return az
}
function ab() {
var av, au, ar, at;
for (av = 0,
ar = ak.length; av < ar && B.length; av += 1) {
at = ak[av];
for (au = 0; au < B.length; au += 1) {
if (B[au].containedIn(at)) {
B.splice(au, 1);
au -= 1
}
}
}
}
function q(av) {
var au, ar, at, aw, ax = [];
if (!av || !av.children) {
return ax
}
aw = av.children;
for (au = 0,
ar = aw.length; au < ar; au += 1) {
at = aw[au];
if (at.shadowRoot) {
if (!at.shadowRoot.DCXListeners) {
ax.push([at, at.shadowRoot])
}
ax = ax.concat(q(at.shadowRoot))
}
ax = ax.concat(q(at))
}
return ax
}
function K(ay, au) {
var av, ar, aw, ax, at;
if (!ay || !au) {
return
}
if (!au.captureShadowDOM) {
return
}
at = q(ay, au);
for (av = 0,
ar = at.length,
aw = []; av < ar; av += 1) {
ax = e(at[av][0], null, au, true);
aw = aw.concat(ax.shadows)
}
return aw
}
function u(ax, au) {
var ay, at, aw, av, ar;
ay = A(ax, ax, null, au);
if (!ay) {
ay = {}
}
ay.charset = ax.characterSet || ax.charset;
at = aq.getOriginAndPath(ax.location);
ay.host = at.origin;
ay.url = at.path;
return ay
}
function T(aG) {
var ax, az, aE = {
fullDOM: false,
diffs: [],
attributeDiffs: {}
}, aD, aF, aC, ay, au, aA, at, aw, aB = new RegExp("^data:image/(.*?);base64");
ae(ak);
ab();
ay = aG.captureShadowDOM;
aG.captureShadowDOM = false;
for (ax = 0,
az = ak.length; ax < az; ax += 1) {
at = ak[ax];
aA = n.getNodeFromID(at.xpath, -2);
if (!aA) {
continue
}
if (at.isShadowHost) {
aA = aA.shadowRoot;
if (!aA.DCXListeners) {
continue
}
}
if (aA === window.document.body || aA === window.document.documentElement) {
aG.captureShadowDOM = ay;
return u(window.document, aG)
}
aD = A(window.document, aA, at, aG);
delete aD.originalSize;
if (aD.shadows && aD.shadows.length === 0) {
delete aD.shadows
}
if (aD.frames && aD.frames.length === 0) {
delete aD.frames
}
aD.xpath = at.xpath;
aE.diffs.push(aD)
}
function av(aI, aH) {
if (!aI || !aI.name) {
return
}
aE.attributeDiffs[aD.xpath][aI.name] = {
value: aI.value
}
}
function ar(aK) {
var aI, aH, aJ;
for (aI = 0,
aJ = aK.length; aI < aJ; aI += 1) {
aH = aK[aI];
if (aH.name === "src" && aB.test(aH.value) && aH.value.length > aG.removeBase64) {
aH.value = "";
aK.push({
name: "removedByDCX",
value: true
});
break
}
}
return aK
}
for (ax = 0,
az = B.length; ax < az; ax += 1) {
at = B[ax];
aF = aa(at.attributes, "id");
if (aF > -1) {
aA = n.getNodeFromID(at.xpath, -2);
aC = new n.Xpath(aA,false,at.attributes[aF].oldValue);
at.xpath = aC.xpath
}
aw = w(at.attributes);
if (aG.hasOwnProperty("removeBase64")) {
aA = n.getNodeFromID(at.xpath, -2);
if (aA && aA.tagName.toLowerCase() === "img" && aw) {
aw = ar(aw)
}
}
aD = {
xpath: at.xpath,
attributes: aw
};
aE.diffs.push(aD);
aE.attributeDiffs[aD.xpath] = {};
aq.forEach(aD.attributes, av)
}
aG.captureShadowDOM = ay;
au = K(window.document, aG);
if (au && au.length) {
aE.shadows = au
}
return aE
}
y = function(au) {
var av = null;
if (an(au)) {
av = au.cloneNode(true);
if (!av && au.documentElement) {
av = au.documentElement.cloneNode(true)
}
var ar = G.getCoreConfig().doNotCaptureElements || {};
for (var at = ar.length - 1; at >= 0; at -= 1) {
f(av, ar[at])
}
}
return av
}
;
A = function(aL, aC, aF, at) {
var aw = true, aI, aA, ax, aB = {}, aK, au;
if (!aL || !aC) {
return aB
}
aI = y(aC, aL);
if (!aI && aC.host) {
aw = false
} else {
if (!aI) {
return aB
}
}
if (aw) {
if (!!at.removeScripts) {
i(aI, "script");
i(aI, "noscript")
}
if (!at.keepImports) {
i(aI, "link", ["rel", "import"])
}
if (!!at.removeComments) {
U(aI, 8)
}
if (!at.captureStyle) {
i(aI, "style")
}
if (typeof aI === "object" && (typeof aI.createElement === "function" || aI.tagName === "HEAD") && at.captureJSS) {
var ar = (aL && aL.defaultView && aL.defaultView.frameElement) ? aL : document;
var av = ar.styleSheets.length;
var az = "";
for (var aG = 0; aG < av; aG++) {
try {
var ay = ar.styleSheets[aG].cssRules.length;
for (var aE = 0; aE < ay; aE++) {
az = az + " " + ar.styleSheets[aG].cssRules[aE].cssText
}
} catch (aD) {}
}
if (at.customStyle) {
az = az + at.customStyle
}
if (!aI.createElement) {
aI.innerHTML += '"
} else {
var aH = aI.createElement("style");
aH.setAttribute("added_by", "HCL DISCOVER JSS Style Capture");
aH.innerHTML = az;
aI.getElementsByTagName("head")[0].appendChild(aH)
}
if (typeof DCX !== "undefined" && av) {
aB.origCSSsize = az.length
}
}
if (at.hasOwnProperty("removeBase64")) {
ao(aI, at.removeBase64)
}
Z(aC, aI);
ah(aC, aI);
p(aC, aI);
aI = C.applyPrivacyToNode(aI, aF, aL);
if (!!at.captureFrames) {
aA = b(aC, aI, at)
}
}
if (!!at.captureShadowDOM) {
ax = e(aC, aI, at);
if (ax.shadows && ax.shadows.length > 0 && aI && typeof aI === "object" && (typeof aI.createElement === "function")) {
var aJ = document.createElement("script");
aJ.setAttribute("id", "discover_shadow_dom");
aJ.textContent = L();
aI.getElementsByTagName("body")[0].appendChild(aJ)
}
}
if (aA) {
aB = aq.mixin(aB, aA)
}
if (ax) {
aB = aq.mixin(aB, ax)
}
aK = (ai(aC) || "") + J(aI || aC);
aB.root = C.applyPrivacyPatterns(aK);
return aB
}
;
I = function() {
m = G.getService("config");
o(m.getServiceConfig("domCapture") || {})
}
;
return {
init: function() {
m = G.getService("config");
if (!X) {
o(m.getServiceConfig("domCapture") || {})
} else {}
},
destroy: function() {
ac()
},
observeWindow: function(au) {
var at, ar;
if (!au) {
return
}
if (!aq.getValue(k, "options.captureFrames", false) && !(au === window)) {
return
}
if (aq.indexOf(W, au) === -1) {
W.push(au)
}
},
captureDOM: function(at, au) {
var av, ar, ay = null, aw, az = 0;
if (!X || aq.isLegacyIE) {
return ay
}
au = aq.mixin({}, k.options, au);
at = at || window.document;
if (!v || !a || c || au.forceFullDOM) {
if (E) {
E.disconnect()
}
if (x) {
x.disconnect()
}
ay = u(at, au);
ay.fullDOM = true;
ay.forced = !!(c || au.forceFullDOM);
v = true;
if (E) {
for (av = 0,
ar = W.length; av < ar; av += 1) {
aw = W[av];
try {
E.observe(aw.document, P)
} catch (ax) {
W.splice(av, 1);
ar = W.length;
av -= 1
}
}
}
if (x) {
for (av = 0,
ar = W.length; av < ar; av += 1) {
aw = W[av];
try {
x.observe(aw.document, s)
} catch (ax) {
W.splice(av, 1);
ar = W.length;
av -= 1
}
}
}
} else {
ay = T(au);
ay.fullDOM = (ay.diffs || ay.shadows) ? false : true
}
if (a) {
ay.mutationCount = F
}
O();
if (au.maxLength) {
az = am(ay);
if (az > au.maxLength) {
ay = {
errorCode: 101,
error: "Captured length (" + az + ") exceeded limit (" + au.maxLength + ")."
}
}
}
if (ay.fullDOM) {
ay.origDOMSize = az
} else {
ay.origDiffSize = az
}
return ay
}
}
});
DCX.addService("encoder", function(a) {
var f = {}
, g = null
, b = null
, d = false;
function e(j) {
var i = null;
if (!j) {
return i
}
i = f[j];
if (i && typeof i.encode === "string") {
i.encode = a.utils.access(i.encode)
}
return i
}
function h(i) {
f = i;
g.subscribe("configupdated", b);
d = true
}
function c() {
g.unsubscribe("configupdated", b);
d = false
}
b = function() {
g = a.getService("config");
h(g.getServiceConfig("encoder") || {})
}
;
return {
init: function() {
g = a.getService("config");
if (!d) {
h(g.getServiceConfig("encoder") || {})
} else {}
},
destroy: function() {
c()
},
encode: function(m, l) {
var k, i, j = {
data: null,
encoding: null,
error: null
};
if ((typeof m !== "string" && !m) || !l) {
j.error = "Invalid " + (!m ? "data" : "type") + " parameter.";
return j
}
k = e(l);
if (!k) {
j.error = "Specified encoder (" + l + ") not found.";
return j
}
if (typeof k.encode !== "function") {
j.error = "Configured encoder (" + l + ") encode method is not a function.";
return j
}
try {
i = k.encode(m)
} catch (n) {
j.error = "Encoding failed: " + (n.name ? n.name + " - " : "") + n.message;
return j
}
if (!i || a.utils.getValue(i, "buffer", null) === null) {
j.error = "Encoder (" + l + ") returned an invalid result.";
return j
}
j.data = i.buffer;
j.encoding = k.defaultEncoding;
return j
}
}
});
DCX.addService("message", function(v) {
var R = v.utils, q = 0, s = 0, J = 0, j = 0, r = new Date(), i = v.getService("browserBase"), b = v.getService("browser"), h = v.getService("config"), A = h.getServiceConfig("message") || {}, m = v.normalizeUrl(window.location.href), O = window.location.hostname, S = A.hasOwnProperty("privacy") ? A.privacy : [], c, G = {}, P = {
lower: "x",
upper: "X",
numeric: "9",
symbol: "@"
}, f = parseFloat((window.devicePixelRatio || 1).toFixed(2)), g = window.screen || {}, a = g.width || 0, y = g.height || 0, Q = i.getNormalizedOrientation(), k = !R.isiOS ? a : Math.abs(Q) === 90 ? y : a, E = !R.isiOS ? y : Math.abs(Q) === 90 ? a : y, M = (window.screen ? window.screen.height - window.screen.availHeight : 0), L = window.innerWidth || document.documentElement.clientWidth, n = window.innerHeight || document.documentElement.clientHeight, I = false, x = {}, B;
function e(V) {
var U = ""
, W = V.timestamp || (new Date()).getTime();
this.timestamp = W;
delete V.timestamp;
this.type = V.type;
this.offset = W - r.getTime();
if (V.type === 2 && V.screenview && V.screenview.type === "LOAD") {
if (V.screenview.name !== "root" && V.screenview.name !== "rootWithFrames") {
var T = V.screenview.name;
if (T && T.indexOf("#") === 0) {
B = location.pathname + T
} else {
B = T
}
} else {
B = location.pathname + location.hash
}
}
this.screenViewPath = B || location.pathname + location.hash;
this.screenviewOffset = 0;
if (V.type === 2) {
q = s;
s = W;
if (V.screenview.type === "UNLOAD") {
this.screenviewOffset = W - (q || r.getTime())
}
} else {
if (s) {
this.screenviewOffset = W - s
}
}
if (!this.type) {
return
}
this.count = (j += 1);
this.fromWeb = true;
for (U in V) {
if (V.hasOwnProperty(U)) {
this[U] = V[U]
}
}
}
G.PVC_MASK_EMPTY = function(T) {
return ""
}
;
G.PVC_MASK_BASIC = function(U) {
var T = "XXXXX";
if (typeof U !== "string") {
return ""
}
return (U.length ? T : "")
}
;
G.PVC_MASK_TYPE = function(X) {
var U, W = 0, T = 0, V = "";
if (typeof X !== "string") {
return V
}
U = X.split("");
for (W = 0,
T = U.length; W < T; W += 1) {
if (R.isNumeric(U[W])) {
V += P.numeric
} else {
if (R.isUpperCase(U[W])) {
V += P.upper
} else {
if (R.isLowerCase(U[W])) {
V += P.lower
} else {
V += P.symbol
}
}
}
}
return V
}
;
G.PVC_MASK_EMPTY.maskType = 1;
G.PVC_MASK_BASIC.maskType = 2;
G.PVC_MASK_TYPE.maskType = 3;
G.PVC_MASK_CUSTOM = {
maskType: 4
};
function d(T, V) {
var U = G.PVC_MASK_BASIC;
if (typeof V !== "string") {
return V
}
if (!T) {
U = G.PVC_MASK_BASIC
} else {
if (T.maskType === G.PVC_MASK_EMPTY.maskType) {
U = G.PVC_MASK_EMPTY
} else {
if (T.maskType === G.PVC_MASK_BASIC.maskType) {
U = G.PVC_MASK_BASIC
} else {
if (T.maskType === G.PVC_MASK_TYPE.maskType) {
U = G.PVC_MASK_TYPE
} else {
if (T.maskType === G.PVC_MASK_CUSTOM.maskType) {
if (typeof T.maskFunction === "string") {
U = R.access(T.maskFunction)
} else {
U = T.maskFunction
}
if (typeof U !== "function") {
U = G.PVC_MASK_BASIC
}
}
}
}
}
}
return U(V)
}
function D(T, U) {
var V;
if (!T || !U) {
return
}
for (V in U) {
if (U.hasOwnProperty(V)) {
if (V === "value") {
U[V] = d(T, U[V])
} else {
delete U[V]
}
}
}
}
function N(T, U) {
return (R.matchTarget(T, U) !== -1)
}
function H(Y) {
var U, T, V, X, W;
if (!Y) {
return ""
}
for (U = 0,
T = c.length; U < T; U += 1) {
W = c[U];
W.cRegex.lastIndex = 0;
Y = Y.replace(W.cRegex, W.replacement)
}
return Y
}
function F(aa) {
var X, T, W, U, Z = false, Y, V;
if (!aa || (!aa.currState && !aa.prevState)) {
return aa
}
Y = aa.prevState;
V = aa.currState;
for (X = 0,
T = S.length; X < T; X += 1) {
U = S[X];
W = R.getValue(U, "exclude", false);
if (N(U.targets, aa) !== W) {
D(U, Y);
D(U, V);
Z = true;
break
}
}
if (!Z) {
if (Y && Y.value) {
Y.value = H(Y.value)
}
if (V && V.value) {
V.value = H(V.value)
}
}
return aa
}
function o(T) {
if (!T || !T.target) {
return T
}
F(T.target);
return T
}
function l(W, U) {
var V, T, Y, X;
if (!U || !W) {
return
}
if (W.value) {
Y = d(U, W.value);
W.setAttribute("value", Y);
W.value = Y
}
if (W.checked) {
W.removeAttribute("checked")
}
if (R.getTagName(W) === "select") {
W.selectedIndex = -1;
for (V = 0,
T = W.options.length; V < T; V += 1) {
X = W.options[V];
X.removeAttribute("selected");
X.selected = false
}
} else {
if (R.getTagName(W) === "textarea") {
W.textContent = W.value
}
}
}
function u(af, ac, ag, al, Y, ab) {
var ah, ae, ad, ai, V, W, aa = [], aj, T, Z, X, ak, U;
if (!af.length && !Y.length && !ab) {
return []
}
U = b.queryAll("input, select, textarea", ac);
if (!U || !U.length) {
return []
}
for (ah = 0,
ai = Y.length; ah < ai; ah += 1) {
ae = U.indexOf(Y[ah]);
if (ae !== -1) {
U.splice(ae, 1)
}
}
if (af.length) {
for (ah = 0,
ai = U.length,
aa = []; ah < ai; ah += 1) {
if (U[ah].value) {
W = i.ElementData.prototype.examineID(U[ah], true);
if (W.idType === -2) {
aj = new i.Xpath(U[ah]);
aj.applyPrefix(ag);
W.id = aj.xpath
}
aa.push({
id: W.id,
idType: W.idType,
element: U[ah]
})
}
}
}
for (ah = 0,
ai = af.length; ah < ai; ah += 1) {
X = S[af[ah].ruleIndex];
T = R.getValue(X, "exclude", false);
ak = X.targets[af[ah].targetIndex];
if (typeof ak.id === "string" && ak.idType === -2) {
for (ae = 0; ae < aa.length; ae += 1) {
if (aa[ae].idType === ak.idType && aa[ae].id === ak.id) {
V = aa[ae] && aa[ae].element;
if (!T) {
l(V, X)
} else {
ad = U.indexOf(V);
U.splice(ad, 1)
}
}
}
} else {
for (ae = 0; ae < aa.length; ae += 1) {
ak.cRegex.lastIndex = 0;
if (aa[ae].idType === ak.idType && ak.cRegex.test(aa[ae].id)) {
V = aa[ae].element;
if (!T) {
l(V, X)
} else {
ad = U.indexOf(V);
U.splice(ad, 1)
}
}
}
}
}
if (ab) {
for (ah = 0,
ai = U.length; ah < ai; ah += 1) {
l(U[ah], ab)
}
}
}
function p(aa, af, al) {
var ag, ac, ab, V, T, W = [], Z, ah, ad, X, U, ai, ae = [], ak, aj, Y;
if (!aa || !al) {
return null
}
for (ag = 0,
ah = S.length; ag < ah; ag += 1) {
ad = S[ag];
T = R.getValue(ad, "exclude", false);
if (T) {
Z = ad
}
aj = ad.targets;
for (ac = 0,
Y = aj.length; ac < Y; ac += 1) {
ak = aj[ac];
if (typeof ak === "string") {
U = b.queryAll(ak, aa);
if (!T) {
for (ab = 0,
ai = U.length; ab < ai; ab += 1) {
V = U[ab];
l(V, ad)
}
} else {
W = W.concat(U)
}
} else {
if (typeof ak.id === "string") {
switch (ak.idType) {
case -1:
case -3:
V = i.getNodeFromID(ak.id, ak.idType, aa);
if (!T) {
l(V, ad)
} else {
W.push(V)
}
break;
case -2:
ae.push({
ruleIndex: ag,
targetIndex: ac,
exclude: T
});
break;
default:
break
}
} else {
ae.push({
ruleIndex: ag,
targetIndex: ac,
exclude: T
})
}
}
}
}
u(ae, aa, af, al, W, Z);
return aa
}
function t(X) {
var V, T, U, W = false;
if (!X) {
return W
}
for (V = 0,
T = S.length; V < T; V += 1) {
U = S[V];
if (N(U.targets, X)) {
W = true;
break
}
}
return W
}
function w() {
var W, V, T, Z, aa, Y, U, X;
h = v.getService("config");
A = h.getServiceConfig("message") || {};
S = A.privacy || [];
c = A.privacyPatterns || [];
for (W = 0,
aa = S.length; W < aa; W += 1) {
Z = S[W];
U = Z.targets;
for (V = 0,
X = U.length; V < X; V += 1) {
Y = U[V];
if (typeof Y === "object") {
if (typeof Y.idType === "string") {
Y.idType = +Y.idType
}
if (typeof Y.id === "object") {
Y.cRegex = new RegExp(Y.id.regex,Y.id.flags)
}
}
}
}
for (T = c.length,
W = T - 1; W >= 0; W -= 1) {
Z = c[W];
if (typeof Z.pattern === "object") {
Z.cRegex = new RegExp(Z.pattern.regex,Z.pattern.flags)
} else {
c.splice(W, 1)
}
}
}
function z() {
if (h.subscribe) {
h.subscribe("configupdated", w)
}
w();
I = true
}
function K() {
h.unsubscribe("configupdated", w);
I = false
}
function C(ab) {
var Y = ab.dcid, V = ab.shadows || [], X = ab.fullDOM, ac = 1, W, Z, aa, U, T;
if (V.length === 0 || !X) {
return
}
for (aa in x) {
if (x.hasOwnProperty(aa)) {
x[aa].age += 1
}
}
for (W = 0,
Z = V.length; W < Z; W += 1) {
U = V[W];
T = x[U.xpath];
if (T && T.root === U.root) {
T.hitCount += 1;
T.age -= 1;
U.cacheDCID = T.dcid;
delete U.root
} else {
x[U.xpath] = {
root: U.root,
dcid: Y,
hitCount: 0,
age: 0
}
}
}
for (aa in x) {
if (x.hasOwnProperty(aa)) {
T = x[aa];
if (T.age > T.hitCount + ac) {
delete x[aa]
}
}
}
}
return {
init: function() {
if (!I) {
z()
} else {}
},
destroy: function() {
K()
},
applyPrivacyToNode: p,
applyPrivacyToMessage: o,
applyPrivacyToTarget: F,
applyPrivacyPatterns: H,
isPrivacyMatched: t,
createMessage: function(T) {
if (typeof T.type === "undefined") {
throw new TypeError("Invalid queueEvent given!")
}
if (T.type === 12) {
C(T.domCapture)
}
return o(new e(T))
},
wrapMessages: function(W) {
var V = DCX.getCoreConfig();
var T = 0;
if (window && window.sessionStorage && window.localStorage) {
if (!window.sessionStorage.DCXTab) {
window.sessionStorage.setItem("DCXTab", Date.now())
}
T = window.sessionStorage.DCXTab
}
var U = {
messageVersion: "10.0.0.0",
serialNumber: (J += 1),
sessions: [{
id: v.getPageId(),
startTime: r.getTime(),
timezoneOffset: r.getTimezoneOffset(),
messages: W,
clientEnvironment: {
webEnvironment: {
libVersion: "12.1.12",
internalVersion: V.version,
domain: O,
page: m,
referrer: document.referrer,
screen: {
devicePixelRatio: f,
deviceWidth: k,
deviceHeight: E,
deviceToolbarHeight: M,
width: L,
height: n,
orientation: Q
},
tabID: T
}
}
}]
}
, X = U.sessions[0].clientEnvironment.webEnvironment.screen;
X.orientationMode = R.getOrientationMode(X.orientation);
return U
}
}
});
DCX.addService("serializer", function(core) {
function serializeToJSON(obj) {
var str, key, len = 0;
if (typeof obj !== "object" || obj === null) {
switch (typeof obj) {
case "function":
case "undefined":
return "null";
case "string":
return '"' + obj.replace(/\"/g, '\\"') + '"';
default:
return String(obj)
}
} else {
if (Object.prototype.toString.call(obj) === "[object Array]") {
str = "[";
for (key = 0,
len = obj.length; key < len; key += 1) {
if (Object.prototype.hasOwnProperty.call(obj, key)) {
str += serializeToJSON(obj[key]) + ","
}
}
} else {
str = "{";
for (key in obj) {
if (Object.prototype.hasOwnProperty.call(obj, key)) {
str = str.concat('"', key, '":', serializeToJSON(obj[key]), ",");
len += 1
}
}
}
}
if (len > 0) {
str = str.substring(0, str.length - 1)
}
str += String.fromCharCode(str.charCodeAt(0) + 2);
return str
}
var configService = core.getService("config")
, serialize = {}
, parse = {}
, defaultSerializers = {
json: (function() {
if (typeof window.JSON !== "undefined") {
return {
serialize: window.JSON.stringify,
parse: window.JSON.parse
}
}
return {
serialize: serializeToJSON,
parse: function(data) {
return eval("(" + data + ")")
}
}
}())
}
, updateConfig = null
, isInitialized = false;
function addObjectIfExist(paths, rootObj, propertyName) {
var i, len, obj;
paths = paths || [];
for (i = 0,
len = paths.length; i < len; i += 1) {
obj = paths[i];
if (typeof obj === "string") {
obj = core.utils.access(obj)
}
if (typeof obj === "function") {
rootObj[propertyName] = obj;
break
}
}
}
function checkParserAndSerializer() {
var isParserAndSerializerInvalid;
if (typeof serialize.json !== "function" || typeof parse.json !== "function") {
isParserAndSerializerInvalid = true
} else {
if (typeof parse.json('{"foo": "bar"}') === "undefined") {
isParserAndSerializerInvalid = true
} else {
isParserAndSerializerInvalid = parse.json('{"foo": "bar"}').foo !== "bar"
}
if (typeof parse.json("[1, 2]") === "undefined") {
isParserAndSerializerInvalid = true
} else {
isParserAndSerializerInvalid = isParserAndSerializerInvalid || parse.json("[1, 2]")[0] !== 1;
isParserAndSerializerInvalid = isParserAndSerializerInvalid || parse.json("[1,2]")[1] !== 2
}
isParserAndSerializerInvalid = isParserAndSerializerInvalid || serialize.json({
foo: "bar"
}) !== '{"foo":"bar"}';
isParserAndSerializerInvalid = isParserAndSerializerInvalid || serialize.json([1, 2]) !== "[1,2]"
}
return isParserAndSerializerInvalid
}
function initSerializerService(config) {
var format;
for (format in config) {
if (config.hasOwnProperty(format)) {
addObjectIfExist(config[format].stringifiers, serialize, format);
addObjectIfExist(config[format].parsers, parse, format)
}
}
if (!(config.json && config.json.hasOwnProperty("defaultToBuiltin")) || config.json.defaultToBuiltin === true) {
serialize.json = serialize.json || defaultSerializers.json.serialize;
parse.json = parse.json || defaultSerializers.json.parse
}
if (typeof serialize.json !== "function" || typeof parse.json !== "function") {
core.fail("JSON parser and/or serializer not provided in the UIC config. Can't continue.")
}
if (checkParserAndSerializer()) {
core.fail("JSON stringification and parsing are not working as expected")
}
if (configService) {
configService.subscribe("configupdated", updateConfig)
}
isInitialized = true
}
function destroy() {
serialize = {};
parse = {};
if (configService) {
configService.unsubscribe("configupdated", updateConfig)
}
isInitialized = false
}
updateConfig = function() {
configService = core.getService("config");
initSerializerService(configService.getServiceConfig("serializer"))
}
;
return {
init: function() {
var ssConfig;
if (!isInitialized) {
ssConfig = configService ? configService.getServiceConfig("serializer") : {};
initSerializerService(ssConfig)
} else {}
},
destroy: function() {
destroy()
},
parse: function(data, type) {
var parsedData;
type = type || "json";
try {
parsedData = parse[type](data)
} catch (e) {
this.init();
parsedData = parse[type](data)
}
return parsedData
},
serialize: function(data, type) {
var serializedData;
type = type || "json";
try {
serializedData = serialize[type](data)
} catch (e) {
this.init();
serializedData = serialize[type](data)
}
return serializedData
}
}
});
DCX.addModule("DCCookie", function(c) {
var j = {}, k = 0, g = "WCXSID", i = "TLTSID", a = "CoreID6", p, o, b = null, t, h = [], q = c.utils;
function m() {
var v = "123456789"
, w = q.getRandomString(1, v) + q.getRandomString(31, v + "0");
return w
}
function f() {
var x = m(), v = !!j.secureDCXSID, w;
q.setCookie(i, x, w, w, w, v);
return q.getCookieValue(i)
}
function l() {
if (b || !window.cmRetrieveUserID) {
return
}
try {
window.cmRetrieveUserID(function(w) {
b = w
})
} catch (v) {
b = null
}
}
function e(z) {
var v, w, y, x;
if (!localStorage || !z) {
return
}
y = localStorage.getItem(z);
if (y) {
w = y.split("|");
v = parseInt(w[0], 10);
if (Date.now() > v) {
localStorage.removeItem(z)
} else {
x = w[1]
}
}
return x
}
function u(x, w) {
var v;
if (!localStorage || !x) {
return
}
w = w || m();
v = Date.now() + k;
localStorage.setItem(x, v + "|" + w);
return e(x)
}
function n(x) {
var v;
var w = window.localStorage;
if (!w || !x) {
return
}
v = w.getItem(x);
if (v === null) {
v = "xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g, function(A) {
var y = Math.random() * 16 | 0
, z = A == "x" ? y : (y & 3 | 8);
return y.toString(16)
});
w.setItem(x, v)
}
return v
}
function d(v) {
var x = q.getValue(v, "sessionIDUsesCookie", true)
, w = q.getValue(v, "sessionIDUsesStorage", false);
h = [];
if (v.dcAppKey) {
t = v.dcAppKey;
h.push({
name: "X-Discover-SaaS-AppKey",
value: t
})
}
if (v.visitorCookieName) {
a = v.visitorCookieName
}
if (v.wcxCookieName) {
g = v.wcxCookieName
}
p = q.getCookieValue(g);
if (p) {
h.push({
name: "X-WCXSID",
value: p
})
}
if (v.sessionizationCookieName) {
i = v.sessionizationCookieName
}
if (w) {
k = q.getValue(v, "sessionIDStorageDCX", 600000);
o = e(i)
}
if (!o && x) {
o = q.getCookieValue(i)
}
if (!o) {
if (p) {
o = p
} else {
if (w) {
o = u(i)
}
if (!o && x) {
o = f()
}
}
}
if (!o) {
o = "Check7UIC7Cookie7Configuration77"
}
h.push({
name: "X-Discover-SaaS-TLTSID",
value: o
});
h.push({
name: "X-DCXVID",
value: n("X-DCXVID")
});
if (h.length) {
DCX.registerBridgeCallbacks([{
enabled: true,
cbType: "addRequestHeaders",
cbFunction: function() {
return h
}
}])
}
}
function r(A) {
var x, w, v = false, z, y = j.appCookieWhitelist;
if (!y || !y.length) {
return v
}
for (x = 0,
w = y.length; x < w && !v; x += 1) {
z = y[x];
if (z.regex) {
if (!z.cRegex) {
z.cRegex = new RegExp(z.regex,z.flags)
}
z.cRegex.lastIndex = 0;
v = z.cRegex.test(A)
} else {
v = (z === A)
}
}
return v
}
function s() {
var z, y, A, B = {}, w, F = document.cookie, x = [], E = "", v = "";
if (!F) {
return
}
x = F.split("; ");
for (z = 0,
A = x.length; z < A; z += 1) {
w = x[z];
y = w.indexOf("=");
if (y >= 0) {
try {
E = decodeURIComponent(w.substr(0, y))
} catch (D) {
E = w.substr(0, y)
}
}
v = w.substr(y + 1);
if (r(E)) {
try {
B[E] = decodeURIComponent(v)
} catch (C) {
B[E] = v
}
}
}
if (b && !B[a]) {
B[a] = b
}
c.post({
type: 14,
cookies: B
})
}
return {
init: function() {
j = c.getConfig() || {};
d(j);
l()
},
destroy: function() {
if (j.sessionIDUsesStorage) {
u(i, o)
}
},
onevent: function(v) {
switch (v.type) {
case "screenview_load":
if (q.getValue(j, "appCookieWhitelist.length", 0)) {
l();
s()
}
break;
default:
break
}
}
}
});
if (DCX && typeof DCX.addModule === "function") {
DCX.addModule("performance", function(a) {
var g = {
loadReceived: false,
unloadReceived: false,
perfEventSent: false
}, e = 0, c, h = a.utils;
function f(l, k) {
if (typeof l !== "string") {
return false
}
if (!k || typeof k !== "object") {
return false
}
return (k[l] === true)
}
function b(m, k) {
var o = 0
, l = {}
, p = ""
, n = 0;
if (!m || typeof m !== "object" || !m.navigationStart) {
return {}
}
o = m.navigationStart;
for (p in m) {
if (Object.prototype.hasOwnProperty.call(m, p) || typeof m[p] === "number") {
if (!f(p, k)) {
n = m[p];
if (typeof n === "number" && n && p !== "navigationStart") {
l[p] = n - o
} else {
l[p] = n
}
}
}
}
return l
}
function d(m) {
var n = 0, l, k;
if (m) {
l = (m.responseEnd > 0 && m.responseEnd < m.domLoading) ? m.responseEnd : m.domLoading;
k = m.loadEventStart;
if (h.isNumeric(l) && h.isNumeric(k) && k > l) {
n = k - l
}
}
return n
}
function i(l) {
var k = a.getStartTime();
if (l.timestamp > k && !e) {
e = l.timestamp - k
}
}
function j(n) {
var l = "UNKNOWN", o = {
type: 7,
performance: {}
}, k, p, m;
if (!n || g.perfEventSent) {
return
}
p = n.performance || {};
m = p.timing;
k = p.navigation;
if (m) {
if (!m.loadEventStart) {
return
}
o.performance.timing = b(m, c.filter);
o.performance.timing.renderTime = d(m)
} else {
if (c.calculateRenderTime) {
o.performance.timing = {
renderTime: e,
calculated: true
}
} else {
return
}
}
if (c.renderTimeThreshold && o.performance.timing.renderTime > c.renderTimeThreshold) {
o.performance.timing.invalidRenderTime = o.performance.timing.renderTime;
delete o.performance.timing.renderTime
}
if (k) {
switch (k.type) {
case 0:
l = "NAVIGATE";
break;
case 1:
l = "RELOAD";
break;
case 2:
l = "BACKFORWARD";
break;
default:
l = "UNKNOWN";
break
}
o.performance.navigation = {
type: l,
redirectCount: k.redirectCount
}
}
a.post(o);
g.perfEventSent = true
}
return {
init: function() {
c = a.getConfig()
},
destroy: function() {
c = null
},
onevent: function(k) {
if (typeof k !== "object" || !k.type) {
return
}
switch (k.type) {
case "load":
g.loadReceived = true;
i(k);
setTimeout(function() {
if (a.isInitialized()) {
j(window)
}
}, h.getValue(c, "delay", 2000));
break;
case "screenview_load":
if (!g.perfEventSent) {
j(window)
}
break;
case "unload":
g.unloadReceived = true;
if (!g.perfEventSent) {
j(window)
}
break;
default:
break
}
},
onmessage: function(k) {}
}
})
} else {}
DCX.addModule("rageClicks", function(b) {
var r = DCX.getModuleConfig("rageClicks")
, e = false;
var f, c, a, p, t, i;
var l = [], q = [], v = new Map(), g = new Map(), o = r.clickInterval || 4000, m = r.rageMin || 5, d = DCX.getCoreConfig(), h, u = function(x) {
return x == f
};
function n() {
if (p.getAttribute("data-dcxid")) {
f = p.getAttribute("data-dcxid");
a = "data-dcxid"
} else {
if (p.id) {
f = p.id;
a = "id"
} else {
f = b.getXPathFromNode(p);
a = "xpath"
}
}
}
function s() {
var y = g.get(f)
, z = c - y;
if (z <= o) {
l.push(f)
} else {
g.set(f, c);
for (var x = 0; x < l.length; x++) {
if (l[x] === f) {
l.splice(x, 1)
}
}
v["delete"](f);
for (var x = 0; x < q.length; x++) {
if (q[x] === f) {
q.splice(x, 1)
}
}
}
}
function w() {
const y = p.nodeName.toLowerCase();
const z = y === "a";
const x = z ? p.getAttribute("href") : null;
const A = {
type: 20,
struggle: {
struggleType: z ? "deadLink" : "rageclick",
elementtype: a,
element: f,
linkHREF: x,
},
};
if (!z) {
delete A.struggle.linkHREF
}
b.post(A)
}
function k(y) {
var x = q.filter(u);
if (x.length <= 0) {
v.set(f, y);
q.push(f);
w()
}
}
function j() {
e = true;
document.addEventListener("click", function(x) {
p = x.target;
n();
c = Date.now();
if (!g.has(f)) {
g.set(f, c)
}
if (g.has(f)) {
s()
}
t = l.filter(u);
i = t.length;
if (i >= m) {
k(i)
}
})
}
return {
init: function() {
r = b.getConfig()
},
destroy: function() {},
onevent: function(x) {
switch (x.type) {
case "load":
h = d.modules && d.modules.rageClicks && d.modules.rageClicks.enabled;
if (h) {
j()
}
break;
case "unload":
e = false;
break;
default:
break
}
},
version: "1.3.2"
}
});
DCX.addModule("replay", function(ap) {
var aq = ap.utils, L = 0, ai = {
scale: 0,
timestamp: 0
}, ac = {}, I = null, e = [], ad = 0, G = true, ae = null, D = null, Y = false, m = 0, W = "", B = "", Q = (new Date()).getTime(), l = 0, S = null, am = null, R = null, E = null, aj = null, X = null, N = {}, k = {}, aa = 0, x = 0, w = {
inFocus: false
}, O = null, af = ap.getConfig() || {}, q = DCX.getCoreConfig(), A = aq.getValue(af, "viewPortWidthHeightLimit", 10000), ah = 1, F = 1, T, ag = {
cellMaxX: 10,
cellMaxY: 10,
cellMinWidth: 20,
cellMinHeight: 20
};
function u() {
var ar;
for (ar in ac) {
if (ac.hasOwnProperty(ar)) {
ac[ar].visitedCount = 0
}
}
}
function s(au) {
var ar = false
, at = "|button|image|submit|reset|"
, av = null;
if (typeof au !== "object" || !au.type) {
return ar
}
switch (au.type.toLowerCase()) {
case "input":
av = "|" + (au.subType || "") + "|";
if (at.indexOf(av.toLowerCase()) === -1) {
ar = false
} else {
ar = true
}
break;
case "select":
case "textarea":
ar = false;
break;
default:
ar = true;
break
}
return ar
}
function h(at) {
var ar = [];
at = at.parentNode;
while (at) {
ar.push(at);
at = at.parentNode
}
return ar
}
function z(ar) {
return aq.some(ar, function(au) {
var at = aq.getTagName(au);
if (at === "a" || at === "button") {
return au
}
return null
})
}
function ao(ar) {
var au = ar.type
, at = ar.target;
if (typeof au === "string") {
au = au.toLowerCase()
} else {
au = "unknown"
}
if (au === "blur") {
au = "focusout"
}
if (au === "change") {
if (at.type === "INPUT") {
switch (at.subType) {
case "text":
case "date":
case "time":
au = at.subType + "Change";
break;
default:
au = "valueChange";
break
}
} else {
if (at.type === "TEXTAREA") {
au = "textChange"
} else {
au = "valueChange"
}
}
}
return au
}
function C(ar, au, at) {
var av = null;
if (!ar) {
return av
}
au = au || {};
au.eventOn = G;
G = false;
if (at) {
av = "dcid-" + aq.getSerialNumber() + "." + (new Date()).getTime() + "s";
window.setTimeout(function() {
au.dcid = av;
ap.performDOMCapture(ar, au)
}, at)
} else {
delete au.dcid;
av = ap.performDOMCapture(ar, au)
}
return av
}
function K(at, aF, au) {
var aA, ay, aH = false, av = {}, aG = false, ax, aC, aE = null, az = 0, aD, aB, ar, aw;
if (!at || (!aF && !au)) {
return aE
}
if (!aF && !(at === "load" || at === "unload")) {
return aE
}
af = ap.getConfig() || {};
aG = aq.getValue(af, "domCapture.enabled", false);
if (!aG || aq.isLegacyIE) {
return aE
}
aC = aq.getValue(af, "domCapture.triggers") || [];
for (aA = 0,
aD = aC.length; !aH && aA < aD; aA += 1) {
ax = aC[aA];
if (ax.event === at) {
if (at === "load" || at === "unload") {
if (ax.screenviews) {
ar = ax.screenviews;
for (ay = 0,
aw = ar.length; !aH && ay < aw; ay += 1) {
aB = ar[ay];
switch (typeof aB) {
case "object":
if (!aB.cRegex) {
aB.cRegex = new RegExp(aB.regex,aB.flags)
}
aB.cRegex.lastIndex = 0;
aH = aB.cRegex.test(au);
break;
case "string":
aH = (aB === au);
break;
default:
break
}
}
} else {
aH = true
}
} else {
if (ax.targets) {
aH = (-1 !== aq.matchTarget(ax.targets, aF))
} else {
aH = true
}
}
}
}
if (aH) {
az = ax.delay || (ax.event === "load" ? 7 : 0);
av.forceFullDOM = !!ax.fullDOMCapture;
aE = C(window.document, av, az)
}
return aE
}
function ab(aD) {
var av, aw, ax = aq.getValue(aD, "webEvent.target", {}), ar = ax.type, az = ax.subType || "", at = aq.getDcType(ax), aA = h(aq.getValue(ax, "element")), aC = null, ay = aq.getValue(ax, "position.relXY"), aB = aq.getValue(aD, "webEvent.subType", null), au = function(aE) {
if (aE && aE.element && aE.element.id) {
return aE.element.id
}
return ""
};
av = {
timestamp: aq.getValue(aD, "webEvent.timestamp", 0),
type: 4,
target: {
origID: au(ax),
id: ax.id || "",
idType: ax.idType,
name: ax.name,
dcType: at,
type: ar,
position: {
width: aq.getValue(ax, "size.width"),
height: aq.getValue(ax, "size.height")
},
currState: aD.currState || null
},
event: {
dcEvent: ao(aq.getValue(aD, "webEvent")),
type: aq.getValue(aD, "webEvent.type", "UNKNOWN")
}
};
if (av.target.origID === undefined || av.target.origID === "") {
delete av.target.origID
}
if (az) {
av.target.subType = az
}
if (ay) {
av.target.position.relXY = ay
}
if (typeof aD.dwell === "number" && aD.dwell > 0) {
av.target.dwell = aD.dwell
}
if (typeof aD.visitedCount === "number") {
av.target.visitedCount = aD.visitedCount
}
if (typeof aD.prevState !== "undefined") {
av.prevState = aD.prevState
}
if (aB) {
av.event.subType = aB
}
aC = z(aA);
av.target.isParentLink = !!aC;
if (aC) {
if (aC.href) {
av.target.currState = av.target.currState || {};
av.target.currState.href = av.target.currState.href || aC.href
}
if (aC.value) {
av.target.currState = av.target.currState || {};
av.target.currState.value = av.target.currState.value || aC.value
}
if (aC.innerText || aC.textContent) {
av.target.currState = av.target.currState || {};
av.target.currState.innerText = aq.trim(av.target.currState.innerText || aC.innerText || aC.textContent)
}
}
if (aq.isUndefOrNull(av.target.currState)) {
delete av.target.currState
}
if (aq.isUndefOrNull(av.target.name)) {
delete av.target.name
}
return av
}
function H(ar) {
ap.post(ar)
}
function J(aw) {
var au = 0, ar, ax = aw.length, az, ay, av, aA = {
mouseout: true,
mouseover: true
}, at = [];
for (au = 0; au < ax; au += 1) {
az = aw[au];
if (!az) {
continue
}
if (aA[az.event.type]) {
at.push(az)
} else {
for (ar = au + 1; ar < ax && aw[ar]; ar += 1) {
if (!aA[aw[ar].event.type]) {
break
}
}
if (ar < ax) {
ay = aw[ar];
if (ay && az.target.id === ay.target.id && az.event.type !== ay.event.type) {
if (az.event.type === "click") {
av = az;
az = ay;
ay = av
}
if (ay.event.type === "click") {
az.target.position = ay.target.position;
au += 1
} else {
if (ay.event.type === "blur") {
az.target.dwell = ay.target.dwell;
az.target.visitedCount = ay.target.visitedCount;
az.focusInOffset = ay.focusInOffset;
az.target.position = ay.target.position;
au += 1
}
}
aw[ar] = null;
aw[au] = az
}
}
at.push(aw[au])
}
}
for (az = at.shift(); az; az = at.shift()) {
ap.post(az)
}
aw.splice(0, aw.length)
}
function t(ar, at) {
if (typeof ar !== "string") {
return
}
if (k[ar]) {
k[ar].console.repeats = k[ar].console.repeats + 1
} else {
ap.post({
type: 6,
console: {
description: ar,
type: at
}
});
k[ar] = {
console: {
description: ar,
repeats: 1,
type: at,
}
}
}
}
function al(at) {
var av = null, aw, ay = aq.getValue(at, "nativeEvent.message"), au = aq.getValue(at, "nativeEvent.filename", ""), ar = aq.getValue(at, "nativeEvent.lineno", -1), ax = aq.getValue(at, "nativeEvent.error");
if (typeof ay !== "string") {
return
}
if (au) {
au = ap.normalizeUrl(au, 6)
}
if (ax && ax.stack) {
aw = ax.stack.toString()
} else {
aw = (ay + " " + au + " " + ar).toString()
}
if (N[aw]) {
N[aw].exception.repeats = N[aw].exception.repeats + 1
} else {
av = {
type: 6,
exception: {
description: ay,
url: au,
line: ar
}
};
ap.post(av);
N[aw] = {
exception: {
description: ay,
url: au,
line: ar,
repeats: 1
}
}
}
m += 1
}
function Z(ar, at) {
e.push(ab({
webEvent: ar,
id: at,
currState: aq.getValue(ar, "target.state")
}))
}
function d(az, at) {
var au = false, aw = false, ay, ar, ax, av = 0;
if (!az) {
return
}
if (e.length === 0) {
return
}
at = at || (ac[az] ? ac[az].webEvent : {});
if (at.type === "blur" || at.type === "change") {
ax = aq.getValue(at, "target.state", null)
} else {
if (at.target) {
ax = aq.getTargetState(at.target.element) || {}
} else {
ax = {}
}
}
ar = e[e.length - 1];
if (ac[az]) {
ar.focusInOffset = ac[az].focusInOffset;
ar.target.visitedCount = ac[az].visitedCount;
if (ac[az].focus) {
ac[az].dwell = Number(new Date()) - ac[az].focus;
ar.target.dwell = ac[az].dwell
}
if (!ac[az].processedChange && ac[az].prevState) {
if (!aq.isEqual(ac[az].prevState, ax)) {
aw = true;
at.type = "change";
ar.event.type = at.type;
ar.event.dcEvent = ao(at);
ar.target.prevState = ac[az].prevState;
ar.target.currState = ax
}
}
} else {
ac[az] = {}
}
if (ar.event.type === "click") {
if (!s(ar.target)) {
ar.target.currState = ax;
au = true
}
} else {
if (ar.event.type === "focus") {
au = true
}
}
if (au) {
ar.event.type = "blur";
ar.event.dcEvent = "focusout"
}
if (!ar.dcid) {
ay = K(ar.event.type, at.target);
if (ay) {
ar.dcid = ay
}
}
w.inFocus = false;
J(e)
}
function o(at, ar) {
if (w.inFocus && w.target.id === at) {
return
}
if (w.inFocus) {
d(w.target.id, w)
}
w = ar;
w.inFocus = true;
if (!ac[at]) {
ac[at] = {}
}
ac[at].focus = w.dwellStart = Number(new Date());
ac[at].focusInOffset = R ? w.dwellStart - Number(R) : -1;
if (ar.type === "focus" || ar.type === "click") {
ac[at].prevState = aq.getValue(ar, "target.state")
}
ac[at].visitedCount = ac[at].visitedCount + 1 || 1;
ac[at].webEvent = ar;
ac[at].processedChange = false;
ac[at].processedClick = false;
Z(ar, at)
}
function n(ax, au) {
var at = false, av, aw = e.length, ar = aw ? e[aw - 1] : null;
if (!ar) {
return at
}
av = ar.target.id;
if (av !== ax && ar.target.dcxype !== "selectList") {
if (au.type === "focus" || au.type === "click" || au.type === "change") {
d(av);
at = true
}
}
return at
}
function c(au, at) {
var ar;
o(au, at);
ar = e[e.length - 1];
ar.event.type = "change";
ar.event.dcEvent = ao(at);
ar.target.currState = at.target.state;
if (ac[au].prevState) {
ar.target.prevState = ac[au].prevState
}
ac[au].webEvent = at;
ac[au].processedChange = true
}
function r(ax) {
var aw, aA, at, ar, av = aq.getValue(ax, "target.element", {}), aB = aq.getValue(ax, "target.size.width", av.offsetWidth), au = aq.getValue(ax, "target.size.height", av.offsetHeight), az = aq.getValue(ax, "target.position.x", 0), ay = aq.getValue(ax, "target.position.y", 0);
aw = aB ? Math.max(aB / ag.cellMaxX, ag.cellMinWidth) : ag.cellMinWidth;
aA = au ? Math.max(au / ag.cellMaxY, ag.cellMinHeight) : ag.cellMinHeight;
at = Math.floor(az / aw);
ar = Math.floor(ay / aA);
if (!isFinite(at)) {
at = 0
}
if (!isFinite(ar)) {
ar = 0
}
return at + "," + ar
}
function b(av, au) {
var at, ar;
if (au.target.type === "select" && O && O.target.id === av) {
O = null;
return
}
o(av, au);
at = r(au);
au.target.position.relXY = at;
ar = e[e.length - 1];
ar.event.type = "click";
ar.event.dcEvent = ao(au);
ar.target.position.relXY = at;
ac[av].webEvent = au;
ac[av].processedClick = true;
if (s(au.target)) {
d(av, au)
}
O = au
}
function a(at) {
var ar = at.orientation
, au = {
type: 4,
event: {
type: "orientationchange"
},
target: {
prevState: {
orientation: L,
orientationMode: aq.getOrientationMode(L)
},
currState: {
orientation: ar,
orientationMode: aq.getOrientationMode(ar)
}
}
};
H(au);
L = ar
}
function an(at) {
var ar = false;
if (!at) {
return ar
}
ar = (ai.scale === at.scale && Math.abs((new Date()).getTime() - ai.timestamp) < 500);
return ar
}
function j(ar) {
ai.scale = ar.scale;
ai.rotation = ar.rotation;
ai.timestamp = (new Date()).getTime()
}
function P() {
var ar, at;
ar = ah - F;
if (isNaN(ar)) {
at = "INVALID"
} else {
if (ar < 0) {
at = "CLOSE"
} else {
if (ar > 0) {
at = "OPEN"
} else {
at = "NONE"
}
}
}
return at
}
function g(aw) {
var aB = document.documentElement || {}, ay = document.body || {}, aC = window.screen, at = aC.width, au = aC.height, ax = aq.getValue(aw, "orientation", 0), az = !aq.isiOS ? at : Math.abs(ax) === 90 ? au : at, av = {
type: 1,
clientState: {
pageWidth: document.width || (!aB ? 0 : aB.offsetWidth),
pageHeight: Math.max((!document.height ? 0 : document.height), (!aB ? 0 : aB.offsetHeight), (!aB ? 0 : aB.scrollHeight)),
viewPortWidth: window.innerWidth || aB.clientWidth,
viewPortHeight: window.innerHeight || aB.clientHeight,
viewPortX: Math.round(window.pageXOffset || (!aB ? (!ay ? 0 : ay.scrollLeft) : aB.scrollLeft || 0)),
viewPortY: Math.round(window.pageYOffset || (!aB ? (!ay ? 0 : ay.scrollTop) : aB.scrollTop || 0)),
deviceOrientation: ax,
event: aq.getValue(aw, "type")
}
}, aA = av.clientState, ar;
D = D || av;
if (aA.event === "unload" && aA.viewPortHeight === aA.pageHeight && aA.viewPortWidth === aA.pageWidth) {
if (D.clientState.viewPortHeight < aA.viewPortHeight) {
aA.viewPortHeight = D.clientState.viewPortHeight;
aA.viewPortWidth = D.clientState.viewPortWidth
}
}
if ((aA.viewPortY + aA.viewPortHeight) > aA.pageHeight) {
aA.viewPortY = aA.pageHeight - aA.viewPortHeight
}
if (aA.viewPortY < 0) {
aA.viewPortY = 0
}
ar = !aA.viewPortWidth ? 1 : (az / aA.viewPortWidth);
aA.deviceScale = ar.toFixed(3);
aA.viewTime = 0;
if (E && aj) {
aA.viewTime = aj.getTime() - E.getTime()
}
if (aw.type === "scroll") {
aA.viewPortXStart = D.clientState.viewPortX;
aA.viewPortYStart = D.clientState.viewPortY
}
return av
}
function p() {
var ar;
if (ae) {
ar = ae.clientState;
if (ar.viewPortHeight > 0 && ar.viewPortHeight < A && ar.viewPortWidth > 0 && ar.viewPortWidth < A) {
H(ae)
}
D = ae;
ae = null;
E = X || E;
aj = null
}
p.timeoutId = 0
}
function U(ar) {
var at = null;
if (aq.isOperaMini) {
return
}
ae = g(ar);
if (ar.type === "scroll" || ar.type === "resize") {
if (p.timeoutId) {
window.clearTimeout(p.timeoutId)
}
p.timeoutId = window.setTimeout(p, aq.getValue(af, "scrollTimeout", 2000))
} else {
if (ar.type === "touchstart" || ar.type === "load") {
if (ae) {
F = parseFloat(ae.clientState.deviceScale)
}
} else {
if (ar.type === "touchend") {
if (ae) {
ah = parseFloat(ae.clientState.deviceScale);
p()
}
}
}
}
if (ar.type === "load" || ar.type === "unload") {
if (ar.type === "unload" && Q) {
at = aq.clone(ae);
at.clientState.event = "attention";
at.clientState.viewTime = (new Date()).getTime() - Q
}
p();
if (at) {
ae = at;
p()
}
}
return ae
}
function ak(at) {
var ar = aq.getValue(at, "nativeEvent.touches.length", 0);
if (ar === 2) {
U(at)
}
}
function i(av) {
var au, at = {}, aw = aq.getValue(av, "nativeEvent.rotation", 0) || aq.getValue(av, "nativeEvent.touches[0].webkitRotationAngle", 0), ax = aq.getValue(av, "nativeEvent.scale", 1), ar = null, ay = {
type: 4,
event: {
type: "touchend"
},
target: {
id: aq.getValue(av, "target.id"),
idType: aq.getValue(av, "target.idType")
}
};
au = aq.getValue(av, "nativeEvent.changedTouches.length", 0) + aq.getValue(av, "nativeEvent.touches.length", 0);
if (au !== 2) {
return
}
U(av);
ar = {
rotation: aw ? aw.toFixed(2) : 0,
scale: ah ? ah.toFixed(2) : 1
};
ar.pinch = P();
at.scale = F ? F.toFixed(2) : 1;
ay.target.prevState = at;
ay.target.currState = ar;
H(ay)
}
function f(aC, av) {
var az = ["type", "name", "target.id"], au = null, aw, ay, ax = true, aA = 10, at = 0, aB = 0, ar = 0;
if (!aC || !av || typeof aC !== "object" || typeof av !== "object") {
return false
}
for (aw = 0,
ay = az.length; ax && aw < ay; aw += 1) {
au = az[aw];
if (aq.getValue(aC, au) !== aq.getValue(av, au)) {
ax = false;
break
}
}
if (ax) {
aB = aq.getValue(aC, "timestamp");
ar = aq.getValue(av, "timestamp");
if (!(isNaN(aB) && isNaN(ar))) {
at = Math.abs(aq.getValue(aC, "timestamp") - aq.getValue(av, "timestamp"));
if (isNaN(at) || at > aA) {
ax = false
}
}
}
return ax
}
function v(ar) {
var au = {
type: 4,
event: {
type: ar.type
},
target: {
id: aq.getValue(ar, "target.id"),
idType: aq.getValue(ar, "target.idType"),
currState: aq.getValue(ar, "target.state")
}
}, at;
at = K(ar.type, ar.target);
if (at) {
au.dcid = at
}
H(au)
}
function y(ax) {
var av = window.console;
if (!av) {
return
}
var au = [];
function ar(aA) {
function az(aB, aC) {
if (typeof aC === "object" && aC !== null) {
if (aC instanceof HTMLElement) {
return aC.outerHTML
} else {
if (au.indexOf(aC) !== -1) {
return "[Circular Reference]"
}
}
au.push(aC)
}
return aC
}
return JSON.stringify(aA, az)
}
function ay(aA) {
var az = av[aA];
av[aA] = function() {
var aB = Array.prototype.slice.apply(arguments);
var aD = [];
aB.forEach(function(aE) {
try {
if (aE instanceof Error) {
aE.stack ? aD.push(aE.stack + " ") : ((aE.name ? aD.push(aE.name + " ") : ""),
(aE.message ? aD.push(aE.message + " ") : ""))
} else {
aD.push(JSON.stringify(aE))
}
} catch (aG) {
try {
aD.push(ar(aE))
} catch (aF) {
av.error('Unable to log this console message of type "' + aA + '" from UIC. Please check the console for additional details.')
}
}
});
var aC = aD.join(" ");
t(aC, aA);
az.apply(av, arguments)
}
}
var at = ax && ax.length ? ax : ["log", "warn", "info", "error"];
for (var aw = 0; aw < at.length; aw++) {
ay(at[aw])
}
}
function V(at) {
var ar = aq.getValue(af, "geolocation"), au;
if (!ar || !ar.enabled) {
return
}
au = ar.triggers || [];
if (!au.length) {
return
}
if (au[0].event === at) {
DCX.logGeolocation()
}
}
function M(ay, aw) {
var ax, au = null, av, at, ar;
if (ay && Object.keys(ay).length) {
for (ax in ay) {
if (ay.hasOwnProperty(ax)) {
av = ay[ax].exception;
if (av.repeats > 1) {
au = {
type: 6,
exception: av
};
ap.post(au)
}
delete ay[ax]
}
}
}
if (q && q.captureConsole && q.captureConsole.enabled) {
if (aw && Object.keys(aw).length) {
for (var at in aw) {
if (aw.hasOwnProperty(at)) {
ar = aw[at].console;
if (ar.repeats > 1) {
ap.post({
type: 6,
console: ar
})
}
delete aw[at]
}
}
}
}
}
return {
init: function() {
e = []
},
destroy: function() {
d(I);
e = [];
if (p.timeoutId) {
window.clearTimeout(p.timeoutId);
p.timeoutId = 0
}
if (Y) {
Y = false
}
},
onevent: function(at) {
var aw = null, au = null, ar, av;
if (typeof at !== "object" || !at.type) {
return
}
if (f(at, S)) {
S = at;
return
}
S = at;
aw = aq.getValue(at, "target.id");
if (!ac[aw]) {
ac[aw] = {}
}
n(aw, at);
switch (at.type) {
case "hashchange":
break;
case "focus":
au = o(aw, at);
break;
case "blur":
au = d(aw, at);
break;
case "click":
au = b(aw, at);
break;
case "change":
au = c(aw, at);
break;
case "orientationchange":
au = a(at);
break;
case "touchstart":
ak(at);
break;
case "touchend":
au = i(at);
break;
case "loadWithFrames":
DCX.logScreenviewLoad("rootWithFrames");
break;
case "load":
if (q && q.captureConsole && q.captureConsole.enabled) {
y(q.captureConsole.methods)
}
L = at.orientation;
E = new Date();
if (typeof window.orientation !== "number" || aq.isAndroid) {
av = (window.screen.width > window.screen.height ? 90 : 0);
ar = window.orientation;
if (Math.abs(ar) !== av && !(ar === 180 && av === 0)) {
aq.isLandscapeZeroDegrees = true;
if (Math.abs(ar) === 180 || Math.abs(ar) === 0) {
L = 90
} else {
if (Math.abs(ar) === 90) {
L = 0
}
}
}
}
setTimeout(function() {
if (ap.isInitialized()) {
U(at)
}
}, 100);
V(at.type);
DCX.logScreenviewLoad("root");
break;
case "screenview_load":
R = new Date();
u();
au = K("load", null, at.name);
break;
case "screenview_unload":
M(N, k);
au = K("unload", null, at.name);
break;
case "resize":
case "scroll":
if (!aj) {
aj = new Date()
}
X = new Date();
U(at);
break;
case "unload":
M(N, k);
if (e != null) {
J(e)
}
aj = new Date();
U(at);
DCX.logScreenviewUnload("root");
break;
case "error":
al(at);
break;
default:
v(at);
break
}
I = aw;
return au
},
onmessage: function() {}
}
});
if (DCX && typeof DCX.addModule === "function") {
DCX.addModule("usability", function(e) {
var A = e.utils
, p = {}
, C = {
updateInterval: 250,
hoverThreshold: 1000,
hoverThresholdMax: 2 * 60 * 1000,
gridCellMaxX: 10,
gridCellMaxY: 10,
gridCellMinWidth: 20,
gridCellMinHeight: 20
}
, d = 50;
function y(I) {
var H = e.getConfig() || {}
, J = H[I];
return typeof J === "number" ? J : C[I]
}
function G(O, I) {
var N = A.getValue(O, "webEvent.target", {})
, J = A.getValue(N, "element.tagName") || ""
, K = J.toLowerCase() === "input" ? A.getValue(N, "element.type") : ""
, H = A.getDcType(N)
, L = function(P) {
if (P && P.element && P.element.id) {
return P.element.id
}
return ""
}
, M = {
type: 9,
event: {
hoverDuration: O.hoverDuration,
hoverToClick: A.getValue(I, "hoverToClick")
},
target: {
origID: L(N),
id: N.id || "",
idType: N.idType || "",
name: N.name || "",
dcType: H,
type: J,
subType: K,
position: {
width: A.getValue(N, "element.offsetWidth", 0),
height: A.getValue(N, "element.offsetHeight", 0),
relXY: O.relXY
}
}
};
if ((typeof M.target.origID) === undefined || M.target.origID === "") {
delete M.target.origID
}
if ((typeof M.target.id) === undefined || M.target.id === "") {
return
}
e.post(M)
}
function i(H) {
if (H && !H.nodeType && H.element) {
H = H.element
}
return H
}
function s(H) {
H = i(H);
return !H || H === document.body || H === document.html || H === document
}
function j(H) {
H = i(H);
if (!H) {
return null
}
return H.parentNode
}
function n(H) {
H = i(H);
if (!H) {
return null
}
return H.offsetParent || H.parentElement || j(H)
}
function w(I, J) {
var H = 0;
if (!J || J === I) {
return false
}
J = j(J);
while (!s(J) && H++ < d) {
if (J === I) {
return true
}
J = j(J)
}
if (H >= d) {
A.clog("Usability isChildOf() hit iterations limit")
}
return false
}
function E(H) {
if (H.nativeEvent) {
H = H.nativeEvent
}
return H
}
function z(H) {
return E(H).target
}
function h(H) {
H = i(H);
if (!H) {
return -1
}
return H.nodeType || -1
}
function D(H) {
H = i(H);
if (!H) {
return ""
}
return H.tagName ? H.tagName.toUpperCase() : ""
}
function t(H) {
if (!H) {
return
}
if (H.nativeEvent) {
H = H.nativeEvent
}
if (H.stopPropagation) {
H.stopPropagation()
} else {
if (H.cancelBubble) {
H.cancelBubble()
}
}
}
function m(I) {
var H = D(I);
return h(I) !== 1 || H === "TR" || H === "TBODY" || H === "THEAD"
}
function g(H) {
if (!H) {
return ""
}
if (H.xPath) {
return H.xPath
}
H = i(H);
return e.getXPathFromNode(H)
}
function B(I, H) {
var J = p[I];
if (J && J[H]) {
return J[H]()
}
}
function v(I, K, J, H) {
this.xPath = I !== null ? g(I) : "";
this.domNode = I;
this.hoverDuration = 0;
this.hoverUpdateTime = 0;
this.gridX = Math.max(K, 0);
this.gridY = Math.max(J, 0);
this.parentKey = "";
this.updateTimer = -1;
this.disposed = false;
this.childKeys = {};
this.webEvent = H;
this.getKey = function() {
return this.xPath + ":" + this.gridX + "," + this.gridY
}
;
this.update = function() {
var M = new Date().getTime()
, L = this.getKey();
if (this.hoverUpdateTime !== 0) {
this.hoverDuration += M - this.hoverUpdateTime
}
this.hoverUpdateTime = M;
clearTimeout(this.updateTimer);
this.updateTimer = setTimeout(function() {
B(L, "update")
}, y("updateInterval"))
}
;
this.dispose = function(L) {
clearTimeout(this.updateTimer);
delete p[this.getKey()];
this.disposed = true;
if (L) {
var M = this.clone();
p[M.getKey()] = M;
M.update()
}
}
;
this.process = function(P) {
clearTimeout(this.updateTimer);
if (this.disposed) {
return false
}
var N = false
, O = this
, M = null
, L = 0;
if (this.hoverDuration >= y("hoverThreshold")) {
this.hoverDuration = Math.min(this.hoverDuration, y("hoverThresholdMax"));
N = true;
G(this, {
hoverToClick: !!P
});
while (typeof O !== "undefined" && L++ < d) {
O.dispose(P);
O = p[O.parentKey]
}
if (L >= d) {
A.clog("Usability process() hit iterations limit")
}
} else {
this.dispose(P)
}
return N
}
;
this.clone = function() {
var L = new v(this.domNode,this.gridX,this.gridY);
L.parentKey = this.parentKey;
return L
}
}
function F(J, H, K, I) {
return new v(J,H,K,I)
}
function r(J) {
if (J && J.position) {
return {
x: J.position.x,
y: J.position.y
}
}
J = i(J);
var H = J && J.getBoundingClientRect ? J.getBoundingClientRect() : null
, N = H ? H.left : (J ? J.offsetLeft : 0)
, M = H ? H.top : (J ? J.offsetHeight : 0)
, P = N
, O = M
, K = 0
, I = 0
, L = n(J)
, Q = 0;
while (L && Q++ < d) {
if (s(L)) {
break
}
K = L.offsetLeft - (L.scrollLeft || 0);
I = L.offsetTop - (L.scrollTop || 0);
if (K !== P || I !== O) {
N += K;
M += I;
P = K;
O = I
}
L = n(L)
}
if (Q >= d) {
A.clog("Usability calculateNodeOffset() hit iterations limit")
}
if (isNaN(N)) {
N = 0
}
if (isNaN(M)) {
M = 0
}
return {
x: N,
y: M
}
}
function a(L, J, I) {
L = i(L);
var K = r(L)
, H = J - K.x
, M = I - K.y;
if (!isFinite(H)) {
H = 0
}
if (!isFinite(M)) {
M = 0
}
return {
x: H,
y: M
}
}
function x(H, I) {
H = Math.floor(Math.min(Math.max(H, 0), 1) * 100) / 100;
I = Math.floor(Math.min(Math.max(I, 0), 1) * 100) / 100;
return H + "," + I
}
function f(L, O, N) {
L = i(L);
var J = L.getBoundingClientRect ? L.getBoundingClientRect() : null
, T = J ? J.width : L.offsetWidth
, K = J ? J.height : L.offsetHeight
, M = T && T > 0 ? Math.max(T / y("gridCellMaxX"), y("gridCellMinWidth")) : y("gridCellMinWidth")
, Q = K && K > 0 ? Math.max(K / y("gridCellMaxY"), y("gridCellMinHeight")) : y("gridCellMinHeight")
, I = Math.floor(O / M)
, H = Math.floor(N / Q)
, S = T > 0 ? O / T : 0
, P = K > 0 ? N / K : 0
, R = "";
if (!isFinite(I)) {
I = 0
}
if (!isFinite(H)) {
H = 0
}
R = x(S, P);
return {
x: I,
y: H,
relXY: R
}
}
function c(M) {
var N = M
, O = M.getKey()
, I = {}
, J = null
, L = null
, K = false
, H = 0;
I[O] = true;
while (typeof N !== "undefined" && H++ < d) {
I[N.parentKey] = true;
if (N.parentKey === "" || N.parentKey === N.getKey()) {
break
}
if (H >= d) {
A.clog("Usability cleanupHoverEvents() hit iterations limit")
}
N = p[N.parentKey]
}
for (J in p) {
if (p.hasOwnProperty(J) && !I[J]) {
N = p[J];
if (N) {
if (!K) {
K = N.process()
} else {
N.dispose()
}
}
}
}
}
function u(I, K) {
var L = null
, H = null
, J = false;
for (H in p) {
if (p.hasOwnProperty(H)) {
L = p[H];
if (L && L.domNode === I && L.getKey() !== K) {
if (!J) {
J = L.process()
} else {
L.dispose()
}
}
}
}
}
function b(L, J, K) {
if (!J) {
J = L.target
}
if (s(J)) {
return null
}
if (A.isiOS || A.isAndroid) {
return null
}
var H, Q, M, P, N, O, I;
if (!m(J)) {
H = a(J, L.position.x, L.position.y);
Q = f(J, H.x, H.y);
M = new v(J,Q.x,Q.y,L);
M.relXY = Q.relXY;
P = M.getKey();
if (p[P]) {
M = p[P]
} else {
p[P] = M
}
M.update();
if (!K) {
I = n(J);
if (I) {
O = b(L, I, true);
if (O !== null) {
N = O.getKey();
P = M.getKey();
if (P !== N) {
M.parentKey = N
}
}
}
c(M)
}
} else {
M = b(L, n(J), K)
}
return M
}
function q(H) {
H = E(H);
if (w(H.target, H.relatedTarget)) {
return
}
u(H.target)
}
function l(J) {
var K = null
, H = null
, I = false;
for (H in p) {
if (p.hasOwnProperty(H)) {
K = p[H];
if (K) {
if (!I) {
I = K.process(true)
} else {
K.dispose()
}
}
}
}
}
function o(H) {
e.performFormCompletion(true)
}
function k(I) {
var H = A.getValue(I, "target.id");
if (!H) {
return
}
switch (I.type) {
case "mousemove":
b(I);
break;
case "mouseout":
q(I);
break;
case "click":
l(I);
break;
case "submit":
o(I);
break;
default:
break
}
}
return {
init: function() {},
destroy: function() {
var I, H;
for (I in p) {
if (p.hasOwnProperty(I)) {
p[I].dispose();
delete p[I]
}
}
},
onevent: function(H) {
if (typeof H !== "object" || !H.type) {
return
}
k(H)
},
onmessage: function(H) {},
createHoverEvent: F,
cleanupHoverEvents: c,
eventMap: p
}
})
}
;
//-----------------------------------------------
// Slow Resource Logger for Static Content v1.1.5
//-----------------------------------------------
DCX.addModule("slowResource", function(c) {
var n = DCX.getModuleConfig("slowResource")
, b = false
, l = c.utils;
var e = n.responseTime, k = n.blockInitiatorTypes || [], o = n.blocklist || [], g = l.getValue(n, "mixedModeViolation", false), d = {}, h;
function f() {
if (typeof window.location.host !== "undefined") {
if (performance !== undefined) {
var q = performance.getEntriesByType("resource");
for (var p = 0; p < q.length; p++) {
j(q[p])
}
}
}
}
function i(p) {
for (var q = 0; q < o.length; ++q) {
var r = o[q];
if (p.indexOf(r) > -1) {
return true
}
}
return false
}
function j(v) {
if (k.indexOf(v.initiatorType) === -1) {
if (!d[v.name + "_" + v.fetchStart]) {
var u = v.name;
if (!i(u)) {
var r = (v.responseEnd).toFixed(2);
var w = (v.responseEnd - v.startTime).toFixed(2);
var x = (v.transferSize / 1024).toFixed(2);
if (u.indexOf("?") > -1) {
u = u.substr(0, u.indexOf("?"))
}
if (w > e) {
var s = "Slow Resource - " + v.initiatorType + " (" + (w / 1000).toFixed(2) + " secs)";
var p = {
description: s,
urlNormalized: u,
urlFull: v.name,
initiator: v.initiatorType,
response_time: w,
total_time: r,
"size(kBytes)": x
};
var t = {
description: "Slow Resource Data",
action: "retrieved",
value: p
};
if (typeof DCX !== "undefined") {
DCX.logCustomEvent("Slow Resource Data", t, 17)
}
}
d[v.name + "_" + v.fetchStart] = true
}
}
}
if (g) {
var q = v.name || "";
if (q.startsWith("http://")) {
var p = {
description: s,
urlNormalized: u,
urlFull: v.name,
initiator: v.initiatorType,
response_time: w,
total_time: r,
"size(kBytes)": x
};
var t = {
description: "Mixed Mode Violation",
value: p
};
if (typeof DCX !== "undefined") {
DCX.logCustomEvent("Slow Resource Data", t, 17)
}
}
}
}
function a() {
try {
h = new PerformanceObserver(function(q) {
q.getEntries().forEach(function(r) {
j(r)
})
}
);
h.observe({
entryTypes: ["resource"]
})
} catch (p) {}
}
function m() {
if (h) {
h.disconnect();
h = null
}
}
return {
init: function() {
n = c.getConfig();
a()
},
destroy: function() {
d = {};
m()
},
onevent: function(p) {
switch (p.type) {
case "unload":
d = {};
break;
case "screenview_unload":
break;
default:
break
}
if (typeof p !== "object" || !p.type) {
return
}
if (p) {
if (navigator.vendor.indexOf("Apple") > -1) {
setTimeout(function() {
if (document.readyState === "complete") {
f()
}
}, 300)
} else {
f()
}
}
},
version: "1.1.5"
}
});
//-----------------------------------------------
// Universal Data Layer Logging v6.4
//-----------------------------------------------
DCX.addModule("universalLogger", function(c) {
var m = DCX.getModuleConfig("universalLogger")
, e = false
, u = c.utils;
var k, o = {}, f = m.blocklistKeys || [], i = m.blocklistValues || [], d = m.maxSize || 20000, b = m.maxKeys || 500, l = m.mapping || {}, n = {}, w = m.breakout || {}, t = "", v = "", q = 0, p = 0, a = {}, s = m.maxArrayItems || 100;
function h(z, C) {
var y, B, A = false;
if (!(C && C.length)) {
return
}
for (y = 0; y < C.length; y++) {
B = C[y];
switch (typeof B) {
case "string":
A = B.includes(z);
break;
case "object":
if (B.regex) {
var x = new RegExp(B.regex,B.flag);
A = x.test(z)
}
break
}
if (A) {
break
}
}
return A
}
var g = function(x) {
var D = [{
data: x,
keys: []
}];
var K = {};
let currentSize = 0;
while (D.length > 0) {
var B = D.pop();
var x = B.data;
var I = B.keys;
for (var G in x) {
if (x.hasOwnProperty(G)) {
var F = x[G];
var y = I.slice();
y.push(G);
var J = (y && y.join(".")) || G;
if (p >= b || currentSize >= d) {
break
}
if (h(J, f) || (i || "").includes(F)) {
a.blockedData = true;
continue
}
try {
if (typeof F === "object" && F !== null) {
if (w.includes(G) && Array.isArray(F) && F.length < s) {
for (let j = 0; j < F.length; j++) {
var H = F[j];
var C = {};
for (var E in H) {
if (!i.includes(H[E]) && !h(E, f)) {
C[E] = H[E]
}
}
DCX.logCustomEvent(y.join(".") + "-array", C, 19)
}
continue
} else {
D.push({
data: F,
keys: y
})
}
} else {
if (typeof F !== "function") {
var z = F === undefined ? JSON.stringify("") : JSON.stringify(F);
K[y.join(".")] = F === undefined ? "" : F;
currentSize += z.length + y.join(".").length;
p++;
if (l[G]) {
n[l[G]] = (n[l[G]] || "") + "|" + F
}
}
}
} catch (A) {
a.badDataDetected = true
}
}
}
}
if (p >= b) {
a.maxKeysExceeded = p
}
if (currentSize >= d) {
a.maxSizeExceeded = currentSize
}
return K
};
function r() {
try {
switch (typeof m.dlObject) {
case "object":
k = m.dlObject;
case "function":
k = m.dlObject();
default:
k = window[m.dlObject]
}
} catch (z) {}
if (typeof k !== "undefined") {
e = true;
try {
o = g(k)
} catch (z) {
o = {};
a.success = false;
var y = {
dataLayer: o
};
DCX.logCustomEvent("dataLayer", y, 19)
}
if (typeof DCX !== "undefined" && p > 0) {
a.success = true;
var y = {
dataLayer: o
};
if (Object.keys(n).length > 0) {
y.mapping = n
}
DCX.logCustomEvent("dataLayer", y, 19);
if (m.pushListener) {
try {
var x = function(A, C) {
var B = A.push;
A.push = function(E) {
C(E);
n = {};
q = 0;
p = 0;
a = {};
o = g(E);
if (typeof DCX !== "undefined" && p > 0) {
a.success = true;
var D = {
dataLayer: o
};
if (Object.keys(n).length > 0) {
D.mapping = n
}
DCX.logCustomEvent("dataLayer", D, 19)
}
return B.apply(this, arguments)
}
};
x(k, function(A) {})
} catch (z) {}
}
}
}
}
return {
init: function() {
m = c.getConfig()
},
destroy: function() {
e = false
},
onevent: function(x) {
switch (x.type) {
case "load":
setTimeout(function() {
r()
}, DCX.getModuleConfig("universalLogger").delay);
break;
case "screenview_load":
setTimeout(function() {
r()
}, DCX.getModuleConfig("universalLogger").delay);
break;
case "unload":
e = false;
break;
default:
break
}
},
version: "6.4"
}
});
//-----------------------------------------------
// UTM Campaign Logger v1.3
//-----------------------------------------------
if (DCX && typeof DCX.addModule === "function") {
DCX.addModule("utmLogger", function(c) {
var k = {}, f = false, m, o = c.utils, p, i, b, r, q, n = [];
function a(z, v) {
var w = new Date();
var y = {
value: z,
expiry: w.getTime() + v * (24 * 60 * 60 * 1000),
};
var x = "utmCampaign_" + y.expiry;
localStorage.setItem(x, JSON.stringify(y));
n.push(x)
}
function l() {
var v = new Date();
n = n.filter(function(x) {
var w = localStorage.getItem(x);
if (w) {
var y = JSON.parse(w);
if (v.getTime() < y.expiry) {
return true
} else {
localStorage.removeItem(x);
q = Number(q) - 1;
localStorage.setItem("utmCount", q);
return false
}
}
return false
})
}
function e(v) {
var w = JSON.parse(localStorage.getItem(v) || "{}");
return w && w.value
}
function t(w, v) {
w = w.replace(/[\[\]]/g, "\\$&");
var y = new RegExp("[?&]" + w + "(=([^]*)|&|#|$)")
, x = y.exec(v);
if (!x) {
return null
}
if (!x[2]) {
return ""
}
return decodeURIComponent(x[2].replace(/\+/g, " "))
}
function h() {
var x = s(), v;
n = u();
l();
if (x) {
if (!j(x)) {
q = Number(q) + 1;
localStorage.setItem("utmCount", q);
a(x, p)
}
}
if (Number(q) > 0 || x) {
for (var w = 0; w < n.length; w++) {
var x = {};
x = e(n[w]);
if (x) {
if (typeof DCX !== "undefined") {
v = {
type: 21,
utmData: x
};
c.post(v)
}
}
sessionStorage.setItem("utmLogger", true)
}
}
}
function s() {
if (t("utm_campaign", window.location.href)) {
return {
utm_campaign: t("utm_campaign", window.location.href),
utm_content: t("utm_content", window.location.href) || "",
utm_medium: t("utm_medium", window.location.href) || "",
utm_source: t("utm_source", window.location.href) || "",
utm_term: t("utm_term", window.location.href) || "",
DCXVID: localStorage.getItem("X-DCXVID") || "",
TLTSID: r
}
}
return null
}
function u() {
return Object.keys(localStorage).filter(function(v) {
return v.startsWith("utmCampaign_")
}).reduce(function(v, w) {
v.push(w);
return v
}, [])
}
function j(v) {
return n.some(function(w) {
const x = e(w);
return (x && x.utm_campaign === v.utm_campaign && x.utm_content === v.utm_content && x.utm_medium === v.utm_medium && x.utm_source === v.utm_source && x.DCXVID === v.DCXVID && x.TLTSID === v.TLTSID)
})
}
function g() {
var w = DCX.getModuleConfig("DCCookie") || {}
, v = w.sessionizationCookieName || "TLTSID"
, x = o.getCookieValue(v);
return x
}
function d(v) {
m = o.getValue(v, "utmEnabled", false);
p = o.getValue(v, "maxDays", 90),
i = o.getValue(v, "maxCampaigns", 50),
b = localStorage.getItem("X-DCXVID"),
q = localStorage.getItem("utmCount") || 0,
r = g()
}
return {
init: function() {
k = c.getConfig();
d(k)
},
destroy: function() {
f = false
},
onevent: function(v) {
switch (v.type) {
case "load":
if (m) {
h()
}
f = true;
break;
case "unload":
f = false;
break;
default:
break
}
},
version: "1.3"
}
})
}
;
//-----------------------------------------------------
// DOM Mutation Observer for Dynamic DOM Updates v4.1.12
//-----------------------------------------------------
DCX.addModule("DOMObserver",function(d){var g=DCX.getModuleConfig("DOMObserver"),f=false,c=d.utils,b=g.targets||[];function a(){var h=b.find(function(i){return i.styleTarget});if(h){return["id","class","style"]}else{return["id","class"]}}function e(){var k={attributes:true,attributesOldValue:true,attributeFilter:a(),subtree:true,childList:true,characterData:false,characterDataOldValue:false};var q=b.find(function(i){return i.attributeTarget});var l=function(u,t){var s=!t?document.querySelector(u.selector):t.querySelector(u);if(s){var i=new MutationObserver(function(v){var w=0;v.forEach(function(z){var C="",B=undefined,y=undefined;if(z.type==="attributes"||z.type==="childList"){z.addedNodes.forEach(function(D){B=undefined;B=b.find(function(E){if(E.selector.indexOf(z.target.className)>-1&&z.className!=""){return(E)}});if(!B){B=b.find(function(E){if(E.selector.indexOf(z.target.id)>-1&&z.target.id!=""){return(E)}})}if(!B){B=b.find(function(E){if(E.selector.toLowerCase().indexOf(z.target.nodeName.toLowerCase())>-1){return(E)}})}if(!B){B=b.find(function(E){if(E.selector.toLowerCase()==="body"){return(E)}})}if(B&&(B.maxEvents>w||B.maxEvents===0)){if(typeof(D.id)==="string"&&B&&(B.added===1||B.added===2)){if(D.id===B.childNode){C=B.eventName}}if(typeof(D.className)==="string"&&B&&C===""&&(B.added===1||B.added===2)){if(D.className===B.childNode){C=B.eventName}}if(typeof(D.outerHTML)==="string"&&B&&C===""&&(B.added===1||B.added===2)){if(D.outerHTML.indexOf(B.childNode)>-1){C=B.eventName}}if(typeof(D.nodeValue)==="string"&&B&&C===""&&(B.added===1||B.added===2)){if(D.nodeValue.indexOf(B.childNode)>-1){C=B.eventName}}if(typeof(D.nodeName)==="string"&&D.nodeName==="#text"&&B&&C===""&&(B.added===1||B.added===2)){if(D.nodeName.indexOf(B.childNode)>-1){C=B.eventName}}}});z.removedNodes.forEach(function(D){B=undefined;B=b.find(function(E){if(E.selector.indexOf(z.target.className)>-1&&z.className!=""){return(E)}});if(!B){B=b.find(function(E){if(E.selector.indexOf(z.target.id)>-1&&z.target.id!=""){return(E)}})}if(!B){B=b.find(function(E){if(E.selector.toLowerCase().indexOf(z.target.nodeName.toLowerCase())>-1){return(E)}})}if(!B){B=b.find(function(E){if(E.selector.toLowerCase()==="body"){return(E)}})}if(B&&(B.maxEvents>w||B.maxEvents===0)){if(typeof(D.id)==="string"&&B&&(B.added===0||B.added===2)){if(D.id===B.childNode){C=B.eventName}}if(typeof(D.className)==="string"&&B&&C===""&&(B.added===0||B.added===2)){if(D.className===B.childNode){C=B.eventName}}if(typeof(D.outerHTML)==="string"&&B&&C===""&&(B.added===0||B.added===2)){if(D.outerHTML.indexOf(B.childNode)>-1){C=B.eventName}}if(typeof(D.nodeValue)==="string"&&B&&C===""&&(B.added===0||B.added===2)){if(D.nodeValue.indexOf(B.childNode)>-1){C=B.eventName}}}});if(!z.removedNodes.length&&!z.addedNodes.length&&z.type==="attributes"){if(z.attributeName==="style"||(z.attributeName==="class"&&q)){var A=z.attributeName==="style"?"styleTarget":"attributeTarget";B=b.find(function(D){if(D[A]&&z.target.className.indexOf(D[A])>-1&&z.target.className!=""){return(D)}});if(B&&(B.maxEvents>w||B.maxEvents===0)){if(C===""&&(B.added===1||B.added===2)){if(z.target.outerHTML.indexOf(B.childNode)>-1){C=B.eventName}}}}}if(typeof DCX!=="undefined"&&C!==""){if(typeof B.customFunction==="string"){y=c.access(B.customFunction)}else{y=B.customFunction}if(typeof y==="function"){y(z.target,B.eventName)}var x=new CustomEvent(B.eventName);document.dispatchEvent(x);w=w+1}}})});i.observe(s,k)}};var o=function(x){var w=0,s,v;var u=function(z){v=setTimeout(function(){var A=new CustomEvent(z);document.dispatchEvent(A)},1000)};var t=function(C,A,z){if(!C||!z){return}var B=false;if(typeof z==="string"){B=C.querySelector(z)!==null}else{if(Array.isArray(z)){B=z.some(function(D){return C.querySelector(D)})}}if(B){u(A)}};var y=function(){var B=[];B=Array.from(document.querySelectorAll(x.selector));if(B.length>0){if(!s){var A=0;var z=B.length<8?B.length:8;s=new IntersectionObserver(function(C,D){C.forEach(function(J){var F=Array.from(document.querySelectorAll(x.selector)),I=B.length!==F.length&&B.length=4){clearInterval(i)}else{w++}}};var i=setInterval(y,x.interval)};var r=function(s,u,i){var i=c.getIFrameWindow(s);try{if(i&&i.document&&i.location.href!=="about:blank"){l(u,i.document)}}catch(t){}};for(var m=0;m size in bytes (0 = remove all base64 images)
captureJSS: true,
// Capture CSS Styles for React/JSS sites
customStyle: `
body {
opacity: 1 !important;
}
`
}
},
browser: {
sizzleObject: "window.Sizzle",
jQueryObject: "window.jQuery",
customid: ["data-dcxid", "name"]
}
},
modules: {
usability: {
hoverThreshold: 2000 // ms
},
performance: {
calculateRenderTime: true,
renderTimeThreshold: 600000,
filter: {
navigationStart: false,
unloadEventStart: false,
unloadEventEnd: false,
redirectStart: false,
redirectEnd: false,
fetchStart: false,
domainLookupStart: false,
domainLookupEnd: false,
connectStart: false,
connectEnd: false,
secureConnectionStart: false,
requestStart: false,
responseStart: false,
responseEnd: false,
domLoading: false,
domInteractive: false,
domContentLoadedEventStart: false,
domContentLoadedEventEnd: false,
domComplete: false,
loadEventStart: false,
loadEventEnd: false
}
},
replay: {
// Geolocation configuration
geolocation: {
enabled: false,
triggers: [{
event: "load"
}]
},
// DOM Capture configuration
domCapture: {
enabled: true,
triggers: [{
event: "load",
fullDOMCapture: true,
delay: 700 // ms
}, {
event: "click",
targets: ["input[type=radio]", "input[type=checkbox]"],
delay: 100 // ms -- Assists with Replay Fidelity on dynamic radio buttons & checkboxes
}, {
event: "click",
targets: ["button.login-button"],
fullDOMCapture: true,
delay: 500 // ms
}, {
event: "click",
}, {
event: "change"
}, {
event: "DCXLazyLoad",
fullDOMCapture: true,
delay: 500 // ms
}, {
event: "FormResponse",
fullDOMCapture: true,
delay: 500 // ms
}, {
event: "SearchSuggestion",
fullDOMCapture: true,
delay: 500 // ms
}, {
event: "errorAlert",
fullDOMCapture: true,
delay: 500 // ms
}, {
event: "SearchResults",
delay: 100, // ms
fullDOMCapture: true,
},
{
event: "LoginNameDisplay",
delay: 500, // ms
fullDOMCapture: true,
},
{
event: "ProductSpecSpinner",
delay: 100, // ms
fullDOMCapture: true
},
{
event: "EducatorHubSpinner",
delay: 100, // ms
fullDOMCapture: true
}
,
{
event: "LoginError",
delay: 100, // ms
fullDOMCapture: true
}
]
}
},
DCCookie: {
appCookieWhitelist: [{
regex: ".*"
}],
dcAppKey: ""
},
slowResource: {
responseTime: 3000,
// Time in ms to log slow static content - Recommended 3000+
blockInitiatorTypes: [],
blocklist: [],
mixedModeViolation: false
},
universalLogger: {
dlObject: "adobeDataLayer",
// Data Layer object to record (Place in quotes)
blocklistKeys: [],
// List of keys to skip logging
blocklistValues: [],
// List of values to skip logging
pushListener: true,
// Monitor the data layer for push events after initial capture
mapping: {},
breakout: [],
// list of keys to breakout into custom events
maxArrayItems: 100,
// maximum items to break out of an array
maxSize: 20000,
// maximum bytes to log
maxKeys: 500,
// maximum number of items to log
delay: 500 // milliseconds to delay first Data Layer inspection
},
utmLogger: {
utmEnabled: true,
maxDays: 90,
maxCampaigns: 50
},
DOMObserver: {
targets: [
// Iframes on load
{
selector: "fd-row guideGridFluidLayout2Container",
// Parent selector
childNode: "guideContainer-rootPanel",
// attributeTarget: 'loadingPage',
// Name of event to log in DCX (must configure in UIC)
eventName: "FormResponse",
added: 1,
// make lazyLoad true if page has lazy loading
maxEvents: 1,
// Set min interval 1000ms, so dom get ready.
customFunction: false
},
// error message on login
{
selector: ".guideFieldError",
childNode: '#text',
eventName: "FormResponse",
added: 1,
maxEvents: 0,
customFunction: false
},
// Thank you message
{
selector: ".aemformcontainer",
// Parent selector
childNode: "tyMessage",
// Name of event to log in DCX (must configure in UIC)
eventName: "FormResponse",
added: 1,
// make lazyLoad true if page has lazy loading
maxEvents: 0,
// Set min interval 1000ms, so dom get ready.
customFunction: false
},
{
selector: ".cmp-suggestions-list",
// Parent selector
childNode: "cmp-suggestions-list-item",
// Look for child node to trigger snapshot (blank for ANY)
eventName: "SearchSuggestion",
// Name of event to log in DCX (must configure in UIC)
added: 1,
maxEvents: 1,
customFunction: false
},
{
selector: ".cmp-login-button",
// Parent selector
childNode: "#text",
// Look for child node to trigger snapshot (blank for ANY)
eventName: "LoginNameDisplay",
// Name of event to log in DCX (must configure in UIC)
added: 1,
maxEvents: 1,
customFunction: false
},
{
selector: ".cmp-account active",
// Parent selector
childNode: "#text",
// Look for child node to trigger snapshot (blank for ANY)
eventName: "LoginError",
// Name of event to log in DCX (must configure in UIC)
added: 1,
maxEvents: 1,
customFunction: false
},
// Iframes on load
{
selector: "#aemFormFrame",
// Parent selector
childNode: "p.cmp-login__form-input__error.loginErr4",
// Look for child node to trigger snapshot (blank for ANY)
eventName: "FormResponse",
// Name of event to log in DCX (must configure in UIC)
added: 2,
maxEvents: 0,
iframeSelector: 'body',
customFunction: false
},
]
},
rageClicks: {
clickInterval: 4000,
// Ms between first registered click of element and current click to determine if Rage Click
rageMin: 5,
// Minimum number of times an element is clicked on within the clickInterval before being classed as Rage Click
}
}
};
//----------------------------------------------------------------------------------------------------------
//--------------------------------------------------------------------------------- Alternate FireFox Config
//----------------------------------------------------------------------------------------------------------
if (navigator.userAgent.indexOf("Firefox") !== -1) {
//------------------------- Work arond for FETCH issues
config.services.queue.asyncReqOnUnload = false;
config.services.queue.useFetch = false;
config.services.queue.endpointCheck = true;
config.services.queue.endpointCheckTimeout = 2000;
}
//----------------------------------------------------------------------------------------------------------
//------------------------------------------------------------------------------------- Alternate IE Configs
//----------------------------------------------------------------------------------------------------------
if (document.documentMode === 10) {
//-------------------------- Alternate config for IE10 (No Diff Support)
config.services.queue.useFetch = false;
config.services.queue.useBeacon = false;
config.services.queue.DCXWorker = false;
config.services.domCapture.diffEnabled = false;
config.modules.replay.domCapture.triggers = [{
event: 'click',
targets: ['a', 'a *', 'button', 'button *']
}, {
event: "change"
}, {
event: "load",
delay: 500
}];
}
if (document.documentMode === 11) {
//-------------------------------------------- Alternate Config for IE11
config.services.queue.useFetch = false;
config.services.queue.useBeacon = false;
config.services.queue.DCXWorker = false;
config.services.message.privacyPatterns = [];
}
if (config.modules.DOMObserver && config.modules.DOMObserver.targets) {
if (location.pathname.startsWith('/products')) {
config.modules.DOMObserver.targets.push({
selector: '.productspecs',
styleTarget: 'cmp-parts-spec-accordion-loader',
childNode: "display: none",
added: 1,
maxEvents: 1,
customFunction: false,
eventName: "ProductSpecSpinner",
}, {
selector: '.productspecgrid',
styleTarget: 'cmp-product-spec-grid_loader',
childNode: "display: none",
added: 1,
maxEvents: 1,
customFunction: false,
eventName: "ProductSpecSpinner",
});
} else {
// Remove any existing ProductSpecSpinner target
config.modules.DOMObserver.targets = config.modules.DOMObserver.targets.filter(
target => target.eventName !== "ProductSpecSpinner"
);
}
if (location.pathname.startsWith('/educatorhub')) {
config.modules.DOMObserver.targets.push({
selector: '.cmp-tile-results',
styleTarget: 'cmp-tile-loading-wrap',
childNode: "display: none",
added: 1,
maxEvents: 1,
customFunction: false,
eventName: "EducatorHubSpinner",
});
} else {
// Remove any existing ProductSpecSpinner target
config.modules.DOMObserver.targets = config.modules.DOMObserver.targets.filter(
target => target.eventName !== "EducatorHubSpinner"
);
}
if (location.pathname.startsWith('/search-results')) {
config.modules.DOMObserver.targets.push( // Search spinner
{
selector: "cmp-search-results__content",
childNode: "cmp-search-results__tile-title",
added: 1,
maxEvents: 1,
customFunction: false,
eventName: "SearchResults",
},
// No search results
{
selector: ".cmp-search-filter-results",
childNode: "cmp-search-results hidden",
attributeTarget: 'cmp-search-results',
added: 1,
maxEvents: 1,
customFunction: false,
eventName: "SearchResults",
});
} else {
// Remove any existing ProductSpecSpinner target
config.modules.DOMObserver.targets = config.modules.DOMObserver.targets.filter(
target => target.eventName !== "SearchResults"
);
}
}
DCX.init(config);
}());
};