From e39f2ee65befc883dac4c06b0232f4ead485ac74 Mon Sep 17 00:00:00 2001 From: Peter Zhang Date: Wed, 22 Sep 2021 17:48:59 +1200 Subject: add heartbeat ping tab tracking (#18028) --- js/piwik.js | 13 ++++++++- js/piwik.min.js | 82 ++++++++++++++++++++++++++++----------------------------- matomo.js | 82 ++++++++++++++++++++++++++++----------------------------- piwik.js | 82 ++++++++++++++++++++++++++++----------------------------- 4 files changed, 135 insertions(+), 124 deletions(-) diff --git a/js/piwik.js b/js/piwik.js index 500d003094..e280517eb2 100644 --- a/js/piwik.js +++ b/js/piwik.js @@ -112,7 +112,7 @@ "", "\b", "\t", "\n", "\f", "\r", "\"", "\\", apply, call, charCodeAt, getUTCDate, getUTCFullYear, getUTCHours, getUTCMinutes, getUTCMonth, getUTCSeconds, hasOwnProperty, join, lastIndex, length, parse, prototype, push, replace, sort, slice, stringify, test, toJSON, toString, valueOf, objectToJSON, addTracker, removeAllAsyncTrackersButFirst, - optUserOut, forgetUserOptOut, isUserOptedOut, withCredentials + optUserOut, forgetUserOptOut, isUserOptedOut, withCredentials, visibilityState */ /*global _paq:true */ /*members push */ @@ -2894,6 +2894,14 @@ if (typeof window.Matomo !== 'object') { } } + function heartBeatOnVisible() { + if (documentAlias.visibilityState === 'hidden' && hadWindowMinimalFocusToConsiderViewed()) { + heartBeatPingIfActivityAlias(); + } else if (documentAlias.visibilityState === 'visible') { + timeWindowLastFocused = new Date().getTime(); + } + } + /* * Setup event handlers and timeout for initial heart beat. */ @@ -2908,6 +2916,7 @@ if (typeof window.Matomo !== 'object') { addEventListener(windowAlias, 'focus', heartBeatOnFocus); addEventListener(windowAlias, 'blur', heartBeatOnBlur); + addEventListener(windowAlias, 'visibilitychange', heartBeatOnVisible); // when using multiple trackers then we need to add this event for each tracker coreHeartBeatCounter++; @@ -6267,9 +6276,11 @@ if (typeof window.Matomo !== 'object') { if (windowAlias.removeEventListener) { windowAlias.removeEventListener('focus', heartBeatOnFocus); windowAlias.removeEventListener('blur', heartBeatOnBlur); + windowAlias.removeEventListener('visibilitychange', heartBeatOnVisible); } else if (windowAlias.detachEvent) { windowAlias.detachEvent('onfocus', heartBeatOnFocus); windowAlias.detachEvent('onblur', heartBeatOnBlur); + windowAlias.removeEventListener('visibilitychange', heartBeatOnVisible); } } diff --git a/js/piwik.min.js b/js/piwik.min.js index 0cede038fe..ed124ef7c7 100644 --- a/js/piwik.min.js +++ b/js/piwik.min.js @@ -29,46 +29,46 @@ at=ai.findFirstNodeHavingAttribute(au,this.CONTENT_PIECE_ATTR);if(!at){at=ai.fin }if(aw){aw+="&ca=1"}return aw},buildContentBlock:function(av){if(!av){return}var at=this.findContentName(av);var au=this.findContentPiece(av);var aw=this.findContentTarget(av);at=this.trim(at);au=this.trim(au);aw=this.trim(aw);return{name:at||"Unknown",piece:au||"Unknown",target:aw||""}},collectContent:function(aw){if(!aw||!aw.length){return[]}var av=[];var at,au;for(at=0;at=0)&&aH(du)!==String(dv)){var dq="There was an error setting cookie `"+du+"`. Please check domain and path.";ao(dq)}}function b7(dq){var dr;dq=j(dq,az);if(bU){dr=new RegExp("#.*");return dq.replace(dr,"")}return dq}function b0(ds,dq){var dt=s(dq),dr;if(dt){return dq}if(dq.slice(0,1)==="/"){return s(ds)+"://"+d(ds)+dq}ds=b7(ds);dr=ds.indexOf("?");if(dr>=0){ds=ds.slice(0,dr)}dr=ds.lastIndexOf("/");if(dr!==ds.length-1){ds=ds.slice(0,dr+1)}return ds+dq}function cN(ds,dq){var dr;ds=String(ds).toLowerCase();dq=String(dq).toLowerCase();if(ds===dq){return true}if(dq.slice(0,1)==="."){if(ds===dq.slice(1)){return true -}dr=ds.length-dq.length;if((dr>0)&&(ds.slice(dr)===dq)){return true}}return false}function cp(dq){var dr=document.createElement("a");if(dq.indexOf("//")!==0&&dq.indexOf("http")!==0){if(dq.indexOf("*")===0){dq=dq.substr(1)}if(dq.indexOf(".")===0){dq=dq.substr(1)}dq="http://"+dq}dr.href=w.toAbsoluteUrl(dq);if(dr.pathname){return dr.pathname}return""}function a8(dr,dq){if(!an(dq,"/")){dq="/"+dq}if(!an(dr,"/")){dr="/"+dr}var ds=(dq==="/"||dq==="/*");if(ds){return true}if(dr===dq){return true}dq=String(dq).toLowerCase();dr=String(dr).toLowerCase();if(U(dq,"*")){dq=dq.slice(0,-1);ds=(!dq||dq==="/");if(ds){return true}if(dr===dq){return true}return dr.indexOf(dq)===0}if(!U(dr,"/")){dr+="/"}if(!U(dq,"/")){dq+="/"}return dr.indexOf(dq)===0}function aw(du,dw){var dr,dq,ds,dt,dv;for(dr=0;dr0)&&(dt.slice(ds)===dq)){return true}}}return false}function ct(dq,ds){dq=dq.replace("send_image=0","send_image=1");var dr=new Image(1,1);dr.onload=function(){H=0;if(typeof ds==="function"){ds({request:dq,trackerUrl:aI,success:true})}};dr.onerror=function(){if(typeof ds==="function"){ds({request:dq,trackerUrl:aI,success:false})}};dr.src=aI+(aI.indexOf("?")<0?"?":"&")+dq}function cK(dq){if(dg==="POST"){return true}return dq&&(dq.length>2000||dq.indexOf('{"requests"')===0)}function aP(){return"object"===typeof g&&"function"===typeof g.sendBeacon&&"function"===typeof Blob}function bb(du,dx,dw){var ds=aP();if(!ds){return false}var dt={type:"application/x-www-form-urlencoded; charset=UTF-8"};var dy=false;var dr=aI;try{var dq=new Blob([du],dt);if(dw&&!cK(du)){dq=new Blob([],dt);dr=dr+(dr.indexOf("?")<0?"?":"&")+du}dy=g.sendBeacon(dr,dq)}catch(dv){return false}if(dy&&typeof dx==="function"){dx({request:du,trackerUrl:aI,success:true,isSendBeacon:true})}return dy}function db(dr,ds,dq){if(!M(dq)||null===dq){dq=true -}if(m&&bb(dr,ds,dq)){return}setTimeout(function(){if(m&&bb(dr,ds,dq)){return}var dv;try{var du=W.XMLHttpRequest?new W.XMLHttpRequest():W.ActiveXObject?new ActiveXObject("Microsoft.XMLHTTP"):null;du.open("POST",aI,true);du.onreadystatechange=function(){if(this.readyState===4&&!(this.status>=200&&this.status<300)){var dw=m&&bb(dr,ds,dq);if(!dw&&dq){ct(dr,ds)}else{if(typeof ds==="function"){ds({request:dr,trackerUrl:aI,success:false,xhr:this})}}}else{if(this.readyState===4&&(typeof ds==="function")){ds({request:dr,trackerUrl:aI,success:true,xhr:this})}}};du.setRequestHeader("Content-Type",cC);du.withCredentials=true;du.send(dr)}catch(dt){dv=m&&bb(dr,ds,dq);if(!dv&&dq){ct(dr,ds)}else{if(typeof ds==="function"){ds({request:dr,trackerUrl:aI,success:false})}}}},50)}function ck(dr){var dq=new Date();var ds=dq.getTime()+dr;if(!r||ds>r){r=ds}}function bf(){bh=true;cD=new Date().getTime()}function dj(){var dq=new Date().getTime();return !cD||(dq-cD)>ba}function aD(){if(dj()){bW()}}function dm(){if(aS||!ba){return -}aS=true;ar(W,"focus",bf);ar(W,"blur",aD);af++;u.addPlugin("HeartBeat"+af,{unload:function(){if(aS&&dj()){bW()}}})}function cI(du){var dr=new Date();var dq=dr.getTime();c5=dq;if(cH&&dq=dq.length){return[dq]}var dr=0;var ds=dq.length;var dt=[];for(dr;dr=dr&&dq<=(dr+a4)){return true}}return false}function dn(dq){if(!cT){return""}var du=e(dq,az);if(!du){return""}du=String(du);var ds=new RegExp("^[a-zA-Z0-9]+$"); -if(du.length===32&&ds.test(du)){var dr=du.substr(16,32);if(c9(dr)){var dt=du.substr(0,16);return dt}}return""}function cU(){if(!bT){bT=dn(bS)}var ds=new Date(),dq=Math.round(ds.getTime()/1000),dr=aY("id"),dv=aH(dr),du,dt;if(dv){du=dv.split(".");du.unshift("0");if(bT.length){du[1]=bT}return du}if(bT.length){dt=bT}else{if("0"===ca()){dt=""}else{dt=cX()}}du=["1",dt,dq];return du}function a3(){var dt=cU(),dr=dt[0],ds=dt[1],dq=dt[2];return{newVisitor:dr,uuid:ds,createTs:dq}}function aL(){var dt=new Date(),dr=dt.getTime(),du=a3().createTs;var dq=parseInt(du,10);var ds=(dq*1000)+cQ-dr;return ds}function aR(dq){if(!cb){return}var ds=new Date(),dr=Math.round(ds.getTime()/1000);if(!M(dq)){dq=a3()}var dt=dq.uuid+"."+dq.createTs+".";dk(aY("id"),dt,aL(),bv,c4,bX,aN)}function bR(){var dq=aH(aY("ref"));if(dq.length){try{dq=W.JSON.parse(dq);if(Z(dq)){return dq}}catch(dr){}}return["","",0,""]}function bC(ds){var dr=bp+"testcookie_domain";var dq="testvalue";dk(dr,dq,10000,null,ds,bX,aN);if(aH(dr)===dq){b4(dr,null,ds); -return true}return false}function aJ(){var dr=br;br=false;var dq,ds;for(dq=0;dq0){du=parseInt(du,10);dx(du)}})}var bJ={enabled:true,requests:[],timeout:null,interval:2500,sendRequests:function(){var dq=this.requests; -this.requests=[];if(dq.length===1){bL(dq[0],bP)}else{dl(dq,bP)}},canQueue:function(){return !m&&this.enabled},pushMultiple:function(dr){if(!this.canQueue()){dl(dr,bP);return}var dq;for(dq=0;dq0){if(!M(dr)){dr=""}if(!x(dr)){dr=String(dr)}bs[dq]=dr}};this.getCustomDimension=function(dq){dq=parseInt(dq,10);if(dq>0&&Object.prototype.hasOwnProperty.call(bs,dq)){return bs[dq]}};this.deleteCustomDimension=function(dq){dq=parseInt(dq,10);if(dq>0){delete bs[dq]}};this.setCustomVariable=function(dr,dq,du,ds){var dt;if(!M(ds)){ds="visit"}if(!M(dq)){return}if(!M(du)){du=""}if(dr>0){dq=!x(dq)?String(dq):dq;du=!x(du)?String(du):du;dt=[dq.slice(0,bz),du.slice(0,bz)];if(ds==="visit"||ds===2){cL();aV[dr]=dt}else{if(ds==="page"||ds===3){b1[dr]=dt}else{if(ds==="event"){cq[dr]=dt}}}}};this.getCustomVariable=function(dr,ds){var dq;if(!M(ds)){ds="visit"}if(ds==="page"||ds===3){dq=b1[dr]}else{if(ds==="event"){dq=cq[dr]}else{if(ds==="visit"||ds===2){cL();dq=aV[dr]}}}if(!M(dq)||(dq&&dq[0]==="")){return false}return dq};this.deleteCustomVariable=function(dq,dr){if(this.getCustomVariable(dq,dr)){this.setCustomVariable(dq,"","",dr)}};this.deleteCustomVariables=function(dq){if(dq==="page"||dq===3){b1={} -}else{if(dq==="event"){cq={}}else{if(dq==="visit"||dq===2){aV={}}}}};this.storeCustomVariablesInCookie=function(){bV=true};this.setLinkTrackingTimer=function(dq){bP=dq};this.getLinkTrackingTimer=function(){return bP};this.setDownloadExtensions=function(dq){if(x(dq)){dq=dq.split("|")}dd=dq};this.addDownloadExtensions=function(dr){var dq;if(x(dr)){dr=dr.split("|")}for(dq=0;dq1&&au!=="addTracker"&&au!=="enableLinkTracking"){ao("The method "+au+' is registered more than once in "_paq" variable. Only the last call has an effect. Please have a look at the multiple Matomo trackers documentation: https://developer.matomo.org/guides/tracking-javascript-guide#multiple-piwik-trackers')}az[au]++}}}}return ay}var E=["addTracker","forgetCookieConsentGiven","requireCookieConsent","disableCookies","setTrackerUrl","setAPIUrl","enableCrossDomainLinking","setCrossDomainLinkingTimeout","setSessionCookieTimeout","setVisitorCookieTimeout","setCookieNamePrefix","setCookieSameSite","setSecureCookie","setCookiePath","setCookieDomain","setDomains","setUserId","setVisitorId","setSiteId","alwaysUseSendBeacon","enableLinkTracking","setCookieConsentGiven","requireConsent","setConsentGiven","disablePerformanceTracking","setPagePerformanceTiming"];function ah(av,au){var at=new T(av,au);L.push(at);_paq=c(_paq,E);for(H=0;H<_paq.length;H++){if(_paq[H]){aj(_paq[H]) -}}_paq=new K();u.trigger("TrackerAdded",[at]);return at}ar(W,"beforeunload",am,false);ar(W,"online",function(){if(M(g.serviceWorker)){g.serviceWorker.ready.then(function(at){if(at&&at.sync){return at.sync.register("matomoSync")}},function(){})}},false);ar(W,"message",function(ay){if(!ay||!ay.origin){return}var aA,aw,au;var aB=d(ay.origin);var ax=u.getAsyncTrackers();for(aw=0;aw=0)&&aH(dv)!==String(dw)){var dr="There was an error setting cookie `"+dv+"`. Please check domain and path.";ao(dr)}}function b8(dr){var ds;dr=j(dr,az);if(bV){ds=new RegExp("#.*");return dr.replace(ds,"")}return dr}function b1(dt,dr){var du=s(dr),ds;if(du){return dr}if(dr.slice(0,1)==="/"){return s(dt)+"://"+d(dt)+dr}dt=b8(dt);ds=dt.indexOf("?");if(ds>=0){dt=dt.slice(0,ds)}ds=dt.lastIndexOf("/");if(ds!==dt.length-1){dt=dt.slice(0,ds+1)}return dt+dr}function cO(dt,dr){var ds;dt=String(dt).toLowerCase();dr=String(dr).toLowerCase();if(dt===dr){return true}if(dr.slice(0,1)==="."){if(dt===dr.slice(1)){return true +}ds=dt.length-dr.length;if((ds>0)&&(dt.slice(ds)===dr)){return true}}return false}function cq(dr){var ds=document.createElement("a");if(dr.indexOf("//")!==0&&dr.indexOf("http")!==0){if(dr.indexOf("*")===0){dr=dr.substr(1)}if(dr.indexOf(".")===0){dr=dr.substr(1)}dr="http://"+dr}ds.href=w.toAbsoluteUrl(dr);if(ds.pathname){return ds.pathname}return""}function a9(ds,dr){if(!an(dr,"/")){dr="/"+dr}if(!an(ds,"/")){ds="/"+ds}var dt=(dr==="/"||dr==="/*");if(dt){return true}if(ds===dr){return true}dr=String(dr).toLowerCase();ds=String(ds).toLowerCase();if(U(dr,"*")){dr=dr.slice(0,-1);dt=(!dr||dr==="/");if(dt){return true}if(ds===dr){return true}return ds.indexOf(dr)===0}if(!U(ds,"/")){ds+="/"}if(!U(dr,"/")){dr+="/"}return ds.indexOf(dr)===0}function aw(dv,dx){var ds,dr,dt,du,dw;for(ds=0;ds0)&&(du.slice(dt)===dr)){return true}}}return false}function cu(dr,dt){dr=dr.replace("send_image=0","send_image=1");var ds=new Image(1,1);ds.onload=function(){H=0;if(typeof dt==="function"){dt({request:dr,trackerUrl:aI,success:true})}};ds.onerror=function(){if(typeof dt==="function"){dt({request:dr,trackerUrl:aI,success:false})}};ds.src=aI+(aI.indexOf("?")<0?"?":"&")+dr}function cL(dr){if(dh==="POST"){return true}return dr&&(dr.length>2000||dr.indexOf('{"requests"')===0)}function aP(){return"object"===typeof g&&"function"===typeof g.sendBeacon&&"function"===typeof Blob}function bc(dv,dy,dx){var dt=aP();if(!dt){return false}var du={type:"application/x-www-form-urlencoded; charset=UTF-8"};var dz=false;var ds=aI;try{var dr=new Blob([dv],du);if(dx&&!cL(dv)){dr=new Blob([],du);ds=ds+(ds.indexOf("?")<0?"?":"&")+dv}dz=g.sendBeacon(ds,dr)}catch(dw){return false}if(dz&&typeof dy==="function"){dy({request:dv,trackerUrl:aI,success:true,isSendBeacon:true})}return dz}function dc(ds,dt,dr){if(!M(dr)||null===dr){dr=true +}if(m&&bc(ds,dt,dr)){return}setTimeout(function(){if(m&&bc(ds,dt,dr)){return}var dw;try{var dv=W.XMLHttpRequest?new W.XMLHttpRequest():W.ActiveXObject?new ActiveXObject("Microsoft.XMLHTTP"):null;dv.open("POST",aI,true);dv.onreadystatechange=function(){if(this.readyState===4&&!(this.status>=200&&this.status<300)){var dx=m&&bc(ds,dt,dr);if(!dx&&dr){cu(ds,dt)}else{if(typeof dt==="function"){dt({request:ds,trackerUrl:aI,success:false,xhr:this})}}}else{if(this.readyState===4&&(typeof dt==="function")){dt({request:ds,trackerUrl:aI,success:true,xhr:this})}}};dv.setRequestHeader("Content-Type",cD);dv.withCredentials=true;dv.send(ds)}catch(du){dw=m&&bc(ds,dt,dr);if(!dw&&dr){cu(ds,dt)}else{if(typeof dt==="function"){dt({request:ds,trackerUrl:aI,success:false})}}}},50)}function cl(ds){var dr=new Date();var dt=dr.getTime()+ds;if(!r||dt>r){r=dt}}function bg(){bi=true;cE=new Date().getTime()}function dk(){var dr=new Date().getTime();return !cE||(dr-cE)>bb}function aD(){if(dk()){bX()}}function a0(){if(J.visibilityState==="hidden"&&dk()){bX() +}else{if(J.visibilityState==="visible"){cE=new Date().getTime()}}}function dn(){if(aS||!bb){return}aS=true;ar(W,"focus",bg);ar(W,"blur",aD);ar(W,"visibilitychange",a0);af++;u.addPlugin("HeartBeat"+af,{unload:function(){if(aS&&dk()){bX()}}})}function cJ(dv){var ds=new Date();var dr=ds.getTime();c6=dr;if(cI&&dr=dr.length){return[dr]}var ds=0;var dt=dr.length;var du=[];for(ds;ds=ds&&dr<=(ds+a5)){return true}}return false}function dp(dr){if(!cU){return"" +}var dv=e(dr,az);if(!dv){return""}dv=String(dv);var dt=new RegExp("^[a-zA-Z0-9]+$");if(dv.length===32&&dt.test(dv)){var ds=dv.substr(16,32);if(da(ds)){var du=dv.substr(0,16);return du}}return""}function cV(){if(!bU){bU=dp(bT)}var dt=new Date(),dr=Math.round(dt.getTime()/1000),ds=aY("id"),dw=aH(ds),dv,du;if(dw){dv=dw.split(".");dv.unshift("0");if(bU.length){dv[1]=bU}return dv}if(bU.length){du=bU}else{if("0"===cb()){du=""}else{du=cY()}}dv=["1",du,dr];return dv}function a4(){var du=cV(),ds=du[0],dt=du[1],dr=du[2];return{newVisitor:ds,uuid:dt,createTs:dr}}function aL(){var du=new Date(),ds=du.getTime(),dv=a4().createTs;var dr=parseInt(dv,10);var dt=(dr*1000)+cR-ds;return dt}function aR(dr){if(!cc){return}var dt=new Date(),ds=Math.round(dt.getTime()/1000);if(!M(dr)){dr=a4()}var du=dr.uuid+"."+dr.createTs+".";dl(aY("id"),du,aL(),bw,c5,bY,aN)}function bS(){var dr=aH(aY("ref"));if(dr.length){try{dr=W.JSON.parse(dr);if(Z(dr)){return dr}}catch(ds){}}return["","",0,""]}function bD(dt){var ds=bq+"testcookie_domain"; +var dr="testvalue";dl(ds,dr,10000,null,dt,bY,aN);if(aH(ds)===dr){b5(ds,null,dt);return true}return false}function aJ(){var ds=bs;bs=false;var dr,dt;for(dr=0;dr0){dv=parseInt(dv,10);dy(dv)}})}var bK={enabled:true,requests:[],timeout:null,interval:2500,sendRequests:function(){var dr=this.requests;this.requests=[];if(dr.length===1){bM(dr[0],bQ)}else{dm(dr,bQ)}},canQueue:function(){return !m&&this.enabled},pushMultiple:function(ds){if(!this.canQueue()){dm(ds,bQ);return}var dr;for(dr=0;dr0){if(!M(ds)){ds=""}if(!x(ds)){ds=String(ds)}bt[dr]=ds}};this.getCustomDimension=function(dr){dr=parseInt(dr,10);if(dr>0&&Object.prototype.hasOwnProperty.call(bt,dr)){return bt[dr]}};this.deleteCustomDimension=function(dr){dr=parseInt(dr,10);if(dr>0){delete bt[dr]}};this.setCustomVariable=function(ds,dr,dv,dt){var du;if(!M(dt)){dt="visit"}if(!M(dr)){return}if(!M(dv)){dv=""}if(ds>0){dr=!x(dr)?String(dr):dr;dv=!x(dv)?String(dv):dv;du=[dr.slice(0,bA),dv.slice(0,bA)];if(dt==="visit"||dt===2){cM();aV[ds]=du}else{if(dt==="page"||dt===3){b2[ds]=du}else{if(dt==="event"){cr[ds]=du}}}}};this.getCustomVariable=function(ds,dt){var dr;if(!M(dt)){dt="visit"}if(dt==="page"||dt===3){dr=b2[ds]}else{if(dt==="event"){dr=cr[ds]}else{if(dt==="visit"||dt===2){cM();dr=aV[ds]}}}if(!M(dr)||(dr&&dr[0]==="")){return false +}return dr};this.deleteCustomVariable=function(dr,ds){if(this.getCustomVariable(dr,ds)){this.setCustomVariable(dr,"","",ds)}};this.deleteCustomVariables=function(dr){if(dr==="page"||dr===3){b2={}}else{if(dr==="event"){cr={}}else{if(dr==="visit"||dr===2){aV={}}}}};this.storeCustomVariablesInCookie=function(){bW=true};this.setLinkTrackingTimer=function(dr){bQ=dr};this.getLinkTrackingTimer=function(){return bQ};this.setDownloadExtensions=function(dr){if(x(dr)){dr=dr.split("|")}de=dr};this.addDownloadExtensions=function(ds){var dr;if(x(ds)){ds=ds.split("|")}for(dr=0;dr1&&au!=="addTracker"&&au!=="enableLinkTracking"){ao("The method "+au+' is registered more than once in "_paq" variable. Only the last call has an effect. Please have a look at the multiple Matomo trackers documentation: https://developer.matomo.org/guides/tracking-javascript-guide#multiple-piwik-trackers')}az[au]++}}}}return ay}var E=["addTracker","forgetCookieConsentGiven","requireCookieConsent","disableCookies","setTrackerUrl","setAPIUrl","enableCrossDomainLinking","setCrossDomainLinkingTimeout","setSessionCookieTimeout","setVisitorCookieTimeout","setCookieNamePrefix","setCookieSameSite","setSecureCookie","setCookiePath","setCookieDomain","setDomains","setUserId","setVisitorId","setSiteId","alwaysUseSendBeacon","enableLinkTracking","setCookieConsentGiven","requireConsent","setConsentGiven","disablePerformanceTracking","setPagePerformanceTiming"]; +function ah(av,au){var at=new T(av,au);L.push(at);_paq=c(_paq,E);for(H=0;H<_paq.length;H++){if(_paq[H]){aj(_paq[H])}}_paq=new K();u.trigger("TrackerAdded",[at]);return at}ar(W,"beforeunload",am,false);ar(W,"online",function(){if(M(g.serviceWorker)){g.serviceWorker.ready.then(function(at){if(at&&at.sync){return at.sync.register("matomoSync")}},function(){})}},false);ar(W,"message",function(ay){if(!ay||!ay.origin){return}var aA,aw,au;var aB=d(ay.origin);var ax=u.getAsyncTrackers();for(aw=0;aw=0)&&aH(du)!==String(dv)){var dq="There was an error setting cookie `"+du+"`. Please check domain and path.";ao(dq)}}function b7(dq){var dr;dq=j(dq,az);if(bU){dr=new RegExp("#.*");return dq.replace(dr,"")}return dq}function b0(ds,dq){var dt=s(dq),dr;if(dt){return dq}if(dq.slice(0,1)==="/"){return s(ds)+"://"+d(ds)+dq}ds=b7(ds);dr=ds.indexOf("?");if(dr>=0){ds=ds.slice(0,dr)}dr=ds.lastIndexOf("/");if(dr!==ds.length-1){ds=ds.slice(0,dr+1)}return ds+dq}function cN(ds,dq){var dr;ds=String(ds).toLowerCase();dq=String(dq).toLowerCase();if(ds===dq){return true}if(dq.slice(0,1)==="."){if(ds===dq.slice(1)){return true -}dr=ds.length-dq.length;if((dr>0)&&(ds.slice(dr)===dq)){return true}}return false}function cp(dq){var dr=document.createElement("a");if(dq.indexOf("//")!==0&&dq.indexOf("http")!==0){if(dq.indexOf("*")===0){dq=dq.substr(1)}if(dq.indexOf(".")===0){dq=dq.substr(1)}dq="http://"+dq}dr.href=w.toAbsoluteUrl(dq);if(dr.pathname){return dr.pathname}return""}function a8(dr,dq){if(!an(dq,"/")){dq="/"+dq}if(!an(dr,"/")){dr="/"+dr}var ds=(dq==="/"||dq==="/*");if(ds){return true}if(dr===dq){return true}dq=String(dq).toLowerCase();dr=String(dr).toLowerCase();if(U(dq,"*")){dq=dq.slice(0,-1);ds=(!dq||dq==="/");if(ds){return true}if(dr===dq){return true}return dr.indexOf(dq)===0}if(!U(dr,"/")){dr+="/"}if(!U(dq,"/")){dq+="/"}return dr.indexOf(dq)===0}function aw(du,dw){var dr,dq,ds,dt,dv;for(dr=0;dr0)&&(dt.slice(ds)===dq)){return true}}}return false}function ct(dq,ds){dq=dq.replace("send_image=0","send_image=1");var dr=new Image(1,1);dr.onload=function(){H=0;if(typeof ds==="function"){ds({request:dq,trackerUrl:aI,success:true})}};dr.onerror=function(){if(typeof ds==="function"){ds({request:dq,trackerUrl:aI,success:false})}};dr.src=aI+(aI.indexOf("?")<0?"?":"&")+dq}function cK(dq){if(dg==="POST"){return true}return dq&&(dq.length>2000||dq.indexOf('{"requests"')===0)}function aP(){return"object"===typeof g&&"function"===typeof g.sendBeacon&&"function"===typeof Blob}function bb(du,dx,dw){var ds=aP();if(!ds){return false}var dt={type:"application/x-www-form-urlencoded; charset=UTF-8"};var dy=false;var dr=aI;try{var dq=new Blob([du],dt);if(dw&&!cK(du)){dq=new Blob([],dt);dr=dr+(dr.indexOf("?")<0?"?":"&")+du}dy=g.sendBeacon(dr,dq)}catch(dv){return false}if(dy&&typeof dx==="function"){dx({request:du,trackerUrl:aI,success:true,isSendBeacon:true})}return dy}function db(dr,ds,dq){if(!M(dq)||null===dq){dq=true -}if(m&&bb(dr,ds,dq)){return}setTimeout(function(){if(m&&bb(dr,ds,dq)){return}var dv;try{var du=W.XMLHttpRequest?new W.XMLHttpRequest():W.ActiveXObject?new ActiveXObject("Microsoft.XMLHTTP"):null;du.open("POST",aI,true);du.onreadystatechange=function(){if(this.readyState===4&&!(this.status>=200&&this.status<300)){var dw=m&&bb(dr,ds,dq);if(!dw&&dq){ct(dr,ds)}else{if(typeof ds==="function"){ds({request:dr,trackerUrl:aI,success:false,xhr:this})}}}else{if(this.readyState===4&&(typeof ds==="function")){ds({request:dr,trackerUrl:aI,success:true,xhr:this})}}};du.setRequestHeader("Content-Type",cC);du.withCredentials=true;du.send(dr)}catch(dt){dv=m&&bb(dr,ds,dq);if(!dv&&dq){ct(dr,ds)}else{if(typeof ds==="function"){ds({request:dr,trackerUrl:aI,success:false})}}}},50)}function ck(dr){var dq=new Date();var ds=dq.getTime()+dr;if(!r||ds>r){r=ds}}function bf(){bh=true;cD=new Date().getTime()}function dj(){var dq=new Date().getTime();return !cD||(dq-cD)>ba}function aD(){if(dj()){bW()}}function dm(){if(aS||!ba){return -}aS=true;ar(W,"focus",bf);ar(W,"blur",aD);af++;u.addPlugin("HeartBeat"+af,{unload:function(){if(aS&&dj()){bW()}}})}function cI(du){var dr=new Date();var dq=dr.getTime();c5=dq;if(cH&&dq=dq.length){return[dq]}var dr=0;var ds=dq.length;var dt=[];for(dr;dr=dr&&dq<=(dr+a4)){return true}}return false}function dn(dq){if(!cT){return""}var du=e(dq,az);if(!du){return""}du=String(du);var ds=new RegExp("^[a-zA-Z0-9]+$"); -if(du.length===32&&ds.test(du)){var dr=du.substr(16,32);if(c9(dr)){var dt=du.substr(0,16);return dt}}return""}function cU(){if(!bT){bT=dn(bS)}var ds=new Date(),dq=Math.round(ds.getTime()/1000),dr=aY("id"),dv=aH(dr),du,dt;if(dv){du=dv.split(".");du.unshift("0");if(bT.length){du[1]=bT}return du}if(bT.length){dt=bT}else{if("0"===ca()){dt=""}else{dt=cX()}}du=["1",dt,dq];return du}function a3(){var dt=cU(),dr=dt[0],ds=dt[1],dq=dt[2];return{newVisitor:dr,uuid:ds,createTs:dq}}function aL(){var dt=new Date(),dr=dt.getTime(),du=a3().createTs;var dq=parseInt(du,10);var ds=(dq*1000)+cQ-dr;return ds}function aR(dq){if(!cb){return}var ds=new Date(),dr=Math.round(ds.getTime()/1000);if(!M(dq)){dq=a3()}var dt=dq.uuid+"."+dq.createTs+".";dk(aY("id"),dt,aL(),bv,c4,bX,aN)}function bR(){var dq=aH(aY("ref"));if(dq.length){try{dq=W.JSON.parse(dq);if(Z(dq)){return dq}}catch(dr){}}return["","",0,""]}function bC(ds){var dr=bp+"testcookie_domain";var dq="testvalue";dk(dr,dq,10000,null,ds,bX,aN);if(aH(dr)===dq){b4(dr,null,ds); -return true}return false}function aJ(){var dr=br;br=false;var dq,ds;for(dq=0;dq0){du=parseInt(du,10);dx(du)}})}var bJ={enabled:true,requests:[],timeout:null,interval:2500,sendRequests:function(){var dq=this.requests; -this.requests=[];if(dq.length===1){bL(dq[0],bP)}else{dl(dq,bP)}},canQueue:function(){return !m&&this.enabled},pushMultiple:function(dr){if(!this.canQueue()){dl(dr,bP);return}var dq;for(dq=0;dq0){if(!M(dr)){dr=""}if(!x(dr)){dr=String(dr)}bs[dq]=dr}};this.getCustomDimension=function(dq){dq=parseInt(dq,10);if(dq>0&&Object.prototype.hasOwnProperty.call(bs,dq)){return bs[dq]}};this.deleteCustomDimension=function(dq){dq=parseInt(dq,10);if(dq>0){delete bs[dq]}};this.setCustomVariable=function(dr,dq,du,ds){var dt;if(!M(ds)){ds="visit"}if(!M(dq)){return}if(!M(du)){du=""}if(dr>0){dq=!x(dq)?String(dq):dq;du=!x(du)?String(du):du;dt=[dq.slice(0,bz),du.slice(0,bz)];if(ds==="visit"||ds===2){cL();aV[dr]=dt}else{if(ds==="page"||ds===3){b1[dr]=dt}else{if(ds==="event"){cq[dr]=dt}}}}};this.getCustomVariable=function(dr,ds){var dq;if(!M(ds)){ds="visit"}if(ds==="page"||ds===3){dq=b1[dr]}else{if(ds==="event"){dq=cq[dr]}else{if(ds==="visit"||ds===2){cL();dq=aV[dr]}}}if(!M(dq)||(dq&&dq[0]==="")){return false}return dq};this.deleteCustomVariable=function(dq,dr){if(this.getCustomVariable(dq,dr)){this.setCustomVariable(dq,"","",dr)}};this.deleteCustomVariables=function(dq){if(dq==="page"||dq===3){b1={} -}else{if(dq==="event"){cq={}}else{if(dq==="visit"||dq===2){aV={}}}}};this.storeCustomVariablesInCookie=function(){bV=true};this.setLinkTrackingTimer=function(dq){bP=dq};this.getLinkTrackingTimer=function(){return bP};this.setDownloadExtensions=function(dq){if(x(dq)){dq=dq.split("|")}dd=dq};this.addDownloadExtensions=function(dr){var dq;if(x(dr)){dr=dr.split("|")}for(dq=0;dq1&&au!=="addTracker"&&au!=="enableLinkTracking"){ao("The method "+au+' is registered more than once in "_paq" variable. Only the last call has an effect. Please have a look at the multiple Matomo trackers documentation: https://developer.matomo.org/guides/tracking-javascript-guide#multiple-piwik-trackers')}az[au]++}}}}return ay}var E=["addTracker","forgetCookieConsentGiven","requireCookieConsent","disableCookies","setTrackerUrl","setAPIUrl","enableCrossDomainLinking","setCrossDomainLinkingTimeout","setSessionCookieTimeout","setVisitorCookieTimeout","setCookieNamePrefix","setCookieSameSite","setSecureCookie","setCookiePath","setCookieDomain","setDomains","setUserId","setVisitorId","setSiteId","alwaysUseSendBeacon","enableLinkTracking","setCookieConsentGiven","requireConsent","setConsentGiven","disablePerformanceTracking","setPagePerformanceTiming"];function ah(av,au){var at=new T(av,au);L.push(at);_paq=c(_paq,E);for(H=0;H<_paq.length;H++){if(_paq[H]){aj(_paq[H]) -}}_paq=new K();u.trigger("TrackerAdded",[at]);return at}ar(W,"beforeunload",am,false);ar(W,"online",function(){if(M(g.serviceWorker)){g.serviceWorker.ready.then(function(at){if(at&&at.sync){return at.sync.register("matomoSync")}},function(){})}},false);ar(W,"message",function(ay){if(!ay||!ay.origin){return}var aA,aw,au;var aB=d(ay.origin);var ax=u.getAsyncTrackers();for(aw=0;aw=0)&&aH(dv)!==String(dw)){var dr="There was an error setting cookie `"+dv+"`. Please check domain and path.";ao(dr)}}function b8(dr){var ds;dr=j(dr,az);if(bV){ds=new RegExp("#.*");return dr.replace(ds,"")}return dr}function b1(dt,dr){var du=s(dr),ds;if(du){return dr}if(dr.slice(0,1)==="/"){return s(dt)+"://"+d(dt)+dr}dt=b8(dt);ds=dt.indexOf("?");if(ds>=0){dt=dt.slice(0,ds)}ds=dt.lastIndexOf("/");if(ds!==dt.length-1){dt=dt.slice(0,ds+1)}return dt+dr}function cO(dt,dr){var ds;dt=String(dt).toLowerCase();dr=String(dr).toLowerCase();if(dt===dr){return true}if(dr.slice(0,1)==="."){if(dt===dr.slice(1)){return true +}ds=dt.length-dr.length;if((ds>0)&&(dt.slice(ds)===dr)){return true}}return false}function cq(dr){var ds=document.createElement("a");if(dr.indexOf("//")!==0&&dr.indexOf("http")!==0){if(dr.indexOf("*")===0){dr=dr.substr(1)}if(dr.indexOf(".")===0){dr=dr.substr(1)}dr="http://"+dr}ds.href=w.toAbsoluteUrl(dr);if(ds.pathname){return ds.pathname}return""}function a9(ds,dr){if(!an(dr,"/")){dr="/"+dr}if(!an(ds,"/")){ds="/"+ds}var dt=(dr==="/"||dr==="/*");if(dt){return true}if(ds===dr){return true}dr=String(dr).toLowerCase();ds=String(ds).toLowerCase();if(U(dr,"*")){dr=dr.slice(0,-1);dt=(!dr||dr==="/");if(dt){return true}if(ds===dr){return true}return ds.indexOf(dr)===0}if(!U(ds,"/")){ds+="/"}if(!U(dr,"/")){dr+="/"}return ds.indexOf(dr)===0}function aw(dv,dx){var ds,dr,dt,du,dw;for(ds=0;ds0)&&(du.slice(dt)===dr)){return true}}}return false}function cu(dr,dt){dr=dr.replace("send_image=0","send_image=1");var ds=new Image(1,1);ds.onload=function(){H=0;if(typeof dt==="function"){dt({request:dr,trackerUrl:aI,success:true})}};ds.onerror=function(){if(typeof dt==="function"){dt({request:dr,trackerUrl:aI,success:false})}};ds.src=aI+(aI.indexOf("?")<0?"?":"&")+dr}function cL(dr){if(dh==="POST"){return true}return dr&&(dr.length>2000||dr.indexOf('{"requests"')===0)}function aP(){return"object"===typeof g&&"function"===typeof g.sendBeacon&&"function"===typeof Blob}function bc(dv,dy,dx){var dt=aP();if(!dt){return false}var du={type:"application/x-www-form-urlencoded; charset=UTF-8"};var dz=false;var ds=aI;try{var dr=new Blob([dv],du);if(dx&&!cL(dv)){dr=new Blob([],du);ds=ds+(ds.indexOf("?")<0?"?":"&")+dv}dz=g.sendBeacon(ds,dr)}catch(dw){return false}if(dz&&typeof dy==="function"){dy({request:dv,trackerUrl:aI,success:true,isSendBeacon:true})}return dz}function dc(ds,dt,dr){if(!M(dr)||null===dr){dr=true +}if(m&&bc(ds,dt,dr)){return}setTimeout(function(){if(m&&bc(ds,dt,dr)){return}var dw;try{var dv=W.XMLHttpRequest?new W.XMLHttpRequest():W.ActiveXObject?new ActiveXObject("Microsoft.XMLHTTP"):null;dv.open("POST",aI,true);dv.onreadystatechange=function(){if(this.readyState===4&&!(this.status>=200&&this.status<300)){var dx=m&&bc(ds,dt,dr);if(!dx&&dr){cu(ds,dt)}else{if(typeof dt==="function"){dt({request:ds,trackerUrl:aI,success:false,xhr:this})}}}else{if(this.readyState===4&&(typeof dt==="function")){dt({request:ds,trackerUrl:aI,success:true,xhr:this})}}};dv.setRequestHeader("Content-Type",cD);dv.withCredentials=true;dv.send(ds)}catch(du){dw=m&&bc(ds,dt,dr);if(!dw&&dr){cu(ds,dt)}else{if(typeof dt==="function"){dt({request:ds,trackerUrl:aI,success:false})}}}},50)}function cl(ds){var dr=new Date();var dt=dr.getTime()+ds;if(!r||dt>r){r=dt}}function bg(){bi=true;cE=new Date().getTime()}function dk(){var dr=new Date().getTime();return !cE||(dr-cE)>bb}function aD(){if(dk()){bX()}}function a0(){if(J.visibilityState==="hidden"&&dk()){bX() +}else{if(J.visibilityState==="visible"){cE=new Date().getTime()}}}function dn(){if(aS||!bb){return}aS=true;ar(W,"focus",bg);ar(W,"blur",aD);ar(W,"visibilitychange",a0);af++;u.addPlugin("HeartBeat"+af,{unload:function(){if(aS&&dk()){bX()}}})}function cJ(dv){var ds=new Date();var dr=ds.getTime();c6=dr;if(cI&&dr=dr.length){return[dr]}var ds=0;var dt=dr.length;var du=[];for(ds;ds=ds&&dr<=(ds+a5)){return true}}return false}function dp(dr){if(!cU){return"" +}var dv=e(dr,az);if(!dv){return""}dv=String(dv);var dt=new RegExp("^[a-zA-Z0-9]+$");if(dv.length===32&&dt.test(dv)){var ds=dv.substr(16,32);if(da(ds)){var du=dv.substr(0,16);return du}}return""}function cV(){if(!bU){bU=dp(bT)}var dt=new Date(),dr=Math.round(dt.getTime()/1000),ds=aY("id"),dw=aH(ds),dv,du;if(dw){dv=dw.split(".");dv.unshift("0");if(bU.length){dv[1]=bU}return dv}if(bU.length){du=bU}else{if("0"===cb()){du=""}else{du=cY()}}dv=["1",du,dr];return dv}function a4(){var du=cV(),ds=du[0],dt=du[1],dr=du[2];return{newVisitor:ds,uuid:dt,createTs:dr}}function aL(){var du=new Date(),ds=du.getTime(),dv=a4().createTs;var dr=parseInt(dv,10);var dt=(dr*1000)+cR-ds;return dt}function aR(dr){if(!cc){return}var dt=new Date(),ds=Math.round(dt.getTime()/1000);if(!M(dr)){dr=a4()}var du=dr.uuid+"."+dr.createTs+".";dl(aY("id"),du,aL(),bw,c5,bY,aN)}function bS(){var dr=aH(aY("ref"));if(dr.length){try{dr=W.JSON.parse(dr);if(Z(dr)){return dr}}catch(ds){}}return["","",0,""]}function bD(dt){var ds=bq+"testcookie_domain"; +var dr="testvalue";dl(ds,dr,10000,null,dt,bY,aN);if(aH(ds)===dr){b5(ds,null,dt);return true}return false}function aJ(){var ds=bs;bs=false;var dr,dt;for(dr=0;dr0){dv=parseInt(dv,10);dy(dv)}})}var bK={enabled:true,requests:[],timeout:null,interval:2500,sendRequests:function(){var dr=this.requests;this.requests=[];if(dr.length===1){bM(dr[0],bQ)}else{dm(dr,bQ)}},canQueue:function(){return !m&&this.enabled},pushMultiple:function(ds){if(!this.canQueue()){dm(ds,bQ);return}var dr;for(dr=0;dr0){if(!M(ds)){ds=""}if(!x(ds)){ds=String(ds)}bt[dr]=ds}};this.getCustomDimension=function(dr){dr=parseInt(dr,10);if(dr>0&&Object.prototype.hasOwnProperty.call(bt,dr)){return bt[dr]}};this.deleteCustomDimension=function(dr){dr=parseInt(dr,10);if(dr>0){delete bt[dr]}};this.setCustomVariable=function(ds,dr,dv,dt){var du;if(!M(dt)){dt="visit"}if(!M(dr)){return}if(!M(dv)){dv=""}if(ds>0){dr=!x(dr)?String(dr):dr;dv=!x(dv)?String(dv):dv;du=[dr.slice(0,bA),dv.slice(0,bA)];if(dt==="visit"||dt===2){cM();aV[ds]=du}else{if(dt==="page"||dt===3){b2[ds]=du}else{if(dt==="event"){cr[ds]=du}}}}};this.getCustomVariable=function(ds,dt){var dr;if(!M(dt)){dt="visit"}if(dt==="page"||dt===3){dr=b2[ds]}else{if(dt==="event"){dr=cr[ds]}else{if(dt==="visit"||dt===2){cM();dr=aV[ds]}}}if(!M(dr)||(dr&&dr[0]==="")){return false +}return dr};this.deleteCustomVariable=function(dr,ds){if(this.getCustomVariable(dr,ds)){this.setCustomVariable(dr,"","",ds)}};this.deleteCustomVariables=function(dr){if(dr==="page"||dr===3){b2={}}else{if(dr==="event"){cr={}}else{if(dr==="visit"||dr===2){aV={}}}}};this.storeCustomVariablesInCookie=function(){bW=true};this.setLinkTrackingTimer=function(dr){bQ=dr};this.getLinkTrackingTimer=function(){return bQ};this.setDownloadExtensions=function(dr){if(x(dr)){dr=dr.split("|")}de=dr};this.addDownloadExtensions=function(ds){var dr;if(x(ds)){ds=ds.split("|")}for(dr=0;dr1&&au!=="addTracker"&&au!=="enableLinkTracking"){ao("The method "+au+' is registered more than once in "_paq" variable. Only the last call has an effect. Please have a look at the multiple Matomo trackers documentation: https://developer.matomo.org/guides/tracking-javascript-guide#multiple-piwik-trackers')}az[au]++}}}}return ay}var E=["addTracker","forgetCookieConsentGiven","requireCookieConsent","disableCookies","setTrackerUrl","setAPIUrl","enableCrossDomainLinking","setCrossDomainLinkingTimeout","setSessionCookieTimeout","setVisitorCookieTimeout","setCookieNamePrefix","setCookieSameSite","setSecureCookie","setCookiePath","setCookieDomain","setDomains","setUserId","setVisitorId","setSiteId","alwaysUseSendBeacon","enableLinkTracking","setCookieConsentGiven","requireConsent","setConsentGiven","disablePerformanceTracking","setPagePerformanceTiming"]; +function ah(av,au){var at=new T(av,au);L.push(at);_paq=c(_paq,E);for(H=0;H<_paq.length;H++){if(_paq[H]){aj(_paq[H])}}_paq=new K();u.trigger("TrackerAdded",[at]);return at}ar(W,"beforeunload",am,false);ar(W,"online",function(){if(M(g.serviceWorker)){g.serviceWorker.ready.then(function(at){if(at&&at.sync){return at.sync.register("matomoSync")}},function(){})}},false);ar(W,"message",function(ay){if(!ay||!ay.origin){return}var aA,aw,au;var aB=d(ay.origin);var ax=u.getAsyncTrackers();for(aw=0;aw=0)&&aH(du)!==String(dv)){var dq="There was an error setting cookie `"+du+"`. Please check domain and path.";ao(dq)}}function b7(dq){var dr;dq=j(dq,az);if(bU){dr=new RegExp("#.*");return dq.replace(dr,"")}return dq}function b0(ds,dq){var dt=s(dq),dr;if(dt){return dq}if(dq.slice(0,1)==="/"){return s(ds)+"://"+d(ds)+dq}ds=b7(ds);dr=ds.indexOf("?");if(dr>=0){ds=ds.slice(0,dr)}dr=ds.lastIndexOf("/");if(dr!==ds.length-1){ds=ds.slice(0,dr+1)}return ds+dq}function cN(ds,dq){var dr;ds=String(ds).toLowerCase();dq=String(dq).toLowerCase();if(ds===dq){return true}if(dq.slice(0,1)==="."){if(ds===dq.slice(1)){return true -}dr=ds.length-dq.length;if((dr>0)&&(ds.slice(dr)===dq)){return true}}return false}function cp(dq){var dr=document.createElement("a");if(dq.indexOf("//")!==0&&dq.indexOf("http")!==0){if(dq.indexOf("*")===0){dq=dq.substr(1)}if(dq.indexOf(".")===0){dq=dq.substr(1)}dq="http://"+dq}dr.href=w.toAbsoluteUrl(dq);if(dr.pathname){return dr.pathname}return""}function a8(dr,dq){if(!an(dq,"/")){dq="/"+dq}if(!an(dr,"/")){dr="/"+dr}var ds=(dq==="/"||dq==="/*");if(ds){return true}if(dr===dq){return true}dq=String(dq).toLowerCase();dr=String(dr).toLowerCase();if(U(dq,"*")){dq=dq.slice(0,-1);ds=(!dq||dq==="/");if(ds){return true}if(dr===dq){return true}return dr.indexOf(dq)===0}if(!U(dr,"/")){dr+="/"}if(!U(dq,"/")){dq+="/"}return dr.indexOf(dq)===0}function aw(du,dw){var dr,dq,ds,dt,dv;for(dr=0;dr0)&&(dt.slice(ds)===dq)){return true}}}return false}function ct(dq,ds){dq=dq.replace("send_image=0","send_image=1");var dr=new Image(1,1);dr.onload=function(){H=0;if(typeof ds==="function"){ds({request:dq,trackerUrl:aI,success:true})}};dr.onerror=function(){if(typeof ds==="function"){ds({request:dq,trackerUrl:aI,success:false})}};dr.src=aI+(aI.indexOf("?")<0?"?":"&")+dq}function cK(dq){if(dg==="POST"){return true}return dq&&(dq.length>2000||dq.indexOf('{"requests"')===0)}function aP(){return"object"===typeof g&&"function"===typeof g.sendBeacon&&"function"===typeof Blob}function bb(du,dx,dw){var ds=aP();if(!ds){return false}var dt={type:"application/x-www-form-urlencoded; charset=UTF-8"};var dy=false;var dr=aI;try{var dq=new Blob([du],dt);if(dw&&!cK(du)){dq=new Blob([],dt);dr=dr+(dr.indexOf("?")<0?"?":"&")+du}dy=g.sendBeacon(dr,dq)}catch(dv){return false}if(dy&&typeof dx==="function"){dx({request:du,trackerUrl:aI,success:true,isSendBeacon:true})}return dy}function db(dr,ds,dq){if(!M(dq)||null===dq){dq=true -}if(m&&bb(dr,ds,dq)){return}setTimeout(function(){if(m&&bb(dr,ds,dq)){return}var dv;try{var du=W.XMLHttpRequest?new W.XMLHttpRequest():W.ActiveXObject?new ActiveXObject("Microsoft.XMLHTTP"):null;du.open("POST",aI,true);du.onreadystatechange=function(){if(this.readyState===4&&!(this.status>=200&&this.status<300)){var dw=m&&bb(dr,ds,dq);if(!dw&&dq){ct(dr,ds)}else{if(typeof ds==="function"){ds({request:dr,trackerUrl:aI,success:false,xhr:this})}}}else{if(this.readyState===4&&(typeof ds==="function")){ds({request:dr,trackerUrl:aI,success:true,xhr:this})}}};du.setRequestHeader("Content-Type",cC);du.withCredentials=true;du.send(dr)}catch(dt){dv=m&&bb(dr,ds,dq);if(!dv&&dq){ct(dr,ds)}else{if(typeof ds==="function"){ds({request:dr,trackerUrl:aI,success:false})}}}},50)}function ck(dr){var dq=new Date();var ds=dq.getTime()+dr;if(!r||ds>r){r=ds}}function bf(){bh=true;cD=new Date().getTime()}function dj(){var dq=new Date().getTime();return !cD||(dq-cD)>ba}function aD(){if(dj()){bW()}}function dm(){if(aS||!ba){return -}aS=true;ar(W,"focus",bf);ar(W,"blur",aD);af++;u.addPlugin("HeartBeat"+af,{unload:function(){if(aS&&dj()){bW()}}})}function cI(du){var dr=new Date();var dq=dr.getTime();c5=dq;if(cH&&dq=dq.length){return[dq]}var dr=0;var ds=dq.length;var dt=[];for(dr;dr=dr&&dq<=(dr+a4)){return true}}return false}function dn(dq){if(!cT){return""}var du=e(dq,az);if(!du){return""}du=String(du);var ds=new RegExp("^[a-zA-Z0-9]+$"); -if(du.length===32&&ds.test(du)){var dr=du.substr(16,32);if(c9(dr)){var dt=du.substr(0,16);return dt}}return""}function cU(){if(!bT){bT=dn(bS)}var ds=new Date(),dq=Math.round(ds.getTime()/1000),dr=aY("id"),dv=aH(dr),du,dt;if(dv){du=dv.split(".");du.unshift("0");if(bT.length){du[1]=bT}return du}if(bT.length){dt=bT}else{if("0"===ca()){dt=""}else{dt=cX()}}du=["1",dt,dq];return du}function a3(){var dt=cU(),dr=dt[0],ds=dt[1],dq=dt[2];return{newVisitor:dr,uuid:ds,createTs:dq}}function aL(){var dt=new Date(),dr=dt.getTime(),du=a3().createTs;var dq=parseInt(du,10);var ds=(dq*1000)+cQ-dr;return ds}function aR(dq){if(!cb){return}var ds=new Date(),dr=Math.round(ds.getTime()/1000);if(!M(dq)){dq=a3()}var dt=dq.uuid+"."+dq.createTs+".";dk(aY("id"),dt,aL(),bv,c4,bX,aN)}function bR(){var dq=aH(aY("ref"));if(dq.length){try{dq=W.JSON.parse(dq);if(Z(dq)){return dq}}catch(dr){}}return["","",0,""]}function bC(ds){var dr=bp+"testcookie_domain";var dq="testvalue";dk(dr,dq,10000,null,ds,bX,aN);if(aH(dr)===dq){b4(dr,null,ds); -return true}return false}function aJ(){var dr=br;br=false;var dq,ds;for(dq=0;dq0){du=parseInt(du,10);dx(du)}})}var bJ={enabled:true,requests:[],timeout:null,interval:2500,sendRequests:function(){var dq=this.requests; -this.requests=[];if(dq.length===1){bL(dq[0],bP)}else{dl(dq,bP)}},canQueue:function(){return !m&&this.enabled},pushMultiple:function(dr){if(!this.canQueue()){dl(dr,bP);return}var dq;for(dq=0;dq0){if(!M(dr)){dr=""}if(!x(dr)){dr=String(dr)}bs[dq]=dr}};this.getCustomDimension=function(dq){dq=parseInt(dq,10);if(dq>0&&Object.prototype.hasOwnProperty.call(bs,dq)){return bs[dq]}};this.deleteCustomDimension=function(dq){dq=parseInt(dq,10);if(dq>0){delete bs[dq]}};this.setCustomVariable=function(dr,dq,du,ds){var dt;if(!M(ds)){ds="visit"}if(!M(dq)){return}if(!M(du)){du=""}if(dr>0){dq=!x(dq)?String(dq):dq;du=!x(du)?String(du):du;dt=[dq.slice(0,bz),du.slice(0,bz)];if(ds==="visit"||ds===2){cL();aV[dr]=dt}else{if(ds==="page"||ds===3){b1[dr]=dt}else{if(ds==="event"){cq[dr]=dt}}}}};this.getCustomVariable=function(dr,ds){var dq;if(!M(ds)){ds="visit"}if(ds==="page"||ds===3){dq=b1[dr]}else{if(ds==="event"){dq=cq[dr]}else{if(ds==="visit"||ds===2){cL();dq=aV[dr]}}}if(!M(dq)||(dq&&dq[0]==="")){return false}return dq};this.deleteCustomVariable=function(dq,dr){if(this.getCustomVariable(dq,dr)){this.setCustomVariable(dq,"","",dr)}};this.deleteCustomVariables=function(dq){if(dq==="page"||dq===3){b1={} -}else{if(dq==="event"){cq={}}else{if(dq==="visit"||dq===2){aV={}}}}};this.storeCustomVariablesInCookie=function(){bV=true};this.setLinkTrackingTimer=function(dq){bP=dq};this.getLinkTrackingTimer=function(){return bP};this.setDownloadExtensions=function(dq){if(x(dq)){dq=dq.split("|")}dd=dq};this.addDownloadExtensions=function(dr){var dq;if(x(dr)){dr=dr.split("|")}for(dq=0;dq1&&au!=="addTracker"&&au!=="enableLinkTracking"){ao("The method "+au+' is registered more than once in "_paq" variable. Only the last call has an effect. Please have a look at the multiple Matomo trackers documentation: https://developer.matomo.org/guides/tracking-javascript-guide#multiple-piwik-trackers')}az[au]++}}}}return ay}var E=["addTracker","forgetCookieConsentGiven","requireCookieConsent","disableCookies","setTrackerUrl","setAPIUrl","enableCrossDomainLinking","setCrossDomainLinkingTimeout","setSessionCookieTimeout","setVisitorCookieTimeout","setCookieNamePrefix","setCookieSameSite","setSecureCookie","setCookiePath","setCookieDomain","setDomains","setUserId","setVisitorId","setSiteId","alwaysUseSendBeacon","enableLinkTracking","setCookieConsentGiven","requireConsent","setConsentGiven","disablePerformanceTracking","setPagePerformanceTiming"];function ah(av,au){var at=new T(av,au);L.push(at);_paq=c(_paq,E);for(H=0;H<_paq.length;H++){if(_paq[H]){aj(_paq[H]) -}}_paq=new K();u.trigger("TrackerAdded",[at]);return at}ar(W,"beforeunload",am,false);ar(W,"online",function(){if(M(g.serviceWorker)){g.serviceWorker.ready.then(function(at){if(at&&at.sync){return at.sync.register("matomoSync")}},function(){})}},false);ar(W,"message",function(ay){if(!ay||!ay.origin){return}var aA,aw,au;var aB=d(ay.origin);var ax=u.getAsyncTrackers();for(aw=0;aw=0)&&aH(dv)!==String(dw)){var dr="There was an error setting cookie `"+dv+"`. Please check domain and path.";ao(dr)}}function b8(dr){var ds;dr=j(dr,az);if(bV){ds=new RegExp("#.*");return dr.replace(ds,"")}return dr}function b1(dt,dr){var du=s(dr),ds;if(du){return dr}if(dr.slice(0,1)==="/"){return s(dt)+"://"+d(dt)+dr}dt=b8(dt);ds=dt.indexOf("?");if(ds>=0){dt=dt.slice(0,ds)}ds=dt.lastIndexOf("/");if(ds!==dt.length-1){dt=dt.slice(0,ds+1)}return dt+dr}function cO(dt,dr){var ds;dt=String(dt).toLowerCase();dr=String(dr).toLowerCase();if(dt===dr){return true}if(dr.slice(0,1)==="."){if(dt===dr.slice(1)){return true +}ds=dt.length-dr.length;if((ds>0)&&(dt.slice(ds)===dr)){return true}}return false}function cq(dr){var ds=document.createElement("a");if(dr.indexOf("//")!==0&&dr.indexOf("http")!==0){if(dr.indexOf("*")===0){dr=dr.substr(1)}if(dr.indexOf(".")===0){dr=dr.substr(1)}dr="http://"+dr}ds.href=w.toAbsoluteUrl(dr);if(ds.pathname){return ds.pathname}return""}function a9(ds,dr){if(!an(dr,"/")){dr="/"+dr}if(!an(ds,"/")){ds="/"+ds}var dt=(dr==="/"||dr==="/*");if(dt){return true}if(ds===dr){return true}dr=String(dr).toLowerCase();ds=String(ds).toLowerCase();if(U(dr,"*")){dr=dr.slice(0,-1);dt=(!dr||dr==="/");if(dt){return true}if(ds===dr){return true}return ds.indexOf(dr)===0}if(!U(ds,"/")){ds+="/"}if(!U(dr,"/")){dr+="/"}return ds.indexOf(dr)===0}function aw(dv,dx){var ds,dr,dt,du,dw;for(ds=0;ds0)&&(du.slice(dt)===dr)){return true}}}return false}function cu(dr,dt){dr=dr.replace("send_image=0","send_image=1");var ds=new Image(1,1);ds.onload=function(){H=0;if(typeof dt==="function"){dt({request:dr,trackerUrl:aI,success:true})}};ds.onerror=function(){if(typeof dt==="function"){dt({request:dr,trackerUrl:aI,success:false})}};ds.src=aI+(aI.indexOf("?")<0?"?":"&")+dr}function cL(dr){if(dh==="POST"){return true}return dr&&(dr.length>2000||dr.indexOf('{"requests"')===0)}function aP(){return"object"===typeof g&&"function"===typeof g.sendBeacon&&"function"===typeof Blob}function bc(dv,dy,dx){var dt=aP();if(!dt){return false}var du={type:"application/x-www-form-urlencoded; charset=UTF-8"};var dz=false;var ds=aI;try{var dr=new Blob([dv],du);if(dx&&!cL(dv)){dr=new Blob([],du);ds=ds+(ds.indexOf("?")<0?"?":"&")+dv}dz=g.sendBeacon(ds,dr)}catch(dw){return false}if(dz&&typeof dy==="function"){dy({request:dv,trackerUrl:aI,success:true,isSendBeacon:true})}return dz}function dc(ds,dt,dr){if(!M(dr)||null===dr){dr=true +}if(m&&bc(ds,dt,dr)){return}setTimeout(function(){if(m&&bc(ds,dt,dr)){return}var dw;try{var dv=W.XMLHttpRequest?new W.XMLHttpRequest():W.ActiveXObject?new ActiveXObject("Microsoft.XMLHTTP"):null;dv.open("POST",aI,true);dv.onreadystatechange=function(){if(this.readyState===4&&!(this.status>=200&&this.status<300)){var dx=m&&bc(ds,dt,dr);if(!dx&&dr){cu(ds,dt)}else{if(typeof dt==="function"){dt({request:ds,trackerUrl:aI,success:false,xhr:this})}}}else{if(this.readyState===4&&(typeof dt==="function")){dt({request:ds,trackerUrl:aI,success:true,xhr:this})}}};dv.setRequestHeader("Content-Type",cD);dv.withCredentials=true;dv.send(ds)}catch(du){dw=m&&bc(ds,dt,dr);if(!dw&&dr){cu(ds,dt)}else{if(typeof dt==="function"){dt({request:ds,trackerUrl:aI,success:false})}}}},50)}function cl(ds){var dr=new Date();var dt=dr.getTime()+ds;if(!r||dt>r){r=dt}}function bg(){bi=true;cE=new Date().getTime()}function dk(){var dr=new Date().getTime();return !cE||(dr-cE)>bb}function aD(){if(dk()){bX()}}function a0(){if(J.visibilityState==="hidden"&&dk()){bX() +}else{if(J.visibilityState==="visible"){cE=new Date().getTime()}}}function dn(){if(aS||!bb){return}aS=true;ar(W,"focus",bg);ar(W,"blur",aD);ar(W,"visibilitychange",a0);af++;u.addPlugin("HeartBeat"+af,{unload:function(){if(aS&&dk()){bX()}}})}function cJ(dv){var ds=new Date();var dr=ds.getTime();c6=dr;if(cI&&dr=dr.length){return[dr]}var ds=0;var dt=dr.length;var du=[];for(ds;ds=ds&&dr<=(ds+a5)){return true}}return false}function dp(dr){if(!cU){return"" +}var dv=e(dr,az);if(!dv){return""}dv=String(dv);var dt=new RegExp("^[a-zA-Z0-9]+$");if(dv.length===32&&dt.test(dv)){var ds=dv.substr(16,32);if(da(ds)){var du=dv.substr(0,16);return du}}return""}function cV(){if(!bU){bU=dp(bT)}var dt=new Date(),dr=Math.round(dt.getTime()/1000),ds=aY("id"),dw=aH(ds),dv,du;if(dw){dv=dw.split(".");dv.unshift("0");if(bU.length){dv[1]=bU}return dv}if(bU.length){du=bU}else{if("0"===cb()){du=""}else{du=cY()}}dv=["1",du,dr];return dv}function a4(){var du=cV(),ds=du[0],dt=du[1],dr=du[2];return{newVisitor:ds,uuid:dt,createTs:dr}}function aL(){var du=new Date(),ds=du.getTime(),dv=a4().createTs;var dr=parseInt(dv,10);var dt=(dr*1000)+cR-ds;return dt}function aR(dr){if(!cc){return}var dt=new Date(),ds=Math.round(dt.getTime()/1000);if(!M(dr)){dr=a4()}var du=dr.uuid+"."+dr.createTs+".";dl(aY("id"),du,aL(),bw,c5,bY,aN)}function bS(){var dr=aH(aY("ref"));if(dr.length){try{dr=W.JSON.parse(dr);if(Z(dr)){return dr}}catch(ds){}}return["","",0,""]}function bD(dt){var ds=bq+"testcookie_domain"; +var dr="testvalue";dl(ds,dr,10000,null,dt,bY,aN);if(aH(ds)===dr){b5(ds,null,dt);return true}return false}function aJ(){var ds=bs;bs=false;var dr,dt;for(dr=0;dr0){dv=parseInt(dv,10);dy(dv)}})}var bK={enabled:true,requests:[],timeout:null,interval:2500,sendRequests:function(){var dr=this.requests;this.requests=[];if(dr.length===1){bM(dr[0],bQ)}else{dm(dr,bQ)}},canQueue:function(){return !m&&this.enabled},pushMultiple:function(ds){if(!this.canQueue()){dm(ds,bQ);return}var dr;for(dr=0;dr0){if(!M(ds)){ds=""}if(!x(ds)){ds=String(ds)}bt[dr]=ds}};this.getCustomDimension=function(dr){dr=parseInt(dr,10);if(dr>0&&Object.prototype.hasOwnProperty.call(bt,dr)){return bt[dr]}};this.deleteCustomDimension=function(dr){dr=parseInt(dr,10);if(dr>0){delete bt[dr]}};this.setCustomVariable=function(ds,dr,dv,dt){var du;if(!M(dt)){dt="visit"}if(!M(dr)){return}if(!M(dv)){dv=""}if(ds>0){dr=!x(dr)?String(dr):dr;dv=!x(dv)?String(dv):dv;du=[dr.slice(0,bA),dv.slice(0,bA)];if(dt==="visit"||dt===2){cM();aV[ds]=du}else{if(dt==="page"||dt===3){b2[ds]=du}else{if(dt==="event"){cr[ds]=du}}}}};this.getCustomVariable=function(ds,dt){var dr;if(!M(dt)){dt="visit"}if(dt==="page"||dt===3){dr=b2[ds]}else{if(dt==="event"){dr=cr[ds]}else{if(dt==="visit"||dt===2){cM();dr=aV[ds]}}}if(!M(dr)||(dr&&dr[0]==="")){return false +}return dr};this.deleteCustomVariable=function(dr,ds){if(this.getCustomVariable(dr,ds)){this.setCustomVariable(dr,"","",ds)}};this.deleteCustomVariables=function(dr){if(dr==="page"||dr===3){b2={}}else{if(dr==="event"){cr={}}else{if(dr==="visit"||dr===2){aV={}}}}};this.storeCustomVariablesInCookie=function(){bW=true};this.setLinkTrackingTimer=function(dr){bQ=dr};this.getLinkTrackingTimer=function(){return bQ};this.setDownloadExtensions=function(dr){if(x(dr)){dr=dr.split("|")}de=dr};this.addDownloadExtensions=function(ds){var dr;if(x(ds)){ds=ds.split("|")}for(dr=0;dr1&&au!=="addTracker"&&au!=="enableLinkTracking"){ao("The method "+au+' is registered more than once in "_paq" variable. Only the last call has an effect. Please have a look at the multiple Matomo trackers documentation: https://developer.matomo.org/guides/tracking-javascript-guide#multiple-piwik-trackers')}az[au]++}}}}return ay}var E=["addTracker","forgetCookieConsentGiven","requireCookieConsent","disableCookies","setTrackerUrl","setAPIUrl","enableCrossDomainLinking","setCrossDomainLinkingTimeout","setSessionCookieTimeout","setVisitorCookieTimeout","setCookieNamePrefix","setCookieSameSite","setSecureCookie","setCookiePath","setCookieDomain","setDomains","setUserId","setVisitorId","setSiteId","alwaysUseSendBeacon","enableLinkTracking","setCookieConsentGiven","requireConsent","setConsentGiven","disablePerformanceTracking","setPagePerformanceTiming"]; +function ah(av,au){var at=new T(av,au);L.push(at);_paq=c(_paq,E);for(H=0;H<_paq.length;H++){if(_paq[H]){aj(_paq[H])}}_paq=new K();u.trigger("TrackerAdded",[at]);return at}ar(W,"beforeunload",am,false);ar(W,"online",function(){if(M(g.serviceWorker)){g.serviceWorker.ready.then(function(at){if(at&&at.sync){return at.sync.register("matomoSync")}},function(){})}},false);ar(W,"message",function(ay){if(!ay||!ay.origin){return}var aA,aw,au;var aB=d(ay.origin);var ax=u.getAsyncTrackers();for(aw=0;aw