1*d5ef99ddSAndreas Gohr<?php 2*d5ef99ddSAndreas Gohr 3*d5ef99ddSAndreas Gohr/** 4*d5ef99ddSAndreas Gohr * Device Detector - The Universal Device Detection library for parsing User Agents 5*d5ef99ddSAndreas Gohr * 6*d5ef99ddSAndreas Gohr * @link https://matomo.org 7*d5ef99ddSAndreas Gohr * 8*d5ef99ddSAndreas Gohr * @license http://www.gnu.org/licenses/lgpl.html LGPL v3 or later 9*d5ef99ddSAndreas Gohr */ 10*d5ef99ddSAndreas Gohr 11*d5ef99ddSAndreas Gohrdeclare(strict_types=1); 12*d5ef99ddSAndreas Gohr 13*d5ef99ddSAndreas Gohrnamespace DeviceDetector\Parser\Device; 14*d5ef99ddSAndreas Gohr 15*d5ef99ddSAndreas Gohruse DeviceDetector\Parser\AbstractParser; 16*d5ef99ddSAndreas Gohr 17*d5ef99ddSAndreas Gohr/** 18*d5ef99ddSAndreas Gohr * Class AbstractDeviceParser 19*d5ef99ddSAndreas Gohr * 20*d5ef99ddSAndreas Gohr * Abstract class for all device parsers 21*d5ef99ddSAndreas Gohr */ 22*d5ef99ddSAndreas Gohrabstract class AbstractDeviceParser extends AbstractParser 23*d5ef99ddSAndreas Gohr{ 24*d5ef99ddSAndreas Gohr /** 25*d5ef99ddSAndreas Gohr * @var ?int 26*d5ef99ddSAndreas Gohr */ 27*d5ef99ddSAndreas Gohr protected $deviceType = null; 28*d5ef99ddSAndreas Gohr 29*d5ef99ddSAndreas Gohr /** 30*d5ef99ddSAndreas Gohr * @var string 31*d5ef99ddSAndreas Gohr */ 32*d5ef99ddSAndreas Gohr protected $model = ''; 33*d5ef99ddSAndreas Gohr 34*d5ef99ddSAndreas Gohr /** 35*d5ef99ddSAndreas Gohr * @var string 36*d5ef99ddSAndreas Gohr */ 37*d5ef99ddSAndreas Gohr protected $brand = ''; 38*d5ef99ddSAndreas Gohr 39*d5ef99ddSAndreas Gohr public const DEVICE_TYPE_DESKTOP = 0; 40*d5ef99ddSAndreas Gohr public const DEVICE_TYPE_SMARTPHONE = 1; 41*d5ef99ddSAndreas Gohr public const DEVICE_TYPE_TABLET = 2; 42*d5ef99ddSAndreas Gohr public const DEVICE_TYPE_FEATURE_PHONE = 3; 43*d5ef99ddSAndreas Gohr public const DEVICE_TYPE_CONSOLE = 4; 44*d5ef99ddSAndreas Gohr public const DEVICE_TYPE_TV = 5; // including set top boxes, blu-ray players,... 45*d5ef99ddSAndreas Gohr public const DEVICE_TYPE_CAR_BROWSER = 6; 46*d5ef99ddSAndreas Gohr public const DEVICE_TYPE_SMART_DISPLAY = 7; 47*d5ef99ddSAndreas Gohr public const DEVICE_TYPE_CAMERA = 8; 48*d5ef99ddSAndreas Gohr public const DEVICE_TYPE_PORTABLE_MEDIA_PAYER = 9; 49*d5ef99ddSAndreas Gohr public const DEVICE_TYPE_PHABLET = 10; 50*d5ef99ddSAndreas Gohr public const DEVICE_TYPE_SMART_SPEAKER = 11; 51*d5ef99ddSAndreas Gohr public const DEVICE_TYPE_WEARABLE = 12; // including set watches, headsets 52*d5ef99ddSAndreas Gohr public const DEVICE_TYPE_PERIPHERAL = 13; // including portable terminal, portable projector 53*d5ef99ddSAndreas Gohr 54*d5ef99ddSAndreas Gohr /** 55*d5ef99ddSAndreas Gohr * Detectable device types 56*d5ef99ddSAndreas Gohr * 57*d5ef99ddSAndreas Gohr * @var array 58*d5ef99ddSAndreas Gohr */ 59*d5ef99ddSAndreas Gohr protected static $deviceTypes = [ 60*d5ef99ddSAndreas Gohr 'desktop' => self::DEVICE_TYPE_DESKTOP, 61*d5ef99ddSAndreas Gohr 'smartphone' => self::DEVICE_TYPE_SMARTPHONE, 62*d5ef99ddSAndreas Gohr 'tablet' => self::DEVICE_TYPE_TABLET, 63*d5ef99ddSAndreas Gohr 'feature phone' => self::DEVICE_TYPE_FEATURE_PHONE, 64*d5ef99ddSAndreas Gohr 'console' => self::DEVICE_TYPE_CONSOLE, 65*d5ef99ddSAndreas Gohr 'tv' => self::DEVICE_TYPE_TV, 66*d5ef99ddSAndreas Gohr 'car browser' => self::DEVICE_TYPE_CAR_BROWSER, 67*d5ef99ddSAndreas Gohr 'smart display' => self::DEVICE_TYPE_SMART_DISPLAY, 68*d5ef99ddSAndreas Gohr 'camera' => self::DEVICE_TYPE_CAMERA, 69*d5ef99ddSAndreas Gohr 'portable media player' => self::DEVICE_TYPE_PORTABLE_MEDIA_PAYER, 70*d5ef99ddSAndreas Gohr 'phablet' => self::DEVICE_TYPE_PHABLET, 71*d5ef99ddSAndreas Gohr 'smart speaker' => self::DEVICE_TYPE_SMART_SPEAKER, 72*d5ef99ddSAndreas Gohr 'wearable' => self::DEVICE_TYPE_WEARABLE, 73*d5ef99ddSAndreas Gohr 'peripheral' => self::DEVICE_TYPE_PERIPHERAL, 74*d5ef99ddSAndreas Gohr ]; 75*d5ef99ddSAndreas Gohr 76*d5ef99ddSAndreas Gohr /** 77*d5ef99ddSAndreas Gohr * Known device brands 78*d5ef99ddSAndreas Gohr * 79*d5ef99ddSAndreas Gohr * Note: Before using a new brand in on of the regex files, it needs to be added here 80*d5ef99ddSAndreas Gohr * 81*d5ef99ddSAndreas Gohr * @var array 82*d5ef99ddSAndreas Gohr */ 83*d5ef99ddSAndreas Gohr public static $deviceBrands = [ 84*d5ef99ddSAndreas Gohr '5E' => '2E', 85*d5ef99ddSAndreas Gohr '5IV' => '5IVE', 86*d5ef99ddSAndreas Gohr '2F' => 'F2 Mobile', 87*d5ef99ddSAndreas Gohr '3Q' => '3Q', 88*d5ef99ddSAndreas Gohr 'J7' => '7 Mobile', 89*d5ef99ddSAndreas Gohr '2Q' => '3GNET', 90*d5ef99ddSAndreas Gohr '4G' => '4Good', 91*d5ef99ddSAndreas Gohr '27' => '3GO', 92*d5ef99ddSAndreas Gohr '04' => '4ife', 93*d5ef99ddSAndreas Gohr '36' => '360', 94*d5ef99ddSAndreas Gohr '88' => '8848', 95*d5ef99ddSAndreas Gohr '10M' => '10moons', 96*d5ef99ddSAndreas Gohr '41' => 'A1', 97*d5ef99ddSAndreas Gohr 'AK1' => 'A&K', 98*d5ef99ddSAndreas Gohr '00' => 'Accent', 99*d5ef99ddSAndreas Gohr 'ACC' => 'Accesstyle', 100*d5ef99ddSAndreas Gohr 'AE' => 'Ace', 101*d5ef99ddSAndreas Gohr 'AC' => 'Acer', 102*d5ef99ddSAndreas Gohr 'ACL' => 'Aceline', 103*d5ef99ddSAndreas Gohr 'ACP' => 'Acepad', 104*d5ef99ddSAndreas Gohr '3K' => 'Acteck', 105*d5ef99ddSAndreas Gohr 'ACT' => 'actiMirror', 106*d5ef99ddSAndreas Gohr 'A9' => 'Advan', 107*d5ef99ddSAndreas Gohr 'AD' => 'Advance', 108*d5ef99ddSAndreas Gohr 'ADV' => 'Advantage Air', 109*d5ef99ddSAndreas Gohr '76' => 'Adronix', 110*d5ef99ddSAndreas Gohr 'ADR' => 'Adreamer', 111*d5ef99ddSAndreas Gohr 'AF' => 'AfriOne', 112*d5ef99ddSAndreas Gohr 'FY' => 'AFFIX', 113*d5ef99ddSAndreas Gohr 'A3' => 'AGM', 114*d5ef99ddSAndreas Gohr 'AEE' => 'AEEZO', 115*d5ef99ddSAndreas Gohr 'J0' => 'AG Mobile', 116*d5ef99ddSAndreas Gohr 'AJI' => 'Ajib', 117*d5ef99ddSAndreas Gohr 'AZ' => 'Ainol', 118*d5ef99ddSAndreas Gohr 'AIR' => 'Airis', 119*d5ef99ddSAndreas Gohr 'AI' => 'Airness', 120*d5ef99ddSAndreas Gohr 'ARP' => 'Airpha', 121*d5ef99ddSAndreas Gohr 'AT' => 'Airties', 122*d5ef99ddSAndreas Gohr '7U' => 'Airtel', 123*d5ef99ddSAndreas Gohr 'AIT' => 'AirTouch', 124*d5ef99ddSAndreas Gohr 'U0' => 'AIRON', 125*d5ef99ddSAndreas Gohr '0A' => 'AIS', 126*d5ef99ddSAndreas Gohr 'AW' => 'Aiwa', 127*d5ef99ddSAndreas Gohr '85' => 'Aiuto', 128*d5ef99ddSAndreas Gohr 'U7' => 'AIDATA', 129*d5ef99ddSAndreas Gohr 'AL1' => 'AileTV', 130*d5ef99ddSAndreas Gohr 'AK' => 'Akai', 131*d5ef99ddSAndreas Gohr 'Q3' => 'AKIRA', 132*d5ef99ddSAndreas Gohr '1A' => 'Alba', 133*d5ef99ddSAndreas Gohr 'AL' => 'Alcatel', 134*d5ef99ddSAndreas Gohr 'AL0' => 'Alienware', 135*d5ef99ddSAndreas Gohr '20' => 'Alcor', 136*d5ef99ddSAndreas Gohr 'XY' => 'Alps', 137*d5ef99ddSAndreas Gohr 'XYA' => 'XY Auto', 138*d5ef99ddSAndreas Gohr 'AAU' => 'AAUW', 139*d5ef99ddSAndreas Gohr '7L' => 'ALDI NORD', 140*d5ef99ddSAndreas Gohr '6L' => 'ALDI SÜD', 141*d5ef99ddSAndreas Gohr '3L' => 'Alfawise', 142*d5ef99ddSAndreas Gohr '4A' => 'Aligator', 143*d5ef99ddSAndreas Gohr 'ALS' => 'All Star', 144*d5ef99ddSAndreas Gohr 'AA' => 'AllCall', 145*d5ef99ddSAndreas Gohr '3A' => 'AllDocube', 146*d5ef99ddSAndreas Gohr 'ALL' => 'allente', 147*d5ef99ddSAndreas Gohr 'A2' => 'Allview', 148*d5ef99ddSAndreas Gohr 'ALI' => 'ALLINmobile', 149*d5ef99ddSAndreas Gohr 'A7' => 'Allwinner', 150*d5ef99ddSAndreas Gohr 'ALP' => 'alpsmart', 151*d5ef99ddSAndreas Gohr 'A1' => 'Altech UEC', 152*d5ef99ddSAndreas Gohr '66' => 'Altice', 153*d5ef99ddSAndreas Gohr 'ALM' => 'Altimo', 154*d5ef99ddSAndreas Gohr 'A5' => 'altron', 155*d5ef99ddSAndreas Gohr 'ALB' => 'Altibox', 156*d5ef99ddSAndreas Gohr 'ALT' => 'Altus', 157*d5ef99ddSAndreas Gohr 'KN' => 'Amazon', 158*d5ef99ddSAndreas Gohr 'AMZ' => 'Amazon Basics', 159*d5ef99ddSAndreas Gohr 'AMA' => 'AMA', 160*d5ef99ddSAndreas Gohr 'AG' => 'AMGOO', 161*d5ef99ddSAndreas Gohr '9A' => 'Amigoo', 162*d5ef99ddSAndreas Gohr 'AO' => 'Amoi', 163*d5ef99ddSAndreas Gohr '3J' => 'Amino', 164*d5ef99ddSAndreas Gohr '54' => 'AMCV', 165*d5ef99ddSAndreas Gohr '60' => 'Andowl', 166*d5ef99ddSAndreas Gohr 'ANX' => 'ANXONIT', 167*d5ef99ddSAndreas Gohr 'ANL' => 'ANCEL', 168*d5ef99ddSAndreas Gohr 'ANC' => 'ANBERNIC', 169*d5ef99ddSAndreas Gohr 'AND' => 'andersson', 170*d5ef99ddSAndreas Gohr '6J' => 'Angelcare', 171*d5ef99ddSAndreas Gohr 'ANG' => 'AngelTech', 172*d5ef99ddSAndreas Gohr '7A' => 'Anry', 173*d5ef99ddSAndreas Gohr 'A0' => 'ANS', 174*d5ef99ddSAndreas Gohr '74' => 'Anker', 175*d5ef99ddSAndreas Gohr '3N' => 'Aoson', 176*d5ef99ddSAndreas Gohr 'O8' => 'AOC', 177*d5ef99ddSAndreas Gohr 'J2' => 'AOYODKG', 178*d5ef99ddSAndreas Gohr '55' => 'AOpen', 179*d5ef99ddSAndreas Gohr 'RW' => 'Aoro', 180*d5ef99ddSAndreas Gohr '9Y' => 'Aocos', 181*d5ef99ddSAndreas Gohr 'AOW' => 'Aocwei', 182*d5ef99ddSAndreas Gohr 'AP' => 'Apple', 183*d5ef99ddSAndreas Gohr 'APS' => 'ApoloSign', 184*d5ef99ddSAndreas Gohr 'ARC' => 'Arçelik', 185*d5ef99ddSAndreas Gohr 'AR' => 'Archos', 186*d5ef99ddSAndreas Gohr 'AB' => 'Arian Space', 187*d5ef99ddSAndreas Gohr 'ARI' => 'Arival', 188*d5ef99ddSAndreas Gohr 'A6' => 'Ark', 189*d5ef99ddSAndreas Gohr '5A' => 'ArmPhone', 190*d5ef99ddSAndreas Gohr 'AN' => 'Arnova', 191*d5ef99ddSAndreas Gohr 'AS' => 'ARRIS', 192*d5ef99ddSAndreas Gohr 'AQ' => 'Aspera', 193*d5ef99ddSAndreas Gohr 'HJ' => 'Aquarius', 194*d5ef99ddSAndreas Gohr '40' => 'Artel', 195*d5ef99ddSAndreas Gohr '21' => 'Artizlee', 196*d5ef99ddSAndreas Gohr '59' => 'ArtLine', 197*d5ef99ddSAndreas Gohr '8A' => 'Asano', 198*d5ef99ddSAndreas Gohr '90' => 'Asanzo', 199*d5ef99ddSAndreas Gohr '1U' => 'Astro (UA)', 200*d5ef99ddSAndreas Gohr 'AST' => 'astro (MY)', 201*d5ef99ddSAndreas Gohr 'A4' => 'Ask', 202*d5ef99ddSAndreas Gohr 'A8' => 'Assistant', 203*d5ef99ddSAndreas Gohr 'ASS' => 'ASSE', 204*d5ef99ddSAndreas Gohr 'AU' => 'Asus', 205*d5ef99ddSAndreas Gohr '6A' => 'AT&T', 206*d5ef99ddSAndreas Gohr 'ATH' => 'Athesi', 207*d5ef99ddSAndreas Gohr 'ATE' => 'Atlantic Electrics', 208*d5ef99ddSAndreas Gohr '5Q' => 'Atmaca Elektronik', 209*d5ef99ddSAndreas Gohr 'YH' => 'ATMAN', 210*d5ef99ddSAndreas Gohr 'ATM' => 'ATMPC', 211*d5ef99ddSAndreas Gohr '2A' => 'Atom', 212*d5ef99ddSAndreas Gohr 'AT1' => 'Atozee', 213*d5ef99ddSAndreas Gohr 'ATO' => 'ATOL', 214*d5ef99ddSAndreas Gohr 'Z2' => 'Atvio', 215*d5ef99ddSAndreas Gohr 'ATI' => 'Attila', 216*d5ef99ddSAndreas Gohr 'ATU' => 'Atouch', 217*d5ef99ddSAndreas Gohr 'AX' => 'Audiovox', 218*d5ef99ddSAndreas Gohr 'AJ' => 'AURIS', 219*d5ef99ddSAndreas Gohr 'YZ' => 'Autan', 220*d5ef99ddSAndreas Gohr 'AUP' => 'AUPO', 221*d5ef99ddSAndreas Gohr 'ZA' => 'Avenzo', 222*d5ef99ddSAndreas Gohr 'AH' => 'AVH', 223*d5ef99ddSAndreas Gohr 'AV' => 'Avvio', 224*d5ef99ddSAndreas Gohr 'AVA' => 'Avaya', 225*d5ef99ddSAndreas Gohr 'AXE' => 'AXEN', 226*d5ef99ddSAndreas Gohr 'AY' => 'Axxion', 227*d5ef99ddSAndreas Gohr 'AXX' => 'AXXA', 228*d5ef99ddSAndreas Gohr 'AYA' => 'AYA', 229*d5ef99ddSAndreas Gohr 'YR' => 'AYYA', 230*d5ef99ddSAndreas Gohr 'XA' => 'Axioo', 231*d5ef99ddSAndreas Gohr 'AM' => 'Azumi Mobile', 232*d5ef99ddSAndreas Gohr 'AZE' => 'Azeyou', 233*d5ef99ddSAndreas Gohr 'AZU' => 'Azupik', 234*d5ef99ddSAndreas Gohr 'AZO' => 'AZOM', 235*d5ef99ddSAndreas Gohr 'WW' => 'Awow', 236*d5ef99ddSAndreas Gohr 'AWO' => 'AWOX', 237*d5ef99ddSAndreas Gohr 'XU' => 'AUX', 238*d5ef99ddSAndreas Gohr 'BAC' => 'Backcell', 239*d5ef99ddSAndreas Gohr 'BFF' => 'BAFF', 240*d5ef99ddSAndreas Gohr 'BO' => 'BangOlufsen', 241*d5ef99ddSAndreas Gohr 'BN' => 'Barnes & Noble', 242*d5ef99ddSAndreas Gohr 'BAR' => 'BARTEC', 243*d5ef99ddSAndreas Gohr 'BAS' => 'BASE', 244*d5ef99ddSAndreas Gohr 'BAU' => 'BAUHN', 245*d5ef99ddSAndreas Gohr 'BB' => 'BBK', 246*d5ef99ddSAndreas Gohr '0B' => 'BB Mobile', 247*d5ef99ddSAndreas Gohr 'B6' => 'BDF', 248*d5ef99ddSAndreas Gohr 'QD' => 'BDQ', 249*d5ef99ddSAndreas Gohr '8Z' => 'BDsharing', 250*d5ef99ddSAndreas Gohr 'BEF' => 'Beafon', 251*d5ef99ddSAndreas Gohr 'BE' => 'Becker', 252*d5ef99ddSAndreas Gohr 'B5' => 'Beeline', 253*d5ef99ddSAndreas Gohr 'B0' => 'Beelink', 254*d5ef99ddSAndreas Gohr 'BL' => 'Beetel', 255*d5ef99ddSAndreas Gohr 'BEK' => 'Beko', 256*d5ef99ddSAndreas Gohr '2X' => 'Benco', 257*d5ef99ddSAndreas Gohr 'BQ' => 'BenQ', 258*d5ef99ddSAndreas Gohr 'BQL' => 'Bqeel', 259*d5ef99ddSAndreas Gohr 'BS' => 'BenQ-Siemens', 260*d5ef99ddSAndreas Gohr '4Y' => 'Benzo', 261*d5ef99ddSAndreas Gohr 'XJ' => 'Benesse', 262*d5ef99ddSAndreas Gohr 'BEN' => 'BenWee', 263*d5ef99ddSAndreas Gohr 'YB' => 'Beista', 264*d5ef99ddSAndreas Gohr 'BY' => 'BS Mobile', 265*d5ef99ddSAndreas Gohr 'BZ' => 'Bezkam', 266*d5ef99ddSAndreas Gohr 'BEL' => 'Bell', 267*d5ef99ddSAndreas Gohr '9B' => 'Bellphone', 268*d5ef99ddSAndreas Gohr '63' => 'Beyond', 269*d5ef99ddSAndreas Gohr 'BG' => 'BGH', 270*d5ef99ddSAndreas Gohr '6B' => 'Bigben', 271*d5ef99ddSAndreas Gohr 'B8' => 'BIHEE', 272*d5ef99ddSAndreas Gohr '1B' => 'Billion', 273*d5ef99ddSAndreas Gohr 'BA' => 'BilimLand', 274*d5ef99ddSAndreas Gohr 'BIL' => 'Billow', 275*d5ef99ddSAndreas Gohr 'BH' => 'BioRugged', 276*d5ef99ddSAndreas Gohr 'BI' => 'Bird', 277*d5ef99ddSAndreas Gohr 'BT' => 'Bitel', 278*d5ef99ddSAndreas Gohr 'B7' => 'Bitmore', 279*d5ef99ddSAndreas Gohr 'ZB' => 'Bittium', 280*d5ef99ddSAndreas Gohr 'BIE' => 'Biegedy', 281*d5ef99ddSAndreas Gohr 'BK' => 'Bkav', 282*d5ef99ddSAndreas Gohr '5B' => 'Black Bear', 283*d5ef99ddSAndreas Gohr 'BLK' => 'Black Box', 284*d5ef99ddSAndreas Gohr 'BF' => 'Black Fox', 285*d5ef99ddSAndreas Gohr 'BPC' => 'Blackpcs', 286*d5ef99ddSAndreas Gohr 'BLP' => 'Blackphone', 287*d5ef99ddSAndreas Gohr 'BLT' => 'Blackton', 288*d5ef99ddSAndreas Gohr 'B2' => 'Blackview', 289*d5ef99ddSAndreas Gohr '2Y' => 'b2m', 290*d5ef99ddSAndreas Gohr 'BP' => 'Blaupunkt', 291*d5ef99ddSAndreas Gohr 'BU' => 'Blu', 292*d5ef99ddSAndreas Gohr 'BUS' => 'BluSlate', 293*d5ef99ddSAndreas Gohr 'BUZ' => 'BuzzTV', 294*d5ef99ddSAndreas Gohr 'B3' => 'Bluboo', 295*d5ef99ddSAndreas Gohr '2B' => 'Bluedot', 296*d5ef99ddSAndreas Gohr 'BD' => 'Bluegood', 297*d5ef99ddSAndreas Gohr 'LB' => 'Bluewave', 298*d5ef99ddSAndreas Gohr 'J8' => 'Bluebird', 299*d5ef99ddSAndreas Gohr 'BSS' => 'BlueSky', 300*d5ef99ddSAndreas Gohr '7B' => 'Blloc', 301*d5ef99ddSAndreas Gohr 'UB' => 'Bleck', 302*d5ef99ddSAndreas Gohr 'Q2' => 'Blow', 303*d5ef99ddSAndreas Gohr 'BLI' => 'BLISS', 304*d5ef99ddSAndreas Gohr 'BM' => 'Bmobile', 305*d5ef99ddSAndreas Gohr 'Y5' => 'BMAX', 306*d5ef99ddSAndreas Gohr 'BMX' => 'BMXC', 307*d5ef99ddSAndreas Gohr 'B9' => 'Bobarry', 308*d5ef99ddSAndreas Gohr 'B4' => 'bogo', 309*d5ef99ddSAndreas Gohr 'BOL' => 'Bolva', 310*d5ef99ddSAndreas Gohr 'BW' => 'Boway', 311*d5ef99ddSAndreas Gohr 'BOO' => 'Boost', 312*d5ef99ddSAndreas Gohr 'BOK' => 'Bookeen', 313*d5ef99ddSAndreas Gohr 'BOT' => 'Botech', 314*d5ef99ddSAndreas Gohr 'BX' => 'bq', 315*d5ef99ddSAndreas Gohr '8B' => 'Brandt', 316*d5ef99ddSAndreas Gohr 'BRA' => 'BrandCode', 317*d5ef99ddSAndreas Gohr 'BV' => 'Bravis', 318*d5ef99ddSAndreas Gohr 'BRV' => 'BRAVE', 319*d5ef99ddSAndreas Gohr 'BRG' => 'Brigmton', 320*d5ef99ddSAndreas Gohr 'BR' => 'Brondi', 321*d5ef99ddSAndreas Gohr 'XF' => 'BROR', 322*d5ef99ddSAndreas Gohr 'BJ' => 'BrightSign', 323*d5ef99ddSAndreas Gohr 'B1' => 'Bush', 324*d5ef99ddSAndreas Gohr '4Q' => 'Bundy', 325*d5ef99ddSAndreas Gohr 'Y8' => 'Bubblegum', 326*d5ef99ddSAndreas Gohr 'BMW' => 'BMW', 327*d5ef99ddSAndreas Gohr 'BYJ' => 'BYJU\'S', 328*d5ef99ddSAndreas Gohr 'BYY' => 'BYYBUO', 329*d5ef99ddSAndreas Gohr 'BYD' => 'BYD', 330*d5ef99ddSAndreas Gohr 'C9' => 'CAGI', 331*d5ef99ddSAndreas Gohr 'CAD' => 'CADENA', 332*d5ef99ddSAndreas Gohr 'CAI' => 'Caixun', 333*d5ef99ddSAndreas Gohr 'CT' => 'Capitel', 334*d5ef99ddSAndreas Gohr 'GRD' => 'G-Guard', 335*d5ef99ddSAndreas Gohr 'G3' => 'CG Mobile', 336*d5ef99ddSAndreas Gohr '37' => 'CGV', 337*d5ef99ddSAndreas Gohr 'CP' => 'Captiva', 338*d5ef99ddSAndreas Gohr 'CPD' => 'CPDEVICE', 339*d5ef99ddSAndreas Gohr 'CF' => 'Carrefour', 340*d5ef99ddSAndreas Gohr 'CA1' => 'Carbon Mobile', 341*d5ef99ddSAndreas Gohr 'CS' => 'Casio', 342*d5ef99ddSAndreas Gohr 'R4' => 'Casper', 343*d5ef99ddSAndreas Gohr 'CA' => 'Cat', 344*d5ef99ddSAndreas Gohr 'BC' => 'Camfone', 345*d5ef99ddSAndreas Gohr 'CJ' => 'Cavion', 346*d5ef99ddSAndreas Gohr 'CNM' => 'Canaima', 347*d5ef99ddSAndreas Gohr 'CAN' => 'Canal+', 348*d5ef99ddSAndreas Gohr '4D' => 'Canal Digital', 349*d5ef99ddSAndreas Gohr 'CNG' => 'Canguro', 350*d5ef99ddSAndreas Gohr 'CNT' => 'CCIT', 351*d5ef99ddSAndreas Gohr 'CEC' => 'Cecotec', 352*d5ef99ddSAndreas Gohr 'CEP' => 'CEPTER', 353*d5ef99ddSAndreas Gohr 'CEI' => 'Ceibal', 354*d5ef99ddSAndreas Gohr '02' => 'Cell-C', 355*d5ef99ddSAndreas Gohr 'CEL' => 'Cellacom', 356*d5ef99ddSAndreas Gohr '34' => 'CellAllure', 357*d5ef99ddSAndreas Gohr '7C' => 'Celcus', 358*d5ef99ddSAndreas Gohr 'CE' => 'Celkon', 359*d5ef99ddSAndreas Gohr 'CG' => 'Cellution', 360*d5ef99ddSAndreas Gohr '62' => 'Centric', 361*d5ef99ddSAndreas Gohr 'CEN' => 'CENTEK', 362*d5ef99ddSAndreas Gohr 'C2' => 'Changhong', 363*d5ef99ddSAndreas Gohr 'CHA' => 'Chainway', 364*d5ef99ddSAndreas Gohr 'CHG' => 'ChiliGreen', 365*d5ef99ddSAndreas Gohr 'CH' => 'Cherry Mobile', 366*d5ef99ddSAndreas Gohr 'C3' => 'China Mobile', 367*d5ef99ddSAndreas Gohr 'U9' => 'China Telecom', 368*d5ef99ddSAndreas Gohr 'CI' => 'Chico Mobile', 369*d5ef99ddSAndreas Gohr 'CHC' => 'CHCNAV', 370*d5ef99ddSAndreas Gohr 'CIA' => 'C Idea', 371*d5ef99ddSAndreas Gohr 'CIP' => 'CipherLab', 372*d5ef99ddSAndreas Gohr 'CIT' => 'Citycall', 373*d5ef99ddSAndreas Gohr '1C' => 'Chuwi', 374*d5ef99ddSAndreas Gohr 'L8' => 'Clarmin', 375*d5ef99ddSAndreas Gohr '25' => 'Claresta', 376*d5ef99ddSAndreas Gohr 'CLA' => 'CLAYTON', 377*d5ef99ddSAndreas Gohr 'CLT' => 'Clovertek', 378*d5ef99ddSAndreas Gohr '1J' => 'Cloud', 379*d5ef99ddSAndreas Gohr 'CD' => 'Cloudfone', 380*d5ef99ddSAndreas Gohr '6C' => 'Cloudpad', 381*d5ef99ddSAndreas Gohr 'C0' => 'Clout', 382*d5ef99ddSAndreas Gohr 'CN' => 'CnM', 383*d5ef99ddSAndreas Gohr 'CY' => 'Coby Kyros', 384*d5ef99ddSAndreas Gohr 'XC' => 'Cobalt', 385*d5ef99ddSAndreas Gohr 'C6' => 'Comio', 386*d5ef99ddSAndreas Gohr 'COM' => 'CommScope', 387*d5ef99ddSAndreas Gohr 'CL' => 'Compal', 388*d5ef99ddSAndreas Gohr 'CQ' => 'Compaq', 389*d5ef99ddSAndreas Gohr 'C7' => 'ComTrade Tesla', 390*d5ef99ddSAndreas Gohr '7Z' => 'COMPUMAX', 391*d5ef99ddSAndreas Gohr 'C8' => 'Concord', 392*d5ef99ddSAndreas Gohr 'CC' => 'ConCorde', 393*d5ef99ddSAndreas Gohr 'C5' => 'Condor', 394*d5ef99ddSAndreas Gohr 'C5M' => 'C5 Mobile', 395*d5ef99ddSAndreas Gohr 'COE' => 'Cogeco', 396*d5ef99ddSAndreas Gohr '4C' => 'Conquest', 397*d5ef99ddSAndreas Gohr 'COG' => 'CONSUNG', 398*d5ef99ddSAndreas Gohr '3C' => 'Contixo', 399*d5ef99ddSAndreas Gohr '8C' => 'Connex', 400*d5ef99ddSAndreas Gohr '53' => 'Connectce', 401*d5ef99ddSAndreas Gohr 'CON' => 'Conceptum', 402*d5ef99ddSAndreas Gohr 'CED' => 'Continental Edison', 403*d5ef99ddSAndreas Gohr '9C' => 'Colors', 404*d5ef99ddSAndreas Gohr 'COL' => 'COLORROOM', 405*d5ef99ddSAndreas Gohr 'CAA' => 'coocaa', 406*d5ef99ddSAndreas Gohr 'CO' => 'Coolpad', 407*d5ef99ddSAndreas Gohr 'COO' => 'Coopers', 408*d5ef99ddSAndreas Gohr 'CDE' => 'COOD-E', 409*d5ef99ddSAndreas Gohr '4R' => 'CORN', 410*d5ef99ddSAndreas Gohr '1O' => 'Cosmote', 411*d5ef99ddSAndreas Gohr 'CW' => 'Cowon', 412*d5ef99ddSAndreas Gohr '75' => 'Covia', 413*d5ef99ddSAndreas Gohr 'QG' => 'COYOTE', 414*d5ef99ddSAndreas Gohr 'CKK' => 'CKK Mobile', 415*d5ef99ddSAndreas Gohr 'YW' => 'ClearPHONE', 416*d5ef99ddSAndreas Gohr '33' => 'Clementoni', 417*d5ef99ddSAndreas Gohr 'CR' => 'CreNova', 418*d5ef99ddSAndreas Gohr 'CX' => 'Crescent', 419*d5ef99ddSAndreas Gohr 'CRE' => 'Crestron', 420*d5ef99ddSAndreas Gohr 'CK' => 'Cricket', 421*d5ef99ddSAndreas Gohr 'CM' => 'Crius Mea', 422*d5ef99ddSAndreas Gohr 'CMF' => 'CMF', 423*d5ef99ddSAndreas Gohr '0C' => 'Crony', 424*d5ef99ddSAndreas Gohr 'C1' => 'Crosscall', 425*d5ef99ddSAndreas Gohr '4W' => 'Crown', 426*d5ef99ddSAndreas Gohr 'CTR' => 'Ctroniq', 427*d5ef99ddSAndreas Gohr 'CU' => 'Cube', 428*d5ef99ddSAndreas Gohr 'CB' => 'CUBOT', 429*d5ef99ddSAndreas Gohr 'CUI' => 'Cuiud', 430*d5ef99ddSAndreas Gohr 'CUL' => 'Cultraview', 431*d5ef99ddSAndreas Gohr 'CV' => 'CVTE', 432*d5ef99ddSAndreas Gohr 'CWO' => 'Cwowdefu', 433*d5ef99ddSAndreas Gohr 'CX0' => 'CX', 434*d5ef99ddSAndreas Gohr 'C4' => 'Cyrus', 435*d5ef99ddSAndreas Gohr 'D5' => 'Daewoo', 436*d5ef99ddSAndreas Gohr 'DA' => 'Danew', 437*d5ef99ddSAndreas Gohr 'DAN' => 'Dany', 438*d5ef99ddSAndreas Gohr 'DA1' => 'DangcapHD', 439*d5ef99ddSAndreas Gohr 'DAR' => 'Daria', 440*d5ef99ddSAndreas Gohr 'DT' => 'Datang', 441*d5ef99ddSAndreas Gohr 'D7' => 'Datawind', 442*d5ef99ddSAndreas Gohr '7D' => 'Datamini', 443*d5ef99ddSAndreas Gohr '6D' => 'Datalogic', 444*d5ef99ddSAndreas Gohr 'D1' => 'Datsun', 445*d5ef99ddSAndreas Gohr 'DZ' => 'Dazen', 446*d5ef99ddSAndreas Gohr 'DAS' => 'DASS', 447*d5ef99ddSAndreas Gohr 'DAW' => 'Dawlance', 448*d5ef99ddSAndreas Gohr 'DB' => 'Dbtel', 449*d5ef99ddSAndreas Gohr 'DBP' => 'DbPhone', 450*d5ef99ddSAndreas Gohr 'DCO' => 'Dcode', 451*d5ef99ddSAndreas Gohr 'DL' => 'Dell', 452*d5ef99ddSAndreas Gohr 'DL0' => 'DL', 453*d5ef99ddSAndreas Gohr 'DE' => 'Denver', 454*d5ef99ddSAndreas Gohr 'DS' => 'Desay', 455*d5ef99ddSAndreas Gohr 'DSD' => 'DSDevices', 456*d5ef99ddSAndreas Gohr 'DSI' => 'DSIC', 457*d5ef99ddSAndreas Gohr 'DW' => 'DeWalt', 458*d5ef99ddSAndreas Gohr 'DX' => 'DEXP', 459*d5ef99ddSAndreas Gohr 'DEY' => 'DEYI', 460*d5ef99ddSAndreas Gohr 'DEN' => 'Denali', 461*d5ef99ddSAndreas Gohr 'DEA' => 'DEALDIG', 462*d5ef99ddSAndreas Gohr 'DNK' => 'Denka', 463*d5ef99ddSAndreas Gohr '8D' => 'DF', 464*d5ef99ddSAndreas Gohr 'DGT' => 'DGTEC', 465*d5ef99ddSAndreas Gohr 'DG' => 'Dialog', 466*d5ef99ddSAndreas Gohr 'DIA' => 'DIALN', 467*d5ef99ddSAndreas Gohr 'DI' => 'Dicam', 468*d5ef99ddSAndreas Gohr 'D4' => 'Digi', 469*d5ef99ddSAndreas Gohr 'D3' => 'Digicel', 470*d5ef99ddSAndreas Gohr 'DDG' => 'Digidragon', 471*d5ef99ddSAndreas Gohr 'DH' => 'Digihome', 472*d5ef99ddSAndreas Gohr 'DD' => 'Digiland', 473*d5ef99ddSAndreas Gohr 'DIJ' => 'DIJITSU', 474*d5ef99ddSAndreas Gohr 'DIG' => 'Digit4G', 475*d5ef99ddSAndreas Gohr 'DIC' => 'DIGICOM', 476*d5ef99ddSAndreas Gohr 'Q0' => 'DIGIFORS', 477*d5ef99ddSAndreas Gohr 'DIK' => 'DIKOM', 478*d5ef99ddSAndreas Gohr 'DQ' => 'DISH', 479*d5ef99ddSAndreas Gohr 'DIS' => 'Disney', 480*d5ef99ddSAndreas Gohr '9D' => 'Ditecma', 481*d5ef99ddSAndreas Gohr 'D2' => 'Digma', 482*d5ef99ddSAndreas Gohr '1D' => 'Diva', 483*d5ef99ddSAndreas Gohr 'DIV' => 'DiverMax', 484*d5ef99ddSAndreas Gohr 'D6' => 'Divisat', 485*d5ef99ddSAndreas Gohr 'DIO' => 'DIORA', 486*d5ef99ddSAndreas Gohr 'DIF' => 'Diofox', 487*d5ef99ddSAndreas Gohr 'X6' => 'DIXON', 488*d5ef99ddSAndreas Gohr 'DIM' => 'DIMO', 489*d5ef99ddSAndreas Gohr '5D' => 'DING DING', 490*d5ef99ddSAndreas Gohr 'DIN' => 'Dinax', 491*d5ef99ddSAndreas Gohr 'DNA' => 'Dinalink', 492*d5ef99ddSAndreas Gohr 'DM' => 'DMM', 493*d5ef99ddSAndreas Gohr 'DMO' => 'DMOAO', 494*d5ef99ddSAndreas Gohr 'DN' => 'DNS', 495*d5ef99ddSAndreas Gohr 'DC' => 'DoCoMo', 496*d5ef99ddSAndreas Gohr 'DF' => 'Doffler', 497*d5ef99ddSAndreas Gohr 'D9' => 'Dolamee', 498*d5ef99ddSAndreas Gohr 'DO' => 'Doogee', 499*d5ef99ddSAndreas Gohr 'D0' => 'Doopro', 500*d5ef99ddSAndreas Gohr 'DV' => 'Doov', 501*d5ef99ddSAndreas Gohr 'DOM' => 'Dom.ru', 502*d5ef99ddSAndreas Gohr 'DP' => 'Dopod', 503*d5ef99ddSAndreas Gohr 'DPA' => 'DPA', 504*d5ef99ddSAndreas Gohr 'JQ' => 'Doppio', 505*d5ef99ddSAndreas Gohr 'DR' => 'Doro', 506*d5ef99ddSAndreas Gohr 'DOR' => 'Dora', 507*d5ef99ddSAndreas Gohr 'ZD' => 'DORLAND', 508*d5ef99ddSAndreas Gohr 'DRO' => 'Droidlogic', 509*d5ef99ddSAndreas Gohr 'D8' => 'Droxio', 510*d5ef99ddSAndreas Gohr 'DJ' => 'Dragon Touch', 511*d5ef99ddSAndreas Gohr 'DRA' => 'DRAGON', 512*d5ef99ddSAndreas Gohr 'DY' => 'Dreamgate', 513*d5ef99ddSAndreas Gohr 'DRE' => 'DreamTab', 514*d5ef99ddSAndreas Gohr 'DR1' => 'DreamStar', 515*d5ef99ddSAndreas Gohr 'DTA' => 'Dtac', 516*d5ef99ddSAndreas Gohr 'DU' => 'Dune HD', 517*d5ef99ddSAndreas Gohr 'DUO' => 'DuoTV', 518*d5ef99ddSAndreas Gohr 'UD' => 'DUNNS Mobile', 519*d5ef99ddSAndreas Gohr 'DUU' => 'Duubee', 520*d5ef99ddSAndreas Gohr 'DUR' => 'Durabook', 521*d5ef99ddSAndreas Gohr 'DUD' => 'DUDU AUTO', 522*d5ef99ddSAndreas Gohr 'DYO' => 'Dyon', 523*d5ef99ddSAndreas Gohr 'DYM' => 'Dykemann', 524*d5ef99ddSAndreas Gohr 'DTE' => 'D-Tech', 525*d5ef99ddSAndreas Gohr 'DLI' => 'D-Link', 526*d5ef99ddSAndreas Gohr 'ENO' => 'eNOVA', 527*d5ef99ddSAndreas Gohr 'IN2' => 'iNOVA', 528*d5ef99ddSAndreas Gohr 'IN3' => 'inovo', 529*d5ef99ddSAndreas Gohr 'INH' => 'Inhon', 530*d5ef99ddSAndreas Gohr 'IND' => 'Indurama', 531*d5ef99ddSAndreas Gohr 'EB' => 'E-Boda', 532*d5ef99ddSAndreas Gohr 'EJ' => 'Engel', 533*d5ef99ddSAndreas Gohr 'ENA' => 'ENACOM', 534*d5ef99ddSAndreas Gohr 'END' => 'ENDURO', 535*d5ef99ddSAndreas Gohr 'ENI' => 'ENIE', 536*d5ef99ddSAndreas Gohr '2E' => 'E-Ceros', 537*d5ef99ddSAndreas Gohr 'E8' => 'E-tel', 538*d5ef99ddSAndreas Gohr 'ETH' => 'E-TACHI', 539*d5ef99ddSAndreas Gohr 'EAS' => 'EAS Electric', 540*d5ef99ddSAndreas Gohr 'EP' => 'Easypix', 541*d5ef99ddSAndreas Gohr 'EQ' => 'Eagle', 542*d5ef99ddSAndreas Gohr 'EGS' => 'EagleSoar', 543*d5ef99ddSAndreas Gohr 'EA' => 'EBEST', 544*d5ef99ddSAndreas Gohr 'YC' => 'EBEN', 545*d5ef99ddSAndreas Gohr 'E4' => 'Echo Mobiles', 546*d5ef99ddSAndreas Gohr 'EQ1' => 'Equator', 547*d5ef99ddSAndreas Gohr 'ES' => 'ECS', 548*d5ef99ddSAndreas Gohr '35' => 'ECON', 549*d5ef99ddSAndreas Gohr 'ECC' => 'ECOO', 550*d5ef99ddSAndreas Gohr 'ZZ' => 'ecom', 551*d5ef99ddSAndreas Gohr 'ECS' => 'EcoStar', 552*d5ef99ddSAndreas Gohr 'EDE' => 'Edenwood', 553*d5ef99ddSAndreas Gohr 'E6' => 'EE', 554*d5ef99ddSAndreas Gohr 'GW' => 'EGL', 555*d5ef99ddSAndreas Gohr 'EGO' => 'EGOTEK', 556*d5ef99ddSAndreas Gohr 'EFT' => 'EFT', 557*d5ef99ddSAndreas Gohr 'EK' => 'EKO', 558*d5ef99ddSAndreas Gohr 'EY' => 'Einstein', 559*d5ef99ddSAndreas Gohr 'EM' => 'Eks Mobility', 560*d5ef99ddSAndreas Gohr 'UE' => 'Ematic', 561*d5ef99ddSAndreas Gohr 'EMR' => 'Emporia', 562*d5ef99ddSAndreas Gohr '4K' => 'EKT', 563*d5ef99ddSAndreas Gohr 'EKI' => 'EKINOX', 564*d5ef99ddSAndreas Gohr '7E' => 'ELARI', 565*d5ef99ddSAndreas Gohr '03' => 'Electroneum', 566*d5ef99ddSAndreas Gohr 'Z8' => 'ELECTRONIA', 567*d5ef99ddSAndreas Gohr 'ELG' => 'ELE-GATE', 568*d5ef99ddSAndreas Gohr 'EL1' => 'Elecson', 569*d5ef99ddSAndreas Gohr 'ELK' => 'Elektroland', 570*d5ef99ddSAndreas Gohr 'L0' => 'Element', 571*d5ef99ddSAndreas Gohr 'EG' => 'Elenberg', 572*d5ef99ddSAndreas Gohr 'EL' => 'Elephone', 573*d5ef99ddSAndreas Gohr 'JE' => 'Elekta', 574*d5ef99ddSAndreas Gohr 'ELE' => 'Elevate', 575*d5ef99ddSAndreas Gohr 'ELS' => 'Elista', 576*d5ef99ddSAndreas Gohr 'ELT' => 'elit', 577*d5ef99ddSAndreas Gohr '4E' => 'Eltex', 578*d5ef99ddSAndreas Gohr 'ELM' => 'Elong Mobile', 579*d5ef99ddSAndreas Gohr 'ED' => 'Energizer', 580*d5ef99ddSAndreas Gohr 'E1' => 'Energy Sistem', 581*d5ef99ddSAndreas Gohr '3E' => 'Enot', 582*d5ef99ddSAndreas Gohr 'ENT' => 'Entity', 583*d5ef99ddSAndreas Gohr 'ENV' => 'Envizen', 584*d5ef99ddSAndreas Gohr '8E' => 'Epik One', 585*d5ef99ddSAndreas Gohr 'EPK' => 'Epic', 586*d5ef99ddSAndreas Gohr 'XP' => 'Epson', 587*d5ef99ddSAndreas Gohr 'EPH' => 'Ephone', 588*d5ef99ddSAndreas Gohr 'E7' => 'Ergo', 589*d5ef99ddSAndreas Gohr 'EC' => 'Ericsson', 590*d5ef99ddSAndreas Gohr '05' => 'Erisson', 591*d5ef99ddSAndreas Gohr 'ER' => 'Ericy', 592*d5ef99ddSAndreas Gohr 'EE' => 'Essential', 593*d5ef99ddSAndreas Gohr 'E2' => 'Essentielb', 594*d5ef99ddSAndreas Gohr '6E' => 'eSTAR', 595*d5ef99ddSAndreas Gohr 'ETO' => 'ETOE', 596*d5ef99ddSAndreas Gohr 'EN' => 'Eton', 597*d5ef99ddSAndreas Gohr 'ET' => 'eTouch', 598*d5ef99ddSAndreas Gohr '1E' => 'Etuline', 599*d5ef99ddSAndreas Gohr 'EHL' => 'Ehlel', 600*d5ef99ddSAndreas Gohr 'EU' => 'Eurostar', 601*d5ef99ddSAndreas Gohr '4J' => 'Eurocase', 602*d5ef99ddSAndreas Gohr 'EUR' => 'EUROLUX', 603*d5ef99ddSAndreas Gohr 'EUD' => 'Eudora', 604*d5ef99ddSAndreas Gohr 'E9' => 'Evercoss', 605*d5ef99ddSAndreas Gohr 'EV' => 'Evertek', 606*d5ef99ddSAndreas Gohr 'EVE' => 'Everest', 607*d5ef99ddSAndreas Gohr 'EV1' => 'Everex', 608*d5ef99ddSAndreas Gohr 'EVR' => 'Everis', 609*d5ef99ddSAndreas Gohr 'EVF' => 'Everfine', 610*d5ef99ddSAndreas Gohr 'E3' => 'Evolio', 611*d5ef99ddSAndreas Gohr 'EO' => 'Evolveo', 612*d5ef99ddSAndreas Gohr '0Q' => 'Evoo', 613*d5ef99ddSAndreas Gohr '5U' => 'EVPAD', 614*d5ef99ddSAndreas Gohr 'EVV' => 'evvoli', 615*d5ef99ddSAndreas Gohr 'E0' => 'EvroMedia', 616*d5ef99ddSAndreas Gohr 'XE' => 'ExMobile', 617*d5ef99ddSAndreas Gohr '4Z' => 'Exmart', 618*d5ef99ddSAndreas Gohr 'EH' => 'EXO', 619*d5ef99ddSAndreas Gohr 'EX' => 'Explay', 620*d5ef99ddSAndreas Gohr 'EXP' => 'Express LUCK', 621*d5ef99ddSAndreas Gohr 'E5' => 'Extrem', 622*d5ef99ddSAndreas Gohr 'EXL' => 'ExtraLink', 623*d5ef99ddSAndreas Gohr 'EF' => 'EXCEED', 624*d5ef99ddSAndreas Gohr 'QE' => 'EWIS', 625*d5ef99ddSAndreas Gohr 'EI' => 'Ezio', 626*d5ef99ddSAndreas Gohr 'EZ' => 'Ezze', 627*d5ef99ddSAndreas Gohr 'UF' => 'EYU', 628*d5ef99ddSAndreas Gohr 'EYE' => 'Eyemoo', 629*d5ef99ddSAndreas Gohr 'UE1' => 'UE', 630*d5ef99ddSAndreas Gohr '5F' => 'F150', 631*d5ef99ddSAndreas Gohr 'FPS' => 'F+', 632*d5ef99ddSAndreas Gohr 'F6' => 'Facebook', 633*d5ef99ddSAndreas Gohr 'FAC' => 'Facetel', 634*d5ef99ddSAndreas Gohr 'FA1' => 'Facime', 635*d5ef99ddSAndreas Gohr 'FA' => 'Fairphone', 636*d5ef99ddSAndreas Gohr 'FM' => 'Famoco', 637*d5ef99ddSAndreas Gohr 'FAM' => 'Famous', 638*d5ef99ddSAndreas Gohr '17' => 'FarEasTone', 639*d5ef99ddSAndreas Gohr '9R' => 'FaRao Pro', 640*d5ef99ddSAndreas Gohr 'FAR' => 'Farassoo', 641*d5ef99ddSAndreas Gohr 'FB' => 'Fantec', 642*d5ef99ddSAndreas Gohr 'FE' => 'Fengxiang', 643*d5ef99ddSAndreas Gohr 'FEN' => 'Fenoti', 644*d5ef99ddSAndreas Gohr 'F7' => 'Fero', 645*d5ef99ddSAndreas Gohr '67' => 'FEONAL', 646*d5ef99ddSAndreas Gohr 'FI' => 'FiGO', 647*d5ef99ddSAndreas Gohr 'J9' => 'FiGi', 648*d5ef99ddSAndreas Gohr 'FIG' => 'Figgers', 649*d5ef99ddSAndreas Gohr 'F9' => 'FiiO', 650*d5ef99ddSAndreas Gohr 'F1' => 'FinePower', 651*d5ef99ddSAndreas Gohr 'FX' => 'Finlux', 652*d5ef99ddSAndreas Gohr 'F3' => 'FireFly Mobile', 653*d5ef99ddSAndreas Gohr 'F8' => 'FISE', 654*d5ef99ddSAndreas Gohr 'FIS' => 'Fision', 655*d5ef99ddSAndreas Gohr 'FIT' => 'FITCO', 656*d5ef99ddSAndreas Gohr 'FLM' => 'Filimo', 657*d5ef99ddSAndreas Gohr 'FIL' => 'FILIX', 658*d5ef99ddSAndreas Gohr 'FIN' => 'FINIX', 659*d5ef99ddSAndreas Gohr 'FL' => 'Fly', 660*d5ef99ddSAndreas Gohr 'QC' => 'FLYCAT', 661*d5ef99ddSAndreas Gohr 'FLY' => 'FLYCOAY', 662*d5ef99ddSAndreas Gohr 'FLU' => 'Fluo', 663*d5ef99ddSAndreas Gohr 'FN' => 'FNB', 664*d5ef99ddSAndreas Gohr 'FOB' => 'Fobem', 665*d5ef99ddSAndreas Gohr 'FD' => 'Fondi', 666*d5ef99ddSAndreas Gohr '0F' => 'Fourel', 667*d5ef99ddSAndreas Gohr '44' => 'Four Mobile', 668*d5ef99ddSAndreas Gohr 'F0' => 'Fonos', 669*d5ef99ddSAndreas Gohr 'F0N' => 'FONTEL', 670*d5ef99ddSAndreas Gohr 'F2' => 'FORME', 671*d5ef99ddSAndreas Gohr 'FRM' => 'Formovie', 672*d5ef99ddSAndreas Gohr 'F5' => 'Formuler', 673*d5ef99ddSAndreas Gohr 'FR' => 'Forstar', 674*d5ef99ddSAndreas Gohr 'RF' => 'Fortis', 675*d5ef99ddSAndreas Gohr 'FRT' => 'FortuneShip', 676*d5ef99ddSAndreas Gohr 'FO' => 'Foxconn', 677*d5ef99ddSAndreas Gohr 'FOD' => 'FoxxD', 678*d5ef99ddSAndreas Gohr 'FJ' => 'FOODO', 679*d5ef99ddSAndreas Gohr 'FOS' => 'FOSSiBOT', 680*d5ef99ddSAndreas Gohr 'FRE' => 'free', 681*d5ef99ddSAndreas Gohr 'FT' => 'Freetel', 682*d5ef99ddSAndreas Gohr 'FTH' => 'FRESH', 683*d5ef99ddSAndreas Gohr 'FEY' => 'FreeYond', 684*d5ef99ddSAndreas Gohr 'FRU' => 'Frunsi', 685*d5ef99ddSAndreas Gohr 'F4' => 'F&U', 686*d5ef99ddSAndreas Gohr '1F' => 'FMT', 687*d5ef99ddSAndreas Gohr 'FPT' => 'FPT', 688*d5ef99ddSAndreas Gohr 'FG' => 'Fuego', 689*d5ef99ddSAndreas Gohr 'FUJ' => 'FUJICOM', 690*d5ef99ddSAndreas Gohr 'FU' => 'Fujitsu', 691*d5ef99ddSAndreas Gohr '4F' => 'Funai', 692*d5ef99ddSAndreas Gohr '5J' => 'Fusion5', 693*d5ef99ddSAndreas Gohr 'FF' => 'Future Mobile Technology', 694*d5ef99ddSAndreas Gohr 'FFF' => 'FFF SmartLife', 695*d5ef99ddSAndreas Gohr 'FW' => 'FNF', 696*d5ef99ddSAndreas Gohr 'FXT' => 'Fxtec', 697*d5ef99ddSAndreas Gohr 'GT' => 'G-TiDE', 698*d5ef99ddSAndreas Gohr 'G9' => 'G-Touch', 699*d5ef99ddSAndreas Gohr 'GFO' => 'Gfone', 700*d5ef99ddSAndreas Gohr 'GTM' => 'GTMEDIA', 701*d5ef99ddSAndreas Gohr 'GTX' => 'GTX', 702*d5ef99ddSAndreas Gohr 'GDL' => 'GDL', 703*d5ef99ddSAndreas Gohr '0G' => 'GFive', 704*d5ef99ddSAndreas Gohr 'GM' => 'Garmin-Asus', 705*d5ef99ddSAndreas Gohr 'GA' => 'Gateway', 706*d5ef99ddSAndreas Gohr '99' => 'Galaxy Innovations', 707*d5ef99ddSAndreas Gohr 'GA1' => 'Galactic', 708*d5ef99ddSAndreas Gohr 'GAT' => 'Galatec', 709*d5ef99ddSAndreas Gohr 'GAM' => 'Gamma', 710*d5ef99ddSAndreas Gohr 'GAZ' => 'Gazer', 711*d5ef99ddSAndreas Gohr 'GAL' => 'Gazal', 712*d5ef99ddSAndreas Gohr 'GEA' => 'Geanee', 713*d5ef99ddSAndreas Gohr 'GEN' => 'Geant', 714*d5ef99ddSAndreas Gohr 'GD' => 'Gemini', 715*d5ef99ddSAndreas Gohr 'GN' => 'General Mobile', 716*d5ef99ddSAndreas Gohr '2G' => 'Genesis', 717*d5ef99ddSAndreas Gohr 'GEP' => 'Geo Phone', 718*d5ef99ddSAndreas Gohr 'G2' => 'GEOFOX', 719*d5ef99ddSAndreas Gohr 'GE' => 'Geotel', 720*d5ef99ddSAndreas Gohr 'Q4' => 'Geotex', 721*d5ef99ddSAndreas Gohr 'GEO' => 'GEOZON', 722*d5ef99ddSAndreas Gohr 'GNO' => 'Getnord', 723*d5ef99ddSAndreas Gohr 'GER' => 'Gear Mobile', 724*d5ef99ddSAndreas Gohr 'GH' => 'Ghia', 725*d5ef99ddSAndreas Gohr '2C' => 'Ghong', 726*d5ef99ddSAndreas Gohr 'GJ' => 'Ghost', 727*d5ef99ddSAndreas Gohr 'GG' => 'Gigabyte', 728*d5ef99ddSAndreas Gohr 'GS' => 'Gigaset', 729*d5ef99ddSAndreas Gohr 'GZ' => 'Ginzzu', 730*d5ef99ddSAndreas Gohr '1G' => 'Gini', 731*d5ef99ddSAndreas Gohr 'GI' => 'Gionee', 732*d5ef99ddSAndreas Gohr 'GIR' => 'GIRASOLE', 733*d5ef99ddSAndreas Gohr 'G4' => 'Globex', 734*d5ef99ddSAndreas Gohr 'GLB' => 'Globmall', 735*d5ef99ddSAndreas Gohr 'GME' => 'GlocalMe', 736*d5ef99ddSAndreas Gohr '38' => 'GLONYX', 737*d5ef99ddSAndreas Gohr 'U6' => 'Glofiish', 738*d5ef99ddSAndreas Gohr 'GLO' => 'Glory Star', 739*d5ef99ddSAndreas Gohr 'GNE' => 'GN Electronics', 740*d5ef99ddSAndreas Gohr 'G7' => 'GoGEN', 741*d5ef99ddSAndreas Gohr 'GC' => 'GOCLEVER', 742*d5ef99ddSAndreas Gohr '5G' => 'Gocomma', 743*d5ef99ddSAndreas Gohr 'GB' => 'Gol Mobile', 744*d5ef99ddSAndreas Gohr 'GL' => 'Goly', 745*d5ef99ddSAndreas Gohr 'GOL' => 'GoldMaster', 746*d5ef99ddSAndreas Gohr 'GOS' => 'GoldStar', 747*d5ef99ddSAndreas Gohr 'GOB' => 'GOLDBERG', 748*d5ef99ddSAndreas Gohr 'GX' => 'GLX', 749*d5ef99ddSAndreas Gohr 'G5' => 'Gome', 750*d5ef99ddSAndreas Gohr 'G1' => 'GoMobile', 751*d5ef99ddSAndreas Gohr 'GO' => 'Google', 752*d5ef99ddSAndreas Gohr 'G0' => 'Goophone', 753*d5ef99ddSAndreas Gohr '6G' => 'Gooweel', 754*d5ef99ddSAndreas Gohr 'GOO' => 'GOODTEL', 755*d5ef99ddSAndreas Gohr 'GO1' => 'GOtv', 756*d5ef99ddSAndreas Gohr 'GPL' => 'G-PLUS', 757*d5ef99ddSAndreas Gohr '8G' => 'Gplus', 758*d5ef99ddSAndreas Gohr 'GR' => 'Gradiente', 759*d5ef99ddSAndreas Gohr 'GRE' => 'Graetz', 760*d5ef99ddSAndreas Gohr 'GP' => 'Grape', 761*d5ef99ddSAndreas Gohr 'G6' => 'Gree', 762*d5ef99ddSAndreas Gohr 'GRA' => 'Great Asia', 763*d5ef99ddSAndreas Gohr '3G' => 'Greentel', 764*d5ef99ddSAndreas Gohr 'GRO' => 'Green Orange', 765*d5ef99ddSAndreas Gohr 'GRL' => 'Green Lion', 766*d5ef99ddSAndreas Gohr 'GR1' => 'GroBerwert', 767*d5ef99ddSAndreas Gohr 'GF' => 'Gretel', 768*d5ef99ddSAndreas Gohr '82' => 'Gresso', 769*d5ef99ddSAndreas Gohr 'GRB' => 'Grünberg', 770*d5ef99ddSAndreas Gohr 'GU' => 'Grundig', 771*d5ef99ddSAndreas Gohr 'GV' => 'Gtel', 772*d5ef99ddSAndreas Gohr 'CUO' => 'Guophone', 773*d5ef99ddSAndreas Gohr 'CUD' => 'CUD', 774*d5ef99ddSAndreas Gohr 'GVC' => 'GVC Pro', 775*d5ef99ddSAndreas Gohr 'H13' => 'H133', 776*d5ef99ddSAndreas Gohr '9Z' => 'H96', 777*d5ef99ddSAndreas Gohr 'HF' => 'Hafury', 778*d5ef99ddSAndreas Gohr '9F' => 'HAOVM', 779*d5ef99ddSAndreas Gohr 'HAQ' => 'HAOQIN', 780*d5ef99ddSAndreas Gohr 'HA' => 'Haier', 781*d5ef99ddSAndreas Gohr 'HEC' => 'HEC', 782*d5ef99ddSAndreas Gohr 'XH' => 'Haipai', 783*d5ef99ddSAndreas Gohr 'XHU' => 'Haixu', 784*d5ef99ddSAndreas Gohr 'HAN' => 'Handheld', 785*d5ef99ddSAndreas Gohr 'HE' => 'HannSpree', 786*d5ef99ddSAndreas Gohr 'HNS' => 'Hanseatic', 787*d5ef99ddSAndreas Gohr 'HA2' => 'Hanson', 788*d5ef99ddSAndreas Gohr 'HK' => 'Hardkernel', 789*d5ef99ddSAndreas Gohr 'HAR' => 'Harper', 790*d5ef99ddSAndreas Gohr 'HA1' => 'Hartens', 791*d5ef99ddSAndreas Gohr 'HS' => 'Hasee', 792*d5ef99ddSAndreas Gohr '8H' => 'Hamlet', 793*d5ef99ddSAndreas Gohr 'HAM' => 'Hammer', 794*d5ef99ddSAndreas Gohr 'HAT' => 'Hathway', 795*d5ef99ddSAndreas Gohr 'HAV' => 'HAVIT', 796*d5ef99ddSAndreas Gohr 'HEM' => 'Hemilton', 797*d5ef99ddSAndreas Gohr 'H6' => 'Helio', 798*d5ef99ddSAndreas Gohr 'HQ' => 'HERO', 799*d5ef99ddSAndreas Gohr 'ZH' => 'Hezire', 800*d5ef99ddSAndreas Gohr 'HEX' => 'HexaByte', 801*d5ef99ddSAndreas Gohr 'HEW' => 'HeadWolf', 802*d5ef99ddSAndreas Gohr 'HEI' => 'Heimat', 803*d5ef99ddSAndreas Gohr 'HL' => 'Hi-Level', 804*d5ef99ddSAndreas Gohr '3H' => 'Hi', 805*d5ef99ddSAndreas Gohr 'HIB' => 'Hiberg', 806*d5ef99ddSAndreas Gohr 'HBY' => 'HiBy', 807*d5ef99ddSAndreas Gohr 'HIH' => 'HiHi', 808*d5ef99ddSAndreas Gohr 'HIK' => 'HiKing', 809*d5ef99ddSAndreas Gohr 'H2' => 'Highscreen', 810*d5ef99ddSAndreas Gohr 'Q1' => 'High Q', 811*d5ef99ddSAndreas Gohr 'HI1' => 'HIGH1ONE', 812*d5ef99ddSAndreas Gohr 'HIG' => 'HiGrace', 813*d5ef99ddSAndreas Gohr '1H' => 'Hipstreet', 814*d5ef99ddSAndreas Gohr 'HIR' => 'Hiremco', 815*d5ef99ddSAndreas Gohr 'HI' => 'Hisense', 816*d5ef99ddSAndreas Gohr 'HIP' => 'HIPER', 817*d5ef99ddSAndreas Gohr 'HC' => 'Hitachi', 818*d5ef99ddSAndreas Gohr 'H8' => 'Hitech', 819*d5ef99ddSAndreas Gohr 'W3' => 'HiMax', 820*d5ef99ddSAndreas Gohr '8X' => 'Hi Nova', 821*d5ef99ddSAndreas Gohr 'HLL' => 'HLLO', 822*d5ef99ddSAndreas Gohr 'HKC' => 'HKC', 823*d5ef99ddSAndreas Gohr 'HMD' => 'HMD', 824*d5ef99ddSAndreas Gohr '8W' => 'HKPro', 825*d5ef99ddSAndreas Gohr 'HOF' => 'HOFER', 826*d5ef99ddSAndreas Gohr 'HOC' => 'hoco', 827*d5ef99ddSAndreas Gohr 'H1' => 'Hoffmann', 828*d5ef99ddSAndreas Gohr 'HOM' => 'Homatics', 829*d5ef99ddSAndreas Gohr 'H0' => 'Hometech', 830*d5ef99ddSAndreas Gohr 'HLB' => 'HOLLEBERG', 831*d5ef99ddSAndreas Gohr 'HM' => 'Homtom', 832*d5ef99ddSAndreas Gohr 'HM1' => 'HOMII', 833*d5ef99ddSAndreas Gohr 'HOP' => 'Hopeland', 834*d5ef99ddSAndreas Gohr 'HZ' => 'Hoozo', 835*d5ef99ddSAndreas Gohr 'HOR' => 'Horion', 836*d5ef99ddSAndreas Gohr 'H7' => 'Horizon', 837*d5ef99ddSAndreas Gohr '4H' => 'Horizont', 838*d5ef99ddSAndreas Gohr 'HO' => 'Hosin', 839*d5ef99ddSAndreas Gohr 'H3' => 'Hotel', 840*d5ef99ddSAndreas Gohr 'HV' => 'Hotwav', 841*d5ef99ddSAndreas Gohr 'U8' => 'Hot Pepper', 842*d5ef99ddSAndreas Gohr 'HOT' => 'HOTACK', 843*d5ef99ddSAndreas Gohr 'JH' => 'HOTREALS', 844*d5ef99ddSAndreas Gohr 'HW' => 'How', 845*d5ef99ddSAndreas Gohr 'WH' => 'Honeywell', 846*d5ef99ddSAndreas Gohr 'HON' => 'HongTop', 847*d5ef99ddSAndreas Gohr 'HOG' => 'HONKUAHG', 848*d5ef99ddSAndreas Gohr 'HP' => 'HP', 849*d5ef99ddSAndreas Gohr 'HDC' => 'HDC', 850*d5ef99ddSAndreas Gohr 'HT' => 'HTC', 851*d5ef99ddSAndreas Gohr 'QZ' => 'Huagan', 852*d5ef99ddSAndreas Gohr 'HD' => 'Huadoo', 853*d5ef99ddSAndreas Gohr 'HG' => 'Huavi', 854*d5ef99ddSAndreas Gohr 'HU' => 'Huawei', 855*d5ef99ddSAndreas Gohr 'HX' => 'Humax', 856*d5ef99ddSAndreas Gohr 'HUM' => 'Humanware', 857*d5ef99ddSAndreas Gohr 'HME' => 'HUMElab', 858*d5ef99ddSAndreas Gohr 'HR' => 'Hurricane', 859*d5ef99ddSAndreas Gohr 'H5' => 'Huskee', 860*d5ef99ddSAndreas Gohr 'HUG' => 'Hugerock', 861*d5ef99ddSAndreas Gohr 'HY' => 'Hyrican', 862*d5ef99ddSAndreas Gohr 'HN' => 'Hyundai', 863*d5ef99ddSAndreas Gohr '7H' => 'Hyve', 864*d5ef99ddSAndreas Gohr 'HYT' => 'Hytera', 865*d5ef99ddSAndreas Gohr 'HYK' => 'Hykker', 866*d5ef99ddSAndreas Gohr 'HYA' => 'Hyatta', 867*d5ef99ddSAndreas Gohr 'IKL' => 'I KALL', 868*d5ef99ddSAndreas Gohr '3I' => 'i-Cherry', 869*d5ef99ddSAndreas Gohr 'IJ' => 'i-Joy', 870*d5ef99ddSAndreas Gohr 'IM' => 'i-mate', 871*d5ef99ddSAndreas Gohr 'IO' => 'i-mobile', 872*d5ef99ddSAndreas Gohr 'INN' => 'I-INN', 873*d5ef99ddSAndreas Gohr 'IPL' => 'I-Plus', 874*d5ef99ddSAndreas Gohr 'OF' => 'iOutdoor', 875*d5ef99ddSAndreas Gohr 'IB' => 'iBall', 876*d5ef99ddSAndreas Gohr 'IY' => 'iBerry', 877*d5ef99ddSAndreas Gohr '7I' => 'iBrit', 878*d5ef99ddSAndreas Gohr 'IBO' => 'ibowin', 879*d5ef99ddSAndreas Gohr 'I2' => 'IconBIT', 880*d5ef99ddSAndreas Gohr 'ING' => 'Icone Gold', 881*d5ef99ddSAndreas Gohr 'IC' => 'iDroid', 882*d5ef99ddSAndreas Gohr 'IDI' => 'iDino', 883*d5ef99ddSAndreas Gohr '6Z' => 'iData', 884*d5ef99ddSAndreas Gohr 'IDC' => 'IDC', 885*d5ef99ddSAndreas Gohr 'IG' => 'iGet', 886*d5ef99ddSAndreas Gohr 'IHL' => 'iHome Life', 887*d5ef99ddSAndreas Gohr 'IH' => 'iHunt', 888*d5ef99ddSAndreas Gohr 'IA' => 'Ikea', 889*d5ef99ddSAndreas Gohr 'IYO' => 'iYou', 890*d5ef99ddSAndreas Gohr '8I' => 'IKU Mobile', 891*d5ef99ddSAndreas Gohr '2K' => 'IKI Mobile', 892*d5ef99ddSAndreas Gohr 'IK' => 'iKoMo', 893*d5ef99ddSAndreas Gohr '58' => 'iKon', 894*d5ef99ddSAndreas Gohr '588' => 'iKonia', 895*d5ef99ddSAndreas Gohr 'I7' => 'iLA', 896*d5ef99ddSAndreas Gohr '2I' => 'iLife', 897*d5ef99ddSAndreas Gohr '1I' => 'iMars', 898*d5ef99ddSAndreas Gohr 'IMI' => 'iMI', 899*d5ef99ddSAndreas Gohr 'U4' => 'iMan', 900*d5ef99ddSAndreas Gohr 'ILE' => 'iLepo', 901*d5ef99ddSAndreas Gohr 'IL' => 'IMO Mobile', 902*d5ef99ddSAndreas Gohr 'IMA' => 'Imaq', 903*d5ef99ddSAndreas Gohr 'IM1' => 'Imose', 904*d5ef99ddSAndreas Gohr 'I3' => 'Impression', 905*d5ef99ddSAndreas Gohr 'FC' => 'INCAR', 906*d5ef99ddSAndreas Gohr '2H' => 'Inch', 907*d5ef99ddSAndreas Gohr '6I' => 'Inco', 908*d5ef99ddSAndreas Gohr 'INK' => 'Inka', 909*d5ef99ddSAndreas Gohr 'IW' => 'iNew', 910*d5ef99ddSAndreas Gohr 'IF' => 'Infinix', 911*d5ef99ddSAndreas Gohr 'INF' => 'Infiniton', 912*d5ef99ddSAndreas Gohr 'IPR' => 'InfinityPro', 913*d5ef99ddSAndreas Gohr 'I0' => 'InFocus', 914*d5ef99ddSAndreas Gohr 'IN1' => 'InFone', 915*d5ef99ddSAndreas Gohr 'II' => 'Inkti', 916*d5ef99ddSAndreas Gohr 'MIR' => 'Infomir', 917*d5ef99ddSAndreas Gohr '81' => 'InfoKit', 918*d5ef99ddSAndreas Gohr 'I5' => 'InnJoo', 919*d5ef99ddSAndreas Gohr '26' => 'Innos', 920*d5ef99ddSAndreas Gohr 'IN' => 'Innostream', 921*d5ef99ddSAndreas Gohr 'I4' => 'Inoi', 922*d5ef99ddSAndreas Gohr 'INO' => 'iNo Mobile', 923*d5ef99ddSAndreas Gohr 'IQ' => 'INQ', 924*d5ef99ddSAndreas Gohr 'QN' => 'iQ&T', 925*d5ef99ddSAndreas Gohr 'IS' => 'Insignia', 926*d5ef99ddSAndreas Gohr 'YI' => 'INSYS', 927*d5ef99ddSAndreas Gohr 'IT' => 'Intek', 928*d5ef99ddSAndreas Gohr 'INT' => 'Intel', 929*d5ef99ddSAndreas Gohr 'IX' => 'Intex', 930*d5ef99ddSAndreas Gohr 'IV' => 'Inverto', 931*d5ef99ddSAndreas Gohr '32' => 'Invens', 932*d5ef99ddSAndreas Gohr '4I' => 'Invin', 933*d5ef99ddSAndreas Gohr 'IFT' => 'iFIT', 934*d5ef99ddSAndreas Gohr 'INA' => 'iNavi', 935*d5ef99ddSAndreas Gohr 'I1' => 'iOcean', 936*d5ef99ddSAndreas Gohr 'IMU' => 'iMuz', 937*d5ef99ddSAndreas Gohr 'IP' => 'iPro', 938*d5ef99ddSAndreas Gohr 'X9' => 'iPEGTOP', 939*d5ef99ddSAndreas Gohr '8Q' => 'IQM', 940*d5ef99ddSAndreas Gohr 'Q8' => 'IRA', 941*d5ef99ddSAndreas Gohr 'I6' => 'Irbis', 942*d5ef99ddSAndreas Gohr '5I' => 'Iris', 943*d5ef99ddSAndreas Gohr 'IRE' => 'iReplace', 944*d5ef99ddSAndreas Gohr 'IR' => 'iRola', 945*d5ef99ddSAndreas Gohr 'IU' => 'iRulu', 946*d5ef99ddSAndreas Gohr 'IRO' => 'iRobot', 947*d5ef99ddSAndreas Gohr '9I' => 'iSWAG', 948*d5ef99ddSAndreas Gohr '9J' => 'iSafe Mobile', 949*d5ef99ddSAndreas Gohr 'IST' => 'iStar', 950*d5ef99ddSAndreas Gohr '86' => 'IT', 951*d5ef99ddSAndreas Gohr 'IZ' => 'iTel', 952*d5ef99ddSAndreas Gohr '0I' => 'iTruck', 953*d5ef99ddSAndreas Gohr 'I8' => 'iVA', 954*d5ef99ddSAndreas Gohr 'IE' => 'iView', 955*d5ef99ddSAndreas Gohr '0J' => 'iVooMi', 956*d5ef99ddSAndreas Gohr 'UI' => 'ivvi', 957*d5ef99ddSAndreas Gohr 'QW' => 'iWaylink', 958*d5ef99ddSAndreas Gohr 'I9' => 'iZotron', 959*d5ef99ddSAndreas Gohr 'IXT' => 'iXTech', 960*d5ef99ddSAndreas Gohr 'IOT' => 'IOTWE', 961*d5ef99ddSAndreas Gohr 'JA' => 'JAY-Tech', 962*d5ef99ddSAndreas Gohr 'JAM' => 'Jambo', 963*d5ef99ddSAndreas Gohr 'KJ' => 'Jiake', 964*d5ef99ddSAndreas Gohr 'JD' => 'Jedi', 965*d5ef99ddSAndreas Gohr 'JEE' => 'Jeep', 966*d5ef99ddSAndreas Gohr 'J6' => 'Jeka', 967*d5ef99ddSAndreas Gohr 'JF' => 'JFone', 968*d5ef99ddSAndreas Gohr 'JI' => 'Jiayu', 969*d5ef99ddSAndreas Gohr 'JG' => 'Jinga', 970*d5ef99ddSAndreas Gohr 'JIN' => 'Jin Tu', 971*d5ef99ddSAndreas Gohr 'JX' => 'Jio', 972*d5ef99ddSAndreas Gohr 'VJ' => 'Jivi', 973*d5ef99ddSAndreas Gohr 'JK' => 'JKL', 974*d5ef99ddSAndreas Gohr 'JR1' => 'JREN', 975*d5ef99ddSAndreas Gohr 'JO' => 'Jolla', 976*d5ef99ddSAndreas Gohr 'JP' => 'Joy', 977*d5ef99ddSAndreas Gohr 'JOY' => 'JoySurf', 978*d5ef99ddSAndreas Gohr 'UJ' => 'Juniper Systems', 979*d5ef99ddSAndreas Gohr 'J5' => 'Just5', 980*d5ef99ddSAndreas Gohr 'JUS' => 'JUSYEA', 981*d5ef99ddSAndreas Gohr '7J' => 'Jumper', 982*d5ef99ddSAndreas Gohr 'JPA' => 'JPay', 983*d5ef99ddSAndreas Gohr 'JV' => 'JVC', 984*d5ef99ddSAndreas Gohr 'JXD' => 'JXD', 985*d5ef99ddSAndreas Gohr 'JS' => 'Jesy', 986*d5ef99ddSAndreas Gohr 'KT' => 'K-Touch', 987*d5ef99ddSAndreas Gohr 'KLT' => 'K-Lite', 988*d5ef99ddSAndreas Gohr 'K4' => 'Kaan', 989*d5ef99ddSAndreas Gohr 'K7' => 'Kaiomy', 990*d5ef99ddSAndreas Gohr 'KL' => 'Kalley', 991*d5ef99ddSAndreas Gohr 'K6' => 'Kanji', 992*d5ef99ddSAndreas Gohr 'KA' => 'Karbonn', 993*d5ef99ddSAndreas Gohr 'K5' => 'KATV1', 994*d5ef99ddSAndreas Gohr 'KAP' => 'Kapsys', 995*d5ef99ddSAndreas Gohr 'K0' => 'Kata', 996*d5ef99ddSAndreas Gohr 'KZ' => 'Kazam', 997*d5ef99ddSAndreas Gohr '9K' => 'Kazuna', 998*d5ef99ddSAndreas Gohr 'KD' => 'KDDI', 999*d5ef99ddSAndreas Gohr 'KHA' => 'Khadas', 1000*d5ef99ddSAndreas Gohr 'KS' => 'Kempler & Strauss', 1001*d5ef99ddSAndreas Gohr 'K3' => 'Keneksi', 1002*d5ef99ddSAndreas Gohr 'KHI' => 'KENSHI', 1003*d5ef99ddSAndreas Gohr 'KNW' => 'KENWOOD', 1004*d5ef99ddSAndreas Gohr 'KX' => 'Kenxinda', 1005*d5ef99ddSAndreas Gohr 'KEN' => 'Kenbo', 1006*d5ef99ddSAndreas Gohr 'KND' => 'Kendo', 1007*d5ef99ddSAndreas Gohr 'KZG' => 'KZG', 1008*d5ef99ddSAndreas Gohr 'K1' => 'Kiano', 1009*d5ef99ddSAndreas Gohr 'KID' => 'kidiby', 1010*d5ef99ddSAndreas Gohr '5W' => 'Kingbox', 1011*d5ef99ddSAndreas Gohr 'KI' => 'Kingsun', 1012*d5ef99ddSAndreas Gohr 'KIS' => 'Kinstone', 1013*d5ef99ddSAndreas Gohr 'KF' => 'KINGZONE', 1014*d5ef99ddSAndreas Gohr 'KIN' => 'Kingstar', 1015*d5ef99ddSAndreas Gohr '46' => 'Kiowa', 1016*d5ef99ddSAndreas Gohr 'KV' => 'Kivi', 1017*d5ef99ddSAndreas Gohr '64' => 'Kvant', 1018*d5ef99ddSAndreas Gohr 'KVA' => 'KVADRA', 1019*d5ef99ddSAndreas Gohr '0K' => 'Klipad', 1020*d5ef99ddSAndreas Gohr 'KNM' => 'KN Mobile', 1021*d5ef99ddSAndreas Gohr 'KC' => 'Kocaso', 1022*d5ef99ddSAndreas Gohr 'KK' => 'Kodak', 1023*d5ef99ddSAndreas Gohr 'KG' => 'Kogan', 1024*d5ef99ddSAndreas Gohr 'KGT' => 'KGTEL', 1025*d5ef99ddSAndreas Gohr 'KM' => 'Komu', 1026*d5ef99ddSAndreas Gohr 'KMC' => 'KMC', 1027*d5ef99ddSAndreas Gohr 'KO' => 'Konka', 1028*d5ef99ddSAndreas Gohr 'KW' => 'Konrow', 1029*d5ef99ddSAndreas Gohr 'KB' => 'Koobee', 1030*d5ef99ddSAndreas Gohr '7K' => 'Koolnee', 1031*d5ef99ddSAndreas Gohr 'K9' => 'Kooper', 1032*d5ef99ddSAndreas Gohr 'KP' => 'KOPO', 1033*d5ef99ddSAndreas Gohr 'KR' => 'Koridy', 1034*d5ef99ddSAndreas Gohr 'XK' => 'Koslam', 1035*d5ef99ddSAndreas Gohr 'K2' => 'KRONO', 1036*d5ef99ddSAndreas Gohr 'KRX' => 'Korax', 1037*d5ef99ddSAndreas Gohr 'KE' => 'Krüger&Matz', 1038*d5ef99ddSAndreas Gohr '5K' => 'KREZ', 1039*d5ef99ddSAndreas Gohr 'WK' => 'KRIP', 1040*d5ef99ddSAndreas Gohr 'KRA' => 'Kraft', 1041*d5ef99ddSAndreas Gohr 'KH' => 'KT-Tech', 1042*d5ef99ddSAndreas Gohr 'KTC' => 'KTC', 1043*d5ef99ddSAndreas Gohr 'Z6' => 'KUBO', 1044*d5ef99ddSAndreas Gohr 'KUG' => 'KuGou', 1045*d5ef99ddSAndreas Gohr 'K8' => 'Kuliao', 1046*d5ef99ddSAndreas Gohr '8K' => 'Kult', 1047*d5ef99ddSAndreas Gohr 'KU' => 'Kumai', 1048*d5ef99ddSAndreas Gohr '6K' => 'Kurio', 1049*d5ef99ddSAndreas Gohr 'KYD' => 'Kydos', 1050*d5ef99ddSAndreas Gohr 'KY' => 'Kyocera', 1051*d5ef99ddSAndreas Gohr 'KQ' => 'Kyowon', 1052*d5ef99ddSAndreas Gohr '1K' => 'Kzen', 1053*d5ef99ddSAndreas Gohr 'LQ' => 'LAIQ', 1054*d5ef99ddSAndreas Gohr 'L6' => 'Land Rover', 1055*d5ef99ddSAndreas Gohr 'L2' => 'Landvo', 1056*d5ef99ddSAndreas Gohr 'LA' => 'Lanix', 1057*d5ef99ddSAndreas Gohr 'LA1' => 'Lanin', 1058*d5ef99ddSAndreas Gohr 'LK' => 'Lark', 1059*d5ef99ddSAndreas Gohr 'Z3' => 'Laurus', 1060*d5ef99ddSAndreas Gohr 'LEC' => 'Lectrus', 1061*d5ef99ddSAndreas Gohr 'LAS' => 'Laser', 1062*d5ef99ddSAndreas Gohr 'LV' => 'Lava', 1063*d5ef99ddSAndreas Gohr 'LVI' => 'Lville', 1064*d5ef99ddSAndreas Gohr 'LC' => 'LCT', 1065*d5ef99ddSAndreas Gohr 'L5' => 'Leagoo', 1066*d5ef99ddSAndreas Gohr 'U3' => 'Leben', 1067*d5ef99ddSAndreas Gohr 'LEB' => 'LeBest', 1068*d5ef99ddSAndreas Gohr 'LD' => 'Ledstar', 1069*d5ef99ddSAndreas Gohr 'LEE' => 'Leelbox', 1070*d5ef99ddSAndreas Gohr 'L1' => 'LeEco', 1071*d5ef99ddSAndreas Gohr '4B' => 'Leff', 1072*d5ef99ddSAndreas Gohr 'LEG' => 'Legend', 1073*d5ef99ddSAndreas Gohr 'L4' => 'Lemhoov', 1074*d5ef99ddSAndreas Gohr 'W9' => 'LEMFO', 1075*d5ef99ddSAndreas Gohr 'LEM' => 'Lemco', 1076*d5ef99ddSAndreas Gohr 'LN' => 'Lenco', 1077*d5ef99ddSAndreas Gohr 'LE' => 'Lenovo', 1078*d5ef99ddSAndreas Gohr 'LT' => 'Leotec', 1079*d5ef99ddSAndreas Gohr 'LP' => 'Le Pan', 1080*d5ef99ddSAndreas Gohr 'ZJ' => 'Leke', 1081*d5ef99ddSAndreas Gohr 'L7' => 'Lephone', 1082*d5ef99ddSAndreas Gohr 'LZ' => 'Lesia', 1083*d5ef99ddSAndreas Gohr 'L3' => 'Lexand', 1084*d5ef99ddSAndreas Gohr 'LX' => 'Lexibook', 1085*d5ef99ddSAndreas Gohr 'LG' => 'LG', 1086*d5ef99ddSAndreas Gohr '39' => 'Liberton', 1087*d5ef99ddSAndreas Gohr '5L' => 'Linsar', 1088*d5ef99ddSAndreas Gohr 'LIN' => 'Linsay', 1089*d5ef99ddSAndreas Gohr 'LF' => 'Lifemaxx', 1090*d5ef99ddSAndreas Gohr 'LI' => 'Lingwin', 1091*d5ef99ddSAndreas Gohr 'LIB' => 'Lingbo', 1092*d5ef99ddSAndreas Gohr 'LIM' => 'Lime', 1093*d5ef99ddSAndreas Gohr 'LJ' => 'L-Max', 1094*d5ef99ddSAndreas Gohr 'LW' => 'Linnex', 1095*d5ef99ddSAndreas Gohr 'JJ' => 'Listo', 1096*d5ef99ddSAndreas Gohr 'LNM' => 'LNMBBS', 1097*d5ef99ddSAndreas Gohr 'LO' => 'Loewe', 1098*d5ef99ddSAndreas Gohr 'LNG' => 'LongTV', 1099*d5ef99ddSAndreas Gohr 'YL' => 'Loview', 1100*d5ef99ddSAndreas Gohr 'LOV' => 'Lovme', 1101*d5ef99ddSAndreas Gohr 'LGN' => 'LOGAN', 1102*d5ef99ddSAndreas Gohr '1L' => 'Logic', 1103*d5ef99ddSAndreas Gohr 'LH' => 'Logic Instrument', 1104*d5ef99ddSAndreas Gohr 'LM' => 'Logicom', 1105*d5ef99ddSAndreas Gohr 'LOG' => 'Logik', 1106*d5ef99ddSAndreas Gohr 'LGT' => 'Logitech', 1107*d5ef99ddSAndreas Gohr 'GY' => 'LOKMAT', 1108*d5ef99ddSAndreas Gohr 'LPX' => 'LPX-G', 1109*d5ef99ddSAndreas Gohr '0L' => 'Lumigon', 1110*d5ef99ddSAndreas Gohr 'LU' => 'Lumus', 1111*d5ef99ddSAndreas Gohr 'LUM' => 'Lumitel', 1112*d5ef99ddSAndreas Gohr 'L9' => 'Luna', 1113*d5ef99ddSAndreas Gohr 'LNN' => 'LUNNEN', 1114*d5ef99ddSAndreas Gohr 'LUO' => 'LUO', 1115*d5ef99ddSAndreas Gohr 'LR' => 'Luxor', 1116*d5ef99ddSAndreas Gohr 'LY' => 'LYF', 1117*d5ef99ddSAndreas Gohr 'LL' => 'Leader Phone', 1118*d5ef99ddSAndreas Gohr 'LTL' => 'LYOTECH LABS', 1119*d5ef99ddSAndreas Gohr 'QL' => 'LT Mobile', 1120*d5ef99ddSAndreas Gohr 'LW1' => 'LW', 1121*d5ef99ddSAndreas Gohr 'MQ' => 'M.T.T.', 1122*d5ef99ddSAndreas Gohr 'MN' => 'M4tel', 1123*d5ef99ddSAndreas Gohr 'XM' => 'Macoox', 1124*d5ef99ddSAndreas Gohr '92' => 'MAC AUDIO', 1125*d5ef99ddSAndreas Gohr 'MJ' => 'Majestic', 1126*d5ef99ddSAndreas Gohr 'FQ' => 'Mafe', 1127*d5ef99ddSAndreas Gohr 'MAG' => 'MAG', 1128*d5ef99ddSAndreas Gohr 'MA2' => 'MAGCH', 1129*d5ef99ddSAndreas Gohr '6Y' => 'Magicsee', 1130*d5ef99ddSAndreas Gohr 'MA4' => 'Magenta', 1131*d5ef99ddSAndreas Gohr '23' => 'Magnus', 1132*d5ef99ddSAndreas Gohr 'NH' => 'Manhattan', 1133*d5ef99ddSAndreas Gohr 'MAN' => 'Mango', 1134*d5ef99ddSAndreas Gohr '5M' => 'Mann', 1135*d5ef99ddSAndreas Gohr 'MA' => 'Manta Multimedia', 1136*d5ef99ddSAndreas Gohr 'Z0' => 'Mantra', 1137*d5ef99ddSAndreas Gohr 'J4' => 'Mara', 1138*d5ef99ddSAndreas Gohr 'MAR' => 'Marshal', 1139*d5ef99ddSAndreas Gohr '8Y' => 'Massgo', 1140*d5ef99ddSAndreas Gohr 'MA1' => 'Mascom', 1141*d5ef99ddSAndreas Gohr '2M' => 'Masstel', 1142*d5ef99ddSAndreas Gohr '3X' => 'Mastertech', 1143*d5ef99ddSAndreas Gohr 'MAS' => 'Master-G', 1144*d5ef99ddSAndreas Gohr '50' => 'Matrix', 1145*d5ef99ddSAndreas Gohr 'MAT' => 'Matco Tools', 1146*d5ef99ddSAndreas Gohr '7M' => 'Maxcom', 1147*d5ef99ddSAndreas Gohr '7M1' => 'Maxfone', 1148*d5ef99ddSAndreas Gohr 'ZM' => 'Maximus', 1149*d5ef99ddSAndreas Gohr '6X' => 'Maxtron', 1150*d5ef99ddSAndreas Gohr '0D' => 'MAXVI', 1151*d5ef99ddSAndreas Gohr 'MAX' => 'Maxwell', 1152*d5ef99ddSAndreas Gohr 'XZ' => 'MAXX', 1153*d5ef99ddSAndreas Gohr 'MW' => 'Maxwest', 1154*d5ef99ddSAndreas Gohr 'M0' => 'Maze', 1155*d5ef99ddSAndreas Gohr 'YM' => 'Maze Speed', 1156*d5ef99ddSAndreas Gohr '87' => 'Malata', 1157*d5ef99ddSAndreas Gohr 'MAU' => 'Maunfeld', 1158*d5ef99ddSAndreas Gohr 'MCL' => 'McLaut', 1159*d5ef99ddSAndreas Gohr '28' => 'MBOX', 1160*d5ef99ddSAndreas Gohr 'FK' => 'MBI', 1161*d5ef99ddSAndreas Gohr 'MBK' => 'MBK', 1162*d5ef99ddSAndreas Gohr '3D' => 'MDC Store', 1163*d5ef99ddSAndreas Gohr '1Y' => 'MDTV', 1164*d5ef99ddSAndreas Gohr '09' => 'meanIT', 1165*d5ef99ddSAndreas Gohr 'M3' => 'Mecer', 1166*d5ef99ddSAndreas Gohr 'M3M' => 'M3 Mobile', 1167*d5ef99ddSAndreas Gohr '0M' => 'Mecool', 1168*d5ef99ddSAndreas Gohr 'MEC' => 'MECHEN', 1169*d5ef99ddSAndreas Gohr 'MEM' => 'MeMobile', 1170*d5ef99ddSAndreas Gohr 'MC' => 'Mediacom', 1171*d5ef99ddSAndreas Gohr 'MD' => 'Medion', 1172*d5ef99ddSAndreas Gohr 'M2' => 'MEEG', 1173*d5ef99ddSAndreas Gohr 'MEG' => 'MEGA VISION', 1174*d5ef99ddSAndreas Gohr 'MCA' => 'Megacable', 1175*d5ef99ddSAndreas Gohr 'MP' => 'MegaFon', 1176*d5ef99ddSAndreas Gohr 'MGX' => 'MEGAMAX', 1177*d5ef99ddSAndreas Gohr 'X0' => 'mPhone', 1178*d5ef99ddSAndreas Gohr '3M' => 'Meitu', 1179*d5ef99ddSAndreas Gohr 'M1' => 'Meizu', 1180*d5ef99ddSAndreas Gohr '0E' => 'Melrose', 1181*d5ef99ddSAndreas Gohr 'MU' => 'Memup', 1182*d5ef99ddSAndreas Gohr 'ME' => 'Metz', 1183*d5ef99ddSAndreas Gohr 'MEO' => 'MEO', 1184*d5ef99ddSAndreas Gohr 'MX' => 'MEU', 1185*d5ef99ddSAndreas Gohr 'MES' => 'MESWAO', 1186*d5ef99ddSAndreas Gohr 'MI' => 'MicroMax', 1187*d5ef99ddSAndreas Gohr 'MIP' => 'mipo', 1188*d5ef99ddSAndreas Gohr 'MS' => 'Microsoft', 1189*d5ef99ddSAndreas Gohr '6Q' => 'Microtech', 1190*d5ef99ddSAndreas Gohr 'MIG' => 'Mightier', 1191*d5ef99ddSAndreas Gohr '1X' => 'Minix', 1192*d5ef99ddSAndreas Gohr 'OM' => 'Mintt', 1193*d5ef99ddSAndreas Gohr 'MIN' => 'Mint', 1194*d5ef99ddSAndreas Gohr 'MO' => 'Mio', 1195*d5ef99ddSAndreas Gohr 'MOD' => 'Moondrop', 1196*d5ef99ddSAndreas Gohr 'MOR' => 'MORTAL', 1197*d5ef99ddSAndreas Gohr 'X7' => 'Mione', 1198*d5ef99ddSAndreas Gohr 'M7' => 'Miray', 1199*d5ef99ddSAndreas Gohr 'MIT' => 'Mitchell & Brown', 1200*d5ef99ddSAndreas Gohr '8M' => 'Mito', 1201*d5ef99ddSAndreas Gohr 'MT' => 'Mitsubishi', 1202*d5ef99ddSAndreas Gohr '0Y' => 'Mitsui', 1203*d5ef99ddSAndreas Gohr 'M5' => 'MIXC', 1204*d5ef99ddSAndreas Gohr '2D' => 'MIVO', 1205*d5ef99ddSAndreas Gohr '1Z' => 'MiXzo', 1206*d5ef99ddSAndreas Gohr 'MIW' => 'MIWANG', 1207*d5ef99ddSAndreas Gohr 'ML' => 'MLLED', 1208*d5ef99ddSAndreas Gohr 'LS' => 'MLS', 1209*d5ef99ddSAndreas Gohr 'MLA' => 'MLAB', 1210*d5ef99ddSAndreas Gohr '5H' => 'MMI', 1211*d5ef99ddSAndreas Gohr '4M' => 'Mobicel', 1212*d5ef99ddSAndreas Gohr 'M6' => 'Mobiistar', 1213*d5ef99ddSAndreas Gohr 'MOK' => 'Mobile Kingdom', 1214*d5ef99ddSAndreas Gohr 'MH' => 'Mobiola', 1215*d5ef99ddSAndreas Gohr 'MB' => 'Mobistel', 1216*d5ef99ddSAndreas Gohr 'ID' => 'MobiIoT', 1217*d5ef99ddSAndreas Gohr '6W' => 'MobiWire', 1218*d5ef99ddSAndreas Gohr '9M' => 'Mobo', 1219*d5ef99ddSAndreas Gohr 'MOB' => 'Mobell', 1220*d5ef99ddSAndreas Gohr 'MVO' => 'Mobvoi', 1221*d5ef99ddSAndreas Gohr 'M4' => 'Modecom', 1222*d5ef99ddSAndreas Gohr 'MEP' => 'Mode Mobile', 1223*d5ef99ddSAndreas Gohr 'MF' => 'Mofut', 1224*d5ef99ddSAndreas Gohr 'MR' => 'Motorola', 1225*d5ef99ddSAndreas Gohr 'MTS' => 'Motorola Solutions', 1226*d5ef99ddSAndreas Gohr 'MIV' => 'Motiv', 1227*d5ef99ddSAndreas Gohr 'MV' => 'Movic', 1228*d5ef99ddSAndreas Gohr 'MOV' => 'Movitel', 1229*d5ef99ddSAndreas Gohr 'MO1' => 'MOVISUN', 1230*d5ef99ddSAndreas Gohr 'MOS' => 'Mosimosi', 1231*d5ef99ddSAndreas Gohr 'MOX' => 'Moxee', 1232*d5ef99ddSAndreas Gohr 'MM' => 'Mpman', 1233*d5ef99ddSAndreas Gohr 'MZ' => 'MSI', 1234*d5ef99ddSAndreas Gohr '3R' => 'MStar', 1235*d5ef99ddSAndreas Gohr 'M9' => 'MTC', 1236*d5ef99ddSAndreas Gohr 'N4' => 'MTN', 1237*d5ef99ddSAndreas Gohr '72' => 'M-Tech', 1238*d5ef99ddSAndreas Gohr '9H' => 'M-Horse', 1239*d5ef99ddSAndreas Gohr 'MKP' => 'M-KOPA', 1240*d5ef99ddSAndreas Gohr 'MLB' => 'multibox', 1241*d5ef99ddSAndreas Gohr '1R' => 'Multilaser', 1242*d5ef99ddSAndreas Gohr 'MPS' => 'MultiPOS', 1243*d5ef99ddSAndreas Gohr 'MLT' => 'MULTYNET', 1244*d5ef99ddSAndreas Gohr '1M' => 'MYFON', 1245*d5ef99ddSAndreas Gohr 'MY1' => 'myPhone (PL)', 1246*d5ef99ddSAndreas Gohr 'MY' => 'MyPhone (PH)', 1247*d5ef99ddSAndreas Gohr '51' => 'Myros', 1248*d5ef99ddSAndreas Gohr 'M8' => 'Myria', 1249*d5ef99ddSAndreas Gohr '6M' => 'Mystery', 1250*d5ef99ddSAndreas Gohr '3T' => 'MyTab', 1251*d5ef99ddSAndreas Gohr 'MG' => 'MyWigo', 1252*d5ef99ddSAndreas Gohr 'J3' => 'Mymaga', 1253*d5ef99ddSAndreas Gohr 'MYM' => 'MyMobile', 1254*d5ef99ddSAndreas Gohr '07' => 'MyGica', 1255*d5ef99ddSAndreas Gohr 'MYG' => 'MygPad', 1256*d5ef99ddSAndreas Gohr 'MWA' => 'MwalimuPlus', 1257*d5ef99ddSAndreas Gohr 'NEO' => 'neoCore', 1258*d5ef99ddSAndreas Gohr 'NER' => 'Neoregent', 1259*d5ef99ddSAndreas Gohr '08' => 'Nabi', 1260*d5ef99ddSAndreas Gohr 'N7' => 'National', 1261*d5ef99ddSAndreas Gohr 'NC' => 'Navcity', 1262*d5ef99ddSAndreas Gohr '6N' => 'Navitech', 1263*d5ef99ddSAndreas Gohr '7V' => 'Navitel', 1264*d5ef99ddSAndreas Gohr 'N3' => 'Navon', 1265*d5ef99ddSAndreas Gohr '7R' => 'NavRoad', 1266*d5ef99ddSAndreas Gohr 'NAB' => 'NABO', 1267*d5ef99ddSAndreas Gohr 'NAS' => 'NASCO', 1268*d5ef99ddSAndreas Gohr 'NP' => 'Naomi Phone', 1269*d5ef99ddSAndreas Gohr 'NAN' => 'Nanho', 1270*d5ef99ddSAndreas Gohr 'NE' => 'NEC', 1271*d5ef99ddSAndreas Gohr 'NDP' => 'Nedaphone', 1272*d5ef99ddSAndreas Gohr '8N' => 'Necnot', 1273*d5ef99ddSAndreas Gohr 'NF' => 'Neffos', 1274*d5ef99ddSAndreas Gohr '9X' => 'Neo', 1275*d5ef99ddSAndreas Gohr 'NEK' => 'NEKO', 1276*d5ef99ddSAndreas Gohr '1N' => 'Neomi', 1277*d5ef99ddSAndreas Gohr '7Q' => 'Neon IQ', 1278*d5ef99ddSAndreas Gohr '8F' => 'Neolix', 1279*d5ef99ddSAndreas Gohr 'NES' => 'Nesons', 1280*d5ef99ddSAndreas Gohr 'NET' => 'NetBox', 1281*d5ef99ddSAndreas Gohr 'NWT' => 'NETWIT', 1282*d5ef99ddSAndreas Gohr 'NA' => 'Netgear', 1283*d5ef99ddSAndreas Gohr 'NEM' => 'Netmak', 1284*d5ef99ddSAndreas Gohr 'NU' => 'NeuImage', 1285*d5ef99ddSAndreas Gohr 'NEU' => 'NeuTab', 1286*d5ef99ddSAndreas Gohr 'NEV' => 'NEVIR', 1287*d5ef99ddSAndreas Gohr 'NW' => 'Newgen', 1288*d5ef99ddSAndreas Gohr 'N9' => 'Newland', 1289*d5ef99ddSAndreas Gohr '0N' => 'Newman', 1290*d5ef99ddSAndreas Gohr 'NS' => 'NewsMy', 1291*d5ef99ddSAndreas Gohr 'ND' => 'Newsday', 1292*d5ef99ddSAndreas Gohr 'HB' => 'New Balance', 1293*d5ef99ddSAndreas Gohr 'BRI' => 'New Bridge', 1294*d5ef99ddSAndreas Gohr 'NEW' => 'Newal', 1295*d5ef99ddSAndreas Gohr 'XB' => 'NEXBOX', 1296*d5ef99ddSAndreas Gohr 'NX' => 'Nexian', 1297*d5ef99ddSAndreas Gohr '7X' => 'Nexa', 1298*d5ef99ddSAndreas Gohr '7XR' => 'Nexar', 1299*d5ef99ddSAndreas Gohr 'N8' => 'NEXON', 1300*d5ef99ddSAndreas Gohr 'N2' => 'Nextbit', 1301*d5ef99ddSAndreas Gohr 'NT' => 'NextBook', 1302*d5ef99ddSAndreas Gohr 'NTT' => 'NTT West', 1303*d5ef99ddSAndreas Gohr '4N' => 'NextTab', 1304*d5ef99ddSAndreas Gohr 'NEX' => 'NEXT', 1305*d5ef99ddSAndreas Gohr 'NST' => 'Next & NextStar', 1306*d5ef99ddSAndreas Gohr 'NJO' => 'nJoy', 1307*d5ef99ddSAndreas Gohr 'NG' => 'NGM', 1308*d5ef99ddSAndreas Gohr 'NZ' => 'NG Optics', 1309*d5ef99ddSAndreas Gohr 'NZP' => 'NGpon', 1310*d5ef99ddSAndreas Gohr 'NN' => 'Nikon', 1311*d5ef99ddSAndreas Gohr 'NIL' => 'NILAIT', 1312*d5ef99ddSAndreas Gohr 'NI' => 'Nintendo', 1313*d5ef99ddSAndreas Gohr 'NIN' => 'NINETEC', 1314*d5ef99ddSAndreas Gohr 'NI1' => 'NINETOLOGY', 1315*d5ef99ddSAndreas Gohr 'N5' => 'NOA', 1316*d5ef99ddSAndreas Gohr 'N1' => 'Noain', 1317*d5ef99ddSAndreas Gohr 'N6' => 'Nobby', 1318*d5ef99ddSAndreas Gohr 'NOC' => 'Novacom', 1319*d5ef99ddSAndreas Gohr 'NOS' => 'NoviSea', 1320*d5ef99ddSAndreas Gohr 'NO2' => 'NOVIS', 1321*d5ef99ddSAndreas Gohr 'NOV' => 'Novey', 1322*d5ef99ddSAndreas Gohr 'NO1' => 'NOVO', 1323*d5ef99ddSAndreas Gohr '57' => 'Nubia', 1324*d5ef99ddSAndreas Gohr 'JN' => 'NOBUX', 1325*d5ef99ddSAndreas Gohr 'NB' => 'Noblex', 1326*d5ef99ddSAndreas Gohr 'OG' => 'NOGA', 1327*d5ef99ddSAndreas Gohr 'NK' => 'Nokia', 1328*d5ef99ddSAndreas Gohr 'NM' => 'Nomi', 1329*d5ef99ddSAndreas Gohr '2N' => 'Nomu', 1330*d5ef99ddSAndreas Gohr '6H' => 'Noontec', 1331*d5ef99ddSAndreas Gohr 'NR' => 'Nordmende', 1332*d5ef99ddSAndreas Gohr 'NRD' => 'Nordfrost', 1333*d5ef99ddSAndreas Gohr 'NOR' => 'NORMANDE', 1334*d5ef99ddSAndreas Gohr '7N' => 'NorthTech', 1335*d5ef99ddSAndreas Gohr 'NOT' => 'Nothing', 1336*d5ef99ddSAndreas Gohr '5N' => 'Nos', 1337*d5ef99ddSAndreas Gohr 'NO' => 'Nous', 1338*d5ef99ddSAndreas Gohr 'NQ' => 'Novex', 1339*d5ef99ddSAndreas Gohr 'NOD' => 'noDROPOUT', 1340*d5ef99ddSAndreas Gohr 'NJ' => 'NuAns', 1341*d5ef99ddSAndreas Gohr 'NL' => 'NUU Mobile', 1342*d5ef99ddSAndreas Gohr 'N0' => 'Nuvo', 1343*d5ef99ddSAndreas Gohr 'NUV' => 'NuVision', 1344*d5ef99ddSAndreas Gohr 'NV' => 'Nvidia', 1345*d5ef99ddSAndreas Gohr 'NY' => 'NYX Mobile', 1346*d5ef99ddSAndreas Gohr 'NON' => 'N-one', 1347*d5ef99ddSAndreas Gohr 'O3' => 'O+', 1348*d5ef99ddSAndreas Gohr 'OT' => 'O2', 1349*d5ef99ddSAndreas Gohr 'O7' => 'Oale', 1350*d5ef99ddSAndreas Gohr 'OC' => 'OASYS', 1351*d5ef99ddSAndreas Gohr 'OB' => 'Obi', 1352*d5ef99ddSAndreas Gohr 'OBR' => 'Ober', 1353*d5ef99ddSAndreas Gohr 'OQ' => 'Meta', 1354*d5ef99ddSAndreas Gohr 'O1' => 'Odys', 1355*d5ef99ddSAndreas Gohr 'ODP' => 'Odotpad', 1356*d5ef99ddSAndreas Gohr 'O9' => 'ok.', 1357*d5ef99ddSAndreas Gohr 'OKA' => 'Okapi', 1358*d5ef99ddSAndreas Gohr 'OA' => 'Okapia', 1359*d5ef99ddSAndreas Gohr 'OKI' => 'Oking', 1360*d5ef99ddSAndreas Gohr 'OLA' => 'Olax', 1361*d5ef99ddSAndreas Gohr 'OLK' => 'Olkya', 1362*d5ef99ddSAndreas Gohr 'OLY' => 'Olympia', 1363*d5ef99ddSAndreas Gohr 'OCE' => 'OCEANIC', 1364*d5ef99ddSAndreas Gohr 'OLT' => 'OLTO', 1365*d5ef99ddSAndreas Gohr 'OJ' => 'Ookee', 1366*d5ef99ddSAndreas Gohr 'OD' => 'Onda', 1367*d5ef99ddSAndreas Gohr 'ON' => 'OnePlus', 1368*d5ef99ddSAndreas Gohr 'ONC' => 'OneClick', 1369*d5ef99ddSAndreas Gohr 'ONL' => 'OneLern', 1370*d5ef99ddSAndreas Gohr 'OAN' => 'Oangcc', 1371*d5ef99ddSAndreas Gohr 'OX' => 'Onix', 1372*d5ef99ddSAndreas Gohr 'OIN' => 'Onida', 1373*d5ef99ddSAndreas Gohr '3O' => 'ONYX BOOX', 1374*d5ef99ddSAndreas Gohr 'O4' => 'ONN', 1375*d5ef99ddSAndreas Gohr '9Q' => 'Onkyo', 1376*d5ef99ddSAndreas Gohr 'ONV' => 'ONVO', 1377*d5ef99ddSAndreas Gohr 'OOR' => 'Ooredoo', 1378*d5ef99ddSAndreas Gohr '2O' => 'OpelMobile', 1379*d5ef99ddSAndreas Gohr 'OH' => 'Openbox', 1380*d5ef99ddSAndreas Gohr '7Y' => 'Obabox', 1381*d5ef99ddSAndreas Gohr 'OP' => 'OPPO', 1382*d5ef99ddSAndreas Gohr 'OO' => 'Opsson', 1383*d5ef99ddSAndreas Gohr 'OPT' => 'Optoma', 1384*d5ef99ddSAndreas Gohr 'OPH' => 'Ophone', 1385*d5ef99ddSAndreas Gohr 'OR' => 'Orange', 1386*d5ef99ddSAndreas Gohr 'ORP' => 'Orange Pi', 1387*d5ef99ddSAndreas Gohr 'ORA' => 'Orava', 1388*d5ef99ddSAndreas Gohr 'O5' => 'Orbic', 1389*d5ef99ddSAndreas Gohr 'Y6' => 'Orbita', 1390*d5ef99ddSAndreas Gohr 'ORB' => 'Orbsmart', 1391*d5ef99ddSAndreas Gohr 'OS' => 'Ordissimo', 1392*d5ef99ddSAndreas Gohr '8O' => 'Orion', 1393*d5ef99ddSAndreas Gohr 'OTT' => 'OTTO', 1394*d5ef99ddSAndreas Gohr 'OK' => 'Ouki', 1395*d5ef99ddSAndreas Gohr '0O' => 'OINOM', 1396*d5ef99ddSAndreas Gohr 'OIL' => 'Oilsky', 1397*d5ef99ddSAndreas Gohr 'QK' => 'OKWU', 1398*d5ef99ddSAndreas Gohr 'QQ' => 'OMIX', 1399*d5ef99ddSAndreas Gohr '56' => 'OKSI', 1400*d5ef99ddSAndreas Gohr 'OE' => 'Oukitel', 1401*d5ef99ddSAndreas Gohr 'OU' => 'OUYA', 1402*d5ef99ddSAndreas Gohr 'JB' => 'OUJIA', 1403*d5ef99ddSAndreas Gohr 'OV' => 'Overmax', 1404*d5ef99ddSAndreas Gohr '30' => 'Ovvi', 1405*d5ef99ddSAndreas Gohr 'O2' => 'Owwo', 1406*d5ef99ddSAndreas Gohr 'OSC' => 'OSCAL', 1407*d5ef99ddSAndreas Gohr 'OXT' => 'OX TAB', 1408*d5ef99ddSAndreas Gohr 'OY' => 'Oysters', 1409*d5ef99ddSAndreas Gohr 'QF' => 'OYSIN', 1410*d5ef99ddSAndreas Gohr 'O6' => 'Oyyu', 1411*d5ef99ddSAndreas Gohr 'OZ' => 'OzoneHD', 1412*d5ef99ddSAndreas Gohr 'OLL' => 'Ollee', 1413*d5ef99ddSAndreas Gohr '7P' => 'P-UP', 1414*d5ef99ddSAndreas Gohr 'PRA' => 'Pacific Research Alliance', 1415*d5ef99ddSAndreas Gohr 'PAG' => 'PAGRAER', 1416*d5ef99ddSAndreas Gohr 'PAD' => 'Padpro', 1417*d5ef99ddSAndreas Gohr 'YP' => 'Paladin', 1418*d5ef99ddSAndreas Gohr 'PM' => 'Palm', 1419*d5ef99ddSAndreas Gohr 'PN' => 'Panacom', 1420*d5ef99ddSAndreas Gohr 'PA' => 'Panasonic', 1421*d5ef99ddSAndreas Gohr 'PNV' => 'Panavox', 1422*d5ef99ddSAndreas Gohr 'PT' => 'Pantech', 1423*d5ef99ddSAndreas Gohr 'PAN' => 'Pano', 1424*d5ef99ddSAndreas Gohr 'PND' => 'Panodic', 1425*d5ef99ddSAndreas Gohr 'PA1' => 'Panoramic', 1426*d5ef99ddSAndreas Gohr 'PLT' => 'Platoon', 1427*d5ef99ddSAndreas Gohr 'PLD' => 'PLDT', 1428*d5ef99ddSAndreas Gohr '94' => 'Packard Bell', 1429*d5ef99ddSAndreas Gohr 'H9' => 'Parrot Mobile', 1430*d5ef99ddSAndreas Gohr 'PAR' => 'Partner Mobile', 1431*d5ef99ddSAndreas Gohr 'PAP' => 'PAPYRE', 1432*d5ef99ddSAndreas Gohr 'PB' => 'PCBOX', 1433*d5ef99ddSAndreas Gohr 'PCS' => 'PC Smart', 1434*d5ef99ddSAndreas Gohr 'PC' => 'PCD', 1435*d5ef99ddSAndreas Gohr 'PD' => 'PCD Argentina', 1436*d5ef99ddSAndreas Gohr 'PE' => 'PEAQ', 1437*d5ef99ddSAndreas Gohr 'PEN' => 'Penta', 1438*d5ef99ddSAndreas Gohr 'PG' => 'Pentagram', 1439*d5ef99ddSAndreas Gohr 'PQ' => 'Pendoo', 1440*d5ef99ddSAndreas Gohr '93' => 'Perfeo', 1441*d5ef99ddSAndreas Gohr '8J' => 'Pelitt', 1442*d5ef99ddSAndreas Gohr '1P' => 'Phicomm', 1443*d5ef99ddSAndreas Gohr '4P' => 'Philco', 1444*d5ef99ddSAndreas Gohr 'PH' => 'Philips', 1445*d5ef99ddSAndreas Gohr '5P' => 'Phonemax', 1446*d5ef99ddSAndreas Gohr 'PO' => 'phoneOne', 1447*d5ef99ddSAndreas Gohr 'PI' => 'Pioneer', 1448*d5ef99ddSAndreas Gohr 'PIC' => 'Pioneer Computers', 1449*d5ef99ddSAndreas Gohr 'PJ' => 'PiPO', 1450*d5ef99ddSAndreas Gohr '8P' => 'Pixelphone', 1451*d5ef99ddSAndreas Gohr '9O' => 'Pixela', 1452*d5ef99ddSAndreas Gohr 'PX' => 'Pixus', 1453*d5ef99ddSAndreas Gohr 'PIX' => 'PIXPRO', 1454*d5ef99ddSAndreas Gohr 'QP' => 'Pico', 1455*d5ef99ddSAndreas Gohr 'PIR' => 'PIRANHA', 1456*d5ef99ddSAndreas Gohr 'PIN' => 'PINE', 1457*d5ef99ddSAndreas Gohr '9P' => 'Planet Computers', 1458*d5ef99ddSAndreas Gohr 'PLA' => 'Play Now', 1459*d5ef99ddSAndreas Gohr 'PY' => 'Ployer', 1460*d5ef99ddSAndreas Gohr 'P4' => 'Plum', 1461*d5ef99ddSAndreas Gohr 'PLU' => 'PlusStyle', 1462*d5ef99ddSAndreas Gohr '22' => 'Pluzz', 1463*d5ef99ddSAndreas Gohr 'P8' => 'PocketBook', 1464*d5ef99ddSAndreas Gohr '0P' => 'POCO', 1465*d5ef99ddSAndreas Gohr 'FH' => 'Point Mobile', 1466*d5ef99ddSAndreas Gohr 'PV' => 'Point of View', 1467*d5ef99ddSAndreas Gohr 'PVB' => 'PVBox', 1468*d5ef99ddSAndreas Gohr 'PL' => 'Polaroid', 1469*d5ef99ddSAndreas Gohr 'Q6' => 'Polar', 1470*d5ef99ddSAndreas Gohr '97' => 'PolarLine', 1471*d5ef99ddSAndreas Gohr 'PP' => 'PolyPad', 1472*d5ef99ddSAndreas Gohr 'P5' => 'Polytron', 1473*d5ef99ddSAndreas Gohr 'P2' => 'Pomp', 1474*d5ef99ddSAndreas Gohr 'P0' => 'Poppox', 1475*d5ef99ddSAndreas Gohr '0X' => 'POPTEL', 1476*d5ef99ddSAndreas Gohr 'PS' => 'Positivo', 1477*d5ef99ddSAndreas Gohr '3P' => 'Positivo BGH', 1478*d5ef99ddSAndreas Gohr '3F' => 'Porsche', 1479*d5ef99ddSAndreas Gohr 'PRT' => 'Portfolio', 1480*d5ef99ddSAndreas Gohr 'PPD' => 'PPDS', 1481*d5ef99ddSAndreas Gohr 'P3' => 'PPTV', 1482*d5ef99ddSAndreas Gohr 'FP' => 'Premio', 1483*d5ef99ddSAndreas Gohr 'PR1' => 'Premier', 1484*d5ef99ddSAndreas Gohr 'PR' => 'Prestigio', 1485*d5ef99ddSAndreas Gohr 'P9' => 'Primepad', 1486*d5ef99ddSAndreas Gohr 'PRM' => 'PRIME', 1487*d5ef99ddSAndreas Gohr '6P' => 'Primux', 1488*d5ef99ddSAndreas Gohr '2P' => 'Prixton', 1489*d5ef99ddSAndreas Gohr 'PRI' => 'Pritom', 1490*d5ef99ddSAndreas Gohr 'PRP' => 'PRISM+', 1491*d5ef99ddSAndreas Gohr 'PF' => 'PROFiLO', 1492*d5ef99ddSAndreas Gohr 'P6' => 'Proline', 1493*d5ef99ddSAndreas Gohr '5O' => 'Prology', 1494*d5ef99ddSAndreas Gohr 'P1' => 'ProScan', 1495*d5ef99ddSAndreas Gohr 'PRO' => 'PROSONIC', 1496*d5ef99ddSAndreas Gohr 'P7' => 'Protruly', 1497*d5ef99ddSAndreas Gohr 'R0' => 'ProVision', 1498*d5ef99ddSAndreas Gohr '7O' => 'Polestar', 1499*d5ef99ddSAndreas Gohr 'PU' => 'PULID', 1500*d5ef99ddSAndreas Gohr 'UP' => 'Purism', 1501*d5ef99ddSAndreas Gohr 'PUN' => 'Punos', 1502*d5ef99ddSAndreas Gohr 'QFX' => 'QFX', 1503*d5ef99ddSAndreas Gohr 'Q7' => 'Q-Box', 1504*d5ef99ddSAndreas Gohr 'QH' => 'Q-Touch', 1505*d5ef99ddSAndreas Gohr 'QB' => 'Q.Bell', 1506*d5ef99ddSAndreas Gohr 'QI' => 'Qilive', 1507*d5ef99ddSAndreas Gohr 'QIN' => 'QIN', 1508*d5ef99ddSAndreas Gohr 'QIW' => 'Qiuwoky', 1509*d5ef99ddSAndreas Gohr 'QM' => 'QMobile', 1510*d5ef99ddSAndreas Gohr 'QT' => 'Qtek', 1511*d5ef99ddSAndreas Gohr 'Q9' => 'QTECH', 1512*d5ef99ddSAndreas Gohr 'QA' => 'Quantum', 1513*d5ef99ddSAndreas Gohr 'QUE' => 'Quest', 1514*d5ef99ddSAndreas Gohr 'QUA' => 'Quatro', 1515*d5ef99ddSAndreas Gohr 'QU' => 'Quechua', 1516*d5ef99ddSAndreas Gohr 'QUI' => 'Quipus', 1517*d5ef99ddSAndreas Gohr 'QO' => 'Qumo', 1518*d5ef99ddSAndreas Gohr 'UQ' => 'Qubo', 1519*d5ef99ddSAndreas Gohr 'QUP' => 'Qupi', 1520*d5ef99ddSAndreas Gohr 'YQ' => 'QLink', 1521*d5ef99ddSAndreas Gohr 'QY' => 'Qnet Mobile', 1522*d5ef99ddSAndreas Gohr 'WJ' => 'Qware', 1523*d5ef99ddSAndreas Gohr 'QWT' => 'QWATT', 1524*d5ef99ddSAndreas Gohr 'R2' => 'R-TV', 1525*d5ef99ddSAndreas Gohr 'R3D' => 'R3Di', 1526*d5ef99ddSAndreas Gohr 'RA' => 'Ramos', 1527*d5ef99ddSAndreas Gohr '0R' => 'Raspberry', 1528*d5ef99ddSAndreas Gohr 'R9' => 'Ravoz', 1529*d5ef99ddSAndreas Gohr 'RZ' => 'Razer', 1530*d5ef99ddSAndreas Gohr 'RAZ' => 'RAZZ', 1531*d5ef99ddSAndreas Gohr '95' => 'Rakuten', 1532*d5ef99ddSAndreas Gohr 'RAY' => 'Raylandz', 1533*d5ef99ddSAndreas Gohr 'RC' => 'RCA Tablets', 1534*d5ef99ddSAndreas Gohr 'RCT' => 'RCT', 1535*d5ef99ddSAndreas Gohr '2R' => 'Reach', 1536*d5ef99ddSAndreas Gohr 'RLX' => 'Realix', 1537*d5ef99ddSAndreas Gohr 'REL' => 'RelNAT', 1538*d5ef99ddSAndreas Gohr 'RE4' => 'Relndoo', 1539*d5ef99ddSAndreas Gohr 'RB' => 'Readboy', 1540*d5ef99ddSAndreas Gohr 'RE' => 'Realme', 1541*d5ef99ddSAndreas Gohr 'RE1' => 'Redbean', 1542*d5ef99ddSAndreas Gohr 'R8' => 'RED', 1543*d5ef99ddSAndreas Gohr 'RDX' => 'RED-X', 1544*d5ef99ddSAndreas Gohr 'REW' => 'Redway', 1545*d5ef99ddSAndreas Gohr '6F' => 'Redfox', 1546*d5ef99ddSAndreas Gohr 'RE2' => 'RedLine', 1547*d5ef99ddSAndreas Gohr 'RD' => 'Reeder', 1548*d5ef99ddSAndreas Gohr 'Z9' => 'REGAL', 1549*d5ef99ddSAndreas Gohr 'RH' => 'Remdun', 1550*d5ef99ddSAndreas Gohr 'RP' => 'Revo', 1551*d5ef99ddSAndreas Gohr 'REV' => 'Revomovil', 1552*d5ef99ddSAndreas Gohr '8R' => 'Retroid Pocket', 1553*d5ef99ddSAndreas Gohr 'REN' => 'Renova', 1554*d5ef99ddSAndreas Gohr 'RE3' => 'RENSO', 1555*d5ef99ddSAndreas Gohr 'REP' => 'rephone', 1556*d5ef99ddSAndreas Gohr 'RHI' => 'Rhino', 1557*d5ef99ddSAndreas Gohr 'RIC' => 'Ricoh', 1558*d5ef99ddSAndreas Gohr 'RI' => 'Rikomagic', 1559*d5ef99ddSAndreas Gohr 'RM' => 'RIM', 1560*d5ef99ddSAndreas Gohr 'RN' => 'Rinno', 1561*d5ef99ddSAndreas Gohr 'RNB' => 'Ringing Bells', 1562*d5ef99ddSAndreas Gohr 'RX' => 'Ritmix', 1563*d5ef99ddSAndreas Gohr 'R7' => 'Ritzviva', 1564*d5ef99ddSAndreas Gohr 'RV' => 'Riviera', 1565*d5ef99ddSAndreas Gohr '6R' => 'Rivo', 1566*d5ef99ddSAndreas Gohr 'RIZ' => 'Rizzen', 1567*d5ef99ddSAndreas Gohr 'RR' => 'Roadrover', 1568*d5ef99ddSAndreas Gohr 'QR' => 'ROADMAX', 1569*d5ef99ddSAndreas Gohr 'ROH' => 'ROCH', 1570*d5ef99ddSAndreas Gohr 'ROC' => 'Roam Cat', 1571*d5ef99ddSAndreas Gohr 'ROT' => 'Rocket', 1572*d5ef99ddSAndreas Gohr 'R1' => 'Rokit', 1573*d5ef99ddSAndreas Gohr 'ROI' => 'ROiK', 1574*d5ef99ddSAndreas Gohr 'RK' => 'Roku', 1575*d5ef99ddSAndreas Gohr 'R3' => 'Rombica', 1576*d5ef99ddSAndreas Gohr 'RUA' => 'Romsat', 1577*d5ef99ddSAndreas Gohr 'R5' => 'Ross&Moor', 1578*d5ef99ddSAndreas Gohr 'RO' => 'Rover', 1579*d5ef99ddSAndreas Gohr 'R6' => 'RoverPad', 1580*d5ef99ddSAndreas Gohr 'RQ' => 'RoyQueen', 1581*d5ef99ddSAndreas Gohr 'RJ' => 'Royole', 1582*d5ef99ddSAndreas Gohr 'RT' => 'RT Project', 1583*d5ef99ddSAndreas Gohr 'RTK' => 'RTK', 1584*d5ef99ddSAndreas Gohr 'RG' => 'RugGear', 1585*d5ef99ddSAndreas Gohr 'RUG' => 'Ruggex', 1586*d5ef99ddSAndreas Gohr 'RUT' => 'RuggeTech', 1587*d5ef99ddSAndreas Gohr 'RU' => 'Runbo', 1588*d5ef99ddSAndreas Gohr 'RUP' => 'Rupa', 1589*d5ef99ddSAndreas Gohr 'RL' => 'Ruio', 1590*d5ef99ddSAndreas Gohr 'RY' => 'Ryte', 1591*d5ef99ddSAndreas Gohr 'X5' => 'Saba', 1592*d5ef99ddSAndreas Gohr '8L' => 'S-TELL', 1593*d5ef99ddSAndreas Gohr '8L1' => 'S-Color', 1594*d5ef99ddSAndreas Gohr '4O' => 'S2Tel', 1595*d5ef99ddSAndreas Gohr '89' => 'Seatel', 1596*d5ef99ddSAndreas Gohr 'SEW' => 'Sewoo', 1597*d5ef99ddSAndreas Gohr 'SE1' => 'SEEWO', 1598*d5ef99ddSAndreas Gohr 'SEN' => 'SENNA', 1599*d5ef99ddSAndreas Gohr 'SER' => 'SERVO', 1600*d5ef99ddSAndreas Gohr 'Y7' => 'Saiet', 1601*d5ef99ddSAndreas Gohr 'SLF' => 'SAILF', 1602*d5ef99ddSAndreas Gohr 'X1' => 'Safaricom', 1603*d5ef99ddSAndreas Gohr 'SG' => 'Sagem', 1604*d5ef99ddSAndreas Gohr 'SAG' => 'Sagemcom', 1605*d5ef99ddSAndreas Gohr '4L' => 'Salora', 1606*d5ef99ddSAndreas Gohr 'SA' => 'Samsung', 1607*d5ef99ddSAndreas Gohr 'SAT' => 'Samtech', 1608*d5ef99ddSAndreas Gohr 'SAM' => 'Samtron', 1609*d5ef99ddSAndreas Gohr 'SAB' => 'Sambox', 1610*d5ef99ddSAndreas Gohr 'SNA' => 'SNAMI', 1611*d5ef99ddSAndreas Gohr 'S0' => 'Sanei', 1612*d5ef99ddSAndreas Gohr '12' => 'Sansui', 1613*d5ef99ddSAndreas Gohr 'SAK' => 'Sankey', 1614*d5ef99ddSAndreas Gohr 'SQ' => 'Santin', 1615*d5ef99ddSAndreas Gohr 'SY' => 'Sanyo', 1616*d5ef99ddSAndreas Gohr 'SAN' => 'SANY', 1617*d5ef99ddSAndreas Gohr 'S9' => 'Savio', 1618*d5ef99ddSAndreas Gohr 'Y4' => 'TCL SCBC', 1619*d5ef99ddSAndreas Gohr 'SCH' => 'SCHAUB LORENZ', 1620*d5ef99ddSAndreas Gohr 'CZ' => 'Schneider', 1621*d5ef99ddSAndreas Gohr 'SHO' => 'SCHONTECH', 1622*d5ef99ddSAndreas Gohr 'SCO' => 'Scosmos', 1623*d5ef99ddSAndreas Gohr 'SC1' => 'Scoole', 1624*d5ef99ddSAndreas Gohr 'ZG' => 'Schok', 1625*d5ef99ddSAndreas Gohr 'G8' => 'SEG', 1626*d5ef99ddSAndreas Gohr 'SEX' => 'SEHMAX', 1627*d5ef99ddSAndreas Gohr 'SD' => 'Sega', 1628*d5ef99ddSAndreas Gohr '0U' => 'Selecline', 1629*d5ef99ddSAndreas Gohr '9G' => 'Selenga', 1630*d5ef99ddSAndreas Gohr 'SV' => 'Selevision', 1631*d5ef99ddSAndreas Gohr 'SL' => 'Selfix', 1632*d5ef99ddSAndreas Gohr '0S' => 'SEMP TCL', 1633*d5ef99ddSAndreas Gohr 'S1' => 'Sencor', 1634*d5ef99ddSAndreas Gohr 'SNM' => 'Sencrom', 1635*d5ef99ddSAndreas Gohr 'SN' => 'Sendo', 1636*d5ef99ddSAndreas Gohr '01' => 'Senkatel', 1637*d5ef99ddSAndreas Gohr 'S6' => 'Senseit', 1638*d5ef99ddSAndreas Gohr 'EW' => 'Senwa', 1639*d5ef99ddSAndreas Gohr '24' => 'Seeken', 1640*d5ef99ddSAndreas Gohr 'SEB' => 'SEBBE', 1641*d5ef99ddSAndreas Gohr '61' => 'Seuic', 1642*d5ef99ddSAndreas Gohr 'SX' => 'SFR', 1643*d5ef99ddSAndreas Gohr 'SGI' => 'SGIN', 1644*d5ef99ddSAndreas Gohr 'SH' => 'Sharp', 1645*d5ef99ddSAndreas Gohr 'JU' => 'Shanling', 1646*d5ef99ddSAndreas Gohr '7S' => 'Shift Phones', 1647*d5ef99ddSAndreas Gohr '78' => 'Shivaki', 1648*d5ef99ddSAndreas Gohr 'RS' => 'Shtrikh-M', 1649*d5ef99ddSAndreas Gohr '3S' => 'Shuttle', 1650*d5ef99ddSAndreas Gohr '13' => 'Sico', 1651*d5ef99ddSAndreas Gohr 'SI' => 'Siemens', 1652*d5ef99ddSAndreas Gohr '1S' => 'Sigma', 1653*d5ef99ddSAndreas Gohr '70' => 'Silelis', 1654*d5ef99ddSAndreas Gohr 'SJ' => 'Silent Circle', 1655*d5ef99ddSAndreas Gohr 'SIL' => 'Silva Schneider', 1656*d5ef99ddSAndreas Gohr '10' => 'Simbans', 1657*d5ef99ddSAndreas Gohr '98' => 'Simply', 1658*d5ef99ddSAndreas Gohr 'SIM' => 'simfer', 1659*d5ef99ddSAndreas Gohr '52' => 'Singtech', 1660*d5ef99ddSAndreas Gohr 'SIN' => 'SINGER', 1661*d5ef99ddSAndreas Gohr '31' => 'Siragon', 1662*d5ef99ddSAndreas Gohr 'SIS' => 'Siswoo', 1663*d5ef99ddSAndreas Gohr '83' => 'Sirin Labs', 1664*d5ef99ddSAndreas Gohr '5Z' => 'SK Broadband', 1665*d5ef99ddSAndreas Gohr 'GK' => 'SKG', 1666*d5ef99ddSAndreas Gohr 'SW' => 'Sky', 1667*d5ef99ddSAndreas Gohr 'SK' => 'Skyworth', 1668*d5ef99ddSAndreas Gohr 'SKY' => 'Skyline', 1669*d5ef99ddSAndreas Gohr 'SK1' => 'SkyStream', 1670*d5ef99ddSAndreas Gohr 'SKT' => 'Skytech', 1671*d5ef99ddSAndreas Gohr 'SKK' => 'SKK Mobile', 1672*d5ef99ddSAndreas Gohr '14' => 'Smadl', 1673*d5ef99ddSAndreas Gohr '19' => 'Smailo', 1674*d5ef99ddSAndreas Gohr 'SR' => 'Smart Electronic', 1675*d5ef99ddSAndreas Gohr 'SMA' => 'Smart Kassel', 1676*d5ef99ddSAndreas Gohr 'STE' => 'Smart Tech', 1677*d5ef99ddSAndreas Gohr '49' => 'Smart', 1678*d5ef99ddSAndreas Gohr '47' => 'SmartBook', 1679*d5ef99ddSAndreas Gohr '3B' => 'Smartab', 1680*d5ef99ddSAndreas Gohr '80' => 'SMARTEC', 1681*d5ef99ddSAndreas Gohr 'SM1' => 'Smartex', 1682*d5ef99ddSAndreas Gohr 'SC' => 'Smartfren', 1683*d5ef99ddSAndreas Gohr 'S7' => 'Smartisan', 1684*d5ef99ddSAndreas Gohr 'SMU' => 'SMUX', 1685*d5ef99ddSAndreas Gohr 'SMT' => 'SMT Telecom', 1686*d5ef99ddSAndreas Gohr 'JR' => 'Sylvania', 1687*d5ef99ddSAndreas Gohr 'SYH' => 'SYH', 1688*d5ef99ddSAndreas Gohr '3Y' => 'Smarty', 1689*d5ef99ddSAndreas Gohr 'HH' => 'Smooth Mobile', 1690*d5ef99ddSAndreas Gohr '1Q' => 'Smotreshka', 1691*d5ef99ddSAndreas Gohr 'SF' => 'Softbank', 1692*d5ef99ddSAndreas Gohr '9L' => 'SOLE', 1693*d5ef99ddSAndreas Gohr 'JL' => 'SOLO', 1694*d5ef99ddSAndreas Gohr 'SOS' => 'SOSH', 1695*d5ef99ddSAndreas Gohr 'SOD' => 'Soda', 1696*d5ef99ddSAndreas Gohr 'SOL' => 'Solas', 1697*d5ef99ddSAndreas Gohr '16' => 'Solone', 1698*d5ef99ddSAndreas Gohr 'OI' => 'Sonim', 1699*d5ef99ddSAndreas Gohr 'SVE' => 'Sveon', 1700*d5ef99ddSAndreas Gohr 'SO' => 'Sony', 1701*d5ef99ddSAndreas Gohr 'SE' => 'Sony Ericsson', 1702*d5ef99ddSAndreas Gohr 'X2' => 'Soundmax', 1703*d5ef99ddSAndreas Gohr 'SUL' => 'SoulLink', 1704*d5ef99ddSAndreas Gohr '8S' => 'Soyes', 1705*d5ef99ddSAndreas Gohr '77' => 'SONOS', 1706*d5ef99ddSAndreas Gohr '68' => 'Soho Style', 1707*d5ef99ddSAndreas Gohr 'SOB' => 'SobieTech', 1708*d5ef99ddSAndreas Gohr 'SOW' => 'SOWLY', 1709*d5ef99ddSAndreas Gohr 'PK' => 'Spark', 1710*d5ef99ddSAndreas Gohr 'SPX' => 'Sparx', 1711*d5ef99ddSAndreas Gohr 'FS' => 'SPC', 1712*d5ef99ddSAndreas Gohr '6S' => 'Spectrum', 1713*d5ef99ddSAndreas Gohr '43' => 'Spectralink', 1714*d5ef99ddSAndreas Gohr 'SP' => 'Spice', 1715*d5ef99ddSAndreas Gohr 'SPD' => 'Spider', 1716*d5ef99ddSAndreas Gohr '84' => 'Sprint', 1717*d5ef99ddSAndreas Gohr 'SPU' => 'SPURT', 1718*d5ef99ddSAndreas Gohr 'QS' => 'SQOOL', 1719*d5ef99ddSAndreas Gohr 'S4' => 'Star', 1720*d5ef99ddSAndreas Gohr 'OL' => 'Starlight', 1721*d5ef99ddSAndreas Gohr 'STA' => 'Star-Light', 1722*d5ef99ddSAndreas Gohr '18' => 'Starmobile', 1723*d5ef99ddSAndreas Gohr '2S' => 'Starway', 1724*d5ef99ddSAndreas Gohr '45' => 'Starwind', 1725*d5ef99ddSAndreas Gohr 'SB' => 'STF Mobile', 1726*d5ef99ddSAndreas Gohr 'S8' => 'STK', 1727*d5ef99ddSAndreas Gohr 'GQ' => 'STG Telecom', 1728*d5ef99ddSAndreas Gohr 'S2' => 'Stonex', 1729*d5ef99ddSAndreas Gohr 'ST' => 'Storex', 1730*d5ef99ddSAndreas Gohr 'STR' => 'Stream', 1731*d5ef99ddSAndreas Gohr '71' => 'StrawBerry', 1732*d5ef99ddSAndreas Gohr '96' => 'STRONG', 1733*d5ef99ddSAndreas Gohr '69' => 'Stylo', 1734*d5ef99ddSAndreas Gohr 'STI' => 'Stilevs', 1735*d5ef99ddSAndreas Gohr '9S' => 'Sugar', 1736*d5ef99ddSAndreas Gohr 'SUR' => 'Surge', 1737*d5ef99ddSAndreas Gohr 'SUF' => 'Surfans', 1738*d5ef99ddSAndreas Gohr '06' => 'Subor', 1739*d5ef99ddSAndreas Gohr 'SUT' => 'SULPICE TV', 1740*d5ef99ddSAndreas Gohr 'SZ' => 'Sumvision', 1741*d5ef99ddSAndreas Gohr '0H' => 'Sunstech', 1742*d5ef99ddSAndreas Gohr 'S3' => 'SunVan', 1743*d5ef99ddSAndreas Gohr '5S' => 'Sunvell', 1744*d5ef99ddSAndreas Gohr '5Y' => 'Sunny', 1745*d5ef99ddSAndreas Gohr 'W8' => 'SUNWIND', 1746*d5ef99ddSAndreas Gohr 'SBX' => 'SuperBOX', 1747*d5ef99ddSAndreas Gohr 'SBM' => 'Supermax', 1748*d5ef99ddSAndreas Gohr 'SBR' => 'Sber', 1749*d5ef99ddSAndreas Gohr 'SGE' => 'Super General', 1750*d5ef99ddSAndreas Gohr 'SU' => 'SuperSonic', 1751*d5ef99ddSAndreas Gohr '79' => 'SuperTab', 1752*d5ef99ddSAndreas Gohr 'STV' => 'SuperTV', 1753*d5ef99ddSAndreas Gohr 'S5' => 'Supra', 1754*d5ef99ddSAndreas Gohr 'SUP' => 'Supraim', 1755*d5ef99ddSAndreas Gohr 'ZS' => 'Suzuki', 1756*d5ef99ddSAndreas Gohr '2J' => 'Sunmi', 1757*d5ef99ddSAndreas Gohr 'SUN' => 'Sunmax', 1758*d5ef99ddSAndreas Gohr '0W' => 'Swipe', 1759*d5ef99ddSAndreas Gohr 'SWI' => 'Switel', 1760*d5ef99ddSAndreas Gohr 'SS' => 'SWISSMOBILITY', 1761*d5ef99ddSAndreas Gohr '1W' => 'Swisstone', 1762*d5ef99ddSAndreas Gohr 'SWO' => 'SWOFY', 1763*d5ef99ddSAndreas Gohr 'SSK' => 'SSKY', 1764*d5ef99ddSAndreas Gohr 'SYC' => 'Syco', 1765*d5ef99ddSAndreas Gohr 'SM' => 'Symphony', 1766*d5ef99ddSAndreas Gohr '4S' => 'Syrox', 1767*d5ef99ddSAndreas Gohr 'SYS' => 'System76', 1768*d5ef99ddSAndreas Gohr 'TM' => 'T-Mobile', 1769*d5ef99ddSAndreas Gohr 'T96' => 'T96', 1770*d5ef99ddSAndreas Gohr 'TAD' => 'TADAAM', 1771*d5ef99ddSAndreas Gohr 'TK' => 'Takara', 1772*d5ef99ddSAndreas Gohr '73' => 'Tambo', 1773*d5ef99ddSAndreas Gohr '9N' => 'Tanix', 1774*d5ef99ddSAndreas Gohr 'U5' => 'Taiga System', 1775*d5ef99ddSAndreas Gohr 'TAL' => 'Talius', 1776*d5ef99ddSAndreas Gohr '7G' => 'TAG Tech', 1777*d5ef99ddSAndreas Gohr 'TLB' => 'TALBERG', 1778*d5ef99ddSAndreas Gohr 'TAU' => 'TAUBE', 1779*d5ef99ddSAndreas Gohr 'T5' => 'TB Touch', 1780*d5ef99ddSAndreas Gohr 'TC' => 'TCL', 1781*d5ef99ddSAndreas Gohr 'T0' => 'TD Systems', 1782*d5ef99ddSAndreas Gohr 'YY' => 'TD Tech', 1783*d5ef99ddSAndreas Gohr 'H4' => 'Technicolor', 1784*d5ef99ddSAndreas Gohr 'TEA' => 'TeachTouch', 1785*d5ef99ddSAndreas Gohr 'Z5' => 'Technika', 1786*d5ef99ddSAndreas Gohr 'TE1' => 'TechSmart', 1787*d5ef99ddSAndreas Gohr 'TX' => 'TechniSat', 1788*d5ef99ddSAndreas Gohr 'TT' => 'TechnoTrend', 1789*d5ef99ddSAndreas Gohr 'TTS' => 'TECHNOSAT', 1790*d5ef99ddSAndreas Gohr 'TM1' => 'Temigereev', 1791*d5ef99ddSAndreas Gohr 'TP' => 'TechPad', 1792*d5ef99ddSAndreas Gohr 'TPS' => 'TPS', 1793*d5ef99ddSAndreas Gohr '9E' => 'Techwood', 1794*d5ef99ddSAndreas Gohr '7F' => 'Technopc', 1795*d5ef99ddSAndreas Gohr 'TCH' => 'Techstorm', 1796*d5ef99ddSAndreas Gohr 'T7' => 'Teclast', 1797*d5ef99ddSAndreas Gohr 'TB' => 'Tecno Mobile', 1798*d5ef99ddSAndreas Gohr 'TEC' => 'TecToy', 1799*d5ef99ddSAndreas Gohr '91' => 'TEENO', 1800*d5ef99ddSAndreas Gohr 'TLK' => 'Telkom', 1801*d5ef99ddSAndreas Gohr '2L' => 'Tele2', 1802*d5ef99ddSAndreas Gohr 'TL' => 'Telefunken', 1803*d5ef99ddSAndreas Gohr 'TG' => 'Telego', 1804*d5ef99ddSAndreas Gohr 'T2' => 'Telenor', 1805*d5ef99ddSAndreas Gohr 'TE' => 'Telit', 1806*d5ef99ddSAndreas Gohr '65' => 'Telia', 1807*d5ef99ddSAndreas Gohr 'TLY' => 'Telly', 1808*d5ef99ddSAndreas Gohr 'TEL' => 'Telma', 1809*d5ef99ddSAndreas Gohr 'PW' => 'Telpo', 1810*d5ef99ddSAndreas Gohr 'TLS' => 'TeloSystems', 1811*d5ef99ddSAndreas Gohr 'TER' => 'Teracube', 1812*d5ef99ddSAndreas Gohr 'TD' => 'Tesco', 1813*d5ef99ddSAndreas Gohr 'TA' => 'Tesla', 1814*d5ef99ddSAndreas Gohr '9T' => 'Tetratab', 1815*d5ef99ddSAndreas Gohr 'TET' => 'TETC', 1816*d5ef99ddSAndreas Gohr 'TZ' => 'teXet', 1817*d5ef99ddSAndreas Gohr '29' => 'Teknosa', 1818*d5ef99ddSAndreas Gohr 'JZ' => 'TJC', 1819*d5ef99ddSAndreas Gohr 'TJD' => 'TJD', 1820*d5ef99ddSAndreas Gohr 'JC' => 'TENPLUS', 1821*d5ef99ddSAndreas Gohr 'T4' => 'ThL', 1822*d5ef99ddSAndreas Gohr 'TN' => 'Thomson', 1823*d5ef99ddSAndreas Gohr 'O0' => 'Thuraya', 1824*d5ef99ddSAndreas Gohr 'TI' => 'TIANYU', 1825*d5ef99ddSAndreas Gohr 'JY' => 'Tigers', 1826*d5ef99ddSAndreas Gohr '8T' => 'Time2', 1827*d5ef99ddSAndreas Gohr 'TQ' => 'Timovi', 1828*d5ef99ddSAndreas Gohr 'TIM' => 'TIMvision', 1829*d5ef99ddSAndreas Gohr '2T' => 'Tinai', 1830*d5ef99ddSAndreas Gohr 'TF' => 'Tinmo', 1831*d5ef99ddSAndreas Gohr 'TH' => 'TiPhone', 1832*d5ef99ddSAndreas Gohr 'YV' => 'TiVo', 1833*d5ef99ddSAndreas Gohr 'TIV' => 'Tivax', 1834*d5ef99ddSAndreas Gohr 'TIB' => 'Tibuta', 1835*d5ef99ddSAndreas Gohr 'Y3' => 'TOKYO', 1836*d5ef99ddSAndreas Gohr 'TOX' => 'TOX', 1837*d5ef99ddSAndreas Gohr 'T1' => 'Tolino', 1838*d5ef99ddSAndreas Gohr '0T' => 'Tone', 1839*d5ef99ddSAndreas Gohr 'TY' => 'Tooky', 1840*d5ef99ddSAndreas Gohr 'TYD' => 'TYD', 1841*d5ef99ddSAndreas Gohr 'TOO' => 'TOOGO', 1842*d5ef99ddSAndreas Gohr 'TPT' => 'Top-Tech', 1843*d5ef99ddSAndreas Gohr 'T9' => 'Top House', 1844*d5ef99ddSAndreas Gohr 'DK' => 'Topelotek', 1845*d5ef99ddSAndreas Gohr '42' => 'Topway', 1846*d5ef99ddSAndreas Gohr 'TO' => 'Toplux', 1847*d5ef99ddSAndreas Gohr 'TOD' => 'TOPDON', 1848*d5ef99ddSAndreas Gohr 'TOP' => 'TopDevice', 1849*d5ef99ddSAndreas Gohr 'TO2' => 'TOPSHOWS', 1850*d5ef99ddSAndreas Gohr '7T' => 'Torex', 1851*d5ef99ddSAndreas Gohr 'TOR' => 'Torque', 1852*d5ef99ddSAndreas Gohr 'TRN' => 'TORNADO', 1853*d5ef99ddSAndreas Gohr '6O' => 'TOSCIDO', 1854*d5ef99ddSAndreas Gohr 'TO1' => 'Topsion', 1855*d5ef99ddSAndreas Gohr 'TS' => 'Toshiba', 1856*d5ef99ddSAndreas Gohr 'T8' => 'Touchmate', 1857*d5ef99ddSAndreas Gohr 'TOU' => 'Touch Plus', 1858*d5ef99ddSAndreas Gohr '5R' => 'Transpeed', 1859*d5ef99ddSAndreas Gohr 'T6' => 'TrekStor', 1860*d5ef99ddSAndreas Gohr 'TRP' => 'Trecfone', 1861*d5ef99ddSAndreas Gohr 'T3' => 'Trevi', 1862*d5ef99ddSAndreas Gohr 'TRI' => 'TriaPlay', 1863*d5ef99ddSAndreas Gohr 'TJ' => 'Trifone', 1864*d5ef99ddSAndreas Gohr 'Q5' => 'Trident', 1865*d5ef99ddSAndreas Gohr 'TRB' => 'Trimble', 1866*d5ef99ddSAndreas Gohr '4T' => 'Tronsmart', 1867*d5ef99ddSAndreas Gohr '11' => 'True', 1868*d5ef99ddSAndreas Gohr 'JT' => 'True Slim', 1869*d5ef99ddSAndreas Gohr 'J1' => 'Trio', 1870*d5ef99ddSAndreas Gohr 'TRC' => 'Tricolor', 1871*d5ef99ddSAndreas Gohr 'THT' => 'Tsinghua Tongfang', 1872*d5ef99ddSAndreas Gohr '5C' => 'TTEC', 1873*d5ef99ddSAndreas Gohr 'TTF' => 'TTfone', 1874*d5ef99ddSAndreas Gohr 'TTK' => 'TTK-TV', 1875*d5ef99ddSAndreas Gohr 'TU' => 'Tunisie Telecom', 1876*d5ef99ddSAndreas Gohr '1T' => 'Turbo', 1877*d5ef99ddSAndreas Gohr 'TR' => 'Turbo-X', 1878*d5ef99ddSAndreas Gohr '5X' => 'TurboPad', 1879*d5ef99ddSAndreas Gohr '5T' => 'TurboKids', 1880*d5ef99ddSAndreas Gohr 'UR' => 'Turkcell', 1881*d5ef99ddSAndreas Gohr '4U' => 'TuCEL', 1882*d5ef99ddSAndreas Gohr 'TUV' => 'Tuvio', 1883*d5ef99ddSAndreas Gohr 'TUC' => 'TUCSON', 1884*d5ef99ddSAndreas Gohr '2U' => 'Türk Telekom', 1885*d5ef99ddSAndreas Gohr 'TV' => 'TVC', 1886*d5ef99ddSAndreas Gohr 'TVP' => 'TV+', 1887*d5ef99ddSAndreas Gohr 'TW' => 'TWM', 1888*d5ef99ddSAndreas Gohr 'Z1' => 'TWZ', 1889*d5ef99ddSAndreas Gohr '6T' => 'Twoe', 1890*d5ef99ddSAndreas Gohr 'TWN' => 'TwinMOS', 1891*d5ef99ddSAndreas Gohr '15' => 'Tymes', 1892*d5ef99ddSAndreas Gohr 'UC' => 'U.S. Cellular', 1893*d5ef99ddSAndreas Gohr 'UD1' => 'UD', 1894*d5ef99ddSAndreas Gohr 'UGI' => 'UGINE', 1895*d5ef99ddSAndreas Gohr 'UG' => 'Ugoos', 1896*d5ef99ddSAndreas Gohr 'U1' => 'Uhans', 1897*d5ef99ddSAndreas Gohr 'UH' => 'Uhappy', 1898*d5ef99ddSAndreas Gohr 'UL' => 'Ulefone', 1899*d5ef99ddSAndreas Gohr 'UA' => 'Umax', 1900*d5ef99ddSAndreas Gohr 'UM' => 'UMIDIGI', 1901*d5ef99ddSAndreas Gohr 'UM2' => 'Umiio', 1902*d5ef99ddSAndreas Gohr 'UNT' => 'Unitech', 1903*d5ef99ddSAndreas Gohr 'UZ' => 'Unihertz', 1904*d5ef99ddSAndreas Gohr '3Z' => 'UZ Mobile', 1905*d5ef99ddSAndreas Gohr 'UX' => 'Unimax', 1906*d5ef99ddSAndreas Gohr 'UNQ' => 'Uniqcell', 1907*d5ef99ddSAndreas Gohr 'US' => 'Uniscope', 1908*d5ef99ddSAndreas Gohr 'UNI' => 'Unistrong', 1909*d5ef99ddSAndreas Gohr 'U2' => 'UNIWA', 1910*d5ef99ddSAndreas Gohr 'UND' => 'Uniden', 1911*d5ef99ddSAndreas Gohr 'UNE' => 'UNITED', 1912*d5ef99ddSAndreas Gohr 'UGR' => 'United Group', 1913*d5ef99ddSAndreas Gohr 'UO' => 'Unnecto', 1914*d5ef99ddSAndreas Gohr 'UNN' => 'Unnion Technologies', 1915*d5ef99ddSAndreas Gohr 'UNP' => 'UnoPhone', 1916*d5ef99ddSAndreas Gohr 'UU' => 'Unonu', 1917*d5ef99ddSAndreas Gohr 'UN' => 'Unowhy', 1918*d5ef99ddSAndreas Gohr 'UY' => 'UNNO', 1919*d5ef99ddSAndreas Gohr 'UOO' => 'UOOGOU', 1920*d5ef99ddSAndreas Gohr 'UNB' => 'Unblock Tech', 1921*d5ef99ddSAndreas Gohr 'UK' => 'UTOK', 1922*d5ef99ddSAndreas Gohr '3U' => 'IUNI', 1923*d5ef99ddSAndreas Gohr 'UT' => 'UTStarcom', 1924*d5ef99ddSAndreas Gohr '6U' => 'UTime', 1925*d5ef99ddSAndreas Gohr '9U' => 'Urovo', 1926*d5ef99ddSAndreas Gohr 'UW' => 'U-Magic', 1927*d5ef99ddSAndreas Gohr '5V' => 'VAIO', 1928*d5ef99ddSAndreas Gohr 'WV' => 'VAVA', 1929*d5ef99ddSAndreas Gohr 'VA' => 'Vastking', 1930*d5ef99ddSAndreas Gohr 'VP' => 'Vargo', 1931*d5ef99ddSAndreas Gohr 'VC' => 'Vankyo', 1932*d5ef99ddSAndreas Gohr 'VAL' => 'VALEM', 1933*d5ef99ddSAndreas Gohr 'VA2' => 'VALE', 1934*d5ef99ddSAndreas Gohr 'VAT' => 'VALTECH', 1935*d5ef99ddSAndreas Gohr 'VAN' => 'VANGUARD', 1936*d5ef99ddSAndreas Gohr 'VAW' => 'VANWIN', 1937*d5ef99ddSAndreas Gohr 'VB' => 'VC', 1938*d5ef99ddSAndreas Gohr 'VEI' => 'Veidoo', 1939*d5ef99ddSAndreas Gohr 'VN' => 'Venso', 1940*d5ef99ddSAndreas Gohr 'VNP' => 'VNPT Technology', 1941*d5ef99ddSAndreas Gohr 'VEN' => 'Venstar', 1942*d5ef99ddSAndreas Gohr 'UV' => 'Venturer', 1943*d5ef99ddSAndreas Gohr 'VQ' => 'Vega', 1944*d5ef99ddSAndreas Gohr 'WC' => 'VEON', 1945*d5ef99ddSAndreas Gohr '4V' => 'Verico', 1946*d5ef99ddSAndreas Gohr 'V4' => 'Verizon', 1947*d5ef99ddSAndreas Gohr 'VR' => 'Vernee', 1948*d5ef99ddSAndreas Gohr 'VX' => 'Vertex', 1949*d5ef99ddSAndreas Gohr 'VE' => 'Vertu', 1950*d5ef99ddSAndreas Gohr 'VET' => 'VETAS', 1951*d5ef99ddSAndreas Gohr 'VL' => 'Verykool', 1952*d5ef99ddSAndreas Gohr 'QV' => 'Verssed', 1953*d5ef99ddSAndreas Gohr 'VER' => 'Versus', 1954*d5ef99ddSAndreas Gohr 'V8' => 'Vesta', 1955*d5ef99ddSAndreas Gohr 'VEK' => 'Vekta', 1956*d5ef99ddSAndreas Gohr 'VT' => 'Vestel', 1957*d5ef99ddSAndreas Gohr '48' => 'Vexia', 1958*d5ef99ddSAndreas Gohr 'V6' => 'VGO TEL', 1959*d5ef99ddSAndreas Gohr 'QJ' => 'VDVD', 1960*d5ef99ddSAndreas Gohr 'VIC' => 'Victurio', 1961*d5ef99ddSAndreas Gohr 'VD' => 'Videocon', 1962*d5ef99ddSAndreas Gohr 'VW' => 'Videoweb', 1963*d5ef99ddSAndreas Gohr 'VS' => 'ViewSonic', 1964*d5ef99ddSAndreas Gohr 'VIE' => 'Viendo', 1965*d5ef99ddSAndreas Gohr 'VIK' => 'VIKUSHA', 1966*d5ef99ddSAndreas Gohr 'V7' => 'Vinga', 1967*d5ef99ddSAndreas Gohr 'V7T' => 'V7', 1968*d5ef99ddSAndreas Gohr 'V3' => 'Vinsoc', 1969*d5ef99ddSAndreas Gohr 'XD' => 'Vinabox', 1970*d5ef99ddSAndreas Gohr 'FV' => 'Vios', 1971*d5ef99ddSAndreas Gohr '0V' => 'Vipro', 1972*d5ef99ddSAndreas Gohr 'ZV' => 'Virzo', 1973*d5ef99ddSAndreas Gohr 'VIP' => 'Viper', 1974*d5ef99ddSAndreas Gohr 'VI' => 'Vitelcom', 1975*d5ef99ddSAndreas Gohr 'VIB' => 'ViBox', 1976*d5ef99ddSAndreas Gohr '8V' => 'Viumee', 1977*d5ef99ddSAndreas Gohr 'V5' => 'Vivax', 1978*d5ef99ddSAndreas Gohr 'VIV' => 'VIVIMAGE', 1979*d5ef99ddSAndreas Gohr 'VI2' => 'VIVIBright', 1980*d5ef99ddSAndreas Gohr 'VV' => 'Vivo', 1981*d5ef99ddSAndreas Gohr '6V' => 'VIWA', 1982*d5ef99ddSAndreas Gohr 'VII' => 'VIIPOO', 1983*d5ef99ddSAndreas Gohr 'VID' => 'VIDA', 1984*d5ef99ddSAndreas Gohr 'VZ' => 'Vizio', 1985*d5ef99ddSAndreas Gohr 'VIZ' => 'Vizmo', 1986*d5ef99ddSAndreas Gohr 'VIT' => 'Vityaz', 1987*d5ef99ddSAndreas Gohr '9V' => 'Vision Touch', 1988*d5ef99ddSAndreas Gohr 'VIS' => 'Vision Technology', 1989*d5ef99ddSAndreas Gohr 'VST' => 'Visitech', 1990*d5ef99ddSAndreas Gohr 'VIL' => 'Visual Land', 1991*d5ef99ddSAndreas Gohr 'VI1' => 'VILLAON', 1992*d5ef99ddSAndreas Gohr 'VIM' => 'VIMOQ', 1993*d5ef99ddSAndreas Gohr 'VK' => 'VK Mobile', 1994*d5ef99ddSAndreas Gohr 'JM' => 'v-mobile', 1995*d5ef99ddSAndreas Gohr 'VHO' => 'V-HOPE', 1996*d5ef99ddSAndreas Gohr 'VHM' => 'V-HOME', 1997*d5ef99ddSAndreas Gohr 'VGE' => 'V-Gen', 1998*d5ef99ddSAndreas Gohr 'V0' => 'VKworld', 1999*d5ef99ddSAndreas Gohr 'VM' => 'Vodacom', 2000*d5ef99ddSAndreas Gohr 'VOC' => 'VOCAL', 2001*d5ef99ddSAndreas Gohr 'VF' => 'Vodafone', 2002*d5ef99ddSAndreas Gohr '7W' => 'VOGA', 2003*d5ef99ddSAndreas Gohr 'V2' => 'Vonino', 2004*d5ef99ddSAndreas Gohr '1V' => 'Vontar', 2005*d5ef99ddSAndreas Gohr 'VG' => 'Vorago', 2006*d5ef99ddSAndreas Gohr '2V' => 'Vorke', 2007*d5ef99ddSAndreas Gohr '8U' => 'Vorcom', 2008*d5ef99ddSAndreas Gohr 'JW' => 'Vortex', 2009*d5ef99ddSAndreas Gohr 'VRX' => 'VORTEX (RO)', 2010*d5ef99ddSAndreas Gohr 'VOR' => 'Vormor', 2011*d5ef99ddSAndreas Gohr 'V1' => 'Voto', 2012*d5ef99ddSAndreas Gohr 'Z7' => 'VOX', 2013*d5ef99ddSAndreas Gohr 'VO' => 'Voxtel', 2014*d5ef99ddSAndreas Gohr 'VY' => 'Voyo', 2015*d5ef99ddSAndreas Gohr 'VOL' => 'Völfen', 2016*d5ef99ddSAndreas Gohr 'VO1' => 'Volt', 2017*d5ef99ddSAndreas Gohr 'VOP' => 'Volla', 2018*d5ef99ddSAndreas Gohr 'V02' => 'VOLIA', 2019*d5ef99ddSAndreas Gohr 'VH' => 'Vsmart', 2020*d5ef99ddSAndreas Gohr 'V9' => 'Vsun', 2021*d5ef99ddSAndreas Gohr 'VU' => 'Vulcan', 2022*d5ef99ddSAndreas Gohr '3V' => 'VVETIME', 2023*d5ef99ddSAndreas Gohr 'ZC' => 'VUCATIMES', 2024*d5ef99ddSAndreas Gohr 'VO2' => 'VOLKANO', 2025*d5ef99ddSAndreas Gohr 'VUE' => 'Vue Micro', 2026*d5ef99ddSAndreas Gohr 'WAK' => 'Walker', 2027*d5ef99ddSAndreas Gohr 'WA' => 'Walton', 2028*d5ef99ddSAndreas Gohr 'WAF' => 'WAF', 2029*d5ef99ddSAndreas Gohr 'WAO' => 'W&O', 2030*d5ef99ddSAndreas Gohr 'WLT' => 'Waltham', 2031*d5ef99ddSAndreas Gohr 'WAL' => 'Waltter', 2032*d5ef99ddSAndreas Gohr 'WAI' => 'Wainyok', 2033*d5ef99ddSAndreas Gohr 'WHI' => 'White Mobile', 2034*d5ef99ddSAndreas Gohr 'WHO' => 'Whoop', 2035*d5ef99ddSAndreas Gohr 'WBL' => 'We. by Loewe.', 2036*d5ef99ddSAndreas Gohr 'WCP' => 'WeChip', 2037*d5ef99ddSAndreas Gohr 'WM' => 'Weimei', 2038*d5ef99ddSAndreas Gohr 'WM1' => 'Weiimi', 2039*d5ef99ddSAndreas Gohr 'WE' => 'WellcoM', 2040*d5ef99ddSAndreas Gohr 'W6' => 'WELLINGTON', 2041*d5ef99ddSAndreas Gohr 'WD' => 'Western Digital', 2042*d5ef99ddSAndreas Gohr 'WST' => 'Weston', 2043*d5ef99ddSAndreas Gohr 'WT' => 'Westpoint', 2044*d5ef99ddSAndreas Gohr 'WAN' => 'Wanmukang', 2045*d5ef99ddSAndreas Gohr 'WA1' => 'WANSA', 2046*d5ef99ddSAndreas Gohr 'WY' => 'Wexler', 2047*d5ef99ddSAndreas Gohr '3W' => 'WE', 2048*d5ef99ddSAndreas Gohr 'WEC' => 'Wecool', 2049*d5ef99ddSAndreas Gohr 'WEE' => 'Weelikeit', 2050*d5ef99ddSAndreas Gohr 'WP' => 'Wieppo', 2051*d5ef99ddSAndreas Gohr 'W2' => 'Wigor', 2052*d5ef99ddSAndreas Gohr 'WI' => 'Wiko', 2053*d5ef99ddSAndreas Gohr 'WF' => 'Wileyfox', 2054*d5ef99ddSAndreas Gohr 'WLR' => 'WildRed', 2055*d5ef99ddSAndreas Gohr 'WS' => 'Winds', 2056*d5ef99ddSAndreas Gohr 'WN' => 'Wink', 2057*d5ef99ddSAndreas Gohr '9W' => 'Winmax', 2058*d5ef99ddSAndreas Gohr 'W5' => 'Winnovo', 2059*d5ef99ddSAndreas Gohr 'WU' => 'Wintouch', 2060*d5ef99ddSAndreas Gohr 'WIS' => 'Winstar', 2061*d5ef99ddSAndreas Gohr 'W0' => 'Wiseasy', 2062*d5ef99ddSAndreas Gohr '2W' => 'Wizz', 2063*d5ef99ddSAndreas Gohr 'W4' => 'WIWA', 2064*d5ef99ddSAndreas Gohr 'WIZ' => 'WizarPos', 2065*d5ef99ddSAndreas Gohr 'WL' => 'Wolder', 2066*d5ef99ddSAndreas Gohr 'WG' => 'Wolfgang', 2067*d5ef99ddSAndreas Gohr 'WQ' => 'Wolki', 2068*d5ef99ddSAndreas Gohr 'WON' => 'WONDER', 2069*d5ef99ddSAndreas Gohr 'WO' => 'Wonu', 2070*d5ef99ddSAndreas Gohr 'W1' => 'Woo', 2071*d5ef99ddSAndreas Gohr 'WR' => 'Wortmann', 2072*d5ef99ddSAndreas Gohr 'WX' => 'Woxter', 2073*d5ef99ddSAndreas Gohr 'WOZ' => 'WOZIFAN', 2074*d5ef99ddSAndreas Gohr 'XQ' => 'X-AGE', 2075*d5ef99ddSAndreas Gohr 'XEL' => 'XElectron', 2076*d5ef99ddSAndreas Gohr 'X3' => 'X-BO', 2077*d5ef99ddSAndreas Gohr 'XBI' => 'XB', 2078*d5ef99ddSAndreas Gohr 'XMO' => 'X-Mobile', 2079*d5ef99ddSAndreas Gohr 'XT' => 'X-TIGI', 2080*d5ef99ddSAndreas Gohr 'XV' => 'X-View', 2081*d5ef99ddSAndreas Gohr 'X4' => 'X.Vision', 2082*d5ef99ddSAndreas Gohr 'X88' => 'X88', 2083*d5ef99ddSAndreas Gohr 'X96' => 'X96', 2084*d5ef99ddSAndreas Gohr '96Q' => 'X96Q', 2085*d5ef99ddSAndreas Gohr 'A95' => 'A95X', 2086*d5ef99ddSAndreas Gohr 'XG' => 'Xgody', 2087*d5ef99ddSAndreas Gohr 'XGE' => 'XGEM', 2088*d5ef99ddSAndreas Gohr 'QX' => 'XGIMI', 2089*d5ef99ddSAndreas Gohr 'XL' => 'Xiaolajiao', 2090*d5ef99ddSAndreas Gohr 'XI' => 'Xiaomi', 2091*d5ef99ddSAndreas Gohr 'XW' => 'Xiaodu', 2092*d5ef99ddSAndreas Gohr 'XN' => 'Xion', 2093*d5ef99ddSAndreas Gohr 'XO' => 'Xolo', 2094*d5ef99ddSAndreas Gohr 'XR' => 'Xoro', 2095*d5ef99ddSAndreas Gohr 'XPP' => 'XPPen', 2096*d5ef99ddSAndreas Gohr 'XRL' => 'XREAL', 2097*d5ef99ddSAndreas Gohr 'XS' => 'Xshitou', 2098*d5ef99ddSAndreas Gohr 'XSM' => 'Xsmart', 2099*d5ef99ddSAndreas Gohr '4X' => 'Xtouch', 2100*d5ef99ddSAndreas Gohr 'X8' => 'Xtratech', 2101*d5ef99ddSAndreas Gohr 'XCR' => 'Xcruiser', 2102*d5ef99ddSAndreas Gohr 'XCO' => 'XCOM', 2103*d5ef99ddSAndreas Gohr 'XCL' => 'Xcell', 2104*d5ef99ddSAndreas Gohr 'XWA' => 'Xwave', 2105*d5ef99ddSAndreas Gohr 'YD' => 'Yandex', 2106*d5ef99ddSAndreas Gohr 'YA' => 'Yarvik', 2107*d5ef99ddSAndreas Gohr 'Y2' => 'Yes', 2108*d5ef99ddSAndreas Gohr 'YES' => 'Yestel', 2109*d5ef99ddSAndreas Gohr 'YE' => 'Yezz', 2110*d5ef99ddSAndreas Gohr 'YG' => 'YEPEN', 2111*d5ef99ddSAndreas Gohr 'YEL' => 'YELLYOUTH', 2112*d5ef99ddSAndreas Gohr 'YK' => 'Yoka TV', 2113*d5ef99ddSAndreas Gohr 'YO' => 'Yota', 2114*d5ef99ddSAndreas Gohr 'YOU' => 'Youin', 2115*d5ef99ddSAndreas Gohr 'YO1' => 'Youwei', 2116*d5ef99ddSAndreas Gohr 'YOO' => 'Yooz', 2117*d5ef99ddSAndreas Gohr 'YT' => 'Ytone', 2118*d5ef99ddSAndreas Gohr 'Y9' => 'YOTOPT', 2119*d5ef99ddSAndreas Gohr 'Y1' => 'Yu', 2120*d5ef99ddSAndreas Gohr 'YF' => 'YU Fly', 2121*d5ef99ddSAndreas Gohr 'Y0' => 'YUHO', 2122*d5ef99ddSAndreas Gohr 'YN' => 'Yuno', 2123*d5ef99ddSAndreas Gohr 'YUN' => 'YUNDOO', 2124*d5ef99ddSAndreas Gohr 'YUS' => 'YunSong', 2125*d5ef99ddSAndreas Gohr 'YUM' => 'YUMKEM', 2126*d5ef99ddSAndreas Gohr 'YU' => 'Yuandao', 2127*d5ef99ddSAndreas Gohr 'YS' => 'Yusun', 2128*d5ef99ddSAndreas Gohr 'YJ' => 'YASIN', 2129*d5ef99ddSAndreas Gohr 'YX' => 'Yxtel', 2130*d5ef99ddSAndreas Gohr '0Z' => 'Zatec', 2131*d5ef99ddSAndreas Gohr '2Z' => 'Zaith', 2132*d5ef99ddSAndreas Gohr 'ZAM' => 'Zamolxe', 2133*d5ef99ddSAndreas Gohr 'ZZB' => 'ZZB', 2134*d5ef99ddSAndreas Gohr 'ZEA' => 'Zealot', 2135*d5ef99ddSAndreas Gohr 'PZ' => 'Zebra', 2136*d5ef99ddSAndreas Gohr 'ZE1' => 'Zeblaze', 2137*d5ef99ddSAndreas Gohr 'ZE' => 'Zeemi', 2138*d5ef99ddSAndreas Gohr 'WZ' => 'Zeeker', 2139*d5ef99ddSAndreas Gohr 'ZN' => 'Zen', 2140*d5ef99ddSAndreas Gohr 'ZK' => 'Zenek', 2141*d5ef99ddSAndreas Gohr 'ZL' => 'Zentality', 2142*d5ef99ddSAndreas Gohr 'ZF' => 'Zfiner', 2143*d5ef99ddSAndreas Gohr 'ZI' => 'Zidoo', 2144*d5ef99ddSAndreas Gohr 'FZ' => 'ZIFRO', 2145*d5ef99ddSAndreas Gohr 'ZIF' => 'ZIFFLER', 2146*d5ef99ddSAndreas Gohr 'ZIO' => 'ZIOVO', 2147*d5ef99ddSAndreas Gohr 'ZX' => 'Ziox', 2148*d5ef99ddSAndreas Gohr 'ZIK' => 'ZIK', 2149*d5ef99ddSAndreas Gohr 'ZKI' => 'Z-Kai', 2150*d5ef99ddSAndreas Gohr 'ZIG' => 'Zigo', 2151*d5ef99ddSAndreas Gohr 'ZIN' => 'Zinox', 2152*d5ef99ddSAndreas Gohr 'ZO' => 'Zonda', 2153*d5ef99ddSAndreas Gohr 'ZW' => 'Zonko', 2154*d5ef99ddSAndreas Gohr 'ZP' => 'Zopo', 2155*d5ef99ddSAndreas Gohr 'ZOO' => 'ZoomSmart', 2156*d5ef99ddSAndreas Gohr 'ZO1' => 'Zoom', 2157*d5ef99ddSAndreas Gohr 'ZT' => 'ZTE', 2158*d5ef99ddSAndreas Gohr 'ZU' => 'Zuum', 2159*d5ef99ddSAndreas Gohr 'ZY' => 'Zync', 2160*d5ef99ddSAndreas Gohr 'ZR' => 'Zyrex', 2161*d5ef99ddSAndreas Gohr 'ZQ' => 'ZYQ', 2162*d5ef99ddSAndreas Gohr 'Z4' => 'ZH&K', 2163*d5ef99ddSAndreas Gohr 'OW' => 'öwn', 2164*d5ef99ddSAndreas Gohr 'WBF' => 'Webfleet', 2165*d5ef99ddSAndreas Gohr 'WSS' => 'WS', 2166*d5ef99ddSAndreas Gohr // legacy brands, might be removed in future versions 2167*d5ef99ddSAndreas Gohr 'WB' => 'Web TV', 2168*d5ef99ddSAndreas Gohr 'XX' => 'Unknown', 2169*d5ef99ddSAndreas Gohr ]; 2170*d5ef99ddSAndreas Gohr 2171*d5ef99ddSAndreas Gohr /** 2172*d5ef99ddSAndreas Gohr * Mapping formFactor types to parser device types 2173*d5ef99ddSAndreas Gohr * (not sort array the array priority result device type) 2174*d5ef99ddSAndreas Gohr * @var array 2175*d5ef99ddSAndreas Gohr */ 2176*d5ef99ddSAndreas Gohr protected static $clientHintFormFactorsMapping = [ 2177*d5ef99ddSAndreas Gohr 'automotive' => self::DEVICE_TYPE_CAR_BROWSER, 2178*d5ef99ddSAndreas Gohr 'xr' => self::DEVICE_TYPE_WEARABLE, 2179*d5ef99ddSAndreas Gohr 'watch' => self::DEVICE_TYPE_WEARABLE, 2180*d5ef99ddSAndreas Gohr 'mobile' => self::DEVICE_TYPE_SMARTPHONE, 2181*d5ef99ddSAndreas Gohr 'tablet' => self::DEVICE_TYPE_TABLET, 2182*d5ef99ddSAndreas Gohr 'desktop' => self::DEVICE_TYPE_DESKTOP, 2183*d5ef99ddSAndreas Gohr 'eink' => self::DEVICE_TYPE_TABLET, 2184*d5ef99ddSAndreas Gohr ]; 2185*d5ef99ddSAndreas Gohr 2186*d5ef99ddSAndreas Gohr /** 2187*d5ef99ddSAndreas Gohr * Returns the device type represented by one of the DEVICE_TYPE_* constants 2188*d5ef99ddSAndreas Gohr * 2189*d5ef99ddSAndreas Gohr * @return int|null 2190*d5ef99ddSAndreas Gohr */ 2191*d5ef99ddSAndreas Gohr public function getDeviceType(): ?int 2192*d5ef99ddSAndreas Gohr { 2193*d5ef99ddSAndreas Gohr return $this->deviceType; 2194*d5ef99ddSAndreas Gohr } 2195*d5ef99ddSAndreas Gohr 2196*d5ef99ddSAndreas Gohr /** 2197*d5ef99ddSAndreas Gohr * Returns available device types 2198*d5ef99ddSAndreas Gohr * 2199*d5ef99ddSAndreas Gohr * @see $deviceTypes 2200*d5ef99ddSAndreas Gohr * 2201*d5ef99ddSAndreas Gohr * @return array 2202*d5ef99ddSAndreas Gohr */ 2203*d5ef99ddSAndreas Gohr public static function getAvailableDeviceTypes(): array 2204*d5ef99ddSAndreas Gohr { 2205*d5ef99ddSAndreas Gohr return self::$deviceTypes; 2206*d5ef99ddSAndreas Gohr } 2207*d5ef99ddSAndreas Gohr 2208*d5ef99ddSAndreas Gohr /** 2209*d5ef99ddSAndreas Gohr * Returns names of all available device types 2210*d5ef99ddSAndreas Gohr * 2211*d5ef99ddSAndreas Gohr * @return array 2212*d5ef99ddSAndreas Gohr */ 2213*d5ef99ddSAndreas Gohr public static function getAvailableDeviceTypeNames(): array 2214*d5ef99ddSAndreas Gohr { 2215*d5ef99ddSAndreas Gohr return \array_keys(self::$deviceTypes); 2216*d5ef99ddSAndreas Gohr } 2217*d5ef99ddSAndreas Gohr 2218*d5ef99ddSAndreas Gohr /** 2219*d5ef99ddSAndreas Gohr * Returns the name of the given device type 2220*d5ef99ddSAndreas Gohr * 2221*d5ef99ddSAndreas Gohr * @param int $deviceType one of the DEVICE_TYPE_* constants 2222*d5ef99ddSAndreas Gohr * 2223*d5ef99ddSAndreas Gohr * @return string 2224*d5ef99ddSAndreas Gohr */ 2225*d5ef99ddSAndreas Gohr public static function getDeviceName(int $deviceType): string 2226*d5ef99ddSAndreas Gohr { 2227*d5ef99ddSAndreas Gohr $deviceName = \array_search($deviceType, self::$deviceTypes); 2228*d5ef99ddSAndreas Gohr 2229*d5ef99ddSAndreas Gohr if (\is_string($deviceName)) { 2230*d5ef99ddSAndreas Gohr return $deviceName; 2231*d5ef99ddSAndreas Gohr } 2232*d5ef99ddSAndreas Gohr 2233*d5ef99ddSAndreas Gohr return ''; 2234*d5ef99ddSAndreas Gohr } 2235*d5ef99ddSAndreas Gohr 2236*d5ef99ddSAndreas Gohr /** 2237*d5ef99ddSAndreas Gohr * Returns the detected device model 2238*d5ef99ddSAndreas Gohr * 2239*d5ef99ddSAndreas Gohr * @return string 2240*d5ef99ddSAndreas Gohr */ 2241*d5ef99ddSAndreas Gohr public function getModel(): string 2242*d5ef99ddSAndreas Gohr { 2243*d5ef99ddSAndreas Gohr return $this->model; 2244*d5ef99ddSAndreas Gohr } 2245*d5ef99ddSAndreas Gohr 2246*d5ef99ddSAndreas Gohr /** 2247*d5ef99ddSAndreas Gohr * Returns the detected device brand 2248*d5ef99ddSAndreas Gohr * 2249*d5ef99ddSAndreas Gohr * @return string 2250*d5ef99ddSAndreas Gohr */ 2251*d5ef99ddSAndreas Gohr public function getBrand(): string 2252*d5ef99ddSAndreas Gohr { 2253*d5ef99ddSAndreas Gohr return $this->brand; 2254*d5ef99ddSAndreas Gohr } 2255*d5ef99ddSAndreas Gohr 2256*d5ef99ddSAndreas Gohr /** 2257*d5ef99ddSAndreas Gohr * Returns the full brand name for the given short name 2258*d5ef99ddSAndreas Gohr * 2259*d5ef99ddSAndreas Gohr * @param string $brandId short brand name 2260*d5ef99ddSAndreas Gohr * 2261*d5ef99ddSAndreas Gohr * @return string 2262*d5ef99ddSAndreas Gohr */ 2263*d5ef99ddSAndreas Gohr public static function getFullName(string $brandId): string 2264*d5ef99ddSAndreas Gohr { 2265*d5ef99ddSAndreas Gohr if (\array_key_exists($brandId, self::$deviceBrands)) { 2266*d5ef99ddSAndreas Gohr return self::$deviceBrands[$brandId]; 2267*d5ef99ddSAndreas Gohr } 2268*d5ef99ddSAndreas Gohr 2269*d5ef99ddSAndreas Gohr return ''; 2270*d5ef99ddSAndreas Gohr } 2271*d5ef99ddSAndreas Gohr 2272*d5ef99ddSAndreas Gohr /** 2273*d5ef99ddSAndreas Gohr * Returns the brand short code for the given name 2274*d5ef99ddSAndreas Gohr * 2275*d5ef99ddSAndreas Gohr * @param string $brand brand name 2276*d5ef99ddSAndreas Gohr * 2277*d5ef99ddSAndreas Gohr * @return string 2278*d5ef99ddSAndreas Gohr * 2279*d5ef99ddSAndreas Gohr * @deprecated since 4.0 - short codes might be removed in next major release 2280*d5ef99ddSAndreas Gohr */ 2281*d5ef99ddSAndreas Gohr public static function getShortCode(string $brand): string 2282*d5ef99ddSAndreas Gohr { 2283*d5ef99ddSAndreas Gohr return (string) \array_search($brand, self::$deviceBrands) ?: ''; 2284*d5ef99ddSAndreas Gohr } 2285*d5ef99ddSAndreas Gohr 2286*d5ef99ddSAndreas Gohr /** 2287*d5ef99ddSAndreas Gohr * Sets the useragent to be parsed 2288*d5ef99ddSAndreas Gohr * 2289*d5ef99ddSAndreas Gohr * @param string $userAgent 2290*d5ef99ddSAndreas Gohr */ 2291*d5ef99ddSAndreas Gohr public function setUserAgent(string $userAgent): void 2292*d5ef99ddSAndreas Gohr { 2293*d5ef99ddSAndreas Gohr $this->reset(); 2294*d5ef99ddSAndreas Gohr parent::setUserAgent($userAgent); 2295*d5ef99ddSAndreas Gohr } 2296*d5ef99ddSAndreas Gohr 2297*d5ef99ddSAndreas Gohr /** 2298*d5ef99ddSAndreas Gohr * @inheritdoc 2299*d5ef99ddSAndreas Gohr */ 2300*d5ef99ddSAndreas Gohr public function parse(): ?array 2301*d5ef99ddSAndreas Gohr { 2302*d5ef99ddSAndreas Gohr $resultClientHint = $this->parseClientHints(); 2303*d5ef99ddSAndreas Gohr $deviceModel = $resultClientHint['model'] ?? ''; 2304*d5ef99ddSAndreas Gohr 2305*d5ef99ddSAndreas Gohr $this->restoreUserAgentFromClientHints(); 2306*d5ef99ddSAndreas Gohr 2307*d5ef99ddSAndreas Gohr if ('' === $deviceModel && $this->hasUserAgentClientHintsFragment()) { 2308*d5ef99ddSAndreas Gohr return $this->getResult(); 2309*d5ef99ddSAndreas Gohr } 2310*d5ef99ddSAndreas Gohr 2311*d5ef99ddSAndreas Gohr if ('' === $deviceModel && $this->hasDesktopFragment()) { 2312*d5ef99ddSAndreas Gohr return $this->getResult(); 2313*d5ef99ddSAndreas Gohr } 2314*d5ef99ddSAndreas Gohr 2315*d5ef99ddSAndreas Gohr $brand = ''; 2316*d5ef99ddSAndreas Gohr $regexes = $this->getRegexes(); 2317*d5ef99ddSAndreas Gohr 2318*d5ef99ddSAndreas Gohr foreach ($regexes as $brand => $regex) { 2319*d5ef99ddSAndreas Gohr $matches = $this->matchUserAgent($regex['regex']); 2320*d5ef99ddSAndreas Gohr 2321*d5ef99ddSAndreas Gohr if ($matches) { 2322*d5ef99ddSAndreas Gohr break; 2323*d5ef99ddSAndreas Gohr } 2324*d5ef99ddSAndreas Gohr } 2325*d5ef99ddSAndreas Gohr 2326*d5ef99ddSAndreas Gohr if (empty($matches)) { 2327*d5ef99ddSAndreas Gohr $this->deviceType = $resultClientHint['deviceType'] ?? null; 2328*d5ef99ddSAndreas Gohr 2329*d5ef99ddSAndreas Gohr return $resultClientHint; 2330*d5ef99ddSAndreas Gohr } 2331*d5ef99ddSAndreas Gohr 2332*d5ef99ddSAndreas Gohr if ('Unknown' !== $brand) { 2333*d5ef99ddSAndreas Gohr if (!\in_array($brand, self::$deviceBrands)) { 2334*d5ef99ddSAndreas Gohr // This Exception should never be thrown. If so a defined brand name is missing in $deviceBrands 2335*d5ef99ddSAndreas Gohr throw new \Exception(\sprintf( 2336*d5ef99ddSAndreas Gohr "The brand with name '%s' should be listed in deviceBrands array. Tried to parse user agent: %s", 2337*d5ef99ddSAndreas Gohr $brand, 2338*d5ef99ddSAndreas Gohr $this->userAgent 2339*d5ef99ddSAndreas Gohr )); // @codeCoverageIgnore 2340*d5ef99ddSAndreas Gohr } 2341*d5ef99ddSAndreas Gohr 2342*d5ef99ddSAndreas Gohr $this->brand = (string) $brand; 2343*d5ef99ddSAndreas Gohr } 2344*d5ef99ddSAndreas Gohr 2345*d5ef99ddSAndreas Gohr if (isset($regex['device']) && \array_key_exists($regex['device'], self::$deviceTypes)) { 2346*d5ef99ddSAndreas Gohr $this->deviceType = self::$deviceTypes[$regex['device']]; 2347*d5ef99ddSAndreas Gohr } 2348*d5ef99ddSAndreas Gohr 2349*d5ef99ddSAndreas Gohr $this->model = ''; 2350*d5ef99ddSAndreas Gohr 2351*d5ef99ddSAndreas Gohr if (isset($regex['model'])) { 2352*d5ef99ddSAndreas Gohr $this->model = $this->buildModel($regex['model'], $matches); 2353*d5ef99ddSAndreas Gohr } 2354*d5ef99ddSAndreas Gohr 2355*d5ef99ddSAndreas Gohr if (isset($regex['models'])) { 2356*d5ef99ddSAndreas Gohr $modelRegex = ''; 2357*d5ef99ddSAndreas Gohr 2358*d5ef99ddSAndreas Gohr foreach ($regex['models'] as $modelRegex) { 2359*d5ef99ddSAndreas Gohr $modelMatches = $this->matchUserAgent($modelRegex['regex']); 2360*d5ef99ddSAndreas Gohr 2361*d5ef99ddSAndreas Gohr if ($modelMatches) { 2362*d5ef99ddSAndreas Gohr break; 2363*d5ef99ddSAndreas Gohr } 2364*d5ef99ddSAndreas Gohr } 2365*d5ef99ddSAndreas Gohr 2366*d5ef99ddSAndreas Gohr if (empty($modelMatches)) { 2367*d5ef99ddSAndreas Gohr return $this->getResult(); 2368*d5ef99ddSAndreas Gohr } 2369*d5ef99ddSAndreas Gohr 2370*d5ef99ddSAndreas Gohr $this->model = $this->buildModel($modelRegex['model'], $modelMatches); 2371*d5ef99ddSAndreas Gohr 2372*d5ef99ddSAndreas Gohr if (isset($modelRegex['brand']) && \in_array($modelRegex['brand'], self::$deviceBrands)) { 2373*d5ef99ddSAndreas Gohr $this->brand = (string) $modelRegex['brand']; 2374*d5ef99ddSAndreas Gohr } 2375*d5ef99ddSAndreas Gohr 2376*d5ef99ddSAndreas Gohr if (isset($modelRegex['device']) && \array_key_exists($modelRegex['device'], self::$deviceTypes)) { 2377*d5ef99ddSAndreas Gohr $this->deviceType = self::$deviceTypes[$modelRegex['device']]; 2378*d5ef99ddSAndreas Gohr } 2379*d5ef99ddSAndreas Gohr } 2380*d5ef99ddSAndreas Gohr 2381*d5ef99ddSAndreas Gohr return $this->getResult(); 2382*d5ef99ddSAndreas Gohr } 2383*d5ef99ddSAndreas Gohr 2384*d5ef99ddSAndreas Gohr /** 2385*d5ef99ddSAndreas Gohr * @param string $model 2386*d5ef99ddSAndreas Gohr * @param array $matches 2387*d5ef99ddSAndreas Gohr * 2388*d5ef99ddSAndreas Gohr * @return string 2389*d5ef99ddSAndreas Gohr */ 2390*d5ef99ddSAndreas Gohr protected function buildModel(string $model, array $matches): string 2391*d5ef99ddSAndreas Gohr { 2392*d5ef99ddSAndreas Gohr $model = $this->buildByMatch($model, $matches); 2393*d5ef99ddSAndreas Gohr 2394*d5ef99ddSAndreas Gohr $model = \str_replace('_', ' ', $model); 2395*d5ef99ddSAndreas Gohr 2396*d5ef99ddSAndreas Gohr $model = \preg_replace('/ TD$/i', '', $model); 2397*d5ef99ddSAndreas Gohr 2398*d5ef99ddSAndreas Gohr if ('Build' === $model || empty($model)) { 2399*d5ef99ddSAndreas Gohr return ''; 2400*d5ef99ddSAndreas Gohr } 2401*d5ef99ddSAndreas Gohr 2402*d5ef99ddSAndreas Gohr return \trim($model); 2403*d5ef99ddSAndreas Gohr } 2404*d5ef99ddSAndreas Gohr 2405*d5ef99ddSAndreas Gohr /** 2406*d5ef99ddSAndreas Gohr * @return array|null 2407*d5ef99ddSAndreas Gohr */ 2408*d5ef99ddSAndreas Gohr protected function parseClientHints(): ?array 2409*d5ef99ddSAndreas Gohr { 2410*d5ef99ddSAndreas Gohr if ($this->clientHints && $this->clientHints->getModel()) { 2411*d5ef99ddSAndreas Gohr $detectedDeviceType = null; 2412*d5ef99ddSAndreas Gohr $formFactors = $this->clientHints->getFormFactors(); 2413*d5ef99ddSAndreas Gohr 2414*d5ef99ddSAndreas Gohr foreach (self::$clientHintFormFactorsMapping as $formFactor => $deviceType) { 2415*d5ef99ddSAndreas Gohr if (\in_array($formFactor, $formFactors)) { 2416*d5ef99ddSAndreas Gohr $detectedDeviceType = $deviceType; 2417*d5ef99ddSAndreas Gohr 2418*d5ef99ddSAndreas Gohr break; 2419*d5ef99ddSAndreas Gohr } 2420*d5ef99ddSAndreas Gohr } 2421*d5ef99ddSAndreas Gohr 2422*d5ef99ddSAndreas Gohr return [ 2423*d5ef99ddSAndreas Gohr 'deviceType' => $detectedDeviceType, 2424*d5ef99ddSAndreas Gohr 'model' => $this->clientHints->getModel(), 2425*d5ef99ddSAndreas Gohr 'brand' => '', 2426*d5ef99ddSAndreas Gohr ]; 2427*d5ef99ddSAndreas Gohr } 2428*d5ef99ddSAndreas Gohr 2429*d5ef99ddSAndreas Gohr return null; 2430*d5ef99ddSAndreas Gohr } 2431*d5ef99ddSAndreas Gohr 2432*d5ef99ddSAndreas Gohr /** 2433*d5ef99ddSAndreas Gohr * Resets the stored values 2434*d5ef99ddSAndreas Gohr */ 2435*d5ef99ddSAndreas Gohr protected function reset(): void 2436*d5ef99ddSAndreas Gohr { 2437*d5ef99ddSAndreas Gohr $this->deviceType = null; 2438*d5ef99ddSAndreas Gohr $this->model = ''; 2439*d5ef99ddSAndreas Gohr $this->brand = ''; 2440*d5ef99ddSAndreas Gohr } 2441*d5ef99ddSAndreas Gohr 2442*d5ef99ddSAndreas Gohr /** 2443*d5ef99ddSAndreas Gohr * @return array 2444*d5ef99ddSAndreas Gohr */ 2445*d5ef99ddSAndreas Gohr protected function getResult(): array 2446*d5ef99ddSAndreas Gohr { 2447*d5ef99ddSAndreas Gohr return [ 2448*d5ef99ddSAndreas Gohr 'deviceType' => $this->deviceType, 2449*d5ef99ddSAndreas Gohr 'model' => $this->model, 2450*d5ef99ddSAndreas Gohr 'brand' => $this->brand, 2451*d5ef99ddSAndreas Gohr ]; 2452*d5ef99ddSAndreas Gohr } 2453*d5ef99ddSAndreas Gohr} 2454