{"version":3,"sources":["webpack:///./node_modules/axios/index.js","webpack:///./node_modules/axios/lib/adapters/xhr.js","webpack:///./node_modules/axios/lib/axios.js","webpack:///./node_modules/axios/lib/cancel/Cancel.js","webpack:///./node_modules/axios/lib/cancel/CancelToken.js","webpack:///./node_modules/axios/lib/cancel/isCancel.js","webpack:///./node_modules/axios/lib/core/Axios.js","webpack:///./node_modules/axios/lib/core/InterceptorManager.js","webpack:///./node_modules/axios/lib/core/buildFullPath.js","webpack:///./node_modules/axios/lib/core/createError.js","webpack:///./node_modules/axios/lib/core/dispatchRequest.js","webpack:///./node_modules/axios/lib/core/enhanceError.js","webpack:///./node_modules/axios/lib/core/mergeConfig.js","webpack:///./node_modules/axios/lib/core/settle.js","webpack:///./node_modules/axios/lib/core/transformData.js","webpack:///./node_modules/axios/lib/defaults.js","webpack:///./node_modules/axios/lib/helpers/bind.js","webpack:///./node_modules/axios/lib/helpers/buildURL.js","webpack:///./node_modules/axios/lib/helpers/combineURLs.js","webpack:///./node_modules/axios/lib/helpers/cookies.js","webpack:///./node_modules/axios/lib/helpers/isAbsoluteURL.js","webpack:///./node_modules/axios/lib/helpers/isURLSameOrigin.js","webpack:///./node_modules/axios/lib/helpers/normalizeHeaderName.js","webpack:///./node_modules/axios/lib/helpers/parseHeaders.js","webpack:///./node_modules/axios/lib/helpers/spread.js","webpack:///./node_modules/axios/lib/utils.js","webpack:///./node_modules/details-polyfill/index.js","webpack:///./node_modules/lazysizes/lazysizes.js","webpack:///./node_modules/object-fit-images/dist/ofi.common-js.js","webpack:///./node_modules/object-fit-videos/object-fit-videos.js","webpack:///./node_modules/picturefill/dist/picturefill.js","webpack:///./node_modules/process/browser.js","webpack:///(webpack)/buildin/module.js"],"names":["module","exports","require","utils","settle","cookies","buildURL","buildFullPath","parseHeaders","isURLSameOrigin","createError","xhrAdapter","config","Promise","dispatchXhrRequest","resolve","reject","requestData","data","requestHeaders","headers","isFormData","isBlob","isFile","type","request","XMLHttpRequest","auth","username","password","unescape","encodeURIComponent","Authorization","btoa","fullPath","baseURL","url","open","method","toUpperCase","params","paramsSerializer","timeout","onreadystatechange","handleLoad","readyState","status","responseURL","indexOf","responseHeaders","getAllResponseHeaders","responseData","responseType","responseText","response","statusText","onabort","handleAbort","onerror","handleError","ontimeout","handleTimeout","timeoutErrorMessage","isStandardBrowserEnv","xsrfValue","withCredentials","xsrfCookieName","read","undefined","xsrfHeaderName","forEach","setRequestHeader","val","key","toLowerCase","isUndefined","e","onDownloadProgress","addEventListener","onUploadProgress","upload","cancelToken","promise","then","onCanceled","cancel","abort","send","bind","Axios","mergeConfig","defaults","createInstance","defaultConfig","context","instance","prototype","extend","axios","create","instanceConfig","Cancel","CancelToken","isCancel","all","promises","spread","message","toString","__CANCEL__","executor","TypeError","resolvePromise","promiseExecutor","token","reason","throwIfRequested","source","c","value","InterceptorManager","dispatchRequest","interceptors","arguments","chain","unshiftRequestInterceptors","interceptor","unshift","fulfilled","rejected","pushResponseInterceptors","push","length","shift","getUri","replace","forEachMethodNoData","forEachMethodWithData","handlers","use","eject","id","fn","forEachHandler","h","isAbsoluteURL","combineURLs","requestedURL","enhanceError","code","error","Error","transformData","throwIfCancellationRequested","transformRequest","merge","common","cleanHeaderConfig","adapter","onAdapterResolution","transformResponse","onAdapterRejection","isAxiosError","toJSON","name","description","number","fileName","lineNumber","columnNumber","stack","config1","config2","valueFromConfig2Keys","mergeDeepPropertiesKeys","defaultToConfig2Keys","directMergeKeys","getMergedValue","target","isPlainObject","isArray","slice","mergeDeepProperties","prop","valueFromConfig2","defaultToConfig2","axiosKeys","concat","otherKeys","Object","keys","filter","filterAxiosKeys","validateStatus","fns","transform","normalizeHeaderName","DEFAULT_CONTENT_TYPE","setContentTypeIfUnset","getDefaultAdapter","process","call","isArrayBuffer","isBuffer","isStream","isArrayBufferView","buffer","isURLSearchParams","isObject","JSON","stringify","parse","maxContentLength","maxBodyLength","thisArg","wrap","args","Array","i","apply","encode","serializedParams","parts","serialize","parseValue","v","isDate","toISOString","join","hashmarkIndex","relativeURL","standardBrowserEnv","write","expires","path","domain","secure","cookie","isNumber","Date","toGMTString","isString","document","match","RegExp","decodeURIComponent","remove","now","nonStandardBrowserEnv","test","msie","navigator","userAgent","urlParsingNode","createElement","originURL","resolveURL","href","setAttribute","protocol","host","search","hash","hostname","port","pathname","charAt","window","location","requestURL","parsed","normalizedName","processHeader","ignoreDuplicateOf","split","parser","line","trim","substr","callback","arr","constructor","FormData","result","ArrayBuffer","isView","getPrototypeOf","isFunction","pipe","URLSearchParams","str","product","obj","l","hasOwnProperty","assignValue","a","b","stripBOM","content","charCodeAt","root","factory","define","DETAILS","SUMMARY","supported","checkSupport","documentElement","className","clickHandler","injectStyle","nodeName","details","parentNode","getAttribute","removeAttribute","el","innerHTML","body","appendChild","diff","offsetHeight","removeChild","style","getElementById","getElementsByTagName","lazySizes","lazysizes","lazySizesCfg","lazySizesDefaults","lazyClass","loadedClass","loadingClass","preloadClass","errorClass","autosizesClass","srcAttr","srcsetAttr","sizesAttr","minSize","customMedia","init","expFactor","hFac","loadMode","loadHidden","ricTimeout","throttleDelay","lazySizesConfig","lazysizesConfig","getElementsByClassName","cfg","noSupport","docElem","supportPicture","HTMLPictureElement","_addEventListener","_getAttribute","setTimeout","requestAnimationFrame","requestIdleCallback","regPicture","loadEvents","regClassCache","hasClass","ele","cls","addClass","removeClass","reg","addRemoveLoadEvents","dom","add","action","evt","triggerEvent","elem","detail","noBubbles","noCancelable","event","createEvent","initEvent","dispatchEvent","updatePolyfill","full","polyfill","picturefill","pf","src","reevaluate","elements","getCSS","getComputedStyle","getWidth","parent","width","offsetWidth","_lazysizesWidth","rAF","running","waiting","firstFns","secondFns","run","runFns","rafBatch","queue","hidden","_lsFlush","rAFIt","simple","that","throttle","lastTime","gDelay","rICTimeout","idleCallback","isPriority","delay","debounce","func","timestamp","wait","later","last","loader","preloadElems","isCompleted","resetPreloadingTimer","started","eLvW","elvH","eLtop","eLleft","eLright","eLbottom","isBodyHidden","regImg","regIframe","supportScroll","shrinkExpand","currentExpand","isLoading","lowRuns","resetPreloading","isVisible","isNestedVisible","elemExpand","outerRect","visible","offsetParent","getBoundingClientRect","left","right","top","bottom","checkElements","eLlen","rect","autoLoadElem","loadedSomething","elemNegativeExpand","elemExpandVal","beforeExpandVal","defaultExpand","preloadExpand","lazyloadElems","_lazyRace","prematureUnveil","unveilElement","expand","clientHeight","clientWidth","_defEx","innerWidth","innerHeight","preloadAfterLoad","throttledCheckElements","switchLoadingClass","_lazyCache","rafSwitchLoadingClass","rafedSwitchLoadingClass","changeIframeSrc","contentWindow","handleSources","sourceSrcset","lazyUnveil","isAuto","sizes","isImg","srcset","isPicture","firesLoad","defaultPrevented","clearTimeout","isLoaded","complete","naturalWidth","loading","autoSizer","updateElem","afterScroll","altLoadmodeScrollListner","onload","_","persisted","loadingElements","querySelectorAll","img","MutationObserver","observe","childList","subtree","attributes","setInterval","checkElems","unveil","_aLSL","autosizesElems","sizeElement","sources","len","dataAttr","getSizeElement","updateElementsSizes","debouncedUpdateElementsSizes","uP","aC","rC","hC","fire","gW","OFI","propRegex","testImg","Image","supportsObjectFit","supportsObjectPosition","supportsOFI","supportsCurrentSrc","currentSrc","nativeGetAttribute","nativeSetAttribute","autoModeEnabled","createPlaceholder","w","polyfillCurrentSrc","ns","evaled","fillImg","reselect","curSrc","getStyle","fontFamily","props","exec","setPlaceholder","height","placeholder","onImageReady","fixOne","ofi","skipTest","naturalHeight","keepSrcUsable","err","console","warn","backgroundImage","backgroundPosition","backgroundRepeat","backgroundOrigin","backgroundSize","descriptors","get","set","defineProperty","ss","hijackAttributes","getOfiImageMaybe","HTMLImageElement","String","fix","imgs","opts","startAutoMode","tagName","watchMQ","objectFitVideos","videos","isEdge","initialize","$el","parsePosition","index","fitIt","setCss","getCss","$wrap","replaceChild","wrapCss","boxSizing","display","overflow","border","margin","padding","opacity","doWork","removeEventListener","videoWidth","videoHeight","videoRatio","wrapWidth","wrapHeight","wrapRatio","newHeight","newWidth","marginLeft","marginTop","Math","round","autoplay","play","CustomEvent","ua","$1","timer","dummySrc","fixRespimg","picture","cloneNode","insertBefore","firstElementChild","_pfLastSize","findPictureImgs","onResize","mq","matchMedia","addListener","eminpx","alwaysCheckWDescriptor","evalId","isSupportTestReady","noop","image","getImgAttr","setImgAttr","removeImgAttr","types","algorithm","supportAbort","curSrcProp","regWDesc","regSize","setOptions","picturefillCFG","baseStyle","fsCss","isVwDirty","cssCache","sizeLengthCache","DPR","devicePixelRatio","units","px","anchor","alreadyRun","regexLeadingSpaces","regexLeadingCommasOrSpaces","regexLeadingNotSpaces","regexTrailingCommas","regexNonNegativeInteger","regexFloatingPoint","on","capture","attachEvent","memoize","cache","input","isSpace","evalCSS","regLength","string","buildStr","css","parsedLength","Function","setResolution","candidate","sizesattr","cWidth","calcListLength","res","d","opt","plen","options","nodeType","qsa","sel","selShort","setupRun","teardownRun","detectTypeSupport","typeUri","implementation","hasFeature","updateMetrics","max","vw","vh","em","getEmValue","rem","chooseLowRes","lowerValue","higherValue","dprValue","isCached","bonusFactor","tooMuch","bonus","meanDensity","pow","sqrt","applyBestCandidate","srcSetCandidates","matchingSet","getSet","evaluated","setRes","applySetCandidate","ascendingSort","setSrcToCur","sets","getCandidateForSrc","makeUrl","curCan","candidates","parseSet","getAllSourceElements","media","parseSrcset","collectCharacters","regEx","chars","substring","pos","inputLength","currentDescriptor","state","parseDescriptors","pError","desc","lastChar","intVal","floatVal","parseInt","parseFloat","has1x","tokenize","parseSizes","strValue","regexCssLengthWithUnits","regexCssCalc","unparsedSizesList","unparsedSizesListLength","unparsedSize","lastComponentValue","size","parseComponentValues","chrctr","component","componentArray","listArray","parenDepth","inComment","pushComponent","pushComponentArray","isValidNonNegativeSourceSizeValue","s","pop","matchesMedia","getTime","supSrcset","supSizes","supPicture","image2","width2","width1","u","setSize","matches","mMQ","calcLength","sourceSizeValue","supportsType","parseSize","sourceSizeStr","cands","div","originalHTMLCSS","cssText","originalBodyCSS","sourceSizeListStr","uT","winningLength","j","bestCandidate","candidateSrc","abortCurSrc","imageData","dpr","cached","sort","setSrc","origWidth","parseSets","element","srcsetAttribute","imageSet","isWDescripor","srcsetParsed","hasPicture","pic","extreme","isDomReady","regReady","timerId","fillImgs","lastClientWidth","cachedSetTimeout","cachedClearTimeout","defaultSetTimout","defaultClearTimeout","runTimeout","fun","runClearTimeout","marker","draining","currentQueue","queueIndex","cleanUpNextTick","drainQueue","nextTick","Item","array","title","browser","env","argv","version","versions","once","off","removeListener","removeAllListeners","emit","prependListener","prependOnceListener","listeners","binding","cwd","chdir","dir","umask","webpackPolyfill","deprecate","paths","children","enumerable"],"mappings":"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","file":"/scripts/vendor.js","sourcesContent":["module.exports = require('./lib/axios');","'use strict';\n\nvar utils = require('./../utils');\nvar settle = require('./../core/settle');\nvar cookies = require('./../helpers/cookies');\nvar buildURL = require('./../helpers/buildURL');\nvar buildFullPath = require('../core/buildFullPath');\nvar parseHeaders = require('./../helpers/parseHeaders');\nvar isURLSameOrigin = require('./../helpers/isURLSameOrigin');\nvar createError = require('../core/createError');\n\nmodule.exports = function xhrAdapter(config) {\n return new Promise(function dispatchXhrRequest(resolve, reject) {\n var requestData = config.data;\n var requestHeaders = config.headers;\n\n if (utils.isFormData(requestData)) {\n delete requestHeaders['Content-Type']; // Let the browser set it\n }\n\n if (\n (utils.isBlob(requestData) || utils.isFile(requestData)) &&\n requestData.type\n ) {\n delete requestHeaders['Content-Type']; // Let the browser set it\n }\n\n var request = new XMLHttpRequest();\n\n // HTTP basic authentication\n if (config.auth) {\n var username = config.auth.username || '';\n var password = unescape(encodeURIComponent(config.auth.password)) || '';\n requestHeaders.Authorization = 'Basic ' + btoa(username + ':' + password);\n }\n\n var fullPath = buildFullPath(config.baseURL, config.url);\n request.open(config.method.toUpperCase(), buildURL(fullPath, config.params, config.paramsSerializer), true);\n\n // Set the request timeout in MS\n request.timeout = config.timeout;\n\n // Listen for ready state\n request.onreadystatechange = function handleLoad() {\n if (!request || request.readyState !== 4) {\n return;\n }\n\n // The request errored out and we didn't get a response, this will be\n // handled by onerror instead\n // With one exception: request that using file: protocol, most browsers\n // will return status as 0 even though it's a successful request\n if (request.status === 0 && !(request.responseURL && request.responseURL.indexOf('file:') === 0)) {\n return;\n }\n\n // Prepare the response\n var responseHeaders = 'getAllResponseHeaders' in request ? parseHeaders(request.getAllResponseHeaders()) : null;\n var responseData = !config.responseType || config.responseType === 'text' ? request.responseText : request.response;\n var response = {\n data: responseData,\n status: request.status,\n statusText: request.statusText,\n headers: responseHeaders,\n config: config,\n request: request\n };\n\n settle(resolve, reject, response);\n\n // Clean up request\n request = null;\n };\n\n // Handle browser request cancellation (as opposed to a manual cancellation)\n request.onabort = function handleAbort() {\n if (!request) {\n return;\n }\n\n reject(createError('Request aborted', config, 'ECONNABORTED', request));\n\n // Clean up request\n request = null;\n };\n\n // Handle low level network errors\n request.onerror = function handleError() {\n // Real errors are hidden from us by the browser\n // onerror should only fire if it's a network error\n reject(createError('Network Error', config, null, request));\n\n // Clean up request\n request = null;\n };\n\n // Handle timeout\n request.ontimeout = function handleTimeout() {\n var timeoutErrorMessage = 'timeout of ' + config.timeout + 'ms exceeded';\n if (config.timeoutErrorMessage) {\n timeoutErrorMessage = config.timeoutErrorMessage;\n }\n reject(createError(timeoutErrorMessage, config, 'ECONNABORTED',\n request));\n\n // Clean up request\n request = null;\n };\n\n // Add xsrf header\n // This is only done if running in a standard browser environment.\n // Specifically not if we're in a web worker, or react-native.\n if (utils.isStandardBrowserEnv()) {\n // Add xsrf header\n var xsrfValue = (config.withCredentials || isURLSameOrigin(fullPath)) && config.xsrfCookieName ?\n cookies.read(config.xsrfCookieName) :\n undefined;\n\n if (xsrfValue) {\n requestHeaders[config.xsrfHeaderName] = xsrfValue;\n }\n }\n\n // Add headers to the request\n if ('setRequestHeader' in request) {\n utils.forEach(requestHeaders, function setRequestHeader(val, key) {\n if (typeof requestData === 'undefined' && key.toLowerCase() === 'content-type') {\n // Remove Content-Type if data is undefined\n delete requestHeaders[key];\n } else {\n // Otherwise add header to the request\n request.setRequestHeader(key, val);\n }\n });\n }\n\n // Add withCredentials to request if needed\n if (!utils.isUndefined(config.withCredentials)) {\n request.withCredentials = !!config.withCredentials;\n }\n\n // Add responseType to request if needed\n if (config.responseType) {\n try {\n request.responseType = config.responseType;\n } catch (e) {\n // Expected DOMException thrown by browsers not compatible XMLHttpRequest Level 2.\n // But, this can be suppressed for 'json' type as it can be parsed by default 'transformResponse' function.\n if (config.responseType !== 'json') {\n throw e;\n }\n }\n }\n\n // Handle progress if needed\n if (typeof config.onDownloadProgress === 'function') {\n request.addEventListener('progress', config.onDownloadProgress);\n }\n\n // Not all browsers support upload events\n if (typeof config.onUploadProgress === 'function' && request.upload) {\n request.upload.addEventListener('progress', config.onUploadProgress);\n }\n\n if (config.cancelToken) {\n // Handle cancellation\n config.cancelToken.promise.then(function onCanceled(cancel) {\n if (!request) {\n return;\n }\n\n request.abort();\n reject(cancel);\n // Clean up request\n request = null;\n });\n }\n\n if (!requestData) {\n requestData = null;\n }\n\n // Send the request\n request.send(requestData);\n });\n};\n","'use strict';\n\nvar utils = require('./utils');\nvar bind = require('./helpers/bind');\nvar Axios = require('./core/Axios');\nvar mergeConfig = require('./core/mergeConfig');\nvar defaults = require('./defaults');\n\n/**\n * Create an instance of Axios\n *\n * @param {Object} defaultConfig The default config for the instance\n * @return {Axios} A new instance of Axios\n */\nfunction createInstance(defaultConfig) {\n var context = new Axios(defaultConfig);\n var instance = bind(Axios.prototype.request, context);\n\n // Copy axios.prototype to instance\n utils.extend(instance, Axios.prototype, context);\n\n // Copy context to instance\n utils.extend(instance, context);\n\n return instance;\n}\n\n// Create the default instance to be exported\nvar axios = createInstance(defaults);\n\n// Expose Axios class to allow class inheritance\naxios.Axios = Axios;\n\n// Factory for creating new instances\naxios.create = function create(instanceConfig) {\n return createInstance(mergeConfig(axios.defaults, instanceConfig));\n};\n\n// Expose Cancel & CancelToken\naxios.Cancel = require('./cancel/Cancel');\naxios.CancelToken = require('./cancel/CancelToken');\naxios.isCancel = require('./cancel/isCancel');\n\n// Expose all/spread\naxios.all = function all(promises) {\n return Promise.all(promises);\n};\naxios.spread = require('./helpers/spread');\n\nmodule.exports = axios;\n\n// Allow use of default import syntax in TypeScript\nmodule.exports.default = axios;\n","'use strict';\n\n/**\n * A `Cancel` is an object that is thrown when an operation is canceled.\n *\n * @class\n * @param {string=} message The message.\n */\nfunction Cancel(message) {\n this.message = message;\n}\n\nCancel.prototype.toString = function toString() {\n return 'Cancel' + (this.message ? ': ' + this.message : '');\n};\n\nCancel.prototype.__CANCEL__ = true;\n\nmodule.exports = Cancel;\n","'use strict';\n\nvar Cancel = require('./Cancel');\n\n/**\n * A `CancelToken` is an object that can be used to request cancellation of an operation.\n *\n * @class\n * @param {Function} executor The executor function.\n */\nfunction CancelToken(executor) {\n if (typeof executor !== 'function') {\n throw new TypeError('executor must be a function.');\n }\n\n var resolvePromise;\n this.promise = new Promise(function promiseExecutor(resolve) {\n resolvePromise = resolve;\n });\n\n var token = this;\n executor(function cancel(message) {\n if (token.reason) {\n // Cancellation has already been requested\n return;\n }\n\n token.reason = new Cancel(message);\n resolvePromise(token.reason);\n });\n}\n\n/**\n * Throws a `Cancel` if cancellation has been requested.\n */\nCancelToken.prototype.throwIfRequested = function throwIfRequested() {\n if (this.reason) {\n throw this.reason;\n }\n};\n\n/**\n * Returns an object that contains a new `CancelToken` and a function that, when called,\n * cancels the `CancelToken`.\n */\nCancelToken.source = function source() {\n var cancel;\n var token = new CancelToken(function executor(c) {\n cancel = c;\n });\n return {\n token: token,\n cancel: cancel\n };\n};\n\nmodule.exports = CancelToken;\n","'use strict';\n\nmodule.exports = function isCancel(value) {\n return !!(value && value.__CANCEL__);\n};\n","'use strict';\n\nvar utils = require('./../utils');\nvar buildURL = require('../helpers/buildURL');\nvar InterceptorManager = require('./InterceptorManager');\nvar dispatchRequest = require('./dispatchRequest');\nvar mergeConfig = require('./mergeConfig');\n\n/**\n * Create a new instance of Axios\n *\n * @param {Object} instanceConfig The default config for the instance\n */\nfunction Axios(instanceConfig) {\n this.defaults = instanceConfig;\n this.interceptors = {\n request: new InterceptorManager(),\n response: new InterceptorManager()\n };\n}\n\n/**\n * Dispatch a request\n *\n * @param {Object} config The config specific for this request (merged with this.defaults)\n */\nAxios.prototype.request = function request(config) {\n /*eslint no-param-reassign:0*/\n // Allow for axios('example/url'[, config]) a la fetch API\n if (typeof config === 'string') {\n config = arguments[1] || {};\n config.url = arguments[0];\n } else {\n config = config || {};\n }\n\n config = mergeConfig(this.defaults, config);\n\n // Set config.method\n if (config.method) {\n config.method = config.method.toLowerCase();\n } else if (this.defaults.method) {\n config.method = this.defaults.method.toLowerCase();\n } else {\n config.method = 'get';\n }\n\n // Hook up interceptors middleware\n var chain = [dispatchRequest, undefined];\n var promise = Promise.resolve(config);\n\n this.interceptors.request.forEach(function unshiftRequestInterceptors(interceptor) {\n chain.unshift(interceptor.fulfilled, interceptor.rejected);\n });\n\n this.interceptors.response.forEach(function pushResponseInterceptors(interceptor) {\n chain.push(interceptor.fulfilled, interceptor.rejected);\n });\n\n while (chain.length) {\n promise = promise.then(chain.shift(), chain.shift());\n }\n\n return promise;\n};\n\nAxios.prototype.getUri = function getUri(config) {\n config = mergeConfig(this.defaults, config);\n return buildURL(config.url, config.params, config.paramsSerializer).replace(/^\\?/, '');\n};\n\n// Provide aliases for supported request methods\nutils.forEach(['delete', 'get', 'head', 'options'], function forEachMethodNoData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function(url, config) {\n return this.request(mergeConfig(config || {}, {\n method: method,\n url: url\n }));\n };\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function(url, data, config) {\n return this.request(mergeConfig(config || {}, {\n method: method,\n url: url,\n data: data\n }));\n };\n});\n\nmodule.exports = Axios;\n","'use strict';\n\nvar utils = require('./../utils');\n\nfunction InterceptorManager() {\n this.handlers = [];\n}\n\n/**\n * Add a new interceptor to the stack\n *\n * @param {Function} fulfilled The function to handle `then` for a `Promise`\n * @param {Function} rejected The function to handle `reject` for a `Promise`\n *\n * @return {Number} An ID used to remove interceptor later\n */\nInterceptorManager.prototype.use = function use(fulfilled, rejected) {\n this.handlers.push({\n fulfilled: fulfilled,\n rejected: rejected\n });\n return this.handlers.length - 1;\n};\n\n/**\n * Remove an interceptor from the stack\n *\n * @param {Number} id The ID that was returned by `use`\n */\nInterceptorManager.prototype.eject = function eject(id) {\n if (this.handlers[id]) {\n this.handlers[id] = null;\n }\n};\n\n/**\n * Iterate over all the registered interceptors\n *\n * This method is particularly useful for skipping over any\n * interceptors that may have become `null` calling `eject`.\n *\n * @param {Function} fn The function to call for each interceptor\n */\nInterceptorManager.prototype.forEach = function forEach(fn) {\n utils.forEach(this.handlers, function forEachHandler(h) {\n if (h !== null) {\n fn(h);\n }\n });\n};\n\nmodule.exports = InterceptorManager;\n","'use strict';\n\nvar isAbsoluteURL = require('../helpers/isAbsoluteURL');\nvar combineURLs = require('../helpers/combineURLs');\n\n/**\n * Creates a new URL by combining the baseURL with the requestedURL,\n * only when the requestedURL is not already an absolute URL.\n * If the requestURL is absolute, this function returns the requestedURL untouched.\n *\n * @param {string} baseURL The base URL\n * @param {string} requestedURL Absolute or relative URL to combine\n * @returns {string} The combined full path\n */\nmodule.exports = function buildFullPath(baseURL, requestedURL) {\n if (baseURL && !isAbsoluteURL(requestedURL)) {\n return combineURLs(baseURL, requestedURL);\n }\n return requestedURL;\n};\n","'use strict';\n\nvar enhanceError = require('./enhanceError');\n\n/**\n * Create an Error with the specified message, config, error code, request and response.\n *\n * @param {string} message The error message.\n * @param {Object} config The config.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n * @returns {Error} The created error.\n */\nmodule.exports = function createError(message, config, code, request, response) {\n var error = new Error(message);\n return enhanceError(error, config, code, request, response);\n};\n","'use strict';\n\nvar utils = require('./../utils');\nvar transformData = require('./transformData');\nvar isCancel = require('../cancel/isCancel');\nvar defaults = require('../defaults');\n\n/**\n * Throws a `Cancel` if cancellation has been requested.\n */\nfunction throwIfCancellationRequested(config) {\n if (config.cancelToken) {\n config.cancelToken.throwIfRequested();\n }\n}\n\n/**\n * Dispatch a request to the server using the configured adapter.\n *\n * @param {object} config The config that is to be used for the request\n * @returns {Promise} The Promise to be fulfilled\n */\nmodule.exports = function dispatchRequest(config) {\n throwIfCancellationRequested(config);\n\n // Ensure headers exist\n config.headers = config.headers || {};\n\n // Transform request data\n config.data = transformData(\n config.data,\n config.headers,\n config.transformRequest\n );\n\n // Flatten headers\n config.headers = utils.merge(\n config.headers.common || {},\n config.headers[config.method] || {},\n config.headers\n );\n\n utils.forEach(\n ['delete', 'get', 'head', 'post', 'put', 'patch', 'common'],\n function cleanHeaderConfig(method) {\n delete config.headers[method];\n }\n );\n\n var adapter = config.adapter || defaults.adapter;\n\n return adapter(config).then(function onAdapterResolution(response) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n response.data = transformData(\n response.data,\n response.headers,\n config.transformResponse\n );\n\n return response;\n }, function onAdapterRejection(reason) {\n if (!isCancel(reason)) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n if (reason && reason.response) {\n reason.response.data = transformData(\n reason.response.data,\n reason.response.headers,\n config.transformResponse\n );\n }\n }\n\n return Promise.reject(reason);\n });\n};\n","'use strict';\n\n/**\n * Update an Error with the specified config, error code, and response.\n *\n * @param {Error} error The error to update.\n * @param {Object} config The config.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n * @returns {Error} The error.\n */\nmodule.exports = function enhanceError(error, config, code, request, response) {\n error.config = config;\n if (code) {\n error.code = code;\n }\n\n error.request = request;\n error.response = response;\n error.isAxiosError = true;\n\n error.toJSON = function toJSON() {\n return {\n // Standard\n message: this.message,\n name: this.name,\n // Microsoft\n description: this.description,\n number: this.number,\n // Mozilla\n fileName: this.fileName,\n lineNumber: this.lineNumber,\n columnNumber: this.columnNumber,\n stack: this.stack,\n // Axios\n config: this.config,\n code: this.code\n };\n };\n return error;\n};\n","'use strict';\n\nvar utils = require('../utils');\n\n/**\n * Config-specific merge-function which creates a new config-object\n * by merging two configuration objects together.\n *\n * @param {Object} config1\n * @param {Object} config2\n * @returns {Object} New object resulting from merging config2 to config1\n */\nmodule.exports = function mergeConfig(config1, config2) {\n // eslint-disable-next-line no-param-reassign\n config2 = config2 || {};\n var config = {};\n\n var valueFromConfig2Keys = ['url', 'method', 'data'];\n var mergeDeepPropertiesKeys = ['headers', 'auth', 'proxy', 'params'];\n var defaultToConfig2Keys = [\n 'baseURL', 'transformRequest', 'transformResponse', 'paramsSerializer',\n 'timeout', 'timeoutMessage', 'withCredentials', 'adapter', 'responseType', 'xsrfCookieName',\n 'xsrfHeaderName', 'onUploadProgress', 'onDownloadProgress', 'decompress',\n 'maxContentLength', 'maxBodyLength', 'maxRedirects', 'transport', 'httpAgent',\n 'httpsAgent', 'cancelToken', 'socketPath', 'responseEncoding'\n ];\n var directMergeKeys = ['validateStatus'];\n\n function getMergedValue(target, source) {\n if (utils.isPlainObject(target) && utils.isPlainObject(source)) {\n return utils.merge(target, source);\n } else if (utils.isPlainObject(source)) {\n return utils.merge({}, source);\n } else if (utils.isArray(source)) {\n return source.slice();\n }\n return source;\n }\n\n function mergeDeepProperties(prop) {\n if (!utils.isUndefined(config2[prop])) {\n config[prop] = getMergedValue(config1[prop], config2[prop]);\n } else if (!utils.isUndefined(config1[prop])) {\n config[prop] = getMergedValue(undefined, config1[prop]);\n }\n }\n\n utils.forEach(valueFromConfig2Keys, function valueFromConfig2(prop) {\n if (!utils.isUndefined(config2[prop])) {\n config[prop] = getMergedValue(undefined, config2[prop]);\n }\n });\n\n utils.forEach(mergeDeepPropertiesKeys, mergeDeepProperties);\n\n utils.forEach(defaultToConfig2Keys, function defaultToConfig2(prop) {\n if (!utils.isUndefined(config2[prop])) {\n config[prop] = getMergedValue(undefined, config2[prop]);\n } else if (!utils.isUndefined(config1[prop])) {\n config[prop] = getMergedValue(undefined, config1[prop]);\n }\n });\n\n utils.forEach(directMergeKeys, function merge(prop) {\n if (prop in config2) {\n config[prop] = getMergedValue(config1[prop], config2[prop]);\n } else if (prop in config1) {\n config[prop] = getMergedValue(undefined, config1[prop]);\n }\n });\n\n var axiosKeys = valueFromConfig2Keys\n .concat(mergeDeepPropertiesKeys)\n .concat(defaultToConfig2Keys)\n .concat(directMergeKeys);\n\n var otherKeys = Object\n .keys(config1)\n .concat(Object.keys(config2))\n .filter(function filterAxiosKeys(key) {\n return axiosKeys.indexOf(key) === -1;\n });\n\n utils.forEach(otherKeys, mergeDeepProperties);\n\n return config;\n};\n","'use strict';\n\nvar createError = require('./createError');\n\n/**\n * Resolve or reject a Promise based on response status.\n *\n * @param {Function} resolve A function that resolves the promise.\n * @param {Function} reject A function that rejects the promise.\n * @param {object} response The response.\n */\nmodule.exports = function settle(resolve, reject, response) {\n var validateStatus = response.config.validateStatus;\n if (!response.status || !validateStatus || validateStatus(response.status)) {\n resolve(response);\n } else {\n reject(createError(\n 'Request failed with status code ' + response.status,\n response.config,\n null,\n response.request,\n response\n ));\n }\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\n/**\n * Transform the data for a request or a response\n *\n * @param {Object|String} data The data to be transformed\n * @param {Array} headers The headers for the request or response\n * @param {Array|Function} fns A single function or Array of functions\n * @returns {*} The resulting transformed data\n */\nmodule.exports = function transformData(data, headers, fns) {\n /*eslint no-param-reassign:0*/\n utils.forEach(fns, function transform(fn) {\n data = fn(data, headers);\n });\n\n return data;\n};\n","'use strict';\n\nvar utils = require('./utils');\nvar normalizeHeaderName = require('./helpers/normalizeHeaderName');\n\nvar DEFAULT_CONTENT_TYPE = {\n 'Content-Type': 'application/x-www-form-urlencoded'\n};\n\nfunction setContentTypeIfUnset(headers, value) {\n if (!utils.isUndefined(headers) && utils.isUndefined(headers['Content-Type'])) {\n headers['Content-Type'] = value;\n }\n}\n\nfunction getDefaultAdapter() {\n var adapter;\n if (typeof XMLHttpRequest !== 'undefined') {\n // For browsers use XHR adapter\n adapter = require('./adapters/xhr');\n } else if (typeof process !== 'undefined' && Object.prototype.toString.call(process) === '[object process]') {\n // For node use HTTP adapter\n adapter = require('./adapters/http');\n }\n return adapter;\n}\n\nvar defaults = {\n adapter: getDefaultAdapter(),\n\n transformRequest: [function transformRequest(data, headers) {\n normalizeHeaderName(headers, 'Accept');\n normalizeHeaderName(headers, 'Content-Type');\n if (utils.isFormData(data) ||\n utils.isArrayBuffer(data) ||\n utils.isBuffer(data) ||\n utils.isStream(data) ||\n utils.isFile(data) ||\n utils.isBlob(data)\n ) {\n return data;\n }\n if (utils.isArrayBufferView(data)) {\n return data.buffer;\n }\n if (utils.isURLSearchParams(data)) {\n setContentTypeIfUnset(headers, 'application/x-www-form-urlencoded;charset=utf-8');\n return data.toString();\n }\n if (utils.isObject(data)) {\n setContentTypeIfUnset(headers, 'application/json;charset=utf-8');\n return JSON.stringify(data);\n }\n return data;\n }],\n\n transformResponse: [function transformResponse(data) {\n /*eslint no-param-reassign:0*/\n if (typeof data === 'string') {\n try {\n data = JSON.parse(data);\n } catch (e) { /* Ignore */ }\n }\n return data;\n }],\n\n /**\n * A timeout in milliseconds to abort a request. If set to 0 (default) a\n * timeout is not created.\n */\n timeout: 0,\n\n xsrfCookieName: 'XSRF-TOKEN',\n xsrfHeaderName: 'X-XSRF-TOKEN',\n\n maxContentLength: -1,\n maxBodyLength: -1,\n\n validateStatus: function validateStatus(status) {\n return status >= 200 && status < 300;\n }\n};\n\ndefaults.headers = {\n common: {\n 'Accept': 'application/json, text/plain, */*'\n }\n};\n\nutils.forEach(['delete', 'get', 'head'], function forEachMethodNoData(method) {\n defaults.headers[method] = {};\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n defaults.headers[method] = utils.merge(DEFAULT_CONTENT_TYPE);\n});\n\nmodule.exports = defaults;\n","'use strict';\n\nmodule.exports = function bind(fn, thisArg) {\n return function wrap() {\n var args = new Array(arguments.length);\n for (var i = 0; i < args.length; i++) {\n args[i] = arguments[i];\n }\n return fn.apply(thisArg, args);\n };\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\nfunction encode(val) {\n return encodeURIComponent(val).\n replace(/%3A/gi, ':').\n replace(/%24/g, '$').\n replace(/%2C/gi, ',').\n replace(/%20/g, '+').\n replace(/%5B/gi, '[').\n replace(/%5D/gi, ']');\n}\n\n/**\n * Build a URL by appending params to the end\n *\n * @param {string} url The base of the url (e.g., http://www.google.com)\n * @param {object} [params] The params to be appended\n * @returns {string} The formatted url\n */\nmodule.exports = function buildURL(url, params, paramsSerializer) {\n /*eslint no-param-reassign:0*/\n if (!params) {\n return url;\n }\n\n var serializedParams;\n if (paramsSerializer) {\n serializedParams = paramsSerializer(params);\n } else if (utils.isURLSearchParams(params)) {\n serializedParams = params.toString();\n } else {\n var parts = [];\n\n utils.forEach(params, function serialize(val, key) {\n if (val === null || typeof val === 'undefined') {\n return;\n }\n\n if (utils.isArray(val)) {\n key = key + '[]';\n } else {\n val = [val];\n }\n\n utils.forEach(val, function parseValue(v) {\n if (utils.isDate(v)) {\n v = v.toISOString();\n } else if (utils.isObject(v)) {\n v = JSON.stringify(v);\n }\n parts.push(encode(key) + '=' + encode(v));\n });\n });\n\n serializedParams = parts.join('&');\n }\n\n if (serializedParams) {\n var hashmarkIndex = url.indexOf('#');\n if (hashmarkIndex !== -1) {\n url = url.slice(0, hashmarkIndex);\n }\n\n url += (url.indexOf('?') === -1 ? '?' : '&') + serializedParams;\n }\n\n return url;\n};\n","'use strict';\n\n/**\n * Creates a new URL by combining the specified URLs\n *\n * @param {string} baseURL The base URL\n * @param {string} relativeURL The relative URL\n * @returns {string} The combined URL\n */\nmodule.exports = function combineURLs(baseURL, relativeURL) {\n return relativeURL\n ? baseURL.replace(/\\/+$/, '') + '/' + relativeURL.replace(/^\\/+/, '')\n : baseURL;\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\nmodule.exports = (\n utils.isStandardBrowserEnv() ?\n\n // Standard browser envs support document.cookie\n (function standardBrowserEnv() {\n return {\n write: function write(name, value, expires, path, domain, secure) {\n var cookie = [];\n cookie.push(name + '=' + encodeURIComponent(value));\n\n if (utils.isNumber(expires)) {\n cookie.push('expires=' + new Date(expires).toGMTString());\n }\n\n if (utils.isString(path)) {\n cookie.push('path=' + path);\n }\n\n if (utils.isString(domain)) {\n cookie.push('domain=' + domain);\n }\n\n if (secure === true) {\n cookie.push('secure');\n }\n\n document.cookie = cookie.join('; ');\n },\n\n read: function read(name) {\n var match = document.cookie.match(new RegExp('(^|;\\\\s*)(' + name + ')=([^;]*)'));\n return (match ? decodeURIComponent(match[3]) : null);\n },\n\n remove: function remove(name) {\n this.write(name, '', Date.now() - 86400000);\n }\n };\n })() :\n\n // Non standard browser env (web workers, react-native) lack needed support.\n (function nonStandardBrowserEnv() {\n return {\n write: function write() {},\n read: function read() { return null; },\n remove: function remove() {}\n };\n })()\n);\n","'use strict';\n\n/**\n * Determines whether the specified URL is absolute\n *\n * @param {string} url The URL to test\n * @returns {boolean} True if the specified URL is absolute, otherwise false\n */\nmodule.exports = function isAbsoluteURL(url) {\n // A URL is considered absolute if it begins with \"://\" or \"//\" (protocol-relative URL).\n // RFC 3986 defines scheme name as a sequence of characters beginning with a letter and followed\n // by any combination of letters, digits, plus, period, or hyphen.\n return /^([a-z][a-z\\d\\+\\-\\.]*:)?\\/\\//i.test(url);\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\nmodule.exports = (\n utils.isStandardBrowserEnv() ?\n\n // Standard browser envs have full support of the APIs needed to test\n // whether the request URL is of the same origin as current location.\n (function standardBrowserEnv() {\n var msie = /(msie|trident)/i.test(navigator.userAgent);\n var urlParsingNode = document.createElement('a');\n var originURL;\n\n /**\n * Parse a URL to discover it's components\n *\n * @param {String} url The URL to be parsed\n * @returns {Object}\n */\n function resolveURL(url) {\n var href = url;\n\n if (msie) {\n // IE needs attribute set twice to normalize properties\n urlParsingNode.setAttribute('href', href);\n href = urlParsingNode.href;\n }\n\n urlParsingNode.setAttribute('href', href);\n\n // urlParsingNode provides the UrlUtils interface - http://url.spec.whatwg.org/#urlutils\n return {\n href: urlParsingNode.href,\n protocol: urlParsingNode.protocol ? urlParsingNode.protocol.replace(/:$/, '') : '',\n host: urlParsingNode.host,\n search: urlParsingNode.search ? urlParsingNode.search.replace(/^\\?/, '') : '',\n hash: urlParsingNode.hash ? urlParsingNode.hash.replace(/^#/, '') : '',\n hostname: urlParsingNode.hostname,\n port: urlParsingNode.port,\n pathname: (urlParsingNode.pathname.charAt(0) === '/') ?\n urlParsingNode.pathname :\n '/' + urlParsingNode.pathname\n };\n }\n\n originURL = resolveURL(window.location.href);\n\n /**\n * Determine if a URL shares the same origin as the current location\n *\n * @param {String} requestURL The URL to test\n * @returns {boolean} True if URL shares the same origin, otherwise false\n */\n return function isURLSameOrigin(requestURL) {\n var parsed = (utils.isString(requestURL)) ? resolveURL(requestURL) : requestURL;\n return (parsed.protocol === originURL.protocol &&\n parsed.host === originURL.host);\n };\n })() :\n\n // Non standard browser envs (web workers, react-native) lack needed support.\n (function nonStandardBrowserEnv() {\n return function isURLSameOrigin() {\n return true;\n };\n })()\n);\n","'use strict';\n\nvar utils = require('../utils');\n\nmodule.exports = function normalizeHeaderName(headers, normalizedName) {\n utils.forEach(headers, function processHeader(value, name) {\n if (name !== normalizedName && name.toUpperCase() === normalizedName.toUpperCase()) {\n headers[normalizedName] = value;\n delete headers[name];\n }\n });\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\n// Headers whose duplicates are ignored by node\n// c.f. https://nodejs.org/api/http.html#http_message_headers\nvar ignoreDuplicateOf = [\n 'age', 'authorization', 'content-length', 'content-type', 'etag',\n 'expires', 'from', 'host', 'if-modified-since', 'if-unmodified-since',\n 'last-modified', 'location', 'max-forwards', 'proxy-authorization',\n 'referer', 'retry-after', 'user-agent'\n];\n\n/**\n * Parse headers into an object\n *\n * ```\n * Date: Wed, 27 Aug 2014 08:58:49 GMT\n * Content-Type: application/json\n * Connection: keep-alive\n * Transfer-Encoding: chunked\n * ```\n *\n * @param {String} headers Headers needing to be parsed\n * @returns {Object} Headers parsed into an object\n */\nmodule.exports = function parseHeaders(headers) {\n var parsed = {};\n var key;\n var val;\n var i;\n\n if (!headers) { return parsed; }\n\n utils.forEach(headers.split('\\n'), function parser(line) {\n i = line.indexOf(':');\n key = utils.trim(line.substr(0, i)).toLowerCase();\n val = utils.trim(line.substr(i + 1));\n\n if (key) {\n if (parsed[key] && ignoreDuplicateOf.indexOf(key) >= 0) {\n return;\n }\n if (key === 'set-cookie') {\n parsed[key] = (parsed[key] ? parsed[key] : []).concat([val]);\n } else {\n parsed[key] = parsed[key] ? parsed[key] + ', ' + val : val;\n }\n }\n });\n\n return parsed;\n};\n","'use strict';\n\n/**\n * Syntactic sugar for invoking a function and expanding an array for arguments.\n *\n * Common use case would be to use `Function.prototype.apply`.\n *\n * ```js\n * function f(x, y, z) {}\n * var args = [1, 2, 3];\n * f.apply(null, args);\n * ```\n *\n * With `spread` this example can be re-written.\n *\n * ```js\n * spread(function(x, y, z) {})([1, 2, 3]);\n * ```\n *\n * @param {Function} callback\n * @returns {Function}\n */\nmodule.exports = function spread(callback) {\n return function wrap(arr) {\n return callback.apply(null, arr);\n };\n};\n","'use strict';\n\nvar bind = require('./helpers/bind');\n\n/*global toString:true*/\n\n// utils is a library of generic helper functions non-specific to axios\n\nvar toString = Object.prototype.toString;\n\n/**\n * Determine if a value is an Array\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an Array, otherwise false\n */\nfunction isArray(val) {\n return toString.call(val) === '[object Array]';\n}\n\n/**\n * Determine if a value is undefined\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if the value is undefined, otherwise false\n */\nfunction isUndefined(val) {\n return typeof val === 'undefined';\n}\n\n/**\n * Determine if a value is a Buffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Buffer, otherwise false\n */\nfunction isBuffer(val) {\n return val !== null && !isUndefined(val) && val.constructor !== null && !isUndefined(val.constructor)\n && typeof val.constructor.isBuffer === 'function' && val.constructor.isBuffer(val);\n}\n\n/**\n * Determine if a value is an ArrayBuffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an ArrayBuffer, otherwise false\n */\nfunction isArrayBuffer(val) {\n return toString.call(val) === '[object ArrayBuffer]';\n}\n\n/**\n * Determine if a value is a FormData\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an FormData, otherwise false\n */\nfunction isFormData(val) {\n return (typeof FormData !== 'undefined') && (val instanceof FormData);\n}\n\n/**\n * Determine if a value is a view on an ArrayBuffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a view on an ArrayBuffer, otherwise false\n */\nfunction isArrayBufferView(val) {\n var result;\n if ((typeof ArrayBuffer !== 'undefined') && (ArrayBuffer.isView)) {\n result = ArrayBuffer.isView(val);\n } else {\n result = (val) && (val.buffer) && (val.buffer instanceof ArrayBuffer);\n }\n return result;\n}\n\n/**\n * Determine if a value is a String\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a String, otherwise false\n */\nfunction isString(val) {\n return typeof val === 'string';\n}\n\n/**\n * Determine if a value is a Number\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Number, otherwise false\n */\nfunction isNumber(val) {\n return typeof val === 'number';\n}\n\n/**\n * Determine if a value is an Object\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an Object, otherwise false\n */\nfunction isObject(val) {\n return val !== null && typeof val === 'object';\n}\n\n/**\n * Determine if a value is a plain Object\n *\n * @param {Object} val The value to test\n * @return {boolean} True if value is a plain Object, otherwise false\n */\nfunction isPlainObject(val) {\n if (toString.call(val) !== '[object Object]') {\n return false;\n }\n\n var prototype = Object.getPrototypeOf(val);\n return prototype === null || prototype === Object.prototype;\n}\n\n/**\n * Determine if a value is a Date\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Date, otherwise false\n */\nfunction isDate(val) {\n return toString.call(val) === '[object Date]';\n}\n\n/**\n * Determine if a value is a File\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a File, otherwise false\n */\nfunction isFile(val) {\n return toString.call(val) === '[object File]';\n}\n\n/**\n * Determine if a value is a Blob\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Blob, otherwise false\n */\nfunction isBlob(val) {\n return toString.call(val) === '[object Blob]';\n}\n\n/**\n * Determine if a value is a Function\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Function, otherwise false\n */\nfunction isFunction(val) {\n return toString.call(val) === '[object Function]';\n}\n\n/**\n * Determine if a value is a Stream\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Stream, otherwise false\n */\nfunction isStream(val) {\n return isObject(val) && isFunction(val.pipe);\n}\n\n/**\n * Determine if a value is a URLSearchParams object\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a URLSearchParams object, otherwise false\n */\nfunction isURLSearchParams(val) {\n return typeof URLSearchParams !== 'undefined' && val instanceof URLSearchParams;\n}\n\n/**\n * Trim excess whitespace off the beginning and end of a string\n *\n * @param {String} str The String to trim\n * @returns {String} The String freed of excess whitespace\n */\nfunction trim(str) {\n return str.replace(/^\\s*/, '').replace(/\\s*$/, '');\n}\n\n/**\n * Determine if we're running in a standard browser environment\n *\n * This allows axios to run in a web worker, and react-native.\n * Both environments support XMLHttpRequest, but not fully standard globals.\n *\n * web workers:\n * typeof window -> undefined\n * typeof document -> undefined\n *\n * react-native:\n * navigator.product -> 'ReactNative'\n * nativescript\n * navigator.product -> 'NativeScript' or 'NS'\n */\nfunction isStandardBrowserEnv() {\n if (typeof navigator !== 'undefined' && (navigator.product === 'ReactNative' ||\n navigator.product === 'NativeScript' ||\n navigator.product === 'NS')) {\n return false;\n }\n return (\n typeof window !== 'undefined' &&\n typeof document !== 'undefined'\n );\n}\n\n/**\n * Iterate over an Array or an Object invoking a function for each item.\n *\n * If `obj` is an Array callback will be called passing\n * the value, index, and complete array for each item.\n *\n * If 'obj' is an Object callback will be called passing\n * the value, key, and complete object for each property.\n *\n * @param {Object|Array} obj The object to iterate\n * @param {Function} fn The callback to invoke for each item\n */\nfunction forEach(obj, fn) {\n // Don't bother if no value provided\n if (obj === null || typeof obj === 'undefined') {\n return;\n }\n\n // Force an array if not already something iterable\n if (typeof obj !== 'object') {\n /*eslint no-param-reassign:0*/\n obj = [obj];\n }\n\n if (isArray(obj)) {\n // Iterate over array values\n for (var i = 0, l = obj.length; i < l; i++) {\n fn.call(null, obj[i], i, obj);\n }\n } else {\n // Iterate over object keys\n for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n fn.call(null, obj[key], key, obj);\n }\n }\n }\n}\n\n/**\n * Accepts varargs expecting each argument to be an object, then\n * immutably merges the properties of each object and returns result.\n *\n * When multiple objects contain the same key the later object in\n * the arguments list will take precedence.\n *\n * Example:\n *\n * ```js\n * var result = merge({foo: 123}, {foo: 456});\n * console.log(result.foo); // outputs 456\n * ```\n *\n * @param {Object} obj1 Object to merge\n * @returns {Object} Result of all merge properties\n */\nfunction merge(/* obj1, obj2, obj3, ... */) {\n var result = {};\n function assignValue(val, key) {\n if (isPlainObject(result[key]) && isPlainObject(val)) {\n result[key] = merge(result[key], val);\n } else if (isPlainObject(val)) {\n result[key] = merge({}, val);\n } else if (isArray(val)) {\n result[key] = val.slice();\n } else {\n result[key] = val;\n }\n }\n\n for (var i = 0, l = arguments.length; i < l; i++) {\n forEach(arguments[i], assignValue);\n }\n return result;\n}\n\n/**\n * Extends object a by mutably adding to it the properties of object b.\n *\n * @param {Object} a The object to be extended\n * @param {Object} b The object to copy properties from\n * @param {Object} thisArg The object to bind function to\n * @return {Object} The resulting value of object a\n */\nfunction extend(a, b, thisArg) {\n forEach(b, function assignValue(val, key) {\n if (thisArg && typeof val === 'function') {\n a[key] = bind(val, thisArg);\n } else {\n a[key] = val;\n }\n });\n return a;\n}\n\n/**\n * Remove byte order marker. This catches EF BB BF (the UTF-8 BOM)\n *\n * @param {string} content with BOM\n * @return {string} content value without BOM\n */\nfunction stripBOM(content) {\n if (content.charCodeAt(0) === 0xFEFF) {\n content = content.slice(1);\n }\n return content;\n}\n\nmodule.exports = {\n isArray: isArray,\n isArrayBuffer: isArrayBuffer,\n isBuffer: isBuffer,\n isFormData: isFormData,\n isArrayBufferView: isArrayBufferView,\n isString: isString,\n isNumber: isNumber,\n isObject: isObject,\n isPlainObject: isPlainObject,\n isUndefined: isUndefined,\n isDate: isDate,\n isFile: isFile,\n isBlob: isBlob,\n isFunction: isFunction,\n isStream: isStream,\n isURLSearchParams: isURLSearchParams,\n isStandardBrowserEnv: isStandardBrowserEnv,\n forEach: forEach,\n merge: merge,\n extend: extend,\n trim: trim,\n stripBOM: stripBOM\n};\n","void (function (root, factory) {\n if (typeof define === 'function' && define.amd) define(factory)\n else if (typeof exports === 'object') module.exports = factory()\n else factory()\n}(this, function () {\n var DETAILS = 'details'\n var SUMMARY = 'summary'\n\n var supported = checkSupport()\n if (supported) return\n\n // Add a classname\n document.documentElement.className += ' no-details'\n\n window.addEventListener('click', clickHandler)\n\n injectStyle('details-polyfill-style',\n 'html.no-details ' + DETAILS + ':not([open]) > :not(' + SUMMARY + ') { display: none; }\\n' +\n 'html.no-details ' + DETAILS + ' > ' + SUMMARY + ':before { content: \"\\u25b6\"; display: inline-block; font-size: .8em; width: 1.5em; }\\n' +\n 'html.no-details ' + DETAILS + '[open] > ' + SUMMARY + ':before { content: \"\\u25bc\"; }')\n\n /*\n * Click handler for `` tags\n */\n\n function clickHandler (e) {\n if (e.target.nodeName.toLowerCase() === 'summary') {\n var details = e.target.parentNode\n if (!details) return\n\n if (details.getAttribute('open')) {\n details.open = false\n details.removeAttribute('open')\n } else {\n details.open = true\n details.setAttribute('open', 'open')\n }\n }\n }\n\n /*\n * Checks for support for `
`\n */\n\n function checkSupport () {\n var el = document.createElement(DETAILS)\n if (!('open' in el)) return false\n\n el.innerHTML = '<' + SUMMARY + '>ab'\n document.body.appendChild(el)\n\n var diff = el.offsetHeight\n el.open = true\n var result = (diff != el.offsetHeight)\n\n document.body.removeChild(el)\n return result\n }\n\n /*\n * Injects styles (idempotent)\n */\n\n function injectStyle (id, style) {\n if (document.getElementById(id)) return\n\n var el = document.createElement('style')\n el.id = id\n el.innerHTML = style\n\n document.getElementsByTagName('head')[0].appendChild(el)\n }\n})); // eslint-disable-line semi\n","(function(window, factory) {\n\tvar lazySizes = factory(window, window.document, Date);\n\twindow.lazySizes = lazySizes;\n\tif(typeof module == 'object' && module.exports){\n\t\tmodule.exports = lazySizes;\n\t}\n}(typeof window != 'undefined' ?\n window : {}, function l(window, document, Date) { // Pass in the windoe Date function also for SSR because the Date class can be lost\n\t'use strict';\n\t/*jshint eqnull:true */\n\n\tvar lazysizes, lazySizesCfg;\n\n\t(function(){\n\t\tvar prop;\n\n\t\tvar lazySizesDefaults = {\n\t\t\tlazyClass: 'lazyload',\n\t\t\tloadedClass: 'lazyloaded',\n\t\t\tloadingClass: 'lazyloading',\n\t\t\tpreloadClass: 'lazypreload',\n\t\t\terrorClass: 'lazyerror',\n\t\t\t//strictClass: 'lazystrict',\n\t\t\tautosizesClass: 'lazyautosizes',\n\t\t\tsrcAttr: 'data-src',\n\t\t\tsrcsetAttr: 'data-srcset',\n\t\t\tsizesAttr: 'data-sizes',\n\t\t\t//preloadAfterLoad: false,\n\t\t\tminSize: 40,\n\t\t\tcustomMedia: {},\n\t\t\tinit: true,\n\t\t\texpFactor: 1.5,\n\t\t\thFac: 0.8,\n\t\t\tloadMode: 2,\n\t\t\tloadHidden: true,\n\t\t\tricTimeout: 0,\n\t\t\tthrottleDelay: 125,\n\t\t};\n\n\t\tlazySizesCfg = window.lazySizesConfig || window.lazysizesConfig || {};\n\n\t\tfor(prop in lazySizesDefaults){\n\t\t\tif(!(prop in lazySizesCfg)){\n\t\t\t\tlazySizesCfg[prop] = lazySizesDefaults[prop];\n\t\t\t}\n\t\t}\n\t})();\n\n\tif (!document || !document.getElementsByClassName) {\n\t\treturn {\n\t\t\tinit: function () {},\n\t\t\tcfg: lazySizesCfg,\n\t\t\tnoSupport: true,\n\t\t};\n\t}\n\n\tvar docElem = document.documentElement;\n\n\tvar supportPicture = window.HTMLPictureElement;\n\n\tvar _addEventListener = 'addEventListener';\n\n\tvar _getAttribute = 'getAttribute';\n\n\t/**\n\t * Update to bind to window because 'this' becomes null during SSR\n\t * builds.\n\t */\n\tvar addEventListener = window[_addEventListener].bind(window);\n\n\tvar setTimeout = window.setTimeout;\n\n\tvar requestAnimationFrame = window.requestAnimationFrame || setTimeout;\n\n\tvar requestIdleCallback = window.requestIdleCallback;\n\n\tvar regPicture = /^picture$/i;\n\n\tvar loadEvents = ['load', 'error', 'lazyincluded', '_lazyloaded'];\n\n\tvar regClassCache = {};\n\n\tvar forEach = Array.prototype.forEach;\n\n\tvar hasClass = function(ele, cls) {\n\t\tif(!regClassCache[cls]){\n\t\t\tregClassCache[cls] = new RegExp('(\\\\s|^)'+cls+'(\\\\s|$)');\n\t\t}\n\t\treturn regClassCache[cls].test(ele[_getAttribute]('class') || '') && regClassCache[cls];\n\t};\n\n\tvar addClass = function(ele, cls) {\n\t\tif (!hasClass(ele, cls)){\n\t\t\tele.setAttribute('class', (ele[_getAttribute]('class') || '').trim() + ' ' + cls);\n\t\t}\n\t};\n\n\tvar removeClass = function(ele, cls) {\n\t\tvar reg;\n\t\tif ((reg = hasClass(ele,cls))) {\n\t\t\tele.setAttribute('class', (ele[_getAttribute]('class') || '').replace(reg, ' '));\n\t\t}\n\t};\n\n\tvar addRemoveLoadEvents = function(dom, fn, add){\n\t\tvar action = add ? _addEventListener : 'removeEventListener';\n\t\tif(add){\n\t\t\taddRemoveLoadEvents(dom, fn);\n\t\t}\n\t\tloadEvents.forEach(function(evt){\n\t\t\tdom[action](evt, fn);\n\t\t});\n\t};\n\n\tvar triggerEvent = function(elem, name, detail, noBubbles, noCancelable){\n\t\tvar event = document.createEvent('Event');\n\n\t\tif(!detail){\n\t\t\tdetail = {};\n\t\t}\n\n\t\tdetail.instance = lazysizes;\n\n\t\tevent.initEvent(name, !noBubbles, !noCancelable);\n\n\t\tevent.detail = detail;\n\n\t\telem.dispatchEvent(event);\n\t\treturn event;\n\t};\n\n\tvar updatePolyfill = function (el, full){\n\t\tvar polyfill;\n\t\tif( !supportPicture && ( polyfill = (window.picturefill || lazySizesCfg.pf) ) ){\n\t\t\tif(full && full.src && !el[_getAttribute]('srcset')){\n\t\t\t\tel.setAttribute('srcset', full.src);\n\t\t\t}\n\t\t\tpolyfill({reevaluate: true, elements: [el]});\n\t\t} else if(full && full.src){\n\t\t\tel.src = full.src;\n\t\t}\n\t};\n\n\tvar getCSS = function (elem, style){\n\t\treturn (getComputedStyle(elem, null) || {})[style];\n\t};\n\n\tvar getWidth = function(elem, parent, width){\n\t\twidth = width || elem.offsetWidth;\n\n\t\twhile(width < lazySizesCfg.minSize && parent && !elem._lazysizesWidth){\n\t\t\twidth = parent.offsetWidth;\n\t\t\tparent = parent.parentNode;\n\t\t}\n\n\t\treturn width;\n\t};\n\n\tvar rAF = (function(){\n\t\tvar running, waiting;\n\t\tvar firstFns = [];\n\t\tvar secondFns = [];\n\t\tvar fns = firstFns;\n\n\t\tvar run = function(){\n\t\t\tvar runFns = fns;\n\n\t\t\tfns = firstFns.length ? secondFns : firstFns;\n\n\t\t\trunning = true;\n\t\t\twaiting = false;\n\n\t\t\twhile(runFns.length){\n\t\t\t\trunFns.shift()();\n\t\t\t}\n\n\t\t\trunning = false;\n\t\t};\n\n\t\tvar rafBatch = function(fn, queue){\n\t\t\tif(running && !queue){\n\t\t\t\tfn.apply(this, arguments);\n\t\t\t} else {\n\t\t\t\tfns.push(fn);\n\n\t\t\t\tif(!waiting){\n\t\t\t\t\twaiting = true;\n\t\t\t\t\t(document.hidden ? setTimeout : requestAnimationFrame)(run);\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\n\t\trafBatch._lsFlush = run;\n\n\t\treturn rafBatch;\n\t})();\n\n\tvar rAFIt = function(fn, simple){\n\t\treturn simple ?\n\t\t\tfunction() {\n\t\t\t\trAF(fn);\n\t\t\t} :\n\t\t\tfunction(){\n\t\t\t\tvar that = this;\n\t\t\t\tvar args = arguments;\n\t\t\t\trAF(function(){\n\t\t\t\t\tfn.apply(that, args);\n\t\t\t\t});\n\t\t\t}\n\t\t;\n\t};\n\n\tvar throttle = function(fn){\n\t\tvar running;\n\t\tvar lastTime = 0;\n\t\tvar gDelay = lazySizesCfg.throttleDelay;\n\t\tvar rICTimeout = lazySizesCfg.ricTimeout;\n\t\tvar run = function(){\n\t\t\trunning = false;\n\t\t\tlastTime = Date.now();\n\t\t\tfn();\n\t\t};\n\t\tvar idleCallback = requestIdleCallback && rICTimeout > 49 ?\n\t\t\tfunction(){\n\t\t\t\trequestIdleCallback(run, {timeout: rICTimeout});\n\n\t\t\t\tif(rICTimeout !== lazySizesCfg.ricTimeout){\n\t\t\t\t\trICTimeout = lazySizesCfg.ricTimeout;\n\t\t\t\t}\n\t\t\t} :\n\t\t\trAFIt(function(){\n\t\t\t\tsetTimeout(run);\n\t\t\t}, true)\n\t\t;\n\n\t\treturn function(isPriority){\n\t\t\tvar delay;\n\n\t\t\tif((isPriority = isPriority === true)){\n\t\t\t\trICTimeout = 33;\n\t\t\t}\n\n\t\t\tif(running){\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\trunning = true;\n\n\t\t\tdelay = gDelay - (Date.now() - lastTime);\n\n\t\t\tif(delay < 0){\n\t\t\t\tdelay = 0;\n\t\t\t}\n\n\t\t\tif(isPriority || delay < 9){\n\t\t\t\tidleCallback();\n\t\t\t} else {\n\t\t\t\tsetTimeout(idleCallback, delay);\n\t\t\t}\n\t\t};\n\t};\n\n\t//based on http://modernjavascript.blogspot.de/2013/08/building-better-debounce.html\n\tvar debounce = function(func) {\n\t\tvar timeout, timestamp;\n\t\tvar wait = 99;\n\t\tvar run = function(){\n\t\t\ttimeout = null;\n\t\t\tfunc();\n\t\t};\n\t\tvar later = function() {\n\t\t\tvar last = Date.now() - timestamp;\n\n\t\t\tif (last < wait) {\n\t\t\t\tsetTimeout(later, wait - last);\n\t\t\t} else {\n\t\t\t\t(requestIdleCallback || run)(run);\n\t\t\t}\n\t\t};\n\n\t\treturn function() {\n\t\t\ttimestamp = Date.now();\n\n\t\t\tif (!timeout) {\n\t\t\t\ttimeout = setTimeout(later, wait);\n\t\t\t}\n\t\t};\n\t};\n\n\tvar loader = (function(){\n\t\tvar preloadElems, isCompleted, resetPreloadingTimer, loadMode, started;\n\n\t\tvar eLvW, elvH, eLtop, eLleft, eLright, eLbottom, isBodyHidden;\n\n\t\tvar regImg = /^img$/i;\n\t\tvar regIframe = /^iframe$/i;\n\n\t\tvar supportScroll = ('onscroll' in window) && !(/(gle|ing)bot/.test(navigator.userAgent));\n\n\t\tvar shrinkExpand = 0;\n\t\tvar currentExpand = 0;\n\n\t\tvar isLoading = 0;\n\t\tvar lowRuns = -1;\n\n\t\tvar resetPreloading = function(e){\n\t\t\tisLoading--;\n\t\t\tif(!e || isLoading < 0 || !e.target){\n\t\t\t\tisLoading = 0;\n\t\t\t}\n\t\t};\n\n\t\tvar isVisible = function (elem) {\n\t\t\tif (isBodyHidden == null) {\n\t\t\t\tisBodyHidden = getCSS(document.body, 'visibility') == 'hidden';\n\t\t\t}\n\n\t\t\treturn isBodyHidden || !(getCSS(elem.parentNode, 'visibility') == 'hidden' && getCSS(elem, 'visibility') == 'hidden');\n\t\t};\n\n\t\tvar isNestedVisible = function(elem, elemExpand){\n\t\t\tvar outerRect;\n\t\t\tvar parent = elem;\n\t\t\tvar visible = isVisible(elem);\n\n\t\t\teLtop -= elemExpand;\n\t\t\teLbottom += elemExpand;\n\t\t\teLleft -= elemExpand;\n\t\t\teLright += elemExpand;\n\n\t\t\twhile(visible && (parent = parent.offsetParent) && parent != document.body && parent != docElem){\n\t\t\t\tvisible = ((getCSS(parent, 'opacity') || 1) > 0);\n\n\t\t\t\tif(visible && getCSS(parent, 'overflow') != 'visible'){\n\t\t\t\t\touterRect = parent.getBoundingClientRect();\n\t\t\t\t\tvisible = eLright > outerRect.left &&\n\t\t\t\t\t\teLleft < outerRect.right &&\n\t\t\t\t\t\teLbottom > outerRect.top - 1 &&\n\t\t\t\t\t\teLtop < outerRect.bottom + 1\n\t\t\t\t\t;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn visible;\n\t\t};\n\n\t\tvar checkElements = function() {\n\t\t\tvar eLlen, i, rect, autoLoadElem, loadedSomething, elemExpand, elemNegativeExpand, elemExpandVal,\n\t\t\t\tbeforeExpandVal, defaultExpand, preloadExpand, hFac;\n\t\t\tvar lazyloadElems = lazysizes.elements;\n\n\t\t\tif((loadMode = lazySizesCfg.loadMode) && isLoading < 8 && (eLlen = lazyloadElems.length)){\n\n\t\t\t\ti = 0;\n\n\t\t\t\tlowRuns++;\n\n\t\t\t\tfor(; i < eLlen; i++){\n\n\t\t\t\t\tif(!lazyloadElems[i] || lazyloadElems[i]._lazyRace){continue;}\n\n\t\t\t\t\tif(!supportScroll || (lazysizes.prematureUnveil && lazysizes.prematureUnveil(lazyloadElems[i]))){unveilElement(lazyloadElems[i]);continue;}\n\n\t\t\t\t\tif(!(elemExpandVal = lazyloadElems[i][_getAttribute]('data-expand')) || !(elemExpand = elemExpandVal * 1)){\n\t\t\t\t\t\telemExpand = currentExpand;\n\t\t\t\t\t}\n\n\t\t\t\t\tif (!defaultExpand) {\n\t\t\t\t\t\tdefaultExpand = (!lazySizesCfg.expand || lazySizesCfg.expand < 1) ?\n\t\t\t\t\t\t\tdocElem.clientHeight > 500 && docElem.clientWidth > 500 ? 500 : 370 :\n\t\t\t\t\t\t\tlazySizesCfg.expand;\n\n\t\t\t\t\t\tlazysizes._defEx = defaultExpand;\n\n\t\t\t\t\t\tpreloadExpand = defaultExpand * lazySizesCfg.expFactor;\n\t\t\t\t\t\thFac = lazySizesCfg.hFac;\n\t\t\t\t\t\tisBodyHidden = null;\n\n\t\t\t\t\t\tif(currentExpand < preloadExpand && isLoading < 1 && lowRuns > 2 && loadMode > 2 && !document.hidden){\n\t\t\t\t\t\t\tcurrentExpand = preloadExpand;\n\t\t\t\t\t\t\tlowRuns = 0;\n\t\t\t\t\t\t} else if(loadMode > 1 && lowRuns > 1 && isLoading < 6){\n\t\t\t\t\t\t\tcurrentExpand = defaultExpand;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tcurrentExpand = shrinkExpand;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tif(beforeExpandVal !== elemExpand){\n\t\t\t\t\t\teLvW = innerWidth + (elemExpand * hFac);\n\t\t\t\t\t\telvH = innerHeight + elemExpand;\n\t\t\t\t\t\telemNegativeExpand = elemExpand * -1;\n\t\t\t\t\t\tbeforeExpandVal = elemExpand;\n\t\t\t\t\t}\n\n\t\t\t\t\trect = lazyloadElems[i].getBoundingClientRect();\n\n\t\t\t\t\tif ((eLbottom = rect.bottom) >= elemNegativeExpand &&\n\t\t\t\t\t\t(eLtop = rect.top) <= elvH &&\n\t\t\t\t\t\t(eLright = rect.right) >= elemNegativeExpand * hFac &&\n\t\t\t\t\t\t(eLleft = rect.left) <= eLvW &&\n\t\t\t\t\t\t(eLbottom || eLright || eLleft || eLtop) &&\n\t\t\t\t\t\t(lazySizesCfg.loadHidden || isVisible(lazyloadElems[i])) &&\n\t\t\t\t\t\t((isCompleted && isLoading < 3 && !elemExpandVal && (loadMode < 3 || lowRuns < 4)) || isNestedVisible(lazyloadElems[i], elemExpand))){\n\t\t\t\t\t\tunveilElement(lazyloadElems[i]);\n\t\t\t\t\t\tloadedSomething = true;\n\t\t\t\t\t\tif(isLoading > 9){break;}\n\t\t\t\t\t} else if(!loadedSomething && isCompleted && !autoLoadElem &&\n\t\t\t\t\t\tisLoading < 4 && lowRuns < 4 && loadMode > 2 &&\n\t\t\t\t\t\t(preloadElems[0] || lazySizesCfg.preloadAfterLoad) &&\n\t\t\t\t\t\t(preloadElems[0] || (!elemExpandVal && ((eLbottom || eLright || eLleft || eLtop) || lazyloadElems[i][_getAttribute](lazySizesCfg.sizesAttr) != 'auto')))){\n\t\t\t\t\t\tautoLoadElem = preloadElems[0] || lazyloadElems[i];\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tif(autoLoadElem && !loadedSomething){\n\t\t\t\t\tunveilElement(autoLoadElem);\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\n\t\tvar throttledCheckElements = throttle(checkElements);\n\n\t\tvar switchLoadingClass = function(e){\n\t\t\tvar elem = e.target;\n\n\t\t\tif (elem._lazyCache) {\n\t\t\t\tdelete elem._lazyCache;\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tresetPreloading(e);\n\t\t\taddClass(elem, lazySizesCfg.loadedClass);\n\t\t\tremoveClass(elem, lazySizesCfg.loadingClass);\n\t\t\taddRemoveLoadEvents(elem, rafSwitchLoadingClass);\n\t\t\ttriggerEvent(elem, 'lazyloaded');\n\t\t};\n\t\tvar rafedSwitchLoadingClass = rAFIt(switchLoadingClass);\n\t\tvar rafSwitchLoadingClass = function(e){\n\t\t\trafedSwitchLoadingClass({target: e.target});\n\t\t};\n\n\t\tvar changeIframeSrc = function(elem, src){\n\t\t\ttry {\n\t\t\t\telem.contentWindow.location.replace(src);\n\t\t\t} catch(e){\n\t\t\t\telem.src = src;\n\t\t\t}\n\t\t};\n\n\t\tvar handleSources = function(source){\n\t\t\tvar customMedia;\n\n\t\t\tvar sourceSrcset = source[_getAttribute](lazySizesCfg.srcsetAttr);\n\n\t\t\tif( (customMedia = lazySizesCfg.customMedia[source[_getAttribute]('data-media') || source[_getAttribute]('media')]) ){\n\t\t\t\tsource.setAttribute('media', customMedia);\n\t\t\t}\n\n\t\t\tif(sourceSrcset){\n\t\t\t\tsource.setAttribute('srcset', sourceSrcset);\n\t\t\t}\n\t\t};\n\n\t\tvar lazyUnveil = rAFIt(function (elem, detail, isAuto, sizes, isImg){\n\t\t\tvar src, srcset, parent, isPicture, event, firesLoad;\n\n\t\t\tif(!(event = triggerEvent(elem, 'lazybeforeunveil', detail)).defaultPrevented){\n\n\t\t\t\tif(sizes){\n\t\t\t\t\tif(isAuto){\n\t\t\t\t\t\taddClass(elem, lazySizesCfg.autosizesClass);\n\t\t\t\t\t} else {\n\t\t\t\t\t\telem.setAttribute('sizes', sizes);\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tsrcset = elem[_getAttribute](lazySizesCfg.srcsetAttr);\n\t\t\t\tsrc = elem[_getAttribute](lazySizesCfg.srcAttr);\n\n\t\t\t\tif(isImg) {\n\t\t\t\t\tparent = elem.parentNode;\n\t\t\t\t\tisPicture = parent && regPicture.test(parent.nodeName || '');\n\t\t\t\t}\n\n\t\t\t\tfiresLoad = detail.firesLoad || (('src' in elem) && (srcset || src || isPicture));\n\n\t\t\t\tevent = {target: elem};\n\n\t\t\t\taddClass(elem, lazySizesCfg.loadingClass);\n\n\t\t\t\tif(firesLoad){\n\t\t\t\t\tclearTimeout(resetPreloadingTimer);\n\t\t\t\t\tresetPreloadingTimer = setTimeout(resetPreloading, 2500);\n\t\t\t\t\taddRemoveLoadEvents(elem, rafSwitchLoadingClass, true);\n\t\t\t\t}\n\n\t\t\t\tif(isPicture){\n\t\t\t\t\tforEach.call(parent.getElementsByTagName('source'), handleSources);\n\t\t\t\t}\n\n\t\t\t\tif(srcset){\n\t\t\t\t\telem.setAttribute('srcset', srcset);\n\t\t\t\t} else if(src && !isPicture){\n\t\t\t\t\tif(regIframe.test(elem.nodeName)){\n\t\t\t\t\t\tchangeIframeSrc(elem, src);\n\t\t\t\t\t} else {\n\t\t\t\t\t\telem.src = src;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tif(isImg && (srcset || isPicture)){\n\t\t\t\t\tupdatePolyfill(elem, {src: src});\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif(elem._lazyRace){\n\t\t\t\tdelete elem._lazyRace;\n\t\t\t}\n\t\t\tremoveClass(elem, lazySizesCfg.lazyClass);\n\n\t\t\trAF(function(){\n\t\t\t\t// Part of this can be removed as soon as this fix is older: https://bugs.chromium.org/p/chromium/issues/detail?id=7731 (2015)\n\t\t\t\tvar isLoaded = elem.complete && elem.naturalWidth > 1;\n\n\t\t\t\tif( !firesLoad || isLoaded){\n\t\t\t\t\tif (isLoaded) {\n\t\t\t\t\t\taddClass(elem, 'ls-is-cached');\n\t\t\t\t\t}\n\t\t\t\t\tswitchLoadingClass(event);\n\t\t\t\t\telem._lazyCache = true;\n\t\t\t\t\tsetTimeout(function(){\n\t\t\t\t\t\tif ('_lazyCache' in elem) {\n\t\t\t\t\t\t\tdelete elem._lazyCache;\n\t\t\t\t\t\t}\n\t\t\t\t\t}, 9);\n\t\t\t\t}\n\t\t\t\tif (elem.loading == 'lazy') {\n\t\t\t\t\tisLoading--;\n\t\t\t\t}\n\t\t\t}, true);\n\t\t});\n\n\t\tvar unveilElement = function (elem){\n\t\t\tif (elem._lazyRace) {return;}\n\t\t\tvar detail;\n\n\t\t\tvar isImg = regImg.test(elem.nodeName);\n\n\t\t\t//allow using sizes=\"auto\", but don't use. it's invalid. Use data-sizes=\"auto\" or a valid value for sizes instead (i.e.: sizes=\"80vw\")\n\t\t\tvar sizes = isImg && (elem[_getAttribute](lazySizesCfg.sizesAttr) || elem[_getAttribute]('sizes'));\n\t\t\tvar isAuto = sizes == 'auto';\n\n\t\t\tif( (isAuto || !isCompleted) && isImg && (elem[_getAttribute]('src') || elem.srcset) && !elem.complete && !hasClass(elem, lazySizesCfg.errorClass) && hasClass(elem, lazySizesCfg.lazyClass)){return;}\n\n\t\t\tdetail = triggerEvent(elem, 'lazyunveilread').detail;\n\n\t\t\tif(isAuto){\n\t\t\t\t autoSizer.updateElem(elem, true, elem.offsetWidth);\n\t\t\t}\n\n\t\t\telem._lazyRace = true;\n\t\t\tisLoading++;\n\n\t\t\tlazyUnveil(elem, detail, isAuto, sizes, isImg);\n\t\t};\n\n\t\tvar afterScroll = debounce(function(){\n\t\t\tlazySizesCfg.loadMode = 3;\n\t\t\tthrottledCheckElements();\n\t\t});\n\n\t\tvar altLoadmodeScrollListner = function(){\n\t\t\tif(lazySizesCfg.loadMode == 3){\n\t\t\t\tlazySizesCfg.loadMode = 2;\n\t\t\t}\n\t\t\tafterScroll();\n\t\t};\n\n\t\tvar onload = function(){\n\t\t\tif(isCompleted){return;}\n\t\t\tif(Date.now() - started < 999){\n\t\t\t\tsetTimeout(onload, 999);\n\t\t\t\treturn;\n\t\t\t}\n\n\n\t\t\tisCompleted = true;\n\n\t\t\tlazySizesCfg.loadMode = 3;\n\n\t\t\tthrottledCheckElements();\n\n\t\t\taddEventListener('scroll', altLoadmodeScrollListner, true);\n\t\t};\n\n\t\treturn {\n\t\t\t_: function(){\n\t\t\t\tstarted = Date.now();\n\n\t\t\t\tlazysizes.elements = document.getElementsByClassName(lazySizesCfg.lazyClass);\n\t\t\t\tpreloadElems = document.getElementsByClassName(lazySizesCfg.lazyClass + ' ' + lazySizesCfg.preloadClass);\n\n\t\t\t\taddEventListener('scroll', throttledCheckElements, true);\n\n\t\t\t\taddEventListener('resize', throttledCheckElements, true);\n\n\t\t\t\taddEventListener('pageshow', function (e) {\n\t\t\t\t\tif (e.persisted) {\n\t\t\t\t\t\tvar loadingElements = document.querySelectorAll('.' + lazySizesCfg.loadingClass);\n\n\t\t\t\t\t\tif (loadingElements.length && loadingElements.forEach) {\n\t\t\t\t\t\t\trequestAnimationFrame(function () {\n\t\t\t\t\t\t\t\tloadingElements.forEach( function (img) {\n\t\t\t\t\t\t\t\t\tif (img.complete) {\n\t\t\t\t\t\t\t\t\t\tunveilElement(img);\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t});\n\n\t\t\t\tif(window.MutationObserver){\n\t\t\t\t\tnew MutationObserver( throttledCheckElements ).observe( docElem, {childList: true, subtree: true, attributes: true} );\n\t\t\t\t} else {\n\t\t\t\t\tdocElem[_addEventListener]('DOMNodeInserted', throttledCheckElements, true);\n\t\t\t\t\tdocElem[_addEventListener]('DOMAttrModified', throttledCheckElements, true);\n\t\t\t\t\tsetInterval(throttledCheckElements, 999);\n\t\t\t\t}\n\n\t\t\t\taddEventListener('hashchange', throttledCheckElements, true);\n\n\t\t\t\t//, 'fullscreenchange'\n\t\t\t\t['focus', 'mouseover', 'click', 'load', 'transitionend', 'animationend'].forEach(function(name){\n\t\t\t\t\tdocument[_addEventListener](name, throttledCheckElements, true);\n\t\t\t\t});\n\n\t\t\t\tif((/d$|^c/.test(document.readyState))){\n\t\t\t\t\tonload();\n\t\t\t\t} else {\n\t\t\t\t\taddEventListener('load', onload);\n\t\t\t\t\tdocument[_addEventListener]('DOMContentLoaded', throttledCheckElements);\n\t\t\t\t\tsetTimeout(onload, 20000);\n\t\t\t\t}\n\n\t\t\t\tif(lazysizes.elements.length){\n\t\t\t\t\tcheckElements();\n\t\t\t\t\trAF._lsFlush();\n\t\t\t\t} else {\n\t\t\t\t\tthrottledCheckElements();\n\t\t\t\t}\n\t\t\t},\n\t\t\tcheckElems: throttledCheckElements,\n\t\t\tunveil: unveilElement,\n\t\t\t_aLSL: altLoadmodeScrollListner,\n\t\t};\n\t})();\n\n\n\tvar autoSizer = (function(){\n\t\tvar autosizesElems;\n\n\t\tvar sizeElement = rAFIt(function(elem, parent, event, width){\n\t\t\tvar sources, i, len;\n\t\t\telem._lazysizesWidth = width;\n\t\t\twidth += 'px';\n\n\t\t\telem.setAttribute('sizes', width);\n\n\t\t\tif(regPicture.test(parent.nodeName || '')){\n\t\t\t\tsources = parent.getElementsByTagName('source');\n\t\t\t\tfor(i = 0, len = sources.length; i < len; i++){\n\t\t\t\t\tsources[i].setAttribute('sizes', width);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif(!event.detail.dataAttr){\n\t\t\t\tupdatePolyfill(elem, event.detail);\n\t\t\t}\n\t\t});\n\t\tvar getSizeElement = function (elem, dataAttr, width){\n\t\t\tvar event;\n\t\t\tvar parent = elem.parentNode;\n\n\t\t\tif(parent){\n\t\t\t\twidth = getWidth(elem, parent, width);\n\t\t\t\tevent = triggerEvent(elem, 'lazybeforesizes', {width: width, dataAttr: !!dataAttr});\n\n\t\t\t\tif(!event.defaultPrevented){\n\t\t\t\t\twidth = event.detail.width;\n\n\t\t\t\t\tif(width && width !== elem._lazysizesWidth){\n\t\t\t\t\t\tsizeElement(elem, parent, event, width);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\n\t\tvar updateElementsSizes = function(){\n\t\t\tvar i;\n\t\t\tvar len = autosizesElems.length;\n\t\t\tif(len){\n\t\t\t\ti = 0;\n\n\t\t\t\tfor(; i < len; i++){\n\t\t\t\t\tgetSizeElement(autosizesElems[i]);\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\n\t\tvar debouncedUpdateElementsSizes = debounce(updateElementsSizes);\n\n\t\treturn {\n\t\t\t_: function(){\n\t\t\t\tautosizesElems = document.getElementsByClassName(lazySizesCfg.autosizesClass);\n\t\t\t\taddEventListener('resize', debouncedUpdateElementsSizes);\n\t\t\t},\n\t\t\tcheckElems: debouncedUpdateElementsSizes,\n\t\t\tupdateElem: getSizeElement\n\t\t};\n\t})();\n\n\tvar init = function(){\n\t\tif(!init.i && document.getElementsByClassName){\n\t\t\tinit.i = true;\n\t\t\tautoSizer._();\n\t\t\tloader._();\n\t\t}\n\t};\n\n\tsetTimeout(function(){\n\t\tif(lazySizesCfg.init){\n\t\t\tinit();\n\t\t}\n\t});\n\n\tlazysizes = {\n\t\tcfg: lazySizesCfg,\n\t\tautoSizer: autoSizer,\n\t\tloader: loader,\n\t\tinit: init,\n\t\tuP: updatePolyfill,\n\t\taC: addClass,\n\t\trC: removeClass,\n\t\thC: hasClass,\n\t\tfire: triggerEvent,\n\t\tgW: getWidth,\n\t\trAF: rAF,\n\t};\n\n\treturn lazysizes;\n}\n));\n","/*! npm.im/object-fit-images 3.2.4 */\n'use strict';\n\nvar OFI = 'bfred-it:object-fit-images';\nvar propRegex = /(object-fit|object-position)\\s*:\\s*([-.\\w\\s%]+)/g;\nvar testImg = typeof Image === 'undefined' ? {style: {'object-position': 1}} : new Image();\nvar supportsObjectFit = 'object-fit' in testImg.style;\nvar supportsObjectPosition = 'object-position' in testImg.style;\nvar supportsOFI = 'background-size' in testImg.style;\nvar supportsCurrentSrc = typeof testImg.currentSrc === 'string';\nvar nativeGetAttribute = testImg.getAttribute;\nvar nativeSetAttribute = testImg.setAttribute;\nvar autoModeEnabled = false;\n\nfunction createPlaceholder(w, h) {\n\treturn (\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='\" + w + \"' height='\" + h + \"'%3E%3C/svg%3E\");\n}\n\nfunction polyfillCurrentSrc(el) {\n\tif (el.srcset && !supportsCurrentSrc && window.picturefill) {\n\t\tvar pf = window.picturefill._;\n\t\t// parse srcset with picturefill where currentSrc isn't available\n\t\tif (!el[pf.ns] || !el[pf.ns].evaled) {\n\t\t\t// force synchronous srcset parsing\n\t\t\tpf.fillImg(el, {reselect: true});\n\t\t}\n\n\t\tif (!el[pf.ns].curSrc) {\n\t\t\t// force picturefill to parse srcset\n\t\t\tel[pf.ns].supported = false;\n\t\t\tpf.fillImg(el, {reselect: true});\n\t\t}\n\n\t\t// retrieve parsed currentSrc, if any\n\t\tel.currentSrc = el[pf.ns].curSrc || el.src;\n\t}\n}\n\nfunction getStyle(el) {\n\tvar style = getComputedStyle(el).fontFamily;\n\tvar parsed;\n\tvar props = {};\n\twhile ((parsed = propRegex.exec(style)) !== null) {\n\t\tprops[parsed[1]] = parsed[2];\n\t}\n\treturn props;\n}\n\nfunction setPlaceholder(img, width, height) {\n\t// Default: fill width, no height\n\tvar placeholder = createPlaceholder(width || 1, height || 0);\n\n\t// Only set placeholder if it's different\n\tif (nativeGetAttribute.call(img, 'src') !== placeholder) {\n\t\tnativeSetAttribute.call(img, 'src', placeholder);\n\t}\n}\n\nfunction onImageReady(img, callback) {\n\t// naturalWidth is only available when the image headers are loaded,\n\t// this loop will poll it every 100ms.\n\tif (img.naturalWidth) {\n\t\tcallback(img);\n\t} else {\n\t\tsetTimeout(onImageReady, 100, img, callback);\n\t}\n}\n\nfunction fixOne(el) {\n\tvar style = getStyle(el);\n\tvar ofi = el[OFI];\n\tstyle['object-fit'] = style['object-fit'] || 'fill'; // default value\n\n\t// Avoid running where unnecessary, unless OFI had already done its deed\n\tif (!ofi.img) {\n\t\t// fill is the default behavior so no action is necessary\n\t\tif (style['object-fit'] === 'fill') {\n\t\t\treturn;\n\t\t}\n\n\t\t// Where object-fit is supported and object-position isn't (Safari < 10)\n\t\tif (\n\t\t\t!ofi.skipTest && // unless user wants to apply regardless of browser support\n\t\t\tsupportsObjectFit && // if browser already supports object-fit\n\t\t\t!style['object-position'] // unless object-position is used\n\t\t) {\n\t\t\treturn;\n\t\t}\n\t}\n\n\t// keep a clone in memory while resetting the original to a blank\n\tif (!ofi.img) {\n\t\tofi.img = new Image(el.width, el.height);\n\t\tofi.img.srcset = nativeGetAttribute.call(el, \"data-ofi-srcset\") || el.srcset;\n\t\tofi.img.src = nativeGetAttribute.call(el, \"data-ofi-src\") || el.src;\n\n\t\t// preserve for any future cloneNode calls\n\t\t// https://github.com/bfred-it/object-fit-images/issues/53\n\t\tnativeSetAttribute.call(el, \"data-ofi-src\", el.src);\n\t\tif (el.srcset) {\n\t\t\tnativeSetAttribute.call(el, \"data-ofi-srcset\", el.srcset);\n\t\t}\n\n\t\tsetPlaceholder(el, el.naturalWidth || el.width, el.naturalHeight || el.height);\n\n\t\t// remove srcset because it overrides src\n\t\tif (el.srcset) {\n\t\t\tel.srcset = '';\n\t\t}\n\t\ttry {\n\t\t\tkeepSrcUsable(el);\n\t\t} catch (err) {\n\t\t\tif (window.console) {\n\t\t\t\tconsole.warn('https://bit.ly/ofi-old-browser');\n\t\t\t}\n\t\t}\n\t}\n\n\tpolyfillCurrentSrc(ofi.img);\n\n\tel.style.backgroundImage = \"url(\\\"\" + ((ofi.img.currentSrc || ofi.img.src).replace(/\"/g, '\\\\\"')) + \"\\\")\";\n\tel.style.backgroundPosition = style['object-position'] || 'center';\n\tel.style.backgroundRepeat = 'no-repeat';\n\tel.style.backgroundOrigin = 'content-box';\n\n\tif (/scale-down/.test(style['object-fit'])) {\n\t\tonImageReady(ofi.img, function () {\n\t\t\tif (ofi.img.naturalWidth > el.width || ofi.img.naturalHeight > el.height) {\n\t\t\t\tel.style.backgroundSize = 'contain';\n\t\t\t} else {\n\t\t\t\tel.style.backgroundSize = 'auto';\n\t\t\t}\n\t\t});\n\t} else {\n\t\tel.style.backgroundSize = style['object-fit'].replace('none', 'auto').replace('fill', '100% 100%');\n\t}\n\n\tonImageReady(ofi.img, function (img) {\n\t\tsetPlaceholder(el, img.naturalWidth, img.naturalHeight);\n\t});\n}\n\nfunction keepSrcUsable(el) {\n\tvar descriptors = {\n\t\tget: function get(prop) {\n\t\t\treturn el[OFI].img[prop ? prop : 'src'];\n\t\t},\n\t\tset: function set(value, prop) {\n\t\t\tel[OFI].img[prop ? prop : 'src'] = value;\n\t\t\tnativeSetAttribute.call(el, (\"data-ofi-\" + prop), value); // preserve for any future cloneNode\n\t\t\tfixOne(el);\n\t\t\treturn value;\n\t\t}\n\t};\n\tObject.defineProperty(el, 'src', descriptors);\n\tObject.defineProperty(el, 'currentSrc', {\n\t\tget: function () { return descriptors.get('currentSrc'); }\n\t});\n\tObject.defineProperty(el, 'srcset', {\n\t\tget: function () { return descriptors.get('srcset'); },\n\t\tset: function (ss) { return descriptors.set(ss, 'srcset'); }\n\t});\n}\n\nfunction hijackAttributes() {\n\tfunction getOfiImageMaybe(el, name) {\n\t\treturn el[OFI] && el[OFI].img && (name === 'src' || name === 'srcset') ? el[OFI].img : el;\n\t}\n\tif (!supportsObjectPosition) {\n\t\tHTMLImageElement.prototype.getAttribute = function (name) {\n\t\t\treturn nativeGetAttribute.call(getOfiImageMaybe(this, name), name);\n\t\t};\n\n\t\tHTMLImageElement.prototype.setAttribute = function (name, value) {\n\t\t\treturn nativeSetAttribute.call(getOfiImageMaybe(this, name), name, String(value));\n\t\t};\n\t}\n}\n\nfunction fix(imgs, opts) {\n\tvar startAutoMode = !autoModeEnabled && !imgs;\n\topts = opts || {};\n\timgs = imgs || 'img';\n\n\tif ((supportsObjectPosition && !opts.skipTest) || !supportsOFI) {\n\t\treturn false;\n\t}\n\n\t// use imgs as a selector or just select all images\n\tif (imgs === 'img') {\n\t\timgs = document.getElementsByTagName('img');\n\t} else if (typeof imgs === 'string') {\n\t\timgs = document.querySelectorAll(imgs);\n\t} else if (!('length' in imgs)) {\n\t\timgs = [imgs];\n\t}\n\n\t// apply fix to all\n\tfor (var i = 0; i < imgs.length; i++) {\n\t\timgs[i][OFI] = imgs[i][OFI] || {\n\t\t\tskipTest: opts.skipTest\n\t\t};\n\t\tfixOne(imgs[i]);\n\t}\n\n\tif (startAutoMode) {\n\t\tdocument.body.addEventListener('load', function (e) {\n\t\t\tif (e.target.tagName === 'IMG') {\n\t\t\t\tfix(e.target, {\n\t\t\t\t\tskipTest: opts.skipTest\n\t\t\t\t});\n\t\t\t}\n\t\t}, true);\n\t\tautoModeEnabled = true;\n\t\timgs = 'img'; // reset to a generic selector for watchMQ\n\t}\n\n\t// if requested, watch media queries for object-fit change\n\tif (opts.watchMQ) {\n\t\twindow.addEventListener('resize', fix.bind(null, imgs, {\n\t\t\tskipTest: opts.skipTest\n\t\t}));\n\t}\n}\n\nfix.supportsObjectFit = supportsObjectFit;\nfix.supportsObjectPosition = supportsObjectPosition;\n\nhijackAttributes();\n\nmodule.exports = fix;\n","/**\n * Object Fit Videos\n * Polyfill for object-fit and object-position CSS properties on video elements\n * Covers IE9, IE10, IE11, Edge, Safari <10\n *\n * Usage\n * In your CSS, add a special font-family tag for IE/Edge\n * video {\n * object-fit: cover;\n * font-family: 'object-fit: cover;';\n * }\n *\n * Before the closing body tag, or whenever the DOM is ready,\n * make the JavaScript call\n * objectFitVideos();\n *\n * All video elements with the special CSS property will be targeted\n *\n * @license MIT (https://opensource.org/licenses/MIT)\n * @author Todd Miller \n * @version 1.0.2\n * @changelog\n * 2016-08-19 - Adds object-position support.\n * 2016-08-19 - Add throttle function for more performant resize events\n * 2016-08-19 - Initial release with object-fit support, and\n * object-position default 'center'\n * 2016-10-14 - No longer relies on window load event, instead requires a specific\n * function call to initialize the videos for object fit and position.\n * 2016-11-28 - Support CommonJS environment, courtesy of @msorensson\n * 2016-12-05 - Refactors the throttling function to support IE\n * 2017-09-26 - Fix an issue with autplay not working on polyfilled videos\n * - Adds the capability to specify elements to polyfill,\n * instead of just checking every video element for the\n * CSS property. Slight performance gain in most usecases,\n * and a bigger gain in a few usecases.\n * 2017-10-24 - Add user agent check to enable polyfill for all Edge browsers.\n * object-fit is supported on Edge >= 16, but currently just for images.\n */\nvar objectFitVideos = function (videos) {\n 'use strict';\n\n var isEdge = navigator.userAgent.indexOf('Edge/') >= 0;\n\n var testImg = new Image(),\n supportsObjectFit = 'object-fit' in testImg.style && !isEdge,\n supportsObjectPosition = 'object-position' in testImg.style && !isEdge,\n propRegex = /(object-fit|object-position)\\s*:\\s*([-\\w\\s%]+)/g;\n\n if (!supportsObjectFit || !supportsObjectPosition) {\n initialize(videos);\n throttle('resize', 'optimizedResize');\n }\n\n /**\n * Parse the style and look for the special font-family tag\n * @param {object} $el The element to parse\n * @return {object} The font-family properties we're interested in\n */\n function getStyle ($el) {\n var style = getComputedStyle($el).fontFamily,\n parsed = null,\n props = {};\n\n while ((parsed = propRegex.exec(style)) !== null) {\n props[parsed[1]] = parsed[2];\n }\n\n if (props['object-position'])\n return parsePosition(props);\n\n return props;\n }\n\n /**\n * Initialize all the relevant video elements and get them fitted\n */\n function initialize (videos) {\n var index = -1;\n\n if (!videos) {\n // if no videos given, query all video elements\n videos = document.querySelectorAll('video');\n } else if (!('length' in videos)) {\n // convert to an array for proper looping if an array or NodeList\n // was not given\n videos = [videos];\n }\n\n while (videos[++index]) {\n var style = getStyle(videos[index]);\n\n // only do work if the property is on the element\n if (style['object-fit'] || style['object-position']) {\n // set the default values\n style['object-fit'] = style['object-fit'] || 'fill';\n fitIt(videos[index], style);\n }\n }\n }\n\n /**\n * Object Fit\n * @param {object} $el Element to fit\n * @return {object} The element's relevant properties\n */\n function fitIt ($el, style) {\n // fill is the default behavior, no action is necessary\n if (style['object-fit'] === 'fill')\n return;\n\n // convenience style properties on the source element\n var setCss = $el.style,\n getCss = window.getComputedStyle($el);\n\n // create and insert a wrapper element\n var $wrap = document.createElement('object-fit');\n $wrap.appendChild($el.parentNode.replaceChild($wrap, $el));\n\n // style the wrapper element to mostly match the source element\n var wrapCss = {\n height: '100%',\n width: '100%',\n boxSizing: 'content-box',\n display: 'inline-block',\n overflow: 'hidden'\n };\n\n 'backgroundColor backgroundImage borderColor borderStyle borderWidth bottom fontSize lineHeight left opacity margin position right top visibility'.replace(/\\w+/g, function (key) {\n wrapCss[key] = getCss[key];\n });\n\n for (var key in wrapCss)\n $wrap.style[key] = wrapCss[key];\n\n // give the source element some saner styles\n setCss.border = setCss.margin = setCss.padding = 0;\n setCss.display = 'block';\n setCss.opacity = 1;\n\n // set up the event handlers\n $el.addEventListener('loadedmetadata', doWork);\n window.addEventListener('optimizedResize', doWork);\n\n // we may have missed the loadedmetadata event, so if the video has loaded\n // enough data, just drop the event listener and execute\n if ($el.readyState >= 1) {\n $el.removeEventListener('loadedmetadata', doWork);\n doWork();\n }\n\n /**\n * Do the actual sizing. Math.\n * @methodOf fitIt\n */\n function doWork () {\n // the actual size and ratio of the video\n // we do this here, even though it doesn't change, because\n // at this point we can be sure the metadata has loaded\n var videoWidth = $el.videoWidth,\n videoHeight = $el.videoHeight,\n videoRatio = videoWidth / videoHeight;\n\n var wrapWidth = $wrap.clientWidth,\n wrapHeight = $wrap.clientHeight,\n wrapRatio = wrapWidth / wrapHeight;\n\n var newHeight = 0,\n newWidth = 0;\n setCss.marginLeft = setCss.marginTop = 0;\n\n // basically we do the opposite action for contain and cover,\n // depending on whether the video aspect ratio is less than or\n // greater than the wrapper's aspect ratio\n if (videoRatio < wrapRatio ?\n style['object-fit'] === 'contain' : style['object-fit'] === 'cover') {\n newHeight = wrapHeight * videoRatio;\n newWidth = wrapWidth / videoRatio;\n\n setCss.width = Math.round(newHeight) + 'px';\n setCss.height = wrapHeight + 'px';\n\n if (style['object-position-x'] === 'left')\n setCss.marginLeft = 0;\n else if (style['object-position-x'] === 'right')\n setCss.marginLeft = Math.round(wrapWidth - newHeight) + 'px';\n else\n setCss.marginLeft = Math.round((wrapWidth - newHeight) / 2) + 'px';\n } else {\n newWidth = wrapWidth / videoRatio;\n\n setCss.width = wrapWidth + 'px';\n setCss.height = Math.round(newWidth) + 'px';\n\n if (style['object-position-y'] === 'top')\n setCss.marginTop = 0;\n else if (style['object-position-y'] === 'bottom')\n setCss.marginTop = Math.round(wrapHeight - newWidth) + 'px';\n else\n setCss.marginTop = Math.round((wrapHeight - newWidth) / 2) + 'px';\n }\n\n // play the video if autoplay is set\n if ($el.autoplay)\n $el.play();\n }\n }\n\n /**\n * Split the object-position property into x and y position properties\n * @param {object} style Relevant element styles\n * @return {object} The style object with the added x and y props\n */\n function parsePosition (style) {\n if (~style['object-position'].indexOf('left'))\n style['object-position-x'] = 'left';\n else if (~style['object-position'].indexOf('right'))\n style['object-position-x'] = 'right';\n else\n style['object-position-x'] = 'center';\n\n if (~style['object-position'].indexOf('top'))\n style['object-position-y'] = 'top';\n else if (~style['object-position'].indexOf('bottom'))\n style['object-position-y'] = 'bottom';\n else\n style['object-position-y'] = 'center';\n\n return style;\n }\n\n /**\n * Throttle an event with RequestAnimationFrame API for better performance\n * @param {string} type The event to throttle\n * @param {string} name Custom event name to listen for\n * @param {object} obj Optional object to attach the event to\n */\n function throttle (type, name, obj) {\n obj = obj || window;\n var running = false,\n evt = null;\n\n // IE does not support the CustomEvent constructor\n // so if that fails do it the old way\n try {\n evt = new CustomEvent(name);\n } catch (e) {\n evt = document.createEvent('Event');\n evt.initEvent(name, true, true);\n }\n\n var func = function () {\n if (running) return;\n\n running = true;\n requestAnimationFrame(function () {\n obj.dispatchEvent(evt);\n running = false;\n });\n };\n\n obj.addEventListener(type, func);\n }\n};\n\nif (typeof module !== 'undefined' && typeof module.exports !== 'undefined')\n module.exports = objectFitVideos;\n","/*! picturefill - v3.0.2 - 2016-02-12\n * https://scottjehl.github.io/picturefill/\n * Copyright (c) 2016 https://github.com/scottjehl/picturefill/blob/master/Authors.txt; Licensed MIT\n */\n/*! Gecko-Picture - v1.0\n * https://github.com/scottjehl/picturefill/tree/3.0/src/plugins/gecko-picture\n * Firefox's early picture implementation (prior to FF41) is static and does\n * not react to viewport changes. This tiny module fixes this.\n */\n(function(window) {\n\t/*jshint eqnull:true */\n\tvar ua = navigator.userAgent;\n\n\tif ( window.HTMLPictureElement && ((/ecko/).test(ua) && ua.match(/rv\\:(\\d+)/) && RegExp.$1 < 45) ) {\n\t\taddEventListener(\"resize\", (function() {\n\t\t\tvar timer;\n\n\t\t\tvar dummySrc = document.createElement(\"source\");\n\n\t\t\tvar fixRespimg = function(img) {\n\t\t\t\tvar source, sizes;\n\t\t\t\tvar picture = img.parentNode;\n\n\t\t\t\tif (picture.nodeName.toUpperCase() === \"PICTURE\") {\n\t\t\t\t\tsource = dummySrc.cloneNode();\n\n\t\t\t\t\tpicture.insertBefore(source, picture.firstElementChild);\n\t\t\t\t\tsetTimeout(function() {\n\t\t\t\t\t\tpicture.removeChild(source);\n\t\t\t\t\t});\n\t\t\t\t} else if (!img._pfLastSize || img.offsetWidth > img._pfLastSize) {\n\t\t\t\t\timg._pfLastSize = img.offsetWidth;\n\t\t\t\t\tsizes = img.sizes;\n\t\t\t\t\timg.sizes += \",100vw\";\n\t\t\t\t\tsetTimeout(function() {\n\t\t\t\t\t\timg.sizes = sizes;\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t};\n\n\t\t\tvar findPictureImgs = function() {\n\t\t\t\tvar i;\n\t\t\t\tvar imgs = document.querySelectorAll(\"picture > img, img[srcset][sizes]\");\n\t\t\t\tfor (i = 0; i < imgs.length; i++) {\n\t\t\t\t\tfixRespimg(imgs[i]);\n\t\t\t\t}\n\t\t\t};\n\t\t\tvar onResize = function() {\n\t\t\t\tclearTimeout(timer);\n\t\t\t\ttimer = setTimeout(findPictureImgs, 99);\n\t\t\t};\n\t\t\tvar mq = window.matchMedia && matchMedia(\"(orientation: landscape)\");\n\t\t\tvar init = function() {\n\t\t\t\tonResize();\n\n\t\t\t\tif (mq && mq.addListener) {\n\t\t\t\t\tmq.addListener(onResize);\n\t\t\t\t}\n\t\t\t};\n\n\t\t\tdummySrc.srcset = \"data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==\";\n\n\t\t\tif (/^[c|i]|d$/.test(document.readyState || \"\")) {\n\t\t\t\tinit();\n\t\t\t} else {\n\t\t\t\tdocument.addEventListener(\"DOMContentLoaded\", init);\n\t\t\t}\n\n\t\t\treturn onResize;\n\t\t})());\n\t}\n})(window);\n\n/*! Picturefill - v3.0.2\n * http://scottjehl.github.io/picturefill\n * Copyright (c) 2015 https://github.com/scottjehl/picturefill/blob/master/Authors.txt;\n * License: MIT\n */\n\n(function( window, document, undefined ) {\n\t// Enable strict mode\n\t\"use strict\";\n\n\t// HTML shim|v it for old IE (IE9 will still need the HTML video tag workaround)\n\tdocument.createElement( \"picture\" );\n\n\tvar warn, eminpx, alwaysCheckWDescriptor, evalId;\n\t// local object for method references and testing exposure\n\tvar pf = {};\n\tvar isSupportTestReady = false;\n\tvar noop = function() {};\n\tvar image = document.createElement( \"img\" );\n\tvar getImgAttr = image.getAttribute;\n\tvar setImgAttr = image.setAttribute;\n\tvar removeImgAttr = image.removeAttribute;\n\tvar docElem = document.documentElement;\n\tvar types = {};\n\tvar cfg = {\n\t\t//resource selection:\n\t\talgorithm: \"\"\n\t};\n\tvar srcAttr = \"data-pfsrc\";\n\tvar srcsetAttr = srcAttr + \"set\";\n\t// ua sniffing is done for undetectable img loading features,\n\t// to do some non crucial perf optimizations\n\tvar ua = navigator.userAgent;\n\tvar supportAbort = (/rident/).test(ua) || ((/ecko/).test(ua) && ua.match(/rv\\:(\\d+)/) && RegExp.$1 > 35 );\n\tvar curSrcProp = \"currentSrc\";\n\tvar regWDesc = /\\s+\\+?\\d+(e\\d+)?w/;\n\tvar regSize = /(\\([^)]+\\))?\\s*(.+)/;\n\tvar setOptions = window.picturefillCFG;\n\t/**\n\t * Shortcut property for https://w3c.github.io/webappsec/specs/mixedcontent/#restricts-mixed-content ( for easy overriding in tests )\n\t */\n\t// baseStyle also used by getEmValue (i.e.: width: 1em is important)\n\tvar baseStyle = \"position:absolute;left:0;visibility:hidden;display:block;padding:0;border:none;font-size:1em;width:1em;overflow:hidden;clip:rect(0px, 0px, 0px, 0px)\";\n\tvar fsCss = \"font-size:100%!important;\";\n\tvar isVwDirty = true;\n\n\tvar cssCache = {};\n\tvar sizeLengthCache = {};\n\tvar DPR = window.devicePixelRatio;\n\tvar units = {\n\t\tpx: 1,\n\t\t\"in\": 96\n\t};\n\tvar anchor = document.createElement( \"a\" );\n\t/**\n\t * alreadyRun flag used for setOptions. is it true setOptions will reevaluate\n\t * @type {boolean}\n\t */\n\tvar alreadyRun = false;\n\n\t// Reusable, non-\"g\" Regexes\n\n\t// (Don't use \\s, to avoid matching non-breaking space.)\n\tvar regexLeadingSpaces = /^[ \\t\\n\\r\\u000c]+/,\n\t regexLeadingCommasOrSpaces = /^[, \\t\\n\\r\\u000c]+/,\n\t regexLeadingNotSpaces = /^[^ \\t\\n\\r\\u000c]+/,\n\t regexTrailingCommas = /[,]+$/,\n\t regexNonNegativeInteger = /^\\d+$/,\n\n\t // ( Positive or negative or unsigned integers or decimals, without or without exponents.\n\t // Must include at least one digit.\n\t // According to spec tests any decimal point must be followed by a digit.\n\t // No leading plus sign is allowed.)\n\t // https://html.spec.whatwg.org/multipage/infrastructure.html#valid-floating-point-number\n\t regexFloatingPoint = /^-?(?:[0-9]+|[0-9]*\\.[0-9]+)(?:[eE][+-]?[0-9]+)?$/;\n\n\tvar on = function(obj, evt, fn, capture) {\n\t\tif ( obj.addEventListener ) {\n\t\t\tobj.addEventListener(evt, fn, capture || false);\n\t\t} else if ( obj.attachEvent ) {\n\t\t\tobj.attachEvent( \"on\" + evt, fn);\n\t\t}\n\t};\n\n\t/**\n\t * simple memoize function:\n\t */\n\n\tvar memoize = function(fn) {\n\t\tvar cache = {};\n\t\treturn function(input) {\n\t\t\tif ( !(input in cache) ) {\n\t\t\t\tcache[ input ] = fn(input);\n\t\t\t}\n\t\t\treturn cache[ input ];\n\t\t};\n\t};\n\n\t// UTILITY FUNCTIONS\n\n\t// Manual is faster than RegEx\n\t// http://jsperf.com/whitespace-character/5\n\tfunction isSpace(c) {\n\t\treturn (c === \"\\u0020\" || // space\n\t\t c === \"\\u0009\" || // horizontal tab\n\t\t c === \"\\u000A\" || // new line\n\t\t c === \"\\u000C\" || // form feed\n\t\t c === \"\\u000D\"); // carriage return\n\t}\n\n\t/**\n\t * gets a mediaquery and returns a boolean or gets a css length and returns a number\n\t * @param css mediaqueries or css length\n\t * @returns {boolean|number}\n\t *\n\t * based on: https://gist.github.com/jonathantneal/db4f77009b155f083738\n\t */\n\tvar evalCSS = (function() {\n\n\t\tvar regLength = /^([\\d\\.]+)(em|vw|px)$/;\n\t\tvar replace = function() {\n\t\t\tvar args = arguments, index = 0, string = args[0];\n\t\t\twhile (++index in args) {\n\t\t\t\tstring = string.replace(args[index], args[++index]);\n\t\t\t}\n\t\t\treturn string;\n\t\t};\n\n\t\tvar buildStr = memoize(function(css) {\n\n\t\t\treturn \"return \" + replace((css || \"\").toLowerCase(),\n\t\t\t\t// interpret `and`\n\t\t\t\t/\\band\\b/g, \"&&\",\n\n\t\t\t\t// interpret `,`\n\t\t\t\t/,/g, \"||\",\n\n\t\t\t\t// interpret `min-` as >=\n\t\t\t\t/min-([a-z-\\s]+):/g, \"e.$1>=\",\n\n\t\t\t\t// interpret `max-` as <=\n\t\t\t\t/max-([a-z-\\s]+):/g, \"e.$1<=\",\n\n\t\t\t\t//calc value\n\t\t\t\t/calc([^)]+)/g, \"($1)\",\n\n\t\t\t\t// interpret css values\n\t\t\t\t/(\\d+[\\.]*[\\d]*)([a-z]+)/g, \"($1 * e.$2)\",\n\t\t\t\t//make eval less evil\n\t\t\t\t/^(?!(e.[a-z]|[0-9\\.&=|><\\+\\-\\*\\(\\)\\/])).*/ig, \"\"\n\t\t\t) + \";\";\n\t\t});\n\n\t\treturn function(css, length) {\n\t\t\tvar parsedLength;\n\t\t\tif (!(css in cssCache)) {\n\t\t\t\tcssCache[css] = false;\n\t\t\t\tif (length && (parsedLength = css.match( regLength ))) {\n\t\t\t\t\tcssCache[css] = parsedLength[ 1 ] * units[parsedLength[ 2 ]];\n\t\t\t\t} else {\n\t\t\t\t\t/*jshint evil:true */\n\t\t\t\t\ttry{\n\t\t\t\t\t\tcssCache[css] = new Function(\"e\", buildStr(css))(units);\n\t\t\t\t\t} catch(e) {}\n\t\t\t\t\t/*jshint evil:false */\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn cssCache[css];\n\t\t};\n\t})();\n\n\tvar setResolution = function( candidate, sizesattr ) {\n\t\tif ( candidate.w ) { // h = means height: || descriptor.type === 'h' do not handle yet...\n\t\t\tcandidate.cWidth = pf.calcListLength( sizesattr || \"100vw\" );\n\t\t\tcandidate.res = candidate.w / candidate.cWidth ;\n\t\t} else {\n\t\t\tcandidate.res = candidate.d;\n\t\t}\n\t\treturn candidate;\n\t};\n\n\t/**\n\t *\n\t * @param opt\n\t */\n\tvar picturefill = function( opt ) {\n\n\t\tif (!isSupportTestReady) {return;}\n\n\t\tvar elements, i, plen;\n\n\t\tvar options = opt || {};\n\n\t\tif ( options.elements && options.elements.nodeType === 1 ) {\n\t\t\tif ( options.elements.nodeName.toUpperCase() === \"IMG\" ) {\n\t\t\t\toptions.elements = [ options.elements ];\n\t\t\t} else {\n\t\t\t\toptions.context = options.elements;\n\t\t\t\toptions.elements = null;\n\t\t\t}\n\t\t}\n\n\t\telements = options.elements || pf.qsa( (options.context || document), ( options.reevaluate || options.reselect ) ? pf.sel : pf.selShort );\n\n\t\tif ( (plen = elements.length) ) {\n\n\t\t\tpf.setupRun( options );\n\t\t\talreadyRun = true;\n\n\t\t\t// Loop through all elements\n\t\t\tfor ( i = 0; i < plen; i++ ) {\n\t\t\t\tpf.fillImg(elements[ i ], options);\n\t\t\t}\n\n\t\t\tpf.teardownRun( options );\n\t\t}\n\t};\n\n\t/**\n\t * outputs a warning for the developer\n\t * @param {message}\n\t * @type {Function}\n\t */\n\twarn = ( window.console && console.warn ) ?\n\t\tfunction( message ) {\n\t\t\tconsole.warn( message );\n\t\t} :\n\t\tnoop\n\t;\n\n\tif ( !(curSrcProp in image) ) {\n\t\tcurSrcProp = \"src\";\n\t}\n\n\t// Add support for standard mime types.\n\ttypes[ \"image/jpeg\" ] = true;\n\ttypes[ \"image/gif\" ] = true;\n\ttypes[ \"image/png\" ] = true;\n\n\tfunction detectTypeSupport( type, typeUri ) {\n\t\t// based on Modernizr's lossless img-webp test\n\t\t// note: asynchronous\n\t\tvar image = new window.Image();\n\t\timage.onerror = function() {\n\t\t\ttypes[ type ] = false;\n\t\t\tpicturefill();\n\t\t};\n\t\timage.onload = function() {\n\t\t\ttypes[ type ] = image.width === 1;\n\t\t\tpicturefill();\n\t\t};\n\t\timage.src = typeUri;\n\t\treturn \"pending\";\n\t}\n\n\t// test svg support\n\ttypes[ \"image/svg+xml\" ] = document.implementation.hasFeature( \"http://www.w3.org/TR/SVG11/feature#Image\", \"1.1\" );\n\n\t/**\n\t * updates the internal vW property with the current viewport width in px\n\t */\n\tfunction updateMetrics() {\n\n\t\tisVwDirty = false;\n\t\tDPR = window.devicePixelRatio;\n\t\tcssCache = {};\n\t\tsizeLengthCache = {};\n\n\t\tpf.DPR = DPR || 1;\n\n\t\tunits.width = Math.max(window.innerWidth || 0, docElem.clientWidth);\n\t\tunits.height = Math.max(window.innerHeight || 0, docElem.clientHeight);\n\n\t\tunits.vw = units.width / 100;\n\t\tunits.vh = units.height / 100;\n\n\t\tevalId = [ units.height, units.width, DPR ].join(\"-\");\n\n\t\tunits.em = pf.getEmValue();\n\t\tunits.rem = units.em;\n\t}\n\n\tfunction chooseLowRes( lowerValue, higherValue, dprValue, isCached ) {\n\t\tvar bonusFactor, tooMuch, bonus, meanDensity;\n\n\t\t//experimental\n\t\tif (cfg.algorithm === \"saveData\" ){\n\t\t\tif ( lowerValue > 2.7 ) {\n\t\t\t\tmeanDensity = dprValue + 1;\n\t\t\t} else {\n\t\t\t\ttooMuch = higherValue - dprValue;\n\t\t\t\tbonusFactor = Math.pow(lowerValue - 0.6, 1.5);\n\n\t\t\t\tbonus = tooMuch * bonusFactor;\n\n\t\t\t\tif (isCached) {\n\t\t\t\t\tbonus += 0.1 * bonusFactor;\n\t\t\t\t}\n\n\t\t\t\tmeanDensity = lowerValue + bonus;\n\t\t\t}\n\t\t} else {\n\t\t\tmeanDensity = (dprValue > 1) ?\n\t\t\t\tMath.sqrt(lowerValue * higherValue) :\n\t\t\t\tlowerValue;\n\t\t}\n\n\t\treturn meanDensity > dprValue;\n\t}\n\n\tfunction applyBestCandidate( img ) {\n\t\tvar srcSetCandidates;\n\t\tvar matchingSet = pf.getSet( img );\n\t\tvar evaluated = false;\n\t\tif ( matchingSet !== \"pending\" ) {\n\t\t\tevaluated = evalId;\n\t\t\tif ( matchingSet ) {\n\t\t\t\tsrcSetCandidates = pf.setRes( matchingSet );\n\t\t\t\tpf.applySetCandidate( srcSetCandidates, img );\n\t\t\t}\n\t\t}\n\t\timg[ pf.ns ].evaled = evaluated;\n\t}\n\n\tfunction ascendingSort( a, b ) {\n\t\treturn a.res - b.res;\n\t}\n\n\tfunction setSrcToCur( img, src, set ) {\n\t\tvar candidate;\n\t\tif ( !set && src ) {\n\t\t\tset = img[ pf.ns ].sets;\n\t\t\tset = set && set[set.length - 1];\n\t\t}\n\n\t\tcandidate = getCandidateForSrc(src, set);\n\n\t\tif ( candidate ) {\n\t\t\tsrc = pf.makeUrl(src);\n\t\t\timg[ pf.ns ].curSrc = src;\n\t\t\timg[ pf.ns ].curCan = candidate;\n\n\t\t\tif ( !candidate.res ) {\n\t\t\t\tsetResolution( candidate, candidate.set.sizes );\n\t\t\t}\n\t\t}\n\t\treturn candidate;\n\t}\n\n\tfunction getCandidateForSrc( src, set ) {\n\t\tvar i, candidate, candidates;\n\t\tif ( src && set ) {\n\t\t\tcandidates = pf.parseSet( set );\n\t\t\tsrc = pf.makeUrl(src);\n\t\t\tfor ( i = 0; i < candidates.length; i++ ) {\n\t\t\t\tif ( src === pf.makeUrl(candidates[ i ].url) ) {\n\t\t\t\t\tcandidate = candidates[ i ];\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn candidate;\n\t}\n\n\tfunction getAllSourceElements( picture, candidates ) {\n\t\tvar i, len, source, srcset;\n\n\t\t// SPEC mismatch intended for size and perf:\n\t\t// actually only source elements preceding the img should be used\n\t\t// also note: don't use qsa here, because IE8 sometimes doesn't like source as the key part in a selector\n\t\tvar sources = picture.getElementsByTagName( \"source\" );\n\n\t\tfor ( i = 0, len = sources.length; i < len; i++ ) {\n\t\t\tsource = sources[ i ];\n\t\t\tsource[ pf.ns ] = true;\n\t\t\tsrcset = source.getAttribute( \"srcset\" );\n\n\t\t\t// if source does not have a srcset attribute, skip\n\t\t\tif ( srcset ) {\n\t\t\t\tcandidates.push( {\n\t\t\t\t\tsrcset: srcset,\n\t\t\t\t\tmedia: source.getAttribute( \"media\" ),\n\t\t\t\t\ttype: source.getAttribute( \"type\" ),\n\t\t\t\t\tsizes: source.getAttribute( \"sizes\" )\n\t\t\t\t} );\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * Srcset Parser\n\t * By Alex Bell | MIT License\n\t *\n\t * @returns Array [{url: _, d: _, w: _, h:_, set:_(????)}, ...]\n\t *\n\t * Based super duper closely on the reference algorithm at:\n\t * https://html.spec.whatwg.org/multipage/embedded-content.html#parse-a-srcset-attribute\n\t */\n\n\t// 1. Let input be the value passed to this algorithm.\n\t// (TO-DO : Explain what \"set\" argument is here. Maybe choose a more\n\t// descriptive & more searchable name. Since passing the \"set\" in really has\n\t// nothing to do with parsing proper, I would prefer this assignment eventually\n\t// go in an external fn.)\n\tfunction parseSrcset(input, set) {\n\n\t\tfunction collectCharacters(regEx) {\n\t\t\tvar chars,\n\t\t\t match = regEx.exec(input.substring(pos));\n\t\t\tif (match) {\n\t\t\t\tchars = match[ 0 ];\n\t\t\t\tpos += chars.length;\n\t\t\t\treturn chars;\n\t\t\t}\n\t\t}\n\n\t\tvar inputLength = input.length,\n\t\t url,\n\t\t descriptors,\n\t\t currentDescriptor,\n\t\t state,\n\t\t c,\n\n\t\t // 2. Let position be a pointer into input, initially pointing at the start\n\t\t // of the string.\n\t\t pos = 0,\n\n\t\t // 3. Let candidates be an initially empty source set.\n\t\t candidates = [];\n\n\t\t/**\n\t\t* Adds descriptor properties to a candidate, pushes to the candidates array\n\t\t* @return undefined\n\t\t*/\n\t\t// (Declared outside of the while loop so that it's only created once.\n\t\t// (This fn is defined before it is used, in order to pass JSHINT.\n\t\t// Unfortunately this breaks the sequencing of the spec comments. :/ )\n\t\tfunction parseDescriptors() {\n\n\t\t\t// 9. Descriptor parser: Let error be no.\n\t\t\tvar pError = false,\n\n\t\t\t// 10. Let width be absent.\n\t\t\t// 11. Let density be absent.\n\t\t\t// 12. Let future-compat-h be absent. (We're implementing it now as h)\n\t\t\t w, d, h, i,\n\t\t\t candidate = {},\n\t\t\t desc, lastChar, value, intVal, floatVal;\n\n\t\t\t// 13. For each descriptor in descriptors, run the appropriate set of steps\n\t\t\t// from the following list:\n\t\t\tfor (i = 0 ; i < descriptors.length; i++) {\n\t\t\t\tdesc = descriptors[ i ];\n\n\t\t\t\tlastChar = desc[ desc.length - 1 ];\n\t\t\t\tvalue = desc.substring(0, desc.length - 1);\n\t\t\t\tintVal = parseInt(value, 10);\n\t\t\t\tfloatVal = parseFloat(value);\n\n\t\t\t\t// If the descriptor consists of a valid non-negative integer followed by\n\t\t\t\t// a U+0077 LATIN SMALL LETTER W character\n\t\t\t\tif (regexNonNegativeInteger.test(value) && (lastChar === \"w\")) {\n\n\t\t\t\t\t// If width and density are not both absent, then let error be yes.\n\t\t\t\t\tif (w || d) {pError = true;}\n\n\t\t\t\t\t// Apply the rules for parsing non-negative integers to the descriptor.\n\t\t\t\t\t// If the result is zero, let error be yes.\n\t\t\t\t\t// Otherwise, let width be the result.\n\t\t\t\t\tif (intVal === 0) {pError = true;} else {w = intVal;}\n\n\t\t\t\t// If the descriptor consists of a valid floating-point number followed by\n\t\t\t\t// a U+0078 LATIN SMALL LETTER X character\n\t\t\t\t} else if (regexFloatingPoint.test(value) && (lastChar === \"x\")) {\n\n\t\t\t\t\t// If width, density and future-compat-h are not all absent, then let error\n\t\t\t\t\t// be yes.\n\t\t\t\t\tif (w || d || h) {pError = true;}\n\n\t\t\t\t\t// Apply the rules for parsing floating-point number values to the descriptor.\n\t\t\t\t\t// If the result is less than zero, let error be yes. Otherwise, let density\n\t\t\t\t\t// be the result.\n\t\t\t\t\tif (floatVal < 0) {pError = true;} else {d = floatVal;}\n\n\t\t\t\t// If the descriptor consists of a valid non-negative integer followed by\n\t\t\t\t// a U+0068 LATIN SMALL LETTER H character\n\t\t\t\t} else if (regexNonNegativeInteger.test(value) && (lastChar === \"h\")) {\n\n\t\t\t\t\t// If height and density are not both absent, then let error be yes.\n\t\t\t\t\tif (h || d) {pError = true;}\n\n\t\t\t\t\t// Apply the rules for parsing non-negative integers to the descriptor.\n\t\t\t\t\t// If the result is zero, let error be yes. Otherwise, let future-compat-h\n\t\t\t\t\t// be the result.\n\t\t\t\t\tif (intVal === 0) {pError = true;} else {h = intVal;}\n\n\t\t\t\t// Anything else, Let error be yes.\n\t\t\t\t} else {pError = true;}\n\t\t\t} // (close step 13 for loop)\n\n\t\t\t// 15. If error is still no, then append a new image source to candidates whose\n\t\t\t// URL is url, associated with a width width if not absent and a pixel\n\t\t\t// density density if not absent. Otherwise, there is a parse error.\n\t\t\tif (!pError) {\n\t\t\t\tcandidate.url = url;\n\n\t\t\t\tif (w) { candidate.w = w;}\n\t\t\t\tif (d) { candidate.d = d;}\n\t\t\t\tif (h) { candidate.h = h;}\n\t\t\t\tif (!h && !d && !w) {candidate.d = 1;}\n\t\t\t\tif (candidate.d === 1) {set.has1x = true;}\n\t\t\t\tcandidate.set = set;\n\n\t\t\t\tcandidates.push(candidate);\n\t\t\t}\n\t\t} // (close parseDescriptors fn)\n\n\t\t/**\n\t\t* Tokenizes descriptor properties prior to parsing\n\t\t* Returns undefined.\n\t\t* (Again, this fn is defined before it is used, in order to pass JSHINT.\n\t\t* Unfortunately this breaks the logical sequencing of the spec comments. :/ )\n\t\t*/\n\t\tfunction tokenize() {\n\n\t\t\t// 8.1. Descriptor tokeniser: Skip whitespace\n\t\t\tcollectCharacters(regexLeadingSpaces);\n\n\t\t\t// 8.2. Let current descriptor be the empty string.\n\t\t\tcurrentDescriptor = \"\";\n\n\t\t\t// 8.3. Let state be in descriptor.\n\t\t\tstate = \"in descriptor\";\n\n\t\t\twhile (true) {\n\n\t\t\t\t// 8.4. Let c be the character at position.\n\t\t\t\tc = input.charAt(pos);\n\n\t\t\t\t// Do the following depending on the value of state.\n\t\t\t\t// For the purpose of this step, \"EOF\" is a special character representing\n\t\t\t\t// that position is past the end of input.\n\n\t\t\t\t// In descriptor\n\t\t\t\tif (state === \"in descriptor\") {\n\t\t\t\t\t// Do the following, depending on the value of c:\n\n\t\t\t\t // Space character\n\t\t\t\t // If current descriptor is not empty, append current descriptor to\n\t\t\t\t // descriptors and let current descriptor be the empty string.\n\t\t\t\t // Set state to after descriptor.\n\t\t\t\t\tif (isSpace(c)) {\n\t\t\t\t\t\tif (currentDescriptor) {\n\t\t\t\t\t\t\tdescriptors.push(currentDescriptor);\n\t\t\t\t\t\t\tcurrentDescriptor = \"\";\n\t\t\t\t\t\t\tstate = \"after descriptor\";\n\t\t\t\t\t\t}\n\n\t\t\t\t\t// U+002C COMMA (,)\n\t\t\t\t\t// Advance position to the next character in input. If current descriptor\n\t\t\t\t\t// is not empty, append current descriptor to descriptors. Jump to the step\n\t\t\t\t\t// labeled descriptor parser.\n\t\t\t\t\t} else if (c === \",\") {\n\t\t\t\t\t\tpos += 1;\n\t\t\t\t\t\tif (currentDescriptor) {\n\t\t\t\t\t\t\tdescriptors.push(currentDescriptor);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tparseDescriptors();\n\t\t\t\t\t\treturn;\n\n\t\t\t\t\t// U+0028 LEFT PARENTHESIS (()\n\t\t\t\t\t// Append c to current descriptor. Set state to in parens.\n\t\t\t\t\t} else if (c === \"\\u0028\") {\n\t\t\t\t\t\tcurrentDescriptor = currentDescriptor + c;\n\t\t\t\t\t\tstate = \"in parens\";\n\n\t\t\t\t\t// EOF\n\t\t\t\t\t// If current descriptor is not empty, append current descriptor to\n\t\t\t\t\t// descriptors. Jump to the step labeled descriptor parser.\n\t\t\t\t\t} else if (c === \"\") {\n\t\t\t\t\t\tif (currentDescriptor) {\n\t\t\t\t\t\t\tdescriptors.push(currentDescriptor);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tparseDescriptors();\n\t\t\t\t\t\treturn;\n\n\t\t\t\t\t// Anything else\n\t\t\t\t\t// Append c to current descriptor.\n\t\t\t\t\t} else {\n\t\t\t\t\t\tcurrentDescriptor = currentDescriptor + c;\n\t\t\t\t\t}\n\t\t\t\t// (end \"in descriptor\"\n\n\t\t\t\t// In parens\n\t\t\t\t} else if (state === \"in parens\") {\n\n\t\t\t\t\t// U+0029 RIGHT PARENTHESIS ())\n\t\t\t\t\t// Append c to current descriptor. Set state to in descriptor.\n\t\t\t\t\tif (c === \")\") {\n\t\t\t\t\t\tcurrentDescriptor = currentDescriptor + c;\n\t\t\t\t\t\tstate = \"in descriptor\";\n\n\t\t\t\t\t// EOF\n\t\t\t\t\t// Append current descriptor to descriptors. Jump to the step labeled\n\t\t\t\t\t// descriptor parser.\n\t\t\t\t\t} else if (c === \"\") {\n\t\t\t\t\t\tdescriptors.push(currentDescriptor);\n\t\t\t\t\t\tparseDescriptors();\n\t\t\t\t\t\treturn;\n\n\t\t\t\t\t// Anything else\n\t\t\t\t\t// Append c to current descriptor.\n\t\t\t\t\t} else {\n\t\t\t\t\t\tcurrentDescriptor = currentDescriptor + c;\n\t\t\t\t\t}\n\n\t\t\t\t// After descriptor\n\t\t\t\t} else if (state === \"after descriptor\") {\n\n\t\t\t\t\t// Do the following, depending on the value of c:\n\t\t\t\t\t// Space character: Stay in this state.\n\t\t\t\t\tif (isSpace(c)) {\n\n\t\t\t\t\t// EOF: Jump to the step labeled descriptor parser.\n\t\t\t\t\t} else if (c === \"\") {\n\t\t\t\t\t\tparseDescriptors();\n\t\t\t\t\t\treturn;\n\n\t\t\t\t\t// Anything else\n\t\t\t\t\t// Set state to in descriptor. Set position to the previous character in input.\n\t\t\t\t\t} else {\n\t\t\t\t\t\tstate = \"in descriptor\";\n\t\t\t\t\t\tpos -= 1;\n\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// Advance position to the next character in input.\n\t\t\t\tpos += 1;\n\n\t\t\t// Repeat this step.\n\t\t\t} // (close while true loop)\n\t\t}\n\n\t\t// 4. Splitting loop: Collect a sequence of characters that are space\n\t\t// characters or U+002C COMMA characters. If any U+002C COMMA characters\n\t\t// were collected, that is a parse error.\n\t\twhile (true) {\n\t\t\tcollectCharacters(regexLeadingCommasOrSpaces);\n\n\t\t\t// 5. If position is past the end of input, return candidates and abort these steps.\n\t\t\tif (pos >= inputLength) {\n\t\t\t\treturn candidates; // (we're done, this is the sole return path)\n\t\t\t}\n\n\t\t\t// 6. Collect a sequence of characters that are not space characters,\n\t\t\t// and let that be url.\n\t\t\turl = collectCharacters(regexLeadingNotSpaces);\n\n\t\t\t// 7. Let descriptors be a new empty list.\n\t\t\tdescriptors = [];\n\n\t\t\t// 8. If url ends with a U+002C COMMA character (,), follow these substeps:\n\t\t\t//\t\t(1). Remove all trailing U+002C COMMA characters from url. If this removed\n\t\t\t// more than one character, that is a parse error.\n\t\t\tif (url.slice(-1) === \",\") {\n\t\t\t\turl = url.replace(regexTrailingCommas, \"\");\n\t\t\t\t// (Jump ahead to step 9 to skip tokenization and just push the candidate).\n\t\t\t\tparseDescriptors();\n\n\t\t\t//\tOtherwise, follow these substeps:\n\t\t\t} else {\n\t\t\t\ttokenize();\n\t\t\t} // (close else of step 8)\n\n\t\t// 16. Return to the step labeled splitting loop.\n\t\t} // (Close of big while loop.)\n\t}\n\n\t/*\n\t * Sizes Parser\n\t *\n\t * By Alex Bell | MIT License\n\t *\n\t * Non-strict but accurate and lightweight JS Parser for the string value \n\t *\n\t * Reference algorithm at:\n\t * https://html.spec.whatwg.org/multipage/embedded-content.html#parse-a-sizes-attribute\n\t *\n\t * Most comments are copied in directly from the spec\n\t * (except for comments in parens).\n\t *\n\t * Grammar is:\n\t * = # [ , ]? | \n\t * = \n\t * = \n\t * http://www.w3.org/html/wg/drafts/html/master/embedded-content.html#attr-img-sizes\n\t *\n\t * E.g. \"(max-width: 30em) 100vw, (max-width: 50em) 70vw, 100vw\"\n\t * or \"(min-width: 30em), calc(30vw - 15px)\" or just \"30vw\"\n\t *\n\t * Returns the first valid with a media condition that evaluates to true,\n\t * or \"100vw\" if all valid media conditions evaluate to false.\n\t *\n\t */\n\n\tfunction parseSizes(strValue) {\n\n\t\t// (Percentage CSS lengths are not allowed in this case, to avoid confusion:\n\t\t// https://html.spec.whatwg.org/multipage/embedded-content.html#valid-source-size-list\n\t\t// CSS allows a single optional plus or minus sign:\n\t\t// http://www.w3.org/TR/CSS2/syndata.html#numbers\n\t\t// CSS is ASCII case-insensitive:\n\t\t// http://www.w3.org/TR/CSS2/syndata.html#characters )\n\t\t// Spec allows exponential notation for type:\n\t\t// http://dev.w3.org/csswg/css-values/#numbers\n\t\tvar regexCssLengthWithUnits = /^(?:[+-]?[0-9]+|[0-9]*\\.[0-9]+)(?:[eE][+-]?[0-9]+)?(?:ch|cm|em|ex|in|mm|pc|pt|px|rem|vh|vmin|vmax|vw)$/i;\n\n\t\t// (This is a quick and lenient test. Because of optional unlimited-depth internal\n\t\t// grouping parens and strict spacing rules, this could get very complicated.)\n\t\tvar regexCssCalc = /^calc\\((?:[0-9a-z \\.\\+\\-\\*\\/\\(\\)]+)\\)$/i;\n\n\t\tvar i;\n\t\tvar unparsedSizesList;\n\t\tvar unparsedSizesListLength;\n\t\tvar unparsedSize;\n\t\tvar lastComponentValue;\n\t\tvar size;\n\n\t\t// UTILITY FUNCTIONS\n\n\t\t// (Toy CSS parser. The goals here are:\n\t\t// 1) expansive test coverage without the weight of a full CSS parser.\n\t\t// 2) Avoiding regex wherever convenient.\n\t\t// Quick tests: http://jsfiddle.net/gtntL4gr/3/\n\t\t// Returns an array of arrays.)\n\t\tfunction parseComponentValues(str) {\n\t\t\tvar chrctr;\n\t\t\tvar component = \"\";\n\t\t\tvar componentArray = [];\n\t\t\tvar listArray = [];\n\t\t\tvar parenDepth = 0;\n\t\t\tvar pos = 0;\n\t\t\tvar inComment = false;\n\n\t\t\tfunction pushComponent() {\n\t\t\t\tif (component) {\n\t\t\t\t\tcomponentArray.push(component);\n\t\t\t\t\tcomponent = \"\";\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tfunction pushComponentArray() {\n\t\t\t\tif (componentArray[0]) {\n\t\t\t\t\tlistArray.push(componentArray);\n\t\t\t\t\tcomponentArray = [];\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// (Loop forwards from the beginning of the string.)\n\t\t\twhile (true) {\n\t\t\t\tchrctr = str.charAt(pos);\n\n\t\t\t\tif (chrctr === \"\") { // ( End of string reached.)\n\t\t\t\t\tpushComponent();\n\t\t\t\t\tpushComponentArray();\n\t\t\t\t\treturn listArray;\n\t\t\t\t} else if (inComment) {\n\t\t\t\t\tif ((chrctr === \"*\") && (str[pos + 1] === \"/\")) { // (At end of a comment.)\n\t\t\t\t\t\tinComment = false;\n\t\t\t\t\t\tpos += 2;\n\t\t\t\t\t\tpushComponent();\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tpos += 1; // (Skip all characters inside comments.)\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t}\n\t\t\t\t} else if (isSpace(chrctr)) {\n\t\t\t\t\t// (If previous character in loop was also a space, or if\n\t\t\t\t\t// at the beginning of the string, do not add space char to\n\t\t\t\t\t// component.)\n\t\t\t\t\tif ( (str.charAt(pos - 1) && isSpace( str.charAt(pos - 1) ) ) || !component ) {\n\t\t\t\t\t\tpos += 1;\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t} else if (parenDepth === 0) {\n\t\t\t\t\t\tpushComponent();\n\t\t\t\t\t\tpos +=1;\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t} else {\n\t\t\t\t\t\t// (Replace any space character with a plain space for legibility.)\n\t\t\t\t\t\tchrctr = \" \";\n\t\t\t\t\t}\n\t\t\t\t} else if (chrctr === \"(\") {\n\t\t\t\t\tparenDepth += 1;\n\t\t\t\t} else if (chrctr === \")\") {\n\t\t\t\t\tparenDepth -= 1;\n\t\t\t\t} else if (chrctr === \",\") {\n\t\t\t\t\tpushComponent();\n\t\t\t\t\tpushComponentArray();\n\t\t\t\t\tpos += 1;\n\t\t\t\t\tcontinue;\n\t\t\t\t} else if ( (chrctr === \"/\") && (str.charAt(pos + 1) === \"*\") ) {\n\t\t\t\t\tinComment = true;\n\t\t\t\t\tpos += 2;\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\tcomponent = component + chrctr;\n\t\t\t\tpos += 1;\n\t\t\t}\n\t\t}\n\n\t\tfunction isValidNonNegativeSourceSizeValue(s) {\n\t\t\tif (regexCssLengthWithUnits.test(s) && (parseFloat(s) >= 0)) {return true;}\n\t\t\tif (regexCssCalc.test(s)) {return true;}\n\t\t\t// ( http://www.w3.org/TR/CSS2/syndata.html#numbers says:\n\t\t\t// \"-0 is equivalent to 0 and is not a negative number.\" which means that\n\t\t\t// unitless zero and unitless negative zero must be accepted as special cases.)\n\t\t\tif ((s === \"0\") || (s === \"-0\") || (s === \"+0\")) {return true;}\n\t\t\treturn false;\n\t\t}\n\n\t\t// When asked to parse a sizes attribute from an element, parse a\n\t\t// comma-separated list of component values from the value of the element's\n\t\t// sizes attribute (or the empty string, if the attribute is absent), and let\n\t\t// unparsed sizes list be the result.\n\t\t// http://dev.w3.org/csswg/css-syntax/#parse-comma-separated-list-of-component-values\n\n\t\tunparsedSizesList = parseComponentValues(strValue);\n\t\tunparsedSizesListLength = unparsedSizesList.length;\n\n\t\t// For each unparsed size in unparsed sizes list:\n\t\tfor (i = 0; i < unparsedSizesListLength; i++) {\n\t\t\tunparsedSize = unparsedSizesList[i];\n\n\t\t\t// 1. Remove all consecutive s from the end of unparsed size.\n\t\t\t// ( parseComponentValues() already omits spaces outside of parens. )\n\n\t\t\t// If unparsed size is now empty, that is a parse error; continue to the next\n\t\t\t// iteration of this algorithm.\n\t\t\t// ( parseComponentValues() won't push an empty array. )\n\n\t\t\t// 2. If the last component value in unparsed size is a valid non-negative\n\t\t\t// , let size be its value and remove the component value\n\t\t\t// from unparsed size. Any CSS function other than the calc() function is\n\t\t\t// invalid. Otherwise, there is a parse error; continue to the next iteration\n\t\t\t// of this algorithm.\n\t\t\t// http://dev.w3.org/csswg/css-syntax/#parse-component-value\n\t\t\tlastComponentValue = unparsedSize[unparsedSize.length - 1];\n\n\t\t\tif (isValidNonNegativeSourceSizeValue(lastComponentValue)) {\n\t\t\t\tsize = lastComponentValue;\n\t\t\t\tunparsedSize.pop();\n\t\t\t} else {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\t// 3. Remove all consecutive s from the end of unparsed\n\t\t\t// size. If unparsed size is now empty, return size and exit this algorithm.\n\t\t\t// If this was not the last item in unparsed sizes list, that is a parse error.\n\t\t\tif (unparsedSize.length === 0) {\n\t\t\t\treturn size;\n\t\t\t}\n\n\t\t\t// 4. Parse the remaining component values in unparsed size as a\n\t\t\t// . If it does not parse correctly, or it does parse\n\t\t\t// correctly but the evaluates to false, continue to the\n\t\t\t// next iteration of this algorithm.\n\t\t\t// (Parsing all possible compound media conditions in JS is heavy, complicated,\n\t\t\t// and the payoff is unclear. Is there ever an situation where the\n\t\t\t// media condition parses incorrectly but still somehow evaluates to true?\n\t\t\t// Can we just rely on the browser/polyfill to do it?)\n\t\t\tunparsedSize = unparsedSize.join(\" \");\n\t\t\tif (!(pf.matchesMedia( unparsedSize ) ) ) {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\t// 5. Return size and exit this algorithm.\n\t\t\treturn size;\n\t\t}\n\n\t\t// If the above algorithm exhausts unparsed sizes list without returning a\n\t\t// size value, return 100vw.\n\t\treturn \"100vw\";\n\t}\n\n\t// namespace\n\tpf.ns = (\"pf\" + new Date().getTime()).substr(0, 9);\n\n\t// srcset support test\n\tpf.supSrcset = \"srcset\" in image;\n\tpf.supSizes = \"sizes\" in image;\n\tpf.supPicture = !!window.HTMLPictureElement;\n\n\t// UC browser does claim to support srcset and picture, but not sizes,\n\t// this extended test reveals the browser does support nothing\n\tif (pf.supSrcset && pf.supPicture && !pf.supSizes) {\n\t\t(function(image2) {\n\t\t\timage.srcset = \"data:,a\";\n\t\t\timage2.src = \"data:,a\";\n\t\t\tpf.supSrcset = image.complete === image2.complete;\n\t\t\tpf.supPicture = pf.supSrcset && pf.supPicture;\n\t\t})(document.createElement(\"img\"));\n\t}\n\n\t// Safari9 has basic support for sizes, but does't expose the `sizes` idl attribute\n\tif (pf.supSrcset && !pf.supSizes) {\n\n\t\t(function() {\n\t\t\tvar width2 = \"data:image/gif;base64,R0lGODlhAgABAPAAAP///wAAACH5BAAAAAAALAAAAAACAAEAAAICBAoAOw==\";\n\t\t\tvar width1 = \"data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==\";\n\t\t\tvar img = document.createElement(\"img\");\n\t\t\tvar test = function() {\n\t\t\t\tvar width = img.width;\n\n\t\t\t\tif (width === 2) {\n\t\t\t\t\tpf.supSizes = true;\n\t\t\t\t}\n\n\t\t\t\talwaysCheckWDescriptor = pf.supSrcset && !pf.supSizes;\n\n\t\t\t\tisSupportTestReady = true;\n\t\t\t\t// force async\n\t\t\t\tsetTimeout(picturefill);\n\t\t\t};\n\n\t\t\timg.onload = test;\n\t\t\timg.onerror = test;\n\t\t\timg.setAttribute(\"sizes\", \"9px\");\n\n\t\t\timg.srcset = width1 + \" 1w,\" + width2 + \" 9w\";\n\t\t\timg.src = width1;\n\t\t})();\n\n\t} else {\n\t\tisSupportTestReady = true;\n\t}\n\n\t// using pf.qsa instead of dom traversing does scale much better,\n\t// especially on sites mixing responsive and non-responsive images\n\tpf.selShort = \"picture>img,img[srcset]\";\n\tpf.sel = pf.selShort;\n\tpf.cfg = cfg;\n\n\t/**\n\t * Shortcut property for `devicePixelRatio` ( for easy overriding in tests )\n\t */\n\tpf.DPR = (DPR || 1 );\n\tpf.u = units;\n\n\t// container of supported mime types that one might need to qualify before using\n\tpf.types = types;\n\n\tpf.setSize = noop;\n\n\t/**\n\t * Gets a string and returns the absolute URL\n\t * @param src\n\t * @returns {String} absolute URL\n\t */\n\n\tpf.makeUrl = memoize(function(src) {\n\t\tanchor.href = src;\n\t\treturn anchor.href;\n\t});\n\n\t/**\n\t * Gets a DOM element or document and a selctor and returns the found matches\n\t * Can be extended with jQuery/Sizzle for IE7 support\n\t * @param context\n\t * @param sel\n\t * @returns {NodeList|Array}\n\t */\n\tpf.qsa = function(context, sel) {\n\t\treturn ( \"querySelector\" in context ) ? context.querySelectorAll(sel) : [];\n\t};\n\n\t/**\n\t * Shortcut method for matchMedia ( for easy overriding in tests )\n\t * wether native or pf.mMQ is used will be decided lazy on first call\n\t * @returns {boolean}\n\t */\n\tpf.matchesMedia = function() {\n\t\tif ( window.matchMedia && (matchMedia( \"(min-width: 0.1em)\" ) || {}).matches ) {\n\t\t\tpf.matchesMedia = function( media ) {\n\t\t\t\treturn !media || ( matchMedia( media ).matches );\n\t\t\t};\n\t\t} else {\n\t\t\tpf.matchesMedia = pf.mMQ;\n\t\t}\n\n\t\treturn pf.matchesMedia.apply( this, arguments );\n\t};\n\n\t/**\n\t * A simplified matchMedia implementation for IE8 and IE9\n\t * handles only min-width/max-width with px or em values\n\t * @param media\n\t * @returns {boolean}\n\t */\n\tpf.mMQ = function( media ) {\n\t\treturn media ? evalCSS(media) : true;\n\t};\n\n\t/**\n\t * Returns the calculated length in css pixel from the given sourceSizeValue\n\t * http://dev.w3.org/csswg/css-values-3/#length-value\n\t * intended Spec mismatches:\n\t * * Does not check for invalid use of CSS functions\n\t * * Does handle a computed length of 0 the same as a negative and therefore invalid value\n\t * @param sourceSizeValue\n\t * @returns {Number}\n\t */\n\tpf.calcLength = function( sourceSizeValue ) {\n\n\t\tvar value = evalCSS(sourceSizeValue, true) || false;\n\t\tif (value < 0) {\n\t\t\tvalue = false;\n\t\t}\n\n\t\treturn value;\n\t};\n\n\t/**\n\t * Takes a type string and checks if its supported\n\t */\n\n\tpf.supportsType = function( type ) {\n\t\treturn ( type ) ? types[ type ] : true;\n\t};\n\n\t/**\n\t * Parses a sourceSize into mediaCondition (media) and sourceSizeValue (length)\n\t * @param sourceSizeStr\n\t * @returns {*}\n\t */\n\tpf.parseSize = memoize(function( sourceSizeStr ) {\n\t\tvar match = ( sourceSizeStr || \"\" ).match(regSize);\n\t\treturn {\n\t\t\tmedia: match && match[1],\n\t\t\tlength: match && match[2]\n\t\t};\n\t});\n\n\tpf.parseSet = function( set ) {\n\t\tif ( !set.cands ) {\n\t\t\tset.cands = parseSrcset(set.srcset, set);\n\t\t}\n\t\treturn set.cands;\n\t};\n\n\t/**\n\t * returns 1em in css px for html/body default size\n\t * function taken from respondjs\n\t * @returns {*|number}\n\t */\n\tpf.getEmValue = function() {\n\t\tvar body;\n\t\tif ( !eminpx && (body = document.body) ) {\n\t\t\tvar div = document.createElement( \"div\" ),\n\t\t\t\toriginalHTMLCSS = docElem.style.cssText,\n\t\t\t\toriginalBodyCSS = body.style.cssText;\n\n\t\t\tdiv.style.cssText = baseStyle;\n\n\t\t\t// 1em in a media query is the value of the default font size of the browser\n\t\t\t// reset docElem and body to ensure the correct value is returned\n\t\t\tdocElem.style.cssText = fsCss;\n\t\t\tbody.style.cssText = fsCss;\n\n\t\t\tbody.appendChild( div );\n\t\t\teminpx = div.offsetWidth;\n\t\t\tbody.removeChild( div );\n\n\t\t\t//also update eminpx before returning\n\t\t\teminpx = parseFloat( eminpx, 10 );\n\n\t\t\t// restore the original values\n\t\t\tdocElem.style.cssText = originalHTMLCSS;\n\t\t\tbody.style.cssText = originalBodyCSS;\n\n\t\t}\n\t\treturn eminpx || 16;\n\t};\n\n\t/**\n\t * Takes a string of sizes and returns the width in pixels as a number\n\t */\n\tpf.calcListLength = function( sourceSizeListStr ) {\n\t\t// Split up source size list, ie ( max-width: 30em ) 100%, ( max-width: 50em ) 50%, 33%\n\t\t//\n\t\t// or (min-width:30em) calc(30% - 15px)\n\t\tif ( !(sourceSizeListStr in sizeLengthCache) || cfg.uT ) {\n\t\t\tvar winningLength = pf.calcLength( parseSizes( sourceSizeListStr ) );\n\n\t\t\tsizeLengthCache[ sourceSizeListStr ] = !winningLength ? units.width : winningLength;\n\t\t}\n\n\t\treturn sizeLengthCache[ sourceSizeListStr ];\n\t};\n\n\t/**\n\t * Takes a candidate object with a srcset property in the form of url/\n\t * ex. \"images/pic-medium.png 1x, images/pic-medium-2x.png 2x\" or\n\t * \"images/pic-medium.png 400w, images/pic-medium-2x.png 800w\" or\n\t * \"images/pic-small.png\"\n\t * Get an array of image candidates in the form of\n\t * {url: \"/foo/bar.png\", resolution: 1}\n\t * where resolution is http://dev.w3.org/csswg/css-values-3/#resolution-value\n\t * If sizes is specified, res is calculated\n\t */\n\tpf.setRes = function( set ) {\n\t\tvar candidates;\n\t\tif ( set ) {\n\n\t\t\tcandidates = pf.parseSet( set );\n\n\t\t\tfor ( var i = 0, len = candidates.length; i < len; i++ ) {\n\t\t\t\tsetResolution( candidates[ i ], set.sizes );\n\t\t\t}\n\t\t}\n\t\treturn candidates;\n\t};\n\n\tpf.setRes.res = setResolution;\n\n\tpf.applySetCandidate = function( candidates, img ) {\n\t\tif ( !candidates.length ) {return;}\n\t\tvar candidate,\n\t\t\ti,\n\t\t\tj,\n\t\t\tlength,\n\t\t\tbestCandidate,\n\t\t\tcurSrc,\n\t\t\tcurCan,\n\t\t\tcandidateSrc,\n\t\t\tabortCurSrc;\n\n\t\tvar imageData = img[ pf.ns ];\n\t\tvar dpr = pf.DPR;\n\n\t\tcurSrc = imageData.curSrc || img[curSrcProp];\n\n\t\tcurCan = imageData.curCan || setSrcToCur(img, curSrc, candidates[0].set);\n\n\t\t// if we have a current source, we might either become lazy or give this source some advantage\n\t\tif ( curCan && curCan.set === candidates[ 0 ].set ) {\n\n\t\t\t// if browser can abort image request and the image has a higher pixel density than needed\n\t\t\t// and this image isn't downloaded yet, we skip next part and try to save bandwidth\n\t\t\tabortCurSrc = (supportAbort && !img.complete && curCan.res - 0.1 > dpr);\n\n\t\t\tif ( !abortCurSrc ) {\n\t\t\t\tcurCan.cached = true;\n\n\t\t\t\t// if current candidate is \"best\", \"better\" or \"okay\",\n\t\t\t\t// set it to bestCandidate\n\t\t\t\tif ( curCan.res >= dpr ) {\n\t\t\t\t\tbestCandidate = curCan;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif ( !bestCandidate ) {\n\n\t\t\tcandidates.sort( ascendingSort );\n\n\t\t\tlength = candidates.length;\n\t\t\tbestCandidate = candidates[ length - 1 ];\n\n\t\t\tfor ( i = 0; i < length; i++ ) {\n\t\t\t\tcandidate = candidates[ i ];\n\t\t\t\tif ( candidate.res >= dpr ) {\n\t\t\t\t\tj = i - 1;\n\n\t\t\t\t\t// we have found the perfect candidate,\n\t\t\t\t\t// but let's improve this a little bit with some assumptions ;-)\n\t\t\t\t\tif (candidates[ j ] &&\n\t\t\t\t\t\t(abortCurSrc || curSrc !== pf.makeUrl( candidate.url )) &&\n\t\t\t\t\t\tchooseLowRes(candidates[ j ].res, candidate.res, dpr, candidates[ j ].cached)) {\n\n\t\t\t\t\t\tbestCandidate = candidates[ j ];\n\n\t\t\t\t\t} else {\n\t\t\t\t\t\tbestCandidate = candidate;\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif ( bestCandidate ) {\n\n\t\t\tcandidateSrc = pf.makeUrl( bestCandidate.url );\n\n\t\t\timageData.curSrc = candidateSrc;\n\t\t\timageData.curCan = bestCandidate;\n\n\t\t\tif ( candidateSrc !== curSrc ) {\n\t\t\t\tpf.setSrc( img, bestCandidate );\n\t\t\t}\n\t\t\tpf.setSize( img );\n\t\t}\n\t};\n\n\tpf.setSrc = function( img, bestCandidate ) {\n\t\tvar origWidth;\n\t\timg.src = bestCandidate.url;\n\n\t\t// although this is a specific Safari issue, we don't want to take too much different code paths\n\t\tif ( bestCandidate.set.type === \"image/svg+xml\" ) {\n\t\t\torigWidth = img.style.width;\n\t\t\timg.style.width = (img.offsetWidth + 1) + \"px\";\n\n\t\t\t// next line only should trigger a repaint\n\t\t\t// if... is only done to trick dead code removal\n\t\t\tif ( img.offsetWidth + 1 ) {\n\t\t\t\timg.style.width = origWidth;\n\t\t\t}\n\t\t}\n\t};\n\n\tpf.getSet = function( img ) {\n\t\tvar i, set, supportsType;\n\t\tvar match = false;\n\t\tvar sets = img [ pf.ns ].sets;\n\n\t\tfor ( i = 0; i < sets.length && !match; i++ ) {\n\t\t\tset = sets[i];\n\n\t\t\tif ( !set.srcset || !pf.matchesMedia( set.media ) || !(supportsType = pf.supportsType( set.type )) ) {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tif ( supportsType === \"pending\" ) {\n\t\t\t\tset = supportsType;\n\t\t\t}\n\n\t\t\tmatch = set;\n\t\t\tbreak;\n\t\t}\n\n\t\treturn match;\n\t};\n\n\tpf.parseSets = function( element, parent, options ) {\n\t\tvar srcsetAttribute, imageSet, isWDescripor, srcsetParsed;\n\n\t\tvar hasPicture = parent && parent.nodeName.toUpperCase() === \"PICTURE\";\n\t\tvar imageData = element[ pf.ns ];\n\n\t\tif ( imageData.src === undefined || options.src ) {\n\t\t\timageData.src = getImgAttr.call( element, \"src\" );\n\t\t\tif ( imageData.src ) {\n\t\t\t\tsetImgAttr.call( element, srcAttr, imageData.src );\n\t\t\t} else {\n\t\t\t\tremoveImgAttr.call( element, srcAttr );\n\t\t\t}\n\t\t}\n\n\t\tif ( imageData.srcset === undefined || options.srcset || !pf.supSrcset || element.srcset ) {\n\t\t\tsrcsetAttribute = getImgAttr.call( element, \"srcset\" );\n\t\t\timageData.srcset = srcsetAttribute;\n\t\t\tsrcsetParsed = true;\n\t\t}\n\n\t\timageData.sets = [];\n\n\t\tif ( hasPicture ) {\n\t\t\timageData.pic = true;\n\t\t\tgetAllSourceElements( parent, imageData.sets );\n\t\t}\n\n\t\tif ( imageData.srcset ) {\n\t\t\timageSet = {\n\t\t\t\tsrcset: imageData.srcset,\n\t\t\t\tsizes: getImgAttr.call( element, \"sizes\" )\n\t\t\t};\n\n\t\t\timageData.sets.push( imageSet );\n\n\t\t\tisWDescripor = (alwaysCheckWDescriptor || imageData.src) && regWDesc.test(imageData.srcset || \"\");\n\n\t\t\t// add normal src as candidate, if source has no w descriptor\n\t\t\tif ( !isWDescripor && imageData.src && !getCandidateForSrc(imageData.src, imageSet) && !imageSet.has1x ) {\n\t\t\t\timageSet.srcset += \", \" + imageData.src;\n\t\t\t\timageSet.cands.push({\n\t\t\t\t\turl: imageData.src,\n\t\t\t\t\td: 1,\n\t\t\t\t\tset: imageSet\n\t\t\t\t});\n\t\t\t}\n\n\t\t} else if ( imageData.src ) {\n\t\t\timageData.sets.push( {\n\t\t\t\tsrcset: imageData.src,\n\t\t\t\tsizes: null\n\t\t\t} );\n\t\t}\n\n\t\timageData.curCan = null;\n\t\timageData.curSrc = undefined;\n\n\t\t// if img has picture or the srcset was removed or has a srcset and does not support srcset at all\n\t\t// or has a w descriptor (and does not support sizes) set support to false to evaluate\n\t\timageData.supported = !( hasPicture || ( imageSet && !pf.supSrcset ) || (isWDescripor && !pf.supSizes) );\n\n\t\tif ( srcsetParsed && pf.supSrcset && !imageData.supported ) {\n\t\t\tif ( srcsetAttribute ) {\n\t\t\t\tsetImgAttr.call( element, srcsetAttr, srcsetAttribute );\n\t\t\t\telement.srcset = \"\";\n\t\t\t} else {\n\t\t\t\tremoveImgAttr.call( element, srcsetAttr );\n\t\t\t}\n\t\t}\n\n\t\tif (imageData.supported && !imageData.srcset && ((!imageData.src && element.src) || element.src !== pf.makeUrl(imageData.src))) {\n\t\t\tif (imageData.src === null) {\n\t\t\t\telement.removeAttribute(\"src\");\n\t\t\t} else {\n\t\t\t\telement.src = imageData.src;\n\t\t\t}\n\t\t}\n\n\t\timageData.parsed = true;\n\t};\n\n\tpf.fillImg = function(element, options) {\n\t\tvar imageData;\n\t\tvar extreme = options.reselect || options.reevaluate;\n\n\t\t// expando for caching data on the img\n\t\tif ( !element[ pf.ns ] ) {\n\t\t\telement[ pf.ns ] = {};\n\t\t}\n\n\t\timageData = element[ pf.ns ];\n\n\t\t// if the element has already been evaluated, skip it\n\t\t// unless `options.reevaluate` is set to true ( this, for example,\n\t\t// is set to true when running `picturefill` on `resize` ).\n\t\tif ( !extreme && imageData.evaled === evalId ) {\n\t\t\treturn;\n\t\t}\n\n\t\tif ( !imageData.parsed || options.reevaluate ) {\n\t\t\tpf.parseSets( element, element.parentNode, options );\n\t\t}\n\n\t\tif ( !imageData.supported ) {\n\t\t\tapplyBestCandidate( element );\n\t\t} else {\n\t\t\timageData.evaled = evalId;\n\t\t}\n\t};\n\n\tpf.setupRun = function() {\n\t\tif ( !alreadyRun || isVwDirty || (DPR !== window.devicePixelRatio) ) {\n\t\t\tupdateMetrics();\n\t\t}\n\t};\n\n\t// If picture is supported, well, that's awesome.\n\tif ( pf.supPicture ) {\n\t\tpicturefill = noop;\n\t\tpf.fillImg = noop;\n\t} else {\n\n\t\t // Set up picture polyfill by polling the document\n\t\t(function() {\n\t\t\tvar isDomReady;\n\t\t\tvar regReady = window.attachEvent ? /d$|^c/ : /d$|^c|^i/;\n\n\t\t\tvar run = function() {\n\t\t\t\tvar readyState = document.readyState || \"\";\n\n\t\t\t\ttimerId = setTimeout(run, readyState === \"loading\" ? 200 : 999);\n\t\t\t\tif ( document.body ) {\n\t\t\t\t\tpf.fillImgs();\n\t\t\t\t\tisDomReady = isDomReady || regReady.test(readyState);\n\t\t\t\t\tif ( isDomReady ) {\n\t\t\t\t\t\tclearTimeout( timerId );\n\t\t\t\t\t}\n\n\t\t\t\t}\n\t\t\t};\n\n\t\t\tvar timerId = setTimeout(run, document.body ? 9 : 99);\n\n\t\t\t// Also attach picturefill on resize and readystatechange\n\t\t\t// http://modernjavascript.blogspot.com/2013/08/building-better-debounce.html\n\t\t\tvar debounce = function(func, wait) {\n\t\t\t\tvar timeout, timestamp;\n\t\t\t\tvar later = function() {\n\t\t\t\t\tvar last = (new Date()) - timestamp;\n\n\t\t\t\t\tif (last < wait) {\n\t\t\t\t\t\ttimeout = setTimeout(later, wait - last);\n\t\t\t\t\t} else {\n\t\t\t\t\t\ttimeout = null;\n\t\t\t\t\t\tfunc();\n\t\t\t\t\t}\n\t\t\t\t};\n\n\t\t\t\treturn function() {\n\t\t\t\t\ttimestamp = new Date();\n\n\t\t\t\t\tif (!timeout) {\n\t\t\t\t\t\ttimeout = setTimeout(later, wait);\n\t\t\t\t\t}\n\t\t\t\t};\n\t\t\t};\n\t\t\tvar lastClientWidth = docElem.clientHeight;\n\t\t\tvar onResize = function() {\n\t\t\t\tisVwDirty = Math.max(window.innerWidth || 0, docElem.clientWidth) !== units.width || docElem.clientHeight !== lastClientWidth;\n\t\t\t\tlastClientWidth = docElem.clientHeight;\n\t\t\t\tif ( isVwDirty ) {\n\t\t\t\t\tpf.fillImgs();\n\t\t\t\t}\n\t\t\t};\n\n\t\t\ton( window, \"resize\", debounce(onResize, 99 ) );\n\t\t\ton( document, \"readystatechange\", run );\n\t\t})();\n\t}\n\n\tpf.picturefill = picturefill;\n\t//use this internally for easy monkey patching/performance testing\n\tpf.fillImgs = picturefill;\n\tpf.teardownRun = noop;\n\n\t/* expose methods for testing */\n\tpicturefill._ = pf;\n\n\twindow.picturefillCFG = {\n\t\tpf: pf,\n\t\tpush: function(args) {\n\t\t\tvar name = args.shift();\n\t\t\tif (typeof pf[name] === \"function\") {\n\t\t\t\tpf[name].apply(pf, args);\n\t\t\t} else {\n\t\t\t\tcfg[name] = args[0];\n\t\t\t\tif (alreadyRun) {\n\t\t\t\t\tpf.fillImgs( { reselect: true } );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t};\n\n\twhile (setOptions && setOptions.length) {\n\t\twindow.picturefillCFG.push(setOptions.shift());\n\t}\n\n\t/* expose picturefill */\n\twindow.picturefill = picturefill;\n\n\t/* expose picturefill */\n\tif ( typeof module === \"object\" && typeof module.exports === \"object\" ) {\n\t\t// CommonJS, just export\n\t\tmodule.exports = picturefill;\n\t} else if ( typeof define === \"function\" && define.amd ) {\n\t\t// AMD support\n\t\tdefine( \"picturefill\", function() { return picturefill; } );\n\t}\n\n\t// IE8 evals this sync, so it must be the last thing we do\n\tif ( !pf.supPicture ) {\n\t\ttypes[ \"image/webp\" ] = detectTypeSupport(\"image/webp\", \"data:image/webp;base64,UklGRkoAAABXRUJQVlA4WAoAAAAQAAAAAAAAAAAAQUxQSAwAAAABBxAR/Q9ERP8DAABWUDggGAAAADABAJ0BKgEAAQADADQlpAADcAD++/1QAA==\" );\n\t}\n\n} )( window, document );\n","// shim for using process in browser\nvar process = module.exports = {};\n\n// cached from whatever global is present so that test runners that stub it\n// don't break things. But we need to wrap it in a try catch in case it is\n// wrapped in strict mode code which doesn't define any globals. It's inside a\n// function because try/catches deoptimize in certain engines.\n\nvar cachedSetTimeout;\nvar cachedClearTimeout;\n\nfunction defaultSetTimout() {\n throw new Error('setTimeout has not been defined');\n}\nfunction defaultClearTimeout () {\n throw new Error('clearTimeout has not been defined');\n}\n(function () {\n try {\n if (typeof setTimeout === 'function') {\n cachedSetTimeout = setTimeout;\n } else {\n cachedSetTimeout = defaultSetTimout;\n }\n } catch (e) {\n cachedSetTimeout = defaultSetTimout;\n }\n try {\n if (typeof clearTimeout === 'function') {\n cachedClearTimeout = clearTimeout;\n } else {\n cachedClearTimeout = defaultClearTimeout;\n }\n } catch (e) {\n cachedClearTimeout = defaultClearTimeout;\n }\n} ())\nfunction runTimeout(fun) {\n if (cachedSetTimeout === setTimeout) {\n //normal enviroments in sane situations\n return setTimeout(fun, 0);\n }\n // if setTimeout wasn't available but was latter defined\n if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {\n cachedSetTimeout = setTimeout;\n return setTimeout(fun, 0);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedSetTimeout(fun, 0);\n } catch(e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedSetTimeout.call(null, fun, 0);\n } catch(e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error\n return cachedSetTimeout.call(this, fun, 0);\n }\n }\n\n\n}\nfunction runClearTimeout(marker) {\n if (cachedClearTimeout === clearTimeout) {\n //normal enviroments in sane situations\n return clearTimeout(marker);\n }\n // if clearTimeout wasn't available but was latter defined\n if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {\n cachedClearTimeout = clearTimeout;\n return clearTimeout(marker);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedClearTimeout(marker);\n } catch (e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedClearTimeout.call(null, marker);\n } catch (e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.\n // Some versions of I.E. have different rules for clearTimeout vs setTimeout\n return cachedClearTimeout.call(this, marker);\n }\n }\n\n\n\n}\nvar queue = [];\nvar draining = false;\nvar currentQueue;\nvar queueIndex = -1;\n\nfunction cleanUpNextTick() {\n if (!draining || !currentQueue) {\n return;\n }\n draining = false;\n if (currentQueue.length) {\n queue = currentQueue.concat(queue);\n } else {\n queueIndex = -1;\n }\n if (queue.length) {\n drainQueue();\n }\n}\n\nfunction drainQueue() {\n if (draining) {\n return;\n }\n var timeout = runTimeout(cleanUpNextTick);\n draining = true;\n\n var len = queue.length;\n while(len) {\n currentQueue = queue;\n queue = [];\n while (++queueIndex < len) {\n if (currentQueue) {\n currentQueue[queueIndex].run();\n }\n }\n queueIndex = -1;\n len = queue.length;\n }\n currentQueue = null;\n draining = false;\n runClearTimeout(timeout);\n}\n\nprocess.nextTick = function (fun) {\n var args = new Array(arguments.length - 1);\n if (arguments.length > 1) {\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n }\n queue.push(new Item(fun, args));\n if (queue.length === 1 && !draining) {\n runTimeout(drainQueue);\n }\n};\n\n// v8 likes predictible objects\nfunction Item(fun, array) {\n this.fun = fun;\n this.array = array;\n}\nItem.prototype.run = function () {\n this.fun.apply(null, this.array);\n};\nprocess.title = 'browser';\nprocess.browser = true;\nprocess.env = {};\nprocess.argv = [];\nprocess.version = ''; // empty string to avoid regexp issues\nprocess.versions = {};\n\nfunction noop() {}\n\nprocess.on = noop;\nprocess.addListener = noop;\nprocess.once = noop;\nprocess.off = noop;\nprocess.removeListener = noop;\nprocess.removeAllListeners = noop;\nprocess.emit = noop;\nprocess.prependListener = noop;\nprocess.prependOnceListener = noop;\n\nprocess.listeners = function (name) { return [] }\n\nprocess.binding = function (name) {\n throw new Error('process.binding is not supported');\n};\n\nprocess.cwd = function () { return '/' };\nprocess.chdir = function (dir) {\n throw new Error('process.chdir is not supported');\n};\nprocess.umask = function() { return 0; };\n","module.exports = function(module) {\n\tif (!module.webpackPolyfill) {\n\t\tmodule.deprecate = function() {};\n\t\tmodule.paths = [];\n\t\t// module.parent = undefined by default\n\t\tif (!module.children) module.children = [];\n\t\tObject.defineProperty(module, \"loaded\", {\n\t\t\tenumerable: true,\n\t\t\tget: function() {\n\t\t\t\treturn module.l;\n\t\t\t}\n\t\t});\n\t\tObject.defineProperty(module, \"id\", {\n\t\t\tenumerable: true,\n\t\t\tget: function() {\n\t\t\t\treturn module.i;\n\t\t\t}\n\t\t});\n\t\tmodule.webpackPolyfill = 1;\n\t}\n\treturn module;\n};\n"],"sourceRoot":""}