Advertisement
keweon

Untitled

Aug 20th, 2018
1,334
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 93.26 KB | None | 0 0
  1. # https://az725175.vo.msecnd.net/scripts/jsll-4.js
  2.  
  3. var awa = awa || {},
  4. behaviorKey;
  5. awa.isInitialized = !1;
  6. awa.verbosityLevels = {
  7. NONE: 0,
  8. ERROR: 1,
  9. WARNING: 2,
  10. INFORMATION: 3
  11. };
  12. awa.behavior = {
  13. UNDEFINED: 0,
  14. NAVIGATIONBACK: 1,
  15. NAVIGATION: 2,
  16. NAVIGATIONFORWARD: 3,
  17. APPLY: 4,
  18. REMOVE: 5,
  19. SORT: 6,
  20. EXPAND: 7,
  21. REDUCE: 8,
  22. CONTEXTMENU: 9,
  23. TAB: 10,
  24. COPY: 11,
  25. EXPERIMENTATION: 12,
  26. PRINT: 13,
  27. SHOW: 14,
  28. HIDE: 15,
  29. MAXIMIZE: 16,
  30. MINIMIZE: 17,
  31. BACKBUTTON: 18,
  32. STARTPROCESS: 20,
  33. PROCESSCHECKPOINT: 21,
  34. COMPLETEPROCESS: 22,
  35. SCENARIOCANCEL: 23,
  36. DOWNLOADCOMMIT: 40,
  37. DOWNLOAD: 41,
  38. SEARCHAUTOCOMPLETE: 60,
  39. SEARCH: 61,
  40. SEARCHINITIATE: 62,
  41. PURCHASE: 80,
  42. ADDTOCART: 81,
  43. VIEWCART: 82,
  44. ADDWISHLIST: 83,
  45. FINDSTORE: 84,
  46. CHECKOUT: 85,
  47. REMOVEFROMCART: 86,
  48. PURCHASECOMPLETE: 87,
  49. VIEWCHECKOUTPAGE: 88,
  50. VIEWCARTPAGE: 89,
  51. VIEWPDP: 90,
  52. UPDATEITEMQUANTITY: 91,
  53. INTENTTOBUY: 92,
  54. PUSHTOINSTALL: 93,
  55. SIGNIN: 100,
  56. SIGNOUT: 101,
  57. SOCIALSHARE: 120,
  58. SOCIALLIKE: 121,
  59. SOCIALREPLY: 122,
  60. CALL: 123,
  61. EMAIL: 124,
  62. COMMUNITY: 125,
  63. VOTE: 140,
  64. SURVEYINITIATE: 141,
  65. SURVEYCOMPLETE: 142,
  66. REPORTAPPLICATION: 143,
  67. REPORTREVIEW: 144,
  68. SURVEYCHECKPOINT: 145,
  69. CONTACT: 160,
  70. REGISTRATIONINITIATE: 161,
  71. REGISTRATIONCOMPLETE: 162,
  72. CANCELSUBSCRIPTION: 163,
  73. RENEWSUBSCRIPTION: 164,
  74. CHANGESUBSCRIPTION: 165,
  75. REGISTRATIONCHECKPOINT: 166,
  76. CHATINITIATE: 180,
  77. CHATEND: 181,
  78. TRIALSIGNUP: 200,
  79. TRIALINITIATE: 201,
  80. PARTNERREFERRAL: 220,
  81. VIDEOSTART: 240,
  82. VIDEOPAUSE: 241,
  83. VIDEOCONTINUE: 242,
  84. VIDEOCHECKPOINT: 243,
  85. VIDEOJUMP: 244,
  86. VIDEOCOMPLETE: 245,
  87. VIDEOBUFFERING: 246,
  88. VIDEOERROR: 247,
  89. VIDEOMUTE: 248,
  90. VIDEOUNMUTE: 249,
  91. VIDEOFULLSCREEN: 250,
  92. VIDEOUNFULLSCREEN: 251,
  93. VIDEOREPLAY: 252,
  94. VIDEOPLAYERLOAD: 253,
  95. VIDEOPLAYERCLICK: 254,
  96. VIDEOVOLUMECONTROL: 255,
  97. VIDEOAUDIOTRACKCONTROL: 256,
  98. VIDEOCLOSEDCAPTIONCONTROL: 257,
  99. VIDEOCLOSEDCAPTIONSTYLE: 258,
  100. VIDEORESOLUTIONCONTROL: 259,
  101. VIRTUALEVENTJOIN: 260,
  102. VIRTUALEVENTEND: 261,
  103. IMPRESSION: 280,
  104. CLICK: 281,
  105. RICHMEDIACOMPLETE: 282,
  106. ADBUFFERING: 283,
  107. ADERROR: 284,
  108. ADSTART: 285,
  109. ADCOMPLETE: 286,
  110. ADSKIP: 287,
  111. ADTIMEOUT: 288,
  112. OTHER: 300
  113. };
  114. awa.behaviorKeys = [];
  115. for (behaviorKey in awa.behavior) awa.behaviorKeys.push(behaviorKey);
  116. awa.actionType = {
  117. CLICKLEFT: "CL",
  118. CLICKRIGHT: "CR",
  119. SCROLL: "S",
  120. ZOOM: "Z",
  121. RESIZE: "R",
  122. KEYBOARDENTER: "KE",
  123. KEYBOARDSPACE: "KS",
  124. OTHER: "O"
  125. };
  126. awa.cookie = function() {
  127. function r(n, i) {
  128. var e = t(n),
  129. f, r, u;
  130. if (e && i)
  131. for (f = e.split("&"), r = 0; r < f.length; r++)
  132. if (u = f[r].split("="), u[0] && i.toLowerCase() === u[0].toLowerCase()) return u[1];
  133. return undefined
  134. }
  135.  
  136. function t(t, i) {
  137. for (var r, u, o, e = document.cookie.split(";"), f = 0; f < e.length; f++) {
  138. for (r = e[f]; r.charAt(0) === " ";) r = r.substring(1);
  139. if (u = r.split("="), o = n(u.shift()), o === t && u[0].indexOf(i) == (awa.utils.isValueAssigned(i) ? 0 : -1)) return n(u.join("="))
  140. }
  141. return undefined
  142. }
  143.  
  144. function u() {
  145. for (var t, i, r, f = document.cookie.split(";"), e = {}, u = 0; u < f.length; u++) {
  146. for (t = f[u]; t.charAt(0) === " ";) t = t.substring(1);
  147. i = t.split("=");
  148. r = n(i.shift());
  149. (r != "MSFPC" || r === "MSFPC" && i[0].indexOf("GUID") == (awa.utils.isValueAssigned("GUID") ? 0 : -1)) && (e[r] = n(i.join("=")))
  150. }
  151. return e
  152. }
  153.  
  154. function n(n) {
  155. var t = decodeURIComponent(n.replace("/+/g", " "));
  156. return t.indexOf('"') === 0 && (t = t.slice(1, -1).replace(/\\"/g, '"').replace(/\\\\/g, "\\")), t
  157. }
  158.  
  159. function i(n, t, i) {
  160. var u, r;
  161. i ? (r = new Date, r.setTime(r.getTime() + i * 864e5), u = "; expires=" + r.toUTCString()) : u = "";
  162. window.document.cookie = n + "=" + t + u + "; path=/;"
  163. }
  164.  
  165. function f(n) {
  166. i(n, "", -1)
  167. }
  168. return {
  169. getCookie: t,
  170. getCookieKeyValue: r,
  171. getAllCookies: u,
  172. setCookie: i,
  173. deleteCookie: f
  174. }
  175. }();
  176. awa.cv = function() {
  177. function y() {
  178. return u(r())
  179. }
  180.  
  181. function r() {
  182. return f.concat(".", i.toString())
  183. }
  184.  
  185. function h() {
  186. var n = r();
  187. if (u(n)) return n
  188. }
  189.  
  190. function p(i) {
  191. var r, f, e, o, s;
  192. if (u(i)) {
  193. for (r = i.split("."), f = r.length, r[f - 1] = (parseInt(r[f - 1], 10) + 1).toString(), e = "", o = 0; o < f; o++) e += r[o], o < f - 1 && (e += ".");
  194. if (s = r[0].length === n.baseLength ? n.maxCorrelationVectorLength : t.maxCorrelationVectorLength, e.length <= s) return e
  195. }
  196. }
  197.  
  198. function c() {
  199. var n = r();
  200. return u(n) ? v(n.length + 2) : !1
  201. }
  202.  
  203. function l() {
  204. return u(r()) ? v(f.length + 1 + (i + 1 + "").length) : !1
  205. }
  206.  
  207. function a(n) {
  208. if (u(n)) {
  209. var t = n.lastIndexOf(".");
  210. f = n.substr(0, t);
  211. i = parseInt(n.substr(t + 1), 10)
  212. } else return awa.logger.logWarning("Cannot set invalid correlation vector value"), null;
  213. return r()
  214. }
  215.  
  216. function w(n) {
  217. return n ? a(n) : (f = b(), i = 0, h())
  218. }
  219.  
  220. function b() {
  221. for (var n = "", t = 0; t < o.baseLength; t++) n += e.charAt(Math.floor(Math.random() * e.length));
  222. return n
  223. }
  224.  
  225. function k() {
  226. if (c()) return f = f.concat(".", i.toString()), i = 0, r()
  227. }
  228.  
  229. function d() {
  230. if (l()) return i = i + 1, r()
  231. }
  232.  
  233. function u(n) {
  234. if (n) {
  235. var t = n.split(".")[0];
  236. if (t) {
  237. if (t.length === 16) return s = 1, g(n);
  238. if (t.length === 22) return s = 2, nt(n)
  239. }
  240. }
  241. }
  242.  
  243. function g(n) {
  244. if (t.validationPattern.test(n) && n.length <= t.maxCorrelationVectorLength) return !0
  245. }
  246.  
  247. function nt(t) {
  248. if (n.validationPattern.test(t) && t.length <= n.maxCorrelationVectorLength) return !0
  249. }
  250.  
  251. function v(i) {
  252. return s === 1 ? i <= t.maxCorrelationVectorLength : i <= n.maxCorrelationVectorLength
  253. }
  254.  
  255. function tt() {
  256. o = t
  257. }
  258.  
  259. function it() {
  260. o = n
  261. }
  262. var f = "",
  263. i = 0,
  264. e = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",
  265. t = {},
  266. n, o, s;
  267. return t.maxCorrelationVectorLength = 63, t.baseLength = 16, t.validationPattern = new RegExp("^[" + e + "]{" + t.baseLength.toString() + "}(.[0-9]+)+$"), n = {}, n.maxCorrelationVectorLength = 127, n.baseLength = 22, n.validationPattern = new RegExp("^[" + e + "]{" + n.baseLength.toString() + "}(.[0-9]+)+$"), o = n, s = 2, {
  268. header: "MS-CV",
  269. tag: "cV",
  270. isInit: y,
  271. canExtend: c,
  272. canIncrement: l,
  273. getValue: h,
  274. setValue: a,
  275. init: w,
  276. extend: k,
  277. increment: d,
  278. incrementExternal: p,
  279. isValid: u,
  280. useCv1: tt,
  281. useCv2: it
  282. }
  283. }();
  284. awa.logger = function() {
  285. function n(n) {
  286. awa.consoleVerbosity >= awa.verbosityLevels.ERROR && console && console.error && console.error("JSLL: " + n)
  287. }
  288.  
  289. function t(n) {
  290. awa.consoleVerbosity >= awa.verbosityLevels.WARNING && console && console.warn && console.warn("JSLL: " + n)
  291. }
  292.  
  293. function i(n) {
  294. awa.consoleVerbosity >= awa.verbosityLevels.INFORMATION && console && console.log && console.log("JSLL: " + n)
  295. }
  296. return {
  297. logError: n,
  298. logWarning: t,
  299. logInformation: i
  300. }
  301. }();
  302. awa.capabilitiesCheck = function() {
  303. return function() {
  304. if (!JSON || !JSON.stringify) return awa.logger.logError("Unable to write event: the global JSON.stringify method does not exist"), awa.isAvailable = !1, !1
  305. }
  306. }();
  307. awa.utils = function() {
  308. function a(n, t) {
  309. var i, r, u;
  310. if (t) try {
  311. return (i = JSON.stringify(t), i === "{}" && n === "timing") ? v() : i
  312. } catch (f) {
  313. return r = '{"error": "ERROR: could not stringify {0} {1}"}', u = typeof t == "string" ? t : "", r.replace("{0}", n).replace("{1}", u)
  314. }
  315. }
  316.  
  317. function v() {
  318. for (var f, i = ["navigationStart", "unloadEventStart", "unloadEventEnd", "redirectStart", "redirectEnd", "fetchStart", "domainLookupStart", "domainLookupEnd", "connectStart", "connectEnd", "secureConnectionStart", "requestStart", "responseStart", "responseEnd", "domLoading", "domInteractive", "domContentLoadedEventStart", "domContentLoadedEventEnd", "domComplete", "loadEventStart", "loadEventEnd"], r = "{", n = 0; n < i.length; n++) f = t[i[n]], u(f) && (r += '"' + i[n] + '":' + f, n < i.length - 1 && (r += ","));
  319. return r + "}"
  320. }
  321.  
  322. function y(n) {
  323. return {
  324. "microsoft.com": "c1.microsoft.com",
  325. "xbox.com": "c.xbox.com",
  326. "live.com": "c.live.com",
  327. "microsoftstore.com": "c.microsoftstore.com",
  328. "msn.com": "c.msn.com",
  329. "windows.com": "c.windows.com"
  330. } [n]
  331. }
  332.  
  333. function p(n, t) {
  334. if (n === "string") return typeof t == "string" || t instanceof String || t instanceof Date;
  335. if (n === "bool") return typeof t == "boolean" || t instanceof Boolean;
  336. if (!(typeof t == "number" || t instanceof Number)) return !1;
  337. if (n === "uint8") {
  338. if (t < 0 || t > 255 || t % 1 != 0) return !1
  339. } else if (n === "uint16") {
  340. if (t < 0 || t > 65535 || t % 1 != 0) return !1
  341. } else if (n === "uint32") {
  342. if (t < 0 || t > 4294967295 || t % 1 != 0) return !1
  343. } else if (n === "uint64") {
  344. if (t < 0 || t > 18446744073709551615 || t % 1 != 0) return !1
  345. } else if (n === "int8") {
  346. if (t < -128 || t > 127 || t % 1 != 0) return !1
  347. } else if (n === "int16") {
  348. if (t < -32768 || t > 32767 || t % 1 != 0) return !1
  349. } else if (n === "int32") {
  350. if (t < -2147483648 || t > 2147483647 || t % 1 != 0) return !1
  351. } else if (n === "int64") {
  352. if (t < -9223372036854775808 || t > 9223372036854775807 || t % 1 != 0) return !1
  353. } else if (n === "float") {
  354. if (t < -3402823e32 || t > 3402823e32) return !1
  355. } else if (n === "double" && (t < -Number.MAX_VALUE || t > Number.MAX_VALUE)) return !1;
  356. return !0
  357. }
  358.  
  359. function w() {
  360. if (n === "") {
  361. var t = s().toLowerCase();
  362. n = t.indexOf("windows phone") !== -1 ? "WindowsPhone" : t.indexOf("win") !== -1 ? "Windows" : t.indexOf("mac") !== -1 ? "MacOS" : t.indexOf("x11") !== -1 ? "Unix" : t.indexOf("android") !== -1 ? "Android" : t.indexOf("linux") !== -1 ? "Linux" : t.indexOf("webos") !== -1 ? "webOS" : t.indexOf("blackberry") !== -1 ? "BlackBerry" : t.indexOf("ipod") !== -1 || t.indexOf("ipad") !== -1 || t.indexOf("iphone") !== -1 ? "iOS" : t.indexOf("symbian") !== -1 ? "Symbian" : t.indexOf("nokia") !== -1 ? "Nokia" : "Unknown"
  363. }
  364. return n
  365. }
  366.  
  367. function b() {
  368. f = window.navigator && window.navigator.userAgent ? window.navigator.userAgent : ""
  369. }
  370.  
  371. function s() {
  372. return f === "" && b(), f
  373. }
  374.  
  375. function k(n, t) {
  376. var i;
  377. return n && n[t] && (i = n[t], delete n[t]), i
  378. }
  379.  
  380. function d(n, t) {
  381. n = r(n);
  382. var i = n.getBoundingClientRect(),
  383. u = g(i, t);
  384. return u > 0 ? !0 : !1
  385. }
  386.  
  387. function g(n, t) {
  388. var i = n.left,
  389. r = n.top,
  390. u = n.right,
  391. f = n.bottom,
  392. e = t.left,
  393. o = t.top,
  394. s = t.right,
  395. h = t.bottom,
  396. c = Math.max(0, Math.min(u, s) - Math.max(i, e)),
  397. l = Math.max(0, Math.min(f, h) - Math.max(r, o));
  398. return c * l
  399. }
  400.  
  401. function r(n) {
  402. return typeof jQuery == "function" && n instanceof jQuery ? n[0] : n
  403. }
  404.  
  405. function i(n) {
  406. var t = String(n);
  407. return t.length === 1 && (t = "0" + t), t
  408. }
  409.  
  410. function nt(n) {
  411. return n.getUTCFullYear() + "-" + i(n.getUTCMonth() + 1) + "-" + i(n.getUTCDate()) + "T" + i(n.getUTCHours()) + ":" + i(n.getUTCMinutes()) + ":" + i(n.getUTCSeconds()) + "." + String((n.getUTCMilliseconds() / 1e3).toFixed(3)).slice(2, 5) + "Z"
  412. }
  413.  
  414. function tt() {
  415. var n;
  416. try {
  417. n = window.performance.getEntries().filter(function(n) {
  418. return n.initiatorType === "script" || n.initiatorType === "link"
  419. })
  420. } catch (t) {}
  421. return n
  422. }
  423.  
  424. function it() {
  425. var n = undefined;
  426. return t.loadEventStart && t.navigationStart && t.loadEventStart > 0 && (n = t.loadEventStart - t.navigationStart), n
  427. }
  428.  
  429. function rt(n) {
  430. return "[" + n + "]"
  431. }
  432.  
  433. function ut(n, t) {
  434. return o = t, c(n, et)
  435. }
  436.  
  437. function ft(n) {
  438. return c(n, ot)
  439. }
  440.  
  441. function c(n, t) {
  442. var i = n;
  443. if (i) {
  444. for (i = r(i); !t(i);)
  445. if (i = i.parentNode, i = r(i), !i || !i.getAttribute) return null;
  446. return i
  447. }
  448. }
  449.  
  450. function et(n) {
  451. var t = n.getAttribute(o);
  452. return u(t) || t === ""
  453. }
  454.  
  455. function ot(n) {
  456. return n.nodeName === "A"
  457. }
  458.  
  459. function st(n) {
  460. var i, t;
  461. return n && (t = n.split(":"), i = t.length > 1 && t[0].toLowerCase() === "js" ? n : l + n), i
  462. }
  463.  
  464. function e(n) {
  465. for (var t in n) u(n[t]) && (JSON.stringify(n[t]) !== "{}" || t === "callback") || delete n[t]
  466. }
  467.  
  468. function u(n) {
  469. return !(n === undefined || n === null || n === "")
  470. }
  471.  
  472. function ht(n, t) {
  473. var r, i;
  474. e(n);
  475. for (r in t) i = t[r], typeof n[i] == "object" ? e(n[i]) : delete n[i]
  476. }
  477. var n = "",
  478. f = "",
  479. t = window.performance ? window.performance.timing : undefined,
  480. l = "JS:",
  481. o = "",
  482. h = function() {
  483. var n = {},
  484. i = !1,
  485. t = 0,
  486. f = arguments.length,
  487. r, u;
  488. for (Object.prototype.toString.call(arguments[0]) === "[object Boolean]" && (i = arguments[0], t++), r = function(t) {
  489. for (var r in t) Object.prototype.hasOwnProperty.call(t, r) && (n[r] = i && Object.prototype.toString.call(t[r]) === "[object Object]" ? h(!0, n[r], t[r]) : t[r])
  490. }; t < f; t++) u = arguments[t], r(u);
  491. return n
  492. };
  493. return {
  494. stringifyField: a,
  495. getMuidHost: y,
  496. isOfCorrectType: p,
  497. getOs: w,
  498. getUserAgent: s,
  499. extractFieldFromObject: k,
  500. isElementTrulyVisible: d,
  501. dateToISOString: nt,
  502. extend: h,
  503. returnDomObjectIfjQuery: r,
  504. findClosestByAttribute: ut,
  505. findClosestAnchor: ft,
  506. getPerformanceData: tt,
  507. getPageLoadTime: it,
  508. removeInvalidElements: e,
  509. removeNonObjectsAndInvalidElements: ht,
  510. bracketIt: rt,
  511. getAppIdWithPrefix: st,
  512. isValueAssigned: u
  513. }
  514. }();
  515. awa.ids = function() {
  516. function c() {
  517. function n() {
  518. return Math.floor(Math.random() * 16).toString(16)
  519. }
  520. var t = "xxxxxxxx-xxxx-4xxx-Rxxx-xxxxxxxxxxxx".replace(/x/g, n);
  521. return t.replace("R", (8 | Math.floor(Math.random() * 3)).toString(16))
  522. }
  523.  
  524. function v(n) {
  525. return n ? n.MUID : u.getCookie("MUID")
  526. }
  527.  
  528. function y() {
  529. return r
  530. }
  531.  
  532. function p() {
  533. return e ? r = c() : e = !0, r
  534. }
  535.  
  536. function l(n) {
  537. return n ? n[t] : u.getCookie(t)
  538. }
  539.  
  540. function w(n) {
  541. var t = "";
  542. return t = n ? n.MUID : u.getCookie("MUID"), t && t.length ? "t:" + t : t
  543. }
  544.  
  545. function b(n) {
  546. if (i = null, n) {
  547. for (var t = 0; t < s.length; t++)
  548. if (s[t] === n.substring(0, 2)) {
  549. i = n;
  550. break
  551. }
  552. i || awa.logger.logWarning("Unsupported app user id: " + n + ". Supported app user ids are: c:, i:, and w:")
  553. }
  554. }
  555.  
  556. function k(n) {
  557. var t;
  558. if (!n || n.length < 4) return !1;
  559. var i = !1,
  560. r = n.substring(0, 3).toString().toUpperCase();
  561. for (t = 0; t < h.length; t++)
  562. if (h[t] + ":" === r && n.length <= 256) {
  563. i = !0;
  564. break
  565. }
  566. return i
  567. }
  568.  
  569. function f(t) {
  570. var r, i;
  571. if (t) {
  572. if (t === n) return;
  573. for (n = null, r = t.split(","), i = 0; i < r.length; i++) k(r[i]) ? n ? n += "," + r[i] : n = r[i] : awa.logger.logWarning("Unsupported flight id format for this app expId: " + r[i])
  574. } else {
  575. n = null;
  576. return
  577. }
  578. }
  579.  
  580. function a() {
  581. return n
  582. }
  583.  
  584. function d(n) {
  585. n && (o = n)
  586. }
  587.  
  588. function g() {
  589. return o
  590. }
  591.  
  592. function nt(n) {
  593. return n ? f(n[t]) : f(l()), a()
  594. }
  595. var r = c(),
  596. u = awa.cookie,
  597. i = null,
  598. n = null,
  599. e = !1,
  600. t = "Treatments",
  601. o, s = ["c:", "i:", "w:"],
  602. h = ["AX", "EX", "SF", "CS", "CF", "CT", "CU", "DC", "DF", "H5", "HL", "WS", "WP"];
  603. return {
  604. getVisitorId: v,
  605. getMuidUserId: w,
  606. setAppUserId: b,
  607. getAppUserId: function() {
  608. return i
  609. },
  610. readExpIdFromCookie: nt,
  611. readExpIdFromCoreData: function(n) {
  612. return f(n), a()
  613. },
  614. getImpressionGuid: y,
  615. getPageViewImpressionGuid: p,
  616. getGroups: l,
  617. setDeviceClass: d,
  618. getDeviceClass: g,
  619. setExpIdCookieName: function(n) {
  620. t = n
  621. },
  622. getExpIdCookieName: function() {
  623. return t
  624. }
  625. }
  626. }();
  627. awa.vortexEvents = function() {
  628. function r() {
  629. n.length > 0 && (awa.writeEvent(n), n = [])
  630. }
  631.  
  632. function f() {
  633. if (document.readyState === "complete")
  634. while (n.length > 0) awa.writeEvent(n.pop());
  635. else awa.ct.onDomReadyDo(awa.firstEventDoneTasks)
  636. }
  637.  
  638. function e(u, f) {
  639. if (f === !0) {
  640. awa.writeEvent(u);
  641. return
  642. }
  643. if (i === "complete") {
  644. awa.writeEvent(u);
  645. return
  646. }
  647. n.push(u);
  648. t > 1 && n.length >= t && r()
  649. }
  650.  
  651. function o(n) {
  652. n.type === "CorsDisallowed" ? awa.ct.captureCorsDisallowed(n) : n.type === "EventTooLong" && awa.ct.captureEventTooLong(n)
  653. }
  654.  
  655. function s(n, t) {
  656. awa.ct.captureClientError({
  657. errorInfo: n,
  658. displayedToUser: t
  659. })
  660. }
  661.  
  662. function h(n) {
  663. var t = {
  664. name: "Ms.Webi.OutgoingRequest",
  665. cV: n.cV,
  666. data: {
  667. baseData: {
  668. operationName: n.currentOperationName,
  669. targetUri: n.requestUri,
  670. latencyMs: n.latencyMs,
  671. serviceErrorCode: n.serviceErrorCode || -1,
  672. succeeded: n.isSuccess,
  673. requestMethod: n.httpMethod,
  674. responseContentType: n.contentType,
  675. protocolStatusCode: n.httpStatusCode,
  676. dependencyOperationName: n.operationName,
  677. dependencyOperationVersion: n.operationVersion,
  678. dependencyName: n.serviceName,
  679. dependencyType: n.serviceType || "WebService",
  680. responseSizeBytes: n.responseSize
  681. },
  682. baseType: "Ms.Qos.OutgoingServiceRequest",
  683. impressionGuid: u.getImpressionGuid(),
  684. message: n.errorMessage,
  685. retryCount: n.retryCount,
  686. customData: n.customData
  687. }
  688. };
  689. awa.ct.captureQos(t)
  690. }
  691. var u = awa.ids,
  692. n = [],
  693. i = "notInit",
  694. t = 0;
  695. return {
  696. sendError: s,
  697. sendApiComplete: h,
  698. sendJsllEvent: o,
  699. SendOrScheduleEvent: e,
  700. batchQueuedEvents: r,
  701. drainQueuedEvents: f,
  702. batchEventsByNumber: function(n) {
  703. t = n
  704. },
  705. addEventToQueue: function(t) {
  706. n.push(t)
  707. },
  708. overrideQueueBehavior: function(n) {
  709. n && n.domReadyState && (i = n.domReadyState)
  710. }
  711. }
  712. }();
  713. awa.errorHandler = function() {
  714. function t(n) {
  715. var t = window.onerror;
  716. window.onerror = function() {
  717. t && t.apply(this, arguments);
  718. n.apply(this, arguments)
  719. }
  720. }
  721.  
  722. function i(n) {
  723. return n.stack ? n.stack.substring(0, 1e3) : ""
  724. }
  725.  
  726. function r() {
  727. if (arguments) {
  728. var t = {
  729. Page: window.location.href,
  730. Script: arguments[1] || "",
  731. Message: arguments[0] || "",
  732. LineNumber: arguments[2] || 0,
  733. StackTrace: arguments[4] ? i(arguments[4]) : "",
  734. UserAgent: awa.utils.getUserAgent() || "",
  735. Platform: window.navigator.platform || ""
  736. };
  737. n.sendError(t, !1)
  738. }
  739. }
  740.  
  741. function u() {
  742. t(r)
  743. }
  744. var n = awa.vortexEvents;
  745. return {
  746. init: u
  747. }
  748. }();
  749. awa.timespanHandler = function() {
  750. function t(t, i) {
  751. var r = (new Date).getTime();
  752. if (i) return r - n[t];
  753. n[t] = r
  754. }
  755. var n = {};
  756. return {
  757. recordTimeSpan: t
  758. }
  759. }(),
  760. function() {
  761. function h(n, r, u) {
  762. if (t(u)) {
  763. var f = "";
  764. return n.length > 0 && (f += "&"), f + (i.isOfCorrectType("number", u) || i.isOfCorrectType("bool", u) ? r + "=" + u : typeof u == "object" ? r + "=" + JSON.stringify(u) : r + "=" + s + encodeURIComponent(u) + s)
  765. }
  766. return ""
  767. }
  768.  
  769. function w(n, u, f) {
  770. if (t(f)) {
  771. var e = "";
  772. return n.length > 1 && (e += ","), e + (i.isOfCorrectType("number", f) || i.isOfCorrectType("bool", f) ? r + u + r + ":" + f : typeof f == "object" ? r + u + r + ":" + JSON.stringify(f) : r + u + r + ":" + r + f + r)
  773. }
  774. return ""
  775. }
  776.  
  777. function c(t, i) {
  778. for (var o, u, s, c, l, a, v, y, r = "", e = 0; e < nt; e++) r += h(r, f[e], t[f[e]]);
  779. o = t.data;
  780. for (u in o)
  781. if (u == "baseData") {
  782. s = o[u];
  783. for (c in s) r += h(r, p + c, s[c])
  784. } else r += h(r, yt + u, o[u]);
  785. l = t.ext;
  786. for (a in l) {
  787. v = l[a];
  788. for (y in v) r += h(r, "ext" + p + a + p + y, v[y])
  789. }
  790. return r += "&" + ot(), n.shareAuthStatus === !0 && n.authMethod == 2 && ht() === !0 && (r += "&" + wt(i)), pt(r), r
  791. }
  792.  
  793. function ut(n) {
  794. for (var r, u, t = "{", i = 0; i < nt; i++) t += w(t, f[i], n[f[i]]);
  795. return r = n.data, r && (t += w(t, "data", r)), u = n.ext, u && (t += w(t, "ext", u)), t += "}", awa.requestBody = t, t
  796. }
  797.  
  798. function pt(n) {
  799. tt = n
  800. }
  801.  
  802. function ft(n, t) {
  803. var i = new Image;
  804. i.onload = function() {
  805. i.width === 1 && u(n, t)
  806. };
  807. i.onerror = function() {
  808. awa.logger.logWarning("Telemetry image beacon not sent properly. Sending through POST.");
  809. k(t)
  810. };
  811. i.src = n
  812. }
  813.  
  814. function et(i) {
  815. var r = "",
  816. e = "",
  817. f = "",
  818. u, o;
  819. if (i.length)
  820. for (f = i[0].ext.javascript.msfpc, u = 0; u < i.length; u++) u > 0 && (r += "\n"), r += ut(i[u]);
  821. else f = i.ext.javascript.msfpc, r = ut(i);
  822. return o = n.endpoint + "/t.req?" + r, e = "?" + ot(), e += t(f) ? "&ext-javascript-msfpc=" + encodeURIComponent(s + f + s) : "", {
  823. qp: e,
  824. requestBody: r,
  825. requestSrc: o
  826. }
  827. }
  828.  
  829. function ot() {
  830. return "$mscomCookies=" + n.mscomCookies
  831. }
  832.  
  833. function wt(n) {
  834. return "$nr=" + t(n.Bounced)
  835. }
  836.  
  837. function k(t) {
  838. var f = et(t),
  839. i, r;
  840. y === "xhr" ? (i = new XMLHttpRequest, i.open("POST", n.endpoint + f.qp, !0), i.withCredentials = !0, i.onload = function() {
  841. i.status === 200 ? u(f.requestSrc, t) : rt(i.statusText, i.status)
  842. }, i.onerror = function() {
  843. rt(i.statusText, i.status)
  844. }, i.send(f.requestBody)) : y === "XDomainRequest" ? (r = new window.XDomainRequest, r.onload = function() {
  845. u(f.requestSrc, t)
  846. }, r.onerror = function() {
  847. vt(r)
  848. }, r.open("POST", n.endpoint), r.send(f.requestBody)) : awa.logger.logError("No event is sent.")
  849. }
  850.  
  851. function st(t) {
  852. var i = et(t);
  853. navigator.sendBeacon(n.endpoint + i.qp, i.requestBody) ? u(i.requestSrc, t) : k(t)
  854. }
  855.  
  856. function bt(n, t, i) {
  857. var f = document.head || document.getElementsByTagName("head")[0] || document.documentElement,
  858. r = document.createElement("script");
  859. r.onload = function() {
  860. u(n, t, !0)
  861. };
  862. r.onerror = function() {
  863. i ? awa.logger.logError("No event is sent.") : (o(), awa.writeEvent(t, !0))
  864. };
  865. r.async = !0;
  866. r.src = n;
  867. f.appendChild(r)
  868. }
  869.  
  870. function ht() {
  871. return n.callback && typeof n.callback.signedinStatus == "function" ? n.callback.signedinStatus() : n.isLoggedIn
  872. }
  873.  
  874. function kt() {
  875. var n = i.getUserAgent(),
  876. t = n.indexOf("MSIE ");
  877. return t > 0 ? parseInt(n.substring(t + 5, n.indexOf(".", t)), 10) < 9 : !1
  878. }
  879. var a, v, b, d, l, g;
  880. awa._schemas = awa._schemas || [];
  881. var i = awa.utils,
  882. t = i.isValueAssigned,
  883. n = {
  884. endpoint: "https://web.vortex.data.microsoft.com/collect/v1",
  885. sendMode: 1,
  886. batchSize: 10,
  887. authMethod: 0,
  888. validateEvents: !0,
  889. sendEvents: !0,
  890. logLevel: awa.verbosityLevels.NONE,
  891. syncMuid: !1,
  892. provisionMsfpc: !0,
  893. useDefaultContentName: !0,
  894. useShortNameForContentBlob: !1,
  895. debounceMs: {
  896. scroll: 600,
  897. resize: 3e3
  898. },
  899. muidDomain: "microsoft.com",
  900. biBlobAttributeTag: "data-m",
  901. isLoggedIn: !1,
  902. shareAuthStatus: !1,
  903. cookiesToCollect: ["Bounced"],
  904. mscomCookies: !1,
  905. userConsentCookieName: "MSCC",
  906. userConsented: undefined,
  907. useBeacon: !0,
  908. urlCollectHash: !1,
  909. urlCollectQuery: !0,
  910. initCv: !1,
  911. enabledFeatures: !0,
  912. ix: {
  913. a: !1,
  914. g: !1
  915. },
  916. autoCapture: {
  917. pageView: !0,
  918. onLoad: !0,
  919. onUnload: !0,
  920. click: !0,
  921. scroll: !1,
  922. resize: !1,
  923. jsError: !0,
  924. addin: !0,
  925. perf: !0,
  926. assets: !1,
  927. lineage: !1,
  928. invalidEvents: !1,
  929. msTags: !0,
  930. awaTags: !0,
  931. eventTooLong: !0,
  932. corsDisallowed: !0
  933. },
  934. callback: {
  935. pageName: null,
  936. pageActionPageTags: null,
  937. pageViewPageTags: null,
  938. contentUpdatePageTags: null,
  939. pageActionContentTags: null,
  940. signedinStatus: null,
  941. jsllEventCallback: null,
  942. pageUnloadTimings: null
  943. },
  944. coreData: {
  945. referrerUri: document.referrer || undefined,
  946. requestUri: "",
  947. appId: window.location.hostname,
  948. pageName: "",
  949. title: "",
  950. pageType: "",
  951. env: "",
  952. product: "",
  953. market: "",
  954. serverImpressionGuid: "",
  955. expId: "",
  956. pageTags: {}
  957. }
  958. };
  959. awa.getConfig = function() {
  960. return n
  961. };
  962. a = [];
  963. for (v in n) typeof n[v] == "object" && a.push(v);
  964. var f = ["ver", "name", "time", "flags", "os", "appId", "cV", "deviceClass"],
  965. nt = f.length,
  966. ct = kt(),
  967. lt = ct ? 2083 : 15e3,
  968. tt = "",
  969. e = !1,
  970. it = t(navigator) && t(navigator.sendBeacon);
  971. awa.experimentIdTag = "expId";
  972. awa.isAvailable = !0;
  973. awa.requestBody = "";
  974. awa.getQueryStringParameters = function() {
  975. return tt
  976. };
  977. Object.freeze && Object.freeze(awa.verbosityLevels);
  978. awa.capabilitiesCheck();
  979. var y = window.XDomainRequest ? "XDomainRequest" : "xhr",
  980. at = function() {
  981. return y === "XDomainRequest" && n.endpoint && n.endpoint.indexOf(window.location.protocol) !== 0 ? (awa.logger.logError("Unable to write event: CORS requests are not supported cross-protocol in this browser"), !1) : !0
  982. },
  983. o = function() {
  984. e = !0;
  985. n.sendMode == 1 && (awa.vortexEvents.overrideQueueBehavior({
  986. domReadyState: "complete"
  987. }), awa.vortexEvents.drainQueuedEvents())
  988. };
  989. awa.firstEventDone = o;
  990. awa.firstEventDoneTasks = function() {
  991. awa.vortexEvents.drainQueuedEvents()
  992. };
  993. var rt = function(n, t) {
  994. awa.logger.logError("Failure sending data to vortex: " + n + "Error: " + t.toString())
  995. },
  996. u = function(t, i, r) {
  997. awa.OnSuccessfulVortexRequest && awa.OnSuccessfulVortexRequest(t);
  998. i && typeof n.callback.jsllEventCallback == "function" && n.callback.jsllEventCallback(i);
  999. e === !1 && (e = !0, n.sendMode !== 1 || r || o());
  1000. awa.logger.logInformation("Success sending data to vortex")
  1001. },
  1002. vt = function(n) {
  1003. awa.logger.logError("Failure sending data to vortex using XDomainRequest. Status code:" + n.status)
  1004. },
  1005. s = "'",
  1006. r = '"',
  1007. p = "-",
  1008. yt = "*";
  1009. for (awa.init = function(t) {
  1010. if (!awa.isInitialized) {
  1011. awa.isInitialized = !0;
  1012. t && (i.removeNonObjectsAndInvalidElements(t, a), n = i.extend(!0, n, t));
  1013. var r = n.sendMode;
  1014. r == 0 && (e = !0, awa.vortexEvents.overrideQueueBehavior({
  1015. domReadyState: "complete"
  1016. }));
  1017. r >= 1 && awa.vortexEvents.overrideQueueBehavior({
  1018. domReadyState: "notComplete"
  1019. });
  1020. r === 2 && awa.vortexEvents.batchEventsByNumber(n.batchSize);
  1021. awa.consoleVerbosity = n.logLevel;
  1022. awa.ct.initialize(n);
  1023. awa.ix.init(n);
  1024. n.initCv && awa.cv.init()
  1025. }
  1026. }, b = function(r, u) {
  1027. var o, s, f, e, h, c;
  1028. awa.translateEventFromIntermediateStructure && (r = awa.translateEventFromIntermediateStructure(r));
  1029. o = r.cV;
  1030. s = r.appId;
  1031. r.ver = "2.1";
  1032. r.cV = t(o) ? o : awa.cv.getValue();
  1033. r.time = t(r.time) ? r.time : i.dateToISOString(new Date);
  1034. r.os = i.getOs();
  1035. r.deviceClass = awa.ids.getDeviceClass() || undefined;
  1036. r.appId = i.getAppIdWithPrefix(s ? s : n.coreData.appId);
  1037. f = window.location.hostname;
  1038. t(f) || (f = window.location.protocol == "file:" ? "local" : f);
  1039. e = {
  1040. ver: "1.1",
  1041. libVer: "4.2.6",
  1042. domain: f,
  1043. msfpc: u.MSFPC,
  1044. userConsent: t(n.userConsented) ? n.userConsented : t(u[n.userConsentCookieName]) ? !0 : !1,
  1045. anid: u.ANON ? u.ANON.slice(0, 34) : undefined
  1046. };
  1047. h = r.serviceName ? r.serviceName : n.coreData.serviceName;
  1048. h && (e.serviceName = h);
  1049. r.ext ? r.ext.javascript = e : r.ext = {
  1050. javascript: e
  1051. };
  1052. c = awa.ids.getMuidUserId(u);
  1053. c && (r.ext.user = {
  1054. localId: c
  1055. });
  1056. var p = n.coreData.env,
  1057. y = r.ext.app ? r.ext.app.env : undefined,
  1058. l = t(y) ? y : p,
  1059. a = n.coreData.expId ? awa.ids.readExpIdFromCoreData(n.coreData.expId) : awa.ids.readExpIdFromCookie(u),
  1060. v = awa.ids.getAppUserId();
  1061. return (t(l) || t(a) || t(v)) && (r.ext.app || (r.ext.app = {}), l && (r.ext.app.env = l), a && (r.ext.app.expId = a), v && (r.ext.app.userId = v)), n.validateEvents && awa.isEventValid && !awa.isEventValid(r) ? undefined : (awa._validateAndTranslateEvent(r), r)
  1062. }, awa.writeEvent = function(i, r) {
  1063. var h, l, v, y, o, a, w;
  1064. if (!awa.isInitialized) {
  1065. awa.vortexEvents.addEventToQueue(i);
  1066. return
  1067. }
  1068. var s = !0,
  1069. f = awa.cookie.getAllCookies(),
  1070. p = t(f.MSFPC);
  1071. if (Object.prototype.toString.call(i) === "[object Array]") {
  1072. for (h = [], l = 0; l < i.length; l++) v = b(i[l], f), v && h.push(v);
  1073. if (h.length != 0) i = h, s = !1;
  1074. else return
  1075. } else if (i = b(i, f), !i) return;
  1076. if (n.sendEvents) {
  1077. if (y = JSON.stringify(i).length + n.endpoint.length, s && y + 7 > lt && (awa.logger.logWarning("event is too large to send using get -- using post instead"), n.autoCapture.eventTooLong && (o = {}, o.eventName = i.name, o.payloadLength = y, awa.ct.captureEventTooLong(o)), s = !1), !s && !at()) {
  1078. n.autoCapture.corsDisallowed && (o = {}, o.eventName = i.name, o.type = "CorsDisallowed", awa.ct.captureCorsDisallowed(o));
  1079. return
  1080. }
  1081. if (s)
  1082. if (e === !1 || n.provisionMsfpc && !p || n.shareAuthStatus === !0) {
  1083. if (p = !0, a = "/t.js", n.shareAuthStatus === !0 && ht() === !0)
  1084. if (n.authMethod === 1) {
  1085. if (w = t(f.Bounced), w) {
  1086. ft(n.endpoint + "/asm.gif?" + c(i, f), i);
  1087. return
  1088. }
  1089. a = "/asm.js"
  1090. } else n.authMethod === 2 && (a = "/asa.js");
  1091. bt(n.endpoint + a + "?" + c(i, f), i, r)
  1092. } else it && n.useBeacon === !0 ? st(i) : ft(n.endpoint + "/t.gif?" + c(i, f), i);
  1093. else it && n.useBeacon === !0 && n.shareAuthStatus === !1 ? st(i) : k(i)
  1094. } else u(c(i, f), i)
  1095. }, awa.sendEventThroughIframe = function(t) {
  1096. var r = document.createElement("iframe");
  1097. r.id = "telframe";
  1098. r.style.display = "none";
  1099. n.authMethod == 1 && (r.addEventListener ? r.addEventListener("load", o) : r.attachEvent("onload", o));
  1100. r.src = t;
  1101. awa.cookie.setCookie("Bounced", i.dateToISOString(new Date), .5 / 24);
  1102. document.body.appendChild(r)
  1103. }, awa._registerSchemas = function(n) {
  1104. for (var t = 0; t < n.length; t++) awa._schemas[n[t].name] = n[t]
  1105. }, awa.console = window.console || {}, awa.console.fallback = awa.console.log || function() {}, d = ["log", "info", "warn", "error", "trace"], l = 0; l < d.length; l++) g = d[l], awa.console[g] || (awa.console[g] = awa.console.fallback);
  1106. awa.extendCoreData = function(t) {
  1107. i.removeInvalidElements(t);
  1108. n.coreData = i.extend(!0, n.coreData, t)
  1109. };
  1110. awa._validateAndTranslateEvent = function(n) {
  1111. return {
  1112. event: n
  1113. }
  1114. }
  1115. }();
  1116. awa._registerSchemas([{
  1117. name: "Ms.Cll.Javascript.CorsDisallowed",
  1118. "Ms.Cll.Javascript.CorsDisallowed": {
  1119. part: "C",
  1120. def: {
  1121. fields: [{
  1122. req: !0,
  1123. name: "eventName",
  1124. type: "string"
  1125. }, {
  1126. name: "pageName",
  1127. type: "string"
  1128. }, {
  1129. name: "market",
  1130. type: "string"
  1131. }, {
  1132. name: "uri",
  1133. type: "string"
  1134. }, {
  1135. name: "impressionGuid",
  1136. type: "string"
  1137. }, {
  1138. name: "serverImpressionGuid",
  1139. type: "string"
  1140. }]
  1141. }
  1142. }
  1143. }, {
  1144. name: "Ms.Cll.Javascript.EventTooLong",
  1145. "Ms.Cll.Javascript.EventTooLong": {
  1146. part: "C",
  1147. def: {
  1148. fields: [{
  1149. req: !0,
  1150. name: "eventName",
  1151. type: "string"
  1152. }, {
  1153. req: !0,
  1154. name: "payloadLength",
  1155. type: "int32"
  1156. }, {
  1157. name: "pageName",
  1158. type: "string"
  1159. }, {
  1160. name: "market",
  1161. type: "string"
  1162. }, {
  1163. name: "uri",
  1164. type: "string"
  1165. }, {
  1166. name: "impressionGuid",
  1167. type: "string"
  1168. }, {
  1169. name: "serverImpressionGuid",
  1170. type: "string"
  1171. }]
  1172. }
  1173. }
  1174. }, {
  1175. name: "Ms.Cll.Javascript.Error",
  1176. "Ms.Telemetry.Error": {
  1177. part: "B",
  1178. def: {
  1179. fields: [{
  1180. name: "errorName",
  1181. type: "string"
  1182. }, {
  1183. name: "errorMessage",
  1184. type: "string"
  1185. }, {
  1186. name: "severity",
  1187. type: "int32"
  1188. }, {
  1189. name: "errorType",
  1190. type: "string"
  1191. }, {
  1192. name: "errorCode",
  1193. type: "int32"
  1194. }, {
  1195. name: "lineNumber",
  1196. type: "uint32"
  1197. }, {
  1198. name: "isDisplayed",
  1199. type: "bool"
  1200. }, {
  1201. name: "errorLocation",
  1202. type: "string"
  1203. }, {
  1204. name: "errorMethod",
  1205. type: "string"
  1206. }]
  1207. }
  1208. },
  1209. "Ms.Cll.Javascript.Error": {
  1210. part: "C",
  1211. def: {
  1212. fields: [{
  1213. req: !0,
  1214. name: "code",
  1215. type: "int32"
  1216. }, {
  1217. req: !0,
  1218. name: "message",
  1219. type: "string"
  1220. }, {
  1221. name: "pageName",
  1222. type: "string"
  1223. }, {
  1224. name: "market",
  1225. type: "string"
  1226. }, {
  1227. name: "uri",
  1228. type: "string"
  1229. }, {
  1230. name: "impressionGuid",
  1231. type: "string"
  1232. }, {
  1233. name: "serverImpressionGuid",
  1234. type: "string"
  1235. }]
  1236. }
  1237. }
  1238. }, {
  1239. name: "Ms.Cll.Javascript.EventDropped",
  1240. "Ms.Cll.Javascript.EventDropped": {
  1241. part: "C",
  1242. def: {
  1243. fields: [{
  1244. req: !0,
  1245. name: "eventName",
  1246. type: "string"
  1247. }, {
  1248. name: "pageName",
  1249. type: "string"
  1250. }, {
  1251. name: "market",
  1252. type: "string"
  1253. }, {
  1254. name: "uri",
  1255. type: "string"
  1256. }, {
  1257. name: "impressionGuid",
  1258. type: "string"
  1259. }, {
  1260. name: "serverImpressionGuid",
  1261. type: "string"
  1262. }, {
  1263. name: "droppedInfo",
  1264. type: "string"
  1265. }]
  1266. }
  1267. }
  1268. }, {
  1269. name: "Ms.Webi.ClientError",
  1270. "Ms.Webi.ClientError": {
  1271. part: "B",
  1272. def: {
  1273. fields: [{
  1274. req: !0,
  1275. name: "errorInfo",
  1276. type: "string"
  1277. }, {
  1278. name: "wasDisplayed",
  1279. type: "bool"
  1280. }, {
  1281. name: "impressionGuid",
  1282. type: "string"
  1283. }, {
  1284. name: "serverImpressionGuid",
  1285. type: "string"
  1286. }, {
  1287. name: "pageName",
  1288. type: "string"
  1289. }, {
  1290. name: "market",
  1291. type: "string"
  1292. }, {
  1293. name: "uri",
  1294. type: "string"
  1295. }, {
  1296. name: "errorName",
  1297. type: "string"
  1298. }, {
  1299. name: "errorMessage",
  1300. type: "string"
  1301. }, {
  1302. name: "severity",
  1303. type: "int32"
  1304. }, {
  1305. name: "errorType",
  1306. type: "string"
  1307. }, {
  1308. name: "errorCode",
  1309. type: "int32"
  1310. }, {
  1311. name: "lineNumber",
  1312. type: "uint32"
  1313. }, {
  1314. name: "isDisplayed",
  1315. type: "bool"
  1316. }, {
  1317. name: "errorLocation",
  1318. type: "string"
  1319. }, {
  1320. name: "errorMethod",
  1321. type: "string"
  1322. }]
  1323. }
  1324. }
  1325. }, {
  1326. name: "Ms.Webi.OutgoingRequest",
  1327. "Ms.Qos.OutgoingServiceRequest": {
  1328. part: "B",
  1329. def: {
  1330. fields: [{
  1331. req: !0,
  1332. name: "operationName",
  1333. type: "string"
  1334. }, {
  1335. name: "targetUri",
  1336. type: "string"
  1337. }, {
  1338. req: !0,
  1339. name: "latencyMs",
  1340. type: "int32"
  1341. }, {
  1342. name: "serviceErrorCode",
  1343. type: "int32"
  1344. }, {
  1345. req: !0,
  1346. name: "succeeded",
  1347. type: "bool"
  1348. }, {
  1349. name: "requestMethod",
  1350. type: "string"
  1351. }, {
  1352. name: "responseContentType",
  1353. type: "string"
  1354. }, {
  1355. name: "protocol",
  1356. type: "string"
  1357. }, {
  1358. name: "protocolStatusCode",
  1359. type: "string"
  1360. }, {
  1361. req: !0,
  1362. name: "dependencyOperationName",
  1363. type: "string"
  1364. }, {
  1365. name: "dependencyOperationVersion",
  1366. type: "string"
  1367. }, {
  1368. req: !0,
  1369. name: "dependencyName",
  1370. type: "string"
  1371. }, {
  1372. name: "dependencyType",
  1373. type: "string"
  1374. }, {
  1375. name: "responseSizeBytes",
  1376. type: "int32"
  1377. }, {
  1378. name: "requestStatus",
  1379. type: "int32"
  1380. }]
  1381. }
  1382. },
  1383. "Ms.Webi.OutgoingRequest": {
  1384. part: "C",
  1385. def: {
  1386. fields: [{
  1387. name: "impressionGuid",
  1388. type: "string"
  1389. }, {
  1390. name: "message",
  1391. type: "string"
  1392. }, {
  1393. name: "retryCount",
  1394. type: "int32"
  1395. }, {
  1396. name: "customData",
  1397. type: "string"
  1398. }, {
  1399. name: "serverImpressionGuid",
  1400. type: "string"
  1401. }, {
  1402. name: "pageName",
  1403. type: "string"
  1404. }, {
  1405. name: "market",
  1406. type: "string"
  1407. }, {
  1408. name: "uri",
  1409. type: "string"
  1410. }]
  1411. }
  1412. }
  1413. }, {
  1414. name: "Ms.Webi.PageView",
  1415. "Ms.Content.PageView": {
  1416. part: "B",
  1417. def: {
  1418. fields: [{
  1419. name: "ver",
  1420. type: "string"
  1421. }, {
  1422. req: !0,
  1423. name: "impressionGuid",
  1424. type: "string"
  1425. }, {
  1426. req: !0,
  1427. name: "pageName",
  1428. type: "string"
  1429. }, {
  1430. name: "uri",
  1431. type: "string"
  1432. }, {
  1433. name: "referrerUri",
  1434. type: "string"
  1435. }, {
  1436. name: "pageType",
  1437. type: "string"
  1438. }, {
  1439. name: "pageTags",
  1440. type: "string"
  1441. }, {
  1442. name: "product",
  1443. type: "string"
  1444. }, {
  1445. name: "screenState",
  1446. type: "int32"
  1447. }, {
  1448. name: "actionType",
  1449. type: "string"
  1450. }, {
  1451. name: "behavior",
  1452. type: "int32"
  1453. }, {
  1454. name: "resHeight",
  1455. type: "int32"
  1456. }, {
  1457. name: "resWidth",
  1458. type: "int32"
  1459. }, {
  1460. name: "vpHeight",
  1461. type: "int32"
  1462. }, {
  1463. name: "vpWidth",
  1464. type: "int32"
  1465. }, {
  1466. name: "market",
  1467. type: "string"
  1468. }]
  1469. }
  1470. },
  1471. "Ms.Webi.PageView": {
  1472. part: "C",
  1473. def: {
  1474. fields: [{
  1475. name: "cookieEnabled",
  1476. type: "bool"
  1477. }, {
  1478. name: "flashInstalled",
  1479. type: "bool"
  1480. }, {
  1481. name: "flashVersion",
  1482. type: "string"
  1483. }, {
  1484. name: "cookies",
  1485. type: "string"
  1486. }, {
  1487. name: "isJs",
  1488. type: "bool"
  1489. }, {
  1490. name: "title",
  1491. type: "string"
  1492. }, {
  1493. name: "isLoggedIn",
  1494. type: "bool"
  1495. }, {
  1496. name: "isManual",
  1497. type: "bool"
  1498. }, {
  1499. name: "serverImpressionGuid",
  1500. type: "string"
  1501. }]
  1502. }
  1503. }
  1504. }, {
  1505. name: "Ms.Webi.ContentUpdate",
  1506. "Ms.Content.ContentUpdate": {
  1507. part: "B",
  1508. def: {
  1509. fields: [{
  1510. name: "ver",
  1511. type: "string"
  1512. }, {
  1513. req: !0,
  1514. name: "impressionGuid",
  1515. type: "string"
  1516. }, {
  1517. req: !0,
  1518. name: "pageName",
  1519. type: "string"
  1520. }, {
  1521. name: "uri",
  1522. type: "string"
  1523. }, {
  1524. name: "pageTags",
  1525. type: "string"
  1526. }, {
  1527. name: "pageHeight",
  1528. type: "int32"
  1529. }, {
  1530. name: "vpHeight",
  1531. type: "int32"
  1532. }, {
  1533. name: "vpWidth",
  1534. type: "int32"
  1535. }, {
  1536. name: "market",
  1537. type: "string"
  1538. }, {
  1539. name: "actionType",
  1540. type: "string"
  1541. }, {
  1542. name: "behavior",
  1543. type: "int32"
  1544. }, {
  1545. name: "vScrollOffset",
  1546. type: "int32"
  1547. }, {
  1548. name: "hScrollOffset",
  1549. type: "int32"
  1550. }, {
  1551. name: "contentVer",
  1552. type: "string"
  1553. }, {
  1554. req: !0,
  1555. name: "content",
  1556. type: "string"
  1557. }]
  1558. }
  1559. },
  1560. "Ms.Webi.ContentUpdate": {
  1561. part: "C",
  1562. def: {
  1563. fields: [{
  1564. name: "pageLoadTime",
  1565. type: "int32"
  1566. }, {
  1567. name: "title",
  1568. type: "string"
  1569. }, {
  1570. name: "isJs",
  1571. type: "bool"
  1572. }, {
  1573. name: "cookieEnabled",
  1574. type: "bool"
  1575. }, {
  1576. name: "isLoggedIn",
  1577. type: "bool"
  1578. }, {
  1579. name: "isManual",
  1580. type: "bool"
  1581. }, {
  1582. name: "isDomComplete",
  1583. type: "bool"
  1584. }, {
  1585. name: "serverImpressionGuid",
  1586. type: "string"
  1587. }, {
  1588. name: "timings",
  1589. type: "string"
  1590. }]
  1591. }
  1592. }
  1593. }, {
  1594. name: "Ms.Webi.PageAction",
  1595. "Ms.Content.PageAction": {
  1596. part: "B",
  1597. def: {
  1598. fields: [{
  1599. name: "ver",
  1600. type: "string"
  1601. }, {
  1602. req: !0,
  1603. name: "impressionGuid",
  1604. type: "string"
  1605. }, {
  1606. req: !0,
  1607. name: "pageName",
  1608. type: "string"
  1609. }, {
  1610. name: "uri",
  1611. type: "string"
  1612. }, {
  1613. name: "destUri",
  1614. type: "string"
  1615. }, {
  1616. name: "market",
  1617. type: "string"
  1618. }, {
  1619. name: "pageType",
  1620. type: "string"
  1621. }, {
  1622. name: "pageTags",
  1623. type: "string"
  1624. }, {
  1625. name: "product",
  1626. type: "string"
  1627. }, {
  1628. name: "screenState",
  1629. type: "int32"
  1630. }, {
  1631. name: "actionType",
  1632. type: "string"
  1633. }, {
  1634. name: "behavior",
  1635. type: "int32"
  1636. }, {
  1637. name: "contentVer",
  1638. type: "string"
  1639. }, {
  1640. name: "content",
  1641. type: "string"
  1642. }]
  1643. }
  1644. },
  1645. "Ms.Webi.PageAction": {
  1646. part: "C",
  1647. def: {
  1648. fields: [{
  1649. name: "timeToAction",
  1650. type: "int32"
  1651. }, {
  1652. name: "cookieEnabled",
  1653. type: "bool"
  1654. }, {
  1655. name: "cookies",
  1656. type: "string"
  1657. }, {
  1658. name: "isJs",
  1659. type: "bool"
  1660. }, {
  1661. name: "title",
  1662. type: "string"
  1663. }, {
  1664. name: "referrerUri",
  1665. type: "string"
  1666. }, {
  1667. name: "isLoggedIn",
  1668. type: "bool"
  1669. }, {
  1670. name: "isManual",
  1671. type: "bool"
  1672. }, {
  1673. name: "serverImpressionGuid",
  1674. type: "string"
  1675. }]
  1676. }
  1677. }
  1678. }, {
  1679. name: "Ms.Webi.PageUnload",
  1680. "Ms.Content.PageUnload": {
  1681. part: "B",
  1682. def: {
  1683. fields: [{
  1684. name: "ver",
  1685. type: "string"
  1686. }, {
  1687. req: !0,
  1688. name: "impressionGuid",
  1689. type: "string"
  1690. }, {
  1691. req: !0,
  1692. name: "pageName",
  1693. type: "string"
  1694. }, {
  1695. name: "uri",
  1696. type: "string"
  1697. }]
  1698. }
  1699. },
  1700. "Ms.Webi.PageUnload": {
  1701. part: "C",
  1702. def: {
  1703. fields: [{
  1704. name: "dwellTime",
  1705. type: "int32"
  1706. }, {
  1707. name: "scrollDepth",
  1708. type: "string"
  1709. }, {
  1710. name: "serverImpressionGuid",
  1711. type: "string"
  1712. }, {
  1713. name: "timings",
  1714. type: "string"
  1715. }, {
  1716. name: "vScrollOffset",
  1717. type: "int32"
  1718. }, {
  1719. name: "pageHeight",
  1720. type: "int32"
  1721. }, {
  1722. name: "vpHeight",
  1723. type: "int32"
  1724. }, {
  1725. name: "pageLoadTime",
  1726. type: "int32"
  1727. }]
  1728. }
  1729. }
  1730. }]);
  1731. awa.isEventValid = function(n) {
  1732. function r(n, t) {
  1733. var i = n.eventName + " - " + n.droppedInfo;
  1734. t ? (c("Dropped event " + i), awa.ct.captureEventDrop(n)) : c("Dropped field from " + i)
  1735. }
  1736.  
  1737. function a(n, t) {
  1738. for (var i = 0; i < n.length; i++)
  1739. if (n[i] == t) return !0;
  1740. return !1
  1741. }
  1742.  
  1743. function l(n, i) {
  1744. for (var e, u, y, f, h = [], l = i.length, o = 0; o < l; o++) {
  1745. e = i[o];
  1746. u = e.name;
  1747. h.push(u);
  1748. var v = e.type,
  1749. c = n[u],
  1750. s = e.req;
  1751. if (awa.utils.isValueAssigned(c)) {
  1752. if (!awa.utils.isOfCorrectType(v, c)) {
  1753. if (r({
  1754. eventName: t,
  1755. droppedInfo: "Incorrect type: " + u
  1756. }, s), s === !0) return !1;
  1757. delete n[u]
  1758. }
  1759. } else if (s === !0) return r({
  1760. eventName: t,
  1761. droppedInfo: "Missing field: " + u
  1762. }, !0), !1
  1763. }
  1764. y = 0;
  1765. for (f in n) f == "baseData" || f == "baseType" || a(h, f) || (r({
  1766. eventName: t,
  1767. droppedInfo: "Unexpected field " + f
  1768. }, !1), delete n[f]);
  1769. return !0
  1770. }
  1771. var c = awa.logger.logWarning,
  1772. e, o, s, h;
  1773. if (n) {
  1774. var t = n.name,
  1775. v = awa._schemas,
  1776. u = n.data.baseType,
  1777. f = t,
  1778. i = v[t];
  1779. if (i) {
  1780. if (u && (e = n.data.baseData, o = i[u] ? i[u].def.fields : undefined, e && o && !l(e, o)) || f && (s = n.data, h = i[f] ? i[f].def.fields : undefined, s && h && !l(s, h))) return !1
  1781. } else return r({
  1782. eventName: t,
  1783. droppedInfo: "Not registered in JSLL"
  1784. }, !0), !1;
  1785. return !0
  1786. }
  1787. return !1
  1788. };
  1789. awa.translateEventFromIntermediateStructure = function(n) {
  1790. var u = n.name,
  1791. t = n.data,
  1792. i = awa.utils,
  1793. e, r, o, f, s, h;
  1794. if (i.isValueAssigned(t[u])) {
  1795. e = i.extend(!0, t[u]);
  1796. delete t[u];
  1797. r = [];
  1798. for (o in t) r.push(o);
  1799. return f = i.extend(!0, t[r[0]]), delete t[r[0]], delete n.content, s = i.extend(!0, JSON.stringify(f) !== "{}" ? {
  1800. baseData: f
  1801. } : {}, e, {
  1802. baseType: r[0]
  1803. }), h = i.extend(!0, n, {
  1804. data: s
  1805. }), h
  1806. }
  1807. return n
  1808. };
  1809. awa.ix = function() {
  1810. function e(n) {
  1811. r = n.ix
  1812. }
  1813.  
  1814. function u() {
  1815. var r = "%010";
  1816. return n(t) || n(i) ? "https://dpm.demdex.net/id?d_orgid=A5FF776A5245AF830A490D44@AdobeOrg&d_cid=" + (n(t) ? "88170%01" + t + r : "") + (n(i) ? (n(t) ? "%01" : "") + "88169%01" + i + r : "") + "&d_ver=2" : undefined
  1817. }
  1818.  
  1819. function f() {
  1820. return n(t) ? "https://ad.doubleclick.net/ddm/activity/src=6952136;type=store0;cat=jsll;u58=" + t + ";dc_lat=;dc_rdid=;tag_for_child_directed_treatment=;ord=1?" : undefined
  1821. }
  1822.  
  1823. function o(e) {
  1824. var o, s, h;
  1825. e && (t = e.mc1, i = e.anid, (n(t) || n(i)) && (r.a && (o = new XMLHttpRequest, o.onreadystatechange = function() {
  1826. o.readyState == 4 && o.status == 200 && awa.ct.captureSwap(JSON.parse(o.responseText))
  1827. }, s = u(), n(s) && (o.open("GET", s, !0), o.setRequestHeader("Accept", "application/json; charset=utf-8"), o.send())), r.g && (s = f(), n(s) && (h = new Image, h.src = s))))
  1828. }
  1829. var r = {},
  1830. t = "",
  1831. i = "",
  1832. n = awa.utils.isValueAssigned;
  1833. return {
  1834. init: e,
  1835. set: o,
  1836. testHook: {
  1837. getAdobeUrl: u,
  1838. getGoogleUrl: f,
  1839. setMc1: function(n) {
  1840. t = n
  1841. },
  1842. setAnid: function(n) {
  1843. i = n
  1844. }
  1845. }
  1846. }
  1847. }();
  1848. awa.ct = function() {
  1849. function ei(t) {
  1850. var s, f, e, o, u;
  1851. awa.isAvailable && (n = t, r = n.autoCapture, i = n.useShortNameForContentBlob === !0 ? g.shortNames : g.longNames, r.pageView && yt({
  1852. isAuto: !0
  1853. }), r.click && (window.addEventListener ? (s = navigator.appVersion.indexOf("MSIE") !== -1 ? "click" : "mousedown", window.addEventListener(s, w, !1), window.addEventListener("keyup", w, !1)) : document.attachEvent && (document.attachEvent("onclick", w), document.attachEvent("keyup", w))), r.jsError && ri.init(), r.scroll && (f = tt(null, function() {
  1854. b({
  1855. isAuto: !0,
  1856. actionType: awa.actionType.SCROLL
  1857. })
  1858. }, n.debounceMs.scroll), window.addEventListener ? window.addEventListener("scroll", f) : window.attachEvent && window.attachEvent("onscroll", f)), r.resize && (e = tt(function() {
  1859. b({
  1860. isAuto: !0,
  1861. actionType: awa.actionType.RESIZE
  1862. })
  1863. }, null, n.debounceMs.resize), window.addEventListener ? window.addEventListener("resize", e) : window.attachEvent && window.attachEvent("onresize", e)), (r.onUnload || n.manualPageUnload) && (o = function() {
  1864. var n = gt();
  1865. l.v = l.v > n.v ? l.v : n.v
  1866. }, window.addEventListener ? window.addEventListener("scroll", o) : window.attachEvent && window.attachEvent("onscroll", o)), r.onUnload && (window.addEventListener ? (window.addEventListener("beforeunload", v), window.addEventListener("unload", v)) : window.attachEvent && (window.attachEvent("onbeforeunload", v), window.attachEvent("onunload", v))), n.sendMode == 2 && (u = awa.vortexEvents.batchQueuedEvents, window.addEventListener ? (window.addEventListener("beforeunload", u), window.addEventListener("unload", u)) : window.attachEvent && (window.attachEvent("onbeforeunload", u), window.attachEvent("onunload", u))), n.authMethod == 2 && n.shareAuthStatus == !0 && n.isLoggedIn == !0 && (window.addEventListener ? window.addEventListener("message", lt) : window.attachEvent && window.attachEvent("onmessage", lt)), (n.syncMuid || n.autoCapture.onLoad) && at(awa.ct.domReadyTasksWrapper))
  1867. }
  1868.  
  1869. function lt(n) {
  1870. n.data == "firstEventDone" && (n.origin == "https://web.vortex.data.microsoft.com" || n.origin == "https://login.microsoftonline.com") && awa.firstEventDone()
  1871. }
  1872.  
  1873. function at(n) {
  1874. /in/.test(document.readyState) ? setTimeout(function() {
  1875. awa.ct.onDomReadyDo(n)
  1876. }, 100) : n.call()
  1877. }
  1878.  
  1879. function oi() {
  1880. n.syncMuid && hi();
  1881. r.onLoad && (document.readyState === "complete" ? it() : window.addEventListener ? window.addEventListener("load", it) : window.attachEvent && window.attachEvent("onload", it))
  1882. }
  1883.  
  1884. function si() {
  1885. awa.ct.domReadyTasks()
  1886. }
  1887.  
  1888. function f() {
  1889. if (n.callback && typeof n.callback.pageName == "function") return n.callback.pageName();
  1890. if (n.coreData.pageName) return n.coreData.pageName;
  1891. var i = window.location.pathname,
  1892. t = i.split("/");
  1893. return t.length > 2 && t[2] !== "" ? t[2] : "Home"
  1894. }
  1895.  
  1896. function nt() {
  1897. return n.coreData.title ? n.coreData.title : document.title.substring(0, 150)
  1898. }
  1899.  
  1900. function hi() {
  1901. var r = t.getMuidHost(n.muidDomain || "microsoft.com"),
  1902. u, i;
  1903. r ? (u = (window.location.protocol || "http:") + "//" + r + "/c.gif?DI=4050&did=1&t=", i = document.createElement("IMG"), i.style.display = "none", i.src = u, i.hidden = "", i["aria-hidden"] = "true", i.role = "presentation") : awa.logger.logWarning("Unable to get a muid host for the configured muidDomain '" + n.muidDomain + "'. Unable to sync muid")
  1904. }
  1905.  
  1906. function ci(n) {
  1907. return "which" in n ? n.which === 3 : "button" in n ? n.button === 2 : void 0
  1908. }
  1909.  
  1910. function li(n) {
  1911. return "which" in n ? n.which === 1 : "button" in n ? n.button === 1 : void 0
  1912. }
  1913.  
  1914. function ai(n) {
  1915. if ("keyCode" in n) return n.keyCode === 13
  1916. }
  1917.  
  1918. function vi(n) {
  1919. if ("keyCode" in n) return n.keyCode === 32
  1920. }
  1921.  
  1922. function w(n) {
  1923. var o = {
  1924. A: !0,
  1925. BUTTON: !0,
  1926. AREA: !0,
  1927. INPUT: !0
  1928. },
  1929. r = n || window.event,
  1930. i = r.srcElement || r.target,
  1931. u = {
  1932. isAuto: !0
  1933. },
  1934. f, e;
  1935. if (ci(r)) u.actionType = p.CLICKRIGHT, f = t.findClosestByAttribute(i, "data-bi-bhvr"), t.isValueAssigned(f) || (u.behavior = awa.behavior.CONTEXTMENU);
  1936. else if (li(r)) u.actionType = p.CLICKLEFT;
  1937. else if (ai(r)) u.actionType = p.KEYBOARDENTER;
  1938. else if (vi(r)) u.actionType = p.KEYBOARDSPACE;
  1939. else return;
  1940. while (i && i.tagName)
  1941. if (o[i.tagName.toUpperCase()]) {
  1942. e = i.tagName.toUpperCase() === "INPUT" ? ct[i.type.toUpperCase()] : !0;
  1943. e && rt(i, u);
  1944. break
  1945. } else {
  1946. i = i.parentElement || i.parentNode;
  1947. continue
  1948. }
  1949. }
  1950.  
  1951. function vt(n) {
  1952. var i = t.findClosestByAttribute(n, fi);
  1953. return t.isValueAssigned(i) ? !0 : !1
  1954. }
  1955.  
  1956. function tt(n, t, i) {
  1957. var r;
  1958. return function() {
  1959. var u = this,
  1960. f = arguments,
  1961. e = function() {
  1962. r = null;
  1963. t && t.apply(u, f)
  1964. },
  1965. o = !r;
  1966. clearTimeout(r);
  1967. r = setTimeout(e, i);
  1968. o && n && n.apply(u, f)
  1969. }
  1970. }
  1971.  
  1972. function yt(i) {
  1973. var v, l, p;
  1974. wi();
  1975. i = i || {};
  1976. var w = k.getAllCookies(),
  1977. r = {},
  1978. c = awa.utils.extend(!0, n.coreData.pageTags);
  1979. c.metaTags = u(r, !0);
  1980. et(c, w);
  1981. typeof n.callback.pageViewPageTags == "function" && (c = t.extend(!0, c, n.callback.pageViewPageTags()));
  1982. v = dt();
  1983. l = {
  1984. name: "Ms.Webi.PageView",
  1985. data: {
  1986. baseData: {
  1987. ver: y,
  1988. impressionGuid: s.getPageViewImpressionGuid(),
  1989. pageName: i.pageName || f(),
  1990. uri: i.uri || h(),
  1991. referrerUri: i.referrerUri || n.coreData.referrerUri,
  1992. market: r.market,
  1993. pageType: r.pageType,
  1994. product: r.product,
  1995. resHeight: v.h,
  1996. resWidth: v.w,
  1997. pageTags: JSON.stringify(t.extend(!0, c, i.pageTags)),
  1998. actionType: i.actionType || r.actionType,
  1999. behavior: a(i.behavior) || (r.behavior ? r.behavior : awa.behavior.UNDEFINED)
  2000. },
  2001. baseType: "Ms.Content.PageView",
  2002. cookieEnabled: st(),
  2003. cookies: bt(w),
  2004. isJs: !0,
  2005. title: i.title || nt(),
  2006. isLoggedIn: n.isLoggedIn,
  2007. serverImpressionGuid: r.serverImpressionGuid,
  2008. isManual: !0
  2009. },
  2010. flags: r.isSensitive ? o : undefined
  2011. };
  2012. n.autoCapture.addin && (p = cr(), l.data.flashInstalled = p.installed || !1, l.data.flashVersion = p.version || "");
  2013. e(l, i, r.env, !0)
  2014. }
  2015.  
  2016. function it() {
  2017. b({
  2018. isAuto: !0,
  2019. isDomComplete: !0
  2020. })
  2021. }
  2022.  
  2023. function b(i) {
  2024. var c, l, b, w, v, p, d;
  2025. i = i || {};
  2026. c = {};
  2027. l = awa.utils.extend(!0, n.coreData.pageTags);
  2028. l.metaTags = u(c);
  2029. b = k.getAllCookies();
  2030. et(l, b);
  2031. i && i.isDomComplete && r.perf === !0 && window.performance && (window.performance.timing && (l.timing = t.stringifyField("timing", window.performance.timing)), r.assets === !0 && (w = t.getPerformanceData(), w && (l.AssetPerformance = t.stringifyField("AssetPerformance", w))));
  2032. typeof n.callback.contentUpdatePageTags == "function" && (l = t.extend(!0, l, n.callback.contentUpdatePageTags()));
  2033. v = ot();
  2034. p = {};
  2035. t.isValueAssigned(i.vScrollOffset) && t.isValueAssigned(i.hScrollOffset) || (p = gt());
  2036. d = {
  2037. name: "Ms.Webi.ContentUpdate",
  2038. data: {
  2039. baseData: {
  2040. ver: y,
  2041. impressionGuid: s.getImpressionGuid(),
  2042. pageName: i.pageName || f(),
  2043. uri: i.uri || h(),
  2044. market: c.market,
  2045. pageTags: JSON.stringify(t.extend(!0, l, i.pageTags)),
  2046. pageHeight: i.pageHeight || document.body.scrollHeight,
  2047. vpHeight: v.h,
  2048. vpWidth: v.w,
  2049. actionType: i.actionType || c.actionType,
  2050. behavior: a(i.behavior) || (c.behavior ? c.behavior : awa.behavior.UNDEFINED),
  2051. vScrollOffset: i.vScrollOffset || p.v,
  2052. hScrollOffset: i.hScrollOffset || p.h,
  2053. contentVer: ht,
  2054. content: pt(i.content) || ut(rr(v))
  2055. },
  2056. baseType: "Ms.Content.ContentUpdate",
  2057. timings: JSON.stringify(i.timings),
  2058. title: i.title || nt(),
  2059. cookieEnabled: st(),
  2060. isJs: !0,
  2061. isManual: !0,
  2062. isDomComplete: !1,
  2063. isLoggedIn: n.isLoggedIn,
  2064. serverImpressionGuid: c.serverImpressionGuid
  2065. },
  2066. flags: c.isSensitive ? o : undefined
  2067. };
  2068. e(d, i, c.env, !1)
  2069. }
  2070.  
  2071. function yi(n) {
  2072. rt(null, n)
  2073. }
  2074.  
  2075. function pi(n, t) {
  2076. rt(n, t)
  2077. }
  2078.  
  2079. function rt(i, c) {
  2080. var v, w, d;
  2081. if (i && vt(i)) {
  2082. awa.logger.logWarning("The element has do-not-track attribute set. PageAction will not be sent.");
  2083. return
  2084. }
  2085. var b = k.getAllCookies(),
  2086. l = {},
  2087. p = awa.utils.extend(!0, n.coreData.pageTags);
  2088. c = c || {};
  2089. v = {};
  2090. i = t.returnDomObjectIfjQuery(i);
  2091. i && (l.targetUri = sr(i), v = ft(i, !0), r.msTags && (v = t.extend(v, hr(i))), v.bhvr && (l.behavior = a(t.extractFieldFromObject(v, "bhvr"))));
  2092. p.metaTags = u(l);
  2093. et(p, b);
  2094. typeof n.callback.pageActionPageTags == "function" && (p = t.extend(!0, p, n.callback.pageActionPageTags(i)));
  2095. w = n.callback.pageActionContentTags;
  2096. d = {
  2097. name: "Ms.Webi.PageAction",
  2098. data: {
  2099. baseData: {
  2100. ver: y,
  2101. impressionGuid: s.getImpressionGuid(),
  2102. pageName: c.pageName || f(),
  2103. uri: c.uri || h(),
  2104. pageTags: t.stringifyField("pageTags", t.extend(!0, p, c.pageTags)),
  2105. contentVer: ht,
  2106. market: l.market,
  2107. destUri: c.targetUri || l.targetUri,
  2108. pageType: l.pageType,
  2109. product: l.product,
  2110. actionType: c.actionType || l.actionType,
  2111. behavior: a(c.behavior) || (l.behavior ? l.behavior : awa.behavior.UNDEFINED),
  2112. content: pt(c.content) || t.bracketIt(JSON.stringify(t.extend(v, typeof w == "function" ? w(i) : {}, c && c.contentTags ? c.contentTags : {})))
  2113. },
  2114. baseType: "Ms.Content.PageAction",
  2115. timeToAction: wt(),
  2116. cookieEnabled: st(),
  2117. cookies: bt(b),
  2118. isJs: !0,
  2119. title: c.title || nt(),
  2120. isLoggedIn: n.isLoggedIn,
  2121. isManual: !0,
  2122. referrerUri: c.referrerUri || n.coreData.referrerUri,
  2123. serverImpressionGuid: l.serverImpressionGuid
  2124. },
  2125. flags: l.isSensitive ? o : undefined
  2126. };
  2127. e(d, c, l.env, !0)
  2128. }
  2129.  
  2130. function wi() {
  2131. awa.timespanHandler.recordTimeSpan("dwellTime", !1);
  2132. l.v = 0;
  2133. d = !1
  2134. }
  2135.  
  2136. function v(t) {
  2137. var i;
  2138. if (!d) {
  2139. d = !0;
  2140. t = t || {};
  2141. i = {};
  2142. u(i);
  2143. var r = n.callback.pageUnloadTimings,
  2144. h = document.body.scrollHeight,
  2145. c = {
  2146. name: "Ms.Webi.PageUnload",
  2147. data: {
  2148. baseData: {
  2149. ver: y,
  2150. impressionGuid: s.getImpressionGuid(),
  2151. pageName: t.pageName || f()
  2152. },
  2153. baseType: "Ms.Content.PageUnload",
  2154. dwellTime: awa.timespanHandler.recordTimeSpan("dwellTime", !0),
  2155. scrollDepth: t.scrollDepth || l.v.toString() + "/" + h.toString(),
  2156. vScrollOffset: t.vScrollOffset || l.v,
  2157. pageHeight: t.pageHeight || h,
  2158. vpHeight: ot().h,
  2159. serverImpressionGuid: i.serverImpressionGuid,
  2160. timings: r ? r() : undefined
  2161. },
  2162. flags: i.isSensitive ? o : undefined
  2163. };
  2164. e(c, t, i.env, !0)
  2165. }
  2166. }
  2167.  
  2168. function bi(n) {
  2169. var t, i;
  2170. n && (t = {}, u(t), i = {
  2171. name: "Ms.Webi.ClientError",
  2172. data: {
  2173. errorInfo: JSON.stringify(n.errorInfo),
  2174. wasDisplayed: n.displayedToUser || !1,
  2175. impressionGuid: s.getImpressionGuid(),
  2176. pageName: n.pageName || f(),
  2177. uri: n.uri || h(),
  2178. market: t.market,
  2179. serverImpressionGuid: t.serverImpressionGuid
  2180. },
  2181. flags: t.isSensitive ? o : undefined
  2182. }, e(i, n, t.env, !1))
  2183. }
  2184.  
  2185. function ki(n) {
  2186. var t, i;
  2187. n && (t = {}, u(t), i = {
  2188. name: "Ms.Cll.Javascript.CorsDisallowed",
  2189. data: {
  2190. eventName: n.eventName,
  2191. pageName: f(),
  2192. uri: n.uri || h(),
  2193. market: t.market,
  2194. impressionGuid: s.getImpressionGuid(),
  2195. serverImpressionGuid: t.serverImpressionGuid
  2196. },
  2197. flags: t.isSensitive ? o : undefined
  2198. }, e(i, n, t.env, !1))
  2199. }
  2200.  
  2201. function di(n) {
  2202. var t, i;
  2203. n && (t = {}, u(t), i = {
  2204. name: "Ms.Cll.Javascript.EventTooLong",
  2205. data: {
  2206. eventName: n.eventName,
  2207. payloadLength: n.payloadLength,
  2208. pageName: n.pageName || f(),
  2209. uri: n.uri || h(),
  2210. market: t.market,
  2211. impressionGuid: s.getImpressionGuid(),
  2212. serverImpressionGuid: t.serverImpressionGuid
  2213. },
  2214. flags: t.isSensitive ? o : undefined
  2215. }, e(i, n, t.env, !1))
  2216. }
  2217.  
  2218. function gi(n) {
  2219. var t, i;
  2220. n && r.invalidEvents && (t = {}, u(t), i = {
  2221. name: "Ms.Cll.Javascript.EventDropped",
  2222. data: {
  2223. eventName: n.eventName,
  2224. droppedInfo: n.droppedInfo,
  2225. pageName: n.pageName || f(),
  2226. uri: n.uri || h(),
  2227. market: t.market,
  2228. impressionGuid: s.getImpressionGuid(),
  2229. serverImpressionGuid: t.serverImpressionGuid
  2230. },
  2231. flags: t.isSensitive ? o : undefined
  2232. }, e(i, n, t.env, !1))
  2233. }
  2234.  
  2235. function nr() {
  2236. return
  2237. }
  2238.  
  2239. function tr(n) {
  2240. var i = {},
  2241. t;
  2242. u(i);
  2243. t = n.data;
  2244. t.serverImpressionGuid = i.serverImpressionGuid;
  2245. t.market = i.market;
  2246. t.pageName = f();
  2247. t.uri = h();
  2248. e(n, undefined, i.env, !1)
  2249. }
  2250.  
  2251. function ir(n, i, r) {
  2252. r.appId && (n.appId = r.appId);
  2253. r.serviceName && (n.serviceName = r.serviceName);
  2254. i.isManual = r.isAuto !== !0 ? !0 : undefined;
  2255. r.isDomComplete && (i.isDomComplete = r.isDomComplete, i.pageLoadTime = r.pageLoadTime || t.getPageLoadTime())
  2256. }
  2257.  
  2258. function pt(n) {
  2259. return t.isValueAssigned(n) ? Object.prototype.toString.call(n) === "[object Array]" ? JSON.stringify(n) : t.bracketIt(JSON.stringify(n)) : undefined
  2260. }
  2261.  
  2262. function e(n, i, r, u) {
  2263. n.time = t.dateToISOString(new Date);
  2264. var f = n.data;
  2265. i && ir(n, f, i);
  2266. r && (n.ext = {
  2267. app: {
  2268. env: r
  2269. }
  2270. });
  2271. ui.SendOrScheduleEvent(n, u)
  2272. }
  2273.  
  2274. function wt() {
  2275. if (window.performance && window.performance.timing) {
  2276. var n = window.performance.timing.navigationStart;
  2277. if (n !== 0) return (new Date).getTime() - n
  2278. }
  2279. return -1
  2280. }
  2281.  
  2282. function rr(n) {
  2283. return {
  2284. top: 0,
  2285. bottom: n.h,
  2286. left: 0,
  2287. right: n.w
  2288. }
  2289. }
  2290.  
  2291. function ut(r) {
  2292. var u = [],
  2293. f = document.querySelectorAll(t.bracketIt(i.areaName) + "," + t.bracketIt(i.slotNumber) + "," + t.bracketIt(n.biBlobAttributeTag));
  2294. return ur(f, u, r), JSON.stringify(u)
  2295. }
  2296.  
  2297. function ur(n, i, r) {
  2298. var u, f, e;
  2299. if (n)
  2300. for (u = 0; u < n.length; u++) f = n[u], vt(f) || t.isElementTrulyVisible(f, r) && (e = ft(f, !1), e && i.push(e))
  2301. }
  2302.  
  2303. function fr(t) {
  2304. for (var e = [], o = [], l = ">", a = n.biBlobAttributeTag, v = "data-module-id", s = undefined, r, u, h, c, f; t && t.getAttribute;) h = t.getAttribute(a) || t[a], c = t.getAttribute(v) || t[v], h ? (f = JSON.parse(h), f && (r = f.cN || f.cT, u = f.id || undefined, (r || u) && (e.push(r), c && (s = r), o.push(u)))) : (r = t.getAttribute(i.contentName) || t.getAttribute(i.contentType), u = t.getAttribute(i.id) || undefined, (r || u) && (e.push(r), c && (s = r), o.push(u))), t = t.parentElement;
  2305. return {
  2306. lineage: e.join(l),
  2307. lineageById: o.join(l),
  2308. containerName: s
  2309. }
  2310. }
  2311.  
  2312. function ft(r, u) {
  2313. var f, c, l, o, a, s, h, e, v;
  2314. if (!r) return "";
  2315. if (f = {}, c = awa.utils.findClosestByAttribute(r, n.biBlobAttributeTag), c && (l = c.getAttribute(n.biBlobAttributeTag)), l) f = JSON.parse(l);
  2316. else
  2317. for (o = t.findClosestByAttribute(r, t.bracketIt(i.id)), o = t.returnDomObjectIfjQuery(r), a = t.findClosestByAttribute(r, i.areaName), s = awa.utils.extend({}, or(a)), f = {
  2318. id: o.getAttribute(i.id) || r.id || "",
  2319. aN: s.areaName,
  2320. sN: o.getAttribute(i.slotNumber),
  2321. cN: o.getAttribute(i.contentName) || er(r) || o.getAttribute("alt") || "",
  2322. cS: o.getAttribute(i.contentSource) || s.contentSource,
  2323. tN: s.templateName,
  2324. pid: o.getAttribute(i.productId),
  2325. cT: o.getAttribute(i.contentType) || s.type
  2326. }, f.id && f.aN && f.sN && f.cN || awa.logger.logWarning("Invalid content blob. Missing required attributes (id, aN/area, sN/slot), cN/contentName. Content information will still be collected!"), i.isShortNames || (f = {
  2327. contentId: f.id,
  2328. areaName: f.aN,
  2329. slotNumber: f.sN,
  2330. contentName: f.cN,
  2331. contentSource: f.cS,
  2332. templateName: f.tN,
  2333. productId: f.pid,
  2334. contentType: f.cT
  2335. }), h = 0; h < o.attributes.length; h++)(e = o.attributes[h], e.name !== i.id && e.name !== i.areaName && e.name !== i.slotNumber && e.name !== i.contentName && e.name !== i.contentSource && e.name !== i.templateName && e.name !== i.productId && e.name !== i.contentType && e.name.indexOf("data-bi-") !== -1) && (v = e.name.replace("data-bi-", ""), f[v] = e.value);
  2336. return awa.utils.removeInvalidElements(f), n.autoCapture.lineage && u && (f = awa.utils.extend(f, fr(r))), f
  2337. }
  2338.  
  2339. function er(t) {
  2340. if (n.useDefaultContentName === !1 || ni(t) || !t.tagName) return "";
  2341. var i;
  2342. switch (t.tagName) {
  2343. case "A":
  2344. i = document.all ? t.innerText || t.innerHTML : t.text || t.innerHTML;
  2345. case "IMG":
  2346. case "AREA":
  2347. i = t.alt;
  2348. default:
  2349. i = t.value || t.name || t.alt || t.innerText || t.id
  2350. }
  2351. return i.substring(0, ii)
  2352. }
  2353.  
  2354. function or(n) {
  2355. return n = t.returnDomObjectIfjQuery(n), n ? {
  2356. areaName: n.getAttribute(i.areaName),
  2357. templateName: n.getAttribute(i.templateName),
  2358. contentSource: n.getAttribute(i.contentSource),
  2359. product: n.getAttribute(i.productId),
  2360. type: n.getAttribute(i.contentType)
  2361. } : void 0
  2362. }
  2363.  
  2364. function bt(t) {
  2365. var o = "",
  2366. s = {},
  2367. i = [],
  2368. f = n.cookiesToCollect,
  2369. u, r, e;
  2370. if (n.shareAuthStatus === !1) i = f;
  2371. else
  2372. for (u = 0; u < f.length; u++) f[u] !== "ANON" && i.push(f[u]);
  2373. try {
  2374. try {
  2375. window.varCustomerCookies && window.varCustomerCookies.length > 0 && (i = i.concat(window.varCustomerCookies))
  2376. } catch (h) {}
  2377. for (r in i) i.hasOwnProperty(r) && (s.hasOwnProperty(i[r]) || (s[i[r]] = "", e = t[i[r]], e && e !== "" && (o += i[r] + "=" + e + ";")))
  2378. } catch (h) {}
  2379. return o
  2380. }
  2381.  
  2382. function sr(n) {
  2383. var t = "",
  2384. i, r;
  2385. switch (n.tagName) {
  2386. case "A":
  2387. case "AREA":
  2388. t = n.href || "";
  2389. break;
  2390. case "IMG":
  2391. t = lr(n);
  2392. break;
  2393. case "INPUT":
  2394. i = n.type;
  2395. r = window.event;
  2396. i && ct[i.toUpperCase()] && (t = n.form ? n.form.action || window.location.pathname : window.location.pathname)
  2397. }
  2398. return t
  2399. }
  2400.  
  2401. function hr(n) {
  2402. for (var r = {}, t, i; n;)
  2403. if (!ni(n)) {
  2404. for (t in n.attributes) t && n.attributes[t] && (i = n.attributes[t].name, i && i.toLowerCase().indexOf("ms.") === 0 && (r[i] = n.attributes[t].value));
  2405. n = n.parentElement || n.parentNode
  2406. }
  2407. return r
  2408. }
  2409.  
  2410. function cr() {
  2411. var n = {},
  2412. i, r, t, u;
  2413. if (navigator.plugins["Shockwave Flash"]) n.installed = !0, i = navigator.plugins["Shockwave Flash"], n.version = i.description.split(" ")[2];
  2414. else if (navigator.userAgent.indexOf("MSIE") !== -1)
  2415. for (r = (new Date).getFullYear() - 1992, t = r; t > 0; t--) try {
  2416. u = new ActiveXObject("ShockwaveFlash.ShockwaveFlash." + t);
  2417. n.installed = !0;
  2418. n.version = t + ".0";
  2419. break
  2420. } catch (f) {}
  2421. return n
  2422. }
  2423.  
  2424. function et(t, i) {
  2425. if (n.enabledFeatures) {
  2426. if (t.enabledFeatures) return;
  2427. var r = i.Features;
  2428. r && (t.enabledFeatures = r)
  2429. }
  2430. }
  2431.  
  2432. function u(i, r) {
  2433. var u = {},
  2434. f = {};
  2435. return n.autoCapture.awaTags && (u = kt("awa-", !0)), i.env = c(u, n.coreData, "env"), i.pageType = c(u, n.coreData, "pageType"), i.product = c(u, n.coreData, "product"), i.market = c(u, n.coreData, "market"), i.serverImpressionGuid = c(u, n.coreData, "serverImpressionGuid"), i.isSensitive = c(u, n.coreData, "isSensitive"), !i.behavior && r && (i.behavior = a(c(u, n.coreData, "behavior"))), n.autoCapture.msTags && (f = kt("ms.", !1), u = t.extend(!0, u, f)), u
  2436. }
  2437.  
  2438. function c(n, i, r) {
  2439. return i[r] ? i[r] : t.extractFieldFromObject(n, r)
  2440. }
  2441.  
  2442. function kt(n, t) {
  2443. for (var f = {}, i, e, o, u = document.querySelectorAll("meta"), r = 0; r < u.length; r++) i = u[r], i.name && (e = i.name.toLowerCase(), e.indexOf(n) === 0 && (o = t ? i.name.replace(n, "") : i.name, f[o] = i.content));
  2444. return f
  2445. }
  2446.  
  2447. function dt() {
  2448. var n = {
  2449. h: 0,
  2450. w: 0
  2451. };
  2452. return window.screen && (n.h = screen.height, n.w = screen.width), n
  2453. }
  2454.  
  2455. function ot() {
  2456. var n = {
  2457. h: 0,
  2458. w: 0
  2459. };
  2460. return window.screen && (n.h = window.innerHeight || document.body.clientHeight || document.documentElement.clientHeight, n.w = window.innerWidth || document.body.clientWidth || document.documentElement.clientWidth), n
  2461. }
  2462.  
  2463. function gt() {
  2464. return {
  2465. h: parseInt(document.body.scrollLeft || document.documentElement.scrollLeft || window.pageXOffset || 0, 10),
  2466. v: parseInt(document.body.scrollTop || document.documentElement.scrollTop || window.pageYOffset || 0, 10)
  2467. }
  2468. }
  2469.  
  2470. function st() {
  2471. return navigator.cookieEnabled
  2472. }
  2473.  
  2474. function lr(n) {
  2475. var r = n,
  2476. i;
  2477. if (r && (i = t.findClosestAnchor(r), i && i.length === 1)) {
  2478. if (i[0].href) return i[0].href;
  2479. if (i[0].src) return i[0].src
  2480. }
  2481. return ""
  2482. }
  2483.  
  2484. function ni(n) {
  2485. if (!n || !n.attributes) return !1;
  2486. try {
  2487. var i = n.getAttribute("data-dc");
  2488. return t.isValueAssigned(i) ? i.toLowerCase() === "pii" ? !0 : !1 : !1
  2489. } catch (r) {
  2490. return !1
  2491. }
  2492. }
  2493.  
  2494. function ti(n) {
  2495. for (var t = 0; t < awa.behaviorKeys.length; t++)
  2496. if (awa.behavior[awa.behaviorKeys[t]] === n) return !0;
  2497. return awa.logger.logWarning("Unsupported behavior: " + n + "."), !1
  2498. }
  2499.  
  2500. function a(n) {
  2501. var i, r;
  2502. if (t.isValueAssigned(n))
  2503. if (i = Number(n), t.isOfCorrectType("uint16", i)) {
  2504. if (ti(i)) return i
  2505. } else if (t.isOfCorrectType("string", n) && (r = awa.behavior[n.toUpperCase()], t.isOfCorrectType("uint16", r))) return r;
  2506. return undefined
  2507. }
  2508.  
  2509. function h() {
  2510. var i = window.location,
  2511. r, u, f, e;
  2512. return n.coreData.requestUri === "" && i ? (r = i.protocol + "//" + i.hostname + (t.isValueAssigned(i.port) ? ":" + i.port : "") + i.pathname, n.urlCollectHash && (r += i.hash), n.urlCollectQuery && (u = i.search, u || (f = window.location.hash, e = f.indexOf("?"), e != -1 && (u = f.slice(e))), r += u), r) : n.coreData.requestUri
  2513. }
  2514. var y = "1.0",
  2515. ht = "2.0",
  2516. ii = 200,
  2517. o = 524288,
  2518. n = {},
  2519. r = {},
  2520. k = awa.cookie,
  2521. ri = awa.errorHandler,
  2522. s = awa.ids,
  2523. ui = awa.vortexEvents,
  2524. t = awa.utils,
  2525. p = awa.actionType,
  2526. l = {
  2527. h: 0,
  2528. v: 0
  2529. },
  2530. fi = "data-bi-dnt",
  2531. d = !1,
  2532. g = {
  2533. longNames: {
  2534. isShortNames: !1,
  2535. id: "data-bi-id",
  2536. areaName: "data-bi-area",
  2537. slotNumber: "data-bi-slot",
  2538. contentName: "data-bi-name",
  2539. contentSource: "data-bi-source",
  2540. templateName: "data-bi-view",
  2541. productId: "data-bi-product",
  2542. contentType: "data-bi-type"
  2543. },
  2544. shortNames: {
  2545. isShortNames: !0,
  2546. id: "data-bi-id",
  2547. areaName: "data-bi-an",
  2548. slotNumber: "data-bi-sn",
  2549. contentName: "data-bi-cn",
  2550. contentSource: "data-bi-cs",
  2551. templateName: "data-bi-tn",
  2552. productId: "data-bi-pid",
  2553. contentType: "data-bi-ct"
  2554. }
  2555. },
  2556. i = g.longNames,
  2557. ct = {
  2558. BUTTON: !0,
  2559. CHECKBOX: !0,
  2560. RADIO: !0,
  2561. RESET: !0,
  2562. SUBMIT: !0
  2563. };
  2564. return {
  2565. initialize: ei,
  2566. capturePageView: yt,
  2567. captureContentUpdate: b,
  2568. capturePageAction: pi,
  2569. captureContentPageAction: yi,
  2570. capturePageUnload: v,
  2571. captureCorsDisallowed: ki,
  2572. captureEventTooLong: di,
  2573. captureClientError: bi,
  2574. captureEventDrop: gi,
  2575. captureQos: tr,
  2576. captureSwap: nr,
  2577. domReadyTasksWrapper: si,
  2578. onDomReadyDo: at,
  2579. domReadyTasks: oi,
  2580. getTimeToClick: wt,
  2581. getPageContent: ut,
  2582. testHook: {
  2583. isBehaviorValid: ti,
  2584. getValidBehavior: a,
  2585. collectMetaTagsAndSetEventProperty: u,
  2586. getElementContent: ft,
  2587. getPageContent: ut,
  2588. debounce: tt,
  2589. getScreenResolution: dt,
  2590. getViewportDimensions: ot
  2591. }
  2592. }
  2593. }();
  2594. awa.service = function() {
  2595. function f(n) {
  2596. typeof n == "function" ? t = n : typeof n == "string" && (t = function() {
  2597. return n
  2598. })
  2599. }
  2600. var i = awa.timespanHandler,
  2601. r = !0,
  2602. u = !1,
  2603. t = null,
  2604. n = function(n) {
  2605. var h, c;
  2606. if (typeof jQuery == "function") {
  2607. r && ($.support.cors = !0);
  2608. var s = n.additionalHeaders || {},
  2609. l = n.body,
  2610. v = l ? JSON.stringify(l) : n.data || undefined,
  2611. y = n.maxRetry || 0,
  2612. o = 0,
  2613. p = $.noop,
  2614. a = n.operationName || n.url,
  2615. w = n.errorFormatter || function(n) {
  2616. return n
  2617. },
  2618. b = awa.ids,
  2619. e, f = {
  2620. url: n.url,
  2621. type: n.method,
  2622. data: v,
  2623. crossDomain: !0,
  2624. headers: {},
  2625. success: n.success,
  2626. timeout: n.timeout,
  2627. error: n.error,
  2628. jsonp: n.jsonp,
  2629. jsonpCallback: n.jsonpCallback,
  2630. cache: n.cache,
  2631. beforeSend: function(t) {
  2632. if (p(t), n.contractVersion && t.setRequestHeader("MS-Contract-Version", n.contractVersion), (!awa.utils.isValueAssigned(n.addCvToRequestHeader) && u || n.addCvToRequestHeader) && awa.cv.isValid(e) && t.setRequestHeader("MS-CV", e), s)
  2633. for (var i in s) t.setRequestHeader(i, s[i])
  2634. }
  2635. };
  2636. return n.dataType && (f.dataType = n.dataType), n.noCacheBusting || (f.cache = !1), n.contentType && (f.contentType = n.contentType), n.accept && (f.headers.Accept = n.accept), n.accepts && (f.accepts = n.accepts), n.async && (f.async = n.async), n.xhrFields && (f.xhrFields = n.xhrFields), n.complete && (f.complete = n.complete), n.contents && (f.contents = n.contents), n.context && (f.context = n.context), n.dataFilter && (f.dataFilter = n.dataFilter), n.global && (f.global = n.global), n.ifModified && (f.ifModified = n.ifModified), n.isLocal && (f.isLocal = n.isLocal), n.mimeType && (f.mimeType = n.mimeType), n.password && (f.password = n.password), awa.utils.isValueAssigned(n.processData) && (f.processData = n.processData), n.scriptCharset && (f.scriptCharset = n.scriptCharset), n.statusCode && (f.statusCode = n.statusCode), n.traditional && (f.traditional = n.traditional), n.type && (f.type = n.type), n.username && (f.username = n.username), n.xhr && (f.xhr = n.xhr), e = awa.cv.isValid(n.cV) ? n.cV : awa.cv.increment(), h = function(i, r, u) {
  2637. var s = i.getResponseHeader("Content-Length"),
  2638. h = {
  2639. name: "Ms.Webi.OutgoingRequest",
  2640. cV: e,
  2641. data: {
  2642. baseData: {
  2643. operationName: n.currentOperationName || window.location.href,
  2644. targetUri: t ? t(f.url) : f.url,
  2645. latencyMs: u,
  2646. serviceErrorCode: !r && i.responseJSON && i.responseJSON.code && !isNaN(i.responseJSON.code) ? i.responseJSON.code : -1,
  2647. succeeded: r,
  2648. requestMethod: f.type,
  2649. responseContentType: f.dataType,
  2650. protocolStatusCode: i.status.toString(),
  2651. dependencyOperationName: a,
  2652. dependencyOperationVersion: n.version && n.version.toString(),
  2653. dependencyName: n.serviceName,
  2654. dependencyType: "WebService",
  2655. responseSizeBytes: s && parseInt(s, 10)
  2656. },
  2657. baseType: "Ms.Qos.OutgoingServiceRequest",
  2658. impressionGuid: b.getImpressionGuid(),
  2659. message: r ? undefined : awa.utils.stringifyField("errorMessage", i.errorThrown),
  2660. retryCount: o,
  2661. customData: n.customDataCallBack && typeof n.customDataCallBack == "function" ? JSON.stringify(n.customDataCallBack(i)) : undefined
  2662. }
  2663. };
  2664. n.QosCallback && typeof n.QosCallback == "function" && n.QosCallback(i, h);
  2665. awa.ct.captureQos(h)
  2666. }, c = function() {
  2667. var t = a + "_Retry_" + o;
  2668. return i.recordTimeSpan(t), $.ajax(f).then(function(n, r, u) {
  2669. var f = i.recordTimeSpan(t, !0);
  2670. return h(u, !0, f), u
  2671. }, function(r, u) {
  2672. var s = i.recordTimeSpan(t, !0),
  2673. f;
  2674. return h(r, !1, s), f = $.Deferred(), y > o && (r.status === 0 || r.status >= 500 && r.status < 600) ? (o++, e = awa.cv.isValid(n.cV) ? awa.cv.incrementExternal(e) : awa.cv.increment(), setTimeout(function() {
  2675. c().done(f.resolve).fail(f.reject)
  2676. }, 50)) : f.reject(r, u), f.promise()
  2677. })
  2678. }, c().then(function(n, t, i) {
  2679. return i
  2680. }, function(t) {
  2681. return w(t, n)
  2682. })
  2683. }
  2684. awa.logger.logError("jQuery is not defined, cannot use service module")
  2685. };
  2686. return {
  2687. post: function(t) {
  2688. return n(awa.utils.extend({}, t, {
  2689. method: "POST"
  2690. }))
  2691. },
  2692. get: function(t) {
  2693. return n(awa.utils.extend({
  2694. maxRetry: 1
  2695. }, t, {
  2696. method: "GET"
  2697. }))
  2698. },
  2699. put: function(t) {
  2700. return n(awa.utils.extend({}, t, {
  2701. method: "PUT"
  2702. }))
  2703. },
  2704. del: function(t) {
  2705. return n(awa.utils.extend({}, t, {
  2706. method: "DELETE"
  2707. }))
  2708. },
  2709. patch: function(t) {
  2710. return n(awa.utils.extend({}, t, {
  2711. method: "PATCH"
  2712. }))
  2713. },
  2714. doNotChangeSupportCors: function() {
  2715. r = !1
  2716. },
  2717. alwaysAddCvToRequestHeader: function() {
  2718. u = !0
  2719. },
  2720. setTargetUriOverride: f
  2721. }
  2722. }();
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement