{"version":3,"sources":["webpack:///build/bundle.js","webpack:///webpack/bootstrap 4be2fd1160943c7e8b42","webpack:///./~/assets-loader/src/emitter.js","webpack:///./~/assets-loader/src/index.js","webpack:///./~/assets-loader/src/stats.js","webpack:///./src/client/constants.js","webpack:///./~/bean/bean.js","webpack:///./~/assets-loader/src/browser-has-blob.js","webpack:///./~/assets-loader/src/group.js","webpack:///./~/assets-loader/src/loader.js","webpack:///./src/client/index.js","webpack:///./src/client/texts.js","webpack:///./src/client/utils.js","webpack:///./src/client/video.js","webpack:///./src/client/index.scss","webpack:///./~/css-loader/lib/css-base.js","webpack:///./~/events/events.js","webpack:///./~/random-js/lib/random.js","webpack:///./~/screenfull/dist/screenfull.js","webpack:///./~/style-loader/addStyles.js","webpack:///./src/client/index.scss?64bd","webpack:///./src/shared/constants.js"],"names":["modules","__webpack_require__","moduleId","installedModules","exports","module","id","loaded","call","m","c","p","Emitter","EventEmitter","this","setMaxListeners","prototype","Object","create","constructor","off","type","listener","removeListener","removeAllListeners","assetsLoader","stats","mbs","secs","update","request","startTime","url","log","length","headers","getAllResponseHeaders","match","parseInt","Date","now","console","warn","file","substr","lastIndexOf","toFixed","total","getMbps","_interopRequireWildcard","obj","__esModule","newObj","key","hasOwnProperty","defineProperty","value","FINAL_LOSE_TO_MENU_DURATION_WHEN_NO_WEIGHT","FINAL_LOSE_TO_MENU_DURATION_WHEN_WAS_WEIGHT","FINAL_WIN_TO_MENU_DURATION","TIMER_DURATION","SCENE_NAME_ACTION_KING_WIN","SCENE_NAME_ACTION_HAMLET_WIN","SCENE_NAME_LOOP","SCENE_NAME_ITEM_SELECTION","SCENE_NAME_MENU","ITEM_WEIGHT_DELTA","ITEM_PISTOL","ITEM_SNAKE","ITEM_LOSINI","ITEM_YAD","ITEM_VANTUZ","ITEM_TUFLYA","ITEM_BANAN","ITEM_FEN","KEY_CODE_SPACE","KEY_CODE_ENTER","KEY_CODE_Y","KEY_CODE_V","KEY_CODE_T","KEY_CODE_B","KEY_CODE_G","KEY_CODE_F","KEY_CODE_D","KEY_CODE_S","KEY_CODE_A","KEY_CODE_W","WEB_SOCKET_APP_PORT","GAME_STATE_END","GAME_STATE_PLAYING_SCENE","GAME_STATE_SELECTION_SCENE","GAME_STATE_START_SCENE","GAME_STATE_INITIAL_LOADING","VIDOE_MOBILE_PATH","VIDOE_DESKTOP_PATH","ASSETS_PATH","undefined","_constants","constants","__WEBPACK_AMD_DEFINE_FACTORY__","__WEBPACK_AMD_DEFINE_RESULT__","name","context","definition","a","selectorEngine","win","window","old","namespaceRegex","nameRegex","addEvent","removeEvent","doc","document","root","documentElement","W3C_MODEL","eventSupport","ONE","slice","Array","str2arr","s","d","split","isString","o","isFunction","standardNativeEvents","w3cNativeEvents","nativeEvents","hash","events","i","customEvents","isAncestor","element","container","compareDocumentPosition","nodeType","contains","parentNode","check","event","related","relatedTarget","prefix","test","toString","mouseenter","base","condition","mouseleave","mousewheel","navigator","userAgent","Event","commonProps","mouseProps","concat","mouseWheelProps","keyProps","textProps","touchProps","messageProps","stateProps","overOutRegex","typeFixers","reg","fix","newEvent","keyCode","which","rightClick","button","pos","x","y","pageX","pageY","clientX","clientY","body","scrollLeft","scrollTop","typeFixerMap","isNative","arguments","ownerDocument","parentWindow","originalEvent","isBean","l","props","fixer","target","srcElement","preventDefault","returnValue","stopPropagation","cancelBubble","stop","stopped","stopImmediatePropagation","isImmediatePropagationStopped","clone","currentTarget","ne","targetElement","RegEntry","wrappedHandler","fn","args","eargs","apply","findTarget","eventElement","__beanDel","ft","handler","original","namespaces","customType","once","eventType","inNamespaces","checkNamespaces","j","matches","checkElement","checkOriginal","checkHandler","registry","map","forAll","pfx","list","all","t","charAt","has","get","entries","entry","push","put","del","splice","removed","setSelectorEngine","e","querySelectorAll","r","Error","rootListener","propertyName","listeners","add","custom","attachEvent","detachEvent","rm","originalFn","orgType","replace","handlers","delegate","selector","array","fireListener","evt","createEvent","dispatchEvent","fireEvent","createEventObject","typeSpec","k","isTypeStr","indexOf","on","types","first","delfn","one","fire","names","from","beanDel","bean","remove","noConflict","cleanup","CollectGarbage","Blob","createLoader","autoId","createGroup","config","group","assets","queue","numLoaded","numTotal","loaders","options","isArray","forEach","loader","isGroup","configure","destroyHandler","find","found","keys","some","getExtension","pop","toLowerCase","defaults","isTouchLocked","blob","basePath","String","crossOrigin","webAudioContext","start","progressHandler","completeHandler","errorHandler","progress","emit","asset","checkComplete","err","error","destroy","_events","getLoader","touchLocked","freeze","browserHasBlob","loadHandler","timeout","loadJSON","loadImage","loadAudio","loadVideo","loadXHR","dispatchComplete","data","removeListeners","responseType","customLoadHandler","XMLHttpRequest","open","addEventListener","send","lengthComputable","success","response","status","statusText","JSON","parse","loadImageBlob","loadImageElement","Image","elementLoadHandler","src","clearTimeout","readyState","imageBlobHandler","URL","createObjectURL","revokeObjectURL","loadAudioBuffer","loadMediaElement","decodeAudioData","buffer","tagName","createElement","setTimeout","preload","load","message","ERROR_STATE","code","removeEventListener","abort","_interopRequireDefault","default","_classCallCheck","instance","Constructor","TypeError","_slicedToArray","sliceIterator","arr","_arr","_n","_d","_e","_s","_i","Symbol","iterator","next","done","_createClass","defineProperties","descriptor","enumerable","configurable","writable","protoProps","staticProps","_screenfull","_screenfull2","_bean","_bean2","_assetsLoader","_assetsLoader2","_video","_video2","_texts","_texts2","random","KING_ITEMS","shuffle","App","_ref","_this","rootEl","dom","ctx","gameState","wasGameStarted","kingItem","kingItemPickingIndex","hamletItem","canSelectHamletItem","timerDuration","timerStartTime","timerFinished","playingVideo","mainActionStarted","loadedVideos","onLoadMainAssetsError","onStartSceneButtonClick","startGame","onEndScenePlayAgainButtonClick","onSelectionItemClick","el","classList","selectHamletItem","onBodyKeypress","enabled","_data","itemKeyCode","item","resizeAll","windowHeight","canvasEl","innerWidth","innerHeight","videoWidth","videoHeight","width","height","isNaN","setAttribute","renderTimer","timerEl","currTime","delta","elapsedSecs","Math","round","onTimerFinished","removeIsVisible","innerText","requestAnimationFrame","render","style","display","cacheDomEls","preRun","loaderEl","querySelector","containerEl","startSceneEl","startSceneLogoEl","startSceneStartButtonEl","selectionSceneEl","selectionItemsEl","selectionItemElArr","endSceneEl","endSceneLogoEl","endSceneTextEl","endScenePlayAgainButton","Promise","resolve","reject","_this2","_dom","then","addIsVisible","duration","visibility","_this3","_dom2","_this4","loadMainAssets","bindEvents","showContainer","run","_this5","_dom3","_this6","_dom4","_this7","_dom5","_this8","finalSceneAudio","pause","menuSceneAudio","_dom6","createKingItem","playIntro","showSelectionScene","startTimer","enableHamletItemSelection","disableHamletItemSelection","startAction","_this9","introVideo","filePath","getVideoPath","loopVideo","winVideo","allVideosLoaded","showLoader","afterVideosLoaded","play","setPlayingVideo","playWithLoop","loopEndDuration","hideLoader","onVideoLoadError","_this10","playHamletWin","_this11","_this12","_ref2","video","_this13","onPlayHamletWinFinish","_this14","isVideoAlreadyLoaded","afterVideoLoaded","onHamletLoseFinish","_this15","_dom7","finalText","generateFinalTextWin","resetToStartScene","_this16","_dom8","playFinalSceneAudio","generateFinalTextLose","Audio","loop","texts","los_fen","los_ban","los_tuf","los_van","los_yad","snk_fen","snk_ban","snk_tuf","snk_van","snk_yad","pis_fen","pis_ban","pis_tuf","pis_van","pis_yad","los","snk","pis","isWeightInInterval","convertRange","oldValue","oldMin","oldMax","newMin","newMax","isRoundByInterval","max","min","oldRange","newValue","newRange","eventName","callback","weight","_utils","isIOS","iDevices","platform","blobs","Video","onPlayWithLoopEnded","paused","loadPromise","videoEl","controls","muted","onLoadComplete","createVideoEl","className","appendChild","timeupdate","currentTime","fullTime","currPercent","result","join","mediaQuery","alreadyImportedModules","_maxListeners","arg","isNumber","isObject","isUndefined","defaultMaxListeners","n","er","len","addListener","newListener","warned","trace","g","fired","position","ret","listenerCount","evlistener","emitter","Random","engine","engines","nativeMath","generate","addend","toInteger","number","ceil","floor","convertSliceArgument","returnUndefined","imul","b","ah","al","bh","bl","stringRepeat","repeat","pattern","count","proto","mt19937","Int32Array","refreshData","tmp","temper","seedWithArray","source","sourceLength","previous","index","uses","getUseCount","discard","seed","initial","autoSeed","generateEntropyArray","browserCrypto","crypto","getRandomValues","getTime","int32","uint32","uint53","high","low","uint53Full","int53","int53Full","integer","isPowerOfTwoMinusOne","bitmask","masking","downscaleToLoopCheckedRange","range","extendedRange","maximum","downscaleToRange","isEvenlyDivisibleByMaxInt32","upscaleWithHighMasking","upscaleToLoopCheckedRange","upscaleWithinU53","highRange","upscaleWithinI53AndLoopCheck","isFinite","RangeError","realZeroToOneInclusive","realZeroToOneExclusive","real","multiply","multiplier","left","right","inclusive","bool","isLeastBitTrue","lessThan","probability","percentage","scaled","numerator","denominator","pick","begin","end","finish","distribution","picker","downTo","sample","population","sampleSize","tailLength","die","sideCount","dice","dieCount","uuid4","zeroPad","string","zeroCount","DEFAULT_STRING_POOL","pool","hex","LOWER_HEX_POOL","lowerHex","upperHex","toUpperCase","upper","date","isCommonjs","keyboardAllowed","Element","val","fnMap","eventNameMap","change","fullscreenchange","fullscreenerror","screenfull","elem","requestFullscreen","ALLOW_KEYBOARD_INPUT","exit","exitFullscreen","toggle","isFullscreen","onchange","onerror","raw","Boolean","fullscreenElement","fullscreenEnabled","addStylesToDom","styles","domStyle","stylesInDom","refs","parts","addStyle","listToStyles","newStyles","css","media","sourceMap","part","insertStyleElement","styleElement","head","getHeadElement","lastStyleElementInsertedAtTop","styleElementsInsertedAtTop","insertAt","nextSibling","insertBefore","firstChild","removeStyleElement","removeChild","idx","createStyleElement","createLinkElement","linkElement","rel","singleton","styleIndex","singletonCounter","singletonElement","applyToSingletonTag","bind","btoa","updateLink","href","applyToTag","styleSheet","cssText","replaceText","cssNode","createTextNode","childNodes","unescape","encodeURIComponent","stringify","oldSrc","memoize","memo","isOldIE","getElementsByTagName","newList","mayRemove","textStore","replacement","filter","content","locals"],"mappings":"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","file":"./build/bundle.js","sourcesContent":["/******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId])\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\texports: {},\n/******/ \t\t\tid: moduleId,\n/******/ \t\t\tloaded: false\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.loaded = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"/\";\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(0);\n/******/ })\n/************************************************************************/\n/******/ ([\n/* 0 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tmodule.exports = __webpack_require__(9);\n\n\n/***/ },\n/* 1 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tvar EventEmitter = __webpack_require__(15).EventEmitter;\n\t\n\tfunction Emitter() {\n\t EventEmitter.call(this);\n\t this.setMaxListeners(20);\n\t}\n\t\n\tEmitter.prototype = Object.create(EventEmitter.prototype);\n\tEmitter.prototype.constructor = Emitter;\n\t\n\tEmitter.prototype.off = function(type, listener) {\n\t if (listener) {\n\t return this.removeListener(type, listener);\n\t }\n\t if (type) {\n\t return this.removeAllListeners(type);\n\t }\n\t return this.removeAllListeners();\n\t};\n\t\n\tmodule.exports = Emitter;\n\n\n/***/ },\n/* 2 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tvar assetsLoader = __webpack_require__(7);\n\tassetsLoader.stats = __webpack_require__(3);\n\t\n\tmodule.exports = assetsLoader;\n\n\n/***/ },\n/* 3 */\n/***/ function(module, exports) {\n\n\t'use strict';\n\t\n\tmodule.exports = {\n\t mbs: 0,\n\t secs: 0,\n\t update: function(request, startTime, url, log) {\n\t var length;\n\t var headers = request.getAllResponseHeaders();\n\t if (headers) {\n\t var match = headers.match(/content-length: (\\d+)/i);\n\t if (match && match.length) {\n\t length = match[1];\n\t }\n\t }\n\t // var length = request.getResponseHeader('Content-Length');\n\t if (length) {\n\t length = parseInt(length, 10);\n\t var mbs = length / 1024 / 1024;\n\t var secs = (Date.now() - startTime) / 1000;\n\t this.secs += secs;\n\t this.mbs += mbs;\n\t if (log) {\n\t this.log(url, mbs, secs);\n\t }\n\t } else if(log) {\n\t console.warn.call(console, 'Can\\'t get Content-Length:', url);\n\t }\n\t },\n\t log: function(url, mbs, secs) {\n\t if (url) {\n\t var file = 'File loaded: ' +\n\t url.substr(url.lastIndexOf('/') + 1) +\n\t ' size:' + mbs.toFixed(2) + 'mb' +\n\t ' time:' + secs.toFixed(2) + 's' +\n\t ' speed:' + (mbs / secs).toFixed(2) + 'mbps';\n\t\n\t console.log.call(console, file);\n\t }\n\t var total = 'Total loaded: ' + this.mbs.toFixed(2) + 'mb' +\n\t ' time:' + this.secs.toFixed(2) + 's' +\n\t ' speed:' + this.getMbps().toFixed(2) + 'mbps';\n\t console.log.call(console, total);\n\t },\n\t getMbps: function() {\n\t return this.mbs / this.secs;\n\t }\n\t};\n\n\n/***/ },\n/* 4 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\texports.FINAL_LOSE_TO_MENU_DURATION_WHEN_NO_WEIGHT = exports.FINAL_LOSE_TO_MENU_DURATION_WHEN_WAS_WEIGHT = exports.FINAL_WIN_TO_MENU_DURATION = exports.TIMER_DURATION = exports.SCENE_NAME_ACTION_KING_WIN = exports.SCENE_NAME_ACTION_HAMLET_WIN = exports.SCENE_NAME_LOOP = exports.SCENE_NAME_ITEM_SELECTION = exports.SCENE_NAME_MENU = exports.ITEM_WEIGHT_DELTA = exports.ITEM_PISTOL = exports.ITEM_SNAKE = exports.ITEM_LOSINI = exports.ITEM_YAD = exports.ITEM_VANTUZ = exports.ITEM_TUFLYA = exports.ITEM_BANAN = exports.ITEM_FEN = exports.KEY_CODE_SPACE = exports.KEY_CODE_ENTER = exports.KEY_CODE_Y = exports.KEY_CODE_V = exports.KEY_CODE_T = exports.KEY_CODE_B = exports.KEY_CODE_G = exports.KEY_CODE_F = exports.KEY_CODE_D = exports.KEY_CODE_S = exports.KEY_CODE_A = exports.KEY_CODE_W = exports.WEB_SOCKET_APP_PORT = exports.GAME_STATE_END = exports.GAME_STATE_PLAYING_SCENE = exports.GAME_STATE_SELECTION_SCENE = exports.GAME_STATE_START_SCENE = exports.GAME_STATE_INITIAL_LOADING = exports.VIDOE_MOBILE_PATH = exports.VIDOE_DESKTOP_PATH = exports.ASSETS_PATH = undefined;\n\t\n\tvar _constants = __webpack_require__(20);\n\t\n\tvar constants = _interopRequireWildcard(_constants);\n\t\n\tfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }\n\t\n\tvar ASSETS_PATH = exports.ASSETS_PATH = 'assets';\n\tvar VIDOE_DESKTOP_PATH = exports.VIDOE_DESKTOP_PATH = 'assets/video/desktop';\n\tvar VIDOE_MOBILE_PATH = exports.VIDOE_MOBILE_PATH = 'assets/video/mobile';\n\tvar GAME_STATE_INITIAL_LOADING = exports.GAME_STATE_INITIAL_LOADING = 10;\n\tvar GAME_STATE_START_SCENE = exports.GAME_STATE_START_SCENE = 20;\n\tvar GAME_STATE_SELECTION_SCENE = exports.GAME_STATE_SELECTION_SCENE = 30;\n\tvar GAME_STATE_PLAYING_SCENE = exports.GAME_STATE_PLAYING_SCENE = 30;\n\tvar GAME_STATE_END = exports.GAME_STATE_END = 30;\n\t\n\tvar WEB_SOCKET_APP_PORT = exports.WEB_SOCKET_APP_PORT = constants.WEB_SOCKET_APP_PORT;\n\t\n\tvar KEY_CODE_W = exports.KEY_CODE_W = 119;\n\tvar KEY_CODE_A = exports.KEY_CODE_A = 97;\n\tvar KEY_CODE_S = exports.KEY_CODE_S = 115;\n\tvar KEY_CODE_D = exports.KEY_CODE_D = 100;\n\tvar KEY_CODE_F = exports.KEY_CODE_F = 102;\n\tvar KEY_CODE_G = exports.KEY_CODE_G = 103;\n\tvar KEY_CODE_B = exports.KEY_CODE_B = 98;\n\tvar KEY_CODE_T = exports.KEY_CODE_T = 116;\n\tvar KEY_CODE_V = exports.KEY_CODE_V = 118;\n\tvar KEY_CODE_Y = exports.KEY_CODE_Y = 121;\n\tvar KEY_CODE_ENTER = exports.KEY_CODE_ENTER = 13;\n\tvar KEY_CODE_SPACE = exports.KEY_CODE_SPACE = 32;\n\t\n\tvar ITEM_FEN = exports.ITEM_FEN = constants.ITEM_FEN;\n\tvar ITEM_BANAN = exports.ITEM_BANAN = constants.ITEM_BANAN;\n\tvar ITEM_TUFLYA = exports.ITEM_TUFLYA = constants.ITEM_TUFLYA;\n\tvar ITEM_VANTUZ = exports.ITEM_VANTUZ = constants.ITEM_VANTUZ;\n\tvar ITEM_YAD = exports.ITEM_YAD = constants.ITEM_YAD;\n\t\n\tvar ITEM_LOSINI = exports.ITEM_LOSINI = 'los';\n\tvar ITEM_SNAKE = exports.ITEM_SNAKE = 'snk';\n\tvar ITEM_PISTOL = exports.ITEM_PISTOL = 'pis';\n\t\n\tvar ITEM_WEIGHT_DELTA = exports.ITEM_WEIGHT_DELTA = constants.ITEM_WEIGHT_DELTA;\n\t\n\tvar SCENE_NAME_MENU = exports.SCENE_NAME_MENU = 'menu';\n\tvar SCENE_NAME_ITEM_SELECTION = exports.SCENE_NAME_ITEM_SELECTION = 'itemSelection';\n\tvar SCENE_NAME_LOOP = exports.SCENE_NAME_LOOP = 'loop';\n\tvar SCENE_NAME_ACTION_HAMLET_WIN = exports.SCENE_NAME_ACTION_HAMLET_WIN = 'hamletWin';\n\tvar SCENE_NAME_ACTION_KING_WIN = exports.SCENE_NAME_ACTION_KING_WIN = 'kingWin';\n\t\n\tvar TIMER_DURATION = exports.TIMER_DURATION = 30 * 1000;\n\tvar FINAL_WIN_TO_MENU_DURATION = exports.FINAL_WIN_TO_MENU_DURATION = 5000;\n\tvar FINAL_LOSE_TO_MENU_DURATION_WHEN_WAS_WEIGHT = exports.FINAL_LOSE_TO_MENU_DURATION_WHEN_WAS_WEIGHT = 3000;\n\tvar FINAL_LOSE_TO_MENU_DURATION_WHEN_NO_WEIGHT = exports.FINAL_LOSE_TO_MENU_DURATION_WHEN_NO_WEIGHT = 6000;\n\n/***/ },\n/* 5 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tvar __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_RESULT__;/*!\n\t * Bean - copyright (c) Jacob Thornton 2011-2012\n\t * https://github.com/fat/bean\n\t * MIT license\n\t */\n\t(function (name, context, definition) {\n\t if (typeof module != 'undefined' && module.exports) module.exports = definition()\n\t else if (true) !(__WEBPACK_AMD_DEFINE_FACTORY__ = (definition), __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? (__WEBPACK_AMD_DEFINE_FACTORY__.call(exports, __webpack_require__, exports, module)) : __WEBPACK_AMD_DEFINE_FACTORY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__))\n\t else context[name] = definition()\n\t})('bean', this, function (name, context) {\n\t name = name || 'bean'\n\t context = context || this\n\t\n\t var win = window\n\t , old = context[name]\n\t , namespaceRegex = /[^\\.]*(?=\\..*)\\.|.*/\n\t , nameRegex = /\\..*/\n\t , addEvent = 'addEventListener'\n\t , removeEvent = 'removeEventListener'\n\t , doc = document || {}\n\t , root = doc.documentElement || {}\n\t , W3C_MODEL = root[addEvent]\n\t , eventSupport = W3C_MODEL ? addEvent : 'attachEvent'\n\t , ONE = {} // singleton for quick matching making add() do one()\n\t\n\t , slice = Array.prototype.slice\n\t , str2arr = function (s, d) { return s.split(d || ' ') }\n\t , isString = function (o) { return typeof o == 'string' }\n\t , isFunction = function (o) { return typeof o == 'function' }\n\t\n\t // events that we consider to be 'native', anything not in this list will\n\t // be treated as a custom event\n\t , standardNativeEvents =\n\t 'click dblclick mouseup mousedown contextmenu ' + // mouse buttons\n\t 'mousewheel mousemultiwheel DOMMouseScroll ' + // mouse wheel\n\t 'mouseover mouseout mousemove selectstart selectend ' + // mouse movement\n\t 'keydown keypress keyup ' + // keyboard\n\t 'orientationchange ' + // mobile\n\t 'focus blur change reset select submit ' + // form elements\n\t 'load unload beforeunload resize move DOMContentLoaded ' + // window\n\t 'readystatechange message ' + // window\n\t 'error abort scroll ' // misc\n\t // element.fireEvent('onXYZ'... is not forgiving if we try to fire an event\n\t // that doesn't actually exist, so make sure we only do these on newer browsers\n\t , w3cNativeEvents =\n\t 'show ' + // mouse buttons\n\t 'input invalid ' + // form elements\n\t 'touchstart touchmove touchend touchcancel ' + // touch\n\t 'gesturestart gesturechange gestureend ' + // gesture\n\t 'textinput ' + // TextEvent\n\t 'readystatechange pageshow pagehide popstate ' + // window\n\t 'hashchange offline online ' + // window\n\t 'afterprint beforeprint ' + // printing\n\t 'dragstart dragenter dragover dragleave drag drop dragend ' + // dnd\n\t 'loadstart progress suspend emptied stalled loadmetadata ' + // media\n\t 'loadeddata canplay canplaythrough playing waiting seeking ' + // media\n\t 'seeked ended durationchange timeupdate play pause ratechange ' + // media\n\t 'volumechange cuechange ' + // media\n\t 'checking noupdate downloading cached updateready obsolete ' // appcache\n\t\n\t // convert to a hash for quick lookups\n\t , nativeEvents = (function (hash, events, i) {\n\t for (i = 0; i < events.length; i++) events[i] && (hash[events[i]] = 1)\n\t return hash\n\t }({}, str2arr(standardNativeEvents + (W3C_MODEL ? w3cNativeEvents : ''))))\n\t\n\t // custom events are events that we *fake*, they are not provided natively but\n\t // we can use native events to generate them\n\t , customEvents = (function () {\n\t var isAncestor = 'compareDocumentPosition' in root\n\t ? function (element, container) {\n\t return container.compareDocumentPosition && (container.compareDocumentPosition(element) & 16) === 16\n\t }\n\t : 'contains' in root\n\t ? function (element, container) {\n\t container = container.nodeType === 9 || container === window ? root : container\n\t return container !== element && container.contains(element)\n\t }\n\t : function (element, container) {\n\t while (element = element.parentNode) if (element === container) return 1\n\t return 0\n\t }\n\t , check = function (event) {\n\t var related = event.relatedTarget\n\t return !related\n\t ? related == null\n\t : (related !== this && related.prefix !== 'xul' && !/document/.test(this.toString())\n\t && !isAncestor(related, this))\n\t }\n\t\n\t return {\n\t mouseenter: { base: 'mouseover', condition: check }\n\t , mouseleave: { base: 'mouseout', condition: check }\n\t , mousewheel: { base: /Firefox/.test(navigator.userAgent) ? 'DOMMouseScroll' : 'mousewheel' }\n\t }\n\t }())\n\t\n\t // we provide a consistent Event object across browsers by taking the actual DOM\n\t // event object and generating a new one from its properties.\n\t , Event = (function () {\n\t // a whitelist of properties (for different event types) tells us what to check for and copy\n\t var commonProps = str2arr('altKey attrChange attrName bubbles cancelable ctrlKey currentTarget ' +\n\t 'detail eventPhase getModifierState isTrusted metaKey relatedNode relatedTarget shiftKey ' +\n\t 'srcElement target timeStamp type view which propertyName')\n\t , mouseProps = commonProps.concat(str2arr('button buttons clientX clientY dataTransfer ' +\n\t 'fromElement offsetX offsetY pageX pageY screenX screenY toElement'))\n\t , mouseWheelProps = mouseProps.concat(str2arr('wheelDelta wheelDeltaX wheelDeltaY wheelDeltaZ ' +\n\t 'axis')) // 'axis' is FF specific\n\t , keyProps = commonProps.concat(str2arr('char charCode key keyCode keyIdentifier ' +\n\t 'keyLocation location'))\n\t , textProps = commonProps.concat(str2arr('data'))\n\t , touchProps = commonProps.concat(str2arr('touches targetTouches changedTouches scale rotation'))\n\t , messageProps = commonProps.concat(str2arr('data origin source'))\n\t , stateProps = commonProps.concat(str2arr('state'))\n\t , overOutRegex = /over|out/\n\t // some event types need special handling and some need special properties, do that all here\n\t , typeFixers = [\n\t { // key events\n\t reg: /key/i\n\t , fix: function (event, newEvent) {\n\t newEvent.keyCode = event.keyCode || event.which\n\t return keyProps\n\t }\n\t }\n\t , { // mouse events\n\t reg: /click|mouse(?!(.*wheel|scroll))|menu|drag|drop/i\n\t , fix: function (event, newEvent, type) {\n\t newEvent.rightClick = event.which === 3 || event.button === 2\n\t newEvent.pos = { x: 0, y: 0 }\n\t if (event.pageX || event.pageY) {\n\t newEvent.clientX = event.pageX\n\t newEvent.clientY = event.pageY\n\t } else if (event.clientX || event.clientY) {\n\t newEvent.clientX = event.clientX + doc.body.scrollLeft + root.scrollLeft\n\t newEvent.clientY = event.clientY + doc.body.scrollTop + root.scrollTop\n\t }\n\t if (overOutRegex.test(type)) {\n\t newEvent.relatedTarget = event.relatedTarget\n\t || event[(type == 'mouseover' ? 'from' : 'to') + 'Element']\n\t }\n\t return mouseProps\n\t }\n\t }\n\t , { // mouse wheel events\n\t reg: /mouse.*(wheel|scroll)/i\n\t , fix: function () { return mouseWheelProps }\n\t }\n\t , { // TextEvent\n\t reg: /^text/i\n\t , fix: function () { return textProps }\n\t }\n\t , { // touch and gesture events\n\t reg: /^touch|^gesture/i\n\t , fix: function () { return touchProps }\n\t }\n\t , { // message events\n\t reg: /^message$/i\n\t , fix: function () { return messageProps }\n\t }\n\t , { // popstate events\n\t reg: /^popstate$/i\n\t , fix: function () { return stateProps }\n\t }\n\t , { // everything else\n\t reg: /.*/\n\t , fix: function () { return commonProps }\n\t }\n\t ]\n\t , typeFixerMap = {} // used to map event types to fixer functions (above), a basic cache mechanism\n\t\n\t , Event = function (event, element, isNative) {\n\t if (!arguments.length) return\n\t event = event || ((element.ownerDocument || element.document || element).parentWindow || win).event\n\t this.originalEvent = event\n\t this.isNative = isNative\n\t this.isBean = true\n\t\n\t if (!event) return\n\t\n\t var type = event.type\n\t , target = event.target || event.srcElement\n\t , i, l, p, props, fixer\n\t\n\t this.target = target && target.nodeType === 3 ? target.parentNode : target\n\t\n\t if (isNative) { // we only need basic augmentation on custom events, the rest expensive & pointless\n\t fixer = typeFixerMap[type]\n\t if (!fixer) { // haven't encountered this event type before, map a fixer function for it\n\t for (i = 0, l = typeFixers.length; i < l; i++) {\n\t if (typeFixers[i].reg.test(type)) { // guaranteed to match at least one, last is .*\n\t typeFixerMap[type] = fixer = typeFixers[i].fix\n\t break\n\t }\n\t }\n\t }\n\t\n\t props = fixer(event, this, type)\n\t for (i = props.length; i--;) {\n\t if (!((p = props[i]) in this) && p in event) this[p] = event[p]\n\t }\n\t }\n\t }\n\t\n\t // preventDefault() and stopPropagation() are a consistent interface to those functions\n\t // on the DOM, stop() is an alias for both of them together\n\t Event.prototype.preventDefault = function () {\n\t if (this.originalEvent.preventDefault) this.originalEvent.preventDefault()\n\t else this.originalEvent.returnValue = false\n\t }\n\t Event.prototype.stopPropagation = function () {\n\t if (this.originalEvent.stopPropagation) this.originalEvent.stopPropagation()\n\t else this.originalEvent.cancelBubble = true\n\t }\n\t Event.prototype.stop = function () {\n\t this.preventDefault()\n\t this.stopPropagation()\n\t this.stopped = true\n\t }\n\t // stopImmediatePropagation() has to be handled internally because we manage the event list for\n\t // each element\n\t // note that originalElement may be a Bean#Event object in some situations\n\t Event.prototype.stopImmediatePropagation = function () {\n\t if (this.originalEvent.stopImmediatePropagation) this.originalEvent.stopImmediatePropagation()\n\t this.isImmediatePropagationStopped = function () { return true }\n\t }\n\t Event.prototype.isImmediatePropagationStopped = function () {\n\t return this.originalEvent.isImmediatePropagationStopped && this.originalEvent.isImmediatePropagationStopped()\n\t }\n\t Event.prototype.clone = function (currentTarget) {\n\t //TODO: this is ripe for optimisation, new events are *expensive*\n\t // improving this will speed up delegated events\n\t var ne = new Event(this, this.element, this.isNative)\n\t ne.currentTarget = currentTarget\n\t return ne\n\t }\n\t\n\t return Event\n\t }())\n\t\n\t // if we're in old IE we can't do onpropertychange on doc or win so we use doc.documentElement for both\n\t , targetElement = function (element, isNative) {\n\t return !W3C_MODEL && !isNative && (element === doc || element === win) ? root : element\n\t }\n\t\n\t /**\n\t * Bean maintains an internal registry for event listeners. We don't touch elements, objects\n\t * or functions to identify them, instead we store everything in the registry.\n\t * Each event listener has a RegEntry object, we have one 'registry' for the whole instance.\n\t */\n\t , RegEntry = (function () {\n\t // each handler is wrapped so we can handle delegation and custom events\n\t var wrappedHandler = function (element, fn, condition, args) {\n\t var call = function (event, eargs) {\n\t return fn.apply(element, args ? slice.call(eargs, event ? 0 : 1).concat(args) : eargs)\n\t }\n\t , findTarget = function (event, eventElement) {\n\t return fn.__beanDel ? fn.__beanDel.ft(event.target, element) : eventElement\n\t }\n\t , handler = condition\n\t ? function (event) {\n\t var target = findTarget(event, this) // deleated event\n\t if (condition.apply(target, arguments)) {\n\t if (event) event.currentTarget = target\n\t return call(event, arguments)\n\t }\n\t }\n\t : function (event) {\n\t if (fn.__beanDel) event = event.clone(findTarget(event)) // delegated event, fix the fix\n\t return call(event, arguments)\n\t }\n\t handler.__beanDel = fn.__beanDel\n\t return handler\n\t }\n\t\n\t , RegEntry = function (element, type, handler, original, namespaces, args, root) {\n\t var customType = customEvents[type]\n\t , isNative\n\t\n\t if (type == 'unload') {\n\t // self clean-up\n\t handler = once(removeListener, element, type, handler, original)\n\t }\n\t\n\t if (customType) {\n\t if (customType.condition) {\n\t handler = wrappedHandler(element, handler, customType.condition, args)\n\t }\n\t type = customType.base || type\n\t }\n\t\n\t this.isNative = isNative = nativeEvents[type] && !!element[eventSupport]\n\t this.customType = !W3C_MODEL && !isNative && type\n\t this.element = element\n\t this.type = type\n\t this.original = original\n\t this.namespaces = namespaces\n\t this.eventType = W3C_MODEL || isNative ? type : 'propertychange'\n\t this.target = targetElement(element, isNative)\n\t this[eventSupport] = !!this.target[eventSupport]\n\t this.root = root\n\t this.handler = wrappedHandler(element, handler, null, args)\n\t }\n\t\n\t // given a list of namespaces, is our entry in any of them?\n\t RegEntry.prototype.inNamespaces = function (checkNamespaces) {\n\t var i, j, c = 0\n\t if (!checkNamespaces) return true\n\t if (!this.namespaces) return false\n\t for (i = checkNamespaces.length; i--;) {\n\t for (j = this.namespaces.length; j--;) {\n\t if (checkNamespaces[i] == this.namespaces[j]) c++\n\t }\n\t }\n\t return checkNamespaces.length === c\n\t }\n\t\n\t // match by element, original fn (opt), handler fn (opt)\n\t RegEntry.prototype.matches = function (checkElement, checkOriginal, checkHandler) {\n\t return this.element === checkElement &&\n\t (!checkOriginal || this.original === checkOriginal) &&\n\t (!checkHandler || this.handler === checkHandler)\n\t }\n\t\n\t return RegEntry\n\t }())\n\t\n\t , registry = (function () {\n\t // our map stores arrays by event type, just because it's better than storing\n\t // everything in a single array.\n\t // uses '$' as a prefix for the keys for safety and 'r' as a special prefix for\n\t // rootListeners so we can look them up fast\n\t var map = {}\n\t\n\t // generic functional search of our registry for matching listeners,\n\t // `fn` returns false to break out of the loop\n\t , forAll = function (element, type, original, handler, root, fn) {\n\t var pfx = root ? 'r' : '$'\n\t if (!type || type == '*') {\n\t // search the whole registry\n\t for (var t in map) {\n\t if (t.charAt(0) == pfx) {\n\t forAll(element, t.substr(1), original, handler, root, fn)\n\t }\n\t }\n\t } else {\n\t var i = 0, l, list = map[pfx + type], all = element == '*'\n\t if (!list) return\n\t for (l = list.length; i < l; i++) {\n\t if ((all || list[i].matches(element, original, handler)) && !fn(list[i], list, i, type)) return\n\t }\n\t }\n\t }\n\t\n\t , has = function (element, type, original, root) {\n\t // we're not using forAll here simply because it's a bit slower and this\n\t // needs to be fast\n\t var i, list = map[(root ? 'r' : '$') + type]\n\t if (list) {\n\t for (i = list.length; i--;) {\n\t if (!list[i].root && list[i].matches(element, original, null)) return true\n\t }\n\t }\n\t return false\n\t }\n\t\n\t , get = function (element, type, original, root) {\n\t var entries = []\n\t forAll(element, type, original, null, root, function (entry) {\n\t return entries.push(entry)\n\t })\n\t return entries\n\t }\n\t\n\t , put = function (entry) {\n\t var has = !entry.root && !this.has(entry.element, entry.type, null, false)\n\t , key = (entry.root ? 'r' : '$') + entry.type\n\t ;(map[key] || (map[key] = [])).push(entry)\n\t return has\n\t }\n\t\n\t , del = function (entry) {\n\t forAll(entry.element, entry.type, null, entry.handler, entry.root, function (entry, list, i) {\n\t list.splice(i, 1)\n\t entry.removed = true\n\t if (list.length === 0) delete map[(entry.root ? 'r' : '$') + entry.type]\n\t return false\n\t })\n\t }\n\t\n\t // dump all entries, used for onunload\n\t , entries = function () {\n\t var t, entries = []\n\t for (t in map) {\n\t if (t.charAt(0) == '$') entries = entries.concat(map[t])\n\t }\n\t return entries\n\t }\n\t\n\t return { has: has, get: get, put: put, del: del, entries: entries }\n\t }())\n\t\n\t // we need a selector engine for delegated events, use querySelectorAll if it exists\n\t // but for older browsers we need Qwery, Sizzle or similar\n\t , selectorEngine\n\t , setSelectorEngine = function (e) {\n\t if (!arguments.length) {\n\t selectorEngine = doc.querySelectorAll\n\t ? function (s, r) {\n\t return r.querySelectorAll(s)\n\t }\n\t : function () {\n\t throw new Error('Bean: No selector engine installed') // eeek\n\t }\n\t } else {\n\t selectorEngine = e\n\t }\n\t }\n\t\n\t // we attach this listener to each DOM event that we need to listen to, only once\n\t // per event type per DOM element\n\t , rootListener = function (event, type) {\n\t if (!W3C_MODEL && type && event && event.propertyName != '_on' + type) return\n\t\n\t var listeners = registry.get(this, type || event.type, null, false)\n\t , l = listeners.length\n\t , i = 0\n\t\n\t event = new Event(event, this, true)\n\t if (type) event.type = type\n\t\n\t // iterate through all handlers registered for this type, calling them unless they have\n\t // been removed by a previous handler or stopImmediatePropagation() has been called\n\t for (; i < l && !event.isImmediatePropagationStopped(); i++) {\n\t if (!listeners[i].removed) listeners[i].handler.call(this, event)\n\t }\n\t }\n\t\n\t // add and remove listeners to DOM elements\n\t , listener = W3C_MODEL\n\t ? function (element, type, add) {\n\t // new browsers\n\t element[add ? addEvent : removeEvent](type, rootListener, false)\n\t }\n\t : function (element, type, add, custom) {\n\t // IE8 and below, use attachEvent/detachEvent and we have to piggy-back propertychange events\n\t // to simulate event bubbling etc.\n\t var entry\n\t if (add) {\n\t registry.put(entry = new RegEntry(\n\t element\n\t , custom || type\n\t , function (event) { // handler\n\t rootListener.call(element, event, custom)\n\t }\n\t , rootListener\n\t , null\n\t , null\n\t , true // is root\n\t ))\n\t if (custom && element['_on' + custom] == null) element['_on' + custom] = 0\n\t entry.target.attachEvent('on' + entry.eventType, entry.handler)\n\t } else {\n\t entry = registry.get(element, custom || type, rootListener, true)[0]\n\t if (entry) {\n\t entry.target.detachEvent('on' + entry.eventType, entry.handler)\n\t registry.del(entry)\n\t }\n\t }\n\t }\n\t\n\t , once = function (rm, element, type, fn, originalFn) {\n\t // wrap the handler in a handler that does a remove as well\n\t return function () {\n\t fn.apply(this, arguments)\n\t rm(element, type, originalFn)\n\t }\n\t }\n\t\n\t , removeListener = function (element, orgType, handler, namespaces) {\n\t var type = orgType && orgType.replace(nameRegex, '')\n\t , handlers = registry.get(element, type, null, false)\n\t , removed = {}\n\t , i, l\n\t\n\t for (i = 0, l = handlers.length; i < l; i++) {\n\t if ((!handler || handlers[i].original === handler) && handlers[i].inNamespaces(namespaces)) {\n\t // TODO: this is problematic, we have a registry.get() and registry.del() that\n\t // both do registry searches so we waste cycles doing this. Needs to be rolled into\n\t // a single registry.forAll(fn) that removes while finding, but the catch is that\n\t // we'll be splicing the arrays that we're iterating over. Needs extra tests to\n\t // make sure we don't screw it up. @rvagg\n\t registry.del(handlers[i])\n\t if (!removed[handlers[i].eventType] && handlers[i][eventSupport])\n\t removed[handlers[i].eventType] = { t: handlers[i].eventType, c: handlers[i].type }\n\t }\n\t }\n\t // check each type/element for removed listeners and remove the rootListener where it's no longer needed\n\t for (i in removed) {\n\t if (!registry.has(element, removed[i].t, null, false)) {\n\t // last listener of this type, remove the rootListener\n\t listener(element, removed[i].t, false, removed[i].c)\n\t }\n\t }\n\t }\n\t\n\t // set up a delegate helper using the given selector, wrap the handler function\n\t , delegate = function (selector, fn) {\n\t //TODO: findTarget (therefore $) is called twice, once for match and once for\n\t // setting e.currentTarget, fix this so it's only needed once\n\t var findTarget = function (target, root) {\n\t var i, array = isString(selector) ? selectorEngine(selector, root) : selector\n\t for (; target && target !== root; target = target.parentNode) {\n\t for (i = array.length; i--;) {\n\t if (array[i] === target) return target\n\t }\n\t }\n\t }\n\t , handler = function (e) {\n\t var match = findTarget(e.target, this)\n\t if (match) fn.apply(match, arguments)\n\t }\n\t\n\t // __beanDel isn't pleasant but it's a private function, not exposed outside of Bean\n\t handler.__beanDel = {\n\t ft : findTarget // attach it here for customEvents to use too\n\t , selector : selector\n\t }\n\t return handler\n\t }\n\t\n\t , fireListener = W3C_MODEL ? function (isNative, type, element) {\n\t // modern browsers, do a proper dispatchEvent()\n\t var evt = doc.createEvent(isNative ? 'HTMLEvents' : 'UIEvents')\n\t evt[isNative ? 'initEvent' : 'initUIEvent'](type, true, true, win, 1)\n\t element.dispatchEvent(evt)\n\t } : function (isNative, type, element) {\n\t // old browser use onpropertychange, just increment a custom property to trigger the event\n\t element = targetElement(element, isNative)\n\t isNative ? element.fireEvent('on' + type, doc.createEventObject()) : element['_on' + type]++\n\t }\n\t\n\t /**\n\t * Public API: off(), on(), add(), (remove()), one(), fire(), clone()\n\t */\n\t\n\t /**\n\t * off(element[, eventType(s)[, handler ]])\n\t */\n\t , off = function (element, typeSpec, fn) {\n\t var isTypeStr = isString(typeSpec)\n\t , k, type, namespaces, i\n\t\n\t if (isTypeStr && typeSpec.indexOf(' ') > 0) {\n\t // off(el, 't1 t2 t3', fn) or off(el, 't1 t2 t3')\n\t typeSpec = str2arr(typeSpec)\n\t for (i = typeSpec.length; i--;)\n\t off(element, typeSpec[i], fn)\n\t return element\n\t }\n\t\n\t type = isTypeStr && typeSpec.replace(nameRegex, '')\n\t if (type && customEvents[type]) type = customEvents[type].base\n\t\n\t if (!typeSpec || isTypeStr) {\n\t // off(el) or off(el, t1.ns) or off(el, .ns) or off(el, .ns1.ns2.ns3)\n\t if (namespaces = isTypeStr && typeSpec.replace(namespaceRegex, '')) namespaces = str2arr(namespaces, '.')\n\t removeListener(element, type, fn, namespaces)\n\t } else if (isFunction(typeSpec)) {\n\t // off(el, fn)\n\t removeListener(element, null, typeSpec)\n\t } else {\n\t // off(el, { t1: fn1, t2, fn2 })\n\t for (k in typeSpec) {\n\t if (typeSpec.hasOwnProperty(k)) off(element, k, typeSpec[k])\n\t }\n\t }\n\t\n\t return element\n\t }\n\t\n\t /**\n\t * on(element, eventType(s)[, selector], handler[, args ])\n\t */\n\t , on = function(element, events, selector, fn) {\n\t var originalFn, type, types, i, args, entry, first\n\t\n\t //TODO: the undefined check means you can't pass an 'args' argument, fix this perhaps?\n\t if (selector === undefined && typeof events == 'object') {\n\t //TODO: this can't handle delegated events\n\t for (type in events) {\n\t if (events.hasOwnProperty(type)) {\n\t on.call(this, element, type, events[type])\n\t }\n\t }\n\t return\n\t }\n\t\n\t if (!isFunction(selector)) {\n\t // delegated event\n\t originalFn = fn\n\t args = slice.call(arguments, 4)\n\t fn = delegate(selector, originalFn, selectorEngine)\n\t } else {\n\t args = slice.call(arguments, 3)\n\t fn = originalFn = selector\n\t }\n\t\n\t types = str2arr(events)\n\t\n\t // special case for one(), wrap in a self-removing handler\n\t if (this === ONE) {\n\t fn = once(off, element, events, fn, originalFn)\n\t }\n\t\n\t for (i = types.length; i--;) {\n\t // add new handler to the registry and check if it's the first for this element/type\n\t first = registry.put(entry = new RegEntry(\n\t element\n\t , types[i].replace(nameRegex, '') // event type\n\t , fn\n\t , originalFn\n\t , str2arr(types[i].replace(namespaceRegex, ''), '.') // namespaces\n\t , args\n\t , false // not root\n\t ))\n\t if (entry[eventSupport] && first) {\n\t // first event of this type on this element, add root listener\n\t listener(element, entry.eventType, true, entry.customType)\n\t }\n\t }\n\t\n\t return element\n\t }\n\t\n\t /**\n\t * add(element[, selector], eventType(s), handler[, args ])\n\t *\n\t * Deprecated: kept (for now) for backward-compatibility\n\t */\n\t , add = function (element, events, fn, delfn) {\n\t return on.apply(\n\t null\n\t , !isString(fn)\n\t ? slice.call(arguments)\n\t : [ element, fn, events, delfn ].concat(arguments.length > 3 ? slice.call(arguments, 5) : [])\n\t )\n\t }\n\t\n\t /**\n\t * one(element, eventType(s)[, selector], handler[, args ])\n\t */\n\t , one = function () {\n\t return on.apply(ONE, arguments)\n\t }\n\t\n\t /**\n\t * fire(element, eventType(s)[, args ])\n\t *\n\t * The optional 'args' argument must be an array, if no 'args' argument is provided\n\t * then we can use the browser's DOM event system, otherwise we trigger handlers manually\n\t */\n\t , fire = function (element, type, args) {\n\t var types = str2arr(type)\n\t , i, j, l, names, handlers\n\t\n\t for (i = types.length; i--;) {\n\t type = types[i].replace(nameRegex, '')\n\t if (names = types[i].replace(namespaceRegex, '')) names = str2arr(names, '.')\n\t if (!names && !args && element[eventSupport]) {\n\t fireListener(nativeEvents[type], type, element)\n\t } else {\n\t // non-native event, either because of a namespace, arguments or a non DOM element\n\t // iterate over all listeners and manually 'fire'\n\t handlers = registry.get(element, type, null, false)\n\t args = [false].concat(args)\n\t for (j = 0, l = handlers.length; j < l; j++) {\n\t if (handlers[j].inNamespaces(names)) {\n\t handlers[j].handler.apply(element, args)\n\t }\n\t }\n\t }\n\t }\n\t return element\n\t }\n\t\n\t /**\n\t * clone(dstElement, srcElement[, eventType ])\n\t *\n\t * TODO: perhaps for consistency we should allow the same flexibility in type specifiers?\n\t */\n\t , clone = function (element, from, type) {\n\t var handlers = registry.get(from, type, null, false)\n\t , l = handlers.length\n\t , i = 0\n\t , args, beanDel\n\t\n\t for (; i < l; i++) {\n\t if (handlers[i].original) {\n\t args = [ element, handlers[i].type ]\n\t if (beanDel = handlers[i].handler.__beanDel) args.push(beanDel.selector)\n\t args.push(handlers[i].original)\n\t on.apply(null, args)\n\t }\n\t }\n\t return element\n\t }\n\t\n\t , bean = {\n\t 'on' : on\n\t , 'add' : add\n\t , 'one' : one\n\t , 'off' : off\n\t , 'remove' : off\n\t , 'clone' : clone\n\t , 'fire' : fire\n\t , 'Event' : Event\n\t , 'setSelectorEngine' : setSelectorEngine\n\t , 'noConflict' : function () {\n\t context[name] = old\n\t return this\n\t }\n\t }\n\t\n\t // for IE, clean up on unload to avoid leaks\n\t if (win.attachEvent) {\n\t var cleanup = function () {\n\t var i, entries = registry.entries()\n\t for (i in entries) {\n\t if (entries[i].type && entries[i].type !== 'unload') off(entries[i].element, entries[i].type)\n\t }\n\t win.detachEvent('onunload', cleanup)\n\t win.CollectGarbage && win.CollectGarbage()\n\t }\n\t win.attachEvent('onunload', cleanup)\n\t }\n\t\n\t // initialize selector engine to internal default (qSA or throw Error)\n\t setSelectorEngine()\n\t\n\t return bean\n\t});\n\n\n/***/ },\n/* 6 */\n/***/ function(module, exports) {\n\n\t'use strict';\n\t\n\tmodule.exports = (function() {\n\t try {\n\t return !!new Blob();\n\t } catch (e) {\n\t return false;\n\t }\n\t}());\n\n\n/***/ },\n/* 7 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tvar Emitter = __webpack_require__(1);\n\tvar createLoader = __webpack_require__(8);\n\tvar autoId = 0;\n\t\n\tmodule.exports = function createGroup(config) {\n\t var group;\n\t var map = {};\n\t var assets = [];\n\t var queue = [];\n\t var numLoaded = 0;\n\t var numTotal = 0;\n\t var loaders = {};\n\t\n\t var add = function(options) {\n\t // console.debug('add', options);\n\t if (Array.isArray(options)) {\n\t options.forEach(add);\n\t return group;\n\t }\n\t var isGroup = !!options.assets && Array.isArray(options.assets);\n\t // console.debug('isGroup', isGroup);\n\t var loader;\n\t if (isGroup) {\n\t loader = createGroup(configure(options, config));\n\t } else {\n\t loader = createLoader(configure(options, config));\n\t }\n\t loader.once('destroy', destroyHandler);\n\t queue.push(loader);\n\t loaders[loader.id] = loader;\n\t return group;\n\t };\n\t\n\t var get = function(id) {\n\t if (!arguments.length) {\n\t return assets;\n\t }\n\t if (map[id]) {\n\t return map[id];\n\t }\n\t return loaders[id];\n\t };\n\t\n\t var find = function(id) {\n\t if (get(id)) {\n\t return get(id);\n\t }\n\t var found = null;\n\t Object.keys(loaders).some(function(key) {\n\t found = loaders[key].find && loaders[key].find(id);\n\t return !!found;\n\t });\n\t return found;\n\t };\n\t\n\t var getExtension = function(url) {\n\t return url && url.split('?')[0].split('.').pop().toLowerCase();\n\t };\n\t\n\t var configure = function(options, defaults) {\n\t if (typeof options === 'string') {\n\t var url = options;\n\t options = {\n\t url: url\n\t };\n\t }\n\t\n\t if (options.isTouchLocked === undefined) {\n\t options.isTouchLocked = defaults.isTouchLocked;\n\t }\n\t\n\t if (options.blob === undefined) {\n\t options.blob = defaults.blob;\n\t }\n\t\n\t if (options.basePath === undefined) {\n\t options.basePath = defaults.basePath;\n\t }\n\t\n\t options.id = options.id || options.url || String(++autoId);\n\t options.type = options.type || getExtension(options.url);\n\t options.crossOrigin = options.crossOrigin || defaults.crossOrigin;\n\t options.webAudioContext = options.webAudioContext || defaults.webAudioContext;\n\t options.log = defaults.log;\n\t\n\t return options;\n\t };\n\t\n\t var start = function() {\n\t numTotal = queue.length;\n\t\n\t queue.forEach(function(loader) {\n\t loader\n\t .on('progress', progressHandler)\n\t .once('complete', completeHandler)\n\t .once('error', errorHandler)\n\t .start();\n\t });\n\t\n\t queue = [];\n\t\n\t return group;\n\t };\n\t\n\t var progressHandler = function(progress) {\n\t var loaded = numLoaded + progress;\n\t group.emit('progress', loaded / numTotal);\n\t };\n\t\n\t var completeHandler = function(asset, id, type) {\n\t if (Array.isArray(asset)) {\n\t asset = { id: id, file: asset, type: type };\n\t }\n\t numLoaded++;\n\t group.emit('progress', numLoaded / numTotal);\n\t map[asset.id] = asset.file;\n\t assets.push(asset);\n\t group.emit('childcomplete', asset);\n\t checkComplete();\n\t };\n\t\n\t var errorHandler = function(err) {\n\t numTotal--;\n\t if (group.listeners('error').length) {\n\t group.emit('error', err);\n\t } else {\n\t console.error(err);\n\t }\n\t checkComplete();\n\t };\n\t\n\t var destroyHandler = function(id) {\n\t loaders[id] = null;\n\t delete loaders[id];\n\t\n\t map[id] = null;\n\t delete map[id];\n\t\n\t assets.some(function(asset, i) {\n\t if (asset.id === id) {\n\t assets.splice(i, 1);\n\t return true;\n\t }\n\t });\n\t };\n\t\n\t var checkComplete = function() {\n\t if (numLoaded >= numTotal) {\n\t group.emit('complete', assets, map, config.id, 'group');\n\t }\n\t };\n\t\n\t var destroy = function() {\n\t while (queue.length) {\n\t queue.pop().destroy();\n\t }\n\t group.off('error');\n\t group.off('progress');\n\t group.off('complete');\n\t assets = [];\n\t map = {};\n\t config.webAudioContext = null;\n\t numTotal = 0;\n\t numLoaded = 0;\n\t\n\t Object.keys(loaders).forEach(function(key) {\n\t loaders[key].destroy();\n\t });\n\t loaders = {};\n\t\n\t group.emit('destroy', group.id);\n\t\n\t return group;\n\t };\n\t\n\t // emits: progress, error, complete, destroy\n\t\n\t group = Object.create(Emitter.prototype, {\n\t _events: {\n\t value: {}\n\t },\n\t id: {\n\t get: function() {\n\t return config.id;\n\t }\n\t },\n\t add: {\n\t value: add\n\t },\n\t start: {\n\t value: start\n\t },\n\t get: {\n\t value: get\n\t },\n\t find: {\n\t value: find\n\t },\n\t getLoader: {\n\t value: function(id) {\n\t return loaders[id];\n\t }\n\t },\n\t loaded: {\n\t get: function() {\n\t return numLoaded >= numTotal;\n\t }\n\t },\n\t file: {\n\t get: function() {\n\t return assets;\n\t }\n\t },\n\t destroy: {\n\t value: destroy\n\t }\n\t });\n\t\n\t config = configure(config || {}, {\n\t basePath: '',\n\t blob: false,\n\t touchLocked: false,\n\t crossOrigin: null,\n\t webAudioContext: null,\n\t log: false\n\t });\n\t\n\t if (Array.isArray(config.assets)) {\n\t add(config.assets);\n\t }\n\t\n\t return Object.freeze(group);\n\t};\n\n\n/***/ },\n/* 8 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tvar Emitter = __webpack_require__(1);\n\tvar browserHasBlob = __webpack_require__(6);\n\tvar stats = __webpack_require__(3);\n\t\n\tmodule.exports = function(options) {\n\t var id = options.id;\n\t var basePath = options.basePath || '';\n\t var url = options.url;\n\t var type = options.type;\n\t var crossOrigin = options.crossOrigin;\n\t var isTouchLocked = options.isTouchLocked;\n\t var blob = options.blob && browserHasBlob;\n\t var webAudioContext = options.webAudioContext;\n\t var log = options.log;\n\t\n\t var loader;\n\t var loadHandler;\n\t var request;\n\t var startTime;\n\t var timeout;\n\t var file;\n\t\n\t var start = function() {\n\t startTime = Date.now();\n\t\n\t switch (type) {\n\t case 'json':\n\t loadJSON();\n\t break;\n\t case 'jpg':\n\t case 'png':\n\t case 'gif':\n\t case 'webp':\n\t loadImage();\n\t break;\n\t case 'mp3':\n\t case 'ogg':\n\t case 'opus':\n\t case 'wav':\n\t case 'm4a':\n\t loadAudio();\n\t break;\n\t case 'ogv':\n\t case 'mp4':\n\t case 'webm':\n\t case 'hls':\n\t loadVideo();\n\t break;\n\t case 'bin':\n\t case 'binary':\n\t loadXHR('arraybuffer');\n\t break;\n\t case 'txt':\n\t case 'text':\n\t loadXHR('text');\n\t break;\n\t default:\n\t throw 'AssetsLoader ERROR: Unknown type for file with URL: ' + basePath + url + ' (' + type + ')';\n\t }\n\t };\n\t\n\t var dispatchComplete = function(data) {\n\t if (!data) {\n\t return;\n\t }\n\t file = {id: id, file: data, type: type};\n\t loader.emit('progress', 1);\n\t loader.emit('complete', file, id, type);\n\t removeListeners();\n\t };\n\t\n\t var loadXHR = function(responseType, customLoadHandler) {\n\t loadHandler = customLoadHandler || completeHandler;\n\t\n\t request = new XMLHttpRequest();\n\t request.open('GET', basePath + url, true);\n\t request.responseType = responseType;\n\t request.addEventListener('progress', progressHandler);\n\t request.addEventListener('load', loadHandler);\n\t request.addEventListener('error', errorHandler);\n\t request.send();\n\t };\n\t\n\t var progressHandler = function(event) {\n\t if (event.lengthComputable) {\n\t loader.emit('progress', event.loaded / event.total);\n\t }\n\t };\n\t\n\t var completeHandler = function() {\n\t if (success()) {\n\t dispatchComplete(request.response);\n\t }\n\t };\n\t\n\t var success = function() {\n\t // console.log('success', url, request.status);\n\t if (request && request.status < 400) {\n\t stats.update(request, startTime, url, log);\n\t return true;\n\t }\n\t errorHandler(request && request.statusText);\n\t return false;\n\t };\n\t\n\t // json\n\t\n\t var loadJSON = function() {\n\t loadXHR('json', function() {\n\t if (success()) {\n\t var data = request.response;\n\t if (typeof data === 'string') {\n\t data = JSON.parse(data);\n\t }\n\t dispatchComplete(data);\n\t }\n\t });\n\t };\n\t\n\t // image\n\t\n\t var loadImage = function() {\n\t if (blob) {\n\t loadImageBlob();\n\t } else {\n\t loadImageElement();\n\t }\n\t };\n\t\n\t var loadImageElement = function() {\n\t request = new Image();\n\t if (crossOrigin) {\n\t request.crossOrigin = 'anonymous';\n\t }\n\t request.addEventListener('error', errorHandler, false);\n\t request.addEventListener('load', elementLoadHandler, false);\n\t request.src = basePath + url;\n\t };\n\t\n\t var elementLoadHandler = function(event) {\n\t window.clearTimeout(timeout);\n\t if (!event && (request.error || !request.readyState)) {\n\t errorHandler();\n\t return;\n\t }\n\t dispatchComplete(request);\n\t };\n\t\n\t var loadImageBlob = function() {\n\t loadXHR('blob', function() {\n\t if (success()) {\n\t request = new Image();\n\t request.addEventListener('error', errorHandler, false);\n\t request.addEventListener('load', imageBlobHandler, false);\n\t request.src = window.URL.createObjectURL(request.response);\n\t }\n\t });\n\t };\n\t\n\t var imageBlobHandler = function() {\n\t window.URL.revokeObjectURL(request.src);\n\t dispatchComplete(request);\n\t };\n\t\n\t // audio\n\t\n\t var loadAudio = function() {\n\t if (webAudioContext) {\n\t loadAudioBuffer();\n\t } else {\n\t loadMediaElement('audio');\n\t }\n\t };\n\t\n\t // video\n\t\n\t var loadVideo = function() {\n\t if (blob) {\n\t loadXHR('blob');\n\t } else {\n\t loadMediaElement('video');\n\t }\n\t };\n\t\n\t // audio buffer\n\t\n\t var loadAudioBuffer = function() {\n\t loadXHR('arraybuffer', function() {\n\t if (success()) {\n\t webAudioContext.decodeAudioData(\n\t request.response,\n\t function(buffer) {\n\t request = null;\n\t dispatchComplete(buffer);\n\t },\n\t function(e) {\n\t errorHandler(e);\n\t }\n\t );\n\t }\n\t });\n\t };\n\t\n\t // media element\n\t\n\t var loadMediaElement = function(tagName) {\n\t request = document.createElement(tagName);\n\t\n\t if (!isTouchLocked) {\n\t // timeout because sometimes canplaythrough doesn't fire\n\t window.clearTimeout(timeout);\n\t timeout = window.setTimeout(elementLoadHandler, 2000);\n\t request.addEventListener('canplaythrough', elementLoadHandler, false);\n\t }\n\t\n\t request.addEventListener('error', errorHandler, false);\n\t request.preload = 'auto';\n\t request.src = basePath + url;\n\t request.load();\n\t\n\t if (isTouchLocked) {\n\t dispatchComplete(request);\n\t }\n\t };\n\t\n\t // error\n\t\n\t var errorHandler = function(err) {\n\t // console.log('errorHandler', url, err);\n\t window.clearTimeout(timeout);\n\t\n\t var message = err;\n\t\n\t if (request && request.tagName && request.error) {\n\t var ERROR_STATE = ['', 'ABORTED', 'NETWORK', 'DECODE', 'SRC_NOT_SUPPORTED'];\n\t message = 'MediaError: ' + ERROR_STATE[request.error.code] + ' ' + request.src;\n\t } else if (request && request.statusText) {\n\t message = request.statusText;\n\t } else if (err && err.message) {\n\t message = err.message;\n\t } else if (err && err.type) {\n\t message = err.type;\n\t }\n\t\n\t loader.emit('error', 'Error loading \"' + basePath + url + '\" ' + message);\n\t\n\t destroy();\n\t };\n\t\n\t // clean up\n\t\n\t var removeListeners = function() {\n\t loader.off('error');\n\t loader.off('progress');\n\t loader.off('complete');\n\t\n\t if (request) {\n\t request.removeEventListener('progress', progressHandler);\n\t request.removeEventListener('load', loadHandler);\n\t request.removeEventListener('error', errorHandler);\n\t request.removeEventListener('load', elementLoadHandler);\n\t request.removeEventListener('canplaythrough', elementLoadHandler);\n\t request.removeEventListener('load', imageBlobHandler);\n\t }\n\t };\n\t\n\t var destroy = function() {\n\t removeListeners();\n\t\n\t if (request && request.abort && request.readyState < 4) {\n\t request.abort();\n\t }\n\t\n\t request = null;\n\t webAudioContext = null;\n\t file = null;\n\t\n\t window.clearTimeout(timeout);\n\t\n\t loader.emit('destroy', id);\n\t };\n\t\n\t // emits: progress, error, complete\n\t\n\t loader = Object.create(Emitter.prototype, {\n\t _events: {\n\t value: {}\n\t },\n\t id: {\n\t value: options.id\n\t },\n\t start: {\n\t value: start\n\t },\n\t loaded: {\n\t get: function() {\n\t return !!file;\n\t }\n\t },\n\t file: {\n\t get: function() {\n\t return file;\n\t }\n\t },\n\t destroy: {\n\t value: destroy\n\t }\n\t });\n\t\n\t return Object.freeze(loader);\n\t};\n\n\n/***/ },\n/* 9 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tvar _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"]) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); } }; }();\n\t\n\tvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\t\n\tvar _screenfull = __webpack_require__(17);\n\t\n\tvar _screenfull2 = _interopRequireDefault(_screenfull);\n\t\n\tvar _bean = __webpack_require__(5);\n\t\n\tvar _bean2 = _interopRequireDefault(_bean);\n\t\n\tvar _assetsLoader = __webpack_require__(2);\n\t\n\tvar _assetsLoader2 = _interopRequireDefault(_assetsLoader);\n\t\n\t__webpack_require__(19);\n\t\n\tvar _constants = __webpack_require__(4);\n\t\n\tvar constants = _interopRequireWildcard(_constants);\n\t\n\tvar _video = __webpack_require__(12);\n\t\n\tvar _video2 = _interopRequireDefault(_video);\n\t\n\tvar _texts = __webpack_require__(10);\n\t\n\tvar _texts2 = _interopRequireDefault(_texts);\n\t\n\tfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\t\n\tfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\t\n\tvar random = __webpack_require__(16)();\n\t\n\tvar KING_ITEMS = random.shuffle([constants.ITEM_LOSINI, constants.ITEM_SNAKE, constants.ITEM_PISTOL]);\n\t\n\tvar App = function () {\n\t function App(_ref) {\n\t var _this = this;\n\t\n\t var rootEl = _ref.rootEl;\n\t\n\t _classCallCheck(this, App);\n\t\n\t this.dom = {};\n\t this.ctx = null;\n\t this.gameState = constants.GAME_STATE_INITIAL_LOADING;\n\t this.wasGameStarted = false;\n\t this.kingItem = null;\n\t this.kingItemPickingIndex = 0;\n\t this.hamletItem = null;\n\t this.canSelectHamletItem = false;\n\t this.timerDuration = 0;\n\t this.timerStartTime = 0;\n\t this.timerFinished = false;\n\t this.playingVideo = null;\n\t this.mainActionStarted = false;\n\t this.loadedVideos = {};\n\t\n\t this.onLoadMainAssetsError = function (error) {\n\t console.error(error);\n\t };\n\t\n\t this.onStartSceneButtonClick = function (event) {\n\t _this.startGame();\n\t };\n\t\n\t this.onEndScenePlayAgainButtonClick = function (event) {\n\t _this.startGame();\n\t };\n\t\n\t this.onSelectionItemClick = function (event) {\n\t event.preventDefault();\n\t var el = event.currentTarget;\n\t if (el.classList.contains('is-fen')) {\n\t _this.selectHamletItem('fen');\n\t } else if (el.classList.contains('is-ban')) {\n\t _this.selectHamletItem('ban');\n\t } else if (el.classList.contains('is-tuf')) {\n\t _this.selectHamletItem('tuf');\n\t } else if (el.classList.contains('is-van')) {\n\t _this.selectHamletItem('van');\n\t } else if (el.classList.contains('is-yad')) {\n\t _this.selectHamletItem('yad');\n\t }\n\t };\n\t\n\t this.onBodyKeypress = function (event) {\n\t event.preventDefault();\n\t if (event.keyCode === constants.KEY_CODE_ENTER) {\n\t if (_screenfull2.default.enabled) {\n\t _screenfull2.default.request();\n\t }\n\t }\n\t\n\t var keyCode = event.keyCode;\n\t\n\t [[constants.KEY_CODE_A, constants.ITEM_FEN], [constants.KEY_CODE_S, constants.ITEM_BANAN], [constants.KEY_CODE_D, constants.ITEM_TUFLYA], [constants.KEY_CODE_F, constants.ITEM_VANTUZ], [constants.KEY_CODE_G, constants.ITEM_YAD]].forEach(function (data) {\n\t var _data = _slicedToArray(data, 2),\n\t itemKeyCode = _data[0],\n\t item = _data[1];\n\t\n\t if (itemKeyCode == keyCode) {\n\t _this.selectHamletItem(item.name);\n\t }\n\t });\n\t\n\t if (keyCode === constants.KEY_CODE_SPACE) {\n\t _this.startGame();\n\t }\n\t };\n\t\n\t this.resizeAll = function () {\n\t var canvasEl = _this.dom.canvasEl;\n\t\n\t\n\t var windowWidth = window.innerWidth;\n\t var windowHeight = window.innerHeight;\n\t\n\t var videoWidth = 1280;\n\t var videoHeight = 720;\n\t\n\t var width = window.innerWidth;\n\t var height = videoHeight / (videoWidth / width);\n\t\n\t if (height > windowHeight) {\n\t height = windowHeight;\n\t width = height * videoWidth / videoHeight;\n\t }\n\t\n\t // Firefox currently has a bug where the canvasHeight can't be read from\n\t // the video, so we will make assumptions if this happens.\n\t\n\t if (isNaN(height)) {\n\t height = width / (4 / 3);\n\t }\n\t\n\t [].forEach.call(document.querySelectorAll('video'), function (el) {\n\t el.setAttribute('width', width);\n\t el.setAttribute('height', height);\n\t });\n\t };\n\t\n\t this.renderTimer = function () {\n\t if (_this.timerFinished) {\n\t return;\n\t }\n\t var timerEl = _this.dom.timerEl;\n\t\n\t var currTime = Date.now();\n\t var delta = currTime - _this.timerStartTime;\n\t var elapsedSecs = Math.round((_this.timerDuration - delta) / 1000);\n\t if (elapsedSecs < 0) {\n\t elapsedSecs = 0;\n\t _this.timerFinished = true;\n\t _this.onTimerFinished();\n\t _this.removeIsVisible(timerEl, 1000);\n\t return;\n\t }\n\t if (elapsedSecs < 10) {\n\t elapsedSecs = '0' + elapsedSecs;\n\t }\n\t\n\t timerEl.innerText = '00:' + elapsedSecs;\n\t requestAnimationFrame(_this.renderTimer);\n\t };\n\t\n\t this.render = function () {\n\t var playingVideo = _this.playingVideo;\n\t\n\t [].forEach.call(document.querySelectorAll('video'), function (el) {\n\t if (el !== playingVideo) {\n\t el.style.display = 'none';\n\t }\n\t });\n\t\n\t if (playingVideo) {\n\t playingVideo.el.style.display = 'block';\n\t _this.resizeAll();\n\t }\n\t };\n\t\n\t this.cacheDomEls(rootEl);\n\t this.preRun();\n\t }\n\t\n\t _createClass(App, [{\n\t key: 'cacheDomEls',\n\t value: function cacheDomEls(rootEl) {\n\t var dom = this.dom;\n\t\n\t\n\t dom.rootEl = rootEl;\n\t dom.loaderEl = rootEl.querySelector('.App-loader');\n\t dom.containerEl = rootEl.querySelector('.App-container');\n\t dom.timerEl = rootEl.querySelector('.App-timer');\n\t\n\t dom.startSceneEl = rootEl.querySelector('.App-startScene');\n\t dom.startSceneLogoEl = dom.startSceneEl.querySelector('.App-logo');\n\t dom.startSceneStartButtonEl = dom.startSceneEl.querySelector('.App-startButton');\n\t\n\t dom.selectionSceneEl = rootEl.querySelector('.App-selectionScene');\n\t dom.selectionItemsEl = rootEl.querySelector('.App-selectionItems');\n\t dom.selectionItemElArr = dom.selectionItemsEl.querySelectorAll('.App-selectionItem');\n\t\n\t dom.endSceneEl = rootEl.querySelector('.App-endScene');\n\t dom.endSceneLogoEl = dom.endSceneEl.querySelector('.App-logo');\n\t dom.endSceneTextEl = dom.endSceneEl.querySelector('.App-endText');\n\t dom.endScenePlayAgainButton = dom.endSceneEl.querySelector('.App-playAgainButton');\n\t }\n\t }, {\n\t key: 'loadMainAssets',\n\t value: function loadMainAssets() {\n\t return new Promise(function (resolve, reject) {\n\t var loader = (0, _assetsLoader2.default)({\n\t assets: [{ url: 'assets/i/start.jpg' }, { url: 'assets/i/final.jpg' }, { url: 'assets/i/item_ban.png' }, { url: 'assets/i/item_fen.png' }, { url: 'assets/i/item_tuf.png' }, { url: 'assets/i/item_van.png' }, { url: 'assets/i/item_yad.png' }, { url: 'assets/music/main_menu_song.mp3' }, { url: 'assets/music/final_song.mp3' }]\n\t });\n\t\n\t loader.on('error', function (error) {\n\t return reject(error);\n\t });\n\t loader.on('complete', function () {\n\t return resolve();\n\t });\n\t\n\t loader.start();\n\t });\n\t }\n\t }, {\n\t key: 'showContainer',\n\t value: function showContainer() {\n\t var _this2 = this;\n\t\n\t return new Promise(function (resolve) {\n\t var _dom = _this2.dom,\n\t loaderEl = _dom.loaderEl,\n\t containerEl = _dom.containerEl;\n\t\n\t _this2.removeIsVisible(loaderEl).then(function () {\n\t _this2.addIsVisible(containerEl).then(function () {\n\t resolve();\n\t });\n\t });\n\t });\n\t }\n\t }, {\n\t key: 'addIsVisible',\n\t value: function addIsVisible(el) {\n\t var duration = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 500;\n\t\n\t return new Promise(function (resolve) {\n\t el.style.visibility = 'visible';\n\t setTimeout(function () {\n\t el.classList.remove('is-visible_no');\n\t el.classList.add('is-visible_yes');\n\t if (duration === 0) {\n\t resolve();\n\t } else {\n\t setTimeout(function () {\n\t resolve();\n\t }, duration);\n\t }\n\t });\n\t });\n\t }\n\t }, {\n\t key: 'removeIsVisible',\n\t value: function removeIsVisible(el) {\n\t var duration = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 500;\n\t\n\t return new Promise(function (resolve) {\n\t el.classList.remove('is-visible_yes');\n\t el.classList.add('is-visible_no');\n\t if (duration === 0) {\n\t el.style.visibility = 'hidden';\n\t resolve();\n\t } else {\n\t setTimeout(function () {\n\t el.style.visibility = 'hidden';\n\t resolve();\n\t }, duration);\n\t }\n\t });\n\t }\n\t }, {\n\t key: 'bindEvents',\n\t value: function bindEvents() {\n\t var _this3 = this;\n\t\n\t var body = document;\n\t var _dom2 = this.dom,\n\t startSceneStartButtonEl = _dom2.startSceneStartButtonEl,\n\t endScenePlayAgainButton = _dom2.endScenePlayAgainButton,\n\t selectionItemElArr = _dom2.selectionItemElArr;\n\t\n\t _bean2.default.on(body, 'keypress', this.onBodyKeypress);\n\t _bean2.default.on(window, 'resize', function () {\n\t _this3.resizeAll();\n\t });\n\t _bean2.default.on(startSceneStartButtonEl, 'click', this.onStartSceneButtonClick);\n\t _bean2.default.on(endScenePlayAgainButton, 'click', this.onEndScenePlayAgainButtonClick);\n\t [].forEach.call(selectionItemElArr, function (el) {\n\t _bean2.default.on(el, 'click', _this3.onSelectionItemClick);\n\t });\n\t }\n\t }, {\n\t key: 'preRun',\n\t value: function preRun() {\n\t var _this4 = this;\n\t\n\t this.loadMainAssets().then(function () {\n\t _this4.bindEvents();\n\t _this4.resizeAll();\n\t _this4.addIsVisible(_this4.dom.startSceneEl, 0).then(function () {\n\t _this4.showContainer().then(function () {\n\t _this4.run();\n\t });\n\t });\n\t }).catch(this.onLoadMainAssetsError);\n\t }\n\t }, {\n\t key: 'showStartScene',\n\t value: function showStartScene() {\n\t var _this5 = this;\n\t\n\t var _dom3 = this.dom,\n\t startSceneEl = _dom3.startSceneEl,\n\t selectionSceneEl = _dom3.selectionSceneEl,\n\t endSceneEl = _dom3.endSceneEl;\n\t\n\t\n\t return this.removeIsVisible(endSceneEl).then(function () {\n\t _this5.addIsVisible(startSceneEl);\n\t });\n\t }\n\t }, {\n\t key: 'showSelectionScene',\n\t value: function showSelectionScene() {\n\t var _this6 = this;\n\t\n\t var _dom4 = this.dom,\n\t startSceneEl = _dom4.startSceneEl,\n\t selectionSceneEl = _dom4.selectionSceneEl,\n\t endSceneEl = _dom4.endSceneEl;\n\t\n\t return this.removeIsVisible(startSceneEl).then(function () {\n\t _this6.addIsVisible(selectionSceneEl);\n\t });\n\t }\n\t }, {\n\t key: 'showEndScene',\n\t value: function showEndScene() {\n\t var _this7 = this;\n\t\n\t var _dom5 = this.dom,\n\t startSceneEl = _dom5.startSceneEl,\n\t selectionSceneEl = _dom5.selectionSceneEl,\n\t endSceneEl = _dom5.endSceneEl;\n\t\n\t return this.removeIsVisible(selectionSceneEl).then(function () {\n\t _this7.addIsVisible(endSceneEl);\n\t });\n\t }\n\t }, {\n\t key: 'run',\n\t value: function run() {\n\t this.render();\n\t }\n\t }, {\n\t key: 'startGame',\n\t value: function startGame() {\n\t var _this8 = this;\n\t\n\t if (this.wasGameStarted) {\n\t return;\n\t }\n\t if (this.finalSceneAudio) {\n\t this.finalSceneAudio.pause();\n\t }\n\t if (this.menuSceneAudio) {\n\t this.menuSceneAudio.pause();\n\t }\n\t this.wasGameStarted = true;\n\t\n\t var _dom6 = this.dom,\n\t startSceneEl = _dom6.startSceneEl,\n\t endSceneEl = _dom6.endSceneEl;\n\t\n\t\n\t this.createKingItem();\n\t this.playIntro().then(function () {\n\t _this8.showSelectionScene().then(function () {\n\t _this8.startTimer();\n\t _this8.enableHamletItemSelection();\n\t });\n\t });\n\t\n\t Promise.all([this.removeIsVisible(startSceneEl), this.removeIsVisible(endSceneEl)]).then(function () {});\n\t }\n\t }, {\n\t key: 'enableHamletItemSelection',\n\t value: function enableHamletItemSelection() {\n\t this.canSelectHamletItem = true;\n\t }\n\t }, {\n\t key: 'disableHamletItemSelection',\n\t value: function disableHamletItemSelection() {\n\t this.canSelectHamletItem = false;\n\t }\n\t }, {\n\t key: 'createKingItem',\n\t value: function createKingItem() {\n\t var item = KING_ITEMS[this.kingItemPickingIndex % KING_ITEMS.length];\n\t this.kingItemPickingIndex++;\n\t this.kingItem = item;\n\t }\n\t }, {\n\t key: 'selectHamletItem',\n\t value: function selectHamletItem(hamletItem) {\n\t if (!this.canSelectHamletItem || this.hamletItem) {\n\t return;\n\t }\n\t this.hamletItem = hamletItem;\n\t this.disableHamletItemSelection();\n\t this.startAction();\n\t }\n\t }, {\n\t key: 'playIntro',\n\t value: function playIntro() {\n\t var _this9 = this;\n\t\n\t var introVideo = new _video2.default({ filePath: this.getVideoPath({ type: 'intro', kingItem: this.kingItem }) });\n\t var loopVideo = new _video2.default({ filePath: this.getVideoPath({ type: 'loop', kingItem: this.kingItem }) });\n\t var winVideo = new _video2.default({ filePath: this.getVideoPath({ type: 'win', kingItem: this.kingItem }) });\n\t\n\t var allVideosLoaded = this.loadedVideos[introVideo.filePath] && this.loadedVideos[loopVideo.filePath] && this.loadedVideos[winVideo.filePath];\n\t if (!allVideosLoaded) {\n\t this.showLoader();\n\t }\n\t return new Promise(function (resolve, reject) {\n\t Promise.all([introVideo.load(), loopVideo.load(), winVideo.load()]).then(function () {\n\t _this9.resizeAll();\n\t _this9.loadedVideos[introVideo.filePath] = introVideo;\n\t _this9.loadedVideos[loopVideo.filePath] = loopVideo;\n\t _this9.loadedVideos[winVideo.filePath] = winVideo;\n\t\n\t var afterVideosLoaded = function afterVideosLoaded() {\n\t introVideo.play().then(function () {\n\t _this9.setPlayingVideo(loopVideo);\n\t loopVideo.playWithLoop({\n\t loopEndDuration: 90\n\t });\n\t resolve();\n\t });\n\t _this9.setPlayingVideo(introVideo);\n\t _this9.addIsVisible(_this9.playingVideo.el).then(function () {});\n\t };\n\t\n\t if (allVideosLoaded) {\n\t afterVideosLoaded();\n\t } else {\n\t _this9.hideLoader().then(function () {\n\t afterVideosLoaded();\n\t });\n\t }\n\t }).catch(_this9.onVideoLoadError);\n\t });\n\t }\n\t }, {\n\t key: 'startTimer',\n\t value: function startTimer() {\n\t var _this10 = this;\n\t\n\t this.timerDuration = constants.TIMER_DURATION;\n\t this.timerStartTime = Date.now();\n\t this.timerFinished = false;\n\t this.addIsVisible(this.dom.timerEl).then(function () {\n\t _this10.renderTimer();\n\t });\n\t }\n\t }, {\n\t key: 'onTimerFinished',\n\t value: function onTimerFinished() {\n\t if (!this.mainActionStarted) {\n\t this.disableHamletItemSelection();\n\t this.removeIsVisible(this.dom.selectionSceneEl);\n\t this.playHamletWin();\n\t }\n\t }\n\t }, {\n\t key: 'showLoader',\n\t value: function showLoader() {\n\t var _this11 = this;\n\t\n\t return new Promise(function (resolve) {\n\t _this11.addIsVisible(_this11.dom.loaderEl).then(function () {\n\t resolve();\n\t });\n\t }).catch(function (error) {\n\t return console.error(error);\n\t });\n\t }\n\t }, {\n\t key: 'hideLoader',\n\t value: function hideLoader() {\n\t var _this12 = this;\n\t\n\t return new Promise(function (resolve) {\n\t _this12.removeIsVisible(_this12.dom.loaderEl).then(function () {\n\t resolve();\n\t });\n\t }).catch(function (error) {\n\t return console.error(error);\n\t });\n\t }\n\t }, {\n\t key: 'getVideoPath',\n\t value: function getVideoPath(_ref2) {\n\t var type = _ref2.type,\n\t kingItem = _ref2.kingItem,\n\t hamletItem = _ref2.hamletItem;\n\t\n\t var root = window.innerWidth > 980 ? constants.VIDOE_DESKTOP_PATH : constants.VIDOE_MOBILE_PATH;\n\t if (type === 'action') {\n\t return root + '/action_' + kingItem + '_' + hamletItem + '.mp4';\n\t } else {\n\t return root + '/' + type + '_' + kingItem + '.mp4';\n\t }\n\t }\n\t }, {\n\t key: 'setPlayingVideo',\n\t value: function setPlayingVideo(video) {\n\t this.playingVideo = video;\n\t this.render();\n\t }\n\t }, {\n\t key: 'playHamletWin',\n\t value: function playHamletWin() {\n\t var _this13 = this;\n\t\n\t var video = new _video2.default({ filePath: this.getVideoPath({ type: 'win', kingItem: this.kingItem }) });\n\t video.load().then(function () {\n\t _this13.playingVideo.pause();\n\t _this13.setPlayingVideo(video);\n\t video.play();\n\t setTimeout(function () {\n\t _this13.onPlayHamletWinFinish();\n\t }, 7000);\n\t });\n\t }\n\t }, {\n\t key: 'startAction',\n\t value: function startAction() {\n\t var _this14 = this;\n\t\n\t var filePath = this.getVideoPath({\n\t type: 'action',\n\t kingItem: this.kingItem,\n\t hamletItem: this.hamletItem\n\t });\n\t\n\t this.timerFinished = true;\n\t this.mainActionStarted = true;\n\t this.removeIsVisible(this.dom.selectionSceneEl).then(function () {\n\t var isVideoAlreadyLoaded = _this14.loadedVideos[filePath];\n\t\n\t if (!isVideoAlreadyLoaded) {\n\t _this14.showLoader();\n\t }\n\t\n\t var video = new _video2.default({ filePath: filePath });\n\t\n\t video.load().then(function () {\n\t _this14.loadedVideos[filePath] = true;\n\t var afterVideoLoaded = function afterVideoLoaded() {\n\t _this14.playingVideo.pause();\n\t _this14.setPlayingVideo(video);\n\t video.play().then(function () {\n\t _this14.onHamletLoseFinish();\n\t });\n\t };\n\t\n\t if (isVideoAlreadyLoaded) {\n\t afterVideoLoaded();\n\t } else {\n\t _this14.hideLoader().then(function () {\n\t afterVideoLoaded();\n\t });\n\t }\n\t });\n\t });\n\t }\n\t }, {\n\t key: 'onPlayHamletWinFinish',\n\t value: function onPlayHamletWinFinish() {\n\t var _this15 = this;\n\t\n\t var _dom7 = this.dom,\n\t canvasEl = _dom7.canvasEl,\n\t endSceneEl = _dom7.endSceneEl,\n\t endSceneTextEl = _dom7.endSceneTextEl;\n\t\n\t\n\t var finalText = this.generateFinalTextWin();\n\t endSceneTextEl.innerText = finalText;\n\t\n\t this.removeIsVisible(this.playingVideo.el).then(function () {\n\t _this15.addIsVisible(endSceneEl);\n\t _this15.resetToStartScene();\n\t });\n\t }\n\t }, {\n\t key: 'onHamletLoseFinish',\n\t value: function onHamletLoseFinish() {\n\t var _this16 = this;\n\t\n\t var _dom8 = this.dom,\n\t canvasEl = _dom8.canvasEl,\n\t endSceneEl = _dom8.endSceneEl,\n\t endSceneTextEl = _dom8.endSceneTextEl;\n\t\n\t this.playFinalSceneAudio();\n\t\n\t var finalText = this.generateFinalTextLose();\n\t endSceneTextEl.innerText = finalText;\n\t\n\t this.removeIsVisible(this.playingVideo.el).then(function () {\n\t _this16.addIsVisible(endSceneEl);\n\t _this16.resetToStartScene();\n\t });\n\t }\n\t }, {\n\t key: 'resetToStartScene',\n\t value: function resetToStartScene() {\n\t this.wasGameStarted = false;\n\t this.hamletItem = null;\n\t this.timerFinished = false;\n\t this.mainActionStarted = false;\n\t }\n\t }, {\n\t key: 'playMenuSceneAudio',\n\t value: function playMenuSceneAudio() {\n\t if (!this.menuSceneAudio) {\n\t this.menuSceneAudio = new Audio('assets/music/main_menu_song.mp3');\n\t this.menuSceneAudio.loop = true;\n\t }\n\t this.menuSceneAudio.play();\n\t }\n\t }, {\n\t key: 'playFinalSceneAudio',\n\t value: function playFinalSceneAudio() {\n\t if (!this.finalSceneAudio) {\n\t this.finalSceneAudio = new Audio('assets/music/final_song.mp3');\n\t this.finalSceneAudio.loop = false;\n\t }\n\t this.finalSceneAudio.play();\n\t }\n\t }, {\n\t key: 'generateFinalTextLose',\n\t value: function generateFinalTextLose() {\n\t var hamletItem = this.hamletItem;\n\t var kingItem = this.kingItem;\n\t var key = void 0;\n\t if (hamletItem) {\n\t key = kingItem + '_' + hamletItem;\n\t } else {\n\t key = kingItem;\n\t }\n\t return _texts2.default[key];\n\t }\n\t }, {\n\t key: 'generateFinalTextWin',\n\t value: function generateFinalTextWin() {\n\t return _texts2.default[this.kingItem];\n\t }\n\t }]);\n\t\n\t return App;\n\t}();\n\t\n\twindow.App = App;\n\n/***/ },\n/* 10 */\n/***/ function(module, exports) {\n\n\t'use strict';\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\tvar texts = {\n\t 'los_fen': 'Движением частиц материи убитый, упал он наземь, материей прикрытый',\n\t 'los_ban': 'Стемнело вдруг в глазах, банан не смог помочь',\n\t 'los_tuf': 'Как трудно устоять на замшевой коже планеты',\n\t 'los_van': 'Весь воздух удален и нечем тут дышать',\n\t 'los_yad': 'Один глоток казался несмертельным',\n\t\n\t 'snk_fen': 'Ты всё продул и всё начнёшь сначала, не пожалев того, что приобрел',\n\t 'snk_ban': 'С бананом в бой вступив, змеёю нахлебавши',\n\t 'snk_tuf': 'Рука тверда, дух чёрен, крепок яд',\n\t 'snk_van': 'Всё очевидно: отравлен поцелуй',\n\t 'snk_yad': 'Мгновение победы, но смерть была быстрей',\n\t\n\t 'pis_fen': 'Задуть до смерти не успел, погубила дура',\n\t 'pis_ban': 'О, Боги, голод убивает нас!',\n\t 'pis_tuf': 'Обычай соблюдал, но оступился малость',\n\t 'pis_van': 'Присосал блаженно, но чихнул смертельно',\n\t 'pis_yad': 'Смерть принял из-за жалости своей',\n\t\n\t 'los': 'Йорик, жизнь моя скучна',\n\t 'snk': 'Йорик, жизнь моя скучна',\n\t 'pis': 'Йорик, жизнь моя скучна'\n\t};\n\t\n\texports.default = texts;\n\n/***/ },\n/* 11 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\texports.isWeightInInterval = exports.off = exports.once = exports.on = exports.convertRange = undefined;\n\t\n\tvar _bean = __webpack_require__(5);\n\t\n\tvar _bean2 = _interopRequireDefault(_bean);\n\t\n\tvar _constants = __webpack_require__(4);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\t\n\tvar convertRange = function convertRange(oldValue, oldMin, oldMax, newMin, newMax, isRoundByInterval) {\n\t if (isRoundByInterval) {\n\t oldValue = Math.max(oldValue, oldMin);\n\t oldValue = Math.min(oldValue, oldMax);\n\t }\n\t var oldRange = oldMax - oldMin;\n\t var newValue = void 0;\n\t var newRange = void 0;\n\t if (oldRange == 0) newValue = newMin;else {\n\t newRange = newMax - newMin;\n\t newValue = (oldValue - oldMin) * newRange / oldRange + newMin;\n\t }\n\t return newValue;\n\t};\n\t\n\tvar on = function on(el, eventName, callback) {\n\t _bean2.default.on(el, eventName, callback);\n\t};\n\t\n\tvar once = function once(el, eventName, callback) {\n\t _bean2.default.one(el, eventName, callback);\n\t};\n\t\n\tvar off = function off(el, eventName, callback) {\n\t _bean2.default.off(el, eventName, callback);\n\t};\n\t\n\tvar isWeightInInterval = function isWeightInInterval(value, weight) {\n\t if (value >= weight - _constants.ITEM_WEIGHT_DELTA && value <= weight + _constants.ITEM_WEIGHT_DELTA) {\n\t return true;\n\t } else {\n\t return false;\n\t }\n\t};\n\t\n\texports.convertRange = convertRange;\n\texports.on = on;\n\texports.once = once;\n\texports.off = off;\n\texports.isWeightInInterval = isWeightInInterval;\n\n/***/ },\n/* 12 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\t\n\tvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\t\n\tvar _assetsLoader = __webpack_require__(2);\n\t\n\tvar _assetsLoader2 = _interopRequireDefault(_assetsLoader);\n\t\n\tvar _utils = __webpack_require__(11);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\t\n\tfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\t\n\tvar isIOS = function isIOS() {\n\t\n\t var iDevices = ['iPad Simulator', 'iPhone Simulator', 'iPod Simulator', 'iPad', 'iPhone', 'iPod'];\n\t\n\t if (!!navigator.platform) {\n\t while (iDevices.length) {\n\t if (navigator.platform === iDevices.pop()) {\n\t return true;\n\t }\n\t }\n\t }\n\t\n\t return false;\n\t};\n\t\n\tvar blobs = {};\n\t\n\tvar Video = function () {\n\t function Video(_ref) {\n\t var _this = this;\n\t\n\t var filePath = _ref.filePath;\n\t\n\t _classCallCheck(this, Video);\n\t\n\t this.onPlayWithLoopEnded = function (event) {\n\t if (!_this.paused) {\n\t _this.playWithLoop();\n\t }\n\t };\n\t\n\t this.filePath = filePath;\n\t // this.el = this.createVideoEl();\n\t this.paused = true;\n\t this.loadPromise = null;\n\t }\n\t\n\t _createClass(Video, [{\n\t key: 'createVideoEl',\n\t value: function createVideoEl() {\n\t var videoEl = document.createElement('video');\n\t videoEl.setAttribute('playsinline', '');\n\t videoEl.setAttribute('webkit-playsinline', ''); // Support inline videos for iOS webviews.\n\t videoEl.controls = false;\n\t if (isIOS()) {\n\t videoEl.muted = true;\n\t }\n\t return videoEl;\n\t }\n\t }, {\n\t key: 'load',\n\t value: function load() {\n\t var _this2 = this;\n\t\n\t if (this.loadPromise) {\n\t return this.loadPromise;\n\t }\n\t this.loadPromise = new Promise(function (resolve, reject) {\n\t var el = _this2.el,\n\t filePath = _this2.filePath;\n\t\n\t\n\t if (blobs[filePath]) {\n\t _this2.onLoadComplete();\n\t resolve();\n\t return;\n\t }\n\t\n\t var loader = (0, _assetsLoader2.default)({\n\t assets: [{\n\t id: 'video_' + filePath,\n\t blob: true,\n\t url: filePath\n\t }]\n\t }).on('error', function (error) {\n\t console.error(error);\n\t reject(error);\n\t }).on('progress', function (progress) {}).on('complete', function (assets) {\n\t blobs[filePath] = loader.get('video_' + filePath);\n\t _this2.onLoadComplete();\n\t resolve();\n\t }).start();\n\t });\n\t return this.loadPromise;\n\t }\n\t }, {\n\t key: 'onLoadComplete',\n\t value: function onLoadComplete() {\n\t var filePath = this.filePath;\n\t\n\t var blob = blobs[filePath];\n\t var el = this.createVideoEl();\n\t el.src = window.URL.createObjectURL(blob);\n\t el.style.display = 'none';\n\t el.className = 'App-videoCanvas';\n\t this.el = el;\n\t\n\t document.body.querySelector('.App-container').appendChild(el);\n\t }\n\t }, {\n\t key: 'play',\n\t value: function play() {\n\t var _this3 = this;\n\t\n\t this.paused = false;\n\t return new Promise(function (resolve, reject) {\n\t (0, _utils.once)(_this3.el, 'ended', function () {\n\t _this3.paused = true;\n\t resolve();\n\t });\n\t\n\t _this3.el.play();\n\t });\n\t }\n\t }, {\n\t key: 'pause',\n\t value: function pause() {\n\t this.paused = true;\n\t this.el.pause();\n\t (0, _utils.off)(this.el, 'ended', this.onPlayWithLoopEnded);\n\t }\n\t }, {\n\t key: 'playWithLoop',\n\t value: function playWithLoop(data) {\n\t var _this4 = this;\n\t\n\t var _ref2 = data || {},\n\t loopEndDuration = _ref2.loopEndDuration;\n\t\n\t (0, _utils.once)(this.el, 'ended', this.onPlayWithLoopEnded);\n\t if (loopEndDuration) {\n\t var timeupdate = function timeupdate() {\n\t var currTime = _this4.el.currentTime;\n\t var fullTime = _this4.el.duration;\n\t var currPercent = currTime * 100 / fullTime;\n\t if (currPercent >= loopEndDuration) {\n\t (0, _utils.off)(_this4.el, 'timeupdate', timeupdate);\n\t (0, _utils.off)(_this4.el, 'ended', _this4.onPlayWithLoopEnded);\n\t _this4.el.pause();\n\t _this4.el.currentTime = 0;\n\t setTimeout(function () {\n\t if (!_this4.paused) {\n\t _this4.playWithLoop(data);\n\t }\n\t });\n\t }\n\t };\n\t (0, _utils.on)(this.el, 'timeupdate', timeupdate);\n\t }\n\t this.paused = false;\n\t this.el.play();\n\t }\n\t }, {\n\t key: 'getCurrentTime',\n\t value: function getCurrentTime() {\n\t return this.el.currentTime;\n\t }\n\t }, {\n\t key: 'getDuration',\n\t value: function getDuration() {\n\t return this.el.duration;\n\t }\n\t }, {\n\t key: 'getEl',\n\t value: function getEl() {\n\t return this.el;\n\t }\n\t }]);\n\t\n\t return Video;\n\t}();\n\t\n\texports.default = Video;\n\n/***/ },\n/* 13 */\n/***/ function(module, exports, __webpack_require__) {\n\n\texports = module.exports = __webpack_require__(14)();\n\t// imports\n\t\n\t\n\t// module\n\texports.push([module.id, \"body{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.App,.App-container{height:100%}.App-loader{z-index:999;position:absolute;left:50%;transform:translate(-50%)}.App .is-visible_yes{opacity:1;visibility:visible}.App .is-visible_no{opacity:0;visibility:hidden}.App-videoCanvas{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);z-index:10}.App .App-endScene,.App .App-selectionScene,.App .App-startScene{position:absolute;left:0;top:0;right:0;bottom:0;z-index:20;transition:opacity .5s}.App .App-startScene{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;-ms-flex-pack:center;justify-content:center;-ms-flex-align:center;align-items:center}.App .App-startScene .App-logo{width:90%;max-width:640px;height:50%;background:url(\\\"assets/i/start.jpg\\\") no-repeat 50%;background-size:contain;margin:0 auto}.App .App-startScene .App-startButton{display:inline-block;text-align:center;font-size:30px;background-color:#4b4b4b;color:#fff;border:0;padding:10px 20px;border-radius:10px;max-width:150px;cursor:pointer;transition:opacity .25s;outline:none;position:relative;text-transform:uppercase;letter-spacing:3px}.App .App-startScene .App-startButton:active,.App .App-startScene .App-startButton:hover{opacity:.8}.App .App-startScene .App-startButton:active{top:1px}.App-timer{z-index:30;font-size:60px;text-align:center;color:#fff;top:50px}.App-selectionItems,.App-timer{position:absolute;left:0;right:0}.App-selectionItems{bottom:30px;z-index:40;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center}.App-selectionItem{width:200px;max-width:200px;height:200px;margin:0 20px;padding:20px;border-radius:4px;background:no-repeat 50%;background-size:contain;transition:transform .35s;cursor:pointer;transform:translate(0)}.App-selectionItem:active,.App-selectionItem:hover{transform:translateY(-25px)}.App-selectionItem:active{top:1px}.App-selectionItem.is-ban{background-image:url(\\\"assets/i/item_ban.png\\\")}.App-selectionItem.is-fen{background-image:url(\\\"assets/i/item_fen.png\\\")}.App-selectionItem.is-tuf{background-image:url(\\\"assets/i/item_tuf.png\\\")}.App-selectionItem.is-van{background-image:url(\\\"assets/i/item_van.png\\\")}.App-selectionItem.is-yad{background-image:url(\\\"assets/i/item_yad.png\\\")}.App-endScene{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;-ms-flex-pack:center;justify-content:center;-ms-flex-align:center;align-items:center}.App-endScene .App-logo{width:100%;max-width:640px;height:130px;background:url(\\\"assets/i/final.jpg\\\") no-repeat 50%;background-size:contain;margin:0 auto 50px}.App-endScene .App-playAgainButton{display:inline-block;text-align:center;white-space:nowrap;font-size:34px;background-color:#4b4b4b;color:#fff;border:0;padding:10px 20px;border-radius:10px;cursor:pointer;transition:opacity .25s;outline:none;position:relative;text-transform:uppercase;letter-spacing:3px}.App-endScene .App-playAgainButton:active,.App-endScene .App-playAgainButton:hover{opacity:.8}.App-endScene .App-playAgainButton:active{top:1px}.App-endScene .App-endText{color:#fff;text-align:center;font-size:24px;font-style:italic;max-width:700px;margin-left:auto;margin-right:auto;margin-bottom:200px}\", \"\"]);\n\t\n\t// exports\n\n\n/***/ },\n/* 14 */\n/***/ function(module, exports) {\n\n\t/*\r\n\t\tMIT License http://www.opensource.org/licenses/mit-license.php\r\n\t\tAuthor Tobias Koppers @sokra\r\n\t*/\r\n\t// css base code, injected by the css-loader\r\n\tmodule.exports = function() {\r\n\t\tvar list = [];\r\n\t\r\n\t\t// return the list of modules as css string\r\n\t\tlist.toString = function toString() {\r\n\t\t\tvar result = [];\r\n\t\t\tfor(var i = 0; i < this.length; i++) {\r\n\t\t\t\tvar item = this[i];\r\n\t\t\t\tif(item[2]) {\r\n\t\t\t\t\tresult.push(\"@media \" + item[2] + \"{\" + item[1] + \"}\");\r\n\t\t\t\t} else {\r\n\t\t\t\t\tresult.push(item[1]);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\treturn result.join(\"\");\r\n\t\t};\r\n\t\r\n\t\t// import a list of modules into the list\r\n\t\tlist.i = function(modules, mediaQuery) {\r\n\t\t\tif(typeof modules === \"string\")\r\n\t\t\t\tmodules = [[null, modules, \"\"]];\r\n\t\t\tvar alreadyImportedModules = {};\r\n\t\t\tfor(var i = 0; i < this.length; i++) {\r\n\t\t\t\tvar id = this[i][0];\r\n\t\t\t\tif(typeof id === \"number\")\r\n\t\t\t\t\talreadyImportedModules[id] = true;\r\n\t\t\t}\r\n\t\t\tfor(i = 0; i < modules.length; i++) {\r\n\t\t\t\tvar item = modules[i];\r\n\t\t\t\t// skip already imported module\r\n\t\t\t\t// this implementation is not 100% perfect for weird media query combinations\r\n\t\t\t\t// when a module is imported multiple times with different media queries.\r\n\t\t\t\t// I hope this will never occur (Hey this way we have smaller bundles)\r\n\t\t\t\tif(typeof item[0] !== \"number\" || !alreadyImportedModules[item[0]]) {\r\n\t\t\t\t\tif(mediaQuery && !item[2]) {\r\n\t\t\t\t\t\titem[2] = mediaQuery;\r\n\t\t\t\t\t} else if(mediaQuery) {\r\n\t\t\t\t\t\titem[2] = \"(\" + item[2] + \") and (\" + mediaQuery + \")\";\r\n\t\t\t\t\t}\r\n\t\t\t\t\tlist.push(item);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t};\r\n\t\treturn list;\r\n\t};\r\n\n\n/***/ },\n/* 15 */\n/***/ function(module, exports) {\n\n\t// Copyright Joyent, Inc. and other Node contributors.\n\t//\n\t// Permission is hereby granted, free of charge, to any person obtaining a\n\t// copy of this software and associated documentation files (the\n\t// \"Software\"), to deal in the Software without restriction, including\n\t// without limitation the rights to use, copy, modify, merge, publish,\n\t// distribute, sublicense, and/or sell copies of the Software, and to permit\n\t// persons to whom the Software is furnished to do so, subject to the\n\t// following conditions:\n\t//\n\t// The above copyright notice and this permission notice shall be included\n\t// in all copies or substantial portions of the Software.\n\t//\n\t// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n\t// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n\t// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n\t// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n\t// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n\t// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n\t// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\t\n\tfunction EventEmitter() {\n\t this._events = this._events || {};\n\t this._maxListeners = this._maxListeners || undefined;\n\t}\n\tmodule.exports = EventEmitter;\n\t\n\t// Backwards-compat with node 0.10.x\n\tEventEmitter.EventEmitter = EventEmitter;\n\t\n\tEventEmitter.prototype._events = undefined;\n\tEventEmitter.prototype._maxListeners = undefined;\n\t\n\t// By default EventEmitters will print a warning if more than 10 listeners are\n\t// added to it. This is a useful default which helps finding memory leaks.\n\tEventEmitter.defaultMaxListeners = 10;\n\t\n\t// Obviously not all Emitters should be limited to 10. This function allows\n\t// that to be increased. Set to zero for unlimited.\n\tEventEmitter.prototype.setMaxListeners = function(n) {\n\t if (!isNumber(n) || n < 0 || isNaN(n))\n\t throw TypeError('n must be a positive number');\n\t this._maxListeners = n;\n\t return this;\n\t};\n\t\n\tEventEmitter.prototype.emit = function(type) {\n\t var er, handler, len, args, i, listeners;\n\t\n\t if (!this._events)\n\t this._events = {};\n\t\n\t // If there is no 'error' event listener then throw.\n\t if (type === 'error') {\n\t if (!this._events.error ||\n\t (isObject(this._events.error) && !this._events.error.length)) {\n\t er = arguments[1];\n\t if (er instanceof Error) {\n\t throw er; // Unhandled 'error' event\n\t } else {\n\t // At least give some kind of context to the user\n\t var err = new Error('Uncaught, unspecified \"error\" event. (' + er + ')');\n\t err.context = er;\n\t throw err;\n\t }\n\t }\n\t }\n\t\n\t handler = this._events[type];\n\t\n\t if (isUndefined(handler))\n\t return false;\n\t\n\t if (isFunction(handler)) {\n\t switch (arguments.length) {\n\t // fast cases\n\t case 1:\n\t handler.call(this);\n\t break;\n\t case 2:\n\t handler.call(this, arguments[1]);\n\t break;\n\t case 3:\n\t handler.call(this, arguments[1], arguments[2]);\n\t break;\n\t // slower\n\t default:\n\t args = Array.prototype.slice.call(arguments, 1);\n\t handler.apply(this, args);\n\t }\n\t } else if (isObject(handler)) {\n\t args = Array.prototype.slice.call(arguments, 1);\n\t listeners = handler.slice();\n\t len = listeners.length;\n\t for (i = 0; i < len; i++)\n\t listeners[i].apply(this, args);\n\t }\n\t\n\t return true;\n\t};\n\t\n\tEventEmitter.prototype.addListener = function(type, listener) {\n\t var m;\n\t\n\t if (!isFunction(listener))\n\t throw TypeError('listener must be a function');\n\t\n\t if (!this._events)\n\t this._events = {};\n\t\n\t // To avoid recursion in the case that type === \"newListener\"! Before\n\t // adding it to the listeners, first emit \"newListener\".\n\t if (this._events.newListener)\n\t this.emit('newListener', type,\n\t isFunction(listener.listener) ?\n\t listener.listener : listener);\n\t\n\t if (!this._events[type])\n\t // Optimize the case of one listener. Don't need the extra array object.\n\t this._events[type] = listener;\n\t else if (isObject(this._events[type]))\n\t // If we've already got an array, just append.\n\t this._events[type].push(listener);\n\t else\n\t // Adding the second element, need to change to array.\n\t this._events[type] = [this._events[type], listener];\n\t\n\t // Check for listener leak\n\t if (isObject(this._events[type]) && !this._events[type].warned) {\n\t if (!isUndefined(this._maxListeners)) {\n\t m = this._maxListeners;\n\t } else {\n\t m = EventEmitter.defaultMaxListeners;\n\t }\n\t\n\t if (m && m > 0 && this._events[type].length > m) {\n\t this._events[type].warned = true;\n\t console.error('(node) warning: possible EventEmitter memory ' +\n\t 'leak detected. %d listeners added. ' +\n\t 'Use emitter.setMaxListeners() to increase limit.',\n\t this._events[type].length);\n\t if (typeof console.trace === 'function') {\n\t // not supported in IE 10\n\t console.trace();\n\t }\n\t }\n\t }\n\t\n\t return this;\n\t};\n\t\n\tEventEmitter.prototype.on = EventEmitter.prototype.addListener;\n\t\n\tEventEmitter.prototype.once = function(type, listener) {\n\t if (!isFunction(listener))\n\t throw TypeError('listener must be a function');\n\t\n\t var fired = false;\n\t\n\t function g() {\n\t this.removeListener(type, g);\n\t\n\t if (!fired) {\n\t fired = true;\n\t listener.apply(this, arguments);\n\t }\n\t }\n\t\n\t g.listener = listener;\n\t this.on(type, g);\n\t\n\t return this;\n\t};\n\t\n\t// emits a 'removeListener' event iff the listener was removed\n\tEventEmitter.prototype.removeListener = function(type, listener) {\n\t var list, position, length, i;\n\t\n\t if (!isFunction(listener))\n\t throw TypeError('listener must be a function');\n\t\n\t if (!this._events || !this._events[type])\n\t return this;\n\t\n\t list = this._events[type];\n\t length = list.length;\n\t position = -1;\n\t\n\t if (list === listener ||\n\t (isFunction(list.listener) && list.listener === listener)) {\n\t delete this._events[type];\n\t if (this._events.removeListener)\n\t this.emit('removeListener', type, listener);\n\t\n\t } else if (isObject(list)) {\n\t for (i = length; i-- > 0;) {\n\t if (list[i] === listener ||\n\t (list[i].listener && list[i].listener === listener)) {\n\t position = i;\n\t break;\n\t }\n\t }\n\t\n\t if (position < 0)\n\t return this;\n\t\n\t if (list.length === 1) {\n\t list.length = 0;\n\t delete this._events[type];\n\t } else {\n\t list.splice(position, 1);\n\t }\n\t\n\t if (this._events.removeListener)\n\t this.emit('removeListener', type, listener);\n\t }\n\t\n\t return this;\n\t};\n\t\n\tEventEmitter.prototype.removeAllListeners = function(type) {\n\t var key, listeners;\n\t\n\t if (!this._events)\n\t return this;\n\t\n\t // not listening for removeListener, no need to emit\n\t if (!this._events.removeListener) {\n\t if (arguments.length === 0)\n\t this._events = {};\n\t else if (this._events[type])\n\t delete this._events[type];\n\t return this;\n\t }\n\t\n\t // emit removeListener for all listeners on all events\n\t if (arguments.length === 0) {\n\t for (key in this._events) {\n\t if (key === 'removeListener') continue;\n\t this.removeAllListeners(key);\n\t }\n\t this.removeAllListeners('removeListener');\n\t this._events = {};\n\t return this;\n\t }\n\t\n\t listeners = this._events[type];\n\t\n\t if (isFunction(listeners)) {\n\t this.removeListener(type, listeners);\n\t } else if (listeners) {\n\t // LIFO order\n\t while (listeners.length)\n\t this.removeListener(type, listeners[listeners.length - 1]);\n\t }\n\t delete this._events[type];\n\t\n\t return this;\n\t};\n\t\n\tEventEmitter.prototype.listeners = function(type) {\n\t var ret;\n\t if (!this._events || !this._events[type])\n\t ret = [];\n\t else if (isFunction(this._events[type]))\n\t ret = [this._events[type]];\n\t else\n\t ret = this._events[type].slice();\n\t return ret;\n\t};\n\t\n\tEventEmitter.prototype.listenerCount = function(type) {\n\t if (this._events) {\n\t var evlistener = this._events[type];\n\t\n\t if (isFunction(evlistener))\n\t return 1;\n\t else if (evlistener)\n\t return evlistener.length;\n\t }\n\t return 0;\n\t};\n\t\n\tEventEmitter.listenerCount = function(emitter, type) {\n\t return emitter.listenerCount(type);\n\t};\n\t\n\tfunction isFunction(arg) {\n\t return typeof arg === 'function';\n\t}\n\t\n\tfunction isNumber(arg) {\n\t return typeof arg === 'number';\n\t}\n\t\n\tfunction isObject(arg) {\n\t return typeof arg === 'object' && arg !== null;\n\t}\n\t\n\tfunction isUndefined(arg) {\n\t return arg === void 0;\n\t}\n\n\n/***/ },\n/* 16 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tvar __WEBPACK_AMD_DEFINE_RESULT__;/*jshint eqnull:true*/\n\t(function (root) {\n\t \"use strict\";\n\t\n\t var GLOBAL_KEY = \"Random\";\n\t\n\t var imul = (typeof Math.imul !== \"function\" || Math.imul(0xffffffff, 5) !== -5 ?\n\t function (a, b) {\n\t var ah = (a >>> 16) & 0xffff;\n\t var al = a & 0xffff;\n\t var bh = (b >>> 16) & 0xffff;\n\t var bl = b & 0xffff;\n\t // the shift by 0 fixes the sign on the high part\n\t // the final |0 converts the unsigned value into a signed value\n\t return (al * bl) + (((ah * bl + al * bh) << 16) >>> 0) | 0;\n\t } :\n\t Math.imul);\n\t\n\t var stringRepeat = (typeof String.prototype.repeat === \"function\" && \"x\".repeat(3) === \"xxx\" ?\n\t function (x, y) {\n\t return x.repeat(y);\n\t } : function (pattern, count) {\n\t var result = \"\";\n\t while (count > 0) {\n\t if (count & 1) {\n\t result += pattern;\n\t }\n\t count >>= 1;\n\t pattern += pattern;\n\t }\n\t return result;\n\t });\n\t\n\t function Random(engine) {\n\t if (!(this instanceof Random)) {\n\t return new Random(engine);\n\t }\n\t\n\t if (engine == null) {\n\t engine = Random.engines.nativeMath;\n\t } else if (typeof engine !== \"function\") {\n\t throw new TypeError(\"Expected engine to be a function, got \" + typeof engine);\n\t }\n\t this.engine = engine;\n\t }\n\t var proto = Random.prototype;\n\t\n\t Random.engines = {\n\t nativeMath: function () {\n\t return (Math.random() * 0x100000000) | 0;\n\t },\n\t mt19937: (function (Int32Array) {\n\t // http://en.wikipedia.org/wiki/Mersenne_twister\n\t function refreshData(data) {\n\t var k = 0;\n\t var tmp = 0;\n\t for (;\n\t (k | 0) < 227; k = (k + 1) | 0) {\n\t tmp = (data[k] & 0x80000000) | (data[(k + 1) | 0] & 0x7fffffff);\n\t data[k] = data[(k + 397) | 0] ^ (tmp >>> 1) ^ ((tmp & 0x1) ? 0x9908b0df : 0);\n\t }\n\t\n\t for (;\n\t (k | 0) < 623; k = (k + 1) | 0) {\n\t tmp = (data[k] & 0x80000000) | (data[(k + 1) | 0] & 0x7fffffff);\n\t data[k] = data[(k - 227) | 0] ^ (tmp >>> 1) ^ ((tmp & 0x1) ? 0x9908b0df : 0);\n\t }\n\t\n\t tmp = (data[623] & 0x80000000) | (data[0] & 0x7fffffff);\n\t data[623] = data[396] ^ (tmp >>> 1) ^ ((tmp & 0x1) ? 0x9908b0df : 0);\n\t }\n\t\n\t function temper(value) {\n\t value ^= value >>> 11;\n\t value ^= (value << 7) & 0x9d2c5680;\n\t value ^= (value << 15) & 0xefc60000;\n\t return value ^ (value >>> 18);\n\t }\n\t\n\t function seedWithArray(data, source) {\n\t var i = 1;\n\t var j = 0;\n\t var sourceLength = source.length;\n\t var k = Math.max(sourceLength, 624) | 0;\n\t var previous = data[0] | 0;\n\t for (;\n\t (k | 0) > 0; --k) {\n\t data[i] = previous = ((data[i] ^ imul((previous ^ (previous >>> 30)), 0x0019660d)) + (source[j] | 0) + (j | 0)) | 0;\n\t i = (i + 1) | 0;\n\t ++j;\n\t if ((i | 0) > 623) {\n\t data[0] = data[623];\n\t i = 1;\n\t }\n\t if (j >= sourceLength) {\n\t j = 0;\n\t }\n\t }\n\t for (k = 623;\n\t (k | 0) > 0; --k) {\n\t data[i] = previous = ((data[i] ^ imul((previous ^ (previous >>> 30)), 0x5d588b65)) - i) | 0;\n\t i = (i + 1) | 0;\n\t if ((i | 0) > 623) {\n\t data[0] = data[623];\n\t i = 1;\n\t }\n\t }\n\t data[0] = 0x80000000;\n\t }\n\t\n\t function mt19937() {\n\t var data = new Int32Array(624);\n\t var index = 0;\n\t var uses = 0;\n\t\n\t function next() {\n\t if ((index | 0) >= 624) {\n\t refreshData(data);\n\t index = 0;\n\t }\n\t\n\t var value = data[index];\n\t index = (index + 1) | 0;\n\t uses += 1;\n\t return temper(value) | 0;\n\t }\n\t next.getUseCount = function() {\n\t return uses;\n\t };\n\t next.discard = function (count) {\n\t uses += count;\n\t if ((index | 0) >= 624) {\n\t refreshData(data);\n\t index = 0;\n\t }\n\t while ((count - index) > 624) {\n\t count -= 624 - index;\n\t refreshData(data);\n\t index = 0;\n\t }\n\t index = (index + count) | 0;\n\t return next;\n\t };\n\t next.seed = function (initial) {\n\t var previous = 0;\n\t data[0] = previous = initial | 0;\n\t\n\t for (var i = 1; i < 624; i = (i + 1) | 0) {\n\t data[i] = previous = (imul((previous ^ (previous >>> 30)), 0x6c078965) + i) | 0;\n\t }\n\t index = 624;\n\t uses = 0;\n\t return next;\n\t };\n\t next.seedWithArray = function (source) {\n\t next.seed(0x012bd6aa);\n\t seedWithArray(data, source);\n\t return next;\n\t };\n\t next.autoSeed = function () {\n\t return next.seedWithArray(Random.generateEntropyArray());\n\t };\n\t return next;\n\t }\n\t\n\t return mt19937;\n\t }(typeof Int32Array === \"function\" ? Int32Array : Array)),\n\t browserCrypto: (typeof crypto !== \"undefined\" && typeof crypto.getRandomValues === \"function\" && typeof Int32Array === \"function\") ? (function () {\n\t var data = null;\n\t var index = 128;\n\t\n\t return function () {\n\t if (index >= 128) {\n\t if (data === null) {\n\t data = new Int32Array(128);\n\t }\n\t crypto.getRandomValues(data);\n\t index = 0;\n\t }\n\t\n\t return data[index++] | 0;\n\t };\n\t }()) : null\n\t };\n\t\n\t Random.generateEntropyArray = function () {\n\t var array = [];\n\t var engine = Random.engines.nativeMath;\n\t for (var i = 0; i < 16; ++i) {\n\t array[i] = engine() | 0;\n\t }\n\t array.push(new Date().getTime() | 0);\n\t return array;\n\t };\n\t\n\t function returnValue(value) {\n\t return function () {\n\t return value;\n\t };\n\t }\n\t\n\t // [-0x80000000, 0x7fffffff]\n\t Random.int32 = function (engine) {\n\t return engine() | 0;\n\t };\n\t proto.int32 = function () {\n\t return Random.int32(this.engine);\n\t };\n\t\n\t // [0, 0xffffffff]\n\t Random.uint32 = function (engine) {\n\t return engine() >>> 0;\n\t };\n\t proto.uint32 = function () {\n\t return Random.uint32(this.engine);\n\t };\n\t\n\t // [0, 0x1fffffffffffff]\n\t Random.uint53 = function (engine) {\n\t var high = engine() & 0x1fffff;\n\t var low = engine() >>> 0;\n\t return (high * 0x100000000) + low;\n\t };\n\t proto.uint53 = function () {\n\t return Random.uint53(this.engine);\n\t };\n\t\n\t // [0, 0x20000000000000]\n\t Random.uint53Full = function (engine) {\n\t while (true) {\n\t var high = engine() | 0;\n\t if (high & 0x200000) {\n\t if ((high & 0x3fffff) === 0x200000 && (engine() | 0) === 0) {\n\t return 0x20000000000000;\n\t }\n\t } else {\n\t var low = engine() >>> 0;\n\t return ((high & 0x1fffff) * 0x100000000) + low;\n\t }\n\t }\n\t };\n\t proto.uint53Full = function () {\n\t return Random.uint53Full(this.engine);\n\t };\n\t\n\t // [-0x20000000000000, 0x1fffffffffffff]\n\t Random.int53 = function (engine) {\n\t var high = engine() | 0;\n\t var low = engine() >>> 0;\n\t return ((high & 0x1fffff) * 0x100000000) + low + (high & 0x200000 ? -0x20000000000000 : 0);\n\t };\n\t proto.int53 = function () {\n\t return Random.int53(this.engine);\n\t };\n\t\n\t // [-0x20000000000000, 0x20000000000000]\n\t Random.int53Full = function (engine) {\n\t while (true) {\n\t var high = engine() | 0;\n\t if (high & 0x400000) {\n\t if ((high & 0x7fffff) === 0x400000 && (engine() | 0) === 0) {\n\t return 0x20000000000000;\n\t }\n\t } else {\n\t var low = engine() >>> 0;\n\t return ((high & 0x1fffff) * 0x100000000) + low + (high & 0x200000 ? -0x20000000000000 : 0);\n\t }\n\t }\n\t };\n\t proto.int53Full = function () {\n\t return Random.int53Full(this.engine);\n\t };\n\t\n\t function add(generate, addend) {\n\t if (addend === 0) {\n\t return generate;\n\t } else {\n\t return function (engine) {\n\t return generate(engine) + addend;\n\t };\n\t }\n\t }\n\t\n\t Random.integer = (function () {\n\t function isPowerOfTwoMinusOne(value) {\n\t return ((value + 1) & value) === 0;\n\t }\n\t\n\t function bitmask(masking) {\n\t return function (engine) {\n\t return engine() & masking;\n\t };\n\t }\n\t\n\t function downscaleToLoopCheckedRange(range) {\n\t var extendedRange = range + 1;\n\t var maximum = extendedRange * Math.floor(0x100000000 / extendedRange);\n\t return function (engine) {\n\t var value = 0;\n\t do {\n\t value = engine() >>> 0;\n\t } while (value >= maximum);\n\t return value % extendedRange;\n\t };\n\t }\n\t\n\t function downscaleToRange(range) {\n\t if (isPowerOfTwoMinusOne(range)) {\n\t return bitmask(range);\n\t } else {\n\t return downscaleToLoopCheckedRange(range);\n\t }\n\t }\n\t\n\t function isEvenlyDivisibleByMaxInt32(value) {\n\t return (value | 0) === 0;\n\t }\n\t\n\t function upscaleWithHighMasking(masking) {\n\t return function (engine) {\n\t var high = engine() & masking;\n\t var low = engine() >>> 0;\n\t return (high * 0x100000000) + low;\n\t };\n\t }\n\t\n\t function upscaleToLoopCheckedRange(extendedRange) {\n\t var maximum = extendedRange * Math.floor(0x20000000000000 / extendedRange);\n\t return function (engine) {\n\t var ret = 0;\n\t do {\n\t var high = engine() & 0x1fffff;\n\t var low = engine() >>> 0;\n\t ret = (high * 0x100000000) + low;\n\t } while (ret >= maximum);\n\t return ret % extendedRange;\n\t };\n\t }\n\t\n\t function upscaleWithinU53(range) {\n\t var extendedRange = range + 1;\n\t if (isEvenlyDivisibleByMaxInt32(extendedRange)) {\n\t var highRange = ((extendedRange / 0x100000000) | 0) - 1;\n\t if (isPowerOfTwoMinusOne(highRange)) {\n\t return upscaleWithHighMasking(highRange);\n\t }\n\t }\n\t return upscaleToLoopCheckedRange(extendedRange);\n\t }\n\t\n\t function upscaleWithinI53AndLoopCheck(min, max) {\n\t return function (engine) {\n\t var ret = 0;\n\t do {\n\t var high = engine() | 0;\n\t var low = engine() >>> 0;\n\t ret = ((high & 0x1fffff) * 0x100000000) + low + (high & 0x200000 ? -0x20000000000000 : 0);\n\t } while (ret < min || ret > max);\n\t return ret;\n\t };\n\t }\n\t\n\t return function (min, max) {\n\t min = Math.floor(min);\n\t max = Math.floor(max);\n\t if (min < -0x20000000000000 || !isFinite(min)) {\n\t throw new RangeError(\"Expected min to be at least \" + (-0x20000000000000));\n\t } else if (max > 0x20000000000000 || !isFinite(max)) {\n\t throw new RangeError(\"Expected max to be at most \" + 0x20000000000000);\n\t }\n\t\n\t var range = max - min;\n\t if (range <= 0 || !isFinite(range)) {\n\t return returnValue(min);\n\t } else if (range === 0xffffffff) {\n\t if (min === 0) {\n\t return Random.uint32;\n\t } else {\n\t return add(Random.int32, min + 0x80000000);\n\t }\n\t } else if (range < 0xffffffff) {\n\t return add(downscaleToRange(range), min);\n\t } else if (range === 0x1fffffffffffff) {\n\t return add(Random.uint53, min);\n\t } else if (range < 0x1fffffffffffff) {\n\t return add(upscaleWithinU53(range), min);\n\t } else if (max - 1 - min === 0x1fffffffffffff) {\n\t return add(Random.uint53Full, min);\n\t } else if (min === -0x20000000000000 && max === 0x20000000000000) {\n\t return Random.int53Full;\n\t } else if (min === -0x20000000000000 && max === 0x1fffffffffffff) {\n\t return Random.int53;\n\t } else if (min === -0x1fffffffffffff && max === 0x20000000000000) {\n\t return add(Random.int53, 1);\n\t } else if (max === 0x20000000000000) {\n\t return add(upscaleWithinI53AndLoopCheck(min - 1, max - 1), 1);\n\t } else {\n\t return upscaleWithinI53AndLoopCheck(min, max);\n\t }\n\t };\n\t }());\n\t proto.integer = function (min, max) {\n\t return Random.integer(min, max)(this.engine);\n\t };\n\t\n\t // [0, 1] (floating point)\n\t Random.realZeroToOneInclusive = function (engine) {\n\t return Random.uint53Full(engine) / 0x20000000000000;\n\t };\n\t proto.realZeroToOneInclusive = function () {\n\t return Random.realZeroToOneInclusive(this.engine);\n\t };\n\t\n\t // [0, 1) (floating point)\n\t Random.realZeroToOneExclusive = function (engine) {\n\t return Random.uint53(engine) / 0x20000000000000;\n\t };\n\t proto.realZeroToOneExclusive = function () {\n\t return Random.realZeroToOneExclusive(this.engine);\n\t };\n\t\n\t Random.real = (function () {\n\t function multiply(generate, multiplier) {\n\t if (multiplier === 1) {\n\t return generate;\n\t } else if (multiplier === 0) {\n\t return function () {\n\t return 0;\n\t };\n\t } else {\n\t return function (engine) {\n\t return generate(engine) * multiplier;\n\t };\n\t }\n\t }\n\t\n\t return function (left, right, inclusive) {\n\t if (!isFinite(left)) {\n\t throw new RangeError(\"Expected left to be a finite number\");\n\t } else if (!isFinite(right)) {\n\t throw new RangeError(\"Expected right to be a finite number\");\n\t }\n\t return add(\n\t multiply(\n\t inclusive ? Random.realZeroToOneInclusive : Random.realZeroToOneExclusive,\n\t right - left),\n\t left);\n\t };\n\t }());\n\t proto.real = function (min, max, inclusive) {\n\t return Random.real(min, max, inclusive)(this.engine);\n\t };\n\t\n\t Random.bool = (function () {\n\t function isLeastBitTrue(engine) {\n\t return (engine() & 1) === 1;\n\t }\n\t\n\t function lessThan(generate, value) {\n\t return function (engine) {\n\t return generate(engine) < value;\n\t };\n\t }\n\t\n\t function probability(percentage) {\n\t if (percentage <= 0) {\n\t return returnValue(false);\n\t } else if (percentage >= 1) {\n\t return returnValue(true);\n\t } else {\n\t var scaled = percentage * 0x100000000;\n\t if (scaled % 1 === 0) {\n\t return lessThan(Random.int32, (scaled - 0x80000000) | 0);\n\t } else {\n\t return lessThan(Random.uint53, Math.round(percentage * 0x20000000000000));\n\t }\n\t }\n\t }\n\t\n\t return function (numerator, denominator) {\n\t if (denominator == null) {\n\t if (numerator == null) {\n\t return isLeastBitTrue;\n\t }\n\t return probability(numerator);\n\t } else {\n\t if (numerator <= 0) {\n\t return returnValue(false);\n\t } else if (numerator >= denominator) {\n\t return returnValue(true);\n\t }\n\t return lessThan(Random.integer(0, denominator - 1), numerator);\n\t }\n\t };\n\t }());\n\t proto.bool = function (numerator, denominator) {\n\t return Random.bool(numerator, denominator)(this.engine);\n\t };\n\t\n\t function toInteger(value) {\n\t var number = +value;\n\t if (number < 0) {\n\t return Math.ceil(number);\n\t } else {\n\t return Math.floor(number);\n\t }\n\t }\n\t\n\t function convertSliceArgument(value, length) {\n\t if (value < 0) {\n\t return Math.max(value + length, 0);\n\t } else {\n\t return Math.min(value, length);\n\t }\n\t }\n\t Random.pick = function (engine, array, begin, end) {\n\t var length = array.length;\n\t var start = begin == null ? 0 : convertSliceArgument(toInteger(begin), length);\n\t var finish = end === void 0 ? length : convertSliceArgument(toInteger(end), length);\n\t if (start >= finish) {\n\t return void 0;\n\t }\n\t var distribution = Random.integer(start, finish - 1);\n\t return array[distribution(engine)];\n\t };\n\t proto.pick = function (array, begin, end) {\n\t return Random.pick(this.engine, array, begin, end);\n\t };\n\t\n\t function returnUndefined() {\n\t return void 0;\n\t }\n\t var slice = Array.prototype.slice;\n\t Random.picker = function (array, begin, end) {\n\t var clone = slice.call(array, begin, end);\n\t if (!clone.length) {\n\t return returnUndefined;\n\t }\n\t var distribution = Random.integer(0, clone.length - 1);\n\t return function (engine) {\n\t return clone[distribution(engine)];\n\t };\n\t };\n\t\n\t Random.shuffle = function (engine, array, downTo) {\n\t var length = array.length;\n\t if (length) {\n\t if (downTo == null) {\n\t downTo = 0;\n\t }\n\t for (var i = (length - 1) >>> 0; i > downTo; --i) {\n\t var distribution = Random.integer(0, i);\n\t var j = distribution(engine);\n\t if (i !== j) {\n\t var tmp = array[i];\n\t array[i] = array[j];\n\t array[j] = tmp;\n\t }\n\t }\n\t }\n\t return array;\n\t };\n\t proto.shuffle = function (array) {\n\t return Random.shuffle(this.engine, array);\n\t };\n\t\n\t Random.sample = function (engine, population, sampleSize) {\n\t if (sampleSize < 0 || sampleSize > population.length || !isFinite(sampleSize)) {\n\t throw new RangeError(\"Expected sampleSize to be within 0 and the length of the population\");\n\t }\n\t\n\t if (sampleSize === 0) {\n\t return [];\n\t }\n\t\n\t var clone = slice.call(population);\n\t var length = clone.length;\n\t if (length === sampleSize) {\n\t return Random.shuffle(engine, clone, 0);\n\t }\n\t var tailLength = length - sampleSize;\n\t return Random.shuffle(engine, clone, tailLength - 1).slice(tailLength);\n\t };\n\t proto.sample = function (population, sampleSize) {\n\t return Random.sample(this.engine, population, sampleSize);\n\t };\n\t\n\t Random.die = function (sideCount) {\n\t return Random.integer(1, sideCount);\n\t };\n\t proto.die = function (sideCount) {\n\t return Random.die(sideCount)(this.engine);\n\t };\n\t\n\t Random.dice = function (sideCount, dieCount) {\n\t var distribution = Random.die(sideCount);\n\t return function (engine) {\n\t var result = [];\n\t result.length = dieCount;\n\t for (var i = 0; i < dieCount; ++i) {\n\t result[i] = distribution(engine);\n\t }\n\t return result;\n\t };\n\t };\n\t proto.dice = function (sideCount, dieCount) {\n\t return Random.dice(sideCount, dieCount)(this.engine);\n\t };\n\t\n\t // http://en.wikipedia.org/wiki/Universally_unique_identifier\n\t Random.uuid4 = (function () {\n\t function zeroPad(string, zeroCount) {\n\t return stringRepeat(\"0\", zeroCount - string.length) + string;\n\t }\n\t\n\t return function (engine) {\n\t var a = engine() >>> 0;\n\t var b = engine() | 0;\n\t var c = engine() | 0;\n\t var d = engine() >>> 0;\n\t\n\t return (\n\t zeroPad(a.toString(16), 8) +\n\t \"-\" +\n\t zeroPad((b & 0xffff).toString(16), 4) +\n\t \"-\" +\n\t zeroPad((((b >> 4) & 0x0fff) | 0x4000).toString(16), 4) +\n\t \"-\" +\n\t zeroPad(((c & 0x3fff) | 0x8000).toString(16), 4) +\n\t \"-\" +\n\t zeroPad(((c >> 4) & 0xffff).toString(16), 4) +\n\t zeroPad(d.toString(16), 8));\n\t };\n\t }());\n\t proto.uuid4 = function () {\n\t return Random.uuid4(this.engine);\n\t };\n\t\n\t Random.string = (function () {\n\t // has 2**x chars, for faster uniform distribution\n\t var DEFAULT_STRING_POOL = \"abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_-\";\n\t\n\t return function (pool) {\n\t if (pool == null) {\n\t pool = DEFAULT_STRING_POOL;\n\t }\n\t\n\t var length = pool.length;\n\t if (!length) {\n\t throw new Error(\"Expected pool not to be an empty string\");\n\t }\n\t\n\t var distribution = Random.integer(0, length - 1);\n\t return function (engine, length) {\n\t var result = \"\";\n\t for (var i = 0; i < length; ++i) {\n\t var j = distribution(engine);\n\t result += pool.charAt(j);\n\t }\n\t return result;\n\t };\n\t };\n\t }());\n\t proto.string = function (length, pool) {\n\t return Random.string(pool)(this.engine, length);\n\t };\n\t\n\t Random.hex = (function () {\n\t var LOWER_HEX_POOL = \"0123456789abcdef\";\n\t var lowerHex = Random.string(LOWER_HEX_POOL);\n\t var upperHex = Random.string(LOWER_HEX_POOL.toUpperCase());\n\t\n\t return function (upper) {\n\t if (upper) {\n\t return upperHex;\n\t } else {\n\t return lowerHex;\n\t }\n\t };\n\t }());\n\t proto.hex = function (length, upper) {\n\t return Random.hex(upper)(this.engine, length);\n\t };\n\t\n\t Random.date = function (start, end) {\n\t if (!(start instanceof Date)) {\n\t throw new TypeError(\"Expected start to be a Date, got \" + typeof start);\n\t } else if (!(end instanceof Date)) {\n\t throw new TypeError(\"Expected end to be a Date, got \" + typeof end);\n\t }\n\t var distribution = Random.integer(start.getTime(), end.getTime());\n\t return function (engine) {\n\t return new Date(distribution(engine));\n\t };\n\t };\n\t proto.date = function (start, end) {\n\t return Random.date(start, end)(this.engine);\n\t };\n\t\n\t if (true) {\n\t !(__WEBPACK_AMD_DEFINE_RESULT__ = function () {\n\t return Random;\n\t }.call(exports, __webpack_require__, exports, module), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n\t } else if (typeof module !== \"undefined\" && typeof require === \"function\") {\n\t module.exports = Random;\n\t } else {\n\t (function () {\n\t var oldGlobal = root[GLOBAL_KEY];\n\t Random.noConflict = function () {\n\t root[GLOBAL_KEY] = oldGlobal;\n\t return this;\n\t };\n\t }());\n\t root[GLOBAL_KEY] = Random;\n\t }\n\t}(this));\n\n/***/ },\n/* 17 */\n/***/ function(module, exports) {\n\n\t/*!\n\t* screenfull\n\t* v3.3.1 - 2017-07-07\n\t* (c) Sindre Sorhus; MIT License\n\t*/\n\t(function () {\n\t\t'use strict';\n\t\n\t\tvar document = typeof window !== 'undefined' && typeof window.document !== 'undefined' ? window.document : {};\n\t\tvar isCommonjs = typeof module !== 'undefined' && module.exports;\n\t\tvar keyboardAllowed = typeof Element !== 'undefined' && 'ALLOW_KEYBOARD_INPUT' in Element;\n\t\n\t\tvar fn = (function () {\n\t\t\tvar val;\n\t\n\t\t\tvar fnMap = [\n\t\t\t\t[\n\t\t\t\t\t'requestFullscreen',\n\t\t\t\t\t'exitFullscreen',\n\t\t\t\t\t'fullscreenElement',\n\t\t\t\t\t'fullscreenEnabled',\n\t\t\t\t\t'fullscreenchange',\n\t\t\t\t\t'fullscreenerror'\n\t\t\t\t],\n\t\t\t\t// New WebKit\n\t\t\t\t[\n\t\t\t\t\t'webkitRequestFullscreen',\n\t\t\t\t\t'webkitExitFullscreen',\n\t\t\t\t\t'webkitFullscreenElement',\n\t\t\t\t\t'webkitFullscreenEnabled',\n\t\t\t\t\t'webkitfullscreenchange',\n\t\t\t\t\t'webkitfullscreenerror'\n\t\n\t\t\t\t],\n\t\t\t\t// Old WebKit (Safari 5.1)\n\t\t\t\t[\n\t\t\t\t\t'webkitRequestFullScreen',\n\t\t\t\t\t'webkitCancelFullScreen',\n\t\t\t\t\t'webkitCurrentFullScreenElement',\n\t\t\t\t\t'webkitCancelFullScreen',\n\t\t\t\t\t'webkitfullscreenchange',\n\t\t\t\t\t'webkitfullscreenerror'\n\t\n\t\t\t\t],\n\t\t\t\t[\n\t\t\t\t\t'mozRequestFullScreen',\n\t\t\t\t\t'mozCancelFullScreen',\n\t\t\t\t\t'mozFullScreenElement',\n\t\t\t\t\t'mozFullScreenEnabled',\n\t\t\t\t\t'mozfullscreenchange',\n\t\t\t\t\t'mozfullscreenerror'\n\t\t\t\t],\n\t\t\t\t[\n\t\t\t\t\t'msRequestFullscreen',\n\t\t\t\t\t'msExitFullscreen',\n\t\t\t\t\t'msFullscreenElement',\n\t\t\t\t\t'msFullscreenEnabled',\n\t\t\t\t\t'MSFullscreenChange',\n\t\t\t\t\t'MSFullscreenError'\n\t\t\t\t]\n\t\t\t];\n\t\n\t\t\tvar i = 0;\n\t\t\tvar l = fnMap.length;\n\t\t\tvar ret = {};\n\t\n\t\t\tfor (; i < l; i++) {\n\t\t\t\tval = fnMap[i];\n\t\t\t\tif (val && val[1] in document) {\n\t\t\t\t\tfor (i = 0; i < val.length; i++) {\n\t\t\t\t\t\tret[fnMap[0][i]] = val[i];\n\t\t\t\t\t}\n\t\t\t\t\treturn ret;\n\t\t\t\t}\n\t\t\t}\n\t\n\t\t\treturn false;\n\t\t})();\n\t\n\t\tvar eventNameMap = {\n\t\t\tchange: fn.fullscreenchange,\n\t\t\terror: fn.fullscreenerror\n\t\t};\n\t\n\t\tvar screenfull = {\n\t\t\trequest: function (elem) {\n\t\t\t\tvar request = fn.requestFullscreen;\n\t\n\t\t\t\telem = elem || document.documentElement;\n\t\n\t\t\t\t// Work around Safari 5.1 bug: reports support for\n\t\t\t\t// keyboard in fullscreen even though it doesn't.\n\t\t\t\t// Browser sniffing, since the alternative with\n\t\t\t\t// setTimeout is even worse.\n\t\t\t\tif (/5\\.1[.\\d]* Safari/.test(navigator.userAgent)) {\n\t\t\t\t\telem[request]();\n\t\t\t\t} else {\n\t\t\t\t\telem[request](keyboardAllowed && Element.ALLOW_KEYBOARD_INPUT);\n\t\t\t\t}\n\t\t\t},\n\t\t\texit: function () {\n\t\t\t\tdocument[fn.exitFullscreen]();\n\t\t\t},\n\t\t\ttoggle: function (elem) {\n\t\t\t\tif (this.isFullscreen) {\n\t\t\t\t\tthis.exit();\n\t\t\t\t} else {\n\t\t\t\t\tthis.request(elem);\n\t\t\t\t}\n\t\t\t},\n\t\t\tonchange: function (callback) {\n\t\t\t\tthis.on('change', callback);\n\t\t\t},\n\t\t\tonerror: function (callback) {\n\t\t\t\tthis.on('error', callback);\n\t\t\t},\n\t\t\ton: function (event, callback) {\n\t\t\t\tvar eventName = eventNameMap[event];\n\t\t\t\tif (eventName) {\n\t\t\t\t\tdocument.addEventListener(eventName, callback, false);\n\t\t\t\t}\n\t\t\t},\n\t\t\toff: function (event, callback) {\n\t\t\t\tvar eventName = eventNameMap[event];\n\t\t\t\tif (eventName) {\n\t\t\t\t\tdocument.removeEventListener(eventName, callback, false);\n\t\t\t\t}\n\t\t\t},\n\t\t\traw: fn\n\t\t};\n\t\n\t\tif (!fn) {\n\t\t\tif (isCommonjs) {\n\t\t\t\tmodule.exports = false;\n\t\t\t} else {\n\t\t\t\twindow.screenfull = false;\n\t\t\t}\n\t\n\t\t\treturn;\n\t\t}\n\t\n\t\tObject.defineProperties(screenfull, {\n\t\t\tisFullscreen: {\n\t\t\t\tget: function () {\n\t\t\t\t\treturn Boolean(document[fn.fullscreenElement]);\n\t\t\t\t}\n\t\t\t},\n\t\t\telement: {\n\t\t\t\tenumerable: true,\n\t\t\t\tget: function () {\n\t\t\t\t\treturn document[fn.fullscreenElement];\n\t\t\t\t}\n\t\t\t},\n\t\t\tenabled: {\n\t\t\t\tenumerable: true,\n\t\t\t\tget: function () {\n\t\t\t\t\t// Coerce to boolean in case of old WebKit\n\t\t\t\t\treturn Boolean(document[fn.fullscreenEnabled]);\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t\n\t\tif (isCommonjs) {\n\t\t\tmodule.exports = screenfull;\n\t\t} else {\n\t\t\twindow.screenfull = screenfull;\n\t\t}\n\t})();\n\n\n/***/ },\n/* 18 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t/*\r\n\t\tMIT License http://www.opensource.org/licenses/mit-license.php\r\n\t\tAuthor Tobias Koppers @sokra\r\n\t*/\r\n\tvar stylesInDom = {},\r\n\t\tmemoize = function(fn) {\r\n\t\t\tvar memo;\r\n\t\t\treturn function () {\r\n\t\t\t\tif (typeof memo === \"undefined\") memo = fn.apply(this, arguments);\r\n\t\t\t\treturn memo;\r\n\t\t\t};\r\n\t\t},\r\n\t\tisOldIE = memoize(function() {\r\n\t\t\treturn /msie [6-9]\\b/.test(window.navigator.userAgent.toLowerCase());\r\n\t\t}),\r\n\t\tgetHeadElement = memoize(function () {\r\n\t\t\treturn document.head || document.getElementsByTagName(\"head\")[0];\r\n\t\t}),\r\n\t\tsingletonElement = null,\r\n\t\tsingletonCounter = 0,\r\n\t\tstyleElementsInsertedAtTop = [];\r\n\t\r\n\tmodule.exports = function(list, options) {\r\n\t\tif(false) {\r\n\t\t\tif(typeof document !== \"object\") throw new Error(\"The style-loader cannot be used in a non-browser environment\");\r\n\t\t}\r\n\t\r\n\t\toptions = options || {};\r\n\t\t// Force single-tag solution on IE6-9, which has a hard limit on the # of