/*! * Bowser - a browser detector * https://github.com/ded/bowser * MIT License | (c) Dustin Diaz 2015 */ ! function(e, t) { typeof module != "undefined" && module.exports ? module.exports = t() : typeof define == "function" && define.amd ? define(t) : this[e] = t() }("bowser", function() { function t(t) { function n(e) { var n = t.match(e); return n && n.length > 1 && n[1] || "" } function r(e) { var n = t.match(e); return n && n.length > 1 && n[2] || "" } var i = n(/(ipod|iphone|ipad)/i).toLowerCase(), s = /like android/i.test(t), o = !s && /android/i.test(t), u = /CrOS/.test(t), a = n(/edge\/(\d+(\.\d+)?)/i), f = n(/version\/(\d+(\.\d+)?)/i), l = /tablet/i.test(t), c = !l && /[^-]mobi/i.test(t), h; /opera|opr/i.test(t) ? h = { name: "Opera", opera: e, version: f || n(/(?:opera|opr)[\s\/](\d+(\.\d+)?)/i) } : /yabrowser/i.test(t) ? h = { name: "Yandex Browser", yandexbrowser: e, version: f || n(/(?:yabrowser)[\s\/](\d+(\.\d+)?)/i) } : /windows phone/i.test(t) ? (h = { name: "Windows Phone", windowsphone: e }, a ? (h.msedge = e, h.version = a) : (h.msie = e, h.version = n(/iemobile\/(\d+(\.\d+)?)/i))) : /msie|trident/i.test(t) ? h = { name: "Internet Explorer", msie: e, version: n(/(?:msie |rv:)(\d+(\.\d+)?)/i) } : u ? h = { name: "Chrome", chromeBook: e, chrome: e, version: n(/(?:chrome|crios|crmo)\/(\d+(\.\d+)?)/i) } : /chrome.+? edge/i.test(t) ? h = { name: "Microsoft Edge", msedge: e, version: a } : /chrome|crios|crmo/i.test(t) ? h = { name: "Chrome", chrome: e, version: n(/(?:chrome|crios|crmo)\/(\d+(\.\d+)?)/i) } : i ? (h = { name: i == "iphone" ? "iPhone" : i == "ipad" ? "iPad" : "iPod" }, f && (h.version = f)) : /sailfish/i.test(t) ? h = { name: "Sailfish", sailfish: e, version: n(/sailfish\s?browser\/(\d+(\.\d+)?)/i) } : /seamonkey\//i.test(t) ? h = { name: "SeaMonkey", seamonkey: e, version: n(/seamonkey\/(\d+(\.\d+)?)/i) } : /firefox|iceweasel/i.test(t) ? (h = { name: "Firefox", firefox: e, version: n(/(?:firefox|iceweasel)[ \/](\d+(\.\d+)?)/i) }, /\((mobile|tablet);[^\)]*rv:[\d\.]+\)/i.test(t) && (h.firefoxos = e)) : /silk/i.test(t) ? h = { name: "Amazon Silk", silk: e, version: n(/silk\/(\d+(\.\d+)?)/i) } : o ? h = { name: "Android", version: f } : /phantom/i.test(t) ? h = { name: "PhantomJS", phantom: e, version: n(/phantomjs\/(\d+(\.\d+)?)/i) } : /blackberry|\bbb\d+/i.test(t) || /rim\stablet/i.test(t) ? h = { name: "BlackBerry", blackberry: e, version: f || n(/blackberry[\d]+\/(\d+(\.\d+)?)/i) } : /(web|hpw)os/i.test(t) ? (h = { name: "WebOS", webos: e, version: f || n(/w(?:eb)?osbrowser\/(\d+(\.\d+)?)/i) }, /touchpad\//i.test(t) && (h.touchpad = e)) : /bada/i.test(t) ? h = { name: "Bada", bada: e, version: n(/dolfin\/(\d+(\.\d+)?)/i) } : /tizen/i.test(t) ? h = { name: "Tizen", tizen: e, version: n(/(?:tizen\s?)?browser\/(\d+(\.\d+)?)/i) || f } : /safari/i.test(t) ? h = { name: "Safari", safari: e, version: f } : h = { name: n(/^(.*)\/(.*) /), version: r(/^(.*)\/(.*) /) }, !h.msedge && /(apple)?webkit/i.test(t) ? (h.name = h.name || "Webkit", h.webkit = e, !h.version && f && (h.version = f)) : !h.opera && /gecko\//i.test(t) && (h.name = h.name || "Gecko", h.gecko = e, h.version = h.version || n(/gecko\/(\d+(\.\d+)?)/i)), !h.msedge && (o || h.silk) ? h.android = e : i && (h[i] = e, h.ios = e); var p = ""; h.windowsphone ? p = n(/windows phone (?:os)?\s?(\d+(\.\d+)*)/i) : i ? (p = n(/os (\d+([_\s]\d+)*) like mac os x/i), p = p.replace(/[_\s]/g, ".")) : o ? p = n(/android[ \/-](\d+(\.\d+)*)/i) : h.webos ? p = n(/(?:web|hpw)os\/(\d+(\.\d+)*)/i) : h.blackberry ? p = n(/rim\stablet\sos\s(\d+(\.\d+)*)/i) : h.bada ? p = n(/bada\/(\d+(\.\d+)*)/i) : h.tizen && (p = n(/tizen[\/\s](\d+(\.\d+)*)/i)), p && (h.osversion = p); var d = p.split(".")[0]; if (l || i == "ipad" || o && (d == 3 || d == 4 && !c) || h.silk) h.tablet = e; else if (c || i == "iphone" || i == "ipod" || o || h.blackberry || h.webos || h.bada) h.mobile = e; return h.msedge || h.msie && h.version >= 10 || h.yandexbrowser && h.version >= 15 || h.chrome && h.version >= 43 || h.firefox && h.version >= 30 || h.safari && h.version >= 6 || h.opera && h.version >= 10 || h.ios && h.osversion && h.osversion.split(".")[0] >= 6 || h.blackberry && h.version >= 10.1 ? h.a = e : h.msie && h.version < 10 || h.chrome && h.version < 20 || h.firefox && h.version < 20 || h.safari && h.version < 6 || h.opera && h.version < 10 || h.ios && h.osversion && h.osversion.split(".")[0] < 6 ? h.c = e : h.x = e, h } var e = !0, n = t(typeof navigator != "undefined" ? navigator.userAgent : ""); return n.test = function(e) { for (var t = 0; t < e.length; ++t) { var r = e[t]; if (typeof r == "string" && r in n) return !0 } return !1 }, n._detect = t, n })