["^ ","~:resource-id",["~:shadow.build.classpath/resource","goog/labs/useragent/browser.js"],"~:js","goog.provide(\"goog.labs.userAgent.browser\");\ngoog.require(\"goog.array\");\ngoog.require(\"goog.labs.userAgent.util\");\ngoog.require(\"goog.object\");\ngoog.require(\"goog.string.internal\");\ngoog.labs.userAgent.browser.matchOpera_ = function() {\n  return goog.labs.userAgent.util.matchUserAgent(\"Opera\");\n};\ngoog.labs.userAgent.browser.matchIE_ = function() {\n  return goog.labs.userAgent.util.matchUserAgent(\"Trident\") || goog.labs.userAgent.util.matchUserAgent(\"MSIE\");\n};\ngoog.labs.userAgent.browser.matchEdgeHtml_ = function() {\n  return goog.labs.userAgent.util.matchUserAgent(\"Edge\");\n};\ngoog.labs.userAgent.browser.matchEdgeChromium_ = function() {\n  return goog.labs.userAgent.util.matchUserAgent(\"Edg/\");\n};\ngoog.labs.userAgent.browser.matchOperaChromium_ = function() {\n  return goog.labs.userAgent.util.matchUserAgent(\"OPR\");\n};\ngoog.labs.userAgent.browser.matchFirefox_ = function() {\n  return goog.labs.userAgent.util.matchUserAgent(\"Firefox\") || goog.labs.userAgent.util.matchUserAgent(\"FxiOS\");\n};\ngoog.labs.userAgent.browser.matchSafari_ = function() {\n  return goog.labs.userAgent.util.matchUserAgent(\"Safari\") && !(goog.labs.userAgent.browser.matchChrome_() || goog.labs.userAgent.browser.matchCoast_() || goog.labs.userAgent.browser.matchOpera_() || goog.labs.userAgent.browser.matchEdgeHtml_() || goog.labs.userAgent.browser.matchEdgeChromium_() || goog.labs.userAgent.browser.matchOperaChromium_() || goog.labs.userAgent.browser.matchFirefox_() || goog.labs.userAgent.browser.isSilk() || goog.labs.userAgent.util.matchUserAgent(\"Android\"));\n};\ngoog.labs.userAgent.browser.matchCoast_ = function() {\n  return goog.labs.userAgent.util.matchUserAgent(\"Coast\");\n};\ngoog.labs.userAgent.browser.matchIosWebview_ = function() {\n  return (goog.labs.userAgent.util.matchUserAgent(\"iPad\") || goog.labs.userAgent.util.matchUserAgent(\"iPhone\")) && !goog.labs.userAgent.browser.matchSafari_() && !goog.labs.userAgent.browser.matchChrome_() && !goog.labs.userAgent.browser.matchCoast_() && !goog.labs.userAgent.browser.matchFirefox_() && goog.labs.userAgent.util.matchUserAgent(\"AppleWebKit\");\n};\ngoog.labs.userAgent.browser.matchChrome_ = function() {\n  return (goog.labs.userAgent.util.matchUserAgent(\"Chrome\") || goog.labs.userAgent.util.matchUserAgent(\"CriOS\")) && !goog.labs.userAgent.browser.matchEdgeHtml_();\n};\ngoog.labs.userAgent.browser.matchAndroidBrowser_ = function() {\n  return goog.labs.userAgent.util.matchUserAgent(\"Android\") && !(goog.labs.userAgent.browser.isChrome() || goog.labs.userAgent.browser.isFirefox() || goog.labs.userAgent.browser.isOpera() || goog.labs.userAgent.browser.isSilk());\n};\ngoog.labs.userAgent.browser.isOpera = goog.labs.userAgent.browser.matchOpera_;\ngoog.labs.userAgent.browser.isIE = goog.labs.userAgent.browser.matchIE_;\ngoog.labs.userAgent.browser.isEdge = goog.labs.userAgent.browser.matchEdgeHtml_;\ngoog.labs.userAgent.browser.isEdgeChromium = goog.labs.userAgent.browser.matchEdgeChromium_;\ngoog.labs.userAgent.browser.isOperaChromium = goog.labs.userAgent.browser.matchOperaChromium_;\ngoog.labs.userAgent.browser.isFirefox = goog.labs.userAgent.browser.matchFirefox_;\ngoog.labs.userAgent.browser.isSafari = goog.labs.userAgent.browser.matchSafari_;\ngoog.labs.userAgent.browser.isCoast = goog.labs.userAgent.browser.matchCoast_;\ngoog.labs.userAgent.browser.isIosWebview = goog.labs.userAgent.browser.matchIosWebview_;\ngoog.labs.userAgent.browser.isChrome = goog.labs.userAgent.browser.matchChrome_;\ngoog.labs.userAgent.browser.isAndroidBrowser = goog.labs.userAgent.browser.matchAndroidBrowser_;\ngoog.labs.userAgent.browser.isSilk = function() {\n  return goog.labs.userAgent.util.matchUserAgent(\"Silk\");\n};\ngoog.labs.userAgent.browser.getVersion = function() {\n  var userAgentString = goog.labs.userAgent.util.getUserAgent();\n  if (goog.labs.userAgent.browser.isIE()) {\n    return goog.labs.userAgent.browser.getIEVersion_(userAgentString);\n  }\n  var versionTuples = goog.labs.userAgent.util.extractVersionTuples(userAgentString);\n  var versionMap = {};\n  goog.array.forEach(versionTuples, function(tuple) {\n    var key = tuple[0];\n    var value = tuple[1];\n    versionMap[key] = value;\n  });\n  var versionMapHasKey = goog.partial(goog.object.containsKey, versionMap);\n  function lookUpValueWithKeys(keys) {\n    var key = goog.array.find(keys, versionMapHasKey);\n    return versionMap[key] || \"\";\n  }\n  if (goog.labs.userAgent.browser.isOpera()) {\n    return lookUpValueWithKeys([\"Version\", \"Opera\"]);\n  }\n  if (goog.labs.userAgent.browser.isEdge()) {\n    return lookUpValueWithKeys([\"Edge\"]);\n  }\n  if (goog.labs.userAgent.browser.isEdgeChromium()) {\n    return lookUpValueWithKeys([\"Edg\"]);\n  }\n  if (goog.labs.userAgent.browser.isChrome()) {\n    return lookUpValueWithKeys([\"Chrome\", \"CriOS\", \"HeadlessChrome\"]);\n  }\n  var tuple = versionTuples[2];\n  return tuple && tuple[1] || \"\";\n};\ngoog.labs.userAgent.browser.isVersionOrHigher = function(version) {\n  return goog.string.internal.compareVersions(goog.labs.userAgent.browser.getVersion(), version) >= 0;\n};\ngoog.labs.userAgent.browser.getIEVersion_ = function(userAgent) {\n  var rv = /rv: *([\\d\\.]*)/.exec(userAgent);\n  if (rv && rv[1]) {\n    return rv[1];\n  }\n  var version = \"\";\n  var msie = /MSIE +([\\d\\.]+)/.exec(userAgent);\n  if (msie && msie[1]) {\n    var tridentVersion = /Trident\\/(\\d.\\d)/.exec(userAgent);\n    if (msie[1] == \"7.0\") {\n      if (tridentVersion && tridentVersion[1]) {\n        switch(tridentVersion[1]) {\n          case \"4.0\":\n            version = \"8.0\";\n            break;\n          case \"5.0\":\n            version = \"9.0\";\n            break;\n          case \"6.0\":\n            version = \"10.0\";\n            break;\n          case \"7.0\":\n            version = \"11.0\";\n            break;\n        }\n      } else {\n        version = \"7.0\";\n      }\n    } else {\n      version = msie[1];\n    }\n  }\n  return version;\n};\n","~:source","/**\n * @license\n * Copyright The Closure Library Authors.\n * SPDX-License-Identifier: Apache-2.0\n */\n\n/**\n * @fileoverview Closure user agent detection (Browser).\n * @see <a href=\"http://www.useragentstring.com/\">User agent strings</a>\n * For more information on rendering engine, platform, or device see the other\n * sub-namespaces in goog.labs.userAgent, goog.labs.userAgent.platform,\n * goog.labs.userAgent.device respectively.)\n */\n\ngoog.provide('goog.labs.userAgent.browser');\n\ngoog.require('goog.array');\ngoog.require('goog.labs.userAgent.util');\ngoog.require('goog.object');\ngoog.require('goog.string.internal');\n\n\n// TODO(nnaze): Refactor to remove excessive exclusion logic in matching\n// functions.\n\n\n/**\n * @return {boolean} Whether the user's browser is Opera.  Note: Chromium\n *     based Opera (Opera 15+) is detected as Chrome to avoid unnecessary\n *     special casing.\n * @private\n */\ngoog.labs.userAgent.browser.matchOpera_ = function() {\n  'use strict';\n  return goog.labs.userAgent.util.matchUserAgent('Opera');\n};\n\n\n/**\n * @return {boolean} Whether the user's browser is IE.\n * @private\n */\ngoog.labs.userAgent.browser.matchIE_ = function() {\n  'use strict';\n  return goog.labs.userAgent.util.matchUserAgent('Trident') ||\n      goog.labs.userAgent.util.matchUserAgent('MSIE');\n};\n\n\n/**\n * @return {boolean} Whether the user's browser is Edge. This refers to EdgeHTML\n * based Edge.\n * @private\n */\ngoog.labs.userAgent.browser.matchEdgeHtml_ = function() {\n  'use strict';\n  return goog.labs.userAgent.util.matchUserAgent('Edge');\n};\n\n\n/**\n * @return {boolean} Whether the user's browser is Chromium based Edge.\n * @private\n */\ngoog.labs.userAgent.browser.matchEdgeChromium_ = function() {\n  'use strict';\n  return goog.labs.userAgent.util.matchUserAgent('Edg/');\n};\n\n\n/**\n * @return {boolean} Whether the user's browser is Chromium based Opera.\n * @private\n */\ngoog.labs.userAgent.browser.matchOperaChromium_ = function() {\n  'use strict';\n  return goog.labs.userAgent.util.matchUserAgent('OPR');\n};\n\n\n/**\n * @return {boolean} Whether the user's browser is Firefox.\n * @private\n */\ngoog.labs.userAgent.browser.matchFirefox_ = function() {\n  'use strict';\n  return goog.labs.userAgent.util.matchUserAgent('Firefox') ||\n      goog.labs.userAgent.util.matchUserAgent('FxiOS');\n};\n\n\n/**\n * @return {boolean} Whether the user's browser is Safari.\n * @private\n */\ngoog.labs.userAgent.browser.matchSafari_ = function() {\n  'use strict';\n  return goog.labs.userAgent.util.matchUserAgent('Safari') &&\n      !(goog.labs.userAgent.browser.matchChrome_() ||\n        goog.labs.userAgent.browser.matchCoast_() ||\n        goog.labs.userAgent.browser.matchOpera_() ||\n        goog.labs.userAgent.browser.matchEdgeHtml_() ||\n        goog.labs.userAgent.browser.matchEdgeChromium_() ||\n        goog.labs.userAgent.browser.matchOperaChromium_() ||\n        goog.labs.userAgent.browser.matchFirefox_() ||\n        goog.labs.userAgent.browser.isSilk() ||\n        goog.labs.userAgent.util.matchUserAgent('Android'));\n};\n\n\n/**\n * @return {boolean} Whether the user's browser is Coast (Opera's Webkit-based\n *     iOS browser).\n * @private\n */\ngoog.labs.userAgent.browser.matchCoast_ = function() {\n  'use strict';\n  return goog.labs.userAgent.util.matchUserAgent('Coast');\n};\n\n\n/**\n * @return {boolean} Whether the user's browser is iOS Webview.\n * @private\n */\ngoog.labs.userAgent.browser.matchIosWebview_ = function() {\n  'use strict';\n  // iOS Webview does not show up as Chrome or Safari. Also check for Opera's\n  // WebKit-based iOS browser, Coast.\n  return (goog.labs.userAgent.util.matchUserAgent('iPad') ||\n          goog.labs.userAgent.util.matchUserAgent('iPhone')) &&\n      !goog.labs.userAgent.browser.matchSafari_() &&\n      !goog.labs.userAgent.browser.matchChrome_() &&\n      !goog.labs.userAgent.browser.matchCoast_() &&\n      !goog.labs.userAgent.browser.matchFirefox_() &&\n      goog.labs.userAgent.util.matchUserAgent('AppleWebKit');\n};\n\n\n/**\n * @return {boolean} Whether the user's browser is any Chromium browser. This\n * returns true for Chrome, Opera 15+, and Edge Chromium.\n * @private\n */\ngoog.labs.userAgent.browser.matchChrome_ = function() {\n  'use strict';\n  return (goog.labs.userAgent.util.matchUserAgent('Chrome') ||\n          goog.labs.userAgent.util.matchUserAgent('CriOS')) &&\n      !goog.labs.userAgent.browser.matchEdgeHtml_();\n};\n\n\n/**\n * @return {boolean} Whether the user's browser is the Android browser.\n * @private\n */\ngoog.labs.userAgent.browser.matchAndroidBrowser_ = function() {\n  'use strict';\n  // Android can appear in the user agent string for Chrome on Android.\n  // This is not the Android standalone browser if it does.\n  return goog.labs.userAgent.util.matchUserAgent('Android') &&\n      !(goog.labs.userAgent.browser.isChrome() ||\n        goog.labs.userAgent.browser.isFirefox() ||\n        goog.labs.userAgent.browser.isOpera() ||\n        goog.labs.userAgent.browser.isSilk());\n};\n\n\n/**\n * @return {boolean} Whether the user's browser is Opera.\n */\ngoog.labs.userAgent.browser.isOpera = goog.labs.userAgent.browser.matchOpera_;\n\n\n/**\n * @return {boolean} Whether the user's browser is IE.\n */\ngoog.labs.userAgent.browser.isIE = goog.labs.userAgent.browser.matchIE_;\n\n\n/**\n * @return {boolean} Whether the user's browser is EdgeHTML based Edge.\n */\ngoog.labs.userAgent.browser.isEdge = goog.labs.userAgent.browser.matchEdgeHtml_;\n\n\n/**\n * @return {boolean} Whether the user's browser is Chromium based Edge.\n */\ngoog.labs.userAgent.browser.isEdgeChromium =\n    goog.labs.userAgent.browser.matchEdgeChromium_;\n\n/**\n * @return {boolean} Whether the user's browser is Chromium based Opera.\n */\ngoog.labs.userAgent.browser.isOperaChromium =\n    goog.labs.userAgent.browser.matchOperaChromium_;\n\n/**\n * @return {boolean} Whether the user's browser is Firefox.\n */\ngoog.labs.userAgent.browser.isFirefox =\n    goog.labs.userAgent.browser.matchFirefox_;\n\n\n/**\n * @return {boolean} Whether the user's browser is Safari.\n */\ngoog.labs.userAgent.browser.isSafari = goog.labs.userAgent.browser.matchSafari_;\n\n\n/**\n * @return {boolean} Whether the user's browser is Coast (Opera's Webkit-based\n *     iOS browser).\n */\ngoog.labs.userAgent.browser.isCoast = goog.labs.userAgent.browser.matchCoast_;\n\n\n/**\n * @return {boolean} Whether the user's browser is iOS Webview.\n */\ngoog.labs.userAgent.browser.isIosWebview =\n    goog.labs.userAgent.browser.matchIosWebview_;\n\n\n/**\n * @return {boolean} Whether the user's browser is any Chromium based browser (\n * Chrome, Blink-based Opera (15+) and Edge Chromium).\n */\ngoog.labs.userAgent.browser.isChrome = goog.labs.userAgent.browser.matchChrome_;\n\n\n/**\n * @return {boolean} Whether the user's browser is the Android browser.\n */\ngoog.labs.userAgent.browser.isAndroidBrowser =\n    goog.labs.userAgent.browser.matchAndroidBrowser_;\n\n\n/**\n * For more information, see:\n * http://docs.aws.amazon.com/silk/latest/developerguide/user-agent.html\n * @return {boolean} Whether the user's browser is Silk.\n */\ngoog.labs.userAgent.browser.isSilk = function() {\n  'use strict';\n  return goog.labs.userAgent.util.matchUserAgent('Silk');\n};\n\n\n/**\n * @return {string} The browser version or empty string if version cannot be\n *     determined. Note that for Internet Explorer, this returns the version of\n *     the browser, not the version of the rendering engine. (IE 8 in\n *     compatibility mode will return 8.0 rather than 7.0. To determine the\n *     rendering engine version, look at document.documentMode instead. See\n *     http://msdn.microsoft.com/en-us/library/cc196988(v=vs.85).aspx for more\n *     details.)\n */\ngoog.labs.userAgent.browser.getVersion = function() {\n  'use strict';\n  var userAgentString = goog.labs.userAgent.util.getUserAgent();\n  // Special case IE since IE's version is inside the parenthesis and\n  // without the '/'.\n  if (goog.labs.userAgent.browser.isIE()) {\n    return goog.labs.userAgent.browser.getIEVersion_(userAgentString);\n  }\n\n  var versionTuples =\n      goog.labs.userAgent.util.extractVersionTuples(userAgentString);\n\n  // Construct a map for easy lookup.\n  var versionMap = {};\n  goog.array.forEach(versionTuples, function(tuple) {\n    'use strict';\n    // Note that the tuple is of length three, but we only care about the\n    // first two.\n    var key = tuple[0];\n    var value = tuple[1];\n    versionMap[key] = value;\n  });\n\n  var versionMapHasKey = goog.partial(goog.object.containsKey, versionMap);\n\n  // Gives the value with the first key it finds, otherwise empty string.\n  function lookUpValueWithKeys(keys) {\n    var key = goog.array.find(keys, versionMapHasKey);\n    return versionMap[key] || '';\n  }\n\n  // Check Opera before Chrome since Opera 15+ has \"Chrome\" in the string.\n  // See\n  // http://my.opera.com/ODIN/blog/2013/07/15/opera-user-agent-strings-opera-15-and-beyond\n  if (goog.labs.userAgent.browser.isOpera()) {\n    // Opera 10 has Version/10.0 but Opera/9.8, so look for \"Version\" first.\n    // Opera uses 'OPR' for more recent UAs.\n    return lookUpValueWithKeys(['Version', 'Opera']);\n  }\n\n  // Check Edge before Chrome since it has Chrome in the string.\n  if (goog.labs.userAgent.browser.isEdge()) {\n    return lookUpValueWithKeys(['Edge']);\n  }\n\n  // Check Chromium Edge before Chrome since it has Chrome in the string.\n  if (goog.labs.userAgent.browser.isEdgeChromium()) {\n    return lookUpValueWithKeys(['Edg']);\n  }\n\n  if (goog.labs.userAgent.browser.isChrome()) {\n    return lookUpValueWithKeys(['Chrome', 'CriOS', 'HeadlessChrome']);\n  }\n\n  // Usually products browser versions are in the third tuple after \"Mozilla\"\n  // and the engine.\n  var tuple = versionTuples[2];\n  return tuple && tuple[1] || '';\n};\n\n\n/**\n * @param {string|number} version The version to check.\n * @return {boolean} Whether the browser version is higher or the same as the\n *     given version.\n */\ngoog.labs.userAgent.browser.isVersionOrHigher = function(version) {\n  'use strict';\n  return goog.string.internal.compareVersions(\n             goog.labs.userAgent.browser.getVersion(), version) >= 0;\n};\n\n\n/**\n * Determines IE version. More information:\n * http://msdn.microsoft.com/en-us/library/ie/bg182625(v=vs.85).aspx#uaString\n * http://msdn.microsoft.com/en-us/library/hh869301(v=vs.85).aspx\n * http://blogs.msdn.com/b/ie/archive/2010/03/23/introducing-ie9-s-user-agent-string.aspx\n * http://blogs.msdn.com/b/ie/archive/2009/01/09/the-internet-explorer-8-user-agent-string-updated-edition.aspx\n *\n * @param {string} userAgent the User-Agent.\n * @return {string}\n * @private\n */\ngoog.labs.userAgent.browser.getIEVersion_ = function(userAgent) {\n  'use strict';\n  // IE11 may identify itself as MSIE 9.0 or MSIE 10.0 due to an IE 11 upgrade\n  // bug. Example UA:\n  // Mozilla/5.0 (MSIE 9.0; Windows NT 6.1; WOW64; Trident/7.0; rv:11.0)\n  // like Gecko.\n  // See http://www.whatismybrowser.com/developers/unknown-user-agent-fragments.\n  var rv = /rv: *([\\d\\.]*)/.exec(userAgent);\n  if (rv && rv[1]) {\n    return rv[1];\n  }\n\n  var version = '';\n  var msie = /MSIE +([\\d\\.]+)/.exec(userAgent);\n  if (msie && msie[1]) {\n    // IE in compatibility mode usually identifies itself as MSIE 7.0; in this\n    // case, use the Trident version to determine the version of IE. For more\n    // details, see the links above.\n    var tridentVersion = /Trident\\/(\\d.\\d)/.exec(userAgent);\n    if (msie[1] == '7.0') {\n      if (tridentVersion && tridentVersion[1]) {\n        switch (tridentVersion[1]) {\n          case '4.0':\n            version = '8.0';\n            break;\n          case '5.0':\n            version = '9.0';\n            break;\n          case '6.0':\n            version = '10.0';\n            break;\n          case '7.0':\n            version = '11.0';\n            break;\n        }\n      } else {\n        version = '7.0';\n      }\n    } else {\n      version = msie[1];\n    }\n  }\n  return version;\n};\n","~:compiled-at",1623000231188,"~:source-map-json","{\n\"version\":3,\n\"file\":\"goog.labs.useragent.browser.js\",\n\"lineCount\":122,\n\"mappings\":\"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\",\n\"sources\":[\"goog/labs/useragent/browser.js\"],\n\"sourcesContent\":[\"/**\\n * @license\\n * Copyright The Closure Library Authors.\\n * SPDX-License-Identifier: Apache-2.0\\n */\\n\\n/**\\n * @fileoverview Closure user agent detection (Browser).\\n * @see <a href=\\\"http://www.useragentstring.com/\\\">User agent strings</a>\\n * For more information on rendering engine, platform, or device see the other\\n * sub-namespaces in goog.labs.userAgent, goog.labs.userAgent.platform,\\n * goog.labs.userAgent.device respectively.)\\n */\\n\\ngoog.provide('goog.labs.userAgent.browser');\\n\\ngoog.require('goog.array');\\ngoog.require('goog.labs.userAgent.util');\\ngoog.require('goog.object');\\ngoog.require('goog.string.internal');\\n\\n\\n// TODO(nnaze): Refactor to remove excessive exclusion logic in matching\\n// functions.\\n\\n\\n/**\\n * @return {boolean} Whether the user's browser is Opera.  Note: Chromium\\n *     based Opera (Opera 15+) is detected as Chrome to avoid unnecessary\\n *     special casing.\\n * @private\\n */\\ngoog.labs.userAgent.browser.matchOpera_ = function() {\\n  'use strict';\\n  return goog.labs.userAgent.util.matchUserAgent('Opera');\\n};\\n\\n\\n/**\\n * @return {boolean} Whether the user's browser is IE.\\n * @private\\n */\\ngoog.labs.userAgent.browser.matchIE_ = function() {\\n  'use strict';\\n  return goog.labs.userAgent.util.matchUserAgent('Trident') ||\\n      goog.labs.userAgent.util.matchUserAgent('MSIE');\\n};\\n\\n\\n/**\\n * @return {boolean} Whether the user's browser is Edge. This refers to EdgeHTML\\n * based Edge.\\n * @private\\n */\\ngoog.labs.userAgent.browser.matchEdgeHtml_ = function() {\\n  'use strict';\\n  return goog.labs.userAgent.util.matchUserAgent('Edge');\\n};\\n\\n\\n/**\\n * @return {boolean} Whether the user's browser is Chromium based Edge.\\n * @private\\n */\\ngoog.labs.userAgent.browser.matchEdgeChromium_ = function() {\\n  'use strict';\\n  return goog.labs.userAgent.util.matchUserAgent('Edg/');\\n};\\n\\n\\n/**\\n * @return {boolean} Whether the user's browser is Chromium based Opera.\\n * @private\\n */\\ngoog.labs.userAgent.browser.matchOperaChromium_ = function() {\\n  'use strict';\\n  return goog.labs.userAgent.util.matchUserAgent('OPR');\\n};\\n\\n\\n/**\\n * @return {boolean} Whether the user's browser is Firefox.\\n * @private\\n */\\ngoog.labs.userAgent.browser.matchFirefox_ = function() {\\n  'use strict';\\n  return goog.labs.userAgent.util.matchUserAgent('Firefox') ||\\n      goog.labs.userAgent.util.matchUserAgent('FxiOS');\\n};\\n\\n\\n/**\\n * @return {boolean} Whether the user's browser is Safari.\\n * @private\\n */\\ngoog.labs.userAgent.browser.matchSafari_ = function() {\\n  'use strict';\\n  return goog.labs.userAgent.util.matchUserAgent('Safari') &&\\n      !(goog.labs.userAgent.browser.matchChrome_() ||\\n        goog.labs.userAgent.browser.matchCoast_() ||\\n        goog.labs.userAgent.browser.matchOpera_() ||\\n        goog.labs.userAgent.browser.matchEdgeHtml_() ||\\n        goog.labs.userAgent.browser.matchEdgeChromium_() ||\\n        goog.labs.userAgent.browser.matchOperaChromium_() ||\\n        goog.labs.userAgent.browser.matchFirefox_() ||\\n        goog.labs.userAgent.browser.isSilk() ||\\n        goog.labs.userAgent.util.matchUserAgent('Android'));\\n};\\n\\n\\n/**\\n * @return {boolean} Whether the user's browser is Coast (Opera's Webkit-based\\n *     iOS browser).\\n * @private\\n */\\ngoog.labs.userAgent.browser.matchCoast_ = function() {\\n  'use strict';\\n  return goog.labs.userAgent.util.matchUserAgent('Coast');\\n};\\n\\n\\n/**\\n * @return {boolean} Whether the user's browser is iOS Webview.\\n * @private\\n */\\ngoog.labs.userAgent.browser.matchIosWebview_ = function() {\\n  'use strict';\\n  // iOS Webview does not show up as Chrome or Safari. Also check for Opera's\\n  // WebKit-based iOS browser, Coast.\\n  return (goog.labs.userAgent.util.matchUserAgent('iPad') ||\\n          goog.labs.userAgent.util.matchUserAgent('iPhone')) &&\\n      !goog.labs.userAgent.browser.matchSafari_() &&\\n      !goog.labs.userAgent.browser.matchChrome_() &&\\n      !goog.labs.userAgent.browser.matchCoast_() &&\\n      !goog.labs.userAgent.browser.matchFirefox_() &&\\n      goog.labs.userAgent.util.matchUserAgent('AppleWebKit');\\n};\\n\\n\\n/**\\n * @return {boolean} Whether the user's browser is any Chromium browser. This\\n * returns true for Chrome, Opera 15+, and Edge Chromium.\\n * @private\\n */\\ngoog.labs.userAgent.browser.matchChrome_ = function() {\\n  'use strict';\\n  return (goog.labs.userAgent.util.matchUserAgent('Chrome') ||\\n          goog.labs.userAgent.util.matchUserAgent('CriOS')) &&\\n      !goog.labs.userAgent.browser.matchEdgeHtml_();\\n};\\n\\n\\n/**\\n * @return {boolean} Whether the user's browser is the Android browser.\\n * @private\\n */\\ngoog.labs.userAgent.browser.matchAndroidBrowser_ = function() {\\n  'use strict';\\n  // Android can appear in the user agent string for Chrome on Android.\\n  // This is not the Android standalone browser if it does.\\n  return goog.labs.userAgent.util.matchUserAgent('Android') &&\\n      !(goog.labs.userAgent.browser.isChrome() ||\\n        goog.labs.userAgent.browser.isFirefox() ||\\n        goog.labs.userAgent.browser.isOpera() ||\\n        goog.labs.userAgent.browser.isSilk());\\n};\\n\\n\\n/**\\n * @return {boolean} Whether the user's browser is Opera.\\n */\\ngoog.labs.userAgent.browser.isOpera = goog.labs.userAgent.browser.matchOpera_;\\n\\n\\n/**\\n * @return {boolean} Whether the user's browser is IE.\\n */\\ngoog.labs.userAgent.browser.isIE = goog.labs.userAgent.browser.matchIE_;\\n\\n\\n/**\\n * @return {boolean} Whether the user's browser is EdgeHTML based Edge.\\n */\\ngoog.labs.userAgent.browser.isEdge = goog.labs.userAgent.browser.matchEdgeHtml_;\\n\\n\\n/**\\n * @return {boolean} Whether the user's browser is Chromium based Edge.\\n */\\ngoog.labs.userAgent.browser.isEdgeChromium =\\n    goog.labs.userAgent.browser.matchEdgeChromium_;\\n\\n/**\\n * @return {boolean} Whether the user's browser is Chromium based Opera.\\n */\\ngoog.labs.userAgent.browser.isOperaChromium =\\n    goog.labs.userAgent.browser.matchOperaChromium_;\\n\\n/**\\n * @return {boolean} Whether the user's browser is Firefox.\\n */\\ngoog.labs.userAgent.browser.isFirefox =\\n    goog.labs.userAgent.browser.matchFirefox_;\\n\\n\\n/**\\n * @return {boolean} Whether the user's browser is Safari.\\n */\\ngoog.labs.userAgent.browser.isSafari = goog.labs.userAgent.browser.matchSafari_;\\n\\n\\n/**\\n * @return {boolean} Whether the user's browser is Coast (Opera's Webkit-based\\n *     iOS browser).\\n */\\ngoog.labs.userAgent.browser.isCoast = goog.labs.userAgent.browser.matchCoast_;\\n\\n\\n/**\\n * @return {boolean} Whether the user's browser is iOS Webview.\\n */\\ngoog.labs.userAgent.browser.isIosWebview =\\n    goog.labs.userAgent.browser.matchIosWebview_;\\n\\n\\n/**\\n * @return {boolean} Whether the user's browser is any Chromium based browser (\\n * Chrome, Blink-based Opera (15+) and Edge Chromium).\\n */\\ngoog.labs.userAgent.browser.isChrome = goog.labs.userAgent.browser.matchChrome_;\\n\\n\\n/**\\n * @return {boolean} Whether the user's browser is the Android browser.\\n */\\ngoog.labs.userAgent.browser.isAndroidBrowser =\\n    goog.labs.userAgent.browser.matchAndroidBrowser_;\\n\\n\\n/**\\n * For more information, see:\\n * http://docs.aws.amazon.com/silk/latest/developerguide/user-agent.html\\n * @return {boolean} Whether the user's browser is Silk.\\n */\\ngoog.labs.userAgent.browser.isSilk = function() {\\n  'use strict';\\n  return goog.labs.userAgent.util.matchUserAgent('Silk');\\n};\\n\\n\\n/**\\n * @return {string} The browser version or empty string if version cannot be\\n *     determined. Note that for Internet Explorer, this returns the version of\\n *     the browser, not the version of the rendering engine. (IE 8 in\\n *     compatibility mode will return 8.0 rather than 7.0. To determine the\\n *     rendering engine version, look at document.documentMode instead. See\\n *     http://msdn.microsoft.com/en-us/library/cc196988(v=vs.85).aspx for more\\n *     details.)\\n */\\ngoog.labs.userAgent.browser.getVersion = function() {\\n  'use strict';\\n  var userAgentString = goog.labs.userAgent.util.getUserAgent();\\n  // Special case IE since IE's version is inside the parenthesis and\\n  // without the '/'.\\n  if (goog.labs.userAgent.browser.isIE()) {\\n    return goog.labs.userAgent.browser.getIEVersion_(userAgentString);\\n  }\\n\\n  var versionTuples =\\n      goog.labs.userAgent.util.extractVersionTuples(userAgentString);\\n\\n  // Construct a map for easy lookup.\\n  var versionMap = {};\\n  goog.array.forEach(versionTuples, function(tuple) {\\n    'use strict';\\n    // Note that the tuple is of length three, but we only care about the\\n    // first two.\\n    var key = tuple[0];\\n    var value = tuple[1];\\n    versionMap[key] = value;\\n  });\\n\\n  var versionMapHasKey = goog.partial(goog.object.containsKey, versionMap);\\n\\n  // Gives the value with the first key it finds, otherwise empty string.\\n  function lookUpValueWithKeys(keys) {\\n    var key = goog.array.find(keys, versionMapHasKey);\\n    return versionMap[key] || '';\\n  }\\n\\n  // Check Opera before Chrome since Opera 15+ has \\\"Chrome\\\" in the string.\\n  // See\\n  // http://my.opera.com/ODIN/blog/2013/07/15/opera-user-agent-strings-opera-15-and-beyond\\n  if (goog.labs.userAgent.browser.isOpera()) {\\n    // Opera 10 has Version/10.0 but Opera/9.8, so look for \\\"Version\\\" first.\\n    // Opera uses 'OPR' for more recent UAs.\\n    return lookUpValueWithKeys(['Version', 'Opera']);\\n  }\\n\\n  // Check Edge before Chrome since it has Chrome in the string.\\n  if (goog.labs.userAgent.browser.isEdge()) {\\n    return lookUpValueWithKeys(['Edge']);\\n  }\\n\\n  // Check Chromium Edge before Chrome since it has Chrome in the string.\\n  if (goog.labs.userAgent.browser.isEdgeChromium()) {\\n    return lookUpValueWithKeys(['Edg']);\\n  }\\n\\n  if (goog.labs.userAgent.browser.isChrome()) {\\n    return lookUpValueWithKeys(['Chrome', 'CriOS', 'HeadlessChrome']);\\n  }\\n\\n  // Usually products browser versions are in the third tuple after \\\"Mozilla\\\"\\n  // and the engine.\\n  var tuple = versionTuples[2];\\n  return tuple && tuple[1] || '';\\n};\\n\\n\\n/**\\n * @param {string|number} version The version to check.\\n * @return {boolean} Whether the browser version is higher or the same as the\\n *     given version.\\n */\\ngoog.labs.userAgent.browser.isVersionOrHigher = function(version) {\\n  'use strict';\\n  return goog.string.internal.compareVersions(\\n             goog.labs.userAgent.browser.getVersion(), version) >= 0;\\n};\\n\\n\\n/**\\n * Determines IE version. More information:\\n * http://msdn.microsoft.com/en-us/library/ie/bg182625(v=vs.85).aspx#uaString\\n * http://msdn.microsoft.com/en-us/library/hh869301(v=vs.85).aspx\\n * http://blogs.msdn.com/b/ie/archive/2010/03/23/introducing-ie9-s-user-agent-string.aspx\\n * http://blogs.msdn.com/b/ie/archive/2009/01/09/the-internet-explorer-8-user-agent-string-updated-edition.aspx\\n *\\n * @param {string} userAgent the User-Agent.\\n * @return {string}\\n * @private\\n */\\ngoog.labs.userAgent.browser.getIEVersion_ = function(userAgent) {\\n  'use strict';\\n  // IE11 may identify itself as MSIE 9.0 or MSIE 10.0 due to an IE 11 upgrade\\n  // bug. Example UA:\\n  // Mozilla/5.0 (MSIE 9.0; Windows NT 6.1; WOW64; Trident/7.0; rv:11.0)\\n  // like Gecko.\\n  // See http://www.whatismybrowser.com/developers/unknown-user-agent-fragments.\\n  var rv = /rv: *([\\\\d\\\\.]*)/.exec(userAgent);\\n  if (rv && rv[1]) {\\n    return rv[1];\\n  }\\n\\n  var version = '';\\n  var msie = /MSIE +([\\\\d\\\\.]+)/.exec(userAgent);\\n  if (msie && msie[1]) {\\n    // IE in compatibility mode usually identifies itself as MSIE 7.0; in this\\n    // case, use the Trident version to determine the version of IE. For more\\n    // details, see the links above.\\n    var tridentVersion = /Trident\\\\/(\\\\d.\\\\d)/.exec(userAgent);\\n    if (msie[1] == '7.0') {\\n      if (tridentVersion && tridentVersion[1]) {\\n        switch (tridentVersion[1]) {\\n          case '4.0':\\n            version = '8.0';\\n            break;\\n          case '5.0':\\n            version = '9.0';\\n            break;\\n          case '6.0':\\n            version = '10.0';\\n            break;\\n          case '7.0':\\n            version = '11.0';\\n            break;\\n        }\\n      } else {\\n        version = '7.0';\\n      }\\n    } else {\\n      version = msie[1];\\n    }\\n  }\\n  return version;\\n};\\n\"],\n\"names\":[\"goog\",\"provide\",\"require\",\"labs\",\"userAgent\",\"browser\",\"matchOpera_\",\"goog.labs.userAgent.browser.matchOpera_\",\"util\",\"matchUserAgent\",\"matchIE_\",\"goog.labs.userAgent.browser.matchIE_\",\"matchEdgeHtml_\",\"goog.labs.userAgent.browser.matchEdgeHtml_\",\"matchEdgeChromium_\",\"goog.labs.userAgent.browser.matchEdgeChromium_\",\"matchOperaChromium_\",\"goog.labs.userAgent.browser.matchOperaChromium_\",\"matchFirefox_\",\"goog.labs.userAgent.browser.matchFirefox_\",\"matchSafari_\",\"goog.labs.userAgent.browser.matchSafari_\",\"matchChrome_\",\"matchCoast_\",\"isSilk\",\"goog.labs.userAgent.browser.matchCoast_\",\"matchIosWebview_\",\"goog.labs.userAgent.browser.matchIosWebview_\",\"goog.labs.userAgent.browser.matchChrome_\",\"matchAndroidBrowser_\",\"goog.labs.userAgent.browser.matchAndroidBrowser_\",\"isChrome\",\"isFirefox\",\"isOpera\",\"isIE\",\"isEdge\",\"isEdgeChromium\",\"isOperaChromium\",\"isSafari\",\"isCoast\",\"isIosWebview\",\"isAndroidBrowser\",\"goog.labs.userAgent.browser.isSilk\",\"getVersion\",\"goog.labs.userAgent.browser.getVersion\",\"userAgentString\",\"getUserAgent\",\"getIEVersion_\",\"versionTuples\",\"extractVersionTuples\",\"versionMap\",\"array\",\"forEach\",\"tuple\",\"key\",\"value\",\"versionMapHasKey\",\"partial\",\"object\",\"containsKey\",\"lookUpValueWithKeys\",\"keys\",\"find\",\"isVersionOrHigher\",\"goog.labs.userAgent.browser.isVersionOrHigher\",\"version\",\"string\",\"internal\",\"compareVersions\",\"goog.labs.userAgent.browser.getIEVersion_\",\"rv\",\"exec\",\"msie\",\"tridentVersion\"]\n}\n"]