UNPKG

lzjtest0.9.0

Version:

Client-side JavaScript exception and tracing library for Apache SkyWalking APM

2 lines 152 kB
(()=>{"use strict";function t(){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)}))}var e,r,n;!function(t){t.AJAX_ERROR="ajax",t.RESOURCE_ERROR="resource",t.VUE_ERROR="vue",t.PROMISE_ERROR="promise",t.JS_ERROR="js",t.UNKNOWN_ERROR="unknown"}(e||(e={})),function(t){t.INFO="Info",t.WARNING="Warning",t.ERROR="Error"}(r||(r={})),function(t){t.ERROR="/browser/errorLog",t.ERRORS="/browser/errorLogs",t.PERF="/browser/perfData",t.SEGMENT="/v3/segment",t.SEGMENTS="/v3/segments"}(n||(n={}));var o,i="Http",a="Exit";!function(t){t[t.OPENED=1]="OPENED",t[t.DONE=4]="DONE"}(o||(o={}));var s=10001;const c=function(){function t(t,e){this.url="","ERROR"===t?this.url=e+n.ERROR:"ERRORS"===t?this.url=e+n.ERRORS:"SEGMENT"===t?this.url=e+n.SEGMENT:"SEGMENTS"===t?this.url=e+n.SEGMENTS:"PERF"===t&&(this.url=e+n.PERF)}return t.prototype.sendByFetch=function(t){if(delete t.collector,this.url){var e=new Request(this.url,{method:"POST",body:JSON.stringify(t)});fetch(e).then((function(t){if(t.status>=400||0===t.status)throw new Error("Something went wrong on api server!")})).catch((function(t){console.error(t)}))}},t.prototype.sendByXhr=function(t){if(this.url){var e=new XMLHttpRequest;e.open("post",this.url,!0),e.setRequestHeader("Content-Type","application/json"),e.withCredentials=!0,e.onreadystatechange=function(){4===e.readyState&&e.status<400&&console.log("Report successfully")},e.send(JSON.stringify(t))}},t.prototype.sendByBeacon=function(t){this.url&&("function"!=typeof navigator.sendBeacon?this.sendByXhr(t):navigator.sendBeacon(this.url,JSON.stringify(t)))},t}(),u=new(function(){function t(){this.queues=[],this.collector=""}return t.prototype.addTask=function(t,e){this.queues.push(t),this.collector=e},t.prototype.fireTasks=function(){this.queues&&this.queues.length&&(new c("ERRORS",this.collector).sendByXhr(this.queues),this.queues=[])},t.prototype.finallyFireTasks=function(){var t=this;window.addEventListener("beforeunload",(function(){t.queues.length&&new c("ERRORS",t.collector).sendByBeacon(t.queues)}))},t}());var l,p={};const f=function(){function t(){this.logInfo={uniqueId:"",service:"",serviceVersion:"",pagePath:"",category:e.UNKNOWN_ERROR,grade:r.INFO,errorUrl:"",line:0,col:0,message:"",firstReportedError:!1,collector:""}}return t.prototype.traceInfo=function(t){var r;this.logInfo=t||this.logInfo;var n=[e.AJAX_ERROR,e.RESOURCE_ERROR,e.UNKNOWN_ERROR];p[location.href]||n.includes(this.logInfo.category)||((r={})[location.href]=!0,p=r,this.logInfo.firstReportedError=!0);var o=this.logInfo.collector;delete this.logInfo.collector,u.addTask(this.logInfo,o),u.finallyFireTasks(),l||(l=setInterval((function(){u.fireTasks()}),6e4))},t}();var h,g=(h=function(t,e){return(h=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var r in e)e.hasOwnProperty(r)&&(t[r]=e[r])})(t,e)},function(t,e){function r(){this.constructor=t}h(t,e),t.prototype=null===e?Object.create(e):(r.prototype=e.prototype,new r)}),d=function(){return(d=Object.assign||function(t){for(var e,r=1,n=arguments.length;r<n;r++)for(var o in e=arguments[r])Object.prototype.hasOwnProperty.call(e,o)&&(t[o]=e[o]);return t}).apply(this,arguments)};const v=new(function(n){function o(){var t=null!==n&&n.apply(this,arguments)||this;return t.infoOpt={service:"",pagePath:"",serviceVersion:""},t}return g(o,n),o.prototype.handleErrors=function(n){var o=this;this.infoOpt=n,window.onerror=function(i,a,s,c,u){o.logInfo=d(d({},o.infoOpt),{uniqueId:t(),category:e.JS_ERROR,grade:r.ERROR,errorUrl:a,line:s,col:c,message:i,collector:n.collector,stack:u?u.stack:""}),o.traceInfo()}},o.prototype.setOptions=function(t){this.infoOpt=t},o}(f));var y=function(){var t=function(e,r){return(t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var r in e)e.hasOwnProperty(r)&&(t[r]=e[r])})(e,r)};return function(e,r){function n(){this.constructor=e}t(e,r),e.prototype=null===r?Object.create(r):(n.prototype=r.prototype,new n)}}(),m=function(){return(m=Object.assign||function(t){for(var e,r=1,n=arguments.length;r<n;r++)for(var o in e=arguments[r])Object.prototype.hasOwnProperty.call(e,o)&&(t[o]=e[o]);return t}).apply(this,arguments)};const O=new(function(n){function o(){var t=null!==n&&n.apply(this,arguments)||this;return t.infoOpt={service:"",pagePath:"",serviceVersion:""},t}return y(o,n),o.prototype.handleErrors=function(n){var o=this;this.infoOpt=n,window.addEventListener("unhandledrejection",(function(i){try{var a="";if(!i||!i.reason)return;i.reason.config&&i.reason.config.url&&(a=i.reason.config.url),o.logInfo=m(m({},o.infoOpt),{uniqueId:t(),category:e.PROMISE_ERROR,grade:r.ERROR,errorUrl:a||location.href,message:i.reason.message,stack:i.reason.stack,collector:n.collector}),o.traceInfo()}catch(t){console.log(t)}}))},o.prototype.setOptions=function(t){this.infoOpt=t},o}(f));var E=function(){var t=function(e,r){return(t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var r in e)e.hasOwnProperty(r)&&(t[r]=e[r])})(e,r)};return function(e,r){function n(){this.constructor=e}t(e,r),e.prototype=null===r?Object.create(r):(n.prototype=r.prototype,new n)}}(),R=function(){return(R=Object.assign||function(t){for(var e,r=1,n=arguments.length;r<n;r++)for(var o in e=arguments[r])Object.prototype.hasOwnProperty.call(e,o)&&(t[o]=e[o]);return t}).apply(this,arguments)};const w=new(function(o){function i(){var t=null!==o&&o.apply(this,arguments)||this;return t.infoOpt={service:"",pagePath:"",serviceVersion:""},t}return E(i,o),i.prototype.handleError=function(o){var i=this;window.XMLHttpRequest&&(this.infoOpt=o,window.addEventListener("xhrReadyStateChange",(function(a){var s=a.detail;4===s.readyState&&s.getRequestConfig[1]!==o.collector+n.ERRORS&&(0!==s.status&&s.status<400||(i.logInfo=R(R({},i.infoOpt),{uniqueId:t(),category:e.AJAX_ERROR,grade:r.ERROR,errorUrl:s.getRequestConfig[1],message:"status: "+s.status+"; statusText: "+s.statusText+";",collector:o.collector,stack:s.responseText}),i.traceInfo()))})))},i.prototype.setOptions=function(t){this.infoOpt=t},i}(f));var S=function(){var t=function(e,r){return(t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var r in e)e.hasOwnProperty(r)&&(t[r]=e[r])})(e,r)};return function(e,r){function n(){this.constructor=e}t(e,r),e.prototype=null===r?Object.create(r):(n.prototype=r.prototype,new n)}}(),b=function(){return(b=Object.assign||function(t){for(var e,r=1,n=arguments.length;r<n;r++)for(var o in e=arguments[r])Object.prototype.hasOwnProperty.call(e,o)&&(t[o]=e[o]);return t}).apply(this,arguments)};const T=new(function(n){function o(){var t=null!==n&&n.apply(this,arguments)||this;return t.infoOpt={service:"",pagePath:"",serviceVersion:""},t}return S(o,n),o.prototype.handleErrors=function(n){var o=this;this.infoOpt=n,window.addEventListener("error",(function(i){try{if(!i)return;var a=i.target;if(!(a instanceof HTMLScriptElement||a instanceof HTMLLinkElement||a instanceof HTMLImageElement))return;o.logInfo=b(b({},o.infoOpt),{uniqueId:t(),category:e.RESOURCE_ERROR,grade:"IMG"===a.tagName?r.WARNING:r.ERROR,errorUrl:a.src||a.href||location.href,message:"load "+a.tagName+" resource error",collector:n.collector,stack:"load "+a.tagName+" resource error"}),o.traceInfo()}catch(t){throw t}}))},o.prototype.setOptions=function(t){this.infoOpt=t},o}(f));var I=function(){var t=function(e,r){return(t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var r in e)e.hasOwnProperty(r)&&(t[r]=e[r])})(e,r)};return function(e,r){function n(){this.constructor=e}t(e,r),e.prototype=null===r?Object.create(r):(n.prototype=r.prototype,new n)}}(),P=function(){return(P=Object.assign||function(t){for(var e,r=1,n=arguments.length;r<n;r++)for(var o in e=arguments[r])Object.prototype.hasOwnProperty.call(e,o)&&(t[o]=e[o]);return t}).apply(this,arguments)};const _=new(function(n){function o(){var t=null!==n&&n.apply(this,arguments)||this;return t.infoOpt={service:"",pagePath:"",serviceVersion:""},t}return I(o,n),o.prototype.handleErrors=function(n,o){var i=this;this.infoOpt=n,o.config.errorHandler=function(o,a,s){try{i.logInfo=P(P({},i.infoOpt),{uniqueId:t(),category:e.VUE_ERROR,grade:r.ERROR,errorUrl:location.href,message:s,collector:n.collector,stack:o.stack}),i.traceInfo()}catch(o){throw o}}},o.prototype.setOptions=function(t){this.infoOpt=t},o}(f));var x=function(){var t=function(e,r){return(t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var r in e)e.hasOwnProperty(r)&&(t[r]=e[r])})(e,r)};return function(e,r){function n(){this.constructor=e}t(e,r),e.prototype=null===r?Object.create(r):(n.prototype=r.prototype,new n)}}(),C=function(){return(C=Object.assign||function(t){for(var e,r=1,n=arguments.length;r<n;r++)for(var o in e=arguments[r])Object.prototype.hasOwnProperty.call(e,o)&&(t[o]=e[o]);return t}).apply(this,arguments)};const N=new(function(n){function o(){var t=null!==n&&n.apply(this,arguments)||this;return t.infoOpt={service:"",pagePath:"",serviceVersion:""},t}return x(o,n),o.prototype.handleErrors=function(n,o){this.infoOpt=n,this.logInfo=C(C({},this.infoOpt),{uniqueId:t(),category:e.JS_ERROR,grade:r.ERROR,errorUrl:o.name||location.href,message:o.message,collector:n.collector||location.origin,stack:o.stack}),this.traceInfo()},o}(f)),k=function(){function t(){}return t.prototype.getPerfTiming=function(){try{var t=window.performance.timing;if("function"==typeof window.PerformanceNavigationTiming){var e=performance.getEntriesByType("navigation")[0];e&&(t=e)}return{redirectTime:void 0!==t.navigationStart?parseInt(String(t.fetchStart-t.navigationStart),10):void 0!==t.redirectEnd?parseInt(String(t.redirectEnd-t.redirectStart),10):0,dnsTime:parseInt(String(t.domainLookupEnd-t.domainLookupStart),10),ttfbTime:parseInt(String(t.responseStart-t.requestStart),10),tcpTime:parseInt(String(t.connectEnd-t.connectStart),10),transTime:parseInt(String(t.responseEnd-t.responseStart),10),domAnalysisTime:parseInt(String(t.domInteractive-t.responseEnd),10),fptTime:parseInt(String(t.responseEnd-t.fetchStart),10),domReadyTime:parseInt(String(t.domContentLoadedEventEnd-t.fetchStart),10),loadPageTime:parseInt(String(t.loadEventStart-t.fetchStart),10),resTime:parseInt(String(t.loadEventStart-t.domContentLoadedEventEnd),10),sslTime:"https:"===location.protocol&&t.secureConnectionStart>0?parseInt(String(t.connectEnd-t.secureConnectionStart),10):void 0,ttlTime:parseInt(String(t.domInteractive-t.fetchStart),10),firstPackTime:parseInt(String(t.responseStart-t.domainLookupStart),10),fmpTime:0}}catch(t){throw t}},t}();var A,L=function(t,e){return window.getComputedStyle?window.getComputedStyle(t,null)[e]:t.currentStyle[e]};!function(t){t[t.SVG=2]="SVG",t[t.IMG=2]="IMG",t[t.CANVAS=4]="CANVAS",t[t.OBJECT=4]="OBJECT",t[t.EMBED=4]="EMBED",t[t.VIDEO=4]="VIDEO"}(A||(A={}));var j=performance.now(),M=["SCRIPT","STYLE","META","HEAD","LINK"],V=window.innerWidth,q=window.innerHeight;const D=function(){function t(){this.fmpTime=0,this.statusCollector=[],this.flag=!0,this.observer=null,this.callbackCount=0,this.entries={},performance&&performance.getEntries?this.initObserver():console.log("your browser do not support performance.getEntries")}return t.prototype.getFirstSnapShot=function(){var t=performance.now(),e=document.body;e&&this.setTag(e,this.callbackCount),this.statusCollector.push({time:t})},t.prototype.initObserver=function(){var t=this;this.getFirstSnapShot(),this.observer=new MutationObserver((function(){t.callbackCount+=1;var e=performance.now(),r=document.body;r&&t.setTag(r,t.callbackCount),t.statusCollector.push({time:e})})),this.observer.observe(document,{childList:!0,subtree:!0}),this.calculateFinalScore()},t.prototype.calculateFinalScore=function(){var t=this;if(this.flag&&MutationObserver)if(this.checkNeedCancel(j)){this.observer.disconnect(),this.flag=!1;for(var e=null,r=0,n=this.getTreeScore(document.body).dpss;r<n.length;r++){var o=n[r];e&&e.st?e.st<o.st&&(e=o):e=o}if(performance.getEntries().forEach((function(e){t.entries[e.name]=e.responseEnd})),!e)return!1;var i=this.filterResult(e.els),a=this.getFmpTime(i);this.fmpTime=a}else setTimeout((function(){t.calculateFinalScore()}),2e3)},t.prototype.getFmpTime=function(t){for(var e=0,r=0,n=t;r<n.length;r++){var o=n[r],i=0;if(1===o.weight){var a=parseInt(o.ele.getAttribute("fmp_c"),10);i=this.statusCollector[a]&&this.statusCollector[a].time}else if(2===o.weight)if("IMG"===o.ele.tagName)i=this.entries[o.ele.src];else if("SVG"===o.ele.tagName)a=parseInt(o.ele.getAttribute("fmp_c"),10),i=this.statusCollector[a]&&this.statusCollector[a].time;else{var s=L(o.ele,"background-image").match(/url\(\"(.*?)\"\)/),c="";s&&s[1]&&(c=s[1]),c.includes("http")||(c=location.protocol+s[1]),i=this.entries[c]}else 4===o.weight&&("CANVAS"===o.ele.tagName?(a=parseInt(o.ele.getAttribute("fmp_c"),10),i=this.statusCollector[a]&&this.statusCollector[a].time):"VIDEO"===o.ele.tagName&&((i=this.entries[o.ele.src])||(i=this.entries[o.ele.poster])));"number"!=typeof i&&(i=0),e<i&&(e=i)}return e},t.prototype.filterResult=function(t){if(1===t.length)return t;var e=0;t.forEach((function(t){e+=t.st}));var r=e/t.length;return t.filter((function(t){return t.st>r}))},t.prototype.checkNeedCancel=function(t){var e=performance.now()-t,r=this.statusCollector.length>0?this.statusCollector[this.statusCollector.length-1].time:0;return e>3e3||e-r>1e3},t.prototype.getTreeScore=function(t){if(!t)return{};for(var e=[],r=0,n=t.children;r<n.length;r++){var o=n[r];if(o.getAttribute("fmp_c")){var i=this.getTreeScore(o);i.st&&e.push(i)}}return this.calcaulteGrades(t,e)},t.prototype.calcaulteGrades=function(t,e){var r=t.getBoundingClientRect(),n=r.width,o=r.height,i=r.left,a=r.top,s=!0;(q<a||V<i)&&(s=!1);var c=0;e.forEach((function(t){c+=t.st}));var u=Number(A[t.tagName])||1;1===u&&L(t,"background-image")&&"initial"!==L(t,"background-image")&&"none"!==L(t,"background-image")&&(u=A.IMG);var l=s?n*o*u:0,p=[{ele:t,st:l,weight:u}],f=t,h=this.calculateAreaParent(t);if(c>l*h||0===h){l=c,p=[];for(var g=0,d=e;g<d.length;g++){var v=d[g];p=p.concat(v.els)}}return{dpss:e,st:l,els:p,root:f}},t.prototype.calculateAreaParent=function(t){var e=t.getBoundingClientRect(),r=e.left,n=e.right,o=e.top,i=e.bottom,a=e.width,s=e.height,c=V,u=q,l=n-r+(c-0)-(Math.max(n,c)-Math.min(r,0)),p=i-o+(u-0)-(Math.max(i,u)-Math.min(o,0));return l<=0||p<=0?0:l*p/(a*s)},t.prototype.setTag=function(t,e){var r=t.tagName;if(-1===M.indexOf(r)){var n=t.children;if(n&&n.length>0)for(var o=n.length-1;o>=0;o--){var i=n[o];if(null===i.getAttribute("fmp_c")){var a=i.getBoundingClientRect(),s=a.left,c=a.top,u=a.width,l=a.height;if(q<c||V<s||0===u||0===l)continue;i.setAttribute("fmp_c",""+e)}this.setTag(i,e)}}},t}();var F=function(){return(F=Object.assign||function(t){for(var e,r=1,n=arguments.length;r<n;r++)for(var o in e=arguments[r])Object.prototype.hasOwnProperty.call(e,o)&&(t[o]=e[o]);return t}).apply(this,arguments)};const U=new(function(){function t(){this.perfConfig={perfDetail:{}}}return t.prototype.getPerf=function(t){var e=this;this.recordPerf(t),t.enableSPA&&window.addEventListener("hashchange",(function(){e.recordPerf(t)}),!1)},t.prototype.recordPerf=function(t){return e=this,r=void 0,o=function(){var e,r=this;return function(t,e){var r,n,o,i,a={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return i={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function s(i){return function(s){return function(i){if(r)throw new TypeError("Generator is already executing.");for(;a;)try{if(r=1,n&&(o=2&i[0]?n.return:i[0]?n.throw||((o=n.return)&&o.call(n),0):n.next)&&!(o=o.call(n,i[1])).done)return o;switch(n=0,o&&(i=[2&i[0],o.value]),i[0]){case 0:case 1:o=i;break;case 4:return a.label++,{value:i[1],done:!1};case 5:a.label++,n=i[1],i=[0];continue;case 7:i=a.ops.pop(),a.trys.pop();continue;default:if(!((o=(o=a.trys).length>0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]<o[3])){a.label=i[1];break}if(6===i[0]&&a.label<o[1]){a.label=o[1],o=i;break}if(o&&a.label<o[2]){a.label=o[2],a.ops.push(i);break}o[2]&&a.ops.pop(),a.trys.pop();continue}i=e.call(t,a)}catch(t){i=[6,t],n=0}finally{r=o=0}if(5&i[0])throw i[1];return{value:i[0]?i[1]:void 0,done:!0}}([i,s])}}}(this,(function(n){switch(n.label){case 0:return e={fmpTime:void 0},t.autoTracePerf&&t.useFmp?[4,new D]:[3,2];case 1:e=n.sent(),n.label=2;case 2:return setTimeout((function(){t.autoTracePerf&&(r.perfConfig.perfDetail=(new k).getPerfTiming());var n=t.autoTracePerf?F(F({},r.perfConfig.perfDetail),{fmpTime:t.useFmp?parseInt(String(e.fmpTime),10):void 0}):void 0,o=F(F(F({},n),t.business),{pagePath:t.pagePath,serviceVersion:t.serviceVersion,service:t.service});new c("PERF",t.collector).sendByXhr(o),r.clearPerf()}),6e3),[2]}}))},new((n=void 0)||(n=Promise))((function(t,i){function a(t){try{c(o.next(t))}catch(t){i(t)}}function s(t){try{c(o.throw(t))}catch(t){i(t)}}function c(e){var r;e.done?t(e.value):(r=e.value,r instanceof n?r:new n((function(t){t(r)}))).then(a,s)}c((o=o.apply(e,r||[])).next())}));var e,r,n,o},t.prototype.clearPerf=function(){window.performance&&window.performance.clearResourceTimings&&(window.performance.clearResourceTimings(),this.perfConfig={perfDetail:{}})},t}()),B="function"==typeof btoa,G="function"==typeof Buffer,H=("function"==typeof TextDecoder&&new TextDecoder,"function"==typeof TextEncoder?new TextEncoder:void 0),X=[..."ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/="],W=((t=>{let e={};t.forEach(((t,r)=>e[t]=r))})(X),String.fromCharCode.bind(String)),J=("function"==typeof Uint8Array.from&&Uint8Array.from.bind(Uint8Array),t=>t.replace(/[+\/]/g,(t=>"+"==t?"-":"_")).replace(/=+$/m,"")),K=B?t=>btoa(t):G?t=>Buffer.from(t,"binary").toString("base64"):t=>{let e,r,n,o,i="";const a=t.length%3;for(let a=0;a<t.length;){if((r=t.charCodeAt(a++))>255||(n=t.charCodeAt(a++))>255||(o=t.charCodeAt(a++))>255)throw new TypeError("invalid character found");e=r<<16|n<<8|o,i+=X[e>>18&63]+X[e>>12&63]+X[e>>6&63]+X[63&e]}return a?i.slice(0,a-3)+"===".substring(a):i},Y=G?t=>Buffer.from(t).toString("base64"):t=>{let e=[];for(let r=0,n=t.length;r<n;r+=4096)e.push(W.apply(null,t.subarray(r,r+4096)));return K(e.join(""))},z=t=>{if(t.length<2)return(e=t.charCodeAt(0))<128?t:e<2048?W(192|e>>>6)+W(128|63&e):W(224|e>>>12&15)+W(128|e>>>6&63)+W(128|63&e);var e=65536+1024*(t.charCodeAt(0)-55296)+(t.charCodeAt(1)-56320);return W(240|e>>>18&7)+W(128|e>>>12&63)+W(128|e>>>6&63)+W(128|63&e)},Q=/[\uD800-\uDBFF][\uDC00-\uDFFFF]|[^\x00-\x7F]/g,Z=G?t=>Buffer.from(t,"utf8").toString("base64"):H?t=>Y(H.encode(t)):t=>K(t.replace(Q,z)),$=(t,e=!1)=>e?J(Z(t)):Z(t);var tt=function(){return(tt=Object.assign||function(t){for(var e,r=1,n=arguments.length;r<n;r++)for(var o in e=arguments[r])Object.prototype.hasOwnProperty.call(e,o)&&(t[o]=e[o]);return t}).apply(this,arguments)},et={};function rt(e,r){nt(e);var c=window.XMLHttpRequest,u=XMLHttpRequest.prototype.send,l=XMLHttpRequest.prototype.open;if(u&&l){c.getRequestConfig=[],window.XMLHttpRequest=function(){var t=new c;return t.addEventListener("readystatechange",(function(){f.call(this,"xhrReadyStateChange")}),!1),t.open=function(t,e,r,n,o){return this.getRequestConfig=arguments,l.apply(this,arguments)},t.send=function(t){return u.apply(this,arguments)},t};var p=[];window.addEventListener("xhrReadyStateChange",(function(e){var c={traceId:"",service:et.service,spans:[],serviceInstance:et.serviceVersion,traceSegmentId:""},u=e.detail.readyState,l=e.detail.getRequestConfig,f={};if(l[1].startsWith("http://")||l[1].startsWith("https://")?f=new URL(l[1]):l[1].startsWith("//")?f=new URL(""+window.location.protocol+l[1]):(f=new URL(window.location.href)).pathname=l[1],!et.noTraceOrigins.some((function(t){if("string"==typeof t){if(t===f.origin)return!0}else if(t instanceof RegExp&&t.test(f.origin))return!0}))){var h=new URL(et.collector),g="/"===h.pathname?f.pathname:f.pathname.replace(new RegExp("^"+h.pathname),"");if(![n.ERROR,n.ERRORS,n.PERF,n.SEGMENTS].includes(g)||et.traceSDKInternal){if(u===o.OPENED){var d=t(),v=t();p.push({event:e.detail,startTime:(new Date).getTime(),traceId:d,traceSegmentId:v});var y=String($(d)),m=String($(v)),O=String($(c.service)),E=String($(c.serviceInstance)),R=String($(et.pagePath)),w=String($(f.host)),S="1-"+y+"-"+m+"-"+c.spans.length+"-"+O+"-"+E+"-"+R+"-"+w;e.detail.setRequestHeader("sw8",S)}if(u===o.DONE){for(var b=(new Date).getTime(),T=0;T<p.length;T++)if(p[T].event.readyState===o.DONE){var I={};p[T].event.status&&(I=new URL(p[T].event.responseURL));var P={operationName:et.pagePath,startTime:p[T].startTime,endTime:b,spanId:c.spans.length,spanLayer:i,spanType:a,isError:0===e.detail.status||e.detail.status>=400,parentSpanId:c.spans.length-1,componentId:s,peer:I.host,tags:et.detailMode?[{key:"http.method",value:l[0]},{key:"url",value:p[T].event.responseURL||f.protocol+"//"+f.host+f.pathname}]:void 0};(c=tt(tt({},c),{traceId:p[T].traceId,traceSegmentId:p[T].traceSegmentId})).spans.push(P),p.splice(T,1)}r.push(c)}}}}))}else console.error("Tracing is not supported");function f(t){var e=new CustomEvent(t,{detail:this});window.dispatchEvent(e)}}function nt(t){et=tt(tt({},et),t)}var ot=function(){return(ot=Object.assign||function(t){for(var e,r=1,n=arguments.length;r<n;r++)for(var o in e=arguments[r])Object.prototype.hasOwnProperty.call(e,o)&&(t[o]=e[o]);return t}).apply(this,arguments)},it=function(t,e,r,n){return new(r||(r=Promise))((function(o,i){function a(t){try{c(n.next(t))}catch(t){i(t)}}function s(t){try{c(n.throw(t))}catch(t){i(t)}}function c(t){var e;t.done?o(t.value):(e=t.value,e instanceof r?e:new r((function(t){t(e)}))).then(a,s)}c((n=n.apply(t,e||[])).next())}))},at=function(t,e){var r,n,o,i,a={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return i={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function s(i){return function(s){return function(i){if(r)throw new TypeError("Generator is already executing.");for(;a;)try{if(r=1,n&&(o=2&i[0]?n.return:i[0]?n.throw||((o=n.return)&&o.call(n),0):n.next)&&!(o=o.call(n,i[1])).done)return o;switch(n=0,o&&(i=[2&i[0],o.value]),i[0]){case 0:case 1:o=i;break;case 4:return a.label++,{value:i[1],done:!1};case 5:a.label++,n=i[1],i=[0];continue;case 7:i=a.ops.pop(),a.trys.pop();continue;default:if(!((o=(o=a.trys).length>0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]<o[3])){a.label=i[1];break}if(6===i[0]&&a.label<o[1]){a.label=o[1],o=i;break}if(o&&a.label<o[2]){a.label=o[2],a.ops.push(i);break}o[2]&&a.ops.pop(),a.trys.pop();continue}i=e.call(t,a)}catch(t){i=[6,t],n=0}finally{r=o=0}if(5&i[0])throw i[1];return{value:i[0]?i[1]:void 0,done:!0}}([i,s])}}},st={};function ct(t){st=ot(ot({},st),t)}var ut=function(){return(ut=Object.assign||function(t){for(var e,r=1,n=arguments.length;r<n;r++)for(var o in e=arguments[r])Object.prototype.hasOwnProperty.call(e,o)&&(t[o]=e[o]);return t}).apply(this,arguments)};const lt={customOptions:{collector:location.origin,jsErrors:!0,apiErrors:!0,resourceErrors:!0,autoTracePerf:!0,useFmp:!1,enableSPA:!1,traceSDKInternal:!1,detailMode:!0,noTraceOrigins:[],traceTimeInterval:6e4},register:function(o){var u,l;this.customOptions=ut(ut({},this.customOptions),o),this.catchErrors(this.customOptions),this.customOptions.enableSPA||this.performance(this.customOptions),rt(u=this.customOptions,l=[]),function(o,c){var u=this,l=window.fetch;ct(o),window.fetch=function(){for(var o=[],p=0;p<arguments.length;p++)o[p]=arguments[p];return it(u,void 0,void 0,(function(){var u,p,h,g,d,v,y,m,O,E,R,w,S,b,T,I,P,_,x,C,N,k,A;return at(this,(function(L){switch(L.label){case 0:return u=(new Date).getTime(),p=t(),h=t(),g={traceId:"",service:st.service,spans:[],serviceInstance:st.serviceVersion,traceSegmentId:""},d={},o[0].startsWith("http://")||o[0].startsWith("https://")?d=new URL(o[0]):o[0].startsWith("//")?d=new URL(""+window.location.protocol+o[0]):(d=new URL(window.location.href)).pathname=o[0],v=st.noTraceOrigins.some((function(t){if("string"==typeof t){if(t===d.origin)return!0}else if(t instanceof RegExp&&t.test(d.origin))return!0})),y=new URL(st.collector),m="/"===y.pathname?d.pathname:d.pathname.replace(new RegExp("^"+y.pathname),""),O=[n.ERROR,n.ERRORS,n.PERF,n.SEGMENTS],E=O.includes(m),(R=!v||E&&st.traceSDKInternal)&&(w=String($(p)),S=String($(h)),b=String($(g.service)),T=String($(g.serviceInstance)),I=String($(st.pagePath)),P=String($(d.host)),_=g.spans.length,x="1-"+w+"-"+S+"-"+_+"-"+b+"-"+T+"-"+I+"-"+P,o[1]||(o[1]={}),o[1].headers||(o[1].headers={}),o[1].headers.sw8=x),[4,l.apply(void 0,o)];case 1:C=L.sent();try{C&&(0===C.status||C.status>=400)&&(N={uniqueId:t(),service:st.service,serviceVersion:st.serviceVersion,pagePath:st.pagePath,category:e.AJAX_ERROR,grade:r.ERROR,errorUrl:C&&C.url||d.protocol+"//"+d.host+d.pathname,message:"status: "+(C?C.status:0)+"; statusText: "+(C&&C.statusText)+";",collector:st.collector,stack:"Fetch: "+C&&C.statusText},(new f).traceInfo(N)),R&&(k=(new Date).getTime(),A={operationName:st.pagePath,startTime:u,endTime:k,spanId:g.spans.length,spanLayer:i,spanType:a,isError:C&&(0===C.status||C.status>=400),parentSpanId:g.spans.length-1,componentId:s,peer:d.host,tags:st.detailMode?[{key:"http.method",value:o[1].method||"GET"},{key:"url",value:C&&C.url||d.protocol+"//"+d.host+d.pathname}]:void 0},(g=ot(ot({},g),{traceId:p,traceSegmentId:h})).spans.push(A),c.push(g))}catch(t){throw t}return[2,C.clone()]}}))}))}}(u,l),window.addEventListener("beforeunload",(function(){l.length&&new c("SEGMENTS",u.collector).sendByBeacon(l)})),setInterval((function(){l.length&&(new c("SEGMENTS",u.collector).sendByXhr(l),l.splice(0,l.length))}),u.traceTimeInterval)},performance:function(t){"complete"===document.readyState?U.getPerf(t):window.addEventListener("load",(function(){U.getPerf(t)}),!1)},catchErrors:function(t){var e=t.service,r=t.pagePath,n=t.serviceVersion,o=t.collector;t.jsErrors&&(v.handleErrors({service:e,pagePath:r,serviceVersion:n,collector:o}),O.handleErrors({service:e,pagePath:r,serviceVersion:n,collector:o}),t.vue&&_.handleErrors({service:e,pagePath:r,serviceVersion:n,collector:o},t.vue)),t.apiErrors&&w.handleError({service:e,pagePath:r,serviceVersion:n,collector:o}),t.resourceErrors&&T.handleErrors({service:e,pagePath:r,serviceVersion:n,collector:o})},setPerformance:function(t){this.customOptions=ut(ut(ut({},this.customOptions),t),{useFmp:!1}),this.performance(this.customOptions);var e,r=this.customOptions,n=r.service,o=r.pagePath,i=r.serviceVersion,a=r.collector;this.customOptions.jsErrors&&(v.setOptions({service:n,pagePath:o,serviceVersion:i,collector:a}),O.setOptions({service:n,pagePath:o,serviceVersion:i,collector:a}),this.customOptions.vue&&_.setOptions({service:n,pagePath:o,serviceVersion:i,collector:a})),this.customOptions.apiErrors&&w.setOptions({service:n,pagePath:o,serviceVersion:i,collector:a}),this.customOptions.resourceErrors&&T.setOptions({service:n,pagePath:o,serviceVersion:i,collector:a}),nt(e=this.customOptions),ct(e)},reportFrameErrors:function(t,e){N.handleErrors(t,e)}};window.ClientMonitor=lt})(); //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9semp0ZXN0MC45LjAvLi9zcmMvc2VydmljZXMvdXVpZC50cyIsIndlYnBhY2s6Ly9semp0ZXN0MC45LjAvLi9zcmMvc2VydmljZXMvY29uc3RhbnQudHMiLCJ3ZWJwYWNrOi8vbHpqdGVzdDAuOS4wLy4vc3JjL3NlcnZpY2VzL3JlcG9ydC50cyIsIndlYnBhY2s6Ly9semp0ZXN0MC45LjAvLi9zcmMvc2VydmljZXMvdGFzay50cyIsIndlYnBhY2s6Ly9semp0ZXN0MC45LjAvLi9zcmMvc2VydmljZXMvYmFzZS50cyIsIndlYnBhY2s6Ly9semp0ZXN0MC45LjAvLi9zcmMvZXJyb3JzL2pzLnRzIiwid2VicGFjazovL2x6anRlc3QwLjkuMC8uL3NyYy9lcnJvcnMvcHJvbWlzZS50cyIsIndlYnBhY2s6Ly9semp0ZXN0MC45LjAvLi9zcmMvZXJyb3JzL2FqYXgudHMiLCJ3ZWJwYWNrOi8vbHpqdGVzdDAuOS4wLy4vc3JjL2Vycm9ycy9yZXNvdXJjZS50cyIsIndlYnBhY2s6Ly9semp0ZXN0MC45LjAvLi9zcmMvZXJyb3JzL3Z1ZS50cyIsIndlYnBhY2s6Ly9semp0ZXN0MC45LjAvLi9zcmMvZXJyb3JzL2ZyYW1lcy50cyIsIndlYnBhY2s6Ly9semp0ZXN0MC45LjAvLi9zcmMvcGVyZm9ybWFuY2UvcGVyZi50cyIsIndlYnBhY2s6Ly9semp0ZXN0MC45LjAvLi9zcmMvcGVyZm9ybWFuY2UvZm1wLnRzIiwid2VicGFjazovL2x6anRlc3QwLjkuMC8uL3NyYy9wZXJmb3JtYW5jZS9pbmRleC50cyIsIndlYnBhY2s6Ly9semp0ZXN0MC45LjAvLi9ub2RlX21vZHVsZXMvanMtYmFzZTY0L2Jhc2U2NC5tanMiLCJ3ZWJwYWNrOi8vbHpqdGVzdDAuOS4wLy4vc3JjL3RyYWNlL2ludGVyY2VwdG9ycy94aHIudHMiLCJ3ZWJwYWNrOi8vbHpqdGVzdDAuOS4wLy4vc3JjL3RyYWNlL2ludGVyY2VwdG9ycy9mZXRjaC50cyIsIndlYnBhY2s6Ly9semp0ZXN0MC45LjAvLi9zcmMvbW9uaXRvci50cyIsIndlYnBhY2s6Ly9semp0ZXN0MC45LjAvLi9zcmMvdHJhY2Uvc2VnbWVudC50cyIsIndlYnBhY2s6Ly9semp0ZXN0MC45LjAvLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOlsidXVpZCIsInJlcGxhY2UiLCJjIiwiciIsIk1hdGgiLCJyYW5kb20iLCJ0b1N0cmluZyIsIkVycm9yc0NhdGVnb3J5IiwiR3JhZGVUeXBlRW51bSIsIlJlcG9ydFR5cGVzIiwiUmVhZHlTdGF0dXMiLCJTcGFuTGF5ZXIiLCJTcGFuVHlwZSIsIkNvbXBvbmVudElkIiwidHlwZSIsImNvbGxlY3RvciIsInVybCIsInRoaXMiLCJFUlJPUiIsIkVSUk9SUyIsIlNFR01FTlQiLCJTRUdNRU5UUyIsIlBFUkYiLCJzZW5kQnlGZXRjaCIsImRhdGEiLCJzZW5kUmVxdWVzdCIsIlJlcXVlc3QiLCJtZXRob2QiLCJib2R5IiwiSlNPTiIsInN0cmluZ2lmeSIsImZldGNoIiwidGhlbiIsInJlc3BvbnNlIiwic3RhdHVzIiwiRXJyb3IiLCJjYXRjaCIsImVycm9yIiwiY29uc29sZSIsInNlbmRCeVhociIsInhociIsIlhNTEh0dHBSZXF1ZXN0Iiwib3BlbiIsInNldFJlcXVlc3RIZWFkZXIiLCJ3aXRoQ3JlZGVudGlhbHMiLCJvbnJlYWR5c3RhdGVjaGFuZ2UiLCJyZWFkeVN0YXRlIiwibG9nIiwic2VuZCIsInNlbmRCeUJlYWNvbiIsIm5hdmlnYXRvciIsInNlbmRCZWFjb24iLCJxdWV1ZXMiLCJhZGRUYXNrIiwicHVzaCIsImZpcmVUYXNrcyIsImxlbmd0aCIsImZpbmFsbHlGaXJlVGFza3MiLCJ3aW5kb3ciLCJhZGRFdmVudExpc3RlbmVyIiwiaW50ZXJ2YWwiLCJwYWdlSGFzanNFcnJvciIsImxvZ0luZm8iLCJ1bmlxdWVJZCIsInNlcnZpY2UiLCJzZXJ2aWNlVmVyc2lvbiIsInBhZ2VQYXRoIiwiY2F0ZWdvcnkiLCJVTktOT1dOX0VSUk9SIiwiZ3JhZGUiLCJJTkZPIiwiZXJyb3JVcmwiLCJsaW5lIiwiY29sIiwibWVzc2FnZSIsImZpcnN0UmVwb3J0ZWRFcnJvciIsInRyYWNlSW5mbyIsIkV4Y2x1ZGVFcnJvclR5cGVzIiwiQUpBWF9FUlJPUiIsIlJFU09VUkNFX0VSUk9SIiwibG9jYXRpb24iLCJocmVmIiwiaW5jbHVkZXMiLCJzZXRJbnRlcnZhbCIsImluZm9PcHQiLCJoYW5kbGVFcnJvcnMiLCJvcHRpb25zIiwib25lcnJvciIsIkpTX0VSUk9SIiwic3RhY2siLCJzZXRPcHRpb25zIiwib3B0IiwiZXZlbnQiLCJyZWFzb24iLCJjb25maWciLCJQUk9NSVNFX0VSUk9SIiwiaGFuZGxlRXJyb3IiLCJkZXRhaWwiLCJnZXRSZXF1ZXN0Q29uZmlnIiwic3RhdHVzVGV4dCIsInJlc3BvbnNlVGV4dCIsInRhcmdldCIsIkhUTUxTY3JpcHRFbGVtZW50IiwiSFRNTExpbmtFbGVtZW50IiwiSFRNTEltYWdlRWxlbWVudCIsInRhZ05hbWUiLCJXQVJOSU5HIiwic3JjIiwiVnVlIiwiZXJyb3JIYW5kbGVyIiwidm0iLCJpbmZvIiwiVlVFX0VSUk9SIiwibmFtZSIsIm9yaWdpbiIsImdldFBlcmZUaW1pbmciLCJ0aW1pbmciLCJwZXJmb3JtYW5jZSIsIlBlcmZvcm1hbmNlTmF2aWdhdGlvblRpbWluZyIsIm50MlRpbWluZyIsImdldEVudHJpZXNCeVR5cGUiLCJyZWRpcmVjdFRpbWUiLCJ1bmRlZmluZWQiLCJuYXZpZ2F0aW9uU3RhcnQiLCJwYXJzZUludCIsIlN0cmluZyIsImZldGNoU3RhcnQiLCJyZWRpcmVjdEVuZCIsInJlZGlyZWN0U3RhcnQiLCJkbnNUaW1lIiwiZG9tYWluTG9va3VwRW5kIiwiZG9tYWluTG9va3VwU3RhcnQiLCJ0dGZiVGltZSIsInJlc3BvbnNlU3RhcnQiLCJyZXF1ZXN0U3RhcnQiLCJ0Y3BUaW1lIiwiY29ubmVjdEVuZCIsImNvbm5lY3RTdGFydCIsInRyYW5zVGltZSIsInJlc3BvbnNlRW5kIiwiZG9tQW5hbHlzaXNUaW1lIiwiZG9tSW50ZXJhY3RpdmUiLCJmcHRUaW1lIiwiZG9tUmVhZHlUaW1lIiwiZG9tQ29udGVudExvYWRlZEV2ZW50RW5kIiwibG9hZFBhZ2VUaW1lIiwibG9hZEV2ZW50U3RhcnQiLCJyZXNUaW1lIiwic3NsVGltZSIsInByb3RvY29sIiwic2VjdXJlQ29ubmVjdGlvblN0YXJ0IiwidHRsVGltZSIsImZpcnN0UGFja1RpbWUiLCJmbXBUaW1lIiwiZSIsIkVMRV9XRUlHSFQiLCJnZXRTdHlsZSIsImVsZW1lbnQiLCJhdHRyIiwiZ2V0Q29tcHV0ZWRTdHlsZSIsImN1cnJlbnRTdHlsZSIsIlNUQVJUX1RJTUUiLCJub3ciLCJJR05PUkVfVEFHX1NFVCIsIldXIiwiaW5uZXJXaWR0aCIsIldIIiwiaW5uZXJIZWlnaHQiLCJzdGF0dXNDb2xsZWN0b3IiLCJmbGFnIiwib2JzZXJ2ZXIiLCJjYWxsYmFja0NvdW50IiwiZW50cmllcyIsImdldEVudHJpZXMiLCJpbml0T2JzZXJ2ZXIiLCJnZXRGaXJzdFNuYXBTaG90IiwidGltZSIsIiRib2R5IiwiZG9jdW1lbnQiLCJzZXRUYWciLCJNdXRhdGlvbk9ic2VydmVyIiwib2JzZXJ2ZSIsImNoaWxkTGlzdCIsInN1YnRyZWUiLCJjYWxjdWxhdGVGaW5hbFNjb3JlIiwiY2hlY2tOZWVkQ2FuY2VsIiwiZGlzY29ubmVjdCIsInRwIiwiZ2V0VHJlZVNjb3JlIiwiZHBzcyIsIml0ZW0iLCJzdCIsImZvckVhY2giLCJyZXN1bHRFbHMiLCJmaWx0ZXJSZXN1bHQiLCJlbHMiLCJmbXBUaW1pbmciLCJnZXRGbXBUaW1lIiwic2V0VGltZW91dCIsInJ0Iiwid2VpZ2h0IiwiaW5kZXgiLCJlbGUiLCJnZXRBdHRyaWJ1dGUiLCJtYXRjaCIsInBvc3RlciIsInN1bSIsImF2ZyIsImZpbHRlciIsInN0YXJ0IiwibGFzdENhbFRpbWUiLCJub2RlIiwiY2hpbGRyZW4iLCJjaGlsZCIsInMiLCJjYWxjYXVsdGVHcmFkZXMiLCJnZXRCb3VuZGluZ0NsaWVudFJlY3QiLCJ3aWR0aCIsImhlaWdodCIsImxlZnQiLCJ0b3AiLCJpc0luVmlld1BvcnQiLCJzZHAiLCJOdW1iZXIiLCJJTUciLCJyb290IiwiYXJlYVBlcmNlbnQiLCJjYWxjdWxhdGVBcmVhUGFyZW50IiwiY29uY2F0IiwicmlnaHQiLCJib3R0b20iLCJ3aW5SaWdodCIsIndpbkJvdHRvbSIsIm92ZXJsYXBYIiwibWF4IiwibWluIiwib3ZlcmxhcFkiLCJpbmRleE9mIiwiJGNoaWxkcmVuIiwiaSIsIiRjaGlsZCIsInNldEF0dHJpYnV0ZSIsInBlcmZDb25maWciLCJwZXJmRGV0YWlsIiwiZ2V0UGVyZiIsInJlY29yZFBlcmYiLCJlbmFibGVTUEEiLCJmbXAiLCJhdXRvVHJhY2VQZXJmIiwidXNlRm1wIiwicGVyZkluZm8iLCJidXNpbmVzcyIsImNsZWFyUGVyZiIsImNsZWFyUmVzb3VyY2VUaW1pbmdzIiwiX2hhc2J0b2EiLCJidG9hIiwiX2hhc0J1ZmZlciIsIkJ1ZmZlciIsIl9URSIsIlRleHREZWNvZGVyIiwiVGV4dEVuY29kZXIiLCJiNjRjaHMiLCJfZnJvbUNDIiwiYSIsInRhYiIsImZyb21DaGFyQ29kZSIsImJpbmQiLCJfbWtVcmlTYWZlIiwiVWludDhBcnJheSIsImZyb20iLCJtMCIsIl9idG9hIiwiYmluIiwidTMyIiwiYzAiLCJjMSIsImMyIiwiYXNjIiwicGFkIiwiY2hhckNvZGVBdCIsIlR5cGVFcnJvciIsInNsaWNlIiwic3Vic3RyaW5nIiwiX2Zyb21VaW50OEFycmF5IiwidThhIiwic3RycyIsImwiLCJhcHBseSIsInN1YmFycmF5Iiwiam9pbiIsImNiX3V0b2IiLCJjYyIsInJlX3V0b2IiLCJfZW5jb2RlIiwiZW5jb2RlIiwidXJsc2FmZSIsImN1c3RvbUNvbmZpZyIsInhockludGVyY2VwdG9yIiwic2VnbWVudHMiLCJvcmlnaW5hbFhIUiIsInhoclNlbmQiLCJwcm90b3R5cGUiLCJ4aHJPcGVuIiwibGl2ZVhIUiIsImFqYXhFdmVudFRyaWdnZXIiLCJjYWxsIiwiYXN5bmMiLCJ1c2VybmFtZSIsInBhc3N3b3JkIiwiYXJndW1lbnRzIiwic2VnQ29sbGVjdG9yIiwic2VnbWVudCIsInRyYWNlSWQiLCJzcGFucyIsInNlcnZpY2VJbnN0YW5jZSIsInRyYWNlU2VnbWVudElkIiwieGhyU3RhdGUiLCJzdGFydHNXaXRoIiwiVVJMIiwicGF0aG5hbWUiLCJub1RyYWNlT3JpZ2lucyIsInNvbWUiLCJydWxlIiwiUmVnRXhwIiwidGVzdCIsImNVUkwiLCJ0cmFjZVNES0ludGVybmFsIiwiT1BFTkVEIiwic3RhcnRUaW1lIiwiRGF0ZSIsImdldFRpbWUiLCJ0cmFjZUlkU3RyIiwic2VnbWVudElkIiwiaW5zdGFuY2UiLCJlbmRwb2ludCIsInBlZXIiLCJob3N0IiwidmFsdWVzIiwiRE9ORSIsImVuZFRpbWUiLCJyZXNwb25zZVVSTCIsImV4aXRTcGFuIiwib3BlcmF0aW9uTmFtZSIsInNwYW5JZCIsInNwYW5MYXllciIsInNwYW5UeXBlIiwiaXNFcnJvciIsInBhcmVudFNwYW5JZCIsImNvbXBvbmVudElkIiwidGFncyIsImRldGFpbE1vZGUiLCJrZXkiLCJ2YWx1ZSIsInNwbGljZSIsImFqYXhFdmVudCIsIkN1c3RvbUV2ZW50IiwiZGlzcGF0Y2hFdmVudCIsInNldEZldGNoT3B0aW9ucyIsImN1c3RvbU9wdGlvbnMiLCJqc0Vycm9ycyIsImFwaUVycm9ycyIsInJlc291cmNlRXJyb3JzIiwidHJhY2VUaW1lSW50ZXJ2YWwiLCJyZWdpc3RlciIsImNvbmZpZ3MiLCJjYXRjaEVycm9ycyIsIm9yaWdpbkZldGNoIiwiYXJncyIsImludGVybmFscyIsImlzU0RLSW50ZXJuYWwiLCJoYXNUcmFjZSIsImhlYWRlcnMiLCJjbG9uZSIsIndpbmRvd0ZldGNoIiwidnVlIiwic2V0UGVyZm9ybWFuY2UiLCJyZXBvcnRGcmFtZUVycm9ycyIsIkNsaWVudE1vbml0b3IiXSwibWFwcGluZ3MiOiJtQkFpQmUsU0FBU0EsSUFDdEIsTUFBTyx1Q0FBdUNDLFFBQVEsU0FBUyxTQUFDQyxHQUU5RCxJQUFNQyxFQUFxQixHQUFoQkMsS0FBS0MsU0FBaUIsRUFJakMsT0FGZ0IsTUFBTkgs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