var parser;

exports.browser = Object.create(null);

parser = Object.create(null);
parser[0] = new RegExp("(HbbTV)/(\\d+)\\.(\\d+)\\.(\\d+) \\(");
parser[1] = 0;
parser[2] = 0;
parser[3] = 0;
parser[4] = 0;
exports.browser[0] = parser;
parser = Object.create(null);
parser[0] = new RegExp("(SeaMonkey|Camino)/(\\d+)\\.(\\d+)\\.?([ab]?\\d+[a-z]*)");
parser[1] = 0;
parser[2] = 0;
parser[3] = 0;
parser[4] = 0;
exports.browser[1] = parser;
parser = Object.create(null);
parser[0] = new RegExp("(Pale[Mm]oon)/(\\d+)\\.(\\d+)\\.?(\\d+)?");
parser[1] = "Pale Moon (Firefox Variant)";
parser[2] = 0;
parser[3] = 0;
parser[4] = 0;
exports.browser[2] = parser;
parser = Object.create(null);
parser[0] = new RegExp("(Fennec)/(\\d+)\\.(\\d+)\\.?([ab]?\\d+[a-z]*)");
parser[1] = "Firefox Mobile";
parser[2] = 0;
parser[3] = 0;
parser[4] = 0;
exports.browser[3] = parser;
parser = Object.create(null);
parser[0] = new RegExp("(Fennec)/(\\d+)\\.(\\d+)(pre)");
parser[1] = "Firefox Mobile";
parser[2] = 0;
parser[3] = 0;
parser[4] = 0;
exports.browser[4] = parser;
parser = Object.create(null);
parser[0] = new RegExp("(Fennec)/(\\d+)\\.(\\d+)");
parser[1] = "Firefox Mobile";
parser[2] = 0;
parser[3] = 0;
parser[4] = 0;
exports.browser[5] = parser;
parser = Object.create(null);
parser[0] = new RegExp("Mobile.*(Firefox)/(\\d+)\\.(\\d+)");
parser[1] = "Firefox Mobile";
parser[2] = 0;
parser[3] = 0;
parser[4] = 0;
exports.browser[6] = parser;
parser = Object.create(null);
parser[0] = new RegExp("(Namoroka|Shiretoko|Minefield)/(\\d+)\\.(\\d+)\\.(\\d+(?:pre)?)");
parser[1] = "Firefox ($1)";
parser[2] = 0;
parser[3] = 0;
parser[4] = 0;
exports.browser[7] = parser;
parser = Object.create(null);
parser[0] = new RegExp("(Firefox)/(\\d+)\\.(\\d+)(a\\d+[a-z]*)");
parser[1] = "Firefox Alpha";
parser[2] = 0;
parser[3] = 0;
parser[4] = 0;
exports.browser[8] = parser;
parser = Object.create(null);
parser[0] = new RegExp("(Firefox)/(\\d+)\\.(\\d+)(b\\d+[a-z]*)");
parser[1] = "Firefox Beta";
parser[2] = 0;
parser[3] = 0;
parser[4] = 0;
exports.browser[9] = parser;
parser = Object.create(null);
parser[0] = new RegExp("(Firefox)-(?:\\d+\\.\\d+)?/(\\d+)\\.(\\d+)(a\\d+[a-z]*)");
parser[1] = "Firefox Alpha";
parser[2] = 0;
parser[3] = 0;
parser[4] = 0;
exports.browser[10] = parser;
parser = Object.create(null);
parser[0] = new RegExp("(Firefox)-(?:\\d+\\.\\d+)?/(\\d+)\\.(\\d+)(b\\d+[a-z]*)");
parser[1] = "Firefox Beta";
parser[2] = 0;
parser[3] = 0;
parser[4] = 0;
exports.browser[11] = parser;
parser = Object.create(null);
parser[0] = new RegExp("(Namoroka|Shiretoko|Minefield)/(\\d+)\\.(\\d+)([ab]\\d+[a-z]*)?");
parser[1] = "Firefox ($1)";
parser[2] = 0;
parser[3] = 0;
parser[4] = 0;
exports.browser[12] = parser;
parser = Object.create(null);
parser[0] = new RegExp("(Firefox).*Tablet browser (\\d+)\\.(\\d+)\\.(\\d+)");
parser[1] = "MicroB";
parser[2] = 0;
parser[3] = 0;
parser[4] = 0;
exports.browser[13] = parser;
parser = Object.create(null);
parser[0] = new RegExp("(MozillaDeveloperPreview)/(\\d+)\\.(\\d+)([ab]\\d+[a-z]*)?");
parser[1] = 0;
parser[2] = 0;
parser[3] = 0;
parser[4] = 0;
exports.browser[14] = parser;
parser = Object.create(null);
parser[0] = new RegExp("(Flock)/(\\d+)\\.(\\d+)(b\\d+?)");
parser[1] = 0;
parser[2] = 0;
parser[3] = 0;
parser[4] = 0;
exports.browser[15] = parser;
parser = Object.create(null);
parser[0] = new RegExp("(RockMelt)/(\\d+)\\.(\\d+)\\.(\\d+)");
parser[1] = 0;
parser[2] = 0;
parser[3] = 0;
parser[4] = 0;
exports.browser[16] = parser;
parser = Object.create(null);
parser[0] = new RegExp("(Navigator)/(\\d+)\\.(\\d+)\\.(\\d+)");
parser[1] = "Netscape";
parser[2] = 0;
parser[3] = 0;
parser[4] = 0;
exports.browser[17] = parser;
parser = Object.create(null);
parser[0] = new RegExp("(Navigator)/(\\d+)\\.(\\d+)([ab]\\d+)");
parser[1] = "Netscape";
parser[2] = 0;
parser[3] = 0;
parser[4] = 0;
exports.browser[18] = parser;
parser = Object.create(null);
parser[0] = new RegExp("(Netscape6)/(\\d+)\\.(\\d+)\\.(\\d+)");
parser[1] = "Netscape";
parser[2] = 0;
parser[3] = 0;
parser[4] = 0;
exports.browser[19] = parser;
parser = Object.create(null);
parser[0] = new RegExp("(MyIBrow)/(\\d+)\\.(\\d+)");
parser[1] = "My Internet Browser";
parser[2] = 0;
parser[3] = 0;
parser[4] = 0;
exports.browser[20] = parser;
parser = Object.create(null);
parser[0] = new RegExp("(Opera Tablet).*Version/(\\d+)\\.(\\d+)(?:\\.(\\d+))?");
parser[1] = 0;
parser[2] = 0;
parser[3] = 0;
parser[4] = 0;
exports.browser[21] = parser;
parser = Object.create(null);
parser[0] = new RegExp("(Opera)/.+Opera Mobi.+Version/(\\d+)\\.(\\d+)");
parser[1] = "Opera Mobile";
parser[2] = 0;
parser[3] = 0;
parser[4] = 0;
exports.browser[22] = parser;
parser = Object.create(null);
parser[0] = new RegExp("Opera Mobi");
parser[1] = "Opera Mobile";
parser[2] = 0;
parser[3] = 0;
parser[4] = 0;
exports.browser[23] = parser;
parser = Object.create(null);
parser[0] = new RegExp("(Opera Mini)/(\\d+)\\.(\\d+)");
parser[1] = 0;
parser[2] = 0;
parser[3] = 0;
parser[4] = 0;
exports.browser[24] = parser;
parser = Object.create(null);
parser[0] = new RegExp("(Opera Mini)/att/(\\d+)\\.(\\d+)");
parser[1] = 0;
parser[2] = 0;
parser[3] = 0;
parser[4] = 0;
exports.browser[25] = parser;
parser = Object.create(null);
parser[0] = new RegExp("(Opera)/9.80.*Version/(\\d+)\\.(\\d+)(?:\\.(\\d+))?");
parser[1] = 0;
parser[2] = 0;
parser[3] = 0;
parser[4] = 0;
exports.browser[26] = parser;
parser = Object.create(null);
parser[0] = new RegExp("(?:Mobile Safari).*(OPR)/(\\d+)\\.(\\d+)\\.(\\d+)");
parser[1] = "Opera Mobile";
parser[2] = 0;
parser[3] = 0;
parser[4] = 0;
exports.browser[27] = parser;
parser = Object.create(null);
parser[0] = new RegExp("(?:Chrome).*(OPR)/(\\d+)\\.(\\d+)\\.(\\d+)");
parser[1] = "Opera";
parser[2] = 0;
parser[3] = 0;
parser[4] = 0;
exports.browser[28] = parser;
parser = Object.create(null);
parser[0] = new RegExp("(hpw|web)OS/(\\d+)\\.(\\d+)(?:\\.(\\d+))?");
parser[1] = "webOS Browser";
parser[2] = 0;
parser[3] = 0;
parser[4] = 0;
exports.browser[29] = parser;
parser = Object.create(null);
parser[0] = new RegExp("(luakit)");
parser[1] = "LuaKit";
parser[2] = 0;
parser[3] = 0;
parser[4] = 0;
exports.browser[30] = parser;
parser = Object.create(null);
parser[0] = new RegExp("(Snowshoe)/(\\d+)\\.(\\d+).(\\d+)");
parser[1] = 0;
parser[2] = 0;
parser[3] = 0;
parser[4] = 0;
exports.browser[31] = parser;
parser = Object.create(null);
parser[0] = new RegExp("(Lightning)/(\\d+)\\.(\\d+)\\.?((?:[ab]?\\d+[a-z]*)|(?:\\d*))");
parser[1] = 0;
parser[2] = 0;
parser[3] = 0;
parser[4] = 0;
exports.browser[32] = parser;
parser = Object.create(null);
parser[0] = new RegExp("(Firefox)/(\\d+)\\.(\\d+)\\.(\\d+(?:pre)?) \\(Swiftfox\\)");
parser[1] = "Swiftfox";
parser[2] = 0;
parser[3] = 0;
parser[4] = 0;
exports.browser[33] = parser;
parser = Object.create(null);
parser[0] = new RegExp("(Firefox)/(\\d+)\\.(\\d+)([ab]\\d+[a-z]*)? \\(Swiftfox\\)");
parser[1] = "Swiftfox";
parser[2] = 0;
parser[3] = 0;
parser[4] = 0;
exports.browser[34] = parser;
parser = Object.create(null);
parser[0] = new RegExp("(rekonq)/(\\d+)\\.(\\d+)\\.?(\\d+)? Safari");
parser[1] = "Rekonq";
parser[2] = 0;
parser[3] = 0;
parser[4] = 0;
exports.browser[35] = parser;
parser = Object.create(null);
parser[0] = new RegExp("rekonq");
parser[1] = "Rekonq";
parser[2] = 0;
parser[3] = 0;
parser[4] = 0;
exports.browser[36] = parser;
parser = Object.create(null);
parser[0] = new RegExp("(conkeror|Conkeror)/(\\d+)\\.(\\d+)\\.?(\\d+)?");
parser[1] = "Conkeror";
parser[2] = 0;
parser[3] = 0;
parser[4] = 0;
exports.browser[37] = parser;
parser = Object.create(null);
parser[0] = new RegExp("(konqueror)/(\\d+)\\.(\\d+)\\.(\\d+)");
parser[1] = "Konqueror";
parser[2] = 0;
parser[3] = 0;
parser[4] = 0;
exports.browser[38] = parser;
parser = Object.create(null);
parser[0] = new RegExp("(WeTab)-Browser");
parser[1] = 0;
parser[2] = 0;
parser[3] = 0;
parser[4] = 0;
exports.browser[39] = parser;
parser = Object.create(null);
parser[0] = new RegExp("(Comodo_Dragon)/(\\d+)\\.(\\d+)\\.(\\d+)");
parser[1] = "Comodo Dragon";
parser[2] = 0;
parser[3] = 0;
parser[4] = 0;
exports.browser[40] = parser;
parser = Object.create(null);
parser[0] = new RegExp("(YottaaMonitor|BrowserMob|HttpMonitor|YandexBot|Slurp|BingPreview|PagePeeker|ThumbShotsBot|WebThumb|URL2PNG|ZooShot|GomezA|Catchpoint bot|Willow Internet Crawler|Google SketchUp|Read%20Later)");
parser[1] = 0;
parser[2] = 0;
parser[3] = 0;
parser[4] = 0;
exports.browser[41] = parser;
parser = Object.create(null);
parser[0] = new RegExp("(Symphony) (\\d+).(\\d+)");
parser[1] = 0;
parser[2] = 0;
parser[3] = 0;
parser[4] = 0;
exports.browser[42] = parser;
parser = Object.create(null);
parser[0] = new RegExp("(Minimo)");
parser[1] = 0;
parser[2] = 0;
parser[3] = 0;
parser[4] = 0;
exports.browser[43] = parser;
parser = Object.create(null);
parser[0] = new RegExp("(CrMo)/(\\d+)\\.(\\d+)\\.(\\d+)\\.(\\d+)");
parser[1] = "Chrome Mobile";
parser[2] = 0;
parser[3] = 0;
parser[4] = 0;
exports.browser[44] = parser;
parser = Object.create(null);
parser[0] = new RegExp("(CriOS)/(\\d+)\\.(\\d+)\\.(\\d+)\\.(\\d+)");
parser[1] = "Chrome Mobile iOS";
parser[2] = 0;
parser[3] = 0;
parser[4] = 0;
exports.browser[45] = parser;
parser = Object.create(null);
parser[0] = new RegExp("(Chrome)/(\\d+)\\.(\\d+)\\.(\\d+)\\.(\\d+) Mobile");
parser[1] = "Chrome Mobile";
parser[2] = 0;
parser[3] = 0;
parser[4] = 0;
exports.browser[46] = parser;
parser = Object.create(null);
parser[0] = new RegExp("(chromeframe)/(\\d+)\\.(\\d+)\\.(\\d+)");
parser[1] = "Chrome Frame";
parser[2] = 0;
parser[3] = 0;
parser[4] = 0;
exports.browser[47] = parser;
parser = Object.create(null);
parser[0] = new RegExp("(UCBrowser)[ /](\\d+)\\.(\\d+)\\.(\\d+)");
parser[1] = "UC Browser";
parser[2] = 0;
parser[3] = 0;
parser[4] = 0;
exports.browser[48] = parser;
parser = Object.create(null);
parser[0] = new RegExp("(UC Browser)[ /](\\d+)\\.(\\d+)\\.(\\d+)");
parser[1] = 0;
parser[2] = 0;
parser[3] = 0;
parser[4] = 0;
exports.browser[49] = parser;
parser = Object.create(null);
parser[0] = new RegExp("(UC Browser|UCBrowser|UCWEB)(\\d+)\\.(\\d+)\\.(\\d+)");
parser[1] = "UC Browser";
parser[2] = 0;
parser[3] = 0;
parser[4] = 0;
exports.browser[50] = parser;
parser = Object.create(null);
parser[0] = new RegExp("(SLP Browser)/(\\d+)\\.(\\d+)");
parser[1] = "Tizen Browser";
parser[2] = 0;
parser[3] = 0;
parser[4] = 0;
exports.browser[51] = parser;
parser = Object.create(null);
parser[0] = new RegExp("(SE 2\\.X) MetaSr (\\d+)\\.(\\d+)");
parser[1] = "Sogou Explorer";
parser[2] = 0;
parser[3] = 0;
parser[4] = 0;
exports.browser[52] = parser;
parser = Object.create(null);
parser[0] = new RegExp("(baidubrowser)[/\\s](\\d+)");
parser[1] = "Baidu Browser";
parser[2] = 0;
parser[3] = 0;
parser[4] = 0;
exports.browser[53] = parser;
parser = Object.create(null);
parser[0] = new RegExp("(FlyFlow)/(\\d+)\\.(\\d+)");
parser[1] = "Baidu Explorer";
parser[2] = 0;
parser[3] = 0;
parser[4] = 0;
exports.browser[54] = parser;
parser = Object.create(null);
parser[0] = new RegExp("(Pingdom.com_bot_version_)(\\d+)\\.(\\d+)");
parser[1] = "PingdomBot";
parser[2] = 0;
parser[3] = 0;
parser[4] = 0;
exports.browser[55] = parser;
parser = Object.create(null);
parser[0] = new RegExp("(facebookexternalhit)/(\\d+)\\.(\\d+)");
parser[1] = "FacebookBot";
parser[2] = 0;
parser[3] = 0;
parser[4] = 0;
exports.browser[56] = parser;
parser = Object.create(null);
parser[0] = new RegExp("(LinkedInBot)/(\\d+)\\.(\\d+)");
parser[1] = "LinkedInBot";
parser[2] = 0;
parser[3] = 0;
parser[4] = 0;
exports.browser[57] = parser;
parser = Object.create(null);
parser[0] = new RegExp("(Twitterbot)/(\\d+)\\.(\\d+)");
parser[1] = "TwitterBot";
parser[2] = 0;
parser[3] = 0;
parser[4] = 0;
exports.browser[58] = parser;
parser = Object.create(null);
parser[0] = new RegExp("Google.*/\\+/web/snippet");
parser[1] = "GooglePlusBot";
parser[2] = 0;
parser[3] = 0;
parser[4] = 0;
exports.browser[59] = parser;
parser = Object.create(null);
parser[0] = new RegExp("(Rackspace Monitoring)/(\\d+)\\.(\\d+)");
parser[1] = "RackspaceBot";
parser[2] = 0;
parser[3] = 0;
parser[4] = 0;
exports.browser[60] = parser;
parser = Object.create(null);
parser[0] = new RegExp("(PyAMF)/(\\d+)\\.(\\d+)\\.(\\d+)");
parser[1] = 0;
parser[2] = 0;
parser[3] = 0;
parser[4] = 0;
exports.browser[61] = parser;
parser = Object.create(null);
parser[0] = new RegExp("(YaBrowser)/(\\d+)\\.(\\d+)\\.(\\d+)");
parser[1] = "Yandex Browser";
parser[2] = 0;
parser[3] = 0;
parser[4] = 0;
exports.browser[62] = parser;
parser = Object.create(null);
parser[0] = new RegExp("(Chrome)/(\\d+)\\.(\\d+)\\.(\\d+).* MRCHROME");
parser[1] = "Mail.ru Chromium Browser";
parser[2] = 0;
parser[3] = 0;
parser[4] = 0;
exports.browser[63] = parser;
parser = Object.create(null);
parser[0] = new RegExp("(AOL) (\\d+)\\.(\\d+); AOLBuild (\\d+)");
parser[1] = 0;
parser[2] = 0;
parser[3] = 0;
parser[4] = 0;
exports.browser[64] = parser;
parser = Object.create(null);
parser[0] = new RegExp("(AdobeAIR|FireWeb|Jasmine|ANTGalio|Midori|Fresco|Lobo|PaleMoon|Maxthon|Lynx|OmniWeb|Dillo|Camino|Demeter|Fluid|Fennec|Epiphany|Shiira|Sunrise|Flock|Netscape|Lunascape|WebPilot|Vodafone|NetFront|Netfront|Konqueror|SeaMonkey|Kazehakase|Vienna|Iceape|Iceweasel|IceWeasel|Iron|K-Meleon|Sleipnir|Galeon|GranParadiso|Opera Mini|iCab|NetNewsWire|ThunderBrowse|Iris|UP\\.Browser|Bunjalloo|Google Earth|Raven for Mac|Openwave)/(\\d+)\\.(\\d+)\\.(\\d+)");
parser[1] = 0;
parser[2] = 0;
parser[3] = 0;
parser[4] = 0;
exports.browser[65] = parser;
parser = Object.create(null);
parser[0] = new RegExp("MSOffice 12");
parser[1] = "Outlook";
parser[2] = "2007";
parser[3] = 0;
parser[4] = 0;
exports.browser[66] = parser;
parser = Object.create(null);
parser[0] = new RegExp("MSOffice 14");
parser[1] = "Outlook";
parser[2] = "2010";
parser[3] = 0;
parser[4] = 0;
exports.browser[67] = parser;
parser = Object.create(null);
parser[0] = new RegExp("Microsoft Outlook 15\\.\\d+\\.\\d+");
parser[1] = "Outlook";
parser[2] = "2013";
parser[3] = 0;
parser[4] = 0;
exports.browser[68] = parser;
parser = Object.create(null);
parser[0] = new RegExp("(Airmail) (\\d+)\\.(\\d+)(?:\\.(\\d+))?");
parser[1] = 0;
parser[2] = 0;
parser[3] = 0;
parser[4] = 0;
exports.browser[69] = parser;
parser = Object.create(null);
parser[0] = new RegExp("(Thunderbird)/(\\d+)\\.(\\d+)\\.(\\d+(?:pre)?)");
parser[1] = "Thunderbird";
parser[2] = 0;
parser[3] = 0;
parser[4] = 0;
exports.browser[70] = parser;
parser = Object.create(null);
parser[0] = new RegExp("(Chromium|Chrome)/(\\d+)\\.(\\d+)\\.(\\d+)");
parser[1] = 0;
parser[2] = 0;
parser[3] = 0;
parser[4] = 0;
exports.browser[71] = parser;
parser = Object.create(null);
parser[0] = new RegExp("(bingbot|Bolt|Jasmine|IceCat|Skyfire|Midori|Maxthon|Lynx|Arora|IBrowse|Dillo|Camino|Shiira|Fennec|Phoenix|Chrome|Flock|Netscape|Lunascape|Epiphany|WebPilot|Opera Mini|Opera|Vodafone|NetFront|Netfront|Konqueror|Googlebot|SeaMonkey|Kazehakase|Vienna|Iceape|Iceweasel|IceWeasel|Iron|K-Meleon|Sleipnir|Galeon|GranParadiso|iCab|NetNewsWire|Space Bison|Stainless|Orca|Dolfin|BOLT|Minimo|Tizen Browser|Polaris|Abrowser|Planetweb|ICE Browser)/(\\d+)\\.(\\d+)");
parser[1] = 0;
parser[2] = 0;
parser[3] = 0;
parser[4] = 0;
exports.browser[72] = parser;
parser = Object.create(null);
parser[0] = new RegExp("(Chromium|Chrome)/(\\d+)\\.(\\d+)");
parser[1] = 0;
parser[2] = 0;
parser[3] = 0;
parser[4] = 0;
exports.browser[73] = parser;
parser = Object.create(null);
parser[0] = new RegExp("(iRider|Crazy Browser|SkipStone|iCab|Lunascape|Sleipnir|Maemo Browser) (\\d+)\\.(\\d+)\\.(\\d+)");
parser[1] = 0;
parser[2] = 0;
parser[3] = 0;
parser[4] = 0;
exports.browser[74] = parser;
parser = Object.create(null);
parser[0] = new RegExp("(iCab|Lunascape|Opera|Android|Jasmine|Polaris) (\\d+)\\.(\\d+)\\.?(\\d+)?");
parser[1] = 0;
parser[2] = 0;
parser[3] = 0;
parser[4] = 0;
exports.browser[75] = parser;
parser = Object.create(null);
parser[0] = new RegExp("(Kindle)/(\\d+)\\.(\\d+)");
parser[1] = 0;
parser[2] = 0;
parser[3] = 0;
parser[4] = 0;
exports.browser[76] = parser;
parser = Object.create(null);
parser[0] = new RegExp("(Android) Donut");
parser[1] = 0;
parser[2] = "1";
parser[3] = "2";
parser[4] = 0;
exports.browser[77] = parser;
parser = Object.create(null);
parser[0] = new RegExp("(Android) Eclair");
parser[1] = 0;
parser[2] = "2";
parser[3] = "1";
parser[4] = 0;
exports.browser[78] = parser;
parser = Object.create(null);
parser[0] = new RegExp("(Android) Froyo");
parser[1] = 0;
parser[2] = "2";
parser[3] = "2";
parser[4] = 0;
exports.browser[79] = parser;
parser = Object.create(null);
parser[0] = new RegExp("(Android) Gingerbread");
parser[1] = 0;
parser[2] = "2";
parser[3] = "3";
parser[4] = 0;
exports.browser[80] = parser;
parser = Object.create(null);
parser[0] = new RegExp("(Android) Honeycomb");
parser[1] = 0;
parser[2] = "3";
parser[3] = 0;
parser[4] = 0;
exports.browser[81] = parser;
parser = Object.create(null);
parser[0] = new RegExp("(IEMobile)[ /](\\d+)\\.(\\d+)");
parser[1] = "IE Mobile";
parser[2] = 0;
parser[3] = 0;
parser[4] = 0;
exports.browser[82] = parser;
parser = Object.create(null);
parser[0] = new RegExp("(MSIE) (\\d+)\\.(\\d+).*XBLWP7");
parser[1] = "IE Large Screen";
parser[2] = 0;
parser[3] = 0;
parser[4] = 0;
exports.browser[83] = parser;
parser = Object.create(null);
parser[0] = new RegExp("(Obigo)InternetBrowser");
parser[1] = 0;
parser[2] = 0;
parser[3] = 0;
parser[4] = 0;
exports.browser[84] = parser;
parser = Object.create(null);
parser[0] = new RegExp("(Obigo)\\-Browser");
parser[1] = 0;
parser[2] = 0;
parser[3] = 0;
parser[4] = 0;
exports.browser[85] = parser;
parser = Object.create(null);
parser[0] = new RegExp("(Obigo|OBIGO)[^\\d]*(\\d+)(?:.(\\d+))?");
parser[1] = "Obigo";
parser[2] = 0;
parser[3] = 0;
parser[4] = 0;
exports.browser[86] = parser;
parser = Object.create(null);
parser[0] = new RegExp("(MAXTHON|Maxthon) (\\d+)\\.(\\d+)");
parser[1] = "Maxthon";
parser[2] = 0;
parser[3] = 0;
parser[4] = 0;
exports.browser[87] = parser;
parser = Object.create(null);
parser[0] = new RegExp("(Maxthon|MyIE2|Uzbl|Shiira)");
parser[1] = 0;
parser[2] = "0";
parser[3] = 0;
parser[4] = 0;
exports.browser[88] = parser;
parser = Object.create(null);
parser[0] = new RegExp("PLAYSTATION 3.+WebKit");
parser[1] = "NetFront NX";
parser[2] = 0;
parser[3] = 0;
parser[4] = 0;
exports.browser[89] = parser;
parser = Object.create(null);
parser[0] = new RegExp("PLAYSTATION 3");
parser[1] = "NetFront";
parser[2] = 0;
parser[3] = 0;
parser[4] = 0;
exports.browser[90] = parser;
parser = Object.create(null);
parser[0] = new RegExp("(PlayStation Portable)");
parser[1] = "NetFront";
parser[2] = 0;
parser[3] = 0;
parser[4] = 0;
exports.browser[91] = parser;
parser = Object.create(null);
parser[0] = new RegExp("(PlayStation Vita)");
parser[1] = "NetFront NX";
parser[2] = 0;
parser[3] = 0;
parser[4] = 0;
exports.browser[92] = parser;
parser = Object.create(null);
parser[0] = new RegExp("AppleWebKit.+ (NX)/(\\d+)\\.(\\d+)\\.(\\d+)");
parser[1] = "NetFront NX";
parser[2] = 0;
parser[3] = 0;
parser[4] = 0;
exports.browser[93] = parser;
parser = Object.create(null);
parser[0] = new RegExp("(Nintendo 3DS)");
parser[1] = "NetFront NX";
parser[2] = 0;
parser[3] = 0;
parser[4] = 0;
exports.browser[94] = parser;
parser = Object.create(null);
parser[0] = new RegExp("(BrowseX) \\((\\d+)\\.(\\d+)\\.(\\d+)");
parser[1] = 0;
parser[2] = 0;
parser[3] = 0;
parser[4] = 0;
exports.browser[95] = parser;
parser = Object.create(null);
parser[0] = new RegExp("(NCSA_Mosaic)/(\\d+)\\.(\\d+)");
parser[1] = "NCSA Mosaic";
parser[2] = 0;
parser[3] = 0;
parser[4] = 0;
exports.browser[96] = parser;
parser = Object.create(null);
parser[0] = new RegExp("(POLARIS)/(\\d+)\\.(\\d+)");
parser[1] = "Polaris";
parser[2] = 0;
parser[3] = 0;
parser[4] = 0;
exports.browser[97] = parser;
parser = Object.create(null);
parser[0] = new RegExp("(Embider)/(\\d+)\\.(\\d+)");
parser[1] = "Polaris";
parser[2] = 0;
parser[3] = 0;
parser[4] = 0;
exports.browser[98] = parser;
parser = Object.create(null);
parser[0] = new RegExp("(BonEcho)/(\\d+)\\.(\\d+)\\.(\\d+)");
parser[1] = "Bon Echo";
parser[2] = 0;
parser[3] = 0;
parser[4] = 0;
exports.browser[99] = parser;
parser = Object.create(null);
parser[0] = new RegExp("M?QQBrowser");
parser[1] = "QQ Browser";
parser[2] = 0;
parser[3] = 0;
parser[4] = 0;
exports.browser[100] = parser;
parser = Object.create(null);
parser[0] = new RegExp("(iPod).+Version/(\\d+)\\.(\\d+)\\.(\\d+)");
parser[1] = "Mobile Safari";
parser[2] = 0;
parser[3] = 0;
parser[4] = 0;
exports.browser[101] = parser;
parser = Object.create(null);
parser[0] = new RegExp("(iPod).*Version/(\\d+)\\.(\\d+)");
parser[1] = "Mobile Safari";
parser[2] = 0;
parser[3] = 0;
parser[4] = 0;
exports.browser[102] = parser;
parser = Object.create(null);
parser[0] = new RegExp("(iPhone).*Version/(\\d+)\\.(\\d+)\\.(\\d+)");
parser[1] = "Mobile Safari";
parser[2] = 0;
parser[3] = 0;
parser[4] = 0;
exports.browser[103] = parser;
parser = Object.create(null);
parser[0] = new RegExp("(iPhone).*Version/(\\d+)\\.(\\d+)");
parser[1] = "Mobile Safari";
parser[2] = 0;
parser[3] = 0;
parser[4] = 0;
exports.browser[104] = parser;
parser = Object.create(null);
parser[0] = new RegExp("(iPad).*Version/(\\d+)\\.(\\d+)\\.(\\d+)");
parser[1] = "Mobile Safari";
parser[2] = 0;
parser[3] = 0;
parser[4] = 0;
exports.browser[105] = parser;
parser = Object.create(null);
parser[0] = new RegExp("(iPad).*Version/(\\d+)\\.(\\d+)");
parser[1] = "Mobile Safari";
parser[2] = 0;
parser[3] = 0;
parser[4] = 0;
exports.browser[106] = parser;
parser = Object.create(null);
parser[0] = new RegExp("(iPod|iPhone|iPad);.*CPU.*OS (\\d+)(?:_\\d+)?_(\\d+).*Mobile");
parser[1] = "Mobile Safari";
parser[2] = 0;
parser[3] = 0;
parser[4] = 0;
exports.browser[107] = parser;
parser = Object.create(null);
parser[0] = new RegExp("(iPod|iPhone|iPad)");
parser[1] = "Mobile Safari";
parser[2] = 0;
parser[3] = 0;
parser[4] = 0;
exports.browser[108] = parser;
parser = Object.create(null);
parser[0] = new RegExp("(AvantGo) (\\d+).(\\d+)");
parser[1] = 0;
parser[2] = 0;
parser[3] = 0;
parser[4] = 0;
exports.browser[109] = parser;
parser = Object.create(null);
parser[0] = new RegExp("(OneBrowser)/(\\d+).(\\d+)");
parser[1] = "ONE Browser";
parser[2] = 0;
parser[3] = 0;
parser[4] = 0;
exports.browser[110] = parser;
parser = Object.create(null);
parser[0] = new RegExp("(Avant)");
parser[1] = 0;
parser[2] = "1";
parser[3] = 0;
parser[4] = 0;
exports.browser[111] = parser;
parser = Object.create(null);
parser[0] = new RegExp("(QtCarBrowser)");
parser[1] = 0;
parser[2] = "1";
parser[3] = 0;
parser[4] = 0;
exports.browser[112] = parser;
parser = Object.create(null);
parser[0] = new RegExp("(iBrowser/Mini)(\\d+).(\\d+)");
parser[1] = "iBrowser Mini";
parser[2] = 0;
parser[3] = 0;
parser[4] = 0;
exports.browser[113] = parser;
parser = Object.create(null);
parser[0] = new RegExp("^(Nokia)");
parser[1] = "Nokia Services (WAP) Browser";
parser[2] = 0;
parser[3] = 0;
parser[4] = 0;
exports.browser[114] = parser;
parser = Object.create(null);
parser[0] = new RegExp("(NokiaBrowser)/(\\d+)\\.(\\d+).(\\d+)\\.(\\d+)");
parser[1] = "Nokia Browser";
parser[2] = 0;
parser[3] = 0;
parser[4] = 0;
exports.browser[115] = parser;
parser = Object.create(null);
parser[0] = new RegExp("(NokiaBrowser)/(\\d+)\\.(\\d+).(\\d+)");
parser[1] = "Nokia Browser";
parser[2] = 0;
parser[3] = 0;
parser[4] = 0;
exports.browser[116] = parser;
parser = Object.create(null);
parser[0] = new RegExp("(NokiaBrowser)/(\\d+)\\.(\\d+)");
parser[1] = "Nokia Browser";
parser[2] = 0;
parser[3] = 0;
parser[4] = 0;
exports.browser[117] = parser;
parser = Object.create(null);
parser[0] = new RegExp("(BrowserNG)/(\\d+)\\.(\\d+).(\\d+)");
parser[1] = "Nokia Browser";
parser[2] = 0;
parser[3] = 0;
parser[4] = 0;
exports.browser[118] = parser;
parser = Object.create(null);
parser[0] = new RegExp("(Series60)/5\\.0");
parser[1] = "Nokia Browser";
parser[2] = "7";
parser[3] = "0";
parser[4] = 0;
exports.browser[119] = parser;
parser = Object.create(null);
parser[0] = new RegExp("(Series60)/(\\d+)\\.(\\d+)");
parser[1] = "Nokia OSS Browser";
parser[2] = 0;
parser[3] = 0;
parser[4] = 0;
exports.browser[120] = parser;
parser = Object.create(null);
parser[0] = new RegExp("(S40OviBrowser)/(\\d+)\\.(\\d+)\\.(\\d+)\\.(\\d+)");
parser[1] = "Ovi Browser";
parser[2] = 0;
parser[3] = 0;
parser[4] = 0;
exports.browser[121] = parser;
parser = Object.create(null);
parser[0] = new RegExp("(Nokia)[EN]?(\\d+)");
parser[1] = 0;
parser[2] = 0;
parser[3] = 0;
parser[4] = 0;
exports.browser[122] = parser;
parser = Object.create(null);
parser[0] = new RegExp("(BB10);");
parser[1] = "BlackBerry WebKit";
parser[2] = 0;
parser[3] = 0;
parser[4] = 0;
exports.browser[123] = parser;
parser = Object.create(null);
parser[0] = new RegExp("(PlayBook).+RIM Tablet OS (\\d+)\\.(\\d+)\\.(\\d+)");
parser[1] = "BlackBerry WebKit";
parser[2] = 0;
parser[3] = 0;
parser[4] = 0;
exports.browser[124] = parser;
parser = Object.create(null);
parser[0] = new RegExp("(Black[bB]erry).+Version/(\\d+)\\.(\\d+)\\.(\\d+)");
parser[1] = "BlackBerry WebKit";
parser[2] = 0;
parser[3] = 0;
parser[4] = 0;
exports.browser[125] = parser;
parser = Object.create(null);
parser[0] = new RegExp("(Black[bB]erry)\\s?(\\d+)");
parser[1] = "BlackBerry";
parser[2] = 0;
parser[3] = 0;
parser[4] = 0;
exports.browser[126] = parser;
parser = Object.create(null);
parser[0] = new RegExp("(OmniWeb)/v(\\d+)\\.(\\d+)");
parser[1] = 0;
parser[2] = 0;
parser[3] = 0;
parser[4] = 0;
exports.browser[127] = parser;
parser = Object.create(null);
parser[0] = new RegExp("(Blazer)/(\\d+)\\.(\\d+)");
parser[1] = "Palm Blazer";
parser[2] = 0;
parser[3] = 0;
parser[4] = 0;
exports.browser[128] = parser;
parser = Object.create(null);
parser[0] = new RegExp("(Pre)/(\\d+)\\.(\\d+)");
parser[1] = "Palm Pre";
parser[2] = 0;
parser[3] = 0;
parser[4] = 0;
exports.browser[129] = parser;
parser = Object.create(null);
parser[0] = new RegExp("(ELinks)/(\\d+)\\.(\\d+)");
parser[1] = 0;
parser[2] = 0;
parser[3] = 0;
parser[4] = 0;
exports.browser[130] = parser;
parser = Object.create(null);
parser[0] = new RegExp("(ELinks) \\((\\d+)\\.(\\d+)");
parser[1] = 0;
parser[2] = 0;
parser[3] = 0;
parser[4] = 0;
exports.browser[131] = parser;
parser = Object.create(null);
parser[0] = new RegExp("(Links) \\((\\d+)\\.(\\d+)");
parser[1] = 0;
parser[2] = 0;
parser[3] = 0;
parser[4] = 0;
exports.browser[132] = parser;
parser = Object.create(null);
parser[0] = new RegExp("(QtWeb) Internet Browser/(\\d+)\\.(\\d+)");
parser[1] = 0;
parser[2] = 0;
parser[3] = 0;
parser[4] = 0;
exports.browser[133] = parser;
parser = Object.create(null);
parser[0] = new RegExp("(Silk)/(\\d+)\\.(\\d+)(?:\\.([0-9\\-]+))?");
parser[1] = "Amazon Silk";
parser[2] = 0;
parser[3] = 0;
parser[4] = 0;
exports.browser[134] = parser;
parser = Object.create(null);
parser[0] = new RegExp("(PhantomJS)/(\\d+)\\.(\\d+)\\.(\\d+)");
parser[1] = 0;
parser[2] = 0;
parser[3] = 0;
parser[4] = 0;
exports.browser[135] = parser;
parser = Object.create(null);
parser[0] = new RegExp("(AppleWebKit)/(\\d+)\\.?(\\d+)?\\+ .* Safari");
parser[1] = "WebKit Nightly";
parser[2] = 0;
parser[3] = 0;
parser[4] = 0;
exports.browser[136] = parser;
parser = Object.create(null);
parser[0] = new RegExp("(Version)/(\\d+)\\.(\\d+)(?:\\.(\\d+))?.*Safari/");
parser[1] = "Safari";
parser[2] = 0;
parser[3] = 0;
parser[4] = 0;
exports.browser[137] = parser;
parser = Object.create(null);
parser[0] = new RegExp("(Safari)/\\d+");
parser[1] = 0;
parser[2] = 0;
parser[3] = 0;
parser[4] = 0;
exports.browser[138] = parser;
parser = Object.create(null);
parser[0] = new RegExp("(OLPC)/Update(\\d+)\\.(\\d+)");
parser[1] = 0;
parser[2] = 0;
parser[3] = 0;
parser[4] = 0;
exports.browser[139] = parser;
parser = Object.create(null);
parser[0] = new RegExp("(OLPC)/Update()\\.(\\d+)");
parser[1] = 0;
parser[2] = "0";
parser[3] = 0;
parser[4] = 0;
exports.browser[140] = parser;
parser = Object.create(null);
parser[0] = new RegExp("(SEMC\\-Browser)/(\\d+)\\.(\\d+)");
parser[1] = 0;
parser[2] = 0;
parser[3] = 0;
parser[4] = 0;
exports.browser[141] = parser;
parser = Object.create(null);
parser[0] = new RegExp("(Teleca)");
parser[1] = "Teleca Browser";
parser[2] = 0;
parser[3] = 0;
parser[4] = 0;
exports.browser[142] = parser;
parser = Object.create(null);
parser[0] = new RegExp("(Phantom)/V(\\d+)\\.(\\d+)");
parser[1] = "Phantom Browser";
parser[2] = 0;
parser[3] = 0;
parser[4] = 0;
exports.browser[143] = parser;
parser = Object.create(null);
parser[0] = new RegExp("Trident(.*)rv.(\\d+)\\.(\\d+)");
parser[1] = "IE";
parser[2] = 0;
parser[3] = 0;
parser[4] = 0;
exports.browser[144] = parser;
parser = Object.create(null);
parser[0] = new RegExp("(AppleWebKit)/(\\d+)\\.(\\d+)\\.(\\d+)");
parser[1] = "AppleMail";
parser[2] = 0;
parser[3] = 0;
parser[4] = 0;
exports.browser[145] = parser;
parser = Object.create(null);
parser[0] = new RegExp("(Firefox)/(\\d+)\\.(\\d+)\\.(\\d+)");
parser[1] = 0;
parser[2] = 0;
parser[3] = 0;
parser[4] = 0;
exports.browser[146] = parser;
parser = Object.create(null);
parser[0] = new RegExp("(Firefox)/(\\d+)\\.(\\d+)(pre|[ab]\\d+[a-z]*)?");
parser[1] = 0;
parser[2] = 0;
parser[3] = 0;
parser[4] = 0;
exports.browser[147] = parser;
parser = Object.create(null);
parser[0] = new RegExp("([MS]?IE) (\\d+)\\.(\\d+)");
parser[1] = "IE";
parser[2] = 0;
parser[3] = 0;
parser[4] = 0;
exports.browser[148] = parser;
parser = Object.create(null);
parser[0] = new RegExp("(python-requests)/(\\d+)\\.(\\d+)");
parser[1] = "Python Requests";
parser[2] = 0;
parser[3] = 0;
parser[4] = 0;
exports.browser[149] = parser;
parser = Object.create(null);
parser[0] = new RegExp("(Thunderbird)/(\\d+)\\.(\\d+)\\.?(\\d+)?");
parser[1] = 0;
parser[2] = 0;
parser[3] = 0;
parser[4] = 0;
exports.browser[150] = parser;
parser = Object.create(null);
parser[0] = new RegExp("(Wget)/(\\d+)\\.(\\d+)\\.?([ab]?\\d+[a-z]*)");
parser[1] = 0;
parser[2] = 0;
parser[3] = 0;
parser[4] = 0;
exports.browser[151] = parser;
parser = Object.create(null);
parser[0] = new RegExp("(curl)/(\\d+)\\.(\\d+)\\.(\\d+)");
parser[1] = "cURL";
parser[2] = 0;
parser[3] = 0;
parser[4] = 0;
exports.browser[152] = parser;

exports.browser.length = 153;

exports.device = Object.create(null);

parser = Object.create(null);
parser[0] = new RegExp("HTC ([A-Z][a-z0-9]+) Build");
parser[1] = "HTC $1";
parser[2] = 0;
parser[3] = 0;
parser[4] = 0;
exports.device[0] = parser;
parser = Object.create(null);
parser[0] = new RegExp("HTC ([A-Z][a-z0-9 ]+) \\d+\\.\\d+\\.\\d+\\.\\d+");
parser[1] = "HTC $1";
parser[2] = 0;
parser[3] = 0;
parser[4] = 0;
exports.device[1] = parser;
parser = Object.create(null);
parser[0] = new RegExp("HTC_Touch_([A-Za-z0-9]+)");
parser[1] = "HTC Touch ($1)";
parser[2] = 0;
parser[3] = 0;
parser[4] = 0;
exports.device[2] = parser;
parser = Object.create(null);
parser[0] = new RegExp("USCCHTC(\\d+)");
parser[1] = "HTC $1 (US Cellular)";
parser[2] = 0;
parser[3] = 0;
parser[4] = 0;
exports.device[3] = parser;
parser = Object.create(null);
parser[0] = new RegExp("Sprint APA(9292)");
parser[1] = "HTC $1 (Sprint)";
parser[2] = 0;
parser[3] = 0;
parser[4] = 0;
exports.device[4] = parser;
parser = Object.create(null);
parser[0] = new RegExp("HTC ([A-Za-z0-9]+ [A-Z])");
parser[1] = "HTC $1";
parser[2] = 0;
parser[3] = 0;
parser[4] = 0;
exports.device[5] = parser;
parser = Object.create(null);
parser[0] = new RegExp("HTC[-_/\\s]([A-Za-z0-9]+)");
parser[1] = "HTC $1";
parser[2] = 0;
parser[3] = 0;
parser[4] = 0;
exports.device[6] = parser;
parser = Object.create(null);
parser[0] = new RegExp("(ADR[A-Za-z0-9]+)");
parser[1] = "HTC $1";
parser[2] = 0;
parser[3] = 0;
parser[4] = 0;
exports.device[7] = parser;
parser = Object.create(null);
parser[0] = new RegExp("(HTC)");
parser[1] = 0;
parser[2] = 0;
parser[3] = 0;
parser[4] = 0;
exports.device[8] = parser;
parser = Object.create(null);
parser[0] = new RegExp("(QtCarBrowser)");
parser[1] = "Tesla Model S";
parser[2] = 0;
parser[3] = 0;
parser[4] = 0;
exports.device[9] = parser;
parser = Object.create(null);
parser[0] = new RegExp("(SamsungSGHi560)");
parser[1] = "Samsung SGHi560";
parser[2] = 0;
parser[3] = 0;
parser[4] = 0;
exports.device[10] = parser;
parser = Object.create(null);
parser[0] = new RegExp("SonyEricsson([A-Za-z0-9]+)/");
parser[1] = "Ericsson $1";
parser[2] = 0;
parser[3] = 0;
parser[4] = 0;
exports.device[11] = parser;
parser = Object.create(null);
parser[0] = new RegExp("PLAYSTATION 3");
parser[1] = "PlayStation 3";
parser[2] = 0;
parser[3] = 0;
parser[4] = 0;
exports.device[12] = parser;
parser = Object.create(null);
parser[0] = new RegExp("(PlayStation Portable)");
parser[1] = 0;
parser[2] = 0;
parser[3] = 0;
parser[4] = 0;
exports.device[13] = parser;
parser = Object.create(null);
parser[0] = new RegExp("(PlayStation Vita)");
parser[1] = 0;
parser[2] = 0;
parser[3] = 0;
parser[4] = 0;
exports.device[14] = parser;
parser = Object.create(null);
parser[0] = new RegExp("(KFOT Build)");
parser[1] = "Kindle Fire";
parser[2] = 0;
parser[3] = 0;
parser[4] = 0;
exports.device[15] = parser;
parser = Object.create(null);
parser[0] = new RegExp("(KFTT Build)");
parser[1] = "Kindle Fire HD";
parser[2] = 0;
parser[3] = 0;
parser[4] = 0;
exports.device[16] = parser;
parser = Object.create(null);
parser[0] = new RegExp("(KFJWI Build)");
parser[1] = "Kindle Fire HD 8.9\" WiFi";
parser[2] = 0;
parser[3] = 0;
parser[4] = 0;
exports.device[17] = parser;
parser = Object.create(null);
parser[0] = new RegExp("(KFJWA Build)");
parser[1] = "Kindle Fire HD 8.9\" 4G";
parser[2] = 0;
parser[3] = 0;
parser[4] = 0;
exports.device[18] = parser;
parser = Object.create(null);
parser[0] = new RegExp("(KFSOWI Build)");
parser[1] = "Kindle Fire HD 7\" WiFi";
parser[2] = 0;
parser[3] = 0;
parser[4] = 0;
exports.device[19] = parser;
parser = Object.create(null);
parser[0] = new RegExp("(KFTHWI Build)");
parser[1] = "Kindle Fire HDX 7\" WiFi";
parser[2] = 0;
parser[3] = 0;
parser[4] = 0;
exports.device[20] = parser;
parser = Object.create(null);
parser[0] = new RegExp("(KFTHWA Build)");
parser[1] = "Kindle Fire HDX 7\" 4G";
parser[2] = 0;
parser[3] = 0;
parser[4] = 0;
exports.device[21] = parser;
parser = Object.create(null);
parser[0] = new RegExp("(KFAPWI Build)");
parser[1] = "Kindle Fire HDX 8.9\" WiFi";
parser[2] = 0;
parser[3] = 0;
parser[4] = 0;
exports.device[22] = parser;
parser = Object.create(null);
parser[0] = new RegExp("(KFAPWA Build)");
parser[1] = "Kindle Fire HDX 8.9\" 4G";
parser[2] = 0;
parser[3] = 0;
parser[4] = 0;
exports.device[23] = parser;
parser = Object.create(null);
parser[0] = new RegExp("(Kindle Fire)");
parser[1] = 0;
parser[2] = 0;
parser[3] = 0;
parser[4] = 0;
exports.device[24] = parser;
parser = Object.create(null);
parser[0] = new RegExp("(Kindle)");
parser[1] = 0;
parser[2] = 0;
parser[3] = 0;
parser[4] = 0;
exports.device[25] = parser;
parser = Object.create(null);
parser[0] = new RegExp("(Silk)/(\\d+)\\.(\\d+)(?:\\.([0-9\\-]+))?");
parser[1] = "Kindle Fire";
parser[2] = 0;
parser[3] = 0;
parser[4] = 0;
exports.device[26] = parser;
parser = Object.create(null);
parser[0] = new RegExp("Android[\\- ][\\d]+\\.[\\d]+; [A-Za-z]{2}\\-[A-Za-z]{0,2}; WOWMobile (.+) Build");
parser[1] = 0;
parser[2] = 0;
parser[3] = 0;
parser[4] = 0;
exports.device[27] = parser;
parser = Object.create(null);
parser[0] = new RegExp("Android[\\- ][\\d]+\\.[\\d]+\\-update1; [A-Za-z]{2}\\-[A-Za-z]{0,2}; (.+) Build");
parser[1] = 0;
parser[2] = 0;
parser[3] = 0;
parser[4] = 0;
exports.device[28] = parser;
parser = Object.create(null);
parser[0] = new RegExp("Android[\\- ][\\d]+\\.[\\d]+\\.[\\d]+; [A-Za-z]{2}\\-[A-Za-z]{0,2}; (.+) Build");
parser[1] = 0;
parser[2] = 0;
parser[3] = 0;
parser[4] = 0;
exports.device[29] = parser;
parser = Object.create(null);
parser[0] = new RegExp("Android[\\- ][\\d]+\\.[\\d]+\\.[\\d]+;[A-Za-z]{2}\\-[A-Za-z]{0,2};(.+) Build");
parser[1] = 0;
parser[2] = 0;
parser[3] = 0;
parser[4] = 0;
exports.device[30] = parser;
parser = Object.create(null);
parser[0] = new RegExp("Android[\\- ][\\d]+\\.[\\d]+; [A-Za-z]{2}\\-[A-Za-z]{0,2}; (.+) Build");
parser[1] = 0;
parser[2] = 0;
parser[3] = 0;
parser[4] = 0;
exports.device[31] = parser;
parser = Object.create(null);
parser[0] = new RegExp("Android[\\- ][\\d]+\\.[\\d]+\\.[\\d]+; (.+) Build");
parser[1] = 0;
parser[2] = 0;
parser[3] = 0;
parser[4] = 0;
exports.device[32] = parser;
parser = Object.create(null);
parser[0] = new RegExp("Android[\\- ][\\d]+\\.[\\d]+; (.+) Build");
parser[1] = 0;
parser[2] = 0;
parser[3] = 0;
parser[4] = 0;
exports.device[33] = parser;
parser = Object.create(null);
parser[0] = new RegExp("NokiaN([0-9]+)");
parser[1] = "Nokia N$1";
parser[2] = 0;
parser[3] = 0;
parser[4] = 0;
exports.device[34] = parser;
parser = Object.create(null);
parser[0] = new RegExp("NOKIA([A-Za-z0-9\\v-]+)");
parser[1] = "Nokia $1";
parser[2] = 0;
parser[3] = 0;
parser[4] = 0;
exports.device[35] = parser;
parser = Object.create(null);
parser[0] = new RegExp("Nokia([A-Za-z0-9\\v-]+)");
parser[1] = "Nokia $1";
parser[2] = 0;
parser[3] = 0;
parser[4] = 0;
exports.device[36] = parser;
parser = Object.create(null);
parser[0] = new RegExp("NOKIA ([A-Za-z0-9\\-]+)");
parser[1] = "Nokia $1";
parser[2] = 0;
parser[3] = 0;
parser[4] = 0;
exports.device[37] = parser;
parser = Object.create(null);
parser[0] = new RegExp("Nokia ([A-Za-z0-9\\-]+)");
parser[1] = "Nokia $1";
parser[2] = 0;
parser[3] = 0;
parser[4] = 0;
exports.device[38] = parser;
parser = Object.create(null);
parser[0] = new RegExp("Lumia ([A-Za-z0-9\\-]+)");
parser[1] = "Lumia $1";
parser[2] = 0;
parser[3] = 0;
parser[4] = 0;
exports.device[39] = parser;
parser = Object.create(null);
parser[0] = new RegExp("Symbian");
parser[1] = "Nokia";
parser[2] = 0;
parser[3] = 0;
parser[4] = 0;
exports.device[40] = parser;
parser = Object.create(null);
parser[0] = new RegExp("BB10; ([A-Za-z0-9\\- ]+)\\)");
parser[1] = "BlackBerry $1";
parser[2] = 0;
parser[3] = 0;
parser[4] = 0;
exports.device[41] = parser;
parser = Object.create(null);
parser[0] = new RegExp("(PlayBook).+RIM Tablet OS");
parser[1] = "BlackBerry Playbook";
parser[2] = 0;
parser[3] = 0;
parser[4] = 0;
exports.device[42] = parser;
parser = Object.create(null);
parser[0] = new RegExp("Black[Bb]erry ([0-9]+);");
parser[1] = "BlackBerry $1";
parser[2] = 0;
parser[3] = 0;
parser[4] = 0;
exports.device[43] = parser;
parser = Object.create(null);
parser[0] = new RegExp("Black[Bb]erry([0-9]+)");
parser[1] = "BlackBerry $1";
parser[2] = 0;
parser[3] = 0;
parser[4] = 0;
exports.device[44] = parser;
parser = Object.create(null);
parser[0] = new RegExp("Black[Bb]erry;");
parser[1] = "BlackBerry";
parser[2] = 0;
parser[3] = 0;
parser[4] = 0;
exports.device[45] = parser;
parser = Object.create(null);
parser[0] = new RegExp("(Pre)/(\\d+)\\.(\\d+)");
parser[1] = "Palm Pre";
parser[2] = 0;
parser[3] = 0;
parser[4] = 0;
exports.device[46] = parser;
parser = Object.create(null);
parser[0] = new RegExp("(Pixi)/(\\d+)\\.(\\d+)");
parser[1] = "Palm Pixi";
parser[2] = 0;
parser[3] = 0;
parser[4] = 0;
exports.device[47] = parser;
parser = Object.create(null);
parser[0] = new RegExp("(Touch[Pp]ad)/(\\d+)\\.(\\d+)");
parser[1] = "HP TouchPad";
parser[2] = 0;
parser[3] = 0;
parser[4] = 0;
exports.device[48] = parser;
parser = Object.create(null);
parser[0] = new RegExp("HPiPAQ([A-Za-z0-9]+)/(\\d+).(\\d+)");
parser[1] = "HP iPAQ $1";
parser[2] = 0;
parser[3] = 0;
parser[4] = 0;
exports.device[49] = parser;
parser = Object.create(null);
parser[0] = new RegExp("Palm([A-Za-z0-9]+)");
parser[1] = "Palm $1";
parser[2] = 0;
parser[3] = 0;
parser[4] = 0;
exports.device[50] = parser;
parser = Object.create(null);
parser[0] = new RegExp("Treo([A-Za-z0-9]+)");
parser[1] = "Palm Treo $1";
parser[2] = 0;
parser[3] = 0;
parser[4] = 0;
exports.device[51] = parser;
parser = Object.create(null);
parser[0] = new RegExp("webOS.*(P160UNA)/(\\d+).(\\d+)");
parser[1] = "HP Veer";
parser[2] = 0;
parser[3] = 0;
parser[4] = 0;
exports.device[52] = parser;
parser = Object.create(null);
parser[0] = new RegExp("(AppleTV)");
parser[1] = "AppleTV";
parser[2] = 0;
parser[3] = 0;
parser[4] = 0;
exports.device[53] = parser;
parser = Object.create(null);
parser[0] = new RegExp("AdsBot-Google-Mobile");
parser[1] = "Spider";
parser[2] = 0;
parser[3] = 0;
parser[4] = 0;
exports.device[54] = parser;
parser = Object.create(null);
parser[0] = new RegExp("Googlebot-Mobile/(\\d+).(\\d+)");
parser[1] = "Spider";
parser[2] = 0;
parser[3] = 0;
parser[4] = 0;
exports.device[55] = parser;
parser = Object.create(null);
parser[0] = new RegExp("(iPad) Simulator;");
parser[1] = 0;
parser[2] = 0;
parser[3] = 0;
parser[4] = 0;
exports.device[56] = parser;
parser = Object.create(null);
parser[0] = new RegExp("(iPad);");
parser[1] = 0;
parser[2] = 0;
parser[3] = 0;
parser[4] = 0;
exports.device[57] = parser;
parser = Object.create(null);
parser[0] = new RegExp("(iPod) touch;");
parser[1] = 0;
parser[2] = 0;
parser[3] = 0;
parser[4] = 0;
exports.device[58] = parser;
parser = Object.create(null);
parser[0] = new RegExp("(iPod);");
parser[1] = 0;
parser[2] = 0;
parser[3] = 0;
parser[4] = 0;
exports.device[59] = parser;
parser = Object.create(null);
parser[0] = new RegExp("(iPhone) Simulator;");
parser[1] = 0;
parser[2] = 0;
parser[3] = 0;
parser[4] = 0;
exports.device[60] = parser;
parser = Object.create(null);
parser[0] = new RegExp("(iPhone);");
parser[1] = 0;
parser[2] = 0;
parser[3] = 0;
parser[4] = 0;
exports.device[61] = parser;
parser = Object.create(null);
parser[0] = new RegExp("acer_([A-Za-z0-9]+)_");
parser[1] = "Acer $1";
parser[2] = 0;
parser[3] = 0;
parser[4] = 0;
exports.device[62] = parser;
parser = Object.create(null);
parser[0] = new RegExp("acer_([A-Za-z0-9]+)_");
parser[1] = "Acer $1";
parser[2] = 0;
parser[3] = 0;
parser[4] = 0;
exports.device[63] = parser;
parser = Object.create(null);
parser[0] = new RegExp("ALCATEL-([A-Za-z0-9]+)");
parser[1] = "Alcatel $1";
parser[2] = 0;
parser[3] = 0;
parser[4] = 0;
exports.device[64] = parser;
parser = Object.create(null);
parser[0] = new RegExp("Alcatel-([A-Za-z0-9]+)");
parser[1] = "Alcatel $1";
parser[2] = 0;
parser[3] = 0;
parser[4] = 0;
exports.device[65] = parser;
parser = Object.create(null);
parser[0] = new RegExp("Amoi\\-([A-Za-z0-9]+)");
parser[1] = "Amoi $1";
parser[2] = 0;
parser[3] = 0;
parser[4] = 0;
exports.device[66] = parser;
parser = Object.create(null);
parser[0] = new RegExp("AMOI\\-([A-Za-z0-9]+)");
parser[1] = "Amoi $1";
parser[2] = 0;
parser[3] = 0;
parser[4] = 0;
exports.device[67] = parser;
parser = Object.create(null);
parser[0] = new RegExp("Asus\\-([A-Za-z0-9]+)");
parser[1] = "Asus $1";
parser[2] = 0;
parser[3] = 0;
parser[4] = 0;
exports.device[68] = parser;
parser = Object.create(null);
parser[0] = new RegExp("ASUS\\-([A-Za-z0-9]+)");
parser[1] = "Asus $1";
parser[2] = 0;
parser[3] = 0;
parser[4] = 0;
exports.device[69] = parser;
parser = Object.create(null);
parser[0] = new RegExp("BIRD\\-([A-Za-z0-9]+)");
parser[1] = "Bird $1";
parser[2] = 0;
parser[3] = 0;
parser[4] = 0;
exports.device[70] = parser;
parser = Object.create(null);
parser[0] = new RegExp("BIRD\\.([A-Za-z0-9]+)");
parser[1] = "Bird $1";
parser[2] = 0;
parser[3] = 0;
parser[4] = 0;
exports.device[71] = parser;
parser = Object.create(null);
parser[0] = new RegExp("BIRD ([A-Za-z0-9]+)");
parser[1] = "Bird $1";
parser[2] = 0;
parser[3] = 0;
parser[4] = 0;
exports.device[72] = parser;
parser = Object.create(null);
parser[0] = new RegExp("Dell ([A-Za-z0-9]+)");
parser[1] = "Dell $1";
parser[2] = 0;
parser[3] = 0;
parser[4] = 0;
exports.device[73] = parser;
parser = Object.create(null);
parser[0] = new RegExp("DoCoMo/2\\.0 ([A-Za-z0-9]+)");
parser[1] = "DoCoMo $1";
parser[2] = 0;
parser[3] = 0;
parser[4] = 0;
exports.device[74] = parser;
parser = Object.create(null);
parser[0] = new RegExp("([A-Za-z0-9]+)_W\\;FOMA");
parser[1] = "DoCoMo $1";
parser[2] = 0;
parser[3] = 0;
parser[4] = 0;
exports.device[75] = parser;
parser = Object.create(null);
parser[0] = new RegExp("([A-Za-z0-9]+)\\;FOMA");
parser[1] = "DoCoMo $1";
parser[2] = 0;
parser[3] = 0;
parser[4] = 0;
exports.device[76] = parser;
parser = Object.create(null);
parser[0] = new RegExp("Huawei([A-Za-z0-9]+)");
parser[1] = "Huawei $1";
parser[2] = 0;
parser[3] = 0;
parser[4] = 0;
exports.device[77] = parser;
parser = Object.create(null);
parser[0] = new RegExp("HUAWEI-([A-Za-z0-9]+)");
parser[1] = "Huawei $1";
parser[2] = 0;
parser[3] = 0;
parser[4] = 0;
exports.device[78] = parser;
parser = Object.create(null);
parser[0] = new RegExp("vodafone([A-Za-z0-9]+)");
parser[1] = "Huawei Vodafone $1";
parser[2] = 0;
parser[3] = 0;
parser[4] = 0;
exports.device[79] = parser;
parser = Object.create(null);
parser[0] = new RegExp("i\\-mate ([A-Za-z0-9]+)");
parser[1] = "i-mate $1";
parser[2] = 0;
parser[3] = 0;
parser[4] = 0;
exports.device[80] = parser;
parser = Object.create(null);
parser[0] = new RegExp("Kyocera\\-([A-Za-z0-9]+)");
parser[1] = "Kyocera $1";
parser[2] = 0;
parser[3] = 0;
parser[4] = 0;
exports.device[81] = parser;
parser = Object.create(null);
parser[0] = new RegExp("KWC\\-([A-Za-z0-9]+)");
parser[1] = "Kyocera $1";
parser[2] = 0;
parser[3] = 0;
parser[4] = 0;
exports.device[82] = parser;
parser = Object.create(null);
parser[0] = new RegExp("Lenovo\\-([A-Za-z0-9]+)");
parser[1] = "Lenovo $1";
parser[2] = 0;
parser[3] = 0;
parser[4] = 0;
exports.device[83] = parser;
parser = Object.create(null);
parser[0] = new RegExp("Lenovo_([A-Za-z0-9]+)");
parser[1] = "Lenovo $1";
parser[2] = 0;
parser[3] = 0;
parser[4] = 0;
exports.device[84] = parser;
parser = Object.create(null);
parser[0] = new RegExp("(HbbTV)/[0-9]+\\.[0-9]+\\.[0-9]+");
parser[1] = 0;
parser[2] = 0;
parser[3] = 0;
parser[4] = 0;
exports.device[85] = parser;
parser = Object.create(null);
parser[0] = new RegExp("LG/([A-Za-z0-9]+)");
parser[1] = "LG $1";
parser[2] = 0;
parser[3] = 0;
parser[4] = 0;
exports.device[86] = parser;
parser = Object.create(null);
parser[0] = new RegExp("LG-LG([A-Za-z0-9]+)");
parser[1] = "LG $1";
parser[2] = 0;
parser[3] = 0;
parser[4] = 0;
exports.device[87] = parser;
parser = Object.create(null);
parser[0] = new RegExp("LGE-LG([A-Za-z0-9]+)");
parser[1] = "LG $1";
parser[2] = 0;
parser[3] = 0;
parser[4] = 0;
exports.device[88] = parser;
parser = Object.create(null);
parser[0] = new RegExp("LGE VX([A-Za-z0-9]+)");
parser[1] = "LG $1";
parser[2] = 0;
parser[3] = 0;
parser[4] = 0;
exports.device[89] = parser;
parser = Object.create(null);
parser[0] = new RegExp("LG ([A-Za-z0-9]+)");
parser[1] = "LG $1";
parser[2] = 0;
parser[3] = 0;
parser[4] = 0;
exports.device[90] = parser;
parser = Object.create(null);
parser[0] = new RegExp("LGE LG\\-AX([A-Za-z0-9]+)");
parser[1] = "LG $1";
parser[2] = 0;
parser[3] = 0;
parser[4] = 0;
exports.device[91] = parser;
parser = Object.create(null);
parser[0] = new RegExp("LG\\-([A-Za-z0-9]+)");
parser[1] = "LG $1";
parser[2] = 0;
parser[3] = 0;
parser[4] = 0;
exports.device[92] = parser;
parser = Object.create(null);
parser[0] = new RegExp("LGE\\-([A-Za-z0-9]+)");
parser[1] = "LG $1";
parser[2] = 0;
parser[3] = 0;
parser[4] = 0;
exports.device[93] = parser;
parser = Object.create(null);
parser[0] = new RegExp("LG([A-Za-z0-9]+)");
parser[1] = "LG $1";
parser[2] = 0;
parser[3] = 0;
parser[4] = 0;
exports.device[94] = parser;
parser = Object.create(null);
parser[0] = new RegExp("(KIN)\\.One (\\d+)\\.(\\d+)");
parser[1] = "Microsoft $1";
parser[2] = 0;
parser[3] = 0;
parser[4] = 0;
exports.device[95] = parser;
parser = Object.create(null);
parser[0] = new RegExp("(KIN)\\.Two (\\d+)\\.(\\d+)");
parser[1] = "Microsoft $1";
parser[2] = 0;
parser[3] = 0;
parser[4] = 0;
exports.device[96] = parser;
parser = Object.create(null);
parser[0] = new RegExp("(Motorola)\\-([A-Za-z0-9]+)");
parser[1] = 0;
parser[2] = 0;
parser[3] = 0;
parser[4] = 0;
exports.device[97] = parser;
parser = Object.create(null);
parser[0] = new RegExp("MOTO\\-([A-Za-z0-9]+)");
parser[1] = "Motorola $1";
parser[2] = 0;
parser[3] = 0;
parser[4] = 0;
exports.device[98] = parser;
parser = Object.create(null);
parser[0] = new RegExp("MOT\\-([A-Za-z0-9]+)");
parser[1] = "Motorola $1";
parser[2] = 0;
parser[3] = 0;
parser[4] = 0;
exports.device[99] = parser;
parser = Object.create(null);
parser[0] = new RegExp("(Nintendo WiiU)");
parser[1] = "Nintendo Wii U";
parser[2] = 0;
parser[3] = 0;
parser[4] = 0;
exports.device[100] = parser;
parser = Object.create(null);
parser[0] = new RegExp("Nintendo (DS|3DS|DSi|Wii);");
parser[1] = "Nintendo $1";
parser[2] = 0;
parser[3] = 0;
parser[4] = 0;
exports.device[101] = parser;
parser = Object.create(null);
parser[0] = new RegExp("Pantech([A-Za-z0-9]+)");
parser[1] = "Pantech $1";
parser[2] = 0;
parser[3] = 0;
parser[4] = 0;
exports.device[102] = parser;
parser = Object.create(null);
parser[0] = new RegExp("Philips([A-Za-z0-9]+)");
parser[1] = "Philips $1";
parser[2] = 0;
parser[3] = 0;
parser[4] = 0;
exports.device[103] = parser;
parser = Object.create(null);
parser[0] = new RegExp("Philips ([A-Za-z0-9]+)");
parser[1] = "Philips $1";
parser[2] = 0;
parser[3] = 0;
parser[4] = 0;
exports.device[104] = parser;
parser = Object.create(null);
parser[0] = new RegExp("SAMSUNG-([A-Za-z0-9\\-]+)");
parser[1] = "Samsung $1";
parser[2] = 0;
parser[3] = 0;
parser[4] = 0;
exports.device[105] = parser;
parser = Object.create(null);
parser[0] = new RegExp("SAMSUNG\\; ([A-Za-z0-9\\-]+)");
parser[1] = "Samsung $1";
parser[2] = 0;
parser[3] = 0;
parser[4] = 0;
exports.device[106] = parser;
parser = Object.create(null);
parser[0] = new RegExp("Dreamcast");
parser[1] = "Sega Dreamcast";
parser[2] = 0;
parser[3] = 0;
parser[4] = 0;
exports.device[107] = parser;
parser = Object.create(null);
parser[0] = new RegExp("Softbank/1\\.0/([A-Za-z0-9]+)");
parser[1] = "Softbank $1";
parser[2] = 0;
parser[3] = 0;
parser[4] = 0;
exports.device[108] = parser;
parser = Object.create(null);
parser[0] = new RegExp("Softbank/2\\.0/([A-Za-z0-9]+)");
parser[1] = "Softbank $1";
parser[2] = 0;
parser[3] = 0;
parser[4] = 0;
exports.device[109] = parser;
parser = Object.create(null);
parser[0] = new RegExp("(WebTV)/(\\d+).(\\d+)");
parser[1] = 0;
parser[2] = 0;
parser[3] = 0;
parser[4] = 0;
exports.device[110] = parser;
parser = Object.create(null);
parser[0] = new RegExp("(hiptop|avantgo|plucker|xiino|blazer|elaine|up.browser|up.link|mmp|smartphone|midp|wap|vodafone|o2|pocket|mobile|pda)");
parser[1] = "Generic Smartphone";
parser[2] = 0;
parser[3] = 0;
parser[4] = 0;
exports.device[111] = parser;
parser = Object.create(null);
parser[0] = new RegExp("^(1207|3gso|4thp|501i|502i|503i|504i|505i|506i|6310|6590|770s|802s|a wa|acer|acs\\-|airn|alav|asus|attw|au\\-m|aur |aus |abac|acoo|aiko|alco|alca|amoi|anex|anny|anyw|aptu|arch|argo|bell|bird|bw\\-n|bw\\-u|beck|benq|bilb|blac|c55/|cdm\\-|chtm|capi|comp|cond|craw|dall|dbte|dc\\-s|dica|ds\\-d|ds12|dait|devi|dmob|doco|dopo|el49|erk0|esl8|ez40|ez60|ez70|ezos|ezze|elai|emul|eric|ezwa|fake|fly\\-|fly_|g\\-mo|g1 u|g560|gf\\-5|grun|gene|go.w|good|grad|hcit|hd\\-m|hd\\-p|hd\\-t|hei\\-|hp i|hpip|hs\\-c|htc |htc\\-|htca|htcg)");
parser[1] = "Generic Feature Phone";
parser[2] = 0;
parser[3] = 0;
parser[4] = 0;
exports.device[112] = parser;
parser = Object.create(null);
parser[0] = new RegExp("^(htcp|htcs|htct|htc_|haie|hita|huaw|hutc|i\\-20|i\\-go|i\\-ma|i230|iac|iac\\-|iac/|ig01|im1k|inno|iris|jata|java|kddi|kgt|kgt/|kpt |kwc\\-|klon|lexi|lg g|lg\\-a|lg\\-b|lg\\-c|lg\\-d|lg\\-f|lg\\-g|lg\\-k|lg\\-l|lg\\-m|lg\\-o|lg\\-p|lg\\-s|lg\\-t|lg\\-u|lg\\-w|lg/k|lg/l|lg/u|lg50|lg54|lge\\-|lge/|lynx|leno|m1\\-w|m3ga|m50/|maui|mc01|mc21|mcca|medi|meri|mio8|mioa|mo01|mo02|mode|modo|mot |mot\\-|mt50|mtp1|mtv |mate|maxo|merc|mits|mobi|motv|mozz|n100|n101|n102|n202|n203|n300|n302|n500|n502|n505|n700|n701|n710|nec\\-|nem\\-|newg|neon)");
parser[1] = "Generic Feature Phone";
parser[2] = 0;
parser[3] = 0;
parser[4] = 0;
exports.device[113] = parser;
parser = Object.create(null);
parser[0] = new RegExp("^(netf|noki|nzph|o2 x|o2\\-x|opwv|owg1|opti|oran|ot\\-s|p800|pand|pg\\-1|pg\\-2|pg\\-3|pg\\-6|pg\\-8|pg\\-c|pg13|phil|pn\\-2|pt\\-g|palm|pana|pire|pock|pose|psio|qa\\-a|qc\\-2|qc\\-3|qc\\-5|qc\\-7|qc07|qc12|qc21|qc32|qc60|qci\\-|qwap|qtek|r380|r600|raks|rim9|rove|s55/|sage|sams|sc01|sch\\-|scp\\-|sdk/|se47|sec\\-|sec0|sec1|semc|sgh\\-|shar|sie\\-|sk\\-0|sl45|slid|smb3|smt5|sp01|sph\\-|spv |spv\\-|sy01|samm|sany|sava|scoo|send|siem|smar|smit|soft|sony|t\\-mo|t218|t250|t600|t610|t618|tcl\\-|tdg\\-|telm|tim\\-|ts70|tsm\\-|tsm3|tsm5|tx\\-9|tagt)");
parser[1] = "Generic Feature Phone";
parser[2] = 0;
parser[3] = 0;
parser[4] = 0;
exports.device[114] = parser;
parser = Object.create(null);
parser[0] = new RegExp("^(talk|teli|topl|tosh|up.b|upg1|utst|v400|v750|veri|vk\\-v|vk40|vk50|vk52|vk53|vm40|vx98|virg|vite|voda|vulc|w3c |w3c\\-|wapj|wapp|wapu|wapm|wig |wapi|wapr|wapv|wapy|wapa|waps|wapt|winc|winw|wonu|x700|xda2|xdag|yas\\-|your|zte\\-|zeto|aste|audi|avan|blaz|brew|brvw|bumb|ccwa|cell|cldc|cmd\\-|dang|eml2|fetc|hipt|http|ibro|idea|ikom|ipaq|jbro|jemu|jigs|keji|kyoc|kyok|libw|m\\-cr|midp|mmef|moto|mwbp|mywa|newt|nok6|o2im|pant|pdxg|play|pluc|port|prox|rozo|sama|seri|smal|symb|treo|upsi|vx52|vx53|vx60|vx61|vx70|vx80|vx81|vx83|vx85|wap\\-|webc|whit|wmlb|xda\\-|xda_)");
parser[1] = "Generic Feature Phone";
parser[2] = 0;
parser[3] = 0;
parser[4] = 0;
exports.device[115] = parser;
parser = Object.create(null);
parser[0] = new RegExp("(bingbot|bot|borg|google(^tv)|yahoo|slurp|msnbot|msrbot|openbot|archiver|netresearch|lycos|scooter|altavista|teoma|gigabot|baiduspider|blitzbot|oegp|charlotte|furlbot|http%20client|polybot|htdig|ichiro|mogimogi|larbin|pompos|scrubby|searchsight|seekbot|semanticdiscovery|silk|snappy|speedy|spider|voila|vortex|voyager|zao|zeal|fast\\-webcrawler|converacrawler|dataparksearch|findlinks|crawler)");
parser[1] = "Spider";
parser[2] = 0;
parser[3] = 0;
parser[4] = 0;
exports.device[116] = parser;

exports.device.length = 117;

exports.os = Object.create(null);

parser = Object.create(null);
parser[0] = new RegExp("HbbTV/\\d+\\.\\d+\\.\\d+ \\( ;(LG)E ;NetCast 4.0");
parser[1] = 0;
parser[2] = "2013";
parser[3] = 0;
parser[4] = 0;
exports.os[0] = parser;
parser = Object.create(null);
parser[0] = new RegExp("HbbTV/\\d+\\.\\d+\\.\\d+ \\( ;(LG)E ;NetCast 3.0");
parser[1] = 0;
parser[2] = "2012";
parser[3] = 0;
parser[4] = 0;
exports.os[1] = parser;
parser = Object.create(null);
parser[0] = new RegExp("HbbTV/1.1.1 \\(;;;;;\\) Maple_2011");
parser[1] = "Samsung";
parser[2] = "2011";
parser[3] = 0;
parser[4] = 0;
exports.os[2] = parser;
parser = Object.create(null);
parser[0] = new RegExp("HbbTV/\\d+\\.\\d+\\.\\d+ \\(;(Samsung);SmartTV([0-9]{4});.*FXPDEUC");
parser[1] = 0;
parser[2] = 0;
parser[3] = "UE40F7000";
parser[4] = 0;
exports.os[3] = parser;
parser = Object.create(null);
parser[0] = new RegExp("HbbTV/\\d+\\.\\d+\\.\\d+ \\(;(Samsung);SmartTV([0-9]{4});.*MST12DEUC");
parser[1] = 0;
parser[2] = 0;
parser[3] = "UE32F4500";
parser[4] = 0;
exports.os[4] = parser;
parser = Object.create(null);
parser[0] = new RegExp("HbbTV/1.1.1 \\(; (Philips);.*NETTV/4");
parser[1] = 0;
parser[2] = "2013";
parser[3] = 0;
parser[4] = 0;
exports.os[5] = parser;
parser = Object.create(null);
parser[0] = new RegExp("HbbTV/1.1.1 \\(; (Philips);.*NETTV/3");
parser[1] = 0;
parser[2] = "2012";
parser[3] = 0;
parser[4] = 0;
exports.os[6] = parser;
parser = Object.create(null);
parser[0] = new RegExp("HbbTV/1.1.1 \\(; (Philips);.*NETTV/2");
parser[1] = 0;
parser[2] = "2011";
parser[3] = 0;
parser[4] = 0;
exports.os[7] = parser;
parser = Object.create(null);
parser[0] = new RegExp("HbbTV/\\d+\\.\\d+\\.\\d+.*(firetv)-firefox-plugin (\\d+).(\\d+).(\\d+)");
parser[1] = "FireHbbTV";
parser[2] = 0;
parser[3] = 0;
parser[4] = 0;
exports.os[8] = parser;
parser = Object.create(null);
parser[0] = new RegExp("HbbTV/\\d+\\.\\d+\\.\\d+ \\(.*; ?([a-zA-Z]+) ?;.*(201[1-9]).*\\)");
parser[1] = 0;
parser[2] = 0;
parser[3] = 0;
parser[4] = 0;
exports.os[9] = parser;
parser = Object.create(null);
parser[0] = new RegExp("(Android) (\\d+)\\.(\\d+)(?:[.\\-]([a-z0-9]+))?");
parser[1] = 0;
parser[2] = 0;
parser[3] = 0;
parser[4] = 0;
exports.os[10] = parser;
parser = Object.create(null);
parser[0] = new RegExp("(Android)\\-(\\d+)\\.(\\d+)(?:[.\\-]([a-z0-9]+))?");
parser[1] = 0;
parser[2] = 0;
parser[3] = 0;
parser[4] = 0;
exports.os[11] = parser;
parser = Object.create(null);
parser[0] = new RegExp("(Android) Donut");
parser[1] = 0;
parser[2] = "1";
parser[3] = "2";
parser[4] = 0;
exports.os[12] = parser;
parser = Object.create(null);
parser[0] = new RegExp("(Android) Eclair");
parser[1] = 0;
parser[2] = "2";
parser[3] = "1";
parser[4] = 0;
exports.os[13] = parser;
parser = Object.create(null);
parser[0] = new RegExp("(Android) Froyo");
parser[1] = 0;
parser[2] = "2";
parser[3] = "2";
parser[4] = 0;
exports.os[14] = parser;
parser = Object.create(null);
parser[0] = new RegExp("(Android) Gingerbread");
parser[1] = 0;
parser[2] = "2";
parser[3] = "3";
parser[4] = 0;
exports.os[15] = parser;
parser = Object.create(null);
parser[0] = new RegExp("(Android) Honeycomb");
parser[1] = 0;
parser[2] = "3";
parser[3] = 0;
parser[4] = 0;
exports.os[16] = parser;
parser = Object.create(null);
parser[0] = new RegExp("(Silk-Accelerated=[a-z]{4,5})");
parser[1] = "Android";
parser[2] = 0;
parser[3] = 0;
parser[4] = 0;
exports.os[17] = parser;
parser = Object.create(null);
parser[0] = new RegExp("(Windows (?:NT 5\\.2|NT 5\\.1))");
parser[1] = "Windows XP";
parser[2] = 0;
parser[3] = 0;
parser[4] = 0;
exports.os[18] = parser;
parser = Object.create(null);
parser[0] = new RegExp("(XBLWP7)");
parser[1] = "Windows Phone";
parser[2] = 0;
parser[3] = 0;
parser[4] = 0;
exports.os[19] = parser;
parser = Object.create(null);
parser[0] = new RegExp("(Windows NT 6\\.1)");
parser[1] = "Windows 7";
parser[2] = 0;
parser[3] = 0;
parser[4] = 0;
exports.os[20] = parser;
parser = Object.create(null);
parser[0] = new RegExp("(Windows NT 6\\.0)");
parser[1] = "Windows Vista";
parser[2] = 0;
parser[3] = 0;
parser[4] = 0;
exports.os[21] = parser;
parser = Object.create(null);
parser[0] = new RegExp("(Win 9x 4\\.90)");
parser[1] = "Windows Me";
parser[2] = 0;
parser[3] = 0;
parser[4] = 0;
exports.os[22] = parser;
parser = Object.create(null);
parser[0] = new RegExp("(Windows 98|Windows XP|Windows ME|Windows 95|Windows CE|Windows 7|Windows NT 4\\.0|Windows Vista|Windows 2000|Windows 3.1)");
parser[1] = 0;
parser[2] = 0;
parser[3] = 0;
parser[4] = 0;
exports.os[23] = parser;
parser = Object.create(null);
parser[0] = new RegExp("(Windows NT 6\\.2; ARM;)");
parser[1] = "Windows RT";
parser[2] = 0;
parser[3] = 0;
parser[4] = 0;
exports.os[24] = parser;
parser = Object.create(null);
parser[0] = new RegExp("(Windows NT 6\\.2)");
parser[1] = "Windows 8";
parser[2] = 0;
parser[3] = 0;
parser[4] = 0;
exports.os[25] = parser;
parser = Object.create(null);
parser[0] = new RegExp("(Windows NT 5\\.0)");
parser[1] = "Windows 2000";
parser[2] = 0;
parser[3] = 0;
parser[4] = 0;
exports.os[26] = parser;
parser = Object.create(null);
parser[0] = new RegExp("(Windows Phone) (\\d+)\\.(\\d+)");
parser[1] = 0;
parser[2] = 0;
parser[3] = 0;
parser[4] = 0;
exports.os[27] = parser;
parser = Object.create(null);
parser[0] = new RegExp("(Windows Phone) OS (\\d+)\\.(\\d+)");
parser[1] = 0;
parser[2] = 0;
parser[3] = 0;
parser[4] = 0;
exports.os[28] = parser;
parser = Object.create(null);
parser[0] = new RegExp("(Windows ?Mobile)");
parser[1] = "Windows Mobile";
parser[2] = 0;
parser[3] = 0;
parser[4] = 0;
exports.os[29] = parser;
parser = Object.create(null);
parser[0] = new RegExp("(WinNT4.0)");
parser[1] = "Windows NT 4.0";
parser[2] = 0;
parser[3] = 0;
parser[4] = 0;
exports.os[30] = parser;
parser = Object.create(null);
parser[0] = new RegExp("(Win98)");
parser[1] = "Windows 98";
parser[2] = 0;
parser[3] = 0;
parser[4] = 0;
exports.os[31] = parser;
parser = Object.create(null);
parser[0] = new RegExp("(Tizen)/(\\d+)\\.(\\d+)");
parser[1] = 0;
parser[2] = 0;
parser[3] = 0;
parser[4] = 0;
exports.os[32] = parser;
parser = Object.create(null);
parser[0] = new RegExp("(Mac OS X) (\\d+)[_.](\\d+)(?:[_.](\\d+))?");
parser[1] = 0;
parser[2] = 0;
parser[3] = 0;
parser[4] = 0;
exports.os[33] = parser;
parser = Object.create(null);
parser[0] = new RegExp("Mac_PowerPC");
parser[1] = "Mac OS";
parser[2] = 0;
parser[3] = 0;
parser[4] = 0;
exports.os[34] = parser;
parser = Object.create(null);
parser[0] = new RegExp("(?:PPC|Intel) (Mac OS X)");
parser[1] = 0;
parser[2] = 0;
parser[3] = 0;
parser[4] = 0;
exports.os[35] = parser;
parser = Object.create(null);
parser[0] = new RegExp("(CPU OS|iPhone OS) (\\d+)_(\\d+)(?:_(\\d+))?");
parser[1] = "iOS";
parser[2] = 0;
parser[3] = 0;
parser[4] = 0;
exports.os[36] = parser;
parser = Object.create(null);
parser[0] = new RegExp("(iPhone|iPad|iPod); Opera");
parser[1] = "iOS";
parser[2] = 0;
parser[3] = 0;
parser[4] = 0;
exports.os[37] = parser;
parser = Object.create(null);
parser[0] = new RegExp("(iPhone|iPad|iPod).*Mac OS X.*Version/(\\d+)\\.(\\d+)");
parser[1] = "iOS";
parser[2] = 0;
parser[3] = 0;
parser[4] = 0;
exports.os[38] = parser;
parser = Object.create(null);
parser[0] = new RegExp("(AppleTV)/(\\d+)\\.(\\d+)");
parser[1] = "ATV OS X";
parser[2] = 0;
parser[3] = 0;
parser[4] = 0;
exports.os[39] = parser;
parser = Object.create(null);
parser[0] = new RegExp("(CrOS) [a-z0-9_]+ (\\d+)\\.(\\d+)(?:\\.(\\d+))?");
parser[1] = "Chrome OS";
parser[2] = 0;
parser[3] = 0;
parser[4] = 0;
exports.os[40] = parser;
parser = Object.create(null);
parser[0] = new RegExp("([Dd]ebian)");
parser[1] = "Debian";
parser[2] = 0;
parser[3] = 0;
parser[4] = 0;
exports.os[41] = parser;
parser = Object.create(null);
parser[0] = new RegExp("(Linux Mint)(?:/(\\d+))?");
parser[1] = 0;
parser[2] = 0;
parser[3] = 0;
parser[4] = 0;
exports.os[42] = parser;
parser = Object.create(null);
parser[0] = new RegExp("(Mandriva)(?: Linux)?/(?:[\\d.-]+m[a-z]{2}(\\d+).(\\d))?");
parser[1] = 0;
parser[2] = 0;
parser[3] = 0;
parser[4] = 0;
exports.os[43] = parser;
parser = Object.create(null);
parser[0] = new RegExp("(Symbian[Oo][Ss])/(\\d+)\\.(\\d+)");
parser[1] = "Symbian OS";
parser[2] = 0;
parser[3] = 0;
parser[4] = 0;
exports.os[44] = parser;
parser = Object.create(null);
parser[0] = new RegExp("(Symbian/3).+NokiaBrowser/7\\.3");
parser[1] = "Symbian^3 Anna";
parser[2] = 0;
parser[3] = 0;
parser[4] = 0;
exports.os[45] = parser;
parser = Object.create(null);
parser[0] = new RegExp("(Symbian/3).+NokiaBrowser/7\\.4");
parser[1] = "Symbian^3 Belle";
parser[2] = 0;
parser[3] = 0;
parser[4] = 0;
exports.os[46] = parser;
parser = Object.create(null);
parser[0] = new RegExp("(Symbian/3)");
parser[1] = "Symbian^3";
parser[2] = 0;
parser[3] = 0;
parser[4] = 0;
exports.os[47] = parser;
parser = Object.create(null);
parser[0] = new RegExp("(Series 60|SymbOS|S60)");
parser[1] = "Symbian OS";
parser[2] = 0;
parser[3] = 0;
parser[4] = 0;
exports.os[48] = parser;
parser = Object.create(null);
parser[0] = new RegExp("(MeeGo)");
parser[1] = 0;
parser[2] = 0;
parser[3] = 0;
parser[4] = 0;
exports.os[49] = parser;
parser = Object.create(null);
parser[0] = new RegExp("Symbian [Oo][Ss]");
parser[1] = "Symbian OS";
parser[2] = 0;
parser[3] = 0;
parser[4] = 0;
exports.os[50] = parser;
parser = Object.create(null);
parser[0] = new RegExp("Series40;");
parser[1] = "Nokia Series 40";
parser[2] = 0;
parser[3] = 0;
parser[4] = 0;
exports.os[51] = parser;
parser = Object.create(null);
parser[0] = new RegExp("(BB10);.+Version/(\\d+)\\.(\\d+)\\.(\\d+)");
parser[1] = "BlackBerry OS";
parser[2] = 0;
parser[3] = 0;
parser[4] = 0;
exports.os[52] = parser;
parser = Object.create(null);
parser[0] = new RegExp("(Black[Bb]erry)[0-9a-z]+/(\\d+)\\.(\\d+)\\.(\\d+)(?:\\.(\\d+))?");
parser[1] = "BlackBerry OS";
parser[2] = 0;
parser[3] = 0;
parser[4] = 0;
exports.os[53] = parser;
parser = Object.create(null);
parser[0] = new RegExp("(Black[Bb]erry).+Version/(\\d+)\\.(\\d+)\\.(\\d+)(?:\\.(\\d+))?");
parser[1] = "BlackBerry OS";
parser[2] = 0;
parser[3] = 0;
parser[4] = 0;
exports.os[54] = parser;
parser = Object.create(null);
parser[0] = new RegExp("(RIM Tablet OS) (\\d+)\\.(\\d+)\\.(\\d+)");
parser[1] = "BlackBerry Tablet OS";
parser[2] = 0;
parser[3] = 0;
parser[4] = 0;
exports.os[55] = parser;
parser = Object.create(null);
parser[0] = new RegExp("(Play[Bb]ook)");
parser[1] = "BlackBerry Tablet OS";
parser[2] = 0;
parser[3] = 0;
parser[4] = 0;
exports.os[56] = parser;
parser = Object.create(null);
parser[0] = new RegExp("(Black[Bb]erry)");
parser[1] = "BlackBerry OS";
parser[2] = 0;
parser[3] = 0;
parser[4] = 0;
exports.os[57] = parser;
parser = Object.create(null);
parser[0] = new RegExp("\\((?:Mobile|Tablet);.+Firefox/\\d+\\.\\d+");
parser[1] = "Firefox OS";
parser[2] = 0;
parser[3] = 0;
parser[4] = 0;
exports.os[58] = parser;
parser = Object.create(null);
parser[0] = new RegExp("(BREW)[ /](\\d+)\\.(\\d+)\\.(\\d+)");
parser[1] = 0;
parser[2] = 0;
parser[3] = 0;
parser[4] = 0;
exports.os[59] = parser;
parser = Object.create(null);
parser[0] = new RegExp("(BREW);");
parser[1] = 0;
parser[2] = 0;
parser[3] = 0;
parser[4] = 0;
exports.os[60] = parser;
parser = Object.create(null);
parser[0] = new RegExp("(Brew MP|BMP)[ /](\\d+)\\.(\\d+)\\.(\\d+)");
parser[1] = "Brew MP";
parser[2] = 0;
parser[3] = 0;
parser[4] = 0;
exports.os[61] = parser;
parser = Object.create(null);
parser[0] = new RegExp("BMP;");
parser[1] = "Brew MP";
parser[2] = 0;
parser[3] = 0;
parser[4] = 0;
exports.os[62] = parser;
parser = Object.create(null);
parser[0] = new RegExp("(GoogleTV) (\\d+)\\.(\\d+)\\.(\\d+)");
parser[1] = 0;
parser[2] = 0;
parser[3] = 0;
parser[4] = 0;
exports.os[63] = parser;
parser = Object.create(null);
parser[0] = new RegExp("(GoogleTV)/[\\da-z]+");
parser[1] = 0;
parser[2] = 0;
parser[3] = 0;
parser[4] = 0;
exports.os[64] = parser;
parser = Object.create(null);
parser[0] = new RegExp("(WebTV)/(\\d+).(\\d+)");
parser[1] = 0;
parser[2] = 0;
parser[3] = 0;
parser[4] = 0;
exports.os[65] = parser;
parser = Object.create(null);
parser[0] = new RegExp("(hpw|web)OS/(\\d+)\\.(\\d+)(?:\\.(\\d+))?");
parser[1] = "webOS";
parser[2] = 0;
parser[3] = 0;
parser[4] = 0;
exports.os[66] = parser;
parser = Object.create(null);
parser[0] = new RegExp("(VRE);");
parser[1] = 0;
parser[2] = 0;
parser[3] = 0;
parser[4] = 0;
exports.os[67] = parser;
parser = Object.create(null);
parser[0] = new RegExp("(Fedora|Red Hat|PCLinuxOS)/(\\d+)\\.(\\d+)\\.(\\d+)\\.(\\d+)");
parser[1] = 0;
parser[2] = 0;
parser[3] = 0;
parser[4] = 0;
exports.os[68] = parser;
parser = Object.create(null);
parser[0] = new RegExp("(Red Hat|Puppy|PCLinuxOS)/(\\d+)\\.(\\d+)\\.(\\d+)");
parser[1] = 0;
parser[2] = 0;
parser[3] = 0;
parser[4] = 0;
exports.os[69] = parser;
parser = Object.create(null);
parser[0] = new RegExp("(Ubuntu|Kindle|Bada|Lubuntu|BackTrack|Red Hat|Slackware)/(\\d+)\\.(\\d+)");
parser[1] = 0;
parser[2] = 0;
parser[3] = 0;
parser[4] = 0;
exports.os[70] = parser;
parser = Object.create(null);
parser[0] = new RegExp("(Windows|OpenBSD|FreeBSD|NetBSD|Android|WeTab)");
parser[1] = 0;
parser[2] = 0;
parser[3] = 0;
parser[4] = 0;
exports.os[71] = parser;
parser = Object.create(null);
parser[0] = new RegExp("(Ubuntu|Kubuntu|Arch Linux|CentOS|Slackware|Gentoo|openSUSE|SUSE|Red Hat|Fedora|PCLinuxOS|Gentoo|Mageia)");
parser[1] = 0;
parser[2] = 0;
parser[3] = 0;
parser[4] = 0;
exports.os[72] = parser;
parser = Object.create(null);
parser[0] = new RegExp("(Linux)/(\\d+)\\.(\\d+)");
parser[1] = 0;
parser[2] = 0;
parser[3] = 0;
parser[4] = 0;
exports.os[73] = parser;
parser = Object.create(null);
parser[0] = new RegExp("(Linux|BSD)");
parser[1] = 0;
parser[2] = 0;
parser[3] = 0;
parser[4] = 0;
exports.os[74] = parser;
parser = Object.create(null);
parser[0] = new RegExp("SunOS");
parser[1] = "Solaris";
parser[2] = 0;
parser[3] = 0;
parser[4] = 0;
exports.os[75] = parser;
parser = Object.create(null);
parser[0] = new RegExp("(Red Hat)");
parser[1] = 0;
parser[2] = 0;
parser[3] = 0;
parser[4] = 0;
exports.os[76] = parser;
parser = Object.create(null);
parser[0] = new RegExp("(iOS) (\\d+)\\.(\\d+)(?:\\.(\\d+))?");
parser[1] = 0;
parser[2] = 0;
parser[3] = 0;
parser[4] = 0;
exports.os[77] = parser;

exports.os.length = 78;