Skip to content

Instantly share code, notes, and snippets.

@steckel
Created February 28, 2019 17:06
Show Gist options
  • Save steckel/c9f2e7c1760ceac2d07f3cbc8568c0c7 to your computer and use it in GitHub Desktop.
Save steckel/c9f2e7c1760ceac2d07f3cbc8568c0c7 to your computer and use it in GitHub Desktop.
//!Portions of this code are licensed under the following license:
//! * @overview es6-promise - a tiny implementation of Promises/A+.
//! * @copyright Copyright (c) 2014 Yehuda Katz, Tom Dale, Stefan Penner and contributors (Conversion to ES6 API by Jake Archibald)
//! * @license Licensed under MIT license
//! * See https://raw.githubusercontent.com/stefanpenner/es6-promise/master/LICENSE
//! * @version 4.1.0+f9a5575b
!function(e) {
var t = {};
function n(r) {
if (t[r])
return t[r].exports;
var i = t[r] = {
i: r,
l: !1,
exports: {}
};
return e[r].call(i.exports, i, i.exports, n),
i.l = !0,
i.exports
}
n.m = e,
n.c = t,
n.d = function(e, t, r) {
n.o(e, t) || Object.defineProperty(e, t, {
enumerable: !0,
get: r
})
}
,
n.r = function(e) {
"undefined" != typeof Symbol && Symbol.toStringTag && Object.defineProperty(e, Symbol.toStringTag, {
value: "Module"
}),
Object.defineProperty(e, "__esModule", {
value: !0
})
}
,
n.t = function(e, t) {
if (1 & t && (e = n(e)),
8 & t)
return e;
if (4 & t && "object" == typeof e && e && e.__esModule)
return e;
var r = Object.create(null);
if (n.r(r),
Object.defineProperty(r, "default", {
enumerable: !0,
value: e
}),
2 & t && "string" != typeof e)
for (var i in e)
n.d(r, i, function(t) {
return e[t]
}
.bind(null, i));
return r
}
,
n.n = function(e) {
var t = e && e.__esModule ? function() {
return e["default"]
}
: function() {
return e
}
;
return n.d(t, "a", t),
t
}
,
n.o = function(e, t) {
return Object.prototype.hasOwnProperty.call(e, t)
}
,
n.p = "",
n(n.s = 29)
}([function(e, t, n) {
"use strict";
var r, i = this && this.__awaiter || function(e, t, n, r) {
return new (n || (n = Promise))(function(i, o) {
function s(e) {
try {
u(r.next(e))
} catch (e) {
o(e)
}
}
function a(e) {
try {
u(r["throw"](e))
} catch (e) {
o(e)
}
}
function u(e) {
e.done ? i(e.value) : new n(function(t) {
t(e.value)
}
).then(s, a)
}
u((r = r.apply(e, t || [])).next())
}
)
}
, o = this && this.__generator || function(e, t) {
var n, r, i, o, s = {
label: 0,
sent: function() {
if (1 & i[0])
throw i[1];
return i[1]
},
trys: [],
ops: []
};
return o = {
next: a(0),
"throw": a(1),
"return": a(2)
},
"function" == typeof Symbol && (o[Symbol.iterator] = function() {
return this
}
),
o;
function a(o) {
return function(a) {
return function(o) {
if (n)
throw new TypeError("Generator is already executing.");
for (; s; )
try {
if (n = 1,
r && (i = 2 & o[0] ? r["return"] : o[0] ? r["throw"] || ((i = r["return"]) && i.call(r),
0) : r.next) && !(i = i.call(r, o[1])).done)
return i;
switch (r = 0,
i && (o = [2 & o[0], i.value]),
o[0]) {
case 0:
case 1:
i = o;
break;
case 4:
return s.label++,
{
value: o[1],
done: !1
};
case 5:
s.label++,
r = o[1],
o = [0];
continue;
case 7:
o = s.ops.pop(),
s.trys.pop();
continue;
default:
if (!(i = (i = s.trys).length > 0 && i[i.length - 1]) && (6 === o[0] || 2 === o[0])) {
s = 0;
continue
}
if (3 === o[0] && (!i || o[1] > i[0] && o[1] < i[3])) {
s.label = o[1];
break
}
if (6 === o[0] && s.label < i[1]) {
s.label = i[1],
i = o;
break
}
if (i && s.label < i[2]) {
s.label = i[2],
s.ops.push(o);
break
}
i[2] && s.ops.pop(),
s.trys.pop();
continue;
}
o = t.call(e, s)
} catch (e) {
o = [6, e],
r = 0
} finally {
n = i = 0
}
if (5 & o[0])
throw o[1];
return {
value: o[0] ? o[1] : void 0,
done: !0
}
}([o, a])
}
}
}
;
Object.defineProperty(t, "__esModule", {
value: !0
});
var s = n(10)
, a = n(6)
, u = n(5)
, c = n(1)
, h = n(12);
t._native_bind = function(e, t) {
for (var n = [], r = 2; r < arguments.length; r++)
n[r - 2] = arguments[r];
return e.bind.apply(e, [t].concat(n))
}
,
t._js_bind = function(e, t) {
for (var n = [], r = 2; r < arguments.length; r++)
n[r - 2] = arguments[r];
return function() {
var r = Array.prototype.slice.call(arguments);
e.call.apply(e, [t].concat(n, r))
}
}
,
t.bind = Function.prototype.bind ? t._native_bind : t._js_bind,
t._native_map = function(e, t, n) {
return e.map(t, n)
}
,
t._js_map = function(e, t, n) {
for (var r = Array(e.length), i = 0; i < e.length; i++)
r[i] = t.call(n, e[i], i, e);
return r
}
,
t.map = Array.prototype.map ? t._native_map : t._js_map,
t._native_trim = function(e) {
return e.trim()
}
,
t._js_trim = function(e) {
return e.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g, "")
}
,
t.trim = String.prototype.trim ? t._native_trim : t._js_trim,
t._native_filter = function(e, t, n) {
return e.filter(t, n)
}
,
t._js_filter = function(e, t, n) {
for (var r = Array(e.length), i = 0; i < e.length; i++)
r[i] = t.call(n, e[i], i, e);
return r
}
,
t.filter = Array.prototype.filter ? t._native_filter : t._js_filter;
function d() {
var e = function(e) {
return e.matches || e.msMatchesSelector || e.webkitMatchesSelector
}
, t = e(window.Element.prototype)
, n = window.document ? window.document.documentElement : void 0;
return !n || t && n instanceof window.Element || (t = e(n)),
[t, function(e, n) {
return t.call(e, n)
}
]
}
t.isArray = u.windex.arrayIsArray ? function(e) {
return u.windex.arrayIsArray(e)
}
: function(e) {
return "[object Array]" == u.windex.objectToString.call(e)
}
,
t._native_keys = function(e) {
return u.windex.objectKeys(e)
}
,
t._js_keys = function(e) {
var t = [];
for (var n in e)
u.windex.objectHasOwnProp(e, n) && t.push(n);
return t
}
,
t.keys = "function" == typeof u.windex.objectKeys ? t._native_keys : t._js_keys,
t.setMatchesSelector = function(e) {
t.matchesSelector = e
}
,
t.setUpMatchesSelector = d,
r = d(),
t._native_matchesSelector = r[0],
t.matchesSelector = r[1],
t.hasPrefix = function(e, t) {
return 0 == e.lastIndexOf(t, 0)
}
,
t.hasSuffix = function(e, t) {
return !(t.length > e.length) && e.substring(e.length - t.length) == t
}
,
t.forIn = function(e, t) {
for (var n in e)
u.windex.objectHasOwnProp(e, n) && t(e[n], n, e)
}
,
t.forInAsync = function(e, t) {
return i(this, void 0, a.FSPromise, function() {
var n, r, i, s;
return o(this, function(o) {
switch (o.label) {
case 0:
for (r in n = [],
e)
n.push(r);
i = 0,
o.label = 1;
case 1:
return i < n.length ? (s = n[i],
u.windex.objectHasOwnProp(e, s) ? [4, t(e[s], s, e)] : [3, 3]) : [3, 4];
case 2:
o.sent(),
o.label = 3;
case 3:
return i++,
[3, 1];
case 4:
return [2];
}
})
})
}
,
t.firstKey = function(e) {
for (var t in e)
if (Object.prototype.hasOwnProperty.call(e, t))
return t
}
,
t.firstValue = function(e) {
for (var t in e)
if (Object.prototype.hasOwnProperty.call(e, t))
return e[t]
}
,
t.hasNKeys = function(e, t) {
var n = 0;
for (var r in e)
if (Object.prototype.hasOwnProperty.call(e, r) && ++n > t)
return !1;
return n == t
}
,
t.hasMoreThanNKeys = function(e, t) {
var n = 0;
for (var r in e)
if (Object.prototype.hasOwnProperty.call(e, r) && ++n > t)
return !0;
return !1
}
;
t.nextSibling = s.uaIsIE ? function(e) {
var t = e.nextSibling;
return t && e.parentNode && t === e.parentNode.firstChild ? null : t
}
: function(e) {
return e.nextSibling
}
;
t.forEachNextSibling = s.uaIsIE ? function(e, t) {
if (e) {
var n = e.parentNode ? e.parentNode.firstChild : null;
do {
t(e),
e = e.nextSibling
} while (e && e != n)
}
}
: function(e, t) {
for (; e; e = e.nextSibling)
t(e)
}
;
function l(e, t) {
if (!e)
return h.doNothing;
var n = function(e) {
try {
var t = window;
return t.Zone && t.Zone.root && "function" == typeof t.Zone.root.wrap ? t.Zone.root.wrap(e) : e
} catch (t) {
return e
}
}(e);
return t && (n = n.bind(t)),
h.guard(n, function(e) {
c.logIfDebug("Unexpected error: " + e)
})
}
function f(e) {
var t = "Internal error: unable to determine what JSON error was";
try {
t = (t = "" + e).replace(/[^a-zA-Z0-9\.\:\!\, ]/g, "_")
} catch (e) {}
return "\"" + t + "\""
}
t.previousSibling = s.uaIsIE ? function(e) {
var t = e.previousSibling;
return t && e.parentNode && t === e.parentNode.lastChild ? null : t
}
: function(e) {
return e.previousSibling
}
,
t.values = function(e) {
if (u.windex.objectValues)
return u.windex.objectValues(e || {});
var t = [];
for (var n in e)
e.hasOwnProperty(n) && t.push(e[n]);
return t
}
,
t.$entry = l,
t.stringify = function(e) {
var t, n = Array.prototype.toJSON, r = String.prototype.toJSON;
n && (Array.prototype.toJSON = void 0),
r && (String.prototype.toJSON = void 0);
try {
t = u.windex.jsonStringify(e)
} catch (e) {
t = f(e)
} finally {
n && (Array.prototype.toJSON = n),
r && (String.prototype.toJSON = r)
}
return t
}
,
t.jsonErrorString = f,
t.doctypeString = function(e) {
var t = e.doctype;
if (!t)
return "";
var n = "<!DOCTYPE ";
return n += t.name,
t.publicId && (n += " PUBLIC \"" + t.publicId + "\""),
t.systemId && (n += " \"" + t.systemId + "\""),
n + ">"
}
,
t.parseJson = function(e) {
return u.windex.jsonParse(e)
}
,
t.tryGetScreenDims = function(e) {
var t = 0
, n = 0;
return null == e.screen ? [t, n] : (t = parseInt(String(e.screen.width)),
n = parseInt(String(e.screen.height)),
[t = isNaN(t) ? 0 : t, n = isNaN(n) ? 0 : n])
}
;
var p = function() {
function e(e, t) {
this.target = e,
this.propertyName = t,
this._before = h.doNothing,
this._afterSync = h.doNothing,
this._afterAsync = h.doNothing,
this.on = !1,
this.attached = !1,
this["native"] = e[t]
}
return e.prototype.before = function(e) {
return this._before = l(e),
this
}
,
e.prototype.afterSync = function(e) {
return this._afterSync = l(e),
this
}
,
e.prototype.afterAsync = function(e) {
var t = this;
return this._afterAsync = l(function(e) {
u.windex.setWindowTimeout(window, h.guard(function() {
t._afterAsync(e)
}), 0)
}),
this
}
,
e.prototype.disable = function() {
this.on = !1,
this.target[this.propertyName] == this.shim && (this.target[this.propertyName] = this["native"],
this.attached = !1)
}
,
e.prototype.enable = function() {
if (this.on = !0,
this.attached)
return !0;
this.shim || (this.shim = this.makeShim());
try {
this.target[this.propertyName] = this.shim
} catch (e) {
return !1
}
return this.attached = !0,
!0
}
,
e.prototype.makeShim = function() {
var e = this;
return function() {
var t = {
that: this,
args: arguments
};
e.on && e._before(t);
var n = e["native"].apply(this, arguments);
return e.on && (e._afterSync(t),
e._afterAsync(t)),
n
}
}
,
e
}()
, _ = {};
t.activateHook = function(e, t) {
if (!e || "function" != typeof e[t])
return null;
var n;
_[t] = _[t] || [];
for (var r = 0; r < _[t].length; r++)
_[t][r].obj == e && (n = _[t][r].hook);
return n || (n = new p(e,t),
_[t].push({
obj: e,
hook: n
})),
n.enable() ? n : null
}
}
, function(e, t, n) {
"use strict";
Object.defineProperty(t, "__esModule", {
value: !0
});
var r = !1;
function i() {
return r
}
t.initDebug = function(e) {
r = e
}
,
t.isDebug = i,
t.logIfDebug = function(e) {
i() && window.console && console.log(e)
}
}
, function(e, t, n) {
"use strict";
Object.defineProperty(t, "__esModule", {
value: !0
});
var r = n(17)
, i = n(1)
, o = n(7)
, s = n(19)
, a = n(12)
, u = 10
, c = "[anonymous]"
, h = /function\s*([\w\-$]+)?\s*\(/i;
function d(e) {
return e.stack || e.backtrace || e.stacktrace
}
var l = function() {
function e() {}
return e.wrap = function(t, n) {
return void 0 === n && (n = "error"),
a.guard(t, function(t) {
return e.sendToBugsnag(t, n)
})
}
,
e.errorLimit = 15,
e.sendToBugsnag = function(t, n, a) {
if (!(e.errorLimit <= 0)) {
e.errorLimit--,
"string" == typeof t && (t = new Error(t));
var l = r.getCookies(document).fs_uid
, f = l ? r.parseIdentityCookie(l) : void 0;
f && f.OrgId != o._fs_org(window) && (f = void 0);
var p = Date.now()
, _ = new Date(1e3 * s.CompiledTimestamp).toISOString()
, g = {
projectRoot: window.location.origin,
deviceTime: p,
inIframe: function() {
try {
return window.self !== window.top
} catch (e) {
return !0
}
}(),
CompiledTimestamp: s.CompiledTimestamp,
CompiledTime: _,
orgId: o._fs_org(window),
"userId:sessionId": f ? f.UserId + ":" + f.SessionId : "NA",
context: document.location && document.location.pathname,
message: t.message,
name: "Recording Error",
releaseStage: "production " + _,
severity: n,
language: navigator.language || navigator.userLanguage || "en-GB",
stacktrace: d(t) || function() {
var e, t;
try {
throw new Error("")
} catch (n) {
e = "<generated>\n",
t = d(n)
}
if (!t) {
e = "<generated-ie>\n";
var n = [];
try {
for (var r = arguments.callee.caller.caller; r && n.length < u; ) {
var o = h.test(r.toString()) && RegExp.$1 || c;
n.push(o),
r = r.caller
}
} catch (e) {
i.logIfDebug(e)
}
t = n.join("\n")
}
return e + t
}()
};
if (a)
for (var v in a)
g["aux_" + v] = a[v];
var y = [];
for (var v in g)
y.push(encodeURIComponent(v) + "=" + encodeURIComponent(g[v]));
new Image().src = "https://" + o._fs_rec_host(window) + "/rec/except?" + y.join("&")
}
}
,
e
}();
t.FsBugSnag = l;
var f = {};
t.assert = function(e, t, n) {
if (void 0 === n && (n = 1),
e)
return !0;
if (f[t] = f[t] || 0,
f[t]++,
f[t] > n)
return !1;
var r = new Error("Assertion failed: " + t);
return l.sendToBugsnag(r, "error"),
e
}
}
, function(e, t, n) {
"use strict";
Object.defineProperty(t, "__esModule", {
value: !0
}),
t.EVENT_MUT_INSERT = 2,
t.EVENT_MUT_REMOVE = 3,
t.EVENT_MUT_ATTR = 4,
t.EVENT_MUT_ATTR_CURVE = 5,
t.EVENT_MUT_TEXT = 6,
t.EVENT_MUT_SKIPIDS = 7,
t.EVENT_MOUSEMOVE = 8,
t.EVENT_MOUSEMOVE_CURVE = 9,
t.EVENT_SCROLL_LAYOUT = 10,
t.EVENT_SCROLL_LAYOUT_CURVE = 11,
t.EVENT_MOUSEDOWN = 12,
t.EVENT_MOUSEUP = 13,
t.EVENT_KEYDOWN = 14,
t.EVENT_KEYUP = 15,
t.EVENT_CLICK = 16,
t.EVENT_FOCUS = 17,
t.EVENT_VALUECHANGE = 18,
t.EVENT_RESIZE_LAYOUT = 19,
t.EVENT_DOMLOADED = 20,
t.EVENT_LOAD = 21,
t.EVENT_PLACEHOLDER_SIZE = 22,
t.EVENT_UNLOAD = 23,
t.EVENT_BLUR = 24,
t.EVENT_SET_FRAME_BASE = 25,
t.EVENT_TOUCHSTART = 32,
t.EVENT_TOUCHEND = 33,
t.EVENT_TOUCHCANCEL = 34,
t.EVENT_TOUCHMOVE = 35,
t.EVENT_TOUCHMOVE_CURVE = 36,
t.EVENT_NAVIGATE = 37,
t.EVENT_PLAY = 38,
t.EVENT_PAUSE = 39,
t.EVENT_RESIZE_VISUAL = 40,
t.EVENT_RESIZE_VISUAL_CURVE = 41,
t.EVENT_LOG = 48,
t.EVENT_ERROR = 49,
t.EVENT_DBL_CLICK = 50,
t.EVENT_FORM_SUBMIT = 51,
t.EVENT_WINDOW_FOCUS = 52,
t.EVENT_WINDOW_BLUR = 53,
t.EVENT_HEARTBEAT = 54,
t.EVENT_WATCHED_ELEM = 56,
t.PerfEntryTiming = 0,
t.PerfEntryNavigation = 1,
t.PerfEntryResource = 2,
t.PerfEntryPaint = 3,
t.PerfEntryMark = 4,
t.PerfEntryMeasure = 5,
t.PerfEntryMemory = 6,
t.EVENT_PERF_ENTRY = 57,
t.RecFeaturePerformance = 0,
t.RecFeaturePerformanceEntries = 1,
t.RecFeaturePerformanceMemory = 2,
t.RecFeatureConsole = 3,
t.RecFeatureAjax = 4,
t.EVENT_REC_FEAT_SUPPORTED = 58,
t.EVENT_SELECT = 59,
t.RecStylesheetOwnerTypeNode = 0,
t.RecStylesheetOwnerTypeRule = 1,
t.EVENT_CSSRULE_INSERT = 60,
t.EVENT_CSSRULE_DELETE = 61,
t.ThrottledStyleSheetHooks = 0,
t.ThrottledSetPropertyHooks = 1,
t.EVENT_FAIL_THROTTLED = 62,
t.EVENT_AJAX_REQUEST = 63,
t.EVENT_SCROLL_VISUAL_OFFSET = 64,
t.EVENT_SCROLL_VISUAL_OFFSET_CURVE = 65,
t.EVENT_MEDIA_QUERY_CHANGE = 66,
t.EVENT_RESOURCE_TIMING_BUFFER_FULL = 67,
t.EVENT_SYS_SETMETA = 8192,
t.EVENT_SYS_SETVAR = 8193,
t.EVENT_SYS_HIGHLIGHT = 8194,
t.EVENT_SYS_RESOURCEHASH = 8195,
t.EVENT_SYS_SETCONSENT = 8196,
t.EVENT_SYS_CUSTOM = 8197,
t.EVENT_COOKED_LOAD_MELTED = "load-melted",
t.EVENT_COOKED_LOAD = "load",
t.EVENT_COOKED_UNLOAD = "unload",
t.EVENT_COOKED_NAVIGATE = "navigate",
t.EVENT_COOKED_CLICK = "click",
t.EVENT_COOKED_TAP = "tap",
t.EVENT_COOKED_FOCUS = "focus",
t.EVENT_COOKED_CHANGE = "change",
t.EVENT_COOKED_MOUSE_THRASH = "thrash",
t.EVENT_FORM_ABANDONED = "abandon",
t.EVENT_COOKED_ELEM_SEEN = "seen",
t.EVENT_COOKED_REQUEST = "request",
t.EVENT_COOKED_LONG_CLICK = "long_click",
t.EVENT_COOKED_UNHANDLED_CLICK = "unhandled_click",
t.EVENT_COOKED_UNHANDLED_LONG_CLICK = "unhandled_long_click",
t.EVENT_COOKED_BACKGROUNDED = "backgrounded",
t.EVENT_COOKED_CRASHED = "crashed",
t.EVENT_COOKED_CUSTOM = "custom",
t.EVENT_COOKED_USERVAR = "uservar",
t.isUserActionEvent = function(e) {
switch (e) {
case t.EVENT_MOUSEDOWN:
case t.EVENT_MOUSEMOVE:
case t.EVENT_MOUSEMOVE_CURVE:
case t.EVENT_MOUSEUP:
case t.EVENT_KEYDOWN:
case t.EVENT_KEYUP:
case t.EVENT_TOUCHSTART:
case t.EVENT_TOUCHEND:
case t.EVENT_TOUCHMOVE:
case t.EVENT_TOUCHMOVE_CURVE:
case t.EVENT_TOUCHCANCEL:
case t.EVENT_CLICK:
case t.EVENT_SCROLL_LAYOUT:
case t.EVENT_SCROLL_LAYOUT_CURVE:
case t.EVENT_SCROLL_VISUAL_OFFSET:
case t.EVENT_SCROLL_VISUAL_OFFSET_CURVE:
case t.EVENT_NAVIGATE:
return !0;
}
return !1
}
,
t.MAX_LOGS_PER_PAGE = 1024,
t.AjaxBodyElide = 0,
t.AjaxBodyRecord = 1,
t.AjaxBodyWhitelist = 2
}
, function(e, t, n) {
"use strict";
var r, i = this && this.__extends || (r = function(e, t) {
return (r = Object.setPrototypeOf || {
__proto__: []
}instanceof Array && function(e, t) {
e.__proto__ = t
}
|| function(e, t) {
for (var n in t)
t.hasOwnProperty(n) && (e[n] = t[n])
}
)(e, t)
}
,
function(e, t) {
function n() {
this.constructor = e
}
r(e, t),
e.prototype = null === t ? Object.create(t) : (n.prototype = t.prototype,
new n)
}
);
Object.defineProperty(t, "__esModule", {
value: !0
});
var o = n(0)
, s = n(2)
, a = n(6)
, u = n(5)
, c = function() {
function e() {
var t = this;
this._wrappedTick = s.FsBugSnag.wrap(function() {
t.unregister(),
t._tick()
}),
this._due = 0,
this._id = e.nextId++
}
return e._rearm = function() {
e.checkedAlready = !1,
e.lastCheck = 0
}
,
e.checkForBrokenSchedulers = function() {
if (u.windex.requestWindowAnimationFrame && !e.checkedAlready) {
var t = Date.now();
if (!(t - e.lastCheck < 100)) {
e.lastCheck = t,
e.checkedAlready = !0;
var n = [];
return o.forIn(e.registry, function(e) {
var r = e.maybeForceTick(t);
r && n.push(r)
}),
a.FSPromise.all(n).then(function() {
u.windex.requestWindowAnimationFrame(window, s.FsBugSnag.wrap(function() {
e.checkedAlready = !1
}))
})
}
}
}
,
e.stopAll = function() {
o.forIn(this.registry, function(e) {
return e.stop()
})
}
,
e.prototype.setTick = function(e) {
this._tick = e
}
,
e.prototype.stop = function() {
this.cancel(),
delete e.registry[this._id]
}
,
e.prototype.register = function(t) {
this._due = Date.now() + 100 + 1.5 * t,
e.registry[this._id] = this
}
,
e.prototype.unregister = function() {
delete e.registry[this._id]
}
,
e.prototype.maybeForceTick = function(e) {
if (e > this._due)
return a.FSPromise.resolve().then(this._wrappedTick)["catch"](function() {})
}
,
e.registry = {},
e.nextId = 0,
e.checkedAlready = !1,
e.lastCheck = 0,
e
}();
t.Scheduler = c;
var h = function(e) {
function t(t) {
var n = e.call(this) || this;
return n._interval = t,
n._handle = -1,
n
}
return i(t, e),
t.prototype.start = function(e) {
var t = this;
-1 == this._handle && (this.setTick(function() {
e(),
t.register(t._interval)
}),
this._handle = u.windex.setWindowInterval(window, this._wrappedTick, this._interval),
this.register(this._interval))
}
,
t.prototype.cancel = function() {
-1 != this._handle && (u.windex.clearWindowInterval(window, this._handle),
this._handle = -1,
this.setTick(function() {}))
}
,
t
}(c);
t.RealTicker = h;
var d = function(e) {
function t(t, n, r) {
void 0 === n && (n = 0);
for (var i = [], o = 3; o < arguments.length; o++)
i[o - 3] = arguments[o];
var s = e.call(this) || this;
return s.delay = n,
s.timer = -1,
s.setTick(function() {
t.apply(void 0 === r ? window : r, i),
s.stop()
}),
s
}
return i(t, e),
t.prototype.start = function(e) {
return void 0 === e && (e = this.delay),
this.delay = e,
u.windex.clearWindowTimeout(window, this.timer),
this.timer = u.windex.setWindowTimeout(window, this._wrappedTick, this.delay),
this.register(e),
this
}
,
t.prototype.cancel = function() {
-1 != this.timer && (u.windex.clearWindowTimeout(window, this.timer),
this.timer = -1)
}
,
t
}(c);
t.RealTimeout = d;
var l = function() {
function e(e, t, n) {
this.limit = e,
this.breaker = n,
this.remaining = 0,
this.ticker = new h(t),
this.open()
}
return e.prototype.guard = function(e) {
var t = this;
return function() {
return 0 == t.remaining ? (t.breaker(),
void t.remaining--) : t.remaining < 0 ? void 0 : (t.remaining--,
e.apply(this, arguments))
}
}
,
e.prototype.close = function() {
return this.ticker.stop(),
this
}
,
e.prototype.open = function() {
var e = this;
return this.remaining = this.limit,
this.ticker.start(function() {
e.remaining = e.limit
}),
this
}
,
e
}();
t.Throttle = l;
var f = function() {
function e() {
this._startTime = this.wallTime()
}
return e.prototype.wallTime = function() {
return Date.now()
}
,
e.prototype.now = function() {
return this.wallTime() - this._startTime
}
,
e.prototype.startTime = function() {
return this._startTime
}
,
e.prototype.setStartTime = function(e) {
this._startTime = e
}
,
e
}();
t.Timekeeper = f
}
, function(e, t, n) {
"use strict";
Object.defineProperty(t, "__esModule", {
value: !0
}),
n(23);
var r = n(10)
, i = n(1)
, o = n(2)
, s = n(6);
function a(e, t) {
try {
return {
done: t,
jsonParse: e.JSON.parse,
jsonStringify: e.JSON.stringify,
arrayShift: u(e.Array.prototype.shift),
arrayIsArray: e.Array.isArray,
objectToString: u(e.Object.prototype.toString),
objectKeys: e.Object.keys,
objectValues: e.Object.values || null,
objectHasOwnProp: u(e.Object.prototype.hasOwnProperty),
matchMedia: c(e.matchMedia),
setWindowTimeout: u(e.setTimeout),
setWindowInterval: u(e.setInterval),
clearWindowTimeout: u(e.clearTimeout),
clearWindowInterval: u(e.clearInterval),
requestWindowAnimationFrame: c(e.requestAnimationFrame)
}
} catch (e) {
return
}
}
function u(e) {
return function(t) {
for (var n = [], r = 1; r < arguments.length; r++)
n[r - 1] = arguments[r];
return e.apply(t, n)
}
}
function c(e) {
return e ? u(e) : null
}
t.initWindex = function(e) {
try {
if (r.uaIsIE || r.uaIsEdge || function(e) {
var t = [function() {
throw new Error("")
}
, Function.prototype.toString].map(function(e) {
try {
return void e.call(null)
} catch (e) {
return e.stack || ""
}
})
, n = t[0]
, r = t[1];
if (!n || !r)
return !1;
for (var i = "\n".charCodeAt(0), o = Math.min(n.length, r.length), s = 1, a = s; a < o; a++) {
var u = n.charCodeAt(n.length - a)
, c = r.charCodeAt(r.length - a);
if (u != c)
break;
c != i && a != o - 1 || (s = a)
}
if (r.slice(0, r.length - s + 1).match(/\.js:\d+([:)]|$)/m))
return !1;
var h = function(e) {
return "function" == typeof e && Function.prototype.toString.call(e).indexOf("[native code]") < 0
};
return !(h(e.JSON.parse) || h(e.JSON.stringify) || h(e.Array) || h(e.Array.prototype.shift) || h(e.Array.isArray) || h(e.Object.prototype.toString) || h(e.Object.keys) || h(e.Object.values) || h(e.Object.prototype.hasOwnProperty) || h(e.setTimeout) || h(e.setInterval) || h(e.clearTimeout) || h(e.clearInterval))
}(e))
return t.windex.done = !0,
s.FSPromise.resolve();
if (!e.document || t.windex.done)
return s.FSPromise.resolve();
i.logIfDebug("Window object doesn't look clean; creating windex.");
var n = e.document.createElement("iframe");
n.id = "FullStory-iframe",
n.className = "fs-hide",
n.style.display = "none";
var u = e.document.body || e.document.head || e.document.documentElement || e.document;
try {
u.appendChild(n)
} catch (e) {
return s.FSPromise.resolve()
}
if (n.src = "about:blank",
!n.contentWindow)
return s.FSPromise.resolve();
var c, h = a(n.contentWindow, !0);
if (n.parentNode && n.parentNode.removeChild(n),
!h)
return s.FSPromise.resolve();
var d = new s.FSPromise(function(e) {
return c = e
}
);
return setTimeout(function() {
try {
if (!h)
throw "";
h.jsonParse("[]").push(0),
t._setWindex(h)
} catch (e) {
t.windex.done = !0
}
c()
}),
d
} catch (e) {
return o.FsBugSnag.sendToBugsnag(e, "error"),
s.FSPromise.resolve()
}
}
,
t._makeWindex = a,
t.windex = a(window, !1),
t._setWindex = function(e) {
for (var n in t.windex)
t.windex[n] = e[n]
}
}
, function(e, t, n) {
"use strict";
function r(e) {
return "function" == typeof e
}
Object.defineProperty(t, "__esModule", {
value: !0
});
var i = Array.isArray ? Array.isArray : function(e) {
return "[object Array]" === Object.prototype.toString.call(e)
}
, o = 0
, s = function(e, t) {
_[o] = e,
_[o + 1] = t,
2 === (o += 2) && c()
};
var a = window.MutationObserver || window.WebKitMutationObserver
, u = "undefined" != typeof Uint8ClampedArray && "undefined" != typeof self && void 0 !== self.importScripts && "undefined" != typeof MessageChannel;
var c, h, d, l, f, p, _ = new Array(1e3);
function g() {
for (var e = 0; e < o; e += 2) {
(0,
_[e])(_[e + 1]),
_[e] = void 0,
_[e + 1] = void 0
}
o = 0
}
function v(e, t) {
var n = arguments
, r = this
, i = new this.constructor(E);
void 0 === i[m] && L(i);
var o, a = r._state;
return a ? (o = n[a - 1],
s(function() {
return x(a, i, o, r._result)
})) : A(r, i, e, t),
i
}
function y(e) {
if (e && "object" == typeof e && e.constructor === this)
return e;
var t = new this(E);
return O(t, e),
t
}
a ? (l = 0,
f = new a(g),
p = document.createTextNode(""),
f.observe(p, {
characterData: !0
}),
c = function() {
var e = l = ++l % 2;
p.data = e + ""
}
) : u ? ((d = new MessageChannel).port1.onmessage = g,
c = function() {
return d.port2.postMessage(0)
}
) : (h = setTimeout,
c = function() {
return h(g, 1)
}
);
var m = Math.random().toString(36).substring(16);
function E() {}
var S = void 0
, w = 1
, T = 2
, b = new F;
function I(e) {
try {
return e.then
} catch (e) {
return b.error = e,
b
}
}
function N(e, t, n) {
t.constructor === e.constructor && n === v && t.constructor.resolve === y ? function(e, t) {
t._state === w ? R(e, t._result) : t._state === T ? k(e, t._result) : A(t, void 0, function(t) {
return O(e, t)
}, function(t) {
return k(e, t)
})
}(e, t) : n === b ? (k(e, b.error),
b.error = null) : void 0 === n ? R(e, t) : r(n) ? function(e, t, n) {
s(function(e) {
var r = !1
, i = function(e, t, n, r, i) {
try {
e.call(t, n, r)
} catch (e) {
return e
}
}(n, t, function(n) {
r || (r = !0,
t !== n ? O(e, n) : R(e, n))
}, function(t) {
r || (r = !0,
k(e, t))
}, e._label);
!r && i && (r = !0,
k(e, i))
}, e)
}(e, t, n) : R(e, t)
}
function O(e, t) {
var n;
e === t ? k(e, new TypeError("You cannot resolve a promise with itself")) : "function" == typeof (n = t) || "object" == typeof n && null !== n ? N(e, t, I(t)) : R(e, t)
}
function C(e) {
e._onerror && e._onerror(e._result),
P(e)
}
function R(e, t) {
e._state === S && (e._result = t,
e._state = w,
0 !== e._subscribers.length && s(P, e))
}
function k(e, t) {
e._state === S && (e._state = T,
e._result = t,
s(C, e))
}
function A(e, t, n, r) {
var i = e._subscribers
, o = i.length;
e._onerror = null,
i[o] = t,
i[o + w] = n,
i[o + T] = r,
0 === o && e._state && s(P, e)
}
function P(e) {
var t = e._subscribers
, n = e._state;
if (0 !== t.length) {
for (var r, i, o = e._result, s = 0; s < t.length; s += 3)
r = t[s],
i = t[s + n],
r ? x(n, r, i, o) : i(o);
e._subscribers.length = 0
}
}
function F() {
this.error = null
}
var D = new F;
function x(e, t, n, i) {
var o, s, a, u, c = r(n);
if (c) {
if ((o = function(e, t) {
try {
return e(t)
} catch (e) {
return D.error = e,
D
}
}(n, i)) === D ? (u = !0,
s = o.error,
o.error = null) : a = !0,
t === o)
return void k(t, new TypeError("A promises callback cannot return that same promise."))
} else
o = i,
a = !0;
t._state !== S || (c && a ? O(t, o) : u ? k(t, s) : e === w ? R(t, o) : e === T && k(t, o))
}
var M = 0;
function L(e) {
e[m] = M++,
e._state = void 0,
e._result = void 0,
e._subscribers = []
}
function U(e, t) {
this._instanceConstructor = e,
this.promise = new e(E),
this.promise[m] || L(this.promise),
i(t) ? (this._input = t,
this.length = t.length,
this._remaining = t.length,
this._result = new Array(this.length),
0 === this.length ? R(this.promise, this._result) : (this.length = this.length || 0,
this._enumerate(),
0 === this._remaining && R(this.promise, this._result))) : k(this.promise, new Error("Array Methods must be provided an Array"))
}
U.prototype._enumerate = function() {
for (var e = this.length, t = this._input, n = 0; this._state === S && n < e; n++)
this._eachEntry(t[n], n)
}
,
U.prototype._eachEntry = function(e, t) {
var n = this._instanceConstructor
, r = n.resolve;
if (r === y) {
var i = I(e);
if (i === v && e._state !== S)
this._settledAt(e._state, t, e._result);
else if ("function" != typeof i)
this._remaining--,
this._result[t] = e;
else if (n === V) {
var o = new n(E);
N(o, e, i),
this._willSettleAt(o, t)
} else
this._willSettleAt(new n(function(t) {
return t(e)
}
), t)
} else
this._willSettleAt(r(e), t)
}
,
U.prototype._settledAt = function(e, t, n) {
var r = this.promise;
r._state === S && (this._remaining--,
e === T ? k(r, n) : this._result[t] = n),
0 === this._remaining && R(r, this._result)
}
,
U.prototype._willSettleAt = function(e, t) {
var n = this;
A(e, void 0, function(e) {
return n._settledAt(w, t, e)
}, function(e) {
return n._settledAt(T, t, e)
})
}
;
var V = function(e) {
this[m] = M++,
this._result = this._state = void 0,
this._subscribers = [],
E !== e && ("function" != typeof e && function() {
throw new TypeError("You must pass a resolver function as the first argument to the promise constructor")
}(),
this instanceof V ? function(e, t) {
try {
t(function(t) {
O(e, t)
}, function(t) {
k(e, t)
})
} catch (t) {
k(e, t)
}
}(this, e) : function() {
throw new TypeError("Failed to construct 'Promise': Please use the 'new' operator, this object constructor cannot be called as a function.")
}())
};
V.all = function(e) {
return new U(this,e).promise
}
,
V.race = function(e) {
var t = this;
return i(e) ? new t(function(n, r) {
for (var i = e.length, o = 0; o < i; o++)
t.resolve(e[o]).then(n, r)
}
) : new t(function(e, t) {
return t(new TypeError("You must pass an array to race."))
}
)
}
,
V.resolve = y,
V.reject = function(e) {
var t = new this(E);
return k(t, e),
t
}
,
V._setAsap = function(e) {
s = e
}
,
V._asap = s,
V.prototype = {
constructor: V,
then: v,
"catch": function(e) {
return this.then(null, e)
}
},
t.FSPromise = "function" == typeof window.Promise ? window.Promise : V
}
, function(e, t, n) {
"use strict";
Object.defineProperty(t, "__esModule", {
value: !0
});
var r = n(18)
, i = n(22);
function o(e) {
return e._fs_ext_host || e._fs_host
}
function s(e) {
if (!e)
return e;
if (i.isLocalhost(i.domainFromHost(e)))
return e;
return 0 == e.indexOf("www.") ? "rs." + e.slice(4) : 0 == e.indexOf("app.") ? "rs." + e.slice(4) : "rs." + e
}
function a(e) {
return e ? i.isLocalhost(i.domainFromHost(e)) ? e : 0 == e.indexOf("www.") ? "app." + e.slice(4) : "app." + e : e
}
function u(e) {
return e ? e + "/s/fs.js" : void 0
}
t._fs_debug = function(e) {
return !!e._fs_ext_debug || !!e._fs_debug
}
,
t._fs_script = function(e) {
return e._fs_script || u(o(e))
}
,
t._fs_rec_host = function(e) {
return e._fs_rec_host || s(o(e))
}
,
t._fs_app_host = function(e) {
return e._fs_app_host || a(o(e))
}
,
t._fs_org = function(e) {
return e._fs_ext_org || e._fs_org
}
,
t._fs_csp = function(e) {
return e._fs_csp
}
,
t._fs_cookie_domain = function(e) {
return e._fs_cookie_domain
}
,
t._fs_ready = function(e) {
return e._fs_ready
}
,
t._fs_run_in_iframe = function(e) {
return !!e._fs_run_in_iframe
}
,
t._fs_is_outer_script = function(e) {
return !!e._fs_is_outer_script
}
,
t._fs_replay_flags = function(e) {
return e._fs_replay_flags
}
,
t._fs_transport = function(e) {
return e._fs_transport
}
,
t.set_fs_shutdown = function(e, t) {
e._fs_shutdown = t
}
,
t._fs_use_socket = function(e) {
return !!e._fs_use_socket
}
,
t.FS_q_drain = function(e) {
var t = e[r.Namespace(e)];
if (t && "q"in t) {
var n = t.q;
return delete t.q,
n
}
return []
}
,
t.FS_q_push = function(e, t) {
var n = e[r.Namespace(e)];
"q"in n || (n.q = []),
n.q.push(t)
}
,
t.defaultGceHost = s,
t.defaultAppHost = a,
t.defaultScript = u
}
, function(e, t, n) {
"use strict";
Object.defineProperty(t, "__esModule", {
value: !0
}),
t.MutationProcessingInterval = 250,
t.CurveSamplingInterval = 142,
t.UploadInterval = 5e3,
t.HeartbeatInitial = 4e3,
t.HeartbeatMax = 256e3,
t.PageInactivityTimeout = 18e5,
t.BackoffMax = 3e5,
t.ScrollSampleInterval = t.MutationProcessingInterval / 5,
t.InactivityThreshold = 4e3,
t.MaxPayloadLength = 16384,
t.SwanSongLocalStorageKey = "singSwanSong"
}
, function(e, t, n) {
"use strict";
Object.defineProperty(t, "__esModule", {
value: !0
});
var r = n(14)
, i = n(0)
, o = n(10)
, s = n(20)
, a = n(15)
, u = n(2);
function c(e) {
return !!e._fswatch
}
function h(e) {
var t = d(e);
return !!t && t != r.WatchKindWatch
}
function d(e) {
return e._fswatch
}
function l(e, t) {
("_fswatch"in e || t) && (e._fswatch = t)
}
function f(e) {
return e ? t._mirrors[e._fs] : null
}
function p(e) {
try {
return e && e._fs || 0
} catch (e) {
return 0
}
}
function _(e) {
if (e.parent) {
if (i.hasMoreThanNKeys(e.watchedChildSet, 0) || c(e.node))
for (var n = e.watchedChildSet && i.hasMoreThanNKeys(e.watchedChildSet, 1) || c(e.node) ? e.id : i.firstKey(e.watchedChildSet), r = n ? e.parent : null; r && r.watchedChildSet && r.watchedChildSet[n]; ) {
if (delete r.watchedChildSet[n],
i.hasNKeys(r.watchedChildSet, 1)) {
var o = r.id
, s = i.firstValue(r.watchedChildSet);
for (r = r.parent; r && r.watchedChildSet && r.watchedChildSet[o]; )
delete r.watchedChildSet[o],
r.watchedChildSet[s.id] = s,
r = r.parent;
break
}
r = r.parent
}
e.parent.child == e && (e.parent.child = e.next),
e.parent.lastChild == e && (e.parent.lastChild = e.prev),
e.prev && (e.prev.next = e.next),
e.next && (e.next.prev = e.prev),
e.parent = e.prev = e.next = null,
delete t._mirrors[e.id],
e.node._fs == e.id && (e.node._fs = 0),
e.id = 0,
e.child && g(e.child)
}
}
function g(e) {
for (var n = [e]; n.length > 0 && n.length < 1e4; ) {
var r = n.pop();
delete t._mirrors[r.id],
r.node._fs == r.id && (r.node._fs = 0),
r.id = 0,
r.next && n.push(r.next),
r.child && n.push(r.child)
}
u.assert(n.length < 1e4, "clearIds is fast")
}
function v(e, t) {
if (!o.uaIsEdge || "output" != a.tagName(e)) {
var n = e;
if (n.attributes && n.attributes.length > 0)
for (var r = 0; r < n.attributes.length; r++) {
var i = n.attributes[r];
null != i && t(w(i.name), i.value)
}
}
}
t.MaxTextSizeBytes = 16e6,
t.setMaxTextSizeBytes = function(e) {
t.MaxTextSizeBytes = e
}
,
t.isWatched = c,
t.isBlocked = h,
t.watchKind = d,
t.setWatched = l,
t._mirrors = {},
t.setMirrors = function(e) {
t._mirrors = e
}
,
t.mirrorFor = f,
t.fsid = p,
t.fsidIfNotBlocked = function(e) {
return h(e) ? 0 : p(e)
}
,
t.removeMirror = _,
t.clearIds = g;
var y = function() {
function e(e) {
this._watcher = e,
this._curId = 1
}
return e.prototype.curId = function() {
return this._curId
}
,
e.prototype.tokenizeNode = function(e, t, n, r, i) {
var o = this._curId;
try {
var s = f(e)
, a = f(t)
, u = [];
return this.tokeNode(s, a, n, u, r, i),
u
} catch (e) {
return this._curId = o,
[]
}
}
,
e.prototype.tokeNode = function(e, n, o, h, d, l) {
var f = this;
if ("script" == a.tagName(o) || o.nodeType == s.Node_COMMENT_NODE)
return null;
var p, g, y, E = {
id: this._curId++,
node: o
};
if (t._mirrors[E.id] = E,
o._fs = E.id,
e && (p = e,
y = n,
_(g = E),
g.parent = p,
g.next = y,
y && (g.prev = y.prev,
y.prev = g),
null == g.next ? (g.prev = p.lastChild,
p.lastChild = g) : g.next.prev = g,
null == g.prev ? p.child = g : g.prev.next = g),
o.nodeType == s.Node_DOCUMENT_TYPE_NODE) {
var S = o;
return h.push("<!DOCTYPE", ":name", S.name, ":publicId", S.publicId || "", ":systemId", S.systemId || ""),
E
}
try {
var w = function(e) {
e && (h.push("["),
i.forEachNextSibling(o.firstChild, function(e) {
f.tokeNode(E, null, e, h, d, l)
}),
h.push("]"))
};
switch (o.nodeType) {
default:
h.push("<" + o.nodeName),
m(o, d);
break;
case s.Node_DOCUMENT_FRAGMENT_NODE:
case s.Node_DOCUMENT_NODE:
h.push("<" + o.nodeName),
w(o.firstChild);
break;
case s.Node_TEXT_NODE:
h.push("<" + o.nodeName),
m(o, d),
h.push(T(o));
break;
case s.Node_ELEMENT_NODE:
var b = o
, I = b.nodeName;
"http://www.w3.org/2000/svg" == b.namespaceURI && (I = "svg:" + I),
h.push("<" + I);
var N = this.processWatchedElem(b, h);
if (N && (function(e, t) {
if (c(e.node))
for (var n = e, r = e.parent; r; r = r.parent) {
if (r.watchedChildSet || (r.watchedChildSet = {}),
n.watchedChildSet)
for (var o in n.watchedChildSet)
delete r.watchedChildSet[o];
if (r.watchedChildSet[n.id] = n,
i.hasNKeys(r.watchedChildSet, 2))
n = r;
else if (i.hasMoreThanNKeys(r.watchedChildSet, 2))
break
}
}(E),
N != r.WatchKindWatch))
return E;
m(o, d),
v(b, function(e, t) {
if (h.push(":" + e),
h.push(t),
l)
try {
l(b, e, t)
} catch (e) {
u.FsBugSnag.sendToBugsnag(e, "error")
}
}),
w(b.firstChild);
}
} catch (e) {
u.FsBugSnag.sendToBugsnag(e, "error")
}
return E
}
,
e.prototype.processWatchedElem = function(e, t) {
if (this._watcher) {
var n = this._watcher.isWatched(e);
if (l(e, n),
n && n != r.WatchKindWatch) {
var i, o = !1;
v(e, function(n, r) {
var s = E(e, n, r);
"class" == n ? i = !0 : "style" == n && (o = !0),
null != s && (t.push(":" + n),
t.push(s))
}),
i || (t.push(":class"),
t.push("_fs_block_" + n)),
o || (t.push(":style"),
t.push(this._watcher.mungeWatchedStyle(e, "")))
}
return n
}
return null
}
,
e
}();
function m(e, t) {
if (t)
try {
t(e)
} catch (e) {
u.FsBugSnag.sendToBugsnag(e, "error")
}
}
function E(e, t, n) {
switch (t) {
case "class":
n.indexOf("_fs_block_") < 0 && (n += " _fs_block_" + d(e));
break;
case "alt":
case "checked":
case "data":
case "src":
case "srcset":
case "title":
case "value":
return null;
}
return n
}
t.NodeEncoder = y,
t.rewriteBlockedAttribute = E;
var S = {
ATTRIBUTENAME: "attributeName",
ATTRIBUTETYPE: "attributeType",
BASEFREQUENCY: "baseFrequency",
BASEPROFILE: "baseProfile",
CALCMODE: "calcMode",
CLIPPATHUNITS: "clipPathUnits",
CONTENTSCRIPTTYPE: "contentScriptType",
CONTENTSTYLETYPE: "contentStyleType",
DIFFUSECONSTANT: "diffuseConstant",
EDGEMODE: "edgeMode",
EXTERNALRESOURCESREQUIRED: "externalResourcesRequired",
FILTERRES: "filterRes",
FILTERUNITS: "filterUnits",
GLYPHREF: "glyphRef",
GRADIENTTRANSFORM: "gradientTransform",
GRADIENTUNITS: "gradientUnits",
KERNELMATRIX: "kernelMatrix",
KERNELUNITLENGTH: "kernelUnitLength",
KEYPOINTS: "keyPoints",
KEYSPLINES: "keySplines",
KEYTIMES: "keyTimes",
LENGTHADJUST: "lengthAdjust",
LIMITINGCONEANGLE: "limitingConeAngle",
MARKERHEIGHT: "markerHeight",
MARKERUNITS: "markerUnits",
MARKERWIDTH: "markerWidth",
MASKCONTENTUNITS: "maskContentUnits",
MASKUNITS: "maskUnits",
NUMOCTAVES: "numOctaves",
PATHLENGTH: "pathLength",
PATTERNCONTENTUNITS: "patternContentUnits",
PATTERNTRANSFORM: "patternTransform",
PATTERNUNITS: "patternUnits",
POINTSATX: "pointsAtX",
POINTSATY: "pointsAtY",
POINTSATZ: "pointsAtZ",
PRESERVEALPHA: "preserveAlpha",
PRESERVEASPECTRATIO: "preserveAspectRatio",
PRIMITIVEUNITS: "primitiveUnits",
REFX: "refX",
REFY: "refY",
REPEATCOUNT: "repeatCount",
REPEATDUR: "repeatDur",
REQUIREDEXTENSIONS: "requiredExtensions",
REQUIREDFEATURES: "requiredFeatures",
SPECULARCONSTANT: "specularConstant",
SPECULAREXPONENT: "specularExponent",
SPREADMETHOD: "spreadMethod",
STARTOFFSET: "startOffset",
STDDEVIATION: "stdDeviation",
STITCHTILES: "stitchTiles",
SURFACESCALE: "surfaceScale",
SYSTEMLANGUAGE: "systemLanguage",
TABLEVALUES: "tableValues",
TARGETX: "targetX",
TARGETY: "targetY",
TEXTLENGTH: "textLength",
VIEWBOX: "viewBox",
VIEWTARGET: "viewTarget",
XCHANNELSELECTOR: "xChannelSelector",
YCHANNELSELECTOR: "yChannelSelector",
ZOOMANDPAN: "zoomAndPan"
};
function w(e) {
return /[a-z]/.test(e) ? e : S[e] || e.toLowerCase()
}
function T(e) {
var n = e.textContent;
if (!n)
return "";
var r = n.length;
return r > t.MaxTextSizeBytes ? (u.FsBugSnag.sendToBugsnag("Ignoring huge text node with length [" + r + "]", "warning"),
"") : n
}
t.fixAttrName = w,
t.safeTextContent = T
}
, function(e, t, n) {
"use strict";
Object.defineProperty(t, "__esModule", {
value: !0
});
var r = navigator.userAgent;
t.uaIsIE = r.indexOf("MSIE ") > -1 || r.indexOf("Trident/") > -1,
t.uaIsIE11 = t.uaIsIE && r.indexOf("rv:11") > -1,
t.uaIsEdge = r.indexOf("Edge/") > -1,
t.uaIsSafari = /^((?!chrome|android).)*safari/i.test(window.navigator.userAgent)
}
, function(e, t, n) {
"use strict";
Object.defineProperty(t, "__esModule", {
value: !0
});
var r = n(24)
, i = "(redacted)"
, o = /password|token/i;
function s(e, t) {
return e.split("?").map(function(e) {
return function(e, t) {
return e.replace("?", "").split("&").map(function(e) {
return e.split("=")
}).map(function(e) {
var n = e[0]
, r = e[1]
, o = e.slice(2);
return t.test(n) && void 0 !== r ? [n, i].concat(o) : [n, r].concat(o)
}).map(function(e) {
var t = e[0]
, n = e[1]
, r = e.slice(2);
return void 0 === n ? t : [t, n].concat(r).join("=")
}).join("&")
}(e, t)
}).join("?")
}
var a = new (function() {
function e() {
var e = r.theDummyDoc()
, t = e.getElementById("urlresolver-base");
t || ((t = e.createElement("base")).id = "urlresolver-base",
e.head.appendChild(t));
var n = e.getElementById("urlresolver-parser");
n || ((n = e.createElement("a")).id = "urlresolver-parser",
e.head.appendChild(n)),
this.base = t,
this.parser = n
}
return e.prototype.parseUrl = function(e, t) {
this.base.setAttribute("href", e),
this.parser.setAttribute("href", t);
var n = document.createElement("a");
return n.href = this.parser.href,
n
}
,
e.prototype.resolveUrl = function(e, t) {
return this.parseUrl(e, t).href
}
,
e.prototype.resolveToDocument = function(e, t) {
var n = u(e);
return null == n ? t : this.resolveUrl(n, t)
}
,
e.prototype.scrubUrl = function(e) {
var t = this.parseUrl("", e);
return t.hash.indexOf("access_token") >= 0 && (t.hash = "#" + i),
t.search.length > 0 && (t.search = s(t.search, o)),
t.href
}
,
e
}());
function u(e) {
var t = e.document
, n = e.location.href;
if ("string" == typeof t.baseURI)
n = t.baseURI;
else {
var r = t.getElementsByTagName("base")[0];
r && r.href && (n = r.href)
}
return "about:blank" == n && e.parent != e ? u(e.parent) : n
}
t.parseUrl = function(e, t) {
return a.parseUrl(e, t)
}
,
t.resolveUrl = function(e, t) {
return a.resolveUrl(e, t)
}
,
t.resolveUrlToDocument = function(e, t) {
return a.resolveToDocument(e, t)
}
,
t.scrubUrl = function(e) {
return a.scrubUrl(e)
}
,
t.baseUri = u
}
, function(e, t, n) {
"use strict";
Object.defineProperty(t, "__esModule", {
value: !0
}),
t.guard = function(e, t) {
return function() {
try {
return e.apply(this, arguments)
} catch (e) {
try {
t && t(e)
} catch (e) {}
}
}
}
,
t.doNothing = function() {}
}
, function(e, t, n) {
"use strict";
Object.defineProperty(t, "__esModule", {
value: !0
});
var r = n(9)
, i = n(0)
, o = n(33)
, s = n(1)
, a = n(18)
, u = n(34)
, c = n(7)
, h = n(44)
, d = n(46)
, l = n(48)
, f = n(14)
, p = n(4)
, _ = n(2)
, g = n(50)
, v = n(16);
function y(e) {
var t = r.fsid(e) + " ";
return e.id && (t += "#" + e.id),
t += "[src=" + e.src + "]"
}
t.FS_REQUEST_FRAME_ID = "RequestFrameId",
t.FS_GREET_CHILD_FRAME = "GreetFrame",
t.FS_SET_FRAME_ID_CMD = "SetFrameId",
t.FS_IFRAME_EVENTS = "EvtBundle",
t.FS_SHUTDOWN_FRAME = "ShutdownFrame",
t.FS_RESTART_FRAME = "RestartFrame",
t.FS_SET_CONSENT = "SetConsent",
t.FS_INIT_MOBILE_CMD = "InitFrameMobile",
t.defaultInjector = function(e, t, n, r, i, o) {
var u = y(e);
s.logIfDebug("Injecting into Frame " + u);
try {
if (function(e) {
return e.id == e.name && E.test(e.id)
}(e))
return void s.logIfDebug("Blacklisted iframe: " + u);
if (function(e) {
if (!e.contentDocument || !e.contentWindow || !e.contentWindow.location)
return !0;
return function(e) {
return !!e.src && "about:blank" != e.src && e.src.indexOf("javascript:") < 0
}(e) && e.src != e.contentWindow.location.href && "loading" == e.contentDocument.readyState
}(e))
return void s.logIfDebug("Frame not yet loaded: " + u);
var c = e.contentWindow
, h = e.contentDocument;
if (!c || !h)
return void s.logIfDebug("Missing contentWindow or contentDocument: " + u);
if (!h.head)
return void s.logIfDebug("Missing contentDocument.head: " + u);
if (c[a.Namespace(c)])
return void s.logIfDebug("FS already defined in Frame contentWindow: " + u + ". Ignoring.");
c._fs_org = t,
c._fs_script = r,
c._fs_rec_host = i,
c._fs_app_host = o,
c._fs_debug = s.isDebug(),
c._fs_run_in_iframe = !0;
var d = h.createElement("script");
d.async = !0,
d.src = n + "//" + r,
"testdrive" == t && (d.src += "?allowMoo=true"),
h.head.appendChild(d)
} catch (e) {
s.logIfDebug("iFrame no injecty. Probably not same origin.")
}
}
;
var m, E = /^fb\d{18}$/;
!function(e) {
e[e.NoInfoYet = 1] = "NoInfoYet",
e[e.Enabled = 2] = "Enabled",
e[e.Disabled = 3] = "Disabled"
}(m = t.GetCurrentSessionEnabledState || (t.GetCurrentSessionEnabledState = {}));
var S = function() {
function e(e, t, n, r) {
var i = this;
this._ctx = e,
this._transport = n,
this._injector = r,
this._iFrames = [],
this._pendingChildFrameIdInits = [],
this._listeners = new o.DomListeners,
this._getCurrentSessionEnabled = m.NoInfoYet,
this._resourceUploadingEnabled = !1,
this._tickerTasks = [],
this._watcher = new l.Watcher,
this._queue = new d.EventQueue(e,this._transport,function(e) {
for (var t = i._eventWatcher.bundleEvents(e), n = void 0; n = i._tickerTasks.pop(); )
n();
return t
}
,t),
this._eventWatcher = new u.EventWatcher(e,this._queue,this._watcher,this._listeners,function(e) {
i.onFrameCreated(e)
}
,function(e) {
i.beforeFrameRemoved(e)
}
,new g.ResourceUploader(e,this._queue,new v.HttpResourceProtocol(e))),
this._consoleWatcher = new h.ConsoleWatcher(e,this._queue,this._listeners),
this._scheme = e.options.scheme,
this._script = e.options.script,
this._recHost = e.options.recHost,
this._appHost = e.options.appHost,
this._orgId = e.options.orgId,
this._wnd = e.window
}
return e.prototype.start = function(e, t) {
var n = this;
this._onFullyStarted = t,
this.addDefaultWatches(),
"onpagehide"in this._wnd ? this._listeners.add(this._wnd, "pagehide", !1, function(e) {
n.onUnload("pagehide")
}) : this._listeners.add(this._wnd, "unload", !1, function(e) {
n.onUnload("unload")
}),
this._listeners.add(this._wnd, "message", !1, function(e) {
if ("string" == typeof e.data) {
var t = e.source;
n.postMessageReceived(t, T(e.data))
}
});
var r = this._wnd.Document ? this._wnd.Document.prototype : this._wnd.document;
this._docCloseHook = i.activateHook(r, "close"),
this._docCloseHook && this._docCloseHook.afterAsync(function() {
n._listeners.refresh()
})
}
,
e.prototype.queue = function() {
return this._queue
}
,
e.prototype.eventWatcher = function() {
return this._eventWatcher
}
,
e.prototype.console = function() {
return this._consoleWatcher
}
,
e.prototype.onDomLoad = function() {
this._eventWatcher.onDomLoad()
}
,
e.prototype.onLoad = function() {
this._eventWatcher.onLoad()
}
,
e.prototype.shutdown = function(e) {
this._eventWatcher.shutdown(e),
this._consoleWatcher.disable(),
this._listeners.clear(),
this._docCloseHook && this._docCloseHook.disable(),
this.tellAllFramesTo([t.FS_SHUTDOWN_FRAME])
}
,
e.prototype.tellAllFramesTo = function(e) {
for (var t = 0; t < this._iFrames.length; t++) {
var n = this._iFrames[t];
n.contentWindow && w(n.contentWindow, e)
}
}
,
e.prototype.getCurrentSessionURL = function(e) {
var t = this._getCurrentSessionEnabled;
if (t == m.NoInfoYet)
return null;
if (t == m.Disabled)
return this._scheme + "//" + this._appHost + "/opt/upgrade";
var n = this.getCurrentSession();
return n ? (e && (n += ":" + this._ctx.time.wallTime()),
this._scheme + "//" + this._appHost + "/ui/" + this._ctx.options.orgId + "/session/" + encodeURIComponent(n)) : null
}
,
e.prototype.getCurrentSession = function() {
var e = this._getCurrentSessionEnabled;
return e == m.NoInfoYet || e == m.Disabled ? null : this._userId ? this._userId + ":" + this._sessionId : null
}
,
e.prototype.setConsent = function(e) {
this._watcher.setConsent(e),
this.tellAllFramesTo([t.FS_SET_CONSENT, e])
}
,
e.prototype.pageSignature = function() {
return this._userId + ":" + this._sessionId + ":" + this._pageId
}
,
e.prototype.fireFsReady = function(e) {
void 0 === e && (e = !1);
var t = c._fs_ready(this._wnd);
if (t)
try {
e ? t(!0) : t()
} catch (e) {
s.logIfDebug("exception in _fs_ready(): " + e)
}
}
,
e.prototype.onUnload = function(e) {
this._queue.addUnload(e),
p.Scheduler.stopAll()
}
,
e.prototype.handleResponse = function(e) {
if (this._pageRsp = e,
this._userId = e.UserIntId,
this._sessionId = e.SessionIntId,
this._pageId = e.PageIntId,
this._serverPageStart = e.PageStart,
this._getCurrentSessionEnabled = e.GetCurrentSessionEnabled ? m.Enabled : m.Disabled,
e.ResourceUploadingEnabled && this.enableResourceUploading(),
e.AjaxWatcherEnabled && this.enableAjaxWatcher(),
e.ConsoleWatcherEnabled && this.enableConsoleWatcher(),
e.Blocks)
for (var t = 0; t < e.Blocks.length; ++t)
this._watcher.addRule(e.Blocks[t]);
if (e.Watches)
for (t = 0; t < e.Watches.length; ++t)
this._watcher.addRule(e.Watches[t]);
e.AjaxWatcherEnabled && e.AjaxWatches && this._eventWatcher.ajaxWatcher().setWatches(e.AjaxWatches),
this._watcher.setConsent(!!e.Consented)
}
,
e.prototype.addDefaultWatches = function() {
for (var e = 0, t = ["object:not([type^=\"image/\"])", "embed:not([type^=\"image/\"])", "canvas", "noscript", ".fs-block", ".fs-hide"]; e < t.length; e++) {
var n = t[e];
this._watcher.addRule({
Selector: n,
Kind: f.WatchKindBlocked
})
}
}
,
e.prototype.fullyStarted = function() {
this._onFullyStarted()
}
,
e.prototype.enableResourceUploading = function() {
this._resourceUploadingEnabled = !0,
this._eventWatcher.initResourceUploading()
}
,
e.prototype.enableAjaxWatcher = function() {
this.eventWatcher().ajaxWatcher().enable()
}
,
e.prototype.enableConsoleWatcher = function() {
this.console().enable()
}
,
e.prototype.flushPendingChildFrameInits = function() {
if (this._pendingChildFrameIdInits.length > 0) {
for (var e = 0; e < this._pendingChildFrameIdInits.length; e++)
this._pendingChildFrameIdInits[e]();
this._pendingChildFrameIdInits = []
}
}
,
e.prototype.onFrameCreated = function(e) {
var n = this;
if (r.fsid(e)) {
this._iFrames.push(e);
var o = function(e) {
var t = e.src
, n = location.protocol + "//" + location.host;
return !t || "about:blank" == t || i.hasPrefix(t, "javascript:") || i.hasPrefix(t, n)
}(e)
, u = !1;
if (e.contentWindow)
try {
u = !!e.contentWindow[a.Namespace(e.contentWindow)]
} catch (e) {
u = !0
}
(!o || u) && e.contentWindow && e.contentWindow.postMessage ? (s.logIfDebug("Cross-origin iframe " + y(e)),
w(e.contentWindow, [t.FS_GREET_CHILD_FRAME])) : o ? (s.logIfDebug("Attempting to setup Frame " + y(e)),
this._injector(e, this._orgId, this._scheme, this._script, this._recHost, this._appHost),
e.addEventListener("load", _.FsBugSnag.wrap(function(t) {
try {
n._tickerTasks.push(function() {
s.logIfDebug("onload for frame " + y(e)),
n._injector(e, n._orgId, n._scheme, n._script, n._recHost, n._appHost)
})
} catch (t) {
_.FsBugSnag.sendToBugsnag(t, "error")
}
}))) : s.logIfDebug("Frame Doesn't need injecting. Probably cross domain " + y(e))
} else
s.logIfDebug("fsid missing or invalid for iFrame " + y(e))
}
,
e.prototype.beforeFrameRemoved = function(e) {
for (var t = 0; t < this._iFrames.length; t++) {
if (e == this._iFrames[t])
return void this._iFrames.splice(t, 1)
}
}
,
e.prototype.postMessageReceived = function(e, n) {
if (e.parent == this._wnd)
switch (n[0]) {
case t.FS_IFRAME_EVENTS:
var r = n[1]
, i = this.pageSignature()
, o = n[2];
if (i != o)
return _.FsBugSnag.sendToBugsnag("Page signature mismatch: " + i + " != " + o, "warning"),
void w(e, [t.FS_SHUTDOWN_FRAME]);
r.length > 0 && this._transport.enqueueEvents(i, r);
break;
case t.FS_REQUEST_FRAME_ID:
var a = this.iFrameWndToFsId(e);
e && a ? (s.logIfDebug("Responding to FID request for frame " + a),
this.sendFrameIdToInnerFrame(e, a)) : s.logIfDebug("No FrameId found. Hoping to send one later.");
}
}
,
e.prototype.sendFrameIdToInnerFrame = function(e, n) {
var r = this
, i = function() {
var i = [];
0 != r._frameId && (i = r._parentIds ? r._parentIds.concat(r._frameId) : [r._frameId]);
var o = r._ctx.time.startTime();
w(e, [t.FS_SET_FRAME_ID_CMD, n, i, o, r._scheme, r._script, r._appHost, r._orgId, r._pageRsp])
};
null == this._frameId ? this._pendingChildFrameIdInits.push(i) : i()
}
,
e.prototype.iFrameWndToFsId = function(e) {
for (var t = 0; t < this._iFrames.length; t++)
if (this._iFrames[t].contentWindow == e)
return r.fsid(this._iFrames[t]);
return s.logIfDebug("Unable to locate frame for window"),
NaN
}
,
e
}();
function w(e, t) {
e && e.postMessage && e.postMessage(i.stringify({
__fs: t
}), "*")
}
function T(e) {
try {
var t = i.parseJson(e);
if ("__fs"in t)
return t.__fs
} catch (e) {}
return []
}
t.AbstractRecorder = S,
t.parsePostMessageData = T
}
, function(e, t, n) {
"use strict";
Object.defineProperty(t, "__esModule", {
value: !0
}),
t.WatchKindBlocked = "blocked",
t.WatchKindBlockedConsent = "blocked-consent",
t.WatchKindWatch = "watch"
}
, function(e, t, n) {
"use strict";
Object.defineProperty(t, "__esModule", {
value: !0
}),
t.tagName = function(e) {
var t = e;
return t.tagName ? "object" == typeof t.tagName ? "form" : t.tagName.toLowerCase() : null
}
}
, function(e, t, n) {
"use strict";
Object.defineProperty(t, "__esModule", {
value: !0
});
var r = n(0)
, i = n(1)
, o = n(2)
, s = n(6)
, a = n(20)
, u = n(8)
, c = function() {
function e(e) {
this._byteCount = 0,
this._scheme = e.options.scheme,
this._recHost = e.options.recHost
}
return e.prototype.page = function(e, t, n) {
this.post("/rec/page", r.stringify(e), function(e) {
try {
t(r.parseJson(e))
} catch (e) {
n(0)
}
}, n)
}
,
e.prototype.bundle = function(e, t, n, s, a, u, c, h, l, f) {
var p = r.stringify(e);
this._byteCount += p.length,
i.logIfDebug("total bytes written: " + this._byteCount);
var _ = d(t, n, s, a, e.Seq, u, c, h);
return this.post(_, p, function(e) {
try {
l(r.parseJson(e))
} catch (t) {
o.FsBugSnag.sendToBugsnag("Failed to JSON parse /rec/bundle response: " + e + ": " + t, "error"),
f(0)
}
}, f),
this._byteCount
}
,
e.prototype.bundleBeacon = function(e, t, n, r, i, o, s, a) {
return f(this._scheme, this._recHost, e, t, n, r, i, o, s, a)
}
,
e.prototype.exponentialBackoffMs = function(e, t) {
var n = Math.min(u.BackoffMax, 5e3 * Math.pow(2, e));
return t ? n + .25 * Math.random() * n : n
}
,
e.prototype.post = function(e, t, n, r) {
l(this._scheme, this._recHost, e, t, n, r)
}
,
e
}();
t.HttpProtocol = c;
var h = function() {
function e(e) {
this._scheme = e.options.scheme,
this._recHost = e.options.recHost
}
return e.prototype.newResources = function(e, t) {
var n = this;
return new s.FSPromise(function(i, o) {
l(n._scheme, n._recHost, "/rec/newResources?OrgId=" + e, r.stringify(t), i, o)
}
)
}
,
e.prototype.uploadResource = function(e) {
var t = this;
return new s.FSPromise(function(n, r) {
l(t._scheme, t._recHost, "/rec/uploadResource", e, n, r)
}
)
}
,
e
}();
function d(e, t, n, r, i, o, s, a) {
var u = "/rec/bundle?OrgId=" + e + "&UserId=" + t + "&SessionId=" + n + "&PageId=" + r + "&Seq=" + i;
return null != o && (u += "&PageStart=" + o),
null != s && (u += "&PrevBundleTime=" + s),
null != a && (u += "&DeltaT=" + a),
u
}
function l(e, t, n, r, i, s) {
var u = "//" + t + n
, c = !1
, h = new XMLHttpRequest;
if ("withCredentials"in h)
h.onreadystatechange = function() {
if (h.readyState == a.XHR_DONE) {
if (c)
return;
c = !0;
try {
200 == h.status ? i(h.responseText) : s && s(h.status)
} catch (e) {
o.FsBugSnag.sendToBugsnag(e, "error")
}
}
}
,
h.open("POST", e + u, !0),
h.withCredentials = !0,
"function" != typeof r.append && h.setRequestHeader("Content-Type", "text/plain"),
h.send(r);
else {
var d = new XDomainRequest;
d.onload = function() {
i(d.responseText)
}
,
d.onerror = function() {
s && s("Not Found" == d.responseText ? 404 : 500)
}
,
d.onprogress = function() {}
,
d.open("POST", u),
d.send(r)
}
}
function f(e, t, n, i, o, s, a, u, c, h) {
var l = e + "//" + t + d(i, o, s, a, n.Seq, u, c, h);
return "function" == typeof navigator.sendBeacon && (navigator.sendBeacon(l, r.stringify(n)),
!0)
}
t.HttpResourceProtocol = h,
t.bundleUrl = d,
t.bundleBeacon = f
}
, function(e, t, n) {
"use strict";
Object.defineProperty(t, "__esModule", {
value: !0
});
var r = n(1);
t.BAD_APP_IDS = ["", "0", "1", "-1", "true", "false", "n/a", "nan", "undefined", "null", "nil", "the_id_that_you_use_in_your_app_for_this_user"],
t.parseIdentityCookie = function(e) {
var n = ""
, i = ""
, o = ""
, s = ""
, a = "";
if (e) {
var u = e.split("`");
u.length < 3 ? n = e : (o = u[0],
s = u[1],
n = u[2],
u.length >= 5 && (a = decodeURIComponent(u[3]),
t.BAD_APP_IDS.indexOf(a) >= 0 && (r.logIfDebug("ignoring invalid app key \"" + a + "\" from cookie."),
a = "")))
}
var c = n.indexOf(":");
return -1 != c && (i = n.slice(c + 1),
n = n.slice(0, c)),
{
Host: o,
OrgId: s,
UserId: n,
SessionId: i,
AppKey: a
}
}
,
t.getCookies = function(e) {
for (var t = {}, n = e.cookie.split(";"), r = 0; r < n.length; r++) {
var i = n[r].replace(/^\s+|\s+$/g, "").split("=");
t[i[0]] || (t[i[0]] = i[1])
}
return t
}
}
, function(e, t, n) {
"use strict";
Object.defineProperty(t, "__esModule", {
value: !0
});
var r, i = "FS", o = "_fs_loaded", s = "_fs_namespace";
function a(e) {
return e[o]
}
t.Namespace = function(e) {
if (!r) {
var t = a(e);
r = t || (e[s] ? e[s] : i)
}
return r
}
,
t.isLoaded = a,
t.setLoaded = function(e, t) {
e[o] = t,
t in e || (e[t] = {})
}
}
, function(e, t, n) {
"use strict";
Object.defineProperty(t, "__esModule", {
value: !0
}),
t.CompiledTimestamp = 1551142899,
t.CompiledVersion = "UNSET"
}
, function(e, t, n) {
"use strict";
Object.defineProperty(t, "__esModule", {
value: !0
}),
t.Node_ELEMENT_NODE = 1,
t.Node_ATTRIBUTE_NODE = 2,
t.Node_TEXT_NODE = 3,
t.Node_CDATA_SECTION_NODE = 4,
t.Node_ENTITY_REFERENCE_NODE = 5,
t.Node_ENTITY_NODE = 6,
t.Node_PROCESSING_INSTRUCTION_NODE = 7,
t.Node_COMMENT_NODE = 8,
t.Node_DOCUMENT_NODE = 9,
t.Node_DOCUMENT_TYPE_NODE = 10,
t.Node_DOCUMENT_FRAGMENT_NODE = 11,
t.Node_NOTATION_NODE = 12,
t.XHR_UNSENT = 0,
t.XHR_OPENED = 1,
t.XHR_HEADERS_RECEIVED = 2,
t.XHR_LOADING = 3,
t.XHR_DONE = 4,
t.XHR_STATUS_ABORTED = 0
}
, function(e, t, n) {
"use strict";
Object.defineProperty(t, "__esModule", {
value: !0
});
var r = n(5);
function i(e) {
return e && e.body && e.documentElement ? "BackCompat" == e.compatMode ? [e.body.clientWidth, e.body.clientHeight] : [e.documentElement.clientWidth, e.documentElement.clientHeight] : [0, 0]
}
t.getDocumentClientArea = i;
var o = function() {
function e(e, t) {
var n, r;
this.hasKnownPosition = !1,
this.pageLeft = 0,
this.pageTop = 0,
this.width = 0,
this.height = 0,
this.clientWidth = 0,
this.clientHeight = 0;
var o = e.document;
if (o && o.documentElement && o.body) {
if ("visualViewport"in e) {
var s = o.documentElement.getBoundingClientRect();
this.hasKnownPosition = !0,
this.pageLeft = 0 == s.left ? 0 : -s.left,
this.pageTop = 0 == s.top ? 0 : -s.top
}
if (n = i(o),
this.clientWidth = n[0],
this.clientHeight = n[1],
void 0 !== t && this.clientWidth == t.clientWidth && this.clientHeight == t.clientHeight && t.width > 0 && t.height > 0)
return this.width = t.width,
void (this.height = t.height);
r = this.computeLayoutViewportSizeFromMediaQueries(e),
this.width = r[0],
this.height = r[1]
}
}
return e.prototype.computeLayoutViewportSizeFromMediaQueries = function(e) {
var t = this.findMediaValue(e, "width", this.clientWidth, this.clientWidth + 128);
void 0 === t && (t = this.tryToGet(e, "innerWidth")),
void 0 === t && (t = this.clientWidth);
var n = this.findMediaValue(e, "height", this.clientHeight, this.clientHeight + 128);
return void 0 === n && (n = this.tryToGet(e, "innerHeight")),
void 0 === n && (n = this.clientHeight),
[t, n]
}
,
e.prototype.findMediaValue = function(e, t, n, i) {
if (r.windex.matchMedia) {
var o = r.windex.matchMedia(e, "(min-" + t + ": " + n + "px)");
if (null != o) {
if (o.matches && r.windex.matchMedia(e, "(max-" + t + ": " + n + "px)").matches)
return n;
for (; n <= i; ) {
var s = Math.floor((n + i) / 2);
if (r.windex.matchMedia(e, "(min-" + t + ": " + s + "px)").matches) {
if (r.windex.matchMedia(e, "(max-" + t + ": " + s + "px)").matches)
return s;
n = s + 1
} else
i = s - 1
}
}
}
}
,
e.prototype.tryToGet = function(e, t) {
try {
return e[t]
} catch (e) {
return
}
}
,
e
}();
function s(e, t) {
return new o(e,t)
}
t.getLayoutViewport = s;
var a = function() {
return function(e, t) {
this.offsetLeft = 0,
this.offsetTop = 0,
this.pageLeft = 0,
this.pageTop = 0,
this.width = 0,
this.height = 0,
this.scale = 0;
var n = e.document;
if (n.body) {
var r = "BackCompat" == n.compatMode;
"pageXOffset"in e ? (this.pageLeft = e.pageXOffset,
this.pageTop = e.pageYOffset) : n.scrollingElement ? (this.pageLeft = n.scrollingElement.scrollLeft,
this.pageTop = n.scrollingElement.scrollTop) : r ? (this.pageLeft = n.body.scrollLeft,
this.pageTop = n.body.scrollTop) : n.documentElement && (n.documentElement.scrollLeft > 0 || n.documentElement.scrollTop > 0) ? (this.pageLeft = n.documentElement.scrollLeft,
this.pageTop = n.documentElement.scrollTop) : (this.pageLeft = n.body.scrollLeft || 0,
this.pageTop = n.body.scrollTop || 0),
this.offsetLeft = this.pageLeft - t.pageLeft,
this.offsetTop = this.pageTop - t.pageTop;
try {
var i = e.innerWidth
, o = e.innerHeight
} catch (e) {
return
}
if (0 != i && 0 != o) {
this.scale = t.width / i,
this.scale < 1 && (this.scale = 1);
var s = t.width - t.clientWidth
, a = t.height - t.clientHeight;
this.width = i - s / this.scale,
this.height = o - a / this.scale
}
}
}
}();
t.getVisualViewport = function(e, t) {
return "visualViewport"in e ? e.visualViewport : (void 0 === t && (t = s(e)),
new a(e,t))
}
}
, function(e, t, n) {
"use strict";
Object.defineProperty(t, "__esModule", {
value: !0
}),
t.domainFromHost = function(e) {
var t = e
, n = t.indexOf(":");
return n >= 0 && (t = t.slice(0, n)),
t
}
,
t.isLocalhost = function(e) {
return "localhost" == e || "127.0.0.1" == e
}
,
t.isIP = function(e) {
return !!e.match(/^[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}$/g)
}
}
, function(e, t, n) {
"use strict";
Object.defineProperty(t, "__esModule", {
value: !0
})
}
, function(e, t, n) {
"use strict";
var r;
Object.defineProperty(t, "__esModule", {
value: !0
}),
t.theDummyDoc = function() {
return r || (r = function() {
var e = document.implementation.createHTMLDocument("");
return e.head || e.documentElement.appendChild(e.createElement("head")),
e.body || e.documentElement.appendChild(e.createElement("body")),
e
}()),
r
}
}
, function(e, t, n) {
"use strict";
Object.defineProperty(t, "__esModule", {
value: !0
}),
t.parseFieldPatterns = function(e) {
var t = 0
, n = {
id: t++,
edges: {}
};
return e.split("\n").forEach(function(e) {
if ("" != (e = e.trim())) {
if (0 == e.indexOf("/") || e.lastIndexOf("/") == e.length - 1)
throw new Error("Leading and trailing slashes are not supported");
var r = n
, i = e.split("/");
i.forEach(function(e, n) {
if ("" === (e = e.trim()))
throw new Error("Empty elements are not allowed");
if ("**" != e && "*" != e && -1 != e.indexOf("*"))
throw new Error("Embedded wildcards are not supported");
var o = null;
"**" == e ? (r.loop = !0,
o = r) : e in r.edges && (o = r.edges[e]),
o || (o = {
id: t++,
edges: {}
},
r.edges[e] = o),
n == i.length - 1 && (o.term = !0),
r = o
})
}
}),
n
}
}
, function(e, t, n) {
"use strict";
Object.defineProperty(t, "__esModule", {
value: !0
});
var r = n(6)
, i = n(5)
, o = n(12);
t.wait = function(e) {
return new r.FSPromise(function(t) {
i.windex.setWindowTimeout(window, o.guard(t), e)
}
)
}
}
, function(e, t, n) {
"use strict";
Object.defineProperty(t, "__esModule", {
value: !0
}),
t.isErrorFatal = function(e) {
return e >= 400 || 202 == e || 206 == e
}
}
, function(e, t, n) {
"use strict";
Object.defineProperty(t, "__esModule", {
value: !0
});
var r = n(22)
, i = n(17)
, o = n(7);
t.HighlightTypeFsId = "fsidentity",
t.HighlightTypeNewUid = "newuid",
t.UID_COOKIE = "fs_uid";
var s = function() {
function e(e) {
void 0 === e && (e = document),
this._doc = e,
this._cookies = {}
}
return e.prototype.initFromCookies = function(e, n) {
this._cookies = i.getCookies(this._doc),
this._cookie = i.parseIdentityCookie(this._cookies[t.UID_COOKIE]),
this._cookie.Host.replace(/^www\./, "") == e.replace(/^www\./, "") && this._cookie.OrgId == n || (this._cookie = {
Host: e,
OrgId: n,
UserId: "",
SessionId: "",
AppKey: ""
})
}
,
e.prototype.initFromParsedCookie = function(e) {
this._cookie = e
}
,
e.prototype.clear = function() {
var e = this.host()
, t = this.orgId();
this._cookie = {
Host: e,
OrgId: t,
UserId: "",
SessionId: "",
AppKey: ""
},
this.write()
}
,
e.prototype.host = function() {
return this._cookie.Host
}
,
e.prototype.orgId = function() {
return this._cookie.OrgId
}
,
e.prototype.userId = function() {
return this._cookie.UserId
}
,
e.prototype.sessionId = function() {
return this._cookie.SessionId
}
,
e.prototype.appKey = function() {
return this._cookie.AppKey
}
,
e.prototype.cookieData = function() {
return this._cookie
}
,
e.prototype.cookies = function() {
return this._cookies
}
,
e.prototype.setCookie = function(e, t) {
var n = e + "=" + t;
this._domain ? n += "; domain=." + encodeURIComponent(this._domain) : n += "; domain=",
n += "; expires=Fri, 31 Dec 9999 23:59:59 GMT; path=/",
this._doc.cookie = n
}
,
e.prototype.setIds = function(e, t, n, i) {
(r.isLocalhost(t) || r.isIP(t)) && (t = "");
var s = o._fs_cookie_domain(e);
"string" == typeof s && (t = s),
this._domain = t,
this._cookie.UserId = n,
this._cookie.SessionId = i,
this.write()
}
,
e.prototype.clearAppId = function() {
return !!this._cookie.AppKey && (this._cookie.AppKey = "",
this.write(),
!0)
}
,
e.prototype.setAppId = function(e) {
this._cookie.AppKey = e,
this.write()
}
,
e.prototype.encode = function() {
var e = this._cookie.Host + "`" + this._cookie.OrgId + "`" + this._cookie.UserId + ":" + this._cookie.SessionId;
return this._cookie.AppKey && (e += "`" + encodeURIComponent(this._cookie.AppKey) + "`"),
e
}
,
e.prototype.write = function() {
null != this._domain && this.setCookie(t.UID_COOKIE, this.encode())
}
,
e
}();
t.Identity = s
}
, function(e, t, n) {
e.exports = n(30)
}
, function(e, t, n) {
"use strict";
Object.defineProperty(t, "__esModule", {
value: !0
}),
n(31);
var r = n(32)
, i = n(2)
, o = n(7);
try {
new r.Conductor().init()
} catch (e) {
i.FsBugSnag.sendToBugsnag(e, "error"),
o._fs_debug(window) && window.console && console.log && console.log("Failed to initialize FullStory.")
}
}
, function(e, t, n) {
"use strict";
Object.defineProperty(t, "__esModule", {
value: !0
})
}
, function(e, t, n) {
"use strict";
var r = this && this.__awaiter || function(e, t, n, r) {
return new (n || (n = Promise))(function(i, o) {
function s(e) {
try {
u(r.next(e))
} catch (e) {
o(e)
}
}
function a(e) {
try {
u(r["throw"](e))
} catch (e) {
o(e)
}
}
function u(e) {
e.done ? i(e.value) : new n(function(t) {
t(e.value)
}
).then(s, a)
}
u((r = r.apply(e, t || [])).next())
}
)
}
, i = this && this.__generator || function(e, t) {
var n, r, i, o, s = {
label: 0,
sent: function() {
if (1 & i[0])
throw i[1];
return i[1]
},
trys: [],
ops: []
};
return o = {
next: a(0),
"throw": a(1),
"return": a(2)
},
"function" == typeof Symbol && (o[Symbol.iterator] = function() {
return this
}
),
o;
function a(o) {
return function(a) {
return function(o) {
if (n)
throw new TypeError("Generator is already executing.");
for (; s; )
try {
if (n = 1,
r && (i = 2 & o[0] ? r["return"] : o[0] ? r["throw"] || ((i = r["return"]) && i.call(r),
0) : r.next) && !(i = i.call(r, o[1])).done)
return i;
switch (r = 0,
i && (o = [2 & o[0], i.value]),
o[0]) {
case 0:
case 1:
i = o;
break;
case 4:
return s.label++,
{
value: o[1],
done: !1
};
case 5:
s.label++,
r = o[1],
o = [0];
continue;
case 7:
o = s.ops.pop(),
s.trys.pop();
continue;
default:
if (!(i = (i = s.trys).length > 0 && i[i.length - 1]) && (6 === o[0] || 2 === o[0])) {
s = 0;
continue
}
if (3 === o[0] && (!i || o[1] > i[0] && o[1] < i[3])) {
s.label = o[1];
break
}
if (6 === o[0] && s.label < i[1]) {
s.label = i[1],
i = o;
break
}
if (i && s.label < i[2]) {
s.label = i[2],
s.ops.push(o);
break
}
i[2] && s.ops.pop(),
s.trys.pop();
continue;
}
o = t.call(e, s)
} catch (e) {
o = [6, e],
r = 0
} finally {
n = i = 0
}
if (5 & o[0])
throw o[1];
return {
value: o[0] ? o[1] : void 0,
done: !0
}
}([o, a])
}
}
}
;
Object.defineProperty(t, "__esModule", {
value: !0
});
var o = n(2)
, s = n(13)
, a = n(54)
, u = n(57)
, c = n(28)
, h = n(59)
, d = n(18)
, l = n(5)
, f = n(0)
, p = n(1)
, _ = n(7)
, g = n(19)
, v = n(4)
, y = n(21)
, m = n(11)
, E = n(6)
, S = n(26)
, w = n(16)
, T = n(60)
, b = function() {
function e() {}
return e.prototype.createTopRecorder = function(e) {
var t = _._fs_use_socket(e.window) && T.SockProtocol.isSupported() ? new T.SockProtocol(e) : new w.HttpProtocol(e);
return new a.TopRecorder(e,t)
}
,
e.prototype.createInnerRecorder = function(e) {
return new u.InnerRecorder(e)
}
,
e
}();
t.DefaultRecorderMaker = b;
var I = function() {
function e(e, t) {
void 0 === e && (e = window),
void 0 === t && (t = new b),
this.wnd = e,
this.recMaker = t,
this.scheme = "https:",
this.domDoneLoaded = !1,
this.waitingOnStart = !1,
this.reidentifyCount = 0
}
return e.prototype.init = function() {
d.isLoaded(this.wnd) || (d.setLoaded(this.wnd, d.Namespace(this.wnd)),
l.initWindex(this.wnd),
this.initApi(),
this.start())
}
,
e.prototype.getCurrentSessionURL = function(e) {
return this.recorder ? this.recorder.getCurrentSessionURL(e) : null
}
,
e.prototype.getCurrentSession = function() {
return this.recorder ? this.recorder.getCurrentSession() : null
}
,
e.prototype.enableConsole = function() {
this.recorder && this.recorder.console().enable()
}
,
e.prototype.disableConsole = function() {
this.recorder && this.recorder.console().disable()
}
,
e.prototype.log = function(e) {
for (var t = [], n = 1; n < arguments.length; n++)
t[n - 1] = arguments[n];
this.recorder && ("log" !== e && "info" !== e && "warn" !== e && "error" !== e && "debug" !== e && (t.unshift(e),
e = "log"),
this.recorder.console().addLog(e, t))
}
,
e.prototype.shutdownApi = function() {
this.shutdown("FS.shutdown()")
}
,
e.prototype.shutdown = function(e) {
this.recorder && !this.deferredStart ? (this.recorder.shutdown(e),
this.recorder = null) : p.logIfDebug("Recording already shut down.")
}
,
e.prototype.restart = function() {
if (this.deferredStart)
return this.deferredStart(),
void (this.deferredStart = null);
this.recorder ? p.logIfDebug("Recording already started.") : this.recorder = this.createRecorder(!0)
}
,
e.prototype.splitPage = function(e, t) {
return r(this, void 0, E.FSPromise, function() {
return i(this, function(n) {
switch (n.label) {
case 0:
return t && null == this.identity ? (p.logIfDebug("Can't re-identify from an iframe"),
[2]) : this.waitingOnStart ? (this.splitPending = [e, t],
[2]) : (this.shutdown(e),
[4, S.wait(0)]);
case 1:
return n.sent(),
[4, S.wait(0)];
case 2:
return n.sent(),
t && this.identity && this.identity.clear(),
this.restart(),
[2];
}
})
})
}
,
e.prototype._api = function(e, t, n) {
if (this.inFrame())
p.logIfDebug("API calls may only be made from the top-most frame");
else if (this.recorder) {
var r = this.vars.api(e, t, n)
, i = r.events
, o = r.reidentify
, s = r.consent;
if (o) {
if (this.reidentifyCount < 8)
return this.reidentifyCount++,
_.FS_q_push(this.wnd, [e, t]),
void this.splitPage("reidentify", !0);
p.logIfDebug("reidentified too many times; giving up")
}
void 0 !== s && this.recorder.setConsent(s);
for (var a = 0; a < i.length; a++)
this.recorder.queue().enqueue(i[a].Kind, i[a].Args)
} else
_.FS_q_push(this.wnd, [e, t])
}
,
e.prototype._cookies = function() {
return this.identity ? this.identity.cookies() : (p.logIfDebug("Error in FS integration: Can't get cookies from inside an iframe"),
null)
}
,
e.prototype._setCookie = function(e, t) {
this.identity ? this.identity.setCookie(e, t) : p.logIfDebug("Error in FS integration: Can't set cookies from inside an iframe")
}
,
e.prototype.initApi = function() {
var e = this.wnd[d.Namespace(this.wnd)];
e.getCurrentSessionURL = f.$entry(this.getCurrentSessionURL, this),
e.getCurrentSession = f.$entry(this.getCurrentSession, this),
e.enableConsole = f.$entry(this.enableConsole, this),
e.disableConsole = f.$entry(this.disableConsole, this),
e.log = f.$entry(this.log, this),
e.shutdown = f.$entry(this.shutdownApi, this),
e.restart = f.$entry(this.restart, this),
e._api = f.$entry(this._api, this),
e._cookies = f.$entry(this._cookies, this),
e._setCookie = f.$entry(this._setCookie, this)
}
,
e.prototype.start = function() {
var e = this;
p.initDebug(_._fs_debug(this.wnd)),
p.logIfDebug("script version " + g.CompiledVersion + " (compiled at " + g.CompiledTimestamp + ")"),
this.orgId = _._fs_org(this.wnd),
this.script = _._fs_script(this.wnd),
this.recHost = _._fs_rec_host(this.wnd),
this.appHost = _._fs_app_host(this.wnd),
this.recHost ? this.orgId ? (p.logIfDebug("script: " + this.script),
p.logIfDebug("recording host: " + this.recHost),
p.logIfDebug("orgid: " + this.orgId),
"localhost:8080" == this.recHost && (this.scheme = "http:"),
this.inFrame() || (this.identity = new c.Identity(this.wnd.document),
this.vars = new h.Vars(this.identity),
this.identity.initFromCookies(this.recHost, this.orgId)),
this.canRecord(this.orgId) ? (this.recorder = this.createRecorder(),
this.recorder.eventWatcher().watchEvents(),
this.hookLoadEvents(),
this.wnd.addEventListener("message", o.FsBugSnag.wrap(function(t) {
if ("string" == typeof t.data && (t.source == e.wnd.parent || t.source == e.wnd))
switch (s.parsePostMessageData(t.data)[0]) {
case s.FS_SHUTDOWN_FRAME:
e.shutdown("ShutdownFrame message");
break;
case s.FS_RESTART_FRAME:
e.restart();
}
}))) : this.hailMary()) : p.logIfDebug("Missing global _fs_org. Recording disabled.") : p.logIfDebug("Missing global _fs_host or _fs_rec_host. Recording disabled.")
}
,
e.prototype._context = function(e) {
var t = this;
return {
window: this.wnd,
time: new v.Timekeeper,
options: {
orgId: this.orgId,
scheme: this.scheme,
script: this.script,
recHost: this.recHost,
appHost: this.appHost
},
recording: {
inFrame: this.inFrame(),
vars: this.vars,
identity: this.identity,
splitPage: function(e, n) {
return t.splitPage(e, n)
},
pageSignature: function() {
return e().pageSignature()
}
}
}
}
,
e.prototype.createRecorder = function(e) {
var t, n = this, r = this._context(function() {
return t
});
if (this.inFrame())
t = this.recMaker.createInnerRecorder(r);
else {
t = this.recMaker.createTopRecorder(r);
for (var i = this.drainApiQueue(_.FS_q_drain(this.wnd)), o = i.events, a = i.reidentify, u = i.appId, c = i.defer, h = i.consent, d = 0, l = o; d < l.length; d++) {
var f = l[d];
t.queue().enqueue(f.Kind, f.Args)
}
void 0 !== h && t.setConsent(h)
}
this.waitingOnStart = !0;
var p = function() {
t.start(!!a, function() {
n.waitingOnStart = !1,
e && t.tellAllFramesTo([s.FS_RESTART_FRAME]),
n.splitPending && (n.splitPage(n.splitPending[0], n.splitPending[1]),
n.splitPending = null)
}, u),
e && t.eventWatcher().watchEvents()
};
return c ? this.deferredStart = p : p(),
t
}
,
e.prototype.drainApiQueue = function(e) {
if (!e)
return {
events: []
};
for (var t, n, r, i, o = [], s = 0, a = e; s < a.length; s++) {
var u = a[s]
, c = u.length > 2 ? u[2] : null;
"user" == u[0] && u[1] && u[1].uid && (t = h.transformValidateAppId(u[1].uid)[0]);
var d = this.vars.api(u[0], u[1], c)
, l = d.events
, f = d.reidentify
, p = d.recStatus
, _ = d.consent;
p && (i = "shutdown" === p),
f && (o = [],
n = !0),
void 0 !== _ && (r = _),
o.push.apply(o, l)
}
return {
events: o,
reidentify: n,
consent: r,
appId: t,
defer: i
}
}
,
e.prototype.inFrame = function() {
if ("boolean" == typeof this._inFrame)
return this._inFrame;
var e = _._fs_transport(this.wnd);
return _._fs_is_outer_script(this.wnd) ? this._inFrame = !1 : this.wnd != top ? this._inFrame = !0 : e ? e.init && e.init(this.orgId) && (this._inFrame = !0) : this._inFrame = !1,
this._inFrame
}
,
e.prototype.canRecord = function(e) {
return (this.wnd.MutationObserver || this.wnd.MutationEvent) && this.wnd.postMessage && f._native_matchesSelector ? !!function e(t) {
if (t == top || _._fs_is_outer_script(t) || _._fs_run_in_iframe(t) || _._fs_transport(t))
return !0;
try {
return t.parent.document,
e(t.parent)
} catch (e) {
return !1
}
}(this.wnd) || (p.logIfDebug("Fullstory recording for this page is NOT allowed within an iFrame."),
!1) : (p.logIfDebug("missing required browser features"),
!1)
}
,
e.prototype.hailMary = function() {
var e = this;
if (this.identity) {
var t = _._fs_replay_flags(this.wnd);
p.logIfDebug("Unable to record playback stream.");
var n = document.createElement("script");
this.wnd.__fs_startResponse = function(t) {
t && e.identity.setIds(e.wnd, t.CookieDomain, t.UserIntId, t.SessionIntId),
document.head && document.head.removeChild(n)
}
;
var r = y.getDocumentClientArea(this.wnd.document)
, i = r[0]
, o = r[1]
, s = f.tryGetScreenDims(this.wnd)
, a = s[0]
, u = s[1];
n.src = "//" + this.recHost + "/rec/page?OrgId=" + this.orgId + "&UserId=" + this.identity.userId() + "&Url=" + encodeURIComponent(m.scrubUrl(this.wnd.location.href)) + "&Base=" + encodeURIComponent(m.scrubUrl(m.baseUri(this.wnd))) + "&Width=" + i + "&Height=" + o + "&ScreenWidth=" + a + "&ScreenHeight=" + u + "&Referrer=" + encodeURIComponent(document.referrer) + "&Doctype=" + encodeURIComponent(f.doctypeString(document)) + "&CompiledTimestamp=" + g.CompiledTimestamp + "&Fallback=true" + (t ? "&ReplayFlags=" + t : ""),
document.head && document.head.appendChild(n)
}
}
,
e.prototype.hookLoadEvents = function() {
var e = this
, t = function() {
e.domDoneLoaded || (e.domDoneLoaded = !0,
e.recorder && e.recorder.onDomLoad())
}
, n = !1
, r = function() {
n || (n = !0,
e.recorder && e.recorder.onLoad())
};
switch (document.readyState) {
case "interactive":
document.attachEvent || t();
break;
case "complete":
t(),
r();
}
this.domDoneLoaded || document.addEventListener("DOMContentLoaded", o.FsBugSnag.wrap(t)),
n || this.wnd.addEventListener("load", o.FsBugSnag.wrap(function(e) {
t(),
r()
}))
}
,
e
}();
t.Conductor = I
}
, function(e, t, n) {
"use strict";
Object.defineProperty(t, "__esModule", {
value: !0
});
var r = n(1)
, i = n(2)
, o = n(12);
function s(e, t, n, i) {
void 0 !== n && ("function" == typeof e.addEventListener ? e.addEventListener(t, n, i) : "function" == typeof e.addListener ? e.addListener(n) : r.logIfDebug("Target of " + t + " doesn't seem to support listeners"))
}
function a(e, t, n, i) {
void 0 !== n && ("function" == typeof e.removeEventListener ? e.removeEventListener(t, n, i) : "function" == typeof e.removeListener ? e.removeListener(n) : r.logIfDebug("Target of " + t + " doesn't seem to support listeners"))
}
t._trustEventOverride = "_fs_trust_event";
var u = function() {
function e() {
var e = this;
this._listeners = [],
this._children = [],
this._yesCapture = !0,
this._noCapture = !1;
try {
var t = Object.defineProperty({}, "passive", {
get: function() {
e._yesCapture = {
capture: !0,
passive: !0
},
e._noCapture = {
capture: !1,
passive: !0
}
}
});
window.addEventListener("test", o.doNothing, t)
} catch (e) {}
}
return e.prototype.add = function(e, n, r, o, a) {
void 0 === a && (a = !1);
var u = {
target: e,
type: n,
fn: i.FsBugSnag.wrap(function(e) {
(a || !1 !== e.isTrusted || "message" == n || e[t._trustEventOverride]) && o(e)
}),
options: r ? this._yesCapture : this._noCapture,
index: this._listeners.length
};
return this._listeners.push(u),
s(e, n, u.fn, u.options),
u
}
,
e.prototype.remove = function(e) {
e.target && (a(e.target, e.type, e.fn, e.options),
e.target = null,
e.fn = void 0)
}
,
e.prototype.clear = function() {
for (var e = 0; e < this._listeners.length; e++)
this._listeners[e].target && this.remove(this._listeners[e]);
this._listeners = []
}
,
e.prototype.createChild = function() {
var t = new e;
return this._children.push(t),
t
}
,
e.prototype.refresh = function() {
for (var e = 0, t = this._listeners; e < t.length; e++) {
var n = t[e];
n.target && (a(n.target, n.type, n.fn, n.options),
s(n.target, n.type, n.fn, n.options))
}
for (var r = 0, i = this._children; r < i.length; r++) {
i[r].refresh()
}
}
,
e
}();
t.DomListeners = u
}
, function(e, t, n) {
"use strict";
Object.defineProperty(t, "__esModule", {
value: !0
});
var r = n(35)
, i = n(21)
, o = n(36)
, s = n(37)
, a = n(39)
, u = n(40)
, c = n(42)
, h = n(0)
, d = n(9)
, l = n(3)
, f = n(4)
, p = n(8)
, _ = n(15)
, g = n(10)
, v = n(5)
, y = n(11)
, m = n(20)
, E = function() {
function e(e, t, n, r, i, h, l) {
var f = this;
this._queue = t,
this._onFrameCreated = i,
this._beforeFrameRemoved = h,
this._resourceUploader = l,
this._curSelection = [],
this._scrollTimeouts = {},
this._quirks = !1,
this._uploadResources = !1,
this._initialized = !1,
this._wnd = e.window,
this._doc = this._wnd.document,
this._loc = this._wnd.location,
this._hst = this._wnd.history,
this._listeners = r.createChild(),
this._quirks = "BackCompat" == this._doc.compatMode,
this._currentUrl = this._loc.href,
this._inputWatcher = new o.InputWatcher(function(e) {
f.addChangeElem(e)
}
,function(e) {
return !!d.fsid(e)
}
),
this._ajaxWatcher = new u.AjaxWatcher(e,t),
this._perfWatcher = new a.PerfWatcher(e,t,this._listeners),
this._styleSheetWatcher = new c.StyleSheetWatcher(e,t),
this._mutWatcher = new s.MutationWatcher(e,n,!0,function(e, t, n) {
f.visitNode(e, t, n)
}
,function(e) {
var t = e.node;
if ("iframe" == _.tagName(e.node))
f._beforeFrameRemoved(e.node);
else if ("function" == typeof t.getElementsByTagName)
for (var n = t.getElementsByTagName("iframe"), r = 0; r < n.length; r++) {
var i = n[r];
f._beforeFrameRemoved(i)
}
}
,function(e, t, n) {
if (!d.isBlocked(e) && f._uploadResources)
for (var r = 0, i = T(e, t, n); r < i.length; r++) {
var o = i[r];
0 == o.lastIndexOf("blob:", 0) && f._resourceUploader.uploadBlob(o)
}
}
)
}
return Object.defineProperty(e.prototype, "perfWatcher", {
get: function() {
return this._perfWatcher
},
enumerable: !0,
configurable: !0
}),
e.prototype.watchEvents = function() {
var e = this;
this._mutWatcher.hookMutations(),
this._inputWatcher.hookEvents(),
this._styleSheetWatcher.start(),
this._listeners.add(this._wnd, "mousemove", !0, function(t) {
e.addMouseMove(t)
}),
this._listeners.add(this._wnd, "mousedown", !0, function(t) {
e.addMouseDown(t)
}),
this._listeners.add(this._wnd, "mouseup", !0, function(t) {
e.addMouseUp(t)
}),
this._listeners.add(this._wnd, "keydown", !0, function(t) {
e.addKeyDown(t)
}),
this._listeners.add(this._wnd, "keyup", !0, function(t) {
e.addKeyUp(t)
}),
this._listeners.add(this._wnd, "click", !0, function(t) {
e.addClick(t)
}),
this._listeners.add(this._wnd, "dblclick", !0, function(t) {
e.addDblClick(t)
}),
this._listeners.add(this._wnd, "focus", !0, function(t) {
e.addFocus(t)
}),
this._listeners.add(this._wnd, "blur", !0, function(t) {
e.addBlur(t)
}),
this._listeners.add(this._wnd, "change", !0, function(t) {
e.addChange(t)
}, !0),
this._listeners.add(this._wnd, "touchstart", !0, function(t) {
e.addTouchEvent(t, l.EVENT_TOUCHSTART),
e.addWindowScrollOrResize()
}),
this._listeners.add(this._wnd, "touchend", !0, function(t) {
e.addTouchEvent(t, l.EVENT_TOUCHEND),
e.addWindowScrollOrResize()
}),
this._listeners.add(this._wnd, "touchmove", !0, function(t) {
e.addTouchEvent(t, l.EVENT_TOUCHMOVE),
e.addWindowScrollOrResize()
}),
this._listeners.add(this._wnd, "touchcancel", !0, function(t) {
e.addTouchEvent(t, l.EVENT_TOUCHCANCEL)
}),
this._listeners.add(this._wnd, "play", !0, function(t) {
e.addPlayPauseEvent(t, l.EVENT_PLAY)
}),
this._listeners.add(this._wnd, "pause", !0, function(t) {
e.addPlayPauseEvent(t, l.EVENT_PAUSE)
}),
this._listeners.add(this._wnd, "scroll", !1, function(t) {
e.addWindowScrollOrResize()
}),
this._listeners.add(this._wnd, "resize", !1, function(t) {
e.addWindowScrollOrResize()
}),
this._listeners.add(this._wnd, "submit", !1, function(t) {
e.addFormSubmit(t)
}),
this._listeners.add(this._wnd, "focus", !1, function(t) {
e.addWindowFocus(t)
}),
this._listeners.add(this._wnd, "blur", !1, function(t) {
e.addWindowBlur(t)
}),
this._listeners.add(this._wnd, "popstate", !1, function() {
e.addNavigate()
}),
this._listeners.add(this._wnd, "selectstart", !0, function(t) {
e.addSelection()
}),
this._listeners.add(this._doc, "selectionchange", !0, function(t) {
e.addSelection()
});
var t = this._wnd.visualViewport;
if (t ? (this._listeners.add(t, "scroll", !0, function() {
return e.addWindowScrollOrResize()
}),
this._listeners.add(t, "resize", !0, function() {
return e.addWindowScrollOrResize()
})) : this._listeners.add(this._wnd, "mousewheel", !0, function() {
e.addWindowScrollOrResize()
}),
this._pushHook = h.activateHook(this._hst, "pushState"),
this._pushHook && this._pushHook.afterSync(function() {
return e.addNavigate()
}),
this._replaceHook = h.activateHook(this._hst, "replaceState"),
this._replaceHook && this._replaceHook.afterSync(function() {
return e.addNavigate()
}),
"function" == typeof this._wnd.document.hasFocus && this._queue.enqueue(this._wnd.document.hasFocus() ? l.EVENT_WINDOW_FOCUS : l.EVENT_WINDOW_BLUR, []),
v.windex.matchMedia)
for (var n = function(t, n, i) {
var o = v.windex.matchMedia(r._wnd, i);
if (!o)
return "continue";
var s = function() {
o.matches && e._queue.enqueue(l.EVENT_MEDIA_QUERY_CHANGE, [t, n])
};
r._listeners.add(o, "change", !0, s),
s()
}, r = this, i = 0, o = [["any-pointer", "coarse", "not screen and (any-pointer: fine)"], ["any-pointer", "fine", "only screen and (any-pointer: fine)"], ["any-hover", "none", "not screen and (any-hover: hover)"], ["any-hover", "hover", "only screen and (any-hover: hover)"]]; i < o.length; i++) {
var s = o[i];
n(s[0], s[1], s[2])
}
this._initialized = !0
}
,
e.prototype.initResourceUploading = function() {
this._resourceUploader.init(),
this._uploadResources = !0
}
,
e.prototype.onDomLoad = function() {
this.addDomLoaded(),
this.addViewportChange(),
this._mutWatcher._checkForMissingInsertions(g.uaIsIE)
}
,
e.prototype.onLoad = function() {
var e = this;
setTimeout(function() {
e._perfWatcher.onLoad(),
e.addLoad(),
e.addViewportChange()
}, 0)
}
,
e.prototype.ajaxWatcher = function() {
return this._ajaxWatcher
}
,
e.prototype.bundleEvents = function(e) {
return this._inputWatcher.tick(),
this._perfWatcher.tick(e),
this._ajaxWatcher.tick(e),
this.addViewportChange(),
this._mutWatcher.processMutations()
}
,
e.prototype.shutdown = function(e) {
this._initialized && (this._initialized = !1,
this._listeners.clear(),
this._pushHook && this._pushHook.disable(),
this._replaceHook && this._replaceHook.disable(),
this._perfWatcher.onLoad(),
this._inputWatcher.shutdown(),
this._mutWatcher.shutdown(),
this._ajaxWatcher.disable(),
this._perfWatcher.shutdown(),
this._queue.shutdown(e))
}
,
e.prototype.recordingIsDetached = function() {
return this._mutWatcher.recordingIsDetached()
}
,
e.prototype.visitNode = function(e, t, n) {
var r = this;
switch (t.nodeName) {
case "HTML":
this._docElScrollListener && this._listeners.remove(this._docElScrollListener),
this._docElScrollListener = this._listeners.add(t, "scroll", !0, function(e) {
r.addScroll(b(e))
});
break;
case "BODY":
this.addViewportChange(),
n.push(function() {
r.addSelection()
});
break;
case "INPUT":
case "TEXTAREA":
case "SELECT":
this._inputWatcher.addInput(t);
break;
case "FRAME":
case "IFRAME":
this._onFrameCreated(t);
break;
case "VIDEO":
case "AUDIO":
t.paused || this.addPlayPauseEventById(d.fsid(t), l.EVENT_PLAY);
break;
case "STYLE":
var i = t
, o = i.sheet;
if (!o)
break;
try {
o.rules || o.cssRules
} catch (e) {
break
}
var s = c.getDynamicRuleTail(i);
void 0 !== s && n.push(function() {
r._styleSheetWatcher.snapshot(i, s)
});
}
var a = t;
"number" != typeof a.scrollLeft || 0 == a.scrollLeft && 0 == a.scrollTop || this.addScroll(a)
}
,
e.prototype.addMouseMove = function(e) {
var t = d.fsid(b(e)) ? [e.clientX, e.clientY, d.fsid(b(e))] : [e.clientX, e.clientY];
this._queue.enqueue(l.EVENT_MOUSEMOVE, t)
}
,
e.prototype.addMouseDown = function(e) {
this._queue.enqueue(l.EVENT_MOUSEDOWN, [e.clientX, e.clientY])
}
,
e.prototype.addMouseUp = function(e) {
this._queue.enqueue(l.EVENT_MOUSEUP, [e.clientX, e.clientY])
}
,
e.prototype.addTouchEvent = function(e, t) {
if (void 0 !== e.changedTouches)
for (var n = 0; n < e.changedTouches.length; ++n) {
var r = e.changedTouches[n];
isNaN(parseInt(r.identifier)) && (r.identifier = 0),
this._queue.enqueue(t, [r.identifier, r.clientX, r.clientY])
}
}
,
e.prototype.addPlayPauseEvent = function(e, t) {
var n = b(e)
, r = d.fsid(n);
r && this.addPlayPauseEventById(r, t)
}
,
e.prototype.addPlayPauseEventById = function(e, t) {
this._queue.enqueue(t, [e])
}
,
e.prototype.addWindowFocus = function(e) {
this._queue.enqueue(l.EVENT_WINDOW_FOCUS, [])
}
,
e.prototype.addWindowBlur = function(e) {
this._queue.enqueue(l.EVENT_WINDOW_BLUR, [])
}
,
e.prototype.maybeAddValueChange = function() {
var e = this._doc.activeElement;
e && this._inputWatcher.onChange(e)
}
,
e.prototype.addKeyDown = function(e) {
var t = this._doc.activeElement;
t && !d.fsidIfNotBlocked(t) || (this.maybeAddValueChange(),
this._queue.enqueue(l.EVENT_KEYDOWN, []))
}
,
e.prototype.addKeyUp = function(e) {
var t = this._doc.activeElement;
t && !d.fsidIfNotBlocked(t) || (this.maybeAddValueChange(),
this._queue.enqueue(l.EVENT_KEYUP, []))
}
,
e.prototype.addViewportChange = function() {
var e = d.fsid(this.getWindowScrollingElement());
if (e) {
var t = i.getLayoutViewport(this._wnd, this._curLayoutViewport)
, n = i.getVisualViewport(this._wnd, t);
t.hasKnownPosition ? (r.sameViewportPos(t, this._curLayoutViewport) || this._queue.enqueue(l.EVENT_SCROLL_LAYOUT, [e, t.pageLeft, t.pageTop]),
r.sameVisualViewportOffset(n, this._curVisualViewport) || this._queue.enqueue(l.EVENT_SCROLL_VISUAL_OFFSET, [e, n.offsetLeft, n.offsetTop])) : r.sameViewportPos(n, this._curVisualViewport) || this._queue.enqueue(l.EVENT_SCROLL_LAYOUT, [e, n.pageLeft, n.pageTop]),
r.sameLayoutViewportSize(t, this._curLayoutViewport) || (t.width == t.clientWidth && t.height == t.clientHeight ? this._queue.enqueue(l.EVENT_RESIZE_LAYOUT, [t.clientWidth, t.clientHeight]) : this._queue.enqueue(l.EVENT_RESIZE_LAYOUT, [t.clientWidth, t.clientHeight, t.width, t.height])),
r.sameViewportSize(n, this._curVisualViewport) || this._queue.enqueue(l.EVENT_RESIZE_VISUAL, [n.width, n.height]),
this._curLayoutViewport = r.createLayoutViewportLike(t),
this._curVisualViewport = r.createVisualViewportLike(n)
}
}
,
e.prototype.doWorkInScrollTimeout = function(e, t) {
var n = this;
e in this._scrollTimeouts || (this._scrollTimeouts[e] = t,
new f.RealTimeout(function() {
if (e in n._scrollTimeouts) {
var t = n._scrollTimeouts[e];
delete n._scrollTimeouts[e],
t()
}
}
,p.ScrollSampleInterval).start())
}
,
e.prototype._fireScrollTimeouts = function() {
for (var e in this._scrollTimeouts)
this._scrollTimeouts[e](),
delete this._scrollTimeouts[e];
this._scrollTimeouts = []
}
,
e.prototype.getWindowScrollingElement = function() {
return this._doc.scrollingElement || this._doc.body || this._doc.documentElement
}
,
e.prototype.addWindowScrollOrResize = function() {
var e = this
, t = d.fsid(this.getWindowScrollingElement());
t && this.doWorkInScrollTimeout(t, function() {
return e.addViewportChange()
})
}
,
e.prototype.addScroll = function(e) {
var t = this
, n = d.fsid(e)
, r = e;
n && "number" == typeof r.scrollLeft && this.doWorkInScrollTimeout(n, function() {
t._queue.enqueue(l.EVENT_SCROLL_LAYOUT, [n, r.scrollLeft, r.scrollTop])
})
}
,
e.prototype.addDomLoaded = function() {
this._queue.enqueue(l.EVENT_DOMLOADED, [])
}
,
e.prototype.addLoad = function() {
this._queue.enqueue(l.EVENT_LOAD, [])
}
,
e.prototype.addNavigate = function() {
var e = this._loc.href;
this._currentUrl != e && (this._currentUrl = e,
this._queue.enqueue(l.EVENT_NAVIGATE, [y.scrubUrl(this._loc.href), this._doc.title]))
}
,
e.prototype.addClick = function(e) {
var t = b(e)
, n = d.fsid(t);
if (n) {
var r = 0
, i = 0
, o = 0
, s = 0;
if (t && t.getBoundingClientRect) {
var a = t.getBoundingClientRect();
r = a.left,
i = a.top,
o = a.width,
s = a.height
}
this._queue.enqueue(l.EVENT_CLICK, [n, e.clientX, e.clientY, r, i, o, s])
}
}
,
e.prototype.addDblClick = function(e) {
var t = b(e)
, n = d.fsid(t);
n && this._queue.enqueue(l.EVENT_DBL_CLICK, [n])
}
,
e.prototype.addFormSubmit = function(e) {
var t = b(e)
, n = d.fsid(t);
n && this._queue.enqueue(l.EVENT_FORM_SUBMIT, [n])
}
,
e.prototype.addFocus = function(e) {
var t = b(e)
, n = d.fsid(t);
n && this._queue.enqueue(l.EVENT_FOCUS, [n])
}
,
e.prototype.addBlur = function(e) {
var t = b(e)
, n = d.fsid(t);
n && this._queue.enqueue(l.EVENT_BLUR, [n])
}
,
e.prototype.addChange = function(e) {
this._inputWatcher.onChange(b(e))
}
,
e.prototype.addChangeElem = function(e) {
var t = d.fsidIfNotBlocked(e);
t && this._queue.enqueue(l.EVENT_VALUECHANGE, [t, o.valueOfInputishElem(e)])
}
,
e.prototype.addSelection = function() {
try {
var e = this.selectionArgs()
} catch (e) {
return
}
for (var t = !1, n = 0; n < 4; n++)
if (this._curSelection[n] !== e[n]) {
t = !0;
break
}
t && (this._curSelection = e,
this._queue.enqueue(l.EVENT_SELECT, e))
}
,
e.prototype.selectionArgs = function() {
if (!this._wnd.getSelection)
return [];
var e = this._wnd.getSelection();
if (!e)
return [];
if ("None" == e.type)
return [];
if ("Caret" == e.type) {
var t = d.fsid(e.anchorNode);
return t ? [t, e.anchorOffset] : []
}
if (!e.anchorNode || !e.focusNode)
return [];
var n = S(e.anchorNode, e.anchorOffset)
, r = n[0]
, i = n[1]
, o = S(e.focusNode, e.focusOffset)
, s = o[0]
, a = o[1]
, u = Boolean(r.compareDocumentPosition(s) & Node.DOCUMENT_POSITION_FOLLOWING)
, c = u ? [r, s] : [s, r]
, l = c[0]
, f = c[1]
, p = u ? [i, a] : [a, i]
, _ = p[0]
, g = p[1];
for (d.fsid(l) || (_ = 0); l && !d.fsid(l) && l != f; )
l = h.nextSibling(l) || l.parentNode;
for (d.fsid(f) || (g = 0); f && !d.fsid(f) && f != l; )
f = h.previousSibling(f) || f.parentNode;
if (l == f && _ == g)
return [];
var v = d.fsid(l)
, y = d.fsid(f);
return l && f && v && y ? [v, _, y, g, u] : []
}
,
e
}();
function S(e, t) {
if (!e.firstChild)
return [e, t];
e = e.firstChild;
for (var n = 0; n < t - 1; n++) {
var r = h.nextSibling(e);
if (!r)
return [e, 0];
e = r
}
return [e, 0]
}
t.EventWatcher = E;
var w = {
src: {
img: !0,
embed: !0
},
href: {
use: !0,
image: !0
},
data: {
object: !0
}
};
function T(e, t, n) {
var r, i = _.tagName(e);
return w[t] && w[t][i] ? [n] : "link" == i && "href" == t && (r = e.getAttribute("rel")) && r.indexOf("stylesheet") > -1 ? [n] : "srcset" != t || "img" != i && "source" != i ? [] : null != n.match(/^\s*$/) ? [] : h.map(n.split(","), function(e) {
return h.trim(e).split(/\s+/)[0]
})
}
function b(e) {
if (e.composed && e.target) {
var t = e.target;
if (t.nodeType == m.Node_ELEMENT_NODE && t.shadowRoot) {
var n = e.composedPath();
if (n.length > 0)
return n[0]
}
}
return e.target
}
t.getResourceUrls = T,
t.evtTarget = b
}
, function(e, t, n) {
"use strict";
function r(e) {
return {
pageLeft: e.pageLeft,
pageTop: e.pageTop,
width: e.width,
height: e.height
}
}
Object.defineProperty(t, "__esModule", {
value: !0
}),
t.sameViewportPos = function(e, t) {
return t && e.pageLeft == t.pageLeft && e.pageTop == t.pageTop
}
,
t.sameVisualViewportOffset = function(e, t) {
return t && e.offsetLeft == t.offsetLeft && e.offsetTop == t.offsetTop
}
,
t.sameViewportSize = function(e, t) {
return t && e.width == t.width && e.height == t.height
}
,
t.sameLayoutViewportSize = function(e, t) {
return t && e.width == t.width && e.height == t.height && e.clientWidth == t.clientWidth && e.clientHeight == t.clientHeight
}
,
t.createVisualViewportLike = function(e) {
var t = r(e);
return t.offsetLeft = e.offsetLeft,
t.offsetTop = e.offsetTop,
t
}
,
t.createLayoutViewportLike = function(e) {
var t = r(e);
return t.clientWidth = e.clientWidth,
t.clientHeight = e.clientHeight,
t
}
}
, function(e, t, n) {
"use strict";
var r = this && this.__assign || function() {
return (r = Object.assign || function(e) {
for (var t, n = 1, r = arguments.length; n < r; n++)
for (var i in t = arguments[n])
Object.prototype.hasOwnProperty.call(t, i) && (e[i] = t[i]);
return e
}
).apply(this, arguments)
}
;
Object.defineProperty(t, "__esModule", {
value: !0
});
var i = n(9)
, o = n(4)
, s = n(0)
, a = n(15)
, u = function() {
function e(e, n) {
this._onchange = e,
this._checkElem = n,
this._fallback = !1,
this._elems = {},
this.values = {},
this.radios = {},
t._globalInputWatcher = this
}
return e.prototype.hookEvents = function() {
(function() {
var e = Object.getOwnPropertyDescriptor(HTMLInputElement.prototype, "value");
if (!e || !e.set)
return !1;
c || (_(HTMLInputElement, "value"),
_(HTMLInputElement, "checked"),
_(HTMLSelectElement, "value"),
_(HTMLTextAreaElement, "value"),
_(HTMLSelectElement, "selectedIndex"),
_(HTMLOptionElement, "selected"),
c = !0);
return !0
}
)() || (this._fallback = !0)
}
,
e.prototype.addInput = function(e) {
var t = i.fsid(e);
if (this._elems[t] = e,
v(e)) {
var n = f(e);
e.checked && (this.radios[n] = t)
} else
this.values[t] = g(e);
(function(e) {
switch (e.type) {
case "checkbox":
case "radio":
return e.checked != e.hasAttribute("checked");
default:
var t = e.value || "";
return t != function(e) {
if ("select" != a.tagName(e))
return e.getAttribute("value") || "";
var t = e
, n = t.querySelector("option[selected]") || t.querySelector("option");
if (!n)
return "";
return n.value || ""
}(e);
}
}
)(e) && this._onchange(e)
}
,
e.prototype.diffValue = function(e, t) {
var n = i.fsid(e);
if (v(e)) {
var r = f(e);
return this.radios[r] == n != ("true" == t)
}
return this.values[n] != t
}
,
e.prototype.onChange = function(e, t) {
void 0 === t && (t = g(e));
var n = i.fsid(e);
if ((e = this._elems[n]) && this.diffValue(e, t))
if (this._onchange(e),
v(e)) {
var r = f(e);
"false" == t && this.radios[r] == n ? delete this.radios[r] : this.radios[r] = n
} else
this.values[n] = t
}
,
e.prototype.tick = function() {
for (var e in this._elems) {
var t = this._elems[e];
if (this._checkElem(t)) {
if (this._fallback) {
var n = g(t);
if (t && this.diffValue(t, n))
if (this._onchange(t),
v(t)) {
var r = f(t);
this.radios[r] = +e
} else
this.values[e] = n
}
} else
delete this._elems[e],
delete this.values[e],
v(t) && delete this.radios[f(t)]
}
}
,
e.prototype.shutdown = function() {
t._globalInputWatcher = null
}
,
e.prototype._usingFallback = function() {
return this._fallback
}
,
e.prototype._trackingElem = function(e) {
return !!this._elems[e]
}
,
e
}();
t.InputWatcher = u;
var c = !1;
var h, d = {};
function l() {
try {
if (t._globalInputWatcher)
for (var e in d) {
var n = d[e]
, r = n[0]
, i = n[1];
t._globalInputWatcher.onChange(r, i)
}
} finally {
h = null,
d = {}
}
}
function f(e) {
if (!e)
return "";
for (var t = e; t && "form" != a.tagName(t); )
t = t.parentElement;
return (t && "form" == a.tagName(t) ? i.fsid(t) : 0) + ":" + e.name
}
var p = s.$entry(function(e, n) {
var r = function e(t, n) {
if (void 0 === n && (n = 2),
n <= 0)
return t;
var r = a.tagName(t);
return "option" != r && "optgroup" != r || !t.parentElement ? t : e(t.parentElement, n - 1)
}(e)
, s = i.fsid(r);
s && t._globalInputWatcher && t._globalInputWatcher.diffValue(r, "" + n) && (d[s] = [r, "" + n],
h || (h = new o.RealTimeout(l)).start())
});
function _(e, t) {
var n = Object.getOwnPropertyDescriptor(e.prototype, t);
n && n.set && Object.defineProperty(e.prototype, t, r({}, n, {
set: function(e) {
return p(this, e),
n.set.call(this, e)
}
}))
}
function g(e) {
switch (e.type) {
case "checkbox":
case "radio":
return "" + e.checked;
default:
var t = e.value;
return t || (t = ""),
"" + t;
}
}
function v(e) {
return e && "radio" == e.type
}
t.valueOfInputishElem = g
}
, function(e, t, n) {
"use strict";
var r = this && this.__assign || function() {
return (r = Object.assign || function(e) {
for (var t, n = 1, r = arguments.length; n < r; n++)
for (var i in t = arguments[n])
Object.prototype.hasOwnProperty.call(t, i) && (e[i] = t[i]);
return e
}
).apply(this, arguments)
}
;
Object.defineProperty(t, "__esModule", {
value: !0
});
var i = n(9)
, o = n(38)
, s = n(0)
, a = n(1)
, u = n(4)
, c = n(14)
, h = n(10)
, d = n(3)
, l = n(2)
, f = function() {
function e(e, t, n, r, o, s) {
void 0 === n && (n = !0),
void 0 === r && (r = function() {}
),
void 0 === o && (o = function() {}
),
void 0 === s && (s = function() {}
);
var a = this;
this._ctx = e,
this._watcher = t,
this._compress = n,
this._nodeVisitor = r,
this._beforeRemove = o,
this._attrVisitor = s,
this._sentDomSnapshot = !1,
this._toRefresh = [],
this._records = [],
this._watchedDims = {},
this._setPropertyWasThrottled = !1,
this._wnd = e.window,
this._encoder = new i.NodeEncoder(t),
l.assert(!this._watcher.onConsentChange, "This is the only consent change listener."),
this._watcher.onConsentChange = function() {
return a.updateConsent()
}
}
return e.prototype.hookMutations = function(e) {
var t = this;
void 0 === e && (e = this._wnd.document),
this._root = e,
this._sentDomSnapshot = !1,
this._compress && (this._lz = new o.LZJGWEncoder);
var n = !0;
if (h.uaIsIE)
try {
this.setUpIEWorkarounds()
} catch (e) {
a.logIfDebug("Error setting up IE workarounds for mutation watcher: " + e),
n = !1
}
n && (this._observer = new MutationObserver(function(e) {
for (var n = 0, r = e; n < r.length; n++) {
var i = r[n];
t._records.push(i)
}
}
))
}
,
e.prototype._observerOff = function() {
this._observer && this._observer.disconnect()
}
,
e.prototype.shutdown = function() {
this._observer && this._observer.disconnect();
var e = i.mirrorFor(this._root);
e && i.clearIds(e),
this._records = [],
h.uaIsIE && this.tearDownIEWorkarounds(),
this._watcher.onConsentChange = null
}
,
e.prototype.processMutations = function() {
if (!this._root)
return [];
var e = this._ctx.time.now()
, t = [];
if (this.maybeGetInitialSnapshot(e, t),
this._setPropertyWasThrottled && (t.push({
Kind: d.EVENT_FAIL_THROTTLED,
When: e,
Args: [d.ThrottledSetPropertyHooks]
}),
this._setPropertyWasThrottled = !1),
this._records.length > 0 || this._toRefresh.length > 0) {
var n = {}
, r = {};
for (var i in this.processRecords(e, t, r, n),
r) {
var o = i.split("\t");
t.push({
Kind: d.EVENT_MUT_ATTR,
When: e,
Args: [parseInt(o[0]), o[1], r[i]]
})
}
for (var i in n)
t.push({
Kind: d.EVENT_MUT_TEXT,
When: e,
Args: [parseInt(i), n[i]]
})
}
return this._records = [],
t
}
,
e.prototype.recordingIsDetached = function() {
return this._root && this._root != this._wnd.document
}
,
e.prototype.maybeGetInitialSnapshot = function(e, t) {
this._sentDomSnapshot || (this.genInsert(e, t, null, this._root, null),
this.resizeRelatedWatchedElements(e, t, this._root),
this._observer && this.observe(this._root),
this._sentDomSnapshot = !0)
}
,
e.prototype.observe = function(e) {
this._observer.observe(e, {
childList: !0,
attributes: !0,
characterData: !0,
subtree: !0,
attributeOldValue: !0,
characterDataOldValue: !0
})
}
,
e.prototype.processRecords = function(e, t, n, r) {
for (var o = this, s = {}, a = {}, u = function(n) {
if (i.mirrorFor(n)) {
o.genRemove(e, t, i.mirrorFor(n));
var r = i.mirrorFor(n.parentNode);
r && (a[r.id] = r.node)
}
}, h = 0; h < this._records.length; ++h)
try {
var d = this._records[h]
, f = i.fsid(d.target);
if (!f)
continue;
switch (s[f] = d.target,
d.type) {
case "childList":
if (d.removedNodes.length > 0)
for (var _ = 0; _ < d.removedNodes.length; ++_) {
var g = i.mirrorFor(d.removedNodes[_]);
g && g.id && this.genRemove(e, t, g)
}
d.addedNodes.length > 0 && (a[f] = d.target);
break;
case "characterData":
var v = i.safeTextContent(d.target);
d.oldValue != v && (i.isBlocked(d.target) || (r[f] = v));
break;
case "attributes":
var y = d.target
, m = this._watcher.isWatched(y);
if (m && m != c.WatchKindWatch && !i.isBlocked(y)) {
u(y);
break
}
var E = p(d.attributeNamespace) + (d.attributeName || "")
, S = i.fixAttrName(E);
if (y.hasAttribute(E)) {
var w = d.target.getAttribute(E);
d.oldValue != w && (w = this.rewriteAttr(d.target, S, w || ""),
this._attrVisitor(d.target, S, w || ""),
null !== w && (n[f + "\t" + S] = w))
} else
n[f + "\t" + S] = null;
}
} catch (e) {}
for (var T = 0, b = this._toRefresh; T < b.length; T++) {
var I = b[T];
try {
u(I)
} catch (e) {
l.FsBugSnag.sendToBugsnag(e, "error")
}
}
for (var N in this._toRefresh = [],
a) {
var O = a[N]
, C = i.mirrorFor(O);
C && C.id && this.diff(e, t, O, C.child, O.firstChild)
}
for (var N in s) {
O = s[N];
this.resizeRelatedWatchedElements(e, t, O)
}
}
,
e.prototype._checkForMissingInsertions = function(e) {
if (!this._sentDomSnapshot || !e)
return [];
return this.walkAddRecords(this._root),
[]
}
,
e.prototype.walkAddRecords = function(e) {
var t = this;
i.fsid(e) ? s.forEachNextSibling(e.firstChild, function(e) {
t.walkAddRecords(e)
}) : this._records.push({
addedNodes: [e],
attributeName: null,
attributeNamespace: null,
nextSibling: e.nextSibling,
oldValue: null,
previousSibling: e.previousSibling,
removedNodes: [],
target: e.parentNode,
type: "childList"
})
}
,
e.prototype.diff = function(e, t, n, r, o) {
for (var a = [], u = r, c = o; u && c; ) {
var h = i.mirrorFor(c);
i.fsid(c) ? h && u.id == h.id ? (u = u.next,
c = s.nextSibling(c)) : (a.push({
remove: u
}),
u = u.next) : (a.push({
insert: [n, c, u.node]
}),
c = s.nextSibling(c))
}
for (; u; u = u.next)
a.push({
remove: u
});
s.forEachNextSibling(c, function(e) {
a.push({
insert: [n, e, null]
})
});
for (var d = !1, f = 0; f < a.length; f++) {
var p = a[f];
p.insert ? this.genInsert(e, t, p.insert[0], p.insert[1], p.insert[2]) : p.remove && (d = !0,
this.genRemove(e, t, p.remove))
}
l.assert(!d, "All remove events should have been generated earlier, in MutationWatcher.processMutations")
}
,
e.prototype.resizeRelatedWatchedElements = function(e, t, n) {
var r = i.mirrorFor(n);
if (r)
for (var o = [r], a = 0; o.length && ++a < 1e3; ) {
var u = o.pop();
null != (c = i.watchKind(u.node)) ? this.addPlaceholderResize(e, t, u.node, c) : u.watchedChildSet && s.forIn(u.watchedChildSet, function(e) {
o.push(e)
})
}
else {
for (var c, h = n; h && !i.fsid(h); )
h = h.parentNode;
if (h)
null != (c = i.watchKind(h)) && this.addPlaceholderResize(e, t, h, c)
}
}
,
e.prototype.addPlaceholderResize = function(e, t, n, r) {
try {
var o = n.getBoundingClientRect()
, s = Math.floor(o.width)
, a = Math.floor(o.height)
, u = i.fsid(n)
, h = this._watchedDims[u];
if (h && h.w == s && h.h == a)
return;
if (r == c.WatchKindWatch) {
var l = !!h && 0 != h.w && 0 != h.h
, f = 0 != s && 0 != a;
l != f && t.push({
When: e,
Kind: d.EVENT_WATCHED_ELEM,
Args: [u, f]
})
} else
t.push({
When: e,
Kind: d.EVENT_PLACEHOLDER_SIZE,
Args: [u, s, a]
});
this._watchedDims[u] = {
w: s,
h: a
}
} catch (e) {}
}
,
e.prototype.genInsert = function(e, t, n, r, o) {
var s = i.fsid(n) || -1
, a = i.fsid(o) || -1
, u = this.genDocStream(e, n, r, o);
u.length > 0 && t.push({
When: e,
Kind: d.EVENT_MUT_INSERT,
Args: [s, a, this._compress ? this._lz.encode(u) : u]
})
}
,
e.prototype.genDocStream = function(e, t, n, r) {
var o = this;
if (t && i.isBlocked(t))
return [];
for (var s = [], a = this._encoder.tokenizeNode(t, r, n, function(t) {
o._nodeVisitor(e, t, s)
}, function(e, t, n) {
o._attrVisitor(e, t, n)
}), u = 0, c = s; u < c.length; u++) {
(0,
c[u])()
}
return a
}
,
e.prototype.genRemove = function(e, t, n) {
var r = n.id;
if (this._beforeRemove(n),
i.removeMirror(n),
t.length > 0) {
var o = t[t.length - 1];
if (o.Kind == d.EVENT_MUT_REMOVE)
return void o.Args.push(r)
}
t.push({
When: e,
Kind: d.EVENT_MUT_REMOVE,
Args: [r]
})
}
,
e.prototype.rewriteAttr = function(e, t, n) {
return i.isBlocked(e) ? i.rewriteBlockedAttribute(e, t, n) : n
}
,
e.prototype.setUpIEWorkarounds = function() {
var t = this;
if (h.uaIsIE11) {
var n = Object.getOwnPropertyDescriptor(Node.prototype, "textContent")
, i = n && n.set;
if (!n || !i)
throw new Error("Missing textContent setter -- not safe to record mutations.");
Object.defineProperty(Element.prototype, "textContent", r({}, n, {
set: function(e) {
try {
for (var t = void 0; t = this.firstChild; )
this.removeChild(t);
if (null === e || "" == e)
return;
var n = (this.ownerDocument || document).createTextNode(e);
this.appendChild(n)
} catch (e) {
i && i.apply(this, arguments)
}
}
}))
}
this._setPropertyThrottle = new u.Throttle(e.ThrottleMax,e.ThrottleInterval,function() {
return new u.RealTimeout(function() {
t._setPropertyWasThrottled = !0,
t.tearDownIEWorkarounds()
}
).start()
}
);
var o = this._setPropertyThrottle.guard(function(e) {
return e.cssText = e.cssText
});
this._setPropertyThrottle.open(),
this._setPropertyHook = s.activateHook(CSSStyleDeclaration.prototype, "setProperty"),
this._setPropertyHook && this._setPropertyHook.afterSync(function() {
o(this)
}),
this._removePropertyHook = s.activateHook(CSSStyleDeclaration.prototype, "removeProperty"),
this._removePropertyHook && this._removePropertyHook.afterSync(function() {
o(this)
})
}
,
e.prototype.tearDownIEWorkarounds = function() {
this._setPropertyThrottle && this._setPropertyThrottle.close(),
this._setPropertyHook && this._setPropertyHook.disable(),
this._removePropertyHook && this._removePropertyHook.disable()
}
,
e.prototype.updateConsent = function() {
for (var e = this._watcher.allConsentSensitiveElements(this._root), t = 0; t < e.length; t++)
i.fsid(e[t]) && this._toRefresh.push(e[t])
}
,
e.ThrottleMax = 1024,
e.ThrottleInterval = 1e4,
e
}();
function p(e) {
return void 0 === e && (e = ""),
null === e ? "" : {
"http://www.w3.org/1999/xlink": "xlink:",
"http://www.w3.org/XML/1998/namespace": "xml:",
"http://www.w3.org/2000/xmlns/": "xmlns:"
}[e] || ""
}
t.MutationWatcher = f
}
, function(e, t, n) {
"use strict";
Object.defineProperty(t, "__esModule", {
value: !0
});
var r = function() {
function e() {
this.dict = {
idx: -1,
map: {}
},
this.nodeCount = 1,
this.startIdx = 0
}
return e.prototype.encode = function(t) {
if (0 == t.length)
return [];
var n, r, i = t[0], o = Object.prototype.hasOwnProperty.call(this.dict.map, i) ? this.dict.map[i] : null, s = [], a = 1;
function u() {
o ? a > 1 ? s.push([o.idx, a]) : s.push(o.idx) : s.push(i)
}
for (n = 1; n < t.length; n++)
if (r = t[n],
o && Object.prototype.hasOwnProperty.call(o.map, r))
a++,
i = r,
o = o.map[r];
else {
u();
var c = this.startIdx + n - a;
null == o && this.nodeCount < e.MAX_NODES && (o = {
idx: c,
map: {}
},
this.dict.map[i] = o,
this.nodeCount++),
o && this.nodeCount < e.MAX_NODES && (o.map[r] = {
idx: c,
map: {}
},
this.nodeCount++),
a = 1,
i = r,
o = Object.prototype.hasOwnProperty.call(this.dict.map, r) ? this.dict.map[r] : null
}
return u(),
this.startIdx += t.length,
s
}
,
e.MAX_NODES = 1e4,
e
}();
t.LZJGWEncoder = r;
var i = function() {
function e() {
this._seq = []
}
return e.prototype.sequence = function() {
return this._seq
}
,
e.prototype.decode = function(e) {
for (var t = this._seq.length, n = 0; n < e.length; ++n) {
var r = e[n];
switch (typeof r) {
case "string":
this._seq.push(r);
break;
case "number":
this._seq.push(this._seq[r]);
break;
case "object":
if (null == r) {
this._seq.push("");
break
}
for (var i = 0; i < r[1]; i++)
this._seq.push(this._seq[r[0] + i]);
}
}
return t
}
,
e
}();
t.LZJGWDecoder = i
}
, function(e, t, n) {
"use strict";
Object.defineProperty(t, "__esModule", {
value: !0
}),
n(23);
var r = n(3)
, i = n(11)
, o = ["navigationStart", "unloadEventStart", "unloadEventEnd", "redirectStart", "redirectEnd", "fetchStart", "domainLookupStart", "domainLookupEnd", "connectStart", "connectEnd", "secureConnectionStart", "requestStart", "responseStart", "responseEnd", "domLoading", "domInteractive", "domContentLoadedEventStart", "domContentLoadedEventEnd", "domComplete", "loadEventStart", "loadEventEnd"]
, s = ["name", "startTime", "duration", "initiatorType", "redirectStart", "redirectEnd", "fetchStart", "domainLookupStart", "domainLookupEnd", "connectStart", "connectEnd", "secureConnectionStart", "requestStart", "responseStart", "responseEnd", "unloadEventStart", "unloadEventEnd", "domInteractive", "domContentLoadedEventStart", "domContentLoadedEventEnd", "domComplete", "loadEventStart", "loadEventEnd", "type", "redirectCount", "decodedBodySize", "encodedBodySize", "transferSize"]
, a = ["name", "startTime", "duration", "initiatorType", "redirectStart", "redirectEnd", "fetchStart", "domainLookupStart", "domainLookupEnd", "connectStart", "connectEnd", "secureConnectionStart", "requestStart", "responseStart", "responseEnd", "decodedBodySize", "encodedBodySize", "transferSize"]
, u = ["name", "startTime", "duration"]
, c = ["jsHeapSizeLimit", "totalJSHeapSize", "usedJSHeapSize"]
, h = function() {
function e(e, t, n) {
var i = this;
if (this._ctx = e,
this._queue = t,
this._perfSupported = !1,
this._timingSupported = !1,
this._getEntriesSupported = !1,
this._memorySupported = !1,
this._lastUsedJSHeapSize = 0,
this.prevEntries = [],
this._gotLoad = !1,
window.performance) {
var o = window.performance;
this._perfSupported = !0,
o.timing && (this._timingSupported = !0),
o.memory && (this._memorySupported = !0),
"function" == typeof o.getEntries && (this._getEntriesSupported = !0),
e.recording.inFrame || this._queue.enqueue(r.EVENT_REC_FEAT_SUPPORTED, [r.RecFeaturePerformance, this._timingSupported, r.RecFeaturePerformanceEntries, this._getEntriesSupported, r.RecFeaturePerformanceMemory, this._memorySupported]),
o.addEventListener && o.removeEventListener && (this._listeners = n.createChild(),
this._listeners.add(o, "resourcetimingbufferfull", !0, function() {
i._queue.enqueue(r.EVENT_RESOURCE_TIMING_BUFFER_FULL, [])
})),
this.checkMemory()
}
}
return e.prototype.onLoad = function() {
this._gotLoad || (this._gotLoad = !0,
this._timingSupported && (this.recordTiming(performance.timing),
this.checkForNewEntries()))
}
,
e.prototype.tick = function(e) {
this.checkMemory(),
e && this.checkForNewEntries()
}
,
e.prototype.shutdown = function() {
this._listeners && this._listeners.clear()
}
,
e.prototype.checkMemory = function() {
var e = performance.memory;
if (this._memorySupported && e && !this._ctx.recording.inFrame) {
var t = e.usedJSHeapSize - this._lastUsedJSHeapSize;
(0 == this._lastUsedJSHeapSize || Math.abs(t / this._lastUsedJSHeapSize) > .2) && (this.addPerfEvent(r.PerfEntryMemory, e, c),
this._lastUsedJSHeapSize = e.usedJSHeapSize)
}
}
,
e.prototype.recordEntry = function(e) {
switch (e.entryType) {
case "navigation":
this.recordNavigation(e);
break;
case "resource":
this.recordResource(e);
break;
case "paint":
this.recordPaint(e);
break;
case "measure":
this.recordMeasure(e);
break;
case "mark":
this.recordMark(e);
}
}
,
e.prototype.checkForNewEntries = function() {
if (this._perfSupported && this._getEntriesSupported) {
var e = performance.getEntries()
, t = function(e) {
return e.name + ":" + e.entryType + ":" + e.startTime + ":" + e.duration
};
e.sort(function(e, n) {
return e.startTime == n.startTime ? t(e).localeCompare(t(n)) : e.startTime - n.startTime
});
for (var n = 0, r = 0; n < e.length && r < this.prevEntries.length; )
t(e[n]) != t(this.prevEntries[r]) ? (this.recordEntry(e[n]),
n++) : (n++,
r++);
for (; n < e.length; )
this.recordEntry(e[n]),
n++;
this.prevEntries = e
}
}
,
e.prototype.recordTiming = function(e) {
this.addPerfEvent(r.PerfEntryTiming, e, o)
}
,
e.prototype.recordNavigation = function(e) {
this.addPerfEvent(r.PerfEntryNavigation, e, s, {
name: "scrub"
})
}
,
e.prototype.recordResource = function(e) {
this.addPerfEvent(r.PerfEntryResource, e, a, {
name: "scrub"
})
}
,
e.prototype.recordPaint = function(e) {
this.addPerfEvent(r.PerfEntryPaint, e, u)
}
,
e.prototype.recordMark = function(e) {
this.addPerfEvent(r.PerfEntryMark, e, u)
}
,
e.prototype.recordMeasure = function(e) {
this.addPerfEvent(r.PerfEntryMeasure, e, u)
}
,
e.prototype.addPerfEvent = function(e, t, n, o) {
void 0 === o && (o = {});
for (var s = [e], a = 0, u = n; a < u.length; a++) {
var c = u[a]
, h = t[c];
void 0 === h && (h = -1),
c in o && (h = i.scrubUrl(h)),
s.push(h)
}
this._queue.enqueue(r.EVENT_PERF_ENTRY, s)
}
,
e
}();
t.PerfWatcher = h
}
, function(e, t, n) {
"use strict";
Object.defineProperty(t, "__esModule", {
value: !0
});
var r = n(0)
, i = n(1)
, o = n(25)
, s = n(11)
, a = n(3)
, u = n(41)
, c = n(8)
, h = n(5)
, d = "\r\n"
, l = ["a-im", "accept", "accept-charset", "accept-encoding", "accept-language", "accept-datetime", "access-control-request-method,", "access-control-request-headers", "cache-control", "connection", "content-length", "content-md5", "content-type", "date", "expect", "forwarded", "from", "host", "if-match", "if-modified-since", "if-none-match", "if-range", "if-unmodified-since", "max-forwards", "origin", "pragma", "range", "referer", "te", "user-agent", "upgrade", "via", "warning"]
, f = ["access-control-allow-origin", "access-control-allow-credentials", "access-control-expose-headers", "access-control-max-age", "access-control-allow-methods", "access-control-allow-headers", "accept-patch", "accept-ranges", "age", "allow", "alt-svc", "cache-control", "connection", "content-disposition", "content-encoding", "content-language", "content-length", "content-location", "content-md5", "content-range", "content-type", "date", "delta-base", "etag", "expires", "im", "last-modified", "link", "location", "permanent", "p3p", "pragma", "proxy-authenticate", "public-key-pins", "retry-after", "permanent", "server", "status", "strict-transport-security", "trailer", "transfer-encoding", "tk", "upgrade", "vary", "via", "warning", "www-authenticate", "x-frame-options"]
, p = {
BM7A6: ["x-b3-traceid"]
}
, _ = {}
, g = function() {
function e(e, t) {
this._ctx = e,
this._queue = t,
this._enabled = !1,
this._reqHeaderWhitelist = {},
this._rspHeaderWhitelist = {},
this._pendingReqs = {},
this._events = [],
this._curId = 1,
this.addHeaderWhitelist(l, f),
this.addHeaderWhitelist(p[e.options.orgId], _[e.options.orgId])
}
return e.prototype.isEnabled = function() {
return this._enabled
}
,
e.prototype.enable = function() {
this._enabled || (this._enabled = !0,
this._queue.enqueue(a.EVENT_REC_FEAT_SUPPORTED, [a.RecFeatureAjax, !0]),
this.maybeShimXHR(this._ctx.window))
}
,
e.prototype.disable = function() {
this._enabled && (this._enabled = !1,
this._xhrOpenHook && (this._xhrOpenHook.disable(),
this._xhrOpenHook = null),
this._xhrSetHeaderHook && (this._xhrSetHeaderHook.disable(),
this._xhrSetHeaderHook = null))
}
,
e.prototype.setWatches = function(e) {
var t = this
, n = [];
this._reqWhitelist = [],
this._rspWhitelist = [],
e.forEach(function(e) {
n.push(e.URLRegex),
t._reqWhitelist.push(R(e.RecordReq, e.ReqWhitelist)),
t._rspWhitelist.push(R(e.RecordRsp, e.RspWhitelist))
}),
this._reqBodyRegex = new RegExp("(" + n.join(")|(") + ")")
}
,
e.prototype.addHeaderWhitelist = function(e, t) {
var n = this;
e && e.forEach(function(e) {
return n._reqHeaderWhitelist[e] = !0
}),
t && t.forEach(function(e) {
return n._rspHeaderWhitelist[e] = !0
})
}
,
e.prototype.tick = function(e) {
if (e) {
for (var t = 0; t < this._events.length; t++)
this._queue.enqueue(a.EVENT_AJAX_REQUEST, this._events[t]);
this._events = []
}
}
,
e.prototype.maybeShimXHR = function(e) {
var t = this
, n = e.XMLHttpRequest;
if (n) {
var i = n.prototype;
this._xhrOpenHook = r.activateHook(i, "open"),
this._xhrOpenHook && this._xhrOpenHook.before(function(e) {
var n = e.args[0]
, r = e.args[1];
t.addPendingReq(e.that, n, r),
e.that.addEventListener("load", function(n) {
t.onComplete(e.that)
}),
e.that.addEventListener("error", function(n) {
t.onComplete(e.that)
})
}),
this._xhrSendHook = r.activateHook(i, "send"),
this._xhrSendHook && this._xhrSendHook.before(function(e) {
var n = e.args[0];
t.maybeRecordReqBody(e.that, n)
}),
this._xhrSetHeaderHook = r.activateHook(i, "setRequestHeader"),
this._xhrSetHeaderHook && this._xhrSetHeaderHook.before(function(e) {
var n = e.args[0]
, r = e.args[1];
t.addHeader(e.that, n, r)
})
}
}
,
e.prototype.pendingReq = function(e) {
var t = O(e);
return t ? this._pendingReqs[t] : (i.logIfDebug("missing xhr req id"),
null)
}
,
e.prototype.deletePending = function(e) {
var t = O(e);
t && delete this._pendingReqs[t]
}
,
e.prototype.maybeRecordReqBody = function(e, t) {
var n, r = this.pendingReq(e);
r && (n = this.requestBody(r.url, t),
r.reqSize = n[0],
r.reqBody = n[1])
}
,
e.prototype.addPendingReq = function(e, t, n) {
this.deletePending(e);
var r = this._curId++;
n = s.resolveUrlToDocument(this._ctx.window, n),
this._pendingReqs[r] = {
id: r,
xhr: e,
method: t,
url: n,
startTime: Date.now(),
headers: [],
reqSize: 0,
reqBody: void 0
},
function(e, t) {
e._fs = t
}(e, r)
}
,
e.prototype.addHeader = function(e, t, n) {
var r = this.pendingReq(e);
r && r.headers.push([t, n])
}
,
e.prototype.onComplete = function(e) {
var t = this
, n = this.pendingReq(e);
if (n) {
this.deletePending(e);
var r = Date.now() - n.startTime
, i = A(n.headers, function(e) {
return e[0]in t._reqHeaderWhitelist
})
, o = A(k(e.getAllResponseHeaders()), function(e) {
return e[0]in t._rspHeaderWhitelist
})
, a = this.responseBody(n.url, e)
, u = a[0]
, c = a[1]
, h = [n.method, s.scrubUrl(n.url), r, e.status, i, o, n.startTime, n.reqSize, u];
h.push(n.reqBody ? n.reqBody : null),
h.push(c || null),
this._events.push(h)
}
}
,
e.prototype.findWhitelistIndexFor = function(e) {
if (this._reqBodyRegex) {
var t = this._reqBodyRegex.exec(e);
if (t)
for (var n = 1; n < t.length; n++)
if (void 0 !== t[n])
return n - 1
}
return -1
}
,
e.prototype.requestBody = function(e, t) {
if (null == t)
return [0, void 0];
var n = this.findWhitelistIndexFor(e)
, r = n >= 0 && this._reqWhitelist[n]
, i = typeof t;
if ("string" == i)
return v(t, r);
if ("object" == i) {
var o = i.constructor;
switch (o) {
case String:
case Object:
default:
return y(t, r);
case Blob:
return E(t, r);
case ArrayBuffer:
return m(t, r);
case Document:
case FormData:
case URLSearchParams:
case ReadableStream:
return [-1, r ? "" + o.name : void 0];
}
}
return [-1, r ? "[unknown]" : void 0]
}
,
e.prototype.responseBody = function(e, t) {
var n = this.findWhitelistIndexFor(e)
, r = n >= 0 && this._rspWhitelist[n];
if (t.responseType) {
var o = t.response;
switch (o || i.logIfDebug("Maybe response type was different that expected."),
t.responseType) {
case "text":
return S(t.responseText, r);
case "json":
return w(o, r);
case "arraybuffer":
return b(o, r);
case "blob":
return I(o, r);
case "document":
return T(t.responseText, r);
}
}
return S(t.responseText, r)
}
,
e
}();
function v(e, t) {
return [e.length, C(e, t)]
}
function y(e, t) {
var n = void 0;
return !1 !== t && (n = u.whitelistedJson(e, c.MaxPayloadLength, t)),
[N(e), n]
}
function m(e, t) {
var n = void 0;
return t && (n = "[ArrayBuffer]"),
[e.byteLength, n]
}
function E(e, t) {
var n = void 0;
return t && (n = "[Blob]"),
[e.size, n]
}
function S(e, t) {
return e ? [e.length, C(e, t)] : [-1, void 0]
}
function w(e, t) {
return e ? [N(e), u.whitelistedJson(e, c.MaxPayloadLength, t)] : [-1, void 0]
}
function T(e, t) {
return [e ? e.length : -1, t ? "[Document]" : void 0]
}
function b(e, t) {
return [e ? e.byteLength : -1, t ? "[ArrayBuffer]" : void 0]
}
function I(e, t) {
return [e ? e.size : -1, t ? "[Blob]" : void 0]
}
function N(e) {
try {
return h.windex.jsonStringify(e).length
} catch (e) {}
return 0
}
function O(e) {
return e._fs
}
function C(e, t) {
if (0 != t)
try {
return u.whitelistedJson(h.windex.jsonParse(e), c.MaxPayloadLength, t)
} catch (n) {
return 1 == t ? e.slice(0, c.MaxPayloadLength) : void 0
}
}
function R(e, t) {
switch (e) {
default:
case a.AjaxBodyElide:
return !1;
case a.AjaxBodyRecord:
return !0;
case a.AjaxBodyWhitelist:
try {
return o.parseFieldPatterns(t)
} catch (e) {
return i.logIfDebug("error parsing field whitelist (" + t + ": " + e),
!1
}
}
}
function k(e) {
var t = [];
return e.split(d).forEach(function(e) {
var n = e.indexOf(":");
-1 != n ? t.push([e.slice(0, n).trim(), e.slice(n + 1, e.length).trim()]) : t.push([e.trim(), null])
}),
t
}
function A(e, t) {
var n = "";
return e.forEach(function(e) {
e[0] = e[0].toLowerCase();
var r = t(e);
n += e[0] + (r ? ": " + e[1] : "") + d
}),
n
}
t.AjaxWatcher = g,
t._reqBodyString = v,
t._reqBodyObject = y,
t._reqBodyArrayBuffer = m,
t._reqBodyBlob = E,
t._rspBodyText = S,
t._rspBodyObject = w,
t._rspBodyDocument = T,
t._rspBodyArrayBuffer = b,
t._rspBodyBlob = I,
t.parseHeaders = k
}
, function(e, t, n) {
"use strict";
Object.defineProperty(t, "__esModule", {
value: !0
});
var r = n(25)
, i = n(5)
, o = r.parseFieldPatterns("**");
t.whitelistedJson = function(e, t, n) {
var r;
if (n) {
r = 1 == n ? o : n;
try {
var s = 0
, a = [1]
, u = []
, c = {};
return c[r.id] = r,
u.push(c),
i.windex.jsonStringify(e, function(e, n) {
var r = n && "object" == typeof n;
if ("" == e && 1 == a.length)
return a[0]--,
r && a.push(i.windex.objectKeys(n).length),
n;
var o = {}
, c = u[u.length - 1]
, h = !0
, d = !1
, l = function(e) {
o[e.id] = e,
h = !1,
e.term && (d = !0)
};
for (var f in c) {
var p = c[f];
e in p.edges && l(p.edges[e]),
"*"in p.edges && l(p.edges["*"]),
p.loop && l(p)
}
for ((h || !r && !d) && (n = null),
s += e.length + 2,
(s += r ? 2 : null === n ? 4 : n.toString().length) >= t && (n = void 0),
a[a.length - 1]--,
n && r && (a.push(i.windex.objectKeys(n).length),
u.push(o)); a[a.length - 1] <= 0; )
a.pop(),
u.pop();
return n
})
} catch (e) {}
return "[error serializing " + e.constructor.name + "]"
}
}
}
, function(e, t, n) {
"use strict";
Object.defineProperty(t, "__esModule", {
value: !0
});
var r, i = n(0), o = n(1), s = n(4), a = n(3), u = n(9), c = n(24), h = n(43), d = n(2), l = function() {
function e(t, n) {
var r = this;
this.ctx = t,
this.queue = n,
this.hooks = [];
var i = e;
this.throttle = new s.Throttle(i.ThrottleMax,i.ThrottleInterval,function() {
return setTimeout(function() {
r.queue.enqueue(a.EVENT_FAIL_THROTTLED, [a.ThrottledStyleSheetHooks]),
r.stop()
})
}
),
this.addInsert = this.throttle.guard(this.addInsert),
this.addDelete = this.throttle.guard(this.addDelete)
}
return e.prototype.start = function() {
var e = this;
this.throttle.open();
var t = this.ctx.window;
if (t.CSSStyleSheet) {
var n, r = t.CSSStyleSheet.prototype;
(n = i.activateHook(r, "insertRule")) && (n.afterSync(function(t) {
e.addInsert(t.that, t.args[0], t.args[1])
}),
this.hooks.push(n)),
(n = i.activateHook(r, "deleteRule")) && (n.afterSync(function(t) {
e.addDelete(t.that, t.args[0])
}),
this.hooks.push(n))
}
}
,
e.prototype.snapshot = function(e, t) {
void 0 === t && (t = 0);
var n = u.fsid(e);
if (n) {
var i = h.sheetRules(h.elemSheet(e));
if (i)
for (var o = t; o < i.length; o++) {
var s = void 0;
try {
s = r(i[o])
} catch (e) {
s = "html {}"
}
this.queue.enqueue(a.EVENT_CSSRULE_INSERT, [n, s, o])
}
}
}
,
e.prototype.addInsert = function(t, n, r) {
var i = u.fsid(t.ownerNode);
if (i && "string" == typeof n) {
n.length > e.MaxRuleBytes && (o.logIfDebug("CSSRule too large, inserting dummy instead: " + n.length),
n = "dummy {}");
var s = [i, n];
"number" == typeof r && s.push(r),
this.queue.enqueue(a.EVENT_CSSRULE_INSERT, s)
}
}
,
e.prototype.addDelete = function(e, t) {
var n = u.fsid(e.ownerNode);
n && "number" == typeof t && this.queue.enqueue(a.EVENT_CSSRULE_DELETE, [n, t])
}
,
e.prototype.stop = function() {
this.throttle.close();
for (var e = 0, t = this.hooks; e < t.length; e++) {
t[e].disable()
}
this.hooks = []
}
,
e.ThrottleMax = 1e4,
e.ThrottleInterval = 1e4,
e.MaxRuleBytes = 16384,
e
}();
t.StyleSheetWatcher = l;
var f = document.createElement("div");
function p(e, t) {
if (void 0 === t && (t = 0),
!d.assert(t <= 20, "No deep recursion for CSS rules"))
return "html { /* Depth limit exceeded! */ }";
var n = function(e) {
switch (e.type) {
case CSSRule.PAGE_RULE:
var t = e.selectorText || "";
return t && i.hasPrefix(t, "@page") ? t : "@page " + t;
case CSSRule.KEYFRAME_RULE:
return e.keyText;
case CSSRule.STYLE_RULE:
return e.selectorText;
case CSSRule.MEDIA_RULE:
return "@media " + e.media.mediaText;
case CSSRule.KEYFRAMES_RULE:
return "@keyframes " + e.name;
case CSSRule.SUPPORTS_RULE:
return "@supports " + e.conditionText;
default:
return null;
}
}(e);
if (null == n)
return e.cssText;
var r = function(e, t) {
var n = e
, r = n.style;
if (r) {
for (var i = "", o = 0; o < r.length; o++) {
var s = r[o]
, a = r[s];
i += s + ": " + a,
"important" === r.getPropertyPriority(s) && (i += " !important"),
i += "; "
}
return i
}
var u = n.cssRules;
if (!u)
return null;
for (var c = "", o = 0; o < u.length; o++)
c += p(u[o], t + 1);
return c
}(e, t);
return null == r ? e.cssText : n + " { " + r + "} "
}
f.style.width = "initial",
r = "" != f.style.cssText ? function(e) {
return e.cssText
}
: p,
t._jsCssText = p,
t.getDynamicRuleTail = function(e) {
var t = e.textContent || "";
if (!(t.length > 5e5)) {
var n = h.sheetRules(h.elemSheet(e));
if (n) {
if (n.length > 0 && /^\s*$/.test(t))
return 0;
var r = c.theDummyDoc()
, i = r.importNode(e, !0);
r.head.appendChild(i);
var o = h.sheetRules(h.elemSheet(i));
if (r.head.removeChild(i),
o)
return n.length > o.length ? o.length : void 0
}
}
}
}
, function(e, t, n) {
"use strict";
Object.defineProperty(t, "__esModule", {
value: !0
}),
t.elemSheet = function(e) {
return e ? e.sheet : void 0
}
,
t.sheetRules = function(e) {
try {
return e ? e.cssRules || e.rules : void 0
} catch (e) {
return
}
}
}
, function(e, t, n) {
"use strict";
Object.defineProperty(t, "__esModule", {
value: !0
});
var r = n(3)
, i = n(0)
, o = n(45)
, s = n(9)
, a = n(15)
, u = n(10)
, c = n(5)
, h = function() {
function e(e, t, n) {
this._queue = t,
this._enabled = !1,
this._overflow = !1,
this._total = 0,
this._hooks = [],
this._wnd = e.window,
this._listeners = n.createChild(),
this.maxLogsPerPage = "P2C" == e.options.orgId || "ESHFX" == e.options.orgId ? 3e3 : r.MAX_LOGS_PER_PAGE
}
return e.prototype._overflowMsg = function() {
return "\"[received more than " + this.maxLogsPerPage + " messages]\""
}
,
e.prototype.enable = function() {
var e = this;
if (this._listeners.add(this._wnd, "error", !0, function(t) {
return e.addError(t)
}),
this._listeners.add(this._wnd, "unhandledrejection", !0, function(t) {
e.addLog("error", ["Uncaught (in promise)", t.reason])
}, !0),
!this._enabled)
if (this._enabled = !0,
this._queue.enqueue(r.EVENT_REC_FEAT_SUPPORTED, [r.RecFeatureConsole, !0]),
this._wnd.console)
for (var t = function(t) {
var r = i.activateHook(n._wnd.console, t);
if (!r)
return "continue";
r.before(function(n) {
var r = n.args;
return e.addLog(t, r)
}),
n._hooks.push(r)
}, n = this, o = 0, s = ["log", "info", "warn", "error"]; o < s.length; o++) {
t(s[o])
}
else
this.addLog("log", ["NOTE: Log messages cannot be captured on IE9"])
}
,
e.prototype.isEnabled = function() {
return this._enabled
}
,
e.prototype.disable = function() {
var e;
if (this._listeners.clear(),
this._enabled)
for (this._enabled = !1; e = this._hooks.pop(); )
e.disable()
}
,
e.prototype.addLog = function(e, t) {
if (this.checkOverflow()) {
for (var n = [e], i = 0; i < t.length; ++i)
n.push(d(t[i], 1e3));
this._queue.enqueue(r.EVENT_LOG, n)
}
}
,
e.prototype.addError = function(e) {
if (this.checkOverflow()) {
var t = e.message
, n = e.filename
, i = e.lineno;
if (t || n || i) {
"object" == typeof t && (t = d(t, 1e3)),
"object" == typeof n && (n = d(n, 100)),
"object" == typeof i && (i = -1);
var s = [t, n, i];
s = s.concat(o.stackTraceFromError(e.error)),
this._queue.enqueue(r.EVENT_ERROR, s)
}
}
}
,
e.prototype.checkOverflow = function() {
return !this._overflow && (this._total == r.MAX_LOGS_PER_PAGE ? (this._queue.enqueue(r.EVENT_LOG, ["warn", this._overflowMsg()]),
this._overflow = !0,
!1) : (this._total++,
!0))
}
,
e
}();
function d(e, t) {
try {
var n = {
tokens: [],
opath: [],
cyclic: function(e, t) {
var n = 0;
try {
c.windex.jsonStringify(e, function(e, r) {
if (n++ > t)
throw "break";
if ("object" == typeof r)
return r
})
} catch (e) {
return "break" != e
}
return !1
}(e, t / 4)
};
return function e(t, n, r, o) {
if (n < 1)
return 0;
var h = t && t.constructor == Date ? l(t) : function(e) {
return "object" == typeof Node ? e instanceof Node : e && "object" == typeof e && e.nodeType > 0 && "string" == typeof e.nodeName
}(t) ? function(e) {
if (!s.fsidIfNotBlocked(e))
return e.toString();
if (e.tagName) {
var t = a.tagName(e)
, n = u.uaIsEdge && "output" == t ? {} : e.attributes;
return "<" + t + (n && n.type ? " type=\"" + n.type.value + "\"" : "") + (e.id ? " id=\"" + e.id + "\"" : "") + (e.className ? " class=\"" + e.className + "\"" : "") + ">" + (e.firstChild ? "..." : "") + "</" + t + ">"
}
var r = "";
return e.data && e.data.substring && (r = " " + e.data.substring(0, 50) + (e.data.length > 50 ? "..." : "")),
e.nodeName + r
}(t) : void 0 === t ? "undefined" : "object" != typeof t || null == t ? t : t instanceof Error ? t.stack || t.name + ": " + t.message : void 0;
if (void 0 !== h)
return void 0 === (h = c.windex.jsonStringify(h)) ? 0 : ("\"" == h[0] && (h = f(h, n, "...\"")),
h.length <= n ? (o.tokens.push(h),
h.length) : 0);
if (o.cyclic) {
o.opath.splice(r);
var d = o.opath.lastIndexOf(t);
if (d > -1) {
var p = "<Cycle to ancestor #" + (r - d - 1) + ">";
return p = "\"" + f(p, n - 2) + "\"",
o.tokens.push(p),
p.length
}
o.opath.push(t)
}
var _ = n;
var g = function(e) {
return _ >= e.length && (_ -= e.length,
o.tokens.push(e),
!0)
};
var v = function(e) {
var t = o.tokens[o.tokens.length - 1];
"," == t ? o.tokens[o.tokens.length - 1] = e : g(e)
};
if (_ < 2)
return 0;
if (i.isArray(t)) {
g("[");
for (var y = 0; y < t.length && _ > 0; y++) {
var m = e(t[y], _ - 1, r + 1, o);
if (_ -= m,
0 == m && !g("null"))
break;
g(",")
}
v("]")
} else {
g("{");
for (var E = i.keys(t), y = 0; y < E.length && _ > 0; y++) {
var S = E[y]
, w = t[S];
if (!g("\"" + S + "\":"))
break;
var m = e(w, _ - 1, r + 1, o);
if (0 == m) {
o.tokens.pop();
break
}
_ -= m,
g(",")
}
v("}")
}
return n == 1 / 0 ? 1 : n - _
}(e, t, 0, n),
n.tokens.join("")
} catch (e) {
return i.jsonErrorString(e)
}
}
t.ConsoleWatcher = h,
t.stringifyLogMessage = d;
var l = function(e) {
return isNaN(e) ? "Invalid Date" : e.toUTCString()
}
, f = function(e, t, n) {
return void 0 === n && (n = "..."),
e.length <= t ? e : e.length <= n.length || t <= n.length ? e.substring(0, t) : e.substring(0, t - n.length) + n
}
}
, function(e, t, n) {
"use strict";
Object.defineProperty(t, "__esModule", {
value: !0
});
var r = /^\s*at .*(\S+\:\d+|native|(<anonymous>))/m
, i = /^(eval@)?(\[native code\])?$/;
function o(e) {
if (!e || "string" != typeof e.stack)
return [];
var t = e;
return t.stack.match(r) ? t.stack.split("\n").filter(function(e) {
return !!e.match(r)
}).map(function(e) {
e.indexOf("(eval ") > -1 && (e = e.replace(/eval code/g, "eval").replace(/(\(eval at [^\()]*)|(\)\,.*$)/g, ""));
var t = e.replace(/^\s+/, "").replace(/\(eval code/g, "(").replace(/\(native code\)/, "").split(/\s+/).slice(1)
, n = a(t.pop())
, r = t.join(" ")
, i = ["eval", "<anonymous>"].indexOf(n[0]) > -1 ? "" : n[0];
return s(r, i, n[1], n[2])
}) : function(e) {
return e.split("\n").filter(function(e) {
return !e.match(i)
}).map(function(e) {
if (e.indexOf(" > eval") > -1 && (e = e.replace(/ line (\d+)(?: > eval line \d+)* > eval\:\d+\:\d+/g, ":$1")),
-1 === e.indexOf("@") && -1 === e.indexOf(":"))
return [e, "", -1, -1];
var t = e.split("@")
, n = a(t.pop())
, r = t.join("@");
return s(r, n[0], n[1], n[2])
})
}(t.stack)
}
function s(e, t, n, r) {
return [e || "", t || "", parseInt(n || "-1"), parseInt(r || "-1")]
}
function a(e) {
if (!e || -1 === e.indexOf(":"))
return ["", "", ""];
var t = /(.+?)(?:\:(\d+))?(?:\:(\d+))?$/.exec(e.replace(/[\(\)]/g, ""));
return t ? [t[1] || "", t[2] || "", t[3] || ""] : ["", "", ""]
}
t.genStackTrace = function() {
try {
throw new Error
} catch (e) {
return o(e).slice(1)
}
}
,
t.stackTraceFromError = o
}
, function(e, t, n) {
"use strict";
Object.defineProperty(t, "__esModule", {
value: !0
});
var r = n(47)
, i = n(3)
, o = n(4)
, s = n(8)
, a = function() {
function e(e, t, n, i) {
void 0 === n && (n = function() {
return []
}
),
void 0 === i && (i = o.RealTicker),
this._ctx = e,
this._transport = t,
this._gatherExternalEvents = n,
this._tickerFactory = i,
this._recordingDisabled = !1,
this._lastWhen = -1,
this._gotUnload = !1,
this._eventQueue = [],
this._sampleCurvesTicker = new this._tickerFactory(s.CurveSamplingInterval),
this._processMutationsTicker = new this._tickerFactory(s.MutationProcessingInterval),
this._processor = new r.EventProcessor(e)
}
return e.prototype.startPipeline = function(e, t, n, r) {
var i = this;
void 0 === n && (n = 0),
void 0 === r && (r = []),
this._recordingDisabled || this._pipelineStarted || (this._pipelineStarted = !0,
this._frameId = n,
this._parentIds = r,
this.processEvents(),
this._processMutationsTicker.start(function() {
i.processEvents()
}),
this._sampleCurvesTicker.start(function() {
i.processEvents(!0)
}),
this._transport.startPipeline(e, t))
}
,
e.prototype.enqueue = function(e, t) {
this.enqueueAt(this._ctx.time.now(), e, t),
o.Scheduler.checkForBrokenSchedulers()
}
,
e.prototype.enqueueAt = function(e, t, n) {
this._recordingDisabled || (e <= this._lastWhen && (e = this._lastWhen + 1),
this._lastWhen = e,
this._eventQueue.push({
When: e,
Kind: t,
Args: n
}))
}
,
e.prototype.enqueueFirst = function(e, t) {
this._eventQueue.length > 0 ? this._eventQueue.unshift({
When: this._eventQueue[0].When,
Kind: e,
Args: t
}) : this.enqueue(e, t)
}
,
e.prototype.addUnload = function(e) {
this._gotUnload || (this._gotUnload = !0,
this.enqueue(i.EVENT_UNLOAD, [e]),
this.singSwanSong())
}
,
e.prototype.shutdown = function(e) {
this._flush(),
this.addUnload(e),
this._flush(),
this._recordingDisabled = !0,
this.stopPipeline()
}
,
e.prototype._flush = function() {
this.processEvents(),
this._transport.flush()
}
,
e.prototype.prequeue = function(e, t) {
this._recordingDisabled || this._eventQueue.unshift({
When: 0,
Kind: e,
Args: t
})
}
,
e.prototype.appendToQueue = function(e) {
this._eventQueue = this._eventQueue.concat(e)
}
,
e.prototype.singSwanSong = function() {
this._recordingDisabled || (this.processEvents(),
this._transport.singSwanSong())
}
,
e.prototype.rebaseIframe = function(e) {
for (var t = 0, n = this._eventQueue.length; t < n; t++) {
var r = this._eventQueue[t]
, i = r.When + this._ctx.time.startTime() - e;
i < 0 && (i = 0),
r.When = i
}
}
,
e.prototype.processEvents = function(e) {
if (this._pipelineStarted) {
var t = this._eventQueue;
this._eventQueue = [];
var n = this._processor.processQueue(t);
e || (n = n.concat(this._gatherExternalEvents(0 != n.length))),
this.ensureFrameIds(n),
0 != n.length && this._transport.enqueueEvents(this._ctx.recording.pageSignature(), n)
}
}
,
e.prototype.ensureFrameIds = function(e) {
if (this._frameId)
for (var t = this._parentIds, n = t && t.length > 0, r = 0; r < e.length; ++r) {
var i = e[r];
i.FId || (i.FId = this._frameId),
n && !i.PIds && (i.PIds = t)
}
}
,
e.prototype.stopPipeline = function() {
this._pipelineStarted && (this._sampleCurvesTicker.stop(),
this._processMutationsTicker.stop(),
this._eventQueue = [],
this._transport.stopPipeline())
}
,
e
}();
t.EventQueue = a
}
, function(e, t, n) {
"use strict";
Object.defineProperty(t, "__esModule", {
value: !0
});
var r = n(3)
, i = function() {
function e(e, t) {
this._q = e,
this._valueIndices = t,
this._evts = []
}
return e.prototype.add = function(e) {
0 == this._evts.length && this._q.push(e),
this._evts.push(e)
}
,
e.prototype.finish = function(e, t) {
var n = this._evts.length;
if (n <= 1)
return !1;
for (var r = this._evts[0].When, i = this._evts[n - 1].When, o = 0; o < this._valueIndices.length; ++o) {
var s = this._valueIndices[o]
, a = this._evts[0].Args[s]
, u = (this._evts[1].When - r) / (i - r)
, c = (this._evts[1].Args[s] - a) / u
, h = this._evts[n - 1].Args[s]
, d = (u = (i - this._evts[n - 2].When) / (i - r),
(h - this._evts[n - 2].Args[s]) / u);
t.push(a, h, c, d)
}
return this._evts[0].Kind = e,
this._evts[0].Args = t,
!0
}
,
e.prototype.evts = function() {
return this._evts
}
,
e
}()
, o = function() {
function e(e) {
this._ctx = e
}
return e.prototype.processQueue = function(e) {
if (0 == e.length)
return e;
for (var t, n = this._ctx.time.now(), o = [], s = new i(o,[0, 1]), a = {}, u = {}, c = {}, h = 0; h < e.length; ++h) {
var d = e[h];
switch (d.Kind) {
case r.EVENT_MOUSEMOVE:
s.add(d);
break;
case r.EVENT_TOUCHMOVE:
(l = d.Args[0])in a || (a[l] = new i(o,[1, 2])),
a[l].add(d);
break;
case r.EVENT_SCROLL_LAYOUT:
(l = d.Args[0])in u || (u[l] = new i(o,[1, 2])),
u[l].add(d);
break;
case r.EVENT_SCROLL_VISUAL_OFFSET:
var l;
(l = d.Args[0])in c || (c[l] = new i(o,[1, 2])),
c[l].add(d);
break;
case r.EVENT_RESIZE_VISUAL:
t || (t = new i(o,[0, 1])),
t.add(d);
break;
default:
o.push(d);
}
}
if (s.finish(r.EVENT_MOUSEMOVE_CURVE, [n])) {
var f = s.evts()
, p = f[f.length - 1].Args;
p.length > 2 && p[2] && f[0].Args.push(p[2])
}
for (l in u) {
u[_ = parseInt(l)].finish(r.EVENT_SCROLL_LAYOUT_CURVE, [n, _])
}
for (l in c) {
c[_ = parseInt(l)].finish(r.EVENT_SCROLL_VISUAL_OFFSET_CURVE, [n, _])
}
for (l in a) {
var _;
a[_ = parseInt(l)].finish(r.EVENT_TOUCHMOVE_CURVE, [n, _])
}
return t && t.finish(r.EVENT_RESIZE_VISUAL_CURVE, [n]),
o
}
,
e
}();
t.EventProcessor = o
}
, function(e, t, n) {
"use strict";
Object.defineProperty(t, "__esModule", {
value: !0
});
var r = n(0)
, i = n(49)
, o = n(14)
, s = n(2)
, a = function() {
function e() {
this._consent = !1,
this._hasWatched = !1,
this._rules = Object.create ? Object.create(null) : {},
this._rules[o.WatchKindBlocked] = [],
this._rules[o.WatchKindBlockedConsent] = [],
this._rules[o.WatchKindWatch] = []
}
return e.prototype.isWatched = function(e) {
this._hasWatched = !0;
for (var t = 0, n = this._consent ? [o.WatchKindBlocked, o.WatchKindWatch] : [o.WatchKindBlockedConsent, o.WatchKindBlocked, o.WatchKindWatch]; t < n.length; t++)
for (var i = n[t], s = 0, a = this._rules[i]; s < a.length; s++) {
var u = a[s];
if (r.matchesSelector(e, u))
return i
}
return null
}
,
e.prototype.addRule = function(e) {
try {
return !(!e.Selector.match(i.WATCH_RULE_COMMENT) && "" != r.trim(e.Selector)) || this.mergeRule(e.Kind, e.Selector)
} catch (t) {
return s.FsBugSnag.sendToBugsnag("Error adding block rule '" + e.Selector + "': " + t, "error"),
!1
}
}
,
e.prototype.getConsent = function() {
return this._consent
}
,
e.prototype.setConsent = function(e) {
this._consent !== e && (this._consent = e,
this._hasWatched && this.onConsentChange && this.onConsentChange())
}
,
e.prototype.mergeRule = function(e, t) {
var n = document.documentElement || document.createElement("div");
try {
r.matchesSelector(n, t)
} catch (e) {
return s.FsBugSnag.sendToBugsnag("Browser rejected block rule '" + t + "': " + e.toString(), "error"),
!1
}
if (e != o.WatchKindBlocked && e != o.WatchKindBlockedConsent && e != o.WatchKindWatch && (e = o.WatchKindBlocked),
0 == this._rules[e].length)
return this._rules[e].push(t),
!0;
var i = this._rules[e].length - 1
, a = this._rules[e][i].concat(", ", t);
try {
r.matchesSelector(n, a)
} catch (n) {
return this._rules[e].push(t),
s.FsBugSnag.sendToBugsnag("Browser rejected merged block rule when adding '" + t + "': " + n.toString(), "warning"),
!0
}
return this._rules[e][i] = a,
!0
}
,
e.prototype.allConsentSensitiveElements = function(e) {
if (0 == this._rules[o.WatchKindBlockedConsent].length)
return [];
if (1 == this._rules[o.WatchKindBlockedConsent].length)
return e.querySelectorAll(this._rules[o.WatchKindBlockedConsent][0]);
for (var t = [], n = 0, r = this._rules[o.WatchKindBlockedConsent]; n < r.length; n++)
for (var i = r[n], s = e.querySelectorAll(i), a = 0; a < s.length; a++)
t.push(s[a]);
return t
}
,
e.prototype.mungeWatchedStyle = function(e, t) {
var n = e.getBoundingClientRect()
, r = Math.floor(n.width)
, i = Math.floor(n.height)
, o = "";
return null != t && (o = t.trim()),
o.length > 0 && ";" != o.charAt(o.length - 1) && (o += ";"),
0 == r && 0 == i || (o += "width:" + r + "px;height:" + i + "px;"),
o
}
,
e
}();
t.Watcher = a
}
, function(e, t, n) {
"use strict";
Object.defineProperty(t, "__esModule", {
value: !0
});
t.urlValueDelims = [["url\\(\\s*\"", "\"\\s*\\)"], ["url\\(\\s*'", "'\\s*\\)"], ["url\\(\\s*", "\\s*\\)"]];
var r = [["@import\\s+\"", "\""], ["@import\\s+'", "'"]].concat(t.urlValueDelims)
, i = /(?:[^\\](?:\\\\)*)/.source;
t.urlPattern = ".*?" + i,
t.CSS_URL = new RegExp(r.map(function(e) {
var n = e[0]
, r = e[1];
return "(" + n + ")(" + t.urlPattern + ")(" + r + ")"
}).join("|"),"g"),
t.replaceCssUrls = function(e, n) {
return e.replace(t.CSS_URL, function(e) {
for (var t = [], r = 1; r < arguments.length; r++)
t[r - 1] = arguments[r];
var i = t[0] || t[3] || t[6] || t[9] || t[12]
, o = t[1] || t[4] || t[7] || t[10] || t[13]
, s = t[2] || t[5] || t[8] || t[11] || t[14]
, a = t[15];
return n(i, o, s, a)
})
}
,
t.QUOTES = /\"|'/g,
t.HOVER = /\:hover/g,
t.FOCUS = /\:focus/g,
t.FOCUS_WITHIN = /\:focus-within/g,
t.MEDIA_QUERY = /(@media.*?{)/g,
t.DOMAIN = /^[a-zA-Z0-9][a-zA-Z0-9-]{1,61}[a-zA-Z0-9]\.[a-zA-Z]{2,}$/,
t.DOMAIN_PART = /^[a-zA-Z0-9-:]{1,61}$/,
t.IPv4_PART = /^[0-9]{1,3}$/,
t.IPv6_PART = /^[0-9a-f]{0,4}$/,
t.PLAYBACK_URL_PARAMS = /.*\?Base=(.*)&Url=(.*)/,
t.EMAIL = /^(([^<>()[\]\\.,;:\s@\"]+(\.[^<>()[\]\\.,;:\s@\"]+)*)|(\".+\"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/,
t.IMAGE_FILENAME = /\.(jpe?g|png|svg|gif|bmp)$/,
t.WATCH_RULE_COMMENT = /^\s*\/\//,
t.DATA_URI = /^data:([^;,]*)[;,]/i,
t.SKETCHY_CONTENT_TYPES = /(application|script|text\/js|text\/html)/i,
t.WHITELISTED_CONTENT_TYPES = /(^application\/octet-stream)|(^font\/)|(^application\/[a-z_.-]*font)/i,
t.SKETCHY_URI_SCHEMES = /javascript:|file:/i
}
, function(e, t, n) {
"use strict";
var r = this && this.__awaiter || function(e, t, n, r) {
return new (n || (n = Promise))(function(i, o) {
function s(e) {
try {
u(r.next(e))
} catch (e) {
o(e)
}
}
function a(e) {
try {
u(r["throw"](e))
} catch (e) {
o(e)
}
}
function u(e) {
e.done ? i(e.value) : new n(function(t) {
t(e.value)
}
).then(s, a)
}
u((r = r.apply(e, t || [])).next())
}
)
}
, i = this && this.__generator || function(e, t) {
var n, r, i, o, s = {
label: 0,
sent: function() {
if (1 & i[0])
throw i[1];
return i[1]
},
trys: [],
ops: []
};
return o = {
next: a(0),
"throw": a(1),
"return": a(2)
},
"function" == typeof Symbol && (o[Symbol.iterator] = function() {
return this
}
),
o;
function a(o) {
return function(a) {
return function(o) {
if (n)
throw new TypeError("Generator is already executing.");
for (; s; )
try {
if (n = 1,
r && (i = 2 & o[0] ? r["return"] : o[0] ? r["throw"] || ((i = r["return"]) && i.call(r),
0) : r.next) && !(i = i.call(r, o[1])).done)
return i;
switch (r = 0,
i && (o = [2 & o[0], i.value]),
o[0]) {
case 0:
case 1:
i = o;
break;
case 4:
return s.label++,
{
value: o[1],
done: !1
};
case 5:
s.label++,
r = o[1],
o = [0];
continue;
case 7:
o = s.ops.pop(),
s.trys.pop();
continue;
default:
if (!(i = (i = s.trys).length > 0 && i[i.length - 1]) && (6 === o[0] || 2 === o[0])) {
s = 0;
continue
}
if (3 === o[0] && (!i || o[1] > i[0] && o[1] < i[3])) {
s.label = o[1];
break
}
if (6 === o[0] && s.label < i[1]) {
s.label = i[1],
i = o;
break
}
if (i && s.label < i[2]) {
s.label = i[2],
s.ops.push(o);
break
}
i[2] && s.ops.pop(),
s.trys.pop();
continue;
}
o = t.call(e, s)
} catch (e) {
o = [6, e],
r = 0
} finally {
n = i = 0
}
if (5 & o[0])
throw o[1];
return {
value: o[0] ? o[1] : void 0,
done: !0
}
}([o, a])
}
}
}
;
Object.defineProperty(t, "__esModule", {
value: !0
});
var o = n(4)
, s = n(0)
, a = n(51)
, u = n(1)
, c = n(2)
, h = n(3)
, d = n(6)
, l = n(52)
, f = 6e6
, p = function() {
function e(e, t, n, r, i) {
void 0 === r && (r = window.FormData),
void 0 === i && (i = o.RealTimeout),
this.ctx = e,
this.queue = t,
this.protocol = n,
this.FormDataCtr = r,
this.Timeout = i,
this.started = {},
this.byUrl = {},
this.batchReady = !1,
this.existsBatch = []
}
return e.prototype.init = function() {
this.FormDataCtr && this.main()["catch"](function(e) {
c.FsBugSnag.sendToBugsnag(e, "error")
})
}
,
e.prototype.main = function() {
return r(this, void 0, d.FSPromise, function() {
var e, t, n, o, a, h, l, f, p, _, g = this;
return i(this, function(v) {
switch (v.label) {
case 0:
return [4, this.getBatch()];
case 1:
for (e = v.sent(),
t = {
fsnv: s.map(e, function(e) {
return e.hash
})
},
n = {},
o = 0,
a = e; o < a.length; o++)
h = a[o],
n[h.hash] = h;
l = this.ctx.options.orgId,
v.label = 2;
case 2:
return v.trys.push([2, 4, , 5]),
[4, this.protocol.newResources(l, t)];
case 3:
return f = v.sent(),
[3, 5];
case 4:
return p = v.sent(),
u.logIfDebug("/rec/newResources failed with status " + p),
[3, 0];
case 5:
try {
_ = JSON.parse(f)
} catch (e) {
return c.FsBugSnag.sendToBugsnag("Error parsing /rec/newResources response", "error"),
[3, 0]
}
return [4, s.forInAsync(_, function(e, t) {
return r(g, void 0, d.FSPromise, function() {
var r, o, s, a, h, d, f, p, _;
return i(this, function(i) {
switch (i.label) {
case 0:
if ("fsnv" != t)
return [2];
r = 0,
o = e,
i.label = 1;
case 1:
if (!(r < o.length))
return [3, 6];
if (s = o[r],
null == (a = n[s]))
return c.FsBugSnag.sendToBugsnag("Server told us to upload a hash we don't have", "error"),
[3, 5];
if (h = a.url,
d = a.contentType,
!(f = a.blob || a.stringData))
return c.FsBugSnag.sendToBugsnag("Missing resource contents", "error"),
[3, 5];
if (p = a.blob || new Blob([f],{
type: d
}),
null == f)
return c.FsBugSnag.sendToBugsnag("Tried to re-upload a resource", "error"),
[3, 5];
(_ = new this.FormDataCtr).append("orgId", l),
_.append("baseUrl", h),
_.append("fsnvHash", s),
_.append("contents", p, "blob"),
a.blob = a.stringData = null,
i.label = 2;
case 2:
return i.trys.push([2, 4, , 5]),
[4, this.protocol.uploadResource(_)];
case 3:
return i.sent(),
[3, 5];
case 4:
return i.sent(),
u.logIfDebug("Server error uploading resource"),
[3, 5];
case 5:
return r++,
[3, 1];
case 6:
return [2];
}
})
})
})];
case 6:
return v.sent(),
[3, 0];
case 7:
return [2];
}
})
})
}
,
e.prototype.getBatch = function() {
var e = this
, t = a.createFSPromise()
, n = t.resolve
, r = t.promise
, i = function() {
e.popBatch = null,
e.batchReady = !1;
var t = e.existsBatch;
e.existsBatch = [],
n(t)
};
return this.batchReady ? i() : this.popBatch = i,
r
}
,
e.prototype.uploadBlob = function(e) {
return r(this, void 0, d.FSPromise, function() {
var t, n, r = this;
return i(this, function(i) {
switch (i.label) {
case 0:
return 0 != e.lastIndexOf("blob:", 0) ? [2] : this.FormDataCtr ? this.started[e] ? [2] : (this.started[e] = !0,
[4, this.processResource(e)]) : [2];
case 1:
return (t = i.sent()) ? (n = 0 == this.existsBatch.length,
this.existsBatch.push(t),
n && new this.Timeout(function() {
r.batchReady = !0,
r.popBatch && r.popBatch()
}
,50).start(),
[2]) : [2];
}
})
})
}
,
e.prototype.processResource = function(e) {
return r(this, void 0, d.FSPromise, function() {
var t, n, r;
return i(this, function(i) {
switch (i.label) {
case 0:
return this.byUrl[e] ? [2, this.byUrl[e]] : [4, function(e) {
var t = a.createFSPromise()
, n = t.resolve
, r = t.promise;
if (!c.assert(s.hasPrefix(e, "blob:"), "Blob url must start with \"blob:\""))
return n(null),
r;
var i = new XMLHttpRequest;
if ("string" != typeof i.responseType)
return n(null),
r;
return i.open("GET", e),
i.responseType = "blob",
i.onerror = function() {
n(null)
}
,
i.onload = function() {
if (200 != i.status)
return u.logIfDebug("Error loading blob resource " + e),
void n(null);
var t = i.response;
if ((t.size || t.length) > f)
return c.FsBugSnag.sendToBugsnag("Size of blob resource " + e + " exceeds limit of " + f, "warning"),
void n(null);
(function(e) {
var t = a.createFSPromise()
, n = t.resolve
, r = t.promise
, i = new FileReader;
return i.readAsArrayBuffer(e),
i.onload = function() {
n(i.result)
}
,
i.onerror = function(e) {
c.FsBugSnag.sendToBugsnag(e, "error"),
n(null)
}
,
r
}
)(t).then(function(e) {
n(e ? {
buffer: e,
blob: t,
contentType: t.type
} : null)
})
}
,
i.send(),
r
}(e)];
case 1:
return (t = i.sent()) ? [4, l.hash128NonBlocking(this.ctx.time, t.buffer)] : [2, null];
case 2:
return n = i.sent().hash,
r = {
hash: n,
url: e,
blob: t.blob,
contentType: t.contentType
},
this.byUrl[r.url] = r,
this.queue.enqueue(h.EVENT_SYS_RESOURCEHASH, ["url", e, r.hash]),
[2, r];
}
})
})
}
,
e
}();
t.ResourceUploader = p
}
, function(e, t, n) {
"use strict";
Object.defineProperty(t, "__esModule", {
value: !0
});
var r = n(6);
t.createFSPromise = function() {
var e, t;
return {
promise: new r.FSPromise(function(n, r) {
e = n,
t = r
}
),
resolve: e,
reject: t
}
}
}
, function(e, t, n) {
"use strict";
var r = this && this.__awaiter || function(e, t, n, r) {
return new (n || (n = Promise))(function(i, o) {
function s(e) {
try {
u(r.next(e))
} catch (e) {
o(e)
}
}
function a(e) {
try {
u(r["throw"](e))
} catch (e) {
o(e)
}
}
function u(e) {
e.done ? i(e.value) : new n(function(t) {
t(e.value)
}
).then(s, a)
}
u((r = r.apply(e, t || [])).next())
}
)
}
, i = this && this.__generator || function(e, t) {
var n, r, i, o, s = {
label: 0,
sent: function() {
if (1 & i[0])
throw i[1];
return i[1]
},
trys: [],
ops: []
};
return o = {
next: a(0),
"throw": a(1),
"return": a(2)
},
"function" == typeof Symbol && (o[Symbol.iterator] = function() {
return this
}
),
o;
function a(o) {
return function(a) {
return function(o) {
if (n)
throw new TypeError("Generator is already executing.");
for (; s; )
try {
if (n = 1,
r && (i = 2 & o[0] ? r["return"] : o[0] ? r["throw"] || ((i = r["return"]) && i.call(r),
0) : r.next) && !(i = i.call(r, o[1])).done)
return i;
switch (r = 0,
i && (o = [2 & o[0], i.value]),
o[0]) {
case 0:
case 1:
i = o;
break;
case 4:
return s.label++,
{
value: o[1],
done: !1
};
case 5:
s.label++,
r = o[1],
o = [0];
continue;
case 7:
o = s.ops.pop(),
s.trys.pop();
continue;
default:
if (!(i = (i = s.trys).length > 0 && i[i.length - 1]) && (6 === o[0] || 2 === o[0])) {
s = 0;
continue
}
if (3 === o[0] && (!i || o[1] > i[0] && o[1] < i[3])) {
s.label = o[1];
break
}
if (6 === o[0] && s.label < i[1]) {
s.label = i[1],
i = o;
break
}
if (i && s.label < i[2]) {
s.label = i[2],
s.ops.push(o);
break
}
i[2] && s.ops.pop(),
s.trys.pop();
continue;
}
o = t.call(e, s)
} catch (e) {
o = [6, e],
r = 0
} finally {
n = i = 0
}
if (5 & o[0])
throw o[1];
return {
value: o[0] ? o[1] : void 0,
done: !0
}
}([o, a])
}
}
}
;
Object.defineProperty(t, "__esModule", {
value: !0
});
var o = n(53)
, s = n(6)
, a = n(26)
, u = 1e4
, c = 25
, h = 100;
t.hash128NonBlocking = function(e, t, n) {
return void 0 === n && (n = new o._FSNV),
r(this, void 0, s.FSPromise, function() {
var r, o, s, d;
return i(this, function(i) {
switch (i.label) {
case 0:
r = e.now(),
o = t.byteLength,
s = 0,
i.label = 1;
case 1:
return s < o ? e.now() - r > c ? [4, a.wait(h)] : [3, 3] : [3, 5];
case 2:
i.sent(),
r = e.now(),
i.label = 3;
case 3:
d = new Uint8Array(t,s,Math.min(o - s, u)),
n.write(d),
i.label = 4;
case 4:
return s += u,
[3, 1];
case 5:
return [2, {
hash: n.sum(),
hasher: n
}];
}
})
})
}
}
, function(e, t, n) {
"use strict";
var r, i = this && this.__extends || (r = function(e, t) {
return (r = Object.setPrototypeOf || {
__proto__: []
}instanceof Array && function(e, t) {
e.__proto__ = t
}
|| function(e, t) {
for (var n in t)
t.hasOwnProperty(n) && (e[n] = t[n])
}
)(e, t)
}
,
function(e, t) {
function n() {
this.constructor = e
}
r(e, t),
e.prototype = null === t ? Object.create(t) : (n.prototype = t.prototype,
new n)
}
);
Object.defineProperty(t, "__esModule", {
value: !0
});
var o = function() {
function e(e) {
void 0 === e && (e = 4),
this.hashCount = e,
this.idx = 0,
this.hashMask = e - 1,
this.reset()
}
return e.prototype.reset = function() {
this.idx = 0,
this.hash = [];
for (var e = 0; e < this.hashCount; ++e)
this.hash.push(2166136261)
}
,
e.prototype.write = function(e) {
for (var t = this.hashMask, n = this.idx, r = 0; r < e.length; r++)
this.hash[n] = this.hash[n] ^ e[r],
this.hash[n] += (this.hash[n] << 1) + (this.hash[n] << 4) + (this.hash[n] << 7) + (this.hash[n] << 8) + (this.hash[n] << 24),
n = n + 1 & t;
this.idx = n
}
,
e.prototype.writeAscii = function(e) {
for (var t = this.hashMask, n = this.idx, r = 0; r < e.length; r++)
this.hash[n] = this.hash[n] ^ e.charCodeAt(r),
this.hash[n] += (this.hash[n] << 1) + (this.hash[n] << 4) + (this.hash[n] << 7) + (this.hash[n] << 8) + (this.hash[n] << 24),
n = n + 1 & t;
this.idx = n
}
,
e.prototype.sum = function() {
var e, t = this.sumAsHex();
return (e = t,
u(String.fromCharCode.apply(null, e.replace(/\r|\n/g, "").replace(/([\da-fA-F]{2}) ?/g, "0x$1 ").replace(/ +$/, "").split(" ")))).replace(/\+/g, "-").replace(/\//g, "_")
}
,
e.prototype.sumAsHex = function() {
for (var e = "", t = 0; t < this.hashCount; ++t)
e += ("00000000" + (this.hash[t] >>> 0).toString(16)).slice(-8);
return e
}
,
e
}();
t._FSNV = o,
t.hashString32Blocking = function(e) {
var t = new o(1);
return t.writeAscii(e),
t.sumAsHex()
}
;
var s = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/="
, a = function(e) {
function t() {
return null !== e && e.apply(this, arguments) || this
}
return i(t, e),
t
}(Error)
, u = window.btoa || c;
function c(e) {
for (var t, n, r = String(e), i = 0, o = s, u = []; r.charAt(0 | i) || (o = "=",
i % 1); u.push(o.charAt(63 & t >> 8 - i % 1 * 8))) {
if ((n = r.charCodeAt(i += .75)) > 255)
throw new a("'btoa' failed: The string to be encoded contains characters outside of the Latin1 range.");
t = t << 8 | n
}
return u.join("")
}
t._jsbtoa = c
}
, function(e, t, n) {
"use strict";
var r, i = this && this.__extends || (r = function(e, t) {
return (r = Object.setPrototypeOf || {
__proto__: []
}instanceof Array && function(e, t) {
e.__proto__ = t
}
|| function(e, t) {
for (var n in t)
t.hasOwnProperty(n) && (e[n] = t[n])
}
)(e, t)
}
,
function(e, t) {
function n() {
this.constructor = e
}
r(e, t),
e.prototype = null === t ? Object.create(t) : (n.prototype = t.prototype,
new n)
}
);
Object.defineProperty(t, "__esModule", {
value: !0
});
var o = n(13)
, s = n(4)
, a = n(7)
, u = n(21)
, c = n(0)
, h = n(1)
, d = n(3)
, l = n(11)
, f = n(19)
, p = n(55)
, _ = function(e) {
function t(t, n, r, i, u) {
void 0 === r && (r = new p.NetworkEventTransport(t,n)),
void 0 === i && (i = s.RealTicker),
void 0 === u && (u = o.defaultInjector);
var c = e.call(this, t, i, r, u) || this;
return c._protocol = n,
c._domLoaded = !1,
c._recordingDisabled = !1,
c._integrationScriptFetched = !1,
r.onShutdown(function() {
return c.shutdown("transport")
}),
c._doc = c._wnd.document,
c._frameId = 0,
c._identity = t.recording.identity,
c._getCurrentSessionEnabled = o.GetCurrentSessionEnabledState.NoInfoYet,
a.set_fs_shutdown(c._wnd, function(e) {
if (c._eventWatcher.shutdown("_fs_shutdown"),
e) {
var t = c._doc.getElementById(e);
t && t.setAttribute("_fs_embed_token", c._embedToken)
}
}),
c
}
return i(t, e),
t.prototype.onDomLoad = function() {
var t = this;
e.prototype.onDomLoad.call(this),
this._domLoaded = !0,
this.injectIntegrationScript(function() {
t.fireFsReady(t._recordingDisabled)
})
}
,
t.prototype.start = function(t, n, r) {
var i = this;
e.prototype.start.call(this, t, n);
var o = a._fs_replay_flags(this._wnd)
, s = u.getDocumentClientArea(this._doc)
, h = s[0]
, p = s[1]
, _ = c.tryGetScreenDims(this._wnd)
, g = _[0]
, v = _[1]
, y = "";
t || (y = this._identity.userId());
var m = {
OrgId: this._orgId,
UserId: y,
Url: l.scrubUrl(location.href),
Base: l.scrubUrl(l.baseUri(this._wnd)),
Width: h,
Height: p,
ScreenWidth: g,
ScreenHeight: v,
Referrer: this._doc.referrer,
Doctype: c.doctypeString(this._doc),
CompiledTimestamp: f.CompiledTimestamp
};
r && (m.AppId = r),
o && (m.ReplayFlags = o),
this._protocol.page(m, function(e) {
i.handleResponse(e),
i.handleIdentity(e.CookieDomain, e.UserIntId, e.SessionIntId, e.PageIntId, e.EmbedToken),
i.handleIntegrationScript(e.IntegrationScript),
i._queue.enqueueFirst(d.EVENT_SET_FRAME_BASE, [l.scrubUrl(l.baseUri(i._wnd)), c.doctypeString(i._doc)]),
i._queue.startPipeline(e.PageIntId, e.PageStart),
i.fullyStarted()
}, function(e) {
i.disableBecauseRecPageSaidSo()
})
}
,
t.prototype.handleIntegrationScript = function(e) {
var t = this;
this._integrationScriptFetched = !0,
this._integrationScript = e,
this.injectIntegrationScript(function() {
t.fireFsReady(t._recordingDisabled)
})
}
,
t.prototype.handleIdentity = function(e, t, n, r, i) {
var o = this._identity;
o.setIds(this._wnd, e, t, n),
this._embedToken = i,
h.logIfDebug("/User," + o.userId() + "/Session," + o.sessionId() + "/Page," + r)
}
,
t.prototype.injectIntegrationScript = function(e) {
if (this._domLoaded && this._integrationScriptFetched)
if (this._integrationScript) {
var t = this._doc.createElement("script");
a._fs_csp(this._wnd) ? (t.addEventListener("load", e),
t.addEventListener("error", e),
t.async = !0,
t.src = this._scheme + "//" + this._recHost + "/rec/integrations?OrgId=" + this._orgId,
this._doc.head.appendChild(t)) : (t.text = this._integrationScript,
this._doc.head.appendChild(t),
e())
} else
e()
}
,
t.prototype.disableBecauseRecPageSaidSo = function() {
this.shutdown("because /rec/page said so"),
h.logIfDebug("Disabling FS."),
this._recordingDisabled = !0,
this.fireFsReady(this._recordingDisabled)
}
,
t
}(o.AbstractRecorder);
t.TopRecorder = _
}
, function(e, t, n) {
"use strict";
Object.defineProperty(t, "__esModule", {
value: !0
});
var r = n(3)
, i = n(56)
, o = n(4)
, s = n(27)
, a = n(16)
, u = n(8)
, c = n(2)
, h = n(1)
, d = function() {
function e(e, t, n, s) {
void 0 === t && (t = new a.HttpProtocol(e)),
void 0 === n && (n = o.RealTicker),
void 0 === s && (s = o.RealTimeout);
var c = this;
this._ctx = e,
this._protocol = t,
this._tickerFactory = n,
this._backoffRetries = 0,
this._backoffTime = 0,
this._bundleSeq = 1,
this._lastPostTime = 0,
this._serverBundleTime = 0,
this._largePageSize = 16e6,
this._outgoingEventQueue = [],
this._bundleQueue = [],
this._hibernating = !1,
this._heartbeatInterval = 0,
this._lastUserEvent = 0,
this._finished = !1,
this._scheme = e.options.scheme,
this._identity = e.recording.identity,
this._lastBundleTime = e.time.wallTime(),
this._uploadTicker = new this._tickerFactory(u.UploadInterval),
this._swanSong = new i.SwanSong(e,this._protocol,this._identity,s),
this._heartbeatTimeout = new s(function() {
c._outgoingEventQueue.push({
Kind: r.EVENT_HEARTBEAT,
When: c._ctx.time.now(),
Args: []
}),
c._heartbeatInterval *= 2,
c._heartbeatInterval > u.HeartbeatMax && (c._heartbeatInterval = u.HeartbeatMax),
c._heartbeatTimeout.start(c._heartbeatInterval)
}
),
this._hibernationTimeout = new s(function() {
c._ctx.time.now() - c._lastUserEvent <= 2 * u.PageInactivityTimeout && (c._outgoingEventQueue.push({
Kind: r.EVENT_UNLOAD,
When: c._ctx.time.now(),
Args: ["hibernation"]
}),
c.singSwanSong()),
c.stopPipeline(),
c._hibernating = !0
}
,u.PageInactivityTimeout)
}
return e.prototype.onShutdown = function(e) {
this._onShutdown = e
}
,
e.prototype.scheme = function() {
return this._scheme
}
,
e.prototype.enqueueEvents = function(e, t) {
if (this._hibernating) {
if (this._finished)
return;
for (var n = 0, i = t; n < i.length; n++) {
var o = i[n];
if (r.isUserActionEvent(o.Kind)) {
this._ctx.recording.splitPage("post-hibernation"),
this._finished = !0;
break
}
}
} else {
for (var s = 0, a = t; s < a.length; s++) {
o = a[s];
if (r.isUserActionEvent(o.Kind)) {
this._hibernationTimeout.start(),
this._heartbeatInterval = u.HeartbeatInitial,
this._heartbeatTimeout.start(this._heartbeatInterval),
this._lastUserEvent = this._ctx.time.now();
break
}
}
for (var c = 0, h = t; c < h.length; c++) {
o = h[c];
this._outgoingEventQueue.push(o)
}
}
}
,
e.prototype.startPipeline = function(e, t) {
var n = this;
this._pageId = e,
this._serverPageStart = t,
this.enqueueAndSendBundle(),
this._uploadTicker.start(function() {
n.enqueueAndSendBundle()
}),
this._heartbeatInterval = u.HeartbeatInitial,
this._heartbeatTimeout.start(this._heartbeatInterval),
this._hibernationTimeout.start()
}
,
e.prototype.stopPipeline = function() {
this._uploadTicker.stop(),
this._outgoingEventQueue = [],
this._bundleQueue = [],
this._hibernationTimeout.stop(),
this._heartbeatTimeout.stop()
}
,
e.prototype.flush = function() {
this.maybeSendNextBundle()
}
,
e.prototype.singSwanSong = function() {
if (!this._hibernating && (this._outgoingEventQueue.length > 0 && this.enqueueNextBundle(!0),
this._bundleQueue.length > 0 || this._pendingBundle)) {
var e = this._bundleQueue.concat();
this._pendingBundle && e.unshift(this._pendingBundle),
this._swanSong.sing(this._pageId, e, this._lastBundleTime, this._serverPageStart, this._serverBundleTime)
}
}
,
e.prototype.enqueueAndSendBundle = function() {
this._pendingBundle ? this._pendingBundleFailed && this._sendPendingBundle() : 0 != this._outgoingEventQueue.length ? this.enqueueNextBundle() : this.maybeSendNextBundle()
}
,
e.prototype.enqueueNextBundle = function(e) {
void 0 === e && (e = !1);
var t = {
When: this._outgoingEventQueue[0].When,
Seq: this._bundleSeq++,
Evts: this._outgoingEventQueue
};
this._outgoingEventQueue = [],
this._bundleQueue.push(t),
e ? this._protocol.bundleBeacon(t, this._identity.orgId(), this._identity.userId(), this._identity.sessionId(), this._pageId, this._serverPageStart, this._serverBundleTime, null) : this.maybeSendNextBundle()
}
,
e.prototype.maybeSendNextBundle = function() {
this._pageId && this._serverPageStart && !this._pendingBundle && 0 != this._bundleQueue.length && (this._pendingBundle = this._bundleQueue.shift(),
this._sendPendingBundle())
}
,
e.prototype._sendPendingBundle = function() {
var e = this
, t = this._ctx.time.wallTime();
if (!(t < this._backoffTime)) {
var n = this._pendingBundle;
n && (this._pendingBundleFailed = !1,
this._lastPostTime = this._lastBundleTime = t,
this.sendBundle(n, function(t) {
h.logIfDebug("Sent bundle " + n.Seq + " with " + n.Evts.length + " events"),
e._serverBundleTime = t.BundleTime,
e._pendingBundle = null,
e._backoffTime = 0,
e._backoffRetries = 0,
e._ctx.time.wallTime() - e._lastPostTime > u.UploadInterval && e.maybeSendNextBundle()
}, function(t) {
if (h.logIfDebug("Failed to send events."),
s.isErrorFatal(t))
return 206 == t && c.FsBugSnag.sendToBugsnag("Failed to send bundle, probably because of its large size", "error"),
void (e._onShutdown && e._onShutdown());
e._pendingBundleFailed = !0,
e._backoffTime = e._lastPostTime + e._protocol.exponentialBackoffMs(e._backoffRetries++, !1)
}))
}
}
,
e.prototype.sendBundle = function(e, t, n) {
var r = this._protocol.bundle(e, this._identity.orgId(), this._identity.userId(), this._identity.sessionId(), this._pageId, this._serverPageStart, this._serverBundleTime, null, t, n);
if (r > this._largePageSize && this._bundleSeq > 16) {
var i = "splitting large page of size: " + r;
h.logIfDebug(i),
c.FsBugSnag.sendToBugsnag(new Error(i), "info"),
this._ctx.recording.splitPage("size")
}
}
,
e
}();
t.NetworkEventTransport = d
}
, function(e, t, n) {
"use strict";
Object.defineProperty(t, "__esModule", {
value: !0
});
var r = n(8)
, i = n(4)
, o = n(0)
, s = n(27)
, a = n(1)
, u = function() {
function e(e, t, n, r) {
void 0 === r && (r = i.RealTimeout),
this._ctx = e,
this._protocol = t,
this._identity = n,
this._timeoutFactory = r,
this._recover()
}
return e.prototype.sing = function(e, t, n, i, s) {
a.logIfDebug("Saving " + t.length + " bundles in swan-song.");
var u = {
OrgId: this._identity.orgId(),
UserId: this._identity.userId(),
SessionId: this._identity.sessionId(),
PageId: e,
Bundles: t,
PageStartTime: this._ctx.time.startTime(),
LastBundleTime: n,
ServerPageStart: i,
ServerBundleTime: s
}
, c = o.stringify(u);
if (!(c.length > 2e6))
try {
localStorage[r.SwanSongLocalStorageKey] = c
} catch (e) {}
}
,
e.prototype._recover = function() {
try {
if (r.SwanSongLocalStorageKey in localStorage) {
var e = localStorage[r.SwanSongLocalStorageKey];
delete localStorage[r.SwanSongLocalStorageKey];
var t = o.parseJson(e);
if (!(t.Bundles && t.UserId && t.SessionId && t.PageId))
return void a.logIfDebug("Malformed swan song found. Ignoring it.");
t.OrgId || (t.OrgId = this._identity.orgId()),
t.Bundles.length > 0 && (a.logIfDebug("Sending " + t.Bundles.length + " bundles as prior page swan song"),
this.sendSwanSongBundles(t.OrgId, t.UserId, t.SessionId, t.PageId, t.Bundles, t.ServerPageStart, t.ServerBundleTime, t.LastBundleTime))
}
} catch (e) {
a.logIfDebug("Error recovering swan-song: " + e)
}
}
,
e.prototype.sendSwanSongBundles = function(e, t, n, r, i, u, c, h, d) {
var l = this;
void 0 === d && (d = 0);
var f = null;
o.isArray(i) && 0 !== i.length && void 0 !== i[0] && (1 == i.length && (f = this._ctx.time.wallTime() - (h || 0)),
this._protocol.bundle(i[0], e, t, n, r, u, c, f, function(o) {
a.logIfDebug("Sent " + i[0].Evts.length + " trailing events from last session as Seq " + i[0].Seq),
i.shift(),
i.length > 0 ? l.sendSwanSongBundles(e, t, n, r, i, u, o.BundleTime, h) : a.logIfDebug("Done with prior page swan song")
}, function(o) {
s.isErrorFatal(o) ? a.logIfDebug("Fatal error while sending events, giving up") : (a.logIfDebug("Failed to send events from last session, will retry while on this page"),
l._lastSwanSongRetryTimeout = new l._timeoutFactory(l.sendSwanSongBundles,l._protocol.exponentialBackoffMs(d, !0),l,e,t,n,r,i,u,c,h,d + 1).start())
}))
}
,
e
}();
t.SwanSong = u
}
, function(e, t, n) {
"use strict";
var r, i = this && this.__extends || (r = function(e, t) {
return (r = Object.setPrototypeOf || {
__proto__: []
}instanceof Array && function(e, t) {
e.__proto__ = t
}
|| function(e, t) {
for (var n in t)
t.hasOwnProperty(n) && (e[n] = t[n])
}
)(e, t)
}
,
function(e, t) {
function n() {
this.constructor = e
}
r(e, t),
e.prototype = null === t ? Object.create(t) : (n.prototype = t.prototype,
new n)
}
);
Object.defineProperty(t, "__esModule", {
value: !0
});
var o = n(13)
, s = n(4)
, a = n(0)
, u = n(1)
, c = n(3)
, h = n(11)
, d = n(58)
, l = n(7)
, f = function(e) {
function t(t, n, r, i, a) {
void 0 === n && (n = new d.PostMessagePoster),
void 0 === r && (r = new d.PostMessageEventTransport(t.window)),
void 0 === i && (i = s.RealTicker),
void 0 === a && (a = o.defaultInjector);
var u = e.call(this, t, i, r, a) || this;
return u._messagePoster = n,
u
}
return i(t, e),
t.prototype.start = function(t, n) {
var r = this;
e.prototype.start.call(this, t, n),
this.sendRequestForFrameId(),
this._listeners.add(this._wnd, "load", !1, function() {
r._eventWatcher.recordingIsDetached() && (u.logIfDebug("Recording wrong document. Restarting recording in iframe."),
r._ctx.recording.splitPage("detached iframe"))
})
}
,
t.prototype.postMessageReceived = function(t, n) {
if (e.prototype.postMessageReceived.call(this, t, n),
t == this._wnd.parent || t == this._wnd)
switch (n[0]) {
case o.FS_GREET_CHILD_FRAME:
this.sendRequestForFrameId();
break;
case o.FS_SET_FRAME_ID_CMD:
try {
var r = n[1]
, i = n[2]
, s = n[3]
, c = n[4]
, h = n[5]
, d = n[6]
, f = n[7]
, p = n[8];
this.setFrameIdFromOutside(r, i, s, c, h, d, f, p)
} catch (e) {
u.logIfDebug("Failed to parse frameId from message: " + a.stringify(n))
}
break;
case o.FS_SET_CONSENT:
var _ = n[1];
this.setConsent(_);
break;
case o.FS_INIT_MOBILE_CMD:
try {
var g = JSON.parse(n[1])
, v = g.StartTime;
if (n.length > 2) {
var y = n[2];
if (y.hasOwnProperty("ProtocolVersion"))
y.ProtocolVersion >= 20180723 && y.hasOwnProperty("OuterStartTime") && (v = y.OuterStartTime)
}
var m = g.Host;
this.setFrameIdFromOutside(-1, [], v, "https", l.defaultScript(m), l.defaultAppHost(m), g.OrgId, g.PageResponse)
} catch (e) {
u.logIfDebug("Failed to initialize mobile web recording from message: " + a.stringify(n))
}
}
}
,
t.prototype.sendRequestForFrameId = function() {
this._frameId || (0 != this._frameId ? this._wnd.parent ? (u.logIfDebug("Asking for a frame ID from within frame: " + location.href),
this._messagePoster.postMessage(this._wnd.parent, o.FS_REQUEST_FRAME_ID, [])) : u.logIfDebug("Orphaned window. Location href = " + location.href) : u.logIfDebug("For some reason the outer window attempted to request a frameId"))
}
,
t.prototype.setFrameIdFromOutside = function(e, t, n, r, i, o, s, d) {
e ? this._frameId ? this._frameId != e ? (u.logIfDebug("Updating frame id from " + this._frameId + " to " + e),
this._ctx.recording.splitPage("stale iframe")) : u.logIfDebug("frame Id is already set to " + this._frameId) : (u.logIfDebug("FrameId received within frame " + location.href + ": " + e),
this._scheme = r,
this._script = i,
this._appHost = o,
this._orgId = s,
this._frameId = e,
this._parentIds = t,
this.handleResponse(d),
this.fireFsReady(),
this._queue.enqueueFirst(c.EVENT_SET_FRAME_BASE, [h.scrubUrl(h.baseUri(this._wnd)), a.doctypeString(this._wnd.document)]),
this._queue.rebaseIframe(n),
this._ctx.time.setStartTime(n),
this._queue.startPipeline(this._pageId, d.PageStart, e, t),
this.flushPendingChildFrameInits(),
this.fullyStarted()) : u.logIfDebug("Outer page gave us a bogus frame Id! Iframe: " + location.href)
}
,
t
}(o.AbstractRecorder);
t.InnerRecorder = f
}
, function(e, t, n) {
"use strict";
Object.defineProperty(t, "__esModule", {
value: !0
});
var r = n(13)
, i = n(7)
, o = n(0)
, s = function() {
function e(e, t) {
void 0 === t && (t = new a),
this._wnd = e,
this._messagePoster = t
}
return e.prototype.enqueueEvents = function(e, t) {
this._messagePoster.postMessage(this._wnd.parent, r.FS_IFRAME_EVENTS, t, e)
}
,
e.prototype.startPipeline = function(e, t) {}
,
e.prototype.stopPipeline = function() {}
,
e.prototype.flush = function() {}
,
e.prototype.singSwanSong = function() {}
,
e.prototype.onShutdown = function(e) {}
,
e
}();
t.PostMessageEventTransport = s;
var a = function() {
function e() {}
return e.prototype.postMessage = function(e, t, n, r) {
var s;
try {
s = i._fs_transport(e)
} catch (e) {}
s ? s.send(t, o.stringify(n)) : e.postMessage(u(t, n, r), "*")
}
,
e
}();
function u(e, t, n) {
var r = [e, t];
return n && r.push(n),
o.stringify({
__fs: r
})
}
t.PostMessagePoster = a,
t.formatPostMessageData = u
}
, function(e, t, n) {
"use strict";
Object.defineProperty(t, "__esModule", {
value: !0
});
var r, i, o = n(3), s = n(28), a = n(0), u = n(17), c = n(1), h = n(5);
!function(e) {
e.rec = "rec",
e.user = "user",
e.account = "account",
e.consent = "consent",
e.customEvent = "event"
}(r = t.ApiType || (t.ApiType = {})),
function(e) {
e.user = "user",
e.account = "acct",
e.event = "evt"
}(i = t.VarScope || (t.VarScope = {}));
var d = {
acctId: "str",
displayName: "str",
website: "str"
}
, l = {
uid: "str",
displayName: "str",
email: "str"
}
, f = {
str: p,
bool: _,
real: g,
"int": v,
date: y,
strs: m(p),
bools: m(_),
reals: m(g),
ints: m(v),
dates: m(y),
objs: m(E),
obj: E
};
function p(e) {
return "string" == typeof e
}
function _(e) {
return "boolean" == typeof e
}
function g(e) {
return "number" == typeof e
}
function v(e) {
return "number" == typeof e && e - Math.floor(e) == 0
}
function y(e) {
return !!e && (e.constructor === Date ? !isNaN(e) : ("number" == typeof e || "string" == typeof e) && !isNaN(new Date(e)))
}
function m(e) {
return function(t) {
if (!(t instanceof Array))
return !1;
for (var n = 0; n < t.length; n++)
if (!e(t[n]))
return !1;
return !0
}
}
function E(e) {
return !!e && "object" == typeof e
}
var S = /^[a-zA-Z][a-zA-Z0-9_]*$/
, w = function() {
function e(e) {
this._identity = e
}
return e.prototype.identity = function() {
return this._identity
}
,
e.prototype.api = function(e, t, n) {
var u = !1
, h = [];
try {
switch (e) {
case r.rec:
return {
events: [],
recStatus: t ? "restart" : "shutdown"
};
case r.consent:
var f = typeof t;
if ("boolean" != typeof t) {
c.logIfDebug("Expected consent status of type 'boolean' instead got type: \"" + f + "\", value: \"" + t + "\"");
break
}
return {
events: [{
When: 0,
Kind: o.EVENT_SYS_SETCONSENT,
Args: [t]
}],
consent: t
};
case r.account:
h.push.apply(h, this.rawEventsFromApi(i.account, d, t, n));
break;
case r.user:
if ("object" != typeof t)
c.logIfDebug("Expected argument of type 'object' instead got type: '" + typeof t + "', value: " + a.stringify(t));
else if ("uid"in t) {
var p = t.uid;
if (!1 === p)
this._identity.clearAppId() && (u = !0),
delete t.uid;
else {
var _ = b(p, this._identity)
, g = _[0]
, v = _[1];
if (!g) {
switch (v) {
case s.HighlightTypeFsId:
h.push({
When: 0,
Kind: o.EVENT_SYS_HIGHLIGHT,
Args: [s.HighlightTypeFsId, t.uid + ""]
});
break;
case void 0:
break;
default:
c.logIfDebug("unexpected failReason returned from setAppId: " + v);
}
return {
events: h
}
}
t.uid = g,
this._identity.setAppId(t.uid),
v == s.HighlightTypeNewUid && (u = !0)
}
}
h.push.apply(h, this.rawEventsFromApi(i.user, l, t, n));
break;
case r.customEvent:
var y = t.n
, m = t.p;
h.push.apply(h, this.rawEventsFromApi(i.event, {}, m, n, y));
break;
default:
c.logIfDebug("invalid operation \"" + e + "\"; only \"rec\", \"account\", and \"user\" are supported at present");
}
} catch (t) {
c.logIfDebug("unexpected exception handling " + e + " API call: " + t.message)
}
return {
events: h,
reidentify: u
}
}
,
e.prototype.rawEventsFromApi = function(e, t, n, r, s) {
var u = function e(t, n, r) {
var o = {
PayloadToSend: {},
ValidationErrors: []
};
var s = function(r) {
var i = e(t, n, r);
return o.ValidationErrors = o.ValidationErrors.concat(i.ValidationErrors),
i.PayloadToSend
};
a.forIn(r, function(e, r) {
var u = function(e, t, n, r) {
var i = t
, o = typeof n;
if ("undefined" === o)
return c.logIfDebug("Cannot infer type of " + o + " " + n),
r.push({
Type: "vartype",
FieldName: t,
ValueType: o + " (unsupported)"
}),
null;
if (h.windex.objectHasOwnProp(e, t))
return {
name: t,
type: e[t]
};
var s = t.lastIndexOf("_");
if (-1 == s || !I(t.substring(s + 1))) {
var u = function(e) {
for (var t in f)
if (f[t](e))
return t;
return null
}(n);
if (null == u)
return c.logIfDebug("Cannot infer type of " + o + " " + n),
n ? r.push({
Type: "vartype",
FieldName: t
}) : r.push({
Type: "vartype",
FieldName: t,
ValueType: "null (unsupported)"
}),
null;
s = t.length,
c.logIfDebug("Warning: Inferring user variable \"" + t + "\" to be of type \"" + u + "\""),
t = t + "_" + u
}
var d = [t.substring(0, s), t.substring(s + 1)]
, l = d[0]
, p = d[1];
if ("object" === o && !n)
return c.logIfDebug("null is not a valid object type"),
r.push({
Type: "vartype",
FieldName: i,
ValueType: "null (unsupported)"
}),
null;
if (!S.test(l)) {
l = l.replace(/[^a-zA-Z0-9_]/g, "").replace(/^[0-9]+/, ""),
/[0-9]/.test(l[0]) && (l = l.substring(1)),
r.push({
Type: "varname",
FieldName: i
});
var _ = l + "_" + p;
if (c.logIfDebug("Warning: variable \"" + i + "\" has invalid characters. It should match /" + S.source + "/. Converted name to \"" + _ + "\"."),
"" == l)
return null;
t = _
}
if (!I(p))
return c.logIfDebug("Variable \"" + i + "\" has invalid type \"" + p + "\""),
r.push({
Type: "varname",
FieldName: i
}),
null;
if (!function(e, t) {
return f[e](t)
}(p, n))
return c.logIfDebug("illegal value " + a.stringify(n) + " for type " + p),
"number" === o ? o = n % 1 == 0 ? "integer" : "real" : "object" == o && null != n && n.constructor == Date && (o = isNaN(n) ? "invalid date" : "date"),
r.push({
Type: "vartype",
FieldName: i,
ValueType: o
}),
null;
return {
name: t,
type: p
}
}(n, r, e, o.ValidationErrors);
if (u) {
var d = u.name
, l = u.type;
if ("obj" != l) {
if ("objs" != l)
o.PayloadToSend[d] = T(l, e);
else {
t != i.event && o.ValidationErrors.push({
Type: "vartype",
FieldName: d,
ValueType: "Array<Object> (unsupported)"
});
for (var p = e, _ = [], g = 0; g < p.length; g++) {
var v = s(p[g]);
v && _.push(v)
}
_.length > 0 && (o.PayloadToSend[d] = _)
}
} else {
var v = s(e)
, y = a.hasSuffix(r, "_obj") ? d : d.substring(0, d.length - "_obj".length);
o.PayloadToSend[y] = v
}
} else
o.PayloadToSend[r] = T("", e)
});
return o
}(e, t, n)
, d = this.eventsForValidationErrors(e, u.ValidationErrors)
, l = e == i.event
, p = [e, a.stringify(u.PayloadToSend)]
, _ = o.EVENT_SYS_SETVAR;
return l && (_ = o.EVENT_SYS_CUSTOM,
p[0] = s),
r && "fs" != r && p.push(r),
d.push({
When: 0,
Kind: _,
Args: p
}),
d
}
,
e.prototype.eventsForValidationErrors = function(e, t) {
if (e == i.event)
return [];
for (var n = [], r = 0, s = t; r < s.length; r++) {
var a = s[r]
, u = [a.Type, e + ":" + a.FieldName];
a.ValueType && u.push(a.ValueType),
n.push({
When: 0,
Kind: o.EVENT_SYS_HIGHLIGHT,
Args: u
})
}
return n
}
,
e
}();
function T(e, t) {
return "str" == e && null != t && (t = t.trim()),
null == t || "date" != e && t.constructor != Date || (t = function(e) {
var t, n = e.constructor === Date ? e : new Date(e);
try {
t = n.toISOString()
} catch (e) {
t = null
}
return t
}(t)),
t
}
function b(e, t) {
if ("number" == typeof e && Math.floor(e) == e && (c.logIfDebug("Expected appId of type 'string' instead got value: " + e + " of type: " + typeof e),
e = "" + e),
"string" != typeof e)
return c.logIfDebug("blocking FS.identify API call; uid value (" + e + ") must be a string"),
[void 0, s.HighlightTypeFsId];
var n = e.trim();
if (u.BAD_APP_IDS.indexOf(n.toLowerCase()) >= 0)
return c.logIfDebug("blocking FS.identify API call; uid value (" + e + ") is illegal"),
[void 0, s.HighlightTypeFsId];
var r = void 0;
return t && t._cookie.AppKey && t._cookie.AppKey != n && (c.logIfDebug("user re-identified; existing uid (" + t._cookie.AppKey + ") does not match provided uid (" + n + ")"),
r = s.HighlightTypeNewUid),
[n, r]
}
function I(e) {
return !!f[e]
}
t.Vars = w,
t.transformValidateAppId = b
}
, function(e, t, n) {
"use strict";
Object.defineProperty(t, "__esModule", {
value: !0
});
var r = n(8)
, i = n(0)
, o = n(16)
, s = n(5)
, a = n(1)
, u = n(2);
t.cmdReqPage = 1,
t.cmdReqBundle = 2,
t.cmdRspError = 3,
t.cmdRspPage = 4,
t.cmdRspBundle = 5;
var c = function() {
function e(e, t) {
void 0 === t && (t = function(e) {
return new WebSocket(e)
}
),
this._newSock = t,
this._connecting = !1,
this._connected = !1,
this._queue = {},
this._seq = 1,
this._wnd = e.window,
this._scheme = e.options.scheme,
this._host = e.options.recHost
}
return e.isSupported = function() {
return "WebSocket"in window
}
,
e.prototype.page = function(e, n, r) {
this.request({
Cmd: t.cmdReqPage,
Page: e
}, function(e) {
return n(e.Page)
}, r)
}
,
e.prototype.bundle = function(e, n, r, i, o, s, a, u, c, h) {
return this.request({
Cmd: t.cmdReqBundle,
Bundle: {
OrgId: n,
UserId: r,
SessionId: i,
PageId: o,
Seq: e.Seq,
DeltaT: null === u ? void 0 : u,
PageStart: null == s ? void 0 : s,
PrevBundleTime: null == a ? void 0 : a,
Bundle: e
}
}, function(e) {
return c(e.Bundle)
}, h)
}
,
e.prototype.bundleBeacon = function(e, t, n, r, i, s, a, u) {
return o.bundleBeacon(this._scheme, this._host, e, t, n, r, i, s, a, u)
}
,
e.prototype.exponentialBackoffMs = function(e, t) {
var n = Math.min(r.BackoffMax, 5e3 * Math.pow(2, e));
return t ? n + .25 * Math.random() * n : n
}
,
e.prototype.request = function(e, t, n) {
e.Seq = this._seq++;
var r = i.stringify(e);
return this._queue[e.Seq] = {
payload: r,
win: t,
lose: n
},
this.maybeConnect(),
r.length
}
,
e.prototype.handleMessage = function(e) {
var n;
try {
n = i.parseJson(e)
} catch (e) {
return void a.logIfDebug("socket: error parsing frame: " + e.toString())
}
var r = this._queue[n.Seq];
delete this._queue[n.Seq],
r ? n.Cmd == t.cmdRspError ? (a.logIfDebug(n.Fail.Error),
r.lose(n.Fail.Status)) : r.win(n) : a.logIfDebug("socket: mismatched request seq " + n.Seq + "; ignoring")
}
,
e.prototype.drainQueue = function() {
if (this._connected)
for (var e in this._queue) {
var t = this._queue[e];
t.sent || (this._sock.send(t.payload),
t.sent = !0)
}
else
a.logIfDebug("socket: attempt to drain queue when disconnected.")
}
,
e.prototype.reconnect = function() {
var e = this;
if (!this._connected) {
for (var t in this._queue)
this._queue[t].sent = !1;
var n = 0;
s.windex.setWindowTimeout(this._wnd, u.FsBugSnag.wrap(function() {
return e.maybeConnect()
}), this.exponentialBackoffMs(n++, !0))
}
}
,
e.prototype.maybeConnect = function() {
var e = this;
if (this._connected)
this.drainQueue();
else if (!this._connecting) {
this._connecting = !0;
var t = ("https:" == this._scheme ? "wss:" : "ws:") + "//" + this._host + "/rec/sock";
this._sock = this._newSock(t),
this._sock.onopen = function(t) {
e._connecting = !1,
e._connected = !0,
e.drainQueue()
}
,
this._sock.onmessage = function(t) {
e.handleMessage(t.data),
e.drainQueue()
}
,
this._sock.onclose = function(t) {
a.logIfDebug("socket: closed; reconnecting"),
e._connecting = e._connected = !1,
e.reconnect()
}
,
this._sock.onerror = function(t) {
a.logIfDebug("socket: error; reconnecting"),
e._connecting = e._connected = !1,
e.reconnect()
}
}
}
,
e
}();
t.SockProtocol = c
}
]);
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment