1/*! 2 * modernizr v3.12.0 3 * Build https://modernizr.com/download?-applicationcache-audio-backgroundsize-borderimage-borderradius-boxshadow-canvas-canvastext-cssanimations-cssgradients-cssreflections-csstransforms-csstransforms3d-csstransitions-flexbox-fontface-generatedcontent-geolocation-hashchange-history-hsla-inlinesvg-input-inputtypes-localstorage-multiplebgs-opacity-postmessage-rgba-sessionstorage-smil-svgclippaths-textshadow-touchevents-video-webgl-websockets-websqldatabase-webworkers-addtest-atrule-domprefixes-hasevent-load-mq-prefixed-prefixedcss-prefixes-printshiv-setclasses-testallprops-testprop-teststyles-dontmin 4 * 5 * Copyright (c) 6 * Faruk Ates 7 * Paul Irish 8 * Alex Sexton 9 * Ryan Seddon 10 * Patrick Kettner 11 * Stu Cox 12 * Richard Herrera 13 * Veeck 14 15 * MIT License 16 */ 17!function(e,t,n,o){var r=[],a={_version:"3.12.0",_config:{classPrefix:"",enableClasses:!0,enableJSClass:!0,usePrefixes:!0},_q:[],on:function(e,t){var n=this;setTimeout(function(){t(n[e])},0)},addTest:function(e,t,n){r.push({name:e,fn:t,options:n})},addAsyncTest:function(e){r.push({name:null,fn:e})}},i=function(){};i.prototype=a,i=new i;var s=[];function c(e,t){return typeof e===t}var l,d,u=n.documentElement,p="svg"===u.nodeName.toLowerCase();function f(e){var t=u.className,n=i._config.classPrefix||"";if(p&&(t=t.baseVal),i._config.enableJSClass){var o=new RegExp("(^|\\s)"+n+"no-js(\\s|$)");t=t.replace(o,"$1"+n+"js$2")}i._config.enableClasses&&(e.length>0&&(t+=" "+n+e.join(" "+n)),p?u.className.baseVal=t:u.className=t)}function m(e,t){if("object"==typeof e)for(var n in e)l(e,n)&&m(n,e[n]);else{var o=(e=e.toLowerCase()).split("."),r=i[o[0]];if(2===o.length&&(r=r[o[1]]),void 0!==r)return i;t="function"==typeof t?t():t,1===o.length?i[o[0]]=t:(!i[o[0]]||i[o[0]]instanceof Boolean||(i[o[0]]=new Boolean(i[o[0]])),i[o[0]][o[1]]=t),f([(t&&!1!==t?"":"no-")+o.join("-")]),i._trigger(e,t)}return i}l=c(d={}.hasOwnProperty,"undefined")||c(d.call,"undefined")?function(e,t){return t in e&&c(e.constructor.prototype[t],"undefined")}:function(e,t){return d.call(e,t)},a._l={},a.on=function(e,t){this._l[e]||(this._l[e]=[]),this._l[e].push(t),i.hasOwnProperty(e)&&setTimeout(function(){i._trigger(e,i[e])},0)},a._trigger=function(e,t){if(this._l[e]){var n=this._l[e];setTimeout(function(){var e;for(e=0;e<n.length;e++)(0,n[e])(t)},0),delete this._l[e]}},i._q.push(function(){a.addTest=m});var h="Moz O ms Webkit",v=a._config.usePrefixes?h.split(" "):[];a._cssomPrefixes=v;var g=function(e){var n,r=L.length,a=t.CSSRule;if(void 0===a)return o;if(!e)return!1;if((n=(e=e.replace(/^@/,"")).replace(/-/g,"_").toUpperCase()+"_RULE")in a)return"@"+e;for(var i=0;i<r;i++){var s=L[i];if(s.toUpperCase()+"_"+n in a)return"@-"+s.toLowerCase()+"-"+e}return!1};a.atRule=g;var y=a._config.usePrefixes?h.toLowerCase().split(" "):[];function T(){return"function"!=typeof n.createElement?n.createElement(arguments[0]):p?n.createElementNS.call(n,"http://www.w3.org/2000/svg",arguments[0]):n.createElement.apply(n,arguments)}a._domPrefixes=y;var b,x=(b=!("onblur"in u),function(e,t){var n;return!!e&&(t&&"string"!=typeof t||(t=T(t||"div")),!(n=(e="on"+e)in t)&&b&&(t.setAttribute||(t=T("div")),t.setAttribute(e,""),n="function"==typeof t[e],t[e]!==o&&(t[e]=o),t.removeAttribute(e)),n)});a.hasEvent=x,p||function(e,t){var n,o,r=e.html5||{},a=/^<|^(?:button|map|select|textarea|object|iframe|option|optgroup)$/i,i=/^(?:a|b|code|div|fieldset|h1|h2|h3|h4|h5|h6|i|label|li|ol|p|q|span|strong|style|table|tbody|td|th|tr|ul)$/i,s="_html5shiv",c=0,l={};function d(e,t){var n=e.createElement("p"),o=e.getElementsByTagName("head")[0]||e.documentElement;return n.innerHTML="x<style>"+t+"</style>",o.insertBefore(n.lastChild,o.firstChild)}function u(){var e=h.elements;return"string"==typeof e?e.split(" "):e}function p(e){var t=l[e[s]];return t||(t={},c++,e[s]=c,l[c]=t),t}function f(e,n,r){return n||(n=t),o?n.createElement(e):(r||(r=p(n)),!(s=r.cache[e]?r.cache[e].cloneNode():i.test(e)?(r.cache[e]=r.createElem(e)).cloneNode():r.createElem(e)).canHaveChildren||a.test(e)||s.tagUrn?s:r.frag.appendChild(s));var s}function m(e){e||(e=t);var r=p(e);return!h.shivCSS||n||r.hasCSS||(r.hasCSS=!!d(e,"article,aside,dialog,figcaption,figure,footer,header,hgroup,main,nav,section{dis
17play:block}mark{background:#FF0;color:#000}template{display:none}")),o||function(e,t){t.cache||(t.cache={},t.createElem=e.createElement,t.createFrag=e.createDocumentFragment,t.frag=t.createFrag()),e.createElement=function(n){return h.shivMethods?f(n,e,t):t.createElem(n)},e.createDocumentFragment=Function("h,f","return function(){var n=f.cloneNode(),c=n.createElement;h.shivMethods&&("+u().join().replace(/[\w\-:]+/g,function(e){return t.createElem(e),t.frag.createElement(e),'c("'+e+'")'})+");return n}")(h,t.frag)}(e,r),e}!function(){try{var e=t.createElement("a");e.innerHTML="<xyz></xyz>",n="hidden"in e,o=1==e.childNodes.length||function(){t.createElement("a");var e=t.createDocumentFragment();return void 0===e.cloneNode||void 0===e.createDocumentFragment||void 0===e.createElement}()}catch(e){n=!0,o=!0}}();var h={elements:r.elements||"abbr article aside audio bdi canvas data datalist details dialog figcaption figure footer header hgroup main mark meter nav output picture progress section summary template time video",version:"3.7.3",shivCSS:!1!==r.shivCSS,supportsUnknownElements:o,shivMethods:!1!==r.shivMethods,type:"default",shivDocument:m,createElement:f,createDocumentFragment:function(e,n){if(e||(e=t),o)return e.createDocumentFragment();for(var r=(n=n||p(e)).frag.cloneNode(),a=0,i=u(),s=i.length;a<s;a++)r.createElement(i[a]);return r},addElements:function(e,t){var n=h.elements;"string"!=typeof n&&(n=n.join(" ")),"string"!=typeof e&&(e=e.join(" ")),h.elements=n+" "+e,m(t)}};e.html5=h,m(t);var v,g=/^$|\b(?:all|print)\b/,y="html5shiv",T=!(o||(v=t.documentElement,void 0===t.namespaces||void 0===t.parentWindow||void 0===v.applyElement||void 0===v.removeNode||void 0===e.attachEvent));function b(e){for(var t,n=e.attributes,o=n.length,r=e.ownerDocument.createElement(y+":"+e.nodeName);o--;)(t=n[o]).specified&&r.setAttribute(t.nodeName,t.nodeValue);return r.style.cssText=e.style.cssText,r}function x(e){var t,n,o=p(e),r=e.namespaces,a=e.parentWindow;if(!T||e.printShived)return e;function i(){clearTimeout(o._removeSheetTimer),t&&t.removeNode(!0),t=null}return void 0===r[y]&&r.add(y),a.attachEvent("onbeforeprint",function(){i();for(var o,r,a,s=e.styleSheets,c=[],l=s.length,p=Array(l);l--;)p[l]=s[l];for(;a=p.pop();)if(!a.disabled&&g.test(a.media)){try{r=(o=a.imports).length}catch(e){r=0}for(l=0;l<r;l++)p.push(o[l]);try{c.push(a.cssText)}catch(e){}}c=function(e){for(var t,n=e.split("{"),o=n.length,r=RegExp("(^|[\\s,>+~])("+u().join("|")+")(?=[[\\s,>+~#.:]|$)","gi"),a="$1"+y+"\\:$2";o--;)(t=n[o]=n[o].split("}"))[t.length-1]=t[t.length-1].replace(r,a),n[o]=t.join("}");return n.join("{")}(c.reverse().join("")),n=function(e){for(var t,n=e.getElementsByTagName("*"),o=n.length,r=RegExp("^(?:"+u().join("|")+")$","i"),a=[];o--;)t=n[o],r.test(t.nodeName)&&a.push(t.applyElement(b(t)));return a}(e),t=d(e,c)}),a.attachEvent("onafterprint",function(){!function(e){for(var t=e.length;t--;)e[t].removeNode()}(n),clearTimeout(o._removeSheetTimer),o._removeSheetTimer=setTimeout(i,500)}),e.printShived=!0,e}h.type+=" print",h.shivPrint=x,x(t),"object"==typeof module&&module.exports&&(module.exports=h)}(void 0!==t?t:this,n);var w=function(){},S=function(){};function C(e,t,o,r){var a,i,s,c,l="modernizr",d=T("div"),f=function(){var e=n.body;return e||((e=T(p?"svg":"body")).fake=!0),e}();if(parseInt(o,10))for(;o--;)(s=T("div")).id=r?r[o]:l+(o+1),d.appendChild(s);return(a=T("style")).type="text/css",a.id="s"+l,(f.fake?f:d).appendChild(a),f.appendChild(d),a.styleSheet?a.styleSheet.cssText=e:a.appendChild(n.createTextNode(e)),d.id=l,f.fake&&(f.style.background="",f.style.overflow="hidden",c=u.style.overflow,u.style.overflow="hidden",u.appendChild(f)),i=t(d,e),f.fake&&f.parentNode?(f.parentNode.removeChild(f),u.style.overflow=c,u.offsetHeight):d.parentNode.removeChild(d),!!i}function E(e,n,o){var r;if("getComputedStyle"in t){r=getComputedStyle.call(t,e,n);var a=t.console;if(null!==r)o&&(r=r.getPropertyValue(o));else if(a)a[a.error?"error":"log"].call(a,"getComputedStyle returning null, its possible modernizr test results are inaccurate")}else r=!n&&e.currentStyle&&e.currentStyle[o];return r}t.console&&(w=function(){var e=console.error?"error":"log";t.console[e].apply(t.console,Array.prototype.slice.call(arguments))},S=function(){var e=console.warn?"warn":"log";t.console[e].apply(t.console,Array.prototype.slice.call(arguments))}),a.load=function(){"yepnope"in t?(S("yepnope.js (aka Modernizr.load) is no longer included as part of Modernizr. yepnope appears to be available on the page, so weââ¬â¢ll use it to handle this call to Modernizr.load, but please update your co
17de to use yepnope directly.\n See http://github.com/Modernizr/Modernizr/issues/1182 for more information."),t.yepnope.apply(t,[].slice.call(arguments,0))):w("yepnope.js (aka Modernizr.load) is no longer included as part of Modernizr. Get it from http://yepnopejs.com. See http://github.com/Modernizr/Modernizr/issues/1182 for more information.")};var P,k=(P=t.matchMedia||t.msMatchMedia)?function(e){var t=P(e);return t&&t.matches||!1}:function(e){var t=!1;return C("@media "+e+" { #modernizr { position: absolute; } }",function(e){t="absolute"===E(e,null,"position")}),t};function _(e,t){return!!~(""+e).indexOf(t)}a.mq=k;var z={elem:T("modernizr")};i._q.push(function(){delete z.elem});var N={style:z.elem.style};function M(e){return e.replace(/([A-Z])/g,function(e,t){return"-"+t.toLowerCase()}).replace(/^ms-/,"-ms-")}function $(e){return e.replace(/([a-z])-([a-z])/g,function(e,t,n){return t+n.toUpperCase()}).replace(/^-/,"")}function j(e,n,r,a){if(a=!c(a,"undefined")&&a,!c(r,"undefined")){var i=function(e,n){var r=e.length;if("CSS"in t&&"supports"in t.CSS){for(;r--;)if(t.CSS.supports(M(e[r]),n))return!0;return!1}if("CSSSupportsRule"in t){for(var a=[];r--;)a.push("("+M(e[r])+":"+n+")");return C("@supports ("+(a=a.join(" or "))+") { #modernizr { position: absolute; } }",function(e){return"absolute"===E(e,null,"position")})}return o}(e,r);if(!c(i,"undefined"))return i}for(var s,l,d,u,p,f=["modernizr","tspan","samp"];!N.style&&f.length;)s=!0,N.modElem=T(f.shift()),N.style=N.modElem.style;function m(){s&&(delete N.style,delete N.modElem)}for(d=e.length,l=0;l<d;l++)if(u=e[l],p=N.style[u],_(u,"-")&&(u=$(u)),N.style[u]!==o){if(a||c(r,"undefined"))return m(),"pfx"!==n||u;try{N.style[u]=r}catch(e){}if(N.style[u]!==p)return m(),"pfx"!==n||u}return m(),!1}function A(e,t){return function(){return e.apply(t,arguments)}}function O(e,t,n,o,r){var a=e.charAt(0).toUpperCase()+e.slice(1),i=(e+" "+v.join(a+" ")+a).split(" ");return c(t,"string")||c(t,"undefined")?j(i,t,o,r):function(e,t,n){var o;for(var r in e)if(e[r]in t)return!1===n?e[r]:c(o=t[e[r]],"function")?A(o,n||t):o;return!1}(i=(e+" "+y.join(a+" ")+a).split(" "),t,n)}i._q.unshift(function(){delete N.style}),a.testAllProps=O;var R=a.prefixed=function(e,t,n){return 0===e.indexOf("@")?g(e):(-1!==e.indexOf("-")&&(e=$(e)),t?O(e,t,n):O(e,"pfx"))},L=a._config.usePrefixes?" -webkit- -moz- -o- -ms- ".split(" "):["",""];a._prefixes=L;a.prefixedCSS=function(e){var t=R(e);return t&&M(t)};function B(e,t,n){return O(e,o,o,t,n)}a.testAllProps=B;var D=a.testProp=function(e,t,n){return j([e],o,t,n)},F=a.testStyles=C; 18/*! 19{ 20 "name": "Touch Events", 21 "property": "touchevents", 22 "caniuse": "touch", 23 "tags": ["media", "attribute"], 24 "notes": [{ 25 "name": "Touch Events spec", 26 "href": "https://www.w3.org/TR/2013/WD-touch-events-20130124/" 27 }], 28 "warnings": [ 29 "** DEPRECATED see https://github.com/Modernizr/Modernizr/pull/2432 **", 30 "Indicates if the browser supports the Touch Events spec, and does not necessarily reflect a touchscreen device" 31 ], 32 "knownBugs": [ 33 "False-positive on some configurations of Nokia N900", 34 "False-positive on some BlackBerry 6.0 builds ââ¬â https://github.com/Modernizr/Modernizr/issues/372#issuecomment-3112695" 35 ] 36} 37!*/ 38i.addTest("touchevents",function(){if("ontouchstart"in t||t.TouchEvent||t.DocumentTouch&&n instanceof DocumentTouch)return!0;var e=["(",L.join("touch-enabled),("),"heartz",")"].join("");return k(e)}), 39/*! 40{ 41 "name": "Application Cache", 42 "property": "applicationcache", 43 "caniuse": "offline-apps", 44 "tags": ["storage", "offline"], 45 "notes": [{ 46 "name": "MDN Docs", 47 "href": "https://developer.mozilla.org/en/docs/HTML/Using_the_application_cache" 48 }], 49 "polyfills": ["html5gears"] 50} 51!*/ 52i.addTest("applicationcache","applicationCache"in t), 53/*! 54{ 55 "name": "HTML5 Audio Element", 56 "property": "audio", 57 "caniuse": "audio", 58 "tags": ["html5", "audio", "media"], 59 "notes": [{ 60 "name": "MDN Docs", 61 "href": "https://developer.mozilla.org/En/Media_formats_supported_by_the_audio_and_video_elements" 62 }] 63} 64!*/ 65function(){var e=T("audio");i.addTest("audio",function(){var t=!1;try{(t=!!e.canPlayType)&&(t=new Boolean(t))}catch(e){}return t});try{e.canPlayType&&(i.addTest("audio.ogg",e.canPlayType('audio/ogg; codecs="vorbis"').replace(/^no$/,"")),i.addTest("audio.mp3",e.canPlayType('audio/mpeg; codecs="mp3"').replace(/^no$/,"")),i.addTest("audio.opus",e.canPlayType('audio/ogg; codecs="opus"')||e.canPlayType('audio/webm; codecs="opus"').replace(/^no$/,"")),i.addTest("audio.wav",e.canPlayType('audio/wav; codecs="1"').replace(/^no$/,"")),i.addTest("audio.m4a",(e.canPlayType("audio/x-m4a;")||e.canPlayType("audio/aac;")).replace(/^no$/,"")))}catch(e){}}(), 66/*! 67{ 68 "name": "Canvas", 69 "property": "canvas", 70 "caniuse": "canvas", 71 "tags": ["canvas", "graphics"], 72 "polyfills": ["flashcanvas", "excanvas", "slcanvas", "fxcanvas"] 73} 74!*/ 75i.addTest("canvas",function(){var e=T("canvas");return!(!e.getContext||!e.getContext("2d"))}), 76/*! 77{ 78 "name": "Canvas text", 79 "property": "canvastext", 80 "caniuse": "canvas-text", 81 "tags": ["canvas", "graphics"], 82 "polyfills": ["canvastext"] 83} 84!*/ 85i.addTest("canvastext",function(){return!1!==i.canvas&&"function"==typeof T("canvas").getContext("2d").fillText}), 86/*! 87{ 88 "name": "Hashchange event",
89 "property": "hashchange", 90 "caniuse": "hashchange", 91 "tags": ["history"], 92 "notes": [{ 93 "name": "MDN Docs", 94 "href": "https://developer.mozilla.org/en-US/docs/Web/API/WindowEventHandlers/onhashchange" 95 }], 96 "polyfills": [ 97 "jquery-hashchange", 98 "moo-historymanager", 99 "jquery-ajaxy", 100 "hasher", 101 "shistory" 102 ] 103} 104!*/ 105i.addTest("hashchange",function(){return!1!==x("hashchange",t)&&(n.documentMode===o||n.documentMode>7)}), 106/*! 107{ 108 "name": "Geolocation API", 109 "property": "geolocation", 110 "caniuse": "geolocation", 111 "tags": ["media"], 112 "notes": [{ 113 "name": "MDN Docs", 114 "href": "https://developer.mozilla.org/en-US/docs/WebAPI/Using_geolocation" 115 }], 116 "polyfills": [ 117 "joshuabell-polyfill", 118 "webshims", 119 "geo-location-javascript", 120 "geolocation-api-polyfill" 121 ] 122} 123!*/ 124i.addTest("geolocation","geolocation"in navigator), 125/*! 126{ 127 "name": "History API", 128 "property": "history", 129 "caniuse": "history", 130 "tags": ["history"], 131 "authors": ["Hay Kranen", "Alexander Farkas"], 132 "notes": [{ 133 "name": "W3C Spec", 134 "href": "https://www.w3.org/TR/html51/browsers.html#the-history-interface" 135 }, { 136 "name": "MDN Docs", 137 "href": "https://developer.mozilla.org/en-US/docs/Web/API/window.history" 138 }], 139 "polyfills": ["historyjs", "html5historyapi"] 140} 141!*/ 142i.addTest("history",function(){var e=navigator.userAgent;return!!e&&((-1===e.indexOf("Android 2.")&&-1===e.indexOf("Android 4.0")||-1===e.indexOf("Mobile Safari")||-1!==e.indexOf("Chrome")||-1!==e.indexOf("Windows Phone")||"file:"===location.protocol)&&(t.history&&"pushState"in t.history))});var q=T("input"),I="autocomplete autofocus list placeholder max min multiple pattern required step".split(" "),V={}; 143/*! 144{ 145 "name": "Input attributes", 146 "property": "input", 147 "tags": ["forms"], 148 "authors": ["Mike Taylor"], 149 "notes": [{ 150 "name": "WHATWG Spec", 151 "href": "https://html.spec.whatwg.org/multipage/input.html#input-type-attr-summary" 152 }], 153 "knownBugs": ["Some blackberry devices report false positive for input.multiple"] 154} 155!*/i.input=function(e){for(var n=0,o=e.length;n<o;n++)V[e[n]]=!!(e[n]in q);return V.list&&(V.list=!(!T("datalist")||!t.HTMLDataListElement)),V}(I), 156/*! 157{ 158 "name": "Form input types", 159 "property": "inputtypes", 160 "caniuse": "forms", 161 "tags": ["forms"], 162 "authors": ["Mike Taylor"], 163 "polyfills": [ 164 "jquerytools", 165 "webshims", 166 "h5f", 167 "webforms2", 168 "nwxforms", 169 "fdslider", 170 "html5slider", 171 "galleryhtml5forms", 172 "jscolor", 173 "html5formshim", 174 "selectedoptionsjs", 175 "formvalidationjs" 176 ] 177} 178!*/ 179function(){for(var e,t,r,a=["search","tel","url","email","datetime","date","month","week","time","datetime-local","number","range","color"],s=0;s<a.length;s++)q.setAttribute("type",e=a[s]),(r="text"!==q.type&&"style"in q)&&(q.value="1)",q.style.cssText="position:absolute;visibility:hidden;",/^range$/.test(e)&&q.style.WebkitAppearance!==o?(u.appendChild(q),r=(t=n.defaultView).getComputedStyle&&"textfield"!==t.getComputedStyle(q,null).WebkitAppearance&&0!==q.offsetHeight,u.removeChild(q)):/^(search|tel)$/.test(e)||(r=/^(url|email)$/.test(e)?q.checkValidity&&!1===q.checkValidity():"1)"!==q.value)),i.addTest("inputtypes."+e,!!r)}(); 180/*! 181{ 182 "name": "postMessage", 183 "property": "postmessage", 184 "caniuse": "x-doc-messaging", 185 "notes": [{ 186 "name": "W3C Spec", 187 "href": "https://www.w3.org/TR/webmessaging/#crossDocumentMessages" 188 }], 189 "polyfills": ["easyxdm", "postmessage-jquery"], 190 "knownBugs": ["structuredclones - Android 2&3 can not send a structured clone of dates, filelists or regexps"], 191 "warnings": ["Some old WebKit versions have bugs. Stick with object, array, number and pixeldata to be safe."] 192} 193!*/ 194var W=!0;try{t.postMessage({toString:function(){W=!1}},"*")}catch(e){}i.addTest("postmessage",new Boolean("postMessage"in t)),i.addTest("postmessage.structuredclones",W), 195/*! 196{ 197 "name": "HTML5 Video", 198 "property": "video", 199 "caniuse": "video", 200 "tags": ["html5", "video", "media"], 201 "knownBugs": ["Without QuickTime, `Modernizr.video.h264` will be `undefined`; https://github.com/Modernizr/Modernizr/issues/546"], 202 "polyfills": [ 203 "html5media", 204 "mediaelementjs", 205 "sublimevideo", 206 "videojs", 207 "leanbackplayer", 208 "videoforeverybody" 209 ] 210} 211!*/ 212function(){var e=T("video");i.addTest("video",function(){var t=!1;try{(t=!!e.canPlayType)&&(t=new Boolean(t))}catch(e){}return t});try{e.canPlayType&&(i.addTest("video.ogg",e.canPlayType('video/ogg; codecs="theora"').replace(/^no$/,"")),i.addTest("video.h264",e.canPlayType('video/mp4; codecs="avc1.42E01E"').replace(/^no$/,"")),i.addTest("video.h265",e.canPlayType('video/mp4; codecs="hev1"').replace(/^no$/,"")),i.addTest("video.webm",e.canPlayType('video/webm; codecs="vp8, vorbis"').replace(/^no$/,"")),i.addTest("video.vp9",e.canPlayType('video/webm; codecs="vp9"').replace(/^no$/,"")),i.addTest("video.hls",e.canPlayType('application/x-mpegURL; codecs="avc1.42E01E"').replace(/^no$/,"")),i.addTest("video.av1",e.canPlayType('video/mp4; codecs="av01"').replace(/^no$/,"")))}catch(e){}}(), 213/*! 214{ 215 "name": "WebGL", 216 "property": "webgl", 217 "caniuse": "webgl", 218 "tags": ["webgl", "graphics"], 219 "polyfills": ["jebgl", "cwebgl", "iewebgl"] 220} 221!*/ 222i.addTest("webgl",function(){return"WebGLRenderingContext"in t}); 223/*! 224{ 225 "name": "WebSockets Support", 226 "property": "websockets",
227 "authors": ["Phread (@fearphage)", "Mike Sherov (@mikesherov)", "Burak Yigit Kaya (@BYK)"], 228 "caniuse": "websockets", 229 "tags": ["html5"], 230 "warnings": [ 231 "This test will reject any old version of WebSockets even if it is not prefixed such as in Safari 5.1" 232 ], 233 "notes": [{ 234 "name": "CLOSING State and Spec", 235 "href": "https://www.w3.org/TR/websockets/#the-websocket-interface" 236 }], 237 "polyfills": [ 238 "sockjs", 239 "socketio", 240 "kaazing-websocket-gateway", 241 "websocketjs", 242 "atmosphere", 243 "graceful-websocket", 244 "portal", 245 "datachannel" 246 ] 247} 248!*/ 249var U,H,G,J=!1;try{J="WebSocket"in t&&2===t.WebSocket.CLOSING}catch(e){}i.addTest("websockets",J), 250/*! 251{ 252 "name": "CSS Animations", 253 "property": "cssanimations", 254 "caniuse": "css-animation", 255 "polyfills": ["transformie", "csssandpaper"], 256 "tags": ["css"], 257 "warnings": ["Android < 4 will pass this test, but can only animate a single property at a time"], 258 "notes": [{ 259 "name": "Article: 'Dispelling the Android CSS animation myths'", 260 "href": "https://web.archive.org/web/20180602074607/https://daneden.me/2011/12/14/putting-up-with-androids-bullshit/" 261 }] 262} 263!*/ 264i.addTest("cssanimations",B("animationName","a",!0)), 265/*! 266{ 267 "name": "Background Size", 268 "property": "backgroundsize", 269 "tags": ["css"], 270 "knownBugs": ["This will false positive in Opera Mini - https://github.com/Modernizr/Modernizr/issues/396"], 271 "notes": [{ 272 "name": "Related Issue", 273 "href": "https://github.com/Modernizr/Modernizr/issues/396" 274 }] 275} 276!*/ 277i.addTest("backgroundsize",B("backgroundSize","100%",!0)), 278/*! 279{ 280 "name": "Border Image", 281 "property": "borderimage", 282 "caniuse": "border-image", 283 "polyfills": ["css3pie"], 284 "knownBugs": ["Android < 2.0 is true, but has a broken implementation"], 285 "tags": ["css"] 286} 287!*/ 288i.addTest("borderimage",B("borderImage","url() 1",!0)), 289/*! 290{ 291 "name": "Border Radius",
292 "property": "borderradius", 293 "caniuse": "border-radius", 294 "polyfills": ["css3pie"], 295 "tags": ["css"], 296 "notes": [{ 297 "name": "Comprehensive Compat Chart", 298 "href": "https://muddledramblings.com/table-of-css3-border-radius-compliance" 299 }] 300} 301!*/ 302i.addTest("borderradius",B("borderRadius","0px",!0)), 303/*! 304{ 305 "name": "Box Shadow", 306 "property": "boxshadow", 307 "caniuse": "css-boxshadow", 308 "tags": ["css"], 309 "knownBugs": [ 310 "WebOS false positives on this test.", 311 "The Kindle Silk browser false positives" 312 ] 313} 314!*/ 315i.addTest("boxshadow",B("boxShadow","1px 1px",!0)), 316/*! 317{ 318 "name": "Flexbox", 319 "property": "flexbox", 320 "caniuse": "flexbox", 321 "tags": ["css"], 322 "notes": [{ 323 "name": "The _new_ flexbox", 324 "href": "https://www.w3.org/TR/css-flexbox-1/" 325 }], 326 "warnings": [ 327 "A `true` result for this detect does not imply that the `flex-wrap` property is supported; see the `flexwrap` detect." 328 ] 329} 330!*/ 331i.addTest("flexbox",B("flexBasis","1px",!0)),(U=navigator.userAgent,H=U.match(/w(eb)?osbrowser/gi),G=U.match(/windows phone/gi)&&U.match(/iemobile\/([0-9])+/gi)&&parseFloat(RegExp.$1)>=9,H||G)?i.addTest("fontface",!1):F('@font-face {font-family:"font";src:url("https://")}',function(e,t){var o=n.getElementById("smodernizr"),r=o.sheet||o.styleSheet,a=r?r.cssRules&&r.cssRules[0]?r.cssRules[0].cssText:r.cssText||"":"",s=/src/i.test(a)&&0===a.indexOf(t.split(" ")[0]);i.addTest("fontface",s)}), 332/*! 333{ 334 "name": "CSS Generated Content", 335 "property": "generatedcontent", 336 "tags": ["css"], 337 "warnings": ["Android won't return correct height for anything below 7px #738"], 338 "notes": [{ 339 "name": "W3C Spec", 340 "href": "https://www.w3.org/TR/css3-selectors/#gen-content" 341 }, { 342 "name": "MDN Docs on :before", 343 "href": "https://developer.mozilla.org/en-US/docs/Web/CSS/::before" 344 }, { 345 "name": "MDN Docs on :after", 346 "href": "https://developer.mozilla.org/en-US/docs/Web/CSS/::after" 347 }] 348} 349!*/ 350F('#modernizr{font:0/0 a}#modernizr:after{content:":)";visibility:hidden;font:7px/1 a}',function(e){i.addTest("generatedcontent",e.offsetHeight>=6)}), 351/*! 352{ 353 "name": "CSS Gradients", 354 "caniuse": "css-gradients", 355 "property": "cssgradients", 356 "tags": ["css"], 357 "knownBugs": ["False-positives on webOS (https://github.com/Modernizr/Modernizr/issues/202)"], 358 "notes": [{ 359 "name": "Webkit Gradient Syntax", 360 "href": "https://webkit.org/blog/175/introducing-css-gradients/" 361 }, { 362 "name": "Linear Gradient Syntax", 363 "href": "https://developer.mozilla.org/en-US/docs/Web/CSS/linear-gradient" 364 }, { 365 "name": "W3C Spec", 366 "href": "https://drafts.csswg.org/css-images-3/#gradients" 367 }] 368} 369!*/ 370i.addTest("cssgradients",function(){for(var e,t="background-image:",n="",o=0,r=L.length-1;o<r;o++)e=0===o?"to ":"",n+=t+L[o]+"linear-gradient("+e+"left top, #9f9, white);";i._config.usePrefixes&&(n+=t+"-webkit-gradient(linear,left top,right bottom,from(#9f9),to(white));");var a=T("a").style;return a.cssText=n,(""+a.backgroundImage).indexOf("gradient")>-1}), 371/*! 372{ 373 "name": "CSS HSLA Colors", 374 "caniuse": "css3-colors", 375 "property": "hsla", 376 "tags": ["css"] 377} 378!*/ 379i.addTest("hsla",function(){var e=T("a").style;return e.cssText="background-color:hsla(120,40%,100%,.5)",_(e.backgroundColor,"rgba")||_(e.backgroundColor,"hsla")}), 380/*! 381{
382 "name": "CSS Multiple Backgrounds", 383 "caniuse": "multibackgrounds", 384 "property": "multiplebgs", 385 "tags": ["css"] 386} 387!*/ 388i.addTest("multiplebgs",function(){var e=T("a").style;return e.cssText="background:url(https://),url(https://),red url(https://)",/(url\s*\(.*?){3}/.test(e.background)}), 389/*! 390{ 391 "name": "CSS Opacity", 392 "caniuse": "css-opacity", 393 "property": "opacity", 394 "tags": ["css"] 395} 396!*/ 397i.addTest("opacity",function(){var e=T("a").style;return e.cssText=L.join("opacity:.55;"),/^0.55$/.test(e.opacity)}), 398/*! 399{ 400 "name": "CSS Reflections", 401 "caniuse": "css-reflections", 402 "property": "cssreflections", 403 "tags": ["css"] 404} 405!*/ 406i.addTest("cssreflections",B("boxReflect","above",!0)), 407/*! 408{ 409 "name": "CSS rgba", 410 "caniuse": "css3-colors", 411 "property": "rgba", 412 "tags": ["css"], 413 "notes": [{ 414 "name": "CSSTricks Tutorial", 415 "href": "https://css-tricks.com/rgba-browser-support/" 416 }] 417} 418!*/ 419i.addTest("rgba",function(){var e=T("a").style;return e.cssText="background-color:rgba(150,255,150,.5)",(""+e.backgroundColor).indexOf("rgba")>-1}), 420/*! 421{ 422 "name": "CSS textshadow", 423 "property": "textshadow", 424 "caniuse": "css-textshadow", 425 "tags": ["css"], 426 "knownBugs": ["FF3.0 will false positive on this test"] 427} 428!*/ 429i.addTest("textshadow",D("textShadow","1px 1px")), 430/*! 431{ 432 "name": "CSS Transforms", 433 "property": "csstransforms", 434 "caniuse": "transforms2d", 435 "tags": ["css"] 436} 437!*/ 438i.addTest("csstransforms",function(){return-1===navigator.userAgent.indexOf("Android 2.")&&B("transform","scale(1)",!0)}); 439/*! 440{ 441 "name": "CSS Supports", 442 "property": "supports", 443 "caniuse": "css-featurequeries", 444 "tags": ["css"], 445 "builderAliases": ["css_supports"], 446 "notes": [{ 447 "name": "W3C Spec (The @supports rule)", 448 "href": "https://dev.w3.org/csswg/css3-conditional/#at-supports" 449 }, { 450 "name": "Related Github Issue", 451 "href": "https://github.com/Modernizr/Modernizr/issues/648" 452 }, { 453 "name": "W3C Spec (The CSSSupportsRule interface)", 454 "href": "https://dev.w3.org/csswg/css3-conditional/#the-csssupportsrule-interface" 455 }] 456} 457!*/ 458var Z="CSS"in t&&"supports"in t.CSS,K="supportsCSS"in t;i.addTest("supports",Z||K), 459/*! 460{ 461 "name": "CSS Transforms 3D", 462 "property": "csstransforms3d", 463 "caniuse": "transforms3d", 464 "tags": ["css"], 465 "warnings": [ 466 "Chrome may occasionally fail this test on some systems; more info: https://bugs.chromium.org/p/chromium/issues/detail?id=129004" 467 ] 468} 469!*/ 470i.addTest("csstransforms3d",function(){return!!B("perspective","1px",!0)}), 471/*! 472{ 473 "name": "CSS Transitions", 474 "property": "csstransitions", 475 "caniuse": "css-transitions", 476 "tags": ["css"] 477} 478!*/ 479i.addTest("csstransitions",B("transition","all",!0)), 480/*! 481{ 482 "name": "Local Storage", 483 "property": "localstorage", 484 "caniuse": "namevalue-storage", 485 "tags": ["storage"], 486 "polyfills": [ 487 "joshuabell-polyfill", 488 "cupcake", 489 "storagepolyfill", 490 "amplifyjs", 491 "yui-cacheoffline" 492 ] 493} 494!*/ 495i.addTest("localstorage",function(){var e="modernizr";try{return localStorage.setItem(e,e),localStorage.removeItem(e),!0}catch(e){return!1}}), 496/*! 497{ 498 "name": "Session Storage", 499 "property": "sessionstorage", 500 "tags": ["storage"], 501 "polyfills": ["joshuabell-polyfill", "cupcake", "sessionstorage"] 502} 503!*/ 504i.addTest("sessionstorage",function(){var e="modernizr";try{return sessionStorage.setItem(e,e),sessionStorage.removeItem(e),!0}catch(e){return!1}}), 505/*! 506{ 507 "name": "Web SQL Database", 508 "property": "websqldatabase", 509 "caniuse": "sql-storage", 510 "tags": ["storage"] 511} 512!*/ 513i.addTest("websqldatabase","openDatabase"in t);var Q={}.toString; 514/*! 515{ 516 "name": "SVG clip paths", 517 "property": "svgclippaths", 518 "tags": ["svg"], 519 "notes": [{ 520 "name": "Demo", 521 "href": "http://srufaculty.sru.edu/david.dailey/svg/newstuff/clipPath4.svg" 522 }] 523} 524!*/i.addTest("svgclippaths",function(){return!!n.createElementNS&&/SVGClipPath/.test(Q.call(n.createElementNS("http://www.w3.org/2000/svg","clipPath")))}), 525/*! 526{ 527 "name": "Inline SVG", 528 "property": "inlinesvg", 529 "caniuse": "svg-html5", 530 "tags": ["svg"], 531 "notes": [{ 532 "name": "Test page", 533 "href": "https://paulirish.com/demo/inline-svg" 534 }, { 535 "name": "Test page and results", 536 "href": "https://codepen.io/eltonmesquita/full/GgXbvo/" 537 }], 538 "polyfills": ["inline-svg-polyfill"],
539 "knownBugs": ["False negative on some Chromia browsers."] 540} 541!*/ 542i.addTest("inlinesvg",function(){var e=T("div");return e.innerHTML="<svg/>","http://www.w3.org/2000/svg"===("undefined"!=typeof SVGRect&&e.firstChild&&e.firstChild.namespaceURI)}), 543/*! 544{ 545 "name": "SVG SMIL animation", 546 "property": "smil", 547 "caniuse": "svg-smil", 548 "tags": ["svg"], 549 "notes": [{ 550 "name": "W3C Spec", 551 "href": "https://www.w3.org/AudioVideo/" 552 }] 553} 554!*/ 555i.addTest("smil",function(){return!!n.createElementNS&&/SVGAnimate/.test(Q.call(n.createElementNS("http://www.w3.org/2000/svg","animate")))}), 556/*! 557{ 558 "name": "Web Workers", 559 "property": "webworkers", 560 "caniuse": "webworkers", 561 "tags": ["performance", "workers"], 562 "notes": [{ 563 "name": "W3C Spec", 564 "href": "https://www.w3.org/TR/workers/" 565 }, { 566 "name": "HTML5 Rocks Tutorial", 567 "href": "https://www.html5rocks.com/en/tutorials/workers/basics/" 568 }, { 569 "name": "MDN Docs", 570 "href": "https://developer.mozilla.org/en-US/docs/Web/API/Web_Workers_API/Using_web_workers" 571 }], 572 "polyfills": ["fakeworker", "html5shims"] 573} 574!*/ 575i.addTest("webworkers","Worker"in t),function(){var e,t,n,o,a,l;for(var d in r)if(r.hasOwnProperty(d)){if(e=[],(t=r[d]).name&&(e.push(t.name.toLowerCase()),t.options&&t.options.aliases&&t.options.aliases.length))for(n=0;n<t.options.aliases.length;n++)e.push(t.options.aliases[n].toLowerCase());for(o=c(t.fn,"function")?t.fn():t.fn,a=0;a<e.length;a++)1===(l=e[a].split(".")).length?i[l[0]]=o:(i[l[0]]&&(!i[l[0]]||i[l[0]]instanceof Boolean)||(i[l[0]]=new Boolean(i[l[0]])),i[l[0]][l[1]]=o),s.push((o?"":"no-")+l.join("-"))}}(),f(s),delete a.addTest,delete a.addAsyncTest;for(var X=0;X<i._q.length;X++)i._q[X]();e.Modernizr=i}(window,window,document);
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.