Static | ZeroBOX
No static analysis available.
* @license almond 0.3.3 Copyright jQuery Foundation and other contributors.
* Released under MIT license, http://github.com/requirejs/almond/LICENSE
* protobuf.js v6.8.6 (c) 2016, daniel wirtz
* compiled mon, 26 feb 2018 11:35:35 utc
* licensed under the bsd-3-clause license
* see: https://github.com/dcodeio/protobuf.js for details
* JavaScript project for accessing and normalizing the accelerometer and gyroscope data on mobile devices
* @author Doruk Eker <dorukeker@gmail.com>
* @copyright Doruk Eker <http://dorukeker.com>
* @version 2.0.4
* @license MIT License | http://opensource.org/licenses/MIT
if(void 0===require){var requirejs,require,define;!function(t){function e(t,e){return v.call(t,e)}function n(t,e){var n,r,i,o,s,a,u,l,f,h,c,p,d=e&&e.split("/"),g=y.map,m=g&&g["*"]||{};if(t){for(t=t.split("/"),s=t.length-1,y.nodeIdCompat&&w.test(t[s])&&(t[s]=t[s].replace(w,"")),"."===t[0].charAt(0)&&d&&(p=d.slice(0,d.length-1),t=p.concat(t)),f=0;f<t.length;f++)if("."===(c=t[f]))t.splice(f,1),f-=1;else if(".."===c){if(0===f||1===f&&".."===t[2]||".."===t[f-1])continue;f>0&&(t.splice(f-1,2),f-=2)}t=t.join("/")}if((d||m)&&g){for(n=t.split("/"),f=n.length;f>0;f-=1){if(r=n.slice(0,f).join("/"),d)for(h=d.length;h>0;h-=1)if((i=g[d.slice(0,h).join("/")])&&(i=i[r])){o=i,a=f;break}if(o)break;!u&&m&&m[r]&&(u=m[r],l=f)}!o&&u&&(o=u,a=l),o&&(n.splice(0,a,o),t=n.join("/"))}return t}function r(e,n){return function(){var r=b.call(arguments,0);return"string"!=typeof r[0]&&1===r.length&&r.push(null),h.apply(t,r.concat([e,n]))}}function i(t){return function(e){return n(e,t)}}function o(t){return function(e){d[t]=e}}function s(n){i
return this._push(p.float.writeFloatLE,4,t)},s.prototype.double=function(t){return this._push(p.float.writeDoubleLE,8,t)};var m=p.Array.prototype.set?function(t,e,n){e.set(t,n)}:function(t,e,n){for(var r=0;r<t.length;++r)e[n+r]=t[r]};s.prototype.bytes=function(t){var e=t.length>>>0;if(!e)return this._push(a,1,0);if(p.isString(t)){var n=s.alloc(e=g.length(t));g.decode(t,n,0),t=n}return this.uint32(e)._push(m,e,t)},s.prototype.string=function(t){var e=y.length(t);return e?this.uint32(e)._push(y.write,e,t):this._push(a,1,0)},s.prototype.fork=function(){return this.states=new o(this),this.head=this.tail=new r(i,0,0),this.len=0,this},s.prototype.reset=function(){return this.states?(this.head=this.states.head,this.tail=this.states.tail,this.len=this.states.len,this.states=this.states.next):(this.head=this.tail=new r(i,0,0),this.len=0),this},s.prototype.ldelim=function(){var t=this.head,e=this.tail,n=this.len;return this.reset().uint32(n),n&&(this.tail.next=t.next,this.tail=e,this.len+=n),this},s.prototype.finish=fu
;e.ldelim()}return null!=t.errorX&&t.hasOwnProperty("errorX")&&e.uint32(45).float(t.errorX),null!=t.errorY&&t.hasOwnProperty("errorY")&&e.uint32(53).float(t.errorY),null!=t.errorT&&t.hasOwnProperty("errorT")&&e.uint32(61).float(t.errorT),null!=t.origPointsNumber&&t.hasOwnProperty("origPointsNumber")&&e.uint32(64).uint32(t.origPointsNumber),e},o.encodeDelimited=function(t,e){return this.encode(t,e).ldelim()},o.decode=function(t,n){t instanceof e||(t=e.create(t));for(var r=void 0===n?t.len:t.pos+n,o=new i.JavascriptMouseGestureEvent;t.pos<r;){var s=t.uint32();switch(s>>>3){case 2:if(o.xCoeffs&&o.xCoeffs.length||(o.xCoeffs=[]),2==(7&s))for(var a=t.uint32()+t.pos;t.pos<a;)o.xCoeffs.push(t.float());else o.xCoeffs.push(t.float());break;case 3:if(o.yCoeffs&&o.yCoeffs.length||(o.yCoeffs=[]),2==(7&s))for(var a=t.uint32()+t.pos;t.pos<a;)o.yCoeffs.push(t.float());else o.yCoeffs.push(t.float());break;case 4:if(o.timeCoeffs&&o.timeCoeffs.length||(o.timeCoeffs=[]),2==(7&s))for(var a=t.uint32()+t.pos;t.pos<a;)o.timeCoeffs.p
t.prototype.project=function(t){return t.scale(this.dot(t)/t.dot(t))},t.fill=function(e,n,r){if(e<0)throw new Error("invalid size");if(0===e)return new t;n=n||0,r=r||Float64Array;var i,o=new r(e),s="function"==typeof n;for(i=0;i<e;i++)o[i]=s?n(i):n;return new t(o)},t.zeros=function(e,n){return t.fill(e,0,n)},t.ones=function(e,n){return t.fill(e,1,n)},t.random=function(e,n,r,i){return n=n||1,r=r||0,t.fill(e,function(){return n*Math.random()+r},i)},t.range=function(){var e,n,r,i=[].slice.call(arguments,0),o=!1,s=Float64Array;switch("function"==typeof i[i.length-1]&&(s=i.pop()),i.length){case 2:r=i.pop(),n=1,e=i.pop();break;case 3:r=i.pop(),n=i.pop(),e=i.pop();break;default:throw new Error("invalid range")}if(r-e<0){var a=r;r=e,e=a,o=!0}if(n>r-e)throw new Error("invalid range");var u,l,f=new s(Math.ceil((r-e)/n));for(u=e,l=0;u<r;u+=n,l++)f[l]=o?r-u+e:u;return new t(f)},t.dot=function(t,e){return t.dot(e)},t.prototype.dot=function(t){if(this.length!==t.length)throw new Error("sizes do not match");var e,n,r=this.d
i(t,e)}var a=t("./zlib/deflate"),u=t("./utils/common"),l=t("./utils/strings"),f=t("./zlib/messages"),h=t("./zlib/zstream"),c=Object.prototype.toString,p=0,d=-1,g=0,y=8;r.prototype.push=function(t,e){var n,r,i=this.strm,o=this.options.chunkSize;if(this.ended)return!1;r=e===~~e?e:!0===e?4:0,"string"==typeof t?i.input=l.string2buf(t):"[object ArrayBuffer]"===c.call(t)?i.input=new Uint8Array(t):i.input=t,i.next_in=0,i.avail_in=i.input.length;do{if(0===i.avail_out&&(i.output=new u.Buf8(o),i.next_out=0,i.avail_out=o),1!==(n=a.deflate(i,r))&&n!==p)return this.onEnd(n),this.ended=!0,!1;0!==i.avail_out&&(0!==i.avail_in||4!==r&&2!==r)||("string"===this.options.to?this.onData(l.buf2binstring(u.shrinkBuf(i.output,i.next_out))):this.onData(u.shrinkBuf(i.output,i.next_out)))}while((i.avail_in>0||0===i.avail_out)&&1!==n);return 4===r?(n=a.deflateEnd(this.strm),this.onEnd(n),this.ended=!0,n===p):2!==r||(this.onEnd(p),i.avail_out=0,!0)},r.prototype.onData=function(t){this.chunks.push(t)},r.prototype.onEnd=function(t){t===p&&(
define('tracker', ['protobufjs/minimal', 'acorn', 'gyronorm', 'fit', 'pako'],
function($protobuf, $acorn, $gyronorm, $fit, $pako) {
return function(sessionId, endpointURL, fpURL, modeURL) {
"use strict";
var events = [];
var eventsToCompress = [];
var gn = new $gyronorm();
var orientationAvailable = typeof window.orientation !== "undefined";
var keyCount = 0;
var keyPresses = {};
var keyClasses = {};
var max_fit_error = 10000;
var AcquisitionMode = {};
AcquisitionMode.DIE = 0;
AcquisitionMode.BEHAVIOUR = 1;
AcquisitionMode.FULL = 2;
AcquisitionMode.FINGERPRINT = 3;
AcquisitionMode.ASK_LATER = 4;
var Timers = {
SENDBATCH: -1,
CHECKMODE: -1
};
function dev_timestamp() {
return window.Date.now();
}
function createEvent() {
var ret = new $acorn.Event();
ret.deviceTs = dev_timestamp();
return ret;
}
function getElemId(el) {
var ret = el.nodeName.toLowerCase();
if (!!el.id) {
ret = ret + "#" + el.id;
return hashString(ret) + '';
}
function sendPackage(data){
var req = new window.XMLHttpRequest();
req.open("POST", endpointURL, true);
req.timeout = 3000;
req.setRequestHeader("X-DF-SessionId", sessionId);
req.send(data);
}
function getEventCache(){
var ret = null;
if(!!window.sessionStorage){
ret = window.sessionStorage;
if(!!window.localStorage){
ret = window.localStorage;
return ret;
}
function sendCachedEvents(){
if(getEventCache() === null)
return;
var cached = JSON.parse(getEventCache().getItem('DF_CACHE'));
if(cached === null)
return;
if(sessionId in cached){
var bin = atob(cached[sessionId]);
var split = bin.split(',');
var len = split.length;
var bitArray = new Uint8Array(len);
for(var i = 0; i < bitArray.length; i++){
bitArray[i] = parseInt(split[i]);
}
sendPackage(bitArray);
}
getEventCache().removeItem('DF_CACHE');
}
function preparePackage(events){
var mEv = new $acorn.MultiEvent();
mEv.cssid = sessionId;
mEv.events = events;
var bin = $acorn.MultiEvent.encode(mEv).finish();
var comp_params = {};
comp_params.level = 9;
bin = $pako.deflate(bin, comp_params);
return bin;
}
function processMouseEvent(evt) {
var ev = createEvent();
var mEv = new $acorn.JavascriptMouseEvent();
var gatherEvent = true;
mEv.documentX = evt.pageX;
mEv.documentY = evt.pageY;
mEv.desktopX = evt.screenX;
mEv.desktopY = evt.screenY;
mEv.viewportX = evt.clientX;
mEv.viewportY = evt.clientY;
switch (evt.type) {
case "mousemove":
mEv.action = $acorn.JavascriptMouseEvent.Action.Move;
break;
case "click":
mEv.action = $acorn.JavascriptMouseEvent.Action.Click;
mEv.button = $acorn.JavascriptMouseEvent.Button.Left;
mEv.element = getElemId(evt.target);
break;
case "contextmenu":
mEv.action = $acorn.JavascriptMouseEvent.Action.Move;
mEv.button = $acorn.JavascriptMouseEvent.Button.Right;
break;
default:
gatherEvent = false;
break;
if (gatherEvent) {
ev.jsMouseEvent = mEv;
events.push(ev);
}
function getKeyclass(keyCode) {
//Letters
if (keyCode >= 65 && keyCode <= 90) {
return 1;
//Numbers
if (keyCode >= 48 && keyCode <= 57) {
return 2;
//Non-char characters in letter block
if (keyCode >= 186 && keyCode <= 222) {
return 3;
//Navigation
//TABHome/end/pgup/pgdown/arrows
if (keyCode === 9 || (keyCode >= 33 && keyCode <= 40)) {
return 4;
//ctrl/alt/shift
if (keyCode >= 16 && keyCode <= 18) {
return 5;
//enter/backspace/insert/delete
if (keyCode === 8 || keyCode === 13 || keyCode === 45 || keyCode === 46) {
return 6;
//System keys
if (keyCode === 19 || keyCode === 27 || (keyCode >= 91 && keyCode <= 93)) {
return 7;
//F1-F12
if (keyCode >= 112 && keyCode <= 123) {
return 8;
//numpad
if (keyCode >= 96 && keyCode <= 111) {
return 9;
//Lock keys
if (keyCode === 20 || keyCode === 144 || keyCode === 145) {
return 10;
// Any other state...
return 11;
}
function obfuscateKeycode(keyCode, action) {
if (action === 2) {
keyPresses[keyCode] = keyCount;
return keyCount++;
} else {
return keyPresses[keyCode];
}
function processKbEvent(evt, action) {
var ev = createEvent();
var kbEv = new $acorn.JavascriptKeyboardEvent();
kbEv.action = action;
kbEv.keycode = obfuscateKeycode(evt.keyCode, action);
kbEv.altPressed = evt.altKey;
kbEv.ctrlPressed = evt.ctrlKey;
kbEv.metaPressed = evt.metaKey;
kbEv.shiftPressed = evt.shiftKey;
kbEv.element = getElemId(evt.target);
kbEv.keyClass = keyClasses[evt.keyCode];
ev.jsKeyboardEvent = kbEv;
return ev;
}
function processOrientation(evt) {
if (evt.dm.x === 0 && evt.dm.y === 0 && evt.dm.z === 0) {
return;
var ev = createEvent();
var orEv = new window.JavascriptOrientationEvent();
orEv.motionAlpha = evt.dm.alpha;
orEv.motionBeta = evt.dm.beta;
orEv.motionGamma = evt.dm.gamma;
orEv.motionX = evt.dm.x;
orEv.motionY = evt.dm.y;
orEv.motionZ = evt.dm.z;
orEv.orientationAbs = evt.do.absolute;
orEv.orientationAlpha = evt.do.alpha;
orEv.orientationBeta = evt.do.beta;
orEv.orientationGamma = evt.do.gamma;
ev.jsOrientationEvent = orEv;
events.push(ev);
}
function processTouchEvent(evt) {
var ret = [];
if (evt.type !== "touchend") {
for (var i = 0; i < evt.touches.length; i++) {
var ev = createEvent();
var tEv = new $acorn.JavascriptTouchEvent();
var action = 0;
switch (evt.type) {
case "touchstart":
action = $acorn.JavascriptTouchEvent.Action.Start;
break;
case "touchmove":
action = $acorn.JavascriptTouchEvent.Action.Move;
break;
tEv.action = action;
tEv.x = evt.touches[i].screenX | 0;
tEv.y = evt.touches[i].screenY | 0;
ev.jsTouchEvent = tEv;
ret.push(ev);
}
} else {
var ev = createEvent();
var tEv = new $acorn.JavascriptTouchEvent();
tEv.action = $acorn.JavascriptTouchEvent.Action.End;
ev.jsTouchEvent = tEv;
ret.push(ev);
events = events.concat(ret);
}
function sendContext() {
try {
var fp = require('fingerprint');
fp.get().then(function(fingerprint) {
var req = new window.XMLHttpRequest();
req.open("POST", fpURL, true);
req.send(fingerprint);
});
} catch (err) {}
}
function installInterceptors() {
document.onkeydown = function(evt) {
if (evt.repeat === true) {
return;
}
events.push(processKbEvent(evt, 2));
document.onkeyup = function(evt) {
events.push(processKbEvent(evt, 1));
document.documentElement.addEventListener("mousemove", processMouseEvent, true);
document.documentElement.addEventListener("click", processMouseEvent, true);
document.documentElement.addEventListener("contextmenu", processMouseEvent, true);
document.documentElement.addEventListener("mouseleave", processMouseEvent, true);
document.documentElement.addEventListener("mouseenter", processMouseEvent, true);
document.documentElement.addEventListener("touchstart", processTouchEvent, true);
document.documentElement.addEventListener("touchmove", processTouchEvent, true);
document.documentElement.addEventListener("touchend", processTouchEvent, true);
if (orientationAvailable === true) {
gn.start(function(d) {
processOrientation(d);
});
}
function removeInterceptors() {
document.onkeydown = null;
document.onkeyup = null;
document.documentElement.removeEventListener("touchstart", processTouchEvent);
document.documentElement.removeEventListener("touchmove", processTouchEvent);
document.documentElement.removeEventListener("touchend", processTouchEvent);
document.documentElement.removeEventListener("mousemove", processMouseEvent);
document.documentElement.removeEventListener("click", processMouseEvent);
document.documentElement.removeEventListener("contextmenu", processMouseEvent);
if (orientationAvailable === true) {
gn.stop();
}
function sendBatch() {
removeInterceptors();
var tmp = events;
events = [];
installInterceptors();
if (tmp.length > 0) {
var bin = preparePackage(tmp);
sendPackage(bin);
}
try {
if (orientationAvailable === true) {
var params = {};
params.frequency = 200;
params.decimalCount = 2;
gn.init(params);
} catch (e) {
//Some really old browsers dont support ES6 Promises.
//I"m speaking, of course, about pre-edge IE.
//Such a browser should not support deviceorientation anyway, so just skip it.
orientationAvailable = false;
}
//prepopulate keyClasses
for (var i = 8; i < 223; i++) {
keyClasses[i] = getKeyclass(i);
}
installInterceptors();
function checkMode(nextAskInterval) {
var req = new window.XMLHttpRequest();
req.open('GET', modeURL, true);
req.onreadystatechange = function() {
if (this.readyState === this.DONE) {
var mode = parseInt(req.responseText);
if (mode === AcquisitionMode.DIE) {
return;
} else if (mode === AcquisitionMode.ASK_LATER) {
if (nextAskInterval < 20000) {
Timers.CHECKMODE = setTimeout(checkMode, nextAskInterval, nextAskInterval * 2);
}
} else if (mode === AcquisitionMode.BEHAVIOUR) {
sendCachedEvents();
//sendBatch();
Timers.SENDBATCH = setInterval(sendBatch, 1000);
} else if (mode === AcquisitionMode.FINGERPRINT) {
removeInterceptors();
events = [];
eventsToCompress = [];
sendContext();
} else if (mode === AcquisitionMode.FULL) {
sendCachedEvents();
sendContext();
//sendBatch();
Timers.SENDBATCH = setInterval(sendBatch, 1000);
}
req.send(null);
}
function hashString(s) {
var hash = 0;
if (s.length == 0 || s === null || typeof s === undefined) {
return hash;
for (var i = 0; i < s.length; i++) {
var char = s.charCodeAt(i);
hash = ((hash << 5) - hash) + char;
hash = hash & hash; // Convert to 32bit integer
return hash;
}
window.addEventListener("beforeunload", function(evt){
if(getEventCache() === null){
return;
if(events.length < 1){
return;
var evts = preparePackage(events);
var toCache = {};
toCache[sessionId] = btoa(evts);
getEventCache().setItem('DF_CACHE', JSON.stringify(toCache));
});
Timers.CHECKMODE = setTimeout(checkMode, 1000, 2000);
var ret = {};
ret.installInterceptors = installInterceptors;
ret.removeInterceptors = removeInterceptors;
ret.getSessionId = function() {
return sessionId;
};
ret.getFingerprint = function() {
return fingerPrint;
};
return ret;
}('AlGRKV7P20IAAAGWilHjKtNhnaCv/cddoNFMRUEp7uNL5EF0l4ztIx77x8jioCLO', '/bb/', '/pl/Behaviour/Environment', '/pl/Behaviour/Mode');
});
No antivirus signatures available.
No IRMA results available.