window.whatInput=function(){"use strict";function g(){a();o(event);f=!0;c=window.setTimeout(function(){f=!1},650)}function i(n){f||o(n)}function l(n){a();o(n)}function a(){window.clearTimeout(c)}function o(i){var e=y(i),r=h[i.type];if(r==="pointer"&&(r=tt(i)),t!==r){var o=nt(i),f=o.nodeName.toLowerCase(),s=f==="input"?o.getAttribute("type"):null;!n.hasAttribute("data-whatinput-formtyping")&&t&&r==="keyboard"&&u[e]!=="tab"&&(f==="textarea"||f==="select"||f==="input"&&b.indexOf(s)<0)||k.indexOf(e)>-1||v(r)}r==="keyboard"&&it(e)}function v(i){t=i;n.setAttribute("data-whatinput",t);e.indexOf(t)===-1&&e.push(t)}function y(n){return n.keyCode?n.keyCode:n.which}function nt(n){return n.target||n.srcElement}function tt(n){return typeof n.pointerType=="number"?d[n.pointerType]:n.pointerType==="pen"?"touch":n.pointerType}function it(n){r.indexOf(u[n])===-1&&u[n]&&r.push(u[n])}function rt(n){var i=y(n),t=r.indexOf(u[i]);t!==-1&&r.splice(t,1)}function p(){n=document.body;window.PointerEvent?(n.addEventListener("pointerdown",i),n.addEventListener("pointermove",i)):window.MSPointerEvent?(n.addEventListener("MSPointerDown",i),n.addEventListener("MSPointerMove",i)):(n.addEventListener("mousedown",i),n.addEventListener("mousemove",i),"ontouchstart"in window&&n.addEventListener("touchstart",g));n.addEventListener(s,i);n.addEventListener("keydown",l);n.addEventListener("keyup",l);document.addEventListener("keyup",rt)}function w(){return s="onwheel"in document.createElement("div")?"wheel":document.onmousewheel!==undefined?"mousewheel":"DOMMouseScroll"}var r=[],n,f=!1,t=null,b=["button","checkbox","file","image","radio","reset","submit"],s=w(),k=[16,17,18,91,93],h={keydown:"keyboard",keyup:"keyboard",mousedown:"mouse",mousemove:"mouse",MSPointerDown:"pointer",MSPointerMove:"pointer",pointerdown:"pointer",pointermove:"pointer",touchstart:"touch"};h[w()]="mouse";var e=[],u={9:"tab",13:"enter",16:"shift",27:"esc",32:"space",37:"left",38:"up",39:"right",40:"down"},d={2:"touch",3:"touch",4:"mouse"},c;return"addEventListener"in window&&Array.prototype.indexOf&&(document.body?p():document.addEventListener("DOMContentLoaded",p)),{ask:function(){return t},keys:function(){return r},types:function(){return e},set:v}}()