packages feed

ua-parser 0.7.3 → 0.7.4

raw patch · 8 files changed

+2469/−147 lines, 8 files

Files

changelog.md view
@@ -1,3 +1,6 @@+0.7.4+* Update uap-core+ 0.7.3 * Allow for aeson 1.1 
deps/uap-core/regexes.yaml view
@@ -8,7 +8,14 @@   # Pingdom   - regex: '(Pingdom.com_bot_version_)(\d+)\.(\d+)'     family_replacement: 'PingdomBot'+    # 'Mozilla/5.0 (Unknown; Linux x86_64) AppleWebKit/534.34 (KHTML, like Gecko) PingdomTMS/0.8.5 Safari/534.34'+  - regex: '(PingdomTMS)/(\d+)\.(\d+)\.(\d+)'+    family_replacement: 'PingdomBot' +  #StatusCake+  - regex: '(\(StatusCake\))'+    family_replacement: 'StatusCakeBot'+   # Facebook   - regex: '(facebookexternalhit)/(\d+)\.(\d+)'     family_replacement: 'FacebookBot'@@ -17,20 +24,28 @@   - regex: 'Google.*/\+/web/snippet'     family_replacement: 'GooglePlusBot' +  # Gmail+  - regex: 'via ggpht.com GoogleImageProxy'+    family_replacement: 'GmailImageProxy'++  # Twitter+  - regex: '(Twitterbot)/(\d+)\.(\d+)'+    family_replacement: 'TwitterBot'+   # Bots Pattern '/name-0.0'   - regex: '/((?:Ant-)?Nutch|[A-z]+[Bb]ot|[A-z]+[Ss]pider|Axtaris|fetchurl|Isara|ShopSalad|Tailsweep)[ \-](\d+)(?:\.(\d+)(?:\.(\d+))?)?'   # Bots Pattern 'name/0.0'-  - regex: '(008|Altresium|Argus|BaiduMobaider|BoardReader|DNSGroup|DataparkSearch|EDI|Goodzer|Grub|INGRID|Infohelfer|LinkedInBot|LOOQ|Nutch|PathDefender|Peew|PostPost|Steeler|Twitterbot|VSE|WebCrunch|WebZIP|Y!J-BR[A-Z]|YahooSeeker|envolk|sproose|wminer)/(\d+)(?:\.(\d+)(?:\.(\d+))?)?'+  - regex: '\b(008|Altresium|Argus|BaiduMobaider|BoardReader|DNSGroup|DataparkSearch|EDI|Goodzer|Grub|INGRID|Infohelfer|LinkedInBot|LOOQ|Nutch|PathDefender|Peew|PostPost|Steeler|Twitterbot|VSE|WebCrunch|WebZIP|Y!J-BR[A-Z]|YahooSeeker|envolk|sproose|wminer)/(\d+)(?:\.(\d+)(?:\.(\d+))?)?'    # MSIECrawler   - regex: '(MSIE) (\d+)\.(\d+)([a-z]\d?)?;.* MSIECrawler'     family_replacement: 'MSIECrawler'    # Downloader ...-  - regex: '(Google-HTTP-Java-Client|Apache-HttpClient|http%20client|Python-urllib|HttpMonitor|TLSProber|WinHTTP|JNLP)(?:[ /](\d+)(?:\.(\d+)(?:\.(\d+))?)?)?'+  - regex: '(Google-HTTP-Java-Client|Apache-HttpClient|http%20client|Python-urllib|HttpMonitor|TLSProber|WinHTTP|JNLP|okhttp)(?:[ /](\d+)(?:\.(\d+)(?:\.(\d+))?)?)?'    # Bots-  - regex: '(1470\.net crawler|50\.nu|8bo Crawler Bot|Aboundex|Accoona-[A-z]+-Agent|AdsBot-Google(?:-[a-z]+)?|altavista|AppEngine-Google|archive.*?\.org_bot|archiver|Ask Jeeves|[Bb]ai[Dd]u[Ss]pider(?:-[A-Za-z]+)*|bingbot|BingPreview|blitzbot|BlogBridge|BoardReader(?: [A-Za-z]+)*|boitho.com-dc|BotSeer|\b\w*favicon\w*\b|\bYeti(?:-[a-z]+)?|Catchpoint bot|[Cc]harlotte|Checklinks|clumboot|Comodo HTTP\(S\) Crawler|Comodo-Webinspector-Crawler|ConveraCrawler|CRAWL-E|CrawlConvera|Daumoa(?:-feedfetcher)?|Feed Seeker Bot|findlinks|Flamingo_SearchEngine|FollowSite Bot|furlbot|Genieo|gigabot|GomezAgent|gonzo1|(?:[a-zA-Z]+-)?Googlebot(?:-[a-zA-Z]+)?|Google SketchUp|grub-client|gsa-crawler|heritrix|HiddenMarket|holmes|HooWWWer|htdig|ia_archiver|ICC-Crawler|Icarus6j|ichiro(?:/mobile)?|IconSurf|IlTrovatore(?:-Setaccio)?|InfuzApp|Innovazion Crawler|InternetArchive|IP2[a-z]+Bot|jbot\b|KaloogaBot|Kraken|Kurzor|larbin|LEIA|LesnikBot|Linguee Bot|LinkAider|LinkedInBot|Lite Bot|Llaut|lycos|Mail\.RU_Bot|masidani_bot|Mediapartners-Google|Microsoft .*? Bot|mogimogi|mozDex|MJ12bot|msnbot(?:-media *)?|msrbot|netresearch|Netvibes|NewsGator[^/]*|^NING|Nutch[^/]*|Nymesis|ObjectsSearch|Orbiter|OOZBOT|PagePeeker|PagesInventory|PaxleFramework|Peeplo Screenshot Bot|PlantyNet_WebRobot|Pompos|Read%20Later|Reaper|RedCarpet|Retreiver|Riddler|Rival IQ|scooter|Scrapy|Scrubby|searchsight|seekbot|semanticdiscovery|Simpy|SimplePie|SEOstats|SimpleRSS|SiteCon|Slurp|snappy|Speedy Spider|Squrl Java|TheUsefulbot|ThumbShotsBot|Thumbshots\.ru|TwitterBot|URL2PNG|Vagabondo|VoilaBot|^vortex|Votay bot|^voyager|WASALive.Bot|Web-sniffer|WebThumb|WeSEE:[A-z]+|WhatWeb|WIRE|WordPress|Wotbox|www\.almaden\.ibm\.com|Xenu(?:.s)? Link Sleuth|Xerka [A-z]+Bot|yacy(?:bot)?|Yahoo[a-z]*Seeker|Yahoo! Slurp|Yandex\w+|YodaoBot(?:-[A-z]+)?|YottaaMonitor|Yowedo|^Zao|^Zao-Crawler|ZeBot_www\.ze\.bz|ZooShot|ZyBorg)(?:[ /]v?(\d+)(?:\.(\d+)(?:\.(\d+))?)?)?'+  - regex: '(1470\.net crawler|50\.nu|8bo Crawler Bot|Aboundex|Accoona-[A-z]+-Agent|AdsBot-Google(?:-[a-z]+)?|altavista|AppEngine-Google|archive.*?\.org_bot|archiver|Ask Jeeves|[Bb]ai[Dd]u[Ss]pider(?:-[A-Za-z]+)*|bingbot|BingPreview|blitzbot|BlogBridge|Bloglovin|BoardReader(?: [A-Za-z]+)*|boitho.com-dc|BotSeer|\b\w*favicon\w*\b|\bYeti(?:-[a-z]+)?|Catchpoint(?: bot)?|[Cc]harlotte|Checklinks|clumboot|Comodo HTTP\(S\) Crawler|Comodo-Webinspector-Crawler|ConveraCrawler|CRAWL-E|CrawlConvera|Daumoa(?:-feedfetcher)?|Feed Seeker Bot|Feedbin|findlinks|Flamingo_SearchEngine|FollowSite Bot|furlbot|Genieo|gigabot|GomezAgent|gonzo1|(?:[a-zA-Z]+-)?Googlebot(?:-[a-zA-Z]+)?|Google SketchUp|grub-client|gsa-crawler|heritrix|HiddenMarket|holmes|HooWWWer|htdig|ia_archiver|ICC-Crawler|Icarus6j|ichiro(?:/mobile)?|IconSurf|IlTrovatore(?:-Setaccio)?|InfuzApp|Innovazion Crawler|InternetArchive|IP2[a-z]+Bot|jbot\b|KaloogaBot|Kraken|Kurzor|larbin|LEIA|LesnikBot|Linguee Bot|LinkAider|LinkedInBot|Lite Bot|Llaut|lycos|Mail\.RU_Bot|masscan|masidani_bot|Mediapartners-Google|Microsoft .*? Bot|mogimogi|mozDex|MJ12bot|msnbot(?:-media *)?|msrbot|Mtps Feed Aggregation System|netresearch|Netvibes|NewsGator[^/]*|^NING|Nutch[^/]*|Nymesis|ObjectsSearch|Orbiter|OOZBOT|PagePeeker|PagesInventory|PaxleFramework|Peeplo Screenshot Bot|PlantyNet_WebRobot|Pompos|Qwantify|Read%20Later|Reaper|RedCarpet|Retreiver|Riddler|Rival IQ|scooter|Scrapy|Scrubby|searchsight|seekbot|semanticdiscovery|Simpy|SimplePie|SEOstats|SimpleRSS|SiteCon|Slackbot-LinkExpanding|Slack-ImgProxy|Slurp|snappy|Speedy Spider|Squrl Java|Stringer|TheUsefulbot|ThumbShotsBot|Thumbshots\.ru|Tiny Tiny RSS|TwitterBot|WhatsApp|URL2PNG|Vagabondo|VoilaBot|^vortex|Votay bot|^voyager|WASALive.Bot|Web-sniffer|WebThumb|WeSEE:[A-z]+|WhatWeb|WIRE|WordPress|Wotbox|www\.almaden\.ibm\.com|Xenu(?:.s)? Link Sleuth|Xerka [A-z]+Bot|yacy(?:bot)?|Yahoo[a-z]*Seeker|Yahoo! Slurp|Yandex\w+|YodaoBot(?:-[A-z]+)?|YottaaMonitor|Yowedo|^Zao|^Zao-Crawler|ZeBot_www\.ze\.bz|ZooShot|ZyBorg)(?:[ /]v?(\d+)(?:\.(\d+)(?:\.(\d+))?)?)?'    # Bots General matcher 'name/0.0'   - regex: '(?:\/[A-Za-z0-9\.]+)? *([A-Za-z0-9 \-_\!\[\]:]*(?:[Aa]rchiver|[Ii]ndexer|[Ss]craper|[Bb]ot|[Ss]pider|[Cc]rawl[a-z]*))/(\d+)(?:\.(\d+)(?:\.(\d+))?)?'@@ -55,9 +70,11 @@   - regex: '\[(Pinterest)/[^\]]+\]'   - regex: '(Pinterest)(?: for Android(?: Tablet)?)?/(\d+)(?:\.(\d+)(?:\.(\d)+)?)?' +  # Pale Moon+  - regex: '(PaleMoon)/(\d+)\.(\d+)\.?(\d+)?'+    family_replacement: 'Pale Moon'+   # Firefox-  - regex: '(Pale[Mm]oon)/(\d+)\.(\d+)\.?(\d+)?'-    family_replacement: 'Pale Moon (Firefox Variant)'   - regex: '(Fennec)/(\d+)\.(\d+)\.?([ab]?\d+[a-z]*)'     family_replacement: 'Firefox Mobile'   - regex: '(Fennec)/(\d+)\.(\d+)(pre)'@@ -103,9 +120,15 @@   - regex: '(MyIBrow)/(\d+)\.(\d+)'     family_replacement: 'My Internet Browser' +  # UC Browser+  # we need check it before opera. In other case case UC Browser detected look like Opera Mini+  - regex: '(UC? ?Browser|UCWEB|U3)[ /]?(\d+)\.(\d+)\.(\d+)'+    family_replacement: 'UC Browser'+   # Opera will stop at 9.80 and hide the real version in the Version string.   # see: http://dev.opera.com/articles/view/opera-ua-string-changes/   - regex: '(Opera Tablet).*Version/(\d+)\.(\d+)(?:\.(\d+))?'+  - regex: '(Opera Mini)(?:/att)?/?(\d+)?(?:\.(\d+))?(?:\.(\d+))?'   - regex: '(Opera)/.+Opera Mobi.+Version/(\d+)\.(\d+)'     family_replacement: 'Opera Mobile'   - regex: '(Opera)/(\d+)\.(\d+).+Opera Mobi'@@ -114,7 +137,6 @@     family_replacement: 'Opera Mobile'   - regex: 'Opera Mobi'     family_replacement: 'Opera Mobile'-  - regex: '(Opera Mini)(?:/att)?/(\d+)\.(\d+)'   - regex: '(Opera)/9.80.*Version/(\d+)\.(\d+)(?:\.(\d+))?'    # Opera 14 for Android uses a WebKit render engine.@@ -133,6 +155,10 @@   - regex: '(OPiOS)/(\d+).(\d+).(\d+)'     family_replacement: 'Opera Mini' +  # Opera Neon+  - regex: 'Chrome/.+( MMS)/(\d+).(\d+).(\d+)'+    family_replacement: 'Opera Neon'+   # Palm WebOS looks a lot like Safari.   - regex: '(hpw|web)OS/(\d+)\.(\d+)(?:\.(\d+))?'     family_replacement: 'webOS Browser'@@ -147,7 +173,7 @@    # Lightning (for Thunderbird)   # http://www.mozilla.org/projects/calendar/lightning/-  - regex: '(Lightning)/(\d+)\.(\d+)\.?((?:[ab]?\d+[a-z]*)|(?:\d*))'+  - regex: 'Gecko/\d+ (Lightning)/(\d+)\.(\d+)\.?((?:[ab]?\d+[a-z]*)|(?:\d*))'    # Swiftfox   - regex: '(Firefox)/(\d+)\.(\d+)\.(\d+(?:pre)?) \(Swiftfox\)'@@ -177,8 +203,6 @@    - regex: '(Symphony) (\d+).(\d+)' -  - regex: '(Minimo)'-   - regex: 'PLAYSTATION 3.+WebKit'     family_replacement: 'NetFront NX'   - regex: 'PLAYSTATION 3'@@ -197,7 +221,6 @@   - regex: '(Silk)/(\d+)\.(\d+)(?:\.([0-9\-]+))?'     family_replacement: 'Amazon Silk' -   # @ref: http://www.puffinbrowser.com   - regex: '(Puffin)/(\d+)\.(\d+)(?:\.(\d+))?' @@ -205,25 +228,47 @@   - regex: 'Windows Phone .*(Edge)/(\d+)\.(\d+)'     family_replacement: 'Edge Mobile' +  # Samsung Internet (based on Chrome, but lacking some features)+  - regex: '(SamsungBrowser)/(\d+)\.(\d+)'+    family_replacement: 'Samsung Internet'++  # Seznam.cz browser (based on WebKit)+  - regex: '(SznProhlizec)/(\d+)\.(\d+)(?:\.(\d+))?'+    family_replacement: 'Seznam.cz'++  # Coc Coc browser, based on Chrome (used in Vietnam)+  - regex: '(coc_coc_browser)/(\d+)\.(\d+)(?:\.(\d+))?'+    family_replacement: 'Coc Coc'++  # Baidu Browsers (desktop spoofs chrome & IE, explorer is mobile)+  - regex: '(baidubrowser)[/\s](\d+)(?:\.(\d+)(?:\.(\d+))?)?'+    family_replacement: 'Baidu Browser'+  - regex: '(FlyFlow)/(\d+)\.(\d+)'+    family_replacement: 'Baidu Explorer'++  # MxBrowser is Maxthon. Must go before Mobile Chrome for Android+  - regex: '(MxBrowser)/(\d+)\.(\d+)(?:\.(\d+))?'+    family_replacement: 'Maxthon'++  # Crosswalk must go before Mobile Chrome for Android+  - regex: '(Crosswalk)/(\d+)\.(\d+)\.(\d+)\.(\d+)'+   # Chrome Mobile+  - regex: '; wv\).+(Chrome)/(\d+)\.(\d+)\.(\d+)\.(\d+)'+    family_replacement: 'Chrome Mobile WebView'   - regex: '(CrMo)/(\d+)\.(\d+)\.(\d+)\.(\d+)'     family_replacement: 'Chrome Mobile'   - regex: '(CriOS)/(\d+)\.(\d+)\.(\d+)\.(\d+)'     family_replacement: 'Chrome Mobile iOS'-  - regex: '(Chrome)/(\d+)\.(\d+)\.(\d+)\.(\d+) Mobile'+  - regex: '(Chrome)/(\d+)\.(\d+)\.(\d+)\.(\d+) Mobile(?:[ /]|$)'     family_replacement: 'Chrome Mobile'+  - regex: ' Mobile .*(Chrome)/(\d+)\.(\d+)\.(\d+)\.(\d+)'+    family_replacement: 'Chrome Mobile'    # Chrome Frame must come before MSIE.   - regex: '(chromeframe)/(\d+)\.(\d+)\.(\d+)'     family_replacement: 'Chrome Frame' -  # UC Browser-  - regex: '(UCBrowser)[ /](\d+)\.(\d+)\.(\d+)'-    family_replacement: 'UC Browser'-  - regex: '(UC Browser)[ /](\d+)\.(\d+)\.(\d+)'-  - regex: '(UC Browser|UCBrowser|UCWEB)(\d+)\.(\d+)\.(\d+)'-    family_replacement: 'UC Browser'-   # Tizen Browser (second case included in browser/major.minor regex)   - regex: '(SLP Browser)/(\d+)\.(\d+)'     family_replacement: 'Tizen Browser'@@ -232,12 +277,6 @@   - regex: '(SE 2\.X) MetaSr (\d+)\.(\d+)'     family_replacement: 'Sogou Explorer' -  # Baidu Browsers (desktop spoofs chrome & IE, explorer is mobile)-  - regex: '(baidubrowser)[/\s](\d+)'-    family_replacement: 'Baidu Browser'-  - regex: '(FlyFlow)/(\d+)\.(\d+)'-    family_replacement: 'Baidu Explorer'-   # QQ Browsers   - regex: '(MQQBrowser/Mini)(?:(\d+)(?:\.(\d+)(?:\.(\d+))?)?)?'     family_replacement: 'QQ Browser Mini'@@ -268,16 +307,26 @@    #### MAIN CASES - this catches > 50% of all browsers #### ++  # Slack desktop client (needs to be before Apple Mail, Electron, and Chrome as it gets wrongly detected on Mac OS otherwise)+  - regex: '(Slack_SSB)/(\d+)\.(\d+)\.(\d+)'+    family_replacement: 'Slack Desktop Client'+  +  # HipChat provides a version on Mac, but not on Windows.+  # Needs to be before Chrome on Windows, and AppleMail on Mac.+  - regex: '(HipChat)/?(\d+)?'+    family_replacement: 'HipChat Desktop Client'+   # Browser/major_version.minor_version.beta_version-  - regex: '(AdobeAIR|FireWeb|Jasmine|ANTGalio|Midori|Fresco|Lobo|PaleMoon|Maxthon|Lynx|OmniWeb|Dillo|Camino|Demeter|Fluid|Fennec|Epiphany|Shiira|Sunrise|Spotify|Flock|Netscape|Lunascape|WebPilot|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+)'+  - regex: '\b(MobileIron|FireWeb|Jasmine|ANTGalio|Midori|Fresco|Lobo|PaleMoon|Maxthon|Lynx|OmniWeb|Dillo|Camino|Demeter|Fluid|Fennec|Epiphany|Shiira|Sunrise|Spotify|Flock|Netscape|Lunascape|WebPilot|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|MacOutlook|Electron)/(\d+)\.(\d+)\.(\d+)'    # Outlook 2007-  - regex: 'MSOffice 12'+  - regex: 'Microsoft Office Outlook 12\.\d+\.\d+|MSOffice 12'     family_replacement: 'Outlook'     v1_replacement: '2007'    # Outlook 2010-  - regex: 'MSOffice 14'+  - regex: 'Microsoft Outlook 14\.\d+\.\d+|MSOffice 14'     family_replacement: 'Outlook'     v1_replacement: '2010' @@ -286,31 +335,63 @@     family_replacement: 'Outlook'     v1_replacement: '2013' +  # Outlook 2016+  - regex: 'Microsoft Outlook (?:Mail )?16\.\d+\.\d+'+    family_replacement: 'Outlook'+    v1_replacement: '2016'++  # Windows Live Mail+  - regex: 'Outlook-Express\/7\.0.*'+    family_replacement: 'Windows Live Mail'+   # Apple Air Mail   - regex: '(Airmail) (\d+)\.(\d+)(?:\.(\d+))?'    # Thunderbird-  - regex: '(Thunderbird)/(\d+)\.(\d+)\.(\d+(?:pre)?)'+  - regex: '(Thunderbird)/(\d+)\.(\d+)(?:\.(\d+(?:pre)?))?'     family_replacement: 'Thunderbird' +  # Postbox+  - regex: '(Postbox)/(\d+)\.(\d+)\.(\d+)'+    family_replacement: 'Postbox'++  # Barca+  - regex: '(Barca(?:Pro)?)/(\d+)\.(\d+)(?:\.(\d+))?'+    family_replacement: 'Barca'++  # Lotus Notes+  - regex: '(Lotus-Notes)/(\d+)\.(\d+)(?:\.(\d+))?'+    family_replacement: 'Lotus Notes'+   # Vivaldi uses "Vivaldi"   - regex: '(Vivaldi)/(\d+)\.(\d+)\.(\d+)'    # Edge/major_version.minor_version-  - regex: '(Edge)/(\d+)\.(\d+)'+  - regex: '(Edge)/(\d+)(?:\.(\d+))?' -  # Chrome/Chromium/major_version.minor_version.beta_version-  - regex: '(Chromium|Chrome)/(\d+)\.(\d+)\.(\d+)'+  # Brave Browser https://brave.com/+  - regex: '(brave)/(\d+)\.(\d+)\.(\d+) Chrome'+    family_replacement: 'Brave' +  # Iron Browser ~since version 50+  - regex: '(Chrome)/(\d+)\.(\d+)\.(\d+)[\d.]* Iron[^/]'+    family_replacement: 'Iron'+   # Dolphin Browser   # @ref: http://www.dolphin.com   - regex: '\b(Dolphin)(?: |HDCN/|/INT\-)(\d+)\.(\d+)\.?(\d+)?' +  # Headless Chrome+  # https://chromium.googlesource.com/chromium/src/+/lkgr/headless/README.md+  # Currently only available on Linux+  - regex: 'HeadlessChrome'+    family_replacement: 'HeadlessChrome'+   # Browser/major_version.minor_version-  - regex: '(bingbot|Bolt|Jasmine|IceCat|Skyfire|Midori|Maxthon|Lynx|Arora|IBrowse|Dillo|Camino|Shiira|Fennec|Phoenix|Chrome|Flock|Netscape|Lunascape|Epiphany|WebPilot|Opera Mini|Opera|NetFront|Netfront|Konqueror|Googlebot|SeaMonkey|Kazehakase|Vienna|Iceape|Iceweasel|IceWeasel|Iron|K-Meleon|Sleipnir|Galeon|GranParadiso|iCab|iTunes|MacAppStore|NetNewsWire|Space Bison|Stainless|Orca|Dolfin|BOLT|Minimo|Tizen Browser|Polaris|Abrowser|Planetweb|ICE Browser|mDolphin|qutebrowser|Otter|QupZilla)/(\d+)\.(\d+)\.?(\d+)?'+  - regex: '(bingbot|Bolt|AdobeAIR|Jasmine|IceCat|Skyfire|Midori|Maxthon|Lynx|Arora|IBrowse|Dillo|Camino|Shiira|Fennec|Phoenix|Flock|Netscape|Lunascape|Epiphany|WebPilot|Opera Mini|Opera|NetFront|Netfront|Konqueror|Googlebot|SeaMonkey|Kazehakase|Vienna|Iceape|Iceweasel|IceWeasel|Iron|K-Meleon|Sleipnir|Galeon|GranParadiso|iCab|iTunes|MacAppStore|NetNewsWire|Space Bison|Stainless|Orca|Dolfin|BOLT|Minimo|Tizen Browser|Polaris|Abrowser|Planetweb|ICE Browser|mDolphin|qutebrowser|Otter|QupZilla|MailBar|kmail2|YahooMobileMail|ExchangeWebServices|ExchangeServicesClient|Dragon|Outlook-iOS-Android)/(\d+)\.(\d+)(?:\.(\d+))?'    # Chrome/Chromium/major_version.minor_version-  - regex: '(Chromium|Chrome)/(\d+)\.(\d+)'+  - regex: '(Chromium|Chrome)/(\d+)\.(\d+)(?:\.(\d+))?'    ##########   # IE Mobile needs to happen before Android to catch cases such as:@@ -324,10 +405,13 @@   - regex: '(IEMobile)[ /](\d+)\.(\d+)'     family_replacement: 'IE Mobile' +  # Baca Berita App News Reader+  - regex: '(BacaBerita App)\/(\d+)\.(\d+)\.(\d+)'+   # Browser major_version.minor_version.beta_version (space instead of slash)   - regex: '(iRider|Crazy Browser|SkipStone|iCab|Lunascape|Sleipnir|Maemo Browser) (\d+)\.(\d+)\.(\d+)'   # Browser major_version.minor_version (space instead of slash)-  - regex: '(iCab|Lunascape|Opera|Android|Jasmine|Polaris) (\d+)\.(\d+)\.?(\d+)?'+  - regex: '(iCab|Lunascape|Opera|Android|Jasmine|Polaris|Microsoft SkyDriveSync|The Bat!) (\d+)\.(\d+)\.?(\d+)?'    # Kindle WebKit   - regex: '(Kindle)/(\d+)\.(\d+)'@@ -357,6 +441,7 @@   - regex: '(MSIE) (\d+)\.(\d+).*XBLWP7'     family_replacement: 'IE Large Screen' +   #### END MAIN CASES ####    #### SPECIAL CASES ####@@ -385,18 +470,18 @@     family_replacement: 'Bon Echo'    # @note: iOS / OSX Applications-  - regex: '(iPod|iPhone|iPad).+Version/(\d+)\.(\d+)(?:\.(\d+))?.* Safari'+  - regex: '(iPod|iPhone|iPad).+Version/(\d+)\.(\d+)(?:\.(\d+))?.*[ +]Safari'     family_replacement: 'Mobile Safari'   - regex: '(iPod|iPhone|iPad).+Version/(\d+)\.(\d+)(?:\.(\d+))?'-    family_replacement: 'Mobile Safari UIWebView'-  - regex: '(iPod|iPhone|iPad);.*CPU.*OS (\d+)_(\d+)(?:_(\d+))?.*Mobile.* Safari'+    family_replacement: 'Mobile Safari UI/WKWebView'+  - regex: '(iPod|iPod touch|iPhone|iPad);.*CPU.*OS[ +](\d+)_(\d+)(?:_(\d+))?.*Mobile.*[ +]Safari'     family_replacement: 'Mobile Safari'-  - regex: '(iPod|iPhone|iPad);.*CPU.*OS (\d+)_(\d+)(?:_(\d+))?.*Mobile'-    family_replacement: 'Mobile Safari UIWebView'+  - regex: '(iPod|iPod touch|iPhone|iPad);.*CPU.*OS[ +](\d+)_(\d+)(?:_(\d+))?.*Mobile'+    family_replacement: 'Mobile Safari UI/WKWebView'   - regex: '(iPod|iPhone|iPad).* Safari'     family_replacement: 'Mobile Safari'   - regex: '(iPod|iPhone|iPad)'-    family_replacement: 'Mobile Safari UIWebView'+    family_replacement: 'Mobile Safari UI/WKWebView'    - regex: '(AvantGo) (\d+).(\d+)' @@ -498,7 +583,7 @@    # apple mail - not directly detectable, have it after Safari stuff   - regex: '(AppleWebKit)/(\d+)\.(\d+)\.(\d+)'-    family_replacement: 'AppleMail'+    family_replacement: 'Apple Mail'    # AFTER THE EDGE CASES ABOVE!   # AFTER IE11@@ -512,8 +597,19 @@   - regex: '(python-requests)/(\d+)\.(\d+)'     family_replacement: 'Python Requests' +  # headless user-agents+  - regex: '\b(Windows-Update-Agent|Microsoft-CryptoAPI|SophosUpdateManager|SophosAgent|Debian APT-HTTP|Ubuntu APT-HTTP|libcurl-agent|libwww-perl|urlgrabber|curl|Wget|OpenBSD ftp|jupdate)(?:[ /](\d+)(?:\.(\d+)(?:\.(\d+))?)?)?'+   - regex: '(Java)[/ ]{0,1}\d+\.(\d+)\.(\d+)[_-]*([a-zA-Z0-9]+)*' +  # Roku Digital-Video-Players https://www.roku.com/+  - regex: '^(Roku)/DVP-(\d+)\.(\d+)'++  # Kurio App News Reader https://kurio.co.id/+  - regex: '(Kurio)\/(\d+)\.(\d+)\.(\d+)'+    family_replacement: 'Kurio App'++ os_parsers:   ##########   # HbbTV vendors@@ -583,6 +679,10 @@    - regex: '(Windows Phone) (?:OS[ /])?(\d+)\.(\d+)' +  # Again a MS-special one: iPhone.*Outlook-iOS-Android/x.x is erroneously detected as Android+  - regex: '(CPU[ +]OS|iPhone[ +]OS|CPU[ +]iPhone)[ +]+(\d+)[_\.](\d+)(?:[_\.](\d+))?.*Outlook-iOS-Android'+    os_replacement: 'iOS'+   ##########   # Android   # can actually detect rooted android os. do we care?@@ -611,7 +711,7 @@   # UCWEB   - regex: '^UCWEB.*; (Adr) (\d+)\.(\d+)(?:[.\-]([a-z0-9]+))?;'     os_replacement: 'Android'-  - regex: '^UCWEB.*; (iPad OS|iPh OS) (\d+)_(\d+)(?:_(\d+))?;'+  - regex: '^UCWEB.*; (iPad|iPh|iPd) OS (\d+)_(\d+)(?:_(\d+))?;'     os_replacement: 'iOS'   - regex: '^UCWEB.*; (wds) (\d+)\.(\d+)(?:\.(\d+))?;'     os_replacement: 'Windows Phone'@@ -694,14 +794,14 @@   # Tizen OS from Samsung   # spoofs Android so pushing it above   ##########-  - regex: '(Tizen)/(\d+)\.(\d+)'+  - regex: '(Tizen)[/ ](\d+)\.(\d+)'    ##########   # Mac OS   # @ref: http://en.wikipedia.org/wiki/Mac_OS_X#Versions   # @ref: http://www.puredarwin.org/curious/versions   ##########-  - regex: '((?:Mac ?|; )OS X)[\s/](?:(\d+)[_.](\d+)(?:[_.](\d+))?|Mach-O)'+  - regex: '((?:Mac[ +]?|; )OS[ +]X)[\s+/](?:(\d+)[_.](\d+)(?:[_.](\d+))?|Mach-O)'     os_replacement: 'Mac OS X'   # Leopard   - regex: ' (Dar)(win)/(9).(\d+).*\((?:i386|x86_64|Power Macintosh)\)'@@ -748,7 +848,7 @@   - regex: '(Apple\s?TV)(?:/(\d+)\.(\d+))?'     os_replacement: 'ATV OS X' -  - regex: '(CPU OS|iPhone OS|CPU iPhone) +(\d+)[_\.](\d+)(?:[_\.](\d+))?'+  - regex: '(CPU[ +]OS|iPhone[ +]OS|CPU[ +]iPhone|CPU IPhone OS)[ +]+(\d+)[_\.](\d+)(?:[_\.](\d+))?'     os_replacement: 'iOS'    # remaining cases are mostly only opera uas, so catch opera as to not catch iphone spoofs@@ -795,11 +895,30 @@     os_replacement: 'Mac OS X'     os_v1_replacement: '10'     os_v2_replacement: '10'+  - regex: '(CF)(Network)/(760)\.(\d)'+    os_replacement: 'Mac OS X'+    os_v1_replacement: '10'+    os_v2_replacement: '11'   - regex: '(CF)(Network)/758\.(\d)'     os_replacement: 'iOS'     os_v1_replacement: '9'+  - regex: '(CF)(Network)/808\.(\d)'+    os_replacement: 'iOS'+    os_v1_replacement: '10'    ##########+  # CFNetwork macOS Apps (must be before CFNetwork iOS Apps+  # @ref: https://en.wikipedia.org/wiki/Darwin_(operating_system)#Release_history+  ##########+  - regex: 'CFNetwork/.* Darwin/16\.\d+.*\(x86_64\)'+    os_replacement: 'Mac OS X'+    os_v1_replacement: '10'+    os_v2_replacement: '12'+  - regex: 'CFNetwork/8.* Darwin/15\.\d+.*\(x86_64\)'+    os_replacement: 'Mac OS X'+    os_v1_replacement: '10'+    os_v2_replacement: '11'+  ##########   # CFNetwork iOS Apps   # @ref: https://en.wikipedia.org/wiki/Darwin_(operating_system)#Release_history   ##########@@ -826,9 +945,13 @@     os_replacement: 'iOS'     os_v1_replacement: '9'     os_v2_replacement: '0'+  - regex: 'CFNetwork/8.* Darwin/(16)\.\d+'+    os_replacement: 'iOS'+    os_v1_replacement: '10'   # iOS Apps-  - regex: '\b(iOS[ /]|iPhone(?:/| v|[ _]OS[/,]|; | OS : |\d,\d/|\d,\d; )|iPad/)(\d{1,2})[_\.](\d{1,2})(?:[_\.](\d+))?'+  - regex: '\b(iOS[ /]|iOS; |iPhone(?:/| v|[ _]OS[/,]|; | OS : |\d,\d/|\d,\d; )|iPad/)(\d{1,2})[_\.](\d{1,2})(?:[_\.](\d+))?'     os_replacement: 'iOS'+  - regex: '\((iOS);'    ##########   # Apple TV@@ -954,6 +1077,12 @@   - regex: '(WebTV)/(\d+).(\d+)'    ##########+  # Chromecast+  ##########+  - regex: '(CrKey)(?:[/](\d+)\.(\d+)(?:\.(\d+))?)?'+    os_replacement: 'Chromecast'++  ##########   # Misc mobile   ##########   - regex: '(hpw|web)OS/(\d+)\.(\d+)(?:\.(\d+))?'@@ -974,20 +1103,23 @@   - regex: '\((Bada);'    # just os-  - regex: '(Windows|Android|WeTab|Maemo)'+  - regex: '(Windows|Android|WeTab|Maemo|Web0S)'   - regex: '(Ubuntu|Kubuntu|Arch Linux|CentOS|Slackware|Gentoo|openSUSE|SUSE|Red Hat|Fedora|PCLinuxOS|Mageia|(?:Free|Open|Net|\b)BSD)'   # Linux + Kernel Version   - regex: '(Linux)(?:[ /](\d+)\.(\d+)(?:\.(\d+))?)?'   - regex: 'SunOS'     os_replacement: 'Solaris' +  # Roku Digital-Video-Players https://www.roku.com/+  - regex: '^(Roku)/DVP-(\d+)\.(\d+)'+ device_parsers:    #########   # Mobile Spiders   # Catch the mobile crawler before checking for iPhones / Androids.   #########-  - regex: '(?:(?:iPhone|Windows CE|Android).*(?:(?:Bot|Yeti)-Mobile|YRSpider|bots?/\d|(?:bot|spider)\.html)|AdsBot-Google-Mobile.*iPhone)'+  - regex: '(?:(?:iPhone|Windows CE|Windows Phone|Android).*(?:(?:Bot|Yeti)-Mobile|YRSpider|BingPreview|bots?/\d|(?:bot|spider)\.html)|AdsBot-Google-Mobile.*iPhone)'     regex_flag: 'i'     device_replacement: 'Spider'     brand_replacement: 'Spider'@@ -1881,6 +2013,10 @@     device_replacement: '$1'     brand_replacement: 'Google'     model_replacement: '$1'+  - regex: '; *(Pixel \w+) Build'+    device_replacement: '$1'+    brand_replacement: 'Google'+    model_replacement: '$1'    #########   # Gigabyte@@ -2033,7 +2169,7 @@     device_replacement: '$1'     brand_replacement: 'Huawei'     model_replacement: '$1'-  - regex: '; *([^;]+) Build/Huawei'+  - regex: '; *([^;]+) Build/(?:Huawei|HUAWEI)'     device_replacement: '$1'     brand_replacement: 'Huawei'     model_replacement: '$1'@@ -2049,7 +2185,7 @@     device_replacement: 'Huawei Ideos$1'     brand_replacement: 'Huawei'     model_replacement: 'Ideos$1'-  - regex: '; *(Orange Daytona|Pulse|Pulse Mini|Vodafone 858|C8500|C8600|C8650|C8660) Build'+  - regex: '; *(Orange Daytona|Pulse|Pulse Mini|Vodafone 858|C8500|C8600|C8650|C8660|Nexus 6P|ATH-.+?) Build[/ ]'     device_replacement: 'Huawei $1'     brand_replacement: 'Huawei'     model_replacement: '$1'@@ -2571,7 +2707,7 @@   # LG   # @ref: http://www.lg.com/uk/mobile   #########-  - regex: '; *(E[34][0-9]{2}|LS[6-8][0-9]{2}|VS[6-9][0-9]+[^;/]+|Nexus [45]|GT540f?|Optimus (?:2X|G|4X HD)|OptimusX4HD) *(?:Build|;)'+  - regex: '; *(E[34][0-9]{2}|LS[6-8][0-9]{2}|VS[6-9][0-9]+[^;/]+|Nexus 4|Nexus 5X?|GT540f?|Optimus (?:2X|G|4X HD)|OptimusX4HD) *(?:Build|;)'     device_replacement: '$1'     brand_replacement: 'LG'     model_replacement: '$1'@@ -2591,6 +2727,10 @@     device_replacement: '$1 $2'     brand_replacement: 'LG'     model_replacement: '$2'+  - regex: '(Web0S); Linux/(SmartTV)'+    device_replacement: 'LG $1 $2'+    brand_replacement: 'LG'+    model_replacement: '$1 $2'    #########   # Malata@@ -2964,6 +3104,19 @@     model_replacement: '$1'    #########+  # OnePlus+  # @ref https://oneplus.net/+  #########+  - regex: '; (ONE [a-zA-Z]\d+) Build/'+    device_replacement: 'OnePlus $1'+    brand_replacement: 'OnePlus'+    model_replacement: '$1'+  - regex: '; (ONEPLUS [a-zA-Z]\d+) Build/'+    device_replacement: 'OnePlus $1'+    brand_replacement: 'OnePlus'+    model_replacement: '$1'++  #########   # Orion   # @ref: http://www.orion.ua/en/products/computer-products/tablet-pcs.html   #########@@ -3204,6 +3357,15 @@     model_replacement: '$1'    #########+  # RCA+  # @ref: http://rcamobilephone.com/+  #########+  - regex: '; (RCT\w+) Build/'+    device_replacement: '$1'+    brand_replacement: 'RCA'+    model_replacement: '$1'++  #########   # Rockchip   # @ref: http://www.rock-chips.com/a/cn/product/index.html   # @note: manufacturer sells chipsets - I assume that these UAs are dev-boards@@ -3841,7 +4003,7 @@   # XiaoMi   # @ref: http://www.xiaomi.com/event/buyphone   #########-  - regex: '; *((MI|HM|MI-ONE|Redmi)[ -](NOTE |Note )?[^;/]*) Build/'+  - regex: '; *((MI|HM|MI-ONE|Redmi)[ -](NOTE |Note )?[^;/]*) (Build|MIUI)/'     device_replacement: 'XiaoMi $1'     brand_replacement: 'XiaoMi'     model_replacement: '$1'@@ -4108,7 +4270,7 @@   #########   # Noka Windows Phones   #########-  - regex: 'Windows Phone [^;]+; .*?IEMobile/[^;\)]+[;\)] ?(?:ARM; ?Touch; ?|Touch; ?)?(?:NOKIA|Nokia)[^;]*; *(?:NOKIA ?|Nokia ?|LUMIA ?|[Ll]umia ?)*(\d{3,}[^;\)]*)'+  - regex: 'Windows Phone [^;]+; .*?IEMobile/[^;\)]+[;\)] ?(?:ARM; ?Touch; ?|Touch; ?)?(?:rv:11; )?(?:NOKIA|Nokia)[^;]*; *(?:NOKIA ?|Nokia ?|LUMIA ?|[Ll]umia ?)*(\d{3,}[^;\)]*)'     device_replacement: 'Lumia $1'     brand_replacement: 'Nokia'     model_replacement: 'Lumia $1'@@ -4286,10 +4448,10 @@   #   cannot determine specific device type from ua string. (3g, 3gs, 4, etc)   ##########   # @note: on some ua the device can be identified e.g. iPhone5,1-  - regex: '((?:iPhone|iPad|iPod)\d+,\d+)'+  - regex: '(iPhone|iPad|iPod)(\d+,\d+)'     device_replacement: '$1'     brand_replacement: 'Apple'-    model_replacement: '$1'+    model_replacement: '$1$2'   # @note: iPad needs to be before iPhone   - regex: '(iPad)(?:;| Simulator;)'     device_replacement: '$1'@@ -4308,6 +4470,12 @@     device_replacement: '$1$2,$3'     brand_replacement: 'Apple'     model_replacement: '$1$2,$3'+  # @note: newer desktop applications don't show device info+  # This is here so as to not have them recorded as iOS-Device+  - regex: 'CFNetwork/.* Darwin/\d+\.\d+\.\d+ \(x86_64\)'+    device_replacement: 'Mac'+    brand_replacement: 'Apple'+    model_replacement: 'Mac'   # @note: iOS applications do not show device info   - regex: 'CFNetwork/.* Darwin/\d'     device_replacement: 'iOS-Device'@@ -4573,6 +4741,11 @@   ##########   # Samsung   ##########+  # Samsung Smart-TV+  - regex: '(SMART-TV); .* Tizen '+    device_replacement: 'Samsung $1'+    brand_replacement: 'Samsung'+    model_replacement: '$1'   # Samsung Symbian Devices   - regex: 'SymbianOS/9\.\d.* Samsung[/\-]([A-Za-z0-9 \-]+)'     device_replacement: 'Samsung $1'@@ -4663,27 +4836,27 @@   #########   # Android General Device Matching (far from perfect)   #########-  - regex: 'Android[\- ][\d]+\.[\d]+; [A-Za-z]{2}\-[A-Za-z]{0,2}; WOWMobile (.+) Build'+  - regex: 'Android[\- ][\d]+\.[\d]+; [A-Za-z]{2}\-[A-Za-z]{0,2}; WOWMobile (.+) Build[/ ]'     brand_replacement: 'Generic_Android'     model_replacement: '$1'-  - regex: 'Android[\- ][\d]+\.[\d]+\-update1; [A-Za-z]{2}\-[A-Za-z]{0,2} *; *(.+?) Build'+  - regex: 'Android[\- ][\d]+\.[\d]+\-update1; [A-Za-z]{2}\-[A-Za-z]{0,2} *; *(.+?) Build[/ ]'     brand_replacement: 'Generic_Android'     model_replacement: '$1'-  - regex: 'Android[\- ][\d]+(?:\.[\d]+){1,2}; *[A-Za-z]{2}[_\-][A-Za-z]{0,2}\-? *; *(.+?) Build'+  - regex: 'Android[\- ][\d]+(?:\.[\d]+){1,2}; *[A-Za-z]{2}[_\-][A-Za-z]{0,2}\-? *; *(.+?) Build[/ ]'     brand_replacement: 'Generic_Android'     model_replacement: '$1'-  - regex: 'Android[\- ][\d]+(?:\.[\d]+){1,2}; *[A-Za-z]{0,2}\- *; *(.+?) Build'+  - regex: 'Android[\- ][\d]+(?:\.[\d]+){1,2}; *[A-Za-z]{0,2}\- *; *(.+?) Build[/ ]'     brand_replacement: 'Generic_Android'     model_replacement: '$1'   # No build info at all - "Build" follows locale immediately-  - regex: 'Android[\- ][\d]+(?:\.[\d]+){1,2}; *[a-z]{0,2}[_\-]?[A-Za-z]{0,2};? Build'+  - regex: 'Android[\- ][\d]+(?:\.[\d]+){1,2}; *[a-z]{0,2}[_\-]?[A-Za-z]{0,2};? Build[/ ]'     device_replacement: 'Generic Smartphone'     brand_replacement: 'Generic'     model_replacement: 'Smartphone'-  - regex: 'Android[\- ][\d]+(?:\.[\d]+){1,2}; *\-?[A-Za-z]{2}; *(.+?) Build'+  - regex: 'Android[\- ][\d]+(?:\.[\d]+){1,2}; *\-?[A-Za-z]{2}; *(.+?) Build[/ ]'     brand_replacement: 'Generic_Android'     model_replacement: '$1'-  - regex: 'Android[\- ][\d]+(?:\.[\d]+){1,2}(?:;.*)?; *(.+?) Build'+  - regex: 'Android[\- ][\d]+(?:\.[\d]+){1,2}(?:;.*)?; *(.+?) Build[/ ]'     brand_replacement: 'Generic_Android'     model_replacement: '$1' @@ -4700,6 +4873,10 @@   - regex: '(WebTV)/\d+.\d+'     brand_replacement: 'Generic_Inettv'     model_replacement: '$1'+  # Roku Digital-Video-Players https://www.roku.com/+  - regex: '^(Roku)/DVP-\d+\.\d+'+    brand_replacement: 'Generic_Inettv'+    model_replacement: '$1'    ##########   # Generic Tablet@@ -4726,7 +4903,7 @@   ##########   # Spiders (this is hack...)   ##########-  - regex: '(bot|zao|borg|DBot|oegp|silk|Xenu|zeal|^NING|CCBot|crawl|htdig|lycos|slurp|teoma|voila|yahoo|Sogou|CiBra|Nutch|^Java/|^JNLP/|Daumoa|Genieo|ichiro|larbin|pompos|Scrapy|snappy|speedy|spider|msnbot|msrbot|vortex|^vortex|crawler|favicon|indexer|Riddler|scooter|scraper|scrubby|WhatWeb|WinHTTP|bingbot|openbot|gigabot|furlbot|polybot|seekbot|^voyager|archiver|Icarus6j|mogimogi|Netvibes|blitzbot|altavista|charlotte|findlinks|Retreiver|TLSProber|WordPress|SeznamBot|ProoXiBot|wsr\-agent|Squrl Java|EtaoSpider|PaperLiBot|SputnikBot|A6\-Indexer|netresearch|searchsight|baiduspider|YisouSpider|ICC\-Crawler|http%20client|Python-urllib|dataparksearch|converacrawler|Screaming Frog|AppEngine-Google|YahooCacheSystem|fast\-webcrawler|Sogou Pic Spider|semanticdiscovery|Innovazion Crawler|facebookexternalhit|Google.*/\+/web/snippet|Google-HTTP-Java-Client|BlogBridge|IlTrovatore-Setaccio|InternetArchive|GomezAgent|WebThumbnail|heritrix|NewsGator|PagePeeker|Reaper|ZooShot|holmes)'+  - regex: '(bot|zao|borg|DBot|oegp|silk|Xenu|zeal|^NING|CCBot|crawl|htdig|lycos|slurp|teoma|voila|yahoo|Sogou|CiBra|Nutch|^Java/|^JNLP/|Daumoa|Genieo|ichiro|larbin|pompos|Scrapy|snappy|speedy|spider|msnbot|msrbot|vortex|^vortex|crawler|favicon|indexer|Riddler|scooter|scraper|scrubby|WhatWeb|WinHTTP|bingbot|BingPreview|openbot|gigabot|furlbot|polybot|seekbot|^voyager|archiver|Icarus6j|mogimogi|Netvibes|blitzbot|altavista|charlotte|findlinks|Retreiver|TLSProber|WordPress|SeznamBot|ProoXiBot|wsr\-agent|Squrl Java|EtaoSpider|PaperLiBot|SputnikBot|A6\-Indexer|netresearch|searchsight|baiduspider|YisouSpider|ICC\-Crawler|http%20client|Python-urllib|dataparksearch|converacrawler|Screaming Frog|AppEngine-Google|YahooCacheSystem|fast\-webcrawler|Sogou Pic Spider|semanticdiscovery|Innovazion Crawler|facebookexternalhit|Google.*/\+/web/snippet|Google-HTTP-Java-Client|BlogBridge|IlTrovatore-Setaccio|InternetArchive|GomezAgent|WebThumbnail|heritrix|NewsGator|PagePeeker|Reaper|ZooShot|holmes|NL-Crawler|Pingdom|StatusCake|WhatsApp|masscan|Google Web Preview|Qwantify)'     regex_flag: 'i'     device_replacement: 'Spider'     brand_replacement: 'Spider'
+ deps/uap-core/test_resources/opera_mini_user_agent_strings.yaml view
@@ -0,0 +1,1224 @@+# Additional tests for opera mini detection.+# List of user agent strings and corresponding versions is taken from http://www.useragentstring.com/pages/Opera%20Mini/+# Some user agent string are from http://www.webapps-online.com/online-tools/user-agent-strings/dv/plugin55599/opera-mini++test_cases:++  - user_agent_string: 'Opera/9.80 (J2ME/MIDP; Opera Mini/9.80 (S60; SymbOS; Opera Mobi/23.348; U; en) Presto/2.5.25 Version/10.54'+    family: 'Opera Mini'+    major: '9'+    minor: '80'+    patch:++  - user_agent_string: 'Opera/9.80 (J2ME/MIDP; Opera Mini/9.80 (S60; SymbOS; Opera Mobi/23.334; U; id) Presto/2.5.25 Version/10.54'+    family: 'Opera Mini'+    major: '9'+    minor: '80'+    patch:++  - user_agent_string: 'Opera/9.80 (J2ME/MIDP; Opera Mini/9.80 (J2ME/23.377; U; en) Presto/2.5.25 Version/10.54'+    family: 'Opera Mini'+    major: '9'+    minor: '80'+    patch:++  - user_agent_string: 'Opera/9.80 (J2ME/MIDP; Opera Mini/9.80 (J2ME/22.478; U; en) Presto/2.5.25 Version/10.54'+    family: 'Opera Mini'+    major: '9'+    minor: '80'+    patch:++  - user_agent_string: 'Opera/9.80 (J2ME/MIDP; Opera Mini/9 (Compatible; MSIE:9.0; iPhone; BlackBerry9700; AppleWebKit/24.746; U; en) Presto/2.5.25 Version/10.54'+    family: 'Opera Mini'+    major: '9'+    minor:+    patch:++  - user_agent_string: 'Opera/9.80 (Android; Opera Mini/7.6.35766/35.5706; U; en) Presto/2.8.119 Version/11.10'+    family: 'Opera Mini'+    major: '7'+    minor: '6'+    patch: '35766'++  - user_agent_string: 'Opera/9.80 (Android; Opera Mini/7.5.33361/31.1350; U; en) Presto/2.8.119 Version/11.10'+    family: 'Opera Mini'+    major: '7'+    minor: '5'+    patch: '33361'++  - user_agent_string: 'Opera/9.80 (Android; Opera Mini/7.29530/27.1407; U; en) Presto/2.8.119 Version/11.10'+    family: 'Opera Mini'+    major: '7'+    minor: '29530'+    patch:++  - user_agent_string: 'Opera/9.80 (iPhone; Opera Mini/7.1.32694/27.1407; U; en) Presto/2.8.119 Version/11.10'+    family: 'Opera Mini'+    major: '7'+    minor: '1'+    patch: '32694'++  - user_agent_string: 'Opera/9.80 (iPad; Opera Mini/7.1.32694/27.1407; U; en) Presto/2.8.119 Version/11.10'+    family: 'Opera Mini'+    major: '7'+    minor: '1'+    patch: '32694'++  - user_agent_string: 'Opera/9.80 (Series 60; Opera Mini/7.1.32444/35.5706; U; en) Presto/2.8.119 Version/11.10'+    family: 'Opera Mini'+    major: '7'+    minor: '1'+    patch: '32444'++  - user_agent_string: 'Opera/9.80 (Series 60; Opera Mini/7.1.32444/35.2883; U; ru) Presto/2.8.119 Version/11.10'+    family: 'Opera Mini'+    major: '7'+    minor: '1'+    patch: '32444'++  - user_agent_string: 'Opera/9.80 (J2ME/MIDP; Opera Mini/7.1.32052/35.5706; U; id) Presto/2.8.119 Version/11.10'+    family: 'Opera Mini'+    major: '7'+    minor: '1'+    patch: '32052'++  - user_agent_string: 'Opera/9.80 (iPhone; Opera Mini/7.0.4/28.2555; U; fr) Presto/2.8.119 Version/11.10'+    family: 'Opera Mini'+    major: '7'+    minor: '0'+    patch: '4'++  - user_agent_string: 'Opera/9.80 (Android; Opera Mini/7.0.29952/28.2075; U; es) Presto/2.8.119 Version/11.10'+    family: 'Opera Mini'+    major: '7'+    minor: '0'+    patch: '29952'++  - user_agent_string: 'Opera/9.80 (Series 60; Opera Mini/6.5.29702/28.2647; U; es) Presto/2.8.119 Version/11.10'+    family: 'Opera Mini'+    major: '6'+    minor: '5'+    patch: '29702'++  - user_agent_string: 'Opera/9.80 (J2ME/MIDP; Opera Mini/6.5.26955/27.1407; U; en) Presto/2.8.119 Version/11.10'+    family: 'Opera Mini'+    major: '6'+    minor: '5'+    patch: '26955'++  - user_agent_string: 'Opera/9.80 (J2ME/MIDP; Opera Mini/6.24288/25.729; U; en) Presto/2.5.25 Version/10.54'+    family: 'Opera Mini'+    major: '6'+    minor: '24288'+    patch:++  - user_agent_string: 'Opera/9.80 (BlackBerry; Opera Mini/6.24209/27.1366; U; en) Presto/2.8.119 Version/11.10'+    family: 'Opera Mini'+    major: '6'+    minor: '24209'+    patch:++  - user_agent_string: 'Opera/9.80 (Series 60; Opera Mini/6.24096/25.657; U; id) Presto/2.5.25 Version/10.54'+    family: 'Opera Mini'+    major: '6'+    minor: '24096'+    patch:++  - user_agent_string: 'Opera/9.80 (J2ME/MIDP; Opera Mini/6.24093/26.1305; U; en) Presto/2.8.119 Version/10.54'+    family: 'Opera Mini'+    major: '6'+    minor: '24093'+    patch:++  - user_agent_string: 'Opera/9.80 (J2ME/MIDP; Opera Mini/6.24093/25.657; U; id) Presto/2.5.25 Version/10.54'+    family: 'Opera Mini'+    major: '6'+    minor: '24093'+    patch:++  - user_agent_string: 'Opera/9.80 (Series 60; Opera Mini/6.1.25759/25.872; U; en) Presto/2.5.25 Version/10.54'+    family: 'Opera Mini'+    major: '6'+    minor: '1'+    patch: '25759'++  - user_agent_string: 'Opera/9.80 (J2ME/MIDP; Opera Mini/6.1.25378/25.677; U; th) Presto/2.5.25 Version/10.54'+    family: 'Opera Mini'+    major: '6'+    minor: '1'+    patch: '25378'++  - user_agent_string: 'Opera/9.80 (Android; Opera Mini/6.1.25375/25.657; U; es) Presto/2.5.25 Version/10.54'+    family: 'Opera Mini'+    major: '6'+    minor: '1'+    patch: '25375'++  - user_agent_string: 'Opera/9.80 (Series 60; Opera Mini/6.0.24455/28.2766; U; en) Presto/2.8.119 Version/11.10'+    family: 'Opera Mini'+    major: '6'+    minor: '0'+    patch: '24455'++  - user_agent_string: 'Opera/9.80 (Android;Opera Mini/6.0.24212/24.746 U;en) Presto/2.5.25 Version/10.5454'+    family: 'Opera Mini'+    major: '6'+    minor: '0'+    patch: '24212'++  - user_agent_string: 'Opera/9.80 (Series 60; Opera Mini/6.0.24095/24.760; U; en) Presto/2.5.25 Version/10.54'+    family: 'Opera Mini'+    major: '6'+    minor: '0'+    patch: '24095'++  - user_agent_string: 'Opera/9.80 (Series 60; Opera Mini/6.0.24095/24.741; U; zh) Presto/2.5.25 Version/10.54'+    family: 'Opera Mini'+    major: '6'+    minor: '0'+    patch: '24095'++  - user_agent_string: 'Opera/9.80 (Series 60; Opera Mini/5.1.22784/23.334; U; en) Presto/2.5.25 Version/10.54'+    family: 'Opera Mini'+    major: '5'+    minor: '1'+    patch: '22784'++  - user_agent_string: 'Opera/9.80 (Series 60; Opera Mini/5.1.22784/22.394; U; en) Presto/2.5.25 Version/10.54'+    family: 'Opera Mini'+    major: '5'+    minor: '1'+    patch: '22784'++  - user_agent_string: 'Opera/9.80 (Series 60; Opera Mini/5.1.22784/22.387; U; en) Presto/2.5.25 Version/10.54'+    family: 'Opera Mini'+    major: '5'+    minor: '1'+    patch: '22784'++  - user_agent_string: 'Opera/9.80 (Series 60; Opera Mini/5.1.22783/23.334; U; en) Presto/2.5.25 Version/10.54'+    family: 'Opera Mini'+    major: '5'+    minor: '1'+    patch: '22783'++  - user_agent_string: 'Opera/9.80 (Series 60; Opera Mini/5.1.22783/22.478; U; id) Presto/2.5.25 Version/10.54'+    family: 'Opera Mini'+    major: '5'+    minor: '1'+    patch: '22783'++  - user_agent_string: 'Opera/9.80 (Series 60; Opera Mini/5.1.22783/22.478; U; en) Presto/2.5.25 Version/10.54'+    family: 'Opera Mini'+    major: '5'+    minor: '1'+    patch: '22783'++  - user_agent_string: 'Opera/9.80 (Android; Opera Mini/5.1.22460/23.334; U; en) Presto/2.5.25 Version/10.54'+    family: 'Opera Mini'+    major: '5'+    minor: '1'+    patch: '22460'++  - user_agent_string: 'Opera/9.80 (Android; Opera Mini/5.1.22460/22.478; U; fr) Presto/2.5.25 Version/10.54'+    family: 'Opera Mini'+    major: '5'+    minor: '1'+    patch: '22460'++  - user_agent_string: 'Opera/9.80 (Android; Opera Mini/5.1.22460/22.414; U; de) Presto/2.5.25 Version/10.54'+    family: 'Opera Mini'+    major: '5'+    minor: '1'+    patch: '22460'++  - user_agent_string: 'Opera/9.80 (Series 60; Opera Mini/5.1.22396/22.478; U; id) Presto/2.5.25 Version/10.54'+    family: 'Opera Mini'+    major: '5'+    minor: '1'+    patch: '22396'++  - user_agent_string: 'Opera/9.80 (BlackBerry; Opera Mini/5.1.22303/22.387; U; en) Presto/2.5.25 Version/10.54'+    family: 'Opera Mini'+    major: '5'+    minor: '1'+    patch: '22303'++  - user_agent_string: 'Opera/9.80 (J2ME/MIDP; Opera Mini/5.1.22296; BlackBerry9800; U; AppleWebKit/23.370; U; en) Presto/2.5.25 Version/10.54'+    family: 'Opera Mini'+    major: '5'+    minor: '1'+    patch: '22296'++  - user_agent_string: 'Opera/9.80 (J2ME/MIDP; Opera Mini/5.1.22296/22.87; U; fr) Presto/2.5.25'+    family: 'Opera Mini'+    major: '5'+    minor: '1'+    patch: '22296'++  - user_agent_string: 'Opera/9.80 (J2ME/MIDP; Opera Mini/5.1.22296/22.87; U; en) Presto/2.5.25'+    family: 'Opera Mini'+    major: '5'+    minor: '1'+    patch: '22296'++  - user_agent_string: 'Opera/9.80 (J2ME/MIDP; Opera Mini/5.1.22296/22.478; U; fr) Presto/2.5.25 Version/10.54'+    family: 'Opera Mini'+    major: '5'+    minor: '1'+    patch: '22296'++  - user_agent_string: 'Opera/9.80 (J2ME/MIDP; Opera Mini/5.1.22296/22.387; U; fr) Presto/2.5.25 Version/10.54'+    family: 'Opera Mini'+    major: '5'+    minor: '1'+    patch: '22296'++  - user_agent_string: 'Opera/9.50 (J2ME/MIDP; Opera Mini/5.1.21965/20.2513; U; en)'+    family: 'Opera Mini'+    major: '5'+    minor: '1'+    patch: '21965'++  - user_agent_string: 'Opera/9.80 (Windows Mobile; Opera Mini/5.1.21595/25.657; U; en) Presto/2.5.25 Version/10.54'+    family: 'Opera Mini'+    major: '5'+    minor: '1'+    patch: '21595'++  - user_agent_string: 'Opera/9.80 (Windows Mobile; Opera Mini/5.1.21594/22.387; U; ru) Presto/2.5.25 Version/10.54'+    family: 'Opera Mini'+    major: '5'+    minor: '1'+    patch: '21594'++  - user_agent_string: 'Opera/9.80 (J2ME/MIDP; Opera Mini/5.1.21415/22.387; U; en) Presto/2.5.25 Version/10.54'+    family: 'Opera Mini'+    major: '5'+    minor: '1'+    patch: '21415'++  - user_agent_string: 'Opera/10.61 (J2ME/MIDP; Opera Mini/5.1.21219/19.999; en-US; rv:1.9.3a5) WebKit/534.5 Presto/2.6.30'+    family: 'Opera Mini'+    major: '5'+    minor: '1'+    patch: '21219'++  - user_agent_string: 'Opera/9.80(J2ME/MIDP; Opera Mini/5.1.21214/22.414; U; en) Presto/2.5.25 Version/10.54'+    family: 'Opera Mini'+    major: '5'+    minor: '1'+    patch: '21214'++  - user_agent_string: 'Opera/9.80 (J2ME/MIDP; Opera Mini/5.1.21214/22.414; U; ro) Presto/2.5.25 Version/10.54'+    family: 'Opera Mini'+    major: '5'+    minor: '1'+    patch: '21214'++  - user_agent_string: 'Opera/9.80 (J2ME/MIDP; Opera Mini/5.1.21214/22.387; U; id) Presto/2.5.25 Version/10.54'+    family: 'Opera Mini'+    major: '5'+    minor: '1'+    patch: '21214'++  - user_agent_string: 'Opera/9.80 (Android; Opera Mini/5.1.21126/19.892; U; de) Presto/2.5.25'+    family: 'Opera Mini'+    major: '5'+    minor: '1'+    patch: '21126'++  - user_agent_string: 'Opera/9.80 (J2ME/MIDP; Opera Mini/5.1.21051/27.1573; U; en) Presto/2.8.119 Version/11.10'+    family: 'Opera Mini'+    major: '5'+    minor: '1'+    patch: '21051'++  - user_agent_string: 'Opera/9.80 (J2ME/MIDP; Opera Mini/5.1.21051/23.377; U; id) Presto/2.5.25 Version/10.54'+    family: 'Opera Mini'+    major: '5'+    minor: '1'+    patch: '21051'++  - user_agent_string: 'Opera/9.80 (J2ME/MIDP; Opera Mini/5.1.21051/20.2477; U; en) Presto/2.5.25'+    family: 'Opera Mini'+    major: '5'+    minor: '1'+    patch: '21051'++  - user_agent_string: 'Opera/9.80 (J2ME/MIDP; Opera Mini/5.0.3521/886; U; en) Presto/2.4.15'+    family: 'Opera Mini'+    major: '5'+    minor: '0'+    patch: '3521'++  - user_agent_string: 'Opera/9.80 (J2ME/MIDP; Opera Mini/5.0.3521/22.414; U; en) Presto/2.5.25 Version/10.54'+    family: 'Opera Mini'+    major: '5'+    minor: '0'+    patch: '3521'++  - user_agent_string: 'Opera/9.80 (J2ME/MIDP; Opera Mini/5.0.3521/18.684; U; en) Presto/2.4.15'+    family: 'Opera Mini'+    major: '5'+    minor: '0'+    patch: '3521'++  - user_agent_string: 'Opera/9.80 (J2ME/MIDP; Opera Mini/5.0.22349/37.6584; U; en) Presto/2.12.423 Version/12.16'+    family: 'Opera Mini'+    major: '5'+    minor: '0'+    patch: '22349'++  - user_agent_string: 'Opera/9.80 (J2ME/MIDP; Opera Mini/5.0.20873/19.916; U; en) Presto/2.5.25'+    family: 'Opera Mini'+    major: '5'+    minor: '0'+    patch: '20873'++  - user_agent_string: 'Opera/9.80 (J2ME/MIDP; Opera Mini/5.0.19693Mod.by.Handler/23.390; U; en) Presto/2.5.25 Version/10.54'+    family: 'Opera Mini'+    major: '5'+    minor: '0'+    patch: '19693'++  - user_agent_string: 'Opera/9.80 (J2ME/MIDP; Opera Mini/5.0.19693Mod.by.Handler/18.794; U; id) Presto/2.4.15'+    family: 'Opera Mini'+    major: '5'+    minor: '0'+    patch: '19693'++  - user_agent_string: 'Opera/9.80 (J2ME/MIDP; Opera Mini/5.0.19693/870; U; en) Presto/2.4.15'+    family: 'Opera Mini'+    major: '5'+    minor: '0'+    patch: '19693'++  - user_agent_string: 'Opera/9.80 (J2ME/MIDP; Opera Mini/5.0.19683/1278; U; ko) Presto/2.2.0'+    family: 'Opera Mini'+    major: '5'+    minor: '0'+    patch: '19683'++  - user_agent_string: 'Opera/9.80 (J2ME/MIDP; Opera Mini/5.0.18741Mod.by.Handler/22.414; U; en) Presto/2.5.25 Version/10.54'+    family: 'Opera Mini'+    major: '5'+    minor: '0'+    patch: '18741'++  - user_agent_string: 'Opera/9.80 (J2ME/MIDP; Opera Mini/5.0.18741/886; U; id) Presto/2.4.15'+    family: 'Opera Mini'+    major: '5'+    minor: '0'+    patch: '18741'++  - user_agent_string: 'Opera/9.80 (J2ME/MIDP; Opera Mini/5.0.18741/886; U; en) Presto/2.4.15'+    family: 'Opera Mini'+    major: '5'+    minor: '0'+    patch: '18741'++  - user_agent_string: 'Opera/9.80 (J2ME/MIDP; Opera Mini/5.0.18741/870; U; fr) Presto/2.4.15'+    family: 'Opera Mini'+    major: '5'+    minor: '0'+    patch: '18741'++  - user_agent_string: 'Opera/9.80 (J2ME/MIDP; Opera Mini/5.0.18741/870; U; en) Presto/2.4.15'+    family: 'Opera Mini'+    major: '5'+    minor: '0'+    patch: '18741'++  - user_agent_string: 'Opera/9.80 (J2ME/MIDP; Opera Mini/5.0.18741/18.794; U; en) Presto/2.4.15'+    family: 'Opera Mini'+    major: '5'+    minor: '0'+    patch: '18741'++  - user_agent_string: 'Opera/9.80 (J2ME/MIDP; Opera Mini/5.0.18635Mod.by.Handler/23.377; U; en) Presto/2.5.25 Version/10.54'+    family: 'Opera Mini'+    major: '5'+    minor: '0'+    patch: '18635'++  - user_agent_string: 'Opera/9.80 (Windows NT 5.1; U; Opera/9.80 (J2ME/MIDP; Opera Mini/5.0.18635/1030; U; en) Presto/2.4.15; ru) Presto/2.8.99 Version/11.10'+    family: 'Opera Mini'+    major: '5'+    minor: '0'+    patch: '18635'++  - user_agent_string: 'Opera/9.80 (J2ME/MIDP; Opera Mini/5.0.18635/886; U; en) Presto/2.4.15'+    family: 'Opera Mini'+    major: '5'+    minor: '0'+    patch: '18635'++  - user_agent_string: 'Opera/9.80 (J2ME/MIDP; Opera Mini/5.0.17443/886; U; en) Presto/2.4.15'+    family: 'Opera Mini'+    major: '5'+    minor: '0'+    patch: '17443'++  - user_agent_string: 'Opera/9.80 (J2ME/MIDP; Opera Mini/5.0.17443/20.2477; U; en) Presto/2.5.25'+    family: 'Opera Mini'+    major: '5'+    minor: '0'+    patch: '17443'++  - user_agent_string: 'Opera/9.80 (J2ME/MIDP; Opera Mini/5.0.17381/886; U; en) Presto/2.4.15'+    family: 'Opera Mini'+    major: '5'+    minor: '0'+    patch: '17381'++  - user_agent_string: 'Opera/9.80 (J2ME/MIDP; Opera Mini/5.0.16823Mod.by.Handler/22.387; U; en) Presto/2.5.25 Version/10.54'+    family: 'Opera Mini'+    major: '5'+    minor: '0'+    patch: '16823'++  - user_agent_string: 'Opera/9.80 (J2ME/MIDP; Opera Mini/5.0.16823/870; U; en) Presto/2.4.15'+    family: 'Opera Mini'+    major: '5'+    minor: '0'+    patch: '16823'++  - user_agent_string: 'Opera/9.80 (J2ME/MIDP; Opera Mini/5.0.15650/20.2479; U; en) Presto/2.5.25'+    family: 'Opera Mini'+    major: '5'+    minor: '0'+    patch: '15650'++  - user_agent_string: 'Opera/9.80 (J2ME/iPhone;Opera Mini/5.0.019802/886; U; ja)Presto/2.4.15'+    family: 'Opera Mini'+    major: '5'+    minor: '0'+    patch: '019802'++  - user_agent_string: 'Opera/9.80 (J2ME/iPhone;Opera Mini/5.0.019802/886; U; ja)Presto/ 2.4.15'+    family: 'Opera Mini'+    major: '5'+    minor: '0'+    patch: '019802'++  - user_agent_string: 'Opera/9.80 (J2ME/iPhone;Opera Mini/5.0.019802/886; U; ja) Presto/2.4.15'+    family: 'Opera Mini'+    major: '5'+    minor: '0'+    patch: '019802'++  - user_agent_string: 'Opera/9.80 (iPhone; Opera Mini/5.0.019802/886; U; ja) Presto/2.4.15'+    family: 'Opera Mini'+    major: '5'+    minor: '0'+    patch: '019802'++  - user_agent_string: 'Opera/9.80 (iPhone; Opera Mini/5.0.019802/886; U; en) Presto/2.4.15'+    family: 'Opera Mini'+    major: '5'+    minor: '0'+    patch: '019802'++  - user_agent_string: 'Opera/9.80 (iPhone; Opera Mini/5.0.019802/22.414; U; de) Presto/2.5.25 Version/10.54'+    family: 'Opera Mini'+    major: '5'+    minor: '0'+    patch: '019802'++  - user_agent_string: 'Opera/9.80 (iPhone; Opera Mini/5.0.019802/18.738; U; en) Presto/2.4.15'+    family: 'Opera Mini'+    major: '5'+    minor: '0'+    patch: '019802'++  - user_agent_string: 'Opera/9.80 (iPhone; Opera Mini/5.0.0176/764; U; en) Presto/2.4.154.15'+    family: 'Opera Mini'+    major: '5'+    minor: '0'+    patch: '0176'++  - user_agent_string: 'Opera/9.80 (J2ME/MIDP; Opera Mini/5.0.0.862 Profile/24.743; U; en) Presto/2.5.25 Version/10.54'+    family: 'Opera Mini'+    major: '5'+    minor: '0'+    patch: '0'++  - user_agent_string: 'Opera/9.80 (J2ME/MIDP; Opera Mini/5.0.0.423 Profile/18.684; U; en) Presto/2.4.15'+    family: 'Opera Mini'+    major: '5'+    minor: '0'+    patch: '0'++  - user_agent_string: 'Opera/9.80 (J2ME/MIDP; Opera Mini/5.0.0.351 Profile/22.478; U; en) Presto/2.5.25 Version/10.54'+    family: 'Opera Mini'+    major: '5'+    minor: '0'+    patch: '0'++  - user_agent_string: 'Opera/9.80 (J2ME/MIDP; Opera Mini/5.0/870; U; en) Presto/2.4.15'+    family: 'Opera Mini'+    major: '5'+    minor: '0'+    patch:++  - user_agent_string: 'Opera/9.80 (J2ME/MIDP; Opera Mini/5.0(Windows; U; Windows NT 5.1; en-US)/23.390; U; en) Presto/2.5.25 Version/10.54'+    family: 'Opera Mini'+    major: '5'+    minor: '0'+    patch:++  - user_agent_string: 'Opera/9.80 (J2ME/MIDP; Opera Mini/5.0 (Windows; U; Windows NT 6.1; sv-SE) AppleWebKit/23.411; U; en) Presto/2.5.25 Version/10.54'+    family: 'Opera Mini'+    major: '5'+    minor: '0'+    patch:++  - user_agent_string: 'Opera/9.80 (J2ME/MIDP; Opera Mini/5.0 (Windows; U; Windows NT 6.1; rv:2.2) Gecko/24.838; U; id) Presto/2.5.25 Version/10.54'+    family: 'Opera Mini'+    major: '5'+    minor: '0'+    patch:++  - user_agent_string: 'Opera/9.80 (J2ME/MIDP; Opera Mini/5.0 (Windows; U; Windows NT 6.1; en-US) AppleWebKit/23.411; U; en) Presto/2.5.25 Version/10.54'+    family: 'Opera Mini'+    major: '5'+    minor: '0'+    patch:++  - user_agent_string: 'Opera/9.80 (J2ME/MIDP; Opera Mini/5.0 (Windows; U; Windows NT 6.1; en-US) AppleWebKit/22.478; U; en) Presto/2.5.25 Version/10.54'+    family: 'Opera Mini'+    major: '5'+    minor: '0'+    patch:++  - user_agent_string: 'Opera/9.80 (J2ME/MIDP; Opera Mini/5.0 (Windows; U; Windows NT 5.1; de; rv:1.9.2.3) Gecko/23.377; U; en) Presto/2.5.25 Version/10.54'+    family: 'Opera Mini'+    major: '5'+    minor: '0'+    patch:++  - user_agent_string: 'Opera/9.80 (J2ME/MIDP; Opera Mini/5.0 (Windows NT 6.1; WOW64) AppleWebKit/23.411; U; en) Presto/2.5.25 Version/10.54'+    family: 'Opera Mini'+    major: '5'+    minor: '0'+    patch:++  - user_agent_string: 'Opera/9.80 (J2ME/MIDP; Opera Mini/5.0 (SymbianOS/24.838; U; en) Presto/2.5.25 Version/10.54'+    family: 'Opera Mini'+    major: '5'+    minor: '0'+    patch:++  - user_agent_string: 'Opera/9.80 (J2ME/MIDP; Opera Mini/5.0 (Linux; U; Android 2.2; fr-lu; HTC Legend Build/24.838; U; en) Presto/2.5.25 Version/10.54'+    family: 'Opera Mini'+    major: '5'+    minor: '0'+    patch:++  - user_agent_string: 'Opera/9.80 (J2ME/MIDP; Opera Mini/5.0 (Linux; U; Android 2.2; en-sa; HTC_DesireHD_A9191 Build/24.741; U; en) Presto/2.5.25 Version/10.54'+    family: 'Opera Mini'+    major: '5'+    minor: '0'+    patch:++  - user_agent_string: 'Opera/9.80 (J2ME/MIDP; Opera Mini/5.0 (iPhone; U; xxxx like Mac OS X; en) AppleWebKit/24.838; U; en) Presto/2.5.25 Version/10.54'+    family: 'Opera Mini'+    major: '5'+    minor: '0'+    patch:++  - user_agent_string: 'Opera/9.80 (J2ME/MIDP; Opera Mini/5.0 (iPhone; U; fr; CPU iPhone OS 4_2_1 like Mac OS X; fr) AppleWebKit/23.405; U; en) Presto/2.5.25 Version/10.54'+    family: 'Opera Mini'+    major: '5'+    minor: '0'+    patch:++  - user_agent_string: 'Opera/9.80 (J2ME/MIDP; Opera Mini/5.0 (iPhone; U; CPU iPhone OS 3_0 like Mac OS X; en-us) AppleWebKit/23.411; U; en) Presto/2.5.25 Version/10.54'+    family: 'Opera Mini'+    major: '5'+    minor: '0'+    patch:++  - user_agent_string: 'Opera/9.80 (J2ME/MIDP; Opera Mini/5.0 (iPhone; U; CPU iPhone OS 3_0 like Mac OS X; en-us) AppleWebKit/23.377; U; en) Presto/2.5.25 Version/10.54'+    family: 'Opera Mini'+    major: '5'+    minor: '0'+    patch:++  - user_agent_string: 'Opera/9.80 (J2ME/MIDP; Opera Mini/5.0 (BlackBerry; U; BlackBerry9800; en-GB) AppleWebKit/24.783; U; en) Presto/2.5.25 Version/10.54'+    family: 'Opera Mini'+    major: '5'+    minor: '0'+    patch:++  - user_agent_string: 'Opera/9.80 (J2ME/MIDP; Opera Mini/5.0 (BlackBerry; U; BlackBerry 9800) AppleWebKit/24.783; U; es) Presto/2.5.25 Version/10.54'+    family: 'Opera Mini'+    major: '5'+    minor: '0'+    patch:++  - user_agent_string: 'Opera/9.80 (J2ME/MIDP; Opera Mini/4.5.33867/35.2883; U; en) Presto/2.8.119 Version/11.10'+    family: 'Opera Mini'+    major: '4'+    minor: '5'+    patch: '33867'++  - user_agent_string: 'Opera/9.80 (J2ME/MIDP; Opera Mini/4.4.Vista/19.916; U; en) Presto/2.5.25'+    family: 'Opera Mini'+    major: '4'+    minor: '4'+    patch:++  - user_agent_string: 'Opera/9.80 (J2ME/MIDP; Opera Mini/4.4.29476/27.1573; U; id) Presto/2.8.119 Version/11.10'+    family: 'Opera Mini'+    major: '4'+    minor: '4'+    patch: '29476'++  - user_agent_string: 'Opera/9.80 (J2ME/MIDP; Opera Mini/4.4.26736/28.2647; U; it) Presto/2.8.119 Version/11.10'+    family: 'Opera Mini'+    major: '4'+    minor: '4'+    patch: '26736'++  - user_agent_string: 'Opera/9.80 (J2ME/MIDP; Opera Mini/4.4.0.60 (Windows XP)/886; U; en) Presto/2.4.15'+    family: 'Opera Mini'+    major: '4'+    minor: '4'+    patch: '0'++  - user_agent_string: 'Opera/9.80 (J2ME/MIDP; Opera Mini/4.3.24214; iPhone; CPU iPhone OS 4_2_1 like Mac OS X; AppleWebKit/24.783; U; en) Presto/2.5.25 Version/10.54'+    family: 'Opera Mini'+    major: '4'+    minor: '3'+    patch: '24214'++  - user_agent_string: 'Opera/9.80 (J2ME/MIDP; Opera Mini/4.3.24214/27.1407; U; id) Presto/2.8.119 Version/11.10'+    family: 'Opera Mini'+    major: '4'+    minor: '3'+    patch: '24214'++  - user_agent_string: 'Opera/9.80 (J2ME/MIDP; Opera Mini/4.3.24214 (Windows; U; Windows NT 6.1) AppleWebKit/24.838; U; id) Presto/2.5.25 Version/10.54'+    family: 'Opera Mini'+    major: '4'+    minor: '3'+    patch: '24214'++  - user_agent_string: 'Opera/9.80 (J2ME/MIDP; Opera Mini/4.3.13337/25.657; U; ro) Presto/2.5.25 Version/10.54'+    family: 'Opera Mini'+    major: '4'+    minor: '3'+    patch: '13337'++  - user_agent_string: 'Opera/9.80 (J2ME/MIDP; Opera Mini/4.2.24721/30.3316; U; en) Presto/2.8.119 Version/11.10'+    family: 'Opera Mini'+    major: '4'+    minor: '2'+    patch: '24721'++  - user_agent_string: 'Opera/9.80 (J2ME/MIDP; Opera Mini/4.2.23453/28.2647; U; en) Presto/2.8.119 Version/11.10'+    family: 'Opera Mini'+    major: '4'+    minor: '2'+    patch: '23453'++  - user_agent_string: 'Opera/9.80 (J2ME/MIDP; Opera Mini/4.2.21465/22.478; U; id) Presto/2.5.25 Version/10.54'+    family: 'Opera Mini'+    major: '4'+    minor: '2'+    patch: '21465'++  - user_agent_string: 'Opera/9.80 (J2ME/MIDP; Opera Mini/4.2.21465/22.387; U; id) Presto/2.5.25 Version/10.54'+    family: 'Opera Mini'+    major: '4'+    minor: '2'+    patch: '21465'++  - user_agent_string: 'Opera/9.80 (J2ME/MIDP; Opera Mini/4.2.19634/23.333; U; en) Presto/2.5.25 Version/10.54'+    family: 'Opera Mini'+    major: '4'+    minor: '2'+    patch: '19634'++  - user_agent_string: 'Opera/9.80 (J2ME/MIDP; Opera Mini/4.2.18887/22.478; U; id) Presto/2.5.25 Version/10.54'+    family: 'Opera Mini'+    major: '4'+    minor: '2'+    patch: '18887'++  - user_agent_string: 'Opera/9.80 (J2ME/MIDP; Opera Mini/4.2.16320/29.3594; U; en) Presto/2.8.119 Version/11.10'+    family: 'Opera Mini'+    major: '4'+    minor: '2'+    patch: '16320'++  - user_agent_string: 'Opera/9.80 (J2ME/MIDP; Opera Mini/4.2.16007Mod.by.Handler/23.390; U; en) Presto/2.5.25 Version/10.54'+    family: 'Opera Mini'+    major: '4'+    minor: '2'+    patch: '16007'++  - user_agent_string: 'Opera/9.80 (J2ME/MIDP; Opera Mini/4.2.15410QUAIN/22.478; U; en) Presto/2.5.25 Version/10.54'+    family: 'Opera Mini'+    major: '4'+    minor: '2'+    patch: '15410'++  - user_agent_string: 'Opera/9.80 (J2ME/MIDP; Opera Mini/4.2.15410Mod.by.Handler/23.334; U; en) Presto/2.5.25 Version/10.54'+    family: 'Opera Mini'+    major: '4'+    minor: '2'+    patch: '15410'++  - user_agent_string: 'Opera/9.80 (J2ME/MIDP; Opera Mini/4.2.15410Mod.by.Handler/23.333; U; en) Presto/2.5.25 Version/10.54'+    family: 'Opera Mini'+    major: '4'+    minor: '2'+    patch: '15410'++  - user_agent_string: 'Opera/9.80 (J2ME/MIDP; Opera Mini/4.2.15410Mod.by.Handler/22.401; U; en) Presto/2.5.25 Version/10.54'+    family: 'Opera Mini'+    major: '4'+    minor: '2'+    patch: '15410'++  - user_agent_string: 'Opera/9.80 (J2ME/MIDP; Opera Mini/4.2.15410Mod.by.Handler/20.2485; U; en) Presto/2.5.25'+    family: 'Opera Mini'+    major: '4'+    minor: '2'+    patch: '15410'++  - user_agent_string: 'Opera/9.80 (J2ME/MIDP; Opera Mini/4.2.15410Mod.by.Handler/18.678; U; en) Presto/2.4.15'+    family: 'Opera Mini'+    major: '4'+    minor: '2'+    patch: '15410'++  - user_agent_string: 'Opera/9.60 (J2ME/MIDP;Opera Mini/4.2.15410Mod.by.Handler/503; U; en)Presto/2.2.0'+    family: 'Opera Mini'+    major: '4'+    minor: '2'+    patch: '15410'++  - user_agent_string: 'Opera/9.50 (J2ME/MIDP; Opera Mini/4.2.15410Mod.by.Handler/20.2590; U; en)'+    family: 'Opera Mini'+    major: '4'+    minor: '2'+    patch: '15410'++  - user_agent_string: 'Opera/9.80 (J2ME/MIDP; Opera Mini/4.2.15410/870; U; en) Presto/2.4.15'+    family: 'Opera Mini'+    major: '4'+    minor: '2'+    patch: '15410'++  - user_agent_string: 'Opera/9.80 (J2ME/MIDP; Opera Mini/4.2.15410/24.899; U; id) Presto/2.5.25 Version/10.54'+    family: 'Opera Mini'+    major: '4'+    minor: '2'+    patch: '15410'++  - user_agent_string: 'Opera/9.80 (J2ME/MIDP; Opera Mini/4.2.15410/22.394; U; en) Presto/2.5.25 Version/10.54'+    family: 'Opera Mini'+    major: '4'+    minor: '2'+    patch: '15410'++  - user_agent_string: 'Opera/9.80 (J2ME/MIDP; Opera Mini/4.2.15066/886; U; en) Presto/2.4.15'+    family: 'Opera Mini'+    major: '4'+    minor: '2'+    patch: '15066'++  - user_agent_string: 'Opera/9.80 (J2ME/MIDP; Opera Mini/4.2.14912mod.By.onome/22.401; U; en) Presto/2.5.25 Version/10.54'+    family: 'Opera Mini'+    major: '4'+    minor: '2'+    patch: '14912'++  - user_agent_string: 'Opera/9.80 (J2ME/MIDP; Opera Mini/4.2.14912Mod.by.Handler/24.783; U; id) Presto/2.5.25 Version/10.54'+    family: 'Opera Mini'+    major: '4'+    minor: '2'+    patch: '14912'++  - user_agent_string: 'Opera/9.80 (J2ME/MIDP; Opera Mini/4.2.14912Mod.by.Handler/23.377; U; id) Presto/2.5.25 Version/10.54'+    family: 'Opera Mini'+    major: '4'+    minor: '2'+    patch: '14912'++  - user_agent_string: 'Opera/9.80 (J2ME/MIDP; Opera Mini/4.2.14912Mod.By.www.9jamusic.cz.cc/22.387; U; en) Presto/2.5.25 Version/10.54'+    family: 'Opera Mini'+    major: '4'+    minor: '2'+    patch: '14912'++  - user_agent_string: 'Opera/9.80 (J2ME/MIDP; Opera Mini/4.2.14912/870; U; id) Presto/2.4.15'+    family: 'Opera Mini'+    major: '4'+    minor: '2'+    patch: '14912'++  - user_agent_string: 'Opera/9.80 (J2ME/MIDP; Opera Mini/4.2.14912/35.5706; U; id) Presto/2.8.119 Version/11.10'+    family: 'Opera Mini'+    major: '4'+    minor: '2'+    patch: '14912'++  - user_agent_string: 'Opera/9.80 (J2ME/MIDP; Opera Mini/4.2.14912/24.746; U; id) Presto/2.5.25 Version/10.54'+    family: 'Opera Mini'+    major: '4'+    minor: '2'+    patch: '14912'++  - user_agent_string: 'Opera/9.80 (J2ME/MIDP; Opera Mini/4.2.14912/23.334; U; en) Presto/2.5.25 Version/10.54'+    family: 'Opera Mini'+    major: '4'+    minor: '2'+    patch: '14912'++  - user_agent_string: 'Opera/9.80 (J2ME/MIDP; Opera Mini/4.2.14912/23.333; U; en) Presto/2.5.25 Version/10.54'+    family: 'Opera Mini'+    major: '4'+    minor: '2'+    patch: '14912'++  - user_agent_string: 'Opera/9.80 (J2ME/MIDP; Opera Mini/4.2.14912/22.394; U; en) Presto/2.5.25 Version/10.54'+    family: 'Opera Mini'+    major: '4'+    minor: '2'+    patch: '14912'++  - user_agent_string: 'Opera/9.80 (J2ME/MIDP; Opera Mini/4.2.14885/20.2485; U; zh) Presto/2.5.25'+    family: 'Opera Mini'+    major: '4'+    minor: '2'+    patch: '14885'++  - user_agent_string: 'Opera/9.80 (J2ME/MIDP; Opera Mini/4.2.14881Mod.by.Handler/24.743; U; en) Presto/2.5.25 Version/10.54'+    family: 'Opera Mini'+    major: '4'+    minor: '2'+    patch: '14881'++  - user_agent_string: 'Opera/9.80 (J2ME/MIDP; Opera Mini/4.2.14881Mod.by.Handler/23.317; U; id) Presto/2.5.25 Version/10.54'+    family: 'Opera Mini'+    major: '4'+    minor: '2'+    patch: '14881'++  - user_agent_string: 'Opera/9.80 (J2ME/MIDP; Opera Mini/4.2.14753/20.2485; U; zh) Presto/2.5.25'+    family: 'Opera Mini'+    major: '4'+    minor: '2'+    patch: '14753'++  - user_agent_string: 'Opera/9.80 (J2ME/MIDP; Opera Mini/4.2.14409/20.2485; U; zh) Presto/2.5.25'+    family: 'Opera Mini'+    major: '4'+    minor: '2'+    patch: '14409'++  - user_agent_string: 'Opera/9.80 (J2ME/MIDP; Opera Mini/4.2.14320/886; U; id) Presto/2.4.15'+    family: 'Opera Mini'+    major: '4'+    minor: '2'+    patch: '14320'++  - user_agent_string: 'Opera/9.80 (J2ME/MIDP; Opera Mini/4.2.14320/22.478; U; en) Presto/2.5.25 Version/10.54'+    family: 'Opera Mini'+    major: '4'+    minor: '2'+    patch: '14320'++  - user_agent_string: 'Opera/9.80 (J2ME/MIDP; Opera Mini/4.2.14320/20.2485; U; zh) Presto/2.5.25'+    family: 'Opera Mini'+    major: '4'+    minor: '2'+    patch: '14320'++  - user_agent_string: 'Opera/9.80 (J2ME/MIDP; Opera Mini/4.2.13943/20.2485; U; zh) Presto/2.5.25'+    family: 'Opera Mini'+    major: '4'+    minor: '2'+    patch: '13943'++  - user_agent_string: 'Opera/9.80 (J2ME/MIDP; Opera Mini/4.2.13918/22.414; U; en) Presto/2.5.25 Version/10.54'+    family: 'Opera Mini'+    major: '4'+    minor: '2'+    patch: '13918'++  - user_agent_string: 'Opera/9.80 (J2ME/MIDP; Opera Mini/4.2.13400/20.2485; U; zh) Presto/2.5.25'+    family: 'Opera Mini'+    major: '4'+    minor: '2'+    patch: '13400'++  - user_agent_string: 'Opera/9.80 (J2ME/MIDP; Opera Mini/4.2.13337.Mod.by.Handler/870; U; en) Presto/2.4.15'+    family: 'Opera Mini'+    major: '4'+    minor: '2'+    patch: '13337'++  - user_agent_string: 'Opera/9.80 (J2ME/MIDP; Opera Mini/4.2.13337/886; U; en) Presto/2.4.15'+    family: 'Opera Mini'+    major: '4'+    minor: '2'+    patch: '13337'++  - user_agent_string: 'Opera/9.80 (J2ME/MIDP; Opera Mini/4.2.13337/870; U; en) Presto/2.4.15'+    family: 'Opera Mini'+    major: '4'+    minor: '2'+    patch: '13337'++  - user_agent_string: 'Opera/9.80 (J2ME/MIDP; Opera Mini/4.2.13337/19.916; U; en) Presto/2.5.25'+    family: 'Opera Mini'+    major: '4'+    minor: '2'+    patch: '13337'++  - user_agent_string: 'Opera/9.80 (J2ME/MIDP; Opera Mini/4.2.13265/870; U; ro) Presto/2.4.15'+    family: 'Opera Mini'+    major: '4'+    minor: '2'+    patch: '13265'++  - user_agent_string: 'Opera/9.80 (J2ME/MIDP; Opera Mini/4.2.13221/886; U; en) Presto/2.4.15'+    family: 'Opera Mini'+    major: '4'+    minor: '2'+    patch: '13221'++  - user_agent_string: 'Opera/9.80 (J2ME/MIDP; Opera Mini/4.2.13221/870; U; en) Presto/2.4.15'+    family: 'Opera Mini'+    major: '4'+    minor: '2'+    patch: '13221'++  - user_agent_string: 'Opera/9.80 (J2ME/MIDP; Opera Mini/4.2.13057/870; U; ja) Presto/2.4.15'+    family: 'Opera Mini'+    major: '4'+    minor: '2'+    patch: '13057'++  - user_agent_string: 'Opera/9.80 (J2ME/MIDP; Opera Mini/4.2 19.42.55/19.892; U; en) Presto/2.5.25'+    family: 'Opera Mini'+    major: '4'+    minor: '2'+    patch:++  - user_agent_string: 'Opera/9.80 (J2ME/MIDP; Opera Mini/4.18061/27.1407; U; en) Presto/2.8.119 Version/11.10'+    family: 'Opera Mini'+    major: '4'+    minor: '18061'+    patch:++  - user_agent_string: 'Opera/9.80 (J2ME/MIDP; Opera Mini/4.1.15082/870; U; en) Presto/2.4.15'+    family: 'Opera Mini'+    major: '4'+    minor: '1'+    patch: '15082'++  - user_agent_string: 'Opera/9.80 (J2ME/MIDP; Opera Mini/4.1.15082/25.677; U; vi) Presto/2.5.25 Version/10.54'+    family: 'Opera Mini'+    major: '4'+    minor: '1'+    patch: '15082'++  - user_agent_string: 'Opera/9.80 (J2ME/MIDP; Opera Mini/4.1.15082/20.2489; U; en) Presto/2.5.25'+    family: 'Opera Mini'+    major: '4'+    minor: '1'+    patch: '15082'++  - user_agent_string: 'Opera/9.80 (J2ME/MIDP; Opera Mini/4.1.14287/22.387; U; id) Presto/2.5.25 Version/10.54'+    family: 'Opera Mini'+    major: '4'+    minor: '1'+    patch: '14287'++  - user_agent_string: 'Opera/9.80 (J2ME/MIDP; Opera Mini/4.1.13907/21.529; U; en) Presto/2.5.25 Version/10.54'+    family: 'Opera Mini'+    major: '4'+    minor: '1'+    patch: '13907'++  - user_agent_string: 'Opera/9.80 (J2ME/MIDP; Opera Mini/4.1.13573/20.2485; U; zh) Presto/2.5.25'+    family: 'Opera Mini'+    major: '4'+    minor: '1'+    patch: '13573'++  - user_agent_string: 'Opera/9.80 (J2ME/MIDP; Opera Mini/4.1.12965/19.892; U; en) Presto/2.5.25'+    family: 'Opera Mini'+    major: '4'+    minor: '1'+    patch: '12965'++  - user_agent_string: 'Opera/9.80 (J2ME/MIDP; Opera Mini/4.1.11321/24.871; U; en) Presto/2.5.25 Version/10.54'+    family: 'Opera Mini'+    major: '4'+    minor: '1'+    patch: '11321'++  - user_agent_string: 'Opera/9.80 (J2ME/MIDP; Opera Mini/4.0.8462/22.414; U; en) Presto/2.5.25 Version/10.54'+    family: 'Opera Mini'+    major: '4'+    minor: '0'+    patch: '8462'++  - user_agent_string: 'Opera/9.80 (J2ME/MIDP; Opera Mini/4.0.8462/19.916; U; en) Presto/2.5.25'+    family: 'Opera Mini'+    major: '4'+    minor: '0'+    patch: '8462'++  - user_agent_string: 'Opera/9.80 (J2ME/MIDP; Opera Mini/4.0.10247/19.916; U; en) Presto/2.5.25'+    family: 'Opera Mini'+    major: '4'+    minor: '0'+    patch: '10247'++  - user_agent_string: 'Opera/9.80 (J2ME/MIDP; Opera Mini/4.0.10031/22.453; U; en) Presto/2.5.25 Version/10.54'+    family: 'Opera Mini'+    major: '4'+    minor: '0'+    patch: '10031'++  - user_agent_string: 'Opera/9.80 (J2ME/MIDP; Opera Mini/4.0/886; U; en) Presto/2.4.15'+    family: 'Opera Mini'+    major: '4'+    minor: '0'+    patch:++  - user_agent_string: 'Opera/9.80 (J2ME/MIDP; Opera Mini/4.0/870; U; id) Presto/2.4.15'+    family: 'Opera Mini'+    major: '4'+    minor: '0'+    patch:++  - user_agent_string: 'Opera/9.80 (J2ME/MIDP; Opera Mini/4.0/22.453; U; en) Presto/2.5.25 Version/10.54'+    family: 'Opera Mini'+    major: '4'+    minor: '0'+    patch:++  - user_agent_string: 'Opera/9.80 (J2ME/MIDP; Opera Mini/4.0/22.401; U; en) Presto/2.5.25 Version/10.54'+    family: 'Opera Mini'+    major: '4'+    minor: '0'+    patch:++  - user_agent_string: 'Opera/9.80 (J2ME/MIDP; Opera Mini/4.0/22.394; U; en) Presto/2.5.25 Version/10.54'+    family: 'Opera Mini'+    major: '4'+    minor: '0'+    patch:++  - user_agent_string: 'Opera/9.80 (J2ME/MIDP; Opera Mini/4.0 (X11; U; Linux i686 (x86_64); en-US; rv:1.8.1.11) Gecko/23.390; U; en) Presto/2.5.25 Version/10.54'+    family: 'Opera Mini'+    major: '4'+    minor: '0'+    patch:++  - user_agent_string: 'Opera/9.80 (J2ME/MIDP; Opera Mini/4.0 (Linux; U;'+    family: 'Opera Mini'+    major: '4'+    minor: '0'+    patch:++  - user_agent_string: 'Opera/9.80 (J2ME/MIDP; Opera Mini/4.0 (iPad; U; CPU OS 3_2 like Mac OS X; en-us) AppleWebKit/23.411; U; en) Presto/2.5.25 Version/10.54'+    family: 'Opera Mini'+    major: '4'+    minor: '0'+    patch:++  - user_agent_string: 'Opera/9.80 (J2ME/MIDP; Opera Mini/4.0 (compatible; MSIE 5.0; UNIX) Opera 6.12 [en]/24.838; U; en) Presto/2.5.25 Version/10.54'+    family: 'Opera Mini'+    major: '4'+    minor: '0'+    patch:++  - user_agent_string: 'Opera/9.80 (J2ME/MIDP; Opera Mini/4.0 (BlackBerry; U; BlackBerry 9800; en) AppleWebKit/24.705; U; en) Presto/2.5.25 Version/10.54'+    family: 'Opera Mini'+    major: '4'+    minor: '0'+    patch:++  - user_agent_string: 'Opera/9.60 (J2ME/MIDP; Opera Mini/4.0/490; U; en) Presto/2.2.0'+    family: 'Opera Mini'+    major: '4'+    minor: '0'+    patch:++  - user_agent_string: 'Opera/9.80 (J2ME/MIDP; Opera Mini/3.1.10423/22.387; U; en) Presto/2.5.25 Version/10.54'+    family: 'Opera Mini'+    major: '3'+    minor: '1'+    patch: '10423'++  - user_agent_string: 'Opera/9.80 (J2ME/MIDP; Opera Mini/1.6.0_13/22.478; U; en) Presto/2.5.25 Version/10.54'+    family: 'Opera Mini'+    major: '1'+    minor: '6'+    patch: '0'++  - user_agent_string: 'Opera/9.80 (J2ME/MIDP; Opera Mini/1.6.0_13/19.916; U; en) Presto/2.5.25'+    family: 'Opera Mini'+    major: '1'+    minor: '6'+    patch: '0'++  - user_agent_string: 'Opera/9.80 (Series 60; Opera Mini/1.0.30710/29.3594; U; en) Presto/2.8.119 Version/11.10'+    family: 'Opera Mini'+    major: '1'+    minor: '0'+    patch: '30710'++  - user_agent_string: 'Opera/9.80 (J2ME/MIDP; Opera Mini/1.0/886; U; en) Presto/2.4.15'+    family: 'Opera Mini'+    major: '1'+    minor: '0'+    patch:++  - user_agent_string: 'Opera/9.80 (J2ME/MIDP; Opera Mini/SymbianOS/22.478; U; en) Presto/2.5.25 Version/10.54'+    family: 'Opera Mini'+    major:+    minor:+    patch:++  - user_agent_string: 'Opera/9.80 (J2ME/MIDP; Opera Mini/Nokia2730c-1/22.478; U; en) Presto/2.5.25 Version/10.54'+    family: 'Opera Mini'+    major:+    minor:+    patch:++  - user_agent_string: 'Opera/9.80 (J2ME/MIDP; Opera Mini/Mozilla/23.334; U; en) Presto/2.5.25 Version/10.54'+    family: 'Opera Mini'+    major:+    minor:+    patch:++  - user_agent_string: 'Opera/9.80 (J2ME/MIDP; Opera Mini/(Windows; U; Windows NT 5.1; en-US) AppleWebKit/23.411; U; en) Presto/2.5.25 Version/10.54'+    family: 'Opera Mini'+    major:+    minor:+    patch:++  - user_agent_string: 'Opera/9.80 (J2ME/MIDP; Opera Mini; U; zh) Presto/2.8.119 Version/11.10'+    family: 'Opera Mini'+    major:+    minor:+    patch:++  - user_agent_string: 'Opera/9.80 (J2ME/MIDP; Opera Mini; U; en) Presto/2.8.119 Version/11.1019 Version/11.10.10'+    family: 'Opera Mini'+    major:+    minor:+    patch:+
deps/uap-core/test_resources/pgts_browser_list.yaml view
@@ -55,7 +55,7 @@     patch:    - user_agent_string: 'Alizee iPod 2005 (Beta; Mac OS X)'-    family: 'Mobile Safari UIWebView'+    family: 'Mobile Safari UI/WKWebView'     major:     minor:     patch:@@ -1051,70 +1051,70 @@     patch: '0'    - user_agent_string: 'curl/7.10.2 (powerpc-apple-darwin7.0) libcurl/7.10.2 OpenSSL/0.9.7b zlib/1.1.4'-    family: 'Other'-    major:-    minor:-    patch:+    family: 'curl'+    major: '7'+    minor: '10'+    patch: '2'    - user_agent_string: 'curl/7.10.6 (i386-redhat-linux-gnu) libcurl/7.10.6 OpenSSL/0.9.7a ipv6 zlib/1.1.4'-    family: 'Other'-    major:-    minor:-    patch:+    family: 'curl'+    major: '7'+    minor: '10'+    patch: '6'    - user_agent_string: 'curl/7.10.6 (i386-redhat-linux-gnu) libcurl/7.10.6 OpenSSL/0.9.7a ipv6 zlib/1.2.0.7'-    family: 'Other'-    major:-    minor:-    patch:+    family: 'curl'+    major: '7'+    minor: '10'+    patch: '6'    - user_agent_string: 'curl/7.11.2 (i686-pc-linux-gnu) libcurl/7.10.2 OpenSSL/0.9.6i ipv6 zlib/1.1.4'-    family: 'Other'-    major:-    minor:-    patch:+    family: 'curl'+    major: '7'+    minor: '11'+    patch: '2'    - user_agent_string: 'curl/7.12.0 (i686-pc-linux-gnu) libcurl/7.12.0 OpenSSL/0.9.7e ipv6 zlib/1.2.2'-    family: 'Other'-    major:-    minor:-    patch:+    family: 'curl'+    major: '7'+    minor: '12'+    patch: '0'    - user_agent_string: 'curl/7.7.2 (powerpc-apple-darwin6.0) libcurl 7.7.2 (OpenSSL 0.9.6b)'-    family: 'Other'-    major:-    minor:-    patch:+    family: 'curl'+    major: '7'+    minor: '7'+    patch: '2'    - user_agent_string: 'curl/7.7.3 (i686-pc-linux-gnu) libcurl 7.7.3 (OpenSSL 0.9.6)'-    family: 'Other'-    major:-    minor:-    patch:+    family: 'curl'+    major: '7'+    minor: '7'+    patch: '3'    - user_agent_string: 'curl/7.7.3 (win32) libcurl 7.7.3 (OpenSSL 0.9.6)'-    family: 'Other'-    major:-    minor:-    patch:+    family: 'curl'+    major: '7'+    minor: '7'+    patch: '3'    - user_agent_string: 'curl/7.9.3 (powerpc-ibm-aix4.3.3.0) libcurl 7.9.3 (OpenSSL 0.9.6m)'-    family: 'Other'-    major:-    minor:-    patch:+    family: 'curl'+    major: '7'+    minor: '9'+    patch: '3'    - user_agent_string: 'curl/7.9.5 (i386-redhat-linux-gnu) libcurl 7.9.5 (OpenSSL 0.9.6b) (ipv6 enabled)'-    family: 'Other'-    major:-    minor:-    patch:+    family: 'curl'+    major: '7'+    minor: '9'+    patch: '5'    - user_agent_string: 'curl/7.9.8 (i386-redhat-linux-gnu) libcurl 7.9.8 (OpenSSL 0.9.7a) (ipv6 enabled)'-    family: 'Other'-    major:-    minor:-    patch:+    family: 'curl'+    major: '7'+    minor: '9'+    patch: '8'    - user_agent_string: 'DA 5.0'     family: 'Other'@@ -4165,27 +4165,27 @@     patch:    - user_agent_string: 'libwww-perl/5.79'-    family: 'Other'-    major:-    minor:+    family: 'libwww-perl'+    major: '5'+    minor: '79'     patch:    - user_agent_string: 'SonyEricssonT306/R101 [Html2Wml/0.4.11 libwww-perl/5.79]'-    family: 'Other'-    major:-    minor:+    family: 'libwww-perl'+    major: '5'+    minor: '79'     patch:    - user_agent_string: 'testJapanequeDelicious/0.1 libwww-perl/5.803'-    family: 'Other'-    major:-    minor:+    family: 'libwww-perl'+    major: '5'+    minor: '803'     patch:    - user_agent_string: 'W3C-checklink/4.1 [4.14] libwww-perl/5.803'-    family: 'Other'-    major:-    minor:+    family: 'libwww-perl'+    major: '5'+    minor: '803'     patch:    - user_agent_string: 'Mozilla/3.0 (compatible; Linkman)'@@ -4711,15 +4711,15 @@     patch:    - user_agent_string: 'Mozilla/4.0 (compatible; Lotus-Notes/5.0; Windows-NT)'-    family: 'Other'-    major:-    minor:+    family: 'Lotus Notes'+    major: '5'+    minor: '0'     patch:    - user_agent_string: 'Mozilla/4.0 (compatible; Lotus-Notes/6.0; Windows-NT)'-    family: 'Other'-    major:-    minor:+    family: 'Lotus Notes'+    major: '6'+    minor: '0'     patch:    - user_agent_string: 'LTH/3.02a (http://www.learntohack.nil)'@@ -74779,15 +74779,15 @@     patch:    - user_agent_string: 'Wget/1.8.2 modified'-    family: 'Other'-    major:-    minor:-    patch:+    family: 'Wget'+    major: '1'+    minor: '8'+    patch: '2'    - user_agent_string: 'Wget/1.9+cvs-stable (Red Hat modified)'-    family: 'Other'-    major:-    minor:+    family: 'Wget'+    major: '1'+    minor: '9'     patch:    - user_agent_string: 'Mozilla/4.0 (compatible; MSIE 5.00; Window 98)'@@ -74989,13 +74989,13 @@     patch:    - user_agent_string: 'Mozilla/5.0 (Macintosh; U; PPC Mac OS X; en) AppleWebKit/412.6.2 (KHTML, like Gecko)'-    family: 'AppleMail'+    family: 'Apple Mail'     major: '412'     minor: '6'     patch: '2'    - user_agent_string: 'Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_6_3; es-es) AppleWebKit/531.22.7 (KHTML, like Gecko)'-    family: 'AppleMail'+    family: 'Apple Mail'     major: '531'     minor: '22'     patch: '7'
deps/uap-core/tests/test_device.yaml view

file too large to diff

deps/uap-core/tests/test_os.yaml view
@@ -245,6 +245,13 @@     patch: '2'     patch_minor: +  - user_agent_string: 'Mozilla/5.0 (iPod touch; CPU iPhone OS 9_3_2 like Mac OS X) AppleWebKit/601.1.46 (KHTML, like Gecko) Mobile/13F69'+    family: 'iOS'+    major: '9'+    minor: '3'+    patch: '2'+    patch_minor:+   - user_agent_string: 'MQQBrowser/371 Mozilla/5.0 (iPhone 4S; CPU iPhone OS 6_0_1 like Mac OS X) AppleWebKit/536.26 (KHTML, like Gecko) Mobile/10A523 Safari/7534.48.3'     family: 'iOS'     major: '6'@@ -413,6 +420,13 @@     patch:     patch_minor: +  - user_agent_string: 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko; Google Web Preview) Chrome/27.0 .1453 Safari/537.36.'+    family: 'Linux'+    major:+    minor:+    patch:+    patch_minor:+   - user_agent_string: 'Bunjalloo/0.7.6(Nintendo DS;U;en)'     family: 'Other'     major:@@ -784,6 +798,13 @@     patch:     patch_minor: +  - user_agent_string: 'Mozilla/5.0 (Windows NT 6.1; rv:45.0) Gecko/20100101 Thunderbird/45.0'+    family: 'Windows 7'+    major:+    minor:+    patch:+    patch_minor:+   - user_agent_string: 'Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.3a1) Gecko/20100208 MozillaDeveloperPreview/3.7a1 (.NET CLR 3.5.30729)'     family: 'Windows 7'     major:@@ -2188,9 +2209,142 @@     patch:     patch_minor: +  - user_agent_string: 'TestApp/1.0 CFNetwork/808.0.2 Darwin/16.0.0'+    family: 'iOS'+    major: '10'+    minor: '0'+    patch:+    patch_minor:++  - user_agent_string: 'TestApp/1.0 CFNetwork/808.1.4 Darwin/16.1.0'+    family: 'iOS'+    major: '10'+    minor: '1'+    patch:+    patch_minor:++  - user_agent_string: 'TestApp/1.0 CFNetwork/808.2.16 Darwin/16.3.0'+    family: 'iOS'+    major: '10'+    minor: '2'+    patch:+    patch_minor:+   - user_agent_string: 'TestApp-tvOS/1.0-1'     family: 'tvOS'     major: '1'     minor: '0'+    patch:+    patch_minor:++  - user_agent_string: 'Roku/DVP-6.2 (096.02E06005A)'+    family: 'Roku'+    major: '6'+    minor: '2'+    patch:+    patch_minor:++  - user_agent_string: 'Roku/DVP-5.0 (025.00E08043A)'+    family: 'Roku'+    major: '5'+    minor: '0'+    patch:+    patch_minor:++  - user_agent_string: 'Roku/DVP-5.1 (025.01E01195A)'+    family: 'Roku'+    major: '5'+    minor: '1'+    patch:+    patch_minor:++  - user_agent_string: 'Mozilla/5.0 (Web0S; Linux/SmartTV) AppleWebKit/537.41 (KHTML, like Gecko) Large Screen WebAppManager Safari/537.41'+    family: 'Web0S'+    major:+    minor:+    patch:+    patch_minor:++  - user_agent_string: 'Mozilla/5.0+(iPhone;+CPU+iPhone+OS+9_3_1+like+Mac+OS+X)+AppleWebKit/601.1.46+(KHTML,+like+Gecko)+Version/9.0+Mobile/13E238+Safari/601.1'+    family: 'iOS'+    major: '9'+    minor: '3'+    patch: '1'+    patch_minor:++  - user_agent_string: 'Mozilla/5.0+(iPad;+CPU+OS+9_3_1+like+Mac+OS+X)+AppleWebKit/601.1.46+(KHTML,+like+Gecko)+Version/9.0+Mobile/13E238+Safari/601.1'+    family: 'iOS'+    major: '9'+    minor: '3'+    patch: '1'+    patch_minor:++  - user_agent_string: 'Mozilla/5.0 (SMART-TV; Linux; Tizen 2.3) AppleWebkit/538.1 (KHTML, like Gecko) SamsungBrowser/1.0 TV Safari/538.1'+    family: 'Tizen'+    major: '2'+    minor: '3'+    patch:+    patch_minor:++  - user_agent_string: 'Deezer/4.8.2 (iOS; 7.1; Mobile; de)'+    family: 'iOS'+    major: '7'+    minor: '1'+    patch:+    patch_minor:++  - user_agent_string: 'Mozilla/5.0 (iOS; U; en-US) AppleWebKit/533.19.4 (KHTML, like Gecko) AdobeAIR/19.0'+    family: 'iOS'+    major:+    minor:+    patch:+    patch_minor:++  - user_agent_string: 'UCWEB/2.0 (iOS; U; iPd OS 7_0_4; zh-CN; iPd5,1) U2/1.0.0 UCBrowser/9.0.1.284 U2/1.0.0 Mobile'+    family: 'iOS'+    major: '7'+    minor: '0'+    patch: '4'+    patch_minor:++  - user_agent_string: 'Mozilla/5.0 (iPhone; CPU IPhone OS 8_1_3 Like Mac OS X) AppleWebKit/600.1.4 (KHTML, Like Gecko) CriOS/43.0.2357.61 Mobile/12B466 Safari/600.1.4'+    family: 'iOS'+    major: '8'+    minor: '1'+    patch: '3'+    patch_minor:++  - user_agent_string: 'Mozilla/5.0 (iPhone; CPU IPhone OS 9_2_1 Like Mac OS X) AppleWebKit/601.1.46 (KHTML, Like Gecko) Mobile/13D15 [FBAN/FBIOS;FBAV/52.0.0.46.157;FBBV/26424168;FBDV/iPhone6,2;FBMD/iPhone;FBSN/iPhone OS;FBSV/9.2.1;FBSS/2; FBCR/Globe;FBID/phone;FBLC/en_US;FBOP/5]'+    family: 'iOS'+    major: '9'+    minor: '2'+    patch: '1'+    patch_minor:++  - user_agent_string: 'Mozilla/5.0 (X11; Linux aarch64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.84 Safari/537.36 CrKey/1.22.74257'+    family: 'Chromecast'+    major: '1'+    minor: '22'+    patch: '74257'+    patch_minor:++  - user_agent_string: 'Mozilla/5.0 (iPhone; CPU iPhone OS 9_3_4 like Mac OS X) AppleWebKit/601.1 (KHTML, like Gecko) Outlook-iOS-Android/1.0 Mobile/13G35 Safari/601.1.46")'+    family: 'iOS'+    major: '9'+    minor: '3'+    patch: '4'+    patch_minor:++  - user_agent_string: 'Mozilla/5.0+(Macintosh;+Intel+Mac+OS+X+10_11_6)+AppleWebKit/537.36+(KHTML,+like+Gecko)+Chrome/52.0.2743.116+Safari/537.36'+    family: 'Mac OS X'+    major: '10'+    minor: '11'+    patch: '6'+    patch_minor:++  - user_agent_string: 'Safari/12602.2.14.0.7 CFNetwork/807.1.3 Darwin/16.1.0 (x86_64)'+    family: 'Mac OS X'+    major: '10'+    minor: '12'     patch:     patch_minor:
deps/uap-core/tests/test_ua.yaml view
@@ -192,12 +192,30 @@     minor: '8'     patch: '5' +  - user_agent_string: 'Mozilla/5.0 (compatible; Windows NT 6.1; Catchpoint) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/43.0.2357.81 Safari/537.36'+    family: 'Catchpoint'+    major:+    minor:+    patch:++  - user_agent_string: 'Mozilla/5.0 (compatible; Windows NT 6.1; Catchpoint bot) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/43.0.2357.81 Safari/537.36'+    family: 'Catchpoint bot'+    major:+    minor:+    patch:+   - user_agent_string: 'Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; chromeframe/11.0.660.0)'     family: 'Chrome Frame'     major: '11'     minor: '0'     patch: '660' +  - user_agent_string: 'Mozilla/5.0 (Linux; Android 7.1.2; Nexus 5X Build/N2G47W; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/58.0.3029.83 Mobile Safari/537.36'+    family: 'Chrome Mobile WebView'+    major: '58'+    minor: '0'+    patch: '3029'+   - user_agent_string: 'Mozilla/5.0 (Linux; Android 4.2; Galaxy Nexus Build/JOP40C) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.166 Mobile Safari/535.19'     family: 'Chrome Mobile'     major: '18'@@ -264,6 +282,24 @@     minor:     patch: +  - user_agent_string: 'Firefox/11.0 (via ggpht.com GoogleImageProxy)'+    family: 'GmailImageProxy'+    major:+    minor:+    patch:++  - user_agent_string: 'Twitterbot/1.0'+    family: 'TwitterBot'+    major: '1'+    minor: '0'+    patch:++  - user_agent_string: 'WhatsApp/2.17.70 W'+    family: 'WhatsApp'+    major: '2'+    minor: '17'+    patch: '70'+   - user_agent_string: 'Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.1.1pre) Gecko/20090717 Ubuntu/9.04 (jaunty) Shiretoko/3.5.1pre'     family: 'Firefox (Shiretoko)'     major: '3'@@ -462,8 +498,14 @@     minor: '0'     patch: '2' +  - user_agent_string: 'Mozilla/5.0 (iPod touch; CPU iPhone OS 9_3_2 like Mac OS X) AppleWebKit/601.1.46 (KHTML, like Gecko) Mobile/13F69'+    family: 'Mobile Safari UI/WKWebView'+    major: '9'+    minor: '3'+    patch: '2'+   - user_agent_string: 'Mozilla/5.0 (iPhone; CPU iPhone OS 7_1_2 like Mac OS X) AppleWebKit/537.51.2 (KHTML, like Gecko) Mobile/11D257'-    family: 'Mobile Safari UIWebView'+    family: 'Mobile Safari UI/WKWebView'     major: '7'     minor: '1'     patch: '2'@@ -634,7 +676,7 @@     family: 'Opera Mini'     major: '5'     minor: '1'-    patch:+    patch: '191'    - user_agent_string: 'Opera/9.80 (Series 60; Opera Mini/6.24455/25.677; U; fr) Presto/2.5.25 Version/10.54'     family: 'Opera Mini'@@ -646,8 +688,32 @@     family: 'Opera Mini'     major: '7'     minor: '0'+    patch: '31437'++  - user_agent_string: 'Opera/9.80 (J2ME/MIDP; Opera Mini/9.80 (S60; SymbOS; Opera Mobi/23.348; U; en) Presto/2.5.25 Version/10.54'+    family: 'Opera Mini'+    major: '9'+    minor: '80'     patch: +  - user_agent_string: 'Opera/9.80 (J2ME/MIDP; Opera Mini/9.80 (J2ME/22.478; U; en) Presto/2.5.25 Version/10.54'+    family: 'Opera Mini'+    major: '9'+    minor: '80'+    patch:++  - user_agent_string: 'Opera/9.80 (J2ME/MIDP; Opera Mini/9 (Compatible; MSIE:9.0; iPhone; BlackBerry9700; AppleWebKit/24.746; U; en) Presto/2.5.25 Version/10.54'+    family: 'Opera Mini'+    major: '9'+    minor:+    patch:++  - user_agent_string: 'Opera/9.80 (Android; Opera Mini/7.6.35766/35.5706; U; en) Presto/2.8.119 Version/11.10'+    family: 'Opera Mini'+    major: '7'+    minor: '6'+    patch: '35766'+   - user_agent_string: 'Opera/9.80 (S60; SymbOS; Opera Mobi/275; U; es-ES) Presto/2.4.13 Version/10.00'     family: 'Opera Mobile'     major: '10'@@ -727,11 +793,29 @@     patch: '2'    - user_agent_string: 'Mozilla/5.0 (Windows NT 5.1; rv:2.0) Gecko/20110407 Firefox/4.0.3 PaleMoon/4.0.3'-    family: 'Pale Moon (Firefox Variant)'+    family: 'Pale Moon'     major: '4'     minor: '0'     patch: '3' +  - user_agent_string: 'Mozilla/5.0 (X11; Linux x86_64; rv:3.0) Goanna/20170207 PaleMoon/27.1.0'+    family: 'Pale Moon'+    major: '27'+    minor: '1'+    patch: '0'++  - user_agent_string: 'Mozilla/5.0 (X11; Linux x86_64; rv:3.0) Gecko/20100101 Goanna/20170207 PaleMoon/27.1.0'+    family: 'Pale Moon'+    major: '27'+    minor: '1'+    patch: '0'++  - user_agent_string: 'Mozilla/5.0 (X11; Linux x86_64; rv:45.9) Gecko/20100101 Goanna/3.0 Firefox/45.9 PaleMoon/27.1.0'+    family: 'Pale Moon'+    major: '27'+    minor: '1'+    patch: '0'+   - user_agent_string: 'Mozilla/5.0 (LG-T500 AppleWebkit/531 Browser/Phantom/V2.0 Widget/LGMW/3.0 MMS/LG-MMS-V1.0/1.2 Java/ASVM/1.1 Profile/MIDP-2.1 Configuration/CLDC-1.1)'     family: 'Phantom Browser'     major: '2'@@ -744,6 +828,18 @@     minor: '4'     patch: +  - user_agent_string: 'Mozilla/5.0 (Unknown; Linux x86_64) AppleWebKit/534.34 (KHTML, like Gecko) PingdomTMS/0.8.5 Safari/534.34'+    family: 'PingdomBot'+    major: '0'+    minor: '8'+    patch: '5'++  - user_agent_string: 'Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.4 (KHTML, like Gecko) Chrome/98 Safari/537.4 (StatusCake)'+    family: 'StatusCakeBot'+    major:+    minor:+    patch:+   - user_agent_string: 'Mozilla/3.0 (Planetweb/2.100 JS SSL US; Dreamcast US)'     family: 'Planetweb'     major: '2'@@ -823,10 +919,10 @@     patch: '5'    - user_agent_string: 'Mozilla/5.0 (X11; Linux x86_64; rv:24.0) Gecko/20100101 Thunderbird/24.2.0 Lightning/2.6.4'-    family: 'Lightning'-    major: '2'-    minor: '6'-    patch: '4'+    family: 'Thunderbird'+    major: '24'+    minor: '2'+    patch: '0'    - user_agent_string: 'Mozilla/5.0 (X11; Linux x86_64; rv:24.0) Gecko/20100101 Thunderbird/24.2.0'     family: 'Thunderbird'@@ -834,6 +930,60 @@     minor: '2'     patch: '0' +  - user_agent_string: 'Mozilla/5.0 (Windows NT 6.1; rv:45.0) Gecko/20100101 Thunderbird/45.0'+    family: 'Thunderbird'+    major: '45'+    minor: '0'+    patch:++  - user_agent_string: 'Mozilla/5.0 (Windows NT 6.2; WOW64; rv:7.0.1) Gecko/20151105 Postbox/4.0.8'+    family: 'Postbox'+    major: '4'+    minor: '0'+    patch: '8'++  - user_agent_string: 'Mozilla/4.0 (compatible; Lotus-Notes/6.0; Windows-NT)'+    family: 'Lotus Notes'+    major: '6'+    minor: '0'+    patch:++  - user_agent_string: 'YahooMobileMail/1.0 (Android Mail; 1.3.10) (supersonic;HTC;PC36100;2.3.5/GRJ90)'+    family: 'YahooMobileMail'+    major: '1'+    minor: '0'+    patch:++  - user_agent_string: 'Barca/2.8.2'+    family: 'Barca'+    major: '2'+    minor: '8'+    patch: '2'++  - user_agent_string: 'BarcaPro/1.4.12'+    family: 'Barca'+    major: '1'+    minor: '4'+    patch: '12'++  - user_agent_string: 'The Bat! 4.0.0.22'+    family: 'The Bat!'+    major: '4'+    minor: '0'+    patch: '0'++  - user_agent_string: 'MailBar/1.3.2 (Mac OS X Version 10.11.1 (Build 15B42))'+    family: 'MailBar'+    major: '1'+    minor: '3'+    patch: '2'++  - user_agent_string: 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/534.34 (KHTML, like Gecko) kmail2/4.14.2 Safari/534.34'+    family: 'kmail2'+    major: '4'+    minor: '14'+    patch: '2'+   - user_agent_string: 'Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 1.1.4322; .NET CLR 2.0.50727; MSOffice 12)'     family: 'Outlook'     major: '2007'@@ -853,7 +1003,7 @@     patch:    - user_agent_string: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_8_2) AppleWebKit/536.26.14 (KHTML, like Gecko)'-    family: 'AppleMail'+    family: 'Apple Mail'     major: '536'     minor: '26'     patch: '14'@@ -882,6 +1032,18 @@     minor: '4'     patch: '0' +  - user_agent_string: 'UCWEB/3.0 (iPhone; CPU OS_6; en-US)AppleWebKit/534.1 U3/3.0.0 Mobile'+    family: 'UC Browser'+    major: '3'+    minor: '0'+    patch: '0'++  - user_agent_string: 'UCWEB/2.0 (Linux; U; Opera Mini/7.1.32052/30.2697; en-US; GT-S5302) U2/1.0.0 UCBrowser/9.3.0.440 Mobile'+    family: 'UC Browser'+    major: '9'+    minor: '3'+    patch: '0'+   - user_agent_string: 'IUC(U;iOS 5.1.1;Zh-cn;320*480;)/UCWEB7.9.0.94/41/997'     family: 'UC Browser'     major: '7'@@ -906,6 +1068,12 @@     minor: '7'     patch: '0' +  - user_agent_string: 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/50.0.2661.102 UBrowser/5.7.14488.1025 Safari/537.36'+    family: 'UC Browser'+    major: '5'+    minor: '7'+    patch: '14488'+   - user_agent_string: 'Alcatel-OH5/1.0 UP.Browser/6.1.0.7.7 (GUI) MMP/1.0'     family: 'UP.Browser'     major: '6'@@ -1142,14 +1310,14 @@     family: 'Opera Mini'     major: '4'     minor: '2'-    patch:+    patch: '14812'     patch_minor:    - user_agent_string: 'SAMSUNG-SGH-A897/A897UCJC1; Mozilla/5.0 (Profile/MIDP-2.0 Configuration/CLDC-1.1; Opera Mini/att/4.2.15304; U; fr-US) Opera 9.50'     family: 'Opera Mini'     major: '4'     minor: '2'-    patch:+    patch: '15304'     patch_minor:    - user_agent_string: 'MQQBrowser/39 Mozilla/5.0 (iPhone 4S; CPU iPhone OS 6_0_1 like Mac OS X) AppleWebKit/536.26 (KHTML, like Gecko) Mobile/10A523 Safari/7534.48.3'@@ -2193,6 +2361,18 @@     minor:     patch: +  - user_agent_string: 'Google Web Preview'+    family: 'Other'+    major:+    minor:+    patch:++  - user_agent_string: 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko; Google Web Preview) Chrome/27.0 .1453 Safari/537.36.'+    family: 'Chrome'+    major: '27'+    minor: '0'+    patch:+   - user_agent_string: 'HiddenMarket-1.0-beta (www.hiddenmarket.net/crawler.php)'     family: 'HiddenMarket'     major:@@ -3711,6 +3891,30 @@     minor: '7'     patch: +  - user_agent_string: 'Mozilla/5.0 (Linux; Android 5.0.1; SAMSUNG GT-I9506-ORANGE Build/LRX22C) AppleWebKit/537.36 (KHTML, like Gecko) SamsungBrowser/2.1 Chrome/34.0.1847.76 Mobile Safari/537.36'+    family: 'Samsung Internet'+    major: '2'+    minor: '1'+    patch:++  - user_agent_string: 'Mozilla/5.0 (Linux; Android 5.0.2; SAMSUNG SM-T800 Build/LRX22G) AppleWebKit/537.36 (KHTML, like Gecko) SamsungBrowser/3.0 Chrome/38.0.2125.102 Safari/537.36'+    family: 'Samsung Internet'+    major: '3'+    minor: '0'+    patch:++  - user_agent_string: 'Mozilla/5.0 (Linux; Android 5.1.1; SAMSUNG SM-G920F Build/LMY47X) AppleWebKit/537.36 (KHTML, like Gecko) SamsungBrowser/3.2 Chrome/38.0.2125.102 Mobile Safari/537.36'+    family: 'Samsung Internet'+    major: '3'+    minor: '2'+    patch:++  - user_agent_string: 'Mozilla/5.0 (Linux; Android 5.0.2; SAMSUNG SM-T710 Build/LRX22G) AppleWebKit/537.36 (KHTML, like Gecko) SamsungBrowser/3.5 Chrome/38.0.2125.102 Safari/537.36'+    family: 'Samsung Internet'+    major: '3'+    minor: '5'+    patch:+   - user_agent_string: 'ScSpider/0.2'     family: 'ScSpider'     major: '0'@@ -5721,6 +5925,12 @@     minor:     patch: +  - user_agent_string: 'NL-Crawler'+    family: 'NL-Crawler'+    major:+    minor:+    patch:+   - user_agent_string: 'Mozilla/5.0 (compatible; YoudaoBot-rts/1.0; http://www.youdao.com/help/webmaster/spider/; )'     family: 'YoudaoBot'     major:@@ -6345,8 +6555,14 @@     minor: '2'     patch: '1' +  - user_agent_string: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_4) AppleWebKit/537.36 (KHTML, like Gecko) pagedraw/0.1.0 Chrome/49.0.2623.75 Electron/0.37.8 Safari/537.36'+    family: 'Electron'+    major: '0'+    minor: '37'+    patch: '8'+   - user_agent_string: 'Mozilla/5.0 (iPad; U; CPU OS 4_3_2 like Mac OS X; en-us) AppleWebKit/533.17.9 (KHTML, like Gecko) Mobile'-    family: 'Mobile Safari UIWebView'+    family: 'Mobile Safari UI/WKWebView'     major: '4'     minor: '3'     patch: '2'@@ -6422,3 +6638,551 @@     major: '12'     minor: '0'     patch:++  - user_agent_string: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_2) AppleWebKit/537.36 (KHTML, like Gecko) brave/0.7.11 Chrome/47.0.2526.110 Brave/0.36.5 Safari/537.36'+    family: 'Brave'+    major: '0'+    minor: '7'+    patch: '11'++  - user_agent_string: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) brave/0.7.12 Chrome/47.0.2526.110 Brave/0.36.7 Safari/537.36 '+    family: 'Brave'+    major: '0'+    minor: '7'+    patch: '12'++  - user_agent_string: 'Mozilla/5.0 (Windows NT 6.3; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) brave/0.7.10 Chrome/47.0.2526.110 Brave/0.36.5 Safari/537.36'+    family: 'Brave'+    major: '0'+    minor: '7'+    patch: '10'++  - user_agent_string: 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome Safari/537.36'+    family: 'HeadlessChrome'+    major:+    minor:+    patch:++  - user_agent_string: 'Roku/DVP-6.2 (096.02E06005A)'+    family: 'Roku'+    major: '6'+    minor: '2'+    patch:++  - user_agent_string: 'Roku/DVP-5.0 (025.00E08043A)'+    family: 'Roku'+    major: '5'+    minor: '0'+    patch:++  - user_agent_string: 'Roku/DVP-5.1 (025.01E01195A)'+    family: 'Roku'+    major: '5'+    minor: '1'+    patch:++  - user_agent_string: 'Microsoft Office/12.0 (Windows NT 6.1; Microsoft Office Outlook 12.0.6739; Pro)'+    family: 'Outlook'+    major: '2007'+    minor:+    patch:++  - user_agent_string: 'Microsoft Office/14.0 (Windows NT 6.1; Microsoft Outlook 14.0.5128; Pro)'+    family: 'Outlook'+    major: '2010'+    minor:+    patch:++  - user_agent_string: 'Microsoft Office/16.0 (Microsoft Outlook Mail 16.0.6525; Pro)'+    family: 'Outlook'+    major: '2016'+    minor:+    patch:++  - user_agent_string: 'Microsoft Office/16.0 (Windows NT 10.0; Microsoft Outlook 16.0.6326; Pro)'+    family: 'Outlook'+    major: '2016'+    minor:+    patch:++  - user_agent_string: 'Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 10.0; WOW64; Trident/8.0; .NET4.0C; .NET4.0E; .NET CLR 2.0.50727; .NET CLR 3.0.30729; .NET CLR 3.5.30729; Microsoft Outlook 16.0.6366; ms-office; MSOffice 16)'+    family: 'Outlook'+    major: '2016'+    minor:+    patch:++  - user_agent_string: 'Outlook-Express/7.0 (MSIE 7.0; Windows NT 6.1; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; TmstmpExt)'+    family: 'Windows Live Mail'+    major:+    minor:+    patch:++  - user_agent_string: 'Outlook-Express/7.0 (MSIE 7.0; Windows NT 5.1; Trident/4.0; AskTB5.6; TmstmpExt)'+    family: 'Windows Live Mail'+    major:+    minor:+    patch:++  - user_agent_string: 'Outlook-Express/7.0 (MSIE 7.0; Windows NT 6.1; WOW64; Trident/4.0; SLCC2; Media Center PC 6.0; OfficeLiveConnector.1.4; OfficeLivePatch.1.3; InfoPath.3; FDM; TmstmpExt)'+    family: 'Windows Live Mail'+    major:+    minor:+    patch:++  - user_agent_string: 'Outlook-Express/7.0 (MSIE 6.0; Windows NT 5.1; SV1; GTB6.3; .NET CLR 2.0.50727; .NET CLR 3.0.04506.30; InfoPath.2; .NET CLR 3.0.04506.648; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729; OfficeLiveConnector.1.3; OfficeLivePatch.0.0; TmstmpExt)'+    family: 'Windows Live Mail'+    major:+    minor:+    patch:++  - user_agent_string: 'Outlook-Express/7.0 (MSIE 8; Windows NT 5.1; Trident/4.0; GTB7.0; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729; TmstmpExt)'+    family: 'Windows Live Mail'+    major:+    minor:+    patch:++  - user_agent_string: 'Outlook-Express/7.0 (MSIE 8.0; Windows NT 5.1; Trident/4.0; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729; InfoPath.1; TmstmpExt)'+    family: 'Windows Live Mail'+    major:+    minor:+    patch:++  - user_agent_string: 'Outlook-Express/7.0 (MSIE 9.0; Windows NT 6.1; WOW64; Trident/5.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; HPDTDF; .NET4.0C; BRI/2; AskTbLOL/5.12.5.17640; TmstmpExt)'+    family: 'Windows Live Mail'+    major:+    minor:+    patch:++  - user_agent_string: 'Mozilla/5.0 (Linux; Android 5.0.1; GT-I9505 Build/LRX22C) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/47.0.2526.111 YaBrowser/16.2.1.1239.00 Mobile Safari/537.36'+    family: 'Yandex Browser'+    major: '16'+    minor: '2'+    patch: '1'++  - user_agent_string: 'Mozilla/5.0 (Linux; Android 4.4.2; SM-G800F Build/KOT49H) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/36.0.1985.135 MobileIron/1.6.0 Mobile Safari/537.36'+    family: 'MobileIron'+    major: '1'+    minor: '6'+    patch: '0'++  - user_agent_string: 'Mozilla/5.0 (Linux; Android 4.4.4; GT-I9195I Build/KTU84P) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/43.0.2357.130 Crosswalk/14.43.343.17 Mobile Safari/537.36'+    family: 'Crosswalk'+    major: '14'+    minor: '43'+    patch: '343'++  - user_agent_string: 'Mozilla/5.0 (Linux; Android 6.0.1; Z831 Build/MMB29M) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.94 Mobile Crosswalk/11.45.2454.20160425 Mobile Safari/537.36'+    family: 'Crosswalk'+    major: '11'+    minor: '45'+    patch: '2454'++  - user_agent_string: 'Mozilla/5.0 (Linux; Android 4.1.2; GT-S7710 Build/JZO54K) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.166 Mobile'+    family: 'Chrome Mobile'+    major: '18'+    minor: '0'+    patch: '1025'++  - user_agent_string: 'Mozilla/5.0 (iPad; U; CPU OS 5_1_1 like Mac OS X; en-us) AppleWebKit/534.46.0 (KHTML, like Gecko) Chrome/19.0.1084.60 Mobile/9B206 Safari/7534.48.3'+    family: 'Chrome Mobile'+    major: '19'+    minor: '0'+    patch: '1084'++  - user_agent_string: 'Mozilla/5.0 (Linux; U; Android 4.4.4; de-de; SM-G850F Build/KTU84P) AppleWebKit/537.16 (KHTML, like Gecko) Version/4.0 Mobile Safari/537.16 Chrome/33.0.0.0'+    family: 'Chrome Mobile'+    major: '33'+    minor: '0'+    patch: '0'++  - user_agent_string: 'Mozilla/5.0 (Web0S; Linux/SmartTV) AppleWebKit/537.41 (KHTML, like Gecko) Large Screen WebAppManager Safari/537.41'+    family: 'Safari'+    major:+    minor:+    patch:++  - user_agent_string: 'MacOutlook/15.27.0.161010 (Intelx64 Mac OS X Version 10.11.6 (Build 15G1108))'+    family: 'MacOutlook'+    major: '15'+    minor: '27'+    patch: '0'++  - user_agent_string: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_6) AppleWebKit/601.7.8 (KHTML, like Gecko) Slack_SSB/2.0.3'+    family: 'Slack Desktop Client'+    major: '2'+    minor: '0'+    patch: '3'++  - user_agent_string: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_4) AppleWebKit/537.36 (KHTML, like Gecko) AtomShell/2.6.0 Chrome/56.0.2924.87 Electron/1.6.3 Safari/537.36 MacAppStore/16.5.0 Slack_SSB/2.6.0'+    family: 'Slack Desktop Client'+    major: '2'+    minor: '6'+    patch: '0'++  - user_agent_string: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_6) AppleWebKit/537.36 (KHTML, like Gecko) Slack/2.6.0-beta18998559 Chrome/56.0.2924.87 AtomShell/1.6.3 Safari/537.36 Slack_SSB/2.6.0'+    family: 'Slack Desktop Client'+    major: '2'+    minor: '6'+    patch: '0'++  - user_agent_string: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_4) AppleWebKit/603.1.30 (KHTML, like Gecko) HipChat/732 (modern)'+    family: 'HipChat Desktop Client'+    major: '732'+    minor:+    patch:++  - user_agent_string: 'HipChat Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) QtWebEngine/5.7.0 Chrome/49.0.2623.111 Safari/537.36'+    family: 'HipChat Desktop Client'+    major:+    minor:+    patch:++  - user_agent_string: 'Microsoft-CryptoAPI/6.1'+    family: 'Microsoft-CryptoAPI'+    major: '6'+    minor: '1'+    patch:++  - user_agent_string: 'Microsoft SkyDriveSync 17.3.6517.0809 ship; Windows NT 6.1 Service Pack 1 (7601)'+    family: 'Microsoft SkyDriveSync'+    major: '17'+    minor: '3'+    patch: '6517'++  - user_agent_string: 'ExchangeServicesClient/14.02.0051.000'+    family: 'ExchangeServicesClient'+    major: '14'+    minor: '02'+    patch: '0051'++  - user_agent_string: 'Mac OS X/10.11.6 (15G1004); ExchangeWebServices/6.0 (243); Mail/9.3 (3124)'+    family: 'ExchangeWebServices'+    major: '6'+    minor: '0'+    patch:++  - user_agent_string: 'Mozilla/5.0+(iPhone;+CPU+iPhone+OS+9_3_1+like+Mac+OS+X)+AppleWebKit/601.1.46+(KHTML,+like+Gecko)+Version/9.0+Mobile/13E238+Safari/601.1'+    family: 'Mobile Safari'+    major: '9'+    minor: '0'+    patch:++  - user_agent_string: 'Mozilla/5.0+(iPad;+CPU+OS+9_3_1+like+Mac+OS+X)+AppleWebKit/601.1.46+(KHTML,+like+Gecko)+Version/9.0+Mobile/13E238+Safari/601.1'+    family: 'Mobile Safari'+    major: '9'+    minor: '0'+    patch:++  - user_agent_string: 'Slackbot-LinkExpanding 1.0 (+https://api.slack.com/robots)'+    family: 'Slackbot-LinkExpanding'+    major: '1'+    minor: '0'+    patch:++  - user_agent_string: 'Slack-ImgProxy 1.136 (+https://api.slack.com/robots)'+    family: 'Slack-ImgProxy'+    major: '1'+    minor: '136'+    patch:++  - user_agent_string: 'okhttp/3.4.2'+    family: 'okhttp'+    major: '3'+    minor: '4'+    patch: '2'++  - user_agent_string: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_0) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1300.0 Iron/23.0.1300.0 Safari/537.11'+    family: 'Iron'+    major: '23'+    minor: '0'+    patch: '1300'++  - user_agent_string: 'Mozilla/5.0 (X11; U; Linux x86_64; en-US) AppleWebKit/534.13 (KHTML, like Gecko) Iron/9.0.600.2 Chrome/9.0.600.2 Safari/534.13'+    family: 'Iron'+    major: '9'+    minor: '0'+    patch: '600'++  - user_agent_string: 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2750.0 Iron Safari/537.36'+    family: 'Iron'+    major: '52'+    minor: '0'+    patch: '2750'++  - user_agent_string: 'Mozilla/5.0 (Android; U; en-US) AppleWebKit/533.19.4 (KHTML, like Gecko) AdobeAIR/23.0'+    family: 'AdobeAIR'+    major: '23'+    minor: '0'+    patch:++  - user_agent_string: 'Mozilla/5.0 (Macintosh; U; Intel Mac OS X; en-US) AppleWebKit/533.19.4 (KHTML, like Gecko) AdobeAIR/19.0'+    family: 'AdobeAIR'+    major: '19'+    minor: '0'+    patch:++  - user_agent_string: 'Mozilla/5.0 (iOS; U; en-US) AppleWebKit/533.19.4 (KHTML, like Gecko) AdobeAIR/19.0'+    family: 'AdobeAIR'+    major: '19'+    minor: '0'+    patch:++  - user_agent_string: 'Kurio/3.0.8 Build 65303(Android Kitkat 4.4.4; Phone)'+    family: 'Kurio App'+    major: '3'+    minor: '0'+    patch: '8'++  - user_agent_string: 'BacaBerita App/5.5.0 (Linux; U; Android 4.4.4; en-us) Mobile Safari'+    family: 'BacaBerita App'+    major: '5'+    minor: '5'+    patch: '0'++  - user_agent_string: 'Mozilla/5.0 (Windows NT 5.1) AppleWebKit/537.36 (KHTML, like Gecko) MxBrowser/4.5.2.2000 Chrome/30.0.1551.0 Safari/537.36'+    family: 'Maxthon'+    major: '4'+    minor: '5'+    patch: '2'++  - user_agent_string: 'Mozilla/5.0 (Windows NT 5.1) AppleWebKit/537.36 (KHTML, like Gecko) Maxthon/4.4.5.1000 Chrome/30.0.1599.101 Safari/537.36'+    family: 'Maxthon'+    major: '4'+    minor: '4'+    patch: '5'++  - user_agent_string: 'Mozilla/5.0 (Linux; Android 7.0; SM-G930P Build/NRD90M; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/58.0.3029.83 Mobile Safari/537.36 MxBrowser/4.5.10.7000'+    family: 'Maxthon'+    major: '4'+    minor: '5'+    patch: '10'++  - user_agent_string: 'Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.6 (KHTML, like Gecko) Chrome/18.0.1025.133 Safari/537.6 Midori/0.5'+    family: 'Midori'+    major: '0'+    minor: '5'+    patch:++  - user_agent_string: 'Mozilla/5.0 (iPad; U; CPU like Mac OS X; FIT_LANG_REPLACE) AppleWebKit/532+ (KHTML, like Gecko) Version/3.0 Mobile/1A538b Safari/419.3 Midori/0.4'+    family: 'Midori'+    major: '0'+    minor: '4'+    patch:++  - user_agent_string: 'curl/7.29.0'+    family: 'curl'+    major: '7'+    minor: '29'+    patch: '0'++  - user_agent_string: 'Debian APT-HTTP/1.3 (1.0.1ubuntu2)'+    family: 'Debian APT-HTTP'+    major: '1'+    minor: '3'+    patch:++  - user_agent_string: 'jupdate'+    family: 'jupdate'+    major:+    minor:+    patch:++  - user_agent_string: 'libcurl-agent/1.0'+    family: 'libcurl-agent'+    major: '1'+    minor: '0'+    patch:++  - user_agent_string: 'libwww-perl/6.05'+    family: 'libwww-perl'+    major: '6'+    minor: '05'+    patch:++  - user_agent_string: 'Microsoft-CryptoAPI/6.3'+    family: 'Microsoft-CryptoAPI'+    major: '6'+    minor: '3'+    patch:++  - user_agent_string: 'OpenBSD ftp'+    family: 'OpenBSD ftp'+    major:+    minor:+    patch:++  - user_agent_string: 'SophosAgent/1.0 (type= spa )'+    family: 'SophosAgent'+    major: '1'+    minor: '0'+    patch:++  - user_agent_string: 'SophosUpdateManager/1.5.7.50 SDDS/2.0 (u= EO2ANA123G c= 6342da15-f351-4ab7-9656-3f5f2d50885d )'+    family: 'SophosUpdateManager'+    major: '1'+    minor: '5'+    patch: '7'++  - user_agent_string: 'Ubuntu APT-HTTP/1.3 (0.7.20.2ubuntu6)'+    family: 'Ubuntu APT-HTTP'+    major: '1'+    minor: '3'+    patch:++  - user_agent_string: 'urlgrabber/3.10 yum/3.4.3'+    family: 'urlgrabber'+    major: '3'+    minor: '10'+    patch:++  - user_agent_string: 'urlgrabber/3.9.1 yum/3.2.29'+    family: 'urlgrabber'+    major: '3'+    minor: '9'+    patch: '1'++  - user_agent_string: 'Wget/1.14 (linux-gnu)'+    family: 'Wget'+    major: '1'+    minor: '14'+    patch:++  - user_agent_string: 'Windows-Update-Agent/7.9.9600.17729 Client-Protocol/1.21'+    family: 'Windows-Update-Agent'+    major: '7'+    minor: '9'+    patch: '9600'++  - user_agent_string: 'Windows-Update-Agent/7.9.9600.18094 Client-Protocol/1.21'+    family: 'Windows-Update-Agent'+    major: '7'+    minor: '9'+    patch: '9600'++  - user_agent_string: 'Mozilla/5.0 (Linux; Android 5.1.1; MI NOTE Pro Build/LMY47V; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/48.0.2564.116 Mobile Safari/537.36 baidubrowser/7.7.13.0 (Baidu; P1 5.1.1)'+    family: 'Baidu Browser'+    major: '7'+    minor: '7'+    patch: '13'++  - user_agent_string: 'Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Dragon/36.1.1.21 Chrome/36.0.1985.97 Safari/537.36'+    family: 'Dragon'+    major: '36'+    minor: '1'+    patch: '1'++  - user_agent_string: 'Mozilla/5.0 (Windows; U; Windows CE 5.1; rv:1.8.1a3) Gecko/20060610 Minimo/0.016'+    family: 'Minimo'+    major: '0'+    minor: '016'+    patch:++  - user_agent_string: 'Opera/9.80 (MAUI Runtime; Opera Mini/4.4.39008/37.9178; U; en) Presto/2.12.423 Version/12.16'+    family: 'Opera Mini'+    major: '4'+    minor: '4'+    patch: '39008'++  - user_agent_string: 'Mozilla/5.0 (compatible; 008/0.83; http://www.80legs.com/spider.html) Gecko/2008032620'+    family: '008'+    major: '0'+    minor: '83'+    patch:++  - user_agent_string: 'Mozilla/5.0 (iPhone; CPU iPhone OS 9_3_4 like Mac OS X) AppleWebKit/601.1 (KHTML, like Gecko) Outlook-iOS-Android/1.0 Mobile/13G35 Safari/601.1.46")'+    family: 'Outlook-iOS-Android'+    major: '1'+    minor: '0'+    patch:++  - user_agent_string: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/53.0.2785.21 Safari/537.36 MMS/1.0.2459.0'+    family: 'Opera Neon'+    major: '1'+    minor: '0'+    patch: '2459'++  - user_agent_string: 'PANTECH-EUROPA-U4000-orange/1.0 Obigo/Q04C MMS/1.2.0 profile/MIDP-2.0 configuration/CLDC-1.1'+    family: 'Obigo'+    major: '04'+    minor:+    patch:++  - user_agent_string: 'masscan/1.0 (https://github.com/robertdavidgraham/masscan)'+    family: 'masscan'+    major: '1'+    minor: '0'+    patch:+++  - user_agent_string: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36 SznProhlizec/3.8.4 NWjs/0.19.6'+    family: 'Seznam.cz'+    major: '3'+    minor: '8'+    patch: '4'+ +  - user_agent_string: 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_2_1 like Mac OS X) AppleWebKit/602.4.6 (KHTML, like Gecko) Mobile/14D27 SznProhlizec/4.4i'+    family: 'Seznam.cz'+    major: '4'+    minor: '4'+    patch:++  - user_agent_string: 'Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) coc_coc_browser/42.0 CoRom/36.0.1985.144 Chrome/36.0.1985.144 Safari/537.36'+    family: 'Coc Coc'+    major: '42'+    minor: '0'+    patch:++  - user_agent_string: 'Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) coc_coc_browser/49.0 Chrome/43.0.2357.138 Safari/537.36'+    family: 'Coc Coc'+    major: '49'+    minor: '0'+    patch:++  - user_agent_string: 'Mozilla/5.0 (Windows NT 5.1) AppleWebKit/537.36 (KHTML, like Gecko) coc_coc_browser/50.0.125 Chrome/44.0.2403.125 Safari/537.36'+    family: 'Coc Coc'+    major: '50'+    minor: '0'+    patch: '125'++  - user_agent_string: 'Mozilla/5.0 (compatible; Qwantify/2.4w; +https://www.qwant.com/)/2.4w'+    family: 'Qwantify'+    major: '2'+    minor: '4'+    patch:++  - user_agent_string: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/42.0.2311.135 Safari/537.36 Edge/12'+    family: 'Edge'+    major: '12'+    minor:+    patch:++  - user_agent_string: 'Bloglovin/1.0 (http://www.bloglovin.com; 1000 subscribers)'+    family: 'Bloglovin'+    major: '1'+    minor: '0'+    patch:++  - user_agent_string: 'Feedbin feed-id:1033517 - 1000 subscribers'+    family: 'Feedbin'+    major:+    minor:+    patch:++  - user_agent_string: 'Tiny Tiny RSS/16.3 (http://tt-rss.org/)'+    family: 'Tiny Tiny RSS'+    major: '16'+    minor: '3'+    patch:++  - user_agent_string: 'Mtps Feed Aggregation System'+    family: 'Mtps Feed Aggregation System'+    major:+    minor:+    patch:++  - user_agent_string: 'Stringer'+    family: 'Stringer'+    major:+    minor:+    patch:+
ua-parser.cabal view
@@ -1,6 +1,6 @@ name:                ua-parser description:         Please refer to the git/github README on the project for example usage.-version:             0.7.3+version:             0.7.4 synopsis:            A library for parsing User-Agent strings, official Haskell port of ua-parser license:             BSD3 license-file:        LICENSE