1!function(n, t, i) { 2 function s(n, t) { 3 return typeof n === t 4 } 5 function nt() { 6 var i, n, u, f, e, h, t, o; 7 for (o in c) 8 if (c.hasOwnProperty(o)) { 9 if (i = [], 10 n = c[o], 11 n.name && (i.push(n.name.toLowerCase()), 12 n.options && n.options.aliases && n.options.aliases.length)) 13 for (u = 0; u < n.options.aliases.length; u++) 14 i.push(n.options.aliases[u].toLowerCase()); 15 for (f = s(n.fn, "function") ? n.fn() : n.fn, 16 e = 0; e < i.length; e++) 17 h = i[e], 18 t = h.split("."), 19 1 === t.length ? r[t[0]] = f : (!r[t[0]] || r[t[0]]instanceof Boolean || (r[t[0]] = new Boolean(r[t[0]])), 20 r[t[0]][t[1]] = f), 21 d.push((f ? "" : "no-") + t.join("-")) 22 } 23 } 24 function tt(n) { 25 var t = o.className, i = r._config.classPrefix || "", u; 26 (l && (t = t.baseVal), 27 r._config.enableJSClass) && (u = new RegExp("(^|\\s)" + i + "no-js(\\s|$)"), 28 t = t.replace(u, "$1" + i + "js$2")); 29 r._config.enableClasses && (t += " " + i + n.join(" " + i), 30 l ? o.className.baseVal = t : o.className = t) 31 } 32 function h() { 33 return "function" != typeof t.createElement ? t.createElement(arguments[0]) : l ? t.createElementNS.call(t, "http://www.w3.org/2000/svg", arguments[0]) : t.createElement.apply(t, arguments) 34 } 35 function it(n, t) { 36 return !!~("" + n).indexOf(t) 37 } 38 function rt(n) { 39 return n.replace(/([a-z])-([a-z])/g, function(n, t, i) { 40 return t + i.toUpperCase() 41 }).replace(/^-/, "") 42 } 43 function ut(n, t) { 44 return function() { 45 return n.apply(t, arguments) 46 } 47 } 48 function ft(n, t, i) { 49 var r, u; 50 for (u in n) 51 if (n[u]in t) 52 return i === !1 ? n[u] : (r = t[n[u]], 53 s(r, "function") ? ut(r, i || t) : r); 54 return !1 55 } 56 function b(n) { 57 return n.replace(/([A-Z])/g, function(n, t) { 58 return "-" + t.toLowerCase() 59 }).replace(/^ms-/, "-ms-") 60 } 61 function et(t, i, r) { 62 var u, f, e; 63 return "getComputedStyle"in n ? (u = getComputedStyle.call(n, t, i), 64 f = n.console, 65 null !== u ? r && (u = u.getPropertyValue(r)) : f && (e = f.error ? "error" : "log", 66 f[e].call(f, "getComputedStyle returning null, its possible modernizr test results are inaccurate"))) : u = !i && t.currentStyle && t.currentStyle[r], 67 u 68 } 69 function ot() { 70 var n = t.body; 71 return n || (n = h(l ? "svg" : "body"), 72 n.fake = !0), 73 n 74 } 75 function st(n, i, r, u) { 76 var e, a, c, v, l = "modernizr", s = h("div"), f = ot(); 77 if (parseInt(r, 10)) 78 for (; r--; ) 79 c = h("div"), 80 c.id = u ? u[r] : l + (r + 1), 81 s.appendChild(c); 82 return e = h("style"), 83 e.type = "text/css", 84 e.id = "s" + l, 85 (f.fake ? f : s).appendChild(e), 86 f.appendChild(s), 87 e.styleSheet ? e.styleSheet.cssText = n : e.appendChild(t.createTextNode(n)), 88 s.id = l, 89 f.fake && (f.style.background = "", 90 f.style.overflow = "hidden", 91 v = o.style.overflow, 92 o.style.overflow = "hidden", 93 o.appendChild(f)), 94 a = i(s, n), 95 f.fake ? (f.parentNode.removeChild(f), 96 o.style.overflow = v, 97 o.offsetHeight) : s.parentNode.removeChild(s), 98 !!a 99 } 100 function ht(t, r) { 101 var f = t.length, u; 102 if ("CSS"in n && "supports"in n.CSS) { 103 for (; f--; ) 104 if (n.CSS.supports(b(t[f]), r)) 105 return !0; 106 return !1 107 } 108 if ("CSSSupportsRule"in n) { 109 for (u = []; f--; ) 110 u.push("(" + b(t[f]) + ":" + r + ")"); 111 return u = u.join(" or "), 112 st("@supports (" + u + ") { #modernizr { position: absolute; } }", function(n) { 113 return "absolute" == et(n, null, "position") 114 }) 115 } 116 return i 117 } 118 function ct(n, t, r, f) { 119 function c() { 120 v && (delete u.style, 121 delete u.modElem) 122 } 123 var l, v, o, y, e, p, a; 124 if ((f = s(f, "undefined") ? !1 : f, 125 !s(r, "undefined")) && (l = ht(n, r), 126 !s(l, "undefined"))) 127 return l; 128 for (a = ["modernizr", "tspan", "samp"]; !u.style && a.length; ) 129 v = !0, 130 u.modElem = h(a.shift()), 131 u.style = u.modElem.style; 132 for (y = n.length, 133 o = 0; y > o; o++) 134 if (e = n[o], 135 p = u.style[e], 136 it(e, "-") && (e = rt(e)), 137 u.style[e] !== i) { 138 if (f || s(r, "undefined")) 139 return c(), 140 "pfx" == t ? e : !0; 141 try { 142 u.style[e] = r 143 } catch (w) {} 144 if (u.style[e] != p) 145 return c(), 146 "pfx" == t ? e : !0 147 } 148 return c(), 149 !1 150 } 151 function k(n, t, i, r, u) { 152 var f = n.charAt(0).toUpperCase() + n.slice(1) 153 , e = (n + " " + y.join(f + " ") + f).split(" "); 154 return s(t, "string") || s(t, "undefined") ? ct(e, t, r, u) : (e = (n + " " + p.join(f + " ") + f).split(" "), 155 ft(e, t, i)) 156 } 157 function e(n, t, r) { 158 return k(n, i, i, t, r) 159 } 160 var d = [], c = [], f = { 161 _version: "3.5.0", 162 _config: { 163 classPrefix: "", 164 enableClasses: !0, 165 enableJSClass: !0, 166 usePrefixes: !0 167 }, 168 _q: [], 169 on: function(n, t) { 170 var i = this; 171 setTimeout(function() { 172 t(i[n]) 173 }, 0) 174 }, 175 addTest: function(n, t, i) { 176 c.push({ 177 name: n, 178 fn: t, 179 options: i 180 }) 181 }, 182 addAsyncTest: function(n) { 183 c.push({ 184 name: null, 185 fn: n 186 }) 187 } 188 }, r = function() {}, v, y, p, w, u, a; 189 r.prototype = f; 190 r = new r; 191 var o = t.documentElement 192 , l = "svg" === o.nodeName.toLowerCase() 193 , g = f._config.usePrefixes ? " -webkit- -moz- -o- -ms- ".split(" ") : ["", ""]; 194 for (f._prefixes = g, 195 r.addTest("csscalc", function() { 196 var n = "width:" 197 , t = h("a"); 198 return t.style.cssText = n + g.join("calc(10px);" + n), 199 !!t.style.length 200 }), 201 v = "Moz O ms Webkit", 202 y = f._config.usePrefixes ? v.split(" ") : [], 203 f._cssomPrefixes = y, 204 p = f._config.usePrefixes ? v.toLowerCase().split(" ") : [], 205 f._domPrefixes = p, 206 w = { 207 elem: h("modernizr") 208 }, 209 r._q.push(function() { 210 delete w.elem 211 }), 212 u = { 213 style: w.elem.style 214 }, 215 r._q.unshift(function() { 216 delete u.style 217 }), 218 f.testAllProps = k, 219 f.testAllProps = e, 220 r.addTest("boxshadow", e("boxShadow", "1px 1px", !0)), 221 function() { 222 r.addTest("csscolumns", function() { 223 var n = !1 224 , t = e("columnCount"); 225 try { 226 n = !!t; 227 n && (n = new Boolean(n)) 228 } catch (i) {} 229 return n 230 }); 231 for (var n, i, u = ["Width", "Span", "Fill", "Gap", "Rule", "RuleColor", "RuleStyle", "RuleWidth", "BreakBefore", "BreakAfter", "BreakInside"], t = 0; t < u.length; t++) 232 n = u[t].toLowerCase(), 233 i = e("column" + u[t]), 234 ("breakbefore" === n || "breakafter" === n || "breakinside" == n) && (i = i || e(u[t])), 235 r.addTest("csscolumns." + n, i) 236 }(), 237 r.addTest("cssgridlegacy", e("grid-columns", "10px", !0)), 238 r.addTest("cssgrid", e("grid-template-rows", "none", !0)), 239 r.addTest("flexbox", e("flexBasis", "1px", !0)), 240 r.addTest("csstransforms", function() { 241 return -1 === navigator.userAgent.indexOf("Android 2.") && e("transform", "scale(1)", !0) 242 }), 243 nt(), 244 tt(d), 245 delete f.addTest, 246 delete f.addAsyncTest, 247 a = 0; a < r._q.length; a++) 248 r._q[a](); 249 n.Modernizr = r 250}(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.