{"version":3,"file":"platform.min.js","sources":["../../../js/globalization.js","../../../js/platform/platform.js"],"sourcesContent":["function GetLanguage(useParent) {\r\n var userLanguage = \"en-US\";\r\n\r\n var cookie = getCookie(\"layout\");\r\n var cookies = cookie.split(\"&\");\r\n for (var i = 0; i < cookies.length; i++) {\r\n var dateIndex = cookies[i].indexOf(\"userLanguage=\");\r\n if (dateIndex > -1) {\r\n userLanguage = cookies[i].substring(13);\r\n break;\r\n }\r\n }\r\n\r\n if (useParent) {\r\n var indexOfDash = userLanguage.indexOf('-');\r\n if (indexOfDash > -1) {\r\n userLanguage = userLanguage.substring(0, indexOfDash);\r\n }\r\n }\r\n\r\n return userLanguage;\r\n}\r\n\r\nfunction GetUserDateFormat(originalCase) {\r\n var userDateFormat = \"MM/DD/YYYY\";\r\n\r\n var cookie = getCookie(\"layout\");\r\n var cookies = cookie.split(\"&\");\r\n for (var i = 0; i < cookies.length; i++) {\r\n var dateIndex = cookies[i].indexOf(\"userDateFormat=\");\r\n if (dateIndex > -1) {\r\n if (originalCase)\r\n userDateFormat = cookies[i].substring(15);\r\n else\r\n userDateFormat = cookies[i].substring(15).toUpperCase();\r\n break;\r\n }\r\n }\r\n\r\n return userDateFormat;\r\n}\r\n\r\nfunction GetUserDateTimeFormat () {\r\n var userDateFormat = \"MM/DD/YYYY\";\r\n var userTimeFormat = \"hh:mm A\";\r\n\r\n var cookie = getCookie(\"layout\");\r\n var cookies = cookie.split(\"&\");\r\n for (var i = 0; i < cookies.length; i++) {\r\n var dateIndex = cookies[i].indexOf(\"userDateFormat=\");\r\n var timeIndex = cookies[i].indexOf(\"userTimeFormat=\");\r\n\r\n if (dateIndex > -1) {\r\n userDateFormat = cookies[i].substring(15).toUpperCase();\r\n }\r\n\r\n if (timeIndex > -1) {\r\n userTimeFormat = cookies[i].substring(15);\r\n userTimeFormat = userTimeFormat.replace(\"tt\", \"A\");\r\n }\r\n }\r\n\r\n return userDateFormat + \" \" + userTimeFormat;\r\n}\r\n\r\nfunction GetUserTimeZone() {\r\n var userTimeZone = \"America/New_York\";\r\n\r\n var cookie = getCookie(\"layout\");\r\n var cookies = cookie.split(\"&\");\r\n for (var i = 0; i < cookies.length; i++) {\r\n var dateIndex = cookies[i].indexOf(\"userTimeZone=\");\r\n if (dateIndex > -1) {\r\n userTimeZone = cookies[i].substring(13);\r\n break;\r\n }\r\n }\r\n\r\n return userTimeZone;\r\n}\r\n\r\nfunction GetTimeFormat() {\r\n return Show24Hours() ? \"HH:mm\" : \"hh:mm A\";\r\n}\r\n\r\nfunction Show24Hours() {\r\n var show24Hours = true;\r\n var cookie = getCookie(\"layout\");\r\n var cookies = cookie.split(\"&\");\r\n\r\n for (var i = 0; i < cookies.length; i++) {\r\n var timeIndex = cookies[i].indexOf(\"userTimeFormat=\");\r\n \r\n if (timeIndex > -1) {\r\n var userTimeFormat = cookies[i].substring(15);\r\n if (userTimeFormat.indexOf(\"tt\") > -1)\r\n show24Hours = false;\r\n }\r\n }\r\n\r\n return show24Hours;\r\n}\r\n\r\nfunction getCookie(cname) {\r\n var name = cname + \"=\";\r\n var decodedCookie = decodeURIComponent(document.cookie);\r\n var ca = decodedCookie.split(';');\r\n for (var i = 0; i < ca.length; i++) {\r\n var c = ca[i];\r\n while (c.charAt(0) == ' ') {\r\n c = c.substring(1);\r\n }\r\n if (c.indexOf(name) == 0) {\r\n return c.substring(name.length, c.length);\r\n }\r\n }\r\n return \"\";\r\n}\r\n\r\nfunction ConvertFromUtcToLocalDateTimeFromNow(utcDateTime) {\r\n try {\r\n var justNow = \"Just Now\";\r\n\r\n var userTimeZone = GetUserTimeZone();\r\n var localDateTimeFromNow = moment.utc(utcDateTime).tz(userTimeZone).fromNow();\r\n\r\n if (localDateTimeFromNow.indexOf(justNow) > -1)\r\n localDateTimeFromNow = moment.utc(utcDateTime).tz(userTimeZone).fromNow(true);\r\n\r\n return localDateTimeFromNow;\r\n } catch (e) {\r\n console.log(e);\r\n\r\n return utcDateTime;\r\n }\r\n}\r\n\r\nfunction ConvertFromUtcToLocalDateWithUserFormat(utcDateTime) {\r\n try {\r\n var userTimeZone = GetUserTimeZone();\r\n var localDate = moment.utc(utcDateTime).tz(userTimeZone).toDate();\r\n var userdateFormat = GetUserDateFormat();\r\n\r\n return formatDateTime(localDate, userdateFormat);\r\n } catch (e) {\r\n console.log(e);\r\n\r\n return utcDateTime;\r\n }\r\n}\r\n\r\nfunction formatDateTime(dateTime, dateTimeFormat) {\r\n return moment(dateTime).format(dateTimeFormat);\r\n}","var EnsembleVideo = EnsembleVideo || {};\r\nEnsembleVideo.Platform = function () {\r\n\r\n //GLOBALLY USEFUL VARIABLES\r\n //Note: These values are set automatically during the Init function.\r\n //Stores whether we're currently initializing the most popular functions.\r\n this.initCompleted= false;\r\n this.isWebkit= false; //Stores the result of DetectWebkit()\r\n this.isMobilePhone= false; //Stores the result of DetectMobileQuick()\r\n this.isIphone= false; //Stores the result of DetectIphone()\r\n this.isAndroid= false; //Stores the result of DetectAndroid()\r\n this.isIos = false;//Stores the result of DetectIos()\r\n this.isWindowsPhone = false;\r\n this.isAndroidPhone= false; //Stores the result of DetectAndroidPhone()\r\n this.isTierTablet= false; //Stores the result of DetectTierTablet()\r\n this.isTierIphone= false; //Stores the result of DetectTierIphone()\r\n this.isTierRichCss= false; //Stores the result of DetectTierRichCss()\r\n this.isTierGenericMobile= false; //Stores the result of DetectTierOtherPhones()\r\n //INTERNALLY USED DETECTION STRING VARIABLES\r\n this.engineWebKit= 'webkit';\r\n\r\n this.deviceIphone= 'iphone';\r\n this.deviceIpod= 'ipod';\r\n this.deviceIpad= 'ipad';\r\n this.deviceMacPpc= 'macintosh'; //Used for disambiguation\r\n\r\n this.deviceAndroid= 'android';\r\n this.deviceGoogleTV= 'googletv';\r\n this.deviceHtcFlyer= 'htc_flyer'; //HTC Flyer\r\n\r\n this.deviceWinPhone7= 'windows phone os 7';\r\n this.deviceWinPhone8 = 'windows phone 8';\r\n this.deviceWinPhone10 = 'windows phone 10',\r\n\r\n this.deviceWinMob= 'windows ce';\r\n this.deviceWindows= 'windows';\r\n this.deviceIeMob = 'iemobile';\r\n this.deviceUbuntu = \"ubuntu\";\r\n this.devicePpc= 'ppc'; //Stands for PocketPC\r\n this.enginePie= 'wm5 pie'; //An old Windows Mobile\r\n\r\n this.deviceBB= 'blackberry';\r\n this.deviceBB10= 'bb10'; //For the new BB 10 OS\r\n this.vndRIM= 'vnd.rim'; //Detectable when BB devices emulate IE or Firefox\r\n this.deviceBBStorm= 'blackberry95'; //Storm 1 and 2\r\n this.deviceBBBold= 'blackberry97'; //Bold 97x0 (non-touch)\r\n this.deviceBBBoldTouch= 'blackberry 99'; //Bold 99x0 (touchscreen)\r\n this.deviceBBTour= 'blackberry96'; //Tour\r\n this.deviceBBCurve= 'blackberry89'; //Curve 2\r\n this.deviceBBCurveTouch= 'blackberry 938'; //Curve Touch 9380\r\n this.deviceBBTorch= 'blackberry 98'; //Torch\r\n this.deviceBBPlaybook= 'playbook'; //PlayBook tablet\r\n\r\n this.deviceSymbian= 'symbian';\r\n this.deviceSymbos= 'symbos'; //Opera 10 on Symbian\r\n this.deviceS60= 'series60';\r\n this.deviceS70= 'series70';\r\n this.deviceS80= 'series80';\r\n this.deviceS90= 'series90';\r\n\r\n this.devicePalm= 'palm';\r\n this.deviceWebOS= 'webos'; //For Palm's line of WebOS devices\r\n this.deviceWebOShp= 'hpwos'; //For HP's line of WebOS devices\r\n this.engineBlazer= 'blazer'; //Old Palm browser\r\n this.engineXiino= 'xiino'; //Another old Palm\r\n\r\n this.deviceNuvifone= 'nuvifone'; //Garmin Nuvifone\r\n this.deviceBada= 'bada'; //Samsung's Bada OS\r\n this.deviceTizen= 'tizen'; //Tizen OS\r\n this.deviceMeego= 'meego'; //Meego OS\r\n\r\n this.deviceKindle= 'kindle'; //Amazon eInk Kindle\r\n this.engineSilk= 'silk-accelerated'; //Amazon's accelerated Silk browser for Kindle Fire\r\n\r\n //Initialize variables for mobile-specific content.\r\n this.vndwap= 'vnd.wap';\r\n this.wml= 'wml';\r\n\r\n //Initialize variables for random devices and mobile browsers.\r\n //Some of these may not support JavaScript\r\n this.deviceTablet= 'tablet';\r\n this.deviceBrew= 'brew';\r\n this.deviceDanger= 'danger';\r\n this.deviceHiptop= 'hiptop';\r\n this.devicePlaystation= 'playstation';\r\n this.devicePlaystationVita= 'vita';\r\n this.deviceNintendoDs= 'nitro';\r\n this.deviceNintendo= 'nintendo';\r\n this.deviceWii= 'wii';\r\n this.deviceXbox= 'xbox';\r\n this.deviceArchos= 'archos';\r\n\r\n this.engineFirefox= 'firefox', //For Firefox OS\r\n this.engineChrome = 'chrome'; // Chrome browser\r\n this.engineSafari = 'safari';\r\n this.engineOpera = 'opera'; //Popular browser\r\n this.engineInternetExplorer = 'msie'; //Internet Explorer\r\n this.engineTrident = 'trident'; // Internet Explorer 11\r\n this.engineNetfront= 'netfront'; //Common embedded OS browser\r\n this.engineUpBrowser= 'up.browser'; //common on some phones\r\n this.engineOpenWeb= 'openweb'; //Transcoding by OpenWave server\r\n this.deviceMidp= 'midp'; //a mobile Java technology\r\n this.uplink= 'up.link';\r\n this.engineTelecaQ= 'teleca q'; //a modern feature phone browser\r\n this.engineObigo= 'obigo'; //W 10 is a modern feature phone browser\r\n\r\n this.devicePda= 'pda';\r\n this.mini= 'mini'; //Some mobile browsers put 'mini' in their names\r\n this.mobile= 'mobile'; //Some mobile browsers put 'mobile' in their user agent strings\r\n this.mobi= 'mobi'; //Some mobile browsers put 'mobi' in their user agent strings\r\n\r\n //Use Maemo; Tablet; and Linux to test for Nokia's Internet Tablets.\r\n this.maemo= 'maemo';\r\n this.linux= 'linux';\r\n this.mylocom2= 'sony/com'; // for Sony Mylo 1 and 2\r\n\r\n //In some UserAgents; the only clue is the manufacturer\r\n this.manuSonyEricsson= 'sonyericsson';\r\n this.manuericsson= 'ericsson';\r\n this.manuSamsung1= 'sec-sgh';\r\n this.manuSony= 'sony';\r\n this.manuHtc= 'htc';\r\n\r\n //In some UserAgents; the only clue is the operator\r\n this.svcDocomo= 'docomo';\r\n this.svcKddi= 'kddi';\r\n this.svcVodafone= 'vodafone';\r\n\r\n //Disambiguation strings.\r\n this.disUpdate= 'update'; //pda vs. update\r\n\r\n //Holds the User Agent string value.\r\n this.uagent = '';\r\n\r\n this.isChromeBrowser = false;\r\n this.isSafariBrowser = false;\r\n\r\n this.androidVersion = 0.0;\r\n}\r\n\r\nEnsembleVideo.Platform.prototype = {\r\n\r\n //Initializes key platform variables\r\n InitDeviceScan : function () {\r\n this.initCompleted = false;\r\n \r\n if (navigator && navigator.userAgent)\r\n this.uagent = navigator.userAgent.toLowerCase();\r\n\r\n //Save these properties to speed processing\r\n this.isWebkit = this.DetectWebkit();\r\n this.isIphone = this.DetectIphone();\r\n this.isAndroid = this.DetectAndroid();\r\n this.isAndroidPhone = this.DetectAndroidPhone();\r\n this.isIos = this.DetectIos();\r\n\r\n //Generally, these tiers are the most useful for web development\r\n this.isTierIphone = this.DetectTierIphone(); //Do first\r\n this.isTierTablet = this.DetectTierTablet(); //Do second\r\n this.isMobilePhone = this.DetectMobileQuick(); //Do third\r\n\r\n this.isTierRichCss = this.DetectTierRichCss();\r\n this.isTierGenericMobile = this.DetectTierOtherPhones();\r\n\r\n this.isChromeBrowser = this.DetectChromeBrowser();\r\n this.isIeBrowser = this.DetectIeBrowser();\r\n this.isSafariBrowser = this.DetectSafariBrowser();\r\n\r\n this.initCompleted = true;\r\n },\r\n\r\n\r\n //APPLE IOS\r\n\r\n //**************************\r\n // Detects if the current device is an iPhone.\r\n DetectIphone : function () {\r\n if (this.initCompleted || this.isIphone)\r\n return this.isIphone;\r\n\r\n if (this.uagent.search(this.deviceIphone) > -1) {\r\n //The iPad and iPod Touch say they're an iPhone! So let's disambiguate.\r\n if (this.DetectIpad() || this.DetectIpod())\r\n return false;\r\n //Yay! It's an iPhone!\r\n else\r\n return true;\r\n }\r\n else\r\n return false;\r\n },\r\n\r\n //**************************\r\n // Detects if the current device is an iPod Touch.\r\n DetectIpod : function () {\r\n if (this.uagent.search(this.deviceIpod) > -1)\r\n return true;\r\n else\r\n return false;\r\n },\r\n\r\n //**************************\r\n // Detects if the current device is an iPhone or iPod Touch.\r\n DetectIphoneOrIpod : function () {\r\n //We repeat the searches here because some iPods \r\n // may report themselves as an iPhone, which is ok.\r\n if (this.DetectIphone() || this.DetectIpod())\r\n return true;\r\n else\r\n return false;\r\n\r\n \r\n },\r\n\r\n //**************************\r\n // Detects if the current device is an iPad tablet.\r\n DetectIpad : function () {\r\n if (this.uagent.search(this.deviceIpad) > -1 && this.DetectWebkit())\r\n return true;\r\n else\r\n return false;\r\n },\r\n\r\n //**************************\r\n // Detects *any* iOS device: iPhone, iPod Touch, iPad.\r\n DetectIos : function () {\r\n if (this.DetectIphoneOrIpod() || this.DetectIpad())\r\n return true;\r\n else\r\n return false;\r\n },\r\n\r\n\r\n //ANDROID\r\n\r\n //**************************\r\n // Detects *any* Android OS-based device: phone, tablet, and multi-media player.\r\n // Also detects Google TV.\r\n DetectAndroid : function () {\r\n if (this.initCompleted || this.isAndroid)\r\n return this.isAndroid;\r\n \r\n if (this.uagent.search(this.deviceAndroid) > -1) {\r\n this.androidVersion = this.DetectAndroidVersion();\r\n return true;\r\n }\r\n\r\n if (this.DetectGoogleTV())\r\n return true;\r\n\r\n //Special check for the HTC Flyer 7\" tablet. It should report here.\r\n if (this.uagent.search(this.deviceHtcFlyer) > -1)\r\n return true;\r\n else\r\n return false;\r\n },\r\n\r\n //**************************\r\n // Detects if the current device is a (small-ish) Android OS-based device\r\n // used for calling and/or multi-media (like a Samsung Galaxy Player).\r\n // Google says these devices will have 'Android' AND 'mobile' in user agent.\r\n // Ignores tablets (Honeycomb and later).\r\n DetectAndroidPhone : function () {\r\n if (this.initCompleted || this.isAndroidPhone)\r\n return this.isAndroidPhone;\r\n\r\n if (this.DetectAndroid() && (this.uagent.search(this.mobile) > -1))\r\n return true;\r\n //Special check for Android phones with Opera Mobile. They should report here.\r\n if (this.DetectOperaAndroidPhone())\r\n return true;\r\n //Special check for the HTC Flyer 7\" tablet. It should report here.\r\n if (this.uagent.search(this.deviceHtcFlyer) > -1)\r\n return true;\r\n else\r\n return false;\r\n },\r\n\r\n //**************************\r\n // Detects if the current device is a (self-reported) Android tablet.\r\n // Google says these devices will have 'Android' and NOT 'mobile' in their user agent.\r\n DetectAndroidTablet : function () {\r\n //First, let's make sure we're on an Android device.\r\n if (!this.DetectAndroid())\r\n return false;\r\n\r\n //Special check for Opera Android Phones. They should NOT report here.\r\n if (this.DetectOperaMobile())\r\n return false;\r\n //Special check for the HTC Flyer 7\" tablet. It should NOT report here.\r\n if (this.uagent.search(this.deviceHtcFlyer) > -1)\r\n return false;\r\n\r\n //Otherwise, if it's Android and does NOT have 'mobile' in it, Google says it's a tablet.\r\n if (this.uagent.search(this.mobile) > -1)\r\n return false;\r\n else\r\n return true;\r\n },\r\n\r\n //**************************\r\n // Detects if the current device is an Android OS-based device and\r\n // the browser is based on WebKit.\r\n DetectAndroidWebKit : function () {\r\n if (this.DetectAndroid() && this.DetectWebkit())\r\n return true;\r\n else\r\n return false;\r\n },\r\n\r\n //**************************\r\n // Detects if the current device is a GoogleTV.\r\n DetectGoogleTV : function () {\r\n if (this.uagent.search(this.deviceGoogleTV) > -1)\r\n return true;\r\n else\r\n return false;\r\n },\r\n\r\n //**************************\r\n // Detects if the current browser is based on WebKit.\r\n DetectWebkit : function () {\r\n if (this.initCompleted || this.isWebkit)\r\n return this.isWebkit;\r\n\r\n if (this.uagent.search(this.engineWebKit) > -1)\r\n return true;\r\n else\r\n return false;\r\n },\r\n\r\n\r\n //WINDOWS MOBILE AND PHONE\r\n\r\n // Detects if the current browser is EITHER a \r\n // Windows Phone 7, 8, or 10 device.\r\n DetectWindowsPhone : function () {\r\n if (this.DetectWindowsPhone7() ||\r\n this.DetectWindowsPhone8() ||\r\n this.DetectWindowsPhone10())\r\n return true;\r\n else\r\n return false;\r\n },\r\n\r\n //**************************\r\n // Detects a Windows Phone 7.x device (in mobile browsing mode).\r\n DetectWindowsPhone7 : function () {\r\n if (this.uagent.search(this.deviceWinPhone7) > -1)\r\n return true;\r\n else\r\n return false;\r\n },\r\n\r\n //**************************\r\n // Detects a Windows Phone 8 device (in mobile browsing mode).\r\n DetectWindowsPhone8 : function () {\r\n if (this.uagent.search(this.deviceWinPhone8) > -1)\r\n return true;\r\n else\r\n return false;\r\n },\r\n\r\n\r\n //**************************\r\n // Detects a Windows Phone 10 device (in mobile browsing mode).\r\n DetectWindowsPhone10: function () {\r\n if (this.uagent.search(this.deviceWinPhone10) > -1)\r\n return true;\r\n else\r\n return false;\r\n },\r\n\r\n //**************************\r\n // Detects if the current browser is a Windows Mobile device.\r\n // Excludes Windows Phone 7 and later devices. \r\n // Focuses on Windows Mobile 6.xx and earlier.\r\n DetectWindowsMobile : function () {\r\n if (this.DetectWindowsPhone())\r\n return false;\r\n\r\n //Most devices use 'Windows CE', but some report 'iemobile' \r\n // and some older ones report as 'PIE' for Pocket IE. \r\n if (this.uagent.search(this.deviceWinMob) > -1 ||\r\n this.uagent.search(this.deviceIeMob) > -1 ||\r\n this.uagent.search(this.enginePie) > -1)\r\n return true;\r\n //Test for Windows Mobile PPC but not old Macintosh PowerPC.\r\n if ((this.uagent.search(this.devicePpc) > -1) &&\r\n !(this.uagent.search(this.deviceMacPpc) > -1))\r\n return true;\r\n //Test for Windwos Mobile-based HTC devices.\r\n if (this.uagent.search(this.manuHtc) > -1 &&\r\n this.uagent.search(this.deviceWindows) > -1)\r\n return true;\r\n else\r\n return false;\r\n },\r\n\r\n\r\n //BLACKBERRY\r\n\r\n //**************************\r\n // Detects if the current browser is a BlackBerry of some sort.\r\n // Includes BB10 OS, but excludes the PlayBook.\r\n DetectBlackBerry : function () {\r\n if ((this.uagent.search(this.deviceBB) > -1) ||\r\n (this.uagent.search(this.vndRIM) > -1))\r\n return true;\r\n if (this.DetectBlackBerry10Phone())\r\n return true;\r\n else\r\n return false;\r\n },\r\n\r\n //**************************\r\n // Detects if the current browser is a BlackBerry 10 OS phone.\r\n // Excludes tablets.\r\n DetectBlackBerry10Phone : function () {\r\n if ((this.uagent.search(this.deviceBB10) > -1) &&\r\n (this.uagent.search(this.mobile) > -1))\r\n return true;\r\n else\r\n return false;\r\n },\r\n\r\n //**************************\r\n // Detects if the current browser is on a BlackBerry tablet device.\r\n // Example: PlayBook\r\n DetectBlackBerryTablet : function () {\r\n if (this.uagent.search(this.deviceBBPlaybook) > -1)\r\n return true;\r\n else\r\n return false;\r\n },\r\n\r\n //**************************\r\n // Detects if the current browser is a BlackBerry device AND uses a\r\n // WebKit-based browser. These are signatures for the new BlackBerry OS 6.\r\n // Examples: Torch. Includes the Playbook.\r\n DetectBlackBerryWebKit : function () {\r\n if (this.DetectBlackBerry() &&\r\n this.uagent.search(this.engineWebKit) > -1)\r\n return true;\r\n else\r\n return false;\r\n },\r\n\r\n //**************************\r\n // Detects if the current browser is a BlackBerry Touch\r\n // device, such as the Storm, Torch, and Bold Touch. Excludes the Playbook.\r\n DetectBlackBerryTouch : function () {\r\n if (this.DetectBlackBerry() &&\r\n ((this.uagent.search(this.deviceBBStorm) > -1) ||\r\n (this.uagent.search(this.deviceBBTorch) > -1) ||\r\n (this.uagent.search(this.deviceBBBoldTouch) > -1) ||\r\n (this.uagent.search(this.deviceBBCurveTouch) > -1)))\r\n return true;\r\n else\r\n return false;\r\n },\r\n\r\n //**************************\r\n // Detects if the current browser is a BlackBerry OS 5 device AND\r\n // has a more capable recent browser. Excludes the Playbook.\r\n // Examples, Storm, Bold, Tour, Curve2\r\n // Excludes the new BlackBerry OS 6 and 7 browser!!\r\n DetectBlackBerryHigh : function () {\r\n //Disambiguate for BlackBerry OS 6 or 7 (WebKit) browser\r\n if (this.DetectBlackBerryWebKit())\r\n return false;\r\n if ((this.DetectBlackBerry()) &&\r\n (this.DetectBlackBerryTouch() ||\r\n this.uagent.search(this.deviceBBBold) > -1 ||\r\n this.uagent.search(this.deviceBBTour) > -1 ||\r\n this.uagent.search(this.deviceBBCurve) > -1))\r\n return true;\r\n else\r\n return false;\r\n },\r\n\r\n //**************************\r\n // Detects if the current browser is a BlackBerry device AND\r\n // has an older, less capable browser. \r\n // Examples: Pearl, 8800, Curve1.\r\n DetectBlackBerryLow : function () {\r\n if (this.DetectBlackBerry()) {\r\n //Assume that if it's not in the High tier or has WebKit, then it's Low.\r\n if (this.DetectBlackBerryHigh() || this.DetectBlackBerryWebKit())\r\n return false;\r\n else\r\n return true;\r\n }\r\n else\r\n return false;\r\n },\r\n\r\n\r\n //SYMBIAN\r\n\r\n //**************************\r\n // Detects if the current browser is the Nokia S60 Open Source Browser.\r\n DetectS60OssBrowser : function () {\r\n if (this.DetectWebkit()) {\r\n if ((this.uagent.search(this.deviceS60) > -1 ||\r\n this.uagent.search(this.deviceSymbian) > -1))\r\n return true;\r\n else\r\n return false;\r\n }\r\n else\r\n return false;\r\n },\r\n\r\n //**************************\r\n // Detects if the current device is any Symbian OS-based device,\r\n // including older S60, Series 70, Series 80, Series 90, and UIQ, \r\n // or other browsers running on these devices.\r\n DetectSymbianOS : function () {\r\n if (this.uagent.search(this.deviceSymbian) > -1 ||\r\n this.uagent.search(this.deviceS60) > -1 ||\r\n ((this.uagent.search(this.deviceSymbos) > -1) &&\r\n (this.DetectOperaMobile)) || //Opera 10\r\n this.uagent.search(this.deviceS70) > -1 ||\r\n this.uagent.search(this.deviceS80) > -1 ||\r\n this.uagent.search(this.deviceS90) > -1)\r\n return true;\r\n else\r\n return false;\r\n },\r\n\r\n\r\n //WEBOS AND PALM\r\n\r\n //**************************\r\n // Detects if the current browser is on a PalmOS device.\r\n DetectPalmOS : function () {\r\n //Make sure it's not WebOS first\r\n if (this.DetectPalmWebOS())\r\n return false;\r\n\r\n //Most devices nowadays report as 'Palm', \r\n // but some older ones reported as Blazer or Xiino.\r\n if (this.uagent.search(this.devicePalm) > -1 ||\r\n this.uagent.search(this.engineBlazer) > -1 ||\r\n this.uagent.search(this.engineXiino) > -1)\r\n return true;\r\n else\r\n return false;\r\n },\r\n\r\n //**************************\r\n // Detects if the current browser is on a Palm device\r\n // running the new WebOS.\r\n DetectPalmWebOS : function () {\r\n if (this.uagent.search(this.deviceWebOS) > -1)\r\n return true;\r\n else\r\n return false;\r\n },\r\n\r\n //**************************\r\n // Detects if the current browser is on an HP tablet running WebOS.\r\n DetectWebOSTablet : function () {\r\n if (this.uagent.search(this.deviceWebOShp) > -1 &&\r\n this.uagent.search(this.deviceTablet) > -1)\r\n return true;\r\n else\r\n return false;\r\n },\r\n\r\n // Detects if current browser is chrome\r\n DetectChromeBrowser : function() {\r\n if (this.uagent.search(this.engineChrome) > -1)\r\n return true;\r\n\r\n return false;\r\n },\r\n // Detects if current browser is IE\r\n DetectIeBrowser: function () {\r\n if (this.uagent.search(this.engineInternetExplorer) > -1 || this.uagent.search(this.engineTrident) > -1)\r\n return true;\r\n\r\n return false;\r\n },\r\n // Detects if current browser is Safari\r\n DetectSafariBrowser: function () {\r\n if (this.uagent.search(this.engineSafari) > -1 && !this.DetectChromeBrowser())\r\n return true;\r\n\r\n return false;\r\n },\r\n\r\n //OPERA\r\n\r\n //**************************\r\n // Detects if the current browser is Opera Mobile or Mini.\r\n // Note: Older embedded Opera on mobile devices didn't follow these naming conventions.\r\n // Like Archos media players, they will probably show up in DetectMobileQuick or -Long instead. \r\n DetectOperaMobile : function () {\r\n if ((this.uagent.search(this.engineOpera) > -1) &&\r\n ((this.uagent.search(this.mini) > -1 ||\r\n this.uagent.search(this.mobi) > -1)))\r\n return true;\r\n else\r\n return false;\r\n },\r\n\r\n //**************************\r\n // Detects if the current browser is Opera Mobile \r\n // running on an Android phone.\r\n DetectOperaAndroidPhone : function () {\r\n if ((this.uagent.search(this.engineOpera) > -1) &&\r\n (this.uagent.search(this.deviceAndroid) > -1) &&\r\n (this.uagent.search(this.mobi) > -1))\r\n return true;\r\n else\r\n return false;\r\n },\r\n\r\n //**************************\r\n // Detects if the current browser is Opera Mobile \r\n // running on an Android tablet.\r\n DetectOperaAndroidTablet : function () {\r\n if ((this.uagent.search(this.engineOpera) > -1) &&\r\n (this.uagent.search(this.deviceAndroid) > -1) &&\r\n (this.uagent.search(this.deviceTablet) > -1))\r\n return true;\r\n else\r\n return false;\r\n },\r\n\r\n\r\n //MISCELLANEOUS DEVICES\r\n\r\n //**************************\r\n // Detects if the current device is an Amazon Kindle (eInk devices only).\r\n // Note: For the Kindle Fire, use the normal Android methods.\r\n DetectKindle : function () {\r\n if (this.uagent.search(this.deviceKindle) > -1 &&\r\n !this.DetectAndroid())\r\n return true;\r\n else\r\n return false;\r\n },\r\n\r\n //**************************\r\n // Detects if the current Amazon device has turned on the Silk accelerated browsing feature.\r\n // Note: Typically used by the the Kindle Fire.\r\n DetectAmazonSilk : function () {\r\n if (this.uagent.search(this.engineSilk) > -1)\r\n return true;\r\n else\r\n return false;\r\n },\r\n\r\n //**************************\r\n // Detects if the current browser is a\r\n // Garmin Nuvifone.\r\n DetectGarminNuvifone : function () {\r\n if (this.uagent.search(this.deviceNuvifone) > -1)\r\n return true;\r\n else\r\n return false;\r\n },\r\n\r\n //**************************\r\n // Detects a device running the Bada smartphone OS from Samsung.\r\n DetectBada : function () {\r\n if (this.uagent.search(this.deviceBada) > -1)\r\n return true;\r\n else\r\n return false;\r\n },\r\n\r\n //**************************\r\n // Detects a device running the Tizen smartphone OS.\r\n DetectTizen : function () {\r\n if (this.uagent.search(this.deviceTizen) > -1)\r\n return true;\r\n else\r\n return false;\r\n },\r\n\r\n //**************************\r\n // Detects a device running the Meego OS.\r\n DetectMeego : function () {\r\n if (this.uagent.search(this.deviceMeego) > -1)\r\n return true;\r\n else\r\n return false;\r\n },\r\n\r\n //**************************\r\n // Detects a mobile device (probably) running the Firefox OS.\r\n DetectFirefoxOS: function () {\r\n if (this.DetectFirefoxOSPhone() || this.DetectFirefoxOSTablet())\r\n return true;\r\n else\r\n return false;\r\n },\r\n\r\n //**************************\r\n // Detects a phone (probably) running the Firefox OS.\r\n DetectFirefoxOSPhone: function () {\r\n //First, let's make sure we're NOT on another major mobile OS.\r\n if (this.DetectIos() ||\r\n\t\t\tthis.DetectAndroid() ||\r\n\t\t\tthis.DetectSailfish())\r\n return false;\r\n\r\n if ((this.uagent.search(this.engineFirefox) > -1) &&\r\n\t\t\t(this.uagent.search(this.mobile) > -1))\r\n return true;\r\n\r\n return false;\r\n },\r\n\r\n //**************************\r\n // Detects a tablet (probably) running the Firefox OS.\r\n DetectFirefoxOSTablet: function () {\r\n //First, let's make sure we're NOT on another major mobile OS.\r\n if (this.DetectIos() ||\r\n\t\t\tthis.DetectAndroid() ||\r\n\t\t\tthis.DetectSailfish())\r\n return false;\r\n\r\n if ((this.uagent.search(this.engineFirefox) > -1) &&\r\n\t\t\t(this.uagent.search(this.deviceTablet) > -1))\r\n return true;\r\n\r\n return false;\r\n },\r\n\r\n //**************************\r\n // Detects a device running the Sailfish OS.\r\n DetectSailfish: function () {\r\n if (this.uagent.search(this.deviceSailfish) > -1)\r\n return true;\r\n else\r\n return false;\r\n },\r\n\r\n //**************************\r\n // Detects a phone running the Sailfish OS.\r\n DetectSailfishPhone: function () {\r\n if (this.DetectSailfish() && (this.uagent.search(this.mobile) > -1))\r\n return true;\r\n\r\n return false;\r\n },\r\n\r\n\r\n //**************************\r\n // Detects a mobile device running the Ubuntu Mobile OS.\r\n DetectUbuntu: function () {\r\n if (this.DetectUbuntuPhone() || this.DetectUbuntuTablet())\r\n return true;\r\n else\r\n return false;\r\n },\r\n\r\n //**************************\r\n // Detects a phone running the Ubuntu Mobile OS.\r\n DetectUbuntuPhone: function () {\r\n if ((this.uagent.search(this.deviceUbuntu) > -1) &&\r\n\t\t\t(this.uagent.search(this.mobile) > -1))\r\n return true;\r\n\r\n return false;\r\n },\r\n\r\n //**************************\r\n // Detects a tablet running the Ubuntu Mobile OS.\r\n DetectUbuntuTablet: function () {\r\n if ((this.uagent.search(this.deviceUbuntu) > -1) &&\r\n\t\t\t(this.uagent.search(this.deviceTablet) > -1))\r\n return true;\r\n\r\n return false;\r\n },\r\n //**************************\r\n // Detects the Danger Hiptop device.\r\n DetectDangerHiptop : function () {\r\n if (this.uagent.search(this.deviceDanger) > -1 ||\r\n this.uagent.search(this.deviceHiptop) > -1)\r\n return true;\r\n else\r\n return false;\r\n },\r\n\r\n //**************************\r\n // Detects if the current browser is a Sony Mylo device.\r\n DetectSonyMylo : function () {\r\n if ((this.uagent.search(this.manuSony) > -1) &&\r\n ((this.uagent.search(this.qtembedded) > -1) ||\r\n (this.uagent.search(this.mylocom2) > -1)))\r\n return true;\r\n else\r\n return false;\r\n },\r\n\r\n //**************************\r\n // Detects if the current device is on one of \r\n // the Maemo-based Nokia Internet Tablets.\r\n DetectMaemoTablet : function () {\r\n if (this.uagent.search(this.maemo) > -1)\r\n return true;\r\n //For Nokia N810, must be Linux + Tablet, or else it could be something else.\r\n if ((this.uagent.search(this.linux) > -1)\r\n && (this.uagent.search(this.deviceTablet) > -1)\r\n && !this.DetectWebOSTablet()\r\n && !this.DetectAndroid())\r\n return true;\r\n else\r\n return false;\r\n },\r\n\r\n //**************************\r\n // Detects if the current device is an Archos media player/Internet tablet.\r\n DetectArchos : function () {\r\n if (this.uagent.search(this.deviceArchos) > -1)\r\n return true;\r\n else\r\n return false;\r\n },\r\n\r\n //**************************\r\n // Detects if the current device is an Internet-capable game console.\r\n // Includes many handheld consoles.\r\n DetectGameConsole : function () {\r\n if (this.DetectSonyPlaystation() ||\r\n this.DetectNintendo() ||\r\n this.DetectXbox())\r\n return true;\r\n else\r\n return false;\r\n },\r\n\r\n //**************************\r\n // Detects if the current device is a Sony Playstation.\r\n DetectSonyPlaystation : function () {\r\n if (this.uagent.search(this.devicePlaystation) > -1)\r\n return true;\r\n else\r\n return false;\r\n },\r\n\r\n //**************************\r\n // Detects if the current device is a handheld gaming device with\r\n // a touchscreen and modern iPhone-class browser. Includes the Playstation Vita.\r\n DetectGamingHandheld : function () {\r\n if ((this.uagent.search(this.devicePlaystation) > -1) &&\r\n (this.uagent.search(this.devicePlaystationVita) > -1))\r\n return true;\r\n else\r\n return false;\r\n },\r\n\r\n //**************************\r\n // Detects if the current device is a Nintendo game device.\r\n DetectNintendo : function () {\r\n if (this.uagent.search(this.deviceNintendo) > -1 ||\r\n this.uagent.search(this.deviceWii) > -1 ||\r\n this.uagent.search(this.deviceNintendoDs) > -1)\r\n return true;\r\n else\r\n return false;\r\n },\r\n\r\n //**************************\r\n // Detects if the current device is a Microsoft Xbox.\r\n DetectXbox : function () {\r\n if (this.uagent.search(this.deviceXbox) > -1)\r\n return true;\r\n else\r\n return false;\r\n },\r\n\r\n\r\n //**************************\r\n // Detects whether the device is a Brew-powered device.\r\n // Note: Limited to older Brew-powered feature phones.\r\n // Ignores newer Brew versions like MP. Refer to DetectMobileQuick().\r\n DetectBrewDevice : function () {\r\n if (this.uagent.search(this.deviceBrew) > -1)\r\n return true;\r\n else\r\n return false;\r\n },\r\n\r\n\r\n // DEVICE CLASSES\r\n\r\n //**************************\r\n // Check to see whether the device is *any* 'smartphone'.\r\n // Note: It's better to use DetectTierIphone() for modern touchscreen devices. \r\n DetectSmartphone : function () {\r\n //Exclude duplicates from TierIphone\r\n if (this.DetectTierIphone() ||\r\n this.DetectS60OssBrowser() ||\r\n this.DetectSymbianOS() ||\r\n this.DetectWindowsMobile() ||\r\n this.DetectBlackBerry() ||\r\n this.DetectPalmOS())\r\n return true;\r\n\r\n //Otherwise, return false.\r\n return false;\r\n },\r\n\r\n //**************************\r\n // Detects if the current device is a mobile device.\r\n // This method catches most of the popular modern devices.\r\n // Excludes Apple iPads and other modern tablets.\r\n DetectMobileQuick : function () {\r\n //Let's exclude tablets.\r\n if (this.DetectTierTablet())\r\n return false;\r\n\r\n if (this.initCompleted || this.isMobilePhone)\r\n return this.isMobilePhone;\r\n\r\n //Most mobile browsing is done on smartphones\r\n if (this.DetectSmartphone())\r\n return true;\r\n\r\n //Catch all for many mobile devices\r\n if (this.uagent.search(this.mobile) > -1)\r\n return true;\r\n\r\n if (this.DetectKindle() ||\r\n this.DetectAmazonSilk())\r\n return true;\r\n\r\n if (this.uagent.search(this.deviceMidp) > -1 ||\r\n this.DetectBrewDevice())\r\n return true;\r\n\r\n if (this.DetectOperaMobile() ||\r\n this.DetectArchos())\r\n return true;\r\n\r\n if ((this.uagent.search(this.engineObigo) > -1) ||\r\n (this.uagent.search(this.engineNetfront) > -1) ||\r\n (this.uagent.search(this.engineUpBrowser) > -1) ||\r\n (this.uagent.search(this.engineOpenWeb) > -1))\r\n return true;\r\n\r\n return false;\r\n },\r\n\r\n //**************************\r\n // Detects in a more comprehensive way if the current device is a mobile device.\r\n DetectMobileLong : function () {\r\n if (this.DetectMobileQuick())\r\n return true;\r\n if (this.DetectGameConsole())\r\n return true;\r\n\r\n if (this.DetectDangerHiptop() ||\r\n this.DetectMaemoTablet() ||\r\n this.DetectSonyMylo() ||\r\n this.DetectGarminNuvifone() ||\r\n this.DetectArchos())\r\n return true;\r\n\r\n if ((this.uagent.search(this.devicePda) > -1) &&\r\n !(this.uagent.search(this.disUpdate) > -1))\r\n return true;\r\n\r\n //Detect for certain very old devices with stupid useragent strings.\r\n if (this.uagent.search(this.manuSamsung1) > -1 ||\r\n this.uagent.search(this.manuSonyEricsson) > -1 ||\r\n this.uagent.search(this.manuericsson) > -1)\r\n return true;\r\n\r\n if ((this.uagent.search(this.svcDocomo) > -1) ||\r\n (this.uagent.search(this.svcKddi) > -1) ||\r\n (this.uagent.search(this.svcVodafone) > -1))\r\n return true;\r\n\r\n return false;\r\n },\r\n\r\n //*****************************\r\n // For Mobile Web Site Design\r\n //*****************************\r\n\r\n //**************************\r\n // The quick way to detect for a tier of devices.\r\n // This method detects for the new generation of\r\n // HTML 5 capable, larger screen tablets.\r\n // Includes iPad, Android (e.g., Xoom), BB Playbook, WebOS, etc.\r\n DetectTierTablet : function () {\r\n if (this.initCompleted || this.isTierTablet)\r\n return this.isTierTablet;\r\n\r\n if (this.DetectIpad() ||\r\n this.DetectAndroidTablet() ||\r\n this.DetectBlackBerryTablet() ||\r\n this.DetectFirefoxOSTablet() ||\r\n this.DetectUbuntuTablet() ||\r\n this.DetectWebOSTablet())\r\n return true;\r\n else\r\n return false;\r\n },\r\n\r\n //**************************\r\n // The quick way to detect for a tier of devices.\r\n // This method detects for devices which can \r\n // display iPhone-optimized web content.\r\n // Includes iPhone, iPod Touch, Android, Windows Phone 7 and 8, BB10, WebOS, Playstation Vita, etc.\r\n DetectTierIphone : function () {\r\n if (this.initCompleted || this.isTierIphone)\r\n return this.isTierIphone;\r\n\r\n if (this.DetectIphoneOrIpod() ||\r\n this.DetectAndroidPhone() ||\r\n this.DetectWindowsPhone() ||\r\n this.DetectBlackBerry10Phone() ||\r\n this.DetectPalmWebOS() ||\r\n this.DetectBada() ||\r\n this.DetectTizen() ||\r\n this.DetectFirefoxOSPhone() ||\r\n this.DetectSailfishPhone() ||\r\n this.DetectUbuntuPhone() ||\r\n this.DetectGamingHandheld())\r\n return true;\r\n\r\n //Note: BB10 phone is in the previous paragraph\r\n if (this.DetectBlackBerryWebKit() && this.DetectBlackBerryTouch())\r\n return true;\r\n\r\n else\r\n return false;\r\n },\r\n\r\n //**************************\r\n // The quick way to detect for a tier of devices.\r\n // This method detects for devices which are likely to be \r\n // capable of viewing CSS content optimized for the iPhone, \r\n // but may not necessarily support JavaScript.\r\n // Excludes all iPhone Tier devices.\r\n DetectTierRichCss : function () {\r\n if (this.initCompleted || this.isTierRichCss)\r\n return this.isTierRichCss;\r\n\r\n //Exclude iPhone and Tablet Tiers and e-Ink Kindle devices\r\n if (this.DetectTierIphone() ||\r\n this.DetectKindle() ||\r\n this.DetectTierTablet())\r\n return false;\r\n\r\n //Exclude if not mobile\r\n if (!this.DetectMobileQuick())\r\n return false;\r\n\r\n //If it's a mobile webkit browser on any other device, it's probably OK.\r\n if (this.DetectWebkit())\r\n return true;\r\n\r\n //The following devices are also explicitly ok.\r\n if (this.DetectS60OssBrowser() ||\r\n this.DetectBlackBerryHigh() ||\r\n this.DetectWindowsMobile() ||\r\n (this.uagent.search(this.engineTelecaQ) > -1))\r\n return true;\r\n\r\n else\r\n return false;\r\n },\r\n\r\n //**************************\r\n // The quick way to detect for a tier of devices.\r\n // This method detects for all other types of phones,\r\n // but excludes the iPhone and RichCSS Tier devices.\r\n // NOTE: This method probably won't work due to poor\r\n // support for JavaScript among other devices. \r\n DetectTierOtherPhones : function () {\r\n if (this.initCompleted || this.isTierGenericMobile)\r\n return this.isTierGenericMobile;\r\n\r\n //Exclude iPhone, Rich CSS and Tablet Tiers\r\n if (this.DetectTierIphone() ||\r\n this.DetectTierRichCss() ||\r\n this.DetectTierTablet())\r\n return false;\r\n\r\n //Otherwise, if it's mobile, it's OK\r\n if (this.DetectMobileLong())\r\n return true;\r\n\r\n else\r\n return false;\r\n },\r\n\r\n // Detects Android device version (4.4, 5.0)\r\n DetectAndroidVersion: function () {\r\n var androidVersion = 0.0;\r\n \r\n try {\r\n androidVersion = parseFloat(this.uagent.slice(this.uagent.indexOf(this.deviceAndroid) + 8));\r\n } catch (e) {\r\n console.log(e.message);\r\n }\r\n\r\n return androidVersion;\r\n }\r\n};\r\n\r\n\r\n"],"names":["EnsembleVideo","Platform","this","initCompleted","isWebkit","isMobilePhone","isIphone","isAndroid","isIos","isWindowsPhone","isAndroidPhone","isTierTablet","isTierIphone","isTierRichCss","isTierGenericMobile","engineWebKit","deviceIphone","deviceIpod","deviceIpad","deviceMacPpc","deviceAndroid","deviceGoogleTV","deviceHtcFlyer","deviceWinPhone7","deviceWinPhone8","deviceWinPhone10","deviceWinMob","deviceWindows","deviceIeMob","deviceUbuntu","devicePpc","enginePie","deviceBB","deviceBB10","vndRIM","deviceBBStorm","deviceBBBold","deviceBBBoldTouch","deviceBBTour","deviceBBCurve","deviceBBCurveTouch","deviceBBTorch","deviceBBPlaybook","deviceSymbian","deviceSymbos","deviceS60","deviceS70","deviceS80","deviceS90","devicePalm","deviceWebOS","deviceWebOShp","engineBlazer","engineXiino","deviceNuvifone","deviceBada","deviceTizen","deviceMeego","deviceKindle","engineSilk","vndwap","wml","deviceTablet","deviceBrew","deviceDanger","deviceHiptop","devicePlaystation","devicePlaystationVita","deviceNintendoDs","deviceNintendo","deviceWii","deviceXbox","deviceArchos","engineFirefox","engineChrome","engineSafari","engineOpera","engineInternetExplorer","engineTrident","engineNetfront","engineUpBrowser","engineOpenWeb","deviceMidp","uplink","engineTelecaQ","engineObigo","devicePda","mini","mobile","mobi","maemo","linux","mylocom2","manuSonyEricsson","manuericsson","manuSamsung1","manuSony","manuHtc","svcDocomo","svcKddi","svcVodafone","disUpdate","uagent","isChromeBrowser","isSafariBrowser","androidVersion","prototype","InitDeviceScan","navigator","userAgent","toLowerCase","DetectWebkit","DetectIphone","DetectAndroid","DetectAndroidPhone","DetectIos","DetectTierIphone","DetectTierTablet","DetectMobileQuick","DetectTierRichCss","DetectTierOtherPhones","DetectChromeBrowser","isIeBrowser","DetectIeBrowser","DetectSafariBrowser","search","DetectIpad","DetectIpod","DetectIphoneOrIpod","DetectAndroidVersion","DetectGoogleTV","DetectOperaAndroidPhone","DetectAndroidTablet","DetectOperaMobile","DetectAndroidWebKit","DetectWindowsPhone","DetectWindowsPhone7","DetectWindowsPhone8","DetectWindowsPhone10","DetectWindowsMobile","DetectBlackBerry","DetectBlackBerry10Phone","DetectBlackBerryTablet","DetectBlackBerryWebKit","DetectBlackBerryTouch","DetectBlackBerryHigh","DetectBlackBerryLow","DetectS60OssBrowser","DetectSymbianOS","DetectPalmOS","DetectPalmWebOS","DetectWebOSTablet","DetectOperaAndroidTablet","DetectKindle","DetectAmazonSilk","DetectGarminNuvifone","DetectBada","DetectTizen","DetectMeego","DetectFirefoxOS","DetectFirefoxOSPhone","DetectFirefoxOSTablet","DetectSailfish","deviceSailfish","DetectSailfishPhone","DetectUbuntu","DetectUbuntuPhone","DetectUbuntuTablet","DetectDangerHiptop","DetectSonyMylo","qtembedded","DetectMaemoTablet","DetectArchos","DetectGameConsole","DetectSonyPlaystation","DetectNintendo","DetectXbox","DetectGamingHandheld","DetectBrewDevice","DetectSmartphone","DetectMobileLong","parseFloat","slice","indexOf","e","console","log","message"],"mappings":"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"}