var delta;!function(c,r,a){if(c.trackJs)c.console&&c.console.warn&&c.console.warn("TrackJS global conflict");else{var t=function(t,e,r,i,n){this.util=t,this.onError=e,this.onFault=r,(this.options=n).enabled&&this.initialize(i)};t.prototype={initialize:function(e){w.forEach(["EventTarget","Node","XMLHttpRequest"],function(t){w.has(e,t+".prototype.addEventListener")&&((t=e[t].prototype).hasOwnProperty("addEventListener")&&(this.wrapAndCatch(t,"addEventListener",1),this.wrapRemoveEventListener(t)))},this),this.wrapAndCatch(e,"setTimeout",0),this.wrapAndCatch(e,"setInterval",0)},wrapAndCatch:function(n,o,s){var a=this,c=n[o];w.isWrappableFunction(c)&&(n[o]=function(){try{var e,r,t=Array.prototype.slice.call(arguments),i=t[s];if(a.options.bindStack)try{throw Error()}catch(t){r=t.stack,e=a.util.isoNow()}if("addEventListener"===o&&(this._trackJsEvt||(this._trackJsEvt=new u),this._trackJsEvt.get(t[0],i,t[2])))return;try{i&&(w.isWrappableFunction(i)||w.isWrappableFunction(i.handleEvent))&&(t[s]=function(){try{if(w.isObject(i))return i.handleEvent.apply(i,arguments);if(w.isFunction(i))return i.apply(this,arguments)}catch(t){throw a.onError("catch",t,{bindTime:e,bindStack:r}),w.wrapError(t)}},"addEventListener"===o&&this._trackJsEvt.add(t[0],i,t[2],t[s]))}catch(t){return c.apply(this,arguments)}return c.apply(this,t)}catch(t){n[o]=c,a.onFault(t)}})},wrapRemoveEventListener:function(t){if(t&&t.removeEventListener&&this.util.hasFunction(t.removeEventListener,"call")){var n=t.removeEventListener;t.removeEventListener=function(t,e,r){if(this._trackJsEvt){var i=this._trackJsEvt.get(t,e,r);if(i)return this._trackJsEvt.remove(t,e,r),n.call(this,t,i,r)}return n.call(this,t,e,r)}}}};var u=function(){this.events=[]};u.prototype={add:function(t,e,r,i){this.indexOf(t,e,r)<=-1&&(r=this.getEventOptions(r),this.events.push([t,e,r.capture,r.once,r.passive,i]))},get:function(t,e,r){return 0<=(t=this.indexOf(t,e,r))?this.events[t][5]:a},getEventOptions:function(t){var e={capture:!1,once:!1,passive:!1};return w.isBoolean(t)?w.defaults({},{capture:t},e):w.defaults({},t,e)},indexOf:function(t,e,r){r=this.getEventOptions(r);for(var i=0;i<this.events.length;i++){var n=this.events[i];if(n[0]===t&&n[1]===e&&n[2]===r.capture&&n[3]===r.once&&n[4]===r.passive)return i}return-1},remove:function(t,e,r){0<=(t=this.indexOf(t,e,r))&&this.events.splice(t,1)}};var e=function(t){this.initCurrent(t)};e.prototype={current:{},initOnly:{cookie:!0,enabled:!0,token:!0,callback:{enabled:!0},console:{enabled:!0},navigation:{enabled:!0},network:{enabled:!0,fetch:!0},visitor:{enabled:!0},window:{enabled:!0,promise:!0}},defaults:{application:"",cookie:!1,dedupe:!0,enabled:!0,errorURL:"https://capture.trackjs.com/capture",errorNoSSLURL:"http://capture.trackjs.com/capture",faultURL:"https://usage.trackjs.com/fault.gif",onError:function(){return!0},serialize:function(e){function r(t){var e="<"+t.tagName.toLowerCase();t=t.attributes||[];for(var r=0;r<t.length;r++)e+=" "+t[r].name+'="'+t[r].value+'"';return e+">"}if(""===e)return"Empty String";if(e===a)return"undefined";if(w.isString(e)||w.isNumber(e)||w.isBoolean(e)||w.isFunction(e))return""+e;if(w.isElement(e))return r(e);var i;try{i=JSON.stringify(e,function(t,e){return e===a?"undefined":w.isNumber(e)&&isNaN(e)?"NaN":w.isError(e)?{name:e.name,message:e.message,stack:e.stack}:w.isElement(e)?r(e):e})}catch(t){for(var n in i="",e)e.hasOwnProperty(n)&&(i+=',"'+n+'":"'+e[n]+'"');i=i?"{"+i.replace(",","")+"}":"Unserializable Object"}return i.replace(/"undefined"/g,"undefined").replace(/"NaN"/g,"NaN")},sessionId:"",token:"",userId:"",version:"",callback:{enabled:!0,bindStack:!1},console:{enabled:!0,display:!0,error:!0,warn:!1,watch:["log","debug","info","warn","error"]},navigation:{enabled:!0},network:{enabled:!0,error:!0,fetch:!0},visitor:{enabled:!0},usageURL:"https://usage.trackjs.com/usage.gif",window:{enabled:!0,promise:!0}},initCurrent:function(t){return this.validate(t,this.defaults,"config",{})?(this.current=w.defaultsDeep({},t,this.defaults),!0):(this.current=w.defaultsDeep({},this.defaults),console.log("init current config",this.current),!1)},setCurrent:function(t){return!!this.validate(t,this.defaults,"config",this.initOnly)&&(this.current=w.defaultsDeep({},t,this.current),!0)},validate:function(t,e,r,i){var n=!0;for(var o in r=r||"",i=i||{},t)if(t.hasOwnProperty(o))if(e.hasOwnProperty(o)){var s=typeof e[o];s!==typeof t[o]?(console.warn(r+"."+o+": property must be type "+s+"."),n=!1):"[object Array]"!==Object.prototype.toString.call(t[o])||this.validateArray(t[o],e[o],r+"."+o)?"[object Object]"===Object.prototype.toString.call(t[o])?n=this.validate(t[o],e[o],r+"."+o,i[o]):i.hasOwnProperty(o)&&(console.warn(r+"."+o+": property cannot be set after load."),n=!1):n=!1}else console.warn(r+"."+o+": property not supported."),n=!1;return n},validateArray:function(t,e,r){var i=!0;r=r||"";for(var n=0;n<t.length;n++)w.contains(e,t[n])||(console.warn(r+"["+n+"]: invalid value: "+t[n]+"."),i=!1);return i}};var i=function(t,e,r,i,n,o,s){this.util=t,this.log=e,this.onError=r,this.onFault=i,this.serialize=n,s.enabled&&(o.console=this.wrapConsoleObject(o.console,s))};i.prototype={wrapConsoleObject:function(t,i){var e,n=(t=t||{}).log||function(){},o=this;for(e=0;e<i.watch.length;e++)!function(e){var r=t[e]||n;t[e]=function(){try{var t=Array.prototype.slice.call(arguments);if(o.log.add("c",{timestamp:o.util.isoNow(),severity:e,message:o.serialize(1===t.length?t[0]:t)}),i[e])if(w.isError(t[0])&&1===t.length)o.onError("console",t[0]);else try{throw Error(o.serialize(1===t.length?t[0]:t))}catch(t){o.onError("console",t)}i.display&&(o.util.hasFunction(r,"apply")?r.apply(this,t):r(t[0]))}catch(t){o.onFault(t)}}}(i.watch[e]);return t},report:function(){return this.log.all("c")}};var n=function(t,e,r,i,n){this.config=t,this.util=e,this.log=r,this.window=i,this.document=n,this.correlationId=this.token=null,this.initialize()};n.prototype={initialize:function(){this.token=this.getCustomerToken(),this.correlationId=this.getCorrelationId()},getCustomerToken:function(){if(this.config.current.token)return this.config.current.token;var t=this.document.getElementsByTagName("script");return t[t.length-1].getAttribute("data-token")},getCorrelationId:function(){var e;if(!this.config.current.cookie)return this.util.uuid();try{(e=this.document.cookie.replace(/(?:(?:^|.*;\s*)TrackJS\s*\=\s*([^;]*).*$)|^.*$/,"$1"))||(e=this.util.uuid(),this.document.cookie="TrackJS="+e+"; expires=Fri, 31 Dec 9999 23:59:59 GMT; path=/")}catch(t){e=this.util.uuid()}return e},report:function(){return{application:this.config.current.application,correlationId:this.correlationId,sessionId:this.config.current.sessionId,token:this.token,userId:this.config.current.userId,version:this.config.current.version}}};var o=function(){this.loadedOn=(new Date).getTime(),this.originalUrl=w.getLocation(),this.referrer=r.referrer};o.prototype={discoverDependencies:function(){var t={};for(var e in c.jQuery&&c.jQuery.fn&&c.jQuery.fn.jquery&&(t.jQuery=c.jQuery.fn.jquery),c.jQuery&&c.jQuery.ui&&c.jQuery.ui.version&&(t.jQueryUI=c.jQuery.ui.version),c.angular&&c.angular.version&&c.angular.version.full&&(t.angular=c.angular.version.full),c)if("_trackJs"!==e&&"_trackJS"!==e&&"_trackjs"!==e&&"webkitStorageInfo"!==e&&"webkitIndexedDB"!==e&&"top"!==e&&"parent"!==e&&"frameElement"!==e)try{if(c[e]){var r=c[e].version||c[e].Version||c[e].VERSION;"string"==typeof r&&(t[e]=r)}}catch(t){}return t},report:function(){return{age:(new Date).getTime()-this.loadedOn,dependencies:this.discoverDependencies(),originalUrl:this.originalUrl,referrer:this.referrer,userAgent:c.navigator.userAgent,viewportHeight:c.document.documentElement.clientHeight,viewportWidth:c.document.documentElement.clientWidth}}};var s=function(t){this.util=t,this.appender=[],this.maxLength=30};s.prototype={all:function(t){var e,r,i=[];for(r=0;r<this.appender.length;r++)(e=this.appender[r])&&e.category===t&&i.push(e.value);return i},clear:function(){this.appender.length=0},truncate:function(){this.appender.length>this.maxLength&&(this.appender=this.appender.slice(Math.max(this.appender.length-this.maxLength,0)))},add:function(t,e){var r=this.util.uuid();return this.appender.push({key:r,category:t,value:e}),this.truncate(),r},get:function(t,e){var r,i;for(i=0;i<this.appender.length;i++)if((r=this.appender[i]).category===t&&r.key===e)return r.value;return!1}};var l=function(t,e){this.log=t,(this.options=e).enabled&&this.watch()};l.prototype={isCompatible:function(t){return t=t||c,!w.has(t,"chrome.app.runtime")&&w.has(t,"addEventListener")&&w.has(t,"history.pushState")},record:function(t,e,r){this.log.add("h",{type:t,from:w.truncate(e,250),to:w.truncate(r,250),on:w.isoNow()})},report:function(){return this.log.all("h")},watch:function(){if(this.isCompatible()){var n=this,o=w.getLocationURL().relative;c.addEventListener("popstate",function(){var t=w.getLocationURL().relative;n.record("popState",o,t),o=t},!0),w.forEach(["pushState","replaceState"],function(i){w.patch(history,i,function(r){return function(){o=w.getLocationURL().relative;var t=r.apply(this,arguments),e=w.getLocationURL().relative;return n.record(i,o,e),o=e,t}})})}}};var h=function(t,e,r,i,n,o){this.util=t,this.log=e,this.onError=r,this.onFault=i,this.window=n,(this.options=o).enabled&&this.initialize(n)};h.prototype={initialize:function(t){t.XMLHttpRequest&&this.util.hasFunction(t.XMLHttpRequest.prototype.open,"apply")&&this.watchNetworkObject(t.XMLHttpRequest),t.XDomainRequest&&this.util.hasFunction(t.XDomainRequest.prototype.open,"apply")&&this.watchNetworkObject(t.XDomainRequest),this.options.fetch&&w.isWrappableFunction(t.fetch)&&this.watchFetch()},watchFetch:function(){var o=this.log,s=this.options,a=this.onError;w.patch(c,"fetch",function(n){return function(t,e){var r=t instanceof Request?t:new Request(t,e),i=n.apply(c,arguments);return i._tjsId=o.add("n",{type:"fetch",startedOn:w.isoNow(),method:r.method,url:r.url}),i.then(function(t){var e=o.get("n",i._tjsId);return e&&(w.defaults(e,{completedOn:w.isoNow(),statusCode:t.status,statusText:t.statusText}),s.error&&400<=t.status&&a("ajax",e.statusCode+" "+e.statusText+": "+e.method+" "+e.url)),t}).catch(function(t){var e=o.get("n",i._tjsId);throw e&&(w.defaults(e,{completedOn:w.isoNow(),statusCode:0,statusText:(t||"").toString()}),s.error&&a("ajax",t)),t})}})},watchNetworkObject:function(t){var e=this,i=t.prototype.open,r=t.prototype.send;return t.prototype.open=function(t,e){var r=(e||"").toString();return r.indexOf("localhost:0")<0&&(this._trackJs={method:t,url:r}),i.apply(this,arguments)},t.prototype.send=function(){try{if(!this._trackJs)return r.apply(this,arguments);this._trackJs.logId=e.log.add("n",{type:"xhr",startedOn:e.util.isoNow(),method:this._trackJs.method,url:this._trackJs.url}),e.listenForNetworkComplete(this)}catch(t){e.onFault(t)}return r.apply(this,arguments)},t},listenForNetworkComplete:function(r){var i=this;i.window.ProgressEvent&&r.addEventListener&&r.addEventListener("readystatechange",function(){4===r.readyState&&i.finalizeNetworkEvent(r)},!0),r.addEventListener?r.addEventListener("load",function(){i.finalizeNetworkEvent(r),i.checkNetworkFault(r)},!0):setTimeout(function(){try{var t=r.onload;r.onload=function(){i.finalizeNetworkEvent(r),i.checkNetworkFault(r),"function"==typeof t&&i.util.hasFunction(t,"apply")&&t.apply(r,arguments)};var e=r.onerror;r.onerror=function(){i.finalizeNetworkEvent(r),i.checkNetworkFault(r),"function"==typeof oldOnError&&e.apply(r,arguments)}}catch(t){i.onFault(t)}},0)},finalizeNetworkEvent:function(t){if(t._trackJs){var e=this.log.get("n",t._trackJs.logId);e&&(e.completedOn=this.util.isoNow(),e.statusCode=1223==t.status?204:t.status,e.statusText=1223==t.status?"No Content":t.statusText)}},checkNetworkFault:function(t){if(this.options.error&&400<=t.status&&1223!=t.status){var e=t._trackJs||{};this.onError("ajax",t.status+" "+t.statusText+": "+e.method+" "+e.url)}},report:function(){return this.log.all("n")}};var d=function(t,e){this.util=t,this.config=e,this.disabled=!1,this.throttleStats={attemptCount:0,throttledCount:0,lastAttempt:(new Date).getTime()},c.JSON&&c.JSON.stringify||(this.disabled=!0)};d.prototype={errorEndpoint:function(t){var e=this.config.current.errorURL;return this.util.testCrossdomainXhr()||-1!==c.location.protocol.indexOf("https")||(e=this.config.current.errorNoSSLURL),e+"?token="+t},usageEndpoint:function(t){return this.appendObjectAsQuery(t,this.config.current.usageURL)},trackerFaultEndpoint:function(t){return this.appendObjectAsQuery(t,this.config.current.faultURL)},appendObjectAsQuery:function(t,e){for(var r in e+="?",t)t.hasOwnProperty(r)&&(e+=encodeURIComponent(r)+"="+encodeURIComponent(t[r])+"&");return e},getCORSRequest:function(t,e){var r;return this.util.testCrossdomainXhr()?((r=new c.XMLHttpRequest).open(t,e),r.setRequestHeader("Content-Type","text/plain")):void 0!==c.XDomainRequest?(r=new c.XDomainRequest).open(t,e):r=null,r},sendTrackerFault:function(t){this.throttle(t)||((new Image).src=this.trackerFaultEndpoint(t))},sendUsage:function(t){(new Image).src=this.usageEndpoint(t)},sendError:function(t,e){var r=this;if(!this.disabled&&!this.throttle(t))try{var i=this.getCORSRequest("POST",this.errorEndpoint(e));i.onreadystatechange=function(){4===i.readyState&&200!==i.status&&(r.disabled=!0)},i._trackJs=a,i.send(c.JSON.stringify(t))}catch(t){throw this.disabled=!0,t}},throttle:function(t){var e=(new Date).getTime();if(this.throttleStats.attemptCount++,this.throttleStats.lastAttempt+1e3>=e){if(this.throttleStats.lastAttempt=e,10<this.throttleStats.attemptCount)return this.throttleStats.throttledCount++,!0}else t.throttled=this.throttleStats.throttledCount,this.throttleStats.attemptCount=0,this.throttleStats.lastAttempt=e,this.throttleStats.throttledCount=0;return!1}};var w=function(){function o(r,t,i,n){return i=i||!1,n=n||0,w.forEach(t,function(e){w.forEach(w.keys(e),function(t){null===e[t]||e[t]===a?r[t]=e[t]:i&&n<10&&"[object Object]"===s(e[t])?(r[t]=r[t]||{},o(r[t],[e[t]],i,n+1)):r.hasOwnProperty(t)||(r[t]=e[t])})}),r}function s(t){return Object.prototype.toString.call(t)}return{addEventListenerSafe:function(t,e,r,i){t.addEventListener?t.addEventListener(e,r,i):t.attachEvent&&t.attachEvent("on"+e,r)},afterDocumentLoad:function(t){var e=!1;"complete"===r.readyState?w.defer(t):(w.addEventListenerSafe(r,"readystatechange",function(){"complete"!==r.readyState||e||(w.defer(t),e=!0)}),setTimeout(function(){e||(w.defer(t),e=!0)},1e4))},bind:function(t,e){return function(){return t.apply(e,Array.prototype.slice.call(arguments))}},contains:function(t,e){var r;for(r=0;r<t.length;r++)if(t[r]===e)return!0;return!1},defaults:function(t){return o(t,Array.prototype.slice.call(arguments,1),!1)},defaultsDeep:function(t){return o(t,Array.prototype.slice.call(arguments,1),!0)},defer:function(t,e){setTimeout(function(){t.apply(e)})},forEach:function(t,e,r){if(t.forEach)return t.forEach(e,r);for(var i=0;i<t.length;)e.call(r,t[i],i,t),i++},getLocation:function(){return c.location.toString().replace(/ /g,"%20")},getLocationURL:function(){return w.parseURL(w.getLocation())},has:function(t,e){for(var r=e.split("."),i=t,n=0;n<r.length;n++){if(!i[r[n]])return!1;i=i[r[n]]}return!0},hasFunction:function(t,e){try{return!!t[e]}catch(t){return!1}},isArray:function(t){return"[object Array]"===s(t)},isBoolean:function(t){return"boolean"==typeof t||w.isObject(t)&&"[object Boolean]"===s(t)},isBrowserIE:function(t){var e=(t=t||c.navigator.userAgent).match(/Trident\/([\d.]+)/);return e&&"7.0"===e[1]?11:!!(t=t.match(/MSIE ([\d.]+)/))&&parseInt(t[1],10)},isBrowserSupported:function(){var t=this.isBrowserIE();return!t||8<=t},isError:function(t){if(!w.isObject(t))return!1;var e=s(t);return"[object Error]"===e||"[object DOMException]"===e||w.isString(t.name)&&w.isString(t.message)},isElement:function(t){return w.isObject(t)&&1===t.nodeType},isFunction:function(t){return!(!t||"function"!=typeof t)},isNumber:function(t){return"number"==typeof t||w.isObject(t)&&"[object Number]"===s(t)},isObject:function(t){return!(!t||"object"!=typeof t)},isString:function(t){return"string"==typeof t||!w.isArray(t)&&w.isObject(t)&&"[object String]"===s(t)},isWrappableFunction:function(t){return this.isFunction(t)&&this.hasFunction(t,"apply")},isoNow:function(){var t=new Date;return t.toISOString?t.toISOString():t.getUTCFullYear()+"-"+this.pad(t.getUTCMonth()+1)+"-"+this.pad(t.getUTCDate())+"T"+this.pad(t.getUTCHours())+":"+this.pad(t.getUTCMinutes())+":"+this.pad(t.getUTCSeconds())+"."+String((t.getUTCMilliseconds()/1e3).toFixed(3)).slice(2,5)+"Z"},keys:function(t){if(!w.isObject(t))return[];var e,r=[];for(e in t)t.hasOwnProperty(e)&&r.push(e);return r},noop:function(){},pad:function(t){return 1===(t=String(t)).length&&(t="0"+t),t},parseURL:function(t){var e=t.match(/^(([^:\/?#]+):)?(\/\/([^\/?#]*))?([^?#]*)(\?([^#]*))?(#(.*))?$/);return e?((e={protocol:e[2],host:e[4],path:e[5],query:e[6],hash:e[8]}).origin=(e.protocol||"")+"://"+(e.host||""),e.relative=(e.path||"")+(e.query||"")+(e.hash||""),e.href=t,e):{}},patch:function(t,e,r){t[e]=r(t[e]||w.noop)},testCrossdomainXhr:function(){return"withCredentials"in new XMLHttpRequest},truncate:function(t,e){if(t.length<=e)return t;var r=t.length-e;return t.substr(0,e)+"...{"+r+"}"},uuid:function(){return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,function(t){var e=16*Math.random()|0;return("x"==t?e:3&e|8).toString(16)})},wrapError:function(t){if(t.innerError)return t;var e=Error("TrackJS Caught: "+(t.message||t));return e.description="TrackJS Caught: "+t.description,e.file=t.file,e.line=t.line||t.lineNumber,e.column=t.column||t.columnNumber,e.stack=t.stack,e.innerError=t,e}}}(),p=function(t,e,r,i,n,o){this.util=t,this.log=e,this.onError=r,this.onFault=i,this.options=o,this.document=n,o.enabled&&this.initialize(n)};p.prototype={initialize:function(t){var e=this.util.bind(this.onDocumentClicked,this),r=this.util.bind(this.onInputChanged,this);t.addEventListener?(t.addEventListener("click",e,!0),t.addEventListener("blur",r,!0)):t.attachEvent&&(t.attachEvent("onclick",e),t.attachEvent("onfocusout",r))},onDocumentClicked:function(t){try{var e=this.getElementFromEvent(t);e&&e.tagName&&(this.isDescribedElement(e,"a")||this.isDescribedElement(e,"button")||this.isDescribedElement(e,"input",["button","submit"])?this.writeVisitorEvent(e,"click"):this.isDescribedElement(e,"input",["checkbox","radio"])&&this.writeVisitorEvent(e,"input",e.value,e.checked))}catch(t){this.onFault(t)}},onInputChanged:function(t){try{var e=this.getElementFromEvent(t);e&&e.tagName&&(this.isDescribedElement(e,"textarea")?this.writeVisitorEvent(e,"input",e.value):this.isDescribedElement(e,"select")&&e.options&&e.options.length?this.onSelectInputChanged(e):this.isDescribedElement(e,"input")&&!this.isDescribedElement(e,"input",["button","submit","hidden","checkbox","radio"])&&this.writeVisitorEvent(e,"input",e.value))}catch(t){this.onFault(t)}},onSelectInputChanged:function(t){if(t.multiple)for(var e=0;e<t.options.length;e++)t.options[e].selected&&this.writeVisitorEvent(t,"input",t.options[e].value);else 0<=t.selectedIndex&&t.options[t.selectedIndex]&&this.writeVisitorEvent(t,"input",t.options[t.selectedIndex].value)},writeVisitorEvent:function(t,e,r,i){"password"===this.getElementType(t)&&(r=a),this.log.add("v",{timestamp:this.util.isoNow(),action:e,element:{tag:t.tagName.toLowerCase(),attributes:this.getElementAttributes(t),value:this.getMetaValue(r,i)}})},getElementFromEvent:function(t){return t.target||r.elementFromPoint(t.clientX,t.clientY)},isDescribedElement:function(t,e,r){if(t.tagName.toLowerCase()!==e.toLowerCase())return!1;if(!r)return!0;for(t=this.getElementType(t),e=0;e<r.length;e++)if(r[e]===t)return!0;return!1},getElementType:function(t){return(t.getAttribute("type")||"").toLowerCase()},getElementAttributes:function(t){for(var e={},r=0;r<t.attributes.length;r++)"value"!==t.attributes[r].name.toLowerCase()&&(e[t.attributes[r].name]=t.attributes[r].value);return e},getMetaValue:function(t,e){return t===a?a:{length:t.length,pattern:this.matchInputPattern(t),checked:e}},matchInputPattern:function(t){return""===t?"empty":/^[a-z0-9!#$%&'*+=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?$/.test(t)?"email":/^(0?[1-9]|[12][0-9]|3[01])[\/\-](0?[1-9]|1[012])[\/\-]\d{4}$/.test(t)||/^(\d{4}[\/\-](0?[1-9]|1[012])[\/\-]0?[1-9]|[12][0-9]|3[01])$/.test(t)?"date":/^(?:(?:\+?1\s*(?:[.-]\s*)?)?(?:\(\s*([2-9]1[02-9]|[2-9][02-8]1|[2-9][02-8][02-9])\s*\)|([2-9]1[02-9]|[2-9][02-8]1|[2-9][02-8][02-9]))\s*(?:[.-]\s*)?)?([2-9]1[02-9]|[2-9][02-9]1|[2-9][02-9]{2})\s*(?:[.-]\s*)?([0-9]{4})(?:\s*(?:#|x\.?|ext\.?|extension)\s*(\d+))?$/.test(t)?"usphone":/^\s*$/.test(t)?"whitespace":/^\d*$/.test(t)?"numeric":/^[a-zA-Z]*$/.test(t)?"alpha":/^[a-zA-Z0-9]*$/.test(t)?"alphanumeric":"characters"},report:function(){return this.log.all("v")}};var f=function(t,e,r,i,n){this.onError=t,this.onFault=e,this.serialize=r,n.enabled&&this.watchWindowErrors(i),n.promise&&this.watchPromiseErrors(i)},g=function(t,e,r,i,n,o,s,a,c,u,l,h,d,p,f,g,v){try{if(this.window=f,this.document=g,this.util=w,this.onError=this.util.bind(this.onError,this),this.onFault=this.util.bind(this.onFault,this),this.serialize=this.util.bind(this.serialize,this),this.config=new i(t),this.transmitter=new l(this.util,this.config),this.log=new a(this.util),this.api=new e(this.config,this.util,this.onError,this.serialize),this.metadata=new c(this.serialize),this.environment=new s,this.customer=new o(this.config,this.util,this.log,this.window,this.document),this.customer.token&&(this.apiConsoleWatcher=new n(this.util,this.log,this.onError,this.onFault,this.serialize,this.api,this.config.defaults.console),this.config.current.enabled&&(this.windowConsoleWatcher=new n(this.util,this.log,this.onError,this.onFault,this.serialize,this.window,this.config.current.console),this.util.isBrowserSupported()))){this.callbackWatcher=new r(this.util,this.onError,this.onFault,this.window,this.config.current.callback),this.visitorWatcher=new h(this.util,this.log,this.onError,this.onFault,this.document,this.config.current.visitor),this.navigationWatcher=new v(this.log,this.config.current.navigation),this.networkWatcher=new u(this.util,this.log,this.onError,this.onFault,this.window,this.config.current.network),this.windowWatcher=new d(this.onError,this.onFault,this.serialize,this.window,this.config.current.window);var m=this;w.afterDocumentLoad(function(){m.transmitter.sendUsage({token:m.customer.token,correlationId:m.customer.correlationId,application:m.config.current.application,x:m.util.uuid()})})}}catch(t){this.onFault(t)}};g.prototype={reveal:function(){return this.customer.token?(this.api.addMetadata=this.metadata.addMetadata,this.api.removeMetadata=this.metadata.removeMetadata,this.api):(this.config.current.enabled&&this.window.console&&this.window.console.warn&&this.window.console.warn("TrackJS could not find a token"),a)},onError:(m=!(f.prototype={watchPromiseErrors:function(t){var r=this;t.addEventListener?t.addEventListener("unhandledrejection",function(e){if((e=(e=e||{}).detail?e.detail.reason:e.reason)!==a){if(!w.isError(e))try{throw Error(r.serialize(e))}catch(t){e=t}r.onError("promise",e)}}):t.onunhandledrejection=function(t){r.onError("promise",t)}},watchWindowErrors:function(t){var s=this;w.patch(t,"onerror",function(o){return function(t,e,r,i,n){try{(n=n||{}).message=n.message||s.serialize(t),n.name=n.name||"Error",n.line=n.line||parseInt(r,10)||null,n.column=n.column||parseInt(i,10)||null,"[object Event]"!==Object.prototype.toString.call(t)||e?n.file=n.file||s.serialize(e):n.file=(t.target||{}).src,s.onError("window",n)}catch(t){s.onFault(t)}o.apply(this,arguments)}})}}),function(t,e,r){if(w.isBrowserSupported()&&this.config.current.enabled)try{if(r=r||{bindStack:null,bindTime:null,force:!1},e&&w.isError(e)||(e={name:"Error",message:this.serialize(e,r.force)}),-1===e.message.indexOf("TrackJS Caught"))if(m&&-1!==e.message.indexOf("Script error"))m=!1;else{var i=w.defaultsDeep({},{bindStack:r.bindStack,bindTime:r.bindTime,column:e.column||e.columnNumber,console:this.windowConsoleWatcher.report(),customer:this.customer.report(),entry:t,environment:this.environment.report(),file:e.file||e.fileName,line:e.line||e.lineNumber,message:e.message,metadata:this.metadata.report(),nav:this.navigationWatcher.report(),network:this.networkWatcher.report(),url:(c.location||"").toString(),stack:e.stack,timestamp:this.util.isoNow(),visitor:this.visitorWatcher.report(),version:"2.9.0"});if(!r.force)try{if(!this.config.current.onError(i,e))return}catch(t){i.console.push({timestamp:this.util.isoNow(),severity:"error",message:t.message});var n=this;setTimeout(function(){n.onError("catch",t,{force:!0})},0)}if(this.config.current.dedupe){var o=(i.message+i.stack).substr(0,1e4);if(o===v)return;v=o}this.log.clear(),setTimeout(function(){m=!1}),m=!0,this.transmitter.sendError(i,this.customer.token)}}catch(t){this.onFault(t)}}),onFault:function(t){var e=this.transmitter||new d;t=t||{},t={token:this.customer.token,file:t.file||t.fileName,msg:t.message||"unknown",stack:(t.stack||"unknown").substr(0,500),url:this.window.location,v:"2.9.0",h:"6b62b7dad17330436de3e4fc73eff316ba7006ad",x:this.util.uuid()},e.sendTrackerFault(t)},serialize:function(t,e){if(this.config.current.serialize&&!e)try{return this.config.current.serialize(t)}catch(t){this.onError("catch",t,{force:!0})}return this.config.defaults.serialize(t)}},t=new g(c._trackJs||c._trackJS||c._trackjs||{},function(e,i,n,r){return{attempt:function(t,e){try{var r=Array.prototype.slice.call(arguments,2);return t.apply(e||this,r)}catch(t){throw n("catch",t),i.wrapError(t)}},configure:function(t){return e.setCurrent(t)},track:function(e){var t=r(e);if(!(e=e||{}).stack)try{throw Error(t)}catch(t){e=t}n("direct",e)},watch:function(e,r){return function(){try{var t=Array.prototype.slice.call(arguments,0);return e.apply(r||this,t)}catch(t){throw n("catch",t),i.wrapError(t)}}},watchAll:function(t){var r,e=Array.prototype.slice.call(arguments,1);for(r in t)"function"==typeof t[r]&&(i.contains(e,r)||function(){var e=t[r];t[r]=function(){try{var t=Array.prototype.slice.call(arguments,0);return e.apply(this,t)}catch(t){throw n("catch",t),i.wrapError(t)}}}());return t},hash:"6b62b7dad17330436de3e4fc73eff316ba7006ad",version:"2.9.0"}},t,e,i,n,o,s,function(r){var i={};return{addMetadata:function(t,e){i[t]=e},removeMetadata:function(t){delete i[t]},report:function(){var t,e=[];for(t in i)i.hasOwnProperty(t)&&e.push({key:t,value:r(i[t])});return e},store:i}},h,d,p,f,u,c,r,l),c.trackJs=t.reveal()}var v,m}(window,document),(delta=window.delta||{}).utils=window.delta.utils||{},(delta=window.delta||{}).utils=window.delta.utils||{},delta.utils.logger={config:void 0!==delta.loggerConfigValues?delta.loggerConfigValues:{useConsole:!0,enableTrackJS:!0,suppressedHosts:["www.delta.com"],metadataTypeError:"Metadata not updated. Metadata actions must supply strings as arguments.",configInvalidPropertyError:"{{}} is not a valid config option after initialization.",configInvalidArgumentError:"Invalid arguments passed to delta.utils.logger.configure().",unspecifiedAjaxErrorMessage:"Ajax Error occurred",unspecifiedErrorMessage:"Unspecified error supplied to delta.utils.logger.track",unspecifiedErrorMessageConsoleWarning:"delta.utils.logger -- error successfully tracked but with unspecified content."},useTrackJS:!!window.trackJs,validMethods:["info","log","warn","error","debug"],validConfigProperties:["application","userId","sessionId","version","onError","serialize"],trackJS_methods:["log","warn","debug","error"],_marTechApplicationHelper:function(t,e){var r,i;void 0!==window._trackJs&&""!==_trackJs.application&&void 0!==_trackJs.application&&(r=_trackJs.application,i=_trackJs.application.split("-")[0]+"-martech",trackJs.configure({application:i}),"logMessage"===t?this.logMessage(e[0],e[1]):"track"===t?this.track(e):this.logMessage("Invalid function supplied to _marTechApplicationHelper method","warn"),trackJs.configure({application:r}))},addMetadata:function(t){if(this.useTrackJS)if("object"==typeof t)for(var e in t)trackJs.addMetadata(e,t[e]);else"string"==typeof t&&"string"==typeof arguments[1]&&1<arguments.length&&arguments.length<3&&trackJs.addMetadata(t,arguments[1])},ajaxError:function(t,e,r){var i,n=void 0!==t.status?t.status:void 0,o=void 0!==t.statusText?t.statusText:void 0,s=void 0!==t.responseText?t.responseText:void 0;if(void 0!==r)if(void 0!==r.message)i=this.config.unspecifiedAjaxErrorMessage+": "+r.message;else if(void 0!==r.stack){var a=r.stack.toString();i=this.config.unspecifiedAjaxErrorMessage+": "+a}else i=this.config.unspecifiedAjaxErrorMessage;else i=void 0!==o?void 0!==n&&400<=n?this.config.unspecifiedAjaxErrorMessage+": "+n+" "+o:this.config.unspecifiedAjaxErrorMessage+": "+o:void 0!==r?this.config.unspecifiedAjaxErrorMessage+": "+r:void 0!==e?this.config.unspecifiedAjaxErrorMessage+": "+e:void 0!==s?this.config.unspecifiedAjaxErrorMessage+": "+s:this.config.unspecifiedAjaxErrorMessage;this.logMessage(i,"error"),void 0!==r?this.track(r):this.track(i)},configure:function(t){var e={};if(this.useTrackJS)if("object"==typeof t){for(var r in t){var i=t[r];if(-1!==this.validConfigProperties.indexOf(r)&&"object"!=typeof i)"number"==typeof i&&(i=i.toString()),e[r]=i;else{var n=this.config.configInvalidPropertyError.replace("{{}}",r);this.track(n)}}trackJs.configure(e)}else"string"==typeof t&&"string"==typeof arguments[1]&&1<arguments.length&&arguments.length<3?-1!==delta.utils.logger.validConfigProperties.indexOf(t)&&(e[t]=arguments[1],trackJs.configure(e)):this.track(this.configInvalidArgumentError)},logMarTechMessage:function(t,e){this._marTechApplicationHelper("logMessage",[t,e])},logMessage:function(t,e){if(void 0!==delta.utils.logger.config.useConsole&&!0===delta.utils.logger.config.useConsole)if(window.console&&window.console.log)void 0!==e&&-1!==delta.utils.logger.validMethods.indexOf(e)?console[e](t):console.log(t);else{var r=-1===this.config.suppressedHosts.indexOf(window.location.hostname);-1!==delta.utils.logger.validMethods.indexOf(e)?(r&&alert("Runtime "+e.toUpperCase()+": "+t),this.useTrackJS&&-1!==delta.utils.logger.trackJS_methods.indexOf(e)&&trackJs.console[e](t)):(r&&alert("Runtime Log: "+t),this.useTrackJS&&trackJs.console.log(t))}else this.useTrackJS&&(-1!==delta.utils.logger.trackJS_methods.indexOf(e)?trackJs.console[e](t):trackJs.console.log(t))},removeMetadata:function(t){this.useTrackJS&&trackJs.removeMetadata(t)},trackMarTech:function(t){this._marTechApplicationHelper("track",t)},track:function(t){var e=!1;void 0===t&&(t=this.config.unspecifiedErrorMessage,e=!0),this.useTrackJS?(trackJs.track(t),e&&this.logMessage(this.config.unspecifiedErrorMessageConsoleWarning,"warn")):window.console&&window.console.error&&console.error(t)}};