Exemple #1
0
 private function identifyBasedOnModel($model)
 {
     $device = Data\DeviceModels::identify('bada', $model);
     if ($device->identified) {
         $device->identified |= $this->data->device->identified;
         $this->data->device = $device;
         if (!isset($this->data->os->name) || $this->data->os->name != 'Bada') {
             $this->data->os->name = 'Bada';
             $this->data->os->version = null;
         }
         return true;
     }
     $device = Data\DeviceModels::identify('blackberry', $model);
     if ($device->identified) {
         $device->identified |= $this->data->device->identified;
         $this->data->device = $device;
         if (!isset($this->data->os->name) || $this->data->os->name != 'BlackBerry OS') {
             $this->data->os->name = 'BlackBerry OS';
             $this->data->os->version = null;
         }
         return true;
     }
     $device = Data\DeviceModels::identify('wm', $model);
     if ($device->identified) {
         $device->identified |= $this->data->device->identified;
         $this->data->device = $device;
         if (!isset($this->data->os->name) || $this->data->os->name != 'Windows Mobile') {
             $this->data->os->name = 'Windows Mobile';
             $this->data->os->version = null;
         }
         return true;
     }
 }
Exemple #2
0
 public function __construct($header, &$data)
 {
     $this->data =& $data;
     $parts = explode('/', $header);
     if ($this->data->browser->name != 'Puffin') {
         $this->data->browser->name = 'Puffin';
         $this->data->browser->version = null;
         $this->data->browser->stock = false;
     }
     $this->data->device->type = 'mobile';
     if (count($parts) > 1 && $parts[0] == 'Android') {
         if (!isset($this->data->os->name) || $this->data->os->name != 'Android') {
             $this->data->os->name = 'Android';
             $this->data->os->version = null;
         }
         $device = Data\DeviceModels::identify('android', $parts[1]);
         if ($device->identified) {
             $device->identified |= $this->data->device->identified;
             $this->data->device = $device;
         }
     }
     if (count($parts) > 1 && $parts[0] == 'iPhone OS') {
         if (!isset($this->data->os->name) || $this->data->os->name != 'iOS') {
             $this->data->os->name = 'iOS';
             $this->data->os->version = null;
         }
         $device = Data\DeviceModels::identify('ios', $parts[1]);
         if ($device->identified) {
             $device->identified |= $this->data->device->identified;
             $this->data->device = $device;
         }
     }
 }
		private function analyseOperaMiniPhone($ua) {
			@list($manufacturer, $model) = explode(' # ', $ua);

			if ($manufacturer != '?' && $model != '?') {
				if (!$this->device->identified && $this->os->name == 'Bada') {
					$device = Data\DeviceModels::identify('bada', $model);
					if ($device->identified) {
						$device->identified |= $this->device->identified;
						$this->device = $device;
					}
				}

				if (!$this->device->identified && $this->os->name == 'Blackberry') {
					$device = Data\DeviceModels::identify('blackberry', $model);
					if ($device->identified) {
						$device->identified |= $this->device->identified;
						$this->device = $device;
					}
				}

				if (!$this->device->identified && $this->os->name == 'Windows Mobile') {
					$device = Data\DeviceModels::identify('wm', $model);
					if ($device->identified) {
						$device->identified |= $this->device->identified;
						$this->device = $device;
					}
				}

				if (!$this->device->identified) {
					$this->device->manufacturer = $manufacturer;
					$this->device->model = $model;
					$this->device->identified = true;
				}
			}
		}
Exemple #4
0
 private function detectPalm($ua)
 {
     if (preg_match('/PalmOS/iu', $ua, $match)) {
         $this->data->os->name = 'Palm OS';
         $this->data->device->type = Constants\DeviceType::PDA;
         if (preg_match('/PalmOS ([0-9.]*)/iu', $ua, $match)) {
             $this->data->os->version = new Version(['value' => $match[1]]);
         }
         if (preg_match('/; ([^;)]+)\\)/u', $ua, $match)) {
             $device = Data\DeviceModels::identify('palmos', $match[1]);
             if ($device->identified) {
                 $device->identified |= $this->data->device->identified;
                 $this->data->device = $device;
             }
         }
         if (preg_match('/PalmOS\\/([a-z]+)\\/model ([^\\/]+)\\//iu', $ua, $match)) {
             $device = Data\DeviceModels::identify('palmos', $match[1] . '-' . $match[2]);
             if ($device->identified) {
                 $device->identified |= $this->data->device->identified;
                 $this->data->device = $device;
             }
         }
     }
     if (preg_match('/Palm OS ([0-9.]*)/iu', $ua, $match)) {
         $this->data->os->name = 'Palm OS';
         $this->data->os->version = new Version(['value' => $match[1]]);
         $this->data->device->type = Constants\DeviceType::PDA;
     }
     if (preg_match('/PalmSource/u', $ua, $match)) {
         $this->data->os->name = 'Palm OS';
         $this->data->os->version = null;
         $this->data->device->type = Constants\DeviceType::PDA;
         if (preg_match('/PalmSource\\/([^;]+)/u', $ua, $match)) {
             $this->data->device->model = $match[1];
             $this->data->device->identified = Constants\Id::PATTERN;
         }
         if (isset($this->data->device->model) && $this->data->device->model) {
             $device = Data\DeviceModels::identify('palmos', $this->data->device->model);
             if ($device->identified) {
                 $device->identified |= $this->data->device->identified;
                 $this->data->device = $device;
             }
         }
     }
     /* Some model markers */
     if (preg_match('/PalmPilot Pro/ui', $ua, $match)) {
         $this->data->device->manufacturer = 'Palm';
         $this->data->device->model = 'Pilot Professional';
         $this->data->device->identified |= Constants\Id::MATCH_UA;
     }
     if (preg_match('/pdQbrowser/ui', $ua, $match)) {
         $this->data->device->manufacturer = 'Kyocera';
         $this->data->device->model = 'QCP-6035';
         $this->data->device->identified |= Constants\Id::MATCH_UA;
     }
 }
Exemple #5
0
 private function detectPalm($ua)
 {
     if (preg_match('/PalmOS/iu', $ua, $match)) {
         $this->data->os->name = 'Palm OS';
         $this->data->device->type = Constants\DeviceType::PDA;
         if (preg_match('/PalmOS ([0-9.]*)/iu', $ua, $match)) {
             $this->data->os->version = new Version(['value' => $match[1]]);
         }
         if (preg_match('/; ([^;)]+)\\)/u', $ua, $match)) {
             $device = Data\DeviceModels::identify('palmos', $match[1]);
             if ($device->identified) {
                 $device->identified |= $this->data->device->identified;
                 $this->data->device = $device;
             }
         }
         if (preg_match('/PalmOS\\/([a-z]+)\\/model ([^\\/]+)\\//iu', $ua, $match)) {
             $device = Data\DeviceModels::identify('palmos', $match[1] . '-' . $match[2]);
             if ($device->identified) {
                 $device->identified |= $this->data->device->identified;
                 $this->data->device = $device;
             }
         }
     }
     if (preg_match('/Palm OS ([0-9.]*)/iu', $ua, $match)) {
         $this->data->os->name = 'Palm OS';
         $this->data->os->version = new Version(['value' => $match[1]]);
         $this->data->device->type = Constants\DeviceType::PDA;
     }
     if (preg_match('/PalmSource/u', $ua, $match)) {
         $this->data->os->name = 'Palm OS';
         $this->data->os->version = null;
         $this->data->device->type = Constants\DeviceType::PDA;
         if (preg_match('/PalmSource\\/([^;]+)/u', $ua, $match)) {
             $this->data->device->model = $match[1];
             $this->data->device->identified = Constants\Id::PATTERN;
         }
         if (isset($this->data->device->model) && $this->data->device->model) {
             $device = Data\DeviceModels::identify('palmos', $this->data->device->model);
             if ($device->identified) {
                 $device->identified |= $this->data->device->identified;
                 $this->data->device = $device;
             }
         }
     }
 }
Exemple #6
0
 /**
  * Identify the manufacturer and model based on a pattern
  *
  * @param   string      $pattern   The regular expression that defines the group that matches the model
  * @param   string      $subject   The string the regular expression is matched with
  * @param   array|null  $defaults  An optional array of properties to set together
  *
  * @return string
  */
 public function identifyModel($pattern, $subject, $defaults = [])
 {
     if (preg_match($pattern, $subject, $match)) {
         $this->manufacturer = !empty($defaults['manufacturer']) ? $defaults['manufacturer'] : null;
         $this->model = Data\DeviceModels::cleanup($match[1]);
         $this->identifier = preg_replace('/ (Mozilla|Opera|Obigo|Build|Java|PPC)$/iu', '', $match[0]);
         if (isset($defaults['model'])) {
             if (is_callable($defaults['model'])) {
                 $this->model = call_user_func($defaults['model'], $this->model);
             } else {
                 $this->model = $defaults['model'];
             }
         }
         $this->generic = false;
         $this->identified |= Constants\Id::PATTERN;
         if (!empty($defaults['type'])) {
             $this->type = $defaults['type'];
         }
     }
 }
		private function analysePuffinUserAgent($ua) {
			$parts = explode('/', $ua);

			if ($this->browser->name != 'Puffin') {
				$this->browser->name = 'Puffin';
				$this->browser->version = null;
				$this->browser->stock = false;
			}

			$this->device->type = 'mobile';

			if (count($parts) > 1 && $parts[0] == 'Android') {
				if (!isset($this->os->name) || $this->os->name != 'Android') {
					$this->os->name = 'Android';
					$this->os->version = null;
				}

				$device = Data\DeviceModels::identify('android', $parts[1]);
				if ($device->identified) {
					$device->identified |= $this->device->identified;
					$this->device = $device;
				}
			}

			if (count($parts) > 1 && $parts[0] == 'iPhone OS') {
				if (!isset($this->os->name) || $this->os->name != 'iOS') {
					$this->os->name = 'iOS';
					$this->os->version = null;
				}

				$device = Data\DeviceModels::identify('ios', $parts[1]);

				if ($device->identified) {
					$device->identified |= $this->device->identified;
					$this->device = $device;
				}
			}
		}
Exemple #8
0
 private function &detectCamouflagedAndroidBrowser($ua)
 {
     if (preg_match('/Mac OS X 10_6_3; ([^;]+); [a-z]{2}(?:-[a-z]{2})?\\)/u', $ua, $match)) {
         $this->data->browser->name = 'Android Browser';
         $this->data->browser->version = null;
         $this->data->browser->mode = 'desktop';
         $this->data->os->name = 'Android';
         $this->data->os->alias = null;
         $this->data->os->version = null;
         $this->data->engine->name = 'Webkit';
         $this->data->engine->version = null;
         $this->data->device->type = 'mobile';
         $device = Data\DeviceModels::identify('android', $match[1]);
         if ($device->identified) {
             $device->identified |= $this->data->device->identified;
             $this->data->device = $device;
         }
         $this->data->features[] = 'foundDevice';
     }
     if (preg_match('/Mac OS X 10_5_7; [^\\/\\);]+\\/([^\\/\\);]+)\\//u', $ua, $match)) {
         $this->data->browser->name = 'Android Browser';
         $this->data->browser->version = null;
         $this->data->browser->mode = 'desktop';
         $this->data->os->name = 'Android';
         $this->data->os->alias = null;
         $this->data->os->version = null;
         $this->data->engine->name = 'Webkit';
         $this->data->engine->version = null;
         $this->data->device->type = 'mobile';
         $device = Data\DeviceModels::identify('android', $match[1]);
         if ($device->identified) {
             $device->identified |= $this->data->device->identified;
             $this->data->device = $device;
         }
         $this->data->features[] = 'foundDevice';
     }
     return $this;
 }
Exemple #9
0
 private function detectSpecificApplications($ua)
 {
     /* Sony Updatecenter */
     if (preg_match('/^(.*) Build\\/.* (?:com.sonyericsson.updatecenter|UpdateCenter)\\/[A-Z0-9\\.]+$/iu', $ua, $match)) {
         $this->data->browser->name = 'Sony Update Center';
         $this->data->browser->version = null;
         $this->data->browser->type = Constants\BrowserType::APP;
         $this->data->os->reset(['name' => 'Android']);
         $this->data->device->model = $match[1];
         $this->data->device->identified |= Constants\Id::PATTERN;
         $this->data->device->type = Constants\DeviceType::MOBILE;
         $device = Data\DeviceModels::identify('android', $match[1]);
         if ($device->identified) {
             $device->identified |= $this->data->device->identified;
             $this->data->device = $device;
         }
     }
     /* Sony Select SDK */
     if (preg_match('/Android [0-9\\.]+; (.*) Sony\\/.*SonySelectSDK\\/([0-9\\.]+)/iu', $ua, $match)) {
         $this->data->browser->reset();
         $this->data->browser->type = Constants\BrowserType::APP;
         $this->data->browser->using = new \WhichBrowser\Model\Using(['name' => 'Sony Select SDK', 'version' => new Version(['value' => $match[2], 'details' => 2])]);
         $this->data->device->model = $match[1];
         $this->data->device->identified |= Constants\Id::PATTERN;
         $this->data->device->type = Constants\DeviceType::MOBILE;
         $device = Data\DeviceModels::identify('android', $match[1]);
         if ($device->identified) {
             $device->identified |= $this->data->device->identified;
             $this->data->device = $device;
         }
     }
     /* Samsung Mediahub */
     if (preg_match('/^Stamhub [^\\/]+\\/([^;]+);.*:([0-9\\.]+)\\/[^\\/]+\\/[^:]+:user\\/release-keys$/iu', $ua, $match)) {
         $this->data->browser->name = 'Mediahub';
         $this->data->browser->version = null;
         $this->data->browser->type = Constants\BrowserType::APP_MEDIAPLAYER;
         $this->data->os->reset(['name' => 'Android', 'version' => new Version(['value' => $match[2]])]);
         $this->data->device->model = $match[1];
         $this->data->device->identified |= Constants\Id::PATTERN;
         $this->data->device->type = Constants\DeviceType::MOBILE;
         $device = Data\DeviceModels::identify('android', $match[1]);
         if ($device->identified) {
             $device->identified |= $this->data->device->identified;
             $this->data->device = $device;
         }
     }
     /* "Android Application" */
     if (preg_match('/Android Application/iu', $ua)) {
         if (preg_match('/^(.+) Android Application \\([0-9]+, .+ v[0-9\\.]+\\) - [a-z-]+ (.*) [a-z_-]+ - [0-9A-F]{8,8}-[0-9A-F]{4,4}-[0-9A-F]{4,4}-[0-9A-F]{4,4}-[0-9A-F]{12,12}$/iu', $ua, $match)) {
             $this->data->browser->name = $match[1];
             $this->data->browser->version = null;
             $this->data->browser->type = Constants\BrowserType::APP;
             $this->data->os->reset(['name' => 'Android']);
             $this->data->device->model = $match[2];
             $this->data->device->identified |= Constants\Id::PATTERN;
             $this->data->device->type = Constants\DeviceType::MOBILE;
             $device = Data\DeviceModels::identify('android', $match[2]);
             if ($device->identified) {
                 $device->identified |= $this->data->device->identified;
                 $this->data->device = $device;
             }
         }
         if (preg_match('/^(.+) Android Application - (.*) Build\\/(.+)  - [0-9A-F]{8,8}-[0-9A-F]{4,4}-[0-9A-F]{4,4}-[0-9A-F]{4,4}-[0-9A-F]{12,12}$/iu', $ua, $match)) {
             $this->data->browser->name = $match[1];
             $this->data->browser->version = null;
             $this->data->browser->type = Constants\BrowserType::APP;
             $this->data->os->reset(['name' => 'Android']);
             $version = Data\BuildIds::identify($match[3]);
             if ($version) {
                 $this->data->os->version = $version;
             }
             $this->data->device->model = $match[2];
             $this->data->device->identified |= Constants\Id::PATTERN;
             $this->data->device->type = Constants\DeviceType::MOBILE;
             $device = Data\DeviceModels::identify('android', $match[2]);
             if ($device->identified) {
                 $device->identified |= $this->data->device->identified;
                 $this->data->device = $device;
             }
         }
         if (preg_match('/^(.+) Android Application - [a-z-]+ (.*) [a-z_-]+$/iu', $ua, $match)) {
             $this->data->browser->name = $match[1];
             $this->data->browser->version = null;
             $this->data->browser->type = Constants\BrowserType::APP;
             $this->data->os->reset(['name' => 'Android']);
             $this->data->device->model = $match[2];
             $this->data->device->identified |= Constants\Id::PATTERN;
             $this->data->device->type = Constants\DeviceType::MOBILE;
             $device = Data\DeviceModels::identify('android', $match[2]);
             if ($device->identified) {
                 $device->identified |= $this->data->device->identified;
                 $this->data->device = $device;
             }
         }
     }
     /* AiMeiTuan */
     if (preg_match('/^AiMeiTuan \\/[^\\-]+\\-([0-9\\.]+)\\-(.*)\\-[0-9]+x[0-9]+\\-/iu', $ua, $match)) {
         $this->data->browser->name = 'AiMeiTuan';
         $this->data->browser->version = null;
         $this->data->browser->type = Constants\BrowserType::APP;
         $this->data->os->reset(['name' => 'Android', 'version' => new Version(['value' => $match[1]])]);
         $this->data->device->model = $match[2];
         $this->data->device->identified |= Constants\Id::PATTERN;
         $this->data->device->type = Constants\DeviceType::MOBILE;
         $device = Data\DeviceModels::identify('android', $match[2]);
         if ($device->identified) {
             $device->identified |= $this->data->device->identified;
             $this->data->device = $device;
         }
     }
     /* Instagram */
     if (preg_match('/^Instagram ([0-9\\.]+) Android (?:IC )?\\([0-9]+\\/([0-9\\.]+); [0-9]+dpi; [0-9]+x[0-9]+; [^;]+; ([^;]*);/iu', $ua, $match)) {
         $this->data->browser->name = 'Instagram';
         $this->data->browser->version = new Version(['value' => $match[1]]);
         $this->data->browser->type = Constants\BrowserType::APP_SOCIAL;
         $this->data->os->reset(['name' => 'Android', 'version' => new Version(['value' => $match[2]])]);
         $this->data->device->model = $match[3];
         $this->data->device->identified |= Constants\Id::PATTERN;
         $this->data->device->type = Constants\DeviceType::MOBILE;
         $device = Data\DeviceModels::identify('android', $match[3]);
         if ($device->identified) {
             $device->identified |= $this->data->device->identified;
             $this->data->device = $device;
         }
     }
     /* Pinterest */
     if (preg_match('/^Pinterest for Android( Tablet)?\\/([0-9\\.]+) \\(([^;]+); ([0-9\\.]+)\\)/iu', $ua, $match)) {
         $this->data->browser->name = 'Pinterest';
         $this->data->browser->version = new Version(['value' => $match[2]]);
         $this->data->browser->type = Constants\BrowserType::APP_SOCIAL;
         $this->data->os->reset(['name' => 'Android', 'version' => new Version(['value' => $match[4]])]);
         $this->data->device->model = $match[3];
         $this->data->device->identified |= Constants\Id::PATTERN;
         $this->data->device->type = $match[1] == ' Tablet' ? Constants\DeviceType::TABLET : Constants\DeviceType::MOBILE;
         $device = Data\DeviceModels::identify('android', $match[3]);
         if ($device->identified) {
             $device->identified |= $this->data->device->identified;
             $this->data->device = $device;
         }
     }
     /* Dr. Web Anti-Virus */
     if (preg_match('/Dr\\.Web anti\\-virus Light Version: ([0-9\\.]+) Device model: (.*) Firmware version: ([0-9\\.]+)/u', $ua, $match)) {
         $this->data->browser->name = 'Dr. Web Light';
         $this->data->browser->version = new Version(['value' => $match[1], 'details' => 2]);
         $this->data->browser->type = Constants\BrowserType::APP_ANTIVIRUS;
         $this->data->os->reset(['name' => 'Android', 'version' => new Version(['value' => $match[3]])]);
         $this->data->device->type = Constants\DeviceType::MOBILE;
         $device = Data\DeviceModels::identify('android', $match[2]);
         if ($device->identified) {
             $device->identified |= $this->data->device->identified;
             $this->data->device = $device;
         }
     }
     /* Google Earth */
     if (preg_match('/GoogleEarth\\/([0-9\\.]+)\\(Android;Android \\((.+)\\-[^\\-]+\\-user-([0-9\\.]+)\\);/u', $ua, $match)) {
         $this->data->browser->name = 'Google Earth';
         $this->data->browser->version = new Version(['value' => $match[1], 'details' => 2]);
         $this->data->browser->type = Constants\BrowserType::APP;
         $this->data->os->reset(['name' => 'Android', 'version' => new Version(['value' => $match[3]])]);
         $this->data->device->type = Constants\DeviceType::MOBILE;
         $device = Data\DeviceModels::identify('android', $match[2]);
         if ($device->identified) {
             $device->identified |= $this->data->device->identified;
             $this->data->device = $device;
         }
     }
     /* Groupon */
     if (preg_match('/Groupon\\/([0-9\\.]+) \\(Android ([0-9\\.]+); [^\\/]+ \\/ [A-Z][a-z]+ ([^;]*);/u', $ua, $match)) {
         $this->data->browser->name = 'Groupon';
         $this->data->browser->version = new Version(['value' => $match[1], 'details' => 2]);
         $this->data->browser->type = Constants\BrowserType::APP_SHOPPING;
         $this->data->os->reset(['name' => 'Android', 'version' => new Version(['value' => $match[2]])]);
         $this->data->device->type = Constants\DeviceType::MOBILE;
         $this->data->device->model = $match[3];
         $device = Data\DeviceModels::identify('android', $match[3]);
         if ($device->identified) {
             $device->identified |= $this->data->device->identified;
             $this->data->device = $device;
         }
     }
     /* Whatsapp */
     if (preg_match('/WhatsApp\\+?\\/([0-9\\.]+) (Android|S60Version|WP7)\\/([0-9\\.\\_]+) Device\\/([^\\-]+)\\-(.*)(?:-\\([0-9]+\\.[0-9]+\\))?(?:\\-H[0-9]+\\.[0-9]+\\.[0-9]+\\.[0-9]+)?$/uU', $ua, $match)) {
         $this->data->browser->name = 'WhatsApp';
         $this->data->browser->version = new Version(['value' => $match[1], 'details' => 2]);
         $this->data->browser->type = Constants\BrowserType::APP_CHAT;
         $this->data->device->type = Constants\DeviceType::MOBILE;
         $this->data->device->manufacturer = $match[4];
         $this->data->device->model = $match[5];
         $this->data->device->identified |= Constants\Id::PATTERN;
         if ($match[2] == 'Android') {
             $this->data->os->reset(['name' => 'Android', 'version' => new Version(['value' => str_replace('_', '.', $match[3])])]);
             $device = Data\DeviceModels::identify('android', $match[5]);
             if ($device->identified) {
                 $device->identified |= $this->data->device->identified;
                 $this->data->device = $device;
             }
         }
         if ($match[2] == 'WP7') {
             $this->data->os->reset(['name' => 'Windows Phone', 'version' => new Version(['value' => $match[3], 'details' => 2])]);
             $device = Data\DeviceModels::identify('wp', $match[5]);
             if ($device->identified) {
                 $device->identified |= $this->data->device->identified;
                 $this->data->device = $device;
             }
         }
         if ($match[2] == 'S60Version') {
             $this->data->os->reset(['name' => 'Series60', 'version' => new Version(['value' => $match[3]]), 'family' => new Family(['name' => 'Symbian'])]);
             $device = Data\DeviceModels::identify('symbian', $match[5]);
             if ($device->identified) {
                 $device->identified |= $this->data->device->identified;
                 $this->data->device = $device;
             }
         }
         if ($match[2] == 'WP7') {
             $this->data->os->reset(['name' => 'Windows Phone', 'version' => new Version(['value' => $match[3], 'details' => 2])]);
             $device = Data\DeviceModels::identify('wp', $match[5]);
             if ($device->identified) {
                 $device->identified |= $this->data->device->identified;
                 $this->data->device = $device;
             }
         }
     }
     /* Yahoo */
     if (preg_match('/YahooMobile(?:Messenger|Mail|Weather)\\/1.0 \\(Android (Messenger|Mail|Weather); ([0-9\\.]+)\\) \\([^;]+; ?[^;]+; ?([^;]+); ?([0-9\\.]+)\\/[^\\;\\)\\/]+\\)/u', $ua, $match)) {
         $this->data->browser->name = 'Yahoo ' . $match[1];
         $this->data->browser->version = new Version(['value' => $match[2], 'details' => 3]);
         switch ($match[1]) {
             case 'Messenger':
                 $this->data->browser->type = Constants\BrowserType::APP_CHAT;
                 break;
             case 'Mail':
                 $this->data->browser->type = Constants\BrowserType::APP_EMAIL;
                 break;
             case 'Weather':
                 $this->data->browser->type = Constants\BrowserType::APP_NEWS;
                 break;
         }
         $this->data->os->reset(['name' => 'Android', 'version' => new Version(['value' => $match[4]])]);
         $this->data->device->type = Constants\DeviceType::MOBILE;
         $device = Data\DeviceModels::identify('android', $match[3]);
         if ($device->identified) {
             $device->identified |= $this->data->device->identified;
             $this->data->device = $device;
         }
     }
     /* Yahoo Mobile App */
     if (preg_match('/YahooJMobileApp\\/[0-9\\.]+ \\(Android [a-z]+; ([0-9\\.]+)\\) \\([^;]+; ?[^;]+; ?[^;]+; ?([^;]+); ?([0-9\\.]+)\\/[^\\;\\)\\/]+\\)/u', $ua, $match)) {
         $this->data->browser->name = 'Yahoo Mobile';
         $this->data->browser->version = new Version(['value' => $match[1], 'details' => 3]);
         $this->data->browser->type = Constants\BrowserType::APP_SEARCH;
         $this->data->os->reset(['name' => 'Android', 'version' => new Version(['value' => $match[3]])]);
         $this->data->device->type = Constants\DeviceType::MOBILE;
         $device = Data\DeviceModels::identify('android', $match[2]);
         if ($device->identified) {
             $device->identified |= $this->data->device->identified;
             $this->data->device = $device;
         }
     }
     /* ICQ */
     if (preg_match('/ICQ_Android\\/([0-9\\.]+) \\(Android; [0-9]+; ([0-9\\.]+); [^;]+; ([^;]+);/u', $ua, $match)) {
         $this->data->browser->name = 'ICQ';
         $this->data->browser->version = new Version(['value' => $match[1], 'details' => 3]);
         $this->data->browser->type = Constants\BrowserType::APP_CHAT;
         $this->data->os->reset(['name' => 'Android', 'version' => new Version(['value' => $match[2]])]);
         $this->data->device->type = Constants\DeviceType::MOBILE;
         $device = Data\DeviceModels::identify('android', $match[3]);
         if ($device->identified) {
             $device->identified |= $this->data->device->identified;
             $this->data->device = $device;
         }
     }
     /* Facebook for Android */
     if (preg_match('/^\\[FBAN\\/(FB4A|PAAA);.*FBDV\\/([^;]+);.*FBSV\\/([0-9\\.]+);/u', $ua, $match)) {
         if ($match[1] == 'FB4A') {
             $this->data->browser->name = 'Facebook';
             $this->data->browser->version = null;
             $this->data->browser->type = Constants\BrowserType::APP_SOCIAL;
         }
         if ($match[1] == 'PAAA') {
             $this->data->browser->name = 'Facebook Pages';
             $this->data->browser->version = null;
             $this->data->browser->type = Constants\BrowserType::APP_SOCIAL;
         }
         $this->data->os->reset(['name' => 'Android', 'version' => new Version(['value' => $match[3]])]);
         $this->data->device->type = Constants\DeviceType::MOBILE;
         $device = Data\DeviceModels::identify('android', $match[2]);
         if ($device->identified) {
             $device->identified |= $this->data->device->identified;
             $this->data->device = $device;
         }
     }
     /* VK */
     if (preg_match('/^VKAndroidApp\\/([0-9\\.]+)-[0-9]+ \\(Android ([^;]+); SDK [^;]+; [^;]+; [a-z]+ ([^;]+);/iu', $ua, $match)) {
         $this->data->browser->name = 'VK';
         $this->data->browser->version = new Version(['value' => $match[1], 'details' => 2]);
         $this->data->browser->type = Constants\BrowserType::APP_SOCIAL;
         $this->data->os->reset(['name' => 'Android', 'version' => new Version(['value' => $match[2]])]);
         $this->data->device->model = $match[3];
         $this->data->device->identified |= Constants\Id::PATTERN;
         $this->data->device->type = Constants\DeviceType::MOBILE;
         $device = Data\DeviceModels::identify('android', $match[3]);
         if ($device->identified) {
             $device->identified |= $this->data->device->identified;
             $this->data->device = $device;
         }
     }
 }
Exemple #10
0
 private function detectSpecificApplications($ua)
 {
     /* "Android Application" */
     if (preg_match('/^(.+) Android Application \\([0-9]+, .+ v([0-9\\.]+)\\) - [a-z]+ (.*) [a-z]+ - [0-9A-F]{8,8}-[0-9A-F]{4,4}-[0-9A-F]{4,4}-[0-9A-F]{4,4}-[0-9A-F]{12,12}$/iu', $ua, $match)) {
         $this->data->browser->name = $match[1];
         $this->data->browser->version = null;
         $this->data->browser->type = Constants\BrowserType::APP;
         $this->data->os->reset(['name' => 'Android', 'version' => new Version(['value' => $match[2]])]);
         $this->data->device->model = $match[3];
         $this->data->device->identified |= Constants\Id::PATTERN;
         $this->data->device->type = Constants\DeviceType::MOBILE;
         $device = Data\DeviceModels::identify('android', $match[3]);
         if ($device->identified) {
             $device->identified |= $this->data->device->identified;
             $this->data->device = $device;
         }
     }
     /* Instagram */
     if (preg_match('/^Instagram ([0-9\\.]+) Android \\([0-9]+\\/([0-9\\.]+); [0-9]+dpi; [0-9]+x[0-9]+; [^;]+; ([^;]*);/iu', $ua, $match)) {
         $this->data->browser->name = 'Instagram';
         $this->data->browser->version = new Version(['value' => $match[1]]);
         $this->data->browser->type = Constants\BrowserType::APP_SOCIAL;
         $this->data->os->reset(['name' => 'Android', 'version' => new Version(['value' => $match[2]])]);
         $this->data->device->model = $match[3];
         $this->data->device->identified |= Constants\Id::PATTERN;
         $this->data->device->type = Constants\DeviceType::MOBILE;
         $device = Data\DeviceModels::identify('android', $match[3]);
         if ($device->identified) {
             $device->identified |= $this->data->device->identified;
             $this->data->device = $device;
         }
     }
     /* Dr. Web Anti-Virus */
     if (preg_match('/Dr\\.Web anti\\-virus Light Version: ([0-9\\.]+) Device model: (.*) Firmware version: ([0-9\\.]+)/u', $ua, $match)) {
         $this->data->browser->name = 'Dr. Web Light';
         $this->data->browser->version = new Version(['value' => $match[1], 'details' => 2]);
         $this->data->browser->type = Constants\BrowserType::APP_ANTIVIRUS;
         $this->data->os->reset(['name' => 'Android', 'version' => new Version(['value' => $match[3]])]);
         $this->data->device->type = Constants\DeviceType::MOBILE;
         $device = Data\DeviceModels::identify('android', $match[2]);
         if ($device->identified) {
             $device->identified |= $this->data->device->identified;
             $this->data->device = $device;
         }
     }
     /* Google Earth */
     if (preg_match('/GoogleEarth\\/([0-9\\.]+)\\(Android;Android \\((.+)\\-[^\\-]+\\-user-([0-9\\.]+)\\);/u', $ua, $match)) {
         $this->data->browser->name = 'Google Earth';
         $this->data->browser->version = new Version(['value' => $match[1], 'details' => 2]);
         $this->data->browser->type = Constants\BrowserType::APP;
         $this->data->os->reset(['name' => 'Android', 'version' => new Version(['value' => $match[3]])]);
         $this->data->device->type = Constants\DeviceType::MOBILE;
         $device = Data\DeviceModels::identify('android', $match[2]);
         if ($device->identified) {
             $device->identified |= $this->data->device->identified;
             $this->data->device = $device;
         }
     }
     /* Groupon */
     if (preg_match('/Groupon\\/([0-9\\.]+) \\(Android ([0-9\\.]+); [^\\/]+ \\/ ([^;]*);/u', $ua, $match)) {
         $this->data->browser->name = 'Groupon';
         $this->data->browser->version = new Version(['value' => $match[1], 'details' => 2]);
         $this->data->browser->type = Constants\BrowserType::APP_SHOPPING;
         $this->data->os->reset(['name' => 'Android', 'version' => new Version(['value' => $match[2]])]);
         $this->data->device->type = Constants\DeviceType::MOBILE;
         $device = Data\DeviceModels::identify('android', $match[3]);
         if ($device->identified) {
             $device->identified |= $this->data->device->identified;
             $this->data->device = $device;
         }
     }
     /* Whatsapp */
     if (preg_match('/WhatsApp\\+?\\/([0-9\\.]+) (Android|S60Version|WP7)\\/([0-9\\.\\_]+) Device\\/([^\\-]+)\\-(.*)(?:-\\([0-9]+\\.[0-9]+\\))?(?:\\-H[0-9]+\\.[0-9]+\\.[0-9]+\\.[0-9]+)?$/uU', $ua, $match)) {
         $this->data->browser->name = 'WhatsApp';
         $this->data->browser->version = new Version(['value' => $match[1], 'details' => 2]);
         $this->data->browser->type = Constants\BrowserType::APP_CHAT;
         $this->data->device->type = Constants\DeviceType::MOBILE;
         $this->data->device->manufacturer = $match[4];
         $this->data->device->model = $match[5];
         $this->data->device->identified |= Constants\Id::PATTERN;
         if ($match[2] == 'Android') {
             $this->data->os->reset(['name' => 'Android', 'version' => new Version(['value' => str_replace('_', '.', $match[3])])]);
             $device = Data\DeviceModels::identify('android', $match[5]);
             if ($device->identified) {
                 $device->identified |= $this->data->device->identified;
                 $this->data->device = $device;
             }
         }
         if ($match[2] == 'S60Version') {
             $this->data->os->reset(['name' => 'Series60', 'version' => new Version(['value' => $match[3]]), 'family' => new Family(['name' => 'Symbian'])]);
             $device = Data\DeviceModels::identify('symbian', $match[5]);
             if ($device->identified) {
                 $device->identified |= $this->data->device->identified;
                 $this->data->device = $device;
             }
         }
         if ($match[2] == 'WP7') {
             $this->data->os->reset(['name' => 'Windows Phone', 'version' => new Version(['value' => $match[3], 'details' => 2])]);
             $device = Data\DeviceModels::identify('wp', $match[5]);
             if ($device->identified) {
                 $device->identified |= $this->data->device->identified;
                 $this->data->device = $device;
             }
         }
     }
     /* Yahoo */
     if (preg_match('/YahooMobile(?:Messenger|Mail|Weather)\\/1.0 \\(Android (Messenger|Mail|Weather); ([0-9\\.]+)\\) \\([^;]+; ?[^;]+; ?([^;]+); ?([0-9\\.]+)\\/[^\\;\\)\\/]+\\)/u', $ua, $match)) {
         $this->data->browser->name = 'Yahoo ' . $match[1];
         $this->data->browser->version = new Version(['value' => $match[2], 'details' => 3]);
         switch ($match[1]) {
             case 'Messenger':
                 $this->data->browser->type = Constants\BrowserType::APP_CHAT;
                 break;
             case 'Mail':
                 $this->data->browser->type = Constants\BrowserType::APP_EMAIL;
                 break;
             case 'Weather':
                 $this->data->browser->type = Constants\BrowserType::APP_NEWS;
                 break;
         }
         $this->data->os->reset(['name' => 'Android', 'version' => new Version(['value' => $match[4]])]);
         $this->data->device->type = Constants\DeviceType::MOBILE;
         $device = Data\DeviceModels::identify('android', $match[3]);
         if ($device->identified) {
             $device->identified |= $this->data->device->identified;
             $this->data->device = $device;
         }
     }
     /* Yahoo Mobile App */
     if (preg_match('/YahooJMobileApp\\/[0-9\\.]+ \\(Android [a-z]+; ([0-9\\.]+)\\) \\([^;]+; ?[^;]+; ?[^;]+; ?([^;]+); ?([0-9\\.]+)\\/[^\\;\\)\\/]+\\)/u', $ua, $match)) {
         $this->data->browser->name = 'Yahoo Mobile';
         $this->data->browser->version = new Version(['value' => $match[1], 'details' => 3]);
         $this->data->browser->type = Constants\BrowserType::APP_SEARCH;
         $this->data->os->reset(['name' => 'Android', 'version' => new Version(['value' => $match[3]])]);
         $this->data->device->type = Constants\DeviceType::MOBILE;
         $device = Data\DeviceModels::identify('android', $match[2]);
         if ($device->identified) {
             $device->identified |= $this->data->device->identified;
             $this->data->device = $device;
         }
     }
 }
Exemple #11
0
<?php

namespace WhichBrowser\Data;

use WhichBrowser\Constants\DeviceType;
DeviceModels::$TIZEN_MODELS = ['Baltic' => ['Samsung', '"Baltic"'], 'SM-HIGGS' => ['Samsung', '"Higgs"'], 'KIRAN' => ['Samsung', 'Z1'], 'GT-I8800!' => ['Samsung', '"Melius"'], 'GT-I8805!' => ['Samsung', '"Redwood"'], 'GT-I9500!' => ['Samsung', 'GT-I9500 prototype'], 'SGH-N099' => ['Samsung', 'SGH-N099 prototype'], '(ARMV7 )?SM-Z9005!' => ['Samsung', 'SM-Z9005 prototype'], 'Mobile-RD-PQ' => ['Samsung', 'RD-PQ prototype'], 'TM1' => ['Samsung', 'TM1 prototype'], 'SM-Z130!' => ['Samsung', 'Z1'], 'TIZEN SM-Z130!' => ['Samsung', 'Z1'], 'SM-Z200!' => ['Samsung', 'Z2'], 'SM-Z300!' => ['Samsung', 'Z3'], 'TIZEN SM-Z300!' => ['Samsung', 'Z3'], 'SM-Z500!' => ['Samsung', 'SM-Z500'], 'SM-Z700!' => ['Samsung', 'SM-Z700'], 'SM-Z900!' => ['Samsung', 'Z'], 'SM-Z910!' => ['Samsung', 'Z'], 'Z3 Z910F' => ['Samsung', 'Z'], 'SEC SC-001' => ['Samsung', 'SC-001 prototype'], 'SEC SC-03F' => ['Samsung', 'ZeQ'], 'SC-03F' => ['Samsung', 'ZeQ'], 'SM-G870F0' => ['Samsung', 'Galaxy S5 Active'], 'SM-R720!' => ['Samsung', 'Gear S2', DeviceType::WATCH], 'SM-R730!' => ['Samsung', 'Gear S2', DeviceType::WATCH], 'SM-R750!' => ['Samsung', 'Gear S', DeviceType::WATCH], 'SM-R760!' => ['Samsung', 'Gear S3', DeviceType::WATCH], 'SM-R765!' => ['Samsung', 'Gear S3', DeviceType::WATCH], 'NX300' => ['Samsung', 'NX300', DeviceType::CAMERA], 'FamilyHub' => ['Samsung', 'Family Hub', DeviceType::APPLIANCE], 'hawkp' => ['Samsung', '"Hawkp"', DeviceType::TELEVISION], 'xu3' => ['Hardkernel', 'ODROID-XU3 developer board'], 'sdk' => [null, null, DeviceType::EMULATOR], 'Emulator' => [null, null, DeviceType::EMULATOR], 'Mobile-Emulator' => [null, null, DeviceType::EMULATOR], 'TIZEN Emulator' => [null, null, DeviceType::EMULATOR]];
Exemple #12
0
 private function detectBrew($ua)
 {
     if (preg_match('/REX; U/ui', $ua) || preg_match('/REXL4/ui', $ua)) {
         $this->data->os->name = 'REX';
         $this->data->device->type = Constants\DeviceType::MOBILE;
         if (preg_match('/REX; U; [^;]+; ([^;]+); ([^;\\/]+)[^;]*; NetFront/u', $ua, $match)) {
             $this->data->device->manufacturer = Data\Manufacturers::identify(Constants\DeviceType::MOBILE, $match[1]);
             $this->data->device->model = $match[2];
             $this->data->device->identified = Constants\Id::PATTERN;
             $device = Data\DeviceModels::identify('brew', $match[2]);
             if ($device->identified) {
                 $device->identified |= $this->data->device->identified;
                 $this->data->device = $device;
             }
         }
     }
     if (preg_match('/[\\(\\s\\-;]BREW[\\s\\/\\-;]/ui', $ua) || preg_match('/BMP( [0-9.]*)?; U/u', $ua) || preg_match('/BMP\\/([0-9.]*)/u', $ua)) {
         $this->data->os->name = 'Brew';
         if (preg_match('/BREW MP/iu', $ua) || preg_match('/BMP/iu', $ua)) {
             $this->data->os->name = 'Brew MP';
         }
         if (preg_match('/; Brew ([0-9.]+);/iu', $ua, $match)) {
             $this->data->os->version = new Version(['value' => $match[1]]);
         } elseif (preg_match('/BREW; U; ([0-9.]+)/iu', $ua, $match)) {
             $this->data->os->version = new Version(['value' => $match[1]]);
         } elseif (preg_match('/[\\(;]BREW[\\/ ]([0-9.]+)/iu', $ua, $match)) {
             $this->data->os->version = new Version(['value' => $match[1]]);
         } elseif (preg_match('/BREW MP ([0-9.]*)/iu', $ua, $match)) {
             $this->data->os->version = new Version(['value' => $match[1]]);
         } elseif (preg_match('/BMP ([0-9.]*); U/iu', $ua, $match)) {
             $this->data->os->version = new Version(['value' => $match[1]]);
         } elseif (preg_match('/BMP\\/([0-9.]*)/iu', $ua, $match)) {
             $this->data->os->version = new Version(['value' => $match[1]]);
         }
         $this->data->device->type = Constants\DeviceType::MOBILE;
         if (preg_match('/(?:Brew MP|BREW|BMP) [^;]+; U; [^;]+; ([^;]+); NetFront[^\\)]+\\) [^\\s]+ ([^\\s]+)/u', $ua, $match)) {
             $this->data->device->manufacturer = Data\Manufacturers::identify(Constants\DeviceType::MOBILE, $match[1]);
             $this->data->device->model = $match[2];
             $this->data->device->identified = Constants\Id::PATTERN;
             $device = Data\DeviceModels::identify('brew', $match[2]);
             if ($device->identified) {
                 $device->identified |= $this->data->device->identified;
                 $this->data->device = $device;
             }
         }
         if (preg_match('/\\(([^;]+);U;REX\\/[^;]+;BREW\\/[^;]+;(?:.*;)?[0-9]+\\*[0-9]+(?:;CTC\\/2.0)?\\)/u', $ua, $match)) {
             $this->data->device->model = $match[1];
             $this->data->device->identified = Constants\Id::PATTERN;
             $device = Data\DeviceModels::identify('brew', $match[1]);
             if ($device->identified) {
                 $device->identified |= $this->data->device->identified;
                 $this->data->device = $device;
             }
         }
     }
 }
<?php

namespace WhichBrowser\Data;

use WhichBrowser\Constants\DeviceType;
use WhichBrowser\Constants\DeviceSubType;
use WhichBrowser\Constants\Flag;
DeviceModels::$ANDROID_MODELS = ['Android' => [null, null], 'google sdk' => [null, null, DeviceType::EMULATOR], 'sdk' => [null, null, DeviceType::EMULATOR], 'generic' => [null, null], 'generic x86' => [null, null], 'VirtualBox!' => [null, null, DeviceType::EMULATOR], 'amd brazos' => ['AMD', 'Fusion based device', DeviceType::DEVBOARD], 'amd persimmon' => ['AMD', 'Persimmon based device', DeviceType::DEVBOARD], 'Amlogic M1 reference board' => ['Amlogic', 'M1 reference board', DeviceType::DEVBOARD], 'AML8726M' => ['Amlogic', 'AML8726-M based device', DeviceType::DEVBOARD], 'AMLOGIC8726MX' => ['Amlogic', 'AML8726-MX based device', DeviceType::DEVBOARD], 'vexpress a9' => ['ARM', 'Versatile Express development platform', DeviceType::DEVBOARD], 'sama5d3' => ['Atmel', 'SAMA5D3 based device', DeviceType::DEVBOARD], 'BEAGLEBONE' => ['BeagleBoard', 'BeagleBone', DeviceType::DEVBOARD], 'BeagleBone Black' => ['BeagleBoard', 'BeagleBone Black', DeviceType::DEVBOARD], 'BEAGLEBONEBLACK' => ['BeagleBoard', 'BeagleBone Black', DeviceType::DEVBOARD], 'BEAGLEBONEBLACK.A5C' => ['BeagleBoard', 'BeagleBone Black', DeviceType::DEVBOARD], 'NITROGEN6X' => ['Boundary Devices', 'Nitrogen6X', DeviceType::DEVBOARD], 'bcm platform' => ['Broadcom', 'BCM based device', DeviceType::DEVBOARD], 'bcm7231' => ['Broadcom', 'BCM7231 based device', DeviceType::DEVBOARD], 'bcm7425' => ['Broadcom', 'BCM7425 based device', DeviceType::DEVBOARD], 'bcm7429' => ['Broadcom', 'BCM7429 based device', DeviceType::DEVBOARD], 'bcm7435' => ['Broadcom', 'BCM7435 based device', DeviceType::DEVBOARD], 'bcm7439' => ['Broadcom', 'BCM7439 based device', DeviceType::DEVBOARD], 'bcm7445' => ['Broadcom', 'BCM7445 based device', DeviceType::DEVBOARD], 'bcm7584' => ['Broadcom', 'BCM7584 based device', DeviceType::DEVBOARD], 'BCM21654!' => ['Broadcom', 'BCM21654 based device', DeviceType::DEVBOARD], 'BCM21664!' => ['Broadcom', 'BCM21664 based device', DeviceType::DEVBOARD], 'BCM23550!' => ['Broadcom', 'BCM23550 based device', DeviceType::DEVBOARD], 'BCM28145!' => ['Broadcom', 'BCM28145 based device', DeviceType::DEVBOARD], 'BCM28155!' => ['Broadcom', 'BCM28155 based device', DeviceType::DEVBOARD], 'imx50!' => ['Freescale', 'i.MX50 based device', DeviceType::DEVBOARD], 'imx51!' => ['Freescale', 'i.MX51 based device', DeviceType::DEVBOARD], 'imx53!' => ['Freescale', 'i.MX53 based device', DeviceType::DEVBOARD], 'imx6q!' => ['Freescale', 'i.MX6Q based device', DeviceType::DEVBOARD], 'SABRESD-MX6DQ' => ['Freescale', 'i.MX6DQ based device', DeviceType::DEVBOARD], 'ODROID-A' => ['Hardkernel', 'ODROID-A developer tablet', DeviceType::TABLET], 'ODROID-U' => ['Hardkernel', 'ODROID-U developer board', DeviceType::DEVBOARD], 'ODROID-U2' => ['Hardkernel', 'ODROID-U2 developer board', DeviceType::DEVBOARD], 'ODROID-X' => ['Hardkernel', 'ODROID-X developer board', DeviceType::DEVBOARD], 'ODROID-XU' => ['Hardkernel', 'ODROID-XU developer board', DeviceType::DEVBOARD], 'ODROID-XU3' => ['Hardkernel', 'ODROID-XU3 developer board', DeviceType::DEVBOARD], 'ODROID-X2' => ['Hardkernel', 'ODROID-X2 developer board', DeviceType::DEVBOARD], 'Bay Trail Generic Platform' => ['Intel', 'Bay Trail based device', DeviceType::DEVBOARD], 'Bayley Bay' => ['Intel', 'Bay Trail based device', DeviceType::DEVBOARD], 'cedartrail' => ['Intel', 'Cedar Trail based device', DeviceType::DEVBOARD], 'mfld (dv10|dv20|gi|lw00|pr2|pr3)!' => ['Intel', 'Medfield based device', DeviceType::DEVBOARD], 'redhookbay' => ['Intel', 'Merrifield based device', DeviceType::DEVBOARD], 'saltbay' => ['Intel', 'Merrifield based device', DeviceType::DEVBOARD], 'victoriabay' => ['Intel', 'Merrifield based device', DeviceType::DEVBOARD], 'Shark Bay Client platform' => ['Intel', 'Haswell based device', DeviceType::DEVBOARD], 'BP710A' => ['Intel', 'Yukka Beach based device', DeviceType::DEVBOARD], 'yukkabeach' => ['Intel', 'Yukka Beach based device', DeviceType::DEVBOARD], 'berlin bg2!' => ['Marvell', 'Armada based device', DeviceType::DEVBOARD], 'berlin generic!' => ['Marvell', 'Armada based device', DeviceType::DEVBOARD], 'bg2 !' => ['Marvell', 'Armada based device', DeviceType::DEVBOARD], 'bg2ct !' => ['Marvell', 'Armada based device', DeviceType::DEVBOARD], 'bg2q4k !' => ['Marvell', 'Armada based device', DeviceType::DEVBOARD], 'bg2qa0v4 !' => ['Marvell', 'Armada based device', DeviceType::DEVBOARD], 'bg2qv4 !' => ['Marvell', 'Armada based device', DeviceType::DEVBOARD], 'MStar Amber3' => ['MStar', 'Amber3 based device', DeviceType::DEVBOARD], 'Konka Amber3' => ['MStar', 'Amber3 based device', DeviceType::DEVBOARD], 'mt5396!' => ['Mediatek', 'MT5396 based device', DeviceType::DEVBOARD], 'mt5399!' => ['Mediatek', 'MT5399 based device', DeviceType::DEVBOARD], 'mt5861!' => ['Mediatek', 'MT5861 based device', DeviceType::DEVBOARD], 'mt5880!' => ['Mediatek', 'MT5880 based device', DeviceType::DEVBOARD], 'mt5882!' => ['Mediatek', 'MT5882 based device', DeviceType::DEVBOARD], 'mt5890!' => ['Mediatek', 'MT5890 based device', DeviceType::DEVBOARD], 'mt6515!' => ['Mediatek', 'MT6515 based device', DeviceType::DEVBOARD], 'MTK6515' => ['Mediatek', 'MT6515 based device', DeviceType::DEVBOARD], 'mt6517!' => ['Mediatek', 'MT6517 based device', DeviceType::DEVBOARD], 'mt6571!' => ['Mediatek', 'MT6571 based device', DeviceType::DEVBOARD], 'mt6572!' => ['Mediatek', 'MT6572 based device', DeviceType::DEVBOARD], 'baoxue' => ['Mediatek', 'MT6573 based device', DeviceType::DEVBOARD], 'bird75v2' => ['Mediatek', 'MT6575 based device', DeviceType::DEVBOARD], 'eagle75v1 2' => ['Mediatek', 'MT6575 based device', DeviceType::DEVBOARD], 'mt6575!' => ['Mediatek', 'MT6575 based device', DeviceType::DEVBOARD], 'mt6577!' => ['Mediatek', 'MT6577 based device', DeviceType::DEVBOARD], 'mt6582!' => ['Mediatek', 'MT6582 based device', DeviceType::DEVBOARD], 'mt6589!' => ['Mediatek', 'MT6589 based device', DeviceType::DEVBOARD], 'MTK-MT6589' => ['Mediatek', 'MT6589 based device', DeviceType::DEVBOARD], 'MTK6589!' => ['Mediatek', 'MT6589 based device', DeviceType::DEVBOARD], 'mt6592!' => ['Mediatek', 'MT6592 based device', DeviceType::DEVBOARD], 'MTK-MT6592' => ['Mediatek', 'MT6592 based device', DeviceType::DEVBOARD], 'MTK6592' => ['Mediatek', 'MT6592 based device', DeviceType::DEVBOARD], 'mt6595!' => ['Mediatek', 'MT6595 based device', DeviceType::DEVBOARD], 'mt6599!' => ['Mediatek', 'MT6599 based device', DeviceType::DEVBOARD], 'mt8125!' => ['Mediatek', 'MT8125 based device', DeviceType::DEVBOARD], 'mt8127!' => ['Mediatek', 'MT8127 based device', DeviceType::DEVBOARD], 'mt8135!' => ['Mediatek', 'MT8135 based device', DeviceType::DEVBOARD], 'MTK--8312' => ['Mediatek', 'MT8312 based device', DeviceType::DEVBOARD], 'mt8377!' => ['Mediatek', 'MT8377 based device', DeviceType::DEVBOARD], 'mt8389!' => ['Mediatek', 'MT8389 based device', DeviceType::DEVBOARD], 'mt8580!' => ['Mediatek', 'MT8580 based device', DeviceType::DEVBOARD], 'mt8658!' => ['Mediatek', 'MT8658 based device', DeviceType::DEVBOARD], 'MBX DVBT reference board (c03ref)' => ['MBX', 'DVBT reference board', DeviceType::DEVBOARD], 'MBX Dongle board!' => ['MBX', 'Dongle board', DeviceType::DEVBOARD], 'MBX reference board!' => ['MBX', 'Reference board', DeviceType::DEVBOARD], 'NS115' => ['Nufront', 'NuSmart 115 based device', DeviceType::DEVBOARD], 'NS2816' => ['Nufront', 'NuSmart 2816 based device', DeviceType::DEVBOARD], 'Ventana' => ['Nvidia', 'Tegra Ventana development kit', DeviceType::DEVBOARD], 'Cardhu' => ['Nvidia', 'Tegra 3 based device', DeviceType::DEVBOARD], 'Panda(Board)?!' => ['Pandaboard', 'Development Kit', DeviceType::DEVBOARD], 'Omap5panda' => ['Pandaboard', 'Development Kit', DeviceType::DEVBOARD], 'MSM' => ['Qualcomm', 'Snapdragon based device', DeviceType::DEVBOARD], 'msm(7227|7627)!' => ['Qualcomm', 'Snapdragon S1 based device', DeviceType::DEVBOARD], 'msm7630!' => ['Qualcomm', 'Snapdragon S2 based device', DeviceType::DEVBOARD], 'msm8660!' => ['Qualcomm', 'Snapdragon S3 based device', DeviceType::DEVBOARD], 'msm(8x25|8625|8960)!' => ['Qualcomm', 'Snapdragon S4 based device', DeviceType::DEVBOARD], 'msm8x30!' => ['Qualcomm', 'Snapdragon S4 Plus based device', DeviceType::DEVBOARD], 'msm8610!' => ['Qualcomm', 'Snapdragon 200 based device', DeviceType::DEVBOARD], 'msm8909!' => ['Qualcomm', 'Snapdragon 210 based device', DeviceType::DEVBOARD], 'msm(8226|8228)!' => ['Qualcomm', 'Snapdragon 400 based device', DeviceType::DEVBOARD], 'MSM8926!' => ['Qualcomm', 'Snapdragon 400 based device', DeviceType::DEVBOARD], 'msm8916!' => ['Qualcomm', 'Snapdragon 410 based device', DeviceType::DEVBOARD], 'msm8952!' => ['Qualcomm', 'Snapdragon 615 based device', DeviceType::DEVBOARD], 'msm8974!' => ['Qualcomm', 'Snapdragon 800 based device', DeviceType::DEVBOARD], 'MSM8992!' => ['Qualcomm', 'Snapdragon 808 based device', DeviceType::DEVBOARD], 'msm8994!' => ['Qualcomm', 'Snapdragon 810 based device', DeviceType::DEVBOARD], 'rksdk' => ['Rockchip', 'based device', DeviceType::DEVBOARD], 'rk2808(sdk)?!' => ['Rockchip', 'RK2808 based device', DeviceType::DEVBOARD], 'rk2818(sdk)?!' => ['Rockchip', 'RK2818 based device', DeviceType::DEVBOARD], 'Android-for-Rockchip-2818' => ['Rockchip', 'RK2818 based device', DeviceType::DEVBOARD], 'RK2906' => ['Rockchip', 'RK2906 based device', DeviceType::DEVBOARD], 'RK2918' => ['Rockchip', 'RK2918 based device', DeviceType::DEVBOARD], 'rk2926-q8' => ['Rockchip', 'RK2926 based device', DeviceType::DEVBOARD], 'rk2928sdk' => ['Rockchip', 'RK2928 based device', DeviceType::DEVBOARD], 'rk29sdk' => ['Rockchip', 'RK29 based device', DeviceType::DEVBOARD], 'rk30sdk!' => ['Rockchip', 'RK30 based device', DeviceType::DEVBOARD], 'rk30mtk' => ['Rockchip', 'RK30 based device', DeviceType::DEVBOARD], 'rk3026' => ['Rockchip', 'RK3026 based device', DeviceType::DEVBOARD], 'rk3028a' => ['Rockchip', 'RK3028 based device', DeviceType::DEVBOARD], 'rk3028sdk' => ['Rockchip', 'RK3028 based device', DeviceType::DEVBOARD], 'rk3036' => ['Rockchip', 'RK3036 based device', DeviceType::DEVBOARD], 'rk3066' => ['Rockchip', 'RK3066 based device', DeviceType::DEVBOARD], 'rk31sdk' => ['Rockchip', 'RK31 based device', DeviceType::DEVBOARD], 'rk31 5931' => ['Rockchip', 'RK31 based device', DeviceType::DEVBOARD], 'rk31 8089' => ['Rockchip', 'RK31 based device', DeviceType::DEVBOARD], 'rk31 872xu' => ['Rockchip', 'RK31 based device', DeviceType::DEVBOARD], 'rk31au' => ['Rockchip', 'RK31 based device', DeviceType::DEVBOARD], 'rk31rtl' => ['Rockchip', 'RK31 based device', DeviceType::DEVBOARD], 'rk312x' => ['Rockchip', 'RK312X based device', DeviceType::DEVBOARD], 'rk3188!' => ['Rockchip', 'RK3188 based device', DeviceType::DEVBOARD], 'rk3288!' => ['Rockchip', 'RK3288 based device', DeviceType::DEVBOARD], 'rk3990!' => ['Rockchip', 'RK3990 based device', DeviceType::DEVBOARD], 's3c6410' => ['Samsung', 'S3C6410 based device', DeviceType::DEVBOARD], 'smdk6410' => ['Samsung', 'S3C6410 based device', DeviceType::DEVBOARD], 'SMDKC110' => ['Samsung', 'Exynos 3110 based device', DeviceType::DEVBOARD], 'SMDKV210' => ['Samsung', 'Exynos 4210 based device', DeviceType::DEVBOARD], 'S5PV210' => ['Samsung', 'Exynos 4210 based device', DeviceType::DEVBOARD], 'sec smdkc210' => ['Samsung', 'Exynos 4210 based device', DeviceType::DEVBOARD], 'sec smdkv210' => ['Samsung', 'Exynos 4210 based device', DeviceType::DEVBOARD], 'SMDK4x12' => ['Samsung', 'Exynos 4212 or 4412 based device', DeviceType::DEVBOARD], 'SMDK4412' => ['Samsung', 'Exynos 4412 based device', DeviceType::DEVBOARD], 'SMDK5250' => ['Samsung', 'Exynos 5250 based device', DeviceType::DEVBOARD], 'SMDK5410' => ['Samsung', 'Exynos 5410 based device', DeviceType::DEVBOARD], 'Exynos5410' => ['Samsung', 'Exynos 5410 based device', DeviceType::DEVBOARD], 'smp86xx' => ['Sigma', 'SMP86xx based device', DeviceType::DEVBOARD], 'smp8734' => ['Sigma', 'SMP8734 based device', DeviceType::DEVBOARD], 'smp8756' => ['Sigma', 'SMP8756 based device', DeviceType::DEVBOARD], 'sv8860' => ['Skyviia', 'SV8860 based device', DeviceType::DEVBOARD], 'ste l8540!' => ['ST Ericsson', 'Novathor L8540 based device', DeviceType::DEVBOARD], 'ste u8500' => ['ST Ericsson', 'Novathor U8500 based device', DeviceType::DEVBOARD], 'ste u9540' => ['ST Ericsson', 'Novathor U9540 based device', DeviceType::DEVBOARD], 'Telechips M801 Evaluation Board' => ['Telechips', 'M801 based device', DeviceType::DEVBOARD], 'Telechips TCC8900 Evaluation Board' => ['Telechips', 'TCC8900 based device', DeviceType::DEVBOARD], 'TCC8920 STB!' => ['Telechips', 'TCC8920 based device', DeviceType::DEVBOARD], 'TCC893X!' => ['Telechips', 'TCC893X based device', DeviceType::DEVBOARD], 'TCC8935 HDMI!' => ['Telechips', 'TCC8935 based device', DeviceType::DEVBOARD], 'TCC8975 STB!' => ['Telechips', 'TCC8975 based device', DeviceType::DEVBOARD], 'OMAP' => ['Texas Instruments', 'OMAP based device', DeviceType::DEVBOARD], 'OMAP SS' => ['Texas Instruments', 'OMAP based device', DeviceType::DEVBOARD], 'LogicPD Zoom2' => ['Texas Instruments', 'OMAP based device', DeviceType::DEVBOARD], 'omap3evm' => ['Texas Instruments', 'OMAP3 based device', DeviceType::DEVBOARD], 'OMAP3ETPP' => ['Texas Instruments', 'OMAP3 based device', DeviceType::DEVBOARD], 'Omap5sevm' => ['Texas Instruments', 'OMAP5 based device', DeviceType::DEVBOARD], 'AM335XEVM' => ['Texas Instruments', 'Sitara AM335 based device', DeviceType::DEVBOARD], 'AM335XEVM SK' => ['Texas Instruments', 'Sitara AM335 based device', DeviceType::DEVBOARD], 'am3517evm' => ['Texas Instruments', 'Sitara AM351 based device', DeviceType::DEVBOARD], 'AM437XEVM' => ['Texas Instruments', 'Sitara AM437 based device', DeviceType::DEVBOARD], 'Colibri-T20' => ['Toradex', 'Colibri T20', DeviceType::DEVBOARD], 'pnx8473 kiryung' => ['Trident', 'PNX8473 based device', DeviceType::DEVBOARD], 'Bravo' => ['HTC', 'Desire'], 'Dream' => ['HTC', 'Dream'], 'Vogue' => ['HTC', 'Touch'], 'Vendor Optimus' => ['LG', 'Optimus'], 'Stingray' => ['Motorola', 'XOOM', DeviceType::TABLET], 'Wingray' => ['Motorola', 'XOOM', DeviceType::TABLET], 'Blaze' => ['Texas Instruments', 'Blaze Tablet', DeviceType::TABLET], 'Blaze Tablet' => ['Texas Instruments', 'Blaze Tablet', DeviceType::TABLET], 'Google Ion' => ['Google', 'Ion'], 'Passion' => ['HTC', 'Nexus One'], '(HTC )?Nexus ?One!' => ['HTC', 'Nexus One'], 'Crespo!' => ['Samsung', 'Nexus S'], '(Google )?Nexus S!' => ['Samsung', 'Nexus S'], 'Dooderbutt!' => ['Samsung', 'Nexus S'], 'LGE-lap crespo' => ['Samsung', 'Nexus S'], 'Maguro' => ['Samsung', 'Galaxy Nexus'], 'Toro' => ['Samsung', 'Galaxy Nexus'], 'Toro-VZW' => ['Samsung', 'Galaxy Nexus'], '(Google )?Galaxy Nexus!' => ['Samsung', 'Galaxy Nexus'], 'LGE-lap maguro' => ['Samsung', 'Galaxy Nexus'], 'LGE-maguro cappuccino' => ['Samsung', 'Galaxy Nexus'], '(Google )?Nexus ?4!' => ['LG', 'Nexus 4'], 'Mako' => ['LG', 'Nexus 4'], 'LGE-lap mako' => ['LG', 'Nexus 4'], 'Nexus 5X' => ['LG', 'Nexus 5X'], '(Google )?Nexus ?5!' => ['LG', 'Nexus 5'], 'HammerHead' => ['LG', 'Nexus 5'], 'LG-Nexus5' => ['LG', 'Nexus 5'], 'Nexus 6P' => ['Huawei', 'Nexus 6P'], 'shamu' => ['Motorola', 'Nexus 6'], '(Google )?Nexus ?6!' => ['Motorola', 'Nexus 6'], '(Google )?Nexus ?7 2013!' => ['Asus', 'Nexus 7 (2013)', DeviceType::TABLET], 'Flo' => ['Asus', 'Nexus 7 (2013)', DeviceType::TABLET], 'Grouper' => ['Asus', 'Nexus 7', DeviceType::TABLET], 'Tilapia' => ['Asus', 'Nexus 7', DeviceType::TABLET], '(Google )?Nexus ?7!' => ['Asus', 'Nexus 7', DeviceType::TABLET], 'Flounder' => ['HTC', 'Nexus 9', DeviceType::TABLET], 'Volantis' => ['HTC', 'Nexus 9', DeviceType::TABLET], 'Volantisg' => ['HTC', 'Nexus 9', DeviceType::TABLET], '(Google )?Nexus ?9!' => ['HTC', 'Nexus 9', DeviceType::TABLET], 'manta' => ['Samsung', 'Nexus 10', DeviceType::TABLET], '(Google )?Nexus ?10!' => ['Samsung', 'Nexus 10', DeviceType::TABLET], 'Pixel C' => ['Google', 'Pixel C', DeviceType::TABLET], 'HTC One' => ['HTC', 'One (Google Edition)'], 'Moto E' => ['Motorola', 'Moto E (Google Edition)'], 'Moto G' => ['Motorola', 'Moto G (Google Edition)'], 'Moto G LTE' => ['Motorola', 'Moto G (Google Edition)'], 'Moto G 2014' => ['Motorola', 'Moto G (Google Edition, 2014)'], 'Moto G 2014 LTE' => ['Motorola', 'Moto G (Google Edition, 2014)'], 'Moto G (2014)' => ['Motorola', 'Moto G (Google Edition, 2014)'], 'Moto X' => ['Motorola', 'Moto X (Google Edition)'], 'GT-I9505G' => ['Samsung', 'Galaxy S4 (Google Edition)'], 'Galaxy S4 Google Editon' => ['Samsung', 'Galaxy S4 (Google Edition)'], 'SM-G900FG' => ['Samsung', 'Galaxy S5 (Google Edition)'], 'Xperia Z Ultra' => ['Sony', 'Xperia Z Ultra (Google Edition)'], 'Glass 1' => ['Google', 'Glass', DeviceType::HEADSET, Flag::GOOGLEGLASS], 'ZenWatch' => ['Asus', 'ZenWatch', DeviceType::WATCH, Flag::ANDROIDWEAR], 'G Watch' => ['LG', 'G Watch', DeviceType::WATCH, Flag::ANDROIDWEAR], 'G Watch R' => ['LG', 'G Watch R', DeviceType::WATCH, Flag::ANDROIDWEAR], 'LG Watch Urbane' => ['LG', 'G Watch Urbane', DeviceType::WATCH, Flag::ANDROIDWEAR], 'Moto 360' => ['Motorola', 'Moto 360', DeviceType::WATCH, Flag::ANDROIDWEAR], 'Gear Live' => ['Samsung', 'Gear Live', DeviceType::WATCH, Flag::ANDROIDWEAR], 'SmartWatch 3' => ['Sony', 'SmartWatch 3', DeviceType::WATCH, Flag::ANDROIDWEAR], 'Nexus Player' => ['Asus', 'Nexus Player', DeviceType::TELEVISION, Flag::ANDROIDTV], 'BRAVIA 2015' => ['Sony', 'Bravia Android TV (2015)', DeviceType::TELEVISION, Flag::ANDROIDTV], 'BRAVIA 4K 2015' => ['Sony', 'Bravia Android TV (2015)', DeviceType::TELEVISION, Flag::ANDROIDTV], 'QV151E' => ['Philips', 'Android TV (2015)', DeviceType::TELEVISION, Flag::ANDROIDTV], 'QM151E' => ['Philips', 'Android TV (2015)', DeviceType::TELEVISION, Flag::ANDROIDTV], 'QM152E' => ['Philips', 'Android TV (2015)', DeviceType::TELEVISION, Flag::ANDROIDTV], 'SHIELD Android TV' => ['Nvidia', 'SHIELD Android TV', DeviceType::TELEVISION, Flag::ANDROIDTV], 'BlueStacks!' => ['BlueStacks', 'App Player', DeviceType::DESKTOP], 'App Runtime for Chrome' => ['Google', 'App Runtime for Chrome', DeviceType::DESKTOP], 'youwave custom' => ['Youwave', 'Android on PC', DeviceType::DESKTOP], 'BlackBerry Runtime for Android Apps' => ['RIM', 'BlackBerry (Android Runtime)', DeviceType::MOBILE], 'alien jolla bionic' => ['Jolla', 'Sailfish (Android Runtime)', DeviceType::MOBILE], 'Jolla' => ['Jolla', 'Sailfish (Android Runtime)', DeviceType::MOBILE], 'alien ubuntu qt' => ['Ubuntu', 'Touch (Android Runtime)', DeviceType::MOBILE], 'full Android on Microsoft Windows, pad, pc, n*books' => ['SocketeQ', 'WindowsAndroid', DeviceType::DESKTOP], 'VMware Virtual Platform' => ['VMWare', 'Virtual Platform', DeviceType::DESKTOP], 'Xamarin Android Player!' => ['Xamarin', 'Android Player', DeviceType::EMULATOR], 'CX-919' => [null, 'CX-919', DeviceType::TELEVISION], 'CX-921' => [null, 'CX-921', DeviceType::TELEVISION], 'CX-921B' => [null, 'CX-921B', DeviceType::TELEVISION], 'CX-929' => [null, 'CX-929', DeviceType::TELEVISION], 'CX-950' => [null, 'CX-950', DeviceType::TELEVISION], 'CX-958' => [null, 'CX-958', DeviceType::TELEVISION], 'VEOLO' => ['A.C. Ryan', 'VEOLO Smart Android Hub', DeviceType::TELEVISION], 'VEOLO2' => ['A.C. Ryan', 'VEOLO2 Smart Android Hub', DeviceType::TELEVISION], 'Astone A108' => ['Astone', 'A108', DeviceType::TELEVISION], 'BenQ JD-130' => ['BenQ', 'JD-130', DeviceType::TELEVISION], 'BenQ Android TV' => ['BenQ', 'JD-130', DeviceType::TELEVISION], 'EVOKE HDI Box' => ['Evoke', 'HDI TV Box', DeviceType::TELEVISION], 'Ezcast' => ['Ezcast', 'Dongle', DeviceType::TELEVISION], 'JT SmartPC02' => ['Joy-IT', 'Smart PC', DeviceType::TELEVISION], 'M3 Enjoy TV Box' => ['Geniatech', 'Enjoy TV', DeviceType::TELEVISION], 'MX Enjoy TV BOX' => ['Geniatech', 'Enjoy TV', DeviceType::TELEVISION], 'TOUCAN Stick HD' => ['iconBit', 'Toucan Stick HD', DeviceType::TELEVISION], 'TOUCAN Stick G4' => ['iconBit', 'Toucan Stick G4', DeviceType::TELEVISION], 'Toucan Stick 4K' => ['iconBit', 'Toucan Stick 4K', DeviceType::TELEVISION], 'NEO-G4' => ['Minix', 'Neo G4', DeviceType::TELEVISION], 'NEO-G4-108A' => ['Minix', 'Neo G4', DeviceType::TELEVISION], 'NEO-G4 a' => ['Minix', 'Neo G4 a', DeviceType::TELEVISION], 'NEO-X5' => ['Minix', 'Neo X5', DeviceType::TELEVISION], 'NEO X5' => ['Minix', 'Neo X5', DeviceType::TELEVISION], 'Neo-X5-B' => ['Minix', 'Neo X5', DeviceType::TELEVISION], 'NEO-X5-116A' => ['Minix', 'Neo X5', DeviceType::TELEVISION], 'NEO-X5-mini' => ['Minix', 'Neo X5 mini', DeviceType::TELEVISION], 'NEO X5 mini' => ['Minix', 'Neo X5 mini', DeviceType::TELEVISION], 'NEO-X6' => ['Minix', 'Neo X6', DeviceType::TELEVISION], 'NEO-X7-216A' => ['Minix', 'Neo X7', DeviceType::TELEVISION], 'NEO-X7-mini' => ['Minix', 'Neo X7 mini', DeviceType::TELEVISION], 'NEO-X8' => ['Minix', 'Neo X8', DeviceType::TELEVISION], 'NEO-X8-H' => ['Minix', 'Neo X8', DeviceType::TELEVISION], 'NEO-X8H-PLUS' => ['Minix', 'Neo X8+', DeviceType::TELEVISION], 'RKM MK602' => ['Rikomagic', 'MK602', DeviceType::TELEVISION], 'Rikomagic MK802' => ['Rikomagic', 'MK802', DeviceType::TELEVISION], 'Rikomagic MK802 ?II!' => ['Rikomagic', 'MK802 II', DeviceType::TELEVISION], 'Rikomagic MK802III' => ['Rikomagic', 'MK802 III', DeviceType::TELEVISION], 'Rikomagic MK802IIIS' => ['Rikomagic', 'MK802 IIIS', DeviceType::TELEVISION], 'RKM MK802IIIS' => ['Rikomagic', 'MK802 IIIS', DeviceType::TELEVISION], 'RKM MK802IV' => ['Rikomagic', 'MK802 IV', DeviceType::TELEVISION], 'MK808' => ['Rikomagic', 'MK808', DeviceType::TELEVISION], 'MK808B' => ['Rikomagic', 'MK808 B', DeviceType::TELEVISION], 'MK809B' => ['Rikomagic', 'MK809 B', DeviceType::TELEVISION], 'MK809IV' => ['Rikomagic', 'MK809 IV', DeviceType::TELEVISION], 'MK818B' => ['Rikomagic', 'MK818 B', DeviceType::TELEVISION], 'RKM MK902' => ['Rikomagic', 'MK902', DeviceType::TELEVISION], 'RKM MK902II' => ['Rikomagic', 'MK902 II', DeviceType::TELEVISION], 'MK908' => ['Rikomagic', 'MK908', DeviceType::TELEVISION], 'MK908II' => ['Rikomagic', 'MK908 II', DeviceType::TELEVISION], 'GK802' => ['Rikomagic', 'GK802', DeviceType::TELEVISION], 'XW-I8' => ['Sambao', 'XW-I8', DeviceType::TELEVISION], 'TCC8920 EVM' => ['Telechips', 'TCC8920', DeviceType::TELEVISION], 'TCC8925 HDMI DONGLE' => ['Telechips', 'TCC8925', DeviceType::TELEVISION], 'TCC8930 STB EV' => ['Telechips', 'TCC8930', DeviceType::TELEVISION], 'TCC8930 STB1' => ['Telechips', 'TCC8930', DeviceType::TELEVISION], 'TCC8935 HDMI DONGLE' => ['Telechips', 'TCC8935', DeviceType::TELEVISION], 'OUYA( Console)?!' => ['OUYA', 'OUYA', [DeviceType::GAMING, DeviceSubType::CONSOLE]], 'SHIELD' => ['Nvidia', 'SHIELD', [DeviceType::GAMING, DeviceSubType::CONSOLE]], 'SHIELD Tablet' => ['Nvidia', 'SHIELD Tablet', [DeviceType::GAMING, DeviceSubType::PORTABLE]], 'SHIELD Tablet K1' => ['Nvidia', 'SHIELD Tablet', [DeviceType::GAMING, DeviceSubType::PORTABLE]], 'EL72B' => ['3Q', 'Qoo! Q-Book EL72B', DeviceType::TABLET], '(AC|BC|LC|MT|RC|QS|VM|TS|OC)[0-9]{4,4}[A-Z]!!' => ['AC0731B' => ['3Q', 'Qoo! Q-Pad AC0731B', DeviceType::TABLET], 'AC1024C' => ['3Q', 'Qoo! Q-Pad AC1024C', DeviceType::TABLET], 'AC7803C' => ['3Q', 'Qoo! Q-Pad AC7803C', DeviceType::TABLET], 'BC9710A' => ['3Q', 'Qoo! Q-Pad BC9710A', DeviceType::TABLET], 'BC9710AM' => ['3Q', 'Qoo! Q-Pad BC9710A', DeviceType::TABLET], 'LC0720C' => ['3Q', 'Qoo! Q-Pad LC0720C', DeviceType::TABLET], 'LC0723B' => ['3Q', 'Qoo! Q-Pad LC0723B', DeviceType::TABLET], 'LC0725B' => ['3Q', 'Qoo! Q-Pad LC0725B', DeviceType::TABLET], 'LC0804B' => ['3Q', 'Qoo! Q-Pad LC0804B', DeviceType::TABLET], 'LC0808B' => ['3Q', 'Qoo! Q-Pad LC0808B', DeviceType::TABLET], 'LC0809B' => ['3Q', 'Qoo! Q-Pad LC0809B', DeviceType::TABLET], 'LC0810C' => ['3Q', 'Qoo! Q-Pad LC0810C', DeviceType::TABLET], 'LC0816C' => ['3Q', 'Qoo! Q-Pad LC0816C', DeviceType::TABLET], 'LC0901D' => ['3Q', 'Qoo! Q-Pad LC0901D', DeviceType::TABLET], 'LC1016C' => ['3Q', 'Qoo! Q-Pad LC1016C', DeviceType::TABLET], 'LC9721C' => ['3Q', 'Qoo! Q-Pad LC9721C', DeviceType::TABLET], 'MT0724B' => ['3Q', 'Qoo! Q-Pad MT0724B', DeviceType::TABLET], 'MT0729B' => ['3Q', 'Qoo! Q-Pad MT0729B', DeviceType::TABLET], 'MT0729D' => ['3Q', 'Qoo! Q-Pad MT0729D', DeviceType::TABLET], 'MT0811B' => ['3Q', 'Qoo! Q-Pad MT0811B', DeviceType::TABLET], 'MT7801C' => ['3Q', 'Qoo! Q-Pad MT7801C', DeviceType::TABLET], 'RC0709B' => ['3Q', 'Qoo! Q-Pad RC0709B', DeviceType::TABLET], 'RC0710B' => ['3Q', 'Qoo! Q-Pad RC0710B', DeviceType::TABLET], 'RC0718C' => ['3Q', 'Qoo! Q-Pad RC0718C', DeviceType::TABLET], 'RC0719H' => ['3Q', 'Qoo! Q-Pad RC0719H', DeviceType::TABLET], 'RC0721B' => ['3Q', 'Qoo! Q-Pad RC0721B', DeviceType::TABLET], 'RC0722C' => ['3Q', 'Qoo! Q-Pad RC0722C', DeviceType::TABLET], 'RC0726B' => ['3Q', 'Qoo! Q-Pad RC0726B', DeviceType::TABLET], 'RC0734H' => ['3Q', 'Qoo! Q-Pad RC0734H', DeviceType::TABLET], 'RC0738C' => ['3Q', 'Qoo! Q-Pad RC0738C', DeviceType::TABLET], 'RC0743H' => ['3Q', 'Qoo! Q-Pad RC0743H', DeviceType::TABLET], 'RC0813C' => ['3Q', 'Qoo! Q-Pad RC0813C', DeviceType::TABLET], 'RC0813CM' => ['3Q', 'Qoo! Q-Pad RC0813CM', DeviceType::TABLET], 'RC0817C' => ['3Q', 'Qoo! Q-Pad RC0817C', DeviceType::TABLET], 'RC1018C' => ['3Q', 'Qoo! Q-Pad RC1018C', DeviceType::TABLET], 'RC1019G' => ['3Q', 'Qoo! Q-Pad RC1019G', DeviceType::TABLET], 'RC1025F' => ['3Q', 'Qoo! Q-Pad RC1025F', DeviceType::TABLET], 'RC1301C' => ['3Q', 'Qoo! Q-Pad RC1301C', DeviceType::TABLET], 'RC7802F' => ['3Q', 'Qoo! Q-Pad RC7802F', DeviceType::TABLET], 'RC9711B' => ['3Q', 'Qoo! Q-Pad RC9711B', DeviceType::TABLET], 'RC9712C' => ['3Q', 'Qoo! Q-Pad RC9712C', DeviceType::TABLET], 'RC9716B' => ['3Q', 'Qoo! Q-Pad RC9716B', DeviceType::TABLET], 'RC9717B' => ['3Q', 'Qoo! Q-Pad RC9717B', DeviceType::TABLET], 'RC9724C' => ['3Q', 'Qoo! Q-Pad RC9724C', DeviceType::TABLET], 'RC9726C' => ['3Q', 'Qoo! Q-Pad RC9726C', DeviceType::TABLET], 'RC9727F' => ['3Q', 'Qoo! Q-Pad RC9727F', DeviceType::TABLET], 'RC9730C' => ['3Q', 'Qoo! Q-Pad RC9730C', DeviceType::TABLET], 'RC9731C' => ['3Q', 'Qoo! Q-Pad RC9731C', DeviceType::TABLET], 'QS0715C' => ['3Q', 'Qoo! Q-Pad QS0715C', DeviceType::TABLET], 'QS0716D' => ['3Q', 'Qoo! Q-Pad QS0716D', DeviceType::TABLET], 'QS0717D' => ['3Q', 'Qoo! Q-Pad QS0717D', DeviceType::TABLET], 'QS0728C' => ['3Q', 'Qoo! Q-Pad QS0728C', DeviceType::TABLET], 'QS0730C' => ['3Q', 'Qoo! Q-Pad QS0730C', DeviceType::TABLET], 'QS0815C' => ['3Q', 'Qoo! Q-Pad QS0815C', DeviceType::TABLET], 'QS9718C' => ['3Q', 'Qoo! Q-Pad QS9718C', DeviceType::TABLET], 'VM1017A' => ['3Q', 'Qoo! Q-Pad VM1017A', DeviceType::TABLET], 'TS0807B' => ['3Q', 'Qoo! Q-Note TS0807B', DeviceType::TABLET], 'TS1003T' => ['3Q', 'Qoo! Surf Tablet TS1003T', DeviceType::TABLET], 'TS1004T' => ['3Q', 'Qoo! Surf Tablet TS1004T', DeviceType::TABLET], 'TS1009B' => ['3Q', 'Qoo! Surf Tablet TS1009B', DeviceType::TABLET], 'TS1013B' => ['3Q', 'Qoo! Surf Tablet TS1013B', DeviceType::TABLET], 'TS9708B' => ['3Q', 'Qoo! Surf Tablet TS9708B', DeviceType::TABLET], 'OC1020A' => ['3Q', 'Qoo! Surf Tablet OC1020A', DeviceType::TABLET], 'QS9715F' => ['3Q', 'Qoo! Surf Tablet QS9715F', DeviceType::TABLET], 'QS9719D' => ['3Q', 'Qoo! Surf Tablet QS9719D', DeviceType::TABLET], 'QS1023H' => ['3Q', 'Qoo! Surf Tablet QS1023H', DeviceType::TABLET], 'VM0711A' => ['3Q', 'Qoo! Surf Tablet VM0711A', DeviceType::TABLET]], 'BioniQ!!' => ['BioniQ 700' => ['a-rival', 'BioniQ 700', DeviceType::TABLET], 'BioniQ700HX' => ['a-rival', 'BioniQ 700 HX', DeviceType::TABLET], 'BioniQ 800' => ['a-rival', 'BioniQ 800', DeviceType::TABLET], 'BioniQ 1001' => ['a-rival', 'BioniQ 1001', DeviceType::TABLET], 'BioniQ 8008' => ['a-rival', 'BioniQ 8008', DeviceType::TABLET]], 'RTC-700A' => ['Aaeon', 'RTC-700A', DeviceType::TABLET], 'aspire1000s' => ['Acer', '1000 Series', DeviceType::DESKTOP], 'A[0-9]{3,3}!!' => ['A100' => ['Acer', 'Iconia Tab A100', DeviceType::TABLET], 'A101' => ['Acer', 'Iconia Tab A101', DeviceType::TABLET], 'A110' => ['Acer', 'Iconia Tab A110', DeviceType::TABLET], 'A200' => ['Acer', 'Iconia Tab A200', DeviceType::TABLET], 'A200 3G' => ['Acer', 'Iconia Tab A200', DeviceType::TABLET], 'A210' => ['Acer', 'Iconia Tab A210', DeviceType::TABLET], 'A211' => ['Acer', 'Iconia Tab A211', DeviceType::TABLET], 'A500' => ['Acer', 'Iconia Tab A500', DeviceType::TABLET], 'A501' => ['Acer', 'Iconia Tab A501', DeviceType::TABLET], 'A510' => ['Acer', 'Iconia Tab A510', DeviceType::TABLET], 'A511' => ['Acer', 'Iconia Tab A511', DeviceType::TABLET], 'A700' => ['Acer', 'Iconia Tab A700', DeviceType::TABLET], 'A701' => ['Acer', 'Iconia Tab A701', DeviceType::TABLET], 'A800' => ['Acer', 'Iconia Tab A800', DeviceType::TABLET]], 'P2A700' => ['Acer', 'Iconia Tab A700', DeviceType::TABLET], 'A1-[0-9]{3,3}!!' => ['A1-713' => ['Acer', 'Iconia Tab 7 A1-713', DeviceType::TABLET], 'A1-713HD' => ['Acer', 'Iconia Tab 7 A1-713 HD', DeviceType::TABLET], 'A1-724' => ['Acer', 'Iconia Talk S A1-724', DeviceType::TABLET], 'A1-810' => ['Acer', 'Iconia A1-810', DeviceType::TABLET], 'A1-811' => ['Acer', 'Iconia A1-811', DeviceType::TABLET], 'A1-812' => ['Acer', 'Iconia A1-812', DeviceType::TABLET], 'A1-820' => ['Acer', 'Iconia A1-820', DeviceType::TABLET], 'A1-830' => ['Acer', 'Iconia A1-830', DeviceType::TABLET], 'A1-840' => ['Acer', 'Iconia Tab 8 A1-840', DeviceType::TABLET], 'A1-840FHD' => ['Acer', 'Iconia Tab 8 A1-840 FHD', DeviceType::TABLET], 'A1-841' => ['Acer', 'Iconia Tab 8 A1-841', DeviceType::TABLET], 'A1-850' => ['Acer', 'Iconia Tab 8 A1-850', DeviceType::TABLET]], 'A3-A[0-9]{2,2}!!' => ['A3-A10' => ['Acer', 'Iconia A3-A10', DeviceType::TABLET], 'A3-A11' => ['Acer', 'Iconia A3-A11', DeviceType::TABLET], 'A3-A20' => ['Acer', 'Iconia A3-A20', DeviceType::TABLET], 'A3-A20FHD' => ['Acer', 'Iconia A3-A20 FHD', DeviceType::TABLET], 'A3-A30' => ['Acer', 'Iconia Tab 10 A3-A30', DeviceType::TABLET]], 'B1-[A0-9][0-9]{2,2}!!' => ['B1-A71' => ['Acer', 'Iconia B1-A71', DeviceType::TABLET], 'B1-710' => ['Acer', 'Iconia B1-710', DeviceType::TABLET], 'B1-711' => ['Acer', 'Iconia B1-711', DeviceType::TABLET], 'B1-713' => ['Acer', 'Iconia B1-713', DeviceType::TABLET], 'B1-720' => ['Acer', 'Iconia B1-720', DeviceType::TABLET], 'B1-721' => ['Acer', 'Iconia B1-721', DeviceType::TABLET], 'B1-730' => ['Acer', 'Iconia One 7 B1-730', DeviceType::TABLET], 'B1-730HD' => ['Acer', 'Iconia One 7 B1-730 HD', DeviceType::TABLET], 'B1-750' => ['Acer', 'Iconia One 7 B1-750', DeviceType::TABLET], 'B1-760' => ['Acer', 'Iconia One 7 B1-760', DeviceType::TABLET], 'B1-760HD' => ['Acer', 'Iconia One 7 B1-760 HD', DeviceType::TABLET], 'B1-770' => ['Acer', 'Iconia B1-770', DeviceType::TABLET], 'B1-810' => ['Acer', 'Iconia One 8 B1-810', DeviceType::TABLET], 'B1-820' => ['Acer', 'Iconia One 8 B1-820', DeviceType::TABLET], 'B1-830' => ['Acer', 'Iconia One 8 B1-830', DeviceType::TABLET]], 'ICONIA!!' => ['ICONIA Tab W500' => ['Acer', 'Iconia W500', DeviceType::TABLET], 'ICONIA Tab W500P' => ['Acer', 'Iconia W500P', DeviceType::TABLET], 'ICONIA Tab W501' => ['Acer', 'Iconia W501', DeviceType::TABLET], 'ICONIA W700' => ['Acer', 'Iconia W700', DeviceType::TABLET]], 'E[0-9]{2,2}0?!!' => ['E110' => ['Acer', 'beTouch E110'], 'E120' => ['Acer', 'beTouch E120'], 'E130' => ['Acer', 'beTouch E130'], 'E140' => ['Acer', 'beTouch E140'], 'E210' => ['Acer', 'beTouch E210'], 'E310' => ['Acer', 'Liquid mini'], 'E320' => ['Acer', 'Liquid Express'], 'E330' => ['Acer', 'Liquid Glow'], 'E350' => ['Acer', 'Liquid Gallant'], 'E380' => ['Acer', 'Liquid E3'], 'E400' => ['Acer', 'beTouch E400'], 'E39' => ['Acer', 'Liquid E700']], 'S[0-9]{2,2}0?!!' => ['S100' => ['Acer', 'Liquid'], 'S110' => ['Acer', 'Stream'], 'S120' => ['Acer', 'Liquid mt'], 'S300' => ['Acer', 'Iconia Smart'], 'S500' => ['Acer', 'CloudMobile'], 'S510' => ['Acer', 'Liquid S'], 'S520' => ['Acer', 'Liquid S2'], 'S55' => ['Acer', 'Liquid Jade'], 'S56' => ['Acer', 'Liquid Jade S'], 'S57' => ['Acer', 'Liquid Jade Z']], 'V[0-9]{2,2}0!!' => ['V360' => ['Acer', 'Liquid E1'], 'V370' => ['Acer', 'Liquid E2'], 'V380' => ['Acer', 'Liquid E3']], 'Z[0-9]{3,3}!!' => ['Z110' => ['Acer', 'Liquid Z'], 'Z120' => ['Acer', 'Liquid Z2'], 'Z130' => ['Acer', 'Liquid Z3'], 'Z140' => ['Acer', 'Liquid Z4'], 'Z150' => ['Acer', 'Liquid Z5'], 'Z160' => ['Acer', 'Liquid Z4'], 'Z200' => ['Acer', 'Liquid Z200'], 'Z205' => ['Acer', 'Liquid Z205'], 'Z220' => ['Acer', 'Liquid Z220'], 'Z410' => ['Acer', 'Liquid Z410'], 'Z500' => ['Acer', 'Liquid Z500'], 'Z520' => ['Acer', 'Liquid Z520']], 'Z4' => ['Acer', 'Liquid Z4'], 'T01' => ['Acer', 'Liquid Z330'], 'T02' => ['Acer', 'Liquid Z530'], 'TD600' => ['Acer', 'beTouch TD600'], 'AK330' => ['Acer', 'Liquid Gallant Duo'], 'AK330s' => ['Acer', 'Liquid Gallant Duo'], 'AT390' => ['Acer', 'Liquid C'], 'E1 v360' => ['Acer', 'Liquid E1'], 'v360 E1' => ['Acer', 'Liquid E1'], 'Liquid!!' => ['Liquid' => ['Acer', 'Liquid'], 'Liquid E' => ['Acer', 'Liquid E'], 'LIQUID E1' => ['Acer', 'Liquid E1 '], 'LIQUID E2' => ['Acer', 'Liquid E2 '], 'Liquid MT' => ['Acer', 'Liquid mt'], 'Liquid Metal' => ['Acer', 'Liquid mt']], 'Stream' => ['Acer', 'Stream'], 'DA2[0-9]{2,2}[A-Z]+!!' => ['DA220HQL' => ['Acer', 'Touch and 3D Monitor DA220HQL', DeviceType::MONITOR], 'DA222HQL' => ['Acer', 'Touch and 3D Monitor DA222HQL', DeviceType::MONITOR], 'DA222HQLA' => ['Acer', 'Touch and 3D Monitor DA222HQL', DeviceType::MONITOR], 'DA223HQL' => ['Acer', 'All-in-One DA223HQL', DeviceType::MONITOR], 'DA226HQ' => ['Acer', 'All-in-One DA226HQ', DeviceType::MONITOR], 'DA241HL' => ['Acer', 'All-in-One DA241HL', DeviceType::MONITOR], 'DA245HQL' => ['Acer', 'Touch and 3D Monitor DA245HQL', DeviceType::MONITOR]], 'Aspire!!' => ['Aspire ([0-9]{4,4}[A-Z]?)!' => ['Acer', 'Aspire $1', DeviceType::DESKTOP], 'Aspire ([A-Z][A-Z0-9]-[0-9]{3,3}[A-Z]?)!' => ['Acer', 'Aspire $1', DeviceType::DESKTOP], 'Aspire ([A-Z][0-9]{4,4}[A-Z]?)!' => ['Acer', 'Aspire $1', DeviceType::DESKTOP]], 'C908' => ['Acho', 'C908', DeviceType::TABLET], 'ADVAN Q7A' => ['Advan', 'Vandroid Q7A'], 'ADVAN E1C+' => ['Advan', 'Vandroid E1-C+', DeviceType::TABLET], 'ADVAN S3' => ['Advan', 'Vandroid S3', DeviceType::TABLET], 'ADVAN S3+' => ['Advan', 'Vandroid S3+', DeviceType::TABLET], 'ADVAN S3A' => ['Advan', 'Vandroid S3-A', DeviceType::TABLET], 'ADVAN S3C' => ['Advan', 'Vandroid S3-C', DeviceType::TABLET], 'ADVAN S4' => ['Advan', 'Vandroid S4', DeviceType::TABLET], 'ADVAN S4+' => ['Advan', 'Vandroid S4+', DeviceType::TABLET], 'ADVAN S4A' => ['Advan', 'Vandroid S4-A', DeviceType::TABLET], 'ADVAN S4C' => ['Advan', 'Vandroid S4-C', DeviceType::TABLET], 'ADVAN S4E' => ['Advan', 'Vandroid S4-E', DeviceType::TABLET], 'ADVAN S5E' => ['Advan', 'Vandroid S5-E', DeviceType::TABLET], 'Vandroid S5E' => ['Advan', 'Vandroid S5-E', DeviceType::TABLET], 'ADVAN S5E Pro' => ['Advan', 'Vandroid S5-E Pro', DeviceType::TABLET], 'S5-F' => ['Advan', 'Vandroid S5-F', DeviceType::TABLET], 'ADVAN S5H' => ['Advan', 'Vandroid S5-H', DeviceType::TABLET], 'ADVAN S5I' => ['Advan', 'Vandroid S5-I', DeviceType::TABLET], 'Advan S5K' => ['Advan', 'Vandroid S5-K', DeviceType::TABLET], 'ADVAN S5M' => ['Advan', 'Vandroid S5-M', DeviceType::TABLET], 'ADVAN S6A' => ['Advan', 'Vandroid S6-A', DeviceType::TABLET], 'T1-B' => ['Advan', 'Vandroid T1-B', DeviceType::TABLET], 'T1-D' => ['Advan', 'Vandroid T1-D', DeviceType::TABLET], 'T1-E' => ['Advan', 'Vandroid T1-E', DeviceType::TABLET], 'ADVAN T1G' => ['Advan', 'Vandroid T1-G', DeviceType::TABLET], 'ADVAN T1J' => ['Advan', 'Vandroid T1-J', DeviceType::TABLET], 'Vandroid T1J' => ['Advan', 'Vandroid T1-J', DeviceType::TABLET], 'ADVAN T1J+' => ['Advan', 'Vandroid T1-J+', DeviceType::TABLET], 'T1K Plus' => ['Advan', 'Vandroid T1-K Plus', DeviceType::TABLET], 'ADVAN T1L' => ['Advan', 'Vandroid T1-L', DeviceType::TABLET], 'ADVAN T2E' => ['Advan', 'Vandroid T2-E', DeviceType::TABLET], 'ADVAN T2F' => ['Advan', 'Vandroid T2-F', DeviceType::TABLET], 'Vandroid T3-A' => ['Advan', 'Vandroid T3-A', DeviceType::TABLET], 'ADVAN T3E+' => ['Advan', 'Vandroid T3-E+', DeviceType::TABLET], 'Vandroid T3i' => ['Advan', 'Vandroid T3i', DeviceType::TABLET], 'ADVAN T5C' => ['Advan', 'Vandroid T5-C', DeviceType::TABLET], 'Vandroid T' => ['Advan', 'Vandroid T', DeviceType::TABLET], 'Vega' => ['Advent', 'Vega', DeviceType::TABLET], 'VegaBean!' => ['Advent', 'Vega', DeviceType::TABLET], 'Advent Vega' => ['Advent', 'Vega', DeviceType::TABLET], 'AG Chrome Selfie' => ['AG Mobile', 'Chrome Selfie'], 'AG CHROME ULTRA' => ['AG Mobile', 'Chrome Ultra'], 'AG Chrome Go Tab 7.0' => ['AG Mobile', 'Chrome Go-Tab 7.0', DeviceType::TABLET], 'aigoPad' => ['aigo', 'aigoPad', DeviceType::TABLET], 'aigoPadM60' => ['aigo', 'aigoPad M60', DeviceType::TABLET], 'AigoPad M60' => ['aigo', 'aigoPad M60', DeviceType::TABLET], 'aigoPad M80D' => ['aigo', 'aigoPad M80', DeviceType::TABLET], 'aigoPad M80E' => ['aigo', 'aigoPad M80', DeviceType::TABLET], 'M801' => ['aigo', 'aigoPad M801', DeviceType::TABLET], 'N700' => ['aigo', 'aigoPad N700', DeviceType::TABLET], 'AT102HC' => ['Aikun', 'iTouch AT102HC', DeviceType::TABLET], 'AT104GS' => ['Aikun', 'iTouch AT104GS', DeviceType::TABLET], 'Numy!!' => ['Numy 3G AW1' => ['Ainol', 'Numy 3G AW1', DeviceType::TABLET], 'Numy 3G AX1' => ['Ainol', 'Numy 3G AX1', DeviceType::TABLET], 'Numy 3G AX10t' => ['Ainol', 'Numy 3G AX10t', DeviceType::TABLET], 'Numy 3G AX3' => ['Ainol', 'Numy 3G AX3', DeviceType::TABLET], 'Numy 3G BW1' => ['Ainol', 'Numy 3G BW1', DeviceType::TABLET], 'Numy 3G Vegas' => ['Ainol', 'Numy 3G Vegas', DeviceType::TABLET], 'Numy Note 9' => ['Ainol', 'Numy Note 9', DeviceType::TABLET]], 'Novo7' => ['Ainovo', 'Novo7', DeviceType::TABLET], 'Novo7 -?Aurora!' => ['Ainovo', 'Novo7 Aurora', DeviceType::TABLET], 'novo Aurora' => ['Ainovo', 'Novo7 Aurora', DeviceType::TABLET], 'Novo 7 Aurora' => ['Ainovo', 'Novo7 Aurora', DeviceType::TABLET], 'Ainovo Aurora-II' => ['Ainovo', 'Novo7 Aurora II', DeviceType::TABLET], 'Aurora-II' => ['Ainovo', 'Novo7 Aurora II', DeviceType::TABLET], 'Novo7 Advanced' => ['Ainovo', 'Novo7 Advanced', DeviceType::TABLET], 'Novo7Advanced!' => ['Ainovo', 'Novo7 Advanced', DeviceType::TABLET], 'Novo7 Advanced2' => ['Ainovo', 'Novo7 Advanced 2', DeviceType::TABLET], 'Novo7 Basic' => ['Ainovo', 'Novo7 Basic', DeviceType::TABLET], 'NovoCrystal' => ['Ainovo', 'Novo7 Crystal', DeviceType::TABLET], 'Novo 7 Crystal!' => ['Ainovo', 'Novo7 Crystal', DeviceType::TABLET], 'Novo7 ELF' => ['Ainovo', 'Novo7 Elf', DeviceType::TABLET], 'ELF-II' => ['Ainovo', 'Novo7 Elf II', DeviceType::TABLET], 'Novo7 Fire' => ['Ainovo', 'Novo7 Fire', DeviceType::TABLET], 'Novo7 Flame' => ['Ainovo', 'Novo7 Flame', DeviceType::TABLET], 'Ainovo Flame (Nexus 7)' => ['Ainovo', 'Novo7 Flame', DeviceType::TABLET], 'Novo7 Grace' => ['Ainovo', 'Novo7 Grace', DeviceType::TABLET], 'Novo7 Legend' => ['Ainovo', 'Novo7 Legend', DeviceType::TABLET], 'novo7Legend!' => ['Ainovo', 'Novo7 Legend', DeviceType::TABLET], 'NOVO7 Mars' => ['Ainovo', 'Novo7 Mars', DeviceType::TABLET], 'Novo7 PALADIN' => ['Ainovo', 'Novo7 Paladin', DeviceType::TABLET], 'npm702-NOVO7PALADIN' => ['Ainovo', 'Novo7 Paladin', DeviceType::TABLET], 'Novo7 Rainbow' => ['Ainovo', 'Novo7 Rainbow', DeviceType::TABLET], 'Novo7 -Rainbow' => ['Ainovo', 'Novo7 Rainbow', DeviceType::TABLET], 'NOVO7 Tornados' => ['Ainovo', 'Novo7 Tornados', DeviceType::TABLET], 'Novo7 Venus' => ['Ainovo', 'Novo7 Venus', DeviceType::TABLET], 'Novo 7 Venus' => ['Ainovo', 'Novo7 Venus', DeviceType::TABLET], 'Novo7 Venus QuadCore' => ['Ainovo', 'Novo7 Venus', DeviceType::TABLET], 'Novo 7 Venus QuadCore' => ['Ainovo', 'Novo7 Venus', DeviceType::TABLET], 'Novo8 Advanced' => ['Ainovo', 'Novo8 Advanced', DeviceType::TABLET], 'Novo8 Discover Quadcore' => ['Ainovo', 'Novo8 Discover', DeviceType::TABLET], 'Novo8 Disover Quadcore' => ['Ainovo', 'Novo8 Discover', DeviceType::TABLET], 'Novo8 Dream QuadCore' => ['Ainovo', 'Novo8 Dream', DeviceType::TABLET], 'Novo8mini' => ['Ainovo', 'Novo8 Mini', DeviceType::TABLET], 'novo9-Spark' => ['Ainovo', 'Novo9 Spark', DeviceType::TABLET], 'NOVO9 Spark II' => ['Ainovo', 'Novo9 Spark II', DeviceType::TABLET], 'Novo 10 Hero' => ['Ainovo', 'Novo10 Hero', DeviceType::TABLET], 'Novo10 ?Hero!' => ['Ainovo', 'Novo10 Hero', DeviceType::TABLET], 'Novo 10 Hero QuadCore' => ['Ainovo', 'Novo10 Hero', DeviceType::TABLET], 'Novo Captain' => ['Ainovo', 'Novo10 Captain', DeviceType::TABLET], 'Novo10 captain QuadCore' => ['Ainovo', 'Novo10 Captain', DeviceType::TABLET], 'AIRIS GN135' => ['Airis', 'GN135'], 'AIRIS S211' => ['Airis', 'S211'], 'AIRIS TM51Q' => ['Airis', 'TM51Q'], 'AIRIS TM54QM' => ['Airis', 'TM54QM'], 'AIRIS TM60D' => ['Airis', 'TM60D'], 'TM400' => ['Airis', 'TM400'], 'AIRIS TM400' => ['Airis', 'TM400'], 'AIRIS TM421M' => ['Airis', 'TM421M'], 'AIRIS TM500' => ['Airis', 'TM500'], 'OnePAD 785I' => ['Airis', 'OnePAD 785I'], 'OnePAD 900HD' => ['Airis', 'OnePAD 900HD'], 'OnePAD 970' => ['Airis', 'OnePAD 970'], 'OnePAD 1100x2' => ['Airis', 'OnePAD 1100x2'], 'AKAI NEO' => ['AKAI', 'Neo'], 'AKAI N8800' => ['AKAI', 'N8800'], 'PHA-3850' => ['AKAI', 'PHA-3850'], 'PHA-3880' => ['AKAI', 'PHA-3880 Glory F1'], 'AKAI PHA-4800' => ['AKAI', 'PHA-4800 Glory G1'], 'PHA-4850' => ['AKAI', 'PHA-4850 Glory L1'], 'AKAIPHA 5800' => ['AKAI', 'PHA-5800'], 'PHA-5850' => ['AKAI', 'PHA-5850 Glory O1'], 'AKAI MIDMA-7002S' => ['AKAI', 'MIDMA 7002S', DeviceType::TABLET], 'MID1040C' => ['AKAI', 'MID1040C', DeviceType::TABLET], 'A206G' => ['Alcatel', 'A206G'], 'A480G' => ['Alcatel', 'A480G'], 'A560G' => ['Alcatel', 'A560G'], 'A562G' => ['Alcatel', 'A562G'], 'A564R' => ['Alcatel', 'A564R'], 'A564C' => ['Alcatel', 'One Touch Pop Icon'], 'A845L' => ['Alcatel', 'One Touch Pop Star'], 'Alcatel A851L' => ['Alcatel', 'One Touch Sonic'], 'A851L' => ['Alcatel', 'One Touch Sonic'], 'A995L' => ['Alcatel', 'One Touch Pop Mega'], 'ONETOUCH Flash Plus' => ['Alcatel', 'One Touch Flash Plus'], 'one touch 890!' => ['Alcatel', 'One Touch 890'], 'one touch 891!' => ['Alcatel', 'One Touch 891'], 'one touch 900!' => ['Alcatel', 'One Touch 900'], 'one touch 903!' => ['Alcatel', 'One Touch 903'], 'one touch 906!' => ['Alcatel', 'One Touch 906'], 'Alcatel one touch 908F' => ['Alcatel', 'One Touch 908'], 'one touch 908!' => ['Alcatel', 'One Touch 908'], 'one touch 909!' => ['Alcatel', 'One Touch 909'], 'one touch 910!' => ['Alcatel', 'One Touch 910'], 'one touch 916!' => ['Alcatel', 'One Touch 916'], 'one touch 918!' => ['Alcatel', 'One Touch 918'], 'Alcatel one touch 918' => ['Alcatel', 'One Touch 918'], 'Alcatel ONETOUCH 918' => ['Alcatel', 'One Touch 918'], 'OT 918' => ['Alcatel', 'One Touch 918'], 'ALCATEL OT 919' => ['Alcatel', 'One Touch 919'], 'one touch 922!' => ['Alcatel', 'One Touch 922'], 'one touch 927!' => ['Alcatel', 'One Touch 927'], 'one touch 928!' => ['Alcatel', 'One Touch 928'], 'one touch 930!' => ['Alcatel', 'One Touch 930'], 'one touch 960!' => ['Alcatel', 'One Touch 960'], 'one touch 979!' => ['Alcatel', 'One Touch 979'], 'one touch 980!' => ['Alcatel', 'One Touch 980'], 'one touch 981!' => ['Alcatel', 'One Touch 981'], 'one touch 983!' => ['Alcatel', 'One Touch 983'], 'one touch 985!' => ['Alcatel', 'One Touch 985'], 'one touch 986!' => ['Alcatel', 'One Touch 986'], 'one touch 988!' => ['Alcatel', 'One Touch 988'], 'one touch 990!' => ['Alcatel', 'One Touch 990'], 'Alcatel one touch 990' => ['Alcatel', 'One Touch 990'], 'OT-990C' => ['Alcatel', 'One Touch 990'], 'OT 990M' => ['Alcatel', 'One Touch 990'], 'one touch 991!' => ['Alcatel', 'One Touch 991'], 'one touch 992!' => ['Alcatel', 'One Touch 992'], 'ONE TOCH 992D' => ['Alcatel', 'One Touch 992'], 'one touch 993!' => ['Alcatel', 'One Touch 993'], 'one touch 995!' => ['Alcatel', 'One Touch 995'], 'OT-995' => ['Alcatel', 'One Touch 995'], 'one touch 997!' => ['Alcatel', 'One Touch 997'], 'one touch 998!' => ['Alcatel', 'One Touch 998'], 'one touch D662' => ['Alcatel', 'One Touch D662'], 'one touch D668' => ['Alcatel', 'One Touch D668'], 'one touch D820' => ['Alcatel', 'One Touch D820'], 'one touch D920' => ['Alcatel', 'One Touch D920'], 'one touch J320' => ['Alcatel', 'One Touch J320'], '1216[X]!' => ['Alcatel', 'One Touch Pixi 3 (7)'], '4003[A]!' => ['Alcatel', 'One Touch Pixi 3 (4)'], 'one ?touch 40(05|10|11)!' => ['Alcatel', 'One Touch T\'Pop'], 'one ?touch 4007!' => ['Alcatel', 'One Touch Pixi'], 'one ?touch 4008!' => ['Alcatel', 'One Touch Pixi 3 (3.5)'], '4008[A]!' => ['Alcatel', 'One Touch Pixi 3 (3.5)'], 'one ?touch 4009!' => ['Alcatel', 'One Touch Pixi 3 (3.5)'], '4009[ADEFMSX]!' => ['Alcatel', 'One Touch Pixi 3 (3.5)'], 'one ?touch 4013!' => ['Alcatel', 'One Touch Pixi 3 (4)'], '4013[ADEJKMX]!' => ['Alcatel', 'One Touch Pixi 3 (4)'], 'one ?touch 4014!' => ['Alcatel', 'One Touch Pixi 3 (4)'], '4014[X]!' => ['Alcatel', 'One Touch Pixi 3 (4)'], 'one ?touch 40(15|16)!' => ['Alcatel', 'One Touch Pop C1'], '4015[ANTX]!' => ['Alcatel', 'One Touch Pop C1'], '4015[D]!' => ['Alcatel', 'One Touch Pixi 2'], '4016[ADX]!' => ['Alcatel', 'One Touch Pop C1'], '4017[DEFX]!' => ['Alcatel', 'One Touch Pixi 4 (3.5)'], '4018[ADEMX]!' => ['Alcatel', 'One Touch Pop D1'], '4024[DX]!' => ['Alcatel', 'One Touch Pixi First'], '4027[ADNX]!' => ['Alcatel', 'One Touch Pixi 3 (4.5)'], '4028[AEJ]!' => ['Alcatel', 'One Touch Pixi 3 (4.5)'], 'one ?touch 4030!' => ['Alcatel', 'One Touch S\'Pop'], '4032[ADEX]!' => ['Alcatel', 'One Touch Pop C2'], 'one ?touch 4033!' => ['Alcatel', 'One Touch Pop C3'], 'ONETOUCH POPC3' => ['Alcatel', 'One Touch Pop C3'], 'one ?touch 40(35|36|37)!' => ['Alcatel', 'One Touch Pop D3'], '4035[ADYX]!' => ['Alcatel', 'One Touch Pop D3'], '4036[E]!' => ['Alcatel', 'One Touch Pop D3'], '4037[AX]!' => ['Alcatel', 'One Touch Pop D3'], '4037[T]!' => ['Alcatel', 'One Touch Evolve 2'], 'one ?touch 5045!' => ['Alcatel', 'One Touch Pop 2 (4)'], '4045[ADEX]!' => ['Alcatel', 'One Touch Pop 2 (4)'], '5015[ADEX]!' => ['Alcatel', 'One Touch Pixi 3 (5)'], '5016[A]!' => ['Alcatel', 'One Touch Pixi 3 (5)'], '5017[B]!' => ['Alcatel', 'One Touch Elevate'], '5017[ADEOX]!' => ['Alcatel', 'One Touch Pixi 3 (4.5)'], 'one ?touch 5020!' => ['Alcatel', 'One Touch M\'Pop'], 'Alcatel OT M\'pop 5020D' => ['Alcatel', 'One Touch M\'Pop'], 'M POP 5020A' => ['Alcatel', 'One Touch M\'Pop'], 'M POP' => ['Alcatel', 'One Touch M\'Pop'], '5020[A]!' => ['Alcatel', 'One Touch M\'Pop'], 'one ?touch 5021!' => ['Alcatel', 'One Touch Soleil'], '5022[DX]!' => ['Alcatel', 'One Touch Pop Star'], '5025[D]!' => ['Alcatel', 'One Touch Pop 3'], 'one ?touch 5035!' => ['Alcatel', 'One Touch X\'Pop'], 'one ?touch 50(36|37)!' => ['Alcatel', 'One Touch Pop C5'], 'one ?touch 50(38)!' => ['Alcatel', 'One Touch Pop D5'], '5038[ADEX]!' => ['Alcatel', 'One Touch Pop D5'], 'one ?touch 5042!' => ['Alcatel', 'One Touch Pop 2 (4.5)'], '5042[ADEFGTWXY]!' => ['Alcatel', 'One Touch Pop 2 (4.5)'], 'one ?touch 5050!' => ['Alcatel', 'One Touch Pop S3'], '5050[ASYX]!' => ['Alcatel', 'One Touch Pop S3'], '5054[OSX]!' => ['Alcatel', 'One Touch Pixi 3 (5.5)'], '5054[NW]!' => ['Alcatel', 'One Touch Fierce XL'], '5065[ADJWX]!' => ['Alcatel', 'One Touch Pixi 3 (5)'], 'one ?touch 6010!' => ['Alcatel', 'One Touch Star'], 'one ?touch 6012!' => ['Alcatel', 'One Touch Idol Mini'], 'ONE TOUCH IDOL MINI' => ['Alcatel', 'One Touch Idol Mini'], 'one ?touch 6014!' => ['Alcatel', 'One Touch Idol Mini'], '6014[DX]!' => ['Alcatel', 'One Touch Idol Mini'], 'one ?touch 6016!' => ['Alcatel', 'One Touch Idol 2 Mini'], '6016[ADEX]!' => ['Alcatel', 'One Touch Idol 2 Mini'], 'one ?touch 6030!' => ['Alcatel', 'One Touch Idol'], 'one ?touch 6032!' => ['Alcatel', 'One Touch Idol α'], 'one ?touch 6033!' => ['Alcatel', 'One Touch Idol Ultra'], 'one ?touch 60(34|35)!' => ['Alcatel', 'One Touch Idol S'], 'one ?touch 6036!' => ['Alcatel', 'One Touch Idol 2 Mini S'], '6036[AYX]!' => ['Alcatel', 'One Touch Idol 2 Mini S'], 'one ?touch 6037!' => ['Alcatel', 'One Touch Idol 2 Dual'], '6037[BIKY]!' => ['Alcatel', 'One Touch Idol 2 Dual'], 'one ?touch 6039!' => ['Alcatel', 'One Touch Idol 3 (4.7)'], '6039[AHJKSY]!' => ['Alcatel', 'One Touch Idol 3 (4.7)'], 'one ?touch 6040!' => ['Alcatel', 'One Touch Idol X'], '6042[D]!' => ['Alcatel', 'One Touch Flash'], 'one ?touch 6043!' => ['Alcatel', 'One Touch Idol X+'], '6043[AD]!' => ['Alcatel', 'One Touch Idol X+'], 'one ?touch 6045!' => ['Alcatel', 'One Touch Idol 3 (5.5)'], '6045[BGIKOXY]!' => ['Alcatel', 'One Touch Idol 3 (5.5)'], 'one ?touch 6050!' => ['Alcatel', 'One Touch Idol 2S'], '6050[AFWY]!' => ['Alcatel', 'One Touch Idol 2S'], '6055[BHIKY]!' => ['Alcatel', 'One Touch Idol 4'], '6070[K]!' => ['Alcatel', 'One Touch Idol 4s'], 'one ?touch 7024!' => ['Alcatel', 'One Touch Fierce'], 'one touch fierce!' => ['Alcatel', 'One Touch Fierce'], 'one ?touch 70(25|30)!' => ['Alcatel', 'One Touch Snap'], '7030[L]!' => ['Alcatel', 'One Touch Snap'], 'one ?touch 70(40|41)!' => ['Alcatel', 'One Touch Pop C7'], '7040[N]!' => ['Alcatel', 'One Touch Pop C7'], '7040[T]!' => ['Alcatel', 'One Touch Fierce 2'], 'one ?touch 7042!' => ['Alcatel', 'One Touch Snap'], 'one ?touch 7043!' => ['Alcatel', 'One Touch Pop 2 (5)'], '7043[AEKY]!' => ['Alcatel', 'One Touch Pop 2 (5)'], 'one ?touch 7044!' => ['Alcatel', 'One Touch Pop 2 (5) Premium'], '7044[AXY]!' => ['Alcatel', 'One Touch Pop 2 (5) Premium'], 'one ?touch 7045!' => ['Alcatel', 'One Touch Pop S7'], '7045[Y]!' => ['Alcatel', 'One Touch Pop S7'], '7046[T]!' => ['Alcatel', 'One Touch Conquest'], 'one ?touch 7047!' => ['Alcatel', 'One Touch Pop C9'], '7048[AX]!' => ['Alcatel', 'One Touch Go Play'], 'one ?touch 7050!' => ['Alcatel', 'One Touch Pop S9'], '7050[Y]!' => ['Alcatel', 'One Touch Pop S9'], '7051[X]!' => ['Alcatel', 'One Touch Pop 3 (5)'], '7053[D]!' => ['Alcatel', 'X1'], '7055[AW]!' => ['Alcatel', 'One Touch Hero 2C'], '7051[X]!' => ['Alcatel', 'One Touch Pop 2 (5) Premium'], 'one ?touch 8000!' => ['Alcatel', 'One Touch Scribe Easy'], 'one ?touch 8008!' => ['Alcatel', 'One Touch Scribe HD'], 'one ?touch 8020!' => ['Alcatel', 'One Touch Hero'], '8020[D]!' => ['Alcatel', 'One Touch Hero'], 'one ?touch 8030!' => ['Alcatel', 'One Touch Hero 2'], '8030[BY]!' => ['Alcatel', 'One Touch Hero 2'], '9007[A]!' => ['Alcatel', 'One Touch Pixi 3 (7)'], '9005[X]!' => ['Alcatel', 'One Touch Pixi 3 (8)'], '9022[X]!' => ['Alcatel', 'One Touch Pixi 3 (8)'], 'one ?touch T10!' => ['Alcatel', 'One Touch T10', DeviceType::TABLET], 'one ?touch T20!' => ['Alcatel', 'One Touch T20', DeviceType::TABLET], 'one ?touch T60!' => ['Alcatel', 'One Touch T60', DeviceType::TABLET], 'ONE TOUCH TAB 7' => ['Alcatel', 'One Touch Tab 7', DeviceType::TABLET], 'ONE TOUCH TAB 7HD' => ['Alcatel', 'One Touch Tab 7HD', DeviceType::TABLET], 'ONE TOUCH TAB 8HD' => ['Alcatel', 'One Touch Tab 8HD', DeviceType::TABLET], 'ONE TOUCH EVO7' => ['Alcatel', 'One Touch Evo 7', DeviceType::TABLET], 'onetouch EVO7' => ['Alcatel', 'One Touch Evo 7', DeviceType::TABLET], 'ONE TOUCH EVO 7HD' => ['Alcatel', 'One Touch Evo 7 HD', DeviceType::TABLET], 'ONE TOUCH EVO7HD' => ['Alcatel', 'One Touch Evo 7 HD', DeviceType::TABLET], 'ONE TOUCH EVO8HD' => ['Alcatel', 'One Touch Evo 8 HD', DeviceType::TABLET], 'D820X' => ['Alcatel', 'One Touch Hero 8', DeviceType::TABLET], 'ONE ?TOUCH P310(A|X)!' => ['Alcatel', 'One Touch POP7', DeviceType::TABLET], 'ONE ?TOUCH P320(A|X)!' => ['Alcatel', 'One Touch POP8', DeviceType::TABLET], 'ONE ?TOUCH P321!' => ['Alcatel', 'One Touch POP8', DeviceType::TABLET], '9021A' => ['Alcatel', 'One Touch POP8', DeviceType::TABLET], 'P330X' => ['Alcatel', 'One Touch POP7S', DeviceType::TABLET], 'P350X' => ['Alcatel', 'One Touch POP8S', DeviceType::TABLET], 'ONE ?TOUCH POP 8S P350X!' => ['Alcatel', 'One Touch POP8S', DeviceType::TABLET], 'P360X' => ['Alcatel', 'One Touch POP10', DeviceType::TABLET], 'ADR3010' => ['Alcatel', 'Authority'], 'Venture' => ['Alcatel', 'Venture'], 'Mobile Sosh' => ['Alcatel', 'Le mobile Sosh'], 'Alcor Access Q913M' => ['Alcor', 'Access Q913M', DeviceType::TABLET], 'Alcor Zest Q813I' => ['Alcor', 'Zest Q813I', DeviceType::TABLET], 'Alcor Zest Q813IS' => ['Alcor', 'Zest Q813IS', DeviceType::TABLET], 'Alcor Zest Q813IX' => ['Alcor', 'Zest Q813IX', DeviceType::TABLET], 'Alcor Zest Q933R' => ['Alcor', 'Zest Q933R', DeviceType::TABLET], 'ALLVIEW A4ALL' => ['Allview', 'A4 All'], 'ALLVIEW A6 Quad' => ['Allview', 'A6 Quad'], 'Allview P2' => ['Allview', 'P2 Alldro'], 'ALLVIEW P4' => ['Allview', 'P4 Alldro'], 'ALLVIEW P4i' => ['Allview', 'P4 Duo'], 'P4i' => ['Allview', 'P4 Duo'], 'Allview P5' => ['Allview', 'P5'], 'Allview P5-Mini' => ['Allview', 'P5 Mini'], 'ALLVIEW P5 Quad' => ['Allview', 'P5 Quad'], 'ALLVIEW P5 Qmax' => ['Allview', 'P5 Qmax'], 'ALLVIEW P6' => ['Allview', 'P6'], 'ALLVIEW P6 Quad' => ['Allview', 'P6 Quad'], 'P6 Quad' => ['Allview', 'P6 Quad'], 'ALLVIEW TX1 Quasar' => ['Allview', 'TX1 Quasar'], 'V1 Viper' => ['Allview', 'V1 Viper'], 'V1 Viper E' => ['Allview', 'V1 Viper E'], 'V1 Viper I' => ['Allview', 'V1 Viper I'], 'V1 Viper I4G' => ['Allview', 'V1 Viper I'], 'V1 Viper I4G PL' => ['Allview', 'V1 Viper I'], 'V1 ViperS' => ['Allview', 'V1 Viper S'], 'V1 Viper S4G' => ['Allview', 'V1 Viper S'], 'X1 Soul' => ['Allview', 'X1 Soul'], 'X1 Soul Mini' => ['Allview', 'X1 Soul Mini'], 'X1 mini Soul' => ['Allview', 'X1 Soul Mini'], 'X1 Soul Xtreme' => ['Allview', 'X1 Soul Xtreme'], 'X1 Xtreme Mini' => ['Allview', 'X1 Xtreme Mini'], 'X2 Soul' => ['Allview', 'X2 Soul'], 'X2 Soul Mini' => ['Allview', 'X2 Soul Mini'], 'X2 Soul Mini TM' => ['Allview', 'X2 Soul Mini'], 'X2 Soul PRO' => ['Allview', 'X2 Soul Pro'], 'X2 Twin' => ['Allview', 'X2 Twin'], '(Allview|Alldro)!!' => ['Allview AX1 Shine' => ['Allview', 'AX1 Shine', DeviceType::TABLET], 'AllviewAX2' => ['Allview', 'AX2 Frenzy', DeviceType::TABLET], 'AllviewAX2Frenzy' => ['Allview', 'AX2 Frenzy', DeviceType::TABLET], 'ALLVIEW SPEEDI' => ['Allview', 'Alldro Speed', DeviceType::TABLET], 'AllviewSpeed' => ['Allview', 'Alldro Speed', DeviceType::TABLET], 'ALLDROSPEED' => ['Allview', 'Alldro Speed', DeviceType::TABLET], 'AllviewSpeedDuo' => ['Allview', 'Alldro Speed Duo', DeviceType::TABLET], 'AllviewSpeed3G' => ['Allview', 'Alldro Speed 3G', DeviceType::TABLET], 'ALLDRO2SPEED' => ['Allview', 'Alldro Speed 2', DeviceType::TABLET], 'Allview2SpeedDuo' => ['Allview', 'Alldro Speed 2 Duo', DeviceType::TABLET], 'Allview 2 Speed QUAD' => ['Allview', 'Alldro Speed 2 Quad', DeviceType::TABLET], 'AllviewSpeed2' => ['Allview', 'Alldro Speed 2', DeviceType::TABLET], 'AllviewSpeed2+' => ['Allview', 'Alldro Speed 2', DeviceType::TABLET], 'AllviewSpeed3' => ['Allview', 'Alldro Speed 3', DeviceType::TABLET], 'Alldro3Speed DUO' => ['Allview', 'Alldro Speed 3 Duo', DeviceType::TABLET], 'Allview3SpeedQuad' => ['Allview', 'Alldro Speed 3 Quad', DeviceType::TABLET], 'AllviewSpeedSatellite' => ['Allview', 'Alldro Speed Satellite', DeviceType::TABLET], 'AllviewCity' => ['Allview', 'Alldro City', DeviceType::TABLET], 'AllviewCityPlus' => ['Allview', 'Alldro City Plus', DeviceType::TABLET], 'AllviewCityLife' => ['Allview', 'Alldro City Life', DeviceType::TABLET], 'ALLVIEW VIPER I' => ['Allview', 'Viper I', DeviceType::TABLET], 'Allview Viva H8' => ['Allview', 'Viva H8', DeviceType::TABLET], 'ALLVIEW3CONECT' => ['Allview', '3 Conect', DeviceType::TABLET]], 'A10' => ['AllWinner', 'A10', DeviceType::TABLET], 'Allwinner A10' => ['AllWinner', 'A10', DeviceType::TABLET], '97FC' => ['AllWinner', 'A10 97FC', DeviceType::TABLET], 'A13-?MID!' => ['AllWinner', 'A13', DeviceType::TABLET], 'SoftwinerEvb' => ['AllWinner', 'A13', DeviceType::TABLET], 'SoftwinerEvb0308' => ['AllWinner', 'A13', DeviceType::TABLET], 'SoftwinerEvd' => ['AllWinner', 'A13', DeviceType::TABLET], 'Softwinerkf026' => ['AllWinner', 'A13', DeviceType::TABLET], 'Softwinerf721' => ['AllWinner', 'F721', DeviceType::TABLET], 'Softwinerf761' => ['AllWinner', 'F761', DeviceType::TABLET], 'Softwinerf761I' => ['AllWinner', 'F761', DeviceType::TABLET], 'Softwinerf900' => ['AllWinner', 'F900', DeviceType::TABLET], 'SoftwinerEvbV13' => ['AllWinner', 'V13', DeviceType::TABLET], 'AT107F' => ['Aluratek', 'Cinepad AT107F', DeviceType::TABLET], 'AT108F' => ['Aluratek', 'Cinepad AT108F', DeviceType::TABLET], 'AT197F' => ['Aluratek', 'Cinepad AT197F', DeviceType::TABLET], 'Amazon Kindle Fire!' => ['Amazon', 'Kindle Fire', DeviceType::TABLET], 'Amazon Otter' => ['Amazon', 'Kindle Fire', DeviceType::TABLET], 'Amazon OtterX' => ['Amazon', 'Kindle Fire', DeviceType::TABLET], 'Amazon Otter2' => ['Amazon', 'Kindle Fire', DeviceType::TABLET], 'Amazon Tate' => ['Amazon', 'Kindle Fire HD', DeviceType::TABLET], 'Amazon Jem' => ['Amazon', 'Kindle Fire HD 8.9"', DeviceType::TABLET], 'soho' => ['Amazon', 'Kindle Fire HD (2013)', DeviceType::TABLET], 'thor' => ['Amazon', 'Kindle Fire HDX', DeviceType::TABLET], 'apollo' => ['Amazon', 'Kindle Fire HDX 8.9"', DeviceType::TABLET], 'Kindle Fire' => ['Amazon', 'Kindle Fire', DeviceType::TABLET, Flag::FIREOS], 'KFOTE?!' => ['Amazon', 'Kindle Fire', DeviceType::TABLET, Flag::FIREOS], 'KFTT' => ['Amazon', 'Kindle Fire HD', DeviceType::TABLET, Flag::FIREOS], 'KFJW(I|A)!' => ['Amazon', 'Kindle Fire HD 8.9"', DeviceType::TABLET, Flag::FIREOS], 'KFJMWI' => ['Amazon', 'Kindle Fire', DeviceType::TABLET, Flag::FIREOS], 'KFSOWI' => ['Amazon', 'Kindle Fire HD (2013)', DeviceType::TABLET, Flag::FIREOS], 'KFTHW(I|A)!' => ['Amazon', 'Kindle Fire HDX', DeviceType::TABLET, Flag::FIREOS], 'KFAPW(I|A)!' => ['Amazon', 'Kindle Fire HDX 8.9"', DeviceType::TABLET, Flag::FIREOS], 'KFARWI' => ['Amazon', 'Fire HD 6', DeviceType::TABLET, Flag::FIREOS], 'KFASWI' => ['Amazon', 'Fire HD 7', DeviceType::TABLET, Flag::FIREOS], 'KFSAW(I|A)!' => ['Amazon', 'Fire HDX 8.9" (2014)', DeviceType::TABLET, Flag::FIREOS], 'KFFOWI' => ['Amazon', 'Fire', DeviceType::TABLET, Flag::FIREOS], 'KFMEWI' => ['Amazon', 'Fire HD 8', DeviceType::TABLET, Flag::FIREOS], 'KFTBWI' => ['Amazon', 'Fire HD 10', DeviceType::TABLET, Flag::FIREOS], 'SD4930UR' => ['Amazon', 'Fire Phone', DeviceType::MOBILE, Flag::FIREOS], 'AFTB' => ['Amazon', 'Fire TV', DeviceType::TELEVISION, Flag::FIREOS], 'AFTS' => ['Amazon', 'Fire TV (2015)', DeviceType::TELEVISION, Flag::FIREOS], 'AFTM' => ['Amazon', 'Fire TV stick', DeviceType::TELEVISION, Flag::FIREOS], 'AMI-TT2' => ['Amicroe', 'TouchTab II', DeviceType::TABLET], 'AMI-TT2C' => ['Amicroe', 'TouchTab IIC', DeviceType::TABLET], 'AMI-TT4' => ['Amicroe', 'TouchTab IV', DeviceType::TABLET], 'AMI-TTFORCE' => ['Amicroe', 'TouchTab Force', DeviceType::TABLET], 'AML-MX REF' => ['AmLogic', 'MX', DeviceType::TABLET], '(AMO-)?AMOI!!' => ['AMOI 1570W' => ['Amoi', '1570W'], 'AMOI A860w' => ['Amoi', 'A860W'], 'AMOI-A862W' => ['Amoi', 'A862W'], 'AMOI A900T' => ['Amoi', 'A900T'], 'AMOI A900W' => ['Amoi', 'A900W'], 'AMOI A918T' => ['Amoi', 'A918T'], 'AMOI A920' => ['Amoi', 'A920'], 'AMOI A920T' => ['Amoi', 'A920T'], 'AMOI A920W' => ['Amoi', 'A920W'], 'AMOI A928W' => ['Amoi', 'A928W'], 'AMOI A955T' => ['Amoi', 'A955T'], 'AMO-AMOI E700C' => ['Amoi', 'E700C'], 'AMOI E800C' => ['Amoi', 'E800C'], 'AMOI N79+' => ['Amoi', 'N79'], 'AMOI N89' => ['Amoi', 'N89'], 'AMOI N807' => ['Amoi', 'N807'], 'AMOI N808' => ['Amoi', 'N808'], 'AMOI N816' => ['Amoi', 'N816'], 'AMOI N818' => ['Amoi', 'N818'], 'AMOI N820' => ['Amoi', 'N820'], 'AMOI N821' => ['Amoi', 'N821'], 'AMOI[ -]N828!' => ['Amoi', 'N828'], 'AMOI N850' => ['Amoi', 'N850'], 'AMOI N890' => ['Amoi', 'N890'], 'AMOI M8228' => ['Amoi', 'M8228'], 'AMOI M8448' => ['Amoi', 'M8448'], 'Amoi Q50H' => ['Amoi', 'Q50H', DeviceType::TABLET]], 'A862W' => ['Amoi', 'A862W'], 'AMD120' => ['AnyDATA', 'AnyTAB AMD120', DeviceType::TABLET], 'mw07' => ['AOC', 'Breeze MW07', DeviceType::TABLET], 'MW0710' => ['AOC', 'Breeze MW0710', DeviceType::TABLET], 'MW0711' => ['AOC', 'Breeze MW0711', DeviceType::TABLET], 'MW0712' => ['AOC', 'Breeze MW0712', DeviceType::TABLET], 'MW0731' => ['AOC', 'Breeze MW0731', DeviceType::TABLET], 'MW0731PLUS' => ['AOC', 'Breeze MW0731 Plus', DeviceType::TABLET], 'MW0733' => ['AOC', 'Breeze MW0733', DeviceType::TABLET], 'MW0811' => ['AOC', 'Breeze MW0811', DeviceType::TABLET], 'MW0812' => ['AOC', 'Breeze MW0812', DeviceType::TABLET], 'MW0812 V2.0' => ['AOC', 'Breeze MW0812', DeviceType::TABLET], 'MW0821' => ['AOC', 'Breeze MW0821', DeviceType::TABLET], 'MW0821 V2.0' => ['AOC', 'Breeze MW0821', DeviceType::TABLET], 'MW0821+' => ['AOC', 'Breeze MW0821 Plus', DeviceType::TABLET], 'MW0831' => ['AOC', 'Breeze MW0831', DeviceType::TABLET], 'MW0831Plus' => ['AOC', 'Breeze MW0831 Plus', DeviceType::TABLET], 'MW0922' => ['AOC', 'Breeze MW0922', DeviceType::TABLET], 'MW0931' => ['AOC', 'Breeze MW0931', DeviceType::TABLET], 'AOLE 828' => ['Aole', '828'], 'AOSON G18' => ['Aoson', 'G18', DeviceType::TABLET], 'Aoson M11' => ['Aoson', 'M11', DeviceType::TABLET], 'M19' => ['Aoson', 'M19', DeviceType::TABLET], 'Aoson M19' => ['Aoson', 'M19', DeviceType::TABLET], 'aoson m33' => ['Aoson', 'M33', DeviceType::TABLET], 'aoson M33 3G' => ['Aoson', 'M33', DeviceType::TABLET], 'AOSON M1016' => ['Aoson', 'M1016', DeviceType::TABLET], 'Apanda.A60!' => ['Apanda', 'A60'], 'apanda-A80S' => ['Apanda', 'A80'], 'apanda-A100' => ['Apanda', 'A100'], 'apanda-A101' => ['Apanda', 'A101'], 'Quicki-811' => ['Apollo', 'Quicki-811', DeviceType::TABLET], 'Aprix D97+' => ['Aprix', 'D97+', DeviceType::TABLET], 'ARCHM901' => ['Archos', 'Arnova M901', DeviceType::TABLET], 'AN7CG2' => ['Archos', 'Arnova 7c G2', DeviceType::TABLET], 'Arnova 7G2' => ['Archos', 'Arnova 7 G2', DeviceType::TABLET], 'AN7G2' => ['Archos', 'Arnova 7 G2', DeviceType::TABLET], 'AN7G2DTE' => ['Archos', 'Arnova 7 G2', DeviceType::TABLET], 'AN7G2I' => ['Archos', 'Arnova 7 G2', DeviceType::TABLET], 'AN7G3' => ['Archos', 'Arnova 7 G3', DeviceType::TABLET], 'AN7BG2' => ['Archos', 'Arnova 7b G2', DeviceType::TABLET], 'AN7BG2DT' => ['Archos', 'Arnova 7b G2', DeviceType::TABLET], 'AN7BG3' => ['Archos', 'Arnova 7b G3', DeviceType::TABLET], 'AN7CG3' => ['Archos', 'Arnova 7c G3', DeviceType::TABLET], 'AN7DG3' => ['Archos', 'Arnova 7d G3', DeviceType::TABLET], 'AN7DG3B' => ['Archos', 'Arnova 7d G3', DeviceType::TABLET], 'AN7DG3-CP' => ['Archos', 'Arnova Childpad', DeviceType::TABLET], 'AN7DG3ST-CP' => ['Archos', 'Arnova Childpad', DeviceType::TABLET], 'AN7FG3' => ['Archos', 'Arnova 7f G3', DeviceType::TABLET], 'AN7HG3' => ['Archos', 'Arnova 7h G3', DeviceType::TABLET], 'AN7IG3' => ['Archos', 'Arnova 7i G3', DeviceType::TABLET], 'A80KSC!' => ['Archos', 'Arnova 8', DeviceType::TABLET], 'ARNOVA8G2' => ['Archos', 'Arnova 8 G2', DeviceType::TABLET], 'AN8G2' => ['Archos', 'Arnova 8 G2', DeviceType::TABLET], 'AN8G2I' => ['Archos', 'Arnova 8 G2', DeviceType::TABLET], 'AN8G3' => ['Archos', 'Arnova 8 G3', DeviceType::TABLET], 'AN8BG2' => ['Archos', 'Arnova 8b G2', DeviceType::TABLET], 'AN8BG3' => ['Archos', 'Arnova 8b G3', DeviceType::TABLET], 'AN8CG3' => ['Archos', 'Arnova 8c G3', DeviceType::TABLET], 'AN9G2' => ['Archos', 'Arnova 9 G2', DeviceType::TABLET], 'AN9G2I' => ['Archos', 'Arnova 9i G2', DeviceType::TABLET], 'AN9G3' => ['Archos', 'Arnova 9 G3', DeviceType::TABLET], 'A101B' => ['Archos', 'Arnova 10', DeviceType::TABLET], 'Arnova 10G2' => ['Archos', 'Arnova 10 G2', DeviceType::TABLET], 'A101C' => ['Archos', 'Arnova 10 G2', DeviceType::TABLET], 'AN10G2' => ['Archos', 'Arnova 10 G2', DeviceType::TABLET], 'AN10G2-KN' => ['Archos', 'Arnova 10 G2', DeviceType::TABLET], 'AN10G2-LN' => ['Archos', 'Arnova 10 G2', DeviceType::TABLET], 'AN10G2I' => ['Archos', 'Arnova 10 G2', DeviceType::TABLET], 'AN10BG2' => ['Archos', 'Arnova 10b G2', DeviceType::TABLET], 'AN10BG2DT' => ['Archos', 'Arnova 10b G2', DeviceType::TABLET], 'AN10BG2I' => ['Archos', 'Arnova 10b G2', DeviceType::TABLET], 'AN10BG3' => ['Archos', 'Arnova 10b G3', DeviceType::TABLET], 'AN10BG3DT' => ['Archos', 'Arnova 10b G3', DeviceType::TABLET], 'AN10CG3' => ['Archos', 'Arnova 10c G3', DeviceType::TABLET], 'AN10DG3' => ['Archos', 'Arnova 10d G3', DeviceType::TABLET], 'AN13FP' => ['Archos', 'Arnova Familypad', DeviceType::TABLET], 'ARNOVA 90G3' => ['Archos', 'Arnova 90 G3', DeviceType::TABLET], 'ARNOVA 90 G4' => ['Archos', 'Arnova 90 G4', DeviceType::TABLET], 'ARNOVA 97G4' => ['Archos', 'Arnova 97 G4', DeviceType::TABLET], 'ARNOVA 101 G4' => ['Archos', 'Arnova 101 G4', DeviceType::TABLET], 'AN8BG3-LZ' => ['Archos', 'Lazer 8.0', DeviceType::TABLET], 'A101B2-LZ' => ['Archos', 'Lazer 10.1', DeviceType::TABLET], 'AN10G2-LZ' => ['Archos', 'Lazer 10.1', DeviceType::TABLET], 'AN10BG3-LZ' => ['Archos', 'Lazer 10.1', DeviceType::TABLET], 'AN7DG3C' => ['Archos', 'Tabeo', DeviceType::TABLET], 'A32' => ['Archos', '32', 'media'], 'A35DE' => ['Archos', '35 Smart Home Phone'], 'A43' => ['Archos', '43', 'media'], 'ARCHOS 50PL' => ['Archos', '50PL', 'media'], 'ARCHOS 79XE' => ['Archos', '79XE', 'media'], 'Archos5' => ['Archos', '5', 'media'], 'A70HB' => ['Archos', '7 Home Tablet', DeviceType::TABLET], 'A70BHT' => ['Archos', '7 Home Tablet', DeviceType::TABLET], 'A70BHT-LZ' => ['Archos', '7 Home Tablet', DeviceType::TABLET], 'A70BHT-PR' => ['Archos', '7 Home Tablet', DeviceType::TABLET], 'A70CHT' => ['Archos', '7c Home Tablet', DeviceType::TABLET], 'A80HF' => ['Archos', '8 Home Tablet', DeviceType::TABLET], 'A70H' => ['Archos', '70 Internet Tablet', DeviceType::TABLET], 'A70S' => ['Archos', '70s Internet Tablet', DeviceType::TABLET], 'A7EB' => ['Archos', '70b eReader', DeviceType::TABLET], 'ARCHOS 70it2' => ['Archos', '70b Internet Tablet', DeviceType::TABLET], 'Archos 80 Internet Tablet' => ['Archos', '80 Internet Tablet', DeviceType::TABLET], 'A101IT' => ['Archos', '101 Internet Tablet', DeviceType::TABLET], 'Archos!!' => ['ARCHOS 80G9' => ['Archos', '80 G9', DeviceType::TABLET], 'ARCHOS 101G9' => ['Archos', '101 G9', DeviceType::TABLET], 'ARCHOS 97XSLG10' => ['Archos', '97 XS', DeviceType::TABLET], 'ARCHOS 80XSK' => ['Archos', '80 XS', DeviceType::TABLET], 'ARCHOS 101G10' => ['Archos', '101 XS', DeviceType::TABLET], 'ARCHOS 101 XS 2' => ['Archos', '101 XS 2', DeviceType::TABLET], 'Archos 101 XS 2 Moi' => ['Archos', '101 XS 2', DeviceType::TABLET], 'ARCHOS 80 Carbon' => ['Archos', '80 Carbon', DeviceType::TABLET], 'ARCHOS 97 CARBON' => ['Archos', '97 Carbon', DeviceType::TABLET], 'ARCHOS 70 Cobalt' => ['Archos', '70 Cobalt', DeviceType::TABLET], 'Archos 70c Cobalt' => ['Archos', '70c Cobalt', DeviceType::TABLET], 'ARCHOS 80 COBALT' => ['Archos', '80 Cobalt', DeviceType::TABLET], 'Archos 97 Cobalt' => ['Archos', '97 Cobalt', DeviceType::TABLET], 'Archos 101 Cobalt' => ['Archos', '101 Cobalt', DeviceType::TABLET], 'Archos 70 Copper' => ['Archos', '70 Copper', DeviceType::TABLET], 'Archos 90 Copper' => ['Archos', '90 Copper', DeviceType::TABLET], 'Archos 101 Copper' => ['Archos', '101 Copper', DeviceType::TABLET], 'Archos 101b Copper' => ['Archos', '101b Copper', DeviceType::TABLET], 'Archos 50 Diamond' => ['Archos', '50 Diamond'], 'Archos Diamond S' => ['Archos', 'Diamond S'], 'Archos 45 Helium 4G' => ['Archos', '45 Helium'], 'ARCHOS 45b Helium' => ['Archos', '45b Helium'], 'Archos 50 Helium 4G' => ['Archos', '50 Helium'], 'Archos 50b Helium 4G' => ['Archos', '50b Helium'], 'Archos 50c Helium' => ['Archos', '50c Helium'], 'Archos 50d Helium' => ['Archos', '50d Helium'], 'Archos 50e Helium' => ['Archos', '50e Helium'], 'Archos 50 Helium Plus' => ['Archos', '50 Helium Plus'], 'Archos 55 Helium Plus' => ['Archos', '55 Helium Plus'], 'Archos 80 Helium 4G' => ['Archos', '80 Helium', DeviceType::TABLET], 'Archos 80b Helium' => ['Archos', '80b Helium', DeviceType::TABLET], 'Archos 101 Helium' => ['Archos', '101 Helium', DeviceType::TABLET], 'ARCHOS 101 Magnus' => ['Archos', '101 Magnus', DeviceType::TABLET], 'Archos 45 Neon' => ['Archos', '45 Neon'], 'Archos 50 Neon' => ['Archos', '50 Neon'], 'ARCHOS 50c Neon' => ['Archos', '50c Neon'], 'Archos 50b Neon' => ['Archos', '50b Neon'], 'Archos 70 Neon' => ['Archos', '70 Neon', DeviceType::TABLET], 'Archos 90b Neon' => ['Archos', '90b Neon', DeviceType::TABLET], 'Archos 97 Neon' => ['Archos', '97 Neon', DeviceType::TABLET], 'Archos 101 Neon' => ['Archos', '101 Neon', DeviceType::TABLET], 'Archos 101b Neon' => ['Archos', '101b Neon', DeviceType::TABLET], 'Archos 101c Neon' => ['Archos', '101c Neon', DeviceType::TABLET], 'Archos 101d Neon' => ['Archos', '101d Neon', DeviceType::TABLET], 'Archos 50 Oxygen' => ['Archos', '50 Oxygen'], 'Archos 50b Oxygen' => ['Archos', '50b Oxygen'], 'Archos 50c Oxygen' => ['Archos', '50c Oxygen'], 'Archos 50 Oxygen Plus' => ['Archos', '50 Oxygen Plus'], 'Archos 101 Oxygen' => ['Archos', '101 Oxygen'], 'Archos 45 Platinum' => ['Archos', '45 Platinum'], 'Archos 45c Platinum' => ['Archos', '45c Platinum'], 'Archos 50 Platinum' => ['Archos', '50 Platinum'], 'Archos 50b Platinum' => ['Archos', '50b Platinum'], 'Archos 50c Platinum' => ['Archos', '50c Platinum'], 'Archos 52 Platinum' => ['Archos', '52 Platinum'], 'Archos 53 Platinum' => ['Archos', '53 Platinum'], 'Archos 5.3s Platinum' => ['Archos', '53s Platinum'], 'Archos 70 Platinum' => ['Archos', '70 Platinum', DeviceType::TABLET], 'Archos 70 Platinum v3' => ['Archos', '70 Platinum', DeviceType::TABLET], 'ARCHOS 79 Platinum' => ['Archos', '79 Platinum', DeviceType::TABLET], 'ARCHOS 80 Platinum' => ['Archos', '80 Platinum', DeviceType::TABLET], 'ARCHOS 80b PLATINUM' => ['Archos', '80b Platinum', DeviceType::TABLET], 'ARCHOS 97 Platinum' => ['Archos', '97 Platinum', DeviceType::TABLET], 'ARCHOS 97b PLATINUM' => ['Archos', '97b Platinum', DeviceType::TABLET], 'ARCHOS 101 PLATINUM' => ['Archos', '101 Platinum', DeviceType::TABLET], 'Archos 101b Platinium' => ['Archos', '101b Platinum', DeviceType::TABLET], 'Archos 101c Platinum' => ['Archos', '101c Platinum', DeviceType::TABLET], 'Archos 35 Titanium' => ['Archos', '35 Titanium'], 'Archos 35b Titanium' => ['Archos', '35b Titanium'], 'Archos 40 Titanium' => ['Archos', '40 Titanium'], 'Archos 40b Titanium Surround' => ['Archos', '40b Titanium'], 'Archos 40c Titanium' => ['Archos', '40c Titanium'], 'ARCHOS 40C TIv2' => ['Archos', '40c Titanium'], 'ARCHOS 40d Titanium' => ['Archos', '40d Titanium'], 'Archos 45 Titanium' => ['Archos', '45 Titanium'], 'Archos 50 Titanium' => ['Archos', '50 Titanium'], 'Archos 53 Titanium' => ['Archos', '53 Titanium'], 'Archos 59 Titanium' => ['Archos', '59 Titanium'], 'ARCHOS 70 Titanium' => ['Archos', '70 Titanium', DeviceType::TABLET], 'ARCHOS 70b TITANIUM' => ['Archos', '70b Titanium', DeviceType::TABLET], 'ARCHOS 80 TITANIUM' => ['Archos', '80 Titanium', DeviceType::TABLET], 'ARCHOS 97 TITANIUMHD' => ['Archos', '97 Titanium', DeviceType::TABLET], 'ARCHOS 97B TITANIUM' => ['Archos', '97b Titanium', DeviceType::TABLET], 'ARCHOS 101 Titanium' => ['Archos', '101 Titanium', DeviceType::TABLET], 'Archos 59 Xenon' => ['Archos', '59 Xenon'], 'Archos 64 Xenon' => ['Archos', '64 Xenon'], 'Archos 70 Xenon' => ['Archos', '70 Xenon', DeviceType::TABLET], 'Archos 70b Xenon' => ['Archos', '70b Xenon', DeviceType::TABLET], 'Archos 79 Xenon' => ['Archos', '79 Xenon', DeviceType::TABLET], 'Archos 80 Xenon' => ['Archos', '80 Xenon', DeviceType::TABLET], 'Archos 80b Xenon' => ['Archos', '80b Xenon', DeviceType::TABLET], 'ARCHOS 97 XENON' => ['Archos', '97 Xenon', DeviceType::TABLET], 'Archos 101 Xenon' => ['Archos', '101 Xenon', DeviceType::TABLET], 'ARCHOS 80 CHILDPAD' => ['Archos', '80 Childpad', DeviceType::TABLET], 'ARCHOS 101 CHILDPAD' => ['Archos', '101 Childpad', DeviceType::TABLET], 'Archos Chefpad' => ['Archos', 'ChefPad', DeviceType::TABLET], 'ARCHOS GAMEPAD' => ['Archos', 'Gamepad', [DeviceType::GAMING, DeviceSubType::PORTABLE]], 'ARCHOS GAMEPAD2' => ['Archos', 'Gamepad 2', [DeviceType::GAMING, DeviceSubType::PORTABLE]], 'ARCHOS FAMILYPAD 2' => ['Archos', 'Familypad 2', DeviceType::TABLET], 'Archos 101 DB' => ['Archos', 'Droid Book', DeviceType::TABLET]], 'Artes D708' => ['Artes', 'D708', DeviceType::TABLET], 'Artes D821' => ['Artes', 'D821', DeviceType::TABLET], 'D9702' => ['Artes', 'D9702', DeviceType::TABLET], 'Artes i701' => ['Artes', 'i701', DeviceType::TABLET], 'ARTES I709' => ['Artes', 'i709', DeviceType::TABLET], 'Artes Q812' => ['Artes', 'Q812', DeviceType::TABLET], 'AT10H-A10WP' => ['Artview', 'AT10H-A10WP', DeviceType::TABLET], 'Arya A1+' => ['Arya', 'A1 Plus'], 'Arya Z2' => ['Arya', 'Z2'], 'ASK SP[0-9]{3,3}!!' => ['ASK SP440 3G' => ['ASK', 'SP440'], 'ASK SP460 HD' => ['ASK', 'SP460 HD'], 'ASK SP461 3G' => ['ASK', 'SP461'], 'ASK SP510 HD' => ['ASK', 'SP510 HD'], 'ASK SP516 IPS' => ['ASK', 'SP516'], 'ASK SP516+ IPS' => ['ASK', 'SP516+'], 'ASK SP551 HD' => ['ASK', 'SP551 HD'], 'ASK SP551+HD' => ['ASK', 'SP551+ HD'], 'ASK SP554 HD' => ['ASK', 'SP554 HD'], 'ASK SP581 HD' => ['ASK', 'SP581 HD'], 'ASK SP583 HD' => ['ASK', 'SP583 HD'], 'ASK SP584 FHD' => ['ASK', 'SP584 FHD'], 'ASK SP628 HD' => ['ASK', 'SP628 HD']], 'ASTRI' => ['ASTRI', 'e-reader', DeviceType::EREADER], 'eeepc' => ['Asus', 'Eee Pc'], 'asus laptop' => ['Asus', 'Eee Pc'], 'eee 701' => ['Asus', 'Eee Pc'], 'OMS TTD' => ['Asus', 'Eee Pc T10'], 'ASUS T20' => ['Asus', 'Eee Pc T20'], 'ME102A' => ['Asus', 'MemoPad 10', DeviceType::TABLET], 'ME180A' => ['Asus', 'MemoPad 8', DeviceType::TABLET], 'ME171' => ['Asus', 'Eee Pad MeMO', DeviceType::TABLET], 'ME172V' => ['Asus', 'MemoPad', DeviceType::TABLET], 'ME173X' => ['Asus', 'MemoPad HD 7', DeviceType::TABLET], 'ME301T' => ['Asus', 'MemoPad Smart 10', DeviceType::TABLET], 'ME302C' => ['Asus', 'MemoPad FHD 10', DeviceType::TABLET], 'ME302KL' => ['Asus', 'MemoPad FHD 10', DeviceType::TABLET], 'ME370T' => ['Asus', 'Nexus 7', DeviceType::TABLET], 'ME371MG' => ['Asus', 'Fonepad', DeviceType::TABLET], 'Asus Fonepad ME371MG 8GB' => ['Asus', 'Fonepad', DeviceType::TABLET], 'ME372CG' => ['Asus', 'Fonepad 7', DeviceType::TABLET], 'ME372CL-FF' => ['Asus', 'Fonepad 7', DeviceType::TABLET], 'ME560CG' => ['Asus', 'Fonepad Note 6', DeviceType::TABLET], 'ME581CL' => ['Asus', 'MemoPad 8', DeviceType::TABLET], 'Slider SL101' => ['Asus', 'Eee Pad Slider', DeviceType::TABLET], 'EPAD' => ['Asus', 'Eee Pad Transformer', DeviceType::TABLET], 'TF101' => ['Asus', 'Eee Pad Transformer', DeviceType::TABLET], 'TF101-WiMAX' => ['Asus', 'Eee Pad Transformer', DeviceType::TABLET], 'Transformer' => ['Asus', 'Eee Pad Transformer', DeviceType::TABLET], 'Transformer TF101(G)?!' => ['Asus', 'Eee Pad Transformer', DeviceType::TABLET], 'TF201' => ['Asus', 'Eee Pad Transformer Prime', DeviceType::TABLET], 'tf201t' => ['Asus', 'Eee Pad Transformer Prime', DeviceType::TABLET], '(Eee Pad )?Transformer Prime TF201!' => ['Asus', 'Eee Pad Transformer Prime', DeviceType::TABLET], 'Transformer TF201G' => ['Asus', 'Eee Pad Transformer Prime', DeviceType::TABLET], 'Transformer Prime' => ['Asus', 'Eee Pad Transformer Prime', DeviceType::TABLET], 'Transformer Prime TF300T' => ['Asus', 'Eee Pad Transformer Prime', DeviceType::TABLET], 'Transformer Pad' => ['Asus', 'Transformer Pad 300', DeviceType::TABLET], '(Transformer )?(Pad )?TF300(T|TG|TL)!' => ['Asus', 'Transformer Pad 300', DeviceType::TABLET], '(Transformer )?(Pad )?TF502(T)!' => ['Asus', 'Transformer Pad 502', DeviceType::TABLET], '(Transformer )?(Pad )?TF700(T|K)!' => ['Asus', 'Transformer Pad Infinity 700', DeviceType::TABLET], 'Transformer (Pad )?Infinity!' => ['Asus', 'Transformer Pad Infinity 700', DeviceType::TABLET], 'PadFone' => ['Asus', 'Padfone', DeviceType::TABLET], 'PadFone 2' => ['Asus', 'Padfone 2', DeviceType::TABLET], 'PadFone Infinity' => ['Asus', 'Padfone Infinity', DeviceType::TABLET], 'PadFone Infinity A86' => ['Asus', 'Padfone Infinity', DeviceType::TABLET], 'PadFone T004' => ['Asus', 'Padfone Infinity', DeviceType::TABLET], 'PadFone-T004' => ['Asus', 'Padfone Infinity', DeviceType::TABLET], 'PadFone T008' => ['Asus', 'Padfone E', DeviceType::TABLET], 'PadFone T00C' => ['Asus', 'Padfone Mini', DeviceType::TABLET], 'PadFone X' => ['Asus', 'Padfone X', DeviceType::TABLET], 'PadFone X mini' => ['Asus', 'Padfone X Mini', DeviceType::TABLET], 'ETBW11AA' => ['Asus', 'Tough'], 'K00C' => ['Asus', 'Transformer Pad Infinity', DeviceType::TABLET], 'K010' => ['Asus', 'Transformer Pad TF103', DeviceType::TABLET], 'K018' => ['Asus', 'Transformer Pad', DeviceType::TABLET], 'K00G' => ['Asus', 'Fonepad Note 6', DeviceType::TABLET], 'K00E' => ['Asus', 'Fonepad 7', DeviceType::TABLET], 'K00X' => ['Asus', 'Fonepad 7', DeviceType::TABLET], 'K00Y' => ['Asus', 'Fonepad 7', DeviceType::TABLET], 'K00Z' => ['Asus', 'Fonepad 7', DeviceType::TABLET], 'K00R' => ['Asus', 'MemoPad 7', DeviceType::TABLET], 'K007' => ['Asus', 'MemoPad 7', DeviceType::TABLET], 'K013' => ['Asus', 'MemoPad 7', DeviceType::TABLET], 'K017' => ['Asus', 'MemoPad 7', DeviceType::TABLET], 'K01A' => ['Asus', 'MemoPad 7', DeviceType::TABLET], 'MeMO Pad 7' => ['Asus', 'MemoPad 7', DeviceType::TABLET], 'K00S' => ['Asus', 'MemoPad HD 7', DeviceType::TABLET], 'K00U' => ['Asus', 'MemoPad HD 7', DeviceType::TABLET], 'K00L' => ['Asus', 'MemoPad 8', DeviceType::TABLET], 'K011' => ['Asus', 'MemoPad 8', DeviceType::TABLET], 'K015' => ['Asus', 'MemoPad 8 AST21', DeviceType::TABLET, 'carrier' => 'au'], 'K00F' => ['Asus', 'MemoPad 10', DeviceType::TABLET], 'K012' => ['Asus', 'Fonepad 7', DeviceType::TABLET], 'K019' => ['Asus', 'Fonepad 7', DeviceType::TABLET], 'K014' => ['Asus', 'Transformer Pad', DeviceType::TABLET], 'K016' => ['Asus', 'Fonepad 8 2014', DeviceType::TABLET], 'K01E' => ['Asus', 'MemoPad 10', DeviceType::TABLET], 'K01N' => ['Asus', 'Fonepad 7 2015', DeviceType::TABLET], 'K01Q' => ['Asus', 'Fonepad 7 2015', DeviceType::TABLET], 'T00C' => ['Asus', 'Padfone Mini', DeviceType::TABLET], 'T00E' => ['Asus', 'Padfone Mini', DeviceType::TABLET], 'T00D' => ['Asus', 'Padfone X', DeviceType::TABLET], 'T00N' => ['Asus', 'Padfone S', DeviceType::TABLET], 'T001' => ['Asus', 'ZenFone 4'], 'T00I' => ['Asus', 'ZenFone 4'], 'T00I-D' => ['Asus', 'ZenFone 4'], 'A400CG' => ['Asus', 'ZenFone 4'], 'T00F' => ['Asus', 'ZenFone 5'], 'T00J' => ['Asus', 'ZenFone 5'], 'T00J-D' => ['Asus', 'ZenFone 5'], 'T00K' => ['Asus', 'ZenFone 5 Lite'], 'T00P' => ['Asus', 'ZenFone 5'], 'Zenfone 5 LTE' => ['Asus', 'ZenFone 5'], 'T00G' => ['Asus', 'ZenFone 6'], 'T00Q' => ['Asus', 'ZenFone 4S'], 'T00S' => ['Asus', 'Padfone X Mini', DeviceType::TABLET], 'T00T' => ['Asus', 'Padfone Mini', DeviceType::TABLET], 'P01Z' => ['Asus', 'ZenPad 7'], 'P01T 1' => ['Asus', 'ZenPad 10'], 'P024' => ['Asus', 'ZenPad 8'], 'Z002' => ['Asus', 'ZenFone 6'], 'Z007' => ['Asus', 'ZenFone 4C'], 'Z008' => ['Asus', 'ZenFone 2'], 'Z008D' => ['Asus', 'ZenFone 2'], 'Z00A' => ['Asus', 'ZenFone 2'], 'Z00AD' => ['Asus', 'ZenFone 2'], 'Z00ADA' => ['Asus', 'ZenFone 2'], 'Z00ADB' => ['Asus', 'ZenFone 2'], 'Z00D' => ['Asus', 'ZenFone 2'], 'ASUS ZenFone 2E' => ['Asus', 'ZenFone 2E'], 'Z00ED' => ['Asus', 'ZenFone 2 Laser'], 'Z00LD' => ['Asus', 'ZenFone 2 Laser'], 'Z00RD' => ['Asus', 'ZenFone 2 Laser'], 'Z00TD' => ['Asus', 'ZenFone 2 Laser'], 'Z011D' => ['Asus', 'ZenFone 2 Laser'], 'Z00UD' => ['Asus', 'ZenFone Selfie'], 'Z00UDB' => ['Asus', 'ZenFone Selfie'], 'Z00VD' => ['Asus', 'ZenFone Go'], 'Z00XS' => ['Asus', 'ZenFone Zoom'], 'Z010D' => ['Asus', 'ZenFone Max'], 'Z010DA' => ['Asus', 'ZenFone Max'], 'Z010DD' => ['Asus', 'ZenFone Max'], 'X002' => ['Asus', 'Pegasus'], 'X003' => ['Asus', 'Pegasus'], 'X005' => ['Asus', 'Pegasus 2 Plus'], 'TX201LA' => ['Asus', 'Transformer Book Trio', DeviceType::TABLET], 'TX201LAF' => ['Asus', 'Transformer Book Trio', DeviceType::TABLET], 'asus google cube' => ['Asus', 'Cube with Google TV', DeviceType::TELEVISION, Flag::GOOGLETV], 'google cube' => ['Asus', 'Cube with Google TV', DeviceType::TELEVISION, Flag::GOOGLETV], 'T-07B' => ['AudioSonic', 'T07B', DeviceType::TABLET], 'T-800' => ['AudioSonic', 'T800', DeviceType::TABLET], 'AUX!!' => ['AUX 909+P' => ['AUX', '909+P'], 'AUX 910+' => ['AUX', '910+'], 'AUX 939+' => ['AUX', '939+'], 'AUX M959P' => ['AUX', 'M959P'], 'AUX T5100L' => ['AUX', 'T5100L'], 'AUX V900' => ['AUX', 'V900'], 'AUX V900P' => ['AUX', 'V900P'], 'AUX V920' => ['AUX', 'V920'], 'AUX V920P' => ['AUX', 'V920P'], 'AUX V926T' => ['AUX', 'V926T'], 'AUX V950' => ['AUX', 'V950'], 'AUX V950P' => ['AUX', 'V950P'], 'AUX V965T' => ['AUX', 'V965T'], 'AUX W6' => ['AUX', 'W6']], 'Numy!!' => ['Avea inTouch 2' => ['Avea', 'inTouch 2', DeviceType::TABLET], 'Avea inTouch 3' => ['Avea', 'inTouch 3', DeviceType::TABLET], 'Avea inTouch 3 Large' => ['Avea', 'inTouch 3', DeviceType::TABLET], 'Avea inTouch 4' => ['Avea', 'inTouch 4', DeviceType::TABLET]], '(Ilium )?Avvio!!' => ['Avvio 489' => ['Avvio', '489'], 'Avvio 710' => ['Avvio', '710'], 'Avvio 735s' => ['Avvio', '735'], 'Avvio 750' => ['Avvio', '750'], 'Ilium AVVIO 760' => ['Avvio', '760'], 'AVVIO 765!' => ['Avvio', '765'], 'Avvio 768' => ['Avvio', '768'], 'Avvio 775' => ['Avvio', '775'], 'Avvio-775s' => ['Avvio', '775s'], 'Avvio 778' => ['Avvio', '778'], 'Avvio 780' => ['Avvio', '780'], 'Avvio 785' => ['Avvio', '785'], 'Avvio786' => ['Avvio', '786'], 'Avvio 790' => ['Avvio', '790'], 'Avvio 790s' => ['Avvio', '790s'], 'Avvio 792' => ['Avvio', '792'], 'Avvio 792s' => ['Avvio', '792s'], 'Avvio 793' => ['Avvio', '793'], 'Avvio L500 Claro' => ['Avvio', 'L500'], 'Avvio PAD' => ['Avvio', 'Pad', DeviceType::TABLET]], '(Axioo[\\- ])?PICO!!' => ['PICOphone 2' => ['Axioo', 'PICOphone 2'], 'PICOphone 4' => ['Axioo', 'PICOphone 4'], 'Picophone4' => ['Axioo', 'PICOphone 4'], 'PICOphone4 GDF' => ['Axioo', 'PICOphone 4'], 'PICOphone4 GDX' => ['Axioo', 'PICOphone 4'], 'PICOphone M1' => ['Axioo', 'PICOphone M1'], 'PICOphone M2 (M)' => ['Axioo', 'PICOphone M2'], 'PICOpad S1(7 3G)' => ['Axioo', 'PICOpad S1', DeviceType::TABLET], 'PICOpad 7H(7 3G)' => ['Axioo', 'PICOpad 7H', DeviceType::TABLET], 'PICOpadGCE' => ['Axioo', 'PICOpad GCE', DeviceType::TABLET], 'Axioo PICOpad GDK' => ['Axioo', 'PICOpad GDK', DeviceType::TABLET], 'PICOpad GDK' => ['Axioo', 'PICOpad GDK', DeviceType::TABLET], 'PICOpad GDS' => ['Axioo', 'PICOpad GDS', DeviceType::TABLET], 'PICOpad GEA' => ['Axioo', 'PICOpad GEA', DeviceType::TABLET], 'PICOpad GEW' => ['Axioo', 'PICOpad GEW', DeviceType::TABLET], 'PICOpad GFI' => ['Axioo', 'PICOpad GFI', DeviceType::TABLET], 'PICOpad GGA' => ['Axioo', 'PICOpad GGA', DeviceType::TABLET], 'PICOpad GGD' => ['Axioo', 'PICOpad GGD', DeviceType::TABLET], 'PICOpad GGG' => ['Axioo', 'PICOpad GGG', DeviceType::TABLET], 'PICOpad GHM' => ['Axioo', 'PICOpad GHM', DeviceType::TABLET], 'Axioo PICOpad GIM' => ['Axioo', 'PICOpad GIM', DeviceType::TABLET], 'PICOpad GJE' => ['Axioo', 'PICOpad GJE', DeviceType::TABLET], 'PICOpad GJT' => ['Axioo', 'PICOpad GJT', DeviceType::TABLET], 'PICOpad-QGN' => ['Axioo', 'PICOpad QGN', DeviceType::TABLET], 'Axioo-VIGO350' => ['Axioo', 'Vigo 350'], 'Axioo-VIGO410' => ['Axioo', 'Vigo 410']], '(AXPAD|Axxion)!!' => ['AXPAD 7E01' => ['Axtrom', 'Axpad 7" Series-7E01', DeviceType::TABLET], 'AXPAD 7E02' => ['Axtrom', 'Axpad 7" Series-7E02', DeviceType::TABLET], 'AXPAD 7I04' => ['Axtrom', 'Axpad 7" Series-7I04', DeviceType::TABLET], 'AXPAD 9P01' => ['Axtrom', 'Axpad 9" Series-9P01', DeviceType::TABLET], 'Axxion ATAB-701' => ['Axxion', 'ATAB-701', DeviceType::TABLET], 'Axxion ATAB-902' => ['Axxion', 'ATAB-902', DeviceType::TABLET]], 'A10 MID' => ['Azhuo', 'A10 MID', DeviceType::TABLET], 'A10MID' => ['Azhuo', 'A10 MID', DeviceType::TABLET], 'Azumi!!' => ['Azumi A35S' => ['Azumi', 'A35s'], 'Azumi A40C' => ['Azumi', 'A40c'], 'AZUMI A50' => ['Azumi', 'A50'], 'Azumi A50c' => ['Azumi', 'A50c'], 'AZUMI A50c+' => ['Azumi', 'A50c+'], 'Azumi LT50' => ['Azumi', 'LT50'], 'Azumi KL32' => ['Azumi', 'KL32'], 'Azumi AT7' => ['Azumi', 'AT7', DeviceType::TABLET]], '(BDS|BHX|BKO)\\-!!' => ['BDS-S100' => ['B box', 'B tv BDS-S100', DeviceType::TELEVISION], 'BDS-S200' => ['B box', 'B tv BDS-S200', DeviceType::TELEVISION], 'BHX-S100' => ['B box', 'B tv BHX-S100', DeviceType::TELEVISION], 'BHX-S100 TV' => ['B box', 'B tv BHX-S100', DeviceType::TELEVISION], 'BHX-UH200' => ['B box', 'B tv UHD BHX-UH200', DeviceType::TELEVISION], 'BKO-S200 TV' => ['B box', 'B tv BKO-S200', DeviceType::TELEVISION]], 'Aero A2-110' => ['Banghó', 'Aero A2 110', DeviceType::TABLET], 'NOOK' => ['Barnes & Noble', 'NOOK', DeviceType::EREADER], 'Nook ?Color!' => ['Barnes & Noble', 'NOOK Color', DeviceType::EREADER], '(NOOK )?BNRV(200|300)!' => ['Barnes & Noble', 'NOOK Color', DeviceType::EREADER], 'Nook ?Tablet!' => ['Barnes & Noble', 'NOOK Tablet', DeviceType::EREADER], 'NOOK Slate' => ['Barnes & Noble', 'NOOK Tablet', DeviceType::EREADER], 'Barnes & Noble Nook Tablet' => ['Barnes & Noble', 'NOOK Tablet', DeviceType::EREADER], '(NOOK )?BNTV250!' => ['Barnes & Noble', 'NOOK Tablet', DeviceType::EREADER], '(NOOK )?BNRV350!' => ['Barnes & Noble', 'NOOK Simple Touch', DeviceType::EREADER], '(NOOK )?BNTV(400)!' => ['Barnes & Noble', 'NOOK HD Tablet', DeviceType::EREADER], '(NOOK )?BNTV(600)!' => ['Barnes & Noble', 'NOOK HD+ Tablet', DeviceType::EREADER], '(NOOK )?BNTV(800)!' => ['Barnes & Noble', 'NOOK BNTV800 Tablet', DeviceType::EREADER], 'Barnes & Noble Nook HD' => ['Barnes & Noble', 'NOOK HD Tablet', DeviceType::EREADER], 'Barnes & Noble Nook HD+' => ['Barnes & Noble', 'NOOK HD+ Tablet', DeviceType::EREADER], 'Nook HD' => ['Barnes & Noble', 'NOOK HD Tablet', DeviceType::EREADER], 'BN Nook HD' => ['Barnes & Noble', 'NOOK HD Tablet', DeviceType::EREADER], 'BN NookHD+' => ['Barnes & Noble', 'NOOK HD+ Tablet', DeviceType::EREADER], 'Nook HD+' => ['Barnes & Noble', 'NOOK HD+ Tablet', DeviceType::EREADER], 'HY5001' => ['Bedove', 'HY5001'], 'BenWee 5100' => ['BenWee', '5100'], 'ASP-4300W' => ['Bauhn', 'ASP-4300W'], 'ASP-4500Z' => ['Bauhn', 'ASP-4500Z'], 'ASP-5000H' => ['Bauhn', 'ASP-5000H'], 'AT101-014' => ['Bauhn', 'AT101-014', DeviceType::TABLET], 'AT101T-114' => ['Bauhn', 'AT101T-114', DeviceType::TABLET], 'WL-101GQC' => ['Bauhn', 'WL-101GQC', DeviceType::TABLET], 'BEE 9500' => ['Bee Mobile', 'Bee 9500'], 'BF[ \\-]!!' => ['BF A8' => ['Bellefonte', 'A8'], 'BF-A10' => ['Bellefonte', 'A10'], 'BF A11' => ['Bellefonte', 'A11'], 'BF A12P' => ['Bellefonte', 'A12P'], 'BF A16' => ['Bellefonte', 'A16'], 'BF C7' => ['Bellefonte', 'C7'], 'BF G11' => ['Bellefonte', 'G11'], 'BF V5T!' => ['Bellefonte', 'V5T']], 'BenQ!!' => ['BenQ F5' => ['BenQ', 'F5'], 'BenQ T3' => ['BenQ', 'T3'], 'BenQ R71' => ['BenQ', 'R71', DeviceType::TABLET]], 'BenWee!!' => ['BenWee 550S' => ['BenWee', '550S'], 'BenWee 5100S' => ['BenWee', '5100S'], 'BenWee N7' => ['BenWee', 'N7'], 'BenWee N9' => ['BenWee', 'N9']], 'BePhone UN030' => ['BePhone', 'UN030'], 'Best ?sonny!!' => ['Best sonny L82' => ['Best Sonny', 'L82'], 'Best sonny LT986' => ['Best Sonny', 'LT986'], 'Best sonny T898' => ['Best Sonny', 'T898'], 'BestsonnyT961' => ['Best Sonny', 'T961'], 'BestsonnyT962' => ['Best Sonny', 'T962']], 'CA907AAC0G' => ['Besta', 'CA907AAC0G'], 'BFB!!' => ['BFB S7' => ['BFB', 'S7'], 'BFB W9000' => ['BFB', 'W9000'], 'BFB W9900' => ['BFB', 'W9900']], 'BF[0-9]{2,2}00!!' => ['BF5200' => ['Bifer', 'BF5200'], 'BF9100' => ['Bifer', 'BF9100'], 'BF9200' => ['Bifer', 'BF9200']], 'Bird!!' => ['BIRD E700' => ['Bird', 'E700'], 'Bird-Doeasy E700' => ['Bird', 'Doeasy E700'], 'Bird i7' => ['Bird', 'I7'], 'Bird i8' => ['Bird', 'I8'], 'Bird i9' => ['Bird', 'I9'], 'Bird i500' => ['Bird', 'I500'], 'Bird i580' => ['Bird', 'I580'], 'Bird i600' => ['Bird', 'I600'], 'BIRD I720 WIFI 3000' => ['Bird', 'I720'], 'Bird i900' => ['Bird', 'I900'], 'Bird L9' => ['Bird', 'L9'], 'BIRD L108' => ['Bird', 'L108'], 'Bird LT01' => ['Bird', 'LT01'], 'BIRD S6' => ['Bird', 'S6'], 'BIRD T40' => ['Bird', 'T40'], 'BIRD T900' => ['Bird', 'T900'], 'Bird T9500' => ['Bird', 'T9500'], 'Bird T9508' => ['Bird', 'T9508'], 'BIRD T9600' => ['Bird', 'T9600'], 'Bird T9608' => ['Bird', 'T9608'], 'BIRD-V8' => ['Bird', 'V8'], 'BIRD W5' => ['Bird', 'W5'], 'Bird W188' => ['Bird', 'W188'], 'Bird XL100' => ['Bird', 'XL100']], 'T9108' => ['Bird', 'T9108'], 'BB EH7' => ['BestBuy', 'EH7', DeviceType::TABLET], 'BB EH7LE' => ['BestBuy', 'EH7LE', DeviceType::TABLET], '(BB )?Q5$!' => ['BlackBerry', 'Q5'], '(BB )?Q10$!' => ['BlackBerry', 'Q10'], '(BB )?Z10$!' => ['BlackBerry', 'Z10'], '(BB )?Z30$!' => ['BlackBerry', 'Z30'], 'BLACKBERRY P\'9982' => ['BlackBerry', 'Porsche Design P\'9982'], 'STV100-1' => ['BlackBerry', 'PRIV'], 'STV100-2' => ['BlackBerry', 'PRIV'], 'Endeavour!!' => ['Endeavour 785' => ['Blaupunkt', 'Endeavour 785', DeviceType::TABLET], 'Endeavour 800NG' => ['Blaupunkt', 'Endeavour 800 NG', DeviceType::TABLET], 'Endeavour 1000WS' => ['Blaupunkt', 'Endeavour 1000 WS', DeviceType::TABLET], 'Endeavour 1000QC' => ['Blaupunkt', 'Endeavour 1000 QC', DeviceType::TABLET], 'Endeavour 1001' => ['Blaupunkt', 'Endeavour 1001', DeviceType::TABLET], 'Endeavour 1001 DVB-T' => ['Blaupunkt', 'Endeavour 1001 DVB-T', DeviceType::TABLET], 'Endeavour 1010' => ['Blaupunkt', 'Endeavour 1010', DeviceType::TABLET], 'Endeavour 1013' => ['Blaupunkt', 'Endeavour 1013', DeviceType::TABLET], 'Endeavour 1100' => ['Blaupunkt', 'Endeavour 1100', DeviceType::TABLET]], '(BLU|DASH|LIFE|NEO|STUDIO|VIVO)!!' => ['BLU ADVANCE 3.5' => ['BLU', 'Advance 3.5'], 'BLU ADVANCE 4.0' => ['BLU', 'Advance 4.0'], 'BLU ADVANCE 4.0 L' => ['BLU', 'Advance 4.0 L'], 'BLU Advance 5.0' => ['BLU', 'Advance 5.0'], 'BLU AMOUR' => ['BLU', 'Amour'], 'BLU DASH' => ['BLU', 'Dash'], 'DASH JR' => ['BLU', 'Dash Jr'], 'BLU DASH JR' => ['BLU', 'Dash Jr'], 'BLU DASH JR SOCIAL' => ['BLU', 'Dash Jr Social'], 'DASH JR K' => ['BLU', 'Dash Jr K'], 'DASH JR. 4.0' => ['BLU', 'Dash Jr 4.0'], 'BLU DASH JR 4.0 K' => ['BLU', 'Dash Jr 4.0 K'], '(BLU )?DASH 3.2!' => ['BLU', 'Dash 3.2'], 'Blu Dash3.5' => ['BLU', 'Dash 3.5'], 'BLU DASH 3.5!' => ['BLU', 'Dash 3.5'], 'DASH 3.5' => ['BLU', 'Dash 3.5'], 'DASH 3.5 II' => ['BLU', 'Dash 3.5 II'], 'BLU DASH 4.0' => ['BLU', 'Dash 4.0'], 'BLU Dash 4.0 Ce' => ['BLU', 'Dash 4.0 CE'], 'BLU DASH 4.5' => ['BLU', 'Dash 4.5'], 'BLU DASH 5.0' => ['BLU', 'Dash 5.0'], 'DASH 5.0+' => ['BLU', 'Dash 5.0+'], 'Dash 5.5' => ['BLU', 'Dash 5.5'], 'BLU DASH5.5' => ['BLU', 'Dash 5.5'], 'BLU DASH MUSIC 4.0' => ['BLU', 'Dash Music 4.0'], 'BLU DASH MUSIC 4.5' => ['BLU', 'Dash Music 4.5'], 'BLU DASH MUSIC II' => ['BLU', 'Dash Music II'], 'DASH C MUSIC' => ['BLU', 'Dash C Music'], 'BLU DASH L' => ['BLU', 'Dash L'], 'BLU DASH M' => ['BLU', 'Dash M'], 'BLU ENERGY X PLUS' => ['BLU', 'Energy X Plus'], 'BLU LIFE 8' => ['BLU', 'Life 8'], 'BLU LIFE 8 XL' => ['BLU', 'Life 8 XL'], 'BLU Life One' => ['BLU', 'Life One'], 'BLU LIFE ONE M' => ['BLU', 'Life One M'], 'BLU LIFE ONE X' => ['BLU', 'Life One X'], 'BLU LIFE ONE XL' => ['BLU', 'Life One XL'], 'LIFE PLAY' => ['BLU', 'Life Play'], 'LIFE PLAY 2' => ['BLU', 'Life Play 2'], 'BLU LIFE PLAY S' => ['BLU', 'Life Play S'], 'LIFE PLAY X' => ['BLU', 'Life Play X'], 'BLU LIFE PLAY MINI' => ['BLU', 'Life Play Mini'], 'LIFE PRO' => ['BLU', 'Life Pro'], 'LIFE PURE' => ['BLU', 'Life Pure'], 'LIFE PURE MINI' => ['BLU', 'Life Pure Mini'], 'LIFE PURE XL' => ['BLU', 'Life Pure XL'], 'BLU Life View' => ['BLU', 'Life View'], 'BLU Magic' => ['BLU', 'Magic'], 'BLU Neo 3.5' => ['BLU', 'Neo 3.5'], 'Neo 3.5' => ['BLU', 'Neo 3.5'], 'BLU Quattro 4.5' => ['BLU', 'Quattro 4.5'], 'BLU Quattro 4.5 HD' => ['BLU', 'Quattro 4.5 HD'], 'BLU Quattro 5.7HD' => ['BLU', 'Quattro 5.7 HD'], 'BLU SPORT 4.5' => ['BLU', 'Sport 4.5'], 'BLU STAR4.0' => ['BLU', 'Star 4.0'], 'BLU STUDIO 5.0' => ['BLU', 'Studio 5.0'], 'BLU STUDIO 5.0 C' => ['BLU', 'Studio 5.0c'], 'BLU STUDIO 5.0 Ce' => ['BLU', 'Studio 5.0ce'], 'BLU STUDIO 5.0 C HD' => ['BLU', 'Studio 5.0c HD'], 'STUDIO 5.0e' => ['BLU', 'Studio 5.0e'], 'STUDIO 5.0K' => ['BLU', 'Studio 5.0k'], 'Studio 5.0s' => ['BLU', 'Studio 5.0s'], 'BLU Studio 5.0 S II' => ['BLU', 'Studio 5.0s II'], 'BLU STUDIO 5.0 II' => ['BLU', 'Studio 5.0 II'], 'Studio 5.0LTE' => ['BLU', 'Studio 5.0 LTE'], 'Studio 5.0 HD LTE' => ['BLU', 'Studio 5.0 HD LTE'], 'BLU Studio 5.3' => ['BLU', 'Studio 5.3'], 'Studio 5.3s' => ['BLU', 'Studio 5.3s'], 'BLU STUDIO 5.3 II' => ['BLU', 'Studio 5.3 II'], 'STUDIO 5.5' => ['BLU', 'Studio 5.5'], 'BLU STUDIO 5.5 C' => ['BLU', 'Studio 5.5c'], 'BLU STUDIO 5.5 S' => ['BLU', 'Studio 5.5s'], 'STUDIO6 0HD' => ['BLU', 'Studio 6.0 HD'], 'STUDIO6.0HD' => ['BLU', 'Studio 6.0 HD'], 'BLU STUDIO 6.0 HD' => ['BLU', 'Studio 6.0 HD'], 'Studio 6.0 LTE' => ['BLU', 'Studio 6.0 LTE'], 'BLU STUDIO 7.0' => ['BLU', 'Studio 7.0'], 'STUDIO 7.0 LTE' => ['BLU', 'Studio 7.0 LTE'], 'BLU STUDIO 7.0 LTE' => ['BLU', 'Studio 7.0 LTE'], 'BLU STUDIO 7.0 II' => ['BLU', 'Studio 7.0 II'], 'STUDIO C' => ['BLU', 'Studio C'], 'BLU STUDIO C' => ['BLU', 'Studio C'], 'BLU STUDIO C MINI' => ['BLU', 'Studio C Mini'], 'BLU STUDIO C 5+5' => ['BLU', 'Studio C 5+5'], 'BLU STUDIO C 5+5 LTE' => ['BLU', 'Studio C 5+5'], 'BLU STUDIO C SUPER CAMERA' => ['BLU', 'Studio C Super Camera'], 'BLU STUDIO G' => ['BLU', 'Studio G'], 'BLU STUDIO X' => ['BLU', 'Studio X'], 'STUDIO X PLUS' => ['BLU', 'Studio X Plus'], 'STUDIO XL' => ['BLU', 'Studio XL'], 'BLU STUDIO XL' => ['BLU', 'Studio XL'], 'STUDIO ENERGY' => ['BLU', 'Studio Energy'], 'STUDIO ENERGY 2' => ['BLU', 'Studio Energy 2'], 'Studio Mini LTE' => ['BLU', 'Studio Mini LTE'], 'STUDIO SELFIE' => ['BLU', 'Studio Selfie'], 'BLU STUDIO SELFIE LTE' => ['BLU', 'Studio Selfie LTE'], 'BLU Tank4.5' => ['BLU', 'Tank 4.5'], 'BLU Tigo' => ['BLU', 'Tigo'], 'BLU Touch Book 7.0 LITE' => ['BLU', 'Touch Book 7.0 Lite', DeviceType::TABLET], 'BLU P100i' => ['BLU', 'Touch Book 7.0 Plus', DeviceType::TABLET], '(BLU )?VIVO 4.3!' => ['BLU', 'Vivo 4.3'], '(BLU )?VIVO 4.65!' => ['BLU', 'Vivo 4.65'], 'VIVO 4.8 HD' => ['BLU', 'Vivo 4.8 HD'], 'VIVO IV' => ['BLU', 'Vivo IV'], 'VIVO AIR' => ['BLU', 'Vivo Air'], 'BLU VIVO AIR LTE' => ['BLU', 'Vivo Air'], 'BLU VIVO SELFIE' => ['BLU', 'Vivo Selfie']], 'PURE XL' => ['BLU', 'Pure XL'], 'TOUCHBOOK7.0 3G' => ['BLU', 'Touch Book 7.0', DeviceType::TABLET], 'BMOBILE DASH 3.5' => ['BLU', 'Dash 3.5'], 'B3000' => ['BlueBo', 'B3000'], '(Bmobile )?AX[0-9]{3,4}!!' => ['AX410' => ['Bmobile', 'AX410'], 'Bmobile AX512' => ['Bmobile', 'AX512'], 'AX512' => ['Bmobile', 'AX512'], 'AX515' => ['Bmobile', 'AX515'], 'AX520' => ['Bmobile', 'AX520'], 'AX525' => ['Bmobile', 'AX525'], 'AX530' => ['Bmobile', 'AX530'], 'AX535' => ['Bmobile', 'AX535'], 'AX540' => ['Bmobile', 'AX540'], 'Bmobile AX540' => ['Bmobile', 'AX540'], 'AX570' => ['Bmobile', 'AX570'], 'Bmobile AX570' => ['Bmobile', 'AX570'], 'AX600' => ['Bmobile', 'AX600'], 'AX610' => ['Bmobile', 'AX610'], 'Bmobile AX610' => ['Bmobile', 'AX610'], 'AX620' => ['Bmobile', 'AX620'], 'Bmobile AX620' => ['Bmobile', 'AX620'], 'AX650' => ['Bmobile', 'AX650'], 'Bmobile AX670' => ['Bmobile', 'AX670'], 'Bmobile AX680' => ['Bmobile', 'AX680'], 'AX745' => ['Bmobile', 'AX745'], 'Bmobile AX745' => ['Bmobile', 'AX745'], 'Bmobile AX810' => ['Bmobile', 'AX810'], 'Bmobile AX1030' => ['Bmobile', 'AX1030'], 'BMOBILE AX1060' => ['Bmobile', 'AX1060']], 'Bmobile T35AC' => ['Bmobile', 'T35AC'], 'JC-S9220' => ['Bmorn', 'Phone One'], 'BM999' => ['Bmorn', 'BM999', DeviceType::TABLET], 'V11' => ['Bmorn', 'V11', DeviceType::TABLET], 'V99' => ['Bmorn', 'V99', DeviceType::TABLET], 'BO-FRSP4' => ['Bogo', 'Friendly 4DC'], 'BO-LFSPBS5' => ['Bogo', 'Lifestyle 5BS'], 'BOVO S-F16' => ['Bovo', 'Walker S-F16'], 'S-F16' => ['Bovo', 'Walker S-F16'], 'BOWAY!!' => ['BOWAY F3' => ['Boway', 'F3'], 'BOWAY I3' => ['Boway', 'I3'], 'BOWAY I5' => ['Boway', 'I5'], 'BOWAY I9' => ['Boway', 'I9'], 'BOWAY P1' => ['Boway', 'P1'], 'BOWAY U1' => ['Boway', 'U1'], 'BOWAY-BOWAY-U1' => ['Boway', 'U1'], 'BOWAY U2' => ['Boway', 'U2'], 'BOWAY-BOWAY-U2' => ['Boway', 'U2'], 'BOWAY U3' => ['Boway', 'U3'], 'BOWAY U7' => ['Boway', 'U7'], 'BOWAY V7' => ['Boway', 'V7'], 'BOWAY V70' => ['Boway', 'V70'], 'BOWAY V80' => ['Boway', 'V80']], 'BroadSign Xpress!' => ['BroadSign', 'Xpress', DeviceType::SIGNAGE], 'Broncho M7' => ['Broncho', 'M7', DeviceType::TABLET], 'CENTURION' => ['Brondi', 'CENTURION'], 'CENTURION 3' => ['Brondi', 'CENTURION 3'], 'GLADIATOR' => ['Brondi', 'GLADIATOR'], 'GLADIATOR-2' => ['Brondi', 'GLADIATOR 2'], 'GLADIATOR 3' => ['Brondi', 'GLADIATOR 3'], 'GLADIATOR 4' => ['Brondi', 'GLADIATOR 4'], 'Glory' => ['Brondi', 'GLORY'], 'Glory 2' => ['Brondi', 'GLORY 2'], 'Glory3' => ['Brondi', 'GLORY 3'], 'GLORY 4' => ['Brondi', 'GLORY 4'], 'LUXURY' => ['Brondi', 'LUXURY'], 'LUXURY 3' => ['Brondi', 'LUXURY 3'], 'LUXURY 4' => ['Brondi', 'LUXURY 4'], 'LUXURY 5' => ['Brondi', 'LUXURY 5'], 'SENSUELLE' => ['Brondi', 'SENSUELLE'], 'VICTORY' => ['Brondi', 'VICTORY'], 'Victory 2' => ['Brondi', 'VICTORY 2'], 'Victory 3' => ['Brondi', 'VICTORY 3'], 'Surfing TAB B 9.7 3G' => ['Brondi', 'SURFING TAB B', DeviceType::TABLET], 'Surfing Tab C 3G' => ['Brondi', 'SURFING TAB C', DeviceType::TABLET], '(BRS-)?BROR!!' => ['BROR G2' => ['BROR', 'G2'], 'BRS-BROR S3' => ['BROR', 'S3'], 'BROR S9' => ['BROR', 'S9'], 'BRS-BROR S9' => ['BROR', 'S9'], 'BROR T70' => ['BROR', 'T70'], 'BRS-BROR W58' => ['BROR', 'W58'], 'BROR W58' => ['BROR', 'W58'], 'BROR W60' => ['BROR', 'W60'], 'BROR W60+' => ['BROR', 'W60+'], 'BROR W65' => ['BROR', 'W65'], 'BROR W68' => ['BROR', 'W68'], 'BRS-BROR W70' => ['BROR', 'W70'], 'BRS-BROR W80' => ['BROR', 'W80']], '(bq|Aquaris|Edison|Maxwell)!!' => ['bq Aquaris' => ['bq', 'Aquaris'], 'bq Aquaris 3.5' => ['bq', 'Aquaris 3.5'], 'bq Aquaris 4' => ['bq', 'Aquaris 4'], 'bq Aquaris 5' => ['bq', 'Aquaris 5'], 'bq Aquaris5' => ['bq', 'Aquaris 5'], 'BqAquaris5' => ['bq', 'Aquaris 5'], 'bq Aquaris 5 HD' => ['bq', 'Aquaris 5 HD'], 'bq Aquaris 5.7' => ['bq', 'Aquaris 5.7'], 'Aquaris A4.5' => ['bq', 'Aquaris A4.5'], 'Aquaris E4' => ['bq', 'Aquaris E4'], 'Aquaris E4.5' => ['bq', 'Aquaris E4.5'], 'Aquaris E5' => ['bq', 'Aquaris E5'], 'Aquaris E5 HD' => ['bq', 'Aquaris E5 HD'], 'Aquaris E5 FHD' => ['bq', 'Aquaris E5 FHD'], 'Aquaris E6' => ['bq', 'Aquaris E6'], 'Aquaris E10' => ['bq', 'Aquaris E10', DeviceType::TABLET], 'Aquaris M4.5' => ['bq', 'Aquaris M4.5'], 'Aquaris M5' => ['bq', 'Aquaris M5'], 'Aquaris M5.5' => ['bq', 'Aquaris M5.5'], 'Aquaris M10' => ['bq', 'Aquaris M10', DeviceType::TABLET], 'Aquaris M10 FHD' => ['bq', 'Aquaris M10 FHD', DeviceType::TABLET], 'Aquaris X5' => ['bq', 'Aquaris X5'], 'bq Curie' => ['bq', 'Curie', DeviceType::TABLET], 'bq Curie 2' => ['bq', 'Curie 2', DeviceType::TABLET], 'bq Curie 2 3G' => ['bq', 'Curie 2', DeviceType::TABLET], 'bq Curie 2 Quad Core' => ['bq', 'Curie 2', DeviceType::TABLET], 'bq Curie 2 Quad Core 3G' => ['bq', 'Curie 2', DeviceType::TABLET], 'Bq Darwin' => ['bq', 'Darwin', DeviceType::TABLET], 'bq DaVinci' => ['bq', 'DaVinci', DeviceType::TABLET], 'bq Elcano' => ['bq', 'Elcano', DeviceType::TABLET], 'bq Elcano 2 Quad Core' => ['bq', 'Elcano 2', DeviceType::TABLET], 'bq Edison' => ['bq', 'Edison', DeviceType::TABLET], 'bq Edison 3G' => ['bq', 'Edison', DeviceType::TABLET], 'bq Edison 2' => ['bq', 'Edison 2', DeviceType::TABLET], 'bq Edison 2 3G' => ['bq', 'Edison 2', DeviceType::TABLET], 'bq Edison 2 Quad Core' => ['bq', 'Edison 2', DeviceType::TABLET], 'bq Edison 2 Quad Core 3G' => ['bq', 'Edison 2', DeviceType::TABLET], 'Edison 3' => ['bq', 'Edison 3', DeviceType::TABLET], 'Edison 3 mini' => ['bq', 'Edison 3 mini', DeviceType::TABLET], 'bq Livingstone 2' => ['bq', 'Livingstone 2', DeviceType::TABLET], 'Maxwell' => ['bq', 'Maxwell', DeviceType::TABLET], 'Maxwell Lite' => ['bq', 'Maxwell Lite', DeviceType::TABLET], 'bq Maxwell Plus' => ['bq', 'Maxwell Plus', DeviceType::TABLET], 'bq Maxwell 2' => ['bq', 'Maxwell 2', DeviceType::TABLET], 'bq Maxwell 2 Lite' => ['bq', 'Maxwell 2 Lite', DeviceType::TABLET], 'bq Maxwell 2 Plus' => ['bq', 'Maxwell 2 Plus', DeviceType::TABLET], 'bq Maxwell 2 Quad Core' => ['bq', 'Maxwell 2', DeviceType::TABLET], 'bq Pascal 2!' => ['bq', 'Pascal 2', DeviceType::TABLET], 'bq Verne Plus' => ['bq', 'Verne Plus', DeviceType::TABLET], 'bq Verne Plus 3G' => ['bq', 'Verne Plus', DeviceType::TABLET], 'bq Voltaire' => ['bq', 'Voltaire', DeviceType::TABLET]], 'BUSH!!' => ['BUSH 5 Android' => ['Bush', '5'], 'BUSH 7.0 TABLET' => ['Bush', '7.0 Tablet', DeviceType::TABLET], 'BUSH 7.85 TABLET' => ['Bush', '7.85 Tablet', DeviceType::TABLET], 'BUSH 10.1 TABLET' => ['Bush', '10.1 Tablet', DeviceType::TABLET], 'Bush 7.0 MyTablet' => ['Bush', '7.0 MyTablet', DeviceType::TABLET], 'Bush 10.0 MyTablet' => ['Bush', '10.0 MyTablet', DeviceType::TABLET], 'Bush Mytablet 2' => ['Bush', 'MyTablet 2', DeviceType::TABLET]], 'CT[0-9]{3,4}!!' => ['CT700' => ['Carrefour', 'Touch Tablet CT700', DeviceType::TABLET], 'CT701' => ['Carrefour', 'Touch Tablet CT701', DeviceType::TABLET], 'CT704' => ['Carrefour', 'Touch Tablet CT704', DeviceType::TABLET], 'CT705' => ['Carrefour', 'Touch Tablet CT705', DeviceType::TABLET], 'CT705FR' => ['Carrefour', 'Touch Tablet CT705', DeviceType::TABLET], 'CT710' => ['Carrefour', 'Touch Tablet CT710', DeviceType::TABLET], 'CT715' => ['Carrefour', 'Touch Tablet CT715', DeviceType::TABLET], 'CT720' => ['Carrefour', 'Touch Tablet CT720', DeviceType::TABLET], 'CT820' => ['Carrefour', 'Touch Tablet CT820', DeviceType::TABLET], 'CT1000' => ['Carrefour', 'Touch Tablet CT1000', DeviceType::TABLET], 'CT1002' => ['Carrefour', 'Touch Tablet CT1002', DeviceType::TABLET], 'CT1002PLUS' => ['Carrefour', 'Touch Tablet CT1002 plus', DeviceType::TABLET], 'CT1010' => ['Carrefour', 'Touch Tablet CT1010', DeviceType::TABLET], 'CT1020W' => ['Carrefour', 'Touch Tablet CT1020W', DeviceType::TABLET]], 'A101B-CF' => ['Carrefour', 'Touch Tablet CT1001', DeviceType::TABLET], 'Camangi-Mangrove7' => ['Camangi', 'Mangrove 7', DeviceType::TABLET], 'WS171' => ['Camangi', 'WebStation', DeviceType::TABLET], 'CAPTIVA!!' => ['CAPTIVA PAD 7' => ['Captiva', 'Pad 7', DeviceType::TABLET], 'CAPTIVA PAD 8' => ['Captiva', 'Pad 8', DeviceType::TABLET], 'CAPTIVA PAD 8 Pro' => ['Captiva', 'Pad 8 Pro', DeviceType::TABLET], 'CAPTIVA PAD 8 GPS' => ['Captiva', 'Pad 8 GPS', DeviceType::TABLET], 'CAPTIVA 9.7 Super FHD' => ['Captiva', 'Pad 9.7 Super FHD', DeviceType::TABLET], 'CAPTIVA PAD 10' => ['Captiva', 'Pad 10.1', DeviceType::TABLET], 'CAPTIVA PAD 10.1' => ['Captiva', 'Pad 10.1', DeviceType::TABLET], 'CAPTIVA 10.1 HD' => ['Captiva', 'Pad 10.1 HD', DeviceType::TABLET], 'CAPTIVA PAD 10.1 Quad FHD' => ['Captiva', 'Pad 10.1 Quad FHD', DeviceType::TABLET], 'CAPTIVA PAD 10.1 Quad FHD 3G' => ['Captiva', 'Pad 10.1 Quad FHD', DeviceType::TABLET]], 'Carpad T5' => ['Carpad', 'T5'], 'Carpad T61 2g' => ['Carpad', 'T61'], 'CAL21' => ['Casio', 'GzOne Type-L CAL21', 'carrier' => 'au'], 'CA201SP' => ['Casio', 'GzOne CA201'], 'IS11CA' => ['Casio', 'GzOne Commando IS11CA', 'carrier' => 'au'], 'C771' => ['Casio', 'GzOne Commando'], 'C811 4G' => ['Casio', 'GzOne Commando 811'], 'VX-100' => ['Casio', 'VX-100 EPOS Terminal', DeviceType::POS], 'Casper VIA!!' => ['Casper VIA A3216' => ['Casper', 'VIA A3216'], 'Casper VIA A6108' => ['Casper', 'VIA A6108'], 'Casper VIA V4' => ['Casper', 'VIA V4'], 'Casper VIA V5' => ['Casper', 'VIA V5'], 'Casper VIA V8' => ['Casper', 'VIA V8']], 'B15Q' => ['CAT', 'B15Q'], 'S50' => ['CAT', 'S50'], 'CAT!!' => ['Cat Comet' => ['CAT', 'COMET', DeviceType::TABLET], 'CAT NOVA' => ['CAT', 'NOVA', DeviceType::TABLET], 'Cat Tablet Android 4.0.4' => ['CAT', 'NOVA', DeviceType::TABLET], 'CatNova8' => ['CAT', 'NOVA8', DeviceType::TABLET], 'Cat Tablet PHOENIX 8J0' => ['CAT', 'PHOENIX', DeviceType::TABLET], 'Cat Tablet PHOENIX 8.1J0' => ['CAT', 'PHOENIX', DeviceType::TABLET], 'Cat Tablet Galactica 9[.,]7CA!' => ['CAT', 'GALACTICA', DeviceType::TABLET], 'Cat Tablet Galactica X 9[.,]7CA!' => ['CAT', 'GALACTICA X', DeviceType::TABLET], 'Cat Tablet GalacticaX 9.7JA' => ['CAT', 'GALACTICA X', DeviceType::TABLET], 'Cat Tablet PEGASUS T 8J0' => ['CAT', 'PEGASUS', DeviceType::TABLET], 'Cat StarGate' => ['CAT', 'STARGATE', DeviceType::TABLET], 'Cat Tablet CSG 7J0' => ['CAT', 'STARGATE', DeviceType::TABLET], 'Cat Tablet StarGate 2' => ['CAT', 'STARGATE 2', DeviceType::TABLET], 'Cat Tablet CSG2 7.1J0' => ['CAT', 'STARGATE 2', DeviceType::TABLET]], 'Celkon!!' => ['Celkon A8+' => ['Celkon', 'A8+'], 'CELKON A9 Dual' => ['Celkon', 'A9'], 'CELKON A9+' => ['Celkon', 'A9+'], 'Celkon A10' => ['Celkon', 'Campus A10'], 'Celkon A15' => ['Celkon', 'Campus A15'], 'Celkon A15K' => ['Celkon', 'Campus A15K'], 'Celkon A20' => ['Celkon', 'Campus A20'], 'Celkon A21' => ['Celkon', 'A21'], 'Celkon A 22' => ['Celkon', 'A22'], 'Celkon A27' => ['Celkon', 'A27'], 'Celkon A35K' => ['Celkon', 'A35K'], 'Celkon A43' => ['Celkon', 'A43'], 'Celkon A58' => ['Celkon', 'A58'], 'Celkon A 59' => ['Celkon', 'A59'], 'Celkon A62' => ['Celkon', 'A62'], 'Celkon A 63' => ['Celkon', 'A63'], 'CELKON A64' => ['Celkon', 'A64'], 'Celkon A66' => ['Celkon', 'A66'], 'Celkon A67' => ['Celkon', 'A67'], 'Celkon A75' => ['Celkon', 'A75'], 'Celkon A 77' => ['Celkon', 'A77'], 'Celkon A79' => ['Celkon', 'A79'], 'CELKON A83' => ['Celkon', 'A83'], 'Celkon A 85' => ['Celkon', 'A85'], 'Celkon*A86' => ['Celkon', 'A86'], 'Celkon A88' => ['Celkon', 'A88'], 'CELKON A 90' => ['Celkon', 'A90'], 'Celkon*A95*Pro' => ['Celkon', 'A95 Pro'], 'Celkon A97' => ['Celkon', 'A97'], 'Celkon A98' => ['Celkon', 'A98'], 'Celkon A101' => ['Celkon', 'A101'], 'Celkon A105+' => ['Celkon', 'Signature Vista A105+'], 'Celkon A107' => ['Celkon', 'Signature One A107'], 'Celkon A107+' => ['Celkon', 'Signature One A107+'], 'Celkon A112' => ['Celkon', 'Signature Swift A112'], 'Celkon A118' => ['Celkon', 'Signature HD A118'], 'Celkon A119' => ['Celkon', 'Signature HD A119'], 'Celkon A119Q' => ['Celkon', 'Signature HD A119Q'], 'Celkon A125' => ['Celkon', 'Campus A125'], 'Celkon A 200' => ['Celkon', 'A200'], 'Celkon A200' => ['Celkon', 'A200'], 'Celkon A 220' => ['Celkon', 'A220'], 'Celkon A 225' => ['Celkon', 'A225'], 'Celkon A404' => ['Celkon', 'Campus Buddy A404'], 'Celkon A500' => ['Celkon', 'Signature Two A500'], 'Celkon A900' => ['Celkon', 'A900'], 'Celkon A.R 40' => ['Celkon', 'AR40'], 'Celkon A.R 45' => ['Celkon', 'AR45'], 'Celkon A.R 50' => ['Celkon', 'AR50'], 'Celkon C720' => ['Celkon', 'C720', DeviceType::TABLET], 'CELKON CT2' => ['Celkon', 'CT2', DeviceType::TABLET], 'Celkon CT3' => ['Celkon', 'CT3', DeviceType::TABLET], 'Celkon CT7' => ['Celkon', 'CT7', DeviceType::TABLET], 'Celkon CT 9' => ['Celkon', 'CT9', DeviceType::TABLET], 'CELKON CT 888' => ['Celkon', 'CT888', DeviceType::TABLET], 'Celkon CT 910' => ['Celkon', 'CT910', DeviceType::TABLET], 'Celkon CT 910+' => ['Celkon', 'CT910+', DeviceType::TABLET], 'Celkon IQ180' => ['Celkon', 'IQ180'], 'Celkon S1' => ['Celkon', 'S1'], 'Celkon Q405' => ['Celkon', 'Campus Q405'], 'CELKON Q450' => ['Celkon', 'Millennia Q450'], 'Celkon Q455' => ['Celkon', 'Millennium Vogue Q455'], 'Celkon Q470' => ['Celkon', 'Millennium Elite Q470'], 'Celkon Q500' => ['Celkon', 'Millennium Ultra Q500'], 'Celkon Q550' => ['Celkon', 'Millennia Epic Q550'], 'Celkon Q3000' => ['Celkon', 'Millennia Power Q3000']], 'CT710' => ['Celkon', 'CT710', DeviceType::TABLET], 'CT910' => ['Celkon', 'CT910', DeviceType::TABLET], 'W820' => ['Cellon', 'HW-W820'], 'ChangHong!!' => ['ChangHong-Z-ME' => ['ChangHong', 'Z-me'], 'ChanghongA898T' => ['ChangHong', 'A898T'], 'ChanghongC100' => ['ChangHong', 'C100'], 'ChanghongC600' => ['ChangHong', 'C600'], 'ChanghongC770' => ['ChangHong', 'C770'], 'ChanghongC800' => ['ChangHong', 'C800'], 'Changhong H5018' => ['ChangHong', 'H5018'], 'ChangHongV5t' => ['ChangHong', 'V5t'], 'ChangHong ?V7!' => ['ChangHong', 'V7'], 'ChonghongV8' => ['ChangHong', 'V8'], 'ChangHongV11t' => ['ChangHong', 'V11t'], 'ChangHongW3' => ['ChangHong', 'W3'], 'ChangHong W3' => ['ChangHong', 'W3'], 'ChanghongW6' => ['ChangHong', 'W6'], 'ChanghongW7' => ['ChangHong', 'W7'], 'ChangHong W8' => ['ChangHong', 'W8'], 'ChangHong W22' => ['ChangHong', 'W22'], 'ChangHong ?Z1!' => ['ChangHong', 'Z1'], 'ChanghongZ3t' => ['ChangHong', 'Z3t'], 'ChangHongZ9' => ['ChangHong', 'Z9']], 'CHER!!' => ['CHER A50' => ['Cher', 'A50'], 'CHER A55w' => ['Cher', 'A55w'], 'CHER A90' => ['Cher', 'A90'], 'CHER A91' => ['Cher', 'A91']], 'PC1038' => ['Cherry', 'Pro-Line 2', DeviceType::TABLET], 'Candy TV' => ['Cherry Mobile', 'Candy TV'], 'Titan TV S320' => ['Cherry Mobile', 'Titan TV'], 'Flame2' => ['Cherry Mobile', 'Flame 2.0'], 'Flare S100' => ['Cherry Mobile', 'Flare'], 'Flare 2.0' => ['Cherry Mobile', 'Flare 2.0'], 'Flare 2.1' => ['Cherry Mobile', 'Flare 2.1'], 'Flare2X' => ['Cherry Mobile', 'Flare 2X'], 'Blaze S180' => ['Cherry Mobile', 'Blaze S180'], 'Burst S280' => ['Cherry Mobile', 'Burst W280'], 'Cherry Mobile Burst' => ['Cherry Mobile', 'Burst W280'], 'Cherry Life' => ['Cherry Mobile', 'Life'], 'Cherry Razor' => ['Cherry Mobile', 'Razor'], 'Cherry Mobile Razor' => ['Cherry Mobile', 'Razor'], 'CHERRY SNAP' => ['Cherry Mobile', 'Snap'], 'Cherry Sonic' => ['Cherry Mobile', 'Sonic'], 'Cherry thunder2.0' => ['Cherry Mobile', 'Thunder 2.0'], 'Thunder S220' => ['Cherry Mobile', 'Thunder S220'], 'H120' => ['Cherry Mobile', 'H120'], 'W200' => ['Cherry Mobile', 'W200'], 'Cherry Mobile Amber W380' => ['Cherry Mobile', 'Amber W380'], 'Cherry w500' => ['Cherry Mobile', 'W500'], 'W900' => ['Cherry Mobile', 'W900'], 'Fusion Bolt' => ['Cherry Mobile', 'Fusion Bolt', DeviceType::TABLET], 'LA-!!' => ['LA-E' => ['Chili', 'E'], 'LA-I' => ['Chili', 'I'], 'LA-I2' => ['Chili', 'I2'], 'LA-M1' => ['Chili', 'M1'], 'LA-M1Y' => ['Chili', 'M1Y'], 'LA-M2' => ['Chili', 'M2'], 'LA-Q1' => ['Chili', 'Q1']], 'M701C' => ['China Tablet', 'M701C', DeviceType::TABLET], 'TR720F' => ['China Tablet', 'TR720F', DeviceType::TABLET], 'ARMM2V' => ['chinaleap', 'ARMM2V', DeviceType::TABLET], 'ARMM3V' => ['chinaleap', 'ARMM3V', DeviceType::TABLET], 'V936' => ['Chiva', 'V936'], 'CHUWI!!' => ['CHUWI V3' => ['Chuwi', 'V3', DeviceType::TABLET], 'CHUWI-V8-HD' => ['Chuwi', 'V8 HD', DeviceType::TABLET], 'CHUWI V9' => ['Chuwi', 'V9', DeviceType::TABLET]], 'CIUS-7!' => ['Cisco', 'Cius', DeviceType::TABLET], 'CP-DX!!' => ['CP-DX70' => ['Cisco', 'DX70', DeviceType::TABLET], 'CP-DX80' => ['Cisco', 'DX80', DeviceType::TABLET], 'CP-DX650' => ['Cisco', 'DX650', DeviceType::TABLET]], 'Citycall!!' => ['Citycall A1' => ['Citycall', 'A1'], 'Citycall i310+' => ['Citycall', 'i310+'], 'Citycall i930+' => ['Citycall', 'i930+']], 'Clarion Mirage 2' => ['Clarion', 'Mirage 2', DeviceType::CAR], '(Cloudfone|CloudPad|Excite|Thrill)!!' => ['Cloudfone Excite320e' => ['Cloudfone', 'Excite 320e'], 'Cloudfone Excite320g' => ['Cloudfone', 'Excite 320g'], 'Cloudfone Excite350e' => ['Cloudfone', 'Excite 350e'], 'Cloudfone Excite350g' => ['Cloudfone', 'Excite 350g'], 'Cloudfone Excite 350g' => ['Cloudfone', 'Excite 350g'], 'Cloudfone Excite 350i' => ['Cloudfone', 'Excite 350i'], 'Cloudfone Excite 354g' => ['Cloudfone', 'Excite 354g'], 'Cloudfone Excite 400d' => ['Cloudfone', 'Excite 400d'], 'Cloudfone Excite 402d' => ['Cloudfone', 'Excite 402d'], 'Excite 402d' => ['Cloudfone', 'Excite 402d'], 'Cloudfone Excite 452q' => ['Cloudfone', 'Excite 452q'], 'Cloudfone Excite 500d' => ['Cloudfone', 'Excite 500d'], 'Excite 501o' => ['Cloudfone', 'Excite 501o'], 'Cloudfone Excite 502q' => ['Cloudfone', 'Excite 502q'], 'Cloudfone GEO 400q+' => ['Cloudfone', 'Geo 400q'], 'Cloudfone GEO 402q' => ['Cloudfone', 'Geo 402q'], 'Cloudfone ICE 2Gs' => ['Cloudfone', 'Ice 2Gs'], 'cloudfone ice 350e!' => ['Cloudfone', 'Ice 350e'], 'Cloudfone ICE 500e' => ['Cloudfone', 'Ice 500e'], 'Cloudfone Thrill 400g' => ['Cloudfone', 'Thrill 400g'], 'Cloudfone Thrill 430d' => ['Cloudfone', 'Thrill 430d'], 'Cloudfone Thrill 430g' => ['Cloudfone', 'Thrill 430g'], 'Thrill 430x' => ['Cloudfone', 'Thrill 430x'], 'Cloudfone Thrill 500g' => ['Cloudfone', 'Thrill 500g'], 'Thrill 530qx' => ['Cloudfone', 'Thrill 530qx'], 'CloudPad 700d' => ['Cloudfone', 'CloudPad 700d'], 'CloudPad 700w' => ['Cloudfone', 'CloudPad 700w'], 'CloudPad 700TV' => ['Cloudfone', 'CloudPad 700tv'], 'CloudPad 701tv' => ['Cloudfone', 'CloudPad 701tv'], 'Cloudpad 705w' => ['Cloudfone', 'CloudPad 705w'], 'CloudPad 707qw' => ['Cloudfone', 'CloudPad 707qw'], 'Cloudpad 800d' => ['Cloudfone', 'CloudPad 800d']], 'CW[- ]!!' => ['CW  V7 SIM' => ['Chuwi', 'V7'], 'CW V8 Dual' => ['Chuwi', 'V8'], 'CW-V9 DUAL' => ['Chuwi', 'V9'], 'CW-V17HD' => ['Chuwi', 'V17HD'], 'CW-V18' => ['Chuwi', 'V18'], 'CW V70' => ['Chuwi', 'V70'], 'CW V80' => ['Chuwi', 'V80'], 'CW-V88-QUAD' => ['Chuwi', 'V88'], 'CW-V88S' => ['Chuwi', 'V88s'], 'CW-V88S-QUAD' => ['Chuwi', 'V88s'], 'CW-V99' => ['Chuwi', 'V99'], 'CW-V99-QUAD' => ['Chuwi', 'V99'], 'CW-VX8-3G' => ['Chuwi', 'VX8 3G']], 'V17HD' => ['Chuwi', 'V17HD'], 'AQUILA 080-1008' => ['CMX', 'Aquila 080-1008', DeviceType::TABLET], 'AQUILA 097-1006' => ['CMX', 'Aquila 097-1006', DeviceType::TABLET], 'Clanga 079-1016' => ['CMX', 'Clanga 079-1016', DeviceType::TABLET], 'Clanga 097-2016' => ['CMX', 'Clanga 097-2016', DeviceType::TABLET], 'Clanga SE 097-1008' => ['CMX', 'Clanga SE 097-1008', DeviceType::TABLET], 'CnM!!' => ['CnM TouchPad 7' => ['CnM', 'TouchPad 7', DeviceType::TABLET], 'CnM-TOUCHPAD 7' => ['CnM', 'TouchPad 7', DeviceType::TABLET], 'CnM-TOUCHPAD7' => ['CnM', 'TouchPad 7', DeviceType::TABLET], 'CnM TouchPad 7DC' => ['CnM', 'TouchPad 7 DC', DeviceType::TABLET], 'CnM-TP-8DC-16-B' => ['CnM', 'TouchPad 7 DC', DeviceType::TABLET], 'CnM TouchPad 9DC' => ['CnM', 'TouchPad 8 DC', DeviceType::TABLET], 'CnM TOUCHPAD 9' => ['CnM', 'TouchPad 9', DeviceType::TABLET], 'CnM-TOUCHPAD9' => ['CnM', 'TouchPad 9', DeviceType::TABLET], 'Cnm TOUCHPAD 9.7' => ['CnM', 'TouchPad 9.7', DeviceType::TABLET], 'CnM-TP-10DC-16-B' => ['CnM', 'TouchPad 10 DC', DeviceType::TABLET], 'CnM TouchPad 10.1DC' => ['CnM', 'TouchPad 10.1 DC', DeviceType::TABLET]], 'MID[0-9]{4,4}!!' => ['MID1024' => ['Coby', 'Kyros MID1024', DeviceType::TABLET], 'MID1042' => ['Coby', 'Kyros MID1042', DeviceType::TABLET], 'MID1045' => ['Coby', 'Kyros MID1045', DeviceType::TABLET], 'MID1048' => ['Coby', 'Kyros MID1048', DeviceType::TABLET], 'MID1060' => ['Coby', 'Kyros MID1060', DeviceType::TABLET], 'MID1065' => ['Coby', 'Kyros MID1065', DeviceType::TABLET], 'MID1125' => ['Coby', 'Kyros MID1125', DeviceType::TABLET], 'MID1126' => ['Coby', 'Kyros MID1126', DeviceType::TABLET], 'MID4331' => ['Coby', 'Kyros MID4331', DeviceType::MEDIA], 'MID7002' => ['Coby', 'Kyros MID7002', DeviceType::TABLET], 'MID7005' => ['Coby', 'Kyros MID7005', DeviceType::TABLET], 'MID7010' => ['Coby', 'Kyros MID7010', DeviceType::TABLET], 'MID7011' => ['Coby', 'Kyros MID7011', DeviceType::TABLET], 'MID7012' => ['Coby', 'Kyros MID7012', DeviceType::TABLET], 'MID7014' => ['Coby', 'Kyros MID7014', DeviceType::TABLET], 'MID7015!' => ['Coby', 'Kyros MID7015', DeviceType::TABLET], 'MID7016' => ['Coby', 'Kyros MID7016', DeviceType::TABLET], 'MID7020' => ['Coby', 'Kyros MID7020', DeviceType::TABLET], 'MID7022' => ['Coby', 'Kyros MID7022', DeviceType::TABLET], 'MID7024' => ['Coby', 'Kyros MID7024', DeviceType::TABLET], 'MID7025' => ['Coby', 'Kyros MID7025', DeviceType::TABLET], 'MID7032' => ['Coby', 'Kyros MID7032', DeviceType::TABLET], 'MID7033' => ['Coby', 'Kyros MID7033', DeviceType::TABLET], 'MID7034' => ['Coby', 'Kyros MID7034', DeviceType::TABLET], 'MID7035' => ['Coby', 'Kyros MID7035', DeviceType::TABLET], 'MID7036' => ['Coby', 'Kyros MID7036', DeviceType::TABLET], 'MID7038' => ['Coby', 'Kyros MID7038', DeviceType::TABLET], 'MID7042' => ['Coby', 'Kyros MID7042', DeviceType::TABLET], 'MID7046' => ['Coby', 'Kyros MID7046', DeviceType::TABLET], 'MID7047' => ['Coby', 'Kyros MID7047', DeviceType::TABLET], 'MID7048' => ['Coby', 'Kyros MID7048', DeviceType::TABLET], 'MID7051' => ['Coby', 'Kyros MID7051', DeviceType::TABLET], 'MID7052' => ['Coby', 'Kyros MID7052', DeviceType::TABLET], 'MID7065' => ['Coby', 'Kyros MID7065', DeviceType::TABLET], 'MID7120' => ['Coby', 'Kyros MID7120', DeviceType::TABLET], 'MID7125' => ['Coby', 'Kyros MID7125', DeviceType::TABLET], 'MID7127' => ['Coby', 'Kyros MID7127', DeviceType::TABLET], 'MID8024' => ['Coby', 'Kyros MID8024', DeviceType::TABLET], 'MID8042' => ['Coby', 'Kyros MID8042', DeviceType::TABLET], 'MID8048' => ['Coby', 'Kyros MID8048', DeviceType::TABLET], 'MID8065' => ['Coby', 'Kyros MID8065', DeviceType::TABLET], 'MID8120' => ['Coby', 'Kyros MID8120', DeviceType::TABLET], 'MID8125' => ['Coby', 'Kyros MID8125', DeviceType::TABLET], 'MID8127' => ['Coby', 'Kyros MID8127', DeviceType::TABLET], 'MID8128' => ['Coby', 'Kyros MID8128', DeviceType::TABLET], 'MID9042' => ['Coby', 'Kyros MID9042', DeviceType::TABLET], 'MID9724' => ['Coby', 'Kyros MID9724', DeviceType::TABLET], 'MID9740' => ['Coby', 'Kyros MID9740', DeviceType::TABLET], 'MID9742' => ['Coby', 'Kyros MID9742', DeviceType::TABLET], 'MID9760' => ['Coby', 'Kyros MID9760', DeviceType::TABLET]], 'Ultimix!!' => ['Ultimix77' => ['Codegen', 'Ultimix 77', DeviceType::TABLET], 'Ultimix 88' => ['Codegen', 'Ultimix 88', DeviceType::TABLET], 'Ultimix99' => ['Codegen', 'Ultimix 99', DeviceType::TABLET]], 'Commodore!!' => ['Commodore  IS-7107C' => ['Commodore', 'IS-7107C', DeviceType::TABLET], 'Commodore IS-7107C' => ['Commodore', 'IS-7107C', DeviceType::TABLET]], 'Z71' => ['Commtiva', 'Z71'], 'V-T100' => ['Commtiva', 'V-T100'], 'FIH-FB0' => ['Commtiva', 'HD700'], 'Commtiva-HD710' => ['Commtiva', 'HD710'], 'Commtiva-N700' => ['Commtiva', 'N700'], 'Connspeed IP71' => ['Connspeed', 'IP71'], '(Colorfly|CT[0-9]{3,3})!!' => ['Colorfly CT102 Qise 3' => ['Colorfly', 'CT102 Qise 3', DeviceType::TABLET], 'CT704 D·Bok' => ['Colorfly', 'CT704 D·Bok', DeviceType::TABLET], 'CT801 Eyas' => ['Colorfly', 'CT801 Eyas', DeviceType::TABLET], 'CT801 Q.Ait' => ['Colorfly', 'CT801 Q·Ait', DeviceType::TABLET], 'Colorfly CT972Q·Vanilla' => ['Colorfly', 'CT972 Q·Vanilla', DeviceType::TABLET], 'Colorfly CT972Q·Vanilla' => ['Colorfly', 'CT972 Q·Vanilla', DeviceType::TABLET], 'Colorfly CT972Q·Vanilla' => ['Colorfly', 'CT972 Q·Vanilla', DeviceType::TABLET], 'CT972 Q.Vanilla 2' => ['Colorfly', 'CT972 Q·Vanilla 2', DeviceType::TABLET], 'CT974 Ivory 3' => ['Colorfly', 'CT974 Ivory 3', DeviceType::TABLET], 'Colorfly E708' => ['Colorfly', 'E708', DeviceType::TABLET], 'Colorfly E708 Q1' => ['Colorfly', 'E708 Q1', DeviceType::TABLET], 'Colorfly E708 Q1s' => ['Colorfly', 'E708 Q1s', DeviceType::TABLET], 'Colorfly E708 Q2' => ['Colorfly', 'E708 Q2', DeviceType::TABLET], 'Colorfly G708' => ['Colorfly', 'G708', DeviceType::TABLET], 'Colorfly S782 Q1' => ['Colorfly', 'S782 Q1', DeviceType::TABLET], 'Colorfly U781 Q1' => ['Colorfly', 'U781 Q1', DeviceType::TABLET]], 'K11' => ['Colors', 'K11'], 'Colors!!' => ['Colors K22' => ['Colors', 'K22'], 'Colors X27' => ['Colors', 'Xfactor Wave X27'], 'Colors X45' => ['Colors', 'X45'], 'Colors X115' => ['Colors', 'Xfactor Quad II X115']], 'ConCorde!!' => ['ConCorde SmartPhone 4300' => ['ConCorde', 'SmartPhone 4300'], 'ConCorde SmartPhone5000' => ['ConCorde', 'SmartPhone 5000'], 'ConCorde Smartphone 5005 NFC' => ['ConCorde', 'SmartPhone 5005 NFC'], 'ConCorde SmartPhone5700' => ['ConCorde', 'SmartPhone 5700'], 'ConCorde SmartPhone6500' => ['ConCorde', 'SmartPhone 6500'], 'ConCorde tab 9.7IPS PLUS' => ['ConCorde', 'tab 9.7IPS Plus', DeviceType::TABLET], 'ConCorde tab NOVUM' => ['ConCorde', 'tab NOVUM', DeviceType::TABLET], 'Concorde Tab Omega 3G' => ['ConCorde', 'tab OMEGA', DeviceType::TABLET], 'ConCorde tab PLAY' => ['ConCorde', 'tab PLAY', DeviceType::TABLET], 'ConCorde tab Speed' => ['ConCorde', 'tab SPEED', DeviceType::TABLET], 'ConCorde Tab T10' => ['ConCorde', 'tab T10', DeviceType::TABLET]], 'Coolgen!!' => ['Coolgen E68+' => ['Coolgen', 'E68+'], 'Coolgen E69+' => ['Coolgen', 'E69+'], 'Coolgen E70' => ['Coolgen', 'E70'], 'Coolgen E70 G' => ['Coolgen', 'E70 G'], 'Coolgen E71' => ['Coolgen', 'E71'], 'Coolgen E72 Note 3G' => ['Coolgen', 'E72'], 'Coolgen E72 Note8' => ['Coolgen', 'E72']], 'Coolpad!!' => ['Coolpad A8-531' => ['Coolpad', 'A8-531'], 'Coolpad D510' => ['Coolpad', 'D510'], 'Coolpad D530' => ['Coolpad', 'D530'], 'Coolpad D530TW' => ['Coolpad', 'D530'], 'Coolpad D539' => ['Coolpad', 'D539'], 'Coolpad E239' => ['Coolpad', 'E239'], 'Coolpad E501!' => ['Coolpad', 'E501'], 'Coolpad E560' => ['Coolpad', 'E560'], 'Coolpad F101' => ['Coolpad', 'F101'], 'Coolpad F103' => ['Coolpad', 'F103'], 'Coolpad N930' => ['Coolpad', 'N930'], 'Coolpad N950' => ['Coolpad', 'N950'], 'Coolpad R106' => ['Coolpad', 'R106'], 'Coolpad S6-NT' => ['Coolpad', 'S6-NT'], 'Coolpad T1' => ['Coolpad', 'T1'], 'Coolpad T2-C01' => ['Coolpad', 'T2'], 'Coolpad V1-C' => ['Coolpad', 'Bodun'], 'Coolpad W706!' => ['Coolpad', 'W706'], 'Coolpad W708' => ['Coolpad', 'W708'], 'Coolpad Y1' => ['Coolpad', 'Y1'], 'Coolpad Y60!' => ['Coolpad', 'Y60'], 'Coolpad Y70!' => ['Coolpad', 'Y70'], 'Coolpad Y71!' => ['Coolpad', 'Y71'], 'Coolpad Y75!' => ['Coolpad', 'Y75'], 'Coolpad Y76!' => ['Coolpad', 'Y76'], 'Coolpad Y80!' => ['Coolpad', 'Y80'], 'Coolpad Y82!' => ['Coolpad', 'Y82'], 'Coolpad 3300A' => ['Coolpad', '3300A'], 'Coolpad 3320A' => ['Coolpad', '3320A'], 'Coolpad 5010' => ['Coolpad', '5010'], 'Coolpad 5108' => ['Coolpad', '5108'], 'Coolpad 5109' => ['Coolpad', '5109'], 'Coolpad 5110' => ['Coolpad', '5110'], 'Coolpad 5200' => ['Coolpad', '5200'], 'Coolpad 5200S' => ['Coolpad', '5200S'], 'Coolpad 5210!' => ['Coolpad', '5210'], 'Coolpad 5211' => ['Coolpad', '5211'], 'Coolpad 5213' => ['Coolpad', '5213'], 'Coolpad 5216!' => ['Coolpad', '5216'], 'Coolpad 5217' => ['Coolpad', '5217'], 'Coolpad 5218!' => ['Coolpad', '5218'], 'Coolpad 5219' => ['Coolpad', '5219'], 'Coolpad 5230!' => ['Coolpad', '5230'], 'Coolpad 5261!' => ['Coolpad', '5261'], 'Coolpad 5263!' => ['Coolpad', '5263'], 'Coolpad 5310' => ['Coolpad', '5310'], 'Coolpad 5311' => ['Coolpad', '5311'], 'Coolpad 5313' => ['Coolpad', '5313'], 'Coolpad 5313S' => ['Coolpad', '5313S'], 'Coolpad 5316' => ['Coolpad', '5316'], 'Coolpad 5360' => ['Coolpad', '5360'], 'Coolpad 5820' => ['Coolpad', '5820'], 'Coolpad 5832' => ['Coolpad', '5832'], 'Coolpad 5860!' => ['Coolpad', '5860'], 'Coolpad 5870' => ['Coolpad', '5870'], 'Coolpad 5872' => ['Coolpad', '5872'], 'Coolpad 5876' => ['Coolpad', '5876'], 'Coolpad 5879' => ['Coolpad', '5879'], 'Coolpad 5879T' => ['Coolpad', '5879T'], 'Coolpad 5880' => ['Coolpad', '5880'], 'Coolpad 5890' => ['Coolpad', '5890'], 'Coolpad 5891!' => ['Coolpad', '5891'], 'Coolpad 5892!' => ['Coolpad', '5892'], 'Coolpad 5910' => ['Coolpad', '5910'], 'Coolpad 5930' => ['Coolpad', '5930'], 'Coolpad 5950' => ['Coolpad', '5950'], 'Coolpad 5950T' => ['Coolpad', '5950T'], 'Coolpad 5951' => ['Coolpad', '5951'], 'Coolpad 5952' => ['Coolpad', '5952'], 'Coolpad 5956' => ['Coolpad', '5956'], 'Coolpad 7005' => ['Coolpad', '7005'], 'Coolpad 7011' => ['Coolpad', '7011'], 'Coolpad 7019!' => ['Coolpad', '7019'], 'Coolpad 7020' => ['Coolpad', '7020'], 'Coolpad 7060!' => ['Coolpad', '7060'], 'Coolpad 7061' => ['Coolpad', '7061'], 'Coolpad 7105' => ['Coolpad', '7105'], 'Coolpad 7230!' => ['Coolpad', '7230'], 'Coolpad 7231' => ['Coolpad', '7231'], 'Coolpad 7232' => ['Coolpad', '7232'], 'Coolpad 7235' => ['Coolpad', '7235'], 'Coolpad 7236' => ['Coolpad', '7236'], 'Coolpad 7251' => ['Coolpad', '7251'], 'Coolpad 7260!' => ['Coolpad', '7260'], 'Coolpad 7266' => ['Coolpad', '7266'], 'Coolpad 7268' => ['Coolpad', '7268'], 'Coolpad 7269' => ['Coolpad', '7269'], 'Coolpad 7270' => ['Coolpad', '7270'], 'Coolpad 7270 W00' => ['Coolpad', '7270'], 'Coolpad 7275' => ['Coolpad', '7275'], 'Coolpad 7290' => ['Coolpad', '7290'], 'Coolpad 7295!' => ['Coolpad', '7295'], 'Coolpad 7296' => ['Coolpad', '7296'], 'Coolpad 7296S' => ['Coolpad', '7296S'], 'Coolpad 7298A' => ['Coolpad', '7298A'], 'Coolpad 7298D' => ['Coolpad', '7298D'], 'Coolpad 7320' => ['Coolpad', '7320'], 'Coolpad 7560U' => ['Coolpad', '7560U'], 'Coolpad 7620L!' => ['Coolpad', '7620L'], 'Coolpad 7728' => ['Coolpad', '7728'], 'Coolpad 8010' => ['Coolpad', '8010'], 'Coolpad 8012' => ['Coolpad', '8012'], 'Coolpad 8013' => ['Coolpad', '8013'], 'Coolpad 8017!' => ['Coolpad', '8017'], 'Coolpad 8020!' => ['Coolpad', '8020'], 'Coolpad 8021' => ['Coolpad', '8021'], 'Coolpad 8022' => ['Coolpad', '8022'], 'Coolpad 8026' => ['Coolpad', '8026'], 'Coolpad 8028' => ['Coolpad', '8028'], 'Coolpad 8029' => ['Coolpad', '8029'], 'Coolpad 8050' => ['Coolpad', '8050'], 'Coolpad 8056' => ['Coolpad', '8056'], 'Coolpad -8056' => ['Coolpad', '8056'], 'Coolpad 8060' => ['Coolpad', '8060'], 'Coolpad 8070' => ['Coolpad', '8070'], 'Coolpad 8070D' => ['Coolpad', '8070D'], 'Coolpad 8071' => ['Coolpad', '8071'], 'Coolpad 8076' => ['Coolpad', '8076'], 'Coolpad -8076!' => ['Coolpad', '8076'], 'Coolpad 8076D' => ['Coolpad', '8076'], 'Coolpad 8079' => ['Coolpad', '8079'], 'Coolpad 8085' => ['Coolpad', '8085'], 'Coolpad 8085Q' => ['Coolpad', '8085'], 'Coolpad 8089' => ['Coolpad', '8089'], 'Coolpad 8105' => ['Coolpad', '8105'], 'Coolpad 8122' => ['Coolpad', '8122'], 'Coolpad 8150S' => ['Coolpad', '8150'], 'Coolpad -?8190!' => ['Coolpad', '8190'], 'Coolpad 8198T' => ['Coolpad', '8198T'], 'Coolpad 8295M' => ['Coolpad', '8295M'], 'Coolpad 8295!' => ['Coolpad', '8295'], 'Coolpad 8297!' => ['Coolpad', 'Dashen F1'], 'Coolpad F1 8297W' => ['Coolpad', 'Dashen F1'], 'Coolpad 8670' => ['Coolpad', 'Note 8670'], 'Coolpad 8675!' => ['Coolpad', 'Dashen F2'], 'Coolpad 8676!' => ['Coolpad', 'Note 3 8676'], 'Coolpad 8690!' => ['Coolpad', 'Dashen X7'], 'Coolpad 8702' => ['Coolpad', '8702'], 'Coolpad 8702D' => ['Coolpad', '8702D'], 'Coolpad 8705' => ['Coolpad', '8705'], 'Coolpad 8707' => ['Coolpad', '8707'], 'Coolpad 8713' => ['Coolpad', '8713'], 'Coolpad 8720L' => ['Coolpad', '8720L'], 'Coolpad 8720Q' => ['Coolpad', '8720Q'], 'Coolpad 8729' => ['Coolpad', '8729'], 'Coolpad 8730L' => ['Coolpad', '8730L'], 'Coolpad 8732' => ['Coolpad', '8732'], 'Coolpad 8735' => ['Coolpad', '8735'], 'Coolpad 8736' => ['Coolpad', '8736'], 'Coolpad 8750' => ['Coolpad', 'Xuan Ying SII 8750'], 'Coolpad 8809' => ['Coolpad', '8809'], 'Coolpad 8810' => ['Coolpad', '8810'], 'Coolpad 8811' => ['Coolpad', '8811'], 'Coolpad 8860!' => ['Coolpad', '8860'], 'Coolpad 8870!' => ['Coolpad', '8870'], 'Coolpad 8908' => ['Coolpad', '8908'], 'Coolpad 8920' => ['Coolpad', 'Quattro II 8920'], 'Coolpad 8970L' => ['Coolpad', 'Grand 4 8970'], 'Coolpad 8971' => ['Coolpad', '8971'], 'Coolpad 9070' => ['Coolpad', '9070+XO'], 'Coolpad 9080W' => ['Coolpad', '9080'], 'Coolpad 9120' => ['Coolpad', '9120'], 'Coolpad 9150' => ['Coolpad', 'Air 9150'], 'Coolpad 9150W' => ['Coolpad', 'Air 9150'], 'Coolpad 9190L!' => ['Coolpad', 'S6 9190'], 'Coolpad 9190 T00' => ['Coolpad', 'S6 9190'], 'Coolpad 9900' => ['Coolpad', '9900'], 'Coolpad 9960' => ['Coolpad', 'Grand HD 9960'], 'Coolpad 9970' => ['Coolpad', 'Grand 4 9970'], 'Coolpad 9976!' => ['Coolpad', '9976'], 'Coolpad Flo' => ['Coolpad', 'Flo']], 'D530' => ['Coolpad', 'D530'], 'D539' => ['Coolpad', 'D539'], 'E239' => ['Coolpad', 'E239'], 'N930' => ['Coolpad', 'N930'], 'W711' => ['Coolpad', 'W711'], 'CP3700A' => ['Coolpad', '3700A'], '5560S' => ['Coolpad', '5560S'], '5832' => ['Coolpad', '5832'], '5855' => ['Coolpad', '5855'], '5860' => ['Coolpad', '5860'], '5860A' => ['Coolpad', '5860A'], '5860E' => ['Coolpad', 'Quattro 4G 5860E'], '5860S' => ['Coolpad', '5860S'], '5870' => ['Coolpad', '5870'], '7260' => ['Coolpad', '7260'], '7266' => ['Coolpad', '7266'], '8022' => ['Coolpad', '8022'], '8190Q' => ['Coolpad', '8190'], '8720' => ['Coolpad', '8720'], '8720L' => ['Coolpad', '8720'], '8810' => ['Coolpad', '8810'], '801ES' => ['Coolpad', 'Quattro II 4G'], 'COSHIP F2' => ['Coship', 'F2'], 'COWON!!' => ['COWON D3' => ['Cowon', 'D3 Plenue', DeviceType::MEDIA], 'COWON Z2' => ['Cowon', 'Z2 Plenue', DeviceType::MEDIA]], 'COZCO C1 Plus' => ['Cozco', 'C1 Plus'], 'CLP281X' => ['Craig', 'CLP281x', DeviceType::TABLET], 'CMP!!' => ['CMP741d' => ['Craig', 'CMP741d', DeviceType::TABLET], 'CMP741E' => ['Craig', 'CMP741e', DeviceType::TABLET], 'CMP745E' => ['Craig', 'CMP745e', DeviceType::TABLET], 'CMP748' => ['Craig', 'CMP748', DeviceType::TABLET], 'CMP749' => ['Craig', 'CMP749', DeviceType::TABLET], 'CMP756' => ['Craig', 'CMP756', DeviceType::TABLET], 'CMP 765' => ['Craig', 'CMP765', DeviceType::TABLET]], 'Zii!!' => ['ZiiO7' => ['Creative', 'ZiiO 7', DeviceType::TABLET], 'ZiiLABS ZiiO7' => ['Creative', 'ZiiO 7', DeviceType::TABLET], 'ZiiLABS ZiiO10' => ['Creative', 'ZiiO 10', DeviceType::TABLET], 'ZiiLABS ZiiO10 ' => ['Creative', 'ZiiO 10', DeviceType::TABLET], 'ZiiLABS ZiiO10+' => ['Creative', 'ZiiO 10', DeviceType::TABLET], 'Zii EGG' => ['Creative', 'Zii Egg', DeviceType::MEDIA]], 'CTP828BT' => ['Cresta', 'CTP828BT', DeviceType::TABLET], 'CRESTA.CTP888' => ['Cresta', 'CTP888', DeviceType::TABLET], 'Cross!!' => ['CROSS-A1' => ['Cross', 'A1'], 'Cross A2' => ['Cross', 'A2'], 'CROSS A5' => ['Cross', 'A5'], 'CROSS A5B' => ['Cross', 'A5B'], 'Cross A7*' => ['Cross', 'A7'], 'CROSS A7#' => ['Cross', 'A7'], 'Cross Andromeda A7*' => ['Cross', 'A7'], 'CROSS A7S' => ['Cross', 'A7S'], 'CROSSA7S' => ['Cross', 'A7S'], 'CROSS A10' => ['Cross', 'A10'], 'CROSS A11' => ['Cross', 'A11'], 'CrossA18' => ['Cross', 'A18'], 'CROSS-A20G' => ['Cross', 'A20G'], 'Cross A22' => ['Cross', 'A22'], 'Cross A25' => ['Cross', 'A25'], 'CROSS A26' => ['Cross', 'A26'], 'CROSS A27' => ['Cross', 'A27'], 'CROSS A28' => ['Cross', 'A28'], 'CROSS A66' => ['Cross', 'A66'], 'CROSS A88' => ['Cross', 'A88'], 'CROSS AT1' => ['Cross', 'AT1', DeviceType::TABLET], 'CROSS AT1G' => ['Cross', 'AT1G', DeviceType::TABLET], 'CROSS AT1G*' => ['Cross', 'AT1G', DeviceType::TABLET]], 'Crosscall!!' => ['Crosscall ELEMENT' => ['Crosscall', 'ELEMENT'], 'CROSSCALL WILD' => ['Crosscall', 'WILD']], 'Novapad!!' => ['Novapad 70 D124 FC' => ['Crypto', 'NovaPad 70 D124', DeviceType::TABLET], 'Novapad 70 S124 FC' => ['Crypto', 'NovaPad 70 S124', DeviceType::TABLET], 'NovaPad80C104' => ['Crypto', 'NovaPad 80 C104', DeviceType::TABLET], 'NovaPad 80 C124' => ['Crypto', 'NovaPad 80 C124', DeviceType::TABLET], 'Novapad D7000' => ['Crypto', 'NovaPad D7000', DeviceType::TABLET], 'Novapad D7001' => ['Crypto', 'NovaPad D7001', DeviceType::TABLET], 'Novapad D7002' => ['Crypto', 'NovaPad D7002', DeviceType::TABLET]], 'CUBOT!!' => ['CUBOT C9+' => ['Cubot', 'C9+'], 'CUBOT C11' => ['Cubot', 'C11'], 'CUBOT GT72E' => ['Cubot', 'GT72E'], 'CUBOT GT99' => ['Cubot', 'GT99'], 'CUBOT ONE' => ['Cubot', 'One'], 'CUBOT ONE-S' => ['Cubot', 'One S'], 'CUBOT P7' => ['Cubot', 'P7'], 'CUBOT P9' => ['Cubot', 'P9'], 'CUBOT S108' => ['Cubot', 'S108'], 'CUBOT S222' => ['Cubot', 'S222'], 'CUBOT X6' => ['Cubot', 'X6']], 'S222' => ['Cubot', 'S222'], 'S308' => ['Cubot', 'S308'], '(CUBE ?)?[KU][0-9]{1,2}GT!!' => ['CUBE K8GT' => ['Cube', 'K8GT', DeviceType::TABLET], 'CUBE K8GT A' => ['Cube', 'K8GT A', DeviceType::TABLET], 'CUBE K8GT B' => ['Cube', 'K8GT B', DeviceType::TABLET], 'K8GT C' => ['Cube', 'K8GT C', DeviceType::TABLET], 'K8GT H' => ['Cube', 'K8GT H', DeviceType::TABLET], 'CUBE K8GT H' => ['Cube', 'K8GT H', DeviceType::TABLET], 'K8GT W' => ['Cube', 'K8GT W', DeviceType::TABLET], 'CUBE U8GT' => ['Cube', 'U8GT', DeviceType::TABLET], 'CUBE U9GT' => ['Cube', 'U9GT', DeviceType::TABLET], 'CUBE U9 GT' => ['Cube', 'U9GT', DeviceType::TABLET], 'U9GT' => ['Cube', 'U9GT', DeviceType::TABLET], 'U9GT S' => ['Cube', 'U9GT S', DeviceType::TABLET], 'U9GT-S' => ['Cube', 'U9GT S', DeviceType::TABLET], 'U9GT S A' => ['Cube', 'U9GT SA', DeviceType::TABLET], 'U9GTS A' => ['Cube', 'U9GT SA', DeviceType::TABLET], 'U9GT-SA' => ['Cube', 'U9GT SA', DeviceType::TABLET], 'U9GT V' => ['Cube', 'U9GT V', DeviceType::TABLET], 'U9GT V Core 4' => ['Cube', 'U9GT V', DeviceType::TABLET], 'CUBE U9GT ?2!' => ['Cube', 'U9GT2', DeviceType::TABLET], 'Cube U9GT-2' => ['Cube', 'U9GT2', DeviceType::TABLET], 'U9GT2!' => ['Cube', 'U9GT2', DeviceType::TABLET], 'N90 From moage.com' => ['Cube', 'U9GT2', DeviceType::TABLET], 'U9GT3' => ['Cube', 'U9GT3', DeviceType::TABLET], 'U9GT3-S' => ['Cube', 'U9GT3 S', DeviceType::TABLET], 'U9GT4' => ['Cube', 'U9GT4', DeviceType::TABLET], 'U10GT A' => ['Cube', 'U10GT A', DeviceType::TABLET], 'U10GT-A' => ['Cube', 'U10GT A', DeviceType::TABLET], 'U10GT S' => ['Cube', 'U10GT S', DeviceType::TABLET], 'U10GT 2' => ['Cube', 'U10GT2', DeviceType::TABLET], 'CUBE U15GT' => ['Cube', 'U15GT', DeviceType::TABLET], 'U18GT' => ['Cube', 'U18GT', DeviceType::TABLET], 'U18GT-H' => ['Cube', 'U18GT H', DeviceType::TABLET], 'U18GT-S' => ['Cube', 'U18GT S', DeviceType::TABLET], 'U18GT-W' => ['Cube', 'U18GT W', DeviceType::TABLET], 'U18GTW' => ['Cube', 'U18GT W', DeviceType::TABLET], 'U18GT2' => ['Cube', 'U18GT2', DeviceType::TABLET], 'U19GT-W' => ['Cube', 'U19GT W', DeviceType::TABLET], 'U21GT' => ['Cube', 'U21GT', DeviceType::TABLET], 'U20GT' => ['Cube', 'U20GT', DeviceType::TABLET], 'U20GT WS' => ['Cube', 'U20GT WS', DeviceType::TABLET], 'U23GT' => ['Cube', 'U23GT', DeviceType::TABLET], 'U23GT-S' => ['Cube', 'U23GT S', DeviceType::TABLET], 'U23GTC4' => ['Cube', 'U23GT C4', DeviceType::TABLET], 'U25GT' => ['Cube', 'U25GT', DeviceType::TABLET], 'CUBE U25GT' => ['Cube', 'U25GT', DeviceType::TABLET], 'U25GT PRO' => ['Cube', 'U25GT Pro', DeviceType::TABLET], 'U25GT-W' => ['Cube', 'U25GT W', DeviceType::TABLET], 'U25GT-W4' => ['Cube', 'U25GT W4', DeviceType::TABLET], 'U25GT-C4' => ['Cube', 'U25GT C4', DeviceType::TABLET], 'U25GT-C4W' => ['Cube', 'U25GT C4W', DeviceType::TABLET], 'U25GT-C4WB' => ['Cube', 'U25GT C4WB', DeviceType::TABLET], 'U25GT-C4Y' => ['Cube', 'U25GT C4Y', DeviceType::TABLET], 'U25GT2-H' => ['Cube', 'U25GT2 H', DeviceType::TABLET], 'U27GT' => ['Cube', 'U27GT', DeviceType::TABLET], 'U27GT-C8' => ['Cube', 'U27GT C8', DeviceType::TABLET], 'U27GT-C8P' => ['Cube', 'U27GT C8P', DeviceType::TABLET], 'U27GT-SD' => ['Cube', 'U27GT SD', DeviceType::TABLET], 'U28GT' => ['Cube', 'U28GT', DeviceType::TABLET], 'U30GT' => ['Cube', 'U30GT', DeviceType::TABLET], 'U30GT C4' => ['Cube', 'U30GT C4', DeviceType::TABLET], 'U30GT-H' => ['Cube', 'U30GT H', DeviceType::TABLET], 'U30GT-H By BiscuitTeam' => ['Cube', 'U30GT H', DeviceType::TABLET], 'U30GT-HS' => ['Cube', 'U30GT HS', DeviceType::TABLET], 'U30GT-M' => ['Cube', 'U30GT M', DeviceType::TABLET], 'U30GT-MS' => ['Cube', 'U30GT MS', DeviceType::TABLET], 'U30GTm2' => ['Cube', 'U30GT M2', DeviceType::TABLET], 'U30GT MINI' => ['Cube', 'U30GT Mini', DeviceType::TABLET], 'U30GT-mini' => ['Cube', 'U30GT Mini', DeviceType::TABLET], 'U30GT-W' => ['Cube', 'U30GT W', DeviceType::TABLET], 'u30gt2' => ['Cube', 'U30GT2', DeviceType::TABLET], 'U30GT 2' => ['Cube', 'U30GT2', DeviceType::TABLET], 'U30GT-2' => ['Cube', 'U30GT2', DeviceType::TABLET], 'U30GT 2MH' => ['Cube', 'U30GT2 MH', DeviceType::TABLET], 'U31GT' => ['Cube', 'U31GT', DeviceType::TABLET], 'U35GT' => ['Cube', 'U35GT', DeviceType::TABLET], 'U35GT-W' => ['Cube', 'U35GT W', DeviceType::TABLET], 'U35GT2' => ['Cube', 'U35GT2', DeviceType::TABLET], 'U39GT' => ['Cube', 'U39GT', DeviceType::TABLET], 'U39GT-W' => ['Cube', 'U39GT W', DeviceType::TABLET], 'U39GT-3G' => ['Cube', 'U39GT 3G', DeviceType::TABLET], 'U51GT' => ['Cube', 'U51GT', DeviceType::TABLET], 'U51GT-S' => ['Cube', 'U51GT S', DeviceType::TABLET], 'U51GT-W' => ['Cube', 'U51GT W', DeviceType::TABLET], 'U51GT C4' => ['Cube', 'U51GT C4', DeviceType::TABLET], 'U51GT-C4' => ['Cube', 'U51GT C4', DeviceType::TABLET], 'U51GT-C4B' => ['Cube', 'U51GT C4B', DeviceType::TABLET], 'U51GT-C4BD' => ['Cube', 'U51GT C4BD', DeviceType::TABLET], 'U51GT-C8' => ['Cube', 'U51GT C8', DeviceType::TABLET], 'U51GT-C8S' => ['Cube', 'U51GT C8S', DeviceType::TABLET], 'U55GT' => ['Cube', 'U55GT', DeviceType::TABLET], 'U55GT C8' => ['Cube', 'U55GT C8', DeviceType::TABLET], 'U55GT S' => ['Cube', 'U55GT S', DeviceType::TABLET], 'U59GT-C4' => ['Cube', 'U59GT C4', DeviceType::TABLET], 'U65GT' => ['Cube', 'U65GT', DeviceType::TABLET]], 'CUBE!!' => ['CUBE Q7PRO' => ['Cube', 'Q7 Pro', DeviceType::TABLET], 'CUBE Q7PRO J' => ['Cube', 'Q7 Pro', DeviceType::TABLET], 'CUBE TALK7X' => ['Cube', 'Talk 7X', DeviceType::TABLET], 'CUBE TALK7X C4' => ['Cube', 'Talk 7X C4', DeviceType::TABLET]], 'LT[0-9]{4,4}!!' => ['LT7033' => ['Curtis', 'Klu LT7033', DeviceType::TABLET], 'LT7035-F' => ['Curtis', 'Klu LT7035-F', DeviceType::TABLET], 'LT7035-J' => ['Curtis', 'Klu LT7035-J', DeviceType::TABLET], 'LT7035-L' => ['Curtis', 'Klu LT7035-L', DeviceType::TABLET], 'LT7052' => ['Curtis', 'Klu LT7052', DeviceType::TABLET], 'LT8088' => ['Curtis', 'Klu LT8088', DeviceType::TABLET]], 'Cydle M7!' => ['Cydle', 'M7 MultiPAD', DeviceType::TABLET], 'EVDO1000' => ['Cyrus', 'EVDO 1000'], 'GloryG1000' => ['Cyrus', 'Glory G1000'], 'TVPAD Slim K3409' => ['Cyrus', 'TVPad Slim K3409', DeviceType::TABLET], 'D2-[0-9]{3,3}!!' => ['D2-711' => ['D2pad', 'D2-711', DeviceType::TABLET], 'D2-712' => ['D2pad', 'D2-712', DeviceType::TABLET], 'D2-721' => ['D2pad', 'D2-721', DeviceType::TABLET], 'D2-721G' => ['D2pad', 'D2-721G', DeviceType::TABLET], 'D2-911' => ['D2pad', 'D2-911', DeviceType::TABLET], 'D2-912' => ['D2pad', 'D2-912', DeviceType::TABLET], 'D2-927G' => ['D2pad', 'D2-927G', DeviceType::TABLET], 'D2-961G' => ['D2pad', 'D2-961G', DeviceType::TABLET]], 'Dakele A380' => ['Dakele', 'A380'], 'DAKELE MC001' => ['Dakele', 'MC001'], 'MC002' => ['Dakele', 'MC002'], 'Dslide!!' => ['Dslide 700' => ['Danew', 'DSlide 700', DeviceType::TABLET], 'Dslide 702' => ['Danew', 'DSlide 702', DeviceType::TABLET], 'Dslide 703R' => ['Danew', 'DSlide 703R', DeviceType::TABLET], 'Dslide 704' => ['Danew', 'DSlide 704', DeviceType::TABLET], 'Dslide 706' => ['Danew', 'DSlide 706', DeviceType::TABLET], 'Dslide 707' => ['Danew', 'DSlide 707', DeviceType::TABLET], 'Dslide800' => ['Danew', 'DSlide 800', DeviceType::TABLET], 'Dslide801' => ['Danew', 'DSlide 801', DeviceType::TABLET], 'Dslide900' => ['Danew', 'DSlide 900', DeviceType::TABLET], 'Dslide 971' => ['Danew', 'DSlide 971', DeviceType::TABLET], 'Dslide971DC' => ['Danew', 'DSlide 971', DeviceType::TABLET], 'DSlide972' => ['Danew', 'DSlide 972', DeviceType::TABLET], 'DSlide973' => ['Danew', 'DSlide 973', DeviceType::TABLET], 'Dslide973QC' => ['Danew', 'DSlide 973', DeviceType::TABLET], 'DSlide 1013' => ['Danew', 'DSlide 1013', DeviceType::TABLET]], 'Genius!!' => ['Genius TAB GIII' => ['Dany', 'Genius Tab G3', DeviceType::TABLET], 'GENIUS-G4' => ['Dany', 'Genius Tab G4', DeviceType::TABLET], 'Genius TAB G4' => ['Dany', 'Genius Tab G4', DeviceType::TABLET], 'Genius Tab Q4' => ['Dany', 'Genius Tab Q4', DeviceType::TABLET]], 'EvoPAD!!' => ['EvoPAD A7000' => ['Dark', 'EvoPad A7000', DeviceType::TABLET], 'EvoPad-R1020' => ['Dark', 'EvoPad R1020', DeviceType::TABLET], 'EVOPad R8000' => ['Dark', 'EvoPad R8000', DeviceType::TABLET], 'EVOPad R8020' => ['Dark', 'EvoPad R8020', DeviceType::TABLET], 'EVOPad R9720' => ['Dark', 'EvoPad R9720', DeviceType::TABLET], 'EvoPAD R9740' => ['Dark', 'EvoPad R9740', DeviceType::TABLET], 'EvoPAD-R9722' => ['Dark', 'EvoPad R9722', DeviceType::TABLET], 'Evopad R9730' => ['Dark', 'EvoPad R9730', DeviceType::TABLET]], 'HB-100 DASAN' => ['Dasan', 'HB-100', DeviceType::TELEVISION], 'HB-100 DASAN Networks, Inc.' => ['Dasan', 'HB-100', DeviceType::TELEVISION], '001DL' => ['Dell', 'STREAK 001DL', DeviceType::TABLET, 'carrier' => 'Softbank'], '101DL' => ['Dell', 'STREAK PRO 101DL', DeviceType::TABLET, 'carrier' => 'Softbank'], 'GS01' => ['Dell', 'STREAK PRO GS01', DeviceType::TABLET, 'carrier' => 'EMOBILE'], 'streak7' => ['Dell', 'Streak 7', DeviceType::TABLET], 'Venue!!' => ['Dell Aero' => ['Dell', 'Aero'], 'Dell Grappa' => ['Dell', 'Grappa'], 'Dell M01M' => ['Dell', 'Mini 5', DeviceType::TABLET], 'Dell Streak' => ['Dell', 'Streak', DeviceType::TABLET], 'Dell Streak Pro' => ['Dell', 'Streak Pro', DeviceType::TABLET], 'Dell Streak 7' => ['Dell', 'Streak 7', DeviceType::TABLET], 'Dell Streak 10 Pro' => ['Dell', 'Streak 10 Pro', DeviceType::TABLET], 'Dell V04B' => ['Dell', 'Streak V04B', DeviceType::TABLET], 'Dell Venue' => ['Dell', 'Venue']], 'Venue!!' => ['venue 7' => ['Dell', 'Venue 7', DeviceType::TABLET], 'Venue 7 3730' => ['Dell', 'Venue 7', DeviceType::TABLET], 'Venue 7 3736' => ['Dell', 'Venue 7', DeviceType::TABLET], 'Venue 7 3740' => ['Dell', 'Venue 7', DeviceType::TABLET], 'Venue7 3740' => ['Dell', 'Venue 7', DeviceType::TABLET], 'Venue7 3740 LTE' => ['Dell', 'Venue 7', DeviceType::TABLET], 'Venue 7 3741' => ['Dell', 'Venue 7', DeviceType::TABLET], 'Venue 7 HSPA+' => ['Dell', 'Venue 7', DeviceType::TABLET], 'Venue 7 WWAN' => ['Dell', 'Venue 7', DeviceType::TABLET], 'Venue 8 HSPA+' => ['Dell', 'Venue 8', DeviceType::TABLET], 'Venue 8 WiFi' => ['Dell', 'Venue 8', DeviceType::TABLET], 'Venue 8 3830' => ['Dell', 'Venue 8', DeviceType::TABLET], 'Venue 8 3840' => ['Dell', 'Venue 8', DeviceType::TABLET], 'Venue8 3840' => ['Dell', 'Venue 8', DeviceType::TABLET], 'Venue8 3840 LTE' => ['Dell', 'Venue 8', DeviceType::TABLET], 'Venue 8 7040' => ['Dell', 'Venue 8', DeviceType::TABLET], 'Venue 8 7840' => ['Dell', 'Venue 8', DeviceType::TABLET], 'Venue 8 7840 LTE' => ['Dell', 'Venue 8', DeviceType::TABLET], 'Venue 10 5050' => ['Dell', 'Venue 10', DeviceType::TABLET], 'Venue 10 7040' => ['Dell', 'Venue 10', DeviceType::TABLET]], 'XCD 28' => ['Dell', 'XCD28'], 'Dell XCD35' => ['Dell', 'XCD35'], 'XCD35' => ['Dell', 'XCD35'], 'DEM752HCF' => ['Denver', 'TAC-7018', DeviceType::TABLET], '(DENVER-)?TA[CD]-[0-9]{4,5}!!' => ['TAC-7028' => ['Denver', 'TAC-7028', DeviceType::TABLET], 'TAC-10011' => ['Denver', 'TAC-10011', DeviceType::TABLET], 'TAC-10031' => ['Denver', 'TAC-10031', DeviceType::TABLET], 'TAC-10031 MK2' => ['Denver', 'TAC-10031', DeviceType::TABLET], 'TAC-70031' => ['Denver', 'TAC-70031', DeviceType::TABLET], 'TAC-70041' => ['Denver', 'TAC-70041', DeviceType::TABLET], 'TAC-70051' => ['Denver', 'TAC-70051', DeviceType::TABLET], 'TAC-70061' => ['Denver', 'TAC-70061', DeviceType::TABLET], 'TAC-70072' => ['Denver', 'TAC-70072', DeviceType::TABLET], 'TAC-70072kc' => ['Denver', 'TAC-70072', DeviceType::TABLET], 'TAD-70102G' => ['Denver', 'TAC-70102G', DeviceType::TABLET], 'TAC-70111' => ['Denver', 'TAC-70111', DeviceType::TABLET], 'TAC-70111 PO8195' => ['Denver', 'TAC-70111', DeviceType::TABLET], 'TAC-70111 PO8241' => ['Denver', 'TAC-70111', DeviceType::TABLET], 'TAC-70111 PO8242' => ['Denver', 'TAC-70111', DeviceType::TABLET], 'TAC-80011' => ['Denver', 'TAC-80011', DeviceType::TABLET], 'TAC-90011' => ['Denver', 'TAC-90011', DeviceType::TABLET], 'TAC-90012' => ['Denver', 'TAC-90012', DeviceType::TABLET], 'TAC-97032' => ['Denver', 'TAC-97032', DeviceType::TABLET], 'TAC-97052' => ['Denver', 'TAC-97052', DeviceType::TABLET], 'TAD-10021' => ['Denver', 'TAD-10021', DeviceType::TABLET], 'TAD-10023' => ['Denver', 'TAD-10023', DeviceType::TABLET], 'DENVER-TAD-10082' => ['Denver', 'TAD-10082', DeviceType::TABLET], 'TAD-70091' => ['Denver', 'TAD-70091', DeviceType::TABLET], 'TAD-70092' => ['Denver', 'TAD-70092', DeviceType::TABLET], 'TAD-70092 BLACK MK2 PO8341' => ['Denver', 'TAD-70092', DeviceType::TABLET], 'TAD-70111PO8275' => ['Denver', 'TAD-70111', DeviceType::TABLET], 'TAD-70112PO8197' => ['Denver', 'TAD-70112', DeviceType::TABLET], 'TAD-90021' => ['Denver', 'TAD-90021', DeviceType::TABLET], 'TAD-90022' => ['Denver', 'TAD-90022', DeviceType::TABLET], 'TAD-97052' => ['Denver', 'TAD-97052', DeviceType::TABLET], 'TAD-97052mk2' => ['Denver', 'TAD-97052', DeviceType::TABLET], 'TAD-97072G' => ['Denver', 'TAD-97072', DeviceType::TABLET], 'TAD-97082!' => ['Denver', 'TAD-97082', DeviceType::TABLET]], 'deovo V5' => ['deovo', 'V5'], 'DESAY!!' => ['DESAY TS808' => ['Desay', 'TS808'], 'DESAY TS908' => ['Desay', 'TS908'], 'DESAY TS928' => ['Desay', 'TS928'], 'DESAY TS1008' => ['Desay', 'TS1008'], 'DESAY TS1018' => ['Desay', 'TS1018'], 'DESAY TS1218' => ['Desay', 'TS1218']], 'Dialog!!' => ['Dialog i35' => ['Dialog', 'i35'], 'Dialog i43' => ['Dialog', 'i43'], 'Dialog i43(ICS)' => ['Dialog', 'i43'], 'Dialog K35' => ['Dialog', 'K35'], 'Dialog K45' => ['Dialog', 'K45'], 'Dialog K235' => ['Dialog', 'K235'], 'Dialog Q143L' => ['Dialog', 'Q143L'], 'Dialog Q178' => ['Dialog', 'Q178'], 'Dialog Q243' => ['Dialog', 'Q243']], 'DIT[0-9]{4,6}!!' => ['DIT1010' => ['Difrnce', 'DIT1010', DeviceType::TABLET], 'DIT7000' => ['Difrnce', 'DIT7000', DeviceType::TABLET], 'DIT7070' => ['Difrnce', 'DIT7070', DeviceType::TABLET], 'DIT8070' => ['Difrnce', 'DIT8070', DeviceType::TABLET], 'DIT9720' => ['Difrnce', 'DIT9720', DeviceType::TABLET], 'DIT101201' => ['Difrnce', 'DIT101201', DeviceType::TABLET], 'DIT102201' => ['Difrnce', 'DIT102201', DeviceType::TABLET], 'DIT102202' => ['Difrnce', 'DIT102202', DeviceType::TABLET], 'DIT701101' => ['Difrnce', 'DIT701101', DeviceType::TABLET], 'DIT702101' => ['Difrnce', 'DIT702101', DeviceType::TABLET], 'DIT902101' => ['Difrnce', 'DIT902101', DeviceType::TABLET], 'DIT902102' => ['Difrnce', 'DIT902102', DeviceType::TABLET], 'DIT902103' => ['Difrnce', 'DIT902103', DeviceType::TABLET]], 'DIGICEL DL800' => ['Digicel', 'DL800'], '(Digma )?iD[jmnsx][DQ]?[0-9]*!!' => ['Digma iDj7!' => ['Digma', 'iDj7', DeviceType::TABLET], 'iDj7n' => ['Digma', 'iDj7n', DeviceType::TABLET], 'Digma iDm7' => ['Digma', 'iDm7', DeviceType::TABLET], 'Digma iDn7' => ['Digma', 'iDn7', DeviceType::TABLET], 'ids7' => ['Digma', 'iDs7', DeviceType::TABLET], 'ids10' => ['Digma', 'iDs10', DeviceType::TABLET], 'DIGMA iDs10!' => ['Digma', 'iDs10', DeviceType::TABLET], 'iDx5' => ['Digma', 'iDx5'], 'iDx7' => ['Digma', 'iDx7', DeviceType::TABLET], 'iDx7 Type2 4' => ['Digma', 'iDx7', DeviceType::TABLET], 'iDx10!' => ['Digma', 'iDx10', DeviceType::TABLET], 'iDnD7' => ['Digma', 'iDnD7', DeviceType::TABLET], 'DIGMA IDSD' => ['Digma', 'iDsD', DeviceType::TABLET], 'DIGMA iDsD7!' => ['Digma', 'iDsD7', DeviceType::TABLET], 'DIGMA iDsD8!' => ['Digma', 'iDsD8', DeviceType::TABLET], 'DIGMA iDsD10!' => ['Digma', 'iDsD10', DeviceType::TABLET], 'iDxD4' => ['Digma', 'iDxD4'], 'IDXD8' => ['Digma', 'iDxD8', DeviceType::TABLET], 'iDxD8 3G' => ['Digma', 'iDxD8', DeviceType::TABLET], 'iDxD7 3G' => ['Digma', 'iDxD7', DeviceType::TABLET], 'IDXD10' => ['Digma', 'iDxD10', DeviceType::TABLET], 'iDxD10 3G' => ['Digma', 'iDxD10', DeviceType::TABLET], 'iDxQ5' => ['Digma', 'iDxQ5']], 'DISTAB9000R' => ['Disgo', 'Distab 9000R', DeviceType::TABLET], 'DishTV Smartvu A2020' => ['DishTV', 'SmartVU-mini', DeviceType::TELEVISION], 'DM0[0-9]{2,2}(K|SH)!!' => ['DM009SH' => ['Sharp', 'DM009SH', 'carrier' => 'Disney Mobile'], 'DM010SH' => ['Sharp', 'DM010SH', 'carrier' => 'Disney Mobile'], 'DM011SH' => ['Sharp', 'DM011SH', 'carrier' => 'Disney Mobile'], 'DM012SH' => ['Sharp', 'DM012SH', 'carrier' => 'Disney Mobile'], 'DM013SH' => ['Sharp', 'DM013SH', 'carrier' => 'Disney Mobile'], 'DM014SH' => ['Sharp', 'DM014SH', 'carrier' => 'Disney Mobile'], 'DM015K' => ['Kyocera', 'DM015K', 'carrier' => 'Disney Mobile'], 'DM016SH' => ['Sharp', 'DM016SH', 'carrier' => 'Disney Mobile']], 'DJC Touchtab3' => ['DJC', 'Touchtab3', DeviceType::TABLET], 'AirBook TTJ702' => ['DNS', 'Airbook TTJ702', DeviceType::TABLET], 'DNS Airbook TYT701' => ['DNS', 'Airbook TYT701', DeviceType::TABLET], '(DNS )?(Airtab )?(E|M|MA|MF|MW|P|PC|PF)[0-9]{2,4}!!' => ['DNS Airtab E73' => ['DNS', 'AirTab E73', DeviceType::TABLET], 'AirTab M81g' => ['DNS', 'AirTab M81g', DeviceType::TABLET], 'AirTab M81w' => ['DNS', 'AirTab M81w', DeviceType::TABLET], 'M83w' => ['DNS', 'AirTab M83w', DeviceType::TABLET], 'M84g' => ['DNS', 'AirTab M84g', DeviceType::TABLET], 'M100qw' => ['DNS', 'AirTab M100qw', DeviceType::TABLET], 'M101g' => ['DNS', 'AirTab M101g', DeviceType::TABLET], 'AirTab M104G' => ['DNS', 'AirTab M104g', DeviceType::TABLET], 'AirTab m971g' => ['DNS', 'AirTab M971g', DeviceType::TABLET], 'M971w' => ['DNS', 'AirTab M971w', DeviceType::TABLET], 'M972g' => ['DNS', 'AirTab M972g', DeviceType::TABLET], 'M972w' => ['DNS', 'AirTab M972w', DeviceType::TABLET], 'DNS AirTab M974w' => ['DNS', 'AirTab M974w', DeviceType::TABLET], 'AirTab M975w' => ['DNS', 'AirTab M975w', DeviceType::TABLET], 'DNS M975W' => ['DNS', 'AirTab M975W', DeviceType::TABLET], 'AirTab MA7001' => ['DNS', 'AirTab MA7001', DeviceType::TABLET], 'DNS AirTab MF1011' => ['DNS', 'AirTab MF1011', DeviceType::TABLET], 'AirTab MW7851' => ['DNS', 'AirTab MW7851', DeviceType::TABLET], 'AirTab P70qw' => ['DNS', 'AirTab P70qw', DeviceType::TABLET], 'AirTab P71g' => ['DNS', 'AirTab P71g', DeviceType::TABLET], 'DNS AirTab P71g' => ['DNS', 'AirTab P71g', DeviceType::TABLET], 'AirTab P83' => ['DNS', 'AirTab P83', DeviceType::TABLET], 'DNS AirTab P101w' => ['DNS', 'AirTab P101w', DeviceType::TABLET], 'AirTab P970w' => ['DNS', 'AirTab P970w', DeviceType::TABLET], 'AirTab PC9701' => ['DNS', 'AirTab PC9701', DeviceType::TABLET], 'DNS AirTab PF7001' => ['DNS', 'AirTab PF7001', DeviceType::TABLET]], 'DNS S!!' => ['DNS S3501' => ['DNS', 'S3501'], 'DNS s4003' => ['DNS', 'S4003'], 'DNS S4006' => ['DNS', 'S4006'], 'DNS S4008' => ['DNS', 'S4008'], 'DNS S4502' => ['DNS', 'S4502'], 'DNS S4502M' => ['DNS', 'S4502M'], 'DNS S4507' => ['DNS', 'S4507'], 'DNS S4508' => ['DNS', 'S4508'], 'DNS S4705' => ['DNS', 'S4705'], 'DNS S5005' => ['DNS', 'S5005'], 'DNS S5008' => ['DNS', 'S5008']], 'DNS4502M' => ['DNS', 'S4502M'], 'DPS Dream 7' => ['DPS', 'Dream 7', DeviceType::TABLET], 'DPS Dream 9' => ['DPS', 'Dream 9', DeviceType::TABLET], 'domod G20' => ['Domod', 'G20'], 'Collo DG100' => ['Doogee', 'Collo DG100'], 'Collo 2 DG120' => ['Doogee', 'Collo 2 DG120'], 'VOYAGER DG300' => ['Doogee', 'Voyager DG300'], 'VOYAGER2 DG310' => ['Doogee', 'Voyager 2 DG310'], 'Discovery DG500' => ['Doogee', 'Discovery DG500'], 'TURBO DG2014' => ['Doogee', 'Turbo DG2014'], 'DOOV!!' => ['DOOV C1' => ['DOOV', 'C1'], 'DOOV C7' => ['DOOV', 'C7'], 'DOOV D2' => ['DOOV', 'D2'], 'DOOV D3' => ['DOOV', 'D3'], 'DOOV D5' => ['DOOV', 'D5'], 'DOOV D7' => ['DOOV', 'D7'], 'DOOV D8' => ['DOOV', 'D8'], 'DOOV D9' => ['DOOV', 'D9'], 'DOOV D10' => ['DOOV', 'D10'], 'DOOV D30' => ['DOOV', 'D30'], 'DOOV-DOOV D300' => ['DOOV', 'D300'], 'DOOV D350' => ['DOOV', 'D350'], 'DOOV D360' => ['DOOV', 'D360'], 'DOOV D500' => ['DOOV', 'D500'], 'DOOV D708' => ['DOOV', 'D708'], 'DOOV D710' => ['DOOV', 'D710'], 'DOOV D720' => ['DOOV', 'D720'], 'DOOV D770' => ['DOOV', 'D770'], 'DOOV D800' => ['DOOV', 'D800'], 'DOOV D910T' => ['DOOV', 'D910T'], 'DOOV D920' => ['DOOV', 'D920'], 'DOOV L1' => ['DOOV', 'L1'], 'DOOV L1M' => ['DOOV', 'L1M'], 'DOOV L3' => ['DOOV', 'L3'], 'DOOV L5' => ['DOOV', 'L5'], 'DOOV L5Pro' => ['DOOV', 'L5 Pro'], 'DOOV S1' => ['DOOV', 'S1'], 'DOOV S2' => ['DOOV', 'S2'], 'DOOV S2y' => ['DOOV', 'S2y'], 'DOOV S3' => ['DOOV', 'S3'], 'DOOV S5' => ['DOOV', 'S5'], 'DOOV T20L' => ['DOOV', 'T20L'], 'DOOV T35' => ['DOOV', 'T35'], 'DOOV T60' => ['DOOV', 'T60'], 'DOOV T90' => ['DOOV', 'T90']], 'Doro Liberto!!' => ['Doro Liberto 810' => ['Doro', 'Liberto 810'], 'Doro Liberto 820' => ['Doro', 'Liberto 820'], 'Doro Liberto 820 Mini' => ['Doro', 'Liberto 820 Mini']], 'M975' => ['Double Power', 'M975', DeviceType::TABLET], 'TD-1010' => ['Double Power', 'TD-1010', DeviceType::TABLET], 'Tablet-P27' => ['DracoTek', 'P27 Tablet', DeviceType::TABLET], 'dyno 7.80' => ['Dyno', '7.80', DeviceType::TABLET], 'dyno 7.85' => ['Dyno', '7.85', DeviceType::TABLET], 'ACM3066-8' => ['MY|eebo', 'Color Tablet', DeviceType::TABLET], '(E-Boda|Eruption|Essential|Supreme|Storm|Revo)!!' => ['Eruption V200' => ['E-Boda', 'Eruption V200', DeviceType::TABLET], 'E-Boda Essential A150' => ['E-Boda', 'Essential A150', DeviceType::TABLET], 'Essential A330' => ['E-Boda', 'Essential A330', DeviceType::TABLET], 'E-Boda IMPRESSPE3D E1' => ['E-Boda', 'Impresspeed E1', DeviceType::TABLET], 'E-Boda IMPRESSPEED E 250DC' => ['E-Boda', 'Impresspeed E250', DeviceType::TABLET], 'E-Boda Impresspeed E300' => ['E-Boda', 'Impresspeed E300', DeviceType::TABLET], 'E-Boda Supreme X80 Dual Core' => ['E-Boda', 'Supreme X80', DeviceType::TABLET], 'E-Boda Supreme Dual Core X190' => ['E-Boda', 'Supreme X190', DeviceType::TABLET], 'SUPREME IPS Dual Core X200' => ['E-Boda', 'Supreme X200', DeviceType::TABLET], 'E-Boda Supreme X400 Quad Core' => ['E-Boda', 'Supreme X400', DeviceType::TABLET], 'E-Boda Supreme XL200IPS' => ['E-Boda', 'Supreme XL200', DeviceType::TABLET], 'E-Boda Supreme XL400QC' => ['E-Boda', 'Supreme XL400', DeviceType::TABLET], 'E-Boda Rainbow V47' => ['E-Boda', 'Rainbow V47'], 'Revo R80' => ['E-Boda', 'Revo R80'], 'E-Boda Storm V50' => ['E-Boda', 'Storm V50'], 'Storm V100' => ['E-Boda', 'Storm V100'], 'Storm X450' => ['E-Boda', 'Storm X450']], 'Etel!!' => ['Etel i3' => ['E-tel', 'Curiosity i3'], 'Etel i4' => ['E-tel', 'Curiosity i4'], 'Etel i6' => ['E-tel', 'Curiosity i6'], 'Etel i8' => ['E-tel', 'Curiosity i8']], 'EasyPhone EP5' => ['Easypix', 'EasyPhone EP5'], 'EasyPad 971' => ['Easypix', 'EasyPad 971', DeviceType::TABLET], 'EBEN!!' => ['EBEN A3' => ['EBEN', 'A3', DeviceType::TABLET], 'EBEN S1' => ['EBEN', 'S1', DeviceType::TABLET], 'EBEN T6' => ['EBEN', 'T6', DeviceType::TABLET], 'EBEN T7' => ['EBEN', 'T7', DeviceType::TABLET], 'EBEN T8' => ['EBEN', 'T8', DeviceType::TABLET]], 'EBEST!!' => ['EBEST A35' => ['EBEST', 'A35'], 'EBEST F5' => ['EBEST', 'F5'], 'EBEST N4' => ['EBEST', 'N4'], 'EBEST T5' => ['EBEST', 'T5'], 'EBEST T7' => ['EBEST', 'T7'], 'EBEST U1' => ['EBEST', 'U1'], 'EBEST V5' => ['EBEST', 'V5'], 'EBEST V6' => ['EBEST', 'V6'], 'EBEST V7' => ['EBEST', 'V7'], 'EBEST V8' => ['EBEST', 'V8'], 'EBEST W16A' => ['EBEST', 'W16A'], 'EBEST W18' => ['EBEST', 'W18'], 'EBEST W66' => ['EBEST', 'W66'], 'EBEST W66A' => ['EBEST', 'W66A'], 'EBEST W70' => ['EBEST', 'W70'], 'EBEST Z5' => ['EBEST', 'Z5'], 'EBEST Z7' => ['EBEST', 'Z7']], 'TA10CA3' => ['ECS', 'TA10CA3', DeviceType::TABLET], 'TM105' => ['ECS', 'TM105', DeviceType::TABLET], 'TM105A' => ['ECS', 'TM105A', DeviceType::TABLET], 'TR10CS1' => ['ECS', 'TR10CS1', DeviceType::TABLET], 'Elephone!!' => ['Elephone G2' => ['Elephone', 'G2'], 'Elephone G4' => ['Elephone', 'G4'], 'Elephone G5' => ['Elephone', 'G5'], 'Elephone G6' => ['Elephone', 'G6'], 'Elephone G7' => ['Elephone', 'G7'], 'Elephone G9' => ['Elephone', 'G9'], 'Elephone-P10C' => ['Elephone', 'P10C'], 'Elephone-P2000' => ['Elephone', 'P2000'], 'Elephone P2000' => ['Elephone', 'P2000'], 'Elephone-P2000C' => ['Elephone', 'P2000C'], 'Elephone P3000!' => ['Elephone', 'P3000'], 'Elephone P5000!' => ['Elephone', 'P5000'], 'Elephone P6000!' => ['Elephone', 'P6000'], 'Elephone P3000!' => ['Elephone', 'P3000']], 'D709' => ['Empire Electronix', 'Tablet D709', DeviceType::TABLET], 'C8660' => ['Enspire', 'C8660'], 'edgejr' => ['EnTourage', 'Pocket eDGe', DeviceType::TABLET], 'l97D' => ['EPad', 'l97D', DeviceType::TABLET], 'A1001T' => ['Elijah', 'A1001T', DeviceType::TABLET], 'ELIYA S1' => ['Eliya', 'S1'], 'epade!!' => ['epade A3' => ['epade', 'A3'], 'epade A7' => ['epade', 'A7'], 'epade A45' => ['epade', 'A45'], 'epade A300' => ['epade', 'A300'], 'epade A360S' => ['epade', 'A360S'], 'epade A718' => ['epade', 'A718'], 'epade N01' => ['epade', 'N01'], 'epade Q3' => ['epade', 'Q3'], 'epade S300' => ['epade', 'S300'], 'EPADE S3' => ['epade', 'S3'], 'epade S5' => ['epade', 'S5'], 'epade S7' => ['epade', 'S7'], 'epade V05' => ['epade', 'V05']], 'equiso.smart.tv.pro' => ['Equiso', 'SmartTV', DeviceType::TELEVISION], 'eSTAR!!' => ['eSTAR BEAUTY HD Quad core' => ['eSTAR', 'Beauty HD', DeviceType::TABLET], 'eSTAR CRYSTAL' => ['eSTAR', 'Crystal', DeviceType::TABLET], 'eSTAR Easy' => ['eSTAR', 'Easy', DeviceType::TABLET], 'eSTAR GO!' => ['eSTAR', 'Go!', DeviceType::TABLET], 'eSTAR GRAND' => ['eSTAR', 'Grand', DeviceType::TABLET], 'eSTAR GRAND HD' => ['eSTAR', 'Grand HD', DeviceType::TABLET], 'eSTAR GRAND HD Quad 3G' => ['eSTAR', 'Grand HD 3G', DeviceType::TABLET], 'eSTAR GRAND HD Intel Quad core 3G' => ['eSTAR', 'Grand HD 3G', DeviceType::TABLET], 'eSTAR Gemini' => ['eSTAR', 'Gemini', DeviceType::TABLET], 'eSTAR MINI' => ['eSTAR', 'Mini', DeviceType::TABLET], 'eSTAR MINI 3G' => ['eSTAR', 'Mini 3G', DeviceType::TABLET], 'eSTAR Zoom Quad' => ['eSTAR', 'Zoom', DeviceType::TABLET], 'eSTAR ZOOM HD Duo' => ['eSTAR', 'Zoom HD', DeviceType::TABLET], 'eSTAR Zoom HD Quad' => ['eSTAR', 'Zoom HD', DeviceType::TABLET]], 'MID1018' => ['eSTAR', 'MID1018', DeviceType::TABLET], 'MID1028' => ['eSTAR', 'MID1028', DeviceType::TABLET], 'M4301' => ['Eston', 'MID M4301', 'media'], 'EVERPAD SC-710' => ['Everest', 'Everpad SC-710', DeviceType::TABLET], 'Ever!!' => ['EverClassic' => ['Evertek', 'EverClassic'], 'EverFancy D40' => ['Evertek', 'EverFancy D40'], 'EverGlory' => ['Evertek', 'EverGlory'], 'EverMagic' => ['Evertek', 'EverMagic'], 'EverMellow D45' => ['Evertek', 'EverMellow D45'], 'EverMellow D50' => ['Evertek', 'EverMellow D50'], 'EverMiracle' => ['Evertek', 'EverMiracle'], 'EverMiracle mini' => ['Evertek', 'EverMiracle Mini'], 'EverMiracle Nano' => ['Evertek', 'EverMiracle Nano'], 'EverShine' => ['Evertek', 'EverShine'], 'EverTrendy' => ['Evertek', 'EverTrendy']], 'E[78]0[0-9]{2,2}H[DG]!!' => ['E7020HD' => ['Evertek', 'Everpad E7020HD', DeviceType::TABLET], 'E7050HD' => ['Evertek', 'Everpad E7050HD', DeviceType::TABLET], 'E8050HG' => ['Evertek', 'Everpad E8050HG', DeviceType::TABLET], 'E8051HD' => ['Evertek', 'Everpad E8051HD', DeviceType::TABLET]], 'P10AN' => ['Exper', 'Easypad P10AN', DeviceType::TABLET], '(Explay|X-tremer|ActiveD|Informer|Surfer)!!' => ['Explay A320' => ['Explay', 'A320'], 'Explay Advance' => ['Explay', 'Advance'], 'Explay Dream' => ['Explay', 'Dream'], 'Explay Indigo' => ['Explay', 'Indigo'], 'Explay Infinity' => ['Explay', 'Infinity'], 'Explay A350' => ['Explay', 'Star'], 'Explay Star' => ['Explay', 'Star'], 'Explay Vega' => ['Explay', 'Vega'], 'X-tremer' => ['Explay', 'X-tremer'], 'Explay X-tremer' => ['Explay', 'X-tremer'], 'ActiveD 7.4 3G' => ['Explay', 'ActiveD 7.4 3G', DeviceType::TABLET], 'Informer 701' => ['Explay', 'Informer 701', DeviceType::TABLET], 'Informer-702' => ['Explay', 'Informer 702', DeviceType::TABLET], 'Informer 703' => ['Explay', 'Informer 703', DeviceType::TABLET], 'Informer 704' => ['Explay', 'Informer 704', DeviceType::TABLET], 'Informer 705' => ['Explay', 'Informer 705', DeviceType::TABLET], 'Explay Informer 705' => ['Explay', 'Informer 705', DeviceType::TABLET], 'Informer-801' => ['Explay', 'Informer 801', DeviceType::TABLET], 'Explay Informer 801' => ['Explay', 'Informer 801', DeviceType::TABLET], 'Explay Informer 804' => ['Explay', 'Informer 804', DeviceType::TABLET], 'informer 901' => ['Explay', 'Informer 901', DeviceType::TABLET], 'informer 920' => ['Explay', 'Informer 920', DeviceType::TABLET], 'informer 921' => ['Explay', 'Informer 921', DeviceType::TABLET], 'Explay Surfer 7.02' => ['Explay', 'Surfer 7.02', DeviceType::TABLET], 'Surfer7.03' => ['Explay', 'Surfer 7.03', DeviceType::TABLET], 'Surfer 7.04' => ['Explay', 'Surfer 7.04', DeviceType::TABLET], 'Surfer 7.31 3G' => ['Explay', 'Surfer 7.31 3G', DeviceType::TABLET], 'Surfer 7.32 3G' => ['Explay', 'Surfer 7.32 3G', DeviceType::TABLET], 'Surfer 7.34' => ['Explay', 'Surfer 7.34', DeviceType::TABLET], 'Surfer 8 02' => ['Explay', 'Surfer 8.02', DeviceType::TABLET], 'Surfer 8.02' => ['Explay', 'Surfer 8.02', DeviceType::TABLET], 'Surfer 8.31 3G' => ['Explay', 'Surfer 8.31 3G', DeviceType::TABLET], 'Surfer 10.11' => ['Explay', 'Surfer 10.11', DeviceType::TABLET]], 'Smart!!' => ['Smart402' => ['Fareastone', 'Smart 402'], 'Smart 403' => ['Fareastone', 'Smart 403'], 'Smart501' => ['Fareastone', 'Smart 501'], 'Smart 502' => ['Fareastone', 'Smart 502'], 'Smart503' => ['Fareastone', 'Smart 503'], 'Smart 505' => ['Fareastone', 'Smart 505'], 'Smart 701' => ['Fareastone', 'Smart 701', DeviceType::TABLET]], 'FDT!!' => ['FDT C838' => ['FDT', 'C838'], 'FDT E5' => ['FDT', 'E5'], 'FDT E6' => ['FDT', 'E6'], 'FDT E829' => ['FDT', 'E829'], 'FDT E969' => ['FDT', 'E969'], 'FDT G18' => ['FDT', 'G18'], 'FDT G505' => ['FDT', 'G505']], 'GT-[HN][0-9]{4,4}!!' => ['GT-H9001' => ['Feiteng', 'GT-H9001'], 'GT-H9500' => ['Feiteng', 'GT-H9500'], 'GT-N9300' => ['Feiteng', 'GT-N9300']], '9300' => ['Feiteng', 'GT-N9300'], 'iOCEAN!!' => ['iOCEAN X7' => ['FHD', 'iOCEAN X7'], 'iOCEAN X7 HD' => ['FHD', 'iOCEAN X7 HD'], 'iOCEAN X7S' => ['FHD', 'iOCEAN X7S'], 'iOCEAN X7T' => ['FHD', 'iOCEAN X7T'], 'iOCEAN X8' => ['FHD', 'iOCEAN X8']], 'FIH-!!' => ['FIH-F0X' => ['FIH', 'F0X'], 'FIH-FBO' => ['FIH', 'FBO'], 'FIH-FD1' => ['FIH', 'FD1'], 'FIH-VKY' => ['FIH', 'VKY']], 'Vibo-A688' => ['FIH', 'Vibo A688'], 'XT[0-9]{3,3}!!' => ['XT712' => ['Flipkart', 'Digiflip Pro XT712', DeviceType::TABLET], 'XT801' => ['Flipkart', 'Digiflip Pro XT801', DeviceType::TABLET], 'XT811' => ['Flipkart', 'Digiflip Pro XT811', DeviceType::TABLET]], 'Fly F[0-9]{2,3}!!' => ['Fly F40' => ['Fly', 'F40'], 'FLY F45s' => ['Fly', 'F45s'], 'FLY F50s' => ['Fly', 'F50s'], 'Fly F350' => ['Fly', 'F350']], 'F50Q' => ['Fly', 'F50Q'], 'FS403' => ['Fly', 'FS403 Cumulus 1'], 'Fly Phoenix 2' => ['Fly', 'IQ4410i Phoenix 2'], 'Fly Ego Art 2' => ['Fly', 'IQ455 Ego Art 2'], '(Fly )?IQ ?[0-9]{3,4}!!' => ['(Fly )?IQ4413!' => ['Fly', 'IQ4413 Evo Chic 3'], '(Fly )?IQ4417!' => ['Fly', 'IQ4417 Quad Era Energy 3'], '(Fly )?IQ4516!' => ['Fly', 'IQ4516 Tornado Slim'], '(Fly )?IQ230!' => ['Fly', 'IQ230 Compact'], '(Fly )?IQ235!' => ['Fly', 'IQ235 Uno'], '(Fly )?IQ236!' => ['Fly', 'IQ236 Victory'], '(Fly )?IQ237!' => ['Fly', 'IQ237 Dynamic'], '(Fly )?IQ238!' => ['Fly', 'IQ238 Jazz'], '(Fly )?IQ240!' => ['Fly', 'IQ240 Whizz'], '(Fly )?IQ245!' => ['Fly', 'IQ245 Wizard'], '(Fly )?IQ245 Plus!' => ['Fly', 'IQ245 Wizard Plus'], '(Fly )?IQ246!' => ['Fly', 'IQ246 Power'], '(Fly )?IQ250!' => ['Fly', 'IQ250 Swift'], '(Fly )?IQ255!' => ['Fly', 'IQ255 Pride'], '(Fly )?IQ256!' => ['Fly', 'IQ256 Vogue'], '(Fly )?IQ260!' => ['Fly', 'IQ260 BlackBird'], '(Fly )?IQ270!' => ['Fly', 'IQ270 Firebird'], '(Fly )?IQ275!' => ['Fly', 'IQ275 Marathon'], '(Fly )?IQ280!' => ['Fly', 'IQ280 Tech'], '(Fly )?IQ285!' => ['Fly', 'IQ285 Turbo'], '(Fly )?IQ320!' => ['Fly', 'IQ320', DeviceType::TABLET], '(Fly )?IQ430!' => ['Fly', 'IQ430 Evoke'], 'IQ 430' => ['Fly', 'IQ430 Evoke'], '(Fly )?IQ431!' => ['Fly', 'IQ431 Glory'], '(Fly )?IQ432!' => ['Fly', 'IQ432 Era Nano 1'], '(Fly )?IQ434!' => ['Fly', 'IQ434 Era Nano 5'], '(Fly )?IQ436!' => ['Fly', 'IQ434 Era Nano 9'], '(Fly )?IQ440!' => ['Fly', 'IQ440 Energie'], '(Fly )?IQ441!' => ['Fly', 'IQ441 Radiance'], '(Fly )?IQ442!' => ['Fly', 'IQ442 Miracle'], '(Fly )?IQ443!' => ['Fly', 'IQ443 Trend'], '(Fly )?IQ444!' => ['Fly', 'IQ444 Diamond'], '(Fly )?IQ445!' => ['Fly', 'IQ445 Genius'], '(Fly )?IQ446!' => ['Fly', 'IQ446 Magic'], 'IQ 446' => ['Fly', 'IQ446 Magic'], '(Fly )?IQ447!' => ['Fly', 'IQ447 Era Life 1'], '(Fly )?IQ449!' => ['Fly', 'IQ449 Pronto'], '(Fly )?IQ450!' => ['Fly', 'IQ450 Horizon'], '(Fly )?IQ451!' => ['Fly', 'IQ451 Vista'], 'IQ 451' => ['Fly', 'IQ451 Vista'], '(Fly )?IQ452!' => ['Fly', 'IQ452 Ego Vision 1'], '(Fly )?IQ453!' => ['Fly', 'IQ453 Luminor'], '(Fly )?IQ454!' => ['Fly', 'IQ454 Evo Tech 1'], '(Fly )?IQ455!' => ['Fly', 'IQ455 Ego Art 2'], 'IQ456' => ['Fly', 'IQ456 Era Life 2'], '(Fly )?IQ458!' => ['Fly', 'IQ458 Evo Tech 2'], '(Fly )?IQ459!' => ['Fly', 'IQ459 Evo Chic 2']], 'Flylife!!' => ['Flylife Connect 7 3G' => ['Fly', 'Flylife Connect 7 3G', DeviceType::TABLET], 'Flylife Connect 7 3G 2' => ['Fly', 'Flylife Connect 7 3G 2', DeviceType::TABLET], 'Flylife Connect 7.85 3G 2' => ['Fly', 'Flylife Connect 7.85 3G 2', DeviceType::TABLET], 'Flylife Connect 7.85 3G Slim' => ['Fly', 'Flylife Connect 7.85 3G Slim', DeviceType::TABLET], 'Flylife Connect 10.1 3G' => ['Fly', 'Flylife Connect 10.1 3G', DeviceType::TABLET], 'Flylife Web 7' => ['Fly', 'Flylife Web 7', DeviceType::TABLET], 'Flylife Web 7.85 Slim' => ['Fly', 'Flylife Web 7.85 Slim', DeviceType::TABLET]], 'Fly Flylife Web 7.85 Slim' => ['Fly', 'Flylife Web 7.85 Slim', DeviceType::TABLET], 'F600' => ['Flying', 'F600'], 'BC1003' => ['Flytouch', 'BC1003', DeviceType::TABLET], '(tablet )?fnac!!' => ['fnac 3.5' => ['Fnac', 'Smartphone 3.5'], 'fnac 4' => ['Fnac', 'Smartphone 4'], 'fnac 4.5' => ['Fnac', 'Smartphone 4.5'], 'fnac 5' => ['Fnac', 'Smartphone 5'], 'fnac 5 HD' => ['Fnac', 'Smartphone 5 HD'], 'fnac 5.7' => ['Fnac', 'Smartphone 5.7'], 'tablet Fnac 7' => ['Fnac', 'Tablet 7', DeviceType::TABLET], 'tablet Fnac 8' => ['Fnac', 'Tablet 8', DeviceType::TABLET], 'fnac 8 3G v2' => ['Fnac', 'Tablet 8 3G v2', DeviceType::TABLET], 'tablet Fnac 10' => ['Fnac', 'Tablet 10', DeviceType::TABLET], 'tablet Fnac 10 3G' => ['Fnac', 'Tablet 10 3G', DeviceType::TABLET], 'fnac 10 v2' => ['Fnac', 'Tablet 10 v2', DeviceType::TABLET], 'fnac 3.0 8' => ['Fnac', 'Tablet 3.0 8', DeviceType::TABLET], 'fnac 3.0 10 Plus' => ['Fnac', 'Tablet 3.0 10', DeviceType::TABLET]], 'ifive!!' => ['ifive 2' => ['FNF', 'iFive 2', DeviceType::TABLET], 'ifive2S' => ['FNF', 'iFive 2S', DeviceType::TABLET], 'ifive3' => ['FNF', 'iFive 3', DeviceType::TABLET], 'ifive MX' => ['FNF', 'iFive MX', DeviceType::TABLET], 'ifive X' => ['FNF', 'iFive X', DeviceType::TABLET], 'ifiveX2' => ['FNF', 'iFive X2', DeviceType::TABLET], 'ifive X2' => ['FNF', 'iFive X2', DeviceType::TABLET], 'ifiveX3' => ['FNF', 'iFive X3', DeviceType::TABLET], 'ifive MINI 2' => ['FNF', 'iFive Mini 2', DeviceType::TABLET], 'IfiveMini3' => ['FNF', 'iFive Mini 3', DeviceType::TABLET], 'ifive mini 3GS' => ['FNF', 'iFive Mini 3GS', DeviceType::TABLET], 'IfiveMini4' => ['FNF', 'iFive Mini 4', DeviceType::TABLET]], 'Freelander I20' => ['Freelander', 'i20'], 'PD10-DYD' => ['Freelander', 'PD10', DeviceType::TABLET], 'SXZ-PD!!' => ['SXZ-PD10' => ['Freelander', 'PD10', DeviceType::TABLET], 'SXZ-PDX0-01' => ['Freelander', 'PD20', DeviceType::TABLET], 'SXZ-PDX0-03' => ['Freelander', 'PD90', DeviceType::TABLET], 'SXZ-PDX-03' => ['Freelander', 'PD90', DeviceType::TABLET]], 'NABI!!' => ['NABI-A' => ['Fuhu', 'nabi Kids tablet', DeviceType::TABLET], 'NABIJR-NV5A' => ['Fuhu', 'nabi Jr.', DeviceType::TABLET], 'NABIJR-NV5B' => ['Fuhu', 'nabi Jr.', DeviceType::TABLET], 'NABI2-NV3D' => ['Fuhu', 'nabi 2', DeviceType::TABLET], 'NABI2-NV7A' => ['Fuhu', 'nabi 2', DeviceType::TABLET], 'NABI2-NV7A-D' => ['Fuhu', 'nabi 2', DeviceType::TABLET], 'NABI2-NV7A-IE' => ['Fuhu', 'nabi 2', DeviceType::TABLET], 'NABI2-NV7A-UK' => ['Fuhu', 'nabi 2', DeviceType::TABLET], 'NABI2-NV7A-3D' => ['Fuhu', 'nabi 2', DeviceType::TABLET], 'NABIXD-NV10A' => ['Fuhu', 'nabi XD', DeviceType::TABLET], 'NABIXD-NV10B' => ['Fuhu', 'nabi XD', DeviceType::TABLET], 'NABIXD-NV10C' => ['Fuhu', 'nabi XD', DeviceType::TABLET]], '[0-9]0[0-9]F!!' => ['101F' => ['Fujitsu', 'ARROWS A 101F', 'carrier' => 'Softbank'], '201F' => ['Fujitsu', 'ARROWS A 201F', 'carrier' => 'Softbank'], '202F' => ['Fujitsu', 'ARROWS A 202F', 'carrier' => 'Softbank'], '301F' => ['Fujitsu', 'ARROWS A 301F', 'carrier' => 'Softbank']], 'ISW?[0-9]{2,2}F!!' => ['ISW11F' => ['Fujitsu', 'ARROWS Z ISW11F', 'carrier' => 'au'], 'ISW13F' => ['Fujitsu', 'ARROWS Z ISW13F', 'carrier' => 'au'], 'IS12F' => ['Fujitsu', 'ARROWS ES IS12F', 'carrier' => 'au']], 'F-[0-9]{2,2}[A-Z]!!' => ['F-01D' => ['Fujitsu', 'ARROWS Tab LTE F-01D', DeviceType::TABLET, 'carrier' => 'DoCoMo'], 'F-01F' => ['Fujitsu', 'ARROWS NX F-01F', 'carrier' => 'DoCoMo'], 'F-01H' => ['Fujitsu', 'arrows Fit F-01H', 'carrier' => 'DoCoMo'], 'F-02E' => ['Fujitsu', 'ARROWS X F-02E', 'carrier' => 'DoCoMo'], 'F-02F' => ['Fujitsu', 'ARROWS Tab F-02F', DeviceType::TABLET, 'carrier' => 'DoCoMo'], 'F-02G' => ['Fujitsu', 'ARROWS NX F-02G', 'carrier' => 'DoCoMo'], 'F-02H' => ['Fujitsu', 'arrows NX F-02H', 'carrier' => 'DoCoMo'], 'F-03D' => ['Fujitsu', 'ARROWS Kiss F-03D', 'carrier' => 'DoCoMo'], 'F-03E' => ['Fujitsu', 'ARROWS Kiss with JILL STUART F-03E', 'carrier' => 'DoCoMo'], 'F-03F' => ['Fujitsu', 'F-03F', 'carrier' => 'Disney Mobile'], 'F-03G' => ['Fujitsu', 'ARROWS Tab F-03G', DeviceType::TABLET, 'carrier' => 'DoCoMo'], 'F-04E' => ['Fujitsu', 'ARROWS V F-04E', 'carrier' => 'DoCoMo'], 'F-04F' => ['Fujitsu', 'Business Smartphone F-04F', 'carrier' => 'DoCoMo'], 'F-04G' => ['Fujitsu', 'ARROWS NX F-04G', 'carrier' => 'DoCoMo'], 'F-05D' => ['Fujitsu', 'ARROWS X LTE F-05D', 'carrier' => 'DoCoMo'], 'F-05E' => ['Fujitsu', 'ARROWS Tab F-05E', 'carrier' => 'DoCoMo'], 'F-05F' => ['Fujitsu', 'ARROWS NX F-05F', 'carrier' => 'DoCoMo'], 'F-05G' => ['Fujitsu', 'ARROWS F-05G', 'carrier' => 'DoCoMo'], 'F-06E' => ['Fujitsu', 'ARROWS NX F-06E', 'carrier' => 'DoCoMo'], 'F-06F' => ['Fujitsu', 'Easy Smartphone 3 F-06F', 'carrier' => 'DoCoMo'], 'F-07D' => ['Fujitsu', 'ARROWS μ F-07D', 'carrier' => 'DoCoMo'], 'F-07E' => ['Fujitsu', 'F-07E', 'carrier' => 'Disney Mobile'], 'F-08D' => ['Fujitsu', 'F-08D', 'carrier' => 'Disney Mobile'], 'F-08E' => ['Fujitsu', 'Easy Smartphone 2 F-08E', 'carrier' => 'DoCoMo'], 'F-09D' => ['Fujitsu', 'ANTEPRIMA F-09D', 'carrier' => 'DoCoMo'], 'F-09E' => ['Fujitsu', 'Easy Smartphone Premium F-09E', 'carrier' => 'DoCoMo'], 'F-10D' => ['Fujitsu', 'ARROWS X F-10D', 'carrier' => 'DoCoMo'], 'F-11D' => ['Fujitsu', 'ARROWS Me F-11D', 'carrier' => 'DoCoMo'], 'F-12C' => ['Fujitsu', 'GLOBE-TROTTER F-12C', 'carrier' => 'DoCoMo'], 'F-12D' => ['Fujitsu', 'Easy Smartphone F-12D', 'carrier' => 'DoCoMo']], 'f12[a-z]{3,3}!!' => ['f12arc' => ['Fujitsu', 'F12arc'], 'f12bob' => ['Fujitsu', 'F12bob']], 'FJ[LT][0-9]{2,2}!!' => ['FJL21' => ['Fujitsu', 'ARROWS ef FJL21', 'carrier' => 'au'], 'FJL22' => ['Fujitsu', 'ARROWS Z FJL22', 'carrier' => 'au'], 'FJT21' => ['Fujitsu', 'ARROWS Tab FJT21', DeviceType::TABLET, 'carrier' => 'au']], 'M532' => ['Fujitsu', 'Stylistic M532', DeviceType::TABLET], 'F&U ETB!!' => ['F&U ETB7506' => ['F&U', 'ETB7506', DeviceType::TABLET], 'F&U ETB7818' => ['F&U', 'ETB7818', DeviceType::TABLET], 'F&U ETB9543' => ['F&U', 'ETB9543', DeviceType::TABLET], 'F&U ETB9544' => ['F&U', 'ETB9544', DeviceType::TABLET], 'F&U ETB1063' => ['F&U', 'ETB1063', DeviceType::TABLET], 'F&U ETB1065' => ['F&U', 'ETB1065', DeviceType::TABLET]], 'Garmin!!' => ['Garminfone' => ['Garmin-Asus', 'Garminfone'], 'Garmin-Asus A10' => ['Garmin-Asus', 'Nuvifone A10'], 'Garmin-Asus A50' => ['Garmin-Asus', 'Nuvifone A50']], 'TPA60W' => ['Gateway', 'TPA60W', DeviceType::TABLET], '(GP-|Geeksphone)!!' => ['GP-KEON' => ['Geeksphone', 'Keon'], 'GP-PEAK' => ['Geeksphone', 'Peak'], 'Geeksphone ZERO' => ['Geeksphone', 'ZERO']], 'Gemei!!' => ['Gemei G2' => ['Gemei', 'G2', DeviceType::TABLET], 'Gemei G3' => ['Gemei', 'G3', DeviceType::TABLET], 'gemei G6' => ['Gemei', 'G6', DeviceType::TABLET], 'Gemei G9' => ['Gemei', 'G9', DeviceType::TABLET], 'gemei G9T' => ['Gemei', 'G9T', DeviceType::TABLET]], 'GEM[0-9]{4,4}!!' => ['GEM7008' => ['Gemini', 'JoyTab GEM7008', DeviceType::TABLET], 'GEM7020' => ['Gemini', 'JoyTab GEM7020', DeviceType::TABLET], 'GEM7032G-rev2' => ['Gemini', 'JoyTab GEM7032', DeviceType::TABLET], 'GEM10313BK' => ['Gemini', 'JoyTab GEM10313', DeviceType::TABLET], 'GEM10313S' => ['Gemini', 'JoyTab GEM10313', DeviceType::TABLET]], 'GP-431' => ['Genesis', 'GP-431'], 'GT-[0-9]{4,4}!!' => ['GT-7200' => ['Genesis', 'Tab GT-7200', DeviceType::TABLET], 'GT-7204' => ['Genesis', 'Tab GT-7204', DeviceType::TABLET], 'GT-7204R' => ['Genesis', 'Tab GT-7204R', DeviceType::TABLET], 'GT-7240' => ['Genesis', 'Tab GT-7240', DeviceType::TABLET], 'GT-7240R' => ['Genesis', 'Tab GT-7240R', DeviceType::TABLET], 'GT-7245' => ['Genesis', 'Tab GT-7245', DeviceType::TABLET], 'GT-7326' => ['Genesis', 'Tab GT-7326', DeviceType::TABLET]], 'GP-720' => ['Genius', 'GP-720', DeviceType::TABLET], 'G9' => ['GFive', 'G9'], 'GFIVE!!' => ['GFIVE A5' => ['GFive', 'A5'], 'GFIVE A800' => ['GFive', 'A800'], 'GFIVE Aurora(A79)' => ['GFive', 'Aurora'], 'GFIVE A68' => ['GFive', 'Beam'], 'GFIVE Blade (F500)' => ['GFive', 'Blade'], 'GFIVE Bravo' => ['GFive', 'Bravo'], 'GFIVE Bravo(G95)' => ['GFive', 'Bravo'], 'GFIVE A77' => ['GFive', 'Bravo'], 'GFIVE A57' => ['GFive', 'Fanse'], 'GFIVE Glory' => ['GFive', 'Glory'], 'GFIVE Glory(A86)' => ['GFive', 'Glory'], 'GFIVE A86' => ['GFive', 'Glory'], 'GFIVE Glory Bee(E670)' => ['GFive', 'Glory Bee'], 'GFIVE Prado' => ['GFive', 'Prado'], 'GFIVE President A97' => ['GFive', 'President'], 'GFIVE president(G6)' => ['GFive', 'President'], 'GFIVE President(G7)' => ['GFive', 'President'], 'GFIVE President(G9)' => ['GFive', 'President'], 'GFIVE G9' => ['GFive', 'President'], 'GFIVE.G9' => ['GFive', 'President'], 'GFIVE Spark(A1)' => ['GFive', 'Spark'], 'GFIVE GPad701' => ['GFive', 'GPad 701', DeviceType::TABLET]], 'GHIA!!' => ['GHIA 20218P' => ['Ghia', 'Any 20218P', DeviceType::TABLET], 'GHIA 27154P' => ['Ghia', 'Any 27154P', DeviceType::TABLET], 'GHIA V2.0 27158N' => ['Ghia', 'Any 27158N', DeviceType::TABLET], 'GHIA 27214P' => ['Ghia', 'Any 27214P', DeviceType::TABLET], 'GHIA 27258B' => ['Ghia', 'Any 27258B', DeviceType::TABLET], 'GHIA 27258N' => ['Ghia', 'Any 27258N', DeviceType::TABLET], 'GHIA V2.0 27258N' => ['Ghia', 'Any 27258N', DeviceType::TABLET], 'GHIA 29214P' => ['Ghia', 'Any 29214P', DeviceType::TABLET]], '(Gsmart|Gigabyte|Rio)!!' => ['GSmart Aku A1' => ['Gigabyte', 'GSmart Aku A1'], 'GSmart Alto A2' => ['Gigabyte', 'GSmart Alto A2'], 'GSmart Arty A3' => ['Gigabyte', 'GSmart Arty A3'], 'GSmart Akta A4' => ['Gigabyte', 'GSmart Akta A4'], 'GSmart Essence 4' => ['Gigabyte', 'GSmart Essence 4'], 'GSmart-G1305' => ['Gigabyte', 'GSmart G1305'], 'GSmart G1310' => ['Gigabyte', 'GSmart G1310'], 'GSmart G1315!' => ['Gigabyte', 'GSmart G1315'], 'GSmart G1317D' => ['Gigabyte', 'GSmart G1317'], 'GSmart G1342' => ['Gigabyte', 'GSmart G1342'], 'GSmart G1345' => ['Gigabyte', 'GSmart G1345'], 'GSmart G1355' => ['Gigabyte', 'GSmart G1355'], 'GSmart G1362' => ['Gigabyte', 'GSmart G1362'], 'GSmart GS202!' => ['Gigabyte', 'GSmart GS202'], 'GSmart Guru G1' => ['Gigabyte', 'GSmart Guru G1'], 'GSmart Maya M1' => ['Gigabyte', 'GSmart Maya M1'], 'GSmart Maya M1v2' => ['Gigabyte', 'GSmart Maya M1 v2'], 'GSmart Maya M1 v2' => ['Gigabyte', 'GSmart Maya M1 v2'], 'GSmart Mika M2' => ['Gigabyte', 'GSmart Mika M2'], 'GSmart Mika M3' => ['Gigabyte', 'GSmart Mika M3'], 'GSmart Rio R1' => ['Gigabyte', 'GSmart Rio R1'], 'GIGABYTE GSmart Rio R1' => ['Gigabyte', 'GSmart Rio R1'], 'Gigabyte RIO R1' => ['Gigabyte', 'GSmart Rio R1'], 'Rio R1' => ['Gigabyte', 'GSmart Rio R1'], 'GSmart Roma R2' => ['Gigabyte', 'GSmart Roma R2'], 'GSmart Rey R3' => ['Gigabyte', 'GSmart Rey R3'], 'GSmart Saga S3' => ['Gigabyte', 'GSmart Saga S3'], 'GSmart Sierra S1' => ['Gigabyte', 'GSmart Sierra S1'], 'GSmart T4' => ['Gigabyte', 'GSmart T4'], 'Gigabyte TB100' => ['Gigabyte', 'TB100', DeviceType::TABLET]], 'Gigaset!!' => ['Gigaset QV830' => ['Gigaset', 'QV830', DeviceType::TABLET], 'Gigaset QV1030' => ['Gigaset', 'QV1030', DeviceType::TABLET]], '(GIO-)?(GiONEE[- ])?A9$!' => ['Gionee', 'A9'], '(GIO-)?(GiONEE[- ])?C500!' => ['Gionee', 'C500'], '(GIO-)?(GiONEE[- ])?C600!' => ['Gionee', 'C600'], '(GIO-)?(GiONEE[- ])?C610!' => ['Gionee', 'C610'], '(GIO-)?(GiONEE[- ])?C620!' => ['Gionee', 'C620'], '(GIO-)?(GiONEE[- ])?C700!' => ['Gionee', 'C700'], '(GIO-)?(GiONEE[- ])?C800!' => ['Gionee', 'C800'], '(GIO-)?(GiONEE[- ])?Dream D1!' => ['Gionee', 'Dream D1'], '(GIO-)?(GiONEE[- ])?E3T!' => ['Gionee', 'E3T'], '(GIO-)?(GiONEE[- ])?E3$!' => ['Gionee', 'E3'], '(GIO-)?(GiONEE[- ])?E5$!' => ['Gionee', 'E5'], '(GIO-)?(GiONEE[- ])?E6mini!' => ['Gionee', 'E6 mini'], '(GIO-)?(GiONEE[- ])?E6$!' => ['Gionee', 'E6'], '(GIO-)?(GiONEE[- ])?E6T$!' => ['Gionee', 'E6T'], '(GIO-)?(GiONEE[- ])?E7$!' => ['Gionee', 'E7'], '(GIO-)?(GiONEE[- ])?F103!' => ['Gionee', 'F103'], '(GIO-)?(GiONEE[- ])?F301!' => ['Gionee', 'F301'], '(GIO-)?(GiONEE[- ])?GN100T!' => ['Gionee', 'GN100T'], '(GIO-)?(GiONEE[- ])?GN100!' => ['Gionee', 'GN100'], '(GIO-)?(GiONEE[- ])?GN105!' => ['Gionee', 'GN105'], '(GIO-)?(GiONEE[- ])?GN106!' => ['Gionee', 'GN106'], '(GIO-)?(GiONEE[- ])?GN107!' => ['Gionee', 'GN107'], '(GIO-)?(GiONEE[- ])?GN108!' => ['Gionee', 'GN108'], '(GIO-)?(GiONEE[- ])?GN109!' => ['Gionee', 'GN109'], '(GIO-)?(GiONEE[- ])?GN135!' => ['Gionee', 'GN135'], '(GIO-)?(GiONEE[- ])?GN136!' => ['Gionee', 'GN136'], '(GIO-)?(GiONEE[- ])?GN137!' => ['Gionee', 'GN137'], '(GIO-)?(GiONEE[- ])?GN139!' => ['Gionee', 'GN139'], '(GIO-)?(GiONEE[- ])?GN150!' => ['Gionee', 'GN150'], '(GIO-)?(GiONEE[- ])?GN151!' => ['Gionee', 'GN151'], '(GIO-)?(GiONEE[- ])?GN160T!' => ['Gionee', 'GN160T'], '(GIO-)?(GiONEE[- ])?GN160!' => ['Gionee', 'GN160'], '(GIO-)?(GiONEE[- ])?GN168T!' => ['Gionee', 'GN168T'], '(GIO-)?(GiONEE[- ])?GN170!' => ['Gionee', 'GN170'], '(GIO-)?(GiONEE[- ])?GN180!' => ['Gionee', 'GN180'], '(GIO-)?(GiONEE[- ])?GN181!' => ['Gionee', 'GN181'], '(GIO-)?(GiONEE[- ])?GN200!' => ['Gionee', 'GN200'], '(GIO-)?(GiONEE[- ])?GN205!' => ['Gionee', 'GN205'], '(GIO-)?(GiONEE[- ])?GN210!' => ['Gionee', 'GN210'], '(GIO-)?(GiONEE[- ])?GN305!' => ['Gionee', 'GN305'], '(GIO-)?(GiONEE[- ])?GN320!' => ['Gionee', 'GN320'], '(GIO-)?(GiONEE[- ])?GN360!' => ['Gionee', 'GN360'], '(GIO-)?(GiONEE[- ])?GN380!' => ['Gionee', 'GN380'], '(GIO-)?(GiONEE[- ])?GN600!' => ['Gionee', 'GN600'], '(GIO-)?(GiONEE[- ])?GN700T!' => ['Gionee', 'GN700T'], '(GIO-)?(GiONEE[- ])?GN700W!' => ['Gionee', 'GN700W'], '(GIO-)?(GiONEE[- ])?GN705T!' => ['Gionee', 'GN705T'], '(GIO-)?(GiONEE[- ])?GN705W!' => ['Gionee', 'GN705W'], '(GIO-)?(GiONEE[- ])?GN706L!' => ['Gionee', 'GN706L'], '(GIO-)?(GiONEE[- ])?GN708T!' => ['Gionee', 'GN708T'], 'GN 708T' => ['Gionee', 'GN708T'], '(GIO-)?(GiONEE[- ])?GN708W!' => ['Gionee', 'GN708W'], 'GPLUS GN708W' => ['Gionee', 'GN708W'], '(GIO-)?(GiONEE[- ])?GN787!' => ['Gionee', 'GN787'], '(GIO-)?(GiONEE[- ])?GN800!' => ['Gionee', 'GN800'], '(GIO-)?(GiONEE[- ])?GN810!' => ['Gionee', 'GN810'], '(GIO-)?(GiONEE[- ])?GN818T!' => ['Gionee', 'GN818T'], '(GIO-)?(GiONEE[- ])?GN858!' => ['Gionee', 'GN858'], '(GIO-)?(GiONEE[- ])?GN868!' => ['Gionee', 'GN868'], '(GIO-)?(GiONEE[- ])?GN878!' => ['Gionee', 'GN878'], '(GIO-)?(GiONEE[- ])?GN9000!' => ['Gionee', 'GN9000'], '(GIO-)?(GiONEE[- ])?GN9001!' => ['Gionee', 'GN9001'], '(GIO-)?(GiONEE[- ])?GN9002!' => ['Gionee', 'GN9002'], '(GIO-)?(GiONEE[- ])?GN9004!' => ['Gionee', 'GN9004'], '(GIO-)?(GiONEE[- ])?GN9005!' => ['Gionee', 'GN9005'], 'Gionee M1' => ['Gionee', 'M1'], 'Gionee M2' => ['Gionee', 'M2'], 'Gionee M3S' => ['Gionee', 'M3S'], 'Gionee M5' => ['Gionee', 'M5'], 'GPLUS N809' => ['Gionee', 'N809'], '(GIO-)?(GiONEE[- ])?S101!' => ['Gionee', 'S101'], 'GiONEE TD500' => ['Gionee', 'TD500'], '(GIO-)?(GiONEE[- ])?V182!' => ['Gionee', 'V182'], '(GIO-)?(GiONEE[- ])?V185!' => ['Gionee', 'V185'], '(GIO-)?(GiONEE[- ])?V188!' => ['Gionee', 'V188'], '(GIO-)?(GiONEE[- ])?W800!' => ['Gionee', 'W800'], '(GIO-)?(GiONEE[- ])?X817!' => ['Gionee', 'X817'], '(GIO-)?(GiONEE[- ])?Ctrl V1!' => ['Gionee', 'CTRL V1'], '(GIO-)?(GiONEE[- ])?Ctrl V2!' => ['Gionee', 'CTRL V2'], '(GIO-)?(GiONEE[- ])?Ctrl V3!' => ['Gionee', 'CTRL V3'], '(GIO-)?(GiONEE[- ])?Ctrl V4!' => ['Gionee', 'CTRL V4'], '(GIO-)?(GiONEE[- ])?Ctrl V5!' => ['Gionee', 'CTRL V5'], '(GIO-)?(GiONEE[- ])?Pioneer P1!' => ['Gionee', 'Pioneer P1'], '(GIO-)?(GiONEE[- ])?Pioneer P2!' => ['Gionee', 'Pioneer P2'], '(GIO-)?(GiONEE[- ])?Pioneer P3!' => ['Gionee', 'Pioneer P3'], '(GIO-)?(GiONEE[- ])?Pioneer P4!' => ['Gionee', 'Pioneer P4'], 'Gionee P3' => ['Gionee', 'Pioneer P3'], 'Gionee P4' => ['Gionee', 'Pioneer P4'], '(GIO-)?(GiONEE[- ])?Gpad G1!' => ['Gionee', 'GPAD G1', DeviceType::TABLET], '(GIO-)?(GiONEE[- ])?Gpad G2!' => ['Gionee', 'GPAD G2', DeviceType::TABLET], '(GIO-)?(GiONEE[- ])?Gpad G3!' => ['Gionee', 'GPAD G3', DeviceType::TABLET], 'GL-900' => ['GlobusGPS', 'GL-900', DeviceType::GPS], 'GLX!!' => ['GLX Jet' => ['GLX', 'Jet', DeviceType::TABLET], 'GLX Luster a' => ['GLX', 'Luster', DeviceType::TABLET], 'GLX SpiderI' => ['GLX', 'Spider', DeviceType::TABLET]], 'GOCL!!' => ['GOCLEVER ANDROID BOX 500' => ['Goclever', 'Android Box 500'], 'GOCLEVER' => ['Goclever', 'TAB', DeviceType::TABLET], 'GOCLEVER TAB A73' => ['Goclever', 'TAB A73', DeviceType::TABLET], 'GOCLEVER TAB A93' => ['Goclever', 'TAB A93', DeviceType::TABLET], 'GOCLEVER TAB A93.2' => ['Goclever', 'TAB A93', DeviceType::TABLET], 'GOCLEVER TAB A101' => ['Goclever', 'TAB A101', DeviceType::TABLET], 'GOCLEVER TAB A103' => ['Goclever', 'TAB A103', DeviceType::TABLET], 'GOCLEVER A103' => ['Goclever', 'TAB A103', DeviceType::TABLET], 'GOCLEVER TAB A104!' => ['Goclever', 'TAB A104', DeviceType::TABLET], 'GOCLEVER TAB A971' => ['Goclever', 'TAB A971', DeviceType::TABLET], 'GOCLEVER TAB A972BK' => ['Goclever', 'TAB A972', DeviceType::TABLET], 'GOCLEVER TAB I71' => ['Goclever', 'TAB I71', DeviceType::TABLET], 'GOCLEVER TAB M703G' => ['Goclever', 'TAB M703G', DeviceType::TABLET], 'GOCLEVER TAB M713G' => ['Goclever', 'TAB M713G', DeviceType::TABLET], 'GOCLEVER TAB M723G' => ['Goclever', 'TAB M723G', DeviceType::TABLET], 'GOCLEVER TAB M813G' => ['Goclever', 'TAB M813G', DeviceType::TABLET], 'GOCLEVER TAB R70' => ['Goclever', 'TAB R70', DeviceType::TABLET], 'GOCLEVER TAB R76.1' => ['Goclever', 'TAB R76', DeviceType::TABLET], 'GOCLEVER TAB R104' => ['Goclever', 'TAB R104', DeviceType::TABLET], 'GOCLEVER TAB R106' => ['Goclever', 'TAB R106', DeviceType::TABLET], 'GOCLEVER TAB T75' => ['Goclever', 'TAB T75', DeviceType::TABLET], 'GOCLEVER TAB T76' => ['Goclever', 'TAB T76', DeviceType::TABLET], 'GOCLEVER TAB 9300' => ['Goclever', 'TAB 9300', DeviceType::TABLET], 'GOCLM7000KD' => ['Goclever', 'Terra 70', DeviceType::TABLET], 'GOCLEVER HYBRID' => ['Goclever', 'Hybrid', DeviceType::TABLET], 'GOCLEVER NETBOOK I102' => ['Goclever', 'Netbook I102'], 'GOCLEVER NETBOOK R103' => ['Goclever', 'Netbook R103']], 'GO Live!!' => ['GO Live S1' => ['GoLive', 'S1'], 'GO Live Dual Core' => ['GoLive', 'Dual Core']], 'GOOPHONE!!' => ['GOOPHONE i5C' => ['Goophone', 'i5C'], 'GOOPHONE i5S' => ['Goophone', 'i5S'], 'Goophone i9' => ['Goophone', 'i9'], 'GOOPHONE M3+' => ['Goophone', 'M3+'], 'GooPhone S5 Pro' => ['Goophone', 'S5 Pro'], 'GOOPHONE X1' => ['Goophone', 'X1'], 'GOOPHONE X7' => ['Goophone', 'X7']], 'CHONG!!' => ['GHONG T618' => ['Guohong', 'T618'], 'GHONGV10' => ['Guohong', 'V10'], 'GHONGV12' => ['Guohong', 'V12'], 'GHONG W100' => ['Guohong', 'W100']], 'M758A' => ['Gpad', 'M758A', DeviceType::TABLET], 'GO !!' => ['GO M1' => ['GreenOrange', 'M1'], 'GO M2' => ['GreenOrange', 'M2'], 'GO M2S' => ['GreenOrange', 'M2S'], 'GO M3' => ['GreenOrange', 'M3'], 'GO N1' => ['GreenOrange', 'N1'], 'GO N1-Y' => ['GreenOrange', 'N1-Y'], 'GO NX' => ['GreenOrange', 'NX'], 'GO S2' => ['GreenOrange', 'S2']], 'GR-TB!!' => ['GR-TB7' => ['Grundig', 'Style Tab GR-TB7', DeviceType::TABLET], 'GR-TB10S' => ['Grundig', 'Style Tab GR-TB10S', DeviceType::TABLET]], 'GVON 898' => ['Gvon', 'Aero 898'], '(Haier[- ])?H[ETW]- ?[A-Z][0-9]!!' => ['(Haier[- ])?HE-E80!' => ['Haier', 'E80'], '(Haier[- ])?HE-E617!' => ['Haier', 'E617'], '(Haier[- ])?HE-E700!' => ['Haier', 'E700'], '(Haier[- ])?HE-E760!' => ['Haier', 'E760'], '(Haier[- ])?HT-I600!' => ['Haier', 'I600'], '(Haier[- ])?HT-I617!' => ['Haier', 'I617'], '(Haier[- ])?HT-I619!' => ['Haier', 'I619'], '(Haier[- ])?HT-I710!' => ['Haier', 'I710'], '(Haier[- ])?HT-I736!' => ['Haier', 'I736'], '(Haier[- ])?HT-I756!' => ['Haier', 'I756'], '(Haier[- ])?HT-I816!' => ['Haier', 'I816'], '(Haier[- ])?HT-I860!' => ['Haier', 'I860'], '(Haier[- ])?HT-I928!' => ['Haier', 'I928'], '(Haier[- ])?HW-N66W!' => ['Haier', 'N66W'], '(Haier[- ])?HW-N86W!' => ['Haier', 'N86W'], '(Haier[- ])?(HW-)?N88W!' => ['Haier', 'N88W'], '(Haier[- ])?HW-N620E!' => ['Haier', 'N620E'], '(Haier[- ])?HW-N800!' => ['Haier', 'N800'], '(Haier[- ])?(HW-)?W716!' => ['Haier', 'W716'], '(Haier[- ])?(HW-)?W718!' => ['Haier', 'W718'], '(Haier[- ])?HW-W820!' => ['Haier', 'W820'], '(Haier[- ])?HW-W850!' => ['Haier', 'W850'], '(Haier[- ])?HW-W860!' => ['Haier', 'W860'], '(Haier[- ])?HW-W910!' => ['Haier', 'W910']], 'Haier-SY0880' => ['Haier', 'SY0880'], 'Zio P2' => ['Haier', 'Zio P2'], 'PAD[0-9]{3,3}!!' => ['PAD511' => ['Haier', 'Pad 511', DeviceType::TABLET], 'PAD711' => ['Haier', 'Pad 711', DeviceType::TABLET], 'PAD722' => ['Haier', 'Pad 722', DeviceType::TABLET], 'PAD821' => ['Haier', 'Pad 821', DeviceType::TABLET], 'PAD822' => ['Haier', 'Pad 822', DeviceType::TABLET]], 'I9220' => ['Haipai', 'I9220'], 'GT-i9377' => ['Haipai', 'I9377'], 'X710d' => ['Haipai', 'X710D'], 'X720D' => ['Haipai', 'X720D'], 'SN[0-9]!!' => ['SN10T1' => ['HANNspree', 'HANNSpad SN10T1', DeviceType::TABLET], 'SN10T2' => ['HANNspree', 'HANNSpad SN10T2', DeviceType::TABLET], 'SN14T71' => ['HANNspree', 'HANNSpad SN14T71', DeviceType::TABLET], 'SN97T41W' => ['HANNspree', 'HANNSpad SN97T41W', DeviceType::TABLET], 'SN1AT71W(B)' => ['HANNspree', 'HANNSpad SN1AT71WB', DeviceType::TABLET]], 'HannsComb' => ['HANNspree', 'HANNSpad', DeviceType::TABLET], 'Hannspadd' => ['HANNspree', 'HANNSpad', DeviceType::TABLET], '(EVAS )?EVERCOSS[- ]A!!' => ['EVERCOSS A5' => ['Harga', 'EVERCOSS A5'], 'EVERCOSS A5A*' => ['Harga', 'EVERCOSS A5A'], 'EVERCOSS A5C' => ['Harga', 'EVERCOSS A5C'], 'EVERCOSS A5K' => ['Harga', 'EVERCOSS A5K'], 'EVERCOSS A5P*' => ['Harga', 'EVERCOSS A5P'], 'EVERCOSS A5V' => ['Harga', 'EVERCOSS A5V'], 'EVERCOSS A5Z' => ['Harga', 'EVERCOSS A5Z'], 'EVERCOSS A7A' => ['Harga', 'EVERCOSS A7A'], 'EVERCOSS A7A*' => ['Harga', 'EVERCOSS A7A'], 'EVERCOSS A7B' => ['Harga', 'EVERCOSS A7B'], 'EVERCOSS A7F' => ['Harga', 'EVERCOSS A7F'], 'EVERCOSS A7K' => ['Harga', 'EVERCOSS A7K'], 'EVERCOSS A7L' => ['Harga', 'EVERCOSS A7L'], 'EVERCOSS A7N' => ['Harga', 'EVERCOSS A7N'], 'EVERCOSS A7R' => ['Harga', 'EVERCOSS A7R'], 'EVERCOSS A7S' => ['Harga', 'EVERCOSS A7S'], 'EVAS evercoss-a7s' => ['Harga', 'EVERCOSS A7S'], 'EVERCOSS A7T' => ['Harga', 'EVERCOSS A7T'], 'EVERCOSS A7T*' => ['Harga', 'EVERCOSS A7T'], 'EVERCOSS A7V' => ['Harga', 'EVERCOSS A7V'], 'EVERCOSS A7V+' => ['Harga', 'EVERCOSS A7V'], 'EVERCOSS A7Z' => ['Harga', 'EVERCOSS A7Z'], 'EVERCOSS A28A' => ['Harga', 'EVERCOSS A28A'], 'EVERCOSS A28M' => ['Harga', 'EVERCOSS A28M'], 'EVERCOSS A65' => ['Harga', 'EVERCOSS A65'], 'Evercoss A66A' => ['Harga', 'EVERCOSS A66A'], 'EVERCOSS A66S' => ['Harga', 'EVERCOSS A66S'], 'EVERCOSS A66V' => ['Harga', 'EVERCOSS A66V'], 'EVERCOSS A74A' => ['Harga', 'EVERCOSS A74A'], 'EVERCOSS A74C' => ['Harga', 'EVERCOSS A74C'], 'EVERCOSS A74D' => ['Harga', 'EVERCOSS A74D'], 'EVERCOSS-A75L' => ['Harga', 'EVERCOSS A75L'], 'EVERCOSS A75W' => ['Harga', 'EVERCOSS A75W'], 'EVERCOSS A80A' => ['Harga', 'EVERCOSS A80A'], 'EVERCOSS A200' => ['Harga', 'EVERCOSS A200'], 'EVERCOSS AT1A' => ['Harga', 'EVERCOSS AT1A', DeviceType::TABLET], 'EVERCOSS AT1A*' => ['Harga', 'EVERCOSS AT1A', DeviceType::TABLET], 'EVERCOSS AT1G' => ['Harga', 'EVERCOSS AT1G', DeviceType::TABLET], 'EVERCOSS AT8D' => ['Harga', 'EVERCOSS AT8D', DeviceType::TABLET]], 'AT1A*' => ['Harga', 'EVERCOSS AT1A', DeviceType::TABLET], 'AT1C' => ['Harga', 'EVERCOSS AT1C', DeviceType::TABLET], 'AT1C*' => ['Harga', 'EVERCOSS AT1C', DeviceType::TABLET], 'AT1D' => ['Harga', 'EVERCOSS AT1D', DeviceType::TABLET], 'AT1G*' => ['Harga', 'EVERCOSS AT1G', DeviceType::TABLET], 'MITO!!' => ['MITO A10' => ['Harga', 'MITO A10'], 'MITO A15' => ['Harga', 'MITO A15'], 'MITO A18' => ['Harga', 'MITO A18'], 'MITO A30' => ['Harga', 'MITO A30'], 'MITO A38' => ['Harga', 'MITO A38'], 'MITO A50' => ['Harga', 'MITO A50'], 'MITO A55' => ['Harga', 'MITO A55'], 'MITO A60' => ['Harga', 'MITO A60'], 'MITO A68' => ['Harga', 'MITO A68'], 'MITO 68' => ['Harga', 'MITO A68'], 'MITO A72' => ['Harga', 'MITO A72'], 'MITO A75' => ['Harga', 'MITO A75'], 'MITO A77' => ['Harga', 'MITO A77'], 'MITO A78' => ['Harga', 'MITO A78'], 'MITO A80' => ['Harga', 'MITO A80'], 'MITO A95' => ['Harga', 'MITO A95'], 'MITO A99' => ['Harga', 'MITO A99'], 'MITO A100' => ['Harga', 'MITO A100'], 'MITO A120' => ['Harga', 'MITO A120'], 'MITO A180' => ['Harga', 'MITO A180'], 'MITO A200' => ['Harga', 'MITO A200'], 'MITO A210' => ['Harga', 'MITO A210'], 'MITO A220' => ['Harga', 'MITO A220'], 'MITO A222' => ['Harga', 'MITO A222'], 'MITO A250' => ['Harga', 'MITO A250'], 'MITO A260' => ['Harga', 'MITO A260'], 'MITO A300' => ['Harga', 'MITO A300'], 'MITO A310' => ['Harga', 'MITO A310'], 'MITO A313' => ['Harga', 'MITO A313'], 'MITO A322' => ['Harga', 'MITO A322'], 'MITO A330' => ['Harga', 'MITO A330'], 'MITO A350' => ['Harga', 'MITO A350'], 'MITO A355' => ['Harga', 'MITO A355'], 'MITO A360' => ['Harga', 'MITO A360'], 'MITO A363' => ['Harga', 'MITO A363'], 'MITO A390' => ['Harga', 'MITO A390'], 'MITO A660' => ['Harga', 'MITO A660'], 'MITO A700' => ['Harga', 'MITO A700'], 'MITO A750' => ['Harga', 'MITO A750'], 'MITO A780' => ['Harga', 'MITO A780'], 'MITOA800' => ['Harga', 'MITO A800'], 'MITO A810' => ['Harga', 'MITO A810'], 'MITO A850' => ['Harga', 'MITO A850'], 'MITO T10' => ['Harga', 'MITO T10', DeviceType::TABLET], 'MITO T77' => ['Harga', 'MITO T77', DeviceType::TABLET], 'MITO T80' => ['Harga', 'MITO T80', DeviceType::TABLET], 'MITO T81' => ['Harga', 'MITO T81', DeviceType::TABLET], 'MITO T100' => ['Harga', 'MITO T100', DeviceType::TABLET], 'MITO t300' => ['Harga', 'MITO T300', DeviceType::TABLET], 'MITO T330' => ['Harga', 'MITO T330', DeviceType::TABLET], 'MITO t510' => ['Harga', 'MITO T510', DeviceType::TABLET], 'MITO t550' => ['Harga', 'MITO T550', DeviceType::TABLET], 'MITO T660' => ['Harga', 'MITO T660', DeviceType::TABLET], 'MITO T777' => ['Harga', 'MITO T777', DeviceType::TABLET], 'MITO T888' => ['Harga', 'MITO T888', DeviceType::TABLET], 'MITO T979' => ['Harga', 'MITO T979', DeviceType::TABLET]], 'Snexian!!' => ['Snexian Mi320' => ['Harga', 'Nexian Chronos Mi320'], 'Snexian Mi430' => ['Harga', 'Nexian Xtreme2 Mi430']], 'Mi438S' => ['Harga', 'Nexian Journey One Mi438'], 'X1' => ['HCL', 'ME X1', DeviceType::TABLET], 'Y2' => ['HCL', 'ME Y2', DeviceType::TABLET], 'H701' => ['Hedy', 'H701'], 'HEDY!!' => ['HEDY H701' => ['Hedy', 'H701'], 'HEDY H712' => ['Hedy', 'H712'], 'HEDY H770' => ['Hedy', 'H770'], 'HEDY S801' => ['Hedy', 'S801'], 'HEDY S803' => ['Hedy', 'S803'], 'HEDY T700' => ['Hedy', 'T700']], '9300+' => ['Hero', '9300+'], 'H2000+' => ['Hero', 'H2000+'], 'H7500+' => ['Hero', 'H7500+'], 'HERO H7500+' => ['Hero', 'H7500+'], 'H9500' => ['Hero', 'H9500'], 'MID Ser(ai|ia)ls!' => ['Herotab', 'C8', DeviceType::TABLET], '(Highscreen|Alpha|Cosmo|Explosion|Zera)!!' => ['Alpha Ice' => ['Highscreen', 'Alpha Ice'], 'Alpha GT' => ['Highscreen', 'Alpha GT'], 'Alpha GTR' => ['Highscreen', 'Alpha GTR'], 'HIGHSCREEN GTR' => ['Highscreen', 'Alpha GTR'], 'Alpha GTX' => ['Highscreen', 'Alpha GTX'], 'Alpha R' => ['Highscreen', 'Alpha R'], 'Alpha Rage' => ['Highscreen', 'Alpha Rage'], 'HighScreen Boost' => ['Highscreen', 'Boost'], 'Cosmo' => ['Highscreen', 'Cosmo', DeviceType::TABLET], 'COSMO DUO' => ['Highscreen', 'Cosmo Duo', DeviceType::TABLET], 'Explosion' => ['Highscreen', 'Explosion'], 'HIGHSCREEN Jet Duo' => ['Highscreen', 'Jet Duo', DeviceType::TABLET], 'Highscreen Spark' => ['Highscreen', 'Spark'], 'ZeraF' => ['Highscreen', 'Zera F'], 'Zera F' => ['Highscreen', 'Zera F'], 'Zera f rev.S' => ['Highscreen', 'Zera F'], 'Zera S' => ['Highscreen', 'Zera S'], 'Zera S Rev.S' => ['Highscreen', 'Zera S'], 'Zera-S-Power' => ['Highscreen', 'Zera S Power']], 'HLV-T!!' => ['HLV-T701' => ['Hi-Level', 'HLV-T701', DeviceType::TABLET], 'HLV-T702' => ['Hi-Level', 'HLV-T702', DeviceType::TABLET], 'HLV-T704' => ['Hi-Level', 'HLV-T704', DeviceType::TABLET], 'HLV-T707' => ['Hi-Level', 'HLV-T707', DeviceType::TABLET], 'HLV-T1001W' => ['Hi-Level', 'HLV-T1001W', DeviceType::TABLET], 'HLV-T1002W' => ['Hi-Level', 'HLV-T1002W', DeviceType::TABLET], 'HLV-T9701' => ['Hi-Level', 'HLV-T9701', DeviceType::TABLET], 'HLV-TN75' => ['Hi-Level', 'HLV-TN75', DeviceType::TABLET]], 'HIKe!!' => ['HIKe 716' => ['HIKe', 'Q1'], 'HIKe 818' => ['HIKe', 'Pandora 2'], 'HIKe 828' => ['HIKe', 'X1'], 'HIKe 828A' => ['HIKe', 'X1'], 'HIKe 848' => ['HIKe', 'X2'], 'HIKe 868' => ['HIKe', 'Z1']], 'HILIVE H7' => ['Hilive', 'H7'], 'HS-[0-9]{1,2}DTB!!' => ['HS-7DTB4!' => ['Hipstreet', 'Titan 7"', DeviceType::TABLET], 'HS-7DTB25!' => ['Hipstreet', 'Titan 2 7"', DeviceType::TABLET], 'HS-7DTB26!' => ['Hipstreet', 'Titan+ 7"', DeviceType::TABLET], 'HS-7DTB27!' => ['Hipstreet', 'Titan+ 7"', DeviceType::TABLET], 'HS-7DTB29!' => ['Hipstreet', 'Astro 7"', DeviceType::TABLET], 'HS-7DTB39!' => ['Hipstreet', 'Titan 2 7"', DeviceType::TABLET], 'HS-7DTB5!' => ['Hipstreet', 'Nova 7"', DeviceType::TABLET], 'HS-7DTB6!' => ['Hipstreet', 'Aurora 7"', DeviceType::TABLET], 'HS-785TB2!' => ['Hipstreet', 'Hyperion 7"', DeviceType::TABLET], 'HS-785TB3!' => ['Hipstreet', 'i8', DeviceType::TABLET], 'HS-8DTB!' => ['Hipstreet', 'Flash 8"', DeviceType::TABLET], 'HS-9DTB4!' => ['Hipstreet', 'Flare 9"', DeviceType::TABLET], 'HS-9DTB7!' => ['Hipstreet', 'Flare 2 9"', DeviceType::TABLET], 'HS-9DTB37!' => ['Hipstreet', 'Flare 3 9"', DeviceType::TABLET], 'HS-10DTB2!' => ['Hipstreet', 'Equinox 10"', DeviceType::TABLET], 'HS-10DTB4!' => ['Hipstreet', 'Equinox 4 10"', DeviceType::TABLET], 'HS-10DTB5!' => ['Hipstreet', 'Spectrum 10"', DeviceType::TABLET], 'HS-10DTB8!' => ['Hipstreet', 'Equinox 3 10"', DeviceType::TABLET], 'HS-10DTB12!' => ['Hipstreet', 'Phoenix 10"', DeviceType::TABLET]], 'HS-[EFHITUX][0-9]!!' => ['HS-X1' => ['Hisense', 'X1'], 'HS-X5T' => ['Hisense', 'X5T'], 'HS-X6C' => ['Hisense', 'X6C'], 'HS-X8C' => ['Hisense', 'X8C'], 'HS-X8T' => ['Hisense', 'X8T'], 'HS-U8' => ['Hisense', 'U8'], 'HS-U9' => ['Hisense', 'U9'], 'HS-U98' => ['Hisense', 'U98'], 'HS-U609' => ['Hisense', 'U609'], 'HS-U800' => ['Hisense', 'U800'], 'HS-U820' => ['Hisense', 'U820'], 'HS-U850' => ['Hisense', 'U850'], 'HS-U860' => ['Hisense', 'U860'], 'HS-U909' => ['Hisense', 'U909'], 'HS-U909B' => ['Hisense', 'U909B'], 'HS-U912' => ['Hisense', 'U912'], 'HS-U912C' => ['Hisense', 'U912C'], 'HS-U936' => ['Hisense', 'U936'], 'HS-U939' => ['Hisense', 'U939'], 'HS-U950' => ['Hisense', 'U950'], 'HS-U958' => ['Hisense', 'U958'], 'HS-U960Q' => ['Hisense', 'U960'], 'HS-U966' => ['Hisense', 'U966'], 'HS-U970' => ['Hisense', 'U970'], 'HS-U971' => ['Hisense', 'U971'], 'HS-U978' => ['Hisense', 'U978'], 'HS-U980' => ['Hisense', 'U980'], 'HS-U988' => ['Hisense', 'U988'], 'HS-T9' => ['Hisense', 'T9'], 'HS-T92' => ['Hisense', 'T92'], 'HS-T96' => ['Hisense', 'T96'], 'HS-T818' => ['Hisense', 'T818'], 'HS-T820' => ['Hisense', 'T820'], 'HS-T830' => ['Hisense', 'T830'], 'HS-T909' => ['Hisense', 'T909'], 'HS-T912' => ['Hisense', 'T912'], 'HS-T928' => ['Hisense', 'T928'], 'HS-T930' => ['Hisense', 'T930'], 'HS-T950' => ['Hisense', 'T950'], 'HS-T958' => ['Hisense', 'T958'], 'HS-T959' => ['Hisense', 'T959'], 'HS-T959S1' => ['Hisense', 'T959'], 'HS-T967' => ['Hisense', 'T967'], 'HS-T968' => ['Hisense', 'T968'], 'HS-T970' => ['Hisense', 'T970'], 'HS-T978' => ['Hisense', 'T978'], 'HS-I630T' => ['Hisense', 'I630T'], 'HS-H800T' => ['Hisense', 'H800T'], 'HS-F1' => ['Hisense', 'F1'], 'HS-F5180' => ['Hisense', 'F5180'], 'HS-E86' => ['Hisense', 'E86'], 'HS-E200T' => ['Hisense', 'E200T'], 'HS-E260T' => ['Hisense', 'E260T'], 'HS-E600M' => ['Hisense', 'E600M'], 'HS-E620M' => ['Hisense', 'E620M'], 'HS-E820' => ['Hisense', 'E820'], 'HS-E830' => ['Hisense', 'E830'], 'HS-E860' => ['Hisense', 'E860'], 'HS-E909' => ['Hisense', 'E909'], 'HS-E910' => ['Hisense', 'E910'], 'HS-E912!' => ['Hisense', 'E912'], 'HS-E913' => ['Hisense', 'E913'], 'HS-E917' => ['Hisense', 'E917'], 'HS-E920' => ['Hisense', 'E920'], 'HS-E926' => ['Hisense', 'E926'], 'HS-E930' => ['Hisense', 'E930'], 'HS-E936' => ['Hisense', 'E936'], 'HS-E956' => ['Hisense', 'E956'], 'HS-E956Q' => ['Hisense', 'E956'], 'HS-E968' => ['Hisense', 'E968']], 'HS-E[GT][0-9]{3,3}!!' => ['HS-EG870' => ['Hisense', 'EG870'], 'HS-EG900' => ['Hisense', 'EG900'], 'HS-EG901' => ['Hisense', 'EG901'], 'HS-EG902' => ['Hisense', 'EG902'], 'HS-EG906' => ['Hisense', 'EG906'], 'HS-EG909' => ['Hisense', 'EG909'], 'HS-EG916' => ['Hisense', 'EG916'], 'HS-EG929' => ['Hisense', 'EG929'], 'HS-EG936D' => ['Hisense', 'EG936'], 'HS-EG939' => ['Hisense', 'EG939'], 'HS-EG950' => ['Hisense', 'EG950'], 'HS-EG958' => ['Hisense', 'EG958'], 'HS-EG966' => ['Hisense', 'EG966'], 'HS-EG970' => ['Hisense', 'EG970'], 'HS-EG971' => ['Hisense', 'EG971'], 'HS-EG978' => ['Hisense', 'EG978'], 'HS-EG980' => ['Hisense', 'EG980'], 'HS-EG981' => ['Hisense', 'EG981'], 'HS-ET919' => ['Hisense', 'ET919']], '(HS-)?Hisense!!' => ['Hisense-U8' => ['Hisense', 'U8'], 'Hisense U980' => ['Hisense', 'U980'], 'Hisense T92' => ['Hisense', 'T92'], 'Hisense I639T' => ['Hisense', 'I639T'], 'Hisense I639M' => ['Hisense', 'I639M'], 'Hisense-E360M' => ['Hisense', 'E360M'], 'Hisense E602M' => ['Hisense', 'E602M'], 'Hisense HS-E910' => ['Hisense', 'E910'], 'Hisense EG909' => ['Hisense', 'EG909'], 'HS-Hisense F20T' => ['Hisense', 'F20T'], 'HS-Hisense I632T' => ['Hisense', 'I632T'], 'HS-Hisense I635T' => ['Hisense', 'I635T'], 'HS-Hisense I639T' => ['Hisense', 'I639T'], 'HS-Hisense E602T' => ['Hisense', 'E602T'], 'HS-Hisense E621T' => ['Hisense', 'E621T'], 'HS-Hisense E625T' => ['Hisense', 'E625T']], 'T92' => ['Hisense', 'T92'], 'E860' => ['Hisense', 'E860'], 'EG98' => ['Hisense', 'EG98'], 'EG680' => ['Hisense', 'EG680'], 'AD683G' => ['Hisense', 'EG909'], 'EG968B' => ['Hisense', 'EG968B'], 'E170BS' => ['Hisense', 'E170BS', DeviceType::TABLET], 'Hisense AD686G' => ['Hisense', 'AD686G'], 'E270BSA' => ['Hisense', 'Sero 7 Lite', DeviceType::TABLET], 'M470BSA' => ['Hisense', 'Sero 7 Pro', DeviceType::TABLET], 'M470BSE' => ['Hisense', 'Sero 7 Pro', DeviceType::TABLET], 'E2281' => ['Hisense', 'Sero 8', DeviceType::TABLET], 'xt880b' => ['Hisense', 'XT880', DeviceType::TELEVISION], 'GX1210V TV' => ['Hisense', 'GX1210', DeviceType::TELEVISION], '(Hisense )?LED[0-9]{2,2}(K|EC)!!' => ['LED39K600X3D' => ['Hisense', 'LED39K600X3D', DeviceType::TELEVISION], 'Hisense LED39K610X3D' => ['Hisense', 'LED39K610X3D', DeviceType::TELEVISION], 'LED42K360J1000' => ['Hisense', 'LED42K360J1000', DeviceType::TELEVISION], 'LED42K360X3D' => ['Hisense', 'LED42K360X3D', DeviceType::TELEVISION], 'LED42K600X3D' => ['Hisense', 'LED42K600X3D', DeviceType::TELEVISION], 'LED42K680X3DU' => ['Hisense', 'LED42K680X3DU', DeviceType::TELEVISION], 'LED46K660X3D' => ['Hisense', 'LED46K660X3D', DeviceType::TELEVISION], 'LED50K680X3DU' => ['Hisense', 'LED50K680X3DU', DeviceType::TELEVISION], 'LED50K680X3DU0001' => ['Hisense', 'LED50K680X3DU', DeviceType::TELEVISION], 'LED55EC510N' => ['Hisense', 'LED55EC510N', DeviceType::TELEVISION], 'LED55K610X3D' => ['Hisense', 'LED55K610X3D', DeviceType::TELEVISION], 'LED55K260X3D1011' => ['Hisense', 'LED55K260X3D', DeviceType::TELEVISION], 'LED55K370' => ['Hisense', 'LED55K370', DeviceType::TELEVISION]], 'Hisense Google TV TV' => ['Hisense', 'Pulse', DeviceType::TELEVISION, Flag::GOOGLETV], 'hisense gx1200v' => ['Hisense', 'Pulse', DeviceType::TELEVISION, Flag::GOOGLETV], '(Amaze|Hitech)!!' => ['Amaze HT-808' => ['Hi-Tech', 'Amaze HT-808'], 'AMAZE S200' => ['Hi-Tech', 'Amaze S200'], 'Hitech Amaze S200 3G' => ['Hi-Tech', 'Amaze S200'], 'Amaze S400' => ['Hi-Tech', 'Amaze S400'], 'Hitech S450' => ['Hi-Tech', 'Amaze S450'], 'Amaze S500' => ['Hi-Tech', 'Amaze S500']], 'HITO HT-3' => ['Hito', 'HT-3'], 'HKPHONE H8-3G' => ['HKPhone', 'H8 3G'], 'D7800AD' => ['Honeywell', 'D7800AD'], 'HOSIN!!' => ['HOSIN A608' => ['Hosin', 'A608'], 'HOSIN T70(OPEN)' => ['Hosin', 'T70'], 'HOSIN T70' => ['Hosin', 'T70'], 'HOSIN T80' => ['Hosin', 'T80'], 'HOSIN U2' => ['Hosin', 'U2'], 'HOSIN U3' => ['Hosin', 'U3'], 'Hosin U7' => ['Hosin', 'U7'], 'HOSIN V60' => ['Hosin', 'V60'], 'HOSIN V70' => ['Hosin', 'V70'], 'HOSIN V708T' => ['Hosin', 'V708T']], '(HP|Slate)!!' => ['HP 7' => ['HP', '7', DeviceType::TABLET], 'HP 7 Plus' => ['HP', '7 Plus', DeviceType::TABLET], 'HP 7 G2' => ['HP', '7 G2', DeviceType::TABLET], 'HP 8' => ['HP', '8', DeviceType::TABLET], 'HP 8 G2' => ['HP', '8 G2', DeviceType::TABLET], 'HP 10' => ['HP', '10', DeviceType::TABLET], 'HP 10 Tablet' => ['HP', '10', DeviceType::TABLET], 'HP 10 G2 Tablet' => ['HP', '10 G2', DeviceType::TABLET], 'HP 10 Plus' => ['HP', '10 Plus', DeviceType::TABLET], 'HP Slate 6 Voice Tab' => ['HP', 'Slate 6 Voice Tab', DeviceType::TABLET], 'HP Slate 6 VoiceTab Plus' => ['HP', 'Slate 6 Voice Tab Plus', DeviceType::TABLET], 'HP Slate 7' => ['HP', 'Slate 7', DeviceType::TABLET], 'HP Slate 7 Beats Special Edition' => ['HP', 'Slate 7', DeviceType::TABLET], 'HP Slate 7 Plus' => ['HP', 'Slate 7 Plus', DeviceType::TABLET], 'HP Slate 7 HD' => ['HP', 'Slate 7 HD', DeviceType::TABLET], 'HP Slate7 Extreme' => ['HP', 'Slate 7 Extreme', DeviceType::TABLET], 'HP Slate 7 Voice Tab' => ['HP', 'Slate 7 Voice Tab', DeviceType::TABLET], 'HP 7 VoiceTab' => ['HP', 'Slate 7 Voice Tab', DeviceType::TABLET], 'HP Slate 8 Plus' => ['HP', 'Slate 8 Plus', DeviceType::TABLET], 'HP Slate 8 Pro' => ['HP', 'Slate 8 Pro', DeviceType::TABLET], 'HP Pro Slate 8' => ['HP', 'Slate 8 Pro', DeviceType::TABLET], 'HP Slate 10 HD' => ['HP', 'Slate 10 HD', DeviceType::TABLET], 'Slate 10 HD' => ['HP', 'Slate 10 HD', DeviceType::TABLET], 'HP Slate 10 Plus' => ['HP', 'Slate 10 Plus', DeviceType::TABLET], 'HP Pro Slate 12' => ['HP', 'Slate 12 Pro', DeviceType::TABLET], 'HP Slate 17' => ['HP', 'Slate 17', DeviceType::TABLET], 'Slate 21' => ['HP', 'Slate 21', DeviceType::TABLET], 'Slate 21 Pro' => ['HP', 'Slate 21 Pro', DeviceType::TABLET], 'HP SlateBook 10 x2 PC' => ['HP', 'SlateBook 10 x2', DeviceType::TABLET], 'HP SlateBook 14 PC' => ['HP', 'SlateBook 14 HD', DeviceType::TABLET], 'HP Split 13 x2 PC' => ['HP', 'Split 13 x2', DeviceType::TABLET]], 'HP-TouchPad' => ['HP', 'TouchPad', DeviceType::TABLET], '(HP )?Touchpad!' => ['HP', 'TouchPad', DeviceType::TABLET], '(cm|aokp) tenderloin!' => ['HP', 'TouchPad', DeviceType::TABLET], 'HTC!!' => ['HTC (Amaze|Ruby)!' => ['HTC', 'Amaze 4G'], 'HTC (Aria|Liberty)!' => ['HTC', 'Aria'], 'HTC A63(66|80)!' => ['HTC', 'Aria'], 'HTC Bee' => ['HTC', 'Bee'], 'HTC ?ChaCha!' => ['HTC', 'ChaCha'], 'HTC A810e' => ['HTC', 'ChaCha'], 'HTC A9188!' => ['HTC', 'Cullinan'], 'HTC6435LRA' => ['HTC', 'Deluxe'], 'HTC Desire 200' => ['HTC', 'Desire 200'], 'HTC Desire 210 dual sim' => ['HTC', 'Desire 210'], 'HTC Desire 300' => ['HTC', 'Desire 300'], 'HTC 0P6A1' => ['HTC', 'Desire 300'], 'HTC 301e' => ['HTC', 'Desire 300'], 'HTC D310(n|w)!' => ['HTC', 'Desire 310'], 'HTC Desire 310' => ['HTC', 'Desire 310'], 'HTC Desire 310 dual sim' => ['HTC', 'Desire 310'], 'HTC 0PF11' => ['HTC', 'Desire 310'], 'HTC 0PF110' => ['HTC', 'Desire 310'], 'HTC 0PF120' => ['HTC', 'Desire 310'], 'HTC D316d' => ['HTC', 'Desire 316'], 'HTC Desire 320' => ['HTC', 'Desire 320'], 'htc v01' => ['HTC', 'Desire 320'], 'HTC Desire 326G dual sim' => ['HTC', 'Desire 326G'], 'HTC Desire 400 dual sim' => ['HTC', 'Desire 400'], 'HTC Desire 500' => ['HTC', 'Desire 500'], 'HTC Desire 500 dual sim' => ['HTC', 'Desire 500'], 'HTC 5060' => ['HTC', 'Desire 500'], 'HTC Desire 501' => ['HTC', 'Desire 501'], 'HTC Desire 501 dual sim' => ['HTC', 'Desire 501'], 'HTC 603h' => ['HTC', 'Desire 501'], 'HTC Desire 510' => ['HTC', 'Desire 510'], 'HTC 0PCV2' => ['HTC', 'Desire 510'], 'HTC 0PCV220' => ['HTC', 'Desire 510'], 'HTC Desire 512' => ['HTC', 'Desire 512'], 'HTC D516(d|t|w)!' => ['HTC', 'Desire 516'], 'HTC Desire 516 dual sim' => ['HTC', 'Desire 516'], 'HTC Desire 520' => ['HTC', 'Desire 520'], 'HTCD100LVW' => ['HTC', 'Desire 526'], 'HTC 0PM1100' => ['HTC', 'Desire 526G'], 'HTC Desire 526G' => ['HTC', 'Desire 526G'], 'HTC Desire 526G dual sim' => ['HTC', 'Desire 526G'], 'HTC D526(h)!' => ['HTC', 'Desire 526G+'], 'HTC Desire 526GPLUS dual sim' => ['HTC', 'Desire 526G+'], 'HTC 0PL41!' => ['HTC', 'Desire 526G+'], 'HTC 0PL42!' => ['HTC', 'Desire 526G+'], 'HTC Desire 600' => ['HTC', 'Desire 600'], 'HTC PO491' => ['HTC', 'Desire 600'], 'HTC Desire 600 dual sim' => ['HTC', 'Desire 600'], 'HTC Desire 600c dual sim' => ['HTC', 'Desire 600c'], 'HTC Desire 601' => ['HTC', 'Desire 601'], 'HTC Desire 601 dual sim' => ['HTC', 'Desire 601'], 'HTC ?0P4E!' => ['HTC', 'Desire 601'], 'HTC 606w' => ['HTC', 'Desire 606w'], 'HTC 608' => ['HTC', 'Desire 608'], 'HTC 608t' => ['HTC', 'Desire 608t'], 'HTC 609d' => ['HTC', 'Desire 609d'], 'HTC Desire 610' => ['HTC', 'Desire 610'], 'HTC D610' => ['HTC', 'Desire 610'], 'HTC D610t' => ['HTC', 'Desire 610'], 'HTC D610x' => ['HTC', 'Desire 610'], 'HTC 0P9O110' => ['HTC', 'Desire 610'], 'HTC 0P9O2' => ['HTC', 'Desire 610'], 'HTC331ZLVW' => ['HTC', 'Desire 610'], 'HTC Desire 612' => ['HTC', 'Desire 612'], 'HTC331ZLVWPP' => ['HTC', 'Desire 612'], 'HTC Desire 616 dual sim' => ['HTC', 'Desire 616'], 'HTC D616w!' => ['HTC', 'Desire 616'], 'HTC 619d!' => ['HTC', 'Desire 619d'], 'HTC D620(h|u)!' => ['HTC', 'Desire 620'], 'HTC Desire 620' => ['HTC', 'Desire 620'], 'HTC Desire 620G' => ['HTC', 'Desire 620G'], 'HTC Desire 620G dual sim' => ['HTC', 'Desire 620G'], 'HTC D626(d|w|x)!' => ['HTC', 'Desire 626'], 'HTC Desire 626' => ['HTC', 'Desire 626'], 'HTC Desire 626G dual sim' => ['HTC', 'Desire 626G'], 'HTC D626(ph)!' => ['HTC', 'Desire 626G'], 'HTC Desire 626GPLUS dual sim' => ['HTC', 'Desire 626G+'], 'HTC 0PM11' => ['HTC', 'Desire 626G+'], 'HTC Desire 626s' => ['HTC', 'Desire 626s'], 'HTC Desire 700 dual sim' => ['HTC', 'Desire 700'], 'HTC 709d' => ['HTC', 'Desire 709d'], 'HTC D816' => ['HTC', 'Desire 816'], 'HTC D816(d|t|v|w|x)!' => ['HTC', 'Desire 816'], 'HTC D816(h)!' => ['HTC', 'Desire 816G'], 'HTC Desire 816' => ['HTC', 'Desire 816'], 'HTC Desire 816 dual sim' => ['HTC', 'Desire 816'], 'htc a5ul' => ['HTC', 'Desire 816'], 'HTC Desire 816G' => ['HTC', 'Desire 816G'], 'HTC Desire 816G dual sim' => ['HTC', 'Desire 816G'], 'HTC D820(f|mt|mu|t|u|x)!' => ['HTC', 'Desire 820'], 'HTC Desire 820' => ['HTC', 'Desire 820'], 'HTC Desire 820 dual sim' => ['HTC', 'Desire 820'], 'HTC Desire 820G PLUS dual sim' => ['HTC', 'Desire 820G+'], 'HTC Desire 820q dual sim' => ['HTC', 'Desire 820q'], 'HTC Desire 820s dual sim' => ['HTC', 'Desire 820s'], 'HTC D820(ys)!' => ['HTC', 'Desire 820s'], 'HTC Desire 826 dual sim' => ['HTC', 'Desire 826'], 'HTC D826(d|t|w|y)!' => ['HTC', 'Desire 826'], 'HTC D828w!' => ['HTC', 'Desire 828'], 'HTC 5088' => ['HTC', 'Desire 5088'], 'HTC 6160' => ['HTC', 'Desire 6160'], 'HTC 7060' => ['HTC', 'Desire 7060'], 'HTC 7088' => ['HTC', 'Desire 7088'], 'HTC 8060' => ['HTC', 'Desire 8060'], 'HTC Desire C' => ['HTC', 'Desire C'], 'HTC Desire C N' => ['HTC', 'Desire C'], 'HTC H1000C' => ['HTC', 'Desire C'], 'HTC A320e' => ['HTC', 'Desire C'], 'HTC Desire ?HD!' => ['HTC', 'Desire HD'], 'HTC A91(91|92)!' => ['HTC', 'Desire HD'], 'HTC 0PFH1!' => ['HTC', 'Desire Eye'], 'HTC 0PFH2!' => ['HTC', 'Desire Eye'], 'HTC Desire EYE' => ['HTC', 'Desire Eye'], 'HTC PM6014' => ['HTC', 'Desire L'], 'HTC Desire P' => ['HTC', 'Desire P'], 'HTC ?Desire ?S( |$)!' => ['HTC', 'Desire S'], 'HTC S510(b|e)!' => ['HTC', 'Desire S'], 'HTC Desire Saga' => ['HTC', 'Desire S'], 'HTC Saga' => ['HTC', 'Desire S'], 'HTC DesireSV' => ['HTC', 'Desire SV'], 'HTC Desire SV' => ['HTC', 'Desire SV'], 'HTC PROMIN U' => ['HTC', 'Desire U'], 'HTC DesireU' => ['HTC', 'Desire U'], 'HTC Desire U' => ['HTC', 'Desire U'], 'HTC Desire U dual sim' => ['HTC', 'Desire U'], 'HTC T327w' => ['HTC', 'Desire U'], 'HTC Desire V' => ['HTC', 'Desire V'], 'HTC T328w' => ['HTC', 'Desire V'], 'HTC Desire VC' => ['HTC', 'Desire VC'], 'HTC Desire VC T328d' => ['HTC', 'Desire VC'], 'HTC T328d' => ['HTC', 'Desire VC'], 'HTC Desire VT' => ['HTC', 'Desire VT'], 'HTC T328t' => ['HTC', 'Desire VT'], 'HTC Desire XC!' => ['HTC', 'Desire XC'], 'HTC Desire XS!' => ['HTC', 'Desire XS'], 'HTC Desire ?X!' => ['HTC', 'Desire X'], 'HTC T329w' => ['HTC', 'Desire X'], 'HTC Desire ?Z!' => ['HTC', 'Desire Z'], 'HTC Vision' => ['HTC', 'Desire Z'], 'HTC A72(71|72|75)!' => ['HTC', 'Desire Z'], 'HTC T329d' => ['HTC', 'T329d'], 'HTC ?Desire!' => ['HTC', 'Desire'], 'HTC Bravo' => ['HTC', 'Desire'], 'HTC Bravo C' => ['HTC', 'Desire'], 'HTC eris' => ['HTC', 'Desire'], 'HTC A81(81|83)!' => ['HTC', 'Desire'], 'HTC ?X06HTII!' => ['HTC', 'Desire X06HTII', 'carrier' => 'Softbank'], 'HTC ?X06HT!' => ['HTC', 'Desire X06HT', 'carrier' => 'Softbank'], 'HTC Desire CDMA' => ['HTC', 'Desire'], 'HTC Dream' => ['HTC', 'Dream'], 'HTC Droid DNA' => ['HTC', 'Droid DNA'], 'HTC Droid Incredible' => ['HTC', 'Droid Incredible'], 'HTC IncredibleC' => ['HTC', 'Droid Incredible'], 'HTC Droid Incredible 2' => ['HTC', 'Droid Incredible 2'], 'HTC 603e' => ['HTC', 'E1'], 'HTC Evo' => ['HTC', 'EVO 3D'], 'HTC ?EVO ?3D!' => ['HTC', 'EVO 3D'], 'HTC X51(5a|5c|5d|5m)!' => ['HTC', 'EVO 3D'], 'HTC Shooter' => ['HTC', 'EVO 3D'], 'htc shooteru' => ['HTC', 'EVO 3D'], 'HTC EVO 4G\\+!' => ['HTC', 'EVO 4G+'], 'HTC X515e' => ['HTC', 'EVO 4G+'], 'HTC ?EVO ?4G!' => ['HTC', 'EVO 4G'], 'HTC jewel' => ['HTC', 'EVO 4G'], 'HTC EVO LTE' => ['HTC', 'EVO 4G'], 'HTC EVO G20 T9399  For Sprint' => ['HTC', 'EVO 4G'], 'HTC ?EVO ?V ?4G!' => ['HTC', 'EVO V 4G'], 'HTC ?(EVO ?)?Design ?4G!' => ['HTC', 'EVO Design 4G'], 'HTC EVO Design C715e!' => ['HTC', 'EVO Design 4G'], 'HTC C715c' => ['HTC', 'EVO Design 4G'], 'HTC EVO Shift!' => ['HTC', 'EVO Shift'], 'HTC EVO View 4G' => ['HTC', 'EVO View 4G'], 'HTC ?Explorer!' => ['HTC', 'Explorer'], 'HTC A31(0b|0e)!' => ['HTC', 'Explorer'], 'HTC Pico Incredible HD' => ['HTC', 'Explorer'], 'HTC first' => ['HTC', 'First'], 'HTC PM33100' => ['HTC', 'First'], 'HTC Flyer!' => ['HTC', 'Flyer', DeviceType::TABLET], 'HTC P51(0e|2|5e)!' => ['HTC', 'Flyer', DeviceType::TABLET], 'HTC Gratia!' => ['HTC', 'Gratia'], 'HTC A6380' => ['HTC', 'Gratia'], 'HTC HD' => ['HTC', 'HD'], 'HTC HD2!' => ['HTC', 'HD2'], 'HTC T8585' => ['HTC', 'HD2'], 'HTC HD7!' => ['HTC', 'HD7'], 'HTC T92(98|99)!' => ['HTC', 'HD7'], 'HTC HD7S!' => ['HTC', 'HD7s'], 'HTC T(93|98)99!' => ['HTC', 'HD7s'], 'HTC HERO200' => ['HTC', 'Hero 200'], 'HTC Hero ?S!' => ['HTC', 'Hero S'], 'HTC Hero!' => ['HTC', 'Hero'], 'HTC IMAGIO' => ['HTC', 'Imagio'], 'HTC Incredible' => ['HTC', 'Incredible'], 'HTC Incredible CDMA' => ['HTC', 'Incredible'], 'HTC Incredible T9199 for Vodafone' => ['HTC', 'Incredible'], 'HTC Incredible ?S!' => ['HTC', 'Incredible S'], 'HTC ?Vivo!' => ['HTC', 'Incredible S'], 'HTC S710e!' => ['HTC', 'Incredible S'], 'HTC S710d' => ['HTC', 'Incredible S'], 'HTC Incredible 2' => ['HTC', 'Incredible S'], 'HTC Innovation' => ['HTC', 'Innovation'], 'HTC (HD7 )?Inspire!' => ['HTC', 'Inspire 4G'], 'HTC J Z321e' => ['HTC', 'J'], 'HTC X920e' => ['HTC', 'J Butterfly'], 'HTC Butterfly' => ['HTC', 'J Butterfly'], 'HTC J Butterfly' => ['HTC', 'J Butterfly'], 'HTC Butterfly J' => ['HTC', 'J Butterfly'], 'HTC J One' => ['HTC', 'J One'], 'HTC Butterfly s' => ['HTC', 'Butterfly S'], 'HTC Butterfly s 901s' => ['HTC', 'Butterfly S'], 'HTC PO68' => ['HTC', 'Butterfly S'], 'HTC 9060' => ['HTC', 'Butterfly S'], 'HTC 9088' => ['HTC', 'Butterfly S'], 'HTC 901e' => ['HTC', 'Butterfly S'], 'HTC 909d' => ['HTC', 'Butterfly S'], 'HTC 919d' => ['HTC', 'Butterfly S'], 'HTC B810x' => ['HTC', 'Butterfly 2'], 'HTC Butterfly 2' => ['HTC', 'Butterfly 2'], 'HTC P715a' => ['HTC', 'Jetstream', DeviceType::TABLET], 'HTC PG09410' => ['HTC', 'Jetstream', DeviceType::TABLET], 'HTC Legend!' => ['HTC', 'Legend'], 'HTC Magic!' => ['HTC', 'Magic'], 'HTC Sapphire' => ['HTC', 'Magic'], 'HTC Merge' => ['HTC', 'Merge'], 'HTC Lexikon' => ['HTC', 'Merge'], 'HTC One SC' => ['HTC', 'One SC'], 'HTC T528d' => ['HTC', 'One SC'], 'HTC T528t' => ['HTC', 'One ST'], 'HTC T528w' => ['HTC', 'One SU'], 'HTC One Su' => ['HTC', 'One SU'], 'HTC One ?SV!' => ['HTC', 'One SV'], 'HTC C525c' => ['HTC', 'One SV'], 'HTC C525u' => ['HTC', 'One SV'], 'HTC H3000C' => ['HTC', 'One SV'], 'HTC K2!' => ['HTC', 'One SV'], 'HTC One S' => ['HTC', 'One S'], 'HTC One S !' => ['HTC', 'One S'], 'HTC Z(52|56)0e!' => ['HTC', 'One S'], 'HTC One VX' => ['HTC', 'One VX'], 'htc totem' => ['HTC', 'One VX'], 'HTC One V' => ['HTC', 'One V'], 'HTC T120C' => ['HTC', 'One V'], 'HTC T320e' => ['HTC', 'One V'], 'HTC H2000C' => ['HTC', 'One V'], 'HTC X720d' => ['HTC', 'One XC'], 'HTC ?One ?XL+!' => ['HTC', 'One XL+'], 'HTC ?One ?XL!' => ['HTC', 'One XL'], 'htc evita' => ['HTC', 'One XL'], 'HTC S720t!' => ['HTC', 'One XT'], 'HTC One X+' => ['HTC', 'One X+'], 'HTC OneXplus!' => ['HTC', 'One X+'], 'HTC PM63100' => ['HTC', 'One X+'], 'HTC ?One ?X!' => ['HTC', 'One X'], 'HTC Endeavour!' => ['HTC', 'One X'], 'HTC S720e' => ['HTC', 'One X'], 'HTC One X S720e' => ['HTC', 'One X'], 'HTC One X with Beats Audio' => ['HTC', 'One X'], 'HTC M7' => ['HTC', 'One'], 'HTC 801e' => ['HTC', 'One'], 'HTC 801s' => ['HTC', 'One'], 'HTC ?802d!' => ['HTC', 'One'], 'HTC 802t!' => ['HTC', 'One'], 'HTC 802w' => ['HTC', 'One'], 'HTC PN071' => ['HTC', 'One'], 'HTC PN072' => ['HTC', 'One'], 'HTC PN0711' => ['HTC', 'One'], 'HTC PN07120' => ['HTC', 'One'], 'HTC PN07310' => ['HTC', 'One'], 'HTC HTC6500LVW' => ['HTC', 'One'], 'HTC6500LVW' => ['HTC', 'One'], 'HTC6500LVW 4G' => ['HTC', 'One'], 'HTC6445LVW 4G' => ['HTC', 'One'], 'HTC One 801e' => ['HTC', 'One'], 'HTC One 801s' => ['HTC', 'One'], 'HTC one 802d' => ['HTC', 'One'], 'HTC One dual' => ['HTC', 'One'], 'HTC One dual 802d' => ['HTC', 'One'], 'HTC One dual sim' => ['HTC', 'One'], 'HTCONE' => ['HTC', 'One'], 'HTC6515LVW' => ['HTC', 'One Remix'], 'HTC 601e' => ['HTC', 'One Mini'], 'HTC PO581' => ['HTC', 'One Mini'], 'HTC PO582' => ['HTC', 'One Mini'], 'HTC PO58220' => ['HTC', 'One Mini'], 'HTC One mini' => ['HTC', 'One Mini'], 'HTC One mini 601e' => ['HTC', 'One Mini'], 'HTC 809d' => ['HTC', 'One Max'], 'HTC 8060' => ['HTC', 'One Max'], 'HTC 8088' => ['HTC', 'One Max'], 'HTC 8160' => ['HTC', 'One Max'], 'HTC ?0P3P[0-9]!' => ['HTC', 'One Max'], 'HTC6600LVW' => ['HTC', 'One Max'], 'HTC6600LVW 4G' => ['HTC', 'One Max'], 'HTC One max' => ['HTC', 'One Max'], 'HTC One max dual' => ['HTC', 'One Max'], 'HTC A9w' => ['HTC', 'One (A9)'], 'HTC One E9PLUS dual sim' => ['HTC', 'One (E9 Plus)'], 'HTC One M9' => ['HTC', 'One (M9)'], 'HTC 0PJA1!' => ['HTC', 'One (M9)'], 'HTC 0PJA2!' => ['HTC', 'One (M9)'], 'HTC6535LVW' => ['HTC', 'One (M9)'], 'HTC M9(u|w)!' => ['HTC', 'One (M9)'], 'HTC One M9PLUS' => ['HTC', 'One (M9 Plus)'], 'HTC M9pw' => ['HTC', 'One (M9 Plus)'], 'HTC X9u' => ['HTC', 'One (X9)'], 'HTC M9ew' => ['HTC', 'One ME'], 'htc hima ace ml dtul' => ['HTC', 'One ME'], 'HTC One ME dual sim' => ['HTC', 'One ME'], 'HTC 0P6B!' => ['HTC', 'One (M8)'], 'HTC One M8' => ['HTC', 'One (M8)'], 'HTC One M8 dual sim' => ['HTC', 'One (M8)'], 'HTC One(M8)' => ['HTC', 'One (M8)'], 'htc m8' => ['HTC', 'One (M8)'], 'HTC M8(d|dug|t|w|x)!' => ['HTC', 'One (M8)'], 'HTC6525LVW' => ['HTC', 'One (M8)'], 'HTC M8(e|et)!' => ['HTC', 'One (M8 Eye)'], 'HTC One M8 Eye' => ['HTC', 'One (M8 Eye)'], 'HTC One M8s' => ['HTC', 'One (M8s)'], 'HTC One E8' => ['HTC', 'One (E8)'], 'HTC One E8 dual sim' => ['HTC', 'One (E8)'], 'HTC M8S(d|t|w|x|y)!' => ['HTC', 'One (E8)'], 'htc mecwhl' => ['HTC', 'One (E8)'], 'HTC E9(pw|t|w|x)!' => ['HTC', 'One (E9)'], 'HTC One E9s dual sim' => ['HTC', 'One (E9)'], 'HTC 0P8B2!' => ['HTC', 'One Mini 2'], 'HTC M8MINx' => ['HTC', 'One Mini 2'], 'HTC One mini 2' => ['HTC', 'One Mini 2'], 'HTC Raider!' => ['HTC', 'Raider 4G'], 'HTC Holiday' => ['HTC', 'Raider 4G'], 'HTC X710(a|e|s)!' => ['HTC', 'Raider 4G'], 'HTC PH39100' => ['HTC', 'Raider 4G'], 'HTCRaider' => ['HTC', 'Raider 4G'], 'HTC Rezound' => ['HTC', 'Rezound'], 'HTC Rhyme!' => ['HTC', 'Rhyme'], 'HTC Bliss!' => ['HTC', 'Rhyme'], 'HTC S510b' => ['HTC', 'Rhyme'], 'HTC Salsa!' => ['HTC', 'Salsa'], 'HTC C510e' => ['HTC', 'Salsa'], 'HTC Sensation.*XE!' => ['HTC', 'Sensation XE'], 'HTC .*Z715(a|e)!' => ['HTC', 'Sensation XE'], 'HTC Sensation.*XL!' => ['HTC', 'Sensation XL'], 'HTC Runnymede' => ['HTC', 'Sensation XL'], 'HTC .*X315(b|e)!' => ['HTC', 'Sensation XL'], 'HTC G21!' => ['HTC', 'Sensation XL'], 'HTC ?Sensation!' => ['HTC', 'Sensation'], 'HTC Pyramid!' => ['HTC', 'Sensation'], 'HTC .*Z710(a|e|t)?!' => ['HTC', 'Sensation'], 'HTC G14!' => ['HTC', 'Sensation'], 'HTC Status' => ['HTC', 'Status'], 'HTC PH06130' => ['HTC', 'Status'], 'HTC Tattoo!' => ['HTC', 'Tattoo'], 'HTC Click' => ['HTC', 'Tattoo'], 'HTC A3288' => ['HTC', 'Tattoo'], 'HTC A9188' => ['HTC', 'Tianxi'], 'HTC X310e' => ['HTC', 'Titan'], 'HTC ETERNITY' => ['HTC', 'Titan'], 'HTC Polaris' => ['HTC', 'Touch Cruise'], 'HTC TOUCH DUAL' => ['HTC', 'Touch Dual'], 'HTC DiamondII EX' => ['HTC', 'Touch Diamond II'], 'HTC T7373' => ['HTC', 'Touch Pro II'], 'HTC Touch Pro' => ['HTC', 'Touch Pro'], 'HTC ThunderBolt( 4G)?!' => ['HTC', 'ThunderBolt'], 'HTC Mecha' => ['HTC', 'ThunderBolt'], 'HTC Kaiser' => ['HTC', 'TyTN II'], 'HTC Velocity!' => ['HTC', 'Velocity 4G'], 'HTCVelocity 4G' => ['HTC', 'Velocity 4G'], 'HTC Vivid' => ['HTC', 'Vivid'], 'HTC ?Wildfire ?S!' => ['HTC', 'Wildfire S'], 'HTC .*A510(a|b|c|e)!' => ['HTC', 'Wildfire S'], 'HTC ?PG762!' => ['HTC', 'Wildfire S'], 'HTC Wildfire!' => ['HTC', 'Wildfire'], 'HTC .*A33(33|35|66|80)!' => ['HTC', 'Wildfire'], 'HTC A3360' => ['HTC', 'Wildfire'], 'HTC A6390' => ['HTC', 'A6390'], 'HTC A8180' => ['HTC', 'A8180'], 'HTC S610d' => ['HTC', 'S610d'], 'HTC S715e' => ['HTC', 'S715e'], 'HTC T327d' => ['HTC', 'T327d'], 'HTC T327t' => ['HTC', 'T327t'], 'HTC T329t' => ['HTC', 'T329t'], 'HTC Z510d' => ['HTC', 'Z510d'], 'HTC PO681' => ['HTC', 'Droid DNA 2'], 'HTC PO682' => ['HTC', 'Butterfly S'], 'HTC GOF U' => ['HTC', 'Desire C'], 'HTC VLE U' => ['HTC', 'One S'], 'HTC VLE#U' => ['HTC', 'One S'], 'HTC VIE U' => ['HTC', 'One S'], 'HTC K2 UL' => ['HTC', 'One SV'], 'HTC DLX WLJ' => ['HTC', 'J Butterfly'], 'HTC DLX WL' => ['HTC', 'Droid DNA'], 'HTC DLX U' => ['HTC', 'Droid DNA'], 'HTC6435LVW!' => ['HTC', 'Droid DNA'], 'HTC EVA UTL' => ['HTC', 'One X'], 'HTC EVA UL' => ['HTC', 'One X'], 'HTC ENR U' => ['HTC', 'One X'], 'HTC EVARE UL' => ['HTC', 'One X+'], 'HTC ENRC2B' => ['HTC', 'One X+'], 'HTC 9089' => ['HTC', '9089'], 'HTC ?909d!' => ['HTC', '909d']], 'DLX' => ['HTC', 'Droid DNA'], 'DLXU' => ['HTC', 'Butterfly'], 'ENR U' => ['HTC', 'One X'], 'Amaze 4G' => ['HTC', 'Amaze 4G'], 'Liberty' => ['HTC', 'Aria'], 'Butterfly S' => ['HTC', 'Butterfly S'], 'Desire 816' => ['HTC', 'Desire 816'], 'Desire ?HD!' => ['HTC', 'Desire HD'], 'Desire L by HTC' => ['HTC', 'Desire L'], 'Desire ?S!' => ['HTC', 'Desire S'], 'Desire X' => ['HTC', 'Desire X'], 'Desire Z' => ['HTC', 'Desire Z'], 'Desire!' => ['HTC', 'Desire'], 'Dream' => ['HTC', 'Dream'], 'GinDream/GinMagic' => ['HTC', 'Dream'], 'SiRF Dream' => ['HTC', 'Dream'], 'Droid Incredible' => ['HTC', 'Droid Incredible'], 'Incredible' => ['HTC', 'Droid Incredible'], 'Incredible 2' => ['HTC', 'Droid Incredible 2'], 'EVO' => ['HTC', 'EVO'], 'Evo HD2' => ['HTC', 'EVO HD'], 'EVO ?3D!' => ['HTC', 'EVO 3D'], 'EVO 4G' => ['HTC', 'EVO 4G'], 'Evo V 4G' => ['HTC', 'EVO V 4G'], 'Explorer A310e' => ['HTC', 'Explorer'], 'photon' => ['HTC', 'HD mini'], 'HD2' => ['HTC', 'HD2'], 'NexusHD2' => ['HTC', 'HD2'], 'Nexus HD2' => ['HTC', 'HD2'], 'HD7  Pro' => ['HTC', 'HD7 Pro'], 'Hero' => ['HTC', 'Hero'], 'HERO CDMA' => ['HTC', 'Hero'], 'HERO200' => ['HTC', 'Hero 200'], 'Incredible ?S!' => ['HTC', 'Incredible S'], 'Incredible ?2!' => ['HTC', 'Incredible 2'], 'Incredible 4G LTE' => ['HTC', 'Incredible'], 'Inspire HD' => ['HTC', 'Inspire 4G'], 'Inspire 4G' => ['HTC', 'Inspire 4G'], 'Legend' => ['HTC', 'Legend'], 'Docomo HT-03A' => ['HTC', 'Magic HT-03A', 'carrier' => 'DoCoMo'], 'One S' => ['HTC', 'One S'], 'One X' => ['HTC', 'One X'], 'One X+' => ['HTC', 'One X+'], 'One V' => ['HTC', 'One V'], 'One' => ['HTC', 'One'], 'One M7' => ['HTC', 'One'], 'EndeavorU' => ['HTC', 'One X'], 'one m8' => ['HTC', 'One (M8)'], 'Rezound' => ['HTC', 'Rezound'], 'MIUI.us Sensation 4G' => ['HTC', 'Sensation 4G'], 'SensationXE!' => ['HTC', 'Sensation XE'], 'SensationXL!' => ['HTC', 'Sensation XL'], 'Sensation!' => ['HTC', 'Sensation'], 'Pyramid' => ['HTC', 'Sensation'], 'Touch Pro 2' => ['HTC', 'Touch Pro II'], 'TripNiCE Pyramid' => ['HTC', 'Sensation'], 'VitMod ExtraLite 1.6.5.fullodex for HTC HD7 Pro' => ['HTC', 'HD7 Pro'], 'Vivid 4G' => ['HTC', 'Vivid 4G'], 'Wildfire S!' => ['HTC', 'Wildfire S'], 'Wildfire!' => ['HTC', 'Wildfire'], 'Click' => ['HTC', 'Tattoo'], 'Sprint!!' => ['Sprint APX515CKT' => ['HTC', 'EVO 3D'], 'Sprint APA9292KT' => ['HTC', 'EVO 4G'], 'Sprint APA7373KT' => ['HTC', 'EVO Shift 4G'], 'Sprint APC715CKT' => ['HTC', 'EVO Design 4G'], 'Sprint ATP515CKIT' => ['HTC', 'EVO View 4G', DeviceType::TABLET]], '710C' => ['HTC', 'Desire 816'], '801a' => ['HTC', 'One'], '801s' => ['HTC', 'One'], '802w' => ['HTC', 'One'], '831C' => ['HTC', 'One (M8)'], '909d' => ['HTC', '909d'], '9088' => ['HTC', '9088'], 'A320a' => ['HTC', 'Desire C'], 'A3380' => ['HTC', 'Wildfire'], 'A6277' => ['HTC', 'Hero'], 'a7272' => ['HTC', 'Desire Z'], 'A7272+(HTC DesireZ)' => ['HTC', 'Desire Z'], 'C525c' => ['HTC', 'One SV'], 'D816(d|t|v|w|x)!' => ['HTC', 'Desire 816'], 'D820mt' => ['HTC', 'Desire 820 Mini'], 'S710d' => ['HTC', 'Droid Incredible 2'], 'S710D' => ['HTC', 'Droid Incredible 2'], 'T320a' => ['HTC', 'One V'], 'X325a' => ['HTC', 'One X'], 'X515d' => ['HTC', 'EVO 3D'], 'X515e' => ['HTC', 'EVO 4G+'], 'X525a' => ['HTC', 'One X+'], 'X710E' => ['HTC', 'Raider 4G'], 'X920e' => ['HTC', 'J Butterfly'], 'Z520m' => ['HTC', 'One S'], 'Z710' => ['HTC', 'Sensation'], 'Z710e' => ['HTC', 'Sensation'], 'Z715e' => ['HTC', 'Sensation XE'], 'T9199h' => ['HTC', 'T9199h'], '(HTC|PC|USCC)?ADR[0-9]{4,4}!!' => ['ADR6200' => ['HTC', 'Droid Eris'], 'ADR6225' => ['HTC', 'Wildfire 6225'], 'HTCADR6290US' => ['HTC', 'One V'], 'ADR6300' => ['HTC', 'Droid Incredible'], 'ADR6325!' => ['HTC', 'Merge'], 'ADR6330VW' => ['HTC', 'Rhyme'], 'ADR6350' => ['HTC', 'Droid Incredible 2'], 'ADR6400L!' => ['HTC', 'Thunderbolt 4G'], 'ADR6410LRA!' => ['HTC', 'Droid Incredible 4G'], 'ADR6410LVW!' => ['HTC', 'Fireball'], 'ADR6425LVW!' => ['HTC', 'Rezound'], 'pcdadr6350' => ['HTC', 'Droid Incredible 2'], 'USCCADR6275US!' => ['HTC', 'Desire'], 'USCCADR6285US!' => ['HTC', 'Hero S'], 'USCCADR6325US!' => ['HTC', 'Merge'], 'USCCADR6230US!' => ['HTC', 'Wildfire S']], 'ATP515CKIT' => ['HTC', 'EVO View 4G'], 'Coquettish Red' => ['HTC', 'Rezound'], 'PB99400' => ['HTC', 'Desire'], 'PC36100!' => ['HTC', 'EVO 4G'], 'PG06100' => ['HTC', 'EVO Shift 4G'], 'PG41200' => ['HTC', 'EVO View 4G', DeviceType::TABLET], 'PG86100!' => ['HTC', 'EVO 3D'], 'PH44100' => ['HTC', 'EVO Design 4G'], 'PJ83100' => ['HTC', 'One X'], 'PJ35100' => ['HTC', 'One VX'], 'PM36100' => ['HTC', 'One VX'], 'PM63100' => ['HTC', 'One X+'], '0PCV1' => ['HTC', 'Desire 510'], '0PM92' => ['HTC', 'Desire 626s'], '0PJA1!' => ['HTC', 'One (M9)'], '0PJA2!' => ['HTC', 'One (M9)'], '0PKV1' => ['HTC', 'One (M8s)'], '0PAJ5' => ['HTC', 'One (E8)'], 'M7CDTU' => ['HTC', 'One'], '[SX0][0-9]{2,2}HT!!' => ['S31HT' => ['HTC', 'Aria S31HT', 'carrier' => 'EMOBILE'], 'X06HT' => ['HTC', 'Desire X06HT', 'carrier' => 'Softbank'], '001HT' => ['HTC', 'Desire HD 001HT', 'carrier' => 'Softbank']], 'ISW[0-9]{2,2}HT!!' => ['ISW11HT!' => ['HTC', 'EVO WiMAX ISW11HT', 'carrier' => 'au'], 'ISW12HT!' => ['HTC', 'EVO 3D ISW12HT', 'carrier' => 'au'], 'ISW13HT!' => ['HTC', 'J ISW13HT', 'carrier' => 'au']], '(HTC )?HT[LV][0-9]{2,2}!!' => ['HTL21!' => ['HTC', 'J Butterfly HTL21', 'carrier' => 'au'], 'HTL22' => ['HTC', 'J One HTL22', 'carrier' => 'au'], 'HTC HTL22' => ['HTC', 'J One HTL22', 'carrier' => 'au'], 'HTL23!' => ['HTC', 'J Butterfly HTL23', 'carrier' => 'au'], 'HTV31!' => ['HTC', 'J Butterfly HTV31', 'carrier' => 'au']], 'Huawei MediaPad' => ['Huawei', 'MediaPad', DeviceType::TABLET], 'Huawei OsiMood MediaPad' => ['Huawei', 'MediaPad', DeviceType::TABLET], 'MediaPad!!' => ['MediaPad' => ['Huawei', 'MediaPad', DeviceType::TABLET], 'MediaPad 7 FHD' => ['Huawei', 'MediaPad 7', DeviceType::TABLET], 'MediaPad 7 Lite' => ['Huawei', 'MediaPad 7 Lite', DeviceType::TABLET], 'MediaPad 7 Lite II' => ['Huawei', 'MediaPad 7 Lite II', DeviceType::TABLET], 'MediaPad 7 Vivid' => ['Huawei', 'MediaPad 7 Vivid', DeviceType::TABLET], 'MediaPad 7 Vogue' => ['Huawei', 'MediaPad 7 Vogue', DeviceType::TABLET], 'MediaPad 7 Voguevivi' => ['Huawei', 'MediaPad 7 Vogue', DeviceType::TABLET], 'MediaPad 7 Youth' => ['Huawei', 'MediaPad 7 Youth', DeviceType::TABLET], 'MediaPad 7 Youth2' => ['Huawei', 'MediaPad 7 Youth 2', DeviceType::TABLET], 'MediaPad 7 Youth 2' => ['Huawei', 'MediaPad 7 Youth 2', DeviceType::TABLET], 'MediaPad 8 Vogue' => ['Huawei', 'MediaPad 8 Vogue', DeviceType::TABLET], 'MediaPad 10 FHD' => ['Huawei', 'MediaPad 10', DeviceType::TABLET], 'MediaPad 10 LINK' => ['Huawei', 'MediaPad 10 Link', DeviceType::TABLET], 'MediaPad 10 Link+' => ['Huawei', 'MediaPad 10 Link', DeviceType::TABLET], 'MediaPad M1 8.0' => ['Huawei', 'MediaPad M1', DeviceType::TABLET], 'MediaPad T1 8.0' => ['Huawei', 'MediaPad T1', DeviceType::TABLET], 'MediaPad T1 8.0 LTE' => ['Huawei', 'MediaPad T1', DeviceType::TABLET], 'MediaPad T1 8.0 Pro' => ['Huawei', 'MediaPad T1 Pro', DeviceType::TABLET], 'MediaPad X1 7.0' => ['Huawei', 'MediaPad X1', DeviceType::TABLET], 'MediaPad X1' => ['Huawei', 'MediaPad X1', DeviceType::TABLET], 'MediaPad 7D' => ['Huawei', 'MediaPad X1', DeviceType::TABLET], 'MediaPad X1 S 7.0' => ['Huawei', 'MediaPad X1 S', DeviceType::TABLET]], '(Huawei )?[MSTX][1278]\\-[A-Z0-9][0-9]{2,2}!!' => ['Huawei S7-312u' => ['Huawei', 'MediaPad', DeviceType::TABLET], 'S8-306L' => ['Huawei', 'MediaPad M1', DeviceType::TABLET], 'HUAWEI M2-A01L' => ['Huawei', 'MediaPad M2', DeviceType::TABLET], 'S8-701u' => ['Huawei', 'MediaPad T1', DeviceType::TABLET], 'T1-A21L' => ['Huawei', 'MediaPad T1', DeviceType::TABLET], 'T1-701u' => ['Huawei', 'MediaPad T1', DeviceType::TABLET], 'T1-701ua' => ['Huawei', 'MediaPad T1', DeviceType::TABLET], 'S8-701w' => ['Huawei', 'MediaPad T1', DeviceType::TABLET]], 'T1 7.0' => ['Huawei', 'MediaPad T1', DeviceType::TABLET], 'X1 7.0' => ['Huawei', 'MediaPad X1', DeviceType::TABLET], '(HUAWEI )?(CRR|MATE|MT1|MT2|MT7|M200|NXT|Z100)!!' => ['Huawei MT1-(T00|U06)!' => ['Huawei', 'Ascend Mate'], 'HUAWEI MATE-U06' => ['Huawei', 'Ascend Mate'], 'Huawei MT2-(C00|L01|L02|L05)!' => ['Huawei', 'Ascend Mate 2'], 'HUAWEI MT2L03' => ['Huawei', 'Ascend Mate 2'], 'MT2L03' => ['Huawei', 'Ascend Mate 2'], 'HUAWEI MT7-(L09|J1|CL00|TL00|TL10|UL00)!' => ['Huawei', 'Ascend Mate 7'], 'Z100-(L09|TL00)!' => ['Huawei', 'Ascend Mate 7'], 'HUAWEI NXT-(AL10|UL10)!' => ['Huawei', 'Mate 8'], 'NXT-(CL00|TL00)!' => ['Huawei', 'Mate 8'], 'M200-(UL00)!' => ['Huawei', 'Mate 8'], 'HUAWEI CRR-(L09|CL00|CL20|UL00|UL20)!' => ['Huawei', 'Mate S']], '(HUAWEI )?(TIT)!!' => ['TIT-(AL00|L01)!' => ['Huawei', 'Enjoy 5'], 'HUAWEI TIT-(AL00|CL10|TL00|U02)!' => ['Huawei', 'Enjoy 5']], '(HW-|HUAWEI )?(ATH|CHE|CHM|HN3|H30|H60|HOL|KIW|PE|PLK|SCL)!!' => ['Huawei HN3-(U00|U01)!' => ['Huawei', 'Honor 3'], 'HN3-(U00|U01)!' => ['Huawei', 'Honor 3'], 'Huawei H30-(C00|T00|T10|U10)!' => ['Huawei', 'Honor 3C'], 'HUAWEI H30 (T00|U10)!' => ['Huawei', 'Honor 3C'], 'HONOR H30-(L01|L02|T00)!' => ['Huawei', 'Honor 3C'], 'H30-(C00|L02|T00|T10|U10)!' => ['Huawei', 'Honor 3C'], 'H30 U10' => ['Huawei', 'Honor 3C'], 'HW-H30-C00!' => ['Huawei', 'Honor 3C'], 'Hol-(T00|U10|U19)!' => ['Huawei', 'Honor 3C'], 'Huawei HOL-(T00|U10|U19)!' => ['Huawei', 'Honor 3C'], 'CHM-(CL00|TL00H|TL00|U01|UL00)!' => ['Huawei', 'Honor Play 4C'], 'SCL-(L01|L04|L001|L004|AL00|CL00|TL00|TL00H)!' => ['Huawei', 'Honor 4A'], 'HUAWEI SCL-(L01|L02|L03|L04|L21|TL00|U31)!' => ['Huawei', 'Honor 4A'], 'CHE-(TL00|TL00H)!' => ['Huawei', 'Honor 4X'], 'HW-Che1-CL10' => ['Huawei', 'Honor 4X'], 'Che1-(L04|CL10|CL20)!' => ['Huawei', 'Honor 4X'], 'Che2-(L11|L12|L23|TL00|UL00)!' => ['Huawei', 'Honor 4X'], 'KIW-(AL10|CL00|L21|L22|UL00|TL00|TL00H)!' => ['Huawei', 'Honor 5X'], 'H60-(J1|L01|L02|L03|L04|L11|L12|L21)!' => ['Huawei', 'Honor 6'], 'PE-(CL00|TL00|TL10|TL20|UL00)!' => ['Huawei', 'Honor 6 Plus'], 'PLK-(L01|AL10|CL00|UL00|TL00|TL01H)!' => ['Huawei', 'Honor 7'], 'HW-PLK-CL00' => ['Huawei', 'Honor 7'], 'ATH-(AL00|CL00)!' => ['Huawei', 'Honor 7i']], '(HUAWEI )?(CHC|KII)!!' => ['CHC-(U01|U03)!' => ['Huawei', 'G Play Mini'], 'KII-(L03|L05|L21|L23)!' => ['Huawei', 'GR5']], '(HUAWEI )?(ALE|D2|G6|G7|GRA|M100|P2|P6|P7|RIO|SC|Sophia)!!' => ['HUAWEI D2' => ['Huawei', 'Ascend D2'], 'Huawei D2-(0082|2010|5000|6114)!' => ['Huawei', 'Ascend D2'], 'Huawei G6-(C00|L11|L22|L33|T00|U00|U10|U251)!' => ['Huawei', 'Ascend G6'], 'G6-L11' => ['Huawei', 'Ascend G6'], 'G7-(L01|L11|TL00)!' => ['Huawei', 'Ascend G7'], 'HUAWEI G7-(L01|L03|TL00|UL20)!' => ['Huawei', 'Ascend G7'], 'HUAWEI G7' => ['Huawei', 'Ascend G7'], 'HUAWEI RIO-(L01|L02|L03|AL00|UL00|CL00|TL00)!' => ['Huawei', 'Ascend G8'], 'Huawei SC-(CL00|UL10)!' => ['Huawei', 'Ascend GX1'], 'Huawei P2-(6011|6070)!' => ['Huawei', 'Ascend P2'], 'Huawei P6-(C00|U06|T00|T00V|VIP)!' => ['Huawei', 'Ascend P6'], 'Huawei P6 ?S-U06!' => ['Huawei', 'Ascend P6'], 'P6-(C00|U00|U06|T00)!' => ['Huawei', 'Ascend P6'], 'Huawei Sophia-(L07|L10)!' => ['Huawei', 'Ascend P7'], 'Huawei P7-(L00|L05|L07|L09|L10|L11|L12)!' => ['Huawei', 'Ascend P7'], 'M100-(CL00|L09|TL00|UL00)!' => ['Huawei', 'Ascend P8'], 'GRA-(CL00|CL10|TL00|UL00|UL10)!' => ['Huawei', 'Ascend P8'], 'HUAWEI GRA-(CL00|CL10|L09|TL00|UL00|UL10)!' => ['Huawei', 'Ascend P8'], 'HUAWEI ALE-(L04|CL00)!' => ['Huawei', 'Ascend P8 Lite'], 'HUAWEI ALEL04' => ['Huawei', 'Ascend P8 Lite'], 'ALE-(L02|L04|L21|L23|CL00|TL00|UL00)!' => ['Huawei', 'Ascend P8 Lite']], 'G[0-9]{3,3}!!' => ['G350-U151' => ['Huawei', 'Ascend G350'], 'G521-(L076|L176)!' => ['Huawei', 'Ascend G521'], 'G526-(L11|L22|L33)!' => ['Huawei', 'Ascend G526'], 'G535-(L11)!' => ['Huawei', 'Ascend G535'], 'G610[ -](T00|T11|U00)!' => ['Huawei', 'Ascend G610'], 'G616-T00' => ['Huawei', 'Ascend G616'], 'G618' => ['Huawei', 'Ascend G618'], 'G620-L75' => ['Huawei', 'Ascend G620'], 'G620S-(L01|L02|L03|UL00)!' => ['Huawei', 'Ascend G620S'], 'G621-(TL00|TL00M)!' => ['Huawei', 'Ascend G621'], 'G629-(UL00)!' => ['Huawei', 'Ascend G629'], 'G630-(U00|U10|U20|U251)!' => ['Huawei', 'Ascend G630'], 'G735-(L03|L23)!' => ['Huawei', 'Ascend G735'], 'G740-L00' => ['Huawei', 'Ascend G740'], 'G750-(T00|T01)!' => ['Huawei', 'Ascend G750'], 'G760-(L01|TL00)!' => ['Huawei', 'Ascend G760']], 'Y[0-9]{3,3}!!' => ['Y220-(U00|U05|U10)!' => ['Huawei', 'Ascend Y220'], 'Y220T' => ['Huawei', 'Ascend Y220'], 'Y320-U10' => ['Huawei', 'Ascend Y320'], 'Y325-T00' => ['Huawei', 'Ascend Y325'], 'Y330-U11' => ['Huawei', 'Ascend Y330'], 'Y340-U081' => ['Huawei', 'Ascend Y340'], 'Y511' => ['Huawei', 'Ascend Y511'], 'Y511-U00!' => ['Huawei', 'Ascend Y511'], 'Y536A1' => ['Huawei', 'Ascend Y536'], 'Y540-U01' => ['Huawei', 'Ascend Y540'], 'Y541-U02' => ['Huawei', 'Ascend Y541'], 'Y560-L01' => ['Huawei', 'Ascend Y560'], 'Y600-U00' => ['Huawei', 'Ascend Y600'], 'Y618-T00' => ['Huawei', 'Ascend Y618'], 'Y635-(L01|L21|L22)!' => ['Huawei', 'Ascend Y635']], '(Huawei|Ascend|HW-)!!' => ['Huawei A199' => ['Huawei', 'A199'], 'Huawei B199' => ['Huawei', 'B199'], 'Huawei C199' => ['Huawei', 'C199'], 'HUAWEI C199s' => ['Huawei', 'C199s'], 'Huawei C8500!' => ['Huawei', 'C8500'], 'HUAWEI C8550!' => ['Huawei', 'C8550'], 'Huawei C8600' => ['Huawei', 'C8600'], 'HW-C8600!' => ['Huawei', 'C8600'], 'Huawei C8650!' => ['Huawei', 'C8650'], 'Huawei C8655' => ['Huawei', 'Ascend Y201C'], 'Huawei C8800' => ['Huawei', 'IDEOS X5'], 'Huawei C8810' => ['Huawei', 'Ascend G300'], 'Huawei C8812!' => ['Huawei', 'Ascend C8812'], 'Ascend C8812' => ['Huawei', 'Ascend C8812'], 'Huawei C8813!' => ['Huawei', 'Ascend C8813'], 'Ascend c8813' => ['Huawei', 'Ascend C8813'], 'Ascend C8813Q' => ['Huawei', 'Ascend C8813'], 'Huawei C8815!' => ['Huawei', 'Ascend C8815'], 'Huawei C8816!' => ['Huawei', 'Ascend C8816'], 'Huawei C8817!' => ['Huawei', 'C8817'], 'HW-C8817D!' => ['Huawei', 'C8817'], 'HUAWEI C8818!' => ['Huawei', 'C8818'], 'Huawei C8825D' => ['Huawei', 'Ascend G330C'], 'Huawei C8826D' => ['Huawei', 'Ascend G500C'], 'Huawei C8850' => ['Huawei', 'C8850'], 'Huawei C8860E' => ['Huawei', 'Honor'], 'Huawei C8950D' => ['Huawei', 'Honor+'], 'Huawei G7500' => ['Huawei', 'G7500'], 'Huawei CM990' => ['Huawei', 'Evolución 3'], 'Huawei Evolucion 3' => ['Huawei', 'Evolución 3'], 'Huawei H867G' => ['Huawei', 'H867G'], 'Huawei H868C' => ['Huawei', 'Glory'], 'Huawei H870C' => ['Huawei', 'H870C'], 'Huawei H871G' => ['Huawei', 'Magna'], 'Huawei H881C' => ['Huawei', 'Ascend Plus'], 'HUAWEI H891L' => ['Huawei', 'Pronto'], 'HUAWEI H892L' => ['Huawei', 'Honor 4X'], 'Huawei M835' => ['Huawei', 'M835'], 'Huawei M860' => ['Huawei', 'Ascend'], 'HUAWEI M881' => ['Huawei', 'Asura'], 'Huawei M920' => ['Huawei', 'M920'], 'Huawei M921' => ['Huawei', 'M921'], 'Huawei M931' => ['Huawei', 'M931'], 'Ascend Mate 2' => ['Huawei', 'Ascend Mate 2'], 'Huawei S8520' => ['Huawei', 'S8520'], 'Huawei S8600' => ['Huawei', 'S8600'], 'Huawei T8100' => ['Huawei', 'T8100'], 'Huawei T8300' => ['Huawei', 'T8300'], 'Huawei ?T8500!' => ['Huawei', 'T8500'], 'Huawei T8600' => ['Huawei', 'T8600'], 'Huawei T8620' => ['Huawei', 'Ascend Y200T'], 'Huawei T8828' => ['Huawei', 'Ascend G305T'], 'Huawei T8830' => ['Huawei', 'Ascend G309T'], 'Huawei T8830 ?Pro!' => ['Huawei', 'Ascend G309T Pro'], 'Huawei T8833' => ['Huawei', 'Ascend Y300'], 'Huawei T8950!' => ['Huawei', 'Honor+'], 'Huawei T8951!' => ['Huawei', 'Ascend G510'], 'Huawei T9200' => ['Huawei', 'Ascend P1'], 'Huawei U8160' => ['Huawei', 'U8160'], 'Huawei U8220' => ['Huawei', 'U8220'], 'Huawei U8500' => ['Huawei', 'IDEOS X2'], 'Huawei ?U8520!' => ['Huawei', 'U8520 Duplex'], 'Huawei ?U8650!' => ['Huawei', 'Sonic'], 'Huawei U8652' => ['Huawei', 'Sonic'], 'Huawei U8661' => ['Huawei', 'Sonic+'], 'Huawei U8665' => ['Huawei', 'Fusion 2'], 'Huawei U8666!' => ['Huawei', 'Ascend Y201'], 'Huawei U8681' => ['Huawei', 'Ascend G312'], 'Huawei U8687' => ['Huawei', 'Chronos'], 'Huawei U8800!' => ['Huawei', 'IDEOS X5'], 'Huawei U8815!' => ['Huawei', 'Ascend G300'], 'Huawei U8818' => ['Huawei', 'Ascend G300'], 'Huawei U8825D' => ['Huawei', 'Ascend G330D'], 'Huawei U8825-1' => ['Huawei', 'Ascend G330'], 'HUAWEI G330-0100' => ['Huawei', 'Ascend G330'], 'Huawei u8833' => ['Huawei', 'Ascend Y300'], 'Huawei u8836d' => ['Huawei', 'Ascend G500'], 'Huawei U8850' => ['Huawei', 'Vision'], 'Huawei U8860' => ['Huawei', 'Honor'], 'Huawei Honor' => ['Huawei', 'Honor'], 'Huawei U8950!' => ['Huawei', 'Ascend G600'], 'HUAWEI U8951!' => ['Huawei', 'Ascend G510'], 'Huawei ?U9000!' => ['Huawei', 'Ascend X'], 'HUAWEI HONOR 2' => ['Huawei', 'Honor 2'], 'Huawei U9508' => ['Huawei', 'Honor 2'], 'Huawei ?U9508!' => ['Huawei', 'Honor 2 Quad-core'], 'Ascend D1' => ['Huawei', 'Ascend D1'], 'Huawei U9510!' => ['Huawei', 'Ascend D quad'], 'Huawei EDGE' => ['Huawei', 'Ascend P6'], 'Huawei Ascend P6' => ['Huawei', 'Ascend P6'], 'Ascend P7' => ['Huawei', 'Ascend P7'], 'Huawei IDEOS U8500' => ['Huawei', 'IDEOS X2'], 'Huawei IDEOS U8650' => ['Huawei', 'Sonic'], 'Huawei IDEOS X3' => ['Huawei', 'IDEOS X3'], 'Huawei Ideos X5!' => ['Huawei', 'IDEOS X5'], 'Huawei X6' => ['Huawei', 'IDEOS X6'], 'Huawei SONIC' => ['Huawei', 'Sonic'], 'Huawei 8100-9' => ['Huawei', 'U8100'], 'Huawei Ascend G 300' => ['Huawei', 'Ascend G300'], 'Huawei G300' => ['Huawei', 'Ascend G300'], 'Ascend G300' => ['Huawei', 'Ascend G300'], 'Ascend G301' => ['Huawei', 'Ascend G301'], 'Ascend G330' => ['Huawei', 'Ascend G330'], 'Huawei G350!' => ['Huawei', 'Ascend G350'], 'Huawei ?G510!' => ['Huawei', 'Ascend G510'], 'Ascend G510c' => ['Huawei', 'Ascend G510c'], 'Ascend G510' => ['Huawei', 'Ascend G510'], 'Huawei G520!' => ['Huawei', 'Ascend G520'], 'HUAWEI G521!' => ['Huawei', 'Ascend G521'], 'Huawei G525!' => ['Huawei', 'Ascend G525'], 'HUAWEI Ascend G525' => ['Huawei', 'Ascend G525'], 'Ascend G600' => ['Huawei', 'Ascend G600'], 'Huawei G606!' => ['Huawei', 'Ascend G606'], 'Huawei G610!' => ['Huawei', 'Ascend G610'], 'Huawei G615!' => ['Huawei', 'Ascend G615'], 'HUAWEI G616!' => ['Huawei', 'Ascend G616'], 'Huawei G620!' => ['Huawei', 'Ascend G620'], 'Huawei G621!' => ['Huawei', 'Ascend G621'], 'Huawei G628!' => ['Huawei', 'Ascend G628'], 'Huawei G630!' => ['Huawei', 'Ascend G630'], 'HUAWEI G660!' => ['Huawei', 'Ascend G660'], 'Huawei G700!' => ['Huawei', 'Ascend G700'], 'Huawei G701!' => ['Huawei', 'Ascend G701'], 'Huawei ?G716!' => ['Huawei', 'Ascend G716'], 'Huawei G718!' => ['Huawei', 'Ascend G718'], 'Huawei G730!' => ['Huawei', 'Ascend G730'], 'Huawei G750!' => ['Huawei', 'Ascend G750'], 'Huawei G760-(L01|L071)!' => ['Huawei', 'Ascend G760'], 'Huawei G760S-(UL00)!' => ['Huawei', 'Ascend G760'], 'Huawei Y210!' => ['Huawei', 'Ascend Y210'], 'Ascend Y201PRO' => ['Huawei', 'Ascend Y210 Pro'], 'Huawei Y ?220T!' => ['Huawei', 'Ascend Y220'], 'Huawei Y-220T' => ['Huawei', 'Ascend Y220'], 'Huawei Y220-(T10)!' => ['Huawei', 'Ascend Y220'], 'HUAWEI Y221-(U03|U12|U22)!' => ['Huawei', 'Ascend Y221'], 'Huawei ?Y300!' => ['Huawei', 'Ascend Y300'], 'Ascend Y300' => ['Huawei', 'Ascend Y300'], 'Huawei Ascend Y300' => ['Huawei', 'Ascend Y300'], 'Huawei Y301!' => ['Huawei', 'Ascend Y301'], 'Huawei Y310!' => ['Huawei', 'Ascend Y310'], 'Huawei Y320!' => ['Huawei', 'Ascend Y320'], 'Huawei Y321!' => ['Huawei', 'Ascend Y321'], 'Huawei Y325!' => ['Huawei', 'Ascend Y325'], 'Huawei Y330!' => ['Huawei', 'Ascend Y330'], 'HUAWEI Y336!' => ['Huawei', 'Ascend Y336'], 'HUAWEI Y360!' => ['Huawei', 'Ascend Y360'], 'Huawei Y500!' => ['Huawei', 'Ascend Y500'], 'Huawei Y511!' => ['Huawei', 'Ascend Y511'], 'Huawei Y516!' => ['Huawei', 'Ascend Y516'], 'Huawei Y518!' => ['Huawei', 'Ascend Y518'], 'HUAWEI Y520!' => ['Huawei', 'Ascend Y520'], 'Huawei Y523!' => ['Huawei', 'Ascend Y523'], 'Huawei Y530!' => ['Huawei', 'Ascend Y530'], 'HUAWEI Y535!' => ['Huawei', 'Ascend Y535'], 'HUAWEI Y536A1' => ['AT&T', 'Tribute'], 'HUAWEI Y536!' => ['Huawei', 'Ascend Y536'], 'HUAWEI Y540-(U01)!' => ['Huawei', 'Ascend Y540'], 'HUAWEI Y541!' => ['Huawei', 'Ascend Y541'], 'HUAWEI Y550' => ['Huawei', 'Ascend Y550'], 'HUAWEI Y550-(L01|L02|L03)!' => ['Huawei', 'Ascend Y550'], 'HUAWEI Y560-(CL00|L01|L02|L03|L23|U02|U12)!' => ['Huawei', 'Ascend Y560'], 'Huawei Y600-(U00|U20|U40|U151|U351)!' => ['Huawei', 'Ascend Y600'], 'HUAWEI Y600D-C00' => ['Huawei', 'Ascend Y600D'], 'HUAWEI Y610-U00' => ['Huawei', 'Ascend Y610'], 'HUAWEI Y618-T00' => ['Huawei', 'Ascend Y618'], 'HUAWEI Y625-(U13|U21|U32|U51)!' => ['Huawei', 'Ascend Y625'], 'HUAWEI Y635!' => ['Huawei', 'Ascend Y635'], 'Huawei Ascend X' => ['Huawei', 'Ascend X']], 'unknown M200-L09' => ['Huawei', 'Mate 8'], 'Honor3c2G-T' => ['Huawei', 'Honor 3C'], 'HUAWEI Honor 3c w' => ['Huawei', 'Honor 3C'], 'Orange HUAWEI GRA-L09' => ['Huawei', 'Ascend P8'], 'FUSIONideos' => ['Huawei', 'IDEOS'], 'Gnappo Ideos' => ['Huawei', 'IDEOS'], 'IDEOS!!' => ['Ideos' => ['Huawei', 'IDEOS'], 'IDEOS X1' => ['Huawei', 'IDEOS X1'], 'IDEOS X5' => ['Huawei', 'IDEOS X5'], 'IDEOS X5 PRO' => ['Huawei', 'IDEOS X5 Pro'], 'IDEOS S7!' => ['Huawei', 'IDEOS S7', DeviceType::TABLET]], 'Huawei S7' => ['Huawei', 'IDEOS S7', DeviceType::TABLET], 'SONIC' => ['Huawei', 'Sonic'], 'Kyivstar Aqua' => ['Huawei', 'Sonic'], 'Lucky Ultra Sonic U8650' => ['Huawei', 'Sonic'], 'MTC Android' => ['Huawei', 'U8110'], '[0-9AS][0-9]{2,2}HW!!' => ['A01HW' => ['Huawei', 'A01HW', DeviceType::TABLET, 'carrier' => 'EMOBILE'], 'S31HW' => ['Huawei', 'Pocket WiFi S S31HW', 'carrier' => 'EMOBILE'], 'S41HW' => ['Huawei', 'Pocket WiFi S II S41HW', 'carrier' => 'EMOBILE'], 'S42HW' => ['Huawei', 'smart bar S42HW', 'carrier' => 'EMOBILE'], '007HW' => ['Huawei', 'Vision 007HW', 'carrier' => 'Softbank'], '201HW' => ['Huawei', 'STREAM 201HW', 'carrier' => 'Softbank'], '204HW' => ['Huawei', '204HW', 'carrier' => 'Softbank'], '301HW' => ['Huawei', 'Pocket WiFi 301HW', 'carrier' => 'Softbank'], '302HW' => ['Huawei', 'STREAM S 302HW', 'carrier' => 'Y! Mobile'], '402HW' => ['Huawei', 'MediaPad 10 Link+ 402HW', DeviceType::TABLET, 'carrier' => 'Softbank'], '403HW' => ['Huawei', 'MediaPad M1 8.0 403HW', DeviceType::TABLET, 'carrier' => 'Y! Mobile'], '503HW' => ['Huawei', 'LUMIERE 503HW', 'carrier' => 'Y! Mobile']], 'CM980' => ['Huawei', 'Evolution II'], 'CM990' => ['Huawei', 'Evolución 3'], 'UM840' => ['Huawei', 'Evolution'], 'M310' => ['Huawei', 'MediaQ M310', DeviceType::TELEVISION], 'M860' => ['Huawei', 'Ascend'], 'M865' => ['Huawei', 'Ascend II'], 'M886' => ['Huawei', 'Glory'], 'S8600' => ['Huawei', 'S8600'], 'C8[0-9]{3,3}!!' => ['C8150' => ['Huawei', 'IDEOS'], 'C8500!' => ['Huawei', 'C8500'], 'C8600' => ['Huawei', 'C8600'], 'C8650!' => ['Huawei', 'C8650'], 'C8800' => ['Huawei', 'C8800'], 'C8810' => ['Huawei', 'Ascend G300C'], 'C8812!' => ['Huawei', 'Ascend C8812'], 'C8815!' => ['Huawei', 'Ascend C8815'], 'C8860!' => ['Huawei', 'Honor']], 'T[89][0-9]{3,3}!!' => ['T8620' => ['Huawei', 'Ascend Y200T'], 'T8808!' => ['Huawei', 'Ascend G306T'], 'T8830!' => ['Huawei', 'Ascend G309T'], 'T9200' => ['Huawei', 'Ascend P1'], 'T9510E' => ['Huawei', 'Ascend D1 Quad XL']], 'U[89][0-9]{3,3}!!' => ['U8100' => ['Huawei', 'U8100'], 'U8110' => ['Huawei', 'U8110'], 'U8120' => ['Huawei', 'U8120'], 'U8180' => ['Huawei', 'IDEOS X1'], 'U8300' => ['Huawei', 'U8300'], 'U8350' => ['Huawei', 'Boulder'], 'U8150' => ['Huawei', 'IDEOS'], 'U8160' => ['Huawei', 'U8160'], 'U8180' => ['Huawei', 'IDEOS X1'], 'U8185' => ['Huawei', 'Ascend Y100'], 'U8186' => ['Huawei', 'Ascend Y101'], 'U8230' => ['Huawei', 'U8230'], 'U8500' => ['Huawei', 'IDEOS X2'], 'U8500 HiQQ' => ['Huawei', 'U8500 HiQQ Edition'], 'U8510' => ['Huawei', 'IDEOS X3'], 'U8520' => ['Huawei', 'U8520 Duplex'], 'U8600' => ['Huawei', 'U8600'], 'U8650!' => ['Huawei', 'Sonic'], 'U8651!' => ['Huawei', 'Talon U8651'], 'U8652!' => ['Huawei', 'Fusion U8652'], 'U8655!' => ['Huawei', 'Ascend Y200'], 'U8660' => ['Huawei', 'Sonic'], 'U8665' => ['Huawei', 'Fusion 2'], 'U8666!' => ['Huawei', 'Ascend Y201'], 'U8667' => ['Huawei', 'U8667'], 'U8800 ?Pro!' => ['Huawei', 'IDEOS X5 Pro'], 'U8800!' => ['Huawei', 'IDEOS X5'], 'U8812' => ['Huawei', 'Ascend G302D'], 'U8812D' => ['Huawei', 'Ascend G302D'], 'U8815N' => ['Huawei', 'Ascend G300'], 'U8815-51' => ['Huawei', 'Ascend G300'], 'U8815' => ['Huawei', 'Ascend G300'], 'U8816' => ['Huawei', 'Ascend G301'], 'U8818' => ['Huawei', 'Ascend G300'], 'U8820' => ['Huawei', 'Titan'], 'U8832D' => ['Huawei', 'Ascend G500'], 'U8836D' => ['Huawei', 'Ascend G500'], 'U8850' => ['Huawei', 'Vision'], 'U8860!' => ['Huawei', 'Honor'], 'U9000' => ['Huawei', 'Ascend X'], 'U9200!' => ['Huawei', 'Ascend P1'], 'U9202!' => ['Huawei', 'Ascend P1'], 'U9500' => ['Huawei', 'Ascend D1'], 'U9500E' => ['Huawei', 'Ascend D1 XL'], 'U9501L' => ['Huawei', 'Ascend D LTE'], 'U9508' => ['Huawei', 'Honor 2'], 'U9510!' => ['Huawei', 'Ascend D quad']], 'Comet' => ['Huawei', 'Comet'], 'DroniX-0.5' => ['Huawei', 'U8180'], 'TSP21' => ['Huawei', 'U8110'], 'GS02' => ['Huawei', 'GS02', 'carrier' => 'EMOBILE'], 'GS03' => ['Huawei', 'GS03', 'carrier' => 'EMOBILE'], 'GL07S' => ['Huawei', 'STREAM X GL07S', 'carrier' => 'EMOBILE'], 'HW-01E' => ['Huawei', 'Ascend HW-01E', 'carrier' => 'DoCoMo'], 'HW-03E' => ['Huawei', 'Ascend D2 HW-03E', 'carrier' => 'DoCoMo'], 'H866C' => ['Huawei', 'Ascend Y H866C'], 'H882L' => ['Huawei', 'Ascend Y301-A'], 'USCCADR[0-9]{4,4}!!' => ['USCCADR3305' => ['Huawei', 'Ascend II'], 'USCCADR3310' => ['Huawei', 'Ascend II']], 'HYUNDAI!!' => ['HYUNDAI H6' => ['Hyundai', 'Storm H6'], 'HYUNDAI H6 B' => ['Hyundai', 'Storm H6'], 'HYUNDAI H8' => ['Hyundai', 'H8'], 'HYUNDAI H8Q' => ['Hyundai', 'H8Q'], 'HYUNDAI H9' => ['Hyundai', 'H9'], 'HYUNDAI H10' => ['Hyundai', 'H10'], 'HYUNDAI H11' => ['Hyundai', 'H11'], 'Hyundai HT-10G' => ['Hyundai', 'HT-10G', DeviceType::TABLET], 'HYUNDAI Q5' => ['Hyundai', 'Q5'], 'HYUNDAI Q5X' => ['Hyundai', 'Q5X'], 'HYUNDAI T7' => ['Hyundai', 'T7', DeviceType::TABLET], 'HYUNDAI T7S' => ['Hyundai', 'T7s', DeviceType::TABLET], 'HYUNDAI T10' => ['Hyundai', 'T10', DeviceType::TABLET], 'HYUNDAI T31' => ['Hyundai', 'T31', DeviceType::TABLET], 'HYUNDAI X7' => ['Hyundai', 'X7'], 'HYUNDAI X900' => ['Hyundai', 'X900', DeviceType::TABLET]], 'A7 HD' => ['Hyundai', 'A7 HD', DeviceType::TABLET], 'MW1031' => ['Hyundai', 'MW1031', DeviceType::TABLET], 'Elektra L' => ['i-Joy', 'Elektra L'], 'Elektra XL' => ['i-Joy', 'Elektra XL'], 'i-Joy i-Call' => ['i-Joy', 'i-Call'], 'i-Call 300' => ['i-Joy', 'i-Call 300'], 'i-Call 300v2' => ['i-Joy', 'i-Call 300'], 'i-Call 504' => ['i-Joy', 'i-Call 504'], 'DEOX' => ['i-Joy', 'Deox', DeviceType::TABLET], 'Neon7' => ['i-Joy', 'Neon7', DeviceType::TABLET], 'Neon9' => ['i-Joy', 'Neon9', DeviceType::TABLET], 'Planet II v2' => ['i-Joy', 'Planet II', DeviceType::TABLET], 'Sygnus' => ['i-Joy', 'Sygnus', DeviceType::TABLET], '(NMP|MBR|XDK|XDS|XMP)\\-!!' => ['NMP-302w' => ['IAdea', 'MBR-1100', DeviceType::SIGNAGE], 'MBR-1100' => ['IAdea', 'MBR-1100', DeviceType::SIGNAGE], 'XDK-1160' => ['IAdea', 'XDK-1160', DeviceType::SIGNAGE], 'XDK-1560' => ['IAdea', 'XDK-1560', DeviceType::SIGNAGE], 'XDS-0548' => ['IAdea', 'XDS-0548', DeviceType::SIGNAGE], 'XDS-1078' => ['IAdea', 'XDS-1078', DeviceType::SIGNAGE], 'XDS-2370' => ['IAdea', 'XDS-2370', DeviceType::SIGNAGE], 'XMP-6200' => ['IAdea', 'XMP-6200', DeviceType::SIGNAGE], 'XMP-6400' => ['IAdea', 'XMP-6400', DeviceType::SIGNAGE], 'XMP-7300' => ['IAdea', 'XMP-7300', DeviceType::SIGNAGE]], '(iBall )?Andi!!' => ['Andi3n' => ['iBall', 'Andi 3n'], 'iBall Andi3e' => ['iBall', 'Andi 3e'], 'iBall Andi3.5' => ['iBall', 'Andi 3.5'], 'Andi 3.5i' => ['iBall', 'Andi 3.5i'], 'Andi3.5r' => ['iBall', 'Andi 3.5r'], 'iBall Andi3.5 Classique' => ['iBall', 'Andi 3.5 Classique'], 'Andi3.5KKe' => ['iBall', 'Andi 3.5KKe'], 'Andi 3.5KKe+' => ['iBall', 'Andi 3.5KKe+'], 'iBall Andi 3.5KKe Genius' => ['iBall', 'Andi 3.5KKe Genius'], 'Andi3.5KKe Glory' => ['iBall', 'Andi 3.5KKe Glory'], 'Andi3.5KKe Super' => ['iBall', 'Andi 3.5KKe Super'], 'iBall Andi 3.5KKe Winner' => ['iBall', 'Andi 3.5KKe Winner'], 'iBall Andi 4 IPS TIGER 1GB' => ['iBall', 'Andi 4 IPS Tiger'], 'Andi 4 IPS Tiger' => ['iBall', 'Andi 4 IPS Tiger'], 'iBall Andi4-B2' => ['iBall', 'Andi 4B2'], 'iball Andi4di' => ['iBall', 'Andi 4Di'], 'iBall Andi 4di+' => ['iBall', 'Andi 4Di'], 'Andi4F Waves' => ['iBall', 'Andi 4F Waves'], 'iBall Andi4P IPS GEM' => ['iBall', 'Andi 4P Gem'], 'iBall Andi4P IPS Velvet' => ['iBall', 'Andi 4P Velvet'], 'Andi4U Frisbee' => ['iBall', 'Andi 4U Frisbee'], 'iBall Andi4.3J' => ['iBall', 'Andi 4.3J'], 'iBall Andi4.3J+' => ['iBall', 'Andi 4.3J'], 'iBall Andi4.5d quadro' => ['iBall', 'Andi 4.5d Quadro'], 'iBALL Andi4.5h' => ['iBall', 'Andi 4.5h'], 'Andi4.5h' => ['iBall', 'Andi 4.5h'], 'Andi4.5M Enigma' => ['iBall', 'Andi 4.5m Enigma'], 'Andi 4.5P Glitter' => ['iBall', 'Andi 4.5p Glitter'], 'iBall Andi4.5q' => ['iBall', 'Andi 4.5q'], 'Andi 4.5z' => ['iBall', 'Andi 4.5z'], 'iBall Andi4.5 Ripple 3G' => ['iBall', 'Andi 4.5 Ripple'], 'iBall Andi4.5 Ripple' => ['iBall', 'Andi 4.5 Ripple'], 'Andi5 Stallion' => ['iBall', 'Andi 5 Stallion'], 'Andi5h quadro' => ['iBall', 'Andi 5h Quadro'], 'Andi5K Panther' => ['iBall', 'Andi 5K Panther'], 'Andi5K Sparkle' => ['iBall', 'Andi 5K Sparkle'], 'iBall Andi5L' => ['iBall', 'Andi 5L'], 'Andi5Li' => ['iBall', 'Andi 5Li'], 'iBall Andi5T Cobalt2' => ['iBall', 'Andi 5T Cobalt 2'], 'iBall Andi 5T Cobalt2' => ['iBall', 'Andi 5T Cobalt 2'], 'iBall Andi5-E7' => ['iBall', 'Andi 5-E7'], 'iBall Andi5-M8' => ['iBall', 'Andi 5-M8'], 'Andi5.5 N2' => ['iBall', 'Andi 5.5 N2'], 'Andi107' => ['iBall', 'Andi 107'], 'Andi Avonte5' => ['iBall', 'Andi Avonte 5']], 'iBall!!' => ['iBall Slide i5715' => ['iBall', 'Slide i5715', DeviceType::TABLET], 'iBall i6012' => ['iBall', 'Slide i6012', DeviceType::TABLET], 'iBall Slide i6030' => ['iBall', 'Slide i6030', DeviceType::TABLET], 'iBall Slide 6309i' => ['iBall', 'Slide i6309', DeviceType::TABLET], 'iBall Slide 6318i' => ['iBall', 'Slide i6318', DeviceType::TABLET], 'iBall Slide i6516' => ['iBall', 'Slide i6516', DeviceType::TABLET], 'iBall Slide i7011' => ['iBall', 'Slide i7011', DeviceType::TABLET], 'iBall Slide i7119' => ['iBall', 'Slide i7119', DeviceType::TABLET], 'iBall Slide i9702' => ['iBall', 'Slide i9702', DeviceType::TABLET], 'iBall Slide 3G7271' => ['iBall', 'Slide 3G 7271', DeviceType::TABLET], 'iBall Slide 3G 7307' => ['iBall', 'Slide 3G 7307', DeviceType::TABLET], 'IBall 3G 7316' => ['iBall', 'Slide 3G 7316', DeviceType::TABLET], 'iBall Slide 3G 7316' => ['iBall', 'Slide 3G 7316', DeviceType::TABLET], 'iBall Slide 3G 7334' => ['iBall', 'Slide 3G 7334', DeviceType::TABLET], 'iBall Slide 3G Q1035' => ['iBall', 'Slide 3G Q1035', DeviceType::TABLET]], '3G7334i' => ['iBall', 'Slide 3G 7334', DeviceType::TABLET], '(Aura|iberry|AUXUS)!!' => ['Aura A1' => ['iBerry', 'Auxus Aura A1', DeviceType::TABLET], 'AUXUS AX01' => ['iBerry', 'Auxus AX01', DeviceType::TABLET], 'iberry AUXUS AX02' => ['iBerry', 'Auxus AX02', DeviceType::TABLET], 'AUXUS CoreX2 3G' => ['iBerry', 'Auxus CoreX2', DeviceType::TABLET], 'AUXUS CoreX4 3G' => ['iBerry', 'Auxus CoreX4', DeviceType::TABLET], 'AUXUS Nuclea N1' => ['iBerry', 'Auxus Nuclea N1'], 'AUXUS Nuclea N2' => ['iBerry', 'Auxus Nuclea N2']], '(NetTab|NT-)!!' => ['NetTab iconBIT' => ['IconBit', 'NetTab', DeviceType::TABLET], 'NetTAB Matrix' => ['IconBit', 'NetTab Matrix', DeviceType::TABLET], 'NT-0704M' => ['IconBit', 'NetTab Matrix Ultra', DeviceType::TABLET], 'NT-0705M' => ['IconBit', 'NetTab Matrix Quad', DeviceType::TABLET], 'NetTAB MATRIX HD' => ['IconBit', 'NetTab Matrix HD', DeviceType::TABLET], 'NT-0708M' => ['IconBit', 'NetTab Matrix HD', DeviceType::TABLET], 'NT-0709M' => ['IconBit', 'NetTab Matrix DX', DeviceType::TABLET], 'NT-0711M' => ['IconBit', 'NetTab Matrix DX', DeviceType::TABLET], 'NetTAB Pocket' => ['IconBit', 'NetTab Pocket', DeviceType::TABLET], 'NetTAB PRIDE' => ['IconBit', 'NetTab Pride', DeviceType::TABLET], 'NetTAB RUNE' => ['IconBit', 'NetTab Rune', DeviceType::TABLET], 'NT-0801C' => ['IconBit', 'NetTab Skat RX', DeviceType::TABLET], 'NT-0806C' => ['IconBit', 'NetTab Skat LE', DeviceType::TABLET], 'NetTAB SKY' => ['IconBit', 'NetTab Sky', DeviceType::TABLET], 'NT-0701S' => ['IconBit', 'NetTab Sky Net', DeviceType::TABLET], 'NetTAB SKY II' => ['IconBit', 'NetTab Sky II', DeviceType::TABLET], 'NetTAB Space 3G' => ['IconBit', 'NetTab Space', DeviceType::TABLET], 'NetTAB SPACE II' => ['IconBit', 'NetTab Space II', DeviceType::TABLET], 'NetTAB SPACE II Plus' => ['IconBit', 'NetTab Space II Plus', DeviceType::TABLET], 'NetTAB SPACE III' => ['IconBit', 'NetTab Space III', DeviceType::TABLET], 'NT-0901S' => ['IconBit', 'NetTab Space Quad HD', DeviceType::TABLET], 'NT-0902S' => ['IconBit', 'NetTab Space Quad RX', DeviceType::TABLET], 'NetTAB THOR' => ['IconBit', 'NetTab Thor', DeviceType::TABLET], 'NetTAB THOR V4.10' => ['IconBit', 'NetTab Thor', DeviceType::TABLET], 'NT-0907T' => ['IconBit', 'NetTab Thor ZX', DeviceType::TABLET], 'NT-0909T' => ['IconBit', 'NetTab Thor IZ', DeviceType::TABLET], 'NetTAB THOR mini' => ['IconBit', 'NetTab Thor Mini', DeviceType::TABLET], 'NetTAB THOR-LE' => ['IconBit', 'NetTab Thor LE', DeviceType::TABLET], 'NT-1001T' => ['IconBit', 'NetTab Thor LE', DeviceType::TABLET], 'NT-1002T' => ['IconBit', 'NetTab Thor LE', DeviceType::TABLET], 'NT-1004T' => ['IconBit', 'NetTab Thor Quad FHD', DeviceType::TABLET], 'NT-1005T' => ['IconBit', 'NetTab Thor Quad', DeviceType::TABLET], 'NT-1006T' => ['IconBit', 'NetTab Thor Quad MX', DeviceType::TABLET], 'NT-1008T' => ['IconBit', 'NetTab Thor 3GTS', DeviceType::TABLET], 'NT-1009T' => ['IconBit', 'NetTab Thor Quad II', DeviceType::TABLET], 'NT-1010T' => ['IconBit', 'NetTab Thor LE', DeviceType::TABLET], 'NT-1011T' => ['IconBit', 'NetTab Thor LE', DeviceType::TABLET], 'NT-1020T' => ['IconBit', 'NetTab Thor LX', DeviceType::TABLET], 'NT-1021T' => ['IconBit', 'NetTab Thor LX', DeviceType::TABLET], 'NT-1501C' => ['IconBit', 'NetTab Callisto 100', DeviceType::WATCH], 'NT-3506M' => ['IconBit', 'NetTab Mercury Quad FHD'], 'NT-3507M' => ['IconBit', 'NetTab Mercury Quad'], 'NT-3509M' => ['IconBit', 'NetTab Mercury Q4'], 'NT-3510M' => ['IconBit', 'NetTab Mercury Q5'], 'NT-3513M!' => ['IconBit', 'NetTab Mercury LX'], 'NT-3601P!' => ['IconBit', 'NetTab Pocket'], 'NT-3602M' => ['IconBit', 'NetTab Mercury Q7'], 'NT-3701S' => ['IconBit', 'NetTab Sky 3G Duo', DeviceType::TABLET], 'NT-3702M' => ['IconBit', 'NetTab Matrix 3G Duo', DeviceType::TABLET], 'NT-3702S' => ['IconBit', 'NetTab Sky HD 3G', DeviceType::TABLET], 'NT-3710S' => ['IconBit', 'NetTab Sky 3G Plus', DeviceType::TABLET], 'NT-3801P' => ['IconBit', 'NetTab Parus 3G Duo', DeviceType::TABLET], 'NT-3803C' => ['IconBit', 'NetTab Skat 3G', DeviceType::TABLET], 'NT-3805C' => ['IconBit', 'NetTab Skat 3G Quad', DeviceType::TABLET], 'NT-3902S' => ['IconBit', 'NetTab Space 3G Duo', DeviceType::TABLET]], 'IconBit NetTab Thor Mini' => ['IconBit', 'NetTab Thor Mini', DeviceType::TABLET], 'D70W' => ['Icoo', 'D70W', DeviceType::TABLET], 'D80' => ['Icoo', 'D80', DeviceType::TABLET], 'AURUS III' => ['Idea', 'Aurus III'], 'CT[0-9]{3,4}!!' => ['CT720G' => ['IdeaUSA', 'CT720G', DeviceType::TABLET], 'CT720HD' => ['IdeaUSA', 'CT720HD', DeviceType::TABLET], 'CT920' => ['IdeaUSA', 'CT920', DeviceType::TABLET], 'CT1006' => ['IdeaUSA', 'CT1006', DeviceType::TABLET]], 'INFOBAR!!' => ['INFOBAR A01' => ['iida', 'INFOBAR A01', 'carrier' => 'au'], 'INFOBAR A01-2' => ['iida', 'INFOBAR A01', 'carrier' => 'au'], 'INFOBAR C01' => ['iida', 'INFOBAR C01', 'carrier' => 'au']], 'HTX21' => ['iida', 'INFOBAR A02', 'carrier' => 'au'], 'KYV33' => ['iida', 'INFOBAR A03', 'carrier' => 'au'], 'IMO!!' => ['IMO Discovery II' => ['IMO', 'Discovery II'], 'IMO Discovery 2' => ['IMO', 'Discovery II'], 'IMO Q8' => ['IMO', 'Q8 Clarity'], 'IMO S67' => ['IMO', 'Blast S67'], 'IMO S68' => ['IMO', 'Snow S68'], 'IMO S70' => ['IMO', 'Miracle 2 S70'], 'IMO S78' => ['IMO', 'Glory S78'], 'IMO S78 NEW STYLE' => ['IMO', 'Glory S78'], 'IMO S79' => ['IMO', 'Explorer S79'], 'IMO S79 EXPLORER' => ['IMO', 'Explorer S79'], 'IMO S79 MIUI' => ['IMO', 'Explorer S79'], 'IMO S87' => ['IMO', 'Raptor S87'], 'Imo Raptor S87' => ['IMO', 'Raptor S87'], 'IMO S88' => ['IMO', 'Discovery S88'], 'IMO S89' => ['IMO', 'Miracle S89'], 'IMO S90' => ['IMO', 'Buzz S90'], 'IMO S98' => ['IMO', 'Champion S98'], 'IMO S99' => ['IMO', 'Ocean S99'], 'IMO S900' => ['IMO', 'Groovy S900'], 'IMO X2' => ['IMO', 'Normandy X2'], 'IMO X2 NORMANDY' => ['IMO', 'Normandy X2'], 'IMO TAB' => ['IMO', 'Tab', DeviceType::TABLET], 'IMO X5' => ['IMO', 'Tab X5 Mars', DeviceType::TABLET], 'IMO TAB X9' => ['IMO', 'Tab X9 Claire', DeviceType::TABLET], 'IMO Y-ONE' => ['IMO', 'Tab Y-One', DeviceType::TABLET], 'IMO Y5' => ['IMO', 'Tab Y3', DeviceType::TABLET], 'IMO Y5' => ['IMO', 'Tab Y5 i-Play', DeviceType::TABLET], 'IMO Z-ONE' => ['IMO', 'Tab Z-One', DeviceType::TABLET], 'IMO Z6' => ['IMO', 'Tab Z6 Avengers', DeviceType::TABLET], 'IMO Z7' => ['IMO', 'Tab Z7 Orion', DeviceType::TABLET], 'IMO Z8' => ['IMO', 'Tab Z8 Spin', DeviceType::TABLET], 'IMO Z9' => ['IMO', 'Tab Z9 Ice', DeviceType::TABLET], 'IMO Z10' => ['IMO', 'Tab Z10 Fortune', DeviceType::TABLET]], 'S88 DISCOVERY' => ['IMO', 'Discovery S88'], 'Im(Smart|PAD)!!' => ['ImSmart 1.40' => ['Impression', 'ImSMART 1.40'], 'ImPAD 0114' => ['Impression', 'ImPAD 0114', DeviceType::TABLET], 'ImPAD 0413' => ['Impression', 'ImPAD 0413', DeviceType::TABLET], 'ImPAD1001' => ['Impression', 'ImPAD 1001', DeviceType::TABLET], 'ImPAD1311' => ['Impression', 'ImPAD 1311', DeviceType::TABLET], 'ImPAD 1412' => ['Impression', 'ImPAD 1412', DeviceType::TABLET], 'ImPAD 1412 rev2' => ['Impression', 'ImPAD 1412', DeviceType::TABLET], 'ImPAD 2113' => ['Impression', 'ImPAD 2113', DeviceType::TABLET], 'ImPAD 2413' => ['Impression', 'ImPAD 2413', DeviceType::TABLET], 'ImPAD 3113' => ['Impression', 'ImPAD 3113', DeviceType::TABLET], 'ImPAD 3412' => ['Impression', 'ImPAD 3412', DeviceType::TABLET], 'ImPAD 4213' => ['Impression', 'ImPAD 4213', DeviceType::TABLET], 'ImPAD 4313' => ['Impression', 'ImPAD 4313', DeviceType::TABLET], 'ImPAD 6213M' => ['Impression', 'ImPAD 6213M', DeviceType::TABLET], 'ImPAD6213M v2' => ['Impression', 'ImPAD 6213M', DeviceType::TABLET], 'ImPAD 6413' => ['Impression', 'ImPAD 6413', DeviceType::TABLET], 'ImPAD 8213' => ['Impression', 'ImPAD 8213', DeviceType::TABLET], 'ImPAD 8901' => ['Impression', 'ImPAD 8901', DeviceType::TABLET], 'ImPAD 9702' => ['Impression', 'ImPAD 9702', DeviceType::TABLET], 'ImPAD9704' => ['Impression', 'ImPAD 9704', DeviceType::TABLET], 'ImPAD 9707' => ['Impression', 'ImPAD 9707', DeviceType::TABLET]], 'TX85' => ['iMuz', 'TX85', DeviceType::TABLET], 'i3000' => ['iNew', 'i3000'], 'i6000' => ['iNew', 'i6000'], 'Infinix!!' => ['Infinix BUZZ' => ['Infinix', 'Buzz X260'], 'Infinix X351' => ['Infinix', 'Surf Smart X351'], 'Infinix X352' => ['Infinix', 'Surf Smart 2 X352'], 'Infinix X400' => ['Infinix', 'Race X400'], 'Infinix X401' => ['Infinix', 'Race Lite X401'], 'Infinix X402' => ['Infinix', 'Diamond X402'], 'Infinix X450' => ['Infinix', 'Race Bolt X450'], 'Infinix X451' => ['Infinix', 'Race Bolt Q X451'], 'Infinix X452' => ['Infinix', 'Surf Goal X452'], 'Infinix X500' => ['Infinix', 'Race Eagle X500'], 'Infinix X501' => ['Infinix', 'Race Jet X501'], 'Infinix X502' => ['Infinix', 'Alpha Marvel X502'], 'Infinix X503' => ['Infinix', 'Surf Bravo X503'], 'Infinix X505' => ['Infinix', 'Race Jet X505'], 'Infinix X506' => ['Infinix', 'Zero X506'], 'Infinix X507' => ['Infinix', 'Hot X507'], 'Infinix X509' => ['Infinix', 'Zero 2 X509'], 'Infinix X510' => ['Infinix', 'Hot 2 X510'], 'Infinix X530' => ['Infinix', 'Race Max Q X530'], 'Infinix-X551' => ['Infinix', 'Hot Note X551'], 'Infinix X570' => ['Infinix', 'Alpha X570'], 'Infinix X800' => ['Infinix', 'Joypad 8 X800', DeviceType::TABLET], 'Infinix X801' => ['Infinix', 'Joypad 8S X801', DeviceType::TABLET], 'Infinix X1000' => ['Infinix', 'Joypad 10 X1000', DeviceType::TABLET]], 'IN[0-9]{3,3}!!' => ['IN260' => ['InFocus', 'IN260'], 'IN330' => ['InFocus', 'IN330'], 'IN810' => ['InFocus', 'IN810']], 'M210' => ['InFocus', 'M210'], 'M370i' => ['InFocus', 'M370'], 'Infocus!!' => ['InFocus M2' => ['InFocus', 'M2'], 'InFocus M2 3G' => ['InFocus', 'M2'], 'InFocus M2PLUS' => ['InFocus', 'M2 Plus'], 'InFocus M260' => ['InFocus', 'M260'], 'InFocus M310' => ['InFocus', 'M310'], 'InFocus M320!' => ['InFocus', 'M320'], 'InFocus M330!' => ['InFocus', 'M330'], 'InFocus M350!' => ['InFocus', 'M350'], 'InFocus M510!' => ['InFocus', 'M510'], 'InFocus M511!' => ['InFocus', 'M511'], 'InFocus M512!' => ['InFocus', 'M512'], 'InFocus M530' => ['InFocus', 'M530'], 'InFocus M810!' => ['InFocus', 'M810'], 'InFocus M812!' => ['InFocus', 'M812']], 'M009F' => ['Infotmic', 'M009F'], 'Dk1031' => ['Infotmic', 'Flytouch 3', DeviceType::TABLET], 'INHON PAPILIO G1' => ['Inhon', 'Papilio G1'], 'intki E86' => ['intki', 'E86'], 'Innos!!' => ['Innos D5C' => ['Innos', 'D5C'], 'innos D9' => ['Innos', 'D9'], 'innos D9C' => ['Innos', 'D9C'], 'innos i5' => ['Innos', 'i5'], 'innos i6' => ['Innos', 'i6'], 'INNOS I6 (DNS S4503)' => ['Innos', 'i6'], 'innos i6C' => ['Innos', 'i6C'], 'Innos i6cp' => ['Innos', 'i6CP']], 'NS-14T002' => ['Insignia', 'Flex 8', DeviceType::TABLET], '(AZ|BT)[0-9]{3,3}!!' => ['AZ210A' => ['Intel', 'AZ210A'], 'AZ210B' => ['Intel', 'AZ210B'], 'AZ510' => ['Intel', 'AZ510'], 'BT210' => ['Intel', 'BT210'], 'BT230' => ['Intel', 'BT230'], 'BT510' => ['Intel', 'BT510']], 'greenridge' => ['Intel', 'Green Ridge', DeviceType::TABLET], '(Intex )?Aqua!!' => ['Aqua 3G' => ['Intex', 'Aqua 3G'], 'Aqua 3G+' => ['Intex', 'Aqua 3G+'], 'Aqua 3G mini' => ['Intex', 'Aqua 3G mini'], 'Aqua 3G Pro' => ['Intex', 'Aqua 3G Pro'], 'Aqua 3G Strong' => ['Intex', 'Aqua 3G Strong'], 'Aqua 4G+' => ['Intex', 'Aqua 4G+'], 'Intex Aqua 3X' => ['Intex', 'Aqua 3X'], 'AQUA 4X' => ['Intex', 'Aqua 4X'], 'Intex Aqua 3.2' => ['Intex', 'Aqua 3.2'], 'AQUA 4.0' => ['Intex', 'Aqua 4.0'], 'Intex Aqua 4.5E' => ['Intex', 'Aqua 4.5E'], 'AQUA 5.0' => ['Intex', 'Aqua 5.0'], 'Aqua.Active' => ['Intex', 'Aqua Active'], 'Aqua Curve' => ['Intex', 'Aqua Curve'], 'Aqua Curve mini' => ['Intex', 'Aqua Curve Mini'], 'Intex Aqua Desire HD' => ['Intex', 'Aqua Desire HD'], 'Aqua flash' => ['Intex', 'Aqua Flash'], 'Aqua Glory' => ['Intex', 'Aqua Glory'], 'Aqua Glow' => ['Intex', 'Aqua Glow'], 'Aqua HD' => ['Intex', 'Aqua HD'], 'Intex Aqua Marvel' => ['Intex', 'Aqua Marvel'], 'Aqua LifeIII' => ['Intex', 'Aqua Life III'], 'AQUA OCTA' => ['Intex', 'Aqua Octa'], 'Aqua Power' => ['Intex', 'Aqua Power'], 'Aqua Power+' => ['Intex', 'Aqua Power+'], 'Aqua Power HD' => ['Intex', 'Aqua Power HD'], 'Aqua Power II' => ['Intex', 'Aqua Power II'], 'Aqua QWERTY' => ['Intex', 'Aqua Qwerty'], 'Aqua S' => ['Intex', 'Aqua S'], 'Aqua Sx' => ['Intex', 'Aqua Sx'], 'Aqua Slice II' => ['Intex', 'Aqua Slice II'], 'Aqua Speed' => ['Intex', 'Aqua Speed'], 'Aqua Speed HD' => ['Intex', 'Aqua Speed HD'], 'Aqua Star' => ['Intex', 'Aqua Star'], 'Aqua Star L' => ['Intex', 'Aqua Star L'], 'Aqua Star II' => ['Intex', 'Aqua Star II'], 'Aqua Star II 16GB' => ['Intex', 'Aqua Star II'], 'Aqua Star II HD' => ['Intex', 'Aqua Star II HD'], 'Aqua Star 5.0' => ['Intex', 'Aqua Star 5.0'], 'Aqua Star HD' => ['Intex', 'Aqua Star HD'], 'Aqua Star Power' => ['Intex', 'Aqua Star Power'], 'Aqua Style' => ['Intex', 'Aqua Style'], 'Aqua Style 4.0' => ['Intex', 'Aqua Style 4.0'], 'Aqua Style Mini' => ['Intex', 'Aqua Style Mini'], 'Aqua Style Pro' => ['Intex', 'Aqua Style Pro'], 'Intex Aqua Superb' => ['Intex', 'Aqua Superb'], 'Intex Aqua Swadesh' => ['Intex', 'Aqua Swadesh'], 'Aqua Trend' => ['Intex', 'Aqua Trend'], 'Aqua Trendy' => ['Intex', 'Aqua Trendy'], 'Aqua Wonder' => ['Intex', 'Aqua Wonder'], 'Aqua Wonder Quad Core' => ['Intex', 'Aqua Wonder'], 'Aqua Xtreme' => ['Intex', 'Aqua Xtreme'], 'Aqua Young' => ['Intex', 'Aqua Young'], 'Aqua i2' => ['Intex', 'Aqua i2'], 'Intex Aqua I3' => ['Intex', 'Aqua i3'], 'Aqua i-4+' => ['Intex', 'Aqua i4'], 'Aqua I-5' => ['Intex', 'Aqua i5'], 'Aqua I5' => ['Intex', 'Aqua i5'], 'Aqua i5 HD' => ['Intex', 'Aqua i5 HD'], 'Aqua i5 mini' => ['Intex', 'Aqua i5 mini'], 'Aqua I5 Octa' => ['Intex', 'Aqua i5 Octa'], 'Aqua i6' => ['Intex', 'Aqua i6'], 'Aqua i7' => ['Intex', 'Aqua i7'], 'Aqua I14' => ['Intex', 'Aqua i14'], 'Aqua i15' => ['Intex', 'Aqua i15'], 'Aqua N2' => ['Intex', 'Aqua N2'], 'Aqua N7' => ['Intex', 'Aqua N7'], 'Aqua N8' => ['Intex', 'Aqua N8'], 'Aqua N15' => ['Intex', 'Aqua N15'], 'Aqua Q1+' => ['Intex', 'Aqua Q1'], 'Aqua Q7' => ['Intex', 'Aqua Q7'], 'Aqua R3' => ['Intex', 'Aqua R3'], 'Aqua T2' => ['Intex', 'Aqua T2'], 'Aqua T3' => ['Intex', 'Aqua T3'], 'Aqua T4' => ['Intex', 'Aqua T4'], 'Aqua V+' => ['Intex', 'Aqua V+'], 'Aqua V3G' => ['Intex', 'Aqua V3G'], 'Aqua V5' => ['Intex', 'Aqua V5'], 'Aqua Y2' => ['Intex', 'Aqua Y2'], 'Aqua Y2 1GB' => ['Intex', 'Aqua Y2'], 'Aqua Y2+' => ['Intex', 'Aqua Y2+'], 'Aqua Y2 Pro' => ['Intex', 'Aqua Y2 Pro'], 'Aqua Y3' => ['Intex', 'Aqua Y3'], 'Aqua Y4' => ['Intex', 'Aqua Y3']], '(Intex )?Cloud!!' => ['Intex Cloud X+' => ['Intex', 'Cloud X'], 'INTEX CLOUD X1' => ['Intex', 'Cloud X1'], 'Cloud X2' => ['Intex', 'Cloud X2'], 'Cloud X3' => ['Intex', 'Cloud X3'], 'Intex Cloud X4' => ['Intex', 'Cloud X4'], 'Cloud X5' => ['Intex', 'Cloud X5'], 'INTEX Cloud X11' => ['Intex', 'Cloud X11'], 'Cloud X12' => ['Intex', 'Cloud X12'], 'Intex Cloud Y1' => ['Intex', 'Cloud Y1'], 'Cloud Y2' => ['Intex', 'Cloud Y2'], 'Cloud Y3' => ['Intex', 'Cloud Y3'], 'INTEX Cloud Y4' => ['Intex', 'Cloud Y4'], 'INTEX Cloud Y4+' => ['Intex', 'Cloud Y4+'], 'Cloud Y5' => ['Intex', 'Cloud Y5'], 'Intex Cloud Y7' => ['Intex', 'Cloud Y7'], 'Intex Cloud Y11' => ['Intex', 'Cloud Y11'], 'Intex Cloud y12' => ['Intex', 'Cloud Y12'], 'Cloud Y13 Plus' => ['Intex', 'Cloud Y13 Plus'], 'Cloud Y17+' => ['Intex', 'Cloud Y17 Plus'], 'Cloud Z5' => ['Intex', 'Cloud Z5']], 'INTEX IRIS-II' => ['Intex', 'Iris 2', DeviceType::TABLET], 'INQ Cloud Touch' => ['INQ', 'Cloud Touch'], 'A19S' => ['ISA', 'A19S'], 'NS-13T001' => ['Insignia', 'Flex Tablet', DeviceType::TABLET], 'IPRO i5S' => ['IPRO', 'i5S'], 'ILT-MX100' => ['iRiver', 'Tab', DeviceType::TABLET], '(iNote|itel)!!' => ['iNote beyond' => ['iTel', 'iNote beyond'], 'iNote mini' => ['iTel', 'iNote mini'], 'itel IT1351' => ['iTel', 'IT1351'], 'itel IT1351E' => ['iTel', 'IT1351E'], 'itel it1400' => ['iTel', 'IT1400'], 'itel it1500' => ['iTel', 'IT1500']], 'IVIO!!' => ['IVIO-DG20' => ['Ivio', 'DG20'], 'IVIO DE38' => ['Ivio', 'DE38']], 'iwoo i900' => ['iwoo', 'i900'], '(JIAYU|JY-)!!' => ['JIAYU F1' => ['Jiayu', 'F1'], 'JY-F1' => ['Jiayu', 'F1'], 'JY-F2' => ['Jiayu', 'F2'], 'JY-G1' => ['Jiayu', 'G1'], 'JY-G2' => ['Jiayu', 'G2'], 'JY-G2 DualCore(Standard)' => ['Jiayu', 'G2'], 'JY-G2 Plus' => ['Jiayu', 'G2 Plus'], 'JY-G2 64' => ['Jiayu', 'G2'], 'JY G2F' => ['Jiayu', 'G2F'], 'JY-G2F' => ['Jiayu', 'G2F'], 'JY-G2H' => ['Jiayu', 'G2H'], 'JY-G2L' => ['Jiayu', 'G2L'], 'JY-G2LS' => ['Jiayu', 'G2LS'], 'Jiayu G2' => ['Jiayu', 'G2'], 'Jiayu G2H' => ['Jiayu', 'G2H'], 'Jiayu G2L' => ['Jiayu', 'G2L'], 'Jiayu G2s' => ['Jiayu', 'G2 Plus'], 'JY-G3' => ['Jiayu', 'G3'], 'Jiayu G3' => ['Jiayu', 'G3'], 'JIAYU-G3' => ['Jiayu', 'G3'], 'JY-G3C' => ['Jiayu', 'G3C'], 'JY-G3N!' => ['Jiayu', 'G3N'], 'JYG3N' => ['Jiayu', 'G3N'], 'JY-G3S' => ['Jiayu', 'G3S'], 'JIAYU G3S' => ['Jiayu', 'G3S'], 'JIAYU.G3S' => ['Jiayu', 'G3S'], 'JY-G4' => ['Jiayu', 'G4'], 'JY-G4\\G5' => ['Jiayu', 'G4'], 'JY-G4 G5' => ['Jiayu', 'G4'], 'JY-G4C' => ['Jiayu', 'G4C'], 'JY G4C' => ['Jiayu', 'G4C'], 'Jiayu G4S' => ['Jiayu', 'G4S'], 'JY-G4S' => ['Jiayu', 'G4S'], 'JIAYU-G4S' => ['Jiayu', 'G4S'], 'JY-G4T' => ['Jiayu', 'G4T'], 'JY-G5' => ['Jiayu', 'G5'], 'Jiayu G5S' => ['Jiayu', 'G5S'], 'JY-G5S' => ['Jiayu', 'G5S'], 'JY-G5S+' => ['Jiayu', 'G5S+'], 'JY-G6' => ['Jiayu', 'G6'], 'JY-S1' => ['Jiayu', 'S1'], 'JY-S2' => ['Jiayu', 'S2'], 'JY-S3' => ['Jiayu', 'S3'], 'JY-S3S' => ['Jiayu', 'S3S']], 'G2S' => ['Jiayu', 'G2 Plus'], 'JT-Smart PC01' => ['Joy-IT', 'JT-Smart PC-01'], 'JJ5S+' => ['Jugate', 'JJ5S+'], 'JC-A[0-9]{3,3}!!' => ['JC-A107' => ['JuiCell', 'JC-A107'], 'JC-A109' => ['JuiCell', 'JC-A109']], 'JXD!!' => ['JXD S601WIFI' => ['JXD', 'S601 WIFI', 'media'], 'JXD V5200' => ['JXD', 'V5200', 'media'], 'JXD P200' => ['JXD', 'P200', DeviceType::TABLET], 'JXD P300' => ['JXD', 'P300', DeviceType::TABLET], 'JXD-P1000!' => ['JXD', 'P1000', DeviceType::TABLET], 'JXD-S80' => ['JXD', 'S80', DeviceType::TABLET], 'JXD-S6600!' => ['JXD', 'S6600', DeviceType::TABLET], 'JXD S7600' => ['JXD', 'S7600', DeviceType::TABLET], 'JXD-S8000' => ['JXD', 'S8000', DeviceType::TABLET], 'JXD-S9000' => ['JXD', 'S9000', DeviceType::TABLET], 'JXD-S9100' => ['JXD', 'S9100', DeviceType::TABLET]], 'A2' => ['KakaTech', 'A2'], 'Karbonn!!' => ['Karbonn A1' => ['Karbonn', 'A1'], 'Karbonn A1 Plus Champ' => ['Karbonn', 'A1'], 'Karbonn A1 1 Plus Champ' => ['Karbonn', 'A1'], 'Karbonn A1*' => ['Karbonn', 'A1'], 'Karbonn A1+ Duple' => ['Karbonn', 'A1+'], 'Karbonn A1+ Super' => ['Karbonn', 'A1+'], 'Karbonn A2' => ['Karbonn', 'A2'], 'Karbonn A2+' => ['Karbonn', 'A2+'], 'Karbonn A4' => ['Karbonn', 'A4'], 'Karbonn A5' => ['Karbonn', 'A5'], 'Karbonn A5i' => ['Karbonn', 'A5i'], 'Karbonn A5s' => ['Karbonn', 'A5s'], 'Karbonn A6' => ['Karbonn', 'A6'], 'Karbonn A6+' => ['Karbonn', 'A6+'], 'Karbonn A7*' => ['Karbonn', 'A7'], 'Karbonn A8' => ['Karbonn', 'A8'], 'Karbonn A9' => ['Karbonn', 'A9'], 'Karbonn A9*' => ['Karbonn', 'A9'], 'Karbonn A9s' => ['Karbonn', 'A9s'], 'Karbonn A9+' => ['Karbonn', 'A9+'], 'Karbonn A10' => ['Karbonn', 'A10'], 'Karbonn A11*' => ['Karbonn', 'A11'], 'Karbonn A12' => ['Karbonn', 'A12'], 'Karbonn A12*' => ['Karbonn', 'A12'], 'Karbonn A12+' => ['Karbonn', 'A12+'], 'Karbonn A14' => ['Karbonn', 'A14'], 'Karbonn A18' => ['Karbonn', 'A18'], 'Karbonn A18+' => ['Karbonn', 'A18+'], 'Karbonn A19' => ['Karbonn', 'A19'], 'Karbonn A20' => ['Karbonn', 'A20'], 'Karbonn A21!' => ['Karbonn', 'A21'], 'Karbonn A25' => ['Karbonn', 'A25'], 'Karbonn A25+' => ['Karbonn', 'A25+'], 'Karbonn A26' => ['Karbonn', 'A26'], 'KarbonnA26' => ['Karbonn', 'A26'], 'Karbonn A27+' => ['Karbonn', 'A27'], 'Karbonn A30' => ['Karbonn', 'A30'], 'Karbonn A35' => ['Karbonn', 'A35'], 'Karbonn A40' => ['Karbonn', 'A40'], 'Karbonn A50' => ['Karbonn', 'A50'], 'Karbonn A51 Lite' => ['Karbonn', 'A51 Lite'], 'Karbonn A52+' => ['Karbonn', 'A52+'], 'Karbonn A66' => ['Karbonn', 'A66'], 'Karbonn A91' => ['Karbonn', 'A91'], 'Karbonn A92Plus' => ['Karbonn', 'A92 Plus'], 'Karbonn A93' => ['Karbonn', 'A93'], 'Karbonn A108' => ['Karbonn', 'A108'], 'Karbonn A119' => ['Karbonn', 'A119'], 'Karbonn A240' => ['Karbonn', 'A240'], 'Karbonn ST52' => ['Karbonn', 'ST52', DeviceType::TABLET], 'Karbonn ST72' => ['Karbonn', 'ST72', DeviceType::TABLET]], 'TA-FONE!!' => ['TA-FONE A34' => ['Karbonn', 'Ta-Fone A34'], 'TA-FONE A34 HD' => ['Karbonn', 'Ta-Fone A34 HD'], 'TA-FONE A37' => ['Karbonn', 'Ta-Fone A37'], 'TA-FONE A37 HD' => ['Karbonn', 'Ta-Fone A37 HD'], 'TA-FONE A39 HD' => ['Karbonn', 'Ta-Fone A39 HD']], '(Karbonn|Titanium)!!' => ['Karbonn Titanium Hexa' => ['Karbonn', 'Titanium Hexa'], 'Titanium Octane' => ['Karbonn', 'Titanium Octane'], 'Titanium Octane Plus' => ['Karbonn', 'Titanium Octane Plus'], 'Titanium S1' => ['Karbonn', 'Titanium S1'], 'Titanium S1 Plus' => ['Karbonn', 'Titanium S1 Plus'], 'Karbonn Titanium S1 Plus' => ['Karbonn', 'Titanium S1 Plus'], 'Karbonn S2' => ['Karbonn', 'Titanium S2'], 'Karbonn Titanium S3' => ['Karbonn', 'Titanium S3'], 'Titanium S2 Plus' => ['Karbonn', 'Titanium S2 Plus'], 'Karbonn Titanium S4 Plus' => ['Karbonn', 'Titanium S4 Plus'], 'Titanium S5' => ['Karbonn', 'Titanium S5'], 'karbonn Titanium S5' => ['Karbonn', 'Titanium S5'], 'Karbonn S5i' => ['Karbonn', 'Titanium S5i'], 'Karbonn Titanium S5 Plus' => ['Karbonn', 'Titanium S5 Plus'], 'Karbonn Titanium S5+' => ['Karbonn', 'Titanium S5 Plus'], 'Titanium S5+!' => ['Karbonn', 'Titanium S5 Plus'], 'Titanium S5 Ultra' => ['Karbonn', 'Titanium S5 Ultra'], 'Karbonn Titanium S6' => ['Karbonn', 'Titanium S6'], 'Karbonn Titanium S9' => ['Karbonn', 'Titanium S9'], 'Titanium S10' => ['Karbonn', 'Titanium S10'], 'Titanium S15' => ['Karbonn', 'Titanium S15'], 'Titanium S19' => ['Karbonn', 'Titanium S19'], 'Karbonn TITANIUM S20' => ['Karbonn', 'Titanium S20'], 'Titanium S22' => ['Karbonn', 'Titanium S22'], 'Karbonn Titanium S25' => ['Karbonn', 'Titanium S25'], 'Titanium S35' => ['Karbonn', 'Titanium S35'], 'Titanium S99' => ['Karbonn', 'Titanium S99'], 'Karbonn Titanium S99' => ['Karbonn', 'Titanium S99'], 'Titanium S200 HD' => ['Karbonn', 'Titanium S200 HD'], 'Titanium S204' => ['Karbonn', 'Titanium Dazzle3 S204'], 'Karbonn Titanium X' => ['Karbonn', 'Titanium X']], 'A7*' => ['Karbonn', 'A7'], 'A7+' => ['Karbonn', 'A7+'], 'A11' => ['Karbonn', 'A11'], 'A21' => ['Karbonn', 'A21'], 'A55i' => ['Karbonn', 'Smart A55i'], 'A111' => ['Karbonn', 'A111'], 'Sparkle V' => ['Karbonn', 'Sparkle V'], 'ST10' => ['Karbonn', 'Smart Tab 10 Cosmic', DeviceType::TABLET], 'SmartTab1' => ['Karbonn', 'Smart Tab 1', DeviceType::TABLET], 'KB901' => ['Kaser', 'KB901', DeviceType::TABLET], '(KAZAM|Tornado|Trooper)!!' => ['KAZAM Thunder Q45' => ['KAZAM', 'Thunder Q4.5'], 'Tornado 348' => ['KAZAM', 'Tornado 348'], 'KAZAM Trooper 445L' => ['KAZAM', 'Trooper 445L'], 'KAZAM Trooper 450' => ['KAZAM', 'Trooper 450'], 'KAZAM Trooper 450L' => ['KAZAM', 'Trooper 450L'], 'KAZAM Trooper 540' => ['KAZAM', 'Trooper 540'], 'Trooper X35' => ['KAZAM', 'Trooper X3.5'], 'Trooper X40' => ['KAZAM', 'Trooper X4.0'], 'KAZAM Trooper X45' => ['KAZAM', 'Trooper X4.5'], 'KAZAM Trooper X50' => ['KAZAM', 'Trooper X5.0'], 'Trooper X55' => ['KAZAM', 'Trooper X5.5'], 'KAZAM Trooper2 50' => ['KAZAM', 'Trooper 2 5.0']], 'KENEKSI' => ['KENEKSI FIRE' => ['KENEKSI', 'Fire'], 'KENEKSI-Fire' => ['KENEKSI', 'Fire'], 'KENEKSI-Norma' => ['KENEKSI', 'Norma'], 'KENEKSI-SIGMA' => ['KENEKSI', 'Sigma'], 'KENEKSI-ZETA' => ['KENEKSI', 'Zeta']], 'Pro 10 dual core' => ['Kiano', 'Pro 10 Dual', DeviceType::TABLET], 'KIOTO 793' => ['KIOTO', '793'], 'D91' => ['KK', 'D91', DeviceType::TABLET], 'K080' => ['Kobo', 'K080', DeviceType::EREADER], 'M1050S' => ['KOCASO', 'M1050S', DeviceType::TABLET], 'SX9701W' => ['KOCASO', 'SX9701W', DeviceType::TABLET], '(KATBL|Agora)!!' => ['KATBL07AND' => ['Kogan', 'Agora'], 'KATBL10A16DA' => ['Kogan', 'Agora'], 'KATBL10A16E' => ['Kogan', 'Agora'], 'KATBL10AND' => ['Kogan', 'Agora'], 'Agora 4G' => ['Kogan', 'Agora 4G'], 'Agora HD+' => ['Kogan', 'Agora HD+'], 'Agora Quad Core' => ['Kogan', 'Agora Quad Core']], 'KOMU!!' => ['Komu Color' => ['Komu', 'Color'], 'KOMU ENERGY' => ['Komu', 'Energy'], 'KOMU-MINI' => ['Komu', 'Mini']], 'V1' => ['Konka', 'KOMI V1'], 'KONKA!!' => ['KONKA V615' => ['Konka', 'V615'], 'KONKA-V915' => ['Konka', 'V915'], 'KONKA V923' => ['Konka', 'V923'], 'KONKA V926' => ['Konka', 'V926'], 'KONKA V927' => ['Konka', 'V927'], 'KONKA V931' => ['Konka', 'V931'], 'KONKA V980' => ['Konka', 'V980'], 'KONKA V983' => ['Konka', 'V983'], 'konka W970' => ['Konka', 'W970'], 'konka W976' => ['Konka', 'W976']], 'K3' => ['Konka', 'K3'], 'W990' => ['Konka', 'W990'], 'A106' => ['koobee', 'A160'], 'Koobe!!' => ['Koobe S7 Easy tablet' => ['Koobe', 'S7 Easy tablet', DeviceType::TABLET], 'Koobe X8 Slim Quadrum tablet' => ['Koobe', 'X8 Slim Quadrum tablet', DeviceType::TABLET]], 'KPT!!' => ['KPT A5' => ['KPT', 'A5'], 'KPT A6' => ['KPT', 'A6'], 'KPT A9' => ['KPT', 'A9'], 'KPT A9PLUS' => ['KPT', 'A9+'], 'KPT A11PLUS' => ['KPT', 'A11+'], 'KPT A58T' => ['KPT', 'A58T'], 'KPT A81PLUS' => ['KPT', 'A81+'], 'KPT A88' => ['KPT', 'A88']], '(EV|KM)-[ES][0-9]{3,3}!!' => ['EV-S100' => ['Kttech', 'Take EV-S100'], 'KM-E100' => ['Kttech', 'Take LTE KM-E100'], 'KM-S120' => ['Kttech', 'Take 2 KM-S120'], 'KM-S200' => ['Kttech', 'Take Janus KM-S200'], 'KM-S220' => ['Kttech', 'Take Tachy KM-S220'], 'KM-S220H' => ['Kttech', 'Take Tachy KM-S220'], 'KM-S300' => ['Kttech', 'Take HD KM-S300'], 'KM-S330' => ['Kttech', 'Take Fit KM-S330']], 'Kurio!!' => ['Kurio4S' => ['Kurio', '4S'], 'Kurio7' => ['Kurio', '7', DeviceType::TABLET], 'Kurio7S' => ['Kurio', '7S', DeviceType::TABLET], 'Kurio-LTE' => ['Kurio', '7X', DeviceType::TABLET], 'Kurio10S' => ['Kurio', '10S', DeviceType::TABLET], 'Kurio-Lite' => ['Kurio', 'Lite', DeviceType::TABLET]], 'Kyobo mirasol eReader' => ['Kyobo', 'eReader', DeviceType::EREADER], 'ISW11K' => ['Kyocera', 'DIGNO ISW11K', 'carrier' => 'au'], 'KYL[0-9]{2,2}!!' => ['KYL21' => ['Kyocera', 'DIGNO S KYL21', 'carrier' => 'au'], 'KYL22' => ['Kyocera', 'DIGNO M KYL22', 'carrier' => 'au']], 'WX04K' => ['Kyocera', 'DIGNO Dual WX04K', 'carrier' => 'Willcom'], 'WX10K' => ['Kyocera', 'DIGNO Dual 2 WX10K', 'carrier' => 'Willcom'], 'JC-KSP8000' => ['Kyocera', 'Echo'], 'KSP8000' => ['Kyocera', 'Echo'], 'Event' => ['Kyocera', 'Event'], 'Rise' => ['Kyocera', 'Rise'], 'Torque' => ['Kyocera', 'Torque'], 'Zio' => ['Kyocera', 'Zio'], 'E6782' => ['Kyocera', 'Brigadier'], 'KYOCERA-E[0-9]{4,4}!!' => ['KYOCERA-E6560' => ['Kyocera', 'Torque'], 'KYOCERA-E6715' => ['Kyocera', 'Torque XT'], 'KYOCERA-E6762' => ['Kyocera', 'DuraForce']], '(USCC-)?C[0-9]{4,4}!!' => ['C51(20|21)!' => ['Kyocera', 'Milano'], 'C5155' => ['Kyocera', 'Rise'], 'C5170' => ['Kyocera', 'Hydro'], 'C5215' => ['Kyocera', 'Hydro Edge'], 'C5216' => ['Kyocera', 'Hydro Edge'], 'C6522' => ['Kyocera', 'Hydro XTRM'], 'C6522N' => ['Kyocera', 'Hydro XTRM'], 'USCC-C6721' => ['Kyocera', 'Hydro XTRM'], 'C6530N' => ['Kyocera', 'Hydro Life'], 'C6725' => ['Kyocera', 'Hydro Vibe'], 'C6730' => ['Kyocera', 'Hydro Icon'], 'C6750' => ['Kyocera', 'Hydro Elite']], 'M9300' => ['Kyocera', 'Echo'], 'KY[LTYV][0-9]{2,2}!!' => ['KYL23' => ['Kyocera', 'miraie KYL23', 'carrier' => 'au'], 'KYY21' => ['Kyocera', 'URBANO L01', 'carrier' => 'au'], 'KYY22' => ['Kyocera', 'URBANO L02', 'carrier' => 'au'], 'KYY23' => ['Kyocera', 'URBANO L03', 'carrier' => 'au'], 'KYY24' => ['Kyocera', 'TORQUE G01', 'carrier' => 'au'], 'KYV31' => ['Kyocera', 'URBANO V01', 'carrier' => 'au'], 'KYV32' => ['Kyocera', 'BASIO KYV32', 'carrier' => 'au'], 'KYV34' => ['Kyocera', 'TORQUE G02', 'carrier' => 'au'], 'KYV35' => ['Kyocera', 'URBANO V02', 'carrier' => 'au'], 'KYV36' => ['Kyocera', 'DIGNO rafre', 'carrier' => 'au'], 'KYT31' => ['Kyocera', 'Qua tab', DeviceType::TABLET, 'carrier' => 'au']], 'URBANO PROGRESSO' => ['Kyocera', 'URBANO PROGRESSO', 'carrier' => 'au'], '[0-9]0[0-9]KC?!!' => ['101K' => ['Kyocera', 'HONEY BEE 101K', 'carrier' => 'Softbank'], '201K' => ['Kyocera', 'HONEY BEE 201K', 'carrier' => 'Softbank'], '202K' => ['Kyocera', 'DIGNO R 202K', 'carrier' => 'Softbank'], '302KC' => ['Kyocera', 'DIGNO T 302KC', 'carrier' => 'EMOBILE'], '404KC' => ['Kyocera', 'DIGNO C 404KC', 'carrier' => 'Y! Mobile']], 'K-?Touch!!' => ['K-touch A9' => ['K-Touch', 'A9'], 'K-touch A10 Pro' => ['K-Touch', 'A10 Pro'], 'Ktouch A11' => ['K-Touch', 'A11'], 'K-touch A11plus' => ['K-Touch', 'A11+'], 'Ktouch A15' => ['K-Touch', 'A15'], 'K-Touch C666t' => ['K-Touch', 'C666'], 'K-Touch C960t' => ['K-Touch', 'C960'], 'K-Touch C966e' => ['K-Touch', 'C966'], 'K-Touch C980t' => ['K-Touch', 'C980'], 'K-Touch C986t' => ['K-Touch', 'C986'], 'K-Touch C986t+' => ['K-Touch', 'C986'], 'K-Touch C988t' => ['K-Touch', 'C988'], 'K-Touch C990' => ['K-Touch', 'C990'], 'K-Touch E7' => ['K-Touch', 'E7'], 'K-Touch E79' => ['K-Touch', 'E79'], 'K-Touch E70' => ['K-Touch', 'E70'], 'K-Touch E80' => ['K-Touch', 'E80'], 'K-Touch E88' => ['K-Touch', 'E88'], 'K-Touch E616' => ['K-Touch', 'E616'], 'K Touch E616' => ['K-Touch', 'E616'], 'K-Touch E619' => ['K-Touch', 'E619'], 'K-Touch E619+' => ['K-Touch', 'E619+'], 'K-Touch E621' => ['K-Touch', 'E621'], 'K-Touch E656' => ['K-Touch', 'E656'], 'K-Touch E688' => ['K-Touch', 'E688'], 'K-Touch E780' => ['K-Touch', 'E780'], 'K-Touch E800' => ['K-Touch', 'E800'], 'K-Touch E806' => ['K-Touch', 'E806'], 'K-Touch L820' => ['K-Touch', 'L820'], 'K-Touch Q4' => ['K-Touch', 'Q4'], 'K-Touch S2' => ['K-Touch', 'S2'], 'K-Touch S5' => ['K-Touch', 'S5'], 'K-Touch S5 Beiaigeqian' => ['K-Touch', 'S5'], 'K-Touch S5t' => ['K-Touch', 'S5t'], 'K-Touch Titan S100' => ['K-Touch', 'Titan S100'], 'K-Touch S757!' => ['K-Touch', 'S757'], 'K-Touch S787' => ['K-Touch', 'S787'], 'K-Touch T6' => ['K-Touch', 'T6'], 'K-Touch T60' => ['K-Touch', 'T60'], 'K-Touch T85+' => ['K-Touch', 'T85'], 'K-Touch T90' => ['K-Touch', 'T90'], 'K-Touch T91' => ['K-Touch', 'T91'], 'K-Touch T93' => ['K-Touch', 'T93'], 'K-Touch T96' => ['K-Touch', 'T96'], 'K-TouchT580' => ['K-Touch', 'T580'], 'K-Touch T619' => ['K-Touch', 'T619'], 'K-Touch T-619' => ['K-Touch', 'T619'], 'K-Touch T619+' => ['K-Touch', 'T619+'], 'K-Touch T621' => ['K-Touch', 'T621'], 'K-Touch T660' => ['K-Touch', 'T660'], 'K-Touch T760' => ['K-Touch', 'T760'], 'K-Touch T780' => ['K-Touch', 'T780'], 'K-Touch T780+' => ['K-Touch', 'T780+'], 'K-Touch T789' => ['K-Touch', 'T789'], 'K-Touch T800' => ['K-Touch', 'T800'], 'K-touch U2' => ['K-Touch', 'U2'], 'K-Touch U6' => ['K-Touch', 'U6'], 'K-Touch U7' => ['K-Touch', 'U7'], 'K-Touch U8' => ['K-Touch', 'U8'], 'K-Touch U9' => ['K-Touch', 'U9'], 'K-Touch U10' => ['K-Touch', 'U10'], 'K-Touch U81t' => ['K-Touch', 'U81t'], 'K-Touch U83t' => ['K-Touch', 'U83t'], 'K-Touch U86' => ['K-Touch', 'U86 Kiss'], 'K-Touch Kiss' => ['K-Touch', 'U86 Kiss'], 'K-Touch U90' => ['K-Touch', 'U90'], 'K-Touch V5' => ['K-Touch', 'V5'], 'KTouch v8' => ['K-Touch', 'V8'], 'K-Touch V8' => ['K-Touch', 'V8'], 'KTouch v9' => ['K-Touch', 'V9'], 'K-Touch V9' => ['K-Touch', 'V9'], 'K-Touch W68' => ['K-Touch', 'W68'], 'K-Touch W70' => ['K-Touch', 'W70'], 'K-Touch W88' => ['K-Touch', 'W88'], 'K-Touch W610' => ['K-Touch', 'W610'], 'K-TOUCH W610D' => ['K-Touch', 'W610D'], 'K-Touch W619!' => ['K-Touch', 'W619'], 'K-Touch W621' => ['K-Touch', 'W621'], 'K-Touch W650!' => ['K-Touch', 'W650'], 'K-Touch W655' => ['K-Touch', 'W655'], 'K-Touch W656' => ['K-Touch', 'W656'], 'K-Touch W658' => ['K-Touch', 'W658'], 'K-Touch W688' => ['K-Touch', 'W688'], 'K-Touch W700' => ['K-Touch', 'W700'], 'Ktouch w700' => ['K-Touch', 'W700'], 'K-Touch W700+' => ['K-Touch', 'W700+'], 'K-Touch W710' => ['K-Touch', 'W710'], 'K-Touch W719' => ['K-Touch', 'W719'], 'K-Touch W760' => ['K-Touch', 'W760'], 'K-Touch W780' => ['K-Touch', 'W780'], 'K-Touch W806!' => ['K-Touch', 'W806'], 'K-Touch W808' => ['K-Touch', 'W808'], 'K-Touch Kis 1' => ['K-Touch', 'Kis 1'], 'K-Touch Kis 2' => ['K-Touch', 'Kis 2'], 'K-Touch Tou ch 1' => ['K-Touch', 'Tou ch 1'], 'K-Touch Tou ch 2' => ['K-Touch', 'Tou ch 2'], 'K-Touch Tou ch2' => ['K-Touch', 'Tou ch 2'], 'K-Touch Tou ch 3' => ['K-Touch', 'Tou ch 3'], 'K-Touch Tou ch3' => ['K-Touch', 'Tou ch 3'], 'K-Touch Tou ch3c' => ['K-Touch', 'Tou ch 3 c'], 'K-Touch Tou ch3es' => ['K-Touch', 'Tou ch 3 es'], 'K-Touch Tou ch 5' => ['K-Touch', 'Tou ch 5']], 'Nibiru H1' => ['K-Touch', 'Niburu Mars One H1'], 'E650' => ['K-Touch', 'E650'], 'E780' => ['K-Touch', 'E780'], 'E800' => ['K-Touch', 'E800'], 'E815' => ['K-Touch', 'E815'], 'W606' => ['K-Touch', 'W606'], 'W619' => ['K-Touch', 'W619'], 'W686' => ['K-Touch', 'W686'], 'W700' => ['K-Touch', 'W700'], 'W732' => ['K-Touch', 'W732'], 'W800' => ['K-Touch', 'W800'], 'W806' => ['K-Touch', 'W806'], 'W808' => ['K-Touch', 'W808'], 'W810' => ['K-Touch', 'W810'], 'W880' => ['K-Touch', 'W880'], '(Lanix )?Ilium!!' => ['ILIUM L400' => ['Lanix', 'Ilium L400'], 'Ilium L820' => ['Lanix', 'Ilium L820'], 'ILIUM L900' => ['Lanix', 'Ilium L900'], 'Ilium S100' => ['Lanix', 'Ilium S100'], 'Ilium S105' => ['Lanix', 'Ilium S105'], 'ILIUM S106' => ['Lanix', 'Ilium S106'], 'Lanix Ilium S115' => ['Lanix', 'Ilium S115'], 'Ilium S115' => ['Lanix', 'Ilium S115'], 'LANIX ILIUM S120' => ['Lanix', 'Ilium S120'], 'ILIUM S120' => ['Lanix', 'Ilium S120'], 'LANIX S120-U151' => ['Lanix', 'Ilium S120'], 'ILIUM S130' => ['Lanix', 'Ilium S130'], 'Ilium S200' => ['Lanix', 'Ilium S200'], 'Lanix Ilium S210' => ['Lanix', 'Ilium S210'], 'ILIUM S215' => ['Lanix', 'Ilium S215'], 'LANIX ILIUM S220' => ['Lanix', 'Ilium S220'], 'Lanix Ilium S400' => ['Lanix', 'Ilium S400'], 'Ilium S400' => ['Lanix', 'Ilium S400'], 'Lanix ILIUM S410' => ['Lanix', 'Ilium S410'], 'Lanix Ilium S500' => ['Lanix', 'Ilium S500'], 'ILIUM S520' => ['Lanix', 'Ilium S520'], 'ILIUM S600' => ['Lanix', 'Ilium S600'], 'ILIUM S670' => ['Lanix', 'Ilium S670'], 'LANIX ILIUM S700' => ['Lanix', 'Ilium S700'], 'ILIUM S700' => ['Lanix', 'Ilium S700'], 'Ilium X200' => ['Lanix', 'Ilium X200'], 'ilium Pad E8' => ['Lanix', 'Ilium Pad E8', DeviceType::TABLET], 'ilium Pad E10' => ['Lanix', 'Ilium Pad E10', DeviceType::TABLET]], 'Lark!!' => ['Lark Evolution X2 7' => ['Lark', 'Evolution X2 7', DeviceType::TABLET], 'Lark Evolution X2 7 3G-GPS' => ['Lark', 'Evolution X2 7', DeviceType::TABLET], 'Lark FreeMe X2 7' => ['Lark', 'FreeMe X2 7', DeviceType::TABLET], 'Lark FreeMe X2 7 ver.2' => ['Lark', 'FreeMe X2 7', DeviceType::TABLET]], 'Iris!!' => ['Iris78W' => ['Lava', 'Iris 78w'], 'iris 250' => ['Lava', 'Iris 250'], 'iris310s' => ['Lava', 'Iris 310s'], 'Iris 349' => ['Lava', 'Iris 349'], 'Iris 349+' => ['Lava', 'Iris 349+'], 'Iris349i' => ['Lava', 'Iris 349i'], 'Iris349s' => ['Lava', 'Iris 349s'], 'Iris 350' => ['Lava', 'Iris 350'], 'iris 350m' => ['Lava', 'Iris 350M'], 'iris 352Flair' => ['Lava', 'Iris 352 Flair'], 'iris 352E' => ['Lava', 'Iris 352e'], 'iris353' => ['Lava', 'Iris 353'], 'iris354' => ['Lava', 'Iris 354'], 'iris 354' => ['Lava', 'Iris 354'], 'iris354e' => ['Lava', 'Iris 354e'], 'IRIS355' => ['Lava', 'Iris 355'], 'iris356' => ['Lava', 'Iris 356'], 'Iris 300' => ['Lava', 'Iris 300'], 'iris 360m' => ['Lava', 'Iris 360M'], 'iris400c' => ['Lava', 'Iris 400 Colour'], 'iris 400s' => ['Lava', 'Iris 400s'], 'iris 401e' => ['Lava', 'Iris 401e'], 'IRIS402' => ['Lava', 'Iris 402'], 'iris402+' => ['Lava', 'Iris 402'], 'iris 402e' => ['Lava', 'Iris 402e'], 'iris402e' => ['Lava', 'Iris 402e'], 'iris402P' => ['Lava', 'Iris 402P'], 'iris 404Flair' => ['Lava', 'Iris 404 Flair'], 'iris404e' => ['Lava', 'Iris 404e'], 'iris405' => ['Lava', 'Iris 405'], 'iris405+' => ['Lava', 'Iris 405+'], 'iris 406Q' => ['Lava', 'Iris 406Q'], 'iris 408e' => ['Lava', 'Iris 408e'], 'iris 412' => ['Lava', '3G 412'], 'Iris 415' => ['Lava', '3G 415'], 'iris450' => ['Lava', 'Iris 450'], 'iris 450P' => ['Lava', 'Iris 450P'], 'iris454' => ['Lava', '3G 454'], 'IRIS 455' => ['Lava', 'Iris 455'], 'iris456' => ['Lava', 'Iris 456'], 'iris458Q' => ['Lava', 'Iris 458Q'], 'iris500' => ['Lava', 'Iris 500'], 'iris 500' => ['Lava', 'Iris 500'], 'IRIS 501' => ['Lava', 'Iris 501'], 'iris502' => ['Lava', 'Iris 502'], 'iris503' => ['Lava', 'Iris 503'], 'iris503e' => ['Lava', 'Iris 503e'], 'iris504Q' => ['Lava', 'Iris 504Q'], 'iris505' => ['Lava', 'Iris 505'], 'iris506Q' => ['Lava', 'Iris 506Q'], 'iris700' => ['Lava', 'Iris 700'], 'iris708' => ['Lava', 'Iris 708'], 'iris fuel10' => ['Lava', 'Iris fuel10'], 'iris Fuel50' => ['Lava', 'Iris fuel50'], 'iris Fuel60' => ['Lava', 'Iris fuel60'], 'Iris Fuel F1' => ['Lava', 'Iris Fuel F1'], 'iris pro 20' => ['Lava', 'Iris Pro 20'], 'iris pro 30' => ['Lava', 'Iris Pro 30'], 'iris SELFIE50' => ['Lava', 'Iris selfie 50'], 'iris X1' => ['Lava', 'Iris X1'], 'iris X5' => ['Lava', 'Iris X5'], 'irisX8' => ['Lava', 'Iris X8']], '504Q' => ['Lava', 'Iris 504Q'], '504Q+' => ['Lava', 'Iris 504Q+'], '504QP' => ['Lava', 'Iris 504QP'], 'Alfa L' => ['Lava', 'Iris Alfa L'], 'N320' => ['Lava', 'Iris N320'], 'X1 Grand' => ['Lava', 'Iris X1 Grand'], 'X9' => ['Lava', 'Iris X9'], 'LAVA iris 351' => ['Lava', 'Iris 351'], 'LAVA iRIS 504q' => ['Lava', 'Iris 504Q'], 'LAVA S12' => ['Lava', 'S12'], '(XOLO )?[ABQX][0-9]{3,4}!!' => ['A500L' => ['Lava', 'XOLO A500L'], 'A500s' => ['Lava', 'XOLO A500s'], 'A500S IPS' => ['Lava', 'XOLO A500s'], 'A500s Lite' => ['Lava', 'XOLO A500s Lite'], 'XOLO A700' => ['Lava', 'XOLO A700'], 'XOLO A800' => ['Lava', 'XOLO A800'], 'XOLO A1000' => ['Lava', 'XOLO A1000'], 'XOLO B700' => ['Lava', 'XOLO B700'], 'Q500' => ['Lava', 'XOLO Q500'], 'Q500s IPS' => ['Lava', 'XOLO Q500s IPS'], 'Q510s' => ['Lava', 'XOLO Q510s'], 'Q600' => ['Lava', 'XOLO Q600'], 'Q600s' => ['Lava', 'XOLO Q600s'], 'Q610s' => ['Lava', 'XOLO Q610s'], 'Q700' => ['Lava', 'XOLO Q700'], 'XOLO Q700' => ['Lava', 'XOLO Q700'], 'XOLO Q700i' => ['Lava', 'XOLO Q700i'], 'Q700i' => ['Lava', 'XOLO Q700i'], 'Q700S' => ['Lava', 'XOLO Q700s'], 'Q700S Plus' => ['Lava', 'XOLO Q700s Plus'], 'Q710' => ['Lava', 'XOLO Q710'], 'Q800' => ['Lava', 'XOLO Q800'], 'XOLO Q800' => ['Lava', 'XOLO Q800'], 'Q800X' => ['Lava', 'XOLO Q800 X-Edition'], 'Q900' => ['Lava', 'XOLO Q900'], 'Q900S' => ['Lava', 'XOLO Q900s'], 'Q900T' => ['Lava', 'XOLO Q900T'], 'Q1000' => ['Lava', 'XOLO Q1000'], 'Xolo Q1000' => ['Lava', 'XOLO Q1000'], 'Q1000 Opus' => ['Lava', 'XOLO Q1000 Opus'], 'XOLO Q1000 Opus2!' => ['Lava', 'XOLO Q1000 Opus 2'], 'Q1000S' => ['Lava', 'XOLO Q1000s'], 'Q1000s Plus' => ['Lava', 'XOLO Q1000s Plus'], 'Q1010' => ['Lava', 'XOLO Q1010'], 'Q1010i' => ['Lava', 'XOLO Q1010i'], 'Q1011' => ['Lava', 'XOLO Q1011'], 'Q1100' => ['Lava', 'XOLO Q1100'], 'Q1200' => ['Lava', 'XOLO Q1200'], 'Q2000' => ['Lava', 'XOLO Q2000'], 'Q2000L' => ['Lava', 'XOLO Q2000L'], 'Q2100' => ['Lava', 'XOLO Q2100'], 'Q2500' => ['Lava', 'XOLO Q2500'], 'Q3000' => ['Lava', 'XOLO Q3000'], 'Xolo X500' => ['Lava', 'XOLO X500'], 'X900' => ['Lava', 'XOLO X900'], 'Xolo X900' => ['Lava', 'XOLO X900'], 'XOLO X910' => ['Lava', 'XOLO X910'], 'XOLO X1000' => ['Lava', 'XOLO X1000']], 'BLACK' => ['Lava', 'XOLO Black'], '8x-1000' => ['Lava', 'XOLO Hive 8x-1000'], 'Omega 5.0' => ['Lava', 'XOLO Omega 5.0'], 'Omega 5.5' => ['Lava', 'XOLO Omega 5.5'], 'XOLO One' => ['Lava', 'XOLO One'], 'XOLO Play' => ['Lava', 'XOLO Play'], 'XOLO T1000' => ['Lava', 'XOLO Play'], 'Play 6X-1000' => ['Lava', 'XOLO Play 6X 1000'], 'Play8X-1100' => ['Lava', 'XOLO Play 8X 1100'], 'Xolo QC800' => ['Lava', 'XOLO Tab', DeviceType::TABLET], 'R30GT' => ['Lavios', 'Revo R30GT', DeviceType::TABLET], 'leepoo!!' => ['leepoo i500' => ['Leepoo', 'i500'], 'leepoo i580' => ['Leepoo', 'i580'], 'leepoo i600' => ['Leepoo', 'i600'], 'leepoo i800' => ['Leepoo', 'i800']], 'P5' => ['Lemon', 'P5'], 'P105' => ['Lemon', 'P105'], 'Lenco!!' => ['Lenco CARTAB-920' => ['Lenco', 'CarTab 920', DeviceType::TABLET], 'Lenco CARTAB-925' => ['Lenco', 'CarTab 925', DeviceType::TABLET], 'Lenco CoolTab-70' => ['Lenco', 'CoolTab 70', DeviceType::TABLET], 'Lenco CoolTAB-72' => ['Lenco', 'CoolTab 72', DeviceType::TABLET], 'Lenco CoolTab-80' => ['Lenco', 'CoolTab 80', DeviceType::TABLET], 'Lenco KidzTab-70' => ['Lenco', 'KidzTab 70', DeviceType::TABLET], 'Lenco KidzTab-520' => ['Lenco', 'KidzTab 520', DeviceType::TABLET], 'Lenco TAB-704' => ['Lenco', 'TAB 704', DeviceType::TABLET], 'Lenco TAB-712' => ['Lenco', 'TAB 712', DeviceType::TABLET], 'Lenco TAB-813' => ['Lenco', 'TAB 813', DeviceType::TABLET], 'Lenco TAB-832' => ['Lenco', 'TAB 832', DeviceType::TABLET], 'Lenco TAB-900' => ['Lenco', 'TAB 900', DeviceType::TABLET], 'Lenco TAB-925' => ['Lenco', 'TAB 925', DeviceType::TABLET], 'Lenco TAB-1014' => ['Lenco', 'TAB 1014', DeviceType::TABLET], 'Lenco TAB-1020' => ['Lenco', 'TAB 1020', DeviceType::TABLET], 'Lenco TAB-1022' => ['Lenco', 'TAB 1022', DeviceType::TABLET], 'Lenco TAB-1030' => ['Lenco', 'TAB 1030', DeviceType::TABLET], 'Lenco TAB-9720' => ['Lenco', 'TAB 9720', DeviceType::TABLET]], 'LENCM900HZ' => ['Lenco', 'TAB 811', DeviceType::TABLET], 'TAB1011' => ['Lenco', 'TAB 1011', DeviceType::TABLET], 'TAB-1030' => ['Lenco', 'TAB 1030', DeviceType::TABLET], 'ThinkPad( Tablet)?!' => ['Lenovo', 'ThinkPad Tablet', DeviceType::TABLET], 'IdeaPad A1' => ['Lenovo', 'IdeaPad A1', DeviceType::TABLET], 'Lenovo A1-32AB0' => ['Lenovo', 'IdeaPad A1', DeviceType::TABLET], 'Lenovo A1-32AJ0' => ['Lenovo', 'IdeaPad A1', DeviceType::TABLET], 'IdeaPadA10' => ['Lenovo', 'IdeaPad A10', DeviceType::TABLET], 'K1' => ['Lenovo', 'IdeaPad K1', DeviceType::TABLET], 'Ideapad K1!' => ['Lenovo', 'IdeaPad K1', DeviceType::TABLET], 'Ideapad S10-3T' => ['Lenovo', 'IdeaPad S10-3T', DeviceType::TABLET], 'Lenovo IdeaPad Yoga 11S' => ['Lenovo', 'IdeaPad Yoga 11S', DeviceType::TABLET], 'Lenovo IdeaPad Yoga 13' => ['Lenovo', 'IdeaPad Yoga 13', DeviceType::TABLET], '(Lenovo ?)?(IdeaTab ?)?[AB][0-9]{4,4}!!' => ['IdeaTab ?A1000(-F|-G|-T)!' => ['Lenovo', 'IdeaTab A1000', DeviceType::TABLET], 'IdeaTab ?A1000(L-F)!' => ['Lenovo', 'IdeaTab A1000', DeviceType::TABLET], 'IdeaTab ?A1010(-T)!' => ['Lenovo', 'IdeaTab A1010', DeviceType::TABLET], 'IdeaTab ?A1020(-T)!' => ['Lenovo', 'IdeaTab A1020', DeviceType::TABLET], 'IdeaTab ?A1107!' => ['Lenovo', 'IdeaTab A1107', DeviceType::TABLET], 'Lenovo A2010-a' => ['Lenovo', 'IdeaTab A2010', DeviceType::TABLET], 'Lenovo A2105' => ['Lenovo', 'IdeaTab A2105', DeviceType::TABLET], 'Lenovo A2107' => ['Lenovo', 'IdeaTab A2107', DeviceType::TABLET], 'IdeaTab ?A2107(A-F|A-H)!' => ['Lenovo', 'IdeaTab A2107', DeviceType::TABLET], 'A2107A-H' => ['Lenovo', 'IdeaTab A2107', DeviceType::TABLET], 'IdeaTab ?A2109(A)!' => ['Lenovo', 'IdeaTab A2109', DeviceType::TABLET], 'A2109A' => ['Lenovo', 'IdeaTab A2109', DeviceType::TABLET], 'IdeaTab ?A2207(A-H)!' => ['Lenovo', 'IdeaTab A2207', DeviceType::TABLET], 'IdeaTab ?A3000-(F|H)!' => ['Lenovo', 'IdeaTab A3000', DeviceType::TABLET], 'Lenovo A3000-H!' => ['Lenovo', 'IdeaTab A3000', DeviceType::TABLET], 'LENOVO IdeaTab A3000-H' => ['Lenovo', 'IdeaTab A3000', DeviceType::TABLET], 'Lenovo ?A3300(-H|-HV|-GV|-T)!' => ['Lenovo', 'IdeaTab A3300', DeviceType::TABLET], 'Lenovo A3500(-F|-FL|-H|-HV)!' => ['Lenovo', 'IdeaTab A3500', DeviceType::TABLET], 'IdeaTab ?A5000-E!' => ['Lenovo', 'IdeaTab A5000', DeviceType::TABLET], 'Lenovo A5500(-F|-HV|-H|HV)?!' => ['Lenovo', 'IdeaTab A5500', DeviceType::TABLET], 'Lenovo A7600(-F|-HV|-H|H)!' => ['Lenovo', 'IdeaTab A7600', DeviceType::TABLET], 'Lenovo B6000(-F|-H)!' => ['Lenovo', 'B6000 Yoga Tablet 8', DeviceType::TABLET], 'Lenovo B8000(-F|-H)!' => ['Lenovo', 'B8000 Yoga Tablet 10', DeviceType::TABLET], 'Lenovo B8080(-F|-H|-HV)!' => ['Lenovo', 'B8080 Yoga Tablet 10', DeviceType::TABLET]], 'YOGA Tablet!!' => ['YOGA Tablet 2-830F' => ['Lenovo', 'Yoga Tablet 2 830F', DeviceType::TABLET], 'YOGA Tablet 2-830L' => ['Lenovo', 'Yoga Tablet 2 830L', DeviceType::TABLET], 'YOGA Tablet 2-830LC' => ['Lenovo', 'Yoga Tablet 2 830LC', DeviceType::TABLET], 'YOGA Tablet 2-1050F' => ['Lenovo', 'Yoga Tablet 2 1050F', DeviceType::TABLET], 'YOGA Tablet 2-1050L' => ['Lenovo', 'Yoga Tablet 2 1050L', DeviceType::TABLET], 'YOGA Tablet 2-1050LC' => ['Lenovo', 'Yoga Tablet 2 1050LC', DeviceType::TABLET], 'YOGA Tablet 2 Pro-1380F' => ['Lenovo', 'Yoga Tablet 2 Pro 1380F', DeviceType::TABLET], 'YOGA Tablet 2 Pro-1380L' => ['Lenovo', 'Yoga Tablet 2 Pro 1380L', DeviceType::TABLET]], '(Lenovo )?(Tab ?)?(2 ?)?[AS](7|8|10)!!' => ['Lenovo A7' => ['Lenovo', 'Tab A7', DeviceType::TABLET], 'Lenovo A7-60HC' => ['Lenovo', 'Tab A7', DeviceType::TABLET], 'Lenovo A10-70LC' => ['Lenovo', 'Tab A10', DeviceType::TABLET], 'Lenovo 2 A7-30F' => ['Lenovo', 'Tab 2 A7', DeviceType::TABLET], 'Lenovo 2 A7-30TC' => ['Lenovo', 'Tab 2 A7', DeviceType::TABLET], 'Tab2A7-(10|20)!' => ['Lenovo', 'Tab 2 A7', DeviceType::TABLET], 'Lenovo TAB 2 A7-30(F|GC|HC)!' => ['Lenovo', 'Tab 2 A7', DeviceType::TABLET], 'Lenovo TAB 2 A8-50F' => ['Lenovo', 'Tab 2 A8', DeviceType::TABLET], 'Lenovo TAB 2 A10-70(F|L)!' => ['Lenovo', 'Tab 2 A10', DeviceType::TABLET], 'Lenovo TAB S8-50(F|L|LC)!' => ['Lenovo', 'Tab S8', DeviceType::TABLET], 'Lenovo S8-50LC' => ['Lenovo', 'Tab S8', DeviceType::TABLET]], '(Lenovo ?)?(IdeaTab ?)?[KSV][0-9]{4,4}!!' => ['IdeaTab ?K2110A-(F)!' => ['Lenovo', 'IdeaTab K2110', DeviceType::TABLET], 'S2005A-H' => ['Lenovo', 'IdeaTab S2005', DeviceType::TABLET], 'lenovo S2005' => ['Lenovo', 'IdeaTab S2005', DeviceType::TABLET], 'IdeaTab ?S2007A-(D|F)!' => ['Lenovo', 'IdeaTab S2007', DeviceType::TABLET], 'IdeaTab ?S2010A-(D)!' => ['Lenovo', 'IdeaTab S2010', DeviceType::TABLET], 'IdeaTab ?S2109A-(F)!' => ['Lenovo', 'IdeaTab S2109', DeviceType::TABLET], 'IdeaTab ?S2110(AF|AH)!' => ['Lenovo', 'IdeaTab S2110', DeviceType::TABLET], 'IdeaTab ?A2207A-(F)!' => ['Lenovo', 'IdeaTab S2207', DeviceType::TABLET], 'Lenovo S5000' => ['Lenovo', 'IdeaTab S5000', DeviceType::TABLET], 'Lenovo S5000-(F|H)!' => ['Lenovo', 'IdeaTab S5000', DeviceType::TABLET], 'IdeaTab ?S6000L?-(F|H)!' => ['Lenovo', 'IdeaTab S6000', DeviceType::TABLET], 'Lenovo S6000-H' => ['Lenovo', 'IdeaTab S6000', DeviceType::TABLET], 'Lenovo S6000L-(F|H)!' => ['Lenovo', 'IdeaTab S6000', DeviceType::TABLET], 'LENOVO IdeaTab S6000-H' => ['Lenovo', 'IdeaTab S6000', DeviceType::TABLET], 'IdeaTab ?V2007(A|A-D-I)!' => ['Lenovo', 'IdeaTab V2007', DeviceType::TABLET], 'IdeaTab ?V2010(A)!' => ['Lenovo', 'IdeaTab V2010', DeviceType::TABLET]], 'A1 07' => ['Lenovo', 'LePad', DeviceType::TABLET], 'lepad 001b' => ['Lenovo', 'LePad', DeviceType::TABLET], 'lepad 001n' => ['Lenovo', 'LePad', DeviceType::TABLET], '(Lenovo|Lephone)!!' => ['(Lenovo |Lephone )?3GC101!' => ['Lenovo', 'LePhone 3GC101'], '(Lenovo |Lephone )?3GW100!' => ['Lenovo', 'LePhone 3GW100'], '(Lenovo |Lephone )?3GW101!' => ['Lenovo', 'LePhone 3GW101'], '(Lenovo )?S1[- ]37AH0!' => ['Lenovo', 'LePhone S1'], '(Lenovo )?S2[- ]38A(H0|T0)!' => ['Lenovo', 'LePhone S2']], 'Lenovo!!' => ['Lenovo A1000' => ['Lenovo', 'A1000'], 'Lenovo A1600-d' => ['Lenovo', 'A1600'], 'Lenovo A1900' => ['Lenovo', 'A1900'], 'Lenovo A2860!' => ['Lenovo', 'A2860'], 'Lenovo A3500' => ['Lenovo', 'A3500'], 'Lenovo A5000!' => ['Lenovo', 'A5000'], 'Lenovo A6000!' => ['Lenovo', 'A6000'], 'Lenovo A7000!' => ['Lenovo', 'A7000'], 'Lenovo A116!' => ['Lenovo', 'A116'], 'Lenovo A208!' => ['Lenovo', 'A208'], 'Lenovo A218!' => ['Lenovo', 'A218'], 'Lenovo A238!' => ['Lenovo', 'A238'], 'Lenovo A269!' => ['Lenovo', 'A269'], 'Lenovo A278!' => ['Lenovo', 'A278'], 'Lenovo ?A288!' => ['Lenovo', 'A288'], 'Lenovo ?A298!' => ['Lenovo', 'A298'], 'Lenovo A300!' => ['Lenovo', 'A300'], 'Lenovo A305!' => ['Lenovo', 'A305'], 'Lenovo A308!' => ['Lenovo', 'A308'], 'Lenovo A316!' => ['Lenovo', 'A316'], 'Lenovo A318!' => ['Lenovo', 'A318'], 'Lenovo A319!' => ['Lenovo', 'A319'], 'Lenovo A320!' => ['Lenovo', 'A320'], 'Lenovo A326!' => ['Lenovo', 'A326'], 'Lenovo A328!' => ['Lenovo', 'A328'], 'Lenovo A330!' => ['Lenovo', 'A330'], 'Lenovo A338!' => ['Lenovo', 'A338'], 'Lenovo A355!' => ['Lenovo', 'A355'], 'Lenovo A356!' => ['Lenovo', 'A356'], 'Lenovo A358!' => ['Lenovo', 'A358'], 'Lenovo A360!' => ['Lenovo', 'A360'], 'Lenovo A365!' => ['Lenovo', 'A365'], 'Lenovo A366!' => ['Lenovo', 'A366'], 'Lenovo A368!' => ['Lenovo', 'A368'], 'Lenovo A369!' => ['Lenovo', 'A369'], 'Lenovo A370!' => ['Lenovo', 'A370'], 'Lenovo A370!' => ['Lenovo', 'A370'], 'Lenovo A375!' => ['Lenovo', 'A375'], 'Lenovo A376!' => ['Lenovo', 'A376'], 'Lenovo A378!' => ['Lenovo', 'A378'], 'Lenovo A380!' => ['Lenovo', 'A380'], 'Lenovo A385!' => ['Lenovo', 'A385'], 'Lenovo A388!' => ['Lenovo', 'A388'], 'Lenovo A390!' => ['Lenovo', 'A390'], 'Lenovo A395!' => ['Lenovo', 'A395'], 'Lenovo A396!' => ['Lenovo', 'A396'], 'Lenovo A398!' => ['Lenovo', 'A398'], 'Lenovo A500!' => ['Lenovo', 'A505'], 'Lenovo A505!' => ['Lenovo', 'A500'], 'Lenovo A516!' => ['Lenovo', 'A516'], 'Lenovo A520!' => ['Lenovo', 'A520'], 'Lenovo A526!' => ['Lenovo', 'A526'], 'Lenovo A529!' => ['Lenovo', 'A529'], 'Lenovo A530!' => ['Lenovo', 'A530'], 'Lenovo A536!' => ['Lenovo', 'A536'], 'Lenovo A560!' => ['Lenovo', 'A560'], 'Lenovo A580!' => ['Lenovo', 'A580'], 'Lenovo A586!' => ['Lenovo', 'A586'], 'Lenovo ?A588!' => ['Lenovo', 'A588'], 'Lenovo A590!' => ['Lenovo', 'A590'], 'Lenovo A628!' => ['Lenovo', 'A628'], 'Lenovo A630!' => ['Lenovo', 'A630'], 'Lenovo A656!' => ['Lenovo', 'A656'], 'Lenovo A658!' => ['Lenovo', 'A658'], 'Lenovo A660!' => ['Lenovo', 'A660'], 'Lenovo A668!' => ['Lenovo', 'A668'], 'Lenovo A670!' => ['Lenovo', 'A670'], 'Lenovo A678!' => ['Lenovo', 'A678'], 'Lenovo A680!' => ['Lenovo', 'A680'], 'Lenovo A690!' => ['Lenovo', 'A690'], 'Lenovo A698!' => ['Lenovo', 'A698'], 'Lenovo A700!' => ['Lenovo', 'A700'], 'Lenovo A706!' => ['Lenovo', 'A706'], 'Lenovo A708!' => ['Lenovo', 'A708'], 'Lenovo A710!' => ['Lenovo', 'A710'], 'Lenovo A718!' => ['Lenovo', 'A718'], 'Lenovo A720!' => ['Lenovo', 'A720'], 'Lenovo A750!' => ['Lenovo', 'A750'], 'Lenovo A760!' => ['Lenovo', 'A760'], 'Lenovo A765!' => ['Lenovo', 'A765'], 'Lenovo A766!' => ['Lenovo', 'A766'], 'Lenovo A770!' => ['Lenovo', 'A770'], 'Lenovo A780!' => ['Lenovo', 'A780'], 'Lenovo A785!' => ['Lenovo', 'A785'], 'Lenovo A788!' => ['Lenovo', 'A788'], 'Lenovo A789!' => ['Lenovo', 'A789'], 'Lenovo A790!' => ['Lenovo', 'A790'], 'Lenovo A798!' => ['Lenovo', 'A798'], 'Lenovo A800!' => ['Lenovo', 'A800'], 'Lenovo A805!' => ['Lenovo', 'A805'], 'Lenovo A806!' => ['Lenovo', 'A806'], 'Lenovo A808!' => ['Lenovo', 'A808'], 'Lenovo A816!' => ['Lenovo', 'A816'], 'Lenovo ?A820!' => ['Lenovo', 'A820'], 'lenovo-A820t' => ['Lenovo', 'A820'], 'Lenovo A828!' => ['Lenovo', 'A828'], 'Lenovo A830!' => ['Lenovo', 'A830'], 'Lenovo A850!' => ['Lenovo', 'A850'], 'Lenovo A858!' => ['Lenovo', 'A858'], 'Lenovo A859!' => ['Lenovo', 'A859'], 'Lenovo A860!' => ['Lenovo', 'A860'], 'Lenovo A880!' => ['Lenovo', 'A880'], 'Lenovo A889!' => ['Lenovo', 'A889'], 'Lenovo A890!' => ['Lenovo', 'A890'], 'Lenovo A916!' => ['Lenovo', 'A916'], 'Lenovo A936!' => ['Lenovo', 'A936'], 'Lenovo A938!' => ['Lenovo', 'A938'], 'Lenovo A998!' => ['Lenovo', 'A998'], 'Lenovo A60+?!' => ['Lenovo', 'A60'], 'Lenovo A65!' => ['Lenovo', 'A65'], 'Lenovo A66!' => ['Lenovo', 'A66'], 'Lenovo A68!' => ['Lenovo', 'A68'], 'Lenovo K800' => ['Lenovo', 'K800'], 'Lenovo K860!' => ['Lenovo', 'K860'], 'Lenovo K900!' => ['Lenovo', 'K900'], 'Lenovo K910!' => ['Lenovo', 'K910'], 'Lenovo K920!' => ['Lenovo', 'K920'], 'Lenovo K80M' => ['Lenovo', 'K80'], 'Lenovo K2' => ['Lenovo', 'K2'], 'Lenovo k30' => ['Lenovo', 'K3'], 'Lenovo K30-T' => ['Lenovo', 'K3'], 'Lenovo K30-W' => ['Lenovo', 'K3'], 'Lenovo K31-t3' => ['Lenovo', 'K3'], 'Lenovo K3' => ['Lenovo', 'K3'], 'Lenovo K50a40' => ['Lenovo', 'K3 Note'], 'Lenovo K50-T5' => ['Lenovo', 'K3 Note'], 'Lenovo K6' => ['Lenovo', 'K6'], 'Lenovo N300' => ['Lenovo', 'N300', DeviceType::DESKTOP], 'Lenovo N308' => ['Lenovo', 'N308', DeviceType::DESKTOP], 'Lenovo N908' => ['Lenovo', 'N908'], 'Lenovo O3' => ['Lenovo', 'O3'], 'Lenovo P70' => ['Lenovo', 'P70'], 'Lenovo P70-A' => ['Lenovo', 'P70'], 'Lenovo P70-t' => ['Lenovo', 'P70'], 'Lenovo P90' => ['Lenovo', 'P90'], 'Lenovo P700!' => ['Lenovo', 'P700'], 'Lenovo P770!' => ['Lenovo', 'P770'], 'Lenovo-P770' => ['Lenovo', 'P770'], 'Lenovo P780!' => ['Lenovo', 'P780'], 'Lenovo S60-a' => ['Lenovo', 'S60'], 'Lenovo S60-t' => ['Lenovo', 'S60'], 'Lenovo S60-w' => ['Lenovo', 'S60'], 'Lenovo S90-A' => ['Lenovo', 'S90'], 'Lenovo S90-e' => ['Lenovo', 'S90'], 'Lenovo S90-t' => ['Lenovo', 'S90'], 'Lenovo S560' => ['Lenovo', 'S560'], 'Lenovo S580' => ['Lenovo', 'S580'], 'Lenovo S650' => ['Lenovo', 'S650'], 'Lenovo S658t' => ['Lenovo', 'S658'], 'Lenovo S660' => ['Lenovo', 'S660'], 'Lenovo S668t' => ['Lenovo', 'S668'], 'Lenovo S680' => ['Lenovo', 'S680'], 'Lenovo S686' => ['Lenovo', 'S686'], 'Lenovo S696' => ['Lenovo', 'S696'], 'Lenovo S720!' => ['Lenovo', 'S720'], 'Lenovo S750' => ['Lenovo', 'S750'], 'Lenovo S760' => ['Lenovo', 'S760'], 'Lenovo S790' => ['Lenovo', 'S790'], 'Lenovo S810!' => ['Lenovo', 'S810'], 'Lenovo S820!' => ['Lenovo', 'S820'], 'Lenovo S850!' => ['Lenovo', 'S850'], 'Lenovo S856!' => ['Lenovo', 'S856'], 'Lenovo S858!' => ['Lenovo', 'S858'], 'Lenovo S860!' => ['Lenovo', 'S860'], 'Lenovo S868t' => ['Lenovo', 'S868'], 'Lenovo S870e' => ['Lenovo', 'S870'], 'Lenovo S880!' => ['Lenovo', 'S880'], 'Lenovo S890' => ['Lenovo', 'S890'], 'Lenovo S898!' => ['Lenovo', 'S898'], 'Lenovo ?S899!' => ['Lenovo', 'S899'], 'lenovo S900i' => ['Lenovo', 'S900'], 'Lenovo ?S920!' => ['Lenovo', 'S920'], 'Lenovo S930' => ['Lenovo', 'S930'], 'Lenovo S938!' => ['Lenovo', 'S938'], 'Lenovo S939' => ['Lenovo', 'S939'], 'Lenovo S950' => ['Lenovo', 'S950'], 'Lenovo S960' => ['Lenovo', 'S960'], 'Lenovo S968!' => ['Lenovo', 'S968'], 'Lenovo W100' => ['Lenovo', 'W100'], 'Lenovo X2-(AP|CU|EU|TO)!' => ['Lenovo', 'Vibe X2'], 'Lenovo Z90!' => ['Lenovo', 'Vibe Shot'], 'Lenovo PB1-770M' => ['Lenovo', 'Phab Plus'], 'Lenovo X910' => ['Lenovo', 'X910']], 'A750' => ['Lenovo', 'A750'], 'A30t' => ['Lenovo', 'A30'], 'OPPOLenovo A60' => ['Lenovo', 'A60'], 'P700i' => ['Lenovo', 'P700i'], 'S658t' => ['Lenovo', 'S658'], 'S720i' => ['Lenovo', 'S720'], 'S880' => ['Lenovo', 'S880'], 'idea ?tv!!' => ['ideatv A21' => ['Lenovo', 'IDEA TV', DeviceType::TELEVISION], 'ideatv K82' => ['Lenovo', 'IDEA TV', DeviceType::TELEVISION], 'IDEA TV T100' => ['Lenovo', 'IDEA TV', DeviceType::TELEVISION], 'IDEA TV K91' => ['Lenovo', 'IDEA TV', DeviceType::TELEVISION], 'ideatv S9' => ['Lenovo', 'IDEA TV', DeviceType::TELEVISION], 'ideatv S31' => ['Lenovo', 'IDEA TV', DeviceType::TELEVISION], 'ideatv S51' => ['Lenovo', 'IDEA TV', DeviceType::TELEVISION], 'ideatv S52' => ['Lenovo', 'IDEA TV', DeviceType::TELEVISION], 'ideatv S61' => ['Lenovo', 'IDEA TV', DeviceType::TELEVISION]], 'LenovoTV 40S9' => ['Lenovo', 'TV 40S9', DeviceType::TELEVISION], 'LenovoTV 50S52' => ['Lenovo', 'TV 50S52', DeviceType::TELEVISION], '501LV' => ['Lenovo', 'Tab2 501LV', 'carrier' => 'Softbank'], '(BLF-)?lephone!!' => ['lephone 1800' => ['Lephone', '1800'], 'BLF-lephone 1900' => ['Lephone', '1900'], 'lephone 2800' => ['Lephone', '2800'], 'lephone 2900' => ['Lephone', '2900'], 'lephone T708' => ['Lephone', 'T708'], 'Lephone TD506' => ['Lephone', 'TD506'], 'Lephone TD8208' => ['Lephone', 'TD8208']], 'TD506' => ['Lephone', 'TD506'], 'MFC[0-9]!!' => ['MFC190BBFR' => ['Lexibook', 'Barbie Tablet', DeviceType::TABLET], 'MFC150DEX' => ['Lexibook', 'First Tablet', DeviceType::TABLET], 'MFC195FUDE' => ['Lexibook', 'Furby Tablet', DeviceType::TABLET], 'MFC195FUFR' => ['Lexibook', 'Furby Tablet', DeviceType::TABLET], 'MFC140FR1' => ['Lexibook', 'LapTab', DeviceType::TABLET], 'MFC141FR' => ['Lexibook', 'LapTab 2', DeviceType::TABLET], 'MFC162DE' => ['Lexibook', 'Power Tablet', DeviceType::TABLET], 'MFC162FR' => ['Lexibook', 'Power Tablet', DeviceType::TABLET], 'MFC180FR' => ['Lexibook', 'Tablet Advanced', DeviceType::TABLET], 'MFC181FR' => ['Lexibook', 'Tablet Advanced 2', DeviceType::TABLET], 'MFC195DCFR' => ['Lexibook', 'Tablet Disney Cars HD', DeviceType::TABLET], 'MFC195DPFR' => ['Lexibook', 'Tablet Disney Princesse HD', DeviceType::TABLET], 'MFC250FR' => ['Lexibook', 'Tablet Junior', DeviceType::TABLET], 'MFC280FR' => ['Lexibook', 'Tablet Junior 2', DeviceType::TABLET], 'MFC280DE' => ['Lexibook', 'Tablet Junior 2', DeviceType::TABLET], 'MFC270DE' => ['Lexibook', 'Tablet Junior Power Touch', DeviceType::TABLET], 'MFC270EN 09' => ['Lexibook', 'Tablet Junior Power Touch', DeviceType::TABLET], 'MFC270FR' => ['Lexibook', 'Tablet Junior Power Touch', DeviceType::TABLET], 'mfc142fr' => ['Lexibook', 'Tablet Kids', DeviceType::TABLET], 'MFC155EN 09' => ['Lexibook', 'Tablet Master', DeviceType::TABLET], 'MFC155ES' => ['Lexibook', 'Tablet Master', DeviceType::TABLET], 'MFC155FR' => ['Lexibook', 'Tablet Master', DeviceType::TABLET], 'MFC157FR' => ['Lexibook', 'Tablet Master 2', DeviceType::TABLET], 'MFC157CZ' => ['Lexibook', 'Tablet Master 2', DeviceType::TABLET], 'MFC163FR' => ['Lexibook', 'Tablet Master 3', DeviceType::TABLET], 'MFC156FR' => ['Lexibook', 'Tablet One', DeviceType::TABLET], 'MFC170FR' => ['Lexibook', 'Tablet Ultra', DeviceType::TABLET], 'MFC175FR' => ['Lexibook', 'Tablet Ultra', DeviceType::TABLET], 'MFC375FR' => ['Lexibook', 'Tablet Ultra 2', DeviceType::TABLET], 'mfc500fr' => ['Lexibook', 'Tablet XL', DeviceType::TABLET], 'MFC045FR' => ['Lexibook', 'TabTab', DeviceType::TABLET]], 'Le Pan TC802A' => ['Le Pan', 'Mini', DeviceType::TABLET], 'TC970' => ['Le Pan', 'TC970', DeviceType::TABLET], 'TC970 (Wi-Fi)' => ['Le Pan', 'TC970', DeviceType::TABLET], 'Le Pan TC1010' => ['Le Pan', 'TC1010', DeviceType::TABLET], 'Le Pan TC1020' => ['Le Pan', 'TC1020', DeviceType::TABLET], 'LePanII' => ['Le Pan', 'II', DeviceType::TABLET], 'TC975' => ['Le Pan', 'III', DeviceType::TABLET], 'Le Pan S' => ['Le Pan', 'S', DeviceType::TABLET], 'LG-AN160' => ['LG', 'Fluid'], 'LG-?AS[0-9]{3,3}!!' => ['LGAS323' => ['LG', 'L70'], 'LG-AS323' => ['LG', 'L70'], 'LG-AS680' => ['LG', 'Optimus 2'], 'LG-AS695' => ['LG', 'Optimus Plus'], 'LG-AS730' => ['LG', 'Optimus Select'], 'LG-AS750' => ['LG', 'L70'], 'LG-AS780' => ['LG', 'Optimus F7'], 'LG-AS855' => ['LG', 'Ignite'], 'LG-AS870' => ['LG', 'Optimus F5'], 'LG-AS876' => ['LG', 'L70'], 'LG-AS9(85|90)!' => ['LG', 'G3'], 'LGAS991' => ['LG', 'G4'], 'LG-AS9(91)!' => ['LG', 'G4'], 'LGAS995' => ['LG', 'G Flex 2']], 'LG-?C[0-9]{3,3}!!' => ['LG-C520' => ['LG', 'C520'], 'LG-C5(50|55)!' => ['LG', 'Optimus Chat'], 'LGC660!' => ['LG', 'Optimus Pro'], 'LG-C660!' => ['LG', 'Optimus Pro'], 'LG-C710!' => ['LG', 'Aloha'], 'LG-C729' => ['LG', 'DoublePlay'], 'LG-C800G' => ['LG', 'Eclypse']], 'LG-CX670' => ['LG', 'Optimus 3G'], 'LG-?D[0-9]{3,3}!!' => ['LG-D1(00|05|07)!' => ['LG', 'L20'], 'LG-D1(20|23|25|27)!' => ['LG', 'L30'], 'LG-D1(50|57)!' => ['LG', 'L35'], 'LG-D1(60|65|70|75|80)!' => ['LG', 'L40'], 'LG-D213!' => ['LG', 'L50 Sporty'], 'LG-D227!' => ['LG', 'L50'], 'LG-D2(80|85)!' => ['LG', 'L65'], 'LG-D2(90|95)!' => ['LG', 'L Fino'], 'LG-D3(15|17)!' => ['LG', 'F70'], 'LG-D3(20|21|25|29|30)!' => ['LG', 'L70'], 'LGD321' => ['LG', 'L70'], 'LG-D3(30|31|35)!' => ['LG', 'L Bello'], 'LG-D3(32)!' => ['LG', 'L80+'], 'LG-D3(37)!' => ['LG', 'L Prime'], 'LG-D340!' => ['LG', 'L70 Tri'], 'LG-D3(70|73|75|80|85)!' => ['LG', 'L80'], 'LG-D3(90|92|93)!' => ['LG', 'F60'], 'LG-D4(00|05|10|15)!' => ['LG', 'L90'], 'LGD500' => ['LG', 'Optimus F6'], 'LG-D5(00|05)!' => ['LG', 'Optimus F6'], 'LG-D520!' => ['LG', 'Optimus F3Q'], 'LG-D605!' => ['LG', 'Optimus L9 II'], 'LG-D6(10|18|20|25)!' => ['LG', 'G2 mini'], 'LGD618' => ['LG', 'G2 mini'], 'LG-D6(31)!' => ['LG', 'G3 Vista'], 'LG-D6(80|81|82|83|84)!' => ['LG', 'G Pro Lite'], 'LG-D6(85|86)!' => ['LG', 'G Pro Lite Dual'], 'LG-D6(90|93)!' => ['LG', 'G3 Stylus'], 'LG-D700!' => ['LG', 'Optimus L9'], 'LG-D722J!' => ['LG', 'G3 Beat'], 'LG-D7(22|24)!' => ['LG', 'G3 S'], 'LG-D7(23)!' => ['LG', 'G3 mini'], 'LG-D7(25|27)!' => ['LG', 'G3 Vigor'], 'LG-D7(28|29)!' => ['LG', 'G3 Beat'], 'LG-D8(00|01|02|03|05|06)!' => ['LG', 'G2'], 'LG-D8(20|21)!' => ['LG', 'Nexus 5'], 'LG-D8(30|37|38)!' => ['LG', 'G Pro 2'], 'LG-D8(50|51|52|55|56|58|59)!' => ['LG', 'G3'], 'LG-D8(57)!' => ['LG', 'Titan'], 'LG-D9(50|51|55|56|58|59)!' => ['LG', 'G Flex']], 'LG-DS1203' => ['LG', 'G2'], 'LG-?E[0-9]{3,3}!!' => ['LG-E400!' => ['LG', 'Optimus L3'], 'LG-E405!' => ['LG', 'Optimus L3 Dual'], 'LG-E4(10|11)!' => ['LG', 'Optimus L1 II'], 'LG-E4(15|20)!' => ['LG', 'Optimus L1 II Dual'], 'LG-E4(25|30|31)!' => ['LG', 'Optimus L3 II'], 'LG-E435!' => ['LG', 'Optimus L3 II Dual'], 'LG-E440!' => ['LG', 'Optimus L4 II'], 'LG-E445!' => ['LG', 'Optimus L4 II Dual'], 'LG-E4(50|51|60)!' => ['LG', 'Optimus L5 II'], 'LG-E455!' => ['LG', 'Optimus L5 II Dual'], 'LG-E465!' => ['LG', 'Optimus L4 II'], 'LG-E467!' => ['LG', 'Optimus L4 II Dual'], 'LG-E470!' => ['LG', 'Optimus L4 II Triple'], 'LG-E475!' => ['LG', 'Optimus L1 II Tri'], 'LG-E510!' => ['LG', 'Optimus Hub'], 'LG-E6(10|12|17)!' => ['LG', 'Optimus L5'], 'LGE610' => ['LG', 'Optimus L5'], 'LG-E6(14|15)!' => ['LG', 'Optimus L5 Dual'], 'LGE615F' => ['LG', 'Optimus L5 Dual'], 'LG-E720!' => ['LG', 'Optimus Chic'], 'LG-E730!' => ['LG', 'Optimus Sol'], 'LG-E805!' => ['LG', 'Optimus G2'], 'LG-E940!' => ['LG', 'Optimus G Pro'], 'LG-E960!' => ['LG', 'Nexus 4'], 'LG-E9(70|71|73|75|76|77|78|87)!' => ['LG', 'Optimus G'], 'LG-E9(80|81|85|86|88|89)!' => ['LG', 'Optimus G Pro']], 'LG-F[0-9]{3,3}!!' => ['LG-F100!' => ['LG', 'Optimus Vu'], 'LG-F120!' => ['LG', 'Optimus LTE Tag'], 'LG-F160!' => ['LG', 'Optimus LTE II'], 'LG-F180!' => ['LG', 'Optimus G'], 'LG-F200!' => ['LG', 'Optimus Vu II'], 'LG-F220!' => ['LG', 'Optimus GK'], 'LG-F240!' => ['LG', 'Optimus G Pro'], 'LG-F260!' => ['LG', 'Optimus LTE III'], 'LG-F300!' => ['LG', 'Vu 3'], 'LG-F310!' => ['LG', 'GX'], 'LG-F320!' => ['LG', 'G2'], 'LG-F340!' => ['LG', 'G Flex'], 'LG-F350!' => ['LG', 'G Pro 2'], 'LG-F370!' => ['LG', 'F70'], 'LG-F390!' => ['LG', 'G2 mini'], 'LG-F400!' => ['LG', 'G3'], 'LG-F410!' => ['LG', 'G3 A'], 'LG-F430!' => ['LG', 'Gx2'], 'LG-F440!' => ['LG', 'ice cream smart'], 'LG-F460!' => ['LG', 'G3 Prime'], 'LG-F470!' => ['LG', 'G3 Beat'], 'LG-F480!' => ['LG', 'Wine Smart'], 'LG-F490!' => ['LG', 'G3 Screen'], 'LG-F500!' => ['LG', 'F500'], 'LG-F510!' => ['LG', 'G Flex 2'], 'LG-F520!' => ['LG', 'AKA'], 'LG-F540!' => ['LG', 'Volt'], 'LG-F560!' => ['LG', 'G Stylo'], 'LG-F570!' => ['LG', 'band Play'], 'LG-F580!' => ['LG', 'Gentle'], 'LG-F600!' => ['LG', 'V10'], 'LG-F620!' => ['LG', 'Class']], 'LG-GT540!' => ['LG', 'Optimus'], 'LG-GW620!' => ['LG', 'GW620 Eve'], 'LG-H[0-9]{3,3}!!' => ['LG-H2(20|21|22)!' => ['LG', 'Joy'], 'LG-H3(20|24|26)!' => ['LG', 'Leon'], 'LG-H3(40|42|45)!' => ['LG', 'Leon'], 'LG-H3(43)!' => ['LG', 'Risio'], 'LG-H410!' => ['LG', 'Wine Smart'], 'LG-H4(20|22)!' => ['LG', 'Spirit'], 'LG-H4(40|41|42)!' => ['LG', 'Spirit'], 'LG-H4(43|45)!' => ['LG', 'Escape2'], 'LG-H5(00|02)!' => ['LG', 'Magna'], 'LG-H5(20|22|25)!' => ['LG', 'Magna'], 'LG-H5(40|42)!' => ['LG', 'G4 Stylus'], 'LG-H6(31|34|36)!' => ['LG', 'G Stylo'], 'LG-H6(30|35)!' => ['LG', 'G4 Stylus'], 'LG-H650!' => ['LG', 'Zero'], 'LG-H7(31)!' => ['LG', 'G4 Vigor'], 'LG-H7(35|36)!' => ['LG', 'G4s'], 'LG-H7(78|88)!' => ['LG', 'AKA'], 'LG-H8(10|11|12|15|18|19)!' => ['LG', 'G4'], 'LG-H9(50|55|59)!' => ['LG', 'G Flex 2'], 'LG-H9(00|01|60|61|62)!' => ['LG', 'V10']], 'LG-KH5200' => ['LG', 'Andro-1'], 'LG-KS1024' => ['LG', 'KS1024'], 'LG-KU[0-9]{4,4}!!' => ['LG-KU3700' => ['LG', 'Optimus One'], 'LG-KU5400!' => ['LG', 'PRADA 3.0'], 'LG-KU5900' => ['LG', 'Optimus Black'], 'LG-KU6900' => ['LG', 'Optimus Pad', DeviceType::TABLET], 'LG-KU8800' => ['LG', 'Optimus EX']], 'LG-?L[0-9]{2,3}[A-Z]!!' => ['LG-L01F' => ['LG', 'G2'], 'LGL15G!' => ['LG', 'Sunrise'], 'LG-L15G' => ['LG', 'Sunrise'], 'LGL16C!' => ['LG', 'Lucky'], 'LGL21G!' => ['LG', 'Destiny'], 'LGL22C!' => ['LG', 'Power'], 'LG-L25L' => ['LG', 'Optimus Quest'], 'LG-L30L' => ['LG', 'F70'], 'LGL31L!' => ['LG', 'Access'], 'LG-L31L' => ['LG', 'Access'], 'LGL33L!' => ['LG', 'Sunset'], 'LGL34C!' => ['LG', 'Optimus Fuel'], 'LG-L34C' => ['LG', 'Optimus Fuel'], 'LGL35G!' => ['LG', 'Optimus Logic'], 'LG-L38C!' => ['LG', 'Optimus Dynamic'], 'LGL38C!' => ['LG', 'Optimus Dynamic'], 'LGL39C!' => ['LG', 'Optimus Dynamic II'], 'LG-L40G' => ['LG', 'Optimus Extreme'], 'LGL41C!' => ['LG', 'Ultimate 2'], 'LG-L41C' => ['LG', 'Ultimate 2'], 'LG-L42G' => ['LG', 'L70'], 'LGL45C!' => ['LG', 'Optimus Net'], 'LGL55C!' => ['LG', 'Optimus Q'], 'LGL75C!' => ['LG', 'Optimus Zip'], 'LGL85C!' => ['LG', 'Optimus Black'], 'LGL86C!' => ['LG', 'Optimus Showtime'], 'LG-L95G!' => ['LG', 'L95G'], 'LG-L160L' => ['LG', 'L160L'], 'LGL996L!' => ['LG', 'G2']], 'LG-LG[0-9]{3,3}!!' => ['LG-LG730' => ['LG', 'Venice'], 'LG-LG855' => ['LG', 'Marquee'], 'LG-LG870' => ['LG', 'Optimus F7']], 'LGLK430' => ['LG', 'G Pad F 7.0', DeviceType::TABLET], 'LG-?LS[0-9]{3,3}!!' => ['LG-LS620' => ['LG', 'Realm'], 'LGLS620' => ['LG', 'Realm'], 'LG-LS660' => ['LG', 'Tribute'], 'LGLS660' => ['LG', 'Tribute'], 'LGLS665' => ['LG', 'Tribute 2'], 'LG-LS670' => ['LG', 'Optimus S'], 'LG-LS685' => ['LG', 'Optimus Net'], 'LG-LS696' => ['LG', 'Elite'], 'LG-LS700' => ['LG', 'Optimus Slider'], 'LG-LS720' => ['LG', 'Optimus F3'], 'LGLS740' => ['LG', 'F90'], 'LG-LS740' => ['LG', 'F90'], 'LGLS751' => ['LG', 'Volt 2'], 'LGLS770' => ['LG', 'G Stylo'], 'LG-LS840' => ['LG', 'Viper'], 'LG-LS855' => ['LG', 'Marquee'], 'LG-LS860' => ['LG', 'Mach'], 'LGLS885' => ['LG', 'G3 Vigor'], 'LG-LS885' => ['LG', 'G3 Vigor'], 'LG-LS970' => ['LG', 'Optimus G'], 'LG-LS980' => ['LG', 'G2'], 'LGLS990' => ['LG', 'G3'], 'LG-LS990' => ['LG', 'G3'], 'LGLS991' => ['LG', 'G4'], 'LG-LS991' => ['LG', 'G4'], 'LG-LS995' => ['LG', 'G Flex'], 'LGLS996' => ['LG', 'G Flex 2'], 'LG-LS996' => ['LG', 'G Flex 2']], 'LG-LU[0-9]{4,4}!!' => ['LG-LU3000' => ['LG', 'Optimus Mach'], 'LG-LU3100' => ['LG', 'Optimus Chic'], 'LG-LU3700' => ['LG', 'Optimus One'], 'LG-LU5400' => ['LG', 'PRADA 3.0'], 'LG-LU6200' => ['LG', 'Optimus LTE'], 'LG-LU6500' => ['LG', 'Optimus Q2'], 'LG-LU6800' => ['LG', 'Optimus Big'], 'LG-LU6900' => ['LG', 'Optimus Pad', DeviceType::TABLET], 'LG-LU8300' => ['LG', 'Optimus Pad LTE', DeviceType::TABLET]], 'LG-LW690' => ['LG', 'Optimus C'], 'LG-LW770' => ['LG', 'Regard'], 'LG-?MS[0-9]{3,3}!!' => ['LGMS323' => ['LG', 'L70'], 'LG-MS323' => ['LG', 'L70'], 'LGMS345' => ['LG', 'Leon'], 'LGMS395' => ['LG', 'F60'], 'LG-MS415' => ['LG', 'L90'], 'LGMS500' => ['LG', 'Optimus F6'], 'LG-MS500' => ['LG', 'Optimus F6'], 'LGMS631' => ['LG', 'G Stylo'], 'LG-MS659' => ['LG', 'Optimus F3'], 'LGMS659' => ['LG', 'Optimus F3'], 'LG-MS690' => ['LG', 'Optimus M'], 'LGMS769' => ['LG', 'Optimus L9'], 'LG-MS770' => ['LG', 'Motion 4G'], 'LGMS770' => ['LG', 'Motion 4G'], 'LG-MS790' => ['LG', 'Optimus F3'], 'LG-MS840' => ['LG', 'Connect 4G'], 'LG-MS870' => ['LG', 'Spirit 4G'], 'LG-MS910' => ['LG', 'Esteem'], 'LG-MS695' => ['LG', 'Optimus M+']], 'LG-P[0-9]{3,3}!!' => ['LG-P350!' => ['LG', 'Optimus Me'], 'LG-P355' => ['LG', 'P355'], 'LG-P490!' => ['LG', 'P490'], 'LG-P5(00|03|04)!' => ['LG', 'Optimus One'], 'LG-P505!' => ['LG', 'Phoenix'], 'LG-P506' => ['LG', 'Thrive'], 'LG-P509' => ['LG', 'Optimus T'], 'LG-P6(55|59)!' => ['LG', 'Optimus F3'], 'LG-P6(90|92|99)!' => ['LG', 'Optimus Net'], 'LG-P693!' => ['LG', 'P693'], 'LG-P698!' => ['LG', 'Optimus Net Dual'], 'LG-P7(00|05|08)!' => ['LG', 'Optimus L7'], 'LG-P7(10|12|13|14)!' => ['LG', 'Optimus L7 II'], 'LG-P7(15|16)!' => ['LG', 'Optimus L7 II Dual'], 'LG-P720!' => ['LG', 'Optimus Chic'], 'LG-P725' => ['LG', 'Optimus 3D Max'], 'LG-P7(60|65|68|69|78)!' => ['LG', 'Optimus L9'], 'LG-P860' => ['LG', 'P860'], 'LG-P870!' => ['LG', 'Escape'], 'LG-P875!' => ['LG', 'Optimus F5'], 'LG-P880!' => ['LG', 'Optimus 4X HD'], 'LG-P895!' => ['LG', 'Optimus Vu'], 'LG-P920!' => ['LG', 'Optimus 3D'], 'LG-P9(25|29)!' => ['LG', 'Thrill'], 'LG-P930!' => ['LG', 'Nitro HD'], 'LG-P9(35|36)!' => ['LG', 'Optimus LTE'], 'LG-P940!' => ['LG', 'PRADA 3.0'], 'LG-P970!' => ['LG', 'Optimus Black'], 'LG-P990!' => ['LG', 'Optimus 2X Speed'], 'LG-P993' => ['LG', 'Optimus 2X']], 'LG-SU[0-9]{3,3}!!' => ['LG-SU370' => ['LG', 'Optimus One'], 'LG-SU540' => ['LG', 'PRADA 3.0'], 'LG-SU640' => ['LG', 'Optimus LTE'], 'LG-SU660' => ['LG', 'Optimus 2X'], 'LG-SU760' => ['LG', 'Optimus 3D'], 'LG-SU870' => ['LG', 'Optimus 3D Cube'], 'LG-SU880' => ['LG', 'Optimus EX']], 'LGUK410' => ['LG', 'G Pad 7.0', DeviceType::TABLET], 'LG-UN350' => ['LG', 'UN350'], 'LG-?US[0-9]{3,3}!!' => ['LG-US670' => ['LG', 'Optimus U'], 'LG-US730' => ['LG', 'Splendor'], 'LG-US780' => ['LG', 'Optimus F7'], 'LGUS990!' => ['LG', 'G3'], 'LG-US990' => ['LG', 'G3'], 'LGUS995!' => ['LG', 'G Flex 2']], 'LG-V[0-9]{3,3}!!' => ['LG-V4(00|10|11)!' => ['LG', 'G Pad 7.0', DeviceType::TABLET], 'LG-V4(80|90)!' => ['LG', 'G Pad 8.0', DeviceType::TABLET], 'LG-V4(95|96|97)!' => ['LG', 'G Pad F 8.0', DeviceType::TABLET], 'LG-V498!' => ['LG', 'G Pad II 8.0', DeviceType::TABLET], 'LG-V5(00|07)!' => ['LG', 'G Pad 8.3', DeviceType::TABLET], 'LG-V510!' => ['LG', 'G Pad 8.3 (Google Edition)', DeviceType::TABLET], 'LG-V607L' => ['LG', 'G Pad II 8.0', DeviceType::TABLET], 'LG-V700!' => ['LG', 'G Pad 10.1', DeviceType::TABLET], 'LG-V9(00|01)!' => ['LG', 'Optimus Pad', DeviceType::TABLET], 'LG-V9(05|09)!' => ['LG', 'Optimus G-Slate', DeviceType::TABLET], 'LG-V930' => ['LG', 'G Pad X 10.1', DeviceType::TABLET], 'LG-V9(35|40)!' => ['LG', 'G Pad II 10.1', DeviceType::TABLET]], 'LG-VK[0-9]{3,3}!!' => ['LG-VK410' => ['LG', 'G Pad 7.0', DeviceType::TABLET], 'LG-VK700' => ['LG', 'G Pad 10.1', DeviceType::TABLET], 'LG-VK810' => ['LG', 'G Pad 8.3', DeviceType::TABLET], 'LG-VK815' => ['LG', 'G Pad X 8.3', DeviceType::TABLET]], 'LG-VN[0-9]{3,3}!!' => ['LG-VN170' => ['LG', 'VN-170'], 'LG-VN280' => ['LG', 'Extravert 2'], 'LG-VN360' => ['LG', 'Exalt']], 'LG-VM[0-9]{3,3}!!' => ['LG-VM670' => ['LG', 'Optimus V'], 'LG-VM696' => ['LG', 'Optimus Elite'], 'LG-VM701' => ['LG', 'Optimus Slider'], 'LG-VM720' => ['LG', 'Optimus F5']], 'LG-VS[0-9]{3,3}!!' => ['LG-VS410!' => ['LG', 'Optimus Zone'], 'LG-VS415!' => ['LG', 'Optimus Zone 2'], 'LG-VS450!' => ['LG', 'Optimus Exceed 2'], 'LG-VS660' => ['LG', 'Vortex'], 'LG-VS700' => ['LG', 'Enlighten'], 'LG-VS740' => ['LG', 'Ally'], 'LG-VS810' => ['LG', 'Transpyre'], 'LG-VS840' => ['LG', 'Lucid'], 'LG-VS870' => ['LG', 'Lucid 2'], 'LG-VS876' => ['LG', 'Lucid 3'], 'LG-VS880' => ['LG', 'G3 Vista'], 'LG-VS890' => ['LG', 'Enact'], 'LG-VS910' => ['LG', 'Revolution'], 'LG-VS930' => ['LG', 'Spectrum II'], 'LG-VS950' => ['LG', 'Intuition'], 'LG-VS980!' => ['LG', 'G2'], 'LG-VS985' => ['LG', 'G3'], 'LG-VS999' => ['LG', 'G4']], 'LG-X[0-9]{3,3}!!' => ['LG-X130!' => ['LG', 'L40'], 'LG-X1(35|45|47)!' => ['LG', 'L60'], 'LG-X137' => ['LG', 'L60i'], 'LG-X150' => ['LG', 'Bello 2'], 'LG-X1(55|60|65)!' => ['LG', 'Max'], 'LG-X1(70)!' => ['LG', 'Prime 2'], 'LG-X190' => ['LG', 'Ray']], 'lge-F160!' => ['LG', 'Optimus LTE II'], 'LGE-E988!' => ['LG', 'Optimus G Pro'], 'lgp-970' => ['LG', 'Optimus Black'], 'AS740' => ['LG', 'Axis'], 'AS870 4G' => ['LG', 'Optimus F5'], 'AS985' => ['LG', 'G3'], 'E900' => ['LG', 'Optimus 7'], 'GT540' => ['LG', 'Optimus GT540'], 'GW620' => ['LG', 'Eve'], 'KU9500' => ['LG', 'Optimus Z'], 'LG[LV][0-9]{2,2}!!' => ['LGL21' => ['LG', 'Optimus G LGL21', 'carrier' => 'au'], 'LGL22' => ['LG', 'isai LGL22', 'carrier' => 'au'], 'LGL23' => ['LG', 'G Flex LGL23', 'carrier' => 'au'], 'LGL24' => ['LG', 'isai FL LGL24', 'carrier' => 'au'], 'LGV31' => ['LG', 'isai VL LGV31', 'carrier' => 'au'], 'LGV32' => ['LG', 'isai vivid LGV32', 'carrier' => 'au']], 'LU2300' => ['LG', 'Optimus Q'], 'LS670' => ['LG', 'Optimus S'], 'LS740' => ['LG', 'F90'], 'MS840 4G' => ['LG', 'Connect 4G'], 'P940' => ['LG', 'PRADA 3.0'], 'P990' => ['LG', 'Optimus 2X Speed'], 'USCC-(LG)?US!!' => ['USCC-US730' => ['LG', 'Splendor'], 'USCC-US760' => ['LG', 'Genesis'], 'USCC-US780' => ['LG', 'Optimus F7'], 'USCC-US855' => ['LG', 'Optimus Black'], 'USCC-LGUS990' => ['LG', 'G3']], 'VK700' => ['LG', 'G Pad 10.1', DeviceType::TABLET], 'VK810 4G' => ['LG', 'G Pad 8.3', DeviceType::TABLET], 'VK815' => ['LG', 'G Pad X 8.3', DeviceType::TABLET], 'VM670' => ['LG', 'Optimus V'], 'VS[0-9]{3,3}!!' => ['VS415PP' => ['LG', 'Optimus Zone 2'], 'VS810PP' => ['LG', 'Transpyre'], 'VS820' => ['LG', 'Lancet'], 'VS840PP' => ['LG', 'Optimus Exceed'], 'VS840 4G' => ['LG', 'Lucid'], 'VS870 4G' => ['LG', 'Escape'], 'VS876' => ['LG', 'Lucid 3'], 'VS880' => ['LG', 'G3 Vista'], 'VS880PP' => ['LG', 'G3 Vista'], 'VS890 4G' => ['LG', 'Enact'], 'VS900-4G' => ['LG', 'Enlighten'], 'VS910 4G' => ['LG', 'Revolution 4G'], 'VS920 4G' => ['LG', 'Spectrum'], 'VS930 4G' => ['LG', 'Spectrum 2'], 'VS950 4G' => ['LG', 'Intuition'], 'VS980 4G' => ['LG', 'G2'], 'VS985 4G' => ['LG', 'G3'], 'VS986' => ['LG', 'G4'], 'VS990' => ['LG', 'V10']], 'L-0[0-9][A-Z]!!' => ['L-01D' => ['LG', 'Optimus LTE L-01D', 'carrier' => 'DoCoMo'], 'L-01E' => ['LG', 'Optimus G L-01E', 'carrier' => 'DoCoMo'], 'L-01F' => ['LG', 'G2 L-01F', 'carrier' => 'DoCoMo'], 'L-02D' => ['LG', 'PRADA phone L-02D', 'carrier' => 'DoCoMo'], 'L-02E' => ['LG', 'Optimus LIFE L-02E', 'carrier' => 'DoCoMo'], 'L-02F' => ['LG', 'WiFi STATION L-02F', 'carrier' => 'DoCoMo'], 'L-04C' => ['LG', 'Optimus chat L-04C', 'carrier' => 'DoCoMo'], 'L-04E' => ['LG', 'Optimus G Pro L-04E', 'carrier' => 'DoCoMo'], 'L-05D' => ['LG', 'Optimus it L-05D', 'carrier' => 'DoCoMo'], 'L-05E' => ['LG', 'Optimus it L-05E', 'carrier' => 'DoCoMo'], 'L-06C' => ['LG', 'Optimus Pad L-06C', DeviceType::TABLET, 'carrier' => 'DoCoMo'], 'L-06D' => ['LG', 'Optimus Vu L-06D', 'carrier' => 'DoCoMo'], 'L-06DJOJO' => ['LG', 'JOJO L-06D', 'carrier' => 'DoCoMo'], 'L-07C' => ['LG', 'Optimus bright L-07C', 'carrier' => 'DoCoMo']], '[0-9]0[0-9]LG!!' => ['401LG' => ['LG', '401LG', 'carrier' => 'Softbank'], '402LG' => ['LG', 'Spray 402LG', 'carrier' => 'Y! Mobile']], 'LG!!' => ['LG-Eve' => ['LG', 'Eve'], 'LG-G2' => ['LG', 'G2'], 'LG-G3' => ['LG', 'G3'], 'LG-G3 D855' => ['LG', 'G3'], 'LG-Optimus One P500' => ['LG', 'Optimus One'], 'LG-Optimus 2X' => ['LG', 'Optimus 2X'], 'LG-GT540 Optimus' => ['LG', 'Optimus'], 'LG-Optimus' => ['LG', 'Optimus'], 'LG-Optimus Black' => ['LG', 'Optimus Black'], 'LG-OptimusG' => ['LG', 'Optimus G'], 'LG-Optimus G' => ['LG', 'Optimus G'], 'LG-Optimus G Pro' => ['LG', 'Optimus G Pro'], 'LG-G PRO' => ['LG', 'Optimus G Pro'], 'LG-Optimus GK' => ['LG', 'Optimus GK'], 'LG-Optimus L3!' => ['LG', 'Optimus L3'], 'LG-Optimus LTE2' => ['LG', 'Optimus LTE2'], 'LG-Optimus Net' => ['LG', 'Optimus Net'], 'LG-Optimus One' => ['LG', 'Optimus One'], 'LG-Optimus V' => ['LG', 'Optimus V'], 'LG-OPTIMUS-L5!' => ['LG', 'Optimus L7'], 'LG-optimus L7' => ['LG', 'Optimus L7'], 'LG-Swift L9' => ['LG', 'Optimus L9'], 'LG-OPTIMUS HD LTE' => ['LG', 'Optimus HD'], 'LG-OPTIMUS LTE HD' => ['LG', 'Optimus HD'], 'LG-Optimus Pad L-06C' => ['LG', 'Optimus Pad', DeviceType::TABLET], 'LG-vortex' => ['LG', 'Vortex']], 'Ally' => ['LG', 'Ally'], 'Optimus!!' => ['Optimus' => ['LG', 'Optimus'], 'OptimusBlack' => ['LG', 'Optimus Black'], 'Optimus G' => ['LG', 'Optimus G'], 'Optimus G Pro' => ['LG', 'Optimus G Pro'], 'Optimus Me' => ['LG', 'Optimus Me'], 'optimus me p350' => ['LG', 'Optimus Me'], 'Optimus Net' => ['LG', 'Optimus Net'], 'Optimus One' => ['LG', 'Optimus One'], 'Optimus Pro' => ['LG', 'Optimus Pro'], 'Optimus 2X' => ['LG', 'Optimus 2X'], 'Optimus 2x' => ['LG', 'Optimus 2X'], 'Optimus 4X HD' => ['LG', 'Optimus 4X HD'], 'OptimusX4HD' => ['LG', 'Optimus 4X HD'], 'Optimus4XHD' => ['LG', 'Optimus 4X HD'], 'Optimusx4' => ['LG', 'Optimus X4']], 'IS11LG' => ['LG', 'Optimus X IS11LG', 'carrier' => 'au'], 'Vortex' => ['LG', 'Vortex'], 'LDK-ICK v1.4' => ['LG', 'Esteem'], 'Prada 3.0' => ['LG', 'PRADA 3.0'], 'LG-Google TV!!' => ['LG-Google TV' => ['LG', 'G2 series', DeviceType::TELEVISION, Flag::GOOGLETV], 'LG-Google TV TV' => ['LG', 'G2 series', DeviceType::TELEVISION, Flag::GOOGLETV], 'LG-Google TV G3' => ['LG', 'G3 series', DeviceType::TELEVISION, Flag::GOOGLETV], 'LG-Google TV G3 KR' => ['LG', 'G3 series', DeviceType::TELEVISION, Flag::GOOGLETV], 'LG-Google TV G3 TV' => ['LG', 'G3 series', DeviceType::TELEVISION, Flag::GOOGLETV], 'LG-Google TV G3 KR TV' => ['LG', 'G3 series', DeviceType::TELEVISION, Flag::GOOGLETV]], 'LG-ANDROID MINI BOX' => ['LG', 'Android Mini-Box', DeviceType::TELEVISION], 'SH940C-LN' => ['LG', 'Smartbox HD', DeviceType::TELEVISION], 'SH940C-LN TV' => ['LG', 'Smartbox HD', DeviceType::TELEVISION], 'TI320-DU' => ['LG', 'U+ tv G', DeviceType::TELEVISION, Flag::GOOGLETV], 'TI320-DU TV' => ['LG', 'U+ tv G', DeviceType::TELEVISION, Flag::GOOGLETV], 'SFR-G8800' => ['LG', 'SFR-G8800', DeviceType::TELEVISION, Flag::GOOGLETV], 'SFR-G8800 TV' => ['LG', 'SFR-G8800', DeviceType::TELEVISION, Flag::GOOGLETV], 'E731' => ['Logicom', 'E731', DeviceType::TABLET], 'E812' => ['Logicom', 'E812', DeviceType::TABLET], 'E912' => ['Logicom', 'E912', DeviceType::TABLET], 'E1031' => ['Logicom', 'E1031', DeviceType::TABLET], 'TAB950' => ['Logicom', 'TAB950', DeviceType::TABLET], 'TAB1062' => ['Logicom', 'TAB1062', DeviceType::TABLET], 'aTab9.7 IPS' => ['M-Tech', 'aTab 9.7', DeviceType::TABLET], 'TAB192' => ['Majestic', 'TAB-192', DeviceType::TABLET], 'Malata!!' => ['MALATA I5' => ['Malata', 'I5'], 'MALATA I8' => ['Malata', 'I8'], 'MALATA I10' => ['Malata', 'I10'], 'MALATA I60' => ['Malata', 'I60'], 'MALATA TD60' => ['Malata', 'TD60'], 'MALATA TD95' => ['Malata', 'TD95'], 'MALATA S501' => ['Malata', 'S501'], 'Malata SMBA1002' => ['Malata', 'Tablet SMB-A1002', DeviceType::TABLET], 'Malata SMBA9701' => ['Malata', 'Tablet SMB-A9701', DeviceType::TABLET]], 'T6' => ['Malata', 'Zpad T6', DeviceType::TABLET], 'MID[0-9]!!' => ['MID05V2' => ['Manta', 'Power Tab', DeviceType::TABLET], 'MID701' => ['Manta', 'Power Tab Basic', DeviceType::TABLET], 'MID704' => ['Manta', 'Power Tab 7', DeviceType::TABLET], 'MID705' => ['Manta', 'Power Tab', DeviceType::TABLET], 'MID706A' => ['Manta', 'Duo Power', DeviceType::TABLET], 'MID801' => ['Manta', 'Duo Power HD', DeviceType::TABLET], 'MID9701' => ['Manta', 'Duo Power 9.7', DeviceType::TABLET], 'MID1001' => ['Manta', 'Power Tab 10.1 HD', DeviceType::TABLET]], 'Masstel!!' => ['Masstel M11' => ['Masstel', 'M11'], 'Masstel-M11' => ['Masstel', 'M11'], 'Masstel M15' => ['Masstel', 'M15'], 'Masstel M25' => ['Masstel', 'M25'], 'Masstel M120' => ['Masstel', 'M120'], 'Masstel M250' => ['Masstel', 'M250'], 'Masstel M320' => ['Masstel', 'M320'], 'Masstel Tab 700' => ['Masstel', 'Tab 700', DeviceType::TABLET], 'Masstel Tab 720' => ['Masstel', 'Tab 720', DeviceType::TABLET], 'Masstel Tab 720i' => ['Masstel', 'Tab 720i', DeviceType::TABLET], 'Masstel Tab 740' => ['Masstel', 'Tab 740', DeviceType::TABLET], 'Masstel Tab 750' => ['Masstel', 'Tab 750', DeviceType::TABLET], 'Masstel Tab 840' => ['Masstel', 'Tab 840', DeviceType::TABLET], 'Masstel Tab 850' => ['Masstel', 'Tab 850', DeviceType::TABLET]], 'MASTONE!!' => ['MASTONE G3' => ['Mastone', 'G3'], 'MASTONE G4' => ['Mastone', 'G4'], 'MASTONE G9' => ['Mastone', 'G9'], 'MASTONE G13' => ['Mastone', 'G13'], 'MASTONE G15' => ['Mastone', 'G15'], 'MASTONE W16' => ['Mastone', 'W16']], 'M-270' => ['Maylong', 'M-270', DeviceType::TABLET], 'M70' => ['Maxsun', 'M70', DeviceType::TABLET], 'Maxtron!!' => ['Maxtron AMOR Ⅱ' => ['Maxtron', 'Amor 2'], 'Maxtron Diamond' => ['Maxtron', 'Diamond'], 'Maxtron Venus' => ['Maxtron', 'Venus'], 'Maxtron T1' => ['Maxtron', 'T1', DeviceType::TABLET]], 'M\\-PP!!' => ['M-PPxG400' => ['Mediacom', 'PhonePad Duo G400'], 'M-PPAG500' => ['Mediacom', 'PhonePad Duo G500'], 'M-PPBG500' => ['Mediacom', 'PhonePad Duo G500'], 'M-PPCG500' => ['Mediacom', 'PhonePad Duo G500'], 'M-PPxG501' => ['Mediacom', 'PhonePad Duo G501'], 'M-PP2G530' => ['Mediacom', 'PhonePad Duo G530'], 'M-PPAG550' => ['Mediacom', 'PhonePad Duo G550'], 'M-PPG700' => ['Mediacom', 'PhonePad Duo G700'], 'M-PPG702' => ['Mediacom', 'PhonePad Duo G702'], 'M-PPxS470' => ['Mediacom', 'PhonePad Duo S470'], 'M-PP2S500' => ['Mediacom', 'PhonePad Duo S500'], 'M-PP2S500B' => ['Mediacom', 'PhonePad Duo S500'], 'M-PP2S500C' => ['Mediacom', 'PhonePad Duo S500'], 'M-PPxS501' => ['Mediacom', 'PhonePad Duo S501'], 'M-PPxS531' => ['Mediacom', 'PhonePad Duo S531'], 'M-PP2S550' => ['Mediacom', 'PhonePad Duo S550'], 'M-PPxS551U' => ['Mediacom', 'PhonePad Duo S551'], 'M-PP2S650' => ['Mediacom', 'PhonePad Duo S650'], 'M-PP2S650C' => ['Mediacom', 'PhonePad Duo S650'], 'M-PPAX470U' => ['Mediacom', 'PhonePad Duo X470'], 'M PPAX510U' => ['Mediacom', 'PhonePad Duo X510'], 'M-PPxX520U' => ['Mediacom', 'PhonePad Duo X520']], 'M\\-MP!!' => ['M-MP5303G' => ['Mediacom', 'SmartPad Mini Mobile', DeviceType::TABLET], 'M-MP705I' => ['Mediacom', 'SmartPad 705i', DeviceType::TABLET], 'M-MP706I' => ['Mediacom', 'SmartPad 706i', DeviceType::TABLET], 'M-MP707i' => ['Mediacom', 'SmartPad 707i', DeviceType::TABLET], 'M-MP711i' => ['Mediacom', 'SmartPad 711i', DeviceType::TABLET], 'M-MP715I' => ['Mediacom', 'SmartPad 715i', DeviceType::TABLET], 'M-MP720I' => ['Mediacom', 'SmartPad 720i', DeviceType::TABLET], 'M-MP722I' => ['Mediacom', 'SmartPad 722i', DeviceType::TABLET], 'M-MP815I' => ['Mediacom', 'SmartPad 815i', DeviceType::TABLET], 'M-MP855i' => ['Mediacom', 'SmartPad 855i', DeviceType::TABLET], 'M-MP860S2' => ['Mediacom', 'SmartPad 860 S2', DeviceType::TABLET], 'M-MP85S23G' => ['Mediacom', 'SmartPad 875 S2', DeviceType::TABLET], 'M-MP875S2' => ['Mediacom', 'SmartPad 875 S2', DeviceType::TABLET], 'M-MP917I' => ['Mediacom', 'SmartPad 917i', DeviceType::TABLET], 'M-MP927I' => ['Mediacom', 'SmartPad 927i', DeviceType::TABLET], 'M-MP940M' => ['Mediacom', 'SmartPad 940', DeviceType::TABLET], 'M-MP1010i' => ['Mediacom', 'SmartPad 1010i', DeviceType::TABLET], 'M-MP102S2B' => ['Mediacom', 'SmartPad 102 S2', DeviceType::TABLET], 'M-MP102S2W' => ['Mediacom', 'SmartPad 102 S2', DeviceType::TABLET], 'M-MP1040S2' => ['Mediacom', 'SmartPad 10.1 S2', DeviceType::TABLET], 'M-MP10S4' => ['Mediacom', 'SmartPad 10.1 S4', DeviceType::TABLET], 'M-MP12S4' => ['Mediacom', 'SmartPad 10.1 S4', DeviceType::TABLET], 'M-MP1040M' => ['Mediacom', 'SmartPad 10.1 HD S4', DeviceType::TABLET], 'M-MP1040MC' => ['Mediacom', 'SmartPad 10.1 HD S4', DeviceType::TABLET], 'M-MP710GO' => ['Mediacom', 'SmartPad 7.0 Go', DeviceType::TABLET], 'M-MP720GO' => ['Mediacom', 'SmartPad 7.0 Go', DeviceType::TABLET], 'M-MP726GOx' => ['Mediacom', 'SmartPad 7.0 Go', DeviceType::TABLET], 'M-MP740GOx' => ['Mediacom', 'SmartPad 7.0 Go', DeviceType::TABLET], 'M-MP720M' => ['Mediacom', 'SmartPad 7.0 Mobile', DeviceType::TABLET], 'M-MP721M' => ['Mediacom', 'SmartPad 7.0 Mobile', DeviceType::TABLET], 'M-MP722M' => ['Mediacom', 'SmartPad 7.0 Mobile', DeviceType::TABLET], 'M-MP75S23G' => ['Mediacom', 'SmartPad 7.0 S2', DeviceType::TABLET], 'M-MP7S2A3G' => ['Mediacom', 'SmartPad 7.0 S2', DeviceType::TABLET], 'M-MP7S2B3G' => ['Mediacom', 'SmartPad 7.0 S2', DeviceType::TABLET], 'M-MP7S2D3G' => ['Mediacom', 'SmartPad 7.0 S2', DeviceType::TABLET], 'M-MP7S2K3G' => ['Mediacom', 'SmartPad 7.0 S2', DeviceType::TABLET], 'M-MP7S4A3G' => ['Mediacom', 'SmartPad 7.0 S4', DeviceType::TABLET], 'M-MP840M' => ['Mediacom', 'SmartPad 8.0 Mobile', DeviceType::TABLET], 'M-MP842M' => ['Mediacom', 'SmartPad 8.0 Mobile', DeviceType::TABLET], 'M-MP876S2' => ['Mediacom', 'SmartPad 8.0 S2', DeviceType::TABLET], 'M-MP8S23G' => ['Mediacom', 'SmartPad 8.0 S2', DeviceType::TABLET], 'M-MP8S2A3G' => ['Mediacom', 'SmartPad 8.0 S2', DeviceType::TABLET], 'M-MP8S2B3G' => ['Mediacom', 'SmartPad 8.0 S2', DeviceType::TABLET], 'M-MP82S4' => ['Mediacom', 'SmartPad 8.0 S4', DeviceType::TABLET], 'M-MP84S4' => ['Mediacom', 'SmartPad 8.0 S4', DeviceType::TABLET], 'M-MP8S4A3G' => ['Mediacom', 'SmartPad 8.0 S4', DeviceType::TABLET], 'M-MP8S4B3G' => ['Mediacom', 'SmartPad 8.0 S4', DeviceType::TABLET], 'M-MP8PA3G' => ['Mediacom', 'SmartPad 8.0 HD Pro', DeviceType::TABLET], 'M-MP9S4A3G' => ['Mediacom', 'SmartPad 9.7 S4', DeviceType::TABLET], 'M-MP980S4' => ['Mediacom', 'SmartPad 9.7 HD S4', DeviceType::TABLET], 'M-MP99S4' => ['Mediacom', 'SmartPad 9.7 HD S4', DeviceType::TABLET], 'M-MP101S2' => ['Mediacom', 'SmartPad 10.1 S2', DeviceType::TABLET], 'M-MP1041S2' => ['Mediacom', 'SmartPad 10.1 S2', DeviceType::TABLET], 'M-MP1051S2' => ['Mediacom', 'SmartPad 10.1 S2', DeviceType::TABLET], 'M-MP1S2A3G' => ['Mediacom', 'SmartPad 10.1 S2', DeviceType::TABLET], 'M-MP1S4A3G' => ['Mediacom', 'SmartPad 10.1 S4', DeviceType::TABLET], 'M-MP1S4B3G' => ['Mediacom', 'SmartPad 10.1 S4', DeviceType::TABLET], 'M-MP10PA' => ['Mediacom', 'SmartPad 10.1 HD Pro', DeviceType::TABLET], 'M-MP10PA3G' => ['Mediacom', 'SmartPad 10.1 HD Pro', DeviceType::TABLET], 'M-MPI7A3G' => ['Mediacom', 'SmartPad i7', DeviceType::TABLET]], 'M\\-IPRO!!' => ['M-IPRO110B' => ['Mediacom', 'SmartPad 8.0 HD iPro110', DeviceType::TABLET], 'M-IPRO800B' => ['Mediacom', 'SmartPad 8.0 HD iPro800', DeviceType::TABLET], 'M-IPRO810B' => ['Mediacom', 'SmartPad 8.0 HD iPro810', DeviceType::TABLET], 'M-IPRO810W' => ['Mediacom', 'SmartPad 8.0 HD iPro810', DeviceType::TABLET]], 'MP[0-9]{3,3}C!!' => ['MP705C' => ['Mediacom', 'SmartPad 705c', DeviceType::TABLET], 'MP810C' => ['Mediacom', 'SmartPad 810c', DeviceType::TABLET], 'MP907C' => ['Mediacom', 'SmartPad 907c', DeviceType::TABLET]], 'STM[0-9]{3,3}H!!' => ['STM712HCZ' => ['Mediacom', 'SmartPad 712c', DeviceType::TABLET], 'STM722HC' => ['Mediacom', 'SmartPad 722c', DeviceType::TABLET], 'STM722HCZ' => ['Mediacom', 'SmartPad 722c', DeviceType::TABLET], 'STM803HC' => ['Mediacom', 'SmartPad 810c', DeviceType::TABLET]], 'SmartPad!!' => ['SmartPad7503G' => ['Mediacom', 'SmartPad 750', DeviceType::TABLET], 'SmartPad810c' => ['Mediacom', 'SmartPad 810c', DeviceType::TABLET], 'SmartPad 852i' => ['Mediacom', 'SmartPad 825i', DeviceType::TABLET], 'SmartPad870' => ['Mediacom', 'SmartPad 870 S2', DeviceType::TABLET], 'Smartpad 910i aka Teclast A10T' => ['Mediacom', 'SmartPad 910i', DeviceType::TABLET], 'SmartPad 95s23G' => ['Mediacom', 'SmartPad 950 S2', DeviceType::TABLET], 'SmartPad970s2' => ['Mediacom', 'SmartPad 970 S2', DeviceType::TABLET], 'SmartPad970s23G' => ['Mediacom', 'SmartPad 970 S2', DeviceType::TABLET], 'SmartPad1010i' => ['Mediacom', 'SmartPad 1010i', DeviceType::TABLET], 'SmartPad 85S23G' => ['Mediacom', 'SmartPad 8.0 S2', DeviceType::TABLET]], 'Mediacom 810C' => ['Mediacom', 'SmartPad 810c', DeviceType::TABLET], 'Xteam Smartpad 810c' => ['Mediacom', 'SmartPad 810c', DeviceType::TABLET], 'Xteam 4.8 Smartpad 810c' => ['Mediacom', 'SmartPad 810c', DeviceType::TABLET], '932i' => ['Mediacom', 'SmartPad 932i', DeviceType::TABLET], 'MT70[0-9]{2,2}!!' => ['MT7000' => ['Mediadroid', 'MASTER-MID GPS', DeviceType::TABLET], 'MT7001' => ['Mediadroid', 'ENGAGE HQ PRO', DeviceType::TELEVISION], 'MT7002' => ['Mediadroid', 'ENGAGE HQ', DeviceType::TELEVISION], 'MT7003' => ['Mediadroid', 'IMPERIUS'], 'MT7004' => ['Mediadroid', 'CASSIUS', DeviceType::TABLET], 'MT7005' => ['Mediadroid', 'IMPERIUS AERO'], 'MT7005' => ['Mediadroid', 'IMPERIUS 4.3 HQ'], 'MT7007' => ['Mediadroid', 'IMPERIUS II'], 'MT7008' => ['Mediadroid', 'IMPERIUS N3XT'], 'MT7009' => ['Mediadroid', 'IMPERIUS SEVEN 3G', DeviceType::TABLET], 'MT7010' => ['Mediadroid', 'IMPERIUS TAB 10 LT', DeviceType::TABLET], 'MT7011' => ['Mediadroid', 'IMPERIUS TAB 10', DeviceType::TABLET], 'MT7012' => ['Mediadroid', 'IMPERIUS TAB 10 3G', DeviceType::TABLET], 'MT7013' => ['Mediadroid', 'IMPERIUS EN3RGY'], 'MT7014' => ['Mediadroid', 'IMPERIUS AERO SLIM'], 'MT7015' => ['Mediadroid', 'IMPERIUS MINI'], 'MT7017' => ['Mediadroid', 'IMPERIUS ALPHA']], 'MTK6516' => ['Mediatek', 'MTK6516'], '(MEDION|(MD )?LIFETAB)!!' => ['MEDION Smartphone LIFE E3501' => ['Medion', 'Life E3501'], 'MEDION E4001' => ['Medion', 'E4001'], 'MEDION E4002' => ['Medion', 'E4002'], 'MEDION E4005' => ['Medion', 'E4005'], 'MEDION E4502' => ['Medion', 'E4502'], 'MEDION E4503' => ['Medion', 'E4503'], 'MEDION E4506' => ['Medion', 'E4506'], 'LIFETAB E7310' => ['Medion', 'Lifetab E7310', DeviceType::TABLET], 'LIFETAB E7312' => ['Medion', 'Lifetab E7312', DeviceType::TABLET], 'LIFETAB E7316' => ['Medion', 'Lifetab E7316', DeviceType::TABLET], 'LIFETAB E723X' => ['Medion', 'Lifetab E723X', DeviceType::TABLET], 'LIFETAB E732X' => ['Medion', 'Lifetab E732X', DeviceType::TABLET], 'LIFETAB E733X' => ['Medion', 'Lifetab E733X', DeviceType::TABLET], 'LIFETAB E10310' => ['Medion', 'Lifetab E10310', DeviceType::TABLET], 'LIFETAB E10312' => ['Medion', 'Lifetab E10312', DeviceType::TABLET], 'LIFETAB E10316' => ['Medion', 'Lifetab E10316', DeviceType::TABLET], 'LIFETAB E10320' => ['Medion', 'Lifetab E10320', DeviceType::TABLET], 'LIFETAB P733X' => ['Medion', 'Lifetab P733X', DeviceType::TABLET], 'LIFETAB P831X' => ['Medion', 'Lifetab P831X', DeviceType::TABLET], 'LIFETAB P831X.2' => ['Medion', 'Lifetab P831X', DeviceType::TABLET], 'LIFETAB P891X' => ['Medion', 'Lifetab P891X', DeviceType::TABLET], 'LIFETAB P1034X' => ['Medion', 'Lifetab P1034X', DeviceType::TABLET], 'LIFETAB S7316' => ['Medion', 'Lifetab S7316', DeviceType::TABLET], 'LIFETAB S732X' => ['Medion', 'Lifetab S732X', DeviceType::TABLET], 'LIFETAB S785X' => ['Medion', 'Lifetab S785X', DeviceType::TABLET], 'LIFETAB S786X' => ['Medion', 'Lifetab S786X', DeviceType::TABLET], 'LIFETAB S831X' => ['Medion', 'Lifetab S831X', DeviceType::TABLET], 'LIFETAB S9512' => ['Medion', 'Lifetab S9512', DeviceType::TABLET], 'LIFETAB S9714' => ['Medion', 'Lifetab S9714', DeviceType::TABLET], 'LIFETAB S1033X' => ['Medion', 'Lifetab S1033X', DeviceType::TABLET], 'LIFETAB S1034X' => ['Medion', 'Lifetab S1034X', DeviceType::TABLET], 'LIFETAB S1036X' => ['Medion', 'Lifetab S1036X', DeviceType::TABLET], 'MEDION LIFE P4012' => ['Medion', 'Life P4012'], 'MEDION P4013' => ['Medion', 'Life P4013'], 'MEDION LIFE P4310' => ['Medion', 'Life P4310'], 'MEDION P5001' => ['Medion', 'Life P5001'], 'MEDION X4701' => ['Medion', 'X4701'], 'MEDION X5004' => ['Medion', 'X5004'], 'MEDION X5020' => ['Medion', 'X5020'], 'LIFETAB P9514' => ['Medion', 'Lifetab P9514', DeviceType::TABLET], 'MD LIFETAB P9516' => ['Medion', 'Lifetab P9516', DeviceType::TABLET]], 'MEEG!!' => ['MEEG 101' => ['MEEG', '101'], 'MEEG 101M' => ['MEEG', '101M'], 'MEEG 105' => ['MEEG', '105'], 'MEEG 105S' => ['MEEG', '105S'], 'MEEG 106' => ['MEEG', '106'], 'MEEG 201' => ['MEEG', '201'], 'MEEG 210R' => ['MEEG', '210R']], 'meizu m1note' => ['Meizu', 'M1 Note'], 'm1 note' => ['Meizu', 'M1 Note'], 'm2 note' => ['Meizu', 'M2 Note'], 'MZ-m2 note' => ['Meizu', 'M2 Note'], 'M571C' => ['Meizu', 'M2 Note'], 'M578C' => ['Meizu', 'M2'], 'M8' => ['Meizu', 'M8'], 'M9' => ['Meizu', 'M9'], 'M9-unlocked' => ['Meizu', 'M9'], 'MEIZU M9' => ['Meizu', 'M9'], 'MEIZU MX' => ['Meizu', 'MX'], 'M030' => ['Meizu', 'MX M030'], 'M031' => ['Meizu', 'MX M031'], 'M032' => ['Meizu', 'MX M032'], 'MX2' => ['Meizu', 'MX2'], 'M040' => ['Meizu', 'MX2 M040'], 'M045' => ['Meizu', 'MX2 M045'], 'M351' => ['Meizu', 'MX3 M351'], 'M353' => ['Meizu', 'MX3 M353'], 'M355' => ['Meizu', 'MX3 M355'], 'M356' => ['Meizu', 'MX3 M356'], 'MX4' => ['Meizu', 'MX4'], 'MZ-MX4' => ['Meizu', 'MX4'], 'MX4 Pro' => ['Meizu', 'MX4 Pro'], '(MEO )?Smart A!!' => ['MEO Smart A40' => ['MEO', 'Smart A40'], 'Smart A65' => ['MEO', 'Smart A65'], 'Smart A66' => ['MEO', 'Smart A66'], 'MEO Smart A68' => ['MEO', 'Smart A68'], 'meo smart a70' => ['MEO', 'Smart A70'], 'MEO Smart A75' => ['MEO', 'Smart A75'], 'MEO A75' => ['MEO', 'Smart A75'], 'MEO Smart A80' => ['MEO', 'Smart A80']], 'MEU AN!!' => ['MEU AN400' => ['MEU', 'AN400'], 'MEU AN500' => ['MEU', 'AN500']], 'Slidepad!!' => ['Slidepad' => ['Memup', 'Slidepad', DeviceType::TABLET], 'SlidePad 104' => ['Memup', 'Slidepad 104', DeviceType::TABLET], 'SlidePad 108' => ['Memup', 'Slidepad 108', DeviceType::TABLET], 'SlidePad704CE' => ['Memup', 'Slidepad 704CE', DeviceType::TABLET], '704DC' => ['Memup', 'Slidepad 704DC', DeviceType::TABLET], 'SlidePad 816P' => ['Memup', 'Slidepad 816P', DeviceType::TABLET], 'SlidePad Elite 9708' => ['Memup', 'Slidepad Elite 9708', DeviceType::TABLET], 'SlidePad Kids' => ['Memup', 'Slidepad Kids', DeviceType::TABLET], 'SlidePad NG 116DC' => ['Memup', 'Slidepad NG 116DC', DeviceType::TABLET], 'SlidePad NG 704DC' => ['Memup', 'Slidepad NG 704DC', DeviceType::TABLET]], 'Mi-A402' => ['Mi-fone', 'FAB 4.0'], 'Micromax!!' => ['Micromax A24' => ['Micromax', 'A24 Bolt'], 'Micromax A25' => ['Micromax', 'A25 Smarty'], 'Micromax A26' => ['Micromax', 'A26 Bolt'], 'Micromax A27' => ['Micromax', 'A27 Bolt'], 'Micromax A28' => ['Micromax', 'A28 Bolt'], 'Micromax A30' => ['Micromax', 'A30 Smarty'], 'Micromax A34' => ['Micromax', 'A34'], 'Micromax A35' => ['Micromax', 'A35 Bolt'], 'Micromax A36' => ['Micromax', 'A36 Bolt'], 'Micromax A37' => ['Micromax', 'A37 Bolt'], 'Micromax A37B' => ['Micromax', 'A37B Bolt'], 'Micromax A40' => ['Micromax', 'A40 Bolt'], 'Micromax A44' => ['Micromax', 'A44 Punk'], 'Micromax A46' => ['Micromax', 'A46 Bolt'], 'Micromax A47' => ['Micromax', 'A47 Bolt'], 'Micromax A50' => ['Micromax', 'A50 Ninja'], 'Micromax A51' => ['Micromax', 'A51 Bolt'], 'Micromax A52' => ['Micromax', 'A52 Aisha'], 'Micromax-Xzoom A52' => ['Micromax', 'A52 Aisha'], 'Micromax A54' => ['Micromax', 'A54 Ninja'], 'Micromax A56' => ['Micromax', 'A56 Ninja 2'], 'Micromax A57' => ['Micromax', 'A57 Ninja 3'], 'Micromax A58' => ['Micromax', 'A58 Bolt'], 'Micromax A59' => ['Micromax', 'A59 Bolt'], 'Micromax A60' => ['Micromax', 'A60 Andro'], 'Micromax A61' => ['Micromax', 'A61 Bolt'], 'Micromax A62' => ['Micromax', 'A62 Bolt'], 'Micromax A63' => ['Micromax', 'A63 Canvas Fun'], 'Micromax A65' => ['Micromax', 'A65 Smarty'], 'Micromax A66' => ['Micromax', 'A66 Bolt'], 'Micromax A67' => ['Micromax', 'A67 Bolt'], 'Micromax A68' => ['Micromax', 'A68 Smarty'], 'Micromax A69' => ['Micromax', 'A69 Bolt'], 'Micromax A70' => ['Micromax', 'A70 Andro'], 'Micromax A71' => ['Micromax', 'A71 Bolt'], 'Micromax A72' => ['Micromax', 'A72 Canvas Viva'], 'Micromax A73' => ['Micromax', 'A73 Buzz'], 'Micromax A74' => ['Micromax', 'A74 Canvas Fun'], 'Micromax A75' => ['Micromax', 'A75 Lite'], 'Micromax A76' => ['Micromax', 'A76 Canvas Fun'], 'Micromax A77' => ['Micromax', 'A77 Canvas Juice'], 'Micromax A78' => ['Micromax', 'A78 Gossip'], 'Micromax A79' => ['Micromax', 'A79 Bolt'], 'Micromax A80' => ['Micromax', 'A80 Infinity'], 'Micromax A84' => ['Micromax', 'A84'], 'Micromax A85' => ['Micromax', 'A85'], 'Micromax A86' => ['Micromax', 'A86 Bling 3'], 'Micromax A87!' => ['Micromax', 'A87 Ninja 4'], 'Micromax A88' => ['Micromax', 'A88 Canvas Music'], 'Micromax A89' => ['Micromax', 'A89 Ninja'], 'Micromax A90!' => ['Micromax', 'A90 Pixel'], 'Micromax A91' => ['Micromax', 'A91 Ninja'], 'Micromax A92' => ['Micromax', 'A92 Canvas Lite'], 'Micromax A93' => ['Micromax', 'A93 Canvas Elanza'], 'Micromax A94' => ['Micromax', 'A94 Canvas Mad'], 'Micromax A96' => ['Micromax', 'A96 Canvas Power'], 'Micromax A99' => ['Micromax', 'A99 Canvas Xpress'], 'Micromax A064' => ['Micromax', 'A064 Bolt'], 'Micromax A065' => ['Micromax', 'A065 Bolt'], 'Micromax A067' => ['Micromax', 'A067 Bolt'], 'Micromax A068' => ['Micromax', 'A068 Bolt'], 'Micromax A069' => ['Micromax', 'A069 Bolt'], 'Micromax A075' => ['Micromax', 'A075 Bolt'], 'Micromax A082' => ['Micromax', 'A082 Bolt'], 'Micromax A089' => ['Micromax', 'A089 Bolt'], 'Micromax A091' => ['Micromax', 'A091 Canvas Engage'], 'Micromax A092' => ['Micromax', 'A092 Canvas Lite'], 'Micromax A093' => ['Micromax', 'A093 Canvas Fire'], 'Micromax A096' => ['Micromax', 'A096 Canvas Fire 3'], 'Micromax A100' => ['Micromax', 'A100 Canvas'], 'Micromax A101' => ['Micromax', 'A101'], 'Micromax A102' => ['Micromax', 'A102 Canvas Doodle 3'], 'Micromax A104' => ['Micromax', 'A104 Canvas Fire'], 'Micromax A105' => ['Micromax', 'A105 Canvas Entice'], 'Micromax A106' => ['Micromax', 'A106 Unite 2'], 'Micromax A107' => ['Micromax', 'A107 Canvas Fire 4'], 'Micromax A108' => ['Micromax', 'A108 Canvas L'], 'Micromax A109' => ['Micromax', 'A109 Canvas XL2'], 'Micromax A110!' => ['Micromax', 'A110 Canvas 2'], 'Micromax Canvas 2' => ['Micromax', 'A110 Canvas 2'], 'Micromax A110 (Canvas 2)' => ['Micromax', 'A110 Canvas 2'], 'Micromax A111!' => ['Micromax', 'A111 Canvas Doodle'], 'Micromax A114' => ['Micromax', 'A114 Canvas 2.2'], 'Micromax A114R' => ['Micromax', 'A114R Canvas Beat'], 'Micromax A115' => ['Micromax', 'A115 Canvas 3D'], 'Micromax A116' => ['Micromax', 'A116 Canvas HD'], 'Micromax A116i' => ['Micromax', 'A116i Canvas HD'], 'Micromax A117' => ['Micromax', 'A117 Canvas Magnus'], 'Micromax A118R' => ['Micromax', 'A118 Canvas Tube'], 'Micromax A119' => ['Micromax', 'A119 Canvas XL'], 'Micromax A120' => ['Micromax', 'A120 Canvas 2 Colors'], 'Micromax A121' => ['Micromax', 'A120 Canvas Elanza 2'], 'Micromax A177' => ['Micromax', 'A177 Canvas Juice'], 'Micromax A190' => ['Micromax', 'A190 Canvas HD Plus'], 'Micromax A200' => ['Micromax', 'A200 Canvas Turbo Mini'], 'Micromax A210' => ['Micromax', 'A210 Canvas 4'], 'Micromax A240' => ['Micromax', 'A240 Canvas Doodle 2'], 'Micromax A250' => ['Micromax', 'A250 Canvas Turbo'], 'Micromax A255' => ['Micromax', 'A255 Canvas Selfie'], 'Micromax A290' => ['Micromax', 'A290 Canvas Knight Cameo'], 'Micromax A300' => ['Micromax', 'A300 Canvas Gold'], 'Micromax A310' => ['Micromax', 'A310 Canvas Nitro'], 'Micromax A311' => ['Micromax', 'A311 Canvas Nitro'], 'Micromax A315' => ['Micromax', 'A315 Canvas 4 Plus'], 'Micromax A350' => ['Micromax', 'A350 Canvas Knight'], 'Micromax AD3520' => ['Micromax', 'AD3520 Bolt'], 'Micromax AD4500' => ['Micromax', 'AQ4500 Bolt'], 'Micromax AQ4501' => ['Micromax', 'AQ4501 Canvas A1'], 'Micromax AQ4502' => ['Micromax', 'AQ4502 Canvas A1'], 'Micromax AQ5000' => ['Micromax', 'AQ5000 Canvas Hue'], 'Micromax AQ5001' => ['Micromax', 'AQ5001 Canvas Juice 2'], 'Micromax D200' => ['Micromax', 'D200 Bolt'], 'Micromax E313' => ['Micromax', 'E313 Canvas Express 2'], 'Micromax F666' => ['Micromax', 'F666'], 'Micromax P250(Funbook)' => ['Micromax', 'Funbook Alpha P250', DeviceType::TABLET], 'Micromax P255' => ['Micromax', 'Funbook P255', DeviceType::TABLET], 'Micromax P275' => ['Micromax', 'Funbook Infinity P275', DeviceType::TABLET], 'Micromax P280' => ['Micromax', 'Funbook P280', DeviceType::TABLET], 'Micromax P350' => ['Micromax', 'Funbook P350', DeviceType::TABLET], 'Micromax P360' => ['Micromax', 'Funbook Talk P360', DeviceType::TABLET], 'Micromax P362' => ['Micromax', 'Funbook Talk P362', DeviceType::TABLET], 'Micromax P365' => ['Micromax', 'Funbook P365', DeviceType::TABLET], 'Micromax P410' => ['Micromax', 'Funbook Mini P410', DeviceType::TABLET], 'Micromax P410i' => ['Micromax', 'Funbook Mini P410i', DeviceType::TABLET], 'Micromax P470' => ['Micromax', 'Canvas Tab P470', DeviceType::TABLET], 'MicromaxP480' => ['Micromax', 'Canvas Tab P480', DeviceType::TABLET], 'Micromax P500(Funbook)' => ['Micromax', 'Funbook Pro P500', DeviceType::TABLET], 'Micromax P560' => ['Micromax', 'Funbook 3G P560', DeviceType::TABLET], 'Micromax P580' => ['Micromax', 'Funbook Ultra HD P580', DeviceType::TABLET], 'Micromax P600' => ['Micromax', 'Funbook 3G P600', DeviceType::TABLET], 'Micromax P650' => ['Micromax', 'Canvas Tab P650', DeviceType::TABLET], 'Micromax P666' => ['Micromax', 'Canvas Tab P666', DeviceType::TABLET], 'Micromax P690' => ['Micromax', 'Canvas Tab P690', DeviceType::TABLET], 'Micromax Q334' => ['Micromax', 'Q334 Canvas Spark 2'], 'Micromax Q338' => ['Micromax', 'Q338 Bolt'], 'Micromax Q355' => ['Micromax', 'Q355 Canvas Play'], 'Micromax Q372' => ['Micromax', 'Q372 Unite 3'], 'Micromax Q380' => ['Micromax', 'Q380 Canvas Spark'], 'Micromax Q391' => ['Micromax', 'Q391 Canvas Doodle 4'], 'Micromax Q400' => ['Micromax', 'Q400'], 'Micromax S300' => ['Micromax', 'S300 Bolt']], 'A13' => ['Micromax', 'A13'], 'A45' => ['Micromax', 'A45 Punk'], 'A52' => ['Micromax', 'A52 Aisha'], 'A90S' => ['Micromax', 'A90S Pixel'], 'A110Q' => ['Micromax', 'A110Q Canvas 2 Plus'], 'A110Q Canvas 2 Plus' => ['Micromax', 'A110Q Canvas 2 Plus'], 'A110Q Canvas 2+' => ['Micromax', 'A110Q Canvas 2 Plus'], 'P300(Funbook)' => ['Micromax', 'Funbook P300', DeviceType::TABLET], 'MLLED!!' => ['MLLED M1B' => ['MLLED', 'M1B'], 'MLLED M2+' => ['MLLED', 'M2+'], 'MLLED M3 MINI' => ['MLLED', 'M3 MINI'], 'MLLED M7S' => ['MLLED', 'M7S'], 'MLLED M8' => ['MLLED', 'M8'], 'MLLED M8S' => ['MLLED', 'M8S'], 'MLLED X3S' => ['MLLED', 'X3S']], 'Mio!!' => ['MioCARE A105' => ['Mitac', 'MioCARE A105'], 'MioCare 6119' => ['Mitac', 'MioCARE 6119'], 'MioPad 6' => ['Mitac', 'MioPad 6', DeviceType::TABLET]], 'MIZ Z2' => ['Miz', 'Z2'], 'iQ(Talk|Tab)!!' => ['iQTalk Crystal' => ['MLS', 'iQTalk Crystal'], 'iQTalk Crystal Max' => ['MLS', 'iQTalk Crystal Max'], 'iQTalk King' => ['MLS', 'iQTalk King'], 'iQTab' => ['MLS', 'iQTab', DeviceType::TABLET], 'iQTab 3G' => ['MLS', 'iQTab 3G', DeviceType::TABLET], 'iQTab Astro 3G' => ['MLS', 'iQTab Astro 3G', DeviceType::TABLET]], 'Nova!!' => ['Nova A' => ['Mobell', 'Nova A'], 'Nova E' => ['Mobell', 'Nova E'], 'Nova F' => ['Mobell', 'Nova F']], 'Mobiistar!!' => ['mobiistar PRIME 558' => ['Mobiistar', 'Prime 558'], 'Mobiistar S01' => ['Mobiistar', 'Touch S01'], 'Mobiistar Touch S01' => ['Mobiistar', 'Touch S01'], 'Mobiistar Touch S02i' => ['Mobiistar', 'Touch S02i'], 'Mobiistar Touch S03' => ['Mobiistar', 'Touch S03'], 'Mobiistar Touch S05' => ['Mobiistar', 'Touch S05'], 'Mobiistar Touch S06' => ['Mobiistar', 'Touch S06'], 'Mobiistar Touch S07' => ['Mobiistar', 'Touch S07'], 'Mobiistar Touch S08' => ['Mobiistar', 'Touch S08'], 'Mobiistar Touch S30' => ['Mobiistar', 'Touch S30'], 'mobiistar touch S31' => ['Mobiistar', 'Touch S31'], 'mobiistar touch BEAN 402' => ['Mobiistar', 'Touch Bean 402'], 'mobiistar touch BEAN 402c' => ['Mobiistar', 'Touch Bean 402C'], 'mobiistar touch Bean 402s' => ['Mobiistar', 'Touch Bean 402S'], 'mobiistar touch BEAN 402m' => ['Mobiistar', 'Touch Bean 402M'], 'Mobiistar Touch Bean 452' => ['Mobiistar', 'Touch Bean 452'], 'Mobiistar Touch JellyBean 452' => ['Mobiistar', 'Touch Bean 452'], 'Mobiistar Touch Jelly Bean 452' => ['Mobiistar', 'Touch Bean 452'], 'mobiistar touch BEAN 452T' => ['Mobiistar', 'Touch Bean 452T'], 'Mobiistar Bean 452T' => ['Mobiistar', 'Touch Bean 452T'], 'mobiistar touch BEAN 454' => ['Mobiistar', 'Touch Bean 454'], 'Mobiistar Touch Kem 350' => ['Mobiistar', 'Touch Kem 350'], 'Mobiistar Touch Kem 351' => ['Mobiistar', 'Touch Kem 351'], 'Mobiistar Touch Kem 402' => ['Mobiistar', 'Touch Kem 402'], 'Mobiistar Touch Kem 432' => ['Mobiistar', 'Touch Kem 432'], 'Mobiistar Touch Kem 452' => ['Mobiistar', 'Touch Kem 452'], 'Mobiistar Touch KEM 452 HDMI' => ['Mobiistar', 'Touch Kem 452'], 'Mobiistar touch KEM 462' => ['Mobiistar', 'Touch Kem 462'], 'Mobiistar Touch Lai 502' => ['Mobiistar', 'Touch Lai 502'], 'mobiistar touch LAI 504' => ['Mobiistar', 'Touch Lai 504'], 'mobiistar LAI 504m' => ['Mobiistar', 'Touch Lai 504M'], 'mobiistar touch LAI 504Q' => ['Mobiistar', 'Touch Lai 504Q'], 'mobiistar touch LAI 512' => ['Mobiistar', 'Touch Lai 512']], 'BEAN 454' => ['Mobiistar', 'Touch Bean 454'], 'MBS BEAN 454' => ['Mobiistar', 'Touch Bean 454'], 'edenTAB ET-701' => ['Mobile In Style', 'Eden TAB ET-701', DeviceType::TABLET], 'Cynus!!' => ['Cynus E1' => ['Mobistel', 'Cynus E1'], 'Cynus F3' => ['Mobistel', 'Cynus F3'], 'Cynus F4' => ['Mobistel', 'Cynus F4'], 'Cynus F5' => ['Mobistel', 'Cynus F5'], 'Cynus F6' => ['Mobistel', 'Cynus F6'], 'Cynus F8' => ['Mobistel', 'Cynus F8'], 'Cynus T1' => ['Mobistel', 'Cynus T1'], 'Cynus T2' => ['Mobistel', 'Cynus T2'], 'Cynus T5' => ['Mobistel', 'Cynus T5'], 'Cynus T6' => ['Mobistel', 'Cynus T6'], 'Cynus T7' => ['Mobistel', 'Cynus T7'], 'Cynus T8' => ['Mobistel', 'Cynus T8']], 'MOCHE SMART A16' => ['Moche', 'Smart A16'], '(MODECOM )?FreeTAB!!' => ['FreeTAB 7.5 IPS X4 3G+' => ['Modecom', 'FreeTAB 7.5 IPS X4', DeviceType::TABLET], 'FreeTAB 10.1 Silver' => ['Modecom', 'FreeTAB 10.1 Silver', DeviceType::TABLET], 'FreeTAB 1001' => ['Modecom', 'FreeTAB 1001', DeviceType::TABLET], 'MODECOM FreeTab 1002 IPS X2' => ['Modecom', 'FreeTAB 1002 IPS X2', DeviceType::TABLET], 'FreeTAB 1003' => ['Modecom', 'FreeTAB 1003', DeviceType::TABLET], 'FreeTAB1003' => ['Modecom', 'FreeTAB 1003', DeviceType::TABLET], 'FreeTAB 1014 IPS X4+' => ['Modecom', 'FreeTAB 1014 IPS X4', DeviceType::TABLET], 'FreeTAB 1014 IPS X4 3G+' => ['Modecom', 'FreeTAB 1014 IPS X4', DeviceType::TABLET], 'MODECOM FreeTAB 2096+ X2 4GB' => ['Modecom', 'FreeTAB 2096 X2', DeviceType::TABLET], 'FreeTAB 7001 HD IC' => ['Modecom', 'FreeTAB 7001 HD IC', DeviceType::TABLET], 'FreeTAB 7003 HD+ X2 3G+' => ['Modecom', 'FreeTAB 7003 HD+ X2', DeviceType::TABLET], 'FreeTAB 7800 IPS IC' => ['Modecom', 'FreeTAB 7800 IPS IC', DeviceType::TABLET], 'FreeTAB 8001 IPS X2 3G+' => ['Modecom', 'FreeTAB 8001 IPS X2', DeviceType::TABLET], 'MODECOM FreeTAB 8001 IPS X23G' => ['Modecom', 'FreeTAB 8001 IPS X2', DeviceType::TABLET], 'FreeTAB 8014 IPS X4' => ['Modecom', 'FreeTAB 8014 IPS X4', DeviceType::TABLET], 'FreeTAB 9000 IPS IC' => ['Modecom', 'FreeTAB 9000 IPS IC', DeviceType::TABLET], 'FreeTAB 9000 IPS ICG' => ['Modecom', 'FreeTAB 9000 IPS ICG', DeviceType::TABLET], 'FreeTAB 9000 IPS ICG 3G' => ['Modecom', 'FreeTAB 9000 IPS ICG', DeviceType::TABLET], 'FreeTAB 9701' => ['Modecom', 'FreeTAB 9701', DeviceType::TABLET], 'FreeTAB 9701 HD X1' => ['Modecom', 'FreeTAB 9701 HD X1', DeviceType::TABLET], 'FreeTAB 9701 IPS' => ['Modecom', 'FreeTAB 9701 IPS', DeviceType::TABLET], 'FreeTAB 9702 HD X2' => ['Modecom', 'FreeTAB 9702 HD X2', DeviceType::TABLET], 'FreeTAB 9702 HD X4' => ['Modecom', 'FreeTAB 9702 HD X4', DeviceType::TABLET], 'MODECOM FreeTAB 9702 IPS X2' => ['Modecom', 'FreeTAB 9702 IPS X2', DeviceType::TABLET], 'FreeTAB 9704 IPS2 X4' => ['Modecom', 'FreeTAB 9704 IPS2 X4', DeviceType::TABLET]], 'MOGU!!' => ['MOGU-M0' => ['Mogu', 'M0'], 'MOGU M2' => ['Mogu', 'M2'], 'MOGU M2 ROM' => ['Mogu', 'M2'], 'MOGU-M2' => ['Mogu', 'M2']], 'moii!!' => ['moii-E502' => ['moii', 'E502'], 'moii E505' => ['moii', 'E505'], 'moii E598' => ['moii', 'E598'], 'Moii E801' => ['moii', 'E801'], 'moii E893' => ['moii', 'E893'], 'Moii E990' => ['moii', 'E990'], 'moii E996' => ['moii', 'E996']], 'AT735' => ['Moinstone', 'AT735', DeviceType::TABLET], 'MORAL N01' => ['Moral', 'N01'], 'i1' => ['Motorola', 'i1'], 'A853' => ['Motorola', 'Milestone'], 'A953' => ['Motorola', 'Milestone 2'], 'A1680' => ['Motorola', 'MOTO A1680'], 'F100' => ['Motorola', 'MOTOACTV', DeviceType::WATCH], 'MB[0-9]{3,3}!!' => ['MB200' => ['Motorola', 'CLIQ'], 'MB300' => ['Motorola', 'BACKFLIP'], 'MB501' => ['Motorola', 'CLIQ XT'], 'MB502' => ['Motorola', 'CHARM'], 'MB508' => ['Motorola', 'FLIPSIDE'], 'MB511' => ['Motorola', 'FLIPOUT'], 'MB520' => ['Motorola', 'BRAVO'], 'MB525!' => ['Motorola', 'DEFY'], 'MB526!' => ['Motorola', 'DEFY+'], 'MB611' => ['Motorola', 'CLIQ 2'], 'MB612' => ['Motorola', 'XPRT'], 'MB626' => ['Motorola', 'MB632'], 'MB632' => ['Motorola', 'PRO+'], 'MB810' => ['Motorola', 'Droid X'], 'MB853' => ['Motorola', 'Electrify'], 'MB855' => ['Motorola', 'PHOTON 4G'], 'MB8(60|61)!' => ['Motorola', 'ATRIX'], 'MB865' => ['Motorola', 'ATRIX 2'], 'MB870' => ['Motorola', 'Droid X2'], 'MB886' => ['Motorola', 'DINARA']], 'ME[0-9]{3,3}!!' => ['ME501' => ['Motorola', 'CLIQ XT'], 'ME502' => ['Motorola', 'CHARM'], 'ME511' => ['Motorola', 'FLIPOUT'], 'ME525!' => ['Motorola', 'MOTO ME525'], 'ME526!' => ['Motorola', 'DEFY+'], 'ME600' => ['Motorola', 'BACKFLIP'], 'ME611' => ['Motorola', 'CLIQ 2'], 'ME632' => ['Motorola', 'PRO+'], 'ME722' => ['Motorola', 'Milestone 2'], 'ME811' => ['Motorola', 'Droid X'], 'ME860' => ['Motorola', 'ATRIX'], 'ME863' => ['Motorola', 'Milestone 3'], 'ME865' => ['Motorola', 'ATRIX 2']], 'MT[0-9]{3,3}!!' => ['MT620!' => ['Motorola', 'MOTO MT620'], 'MT680' => ['Motorola', 'MOTOLUXE MT680'], 'MT716' => ['Motorola', 'MOTO MT716'], 'MT788' => ['Motorola', 'RAZR i'], 'MT810' => ['Motorola', 'MOTO MT810'], 'MT870' => ['Motorola', 'MOTO MT870'], 'MT887' => ['Motorola', 'RAZR V'], 'MT917' => ['Motorola', 'MT917']], 'MZ[0-9]{3,3}!!' => ['MZ505' => ['Motorola', 'XOOM Family Edition', DeviceType::TABLET], 'MZ600' => ['Motorola', 'XOOM 4G LTE', DeviceType::TABLET], 'MZ601' => ['Motorola', 'XOOM 3G', DeviceType::TABLET], 'MZ602' => ['Motorola', 'XOOM 4G LTE', DeviceType::TABLET], 'MZ603' => ['Motorola', 'XOOM 3G', DeviceType::TABLET], 'MZ604' => ['Motorola', 'XOOM WiFi', DeviceType::TABLET], 'MZ605' => ['Motorola', 'XOOM 3G', DeviceType::TABLET], 'MZ606' => ['Motorola', 'XOOM WiFi', DeviceType::TABLET], 'MZ607' => ['Motorola', 'XOOM 2 WiFi Media Edition', DeviceType::TABLET], 'MZ608' => ['Motorola', 'XOOM 2 3G Media Edition', DeviceType::TABLET], 'MZ609!' => ['Motorola', 'Droid XYBOARD 8.2', DeviceType::TABLET], 'MZ615' => ['Motorola', 'XOOM 2 WiFi', DeviceType::TABLET], 'MZ616' => ['Motorola', 'XOOM 2 3G', DeviceType::TABLET], 'MZ617!' => ['Motorola', 'Droid XYBOARD 10.1', DeviceType::TABLET]], 'WX[0-9]{3,3}!!' => ['WX435' => ['Motorola', 'TRIUMPH WX435'], 'WX445' => ['Motorola', 'CITRUS WX445']], 'XT[0-9]{3,4}!!' => ['XT300' => ['Motorola', 'SPICE'], 'XT301' => ['Motorola', 'MOTO XT301'], 'XT303' => ['Motorola', 'MOTOSMART XT303'], 'XT305' => ['Motorola', 'MOTOSMART XT305'], 'XT311' => ['Motorola', 'FIRE'], 'XT316' => ['Motorola', 'MOTO XT316'], 'XT317' => ['Motorola', 'SPICE Key'], 'XT319' => ['Motorola', 'MOTO XT319'], 'XT3(20|21)!' => ['Motorola', 'DEFY Mini'], 'XT389' => ['Motorola', 'MOTOSMART XT389'], 'XT390' => ['Motorola', 'MOTOSMART XT390'], 'XT500' => ['Motorola', 'MOTO XT500'], 'xt-500' => ['Motorola', 'MOTO XT500'], 'XT502' => ['Motorola', 'QUENCH XT5'], 'XT5(30|31)!' => ['Motorola', 'FIRE XT'], 'XT532' => ['Motorola', 'MOTO XT532'], 'XT535' => ['Motorola', 'DEFY'], 'XT536' => ['Motorola', 'DEFY Diana'], 'XT5(50|53)!' => ['Motorola', 'MOTOSMART MIX'], 'XT5(55|56|57)!' => ['Motorola', 'DEFY XT'], 'XT560' => ['Motorola', 'DEFY Pro'], 'XT603' => ['Motorola', 'ADMIRAL'], 'XT605' => ['Motorola', 'Master XT605'], 'XT610' => ['Motorola', 'Droid Pro'], 'Pro XT610' => ['Motorola', 'Droid Pro'], 'XT611' => ['Motorola', 'MOTOSMART Flip'], 'XT615' => ['Motorola', 'MOTO XT615'], 'XT621' => ['Motorola', 'Primus XT621'], 'XT623' => ['Motorola', 'Kairos XT623'], 'XT626' => ['Motorola', 'MOTO XT626'], 'XT627' => ['Motorola', 'Kairos XT627'], 'XT681' => ['Motorola', 'MOTO XT681'], 'XT682' => ['Motorola', 'ATRIX TV'], 'XT685' => ['Motorola', 'MOTO XT685'], 'XT687' => ['Motorola', 'ATRIX TV'], 'XT701' => ['Motorola', 'XT701'], 'XT702!' => ['Motorola', 'MOTO XT702'], 'XT711' => ['Motorola', 'MOTO XT711'], 'XT720' => ['Motorola', 'Milestone'], 'XT760' => ['Motorola', 'MOTO XT760'], 'XT788' => ['Motorola', 'XT788'], 'XT875' => ['Motorola', 'Droid Bionic'], 'XT800W' => ['Motorola', 'MOTO Glam'], 'XT800!' => ['Motorola', 'MOTO XT800'], 'XT806' => ['Motorola', 'MOTO XT806'], 'XT8(60|83)!' => ['Motorola', 'Milestone 3'], 'XT862' => ['Motorola', 'Droid 3'], 'XT865' => ['Motorola', 'Droid Bionic'], 'XT881' => ['Motorola', 'Electrify 2'], 'XT882' => ['Motorola', 'MOTO XT882'], 'XT8(85|86|89)!' => ['Motorola', 'RAZR V'], 'XT890' => ['Motorola', 'RAZR i'], 'XT894!' => ['Motorola', 'Droid 4'], 'XT897!' => ['Motorola', 'Photon Q'], 'XT901' => ['Motorola', 'Electrify M'], 'XT905' => ['Motorola', 'RAZR M'], 'XT907' => ['Motorola', 'Droid RAZR M'], 'XT910!' => ['Motorola', 'RAZR'], 'XT912!' => ['Motorola', 'Droid RAZR'], 'XT9(14|15|16|18)!' => ['Motorola', 'Droid RAZR D1'], 'XT9(19|20)!' => ['Motorola', 'Droid RAZR D3'], 'XT9(23|25|26)!' => ['Motorola', 'Droid RAZR HD'], 'XT928' => ['Motorola', 'XT928'], 'XT939G' => ['Motorola', 'Moto G'], 'XT10(19|21|22|23|25)!' => ['Motorola', 'Moto E'], 'XT1030!' => ['Motorola', 'Droid Mini'], 'XT10(08|28|31|32|33|34|35|39|40|42|45)!' => ['Motorola', 'Moto G'], 'XT10(02|03)!' => ['Motorola', 'Moto G Ferrari'], 'XT10(49|50|52|53|55|56|58|60)!' => ['Motorola', 'Moto X'], 'XT10(63|64|68|69|72|77|78|79)!' => ['Motorola', 'Moto G (2014)'], 'XT1080!' => ['Motorola', 'Droid Ultra'], 'XT10(85|92|93|94|95|96|97|98)!' => ['Motorola', 'Moto X (2014)'], 'XT11(00|03)!' => ['Motorola', 'Nexus 6'], 'XT1115!' => ['Motorola', 'Moto X Pro'], 'XT1225' => ['Motorola', 'Moto Maxx'], 'XT12(50|54)!' => ['Motorola', 'Droid Turbo'], 'XT15(21|23|24|26|27|28)!' => ['Motorola', 'Moto E (2015)'], 'XT15(40|41|42|43|44|48|50)!' => ['Motorola', 'Moto G (2015)'], 'XT15(62|63)!' => ['Motorola', 'Moto X Play'], 'XT1565' => ['Motorola', 'Droid MAXX 2'], 'XT15(70|72)!' => ['Motorola', 'Moto X Style'], 'XT1575' => ['Motorola', 'Moto X Pure Edition'], 'XT1580' => ['Motorola', 'Moto X Force'], 'XT1585' => ['Motorola', 'Droid Turbo 2']], 'Atrix 2' => ['Motorola', 'ATRIX 2'], 'Atrix 2 WeifanZ' => ['Motorola', 'ATRIX 2'], 'Atrix 4G' => ['Motorola', 'ATRIX 4G'], 'Atrix 4G ME860' => ['Motorola', 'ATRIX 4G'], 'Atrix HD' => ['Motorola', 'ATRIX HD'], 'AtrixHD' => ['Motorola', 'ATRIX HD'], 'Backflip' => ['Motorola', 'BACKFLIP'], 'CLIQ' => ['Motorola', 'CLIQ'], 'CLIQ XT' => ['Motorola', 'CLIQ XT'], 'CLIQ2' => ['Motorola', 'CLIQ 2'], 'Corvair' => ['Motorola', 'Corvair', DeviceType::TABLET], 'DEFY' => ['Motorola', 'DEFY'], 'Defy(\\+| Plus)!' => ['Motorola', 'DEFY+'], 'DEDY+' => ['Motorola', 'DEFY+'], 'Dext' => ['Motorola', 'Dext'], 'Droid' => ['Motorola', 'Droid'], 'DROID' => ['Motorola', 'Droid'], 'DROID ?2!' => ['Motorola', 'Droid 2'], 'DROID ?3!' => ['Motorola', 'Droid 3'], 'DROID ?4!' => ['Motorola', 'Droid 4'], 'DROID Pro' => ['Motorola', 'Droid Pro'], 'Motorola Pro XT610' => ['Motorola', 'Droid Pro'], 'DROID BIONIC!' => ['Motorola', 'Droid Bionic'], 'DROID RAZR HD!' => ['Motorola', 'Droid RAZR HD'], 'DROID ?RAZR!' => ['Motorola', 'Droid RAZR'], 'DROID SPYDER' => ['Motorola', 'Droid RAZR'], 'DROID ?X2!' => ['Motorola', 'Droid X2'], 'DROID ?X!' => ['Motorola', 'Droid X'], 'Devour' => ['Motorola', 'Droid Devour'], 'calgary' => ['Motorola', 'Droid Devour'], 'Electrify' => ['Motorola', 'Electrify'], 'Milestone XT711' => ['Motorola', 'Milestone'], 'Milestone XT720' => ['Motorola', 'Milestone'], 'Milestone' => ['Motorola', 'Milestone'], 'A853 Milestone' => ['Motorola', 'Milestone'], 'Milestone X' => ['Motorola', 'Milestone X'], 'Milestone X2' => ['Motorola', 'Milestone X2'], 'Motorola Milestone MAXX' => ['Motorola', 'Milestone MAXX'], 'MILESTONE3' => ['Motorola', 'Milestone 3'], 'Motorola Backflip Me600' => ['Motorola', 'BACKFLIP'], 'Moto ME860' => ['Motorola', 'ATRIX'], '(Moto)?E2$!' => ['Motorola', 'Moto E (2015)'], '(Moto)?E2\\(4G-LTE\\)$!' => ['Motorola', 'Moto E (2015)'], '(Moto)?G3$!' => ['Motorola', 'Moto G (2015)'], '(Moto)?G3-TE$!' => ['Motorola', 'Moto G (2015)'], 'roiX' => ['Motorola', 'Droid X'], 'Moto Backflip' => ['Motorola', 'BACKFLIP'], 'RAZR' => ['Motorola', 'RAZR'], 'RAZR HD' => ['Motorola', 'RAZR HD'], 'RAZR M' => ['Motorola', 'RAZR M'], 'RAZR MAXX' => ['Motorola', 'RAZR MAXX'], 'Triumph' => ['Motorola', 'TRIUMPH'], 'Opus One' => ['Motorola', 'i1'], 'Photon' => ['Motorola', 'PHOTON'], 'Photon 4G' => ['Motorola', 'PHOTON 4G'], 'Photon Q' => ['Motorola', 'PHOTON Q'], 'XOOM' => ['Motorola', 'XOOM', DeviceType::TABLET], 'MOTOROLA XOOM MZ606' => ['Motorola', 'XOOM', DeviceType::TABLET], 'XOOM 2!' => ['Motorola', 'XOOM 2', DeviceType::TABLET], 'XOOM MZ606' => ['Motorola', 'XOOM WiFi', DeviceType::TABLET], 'Xoom Wifi' => ['Motorola', 'XOOM WiFi', DeviceType::TABLET], 'Xoom LTE' => ['Motorola', 'XOOM 4G LTE', DeviceType::TABLET], 'Xoom 3G' => ['Motorola', 'XOOM 3G', DeviceType::TABLET], '201M' => ['Motorola', 'RAZR M 201M', 'carrier' => 'Softbank'], 'ISW11M' => ['Motorola', 'PHOTON ISW11M', 'carrier' => 'au'], 'IS12M' => ['Motorola', 'RAZR IS12M', 'carrier' => 'au'], 'MOTOROLA RAZR' => ['Motorola', 'RAZR'], 'MOTWX435KT' => ['Motorola', 'TRIUMPH'], 'X3-Ice MIUI XT720 Memorila Classics' => ['Motorola', 'Milestone'], 'ET1' => ['Motorola', 'ET1 Enterprise Tablet', DeviceType::TABLET], 'MC32N0' => ['Motorola', 'MC32 Mobile Computer', DeviceType::POS], 'MC40N0' => ['Motorola', 'MC40 Mobile Computer', DeviceType::POS], 'MC67NA' => ['Motorola', 'MC67 Mobile Computer', DeviceType::POS], 'TC55' => ['Motorola', 'TC55 Touch Computer'], 'TC55CH' => ['Motorola', 'TC55 Touch Computer'], 'TC70' => ['Motorola', 'TC70 Touch Computer'], 'TC75' => ['Motorola', 'TC75 Touch Computer'], 'PH350' => ['Mpman', 'PH350'], 'PH520' => ['Mpman', 'PH520'], 'MID7C' => ['Mpman', 'MID7C', DeviceType::TABLET], 'MID43C' => ['Mpman', 'MID43C', DeviceType::TABLET], 'MID74C' => ['Mpman', 'MID74C', DeviceType::TABLET], 'MID77C' => ['Mpman', 'MID77C', DeviceType::TABLET], 'MID82C' => ['Mpman', 'MID82C', DeviceType::TABLET], 'MID84C' => ['Mpman', 'MID84C', DeviceType::TABLET], 'MID102C' => ['Mpman', 'MID102C', DeviceType::TABLET], 'MID103C' => ['Mpman', 'MID103C', DeviceType::TABLET], 'MID104C' => ['Mpman', 'MID104C', DeviceType::TABLET], 'MID114C' => ['Mpman', 'MID114C', DeviceType::TABLET], 'MP717' => ['Mpman', 'MP717', DeviceType::TABLET], 'MP843' => ['Mpman', 'MP843', DeviceType::TABLET], 'MP888' => ['Mpman', 'MP888', DeviceType::TABLET], 'MP959' => ['Mpman', 'MP959', DeviceType::TABLET], 'MP969' => ['Mpman', 'MP969', DeviceType::TABLET], 'MP1010' => ['Mpman', 'MP1010', DeviceType::TABLET], 'MP7007' => ['Mpman', 'MP7007', DeviceType::TABLET], 'MPDC100 BT' => ['Mpman', 'MPDC100 BT', DeviceType::TABLET], 'MPDC110 BT IPS' => ['Mpman', 'MPDC110 BT', DeviceType::TABLET], 'MPDC112 BT IPS' => ['Mpman', 'MPDC112 BT', DeviceType::TABLET], 'MPDC8 BT' => ['Mpman', 'MPDC8 BT', DeviceType::TABLET], 'MPDC88 BT IPS' => ['Mpman', 'MPDC88 BT', DeviceType::TABLET], 'MPDC903' => ['Mpman', 'MPDC903', DeviceType::TABLET], 'MPQC704 HD' => ['Mpman', 'MPQC704 HD', DeviceType::TABLET], 'MPQC784 IPS' => ['Mpman', 'MPQC784', DeviceType::TABLET], 'MPQC804HD' => ['Mpman', 'MPQC804 HD', DeviceType::TABLET], 'Primo76' => ['MSI', 'Primo 76', DeviceType::TABLET], 'Primo 91' => ['MSI', 'Primo 91', DeviceType::TABLET], 'Enjoy 7 Plus' => ['MSI', 'WindPad Enjoy 7 Plus', DeviceType::TABLET], 'MTS-SP100' => ['MTS', 'Lifewire SP 100'], 'MTS-SP101' => ['MTS', 'Mtag 3.1 SP 101'], 'Multilaser Diamond' => ['Multilaser', 'Diamond', DeviceType::TABLET], 'Multilaser Orion' => ['Multilaser', 'Orion'], 'Multilaser Oxy' => ['Multilaser', 'Oxy', DeviceType::TABLET], 'Multilaser Titanium' => ['Multilaser', 'Titanium'], 'NB036' => ['Multilaser', 'Vibe NB036', DeviceType::TABLET], 'M4(TEL)? SS[0-9]{3,4}!!' => ['M4TEL SS550' => ['M4Tel', 'Genius'], 'M4TEL SS880' => ['M4Tel', 'Mirage'], 'M4TEL SS990' => ['M4Tel', 'E-Motion'], 'M4 SS1050' => ['M4Tel', 'SS1050'], 'M4 SS1060' => ['M4Tel', 'M4Live'], 'M4 SS1070' => ['M4Tel', 'Sense'], 'M4 SS1080' => ['M4Tel', 'Max One'], 'M4 SS1090' => ['M4Tel', 'Max Ultra'], 'M4 SS4040' => ['M4Tel', 'SS4040'], 'M4 SS4041' => ['M4Tel', 'SS4041'], 'M4 SS4045' => ['M4Tel', 'SS4045']], 'MyPhone A818g Duo' => ['MyPhone', 'A818g Duo'], 'MyPhone A818 Slim Duo' => ['MyPhone', 'A818 Slim Duo'], 'MyPhone A848 Duo' => ['MyPhone', 'A848 Duo'], 'MyPhone A848i Duo' => ['MyPhone', 'A848i Duo'], 'MyPhone A848g Duo' => ['MyPhone', 'A848g Duo'], 'A878 Duo' => ['MyPhone', 'A878 Duo'], 'MyPhone A888' => ['MyPhone', 'A888 Duo'], 'MyPhone A888 Duo' => ['MyPhone', 'A888 Duo'], 'My|Phone A888 Duo' => ['MyPhone', 'A888 Duo'], 'A898 Duo' => ['MyPhone', 'A898 Duo'], 'MyPhone A919 Duo' => ['MyPhone', 'A919 Duo'], 'MyPhone A919 3D Duo' => ['MyPhone', 'A919 3D Duo'], 'MyPhone A919i' => ['MyPhone', 'A919i'], 'MyPhone A919i Duo' => ['MyPhone', 'A919i Duo'], 'MyPhone Agua Cyclone' => ['MyPhone', 'Agua Cyclone'], 'MyPhone Agua Hail' => ['MyPhone', 'Agua Hail'], 'MyPhone Agua Iceberg' => ['MyPhone', 'Agua Iceberg'], 'MyPhone Agua Iceberg Mini' => ['MyPhone', 'Agua Iceberg Mini'], 'MyPhone Agua Iceberg Slim' => ['MyPhone', 'Agua Iceberg Slim'], 'MyPhone Agua Infinity' => ['MyPhone', 'Agua Infinity'], 'MyPhone Agua Ocean Lite' => ['MyPhone', 'Agua Ocean Lite'], 'MyPhone Agua Ocean Mini' => ['MyPhone', 'Agua Ocean Mini'], 'MyPhone Agua Ocean Pro' => ['MyPhone', 'Agua Ocean Pro'], 'MyPhone Agua Rain 2G' => ['MyPhone', 'Agua Rain'], 'MyPhone Agua Rain 3G' => ['MyPhone', 'Agua Rain'], 'MyPhone Agua Rio' => ['MyPhone', 'Agua Rio'], 'MyPhone Agua Rio Fun' => ['MyPhone', 'Agua Rio Fun'], 'MyPhone Agua Rio Lite' => ['MyPhone', 'Agua Rio Lite'], 'MyPhone Agua Storm' => ['MyPhone', 'Agua Storm'], 'MyPhone Agua Vortex' => ['MyPhone', 'Agua Vortex'], 'myPhone C Smart' => ['MyPhone', 'C Smart'], 'myPhone Cube' => ['MyPhone', 'Cube'], 'myPhone Cube 16GB' => ['MyPhone', 'Cube'], 'myPhone Duosmart' => ['MyPhone', 'Duosmart'], 'myPhone FUN 2' => ['MyPhone', 'Fun 2'], 'myPhone Funky' => ['MyPhone', 'Funky'], 'myPhone Hammer' => ['MyPhone', 'Hammer'], 'myPhone INFINITY 3G' => ['MyPhone', 'Infinity'], 'myPhone NEXT' => ['MyPhone', 'NEXT'], 'myPhone NEXTS' => ['MyPhone', 'NEXT S'], 'myPhone NEXT S' => ['MyPhone', 'NEXT S'], 'myPhone Smart' => ['MyPhone', 'Smart'], 'myPhone S-line' => ['MyPhone', 'S-line'], 'MyPhone Rio Craze' => ['MyPhone', 'Rio Craze'], 'MyPhone Rio Grande' => ['MyPhone', 'Rio Grande'], 'MyPhone Rio Junior TV' => ['MyPhone', 'Rio Junior TV'], 'MyPhone Rio 2 Fun' => ['MyPhone', 'Rio 2 Fun'], 'MyPhone UNO' => ['MyPhone', 'Uno'], 'MyPhone Xperia Rain 3G' => ['MyPhone', 'Xperia Rain'], 'MyPad 2' => ['MyPhone', 'MyPad 2', DeviceType::TABLET], 'MyPad 750HD' => ['MyPhone', 'MyPad 750 HD', DeviceType::TABLET], 'MyPad 1000 HD' => ['MyPhone', 'MyPad 1000 HD', DeviceType::TABLET], 'MY ?SAGA!!' => ['MySAGA C1' => ['Mysaga', 'C1'], 'MY SAGA C2' => ['Mysaga', 'C2'], 'MY SAGA C3' => ['Mysaga', 'C3'], 'MYSAGA M1' => ['Mysaga', 'M1']], 'M\\.T\\.T\\.!!' => ['M.T.T. SmartFun' => ['M.T.T.', 'Smart Fun'], 'M.T.T.SmartMax' => ['M.T.T.', 'Smart Max'], 'M.T.T. Smart Multimedia' => ['M.T.T.', 'Smart Multimedia'], 'M.T.T. Tablet' => ['M.T.T.', 'Tablet', DeviceType::TABLET]], 'Newman K1' => ['Newman', 'K1'], 'NewmanK1' => ['Newman', 'K1'], 'Newman K2' => ['Newman', 'K2'], 'N1' => ['Newman', 'N1'], 'Newman N1' => ['Newman', 'N1'], 'Newman N2!' => ['Newman', 'N2'], 'Newman-N2!' => ['Newman', 'N2'], 'Newpad' => ['Newsmy', 'Newpad', DeviceType::TABLET], 'Newpad-K97' => ['Newsmy', 'Newpad K97', DeviceType::TABLET], 'Newpad-NP900' => ['Newsmy', 'Newpad NP900', DeviceType::TABLET], 'P7' => ['Newsmy', 'Newpad P7', DeviceType::TABLET], 'Newpad P9' => ['Newsmy', 'Newpad P9', DeviceType::TABLET], 'Newpad P72' => ['Newsmy', 'Newpad P72', DeviceType::TABLET], 'Newsmy P72' => ['Newsmy', 'Newpad P72', DeviceType::TABLET], 'Newsmy P72-C' => ['Newsmy', 'Newpad P72', DeviceType::TABLET], 'Newsmy T3' => ['Newsmy', 'Newpad T3', DeviceType::TABLET], 'Newsmy T7II' => ['Newsmy', 'Newpad T7 II', DeviceType::TABLET], 'M-PAD N8' => ['Newsmy', 'M-pad N8', DeviceType::TABLET], 'NEC PC-TE508S1' => ['NEC', 'LaVie Tab E', DeviceType::TABLET], 'LT-NA7' => ['NEC', 'LT-NA7'], 'LT-NA7F' => ['NEC', 'LT-NA7F LifeTouch'], 'LT-TLA' => ['NEC', 'LifeTouch L'], 'N-0[0-9][A-Z]!!' => ['N-01D' => ['NEC', 'MEDIAS PP N-01D', 'carrier' => 'DoCoMo'], 'N-02E' => ['NEC', 'MEDIAS U N-02E', 'carrier' => 'DoCoMo'], 'N-03E' => ['NEC', 'N-03E', 'carrier' => 'Disney Mobile'], 'N-04C' => ['NEC', 'MEDIAS N-04C', 'carrier' => 'DoCoMo'], 'N-04D' => ['NEC', 'MEDIAS LTE N-04D', 'carrier' => 'DoCoMo'], 'N-04E' => ['NEC', 'MEDIAS X N-04E', 'carrier' => 'DoCoMo'], 'N-05D' => ['NEC', 'MEDIAS ES N-05D', 'carrier' => 'DoCoMo'], 'N-05E' => ['NEC', 'MEDIAS W N-05E', 'carrier' => 'DoCoMo'], 'N-06C' => ['NEC', 'MEDIAS WP N-06C', 'carrier' => 'DoCoMo'], 'N-06D' => ['NEC', 'MEDIAS Tab N-06D', DeviceType::TABLET, 'carrier' => 'DoCoMo'], 'N-06E' => ['NEC', 'MEDIAS X N-06E', 'carrier' => 'DoCoMo'], 'N-07D' => ['NEC', 'MEDIAS X N-07D', 'carrier' => 'DoCoMo'], 'N-08D' => ['NEC', 'MEDIAS Tab UL N-08D', DeviceType::TABLET, 'carrier' => 'DoCoMo']], 'IS11N' => ['NEC', 'MEDIAS BR IS11N', 'carrier' => 'au'], '101N' => ['NEC', 'MEDIAS CH 101N', 'carrier' => 'Softbank'], 'NEC-101S' => ['NEC', 'MEDIAS 101S'], 'NECTEL-101S' => ['NEC', 'MEDIAS 101S'], 'NEC-101T' => ['NEC', 'MEDIAS 101T'], '101T' => ['NEC', 'MEDIAS 101T'], 'NEC-101TH' => ['NEC', 'MEDIAS 101TH'], 'NEC-102' => ['NEC', 'MEDIAS 102'], 'NE-103T' => ['NEC', 'MEDIAS U 103T'], 'NE-202' => ['NEC', 'MEDIAS', 'carrier' => 'Biglobe'], 'NE-201A1A' => ['NEC', 'Terrain'], 'NEC-NE-201A1A' => ['NEC', 'Terrain'], 'NEC-NEC-NE-201A1A' => ['NEC', 'Terrain'], 'LaVieTab!!' => ['LaVieTab PC-TE508S1' => ['NEC', 'LaVie Tab E TE508', DeviceType::TABLET], 'LaVieTab PC-TE510N1B' => ['NEC', 'LaVie Tab E TE510', DeviceType::TABLET], 'LaVieTab PC-TE510S1' => ['NEC', 'LaVie Tab E TE510', DeviceType::TABLET], 'LaVieTab TE510S1' => ['NEC', 'LaVie Tab E TE510', DeviceType::TABLET], 'LaVieTab PC-TS507N1S' => ['NEC', 'LaVie Tab S TS507', DeviceType::TABLET]], 'OPS-DRD Digital Signage Player' => ['NEC', 'OPS-DRD Digital Signage Player', DeviceType::SIGNAGE], 'neken!!' => ['neken N5' => ['Neken', 'N5'], 'neken N6' => ['Neken', 'N6'], 'neken NX' => ['Neken', 'NX']], 'GTV100' => ['NETGEAR', 'NeoTV Prime', DeviceType::TELEVISION, Flag::GOOGLETV], 'NEO!!' => ['NEO N01' => ['NEO', 'N01'], 'NEO N002' => ['NEO', 'N002'], 'NEO N002i' => ['NEO', 'N002i']], '(Nexian )?NX-A[0-9]{3,3}!!' => ['NX-A712' => ['Nexian', 'Explorer'], 'Nexian NX-A890' => ['Nexian', 'Journey'], 'NX-A890' => ['Nexian', 'Journey'], 'NX-A891' => ['Nexian', 'Ultra Journey'], 'NX-A895' => ['Nexian', 'Cosmo Journey'], 'NX-A899' => ['Nexian', 'Xtreme']], 'Nextbook Premium 7' => ['Nextbook', 'Premium 7', DeviceType::EREADER], 'M726HC' => ['Nextbook', 'Premium 7', DeviceType::EREADER], 'Next7C12!' => ['Nextbook', 'Premium 7', DeviceType::EREADER], 'Next7D12!' => ['Nextbook', 'Premium 7', DeviceType::EREADER], 'Next7P12!' => ['Nextbook', 'Premium 7', DeviceType::EREADER], 'Next7Q12!' => ['Nextbook', 'Premium 7', DeviceType::EREADER], 'Next7P' => ['Nextbook', 'Premium 7', DeviceType::EREADER], 'Next7S' => ['Nextbook', 'Premium 7', DeviceType::EREADER], 'NXM726' => ['Nextbook', 'Premium 7', DeviceType::EREADER], 'NXM726HN' => ['Nextbook', 'Premium 7', DeviceType::EREADER], 'NXM726HN C030' => ['Nextbook', 'Premium 7', DeviceType::EREADER], 'NXM726HN HASTINGS' => ['Nextbook', 'Premium 7', DeviceType::EREADER], 'NXM727KC!' => ['Nextbook', 'Premium 7', DeviceType::EREADER], 'Nextbook Premium 7 SE' => ['Nextbook', 'Premium 7 SE', DeviceType::EREADER], 'NEXT8P' => ['Nextbook', 'Premium 8', DeviceType::EREADER], 'Next8P11' => ['Nextbook', 'Premium 8', DeviceType::EREADER], 'Next8P12' => ['Nextbook', 'Premium 8', DeviceType::EREADER], 'NXM803HC' => ['Nextbook', 'Premium 8', DeviceType::EREADER], 'NXM803HD' => ['Nextbook', 'Premium 8', DeviceType::EREADER], 'NX868QW8G' => ['Nextbook', 'Premium 8', DeviceType::EREADER], 'DATAM803HC' => ['Nextbook', 'Premium 8', DeviceType::EREADER], 'DATAM805HC' => ['Nextbook', 'Premium 8 SE', DeviceType::EREADER], 'NXM805ND' => ['Nextbook', 'Premium 8 SE', DeviceType::EREADER], 'NXM805ND EN' => ['Nextbook', 'Premium 8 SE', DeviceType::EREADER], 'DATAM819HD!' => ['Nextbook', 'Premium 8', DeviceType::EREADER], 'Next9P' => ['Nextbook', 'Premium 9', DeviceType::EREADER], 'NXM908HC' => ['Nextbook', 'Premium 9', DeviceType::EREADER], 'Next10P12' => ['Nextbook', 'Premium 10', DeviceType::EREADER], 'NXM703U' => ['Nextbook', 'Next 2', DeviceType::EREADER], 'NXM901' => ['Nextbook', 'Next 3', DeviceType::EREADER], 'NXM736' => ['Nextbook', 'Next 6', DeviceType::EREADER], 'NX700QC' => ['Nextbook', '7', DeviceType::TABLET], 'NX785QC8G' => ['Nextbook', '8', DeviceType::TABLET], 'NGM Black Hole' => ['NGM', 'Black Hole'], 'Dynamic Fun' => ['NGM', 'Dynamic Fun'], 'Dynamic Jump' => ['NGM', 'Dynamic Jump'], 'Dynamic Maxi' => ['NGM', 'Dynamic Maxi'], 'Dynamic Milo' => ['NGM', 'Dynamic Milo'], 'Dynamic Racing 2' => ['NGM', 'Dynamic Racing 2'], 'NGM Dynamic Racing 2' => ['NGM', 'Dynamic Racing 2'], 'NGM Dynamic Racing 3' => ['NGM', 'Dynamic Racing 3'], 'Dynamic Raging Go' => ['NGM', 'Dynamic Racing Go'], 'Dynamic Shake' => ['NGM', 'Dynamic Shake'], 'NGM Dynamic Star' => ['NGM', 'Dynamic Star'], 'Stylo' => ['NGM', 'Dynamic Stylo'], 'Dynamic Wide' => ['NGM', 'Dynamic Wide'], 'Dynamic Wing' => ['NGM', 'Dynamic Wing'], 'Forward Active' => ['NGM', 'Forward Active'], 'Forward Art' => ['NGM', 'Forward Art'], 'Forward Escape' => ['NGM', 'Forward Escape'], 'Forward Endurance' => ['NGM', 'Forward Endurance'], 'FORWARD EVOLVE' => ['NGM', 'Forward Evolve'], 'Forward Infinity' => ['NGM', 'Forward Infinity'], 'NGM Forward Infinity' => ['NGM', 'Forward Infinity'], 'Forward Next' => ['NGM', 'Forward Next'], 'Forward Prime' => ['NGM', 'Forward Prime'], 'Forward Racing 3' => ['NGM', 'Forward Racing 3'], 'NGM Forward Racing HD' => ['NGM', 'Forward Racing HD'], 'Forward Ruby' => ['NGM', 'Forward Ruby'], 'Forward Shake' => ['NGM', 'Forward Shake'], 'ForwardXtreme' => ['NGM', 'Forward Xtreme'], 'Forward Young' => ['NGM', 'Forward Young'], 'NGM Forward Young' => ['NGM', 'Forward Young'], 'ForwardZero' => ['NGM', 'Forward Zero'], 'Forward 5 5' => ['NGM', 'Forward 5.5'], 'Forward 5.5' => ['NGM', 'Forward 5.5'], 'NGM Harley' => ['NGM', 'Harley Davidson'], 'NGM Orion' => ['NGM', 'Orion'], 'NGM Spirit' => ['NGM', 'Spirit'], 'NGM Time' => ['NGM', 'Time'], 'NGM Vanity Smart' => ['NGM', 'Vanity Smart'], 'NGM Action' => ['NGM', 'WeMove Action'], 'NGM Legend' => ['NGM', 'WeMove Legend'], 'NGM-Legend/Legend' => ['NGM', 'WeMove Legend'], 'NGM Legend2' => ['NGM', 'WeMove Legend 2'], 'NGM LegendXL' => ['NGM', 'WeMove Legend XL'], 'NGM Miracle' => ['NGM', 'WeMove Miracle'], 'NGM P0laris' => ['NGM', 'WeMove Polaris'], 'NGM Wilco' => ['NGM', 'WeMove Wilco'], 'NGM WINN' => ['NGM', 'Winn'], 'COOLPIX S800c' => ['Nikon', 'Coolpix S800c', DeviceType::CAMERA], 'i5300' => ['Ninetology', 'Palette'], 'i5350' => ['Ninetology', 'Pearl Mini'], 'nine i7400' => ['Ninetology', 'Black Pearl'], 'I 7520' => ['Ninetology', 'Stealth'], 'i8400' => ['Ninetology', 'U9 P1'], 'i8450' => ['Ninetology', 'U9 Q1'], 'i9400' => ['Ninetology', 'Black Pearl II'], 'i9430' => ['Ninetology', 'Insight'], 'i9480' => ['Ninetology', 'U9 X1'], 'i9500' => ['Ninetology', 'Stealth II'], 'i9570' => ['Ninetology', 'U9 Z1'], 'NO1 S6' => ['No.1', 'S6'], 'NOAIN!!' => ['NOAIN A700' => ['Noain', 'A700'], 'NOAIN A900' => ['Noain', 'A900'], 'NOAIN A900S' => ['Noain', 'A900S'], 'NOAIN A903' => ['Noain', 'A903'], 'NOAIN A918' => ['Noain', 'A918']], 'NBX-T7013N' => ['Noblex', 'T7013N', DeviceType::TABLET], 'NBX-T7023N' => ['Noblex', 'T7023N', DeviceType::TABLET], 'Nokia N9' => ['Nokia', 'N9'], 'Nokia N900' => ['Nokia', 'N900'], 'Nokia X' => ['Nokia', 'X', DeviceType::MOBILE, Flag::NOKIAX], 'Nokia X Dual SIM' => ['Nokia', 'X', DeviceType::MOBILE, Flag::NOKIAX], 'RM-980' => ['Nokia', 'X', DeviceType::MOBILE, Flag::NOKIAX], 'Nokia X+' => ['Nokia', 'X+', DeviceType::MOBILE, Flag::NOKIAX], 'Nokia Xplus' => ['Nokia', 'X+', DeviceType::MOBILE, Flag::NOKIAX], 'Nokia XL 4G' => ['Nokia', 'XL', DeviceType::MOBILE, Flag::NOKIAX], 'Nokia XL' => ['Nokia', 'XL', DeviceType::MOBILE, Flag::NOKIAX], 'Nokia XL Dual SIM' => ['Nokia', 'XL', DeviceType::MOBILE, Flag::NOKIAX], 'RM-1061' => ['Nokia', 'XL', DeviceType::MOBILE, Flag::NOKIAX], 'Nokia X2' => ['Nokia', 'X2', DeviceType::MOBILE, Flag::NOKIAX], 'NokiaX2DS' => ['Nokia', 'X2', DeviceType::MOBILE, Flag::NOKIAX], 'Lumia800' => ['Nokia', 'Lumia 800'], 'Lumia 900' => ['Nokia', 'Lumia 900'], 'Notion Ink ADAM' => ['Notion Ink', 'ADAM', DeviceType::TABLET], 'Adam' => ['Notion Ink', 'ADAM', DeviceType::TABLET], 'AND1' => ['NUgen', 'AND1'], 'Zaffire 785' => ['Nuqleo', 'Zaffire 785', DeviceType::TABLET], 'Zaffire 970' => ['Nuqleo', 'Zaffire 970', DeviceType::TABLET], 'P4D Sirius' => ['Nvsbl', 'P4D SIRIUS', DeviceType::TABLET], 'Tegra!!' => ['Tegra Note 7' => ['Nvidia', 'Tegra Note 7', DeviceType::TABLET], 'Tegra Note 8' => ['Nvidia', 'Tegra Note 8', DeviceType::TABLET], 'TegraNote-Premium' => ['Nvidia', 'Tegra Note Premium', DeviceType::TABLET], 'TegraNote-P1640' => ['Nvidia', 'Tegra Note P1640', DeviceType::TABLET]], 'NYX!!' => ['NYX FLY' => ['NYX Mobile', 'Fly'], 'NYX FLY II' => ['NYX Mobile', 'Fly II'], 'NYX NOBA II' => ['NYX Mobile', 'Noba II'], 'NYX ZEUZ HD' => ['NYX Mobile', 'Zeuz HD']], 'O\\+!!' => ['O+8.1Android' => ['O+', '8.1'], 'O+ 8.12 Android' => ['O+', '8.12'], 'O+ 8.15 Android' => ['O+', '8.15'], 'O+ 8.16 Android' => ['O+', '8.16'], 'O+ 8.31z Android' => ['O+', '8.31'], 'O+ 8.36z Android' => ['O+', '8.36'], 'O+ 8.37 Android' => ['O+', '8.37'], 'O+ 8.5 Android' => ['O+', '8.5'], 'O+ 8.52 Android' => ['O+', '8.52'], 'O+ 8.6 Android' => ['O+', '8.6'], 'O+ 8.7 Android' => ['O+', '8.7'], 'O+ 8.75 Android' => ['O+', '8.75'], 'O+ 8.9 Android' => ['O+', '8.9'], 'O+ 8.91 Android' => ['O+', '8.91'], 'O+ 8.92 Android' => ['O+', '8.92'], 'O+ 9.76' => ['O+', '9.76'], 'O+ 360' => ['O+', '360'], 'O+ AIR' => ['O+', 'Air'], 'O+ FAB 3G' => ['O+', 'Fab'], 'O+FAB COLOR' => ['O+', 'Fab Color'], 'O+ FAB ELITE' => ['O+', 'Fab Elite'], 'O+ TABLET' => ['O+', 'Tablet', DeviceType::TABLET]], 'S500' => ['Obi', 'Yeti S500'], 'EFM710A' => ['Oblio', 'Mint 7x', DeviceType::TABLET], 'ODYS-Chrono' => ['Odys', 'Chrono', DeviceType::TABLET], 'ODYS-EVO' => ['Odys', 'Evo', DeviceType::TABLET], 'Loox' => ['Odys', 'Loox', DeviceType::TABLET], 'Odys-Loox' => ['Odys', 'Loox', DeviceType::TABLET], 'ADM816KC' => ['Odys', 'Neo S8 Plus', DeviceType::TABLET], 'ADM816HC' => ['Odys', 'Neo X', DeviceType::TABLET], 'ADM712HC' => ['Odys', 'Neo X7', DeviceType::TABLET], 'ODYS-NOON' => ['Odys', 'Noon', DeviceType::TABLET], 'ODYS-Q' => ['Odys', 'Q', DeviceType::TABLET], 'ODYS Space' => ['Odys', 'Space', DeviceType::TABLET], 'ODYS Space TKI BRR233v7' => ['Odys', 'Space', DeviceType::TABLET], 'ODYS Space TKI BRR233v9' => ['Odys', 'Space', DeviceType::TABLET], 'ADM8000KP A' => ['Odys', 'Titan', DeviceType::TABLET], 'ADM8000KP B' => ['Odys', 'Titan', DeviceType::TABLET], 'UNO X10' => ['Odys', 'Uno X10', DeviceType::TABLET], 'XELIO' => ['Odys', 'Xelio', DeviceType::TABLET], 'XELIO7PHONETAB' => ['Odys', 'Xelio 7 Phone Tab', DeviceType::TABLET], 'Xelio 7 pro' => ['Odys', 'Xelio 7 Pro', DeviceType::TABLET], 'XELIO7PRO' => ['Odys', 'Xelio 7 Pro', DeviceType::TABLET], 'XELIO10 QUAD' => ['Odys', 'Xelio 10', DeviceType::TABLET], 'XELIO10EXTREME' => ['Odys', 'Xelio 10 Extreme', DeviceType::TABLET], 'Xelio 10 Pro' => ['Odys', 'Xelio 10 Pro', DeviceType::TABLET], 'Xelio10Pro' => ['Odys', 'Xelio 10 Pro', DeviceType::TABLET], 'ODYS-Xpress' => ['Odys', 'Xpress', DeviceType::TABLET], 'ODYS Xtreme' => ['Odys', 'Xtreme', DeviceType::TABLET], 'Olivetti Olipad 100' => ['Olivetti', 'Olipad 100', DeviceType::TABLET], 'OP110' => ['Olivetti', 'Olipad 110', DeviceType::TABLET], 'A0001' => ['OnePlus', 'One'], 'One A0001' => ['OnePlus', 'One'], 'OnePlus One' => ['OnePlus', 'One'], 'OnePlus One A0001' => ['OnePlus', 'One'], 'A1001' => ['OnePlus', 'One'], 'A0002' => ['OnePlus', '2'], 'ONE A2001' => ['OnePlus', '2'], 'ONE A2003' => ['OnePlus', '2'], 'ONE A2005' => ['OnePlus', '2'], 'ONE E1000' => ['OnePlus', 'X'], 'ONE E1001' => ['OnePlus', 'X'], 'ONE E1003' => ['OnePlus', 'X'], 'ONE E1005' => ['OnePlus', 'X'], 'ONDA MID' => ['Onda', 'MID', DeviceType::TABLET], 'ONDA A9 Core4' => ['Onda', 'A9 Quad Core', DeviceType::TABLET], 'ONDA VI10' => ['Onda', 'VI10', DeviceType::TABLET], 'V701s Core4' => ['Onda', 'V701s Quad Core', DeviceType::TABLET], 'V711s Core4' => ['Onda', 'V711s Quad Core', DeviceType::TABLET], 'V712 Core4' => ['Onda', 'V712 Quad Core', DeviceType::TABLET], 'V719 3G' => ['Onda', 'V719 3G', DeviceType::TABLET], 'V801 Core4' => ['Onda', 'V801 Quad Core', DeviceType::TABLET], 'V801s Core4' => ['Onda', 'V801s Quad Core', DeviceType::TABLET], 'V811 Core4' => ['Onda', 'V811 Quad Core', DeviceType::TABLET], 'Onda V812' => ['Onda', 'V812', DeviceType::TABLET], 'V812 Core4' => ['Onda', 'V812 Quad Core', DeviceType::TABLET], 'V813 Core4' => ['Onda', 'V813 Quad Core', DeviceType::TABLET], 'V813s Core4' => ['Onda', 'V813s Quad Core', DeviceType::TABLET], 'V818' => ['Onda', 'V818', DeviceType::TABLET], 'V818mini' => ['Onda', 'V818 Mini', DeviceType::TABLET], 'V819mini' => ['Onda', 'V819 Mini', DeviceType::TABLET], 'V819 3G' => ['Onda', 'V819 3G', DeviceType::TABLET], 'V819i' => ['Onda', 'V819i', DeviceType::TABLET], 'V971 Core4' => ['Onda', 'V971 Quad Core', DeviceType::TABLET], 'V971s Core4' => ['Onda', 'V971s Quad Core', DeviceType::TABLET], 'V972 Core4' => ['Onda', 'V972 Quad Core', DeviceType::TABLET], 'V973 Core4' => ['Onda', 'V973 Quad Core', DeviceType::TABLET], 'V975 Core4' => ['Onda', 'V975 Quad Core', DeviceType::TABLET], 'V975i' => ['Onda', 'V975i Quad Core', DeviceType::TABLET], 'V975m' => ['Onda', 'V975m', DeviceType::TABLET], 'V975m Core4' => ['Onda', 'V975m Quad Core', DeviceType::TABLET], 'ONDA v975m' => ['Onda', 'V975m Quad Core', DeviceType::TABLET], 'V975s Core4' => ['Onda', 'V975s Quad Core', DeviceType::TABLET], 'ONDA V989' => ['Onda', 'V989', DeviceType::TABLET], 'ONDA V989 Core8' => ['Onda', 'V989 Octo Core', DeviceType::TABLET], 'VX580A' => ['Onda', 'VX580A', DeviceType::TABLET], 'VX580W' => ['Onda', 'VX580W', DeviceType::TABLET], 'VX610A' => ['Onda', 'VX610A', DeviceType::TABLET], 'TQ150' => ['Onda', 'TQ150'], 'TT101' => ['Onda', 'TT101', DeviceType::TABLET], 'N2T' => ['ONN', 'N2T', DeviceType::TABLET], 'Renesas!' => ['Opad', 'Renesas', DeviceType::TABLET], 'A31' => ['Oppo', 'A31'], 'OB-OPPO A31c' => ['Oppo', 'A31c'], 'OPPO A800' => ['Oppo', 'A800'], 'Find 5' => ['Oppo', 'Find 5'], 'X903' => ['Oppo', 'Find Me X903'], 'X905' => ['Oppo', 'Find 3 X905'], 'OPPOX905' => ['Oppo', 'Find 3 X905'], 'X906' => ['Oppo', 'Finder X906'], 'X907' => ['Oppo', 'Finder X907'], 'OPPOX907' => ['Oppo', 'Finder X907'], 'OPPO Find5' => ['Oppo', 'Find 5 X909'], 'OPPOX909' => ['Oppo', 'Find 5 X909'], 'OPPO X909' => ['Oppo', 'Find 5 X909'], 'X909' => ['Oppo', 'Find 5 X909'], 'X909T' => ['Oppo', 'Find 5 X909T'], 'X9000' => ['Oppo', 'Find 7a X9000'], 'X9006' => ['Oppo', 'Find 7a X9006'], 'X9007' => ['Oppo', 'Find 7a X9007'], 'X9015' => ['Oppo', 'Find X9015'], 'OPPOX9015' => ['Oppo', 'Find X9015'], 'X9017' => ['Oppo', 'Finder X9017'], 'OPPOX9017' => ['Oppo', 'Finder X9017'], 'FIND7' => ['Oppo', 'Find 7 X9070'], 'OPPO find7' => ['Oppo', 'Find 7 X9070'], 'X9070' => ['Oppo', 'Find 7 X9070'], 'X9076' => ['Oppo', 'Find 7 X9076'], 'X9077' => ['Oppo', 'Find 7 X9077'], 'OPPOR601' => ['Oppo', 'Real R601'], 'R801' => ['Oppo', 'Real R801'], 'OPPOR801' => ['Oppo', 'Real R801'], 'R801T' => ['Oppo', 'Real R801T'], 'OPPOR803' => ['Oppo', 'Real R803'], 'R803' => ['Oppo', 'Real R803'], 'R805' => ['Oppo', 'Real R805'], 'OPPOR805' => ['Oppo', 'Real R805'], 'R807' => ['Oppo', 'Real R807'], 'OPPOR807' => ['Oppo', 'Real R807'], 'R809T' => ['Oppo', 'R809T'], 'R811' => ['Oppo', 'R811'], 'OPPO R811' => ['Oppo', 'R811'], 'R813T' => ['Oppo', 'R813T'], 'OPPO R815' => ['Oppo', 'Find Clover R815'], 'R815' => ['Oppo', 'Find Clover R815'], 'R815T' => ['Oppo', 'Find Clover R815T'], 'R815W' => ['Oppo', 'Real R815W'], 'OPPOR817' => ['Oppo', 'Real R817'], 'R817' => ['Oppo', 'Real R817'], 'R817T' => ['Oppo', 'Real R817T'], 'R819' => ['Oppo', 'R819'], 'Oppo R819' => ['Oppo', 'R819'], 'R819T!' => ['Oppo', 'Real R819T'], 'OPPO R821' => ['Oppo', 'Find Muse R821'], 'R821' => ['Oppo', 'Find Muse R821'], 'R821T' => ['Oppo', 'Find Muse R821T'], 'R823T' => ['Oppo', 'R823T'], 'R827' => ['Oppo', 'Find 5 mini R827'], 'R827T' => ['Oppo', 'Find 5 mini R827T'], 'R829' => ['Oppo', 'R1 R829'], 'R829T' => ['Oppo', 'R1 R829T'], 'R830' => ['Oppo', 'Neo R830'], 'R830S' => ['Oppo', 'Neo R830S'], 'OPPO R831' => ['Oppo', 'Neo R831'], 'Oppo R831 Limited Edition' => ['Oppo', 'Neo R831'], 'R831K' => ['Oppo', 'Real 20 R831K'], 'R831L' => ['Oppo', 'Neo 5 R831L'], 'R831T' => ['Oppo', 'Neo R831T'], 'R831S' => ['Oppo', 'R831S'], 'R831' => ['Oppo', 'Neo R831'], 'R833T' => ['Oppo', 'R833T'], 'R850' => ['Oppo', 'R850'], 'R883T' => ['Oppo', 'R883T'], 'R1001' => ['Oppo', 'Joy R1001'], 'OPPO R1001' => ['Oppo', 'Joy R1001'], 'R2010' => ['Oppo', 'R2010'], 'R2017' => ['Oppo', 'R2017'], 'R6006' => ['Oppo', 'Find 7 mini R6006'], 'R6007' => ['Oppo', 'R6007'], 'R7005' => ['Oppo', 'R3 R7005'], 'R7007' => ['Oppo', 'R3 R7007'], 'R8000' => ['Oppo', 'R1S R8000'], 'R8006' => ['Oppo', 'R1L R8006'], 'R8007' => ['Oppo', 'R1S R8007'], 'OPPOR8015' => ['Oppo', 'Find Guitar R8015'], 'R8015' => ['Oppo', 'Find Guitar R8015'], 'R8106' => ['Oppo', 'R5 R8106'], 'R8107' => ['Oppo', 'R5 R8107'], 'R8109' => ['Oppo', 'R8109'], 'R8111' => ['Oppo', 'Find Melody R8111'], 'OPPOR8111' => ['Oppo', 'Find Melody R8111'], 'R8113' => ['Oppo', 'Find Piano R8113'], 'R8200' => ['Oppo', 'R1c R8200'], 'R8201' => ['Oppo', 'R1x R8201'], 'R8205' => ['Oppo', 'R1c R8205'], 'R8206' => ['Oppo', 'R1x R8206'], 'R8207' => ['Oppo', 'R1c R8207'], 'OPPOT29' => ['Oppo', 'T29'], '(OPPO-?)?T703!' => ['Oppo', 'T703'], 'OPPOU701' => ['Oppo', 'Ulike U701'], 'U701' => ['Oppo', 'Ulike U701'], 'U701T' => ['Oppo', 'U701T'], 'U702' => ['Oppo', 'U702'], 'U705' => ['Oppo', 'U705'], 'U705T' => ['Oppo', 'Ulike 2 U705T'], 'U705W' => ['Oppo', 'Ulike 2 U705W'], 'U707' => ['Oppo', 'Find Way S U707'], 'U707T' => ['Oppo', 'Find Way S U707T'], 'U7011' => ['Oppo', 'Find Gemini U7011'], 'OPPOU7011' => ['Oppo', 'Find Gemini U7011'], 'OPPOU7015' => ['Oppo', 'Find Way U7015'], 'U7015' => ['Oppo', 'Find Way U7015'], 'OPPO N1' => ['Oppo', 'N1'], 'N51[11|17]!' => ['Oppo', 'N1 mini'], 'N5207' => ['Oppo', 'N3'], 'OPPO R7' => ['Oppo', 'R7'], 'OPPO R7s' => ['Oppo', 'R7s'], 'OPPO R7 Plus' => ['Oppo', 'R7 Plus'], 'A31c' => ['Oppo', 'A31c'], 'W8' => ['Oppo', 'W8'], '1105' => ['Oppo', '1105'], '1107' => ['Oppo', '1107'], 'OB-OPPO 3005' => ['Oppo', '3005'], 'OPSSON!!' => ['OPSSON D1' => ['Opsson', 'D1'], 'OPSSON D1s' => ['Opsson', 'D1s'], 'OPSSON S1' => ['Opsson', 'S1'], 'OPSSON S7' => ['Opsson', 'S7'], 'OPSSON IDO 5000' => ['Opsson', 'IDO 5000'], 'OPSSON IDO5300' => ['Opsson', 'IDO 5300'], 'OPSSON IDO 5311' => ['Opsson', 'IDO 5311'], 'OPSSON IDO 5322' => ['Opsson', 'IDO 5322'], 'OPSSON iMO850' => ['Opsson', 'IMO 850'], 'OPSSON iMO1000' => ['Opsson', 'IMO 1000'], 'OPSSON IVO6600' => ['Opsson', 'IVO 6600'], 'OPSSON IVO6622' => ['Opsson', 'IVO 6622'], 'OPSSON IVO6655' => ['Opsson', 'IVO 6655'], 'OPSSON IVO6666' => ['Opsson', 'IVO 6666'], 'OPSSON IVO 6677' => ['Opsson', 'IVO 6677'], 'OPSSON IVO 8800' => ['Opsson', 'IVO 8800']], 'OP0118-12' => ['Oregon Scientific', 'Meep!', DeviceType::TABLET], '(OV-|Overmax|Vertis)!!' => ['OV-TB-07B' => ['Overmax', 'TB-07B', DeviceType::TABLET], 'OV-TB-08 II' => ['Overmax', 'TB-08 II', DeviceType::TABLET], 'OV-TB-O9C' => ['Overmax', 'TB-09C', DeviceType::TABLET], 'OV-BaseCore10' => ['Overmax', 'BaseCore 10', DeviceType::TABLET], 'OV-BaseoneII' => ['Overmax', 'BaseOne II', DeviceType::TABLET], 'OV-BasicTab' => ['Overmax', 'BasicTab', DeviceType::TABLET], 'OV-DualDriveMax2' => ['Overmax', 'DualDrive Max II', DeviceType::TABLET], 'OV-Newbase2' => ['Overmax', 'NewBase 2', DeviceType::TABLET], 'OV-Quattor10' => ['Overmax', 'Quatttor 10', DeviceType::TABLET], 'OV-Quattor 10+' => ['Overmax', 'Quatttor 10+', DeviceType::TABLET], 'OV-Solution 7II' => ['Overmax', 'Solution 7 II', DeviceType::TABLET], 'OV-Solution 10II' => ['Overmax', 'Solution 10 II', DeviceType::TABLET], 'OV-SteelCore7' => ['Overmax', 'SteelCore 7', DeviceType::TABLET], 'OV-STEELCORE 10+ (Z)' => ['Overmax', 'SteelCore 10+', DeviceType::TABLET], 'OV-SteelCore10+II' => ['Overmax', 'SteelCore 10+ II', DeviceType::TABLET], 'OV-Steelcore10III' => ['Overmax', 'SteelCore 10 III', DeviceType::TABLET], 'OV-Steelcore 10III(Z)' => ['Overmax', 'SteelCore 10 III', DeviceType::TABLET], 'Overmax Vertis' => ['Overmax', 'Vertis 01'], 'Overmax Vertis 01' => ['Overmax', 'Vertis 01'], 'OV-Vertis-01' => ['Overmax', 'Vertis 01'], 'OV-Vertis-02' => ['Overmax', 'Vertis 02'], 'Vertis Expi' => ['Overmax', 'Vertis Expi'], 'Vertis Famy' => ['Overmax', 'Vertis Famy']], 'Oysters Pacific 800' => ['Oysters', 'Pacific 800'], 'Oysters T3 3G' => ['Oysters', 'T3'], 'Oysters T7X 3G' => ['Oysters', 'T7X'], 'OYSTERS T14N 3G' => ['Oysters', 'T14N'], 'Liberty Tab G100' => ['Packard Bell', 'Liberty Tab G100', DeviceType::TABLET], 'G100W' => ['Packard Bell', 'Liberty Tab G100', DeviceType::TABLET], 'P-0[0-9][A-Z]!!' => ['P-01D' => ['Panasonic', 'P-01D', 'carrier' => 'DoCoMo'], 'P-02D' => ['Panasonic', 'LUMIX Phone P-02D', 'carrier' => 'DoCoMo'], 'P-02E' => ['Panasonic', 'ELUGA X P-02E', 'carrier' => 'DoCoMo'], 'P-03E' => ['Panasonic', 'ELUGA P P-03E', 'carrier' => 'DoCoMo'], 'P-04D' => ['Panasonic', 'P-04D', 'carrier' => 'DoCoMo'], 'P-05D' => ['Panasonic', 'P-05D', 'carrier' => 'Disney Mobile'], 'P-06D' => ['Panasonic', 'ELUGA V P-06D', 'carrier' => 'DoCoMo'], 'P-07C' => ['Panasonic', 'P-07C', 'carrier' => 'DoCoMo'], 'P-07D' => ['Panasonic', 'ELUGA power P-07D', 'carrier' => 'DoCoMo'], 'P-08D' => ['Panasonic', 'ELUGA Live P-08D', DeviceType::TABLET, 'carrier' => 'DoCoMo']], '003P' => ['Panasonic', 'Sweety 003P', 'carrier' => 'Softbank'], '101P' => ['Panasonic', 'LUMIX Phone 101P', 'carrier' => 'Softbank'], '102P' => ['Panasonic', 'ELUGA dL1 102P', 'carrier' => 'Softbank'], 'DMC-CM1' => ['Panasonic', 'Lumix DMC-CM1', DeviceType::CAMERA], 'dL1' => ['Panasonic', 'Eluga dL1'], 'EB-4063-X' => ['Panasonic', 'Eluga X'], 'Panasonic!!' => ['Panasonic dL1' => ['Panasonic', 'Eluga dL1'], 'Panasonic ELUGA A' => ['Panasonic', 'Eluga A'], 'Panasonic ELUGA I' => ['Panasonic', 'Eluga I'], 'Panasonic ELUGA L 4G' => ['Panasonic', 'Eluga L'], 'Panasonic ELUGA L2' => ['Panasonic', 'Eluga L2'], 'Panasonic ELUGA S' => ['Panasonic', 'Eluga S'], 'Panasonic ELUGA U' => ['Panasonic', 'Eluga U'], 'Panasonic ELUGA Mark' => ['Panasonic', 'Eluga Mark'], 'Panasonic ELUGA Switch' => ['Panasonic', 'Eluga Switch'], 'Panasonic P11' => ['Panasonic', 'P11'], 'Panasonic P31' => ['Panasonic', 'P31'], 'Panasonic P41' => ['Panasonic', 'P41'], 'Panasonic P41HD' => ['Panasonic', 'P41 HD'], 'Panasonic P51' => ['Panasonic', 'P51'], 'Panasonic P55' => ['Panasonic', 'P55'], 'Panasonic P55 Novo' => ['Panasonic', 'P55 Novo'], 'Panasonic P61' => ['Panasonic', 'P61'], 'PanasonicP81' => ['Panasonic', 'P81'], 'Panasonic P81' => ['Panasonic', 'P81'], 'Panasonic T9' => ['Panasonic', 'T9'], 'Panasonic T11' => ['Panasonic', 'T11'], 'Panasonic T21' => ['Panasonic', 'T21'], 'Panasonic T31' => ['Panasonic', 'T31'], 'Panasonic T40' => ['Panasonic', 'T40'], 'Panasonic T41' => ['Panasonic', 'T41'], 'Panasonic T45 4G' => ['Panasonic', 'T45'], 'Panasonic KX-PRXA10' => ['Panasonic', 'KX-PRXA10', DeviceType::DECT], 'Panasonic KX-PRXA15' => ['Panasonic', 'KX-PRXA15', DeviceType::DECT], 'Panasonic SV-ME970' => ['Panasonic', 'Viera SV-ME970', DeviceType::TABLET], 'Panasonic SV-ME1000' => ['Panasonic', 'Viera SV-ME1000', DeviceType::TABLET], 'Panasonic SV-MV100' => ['Panasonic', 'SV-MV100', DeviceType::MEDIA], 'Panasonic UN-W700' => ['Panasonic', 'Multimedia System UN-W700', DeviceType::MEDIA], 'Panasonic UT-PB1' => ['Panasonic', 'Raboo UT-PB1', DeviceType::EREADER]], 'JT-H580VT' => ['Panasonic', 'BizPad 7', DeviceType::TABLET], 'JT-H581VT' => ['Panasonic', 'BizPad 10', DeviceType::TABLET], 'FZ-A1(A|B)!' => ['Panasonic', 'Toughpad', DeviceType::TABLET], 'FZ-B2(B|D)!' => ['Panasonic', 'Toughpad', DeviceType::TABLET], 'FZ-X1' => ['Panasonic', 'Toughpad', DeviceType::TABLET], 'pandigital9hr' => ['Pandigital', '9HR', DeviceType::TABLET], 'pandigital9hr2' => ['Pandigital', '9HR2', DeviceType::TABLET], 'pandigitalopc1' => ['Pandigital', 'OPC1', DeviceType::TABLET], 'pandigitalopp1' => ['Pandigital', 'OPP1', DeviceType::TABLET], 'pandigitalp1hr' => ['Pandigital', 'p1hr', DeviceType::TABLET], '(SKY )?IM[- ][A-Z][0-9]{3,3}!!' => ['SKY IM-A600S' => ['Pantech', 'SIRIUS α'], 'IM-A600!' => ['Pantech', 'SIRIUS α'], 'SKY IM-A630K' => ['Pantech', 'Izar'], 'IM-A630!' => ['Pantech', 'Izar'], 'SKY IM-A650S' => ['Pantech', 'Vega'], 'IM-A650!' => ['Pantech', 'Vega'], 'IM-A690!' => ['Pantech', 'Mirach'], 'IM[- ]A7(10|20)!' => ['Pantech', 'VegaXpress'], 'IM-A725!' => ['Pantech', 'Vega X+'], 'IM-A730!' => ['Pantech', 'Vega S'], 'IM-A7(40|50)!' => ['Pantech', 'Mirach A'], 'IM-A7(60|70|75|80)!' => ['Pantech', 'Vega Racer'], 'IM-A800!' => ['Pantech', 'Vega LTE'], 'IM-A810!' => ['Pantech', 'Vega LTE M'], 'IM-A820!' => ['Pantech', 'Vega LTE EX'], 'IM-A830!' => ['Pantech', 'Vega Racer 2'], 'IM-A840!' => ['Pantech', 'Vega S5'], 'IM-A850!' => ['Pantech', 'Vega R3'], 'IM-A860!' => ['Pantech', 'Vega N˚ 6'], 'IM-A870!' => ['Pantech', 'Vega Iron'], 'IM-A880!' => ['Pantech', 'Vega LTE-A'], 'IM-A890!' => ['Pantech', 'Vega Secret Note'], 'IM-A900!' => ['Pantech', 'Vega Secret Up'], 'IM-A910!' => ['Pantech', 'Vega Iron 2'], 'IM-A920!' => ['Pantech', 'IM-A920'], 'IM-A930!' => ['Pantech', 'IM-A930'], 'IM-T100K' => ['Pantech', 'Vega N˚ 5', DeviceType::TABLET]], 'VEGA NO.6' => ['Pantech', 'Vega N˚ 6'], 'IS06' => ['Pantech', 'SIRIUS α IS06', 'carrier' => 'au'], 'ADR8995!' => ['Pantech', 'Breakout'], 'ADR910L' => ['Pantech', 'Marauder'], 'ADR910L 4G' => ['Pantech', 'Marauder'], 'ADR930L' => ['Pantech', 'Perception'], 'ADR930L 4G' => ['Pantech', 'Perception'], 'PantechP!!' => ['PantechP4100!' => ['Pantech', 'Element', DeviceType::TABLET], 'PantechP7050!' => ['Pantech', 'P7050'], 'PantechP8000!' => ['Pantech', 'Crossover'], 'PantechP8010!' => ['Pantech', 'Flex'], 'PantechP9060!' => ['Pantech', 'Pocket'], 'PantechP9070!' => ['Pantech', 'Burst'], 'PantechP9090!' => ['Pantech', 'Magnus']], 'PTL21' => ['Pantech', 'Vega PTL21', 'carrier' => 'au'], 'IS11PT' => ['Pantech', 'Mirach IS11PT', 'carrier' => 'au'], 'FC6100' => ['Parrot', 'FC6100', DeviceType::CAR], 'chagall' => ['Pegatron', 'Chagall', DeviceType::TABLET], 'PAT712W' => ['Perfeo', '712 W', DeviceType::TABLET], '7500IPS' => ['Perfeo', '7500 IPS', DeviceType::TABLET], 'PATG7506HD' => ['Perfeo', '7506 HD', DeviceType::TABLET], 'X7G' => ['Pearl', 'Touchlet X7G', DeviceType::TABLET], 'PP4MT-7' => ['Pendo', 'Pendopad 4', DeviceType::TABLET], 'PP4MT-9' => ['Pendo', 'Pendopad 4', DeviceType::TABLET], 'PNDPP4MT9G2' => ['Pendo', 'Pendopad 4', DeviceType::TABLET], 'PNDPP44QC7' => ['Pendo', 'Pendopad 7', DeviceType::TABLET], 'PNDPP48GP' => ['Pendo', 'Pendopad 8', DeviceType::TABLET], 'PNDPP4MT9G3' => ['Pendo', 'Pendopad 9.7', DeviceType::TABLET], 'PNDPP410GP' => ['Pendo', 'Pendopad 10.1', DeviceType::TABLET], 'Penta!!' => ['Penta IS701C' => ['Penta', 'T-Pad IS701C', DeviceType::TABLET], 'Penta IS703C' => ['Penta', 'T-Pad IS703C', DeviceType::TABLET], 'Penta WS702C' => ['Penta', 'T-Pad WS702C', DeviceType::TABLET], 'Penta WS707C' => ['Penta', 'T-Pad WS707C', DeviceType::TABLET], 'Penta WS802C' => ['Penta', 'T-Pad WS802C', DeviceType::TABLET], 'Penta WS907Q' => ['Penta', 'T-Pad WS907Q', DeviceType::TABLET], 'Penta PS650' => ['Penta', 'PS650', DeviceType::TABLET]], 'IS703C' => ['Penta', 'T-Pad IS703C', DeviceType::TABLET], 'IS801C' => ['Penta', 'T-Pad IS801C', DeviceType::TABLET], 'Pentagram!!' => ['Pentagram Ego' => ['Pentagram', 'Ego'], 'PENTAGRAM EON PRIX' => ['Pentagram', 'Eon PRIX', DeviceType::TABLET], 'Pentagram Monster' => ['Pentagram', 'Monster'], 'PENTAGRAM TAB 7.3' => ['Pentagram', 'Tab 7.3', DeviceType::TABLET], 'PENTAGRAM TAB 7.5' => ['Pentagram', 'Tab 7.5', DeviceType::TABLET], 'PentagramTAB7.6' => ['Pentagram', 'Tab 7.6', DeviceType::TABLET], 'PENTAGRAM TAB Quadra 9.7' => ['Pentagram', 'Quadra 9.7', DeviceType::TABLET]], 'PHICOMM!!' => ['PHICOMM CLUE L' => ['Phicomm', 'Clue L'], 'PHICOMM ENERGY M' => ['Phicomm', 'Energy M'], 'PHICOMM CLUE C230' => ['Phicomm', 'C230'], 'PHICOMM C230v' => ['Phicomm', 'C230v'], 'Phicomm C230w' => ['Phicomm', 'C230w'], 'PHICOMM-E561Lv' => ['Phicomm', 'E561Lv'], 'PHICOMM E653' => ['Phicomm', 'E653'], 'PHICOMM i360' => ['Phicomm', 'i360'], 'PHICOMM i370' => ['Phicomm', 'i370'], 'PHICOMM i508' => ['Phicomm', 'i508'], 'PHICOMM i600' => ['Phicomm', 'i600'], 'PHICOMM-i700v' => ['Phicomm', 'i700v'], 'PHICOMM i800' => ['Phicomm', 'i800'], 'PHICOMM i803' => ['Phicomm', 'i803'], 'PHICOMM i803wa' => ['Phicomm', 'i803wa'], 'PHICOMM i813' => ['Phicomm', 'i813'], 'PHICOMM X100w' => ['Phicomm', 'X100w'], 'PHICOMM X100wEU' => ['Phicomm', 'X100w'], 'PHICOMM X130v' => ['Phicomm', 'X130v'], 'PHICOMM X130va' => ['Phicomm', 'X130va'], 'PHICOMM X130wEU' => ['Phicomm', 'X130W']], 'FWS[0-9]{3,3}!!' => ['FWS610' => ['Phicomm', 'FWS610'], 'FWS610 EU' => ['Phicomm', 'FWS610'], 'FWS710' => ['Phicomm', 'FWS710'], 'FWS710EU' => ['Phicomm', 'FWS710'], 'FWS710a' => ['Phicomm', 'FWS710'], 'FWS810' => ['Phicomm', 'FWS810']], 'i803w' => ['Phicomm', 'i803w'], 'Philips I908' => ['Philips', 'I908'], 'Philips I928' => ['Philips', 'I928'], 'Philips S301' => ['Philips', 'S301'], 'Philips S308' => ['Philips', 'S308'], 'Philips S358' => ['Philips', 'S358'], 'Philips S388!' => ['Philips', 'S388'], 'Philips S398' => ['Philips', 'S398'], 'Philips T3566' => ['Philips', 'T3566'], 'Philips PI5000' => ['Philips', 'PI5000', DeviceType::TABLET], 'PI7000' => ['Philips', 'PI7000', DeviceType::TABLET], 'Philips V387' => ['Philips', 'Xenium V387'], 'Philips W336' => ['Philips', 'W336'], 'Philips W536' => ['Philips', 'W536'], 'Philips W626' => ['Philips', 'W626'], 'W626' => ['Philips', 'W626'], 'Philips W632' => ['Philips', 'W632'], 'Philips W635' => ['Philips', 'W635'], 'Philips W737' => ['Philips', 'W737'], 'Philips W832' => ['Philips', 'W832'], 'Philips W3500' => ['Philips', 'W3500'], 'Philips W3568' => ['Philips', 'W3568'], 'W6350' => ['Philips', 'W6350'], 'Philips W6350' => ['Philips', 'W6350'], 'W6360' => ['Philips', 'W6360'], 'W6500' => ['Philips', 'W6500'], 'Philips W6610' => ['Philips', 'W6610'], 'Philips W6618' => ['Philips', 'W6618'], 'Philips W7555' => ['Philips', 'W7555'], 'Philips-W8500' => ['Philips', 'W8500'], 'Philips W8510' => ['Philips', 'W8510'], 'Philips W8555' => ['Philips', 'W8555'], 'Philips W8560' => ['Philips', 'W8560'], '[0-9]{2,2}PFH6[0-9]{3,3}!' => ['Philips', '6000 Series', DeviceType::TELEVISION], 'AND1E' => ['Philips', 'Android TV (2014)', DeviceType::TELEVISION], 'AND1E TV' => ['Philips', 'Android TV (2014)', DeviceType::TELEVISION], 'BIP-6000' => ['Pidion', 'BIP-6000'], '(PNR-)?Pioneer!!' => ['Pioneer E80w' => ['Pioneer', 'E80w'], 'Pioneer E81c' => ['Pioneer', 'E81c'], 'PNR-Pioneer E81c' => ['Pioneer', 'E81c'], 'Pioneer P81' => ['Pioneer', 'P81'], 'Pioneer S90w' => ['Pioneer', 'S90w']], 'M8 pro' => ['PiPO', 'M8 Pro', DeviceType::TABLET], 'M9 pro' => ['PiPO', 'M9 Pro', DeviceType::TABLET], 'PIRANHA!!' => ['PIRANHA BUSINESS TAB 7"' => ['Piranha', 'Business Tab 7.0', DeviceType::TABLET], 'PIRANHA BUSINESS TAB 10.1' => ['Piranha', 'Business Tab 10.1', DeviceType::TABLET], 'PIRANHA BUSINESS TAB 10.1 ZEUS WHITE' => ['Piranha', 'Business Tab 10.1', DeviceType::TABLET], 'PIRANHA BUSINESS II TAB 9.0' => ['Piranha', 'Business II Tab 9.0', DeviceType::TABLET], 'PIRANHA BUSINESS II TAB 9"' => ['Piranha', 'Business II Tab 9.0', DeviceType::TABLET], 'PIRANHA BUSINESS III TAB 10.1 ZEUS WHITE' => ['Piranha', 'Business III Tab 10.1', DeviceType::TABLET], 'PIRANHA BUSINESS III TAB 10.1' => ['Piranha', 'Business III Tab 10.1', DeviceType::TABLET], 'PIRANHA Pro II Tab 7.0' => ['Piranha', 'Pro II Tab 7.0', DeviceType::TABLET], 'PIRANHA Ultra Tab 7.0' => ['Piranha', 'Ultra Tab 7.0', DeviceType::TABLET], 'PIRANHA Ultra Tab Zeus White 10.1' => ['Piranha', 'Ultra Tab 10.1', DeviceType::TABLET], 'PIRANHA ULTRA TAB 10.1"' => ['Piranha', 'Ultra Tab 10.1', DeviceType::TABLET], 'PIRANHA ULTRA II TAB 7' => ['Piranha', 'Ultra II Tab 7.0', DeviceType::TABLET], 'PIRANHA Ultra II TAB 9.0' => ['Piranha', 'Ultra II Tab 9.0', DeviceType::TABLET]], 'PGM 398' => ['Pixcom', 'PGM 398'], 'Playboy PB-S3' => ['Playboy', 'Note 5'], '(PLOYER-)?MOMO!!' => ['PLOYER-MOMO' => ['Ployer', 'MOMO', DeviceType::TABLET], 'MOMO' => ['Ployer', 'MOMO', DeviceType::TABLET], 'momo-mini' => ['Ployer', 'MOMO Mini', DeviceType::TABLET], 'MOMO7' => ['Ployer', 'MOMO7', DeviceType::TABLET], 'MOMO7star' => ['Ployer', 'MOMO7 Star', DeviceType::TABLET], 'MOMO7 Talent' => ['Ployer', 'MOMO7 Talent', DeviceType::TABLET], 'MOMO8' => ['Ployer', 'MOMO8', DeviceType::TABLET], 'MOMO8A' => ['Ployer', 'MOMO8 A', DeviceType::TABLET], 'MOMO8 Star!' => ['Ployer', 'MOMO8 Star', DeviceType::TABLET], 'MOMO8 Xing!' => ['Ployer', 'MOMO8 Xing', DeviceType::TABLET], 'MOMO9' => ['Ployer', 'MOMO9', DeviceType::TABLET], 'MOMO93G' => ['Ployer', 'MOMO9 3G', DeviceType::TABLET], 'MOMO9 3G' => ['Ployer', 'MOMO9 3G', DeviceType::TABLET], 'MOMO9-V P706' => ['Ployer', 'MOMO9 V', DeviceType::TABLET], 'MOMO9 STAR' => ['Ployer', 'MOMO9 Star', DeviceType::TABLET], 'MOMO9star' => ['Ployer', 'MOMO9 Star', DeviceType::TABLET], 'MOMO9 plus III' => ['Ployer', 'MOMO9 Plus III', DeviceType::TABLET], 'MOMO9-3' => ['Ployer', 'MOMO9 III', DeviceType::TABLET], 'MOMO9-3S' => ['Ployer', 'MOMO9 III', DeviceType::TABLET], 'MOMO9 Plus-3' => ['Ployer', 'MOMO9 III', DeviceType::TABLET], 'MOMO9 3GQ' => ['Ployer', 'MOMO9 3GQ', DeviceType::TABLET], 'MOMO11' => ['Ployer', 'MOMO11', DeviceType::TABLET], 'MOMO11 III' => ['Ployer', 'MOMO11 III', DeviceType::TABLET], 'MOMO11-3' => ['Ployer', 'MOMO11 III', DeviceType::TABLET], 'MOMO11 bird' => ['Ployer', 'MOMO11 Bird', DeviceType::TABLET], 'MOMO11bird3' => ['Ployer', 'MOMO11 Bird 3', DeviceType::TABLET], 'MOMO11 bird3' => ['Ployer', 'MOMO11 Bird 3', DeviceType::TABLET], 'MOMO11Master' => ['Ployer', 'MOMO11 Master', DeviceType::TABLET], 'MOMO11Speed' => ['Ployer', 'MOMO11 Speed', DeviceType::TABLET], 'MOMO11speed3' => ['Ployer', 'MOMO11 Speed 3', DeviceType::TABLET], 'MOMO12' => ['Ployer', 'MOMO12', DeviceType::TABLET], 'MOMO15' => ['Ployer', 'MOMO15', DeviceType::TABLET], 'MOMO19' => ['Ployer', 'MOMO19', DeviceType::TABLET], 'MOMO19HD' => ['Ployer', 'MOMO19 HD', DeviceType::TABLET], 'MOMO20' => ['Ployer', 'MOMO20', DeviceType::TABLET], 'MOMO20-AU' => ['Ployer', 'MOMO20', DeviceType::TABLET]], 'PocketBook A7' => ['PocketBook', 'A7', DeviceType::TABLET], 'PocketBook A10' => ['PocketBook', 'A10', DeviceType::TABLET], 'PocketBook A10 3G' => ['PocketBook', 'A10 3G', DeviceType::TABLET], 'Obreey SURFpad' => ['PocketBook', 'SURFpad', DeviceType::TABLET], 'PocketBook SURFpad2' => ['PocketBook', 'SURFpad 2', DeviceType::TABLET], 'PocketBook SURFpad 3 (7,85")' => ['PocketBook', 'SURFpad 3', DeviceType::TABLET], 'PocketBook SURFpad 4 S' => ['PocketBook', 'SURFpad 4 S', DeviceType::TABLET], 'PocketBook SURFpad 4 M' => ['PocketBook', 'SURFpad 4 M', DeviceType::TABLET], 'PocketBook SURFpad 4 L' => ['PocketBook', 'SURFpad 4 L', DeviceType::TABLET], 'Mobii 7' => ['Point Of View', 'Mobii 7', DeviceType::TABLET], 'POV-Mobii-7' => ['Point Of View', 'Mobii 7', DeviceType::TABLET], 'POV Mobii 7' => ['Point Of View', 'Mobii 7', DeviceType::TABLET], 'POV TAB-P506!' => ['Point Of View', 'Mobii 506', DeviceType::TABLET], 'POV TAB-P517!' => ['Point Of View', 'Mobii 517', DeviceType::TABLET], 'POV TAB-P527!' => ['Point Of View', 'Mobii 527', DeviceType::TABLET], 'POV TAB-P629!' => ['Point Of View', 'Mobii 629', DeviceType::TABLET], 'POV TAB-P701!' => ['Point Of View', 'Mobii 701', DeviceType::TABLET], 'POV TAB-P703!' => ['Point Of View', 'Mobii 703', DeviceType::TABLET], 'POV TAB-P720!' => ['Point Of View', 'Mobii 720', DeviceType::TABLET], 'POV TAB-P721A!' => ['Point Of View', 'Mobii 721A', DeviceType::TABLET], 'POV TAB-P721!' => ['Point Of View', 'Mobii 721', DeviceType::TABLET], 'POV TAB-P722C!' => ['Point Of View', 'Mobii 722C', DeviceType::TABLET], 'POV TAB-P731N!' => ['Point Of View', 'Mobii 731N', DeviceType::TABLET], 'POV TAB-P825!' => ['Point Of View', 'Mobii 825', DeviceType::TABLET], 'POV TAB-P925!' => ['Point Of View', 'Mobii 925', DeviceType::TABLET], 'POV TAB-PR945!' => ['Point Of View', 'Mobii 945 HD+', DeviceType::TABLET], 'POV TAB-P1025!' => ['Point Of View', 'Mobii 1025', DeviceType::TABLET], 'POV TAB-P1030!' => ['Point Of View', 'Mobii 1030', DeviceType::TABLET], 'POV TAB-P1325!' => ['Point Of View', 'Mobii 1325', DeviceType::TABLET], 'PlayTabPro' => ['Point Of View', 'PlayTabPro', DeviceType::TABLET], '(POV )?TAB-PLAYTABPRO!' => ['Point Of View', 'PlayTabPro', DeviceType::TABLET], '(POV )?TAB-PROTAB25!' => ['Point Of View', 'ProTab 25', DeviceType::TABLET], '(POV )?TAB-PROTAB26!' => ['Point Of View', 'ProTab 26', DeviceType::TABLET], 'POV TAB-PROTAB27' => ['Point Of View', 'ProTab 27', DeviceType::TABLET], '(POV )?TAB-PROTAB30!' => ['Point Of View', 'ProTab 30', DeviceType::TABLET], 'TAB-PROTAB2-IPS9' => ['Point Of View', 'ProTab2', DeviceType::TABLET], 'TAB-PROTAB2-IPS-3G' => ['Point Of View', 'ProTab2', DeviceType::TABLET], 'TAB-PROTAB2-IPS-16' => ['Point Of View', 'ProTab2', DeviceType::TABLET], 'TAB-PROTAB2.4' => ['Point Of View', 'ProTab2 4', DeviceType::TABLET], 'TAB-PROTAB2XL' => ['Point Of View', 'ProTab2 XL', DeviceType::TABLET], 'TAB-PROTAB2.4XL' => ['Point Of View', 'ProTab2 XL 4', DeviceType::TABLET], 'PROTAB2XXL' => ['Point Of View', 'ProTab2 XXL', DeviceType::TABLET], 'TAB-PROTAB2XXL' => ['Point Of View', 'ProTab2 XXL', DeviceType::TABLET], 'TAB-PROTAB2XXL(4)' => ['Point Of View', 'ProTab2 XXL', DeviceType::TABLET], '(POV )?TAB-PROTAB2XXL(4)!' => ['Point Of View', 'ProTab2 XXL', DeviceType::TABLET], '(POV )?TAB NAVI7 3G M!' => ['Point Of View', 'Onyx 507', DeviceType::TABLET], 'POV TAB-P547(v1.0)' => ['Point Of View', 'Onyx 547', DeviceType::TABLET], 'POV TV-HDMI-200BT' => ['Point Of View', 'Smart TV', DeviceType::TELEVISION], 'POV TV-HDMI-200BT(V2.0)' => ['Point Of View', 'Smart TV', DeviceType::TELEVISION], 'POV TV-HDMI-210' => ['Point Of View', 'Smart TV', DeviceType::TELEVISION], 'POV TV-HDMI-KB-01' => ['Point Of View', 'Smart TV', DeviceType::TELEVISION], 'POV TV-SMARTTV-500' => ['Point Of View', 'Smart TV', DeviceType::TELEVISION], 'MID[C012]!!' => ['MIDC409' => ['Polaroid', 'Diamond III 9', DeviceType::TABLET], 'MIDC410' => ['Polaroid', 'Diamond 10.1', DeviceType::TABLET], 'MID2407' => ['Polaroid', 'Infinite 7', DeviceType::TABLET], 'MID1014' => ['Polaroid', 'Pearl 10.1', DeviceType::TABLET], 'MID1047' => ['Polaroid', 'Platinum 10.1', DeviceType::TABLET], 'MIDC407' => ['Polaroid', 'Rainbow 7', DeviceType::TABLET], 'MID0714' => ['Polaroid', 'MID0714', DeviceType::TABLET], 'MID0714PCE01' => ['Polaroid', 'MID0714', DeviceType::TABLET], 'MID0714PGE02.133' => ['Polaroid', 'MID0714', DeviceType::TABLET], 'MIDC010PR001' => ['Polaroid', 'MIDC010', DeviceType::TABLET], 'MIDC110' => ['Polaroid', 'MIDC110', DeviceType::TABLET], 'MIDC124' => ['Polaroid', 'MIDC124', DeviceType::TABLET], 'MIDC127' => ['Polaroid', 'MIDC127', DeviceType::TABLET], 'MIDC128' => ['Polaroid', 'MIDC128', DeviceType::TABLET], 'MIDC408' => ['Polaroid', 'MIDC408', DeviceType::TABLET], 'MIDC408PR002' => ['Polaroid', 'MIDC408', DeviceType::TABLET], 'MIDC410PR' => ['Polaroid', 'MIDC410', DeviceType::TABLET], 'MIDC430' => ['Polaroid', 'MIDC430', DeviceType::TABLET], 'MIDC497' => ['Polaroid', 'MIDC497', DeviceType::TABLET], 'MIDC801' => ['Polaroid', 'MIDC801', DeviceType::TABLET], 'MIDC802' => ['Polaroid', 'MIDC802', DeviceType::TABLET], 'MIDC901' => ['Polaroid', 'MIDC901', DeviceType::TABLET], 'MIDC970' => ['Polaroid', 'MIDC970', DeviceType::TABLET], 'MIDCD10' => ['Polaroid', 'MIDCD10', DeviceType::TABLET], 'MIDCD97' => ['Polaroid', 'MIDCD97', DeviceType::TABLET]], 'PMID!!' => ['PMID70C' => ['Polaroid', 'PMID 70c', DeviceType::TABLET], 'PMID70DC' => ['Polaroid', 'PMID 70dc', DeviceType::TABLET], 'PMID71C' => ['Polaroid', 'PMID 71c', DeviceType::TABLET], 'PMID80C' => ['Polaroid', 'PMID 80c', DeviceType::TABLET], 'PMID700' => ['Polaroid', 'PMID 700', DeviceType::TABLET], 'PMID700BF' => ['Polaroid', 'PMID 700bf', DeviceType::TABLET], 'PMID701C' => ['Polaroid', 'PMID 701c', DeviceType::TABLET], 'PMID701DC' => ['Polaroid', 'PMID 701dc', DeviceType::TABLET], 'PMID702DC' => ['Polaroid', 'PMID 702dc', DeviceType::TABLET], 'PMID703C' => ['Polaroid', 'PMID 703c', DeviceType::TABLET], 'PMID703DC' => ['Polaroid', 'PMID 703dc', DeviceType::TABLET], 'PMID703GK' => ['Polaroid', 'PMID 703gk', DeviceType::TABLET], 'PMID704G' => ['Polaroid', 'PMID 704g', DeviceType::TABLET], 'PMID704GK' => ['Polaroid', 'PMID 704gk', DeviceType::TABLET], 'PMID705' => ['Polaroid', 'PMID 705', DeviceType::TABLET], 'PMID705X' => ['Polaroid', 'PMID 705x', DeviceType::TABLET], 'PMID706' => ['Polaroid', 'PMID 706', DeviceType::TABLET], 'PMID720' => ['Polaroid', 'PMID 720', DeviceType::TABLET], 'PMID800' => ['Polaroid', 'PMID 800', DeviceType::TABLET], 'PMID901' => ['Polaroid', 'PMID 901', DeviceType::TABLET], 'PMID920' => ['Polaroid', 'PMID 920', DeviceType::TABLET], 'PMID-973G' => ['Polaroid', 'PMID 973g', DeviceType::TABLET], 'PMID1000B' => ['Polaroid', 'PMID 1000b', DeviceType::TABLET], 'PMID1000B V2' => ['Polaroid', 'PMID 1000b', DeviceType::TABLET], 'PMID-1000DC' => ['Polaroid', 'PMID 1000dc', DeviceType::TABLET], 'PMID1000!' => ['Polaroid', 'PMID 1000', DeviceType::TABLET], 'PMID4311' => ['Polaroid', 'PMID 4311', DeviceType::TABLET], 'PMID4312' => ['Polaroid', 'PMID 4312', DeviceType::TABLET]], 'PSPT350' => ['Polaroid', 'PSPT350'], 'Polaroid PSPT401' => ['Polaroid', 'Turbo 401'], 'Polaroid PSPC505' => ['Polaroid', 'Cosmo 505'], 'PROV!!' => ['PROV350' => ['Polaroid', 'PROV350'], 'PROV400' => ['Polaroid', 'PROV400']], 'PRO!!' => ['PRO400B' => ['Polaroid', 'PRO400B'], 'PRO450B' => ['Polaroid', 'PRO450B'], 'PRO4006' => ['Polaroid', 'PRO4006'], 'PRO4611PR201' => ['Polaroid', 'PRO4611'], 'PRO5701' => ['Polaroid', 'PRO5701'], 'PRO7111' => ['Polaroid', 'PRO7111']], 'POLY ?PAD!!' => ['POLY PAD 8208HD' => ['Polypad', '8208 HD', DeviceType::TABLET], 'POLY PAD 8216HD' => ['Polypad', '8216 HD', DeviceType::TABLET], 'POLY PAD 9708HD' => ['Polypad', '9708 HD', DeviceType::TABLET], 'POLY PAD 9716HD' => ['Polypad', '9716 HD', DeviceType::TABLET], 'Polypad C508' => ['Polypad', 'C508', DeviceType::TABLET]], 'POLYTRON!!' => ['POLYTRON R1500' => ['Polytron', 'R1500 Rocket Q-Five'], 'POLYTRON R2452' => ['Polytron', 'R2452 Rocket S1'], 'POLYTRON R2506' => ['Polytron', 'R2506 Rocket T4'], 'POLYTRON R3450' => ['Polytron', 'R3450 Rocket Jetz'], 'POLYTRON R3500' => ['Polytron', 'R3500 Jetz 5.0'], 'POLYTRON S2350' => ['Polytron', 'S2350 Rocket'], 'POLYTRON T7800' => ['Polytron', 'T7800 Cosmica'], 'Polytron W1320' => ['Polytron', 'W1320'], 'POLYTRON W1400' => ['Polytron', 'W1400 Rocket Jetz 4.0'], 'POLYTRON W2430' => ['Polytron', 'W2430 Wizard Twins'], 'POLYTRON W2500' => ['Polytron', 'W2500 Wizard Twins'], 'POLYTRON W3430' => ['Polytron', 'W3430 Wizard Crystal'], 'POLYTRON W6450' => ['Polytron', 'W6450 Rocket Star'], 'POLYTRON W7430' => ['Polytron', 'W7430 Wizard Quadra Mini'], 'POLYTRON W7450' => ['Polytron', 'W7450 Wizard Quadra'], 'POLYTRON W7451' => ['Polytron', 'W7451 Quadra S'], 'POLYTRON W7452' => ['Polytron', 'W7452 Quadra S2'], 'POLYTRON W7531' => ['Polytron', 'W7531 Wizard Quadra V'], 'POLYTRON W7550 LITE' => ['Polytron', 'W7550 Rocket Quadra Lite'], 'POLYTRON W8470' => ['Polytron', 'W8470 Wizard Quadra HD']], 'POMP!!' => ['POMP C6' => ['POMP', 'C6'], 'POMP P8' => ['POMP', 'P8'], 'POMP W88' => ['POMP', 'W88'], 'POMP-W88A' => ['POMP', 'W88A'], 'POMP-W88S' => ['POMP', 'W88S'], 'POMP W89' => ['POMP', 'W89'], 'POMP-W89' => ['POMP', 'W89'], 'POMP W99' => ['POMP', 'W99'], 'POMP W99A' => ['POMP', 'W99A']], 'ACT2000' => ['Poptronix', 'ACT2000', DeviceType::TABLET], 'Air!!' => ['Air 7.85 3G' => ['Roverpad', 'Air 7.85 3G', DeviceType::TABLET], 'Air 10.1 3G' => ['Roverpad', 'Air 10.1 3G', DeviceType::TABLET], 'Air S70' => ['Roverpad', 'Air S70', DeviceType::TABLET]], 'PMP[0-9]{4,4}!!' => ['PMP3007C' => ['Prestigio', 'Multipad Rider 7.0', DeviceType::TABLET], 'PMP3007C3G' => ['Prestigio', 'Multipad Rider 7.0 3G', DeviceType::TABLET], 'PMP3074B' => ['Prestigio', 'Multipad 3074', DeviceType::TABLET], 'PMP3074BRU' => ['Prestigio', 'Multipad 3074', DeviceType::TABLET], 'PMP3084B' => ['Prestigio', 'Multipad 3084', DeviceType::TABLET], 'PMP3084BA' => ['Prestigio', 'Multipad 3084', DeviceType::TABLET], 'PMP3084BPL' => ['Prestigio', 'Multipad 3084', DeviceType::TABLET], 'PMP3084BRU' => ['Prestigio', 'Multipad 3084', DeviceType::TABLET], 'PMP3170B' => ['Prestigio', 'Multipad 3170 Pro', DeviceType::TABLET], 'PMP3170BEN' => ['Prestigio', 'Multipad 3170 Pro', DeviceType::TABLET], 'PMP3270B' => ['Prestigio', 'Multipad 3270 Prime', DeviceType::TABLET], 'PMP3370B' => ['Prestigio', 'Multipad 3370', DeviceType::TABLET], 'PMP3384B' => ['Prestigio', 'Multipad 3384', DeviceType::TABLET], 'PMP3384BRU' => ['Prestigio', 'Multipad 3384', DeviceType::TABLET], 'PMP3470B' => ['Prestigio', 'Multipad 3470 Prime+', DeviceType::TABLET], 'PMP3570C' => ['Prestigio', 'Multipad 7.0 Ultra+', DeviceType::TABLET], 'PMP3670B' => ['Prestigio', 'Multipad 3670 Ultra+', DeviceType::TABLET], 'PMP3670B-WH' => ['Prestigio', 'Multipad 3670 Ultra+', DeviceType::TABLET], 'PMP3770B' => ['Prestigio', 'Multipad 3770', DeviceType::TABLET], 'PMP3970B' => ['Prestigio', 'Multipad 3970 Duo', DeviceType::TABLET], 'PMP5080B' => ['Prestigio', 'Multipad 5080', DeviceType::TABLET], 'PMP5080BRU' => ['Prestigio', 'Multipad 5080', DeviceType::TABLET], 'PMP5080CPRO' => ['Prestigio', 'Multipad 5080 Pro', DeviceType::TABLET], 'PMP5097CPRO' => ['Prestigio', 'Multipad 5097 Pro', DeviceType::TABLET], 'PMP5101C QUAD' => ['Prestigio', 'Multipad 4 Quantum 10.1', DeviceType::TABLET], 'PMP5101C3G QUAD' => ['Prestigio', 'Multipad 4 Quantum 10.1 3G', DeviceType::TABLET], 'PMP5101D QUAD' => ['Prestigio', 'Multipad 4 Quantum 10.1', DeviceType::TABLET], 'PMP5101D3G QUAD' => ['Prestigio', 'Multipad 4 Quantum 10.1 3G', DeviceType::TABLET], 'PMP5197DULTRA' => ['Prestigio', 'Multipad 5197 Ultra', DeviceType::TABLET], 'PMP5297C QUAD' => ['Prestigio', 'Multipad 4 Quantum 9.7', DeviceType::TABLET], 'PMP5570C' => ['Prestigio', 'Multipad 5570 Pro', DeviceType::TABLET], 'PMP5580C' => ['Prestigio', 'Multipad 5580 Prime', DeviceType::TABLET], 'PMP5588C' => ['Prestigio', 'Multipad 8.0 HD', DeviceType::TABLET], 'PMP5597D' => ['Prestigio', 'Multipad 5597 Ultra Duo', DeviceType::TABLET], 'PMP5670C DUO' => ['Prestigio', 'Multipad 2 Pro Duo 7.0', DeviceType::TABLET], 'PMP5770D' => ['Prestigio', 'Multipad 5770 Pro', DeviceType::TABLET], 'PMP5785C3G QUAD' => ['Prestigio', 'Multipad 4 Quantum 7.85 3G', DeviceType::TABLET], 'PMP7100D3G QUAD' => ['Prestigio', 'Multipad 7100', DeviceType::TABLET], 'PMP7280D3G QUAD' => ['Prestigio', 'Multipad 7280', DeviceType::TABLET], 'PMP7480D3G QUAD' => ['Prestigio', 'Multipad 7480', DeviceType::TABLET], 'PMP7880D3G' => ['Prestigio', 'Multipad 7880', DeviceType::TABLET], 'PMP5780D' => ['Prestigio', 'Multipad 2 Prime Duo 8.0', DeviceType::TABLET], 'PMP5785C QUAD' => ['Prestigio', 'Multipad 4 Quantum 7.85', DeviceType::TABLET], 'PMP5870C' => ['Prestigio', 'Multipad 7.0 Ultra Duo', DeviceType::TABLET], 'PMP5880D' => ['Prestigio', 'Multipad 8.0 Ultra Duo', DeviceType::TABLET], 'PMP7070C3G' => ['Prestigio', 'Multipad 4 Diamond 7.0 3G', DeviceType::TABLET], 'PMP7074B3G' => ['Prestigio', 'Multipad 7074', DeviceType::TABLET], 'PMP7074B3GRU' => ['Prestigio', 'Multipad 7074', DeviceType::TABLET], 'PMP7079D QUAD' => ['Prestigio', 'Multipad 4 Diamond 7.85', DeviceType::TABLET], 'PMP7079D3G QUAD' => ['Prestigio', 'Multipad 4 Diamond 7.85 3G', DeviceType::TABLET], 'PMP7079E3G QUAD' => ['Prestigio', 'Multipad 4 Diamond 7.85 3G', DeviceType::TABLET], 'PMP7100D' => ['Prestigio', 'Multipad 4 10.1 Ultimate', DeviceType::TABLET], 'PMP7100D3G' => ['Prestigio', 'Multipad 4 10.1 Ultimate 3G', DeviceType::TABLET], 'PMP7100D3G QUAD' => ['Prestigio', 'Multipad 4 10.1 Ultimate 3G', DeviceType::TABLET], 'PMP7110D3G' => ['Prestigio', 'Multipad 4 Diamond 10.1 3G', DeviceType::TABLET], 'PMP7170B3G' => ['Prestigio', 'Multipad 7.0 Prime 3G', DeviceType::TABLET], 'PMP7170B3GCE' => ['Prestigio', 'Multipad 7.0 Prime 3G', DeviceType::TABLET], 'PMP7170B3G DUO' => ['Prestigio', 'Multipad 7.0 Prime Duo 3G', DeviceType::TABLET], 'PMP7280C' => ['Prestigio', 'Multipad 2 Ultra Duo 8.0', DeviceType::TABLET], 'PMP7280C3G' => ['Prestigio', 'Multipad 2 Ultra Duo 8.0 3G', DeviceType::TABLET], 'PMP7280C3G DUO' => ['Prestigio', 'Multipad 2 Ultra Duo 8.0 3G', DeviceType::TABLET], 'PMP7280C3G QUAD' => ['Prestigio', 'Multipad 4 Ultra Quad 8.0 3G', DeviceType::TABLET], 'PMP7380D3G' => ['Prestigio', 'Multipad 2 Pro Duo 8.0 3G', DeviceType::TABLET], 'PMP7380D3G QUAD' => ['Prestigio', 'Multipad 2 Pro Quad 8.0 3G', DeviceType::TABLET]], 'PMT[0-9]{4,4}!!' => ['PMT3008 WI C' => ['Prestigio', 'Multipad Wize 3008', DeviceType::TABLET], 'PMT3038 3G' => ['Prestigio', 'Multipad 3038', DeviceType::TABLET], 'PMT3047 3G' => ['Prestigio', 'Multipad 3047', DeviceType::TABLET], 'PMT3077 3G' => ['Prestigio', 'Multipad Rider 7.0 3G', DeviceType::TABLET], 'PMT3177 3G' => ['Prestigio', 'Multipad Journey 7.0 3G', DeviceType::TABLET], 'PMT3277 3G' => ['Prestigio', 'Multipad Ranger 7.0 3G', DeviceType::TABLET], 'PMT3287 3G' => ['Prestigio', 'Multipad Ranger 8.0 3G', DeviceType::TABLET], 'PMT3377 Wi' => ['Prestigio', 'Multipad Thunder 7.0i', DeviceType::TABLET], 'PMT3677 Wi' => ['Prestigio', 'Multipad Ultra+ 7.0', DeviceType::TABLET], 'PMT5001 3G' => ['Prestigio', 'Multipad Muze 5001 3G', DeviceType::TABLET], 'PMT5002 Wi' => ['Prestigio', 'Multipad Wize 5002', DeviceType::TABLET], 'PMT5008 3G' => ['Prestigio', 'Multipad Muze 5008 3G', DeviceType::TABLET], 'PMT5287 4G' => ['Prestigio', 'Multipad Ranger 8.0 4G', DeviceType::TABLET], 'PMT5487 3G' => ['Prestigio', 'Multipad Quantum 8.0 3G', DeviceType::TABLET], 'PMT5587 Wi' => ['Prestigio', 'Multipad 8.0 HD', DeviceType::TABLET], 'PMT5777 3G' => ['Prestigio', 'Multipad Color 7.0 3G', DeviceType::TABLET], 'PMT5887 3G' => ['Prestigio', 'Multipad Color 8.0 3G', DeviceType::TABLET], 'PMT7008 4G' => ['Prestigio', 'Multipad Consul 7008 4G', DeviceType::TABLET], 'PMT7077 3G' => ['Prestigio', 'Multipad 4 Diamond 7.85 3G', DeviceType::TABLET], 'PMT7177 3G' => ['Prestigio', 'Multipad 4 Diamond 10.1 3G', DeviceType::TABLET], 'PMT7287 3G' => ['Prestigio', 'Multipad 4 Ultra Quad 8.0 3G', DeviceType::TABLET]], 'PAP[0-9]{4,4}!!' => ['PAP3350DUO' => ['Prestigio', 'Multiphone 3350 Duo'], 'PAP3400DUO' => ['Prestigio', 'Multiphone 3400 Duo'], 'PAP3500 DUO' => ['Prestigio', 'Multiphone 3500 Duo'], 'PAP3501DUO' => ['Prestigio', 'Multiphone 3501 Duo'], 'PAP3540DUO' => ['Prestigio', 'Multiphone 3540 Duo'], 'PAP4020DUO' => ['Prestigio', 'Multiphone 4020 Duo'], 'PAP4040 DUO' => ['Prestigio', 'Multiphone 4040 Duo'], 'PAP4044DUO' => ['Prestigio', 'Multiphone 4044 Duo'], 'PAP4055DUO' => ['Prestigio', 'Multiphone 4055 Duo'], 'PAP4300' => ['Prestigio', 'Multiphone 4300'], 'PAP4300 DUO' => ['Prestigio', 'Multiphone 4300 Duo'], 'PAP4322DUO' => ['Prestigio', 'Multiphone 4322 Duo'], 'PAP4500DUO' => ['Prestigio', 'Multiphone 4500 Duo'], 'PAP4500TDUO' => ['Prestigio', 'Multiphone 4500 Duo'], 'PAP4505DUO' => ['Prestigio', 'Multiphone 4505 Duo'], 'PAP5000DUO' => ['Prestigio', 'Multiphone 5000 Duo'], 'PAP5000TDUO' => ['Prestigio', 'Multiphone 5000 Duo'], 'PAP5044DUO' => ['Prestigio', 'Multiphone 5044 Duo'], 'PAP5300DUO' => ['Prestigio', 'Multiphone 5300 Duo'], 'PAP5400DUO' => ['Prestigio', 'Multiphone 5400 Duo'], 'PAP5430' => ['Prestigio', 'Multiphone 5430'], 'PAP5450DUO' => ['Prestigio', 'Multiphone 5450 Duo'], 'PAP5451DUO' => ['Prestigio', 'Multiphone 5451 Duo'], 'PAP5500DUO' => ['Prestigio', 'Multiphone 5500 Duo'], 'PAP5501' => ['Prestigio', 'Multiphone 5501'], 'PAP7500' => ['Prestigio', 'Multiphone 7500'], 'PAP7600DUO' => ['Prestigio', 'Multiphone 7600 Duo']], 'PSP[0-9]{4,4}!!' => ['PSP3404DUO' => ['Prestigio', 'Multiphone 3404 Duo'], 'PSP3405DUO' => ['Prestigio', 'Multiphone 3405 Duo'], 'PSP3450DUO' => ['Prestigio', 'Multiphone 3450 Duo'], 'PSP3452DUO' => ['Prestigio', 'Multiphone Muze A3'], 'PSP3502DUO' => ['Prestigio', 'Multiphone 3502 Duo'], 'PSP3504DUO' => ['Prestigio', 'Multiphone 3504 Duo'], 'PSP5307DUO' => ['Prestigio', 'Multiphone 5307 Duo'], 'PSP5453DUO' => ['Prestigio', 'Multiphone 5453 Duo'], 'PSP5454DUO' => ['Prestigio', 'Multiphone 5454 Duo'], 'PSP5455DUO' => ['Prestigio', 'Multiphone 5455 Duo'], 'PSP5457DUO' => ['Prestigio', 'Multiphone 5457 Duo'], 'PSP5470DUO' => ['Prestigio', 'Multiphone Grace X5'], 'PSP5504DUO' => ['Prestigio', 'Multiphone 5504 Duo'], 'PSP5505DUO' => ['Prestigio', 'Multiphone 5505 Duo'], 'PSP5507DUO' => ['Prestigio', 'Multiphone 5507 Duo'], 'PSP5508DUO' => ['Prestigio', 'Multiphone 5508 Duo'], 'PSP5517DUO' => ['Prestigio', 'Multiphone 5517 Duo'], 'PSP5550DUO' => ['Prestigio', 'Multiphone 5550 Duo'], 'PSP7557' => ['Prestigio', 'Multiphone 7557 Grace']], '5080C Pro' => ['Prestigio', 'Multipad 5080 Pro', DeviceType::TABLET], 'PRBT 100' => ['Probook', 'PRBT 100', DeviceType::TABLET], 'MD-[0-9]{4,4}!!' => ['MD-0651' => ['Prolink', 'MD-0651', DeviceType::TABLET], 'MD-0696B' => ['Prolink', 'MD-0696B', DeviceType::TABLET], 'MD-0697' => ['Prolink', 'MD-0697', DeviceType::TABLET]], 'PLT!!' => ['PLT1044' => ['Proscan', 'PLT1044', DeviceType::TABLET], 'PLT1066' => ['Proscan', 'PLT1066', DeviceType::TABLET], 'PLT1077G' => ['Proscan', 'PLT1077G', DeviceType::TABLET], 'PLT4311' => ['Proscan', 'PLT4311', DeviceType::TABLET], 'PLT7035' => ['Proscan', 'PLT7035', DeviceType::TABLET], 'PLT7035-B' => ['Proscan', 'PLT7035', DeviceType::TABLET], 'PLT7035-C' => ['Proscan', 'PLT7035', DeviceType::TABLET], 'PLT7035-PL' => ['Proscan', 'PLT7035', DeviceType::TABLET], 'PLT7044K' => ['Proscan', 'PLT7044K', DeviceType::TABLET], 'PLT7044K-B' => ['Proscan', 'PLT7044K', DeviceType::TABLET], 'PLT7050' => ['Proscan', 'PLT7050', DeviceType::TABLET], 'PLT7100G' => ['Proscan', 'PLT7100G', DeviceType::TABLET], 'PLT7223G' => ['Proscan', 'PLT7223G', DeviceType::TABLET], 'PLT7602G' => ['Proscan', 'PLT7602G', DeviceType::TABLET], 'PLT7777' => ['Proscan', 'PLT7777', DeviceType::TABLET], 'PLT7802' => ['Proscan', 'PLT7802', DeviceType::TABLET], 'PLT7803G' => ['Proscan', 'PLT7803G', DeviceType::TABLET], 'PLT7804G' => ['Proscan', 'PLT7804G', DeviceType::TABLET], 'PLT7810K' => ['Proscan', 'PLT7810K', DeviceType::TABLET], 'PLT8088' => ['Proscan', 'PLT8088', DeviceType::TABLET], 'PLT8235G' => ['Proscan', 'PLT8235G', DeviceType::TABLET], 'PLT8802G' => ['Proscan', 'PLT8802G', DeviceType::TABLET], 'PLT8816K' => ['Proscan', 'PLT8816K', DeviceType::TABLET], 'PLT9045K' => ['Proscan', 'PLT9045K', DeviceType::TABLET], 'PLT9045K-BLACK' => ['Proscan', 'PLT9045K', DeviceType::TABLET], 'PLT9602G' => ['Proscan', 'PLT9602G', DeviceType::TABLET], 'PLT9606G' => ['Proscan', 'PLT9606G', DeviceType::TABLET]], 'Positivo Mini' => ['Positivo', 'Mini', DeviceType::TABLET], 'YPY-72SIM' => ['Positivo', 'YPY 72SIM', DeviceType::TABLET], 'YPY-73G' => ['Positivo', 'YPY 73G', DeviceType::TABLET], 'TB07FTA' => ['Positivo', 'YPY 07FTA', DeviceType::TABLET], 'Ypy 7 - TB07FTA' => ['Positivo', 'YPY 07FTA', DeviceType::TABLET], 'YPY 07FTA' => ['Positivo', 'YPY 07FTA', DeviceType::TABLET], 'YPY 07FTAB' => ['Positivo', 'YPY 07FTAB', DeviceType::TABLET], 'YPY 07FTAB PA' => ['Positivo', 'YPY 07FTAB', DeviceType::TABLET], 'YPY 07FTB' => ['Positivo', 'YPY 07FTB', DeviceType::TABLET], 'POSITIVO YPY 07FTB' => ['Positivo', 'YPY 07FTB', DeviceType::TABLET], 'YPY 07FTBF' => ['Positivo', 'YPY 07FTBF', DeviceType::TABLET], 'Ypy 7 - TB07STA' => ['Positivo', 'YPY 07STA', DeviceType::TABLET], 'YPY 07STB' => ['Positivo', 'YPY 07STB', DeviceType::TABLET], 'YPY 07STBF' => ['Positivo', 'YPY 07STBF', DeviceType::TABLET], 'YPY 10FTA' => ['Positivo', 'YPY 10FTA', DeviceType::TABLET], 'YPY10FTA' => ['Positivo', 'YPY 10FTA', DeviceType::TABLET], 'YPY 10FTB' => ['Positivo', 'YPY 10FTB', DeviceType::TABLET], 'YPY 10FTBF' => ['Positivo', 'YPY 10FTBF', DeviceType::TABLET], 'YPY 10STB' => ['Positivo', 'YPY 10STB', DeviceType::TABLET], 'YPY 10STBF' => ['Positivo', 'YPY 10STBF', DeviceType::TABLET], 'YPY AB7D' => ['Positivo', 'YPY AB7D', DeviceType::TABLET], 'YPY AB7DC' => ['Positivo', 'YPY AB7DC', DeviceType::TABLET], 'Positivo Ypy AB7E' => ['Positivo', 'YPY AB7E', DeviceType::TABLET], 'Positivo Ypy AB7EC' => ['Positivo', 'YPY AB7EC', DeviceType::TABLET], 'Positivo Ypy AB7F' => ['Positivo', 'YPY AB7F', DeviceType::TABLET], 'Positivo AB7F' => ['Positivo', 'YPY AB7F', DeviceType::TABLET], 'Positivo Ypy AB7H' => ['Positivo', 'YPY AB7H', DeviceType::TABLET], 'YPY AB10D' => ['Positivo', 'YPY AB10D', DeviceType::TABLET], 'YPY AB10DC' => ['Positivo', 'YPY AB10DC', DeviceType::TABLET], 'Positivo Ypy AB10E' => ['Positivo', 'YPY AB10E', DeviceType::TABLET], 'Positivo Ypy AB10EC' => ['Positivo', 'YPY AB10EC', DeviceType::TABLET], 'Positivo Ypy AB10H' => ['Positivo', 'YPY AB10H', DeviceType::TABLET], 'YPY ABXD' => ['Positivo', 'YPY ABXD', DeviceType::TABLET], 'YPY J213' => ['Positivo', 'YPY J213'], 'Positivo BGH Ypy L700' => ['Positivo', 'YPY L700', DeviceType::TABLET], 'Positivo Ypy L700' => ['Positivo', 'YPY L700', DeviceType::TABLET], 'Positivo Ypy L700 Ed. Especial' => ['Positivo', 'YPY L700 Edição Especial', DeviceType::TABLET], 'Positivo Ypy L700+' => ['Positivo', 'YPY L700+', DeviceType::TABLET], 'Positivo Ypy L700 Kids' => ['Positivo', 'YPY L700 Kids', DeviceType::TABLET], 'Positivo BGH Ypy L700 Kids' => ['Positivo', 'YPY L700 Kids', DeviceType::TABLET], 'Positivo Ypy L700+ Kids' => ['Positivo', 'YPY L700+ Kids', DeviceType::TABLET], 'Positivo Ypy L1000' => ['Positivo', 'YPY L1000', DeviceType::TABLET], 'Positivo Ypy L1000AB' => ['Positivo', 'YPY L1000AB', DeviceType::TABLET], 'Positivo Ypy L1000F' => ['Positivo', 'YPY L1000F', DeviceType::TABLET], 'Positivo Ypy L1050' => ['Positivo', 'YPY L1050', DeviceType::TABLET], 'Positivo Ypy L1050E' => ['Positivo', 'YPY L1050E', DeviceType::TABLET], 'Positivo Ypy L1050F' => ['Positivo', 'YPY L1050F', DeviceType::TABLET], 'YPY S350' => ['Positivo', 'YPY S350'], 'YPY S350 PLUS' => ['Positivo', 'YPY S350 Plus'], 'Positivo S380' => ['Positivo', 'YPY S380'], 'YPY S400' => ['Positivo', 'YPY S400'], 'YPY S405' => ['Positivo', 'YPY S405'], 'Positivo S440' => ['Positivo', 'YPY S440'], 'YPY S450' => ['Positivo', 'YPY S450'], 'YPY S460' => ['Positivo', 'YPY S460'], 'Positivo S480' => ['Positivo', 'YPY S480'], 'YPY S500' => ['Positivo', 'YPY S500'], 'Positivo S550' => ['Positivo', 'YPY S550'], 'Positivo X400' => ['Positivo', 'YPY X400'], 'Positivo X800' => ['Positivo', 'YPY X800'], 'YPY TQ7' => ['Positivo', 'YPY TQ7', DeviceType::TABLET], 'PULID F6' => ['PULID', 'F6'], 'PULID F7' => ['PULID', 'F7'], 'PULID F11' => ['PULID', 'F11'], 'F13' => ['PULID', 'F13'], 'F15' => ['PULID', 'F15'], 'PULID T3' => ['PULID', 'T3'], 'Qilive!!' => ['Qilive 40' => ['QiLive', '4” Smartphone'], 'Qilive 45' => ['QiLive', '4.5” Smartphone'], 'Qilive 50' => ['QiLive', '5” Smartphone'], 'Qilive 50 QC' => ['QiLive', '5” Smartphone'], 'Qilive 53' => ['QiLive', '5.3” Smartphone'], 'Qilive 7' => ['QiLive', '7” Dual core tablet', DeviceType::TABLET], 'Qilive 79' => ['QiLive', '7.9” Dual core tablet', DeviceType::TABLET], 'Qilive 97R-2' => ['QiLive', '7.9” Quad core tablet', DeviceType::TABLET], 'QiLive 8' => ['QiLive', '8” Dual core tablet', DeviceType::TABLET], 'QiLive 8QC' => ['QiLive', '8” Quad core tablet', DeviceType::TABLET], 'QiLive 97' => ['QiLive', '9.7” Dual core tablet', DeviceType::TABLET], 'QiLive 97R' => ['QiLive', '9.7R Quad core tablet', DeviceType::TABLET]], 'Q-Wave!!' => ['Q-Wave70M' => ['Quantum', 'Q-Wave 70M', DeviceType::TABLET], 'Q-Wave70M2' => ['Quantum', 'Q-Wave 70M2', DeviceType::TABLET], 'Q-Wave71' => ['Quantum', 'Q-Wave 71', DeviceType::TABLET], 'Q-Wave71M' => ['Quantum', 'Q-Wave 71M', DeviceType::TABLET], 'Q-Wave71N' => ['Quantum', 'Q-Wave 71N', DeviceType::TABLET], 'Q-Wave781N' => ['Quantum', 'Q-Wave 781N', DeviceType::TABLET], 'Q-WaveA101' => ['Quantum', 'Q-Wave A101', DeviceType::TABLET], 'Q-Wave L70N' => ['Quantum', 'Q-Wave L70N', DeviceType::TABLET]], 'Quechua Phone 5' => ['Quechua', 'Phone 5'], 'QW ?TB-[0-9]{4,4}!!' => ['QW TB-1007' => ['Qware', 'Pro3 (7.0 inch, 1st gen)', DeviceType::TABLET], 'QW TB-1207' => ['Qware', 'Pro3 (7.0 inch, 2nd gen)', DeviceType::TABLET], 'QW TB-1217' => ['Qware', 'Pro3 (7.0 inch, 3nd gen)', DeviceType::TABLET], 'QW TB-1210' => ['Qware', 'Pro3 (10.0 inch)', DeviceType::TABLET], 'QW TB-9718' => ['Qware', 'Pro4 Slim 9.7', DeviceType::TABLET], 'QWTB-9718HD' => ['Qware', 'Pro4 Slim HD 9.7', DeviceType::TABLET], 'QW TB-1317Q' => ['Qware', 'Pro5 HD 7.0', DeviceType::TABLET], 'QW TB-1380QHD' => ['Qware', 'Pro5 QHD 8.0', DeviceType::TABLET], 'QW TB-9718QHD' => ['Qware', 'Pro5 QHD 9.7', DeviceType::TABLET], 'QW TB-1517' => ['Qware', 'Tabby', DeviceType::TABLET], 'QW TB-1517D' => ['Qware', 'Tabby2', DeviceType::TABLET]], 'Ramosi8' => ['Ramos', 'I8', DeviceType::TABLET], 'Ramosi8c' => ['Ramos', 'I8c', DeviceType::TABLET], 'Ramosi9' => ['Ramos', 'I9', DeviceType::TABLET], 'Ramosi9-3G' => ['Ramos', 'I9 3G', DeviceType::TABLET], 'Ramos i9s' => ['Ramos', 'I9s', DeviceType::TABLET], 'Ramos i9s Series' => ['Ramos', 'I9s', DeviceType::TABLET], 'Ramos i9s pro' => ['Ramos', 'I9s Pro', DeviceType::TABLET], 'Ramosi10' => ['Ramos', 'I10', DeviceType::TABLET], 'Ramosi12c' => ['Ramos', 'I12c', DeviceType::TABLET], 'W6' => ['Ramos', 'W6', DeviceType::TABLET], 'W6HD ICS' => ['Ramos', 'W6HD', DeviceType::TABLET], 'W6HD ICS FULL' => ['Ramos', 'W6HD', DeviceType::TABLET], 'Ramos W6HD' => ['Ramos', 'W6HD', DeviceType::TABLET], 'W10' => ['Ramos', 'W10', DeviceType::TABLET], 'W10 V2.0' => ['Ramos', 'W10 v2.0', DeviceType::TABLET], 'Ramos W12' => ['Ramos', 'W12', DeviceType::TABLET], 'Ramos W12HD' => ['Ramos', 'W12HD', DeviceType::TABLET], 'w13pro' => ['Ramos', 'W13 Pro', DeviceType::TABLET], 'W13PRO V2.0' => ['Ramos', 'W13 Pro', DeviceType::TABLET], 'Ramos W17Pro V3.0' => ['Ramos', 'W17 Pro', DeviceType::TABLET], 'W17PRO(Dualcore)' => ['Ramos', 'W17 Pro', DeviceType::TABLET], 'W17PRO JB Dualcore' => ['Ramos', 'W17 Pro', DeviceType::TABLET], 'Ramos W21' => ['Ramos', 'W21', DeviceType::TABLET], 'W22PRO' => ['Ramos', 'W22 Pro', DeviceType::TABLET], 'W22PRO 3G' => ['Ramos', 'W22 Pro 3G', DeviceType::TABLET], 'Ramos W25HD' => ['Ramos', 'W25HD', DeviceType::TABLET], 'Ramos W27Pro' => ['Ramos', 'W27 Pro', DeviceType::TABLET], 'W27(Dualcore)' => ['Ramos', 'W27 Dual Core', DeviceType::TABLET], 'W28(Dualcore)' => ['Ramos', 'W28 Dual Core', DeviceType::TABLET], 'W30(QuadCore)' => ['Ramos', 'W30 Quad Core', DeviceType::TABLET], 'w30hd(QuadCore)' => ['Ramos', 'W30HD Quad Core', DeviceType::TABLET], 'W30HDPRO' => ['Ramos', 'W30HD Pro', DeviceType::TABLET], 'Ramos W31' => ['Ramos', 'W31', DeviceType::TABLET], 'Ramos w36' => ['Ramos', 'W36', DeviceType::TABLET], 'Ramos W41' => ['Ramos', 'W41', DeviceType::TABLET], 'Ramos W41 QuadCore' => ['Ramos', 'W41 Quad Core', DeviceType::TABLET], 'w42(QuadCore)' => ['Ramos', 'W42 Quad Core', DeviceType::TABLET], 'Ramos X10 PRO!' => ['Ramos', 'X10 Pro', DeviceType::TABLET], 'T11AD!' => ['Ramos', 'T11AD', DeviceType::TABLET], 'Rayhov!!' => ['Rayhov X3' => ['Rayhov', 'X3'], 'Rayhov X6' => ['Rayhov', 'X6'], 'Rayhov X9' => ['Rayhov', 'X9']], 'Readboy!!' => ['Readboy G12' => ['Readboy', 'G12', DeviceType::TABLET], 'Readboy G18' => ['Readboy', 'G18', DeviceType::TABLET], 'Readboy G50' => ['Readboy', 'G50', DeviceType::TABLET], 'Readboy G100' => ['Readboy', 'G100', DeviceType::TABLET]], 'ReederA8R' => ['Reeder', 'A8R', DeviceType::TABLET], 'PlayBook' => ['RIM', 'BlackBerry PlayBook', DeviceType::TABLET], 'RBK-490' => ['Ritmix', 'RBK-490', DeviceType::TABLET], '(Ritmix )?RM[DP]-?[0-9]{3,3}!!' => ['RMD-720' => ['Ritmix', 'RMD-720', DeviceType::TABLET], 'RMD-721' => ['Ritmix', 'RMD-721', DeviceType::TABLET], 'RMD-722' => ['Ritmix', 'RMD-722', DeviceType::TABLET], 'RITMIX RMD-740' => ['Ritmix', 'RMD-740', DeviceType::TABLET], 'Ritmix RMD745' => ['Ritmix', 'RMD-745', DeviceType::TABLET], 'RMD-755' => ['Ritmix', 'RMD-755', DeviceType::TABLET], 'RMD-770' => ['Ritmix', 'RMD-770', DeviceType::TABLET], 'RMD-785' => ['Ritmix', 'RMD-785', DeviceType::TABLET], 'Ritmix RMD840' => ['Ritmix', 'RMD-840', DeviceType::TABLET], 'RMD-900' => ['Ritmix', 'RMD-900', DeviceType::TABLET], 'RMD-1026' => ['Ritmix', 'RMD-1026', DeviceType::TABLET], 'RMD-1027' => ['Ritmix', 'RMD-1027', DeviceType::TABLET], 'RMD-1030' => ['Ritmix', 'RMD-1030', DeviceType::TABLET], 'RMD-1035' => ['Ritmix', 'RMD-1035', DeviceType::TABLET], 'RMD-1040' => ['Ritmix', 'RMD-1040', DeviceType::TABLET], 'RMD-1050' => ['Ritmix', 'RMD-1050', DeviceType::TABLET], 'RMD-1055' => ['Ritmix', 'RMD-1055', DeviceType::TABLET], 'RMD-1058' => ['Ritmix', 'RMD-1058', DeviceType::TABLET], 'RMD-1070' => ['Ritmix', 'RMD-1070', DeviceType::TABLET], 'RMP400' => ['Ritmix', 'RMP-400', DeviceType::TABLET], 'RMP-450' => ['Ritmix', 'RMP-450', DeviceType::TABLET], 'RMP-530' => ['Ritmix', 'RMP-530', DeviceType::TABLET], 'RMP-600' => ['Ritmix', 'RMP-600', DeviceType::TABLET]], 'RMD-[0-9]{2,3}G!!' => ['RMD-73G' => ['Ross&Moor', 'RMD-73G', DeviceType::TABLET], 'RMD-917G' => ['Ross&Moor', 'RMD-917G', DeviceType::TABLET], 'RMD-973G' => ['Ross&Moor', 'RMD-973G', DeviceType::TABLET]], 'RoverPad 3W T71D' => ['RoverPad', '3W T71D', DeviceType::TABLET], 'A8HD' => ['Saayi', 'Dropad A8HD', DeviceType::TABLET], 'Salora E1' => ['Salora', 'ValuMaxx E1'], 'DPH-D710' => ['Samsung', 'Galaxy S II'], 'EK-[GK][CN][0-9]{3,3}!!' => ['EK-GC100!' => ['Samsung', 'Galaxy Camera', DeviceType::CAMERA], 'EK-GC110!' => ['Samsung', 'Galaxy Camera', DeviceType::CAMERA], 'EK-GC120!' => ['Samsung', 'Galaxy NX', DeviceType::CAMERA], 'EK-GC200!' => ['Samsung', 'Galaxy Camera 2', DeviceType::CAMERA], 'EK-GN120!' => ['Samsung', 'Galaxy NX', DeviceType::CAMERA], 'EK-KC120!' => ['Samsung', 'Galaxy Camera LTE', DeviceType::CAMERA]], 'GT-B[0-9]{4,4}!!' => ['GT-B5330!' => ['Samsung', 'Galaxy Chat'], 'GT-B5510!' => ['Samsung', 'Galaxy Y Pro'], 'GT-B5512!' => ['Samsung', 'Galaxy Y Pro Duos'], 'GT-B7510!' => ['Samsung', 'Galaxy Pro'], 'GT-B9062!' => ['Samsung', 'GT-B9062'], 'GT-B9120!' => ['Samsung', 'GT-B9120'], 'GT-B9150!' => ['Samsung', 'Galaxy HomeSync', DeviceType::TELEVISION], 'GT-B9388!' => ['Samsung', 'GT-B9388']], 'GT-I[0-9]{3,4}!!' => ['GT-I55(00|03|08)!' => ['Samsung', 'Galaxy 5'], 'GT-I5510!' => ['Samsung', 'Galaxy 551'], 'GT-I5700!' => ['Samsung', 'Galaxy Spica'], 'GT-I58(00|01)!' => ['Samsung', 'Galaxy Apollo'], 'GT-I6500!' => ['Samsung', 'Saturn'], 'GT-I777!' => ['Samsung', 'Singa'], 'GT-I8000!' => ['Samsung', 'Omnia 2'], 'GT-I8150!' => ['Samsung', 'Galaxy W'], 'GT-I8160!' => ['Samsung', 'Galaxy Ace 2'], 'GT-I81(90|91)!' => ['Samsung', 'Galaxy S III Mini'], 'GT-I8200!' => ['Samsung', 'Galaxy S III Mini Value Edition'], 'GT-I8240!' => ['Samsung', 'GT-I8240'], 'GT-I8245!' => ['Samsung', 'GT-I8245'], 'GT-I8250!' => ['Samsung', 'GT-I8250'], 'GT-I8258!' => ['Samsung', 'GT-I8258'], 'GT-I82(60|62)!' => ['Samsung', 'Galaxy Core'], 'GT-I8268!' => ['Samsung', 'GT-I8268'], 'GT-I85(20|30)!' => ['Samsung', 'Galaxy Beam'], 'GT-I85(50|52|58)!' => ['Samsung', 'Galaxy Win'], 'GT-I8580' => ['Samsung', 'Galaxy Core Advance'], 'GT-I8730!' => ['Samsung', 'Galaxy Express'], 'GT-I90(00|08|18|88)!' => ['Samsung', 'Galaxy S'], 'GT-I9001!' => ['Samsung', 'Galaxy S Plus'], 'GT-I9003!' => ['Samsung', 'Galaxy SL'], 'GT-I9010!' => ['Samsung', 'Galaxy S Giorgio Armani'], 'GT-I9050!' => ['Samsung', 'GT-I9050'], 'GT-I9060!' => ['Samsung', 'Galaxy Grand Neo'], 'GT-I9063!' => ['Samsung', 'Galaxy Grand Neo Duos'], 'GT-I9070!' => ['Samsung', 'Galaxy S Advance'], 'GT-I9080!' => ['Samsung', 'Galaxy Grand'], 'GT-I9082!' => ['Samsung', 'Galaxy Grand Duos'], 'GT-I91(00|08)!' => ['Samsung', 'Galaxy S II'], 'GT-I9103!' => ['Samsung', 'Galaxy R'], 'GT-I9105!' => ['Samsung', 'Galaxy S II Plus'], 'GT-I9128!' => ['Samsung', 'Galaxy Grand'], 'GT-I91(50|58)!' => ['Samsung', 'Galaxy Mega 5.8'], 'GT-I9152!' => ['Samsung', 'Galaxy Mega 5.8 Plus'], 'GT-I9168!' => ['Samsung', 'Galaxy Grand Neo+'], 'GT-I9188!' => ['Samsung', 'GT-I9188'], 'GT-I91(90|95|97)!' => ['Samsung', 'Galaxy S4 Mini'], 'GT-I9192!' => ['Samsung', 'Galaxy S4 Mini Duos'], 'GT-I92(00|05|08)!' => ['Samsung', 'Galaxy Mega 6.3'], 'GT-I9210!' => ['Samsung', 'Galaxy S II LTE'], 'GT-I92(20|28)!' => ['Samsung', 'Galaxy Note'], 'GT-I9250!' => ['Samsung', 'Galaxy Nexus'], 'GT-I9230!' => ['Samsung', 'Galaxy Golden'], 'GT-I92(60|68)!' => ['Samsung', 'Galaxy Premier'], 'GT-I9295!' => ['Samsung', 'Galaxy S4 Active'], 'GT-I93(00|03|05|08)!' => ['Samsung', 'Galaxy S III'], 'GT-I93(01)!' => ['Samsung', 'Galaxy S3 Neo'], 'GT-I9400' => ['Samsung', 'GT-I9400'], 'GT-I9405!' => ['Samsung', 'GT-I9405'], 'GT-I9406!' => ['Samsung', 'GT-I9406'], 'GT-I95(00|05|07)!' => ['Samsung', 'Galaxy S4'], 'GT-I95(02|08)!' => ['Samsung', 'Galaxy S4 Duos'], 'GT-I95(06)!' => ['Samsung', 'Galaxy S4 Advance'], 'GT-I9515!' => ['Samsung', 'Galaxy S4 Neo'], 'GT-I9600!' => ['Samsung', 'GT-I9600'], 'GT-I9800!' => ['Samsung', 'GT-I9800']], 'GT-N[0-9]{4,4}!!' => ['GT-N51(00|05|10|20)!' => ['Samsung', 'Galaxy Note 8.0', DeviceType::TABLET], 'GT-N70(00|05)!' => ['Samsung', 'Galaxy Note'], 'GT-N71(00|02|05|08)!' => ['Samsung', 'Galaxy Note II'], 'GT-N7200!' => ['Samsung', 'Galaxy Note 3'], 'GT-N80(00|05|10|13|20)!' => ['Samsung', 'Galaxy Note 10.1', DeviceType::TABLET], 'GT-N90(00|02||05|06|08)!' => ['Samsung', 'Galaxy Note 3']], 'GT-P[0-9]{4,4}!!' => ['GT-P10(00|10)!' => ['Samsung', 'Galaxy Tab', DeviceType::TABLET], 'GT-P31(00|05|08|10|13)!' => ['Samsung', 'Galaxy Tab 2 (7.0)', DeviceType::TABLET], 'GT-P32(00|10)!' => ['Samsung', 'Galaxy Tab 3 (7.0)', DeviceType::TABLET], 'GT-P51(00|10|13)!' => ['Samsung', 'Galaxy Tab 2 (10.1)', DeviceType::TABLET], 'GT-P52(00|10|20)!' => ['Samsung', 'Galaxy Tab 3 (10.1)', DeviceType::TABLET], 'GT-P62(00|10)!' => ['Samsung', 'Galaxy Tab 7.0 Plus', DeviceType::TABLET], 'GT-P62(01|11)!' => ['Samsung', 'Galaxy Tab 7.0 Plus N', DeviceType::TABLET], 'GT-P68(00|10)!' => ['Samsung', 'Galaxy Tab 7.7', DeviceType::TABLET], 'GT-P7100!' => ['Samsung', 'Galaxy Tab 10.1V', DeviceType::TABLET], 'GT-P73(00|10|20)!' => ['Samsung', 'Galaxy Tab 8.9', DeviceType::TABLET], 'GT-P75(00|10)!' => ['Samsung', 'Galaxy Tab 10.1', DeviceType::TABLET], 'GT-P75(01|11)!' => ['Samsung', 'Galaxy Tab 10.1N', DeviceType::TABLET], 'GT-P8110!' => ['Samsung', 'Nexus 10', DeviceType::TABLET], 'GT-P8200!' => ['Samsung', 'Galaxy Tab 3 Plus (10.1)', DeviceType::TABLET]], 'GT-S[0-9]{4,4}!!' => ['GT-S52(80|82)!' => ['Samsung', 'Galaxy Star'], 'GT-S5283!' => ['Samsung', 'Galaxy Star Trios'], 'GT-S5300!' => ['Samsung', 'Galaxy Pocket'], 'GT-S5301!' => ['Samsung', 'Galaxy Pocket Plus'], 'GT-S5302!' => ['Samsung', 'Galaxy Pocket Duos'], 'GT-S5303!' => ['Samsung', 'Galaxy Y Plus'], 'GT-S5310!' => ['Samsung', 'Galaxy Pocket Neo'], 'GT-S5312!' => ['Samsung', 'Galaxy Pocket Neo Duos'], 'GT-S53(60|63|69)!' => ['Samsung', 'Galaxy Y'], 'GT-S5367!' => ['Samsung', 'Galaxy Y TV'], 'GT-S5368!' => ['Samsung', 'Galaxy Y Young'], 'GT-S55(70|78)!' => ['Samsung', 'Galaxy Mini'], 'GT-S5660!' => ['Samsung', 'Galaxy Gio'], 'GT-S5670!' => ['Samsung', 'Galaxy Fit'], 'GT-S56(90|98)!' => ['Samsung', 'Galaxy Xcover'], 'GT-S58(20|30|31|38|39)!' => ['Samsung', 'Galaxy Ace'], 'GT-S6010!' => ['Samsung', 'Galaxy Music'], 'GT-S6012!' => ['Samsung', 'Galaxy Music Duos'], 'GT-S6102!' => ['Samsung', 'Galaxy Y Duos'], 'GT-S6108!' => ['Samsung', 'Galaxy Y Pop'], 'GT-S6293!' => ['Samsung', 'Galaxy Young Plus'], 'GT-S6310!' => ['Samsung', 'Galaxy Young'], 'GT-S6312!' => ['Samsung', 'Galaxy Young Duos'], 'GT-S6313!' => ['Samsung', 'Galaxy Y Duos TV'], 'GT-S6352!' => ['Samsung', 'Galaxy Ace Duos'], 'GT-S6358!' => ['Samsung', 'Galaxy Ace'], 'GT-S6500!' => ['Samsung', 'Galaxy Mini 2'], 'GT-S6702!' => ['Samsung', 'Galaxy Y Duos'], 'GT-S6790!' => ['Samsung', 'Galaxy Fame Lite'], 'GT-S6792!' => ['Samsung', 'Galaxy Fame Lite Duos'], 'GT-S6800!' => ['Samsung', 'Galaxy Ace Advance'], 'GT-S6802!' => ['Samsung', 'Galaxy Ace Duos'], 'GT-S68(10|12|18)!' => ['Samsung', 'Galaxy Fame'], 'GT-S72(60|62)!' => ['Samsung', 'Galaxy Star Pro'], 'GT-S72(70|75|78)!' => ['Samsung', 'Galaxy Ace 3'], 'GT-S7273T' => ['Samsung', 'Galaxy S II TV'], 'GT-S72(72|73)!' => ['Samsung', 'Galaxy Ace 3 Duos'], 'GT-S7390!' => ['Samsung', 'Galaxy Trend Lite'], 'GT-S7392!' => ['Samsung', 'Galaxy Trend'], 'GT-S75(00|08)!' => ['Samsung', 'Galaxy Ace Plus'], 'GT-S7560!' => ['Samsung', 'Galaxy Ace II x'], 'GT-S75(62|66|68)!' => ['Samsung', 'Galaxy S Duos'], 'GT-S7570!' => ['Samsung', 'Galaxy Trend II'], 'GT-S7572!' => ['Samsung', 'Galaxy Trend II Duos'], 'GT-S7580!' => ['Samsung', 'Galaxy Trend Plus'], 'GT-S75(82|83)!' => ['Samsung', 'Galaxy S Duos 2'], 'GT-S7710!' => ['Samsung', 'Galaxy Xcover 2'], 'GT-S7898!' => ['Samsung', 'Galaxy Trend 2'], 'GT-S8500' => ['Samsung', 'Wave'], 'GT-S8530' => ['Samsung', 'Wave II'], 'GT-S9081' => ['Samsung', 'GT-S9081']], 'GT-T959!' => ['Samsung', 'Galaxy S Vibrant'], 'SCH-[iI][0-9]{3,3}!!' => ['SCH-i509' => ['Samsung', 'Galaxy Y'], 'SCH-i559' => ['Samsung', 'Galaxy Pop'], 'SCH-i569' => ['Samsung', 'Galaxy Gio'], 'SCH-i579' => ['Samsung', 'Galaxy Ace'], 'SCH-i589' => ['Samsung', 'Galaxy Ace Duos'], 'SCH-i705!' => ['Samsung', 'Galaxy Tab 2 (7.0)', DeviceType::TABLET], 'SCH-i809' => ['Samsung', 'Galaxy S'], 'SCH-i889' => ['Samsung', 'Galaxy Note'], 'SCH-i899' => ['Samsung', 'Galaxy'], 'SCH-i909' => ['Samsung', 'Galaxy S'], 'SCH-i919' => ['Samsung', 'Galaxy S Duos'], 'SCH-i929' => ['Samsung', 'Galaxy S II Duos'], 'SCH-I100' => ['Samsung', 'Gem'], 'SCH-I110' => ['Samsung', 'Illusion'], 'SCH-I200PP' => ['Samsung', 'Galaxy Legend'], 'SCH-I200( 4G)?$!' => ['Samsung', 'Galaxy Stellar'], 'SCH-I339' => ['Samsung', 'SCH-I339'], 'SCH-I400' => ['Samsung', 'Continuum'], 'SCH-I405( 4G)?$!' => ['Samsung', 'Stratosphere'], 'SCH-I405U' => ['Samsung', 'Galaxy Metrix'], 'SCH-I415( 4G)?$!' => ['Samsung', 'Stratosphere II'], 'SCH-I435!' => ['Samsung', 'Galaxy S4 Mini'], 'SCH-I500' => ['Samsung', 'Fascinate'], 'SCH-I510' => ['Samsung', 'Stealth V'], 'SCH-I510 4G' => ['Samsung', 'Droid Charge'], 'SCH-I515' => ['Samsung', 'Galaxy Nexus'], 'SCH-I519' => ['Samsung', 'SCH-I519'], 'SCH-I535!' => ['Samsung', 'Galaxy S III'], 'SCH-I545!' => ['Samsung', 'Galaxy S4'], 'SCH-I605!' => ['Samsung', 'Galaxy Note II'], 'SCH-I619' => ['Samsung', 'Galaxy Ace A+'], 'SCH-I629' => ['Samsung', 'SCH-I629'], 'SCH-I659' => ['Samsung', 'Galaxy Ace Plus'], 'SCH-I665' => ['Samsung', 'SCH-I665'], 'SCH-I679' => ['Samsung', 'SCH-I679'], 'SCH-I699!' => ['Samsung', 'Galaxy Trend'], 'SCH-I739' => ['Samsung', 'Galaxy Trend II'], 'SCH-I747' => ['Samsung', 'Galaxy S III'], 'SCH-I759' => ['Samsung', 'Galaxy Infinite'], 'SCH-I779' => ['Samsung', 'Saga'], 'SCH-I800' => ['Samsung', 'Galaxy Tab 7.0', DeviceType::TABLET], 'SCH-I815!' => ['Samsung', 'Galaxy Tab 7.7', DeviceType::TABLET], 'SCH-I829' => ['Samsung', 'Galaxy Style Duos'], 'SCH-I869' => ['Samsung', 'Galaxy Win'], 'SCH-I879!' => ['Samsung', 'Galaxy Grand'], 'SCH-I905!' => ['Samsung', 'Galaxy Tab 10.1', DeviceType::TABLET], 'SCH-I909' => ['Samsung', 'Galaxy S'], 'SCH-I915!' => ['Samsung', 'Galaxy Tab 2 (10.1)', DeviceType::TABLET], 'SCH-I919!' => ['Samsung', 'Galaxy S Duos'], 'SCH-I925!' => ['Samsung', 'Galaxy Note 10.1', DeviceType::TABLET], 'SCH-I939!' => ['Samsung', 'Galaxy S III'], 'SCH-I959' => ['Samsung', 'Galaxy S4']], 'SCH-L710' => ['Samsung', 'Galaxy S III'], 'SCH-M828!' => ['Samsung', 'Galaxy Precedent'], 'SCH-N719' => ['Samsung', 'Galaxy Note II'], 'SCH-P[0-9]{3,3}!!' => ['SCH-P709!' => ['Samsung', 'Galaxy Mega 5.8'], 'SCH-P729' => ['Samsung', 'Galaxy Mega 6.3'], 'SCH-P739' => ['Samsung', 'Galaxy Tab 8.9', DeviceType::TABLET]], 'SCH-R[0-9]{3,3}!!' => ['SCH-R530!' => ['Samsung', 'Galaxy S III'], 'SCH-R680!' => ['Samsung', 'Repp'], 'SCH-R710!' => ['Samsung', 'Suede'], 'SCH-R720!' => ['Samsung', 'Admire'], 'SCH-R730!' => ['Samsung', 'Transfix'], 'SCH-R740!' => ['Samsung', 'Galaxy Discover'], 'SCH-R760!' => ['Samsung', 'Galaxy S II'], 'SCH-R820!' => ['Samsung', 'Admire'], 'SCH-R830!' => ['Samsung', 'Axiom'], 'SCH-R880!' => ['Samsung', 'Acclaim'], 'SCH-R890!' => ['Samsung', 'SCH-R890'], 'SCH-R910!' => ['Samsung', 'Galaxy Indulge 4G'], 'SCH-R915!' => ['Samsung', 'Galaxy Indulge'], 'SCH-R920!' => ['Samsung', 'Galaxy Attain 4G'], 'SCH-R930!' => ['Samsung', 'Galaxy S Aviator'], 'SCH-R940!' => ['Samsung', 'Galaxy S Lightray'], 'SCH-R950!' => ['Samsung', 'Galaxy Note II'], 'SCH-R960!' => ['Samsung', 'Galaxy Mega 6.3'], 'SCH-R970!' => ['Samsung', 'Galaxy S4']], 'SCH-S[0-9]{3,3}!!' => ['SCH-S720!' => ['Samsung', 'Galaxy Proclaim'], 'SCH-S735!' => ['Samsung', 'Galaxy Discover'], 'SCH-S738!' => ['Samsung', 'Galaxy Centura'], 'SCH-S950!' => ['Samsung', 'Galaxy S Showcase'], 'SCH-S9(60|68)!' => ['Samsung', 'Galaxy S III']], 'SCH-V727' => ['Samsung', 'Galaxy S4'], 'SCH-W[0-9]{3,4}!!' => ['SCH-W789!' => ['Samsung', 'SCH-W789'], 'SCH-W799!' => ['Samsung', 'SCH-W799'], 'SCH-W899' => ['Samsung', 'SCH-W899'], 'SCH-W999' => ['Samsung', 'SCH-W999'], 'SCH-W2013' => ['Samsung', 'SCH-W2013'], 'SCH-W9913' => ['Samsung', 'SCH-W9913']], 'SGH-[EILNMS][0-9]{3,4}!!' => ['SGH-E258' => ['Samsung', 'SGH-E258'], 'SGH-I317!' => ['Samsung', 'Galaxy Note II'], 'SGH-I237!' => ['Samsung', 'SGH-I237'], 'SGH-I257!' => ['Samsung', 'Galaxy S4 Mini'], 'SGH-I317!' => ['Samsung', 'Galaxy Note II'], 'SGH-I337!' => ['Samsung', 'Galaxy S4'], 'SGH-I407!' => ['Samsung', 'Galaxy Amp'], 'SGH-I437!' => ['Samsung', 'Galaxy Express'], 'SGH-I467!' => ['Samsung', 'Galaxy Note 8.0', DeviceType::TABLET], 'SGH-I497' => ['Samsung', 'Galaxy Tab 2 (10.1)', DeviceType::TABLET], 'SGH-I527!' => ['Samsung', 'Galaxy Mega 6.3'], 'SGH-I535!' => ['Samsung', 'Galaxy S III'], 'SGH-I537!' => ['Samsung', 'Galaxy S4 Active'], 'SGH-I545!' => ['Samsung', 'Galaxy S4'], 'SGH-I547!' => ['Samsung', 'Galaxy Rugby Pro'], 'SGH-I577!' => ['Samsung', 'Galaxy Exhilarate'], 'SGH-I717!' => ['Samsung', 'Galaxy Note'], 'SGH-I727R' => ['Samsung', 'Galaxy S II'], 'SGH-I727!' => ['Samsung', 'Galaxy S II Skyrocket'], 'SGH-I7(47|48)!' => ['Samsung', 'Galaxy S III'], 'SGH-I757!' => ['Samsung', 'Galaxy S II Skyrocket HD'], 'SGH-I9?777!' => ['Samsung', 'Galaxy S II'], 'SGH-I807' => ['Samsung', 'SGH-I807'], 'SGH-I827!' => ['Samsung', 'Galaxy Appeal'], 'SGH-I847' => ['Samsung', 'Rugby Smart'], 'SGH-I857' => ['Samsung', 'DoubleTime'], 'SGH-I8(96|97)!' => ['Samsung', 'Captivate'], 'SGH-I927!' => ['Samsung', 'Captivate Glide'], 'SGH-I957!' => ['Samsung', 'Galaxy Tab 8.9', DeviceType::TABLET], 'SGH-I987' => ['Samsung', 'Galaxy Tab 7.0', DeviceType::TABLET], 'SGH-I997' => ['Samsung', 'Infuse 4G'], 'SGH-I997R' => ['Samsung', 'Infuse 4G'], 'SGH-I9000' => ['Samsung', 'Galaxy S'], 'SGH-I9300' => ['Samsung', 'Galaxy S III'], 'SGH-L710' => ['Samsung', 'Galaxy S III'], 'SGH-N014!' => ['Samsung', 'GALAXY Tab 10.1 LTE SC-01D', DeviceType::TABLET, 'carrier' => 'DoCoMo'], 'SGH-N075!' => ['Samsung', 'GALAXY J SC-02F', 'carrier' => 'DoCoMo'], 'SGH-M819!' => ['Samsung', 'Galaxy Mega 6.3'], 'SGH-M909!' => ['Samsung', 'Galaxy S III'], 'SGH-M919!' => ['Samsung', 'Galaxy S4'], 'SGH-S730!' => ['Samsung', 'Galaxy Discover'], 'SGH-S959!' => ['Samsung', 'Galaxy S II'], 'SGH-S970G' => ['Samsung', 'Galaxy S4']], 'SGH-T[0-9]{3,3}!!' => ['SGH-T289!' => ['Samsung', 'Gravity Q'], 'SGH-T399!' => ['Samsung', 'Galaxy Light'], 'SGH-T499!' => ['Samsung', 'Dart'], 'SGH-T499[VY]!' => ['Samsung', 'Galaxy Mini'], 'SGH-T589!' => ['Samsung', 'Gravity Smart'], 'SGH-T599!' => ['Samsung', 'Galaxy Exhibit'], 'SGH-T679!' => ['Samsung', 'Galaxy Exhibit II'], 'SGH-T699' => ['Samsung', 'Galaxy S Relay'], 'SGH-T727' => ['Samsung', 'Galaxy S II Skyrocket'], 'SGH-T759' => ['Samsung', 'Exhibit 4G'], 'SGH-T769' => ['Samsung', 'Galaxy S Blaze'], 'SGH-T779' => ['Samsung', 'Galaxy Tab 2 (10.1)', DeviceType::TABLET], 'SGH-T839!' => ['Samsung', 'T-Mobile Sidekick'], 'SGH-T849' => ['Samsung', 'Galaxy Tab 7.0', DeviceType::TABLET], 'SGH-T859' => ['Samsung', 'Galaxy Tab 10.1', DeviceType::TABLET], 'SGH-T869' => ['Samsung', 'Galaxy Tab 7.0 Plus', DeviceType::TABLET], 'SGH-T879' => ['Samsung', 'Galaxy Note'], 'SGH-T889!' => ['Samsung', 'Galaxy Note II'], 'SGH-T959' => ['Samsung', 'Vibrant'], 'SGH-T959D' => ['Samsung', 'Galaxy S Fascinate 3G+'], 'SGH-T959P' => ['Samsung', 'Galaxy S Fascinate 4G'], 'SGH-T959V' => ['Samsung', 'Galaxy S 4G'], 'SGH-T959W' => ['Samsung', 'Galaxy S 4G'], 'SGH-T989' => ['Samsung', 'Galaxy S II'], 'SGH-T989D' => ['Samsung', 'Galaxy S II X'], 'SGH-T999!' => ['Samsung', 'Galaxy S III']], 'SGH-W2013!' => ['Samsung', 'SGH-W2013'], 'SHV-E[0-9]{3,3}!!' => ['SHV-E120!' => ['Samsung', 'Galaxy S II HD LTE'], 'SHV-E110!' => ['Samsung', 'Galaxy S II LTE'], 'SHV-E140!' => ['Samsung', 'Galaxy Tab 8.9', DeviceType::TABLET], 'SHV-E150!' => ['Samsung', 'Galaxy Tab 7.7', DeviceType::TABLET], 'SHV-E160!' => ['Samsung', 'Galaxy Note'], 'SHV-E170!' => ['Samsung', 'Galaxy R'], 'SHV-E210!' => ['Samsung', 'Galaxy S III'], 'SHV-E220!' => ['Samsung', 'Galaxy Pop'], 'SHV-E230!' => ['Samsung', 'Galaxy Note 10.1', DeviceType::TABLET], 'SHV-E250!' => ['Samsung', 'Galaxy Note II'], 'SHV-E2(70|75)!' => ['Samsung', 'Galaxy Grand'], 'SHV-E300!' => ['Samsung', 'Galaxy S4'], 'SHV-E310!' => ['Samsung', 'Galaxy Mega 6.3'], 'SHV-E330!' => ['Samsung', 'Galaxy S4'], 'SHV-E370!' => ['Samsung', 'Galaxy S4 Mini'], 'SHV-E400!' => ['Samsung', 'Galaxy Folder'], 'SHV-E470!' => ['Samsung', 'Galaxy S4 Active'], 'SHV-E500!' => ['Samsung', 'Galaxy Win'], 'SHV-E510!' => ['Samsung', 'SHV-E510']], 'SHW-M[0-9]{3,3}!!' => ['SHW-M100!' => ['Samsung', 'Galaxy A'], 'SHW-M110!' => ['Samsung', 'Galaxy S'], 'SHW-M130L!' => ['Samsung', 'Galaxy U'], 'SHW-M130K!' => ['Samsung', 'Galaxy K'], 'SHW-M1(80|85)!' => ['Samsung', 'Galaxy Tab', DeviceType::TABLET], 'SHW-M190!' => ['Samsung', 'Galaxy S Hoppin'], 'SHW-M220!' => ['Samsung', 'Galaxy Neo'], 'SHW-M240!' => ['Samsung', 'Galaxy Ace'], 'SHW ?-M250!' => ['Samsung', 'Galaxy S II'], 'SHW-M280!' => ['Samsung', 'SHW-M280'], 'SHW-M290!' => ['Samsung', 'Galaxy Gio'], 'SHW-M300!' => ['Samsung', 'Galaxy Tab 10.1', DeviceType::TABLET], 'SHW-M305!' => ['Samsung', 'Galaxy Tab 8.9', DeviceType::TABLET], 'SHW-M340!' => ['Samsung', 'Galaxy M Style'], 'SHW-M380!' => ['Samsung', 'Galaxy Tab 10.1', DeviceType::TABLET], 'SHW-M420!' => ['Samsung', 'Galaxy Nexus'], 'SHW-M440!' => ['Samsung', 'Galaxy S III'], 'SHW-M460!' => ['Samsung', 'Galaxy Ace Plus'], 'SHW-M4(80|85)!' => ['Samsung', 'Galaxy Note 10.1', DeviceType::TABLET], 'SHW-M500!' => ['Samsung', 'Galaxy Note 8.0', DeviceType::TABLET], 'SHW-M550!' => ['Samsung', 'SHW-M550'], 'SHW-M570!' => ['Samsung', 'Galaxy Core Advance'], 'SHW-M585!' => ['Samsung', 'Galaxy Core']], 'SMT-E5015' => ['Samsung', 'SMT-E5015', DeviceType::TELEVISION], 'SMT-i9100' => ['Samsung', 'SMT-I9100', DeviceType::TABLET], 'SM-A[0-9]{3,3}!!' => ['SM-A300!' => ['Samsung', 'Galaxy A3'], 'SM-A310!' => ['Samsung', 'Galaxy A3 (2016)'], 'SM-A500!' => ['Samsung', 'Galaxy A5'], 'SM-A510!' => ['Samsung', 'Galaxy A5 (2016)'], 'SM-A700!' => ['Samsung', 'Galaxy A7'], 'SM-A710!' => ['Samsung', 'Galaxy A7 (2016)'], 'SM-A800!' => ['Samsung', 'Galaxy A8'], 'SM-A900!' => ['Samsung', 'Galaxy A9 (2016)']], 'SM-C[0-9]{3,3}!!' => ['SM-C10[15]!' => ['Samsung', 'Galaxy S4 Zoom'], 'SM-C11[15]!' => ['Samsung', 'Galaxy K Zoom']], 'SM-E[0-9]{3,3}!!' => ['SM-E500!' => ['Samsung', 'Galaxy E5'], 'SM-E700!' => ['Samsung', 'Galaxy E7']], 'SM-G[0-9]{3,3}!!' => ['SM-G110!' => ['Samsung', 'Galaxy Pocket 2'], 'SM-G130BT' => ['Samsung', 'Galaxy Young 2'], 'SM-G130BU' => ['Samsung', 'Galaxy Young 2'], 'SM-G130E' => ['Samsung', 'Galaxy Star 2'], 'SM-G130H' => ['Samsung', 'Galaxy Young 2'], 'SM-G130HN' => ['Samsung', 'Galaxy Young 2 Duos'], 'SM-G130M' => ['Samsung', 'Galaxy Young 2 Duos'], 'SM-G150!' => ['Samsung', 'Galaxy Folder'], 'SM-G310H' => ['Samsung', 'Galaxy Ace 4'], 'SM-G310HN' => ['Samsung', 'Galaxy Ace Style'], 'SM-G310R5' => ['Samsung', 'GreatCall Touch 3'], 'SM-G313HU!' => ['Samsung', 'Galaxy S Duos 3'], 'SM-G313!' => ['Samsung', 'Galaxy Ace 4'], 'SM-G316HU!' => ['Samsung', 'Galaxy S Duos 3-VE'], 'SM-G316!' => ['Samsung', 'Galaxy Ace 4'], 'SM-G318!' => ['Samsung', 'Galaxy Ace 4 Neo'], 'SM-G350[289]!' => ['Samsung', 'Galaxy Trend 3'], 'SM-G350!' => ['Samsung', 'Galaxy Core Plus'], 'SM-G3518!' => ['Samsung', 'Galaxy Core'], 'SM-G355!' => ['Samsung', 'Galaxy Core 2'], 'SM-G3568!' => ['Samsung', 'Galaxy Core Mini'], 'SM-G357!' => ['Samsung', 'Galaxy Ace Style'], 'SM-G358[689]!' => ['Samsung', 'Galaxy Core Lite'], 'SM-G360BT' => ['Samsung', 'Galaxy Win 2 Duos TV'], 'SM-G360AZ' => ['Samsung', 'Galaxy Core Prime'], 'SM-G360R6!' => ['Samsung', 'Galaxy Core Prime'], 'SM-G360[FGHMPTV689]!' => ['Samsung', 'Galaxy Core Prime'], 'SM-G361!' => ['Samsung', 'Galaxy Core Prime VE'], 'SM-G3812B!' => ['Samsung', 'Galaxy S III Slim'], 'SM-G3812' => ['Samsung', 'Galaxy Win Pro'], 'SM-G3815' => ['Samsung', 'Galaxy Express 2'], 'SM-G381[89]!' => ['Samsung', 'Galaxy Win Pro'], 'SM-G3858!' => ['Samsung', 'Galaxy Beam 2'], 'SM-G386!' => ['Samsung', 'Galaxy Core'], 'SM-G388!' => ['Samsung', 'Galaxy Xcover 3'], 'SM-G420!' => ['Samsung', 'SM-G420'], 'SM-G430!' => ['Samsung', 'SM-G430'], 'SM-G510!' => ['Samsung', 'Galaxy Core Max'], 'SM-G530!' => ['Samsung', 'Galaxy Grand Prime'], 'SM-G531!' => ['Samsung', 'Galaxy Grand Prime VE'], 'SM-G550!' => ['Samsung', 'Galaxy On5'], 'SM-G600!' => ['Samsung', 'Galaxy On7'], 'SM-G710!' => ['Samsung', 'Galaxy Grand 2'], 'SM-G720!' => ['Samsung', 'Galaxy Grand 3'], 'SM-G730!' => ['Samsung', 'Galaxy S III Mini'], 'SM-G750!' => ['Samsung', 'Galaxy Mega 2 '], 'SM-G800!' => ['Samsung', 'Galaxy S5 Mini'], 'SM-G850!' => ['Samsung', 'Galaxy Alpha'], 'SM-G860!' => ['Samsung', 'Galaxy S5 Sport'], 'SM-G870!' => ['Samsung', 'Galaxy S5 Active'], 'SM-G890!' => ['Samsung', 'Galaxy S6 Active'], 'SM-G90[016]!' => ['Samsung', 'Galaxy S5'], 'SM-G903!' => ['Samsung', 'Galaxy S5 Neo'], 'SM-G9092!' => ['Samsung', 'Galaxy G9092'], 'SM-G9098!' => ['Samsung', 'Galaxy G9098'], 'SM-G909D' => ['Samsung', 'Galaxy S5'], 'SM-G910!' => ['Samsung', 'Galaxy Round'], 'SM-G919!' => ['Samsung', 'SM-G9198'], 'SM-G920!' => ['Samsung', 'Galaxy S6'], 'SM-G925!' => ['Samsung', 'Galaxy S6 Edge'], 'SM-G928!' => ['Samsung', 'Galaxy S6 Edge+'], 'SM-G930!' => ['Samsung', 'Galaxy S7'], 'SM-G935!' => ['Samsung', 'Galaxy S7 Edge']], 'SM-I9500' => ['Samsung', 'Galaxy S4'], 'SM-J[0-9]{3,3}!!' => ['SM-J100!' => ['Samsung', 'Galaxy J1'], 'SM-J105!' => ['Samsung', 'Galaxy J1'], 'SM-J110!' => ['Samsung', 'Galaxy J1 Ace'], 'SM-J120!' => ['Samsung', 'Galaxy J1 (2016)'], 'SM-J200!' => ['Samsung', 'Galaxy J2'], 'SM-J3(10|20)!' => ['Samsung', 'Galaxy J3'], 'SM-J500!' => ['Samsung', 'Galaxy J5'], 'SM-J510!' => ['Samsung', 'Galaxy J5 (2016)'], 'SM-J700!' => ['Samsung', 'Galaxy J7']], 'SM-N[0-9]{3,4}!!' => ['SM-N750[025789][QV]?!' => ['Samsung', 'Galaxy Note 3 Neo'], 'SM-N750[LS]?!' => ['Samsung', 'Galaxy Note 3 Neo'], 'SM-N8000' => ['Samsung', 'Galaxy Note 800', DeviceType::TABLET], 'SM-N900[0256789]?!' => ['Samsung', 'Galaxy Note 3'], 'SM-N900!' => ['Samsung', 'Galaxy Note 3'], 'SM-N910[06]' => ['Samsung', 'Galaxy Note 4'], 'SM-N91[06]!' => ['Samsung', 'Galaxy Note 4'], 'SM-N915!' => ['Samsung', 'Galaxy Note Edge'], 'SM-N920!' => ['Samsung', 'Galaxy Note 5']], 'SM-P[0-9]{3,3}!!' => ['SM-P35[015]!' => ['Samsung', 'Galaxy Tab A Plus 8.0', DeviceType::TABLET], 'SM-P55[015]!' => ['Samsung', 'Galaxy Tab A Plus 9.7', DeviceType::TABLET], 'SM-P60[01257]!' => ['Samsung', 'Galaxy Note 10.1 (2014)', DeviceType::TABLET], 'SM-P90[01257]!' => ['Samsung', 'Galaxy Note Pro', DeviceType::TABLET]], 'SM-S[0-9]{3,3}!!' => ['SM-S765C' => ['Samsung', 'Galaxy Ace Style'], 'SM-S766C' => ['Samsung', 'Galaxy Stardust'], 'SM-S780L' => ['Samsung', 'Galaxy Mega 6.3'], 'SM-S820L' => ['Samsung', 'Galaxy Core Prime'], 'SM-S890L' => ['Samsung', 'Galaxy S4 Mini'], 'SM-S902L' => ['Samsung', 'Galaxy S5'], 'SM-S920L' => ['Samsung', 'Galaxy Grand Prime'], 'SM-S975L' => ['Samsung', 'Galaxy S4']], 'SM-T[0-9]{3,3}!!' => ['SM-T11[01]!' => ['Samsung', 'Galaxy Tab 3 Lite', DeviceType::TABLET], 'SM-T11[36]!' => ['Samsung', 'Galaxy Tab 3 V', DeviceType::TABLET], 'SM-T2105' => ['Samsung', 'Galaxy Tab 3 Kids', DeviceType::TABLET], 'SM-T21[01257]!' => ['Samsung', 'Galaxy Tab 3 (7.0)', DeviceType::TABLET], 'SM-T2519' => ['Samsung', 'Galaxy Tab Q'], 'SM-T255[68S]!' => ['Samsung', 'Galaxy Tab Q'], 'SM-T23[01257]!' => ['Samsung', 'Galaxy Tab 4 (7.0)', DeviceType::TABLET], 'SM-T23[9]!' => ['Samsung', 'Galaxy Tab 4 Lite', DeviceType::TABLET], 'SM-T28[5]!' => ['Samsung', 'Galaxy Tab E 7.0', DeviceType::TABLET], 'SM-T31[0125]!' => ['Samsung', 'Galaxy Tab 3 (8.0)', DeviceType::TABLET], 'SM-T32[015]!' => ['Samsung', 'Galaxy Tab Pro 8.4', DeviceType::TABLET], 'SM-T33[01257]!' => ['Samsung', 'Galaxy Tab 4 (8.0)', DeviceType::TABLET], 'SM-T33[3]!' => ['Samsung', 'Galaxy Tab 4 8.0 (2015)', DeviceType::TABLET], 'SM-T35[0157]!' => ['Samsung', 'Galaxy Tab A 8.0', DeviceType::TABLET], 'SM-T36[05]!' => ['Samsung', 'Galaxy Tab Active (8.0)', DeviceType::TABLET], 'SM-T37[57]!' => ['Samsung', 'Galaxy Tab E 8.0', DeviceType::TABLET], 'SM-T52[05]!' => ['Samsung', 'Galaxy Tab Pro 10.1', DeviceType::TABLET], 'SM-T53[01257]!' => ['Samsung', 'Galaxy Tab 4 (10.1)', DeviceType::TABLET], 'SM-T53[3]!' => ['Samsung', 'Galaxy Tab 4 10.1 (2015)', DeviceType::TABLET], 'SM-T55[015]!' => ['Samsung', 'Galaxy Tab A 9.7', DeviceType::TABLET], 'SM-T56[017]!' => ['Samsung', 'Galaxy Tab E 9.6', DeviceType::TABLET], 'SM-T67[07]!' => ['Samsung', 'Galaxy View', DeviceType::TABLET], 'SM-T70[057]!' => ['Samsung', 'Galaxy Tab S 8.4', DeviceType::TABLET], 'SM-T71[05]!' => ['Samsung', 'Galaxy Tab S2 8.0', DeviceType::TABLET], 'SM-T80[0157]!' => ['Samsung', 'Galaxy Tab S 10.5', DeviceType::TABLET], 'SM-T81[0579]!' => ['Samsung', 'Galaxy Tab S2 9.7', DeviceType::TABLET], 'SM-T90[05]!' => ['Samsung', 'Galaxy Tab Pro 12.2', DeviceType::TABLET]], 'SM-V700' => ['Samsung', 'Galaxy Gear', DeviceType::WATCH], 'SM-W[0-9]{4,4}!!' => ['SM-W2014' => ['Samsung', 'Galaxy W2014'], 'SM-W2015' => ['Samsung', 'Galaxy Golden 2'], 'SM-W2016' => ['Samsung', 'Galaxy Golden 3']], 'SPH-D[0-9]{3,3}!!' => ['SPH-D600' => ['Samsung', 'Conquer 4G'], 'SPH-D700' => ['Samsung', 'Epic 4G'], 'SPH-D705' => ['Samsung', 'Epic 4G 2'], 'SPH-D710!' => ['Samsung', 'Galaxy S II'], 'SPH-D720!' => ['Samsung', 'Nexus S']], 'SPH-L[0-9]{3,3}!!' => ['SPH-L300' => ['Samsung', 'Galaxy Victory 4G LTE'], 'SPH-L520' => ['Samsung', 'Galaxy S4 Mini'], 'SPH-L600' => ['Samsung', 'Galaxy Mega 6.3'], 'SPH-L700' => ['Samsung', 'Galaxy Nexus'], 'SPH-L710!' => ['Samsung', 'Galaxy S III'], 'SPH-L72A!' => ['Samsung', 'Galaxy S4'], 'SPH-L720!' => ['Samsung', 'Galaxy S4'], 'SPH-L900!' => ['Samsung', 'Galaxy Note II']], 'SPH-M[0-9]{3,3}!!' => ['SPH-M820!' => ['Samsung', 'Galaxy Prevail'], 'SPH-M828!' => ['Samsung', 'Galaxy Precedent'], 'SPH-M830!' => ['Samsung', 'Galaxy Rush'], 'SPH-M840' => ['Samsung', 'Galaxy Ring'], 'SPH-M580!' => ['Samsung', 'Replenish'], 'SPH-M900' => ['Samsung', 'Moment'], 'SPH-M910' => ['Samsung', 'Intercept'], 'SPH-M920' => ['Samsung', 'Transform'], 'SPH-M930!' => ['Samsung', 'Transform Ultra'], 'SPH-M950' => ['Samsung', 'Galaxy Reverb']], 'SPH-P[0-9]{3,3}!!' => ['SPH-P100!' => ['Samsung', 'Galaxy Tab', DeviceType::TABLET], 'SPH-P500' => ['Samsung', 'Galaxy Tab 2 10.1', DeviceType::TABLET], 'SPH-P600' => ['Samsung', 'Galaxy Note 10.1', DeviceType::TABLET]], 'YP-G!!' => ['YP-GB1' => ['Samsung', 'Galaxy Player', 'media'], 'YP-GB70' => ['Samsung', 'Galaxy Player 70', 'media'], 'YP-GB70D' => ['Samsung', 'Galaxy Player 70 Plus', 'media'], 'YP-GP1' => ['Samsung', 'Galaxy Player 5.8', 'media'], 'YP-GS1' => ['Samsung', 'Galaxy S WiFi 3.6', 'media'], 'YP-G1' => ['Samsung', 'Galaxy S WiFi 4.0', 'media'], 'YP-GI1' => ['Samsung', 'Galaxy S WiFi 4.2', 'media'], 'YP-GI2' => ['Samsung', 'Galaxy 070', 'media'], 'YP-G50' => ['Samsung', 'Galaxy Player', 'media'], 'YP-G70' => ['Samsung', 'Galaxy S WiFi 5.0', 'media']], 'GT9100' => ['Samsung', 'Galaxy S II'], 'I897' => ['Samsung', 'Captivate'], 'I7500' => ['Samsung', 'Galaxy'], 'I9000' => ['Samsung', 'Galaxy S'], 'T959' => ['Samsung', 'Galaxy S Vibrant'], 'Galaxy!!' => ['Galaxy' => ['Samsung', 'Galaxy'], 'Galaxy ACE' => ['Samsung', 'Galaxy Ace'], 'Galaxy Ace 8' => ['Samsung', 'Galaxy Ace'], 'Galaxy Express' => ['Samsung', 'Galaxy Express'], 'Galaxy Mini' => ['Samsung', 'Galaxy Mini'], 'Galaxy Mini Plus 4G' => ['Samsung', 'Galaxy Mini Plus'], 'Galaxy Note' => ['Samsung', 'Galaxy Note'], 'Galaxy Note I' => ['Samsung', 'Galaxy Note'], 'Galaxy Note II' => ['Samsung', 'Galaxy Note II'], 'Galaxy Note 2' => ['Samsung', 'Galaxy Note II'], 'GALAXY Note III' => ['Samsung', 'Galaxy Note 3'], 'GALAXY Note 3' => ['Samsung', 'Galaxy Note 3'], 'Galaxy Note 3 N9000' => ['Samsung', 'Galaxy Note 3'], 'Galaxy NoteIII' => ['Samsung', 'Galaxy Note 3'], 'Galaxy N3' => ['Samsung', 'Galaxy Note 3'], 'GalaxyNote3' => ['Samsung', 'Galaxy Note 3'], 'Galaxy Note 4' => ['Samsung', 'Galaxy Note 4'], 'GALAXY Note4' => ['Samsung', 'Galaxy Note 4'], 'GalaxyS' => ['Samsung', 'Galaxy S'], 'Galaxy S' => ['Samsung', 'Galaxy S'], 'Galaxy S II' => ['Samsung', 'Galaxy S II'], 'Galaxy S2' => ['Samsung', 'Galaxy S II'], 'GalaxyS2' => ['Samsung', 'Galaxy S II'], 'Galaxy S2!' => ['Samsung', 'Galaxy S II'], 'Galaxy S III' => ['Samsung', 'Galaxy S III'], 'GALAXY SIII' => ['Samsung', 'Galaxy S III'], 'Galaxy S3' => ['Samsung', 'Galaxy S III'], 'GalaxyS4' => ['Samsung', 'Galaxy S4'], 'Galaxy S4' => ['Samsung', 'Galaxy S4'], 'Galaxy-S4' => ['Samsung', 'Galaxy S4'], 'Galaxy SIV' => ['Samsung', 'Galaxy S4'], 'Galaxy S IV(I950X)' => ['Samsung', 'Galaxy S4'], 'Galaxy S4 Mini GT-I9505' => ['Samsung', 'Galaxy S4 Mini'], 'Galaxy S4 Zoom' => ['Samsung', 'Galaxy S4 Zoom'], 'GALAXY S5' => ['Samsung', 'Galaxy S5'], 'Galaxy S5 Sprint' => ['Samsung', 'Galaxy S5'], 'Galaxy S6' => ['Samsung', 'Galaxy S6'], 'Galaxy S6 Edge' => ['Samsung', 'Galaxy S6 Edge'], 'Galaxy X' => ['Samsung', 'Galaxy X'], 'Galaxy Spica' => ['Samsung', 'Galaxy Spica'], 'Galaxy pop plus 4G' => ['Samsung', 'Galaxy Pop Plus'], 'Galaxy Precedent' => ['Samsung', 'Galaxy Precedent'], 'GALAXY Tab' => ['Samsung', 'Galaxy Tab', DeviceType::TABLET], 'Galaxy Tab3' => ['Samsung', 'Galaxy Tab 3', DeviceType::TABLET]], 'S2' => ['Samsung', 'Galaxy S II'], 'S3' => ['Samsung', 'Galaxy S III'], 'S4' => ['Samsung', 'Galaxy S4'], 'S5' => ['Samsung', 'Galaxy S5'], 'S5 Mini!' => ['Samsung', 'Galaxy S5 Mini'], 'S6 Edge+!' => ['Samsung', 'Galaxy S6 Edge+'], 'Note III' => ['Samsung', 'Galaxy Note 3'], 'Captivate-I897' => ['Samsung', 'Captivate'], 'Aegis2' => ['Samsung', 'Stratosphere II'], 'Vibrantmtd' => ['Samsung', 'Vibrant'], 'Vibrant T959' => ['Samsung', 'Vibrant'], 'HOMESYNCT2WIFI' => ['Samsung', 'Galaxy HomeSync', DeviceType::TELEVISION], 'SC-?0[0-9][A-Z]!!' => ['SC-01C' => ['Samsung', 'GALAXY Tab SC-01C', DeviceType::TABLET, 'carrier' => 'DoCoMo'], 'SC-01D' => ['Samsung', 'GALAXY Tab 10.1 LTE SC-01D', DeviceType::TABLET, 'carrier' => 'DoCoMo'], 'SC-01E' => ['Samsung', 'GALAXY Tab 7.7 Plus SC-01E', DeviceType::TABLET, 'carrier' => 'DoCoMo'], 'SC-01F' => ['Samsung', 'GALAXY Note 3 SC-01F', 'carrier' => 'DoCoMo'], 'SC-01G' => ['Samsung', 'GALAXY Note Edge SC-01G', 'carrier' => 'DoCoMo'], 'SC-01H' => ['Samsung', 'GALAXY Active neo SC-01H', 'carrier' => 'DoCoMo'], 'SC-02B' => ['Samsung', 'GALAXY S SC-02B', 'carrier' => 'DoCoMo'], 'SC-02C' => ['Samsung', 'GALAXY S II SC-02C', 'carrier' => 'DoCoMo'], 'SC-02D' => ['Samsung', 'GALAXY Tab 7.0 Plus SC-02D', DeviceType::TABLET, 'carrier' => 'DoCoMo'], 'SC-02E' => ['Samsung', 'GALAXY Note II SC-02E', 'carrier' => 'DoCoMo'], 'SC-02F' => ['Samsung', 'GALAXY J SC-02F', 'carrier' => 'DoCoMo'], 'SC-02G' => ['Samsung', 'GALAXY S5 Active SC-02G', 'carrier' => 'DoCoMo'], 'SC-03D' => ['Samsung', 'GALAXY S II LTE SC-03D', 'carrier' => 'DoCoMo'], 'SC-03E' => ['Samsung', 'GALAXY S III α SC-03E', 'carrier' => 'DoCoMo'], 'SC03E' => ['Samsung', 'GALAXY S III α SC-03E', 'carrier' => 'DoCoMo'], 'SC-03G' => ['Samsung', 'GALAXY Tab S 8.4 SC-03G', DeviceType::TABLET, 'carrier' => 'DoCoMo'], 'SC-04D' => ['Samsung', 'GALAXY NEXUS SC-04D', 'carrier' => 'DoCoMo'], 'SC-04E' => ['Samsung', 'GALAXY S4 SC-04E', 'carrier' => 'DoCoMo'], 'SC-04F' => ['Samsung', 'GALAXY S5 SC-04F', 'carrier' => 'DoCoMo'], 'SC-04G' => ['Samsung', 'GALAXY S6 Edge SC-04G', 'carrier' => 'DoCoMo'], 'SC-05D' => ['Samsung', 'GALAXY Note SC-05D', 'carrier' => 'DoCoMo'], 'SC-05G' => ['Samsung', 'GALAXY S6 SC-05G', 'carrier' => 'DoCoMo'], 'SC-06D' => ['Samsung', 'GALAXY S III SC-06D', 'carrier' => 'DoCoMo']], 'SC[LT]2[0-9]!!' => ['SCL21' => ['Samsung', 'GALAXY S III Progre SCL21', 'carrier' => 'au'], 'SCL22' => ['Samsung', 'GALAXY Note 3 SCL22', 'carrier' => 'au'], 'SCL23' => ['Samsung', 'GALAXY S5 SCL23', 'carrier' => 'au'], 'SCL24' => ['Samsung', 'GALAXY Note Edge SCL24', 'carrier' => 'au'], 'SCT21' => ['Samsung', 'GALAXY Tab S SCT21', DeviceType::TABLET, 'carrier' => 'au']], 'ISW11SC' => ['Samsung', 'GALAXY S II WiMAX ISW11SC', 'carrier' => 'au'], '40[0-9]SC!!' => ['403SC' => ['Samsung', 'GALAXY Tab 4 (7.0) 403SC', DeviceType::TABLET, 'carrier' => 'Softbank'], '404SC' => ['Samsung', 'GALAXY S6 Edge 404SC', 'carrier' => 'Softbank']], '(SENCOR )?ELEMENT!!' => ['ELEMENT7V2' => ['Sencor', 'Element 7 V2', DeviceType::TABLET], 'ELEMENT 7 V2 BASIC' => ['Sencor', 'Element 7 V2 Basic', DeviceType::TABLET], 'ELEMENT 7V3' => ['Sencor', 'Element 7 V3', DeviceType::TABLET], 'ELEMENT8' => ['Sencor', 'Element 8', DeviceType::TABLET], 'SENCOR ELEMENT 8V2' => ['Sencor', 'Element 8 V2', DeviceType::TABLET], 'ELEMENT 8V3' => ['Sencor', 'Element 8 V3', DeviceType::TABLET], 'SENCOR ELEMENT 9.7V3' => ['Sencor', 'Element 9.7 V3', DeviceType::TABLET], 'ELEMENT10 1' => ['Sencor', 'Element 10.1', DeviceType::TABLET], 'ELEMENT P501' => ['Sencor', 'Element P501']], 'SENSEIT R390' => ['Senseit', 'R390'], 'SENWA S970' => ['Senwa', 'S970'], 'S1005KTAB' => ['Serioux', 'GoTab S1005KTAB', DeviceType::TABLET], 'STARXTREM' => ['SFR', 'STARXTREM'], 'STARXTREM II' => ['SFR', 'STARXTREM II'], 'STARXTREM 4' => ['SFR', 'STARXTREM 4'], 'STARXTREM5' => ['SFR', 'STARXTREM 5'], 'Android edition by sfr STARADDICT' => ['SFR', 'STARADDICT'], 'V961' => ['SFR', 'STARADDICT II'], 'Smartphone Android by SFR STARADDICT II' => ['SFR', 'STARADDICT II'], 'STARADDICT II Plus' => ['SFR', 'STARADDICT II Plus'], 'STARADDICT III' => ['SFR', 'STARADDICT III'], 'STARADDICT 4' => ['SFR', 'STARADDICT 4'], 'STARADDICT 5' => ['SFR', 'STARADDICT 5'], 'Android Edition Starnaute' => ['SFR', 'STARNAUTE'], 'STARNAUTE II' => ['SFR', 'STARNAUTE II'], 'Starshine' => ['SFR', 'STARSHINE'], 'STARSHINE II' => ['SFR', 'STARSHINE II'], 'STARSHINE III' => ['SFR', 'STARSHINE III'], 'STARSHINE 4' => ['SFR', 'STARSHINE 4'], 'Android Edition StarText' => ['SFR', 'STARTEXT'], 'STARTEXT II' => ['SFR', 'STARTEXT II'], 'Android Edition StarTrail' => ['SFR', 'STARTRAIL'], 'STARTRAIL II' => ['SFR', 'STARTRAIL II'], 'StarTrail III' => ['SFR', 'STARTRAIL III'], 'STARTRAIL4' => ['SFR', 'STARTRAIL 4'], 'STARTRAIL 4' => ['SFR', 'STARTRAIL 4'], 'STARTRAIL5' => ['SFR', 'STARTRAIL 5'], 'STARTRAIL 6 4G' => ['SFR', 'STARTRAIL 6'], 'STARTRAIL6' => ['SFR', 'STARTRAIL 6'], 'STARTRAIL7' => ['SFR', 'STARTRAIL 7'], 'SFR StarTab' => ['SFR', 'STARTAB', DeviceType::TABLET], 'Bambook S1' => ['Shanda', 'Bambook S1', DeviceType::TABLET], '[45A]0[0-9]SH!!' => ['401SH' => ['Sharp', '401SH', 'carrier' => 'Softbank'], '402SH' => ['Sharp', 'AQUOS CRYSTAL X 402SH', 'carrier' => 'Softbank'], '403SH' => ['Sharp', 'AQUOS CRYSTAL 2 403SH', 'carrier' => 'Softbank'], '404SH' => ['Sharp', 'AQUOS Xx 404SH', 'carrier' => 'Softbank'], '502SH' => ['Sharp', 'AQUOS Xx2 502SH', 'carrier' => 'Softbank'], '503SH' => ['Sharp', 'AQUOS Xx2 mini 503SH', 'carrier' => 'Softbank'], 'A01SH' => ['Sharp', 'GALAPAGOS A01SH', 'carrier' => 'Y! Mobile']], 'IS0[0-9]!!' => ['IS01' => ['Sharp', 'IS01', 'carrier' => 'au'], 'IS03' => ['Sharp', 'IS03', 'carrier' => 'au'], 'IS05' => ['Sharp', 'IS05', 'carrier' => 'au']], 'ISW?1[0-9]SH!!' => ['IS11SH' => ['Sharp', 'AQUOS PHONE IS11SH', 'carrier' => 'au'], 'IS12SH' => ['Sharp', 'AQUOS PHONE IS12SH', 'carrier' => 'au'], 'IS13SH' => ['Sharp', 'AQUOS PHONE IS13SH', 'carrier' => 'au'], 'IS14SH' => ['Sharp', 'AQUOS PHONE IS14SH', 'carrier' => 'au'], 'IS15SH' => ['Sharp', 'AQUOS PHONE SL IS15SH', 'carrier' => 'au'], 'ISW16SH' => ['Sharp', 'AQUOS PHONE SERIE ISW16SH', 'carrier' => 'au'], 'IS17SH' => ['Sharp', 'AQUOS PHONE CL IS17SH', 'carrier' => 'au']], 'EB-A71GJ' => ['Sharp', 'EB-A71GJ', DeviceType::TABLET], 'EB-W51GJ' => ['Sharp', 'EB-W51GJ', DeviceType::TABLET], 'SBM[0-9]0[0-9]SH!!' => ['SBM003SH' => ['Sharp', 'GALAPAGOS 003SH', 'carrier' => 'Softbank'], 'SBM005SH' => ['Sharp', 'GALAPAGOS 005SH', 'carrier' => 'Softbank'], 'SBM006SH' => ['Sharp', 'AQUOS PHONE 006SH', 'carrier' => 'Softbank'], 'SBM007SH' => ['Sharp', 'AQUOS PHONE THE HYBRID 007SH', 'carrier' => 'Softbank'], 'SBM007SHJ' => ['Sharp', 'AQUOS PHONE THE HYBRID 007SH J', 'carrier' => 'Softbank'], 'SBM009SH' => ['Sharp', 'AQUOS PHONE THE PREMIUM 009SH', 'carrier' => 'Softbank'], 'SBM009SHY' => ['Sharp', 'Yahoo! Phone 009SH Y', 'carrier' => 'Softbank'], 'SBM101SH' => ['Sharp', 'AQUOS PHONE THE HYBRID 101SH', 'carrier' => 'Softbank'], 'SBM102SH' => ['Sharp', 'AQUOS PHONE 102SH', 'carrier' => 'Softbank'], 'SBM102SH2' => ['Sharp', 'AQUOS PHONE 102SH II', 'carrier' => 'Softbank'], 'SBM103SH' => ['Sharp', 'AQUOS PHONE 103SH', 'carrier' => 'Softbank'], 'SBM104SH' => ['Sharp', 'AQUOS PHONE 104SH', 'carrier' => 'Softbank'], 'SBM106SH' => ['Sharp', 'AQUOS PHONE Xx 106SH', 'carrier' => 'Softbank'], 'SBM107SH' => ['Sharp', 'PANTONE 5 107SH', 'carrier' => 'Softbank'], 'SBM107SHB' => ['Sharp', 'AQUOS PHONE 107SH B', 'carrier' => 'Softbank'], 'SBM200SH' => ['Sharp', 'PANTONE 6 200SH', 'carrier' => 'Softbank'], 'SBM203SH' => ['Sharp', 'AQUOS PHONE Xx 203SH', 'carrier' => 'Softbank'], 'SBM204SH' => ['Sharp', 'シンプルスマホ 204SH', 'carrier' => 'Softbank'], 'SBM205SH' => ['Sharp', 'AQUOS PHONE ss 205SH', 'carrier' => 'Softbank'], 'SBM206SH' => ['Sharp', 'AQUOS PHONE Xx 206SH', 'carrier' => 'Softbank'], 'SBM302SH' => ['Sharp', 'AQUOS PHONE Xx 302SH', 'carrier' => 'Softbank'], 'SBM303SH' => ['Sharp', 'AQUOS PHONE Xx mini 303SH', 'carrier' => 'Softbank'], 'SBM305SH' => ['Sharp', 'AQUOS CRYSTAL 305SH', 'carrier' => 'Softbank'], 'SBM306SH' => ['Sharp', 'AQUOS CRYSTAL 306SH']], '30[0-9]SH!!' => ['304SH' => ['Sharp', 'AQUOS Xx 304SH', 'carrier' => 'Softbank'], '305SH' => ['Sharp', 'AQUOS CRYSTAL 305SH', 'carrier' => 'Softbank'], '306SH' => ['Sharp', 'AQUOS CRYSTAL 306SH']], 'SH01D' => ['Sharp', 'AQUOS PHONE SH-01D', 'carrier' => 'DoCoMo'], 'SH-[01][0-9][A-Z]!!' => ['SH-01D' => ['Sharp', 'AQUOS PHONE SH-01D', 'carrier' => 'DoCoMo'], 'SH-01E' => ['Sharp', 'AQUOS PHONE si SH-01E', 'carrier' => 'DoCoMo'], 'SH-01EVW' => ['Sharp', 'Vivienne Westwood SH-01EVW', 'carrier' => 'DoCoMo'], 'SH-01F' => ['Sharp', 'AQUOS PHONE ZETA SH-01F', 'carrier' => 'DoCoMo'], 'SH-01FDQ' => ['Sharp', 'SH-01F DRAGON QUEST', 'carrier' => 'DoCoMo'], 'SH-01G' => ['Sharp', 'AQUOS PHONE ZETA SH-01G', 'carrier' => 'DoCoMo'], 'SH-01H' => ['Sharp', 'AQUOS PHONE ZETA SH-01H', 'carrier' => 'DoCoMo'], 'SH-02D' => ['Sharp', 'AQUOS PHONE slider SH-02D', 'carrier' => 'DoCoMo'], 'SH-02E' => ['Sharp', 'AQUOS PHONE ZETA SH-02E', 'carrier' => 'DoCoMo'], 'SH-02F' => ['Sharp', 'AQUOS PHONE EX SH-02F', 'carrier' => 'DoCoMo'], 'SH-02G' => ['Sharp', 'SH-02G', 'carrier' => 'Disney Mobile'], 'SH-02H' => ['Sharp', 'AQUOS Compact SH-02H', 'carrier' => 'DoCoMo'], 'SH-03C' => ['Sharp', 'LYNX 3D SH-03C', 'carrier' => 'DoCoMo'], 'SH-03F' => ['Sharp', 'スマートフォン for ジュニア2 SH-03F', 'carrier' => 'DoCoMo'], 'SH-03G' => ['Sharp', 'AQUOS ZETA SH-03G', 'carrier' => 'DoCoMo'], 'SH-04D' => ['Sharp', 'Q-pot.Phone SH-04D', 'carrier' => 'DoCoMo'], 'SH-04E' => ['Sharp', 'AQUOS PHONE EX SH-04E', 'carrier' => 'DoCoMo'], 'SH-04F' => ['Sharp', 'AQUOS ZETA SH-04F', 'carrier' => 'DoCoMo'], 'SH-04G' => ['Sharp', 'AQUOS EVER SH-04G', 'carrier' => 'DoCoMo'], 'SH-05E' => ['Sharp', 'スマートフォン for ジュニア SH-05E', 'carrier' => 'DoCoMo'], 'SH-05F' => ['Sharp', 'SH-05F', 'carrier' => 'Disney Mobile'], 'SH-05G' => ['Sharp', 'AQUOS PAD SH-05G', DeviceType::TABLET, 'carrier' => 'DoCoMo'], 'SH-06D' => ['Sharp', 'AQUOS PHONE SH-06D', 'carrier' => 'DoCoMo'], 'SH-06DNERV' => ['Sharp', 'SH-06D NERV', 'carrier' => 'DoCoMo'], 'SH-06E' => ['Sharp', 'AQUOS PHONE ZETA SH-06E', 'carrier' => 'DoCoMo'], 'SH-06F' => ['Sharp', 'AQUOS PAD SH-06F', 'carrier' => 'DoCoMo'], 'SH-06G' => ['Sharp', 'AQUOS SH-06G', 'carrier' => 'DoCoMo'], 'SH-07C' => ['Sharp', 'GALAPAGOS SH-07C', 'carrier' => 'DoCoMo'], 'SH-07D' => ['Sharp', 'AQUOS PHONE st SH-07D', 'carrier' => 'DoCoMo'], 'SH-07E' => ['Sharp', 'AQUOS PHONE si SH-07E', 'carrier' => 'DoCoMo'], 'SH-08E' => ['Sharp', 'AQUOS PAD SH-08E', DeviceType::TABLET, 'carrier' => 'DoCoMo'], 'SH-09D' => ['Sharp', 'AQUOS PHONE ZETA SH-09D', 'carrier' => 'DoCoMo'], 'SH-10B' => ['Sharp', 'LYNX SH-10B', 'carrier' => 'DoCoMo'], 'SH-10D' => ['Sharp', 'AQUOS PHONE sv SH-10D', 'carrier' => 'DoCoMo'], 'SH-12C' => ['Sharp', 'AQUOS PHONE SH-12C', 'carrier' => 'DoCoMo'], 'SH-13C' => ['Sharp', 'AQUOS PHONE f SH-13C', 'carrier' => 'DoCoMo']], '(SHP-)?(SHARP )?SH[0-9]{2,3}!!' => ['SH80F' => ['Sharp', 'Aquos SH80F'], 'SH90B' => ['Sharp', 'Aquos SH90B', 'carrier' => 'Biglobe'], 'SH330U' => ['Sharp', 'SH330U'], 'SHP-SH330T' => ['Sharp', 'SH330T'], 'SH330T(Yiliao)' => ['Sharp', 'SH330T'], 'SH530U' => ['Sharp', 'SH530U'], 'SH630E' => ['Sharp', 'SH630E'], 'SH-631M' => ['Sharp', 'SH631M'], 'SH631W' => ['Sharp', 'SH631W'], 'SH825Wi' => ['Sharp', 'Aquos Crystal SH825Wi'], 'SH831T' => ['Sharp', 'SH831T'], 'SHP-SH831T' => ['Sharp', 'SH831T'], 'SH837M' => ['Sharp', 'SH837M'], 'SH837W' => ['Sharp', 'SH837W'], 'SH930W' => ['Sharp', 'SH930W'], 'SH931W' => ['Sharp', 'SH931W'], 'SH72x8U' => ['Sharp', 'SH72x8U'], 'SH7218U' => ['Sharp', 'SH7218U'], 'SHP-SH7218T' => ['Sharp', 'SH7218T'], 'SH8118U' => ['Sharp', 'SH8118U'], 'SHARP SH8118U' => ['Sharp', 'SH8118U'], 'SH8128U' => ['Sharp', 'SH8128U'], 'SH8158U' => ['Sharp', 'SH8158U'], 'SH8168U' => ['Sharp', 'SH8168U'], 'SH8188U' => ['Sharp', 'SH8188U'], 'SHARP SH8188U' => ['Sharp', 'SH8188U'], 'SH8288U' => ['Sharp', 'SH8288U'], 'SH8268U' => ['Sharp', 'SH8268U'], 'SH8298U' => ['Sharp', 'SH8298U']], 'SH[FLTV][0-9]{2,2}!!' => ['SHF31' => ['Sharp', 'AQUOS K SHF31', 'carrier' => 'au'], 'SHF32' => ['Sharp', 'AQUOS K SHF32', 'carrier' => 'au'], 'SHL21' => ['Sharp', 'AQUOS PHONE SERIE SHL21', 'carrier' => 'au'], 'SHL22' => ['Sharp', 'AQUOS PHONE SERIE SHL22', 'carrier' => 'au'], 'SHL23' => ['Sharp', 'AQUOS PHONE SERIE SHL23', 'carrier' => 'au'], 'SHL24' => ['Sharp', 'AQUOS PHONE SERIE mini SHL24', 'carrier' => 'au'], 'SHL25' => ['Sharp', 'AQUOS SERIE SHL25', 'carrier' => 'au'], 'SHT21' => ['Sharp', 'AQUOS PAD SHT21', DeviceType::TABLET, 'carrier' => 'au'], 'SHT22' => ['Sharp', 'AQUOS PAD SHT22', DeviceType::TABLET, 'carrier' => 'au'], 'SHV31' => ['Sharp', 'AQUOS SERIE mini SHV31', 'carrier' => 'au'], 'SHV32' => ['Sharp', 'AQUOS SERIE SHV32', 'carrier' => 'au'], 'SHV33' => ['Sharp', 'AQUOS SERIE mini SHV33', 'carrier' => 'au']], 'WX04SH' => ['Sharp', 'AQUOS PHONE es WX04SH', 'carrier' => 'Willcom'], 'WX05SH' => ['Sharp', 'AQUOS PHONE ef WX05SH', 'carrier' => 'Willcom'], 'SHARP-ADS1' => ['Sharp', 'FX Plus'], 'AQUOS!!' => ['AQUOS 50S1' => ['Sharp', 'Aquos 50S1', DeviceType::TELEVISION], 'AQUOS 50U1' => ['Sharp', 'Aquos 50U1', DeviceType::TELEVISION], 'AQUOS 50U3A' => ['Sharp', 'Aquos 50U3A', DeviceType::TELEVISION], 'AQUOS 52UE20A' => ['Sharp', 'Aquos 52UE20A', DeviceType::TELEVISION], 'AQUOS 58U1' => ['Sharp', 'Aquos 58U1', DeviceType::TELEVISION], 'AQUOS 58U3A' => ['Sharp', 'Aquos 58U3A', DeviceType::TELEVISION], 'AQUOS 60UE20A' => ['Sharp', 'Aquos 60UE20A', DeviceType::TELEVISION], 'AQUOS 70LX765A' => ['Sharp', 'Aquos 70LX765A', DeviceType::TELEVISION]], 'LC-55LE860H' => ['Sharp', 'LC-55LE860H', DeviceType::TELEVISION], 'LC-55LE860M' => ['Sharp', 'LC-55LE860M', DeviceType::TELEVISION], 'X-treme PQ11' => ['Sigma Mobile', 'X-treme PQ11'], 'X-treme PQ15' => ['Sigma Mobile', 'X-treme PQ15'], 'X-tremePQ22' => ['Sigma Mobile', 'X-treme PQ22'], 'Blackphone 2' => ['Silent Circle', 'Blackphone 2'], 'simvalley SP-142' => ['Simvalley', 'SP-142'], 'V5U-simvalley SP-142' => ['Simvalley', 'SP-142'], 'SPX-5' => ['Simvalley', 'SPX-5'], 'SPX-5 3G' => ['Simvalley', 'SPX-5 3G'], 'SPX-6' => ['Simvalley', 'SPX-6'], 'SPX-12' => ['Simvalley', 'SPX-12'], 'X720' => ['Simmtronics', 'XPAD X-720', DeviceType::TABLET], 'Skyworth!!' => ['Skyworth PE90' => ['Skyworth', 'PE90'], 'Skyworth 8S51 E510' => ['Skyworth', 'E510', DeviceType::TELEVISION], 'Skyworth 8S50 E510E' => ['Skyworth', 'E510', DeviceType::TELEVISION], 'Skyworth 8S53 E660C' => ['Skyworth', 'E660', DeviceType::TELEVISION], 'Skyworth 8K55 E680' => ['Skyworth', 'E680', DeviceType::TELEVISION], 'Skyworth 9R10 E690U' => ['Skyworth', 'E690', DeviceType::TELEVISION], 'Skyworth 9R15 E710U' => ['Skyworth', 'E710', DeviceType::TELEVISION], 'Skyworth 8K93 E780U' => ['Skyworth', 'E780', DeviceType::TELEVISION], 'Skyworth 8R98 E790U' => ['Skyworth', 'E790', DeviceType::TELEVISION], 'Skyworth A55 Coocaa' => ['Skyworth', 'Coocaa Honor A55', DeviceType::TELEVISION]], 'WF7C' => ['Smartbitt', 'WF7C', DeviceType::TABLET], '(Smartfren|Andromax)!!' => ['Andromax-c' => ['Smartfren', 'Andromax C'], 'Andromax C' => ['Smartfren', 'Andromax C'], 'Andromax C+' => ['Smartfren', 'Andromax C+'], 'Smartfren Andromax AD688G' => ['Smartfren', 'Andromax C2'], 'Andromax C2' => ['Smartfren', 'Andromax C2'], 'Smartfren Andromax NEWAD688G' => ['Smartfren', 'Andromax C2'], 'AD688G' => ['Smartfren', 'Andromax C2'], 'Smartfren Andromax AD6B1H' => ['Smartfren', 'Andromax C3'], 'AD6B1H' => ['Smartfren', 'Andromax C3'], 'Andromax NC36B1H' => ['Smartfren', 'Andromax C3s'], 'Smartfren Andromax NC36B1G' => ['Smartfren', 'Andromax C3s'], 'Andromaxx-D_E1000' => ['Smartfren', 'Andromax D'], 'Andromax C46B2G' => ['Smartfren', 'Andromax Ec'], 'Andromax C46B2H' => ['Smartfren', 'Andromax Ec'], 'Andromax AD687G' => ['Smartfren', 'Andromax G'], 'Andromax G' => ['Smartfren', 'Andromax G'], 'Andromax-G' => ['Smartfren', 'Andromax G'], 'Smartfren Andromax AD681H' => ['Smartfren', 'Andromax G2'], 'Smartfren Andromax AD9A1H' => ['Smartfren', 'Andromax G2 Qwerty'], 'Andromax SD6D1U' => ['Smartfren', 'Andromax G2 LE'], 'AndroMAXI AD683G' => ['Smartfren', 'Andromax I'], 'Andromax Vocused' => ['Smartfren', 'Andromax I'], 'androMax-i AS Ripped' => ['Smartfren', 'Andromax I'], 'Andromax AD683J' => ['Smartfren', 'Andromax I2'], 'Andromax-i2' => ['Smartfren', 'Andromax I2'], 'Andromax I2' => ['Smartfren', 'Andromax I2'], 'Andromax GT-I9500 i2' => ['Smartfren', 'Andromax I2'], 'Smartfren Andromax AD689G' => ['Smartfren', 'Andromax I3'], 'Smartfren Andromax AD682H' => ['Smartfren', 'Andromax I3s'], 'Andromax G36C1G' => ['Smartfren', 'Andromax Qi'], 'Andromax G36C1H' => ['Smartfren', 'Andromax Qi'], 'Andromax I46D1G' => ['Smartfren', 'Andromax R'], 'Andromax AD682J' => ['Smartfren', 'Andromax T'], 'Andromax T AD628J' => ['Smartfren', 'Andromax T'], 'Andromax U!' => ['Smartfren', 'Andromax U']], 'AD686G' => ['Smartfren', 'Andromax C'], 'AD687G' => ['Smartfren', 'Andromax G'], 'AD6893G' => ['Smartfren', 'Andromax I3'], 'PD6D1J' => ['Smartfren', 'Andromax V3s'], 'New Andromax-i' => ['Smartfren', 'Andromax I'], 'Androtab 7' => ['Smartfren', 'Androtab 7', DeviceType::TABLET], 'Smartfren Tab 7' => ['Smartfren', 'Tab 7', DeviceType::TABLET], 'S7' => ['Smartfren', 'Tab 7', DeviceType::TABLET], 'SmartQ!!' => ['SmartQ G7' => ['SmartQ', 'G7', DeviceType::TABLET], 'SmartQT7' => ['SmartQ', 'T7', DeviceType::TABLET], 'SmartQT10' => ['SmartQ', 'T10', DeviceType::TABLET], 'SmartQT12' => ['SmartQ', 'T12', DeviceType::TABLET], 'SmartQT13' => ['SmartQ', 'T13', DeviceType::TABLET], 'SmartQT15' => ['SmartQ', 'T15', DeviceType::TABLET], 'SmartQT19' => ['SmartQ', 'T19', DeviceType::TABLET], 'SmartQT20' => ['SmartQ', 'T20', DeviceType::TABLET], 'SmartQT30' => ['SmartQ', 'T30', DeviceType::TABLET], 'SmartQ V5' => ['SmartQ', 'V5', DeviceType::TABLET], 'SmartQV5II' => ['SmartQ', 'V5 II', DeviceType::TABLET], 'SmartQ V7' => ['SmartQ', 'V7', DeviceType::TABLET]], 'T20' => ['SmartQ', 'T20', DeviceType::TABLET], 'T30' => ['SmartQ', 'T30', DeviceType::TABLET], 'SZENIO!!' => ['SZENIO 2000' => ['Szenio', '2000', DeviceType::TABLET], 'SZENIO 2500' => ['Szenio', '2500', DeviceType::TABLET]], 'Sonim!!' => ['Sonim Sonim-XP5700' => ['Sonim', 'XP5700'], 'Sonim XP5700' => ['Sonim', 'XP5700'], 'Sonim-XP5700' => ['Sonim', 'XP5700'], 'Sonim-XP6700' => ['Sonim', 'XP6700'], 'sonim/XP6700' => ['Sonim', 'XP6700'], 'Sonim XP6711Z1' => ['Sonim', 'XP6711'], 'Sonim XP7700' => ['Sonim', 'XP7700'], 'Sonim-XP7700' => ['Sonim', 'XP7700'], 'sonim/XP7700' => ['Sonim', 'XP7700']], 'OMS1 6' => ['Sony Ericsson', 'A8i'], 'C[0-9]{4,4}!!' => ['C15(04|05)!' => ['Sony', 'Xperia E'], 'C16(04|05)!' => ['Sony', 'Xperia E dual'], 'C19(04|05)!' => ['Sony', 'Xperia M'], 'C20(04|05)!' => ['Sony', 'Xperia M dual'], 'C21(04|05)!' => ['Sony', 'Xperia L'], 'C23(04|05)!' => ['Sony', 'Xperia C'], 'C3602' => ['Sony', 'Xperia "C3602"'], 'C53(02|03|06)!' => ['Sony', 'Xperia SP'], 'C55(02|03)!' => ['Sony', 'Xperia ZR'], 'C65(02|03|06)!' => ['Sony', 'Xperia ZL'], 'C66(02|03|06|16|33)!' => ['Sony', 'Xperia Z'], 'C670[0-9]!' => ['Sony', 'C670x'], 'C68(02|06|33|43)!' => ['Sony', 'Xperia Z Ultra'], 'C69(02|03|06|43)!' => ['Sony', 'Xperia Z1'], 'C6916' => ['Sony', 'Xperia Z1s']], 'D[0-9]{4,4}!!' => ['D20(04|05)!' => ['Sony', 'Xperia E1'], 'D21(04|05|14)!' => ['Sony', 'Xperia E1 dual'], 'D22(02|03|06|43)!' => ['Sony', 'Xperia E3'], 'D22(12)!' => ['Sony', 'Xperia E3 dual'], 'D23(02|03|05|06)!' => ['Sony', 'Xperia M2'], 'D24(03|06)!' => ['Sony', 'Xperia M2 Aqua'], 'D25(02)!' => ['Sony', 'Xperia C3 dual'], 'D25(33)!' => ['Sony', 'Xperia C3'], 'D51(02|03|06)!' => ['Sony', 'Xperia T3'], 'D53(03|06|16)!' => ['Sony', 'Xperia T2 Ultra'], 'D53(22)!' => ['Sony', 'Xperia T2 Ultra dual'], 'D55(03)!' => ['Sony', 'Xperia Z1 Compact'], 'D57(88)!' => ['Sony', 'Xperia J1 Compact'], 'D58(03|33)!' => ['Sony', 'Xperia Z3 Compact'], 'D65(02|03|43)!' => ['Sony', 'Xperia Z2'], 'D65(63)!' => ['Sony', 'Xperia Z2a'], 'D66(03|16|33|43|53)!' => ['Sony', 'Xperia Z3'], 'D66(83)!' => ['Sony', 'Xperia Z3 dual'], 'D6708' => ['Sony', 'Xperia Z3v']], 'E[0-9]{4,4}!!' => ['E20(03|06|53)!' => ['Sony', 'Xperia E4g'], 'E20(33|43)!' => ['Sony', 'Xperia E4g dual'], 'E21(04|05)!' => ['Sony', 'Xperia E4'], 'E21(15|24)!' => ['Sony', 'Xperia E4 dual'], 'E23(03|06|53)!' => ['Sony', 'Xperia M4 Aqua'], 'E23(12|33|63)!' => ['Sony', 'Xperia M4 Aqua dual'], 'E53(03|06|53)!' => ['Sony', 'Xperia C4'], 'E53(33|43|63)!' => ['Sony', 'Xperia C4 dual'], 'E55(06|53)!' => ['Sony', 'Xperia C5 Ultra'], 'E55(33|63)!' => ['Sony', 'Xperia C5 Ultra dual'], 'E56(03|06)!' => ['Sony', 'Xperia M5'], 'E56(43|63)!' => ['Sony', 'Xperia M5 dual'], 'E58(03|23)!' => ['Sony', 'Xperia Z5 Compact'], 'E63(33)!' => ['Sony', 'Xperia Z3+ dual'], 'E65(08)!' => ['Sony', 'Xperia Z4v'], 'E65(33|53)!' => ['Sony', 'Xperia Z3+'], 'E66(03|53)!' => ['Sony', 'Xperia Z5'], 'E66(83)!' => ['Sony', 'Xperia Z5 dual'], 'E68(33|53)!' => ['Sony', 'Xperia Z5 Premium'], 'E68(83)!' => ['Sony', 'Xperia Z5 Premium dual']], 'E[0-9]{2,2}[a-z]!!' => ['E10(a|i|iv)!' => ['Sony Ericsson', 'Xperia X10 Mini'], 'E15(a|av|i|iv|i-o)?$!' => ['Sony Ericsson', 'Xperia X8'], 'E16i!' => ['Sony Ericsson', 'W8 Walkman']], 'L[0-9]{2,2}[a-z]!!' => ['L35h' => ['Sony', 'Xperia ZL'], 'L36h' => ['Sony', 'Xperia Z'], 'L39(h|t|u)!' => ['Sony', 'Xperia Z1'], 'L50(w|t|u)!' => ['Sony', 'Xperia Z2'], 'L55(t|u)!' => ['Sony', 'Xperia Z3']], '(SNM\\-)?LT[0-9]{2,2}[a-z]?!!' => ['LT11i!' => ['Sony Ericsson', 'Xperia Neo V'], 'LT15(a|at|av|i|iv|i-o)?$!' => ['Sony Ericsson', 'Xperia Arc'], 'LT15i Speed Edition' => ['Sony Ericsson', 'Xperia Arc'], 'LT18(a|i|iv|i-o)?$!' => ['Sony Ericsson', 'Xperia Arc S'], 'LT22i!' => ['Sony', 'Xperia P'], 'LT25i!' => ['Sony', 'Xperia V'], '(SNM\\-)?LT25c!' => ['Sony', 'Xperia VC'], 'LT26ii!' => ['Sony', 'Xperia SL'], 'LT26(i|i-o)!' => ['Sony', 'Xperia S'], 'LT26w!' => ['Sony', 'Xperia Acro S'], 'LT28(at|h|i)!' => ['Sony', 'Xperia Ion'], 'LT29i!' => ['Sony', 'Xperia TX'], 'LT30(at)!' => ['Sony', 'Xperia TL'], 'LT30(a|p)!' => ['Sony', 'Xperia T']], '(SNM\\-)?M[0-9]{2,2}[a-z]!!' => ['(SNM\\-)?M35(c|h|t|ts)!' => ['Sony', 'Xperia SP'], 'M36h!' => ['Sony', 'Xperia ZR'], 'M50w!' => ['Sony', 'Xperia T3'], 'M51w!' => ['Sony', 'Xperia Z1 Compact'], 'M55w!' => ['Sony', 'Xperia Z3 Compact']], 'MK16(a|i)!' => ['Sony Ericsson', 'Xperia Pro'], 'MT[0-9]{2,2}[a-z]!!' => ['MT11(a|i|iv|i-o)!' => ['Sony Ericsson', 'Xperia Neo V'], 'MT15(a|i|iv|i-o)!' => ['Sony Ericsson', 'Xperia Neo'], 'MT25i!' => ['Sony', 'Xperia Neo L'], 'MT27i!' => ['Sony', 'Xperia Sola']], 'R800(a|at|i|iv|x)!' => ['Sony Ericsson', 'Xperia Play'], 'S[0-9]{2,2}[a-z]!!' => ['S36h' => ['Sony', 'Xperia L'], 'S39h' => ['Sony', 'Xperia C'], 'S50h' => ['Sony', 'Xperia M2 dual'], 'S55(t|u)!' => ['Sony', 'Xperia C3 dual']], 'SK17(a|i|iv|i-o)!' => ['Sony Ericsson', 'Xperia Mini Pro'], 'ST[0-9]{2,2}[a-z]?!!' => ['ST15(a|i)!' => ['Sony Ericsson', 'Xperia Mini'], 'ST17(a|i)!' => ['Sony Ericsson', 'Xperia Active'], 'ST18(a|av|i|iv)?!' => ['Sony Ericsson', 'Xperia Ray'], 'ST21(a|i|i-o|iv)?$!' => ['Sony', 'Xperia Tipo'], 'ST21(a2|i2)!' => ['Sony', 'Xperia Tipo Dual'], 'ST23(a|i)?!' => ['Sony', 'Xperia Miro'], 'ST25(a|i)!' => ['Sony', 'Xperia U'], 'ST26(a|i)?!' => ['Sony', 'Xperia J'], 'ST27(a|i)!' => ['Sony', 'Xperia Go']], 'U20(a|i|iv)!' => ['Sony Ericsson', 'Xperia X10 Mini Pro'], 'WT[0-9]{2,2}[a-z]!!' => ['WT18i!' => ['Sony Ericsson', 'Walkman'], 'WT19(a|i|iv)!' => ['Sony Ericsson', 'Live with Walkman']], 'X8' => ['Sony Ericsson', 'Xperia X8'], 'X10(a|i|iv|i-o|s)?$!' => ['Sony Ericsson', 'Xperia X10'], 'X10 ?(Mini ?Pro)$!' => ['Sony Ericsson', 'Xperia X10 Mini Pro'], 'X10 ?(Mini)$!' => ['Sony Ericsson', 'Xperia X10 Mini'], 'XL39h' => ['Sony', 'Xperia Z Ultra'], 'XM50h' => ['Sony', 'Xperia T2 Ultra dual'], 'XM50t' => ['Sony', 'Xperia T2 Ultra'], 'Z1i' => ['Sony Ericsson', 'Xperia Play'], 'S51SE' => ['Sony Ericsson', 'mini S51SE', 'carrier' => 'EMOBILE'], 'IS[0-9]{2,2}S!!' => ['IS11S' => ['Sony Ericsson', 'Xperia acro IS11S', 'carrier' => 'au'], 'IS12S' => ['Sony Ericsson', 'Xperia acro HD IS12S', 'carrier' => 'au']], 'SO-0[0-9][A-Z]!!' => ['SO-01B' => ['Sony Ericsson', 'Xperia SO-01B', 'carrier' => 'DoCoMo'], 'SO-01C' => ['Sony Ericsson', 'Xperia arc SO-01C', 'carrier' => 'DoCoMo'], 'SO-01D' => ['Sony Ericsson', 'Xperia PLAY SO-01D', 'carrier' => 'DoCoMo'], 'SO-01E' => ['Sony', 'Xperia AX SO-01E', 'carrier' => 'DoCoMo'], 'SO-01F' => ['Sony', 'Xperia Z1 SO-01F', 'carrier' => 'DoCoMo'], 'SO-01G' => ['Sony', 'Xperia Z3 SO-01G', 'carrier' => 'DoCoMo'], 'SO-01H' => ['Sony', 'Xperia Z5 SO-01H', 'carrier' => 'DoCoMo'], 'SO-02C' => ['Sony Ericsson', 'Xperia acro SO-02C', 'carrier' => 'DoCoMo'], 'SO-02D' => ['Sony Ericsson', 'Xperia NX SO-02D', 'carrier' => 'DoCoMo'], 'SO-02E' => ['Sony', 'Xperia Z SO-02E', 'carrier' => 'DoCoMo'], 'SO-02F' => ['Sony', 'Xperia Z1 f SO-02F', 'carrier' => 'DoCoMo'], 'SO-02G' => ['Sony', 'Xperia Z3 Compact SO-02G', 'carrier' => 'DoCoMo'], 'SO-02H' => ['Sony', 'Xperia Z5 Compact SO-02H', 'carrier' => 'DoCoMo'], 'SO-03C' => ['Sony Ericsson', 'Xperia ray SO-03C', 'carrier' => 'DoCoMo'], 'SO-03D' => ['Sony Ericsson', 'Xperia acro HD SO-03D', 'carrier' => 'DoCoMo'], 'SO-03E' => ['Sony', 'Xperia Tablet Z SO-03E', DeviceType::TABLET, 'carrier' => 'DoCoMo'], 'SO-03F' => ['Sony', 'Xperia Z2 SO-03F', 'carrier' => 'DoCoMo'], 'SO-03G' => ['Sony', 'Xperia Z4 SO-03G', 'carrier' => 'DoCoMo'], 'SO-03H' => ['Sony', 'Xperia Z5 Premium SO-03H', 'carrier' => 'DoCoMo'], 'SO-04D' => ['Sony', 'Xperia GX SO-04D', 'carrier' => 'DoCoMo'], 'SO-04E' => ['Sony', 'Xperia A SO-04E', 'carrier' => 'DoCoMo'], 'SO-04EM' => ['Sony', 'Xperia feat. HATSUNE MIKU SO-04E', 'carrier' => 'DoCoMo'], 'SO-04F' => ['Sony', 'Xperia A2 SO-04F', 'carrier' => 'DoCoMo'], 'SO-04G' => ['Sony', 'Xperia A4 SO-04G', 'carrier' => 'DoCoMo'], 'SO-05D' => ['Sony', 'Xperia SX SO-05D', 'carrier' => 'DoCoMo'], 'SO-05F' => ['Sony', 'Xperia Tablet Z2 SO-05F', DeviceType::TABLET, 'carrier' => 'DoCoMo'], 'SO-05G' => ['Sony', 'Xperia Tablet Z4 SO-05G', DeviceType::TABLET, 'carrier' => 'DoCoMo']], 'SO[LTV][0-9]{2,2}!!' => ['SOL21' => ['Sony', 'Xperia VL SOL21', 'carrier' => 'au'], 'SOL22' => ['Sony', 'Xperia UL SOL22', 'carrier' => 'au'], 'SOL23' => ['Sony', 'Xperia Z1 SOL23', 'carrier' => 'au'], 'SOL24' => ['Sony', 'Xperia Z Ultra SOL24', 'carrier' => 'au'], 'SOL25' => ['Sony', 'Xperia ZL2 SOL25', 'carrier' => 'au'], 'SOL26' => ['Sony', 'Xperia Z3 SOL26', 'carrier' => 'au'], 'SOT21' => ['Sony', 'Xperia Tablet Z2 SOT21', DeviceType::TABLET, 'carrier' => 'au'], 'SOT31' => ['Sony', 'Xperia Tablet Z4 SOT31', DeviceType::TABLET, 'carrier' => 'au'], 'SOV31' => ['Sony', 'Xperia Z4 SOV31', 'carrier' => 'au'], 'SOV32' => ['Sony', 'Xperia Z5 SOV32', 'carrier' => 'au']], '40[0-9]SO!!' => ['401SO' => ['Sony', 'Xperia Z3 401SO', 'carrier' => 'Softbank'], '402SO' => ['Sony', 'Xperia Z4 402SO', 'carrier' => 'Softbank'], '501SO' => ['Sony', 'Xperia Z5 501SO', 'carrier' => 'Softbank']], 'Xperia!!' => ['Xperia X1' => ['Sony Ericsson', 'Xperia X1'], 'Xperia X8' => ['Sony Ericsson', 'Xperia X8'], 'Xperia X10' => ['Sony Ericsson', 'Xperia X10'], 'Xperia x10 Mini Pro' => ['Sony Ericsson', 'Xperia X10 Mini Pro'], 'Xperia Acro S' => ['Sony', 'Xperia Acro S'], 'Xperia Active' => ['Sony Ericsson', 'Xperia Active'], 'Xperia Arc' => ['Sony Ericsson', 'Xperia Arc'], 'Xperia Arc (LT15i)' => ['Sony Ericsson', 'Xperia Arc'], 'Xperia Arc S' => ['Sony Ericsson', 'Xperia Arc S'], 'Xperia Arc S (LT18i)' => ['Sony Ericsson', 'Xperia Arc S'], 'Xperia C' => ['Sony', 'Xperia C'], 'Xperia E' => ['Sony', 'Xperia E'], 'Xperia E dual' => ['Sony', 'Xperia E dual'], 'Xperia Go' => ['Sony', 'Xperia Go'], 'Xperia ion' => ['Sony', 'Xperia Ion'], 'Xperia J' => ['Sony', 'Xperia J'], 'Xperia L' => ['Sony', 'Xperia L'], 'Xperia M' => ['Sony', 'Xperia M'], 'Xperia Miro' => ['Sony', 'Xperia Miro'], 'Xperia Mini' => ['Sony Ericsson', 'Xperia Mini'], 'Xperia Mini Pro' => ['Sony Ericsson', 'Xperia Mini Pro'], 'Xperia Neo' => ['Sony Ericsson', 'Xperia Neo'], 'Xperia NeoV' => ['Sony Ericsson', 'Xperia Neo V'], 'Xperia Neo V!' => ['Sony Ericsson', 'Xperia Neo V'], 'Xperia Neo L' => ['Sony', 'Xperia Neo L'], 'Xperia P' => ['Sony', 'Xperia P'], 'Xperia Play' => ['Sony Ericsson', 'Xperia Play'], 'Xperia Pro' => ['Sony Ericsson', 'Xperia Pro'], 'Xperia Ray' => ['Sony Ericsson', 'Xperia Ray'], 'Xperia Ray (ST18i)' => ['Sony Ericsson', 'Xperia Ray'], 'Xperia S' => ['Sony', 'Xperia S'], 'Xperia SL' => ['Sony', 'Xperia SL'], 'Xperia SP' => ['Sony', 'Xperia SP'], 'Xperia Sola' => ['Sony', 'Xperia Sola'], 'Xperia T' => ['Sony', 'Xperia T'], 'Xperia TX' => ['Sony', 'Xperia TX'], 'Xperia Tipo' => ['Sony', 'Xperia Tipo'], 'Xperia U' => ['Sony', 'Xperia U'], 'Xperia V' => ['Sony', 'Xperia V'], 'Xperia.X8' => ['Sony Ericsson', 'Xperia X8'], 'Xperia X10 Mini' => ['Sony Ericsson', 'Xperia X10 Mini'], 'Xperia Z' => ['Sony', 'Xperia Z'], 'Xperia Z (AOSP)' => ['Sony', 'Xperia Z'], 'Xperia Z Ultra' => ['Sony', 'Xperia Z Ultra'], 'Xperia Z Ultra (AOSP)' => ['Sony', 'Xperia Z Ultra'], 'Xperia ZL' => ['Sony', 'Xperia ZL'], 'Xperia ZR' => ['Sony', 'Xperia ZR'], 'Xperia Z1' => ['Sony', 'Xperia Z1'], 'Xperia Z1 Compact' => ['Sony', 'Xperia Z1 Compact'], 'Xperia Z2' => ['Sony', 'Xperia Z2'], 'Xperia Z3' => ['Sony', 'Xperia Z3'], 'Xperia Z3+' => ['Sony', 'Xperia Z3+'], 'XPERIA Z3 Compact' => ['Sony', 'Xperia Z3 Compact'], 'Xperia-Z' => ['Sony', 'Xperia Z'], 'Xperia-Z1' => ['Sony', 'Xperia Z1'], 'Xperia™ C' => ['Sony', 'Xperia C'], 'Xperia™ ZL39H' => ['Sony', 'Xperia Z Ultra'], 'Xperia™ Miku' => ['Sony', 'Xperia Feat. Hatsune Miku'], 'Xperia Tablet S' => ['Sony', 'Xperia Tablet S', DeviceType::TABLET], 'Xperia Live with Walkman' => ['Sony Ericsson', 'Live with Walkman'], 'Xperia Tablet Z' => ['Sony', 'Xperia Tablet Z', DeviceType::TABLET], 'Xperia Tablet Z LTE' => ['Sony', 'Xperia Tablet Z', DeviceType::TABLET], 'Xperia Tablet Z Wi-Fi' => ['Sony', 'Xperia Tablet Z', DeviceType::TABLET], 'Xperia Tablet Z WiFi' => ['Sony', 'Xperia Tablet Z', DeviceType::TABLET], 'Xperia Z2 Tablet Wifi' => ['Sony', 'Xperia Tablet Z2', DeviceType::TABLET]], 'Live ?With ?Walkman!' => ['Sony Ericsson', 'Live with Walkman'], 'Arc' => ['Sony Ericsson', 'Xperia Arc'], 'Arc S' => ['Sony Ericsson', 'Xperia Arc S'], 'Neo V' => ['Sony Ericsson', 'Xperia Neo V'], 'Hayabusa' => ['Sony', 'Xperia GX or TX'], 'Nozomi' => ['Sony', 'Xperia S'], 'pepper' => ['Sony', 'Xperia Sola'], 'Tablet P' => ['Sony', 'Tablet P', DeviceType::TABLET], 'Tablet S' => ['Sony', 'Tablet S', DeviceType::TABLET], 'SGP[ST0-9][0-9]{2,2}!!' => ['SGPS(21)!' => ['Sony', 'Xperia Tablet Z2', DeviceType::TABLET], 'SGPT(12|13)!' => ['Sony', 'Xperia Tablet S', DeviceType::TABLET], 'SGP3(11|12|21|41|51)!' => ['Sony', 'Xperia Tablet Z', DeviceType::TABLET], 'SGP4(12)!' => ['Sony', 'Xperia Tablet Z Ultra', DeviceType::TABLET], 'SGP5(11|12|21|41|51|61)!' => ['Sony', 'Xperia Tablet Z2', DeviceType::TABLET], 'SGP6(11|12|21|41)!' => ['Sony', 'Xperia Tablet Z3 Compact', DeviceType::TABLET], 'SGP7(12|71)!' => ['Sony', 'Xperia Tablet Z4', DeviceType::TABLET]], 'NWZ?-Z1000Series!' => ['Sony', 'Walkman Z', DeviceType::MEDIA], 'NSZ-G[A-Z][0-9]!!' => ['NSZ-GP9' => ['Sony', 'NSZ-GP9', DeviceType::TELEVISION, Flag::GOOGLETV], 'NSZ-GS7' => ['Sony', 'NSZ-GS7', DeviceType::TELEVISION, Flag::GOOGLETV], 'NSZ-GS8' => ['Sony', 'NSZ-GS8', DeviceType::TELEVISION, Flag::GOOGLETV], 'NSZ-GT1' => ['Sony', 'NSZ-GT1', DeviceType::TELEVISION, Flag::GOOGLETV], 'NSZ-GU1' => ['Sony', 'BRAVIA Smart Stick NSZ-GU1', DeviceType::TELEVISION, Flag::GOOGLETV]], 'BRAVIA' => ['Sony', 'Bravia W80', DeviceType::TELEVISION], 'PRS-T1' => ['Sony', 'Reader PRS-T1', DeviceType::EREADER], 'SpeedUp S3' => ['SpeedUp', 'Tab S3', DeviceType::TABLET], '(CSL[- ])?(Spice[- ]?)?Mi-?[0-9]{3,3}!!' => ['Spice Mi-270' => ['Spice', 'Mi-270'], 'Spice Mi280' => ['Spice', 'Mi-280'], 'SPICE-MI280' => ['Spice', 'Mi-280'], 'SPICE Mi-285' => ['Spice', 'Mi-285 Stellar'], 'Spice Mi300' => ['Spice', 'Mi-300'], 'CSL Spice MI300' => ['Spice', 'Mi-300'], 'Spice Mi-310' => ['Spice', 'Mi-310'], 'Mi320' => ['Spice', 'Mi-320'], 'Mi-347' => ['Spice', 'Mi-347'], 'Spice Mi-349' => ['Spice', 'Mi-349 Smart Flo Edge'], 'Spice Mi-350!' => ['Spice', 'Mi-350'], 'CSL-MI350' => ['Spice', 'Mi-350'], 'Spice Mi-351' => ['Spice', 'Mi-351 Smart Flo'], 'Spice MI352' => ['Spice', 'Mi-352 Stellar Xtacy'], 'Spice MI-352' => ['Spice', 'Mi-352 Stellar Xtacy'], 'Spice Mi-354' => ['Spice', 'Mi-354 Smart Flo Space'], 'Spice Mi-355' => ['Spice', 'Mi-355 Stellar Craze'], 'MI-355' => ['Spice', 'Mi-355 Stellar Craze'], 'MI355' => ['Spice', 'Mi-355 Stellar Craze'], 'Mi-356' => ['Spice', 'Mi-356 Smart Flo Mettle 3.5X'], 'Spice Mi-358' => ['Spice', 'Mi-358 Smart Flo'], 'Spice Mi-359' => ['Spice', 'Mi-359 Smart Flo'], 'Mi-360' => ['Spice', 'Mi-360 Stellar'], 'Spice Mi-361' => ['Spice', 'Mi-361 Stellar'], 'Mi363' => ['Spice', 'Mi-363 Switch Star Neo'], 'Mi406' => ['Spice', 'Mi-406 Switch Pluto'], 'SPICE-Mi 407' => ['Spice', 'Mi-407'], 'CSL-MI410' => ['Spice', 'Mi-410'], 'Spice MI410' => ['Spice', 'Mi-410'], 'Spice Mi-422' => ['Spice', 'Mi-422 Smart Flo Pace'], 'Mi-423' => ['Spice', 'Mi-423 Smart Flo Ivory 2'], 'Spice Mi-424' => ['Spice', 'Mi-424 Stellar'], 'Spice Mi-425' => ['Spice', 'Mi-425 Stellar'], 'Mi-426' => ['Spice', 'Mi-426 Smart Flo Mettle 4X'], 'Spice Mi-435' => ['Spice', 'Mi-435 Stellar Nhance'], 'Spice Mi-436' => ['Spice', 'Mi-436 Stellar Glamour'], 'Spice Mi-437' => ['Spice', 'Mi-437 Stellar Nhance 2'], 'Mi438' => ['Spice', 'Mi-438 Stellar Glide'], 'Mi-439' => ['Spice', 'Mi-439 Stellar'], 'SpiceMi-449' => ['Spice', 'Mi-449 Stellar'], 'Spice Mi-449 3G' => ['Spice', 'Mi-449 Stellar'], 'Spice Mi-450' => ['Spice', 'Mi-450 Smart Flo Ivory'], 'Spice Mi-451' => ['Spice', 'Mi-451 Smart Flo Poise'], 'Mi-491' => ['Spice', 'Mi-491 Stellar Virtuoso Pro'], 'Spice Mi-492' => ['Spice', 'Mi-492 Stellar Virtuoso Pro+'], 'Spice Mi-495' => ['Spice', 'Mi-495 Stellar Virtuoso'], 'Spice Mi-496' => ['Spice', 'Mi-496 Coolpad 2'], 'Spice Mi-497' => ['Spice', 'Mi-497 Stellar'], 'Spice Mi-498' => ['Spice', 'Mi-498 Dream Uno'], 'Spice Mi-498H' => ['Spice', 'Mi-498 Dream Uno'], 'Mi-498 Dream Uno' => ['Spice', 'Mi-498 Dream Uno'], 'Spice Mi-500' => ['Spice', 'Mi-500 Stellar Horizon'], 'Mi501' => ['Spice', 'Mi-501 Switch Mercury'], 'Spice Mi-501' => ['Spice', 'Mi-501 Switch Mercury'], 'Spice Mi-502' => ['Spice', 'Mi-502 Smart Flo Pace2'], 'Spice Mi-502n' => ['Spice', 'Mi-502 Smart Flo Pace2'], 'Mi-503' => ['Spice', 'Mi-503 Stellar'], 'Spice Mi-504' => ['Spice', 'Mi-504 Smart Flo Mettle 5X'], 'Spice Mi-505' => ['Spice', 'Mi-505 Stellar Horizon Pro'], 'Spice Mi-506' => ['Spice', 'Mi-506 Stellar Mettle Icon'], 'Mi-508' => ['Spice', 'Mi-508 Stellar'], 'MI-509' => ['Spice', 'Mi-509 Stellar'], 'SpiceMI-509' => ['Spice', 'Mi-509 Stellar'], 'Spice Mi-514' => ['Spice', 'Mi-514'], 'Spice Mi-515' => ['Spice', 'Mi-515 Coolpad'], 'Mi-516' => ['Spice', 'Mi-516 Stellar'], 'Spice Mi-519' => ['Spice', 'Mi-519 Stellar'], 'SpiceMI-520' => ['Spice', 'Mi-520 Stellar'], 'SpiceMI-520N' => ['Spice', 'Mi-520 Stellar'], 'Spice Mi-525' => ['Spice', 'Mi-525 Stellar Pinnacle FHD'], 'Spice Mi-526' => ['Spice', 'Mi-526 Stellar'], 'Spice Mi-530' => ['Spice', 'Mi-530 Stellar Pinnacle'], 'Mi530' => ['Spice', 'Mi-530 Stellar Pinnacle'], 'Mi531' => ['Spice', 'Mi-531'], 'Spice Mi-535' => ['Spice', 'Mi-535 Stellar Pinnacle Pro'], 'Spice Mi-549' => ['Spice', 'Mi-549'], 'Spice Mi-550' => ['Spice', 'Mi-550 Pinnacle Stylus'], 'Mi-600' => ['Spice', 'Mi-600 Stellar'], 'CSL Spice MI700' => ['Spice', 'Mi-700', DeviceType::TABLET], 'SPICE Mi-720' => ['Spice', 'Mi-720 Tab', DeviceType::TABLET], 'Spice Mi-725' => ['Spice', 'Mi-725 Stellar Slatepad', DeviceType::TABLET], 'Mi730' => ['Spice', 'Mi-730 Tab', DeviceType::TABLET], 'SpiceMi1010' => ['Spice', 'Mi-1010 Stellar Pad', DeviceType::TABLET]], 'A5000' => ['Star', 'A5000'], 'A7272+' => ['Star', 'A7272+'], 'N710' => ['Star', 'N710'], 'e1808 v75!' => ['Star', 'N8000'], 'Star N8000' => ['Star', 'N8000'], 'Star N9500' => ['Star', 'N9500'], 'Star Q9000' => ['Star', 'Q9000'], 'S5' => ['Star', 'S5'], 'STAR S5' => ['Star', 'S5'], 'STAR S7589' => ['Star', 'S7589'], 'V1277' => ['Star', 'V1277'], 'e1109 v73!' => ['Star', 'X18i'], 'Starmobile!!' => ['Starmobile ASTRA' => ['Starmobile', 'Astra'], 'Starmobile CRYSTAL' => ['Starmobile', 'Crystal'], 'Starmobile DIAMOND D3' => ['Starmobile', 'Diamond D3'], 'Starmobile Diamond S1' => ['Starmobile', 'Diamond S1'], 'Starmobile Diamond S2' => ['Starmobile', 'Diamond S2'], 'Starmobile DIAMOND V3' => ['Starmobile', 'Diamond V3'], 'Starmobile Diamond X1' => ['Starmobile', 'Diamond X1'], 'Starmobile ENERGY' => ['Starmobile', 'Energy'], 'Starmobile Engage7 3G' => ['Starmobile', 'Engage 7'], 'Starmobile ENGAGE 9i' => ['Starmobile', 'Engage 9i'], 'Starmobile FLIRT' => ['Starmobile', 'Flirt'], 'Starmobile GOAL' => ['Starmobile', 'Goal'], 'Starmobile Hit' => ['Starmobile', 'Hit'], 'Starmobile JUMP' => ['Starmobile', 'Jump'], 'Starmobile KNIGHT' => ['Starmobile', 'Knight'], 'Starmobile Like' => ['Starmobile', 'Like'], 'Starmobile MUSE' => ['Starmobile', 'Muse'], 'Starmobile NAVI' => ['Starmobile', 'Navi'], 'Starmobile PLAY' => ['Starmobile', 'Play'], 'Starmobile VIDA' => ['Starmobile', 'Vida']], 'DIAMOND D1' => ['Starmobile', 'Diamond D1'], 'DIAMOND S3' => ['Starmobile', 'Diamond S3'], 'ROAR' => ['Starmobile', 'Roar'], '(Starway )?Andromeda!!' => ['Starway Andromeda S705' => ['Starway', 'Andromeda S705', DeviceType::TABLET], 'Andromeda S840' => ['Starway', 'Andromeda S840', DeviceType::TABLET], 'STARWAY Andromeda S900' => ['Starway', 'Andromeda S900', DeviceType::TABLET], 'Starway Andromeda S910' => ['Starway', 'Andromeda S910', DeviceType::TABLET], 'Andromeda S910' => ['Starway', 'Andromeda S910', DeviceType::TABLET], 'Andromeda S940' => ['Starway', 'Andromeda S940', DeviceType::TABLET]], 'STX!!' => ['STX EVO' => ['Stonex', 'STX Evo'], 'STX Mini' => ['Stonex', 'STX Mini'], 'STX MINI 2' => ['Stonex', 'STX Mini 2'], 'STX ULTRA' => ['Stonex', 'STX Ultra'], 'STX ULTRA 2' => ['Stonex', 'STX Ultra 2']], 'Scroll!!' => ['Scroll Engage' => ['Storage Options', 'Scroll Engage', DeviceType::TABLET], 'Scroll Essential' => ['Storage Options', 'Scroll Essential', DeviceType::TABLET], 'Scroll Essential II' => ['Storage Options', 'Scroll Essential 2', DeviceType::TABLET], 'Scroll Evoke' => ['Storage Options', 'Scroll Evoke', DeviceType::TABLET], 'Scroll Excel' => ['Storage Options', 'Scroll Excel', DeviceType::TABLET], 'Scroll Excel 2' => ['Storage Options', 'Scroll Excel 2', DeviceType::TABLET], 'Scroll Extreme' => ['Storage Options', 'Scroll Extreme', DeviceType::TABLET], 'Scroll Tablet' => ['Storage Options', 'Scroll Tablet', DeviceType::TABLET], 'Scroll Tablet PC' => ['Storage Options', 'Scroll Tablet PC', DeviceType::TABLET]], 'eZee!!' => ['eZee\'Tab10c' => ['Storex', 'eZee\'Tab 10c', DeviceType::TABLET], 'eZee\'Tab702' => ['Storex', 'eZee\'Tab 702', DeviceType::TABLET], 'eZee\' Tab702' => ['Storex', 'eZee\'Tab 702', DeviceType::TABLET], 'eZee\'Tab703' => ['Storex', 'eZee\'Tab 703', DeviceType::TABLET], 'eZee\'Tab705' => ['Storex', 'eZee\'Tab 705', DeviceType::TABLET], 'eZee\'TAB706' => ['Storex', 'eZee\'Tab 706', DeviceType::TABLET], 'eZee\'TAB707' => ['Storex', 'eZee\'Tab 707', DeviceType::TABLET], 'eZee\'Tab709' => ['Storex', 'eZee\'Tab 709', DeviceType::TABLET], 'eZee\'Tab785' => ['Storex', 'eZee\'Tab 785', DeviceType::TABLET], 'eZee\'Tab785D11-S' => ['Storex', 'eZee\'Tab 785', DeviceType::TABLET], 'eZee\'Tab785Q11-M' => ['Storex', 'eZee\'Tab 785', DeviceType::TABLET], 'eZee\'Tab802' => ['Storex', 'eZee\'Tab 802', DeviceType::TABLET], 'eZee\'Tab803' => ['Storex', 'eZee\'Tab 803', DeviceType::TABLET], 'eZee\'Tab804' => ['Storex', 'eZee\'Tab 804', DeviceType::TABLET], 'eZee Tab805' => ['Storex', 'eZee\'Tab 805', DeviceType::TABLET], 'Ezee\'TAB901' => ['Storex', 'eZee\'Tab 901', DeviceType::TABLET], 'eZee\'Tab903' => ['Storex', 'eZee\'Tab 903', DeviceType::TABLET], 'eZee\'Tab904' => ['Storex', 'eZee\'Tab 904', DeviceType::TABLET], 'eZee Tab973' => ['Storex', 'eZee\'Tab 973', DeviceType::TABLET], 'eZee\'TAB973' => ['Storex', 'eZee\'Tab 973', DeviceType::TABLET], 'eZee\'Tab1001' => ['Storex', 'eZee\'Tab 1001', DeviceType::TABLET], 'EzeeTab\'1001' => ['Storex', 'eZee\'Tab 1001', DeviceType::TABLET], 'eZeeTab1003' => ['Storex', 'eZee\'Tab 1003', DeviceType::TABLET], 'eZee\'Tab1004' => ['Storex', 'eZee\'Tab 1004', DeviceType::TABLET], 'eZee\' Tab10010-S' => ['Storex', 'eZee\'Tab 10010s', DeviceType::TABLET], 'eZeeTab7c2' => ['Storex', 'eZee\'Tab 7c2', DeviceType::TABLET], 'eZeeTab7c5' => ['Storex', 'eZee\'Tab 7c5', DeviceType::TABLET], 'eZee\'Tab7D10-S' => ['Storex', 'eZee\'Tab 7d10s', DeviceType::TABLET], 'eZee\'TAB7D12-S' => ['Storex', 'eZee\'Tab 7d12s', DeviceType::TABLET], 'eZee\'Tab7D13-S' => ['Storex', 'eZee\'Tab 7d13s', DeviceType::TABLET], 'eZee\'Tab7D14-S' => ['Storex', 'eZee\'Tab 7d14s', DeviceType::TABLET], 'eZeeTab7D15-M' => ['Storex', 'eZee\'Tab 7d15s', DeviceType::TABLET], 'eZee\'tab7Q12-S' => ['Storex', 'eZee\'Tab 7q12s', DeviceType::TABLET], 'eZee\'Tab785D12-S' => ['Storex', 'eZee\'Tab 785d12s', DeviceType::TABLET], 'eZee\'Tab8D11-S' => ['Storex', 'eZee\'Tab 8d11s', DeviceType::TABLET], 'eZee\'Tab97D11-S' => ['Storex', 'eZee\'Tab 97d11s', DeviceType::TABLET], 'eZee\'Tab10D11-M' => ['Storex', 'eZee\'Tab 10d11m', DeviceType::TABLET], 'eZee\'tab10D12-S' => ['Storex', 'eZee\'Tab 10d12s', DeviceType::TABLET], 'eZee\'Tab13Q10-M' => ['Storex', 'eZee\'Tab 13q10m', DeviceType::TABLET]], 'STOREX LinkBox' => ['Storex', 'LinkBox', DeviceType::TELEVISION], 'SRT!!' => ['SRT AN4' => ['Strong', 'SRT AN4', DeviceType::TELEVISION], 'SRT AN4M' => ['Strong', 'SRT AN4M', DeviceType::TELEVISION]], 'Cyclone!!' => ['Cyclone Explorer' => ['Sumvision', 'Cyclone Explorer', DeviceType::TABLET], 'CYCLONE EXPLORER II' => ['Sumvision', 'Cyclone Explorer 2', DeviceType::TABLET], 'cyclone Titan' => ['Sumvision', 'Cyclone Titan', DeviceType::TABLET], 'Cyclone Voyager' => ['Sumvision', 'Cyclone Voyager', DeviceType::TABLET], 'Cyclone Voyager 2' => ['Sumvision', 'Cyclone Voyager 2', DeviceType::TABLET]], 'M1001' => ['Superpad', 'M1001', DeviceType::TABLET], 'SC-!!' => ['SC-72J' => ['Supersonic', 'Matrix SC-72J', DeviceType::TABLET], 'SC-72JB' => ['Supersonic', 'Matrix SC-72JB', DeviceType::TABLET], 'SC-72MID' => ['Supersonic', 'Matrix SC-72MID', DeviceType::TABLET], 'SC-74JB' => ['Supersonic', 'Matrix SC-74JB', DeviceType::TABLET], 'SC-75MID' => ['Supersonic', 'Matrix SC-75MID', DeviceType::TABLET], 'SC-90JB' => ['Supersonic', 'Matrix SC-90JB', DeviceType::TABLET], 'SC-90MID' => ['Supersonic', 'Matrix SC-90MID', DeviceType::TABLET], 'SC-91JB' => ['Supersonic', 'Matrix SC-91JB', DeviceType::TABLET], 'SC-91MID' => ['Supersonic', 'Matrix SC-91MID', DeviceType::TABLET]], 'SUPRA' => ['SUPRA M121G' => ['SUPRA', 'M121G', DeviceType::TABLET], 'SUPRA M141G' => ['SUPRA', 'M141G', DeviceType::TABLET], 'SUPRA M145G' => ['SUPRA', 'M145G', DeviceType::TABLET], 'SUPRA M722' => ['SUPRA', 'M722', DeviceType::TABLET], 'SUPRA M722G' => ['SUPRA', 'M722G', DeviceType::TABLET], 'SUPRA M725G' => ['SUPRA', 'M725G', DeviceType::TABLET], 'SUPRA M726G' => ['SUPRA', 'M726G', DeviceType::TABLET], 'SUPRA M72KG' => ['SUPRA', 'M72KG', DeviceType::TABLET], 'SUPRA M741G' => ['SUPRA', 'M741G', DeviceType::TABLET], 'SUPRA M845G' => ['SUPRA', 'M845G', DeviceType::TABLET], 'SUPRA M847G' => ['SUPRA', 'M847G', DeviceType::TABLET], 'SUPRA M921G' => ['SUPRA', 'M921G', DeviceType::TABLET], 'SUPRA M929' => ['SUPRA', 'M929', DeviceType::TABLET], 'SUPRA M945G' => ['SUPRA', 'M945G', DeviceType::TABLET]], 'Fablet F3' => ['Swipe', 'Fablet F3'], 'SYTABEX7-2' => ['Sylvania', 'SYTABEX7', DeviceType::TABLET], '(Symphony|Xplorer)!!' => ['Symphony Play W17' => ['Symphony', 'Play W17'], 'Xplorer T7i' => ['Symphony', 'Xplorer T7i', DeviceType::TABLET], 'Xplorer T8i' => ['Symphony', 'Xplorer T8i', DeviceType::TABLET], 'Symphony T8Q' => ['Symphony', 'Xplorer T8Q', DeviceType::TABLET], 'SYMPHONY E76' => ['Symphony', 'Xplorer E76'], 'SYMPHONY H50' => ['Symphony', 'Xplorer H50'], 'Symphony H100' => ['Symphony', 'Xplorer H100'], 'Symphony W10' => ['Symphony', 'Xplorer W10'], 'Symphony W15' => ['Symphony', 'Xplorer W15'], 'Symphony Xplorer W15i' => ['Symphony', 'Xplorer W15i'], 'Symphony Xplorer W16' => ['Symphony', 'Xplorer W16'], 'Symphony W18' => ['Symphony', 'Xplorer W18'], 'Symphony Xplorer W21' => ['Symphony', 'Xplorer W21'], 'Symphony Xplorer W22' => ['Symphony', 'Xplorer W22'], 'Symphony W25' => ['Symphony', 'Xplorer W25'], 'Symphony Xplorer W31' => ['Symphony', 'Xplorer W31'], 'Symphony Xplorer W32' => ['Symphony', 'Xplorer W32'], 'Symphony Xplorer W35' => ['Symphony', 'Xplorer W35'], 'Symphony W65' => ['Symphony', 'Xplorer W65'], 'Symphony W65i' => ['Symphony', 'Xplorer W65i'], 'Symphony W66' => ['Symphony', 'Xplorer W66'], 'Symphony W67' => ['Symphony', 'Xplorer W67'], 'Symphony W68' => ['Symphony', 'Xplorer W68'], 'Symphony W68Q' => ['Symphony', 'Xplorer W68Q'], 'Symphony W69' => ['Symphony', 'Xplorer W69'], 'Symphony Xplorer W69Q' => ['Symphony', 'Xplorer W69Q'], 'Symphony Xplorer W70Q' => ['Symphony', 'Xplorer W70Q'], 'Symphony Xplorer W71' => ['Symphony', 'Xplorer W71'], 'Symphony Xplorer W71i' => ['Symphony', 'Xplorer W71i'], 'Symphony W72' => ['Symphony', 'Xplorer W72'], 'Symphony W82' => ['Symphony', 'Xplorer W82'], 'Symphony W85' => ['Symphony', 'Xplorer W85'], 'SYMPHONY W90' => ['Symphony', 'Xplorer W90'], 'Symphony W95' => ['Symphony', 'Xplorer W95'], 'Xplorer W125' => ['Symphony', 'Xplorer W125'], 'Symphony W125' => ['Symphony', 'Xplorer W125'], 'Symphony W128' => ['Symphony', 'Xplorer W128'], 'Symphony W130' => ['Symphony', 'Xplorer W130'], 'Symphony Xplorer W140' => ['Symphony', 'Xplorer W140'], 'Symphony W160' => ['Symphony', 'Xplorer W160'], 'Xplorer Z III' => ['Symphony', 'Xplorer ZIII'], 'Symphony ZIV' => ['Symphony', 'Xplorer ZIV']], 'W20' => ['Symphony', 'Xplorer W20'], 'Roar A50' => ['Symphony', 'Roar A50'], 'Synrgic Uno M1' => ['Synrgic', 'Uno M1'], 'T-Smart!!' => ['T-smart D18X' => ['T-smart', 'D18X'], 'T-smart D28' => ['T-smart', 'D28'], 'T-smart D28X' => ['T-smart', 'D28X'], 'T-SmartD58X' => ['T-smart', 'D58X'], 'T-smart D58X' => ['T-smart', 'D58X'], 'T-smart D68X' => ['T-smart', 'D68X'], 'T-SmartD98X' => ['T-smart', 'D98X'], 'T-smart G18' => ['T-smart', 'G18'], 'T-smart G28' => ['T-smart', 'G28'], 'T-smart G58' => ['T-smart', 'G58'], 'T-smart L818' => ['T-smart', 'L818']], 'Tabra QAV801' => ['Tabra', 'QAV801', DeviceType::TABLET], 'TCL!!' => ['TCL-309T' => ['TCL', '309T'], 'TCL A506' => ['TCL', 'A506'], 'TCL A510' => ['TCL', 'A510'], 'TCL A860' => ['TCL', 'A860'], 'TCL A890!' => ['TCL', 'A890'], 'TCL A906' => ['TCL', 'A906'], 'TCL A909' => ['TCL', 'A909'], 'TCL A916' => ['TCL', 'A916'], 'TCL A919' => ['TCL', 'A919'], 'TCL A966' => ['TCL', 'A966'], 'TCL A966 RUS' => ['TCL', 'A966'], 'TCL A968' => ['TCL', 'A968'], 'TCL A980' => ['TCL', 'A980'], 'TCL A986' => ['TCL', 'A986'], 'TCL A988' => ['TCL', 'A988'], 'TCL A990' => ['TCL', 'A990'], 'TCL[- ]A996!' => ['TCL', 'A996'], 'TCL A998' => ['TCL', 'A998'], 'TCL C990' => ['TCL', 'C990'], 'TCL C990+' => ['TCL', 'C990+'], 'TCL C995' => ['TCL', 'C995'], 'TCL-D662' => ['TCL', 'D662'], 'TCL-D668' => ['TCL', 'D668'], 'TCL-D768' => ['TCL', 'D768'], 'TCL GENESEE E708' => ['TCL', 'Genesee E708'], 'TCL H900M' => ['TCL', 'H900M'], 'TCL i709M' => ['TCL', 'i709M'], 'TCL i718M' => ['TCL', 'i718M'], 'TCL i800' => ['TCL', 'i800'], 'TCL i806' => ['TCL', 'i806'], 'TCL J210' => ['TCL', 'J210'], 'TCL J210C' => ['TCL', 'J210'], 'TCL J300' => ['TCL', 'J300'], 'TCL J305T' => ['TCL', 'J305'], 'TCL J310' => ['TCL', 'J310'], 'TCL-J320D' => ['TCL', 'J320'], 'TCL J320T' => ['TCL', 'J320'], 'TCL J600T' => ['TCL', 'J690'], 'TCL J620' => ['TCL', 'J620'], 'TCL J630T' => ['TCL', 'J630'], 'TCL J636D+' => ['TCL', 'J636'], 'TCL J720' => ['TCL', 'J720'], 'TCL J726T' => ['TCL', 'J726'], 'TCL J738M' => ['TCL', 'J738'], 'TCL-J900C' => ['TCL', 'J900'], 'TCL J926T' => ['TCL', 'J926'], 'TCL J928' => ['TCL', 'J928'], 'TCL-J929L' => ['TCL', 'J929'], 'TCL M2M' => ['TCL', 'M2M'], 'TCL M2U' => ['TCL', 'M2U'], 'TCL M3G' => ['TCL', 'M3G'], 'TCL TK8263!' => ['TCL', 'TK8263'], 'TCL P301C' => ['TCL', 'P301'], 'TCL P301M' => ['TCL', 'P301'], 'TCL-P306C' => ['TCL', 'P306'], 'TCL-P308L' => ['TCL', 'P308'], 'TCL P308L' => ['TCL', 'P308'], 'TCL P308M' => ['TCL', 'P308'], 'TCL-P316L' => ['TCL', 'P316'], 'TCL P316L' => ['TCL', 'P316'], 'TCL P331M' => ['TCL', 'P331'], 'TCL P332U' => ['TCL', 'P332'], 'TCL P360W' => ['TCL', 'P360'], 'TCL P500M' => ['TCL', 'P500'], 'TCL P501M' => ['TCL', 'P501'], 'TCL P502U' => ['TCL', 'P502'], 'TCL-P516L' => ['TCL', 'P516'], 'TCL P518L' => ['TCL', 'P518'], 'TCL-P520L' => ['TCL', 'P520'], 'TCL P520L' => ['TCL', 'P520'], 'TCL P528D' => ['TCL', 'P528'], 'TCL-P588L' => ['TCL', 'P588'], 'TCL P588L' => ['TCL', 'P588'], 'TCL P600' => ['TCL', 'P600'], 'TCL P606!' => ['TCL', 'P606'], 'TCL P620M' => ['TCL', 'P620'], 'TCL P650M' => ['TCL', 'P650'], 'TCL P688L' => ['TCL', 'P688'], 'TCL P689L' => ['TCL', 'P689'], 'TCL-P688L' => ['TCL', 'P688'], 'TCL P728M' => ['TCL', 'P728'], 'TCL P900' => ['TCL', 'P900'], 'TCL S500' => ['TCL', 'S500'], 'TCL S520' => ['TCL', 'S520'], 'TCL S530T' => ['TCL', 'S530'], '(TCL )?S600!' => ['TCL', 'S600'], 'TCL S700' => ['TCL', 'S700'], 'TCL S700T' => ['TCL', 'S700'], 'TCL S720' => ['TCL', 'S720'], 'TCL S720T' => ['TCL', 'S720'], 'TCL S725T' => ['TCL', 'S725'], 'TCL S800' => ['TCL', 'S800'], 'TCL S810' => ['TCL', 'S810'], 'TCL S820' => ['TCL', 'S820'], 'TCL S826L' => ['TCL', 'S826'], 'TCL S830' => ['TCL', 'S830'], 'TCL S830U' => ['TCL', 'S830'], 'TCL S838M' => ['TCL', 'S838'], 'TCL S850' => ['TCL', 'S850'], 'TCL S850L' => ['TCL', 'S850'], 'TCL-S850L' => ['TCL', 'S850'], 'TCL S860' => ['TCL', 'S860'], 'TCL S900' => ['TCL', 'S900'], 'TCL S950!' => ['TCL', 'S950'], 'TCL S960!' => ['TCL', 'S960'], 'TCL W939' => ['TCL', 'W939'], 'TCL W969' => ['TCL', 'W969'], 'TCLW989' => ['TCL', 'W989'], 'TCL Y710' => ['TCL', 'Y710'], 'TCL Y900' => ['TCL', 'Y900'], 'TCL Y910' => ['TCL', 'Hero N3'], 'TCL Y910T' => ['TCL', 'Hero N3'], 'TCL Google TV TV' => ['TCL', 'MoVo UD TV', DeviceType::TELEVISION, Flag::GOOGLETV]], 'TECNO!!' => ['TECNO-A7' => ['Tecno', 'Phantom Z'], 'TECNO B3' => ['Tecno', 'B3'], 'TECNO B5S' => ['Tecno', 'B5S'], 'TECNO-C5' => ['Tecno', 'C5'], 'TECNO-C8' => ['Tecno', 'C8'], 'TECNO D1' => ['Tecno', 'D1'], 'TECNO D3' => ['Tecno', 'D3'], 'TECNO D5' => ['Tecno', 'D5'], 'TECNO D7' => ['Tecno', 'D7'], 'TECNO D9' => ['Tecno', 'D9'], 'TECNO F5' => ['Tecno', 'F5'], 'TECNO F6' => ['Tecno', 'F6'], 'TECNO F7' => ['Tecno', 'Phantom A'], 'TECNO F8' => ['Tecno', 'Phantom AII'], 'TECNO G9' => ['Tecno', 'Phantom Pad 2', DeviceType::TABLET], 'TECNO-H3' => ['Tecno', 'H3'], 'TECNO H3' => ['Tecno', 'H3'], 'TECNO H5' => ['Tecno', 'H5'], 'TECNO H6' => ['Tecno', 'H6'], 'TECNO H7' => ['Tecno', 'H7'], 'TECNO-J7' => ['Tecno', 'J7'], 'TECNO L3' => ['Tecno', 'L3'], 'TECNO L7' => ['Tecno', 'L7'], 'TECNO M3' => ['Tecno', 'M3'], 'TECNO M3M' => ['Tecno', 'M3M'], 'TECNO M3S' => ['Tecno', 'M3S'], 'TECNO M5' => ['Tecno', 'M5'], 'TECNO M6' => ['Tecno', 'M6'], 'TECNO-M6S' => ['Tecno', 'M6S'], 'TECNO M7' => ['Tecno', 'M7'], 'TECNO M9' => ['Tecno', 'Phantom AIII'], 'TECNO N3' => ['Tecno', 'N3'], 'TECNO N3S' => ['Tecno', 'N3S'], 'TECNO N7' => ['Tecno', 'N7'], 'TECNO N9' => ['Tecno', 'Phantom Pad', DeviceType::TABLET], 'TECNO P3' => ['Tecno', 'P3'], 'TECNO P3S' => ['Tecno', 'P3S'], 'TECNO P5' => ['Tecno', 'P5'], 'TECNO P5 PLUS' => ['Tecno', 'P5 Plus'], 'TECNO P5S' => ['Tecno', 'P5S'], 'TECNO P6' => ['Tecno', 'P6'], 'TECNO P9' => ['Tecno', 'Phantom Pad Mini', DeviceType::TABLET], 'TECNO Q1' => ['Tecno', 'Q1'], 'TECNO R5' => ['Tecno', 'R5'], 'TECNO R7' => ['Tecno', 'R7'], 'TECNO S3' => ['Tecno', 'S3'], 'TECNO S3+' => ['Tecno', 'S3+'], 'TECNO S3C' => ['Tecno', 'S3C'], 'TECNO S3M' => ['Tecno', 'S3M'], 'TECNO S5' => ['Tecno', 'S5'], 'TECNO S7' => ['Tecno', 'S7'], 'TECNO S9' => ['Tecno', 'S9'], 'TECNO S9S' => ['Tecno', 'S9S'], 'TECNO T1' => ['Tecno', 'T1'], 'TECNO T3' => ['Tecno', 'T3'], 'TECNO-Y3' => ['Tecno', 'Y3'], 'TECNO-Y4' => ['Tecno', 'Y4'], 'TECNO-Y6' => ['Tecno', 'Y6']], 'L3' => ['Tecno', 'L3'], 'Xtab1081HD' => ['Techtab', 'Xtab 1081 HD', DeviceType::TABLET], 'Teclast A10' => ['Teclast', 'A10', DeviceType::TABLET], 'A10H(D5W6)' => ['Teclast', 'A10H', DeviceType::TABLET], 'A10HD(N9A3)' => ['Teclast', 'A10HD', DeviceType::TABLET], 'A10t(5DM3)' => ['Teclast', 'A10T', DeviceType::TABLET], 'A10T(8DM1)' => ['Teclast', 'A10T', DeviceType::TABLET], 'A11(M5A7)' => ['Teclast', 'A11', DeviceType::TABLET], 'A11s(M5A7)' => ['Teclast', 'A11s', DeviceType::TABLET], 'A15(E6C2)' => ['Teclast', 'A15', DeviceType::TABLET], 'A70(CY6T)' => ['Teclast', 'A70', DeviceType::TABLET], 'A78h四核(C1V3)' => ['Teclast', 'A78h', DeviceType::TABLET], 'A80h双核(A4P9)' => ['Teclast', 'A80h', DeviceType::TABLET], 'A80 se??(M5MA)' => ['Teclast', 'A80se', DeviceType::TABLET], 'A80 se四核(M5MC)' => ['Teclast', 'A80se', DeviceType::TABLET], 'A80HD四核(C4H6)' => ['Teclast', 'A80HD', DeviceType::TABLET], 'A88 mini四核(M1C5)' => ['Teclast', 'A88 mini', DeviceType::TABLET], 'G17(B5DV)' => ['Teclast', 'G17', DeviceType::TABLET], 'G17(B7DV)' => ['Teclast', 'G17', DeviceType::TABLET], 'G17h 3G??(K5E2)' => ['Teclast', 'G17h', DeviceType::TABLET], 'G17h 3G??(K6E2' => ['Teclast', 'G17h', DeviceType::TABLET], 'G17h 3G四核(K5E2)' => ['Teclast', 'G17h', DeviceType::TABLET], 'G17h 3G四核(K6E2)' => ['Teclast', 'G17h', DeviceType::TABLET], 'G17s 3G' => ['Teclast', 'G17s', DeviceType::TABLET], 'G17s 3G??(K5E5)' => ['Teclast', 'G17s', DeviceType::TABLET], 'G17s 3G四核(K5E5)' => ['Teclast', 'G17s', DeviceType::TABLET], 'G17s 3G四核(K5E4)' => ['Teclast', 'G17s', DeviceType::TABLET], 'G17s 3G四核(K5E3)' => ['Teclast', 'G17s', DeviceType::TABLET], 'G18 3G四核(C6B9)' => ['Teclast', 'G18', DeviceType::TABLET], 'G18mini(C5B9)' => ['Teclast', 'G18 mini', DeviceType::TABLET], 'G18d 3G四核(D3A2)' => ['Teclast', 'G18d', DeviceType::TABLET], 'G18d mini(FV2C)' => ['Teclast', 'G18d mini', DeviceType::TABLET], 'P10HD??(E6NA)' => ['Teclast', 'P10HD', DeviceType::TABLET], 'P11HD' => ['Teclast', 'P11HD', DeviceType::TABLET], 'P11HD四核(G9X6)' => ['Teclast', 'P11HD', DeviceType::TABLET], 'P11HD??(G9X6)' => ['Teclast', 'P11HD', DeviceType::TABLET], 'P11HD四核(G9X7)' => ['Teclast', 'P11HD', DeviceType::TABLET], 'P19HD(E1K3)' => ['Teclast', 'P19HD', DeviceType::TABLET], 'P19HD(E1K5)' => ['Teclast', 'P19HD', DeviceType::TABLET], 'P70 3G八核(C2B7)' => ['Teclast', 'P70 3G', DeviceType::TABLET], 'P70h(A5C2)' => ['Teclast', 'P70h', DeviceType::TABLET], 'P72' => ['Teclast', 'P72', DeviceType::TABLET], 'P72w' => ['Teclast', 'P72w', DeviceType::TABLET], 'P75a(G7E3)' => ['Teclast', 'P75a', DeviceType::TABLET], 'P75HD(M3E5)' => ['Teclast', 'P75HD', DeviceType::TABLET], 'P76a(K3G5)' => ['Teclast', 'P76a', DeviceType::TABLET], 'P76a双核(M4Q5)' => ['Teclast', 'P76a', DeviceType::TABLET], 'Teclast P76e!' => ['Teclast', 'P76e', DeviceType::TABLET], 'P76e(A3E1)' => ['Teclast', 'P76e', DeviceType::TABLET], 'P76e(G6R8)' => ['Teclast', 'P76e', DeviceType::TABLET], 'P76h双核(K8V1)' => ['Teclast', 'P76h', DeviceType::TABLET], 'P76s双核(DKH5)' => ['Teclast', 'P76s', DeviceType::TABLET], 'P76TI' => ['Teclast', 'P76Ti', DeviceType::TABLET], 'P76v(A3V5)' => ['Teclast', 'P76v', DeviceType::TABLET], 'P78双核(G1M5)' => ['Teclast', 'P78', DeviceType::TABLET], 'P78s(G1M5)' => ['Teclast', 'P78s', DeviceType::TABLET], 'P78s(G1M6)' => ['Teclast', 'P78s', DeviceType::TABLET], 'P78s(G1M7)' => ['Teclast', 'P78s', DeviceType::TABLET], 'P78HD四核(C4A5)' => ['Teclast', 'P78HD', DeviceType::TABLET], 'P78HD??(C4A5)' => ['Teclast', 'P78HD', DeviceType::TABLET], 'P79HD(A3V9)' => ['Teclast', 'P79HD', DeviceType::TABLET], 'P79HD 3G(C4K5)' => ['Teclast', 'P79HD 3G', DeviceType::TABLET], 'P80 四核 (BV8K)' => ['Teclast', 'P80', DeviceType::TABLET], 'P80 四核 (BV9K)' => ['Teclast', 'P80', DeviceType::TABLET], 'P80s 四核(EF6W)' => ['Teclast', 'P80s', DeviceType::TABLET], 'P80 3G四核 (B1KC)' => ['Teclast', 'P80 3G', DeviceType::TABLET], 'P80 3G四核 (B4KC)' => ['Teclast', 'P80 3G', DeviceType::TABLET], 'P80 3G八核(A4LL)' => ['Teclast', 'P80 3G', DeviceType::TABLET], 'P80 3G八核(A5LL)' => ['Teclast', 'P80 3G', DeviceType::TABLET], 'P80 3G八核(A6LL)' => ['Teclast', 'P80 3G', DeviceType::TABLET], 'P80 4G(K2G3)' => ['Teclast', 'P80 4G', DeviceType::TABLET], 'P81HD' => ['Teclast', 'P81HD', DeviceType::TABLET], 'P85(A9D3)' => ['Teclast', 'P85', DeviceType::TABLET], 'P85(A9D5)' => ['Teclast', 'P85', DeviceType::TABLET], 'P85(R8A1)' => ['Teclast', 'P85', DeviceType::TABLET], 'Teclast P85!' => ['Teclast', 'P85', DeviceType::TABLET], 'P85mini(DT8W)' => ['Teclast', 'P85 mini', DeviceType::TABLET], 'P85s mini(EWE8)' => ['Teclast', 'P85s mini', DeviceType::TABLET], 'P85t mini(KW8P)' => ['Teclast', 'P85t mini', DeviceType::TABLET], 'P85HD双核(K6N2)' => ['Teclast', 'P85HD', DeviceType::TABLET], 'P86(F8G6)' => ['Teclast', 'P86', DeviceType::TABLET], 'P88双核(H3D7)' => ['Teclast', 'P88', DeviceType::TABLET], 'P88(H3D7)' => ['Teclast', 'P88', DeviceType::TABLET], 'P88(GT4K)' => ['Teclast', 'P88', DeviceType::TABLET], 'P88s mini??(F2V6)' => ['Teclast', 'P88s mini', DeviceType::TABLET], 'P88s mini四核(F2V7)' => ['Teclast', 'P88s mini', DeviceType::TABLET], 'P88HD(C5GV)' => ['Teclast', 'P88HD', DeviceType::TABLET], 'P89 3G八核(D1H8)' => ['Teclast', 'P89 3G', DeviceType::TABLET], 'P89 3Gk8(D1H8)' => ['Teclast', 'P89 3G', DeviceType::TABLET], 'P89mini(E2W6)' => ['Teclast', 'P89 mini', DeviceType::TABLET], 'P89 mini(E2W6)' => ['Teclast', 'P89 mini', DeviceType::TABLET], 'P89s(F8A5)' => ['Teclast', 'P89s', DeviceType::TABLET], 'P89s mini(F8A2)' => ['Teclast', 'P89s mini', DeviceType::TABLET], 'P90(H3U6)' => ['Teclast', 'P90', DeviceType::TABLET], 'P90(H3U7)' => ['Teclast', 'P90', DeviceType::TABLET], 'P98(F2K9)' => ['Teclast', 'P98', DeviceType::TABLET], 'P98 八核(B9A3)' => ['Teclast', 'P98', DeviceType::TABLET], 'P98 3Gk8(A4HY)' => ['Teclast', 'P98', DeviceType::TABLET], 'P98 3G??(A4HY)' => ['Teclast', 'P98', DeviceType::TABLET], 'P98 3G(M1Q2)' => ['Teclast', 'P98 3G', DeviceType::TABLET], 'P98 3G八核(A3HY)' => ['Teclast', 'P98 3G', DeviceType::TABLET], 'P98 3G八核(A4HY)' => ['Teclast', 'P98 3G', DeviceType::TABLET], 'P98 4G??(A8H6)' => ['Teclast', 'P98 4G', DeviceType::TABLET], 'P98 Air?? (C6V8)' => ['Teclast', 'P98 Air', DeviceType::TABLET], 'P98Air(C6V8)' => ['Teclast', 'P98 Air', DeviceType::TABLET], 'P98HD(A2Q6)' => ['Teclast', 'P98HD', DeviceType::TABLET], 'P98HD+M6' => ['Teclast', 'P98HD', DeviceType::TABLET], 'P98T(K3C4)' => ['Teclast', 'P98T', DeviceType::TABLET], 'T98 4G??(C6R2)' => ['Teclast', 'T98', DeviceType::TABLET], 'T720 SE' => ['Teclast', 'T720', DeviceType::TABLET], 'T760 from moage.com' => ['Teclast', 'T760', DeviceType::TABLET], 'X10H(G3C5)' => ['Teclast', 'X10H', DeviceType::TABLET], 'X10HD 3G(M6K6)' => ['Teclast', 'X10HD 3G', DeviceType::TABLET], 'X16 Power(D6F7)' => ['Teclast', 'X16 Power', DeviceType::TABLET], 'X16HD (K3J3)' => ['Teclast', 'X16HD', DeviceType::TABLET], 'X16HD 3G(M5J5)' => ['Teclast', 'X16HD 3G', DeviceType::TABLET], 'X70 3G (C5D9)' => ['Teclast', 'X70 3G', DeviceType::TABLET], 'X70 R(C7F9)' => ['Teclast', 'X70 R', DeviceType::TABLET], 'X80(C4M5)' => ['Teclast', 'X80', DeviceType::TABLET], 'Teclast X80h' => ['Teclast', 'X80h', DeviceType::TABLET], 'X80h' => ['Teclast', 'X80h', DeviceType::TABLET], 'X80h(FB5M)' => ['Teclast', 'X80h', DeviceType::TABLET], 'X80h(FB6M)' => ['Teclast', 'X80h', DeviceType::TABLET], 'X80HD(G2N5)' => ['Teclast', 'X80HD', DeviceType::TABLET], 'X80HD(G2N6)' => ['Teclast', 'X80HD', DeviceType::TABLET], 'X80HD(G2N8)' => ['Teclast', 'X80HD', DeviceType::TABLET], 'X80HD(G2N9)' => ['Teclast', 'X80HD', DeviceType::TABLET], 'X81-8G3D' => ['Teclast', 'X81', DeviceType::TABLET], 'X89 (E7ED)' => ['Teclast', 'X89', DeviceType::TABLET], 'X89HD (H21C)' => ['Teclast', 'X89HD', DeviceType::TABLET], 'X90HD (M2PC)' => ['Teclast', 'X90HD', DeviceType::TABLET], 'X98 3G(HKC1)' => ['Teclast', 'X98 3G', DeviceType::TABLET], 'X98 3G(HKC2)' => ['Teclast', 'X98 3G', DeviceType::TABLET], 'X98 3G(HKC3)' => ['Teclast', 'X98 3G', DeviceType::TABLET], 'X98 3G(lite)' => ['Teclast', 'X98 3G', DeviceType::TABLET], 'X98 Air(C5KN)' => ['Teclast', 'X98 Air', DeviceType::TABLET], 'X98 Air 3G(Smile)' => ['Teclast', 'X98 Air 3G', DeviceType::TABLET], 'X98 Air 3G(C5J5)' => ['Teclast', 'X98 Air 3G', DeviceType::TABLET], 'X98 Air 3G(C5J6)' => ['Teclast', 'X98 Air 3G', DeviceType::TABLET], 'X98 Air 3G(C5J8)' => ['Teclast', 'X98 Air 3G', DeviceType::TABLET], 'X98 Air 3G(C6J6)' => ['Teclast', 'X98 Air 3G', DeviceType::TABLET], 'X98 Air 3G(C8J6)' => ['Teclast', 'X98 Air 3G', DeviceType::TABLET], 'X98 Air 3G(C8J7)' => ['Teclast', 'X98 Air 3G', DeviceType::TABLET], 'X98 Air 3G(C9J6)' => ['Teclast', 'X98 Air 3G', DeviceType::TABLET], 'X98 Air 3G(C9J7)' => ['Teclast', 'X98 Air 3G', DeviceType::TABLET], 'X98 Air 3G(C9J8)' => ['Teclast', 'X98 Air 3G', DeviceType::TABLET], 'X98 Air II' => ['Teclast', 'X98 Air II', DeviceType::TABLET], 'X98 Air II(HG5N)' => ['Teclast', 'X98 Air II', DeviceType::TABLET], 'X98 Air II(HG6M)' => ['Teclast', 'X98 Air II', DeviceType::TABLET], 'X98 Air II(HG7N)' => ['Teclast', 'X98 Air II', DeviceType::TABLET], 'X98 Air II(HG9M)' => ['Teclast', 'X98 Air II', DeviceType::TABLET], 'X98 Air II(HG9N)' => ['Teclast', 'X98 Air II', DeviceType::TABLET], 'X98 Air III(M5C5)' => ['Teclast', 'X98 Air III', DeviceType::TABLET], 'X98 Air III(M5C6)' => ['Teclast', 'X98 Air III', DeviceType::TABLET], 'X98 Pro (K9C6)' => ['Teclast', 'X98 Pro', DeviceType::TABLET], 'tegav2' => ['Tegatech', 'TEGA v2', DeviceType::TABLET], 'Tele2fon V3' => ['Tele2fon', 'v3'], 'Tele2fon v5' => ['Tele2fon', 'v5'], 'TELEFUNKEN Diamond TD1' => ['Telefunken', 'Diamond TD1'], 'Telpad Dual S' => ['Telpad', 'Dual S', DeviceType::TABLET], 'Telpad Quad S' => ['Telpad', 'Quad S', DeviceType::TABLET], 'Telpad QS' => ['Telpad', 'Quad S', DeviceType::TABLET], 'T3696' => ['Telsda', 'T3696'], 'Tensent S9000' => ['Tensent', 'S9000'], 'Hudl HT7S3' => ['Tesco', 'Hudl', DeviceType::TABLET], 'Hudl 2' => ['Tesco', 'Hudl 2', DeviceType::TABLET], 'TM-3200R' => ['teXet', 'TM-3200R'], 'TM-3204R' => ['teXet', 'TM-3204R'], 'teXet X-alpha' => ['teXet', 'X-alpha TM-3521'], 'TM-4004' => ['teXet', 'TM-4004'], 'X-basic' => ['teXet', 'X-basic TM-4072'], 'X-basic2' => ['teXet', 'X-basic2 TM-4272'], 'TM-4377' => ['teXet', 'TM-4377'], 'X-maxi' => ['teXet', 'X-maxi TM-5172'], 'X-medium' => ['teXet', 'X-medium TM-4572'], 'teXet iX-mini' => ['teXet', 'iX-mini TM-4182'], 'TM-4577' => ['teXet', 'TM-4577'], 'teXet X-navi' => ['teXet', 'X-navi TM-4672'], 'TEXET TM-4677' => ['teXet', 'TM-4677'], 'TM-4677' => ['teXet', 'TM-4677'], 'TM-5200' => ['teXet', 'TM-5200'], 'TM-5377' => ['teXet', 'TM-5377'], 'TM-7011' => ['teXet', 'TM-7011', DeviceType::TABLET], 'TM-7016' => ['teXet', 'TM-7016', DeviceType::TABLET], 'TM-7021' => ['teXet', 'TM-7021', DeviceType::TABLET], 'TM-7023' => ['teXet', 'TM-7023', DeviceType::TABLET], 'TM-7024' => ['teXet', 'TM-7024', DeviceType::TABLET], 'TM-7025' => ['teXet', 'TM-7025', DeviceType::TABLET], 'TM-7026' => ['teXet', 'TM-7026', DeviceType::TABLET], 'TM-7026 (revision 4)' => ['teXet', 'TM-7026', DeviceType::TABLET], 'TM-7037W' => ['teXet', 'TM-7037W', DeviceType::TABLET], 'TM-7038W' => ['teXet', 'TM-7038W', DeviceType::TABLET], 'TM-7041' => ['teXet', 'TM-7041', DeviceType::TABLET], 'TM-7043XD' => ['teXet', 'TM-7043XD', DeviceType::TABLET], 'TM-7047HD 3G' => ['teXet', 'TM-7047HD', DeviceType::TABLET], 'NaviPad TM-7055HD 3G' => ['teXet', 'NaviPad HD TM-7055', DeviceType::TABLET], 'TM-7096' => ['teXet', 'X-pad NAVI 7.3 TM-7096', DeviceType::TABLET], 'TM-7854' => ['teXet', 'TM-7854', DeviceType::TABLET], 'NaviPad TM-7855 3G' => ['teXet', 'NaviPad TM-7855', DeviceType::TABLET], 'NaviPad TM-7858 3G (revision 1)' => ['teXet', 'NaviPad TM-7858', DeviceType::TABLET], 'TM-8041HD' => ['teXet', 'TM-8041HD', DeviceType::TABLET], 'TM-8051' => ['teXet', 'X-pad FORCE 8i TM-8051', DeviceType::TABLET], 'TM-9720' => ['teXet', 'TM-9720', DeviceType::TABLET], 'TM-9725' => ['teXet', 'TM-9725', DeviceType::TABLET], 'TM-9740' => ['teXet', 'TM-9740', DeviceType::TABLET], 'TM-9741' => ['teXet', 'TM-9741', DeviceType::TABLET], 'TM-9743W' => ['teXet', 'TM-9743W', DeviceType::TABLET], 'TM-9747!' => ['teXet', 'TM-9747', DeviceType::TABLET], 'TM-9748 3G' => ['teXet', 'TM-9748', DeviceType::TABLET], 'TM-9750HD' => ['teXet', 'TM-9750HD', DeviceType::TABLET], 'TM-9751HD' => ['teXet', 'TM-9751HD', DeviceType::TABLET], 'TM-9757' => ['teXet', 'TM-9757', DeviceType::TABLET], 'TM-9757 3G rev1' => ['teXet', 'TM-9757', DeviceType::TABLET], 'TM-9767' => ['teXet', 'X-pad STYLE 10 TM-9767', DeviceType::TABLET], 'TM-1058' => ['teXet', 'X-force 10 TM-1058', DeviceType::TABLET], 'EVERY35' => ['Thomson', 'Every35'], 'TLINK[0-9]{3,3}!!' => ['TLINK350' => ['Thomson', 'Tlink350'], 'TLINK351' => ['Thomson', 'Tlink351'], 'TLINK355' => ['Thomson', 'Tlink355'], 'TLINK405' => ['Thomson', 'Tlink405'], 'TLINK455' => ['Thomson', 'Tlink455'], 'TLINK475' => ['Thomson', 'Tlink475']], 'MoFing' => ['Thomson', 'MoFing', DeviceType::TABLET], '8950' => ['Thomson', '3G 8950', DeviceType::TABLET], 'PRIMO7' => ['Thomson', 'Primo 7', DeviceType::TABLET], 'PRIMO8' => ['Thomson', 'Primo 8', DeviceType::TABLET], 'QM734-8G' => ['Thomson', 'QM734-8G', DeviceType::TABLET], 'QM735-8G' => ['Thomson', 'QM735-8G', DeviceType::TABLET], 'ATP7526' => ['Tomtec', 'Ultimate10', DeviceType::TABLET], 'ATP7683' => ['Tomtec', 'Ultimate10', DeviceType::TABLET], 'Ultimate10' => ['Tomtec', 'Ultimate10', DeviceType::TABLET], 'Ultimate10-Android4.0' => ['Tomtec', 'Ultimate10', DeviceType::TABLET], 'Ultimate 10' => ['Tomtec', 'Ultimate10', DeviceType::TABLET], '(CJ-)?ThL!!' => ['ThL A1' => ['THL', 'A1'], 'ThL A2' => ['THL', 'A2'], 'ThL-I95' => ['THL', 'I95'], 'ThL T1' => ['THL', 'T1'], 'ThL T3' => ['THL', 'T3'], 'THL T5S' => ['THL', 'T5S'], 'thl T6 pro' => ['THL', 'T6 Pro'], 'thl T6S' => ['THL', 'T6S'], 'thl T11' => ['THL', 'T11'], 'thl T12' => ['THL', 'T12'], 'thl T100' => ['THL', 'T100'], 'thl T100S' => ['THL', 'T100S'], 'thl  T100S' => ['THL', 'T100S'], 'ThL V7' => ['THL', 'V7'], 'ThL V8' => ['THL', 'V8'], 'ThL V9' => ['THL', 'V9'], 'ThL V11' => ['THL', 'V11'], 'CJ-ThL V11' => ['THL', 'V11'], 'ThL V12' => ['THL', 'V12'], 'ThL W1' => ['THL', 'W1'], 'CJ-ThL W1' => ['THL', 'W1'], 'ThL W1+' => ['THL', 'W1+'], 'ThL W2' => ['THL', 'W2'], 'CJ-ThL W2' => ['THL', 'W2'], 'ThL W3' => ['THL', 'W3'], 'ThL W3dc' => ['THL', 'W3'], 'ThL W3 (Dual Core)' => ['THL', 'W3'], 'ThL W3+ (Dual Core)' => ['THL', 'W3+'], 'ThL W5' => ['THL', 'W5'], 'ThL W6' => ['THL', 'W6'], 'ThL W7' => ['THL', 'W7'], 'THL W7s' => ['THL', 'W7s'], 'ThL W8' => ['THL', 'W8'], 'ThL W8s' => ['THL', 'W8s'], 'ThL W9' => ['THL', 'W9'], 'ThL W11' => ['THL', 'W11'], 'Thl w100' => ['THL', 'W100'], 'THL W200' => ['THL', 'W200'], 'ThL W200C' => ['THL', 'W200c'], 'ThL W200S' => ['THL', 'W200s'], 'ThL W300' => ['THL', 'W300'], 'thl 2015' => ['THL', '2015'], 'thl 4000' => ['THL', '4000'], 'thl 4400' => ['THL', '4400'], 'thl 5000' => ['THL', '5000']], 'W8 beyond' => ['THL', 'W8 beyond'], 'W100' => ['THL', 'W100'], 'TizzBird!!' => ['TizzBird N1G' => ['TizzBird', 'N1', DeviceType::TELEVISION], 'TizzBird S20A' => ['TizzBird', 'S20A', DeviceType::TELEVISION], 'TizzBird S20T' => ['TizzBird', 'S20T', DeviceType::TELEVISION]], 'MagicBox' => ['Tmall', 'MagicBox', DeviceType::TELEVISION], 'tolino tab!!' => ['tolino tab 7' => ['Tolino', 'Tab 7', DeviceType::TABLET], 'tolino tab 8' => ['Tolino', 'Tab 8', DeviceType::TABLET], 'tolino tab 8.9' => ['Tolino', 'Tab 8.9', DeviceType::TABLET]], 'TomTom Bridge' => ['TomTom', 'Bridge', DeviceType::CAR], 'TomTom PRO 8275' => ['TomTom', 'PRO 8275', DeviceType::CAR], 'TOOKY!!' => ['TOOKY A9' => ['Tooky', 'A9'], 'TOOKY A9PLUS' => ['Tooky', 'A9 Plus'], 'TOOKY A19PLUS' => ['Tooky', 'A19 Plus'], 'TOOKY A81' => ['Tooky', 'A81'], 'TOOKY A110' => ['Tooky', 'A110'], 'TOOKY K1' => ['Tooky', 'K1'], 'TOOKY T83' => ['Tooky', 'T83'], 'TOOKY T85' => ['Tooky', 'T85'], 'TOOKY T88' => ['Tooky', 'T88'], 'TOOKY T1981' => ['Tooky', 'T1981'], 'Tooky T1981+' => ['Tooky', 'T1981 Plus'], 'TOOKY T1981PLUS' => ['Tooky', 'T1981 Plus'], 'TOOKY T1982' => ['Tooky', 'T1982'], 'TOOKY T1992' => ['Tooky', 'T1992'], 'TOOKY W1' => ['Tooky', 'W1']], 'TSB CLOUD COMPANION;TOSHIBA AC AND AZ' => ['Toshiba', 'Dynabook AZ', 'desktop'], 'TOSHIBA AC AND AZ' => ['Toshiba', 'Dynabook AZ', 'desktop'], 'TOSHIBA FOLIO AND A' => ['Toshiba', 'Folio 100', DeviceType::TABLET], 'T-01C' => ['Toshiba', 'REGZA Phone T-01C', 'carrier' => 'DoCoMo'], 'T-01D' => ['Toshiba', 'REGZA Phone T-01D', 'carrier' => 'DoCoMo'], 'T-02D' => ['Toshiba', 'REGZA Phone T-02D', 'carrier' => 'DoCoMo'], 'IS04' => ['Toshiba', 'REGZA Phone IS04', 'carrier' => 'au'], 'IS11T' => ['Toshiba', 'REGZA Phone IS11T', 'carrier' => 'au'], 'AT1S0' => ['Toshiba', 'Regza AT1S0'], 'AT7-A' => ['Toshiba', 'Excite AT7-A', DeviceType::TABLET], 'AT7-B' => ['Toshiba', 'Excite AT7-B', DeviceType::TABLET], 'AT7-C' => ['Toshiba', 'Excite AT7-C', DeviceType::TABLET], 'AT10-A' => ['Toshiba', 'Excite AT10-A', DeviceType::TABLET], 'AT10LE-A' => ['Toshiba', 'Excite AT10LE-A', DeviceType::TABLET], 'AT10PE-A' => ['Toshiba', 'Excite AT10PE-A', DeviceType::TABLET], 'Tostab03' => ['Toshiba', 'Regza AT100', DeviceType::TABLET], 'AT100' => ['Toshiba', 'Regza AT100', DeviceType::TABLET], 'AT200' => ['Toshiba', 'Regza AT200', DeviceType::TABLET], 'AT270' => ['Toshiba', 'Regza AT270', DeviceType::TABLET], 'AT300' => ['Toshiba', 'Regza AT300', DeviceType::TABLET], 'AT300SE' => ['Toshiba', 'Regza AT300SE', DeviceType::TABLET], 'AT330' => ['Toshiba', 'Regza AT330', DeviceType::TABLET], 'AT374' => ['Toshiba', 'Regza AT374', DeviceType::TABLET], 'AT400' => ['Toshiba', 'Regza AT400', DeviceType::TABLET], 'AT470' => ['Toshiba', 'Regza AT470', DeviceType::TABLET], 'AT500' => ['Toshiba', 'Regza AT500', DeviceType::TABLET], 'AT500a' => ['Toshiba', 'Regza AT500', DeviceType::TABLET], 'AT503' => ['Toshiba', 'Regza AT503', DeviceType::TABLET], 'AT570' => ['Toshiba', 'Regza AT570', DeviceType::TABLET], 'AT703' => ['Toshiba', 'Regza AT703', DeviceType::TABLET], 'AT830' => ['Toshiba', 'Regza AT830', DeviceType::TABLET], 'Folio 100' => ['Toshiba', 'Folio 100', DeviceType::TABLET], 'folio100' => ['Toshiba', 'Folio 100', DeviceType::TABLET], 'THRiVE' => ['Toshiba', 'THRiVE', DeviceType::TABLET], 'Satellite!!' => ['Satellite ([A-Z][0-9]{3,3}[A-Z]?)!' => ['Toshiba', 'Satellite $1', DeviceType::DESKTOP], 'Satellite ([A-Z][0-9]{2,2}-[A-Z]?)!' => ['Toshiba', 'Satellite $1', DeviceType::DESKTOP], 'Satellite Pro ([A-Z][0-9]{3,3})!' => ['Toshiba', 'Satellite Pro $1', DeviceType::DESKTOP]], 'StarTab 715x' => ['Touch+', 'Startab 715', DeviceType::TABLET], 'TRACER OXYGEN GS1' => ['Tracer', 'Oxygen GS1'], 'ST[0-9]{5,5}-[0-9]!!' => ['ST70104-1!' => ['Trekstor', 'Surftab Breeze 7.0', DeviceType::TABLET], 'ST70104-2!' => ['Trekstor', 'Surftab Breeze 7.0', DeviceType::TABLET], 'ST70208-1!' => ['Trekstor', 'Surftab Ventos 7.0', DeviceType::TABLET], 'ST70208-2!' => ['Trekstor', 'Surftab Ventos 7.0', DeviceType::TABLET], 'ST70208-4!' => ['Trekstor', 'Surftab Ventos 7.0', DeviceType::TABLET], 'ST70216-1!' => ['Trekstor', 'Surftab Ventos 7.0', DeviceType::TABLET], 'ST80208-1!' => ['Trekstor', 'Surftab Ventos 8.0', DeviceType::TABLET], 'ST80208-2!' => ['Trekstor', 'Surftab Ventos 8.0', DeviceType::TABLET], 'ST80216-1!' => ['Trekstor', 'Surftab Ventos 8.0', DeviceType::TABLET], 'ST80216-2!' => ['Trekstor', 'Surftab Ventos 8.0', DeviceType::TABLET], 'ST97216-1!' => ['Trekstor', 'Surftab Ventos 9.7', DeviceType::TABLET], 'ST10216-2!' => ['Trekstor', 'Surftab Ventos 10.1', DeviceType::TABLET], 'ST10216-2!' => ['Trekstor', 'Surftab Ventos 10.1', DeviceType::TABLET], 'ST10216-3!' => ['Trekstor', 'Surftab Ventos 10.1', DeviceType::TABLET], 'ST70404-1!' => ['Trekstor', 'Surftab Xirion 7.0', DeviceType::TABLET], 'ST70408-1!' => ['Trekstor', 'Surftab Xirion 7.0', DeviceType::TABLET], 'ST10416-1!' => ['Trekstor', 'Surftab Xirion 10.1', DeviceType::TABLET]], 'Trevi PHABLET 4C' => ['Trevi', 'Phablet 4C'], 'PHABLET 4S' => ['Trevi', 'Phablet 4S'], 'Phablet 4.5Q' => ['Trevi', 'Phablet 4.5Q'], 'Trevi PHABLET 5 S' => ['Trevi', 'Phablet 5S'], 'TREQ!!' => ['TREQ A10C' => ['Treq', 'A10C', DeviceType::TABLET], 'TREQ A10C 2' => ['Treq', 'A10C 2', DeviceType::TABLET], 'TREQ A10G 3G' => ['Treq', 'A10G', DeviceType::TABLET], 'treq A10G Duo' => ['Treq', 'A10G', DeviceType::TABLET], 'TREQ A10 basic' => ['Treq', 'Basic', DeviceType::TABLET], 'TREQ Basic 2' => ['Treq', 'Basic 2', DeviceType::TABLET], 'Treq 3G Basic 2' => ['Treq', 'Basic 2', DeviceType::TABLET], 'Treq Basic 2K-8' => ['Treq', 'Basic 2K', DeviceType::TABLET], 'TREQ A10 Basic 2+' => ['Treq', 'Basic 2+', DeviceType::TABLET], 'TREQ basic 3' => ['Treq', 'Basic 3', DeviceType::TABLET], 'Treq 3G Basic 3' => ['Treq', 'Basic 3', DeviceType::TABLET], 'Treq A10 Pocket' => ['Treq', 'Pocket', DeviceType::TABLET], 'TREQ A10 Pocket2' => ['Treq', 'Pocket 2', DeviceType::TABLET], 'TREQ Tune Z' => ['Treq', 'Tune Z', DeviceType::TABLET], 'TREQ Turbo' => ['Treq', 'Turbo', DeviceType::TABLET], 'TREQ-TURBO' => ['Treq', 'Turbo', DeviceType::TABLET], 'TREQ 3G Turbo' => ['Treq', 'Turbo', DeviceType::TABLET]], 'Phablet 5,3 Q' => ['Trevi', 'Phablet 5.3 Q'], 'Trevi REVERSE 5.5Q' => ['Trevi', 'Phablet 5.5 Q REVERSE'], 'Trevi PHABLET 6 S' => ['Trevi', 'Phablet 6 S'], 'TAB 7 3G V8' => ['Trevi', 'Tab 7 V8', DeviceType::TABLET], 'TAB 8 3G V8' => ['Trevi', 'Tab 8 V8', DeviceType::TABLET], 'TAB9 3G' => ['Trevi', 'Tab 9', DeviceType::TABLET], 'TAB9 3G V8' => ['Trevi', 'Tab 9 V8', DeviceType::TABLET], 'TAB 10 3G V16' => ['Trevi', 'Tab 10 V16', DeviceType::TABLET], 'Turbo-X pi' => ['Turbo-X', 'Pi'], 'Turbo-X Ice' => ['Turbo-X', 'Ice', DeviceType::TABLET], 'Turbo-X Tablet Spice III' => ['Turbo-X', 'Spice III', DeviceType::TABLET], 'SPICE IV' => ['Turbo-X', 'Spice IV', DeviceType::TABLET], 'NuclearSX-SP5' => ['TVC', 'Nuclear SX-SP5'], '(Amazing|Fantastic)!!' => ['Amazing A1' => ['TWM', 'Amazing A1'], 'Amazing A3' => ['TWM', 'Amazing A3'], 'Amazing A4' => ['TWM', 'Amazing A4'], 'Amazing A4C' => ['TWM', 'Amazing A4C'], 'Amazing A4S' => ['TWM', 'Amazing A4S'], 'Amazing A5S' => ['TWM', 'Amazing A5S'], 'Amazing A6' => ['TWM', 'Amazing A6'], 'Amazing A7' => ['TWM', 'Amazing A7'], 'Amazing A8' => ['TWM', 'Amazing A8'], 'Amazing P6' => ['TWM', 'Amazing P6'], 'Amazing X1' => ['TWM', 'Amazing X1'], 'Amazing X2' => ['TWM', 'Amazing X2'], 'Amazing X3' => ['TWM', 'Amazing X3'], 'Amazing X5' => ['TWM', 'Amazing X5'], 'Fantastic T3' => ['TWM', 'Fantastic T3']], 'A6S' => ['TWM', 'Amazing A6S'], 'TB100' => ['Unitech', 'TB100', DeviceType::TABLET], 'M70014' => ['United Star Technology', 'M70014', DeviceType::TABLET], 'QOOQ' => ['Unowhy', 'QOOQ', DeviceType::TABLET], 'UMI!!' => ['UMI C1' => ['UMI', 'C1'], 'UMI S1' => ['UMI', 'S1'], 'UMI X1' => ['UMI', 'X1'], 'UMI X1S' => ['UMI', 'X1s'], 'UMI X2' => ['UMI', 'X2'], 'UMI-X2' => ['UMI', 'X2'], 'UMI X3' => ['UMI', 'X3']], 'U1203' => ['Uniscope', 'U1203'], 'Unusual!!' => ['UNUSUAL U7X' => ['Unusual', 'U7X', DeviceType::TABLET], 'Unusual U10Z' => ['Unusual', 'U10Z', DeviceType::TABLET], 'UNUSUAL 10X' => ['Unusual', '10X', DeviceType::TABLET], 'Unusual 10Z' => ['Unusual', '10Z', DeviceType::TABLET]], 'UOOGOU!!' => ['UOOGOU Q6' => ['Uoogou', 'Q6'], 'UOOGOU Q7' => ['Uoogou', 'Q7'], 'UOOGOU-Q9' => ['Uoogou', 'Q9'], 'UOOGOU R5' => ['Uoogou', 'R5'], 'UOOGOU X3' => ['Uoogou', 'X3'], 'UOOGOU X5' => ['Uoogou', 'X5'], 'UOOGOU X6' => ['Uoogou', 'X6']], 'UTime!!' => ['UTime i8' => ['UTime', 'i8'], 'UTime U100' => ['UTime', 'U100'], 'UTime X1' => ['UTime', 'X1']], 'Usmart!!' => ['USmart CL600' => ['USmart', 'CL600'], 'Usmart F450' => ['USmart', 'F450'], 'Usmart-F450' => ['USmart', 'F450']], 'PS47' => ['Velocity Micro', 'Cruz PS47', DeviceType::TABLET], 'T301' => ['Velocity Micro', 'Cruz T301', DeviceType::TABLET], 'VS TOUCH!!' => ['VS TOUCHPAD9 A' => ['Versus', 'Touchpad 9', DeviceType::TABLET], 'Vs TOUCHPAD 9.7' => ['Versus', 'Touchpad 9.7', DeviceType::TABLET], 'VS TOUCHTAB 7DC' => ['Versus', 'Touchtab 7 Dual Core', DeviceType::TABLET], 'VS TOUCHTAB 7DC V' => ['Versus', 'Touchtab 7 Dual Core', DeviceType::TABLET], 'VS TOUCHTAB 8DC' => ['Versus', 'Touchtab 8 Dual Core', DeviceType::TABLET], 'VS TOUCHTAB 9' => ['Versus', 'Touchtab 9', DeviceType::TABLET], 'VS TOUCHTAB 10.1DC' => ['Versus', 'Touchtab 10.1 Dual Core', DeviceType::TABLET]], 'verykool!!' => ['verykool RS75' => ['verykool', 'Flint RS75'], 'verykool RS90' => ['verykool', 'Vortex RS90'], 'verykool S352' => ['verykool', 'Jasper II s352'], 'verykool S354' => ['verykool', 'Mystic s354'], 'verykool S400T' => ['verykool', 'Ruby s400'], 'verykool S401' => ['verykool', 'Aura s401'], 'verykool s505' => ['verykool', 'Spark s505'], 'verykool s4510u' => ['verykool', 'Luna s4510'], 'verykool Sol Quatro s5016' => ['verykool', 'Sol Quattro s5016'], 'verykool Helix s5025' => ['verykool', 'Helix s5025'], 'verykool s5510' => ['verykool', 'Juno s5510'], 'verykool Fusion II SL4502' => ['verykool', 'Fusion II SL4502'], 'verykool  T742' => ['verykool', 'Kolorpad T742', DeviceType::TABLET]], 's732' => ['verykool', 's732'], 'Vertu Aster T' => ['VERTU', 'Aster T'], 'VERTU Ti' => ['VERTU', 'Ti'], 'VT6078' => ['VIA', 'ALTA DS', DeviceType::SIGNAGE], 'victorys s8' => ['Victory\'s', 'S8'], 'Victorys V8' => ['Victory\'s', 'V8'], 'Videocon!!' => ['Videocon A10' => ['Videocon', 'A10'], 'Videocon A15' => ['Videocon', 'A15'], 'Videocon A20' => ['Videocon', 'A20'], 'Videocon A22' => ['Videocon', 'A22'], 'Videocon A26' => ['Videocon', 'A26'], 'Videocon A27' => ['Videocon', 'A27'], 'Videocon A27i' => ['Videocon', 'A27i'], 'Videocon A30' => ['Videocon', 'A30'], 'Videocon A45' => ['Videocon', 'A45'], 'Videocon A47' => ['Videocon', 'A47'], 'Videocon A51' => ['Videocon', 'A51'], 'Videocon V7400' => ['Videocon', 'V7400'], 'Videocon v7500' => ['Videocon', 'V7500'], 'Videocon-V7500' => ['Videocon', 'V7500'], 'Videocon VT85C' => ['Videocon', 'VT85C']], 'ViewSonic-V350' => ['ViewSonic', 'V350'], 'ViewPhone3' => ['ViewSonic', 'ViewPhone 3'], 'GTablet' => ['ViewSonic', 'gTablet', DeviceType::TABLET], 'GtabComb' => ['ViewSonic', 'gTablet', DeviceType::TABLET], 'TeamDRH ICS for GTablet' => ['ViewSonic', 'gTablet', DeviceType::TABLET], 'ViewPad 4' => ['ViewSonic', 'ViewPad 4', DeviceType::MEDIA], 'ViewSonic-ViewPad4' => ['ViewSonic', 'ViewPad 4', DeviceType::MEDIA], 'ViewPad7' => ['ViewSonic', 'ViewPad 7', DeviceType::TABLET], 'ViewPad 7D' => ['ViewSonic', 'ViewPad 7d', DeviceType::TABLET], 'ViewPad 7D Pro' => ['ViewSonic', 'ViewPad 7d Pro', DeviceType::TABLET], 'ViewSonic-ViewPad7e' => ['ViewSonic', 'ViewPad 7e', DeviceType::TABLET], 'ViewPad7e' => ['ViewSonic', 'ViewPad 7e', DeviceType::TABLET], 'ViewPad 7Q' => ['ViewSonic', 'ViewPad 7q', DeviceType::TABLET], 'ViewPad 7Q Pro' => ['ViewSonic', 'ViewPad 7q Pro', DeviceType::TABLET], 'ViewPad7X' => ['ViewSonic', 'ViewPad 7x', DeviceType::TABLET], 'ViewPad 9Q' => ['ViewSonic', 'ViewPad 9q', DeviceType::TABLET], 'ViewPad 10e' => ['ViewSonic', 'ViewPad 10e', DeviceType::TABLET], 'ViewPad 10S' => ['ViewSonic', 'ViewPad 10s', DeviceType::TABLET], 'ViewPad 70Q' => ['ViewSonic', 'ViewPad 70q', DeviceType::TABLET], 'ViewPad97A' => ['ViewSonic', 'ViewPad 97a', DeviceType::TABLET], 'ViewPad97a K1' => ['ViewSonic', 'ViewPad 97a K1', DeviceType::TABLET], 'ViewPad97a Pro' => ['ViewSonic', 'ViewPad 97a Pro', DeviceType::TABLET], 'ViewPad 97Q' => ['ViewSonic', 'ViewPad 97q', DeviceType::TABLET], 'ViewPad 100Q' => ['ViewSonic', 'ViewPad 100q', DeviceType::TABLET], 'ViewPad 100N Pro' => ['ViewSonic', 'ViewPad 100n Pro', DeviceType::TABLET], 'ZiiLABS ViewBook 730' => ['ViewSonic', 'ViewBook VB730', DeviceType::TABLET], 'ViewSonic VB733' => ['ViewSonic', 'ViewPad VB733', DeviceType::TABLET], 'VSD220' => ['ViewSonic', 'VSD220 Smart Display', DeviceType::MONITOR], 'VSD221' => ['ViewSonic', 'VSD221 Smart Display', DeviceType::MONITOR], 'VSD231' => ['ViewSonic', 'VSD231 Smart Display', DeviceType::MONITOR], 'VSD241' => ['ViewSonic', 'VSD241 Smart Display', DeviceType::MONITOR], 'VINUS!!' => ['VINUS V6' => ['Vinus', 'V6'], 'VINUS-V6' => ['Vinus', 'V6'], 'VINUS V8' => ['Vinus', 'V8']], 'VL-[0-9]{3,3}!!' => ['VL-107!' => ['Visual Land', 'Prestige 7', DeviceType::TABLET], 'VL-109' => ['Visual Land', 'Connect 9', DeviceType::TABLET], 'VL-110' => ['Visual Land', 'Prestige 10', DeviceType::TABLET], 'VL-879' => ['Visual Land', 'Connect 7', DeviceType::TABLET]], '(BBG-|VIV-)?vivo!!' => ['vivo E1' => ['Vivo', 'E1'], 'vivo E1t' => ['Vivo', 'E1t'], 'vivo E3' => ['Vivo', 'E3'], 'vivo E5' => ['Vivo', 'E5'], 'vivo S1' => ['Vivo', 'S1'], 'vivo S3' => ['Vivo', 'S3'], 'vivo S3+' => ['Vivo', 'S3+'], 'vivo S6' => ['Vivo', 'S6'], 'vivo S6T' => ['Vivo', 'S6T'], 'vivo S7' => ['Vivo', 'S7'], 'vivo S7w' => ['Vivo', 'S7W'], 'vivo S9!' => ['Vivo', 'S9'], 'vivo S1' => ['Vivo', 'S1'], 'vivo S6' => ['Vivo', 'S6'], 'vivo S7i(t)' => ['Vivo', 'S7'], 'vivo S7t' => ['Vivo', 'S7'], 'vivo S9t' => ['Vivo', 'S9'], 'vivo S11' => ['Vivo', 'S11'], 'vivo S11t' => ['Vivo', 'S11'], 'vivo S12' => ['Vivo', 'S12'], 'vivo V1' => ['Vivo', 'V1'], 'vivo V1Max' => ['Vivo', 'V1 Max'], 'vivo V2' => ['Vivo', 'V2'], 'vivo X1' => ['Vivo', 'X1'], 'vivo X1S' => ['Vivo', 'X1S'], 'vivo X1St' => ['Vivo', 'X1S'], 'vivo X1w' => ['Vivo', 'X1W'], 'vivo X3F' => ['Vivo', 'X3F'], 'vivo X3L' => ['Vivo', 'X3L'], 'vivo X3S' => ['Vivo', 'X3S'], 'vivo X3S W' => ['Vivo', 'X3SW'], 'vivo X3t' => ['Vivo', 'X3T'], 'BBG-vivo X3V!' => ['Vivo', 'X3V'], 'vivo X3V' => ['Vivo', 'X3V'], 'vivo X5F' => ['Vivo', 'X5F'], 'vivo X5L' => ['Vivo', 'X5L'], 'vivo X5M' => ['Vivo', 'X5M'], 'vivo X5S L' => ['Vivo', 'X5S L'], 'BBG-vivo X5V!' => ['Vivo', 'X5V'], 'VIV-vivo X5V!' => ['Vivo', 'X5V'], 'vivo X5V' => ['Vivo', 'X5V'], 'vivo X5Max' => ['Vivo', 'X5 Max'], 'vivo X5Max+' => ['Vivo', 'X5 Max+'], 'vivo X5Max L' => ['Vivo', 'X5 Max L'], 'vivo X5MaxL' => ['Vivo', 'X5 Max L'], 'vivo X5Max S' => ['Vivo', 'X5 Max S'], 'VIV-vivo X5Max S!' => ['Vivo', 'X5 Max S'], 'VIV-vivo X5Max V' => ['Vivo', 'X5 Max V'], 'vivo X5Max V' => ['Vivo', 'X5 Max V'], 'vivo X5Pro' => ['Vivo', 'X5 Pro'], 'vivo X5Pro D' => ['Vivo', 'X5 Pro D'], 'vivo X5Pro L' => ['Vivo', 'X5 Pro L'], 'VIV-vivo X5Pro V' => ['Vivo', 'X5 Pro V'], 'vivo X5Pro V' => ['Vivo', 'X5 Pro V'], 'vivo X6A' => ['Vivo', 'X6A'], 'vivo X6Plus L' => ['Vivo', 'X6 Plus L'], 'vivo Xplay' => ['Vivo', 'Xplay'], 'vivo X510t' => ['Vivo', 'Xplay'], 'vivo Xplay2' => ['Vivo', 'Xplay 2'], 'vivo Xplay2S' => ['Vivo', 'Xplay 2S'], 'vivo X520L' => ['Vivo', 'Xplay 3S'], 'vivo Xplay3S' => ['Vivo', 'Xplay 3S'], 'vivo Xplay3S A' => ['Vivo', 'Xplay 3S'], 'vivo X710F' => ['Vivo', 'Xshot'], 'vivo X710L' => ['Vivo', 'Xshot'], 'vivo Xshot' => ['Vivo', 'Xshot'], 'vivo Xshoot' => ['Vivo', 'Xshot'], 'vivo Y1' => ['Vivo', 'Y1'], 'vivo Y3t' => ['Vivo', 'Y3T'], 'vivo Y11' => ['Vivo', 'Y11'], 'vivo Y11i T' => ['Vivo', 'Y11i T'], 'vivo Y11iW' => ['Vivo', 'Y11i W'], 'vivo Y11t' => ['Vivo', 'Y11T'], 'vivo Y13' => ['Vivo', 'Y13'], 'vivo Y13iL' => ['Vivo', 'Y13i L'], 'vivo Y13L' => ['Vivo', 'Y13L'], 'vivo Y13T' => ['Vivo', 'Y13T'], 'vivo Y15' => ['Vivo', 'Y15'], 'vivo Y15S' => ['Vivo', 'Y15S'], 'vivo Y15T' => ['Vivo', 'Y15T'], 'VIVO-Y15T' => ['Vivo', 'Y15T'], 'vivo Y17T' => ['Vivo', 'Y17T'], 'vivo Y17W' => ['Vivo', 'Y17W'], 'vivo Y18L' => ['Vivo', 'Y18L'], 'vivo Y19t' => ['Vivo', 'Y19T'], 'vivo Y20T' => ['Vivo', 'Y20T'], 'vivo Y22' => ['Vivo', 'Y22'], 'vivo Y22iL' => ['Vivo', 'Y22i L'], 'vivo Y22L' => ['Vivo', 'Y22L'], 'vivo Y22T' => ['Vivo', 'Y22T'], 'vivo Y23L' => ['Vivo', 'Y23L'], 'vivo Y27' => ['Vivo', 'Y27'], 'vivo Y27L' => ['Vivo', 'Y27L'], 'vivo Y28' => ['Vivo', 'Y28'], 'vivo Y28L' => ['Vivo', 'Y28L'], 'vivo Y29L' => ['Vivo', 'Y29L'], 'vivo Y31' => ['Vivo', 'Y31'], 'vivo Y33' => ['Vivo', 'Y33'], 'vivo Y35' => ['Vivo', 'Y35'], 'vivo Y35A' => ['Vivo', 'Y35A'], 'vivo Y37' => ['Vivo', 'Y37'], 'vivo Y51' => ['Vivo', 'Y51'], 'vivo Y613' => ['Vivo', 'Y613'], 'vivo Y613F' => ['Vivo', 'Y613F'], 'vivo Y622' => ['Vivo', 'Y622'], 'vivo Y623' => ['Vivo', 'Y623'], 'vivo Y628' => ['Vivo', 'Y628'], 'vivo Y913' => ['Vivo', 'Y913'], 'VIV-vivo Y913' => ['Vivo', 'Y913'], 'VIV-vivo Y923' => ['Vivo', 'Y923'], 'vivo Y923' => ['Vivo', 'Y923'], 'vivo Y927' => ['Vivo', 'Y927'], 'vivo Y928' => ['Vivo', 'Y928'], 'VIV-vivo Y937' => ['Vivo', 'Y937'], 'vivo Y937' => ['Vivo', 'Y937']], 'VTAB1008' => ['Vizio', 'VTAB1008', DeviceType::TABLET], 'VTAB3010' => ['Vizio', 'VTAB3010', DeviceType::TABLET], 'VAP430' => ['Vizio', 'Co-Star', DeviceType::TELEVISION, Flag::GOOGLETV], 'Xtreme V10' => ['Voice', 'Xtreme V10'], 'Xtreme V20' => ['Voice', 'Xtreme V20'], 'Xtreme-V30' => ['Voice', 'Xtreme V30'], 'vollo Vi86' => ['VOLLO', 'Vi86'], 'VOTO V5' => ['VOTO', 'V5'], 'VOTO VT868' => ['VOTO', 'VT868'], 'VOTO VT888' => ['VOTO', 'VT888'], 'VOTO W5300' => ['VOTO', 'W5300'], 'VOTO X2' => ['VOTO', 'X2'], 'VOYO A15' => ['Voyo', 'A15', DeviceType::TABLET], 'voyo X6' => ['Voyo', 'X6', DeviceType::TABLET], 'Vsun i9' => ['Vsun Mobile', 'i9'], 'Vsun V9' => ['Vsun Mobile', 'V9'], 'WALSUN S1 Pro' => ['Walsun', 'S1 Pro'], 'WALSUN S2' => ['Walsun', 'S2'], 'Walton Primo' => ['Walton', 'Primo'], 'WALTON Primo C1' => ['Walton', 'Primo C1'], 'Primo C2' => ['Walton', 'Primo C2'], 'Primo C3 3G' => ['Walton', 'Primo C3'], 'WALTON Primo-D1' => ['Walton', 'Primo D1'], 'Primo D2' => ['Walton', 'Primo D2'], 'Primo D4' => ['Walton', 'Primo D4'], 'Primo E1' => ['Walton', 'Primo E1'], 'Primo E2' => ['Walton', 'Primo E2'], 'PRIMO E3' => ['Walton', 'Primo E3'], 'Primo E4' => ['Walton', 'Primo E4'], 'Primo EF' => ['Walton', 'Primo EF'], 'Primo EF2' => ['Walton', 'Primo EF2'], 'Primo F1' => ['Walton', 'Primo F1'], 'Primo F2' => ['Walton', 'Primo F2'], 'Primo-F2' => ['Walton', 'Primo F2'], 'Walton Primo F2' => ['Walton', 'Primo F2'], 'Primo F3' => ['Walton', 'Primo F3'], 'Primo F3i' => ['Walton', 'Primo F3i'], 'Primo F4' => ['Walton', 'Primo F4'], 'Primo F6' => ['Walton', 'Primo F6'], 'WALTON Primo-G1' => ['Walton', 'Primo G1'], 'WALTON Primo G1' => ['Walton', 'Primo G1'], 'Primo-G1' => ['Walton', 'Primo G1'], 'Primo G2' => ['Walton', 'Primo G2'], 'Primo-G3' => ['Walton', 'Primo G3'], 'Primo G4' => ['Walton', 'Primo G4'], 'Primo G5' => ['Walton', 'Primo G5'], 'Primo G6' => ['Walton', 'Primo G6'], 'Primo GF2' => ['Walton', 'Primo GF2'], 'Primo GF4' => ['Walton', 'Primo GF4'], 'Primo GH+' => ['Walton', 'Primo GH+'], 'Primo-GH2' => ['Walton', 'Primo GH2'], 'Primo GH2' => ['Walton', 'Primo GH2'], 'Primo GH3' => ['Walton', 'Primo GH3'], 'Primo GM' => ['Walton', 'Primo GM'], 'Primo H2' => ['Walton', 'Primo H2'], 'Primo-H3' => ['Walton', 'Primo H3'], 'Primo H3' => ['Walton', 'Primo H3'], 'Walton Primo H3' => ['Walton', 'Primo H3'], 'WALTON H3' => ['Walton', 'Primo H3'], 'Primo HM' => ['Walton', 'Primo HM'], 'WALTON Primo HMmini' => ['Walton', 'Primo HM mini'], 'Primo-N' => ['Walton', 'Primo N'], 'WALTON Primo-N1' => ['Walton', 'Primo N1'], 'Primo-N1' => ['Walton', 'Primo N1'], 'Primo NF' => ['Walton', 'Primo NF'], 'Primo NX' => ['Walton', 'Primo NX'], 'Primo NX2' => ['Walton', 'Primo NX2'], 'Walton Primo R1' => ['Walton', 'Primo R1'], 'Primo R2' => ['Walton', 'Primo R2'], 'Primo R3' => ['Walton', 'Primo R3'], 'Primo RH' => ['Walton', 'Primo RH'], 'Primo RX2' => ['Walton', 'Primo RX2'], 'Primo S1' => ['Walton', 'Primo S1'], 'WALTON Primo S3' => ['Walton', 'Primo S3'], 'Primo S3' => ['Walton', 'Primo S3'], 'Primo S3 mini' => ['Walton', 'Primo S3 mini'], 'Primo V1' => ['Walton', 'Primo V1'], '(WALTON )?Primo-X1!' => ['Walton', 'Primo X1'], 'Primo-X2' => ['Walton', 'Primo X2'], 'Primo X2mini' => ['Walton', 'Primo X2 mini'], 'Primo-ZX' => ['Walton', 'Primo ZX'], 'Primo Walpad 7' => ['Walton', 'Primo Walpad 7', DeviceType::TABLET], 'Primo Walpad 8' => ['Walton', 'Primo Walpad 8', DeviceType::TABLET], 'Walpad 8b' => ['Walton', 'Primo Walpad 8b', DeviceType::TABLET], 'Primo Walpad 8W' => ['Walton', 'Primo Walpad 8W', DeviceType::TABLET], 'Walpad 8x' => ['Walton', 'Primo Walpad 8x', DeviceType::TABLET], 'xPAD-70' => ['WayteQ', 'xPAD-70', DeviceType::TABLET], 'xTAB-7X' => ['WayteQ', 'xTAB-7X', DeviceType::TABLET], 'xTAB-9' => ['WayteQ', 'xTAB-9', DeviceType::TABLET], 'xTAB-70!' => ['WayteQ', 'xTAB-70', DeviceType::TABLET], 'xTAB-100!' => ['WayteQ', 'xTAB-100', DeviceType::TABLET], 'WellcoM-A86' => ['WellcoM', 'A86'], 'WellcoM-A88' => ['WellcoM', 'A88'], 'WellcoM-A89' => ['WellcoM', 'A89'], 'WellcoM-A89-Plus' => ['WellcoM', 'A89 Plus'], 'WellcoM-A99' => ['WellcoM', 'A99'], 'WellcoM-A800' => ['WellcoM', 'A800', DeviceType::TABLET], 'ZEN 4.5' => ['Wexler', 'Zen 4.5'], 'ZEN 4.7' => ['Wexler', 'Zen 4.7'], 'WEXLER. ZEN 5' => ['Wexler', 'Zen 5'], 'WEXLER TAB7ID' => ['Wexler', 'Tab 7ID', DeviceType::TABLET], 'WEXLER-TAB-7iS' => ['Wexler', 'Tab 7IS', DeviceType::TABLET], 'WEXLER-TAB-7T' => ['Wexler', 'Tab 7T', DeviceType::TABLET], 'TAB 10Q' => ['Wexler', 'Tab 10Q', DeviceType::TABLET], 'WEXLER.BOOK T7008' => ['Wexler', 'Book T7008', DeviceType::TABLET], 'WHAM WG40' => ['Wham', 'WG40'], 'BARRY' => ['Wiko', 'Barry'], 'BIRDY' => ['Wiko', 'Birdy'], 'BLOOM' => ['Wiko', 'Bloom'], 'CINK+' => ['Wiko', 'Cink+'], 'CINK FIVE' => ['Wiko', 'Cink Five'], 'Wiko Cink Five' => ['Wiko', 'Cink Five'], 'CINK KING' => ['Wiko', 'Cink King'], 'CINK PEAX' => ['Wiko', 'Cink Peax'], 'Wiko Cink Peax' => ['Wiko', 'Cink Peax'], 'WIKO-CINK PEAX' => ['Wiko', 'Cink Peax'], 'CINK PEAX+' => ['Wiko', 'Cink Peax+'], 'CINK PEAX 2' => ['Wiko', 'Cink Peax 2'], 'Wiko Cink Slim' => ['Wiko', 'Cink Slim'], 'WIKO-CINK SLIM' => ['Wiko', 'Cink Slim'], 'CINK SLIM' => ['Wiko', 'Cink Slim'], 'Cink Slim A' => ['Wiko', 'Cink Slim A'], 'Cink Slim B' => ['Wiko', 'Cink Slim B'], 'CINK SLIM 2' => ['Wiko', 'Cink Slim 2'], 'DARKFULL' => ['Wiko', 'Darkfull'], 'DARKMOON' => ['Wiko', 'Darkmoon'], 'DARKNIGHT' => ['Wiko', 'Darknight'], 'DARKSIDE' => ['Wiko', 'Darkside'], 'GETAWAY' => ['Wiko', 'Getaway'], 'GOA' => ['Wiko', 'Goa'], 'HIGHWAY' => ['Wiko', 'Highway'], 'HIGHWAY SIGNS' => ['Wiko', 'Highway Signs'], 'IGGY' => ['Wiko', 'Iggy'], 'JIMMY' => ['Wiko', 'Jimmy'], 'KITE' => ['Wiko', 'Kite'], 'LENNY' => ['Wiko', 'Lenny'], 'OZZY' => ['Wiko', 'Ozzy'], 'Wiko Rainbow' => ['Wiko', 'Rainbow'], 'RAINBOW' => ['Wiko', 'Rainbow'], 'RAINBOW 4G' => ['Wiko', 'Rainbow'], 'RIDGE' => ['Wiko', 'Ridge'], 'RIDGE 4G' => ['Wiko', 'Ridge'], 'RIDGE FAB 4G' => ['Wiko', 'Ridge Fab'], 'SLIDE' => ['Wiko', 'Slide'], 'STAIRWAY' => ['Wiko', 'Stairway'], 'Wiko Stairway' => ['Wiko', 'Stairway'], 'SUBLIM' => ['Wiko', 'Sublim'], 'SUNSET' => ['Wiko', 'Sunset'], 'WAX' => ['Wiko', 'Wax'], 'N5PRO2jingying' => ['Window', 'N5 Pro 2', DeviceType::MEDIA], 'N12' => ['Window', 'N12', DeviceType::TABLET], 'N12R' => ['Window', 'N12R', DeviceType::TABLET], 'N50' => ['Window', 'N50', DeviceType::TABLET], 'N50DT!' => ['Window', 'N50DT', DeviceType::TABLET], 'N50GT' => ['Window', 'N50GT', DeviceType::TABLET], 'N50GT A' => ['Window', 'N50GT-A', DeviceType::TABLET], 'N70' => ['Window', 'N70', DeviceType::TABLET], 'N70 3G' => ['Window', 'N70', DeviceType::TABLET], 'N70 C' => ['Window', 'N70C', DeviceType::TABLET], 'N70DC' => ['Window', 'N70DC', DeviceType::TABLET], 'N70-S' => ['Window', 'N70S', DeviceType::TABLET], 'N70HD' => ['Window', 'N70HD', DeviceType::TABLET], 'N70 DUAL CORE' => ['Window', 'N70 Dual Core', DeviceType::TABLET], 'N70DC-S' => ['Window', 'N70 Dual Core', DeviceType::TABLET], 'N70DC-T' => ['Window', 'N70 Dual Core', DeviceType::TABLET], 'N80($| from moage.com)!' => ['Window', 'N80', DeviceType::TABLET], 'N80DC' => ['Window', 'N80 Dual Core', DeviceType::TABLET], 'N80IPS' => ['Window', 'N80 IPS', DeviceType::TABLET], 'N90' => ['Window', 'N90', DeviceType::TABLET], 'N90 DUAL CORE!' => ['Window', 'N90 Dual Core', DeviceType::TABLET], 'N90FHDRK' => ['Window', 'N90 FHD', DeviceType::TABLET], 'N101 DUAL CORE!' => ['Window', 'N101 Dual Core', DeviceType::TABLET], 'N612' => ['Wishway', 'N612'], 'A81E' => ['Witstech', 'A81E', DeviceType::TABLET], 'miTab!!' => ['miTab BALTIMORE' => ['Wolder', 'miTab BALTIMORE', DeviceType::TABLET], 'miTab BERLIN' => ['Wolder', 'miTab BERLIN', DeviceType::TABLET], 'miTab Boston' => ['Wolder', 'miTab BOSTON', DeviceType::TABLET], 'miTab BROOKLYN' => ['Wolder', 'miTab BROOKLYN', DeviceType::TABLET], 'miTabCALIFORNIA' => ['Wolder', 'miTab CALIFORNIA', DeviceType::TABLET], 'miTab CHICAGO' => ['Wolder', 'miTab CHICAGO', DeviceType::TABLET], 'miTab EPSILON' => ['Wolder', 'miTab EPSILON', DeviceType::TABLET], 'miTab-EPSILON' => ['Wolder', 'miTab EPSILON', DeviceType::TABLET], 'miTab FEEL' => ['Wolder', 'miTab FEEL', DeviceType::TABLET], 'miTab FUNK' => ['Wolder', 'miTab FUNK', DeviceType::TABLET], 'miTab-GENIUS' => ['Wolder', 'miTab GENIUS', DeviceType::TABLET], 'miTab GENIUS' => ['Wolder', 'miTab GENIUS', DeviceType::TABLET], 'miTab HERO' => ['Wolder', 'miTab HERO', DeviceType::TABLET], 'miTab HOP!' => ['Wolder', 'miTab HOP!', DeviceType::TABLET], 'miTab IOWA' => ['Wolder', 'miTab IOWA', DeviceType::TABLET], 'miTab IRON' => ['Wolder', 'miTab IRON', DeviceType::TABLET], 'miTab JUMP' => ['Wolder', 'miTab JUMP', DeviceType::TABLET], 'miTab LION' => ['Wolder', 'miTab LION', DeviceType::TABLET], 'miTab LIVE' => ['Wolder', 'miTab LIVE', DeviceType::TABLET], 'miTab NEO' => ['Wolder', 'miTab NEO', DeviceType::TABLET], 'miTab THINK' => ['Wolder', 'miTab THINK', DeviceType::TABLET], 'miTab Seattle' => ['Wolder', 'miTab SEATTLE', DeviceType::TABLET], 'miTab URBAN' => ['Wolder', 'miTab URBAN', DeviceType::TABLET]], 'AT-A[QS][0-9]{2,2}!!' => ['AT-AQ28D' => ['Wolfgang', 'AT-AQ28D'], 'AT-AS35D' => ['Wolfgang', 'AT-AS35D'], 'AT-AS40D' => ['Wolfgang', 'AT-AS40D'], 'AT-AS40D2' => ['Wolfgang', 'AT-AS40D2'], 'AT-AS40D3' => ['Wolfgang', 'AT-AS40D3'], 'AT-AS40SE' => ['Wolfgang', 'AT-AS40SE'], 'AT-AS40W' => ['Wolfgang', 'AT-AS40W'], 'AT-AS43D' => ['Wolfgang', 'AT-AS43D'], 'AT-AS43D2' => ['Wolfgang', 'AT-AS43D2'], 'AT-AS43D3' => ['Wolfgang', 'AT-AS43D3'], 'AT-AS43D4' => ['Wolfgang', 'AT-AS43D4'], 'AT-AS45D1' => ['Wolfgang', 'AT-AS45D1'], 'AT-AS45FW' => ['Wolfgang', 'AT-AS45FW'], 'AT-AS45SE' => ['Wolfgang', 'AT-AS45SE'], 'AT-AS45IPS' => ['Wolfgang', 'AT-AS45IPS'], 'AT-AS45Q' => ['Wolfgang', 'AT-AS45Q'], 'AT-AS45Q1' => ['Wolfgang', 'AT-AS45Q1'], 'AT-AS45qHD' => ['Wolfgang', 'AT-AS45QHD'], 'AT-AS45q2' => ['Wolfgang', 'AT-AS45Q2'], 'AT-AS45WP' => ['Wolfgang', 'AT-AS45WP'], 'AT-AS45LTE' => ['Wolfgang', 'AT-AS45LTE'], 'AT-AS50HD' => ['Wolfgang', 'AT-AS50HD'], 'AT-AS50SE' => ['Wolfgang', 'AT-AS50SE'], 'AT-AS50Q' => ['Wolfgang', 'AT-AS50Q'], 'AT-AS53N' => ['Wolfgang', 'AT-AS53N'], 'AT-AS55HD' => ['Wolfgang', 'AT-AS55HD'], 'AT-AS55HD1' => ['Wolfgang', 'AT-AS55HD1']], 'M12' => ['Wopad', 'M12', DeviceType::TABLET], 'WM8650' => ['WonderMedia', 'WM8650', DeviceType::TABLET], 'WM8650-mid' => ['WonderMedia', 'WM8650', DeviceType::TABLET], 'wm8710-tvbox' => ['WonderMedia', 'WM8710', DeviceType::TELEVISION], 'WM8850-mid' => ['WonderMedia', 'WM8850', DeviceType::TABLET], 'PAD1001' => ['Wortmann', 'TERRA MOBILE PAD 1001', DeviceType::TABLET], 'Woxter!!' => ['Woxter Android TV 700' => ['Woxter', 'Android TV 700', DeviceType::TELEVISION], 'Woxter Funny Tab 80' => ['Woxter', 'Funny Tab 80'], 'Woxter Zielo D15' => ['Woxter', 'Zielo D15'], 'Woxter Zielo Q20' => ['Woxter', 'Zielo Q20'], 'Woxter Zielo Q25' => ['Woxter', 'Zielo Q25'], 'Woxter Zielo Q30' => ['Woxter', 'Zielo Q30'], 'Woxter Zielo Q40' => ['Woxter', 'Zielo Q40'], 'Woxter Zielo Z400' => ['Woxter', 'Zielo Z400'], 'Woxter Zielo Z820Plus' => ['Woxter', 'Zielo Z820 Plus'], 'Woxter Tablet PC 50BL' => ['Woxter', 'Tablet PC 50 BL', DeviceType::TABLET], 'Woxter Tablet PC 50BL DUAL' => ['Woxter', 'Tablet PC 50 BL Dual', DeviceType::TABLET], 'Woxter Tablet PC 75CXi' => ['Woxter', 'Tablet PC 75 CXi', DeviceType::TABLET], 'Woxter Tablet PC 76CXi' => ['Woxter', 'Tablet PC 76 CXi', DeviceType::TABLET], 'Woxter Tablet PC 85CXi' => ['Woxter', 'Tablet PC 85 CXi', DeviceType::TABLET], 'Woxter Tablet PC 85 HDS' => ['Woxter', 'Tablet PC 85 HDS', DeviceType::TABLET], 'Woxter Tablet PC 90BL' => ['Woxter', 'Tablet PC 90 BL', DeviceType::TABLET], 'Woxter Tablet PC 97IPS' => ['Woxter', 'Tablet PC 97 IPS', DeviceType::TABLET], 'Woxter Tablet PC 97IPS DUAL' => ['Woxter', 'Tablet PC 97 IPS Dual', DeviceType::TABLET], 'Woxter 97 IPS DUAL 3G' => ['Woxter', 'Tablet PC 97 IPS Dual 3G', DeviceType::TABLET], 'Woxter Tablet PC 100CX' => ['Woxter', 'Tablet PC 100 CX', DeviceType::TABLET], 'Woxter Tablet PC 101IPS DUAL' => ['Woxter', 'Tablet PC 101 IPS Dual', DeviceType::TABLET], 'Woxter Tablet PC 101 IPS DUAL' => ['Woxter', 'Tablet PC 101 IPS Dual', DeviceType::TABLET], 'Woxter SX100' => ['Woxter', 'SX 100', DeviceType::TABLET], 'Woxter QX 70' => ['Woxter', 'QX 70', DeviceType::TABLET], 'Woxter QX78' => ['Woxter', 'QX 78', DeviceType::TABLET], 'Woxter QX 90' => ['Woxter', 'QX 90', DeviceType::TABLET], 'Woxter QX 100' => ['Woxter', 'QX 100', DeviceType::TABLET], 'Woxter QX105' => ['Woxter', 'QX 105', DeviceType::TABLET], 'Woxter Tablet PC nimbus 70D' => ['Woxter', 'Nimbus 70D', DeviceType::TABLET], 'Woxter Nimbus 97Q' => ['Woxter', 'Nimbus 97Q', DeviceType::TABLET], 'Woxter Nimbus 98Q' => ['Woxter', 'Nimbus 98Q', DeviceType::TABLET]], 'Wxt Tab PC 65CXi' => ['Woxter', 'Tablet PC 65 CXi', DeviceType::TABLET], 'Proton Lite' => ['X-View', 'Proton Lite', DeviceType::TABLET], 'XELIO P900A' => ['Xelio', 'P900A'], 'MI-ONE' => ['Xiaomi', 'Mi 1'], 'MI-ONEC1' => ['Xiaomi', 'Mi 1'], 'MI-ONE C1' => ['Xiaomi', 'Mi 1'], 'MI-ONE Plus!' => ['Xiaomi', 'Mi 1'], 'mione plus' => ['Xiaomi', 'Mi 1'], 'MI ONE plus' => ['Xiaomi', 'Mi 1'], 'MI-ONEPlus' => ['Xiaomi', 'Mi 1'], 'Xiaomi M1' => ['Xiaomi', 'Mi 1'], 'MI 1S' => ['Xiaomi', 'Mi 1S'], 'MI 1S' => ['Xiaomi', 'Mi 1S'], 'MI 1SC' => ['Xiaomi', 'Mi 1S'], 'MI1/1s' => ['Xiaomi', 'Mi 1S'], 'MI-TWO' => ['Xiaomi', 'Mi 2'], 'MI-TWOPlus' => ['Xiaomi', 'Mi 2'], 'MI2' => ['Xiaomi', 'Mi 2'], 'MI 2' => ['Xiaomi', 'Mi 2'], 'MI 2C' => ['Xiaomi', 'Mi 2'], 'MI 2A!' => ['Xiaomi', 'Mi 2A'], 'MI2A' => ['Xiaomi', 'Mi 2A'], 'MI 2S' => ['Xiaomi', 'Mi 2S'], 'MI 2SC' => ['Xiaomi', 'Mi 2S'], 'MI 2/2S' => ['Xiaomi', 'Mi 2S'], 'Xiaomi MI-2S' => ['Xiaomi', 'Mi 2S'], 'xiaomi M3' => ['Xiaomi', 'Mi 3'], 'Mi3' => ['Xiaomi', 'Mi 3'], 'MI-Three' => ['Xiaomi', 'Mi 3'], 'MI-ThreePlus' => ['Xiaomi', 'Mi 3'], 'MI 3' => ['Xiaomi', 'Mi 3'], 'MI 3C' => ['Xiaomi', 'Mi 3'], 'MI 3W' => ['Xiaomi', 'Mi 3'], '2013061' => ['Xiaomi', 'Mi 3'], 'Mi3W' => ['Xiaomi', 'Mi 3'], 'Xiaomi Mi 4' => ['Xiaomi', 'Mi 4'], 'xiaomi M4' => ['Xiaomi', 'Mi 4'], 'MI 4' => ['Xiaomi', 'Mi 4'], 'MI 4LTE' => ['Xiaomi', 'Mi 4'], 'MI 4C' => ['Xiaomi', 'Mi 4'], 'MI 4W' => ['Xiaomi', 'Mi 4'], '2014216 TD-LTE' => ['Xiaomi', 'Mi 4'], 'Mi-4c' => ['Xiaomi', 'Mi 4'], 'Mi 4i' => ['Xiaomi', 'Mi 4i'], 'Xiaomi M5' => ['Xiaomi', 'Mi 5'], 'MI NOTE LTE' => ['Xiaomi', 'Mi Note'], 'MI NOTE Pro' => ['Xiaomi', 'Mi Note Pro'], 'Xiaomi Redmi' => ['Xiaomi', 'Redmi 1'], 'Redmi' => ['Xiaomi', 'Redmi 1'], 'HM 1' => ['Xiaomi', 'Redmi 1'], 'HM 1A' => ['Xiaomi', 'Redmi 1A'], 'HM 1AC' => ['Xiaomi', 'Redmi 1A'], 'Redmi 1S' => ['Xiaomi', 'Redmi 1S'], 'HM 1S' => ['Xiaomi', 'Redmi 1S'], 'Xiaomi Redmi 1s' => ['Xiaomi', 'Redmi 1S'], 'Xiaomi Redmi One S' => ['Xiaomi', 'Redmi 1S'], 'HM 1SC' => ['Xiaomi', 'Redmi 1S'], 'HM 1SLTETD' => ['Xiaomi', 'Redmi 1S'], 'HM 1STD' => ['Xiaomi', 'Redmi 1S'], 'HM 1SW' => ['Xiaomi', 'Redmi 1S'], '20141(12)!' => ['Xiaomi', 'Redmi 2'], '20148(11|12|13|17|18|19|21)!' => ['Xiaomi', 'Redmi 2'], '20145(02)!' => ['Xiaomi', 'Redmi 2'], 'HM 2A' => ['Xiaomi', 'Redmi 2A'], 'REDMI NOTE' => ['Xiaomi', 'Redmi Note 1'], 'HM NOTE' => ['Xiaomi', 'Redmi Note 1'], 'HM NOTE 1LTE' => ['Xiaomi', 'Redmi Note 1'], 'HM NOTE 1LTETD' => ['Xiaomi', 'Redmi Note 1'], 'HM NOTE 1LTEW' => ['Xiaomi', 'Redmi Note 1'], 'HM NOTE 1LTEGLOBAL' => ['Xiaomi', 'Redmi Note 1'], 'HM NOTE 1TD' => ['Xiaomi', 'Redmi Note 1'], 'HM NOTE 1S' => ['Xiaomi', 'Redmi Note 1'], 'HM NOTE 1W' => ['Xiaomi', 'Redmi Note 1'], 'Redmi Note 4G (LTE)' => ['Xiaomi', 'Redmi Note 1'], 'Xiaomi Note 4G' => ['Xiaomi', 'Redmi Note 1'], '2013122' => ['Xiaomi', 'Redmi Note 1'], 'Redmi Note 2' => ['Xiaomi', 'Redmi Note 2'], 'Xiaomi Note2' => ['Xiaomi', 'Redmi Note 2'], 'Redmi Note 3' => ['Xiaomi', 'Redmi Note 3'], '(Xiaomi )?20130(22|23)!' => ['Xiaomi', 'Redmi Red Rice'], '20140(11)!' => ['Xiaomi', 'Redmi Red Rice'], '20145(01)!' => ['Xiaomi', 'Redmi Red Rice'], 'RedRice' => ['Xiaomi', 'Redmi Red Rice'], 'MI PAD' => ['Xiaomi', 'MiPad', DeviceType::TABLET], 'MiBOX iCNTV' => ['Xiaomi', 'MiBox 1', DeviceType::TELEVISION], 'MiBOX1S' => ['Xiaomi', 'MiBox 1S', DeviceType::TELEVISION], 'MiBOX2' => ['Xiaomi', 'MiBox 2', DeviceType::TELEVISION], 'XO Learning tablet' => ['XO', 'Tablet', DeviceType::TABLET], 'iX101T1' => ['Xplore', 'iX101T1', DeviceType::TABLET], 'iX101T1-2G' => ['Xplore', 'iX101T1', DeviceType::TABLET], 'iX101T1-XS' => ['Xplore', 'iX101T1', DeviceType::TABLET], 'X403' => ['Xtouch', 'X403'], 'Xtouch X405' => ['Xtouch', 'X405'], 'X506' => ['Xtouch', 'X506'], 'X506S' => ['Xtouch', 'X506S'], 'X507Q' => ['Xtouch', 'X507Q'], 'X708S' => ['Xtouch', 'X708S', DeviceType::TABLET], 'Xtreamer Mobile AiKi' => ['Xtreamer', 'Aiki'], 'Xtreamer Mobile AiKi a7*' => ['Xtreamer', 'Aiki'], 'Aiki-4S' => ['Xtreamer', 'Aiki 4S'], 'Aiki-5' => ['Xtreamer', 'Aiki 5'], 'Xtreamer Joyz' => ['Xtreamer', 'Joyz'], 'Q07CL01' => ['XVision', 'Q07', DeviceType::TABLET], 'Luna TAB07-920N' => ['Yarvik', 'Luna 7', DeviceType::TABLET], 'Luna TAB07-100' => ['Yarvik', 'Luna 7c', DeviceType::TABLET], 'Luna TAB07-101' => ['Yarvik', 'Luna 7c', DeviceType::TABLET], 'Luna TAB274' => ['Yarvik', 'Luna 7c', DeviceType::TABLET], 'Luna TAB374' => ['Yarvik', 'Luna 8c', DeviceType::TABLET], 'Luna TAB474' => ['Yarvik', 'Luna 10', DeviceType::TABLET], 'Luna TAB10-150' => ['Yarvik', 'Luna 10c', DeviceType::TABLET], 'TAB09-410' => ['Yarvik', 'Noble 9.7', DeviceType::TABLET], 'TAB10-410' => ['Yarvik', 'Noble 10.1', DeviceType::TABLET], 'Noble TAB07-485' => ['Yarvik', 'Noble Mini', DeviceType::TABLET], 'TAB07-485' => ['Yarvik', 'Noble Mini', DeviceType::TABLET], 'Xenta-TAB07-210' => ['Yarvik', 'Xenta 7c', DeviceType::TABLET], 'Xenta-TAB07-211' => ['Yarvik', 'Xenta 7c', DeviceType::TABLET], 'TAB07-200' => ['Yarvik', 'Xenta 7ic', DeviceType::TABLET], 'Xenta TAB07-200' => ['Yarvik', 'Xenta 7ic', DeviceType::TABLET], 'Xenta TAB08-200' => ['Yarvik', 'Xenta 8ic', DeviceType::TABLET], 'Xenta TAB08-201-3G' => ['Yarvik', 'Xenta 8c', DeviceType::TABLET], 'TAB9-200' => ['Yarvik', 'Xenta 9.7ic', DeviceType::TABLET], 'Xenta TAB9-200' => ['Yarvik', 'Xenta 9.7ic', DeviceType::TABLET], 'Xenta TAB09-211' => ['Yarvik', 'Xenta 9.7ic+', DeviceType::TABLET], 'Xenta TAB10-211' => ['Yarvik', 'Xenta 10ic', DeviceType::TABLET], 'Xenta TAB10-201' => ['Yarvik', 'Xenta 10ic', DeviceType::TABLET], 'TAB10-201' => ['Yarvik', 'Xenta 10ic', DeviceType::TABLET], 'Xenta TAB13-201' => ['Yarvik', 'Xenta 13c', DeviceType::TABLET], 'N6' => ['Yarvik', 'TAB210 Tablet', DeviceType::TABLET], 'TAB210' => ['Yarvik', 'TAB210 Tablet', DeviceType::TABLET], 'TAB220' => ['Yarvik', 'GoTab Velocity', DeviceType::TABLET], 'TAB224' => ['Yarvik', 'GoTab Velocity', DeviceType::TABLET], 'TAB250' => ['Yarvik', 'TAB250 Tablet', DeviceType::TABLET], 'TAB275' => ['Yarvik', 'GoTab Ion', DeviceType::TABLET], 'TAB260' => ['Yarvik', 'GoTab Velocity', DeviceType::TABLET], 'TAB264' => ['Yarvik', 'GoTab Velocity', DeviceType::TABLET], 'TAB360' => ['Yarvik', 'GoTab Gravity', DeviceType::TABLET], 'TAB364' => ['Yarvik', 'GoTab Gravity', DeviceType::TABLET], 'TAB410' => ['Yarvik', 'TAB410 Tablet', DeviceType::TABLET], 'TAB411' => ['Yarvik', 'GoTab Slimline', DeviceType::TABLET], 'TAB420' => ['Yarvik', 'GoTab Xerios', DeviceType::TABLET], 'TAB424' => ['Yarvik', 'GoTab Xerios', DeviceType::TABLET], 'TAB450' => ['Yarvik', 'GoTab Slimline', DeviceType::TABLET], 'TAB460' => ['Yarvik', 'GoTab Xerios', DeviceType::TABLET], 'TAB461' => ['Yarvik', 'GoTab Xerios', DeviceType::TABLET], 'TAB464' => ['Yarvik', 'GoTab Xerios', DeviceType::TABLET], 'TAB465EUK' => ['Yarvik', 'GoTab Exxa', DeviceType::TABLET], 'TAB469' => ['Yarvik', 'GoTab Yotta', DeviceType::TABLET], 'TAB466EUK' => ['Yarvik', 'GoTab Zetta', DeviceType::TABLET], 'TAB467' => ['Yarvik', 'GoTab Zetta', DeviceType::TABLET], 'TAB462' => ['Yarvik', 'Zania 10ic', DeviceType::TABLET], 'YP712' => ['Yashi', 'YPAD 7" YP712', DeviceType::TABLET], 'Andy 3.5EI' => ['Yezz', 'Andy A3.5EI'], 'yezz Andy A3.5EP' => ['Yezz', 'Andy A3.5EP'], 'Andy A4' => ['Yezz', 'Andy A4'], 'YEZZ-A4M' => ['Yezz', 'Andy A4M'], 'Andy A5' => ['Yezz', 'Andy A5'], 'YEZZ-A5QP' => ['Yezz', 'Andy A5QP'], 'ANDY A5QP' => ['Yezz', 'Andy A5QP'], 'Yezz-AC4EI' => ['Yezz', 'Andy AC4EI'], 'Andy C3.5EI' => ['Yezz', 'Andy C3.5EI'], 'Andy C5V' => ['Yezz', 'Andy C5V'], 'Andy C5VP' => ['Yezz', 'Andy C5VP'], 'ANDY-3.5EI' => ['Yezz', 'Andy 3.5EI'], 'YEZZ-4E' => ['Yezz', 'Andy 4E'], 'Andy 4E' => ['Yezz', 'Andy 4E'], 'Andy 4EI' => ['Yezz', 'Andy 4EI'], 'ANDY 5EI' => ['Yezz', 'Andy 5EI'], 'Yezz-ANDY5EL' => ['Yezz', 'Andy 5EL'], 'Yezz-T7FD' => ['Yezz', 'Epic T7FD', DeviceType::TABLET], 'C868' => ['Yicheer', 'C868'], 'DEM752NC' => ['Yifang', 'M752'], 'EMR1879' => ['Yidong', 'EMR1879', DeviceType::TABLET], 'YD201' => ['Yota', 'YotaPhone 2'], 'YX-YUSUN E80' => ['Yusun', 'E80'], 'YX-YUSUN E89' => ['Yusun', 'E89'], 'YX-YUSUN E96' => ['Yusun', 'E96'], 'YUSUN E98' => ['Yusun', 'E98'], 'YUSUN L71' => ['Yusun', 'L71'], 'YUSUN L88' => ['Yusun', 'L88'], 'LA-I Dual core' => ['Yusun', 'LA-I'], 'LA-M3' => ['Yusun', 'LA-M3'], 'LA1-L' => ['Yusun', 'LA1-L'], 'LA2-E' => ['Yusun', 'LA2-E'], 'LA2-E1' => ['Yusun', 'LA2-E1'], 'LA2-L' => ['Yusun', 'LA2-L'], 'LA2-T' => ['Yusun', 'LA2-T'], 'YUSUN LA2-T' => ['Yusun', 'LA2-T'], 'YUSUN LA2 T' => ['Yusun', 'LA2-T'], 'YUSUN LA2-T1' => ['Yusun', 'LA2-T1'], 'YUSUN LA2 T1' => ['Yusun', 'LA2-T1'], 'LA2-T1' => ['Yusun', 'LA2-T1'], 'YUSUN LA2-W' => ['Yusun', 'LA2-W'], 'LA2-W' => ['Yusun', 'LA2-W'], 'LA2-W1' => ['Yusun', 'LA2-W1'], 'YUSUN LA2 W1' => ['Yusun', 'LA2-W1'], 'LA3-W' => ['Yusun', 'LA3-W'], 'LA3S' => ['Yusun', 'LA3S'], 'LA5-W' => ['Yusun', 'LA5-W'], 'YUSUN T22' => ['Yusun', 'T22'], 'YUSUN T30' => ['Yusun', 'T30'], 'YUSUN T31' => ['Yusun', 'T31'], 'YUSUN T50' => ['Yusun', 'T50'], 'YUSUN T85' => ['Yusun', 'T85'], 'YUSUN W90' => ['Yusun', 'W90'], 'YUSUN W306' => ['Yusun', 'W306'], 'yusun W702' => ['Yusun', 'W702'], 'YUSUN W706' => ['Yusun', 'W706'], 'YUSUN W708' => ['Yusun', 'W708'], 'YUSUN - W 800' => ['Yusun', 'W800'], 'YUSUN--W 800' => ['Yusun', 'W800'], 'YUSUN W808' => ['Yusun', 'W808'], 'YUSUN -- W 900' => ['Yusun', 'W900'], 'TB782B' => ['Zeki', 'TB782B', DeviceType::TABLET], 'TBD753B' => ['Zeki', 'TBD753B', DeviceType::TABLET], 'TBDB763' => ['Zeki', 'TBDB763', DeviceType::TABLET], 'TBDB863' => ['Zeki', 'TBDB863', DeviceType::TABLET], 'TBDC1093' => ['Zeki', 'TBDC1093', DeviceType::TABLET], 'TBDG734' => ['Zeki', 'TBDG734', DeviceType::TABLET], 'TBDG874' => ['Zeki', 'TBDG874', DeviceType::TABLET], 'TBDG1073' => ['Zeki', 'TBDG1073', DeviceType::TABLET], 'TBQC1063' => ['Zeki', 'TBQC1063', DeviceType::TABLET], 'ZENITHINK C94!' => ['Zenithink', 'C94', DeviceType::TABLET], 'p7901a' => ['Zenithink', 'Epad P7901A', DeviceType::TABLET], 'zt180' => ['Zenithink', 'ZT-180', DeviceType::TABLET], 'Z282 C91' => ['Zenithink', 'ZT-282', DeviceType::TABLET], 'ultrafone 303' => ['Zen', 'Ultrafone 303'], 'ultrafone 303 Play' => ['Zen', 'Ultrafone 303'], 'ultrafone 304' => ['Zen', 'Ultrafone 304'], 'ultrafone 308' => ['Zen', 'Ultrafone 308'], 'ultrafone 501' => ['Zen', 'Ultrafone 501'], 'ultrafone 502' => ['Zen', 'Ultrafone 502'], 'ultrafone 503' => ['Zen', 'Ultrafone 503'], 'ultrafone 701HD' => ['Zen', 'Ultrafone 701HD'], 'ultrafone 701FHD' => ['Zen', 'Ultrafone 701FHD'], 'Zigo Eon6i' => ['Zigo', 'Eon6i'], 'Zigo Eon7i' => ['Zigo', 'Eon7i'], 'NEBULA6.9' => ['Zigo', 'Nebula Tab 6.9', DeviceType::TABLET], 'Zigo Nebula Tab 7.1' => ['Zigo', 'Nebula Tab 7.1', DeviceType::TABLET], 'Jaguar3' => ['ZiiLabs', 'Jaguar 3', DeviceType::TABLET], 'Jaguar7' => ['ZiiLabs', 'Jaguar 7', DeviceType::TABLET], 'Ziss Ranger HD' => ['Ziss', 'Ranger HD'], 'ZBOX-ID18' => ['Zotac', 'ZBOX ID18', DeviceType::DESKTOP], 'ZBOX-ID81' => ['Zotac', 'ZBOX ID81', DeviceType::DESKTOP], 'ZTE Libra' => ['ZTE', 'Libra'], 'ZTE LINK' => ['ZTE', 'Link'], 'ZTE T T9' => ['ZTE', 'Light Tab T9', DeviceType::TABLET], 'ZTE V7073' => ['ZTE', 'Light Tab V9', DeviceType::TABLET], 'V9' => ['ZTE', 'Light Tab V9', DeviceType::TABLET], 'ZTE V9' => ['ZTE', 'Light Tab V9', DeviceType::TABLET], 'V9S' => ['ZTE', 'Light Tab V9S', DeviceType::TABLET], 'ZTE V9A' => ['ZTE', 'Light Tab 2', DeviceType::TABLET], 'ZTE C V9E' => ['ZTE', 'Light Tab 2', DeviceType::TABLET], 'V9e' => ['ZTE', 'Light Tab 2', DeviceType::TABLET], 'V9e+' => ['ZTE', 'Light Tab 2', DeviceType::TABLET], 'V9A' => ['ZTE', 'Light Tab 2', DeviceType::TABLET], 'Light Tab 2' => ['ZTE', 'Light Tab 2', DeviceType::TABLET], 'Light Tab 2W' => ['ZTE', 'Light Tab 2W', DeviceType::TABLET], 'ZTE V7273' => ['ZTE', 'Light Tab 2W', DeviceType::TABLET], 'V9C' => ['ZTE', 'Light Tab 3', DeviceType::TABLET], 'A3' => ['ZTE', 'A3'], 'A4' => ['ZTE', 'A4'], 'ZTE Q2S-C' => ['ZTE', 'Q2S-C'], 'ZTE Q2S-T' => ['ZTE', 'Q2S-T'], 'ZTE Q5-T' => ['ZTE', 'Q5-T'], 'ZTE Q7' => ['ZTE', 'Q7'], 'ZTE Q7-C' => ['ZTE', 'Q7-C'], 'ZTE T12' => ['ZTE', 'T12'], 'ZTE T22' => ['ZTE', 'T22'], 'ZTE R22' => ['ZTE', 'R22'], 'ZTE V70' => ['ZTE', 'V70', DeviceType::TABLET], 'ZTE V72' => ['ZTE', 'V72', DeviceType::TABLET], 'ZTE V72A' => ['ZTE', 'V72A', DeviceType::TABLET], 'ZTE T80' => ['ZTE', 'T80'], 'ZTE T81' => ['ZTE', 'T81 Grand X LTE'], 'ZTE T82' => ['ZTE', 'T82 Grand X LTE'], 'ZTE T83' => ['ZTE', 'T83'], 'ZTE T86' => ['ZTE', 'T86'], 'ZTE K97' => ['ZTE', 'K97', DeviceType::TABLET], 'ZTE T T98' => ['ZTE', 'T98', DeviceType::TABLET], 'V55' => ['ZTE', 'Optik', DeviceType::TABLET], 'Acqua' => ['ZTE', 'Acqua'], 'ZTE Blade' => ['ZTE', 'Blade'], 'a5' => ['ZTE', 'Blade'], 'ZTE Blade 2' => ['ZTE', 'Blade 2'], 'BLADE III IL' => ['ZTE', 'Blade III'], 'ZTE Blade III Pro' => ['ZTE', 'Blade III Pro'], 'ZTE Blade Apex' => ['ZTE', 'Blade Apex'], 'ZTE Blade Apex2' => ['ZTE', 'Blade Apex2'], 'ZTE Blade A430' => ['ZTE', 'Blade A430'], 'ZTE Blade A450' => ['ZTE', 'Blade A450'], 'ZTE Blade A570' => ['ZTE', 'Blade A570'], 'ZTE BLADE C' => ['ZTE', 'Blade C'], 'ZTE Blade C2 Plus' => ['ZTE', 'Blade C2 Plus'], 'ZTE Blade C310' => ['ZTE', 'Blade C310'], 'ZTE Blade C341' => ['ZTE', 'Blade C341'], 'ZTE Blade G' => ['ZTE', 'Blade G'], 'Blade G LTE' => ['ZTE', 'Blade G'], 'ZTE Blade G Lux' => ['ZTE', 'Blade G Lux'], 'Blade G Lux' => ['ZTE', 'Blade G Lux'], 'ZTE Blade G2' => ['ZTE', 'Blade G2'], 'Blade G2' => ['ZTE', 'Blade G2'], 'ZTE Blade HN' => ['ZTE', 'Blade HN'], 'Blade Super' => ['ZTE', 'Blade Super'], 'Blade S' => ['ZTE', 'Blade S'], 'Crescent' => ['ZTE', 'Blade S'], 'ZTE Blade S6' => ['ZTE', 'Blade S6'], 'Blade S6' => ['ZTE', 'Blade S6'], 'Blade S6 Plus' => ['ZTE', 'Blade S6 Plus'], 'ZTE Blade S6 Plus' => ['ZTE', 'Blade S6 Plus'], 'ZTE Blade L2' => ['ZTE', 'Blade L2'], 'Blade L2' => ['ZTE', 'Blade L2'], 'Blade L2 Plus' => ['ZTE', 'Blade L2 Plus'], 'ZTE Blade L3' => ['ZTE', 'Blade L3'], 'Blade L3' => ['ZTE', 'Blade L3'], 'ZTE Blade L3 Lite' => ['ZTE', 'Blade L3 Lite'], 'Blade L5 Plus' => ['ZTE', 'Blade L5 Plus'], 'Blade Q' => ['ZTE', 'Blade Q'], 'ZTE Blade Q' => ['ZTE', 'Blade Q'], 'ZTE Blade Q Lux' => ['ZTE', 'Blade Q Lux'], 'Blade Q Lux' => ['ZTE', 'Blade Q Lux'], 'ZTE Blade Q Maxi' => ['ZTE', 'Blade Q Maxi'], 'Blade Q Maxi' => ['ZTE', 'Blade Q Maxi'], 'ZTE Blade Q Mini' => ['ZTE', 'Blade Q Mini'], 'ZTE Blade Q1' => ['ZTE', 'Blade Q1'], 'Blade S Lite' => ['ZTE', 'Blade S Lite'], 'Blade S6 Lite' => ['ZTE', 'Blade S6 Lite'], 'ZTE Blade V' => ['ZTE', 'Blade V'], 'ZTE Blade V2' => ['ZTE', 'Blade V2'], 'ZTE Blade V6' => ['ZTE', 'Blade V6'], 'Blade V6' => ['ZTE', 'Blade V6'], 'ZTE Blade V220' => ['ZTE', 'Blade V220'], 'Blade V880' => ['ZTE', 'Blade V880'], 'ZTE Blade Vec' => ['ZTE', 'Blade Vec'], 'ZTE Blade Vec 4G' => ['ZTE', 'Blade Vec'], 'ZTE Blade Vec Pro' => ['ZTE', 'Blade Vec Pro'], 'ZTE Geek' => ['ZTE', 'Geek'], 'ZTE 975' => ['ZTE', 'Geek'], 'ZTE Geek 2' => ['ZTE', 'Geek II'], 'ZTE Geek 2 LTE' => ['ZTE', 'Geek II'], 'ZTE GEEK II 4G' => ['ZTE', 'Geek II'], 'ZTE GEEK II Pro 4G' => ['ZTE', 'Geek II Pro'], 'ZTE Grand Memo' => ['ZTE', 'Grand Memo'], 'ZTE Grand Memo lite' => ['ZTE', 'Grand Memo Lite'], 'Grand Memo lite' => ['ZTE', 'Grand Memo Lite'], 'ZTE Grand S' => ['ZTE', 'Grand S'], 'ZTE Grand S lite' => ['ZTE', 'Grand S Lite'], 'Grand S Flex' => ['ZTE', 'Grand S Flex'], 'ZTE Grand S II' => ['ZTE', 'Grand S II'], 'ZTE Grand S II LTE' => ['ZTE', 'Grand S II'], 'ZTE Grand X Classic' => ['ZTE', 'Grand X Classic'], 'ZTE Grand X Quad' => ['ZTE', 'Grand X Quad'], 'Grand X Quad Lite' => ['ZTE', 'Grand X Quad Lite'], 'ZTE Grand X Quad Lite' => ['ZTE', 'Grand X Quad Lite'], 'Grand X2' => ['ZTE', 'Grand X2'], 'ZTE Grand X2' => ['ZTE', 'Grand X2'], 'ZTE Grand X 2' => ['ZTE', 'Grand X2'], 'ZTE Kis Q' => ['ZTE', 'Kis Q'], 'ZTE Kis Lite' => ['ZTE', 'Kis Lite'], 'ZTE KIS II Max' => ['ZTE', 'Kis 2 Max'], 'ZTE Kis II Max plus' => ['ZTE', 'Kis 2 Max Plus'], 'ZTE Kis 3' => ['ZTE', 'Kis 3'], 'ZTE Kis3 max' => ['ZTE', 'Kis 3 Max'], 'Skate' => ['ZTE', 'Skate'], 'ZTE Skate' => ['ZTE', 'Skate'], 'Skate Pro' => ['ZTE', 'Skate Pro'], 'ZTE Skate 2' => ['ZTE', 'Skate 2'], 'ZTE STAR' => ['ZTE', 'Star 1'], 'ZTE Star 1' => ['ZTE', 'Star 1'], 'ZTE Tureis' => ['ZTE', 'Tureis'], 'ZTE Q101T' => ['ZTE', 'Q101T'], 'ZTE S118' => ['ZTE', 'S118 Grand S Lite'], 'ZTE Q201T' => ['ZTE', 'Q201T'], 'ZTE S251' => ['ZTE', 'S251'], 'ZTE S291' => ['ZTE', 'S291 Grand S II'], 'ZTE Q301C' => ['ZTE', 'Q301C'], 'ZTE Q302C' => ['ZTE', 'Q302C'], 'X500' => ['ZTE', 'X500 Score'], 'ZTE X500' => ['ZTE', 'X500 Score'], 'ZTE C X500' => ['ZTE', 'X500 Score'], 'ZTE Q501T' => ['ZTE', 'Q501T'], 'ZTE Q501U' => ['ZTE', 'Q501U'], 'ZTE Q503U' => ['ZTE', 'Q503U'], 'ZTE Q505T' => ['ZTE', 'Q505T'], 'ZTE Q507T' => ['ZTE', 'Q507T'], 'ZTE Q508U' => ['ZTE', 'Q508U'], 'ZTE Q509T' => ['ZTE', 'Q509T'], 'ZTE Q529C' => ['ZTE', 'Q529C'], 'ZTE Q529E' => ['ZTE', 'Q529E'], 'ZTE Q529T' => ['ZTE', 'Q529T'], 'ZTE C N600!' => ['ZTE', 'N600'], 'ZTE C N606' => ['ZTE', 'N606'], 'Z660G' => ['ZTE', 'Z660 Wirl'], 'Z665C' => ['ZTE', 'Z665 Valet'], 'Z667' => ['ZTE', 'Z667 Prelude 2'], 'ZTE Z667' => ['ZTE', 'Z667 Prelude 2'], 'ZTE Z667G' => ['ZTE', 'Z667 Wirl 2'], 'Z667G' => ['ZTE', 'Z667 Wirl 2'], 'Z667T' => ['ZTE', 'Z667 Zinger'], 'ZTE Z669' => ['ZTE', 'Z669 Prelude 2'], 'ZTE C N700' => ['ZTE', 'N700'], 'ZTE Q701C' => ['ZTE', 'Q701C'], 'ZTE Q705U' => ['ZTE', 'Q705U'], 'ZTE G717C' => ['ZTE', 'G717C'], 'ZTE G718C' => ['ZTE', 'G718C'], 'ZTE G719C' => ['ZTE', 'G719C'], 'ZTE G720C' => ['ZTE', 'G720C'], 'ZTE G720T' => ['ZTE', 'G720T'], 'ZTE U N720' => ['ZTE', 'N720'], 'ZTE U N721' => ['ZTE', 'N721'], 'ZTE G721C' => ['ZTE', 'G721 Star 3'], 'ZTE P727A' => ['ZTE', 'P722A'], 'Z730' => ['ZTE', 'Z730 Concord II'], 'Z740' => ['ZTE', 'Z740 Radiant'], 'ZTE Z740' => ['ZTE', 'Z740 Radiant'], 'Z740G' => ['ZTE', 'Z740 Sonata 4G'], 'ZTE Z740G' => ['ZTE', 'Z740 Sonata 4G'], 'ZTE C R750' => ['ZTE', 'R750'], 'ZTE C R750+' => ['ZTE', 'R750'], 'Z750C' => ['ZTE', 'Z750 Savvy'], 'Z752C' => ['ZTE', 'Z752 Zephyr'], 'Z753G' => ['ZTE', 'Z753 Paragon'], 'ZTE Z753G' => ['ZTE', 'Z753 Paragon'], 'ZTE Z755' => ['ZTE', 'Z755'], 'ZTE C N760' => ['ZTE', 'N760'], 'ZTE U V760' => ['ZTE', 'V760'], 'N762' => ['ZTE', 'N762'], 'ZTE LEO M1' => ['ZTE', 'LEO M1'], 'ZTE LEO S1' => ['ZTE', 'LEO S1'], 'ZTE LEO Q1' => ['ZTE', 'LEO Q1'], 'ZTE V765M' => ['ZTE', 'LEO Q1'], 'ZTE V768' => ['ZTE', 'V768 Concord'], 'Z768G' => ['ZTE', 'Z768'], 'ZTE V769M' => ['ZTE', 'LEO Q2'], 'Z777' => ['ZTE', 'Z777 Grand X'], 'ZTE Z777' => ['ZTE', 'Z777 Grand X'], 'ZTE C N780' => ['ZTE', 'N780'], 'Z787' => ['ZTE', 'Z787'], 'ZTE Z787' => ['ZTE', 'Z787'], 'ZTE N788' => ['ZTE', 'N788'], 'ZTE Kis Pro' => ['ZTE', 'V788 Kis'], 'ZTE V788!' => ['ZTE', 'V788 Kis'], 'ZTE U788!' => ['ZTE', 'U788 Kis'], 'Z788G' => ['ZTE', 'Z788'], 'ZTE N789' => ['ZTE', 'N789'], 'ZTE B790' => ['ZTE', 'B790'], 'ZTE N790!' => ['ZTE', 'N790'], 'ZTE T790' => ['ZTE', 'T790'], 'ZTE U790' => ['ZTE', 'U790'], 'ZTE V790' => ['ZTE', 'V790'], 'ZTE U791!' => ['ZTE', 'U791'], 'ZTE V791' => ['ZTE', 'V791'], 'Z791G' => ['ZTE', 'Z791G'], 'ZTE Z791G' => ['ZTE', 'Z791G'], 'Z792' => ['ZTE', 'Z792'], 'ZTE U793' => ['ZTE', 'U793'], 'ZTE V793' => ['ZTE', 'V793'], 'ZTE B795' => ['ZTE', 'B795'], 'ZTE N795' => ['ZTE', 'N795'], 'ZTE U795!' => ['ZTE', 'U795'], 'ZTE V795' => ['ZTE', 'V795'], 'Z795G' => ['ZTE', 'Z795 Solar'], 'Z796C' => ['ZTE', 'Z796'], 'Z797C' => ['ZTE', 'Z797'], 'ZTE N798!' => ['ZTE', 'N798'], 'ZTE N799!' => ['ZTE', 'N799'], 'N799D' => ['ZTE', 'N799'], 'N800' => ['ZTE', 'N800 Awe'], 'ZTE Q801L' => ['ZTE', 'Q801L'], 'ZTE Q801U' => ['ZTE', 'Q801U'], 'ZTE T U802' => ['ZTE', 'U802'], 'ZTE Q802C' => ['ZTE', 'Q802C'], 'ZTE Q802D' => ['ZTE', 'Q802D'], 'ZTE Q802T' => ['ZTE', 'Q802T'], 'ZTE Q805T' => ['ZTE', 'Q805T'], 'ZTE T U805' => ['ZTE', 'U805'], 'RacerII' => ['ZTE', 'U806 Racer II'], 'ZTE T U806' => ['ZTE', 'U806 Racer II'], 'ZTE N807' => ['ZTE', 'N807'], 'ZTE U807' => ['ZTE', 'U807'], 'ZTE U807N' => ['ZTE', 'U807'], 'ZTE V807' => ['ZTE', 'V807 Blade C'], 'ZTE U808' => ['ZTE', 'U808'], 'ZTE U809' => ['ZTE', 'U809'], 'ZTE V809' => ['ZTE', 'V809 Blade C2'], 'E810' => ['ZTE', 'E810'], 'N810' => ['ZTE', 'N810 Reef'], 'ZTE V811' => ['ZTE', 'V811'], 'ZTE V811W' => ['ZTE', 'V811'], 'ZTE Z812' => ['ZTE', 'Z812 Maven'], 'ZTE V815W' => ['ZTE', 'V815'], 'ZTE T U812' => ['ZTE', 'U812'], 'ZTE Z813' => ['ZTE', 'Z813'], 'ZTE V816W' => ['ZTE', 'V816W'], 'ZTE U817' => ['ZTE', 'U817'], 'ZTE V817' => ['ZTE', 'V817'], 'ZTE N818' => ['ZTE', 'N818'], 'ZTE U818' => ['ZTE', 'U818'], 'ZTE V818' => ['ZTE', 'V818'], 'Z818L' => ['ZTE', 'Z818 Allstar'], 'ZTE U819' => ['ZTE', 'U819'], 'Z819L' => ['ZTE', 'Z819L'], 'ZTE GV821' => ['ZTE', 'V821'], 'ZTE V829' => ['ZTE', 'V829'], 'ZTE T U830' => ['ZTE', 'U830'], 'ZTE V830W' => ['ZTE', 'Blade G Lux'], 'ZTE Z830' => ['ZTE', 'Z830'], 'ZTE Racer' => ['ZTE', 'X850 Racer'], 'Racer' => ['ZTE', 'X850 Racer'], 'ZTE U X850' => ['ZTE', 'X850 Racer'], 'ZTE X850' => ['ZTE', 'X850 Racer'], 'ZTE U V852' => ['ZTE', 'V852 Dreamer'], 'ZTE N855D' => ['ZTE', 'N855D'], 'ZTE N855D+' => ['ZTE', 'N855D'], 'ZTE U V856' => ['ZTE', 'V856 Mimosa Mini'], 'ZTE V856' => ['ZTE', 'V856 Mimosa Mini'], 'ZTE U V857' => ['ZTE', 'V857'], 'ZTE U V859' => ['ZTE', 'V859'], 'ZTE-U V859' => ['ZTE', 'V859'], 'N860' => ['ZTE', 'N860 Warp'], 'N861' => ['ZTE', 'N861 Warp II'], 'V865M' => ['ZTE', 'V865'], 'ZTE U? X876!' => ['ZTE', 'X876 Raise'], 'ZTE X876' => ['ZTE', 'X876 Raise'], 'ZTE V877!' => ['ZTE', 'V877'], 'ZTE U879' => ['ZTE', 'U879'], 'ZTE A880' => ['ZTE', 'Xiaoxian'], 'ZTE B880' => ['ZTE', 'B880'], 'N880' => ['ZTE', 'N880 Blade'], 'ZTE C N880!' => ['ZTE', 'N880 Blade'], 'ZTE R880H' => ['ZTE', 'R880H'], 'U880' => ['ZTE', 'U880 Blade'], 'ZTE ?U880!' => ['ZTE', 'U880 Blade'], 'ZTE T ?U880!' => ['ZTE', 'U880 Blade'], 'U880E' => ['ZTE', 'U880 Blade'], 'U880s' => ['ZTE', 'U880 Blade'], 'V880' => ['ZTE', 'V880 Blade'], 'ZTE (U )?V880!' => ['ZTE', 'V880 Blade'], 'ZTE U(V)880+' => ['ZTE', 'V880 Blade'], 'Blade(-V880|-opda)?$!' => ['ZTE', 'V880 Blade'], 'ZTE U-V880' => ['ZTE', 'V880 Blade'], 'ZTE U V-880' => ['ZTE', 'V880 Blade'], 'ZTE N880E!' => ['ZTE', 'N880E'], 'ZTE N880F' => ['ZTE', 'N880F'], 'ZTE N880G' => ['ZTE', 'N880G'], 'ZTE N881E' => ['ZTE', 'N881E'], 'ZTE N881F' => ['ZTE', 'N881F'], 'BLADEII' => ['ZTE', 'V881 Blade II'], 'Blade2' => ['ZTE', 'V881 Blade II'], 'ZTE U V881' => ['ZTE', 'V881 Blade II'], 'ZTE V881' => ['ZTE', 'V881 Blade II'], 'ZTE V882' => ['ZTE', 'V882'], 'ZTE N882E' => ['ZTE', 'N882E'], 'ZTE ?U885!' => ['ZTE', 'U885'], 'ZTE U887' => ['ZTE', 'U887'], 'ZTE V887' => ['ZTE', 'V887'], 'ZTE U889' => ['ZTE', 'U889'], 'ZTE V889!' => ['ZTE', 'V889'], 'ZTE U V889D' => ['ZTE', 'V889D'], 'ZTE Blade III' => ['ZTE', 'V889M Blade III'], 'Blade III' => ['ZTE', 'V889M Blade III'], 'ZTE N900' => ['ZTE', 'N900'], 'ZTE N900D' => ['ZTE', 'N900'], 'ZTE T ?U900!' => ['ZTE', 'U900'], 'ZTE M901C' => ['ZTE', 'M901 Grand Memo 2'], 'MEM02' => ['ZTE', 'M901 Grand Memo 2'], 'ZTE N909' => ['ZTE', 'N909'], 'ZTE N909D' => ['ZTE', 'N909'], 'ZTE N910' => ['ZTE', 'N910 Anthem'], 'ZTE N919' => ['ZTE', 'N919'], 'ZTE N919D' => ['ZTE', 'N919'], 'ZTE C X920' => ['ZTE', 'X920'], 'ZXY-ZTE-C X920' => ['ZTE', 'X920'], 'ZTE U930!' => ['ZTE', 'U930 Grand X'], 'ZTE Grand X' => ['ZTE', 'U930 Grand X'], 'Grand X' => ['ZTE', 'U930 Grand X'], 'Grand X In' => ['ZTE', 'U930 Grand X IN'], 'Grand X Intel' => ['ZTE', 'U930 Grand X IN'], 'ZTE U930 Ultimate' => ['ZTE', 'U930 Grand X'], 'ZTE U930HD' => ['ZTE', 'U930 HD'], 'Z930L' => ['ZTE', 'Z930 Unico'], 'Z932L' => ['ZTE', 'Z932 Rapido'], 'Z936L' => ['ZTE', 'Z936 Lever'], 'ZTE U935' => ['ZTE', 'U935'], 'ZTE U950' => ['ZTE', 'U950'], 'ZTE V955' => ['ZTE', 'V955'], 'ZTE Z955L' => ['ZTE', 'Z955L'], 'ZTE U956' => ['ZTE', 'U956'], 'ZTE V956' => ['ZTE', 'V956'], 'ZTE Z958' => ['ZTE', 'Z958 Zmax 2'], 'ZTE N960' => ['ZTE', 'N960'], 'ZTE (U )?V960!' => ['ZTE', 'V960 Skate'], 'ZTE T ?U960!' => ['ZTE', 'U960 Skate'], 'ZTE U960E' => ['ZTE', 'U960E'], 'ZTE U960s2' => ['ZTE', 'U960s2'], 'ZTE U960s3' => ['ZTE', 'U960s3'], 'ZTE V965' => ['ZTE', 'V965'], 'ZTE V967S' => ['ZTE', 'V967'], 'ZTEv967s' => ['ZTE', 'V967'], 'ZTE U968' => ['ZTE', 'U968'], 'ZTE U969' => ['ZTE', 'U969'], 'ZTE N970' => ['ZTE', 'N970 Grand X'], 'ZTE U970!' => ['ZTE', 'U970 Grand X'], 'ZTE V970!' => ['ZTE', 'V970 Grand X'], 'ZTE Mimosa X' => ['ZTE', 'V970 Grand X'], 'Z970' => ['ZTE', 'Z970'], 'ZTE V975' => ['ZTE', 'V975 Geek'], 'ZTE N980' => ['ZTE', 'N980'], 'ZTE N983' => ['ZTE', 'N983'], 'ZTE V983' => ['ZTE', 'V983 Grand X Pro'], 'Grand X Pro' => ['ZTE', 'V983 Grand X Pro'], 'ZTE Grand Era' => ['ZTE', 'U985 Grand Era'], 'ZTE U985' => ['ZTE', 'U985 Grand Era'], 'ZTE V985' => ['ZTE', 'V985 Grand Era'], 'N986' => ['ZTE', 'N986'], 'ZTE N986' => ['ZTE', 'N986'], 'ZTE V ?987!' => ['ZTE', 'V987'], 'Z987' => ['ZTE', 'Z987'], 'ZTE Z987' => ['ZTE', 'Z987'], 'ZTE U988S' => ['ZTE', 'U988S Geek'], 'ZTE V988' => ['ZTE', 'V988 Grand S'], 'ZTE Grand S' => ['ZTE', 'V988 Grand S'], 'ZTE Roamer' => ['ZTE', 'Z990 Roamer '], 'ZTE Z990!' => ['ZTE', 'Z990 Roamer'], 'ZTE Z992' => ['ZTE', 'Z992 Avail 2'], 'ZTE Z993' => ['ZTE', 'Z993 Prelude'], 'ZTE Z995' => ['ZTE', 'Z995 Overture'], 'ZTE V998' => ['ZTE', 'V998 Grand S'], 'ZTE Z998' => ['ZTE', 'Z998'], 'V8000 USA Cricket' => ['ZTE', 'V8000 Engage'], 'V8110' => ['ZTE', 'V8110'], 'X500 USA General' => ['ZTE', 'X500 Score'], 'X501 USA Cricket' => ['ZTE', 'X501 Groove'], 'X501 USA RS' => ['ZTE', 'X501 Groove'], 'ZXY-ZTE V6700' => ['ZTE', 'V6700'], 'ZTE V9800' => ['ZTE', 'V9800 Grand Era LTE'], 'ZTE U9810' => ['ZTE', 'U9810'], 'ZTE U9815' => ['ZTE', 'U9815 Grand Memo'], 'ZTE V9815' => ['ZTE', 'V9815 Grand Memo'], 'ZTE Grand Memo LTE' => ['ZTE', 'V9815 Grand Memo'], 'ZTE V9820' => ['ZTE', 'V9820'], 'N8000' => ['ZTE', 'N8000 Engage LT'], 'N8000 USA Cricket' => ['ZTE', 'N8000 Engage LT'], 'N8000 USA RS' => ['ZTE', 'N8000 Engage LT'], 'N8000 WHTE CKT' => ['ZTE', 'N8000 Engage LT'], 'ZXY-ZTE N8010' => ['ZTE', 'N8010'], 'ZXY-ZTE N8300' => ['ZTE', 'N8300'], 'N9100' => ['ZTE', 'N9100 Force'], 'N9101' => ['ZTE', 'N9101 Imperial'], 'ZTE N9120' => ['ZTE', 'N9120 Avid'], 'N9130' => ['ZTE', 'N9130 Speed'], 'N9180' => ['ZTE', 'N9180 Red Bull V5'], 'N9500' => ['ZTE', 'N9500 Flash'], 'N9510' => ['ZTE', 'N9510 Warp'], 'ZTE N9511' => ['ZTE', 'N9511 Fury'], 'N9515' => ['ZTE', 'N9515'], 'N9520' => ['ZTE', 'N9520 Stormer'], 'N9810' => ['ZTE', 'N9810 Vital'], 'N9835' => ['ZTE', 'N9835 Grand S Pro'], 'N958St' => ['ZTE', 'Nubia V5 Max'], 'NX40X' => ['ZTE', 'Nubia Z5 mini'], 'NX40X APT' => ['ZTE', 'Nubia Z5 mini'], 'NX402' => ['ZTE', 'Nubia Z5 mini'], 'NX403A' => ['ZTE', 'Nubia Z5 mini'], 'NX404H' => ['ZTE', 'Nubia Z5s mini'], 'NX405H' => ['ZTE', 'Nubia Z5s mini'], 'NX501' => ['ZTE', 'Nubia Z5'], 'NX50X' => ['ZTE', 'Nubia Z5'], 'nubia Z5' => ['ZTE', 'Nubia Z5'], 'NX503' => ['ZTE', 'Nubia Z5s'], 'NX503A' => ['ZTE', 'Nubia Z5s'], 'NX503J' => ['ZTE', 'Nubia Z5s'], 'ZTE Nubia Z7' => ['ZTE', 'Nubia Z7'], 'NX505J' => ['ZTE', 'Nubia Z7 Max'], 'NX506J' => ['ZTE', 'Nubia Z7'], 'NX507H' => ['ZTE', 'Nubia Z7 mini'], 'NX507J' => ['ZTE', 'Nubia Z7 mini'], 'NX508J' => ['ZTE', 'Nubia Z9'], 'NX510J' => ['ZTE', 'Nubia Z9 Max'], 'NX511J' => ['ZTE', 'Nubia Z9 mini'], 'NX512J' => ['ZTE', 'Nubia Z9 Max'], 'ZXY-NX512J' => ['ZTE', 'Nubia Z9 Max'], 'NX513J' => ['ZTE', 'Nubia My Prague'], 'ZTE Nubia X6' => ['ZTE', 'Nubia X6'], 'NX601J' => ['ZTE', 'Nubia X6'], 'ZTE N5' => ['ZTE', 'N5 Grand Memo'], 'ZTE N5L' => ['ZTE', 'N5L Grand Memo'], 'ZTE N5S' => ['ZTE', 'N5S Grand Memo'], 'ZTE U5' => ['ZTE', 'U5 Grand Memo'], 'ZTE U5S' => ['ZTE', 'U5S Grand Memo'], 'ZTE V5S' => ['ZTE', 'V5S Grand Memo'], 'N918St' => ['ZTE', 'V5S Grand Memo'], 'ZTE T81' => ['ZTE', 'Fronteer 4G'], '003Z' => ['ZTE', 'Libero 003Z', 'carrier' => 'Softbank'], '008Z' => ['ZTE', 'シンプルスマートフォン 008Z', 'carrier' => 'Softbank'], '009Z' => ['ZTE', 'STAR7 009Z', 'carrier' => 'Softbank'], 'ZTE A2015' => ['ZTE', 'A2015'], 'ZTE A2016' => ['ZTE', 'A2016'], 'ZTE B2015' => ['ZTE', 'B2015'], 'ZTE C2016' => ['ZTE', 'C2016'], 'ZTE STAR' => ['ZTE', 'Star 1'], 'ZTE S2004' => ['ZTE', 'Tianji 3'], 'ZTE S2005' => ['ZTE', 'Star 2'], 'ZTE S2010' => ['ZTE', 'S2010'], '402ZT' => ['ZTE', 'Blade Q+ 402ZT', 'carrier' => 'Softbank'], '502ZT' => ['ZTE', 'Spro 2 502ZT', 'carrier' => 'Softbank'], 'ZA950' => ['Zonda', 'Mega 5.0 ZA950'], '(Zopo )?ZP100!' => ['Zopo', 'ZP100 Pilot'], 'ZP200' => ['Zopo', 'ZP200 Shining'], 'ZP200+' => ['Zopo', 'ZP200+ Shining'], 'ZP300' => ['Zopo', 'ZP300 Field'], 'ZP300S' => ['Zopo', 'ZP300 Field'], 'Zopo zp300' => ['Zopo', 'ZP300 Field'], 'Zopo ZP300+' => ['Zopo', 'ZP300 Field Plus'], 'ZP300+' => ['Zopo', 'ZP300 Field Plus'], 'ZP330' => ['Zopo', 'ZP330 Color C'], 'ZP500' => ['Zopo', 'ZP500 Libero'], 'ZP500S' => ['Zopo', 'ZP500 Libero'], 'ZP500+' => ['Zopo', 'ZP500 Libero Plus'], 'ZP520' => ['Zopo', 'ZP520'], 'ZP530' => ['Zopo', 'ZP530 Touch'], 'ZP580' => ['Zopo', 'ZP580'], 'ZP600 EX' => ['Zopo', 'ZP600 Libero EX'], 'ZP600+' => ['Zopo', 'ZP600 Libero Plus'], 'ZP700' => ['Zopo', 'ZP700 Cuppy'], 'ZP780' => ['Zopo', 'ZP780'], 'ZP800' => ['Zopo', 'ZP800 Libero HD'], 'ZP800H' => ['Zopo', 'ZP800 Libero HD'], 'ZP810' => ['Zopo', 'ZP810'], 'ZP810H DUAL SIM' => ['Zopo', 'ZP810'], 'ZP820' => ['Zopo', 'ZP820 Raiden'], '(Zopo )?ZP900!' => ['Zopo', 'ZP900 Leader'], 'ZP 900H' => ['Zopo', 'ZP900 Leader'], 'ZOPO 900H' => ['Zopo', 'ZP900 Leader'], 'ZP908' => ['Zopo', 'ZP908 Leader'], 'ZP910' => ['Zopo', 'ZP910 Leader'], 'ZP920' => ['Zopo', 'ZP920 Magic'], 'ZP950' => ['Zopo', 'ZP950 Leader Max'], 'ZP950H' => ['Zopo', 'ZP950 Leader Max'], 'ZP950H DUAL SIM' => ['Zopo', 'ZP950 Leader Max'], 'ZP950+' => ['Zopo', 'ZP950+ Leader Max'], 'ZP958' => ['Zopo', 'ZP958 Leader Max'], 'C2' => ['Zopo', 'ZP960 C2'], 'ZOPO C2' => ['Zopo', 'ZP960 C2'], 'ZP980' => ['Zopo', 'ZP980'], 'Zopo 980' => ['Zopo', 'ZP980'], 'Zopo ZP980' => ['Zopo', 'ZP980'], 'ZP980+' => ['Zopo', 'ZP980+'], 'ZP980 PLUS' => ['Zopo', 'ZP980+'], 'ZOPO ZP980+' => ['Zopo', 'ZP980+'], 'ZP990' => ['Zopo', 'ZP990 Captain S'], 'ZP990+' => ['Zopo', 'ZP990+'], 'ZP998' => ['Zopo', 'ZP998 C2 II'], 'ZOPO ZP998' => ['Zopo', 'ZP998 C2 II'], 'ZP999' => ['Zopo', 'ZP999 Lion Heart'], 'ZUK Z1' => ['ZUK', 'Z1'], 'ZA966' => ['Zyrex', 'OneScribe ZA966'], 'ZA985' => ['Zyrex', 'OneScribe ZA985'], '9020[A]!' => ['AT&T', 'Trek HD', DeviceType::TABLET], 'BASE Lutea 2' => ['BASE', 'Lutea 2'], 'BASE Lutea 3' => ['BASE', 'Lutea 3'], 'BASE Varia' => ['BASE', 'Varia'], 'BASE Tab' => ['BASE', 'TAB', DeviceType::TABLET], 'BASE Tab 7.1' => ['BASE', 'TAB 7-1', DeviceType::TABLET], 'Beeline Pro 2' => ['Beeline', 'Pro 2'], 'Beeline Pro 3' => ['Beeline', 'Pro 3'], 'Beeline Smart' => ['Beeline', 'Smart'], 'Beeline Smart2' => ['Beeline', 'Smart2'], 'Beeline Smart 2' => ['Beeline', 'Smart2'], 'Beeline Smart 3' => ['Beeline', 'Smart3'], 'Beeline Smart 4' => ['Beeline', 'Smart4'], 'Beeline Smart 5' => ['Beeline', 'Smart5'], 'Beeline E300' => ['Beeline', 'E300'], 'Beeline E400' => ['Beeline', 'E400'], 'Beeline E600' => ['Beeline', 'E600'], 'Beeline M2' => ['Beeline', 'M2', DeviceType::TABLET], 'Beeline Tab' => ['Beeline', 'Tab', DeviceType::TABLET], 'Beeline Tab 2' => ['Beeline', 'Tab 2', DeviceType::TABLET], 'Beeline Tab Fast' => ['Beeline', 'Tab Fast', DeviceType::TABLET], 'Beeline Tab Pro' => ['Beeline', 'Tab Pro', DeviceType::TABLET], 'Bouygues Telecom Bs 351' => ['Bouygues', 'Bs 351'], 'Bouygues Telecom Bs 402' => ['Bouygues', 'Bs 402'], 'Bouygues Telecom Bs 403' => ['Bouygues', 'Bs 403'], 'Bouygues Telecom Bs 451' => ['Bouygues', 'Bs 451'], 'Bs 451' => ['Bouygues', 'Bs 451'], 'Bs 501' => ['Bouygues', 'Bs 501'], 'Bs541' => ['Bouygues', 'Bs 541'], 'Ultym 5' => ['Bouygues', 'Ultym 5'], 'Ultym 5L' => ['Bouygues', 'Ultym 5L'], 'Ultym 5.2' => ['Bouygues', 'Ultym 5.2'], 'dtab01' => ['DoCoMo', 'dtab', DeviceType::TABLET], 'Etisalat Smartphone' => ['Etisalat', 'Smartphone'], 'i-mobile i651' => ['i-Mobile', 'i651'], 'i-mobile 697' => ['i-Mobile', 'i679'], 'i-mobile i691' => ['i-Mobile', 'i691'], 'i-mobile i692' => ['i-Mobile', 'i692'], 'i-mobile i693' => ['i-Mobile', 'i693'], 'i-mobile i695' => ['i-Mobile', 'i695'], 'i-mobile i698' => ['i-Mobile', 'i698'], 'i-mobile i810' => ['i-Mobile', 'i810'], 'i-mobile i858' => ['i-Mobile', 'i858'], 'i-mobile i858 Plus' => ['i-Mobile', 'i858 Plus'], 'i-mobile 3G 8500' => ['i-Mobile', '3G 8500'], 'i-mobile IQ 1' => ['i-Mobile', 'iQ 1'], 'i-mobile IQ1-1' => ['i-Mobile', 'iQ 1.1'], 'I-mobile IQ1-1A' => ['i-Mobile', 'iQ 1.1A'], 'i-mobile IQ 2' => ['i-Mobile', 'iQ 2'], 'i-mobile IQ II' => ['i-Mobile', 'iQ 2'], 'i-mobile IQ 2A' => ['i-Mobile', 'iQ 2A'], 'i-mobile IQ 3' => ['i-Mobile', 'iQ 3'], 'I-mobile IQ 4' => ['i-Mobile', 'iQ 4'], 'i-mobile IQ 5' => ['i-Mobile', 'iQ 5'], 'i-mobile IQ 5A' => ['i-Mobile', 'iQ 5A'], 'i-mobile IQ 5.1' => ['i-Mobile', 'iQ 5.1'], 'i-mobile IQ 5.1A' => ['i-Mobile', 'iQ 5.1A'], 'i-mobile IQ5.1 Pro' => ['i-Mobile', 'iQ 5.1 Pro'], 'i-mobile IQ5.1A Pro' => ['i-Mobile', 'iQ 5.1A Pro'], 'i-mobile IQ 5.3' => ['i-Mobile', 'iQ 5.3'], 'i-mobile IQ 5.5' => ['i-Mobile', 'iQ 5.5'], 'IQ 5.5' => ['i-Mobile', 'iQ 5.5'], 'IQ 5.6' => ['i-Mobile', 'iQ 5.6'], 'IQ 5.6A' => ['i-Mobile', 'iQ 5.6A'], 'i-mobile IQ 5.7' => ['i-Mobile', 'iQ 5.7'], 'i-mobile IQ 5.8 DTV' => ['i-Mobile', 'iQ 5.8 DTV'], 'i-mobile IQ 6' => ['i-Mobile', 'iQ 6'], 'i-mobile IQ 6A' => ['i-Mobile', 'iQ 6A'], 'i-mobile IQ 6.1' => ['i-Mobile', 'iQ 6.1'], 'i-mobile IQ 6.2' => ['i-Mobile', 'iQ 6.2'], 'i-mobile IQ6.3' => ['i-Mobile', 'iQ 6.3'], 'i-mobile IQ6.6' => ['i-Mobile', 'iQ 6.6'], 'i-mobile IQ 6.9 DTV' => ['i-Mobile', 'iQ 6.9 DTV'], 'i-mobile IQ 9' => ['i-Mobile', 'iQ 9'], 'i-mobile IQ 9A' => ['i-Mobile', 'iQ 9A'], 'IQ9.1' => ['i-Mobile', 'iQ 9.1'], 'i-mobile IQ 9.2' => ['i-Mobile', 'iQ 9.2'], 'i-mobile IQ 9.2A' => ['i-Mobile', 'iQ 9.2A'], 'i-mobile IQ X' => ['i-Mobile', 'iQ X'], 'i-mobile IQ X zeen' => ['i-Mobile', 'iQ X Zeen'], 'i-mobile IQ XA' => ['i-Mobile', 'iQ XA'], 'i-mobile IQ X2' => ['i-Mobile', 'iQ X2'], 'i-mobile IQ X3' => ['i-Mobile', 'iQ X3'], 'i-mobile IQ X3A' => ['i-Mobile', 'iQ X3A'], 'i-mobile IQ BIG' => ['i-Mobile', 'iQ Big'], 'i-mobile IQX BLIZ!' => ['i-Mobile', 'iQ X Bliz'], 'i-mobile IQ 1068' => ['i-Mobile', 'iQ 1068'], 'i-STYLE 1' => ['i-Mobile', 'i-Style 1'], 'i-mobile i-STYLE 1' => ['i-Mobile', 'i-Style 1'], 'I-STYLE 1 I' => ['i-Mobile', 'i-Style 1i'], 'i-mobile i-STYLE 1 i' => ['i-Mobile', 'i-Style 1i'], 'i-mobile i-STYLE 2' => ['i-Mobile', 'i-Style 2'], 'i-mobile i-STYLE 2i' => ['i-Mobile', 'i-Style 2i'], 'i-STYLE2.1' => ['i-Mobile', 'i-Style 2.1'], 'i-STYLE2.1A' => ['i-Mobile', 'i-Style 2.1A'], 'i-mobile i-STYLE 2.2' => ['i-Mobile', 'i-Style 2.2'], 'i-mobile i-style 2.3' => ['i-Mobile', 'i-Style 2.3'], 'i-mobile i-style 2.3A' => ['i-Mobile', 'i-Style 2.3A'], 'i-mobile i-STYLE 2.4' => ['i-Mobile', 'i-Style 2.4'], 'i-mobile i-STYLE 2.5' => ['i-Mobile', 'i-Style 2.5'], 'i-mobile i-style 2.6' => ['i-Mobile', 'i-Style 2.6'], 'i-mobile i-style 2.6A' => ['i-Mobile', 'i-Style 2.6A'], 'i-mobile i-STYLE 2.9' => ['i-Mobile', 'i-Style 2.9'], 'i-mobile i-style 3' => ['i-Mobile', 'i-Style 3'], 'i-mobile i-style 3i' => ['i-Mobile', 'i-Style 3i'], 'i-mobile i-STYLE 4' => ['i-Mobile', 'i-Style 4'], 'i-style 4' => ['i-Mobile', 'i-Style 4'], 'i-mobile i-STYLE 4i' => ['i-Mobile', 'i-Style 4i'], 'i-MOBILE i-STYLE 5' => ['i-Mobile', 'i-Style 5'], 'i-MOBILE i-STYLE 5i' => ['i-Mobile', 'i-Style 5i'], 'i-mobile i-STYLE 6' => ['i-Mobile', 'i-Style 6'], 'i-mobile i-STYLE 6A' => ['i-Mobile', 'i-Style 6A'], 'i-mobile i-STYLE 7' => ['i-Mobile', 'i-Style 7'], 'i-mobile i-STYLE 7A' => ['i-Mobile', 'i-Style 7A'], 'i-mobile i-style 7.1' => ['i-Mobile', 'i-Style 7.1'], 'i-mobile i-STYLE 7.2' => ['i-Mobile', 'i-Style 7.2'], 'i-mobile i-STYLE 7.3' => ['i-Mobile', 'i-Style 7.3'], 'i-mobile i-STYLE 7.3A' => ['i-Mobile', 'i-Style 7.3A'], 'i-mobile i-STYLE 7.5' => ['i-Mobile', 'i-Style 7.5'], 'i-mobile i-STYLE 7.5A' => ['i-Mobile', 'i-Style 7.5A'], 'i-STYLE 7.6' => ['i-Mobile', 'i-Style 7.6'], 'i-mobile i-STYLE 7.7 DTV' => ['i-Mobile', 'i-Style 7.7 DTV'], 'i-mobile i-STYLE 7.8 DTV' => ['i-Mobile', 'i-Style 7.8 DTV'], 'i-mobile i-style 8' => ['i-Mobile', 'i-Style 8'], 'i-mobile i-STYLE 8.1' => ['i-Mobile', 'i-Style 8.1'], 'i-mobile i-STYLE 8.2' => ['i-Mobile', 'i-Style 8.2'], 'i-mobile i-STYLE 8.2A' => ['i-Mobile', 'i-Style 8.2A'], 'i-mobile i-STYLE 8.3 DTV' => ['i-Mobile', 'i-Style 8.3 DTV'], 'i-mobile i-STYLE 8.6 DTV' => ['i-Mobile', 'i-Style 8.6 DTV'], 'i-mobile i-STYLE 210' => ['i-Mobile', 'i-Style 210'], 'i-mobile i-STYLE 215' => ['i-Mobile', 'i-Style 215'], 'i-mobile I-STYLE 217' => ['i-Mobile', 'i-Style 217'], 'i-mobile i-STYLE 218' => ['i-Mobile', 'i-Style 218'], 'i-mobile i-style Q1' => ['i-Mobile', 'i-Style Q1'], 'I-mobile I-style Q1i' => ['i-Mobile', 'i-Style Q1i'], 'i-mobile i-STYLE Q2' => ['i-Mobile', 'i-Style Q2'], 'i-mobile i-STYLE Q2 DUO' => ['i-Mobile', 'i-Style Q2 Duo'], 'i-STYLE Q2 DUO!' => ['i-Mobile', 'i-Style Q2 Duo'], 'i-mobile i-style Q3' => ['i-Mobile', 'i-Style Q3'], 'i-mobile i-style Q3i' => ['i-Mobile', 'i-Style Q3i'], 'i-STYLE Q4' => ['i-Mobile', 'i-Style Q4'], 'i-STYLE Q4A' => ['i-Mobile', 'i-Style Q4A'], 'i-mobile i-STYLE Q 5' => ['i-Mobile', 'i-Style Q5'], 'i-mobile i-STYLE Q 5A' => ['i-Mobile', 'i-Style Q5A'], 'i-mobile i-STYLE Q6' => ['i-Mobile', 'i-Style Q6'], 'i-mobile i-STYLE Q6A' => ['i-Mobile', 'i-Style Q6A'], 'i-mobile I-Note' => ['i-Mobile', 'i-Note', DeviceType::TABLET], 'I-note WiFi 1.1' => ['i-Mobile', 'i-Note', DeviceType::TABLET], 'i-mobile i-note WiFi' => ['i-Mobile', 'i-Note', DeviceType::TABLET], 'I-mobile I-note S' => ['i-Mobile', 'i-Note S', DeviceType::TABLET], 'i-mobile i-note 2' => ['i-Mobile', 'i-Note 2', DeviceType::TABLET], 'i-mobile i-NOTE WIFI 2' => ['i-Mobile', 'i-Note 2', DeviceType::TABLET], 'i-mobile i-note 3' => ['i-Mobile', 'i-Note 3', DeviceType::TABLET], 'i-mobile i-note WIFI3' => ['i-Mobile', 'i-Note 3', DeviceType::TABLET], 'i-mobile i-note WiFi 7' => ['i-Mobile', 'i-Note 7', DeviceType::TABLET], 'i-mobile i-note WiFi 9' => ['i-Mobile', 'i-Note 9', DeviceType::TABLET], 'KPN Smart 200' => ['KPN', 'Smart 200'], 'KPN Smart 300' => ['KPN', 'Smart 300'], 'KPN Smart 400' => ['KPN', 'Smart 400'], 'MegaFon SP-AI' => ['Мегафон', 'SP-A1'], 'MegaFon SP-A5' => ['Мегафон', 'SP-A5'], 'SP-A20i' => ['Мегафон', 'SP-A20i Mint'], 'MegaFon V9' => ['Мегафон', 'V9'], 'MegaFon V9+' => ['Мегафон', 'V9+'], 'MS3B' => ['Мегафон', 'Optima'], 'MS4A' => ['Мегафон', '4G Turbo'], 'MT7A' => ['Мегафон', 'Login', DeviceType::TABLET], 'M9000' => ['MobiFone', 'M9000'], 'G0775' => ['Movistar', 'Go Mobile 775'], 'GO778' => ['Movistar', 'Go Mobile 778'], 'B916C' => ['Movistar', 'Go Mobile 950'], 'GO980' => ['Movistar', 'Go Mobile 980'], 'Gomobile GO1001' => ['Movistar', 'Go Mobile 1001'], 'Movistar Motion' => ['Movistar', 'Motion'], 'MTC 916' => ['MTC', '916'], 'MTC 950' => ['MTC', '950'], 'MTC 955' => ['MTC', '955'], 'MTC 960' => ['MTC', '960'], 'MTC-962' => ['MTC', '962'], 'MTC 968' => ['MTC', '968'], 'MTC 970!' => ['MTC', '970'], 'MTC 972' => ['MTC', '972'], 'MTC975' => ['MTC', '975'], 'MTC 978' => ['MTC', '978'], 'MTC980' => ['MTC', '980'], 'MTC 982' => ['MTC', '982'], 'MTC 1055' => ['MTC', '1055'], 'MTC 1065' => ['MTC', '1065'], 'MTC 1078' => ['MTC', '1078'], 'MTC 982O' => ['MTC', '982O'], 'MTC Evo' => ['MTC', 'Evo'], 'MTC Fit' => ['MTC', 'Fit'], 'MTC Neo' => ['MTC', 'Neo'], 'MTC Mini' => ['MTC', 'Mini'], 'SMART Sprint' => ['MTC', 'Smart Sprint'], 'MTC SMART Sprint 4G' => ['MTC', 'Smart Sprint'], 'MTC Viva' => ['MTC', 'Viva'], 'HB-1000' => ['NTT', 'Hikari Box Plus', DeviceType::TELEVISION], 'BSTB-200C' => ['NTT', 'Hikari Box 3', DeviceType::TELEVISION], 'O2 Joggler' => ['O2', 'Joggler', DeviceType::TABLET], 'Optimus Barcelona' => ['Optimus', 'Barcelona'], 'Optimus Boston' => ['Optimus', 'Boston'], 'Boston 4G' => ['Optimus', 'Boston 4G'], 'Optimus Madrid' => ['Optimus', 'Madrid'], 'Optimus Monte Carlo' => ['Optimus', 'Monte Carlo'], 'Optimus San Francisco' => ['Optimus', 'San Francisco'], 'Optimus San Remo' => ['Optimus', 'San Remo'], 'San Remo Mini' => ['Optimus', 'San Remo Mini'], 'Orange Boston' => ['Orange', 'Boston'], 'Orange Covo' => ['Orange', 'Covo'], 'Orange Daytona' => ['Orange', 'Daytona'], 'Orange Dublin' => ['Orange', 'Dublin'], 'Orange Fova' => ['Orange', 'Fova'], 'Orange Gova' => ['Orange', 'Gova'], 'Orange Hi 4G' => ['Orange', 'Hi'], 'Orange Hiro' => ['Orange', 'Hiro'], 'Orange infinity 996' => ['Orange', 'Infinity'], 'Orange Infinity 8008X' => ['Orange', 'Infinity'], 'Orange Kivo' => ['Orange', 'Kivo'], 'Luno' => ['Orange', 'Luno'], 'Orange Monte Carlo' => ['Orange', 'Monte Carlo'], '6034R ORANGE Niva' => ['Orange', 'Nivo'], 'Orange Niva' => ['Orange', 'Nivo'], 'Orange Nura' => ['Orange', 'Nura'], 'Nura 2' => ['Orange', 'Nura 2'], 'Orange Reyo' => ['Orange', 'Reyo'], 'Orange Rono' => ['Orange', 'Rono'], 'Orange Roya' => ['Orange', 'Roya'], 'San Francisco' => ['Orange', 'San Francisco'], 'San Francisco for' => ['Orange', 'San Francisco'], 'Orange San Francisco' => ['Orange', 'San Francisco'], 'San Francisco II' => ['Orange', 'San Francisco II'], 'Orange Tactile internet 2' => ['Orange', 'Tactile internet 2'], 'Orange Tado' => ['Orange', 'Tado'], 'Orange Yomi' => ['Orange', 'Yomi'], 'Orange Yumo' => ['Orange', 'Yumo'], 'Orange Zali' => ['Orange', 'Zali'], 'Zilo' => ['Orange', 'Zilo'], 'QMobile A1' => ['Q-Mobile', 'Noir A1'], 'QMobile A2 Lite' => ['Q-Mobile', 'Bolt A2 Lite'], 'QMobile A2 Classic' => ['Q-Mobile', 'Bolt A2 Classic'], 'QMobile A4' => ['Q-Mobile', 'Bolt A4'], 'QMobile A5' => ['Q-Mobile', 'Noir A5'], 'Noir A7' => ['Q-Mobile', 'Noir A7'], 'QMobile A7' => ['Q-Mobile', 'Noir A7'], 'Noir A8' => ['Q-Mobile', 'Noir A8'], 'QMobile A8' => ['Q-Mobile', 'Noir A8'], 'QMobile A10' => ['Q-Mobile', 'Noir A10'], 'QMobile A10 Noir' => ['Q-Mobile', 'Noir A10'], 'QMobile Noir A10' => ['Q-Mobile', 'Noir A10'], 'QMobile A10 Lite' => ['Q-Mobile', 'Noir A10 Lite'], 'QMobile A11Note' => ['Q-Mobile', 'Noir A11'], 'QMobile A12' => ['Q-Mobile', 'Noir A12'], 'QMobile A20' => ['Q-Mobile', 'Noir A20'], 'QMobile A30' => ['Q-Mobile', 'Noir A30'], 'QMobile A34' => ['Q-Mobile', 'Noir A34'], 'QMobile A35' => ['Q-Mobile', 'Noir A35'], 'QMobile A36' => ['Q-Mobile', 'Noir A36'], 'QMobile A51' => ['Q-Mobile', 'Noir A51'], 'QMobile A63' => ['Q-Mobile', 'Noir A63'], 'QMobile A65' => ['Q-Mobile', 'Noir A65'], 'QMobile A75' => ['Q-Mobile', 'Noir A75'], 'QMobile A80' => ['Q-Mobile', 'Noir A80'], 'QMobile A120' => ['Q-Mobile', 'Noir A120'], 'QMobile A170' => ['Q-Mobile', 'Noir A17  0'], 'QMobile A290' => ['Q-Mobile', 'Noir A290'], 'QMobile A300' => ['Q-Mobile', 'Noir A300'], 'Qmobile A500' => ['Q-Mobile', 'Noir A500'], 'QMobile A700' => ['Q-Mobile', 'Noir A700'], 'Qmobile A900' => ['Q-Mobile', 'Noir A900'], 'QMobile A910' => ['Q-Mobile', 'Noir A910'], 'QMobile i5' => ['Q-Mobile', 'Noir i5'], 'QMobile i5i' => ['Q-Mobile', 'Noir i5i'], 'QMobile i7' => ['Q-Mobile', 'Noir i7'], 'QMobile i8' => ['Q-Mobile', 'Noir i8'], 'QMobile i9' => ['Q-Mobile', 'Noir i9'], 'Qmobile Noir i9' => ['Q-Mobile', 'Noir i9'], 'QMobile i10' => ['Q-Mobile', 'Noir i10'], 'QMobile i12' => ['Q-Mobile', 'Noir i12'], 'Q-Smart FLY 01' => ['Q-Mobile', 'Q-Smart Fly 01'], 'Q-Smart S1' => ['Q-Mobile', 'Q-Smart S1'], 'QMobile S1' => ['Q-Mobile', 'Q-Smart S1'], 'QMobile S5' => ['Q-Mobile', 'Q-Smart S5'], 'Q-Smart model S6' => ['Q-Mobile', 'Q-Smart S6'], 'Q-mobile S10' => ['Q-Mobile', 'Q-Smart S10'], 'Qmobile-S11' => ['Q-Mobile', 'Q-Smart S11'], 'Q-mobile S11!' => ['Q-Mobile', 'Q-Smart S11'], 'Q-Smart S12' => ['Q-Mobile', 'Q-Smart S12'], 'Qmobile S13' => ['Q-Mobile', 'Q-Smart S13'], 'Q-Smart S16' => ['Q-Mobile', 'Q-Smart S16'], 'Q-Smart S18' => ['Q-Mobile', 'Q-Smart S18'], 'Q-Smart S19' => ['Q-Mobile', 'Q-Smart S19'], 'Q-Smart S20' => ['Q-Mobile', 'Q-Smart S20'], 'Q-Smart S21' => ['Q-Mobile', 'Q-Smart S21'], 'Q-Smart S29' => ['Q-Mobile', 'Q-Smart S29'], 'Q-Smart QS16' => ['Q-Mobile', 'Q-Smart QS16'], 'Q-Smart QS550' => ['Q-Mobile', 'Q-Smart QS550'], 'QTab Q100' => ['Q-Mobile', 'QTab Q100', DeviceType::TABLET], 'QTab Q300' => ['Q-Mobile', 'QTab Q300', DeviceType::TABLET], 'QTab Q850' => ['Q-Mobile', 'QTab Q850', DeviceType::TABLET], 'QMobile V4' => ['Q-Mobile', 'Noir V4'], 'QMobile X2' => ['Q-Mobile', 'Noir X2'], 'QMobile X5' => ['Q-Mobile', 'Noir X5'], 'QMobile X6' => ['Q-Mobile', 'Noir X6'], 'QMobile X11' => ['Q-Mobile', 'Noir X11'], 'QMobile X25' => ['Q-Mobile', 'Noir X25'], 'QMobile X500' => ['Q-Mobile', 'Noir X500'], 'Z4 mini' => ['Q-Mobile', 'Noir Quatro Z4 mini'], 'QMobile Z8' => ['Q-Mobile', 'Noir Z8'], 'Soshphone 4G' => ['SoshPhone', '4G'], 'MOVE' => ['T-Mobile', 'MOVE'], 'T-Mobile G1' => ['T-Mobile', 'G1'], 'T-Mobile G2' => ['T-Mobile', 'G2'], 'T-Mobile G2 Touch' => ['T-Mobile', 'G2'], 'LG-P999' => ['T-Mobile', 'G2x'], 'LG-E739' => ['T-Mobile', 'myTouch'], 'T-Mobile myTouch' => ['T-Mobile', 'myTouch'], 'T-Mobile myTouch 3G' => ['T-Mobile', 'myTouch 3G'], 'T-Mobile myTouch 3G Slide' => ['T-Mobile', 'myTouch 3G Slide'], 'T-mobile my touch 3g slide' => ['T-Mobile', 'myTouch 3G Slide'], 'HTC T-Mobile myTouch 3G Slide' => ['T-Mobile', 'myTouch 3G Slide'], 'T-Mobile Espresso' => ['T-Mobile', 'myTouch 3G Slide'], 'HTC my ?Touch 3G Slide!' => ['T-Mobile', 'myTouch 3G Slide'], 'T-Mobile myTouch 4G' => ['T-Mobile', 'myTouch 4G'], 'HTC Glacier' => ['T-Mobile', 'myTouch 4G'], 'HTC Panache' => ['T-Mobile', 'myTouch 4G'], 'My ?Touch ?4G$!' => ['T-Mobile', 'myTouch 4G'], 'HTC My ?Touch ?4G$!' => ['T-Mobile', 'myTouch 4G'], 'HTC myTouch 4G Slide' => ['T-Mobile', 'myTouch 4G Slide'], 'myTouch 4G Slide' => ['T-Mobile', 'myTouch 4G Slide'], 'myTouch Slide 4G' => ['T-Mobile', 'myTouch 4G Slide'], 'T-Mobile myTouch Q' => ['T-Mobile', 'myTouch Q'], 'LG-C800' => ['T-Mobile', 'myTouch Q'], 'T-Mobile Opal' => ['T-Mobile', 'Opal'], 'HUAWEI U8686' => ['T-Mobile', 'Prism'], 'Prism II' => ['T-Mobile', 'Prism II'], 'U8220' => ['T-Mobile', 'Pulse'], 'Pulse' => ['T-Mobile', 'Pulse'], 'Pulse Mini' => ['T-Mobile', 'Pulse Mini'], 'T-Mobile Vivacity' => ['T-Mobile', 'Vivacity'], 'Telenor OneTouch' => ['Telenor', 'One Touch'], 'Telenor One Touch C' => ['Telenor', 'One Touch C'], 'Telenor One Touch S' => ['Telenor', 'One Touch S'], 'Telenor Touch Plus' => ['Telenor', 'Touch Plus'], 'Telenor S800' => ['Telenor', 'S800'], 'Telenor Smart' => ['Telenor', 'Smart'], 'Telenor Smart 2' => ['Telenor', 'Smart 2'], 'Telenor Smart HD' => ['Telenor', 'Smart HD'], 'Telenor Smart Pro' => ['Telenor', 'Smart Pro'], 'Telenor Smart Pro 2' => ['Telenor', 'Smart Pro 2'], 'TELENOR SMART TOUCH MINI' => ['Telenor', 'Smart Touch Mini'], 'Telenor Touch Pad' => ['Telenor', 'Touch Pad', DeviceType::TABLET], 'T-Hub2' => ['Telstra', 'T-Hub 2', DeviceType::TABLET], 'tmn smart a7' => ['TMN', 'Smart A7'], 'tmn smart a8' => ['TMN', 'Smart A8'], 'tmn smart a15' => ['TMN', 'Smart A15'], 'tmn smart a18' => ['TMN', 'Smart A18'], 'tmn smart a20' => ['TMN', 'Smart A20'], 'tmn smart a60' => ['TMN', 'Smart A60'], 'TRUE BEYOND 3G' => ['True', 'Beyond'], 'StarTrail TT' => ['Tunisie Telecom', 'StarTrail'], 'Turkcell Maxi Plus 5' => ['Turkcell', 'Maxi Plus 5'], 'TURKCELL MaxiPRO5' => ['Turkcell', 'Maxi Pro 5'], 'Turkcell T10' => ['Turkcell', 'T10'], 'Turkcell T11' => ['Turkcell', 'T11'], 'Turkcell T20' => ['Turkcell', 'T20'], 'TURKCELL T40' => ['Turkcell', 'T40'], 'TURKCELL T50' => ['Turkcell', 'T50'], 'TURKCELL TURBO T50' => ['Turkcell', 'Turbo T50'], 'TURKCELL T60' => ['Turkcell', 'T60'], 'QMV7A' => ['Verizon', 'Ellipsis 7 4G LTE', DeviceType::TABLET], 'QMV7B' => ['Verizon', 'Ellipsis 7 4G LTE', DeviceType::TABLET], 'Viettel i5' => ['Viettel', 'i5'], 'V8403' => ['Viettel', 'V8403'], 'VIETTEL V8404!' => ['Viettel', 'V8404'], 'V8409' => ['Viettel', 'V8409'], 'Viettel V8410' => ['Viettel', 'V8410'], 'VIETTEL V8411' => ['Viettel', 'V8411'], 'V8412' => ['Viettel', 'V8412'], 'V8413' => ['Viettel', 'V8413'], 'V8501' => ['Viettel', 'V8501'], 'Viettel V8502' => ['Viettel', 'V8502'], 'V8502' => ['Viettel', 'V8502'], 'V8503' => ['Viettel', 'V8503'], 'V8505' => ['Viettel', 'V8505'], 'VIETTEL V8506' => ['Viettel', 'V8506'], 'V8507' => ['Viettel', 'V8507'], 'V8508' => ['Viettel', 'V8508'], 'VIETTEL V8509' => ['Viettel', 'V8509'], 'V8510' => ['Viettel', 'V8510'], 'V8511' => ['Viettel', 'V8511'], 'V8603' => ['Viettel', 'V8603'], 'Vodafone 785' => ['Vodafone', 'Smart 4 Mini'], 'Vodafone 845' => ['Vodafone', '845 Nova'], 'Vodafone 858' => ['Vodafone', '858 Smart'], 'Vodafone 861' => ['Vodafone', '861 Smart'], 'Vodafone 875' => ['Vodafone', 'Smart Mini'], 'Vodafone 890N' => ['Vodafone', 'Smart 4 Turbo'], 'Vodafone 945' => ['Vodafone', '945'], 'Vodafone 958' => ['Vodafone', '958'], 'Vodafone 975!' => ['Vodafone', '975'], 'Vodafone 980' => ['Vodafone', '980'], 'Vodafone 985N' => ['Vodafone', 'Smart 4 Power'], 'Vodafone Blade V' => ['Vodafone', 'Blade V'], 'Vodafone Smart ll' => ['Vodafone', 'Smart II'], 'Vodafone Smart II!' => ['Vodafone', 'Smart II'], 'Vodafone Smart 4' => ['Vodafone', 'Smart 4'], 'Vodafone Smart 4 max' => ['Vodafone', 'Smart 4 Max'], 'Vodafone Smart 4 turbo' => ['Vodafone', 'Smart 4 Turbo'], 'Vodafone Smart 4G' => ['Vodafone', 'Smart 4G'], 'VodafoneSmartChat!' => ['Vodafone', 'Smart Chat'], 'Vodafone Smart Chat' => ['Vodafone', 'Smart Chat'], 'Vodafone Smart ultra 6' => ['Vodafone', 'Smart Ultra 6'], 'SmartTab2' => ['Vodafone', 'Smart Tab 2', DeviceType::TABLET], 'SmartTab7' => ['Vodafone', 'Smart Tab 7', DeviceType::TABLET], 'SmartTabII7' => ['Vodafone', 'Smart Tab II 7', DeviceType::TABLET], '[a-z][a-z](?:-[a-z][a-z])?, SmartTabII7!' => ['Vodafone', 'Smart Tab II 7', DeviceType::TABLET], 'SmartTabII10' => ['Vodafone', 'Smart Tab II 10', DeviceType::TABLET], 'Vodafone SmartTab II 10' => ['Vodafone', 'Smart Tab II 10', DeviceType::TABLET], 'Vodafone Smart Tab III 7' => ['Vodafone', 'Smart Tab III 7', DeviceType::TABLET], 'Vodafone Smart Tab III 10' => ['Vodafone', 'Smart Tab III 10', DeviceType::TABLET], 'Vodafone Smart Tab 4' => ['Vodafone', 'Smart Tab 4', DeviceType::TABLET], 'Vodafone Smart Tab 3G!' => ['Vodafone', 'Smart Tab 3G', DeviceType::TABLET], 'Vodafone Smart Tab 4G!' => ['Vodafone', 'Smart Tab 4G', DeviceType::TABLET], 'SmartTab10' => ['Vodafone', 'Smart Tab 10', DeviceType::TABLET]];
Exemple #14
0
 private function detectNokiaBrowser($ua)
 {
     /* Nokia Browser */
     if (preg_match('/BrowserNG/u', $ua)) {
         $this->data->browser->name = 'Nokia Browser';
         $this->data->browser->type = Constants\BrowserType::BROWSER;
         if (preg_match('/BrowserNG\\/([0-9.]*)/u', $ua, $match)) {
             $this->data->browser->version = new Version(['value' => $match[1], 'details' => 3, 'builds' => false]);
         }
     }
     if (preg_match('/NokiaBrowser/u', $ua)) {
         $this->data->browser->name = 'Nokia Browser';
         $this->data->browser->channel = null;
         $this->data->browser->type = Constants\BrowserType::BROWSER;
         if (preg_match('/NokiaBrowser\\/([0-9.]*)/u', $ua, $match)) {
             $this->data->browser->version = new Version(['value' => $match[1], 'details' => 3]);
         }
     }
     /* Nokia Xpress for S30+, S40 and Windows Phone */
     if (preg_match('/OSRE/u', $ua)) {
         $this->data->browser->name = 'Nokia Xpress';
         $this->data->browser->mode = 'proxy';
         $this->data->browser->type = Constants\BrowserType::BROWSER;
         $this->data->device->type = Constants\DeviceType::MOBILE;
         $this->data->os->name = null;
         $this->data->os->version = null;
     }
     if (preg_match('/S40OviBrowser/u', $ua)) {
         $this->data->browser->name = 'Nokia Xpress';
         $this->data->browser->mode = 'proxy';
         $this->data->browser->type = Constants\BrowserType::BROWSER;
         if (preg_match('/S40OviBrowser\\/([0-9.]*)/u', $ua, $match)) {
             $this->data->browser->version = new Version(['value' => $match[1], 'details' => 3]);
         }
         if (preg_match('/Nokia([^\\/]+)\\//u', $ua, $match)) {
             $this->data->device->manufacturer = 'Nokia';
             $this->data->device->model = $match[1];
             $this->data->device->identified |= Constants\Id::PATTERN;
             if (isset($this->data->device->model)) {
                 $device = Data\DeviceModels::identify('s40', $this->data->device->model);
                 if ($device->identified) {
                     $device->identified |= $this->data->device->identified;
                     $this->data->device = $device;
                 }
             }
             if (isset($this->data->device->model)) {
                 $device = Data\DeviceModels::identify('asha', $this->data->device->model);
                 if ($device->identified) {
                     $device->identified |= $this->data->device->identified;
                     $this->data->os->name = 'Nokia Asha Platform';
                     $this->data->os->version = new Version(['value' => '1.0']);
                     $this->data->device = $device;
                     if (preg_match('/java_runtime_version=Nokia_Asha_([0-9_]+);/u', $ua, $match)) {
                         $this->data->os->version = new Version(['value' => str_replace('_', '.', $match[1])]);
                     }
                 }
             }
         }
         if (preg_match('/NOKIALumia([0-9]+)/u', $ua, $match)) {
             $this->data->device->manufacturer = 'Nokia';
             $this->data->device->model = $match[1];
             $this->data->device->identified |= Constants\Id::PATTERN;
             $device = Data\DeviceModels::identify('wp', $this->data->device->model);
             if ($device->identified) {
                 $device->identified |= $this->data->device->identified;
                 $this->data->device = $device;
                 $this->data->os->name = 'Windows Phone';
             }
         }
     }
     /* MicroB - the default browser for maemo */
     if (preg_match('/Maemo[ |_]Browser/u', $ua)) {
         $this->data->browser->name = 'MicroB';
         $this->data->browser->type = Constants\BrowserType::BROWSER;
         if (preg_match('/Maemo[ |_]Browser[ |_]([0-9.]*)/u', $ua, $match)) {
             $this->data->browser->version = new Version(['value' => $match[1], 'details' => 3]);
         }
     }
 }
Exemple #15
0
 private function detectSpecficBrowsers($ua)
 {
     /* Boxee */
     if (preg_match('/Boxee/u', $ua)) {
         $this->data->browser->name = 'Boxee';
         $this->data->browser->type = Constants\BrowserType::APP_MEDIAPLAYER;
         $this->data->device->type = Constants\DeviceType::TELEVISION;
         if (preg_match('/Boxee\\/([0-9.]*)/u', $ua, $match)) {
             $this->data->browser->version = new Version(['value' => $match[1]]);
         }
     }
     /* XBMC */
     if (preg_match('/^XBMC\\/(?:PRE-)?([0-9.]+)/u', $ua, $match)) {
         $this->data->browser->name = 'XBMC';
         $this->data->browser->version = new Version(['value' => $match[1], 'details' => 2]);
         $this->data->browser->type = Constants\BrowserType::APP_MEDIAPLAYER;
     }
     /* Kodi */
     if (preg_match('/^Kodi\\/([0-9.]+)/u', $ua, $match)) {
         $this->data->browser->name = 'Kodi';
         $this->data->browser->version = new Version(['value' => $match[1], 'details' => 2]);
         $this->data->browser->type = Constants\BrowserType::APP_MEDIAPLAYER;
     }
     /* Web on Roku */
     if (preg_match('/Roku/u', $ua) && preg_match('/Web\\/([0-9.]+)/u', $ua, $match)) {
         $this->data->browser->name = 'Web';
         $this->data->browser->version = new Version(['value' => $match[1], 'details' => 2]);
         $this->data->browser->type = Constants\BrowserType::BROWSER;
     }
     /* LG Browser */
     if (preg_match('/LG Browser\\/([0-9.]*)/u', $ua, $match)) {
         $this->data->browser->name = 'LG Browser';
         $this->data->browser->version = new Version(['value' => $match[1], 'details' => 2]);
         $this->data->browser->type = Constants\BrowserType::BROWSER;
         $this->data->device->type = Constants\DeviceType::TELEVISION;
     }
     if (preg_match('/NetCast/u', $ua) && preg_match('/SmartTV\\//u', $ua)) {
         unset($this->data->browser->name);
         unset($this->data->browser->version);
     }
     /* Sony Browser */
     if (preg_match('/SonyBrowserCore\\/([0-9.]*)/u', $ua, $match)) {
         unset($this->data->browser->name);
         unset($this->data->browser->version);
         $this->data->device->type = Constants\DeviceType::TELEVISION;
     }
     /* NineSky */
     if (preg_match('/Ninesky(?:-android-mobile(?:-cn)?)?\\/([0-9.]*)/u', $ua, $match)) {
         $this->data->browser->reset();
         $this->data->browser->name = 'NineSky';
         $this->data->browser->version = new Version(['value' => $match[1]]);
         $this->data->browser->type = Constants\BrowserType::BROWSER;
         if (isset($this->data->device->manufacturer) && $this->data->device->manufacturer == 'Apple') {
             $this->data->device->reset();
         }
         if (!$this->data->os->isFamily('Android')) {
             $this->data->os->reset();
             $this->data->os->name = 'Android';
         }
         $this->data->device->type = Constants\DeviceType::MOBILE;
     }
     /* Skyfire */
     if (preg_match('/Skyfire\\/([0-9.]*)/u', $ua, $match)) {
         $this->data->browser->name = 'Skyfire';
         $this->data->browser->version = new Version(['value' => $match[1]]);
         $this->data->browser->type = Constants\BrowserType::BROWSER;
         $this->data->device->type = Constants\DeviceType::MOBILE;
         $this->data->os->name = 'Android';
         $this->data->os->version = null;
     }
     /* Dolphin HD */
     if (preg_match('/Dolphin(?:HDCN)?\\/(?:INT|CN)?-?([0-9.]*)/u', $ua, $match)) {
         $this->data->browser->name = 'Dolphin';
         $this->data->browser->version = new Version(['value' => $match[1]]);
         $this->data->browser->type = Constants\BrowserType::BROWSER;
         $this->data->device->type = Constants\DeviceType::MOBILE;
     }
     /* QQ Browser */
     if (preg_match('/(M?QQBrowser)\\/([0-9.]*)/u', $ua, $match)) {
         $this->data->browser->name = 'QQ Browser';
         $version = $match[2];
         if (preg_match('/^[0-9][0-9]$/u', $version)) {
             $version = $version[0] . '.' . $version[1];
         }
         $this->data->browser->version = new Version(['value' => $version, 'details' => 2]);
         $this->data->browser->type = Constants\BrowserType::BROWSER;
         $this->data->browser->channel = '';
         if (!isset($this->data->os->name) && $match[1] == 'QQBrowser') {
             $this->data->os->name = 'Windows';
         }
         if (preg_match('/MQQBrowser\\/[0-9\\.]+\\/Adr \\(Linux; U; ([0-9\\.]+); [^;]+; (.+) Build/u', $ua, $match)) {
             $this->data->os->reset(['name' => 'Android', 'version' => new Version(['value' => $match[1]])]);
             $this->data->device->type = Constants\DeviceType::MOBILE;
             $this->data->device->model = $match[2];
             $this->data->device->identified |= Constants\Id::PATTERN;
             $device = Data\DeviceModels::identify('android', $match[2]);
             if ($device->identified) {
                 $device->identified |= $this->data->device->identified;
                 $this->data->device = $device;
             }
         }
         if (preg_match('/MQQBrowser\\/[0-9\\.]+\\/WP7 \\([^;]+;WPOS:([0-9]\\.[0-9])[0-9\\.]*;([^;]+); ([^\\)]+)\\)/u', $ua, $match)) {
             $this->data->os->reset(['name' => 'Windows Phone', 'version' => new Version(['value' => $match[1]])]);
             $this->data->device->type = Constants\DeviceType::MOBILE;
             $this->data->device->manufacturer = $match[2];
             $this->data->device->model = $match[3];
             $this->data->device->identified |= Constants\Id::PATTERN;
             $device = Data\DeviceModels::identify('wp', $match[3]);
             if ($device->identified) {
                 $device->identified |= $this->data->device->identified;
                 $this->data->device = $device;
             }
         }
     }
     if (preg_match('/MQQBrowser\\/Mini([0-9.]*)/u', $ua, $match)) {
         $this->data->browser->name = 'QQ Browser Mini';
         $this->data->browser->version = new Version(['value' => $match[1], 'details' => 2]);
         $this->data->browser->type = Constants\BrowserType::BROWSER;
         $this->data->browser->channel = '';
     }
     if (preg_match('/QQ\\/([0-9.]*)/u', $ua, $match)) {
         $this->data->browser->name = 'QQ Browser';
         $this->data->browser->version = new Version(['value' => $match[1], 'details' => 2]);
         $this->data->browser->type = Constants\BrowserType::BROWSER;
         $this->data->browser->channel = '';
     }
     /* 360 Phone Browser */
     if (preg_match('/360 (?:Aphone|Android Phone) Browser \\((?:Version |V)?([0-9.]*)(?:beta)?\\)/u', $ua, $match)) {
         $this->data->browser->name = 'Qihoo 360 Browser';
         $this->data->browser->family = null;
         $this->data->browser->channel = '';
         $this->data->browser->version = new Version(['value' => $match[1]]);
         $this->data->browser->type = Constants\BrowserType::BROWSER;
         if (!$this->data->os->isFamily('Android')) {
             $this->data->device->type = Constants\DeviceType::MOBILE;
             $this->data->os->reset(['name' => 'Android']);
         }
     }
     if (preg_match('/360%20(?:Browser|Lite)\\/([0-9\\.]+)/u', $ua, $match)) {
         $this->data->browser->name = 'Qihoo 360 Browser';
         $this->data->browser->family = null;
         $this->data->browser->channel = '';
         $this->data->browser->version = new Version(['value' => $match[1]]);
         $this->data->browser->type = Constants\BrowserType::BROWSER;
     }
     if (preg_match('/QHBrowser\\/([0-9\\.]+)/u', $ua, $match)) {
         $version = $match[1];
         if (preg_match('/^[0-9][0-9][0-9]$/u', $version)) {
             $version = $version[0] . '.' . $version[1] . '.' . $version[2];
         }
         $this->data->browser->name = 'Qihoo 360 Browser';
         $this->data->browser->channel = '';
         $this->data->browser->version = new Version(['value' => $version]);
         $this->data->browser->type = Constants\BrowserType::BROWSER;
         if (!$this->data->isOs('iOS')) {
             $this->data->device->type = Constants\DeviceType::MOBILE;
             $this->data->os->reset(['name' => 'iOS']);
         }
     }
     /* Mercury */
     if (preg_match('/(?:^| )Mercury\\/([0-9\\.]+)/u', $ua, $match)) {
         $version = $match[1];
         if (preg_match('/^[0-9][0-9][0-9]$/u', $version)) {
             $version = $version[0] . '.' . $version[1] . '.' . $version[2];
         }
         $this->data->browser->name = 'Mercury Browser';
         $this->data->browser->channel = '';
         $this->data->browser->version = new Version(['value' => $version]);
         $this->data->browser->type = Constants\BrowserType::BROWSER;
     }
     /* iBrowser */
     if (preg_match('/(?:^| )iBrowser\\/([0-9.]*)/u', $ua, $match)) {
         $this->data->browser->name = 'iBrowser';
         $version = $match[1];
         if (preg_match('/^[0-9][0-9]$/u', $version)) {
             $version = $version[0] . '.' . $version[1];
         }
         $this->data->browser->version = new Version(['value' => $version, 'details' => 2]);
         $this->data->browser->channel = '';
         $this->data->browser->type = Constants\BrowserType::BROWSER;
     }
     if (preg_match('/iBrowser\\/Mini([0-9.]*)/u', $ua, $match)) {
         $this->data->browser->name = 'iBrowser Mini';
         $this->data->browser->version = new Version(['value' => $match[1], 'details' => 2]);
         $this->data->browser->channel = '';
         $this->data->browser->type = Constants\BrowserType::BROWSER;
     }
     /* Puffin */
     if (preg_match('/Puffin\\/([0-9.]+)([IA])?([PT])?/u', $ua, $match)) {
         $this->data->browser->name = 'Puffin';
         $this->data->browser->version = new Version(['value' => $match[1], 'details' => intval(substr(strrchr($match[1], '.'), 1)) > 99 ? -1 : null]);
         $this->data->browser->mode = 'proxy';
         $this->data->browser->channel = '';
         $this->data->browser->type = Constants\BrowserType::BROWSER;
         if (isset($match[2])) {
             switch ($match[2]) {
                 case 'A':
                     if (!$this->data->isOs('Android')) {
                         $this->data->os->reset(['name' => 'Android']);
                     }
                     break;
                 case 'I':
                     if (!$this->data->isOs('iOS')) {
                         $this->data->os->reset(['name' => 'iOS']);
                     }
                     break;
             }
         }
         if (isset($match[3])) {
             switch ($match[3]) {
                 case 'P':
                     $this->data->device->type = Constants\DeviceType::MOBILE;
                     if ($this->data->os->name == 'iOS' && empty($this->data->device->model)) {
                         $this->data->device->manufacturer = 'Apple';
                         $this->data->device->model = 'iPhone';
                     }
                     break;
                 case 'T':
                     $this->data->device->type = Constants\DeviceType::TABLET;
                     if ($this->data->os->name == 'iOS' && empty($this->data->device->model)) {
                         $this->data->device->manufacturer = 'Apple';
                         $this->data->device->model = 'iPad';
                     }
                     break;
             }
         }
     }
     /* Midori */
     if (preg_match('/Midori\\/([0-9.]*)/u', $ua, $match)) {
         $this->data->browser->name = 'Midori';
         $this->data->browser->version = new Version(['value' => $match[1]]);
         $this->data->browser->type = Constants\BrowserType::BROWSER;
         $this->data->device->manufacturer = null;
         $this->data->device->model = null;
         $this->data->device->type = Constants\DeviceType::DESKTOP;
         if (isset($this->data->os->name) && $this->data->os->name == 'OS X') {
             $this->data->os->name = null;
             $this->data->os->version = null;
         }
     }
     if (preg_match('/midori(?:\\/[0-9.]*)?$/u', $ua)) {
         $this->data->browser->name = 'Midori';
         $this->data->browser->type = Constants\BrowserType::BROWSER;
         $this->data->device->type = Constants\DeviceType::DESKTOP;
         if (preg_match('/midori\\/([0-9.]*)$/u', $ua, $match)) {
             $this->data->browser->version = new Version(['value' => $match[1]]);
         }
     }
     /* MiniBrowser Mobile */
     if (preg_match('/MiniBr?owserM(?:obile)?\\/([0-9.]*)/u', $ua, $match)) {
         $this->data->browser->name = 'MiniBrowser';
         $this->data->browser->version = new Version(['value' => $match[1]]);
         $this->data->browser->type = Constants\BrowserType::BROWSER;
         $this->data->device->type = Constants\DeviceType::MOBILE;
         if (!$this->data->isOs('Series60')) {
             $this->data->os->name = 'Series60';
             $this->data->os->version = null;
         }
     }
     /* Maxthon */
     if (preg_match('/Maxthon/iu', $ua, $match)) {
         $this->data->browser->name = 'Maxthon';
         $this->data->browser->channel = '';
         $this->data->browser->version = null;
         $this->data->browser->type = Constants\BrowserType::BROWSER;
         if (preg_match('/Maxthon[\\/\' ]\\(?([0-9.]*)\\)?/iu', $ua, $match)) {
             $this->data->browser->version = new Version(['value' => $match[1], 'details' => 3]);
         }
         if (isset($this->data->os->name) && $this->data->browser->version && $this->data->os->name == 'Windows' && $this->data->browser->version->toFloat() < 4) {
             $this->data->browser->version->details = 1;
         }
     }
     if (preg_match('/MxNitro/iu', $ua, $match)) {
         $this->data->browser->name = 'Maxthon Nitro';
         $this->data->browser->channel = '';
         $this->data->browser->version = null;
         $this->data->browser->type = Constants\BrowserType::BROWSER;
         if (preg_match('/MxNitro\\/([0-9.]*)/iu', $ua, $match)) {
             $this->data->browser->version = new Version(['value' => $match[1], 'details' => 3]);
         }
     }
     /* WebPositive */
     if (preg_match('/WebPositive/u', $ua, $match)) {
         $this->data->browser->name = 'WebPositive';
         $this->data->browser->channel = '';
         $this->data->browser->version = null;
         $this->data->browser->type = Constants\BrowserType::BROWSER;
         if (preg_match('/WebPositive\\/([0-9]\\.[0-9.]+)/u', $ua, $match)) {
             $this->data->browser->version = new Version(['value' => $match[1], 'details' => 3]);
         }
     }
     /* IBM WebExplorer */
     if (preg_match('/IBM[- ]WebExplorer[ -]?(DLL ?|Window API ?)?/u', $ua)) {
         $this->data->browser->name = 'IBM WebExplorer';
         $this->data->browser->channel = '';
         $this->data->browser->type = Constants\BrowserType::BROWSER;
         if (preg_match('/IBM[- ]WebExplorer[ -]?(?:DLL ?|Window API ?)?\\/v([0-9]\\.[0-9\\.]+)/u', $ua, $match)) {
             $this->data->browser->version = new Version(['value' => $match[1]]);
         }
         $this->data->os->name = 'OS/2';
         $this->data->device->type = 'desktop';
     }
     /* WorldWideweb */
     if (preg_match('/WorldWideweb \\(NEXT\\)/u', $ua, $match)) {
         $this->data->browser->name = 'WorldWideWeb';
         $this->data->browser->channel = '';
         $this->data->browser->version = null;
         $this->data->browser->type = Constants\BrowserType::BROWSER;
         $this->data->os->name = 'NextStep';
         $this->data->device->type = 'desktop';
     }
     /* Sogou Mobile */
     if (preg_match('/SogouAndroidBrowser\\/([0-9.]*)/u', $ua, $match)) {
         $this->data->browser->name = 'Sogou Mobile';
         $this->data->browser->version = new Version(['value' => $match[1]]);
         $this->data->browser->type = Constants\BrowserType::BROWSER;
         if (isset($this->data->device->manufacturer) && $this->data->device->manufacturer == 'Apple') {
             unset($this->data->device->manufacturer);
             unset($this->data->device->model);
             unset($this->data->device->identifier);
             $this->data->device->identified = Constants\Id::NONE;
         }
     }
     /* Xiino */
     if (preg_match('/Xiino\\/([0-9.]+)/u', $ua, $match)) {
         $this->data->browser->name = 'Xiino';
         $this->data->browser->version = new Version(['value' => $match[1]]);
         $this->data->browser->type = Constants\BrowserType::BROWSER;
         $this->data->device->type = Constants\DeviceType::PDA;
         $this->data->os->name = 'Palm OS';
         if (preg_match('/\\(v. ([0-9.]+)/u', $ua, $match)) {
             $this->data->os->version = new Version(['value' => $match[1]]);
         }
     }
     /* Palmscape */
     if (preg_match('/Palmscape\\/(?:PR)?([0-9.]+)/u', $ua, $match)) {
         $this->data->browser->name = 'Palmscape';
         $this->data->browser->version = new Version(['value' => $match[1]]);
         $this->data->browser->type = Constants\BrowserType::BROWSER;
         $this->data->device->type = Constants\DeviceType::PDA;
         $this->data->os->name = 'Palm OS';
         if (preg_match('/\\(v. ([0-9.]+)/u', $ua, $match)) {
             $this->data->os->version = new Version(['value' => $match[1]]);
         }
     }
     /* Novarra WebPro */
     if (preg_match('/WebPro/u', $ua) && preg_match('/PalmOS/u', $ua)) {
         $this->data->browser->name = 'WebPro';
         $this->data->browser->version = null;
         $this->data->browser->type = Constants\BrowserType::BROWSER;
         if (preg_match('/WebPro\\/?([0-9.]*)/u', $ua, $match)) {
             $this->data->browser->version = new Version(['value' => $match[1]]);
         }
     }
     /* Novarra Vision */
     if (preg_match('/(?:Vision-Browser|Novarra-Vision)\\/?([0-9.]*)/u', $ua, $match)) {
         $this->data->browser->name = 'Novarra Vision';
         $this->data->browser->version = new Version(['value' => $match[1]]);
         $this->data->browser->family = null;
         $this->data->browser->mode = 'proxy';
         $this->data->browser->type = Constants\BrowserType::BROWSER;
         if ($this->data->device->type != Constants\DeviceType::MOBILE) {
             $this->data->os->reset();
             $this->data->device->type = Constants\DeviceType::MOBILE;
         }
     }
     if (preg_match('/DreamKey\\/([0-9.]*)/u', $ua, $match)) {
         $this->data->browser->name = 'Dreamkey';
         $this->data->browser->version = new Version(['value' => $match[1]]);
         $this->data->browser->type = Constants\BrowserType::BROWSER;
         $this->data->device->setIdentification(['manufacturer' => 'Sega', 'model' => 'Dreamcast', 'type' => Constants\DeviceType::GAMING, 'subtype' => Constants\DeviceSubType::CONSOLE]);
     }
     if (preg_match('/DreamPassport\\/([0-9.]*)/u', $ua, $match)) {
         $this->data->browser->name = 'Dream Passport';
         $this->data->browser->version = new Version(['value' => $match[1]]);
         $this->data->browser->type = Constants\BrowserType::BROWSER;
         $this->data->device->setIdentification(['manufacturer' => 'Sega', 'model' => 'Dreamcast', 'type' => Constants\DeviceType::GAMING, 'subtype' => Constants\DeviceSubType::CONSOLE]);
     }
     if (preg_match('/Planetweb\\/v?([0-9.]*)/u', $ua, $match)) {
         $this->data->browser->name = 'Planetweb';
         $this->data->browser->version = new Version(['value' => $match[1]]);
         $this->data->browser->type = Constants\BrowserType::BROWSER;
         if (preg_match('/Dreamcast/u', $ua, $match)) {
             $this->data->device->setIdentification(['manufacturer' => 'Sega', 'model' => 'Dreamcast', 'type' => Constants\DeviceType::GAMING, 'subtype' => Constants\DeviceSubType::CONSOLE]);
         }
         if (preg_match('/SPS/u', $ua, $match)) {
             $this->data->device->setIdentification(['manufacturer' => 'Sony', 'model' => 'Playstation 2', 'type' => Constants\DeviceType::GAMING, 'subtype' => Constants\DeviceSubType::CONSOLE]);
         }
     }
 }
Exemple #16
0
<?php

namespace WhichBrowser\Data;

use WhichBrowser\Constants\DeviceType;
DeviceModels::$WM_MODELS = ['DX900' => ['Acer', 'Tempo DX900'], 'E100' => ['Acer', 'beTouch E100'], 'F900' => ['Acer', 'Tempo F900'], 'S200' => ['Acer', 'neoTouch S200'], 'P400' => ['Acer', 'neoTouch P400'], '-GalaxyII' => ['Asus', 'Galaxy II'], '-GalaxyMini' => ['Asus', 'Galaxy Mini'], 'M530w!' => ['Asus', 'M530w'], 'M930!' => ['Asus', 'M930'], '-P525!' => ['Asus', 'P525'], '-P526!' => ['Asus', 'P526'], '-P527!' => ['Asus', 'P527'], 'P550' => ['Asus', 'P550'], '-P552w!' => ['Asus', 'P552w'], '-P552!' => ['Asus', 'P552'], '-P565!' => ['Asus', 'P565'], '-P735!' => ['Asus', 'P735'], 'P750' => ['Asus', 'P750'], 'Bird T900' => ['Bird', 'T900'], 'Coolpad F800' => ['Coolpad', 'F800'], 'Datalogic Memor' => ['Datalogic', 'Memor'], 'Dopod838Pro' => ['Dopod', '838 Pro'], 'CHT 9100!' => ['Dopod', 'CHT 9100'], 'DopodD810' => ['Dopod', 'D810'], 'dopod-S900c' => ['Dopod', 'S900'], 'T5388' => ['Dopod', 'T5388'], 'dopodT5588' => ['Dopod', 'T5588'], 'dopodT8388' => ['Dopod', 'T8388'], 'dopodT8588' => ['Dopod', 'T8588'], 'garmin-asus-Nuvifone-M10' => ['Garmin-Asus', 'Nuvifone M10'], 'Nuvifone-M10' => ['Garmin-Asus', 'Nuvifone M10'], 'Nuvifone-M20' => ['Garmin-Asus', 'Nuvifone M20'], 'GIGABYTE-MS800' => ['Gigabyte', 'GSmart MS800'], 'HP iPAQ 510' => ['HP', 'iPAQ 510'], 'HPiPAQ510!' => ['HP', 'iPAQ 510'], 'HPiPAQ610' => ['HP', 'iPAQ 610'], 'HPiPAQ910!' => ['HP', 'iPAQ 910'], 'HP iPAQ h6300' => ['HP', 'iPAQ h6300'], 'HP iPAQ hw6500!' => ['HP', 'iPAQ hw6500'], 'HPiPAQhw6900!' => ['HP', 'iPAQ hw6900'], 'HPiPAQrw6800!' => ['HP', 'iPAQ rw6800'], 'HPiPAQrw6815!' => ['HP', 'iPAQ rw6815'], 'HPiPAQDataMessenger!' => ['HP', 'iPAQ Data Messenger'], 'HPiPAQVoiceMessenger!' => ['HP', 'iPAQ Voice Messenger'], 'HPiPAQGlisten' => ['HP', 'iPAQ Glisten'], 'HP KB1' => ['HP', 'iPAQ Glisten'], 'HTC8500' => ['HTC', '8500'], 'HTC P3300' => ['HTC', 'P3300'], 'HTC love' => ['HTC', 'P3350'], 'HTC P3350' => ['HTC', 'P3350'], 'HTC P3400!' => ['HTC', 'P3400'], 'HTC P3450!' => ['HTC', 'P3450'], 'P4350!' => ['HTC', 'P3450'], 'HTC HERALD' => ['HTC', 'P3450'], 'HTC P6300' => ['HTC', 'P6300'], 'HTC P6500' => ['HTC', 'P6500'], 'HTC X7500' => ['HTC', 'Advantage'], 'HTC X7510' => ['HTC', 'Advantage'], '(HTC )?HD mini!' => ['HTC', 'HD mini'], '.*T5555!' => ['HTC', 'HD mini'], '(HTC )?HD2!' => ['HTC', 'HD2'], '.*T8585!' => ['HTC', 'HD2'], 'HTC T8290' => ['HTC', 'MAX 4G'], 'HTC MAX 4G' => ['HTC', 'MAX 4G'], 'P3470!' => ['HTC', 'Pharos'], 'HTC Prophet' => ['HTC', 'Prophet'], 'HTC Snap!' => ['HTC', 'S511 Snap'], '.*S521!' => ['HTC', 'S511 Snap'], 'HTC Maple S520' => ['HTC', 'S520 Maple'], 'HTC S620!' => ['HTC', 'S620 Excalibur'], 'HTC Excalibur' => ['HTC', 'S620 Excalibur'], 'HTC S630' => ['HTC', 'S630 Cavelier'], 'HTC S710' => ['HTC', 'S710 Vox'], 'HTC S730' => ['HTC', 'S730 Wings'], 'HTC S740' => ['HTC', 'S740 Rose'], 'HTC Touch' => ['HTC', 'Touch'], 'HTC Elf' => ['HTC', 'Touch'], 'HTC 6900' => ['HTC', 'Touch'], 'P3450' => ['HTC', 'Touch'], 'HTC TouchDual' => ['HTC', 'Touch'], 'HTC Touch 3G!' => ['HTC', 'Touch 3G'], 'HTC Jade' => ['HTC', 'Touch 3G'], 'HTC Mega!' => ['HTC', 'Touch 2'], 'HTC Touch2!' => ['HTC', 'Touch 2'], '.*T33(20|33|35)!' => ['HTC', 'Touch 2'], 'P3650' => ['HTC', 'Touch Cruise'], 'P3650t' => ['HTC', 'Touch Cruise'], 'HTC Touch Cruise!' => ['HTC', 'Touch Cruise'], 'HTC P3651' => ['HTC', 'Touch Cruise'], 'HTC Polaris' => ['HTC', 'Touch Cruise'], 'HTC Touch Diamond2!' => ['HTC', 'Touch Diamond 2'], '.*T5353!' => ['HTC', 'Touch Diamond 2'], 'HTC Touch Diamond!' => ['HTC', 'Touch Diamond'], '.*P3700!' => ['HTC', 'Touch Diamond'], 'HTC Diamond' => ['HTC', 'Touch Diamond'], 'HTC P3701' => ['HTC', 'Touch Diamond'], 'HTC P5500' => ['HTC', 'Touch Dual'], 'HTC P5310!' => ['HTC', 'Touch Dual'], 'HTC Touch HD2!' => ['HTC', 'Touch HD2'], '.*T8585!' => ['HTC', 'Touch HD2'], 'HTC Touch HD!' => ['HTC', 'Touch HD'], '.*T82(82|83)!' => ['HTC', 'Touch HD'], 'HTC Touch Pro2!' => ['HTC', 'Touch Pro 2'], '.*T73(73|80)!' => ['HTC', 'Touch Pro 2'], 'HTC Touch Pro!' => ['HTC', 'Touch Pro'], '.*T7272!' => ['HTC', 'Touch Pro'], 'HTC P4600' => ['HTC', 'Touch Pro'], 'HTC Raphael' => ['HTC', 'Touch Pro'], 'HTC Touch Viva!' => ['HTC', 'Touch Viva'], '.*T2223!' => ['HTC', 'Touch Viva'], 'P3600!' => ['HTC', 'Trinity'], 'HTC Trinity' => ['HTC', 'Trinity'], 'HTC P3600' => ['HTC', 'Trinity'], 'HTC TyTN II' => ['HTC', 'TyTN II'], 'P4550' => ['HTC', 'TyTN II'], 'HTC Kaiser' => ['HTC', 'TyTN II'], 'HTC TyTN!' => ['HTC', 'TyTN'], 'HTC Mercury' => ['HTC', 'TyTN'], 'T9188' => ['HTC', 'T9188'], 'T9199' => ['HTC', 'T9199'], 'HTC wizard' => ['HTC', 'Wizard'], 'i-mate JAMA' => ['i-mate', 'JAMA'], 'i-mate JAMAQ' => ['i-mate', 'JAMAQ'], 'i-mate JAMin' => ['i-mate', 'JAMin'], 'i-mate JASJAM' => ['i-mate', 'JASJAM'], 'i-mate JAQ' => ['i-mate', 'JAQ'], 'i-mate JAQ3' => ['i-mate', 'JAQ3'], 'i-mate K-JAM' => ['i-mate', 'K-JAM'], 'i-mate PDAL' => ['i-mate', 'PDAL'], 'i-mate 6150' => ['i-mate', 'Ultimate 6150'], 'i-mate 8150!' => ['i-mate', 'Ultimate 8150'], 'i-mate 8502' => ['i-mate', 'Ultimate 8502'], 'i-mate 9502!' => ['i-mate', 'Ultimate 9502'], 'W366' => ['K-Touch', 'W366'], 'K-Touch W366!' => ['K-Touch', 'W366'], 'Kyocera-E4000' => ['Kyocera', 'Solo E4000'], 'Lenovo ET860' => ['Lenovo', 'ET860'], 'LENOVO-ET980' => ['Lenovo', 'ET980'], 'LG-GM730!' => ['LG', 'Eigen GM730'], 'GM730' => ['LG', 'Eigen GM730'], 'LG-GM750!' => ['LG', 'Layla GM750'], 'GM750Q' => ['LG', 'Layla GM750'], 'LG-GW550!' => ['LG', 'GW550'], 'GW550' => ['LG', 'GW550'], 'GW825' => ['LG', 'IQ GW825'], 'LG-KS20' => ['LG', 'KS20'], 'LG-MS25' => ['LG', 'MS25'], 'LGE VS750' => ['LG', 'Fathom VS750'], 'A3100' => ['Motorola', 'A3100'], 'A3300c' => ['Motorola', 'A3300c'], 'A4500!' => ['Motorola', 'A4500'], 'ES405B!' => ['Motorola', 'ES405 Enterprise Smartphone'], 'MC45!' => ['Motorola', 'MC45 Mobile Computer'], 'MC659B!' => ['Motorola', 'MC65 Wireless Rugged Mobile Computer'], 'Q-UMTS' => ['Motorola', 'Q'], 'Q8' => ['Motorola', 'MOTO Q8'], 'Q9' => ['Motorola', 'MOTO Q9'], 'Sprint:MotoQ9c' => ['Motorola', 'MOTO Q9c'], 'Q9c!' => ['Motorola', 'MOTO Q9c'], 'Q9m!' => ['Motorola', 'MOTO Q9m'], 'VIP12!' => ['Motorola', 'VIP 1200', DeviceType::TELEVISION], 'H-21' => ['Opticom', 'H-21'], 'Palm500!' => ['Palm', 'Treo 500v'], 'Palm750' => ['Palm', 'Treo 750'], 'Treo800w' => ['Palm', 'Treo 800w'], 'Palm Treo850e' => ['Palm', 'Treo Pro'], 'Sprint Treo850e' => ['Palm', 'Treo Pro'], 'PANTECH-C810' => ['Pantech', 'Duo C810'], 'GT-B5722' => ['Samsung', 'B5722'], 'GT-B6520' => ['Samsung', 'B6520 OmniaPRO 5'], 'GT-B7300' => ['Samsung', 'B7300 OmniaLITE'], 'GT-B7320!' => ['Samsung', 'B7320 OmniaPRO'], 'GT-B7330!' => ['Samsung', 'B7330 OmniaPRO'], 'GT-B7350' => ['Samsung', 'B7350 OmniaPRO 4'], 'GT-B7610' => ['Samsung', 'B7610 OmniaPRO'], 'GT-C6625' => ['Samsung', 'C6625 Valencia'], 'C6625' => ['Samsung', 'C6625 Valencia'], 'GT-I8000!' => ['Samsung', 'I8000 Omnia II'], 'SCH-M490' => ['Samsung', 'M490 T*OMNIA'], 'SCH-M710' => ['Samsung', 'M710 T*OMNIA II'], 'SCH-M715' => ['Samsung', 'M715 T*OMNIA II'], 'SPH-M7200' => ['Samsung', 'M7200 OMNIA POP'], 'SPH-M7350' => ['Samsung', 'M7350 OZ OMNIA'], 'SPH-M8400' => ['Samsung', 'M8400 Show OMNIA'], 'SCH-i220!' => ['Samsung', 'i220 Code'], 'SCH-i225!' => ['Samsung', 'i225 Exec'], 'SPHI325!' => ['Samsung', 'i325 Ace'], 'SGH-i600!' => ['Samsung', 'i600'], 'SGH-i601!' => ['Samsung', 'i601'], 'SGH-I607' => ['Samsung', 'i607 BlackJack'], 'SGH-i608!' => ['Samsung', 'i608'], 'SGH-I617' => ['Samsung', 'i617 BlackJack II'], 'SGH-I637' => ['Samsung', 'i637 Jack'], 'SGH-i640!' => ['Samsung', 'i640'], 'SGH-i718' => ['Samsung', 'i718'], 'SGH-i718plus' => ['Samsung', 'i718 Plus'], 'SGH-i728' => ['Samsung', 'i728'], 'SCH-i760!' => ['Samsung', 'i760'], 'SCH-i770!' => ['Samsung', 'i770 Saga'], 'SGH-i780!' => ['Samsung', 'i780 Mirage'], 'SGH-i900!' => ['Samsung', 'i900 Omnia'], 'SGH-i908E' => ['Samsung', 'i908'], 'SCHI910!' => ['Samsung', 'i910 Omnia'], 'SCH-i920' => ['Samsung', 'i920 Omnia II'], 'SIE-SX66' => ['Siemens', 'SX66'], 'M1i' => ['Sony Ericsson', 'Aspen'], 'X1' => ['Sony Ericsson', 'Xperia X1'], 'X1[ia]!' => ['Sony Ericsson', 'Xperia X1'], 'X2' => ['Sony Ericsson', 'Xperia X2'], 'X2[ia]!' => ['Sony Ericsson', 'Xperia X2'], 'Spice D1100' => ['Spice', 'D1100'], '(Toshiba[- ])?TG01!' => ['Toshiba', 'TG01'], 'Velocity' => ['Velocity', '111'], 'ZTE E N72' => ['ZTE', 'E N72'], 'ZTE E X70' => ['ZTE', 'E X70'], 'sigmarion3' => ['NTT', 'sigmarionIII'], 'o2 Xda comet' => ['O2', 'XDA Comet'], 'Xda diamond' => ['O2', 'XDA Diamond'], 'Xda neo' => ['O2', 'XDA Neo'], 'Xda nova' => ['O2', 'XDA Nova'], 'Xda orbit' => ['O2', 'XDA Orbit'], 'Xda terra' => ['O2', 'XDA Terra'], 'Xda trion' => ['O2', 'XDA Trion'], 'O2 Xda 2mini' => ['O2', 'XDA II mini'], 'O2 Xda 2s' => ['O2', 'XDA IIs'], 'SPV E600' => ['Orange', 'SPV E600'], 'SPV E650' => ['Orange', 'SPV E650'], 'SPV M700' => ['Orange', 'SPV M700'], 'SPV M2000' => ['Orange', 'SPV M2000'], 'SPV M3100' => ['Orange', 'SPV M3100'], 'Sprint S511' => ['Sprint', 'Snap'], 'Sprint:SPH-ip830w' => ['Sprint', 'SPH-ip830w'], 'Sprint:PPC6600-1' => ['Sprint', 'PPC6600'], 'Sprint:PPC-6700' => ['Sprint', 'PPC6700'], 'Sprint:PPC6800' => ['Sprint', 'PPC6800'], 'Sprint PPC6850SP' => ['Sprint', 'PPC6850'], 'HTCPPC6850!' => ['Sprint', 'PPC6850'], 'PPC6850!' => ['Sprint', 'PPC6850'], 'Sprint MP6850SP' => ['Sprint', 'MP6850'], 'Sprint MP6900SP' => ['Sprint', 'MP6900'], 'Sprint MP6950SP' => ['Sprint', 'MP6950'], 'Ameo!' => ['T-Mobile', 'Ameo'], 'T-Mobile Atlas' => ['T-Mobile', 'Atlas'], 'T-Mobile Dash' => ['T-Mobile', 'Dash'], 'T-Mobile LEO' => ['T-Mobile', 'Leo'], 'T-Mobile Cleopatra' => ['T-Mobile', 'Shadow II'], 'MDA III!' => ['T-Mobile', 'MDA III'], 'MDA compact II!' => ['T-Mobile', 'MDA Compact II'], 'MDA compact!' => ['T-Mobile', 'MDA Compact'], 'MDA Pro!' => ['T-Mobile', 'MDA Pro'], 'MDA Touch!' => ['T-Mobile', 'MDA Touch'], 'MDA Vario!' => ['T-Mobile', 'MDA Vario'], 'XV6175!' => ['Verizon', 'Ozone XV6175'], 'XV6875!' => ['Verizon', 'Touch Pro2 XV6875'], 'XV6900' => ['Verizon', 'Touch XV6900'], 'XV6975' => ['Verizon', 'Imagio XV6975'], 'SFR v3650!' => ['Vodafone', 'Polaris'], 'v1415' => ['Vodafone', 'Vox'], 'v1240' => ['Vodafone', 'VDA II'], '1210' => ['Vodafone', 'VDA IV'], 'v1210' => ['Vodafone', 'VDA IV'], 'HTC VDA V' => ['Vodafone', 'VDA V'], 'v1640' => ['Vodafone', 'VPA IV'], 'VPA Touch' => ['Vodafone', 'VPA Touch'], 'HTC v1510' => ['Vodafone', 'VPA Compact GPS'], 'HTC VPACompactIV' => ['Vodafone', 'VPA Compact IV'], 'WS003SH' => ['Sharp', 'W-ZERO3 WS003SH', 'carrier' => 'Willcom'], 'WS004SH' => ['Sharp', 'W-ZERO3 WS004SH', 'carrier' => 'Willcom'], 'WS007SH' => ['Sharp', 'W-ZERO3 [es] WS007SH', 'carrier' => 'Willcom'], 'WS011SH' => ['Sharp', 'Advanced / W-ZERO3 [es] WS011SH', 'carrier' => 'Willcom'], 'WS020SH' => ['Sharp', 'WILLCOM 03 WS020SH', 'carrier' => 'Willcom'], 'WS027SH' => ['Sharp', 'HYBRID W-ZERO3 WS027SH', 'carrier' => 'Willcom'], 'S01SH' => ['Sharp', 'EM·ONE S01SH', 'carrier' => 'EMOBILE'], 'S01SH2' => ['Sharp', 'EM·ONE alpha S01SH2', 'carrier' => 'EMOBILE'], 'T-01A!' => ['Toshiba', 'T-01A', 'carrier' => 'DoCoMo'], 'T-01B!' => ['Toshiba', 'dynapocket T-01B', 'carrier' => 'DoCoMo'], 'X01T' => ['Toshiba', 'G900 X01T', 'carrier' => 'Softbank'], 'X02T!' => ['Toshiba', 'dynapocket X02T', 'carrier' => 'Softbank'], 'KDDI-HT01' => ['HTC', 'TOUCH PRO HT-01A', 'carrier' => 'au'], 'HT01A' => ['HTC', 'TOUCH PRO HT-01A', 'carrier' => 'au'], 'S11HT' => ['HTC', 'EMONSTER S11HT', 'carrier' => 'EMOBILE'], 'S12HT' => ['HTC', 'EMONSTER lite S12HT', 'carrier' => 'EMOBILE'], 'S21HT' => ['HTC', 'Touch Diamond S21HT', 'carrier' => 'EMOBILE'], 'S22HT' => ['HTC', 'Dual Diamond S22HT', 'carrier' => 'EMOBILE'], 'X01HT' => ['HTC', 'TyTN X01HT', 'carrier' => 'Softbank'], 'X02HT' => ['HTC', 'S630 X02HT', 'carrier' => 'Softbank'], 'X03HT' => ['HTC', 'S730 X03HT', 'carrier' => 'Softbank'], 'X04HT' => ['HTC', 'TOUCH DIAMOND X04HT', 'carrier' => 'Softbank'], 'X05HT' => ['HTC', 'TOUCH PRO X05HT', 'carrier' => 'Softbank'], 'SC-01B' => ['Samsung', 'SC-01B', 'carrier' => 'DoCoMo'], 'X01SC' => ['Samsung', 'OMNIA Pro X01SC', 'carrier' => 'Softbank']];
Exemple #17
0
 private function identifyBasedOnModel($model)
 {
     $model = preg_replace('/^Nokia/iu', '', $model);
     $device = Data\DeviceModels::identify('symbian', $model);
     if ($device->identified) {
         $device->identified |= $this->data->device->identified;
         $this->data->device = $device;
         if (!isset($this->data->os->name) || $this->data->os->name != 'Series60') {
             $this->data->os->name = 'Series60';
             $this->data->os->version = null;
             $this->data->os->family = new Family(['name' => 'Symbian']);
         }
         return true;
     }
     $device = Data\DeviceModels::identify('s40', $model);
     if ($device->identified) {
         $device->identified |= $this->data->device->identified;
         $this->data->device = $device;
         if (!isset($this->data->os->name) || $this->data->os->name != 'Series40') {
             $this->data->os->name = 'Series40';
             $this->data->os->version = null;
         }
         return true;
     }
     $device = Data\DeviceModels::identify('bada', $model);
     if ($device->identified) {
         $device->identified |= $this->data->device->identified;
         $this->data->device = $device;
         if (!isset($this->data->os->name) || $this->data->os->name != 'Bada') {
             $this->data->os->name = 'Bada';
             $this->data->os->version = null;
         }
         return true;
     }
     $device = Data\DeviceModels::identify('touchwiz', $model);
     if ($device->identified) {
         $device->identified |= $this->data->device->identified;
         $this->data->device = $device;
         if (!isset($this->data->os->name) || $this->data->os->name != 'Touchwiz') {
             $this->data->os->name = 'Touchwiz';
             $this->data->os->version = null;
         }
         return true;
     }
 }
Exemple #18
0
<?php

namespace WhichBrowser\Data;

use WhichBrowser\Constants\DeviceType;
use WhichBrowser\Constants\DeviceSubType;
DeviceModels::$PALMOS_MODELS = ['Palm-D061' => ['Palm', 'Centro', DeviceType::MOBILE], 'Palm-D062' => ['Palm', 'Centro', DeviceType::MOBILE], 'Palm-TunX' => ['Palm', 'LifeDrive', DeviceType::PDA], 'Palm-stuj' => ['Palm', 'm125', DeviceType::PDA], 'Palm-hbbs' => ['Palm', 'm130', DeviceType::PDA], 'Palm-trnd' => ['Palm', 'm500', DeviceType::PDA], 'Palm-ecty' => ['Palm', 'm505', DeviceType::PDA], 'Palm-lith' => ['Palm', 'm515', DeviceType::PDA], 'Palm-sky1' => ['Palm', 'i705', DeviceType::PDA], 'hspr-H101' => ['Palm', 'Treo 600', DeviceType::MOBILE], 'hspr-H102' => ['Palm', 'Treo 650', DeviceType::MOBILE], 'Palm-D053' => ['Palm', 'Treo 680', DeviceType::MOBILE], 'Palm-D052' => ['Palm', 'Treo 700', DeviceType::MOBILE], 'Palm-D060' => ['Palm', 'Treo 755', DeviceType::MOBILE], 'Palm-MT64' => ['Palm', 'Tungsten C', DeviceType::PDA], 'Palm-Cct1' => ['Palm', 'Tungsten E', DeviceType::PDA], 'Palm-Zir4' => ['Palm', 'Tungsten E2', DeviceType::PDA], 'Palm-Frg1' => ['Palm', 'Tungsten T', DeviceType::PDA], 'Palm-Frg2' => ['Palm', 'Tungsten T2', DeviceType::PDA], 'Palm-Arz1' => ['Palm', 'Tungsten T3', DeviceType::PDA], 'Palm-TnT5' => ['Palm', 'Tungsten T5', DeviceType::PDA], 'Palm-atc1' => ['Palm', 'Tungsten W', DeviceType::PDA], 'Palm-D050' => ['Palm', 'TX', DeviceType::PDA], 'Palm-Zi21' => ['Palm', 'Zire 21', DeviceType::PDA], 'Palm-D051' => ['Palm', 'Zire 22', DeviceType::PDA], 'Palm-Zi22' => ['Palm', 'Zire 31', DeviceType::PDA], 'Palm-Zpth' => ['Palm', 'Zire 71', DeviceType::PDA], 'Palm-Zi72' => ['Palm', 'Zire 72', DeviceType::PDA], 'sony-atom' => ['Sony', 'CLIÉ PEG-TH55', DeviceType::PDA], 'sony-prmr' => ['Sony', 'CLIÉ PEG-UX50', DeviceType::PDA], 'sony-tldo' => ['Sony', 'CLIÉ PEG-NX73V', DeviceType::PDA], 'sony-mdna' => ['Sony', 'CLIÉ PEG-T615C', DeviceType::PDA], 'sony-mdrd' => ['Sony', 'CLIÉ PEG-NX80V', DeviceType::PDA], 'sony-vrna' => ['Sony', 'CLIÉ PEG-TG50', DeviceType::PDA], 'sony-crdb' => ['Sony', 'CLIÉ PEG-NX60', DeviceType::PDA], 'sony-mcnd' => ['Sony', 'CLIÉ PEG-SJ33', DeviceType::PDA], 'sony-glps' => ['Sony', 'CLIÉ PEG-SJ22', DeviceType::PDA], 'sony-goku' => ['Sony', 'CLIÉ PEG-TJ35', DeviceType::PDA], 'sony-luke' => ['Sony', 'CLIÉ PEG-TJ37', DeviceType::PDA], 'sony-ystn' => ['Sony', 'CLIÉ PEG-N610C', DeviceType::PDA], 'sony-rdwd' => ['Sony', 'CLIÉ PEG-NR70', DeviceType::PDA], 'sony-leia' => ['Sony', 'CLIÉ PEG-TJ27', DeviceType::PDA], 'smsn-phix' => ['Samsung', 'SPH-i300', DeviceType::MOBILE], 'smsn-Phx2' => ['Samsung', 'SPH-i330', DeviceType::MOBILE], 'smsn-blch' => ['Samsung', 'SPH-i500', DeviceType::MOBILE], 'grmn-3200' => ['Garmin', 'iQue 3200', DeviceType::GPS], 'grmn-3600' => ['Garmin', 'iQue 3600', DeviceType::GPS], 'grmn-3700' => ['Garmin', 'iQue 3700', DeviceType::GPS], 'trgp-trg1' => ['HandEra', 'TRG Pro', DeviceType::PDA], 'trgp-trg2' => ['HandEra', '330', DeviceType::PDA], 'qcom-qc20' => ['Kyocera', 'QCP-6035', DeviceType::MOBILE], 'kwc.-7135' => ['Kyocera', 'QCP-7135', DeviceType::MOBILE], 'Tpwv-Rdog' => ['Tapwave', 'Zodiac', [DeviceType::GAMING, DeviceSubType::PORTABLE]], 'gsRl-zicn' => ['Group Sense', 'Xplore G18', DeviceType::MOBILE]];
Exemple #19
0
<?php

namespace WhichBrowser\Data;

use WhichBrowser\Constants\Flag;
DeviceModels::$SYMBIAN_MODELS = ['BenQ P30' => ['BenQ', 'P30', 'flag' => Flag::UIQ], 'BenQ P31' => ['BenQ', 'P31', 'flag' => Flag::UIQ], 'RIZR-Z8' => ['Motorola', 'RIZR Z8', 'flag' => Flag::UIQ], 'RIZR-Z10' => ['Motorola', 'RIZR Z10', 'flag' => Flag::UIQ], 'A920' => ['Motorola', 'A920', 'flag' => Flag::UIQ], 'A925' => ['Motorola', 'A925', 'flag' => Flag::UIQ], 'A1000' => ['Motorola', 'A1000', 'flag' => Flag::UIQ], 'M1000' => ['Motorola', 'M1000', 'flag' => Flag::UIQ, 'carrier' => 'DoCoMo'], 'G700' => ['Sony Ericsson', 'G700', 'flag' => Flag::UIQ], 'G900' => ['Sony Ericsson', 'G900', 'flag' => Flag::UIQ], 'M600i' => ['Sony Ericsson', 'M600', 'flag' => Flag::UIQ], 'P910i' => ['Sony Ericsson', 'P910', 'flag' => Flag::UIQ], 'P990i' => ['Sony Ericsson', 'P990', 'flag' => Flag::UIQ], 'P1i' => ['Sony Ericsson', 'P1', 'flag' => Flag::UIQ], 'W950i' => ['Sony Ericsson', 'W950', 'flag' => Flag::UIQ], 'W960i' => ['Sony Ericsson', 'W960', 'flag' => Flag::UIQ], 'LG KS10' => ['LG', 'KS10 Joy', 'flag' => Flag::S60], 'LGKT610' => ['LG', 'KT610', 'flag' => Flag::S60], 'LGKT615' => ['LG', 'KT615', 'flag' => Flag::S60], 'C5-00!' => ['Nokia', 'C5-00', 'flag' => Flag::S60], 'C5-01' => ['Nokia', 'C5-01', 'flag' => Flag::S60], 'C5-03!' => ['Nokia', 'C5-03', 'flag' => Flag::S60], 'C5-04' => ['Nokia', 'C5-04', 'flag' => Flag::S60], 'C5-05' => ['Nokia', 'C5-05', 'flag' => Flag::S60], 'C5-06' => ['Nokia', 'C5-06', 'flag' => Flag::S60], 'C6-00!' => ['Nokia', 'C6-00', 'flag' => Flag::S60], 'C6-01!' => ['Nokia', 'C6-01', 'flag' => Flag::S60], 'C7-00!' => ['Nokia', 'C7-00', 'flag' => Flag::S60], 'E5-00!' => ['Nokia', 'E5-00', 'flag' => Flag::S60], 'E6' => ['Nokia', 'E6-00', 'flag' => Flag::S60], 'E6-00' => ['Nokia', 'E6-00', 'flag' => Flag::S60], 'E7-00' => ['Nokia', 'E7-00', 'flag' => Flag::S60], 'N8-00' => ['Nokia', 'N8-00', 'flag' => Flag::S60], 'T7-00' => ['Nokia', 'T7-00', 'flag' => Flag::S60], 'X5-00' => ['Nokia', 'X5-00', 'flag' => Flag::S60], 'X5-01' => ['Nokia', 'X5-01', 'flag' => Flag::S60], 'X6-00!' => ['Nokia', 'X6-00', 'flag' => Flag::S60], 'X7-00!' => ['Nokia', 'X7-00', 'flag' => Flag::S60], 'N-Gage' => ['Nokia', 'N-Gage', 'flag' => Flag::S60], 'N-GageQD' => ['Nokia', 'N-Gage QD', 'flag' => Flag::S60], 'E50(-[1-9])?$!' => ['Nokia', 'E50', 'flag' => Flag::S60], 'E51(-[1-9])?$!' => ['Nokia', 'E51', 'flag' => Flag::S60], 'E52(-[1-9])?$!' => ['Nokia', 'E52', 'flag' => Flag::S60], 'E55(-[1-9])?$!' => ['Nokia', 'E55', 'flag' => Flag::S60], 'E60(-[1-9])?$!' => ['Nokia', 'E60', 'flag' => Flag::S60], 'E61i!' => ['Nokia', 'E61i', 'flag' => Flag::S60], 'E61(-[1-9])?$!' => ['Nokia', 'E61', 'flag' => Flag::S60], 'E62(-[1-9])?$!' => ['Nokia', 'E62', 'flag' => Flag::S60], 'E63(-[1-9])?$!' => ['Nokia', 'E63', 'flag' => Flag::S60], 'E65(-[1-9])?$!' => ['Nokia', 'E65', 'flag' => Flag::S60], 'E66(-[1-9])?$!' => ['Nokia', 'E66', 'flag' => Flag::S60], 'E70(-[1-9])?$!' => ['Nokia', 'E70', 'flag' => Flag::S60], 'E71x' => ['Nokia', 'E71x', 'flag' => Flag::S60], 'E71(-[1-9])?$!' => ['Nokia', 'E71', 'flag' => Flag::S60], 'E72(-[1-9])?$!' => ['Nokia', 'E72', 'flag' => Flag::S60], 'E73(-[1-9])?$!' => ['Nokia', 'E73 Mode', 'flag' => Flag::S60], 'E75(-[1-9])?$!' => ['Nokia', 'E75', 'flag' => Flag::S60], 'E90(-[1-9])?$!' => ['Nokia', 'E90 Communicator', 'flag' => Flag::S60], 'E-90-1' => ['Nokia', 'E90 Communicator', 'flag' => Flag::S60], 'N70(-[1-9])?$!' => ['Nokia', 'N70', 'flag' => Flag::S60], 'N71(-[1-9])?$!' => ['Nokia', 'N71', 'flag' => Flag::S60], 'N72(-[1-9])?$!' => ['Nokia', 'N72', 'flag' => Flag::S60], 'N73(-[1-9])?$!' => ['Nokia', 'N73', 'flag' => Flag::S60], 'N75(-[1-9])?$!' => ['Nokia', 'N75', 'flag' => Flag::S60], 'N76(-[1-9])?$!' => ['Nokia', 'N76', 'flag' => Flag::S60], 'N77(-[1-9])?$!' => ['Nokia', 'N77', 'flag' => Flag::S60], 'N78(-[1-9])?$!' => ['Nokia', 'N78', 'flag' => Flag::S60], 'N79(-[1-9])?$!' => ['Nokia', 'N79', 'flag' => Flag::S60], 'N80(-[1-9])?$!' => ['Nokia', 'N80', 'flag' => Flag::S60], 'N81(-[1-9])?$!' => ['Nokia', 'N81', 'flag' => Flag::S60], 'Nokia N81' => ['Nokia', 'N81', 'flag' => Flag::S60], 'Nokia N81 8GB' => ['Nokia', 'N81 8GB', 'flag' => Flag::S60], 'N82(-[1-9])?$!' => ['Nokia', 'N82', 'flag' => Flag::S60], 'N85(-[1-9])?$!' => ['Nokia', 'N85', 'flag' => Flag::S60], 'N86(-[1-9])?$!' => ['Nokia', 'N86 8MP', 'flag' => Flag::S60], 'N86 ?8MP$!' => ['Nokia', 'N86 8MP', 'flag' => Flag::S60], 'N90(-[1-9])?$!' => ['Nokia', 'N90', 'flag' => Flag::S60], 'N91(-[1-9])?$!' => ['Nokia', 'N91', 'flag' => Flag::S60], 'N92(-[1-9])?$!' => ['Nokia', 'N92', 'flag' => Flag::S60], 'N93(-[1-9])?$!' => ['Nokia', 'N93', 'flag' => Flag::S60], 'N93i' => ['Nokia', 'N93i', 'flag' => Flag::S60], 'N95(-[1-9])?$!' => ['Nokia', 'N95', 'flag' => Flag::S60], 'N95[ -]8GB(-[1-9])?!' => ['Nokia', 'N95 8GB', 'flag' => Flag::S60], 'N96(-[1-9])?$!' => ['Nokia', 'N96', 'flag' => Flag::S60], 'N97(-[1-3])?$!' => ['Nokia', 'N97', 'flag' => Flag::S60], 'N97i' => ['Nokia', 'N97', 'flag' => Flag::S60], 'N97(-[4-5])?$!' => ['Nokia', 'N97 Mini', 'flag' => Flag::S60], 'N97 ?mini!' => ['Nokia', 'N97 Mini', 'flag' => Flag::S60], '500' => ['Nokia', '500', 'flag' => Flag::S60], '600' => ['Nokia', '600', 'flag' => Flag::S60], '603' => ['Nokia', '603', 'flag' => Flag::S60], '700' => ['Nokia', '700', 'flag' => Flag::S60], '701' => ['Nokia', '701', 'flag' => Flag::S60], '702T' => ['Nokia', '702T', 'flag' => Flag::S60], '801T' => ['Nokia', '801T', 'flag' => Flag::S60], '808' => ['Nokia', '808 PureView', 'flag' => Flag::S60], '808PureView' => ['Nokia', '808 PureView', 'flag' => Flag::S60], '808 PureView' => ['Nokia', '808 PureView', 'flag' => Flag::S60], '3230' => ['Nokia', '3230', 'flag' => Flag::S60], '3250' => ['Nokia', '3250', 'flag' => Flag::S60], '3650' => ['Nokia', '3650', 'flag' => Flag::S60], '3660' => ['Nokia', '3660', 'flag' => Flag::S60], '5228' => ['Nokia', '5228', 'flag' => Flag::S60], '5233!' => ['Nokia', '5228', 'flag' => Flag::S60], 'N5233!' => ['Nokia', '5228', 'flag' => Flag::S60], '5230!' => ['Nokia', '5230', 'flag' => Flag::S60], '5232' => ['Nokia', '5232', 'flag' => Flag::S60], '5235!' => ['Nokia', '5235 Ovi Music Unlimited', 'flag' => Flag::S60], '5236' => ['Nokia', '5236', 'flag' => Flag::S60], '5238' => ['Nokia', '5238', 'flag' => Flag::S60], '5250' => ['Nokia', '5250', 'flag' => Flag::S60], '5320!' => ['Nokia', '5320 XpressMusic', 'flag' => Flag::S60], '5500d!' => ['Nokia', '5500 Sport', 'flag' => Flag::S60], '5530!' => ['Nokia', '5530 XpressMusic', 'flag' => Flag::S60], '5630!' => ['Nokia', '5630 XpressMusic', 'flag' => Flag::S60], '5700!' => ['Nokia', '5700 XpressMusic', 'flag' => Flag::S60], '5730!' => ['Nokia', '5730 XpressMusic', 'flag' => Flag::S60], '5800!' => ['Nokia', '5800 XpressMusic', 'flag' => Flag::S60], '6110Navigator' => ['Nokia', '6110 Navigator', 'flag' => Flag::S60], '6120c!' => ['Nokia', '6120 classic', 'flag' => Flag::S60], '6121c!' => ['Nokia', '6121 classic', 'flag' => Flag::S60], '6122c!' => ['Nokia', '6124 classic', 'flag' => Flag::S60], '6124c' => ['Nokia', '6124 classic', 'flag' => Flag::S60], '6210 ?Navigator!' => ['Nokia', '6210 Navigator', 'flag' => Flag::S60], '6220c!' => ['Nokia', '6220 classic', 'flag' => Flag::S60], '6260' => ['Nokia', '6260', 'flag' => Flag::S60], '6290!' => ['Nokia', '6290', 'flag' => Flag::S60], '6600' => ['Nokia', '6600', 'flag' => Flag::S60], '6630' => ['Nokia', '6630', 'flag' => Flag::S60], '6650d!' => ['Nokia', '6650 fold', 'flag' => Flag::S60], '6670' => ['Nokia', '6670', 'flag' => Flag::S60], '6680' => ['Nokia', '6680', 'flag' => Flag::S60], '6681' => ['Nokia', '6681', 'flag' => Flag::S60], '6700s' => ['Nokia', '6700 slide', 'flag' => Flag::S60], '6708' => ['Nokia', '6708', 'flag' => Flag::UIQ], '6710s' => ['Nokia', '6710 Navigator', 'flag' => Flag::S60], '6720c!' => ['Nokia', '6720 classic', 'flag' => Flag::S60], '6730c!' => ['Nokia', '6730 classic', 'flag' => Flag::S60], '6760s!' => ['Nokia', '6760 slide', 'flag' => Flag::S60], '6788' => ['Nokia', '6788', 'flag' => Flag::S60], '6788i' => ['Nokia', '6788i', 'flag' => Flag::S60], '6790s-1b!' => ['Nokia', '6790 Surge', 'flag' => Flag::S60], '6790s-1c!' => ['Nokia', '6790 slide', 'flag' => Flag::S60], '7610' => ['Nokia', '7610', 'flag' => Flag::S60], '7650' => ['Nokia', '7650', 'flag' => Flag::S60], '7660' => ['Nokia', '7660', 'flag' => Flag::S60], 'Oro' => ['Nokia', 'Oro', 'flag' => Flag::S60], 'Panasonic-X700' => ['Panasonic', 'X700', 'flag' => Flag::S60], 'Panasonic-X800' => ['Panasonic', 'X800', 'flag' => Flag::S60], 'I7710' => ['Samsung', 'GT-I7710', 'flag' => Flag::S60], 'I8510' => ['Samsung', 'INNOV8', 'flag' => Flag::S60], 'I8910' => ['Samsung', 'Omnia HD', 'flag' => Flag::S60], 'SGH-D720' => ['Samsung', 'D720', 'flag' => Flag::S60], 'SGH-D728' => ['Samsung', 'D728', 'flag' => Flag::S60], 'SGH-D730' => ['Samsung', 'D730', 'flag' => Flag::S60], 'SGH-i400!' => ['Samsung', 'i400', 'flag' => Flag::S60], 'SGH-i408!' => ['Samsung', 'i408', 'flag' => Flag::S60], 'SGH-i450!' => ['Samsung', 'i450', 'flag' => Flag::S60], 'SGH-i455!' => ['Samsung', 'i455', 'flag' => Flag::S60], 'SGH-i458!' => ['Samsung', 'i458', 'flag' => Flag::S60], 'SGH-i520!' => ['Samsung', 'i520', 'flag' => Flag::S60], 'SGH-i550!' => ['Samsung', 'i550', 'flag' => Flag::S60], 'SGH-i560!' => ['Samsung', 'i560', 'flag' => Flag::S60], 'SGH-i568!' => ['Samsung', 'i568', 'flag' => Flag::S60], 'SGH-i570!' => ['Samsung', 'i570', 'flag' => Flag::S60], 'SGH-G810' => ['Samsung', 'G810', 'flag' => Flag::S60], 'U' => ['Sony Ericsson', 'Satio', 'flag' => Flag::S60], '(?i)U1(a|i|iv)?$!' => ['Sony Ericsson', 'Satio', 'flag' => Flag::S60], '(?i)U5(a|i|iv)?$!' => ['Sony Ericsson', 'Vivaz', 'flag' => Flag::S60], '(?i)U8(a|i)?$!' => ['Sony Ericsson', 'Vivaz Pro', 'flag' => Flag::S60], 'ConstellationT' => ['Vertu', 'Constellation T', 'flag' => Flag::S60], 'ConstellationQuest' => ['Vertu', 'Constellation Quest', 'flag' => Flag::S60]];
Exemple #20
0
<?php

namespace WhichBrowser\Data;

use WhichBrowser\Constants\Flag;
DeviceModels::$S30PLUS_MODELS = ['215' => ['Nokia', '215'], '220' => ['Nokia', '220'], '222' => ['Nokia', '222'], '225' => ['Nokia', '225'], '230' => ['Nokia', '230']];
		private function analyseUserAgent($ua) {
			$ua = preg_replace("/^(Mozilla\/[0-9]\.[0-9].*)\s+Mozilla\/[0-9]\.[0-9].*$/iu", '$1', $ua);

			/****************************************************
			 *		Unix
			 */

			if (preg_match('/Unix/u', $ua)) {
				$this->os->name = 'Unix';
			}

			/****************************************************
			 *		Digital Unix
			 */

			if (preg_match('/OSF1 /u', $ua)) {
				$this->os->name = 'Digital Unix';

				if (preg_match('/OSF1 V([0-9.]*)/u', $ua, $match)) {
					$this->os->version = new Version([ 'value' => $match[1] ]);
				}

				$this->device->type = Constants\DeviceType::DESKTOP;
			}

			/****************************************************
			 *		FreeBSD
			 */

			if (preg_match('/FreeBSD/u', $ua)) {
				$this->os->name = 'FreeBSD';
			}

			/****************************************************
			 *		OpenBSD
			 */

			if (preg_match('/OpenBSD/u', $ua)) {
				$this->os->name = 'OpenBSD';
			}

			/****************************************************
			 *		NetBSD
			 */

			if (preg_match('/NetBSD/u', $ua)) {
				$this->os->name = 'NetBSD';
			}


			/****************************************************
			 *		Solaris
			 */

			if (preg_match('/SunOS/u', $ua)) {
				$this->os->name = 'Solaris';
				$this->device->type = Constants\DeviceType::DESKTOP;
			}


			/****************************************************
			 *		IRIX
			 */

			if (preg_match('/IRIX/u', $ua)) {
				$this->os->name = 'IRIX';

				if (preg_match('/IRIX ([0-9.]*)/u', $ua, $match)) {
					$this->os->version = new Version([ 'value' => $match[1] ]);
				}

				if (preg_match('/IRIX;?(?:64|32) ([0-9.]*)/u', $ua, $match)) {
					$this->os->version = new Version([ 'value' => $match[1] ]);
				}

				$this->device->type = Constants\DeviceType::DESKTOP;
			}


			/****************************************************
			 *		Syllable
			 */

			if (preg_match('/Syllable/u', $ua)) {
				$this->os->name = 'Syllable';
				$this->device->type = Constants\DeviceType::DESKTOP;
			}


			/****************************************************
			 *		Linux
			 */

			if (preg_match('/Linux/u', $ua)) {
				$this->os->name = 'Linux';

				if (preg_match('/CentOS/u', $ua)) {
					$this->os->name = 'CentOS';
					if (preg_match('/CentOS\/[0-9\.\-]+el([0-9_]+)/u', $ua, $match)) {
						$this->os->version = new Version([ 'value' => str_replace('_', '.', $match[1]) ]);
					}

					$this->device->type = Constants\DeviceType::DESKTOP;
				}

				if (preg_match('/Debian/u', $ua)) {
					$this->os->name = 'Debian';
					$this->device->type = Constants\DeviceType::DESKTOP;
				}

				if (preg_match('/Fedora/u', $ua)) {
					$this->os->name = 'Fedora';
					if (preg_match('/Fedora\/[0-9\.\-]+fc([0-9]+)/u', $ua, $match)) {
						$this->os->version = new Version([ 'value' => str_replace('_', '.', $match[1]) ]);
					}

					$this->device->type = Constants\DeviceType::DESKTOP;
				}

				if (preg_match('/Gentoo/u', $ua)) {
					$this->os->name = 'Gentoo';
					$this->device->type = Constants\DeviceType::DESKTOP;
				}

				if (preg_match('/gNewSense/u', $ua)) {
					$this->os->name = 'gNewSense';
					if (preg_match('/gNewSense\/[^\(]+\(([0-9\.]+)/u', $ua, $match)) {
						$this->os->version = new Version([ 'value' => $match[1] ]);
					}

					$this->device->type = Constants\DeviceType::DESKTOP;
				}

				if (preg_match('/Kubuntu/u', $ua)) {
					$this->os->name = 'Kubuntu';
					$this->device->type = Constants\DeviceType::DESKTOP;
				}

				if (preg_match('/Mandriva Linux/u', $ua)) {
					$this->os->name = 'Mandriva';
					if (preg_match('/Mandriva Linux\/[0-9\.\-]+mdv([0-9]+)/u', $ua, $match)) {
						$this->os->version = new Version([ 'value' => $match[1] ]);
					}

					$this->device->type = Constants\DeviceType::DESKTOP;
				}

				if (preg_match('/Mageia/u', $ua)) {
					$this->os->name = 'Mageia';
					if (preg_match('/Mageia\/[0-9\.\-]+mga([0-9]+)/u', $ua, $match)) {
						$this->os->version = new Version([ 'value' => $match[1] ]);
					}

					$this->device->type = Constants\DeviceType::DESKTOP;
				}

				if (preg_match('/Mandriva/u', $ua)) {
					$this->os->name = 'Mandriva';
					if (preg_match('/Mandriva\/[0-9\.\-]+mdv([0-9]+)/u', $ua, $match)) {
						$this->os->version = new Version([ 'value' => $match[1] ]);
					}

					$this->device->type = Constants\DeviceType::DESKTOP;
				}

				if (preg_match('/Red Hat/u', $ua)) {
					$this->os->name = 'Red Hat';
					if (preg_match('/Red Hat[^\/]*\/[0-9\.\-]+el([0-9_]+)/u', $ua, $match)) {
						$this->os->version = new Version([ 'value' => str_replace('_', '.', $match[1]) ]);
					}

					$this->device->type = Constants\DeviceType::DESKTOP;
				}

				if (preg_match('/Slackware/u', $ua)) {
					$this->os->name = 'Slackware';
					$this->device->type = Constants\DeviceType::DESKTOP;
				}

				if (preg_match('/SUSE/u', $ua)) {
					$this->os->name = 'SUSE';
					$this->device->type = Constants\DeviceType::DESKTOP;
				}

				if (preg_match('/Turbolinux/u', $ua)) {
					$this->os->name = 'Turbolinux';
					$this->device->type = Constants\DeviceType::DESKTOP;
				}

				if (preg_match('/Ubuntu/u', $ua)) {
					$this->os->name = 'Ubuntu';
					if (preg_match('/Ubuntu\/([0-9.]*)/u', $ua, $match)) {
						$this->os->version = new Version([ 'value' => $match[1] ]);
					}

					$this->device->type = Constants\DeviceType::DESKTOP;
				}

				if (preg_match('/Linux\/X2\/R1/u', $ua)) {
					$this->os->name = 'LiMo';
					$this->device->type = Constants\DeviceType::MOBILE;
				}
			}

			else if (preg_match('/\(Ubuntu; (Mobile|Tablet)/u', $ua)) {
				$this->os->name = 'Ubuntu Touch';

				if (preg_match('/\(Ubuntu; Mobile/u', $ua)) $this->device->type = Constants\DeviceType::MOBILE;
				if (preg_match('/\(Ubuntu; Tablet/u', $ua)) $this->device->type = Constants\DeviceType::TABLET;
			}

			else if (preg_match('/\(Ubuntu ([0-9.]+) like Android/u', $ua, $match)) {
				$this->os->name = 'Ubuntu Touch';
				$this->os->version = new Version([ 'value' => $match[1] ]);
				$this->device->type = Constants\DeviceType::MOBILE;
			}



			/****************************************************
			 *		iOS
			 */

			if ((preg_match('/iPhone/u', $ua) && !preg_match('/like iPhone/u', $ua)) || 
				preg_match('/iPad/u', $ua) || preg_match('/iPod/u', $ua)) 
			{
				$this->os->name = 'iOS';
				$this->os->version = new Version([ 'value' => '1.0' ]);

				if (preg_match('/OS (.*) like Mac OS X/u', $ua, $match)) {
					$this->os->version = new Version([ 'value' => str_replace('_', '.', $match[1]) ]);
					if ($this->os->version->is('<', '4')) $this->os->alias = 'iPhone OS';
				}

				if (preg_match('/iPhone Simulator;/u', $ua)) {
					$this->device->type = Constants\DeviceType::EMULATOR;
				}

				else {
					if (preg_match('/(iPad|iPhone( 3GS| 3G| 4S| 4| 5)?|iPod( touch)?)/u', $ua, $match)) {
						$device = Data\DeviceModels::identify('ios', $match[0]);

						if ($device) {
							$this->device = $device;
						}
					}

					if (preg_match('/(iPad|iPhone|iPod)[0-9],[0-9]/u', $ua, $match)) {
						$device = Data\DeviceModels::identify('ios', $match[0]);

						if ($device) {
							$this->device = $device;
						}
					}
				}
			}


			/****************************************************
			 *		OS X
			 */

			else if (preg_match('/Mac OS X/u', $ua) || preg_match('/;os=Mac/u', $ua)) {
				$this->os->name = 'OS X';

				if (preg_match('/Mac OS X (10[0-9\._]*)/u', $ua, $match)) {
					$this->os->version = new Version([ 'value' => str_replace('_', '.', $match[1]), 'details' => 2 ]);
				}

				if (preg_match('/;os=Mac (10[0-9\.]*)/u', $ua, $match)) {
					$this->os->version = new Version([ 'value' => $match[1], 'details' => 2 ]);
				}

				if (!empty($this->os->version)) {
					if ($this->os->version->is('<', '10.7')) $this->os->alias = 'Mac OS X';
					if ($this->os->version->is('10.7')) $this->os->version->nickname = 'Lion';
					if ($this->os->version->is('10.8')) $this->os->version->nickname = 'Mountain Lion';
					if ($this->os->version->is('10.9')) $this->os->version->nickname = 'Mavericks';
					if ($this->os->version->is('10.10')) $this->os->version->nickname = 'Yosemite';
					if ($this->os->version->is('10.11')) $this->os->version->nickname = 'El Capitan';
				}

				$this->device->type = Constants\DeviceType::DESKTOP;
			}


			/****************************************************
			 *		Darwin
			 */

			else if (preg_match('/Darwin\/([0-9]+.[0-9]+)/u', $ua, $match)) {
				$this->os->name = "Darwin";
				$this->os->version = new Version([ 'value' => $match[1], 'details' => 2 ]);
			}


			/****************************************************
			 *		Windows
			 */

			if (preg_match('/Windows/u', $ua) || preg_match('/Win[9MX]/u', $ua)) {
				$this->os->name = 'Windows';
				$this->device->type = Constants\DeviceType::DESKTOP;

				if (preg_match('/Windows NT ([0-9][0-9]?\.[0-9])/u', $ua, $match)) {
					$this->os->version = new Version([ 'value' => $match[1] ]);

					switch($match[1]) {
						case '10.0':
						case '6.4':		if (preg_match('/; ARM;/u', $ua))
											$this->os->version = new Version([ 'value' => $match[1], 'alias' => 'RT 10' ]);
										else
											$this->os->version = new Version([ 'value' => $match[1], 'alias' => '10' ]);
										break;

						case '6.3':		if (preg_match('/; ARM;/u', $ua))
											$this->os->version = new Version([ 'value' => $match[1], 'alias' => 'RT 8.1' ]);
										else
											$this->os->version = new Version([ 'value' => $match[1], 'alias' => '8.1' ]);
										break;

						case '6.2':		if (preg_match('/; ARM;/u', $ua))
											$this->os->version = new Version([ 'value' => $match[1], 'alias' => 'RT' ]);
										else
											$this->os->version = new Version([ 'value' => $match[1], 'alias' => '8' ]);
										break;

						case '6.1':		$this->os->version = new Version([ 'value' => $match[1], 'alias' => '7' ]); break;
						case '6.0':		$this->os->version = new Version([ 'value' => $match[1], 'alias' => 'Vista' ]); break;
						case '5.2':		$this->os->version = new Version([ 'value' => $match[1], 'alias' => 'Server 2003' ]); break;
						case '5.1':		$this->os->version = new Version([ 'value' => $match[1], 'alias' => 'XP' ]); break;
						case '5.0':		$this->os->version = new Version([ 'value' => $match[1], 'alias' => '2000' ]); break;
						default:		$this->os->version = new Version([ 'value' => $match[1], 'alias' => 'NT ' . $match[1] ]); break;
					}
				}

				if (preg_match('/Windows 95/u', $ua) || preg_match('/Win95/u', $ua) || preg_match('/Win 9x 4.00/u', $ua)) {
					$this->os->version = new Version([ 'value' => '4.0', 'alias' => '95' ]);
				}

				if (preg_match('/Windows 98/u', $ua) || preg_match('/Win98/u', $ua) || preg_match('/Win 9x 4.10/u', $ua)) {
					$this->os->version = new Version([ 'value' => '4.1', 'alias' => '98' ]);
				}

				if (preg_match('/Windows ME/u', $ua) || preg_match('/WinME/u', $ua) || preg_match('/Win 9x 4.90/u', $ua)) {
					$this->os->version = new Version([ 'value' => '4.9', 'alias' => 'ME' ]);
				}

				if (preg_match('/Windows XP/u', $ua) || preg_match('/WinXP/u', $ua)) {
					$this->os->version = new Version([ 'value' => '5.1', 'alias' => 'XP' ]);
				}

				if (preg_match('/WPDesktop/u', $ua)) {
					$this->os->name = 'Windows Phone';
					$this->os->version = new Version([ 'value' => '8.0', 'details' => 1 ]);
					$this->device->type = Constants\DeviceType::MOBILE;
					$this->browser->mode = 'desktop';
				}

				if (preg_match('/WP7/u', $ua)) {
					$this->os->name = 'Windows Phone';
					$this->os->version = new Version([ 'value' => '7', 'details' => 1 ]);
					$this->device->type = Constants\DeviceType::MOBILE;
					$this->browser->mode = 'desktop';
				}

				if (preg_match('/Windows CE/u', $ua) || preg_match('/WinCE/u', $ua) || preg_match('/WindowsCE/u', $ua)) {
					if (preg_match('/ IEMobile/u', $ua)) {
						$this->os->name = 'Windows Mobile';

						if (preg_match('/ IEMobile 8/u', $ua)) {
							$this->os->version = new Version([ 'value' => '6.5', 'details' => 2 ]);
						}

						if (preg_match('/ IEMobile 7/u', $ua)) {
							$this->os->version = new Version([ 'value' => '6.1', 'details' => 2 ]);
						}

						if (preg_match('/ IEMobile 6/u', $ua)) {
							$this->os->version = new Version([ 'value' => '6.0', 'details' => 2 ]);
						}
					}
					else {
						$this->os->name = 'Windows CE';

						if (preg_match('/WindowsCEOS\/([0-9.]*)/u', $ua, $match)) {
							$this->os->version = new Version([ 'value' => $match[1], 'details' => 2 ]);
						}

						if (preg_match('/Windows CE ([0-9.]*)/u', $ua, $match)) {
							$this->os->version = new Version([ 'value' => $match[1], 'details' => 2 ]);
						}
					}

					$this->device->type = Constants\DeviceType::MOBILE;
				}

				if (preg_match('/Windows ?Mobile/u', $ua)) {
					$this->os->name = 'Windows Mobile';
					$this->device->type = Constants\DeviceType::MOBILE;
				}

				if (preg_match('/WindowsMobile\/([0-9.]*)/u', $ua, $match)) {
					$this->os->name = 'Windows Mobile';
					$this->os->version = new Version([ 'value' => $match[1], 'details' => 2 ]);
					$this->device->type = Constants\DeviceType::MOBILE;
				}

				if (preg_match('/Windows Phone/u', $ua) || preg_match('/WPDesktop/u', $ua)) {
					$this->os->name = 'Windows Phone';
					$this->device->type = Constants\DeviceType::MOBILE;

					if (preg_match('/Windows Phone (?:OS )?([0-9.]*)/u', $ua, $match)) {
						$this->os->version = new Version([ 'value' => $match[1], 'details' => 2 ]);

						if (intval($match[1]) < 7) {
							$this->os->name = 'Windows Mobile';
						}
					}

					/* Windows Phone OS 7 and 8 */
					if (preg_match('/IEMobile\/[^;]+;(?: ARM; Touch; )?(?: WpsLondonTest; )?\s*([^;\s][^;]*);\s*([^;\)\s][^;\)]*)[;|\)]/u', $ua, $match)) {
						$this->device->manufacturer = $match[1];
						$this->device->model = $match[2];
						$this->device->identified |= Constants\Id::PATTERN;

						$device = Data\DeviceModels::identify('wp', $match[2]);
						if ($device->identified) {
							$device->identified |= $this->device->identified;
							$this->device = $device;
						}
					}

					/* Windows Phone 10 */
					if (preg_match('/Windows Phone 1[0-9]\.[0-9]; Android [0-9\.]+; ([^;\s][^;]*);\s*([^;\)\s][^;\)]*)[;|\)]/u', $ua, $match)) {
						$this->device->manufacturer = $match[1];
						$this->device->model = $match[2];
						$this->device->identified |= Constants\Id::PATTERN;

						$device = Data\DeviceModels::identify('wp', $match[2]);
						if ($device->identified) {
							$device->identified |= $this->device->identified;
							$this->device = $device;
						}
					}

					/* Third party browsers */
					if (preg_match('/IEMobile\/[^;]+;(?: ARM; Touch; )?\s*(?:[^\/]+\/[^\/]+);\s*([^;\s][^;]*);\s*([^;\)\s][^;\)]*)[;|\)]/u', $ua, $match)) {
						$this->device->manufacturer = $match[1];
						$this->device->model = $match[2];
						$this->device->identified |= Constants\Id::PATTERN;

						$device = Data\DeviceModels::identify('wp', $match[2]);
						if ($device->identified) {
							$device->identified |= $this->device->identified;
							$this->device = $device;
						}
					}

					/* Desktop mode of WP 8.1 */
					if (preg_match('/WPDesktop;\s*([^;\)]*)(?:;\s*([^;\)]*))?(?:;\s*([^;\)]*))?\) like Gecko/u', $ua, $match)) {
						$this->os->version = new Version([ 'value' => '8.1', 'details' => 2 ]);

						if (preg_match("/^[A-Z]+$/", $match[1])) {
							$this->device->manufacturer = $match[1];
							$this->device->model = $match[2];
						} else {
							$this->device->model = $match[1];
						}

						$this->device->identified |= Constants\Id::PATTERN;

						$device = Data\DeviceModels::identify('wp', $this->device->model);
						if ($device->identified) {
							$device->identified |= $this->device->identified;
							$this->device = $device;
						}
					}

					/* Desktop mode of WP 8.1 Update (buggy version) */
					if (preg_match('/Touch; WPDesktop;\s*([^;\)]*)(?:;\s*([^;\)]*))?(?:;\s*([^;\)]*))?\)/u', $ua, $match)) {
						$this->os->version = new Version([ 'value' => '8.1', 'details' => 2 ]);

						if (preg_match("/^[A-Z]+$/", $match[1]) && isset($match[2])) {
							$this->device->manufacturer = $match[1];
							$this->device->model = $match[2];
						} else {
							$this->device->model = $match[1];
						}

						$this->device->identified |= Constants\Id::PATTERN;

						$device = Data\DeviceModels::identify('wp', $this->device->model);
						if ($device->identified) {
							$device->identified |= $this->device->identified;
							$this->device = $device;
						}
					}

					if (isset($this->device->manufacturer) && isset($this->device->model)) {
						if ($this->device->manufacturer == 'ARM' && $this->device->model == 'Touch') {
							$this->device->manufacturer = null;
							$this->device->model = null;
							$this->device->identified = Constants\Id::NONE;
						}

						if ($this->device->manufacturer == 'Microsoft' && $this->device->model == 'XDeviceEmulator') {
							$this->device->manufacturer = null;
							$this->device->model = null;
							$this->device->type = Constants\DeviceType::EMULATOR;
							$this->device->identified |= Constants\Id::MATCH_UA;
						}
					}
				}
			}



			/****************************************************
			 *		Android
			 */

			if (preg_match('/Android/u', $ua)) {
				$falsepositive = false;

				/* Prevent the Mobile IE 11 Franken-UA from matching Android */
				if (preg_match('/IEMobile\/1/u', $ua)) $falsepositive = true;
				if (preg_match('/Windows Phone 10/u', $ua)) $falsepositive = true;

				/* Prevent from OSes that claim to be 'like' Android from matching */
				if (preg_match('/like Android/u', $ua)) $falsepositive = true;
				if (preg_match('/COS like Android/u', $ua)) $falsepositive = false;

				if (!$falsepositive) {
					$this->os->name = 'Android';
					$this->os->version = new Version();

					if (preg_match('/Android(?: )?(?:AllPhone_|CyanogenMod_|OUYA )?(?:\/)?v?([0-9.]+)/u', str_replace('-update', ',', $ua), $match)) {
						$this->os->version = new Version([ 'value' => $match[1], 'details' => 3 ]);
					}

					if (preg_match('/Android [0-9][0-9].[0-9][0-9].[0-9][0-9]\(([^)]+)\);/u', str_replace('-update', ',', $ua), $match)) {
						$this->os->version = new Version([ 'value' => $match[1], 'details' => 3 ]);
					}

					if (preg_match('/Android Eclair/u', $ua)) {
						$this->os->version = new Version([ 'value' => '2.0', 'details' => 3 ]);
					}

					if (preg_match('/Android KeyLimePie/u', $ua)) {
						$this->os->version = new Version([ 'value' => '4.4', 'details' => 3 ]);
					}

					if (preg_match('/Android 5.[01].99/u', $ua)) {
						$this->os->version = new Version([ 'value' => '6', 'details' => 3, 'alias' => 'M' ]);
					}

					$this->device->type = Constants\DeviceType::MOBILE;
					if ($this->os->version->toFloat() >= 3) $this->device->type = Constants\DeviceType::TABLET;
					if ($this->os->version->toFloat() >= 4 && preg_match('/Mobile/u', $ua)) $this->device->type = Constants\DeviceType::MOBILE;


					if (preg_match('/Eclair; (?:[a-zA-Z][a-zA-Z](?:[-_][a-zA-Z][a-zA-Z])?) Build\/([^\/]*)\//u', $ua, $match)) {
						$this->device->model = $match[1];
					}

					else if (preg_match('/; ?([^;]*[^;\s])\s+[Bb]uild/u', $ua, $match)) {
						$this->device->model = $match[1];
					}

					else if (preg_match('/Linux;Android [0-9.]+,([^\)]+)\)/u', $ua, $match)) {
						$this->device->model = $match[1];
					}

					else if (preg_match('/[a-zA-Z][a-zA-Z](?:[-_][a-zA-Z][a-zA-Z])?; ([^;]*[^;\s])\s?;\s+[Bb]uild/u', $ua, $match)) {
						$this->device->model = $match[1];
					}

					else if (preg_match('/\(([^;]+);U;Android\/[^;]+;[0-9]+\*[0-9]+;CTC\/2.0\)/u', $ua, $match)) {
						$this->device->model = $match[1];
					}

					else if (preg_match('/;\s?([^;]+);\s?[0-9]+\*[0-9]+;\s?CTC\/2.0/u', $ua, $match)) {
						$this->device->model = $match[1];
					}

					else if (preg_match('/Android [^;]+; (?:[a-zA-Z][a-zA-Z](?:[-_][a-zA-Z][a-zA-Z])?; )?([^)]+)\)/u', $ua, $match)) {
						if (!preg_match('/[a-zA-Z][a-zA-Z](?:[-_][a-zA-Z][a-zA-Z])?/u', $ua)) {
							$this->device->model = $match[1];
						}
					}

					/* Sometimes we get a model name that starts with Android, in that case it is a mismatch and we should ignore it */
					if (isset($this->device->model) && substr($this->device->model, 0, 7) == 'Android') {
						$this->device->model = null;
					}

					/* Sometimes we get version and API numbers and display size too */
					if (isset($this->device->model) && preg_match('/(.*) - [0-9\.]+ - (?:with Google Apps - )?API [0-9]+ - [0-9]+x[0-9]+/', $this->device->model, $matches)) {
						$this->device->model = $matches[1];
					}

					/* Sometimes we get a model that is actually an old style useragent */
					if (isset($this->device->model) && preg_match('/([^\/]+?)(?:\/[0-9\.]+)? (?:Android|Release)\//', $this->device->model, $matches)) {
						$this->device->model = $matches[1];
					}

					if (isset($this->device->model) && $this->device->model) {
						$this->device->identified |= Constants\Id::PATTERN;

						$device = Data\DeviceModels::identify('android', $this->device->model);
						if ($device->identified) {
							$device->identified |= $this->device->identified;
							$this->device = $device;
						}
					}

					if (preg_match('/HP eStation/u', $ua)) 	{ $this->device->manufacturer = 'HP'; $this->device->model = 'eStation'; $this->device->type = Constants\DeviceType::TABLET; $this->device->identified |= Constants\Id::MATCH_UA; $this->device->generic = false; }
					if (preg_match('/Pre\/1.0/u', $ua)) 		{ $this->device->manufacturer = 'Palm'; $this->device->model = 'Pre'; $this->device->identified |= Constants\Id::MATCH_UA; $this->device->generic = false; }
					if (preg_match('/Pre\/1.1/u', $ua)) 		{ $this->device->manufacturer = 'Palm'; $this->device->model = 'Pre Plus'; $this->device->identified |= Constants\Id::MATCH_UA; $this->device->generic = false; }
					if (preg_match('/Pre\/1.2/u', $ua)) 		{ $this->device->manufacturer = 'Palm'; $this->device->model = 'Pre 2'; $this->device->identified |= Constants\Id::MATCH_UA; $this->device->generic = false; }
					if (preg_match('/Pre\/3.0/u', $ua)) 		{ $this->device->manufacturer = 'HP'; $this->device->model = 'Pre 3'; $this->device->identified |= Constants\Id::MATCH_UA; $this->device->generic = false; }
					if (preg_match('/Pixi\/1.0/u', $ua)) 	{ $this->device->manufacturer = 'Palm'; $this->device->model = 'Pixi'; $this->device->identified |= Constants\Id::MATCH_UA; $this->device->generic = false; }
					if (preg_match('/Pixi\/1.1/u', $ua)) 	{ $this->device->manufacturer = 'Palm'; $this->device->model = 'Pixi Plus'; $this->device->identified |= Constants\Id::MATCH_UA; $this->device->generic = false; }
					if (preg_match('/P160UN?A?\/1.0/u', $ua)) { $this->device->manufacturer = 'HP'; $this->device->model = 'Veer'; $this->device->identified |= Constants\Id::MATCH_UA; $this->device->generic = false; }
				}
			}

			if (preg_match('/\(Linux; ([^;]+) Build/u', $ua, $match)) {
				$device = Data\DeviceModels::identify('android', $match[1]);
				if ($device->identified) {
					$device->identified |= Constants\Id::PATTERN;
					$device->identified |= $this->device->identified;

					$this->os->name = 'Android';
					$this->device = $device;
				}
			}


			/****************************************************
			 *		Aliyun OS
			 */

			if (preg_match('/Aliyun/u', $ua) || preg_match('/YunOs/ui', $ua)) {
				$this->os->name = 'Aliyun OS';
				$this->os->family = new Family([ 'name' => 'Android' ]);
				$this->os->version = new Version();

				if (preg_match('/YunOs[ \/]([0-9.]+)/iu', $ua, $match)) {
					$this->os->version = new Version([ 'value' => $match[1], 'details' => 3 ]);
				}

				if (preg_match('/AliyunOS ([0-9.]+)/u', $ua, $match)) {
					$this->os->version = new Version([ 'value' => $match[1], 'details' => 3 ]);
				}

				$this->device->type = Constants\DeviceType::MOBILE;

				if (preg_match('/; ([^;]*[^;\s])\s+Build/u', $ua, $match)) {
					$this->device->model = $match[1];
				}

				if (isset($this->device->model)) {
					$this->device->identified |= Constants\Id::PATTERN;

					$device = Data\DeviceModels::identify('android', $this->device->model);
					if ($device->identified) {
						$device->identified |= $this->device->identified;
						$this->device = $device;
					}
				}
			}

			if (preg_match('/Android/u', $ua)) {
				if (preg_match('/Android v(1.[0-9][0-9])_[0-9][0-9].[0-9][0-9]-/u', $ua, $match)) {
					$this->os->name = 'Aliyun OS';
					$this->os->family = new Family([ 'name' => 'Android' ]);
					$this->os->version = new Version([ 'value' => $match[1], 'details' => 3 ]);
				}

				if (preg_match('/Android (1.[0-9].[0-9].[0-9]+)-R?T/u', $ua, $match)) {
					$this->os->name = 'Aliyun OS';
					$this->os->family = new Family([ 'name' => 'Android' ]);
					$this->os->version = new Version([ 'value' => $match[1], 'details' => 3 ]);
				}

				if (preg_match('/Android ([12].[0-9].[0-9]+)-R-20[0-9]+/u', $ua, $match)) {
					$this->os->name = 'Aliyun OS';
					$this->os->family = new Family([ 'name' => 'Android' ]);
					$this->os->version = new Version([ 'value' => $match[1], 'details' => 3 ]);
				}

				if (preg_match('/Android 20[0-9]+/u', $ua, $match)) {
					$this->os->name = 'Aliyun OS';
					$this->os->family = new Family([ 'name' => 'Android' ]);
					$this->os->version = null;
				}
			}



			/****************************************************
			 *		Baidu Yi
			 */

			if (preg_match('/Baidu Yi/u', $ua)) {
				$this->os->name = 'Baidu Yi';
				$this->os->version = null;
			}




			/****************************************************
			 *		Google TV
			 */

			if (preg_match('/GoogleTV/u', $ua)) {
				$this->os->name = 'Google TV';
				$this->os->family = new Family([ 'name' => 'Android' ]);

				$this->device->type = Constants\DeviceType::TELEVISION;

				if (preg_match('/GoogleTV [0-9\.]+; ?([^;]*[^;\s])\s+Build/u', $ua, $match)) {
					$this->device->model = $match[1];
				}

				if (isset($this->device->model) && $this->device->model) {
					$this->device->identified |= Constants\Id::PATTERN;

					$device = Data\DeviceModels::identify('android', $this->device->model);
					if ($device->identified) {
						$device->identified |= $this->device->identified;
						$this->device = $device;
					}
				}
			}


			/****************************************************
			 *		Chromecast
			 */

			if (preg_match('/CrKey/u', $ua) && !preg_match('/Espial/u', $ua)) {
				$this->device->manufacturer = 'Google';
				$this->device->model = 'Chromecast';
				$this->device->type = Constants\DeviceType::TELEVISION;
				$this->device->identified |= Constants\Id::MATCH_UA;
				$this->device->generic = false;
			}


			/****************************************************
			 *		WoPhone
			 */

			if (preg_match('/WoPhone/u', $ua)) {
				$this->os->name = 'WoPhone';

				if (preg_match('/WoPhone\/([0-9\.]*)/u', $ua, $match)) {
					$this->os->version = new Version([ 'value' => $match[1] ]);
				}

				$this->device->type = Constants\DeviceType::MOBILE;
			}

			/****************************************************
			 *		BlackBerry
			 */

			if (preg_match('/BlackBerry/u', $ua) && !preg_match('/BlackBerry Runtime for Android Apps/u', $ua)) {
				$this->os->name = 'BlackBerry OS';

				$this->device->model = 'BlackBerry';
				$this->device->manufacturer = 'RIM';
				$this->device->type = Constants\DeviceType::MOBILE;
				$this->device->identified = Constants\Id::INFER;

				if (!preg_match('/Opera/u', $ua)) {
					if (preg_match('/BlackBerry([0-9]*)\/([0-9.]*)/u', $ua, $match)) {
						$this->device->model = $match[1];
						$this->os->version = new Version([ 'value' => $match[2], 'details' => 2 ]);
					}

					if (preg_match('/; BlackBerry ([0-9]*);/u', $ua, $match)) {
						$this->device->model = $match[1];
					}

					if (preg_match('/; ([0-9]+)[^;\)]+\)/u', $ua, $match)) {
						$this->device->model = $match[1];
					}

					if (preg_match('/Version\/([0-9.]*)/u', $ua, $match)) {
						$this->os->version = new Version([ 'value' => $match[1], 'details' => 2 ]);
					}

					if (isset($this->os->version) && $this->os->version->toFloat() >= 10) {
						$this->os->name = 'BlackBerry';
					}

					if ($this->device->model) {
						$device = Data\DeviceModels::identify('blackberry', $this->device->model);

						if ($device->identified) {
							$device->identified |= $this->device->identified;
							$this->device = $device;
						}
					}
				}
			}

			if (preg_match('/\(BB(1[^;]+); ([^\)]+)\)/u', $ua, $match)) {
				$this->os->name = 'BlackBerry';
				$this->os->version = new Version([ 'value' => $match[1], 'details' => 2 ]);

				$this->device->manufacturer = 'BlackBerry';
				$this->device->model = $match[2];

				if ($this->device->model == 'Kbd') {
					$this->device->model = 'Q series or Passport';
				}

				if ($this->device->model == 'Touch') {
					$this->device->model = 'A or Z series';
				}

				$this->device->type = preg_match('/Mobile/u', $ua) ? Constants\DeviceType::MOBILE : Constants\DeviceType::TABLET;
				$this->device->identified |= Constants\Id::MATCH_UA;

				if (preg_match('/Version\/([0-9.]*)/u', $ua, $match)) {
					$this->os->version = new Version([ 'value' => $match[1], 'details' => 2 ]);
				}
			}

			/****************************************************
			 *		BlackBerry PlayBook
			 */

			if (preg_match('/RIM Tablet OS ([0-9.]*)/u', $ua, $match)) {
				$this->os->name = 'BlackBerry Tablet OS';
				$this->os->version = new Version([ 'value' => $match[1], 'details' => 2 ]);

				$this->device->manufacturer = 'RIM';
				$this->device->model = 'BlackBerry PlayBook';
				$this->device->type = Constants\DeviceType::TABLET;
				$this->device->identified |= Constants\Id::MATCH_UA;
			}

			else if (preg_match('/\(PlayBook;/u', $ua) && preg_match('/PlayBook Build\/([0-9.]*)/u', $ua, $match)) {
				$this->os->name = 'BlackBerry Tablet OS';
				$this->os->version = new Version([ 'value' => $match[1], 'details' => 2 ]);

				$this->device->manufacturer = 'RIM';
				$this->device->model = 'BlackBerry PlayBook';
				$this->device->type = Constants\DeviceType::TABLET;
				$this->device->identified |= Constants\Id::MATCH_UA;
			}

			else if (preg_match('/PlayBook/u', $ua) && !preg_match('/Android/u', $ua)) {
				if (preg_match('/Version\/([0-9.]*)/u', $ua, $match)) {
					$this->os->name = 'BlackBerry Tablet OS';
					$this->os->version = new Version([ 'value' => $match[1], 'details' => 2 ]);

					$this->device->manufacturer = 'RIM';
					$this->device->model = 'BlackBerry PlayBook';
					$this->device->type = Constants\DeviceType::TABLET;
					$this->device->identified |= Constants\Id::MATCH_UA;
				}
			}


			/****************************************************
			 *		WebOS
			 */

			if (preg_match('/(?:web|hpw)OS\/(?:HP webOS )?([0-9.]*)/u', $ua, $match)) {
				$this->os->name = 'webOS';
				$this->os->version = new Version([ 'value' => $match[1], 'details' => 2 ]);
				$this->device->type = preg_match('/Tablet/iu', $ua) ? Constants\DeviceType::TABLET : Constants\DeviceType::MOBILE;
				$this->device->generic = false;

				if (preg_match('/Pre\/1.0/u', $ua)) $this->device->model = 'Pre';
				if (preg_match('/Pre\/1.1/u', $ua)) $this->device->model = 'Pre Plus';
				if (preg_match('/Pre\/1.2/u', $ua)) $this->device->model = 'Pre 2';
				if (preg_match('/Pre\/3.0/u', $ua)) $this->device->model = 'Pre 3';
				if (preg_match('/Pixi\/1.0/u', $ua)) $this->device->model = 'Pixi';
				if (preg_match('/Pixi\/1.1/u', $ua)) $this->device->model = 'Pixi Plus';
				if (preg_match('/P160UN?A?\/1.0/u', $ua)) $this->device->model = 'Veer';
				if (preg_match('/TouchPad\/1.0/u', $ua)) $this->device->model = 'TouchPad';
				if (isset($this->device->model)) $this->device->manufacturer = preg_match('/hpwOS/u', $ua) ? 'HP' : 'Palm';

				if (preg_match('/Emulator\//u', $ua) || preg_match('/Desktop\//u', $ua)) {
					$this->device->type = Constants\DeviceType::EMULATOR;
					$this->device->manufacturer = null;
					$this->device->model = null;
				}

				$this->device->identified |= Constants\Id::MATCH_UA;
			}

			if (preg_match('/elite\/fzz/u', $ua, $match)) {
				$this->os->name = 'webOS';
			}


			/****************************************************
			 *		S80
			 */

			if (preg_match('/Series80\/([0-9.]*)/u', $ua, $match)) {
				$this->os->name = 'Series80';
				$this->os->version = new Version([ 'value' => $match[1] ]);

				if (preg_match('/Nokia([^\/;\)]+)[\/|;|\)]/u', $ua, $match)) {
					if ($match[1] != 'Browser') {
						$this->device->manufacturer = 'Nokia';
						$this->device->model = Data\DeviceModels::cleanup($match[1]);
						$this->device->identified |= Constants\Id::PATTERN;
					}
				}
			}


			/****************************************************
			 *		S60
			 */

			if (preg_match('/Symbian/u', $ua) || preg_match('/Series[ ]?60/u', $ua) || preg_match('/S60;/u', $ua) || preg_match('/S60V/u', $ua)) {
				$this->os->name = 'Series60';

				if (preg_match('/SymbianOS\/9.1/u', $ua) && !preg_match('/Series60/u', $ua)) {
					$this->os->version = new Version([ 'value' => '3.0' ]);
				}

				if (preg_match('/Series60\/([0-9.]*)/u', $ua, $match)) {
					$this->os->version = new Version([ 'value' => $match[1] ]);
				}

				if (preg_match('/S60V([0-9.]*)/u', $ua, $match)) {
					$this->os->version = new Version([ 'value' => $match[1] ]);
				}

				if (preg_match('/Nokia([^\/;\)]+)[\/|;|\)]/u', $ua, $match)) {
					if ($match[1] != 'Browser') {
						$this->device->manufacturer = 'Nokia';
						$this->device->model = Data\DeviceModels::cleanup($match[1]);
						$this->device->identified |= Constants\Id::PATTERN;
					}
				}

				if (preg_match('/Symbian; U; (?:Nokia)?([^;]+); [a-z][a-z](?:\-[a-z][a-z])?/u', $ua, $match)) {
					$this->device->manufacturer = 'Nokia';
					$this->device->model = Data\DeviceModels::cleanup($match[1]);
					$this->device->identified |= Constants\Id::PATTERN;
				}

				if (preg_match('/Vertu([^\/;]+)[\/|;]/u', $ua, $match)) {
					$this->device->manufacturer = 'Vertu';
					$this->device->model = Data\DeviceModels::cleanup($match[1]);
					$this->device->identified |= Constants\Id::PATTERN;
				}

				if (preg_match('/Samsung\/([^;]*);/u', $ua, $match)) {
					$this->device->manufacturer = 'Samsung';
					$this->device->model = Data\DeviceModels::cleanup($match[1]);
					$this->device->identified |= Constants\Id::PATTERN;
				}

				if (isset($this->device->model)) {
					$device = Data\DeviceModels::identify('s60', $this->device->model);
					if ($device->identified) {
						$device->identified |= $this->device->identified;
						$this->device = $device;
					}
				}

				$this->device->type = Constants\DeviceType::MOBILE;
			}

			/****************************************************
			 *		S40
			 */

			if (preg_match('/Series40/u', $ua)) {
				$this->os->name = 'Series40';

				if (preg_match('/Nokia([^\/]+)\//u', $ua, $match)) {
					$this->device->manufacturer = 'Nokia';
					$this->device->model = Data\DeviceModels::cleanup($match[1]);
					$this->device->identified |= Constants\Id::PATTERN;
				}

				if (isset($this->device->model)) {
					$device = Data\DeviceModels::identify('s40', $this->device->model);
					if ($device->identified) {
						$device->identified |= $this->device->identified;
						$this->device = $device;
					}
				}

				if (isset($this->device->model)) {
					$device = Data\DeviceModels::identify('asha', $this->device->model);
					if ($device->identified) {
						$device->identified |= $this->device->identified;
						$this->os->name = 'Nokia Asha Platform';
						$this->os->version = new Version([ 'value' => '1.0' ]);
						$this->device = $device;
					}

					if (preg_match('/java_runtime_version=Nokia_Asha_([0-9_]+);/u', $ua, $match)) {
						$this->os->version = new Version([ 'value' => str_replace('_', '.', $match[1]) ]);
					}
				}

				$this->device->type = Constants\DeviceType::MOBILE;
			}

			/****************************************************
			 *		S30
			 */

			if (preg_match('/Series30/u', $ua)) {
				$this->os->name = 'Series30';

				if (preg_match('/Nokia([^\/]+)\//u', $ua, $match)) {
					$this->device->manufacturer = 'Nokia';
					$this->device->model = Data\DeviceModels::cleanup($match[1]);
					$this->device->identified |= Constants\Id::PATTERN;
				}

				if (isset($this->device->model)) {
					$device = Data\DeviceModels::identify('s30', $this->device->model);
					if ($device->identified) {
						$device->identified |= $this->device->identified;
						$this->device = $device;
					}
				}

				$this->device->type = Constants\DeviceType::MOBILE;
			}

			/****************************************************
			 *		MeeGo
			 */

			if (preg_match('/MeeGo/u', $ua)) {
				$this->os->name = 'MeeGo';
				$this->device->type = Constants\DeviceType::MOBILE;

				if (preg_match('/Nokia([^\)]+)\)/u', $ua, $match)) {
					$this->device->manufacturer = 'Nokia';
					$this->device->model = Data\DeviceModels::cleanup($match[1]);
					$this->device->identified |= Constants\Id::PATTERN;
					$this->device->generic = false;
				}
			}

			/****************************************************
			 *		Maemo
			 */

			if (preg_match('/Maemo/u', $ua)) {
				$this->os->name = 'Maemo';
				$this->device->type = Constants\DeviceType::MOBILE;

				if (preg_match('/(N[0-9]+)/u', $ua, $match)) {
					$this->device->manufacturer = 'Nokia';
					$this->device->model = $match[1];
					$this->device->identified |= Constants\Id::PATTERN;
					$this->device->generic = false;
				}
			}

			/****************************************************
			 *		Tizen
			 */

			if (preg_match('/Tizen/u', $ua)) {
				$this->os->name = 'Tizen';

				if (preg_match('/Tizen[\/ ]([0-9.]*[0-9])/u', $ua, $match)) {
					$this->os->version = new Version([ 'value' => $match[1] ]);
				}

				if (preg_match('/\(([^;]+); ([^\/]+)\//u', $ua, $match)) {
					$falsepositive = false;
					if (strtoupper($match[1]) == 'SMART-TV') $falsepositive = true;
					if ($match[1] == 'Linux') $falsepositive = true;
					if ($match[1] == 'Tizen') $falsepositive = true;

					if (!$falsepositive) {
						$this->device->manufacturer = $match[1];
						$this->device->model = $match[2];
						$this->device->identified = Constants\Id::PATTERN;

						$device = Data\DeviceModels::identify('tizen', $match[2]);

						if ($device->identified) {
							$device->identified |= $this->device->identified;
							$this->device = $device;
						}
					}
				}

				if (preg_match('/\s*([^;]+);\s+([^;\)]+)\)/u', $ua, $match)) {
					$falsepositive = false;
					if ($match[1] == 'U') $falsepositive = true;
					if (substr($match[2], 0, 5) == 'Tizen') $falsepositive = true;
					if (substr($match[2], 0, 11) == 'AppleWebKit') $falsepositive = true;
					if (preg_match("/^[a-z]{2,2}(?:\-[a-z]{2,2})?$/", $match[2])) $falsepositive = true;

					if (!$falsepositive) {
						$this->device->model = $match[2];
						$this->device->identified = Constants\Id::PATTERN;

						$device = Data\DeviceModels::identify('tizen', $match[2]);

						if ($device->identified) {
							$device->identified |= $this->device->identified;
							$this->device = $device;
						}
					}
				}


				if (!$this->device->type && preg_match('/Mobile/iu', $ua, $match)) {
					$this->device->type = Constants\DeviceType::MOBILE;
				}


				if (preg_match('/\(SMART[ -]TV;/iu', $ua, $match)) {
					$this->device->type = Constants\DeviceType::TELEVISION;
					$this->device->manufacturer = 'Samsung';
					$this->device->series = 'Smart TV';
					$this->device->identified = Constants\Id::PATTERN;
				}


				if (preg_match('/(?:Samsung|Tizen ?)Browser\/([0-9.]*)/u', $ua, $match)) {
					$this->browser->name = "Samsung Browser";
					$this->browser->channel = null;
					$this->browser->stock = true;
					$this->browser->version = new Version([ 'value' => $match[1] ]);
					$this->browser->channel = null;
				}
			}

			if (preg_match('/Linux\; U\; Android [0-9.]+\; ko\-kr\; SAMSUNG\; (NX[0-9]+[^\)]]*)/u', $ua, $match)) {
				$this->os->name = 'Tizen';
				$this->os->version = null;

				$this->device->type = Constants\DeviceType::CAMERA;
				$this->device->manufacturer = 'Samsung';
				$this->device->model = $match[1];
				$this->device->identified = Constants\Id::PATTERN;
			}


			/****************************************************
			 *		Jolla Sailfish
			 */

			if (preg_match('/Sailfish;/u', $ua)) {
				$this->os->name = 'Sailfish';
				$this->os->version = null;

				if (preg_match('/Jolla;/u', $ua)) {
					$this->device->manufacturer = 'Jolla';
				}

				if (preg_match('/Mobile/u', $ua)) { 
					$this->device->model = 'Phone';
					$this->device->type = Constants\DeviceType::MOBILE;
					$this->device->identified = Constants\Id::PATTERN;
				}

				if (preg_match('/Tablet/u', $ua)) { 
					$this->device->model = 'Tablet';
					$this->device->type = Constants\DeviceType::TABLET;
					$this->device->identified = Constants\Id::PATTERN;
				}
			}

			/****************************************************
			 *		Bada
			 */

			if (preg_match('/[b|B]ada/u', $ua)) {
				$this->os->name = 'Bada';

				if (preg_match('/[b|B]ada[\/ ]([0-9.]*)/u', $ua, $match)) {
					$this->os->version = new Version([ 'value' => $match[1], 'details' => 2 ]);
				}

				$this->device->type = Constants\DeviceType::MOBILE;

				if (preg_match('/\(([^;]+); ([^\/]+)\//u', $ua, $match)) {
					if ($match[1] != 'Bada') {
						$this->device->manufacturer = $match[1];
						$this->device->model = $match[2];
						$this->device->identified = Constants\Id::PATTERN;

						$device = Data\DeviceModels::identify('bada', $match[2]);

						if ($device->identified) {
							$device->identified |= $this->device->identified;
							$this->device = $device;
						}
					}
				}
			}

			/****************************************************
			 *		Brew
			 */

			if (preg_match('/BREW/ui', $ua) || preg_match('/BMP( [0-9.]*)?; U/u', $ua) || preg_match('/BMP\/([0-9.]*)/u', $ua)) {
				$this->os->name = 'Brew';

				if (preg_match('/; Brew ([0-9.]*);/iu', $ua, $match)) {
					$this->os->version = new Version([ 'value' => $match[1] ]);
				}

				if (preg_match('/BREW; U; ([0-9.]*)/iu', $ua, $match)) {
					$this->os->version = new Version([ 'value' => $match[1] ]);
				}

				else if (preg_match('/BREW MP ([0-9.]*)/iu', $ua, $match)) {
					$this->os->version = new Version([ 'value' => $match[1] ]);
				}

				else if (preg_match('/[\(;]BREW[\/ ]([0-9.]*)/iu', $ua, $match)) {
					$this->os->version = new Version([ 'value' => $match[1] ]);
				}

				else if (preg_match('/BMP ([0-9.]*); U/iu', $ua, $match)) {
					$this->os->version = new Version([ 'value' => $match[1] ]);
				}

				else if (preg_match('/BMP\/([0-9.]*)/iu', $ua, $match)) {
					$this->os->version = new Version([ 'value' => $match[1] ]);
				}


				$this->device->type = Constants\DeviceType::MOBILE;

				if (preg_match('/(?:Brew MP|BREW|BMP) [^;]+; U; [^;]+; ([^;]+); NetFront[^\)]+\) [^\s]+ ([^\s]+)/u', $ua, $match)) {
					$this->device->manufacturer = trim($match[1]);
					$this->device->model = $match[2];
					$this->device->identified = Constants\Id::PATTERN;

					$device = Data\DeviceModels::identify('brew', $match[2]);

					if ($device->identified) {
						$device->identified |= $this->device->identified;
						$this->device = $device;
					}
				}

				if (preg_match('/\(([^;]+);U;REX\/[^;]+;BREW\/[^;]+;(?:.*;)?[0-9]+\*[0-9]+(?:;CTC\/2.0)?\)/u', $ua, $match)) {
					$this->device->model = $match[1];
					$this->device->identified = Constants\Id::PATTERN;

					$device = Data\DeviceModels::identify('brew', $match[1]);

					if ($device->identified) {
						$device->identified |= $this->device->identified;
						$this->device = $device;
					}
				}
			}

			/****************************************************
			 *		MTK
			 */

			if (preg_match('/\(MTK;/u', $ua) || preg_match('/\/MTK /u', $ua)) {
				$this->os->name = 'MTK';
				$this->device->type = Constants\DeviceType::MOBILE;
			}

			/****************************************************
			 *		MAUI Runtime
			 */

			if (preg_match('/\(MAUI Runtime;/u', $ua) || preg_match('/MAUI[_-][bB]rowser/u', $ua) || preg_match('/Browser\/MAUI/u', $ua)) {
				$this->os->name = 'MAUI Runtime';
				$this->device->type = Constants\DeviceType::MOBILE;
			}

			/****************************************************
			 *		VRE
			 */

			if (preg_match('/\(VRE;/u', $ua)) {
				$this->os->name = 'VRE';
				$this->device->type = Constants\DeviceType::MOBILE;
			}

			/****************************************************
			 *		SpreadTrum
			 */

			if (preg_match('/\(SpreadTrum;/u', $ua)) {
				$this->os->name = 'SpreadTrum';
				$this->device->type = Constants\DeviceType::MOBILE;
			}

			/****************************************************
			 *		ThreadX
			 */

			if (preg_match('/ThreadX(?:_OS)?\/([0-9.]*)/ui', $ua, $match)) {
				$this->os->name = 'ThreadX';
				$this->os->version = new Version([ 'value' => $match[1] ]);
			}

			/****************************************************
			 *		COS
			 */

			if (preg_match('/COS like Android/ui', $ua, $match)) {
				$this->os->name = 'COS';
				$this->os->family = new Family([ 'name' => 'Android' ]);
				$this->os->version = null;
				$this->device->type = Constants\DeviceType::MOBILE;
			}

			if (preg_match('/COSBrowser\//ui', $ua, $match)) {
				$this->os->name = 'COS';
				$this->os->family = new Family([ 'name' => 'Android' ]);
			}

			if (preg_match('/COS\/([0-9.]*)/ui', $ua, $match)) {
				$this->os->name = 'COS';
				$this->os->family = new Family([ 'name' => 'Android' ]);
				$this->os->version = new Version([ 'value' => $match[1], 'details' => 2 ]);
			}

			if (preg_match('/(?:\(|; )COS/ui', $ua, $match)) {
				$this->os->name = 'COS';
				$this->os->family = new Family([ 'name' => 'Android' ]);
			}

			if (preg_match('/(?:\(|; )Chinese Operating System ([0-9]\.[0-9.]*);/ui', $ua, $match)) {
				$this->os->name = 'COS';
				$this->os->family = new Family([ 'name' => 'Android' ]);
				$this->os->version = new Version([ 'value' => $match[1], 'details' => 2 ]);
			}

			if (preg_match('/(?:\(|; )COS ([0-9]\.[0-9.]*);/ui', $ua, $match)) {
				$this->os->name = 'COS';
				$this->os->family = new Family([ 'name' => 'Android' ]);
				$this->os->version = new Version([ 'value' => $match[1], 'details' => 2 ]);
			}


			/****************************************************
			 *		CrOS
			 */

			if (preg_match('/CrOS/u', $ua)) {
				$this->os->name = 'Chrome OS';
				$this->device->type = Constants\DeviceType::DESKTOP;
			}

			/****************************************************
			 *		Joli OS
			 */

			if (preg_match('/Joli OS\/([0-9.]*)/ui', $ua, $match)) {
				$this->os->name = 'Joli OS';
				$this->os->version = new Version([ 'value' => $match[1] ]);
				$this->device->type = Constants\DeviceType::DESKTOP;
			}

			/****************************************************
			 *		BeOS
			 */

			if (preg_match('/BeOS/u', $ua)) {
				$this->os->name = 'BeOS';
				$this->device->type = Constants\DeviceType::DESKTOP;
			}

			/****************************************************
			 *		Haiku
			 */

			if (preg_match('/Haiku/u', $ua)) {
				$this->os->name = 'Haiku';
				$this->device->type = Constants\DeviceType::DESKTOP;
			}

			/****************************************************
			 *		QNX
			 */

			if (preg_match('/QNX/u', $ua)) {
				$this->os->name = 'QNX';
				$this->device->type = Constants\DeviceType::MOBILE;
			}

			/****************************************************
			 *		OS/2 Warp
			 */

			if (preg_match('/OS\/2; (?:U; )?Warp ([0-9.]*)/iu', $ua, $match)) {
				$this->os->name = 'OS/2 Warp';
				$this->os->version = new Version([ 'value' => $match[1] ]);
				$this->device->type = Constants\DeviceType::DESKTOP;
			}

			/****************************************************
			 *		Palm OS
			 */

			if (preg_match('/PalmOS/iu', $ua, $match)) {
				$this->os->name = 'Palm OS';
				$this->device->type = Constants\DeviceType::MOBILE;

				if (preg_match('/; ([^;)]+)\)/u', $ua, $match)) {
					$device = Data\DeviceModels::identify('palmos', $match[1]);

					if ($device->identified) {
						$device->identified |= $this->device->identified;
						$this->device = $device;
					}
				}
			}

			if (preg_match('/Palm OS ([0-9.]*)/iu', $ua, $match)) {
				$this->os->name = 'Palm OS';
				$this->os->version = new Version([ 'value' => $match[1] ]);
				$this->device->type = Constants\DeviceType::MOBILE;
			}

			if (preg_match('/PalmSource/u', $ua, $match)) {
				$this->os->name = 'Palm OS';
				$this->os->version = null;
				$this->device->type = Constants\DeviceType::MOBILE;

				if (preg_match('/PalmSource\/([^;]+)/u', $ua, $match)) {
					$this->device->model = $match[1];
					$this->device->identified = Constants\Id::PATTERN;
				}

				if (isset($this->device->model) && $this->device->model) {
					$device = Data\DeviceModels::identify('palmos', $this->device->model);

					if ($device->identified) {
						$device->identified |= $this->device->identified;
						$this->device = $device;
					}
				}
			}

			/****************************************************
			 *		Grid OS
			 */

			if (preg_match('/Grid OS ([0-9.]*)/iu', $ua, $match)) {
				$this->os->name = 'Grid OS';
				$this->os->version = new Version([ 'value' => $match[1] ]);
				$this->device->type = Constants\DeviceType::TABLET;
			}

			/****************************************************
			 *		RISC OS
			 */

			if (preg_match('/RISC OS/iu', $ua, $match)) {
				$this->os->name = 'RISC OS';
				$this->device->type = Constants\DeviceType::DESKTOP;

				if (preg_match('/RISC OS(?:-NC)? ([0-9.]*)/iu', $ua, $match)) {
					$this->os->version = new Version([ 'value' => $match[1] ]);
				}
			}

			/****************************************************
			 *		AmigaOS
			 */

			if (preg_match('/Amiga/iu', $ua, $match)) {
				$this->os->name = 'AmigaOS';
				$this->device->type = Constants\DeviceType::DESKTOP;

				if (preg_match('/AmigaOS ([0-9.]*)/iu', $ua, $match)) {
					$this->os->version = new Version([ 'value' => $match[1] ]);
				}
			}

			/****************************************************
			 *		MorphOS
			 */

			if (preg_match('/MorphOS/iu', $ua, $match)) {
				$this->os->name = 'MorphOS';
				$this->device->type = Constants\DeviceType::DESKTOP;

				if (preg_match('/MorphOS ([0-9.]*)/iu', $ua, $match)) {
					$this->os->version = new Version([ 'value' => $match[1] ]);
				}
			}

			/****************************************************
			 *		AROS
			 */

			if (preg_match('/AROS/u', $ua, $match)) {
				$this->os->name = 'AROS';
				$this->device->type = Constants\DeviceType::DESKTOP;
			}

			/****************************************************
			 *		Kindle
			 */

			if (preg_match('/Kindle/u', $ua) && !preg_match('/Fire/u', $ua)) {
				$this->os->name = '';

				$this->device->manufacturer = 'Amazon';
				$this->device->series = 'Kindle';
				$this->device->type = Constants\DeviceType::EREADER;

				if (preg_match('/Kindle\/1.0/u', $ua)) $this->device->model = 'Kindle 1';
				if (preg_match('/Kindle\/2.0/u', $ua)) $this->device->model = 'Kindle 2';
				if (preg_match('/Kindle\/2.5/u', $ua)) $this->device->model = 'Kindle 2';
				if (preg_match('/Kindle\/3.0/u', $ua)) $this->device->model = 'Kindle 3';
				if (preg_match('/Kindle\/3.0\+/u', $ua)) $this->device->model = 'Kindle 3 or later';
				if (preg_match('/Kindle SkipStone/u', $ua)) $this->device->model = 'Kindle Touch or later';

				if (!empty($this->device->model)) $this->device->series = null;

				$this->device->identified |= Constants\Id::MATCH_UA;
			}

			/****************************************************
			 *		NOOK
			 */

			if (preg_match('/nook browser/u', $ua)) {
				$this->os->name = 'Android';

				$this->device->manufacturer = 'Barnes & Noble';
				$this->device->series = 'NOOK';
				$this->device->type = Constants\DeviceType::EREADER;
				$this->device->identified |= Constants\Id::MATCH_UA;
			}

			/****************************************************
			 *		Bookeen
			 */

			if (preg_match('/bookeen\/cybook/u', $ua)) {
				$this->os->name = '';

				$this->device->manufacturer = 'Bookeen';
				$this->device->series = 'Cybook';
				$this->device->type = Constants\DeviceType::EREADER;

				$this->device->identified |= Constants\Id::MATCH_UA;
			}

			/****************************************************
			 *		Kobo Reader
			 */

			if (preg_match('/Kobo Touch/u', $ua, $match)) {
				$this->os->name = '';
				$this->os->version = null;

				$this->device->manufacturer = 'Kobo';
				$this->device->series = 'eReader';
				$this->device->type = Constants\DeviceType::EREADER;
				$this->device->identified |= Constants\Id::MATCH_UA;
			}

			/****************************************************
			 *		Sony Reader
			 */

			if (preg_match('/EBRD([0-9]+)/u', $ua, $match)) {
				$this->os->name = '';


				$this->device->manufacturer = 'Sony';
				$this->device->series = 'Reader';
				$this->device->type = Constants\DeviceType::EREADER;
				$this->device->identified |= Constants\Id::MATCH_UA;

				switch($match[1]) {
					case '1101':	$this->device->model = 'PRS-T1'; $this->device->generic = false; break;
					case '1102':	$this->device->model = 'PRS-T1'; $this->device->generic = false; break;
					case '1201':	$this->device->model = 'PRS-T2'; $this->device->generic = false; break;
					case '1301':	$this->device->model = 'PRS-T3'; $this->device->generic = false; break;
				}
			}

			/****************************************************
			 *		PocketBook
			 */

			if (preg_match('/PocketBook\/([0-9]+)/u', $ua, $match)) {
				$this->os->name = '';

				$this->device->manufacturer = 'PocketBook';
				$this->device->type = Constants\DeviceType::EREADER;
				$this->device->identified |= Constants\Id::MATCH_UA;

				switch($match[1]) {
					case '515':	$this->device->model = 'Mini'; $this->device->generic = false; break;
					case '614':	$this->device->model = 'Basic 2'; $this->device->generic = false; break;
					case '622':	$this->device->model = 'Touch'; $this->device->generic = false; break;
					case '623':	$this->device->model = 'Touch Lux'; $this->device->generic = false; break;
					case '624':	$this->device->model = 'Basic Touch'; $this->device->generic = false; break;
					case '626':	$this->device->model = 'Touch Lux 2'; $this->device->generic = false; break;
					case '630':	$this->device->model = 'Sense'; $this->device->generic = false; break;
					case '640':	$this->device->model = 'Auqa'; $this->device->generic = false; break;
					case '650':	$this->device->model = 'Ultra'; $this->device->generic = false; break;
					case '801':	$this->device->model = 'Color Lux'; $this->device->generic = false; break;
					case '840':	$this->device->model = 'InkPad'; $this->device->generic = false; break;
				}
			}

			/****************************************************
			 *		iRiver
			 */

			if (preg_match('/Iriver ;/u', $ua)) {
				$this->os->name = '';

				$this->device->manufacturer = 'iRiver';
				$this->device->series = 'Story';
				$this->device->type = Constants\DeviceType::EREADER;

				if (preg_match('/EB07/u', $ua)) {
					$this->device->model = 'Story HD EB07'; $this->device->generic = false;
				}

				$this->device->identified |= Constants\Id::MATCH_UA;
			}

			/****************************************************
			 *		Tesla Model S in-car browser
			 */

			if (preg_match('/QtCarBrowser/u', $ua)) {
				$this->os->name = '';

				$this->device->manufacturer = 'Tesla';
				$this->device->model = 'Model S';
				$this->device->type = Constants\DeviceType::CAR;
				$this->device->identified |= Constants\Id::MATCH_UA;
			}


			/****************************************************
			 *		Nintendo
			 */

			if (preg_match('/Nintendo Wii/u', $ua)) {
				$this->os->name = '';

				$this->device->manufacturer = 'Nintendo';
				$this->device->model = 'Wii';
				$this->device->type = Constants\DeviceType::GAMING;
				$this->device->subtype = Constants\DeviceSubType::CONSOLE;
				$this->device->identified |= Constants\Id::MATCH_UA;
				$this->device->generic = false;
			}

			if (preg_match('/Nintendo Wii ?U/u', $ua)) {
				$this->os->name = '';

				$this->device->manufacturer = 'Nintendo';
				$this->device->model = 'Wii U';
				$this->device->type = Constants\DeviceType::GAMING;
				$this->device->subtype = Constants\DeviceSubType::CONSOLE;
				$this->device->identified |= Constants\Id::MATCH_UA;
				$this->device->generic = false;
			}

			if (preg_match('/Nintendo DS/u', $ua)) {
				$this->os->name = '';

				$this->device->manufacturer = 'Nintendo';
				$this->device->model = 'DS';
				$this->device->type = Constants\DeviceType::GAMING;
				$this->device->subtype = Constants\DeviceSubType::PORTABLE;
				$this->device->identified |= Constants\Id::MATCH_UA;
				$this->device->generic = false;
			}

			if (preg_match('/Nintendo DSi/u', $ua)) {
				$this->os->name = '';

				$this->device->manufacturer = 'Nintendo';
				$this->device->model = 'DSi';
				$this->device->type = Constants\DeviceType::GAMING;
				$this->device->subtype = Constants\DeviceSubType::PORTABLE;
				$this->device->identified |= Constants\Id::MATCH_UA;
				$this->device->generic = false;
			}

			if (preg_match('/Nintendo 3DS/u', $ua)) {
				$this->os->name = '';

				if (preg_match('/Version\/([0-9.]*)/u', $ua, $match)) {
					$this->os->version = new Version([ 'value' => $match[1] ]);
				}

				$this->device->manufacturer = 'Nintendo';
				$this->device->model = '3DS';
				$this->device->type = Constants\DeviceType::GAMING;
				$this->device->subtype = Constants\DeviceSubType::PORTABLE;
				$this->device->identified |= Constants\Id::MATCH_UA;
				$this->device->generic = false;
			}

			if (preg_match('/New Nintendo 3DS/u', $ua)) {
				$this->os->name = '';

				if (preg_match('/Version\/([0-9.]*)/u', $ua, $match)) {
					$this->os->version = new Version([ 'value' => $match[1] ]);
				}

				$this->device->manufacturer = 'Nintendo';
				$this->device->model = 'New 3DS';
				$this->device->type = Constants\DeviceType::GAMING;
				$this->device->subtype = Constants\DeviceSubType::PORTABLE;
				$this->device->identified |= Constants\Id::MATCH_UA;
				$this->device->generic = false;
			}

			/****************************************************
			 *		Sony Playstation
			 */

			if (preg_match('/PlayStation Portable/u', $ua)) {
				$this->os->name = '';

				$this->device->manufacturer = 'Sony';
				$this->device->model = 'Playstation Portable';
				$this->device->type = Constants\DeviceType::GAMING;
				$this->device->subtype = Constants\DeviceSubType::PORTABLE;
				$this->device->identified |= Constants\Id::MATCH_UA;
				$this->device->generic = false;
			}

			if (preg_match('/PlayStation Vita ([0-9.]*)/u', $ua, $match)) {
				$this->os->name = '';
				$this->os->version = new Version([ 'value' => $match[1] ]);

				$this->device->manufacturer = 'Sony';
				$this->device->model = 'Playstation Vita';
				$this->device->type = Constants\DeviceType::GAMING;
				$this->device->subtype = Constants\DeviceSubType::PORTABLE;
				$this->device->identified |= Constants\Id::MATCH_UA;
				$this->device->generic = false;

				if (preg_match('/VTE\//u', $ua, $match)) {
					$this->device->model = 'Playstation TV';
				}
			}

			if (preg_match('/PlayStation 3/ui', $ua)) {
				$this->os->name = '';

				if (preg_match('/PLAYSTATION 3;? ([0-9.]*)/u', $ua, $match)) {
					$this->os->version = new Version([ 'value' => $match[1] ]);
				}

				$this->device->manufacturer = 'Sony';
				$this->device->model = 'Playstation 3';
				$this->device->type = Constants\DeviceType::GAMING;
				$this->device->subtype = Constants\DeviceSubType::CONSOLE;
				$this->device->identified |= Constants\Id::MATCH_UA;
				$this->device->generic = false;
			}

			if (preg_match('/PlayStation 4/ui', $ua)) {
				$this->os->name = '';

				if (preg_match('/PlayStation 4 ([0-9.]*)/u', $ua, $match)) {
					$this->os->version = new Version([ 'value' => $match[1] ]);
				}

				$this->device->manufacturer = 'Sony';
				$this->device->model = 'Playstation 4';
				$this->device->type = Constants\DeviceType::GAMING;
				$this->device->subtype = Constants\DeviceSubType::CONSOLE;
				$this->device->identified |= Constants\Id::MATCH_UA;
				$this->device->generic = false;
			}

			/****************************************************
			 *		XBox
			 */

			if (preg_match('/Xbox\)$/u', $ua, $match)) {
				unset($this->os->name);
				unset($this->os->version);

				$this->device->manufacturer = 'Microsoft';
				$this->device->model = 'Xbox 360';
				$this->device->type = Constants\DeviceType::GAMING;
				$this->device->subtype = Constants\DeviceSubType::CONSOLE;
				$this->device->identified |= Constants\Id::MATCH_UA;
				$this->device->generic = false;
			}

			if (preg_match('/Xbox One\)/u', $ua, $match)) {
				if ($this->isOs('Windows Phone', '=', '10')) {
					$this->os->name = 'Windows';
					$this->os->version->alias = '10';
				}

				if (!$this->isOs('Windows', '=', '10')) {
					unset($this->os->name);
					unset($this->os->version);
				}

				$this->device->manufacturer = 'Microsoft';
				$this->device->model = 'Xbox One';
				$this->device->type = Constants\DeviceType::GAMING;
				$this->device->subtype = Constants\DeviceSubType::CONSOLE;
				$this->device->identified |= Constants\Id::MATCH_UA;
				$this->device->generic = false;
			}

			/****************************************************
			 *		Kin
			 */

			if (preg_match('/KIN\.(One|Two) ([0-9.]*)/ui', $ua, $match)) {
				$this->os->name = 'Kin OS';
				$this->os->version = new Version([ 'value' => $match[2], 'details' => 2 ]);

				switch($match[1]) {
					case 'One':		$this->device->manufacturer = 'Microsoft';
									$this->device->model = 'Kin ONE';
									$this->device->identified |= Constants\Id::MATCH_UA;
									$this->device->generic = false;
									break;

					case 'Two':		$this->device->manufacturer = 'Microsoft';
									$this->device->model = 'Kin TWO';
									$this->device->identified |= Constants\Id::MATCH_UA;
									$this->device->generic = false;
									break;
				}
			}

			/****************************************************
			 *		Zune HD
			 *
			 *		Mozilla/4.0 (compatible; MSIE 6.0; Windows CE; IEMobile 6.12; Microsoft ZuneHD 4.5)
			 */

			if (preg_match('/Microsoft ZuneHD/u', $ua)) {
				unset($this->os->name);
				unset($this->os->version);

				$this->device->manufacturer = 'Microsoft';
				$this->device->model = 'Zune HD';
				$this->device->type = Constants\DeviceType::MEDIA;
				$this->device->identified |= Constants\Id::MATCH_UA;
				$this->device->generic = false;
			}








			/****************************************************
			 *		Generic television detection
			 */

			if (preg_match('/\(([^,\(]+),\s*([^,\(]+),\s*(?:[Ww]ired|[Ww]ireless)\)/u', $ua, $match)) {
				$vendorName = Data\Manufacturers::identify(Constants\DeviceType::TELEVISION, $match[1]);
				$modelName = trim($match[2]);

				$this->device->type = Constants\DeviceType::TELEVISION;
				$this->device->identified |= Constants\Id::PATTERN;
				if (!isset($this->device->series)) $this->device->series = 'Smart TV';

				switch ($vendorName) {
					case 'ARRIS':			$this->device->manufacturer = 'Arris';
											$this->device->model = $modelName;
											break;

					case 'LG':				$this->device->manufacturer = 'LG';

											switch($modelName) {
												case 'webOS.TV':		$this->device->series = 'webOS TV'; break;
												case 'WEBOS1':			$this->device->series = 'webOS TV'; break;
												case 'GLOBAL-PLAT3':	$this->device->series = 'NetCast TV 2012'; break;
												case 'GLOBAL-PLAT4':	$this->device->series = 'NetCast TV 2013'; break;
												case 'GLOBAL-PLAT5':	$this->device->series = 'NetCast TV 2014'; break;
												default:				$this->device->model = $modelName; break;
											}

											break;

					case 'TiVo':			$this->device->manufacturer = 'TiVo';
											$this->device->series = 'DVR';
											break;

					default:				$this->device->manufacturer = $vendorName;
											$this->device->model = $modelName;
											break;
				}
			}

			if (preg_match('/(?:DTVNetBrowser|InettvBrowser|Hybridcast)\/[0-9\.]+[A-Z]? \(/u', $ua, $match)) {
				$this->device->type = Constants\DeviceType::TELEVISION;

				$found = false;

				if (preg_match('/(?:DTVNetBrowser|InettvBrowser)\/[0-9\.]+[A-Z]? \(([^;]*)\s*;\s*([^;]*)\s*;/u', $ua, $match)) {
					$vendorName = trim($match[1]);
					$modelName = trim($match[2]);
					$found = true;
				}

				if (preg_match('/Hybridcast\/[0-9\.]+ \([^;]*;([^;]*)\s*;\s*([^;]*)\s*;/u', $ua, $match)) {
					$vendorName = trim($match[1]);
					$modelName = trim($match[2]);
					$found = true;
				}

				if ($found) {
					$this->device->identified |= Constants\Id::PATTERN;
					if (!isset($this->device->series)) $this->device->series = 'Smart TV';

					switch($vendorName . '#') {
						case '000087#':			$this->device->manufacturer = 'Hitachi';
												break;

						case '00E091#':			$this->device->manufacturer = 'LG';

												switch($modelName) {
													case 'LGE2D2012M':		$this->device->series = 'NetCast TV 2012'; break;
													case 'LGE3D2012M':		$this->device->series = 'NetCast TV 2012'; break;
												}

												break;

						case '38E08E#':			$this->device->manufacturer = 'Mitsubishi';
												break;

						case '008045#':			$this->device->manufacturer = 'Panasonic';
												break;

						case '00E064#':			$this->device->manufacturer = 'Samsung';
												break;

						case '08001F#':			$this->device->manufacturer = 'Sharp';
												break;

						case '00014A#':			$this->device->manufacturer = 'Sony';
												break;

						case '000039#':			$this->device->manufacturer = 'Toshiba';
												break;
					}
				}
			}

			if (preg_match('/(?:HbbTV|SmartTV)\/[0-9\.]+ \(/iu', $ua, $match)) {
				$this->device->type = Constants\DeviceType::TELEVISION;

				$found = false;

				if (preg_match('/HbbTV\/[0-9\.]+ \(([^;]*);\s*([^;]*)\s*;\s*([^;]*)\s*;/u', $ua, $match)) {
					if (trim($match[1]) == "" || trim($match[1]) == "PVR" || strpos($match[1], '+') !== false) {
						$vendorName = Data\Manufacturers::identify(Constants\DeviceType::TELEVISION, $match[2]);
						$modelName = trim($match[3]);
					} else {
						$vendorName = Data\Manufacturers::identify(Constants\DeviceType::TELEVISION, $match[1]);
						$modelName = trim($match[2]);
					}

					$found = true;
				}

				if (preg_match('/(?:^|\s)SmartTV\/[0-9\.]+ \(([^;]*)\s*;\s*([^;]*)\s*;/u', $ua, $match)) {
					$vendorName = Data\Manufacturers::identify(Constants\DeviceType::TELEVISION, $match[1]);
					$modelName = trim($match[2]);
					$found = true;
				}

				if ($found) {
					$this->device->identified |= Constants\Id::PATTERN;

					switch($vendorName) {
						case 'LG':				$this->device->manufacturer = 'LG';

												switch($modelName) {
													case 'GLOBAL_PLAT3':	$this->device->series = 'NetCast TV 2012'; break;
													case 'GLOBAL_PLAT4':	$this->device->series = 'NetCast TV 2013'; break;
													case 'GLOBAL_PLAT5':	$this->device->series = 'NetCast TV 2014'; break;
													case 'NetCast 2.0':		$this->device->series = 'NetCast TV 2011'; break;
													case 'NetCast 3.0':		$this->device->series = 'NetCast TV 2012'; break;
													case 'NetCast 4.0':		$this->device->series = 'NetCast TV 2013'; break;
													case 'NetCast 4.5':		$this->device->series = 'NetCast TV 2014'; break;
													default:				$this->device->model = $modelName; break;
												}

												break;

						case 'SAMSUNG':	
						case 'Samsung':			$this->device->manufacturer = 'Samsung';

												switch($modelName) {
													case 'SmartTV2012':		$this->device->series = 'Smart TV 2012'; break;
													case 'SmartTV2013':		$this->device->series = 'Smart TV 2013'; break;
													case 'SmartTV2014':		$this->device->series = 'Smart TV 2014'; break;
													case 'OTV-SMT-E5015':	$this->device->model = 'Olleh SkyLife Smart Settopbox'; unset($this->device->series); break;
													default:				$this->device->model = $modelName; break;
												}

												break;

						case 'Panasonic':		$this->device->manufacturer = 'Panasonic';

												switch($modelName) {
													case 'VIERA 2011':		$this->device->series = 'Viera 2011'; break;
													case 'VIERA 2012':		$this->device->series = 'Viera 2012'; break;
													case 'VIERA 2013':		$this->device->series = 'Viera 2013'; break;
													case 'VIERA 2014':		$this->device->series = 'Viera 2014'; break;
													case 'VIERA 2015':		$this->device->series = 'Viera 2015'; break;
													default:				$this->device->model = $modelName; break;
												}

												break;

						case 'TV2N':			$this->device->manufacturer = 'TV2N';

												switch($modelName) {
													case 'videoweb':		$this->device->model = 'Videoweb'; break;
													default:				$this->device->model = $modelName; break;
												}

												break;

						default:				if ($vendorName != '' && $vendorName != 'vendorName') $this->device->manufacturer = $vendorName;
												if ($modelName != '' && $modelName != 'modelName') $this->device->model = $modelName;
												break;
					}

					switch($modelName) {
						case 'hdr1000s':		$this->device->manufacturer = 'Humax';
												$this->device->model = 'HDR-1000S';
												$this->device->identified |= Constants\Id::MATCH_UA;
												$this->device->generic = false;
												break;

						case 'hms1000s':
						case 'hms1000sph2':		$this->device->manufacturer = 'Humax';
												$this->device->model = 'HMS-1000S';
												$this->device->identified |= Constants\Id::MATCH_UA;
												$this->device->generic = false;
												break;
					}
				}
			}

			if (preg_match('/HbbTV\/[0-9.]+;CE-HTML\/[0-9.]+;([^\s;]+)\s[^\s;]+;/u', $ua, $match)) {
				$this->device->manufacturer = Data\Manufacturers::identify(Constants\DeviceType::TELEVISION, $match[1]);
				if (!isset($this->device->series)) $this->device->series = 'Smart TV';
			}

			if (preg_match('/HbbTV\/[0-9.]+;CE-HTML\/[0-9.]+;Vendor\/([^\s;]+);/u', $ua, $match)) {
				$this->device->manufacturer = Data\Manufacturers::identify(Constants\DeviceType::TELEVISION, $match[1]);
				if (!isset($this->device->series)) $this->device->series = 'Smart TV';
			}



			/****************************************************
			 *		Panasonic Smart Viera
			 */

			if (preg_match('/Viera/u', $ua)) {
				$this->device->manufacturer = 'Panasonic';
				$this->device->series = 'Viera';
				$this->device->type = Constants\DeviceType::TELEVISION;
				$this->device->identified |= Constants\Id::MATCH_UA;

				if (preg_match('/Panasonic\.tv\.([0-9]+)/u', $ua, $match)) {
					$this->device->series = 'Viera ' . $match[1];
				}

				if (preg_match('/\(Panasonic, ([0-9]+),/u', $ua, $match)) {
					$this->device->series = 'Viera ' . $match[1];
				}

				if (preg_match('/Viera\; rv\:34/u', $ua, $match)) {
					$this->device->series = 'Viera 2015';
				}
			}

			/****************************************************
			 *		Panasonic Diga
			 */

			if (preg_match('/; Diga;/u', $ua)) {
				$this->device->manufacturer = 'Panasonic';
				$this->device->series = 'Diga';
				$this->device->type = Constants\DeviceType::TELEVISION;
				$this->device->identified |= Constants\Id::MATCH_UA;
			}



			/****************************************************
			 *		Sharp AQUOS TV
			 */

			if (preg_match('/AQUOSBrowser/u', $ua) || preg_match('/AQUOS-(AS|DMP)/u', $ua)) {
				$this->device->manufacturer = 'Sharp';
				$this->device->series = 'Aquos TV';
				$this->device->type = Constants\DeviceType::TELEVISION;
				$this->device->identified |= Constants\Id::MATCH_UA;

				if (preg_match('/LC\-([0-9]+[A-Z]+[0-9]+[A-Z]+)/u', $ua, $match)) {
					$this->device->model = $match[1];
					$this->device->generic = false;
				}
			}


			/****************************************************
			 *		Samsung Smart TV
			 */

			if (preg_match('/SMART-TV/u', $ua)) {
				$this->device->manufacturer = 'Samsung';
				$this->device->series = 'Smart TV';
				$this->device->type = Constants\DeviceType::TELEVISION;
				$this->device->identified |= Constants\Id::MATCH_UA;

				if (preg_match('/Linux\/SmartTV\+([0-9]*)/u', $ua, $match)) {
					$this->device->series = 'Smart TV ' . $match[1];
				}

				elseif (preg_match('/Maple([0-9]*)/u', $ua, $match)) {
					$this->device->series = 'Smart TV ' . $match[1];
				}
			}

			if (preg_match('/Maple_([0-9][0-9][0-9][0-9])/u', $ua, $match)) {
				$this->device->manufacturer = 'Samsung';
				$this->device->series = 'Smart TV ' . $match[1];
				$this->device->type = Constants\DeviceType::TELEVISION;
				$this->device->identified |= Constants\Id::MATCH_UA;
			}

			if (preg_match('/Maple ([0-9]+\.[0-9]+)\.[0-9]+/u', $ua, $match)) {
				$this->device->manufacturer = 'Samsung';
				$this->device->series = 'Smart TV';
				$this->device->type = Constants\DeviceType::TELEVISION;
				$this->device->identified |= Constants\Id::MATCH_UA;

				switch ($match[1]) {
					case '5.0':		$this->device->series = 'Smart TV 2009'; break;
					case '5.1':		$this->device->series = 'Smart TV 2010'; break;
					case '6.0':		$this->device->series = 'Smart TV 2011'; break;
				}
			}

			if (preg_match('/Model\/Samsung-(BD-[A-Z][0-9]+)/u', $ua, $match)) {
				$this->device->manufacturer = 'Samsung';
				$this->device->model = $match[1];
				$this->device->series = 'Blu-ray Player';
				$this->device->type = Constants\DeviceType::TELEVISION;
				$this->device->identified |= Constants\Id::MATCH_UA;
			}


			/****************************************************
			 *		Sony Internet TV
			 */

			if (preg_match('/SonyCEBrowser/u', $ua)) {
				$this->device->manufacturer = 'Sony';
				$this->device->series = 'Smart TV';
				$this->device->type = Constants\DeviceType::TELEVISION;
				$this->device->identified |= Constants\Id::MATCH_UA;

				if (preg_match('/SonyCEBrowser\/[0-9.]+ \((?:BDPlayer; |DTV[0-9]+\/)?([^;_]+)/u', $ua, $match)) {
					if ($match[1] != 'ModelName') {
						$this->device->model = $match[1];
					}
				}
			}

			if (preg_match('/SonyDTV/u', $ua)) {
				$this->device->manufacturer = 'Sony';
				$this->device->series = 'Smart TV';
				$this->device->type = Constants\DeviceType::TELEVISION;
				$this->device->identified |= Constants\Id::MATCH_UA;

				if (preg_match('/(KDL-?[0-9]+[A-Z]+[0-9]+)/u', $ua, $match)) {
					$this->device->model = $match[1];
					$this->device->generic = false;
				}

				if (preg_match('/(XBR-?[0-9]+[A-Z]+[0-9]+)/u', $ua, $match)) {
					$this->device->model = $match[1];
					$this->device->generic = false;
				}
			}

			if (preg_match('/SonyBDP/u', $ua)) {
				$this->device->manufacturer = 'Sony';
				$this->device->series = "Blu-ray Player";
				$this->device->type = Constants\DeviceType::TELEVISION;
				$this->device->identified |= Constants\Id::MATCH_UA;
			}

			if (preg_match('/SmartBD/u', $ua) && preg_match('/(BDP-[A-Z][0-9]+)/u', $ua, $match)) {
				$this->device->manufacturer = 'Sony';
				$this->device->model = $match[1];
				$this->device->series = 'Blu-ray Player';
				$this->device->type = Constants\DeviceType::TELEVISION;
				$this->device->identified |= Constants\Id::MATCH_UA;
			}

			if (preg_match('/\s+([0-9]+)BRAVIA/u', $ua, $match)) {
				$this->device->manufacturer = 'Sony';
				$this->device->model = 'Bravia';
				$this->device->series = 'Smart TV';
				$this->device->type = Constants\DeviceType::TELEVISION;
				$this->device->identified |= Constants\Id::MATCH_UA;
			}

			/****************************************************
			 *		Philips Net TV
			 */

			if (preg_match('/NETTV\//u', $ua)) {
				$this->device->manufacturer = 'Philips';
				$this->device->series = 'Net TV';
				$this->device->type = Constants\DeviceType::TELEVISION;
				$this->device->identified |= Constants\Id::MATCH_UA;

				if (preg_match('/AquosTV/u', $ua)) {
					$this->device->manufacturer = 'Sharp';
					$this->device->series = 'Aquos TV';
				}

				if (preg_match('/BANGOLUFSEN/u', $ua)) {
					$this->device->manufacturer = 'Bang & Olufsen';
					$this->device->series = 'Smart TV';
				}

				if (preg_match('/PHILIPS-AVM/u', $ua)) {
					$this->device->series = 'Blu-ray Player';
				}
			}

			/****************************************************
			 *		LG NetCast TV
			 */

			if (preg_match('/LGSmartTV/u', $ua)) {
				$this->device->manufacturer = 'LG';
				$this->device->series = 'Smart TV';
				$this->device->type = Constants\DeviceType::TELEVISION;
				$this->device->identified |= Constants\Id::MATCH_UA;
			}

			if (preg_match('/UPLUSTVBROWSER/u', $ua)) {
				$this->device->manufacturer = 'LG';
				$this->device->series = 'U+ tv';
				$this->device->type = Constants\DeviceType::TELEVISION;
				$this->device->identified |= Constants\Id::MATCH_UA;
			}


			/* NetCast */

			if (preg_match('/LG NetCast\.(TV|Media)-([0-9]*)/u', $ua, $match)) {
				$this->device->manufacturer = 'LG';
				$this->device->series = 'NetCast ' . $match[1] . ' ' . $match[2];
				$this->device->type = Constants\DeviceType::TELEVISION;
				$this->device->identified |= Constants\Id::MATCH_UA;

				if (preg_match('/LG Browser\/[0-9.]+\([^;]+; LGE; ([^;]+);/u', $ua, $match)) {
					if (substr($match[1], 0, 6) != 'GLOBAL') {
						$this->device->model = $match[1];
					}
				}
			}

			/* NetCast */

			if ($ua == "Mozilla/5.0 (X11; Linux; ko-KR) AppleWebKit/534.26+ (KHTML, like Gecko) Version/5.0 Safari/534.26+" ||
				$ua == "Mozilla/5.0 (DirectFB; Linux; ko-KR) AppleWebKit/534.26+ (KHTML, like Gecko) Version/5.0 Safari/534.26+") 
			{
				$this->device->manufacturer = 'LG';
				$this->device->series = 'NetCast TV 2012';
				$this->device->type = Constants\DeviceType::TELEVISION;
				$this->device->identified |= Constants\Id::MATCH_UA;
			}


			/* NetCast or WebOS */

			if (preg_match('/NetCast/u', $ua) && preg_match('/SmartTV\/([0-9])/u', $ua, $match)) {
				$this->device->manufacturer = 'LG';
				$this->device->type = Constants\DeviceType::TELEVISION;
				$this->device->identified |= Constants\Id::MATCH_UA;

				if (intval($match[1]) < 5) {
					$this->device->series = 'NetCast TV';
				} 
				else {
					$this->device->series = 'webOS TV';
				}
			}

			/* WebOS */

			if (preg_match('/Web[O0]S/u', $ua) && preg_match('/Large Screen/u', $ua)) {
				$this->device->manufacturer = 'LG';
				$this->device->series = 'webOS TV';
				$this->device->type = Constants\DeviceType::TELEVISION;
				$this->device->identified |= Constants\Id::MATCH_UA;
			}

			if (preg_match('/webOS\.TV-([0-9]+)/u', $ua, $match)) {
				$this->device->manufacturer = 'LG';
				$this->device->series = 'webOS TV'; // . $match[1];
				$this->device->type = Constants\DeviceType::TELEVISION;
				$this->device->identified |= Constants\Id::MATCH_UA;

				if (preg_match('/LG Browser\/[0-9.]+\(LGE; ([^;]+);/u', $ua, $match)) {
					if (strtoupper(substr($match[1], 0, 5)) != 'WEBOS') {
						$this->device->model = $match[1];
					}
				}
			}


			/****************************************************
			 *		Toshiba Smart TV
			 */

			if (preg_match('/Toshiba_?TP\//u', $ua) || preg_match('/TSBNetTV\//u', $ua)) {
				$this->device->manufacturer = 'Toshiba';
				$this->device->series = 'Smart TV';
				$this->device->type = Constants\DeviceType::TELEVISION;
				$this->device->identified |= Constants\Id::MATCH_UA;
			}

			if (preg_match('/TOSHIBA;[^;]+;([A-Z]+[0-9]+[A-Z]+);/u', $ua, $match)) {
				$this->device->manufacturer = 'Toshiba';
				$this->device->model = $match[1];
				$this->device->series = 'Smart TV';
				$this->device->type = Constants\DeviceType::TELEVISION;
				$this->device->identified |= Constants\Id::MATCH_UA;
			}


			/****************************************************
			 *		Loewe
			 */

			if (preg_match('/LOEWE\/TV/u', $ua)) {
				$this->device->manufacturer = 'Loewe';
				$this->device->series = 'Smart TV';
				$this->device->type = Constants\DeviceType::TELEVISION;
				$this->device->identified |= Constants\Id::MATCH_UA;

				if (preg_match('/((?:SL|ID)[0-9]+)/u', $ua, $match)) {
					$this->device->model = $match[1];
				}
			}


			/****************************************************
			 *		KreaTV
			 */

			if (preg_match('/KreaTV/u', $ua)) {
				unset($this->os->name);
				unset($this->os->version);

				$this->device->series = 'KreaTV';
				$this->device->type = Constants\DeviceType::TELEVISION;
				$this->device->identified |= Constants\Id::MATCH_UA;
				$this->device->generic = false;

				if (preg_match('/Motorola/u', $ua)) {
					$this->device->manufacturer = 'Motorola';
				}
			}


			/****************************************************
			 *		ADB
			 */

			if (preg_match('/\(ADB; ([^\)]+)\)/u', $ua, $match)) {
				unset($this->os->name);
				unset($this->os->version);

				$this->device->manufacturer = 'ADB';
				$this->device->model = ($match[1] != 'Unknown' ? str_replace('ADB', '', $match[1]) . ' ' : '') . 'IPTV receiver';
				$this->device->type = Constants\DeviceType::TELEVISION;
				$this->device->identified |= Constants\Id::MATCH_UA;
				$this->device->generic = false;
			}

			/****************************************************
			 *		MStar
			 */

			if (preg_match('/Mstar;OWB/u', $ua)) {
				unset($this->os->name);
				unset($this->os->version);

				$this->device->manufacturer = 'MStar';
				$this->device->model = 'PVR';
				$this->device->type = Constants\DeviceType::TELEVISION;
				$this->device->identified |= Constants\Id::MATCH_UA;

				$this->browser->name = 'Origyn Web Browser';
			}

			/****************************************************
			 *		TechniSat
			 */

			if (preg_match('/TechniSat ([^;]+);/u', $ua, $match)) {
				unset($this->os->name);
				unset($this->os->version);

				$this->device->manufacturer = 'TechniSat';
				$this->device->model = $match[1];
				$this->device->type = Constants\DeviceType::TELEVISION;
				$this->device->identified |= Constants\Id::MATCH_UA;
				$this->device->generic = false;
			}

			/****************************************************
			 *		Technicolor
			 */

			if (preg_match('/Technicolor_([^;]+);/u', $ua, $match)) {
				unset($this->os->name);
				unset($this->os->version);

				$this->device->manufacturer = 'Technicolor';
				$this->device->model = $match[1];
				$this->device->type = Constants\DeviceType::TELEVISION;
				$this->device->identified |= Constants\Id::MATCH_UA;
				$this->device->generic = false;
			}

			/****************************************************
			 *		Winbox Evo2
			 */

			if (preg_match('/Winbox Evo2/u', $ua)) {
				unset($this->os->name);
				unset($this->os->version);

				$this->device->manufacturer = 'Winbox';
				$this->device->model = 'Evo2';
				$this->device->type = Constants\DeviceType::TELEVISION;
				$this->device->identified |= Constants\Id::MATCH_UA;
				$this->device->generic = false;
			}

			/****************************************************
			 *		DuneHD
			 */

			if (preg_match('/DuneHD\//u', $ua)) {
				unset($this->os->name);
				unset($this->os->version);

				$this->device->manufacturer = 'Dune HD';
				$this->device->model = '';
				$this->device->type = Constants\DeviceType::TELEVISION;
				$this->device->identified |= Constants\Id::MATCH_UA;

				if (preg_match('/DuneHD\/[0-9.]+ \(([^;]+);/u', $ua, $match)) {
					$this->device->model = $match[1];
				}
			}

			/****************************************************
			 *		Roku
			 */

			if (preg_match('/^Roku\/DVP-([0-9]+)/u', $ua, $match)) {
				unset($this->os->name);
				unset($this->os->version);

				$this->device->manufacturer = 'Roku';
				$this->device->type = Constants\DeviceType::TELEVISION;

				switch ($match[1]) {
					case '2000':	$this->device->model = 'HD'; $this->device->generic = false; break;
					case '2050':	$this->device->model = 'XD'; $this->device->generic = false; break;
					case '2100':	$this->device->model = 'XDS'; $this->device->generic = false; break;
					case '2400':	$this->device->model = 'LT'; $this->device->generic = false; break;
					case '3000':	$this->device->model = '2 HD'; $this->device->generic = false; break;
					case '3050':	$this->device->model = '2 XD'; $this->device->generic = false; break;
					case '3100':	$this->device->model = '2 XS'; $this->device->generic = false; break;
				}

				$this->device->identified |= Constants\Id::MATCH_UA;
			}


			/****************************************************
			 *		AppleTV
			 */

			if (preg_match('/AppleTV[0-9],[0-9]/u', $ua)) {
				unset($this->os->name);
				unset($this->os->version);

				$this->device->manufacturer = 'Apple';
				$this->device->model = 'AppleTV';
				$this->device->type = Constants\DeviceType::TELEVISION;
				$this->device->identified |= Constants\Id::MATCH_UA;
				$this->device->generic = false;
			}


			/****************************************************
			 *		WebTV
			 */

			if (preg_match('/WebTV\/[0-9.]/u', $ua)) {
				unset($this->os->name);
				unset($this->os->version);

				$this->device->manufacturer = 'Microsoft';
				$this->device->model = 'WebTV';
				$this->device->type = Constants\DeviceType::TELEVISION;
				$this->device->identified |= Constants\Id::MATCH_UA;
				$this->device->generic = false;
			}


			/****************************************************
			 *		OpenTV
			 */

			if (preg_match('/OpenTV/u', $ua)) {
				$this->device->series = 'OpenTV';
				$this->device->type = Constants\DeviceType::TELEVISION;
			}


			/****************************************************
			 *		MediStream
			 */

			if (preg_match('/MediStream/u', $ua)) {
				unset($this->os->name);
				unset($this->os->version);

				$this->device->manufacturer = 'Bewatec';
				$this->device->model = 'MediStream';
				$this->device->type = Constants\DeviceType::TELEVISION;
				$this->device->identified |= Constants\Id::MATCH_UA;
				$this->device->generic = false;
			}


			/****************************************************
			 *		BrightSign
			 */

			if (preg_match('/BrightSign\/[0-9\.]+(?:-[a-z0-9\-]+)? \(([^\)]+)/u', $ua, $match)) {
				unset($this->os->name);
				unset($this->os->version);

				$this->device->manufacturer = 'BrightSign';
				$this->device->model = $match[1];
				$this->device->type = Constants\DeviceType::SIGNAGE;
				$this->device->identified |= Constants\Id::MATCH_UA;
				$this->device->generic = false;
			}


			/****************************************************
			 *		Iadea
			 */

			if (preg_match('/ADAPI/u', $ua) && preg_match('/\(MODEL:([^\)]+)\)/u', $ua, $match)) {
				unset($this->os->name);
				unset($this->os->version);

				$this->device->manufacturer = 'Iadea';
				$this->device->model = $match[1];
				$this->device->type = Constants\DeviceType::SIGNAGE;
				$this->device->identified |= Constants\Id::MATCH_UA;
				$this->device->generic = false;
			}


			/****************************************************
			 *		Generic
			 */

			if ($this->device->type == Constants\DeviceType::TELEVISION) {

				/* Drop OS */
				if (isset($this->os->name) && !in_array($this->os->name, [ 'Aliyun OS', 'Tizen', 'Android', 'Google TV', 'Firefox OS' ])) {
					unset($this->os->name);
					unset($this->os->version);
				}


				/* Format model numbers */
				if (isset($this->device->model) && isset($this->device->manufacturer)) {

					if ($this->device->manufacturer == 'Dune HD') {
						if (preg_match('/tv([0-9]+[a-z]?)/u', $this->device->model, $match)) {
							$this->device->model = 'TV-' . strtoupper($match[1]);
						}

						if ($this->device->model == 'connect') {
							$this->device->model = 'Connect';
						}
					}

					if ($this->device->manufacturer == 'Humax') {
						$this->device->series = "Digital Receiver";
					}

					if ($this->device->manufacturer == 'Inverto') {
						if (preg_match('/IDL[ -]?([0-9]+.*)/u', $this->device->model, $match)) {
							$this->device->model = 'IDL ' . $match[1];
						}

						if (preg_match('/MBN([0-9]+)/u', $this->device->model, $match)) {
							$this->device->model = 'MBN ' . $match[1];
						}
					}

					if ($this->device->manufacturer == 'HyperPanel') {
						$this->device->model = strtok(strtoupper($this->device->model), ' ');
					}

					if ($this->device->manufacturer == 'LG') {
						if (preg_match('/(?:ATSC|DVB)-(.*)/u', $this->device->model, $match)) {
							$this->device->model = $match[1];
							$this->device->generic = false;
						}

						if (preg_match('/[0-9][0-9]([A-Z][A-Z][0-9][0-9][0-9][0-9A-Z])/u', $this->device->model, $match)) {
							$this->device->model = $match[1];
							$this->device->generic = false;
						}

						if (preg_match('/Media\/(.*)/u', $this->device->model, $match)) {
							$this->device->model = $match[1];
							$this->device->generic = false;
						}
					}

					if ($this->device->manufacturer == 'Loewe') {
						$this->device->series = 'Smart TV';

						if (preg_match('/((?:ID|SL)[0-9]+)/u', $ua, $match)) {
							$this->device->model = 'Connect '.  $match[1];
							$this->device->generic = false;
						}
					}

					if ($this->device->manufacturer == 'Philips') {
						if (preg_match('/[0-9][0-9]([A-Z][A-Z][A-Z][0-9][0-9][0-9][0-9])/u', $this->device->model, $match)) {
							$this->device->model = $match[1];
							$this->device->generic = false;
						}

						if (preg_match('/(MT[0-9]+)/u', $this->device->model, $match)) {
							$this->device->model = $match[1];
							$this->device->series = "Digital Receiver";
							$this->device->generic = false;
						}

						if (preg_match('/(BDP[0-9]+)/u', $this->device->model, $match)) {
							$this->device->model = $match[1];
							$this->device->series = "Blu-ray Player";
							$this->device->generic = false;
						}
					}

					if ($this->device->manufacturer == 'Toshiba') {
						if (preg_match('/DTV_(.*)/u', $this->device->model, $match)) {
							$this->device->model = 'Regza ' . $match[1];
							$this->device->generic = false;
						}

						if (preg_match('/[0-9][0-9]([A-Z][A-Z][0-9][0-9][0-9])/u', $this->device->model, $match)) {
							$this->device->model = 'Regza ' . $match[1];
							$this->device->generic = false;
						}

						if (preg_match('/[0-9][0-9](ZL[0-9])/u', $this->device->model, $match)) {
							$this->device->model = $match[1] . ' Cevo';
							$this->device->generic = false;
						}

						if (preg_match('/(BDX[0-9]+)/u', $this->device->model, $match)) {
							$this->device->model = $match[1];
							$this->device->series = "Blu-ray Player";
							$this->device->generic = false;
						}
					}

					if ($this->device->manufacturer == 'Selevision') {
						$this->device->model = str_replace('Selevision ', '', $this->device->model);
					}

					if ($this->device->manufacturer == 'Sharp') {
						if (preg_match('/[0-9][0-9]([A-Z]+[0-9]+[A-Z]+)/u', $this->device->model, $match)) {
							$this->device->model = $match[1];
							$this->device->generic = false;
						}
					}

					if ($this->device->manufacturer == 'Sony') {
						if (preg_match('/(BDP[0-9]+G)/u', $this->device->model, $match)) {
							$this->device->model = $match[1];
							$this->device->series = "Blu-ray Player";
							$this->device->generic = false;
						}

						if (preg_match('/KDL?-?[0-9]*([A-Z]+[0-9]+)[A-Z]*/u', $this->device->model, $match)) {
							$this->device->model = 'Bravia ' . $match[1];
							$this->device->series = 'Smart TV';
							$this->device->generic = false;
						}
					}

					if ($this->device->manufacturer == 'Pioneer') {
						if (preg_match('/(BDP-[0-9]+)/u', $this->device->model, $match)) {
							$this->device->model = $match[1];
							$this->device->series = "Blu-ray Player";
							$this->device->generic = false;
						}
					}
				}
			}




			/****************************************************
			 *		Detect type based on common identifiers
			 */

			if (preg_match('/SmartTvA\//u', $ua)) {
				$this->device->type = Constants\DeviceType::TELEVISION;
			}

			if (preg_match('/NETRANGEMMH/u', $ua)) {
				$this->device->type = Constants\DeviceType::TELEVISION;
			}

			if (preg_match('/MIDP/u', $ua)) {
				$this->device->type = Constants\DeviceType::MOBILE;
			}

			/****************************************************
			 *		Try to detect any devices based on common
			 *		locations of model ids
			 */

			if (!isset($this->device->model) && !isset($this->device->manufacturer)) {
				$candidates = [];

				if (!preg_match('/^(Mozilla|Opera)/u', $ua)) if (preg_match('/^(?:MQQBrowser\/[0-9\.]+\/)?([^\s]+)/u', $ua, $match)) {
					$match[1] = preg_replace('/_TD$/u', '', $match[1]);
					$match[1] = preg_replace('/_CMCC$/u', '', $match[1]);
					$match[1] = preg_replace('/[_ ]Mozilla$/u', '', $match[1]);
					$match[1] = preg_replace('/ Linux$/u', '', $match[1]);
					$match[1] = preg_replace('/ Opera$/u', '', $match[1]);
					$match[1] = preg_replace('/\/[0-9].*$/u', '', $match[1]);

					array_push($candidates, $match[1]);
				}

				if (preg_match('/^((?:SAMSUNG|TCL|ZTE) [^\s]+)/u', $ua, $match)) {
					array_push($candidates, $match[1]);
				}

				if (preg_match('/(Samsung (?:GT|SCH|SGH|SHV|SHW|SPH)-[A-Z-0-9]+)/ui', $ua, $match)) {
					array_push($candidates, $match[1]);
				}

				if (preg_match('/[0-9]+x[0-9]+; ([^;]+)/u', $ua, $match)) {
					array_push($candidates, $match[1]);
				}

				if (preg_match('/[0-9]+x[0-9]+; [^;]+; ([^;]+)/u', $ua, $match)) {
					array_push($candidates, $match[1]);
				}

				if (preg_match('/\s*([^;]*[^\s])\s*; [0-9]+\*[0-9]+\)/u', $ua, $match)) {
					array_push($candidates, $match[1]);
				}

				if (preg_match('/[0-9]+X[0-9]+ ([^;\/\(\)]+)/u', $ua, $match)) {
					array_push($candidates, $match[1]);
				}

				if (preg_match('/Windows NT 5.1; ([^;]+); Windows Phone/u', $ua, $match)) {
					array_push($candidates, $match[1]);
				}

				if (preg_match('/\) PPC; (?:[0-9]+x[0-9]+; )?([^;\/\(\)]+)/u', $ua, $match)) {
					array_push($candidates, $match[1]);
				}

				if (preg_match('/Windows Mobile; ([^;]+); PPC;/u', $ua, $match)) {
					array_push($candidates, $match[1]);
				}

				if (preg_match('/\(([^;]+); U; Windows Mobile/u', $ua, $match)) {
					array_push($candidates, $match[1]);
				}

				if (preg_match('/MSIEMobile [0-9.]+\) ([^\s]+)/u', $ua, $match)) {
					array_push($candidates, $match[1]);
				}

				if (preg_match('/Series60\/[0-9\.]+ ([^\s]+) Profile/u', $ua, $match)) {
					array_push($candidates, $match[1]);
				}

				if (preg_match('/Vodafone\/1.0\/([^\/]+)/u', $ua, $match)) {
					array_push($candidates, $match[1]);
				}

				if (preg_match('/Huawei\/1.0\/([^\s]+)/u', $ua, $match)) {
					array_push($candidates, $match[1]);
				}

				if (preg_match('/^(DoCoMo[^(]+)/u', $ua, $match)) {
					array_push($candidates, $match[1]);
				}

				if (preg_match('/\ ([^\s]+)$/u', $ua, $match)) {
					array_push($candidates, $match[1]);
				}

				if (preg_match('/; ([^;\)]+)\)/u', $ua, $match)) {
					array_push($candidates, $match[1]);
				}

				if (preg_match('/^(.*)\/UCWEB/u', $ua, $match)) {
					array_push($candidates, $match[1]);
				}

				if (preg_match('/^([^\s]+\s[^\s]+)\s+Opera/u', $ua, $match)) {
					array_push($candidates, $match[1]);
				}

				if (preg_match('/^([a-z0-9\.\_\-\+\/ ]+) Linux/iu', $ua, $match)) {
					array_push($candidates, $match[1]);
				}

				if (preg_match('/^([a-z0-9\.\_\-\+\/ ]+) Android/iu', $ua, $match)) {
					array_push($candidates, $match[1]);
				}

				if (preg_match('/\(([a-z0-9\.\_\-\+\/ ]+) Browser/iu', $ua, $match)) {
					array_push($candidates, $match[1]);
				}

				if (preg_match('/^([a-z0-9\.\_\-\+\/ ]+) Release/iu', $ua, $match)) {
					array_push($candidates, $match[1]);
				}

				if (preg_match('/Mozilla\/[0-9.]+ ([a-z0-9\.\-\_\+\/ ]+) Browser/iu', $ua, $match)) {
					array_push($candidates, $match[1]);
				}

				if (preg_match('/ \(([^\)]+)\)/u', $ua, $match)) {
					array_push($candidates, $match[1]);
				}

				if (preg_match('/([a-z][a-z0-9\_]+)\/[a-z]/iu', $ua, $match)) {
					array_push($candidates, $match[1]);
				}

				if (preg_match('/^([a-z0-9\.\_\+\/ ]+)_TD\//iu', $ua, $match)) {
					array_push($candidates, $match[1]);
				}

				if (preg_match('/^$([a-z0-9\.\_\+ ]+)\//iu', $ua, $match)) {
					array_push($candidates, $match[1]);
				}

				if (preg_match('/^([a-z]+\s[a-z0-9\-\_\.]+)/iu', $ua, $match)) {
					array_push($candidates, $match[1]);
				}

				if (isset($this->os->name)) {
					for ($i = 0; $i < count($candidates); $i++) {
						$result = false;

						if (!isset($this->device->model) && !isset($this->device->manufacturer)) {
							if (isset($this->os->name) && ($this->os->name == 'Android' || $this->os->name == 'Linux')) {
								$device = Data\DeviceModels::identify('android', $candidates[$i]);
								if ($device->identified) {
									$result = true;

									$device->identified |= $this->device->identified;
									$this->device = $device;

									if ($this->os->name != 'Android') {
										$this->os->name = 'Android';
										$this->os->version = null;
									}
								}
							}

							if (!isset($this->os->name) || $this->os->name == 'Windows' || $this->os->name == 'Windows Mobile' || $this->os->name == 'Windows CE') {
								$device = Data\DeviceModels::identify('wm', $candidates[$i]);
								if ($device->identified) {
									$result = true;

									$device->identified |= $this->device->identified;
									$this->device = $device;

									if (isset($this->os->name) && $this->os->name != 'Windows Mobile') {
										$this->os->name = 'Windows Mobile';
										$this->os->version = null;
									}
								}
							}
						}
					}
				}

				if (!isset($this->device->model) && !isset($this->device->manufacturer)) {
					$identified = false;

					for ($i = 0; $i < count($candidates); $i++) {
						if (!$this->device->identified) {
							if (preg_match('/^acer_([^\/]*)/ui', $candidates[$i], $match)) {
								$this->device->manufacturer = 'Acer';
								$this->device->model = Data\DeviceModels::cleanup($match[1]);
								$this->device->type = Constants\DeviceType::MOBILE;
								$this->device->generic = false;
								$identified = true;
							}

							if (preg_match('/^AIRNESS-([^\/]*)/ui', $candidates[$i], $match)) {
								$this->device->manufacturer = 'Airness';
								$this->device->model = Data\DeviceModels::cleanup($match[1]);
								$this->device->type = Constants\DeviceType::MOBILE;
								$this->device->generic = false;
								$identified = true;
							}

							if (preg_match('/^ALCATEL[_-]([^\/]*)/ui', $candidates[$i], $match)) {
								$this->device->manufacturer = 'Alcatel';
								$this->device->model = Data\DeviceModels::cleanup($match[1]);
								$this->device->type = Constants\DeviceType::MOBILE;
								$this->device->generic = false;

								if (preg_match('/^TRIBE ([^\s]+)/ui', $this->device->model, $match)) {
									$this->device->model = 'One Touch Tribe ' . $match[1];
								}

								elseif (preg_match('/^ONE TOUCH ([^\s]*)/ui', $this->device->model, $match)) {
									$this->device->model = 'One Touch ' . $match[1];
								}

								elseif (preg_match('/^OT[-\s]*([^\s]*)/ui', $this->device->model, $match)) {
									$this->device->model = 'One Touch ' . $match[1];
								}

								$identified = true;
							}

							if (preg_match('/^BenQ-([^\/]*)/ui', $candidates[$i], $match)) {
								$this->device->manufacturer = 'BenQ';
								$this->device->model = Data\DeviceModels::cleanup($match[1]);
								$this->device->type = Constants\DeviceType::MOBILE;
								$this->device->generic = false;
								$identified = true;
							}

							if (preg_match('/^Bird[ _]([^\/]*)/ui', $candidates[$i], $match)) {
								$this->device->manufacturer = 'Bird';
								$this->device->model = Data\DeviceModels::cleanup($match[1]);
								$this->device->type = Constants\DeviceType::MOBILE;
								$this->device->generic = false;
								$identified = true;
							}

							if (preg_match('/^(?:YL-|YuLong-)?COOLPAD([^\s]+)/ui', $candidates[$i], $match)) {
								$this->device->manufacturer = 'Coolpad';
								$this->device->model = Data\DeviceModels::cleanup($match[1]);
								$this->device->type = Constants\DeviceType::MOBILE;
								$this->device->generic = false;
								$identified = true;
							}

							if (preg_match('/^CELKON\.([^\s]+)/ui', $candidates[$i], $match)) {
								$this->device->manufacturer = 'Celkon';
								$this->device->model = Data\DeviceModels::cleanup($match[1]);
								$this->device->type = Constants\DeviceType::MOBILE;
								$this->device->generic = false;
								$identified = true;
							}

							if (preg_match('/^Coship ([^\s]+)/ui', $candidates[$i], $match)) {
								$this->device->manufacturer = 'Coship';
								$this->device->model = Data\DeviceModels::cleanup($match[1]);
								$this->device->type = Constants\DeviceType::MOBILE;
								$this->device->generic = false;
								$identified = true;
							}

							if (preg_match('/^Cricket-([^\s]+)/ui', $candidates[$i], $match)) {
								$this->device->manufacturer = 'Cricket';
								$this->device->model = Data\DeviceModels::cleanup($match[1]);
								$this->device->type = Constants\DeviceType::MOBILE;
								$this->device->generic = false;
								$identified = true;
							}

							if (preg_match('/^DESAY[ _]([^\s]+)/ui', $candidates[$i], $match)) {
								$this->device->manufacturer = 'DESAY';
								$this->device->model = Data\DeviceModels::cleanup($match[1]);
								$this->device->type = Constants\DeviceType::MOBILE;
								$this->device->generic = false;
								$identified = true;
							}

							if (preg_match('/^Diamond_([^\s]+)/ui', $candidates[$i], $match)) {
								$this->device->manufacturer = 'Diamond';
								$this->device->model = Data\DeviceModels::cleanup($match[1]);
								$this->device->type = Constants\DeviceType::MOBILE;
								$this->device->generic = false;
								$identified = true;
							}

							if (preg_match('/^DoCoMo\/[0-9\.]+[ \/]([^\s\/]+)/ui', $candidates[$i], $match)) {
								$this->device->manufacturer = 'DoCoMo';
								$this->device->model = Data\DeviceModels::cleanup($match[1]);
								$this->device->type = Constants\DeviceType::MOBILE;
								$this->device->generic = false;
								$identified = true;
							}

							if (preg_match('/^dopod[-_]?([^\s]+)/ui', $candidates[$i], $match)) {
								$this->device->manufacturer = 'Dopod';
								$this->device->model = Data\DeviceModels::cleanup($match[1]);
								$this->device->type = Constants\DeviceType::MOBILE;
								$this->device->generic = false;
								$identified = true;
							}

							if (preg_match('/^FLY_]?([^\s\/]+)/ui', $candidates[$i], $match)) {
								$this->device->manufacturer = 'Fly';
								$this->device->model = Data\DeviceModels::cleanup($match[1]);
								$this->device->type = Constants\DeviceType::MOBILE;
								$this->device->generic = false;
								$identified = true;
							}

							if (preg_match('/^GIONEE[-_ ]([^\s\/]+)/ui', $candidates[$i], $match)) {
								$this->device->manufacturer = 'Gionee';
								$this->device->model = Data\DeviceModels::cleanup($match[1]);
								$this->device->type = Constants\DeviceType::MOBILE;
								$this->device->generic = false;
								$identified = true;
							}

							if (preg_match('/^GIONEE([A-Z0-9]+)/ui', $candidates[$i], $match)) {
								$this->device->manufacturer = 'Gionee';
								$this->device->model = Data\DeviceModels::cleanup($match[1]);
								$this->device->type = Constants\DeviceType::MOBILE;
								$this->device->generic = false;
								$identified = true;
							}

							if (preg_match('/^HIKe_([^\s]+)/ui', $candidates[$i], $match)) {
								$this->device->manufacturer = 'HIKe';
								$this->device->model = Data\DeviceModels::cleanup($match[1]);
								$this->device->type = Constants\DeviceType::MOBILE;
								$this->device->generic = false;
								$identified = true;
							}

							if (preg_match('/^Hisense[ -](?:HS-)?([^\s]+)/ui', $candidates[$i], $match)) {
								$this->device->manufacturer = 'Hisense';
								$this->device->model = Data\DeviceModels::cleanup($match[1]);
								$this->device->type = Constants\DeviceType::MOBILE;
								$this->device->generic = false;
								$identified = true;
							}

							if (preg_match('/^HS-([^\s]+)/ui', $candidates[$i], $match)) {
								$this->device->manufacturer = 'Hisense';
								$this->device->model = Data\DeviceModels::cleanup($match[1]);
								$this->device->type = Constants\DeviceType::MOBILE;
								$this->device->generic = false;
								$identified = true;
							}

							if (preg_match('/^HTC[_-]?([^\/_]+)(?:\/|_|$)/ui', $candidates[$i], $match)) {
								$this->device->manufacturer = 'HTC';
								$this->device->model = Data\DeviceModels::cleanup($match[1]);
								$this->device->type = Constants\DeviceType::MOBILE;
								$this->device->generic = false;
								$identified = true;
							}

							if (preg_match('/^HUAWEI[\s_-]?([^\/]*)/ui', $candidates[$i], $match)) {
								$this->device->manufacturer = 'Huawei';
								$this->device->model = Data\DeviceModels::cleanup($match[1]);
								$this->device->type = Constants\DeviceType::MOBILE;
								$this->device->generic = false;
								$identified = true;
							}

							if (preg_match('/^Karbonn ([^\s]+)/ui', $candidates[$i], $match)) {
								$this->device->manufacturer = 'Karbonn';
								$this->device->model = Data\DeviceModels::cleanup($match[1]);
								$this->device->type = Constants\DeviceType::MOBILE;
								$this->device->generic = false;
								$identified = true;
							}

							if (preg_match('/^KDDI-([^\s;]+)/ui', $candidates[$i], $match)) {
								$this->device->manufacturer = 'KDDI';
								$this->device->model = Data\DeviceModels::cleanup($match[1]);
								$this->device->type = Constants\DeviceType::MOBILE;
								$this->device->generic = false;
								$identified = true;
							}

							if (preg_match('/^KONKA[-_]?([^\s]+)/ui', $candidates[$i], $match)) {
								$this->device->manufacturer = 'Konka';
								$this->device->model = Data\DeviceModels::cleanup($match[1]);
								$this->device->type = Constants\DeviceType::MOBILE;
								$this->device->generic = false;
								$identified = true;
							}

							if (preg_match('/^TIANYU-KTOUCH\/([^\/]+)/ui', $candidates[$i], $match)) {
								$this->device->manufacturer = 'K-Touch';
								$this->device->model = Data\DeviceModels::cleanup($match[1]);
								$this->device->type = Constants\DeviceType::MOBILE;
								$this->device->generic = false;
								$identified = true;
							}

							if (preg_match('/^K-Touch_?([^\/]*)/ui', $candidates[$i], $match)) {
								$this->device->manufacturer = 'K-Touch';
								$this->device->model = Data\DeviceModels::cleanup($match[1]);
								$this->device->type = Constants\DeviceType::MOBILE;
								$this->device->generic = false;
								$identified = true;
							}

							if (preg_match('/^Lenovo-([^\/]*)/ui', $candidates[$i], $match)) {
								$this->device->manufacturer = 'Lenovo';
								$this->device->model = Data\DeviceModels::cleanup($match[1]);
								$this->device->type = Constants\DeviceType::MOBILE;
								$this->device->generic = false;
								$identified = true;
							}

							if (preg_match('/^Lephone_([^\/]*)/ui', $candidates[$i], $match)) {
								$this->device->manufacturer = 'Lephone';
								$this->device->model = Data\DeviceModels::cleanup($match[1]);
								$this->device->type = Constants\DeviceType::MOBILE;
								$this->device->generic = false;
								$identified = true;
							}

							if (preg_match('/(?:^|\()LGE?(?:\/|-|_|\s)([^\s]*)/ui', $candidates[$i], $match)) {
								$this->device->manufacturer = 'LG';
								$this->device->model = Data\DeviceModels::cleanup($match[1]);
								$this->device->type = Constants\DeviceType::MOBILE;
								$this->device->generic = false;
								$identified = true;
							}

							if (preg_match('/^MOT-([^\/_]+)(?:\/|_|$)/ui', $candidates[$i], $match)) {
								$this->device->manufacturer = 'Motorola';
								$this->device->model = Data\DeviceModels::cleanup($match[1]);
								$this->device->type = Constants\DeviceType::MOBILE;
								$this->device->generic = false;
								$identified = true;
							}

							if (preg_match('/^Motorola_([^\/_]+)(?:\/|_|$)/ui', $candidates[$i], $match)) {
								$this->device->manufacturer = 'Motorola';
								$this->device->model = Data\DeviceModels::cleanup($match[1]);
								$this->device->type = Constants\DeviceType::MOBILE;
								$this->device->generic = false;
								$identified = true;
							}

							if (preg_match('/^Nokia-?([^\/]+)(?:\/|$)/ui', $candidates[$i], $match)) {
								$this->device->manufacturer = 'Nokia';

								if ($match[1] != 'Browser') {
									$this->device->model = Data\DeviceModels::cleanup($match[1]);
									$this->device->type = Constants\DeviceType::MOBILE;
									$this->device->identified = false;
									$this->device->generic = false;
									$identified = true;

									if (!$this->device->identified) {
										$device = Data\DeviceModels::identify('s60', $this->device->model);
										if ($device->identified) {
											$device->identified |= $this->device->identified;
											$this->device = $device;

											if (!isset($this->os->name) || $this->os->name != 'Series60') {
												$this->os->name = 'Series60';
												$this->os->version = null;
											}
										}
									}

									if (!$this->device->identified) {
										$device = Data\DeviceModels::identify('s40', $this->device->model);
										if ($device->identified) {
											$device->identified |= $this->device->identified;
											$this->device = $device;

											if (!isset($this->os->name) || $this->os->name != 'Series40') {
												$this->os->name = 'Series40';
												$this->os->version = null;
											}
										}
									}

									if (!$this->device->identified) {
										$device = Data\DeviceModels::identify('asha', $this->device->model);
										if ($device->identified) {
											$device->identified |= $this->device->identified;
											$this->device = $device;

											if (!isset($this->os->name) || $this->os->name != 'Nokia Asha Platform') {
												$this->os->name = 'Nokia Asha Platform';
												$this->os->version = new Version([ 'value' => '1.0' ]);

												if (preg_match('/java_runtime_version=Nokia_Asha_([0-9_]+);/u', $ua, $match)) {
													$this->os->version = new Version([ 'value' => str_replace('_', '.', $match[1]) ]);
												}
											}
										}
									}
								}
							}

							if (preg_match('/^Nexian([^\/_]+)(?:\/|_|$)/ui', $candidates[$i], $match)) {
								$this->device->manufacturer = 'Nexian';
								$this->device->model = Data\DeviceModels::cleanup($match[1]);
								$this->device->type = Constants\DeviceType::MOBILE;
								$this->device->generic = false;
								$identified = true;
							}

							if (preg_match('/^NGM_([^\/_]+)(?:\/|_|$)/ui', $candidates[$i], $match)) {
								$this->device->manufacturer = 'NGM';
								$this->device->model = Data\DeviceModels::cleanup($match[1]);
								$this->device->type = Constants\DeviceType::MOBILE;
								$this->device->generic = false;
								$identified = true;
							}

							if (preg_match('/^OPPO_([^\/_]+)(?:\/|_|$)/ui', $candidates[$i], $match)) {
								$this->device->manufacturer = 'Oppo';
								$this->device->model = Data\DeviceModels::cleanup($match[1]);
								$this->device->type = Constants\DeviceType::MOBILE;
								$this->device->generic = false;
								$identified = true;
							}

							if (preg_match('/^Pantech-?([^\/_]+)(?:\/|_|$)/ui', $candidates[$i], $match)) {
								$this->device->manufacturer = 'Pantech';
								$this->device->model = Data\DeviceModels::cleanup($match[1]);
								$this->device->type = Constants\DeviceType::MOBILE;
								$this->device->generic = false;
								$identified = true;
							}

							if (preg_match('/^Philips([^\/_\s]+)/ui', $candidates[$i], $match)) {
								$this->device->manufacturer = 'Philips';
								$this->device->model = Data\DeviceModels::cleanup($match[1]);
								$this->device->type = Constants\DeviceType::MOBILE;
								$this->device->generic = false;
								$identified = true;
							}

							if (preg_match('/^sam-([A-Z][0-9]+)$/ui', $candidates[$i], $match)) {
								$this->device->manufacturer = 'Samsung';
								$this->device->model = Data\DeviceModels::cleanup('sam-' . $match[1]);
								$this->device->type = Constants\DeviceType::MOBILE;
								$this->device->identified = false;
								$this->device->generic = false;
								$identified = true;
							}

							if (preg_match('/^(SH[0-9]+[A-Z])$/ui', $candidates[$i], $match)) {
								$this->device->manufacturer = 'Sharp';
								$this->device->model = Data\DeviceModels::cleanup($match[1]);
								$this->device->type = Constants\DeviceType::MOBILE;
								$this->device->identified = false;
								$this->device->generic = false;
								$identified = true;
							}

							if (preg_match('/^SE([A-Z][0-9]+[a-z])$/ui', $candidates[$i], $match)) {
								$this->device->manufacturer = 'Sony Ericsson';
								$this->device->model = Data\DeviceModels::cleanup($match[1]);
								$this->device->type = Constants\DeviceType::MOBILE;
								$this->device->identified = false;
								$this->device->generic = false;
								$identified = true;
							}

							if (preg_match('/^SonyEricsson([^\/_]+)(?:\/|_|$)/ui', $candidates[$i], $match)) {
								$this->device->manufacturer = 'Sony Ericsson';
								$this->device->model = Data\DeviceModels::cleanup($match[1]);
								$this->device->type = Constants\DeviceType::MOBILE;
								$this->device->identified = false;
								$this->device->generic = false;
								$identified = true;

								if (preg_match('/^[a-z][0-9]+/u', $this->device->model)) {
									$this->device->model[0] = strtoupper($this->device->model[0]);
								}

								if (isset($this->os->name) && $this->os->name == 'Series60') {
									$device = Data\DeviceModels::identify('s60', $this->device->model);
									if ($device->identified) {
										$device->identified |= $this->device->identified;
										$this->device = $device;
									}
								}
							}

							if (preg_match('/^Spice\s?([A-Z][0-9]+)/ui', $candidates[$i], $match)) {
								$this->device->manufacturer = 'Spice';
								$this->device->model = Data\DeviceModels::cleanup($match[1]);
								$this->device->type = Constants\DeviceType::MOBILE;
								$this->device->generic = false;
								$identified = true;
							}

							if (preg_match('/^Tecno([^\/]*)/ui', $candidates[$i], $match)) {
								$this->device->manufacturer = 'Tecno';
								$this->device->model = Data\DeviceModels::cleanup($match[1]);
								$this->device->type = Constants\DeviceType::MOBILE;
								$this->device->generic = false;
								$identified = true;
							}

							if (preg_match('/^T-smart_([^\/]*)/ui', $candidates[$i], $match)) {
								$this->device->manufacturer = 'T-smart';
								$this->device->model = Data\DeviceModels::cleanup($match[1]);
								$this->device->type = Constants\DeviceType::MOBILE;
								$this->device->generic = false;
								$identified = true;
							}

							if (preg_match('/^TCL[-_ ]([^\/]*)/ui', $candidates[$i], $match)) {
								$this->device->manufacturer = 'TCL';
								$this->device->model = Data\DeviceModels::cleanup($match[1]);
								$this->device->type = Constants\DeviceType::MOBILE;
								$this->device->generic = false;
								$identified = true;
							}

							if (preg_match('/^Tiphone ([^\/]*)/ui', $candidates[$i], $match)) {
								$this->device->manufacturer = 'TiPhone';
								$this->device->model = Data\DeviceModels::cleanup($match[1]);
								$this->device->type = Constants\DeviceType::MOBILE;
								$this->device->generic = false;
								$identified = true;
							}

							if (preg_match('/^Toshiba[\/-]([^\/-]*)/ui', $candidates[$i], $match)) {
								$this->device->manufacturer = 'Toshiba';
								$this->device->model = Data\DeviceModels::cleanup($match[1]);
								$this->device->type = Constants\DeviceType::MOBILE;
								$this->device->generic = false;
								$identified = true;
							}

							if (preg_match('/^SHARP[-_\/]([^\/]*)/ui', $candidates[$i], $match)) {
								$this->device->manufacturer = 'Sharp';
								$this->device->model = Data\DeviceModels::cleanup($match[1]);
								$this->device->type = Constants\DeviceType::MOBILE;
								$this->device->generic = false;
								$identified = true;
							}

							if (preg_match('/^SAMSUNG[-\/ ]?([^\/_]+)(?:\/|_|$)/ui', $candidates[$i], $match)) {
								$this->device->manufacturer = 'Samsung';
								$this->device->model = Data\DeviceModels::cleanup($match[1]);
								$this->device->type = Constants\DeviceType::MOBILE;
								$this->device->identified = false;
								$this->device->generic = false;
								$identified = true;

								if (isset($this->os->name) && $this->os->name == 'Bada') {
									$device = Data\DeviceModels::identify('bada', $this->device->model);
									if ($device->identified) {
										$device->identified |= $this->device->identified;
										$this->device = $device;
									}
								}

								else if (isset($this->os->name) && $this->os->name == 'Series60') {
									$device = Data\DeviceModels::identify('s60', $this->device->model);
									if ($device->identified) {
										$device->identified |= $this->device->identified;
										$this->device = $device;
									}
								}

								else if (preg_match('/Jasmine\/([0-9.]*)/u', $ua, $match)) {
									$version = $match[1];

									$device = Data\DeviceModels::identify('touchwiz', $this->device->model);
									if ($device->identified) {
										$device->identified |= $this->device->identified;
										$this->device = $device;
										$this->os->name = 'Touchwiz';

										switch($version) {
											case '0.8':		$this->os->version = new Version([ 'value' => '1.0' ]); break;
											case '1.0':		$this->os->version = new Version([ 'value' => '2.0', 'alias' => '2.0 or earlier' ]); break;
											case '2.0':		$this->os->version = new Version([ 'value' => '3.0' ]); break;
										}
									}
								}

								else if (preg_match('/(?:Dolfin\/([0-9.]*)|Browser\/Dolfin([0-9.]*))/u', $ua, $match)) {
									$version = $match[1] || $match[2];

									$device = Data\DeviceModels::identify('bada', $this->device->model);
									if ($device->identified) {
										$device->identified |= $this->device->identified;
										$this->device = $device;
										$this->os->name = 'Bada';

										switch($version) {
											case '2.0':		$this->os->version = new Version([ 'value' => '1.0' ]); break;
											case '2.2':		$this->os->version = new Version([ 'value' => '1.2' ]); break;
											case '3.0':		$this->os->version = new Version([ 'value' => '2.0' ]); break;
										}
									}

									else {
										$device = Data\DeviceModels::identify('touchwiz', $this->device->model);
										if ($device->identified) {
										$device->identified |= $this->device->identified;
											$this->device = $device;
											$this->os->name = 'Touchwiz';

											switch($version) {
												case '1.5':		$this->os->version = new Version([ 'value' => '2.0' ]); break;
												case '2.0':		$this->os->version = new Version([ 'value' => '3.0' ]); break;
											}
										}
									}
								}
							}

							if (preg_match('/^Spice\s([^\s]+)/ui', $candidates[$i], $match)) {
								$this->device->manufacturer = 'Spice';
								$this->device->model = Data\DeviceModels::cleanup($match[1]);
								$this->device->type = Constants\DeviceType::MOBILE;
								$this->device->generic = false;
								$identified = true;
							}

							if (preg_match('/^UTStar-([^\s]+)/ui', $candidates[$i], $match)) {
								$this->device->manufacturer = 'UTStar';
								$this->device->model = Data\DeviceModels::cleanup($match[1]);
								$this->device->type = Constants\DeviceType::MOBILE;
								$this->device->generic = false;
								$identified = true;
							}

							if (preg_match('/^vk-(vk[0-9]+)/ui', $candidates[$i], $match)) {
								$this->device->manufacturer = 'VK Mobile';
								$this->device->model = Data\DeviceModels::cleanup(strtoupper($match[1]));
								$this->device->type = Constants\DeviceType::MOBILE;
								$this->device->generic = false;
								$identified = true;
							}

							if (preg_match('/^Xiaomi[_]?([^\s]+)/ui', $candidates[$i], $match)) {
								$this->device->manufacturer = 'Xiaomi';
								$this->device->model = Data\DeviceModels::cleanup($match[1]);
								$this->device->type = Constants\DeviceType::MOBILE;
								$this->device->generic = false;
								$identified = true;
							}

							if (preg_match('/^ZTE[-_]?([^\s]+)/ui', $candidates[$i], $match)) {
								$this->device->manufacturer = 'ZTE';
								$this->device->model = Data\DeviceModels::cleanup($match[1]);
								$this->device->type = Constants\DeviceType::MOBILE;
								$this->device->generic = false;
								$identified = true;
							}
						}
					}

					if ($identified && !$this->device->identified) {
						if (!$this->device->identified) {
							$device = Data\DeviceModels::identify('bada', $this->device->model);
							if ($device->identified) {
								$device->identified |= $this->device->identified;
								$this->device = $device;
								$this->os->name = 'Bada';
							}
						}

						if (!$this->device->identified) {
							$device = Data\DeviceModels::identify('touchwiz', $this->device->model);
							if ($device->identified) {
								$device->identified |= $this->device->identified;
								$this->device = $device;
								$this->os->name = 'Touchwiz';
							}
						}

						if (!$this->device->identified) {
							$device = Data\DeviceModels::identify('wp', $this->device->model);
							if ($device->identified) {
								$device->identified |= $this->device->identified;
								$this->device = $device;
								$this->os->name = 'Windows Phone';
							}
						}

						if (!$this->device->identified) {
							$device = Data\DeviceModels::identify('wm', $this->device->model);
							if ($device->identified) {
								$device->identified |= $this->device->identified;
								$this->device = $device;
								$this->os->name = 'Windows Mobile';
							}
						}

						if (!$this->device->identified) {
							$device = Data\DeviceModels::identify('android', $this->device->model);
							if ($device->identified) {
								$device->identified |= $this->device->identified;
								$this->device = $device;

								if (!isset($this->os->name) || ($this->os->name != 'Android' && (!isset($this->os->family) || $this->os->family != 'Android'))) {
									$this->os->name = 'Android';
								}
							}
						}

						if (!$this->device->identified) {
							$device = Data\DeviceModels::identify('brew', $this->device->model);
							if ($device->identified) {
								$device->identified |= $this->device->identified;
								$this->device = $device;
								$this->os->name = 'Brew';
							}
						}

						if (!$this->device->identified) {
							$device = Data\DeviceModels::identify('feature', $this->device->model);
							if ($device->identified) {
								$device->identified |= $this->device->identified;
								$this->device = $device;
							}
						}
					}

					if ($identified && !$this->device->identified) {
						if (!$this->device->identified) {
							$device = Data\DeviceModels::identify('bada', $this->device->manufacturer . ' ' . $this->device->model);
							if ($device->identified) {
								$device->identified |= $this->device->identified;
								$this->device = $device;
								$this->os->name = 'Bada';
							}
						}

						if (!$this->device->identified) {
							$device = Data\DeviceModels::identify('touchwiz', $this->device->manufacturer . ' ' . $this->device->model);
							if ($device->identified) {
								$device->identified |= $this->device->identified;
								$this->device = $device;
								$this->os->name = 'Touchwiz';
							}
						}

						if (!$this->device->identified) {
							$device = Data\DeviceModels::identify('wp', $this->device->manufacturer . ' ' . $this->device->model);
							if ($device->identified) {
								$device->identified |= $this->device->identified;
								$this->device = $device;
								$this->os->name = 'Windows Phone';
							}
						}

						if (!$this->device->identified) {
							$device = Data\DeviceModels::identify('wm', $this->device->manufacturer . ' ' . $this->device->model);
							if ($device->identified) {
								$device->identified |= $this->device->identified;
								$this->device = $device;
								$this->os->name = 'Windows Mobile';
							}
						}

						if (!$this->device->identified) {
							$device = Data\DeviceModels::identify('android', $this->device->manufacturer . ' ' . $this->device->model);
							if ($device->identified) {
								$device->identified |= $this->device->identified;
								$this->device = $device;

								if (!isset($this->os->name)) {
									$this->os->name = 'Android';
								}
							}
						}

						if (!$this->device->identified) {
							$device = Data\DeviceModels::identify('feature', $this->device->manufacturer . ' ' . $this->device->model);
							if ($device->identified) {
								$device->identified |= $this->device->identified;
								$this->device = $device;
							}
						}
					}

					if ($identified) {
						$this->device->identified |= Constants\Id::PATTERN;
					}
				}
			}


			if (preg_match('/\(([A-Z][0-9]+[A-Z])[^;]*; ?FOMA/ui', $ua, $match)) {
				$this->device->manufacturer = 'DoCoMo';
				$this->device->model = Data\DeviceModels::cleanup($match[1]);
				$this->device->type = Constants\DeviceType::MOBILE;
				$this->device->identified |= Constants\Id::PATTERN;
				$this->device->generic = false;
			}

			if (preg_match('/DoCoMo\/[0-9.]+\/([A-Z][0-9]+[A-Z])[^\/]*\//ui', $ua, $match)) {
				$this->device->manufacturer = 'DoCoMo';
				$this->device->model = Data\DeviceModels::cleanup($match[1]);
				$this->device->type = Constants\DeviceType::MOBILE;
				$this->device->identified |= Constants\Id::PATTERN;
				$this->device->generic = false;
			}

			if (preg_match('/J-PHONE\/[^\/]+\/([^\/]+)\//u', $ua, $match)) {
				$this->device->manufacturer = 'Softbank';
				$this->device->model = Data\DeviceModels::cleanup($match[1]);
				$this->device->type = Constants\DeviceType::MOBILE;
				$this->device->identified |= Constants\Id::PATTERN;
				$this->device->generic = false;
			}

			if (preg_match('/SoftBank\/[^\/]+\/([^\/]+)\//u', $ua, $match)) {
				$this->device->manufacturer = 'Softbank';
				$this->device->model = Data\DeviceModels::cleanup($match[1]);
				$this->device->type = Constants\DeviceType::MOBILE;
				$this->device->identified |= Constants\Id::PATTERN;
				$this->device->generic = false;
			}

			if (preg_match('/^T-Mobile ([^\/]+)\//u', $ua, $match)) {
				$this->device->manufacturer = 'T-Mobile';
				$this->device->model = Data\DeviceModels::cleanup($match[1]);
				$this->device->type = Constants\DeviceType::MOBILE;
				$this->device->identified |= Constants\Id::PATTERN;
				$this->device->generic = false;
			}

			if (preg_match('/HP(iPAQ[0-9]+)\//u', $ua, $match)) {
				$this->device->manufacturer = 'HP';
				$this->device->model = Data\DeviceModels::cleanup($match[1]);
				$this->device->type = Constants\DeviceType::MOBILE;
				$this->device->identified |= Constants\Id::PATTERN;
				$this->device->generic = false;

				$device = Data\DeviceModels::identify('wm', $this->device->model);
				if ($device->identified) {
					$device->identified |= $this->device->identified;
					$this->device = $device;
				}
			}

			if (preg_match('/\((?:LG[-|\/])(.*) (?:Browser\/)?AppleWebkit/u', $ua, $match)) {
				$this->device->manufacturer = 'LG';
				$this->device->model = Data\DeviceModels::cleanup($match[1]);
				$this->device->type = Constants\DeviceType::MOBILE;
				$this->device->identified |= Constants\Id::PATTERN;
				$this->device->generic = false;
			}

			if (preg_match('/^Mozilla\/5.0 \((?:Nokia|NOKIA)(?:\s?)([^\)]+)\)UC AppleWebkit\(like Gecko\) Safari\/530$/u', $ua, $match)) {
				$this->device->manufacturer = 'Nokia';
				$this->device->model = Data\DeviceModels::cleanup($match[1]);
				$this->device->type = Constants\DeviceType::MOBILE;
				$this->device->identified |= Constants\Id::PATTERN;
				$this->device->generic = false;

				if (! ($this->device->identified & Constants\Id::MATCH_UA)) {
					$device = Data\DeviceModels::identify('s60', $this->device->model);
					if ($device->identified) {
						$device->identified |= $this->device->identified;
						$this->device = $device;

						if (!isset($this->os->name) || $this->os->name != 'Series60') {
							$this->os->name = 'Series60';
							$this->os->version = null;
						}
					}
				}

				if (! ($this->device->identified & Constants\Id::MATCH_UA)) {
					$device = Data\DeviceModels::identify('s40', $this->device->model);
					if ($device->identified) {
						$device->identified |= $this->device->identified;
						$this->device = $device;

						if (!isset($this->os->name) || $this->os->name != 'Series40') {
							$this->os->name = 'Series40';
							$this->os->version = null;
						}
					}
				}
			}



			/****************************************************
			 *		Safari
			 */

			if (preg_match('/Safari/u', $ua)) {

				if (isset($this->os->name) && $this->os->name == 'iOS') {
					$this->browser->stock = true;
					$this->browser->hidden = true;
					$this->browser->name = 'Safari';
					$this->browser->version = null;

					if (preg_match('/Version\/([0-9\.]+)/u', $ua, $match)) {
						$this->browser->version = new Version([ 'value' => $match[1], 'hidden' => true ]);
					}
				}

				if (isset($this->os->name) && ($this->os->name == 'OS X' || $this->os->name == 'Windows')) {
					$this->browser->name = 'Safari';
					$this->browser->stock = $this->os->name == 'OS X';

					if (preg_match('/Version\/([0-9\.]+)/u', $ua, $match)) {
						$this->browser->version = new Version([ 'value' => $match[1] ]);
					}

					if (preg_match('/AppleWebKit\/[0-9\.]+\+/u', $ua)) {
						$this->browser->name = 'WebKit Nightly Build';
						$this->browser->version = null;
					}
				}


				if (isset($this->os->name) && $this->os->name == 'Darwin') {
					if (preg_match("/^MobileSafari/iu", $ua)) {
						$this->browser->name = 'Safari';
						$this->browser->version = null;
						$this->browser->stock = true;
						$this->browser->hidden = true;

						$this->device->type = Constants\DeviceType::MOBILE;
					}

					else if (preg_match("/^Safari/iu", $ua)) {
						$this->browser->name = 'Safari';
						$this->browser->version = null;
						$this->browser->stock = true;

						$this->device->type = Constants\DeviceType::DESKTOP;
					}
				}
			}

			if (preg_match('/(?:Apple-PubSub|AppleSyndication)\//u', $ua)) {
				$this->browser->stock = true;
				$this->browser->name = 'Safari RSS';
				$this->browser->version = null;

				$this->os->name = 'OS X';
				$this->os->version = null;

				$this->device->type = Constants\DeviceType::DESKTOP;
			}



			/****************************************************
			 *		Internet Explorer
			 */

			if (preg_match('/MSIE/u', $ua)) {
				$this->browser->name = 'Internet Explorer';

				if (preg_match('/IEMobile/u', $ua) || preg_match('/Windows CE/u', $ua) || preg_match('/Windows Phone/u', $ua) || preg_match('/WP7/u', $ua) || preg_match('/WPDesktop/u', $ua)) {
					$this->browser->name = 'Mobile Internet Explorer';

					if (isset($this->device->model) && ($this->device->model == 'Xbox 360' || $this->device->model == 'Xbox One')) {
						$this->browser->name = 'Internet Explorer';
					}
				}

				if (preg_match('/MSIE ([0-9.]*)/u', $ua, $match)) {
					$this->browser->version = new Version([ 'value' => preg_replace("/\.([0-9])([0-9])/", '.$1.$2', $match[1]) ]);
				}

				if (preg_match('/Mac_/u', $ua)) {
					$this->os->name = 'Mac OS';
					$this->engine->name = 'Tasman';
					$this->device->type = Constants\DeviceType::DESKTOP;

					if ($this->browser->version->toFloat() >= 5.11 && $this->browser->version->toFloat() <= 5.13) {
						$this->os->name = 'OS X';
					}

					if ($this->browser->version->toFloat() >= 5.2) {
						$this->os->name = 'OS X';
					}
				}
			}

			if (preg_match('/\(IE ([0-9.]*)/u', $ua, $match)) {
				$this->browser->name = 'Internet Explorer';
				$this->browser->version = new Version([ 'value' => $match[1] ]);
			}

			if (preg_match('/Browser\/IE([0-9.]*)/u', $ua, $match)) {
				$this->browser->name = 'Internet Explorer';
				$this->browser->version = new Version([ 'value' => $match[1] ]);
			}

			if (preg_match('/Trident\/[789][^\)]+; rv:([0-9.]*)\)/u', $ua, $match)) {
				$this->browser->name = 'Internet Explorer';
				$this->browser->version = new Version([ 'value' => $match[1] ]);
			}

			if (preg_match('/Trident\/[789][^\)]+; Touch; rv:([0-9.]*);\s+IEMobile\//u', $ua, $match)) {
				$this->browser->name = 'Mobile Internet Explorer';
				$this->browser->version = new Version([ 'value' => $match[1] ]);
			}

			if (preg_match('/Trident\/[789][^\)]+; Touch; rv:([0-9.]*); WPDesktop/u', $ua, $match)) {
				$this->browser->mode = 'desktop';
				$this->browser->name = 'Mobile Internet Explorer';
				$this->browser->version = new Version([ 'value' => $match[1] ]);
			}


			/****************************************************
			 *		Firefox
			 */

			if (preg_match('/Firefox/u', $ua)) {
				$this->browser->stock = false;
				$this->browser->name = 'Firefox';

				if (preg_match('/Firefox\/([0-9ab.]*)/u', $ua, $match)) {
					$this->browser->version = new Version([ 'value' => $match[1] ]);

					if (preg_match('/a/u', $match[1])) {
						$this->browser->channel = 'Aurora';
					}

					if (preg_match('/b/u', $match[1])) {
						$this->browser->channel = 'Beta';
					}
				}

				if (preg_match('/Aurora\/([0-9ab.]*)/u', $ua, $match)) {
					$this->browser->channel = 'Aurora';
					$this->browser->version = new Version([ 'value' => $match[1] ]);
				}

				if (preg_match('/Fennec/u', $ua)) {
					$this->device->type = Constants\DeviceType::MOBILE;
				}

				if (preg_match('/Mobile;(?: ([^;]+);)? rv/u', $ua, $match)) {
					$this->device->type = Constants\DeviceType::MOBILE;

					if (isset($match[1])) {
						$device = Data\DeviceModels::identify('firefoxos', $match[1]);
						if ($device->identified) {
							$device->identified |= $this->device->identified;
							$this->os->name = 'Firefox OS';
							$this->device = $device;
						}
					}
				}

				if (preg_match('/Tablet;(?: ([^;]+);)? rv/u', $ua, $match)) {
					$this->device->type = Constants\DeviceType::TABLET;

					if (isset($match[1])) {
						$device = Data\DeviceModels::identify('firefoxos', $match[1]);
						if ($device->identified) {
							$device->identified |= $this->device->identified;
							$this->os->name = 'Firefox OS';
							$this->device = $device;
						}
					}
				}

				if (preg_match('/Viera;(?: ([^;]+);)? rv/u', $ua, $match)) {
					$this->device->type = Constants\DeviceType::TELEVISION;
					$this->os->name = 'Firefox OS';
				}

				if ($this->device->type == Constants\DeviceType::MOBILE || $this->device->type == Constants\DeviceType::TABLET) {
					$this->browser->name = 'Firefox Mobile';
				}

				if ($this->device->type == '') {
					$this->device->type = Constants\DeviceType::DESKTOP;
				}
			}

			if (preg_match('/Namoroka/u', $ua)) {
				$this->browser->stock = false;
				$this->browser->name = 'Firefox';

				if (preg_match('/Namoroka\/([0-9ab.]*)/u', $ua, $match)) {
					$this->browser->version = new Version([ 'value' => $match[1] ]);
				}

				$this->browser->channel = 'Namoroka';
			}

			if (preg_match('/Shiretoko/u', $ua)) {
				$this->browser->stock = false;
				$this->browser->name = 'Firefox';

				if (preg_match('/Shiretoko\/([0-9ab.]*)/u', $ua, $match)) {
					$this->browser->version = new Version([ 'value' => $match[1] ]);
				}

				$this->browser->channel = 'Shiretoko';
			}

			if (preg_match('/Minefield/u', $ua)) {
				$this->browser->stock = false;
				$this->browser->name = 'Firefox';

				if (preg_match('/Minefield\/([0-9ab.]*)/u', $ua, $match)) {
					$this->browser->version = new Version([ 'value' => $match[1] ]);
				}

				$this->browser->channel = 'Minefield';
			}

			if (preg_match('/BonEcho/u', $ua)) {
				$this->browser->stock = false;
				$this->browser->name = 'Firefox';

				if (preg_match('/BonEcho\/([0-9ab.]*)/u', $ua, $match)) {
					$this->browser->version = new Version([ 'value' => $match[1] ]);
				}

				$this->browser->channel = 'BonEcho';
			}

			if (preg_match('/Firebird/u', $ua)) {
				$this->browser->stock = false;
				$this->browser->name = 'Firebird';

				if (preg_match('/Firebird\/([0-9ab.]*)/u', $ua, $match)) {
					$this->browser->version = new Version([ 'value' => $match[1] ]);
				}
			}

			if (isset($this->os->name) && $this->os->name == 'Firefox OS') {
				if (preg_match('/rv:([0-9.]*)/u', $ua, $match)) {
					switch($match[1]) {
						case '18.0': $this->os->version = new Version([ 'value' => '1.0.1' ]); break;
						case '18.1': $this->os->version = new Version([ 'value' => '1.1' ]); break;
						case '26.0': $this->os->version = new Version([ 'value' => '1.2' ]); break;
						case '28.0': $this->os->version = new Version([ 'value' => '1.3' ]); break;
						case '30.0': $this->os->version = new Version([ 'value' => '1.4' ]); break;
						case '32.0': $this->os->version = new Version([ 'value' => '2.0' ]); break;
						case '34.0': $this->os->version = new Version([ 'value' => '2.1' ]); break;
					}
				}
			}

			if (preg_match('/FxiOS\/([0-9.]*)/u', $ua, $match)) {
				$this->browser->name = 'Firefox';
				$this->browser->version = new Version([ 'value' => $match[1] ]);
			}


			/****************************************************
			 *		SeaMonkey
			 */

			if (preg_match('/SeaMonkey/u', $ua)) {
				$this->browser->stock = false;
				$this->browser->name = 'SeaMonkey';

				if (preg_match('/SeaMonkey\/([0-9ab.]*)/u', $ua, $match)) {
					$this->browser->version = new Version([ 'value' => $match[1] ]);
				}

				if ($this->device->type == '') {
					$this->device->type = Constants\DeviceType::DESKTOP;
				}
			}

			if (preg_match('/PmWFx\/([0-9ab.]*)/u', $ua, $match)) {
				$this->browser->stock = false;
				$this->browser->name = 'SeaMonkey';
				$this->browser->version = new Version([ 'value' => $match[1] ]);
			}



			/****************************************************
			 *		Netscape
			 */

			if (preg_match('/Netscape/u', $ua)) {
				$this->browser->stock = false;
				$this->browser->name = 'Netscape';

				if (preg_match('/Netscape[0-9]?\/([0-9.]*)/u', $ua, $match)) {
					$this->browser->version = new Version([ 'value' => $match[1] ]);
				}
			}

			/****************************************************
			 *		Konqueror
			 */

			if (preg_match('/[k|K]onqueror\//u', $ua)) {
				$this->browser->name = 'Konqueror';

				if (preg_match('/[k|K]onqueror\/([0-9.]*)/u', $ua, $match)) {
					$this->browser->version = new Version([ 'value' => $match[1] ]);
				}

				if ($this->device->type == '') {
					$this->device->type = Constants\DeviceType::DESKTOP;
				}
			}

			/****************************************************
			 *		Chrome
			 */

			if (preg_match('/(?:Chrome|CrMo|CriOS)\/([0-9.]*)/u', $ua, $match)) {
				$this->browser->stock = false;
				$this->browser->name = 'Chrome';
				$this->browser->version = new Version([ 'value' => $match[1] ]);

				if (isset($this->os->name) && $this->os->name == 'Android') {
					$channel = Data\Chrome::getChannel('mobile', $match[1]);

					if ($channel == 'stable') {
						if (explode('.', $match[1])[1] == '0') {
							$this->browser->version->details = 1;
						} else {
							$this->browser->version->details = 2;
						}
					}
					else if ($channel == 'beta') {
						$this->browser->channel = 'Beta';
					}
					else {
						$this->browser->channel = 'Dev';
					}


					/* Webview for Android 4.4 and higher */
					if (implode('.', array_slice(explode('.', $match[1]), 1, 2)) == '0.0' && preg_match('/Version\//u', $ua)) {
						$this->browser->using = new Using([ 'name' => 'Chromium WebView', 'version' => new Version([ 'value' => explode('.', $match[1])[0] ]) ]);
						$this->browser->stock = true;
						$this->browser->name = null;
						$this->browser->version = null;
						$this->browser->channel = null;
					}

					/* Webview for Android 5 */
					if (preg_match('/; wv\)/u', $ua)) {
						$this->browser->using = new Using([ 'name' => 'Chromium WebView', 'version' => new Version([ 'value' => explode('.', $match[1])[0] ]) ]);
						$this->browser->stock = true;
						$this->browser->name = null;
						$this->browser->version = null;
						$this->browser->channel = null;
					}

					/* LG Chromium based browsers */
					if (isset($device->manufacturer) && $device->manufacturer == 'LG') {
						if (in_array($match[1], [ '30.0.1599.103', '34.0.1847.118', '38.0.2125.0', '38.0.2125.102' ]) && preg_match('/Version\/4/u', $ua) && !preg_match('/; wv\)/u', $ua)) {
							$this->browser->name = "LG Browser";
							$this->browser->channel = null;
							$this->browser->stock = true;
							$this->browser->version = null;
							$this->browser->channel = null;
						}
					}

					/* Samsung Chromium based browsers */
					if (isset($device->manufacturer) && $device->manufacturer == 'Samsung') {

						/* Version 1.0 */
						if ($match[1] == '18.0.1025.308' && preg_match('/Version\/1.0/u', $ua)) {
							$this->browser->name = "Samsung Browser";
							$this->browser->channel = null;
							$this->browser->stock = true;
							$this->browser->version = new Version([ 'value' => '1.0' ]);
							$this->browser->channel = null;
						}

						/* Version 1.5 */
						if ($match[1] == '28.0.1500.94' && preg_match('/Version\/1.5/u', $ua)) {
							$this->browser->name = "Samsung Browser";
							$this->browser->channel = null;
							$this->browser->stock = true;
							$this->browser->version = new Version([ 'value' => '1.5' ]);
							$this->browser->channel = null;
						}

						/* Version 1.6 */
						if ($match[1] == '28.0.1500.94' && preg_match('/Version\/1.6/u', $ua)) {
							$this->browser->name = "Samsung Browser";
							$this->browser->channel = null;
							$this->browser->stock = true;
							$this->browser->version = new Version([ 'value' => '1.6' ]);
							$this->browser->channel = null;
						}

						/* Version 2.0 */
						if ($match[1] == '34.0.1847.76' && preg_match('/Version\/2.0/u', $ua)) {
							$this->browser->name = "Samsung Browser";
							$this->browser->channel = null;
							$this->browser->stock = true;
							$this->browser->version = new Version([ 'value' => '2.0' ]);
							$this->browser->channel = null;
						}

						/* Version 2.1 */
						if ($match[1] == '34.0.1847.76' && preg_match('/Version\/2.1/u', $ua)) {
							$this->browser->name = "Samsung Browser";
							$this->browser->channel = null;
							$this->browser->stock = true;
							$this->browser->version = new Version([ 'value' => '2.1' ]);
							$this->browser->channel = null;
						}
					}

					/* Samsung Chromium based browsers */
					if (preg_match('/SamsungBrowser\/([0-9.]*)/u', $ua, $match)) {
						$this->browser->name = "Samsung Browser";
						$this->browser->channel = null;
						$this->browser->stock = true;
						$this->browser->version = new Version([ 'value' => $match[1] ]);
						$this->browser->channel = null;
					}
				}

				else {
					$channel = Data\Chrome::getChannel('desktop', $match[1]);

					if ($channel == 'stable') {
						if (explode('.', $match[1])[1] == '0') {
							$this->browser->version->details = 1;
						} else {
							$this->browser->version->details = 2;
						}
					}
					else if ($channel == 'beta') {
						$this->browser->channel = 'Beta';
					}
					else {
						$this->browser->channel = 'Dev';
					}
				}

				if ($this->device->type == '') {
					$this->device->type = Constants\DeviceType::DESKTOP;
				}
			}

			/****************************************************
			 *		Chromium
			 */

			if (preg_match('/Chromium/u', $ua)) {
				$this->browser->stock = false;
				$this->browser->channel = '';
				$this->browser->name = 'Chromium';

				if (preg_match('/Chromium\/([0-9.]*)/u', $ua, $match)) {
					$this->browser->version = new Version([ 'value' => $match[1] ]);
				}

				if ($this->device->type == '') {
					$this->device->type = Constants\DeviceType::DESKTOP;
				}
			}


			/****************************************************
			 *		Chromium WebView by Amazon
			 */

			if (preg_match('/AmazonWebAppPlatform\//u', $ua)) {
				$this->browser->using = new Using([ 'name' => 'Amazon WebView' ]); 

				$this->browser->stock = false;
				$this->browser->name = null;
				$this->browser->version = null;
				$this->browser->channel = null;
			}

			/****************************************************
			 *		Chromium WebView by Crosswalk
			 */

			if (preg_match('/Crosswalk\/([0-9.]*)/u', $ua, $match)) {
				$this->browser->using = new Using([ 'name' => 'Crosswalk WebView', 'version' => new Version([ 'value' => $match[1], 'details' => 1 ]) ]); 

				$this->browser->stock = false;
				$this->browser->name = null;
				$this->browser->version = null;
				$this->browser->channel = null;
			}

			/****************************************************
			 *		Edge
			 */


			if (preg_match('/Edge\/([0-9]+)/u', $ua, $match)) {
				$this->browser->name = 'Edge';
				$this->browser->alias = 'Edge ' . $match[1];
				$this->browser->channel = '';
				$this->browser->version = null;
			}

			/****************************************************
			 *		Opera
			 */

			if (preg_match('/OPR\/([0-9.]*)/u', $ua, $match)) {
				$this->browser->stock = false;
				$this->browser->channel = '';
				$this->browser->name = 'Opera';
				$this->browser->version = new Version([ 'value' => $match[1], 'details' => 2 ]);

				if (preg_match('/Edition Developer/u', $ua)) {
					$this->browser->channel = 'Developer';
				}

				if (preg_match('/Edition Next/u', $ua)) {
					$this->browser->channel = 'Next';
				}

				if (preg_match('/Edition beta/u', $ua)) {
					$this->browser->channel = 'Beta';
				}

				if ($this->device->type == Constants\DeviceType::MOBILE) {
					$this->browser->name = 'Opera Mobile';
				}

				if (preg_match('/OMI\//u', $ua)) {
					$this->device->type = Constants\DeviceType::TELEVISION;
				}
			}

			if (preg_match('/Opera[\/\-\s]/iu', $ua)) {
				$this->browser->stock = false;
				$this->browser->name = 'Opera';

				if (preg_match('/Opera[\/| ]([0-9.]*)/u', $ua, $match)) {
					$this->browser->version = new Version([ 'value' => $match[1] ]);
				}

				if (preg_match('/Version\/([0-9.]*)/u', $ua, $match)) {
					if (floatval($match[1]) >= 10)
						$this->browser->version = new Version([ 'value' => $match[1] ]);
					else
						$this->browser->version = null;
				}

				if (isset($this->browser->version) && preg_match('/Edition Labs/u', $ua)) {
					$this->browser->channel = 'Labs';
				}

				if (isset($this->browser->version) && preg_match('/Edition Next/u', $ua)) {
					$this->browser->channel = 'Next';
				}

				if (preg_match('/Opera Tablet/u', $ua)) {
					$this->browser->name = 'Opera Mobile';
					$this->device->type = Constants\DeviceType::TABLET;
				}

				if (preg_match('/Opera Mobi/u', $ua)) {
					$this->browser->name = 'Opera Mobile';
					$this->device->type = Constants\DeviceType::MOBILE;
				}

				if (preg_match('/Opera Mini;/u', $ua)) {
					$this->browser->name = 'Opera Mini';
					$this->browser->version = null;
					$this->browser->mode = 'proxy';
					$this->device->type = Constants\DeviceType::MOBILE;
				}

				if (preg_match('/Opera Mini\/(?:att\/)?([0-9.]*)/u', $ua, $match)) {
					$this->browser->name = 'Opera Mini';
					$this->browser->version = new Version([ 'value' => $match[1], 'details' => (intval(substr(strrchr($match[1], '.'), 1)) > 99 ? -1 : null) ]);
					$this->browser->mode = 'proxy';
					$this->device->type = Constants\DeviceType::MOBILE;
				}

				if ($this->browser->name == 'Opera' && $this->device->type == Constants\DeviceType::MOBILE) {
					$this->browser->name = 'Opera Mobile';

					if (preg_match('/BER/u', $ua)) {
						$this->browser->name = 'Opera Mini';
						$this->browser->version = null;
					}
				}

				if (preg_match('/InettvBrowser/u', $ua)) {
					$this->device->type = Constants\DeviceType::TELEVISION;
				}

				if (preg_match('/Opera[ -]TV/u', $ua)) {
					$this->browser->name = 'Opera';
					$this->device->type = Constants\DeviceType::TELEVISION;
				}

				if (preg_match('/Linux zbov/u', $ua)) {
					$this->browser->name = 'Opera Mobile';
					$this->browser->mode = 'desktop';

					$this->device->type = Constants\DeviceType::MOBILE;

					$this->os->name = null;
					$this->os->version = null;
				}

				if (preg_match('/Linux zvav/u', $ua)) {
					$this->browser->name = 'Opera Mini';
					$this->browser->version = null;
					$this->browser->mode = 'desktop';

					$this->device->type = Constants\DeviceType::MOBILE;

					$this->os->name = null;
					$this->os->version = null;
				}

				if ($this->device->type == '') {
					$this->device->type = Constants\DeviceType::DESKTOP;
				}
			}

			if (preg_match('/OPiOS\/([0-9.]*)/u', $ua, $match)) {
				$this->browser->name = 'Opera Mini';
				$this->browser->version = new Version([ 'value' => $match[1], 'details' => 2 ]);
			}

			if (preg_match('/Coast\/([0-9.]*)/u', $ua, $match)) {
				$this->browser->name = 'Coast by Opera';
				$this->browser->version = new Version([ 'value' => $match[1], 'details' => 3 ]);
			}

			/****************************************************
			 *		wOSBrowser
			 */

			if (preg_match('/wOSBrowser/u', $ua)) {
				$this->browser->name = 'webOS Browser';

				if ($this->os->name != 'webOS') {
					$this->os->name = 'webOS';
				}
			}

			/****************************************************
			 *		Sailfish Browser
			 */

			if (preg_match('/Sailfish ?Browser/u', $ua)) {
				$this->browser->name = 'Sailfish Browser';
				$this->browser->stock = true;

				if (preg_match('/Sailfish ?Browser\/([0-9.]*)/u', $ua, $match)) {
					$this->browser->version = new Version([ 'value' => $match[1], 'details' => 2 ]);
				}
			}

			/****************************************************
			 *		BrowserNG
			 */

			if (preg_match('/BrowserNG/u', $ua)) {
				$this->browser->name = 'Nokia Browser';

				if (preg_match('/BrowserNG\/([0-9.]*)/u', $ua, $match)) {
					$this->browser->version = new Version([ 'value' => $match[1], 'details' => 3, 'builds' => false ]);
				}
			}

			/****************************************************
			 *		Nokia Browser
			 */

			if (preg_match('/NokiaBrowser/u', $ua)) {
				$this->browser->name = 'Nokia Browser';
				$this->browser->channel = null;

				if (preg_match('/NokiaBrowser\/([0-9.]*)/u', $ua, $match)) {
					$this->browser->version = new Version([ 'value' => $match[1], 'details' => 3 ]);
				}
			}

			/****************************************************
			 *		Nokia Xpress
			 *
			 *		Mozilla/5.0 (X11; Linux x86_64; rv:5.0.1) Gecko/20120822 OSRE/1.0.7f
			 */

			if (preg_match('/OSRE/u', $ua)) {
				$this->browser->name = 'Nokia Xpress';
				$this->browser->mode = 'proxy';
				$this->device->type = Constants\DeviceType::MOBILE;

				$this->os->name = null;
				$this->os->version = null;
			}

			if (preg_match('/S40OviBrowser/u', $ua)) {
				$this->browser->name = 'Nokia Xpress';
				$this->browser->mode = 'proxy';

				if (preg_match('/S40OviBrowser\/([0-9.]*)/u', $ua, $match)) {
					$this->browser->version = new Version([ 'value' => $match[1], 'details' => 3 ]);
				}

				if (preg_match('/Nokia([^\/]+)\//u', $ua, $match)) {
					$this->device->manufacturer = 'Nokia';
					$this->device->model = $match[1];
					$this->device->identified |= Constants\Id::PATTERN;

					if (isset($this->device->model)) {
						$device = Data\DeviceModels::identify('s40', $this->device->model);
						if ($device->identified) {
							$device->identified |= $this->device->identified;
							$this->device = $device;
						}
					}

					if (isset($this->device->model)) {
						$device = Data\DeviceModels::identify('asha', $this->device->model);
						if ($device->identified) {
							$device->identified |= $this->device->identified;
							$this->os->name = 'Nokia Asha Platform';
							$this->os->version = new Version([ 'value' => '1.0' ]);
							$this->device = $device;


							if (preg_match('/java_runtime_version=Nokia_Asha_([0-9_]+);/u', $ua, $match)) {
								$this->os->version = new Version([ 'value' => str_replace('_', '.', $match[1]) ]);
							}
						}
					}
				}

				if (preg_match('/NOKIALumia([0-9]+)/u', $ua, $match)) {
					$this->device->manufacturer = 'Nokia';
					$this->device->model = $match[1];
					$this->device->identified |= Constants\Id::PATTERN;

					$device = Data\DeviceModels::identify('wp', $this->device->model);
					if ($device->identified) {
						$device->identified |= $this->device->identified;
						$this->device = $device;
						$this->os->name = 'Windows Phone';
					}
				}
			}


			/****************************************************
			 *		MicroB
			 */

			if (preg_match('/Maemo[ |_]Browser/u', $ua)) {
				$this->browser->name = 'MicroB';

				if (preg_match('/Maemo[ |_]Browser[ |_]([0-9.]*)/u', $ua, $match)) {
					$this->browser->version = new Version([ 'value' => $match[1], 'details' => 3 ]);
				}
			}


			/****************************************************
			 *		Silk
			 */

			if (preg_match('/Silk/u', $ua)) {
				if (preg_match('/Silk-Accelerated/u', $ua) || !preg_match('/PlayStation/u', $ua)) {
					$this->browser->name = 'Silk';
					$this->browser->channel = null;

					if (preg_match('/Silk\/([0-9.]*)/u', $ua, $match)) {
						$this->browser->version = new Version([ 'value' => $match[1], 'details' => 2 ]);
					}

					if (preg_match('/; ([^;]*[^;\s])\s+Build/u', $ua, $match)) {
						$this->device = Data\DeviceModels::identify('android', $match[1]);
					}

					if (!$this->device->identified) {
						$this->device->manufacturer = 'Amazon';
						$this->device->model = 'Kindle Fire';
						$this->device->type = Constants\DeviceType::TABLET;
						$this->device->identified |= Constants\Id::INFER;

						if (isset($this->os->name) && ($this->os->name != 'Android' || $this->os->name != 'FireOS')) {
							$this->os->name = 'FireOS';
							$this->os->family = new Family([ 'name' => 'Android' ]);
							$this->os->alias = null;
							$this->os->version = null;
						}
					}
				}
			}

			/****************************************************
			 *		Dolfin
			 */

			if (preg_match('/Dolfin/u', $ua) || preg_match('/Jasmine/u', $ua)) {
				$this->browser->name = 'Dolfin';

				if (preg_match('/Dolfin\/([0-9.]*)/u', $ua, $match)) {
					$this->browser->version = new Version([ 'value' => $match[1] ]);
				}

				if (preg_match('/Browser\/Dolfin([0-9.]*)/u', $ua, $match)) {
					$this->browser->version = new Version([ 'value' => $match[1] ]);
				}

				if (preg_match('/Jasmine\/([0-9.]*)/u', $ua, $match)) {
					$this->browser->version = new Version([ 'value' => $match[1] ]);
				}
			}

			/****************************************************
			 *		Iris
			 */

			if (preg_match('/Iris[ \/]/u', $ua)) {
				$this->browser->name = 'Iris';

				$this->device->type = Constants\DeviceType::MOBILE;
				$this->device->manufacturer = null;
				$this->device->model = null;

				$this->os->name = 'Windows Mobile';
				$this->os->version = null;

				if (preg_match('/Iris\/([0-9.]*)/u', $ua, $match)) {
					$this->browser->version = new Version([ 'value' => $match[1] ]);
				}

				if (preg_match('/ WM([0-9]) /u', $ua, $match)) {
					$this->os->version = new Version([ 'value' => $match[1] . '.0' ]);
				} else {
					$this->browser->mode = 'desktop';
				}
			}

			/****************************************************
			 *		Boxee
			 */

			if (preg_match('/Boxee/u', $ua)) {
				$this->browser->name = 'Boxee';
				$this->device->type = Constants\DeviceType::TELEVISION;

				if (preg_match('/Boxee\/([0-9.]*)/u', $ua, $match)) {
					$this->browser->version = new Version([ 'value' => $match[1] ]);
				}
			}

			/****************************************************
			 *		Sraf TV Browser
			 */

			if (preg_match('/sraf_tv_browser/u', $ua)) {
				$this->browser->name = 'Sraf TV Browser';
				$this->browser->version = null;
				$this->device->type = Constants\DeviceType::TELEVISION;
			}

			/****************************************************
			 *		LG Browser
			 */

			if (preg_match('/LG Browser\/([0-9.]*)/u', $ua, $match)) {
				$this->browser->name = 'LG Browser';
				$this->browser->version = new Version([ 'value' => $match[1], 'details' => 2 ]);
				$this->device->type = Constants\DeviceType::TELEVISION;
			}

			if (preg_match('/NetCast/u', $ua) && preg_match('/SmartTV\//u', $ua)) {
				unset($this->browser->name);
				unset($this->browser->version);
			}

			/****************************************************
			 *		Sony Browser
			 */

			if (preg_match('/SonyBrowserCore\/([0-9.]*)/u', $ua, $match)) {
				unset($this->browser->name);
				unset($this->browser->version);
				$this->device->type = Constants\DeviceType::TELEVISION;
			}



			/****************************************************
			 *		Espial
			 */

			if (preg_match('/Espial/u', $ua)) {
				$this->browser->name = 'Espial';

				$this->os->name = '';
				$this->os->version = null;

				if ($this->device->type != Constants\DeviceType::TELEVISION) {
					$this->device->type = Constants\DeviceType::TELEVISION;
					$this->device->manufacturer = null;
					$this->device->model = null;
				}

				if (preg_match('/Espial\/([0-9.]*)/u', $ua, $match)) {
					$this->browser->version = new Version([ 'value' => $match[1] ]);
				}

				if (preg_match('/;L7200/u', $ua)) {
					$this->device->manufacturer = 'Toshiba';
					$this->device->model = 'Regza L7200';
					$this->device->series = 'Smart TV';
					$this->device->identified |= Constants\Id::MATCH_UA;
					$this->device->generic = false;
				}
			}

			/****************************************************
			 *		MachBlue XT
			 */

			if (preg_match('/mbxtWebKit\/([0-9.]*)/u', $ua, $match)) {
				$this->os->name = '';
				$this->browser->name = 'MachBlue XT';
				$this->browser->version = new Version([ 'value' => $match[1], 'details' => 2 ]);
				$this->device->type = Constants\DeviceType::TELEVISION;
			}

			if ($ua == 'MachBlue') {
				$this->os->name = '';
				$this->browser->name = 'MachBlue XT';
				$this->device->type = Constants\DeviceType::TELEVISION;
			}

			/****************************************************
			 *		ANT Galio
			 */

			if (preg_match('/ANTGalio\/([0-9.]*)/u', $ua, $match)) {
				$this->browser->name = 'ANT Galio';
				$this->browser->version = new Version([ 'value' => $match[1], 'details' => 3 ]);
				$this->device->type = Constants\DeviceType::TELEVISION;
			}

			/****************************************************
			 *		NetFront
			 */

			if (preg_match('/Net[fF]ront/u', $ua)) {
				$this->browser->name = 'NetFront';
				$this->device->type = Constants\DeviceType::MOBILE;

				if (preg_match('/NetFront\/?([0-9.]*)/ui', $ua, $match)) {
					$this->browser->version = new Version([ 'value' => $match[1] ]);
				}

				if (preg_match('/(InettvBrowser|HbbTV)/u', $ua)) {
					$this->device->type = Constants\DeviceType::TELEVISION;
				}

				if (preg_match('/Kindle/u', $ua)) {
					$this->device->type = Constants\DeviceType::EREADER;
				}
			}

			if (preg_match('/Browser\/NF([0-9.]*)/ui', $ua, $match)) {
				$this->browser->name = 'NetFront';
				$this->browser->version = new Version([ 'value' => $match[1] ]);
				$this->device->type = Constants\DeviceType::MOBILE;
			}

			if (preg_match('/Browser\/NetFont-([0-9.]*)/ui', $ua, $match)) {
				$this->browser->name = 'NetFront';
				$this->browser->version = new Version([ 'value' => $match[1] ]);
				$this->device->type = Constants\DeviceType::MOBILE;
			}

			/****************************************************
			 *		NetFront NX
			 */

			if (preg_match('/NX\/([0-9.]*)/u', $ua, $match)) {
				$this->browser->name = 'NetFront NX';
				$this->browser->version = new Version([ 'value' => $match[1], 'details' => 2 ]);

				if (!isset($this->device->type) || !$this->device->type) {
					if (preg_match('/(DTV|HbbTV)/iu', $ua)) {
						$this->device->type = Constants\DeviceType::TELEVISION;
					} else if (preg_match('/mobile/iu', $ua)) {
						$this->device->type = Constants\DeviceType::MOBILE;
					} else {
						$this->device->type = Constants\DeviceType::DESKTOP;
					}
				}

				$this->os->name = '';
				$this->os->version = null;
			}

			/****************************************************
			 *		XBMC
			 */

			if (preg_match('/^XBMC\/(?:PRE-)?([0-9.]+)/u', $ua, $match)) {
				$this->browser->name = 'XBMC';
				$this->browser->version = new Version([ 'value' => $match[1], 'details' => 2 ]);
			}


			/****************************************************
			 *		Kodi
			 */

			if (preg_match('/^Kodi\/([0-9.]+)/u', $ua, $match)) {
				$this->browser->name = 'Kodi';
				$this->browser->version = new Version([ 'value' => $match[1], 'details' => 2 ]);
			}


			/****************************************************
			 *		ANT
			 */

			if (preg_match('/ANTFresco\/([0-9.]+)/iu', $ua, $match)) {
				$this->browser->name = 'ANT Fresco';
				$this->browser->version = new Version([ 'value' => $match[1] ]);
			}

			if (preg_match('/ANTGalio\/([0-9.]+)/iu', $ua, $match)) {
				$this->browser->name = 'ANT Galio';
				$this->browser->version = new Version([ 'value' => $match[1], 'details' => 3 ]);
			}


			/****************************************************
			 *		Obigo
			 */

			if (preg_match('/(?:Obigo|Teleca)/ui', $ua)) {
				$this->browser->name = 'Obigo';

				if (preg_match('/Obigo\/0?([0-9.]+)/iu', $ua, $match)) {
					$this->browser->version = new Version([ 'value' => $match[1] ]);
				}

				else if (preg_match('/(?:Obigo(?:InternetBrowser|[- ]Browser)?|Teleca)\/([A-Z]+)0?([0-9.]+)/ui', $ua, $match)) {
					$this->browser->name = 'Obigo ' . $match[1];
					$this->browser->version = new Version([ 'value' => $match[2] ]);
				}

				else if (preg_match('/(?:Obigo|Teleca)[- ]([A-Z]+)0?([0-9.]+)(?:[A-Z][0-9])?(?:[\/;]|$)/ui', $ua, $match)) {
					$this->browser->name = 'Obigo ' . $match[1];
					$this->browser->version = new Version([ 'value' => $match[2] ]);
				}

				else if (preg_match('/Browser\/(?:Obigo|Teleca)[_-](?:Browser\/)?([A-Z]+)0?([0-9.]+)/ui', $ua, $match)) {
					$this->browser->name = 'Obigo ' . $match[1];
					$this->browser->version = new Version([ 'value' => $match[2] ]);
				}
			}

			/****************************************************
			 *		UC Web
			 */

			if (preg_match('/UCWEB/u', $ua)) {
				$this->browser->stock = false;
				$this->browser->name = 'UC Browser';

				unset($this->browser->channel);

				if (preg_match('/UCWEB\/?([0-9]*[.][0-9]*)/u', $ua, $match)) {
					$this->browser->version = new Version([ 'value' => $match[1], 'details' => 3 ]);
				}

				if (!$this->device->type) {
					$this->device->type = Constants\DeviceType::MOBILE;
				}

				if (isset($this->os->name) && $this->os->name == 'Linux') {
					$this->os->name = '';
				}

				if (preg_match('/^IUC ?\(U; ?iOS ([0-9\._]+);/u', $ua, $match)) {
					$this->os->name = 'iOS';
					$this->os->version = new Version([ 'value' => str_replace('_', '.', $match[1]) ]);
				}

				if (preg_match('/^JUC ?\(Linux; ?U; ?(?:Android)? ?([0-9\.]+)[^;]*; ?[^;]+; ?([^;]*[^\s])\s*; ?[0-9]+\*[0-9]+;?\)/u', $ua, $match)) {
					$this->os->name = 'Android';
					$this->os->version = new Version([ 'value' => $match[1] ]);

					$this->device = Data\DeviceModels::identify('android', $match[2]);
				}

				if (preg_match('/; Adr ([0-9\.]+); [^;]+; ([^;]*[^\s])\)/u', $ua, $match)) {
					$this->os->name = 'Android';
					$this->os->version = new Version([ 'value' => $match[1] ]);

					$this->device = Data\DeviceModels::identify('android', $match[2]);
				}

				if (preg_match('/\(iOS;/u', $ua)) {
					$this->os->name = 'iOS';
					$this->os->version = new Version([ 'value' => '1.0' ]);

					if (preg_match('/OS ([0-9_]*);/u', $ua, $match)) {
						$this->os->version = new Version([ 'value' => str_replace('_', '.', $match[1]) ]);
					}

					if (preg_match('/; ([^;]+)\)/u', $ua, $match)) {
						$device = Data\DeviceModels::identify('ios', $match[1]);

						if ($device->identified) {
							$device->identified |= $this->device->identified;
							$this->device = $device;
						}
					}
				}

				if (preg_match('/\(Windows;/u', $ua)) {
					$this->os->name = 'Windows Phone';
					$this->os->version = null;

					if (preg_match('/wds ([0-9]\.[0-9])/u', $ua, $match)) {
						switch($match[1]) {
							case '7.0':		$this->os->version = new Version([ 'value' => '7.0' ]); break;
							case '7.1':		$this->os->version = new Version([ 'value' => '7.5' ]); break;
							case '8.0':		$this->os->version = new Version([ 'value' => '8.0' ]); break;
						}
					}

					if (preg_match('/; ([^;]+); ([^;]+)\)/u', $ua, $match)) {
						$this->device->manufacturer = $match[1];
						$this->device->model = $match[2];
						$this->device->identified |= Constants\Id::PATTERN;

						$device = Data\DeviceModels::identify('wp', $match[2]);

						if ($device->identified) {
							$device->identified |= $this->device->identified;
							$this->device = $device;
						}
					}
				}
			}

			if (preg_match('/Ucweb\/([0-9]*[.][0-9]*)/u', $ua, $match)) {
				$this->browser->stock = false;
				$this->browser->name = 'UC Browser';
				$this->browser->version = new Version([ 'value' => $match[1], 'details' => 3 ]);
			}

			if (preg_match('/ucweb-squid/u', $ua)) {
				$this->browser->stock = false;
				$this->browser->name = 'UC Browser';

				unset($this->browser->channel);
			}

			if (preg_match('/\) ?UC /u', $ua)) {
				$this->browser->stock = false;
				$this->browser->name = 'UC Browser';

				unset($this->browser->version);
				unset($this->browser->channel);
				unset($this->browser->mode);

				if (!$this->device->type) {
					$this->device->type = Constants\DeviceType::MOBILE;
				}

				if ($this->device->type == Constants\DeviceType::DESKTOP) {
					$this->device->type = Constants\DeviceType::MOBILE;
					$this->browser->mode = 'desktop';
				}
			}

			if (preg_match('/UC ?Browser\/?([0-9.]*)/u', $ua, $match)) {
				$this->browser->stock = false;
				$this->browser->name = 'UC Browser';
				$this->browser->version = new Version([ 'value' => $match[1], 'details' => 2 ]);

				unset($this->browser->channel);

				if (!$this->device->type) {
					$this->device->type = Constants\DeviceType::MOBILE;
				}
			}

			if (preg_match('/UBrowser\/?([0-9.]*)/u', $ua, $match)) {
				$this->browser->stock = false;
				$this->browser->name = 'UC Browser';
				$this->browser->version = new Version([ 'value' => $match[1], 'details' => 2 ]);

				unset($this->browser->channel);
			}

			/* U2 is the Proxy service used by UC Browser on low-end phones */
			if (preg_match('/U2\//u', $ua)) {
				$this->browser->stock = false;
				$this->browser->name = 'UC Browser';
				$this->browser->mode = 'proxy';

				$this->engine->name = 'Gecko';

				/* UC Browser running on Windows 8 is identifing itself as U2, but instead its a Trident Webview */
				if (isset($this->os->name) && isset($this->os->version)) {
					if ($this->os->name == 'Windows Phone' && $this->os->version->toFloat() >= 8) {
						$this->engine->name = 'Trident';
						$this->browser->mode = '';
					}
				}

				if (!$this->device->identified && preg_match('/; ([^;]*)\) U2\//u', $ua, $match)) {
					$device = Data\DeviceModels::identify('android', $match[1]);
					if ($device->identified) {
						$device->identified |= $this->device->identified;
						$this->device = $device;

						if (!isset($this->os->name) || ($this->os->name != 'Android' && (!isset($this->os->family) || $this->os->family->getName() != 'Android'))) {
							$this->os->name = 'Android';
						}
					}
				}
			}

			/* U3 is the Webkit based Webview used on Android phones */
			if (preg_match('/U3\//u', $ua)) {
				$this->engine->name = 'Webkit';
			}


			/****************************************************
			 *		NineSky
			 */

			if (preg_match('/Ninesky(?:-android-mobile(?:-cn)?)?\/([0-9.]*)/u', $ua, $match)) {
				$this->browser->name = 'NineSky';
				$this->browser->version = new Version([ 'value' => $match[1] ]);

				if (isset($this->device->manufacturer) && $this->device->manufacturer == 'Apple') {
					unset($this->device->manufacturer);
					unset($this->device->model);
					unset($this->device->identifier);
					$this->device->identified = Constants\Id::NONE;
				}

				if (isset($this->os->name) && $this->os->name != 'Android') {
					$this->os->name = 'Android';
					$this->os->version = null;
				}
			}

			/****************************************************
			 *		Skyfire
			 */

			if (preg_match('/Skyfire\/([0-9.]*)/u', $ua, $match)) {
				$this->browser->name = 'Skyfire';
				$this->browser->version = new Version([ 'value' => $match[1] ]);

				$this->device->type = Constants\DeviceType::MOBILE;

				$this->os->name = 'Android';
				$this->os->version = null;
			}

			/****************************************************
			 *		Dolphin HD
			 */

			if (preg_match('/Dolphin(?:HDCN)?\/(?:INT|CN)?-?([0-9.]*)/u', $ua, $match)) {
				$this->browser->name = 'Dolphin';
				$this->browser->version = new Version([ 'value' => $match[1] ]);

				$this->device->type = Constants\DeviceType::MOBILE;
			}

			/****************************************************
			 *		QQ Browser
			 */

			if (preg_match('/(M?QQBrowser)\/([0-9.]*)/u', $ua, $match)) {
				$this->browser->name = 'QQ Browser';

				$version = $match[2];
				if (preg_match('/^[0-9][0-9]$/u', $version)) $version = $version[0] . '.' . $version[1];

				$this->browser->version = new Version([ 'value' => $version, 'details' => 2 ]);
				$this->browser->channel = '';

				if (!isset($this->os->name) && $match[1] == 'QQBrowser') {
					$this->os->name = 'Windows';
				}
			}

			if (preg_match('/MQQBrowser\/Mini([0-9.]*)/u', $ua, $match)) {
				$this->browser->name = 'QQ Browser Mini';
				$this->browser->version = new Version([ 'value' => $match[1], 'details' => 2 ]);
				$this->browser->channel = '';
			}

			/****************************************************
			*		360 Phone Browser
			*/

			if (preg_match('/360 (?:Aphone|Android Phone) Browser \((?:Version |V)?([0-9.]*)(?:beta)?\)/u', $ua, $match)) {
				$this->browser->name = '360 Phone Browser';
				$this->browser->channel = '';
				$this->browser->version = null;
				$this->browser->version = new Version([ 'value' => $match[1] ]);
				
				if (preg_match('/360\(android/u', $ua) && (!isset($this->os->name) || ($this->os->name != 'Android' && (!isset($this->os->family) || $this->os->family->getName() != 'Android')))) {
					$this->os->name = 'Android';
					$this->os->version = null;
					$this->device->type = Constants\DeviceType::MOBILE;
				}
			}

			/****************************************************
			 *		iBrowser
			 */

			if (preg_match('/(iBrowser)\/([0-9.]*)/u', $ua, $match) && !preg_match('/OviBrowser/u', $ua)) {
				$this->browser->name = 'iBrowser';

				$version = $match[2];
				if (preg_match('/^[0-9][0-9]$/u', $version)) $version = $version[0] . '.' . $version[1];

				$this->browser->version = new Version([ 'value' => $version, 'details' => 2 ]);
				$this->browser->channel = '';
			}

			if (preg_match('/iBrowser\/Mini([0-9.]*)/u', $ua, $match)) {
				$this->browser->name = 'iBrowser Mini';
				$this->browser->version = new Version([ 'value' => $match[1], 'details' => 2 ]);
				$this->browser->channel = '';
			}

			/****************************************************
			 *		Puffin
			 */

			if (preg_match('/Puffin\/([0-9.]*)/u', $ua, $match)) {
				$this->browser->name = 'Puffin';
				$this->browser->version = new Version([ 'value' => $match[1], 'details' => 2 ]);
				$this->browser->mode = 'proxy';
				$this->browser->channel = '';

				$this->device->type = Constants\DeviceType::MOBILE;

				if ($this->os->name == 'Linux') {
					$this->os->name = null;
					$this->os->version = null;
				}
			}

			/****************************************************
			 *		Midori
			 */

			if (preg_match('/Midori\/([0-9.]*)/u', $ua, $match)) {
				$this->browser->name = 'Midori';
				$this->browser->version = new Version([ 'value' => $match[1] ]);

				$this->device->manufacturer = null;
				$this->device->model = null;
				$this->device->type = Constants\DeviceType::DESKTOP;

				if (isset($this->os->name) && $this->os->name == 'OS X') {
					$this->os->name = null;
					$this->os->version = null;
				}
			}

			if (preg_match('/midori(?:\/[0-9.]*)?$/u', $ua)) {
				$this->browser->name = 'Midori';
				$this->device->type = Constants\DeviceType::DESKTOP;
	
				if (preg_match('/midori\/([0-9.]*)$/u', $ua, $match)) {
					$this->browser->version = new Version([ 'value' => $match[1] ]);
				}
			}


			/****************************************************
			 *		MiniBrowser Mobile
			 */

			if (preg_match('/MiniBr?owserM(?:obile)?\/([0-9.]*)/u', $ua, $match)) {
				$this->browser->name = 'MiniBrowser';
				$this->browser->version = new Version([ 'value' => $match[1] ]);

				$this->os->name = 'Series60';
				$this->os->version = null;
			}

			/****************************************************
			 *		Maxthon
			 */

			if (preg_match('/Maxthon/iu', $ua, $match)) {
				$this->browser->name = 'Maxthon';
				$this->browser->channel = '';
				$this->browser->version = null;
				
				if (preg_match('/Maxthon[\/\' ]\(?([0-9.]*)\)?/iu', $ua, $match)) {
					$this->browser->version = new Version([ 'value' => $match[1], 'details' => 3 ]);
				}

				if (isset($this->os->name) && $this->browser->version && $this->os->name == 'Windows' && $this->browser->version->toFloat() < 4) {
					$this->browser->version->details = 1;
				}
			}

			if (preg_match('/MxNitro/iu', $ua, $match)) {
				$this->browser->name = 'Maxthon Nitro';
				$this->browser->channel = '';
				$this->browser->version = null;
				
				if (preg_match('/MxNitro\/([0-9.]*)/iu', $ua, $match)) {
					$this->browser->version = new Version([ 'value' => $match[1], 'details' => 3 ]);
				}
			}

			/****************************************************
			 *		WebPositive
			 */

			if (preg_match('/WebPositive/u', $ua, $match)) {
				$this->browser->name = 'WebPositive';
				$this->browser->channel = '';
				$this->browser->version = null;

				if (preg_match('/WebPositive\/([0-9]\.[0-9.]+)/u', $ua, $match)) {
					$this->browser->version = new Version([ 'value' => $match[1], 'details' => 3 ]);
				}
			}

			/****************************************************
			 *		WorldWideweb
			 */

			if (preg_match('/WorldWideweb \(NEXT\)/u', $ua, $match)) {
				$this->browser->name = 'WorldWideWeb';
				$this->browser->channel = '';
				$this->browser->version = null;

				$this->os->name = 'NextStep';
			}

			/****************************************************
			 *		Sogou Mobile
			 */

			if (preg_match('/SogouAndroidBrowser\/([0-9.]*)/u', $ua, $match)) {
				$this->browser->name = 'Sogou Mobile';
				$this->browser->version = new Version([ 'value' => $match[1] ]);

				if (isset($this->device->manufacturer) && $this->device->manufacturer == 'Apple') {
					unset($this->device->manufacturer);
					unset($this->device->model);
					unset($this->device->identifier);
					$this->device->identified = Constants\Id::NONE;
				}

				if (isset($this->os->name) && $this->os->name != 'Android') {
					$this->os->name = 'Android';
					$this->os->version = null;
				}
			}

			/****************************************************
			 *		Xiino
			 */

			if (preg_match('/Xiino\/([^;]+);/u', $ua, $match)) {
				$this->browser->name = 'Xiino';
				$this->browser->version = new Version([ 'value' => $match[1] ]);
				$this->os->name = 'Palm OS';
				$this->device->type = Constants\DeviceType::MOBILE;
			}

			/****************************************************
			 *		WebPro
			 */

			if (preg_match('/WebPro/u', $ua) && preg_match('/PalmOS/u', $ua)) {
				$this->browser->name = 'WebPro';
				$this->browser->version = null;

				if (preg_match('/WebPro\/([0-9.]*)/u', $ua, $match)) {
					$this->browser->version = new Version([ 'value' => $match[1] ]);
				}
			}



			/****************************************************
			 *		Others
			 */

			$browsers = [
				array('name' => 'AdobeAIR',				'regexp' => '/AdobeAIR\/([0-9.]*)/u'),
				array('name' => 'Awesomium',			'regexp' => '/Awesomium\/([0-9.]*)/u'),
				array('name' => 'Bsalsa Embedded',		'regexp' => '/EmbeddedWB ([0-9.]*)/u'),
				array('name' => 'Bsalsa Embedded',		'regexp' => '/bsalsa\.com/u'),
				array('name' => 'Bsalsa Embedded',		'regexp' => '/Embedded Web Browser/u'),
				array('name' => 'Canvace',				'regexp' => '/Canvace Standalone\/([0-9.]*)/u'),
				array('name' => 'Ekioh',				'regexp' => '/Ekioh\/([0-9.]*)/u'),
				array('name' => 'JavaFX',				'regexp' => '/JavaFX\/([0-9.]*)/u'),
				array('name' => 'GFXe',					'regexp' => '/GFXe\/([0-9.]*)/u'),
				array('name' => 'LuaKit',				'regexp' => '/luakit/u'),
				array('name' => 'Titanium',				'regexp' => '/Titanium\/([0-9.]*)/u'),
				array('name' => 'OpenWebKitSharp',		'regexp' => '/OpenWebKitSharp/u'),
				array('name' => 'Prism',				'regexp' => '/Prism\/([0-9.]*)/u'),
				array('name' => 'Qt',					'regexp' => '/Qt\/([0-9.]*)/u'),
				array('name' => 'Qt',					'regexp' => '/QtWebEngine\/([0-9.]*)/u'),
				array('name' => 'QtEmbedded',			'regexp' => '/QtEmbedded/u'),
				array('name' => 'QtEmbedded',			'regexp' => '/QtEmbedded.*Qt\/([0-9.]*)/u'),
				array('name' => 'ReqwirelessWeb',		'regexp' => '/ReqwirelessWeb\/([0-9.]*)/u'),
				array('name' => 'RhoSimulator',			'regexp' => '/RhoSimulator/u'),
				array('name' => 'UWebKit',				'regexp' => '/UWebKit\/([0-9.]*)/u'),
				array('name' => 'Node-WebKit',			'regexp' => '/nw-tests\/([0-9.]*)/u'),
				array('name' => 'WebKit2.NET',			'regexp' => '/WebKit2.NET/u'),

				array('name' => 'PhantomJS',			'regexp' => '/PhantomJS\/([0-9.]*)/u'),

				array('name' => 'Google Earth',			'regexp' => '/Google Earth\/([0-9.]*)/u'),
				array('name' => 'Google Desktop',		'regexp' => '/Google Desktop\/([0-9.]*)/u', 'details' => 2),

				array('name' => 'EA Origin',			'regexp' => '/Origin\/([0-9.]*)/u'),
				array('name' => 'SecondLife',			'regexp' => '/SecondLife\/([0-9.]*)/u'),
				array('name' => 'Valve Steam',			'regexp' => '/Valve Steam/u'),

				/* Media players */
				array('name' => 'iTunes',				'regexp' => '/iTunes\/(?:xaa.)?([0-9.]*)/u'),
				array('name' => 'QuickTime',			'regexp' => '/QuickTime[\/\\\\](?:xaa.)?([0-9.]*)/u'),
				array('name' => 'Bluefish',				'regexp' => '/bluefish ([0-9.]*)/u'),
				array('name' => 'Songbird',				'regexp' => '/Songbird\/([0-9.]*)/u'),
				array('name' => 'Stagefright',				'regexp' => '/stagefright\/([0-9.]*)/u'),
				array('name' => 'SubStream',			'regexp' => '/SubStream\/([0-9.]*)/u', 'type' => Constants\DeviceType::MOBILE),

				/* Email clients */
				array('name' => 'Lightning', 			'regexp' => '/Lightning\/([0-9.]*)/u'),
				array('name' => 'Thunderbird',			'regexp' => '/Thunderbird[\/ ]([0-9.]*)/u', 'type' => Constants\DeviceType::DESKTOP),
				array('name' => 'Microsoft FrontPage',	'regexp' => '/MS FrontPage ([0-9.]*)/u', 'details' => 2, 'type' => Constants\DeviceType::DESKTOP),
				array('name' => 'Microsoft Outlook',	'regexp' => '/Microsoft Outlook IMO, Build ([0-9.]*)/u', 'details' => 2, 'type' => Constants\DeviceType::DESKTOP),
				array('name' => 'Microsoft Outlook',	'regexp' => '/Microsoft Outlook ([0-9.]*)/u', 'details' => 2, 'type' => Constants\DeviceType::DESKTOP),
				array('name' => 'Microsoft Outlook Express',	'regexp' => '/Outlook-Express\/([0-9.]*)/u', 'details' => 2, 'type' => Constants\DeviceType::DESKTOP),
				array('name' => 'Lotus Notes',			'regexp' => '/Lotus-Notes\/([0-9.]*)/u', 'details' => 2, 'type' => Constants\DeviceType::DESKTOP),
				array('name' => 'Postbox',				'regexp' => '/Postbox[\/ ]([0-9.]*)/u', 'details' => 2),

				/* Feed readers */
				array('name' => 'Akregator',			'regexp' => '/Akregator\/([0-9.]*)/u'),
				array('name' => 'Blogos',				'regexp' => '/Blogos\/([0-9.]*)/u', 'type' => Constants\DeviceType::MOBILE),
				array('name' => 'FeedDemon',			'regexp' => '/FeedDemon\/([0-9.]*)/u'),
				array('name' => 'Feeddler',				'regexp' => '/FeeddlerRSS\/([0-9.]*)/u', 'type' => Constants\DeviceType::MOBILE),
				array('name' => 'Feeddler Pro',			'regexp' => '/FeeddlerPro\/([0-9.]*)/u', 'type' => Constants\DeviceType::MOBILE),
				array('name' => 'Liferea',				'regexp' => '/Liferea\/([0-9.]*)/u'),
				array('name' => 'NewsBlur',				'regexp' => '/NewsBlur\/([0-9.]*)/u', 'type' => Constants\DeviceType::MOBILE),
				array('name' => 'Rss Bandit',			'regexp' => '/RssBandit\/([0-9.]*)/u'),
				array('name' => 'Rss Owl',				'regexp' => '/RSSOwl\/([0-9.]*)/u'),
				array('name' => 'Reeder',				'regexp' => '/Reeder\/([0-9.]*)/u'),
				array('name' => 'ReedKit',				'regexp' => '/ReedKit\/([0-9.]*)/u', 'type' => Constants\DeviceType::DESKTOP),

				/* Social apps */
				array('name' => 'Facebook',				'regexp' => '/FBAN\/FBIOS/u'),
				array('name' => 'Facebook',				'regexp' => '/FB_IAB\/FB4A/u'),
				array('name' => 'Google+',				'regexp' => '/com.google.GooglePlus/u' ),
				array('name' => 'WeChat',				'regexp' => '/MicroMessenger\/([0-9.]*)/u'),
				array('name' => 'Sina Weibo',			'regexp' => '/weibo__([0-9.]*)/u'),
				array('name' => 'Twitter',				'regexp' => '/TwitterAndroid/u'),
				array('name' => 'Kik',					'regexp' => '/Kik\/([0-9.]*)/u'),

				/* Office suite */
				array('name' => 'Microsoft Office',		'regexp' => '/MSOffice ([0-9.]*)/u'),


				/* Search */
				array('name' => 'NAVER',				'regexp' => '/NAVER\(inapp; search; [0-9]+; ([0-9.]*)\)/u'),

				/* Media players */
				array('name' => 'CorePlayer',			'regexp' => '/CorePlayer\/([0-9.]*)/u'),
				array('name' => 'FlyCast',				'regexp' => '/FlyCast\/([0-9.]*)/u'),

				/* Editors */
				array('name' => 'W3C Amaya',			'regexp' => '/amaya\/([0-9.]*)/u'),

				/* Browsers */
				array('name' => '1Browser',				'regexp' => '/1Password\/([0-9.]*)/u'),
				array('name' => '2345 Browser',			'regexp' => '/Mb2345Browser\/([0-9.]*)/u'),
				array('name' => '3G Explorer',			'regexp' => '/3G Explorer\/([0-9.]*)/u', 'details' => 3),
				array('name' => '4G Explorer',			'regexp' => '/4G Explorer\/([0-9.]*)/u', 'details' => 3),
				array('name' => '360 Aphone Browser',	'regexp' => '/360 Aphone Browser\(([0-9.]*)\)/u'),
				array('name' => '360 Extreme Explorer',	'regexp' => '/QIHU 360EE/u', 'type' => Constants\DeviceType::DESKTOP),
				array('name' => '360 Safe Explorer',	'regexp' => '/QIHU 360SE/u', 'type' => Constants\DeviceType::DESKTOP),
				array('name' => 'ABrowse',				'regexp' => '/A[Bb]rowse ([0-9.]*)/u'),
				array('name' => 'Abrowser',				'regexp' => '/Abrowser\/([0-9.]*)/u'),
				array('name' => 'Acorn Browse',			'regexp' => '/Acorn Browse ([0-9.]+)/u' ),
				array('name' => 'AltiBrowser',			'regexp' => '/AltiBrowser\/([0-9.]*)/i'),
				array('name' => 'AOL Desktop',			'regexp' => '/AOL ([0-9.]*); AOLBuild/i'),
				array('name' => 'AOL Browser',			'regexp' => '/America Online Browser (?:[0-9.]*); rev([0-9.]*);/i'),
				array('name' => 'Arachne',				'regexp' => '/Arachne\/([0-9.]*)/u', 'type' => Constants\DeviceType::DESKTOP),
				array('name' => 'Arora',				'regexp' => '/[Aa]rora\/([0-9.]*)/u'),							// see: www.arora-browser.org
				array('name' => 'Avant Browser',		'regexp' => '/Avant Browser/u'),
				array('name' => 'Avant Browser',		'regexp' => '/Avant TriCore/u'),
				array('name' => 'Aviator',				'regexp' => '/Aviator\/([0-9.]*)/u', 'details' => 1),
				array('name' => 'Awakening',			'regexp' => '/Awakening Browser\/([0-9.]*)/u', 'details' => 2),
				array('name' => 'AWeb',					'regexp' => '/Amiga-AWeb(?:\/([0-9.]*))?/u'),
				array('name' => 'Baidu Browser',		'regexp' => '/bdbrowser\/([0-9.]*)/i'),
				array('name' => 'Baidu Browser',		'regexp' => '/bdbrowser_i18n\/([0-9.]*)/i'),
				array('name' => 'Baidu Browser',		'regexp' => '/M?BaiduBrowser\/([0-9.]*)/i'),
				array('name' => 'Baidu Browser',		'regexp' => '/BdMobile\/([0-9.]*)/i'),
				array('name' => 'Baidu Browser',		'regexp' => '/FlyFlow\/([0-9.]*)/u', 'details' => 2),
				array('name' => 'Baidu Browser',		'regexp' => '/BIDUBrowser[ \/]([0-9.]*)/u'),
				array('name' => 'Baidu Browser',		'regexp' => '/BaiduHD\/([0-9.]*)/u', 'details' => 2),
				array('name' => 'Baidu Spark',			'regexp' => '/BDSpark\/([0-9.]*)/u', 'details' => 2),
				array('name' => 'Baidu Hao123',			'regexp' => '/hao123\/([0-9.]*)/u', 'details' => 2),
				array('name' => 'Black Wren',			'regexp' => '/BlackWren\/([0-9.]*)/u', 'details' => 2),
				array('name' => 'Blazer',				'regexp' => '/Blazer\/([0-9.]*)/u'),
				array('name' => 'BrightSign', 			'regexp' => '/BrightSign\/([0-9.]*)/u', 'type' => Constants\DeviceType::SIGNAGE),
				array('name' => 'Bunjalloo',			'regexp' => '/Bunjalloo\/([0-9.]*)/u'),															// Browser for the Nintento DS
				array('name' => 'Byffox', 				'regexp' => '/Byffox\/([0-9.]*)/u', 'type' => Constants\DeviceType::DESKTOP),
				array('name' => 'Camino', 				'regexp' => '/Camino\/([0-9.]*)/u', 'type' => Constants\DeviceType::DESKTOP),
				array('name' => 'Canure', 				'regexp' => '/Canure\/([0-9.]*)/u', 'details' => 3),
				array('name' => 'CometBird', 			'regexp' => '/CometBird\/([0-9.]*)/u'),
				array('name' => 'Comodo Dragon', 		'regexp' => '/Comodo_Dragon\/([0-9.]*)/u', 'details' => 2),
				array('name' => 'Comodo Dragon', 		'regexp' => '/Dragon\/([0-9.]*)/u', 'details' => 2),
				array('name' => 'Conkeror', 			'regexp' => '/[Cc]onkeror\/([0-9.]*)/u'),
				array('name' => 'CoolNovo', 			'regexp' => '/(?:CoolNovo|CoolNovoChromePlus)\/([0-9.]*)/u', 'details' => 3, 'type' => Constants\DeviceType::DESKTOP),
				array('name' => 'ChromePlus', 			'regexp' => '/ChromePlus(?:\/([0-9.]*))?$/u', 'details' => 3, 'type' => Constants\DeviceType::DESKTOP),
				array('name' => 'Cunaguaro', 			'regexp' => '/Cunaguaro\/([0-9.]*)/u', 'details' => 3, 'type' => Constants\DeviceType::DESKTOP),
				array('name' => 'CuteBrowser', 			'regexp' => '/CuteBrowser\/([0-9.]*)/u', 'details' => 2),
				array('name' => 'Cyberfox', 			'regexp' => '/Cyberfox\/([0-9.]*)/u', 'details' => 2),
				array('name' => 'Daedalus', 			'regexp' => '/Daedalus ([0-9.]*)/u', 'details' => 2),
				array('name' => 'Daum', 				'regexp' => '/DaumApps\/([0-9.]*)/u'),
				array('name' => 'Daum', 				'regexp' => '/daumcafe\/([0-9.]*)/u'),
				array('name' => 'Dillo', 				'regexp' => '/Dillo\/([0-9.]*)/u'),
				array('name' => 'Demobrowser', 			'regexp' => '/demobrowser\/([0-9.]*)/u'),
				array('name' => 'Doga Rhodonit', 		'regexp' => '/DogaRhodonit/u'),
				array('name' => 'Dorado', 				'regexp' => '/Browser\/Dorado([0-9.]*)/u'),
				array('name' => 'Dooble', 				'regexp' => '/Dooble(?:\/([0-9.]*))?/u'),
				array('name' => 'Dorothy', 				'regexp' => '/Dorothy$/u'),
				array('name' => 'DWB', 					'regexp' => '/dwb(?:-hg)?(?:\/([0-9.]*))?/u'),
				array('name' => 'GNOME Web', 			'regexp' => '/Epiphany\/([0-9.]*)/u', 'type' => Constants\DeviceType::DESKTOP),
				array('name' => 'ELinks', 				'regexp' => '/ELinks\/([0-9.]*[0-9])/u', 'type' => Constants\DeviceType::DESKTOP),
				array('name' => 'EVM Browser', 			'regexp' => '/EVMBrowser\/([0-9.]*)/u'),
				array('name' => 'FireWeb', 				'regexp' => '/FireWeb\/([0-9.]*)/u'),
				array('name' => 'Flock', 				'regexp' => '/Flock\/([0-9.]*)/u', 'details' => 3, 'type' => Constants\DeviceType::DESKTOP),
				array('name' => 'Galeon', 				'regexp' => '/Galeon\/([0-9.]*)/u', 'details' => 3),
				array('name' => 'Helium', 				'regexp' => '/HeliumMobileBrowser\/([0-9.]*)/u'),
				array('name' => 'Hive Explorer', 		'regexp' => '/HiveE/u'),
				array('name' => 'IBrowse', 				'regexp' => '/IBrowse[\/ ]([0-9.]*)/u', 'type' => Constants\DeviceType::DESKTOP),
				array('name' => 'iCab', 				'regexp' => '/iCab\/([0-9.]*)/u'),
				array('name' => 'Iceape', 				'regexp' => '/Iceape\/([0-9.]*)/u'),
				array('name' => 'IceCat', 				'regexp' => '/IceCat[ \/]([0-9.]*)/u', 'type' => Constants\DeviceType::DESKTOP),
				array('name' => 'Comodo IceDragon', 	'regexp' => '/IceDragon\/([0-9.]*)/u', 'details' => 2, 'type' => Constants\DeviceType::DESKTOP),
				array('name' => 'Iceweasel', 			'regexp' => '/Iceweasel\/([0-9.]*)/iu', 'type' => Constants\DeviceType::DESKTOP),
				array('name' => 'InternetSurfboard', 	'regexp' => '/InternetSurfboard\/([0-9.]*)/u'),
				array('name' => 'Iron', 				'regexp' => '/Iron\/([0-9.]*)/u', 'details' => 2),
				array('name' => 'Isis', 				'regexp' => '/BrowserServer/u'),
				array('name' => 'Isis', 				'regexp' => '/ISIS\/([0-9.]*)/u', 'details' => 2),
				array('name' => 'Jumanji', 				'regexp' => '/jumanji/u'),
				array('name' => 'Kazehakase', 			'regexp' => '/Kazehakase\/([0-9.]*)/u'),
				array('name' => 'KChrome', 				'regexp' => '/KChrome\/([0-9.]*)/u', 'details' => 3),
				array('name' => 'Kiosk', 				'regexp' => '/Kiosk\/([0-9.]*)/u'),
				array('name' => 'K-Meleon', 			'regexp' => '/K-Meleon\/([0-9.]*)/u', 'type' => Constants\DeviceType::DESKTOP),
				array('name' => 'Lbbrowser',			'regexp' => '/LBBROWSER/u'),
				array('name' => 'Leechcraft', 			'regexp' => '/Leechcraft(?:\/([0-9.]*))?/u', 'details' => 2),
				array('name' => 'LieBaoFast', 			'regexp' => '/LieBaoFast\/([0-9.]*)/u'),
				array('name' => 'Lobo', 				'regexp' => '/Lobo\/([0-9.]*)/u', 'type' => Constants\DeviceType::DESKTOP),
				array('name' => 'Lotus Expeditor', 		'regexp' => '/Gecko Expeditor ([0-9.]*)/u', 'details' => 3),
				array('name' => 'Lunascape', 			'regexp' => '/Lunascape[\/| ]([0-9.]*)/u', 'details' => 3),
				array('name' => 'Lynx', 				'regexp' => '/Lynx\/([0-9.]*)/u'),
				array('name' => 'iLunascape', 			'regexp' => '/iLunascape\/([0-9.]*)/u', 'details' => 3),
				array('name' => 'Intermec Browser', 	'regexp' => '/Intermec\/([0-9.]*)/u', 'details' => 2),
				array('name' => 'Jig Browser', 			'regexp' => '/jig browser(?: core|9i?)/u'),
				array('name' => 'MaCross Mobile', 		'regexp' => '/MaCross\/([0-9.]*)/u'),
				array('name' => 'Mammoth', 				'regexp' => '/Mammoth\/([0-9.]*)/u'),										// see: https://itunes.apple.com/cn/app/meng-ma-liu-lan-qi/id403760998?mt=8
				array('name' => 'Maxthon', 				'regexp' => '/MxBrowser\/([0-9.]*)/u'),
				array('name' => 'Mercury Browser', 		'regexp' => '/Mercury\/([0-9.]*)/u'),
				array('name' => 'MixShark', 			'regexp' => '/MixShark\/([0-9.]*)/u'),
				array('name' => 'mlbrowser',			'regexp' => '/mlbrowser/u'),
				array('name' => 'Motorola WebKit', 		'regexp' => '/MotorolaWebKit(?:\/([0-9.]*))?/u', 'details' => 3),
				array('name' => 'NetFront Life Browser', 'regexp' => '/NetFrontLifeBrowser\/([0-9.]*)/u'),
				array('name' => 'NetPositive', 			'regexp' => '/NetPositive\/([0-9.]*)/u'),
				array('name' => 'Netscape Navigator', 	'regexp' => '/Navigator\/([0-9.]*)/u', 'details' => 3),
				array('name' => 'Odyssey', 				'regexp' => '/OWB\/([0-9.]*)/u'),
				array('name' => 'OmniWeb', 				'regexp' => '/OmniWeb/u', 'type' => Constants\DeviceType::DESKTOP),
				array('name' => 'OneBrowser', 			'regexp' => '/OneBrowser\/([0-9.]*)/u'),
				array('name' => 'Openwave',				'regexp' => '/Openwave\/([0-9.]*)/u', 'details' => 2),
				array('name' => 'Openwave', 			'regexp' => '/UP\.Browser\/([a-z0-9.]*)/iu', 'details' => 2),
				array('name' => 'Opera Oupeng', 		'regexp' => '/Oupeng\/([0-9.]*)/u', 'details' => 2),
				array('name' => 'Oregano', 				'regexp' => '/Oregano ([0-9.]*)/u'),
				array('name' => 'Orca', 				'regexp' => '/Orca\/([0-9.]*)/u'),
				array('name' => 'Origyn', 				'regexp' => '/Origyn Web Browser/u'),
				array('name' => 'Otter', 				'regexp' => '/Otter Browser\/([0-9.]*)/u'),
				array('name' => 'Pale Moon', 			'regexp' => '/Pale[mM]oon\/([0-9.]*)/u'),
				array('name' => 'Phantom', 				'regexp' => '/Phantom\/V([0-9.]*)/u'),
				array('name' => 'Polaris', 				'regexp' => '/Polaris[\/ ]v?([0-9.]*)/iu', 'details' => 2),
				array('name' => 'Polaris', 				'regexp' => '/POLARIS([0-9.]+)/u', 'details' => 2),
				array('name' => 'Qihoo 360', 			'regexp' => '/QIHU THEWORLD/u'),
				array('name' => 'QtCreator', 			'regexp' => '/QtCreator\/([0-9.]*)/u'),
				array('name' => 'QtQmlViewer', 			'regexp' => '/QtQmlViewer/u'),
				array('name' => 'QtTestBrowser', 		'regexp' => '/QtTestBrowser\/([0-9.]*)/u'),
				array('name' => 'QtWeb', 				'regexp' => '/QtWeb Internet Browser\/([0-9.]*)/u'),
				array('name' => 'QupZilla', 			'regexp' => '/QupZilla\/([0-9.]*)/u', 'type' => Constants\DeviceType::DESKTOP),
				array('name' => 'Ryouko', 				'regexp' => '/Ryouko\/([0-9.]*)/u', 'type' => Constants\DeviceType::DESKTOP),						// see: https://github.com/foxhead128/ryouko
				array('name' => 'Roccat', 				'regexp' => '/Roccat\/([0-9]\.[0-9.]*)/u'),
				array('name' => 'Raven for Mac', 		'regexp' => '/Raven for Mac\/([0-9.]*)/u'),
				array('name' => 'rekonq', 				'regexp' => '/rekonq(?:\/([0-9.]*))?/u', 'type' => Constants\DeviceType::DESKTOP),
				array('name' => 'RockMelt', 			'regexp' => '/RockMelt\/([0-9.]*)/u', 'details' => 2),
				array('name' => 'SaaYaa Explorer', 		'regexp' => '/SaaYaa/u', 'type' => Constants\DeviceType::DESKTOP),
				array('name' => 'SEMC Browser', 		'regexp' => '/SEMC-Browser\/([0-9.]*)/u'),
				array('name' => 'Sleipnir', 			'regexp' => '/Sleipnir\/([0-9.]*)/u', 'details' => 3),
				array('name' => 'SlimBoat', 			'regexp' => '/SlimBoat\/([0-9.]*)/u'),
				array('name' => 'SMBrowser', 			'regexp' => '/SMBrowser/u'),
				array('name' => 'Sogou Explorer', 		'regexp' => '/SE 2.X MetaSr/u', 'type' => Constants\DeviceType::DESKTOP),
				array('name' => 'Sogou Mobile',			'regexp' => '/SogouMobileBrowser\/([0-9.]*)/u', 'details' => 2),
				array('name' => 'Snowshoe', 			'regexp' => '/Snowshoe\/([0-9.]*)/u', 'details' => 2),
				array('name' => 'Sputnik', 				'regexp' => '/Sputnik\/([0-9.]*)/iu', 'details' => 3),
				array('name' => 'Stainless', 			'regexp' => '/Stainless\/([0-9.]*)/u'),
				array('name' => 'SunChrome', 			'regexp' => '/SunChrome\/([0-9.]*)/u'),
				array('name' => 'Superbird', 			'regexp' => '/Superbird\/([0-9.]*)/u', 'details' => 2),
				array('name' => 'Surf', 				'regexp' => '/Surf\/([0-9.]*)/u'),
				array('name' => 'The World', 			'regexp' => '/TheWorld ([0-9.]*)/u'),
				array('name' => 'TaoBrowser', 			'regexp' => '/TaoBrowser\/([0-9.]*)/u', 'details' => 2),
				array('name' => 'TaomeeBrowser', 		'regexp' => '/TaomeeBrowser\/([0-9.]*)/u', 'details' => 2),
				array('name' => 'TazWeb', 				'regexp' => '/TazWeb/u'),
				array('name' => 'Tencent Traveler', 	'regexp' => '/TencentTraveler ([0-9.]*)/u', 'details' => 2),
				array('name' => 'Uzbl', 				'regexp' => '/^Uzbl/u'),
				array('name' => 'Viera Browser', 		'regexp' => '/Viera\/([0-9.]*)/u'),
				array('name' => 'Villanova', 			'regexp' => '/Villanova\/([0-9.]*)/u', 'details' => 3),
				array('name' => 'Vimb', 				'regexp' => '/vimb\/([0-9.]*)/u'),
				array('name' => 'Vivaldi', 				'regexp' => '/Vivaldi\/([0-9.]*)/u', 'details' => 2),
				array('name' => 'Voyager',				'regexp' => '/AmigaVoyager\/([0-9.]*)/u'),
				array('name' => 'WADA Browser',			'regexp' => '/WadaBrowser\/([0-9.]*)/u'),
				array('name' => 'Waterfox', 			'regexp' => '/Waterfox\/([0-9.]*)/u', 'details' => 2, 'type' => Constants\DeviceType::DESKTOP),
				array('name' => 'Wavelink Velocity',	'regexp' => '/Wavelink Velocity Browser\/([0-9.]*)/u', 'details' => 2),
				array('name' => 'WebLite', 				'regexp' => '/WebLite\/([0-9.]*)/u', 'type' => Constants\DeviceType::MOBILE),
				array('name' => 'WebRender', 			'regexp' => '/WebRender/u'),
				array('name' => 'Webster', 				'regexp' => '/Webster ([0-9.]*)/u'),
				array('name' => 'Wear Internet Browser','regexp' => '/WIB\/([0-9.]*)/u'),
				array('name' => 'Wyzo', 				'regexp' => '/Wyzo\/([0-9.]*)/u', 'details' => 3),
				array('name' => 'Miui Browser', 		'regexp' => '/XiaoMi\/MiuiBrowser\/([0-9.]*)/u'),
				array('name' => 'Yandex Browser', 		'regexp' => '/YaBrowser\/([0-9.]*)/u', 'details' => 2),
				array('name' => 'Yelang', 				'regexp' => '/Yelang\/([0-9.]*)/u', 'details' => 3),							// see: wellgo.org
				array('name' => 'YRC Weblink', 			'regexp' => '/YRCWeblink\/([0-9.]*)/u'),
				array('name' => 'Zetakey', 				'regexp' => '/Zetakey Webkit\/([0-9.]*)/u'),
				array('name' => 'Zetakey', 				'regexp' => '/Zetakey\/([0-9.]*)/u'),
				array('name' => '冲浪浏览器', 			'regexp' => '/CMSurfClient-Android/u'),

				array('name' => 'Nimbus', 				'regexp' => '/Nimbus\/([0-9.]*)/u'),

				array('name' => 'McAfee Web Gateway', 	'regexp' => '/Webwasher\/([0-9.]*)/u'),
				array('name' => 'Android Download Manager', 'regexp' => '/AndroidDownloadManager\/([0-9.]*)/u'),

				array('name' => 'Open Sankoré', 		'regexp' => '/Open-Sankore\/([0-9.]*)/u', 'type' => Constants\DeviceType::WHITEBOARD),
				array('name' => 'Coship MMCP', 			'regexp' => '/Coship_MMCP_([0-9.]*)/u', 'type' => Constants\DeviceType::SIGNAGE),

				/* Bots */

			];

			for ($b = 0; $b < count($browsers); $b++) {
				if (preg_match($browsers[$b]['regexp'], $ua, $match)) {
					$this->browser->name = $browsers[$b]['name'];
					$this->browser->channel = '';
					$this->browser->hidden = false;
					$this->browser->stock = false;

					if (isset($match[1]) && $match[1]) {
						$this->browser->version = new Version([ 'value' => $match[1], 'details' => isset($browsers[$b]['details']) ? $browsers[$b]['details'] : null ]);
					} else {
						$this->browser->version = null;
					}

					if (isset($browsers[$b]['type'])) {
						$this->device->type = $browsers[$b]['type'];
					}
				}
			}


			/****************************************************
			 *		WebKit
			 */

			if (preg_match('/WebKit\/([0-9.]*)/iu', $ua, $match)) {
				$this->engine->name = 'Webkit';
				$this->engine->version = new Version([ 'value' => $match[1] ]);

				if (preg_match('/(?:Chrome|Chromium)\/([0-9]*)/u', $ua, $match)) {
					if (intval($match[1]) >= 27) {
						$this->engine->name = 'Blink';
					}
				}
			}

			if (preg_match('/Browser\/AppleWebKit\/?([0-9.]*)/iu', $ua, $match)) {
				$this->engine->name = 'Webkit';
				$this->engine->version = new Version([ 'value' => $match[1] ]);
			}

			if (preg_match('/AppleWebkit\(like Gecko\)/iu', $ua, $match)) {
				$this->engine->name = 'Webkit';
			}


			/****************************************************
			 *		KHTML
			 */

			if (preg_match('/KHTML\/([0-9.]*)/u', $ua, $match)) {
				$this->engine->name = 'KHTML';
				$this->engine->version = new Version([ 'value' => $match[1] ]);
			}

			/****************************************************
			 *		Gecko
			 */

			if (preg_match('/Gecko/u', $ua) && !preg_match('/like Gecko/iu', $ua)) {
				$this->engine->name = 'Gecko';

				if (preg_match('/; rv:([^\);]+)[\);]/u', $ua, $match)) {
					$this->engine->version = new Version([ 'value' => $match[1], 'details' => 3 ]);
				}
			}

			/****************************************************
			 *		Presto
			 */

			if (preg_match('/Presto\/([0-9.]*)/u', $ua, $match)) {
				$this->engine->name = 'Presto';
				$this->engine->version = new Version([ 'value' => $match[1] ]);
			}

			/****************************************************
			 *		Trident
			 */

			if (preg_match('/Trident\/([0-9.]*)/u', $ua, $match)) {
				$this->engine->name = 'Trident';
				$this->engine->version = new Version([ 'value' => $match[1] ]);


				if (isset($this->browser->version) && isset($this->browser->name) && $this->browser->name == 'Internet Explorer') {
					if ($this->engine->version->toNumber() == 7 && $this->browser->version->toFloat() < 11) {
						$this->browser->version = new Version([ 'value' => '11.0' ]);
						$this->browser->mode = 'compat';
					}

					if ($this->engine->version->toNumber() == 6 && $this->browser->version->toFloat() < 10) {
						$this->browser->version = new Version([ 'value' => '10.0' ]);
						$this->browser->mode = 'compat';
					}

					if ($this->engine->version->toNumber() == 5 && $this->browser->version->toFloat() < 9) {
						$this->browser->version = new Version([ 'value' => '9.0' ]);
						$this->browser->mode = 'compat';
					}

					if ($this->engine->version->toNumber() == 4 && $this->browser->version->toFloat() < 8) {
						$this->browser->version = new Version([ 'value' => '8.0' ]);
						$this->browser->mode = 'compat';
					}
				}

				if (isset($this->os->version) && isset($this->os->name) && $this->os->name == 'Windows Phone' && isset($this->browser->name) && $this->browser->name == 'Mobile Internet Explorer') {
					if ($this->engine->version->toNumber() == 7 && $this->os->version->toFloat() < 8.1) {
						$this->os->version = new Version([ 'value' => '8.1' ]);
					}

					if ($this->engine->version->toNumber() == 6 && $this->os->version->toFloat() < 8) {
						$this->os->version = new Version([ 'value' => '8.0' ]);
					}

					if ($this->engine->version->toNumber() == 5 && $this->os->version->toFloat() < 7.5) {
						$this->os->version = new Version([ 'value' => '7.5' ]);
					}
				}
			}

			if (preg_match('/Edge\/([0-9.]*)/u', $ua, $match)) {
				$this->engine->name = 'EdgeHTML';
				$this->engine->version = new Version([ 'value' => $match[1], 'details' => 1 ]);
			}


			/****************************************************
			 *		Corrections
			 */

			if (isset($this->os->name) && isset($this->browser->name)) {
				if ($this->os->name == 'iOS' && ($this->browser->name == 'Opera Mini' && $this->browser->version->toFloat() < 8)) {
					$this->os->version = null;
				}

				if ($this->os->name == 'Series80' && $this->browser->name == 'Internet Explorer') {
					$this->browser->name = null;
					$this->browser->version = null;
				}

				if ($this->os->name == 'Tizen' && $this->browser->name == 'Chrome') {
					$this->browser->name = null;
					$this->browser->version = null;
				}

				if ($this->os->name == 'Ubuntu Touch' && $this->browser->name == 'Chromium') {
					$this->browser->name = null;
					$this->browser->version = null;
				}
			}

			if (isset($this->browser->name) && isset($this->engine->name)) {
				if ($this->browser->name == 'Midori' && $this->engine->name != 'Webkit') {
					$this->engine->name = 'Webkit';
					$this->engine->version = null;
				}
			}


			if (isset($this->browser->name) && $this->browser->name == 'Firefox Mobile' && !isset($this->os->name)) {
				$this->os->name = 'Firefox OS';
			}


			if (isset($this->os->name) && $this->os->name == 'Windows Phone' && isset($this->browser->name) && $this->browser->name == 'Mobile Internet Explorer') {
				if ($this->os->version->toFloat() == 8.0 && $this->browser->version->toNumber() < 10) {
					$this->browser->version = new Version([ 'value' => '11' ]);
				}

				if ($this->os->version->toFloat() == 8.1 && $this->browser->version->toNumber() < 11) {
					$this->browser->version = new Version([ 'value' => '11' ]);
				}
			}


			if (isset($this->browser->name) && $this->browser->name == 'Opera' && $this->device->type == Constants\DeviceType::TELEVISION) {
				$this->browser->name = 'Opera Devices';

				if (preg_match('/Presto\/([0-9]+\.[0-9]+)/u', $ua, $match)) {
					switch($match[1]) {
						case '2.12':		$this->browser->version = new Version([ 'value' => '3.4' ]); break;
						case '2.11':		$this->browser->version = new Version([ 'value' => '3.3' ]); break;
						case '2.10':		$this->browser->version = new Version([ 'value' => '3.2' ]); break;
						case '2.9':			$this->browser->version = new Version([ 'value' => '3.1' ]); break;
						case '2.8':			$this->browser->version = new Version([ 'value' => '3.0' ]); break;
						case '2.7':			$this->browser->version = new Version([ 'value' => '2.9' ]); break;
						case '2.6':			$this->browser->version = new Version([ 'value' => '2.8' ]); break;
						case '2.4':			$this->browser->version = new Version([ 'value' => '10.3' ]); break;
						case '2.3':			$this->browser->version = new Version([ 'value' => '10' ]); break;
						case '2.2':			$this->browser->version = new Version([ 'value' => '9.7' ]); break;
						case '2.1':			$this->browser->version = new Version([ 'value' => '9.6' ]); break;
						default:			unset($this->browser->version);
					}
				}

				else if (preg_match('/OMI\/([0-9]+\.[0-9]+)/u', $ua, $match)) {
					$this->browser->version = new Version([ 'value' => $match[1] ]);
				}

				else if (preg_match('/OPR\/([0-9]+)/u', $ua, $match)) {
					switch($match[1]) {
						case '17':			$this->browser->version = new Version([ 'value' => '4.0' ]); break;
						case '19':			$this->browser->version = new Version([ 'value' => '4.1' ]); break;
						case '22':			$this->browser->version = new Version([ 'value' => '4.2' ]); break;
						default:			unset($this->browser->version);
					}
				}

				unset($this->os->name);
				unset($this->os->version);
			}

			if (isset($this->browser->name)) {
				if ($this->browser->name == 'UC Browser') {
					if (!preg_match("/UBrowser\//", $ua) && ($this->device->type == 'desktop' || (isset($this->os->name) && ($this->os->name == 'Windows' || $this->os->name == 'OS X')))) {
						$this->device->type = Constants\DeviceType::MOBILE;

						$this->browser->mode = 'desktop';

						unset($this->engine->name);
						unset($this->engine->version);
						unset($this->os->name);
						unset($this->os->version);
					}

					else if (!isset($this->os->name) || ($this->os->name != 'iOS' && $this->os->name != 'Windows Phone' && $this->os->name != 'Windows' && $this->os->name != 'Android' && (!isset($this->os->family) || $this->os->family->getName() != 'Android'))) {
						$this->engine->name = 'Gecko';
						unset($this->engine->version);
						$this->browser->mode = 'proxy';
					}

					if (isset($this->engine->name) && $this->engine->name == 'Presto') {
						$this->engine->name = 'Webkit';
						unset($this->engine->version);
					}
				}
			}

			if (isset($this->device->flag) && $this->device->flag == Constants\Flag::NOKIAX) {
				$this->os->name = 'Nokia X Platform';
				$this->os->family = new Family([ 'name' => 'Android' ]);

				unset($this->os->version);
				unset($this->device->flag);
			}

			if (isset($this->device->flag) && $this->device->flag == Constants\Flag::FIREOS) {
				$this->os->name = 'FireOS';
				$this->os->family = new Family([ 'name' => 'Android' ]);

				if (isset($this->os->version) && isset($this->os->version->value)) {
					switch($this->os->version->value) {
						case '2.3.3':	$this->os->version = new Version([ 'value' => '1' ]); break;
						case '4.0.3':	$this->os->version = new Version([ 'value' => '2' ]); break;
						case '4.2.2':	$this->os->version = new Version([ 'value' => '3' ]); break;
						case '4.4.2':	$this->os->version = new Version([ 'value' => '4' ]); break;
						case '4.4.3':	$this->os->version = new Version([ 'value' => '4.5' ]); break;
						case '5.1.1':	$this->os->version = new Version([ 'value' => '5' ]); break;
						default:		unset($this->os->version); break;
					}
				}

				if ($this->isBrowser('Chrome')) {
					$this->browser->using = new Using([ 'name' => 'Amazon WebView' ]); 

					$this->browser->stock = false;
					$this->browser->name = null;
					$this->browser->version = null;
					$this->browser->channel = null;
				}

				if ($this->browser->isUsing('Chromium WebView')) {
					$this->browser->using = new Using([ 'name' => 'Amazon WebView' ]); 
				}

				unset($this->device->flag);
			}

			if (isset($this->device->flag) && $this->device->flag == Constants\Flag::GOOGLETV) {
				$this->os->name = 'Google TV';
				$this->os->family = new Family([ 'name' => 'Android' ]);

				unset($this->os->version);
				unset($this->device->flag);
			}

			if (isset($this->device->flag) && $this->device->flag == Constants\Flag::ANDROIDTV) {
				$this->os->name = 'Android TV';
				$this->os->family = new Family([ 'name' => 'Android' ]);

				unset($this->device->flag);
			}

			if (isset($this->device->flag) && $this->device->flag == Constants\Flag::ANDROIDWEAR) {
				$this->os->name = 'Android Wear';
				$this->os->family = new Family([ 'name' => 'Android' ]);
				unset($this->os->version);

				if (preg_match('/Chrome\/19\.77\.34\.5/u', $ua)) {
					$this->browser->name = "Wear Internet Browser";
					$this->browser->version = null;
				}
				else {
					$this->browser->stock = true;
					$this->browser->hidden = true;
				}

				unset($this->browser->channel);
				unset($this->device->flag);
			}

			if (isset($this->device->flag) && $this->device->flag == Constants\Flag::GOOGLEGLASS) {
				$this->os->family = new Family([ 'name' => 'Android' ]);
				unset($this->os->name);
				unset($this->os->version);
				unset($this->device->flag);
			}


			if (isset($this->os->name)) {
				if ($this->os->name == 'Android' && !isset($this->browser->using) && !isset($this->browser->name) && $this->browser->stock) {
					$this->browser->name = 'Android Browser';
				}

				if ($this->os->name == 'Aliyun OS' && !isset($this->browser->using) && !isset($this->browser->name) && $this->browser->stock) {
					$this->browser->name = 'Aliyun Browser';
				}

				if ($this->os->name == 'Google TV' && !isset($this->browser->name) && $this->browser->stock) {
					$this->browser->name = 'Chrome';
				}

				if ($this->os->name == 'BlackBerry' && !isset($this->browser->name) && $this->browser->stock) {
					$this->browser->name = 'BlackBerry Browser';
					$this->browser->hidden = true;
				}

				if ($this->os->name == 'BlackBerry OS' && !isset($this->browser->name) && $this->browser->stock) {
					$this->browser->name = 'BlackBerry Browser';
					$this->browser->hidden = true;
				}

				if ($this->os->name == 'BlackBerry Tablet OS' && !isset($this->browser->name) && $this->browser->stock) {
					$this->browser->name = 'BlackBerry Browser';
					$this->browser->hidden = true;
				}

				if ($this->os->name == 'Tizen' && !isset($this->browser->name) && $this->browser->stock && $this->device->type == Constants\DeviceType::MOBILE) {
					$this->browser->name = 'Samsung Browser';
				}

				if ($this->os->name == 'Aliyun OS' && $this->browser->stock) {
					$this->browser->hidden = true;
				}

				if ($this->os->name == 'Darwin' && $this->device->type == Constants\DeviceType::MOBILE) {
					$this->os->name = 'iOS';

					switch (strstr($this->os->getVersion(), '.', true)) {
						case '9':		$this->os->version = new Version([ 'value' =>'1' ]); $this->os->alias = 'iPhone OS'; break;
						case '10':		$this->os->version = new Version([ 'value' =>'4' ]); break;
						case '11':		$this->os->version = new Version([ 'value' =>'5' ]); break;
						case '13':		$this->os->version = new Version([ 'value' =>'6' ]); break;
						case '14':		$this->os->version = new Version([ 'value' =>'7' ]); break;
						case '15':		$this->os->version = new Version([ 'value' =>'9' ]); break;
						default:		$this->os->version = null;
					}
				}

				if ($this->os->name == 'Darwin' && $this->device->type == Constants\DeviceType::DESKTOP) {
					$this->os->name = 'OS X';

					switch (strstr($this->os->getVersion(), '.', true)) {
						case '1':		$this->os->version = new Version([ 'value' =>'10.0' ]); break;
						case '5':		$this->os->version = new Version([ 'value' =>'10.1' ]); break;
						case '6':		$this->os->version = new Version([ 'value' =>'10.2' ]); break;
						case '7':		$this->os->version = new Version([ 'value' =>'10.3' ]); break;
						case '8':		$this->os->version = new Version([ 'value' =>'10.4' ]); break;
						case '9':		$this->os->version = new Version([ 'value' =>'10.5' ]); break;
						case '10':		$this->os->version = new Version([ 'value' =>'10.6' ]); break;
						case '11':		$this->os->version = new Version([ 'value' =>'10.7' ]); break;
						case '12':		$this->os->version = new Version([ 'value' =>'10.8' ]); break;
						case '13':		$this->os->version = new Version([ 'value' =>'10.9' ]); break;
						case '14':		$this->os->version = new Version([ 'value' =>'10.10' ]); break;
						case '15':		$this->os->version = new Version([ 'value' =>'10.11' ]); break;
						default:		$this->os->version = null;
					}

					if (!empty($this->os->version)) {
						if ($this->os->version->is('<', '10.7')) $this->os->alias = 'Mac OS X';
						if ($this->os->version->is('10.7')) $this->os->version->nickname = 'Lion';
						if ($this->os->version->is('10.8')) $this->os->version->nickname = 'Mountain Lion';
						if ($this->os->version->is('10.9')) $this->os->version->nickname = 'Mavericks';
						if ($this->os->version->is('10.10')) $this->os->version->nickname = 'Yosemite';
						if ($this->os->version->is('10.11')) $this->os->version->nickname = 'El Capitan';
					}
				}			
			}


			if (preg_match('/Bot[\/;]/iu', $ua) || preg_match('/Robot[\/;]/iu', $ua) || preg_match('/Spider[\/;]/iu', $ua) || preg_match('/Crawler[\/;]/iu', $ua)) {
				$this->device->identified = false;
				$this->device->type = Constants\DeviceType::BOT;

				unset($this->browser->name);
				unset($this->browser->alias);
				unset($this->browser->version);

				unset($this->os->name);
				unset($this->os->alias);
				unset($this->os->version);

				unset($this->engine->name);
				unset($this->engine->alias);
				unset($this->engine->version);

				unset($this->device->manufacturer);
				unset($this->device->model);
				unset($this->device->identifier);
			}

			if ($bot = Data\Bots::identify($ua)) {
				$this->browser = $bot;

				$this->device->identified = false;
				$this->device->type = Constants\DeviceType::BOT;

				unset($this->os->name);
				unset($this->os->alias);
				unset($this->os->version);

				unset($this->engine->name);
				unset($this->engine->alias);
				unset($this->engine->version);

				unset($this->device->manufacturer);
				unset($this->device->model);
				unset($this->device->identifier);
			}

			if (!$this->device->identified && isset($this->device->model)) {
				if (preg_match('/^[a-z][a-z]-[a-z][a-z]$/u', $this->device->model)) {
					$this->device->model = null;
				}
			}


			if ((isset($this->os->name) && $this->os->name == 'Android') || isset($this->os->name) && $this->os->name == 'Android TV') {
				if (preg_match('/Build\/([^\);]+)/u', $ua, $match)) {
					$version = Data\BuildIds::identify('android', $match[1]);

					if ($version) {
						if (!isset($this->os->version) || $this->os->version == null || $this->os->version->value == null || $version->toFloat() < $this->os->version->toFloat()) {
							$this->os->version = $version;
						}

						/* Special case for Android L */
						if ($version->toFloat() == 5) {
							$this->os->version = $version;
						}
					}

					$this->os->build = $match[1];
				}
			}

			if ($this->device->type == Constants\DeviceType::TELEVISION) {
				if (isset($this->browser->name) && $this->browser->name == 'Firefox') {
					unset($this->browser->name);
					unset($this->browser->version);
				}

				if (isset($this->browser->name) && $this->browser->name == 'Internet Explorer') {
					$valid = false;
					if (isset($this->device->model) && in_array($this->device->model, [ 'WebTV' ])) $valid = true;

					if (!$valid) {
						unset($this->browser->name);
						unset($this->browser->version);
					}
				}

				if (isset($this->browser->name) && ($this->browser->name == 'Chrome' || $this->browser->name == 'Chromium')) {
					$valid = false;
					if (isset($this->os->name) && in_array($this->os->name, [ 'Google TV', 'Android' ])) $valid = true;
					if (isset($this->device->model) && in_array($this->device->model, [ 'Chromecast' ])) $valid = true;

					if (!$valid) {
						unset($this->browser->name);
						unset($this->browser->version);
					}
				}
			}


			/* And finally try to detect Netscape */
			if ($this->device->type == Constants\DeviceType::DESKTOP && $this->browser->getName() == '') {
				if (!preg_match('/compatible;/u', $ua)) {
					if (preg_match('/Mozilla\/([123].[0-9]+)/u', $ua, $match)) {
						$this->browser->name = 'Netscape Navigator';
						$this->browser->version = new Version([ 'value' => preg_replace("/([0-9])([0-9])/", '$1.$2', $match[1]) ]);
					}				

					if (preg_match('/Mozilla\/(4.[0-9]+)/u', $ua, $match)) {
						$this->browser->name = 'Netscape Communicator';
						$this->browser->version = new Version([ 'value' => preg_replace("/([0-9])([0-9])/", '$1.$2', $match[1]) ]);
					}				
				}
			}
		}	
Exemple #22
0
<?php

namespace WhichBrowser\Data;

use WhichBrowser\Constants\Flag;
DeviceModels::$SYMBIAN_MODELS = ['BenQ P30' => ['BenQ', 'P30', 'flag' => Flag::UIQ], 'BenQ P31' => ['BenQ', 'P31', 'flag' => Flag::UIQ], 'RIZR-Z8' => ['Motorola', 'RIZR Z8', 'flag' => Flag::UIQ], 'RIZR-Z10' => ['Motorola', 'RIZR Z10', 'flag' => Flag::UIQ], 'A920' => ['Motorola', 'A920', 'flag' => Flag::UIQ], 'A925' => ['Motorola', 'A925', 'flag' => Flag::UIQ], 'A1000' => ['Motorola', 'A1000', 'flag' => Flag::UIQ], 'M1000' => ['Motorola', 'M1000', 'flag' => Flag::UIQ], 'G700' => ['Sony Ericsson', 'G700', 'flag' => Flag::UIQ], 'G900' => ['Sony Ericsson', 'G900', 'flag' => Flag::UIQ], 'M600i' => ['Sony Ericsson', 'M600', 'flag' => Flag::UIQ], 'P990i' => ['Sony Ericsson', 'P990', 'flag' => Flag::UIQ], 'P1i' => ['Sony Ericsson', 'P1', 'flag' => Flag::UIQ], 'W950i' => ['Sony Ericsson', 'W950', 'flag' => Flag::UIQ], 'W960i' => ['Sony Ericsson', 'W960', 'flag' => Flag::UIQ], 'LG KS10' => ['LG', 'KS10', 'flag' => Flag::S60], 'LGKT610' => ['LG', 'KT610', 'flag' => Flag::S60], 'LGKT615' => ['LG', 'KT615', 'flag' => Flag::S60], 'C5-00!' => ['Nokia', 'C5-00', 'flag' => Flag::S60], 'C5-01' => ['Nokia', 'C5-01', 'flag' => Flag::S60], 'C5-03!' => ['Nokia', 'C5-03', 'flag' => Flag::S60], 'C5-04' => ['Nokia', 'C5-04', 'flag' => Flag::S60], 'C5-05' => ['Nokia', 'C5-05', 'flag' => Flag::S60], 'C5-06' => ['Nokia', 'C5-06', 'flag' => Flag::S60], 'C6-00!' => ['Nokia', 'C6-00', 'flag' => Flag::S60], 'C6-01!' => ['Nokia', 'C6-01', 'flag' => Flag::S60], 'C7-00!' => ['Nokia', 'C7-00', 'flag' => Flag::S60], 'E5-00!' => ['Nokia', 'E5-00', 'flag' => Flag::S60], 'E6' => ['Nokia', 'E6-00', 'flag' => Flag::S60], 'E6-00' => ['Nokia', 'E6-00', 'flag' => Flag::S60], 'E7-00' => ['Nokia', 'E7-00', 'flag' => Flag::S60], 'N8-00' => ['Nokia', 'N8-00', 'flag' => Flag::S60], 'T7-00' => ['Nokia', 'T7-00', 'flag' => Flag::S60], 'X5-00' => ['Nokia', 'X5-00', 'flag' => Flag::S60], 'X5-01' => ['Nokia', 'X5-01', 'flag' => Flag::S60], 'X6-00!' => ['Nokia', 'X6-00', 'flag' => Flag::S60], 'X7-00!' => ['Nokia', 'X7-00', 'flag' => Flag::S60], 'N-Gage' => ['Nokia', 'N-Gage', 'flag' => Flag::S60], 'N-GageQD' => ['Nokia', 'N-Gage QD', 'flag' => Flag::S60], 'E50!' => ['Nokia', 'E50', 'flag' => Flag::S60], 'E51!' => ['Nokia', 'E51', 'flag' => Flag::S60], 'E52!' => ['Nokia', 'E52', 'flag' => Flag::S60], 'E55!' => ['Nokia', 'E55', 'flag' => Flag::S60], 'E60!' => ['Nokia', 'E60', 'flag' => Flag::S60], 'E61i!' => ['Nokia', 'E61i', 'flag' => Flag::S60], 'E61!' => ['Nokia', 'E61', 'flag' => Flag::S60], 'E62!' => ['Nokia', 'E62', 'flag' => Flag::S60], 'E63!' => ['Nokia', 'E63', 'flag' => Flag::S60], 'E65!' => ['Nokia', 'E65', 'flag' => Flag::S60], 'E66!' => ['Nokia', 'E66', 'flag' => Flag::S60], 'E70!' => ['Nokia', 'E70', 'flag' => Flag::S60], 'E71x' => ['Nokia', 'E71x', 'flag' => Flag::S60], 'E71!' => ['Nokia', 'E71', 'flag' => Flag::S60], 'E72!' => ['Nokia', 'E72', 'flag' => Flag::S60], 'E73!' => ['Nokia', 'E73 Mode', 'flag' => Flag::S60], 'E75!' => ['Nokia', 'E75', 'flag' => Flag::S60], 'E90!' => ['Nokia', 'E90 Communicator', 'flag' => Flag::S60], 'N70!' => ['Nokia', 'N70', 'flag' => Flag::S60], 'N71!' => ['Nokia', 'N71', 'flag' => Flag::S60], 'N72!' => ['Nokia', 'N72', 'flag' => Flag::S60], 'N73!' => ['Nokia', 'N73', 'flag' => Flag::S60], 'N75!' => ['Nokia', 'N75', 'flag' => Flag::S60], 'N76!' => ['Nokia', 'N76', 'flag' => Flag::S60], 'N77!' => ['Nokia', 'N77', 'flag' => Flag::S60], 'N78!' => ['Nokia', 'N78', 'flag' => Flag::S60], 'N79!' => ['Nokia', 'N79', 'flag' => Flag::S60], 'N80!' => ['Nokia', 'N80', 'flag' => Flag::S60], 'N81!' => ['Nokia', 'N81', 'flag' => Flag::S60], 'N82!' => ['Nokia', 'N82', 'flag' => Flag::S60], 'N85!' => ['Nokia', 'N85', 'flag' => Flag::S60], 'N86!' => ['Nokia', 'N86 8MP', 'flag' => Flag::S60], 'N90!' => ['Nokia', 'N90', 'flag' => Flag::S60], 'N91!' => ['Nokia', 'N91', 'flag' => Flag::S60], 'N92!' => ['Nokia', 'N92', 'flag' => Flag::S60], 'N93-1' => ['Nokia', 'N93', 'flag' => Flag::S60], 'N93i' => ['Nokia', 'N93i', 'flag' => Flag::S60], 'N95' => ['Nokia', 'N95', 'flag' => Flag::S60], 'N95 8GB' => ['Nokia', 'N95 8GB', 'flag' => Flag::S60], 'N95-3' => ['Nokia', 'N95-3 NAM', 'flag' => Flag::S60], 'N96-1' => ['Nokia', 'N96', 'flag' => Flag::S60], 'N96-3' => ['Nokia', 'N96-3', 'flag' => Flag::S60], 'N97' => ['Nokia', 'N97', 'flag' => Flag::S60], 'N97i' => ['Nokia', 'N97', 'flag' => Flag::S60], 'N97-1' => ['Nokia', 'N97', 'flag' => Flag::S60], 'N97-3' => ['Nokia', 'N97', 'flag' => Flag::S60], 'N97-4' => ['Nokia', 'N97 Mini', 'flag' => Flag::S60], 'N97-5' => ['Nokia', 'N97 Mini', 'flag' => Flag::S60], 'N97mini' => ['Nokia', 'N97 Mini', 'flag' => Flag::S60], '500!' => ['Nokia', '500', 'flag' => Flag::S60], '603' => ['Nokia', '603', 'flag' => Flag::S60], '700' => ['Nokia', '700', 'flag' => Flag::S60], '701' => ['Nokia', '701', 'flag' => Flag::S60], '702T' => ['Nokia', '702T', 'flag' => Flag::S60], '801T' => ['Nokia', '801T', 'flag' => Flag::S60], '808' => ['Nokia', '808 PureView', 'flag' => Flag::S60], '808PureView' => ['Nokia', '808 PureView', 'flag' => Flag::S60], '808 PureView' => ['Nokia', '808 PureView', 'flag' => Flag::S60], '5228' => ['Nokia', '5228', 'flag' => Flag::S60], '5233!' => ['Nokia', '5228', 'flag' => Flag::S60], '5230!' => ['Nokia', '5230', 'flag' => Flag::S60], '5235' => ['Nokia', '5235 Ovi Music Unlimited', 'flag' => Flag::S60], '5236' => ['Nokia', '5236', 'flag' => Flag::S60], '5250' => ['Nokia', '5250', 'flag' => Flag::S60], '5320!' => ['Nokia', '5320 XpressMusic', 'flag' => Flag::S60], '5500d!' => ['Nokia', '5500 Sport', 'flag' => Flag::S60], '5530!' => ['Nokia', '5530 XpressMusic', 'flag' => Flag::S60], '5630!' => ['Nokia', '5630 XpressMusic', 'flag' => Flag::S60], '5700!' => ['Nokia', '5700 XpressMusic', 'flag' => Flag::S60], '5730!' => ['Nokia', '5730 XpressMusic', 'flag' => Flag::S60], '5800!' => ['Nokia', '5800 XpressMusic', 'flag' => Flag::S60], '6110Navigator' => ['Nokia', '6110 Navigator', 'flag' => Flag::S60], '6120c!' => ['Nokia', '6120 classic', 'flag' => Flag::S60], '6121c!' => ['Nokia', '6121 classic', 'flag' => Flag::S60], '6122c!' => ['Nokia', '6124 classic', 'flag' => Flag::S60], '6124c' => ['Nokia', '6124 classic', 'flag' => Flag::S60], '6210Navigator' => ['Nokia', '6210 Navigator', 'flag' => Flag::S60], '6220c!' => ['Nokia', '6220 classic', 'flag' => Flag::S60], '6290!' => ['Nokia', '6290', 'flag' => Flag::S60], '6600' => ['Nokia', '6600', 'flag' => Flag::S60], '6630' => ['Nokia', '6630', 'flag' => Flag::S60], '6650d!' => ['Nokia', '6650 fold', 'flag' => Flag::S60], '6670' => ['Nokia', '6670', 'flag' => Flag::S60], '6680' => ['Nokia', '6680', 'flag' => Flag::S60], '6681' => ['Nokia', '6681', 'flag' => Flag::S60], '6700s' => ['Nokia', '6700 slide', 'flag' => Flag::S60], '6708' => ['Nokia', '6708', 'flag' => Flag::UIQ], '6710s' => ['Nokia', '6710 Navigator', 'flag' => Flag::S60], '6720c!' => ['Nokia', '6720 classic', 'flag' => Flag::S60], '6730c!' => ['Nokia', '6730 classic', 'flag' => Flag::S60], '6760s!' => ['Nokia', '6760 slide', 'flag' => Flag::S60], '6788' => ['Nokia', '6788', 'flag' => Flag::S60], '6788i' => ['Nokia', '6788i', 'flag' => Flag::S60], '6790s-1b!' => ['Nokia', '6790 Surge', 'flag' => Flag::S60], '6790s-1c!' => ['Nokia', '6790 slide', 'flag' => Flag::S60], '7610' => ['Nokia', '7610', 'flag' => Flag::S60], '7660' => ['Nokia', '7660', 'flag' => Flag::S60], 'Panasonic-X700' => ['Panasonic', 'X700', 'flag' => Flag::S60], 'Panasonic-X800' => ['Panasonic', 'X800', 'flag' => Flag::S60], 'I7710' => ['Samsung', 'GT-I7710', 'flag' => Flag::S60], 'I8510' => ['Samsung', 'INNOV8', 'flag' => Flag::S60], 'I8910' => ['Samsung', 'Omnia HD', 'flag' => Flag::S60], 'SGH-D720' => ['Samsung', 'D720', 'flag' => Flag::S60], 'SGH-D728' => ['Samsung', 'D728', 'flag' => Flag::S60], 'SGH-D730' => ['Samsung', 'D730', 'flag' => Flag::S60], 'SGH-i400!' => ['Samsung', 'i400', 'flag' => Flag::S60], 'SGH-i408!' => ['Samsung', 'i408', 'flag' => Flag::S60], 'SGH-i450!' => ['Samsung', 'i450', 'flag' => Flag::S60], 'SGH-i458!' => ['Samsung', 'i458', 'flag' => Flag::S60], 'SGH-i520!' => ['Samsung', 'i520', 'flag' => Flag::S60], 'SGH-i550!' => ['Samsung', 'i550', 'flag' => Flag::S60], 'SGH-i560!' => ['Samsung', 'i560', 'flag' => Flag::S60], 'SGH-i568!' => ['Samsung', 'i568', 'flag' => Flag::S60], 'SGH-i570!' => ['Samsung', 'i570', 'flag' => Flag::S60], 'SGH-G810' => ['Samsung', 'G810', 'flag' => Flag::S60], 'U' => ['Sony Ericsson', 'Satio', 'flag' => Flag::S60], 'U1(a|i|iv)?!' => ['Sony Ericsson', 'Satio', 'flag' => Flag::S60], 'U5(a|i|iv)?!' => ['Sony Ericsson', 'Vivaz', 'flag' => Flag::S60], 'U8(a|i)?!' => ['Sony Ericsson', 'Vivaz Pro', 'flag' => Flag::S60], 'ConstellationT' => ['Vertu', 'Constellation T', 'flag' => Flag::S60], 'ConstellationQuest' => ['Vertu', 'Constellation Quest', 'flag' => Flag::S60]];
Exemple #23
0
 private function detectMobileBrowsers($ua)
 {
     if (!preg_match('/(Ninesky|Skyfire|Dolphin|QQ|360|QHBrowser|Mercury|iBrowser|Puffin|MiniB|MxNitro|Sogou|Xiino|Palmscape|WebPro|Vision)/ui', $ua)) {
         return;
     }
     /* NineSky */
     if (preg_match('/Ninesky(?:-android-mobile(?:-cn)?)?\\/([0-9.]*)/u', $ua, $match)) {
         $this->data->browser->reset();
         $this->data->browser->name = 'NineSky';
         $this->data->browser->version = new Version(['value' => $match[1]]);
         $this->data->browser->type = Constants\BrowserType::BROWSER;
         if (isset($this->data->device->manufacturer) && $this->data->device->manufacturer == 'Apple') {
             $this->data->device->reset();
         }
         if (!$this->data->os->isFamily('Android')) {
             $this->data->os->reset();
             $this->data->os->name = 'Android';
         }
         $this->data->device->type = Constants\DeviceType::MOBILE;
     }
     /* Skyfire */
     if (preg_match('/Skyfire\\/([0-9.]*)/u', $ua, $match)) {
         $this->data->browser->name = 'Skyfire';
         $this->data->browser->version = new Version(['value' => $match[1]]);
         $this->data->browser->type = Constants\BrowserType::BROWSER;
         $this->data->device->type = Constants\DeviceType::MOBILE;
         $this->data->os->name = 'Android';
         $this->data->os->version = null;
     }
     /* Dolphin HD */
     if (preg_match('/Dolphin(?:HDCN)?\\/(?:INT|CN)?-?([0-9.]*)/u', $ua, $match)) {
         $this->data->browser->name = 'Dolphin';
         $this->data->browser->version = new Version(['value' => $match[1]]);
         $this->data->browser->type = Constants\BrowserType::BROWSER;
         $this->data->device->type = Constants\DeviceType::MOBILE;
     }
     /* QQ Browser */
     if (preg_match('/(M?QQBrowser)\\/([0-9.]*)/u', $ua, $match)) {
         $this->data->browser->name = 'QQ Browser';
         $version = $match[2];
         if (preg_match('/^[0-9][0-9]$/u', $version)) {
             $version = $version[0] . '.' . $version[1];
         }
         $this->data->browser->version = new Version(['value' => $version, 'details' => 2]);
         $this->data->browser->type = Constants\BrowserType::BROWSER;
         $this->data->browser->channel = '';
         if (!isset($this->data->os->name) && $match[1] == 'QQBrowser') {
             $this->data->os->name = 'Windows';
         }
         if (preg_match('/MQQBrowser\\/[0-9\\.]+\\/Adr \\(Linux; U; ([0-9\\.]+); [^;]+; (.+) Build/u', $ua, $match)) {
             $this->data->os->reset(['name' => 'Android', 'version' => new Version(['value' => $match[1]])]);
             $this->data->device->type = Constants\DeviceType::MOBILE;
             $this->data->device->model = $match[2];
             $this->data->device->identified |= Constants\Id::PATTERN;
             $device = Data\DeviceModels::identify('android', $match[2]);
             if ($device->identified) {
                 $device->identified |= $this->data->device->identified;
                 $this->data->device = $device;
             }
         }
         if (preg_match('/MQQBrowser\\/[0-9\\.]+\\/WP7 \\([^;]+;WPOS:([0-9]\\.[0-9])[0-9\\.]*;([^;]+); ([^\\)]+)\\)/u', $ua, $match)) {
             $this->data->os->reset(['name' => 'Windows Phone', 'version' => new Version(['value' => $match[1]])]);
             $this->data->device->type = Constants\DeviceType::MOBILE;
             $this->data->device->manufacturer = $match[2];
             $this->data->device->model = $match[3];
             $this->data->device->identified |= Constants\Id::PATTERN;
             $device = Data\DeviceModels::identify('wp', $match[3]);
             if ($device->identified) {
                 $device->identified |= $this->data->device->identified;
                 $this->data->device = $device;
             }
         }
     }
     if (preg_match('/MQQBrowser\\/Mini([0-9.]*)/u', $ua, $match)) {
         $this->data->browser->name = 'QQ Browser Mini';
         $this->data->browser->version = new Version(['value' => $match[1], 'details' => 2]);
         $this->data->browser->type = Constants\BrowserType::BROWSER;
         $this->data->browser->channel = '';
     }
     if (preg_match('/QQ\\/([0-9.]*)/u', $ua, $match)) {
         $this->data->browser->name = 'QQ Browser';
         $this->data->browser->version = new Version(['value' => $match[1], 'details' => 2]);
         $this->data->browser->type = Constants\BrowserType::BROWSER;
         $this->data->browser->channel = '';
     }
     /* 360 Phone Browser */
     if (preg_match('/360 (?:Aphone|Android Phone) Browser \\((?:Version |V)?([0-9.]*)(?:beta)?\\)/u', $ua, $match)) {
         $this->data->browser->name = 'Qihoo 360 Browser';
         $this->data->browser->family = null;
         $this->data->browser->channel = '';
         $this->data->browser->version = new Version(['value' => $match[1]]);
         $this->data->browser->type = Constants\BrowserType::BROWSER;
         if (!$this->data->os->isFamily('Android')) {
             $this->data->device->type = Constants\DeviceType::MOBILE;
             $this->data->os->reset(['name' => 'Android']);
         }
     }
     if (preg_match('/360%20(?:Browser|Lite)\\/([0-9\\.]+)/u', $ua, $match)) {
         $this->data->browser->name = 'Qihoo 360 Browser';
         $this->data->browser->family = null;
         $this->data->browser->channel = '';
         $this->data->browser->version = new Version(['value' => $match[1]]);
         $this->data->browser->type = Constants\BrowserType::BROWSER;
     }
     if (preg_match('/QHBrowser\\/([0-9\\.]+)/u', $ua, $match)) {
         $version = $match[1];
         if (preg_match('/^[0-9][0-9][0-9]$/u', $version)) {
             $version = $version[0] . '.' . $version[1] . '.' . $version[2];
         }
         $this->data->browser->name = 'Qihoo 360 Browser';
         $this->data->browser->channel = '';
         $this->data->browser->version = new Version(['value' => $version]);
         $this->data->browser->type = Constants\BrowserType::BROWSER;
         if (!$this->data->isOs('iOS')) {
             $this->data->device->type = Constants\DeviceType::MOBILE;
             $this->data->os->reset(['name' => 'iOS']);
         }
     }
     /* Mercury */
     if (preg_match('/(?:^| )Mercury\\/([0-9\\.]+)/u', $ua, $match)) {
         $version = $match[1];
         if (preg_match('/^[0-9][0-9][0-9]$/u', $version)) {
             $version = $version[0] . '.' . $version[1] . '.' . $version[2];
         }
         $this->data->browser->name = 'Mercury Browser';
         $this->data->browser->channel = '';
         $this->data->browser->version = new Version(['value' => $version]);
         $this->data->browser->type = Constants\BrowserType::BROWSER;
     }
     /* iBrowser */
     if (preg_match('/(?:^| )iBrowser\\/([0-9.]*)/u', $ua, $match)) {
         $this->data->browser->name = 'iBrowser';
         $version = $match[1];
         if (preg_match('/^[0-9][0-9]$/u', $version)) {
             $version = $version[0] . '.' . $version[1];
         }
         $this->data->browser->version = new Version(['value' => $version, 'details' => 2]);
         $this->data->browser->channel = '';
         $this->data->browser->type = Constants\BrowserType::BROWSER;
     }
     if (preg_match('/iBrowser\\/Mini([0-9.]*)/u', $ua, $match)) {
         $this->data->browser->name = 'iBrowser Mini';
         $this->data->browser->version = new Version(['value' => $match[1], 'details' => 2]);
         $this->data->browser->channel = '';
         $this->data->browser->type = Constants\BrowserType::BROWSER;
     }
     /* Puffin */
     if (preg_match('/Puffin\\/([0-9.]+)([IA])?([PT])?/u', $ua, $match)) {
         $this->data->browser->name = 'Puffin';
         $this->data->browser->version = new Version(['value' => $match[1], 'details' => intval(substr(strrchr($match[1], '.'), 1)) > 99 ? -1 : null]);
         $this->data->browser->mode = 'proxy';
         $this->data->browser->channel = '';
         $this->data->browser->type = Constants\BrowserType::BROWSER;
         if (isset($match[2])) {
             switch ($match[2]) {
                 case 'A':
                     if (!$this->data->isOs('Android')) {
                         $this->data->os->reset(['name' => 'Android']);
                     }
                     break;
                 case 'I':
                     if (!$this->data->isOs('iOS')) {
                         $this->data->os->reset(['name' => 'iOS']);
                     }
                     break;
             }
         }
         if (isset($match[3])) {
             switch ($match[3]) {
                 case 'P':
                     $this->data->device->type = Constants\DeviceType::MOBILE;
                     if ($this->data->os->name == 'iOS' && empty($this->data->device->model)) {
                         $this->data->device->manufacturer = 'Apple';
                         $this->data->device->model = 'iPhone';
                         $this->data->device->identified = Constants\Id::MATCH_UA;
                     }
                     break;
                 case 'T':
                     $this->data->device->type = Constants\DeviceType::TABLET;
                     if ($this->data->os->name == 'iOS' && empty($this->data->device->model)) {
                         $this->data->device->manufacturer = 'Apple';
                         $this->data->device->model = 'iPad';
                         $this->data->device->identified = Constants\Id::MATCH_UA;
                     }
                     break;
             }
         }
     }
     /* MiniBrowser Mobile */
     if (preg_match('/MiniBr?owserM(?:obile)?\\/([0-9.]*)/u', $ua, $match)) {
         $this->data->browser->name = 'MiniBrowser';
         $this->data->browser->version = new Version(['value' => $match[1]]);
         $this->data->browser->type = Constants\BrowserType::BROWSER;
         $this->data->device->type = Constants\DeviceType::MOBILE;
         if (!$this->data->isOs('Series60')) {
             $this->data->os->name = 'Series60';
             $this->data->os->version = null;
         }
     }
     /* Maxthon */
     if (preg_match('/MxNitro/iu', $ua, $match)) {
         $this->data->browser->name = 'Maxthon Nitro';
         $this->data->browser->channel = '';
         $this->data->browser->version = null;
         $this->data->browser->type = Constants\BrowserType::BROWSER;
         if (preg_match('/MxNitro\\/([0-9.]*)/iu', $ua, $match)) {
             $this->data->browser->version = new Version(['value' => $match[1], 'details' => 3]);
         }
     }
     /* Sogou Mobile */
     if (preg_match('/SogouAndroidBrowser\\/([0-9.]*)/u', $ua, $match)) {
         $this->data->browser->name = 'Sogou Mobile';
         $this->data->browser->version = new Version(['value' => $match[1]]);
         $this->data->browser->type = Constants\BrowserType::BROWSER;
         if (isset($this->data->device->manufacturer) && $this->data->device->manufacturer == 'Apple') {
             unset($this->data->device->manufacturer);
             unset($this->data->device->model);
             unset($this->data->device->identifier);
             $this->data->device->identified = Constants\Id::NONE;
         }
     }
     /* Xiino */
     if (preg_match('/Xiino\\/([0-9.]+)/u', $ua, $match)) {
         $this->data->browser->name = 'Xiino';
         $this->data->browser->version = new Version(['value' => $match[1]]);
         $this->data->browser->type = Constants\BrowserType::BROWSER;
         $this->data->device->type = Constants\DeviceType::PDA;
         $this->data->os->name = 'Palm OS';
         if (preg_match('/\\(v. ([0-9.]+)/u', $ua, $match)) {
             $this->data->os->version = new Version(['value' => $match[1]]);
         }
     }
     /* Palmscape */
     if (preg_match('/Palmscape\\/(?:PR)?([0-9.]+)/u', $ua, $match)) {
         $this->data->browser->name = 'Palmscape';
         $this->data->browser->version = new Version(['value' => $match[1]]);
         $this->data->browser->type = Constants\BrowserType::BROWSER;
         $this->data->device->type = Constants\DeviceType::PDA;
         $this->data->os->name = 'Palm OS';
         if (preg_match('/\\(v. ([0-9.]+)/u', $ua, $match)) {
             $this->data->os->version = new Version(['value' => $match[1]]);
         }
     }
     /* Novarra WebPro */
     if (preg_match('/WebPro/u', $ua) && preg_match('/PalmOS/u', $ua)) {
         $this->data->browser->name = 'WebPro';
         $this->data->browser->version = null;
         $this->data->browser->type = Constants\BrowserType::BROWSER;
         if (preg_match('/WebPro\\/?([0-9.]*)/u', $ua, $match)) {
             $this->data->browser->version = new Version(['value' => $match[1]]);
         }
     }
     /* Novarra Vision */
     if (preg_match('/(?:Vision-Browser|Novarra-Vision)\\/?([0-9.]*)/u', $ua, $match)) {
         $this->data->browser->name = 'Novarra Vision';
         $this->data->browser->version = new Version(['value' => $match[1]]);
         $this->data->browser->family = null;
         $this->data->browser->mode = 'proxy';
         $this->data->browser->type = Constants\BrowserType::BROWSER;
         if ($this->data->device->type != Constants\DeviceType::MOBILE) {
             $this->data->os->reset();
             $this->data->device->type = Constants\DeviceType::MOBILE;
         }
     }
 }
<?php

namespace WhichBrowser\Data;

use WhichBrowser\Constants\DeviceType;
DeviceModels::$FEATURE_MODELS = ['Amstrad Gamma' => ['Amstrad', 'E-m@iler Plus', DeviceType::DESKTOP], 'Benefon Q' => ['Benefon', 'Q'], 'EF71' => ['BenQ-Siemens', 'EF71'], 'Lightpipe' => ['Kyocera', 'E1100 Neo'], 'K612' => ['Kyocera', 'K612 Strobe'], 'EX115' => ['Motorola', 'Starling EX115'], 'EX118' => ['Motorola', 'MOTOKEY XT EX118'], 'EX119' => ['Motorola', 'Brea EX119'], 'EX128' => ['Motorola', 'Kingfisher EX128'], 'EX225' => ['Motorola', 'MOTOKEY Social EX225'], 'EX226' => ['Motorola', 'MOTOKEY Social EX226'], 'EX430' => ['Motorola', 'MotoGo EX430'], 'MOTOQA1' => ['Motorola', 'Karma QA1'], 'KC910i' => ['LG', 'KC910i Renoir'], 'KP500!' => ['LG', 'KP500 Cookie'], 'KP570!' => ['LG', 'KP570 Cookie'], 'LG-KU380' => ['LG', 'KU380'], 'LG-KU580' => ['LG', 'KU580 Hero'], 'LG-KU990' => ['LG', 'KU990 Viewty'], 'KU990i' => ['LG', 'KU990 Viewty'], 'GM360' => ['LG', 'GM360 Viewty Snap'], 'GR700' => ['LG', 'GR700 Vu Plus'], 'GS290' => ['LG', 'GS290 Cookie Fresh'], 'GS500' => ['LG', 'GS500 Cookie Plus'], 'GT500!' => ['LG', 'GT500 Puccini'], 'GT550' => ['LG', 'GT550 Encore'], 'COCOON' => ['O2', 'Cocoon'], 'P7000' => ['Pantech', 'Impact'], 'P9020' => ['Pantech', 'Pursuit'], 'P9050' => ['Pantech', 'Laser'], 'PM-8200' => ['Sanyo', 'PM-8200'], 'SCP-5500' => ['Sanyo', 'VM4500'], 'SCP-6600' => ['Sanyo', 'Katana'], 'PLS6600KJ' => ['Sanyo', 'Katana'], 'GT-B2710' => ['Samsung', 'Xcover 271'], 'GT-B3210' => ['Samsung', 'Corby TXT'], 'GT-B3313' => ['Samsung', 'Corby Mate'], 'GT-C3200' => ['Samsung', 'Monte Bar'], 'GT-C3222' => ['Samsung', 'Ch@t 322'], 'GT-C3322' => ['Samsung', 'GT-C3322 Duos'], 'GT-C3500' => ['Samsung', 'Ch@t 350'], 'GT-C5010!' => ['Samsung', 'C5010 Squash'], 'GT-E1282!' => ['Samsung', 'Guru'], 'GT-E2152' => ['Samsung', 'GT-E2152 Duos'], 'GT-E2220' => ['Samsung', 'Ch@t 220'], 'GT-E2222' => ['Samsung', 'Ch@t 222'], 'GT-E2202' => ['Samsung', 'Metro'], 'GT-E2250' => ['Samsung', 'Utica'], 'GT-E2252' => ['Samsung', 'Metro 2252'], 'GT-E3213' => ['Samsung', 'E3213 Hero'], 'GT-E3309I' => ['Samsung', 'E3309 Manhattan'], 'm3510c' => ['Samsung', 'M3510'], 'GT-M8910' => ['Samsung', 'M8910 Pixon12'], 'GT-S3332' => ['Samsung', 'Ch@t 333'], 'GT-S33(50|53)!' => ['Samsung', 'Ch@t 335'], 'GT-S35(70|72)!' => ['Samsung', 'Ch@t 357'], 'GT-S5229' => ['Samsung', 'Tocco Lite 2'], 'GT-S5270!' => ['Samsung', 'Ch@t 527'], 'GT-S5610!' => ['Samsung', 'Primo'], 'SCH-W169' => ['Samsung', 'W169 Duos'], 'SCH-W279' => ['Samsung', 'Primo Duos'], 'SGH-A667' => ['Samsung', 'A667 Evergreen'], 'SGH-A697' => ['Samsung', 'A697 Sunburst'], 'SGH-A877' => ['Samsung', 'A877 Impression'], 'SGH-A927' => ['Samsung', 'A927 Flight II'], 'SGH-A997' => ['Samsung', 'Rugby III'], 'SGH-D880' => ['Samsung', 'D880 Duos'], 'SGH-E250i' => ['Samsung', 'E250'], 'SGH-E250V' => ['Samsung', 'E250'], 'SGH-G600' => ['Samsung', 'G600'], 'SGH-J700i' => ['Samsung', 'J700'], 'SGH-J700V' => ['Samsung', 'J700'], 'SGH-M200' => ['Samsung', 'M200'], 'SGH-S150G' => ['Samsung', 'S150 TracFone'], 'SGH-S390G' => ['Samsung', 'S390 TracFone'], 'SGH-T189N' => ['Samsung', 'Freeform M'], 'SGHX660V' => ['Samsung', 'X660'], 'SGH-Z107!' => ['Samsung', 'Z107'], 'SGH-Z130!' => ['Samsung', 'Z130'], 'SGH-Z500!' => ['Samsung', 'Z500'], 'SM-B313E' => ['Samsung', 'Metro 313'], 'SM-B350E' => ['Samsung', 'Metro 350'], 'SM-B780(A|W)!' => ['Samsung', 'Rugby 4'], 'S7350' => ['Samsung', 'S7350 Ultra S'], 'sam-r560' => ['Samsung', 'Messenger II R560'], 'Sendo Wap' => ['Sendo', 'Z100'], 'CK13[ai]?$!' => ['Sony Ericsson', 'txt'], 'CK15[ai]?$!' => ['Sony Ericsson', 'txt Pro'], 'F100[ai]?$!' => ['Sony Ericsson', 'Jalou'], 'J105[ai]?$!' => ['Sony Ericsson', 'Naite'], 'J108[ai]?$!' => ['Sony Ericsson', 'Cedar'], 'J10(i2?)?$!' => ['Sony Ericsson', 'Elm'], 'J20[ai]?$!' => ['Sony Ericsson', 'Hazel'], 'U100[ai]?$!' => ['Sony Ericsson', 'Yari'], 'U10[ai]?$!' => ['Sony Ericsson', 'Aino'], 'W100i?$!' => ['Sony Ericsson', 'Spiro'], 'W150i?$!' => ['Sony Ericsson', 'Yendo'], 'W20i?$!' => ['Sony Ericsson', 'Zylo'], 'WT13i$!' => ['Sony Ericsson', 'Mix Walkman'], 'X5i$!' => ['Sony Ericsson', 'Xperia Pureness X5'], 'tecnot36' => ['Tecno', 'T36'], 'Vodafone 575' => ['Vodafone', '575'], 'GT-I6410!' => ['Vodafone', '360 M1'], 'GT-I8320!' => ['Vodafone', '360 H1'], 'GT-I8330!' => ['Vodafone', '360 H2'], 'WIDETEL WCX150' => ['Widetel', 'WCX150']];
Exemple #25
0
<?php

namespace WhichBrowser\Data;

use WhichBrowser\Constants\DeviceType;
DeviceModels::$IOS_MODELS = ['iPhone' => ['Apple', 'iPhone', DeviceType::MOBILE], 'iPhone 3G' => ['Apple', 'iPhone 3G', DeviceType::MOBILE], 'iPhone 3GS' => ['Apple', 'iPhone 3GS', DeviceType::MOBILE], 'iPhone 4' => ['Apple', 'iPhone 4', DeviceType::MOBILE], 'iPhone 4S' => ['Apple', 'iPhone 4S', DeviceType::MOBILE], 'iPhone 5' => ['Apple', 'iPhone 5', DeviceType::MOBILE], 'iPhone 5c' => ['Apple', 'iPhone 5c', DeviceType::MOBILE], 'iPhone 5s' => ['Apple', 'iPhone 5s', DeviceType::MOBILE], 'iPhone 6' => ['Apple', 'iPhone 6', DeviceType::MOBILE], 'iPhone 6 Plus' => ['Apple', 'iPhone 6 Plus', DeviceType::MOBILE], 'iPod' => ['Apple', 'iPod touch', DeviceType::MEDIA], 'iPod touch' => ['Apple', 'iPod touch', DeviceType::MEDIA], 'iPad' => ['Apple', 'iPad', DeviceType::TABLET], 'iPhone1,1' => ['Apple', 'iPhone', DeviceType::MOBILE], 'iPhone1,2' => ['Apple', 'iPhone 3G', DeviceType::MOBILE], 'iPhone2,1' => ['Apple', 'iPhone 3GS', DeviceType::MOBILE], 'iPhone3,1' => ['Apple', 'iPhone 4', DeviceType::MOBILE], 'iPhone3,2' => ['Apple', 'iPhone 4', DeviceType::MOBILE], 'iPhone3,3' => ['Apple', 'iPhone 4', DeviceType::MOBILE], 'iPhone4,1' => ['Apple', 'iPhone 4S', DeviceType::MOBILE], 'iPhone5,1' => ['Apple', 'iPhone 5', DeviceType::MOBILE], 'iPhone5,2' => ['Apple', 'iPhone 5', DeviceType::MOBILE], 'iPhone5,3' => ['Apple', 'iPhone 5c', DeviceType::MOBILE], 'iPhone5,4' => ['Apple', 'iPhone 5c', DeviceType::MOBILE], 'iPhone6,1' => ['Apple', 'iPhone 5s', DeviceType::MOBILE], 'iPhone6,2' => ['Apple', 'iPhone 5s', DeviceType::MOBILE], 'iPhone7,1' => ['Apple', 'iPhone 6 Plus', DeviceType::MOBILE], 'iPhone7,2' => ['Apple', 'iPhone 6', DeviceType::MOBILE], 'iPhone8,1' => ['Apple', 'iPhone 6s', DeviceType::MOBILE], 'iPhone8,2' => ['Apple', 'iPhone 6s Plus', DeviceType::MOBILE], 'iPhone8,4' => ['Apple', 'iPhone SE', DeviceType::MOBILE], 'iPod1,1' => ['Apple', 'iPod touch', DeviceType::MEDIA], 'iPod2,1' => ['Apple', 'iPod touch (2nd gen)', DeviceType::MEDIA], 'iPod3,1' => ['Apple', 'iPod touch (3rd gen)', DeviceType::MEDIA], 'iPod4,1' => ['Apple', 'iPod touch (4th gen)', DeviceType::MEDIA], 'iPod5,1' => ['Apple', 'iPod touch (5th gen)', DeviceType::MEDIA], 'iPod7,1' => ['Apple', 'iPod touch (6th gen)', DeviceType::MEDIA], 'iPad1,1' => ['Apple', 'iPad', DeviceType::TABLET], 'iPad1,2' => ['Apple', 'iPad 2', DeviceType::TABLET], 'iPad2,1' => ['Apple', 'iPad 2', DeviceType::TABLET], 'iPad2,2' => ['Apple', 'iPad 2', DeviceType::TABLET], 'iPad2,3' => ['Apple', 'iPad 2', DeviceType::TABLET], 'iPad2,4' => ['Apple', 'iPad 2', DeviceType::TABLET], 'iPad2,5' => ['Apple', 'iPad mini', DeviceType::TABLET], 'iPad2,6' => ['Apple', 'iPad mini', DeviceType::TABLET], 'iPad2,7' => ['Apple', 'iPad mini', DeviceType::TABLET], 'iPad3,1' => ['Apple', 'iPad (3rd gen)', DeviceType::TABLET], 'iPad3,2' => ['Apple', 'iPad (3rd gen)', DeviceType::TABLET], 'iPad3,3' => ['Apple', 'iPad (3rd gen)', DeviceType::TABLET], 'iPad3,4' => ['Apple', 'iPad (4th gen)', DeviceType::TABLET], 'iPad3,5' => ['Apple', 'iPad (4th gen)', DeviceType::TABLET], 'iPad3,6' => ['Apple', 'iPad (4th gen)', DeviceType::TABLET], 'iPad4,1' => ['Apple', 'iPad Air', DeviceType::TABLET], 'iPad4,2' => ['Apple', 'iPad Air', DeviceType::TABLET], 'iPad4,3' => ['Apple', 'iPad Air', DeviceType::TABLET], 'iPad4,4' => ['Apple', 'iPad mini 2', DeviceType::TABLET], 'iPad4,5' => ['Apple', 'iPad mini 2', DeviceType::TABLET], 'iPad4,6' => ['Apple', 'iPad mini 2', DeviceType::TABLET], 'iPad4,7' => ['Apple', 'iPad mini 3', DeviceType::TABLET], 'iPad4,8' => ['Apple', 'iPad mini 3', DeviceType::TABLET], 'iPad5,1' => ['Apple', 'iPad mini 4', DeviceType::TABLET], 'iPad5,2' => ['Apple', 'iPad mini 4', DeviceType::TABLET], 'iPad5,3' => ['Apple', 'iPad Air 2', DeviceType::TABLET], 'iPad5,4' => ['Apple', 'iPad Air 2', DeviceType::TABLET], 'iPad6,3' => ['Apple', 'iPad Pro (9.7″)', DeviceType::TABLET], 'iPad6,4' => ['Apple', 'iPad Pro (9.7″)', DeviceType::TABLET], 'iPad6,7' => ['Apple', 'iPad Pro (12.9″)', DeviceType::TABLET], 'iPad6,8' => ['Apple', 'iPad Pro (12.9″)', DeviceType::TABLET]];
		private function analyseNewUCUserAgent($ua) {
			if (preg_match('/pr\(UCBrowser\/([0-9\.]+)/u', $ua, $match)) {
				$this->browser->name = 'UC Browser';
				$this->browser->version = new Version([ 'value' => $match[1], 'details' => 2 ]);
				$this->browser->stock = false;
			}

			/* Find os */
			if (preg_match('/ov\(Android ([0-9\.]+)/u', $ua, $match)) {
				$this->os->name = 'Android';
				$this->os->version = new Version([ 'value' => $match[1] ]);
			}

			if (preg_match('/pf\(Symbian\)/u', $ua) && preg_match('/ov\(S60V5/u', $ua)) {
				if (!isset($this->os->name) || $this->os->name != 'Series60') {
					$this->os->name = 'Series60';
					$this->os->version = new Version([ 'value' => 5 ]);
				}
			}

			if (preg_match('/pf\(Windows\)/u', $ua) && preg_match('/ov\(wds ([0-9\.]+)/u', $ua, $match)) {
				if (!isset($this->os->name) || $this->os->name != 'Windows Phone') {
					$this->os->name = 'Windows Phone';

					switch($match[1]) {
						case '7.0':		$this->os->version = new Version([ 'value' => '7.0' ]); break;
						case '7.1':		$this->os->version = new Version([ 'value' => '7.5' ]); break;
						case '8.0':		$this->os->version = new Version([ 'value' => '8.0' ]); break;
					}
				}
			}

			if (preg_match('/pf\((?:42|44)\)/u', $ua) && preg_match('/ov\((?:iPh OS )?(?:iOS )?([0-9\_]+)/u', $ua, $match)) {
				if (!isset($this->os->name) || $this->os->name != 'iOS') {
					$this->os->name = 'iOS';
					$this->os->version = new Version([ 'value' => str_replace('_', '.', $match[1]) ]);
				}
			}

			/* Find engine */
			if (preg_match('/re\(AppleWebKit\/([0-9\.]+)/u', $ua, $match)) {
				$this->engine->name = 'Webkit';
				$this->engine->version = new Version([ 'value' => $match[1] ]);
			}

			/* Find device */
			if (isset($this->os->name) && $this->os->name == 'Android') {
				if (preg_match('/dv\((.*)\)/uU', $ua, $match)) {
					$match[1] = preg_replace("/\s+Build/u", '', $match[1]);
					$device = Data\DeviceModels::identify('android', $match[1]);

					if ($device) {
						$this->device = $device;
					}
				}
			}

			if (isset($this->os->name) && $this->os->name == 'Series60') {
				if (preg_match('/dv\((?:Nokia)?([^\)]*)\)/u', $ua, $match)) {
					$device = Data\DeviceModels::identify('s60', $match[1]);

					if ($device) {
						$this->device = $device;
					}
				}
			}

			if (isset($this->os->name) && $this->os->name == 'Windows Phone') {
				if (preg_match('/dv\(([^\)]*)\)/u', $ua, $match)) {
					$device = Data\DeviceModels::identify('wp', substr(strstr($match[1], ' '), 1));

					if ($device) {
						$this->device = $device;
					}
				}
			}

			if (isset($this->os->name) && $this->os->name == 'iOS') {
				if (preg_match('/dv\(([^\)]*)\)/u', $ua, $match)) {
					$device = Data\DeviceModels::identify('ios', $match[1]);

					if ($device) {
						$this->device = $device;
					}
				}
			}
		}
Exemple #27
0
 function identifyBasedOnId($id)
 {
     if ($this->data->device->type != 'mobile') {
         return;
     }
     if (!($this->data->device->identified & Constants\Id::MATCH_UA)) {
         $device = Data\DeviceModels::identify('brew', $id);
         if ($device->identified) {
             $device->identified |= $this->data->device->identified;
             $this->data->device = $device;
             if (!in_array($this->data->os->name, ['Brew', 'Brew MP'])) {
                 $this->data->os->name = 'Brew';
             }
         }
     }
     if (!($this->data->device->identified & Constants\Id::MATCH_UA)) {
         $device = Data\DeviceModels::identify('bada', $id);
         if ($device->identified) {
             $device->identified |= $this->data->device->identified;
             $this->data->device = $device;
             $this->data->os->name = 'Bada';
         }
     }
     if (!($this->data->device->identified & Constants\Id::MATCH_UA)) {
         $device = Data\DeviceModels::identify('touchwiz', $id);
         if ($device->identified) {
             $device->identified |= $this->data->device->identified;
             $this->data->device = $device;
             $this->data->os->name = 'Touchwiz';
         }
     }
     if (!($this->data->device->identified & Constants\Id::MATCH_UA)) {
         $device = Data\DeviceModels::identify('symbian', $id);
         if ($device->identified) {
             $device->identified |= $this->data->device->identified;
             $this->data->device = $device;
             $this->data->os->reset(['family' => new Family(['name' => 'Symbian'])]);
         }
     }
     if (!($this->data->device->identified & Constants\Id::MATCH_UA)) {
         $device = Data\DeviceModels::identify('wm', $id);
         if ($device->identified) {
             $device->identified |= $this->data->device->identified;
             $this->data->device = $device;
             $this->data->os->name = 'Windows Mobile';
         }
     }
     if (!($this->data->device->identified & Constants\Id::MATCH_UA)) {
         $device = Data\DeviceModels::identify('feature', $id);
         if ($device->identified) {
             $device->identified |= $this->data->device->identified;
             $this->data->device = $device;
         }
     }
 }
Exemple #28
0
<?php

namespace WhichBrowser\Data;

use WhichBrowser\Constants\DeviceType;
use WhichBrowser\Constants\DeviceSubType;
DeviceModels::$PALMOS_MODELS = ['Palm-D061' => ['Palm', 'Centro 685', DeviceType::MOBILE], 'Palm-D062' => ['Palm', 'Centro 690', DeviceType::MOBILE], 'Palm-TunX' => ['Palm', 'LifeDrive', DeviceType::PDA], 'Palm-stuj' => ['Palm', 'm125', DeviceType::PDA], 'Palm-hbbs' => ['Palm', 'm130', DeviceType::PDA], 'Palm-trnd' => ['Palm', 'm500', DeviceType::PDA], 'Palm-ecty' => ['Palm', 'm505', DeviceType::PDA], 'Palm-lith' => ['Palm', 'm515', DeviceType::PDA], 'Palm-sky1' => ['Palm', 'i705', DeviceType::PDA], 'hspr-H101' => ['Palm', 'Treo 600', DeviceType::MOBILE], 'hspr-H102' => ['Palm', 'Treo 650', DeviceType::MOBILE], 'Palm-D053' => ['Palm', 'Treo 680', DeviceType::MOBILE], 'Palm-D052' => ['Palm', 'Treo 700', DeviceType::MOBILE], 'Palm-D060' => ['Palm', 'Treo 755', DeviceType::MOBILE], 'Palm-MT64' => ['Palm', 'Tungsten C', DeviceType::PDA], 'Palm-Cct1' => ['Palm', 'Tungsten E', DeviceType::PDA], 'Palm-Zir4' => ['Palm', 'Tungsten E2', DeviceType::PDA], 'Palm-Frg1' => ['Palm', 'Tungsten T', DeviceType::PDA], 'Palm-Frg2' => ['Palm', 'Tungsten T2', DeviceType::PDA], 'Palm-Arz1' => ['Palm', 'Tungsten T3', DeviceType::PDA], 'Palm-TnT5' => ['Palm', 'Tungsten T5', DeviceType::PDA], 'Palm-atc1' => ['Palm', 'Tungsten W', DeviceType::PDA], 'Palm-D050' => ['Palm', 'TX', DeviceType::PDA], 'Palm-Cubs' => ['Palm', 'Zire', DeviceType::PDA], 'Palm-Zi21' => ['Palm', 'Zire 21', DeviceType::PDA], 'Palm-D051' => ['Palm', 'Zire 22', DeviceType::PDA], 'Palm-Zi22' => ['Palm', 'Zire 31', DeviceType::PDA], 'Palm-Zpth' => ['Palm', 'Zire 71', DeviceType::PDA], 'Palm-Zi72' => ['Palm', 'Zire 72', DeviceType::PDA], 'sony-ystn' => ['Sony', 'CLIÉ PEG-N600C', DeviceType::PDA], 'sony-ysmt' => ['Sony', 'CLIÉ PEG-N700C', DeviceType::PDA], 'sony-ysm2' => ['Sony', 'CLIÉ PEG-N750C', DeviceType::PDA], 'sony-nsca' => ['Sony', 'CLIÉ PEG-S320', DeviceType::PDA], 'sony-nsc2' => ['Sony', 'CLIÉ PEG-S360', DeviceType::PDA], 'sony-vnce' => ['Sony', 'CLIÉ PEG-T400', DeviceType::PDA], 'sony-mdna' => ['Sony', 'CLIÉ PEG-T600C', DeviceType::PDA], 'sony-npls' => ['Sony', 'CLIÉ PEG-T650C', DeviceType::PDA], 'sony-rdwd' => ['Sony', 'CLIÉ PEG-NR70', DeviceType::PDA], 'sony-crdb' => ['Sony', 'CLIÉ PEG-NX60', DeviceType::PDA], 'sony-tldo' => ['Sony', 'CLIÉ PEG-NX73V', DeviceType::PDA], 'sony-mdrd' => ['Sony', 'CLIÉ PEG-NX80V', DeviceType::PDA], 'sony-grnd' => ['Sony', 'CLIÉ PEG-NZ90', DeviceType::PDA], 'sony-frta' => ['Sony', 'CLIÉ PEG-SL10', DeviceType::PDA], 'sony-cocs' => ['Sony', 'CLIÉ PEG-SL20', DeviceType::PDA], 'sony-glps' => ['Sony', 'CLIÉ PEG-SJ22', DeviceType::PDA], 'sony-mcnd' => ['Sony', 'CLIÉ PEG-SJ33', DeviceType::PDA], 'sony-vrna' => ['Sony', 'CLIÉ PEG-TG50', DeviceType::PDA], 'sony-atom' => ['Sony', 'CLIÉ PEG-TH55', DeviceType::PDA], 'sony-goha' => ['Sony', 'CLIÉ PEG-TJ25', DeviceType::PDA], 'sony-leia' => ['Sony', 'CLIÉ PEG-TJ27', DeviceType::PDA], 'sony-hwai' => ['Sony', 'CLIÉ PEG-TJ30', DeviceType::PDA], 'sony-goku' => ['Sony', 'CLIÉ PEG-TJ35', DeviceType::PDA], 'sony-luke' => ['Sony', 'CLIÉ PEG-TJ37', DeviceType::PDA], 'sony-amno' => ['Sony', 'CLIÉ PEG-UX40', DeviceType::PDA], 'sony-prmr' => ['Sony', 'CLIÉ PEG-UX50', DeviceType::PDA], 'sony-ancy' => ['Sony', 'CLIÉ PEG-VZ90', DeviceType::PDA], 'smsn-phix' => ['Samsung', 'SPH-i300', DeviceType::MOBILE], 'smsn-Phx2' => ['Samsung', 'SPH-i330', DeviceType::MOBILE], 'smsn-blch' => ['Samsung', 'SPH-i500', DeviceType::MOBILE], 'smsn-BLFM' => ['Samsung', 'SPH-i530', DeviceType::MOBILE], 'smsn-glxy' => ['Samsung', 'SPH-i550', DeviceType::MOBILE], 'grmn-3200' => ['Garmin', 'iQue 3200', DeviceType::GPS], 'grmn-3600' => ['Garmin', 'iQue 3600', DeviceType::GPS], 'grmn-3700' => ['Garmin', 'iQue 3600a', DeviceType::GPS], 'trgp-trg1' => ['HandEra', 'TRG Pro', DeviceType::PDA], 'trgp-trg2' => ['HandEra', '330', DeviceType::PDA], 'qcom-qc20' => ['Kyocera', 'QCP-6035', DeviceType::MOBILE], 'kwc.-7135' => ['Kyocera', 'QCP-7135', DeviceType::MOBILE], 'Tpwv-Rdog' => ['Tapwave', 'Zodiac', [DeviceType::GAMING, DeviceSubType::PORTABLE]], 'gsRl-zicn' => ['Group Sense', 'Xplore G18', DeviceType::MOBILE], 'gsRl-zcn2' => ['Group Sense', 'Xplore M28', DeviceType::MOBILE], 'gsRl-zcn5' => ['Group Sense', 'Xplore M68', DeviceType::MOBILE], 'acer-momo' => ['Acer', 's10', DeviceType::PDA], 'acer-coco' => ['Acer', 's50', DeviceType::PDA], 'Acea-MZ01' => ['Aceeca', 'Meazura MEZ1000', DeviceType::PDA], 'Acea-PD01' => ['Aceeca', 'PDA32', DeviceType::PDA]];