=0?l:a.length+l];if("function"==typeof e){var s=Te(t,n);return r.map(a,function(n,r){return e(r,Re(t,r,0,0,s),i[r])?r:null})}var u="string"==typeof e?e.match(Le):"";if(u)switch(u[2]){case"visIdx":case"visible":var c=parseInt(u[1],10);if(c<0){var d=r.map(a,function(t,e){return t.bVisible?e:null});return[d[d.length+c]]}return[W(t,c)];case"name":return r.map(o,function(t,e){return t===u[1]?e:null});default:return[]}if(e.nodeName&&e._DT_CellIndex)return[e._DT_CellIndex.column];var f=r(i).filter(e).map(function(){return r.inArray(this,i)}).toArray();if(f.length||!e.nodeName)return f;var h=r(e).closest("*[data-dt-column]");return h.length?[h.data("dt-column")]:[]},t,n)}(n,t,e)},1);return n.selector.cols=t,n.selector.opts=e,n}),l("columns().header()","column().header()",function(t,e){return this.iterator("column",function(t,e){return t.aoColumns[e].nTh},1)}),l("columns().footer()","column().footer()",function(t,e){return this.iterator("column",function(t,e){return t.aoColumns[e].nTf},1)}),l("columns().data()","column().data()",function(){return this.iterator("column-rows",Re,1)}),l("columns().dataSrc()","column().dataSrc()",function(){return this.iterator("column",function(t,e){return t.aoColumns[e].mData},1)}),l("columns().cache()","column().cache()",function(t){return this.iterator("column-rows",function(e,n,r,a,o){return D(e.aoData,o,"search"===t?"_aFilterData":"_aSortData",n)},1)}),l("columns().nodes()","column().nodes()",function(){return this.iterator("column-rows",function(t,e,n,r,a){return D(t.aoData,a,"anCells",e)},1)}),l("columns().visible()","column().visible()",function(t,e){var n=this,a=this.iterator("column",function(e,n){if(void 0===t)return e.aoColumns[n].bVisible;!function(t,e,n){var a,o,i,l,s=t.aoColumns,u=s[e],c=t.aoData;if(void 0===n)return u.bVisible;if(u.bVisible!==n){if(n){var d=r.inArray(!0,y(s,"bVisible"),e+1);for(o=0,i=c.length;on;return!0},s.isDataTable=s.fnIsDataTable=function(t){var e=r(t).get(0),n=!1;return t instanceof s.Api||(r.each(s.settings,function(t,a){var o=a.nScrollHead?r("table",a.nScrollHead)[0]:null,i=a.nScrollFoot?r("table",a.nScrollFoot)[0]:null;a.nTable!==e&&o!==e&&i!==e||(n=!0)}),n)},s.tables=s.fnTables=function(t){var e=!1;r.isPlainObject(t)&&(e=t.api,t=t.visible);var n=r.map(s.settings,function(e){if(!t||t&&r(e.nTable).is(":visible"))return e.nTable});return e?new o(n):n},s.camelToHungarian=F,i("$()",function(t,e){var n=this.rows(e).nodes(),a=r(n);return r([].concat(a.filter(t).toArray(),a.find(t).toArray()))}),r.each(["on","one","off"],function(t,e){i(e+"()",function(){var t=Array.prototype.slice.call(arguments);t[0]=r.map(t[0].split(/\s/),function(t){return t.match(/\.dt\b/)?t:t+".dt"}).join(" ");var n=r(this.tables().nodes());return n[e].apply(n,t),this})}),i("clear()",function(){return this.iterator("table",function(t){et(t)})}),i("settings()",function(){return new o(this.context,this.context)}),i("init()",function(){var t=this.context;return t.length?t[0].oInit:null}),i("data()",function(){return this.iterator("table",function(t){return y(t.aoData,"_aData")}).flatten()}),i("destroy()",function(t){return t=t||!1,this.iterator("table",function(e){var n,a=e.oClasses,i=e.nTable,l=e.nTBody,u=e.nTHead,c=e.nTFoot,d=r(i),f=r(l),h=r(e.nTableWrapper),p=r.map(e.aoData,function(t){return t.nTr});e.bDestroying=!0,pe(e,"aoDestroyCallback","destroy",[e]),t||new o(e).columns().visible(!0),h.off(".DT").find(":not(tbody *)").off(".DT"),r(window).off(".DT-"+e.sInstance),i!=u.parentNode&&(d.children("thead").detach(),d.append(u)),c&&i!=c.parentNode&&(d.children("tfoot").detach(),d.append(c)),e.aaSorting=[],e.aaSortingFixed=[],re(e),r(p).removeClass(e.asStripeClasses.join(" ")),r("th, td",u).removeClass(a.sSortable+" "+a.sSortableAsc+" "+a.sSortableDesc+" "+a.sSortableNone),f.children().detach(),f.append(p);var g=e.nTableWrapper.parentNode,v=t?"remove":"detach";d[v](),h[v](),!t&&g&&(g.insertBefore(i,e.nTableReinsertBefore),d.css("width",e.sDestroyWidth).removeClass(a.sTable),(n=e.asDestroyStripes.length)&&f.children().each(function(t){r(this).addClass(e.asDestroyStripes[t%n])}));var b=r.inArray(e,s.settings);-1!==b&&s.settings.splice(b,1)})}),r.each(["column","row","cell"],function(t,e){i(e+"s().every()",function(t){var n=this.selector.opts,r=this;return this.iterator(e,function(a,o,i,l,s){t.call(r[e](o,"cell"===e?i:n,"cell"===e?n:void 0),o,i,l,s)})})}),i("i18n()",function(t,e,n){var a=this.context[0],o=K(t)(a.oLanguage);return void 0===o&&(o=e),void 0!==n&&r.isPlainObject(o)&&(o=void 0!==o[n]?o[n]:o._),o.replace("%d",n)}),s.version="1.13.4",s.settings=[],s.models={},s.models.oSearch={bCaseInsensitive:!0,sSearch:"",bRegex:!1,bSmart:!0,return:!1},s.models.oRow={nTr:null,anCells:null,_aData:[],_aSortData:null,_aFilterData:null,_sFilterRow:null,_sRowStripe:"",src:null,idx:-1},s.models.oColumn={idx:null,aDataSort:null,asSorting:null,bSearchable:null,bSortable:null,bVisible:null,_sManualType:null,_bAttrSrc:!1,fnCreatedCell:null,fnGetData:null,fnSetData:null,mData:null,mRender:null,nTh:null,nTf:null,sClass:null,sContentPadding:null,sDefaultContent:null,sName:null,sSortDataType:"std",sSortingClass:null,sSortingClassJUI:null,sTitle:null,sType:null,sWidth:null,sWidthOrig:null},s.defaults={aaData:null,aaSorting:[[0,"asc"]],aaSortingFixed:[],ajax:null,aLengthMenu:[10,25,50,100],aoColumns:null,aoColumnDefs:null,aoSearchCols:[],asStripeClasses:null,bAutoWidth:!0,bDeferRender:!1,bDestroy:!1,bFilter:!0,bInfo:!0,bLengthChange:!0,bPaginate:!0,bProcessing:!1,bRetrieve:!1,bScrollCollapse:!1,bServerSide:!1,bSort:!0,bSortMulti:!0,bSortCellsTop:!1,bSortClasses:!0,bStateSave:!1,fnCreatedRow:null,fnDrawCallback:null,fnFooterCallback:null,fnFormatNumber:function(t){return t.toString().replace(/\B(?=(\d{3})+(?!\d))/g,this.oLanguage.sThousands)},fnHeaderCallback:null,fnInfoCallback:null,fnInitComplete:null,fnPreDrawCallback:null,fnRowCallback:null,fnServerData:null,fnServerParams:null,fnStateLoadCallback:function(t){try{return JSON.parse((-1===t.iStateDuration?sessionStorage:localStorage).getItem("DataTables_"+t.sInstance+"_"+location.pathname))}catch(t){return{}}},fnStateLoadParams:null,fnStateLoaded:null,fnStateSaveCallback:function(t,e){try{(-1===t.iStateDuration?sessionStorage:localStorage).setItem("DataTables_"+t.sInstance+"_"+location.pathname,JSON.stringify(e))}catch(t){}},fnStateSaveParams:null,iStateDuration:7200,iDeferLoading:null,iDisplayLength:10,iDisplayStart:0,iTabIndex:0,oClasses:{},oLanguage:{oAria:{sSortAscending:": activate to sort column ascending",sSortDescending:": activate to sort column descending"},oPaginate:{sFirst:"First",sLast:"Last",sNext:"Next",sPrevious:"Previous"},sEmptyTable:"No data available in table",sInfo:"Showing _START_ to _END_ of _TOTAL_ entries",sInfoEmpty:"Showing 0 to 0 of 0 entries",sInfoFiltered:"(filtered from _MAX_ total entries)",sInfoPostFix:"",sDecimal:"",sThousands:",",sLengthMenu:"Show _MENU_ entries",sLoadingRecords:"Loading...",sProcessing:"",sSearch:"Search:",sSearchPlaceholder:"",sUrl:"",sZeroRecords:"No matching records found"},oSearch:r.extend({},s.models.oSearch),sAjaxDataProp:"data",sAjaxSource:null,sDom:"lfrtip",searchDelay:null,sPaginationType:"simple_numbers",sScrollX:"",sScrollXInner:"",sScrollY:"",sServerMethod:"GET",renderer:null,rowId:"DT_RowId"},I(s.defaults),s.defaults.column={aDataSort:null,iDataSort:-1,asSorting:["asc","desc"],bSearchable:!0,bSortable:!0,bVisible:!0,fnCreatedCell:null,mData:null,mRender:null,sCellType:"td",sClass:"",sContentPadding:"",sDefaultContent:null,sName:"",sSortDataType:"std",sTitle:null,sType:null,sWidth:null},I(s.defaults.column),s.models.oSettings={oFeatures:{bAutoWidth:null,bDeferRender:null,bFilter:null,bInfo:null,bLengthChange:null,bPaginate:null,bProcessing:null,bServerSide:null,bSort:null,bSortMulti:null,bSortClasses:null,bStateSave:null},oScroll:{bCollapse:null,iBarWidth:0,sX:null,sXInner:null,sY:null},oLanguage:{fnInfoCallback:null},oBrowser:{bScrollOversize:!1,bScrollbarLeft:!1,bBounding:!1,barWidth:0},ajax:null,aanFeatures:[],aoData:[],aiDisplay:[],aiDisplayMaster:[],aIds:{},aoColumns:[],aoHeader:[],aoFooter:[],oPreviousSearch:{},aoPreSearchCols:[],aaSorting:null,aaSortingFixed:[],asStripeClasses:null,asDestroyStripes:[],sDestroyWidth:0,aoRowCallback:[],aoHeaderCallback:[],aoFooterCallback:[],aoDrawCallback:[],aoRowCreatedCallback:[],aoPreDrawCallback:[],aoInitComplete:[],aoStateSaveParams:[],aoStateLoadParams:[],aoStateLoaded:[],sTableId:"",nTable:null,nTHead:null,nTFoot:null,nTBody:null,nTableWrapper:null,bDeferLoading:!1,bInitialised:!1,aoOpenRows:[],sDom:null,searchDelay:null,sPaginationType:"two_button",iStateDuration:0,aoStateSave:[],aoStateLoad:[],oSavedState:null,oLoadedState:null,sAjaxSource:null,sAjaxDataProp:null,jqXHR:null,json:void 0,oAjaxData:void 0,fnServerData:null,aoServerParams:[],sServerMethod:null,fnFormatNumber:null,aLengthMenu:null,iDraw:0,bDrawing:!1,iDrawError:-1,_iDisplayLength:10,_iDisplayStart:0,_iRecordsTotal:0,_iRecordsDisplay:0,oClasses:{},bFiltered:!1,bSorted:!1,bSortCellsTop:null,oInit:null,aoDestroyCallback:[],fnRecordsTotal:function(){return"ssp"==be(this)?1*this._iRecordsTotal:this.aiDisplayMaster.length},fnRecordsDisplay:function(){return"ssp"==be(this)?1*this._iRecordsDisplay:this.aiDisplay.length},fnDisplayEnd:function(){var t=this._iDisplayLength,e=this._iDisplayStart,n=e+t,r=this.aiDisplay.length,a=this.oFeatures,o=a.bPaginate;return a.bServerSide?!1===o||-1===t?e+r:Math.min(e+t,this._iRecordsDisplay):!o||n>r||-1===t?r:n},oInstance:null,sInstance:null,iTabIndex:0,nScrollHead:null,nScrollFoot:null,aLastSort:[],oPlugins:{},rowIdFn:null,rowId:null},s.ext=a={buttons:{},classes:{},builder:"-source-",errMode:"alert",feature:[],search:[],selector:{cell:[],column:[],row:[]},internal:{},legacy:{ajax:null},pager:{},renderer:{pageButton:{},header:{}},order:{},type:{detect:[],search:{},order:{}},_unique:0,fnVersionCheck:s.fnVersionCheck,iApiIndex:0,oJUIClasses:{},sVersion:s.version},r.extend(a,{afnFiltering:a.search,aTypes:a.type.detect,ofnSearch:a.type.search,oSort:a.type.order,afnSortData:a.order,aoFeatures:a.feature,oApi:a.internal,oStdClasses:a.classes,oPagination:a.pager}),r.extend(s.ext.classes,{sTable:"dataTable",sNoFooter:"no-footer",sPageButton:"paginate_button",sPageButtonActive:"current",sPageButtonDisabled:"disabled",sStripeOdd:"odd",sStripeEven:"even",sRowEmpty:"dataTables_empty",sWrapper:"dataTables_wrapper",sFilter:"dataTables_filter",sInfo:"dataTables_info",sPaging:"dataTables_paginate paging_",sLength:"dataTables_length",sProcessing:"dataTables_processing",sSortAsc:"sorting_asc",sSortDesc:"sorting_desc",sSortable:"sorting",sSortableAsc:"sorting_desc_disabled",sSortableDesc:"sorting_asc_disabled",sSortableNone:"sorting_disabled",sSortColumn:"sorting_",sFilterInput:"",sLengthSelect:"",sScrollWrapper:"dataTables_scroll",sScrollHead:"dataTables_scrollHead",sScrollHeadInner:"dataTables_scrollHeadInner",sScrollBody:"dataTables_scrollBody",sScrollFoot:"dataTables_scrollFoot",sScrollFootInner:"dataTables_scrollFootInner",sHeaderTH:"",sFooterTH:"",sSortJUIAsc:"",sSortJUIDesc:"",sSortJUI:"",sSortJUIAscAllowed:"",sSortJUIDescAllowed:"",sSortJUIWrapper:"",sSortIcon:"",sJUIHeader:"",sJUIFooter:""});var Pe=s.ext.pager;function je(t,e){var n=[],r=Pe.numbers_length,a=Math.floor(r/2);return e<=r?n=_(0,e):t<=a?((n=_(0,r-2)).push("ellipsis"),n.push(e-1)):t>=e-1-a?((n=_(e-(r-2),e)).splice(0,0,"ellipsis"),n.splice(0,0,0)):((n=_(t-a+2,t+a-1)).push("ellipsis"),n.push(e-1),n.splice(0,0,"ellipsis"),n.splice(0,0,0)),n.DT_el="span",n}r.extend(Pe,{simple:function(t,e){return["previous","next"]},full:function(t,e){return["first","previous","next","last"]},numbers:function(t,e){return[je(t,e)]},simple_numbers:function(t,e){return["previous",je(t,e),"next"]},full_numbers:function(t,e){return["first","previous",je(t,e),"next","last"]},first_last_numbers:function(t,e){return["first",je(t,e),"last"]},_numbers:je,numbers_length:7}),r.extend(!0,s.ext.renderer,{pageButton:{_:function(t,e,n,a,o,i){var l,s,u,c=t.oClasses,d=t.oLanguage.oPaginate,f=t.oLanguage.oAria.paginate||{},h=function(e,a){var u,p,g,v,b=c.sPageButtonDisabled,m=function(e){Wt(t,e.data.action,!0)};for(u=0,p=a.length;u").appendTo(e);h(S,g)}else{switch(l=null,s=g,v=t.iTabIndex,g){case"ellipsis":e.append('…');break;case"first":l=d.sFirst,0===o&&(v=-1,s+=" "+b);break;case"previous":l=d.sPrevious,0===o&&(v=-1,s+=" "+b);break;case"next":l=d.sNext,0!==i&&o!==i-1||(v=-1,s+=" "+b);break;case"last":l=d.sLast,0!==i&&o!==i-1||(v=-1,s+=" "+b);break;default:l=t.fnFormatNumber(g+1),s=o===g?c.sPageButtonActive:""}if(null!==l){var y=t.oInit.pagingTag||"a",D=-1!==s.indexOf(b);fe(r("<"+y+">",{class:c.sPageButton+" "+s,"aria-controls":t.sTableId,"aria-disabled":D?"true":null,"aria-label":f[g],"aria-role":"link","aria-current":s===c.sPageButtonActive?"page":null,"data-dt-idx":g,tabindex:v,id:0===n&&"string"==typeof g?t.sTableId+"_"+g:null}).html(l).appendTo(e),{action:g},m)}}};try{u=r(e).find(document.activeElement).data("dt-idx")}catch(t){}h(r(e).empty(),a),void 0!==u&&r(e).find("[data-dt-idx="+u+"]").trigger("focus")}}}),r.extend(s.ext.type.detect,[function(t,e){var n=e.oLanguage.sDecimal;return m(t,n)?"num"+n:null},function(t,e){if(t&&!(t instanceof Date)&&!f.test(t))return null;var n=Date.parse(t);return null!==n&&!isNaN(n)||g(t)?"date":null},function(t,e){var n=e.oLanguage.sDecimal;return m(t,n,!0)?"num-fmt"+n:null},function(t,e){var n=e.oLanguage.sDecimal;return S(t,n)?"html-num"+n:null},function(t,e){var n=e.oLanguage.sDecimal;return S(t,n,!0)?"html-num-fmt"+n:null},function(t,e){return g(t)||"string"==typeof t&&-1!==t.indexOf("<")?"html":null}]),r.extend(s.ext.type.search,{html:function(t){return g(t)?t:"string"==typeof t?t.replace(c," ").replace(d,""):""},string:function(t){return g(t)?t:"string"==typeof t?t.replace(c," "):t}});var Ne=function(t,e,n,r){if(0!==t&&(!t||"-"===t))return-1/0;let a=typeof t;return"number"===a||"bigint"===a?t:(e&&(t=b(t,e)),t.replace&&(n&&(t=t.replace(n,"")),r&&(t=t.replace(r,""))),1*t)};function He(t){r.each({num:function(e){return Ne(e,t)},"num-fmt":function(e){return Ne(e,t,p)},"html-num":function(e){return Ne(e,t,d)},"html-num-fmt":function(e){return Ne(e,t,d,p)}},function(e,n){a.type.order[e+t+"-pre"]=n,e.match(/^html\-/)&&(a.type.search[e+t]=a.type.search.html)})}r.extend(a.type.order,{"date-pre":function(t){var e=Date.parse(t);return isNaN(e)?-1/0:e},"html-pre":function(t){return g(t)?"":t.replace?t.replace(/<.*?>/g,"").toLowerCase():t+""},"string-pre":function(t){return g(t)?"":"string"==typeof t?t.toLowerCase():t.toString?t.toString():""},"string-asc":function(t,e){return te?1:0},"string-desc":function(t,e){return te?-1:0}}),He(""),r.extend(!0,s.ext.renderer,{header:{_:function(t,e,n,a){r(t.nTable).on("order.dt.DT",function(r,o,i,l){if(t===o){var s=n.idx;e.removeClass(a.sSortAsc+" "+a.sSortDesc).addClass("asc"==l[s]?a.sSortAsc:"desc"==l[s]?a.sSortDesc:n.sSortingClass)}})},jqueryui:function(t,e,n,a){r("").addClass(a.sSortJUIWrapper).append(e.contents()).append(r("").addClass(a.sSortIcon+" "+n.sSortingClassJUI)).appendTo(e),r(t.nTable).on("order.dt.DT",function(r,o,i,l){if(t===o){var s=n.idx;e.removeClass(a.sSortAsc+" "+a.sSortDesc).addClass("asc"==l[s]?a.sSortAsc:"desc"==l[s]?a.sSortDesc:n.sSortingClass),e.find("span."+a.sSortIcon).removeClass(a.sSortJUIAsc+" "+a.sSortJUIDesc+" "+a.sSortJUI+" "+a.sSortJUIAscAllowed+" "+a.sSortJUIDescAllowed).addClass("asc"==l[s]?a.sSortJUIAsc:"desc"==l[s]?a.sSortJUIDesc:n.sSortingClassJUI)}})}}});var Oe=function(t){return Array.isArray(t)&&(t=t.join(",")),"string"==typeof t?t.replace(/&/g,"&").replace(//g,">").replace(/"/g,"""):t};function Me(t,e,n,r,a){return window.moment?t[e](a):window.luxon?t[n](a):r?t[r](a):t}var ke=!1;function We(t,e,n){var r;if(window.moment){if(!(r=window.moment.utc(t,e,n,!0)).isValid())return null}else if(window.luxon){if(!(r=e&&"string"==typeof t?window.luxon.DateTime.fromFormat(t,e):window.luxon.DateTime.fromISO(t)).isValid)return null;r.setLocale(n)}else e?(ke||alert("DataTables warning: Formatted date without Moment.js or Luxon - https://datatables.net/tn/17"),ke=!0):r=new Date(t);return r}function Ee(t){return function(e,n,r,a){0===arguments.length?(r="en",n=null,e=null):1===arguments.length?(r="en",n=e,e=null):2===arguments.length&&(r=n,n=e,e=null);var o="datetime-"+n;return s.ext.type.order[o]||(s.ext.type.detect.unshift(function(t){return t===o&&o}),s.ext.type.order[o+"-asc"]=function(t,e){var n=t.valueOf(),r=e.valueOf();return n===r?0:nr?-1:1}),function(i,l){if(null===i||void 0===i)if("--now"===a){var s=new Date;i=new Date(Date.UTC(s.getFullYear(),s.getMonth(),s.getDate(),s.getHours(),s.getMinutes(),s.getSeconds()))}else i="";if("type"===l)return o;if(""===i)return"sort"!==l?"":We("0000-01-01 00:00:00",null,r);if(null!==n&&e===n&&"sort"!==l&&"type"!==l&&!(i instanceof Date))return i;var u=We(i,e,r);if(null===u)return i;if("sort"===l)return u;var c=null===n?Me(u,"toDate","toJSDate","")[t]():Me(u,"format","toFormat","toISOString",n);return"display"===l?Oe(c):c}}}var Be=",",Ue=".";if(Intl)try{for(var Ve=(new Intl.NumberFormat).formatToParts(100000.1),Xe=0;Xe 1 ) {
keypress.push( keydowns[ e.key ][1] );
}
keypresses.push( keypress );
}
}
delete keydowns[ e.key ];
lastKeyup = keyupTime;
}, supportsPassive ? { passive: true } : false );
form.addEventListener( "focusin", function ( e ) {
lastKeydown = null;
lastKeyup = null;
keydowns = {};
}, supportsPassive ? { passive: true } : false );
form.addEventListener( "focusout", function ( e ) {
lastKeydown = null;
lastKeyup = null;
keydowns = {};
}, supportsPassive ? { passive: true } : false );
}
document.addEventListener( 'mousedown', function ( e ) {
lastMousedown = ( new Date() ).getTime();
}, supportsPassive ? { passive: true } : false );
document.addEventListener( 'mouseup', function ( e ) {
if ( ! lastMousedown ) {
// If the mousedown happened before this script was loaded, but the mouseup happened after...
return;
}
var now = ( new Date() ).getTime();
var mouseclick = [];
mouseclick.push( now - lastMousedown );
if ( lastMouseup ) {
mouseclick.push( lastMousedown - lastMouseup );
}
mouseclicks.push( mouseclick );
lastMouseup = now;
// If the mouse has been clicked, don't record this time as an interval between keypresses.
lastKeydown = null;
lastKeyup = null;
keydowns = {};
}, supportsPassive ? { passive: true } : false );
document.addEventListener( 'mousemove', function ( e ) {
if ( mousemoveTimer ) {
clearTimeout( mousemoveTimer );
mousemoveTimer = null;
}
else {
mousemoveStart = ( new Date() ).getTime();
lastMousemoveX = e.offsetX;
lastMousemoveY = e.offsetY;
}
mousemoveTimer = setTimeout( function ( theEvent, originalMousemoveStart ) {
var now = ( new Date() ).getTime() - 500; // To account for the timer delay.
var mousemove = [];
mousemove.push( now - originalMousemoveStart );
mousemove.push(
Math.round(
Math.sqrt(
Math.pow( theEvent.offsetX - lastMousemoveX, 2 ) +
Math.pow( theEvent.offsetY - lastMousemoveY, 2 )
)
)
);
if ( mousemove[1] > 0 ) {
// If there was no measurable distance, then it wasn't really a move.
mousemoves.push( mousemove );
}
mousemoveStart = null;
mousemoveTimer = null;
}, 500, e, mousemoveStart );
}, supportsPassive ? { passive: true } : false );
document.addEventListener( 'touchmove', function ( e ) {
if ( touchmoveCountTimer ) {
clearTimeout( touchmoveCountTimer );
}
touchmoveCountTimer = setTimeout( function () {
touchmoveCount++;
}, 500 );
}, supportsPassive ? { passive: true } : false );
document.addEventListener( 'touchstart', function ( e ) {
lastTouchStart = ( new Date() ).getTime();
}, supportsPassive ? { passive: true } : false );
document.addEventListener( 'touchend', function ( e ) {
if ( ! lastTouchStart ) {
// If the touchstart happened before this script was loaded, but the touchend happened after...
return;
}
var now = ( new Date() ).getTime();
var touchEvent = [];
touchEvent.push( now - lastTouchStart );
if ( lastTouchEnd ) {
touchEvent.push( lastTouchStart - lastTouchEnd );
}
touchEvents.push( touchEvent );
lastTouchEnd = now;
// Don't record this time as an interval between keypresses.
lastKeydown = null;
lastKeyup = null;
keydowns = {};
}, supportsPassive ? { passive: true } : false );
document.addEventListener( 'scroll', function ( e ) {
if ( scrollCountTimer ) {
clearTimeout( scrollCountTimer );
}
scrollCountTimer = setTimeout( function () {
scrollCount++;
}, 500 );
}, supportsPassive ? { passive: true } : false );
}
/**
* For the timestamp data that is collected, don't send more than `limit` data points in the request.
* Choose a random slice and send those.
*/
function prepare_timestamp_array_for_request( a, limit ) {
if ( ! limit ) {
limit = 100;
}
var rv = '';
if ( a.length > 0 ) {
var random_starting_point = Math.max( 0, Math.floor( Math.random() * a.length - limit ) );
for ( var i = 0; i < limit && i < a.length; i++ ) {
rv += a[ random_starting_point + i ][0];
if ( a[ random_starting_point + i ].length >= 2 ) {
rv += "," + a[ random_starting_point + i ][1];
}
rv += ";";
}
}
return rv;
}
if ( document.readyState !== 'loading' ) {
init();
} else {
document.addEventListener( 'DOMContentLoaded', init );
}
})();;