UNPKG

176 kBJavaScriptView Raw
1"use strict";
2
3/**
4 * TL;DR: Don't touch this.
5 *
6 * DO NOT EDIT THIS FILE, IT IS AUTOMATICALLY GENERATED AND COMPILED FROM AN
7 * EXTERNAL REGEXPS DATABASE. TO UPDATE THIS FILE MANUALLY PLEASE RUN THE:
8 *
9 * ```
10 * npm run update
11 * ```
12 *
13 * COMMAND FROM THE ROOT OF THIS REPOSITORY. IF YOU FOUND A REGULAR EXPRESSION THAT
14 * IS BROKEN OR MISSING. PLEASE MAKE THE PULL REQUESTS TO REGEXP DATABASE NOT TO
15 * THIS MODULE AS THEY WILL BE REJECTED INSTANTLY. THE SOURCE FILE LOCATION CAN
16 * BE FOUND IN THE `update.js` FILE WHICH IS IN THE SAME FOLDER AS THIS FILE. PLEASE
17 * SEE THE `exports.remote` PART OF THE FILE.
18 */
19
20
21var parser;
22
23exports.browser = Object.create(null);
24
25parser = Object.create(null);
26parser[0] = new RegExp("(Rival IQ, rivaliq.com)");
27parser[1] = "Rival IQ";
28parser[2] = 0;
29parser[3] = 0;
30parser[4] = 0;
31exports.browser[0] = parser;
32parser = Object.create(null);
33parser[0] = new RegExp("(Pingdom.com_bot_version_)(\\d+)\\.(\\d+)");
34parser[1] = "PingdomBot";
35parser[2] = 0;
36parser[3] = 0;
37parser[4] = 0;
38exports.browser[1] = parser;
39parser = Object.create(null);
40parser[0] = new RegExp("(facebookexternalhit)/(\\d+)\\.(\\d+)");
41parser[1] = "FacebookBot";
42parser[2] = 0;
43parser[3] = 0;
44parser[4] = 0;
45exports.browser[2] = parser;
46parser = Object.create(null);
47parser[0] = new RegExp("Google.*/\\+/web/snippet");
48parser[1] = "GooglePlusBot";
49parser[2] = 0;
50parser[3] = 0;
51parser[4] = 0;
52exports.browser[3] = parser;
53parser = Object.create(null);
54parser[0] = new RegExp("/((?:Ant-)?Nutch|[A-z]+[Bb]ot|[A-z]+[Ss]pider|Axtaris|fetchurl|Isara|ShopSalad|Tailsweep)[ \\-](\\d+)(?:\\.(\\d+)(?:\\.(\\d+))?)?");
55parser[1] = 0;
56parser[2] = 0;
57parser[3] = 0;
58parser[4] = 0;
59exports.browser[4] = parser;
60parser = Object.create(null);
61parser[0] = new RegExp("(008|Altresium|Argus|BaiduMobaider|BoardReader|DNSGroup|DataparkSearch|EDI|Goodzer|Grub|INGRID|Infohelfer|LinkedInBot|LOOQ|Nutch|PathDefender|Peew|PostPost|Steeler|Twitterbot|VSE|WebCrunch|WebZIP|Y!J-BR[A-Z]|YahooSeeker|envolk|sproose|wminer)/(\\d+)(?:\\.(\\d+)(?:\\.(\\d+))?)?(?:(?!CFNetwork).)*$");
62parser[1] = 0;
63parser[2] = 0;
64parser[3] = 0;
65parser[4] = 0;
66exports.browser[5] = parser;
67parser = Object.create(null);
68parser[0] = new RegExp("(MSIE) (\\d+)\\.(\\d+)([a-z]\\d?)?;.* MSIECrawler");
69parser[1] = "MSIECrawler";
70parser[2] = 0;
71parser[3] = 0;
72parser[4] = 0;
73exports.browser[6] = parser;
74parser = Object.create(null);
75parser[0] = new RegExp("(Google-HTTP-Java-Client|Apache-HttpClient|http%20client|Python-urllib|HttpMonitor|TLSProber|WinHTTP|JNLP)(?:[ /](\\d+)(?:\\.(\\d+)(?:\\.(\\d+))?)?)?");
76parser[1] = 0;
77parser[2] = 0;
78parser[3] = 0;
79parser[4] = 0;
80exports.browser[7] = parser;
81parser = Object.create(null);
82parser[0] = new RegExp("(1470\\.net crawler|50\\.nu|8bo Crawler Bot|Aboundex|Accoona-[A-z]+-Agent|AdsBot-Google(?:-[a-z]+)?|altavista|AppEngine-Google|archive.*?\\.org_bot|archiver|Ask Jeeves|[Bb]ai[Dd]u[Ss]pider(?:-[A-Za-z]+)*|bingbot|BingPreview|blitzbot|BlogBridge|BoardReader(?: [A-Za-z]+)*|boitho.com-dc|BotSeer|\\b\\w*favicon\\w*\\b|\\bYeti(?:-[a-z]+)?|Catchpoint bot|[Cc]harlotte|Checklinks|clumboot|Comodo HTTP\\(S\\) Crawler|Comodo-Webinspector-Crawler|ConveraCrawler|CRAWL-E|CrawlConvera|Daumoa(?:-feedfetcher)?|Feed Seeker Bot|findlinks|Flamingo_SearchEngine|FollowSite Bot|furlbot|Genieo|gigabot|GomezAgent|gonzo1|(?:[a-zA-Z]+-)?Googlebot(?:-[a-zA-Z]+)?|Google SketchUp|grub-client|gsa-crawler|heritrix|HiddenMarket|holmes|HooWWWer|htdig|ia_archiver|ICC-Crawler|Icarus6j|ichiro(?:/mobile)?|IconSurf|IlTrovatore(?:-Setaccio)?|InfuzApp|Innovazion Crawler|InternetArchive|IP2[a-z]+Bot|jbot\\b|KaloogaBot|Kraken|Kurzor|larbin|LEIA|LesnikBot|Linguee Bot|LinkAider|LinkedInBot|Lite Bot|Llaut|lycos|Mail\\.RU_Bot|masidani_bot|Mediapartners-Google|Microsoft .*? Bot|mogimogi|mozDex|MJ12bot|msnbot(?:-media *)?|msrbot|netresearch|Netvibes|NewsGator[^/]*|^NING|Nutch[^/]*|Nymesis|ObjectsSearch|Orbiter|OOZBOT|PagePeeker|PagesInventory|PaxleFramework|Peeplo Screenshot Bot|PlantyNet_WebRobot|Pompos|Read%20Later|Reaper|RedCarpet|Retreiver|Riddler|Riddler|Rival IQ|scooter|Scrapy|Scrubby|searchsight|seekbot|semanticdiscovery|Simpy|SimplePie|SEOstats|SimpleRSS|Slurp|snappy|Speedy Spider|Squrl Java|[Tt]eoma(?![Bb]ar)|TheUsefulbot|ThumbShotsBot|Thumbshots\\.ru|TwitterBot|URL2PNG|Vagabondo|VoilaBot|^vortex|Votay bot|^voyager|WASALive.Bot|Web-sniffer|WebThumb|WeSEE:[A-z]+|WhatWeb|WIRE|WordPress|Wotbox|www\\.almaden\\.ibm\\.com|Xenu(?:.s)? Link Sleuth|Xerka [A-z]+Bot|yacy(?:bot)?|Yahoo[a-z]*Seeker|Yahoo! Slurp|Yandex\\w+|YodaoBot(?:-[A-z]+)?|YottaaMonitor|Yowedo|^Zao|^Zao-Crawler|ZeBot_www\\.ze\\.bz|ZooShot|ZyBorg)(?:[ /]v?(\\d+)(?:\\.(\\d+)(?:\\.(\\d+))?)?)?(?:(?!CFNetwork).)*$");
83parser[1] = 0;
84parser[2] = 0;
85parser[3] = 0;
86parser[4] = 0;
87exports.browser[8] = parser;
88parser = Object.create(null);
89parser[0] = new RegExp("(?:\\/[A-Za-z0-9\\.]+)? *([A-Za-z0-9 \\-_\\!\\[\\]:]*(?:[Aa]rchiver|[Ii]ndexer|[Ss]craper|[Bb]ot|[Ss]pider|[Cc]rawl[a-z]*))/(\\d+)(?:\\.(\\d+)(?:\\.(\\d+))?)?(?:(?!CFNetwork).)*$");
90parser[1] = 0;
91parser[2] = 0;
92parser[3] = 0;
93parser[4] = 0;
94exports.browser[9] = parser;
95parser = Object.create(null);
96parser[0] = new RegExp("(?:\\/[A-Za-z0-9\\.]+)? *([A-Za-z0-9 _\\!\\[\\]:]*(?:[Aa]rchiver|[Ii]ndexer|[Ss]craper|[Bb]ot|[Ss]pider|[Cc]rawl[a-z]*)) (\\d+)(?:\\.(\\d+)(?:\\.(\\d+))?)?(?:(?!CFNetwork).)*$");
97parser[1] = 0;
98parser[2] = 0;
99parser[3] = 0;
100parser[4] = 0;
101exports.browser[10] = parser;
102parser = Object.create(null);
103parser[0] = new RegExp("((?:[A-z0-9]+|[A-z\\-]+ ?)?(?: the )?(?:[Ss][Pp][Ii][Dd][Ee][Rr]|[Ss]crape|[A-z]{2}(?!C[Uu])[Bb]ot|[Cc][Rr][Aa][Ww][Ll])[A-z0-9]*)(?:(?:[ /]| v)(\\d+)(?:\\.(\\d+)(?:\\.(\\d+))?)?)?(?:(?!CFNetwork).)*$");
104parser[1] = 0;
105parser[2] = 0;
106parser[3] = 0;
107parser[4] = 0;
108exports.browser[11] = parser;
109parser = Object.create(null);
110parser[0] = new RegExp("(HbbTV)/(\\d+)\\.(\\d+)\\.(\\d+) \\(");
111parser[1] = 0;
112parser[2] = 0;
113parser[3] = 0;
114parser[4] = 0;
115exports.browser[12] = parser;
116parser = Object.create(null);
117parser[0] = new RegExp("(Chimera|SeaMonkey|Camino)/(\\d+)\\.(\\d+)\\.?([ab]?\\d+[a-z]*)?");
118parser[1] = 0;
119parser[2] = 0;
120parser[3] = 0;
121parser[4] = 0;
122exports.browser[13] = parser;
123parser = Object.create(null);
124parser[0] = new RegExp("(Pale[Mm]oon)/(\\d+)\\.(\\d+)\\.?(\\d+)?");
125parser[1] = "Pale Moon (Firefox Variant)";
126parser[2] = 0;
127parser[3] = 0;
128parser[4] = 0;
129exports.browser[14] = parser;
130parser = Object.create(null);
131parser[0] = new RegExp("(Fennec)/(\\d+)\\.(\\d+)\\.?([ab]?\\d+[a-z]*)");
132parser[1] = "Firefox Mobile";
133parser[2] = 0;
134parser[3] = 0;
135parser[4] = 0;
136exports.browser[15] = parser;
137parser = Object.create(null);
138parser[0] = new RegExp("(Fennec)/(\\d+)\\.(\\d+)(pre)");
139parser[1] = "Firefox Mobile";
140parser[2] = 0;
141parser[3] = 0;
142parser[4] = 0;
143exports.browser[16] = parser;
144parser = Object.create(null);
145parser[0] = new RegExp("(Fennec)/(\\d+)\\.(\\d+)");
146parser[1] = "Firefox Mobile";
147parser[2] = 0;
148parser[3] = 0;
149parser[4] = 0;
150exports.browser[17] = parser;
151parser = Object.create(null);
152parser[0] = new RegExp("Mobile.*(Firefox)/(\\d+)\\.(\\d+)");
153parser[1] = "Firefox Mobile";
154parser[2] = 0;
155parser[3] = 0;
156parser[4] = 0;
157exports.browser[18] = parser;
158parser = Object.create(null);
159parser[0] = new RegExp("(Namoroka|Shiretoko|Minefield)/(\\d+)\\.(\\d+)\\.(\\d+(?:pre)?)");
160parser[1] = "Firefox ($1)";
161parser[2] = 0;
162parser[3] = 0;
163parser[4] = 0;
164exports.browser[19] = parser;
165parser = Object.create(null);
166parser[0] = new RegExp("(Firefox)/(\\d+)\\.(\\d+)(a\\d+[a-z]*)");
167parser[1] = "Firefox Alpha";
168parser[2] = 0;
169parser[3] = 0;
170parser[4] = 0;
171exports.browser[20] = parser;
172parser = Object.create(null);
173parser[0] = new RegExp("(Firefox)/(\\d+)\\.(\\d+)(b\\d+[a-z]*)");
174parser[1] = "Firefox Beta";
175parser[2] = 0;
176parser[3] = 0;
177parser[4] = 0;
178exports.browser[21] = parser;
179parser = Object.create(null);
180parser[0] = new RegExp("(Firefox)-(?:\\d+\\.\\d+)?/(\\d+)\\.(\\d+)(a\\d+[a-z]*)");
181parser[1] = "Firefox Alpha";
182parser[2] = 0;
183parser[3] = 0;
184parser[4] = 0;
185exports.browser[22] = parser;
186parser = Object.create(null);
187parser[0] = new RegExp("(Firefox)-(?:\\d+\\.\\d+)?/(\\d+)\\.(\\d+)(b\\d+[a-z]*)");
188parser[1] = "Firefox Beta";
189parser[2] = 0;
190parser[3] = 0;
191parser[4] = 0;
192exports.browser[23] = parser;
193parser = Object.create(null);
194parser[0] = new RegExp("(Namoroka|Shiretoko|Minefield)/(\\d+)\\.(\\d+)([ab]\\d+[a-z]*)?");
195parser[1] = "Firefox ($1)";
196parser[2] = 0;
197parser[3] = 0;
198parser[4] = 0;
199exports.browser[24] = parser;
200parser = Object.create(null);
201parser[0] = new RegExp("(Firefox).*Tablet browser (\\d+)\\.(\\d+)\\.(\\d+)");
202parser[1] = "MicroB";
203parser[2] = 0;
204parser[3] = 0;
205parser[4] = 0;
206exports.browser[25] = parser;
207parser = Object.create(null);
208parser[0] = new RegExp("(MozillaDeveloperPreview)/(\\d+)\\.(\\d+)([ab]\\d+[a-z]*)?");
209parser[1] = 0;
210parser[2] = 0;
211parser[3] = 0;
212parser[4] = 0;
213exports.browser[26] = parser;
214parser = Object.create(null);
215parser[0] = new RegExp("(Flock)/(\\d+)\\.(\\d+)(b\\d+?)");
216parser[1] = 0;
217parser[2] = 0;
218parser[3] = 0;
219parser[4] = 0;
220exports.browser[27] = parser;
221parser = Object.create(null);
222parser[0] = new RegExp("(RockMelt)/(\\d+)\\.(\\d+)\\.(\\d+)");
223parser[1] = 0;
224parser[2] = 0;
225parser[3] = 0;
226parser[4] = 0;
227exports.browser[28] = parser;
228parser = Object.create(null);
229parser[0] = new RegExp("(Navigator)/(\\d+)\\.(\\d+)\\.(\\d+)");
230parser[1] = "Netscape";
231parser[2] = 0;
232parser[3] = 0;
233parser[4] = 0;
234exports.browser[29] = parser;
235parser = Object.create(null);
236parser[0] = new RegExp("(Navigator)/(\\d+)\\.(\\d+)([ab]\\d+)");
237parser[1] = "Netscape";
238parser[2] = 0;
239parser[3] = 0;
240parser[4] = 0;
241exports.browser[30] = parser;
242parser = Object.create(null);
243parser[0] = new RegExp("(Netscape6)/(\\d+)\\.(\\d+)\\.?([ab]?\\d+)?");
244parser[1] = "Netscape";
245parser[2] = 0;
246parser[3] = 0;
247parser[4] = 0;
248exports.browser[31] = parser;
249parser = Object.create(null);
250parser[0] = new RegExp("(MyIBrow)/(\\d+)\\.(\\d+)");
251parser[1] = "My Internet Browser";
252parser[2] = 0;
253parser[3] = 0;
254parser[4] = 0;
255exports.browser[32] = parser;
256parser = Object.create(null);
257parser[0] = new RegExp("(Opera Tablet).*Version/(\\d+)\\.(\\d+)(?:\\.(\\d+))?");
258parser[1] = 0;
259parser[2] = 0;
260parser[3] = 0;
261parser[4] = 0;
262exports.browser[33] = parser;
263parser = Object.create(null);
264parser[0] = new RegExp("(Opera)/.+Opera Mobi.+Version/(\\d+)\\.(\\d+)");
265parser[1] = "Opera Mobile";
266parser[2] = 0;
267parser[3] = 0;
268parser[4] = 0;
269exports.browser[34] = parser;
270parser = Object.create(null);
271parser[0] = new RegExp("(Opera)/(\\d+)\\.(\\d+).+Opera Mobi");
272parser[1] = "Opera Mobile";
273parser[2] = 0;
274parser[3] = 0;
275parser[4] = 0;
276exports.browser[35] = parser;
277parser = Object.create(null);
278parser[0] = new RegExp("Opera Mobi.+(Opera)(?:/|\\s+)(\\d+)\\.(\\d+)");
279parser[1] = "Opera Mobile";
280parser[2] = 0;
281parser[3] = 0;
282parser[4] = 0;
283exports.browser[36] = parser;
284parser = Object.create(null);
285parser[0] = new RegExp("Opera Mobi");
286parser[1] = "Opera Mobile";
287parser[2] = 0;
288parser[3] = 0;
289parser[4] = 0;
290exports.browser[37] = parser;
291parser = Object.create(null);
292parser[0] = new RegExp("(Opera Mini)(?:/att)?/(\\d+)\\.(\\d+)");
293parser[1] = 0;
294parser[2] = 0;
295parser[3] = 0;
296parser[4] = 0;
297exports.browser[38] = parser;
298parser = Object.create(null);
299parser[0] = new RegExp("(Opera)/9.80.*Version/(\\d+)\\.(\\d+)(?:\\.(\\d+))?");
300parser[1] = 0;
301parser[2] = 0;
302parser[3] = 0;
303parser[4] = 0;
304exports.browser[39] = parser;
305parser = Object.create(null);
306parser[0] = new RegExp("(?:Mobile Safari).*(OPR)/(\\d+)\\.(\\d+)\\.(\\d+)");
307parser[1] = "Opera Mobile";
308parser[2] = 0;
309parser[3] = 0;
310parser[4] = 0;
311exports.browser[40] = parser;
312parser = Object.create(null);
313parser[0] = new RegExp("(?:Chrome).*(OPR)/(\\d+)\\.(\\d+)\\.(\\d+)");
314parser[1] = "Opera";
315parser[2] = 0;
316parser[3] = 0;
317parser[4] = 0;
318exports.browser[41] = parser;
319parser = Object.create(null);
320parser[0] = new RegExp("(Coast)/(\\d+).(\\d+).(\\d+)");
321parser[1] = "Opera Coast";
322parser[2] = 0;
323parser[3] = 0;
324parser[4] = 0;
325exports.browser[42] = parser;
326parser = Object.create(null);
327parser[0] = new RegExp("(OPiOS)/(\\d+).(\\d+).(\\d+)");
328parser[1] = "Opera Mini";
329parser[2] = 0;
330parser[3] = 0;
331parser[4] = 0;
332exports.browser[43] = parser;
333parser = Object.create(null);
334parser[0] = new RegExp("(hpw|web)OS/(\\d+)\\.(\\d+)(?:\\.(\\d+))?");
335parser[1] = "webOS Browser";
336parser[2] = 0;
337parser[3] = 0;
338parser[4] = 0;
339exports.browser[44] = parser;
340parser = Object.create(null);
341parser[0] = new RegExp("(luakit)");
342parser[1] = "LuaKit";
343parser[2] = 0;
344parser[3] = 0;
345parser[4] = 0;
346exports.browser[45] = parser;
347parser = Object.create(null);
348parser[0] = new RegExp("(Snowshoe)/(\\d+)\\.(\\d+).(\\d+)");
349parser[1] = 0;
350parser[2] = 0;
351parser[3] = 0;
352parser[4] = 0;
353exports.browser[46] = parser;
354parser = Object.create(null);
355parser[0] = new RegExp("(Lightning)/(\\d+)\\.(\\d+)\\.?((?:[ab]?\\d+[a-z]*)|(?:\\d*))");
356parser[1] = 0;
357parser[2] = 0;
358parser[3] = 0;
359parser[4] = 0;
360exports.browser[47] = parser;
361parser = Object.create(null);
362parser[0] = new RegExp("(Firefox)/(\\d+)\\.(\\d+)\\.(\\d+(?:pre)?) \\(Swiftfox\\)");
363parser[1] = "Swiftfox";
364parser[2] = 0;
365parser[3] = 0;
366parser[4] = 0;
367exports.browser[48] = parser;
368parser = Object.create(null);
369parser[0] = new RegExp("(Firefox)/(\\d+)\\.(\\d+)([ab]\\d+[a-z]*)? \\(Swiftfox\\)");
370parser[1] = "Swiftfox";
371parser[2] = 0;
372parser[3] = 0;
373parser[4] = 0;
374exports.browser[49] = parser;
375parser = Object.create(null);
376parser[0] = new RegExp("(rekonq)/(\\d+)\\.(\\d+)\\.?(\\d+)? Safari");
377parser[1] = "Rekonq";
378parser[2] = 0;
379parser[3] = 0;
380parser[4] = 0;
381exports.browser[50] = parser;
382parser = Object.create(null);
383parser[0] = new RegExp("rekonq");
384parser[1] = "Rekonq";
385parser[2] = 0;
386parser[3] = 0;
387parser[4] = 0;
388exports.browser[51] = parser;
389parser = Object.create(null);
390parser[0] = new RegExp("(conkeror|Conkeror)/(\\d+)\\.(\\d+)\\.?(\\d+)?");
391parser[1] = "Conkeror";
392parser[2] = 0;
393parser[3] = 0;
394parser[4] = 0;
395exports.browser[52] = parser;
396parser = Object.create(null);
397parser[0] = new RegExp("(konqueror)/(\\d+)\\.(\\d+)\\.(\\d+)");
398parser[1] = "Konqueror";
399parser[2] = 0;
400parser[3] = 0;
401parser[4] = 0;
402exports.browser[53] = parser;
403parser = Object.create(null);
404parser[0] = new RegExp("(WeTab)-Browser");
405parser[1] = 0;
406parser[2] = 0;
407parser[3] = 0;
408parser[4] = 0;
409exports.browser[54] = parser;
410parser = Object.create(null);
411parser[0] = new RegExp("(Comodo_Dragon)/(\\d+)\\.(\\d+)\\.(\\d+)");
412parser[1] = "Comodo Dragon";
413parser[2] = 0;
414parser[3] = 0;
415parser[4] = 0;
416exports.browser[55] = parser;
417parser = Object.create(null);
418parser[0] = new RegExp("(Symphony) (\\d+).(\\d+)");
419parser[1] = 0;
420parser[2] = 0;
421parser[3] = 0;
422parser[4] = 0;
423exports.browser[56] = parser;
424parser = Object.create(null);
425parser[0] = new RegExp("(Minimo)");
426parser[1] = 0;
427parser[2] = 0;
428parser[3] = 0;
429parser[4] = 0;
430exports.browser[57] = parser;
431parser = Object.create(null);
432parser[0] = new RegExp("PLAYSTATION 3.+WebKit");
433parser[1] = "NetFront NX";
434parser[2] = 0;
435parser[3] = 0;
436parser[4] = 0;
437exports.browser[58] = parser;
438parser = Object.create(null);
439parser[0] = new RegExp("PLAYSTATION 3");
440parser[1] = "NetFront";
441parser[2] = 0;
442parser[3] = 0;
443parser[4] = 0;
444exports.browser[59] = parser;
445parser = Object.create(null);
446parser[0] = new RegExp("(PlayStation Portable)");
447parser[1] = "NetFront";
448parser[2] = 0;
449parser[3] = 0;
450parser[4] = 0;
451exports.browser[60] = parser;
452parser = Object.create(null);
453parser[0] = new RegExp("(PlayStation Vita)");
454parser[1] = "NetFront NX";
455parser[2] = 0;
456parser[3] = 0;
457parser[4] = 0;
458exports.browser[61] = parser;
459parser = Object.create(null);
460parser[0] = new RegExp("AppleWebKit.+ (NX)/(\\d+)\\.(\\d+)\\.(\\d+)");
461parser[1] = "NetFront NX";
462parser[2] = 0;
463parser[3] = 0;
464parser[4] = 0;
465exports.browser[62] = parser;
466parser = Object.create(null);
467parser[0] = new RegExp("(Nintendo 3DS)");
468parser[1] = "NetFront NX";
469parser[2] = 0;
470parser[3] = 0;
471parser[4] = 0;
472exports.browser[63] = parser;
473parser = Object.create(null);
474parser[0] = new RegExp("(Silk)/(\\d+)\\.(\\d+)(?:\\.([0-9\\-]+))?");
475parser[1] = "Amazon Silk";
476parser[2] = 0;
477parser[3] = 0;
478parser[4] = 0;
479exports.browser[64] = parser;
480parser = Object.create(null);
481parser[0] = new RegExp("(Puffin)/(\\d+)\\.(\\d+)(?:\\.(\\d+))?");
482parser[1] = 0;
483parser[2] = 0;
484parser[3] = 0;
485parser[4] = 0;
486exports.browser[65] = parser;
487parser = Object.create(null);
488parser[0] = new RegExp("(CrMo)/(\\d+)\\.(\\d+)\\.(\\d+)\\.(\\d+)");
489parser[1] = "Chrome Mobile";
490parser[2] = 0;
491parser[3] = 0;
492parser[4] = 0;
493exports.browser[66] = parser;
494parser = Object.create(null);
495parser[0] = new RegExp("(CriOS)/(\\d+)\\.(\\d+)\\.(\\d+)\\.(\\d+)");
496parser[1] = "Chrome Mobile iOS";
497parser[2] = 0;
498parser[3] = 0;
499parser[4] = 0;
500exports.browser[67] = parser;
501parser = Object.create(null);
502parser[0] = new RegExp("(Chrome)/(\\d+)\\.(\\d+)\\.(\\d+)\\.(\\d+) Mobile");
503parser[1] = "Chrome Mobile";
504parser[2] = 0;
505parser[3] = 0;
506parser[4] = 0;
507exports.browser[68] = parser;
508parser = Object.create(null);
509parser[0] = new RegExp("(chromeframe)/(\\d+)\\.(\\d+)\\.(\\d+)");
510parser[1] = "Chrome Frame";
511parser[2] = 0;
512parser[3] = 0;
513parser[4] = 0;
514exports.browser[69] = parser;
515parser = Object.create(null);
516parser[0] = new RegExp("(UCBrowser)[ /](\\d+)\\.(\\d+)\\.(\\d+)");
517parser[1] = "UC Browser";
518parser[2] = 0;
519parser[3] = 0;
520parser[4] = 0;
521exports.browser[70] = parser;
522parser = Object.create(null);
523parser[0] = new RegExp("(UC Browser)[ /](\\d+)\\.(\\d+)\\.(\\d+)");
524parser[1] = 0;
525parser[2] = 0;
526parser[3] = 0;
527parser[4] = 0;
528exports.browser[71] = parser;
529parser = Object.create(null);
530parser[0] = new RegExp("(UC Browser|UCBrowser|UCWEB)(\\d+)\\.(\\d+)\\.(\\d+)");
531parser[1] = "UC Browser";
532parser[2] = 0;
533parser[3] = 0;
534parser[4] = 0;
535exports.browser[72] = parser;
536parser = Object.create(null);
537parser[0] = new RegExp("(SLP Browser)/(\\d+)\\.(\\d+)");
538parser[1] = "Tizen Browser";
539parser[2] = 0;
540parser[3] = 0;
541parser[4] = 0;
542exports.browser[73] = parser;
543parser = Object.create(null);
544parser[0] = new RegExp("(SE 2\\.X) MetaSr (\\d+)\\.(\\d+)");
545parser[1] = "Sogou Explorer";
546parser[2] = 0;
547parser[3] = 0;
548parser[4] = 0;
549exports.browser[74] = parser;
550parser = Object.create(null);
551parser[0] = new RegExp("(baidubrowser)[/\\s](\\d+)");
552parser[1] = "Baidu Browser";
553parser[2] = 0;
554parser[3] = 0;
555parser[4] = 0;
556exports.browser[75] = parser;
557parser = Object.create(null);
558parser[0] = new RegExp("(FlyFlow)/(\\d+)\\.(\\d+)");
559parser[1] = "Baidu Explorer";
560parser[2] = 0;
561parser[3] = 0;
562parser[4] = 0;
563exports.browser[76] = parser;
564parser = Object.create(null);
565parser[0] = new RegExp("(MQQBrowser/Mini)(?:(\\d+)(?:\\.(\\d+)(?:\\.(\\d+))?)?)?");
566parser[1] = "QQ Browser Mini";
567parser[2] = 0;
568parser[3] = 0;
569parser[4] = 0;
570exports.browser[77] = parser;
571parser = Object.create(null);
572parser[0] = new RegExp("(MQQBrowser)(?:/(\\d+)(?:\\.(\\d+)(?:\\.(\\d+))?)?)?");
573parser[1] = "QQ Browser Mobile";
574parser[2] = 0;
575parser[3] = 0;
576parser[4] = 0;
577exports.browser[78] = parser;
578parser = Object.create(null);
579parser[0] = new RegExp("(QQBrowser)(?:/(\\d+)(?:\\.(\\d+)\\.(\\d+)(?:\\.(\\d+))?)?)?");
580parser[1] = "QQ Browser";
581parser[2] = 0;
582parser[3] = 0;
583parser[4] = 0;
584exports.browser[79] = parser;
585parser = Object.create(null);
586parser[0] = new RegExp("(Rackspace Monitoring)/(\\d+)\\.(\\d+)");
587parser[1] = "RackspaceBot";
588parser[2] = 0;
589parser[3] = 0;
590parser[4] = 0;
591exports.browser[80] = parser;
592parser = Object.create(null);
593parser[0] = new RegExp("(PyAMF)/(\\d+)\\.(\\d+)\\.(\\d+)");
594parser[1] = 0;
595parser[2] = 0;
596parser[3] = 0;
597parser[4] = 0;
598exports.browser[81] = parser;
599parser = Object.create(null);
600parser[0] = new RegExp("(YaBrowser)/(\\d+)\\.(\\d+)\\.(\\d+)");
601parser[1] = "Yandex Browser";
602parser[2] = 0;
603parser[3] = 0;
604parser[4] = 0;
605exports.browser[82] = parser;
606parser = Object.create(null);
607parser[0] = new RegExp("(Chrome)/(\\d+)\\.(\\d+)\\.(\\d+).* MRCHROME");
608parser[1] = "Mail.ru Chromium Browser";
609parser[2] = 0;
610parser[3] = 0;
611parser[4] = 0;
612exports.browser[83] = parser;
613parser = Object.create(null);
614parser[0] = new RegExp("(AOL) (\\d+)\\.(\\d+); AOLBuild (\\d+)");
615parser[1] = 0;
616parser[2] = 0;
617parser[3] = 0;
618parser[4] = 0;
619exports.browser[84] = parser;
620parser = Object.create(null);
621parser[0] = new RegExp("(AdobeAIR|FireWeb|Jasmine|ANTGalio|Midori|Fresco|Lobo|PaleMoon|Maxthon|Lynx|OmniWeb|Dillo|Camino|Demeter|Fluid|Fennec|Epiphany|Shiira|Sunrise|Flock|Netscape|Lunascape|WebPilot|NetFront|Netfront|Konqueror|SeaMonkey|Kazehakase|Vienna|Iceape|Iceweasel|IceWeasel|Iron|K-Meleon|Sleipnir|Galeon|GranParadiso|Opera Mini|iCab|NetNewsWire|ThunderBrowse|Iris|UP\\.Browser|Bunjalloo|Google Earth|Raven for Mac|Openwave)/(\\d+)\\.(\\d+)\\.(\\d+)");
622parser[1] = 0;
623parser[2] = 0;
624parser[3] = 0;
625parser[4] = 0;
626exports.browser[85] = parser;
627parser = Object.create(null);
628parser[0] = new RegExp("MSOffice 12");
629parser[1] = "Outlook";
630parser[2] = "2007";
631parser[3] = 0;
632parser[4] = 0;
633exports.browser[86] = parser;
634parser = Object.create(null);
635parser[0] = new RegExp("MSOffice 14");
636parser[1] = "Outlook";
637parser[2] = "2010";
638parser[3] = 0;
639parser[4] = 0;
640exports.browser[87] = parser;
641parser = Object.create(null);
642parser[0] = new RegExp("Microsoft Outlook 15\\.\\d+\\.\\d+");
643parser[1] = "Outlook";
644parser[2] = "2013";
645parser[3] = 0;
646parser[4] = 0;
647exports.browser[88] = parser;
648parser = Object.create(null);
649parser[0] = new RegExp("(Airmail) (\\d+)\\.(\\d+)(?:\\.(\\d+))?");
650parser[1] = 0;
651parser[2] = 0;
652parser[3] = 0;
653parser[4] = 0;
654exports.browser[89] = parser;
655parser = Object.create(null);
656parser[0] = new RegExp("(Thunderbird)/(\\d+)\\.(\\d+)\\.(\\d+(?:pre)?)");
657parser[1] = "Thunderbird";
658parser[2] = 0;
659parser[3] = 0;
660parser[4] = 0;
661exports.browser[90] = parser;
662parser = Object.create(null);
663parser[0] = new RegExp("(Vivaldi)/(\\d+)\\.(\\d+)\\.(\\d+)");
664parser[1] = 0;
665parser[2] = 0;
666parser[3] = 0;
667parser[4] = 0;
668exports.browser[91] = parser;
669parser = Object.create(null);
670parser[0] = new RegExp("(Edge)/(\\d+)\\.(\\d+)");
671parser[1] = 0;
672parser[2] = 0;
673parser[3] = 0;
674parser[4] = 0;
675exports.browser[92] = parser;
676parser = Object.create(null);
677parser[0] = new RegExp("(Chromium|Chrome)/(\\d+)\\.(\\d+)\\.(\\d+)");
678parser[1] = 0;
679parser[2] = 0;
680parser[3] = 0;
681parser[4] = 0;
682exports.browser[93] = parser;
683parser = Object.create(null);
684parser[0] = new RegExp("\\b(Dolphin)(?: |HDCN/|/INT\\-)(\\d+)\\.(\\d+)\\.?(\\d+)?");
685parser[1] = 0;
686parser[2] = 0;
687parser[3] = 0;
688parser[4] = 0;
689exports.browser[94] = parser;
690parser = Object.create(null);
691parser[0] = new RegExp("(bingbot|Bolt|Jasmine|IceCat|Skyfire|Midori|Maxthon|Lynx|Arora|IBrowse|Dillo|Camino|Shiira|Fennec|Phoenix|Chrome|Flock|Netscape|Lunascape|Epiphany|WebPilot|Opera Mini|Opera|NetFront|Netfront|Konqueror|Googlebot|SeaMonkey|Kazehakase|Vienna|Iceape|Iceweasel|IceWeasel|Iron|K-Meleon|Sleipnir|Galeon|GranParadiso|iCab|iTunes|MacAppStore|NetNewsWire|Space Bison|Stainless|Orca|Dolfin|BOLT|Minimo|Tizen Browser|Polaris|Abrowser|Planetweb|ICE Browser|mDolphin)/(\\d+)\\.(\\d+)\\.?(\\d+)?");
692parser[1] = 0;
693parser[2] = 0;
694parser[3] = 0;
695parser[4] = 0;
696exports.browser[95] = parser;
697parser = Object.create(null);
698parser[0] = new RegExp("(Chromium|Chrome)/(\\d+)\\.(\\d+)");
699parser[1] = 0;
700parser[2] = 0;
701parser[3] = 0;
702parser[4] = 0;
703exports.browser[96] = parser;
704parser = Object.create(null);
705parser[0] = new RegExp("(IEMobile)[ /](\\d+)\\.(\\d+)");
706parser[1] = "IE Mobile";
707parser[2] = 0;
708parser[3] = 0;
709parser[4] = 0;
710exports.browser[97] = parser;
711parser = Object.create(null);
712parser[0] = new RegExp("(iRider|Crazy Browser|SkipStone|iCab|Lunascape|Sleipnir|Maemo Browser) (\\d+)\\.(\\d+)\\.(\\d+)");
713parser[1] = 0;
714parser[2] = 0;
715parser[3] = 0;
716parser[4] = 0;
717exports.browser[98] = parser;
718parser = Object.create(null);
719parser[0] = new RegExp("(iCab|Lunascape|Opera|Android|Jasmine|Polaris) (\\d+)\\.(\\d+)\\.?(\\d+)?");
720parser[1] = 0;
721parser[2] = 0;
722parser[3] = 0;
723parser[4] = 0;
724exports.browser[99] = parser;
725parser = Object.create(null);
726parser[0] = new RegExp("(Kindle)/(\\d+)\\.(\\d+)");
727parser[1] = 0;
728parser[2] = 0;
729parser[3] = 0;
730parser[4] = 0;
731exports.browser[100] = parser;
732parser = Object.create(null);
733parser[0] = new RegExp("(Android) Donut");
734parser[1] = 0;
735parser[2] = "1";
736parser[3] = "2";
737parser[4] = 0;
738exports.browser[101] = parser;
739parser = Object.create(null);
740parser[0] = new RegExp("(Android) Eclair");
741parser[1] = 0;
742parser[2] = "2";
743parser[3] = "1";
744parser[4] = 0;
745exports.browser[102] = parser;
746parser = Object.create(null);
747parser[0] = new RegExp("(Android) Froyo");
748parser[1] = 0;
749parser[2] = "2";
750parser[3] = "2";
751parser[4] = 0;
752exports.browser[103] = parser;
753parser = Object.create(null);
754parser[0] = new RegExp("(Android) Gingerbread");
755parser[1] = 0;
756parser[2] = "2";
757parser[3] = "3";
758parser[4] = 0;
759exports.browser[104] = parser;
760parser = Object.create(null);
761parser[0] = new RegExp("(Android) Honeycomb");
762parser[1] = 0;
763parser[2] = "3";
764parser[3] = 0;
765parser[4] = 0;
766exports.browser[105] = parser;
767parser = Object.create(null);
768parser[0] = new RegExp("(MSIE) (\\d+)\\.(\\d+).*XBLWP7");
769parser[1] = "IE Large Screen";
770parser[2] = 0;
771parser[3] = 0;
772parser[4] = 0;
773exports.browser[106] = parser;
774parser = Object.create(null);
775parser[0] = new RegExp("(Obigo)InternetBrowser");
776parser[1] = 0;
777parser[2] = 0;
778parser[3] = 0;
779parser[4] = 0;
780exports.browser[107] = parser;
781parser = Object.create(null);
782parser[0] = new RegExp("(Obigo)\\-Browser");
783parser[1] = 0;
784parser[2] = 0;
785parser[3] = 0;
786parser[4] = 0;
787exports.browser[108] = parser;
788parser = Object.create(null);
789parser[0] = new RegExp("(Obigo|OBIGO)[^\\d]*(\\d+)(?:.(\\d+))?");
790parser[1] = "Obigo";
791parser[2] = 0;
792parser[3] = 0;
793parser[4] = 0;
794exports.browser[109] = parser;
795parser = Object.create(null);
796parser[0] = new RegExp("(MAXTHON|Maxthon) (\\d+)\\.(\\d+)");
797parser[1] = "Maxthon";
798parser[2] = 0;
799parser[3] = 0;
800parser[4] = 0;
801exports.browser[110] = parser;
802parser = Object.create(null);
803parser[0] = new RegExp("(Maxthon|MyIE2|Uzbl|Shiira)");
804parser[1] = 0;
805parser[2] = "0";
806parser[3] = 0;
807parser[4] = 0;
808exports.browser[111] = parser;
809parser = Object.create(null);
810parser[0] = new RegExp("(BrowseX) \\((\\d+)\\.(\\d+)\\.(\\d+)");
811parser[1] = 0;
812parser[2] = 0;
813parser[3] = 0;
814parser[4] = 0;
815exports.browser[112] = parser;
816parser = Object.create(null);
817parser[0] = new RegExp("(NCSA_Mosaic)/(\\d+)\\.(\\d+)");
818parser[1] = "NCSA Mosaic";
819parser[2] = 0;
820parser[3] = 0;
821parser[4] = 0;
822exports.browser[113] = parser;
823parser = Object.create(null);
824parser[0] = new RegExp("(POLARIS)/(\\d+)\\.(\\d+)");
825parser[1] = "Polaris";
826parser[2] = 0;
827parser[3] = 0;
828parser[4] = 0;
829exports.browser[114] = parser;
830parser = Object.create(null);
831parser[0] = new RegExp("(Embider)/(\\d+)\\.(\\d+)");
832parser[1] = "Polaris";
833parser[2] = 0;
834parser[3] = 0;
835parser[4] = 0;
836exports.browser[115] = parser;
837parser = Object.create(null);
838parser[0] = new RegExp("(BonEcho)/(\\d+)\\.(\\d+)\\.?([ab]?\\d+)?");
839parser[1] = "Bon Echo";
840parser[2] = 0;
841parser[3] = 0;
842parser[4] = 0;
843exports.browser[116] = parser;
844parser = Object.create(null);
845parser[0] = new RegExp("(CFNetwork)(?:/(\\d+)\\.(\\d+)\\.?(\\d+)?)?");
846parser[1] = "CFNetwork";
847parser[2] = 0;
848parser[3] = 0;
849parser[4] = 0;
850exports.browser[117] = parser;
851parser = Object.create(null);
852parser[0] = new RegExp("(iPod).+Version/(\\d+)\\.(\\d+)\\.(\\d+)");
853parser[1] = "Mobile Safari";
854parser[2] = 0;
855parser[3] = 0;
856parser[4] = 0;
857exports.browser[118] = parser;
858parser = Object.create(null);
859parser[0] = new RegExp("(iPod).*Version/(\\d+)\\.(\\d+)");
860parser[1] = "Mobile Safari";
861parser[2] = 0;
862parser[3] = 0;
863parser[4] = 0;
864exports.browser[119] = parser;
865parser = Object.create(null);
866parser[0] = new RegExp("(iPhone).*Version/(\\d+)\\.(\\d+)\\.(\\d+)");
867parser[1] = "Mobile Safari";
868parser[2] = 0;
869parser[3] = 0;
870parser[4] = 0;
871exports.browser[120] = parser;
872parser = Object.create(null);
873parser[0] = new RegExp("(iPhone).*Version/(\\d+)\\.(\\d+)");
874parser[1] = "Mobile Safari";
875parser[2] = 0;
876parser[3] = 0;
877parser[4] = 0;
878exports.browser[121] = parser;
879parser = Object.create(null);
880parser[0] = new RegExp("(iPad).*Version/(\\d+)\\.(\\d+)\\.(\\d+)");
881parser[1] = "Mobile Safari";
882parser[2] = 0;
883parser[3] = 0;
884parser[4] = 0;
885exports.browser[122] = parser;
886parser = Object.create(null);
887parser[0] = new RegExp("(iPad).*Version/(\\d+)\\.(\\d+)");
888parser[1] = "Mobile Safari";
889parser[2] = 0;
890parser[3] = 0;
891parser[4] = 0;
892exports.browser[123] = parser;
893parser = Object.create(null);
894parser[0] = new RegExp("(iPod|iPhone|iPad);.*CPU.*OS (\\d+)_(\\d+)(?:_(\\d+))?.*Mobile");
895parser[1] = "Mobile Safari";
896parser[2] = 0;
897parser[3] = 0;
898parser[4] = 0;
899exports.browser[124] = parser;
900parser = Object.create(null);
901parser[0] = new RegExp("(iPod|iPhone|iPad)");
902parser[1] = "Mobile Safari";
903parser[2] = 0;
904parser[3] = 0;
905parser[4] = 0;
906exports.browser[125] = parser;
907parser = Object.create(null);
908parser[0] = new RegExp("(AvantGo) (\\d+).(\\d+)");
909parser[1] = 0;
910parser[2] = 0;
911parser[3] = 0;
912parser[4] = 0;
913exports.browser[126] = parser;
914parser = Object.create(null);
915parser[0] = new RegExp("(OneBrowser)/(\\d+).(\\d+)");
916parser[1] = "ONE Browser";
917parser[2] = 0;
918parser[3] = 0;
919parser[4] = 0;
920exports.browser[127] = parser;
921parser = Object.create(null);
922parser[0] = new RegExp("(Avant)");
923parser[1] = 0;
924parser[2] = "1";
925parser[3] = 0;
926parser[4] = 0;
927exports.browser[128] = parser;
928parser = Object.create(null);
929parser[0] = new RegExp("(QtCarBrowser)");
930parser[1] = 0;
931parser[2] = "1";
932parser[3] = 0;
933parser[4] = 0;
934exports.browser[129] = parser;
935parser = Object.create(null);
936parser[0] = new RegExp("^(iBrowser/Mini)(\\d+).(\\d+)");
937parser[1] = "iBrowser Mini";
938parser[2] = 0;
939parser[3] = 0;
940parser[4] = 0;
941exports.browser[130] = parser;
942parser = Object.create(null);
943parser[0] = new RegExp("^(iBrowser|iRAPP)/(\\d+).(\\d+)");
944parser[1] = 0;
945parser[2] = 0;
946parser[3] = 0;
947parser[4] = 0;
948exports.browser[131] = parser;
949parser = Object.create(null);
950parser[0] = new RegExp("^(Nokia)");
951parser[1] = "Nokia Services (WAP) Browser";
952parser[2] = 0;
953parser[3] = 0;
954parser[4] = 0;
955exports.browser[132] = parser;
956parser = Object.create(null);
957parser[0] = new RegExp("(NokiaBrowser)/(\\d+)\\.(\\d+).(\\d+)\\.(\\d+)");
958parser[1] = "Nokia Browser";
959parser[2] = 0;
960parser[3] = 0;
961parser[4] = 0;
962exports.browser[133] = parser;
963parser = Object.create(null);
964parser[0] = new RegExp("(NokiaBrowser)/(\\d+)\\.(\\d+).(\\d+)");
965parser[1] = "Nokia Browser";
966parser[2] = 0;
967parser[3] = 0;
968parser[4] = 0;
969exports.browser[134] = parser;
970parser = Object.create(null);
971parser[0] = new RegExp("(NokiaBrowser)/(\\d+)\\.(\\d+)");
972parser[1] = "Nokia Browser";
973parser[2] = 0;
974parser[3] = 0;
975parser[4] = 0;
976exports.browser[135] = parser;
977parser = Object.create(null);
978parser[0] = new RegExp("(BrowserNG)/(\\d+)\\.(\\d+).(\\d+)");
979parser[1] = "Nokia Browser";
980parser[2] = 0;
981parser[3] = 0;
982parser[4] = 0;
983exports.browser[136] = parser;
984parser = Object.create(null);
985parser[0] = new RegExp("(Series60)/5\\.0");
986parser[1] = "Nokia Browser";
987parser[2] = "7";
988parser[3] = "0";
989parser[4] = 0;
990exports.browser[137] = parser;
991parser = Object.create(null);
992parser[0] = new RegExp("(Series60)/(\\d+)\\.(\\d+)");
993parser[1] = "Nokia OSS Browser";
994parser[2] = 0;
995parser[3] = 0;
996parser[4] = 0;
997exports.browser[138] = parser;
998parser = Object.create(null);
999parser[0] = new RegExp("(S40OviBrowser)/(\\d+)\\.(\\d+)\\.(\\d+)\\.(\\d+)");
1000parser[1] = "Ovi Browser";
1001parser[2] = 0;
1002parser[3] = 0;
1003parser[4] = 0;
1004exports.browser[139] = parser;
1005parser = Object.create(null);
1006parser[0] = new RegExp("(Nokia)[EN]?(\\d+)");
1007parser[1] = 0;
1008parser[2] = 0;
1009parser[3] = 0;
1010parser[4] = 0;
1011exports.browser[140] = parser;
1012parser = Object.create(null);
1013parser[0] = new RegExp("(BB10);");
1014parser[1] = "BlackBerry WebKit";
1015parser[2] = 0;
1016parser[3] = 0;
1017parser[4] = 0;
1018exports.browser[141] = parser;
1019parser = Object.create(null);
1020parser[0] = new RegExp("(PlayBook).+RIM Tablet OS (\\d+)\\.(\\d+)\\.(\\d+)");
1021parser[1] = "BlackBerry WebKit";
1022parser[2] = 0;
1023parser[3] = 0;
1024parser[4] = 0;
1025exports.browser[142] = parser;
1026parser = Object.create(null);
1027parser[0] = new RegExp("(Black[bB]erry).+Version/(\\d+)\\.(\\d+)\\.(\\d+)");
1028parser[1] = "BlackBerry WebKit";
1029parser[2] = 0;
1030parser[3] = 0;
1031parser[4] = 0;
1032exports.browser[143] = parser;
1033parser = Object.create(null);
1034parser[0] = new RegExp("(Black[bB]erry)\\s?(\\d+)");
1035parser[1] = "BlackBerry";
1036parser[2] = 0;
1037parser[3] = 0;
1038parser[4] = 0;
1039exports.browser[144] = parser;
1040parser = Object.create(null);
1041parser[0] = new RegExp("(OmniWeb)/v(\\d+)\\.(\\d+)");
1042parser[1] = 0;
1043parser[2] = 0;
1044parser[3] = 0;
1045parser[4] = 0;
1046exports.browser[145] = parser;
1047parser = Object.create(null);
1048parser[0] = new RegExp("(Blazer)/(\\d+)\\.(\\d+)");
1049parser[1] = "Palm Blazer";
1050parser[2] = 0;
1051parser[3] = 0;
1052parser[4] = 0;
1053exports.browser[146] = parser;
1054parser = Object.create(null);
1055parser[0] = new RegExp("(Pre)/(\\d+)\\.(\\d+)");
1056parser[1] = "Palm Pre";
1057parser[2] = 0;
1058parser[3] = 0;
1059parser[4] = 0;
1060exports.browser[147] = parser;
1061parser = Object.create(null);
1062parser[0] = new RegExp("(ELinks)/(\\d+)\\.(\\d+)");
1063parser[1] = 0;
1064parser[2] = 0;
1065parser[3] = 0;
1066parser[4] = 0;
1067exports.browser[148] = parser;
1068parser = Object.create(null);
1069parser[0] = new RegExp("(ELinks) \\((\\d+)\\.(\\d+)");
1070parser[1] = 0;
1071parser[2] = 0;
1072parser[3] = 0;
1073parser[4] = 0;
1074exports.browser[149] = parser;
1075parser = Object.create(null);
1076parser[0] = new RegExp("(Links) \\((\\d+)\\.(\\d+)");
1077parser[1] = 0;
1078parser[2] = 0;
1079parser[3] = 0;
1080parser[4] = 0;
1081exports.browser[150] = parser;
1082parser = Object.create(null);
1083parser[0] = new RegExp("(QtWeb) Internet Browser/(\\d+)\\.(\\d+)");
1084parser[1] = 0;
1085parser[2] = 0;
1086parser[3] = 0;
1087parser[4] = 0;
1088exports.browser[151] = parser;
1089parser = Object.create(null);
1090parser[0] = new RegExp("(PhantomJS)/(\\d+)\\.(\\d+)\\.(\\d+)");
1091parser[1] = 0;
1092parser[2] = 0;
1093parser[3] = 0;
1094parser[4] = 0;
1095exports.browser[152] = parser;
1096parser = Object.create(null);
1097parser[0] = new RegExp("(AppleWebKit)/(\\d+)\\.?(\\d+)?\\+ .* Safari");
1098parser[1] = "WebKit Nightly";
1099parser[2] = 0;
1100parser[3] = 0;
1101parser[4] = 0;
1102exports.browser[153] = parser;
1103parser = Object.create(null);
1104parser[0] = new RegExp("(Version)/(\\d+)\\.(\\d+)(?:\\.(\\d+))?.*Safari/");
1105parser[1] = "Safari";
1106parser[2] = 0;
1107parser[3] = 0;
1108parser[4] = 0;
1109exports.browser[154] = parser;
1110parser = Object.create(null);
1111parser[0] = new RegExp("(Safari)/\\d+");
1112parser[1] = 0;
1113parser[2] = 0;
1114parser[3] = 0;
1115parser[4] = 0;
1116exports.browser[155] = parser;
1117parser = Object.create(null);
1118parser[0] = new RegExp("(OLPC)/Update(\\d+)\\.(\\d+)");
1119parser[1] = 0;
1120parser[2] = 0;
1121parser[3] = 0;
1122parser[4] = 0;
1123exports.browser[156] = parser;
1124parser = Object.create(null);
1125parser[0] = new RegExp("(OLPC)/Update()\\.(\\d+)");
1126parser[1] = 0;
1127parser[2] = "0";
1128parser[3] = 0;
1129parser[4] = 0;
1130exports.browser[157] = parser;
1131parser = Object.create(null);
1132parser[0] = new RegExp("(SEMC\\-Browser)/(\\d+)\\.(\\d+)");
1133parser[1] = 0;
1134parser[2] = 0;
1135parser[3] = 0;
1136parser[4] = 0;
1137exports.browser[158] = parser;
1138parser = Object.create(null);
1139parser[0] = new RegExp("(Teleca)");
1140parser[1] = "Teleca Browser";
1141parser[2] = 0;
1142parser[3] = 0;
1143parser[4] = 0;
1144exports.browser[159] = parser;
1145parser = Object.create(null);
1146parser[0] = new RegExp("(Phantom)/V(\\d+)\\.(\\d+)");
1147parser[1] = "Phantom Browser";
1148parser[2] = 0;
1149parser[3] = 0;
1150parser[4] = 0;
1151exports.browser[160] = parser;
1152parser = Object.create(null);
1153parser[0] = new RegExp("Trident(.*)rv.(\\d+)\\.(\\d+)");
1154parser[1] = "IE";
1155parser[2] = 0;
1156parser[3] = 0;
1157parser[4] = 0;
1158exports.browser[161] = parser;
1159parser = Object.create(null);
1160parser[0] = new RegExp("(Espial)/(\\d+)(?:\\.(\\d+))?(?:\\.(\\d+))?");
1161parser[1] = 0;
1162parser[2] = 0;
1163parser[3] = 0;
1164parser[4] = 0;
1165exports.browser[162] = parser;
1166parser = Object.create(null);
1167parser[0] = new RegExp("(AppleWebKit)/(\\d+)\\.(\\d+)\\.(\\d+)");
1168parser[1] = "AppleMail";
1169parser[2] = 0;
1170parser[3] = 0;
1171parser[4] = 0;
1172exports.browser[163] = parser;
1173parser = Object.create(null);
1174parser[0] = new RegExp("(Firefox)/(\\d+)\\.(\\d+)\\.(\\d+)");
1175parser[1] = 0;
1176parser[2] = 0;
1177parser[3] = 0;
1178parser[4] = 0;
1179exports.browser[164] = parser;
1180parser = Object.create(null);
1181parser[0] = new RegExp("(Firefox)/(\\d+)\\.(\\d+)(pre|[ab]\\d+[a-z]*)?");
1182parser[1] = 0;
1183parser[2] = 0;
1184parser[3] = 0;
1185parser[4] = 0;
1186exports.browser[165] = parser;
1187parser = Object.create(null);
1188parser[0] = new RegExp("([MS]?IE) (\\d+)\\.(\\d+)");
1189parser[1] = "IE";
1190parser[2] = 0;
1191parser[3] = 0;
1192parser[4] = 0;
1193exports.browser[166] = parser;
1194parser = Object.create(null);
1195parser[0] = new RegExp("(python-requests)/(\\d+)\\.(\\d+)");
1196parser[1] = "Python Requests";
1197parser[2] = 0;
1198parser[3] = 0;
1199parser[4] = 0;
1200exports.browser[167] = parser;
1201parser = Object.create(null);
1202parser[0] = new RegExp("(Java)[/ ]{0,1}\\d+\\.(\\d+)\\.(\\d+)[_-]*([a-zA-Z0-9]+)*");
1203parser[1] = 0;
1204parser[2] = 0;
1205parser[3] = 0;
1206parser[4] = 0;
1207exports.browser[168] = parser;
1208parser = Object.create(null);
1209parser[0] = new RegExp("(Wget)/(\\d+)\\.(\\d+)\\.?([ab]?\\d+[a-z]*)");
1210parser[1] = 0;
1211parser[2] = 0;
1212parser[3] = 0;
1213parser[4] = 0;
1214exports.browser[169] = parser;
1215parser = Object.create(null);
1216parser[0] = new RegExp("(curl)/(\\d+)\\.(\\d+)\\.(\\d+)");
1217parser[1] = "cURL";
1218parser[2] = 0;
1219parser[3] = 0;
1220parser[4] = 0;
1221exports.browser[170] = parser;
1222
1223exports.browser.length = 171;
1224
1225exports.device = Object.create(null);
1226
1227parser = Object.create(null);
1228parser[0] = new RegExp("(Rival IQ, rivaliq.com)");
1229parser[1] = "Spider";
1230parser[2] = 0;
1231parser[3] = 0;
1232parser[4] = 0;
1233exports.device[0] = parser;
1234parser = Object.create(null);
1235parser[0] = new RegExp("(?:(?:iPhone|Windows CE|Android).*(?:(?:Bot|Yeti)-Mobile|YRSpider|bots?/\\d|(?:bot|spider)\\.html)|AdsBot-Google-Mobile.*iPhone)");
1236parser[1] = "Spider";
1237parser[2] = 0;
1238parser[3] = 0;
1239parser[4] = 0;
1240exports.device[1] = parser;
1241parser = Object.create(null);
1242parser[0] = new RegExp("(?:DoCoMo|\\bMOT\\b|\\bLG\\b|Nokia|Samsung|SonyEricsson).*(?:(?:Bot|Yeti)-Mobile|bots?/\\d|(?:bot|crawler)\\.html|(?:jump|google|Wukong)bot|ichiro/mobile|/spider|YahooSeeker)");
1243parser[1] = "Spider";
1244parser[2] = 0;
1245parser[3] = 0;
1246parser[4] = 0;
1247exports.device[2] = parser;
1248parser = Object.create(null);
1249parser[0] = new RegExp("\\bSmartWatch *\\( *([^;]+) *; *([^;]+) *;");
1250parser[1] = "$1 $2";
1251parser[2] = 0;
1252parser[3] = 0;
1253parser[4] = 0;
1254exports.device[3] = parser;
1255parser = Object.create(null);
1256parser[0] = new RegExp("Android Application[^\\-]+ - (Sony) ?(Ericsson)? (.+) \\w+ - ");
1257parser[1] = "$1 $2";
1258parser[2] = 0;
1259parser[3] = 0;
1260parser[4] = 0;
1261exports.device[4] = parser;
1262parser = Object.create(null);
1263parser[0] = new RegExp("Android Application[^\\-]+ - (?:HTC|HUAWEI|LGE|LENOVO|MEDION|TCT) (HTC|HUAWEI|LG|LENOVO|MEDION|ALCATEL)[ _\\-](.+) \\w+ - ");
1264parser[1] = "$1 $2";
1265parser[2] = 0;
1266parser[3] = 0;
1267parser[4] = 0;
1268exports.device[5] = parser;
1269parser = Object.create(null);
1270parser[0] = new RegExp("Android Application[^\\-]+ - ([^ ]+) (.+) \\w+ - ");
1271parser[1] = "$1 $2";
1272parser[2] = 0;
1273parser[3] = 0;
1274parser[4] = 0;
1275exports.device[6] = parser;
1276parser = Object.create(null);
1277parser[0] = new RegExp("; *([BLRQ]C\\d{4}[A-Z]+) +Build/");
1278parser[1] = "3Q $1";
1279parser[2] = 0;
1280parser[3] = 0;
1281parser[4] = 0;
1282exports.device[7] = parser;
1283parser = Object.create(null);
1284parser[0] = new RegExp("; *(?:3Q_)([^;/]+) +Build");
1285parser[1] = "3Q $1";
1286parser[2] = 0;
1287parser[3] = 0;
1288parser[4] = 0;
1289exports.device[8] = parser;
1290parser = Object.create(null);
1291parser[0] = new RegExp("Android [34].*; *(A100|A101|A110|A200|A210|A211|A500|A501|A510|A511|A700(?: Lite| 3G)?|A701|B1-A71|A1-\\d{3}|B1-\\d{3}|V360|V370|W500|W500P|W501|W501P|W510|W511|W700|Slider SL101|DA22[^;/]+) Build");
1292parser[1] = "$1";
1293parser[2] = 0;
1294parser[3] = 0;
1295parser[4] = 0;
1296exports.device[9] = parser;
1297parser = Object.create(null);
1298parser[0] = new RegExp("; *Acer Iconia Tab ([^;/]+) Build");
1299parser[1] = "$1";
1300parser[2] = 0;
1301parser[3] = 0;
1302parser[4] = 0;
1303exports.device[10] = parser;
1304parser = Object.create(null);
1305parser[0] = new RegExp("; *(Z1[1235]0|E320[^/]*|S500|S510|Liquid[^;/]*|Iconia A\\d+) Build");
1306parser[1] = "$1";
1307parser[2] = 0;
1308parser[3] = 0;
1309parser[4] = 0;
1310exports.device[11] = parser;
1311parser = Object.create(null);
1312parser[0] = new RegExp("; *(Acer |ACER )([^;/]+) Build");
1313parser[1] = "$1$2";
1314parser[2] = 0;
1315parser[3] = 0;
1316parser[4] = 0;
1317exports.device[12] = parser;
1318parser = Object.create(null);
1319parser[0] = new RegExp("; *(Advent )?(Vega(?:Bean|Comb)?).* Build");
1320parser[1] = "$1$2";
1321parser[2] = 0;
1322parser[3] = 0;
1323parser[4] = 0;
1324exports.device[13] = parser;
1325parser = Object.create(null);
1326parser[0] = new RegExp("; *(Ainol )?((?:NOVO|[Nn]ovo)[^;/]+) Build");
1327parser[1] = "$1$2";
1328parser[2] = 0;
1329parser[3] = 0;
1330parser[4] = 0;
1331exports.device[14] = parser;
1332parser = Object.create(null);
1333parser[0] = new RegExp("; *AIRIS[ _\\-]?([^/;\\)]+) *(?:;|\\)|Build)");
1334parser[1] = "$1";
1335parser[2] = 0;
1336parser[3] = 0;
1337parser[4] = 0;
1338exports.device[15] = parser;
1339parser = Object.create(null);
1340parser[0] = new RegExp("; *(OnePAD[^;/]+) Build");
1341parser[1] = "$1";
1342parser[2] = 0;
1343parser[3] = 0;
1344parser[4] = 0;
1345exports.device[16] = parser;
1346parser = Object.create(null);
1347parser[0] = new RegExp("; *Airpad[ \\-]([^;/]+) Build");
1348parser[1] = "Airpad $1";
1349parser[2] = 0;
1350parser[3] = 0;
1351parser[4] = 0;
1352exports.device[17] = parser;
1353parser = Object.create(null);
1354parser[0] = new RegExp("; *(one ?touch) (EVO7|T10|T20) Build");
1355parser[1] = "Alcatel One Touch $2";
1356parser[2] = 0;
1357parser[3] = 0;
1358parser[4] = 0;
1359exports.device[18] = parser;
1360parser = Object.create(null);
1361parser[0] = new RegExp("; *(?:alcatel[ _])?(?:(?:one[ _]?touch[ _])|ot[ \\-])([^;/]+);? Build");
1362parser[1] = "Alcatel One Touch $1";
1363parser[2] = 0;
1364parser[3] = 0;
1365parser[4] = 0;
1366exports.device[19] = parser;
1367parser = Object.create(null);
1368parser[0] = new RegExp("; *(TCL)[ _]([^;/]+) Build");
1369parser[1] = "$1 $2";
1370parser[2] = 0;
1371parser[3] = 0;
1372parser[4] = 0;
1373exports.device[20] = parser;
1374parser = Object.create(null);
1375parser[0] = new RegExp("; *(Vodafone Smart II|Optimus_Madrid) Build");
1376parser[1] = "Alcatel $1";
1377parser[2] = 0;
1378parser[3] = 0;
1379parser[4] = 0;
1380exports.device[21] = parser;
1381parser = Object.create(null);
1382parser[0] = new RegExp("; *BASE_Lutea_3 Build");
1383parser[1] = "Alcatel One Touch 998";
1384parser[2] = 0;
1385parser[3] = 0;
1386parser[4] = 0;
1387exports.device[22] = parser;
1388parser = Object.create(null);
1389parser[0] = new RegExp("; *BASE_Varia Build");
1390parser[1] = "Alcatel One Touch 918D";
1391parser[2] = 0;
1392parser[3] = 0;
1393parser[4] = 0;
1394exports.device[23] = parser;
1395parser = Object.create(null);
1396parser[0] = new RegExp("; *((?:FINE|Fine)\\d[^;/]+) Build");
1397parser[1] = "$1";
1398parser[2] = 0;
1399parser[3] = 0;
1400parser[4] = 0;
1401exports.device[24] = parser;
1402parser = Object.create(null);
1403parser[0] = new RegExp("; *(ALLVIEW[ _]?|Allview[ _]?)((?:Speed|SPEED).*) Build/");
1404parser[1] = "$1$2";
1405parser[2] = 0;
1406parser[3] = 0;
1407parser[4] = 0;
1408exports.device[25] = parser;
1409parser = Object.create(null);
1410parser[0] = new RegExp("; *(ALLVIEW[ _]?|Allview[ _]?)?(AX1_Shine|AX2_Frenzy) Build");
1411parser[1] = "$1$2";
1412parser[2] = 0;
1413parser[3] = 0;
1414parser[4] = 0;
1415exports.device[26] = parser;
1416parser = Object.create(null);
1417parser[0] = new RegExp("; *(ALLVIEW[ _]?|Allview[ _]?)([^;/]*) Build");
1418parser[1] = "$1$2";
1419parser[2] = 0;
1420parser[3] = 0;
1421parser[4] = 0;
1422exports.device[27] = parser;
1423parser = Object.create(null);
1424parser[0] = new RegExp("; *(A13-MID) Build");
1425parser[1] = "$1";
1426parser[2] = 0;
1427parser[3] = 0;
1428parser[4] = 0;
1429exports.device[28] = parser;
1430parser = Object.create(null);
1431parser[0] = new RegExp("; *(Allwinner)[ _\\-]?([^;/]+) Build");
1432parser[1] = "$1 $2";
1433parser[2] = 0;
1434parser[3] = 0;
1435parser[4] = 0;
1436exports.device[29] = parser;
1437parser = Object.create(null);
1438parser[0] = new RegExp("; *(A651|A701B?|A702|A703|A705|A706|A707|A711|A712|A713|A717|A722|A785|A801|A802|A803|A901|A902|A1002|A1003|A1006|A1007|A9701|A9703|Q710|Q80) Build");
1439parser[1] = "$1";
1440parser[2] = 0;
1441parser[3] = 0;
1442parser[4] = 0;
1443exports.device[30] = parser;
1444parser = Object.create(null);
1445parser[0] = new RegExp("; *(?:AMOI|Amoi)[ _]([^;/]+) Build");
1446parser[1] = "Amoi $1";
1447parser[2] = 0;
1448parser[3] = 0;
1449parser[4] = 0;
1450exports.device[31] = parser;
1451parser = Object.create(null);
1452parser[0] = new RegExp("^(?:AMOI|Amoi)[ _]([^;/]+) Linux");
1453parser[1] = "Amoi $1";
1454parser[2] = 0;
1455parser[3] = 0;
1456parser[4] = 0;
1457exports.device[32] = parser;
1458parser = Object.create(null);
1459parser[0] = new RegExp("; *(MW(?:0[789]|10)[^;/]+) Build");
1460parser[1] = "$1";
1461parser[2] = 0;
1462parser[3] = 0;
1463parser[4] = 0;
1464exports.device[33] = parser;
1465parser = Object.create(null);
1466parser[0] = new RegExp("; *(G7|M1013|M1015G|M11[CG]?|M-?12[B]?|M15|M19[G]?|M30[ACQ]?|M31[GQ]|M32|M33[GQ]|M36|M37|M38|M701T|M710|M712B|M713|M715G|M716G|M71(?:G|GS|T)?|M72[T]?|M73[T]?|M75[GT]?|M77G|M79T|M7L|M7LN|M81|M810|M81T|M82|M92|M92KS|M92S|M717G|M721|M722G|M723|M725G|M739|M785|M791|M92SK|M93D) Build");
1467parser[1] = "Aoson $1";
1468parser[2] = 0;
1469parser[3] = 0;
1470parser[4] = 0;
1471exports.device[34] = parser;
1472parser = Object.create(null);
1473parser[0] = new RegExp("; *Aoson ([^;/]+) Build");
1474parser[1] = "Aoson $1";
1475parser[2] = 0;
1476parser[3] = 0;
1477parser[4] = 0;
1478exports.device[35] = parser;
1479parser = Object.create(null);
1480parser[0] = new RegExp("; *[Aa]panda[ _\\-]([^;/]+) Build");
1481parser[1] = "Apanda $1";
1482parser[2] = 0;
1483parser[3] = 0;
1484parser[4] = 0;
1485exports.device[36] = parser;
1486parser = Object.create(null);
1487parser[0] = new RegExp("; *(?:ARCHOS|Archos) ?(GAMEPAD(?:(?! Build|[;/\\(\\)\\-]).)*)");
1488parser[1] = "Archos $1";
1489parser[2] = 0;
1490parser[3] = 0;
1491parser[4] = 0;
1492exports.device[37] = parser;
1493parser = Object.create(null);
1494parser[0] = new RegExp("(?:ARCHOS|Archos)[ _]?((?:(?! Build|[;/\\(\\)\\-]).)+)");
1495parser[1] = "Archos $1";
1496parser[2] = 0;
1497parser[3] = 0;
1498parser[4] = 0;
1499exports.device[38] = parser;
1500parser = Object.create(null);
1501parser[0] = new RegExp("ARCHOS; GOGI; ([^;]+);");
1502parser[1] = "Archos $1";
1503parser[2] = 0;
1504parser[3] = 0;
1505parser[4] = 0;
1506exports.device[39] = parser;
1507parser = Object.create(null);
1508parser[0] = new RegExp("; *(AN(?:7|8|9|10|13)[A-Z0-9]{1,4}) Build");
1509parser[1] = "Archos $1";
1510parser[2] = 0;
1511parser[3] = 0;
1512parser[4] = 0;
1513exports.device[40] = parser;
1514parser = Object.create(null);
1515parser[0] = new RegExp("; *(A28|A32|A43|A70(?:BHT|CHT|HB|S|X)|A101(?:B|C|IT)|A7EB|A7EB-WK|101G9|80G9) Build");
1516parser[1] = "Archos $1";
1517parser[2] = 0;
1518parser[3] = 0;
1519parser[4] = 0;
1520exports.device[41] = parser;
1521parser = Object.create(null);
1522parser[0] = new RegExp("; *(PAD-FMD[^;/]+) Build");
1523parser[1] = "$1";
1524parser[2] = 0;
1525parser[3] = 0;
1526parser[4] = 0;
1527exports.device[42] = parser;
1528parser = Object.create(null);
1529parser[0] = new RegExp("; *(BioniQ) ?([^;/]+) Build");
1530parser[1] = "$1 $2";
1531parser[2] = 0;
1532parser[3] = 0;
1533parser[4] = 0;
1534exports.device[43] = parser;
1535parser = Object.create(null);
1536parser[0] = new RegExp("; *(AN\\d[^;/]+|ARCHM\\d+) Build");
1537parser[1] = "Arnova $1";
1538parser[2] = 0;
1539parser[3] = 0;
1540parser[4] = 0;
1541exports.device[44] = parser;
1542parser = Object.create(null);
1543parser[0] = new RegExp("; *(?:ARNOVA|Arnova) ?([^;/]+) Build");
1544parser[1] = "Arnova $1";
1545parser[2] = 0;
1546parser[3] = 0;
1547parser[4] = 0;
1548exports.device[45] = parser;
1549parser = Object.create(null);
1550parser[0] = new RegExp("; *(?:ASSISTANT )?(AP)-?([1789]\\d{2}[A-Z]{0,2}|80104) Build");
1551parser[1] = "Assistant $1-$2";
1552parser[2] = 0;
1553parser[3] = 0;
1554parser[4] = 0;
1555exports.device[46] = parser;
1556parser = Object.create(null);
1557parser[0] = new RegExp("; *(ME17\\d[^;/]*|ME3\\d{2}[^;/]+|K00[A-Z]|Nexus 10|Nexus 7(?: 2013)?|PadFone[^;/]*|Transformer[^;/]*|TF\\d{3}[^;/]*|eeepc) Build");
1558parser[1] = "Asus $1";
1559parser[2] = 0;
1560parser[3] = 0;
1561parser[4] = 0;
1562exports.device[47] = parser;
1563parser = Object.create(null);
1564parser[0] = new RegExp("; *ASUS[ _]*([^;/]+) Build");
1565parser[1] = "Asus $1";
1566parser[2] = 0;
1567parser[3] = 0;
1568parser[4] = 0;
1569exports.device[48] = parser;
1570parser = Object.create(null);
1571parser[0] = new RegExp("; *Garmin-Asus ([^;/]+) Build");
1572parser[1] = "Garmin-Asus $1";
1573parser[2] = 0;
1574parser[3] = 0;
1575parser[4] = 0;
1576exports.device[49] = parser;
1577parser = Object.create(null);
1578parser[0] = new RegExp("; *(Garminfone) Build");
1579parser[1] = "Garmin $1";
1580parser[2] = 0;
1581parser[3] = 0;
1582parser[4] = 0;
1583exports.device[50] = parser;
1584parser = Object.create(null);
1585parser[0] = new RegExp("; (@TAB-[^;/]+) Build");
1586parser[1] = "$1";
1587parser[2] = 0;
1588parser[3] = 0;
1589parser[4] = 0;
1590exports.device[51] = parser;
1591parser = Object.create(null);
1592parser[0] = new RegExp("; *(T-(?:(?!01)\\d{2})[^;/]+) Build");
1593parser[1] = "$1";
1594parser[2] = 0;
1595parser[3] = 0;
1596parser[4] = 0;
1597exports.device[52] = parser;
1598parser = Object.create(null);
1599parser[0] = new RegExp("; *(?:Axioo[ _\\-]([^;/]+)|(picopad)[ _\\-]([^;/]+)) Build");
1600parser[1] = "Axioo $1$2 $3";
1601parser[2] = 0;
1602parser[3] = 0;
1603parser[4] = 0;
1604exports.device[53] = parser;
1605parser = Object.create(null);
1606parser[0] = new RegExp("; *(V(?:100|700|800)[^;/]*) Build");
1607parser[1] = "$1";
1608parser[2] = 0;
1609parser[3] = 0;
1610parser[4] = 0;
1611exports.device[54] = parser;
1612parser = Object.create(null);
1613parser[0] = new RegExp("; *(IBAK\\-[^;/]*) Build");
1614parser[1] = "$1";
1615parser[2] = 0;
1616parser[3] = 0;
1617parser[4] = 0;
1618exports.device[55] = parser;
1619parser = Object.create(null);
1620parser[0] = new RegExp("; *(HY5001|HY6501|X12|X21|I5) Build");
1621parser[1] = "Bedove $1";
1622parser[2] = 0;
1623parser[3] = 0;
1624parser[4] = 0;
1625exports.device[56] = parser;
1626parser = Object.create(null);
1627parser[0] = new RegExp("; *(JC-[^;/]*) Build");
1628parser[1] = "Benss $1";
1629parser[2] = 0;
1630parser[3] = 0;
1631parser[4] = 0;
1632exports.device[57] = parser;
1633parser = Object.create(null);
1634parser[0] = new RegExp("; *(BB) ([^;/]+) Build");
1635parser[1] = "$1 $2";
1636parser[2] = 0;
1637parser[3] = 0;
1638parser[4] = 0;
1639exports.device[58] = parser;
1640parser = Object.create(null);
1641parser[0] = new RegExp("; *(BlackBird)[ _](I8.*) Build");
1642parser[1] = "$1 $2";
1643parser[2] = 0;
1644parser[3] = 0;
1645parser[4] = 0;
1646exports.device[59] = parser;
1647parser = Object.create(null);
1648parser[0] = new RegExp("; *(BlackBird)[ _](.*) Build");
1649parser[1] = "$1 $2";
1650parser[2] = 0;
1651parser[3] = 0;
1652parser[4] = 0;
1653exports.device[60] = parser;
1654parser = Object.create(null);
1655parser[0] = new RegExp("; *([0-9]+BP[EM][^;/]*|Endeavour[^;/]+) Build");
1656parser[1] = "Blaupunkt $1";
1657parser[2] = 0;
1658parser[3] = 0;
1659parser[4] = 0;
1660exports.device[61] = parser;
1661parser = Object.create(null);
1662parser[0] = new RegExp("; *((?:BLU|Blu)[ _\\-])([^;/]+) Build");
1663parser[1] = "$1$2";
1664parser[2] = 0;
1665parser[3] = 0;
1666parser[4] = 0;
1667exports.device[62] = parser;
1668parser = Object.create(null);
1669parser[0] = new RegExp("; *(?:BMOBILE )?(Blu|BLU|DASH [^;/]+|VIVO 4\\.3|TANK 4\\.5) Build");
1670parser[1] = "$1";
1671parser[2] = 0;
1672parser[3] = 0;
1673parser[4] = 0;
1674exports.device[63] = parser;
1675parser = Object.create(null);
1676parser[0] = new RegExp("; *(TOUCH\\d[^;/]+) Build");
1677parser[1] = "$1";
1678parser[2] = 0;
1679parser[3] = 0;
1680parser[4] = 0;
1681exports.device[64] = parser;
1682parser = Object.create(null);
1683parser[0] = new RegExp("; *(AX5\\d+) Build");
1684parser[1] = "$1";
1685parser[2] = 0;
1686parser[3] = 0;
1687parser[4] = 0;
1688exports.device[65] = parser;
1689parser = Object.create(null);
1690parser[0] = new RegExp("; *([Bb]q) ([^;/]+);? Build");
1691parser[1] = "$1 $2";
1692parser[2] = 0;
1693parser[3] = 0;
1694parser[4] = 0;
1695exports.device[66] = parser;
1696parser = Object.create(null);
1697parser[0] = new RegExp("; *(Maxwell [^;/]+) Build");
1698parser[1] = "$1";
1699parser[2] = 0;
1700parser[3] = 0;
1701parser[4] = 0;
1702exports.device[67] = parser;
1703parser = Object.create(null);
1704parser[0] = new RegExp("; *((?:B-Tab|B-TAB) ?\\d[^;/]+) Build");
1705parser[1] = "$1";
1706parser[2] = 0;
1707parser[3] = 0;
1708parser[4] = 0;
1709exports.device[68] = parser;
1710parser = Object.create(null);
1711parser[0] = new RegExp("; *(Broncho) ([^;/]+) Build");
1712parser[1] = "$1 $2";
1713parser[2] = 0;
1714parser[3] = 0;
1715parser[4] = 0;
1716exports.device[69] = parser;
1717parser = Object.create(null);
1718parser[0] = new RegExp("; *CAPTIVA ([^;/]+) Build");
1719parser[1] = "Captiva $1";
1720parser[2] = 0;
1721parser[3] = 0;
1722parser[4] = 0;
1723exports.device[70] = parser;
1724parser = Object.create(null);
1725parser[0] = new RegExp("; *(C771|CAL21|IS11CA) Build");
1726parser[1] = "$1";
1727parser[2] = 0;
1728parser[3] = 0;
1729parser[4] = 0;
1730exports.device[71] = parser;
1731parser = Object.create(null);
1732parser[0] = new RegExp("; *(?:Cat|CAT) ([^;/]+) Build");
1733parser[1] = "Cat $1";
1734parser[2] = 0;
1735parser[3] = 0;
1736parser[4] = 0;
1737exports.device[72] = parser;
1738parser = Object.create(null);
1739parser[0] = new RegExp("; *(?:Cat)(Nova.*) Build");
1740parser[1] = "Cat $1";
1741parser[2] = 0;
1742parser[3] = 0;
1743parser[4] = 0;
1744exports.device[73] = parser;
1745parser = Object.create(null);
1746parser[0] = new RegExp("; *(INM8002KP|ADM8000KP_[AB]) Build");
1747parser[1] = "$1";
1748parser[2] = 0;
1749parser[3] = 0;
1750parser[4] = 0;
1751exports.device[74] = parser;
1752parser = Object.create(null);
1753parser[0] = new RegExp("; *(?:[Cc]elkon[ _\\*]|CELKON[ _\\*])([^;/\\)]+) ?(?:Build|;|\\))");
1754parser[1] = "$1";
1755parser[2] = 0;
1756parser[3] = 0;
1757parser[4] = 0;
1758exports.device[75] = parser;
1759parser = Object.create(null);
1760parser[0] = new RegExp("Build/(?:[Cc]elkon)+_?([^;/_\\)]+)");
1761parser[1] = "$1";
1762parser[2] = 0;
1763parser[3] = 0;
1764parser[4] = 0;
1765exports.device[76] = parser;
1766parser = Object.create(null);
1767parser[0] = new RegExp("; *(CT)-?(\\d+) Build");
1768parser[1] = "$1$2";
1769parser[2] = 0;
1770parser[3] = 0;
1771parser[4] = 0;
1772exports.device[77] = parser;
1773parser = Object.create(null);
1774parser[0] = new RegExp("; *(A19|A19Q|A105|A107[^;/\\)]*) ?(?:Build|;|\\))");
1775parser[1] = "$1";
1776parser[2] = 0;
1777parser[3] = 0;
1778parser[4] = 0;
1779exports.device[78] = parser;
1780parser = Object.create(null);
1781parser[0] = new RegExp("; *(TPC[0-9]{4,5}) Build");
1782parser[1] = "$1";
1783parser[2] = 0;
1784parser[3] = 0;
1785parser[4] = 0;
1786exports.device[79] = parser;
1787parser = Object.create(null);
1788parser[0] = new RegExp("; *(Cloudfone)[ _](Excite)([^ ][^;/]+) Build");
1789parser[1] = "$1 $2 $3";
1790parser[2] = 0;
1791parser[3] = 0;
1792parser[4] = 0;
1793exports.device[80] = parser;
1794parser = Object.create(null);
1795parser[0] = new RegExp("; *(Excite|ICE)[ _](\\d+[^;/]+) Build");
1796parser[1] = "Cloudfone $1 $2";
1797parser[2] = 0;
1798parser[3] = 0;
1799parser[4] = 0;
1800exports.device[81] = parser;
1801parser = Object.create(null);
1802parser[0] = new RegExp("; *(Cloudfone|CloudPad)[ _]([^;/]+) Build");
1803parser[1] = "$1 $2";
1804parser[2] = 0;
1805parser[3] = 0;
1806parser[4] = 0;
1807exports.device[82] = parser;
1808parser = Object.create(null);
1809parser[0] = new RegExp("; *((?:Aquila|Clanga|Rapax)[^;/]+) Build");
1810parser[1] = "$1";
1811parser[2] = 0;
1812parser[3] = 0;
1813parser[4] = 0;
1814exports.device[83] = parser;
1815parser = Object.create(null);
1816parser[0] = new RegExp("; *(?:CFW-|Kyros )?(MID[0-9]{4}(?:[ABC]|SR|TV)?)(\\(3G\\)-4G| GB 8K| 3G| 8K| GB)? *(?:Build|[;\\)])");
1817parser[1] = "CobyKyros $1$2";
1818parser[2] = 0;
1819parser[3] = 0;
1820parser[4] = 0;
1821exports.device[84] = parser;
1822parser = Object.create(null);
1823parser[0] = new RegExp("; *([^;/]*)Coolpad[ _]([^;/]+) Build");
1824parser[1] = "$1$2";
1825parser[2] = 0;
1826parser[3] = 0;
1827parser[4] = 0;
1828exports.device[85] = parser;
1829parser = Object.create(null);
1830parser[0] = new RegExp("; *(CUBE[ _])?([KU][0-9]+ ?GT.*|A5300) Build");
1831parser[1] = "$1$2";
1832parser[2] = 0;
1833parser[3] = 0;
1834parser[4] = 0;
1835exports.device[86] = parser;
1836parser = Object.create(null);
1837parser[0] = new RegExp("; *CUBOT ([^;/]+) Build");
1838parser[1] = "$1";
1839parser[2] = 0;
1840parser[3] = 0;
1841parser[4] = 0;
1842exports.device[87] = parser;
1843parser = Object.create(null);
1844parser[0] = new RegExp("; *(BOBBY) Build");
1845parser[1] = "$1";
1846parser[2] = 0;
1847parser[3] = 0;
1848parser[4] = 0;
1849exports.device[88] = parser;
1850parser = Object.create(null);
1851parser[0] = new RegExp("; *(Dslide [^;/]+) Build");
1852parser[1] = "$1";
1853parser[2] = 0;
1854parser[3] = 0;
1855parser[4] = 0;
1856exports.device[89] = parser;
1857parser = Object.create(null);
1858parser[0] = new RegExp("; *(XCD)[ _]?(28|35) Build");
1859parser[1] = "Dell $1$2";
1860parser[2] = 0;
1861parser[3] = 0;
1862parser[4] = 0;
1863exports.device[90] = parser;
1864parser = Object.create(null);
1865parser[0] = new RegExp("; *(001DL) Build");
1866parser[1] = "Dell $1";
1867parser[2] = 0;
1868parser[3] = 0;
1869parser[4] = 0;
1870exports.device[91] = parser;
1871parser = Object.create(null);
1872parser[0] = new RegExp("; *(?:Dell|DELL) (Streak) Build");
1873parser[1] = "Dell $1";
1874parser[2] = 0;
1875parser[3] = 0;
1876parser[4] = 0;
1877exports.device[92] = parser;
1878parser = Object.create(null);
1879parser[0] = new RegExp("; *(101DL|GS01|Streak Pro[^;/]*) Build");
1880parser[1] = "Dell $1";
1881parser[2] = 0;
1882parser[3] = 0;
1883parser[4] = 0;
1884exports.device[93] = parser;
1885parser = Object.create(null);
1886parser[0] = new RegExp("; *([Ss]treak ?7) Build");
1887parser[1] = "Dell $1";
1888parser[2] = 0;
1889parser[3] = 0;
1890parser[4] = 0;
1891exports.device[94] = parser;
1892parser = Object.create(null);
1893parser[0] = new RegExp("; *(Mini-3iX) Build");
1894parser[1] = "Dell $1";
1895parser[2] = 0;
1896parser[3] = 0;
1897parser[4] = 0;
1898exports.device[95] = parser;
1899parser = Object.create(null);
1900parser[0] = new RegExp("; *(?:Dell|DELL)[ _](Aero|Venue|Thunder|Mini.*|Streak[ _]Pro) Build");
1901parser[1] = "Dell $1";
1902parser[2] = 0;
1903parser[3] = 0;
1904parser[4] = 0;
1905exports.device[96] = parser;
1906parser = Object.create(null);
1907parser[0] = new RegExp("; *Dell[ _]([^;/]+) Build");
1908parser[1] = "Dell $1";
1909parser[2] = 0;
1910parser[3] = 0;
1911parser[4] = 0;
1912exports.device[97] = parser;
1913parser = Object.create(null);
1914parser[0] = new RegExp("; *Dell ([^;/]+) Build");
1915parser[1] = "Dell $1";
1916parser[2] = 0;
1917parser[3] = 0;
1918parser[4] = 0;
1919exports.device[98] = parser;
1920parser = Object.create(null);
1921parser[0] = new RegExp("; *(TA[CD]-\\d+[^;/]*) Build");
1922parser[1] = "$1";
1923parser[2] = 0;
1924parser[3] = 0;
1925parser[4] = 0;
1926exports.device[99] = parser;
1927parser = Object.create(null);
1928parser[0] = new RegExp("; *(iP[789]\\d{2}(?:-3G)?|IP10\\d{2}(?:-8GB)?) Build");
1929parser[1] = "$1";
1930parser[2] = 0;
1931parser[3] = 0;
1932parser[4] = 0;
1933exports.device[100] = parser;
1934parser = Object.create(null);
1935parser[0] = new RegExp("; *(AirTab)[ _\\-]([^;/]+) Build");
1936parser[1] = "$1 $2";
1937parser[2] = 0;
1938parser[3] = 0;
1939parser[4] = 0;
1940exports.device[101] = parser;
1941parser = Object.create(null);
1942parser[0] = new RegExp("; *(F\\-\\d[^;/]+) Build");
1943parser[1] = "$1";
1944parser[2] = 0;
1945parser[3] = 0;
1946parser[4] = 0;
1947exports.device[102] = parser;
1948parser = Object.create(null);
1949parser[0] = new RegExp("; *(HT-03A) Build");
1950parser[1] = "$1";
1951parser[2] = 0;
1952parser[3] = 0;
1953parser[4] = 0;
1954exports.device[103] = parser;
1955parser = Object.create(null);
1956parser[0] = new RegExp("; *(HT\\-\\d[^;/]+) Build");
1957parser[1] = "$1";
1958parser[2] = 0;
1959parser[3] = 0;
1960parser[4] = 0;
1961exports.device[104] = parser;
1962parser = Object.create(null);
1963parser[0] = new RegExp("; *(L\\-\\d[^;/]+) Build");
1964parser[1] = "$1";
1965parser[2] = 0;
1966parser[3] = 0;
1967parser[4] = 0;
1968exports.device[105] = parser;
1969parser = Object.create(null);
1970parser[0] = new RegExp("; *(N\\-\\d[^;/]+) Build");
1971parser[1] = "$1";
1972parser[2] = 0;
1973parser[3] = 0;
1974parser[4] = 0;
1975exports.device[106] = parser;
1976parser = Object.create(null);
1977parser[0] = new RegExp("; *(P\\-\\d[^;/]+) Build");
1978parser[1] = "$1";
1979parser[2] = 0;
1980parser[3] = 0;
1981parser[4] = 0;
1982exports.device[107] = parser;
1983parser = Object.create(null);
1984parser[0] = new RegExp("; *(SC\\-\\d[^;/]+) Build");
1985parser[1] = "$1";
1986parser[2] = 0;
1987parser[3] = 0;
1988parser[4] = 0;
1989exports.device[108] = parser;
1990parser = Object.create(null);
1991parser[0] = new RegExp("; *(SH\\-\\d[^;/]+) Build");
1992parser[1] = "$1";
1993parser[2] = 0;
1994parser[3] = 0;
1995parser[4] = 0;
1996exports.device[109] = parser;
1997parser = Object.create(null);
1998parser[0] = new RegExp("; *(SO\\-\\d[^;/]+) Build");
1999parser[1] = "$1";
2000parser[2] = 0;
2001parser[3] = 0;
2002parser[4] = 0;
2003exports.device[110] = parser;
2004parser = Object.create(null);
2005parser[0] = new RegExp("; *(T\\-01[^;/]+) Build");
2006parser[1] = "$1";
2007parser[2] = 0;
2008parser[3] = 0;
2009parser[4] = 0;
2010exports.device[111] = parser;
2011parser = Object.create(null);
2012parser[0] = new RegExp("; *(DOOV)[ _]([^;/]+) Build");
2013parser[1] = "$1 $2";
2014parser[2] = 0;
2015parser[3] = 0;
2016parser[4] = 0;
2017exports.device[112] = parser;
2018parser = Object.create(null);
2019parser[0] = new RegExp("; *(Enot|ENOT)[ -]?([^;/]+) Build");
2020parser[1] = "$1 $2";
2021parser[2] = 0;
2022parser[3] = 0;
2023parser[4] = 0;
2024exports.device[113] = parser;
2025parser = Object.create(null);
2026parser[0] = new RegExp("; *[^;/]+ Build/(?:CROSS|Cross)+[ _\\-]([^\\)]+)");
2027parser[1] = "CROSS $1";
2028parser[2] = 0;
2029parser[3] = 0;
2030parser[4] = 0;
2031exports.device[114] = parser;
2032parser = Object.create(null);
2033parser[0] = new RegExp("; *(CROSS|Cross)[ _\\-]([^;/]+) Build");
2034parser[1] = "$1 $2";
2035parser[2] = 0;
2036parser[3] = 0;
2037parser[4] = 0;
2038exports.device[115] = parser;
2039parser = Object.create(null);
2040parser[0] = new RegExp("; *Explay[_ ]((?:(?![\\)]| Build).)+)");
2041parser[1] = "$1";
2042parser[2] = 0;
2043parser[3] = 0;
2044parser[4] = 0;
2045exports.device[116] = parser;
2046parser = Object.create(null);
2047parser[0] = new RegExp("; *(IQ.*) Build");
2048parser[1] = "$1";
2049parser[2] = 0;
2050parser[3] = 0;
2051parser[4] = 0;
2052exports.device[117] = parser;
2053parser = Object.create(null);
2054parser[0] = new RegExp("; *(Fly|FLY)[ _](IQ[^;]+|F[34]\\d+[^;]*);? Build");
2055parser[1] = "$1 $2";
2056parser[2] = 0;
2057parser[3] = 0;
2058parser[4] = 0;
2059exports.device[118] = parser;
2060parser = Object.create(null);
2061parser[0] = new RegExp("; *(M532|Q572|FJL21) Build/");
2062parser[1] = "$1";
2063parser[2] = 0;
2064parser[3] = 0;
2065parser[4] = 0;
2066exports.device[119] = parser;
2067parser = Object.create(null);
2068parser[0] = new RegExp("; *(G1) Build");
2069parser[1] = "$1";
2070parser[2] = 0;
2071parser[3] = 0;
2072parser[4] = 0;
2073exports.device[120] = parser;
2074parser = Object.create(null);
2075parser[0] = new RegExp("; *(Geeksphone) ([^;/]+) Build");
2076parser[1] = "$1 $2";
2077parser[2] = 0;
2078parser[3] = 0;
2079parser[4] = 0;
2080exports.device[121] = parser;
2081parser = Object.create(null);
2082parser[0] = new RegExp("; *(G[^F]?FIVE) ([^;/]+) Build");
2083parser[1] = "$1 $2";
2084parser[2] = 0;
2085parser[3] = 0;
2086parser[4] = 0;
2087exports.device[122] = parser;
2088parser = Object.create(null);
2089parser[0] = new RegExp("; *(Gionee)[ _\\-]([^;/]+)(?:/[^;/]+)? Build");
2090parser[1] = "$1 $2";
2091parser[2] = 0;
2092parser[3] = 0;
2093parser[4] = 0;
2094exports.device[123] = parser;
2095parser = Object.create(null);
2096parser[0] = new RegExp("; *(GN\\d+[A-Z]?|INFINITY_PASSION|Ctrl_V1) Build");
2097parser[1] = "Gionee $1";
2098parser[2] = 0;
2099parser[3] = 0;
2100parser[4] = 0;
2101exports.device[124] = parser;
2102parser = Object.create(null);
2103parser[0] = new RegExp("; *(E3) Build/JOP40D");
2104parser[1] = "Gionee $1";
2105parser[2] = 0;
2106parser[3] = 0;
2107parser[4] = 0;
2108exports.device[125] = parser;
2109parser = Object.create(null);
2110parser[0] = new RegExp("; *((?:FONE|QUANTUM|INSIGNIA) \\d+[^;/]*|PLAYTAB) Build");
2111parser[1] = "GoClever $1";
2112parser[2] = 0;
2113parser[3] = 0;
2114parser[4] = 0;
2115exports.device[126] = parser;
2116parser = Object.create(null);
2117parser[0] = new RegExp("; *GOCLEVER ([^;/]+) Build");
2118parser[1] = "GoClever $1";
2119parser[2] = 0;
2120parser[3] = 0;
2121parser[4] = 0;
2122exports.device[127] = parser;
2123parser = Object.create(null);
2124parser[0] = new RegExp("; *(Glass \\d+) Build");
2125parser[1] = "$1";
2126parser[2] = 0;
2127parser[3] = 0;
2128parser[4] = 0;
2129exports.device[128] = parser;
2130parser = Object.create(null);
2131parser[0] = new RegExp("; *(GSmart)[ -]([^/]+) Build");
2132parser[1] = "$1 $2";
2133parser[2] = 0;
2134parser[3] = 0;
2135parser[4] = 0;
2136exports.device[129] = parser;
2137parser = Object.create(null);
2138parser[0] = new RegExp("; *(imx5[13]_[^/]+) Build");
2139parser[1] = "Freescale $1";
2140parser[2] = 0;
2141parser[3] = 0;
2142parser[4] = 0;
2143exports.device[130] = parser;
2144parser = Object.create(null);
2145parser[0] = new RegExp("; *Haier[ _\\-]([^/]+) Build");
2146parser[1] = "Haier $1";
2147parser[2] = 0;
2148parser[3] = 0;
2149parser[4] = 0;
2150exports.device[131] = parser;
2151parser = Object.create(null);
2152parser[0] = new RegExp("; *(PAD1016) Build");
2153parser[1] = "Haipad $1";
2154parser[2] = 0;
2155parser[3] = 0;
2156parser[4] = 0;
2157exports.device[132] = parser;
2158parser = Object.create(null);
2159parser[0] = new RegExp("; *(M701|M7|M8|M9) Build");
2160parser[1] = "Haipad $1";
2161parser[2] = 0;
2162parser[3] = 0;
2163parser[4] = 0;
2164exports.device[133] = parser;
2165parser = Object.create(null);
2166parser[0] = new RegExp("; *(SN\\d+T[^;\\)/]*)(?: Build|[;\\)])");
2167parser[1] = "Hannspree $1";
2168parser[2] = 0;
2169parser[3] = 0;
2170parser[4] = 0;
2171exports.device[134] = parser;
2172parser = Object.create(null);
2173parser[0] = new RegExp("Build/HCL ME Tablet ([^;\\)]+)[\\);]");
2174parser[1] = "HCLme $1";
2175parser[2] = 0;
2176parser[3] = 0;
2177parser[4] = 0;
2178exports.device[135] = parser;
2179parser = Object.create(null);
2180parser[0] = new RegExp("; *([^;\\/]+) Build/HCL");
2181parser[1] = "HCLme $1";
2182parser[2] = 0;
2183parser[3] = 0;
2184parser[4] = 0;
2185exports.device[136] = parser;
2186parser = Object.create(null);
2187parser[0] = new RegExp("; *(MID-?\\d{4}C[EM]) Build");
2188parser[1] = "Hena $1";
2189parser[2] = 0;
2190parser[3] = 0;
2191parser[4] = 0;
2192exports.device[137] = parser;
2193parser = Object.create(null);
2194parser[0] = new RegExp("; *(EG\\d{2,}|HS-[^;/]+|MIRA[^;/]+) Build");
2195parser[1] = "Hisense $1";
2196parser[2] = 0;
2197parser[3] = 0;
2198parser[4] = 0;
2199exports.device[138] = parser;
2200parser = Object.create(null);
2201parser[0] = new RegExp("; *(andromax[^;/]+) Build");
2202parser[1] = "Hisense $1";
2203parser[2] = 0;
2204parser[3] = 0;
2205parser[4] = 0;
2206exports.device[139] = parser;
2207parser = Object.create(null);
2208parser[0] = new RegExp("; *(?:AMAZE[ _](S\\d+)|(S\\d+)[ _]AMAZE) Build");
2209parser[1] = "AMAZE $1$2";
2210parser[2] = 0;
2211parser[3] = 0;
2212parser[4] = 0;
2213exports.device[140] = parser;
2214parser = Object.create(null);
2215parser[0] = new RegExp("; *(PlayBook) Build");
2216parser[1] = "HP $1";
2217parser[2] = 0;
2218parser[3] = 0;
2219parser[4] = 0;
2220exports.device[141] = parser;
2221parser = Object.create(null);
2222parser[0] = new RegExp("; *HP ([^/]+) Build");
2223parser[1] = "HP $1";
2224parser[2] = 0;
2225parser[3] = 0;
2226parser[4] = 0;
2227exports.device[142] = parser;
2228parser = Object.create(null);
2229parser[0] = new RegExp("; *([^/]+_tenderloin) Build");
2230parser[1] = "HP TouchPad";
2231parser[2] = 0;
2232parser[3] = 0;
2233parser[4] = 0;
2234exports.device[143] = parser;
2235parser = Object.create(null);
2236parser[0] = new RegExp("; *(HUAWEI |Huawei-)?([UY][^;/]+) Build/(?:Huawei|HUAWEI)([UY][^\\);]+)\\)");
2237parser[1] = "$1$2";
2238parser[2] = 0;
2239parser[3] = 0;
2240parser[4] = 0;
2241exports.device[144] = parser;
2242parser = Object.create(null);
2243parser[0] = new RegExp("; *([^;/]+) Build[/ ]Huawei(MT1-U06|[A-Z]+\\d+[^\\);]+)[^\\);]*\\)");
2244parser[1] = "$1";
2245parser[2] = 0;
2246parser[3] = 0;
2247parser[4] = 0;
2248exports.device[145] = parser;
2249parser = Object.create(null);
2250parser[0] = new RegExp("; *(S7|M860) Build");
2251parser[1] = "$1";
2252parser[2] = 0;
2253parser[3] = 0;
2254parser[4] = 0;
2255exports.device[146] = parser;
2256parser = Object.create(null);
2257parser[0] = new RegExp("; *((?:HUAWEI|Huawei)[ \\-]?)(MediaPad) Build");
2258parser[1] = "$1$2";
2259parser[2] = 0;
2260parser[3] = 0;
2261parser[4] = 0;
2262exports.device[147] = parser;
2263parser = Object.create(null);
2264parser[0] = new RegExp("; *((?:HUAWEI[ _]?|Huawei[ _])?Ascend[ _])([^;/]+) Build");
2265parser[1] = "$1$2";
2266parser[2] = 0;
2267parser[3] = 0;
2268parser[4] = 0;
2269exports.device[148] = parser;
2270parser = Object.create(null);
2271parser[0] = new RegExp("; *((?:HUAWEI|Huawei)[ _\\-]?)((?:G700-|MT-)[^;/]+) Build");
2272parser[1] = "$1$2";
2273parser[2] = 0;
2274parser[3] = 0;
2275parser[4] = 0;
2276exports.device[149] = parser;
2277parser = Object.create(null);
2278parser[0] = new RegExp("; *((?:HUAWEI|Huawei)[ _\\-]?)([^;/]+) Build");
2279parser[1] = "$1$2";
2280parser[2] = 0;
2281parser[3] = 0;
2282parser[4] = 0;
2283exports.device[150] = parser;
2284parser = Object.create(null);
2285parser[0] = new RegExp("; *(MediaPad[^;]+|SpringBoard) Build/Huawei");
2286parser[1] = "$1";
2287parser[2] = 0;
2288parser[3] = 0;
2289parser[4] = 0;
2290exports.device[151] = parser;
2291parser = Object.create(null);
2292parser[0] = new RegExp("; *([^;]+) Build/Huawei");
2293parser[1] = "$1";
2294parser[2] = 0;
2295parser[3] = 0;
2296parser[4] = 0;
2297exports.device[152] = parser;
2298parser = Object.create(null);
2299parser[0] = new RegExp("; *([Uu])([89]\\d{3}) Build");
2300parser[1] = "$1$2";
2301parser[2] = 0;
2302parser[3] = 0;
2303parser[4] = 0;
2304exports.device[153] = parser;
2305parser = Object.create(null);
2306parser[0] = new RegExp("; *(?:Ideos |IDEOS )(S7) Build");
2307parser[1] = "Huawei Ideos$1";
2308parser[2] = 0;
2309parser[3] = 0;
2310parser[4] = 0;
2311exports.device[154] = parser;
2312parser = Object.create(null);
2313parser[0] = new RegExp("; *(?:Ideos |IDEOS )([^;/]+\\s*|\\s*)Build");
2314parser[1] = "Huawei Ideos$1";
2315parser[2] = 0;
2316parser[3] = 0;
2317parser[4] = 0;
2318exports.device[155] = parser;
2319parser = Object.create(null);
2320parser[0] = new RegExp("; *(Orange Daytona|Pulse|Pulse Mini|Vodafone 858|C8500|C8600|C8650|C8660) Build");
2321parser[1] = "Huawei $1";
2322parser[2] = 0;
2323parser[3] = 0;
2324parser[4] = 0;
2325exports.device[156] = parser;
2326parser = Object.create(null);
2327parser[0] = new RegExp("; *(?:HTC)(?:[ _/]((?:(?![ _/;\\(\\)]|Build|MIUI).)+))(?:[ _/]((?:(?![ _/;\\(\\)]|HTC|Build|MIUI).)+))?(?:[ _/]((?:(?![ _/;\\(\\)]|Build|MIUI).)+))?(?:[ _/]((?:(?![/;\\)]|Build|MIUI).)+))?(?:[/\\\\]1\\.0 | V|/| +)\\d+\\.\\d[\\d\\.]+");
2328parser[1] = "HTC $1 $2 $3 $4";
2329parser[2] = 0;
2330parser[3] = 0;
2331parser[4] = 0;
2332exports.device[157] = parser;
2333parser = Object.create(null);
2334parser[0] = new RegExp("; *(?:HTC[ ;])?(?:HTC(?:_blocked)*)(?:(?:[ _/]|; *)((?:(?![ _/;\\(\\)\\\\]|USCCHTC|HTC|Build|MIUI).)+))(?:[ _/]((?:(?![ _/;\\(\\)\\\\]|Build|MIUI|1\\.0).)+))?(?:[ _/]((?:(?![ _/;\\(\\)\\\\]|Build|MIUI|1\\.0).)+))?(?:[ _/]((?:(?![/;\\)]|Build|MIUI|1\\.0).)+))?");
2335parser[1] = "HTC $1 $2 $3 $4";
2336parser[2] = 0;
2337parser[3] = 0;
2338parser[4] = 0;
2339exports.device[158] = parser;
2340parser = Object.create(null);
2341parser[0] = new RegExp("HTC Streaming Player [^\\/]*/[^\\/]*/ htc_([^/]+) /");
2342parser[1] = "HTC $1";
2343parser[2] = 0;
2344parser[3] = 0;
2345parser[4] = 0;
2346exports.device[159] = parser;
2347parser = Object.create(null);
2348parser[0] = new RegExp("(?:[;,] *|^)(?:htccn_chs-)?HTC[ _\\-]?((?:(?! Build|clay|Android|-?Mozilla| Opera| Profile| UNTRUSTED|[;/\\(\\)]).)+)");
2349parser[1] = "HTC $1";
2350parser[2] = 0;
2351parser[3] = 0;
2352parser[4] = 0;
2353exports.device[160] = parser;
2354parser = Object.create(null);
2355parser[0] = new RegExp("; *(A6277|ADR6200|ADR6300|ADR6350|ADR6400[A-Z]*|ADR6425[A-Z]*|APX515CKT|ARIA|Desire[^_ ]*|Dream|EndeavorU|Eris|Evo|Flyer|HD2|Hero|HERO200|Hero CDMA|HTL21|Incredible|Inspire[A-Z0-9]*|Legend|Liberty|Nexus ?(?:One|HD2)|One|One S C2|One[ _]?(?:S|V|X\\+?)\\w*|PC36100|PG06100|PG86100|S31HT|Sensation|Wildfire)(?: Build|[/;\\(\\)])");
2356parser[1] = "HTC $1";
2357parser[2] = 0;
2358parser[3] = 0;
2359parser[4] = 0;
2360exports.device[161] = parser;
2361parser = Object.create(null);
2362parser[0] = new RegExp("; *(ADR6200|ADR6400L|ADR6425LVW|Amaze|DesireS?|EndeavorU|Eris|EVO|Evo\\d[A-Z]+|HD2|IncredibleS?|Inspire[A-Z0-9]*|Inspire[A-Z0-9]*|Sensation[A-Z0-9]*|Wildfire)(?:(?:[ _/\\-])((?:(?![ _/;\\(\\)]|Build|MIUI).)+))(?:[ _/]((?:(?![ _/;\\(\\)]|Build|MIUI|1\\.0).)+))?(?:[ _/]((?:(?![ _/;\\(\\)]|Build|MIUI|1\\.0).)+))?(?:[ _/]((?:(?![/;\\)]|Build|MIUI|1\\.0).)+))?");
2363parser[1] = "HTC $1 $2 $3 $4";
2364parser[2] = 0;
2365parser[3] = 0;
2366parser[4] = 0;
2367exports.device[162] = parser;
2368parser = Object.create(null);
2369parser[0] = new RegExp("; *HYUNDAI (T\\d[^/]*) Build");
2370parser[1] = "Hyundai $1";
2371parser[2] = 0;
2372parser[3] = 0;
2373parser[4] = 0;
2374exports.device[163] = parser;
2375parser = Object.create(null);
2376parser[0] = new RegExp("; *HYUNDAI ([^;/]+) Build");
2377parser[1] = "Hyundai $1";
2378parser[2] = 0;
2379parser[3] = 0;
2380parser[4] = 0;
2381exports.device[164] = parser;
2382parser = Object.create(null);
2383parser[0] = new RegExp("; *(X700|Hold X|MB-6900) Build");
2384parser[1] = "Hyundai $1";
2385parser[2] = 0;
2386parser[3] = 0;
2387parser[4] = 0;
2388exports.device[165] = parser;
2389parser = Object.create(null);
2390parser[0] = new RegExp("; *(?:iBall[ _\\-])?(Andi)[ _]?(\\d[^;/]*) Build");
2391parser[1] = "$1 $2";
2392parser[2] = 0;
2393parser[3] = 0;
2394parser[4] = 0;
2395exports.device[166] = parser;
2396parser = Object.create(null);
2397parser[0] = new RegExp("; *(IBall)(?:[ _]([^;/]+)|) Build");
2398parser[1] = "$1 $2";
2399parser[2] = 0;
2400parser[3] = 0;
2401parser[4] = 0;
2402exports.device[167] = parser;
2403parser = Object.create(null);
2404parser[0] = new RegExp("; *(NT-\\d+[^ ;/]*|Net[Tt]AB [^;/]+|Mercury [A-Z]+|iconBIT)(?: S/N:[^;/]+)? Build");
2405parser[1] = "$1";
2406parser[2] = 0;
2407parser[3] = 0;
2408parser[4] = 0;
2409exports.device[168] = parser;
2410parser = Object.create(null);
2411parser[0] = new RegExp("; *(IMO)[ _]([^;/]+) Build");
2412parser[1] = "$1 $2";
2413parser[2] = 0;
2414parser[3] = 0;
2415parser[4] = 0;
2416exports.device[169] = parser;
2417parser = Object.create(null);
2418parser[0] = new RegExp("; *i-?mobile[ _]([^/]+) Build/");
2419parser[1] = "i-mobile $1";
2420parser[2] = 0;
2421parser[3] = 0;
2422parser[4] = 0;
2423exports.device[170] = parser;
2424parser = Object.create(null);
2425parser[0] = new RegExp("; *(i-(?:style|note)[^/]*) Build/");
2426parser[1] = "i-mobile $1";
2427parser[2] = 0;
2428parser[3] = 0;
2429parser[4] = 0;
2430exports.device[171] = parser;
2431parser = Object.create(null);
2432parser[0] = new RegExp("; *(ImPAD) ?(\\d+(?:.)*) Build");
2433parser[1] = "$1 $2";
2434parser[2] = 0;
2435parser[3] = 0;
2436parser[4] = 0;
2437exports.device[172] = parser;
2438parser = Object.create(null);
2439parser[0] = new RegExp("; *(Infinix)[ _]([^;/]+) Build");
2440parser[1] = "$1 $2";
2441parser[2] = 0;
2442parser[3] = 0;
2443parser[4] = 0;
2444exports.device[173] = parser;
2445parser = Object.create(null);
2446parser[0] = new RegExp("; *(Informer)[ \\-]([^;/]+) Build");
2447parser[1] = "$1 $2";
2448parser[2] = 0;
2449parser[3] = 0;
2450parser[4] = 0;
2451exports.device[174] = parser;
2452parser = Object.create(null);
2453parser[0] = new RegExp("; *(TAB) ?([78][12]4) Build");
2454parser[1] = "Intenso $1";
2455parser[2] = 0;
2456parser[3] = 0;
2457parser[4] = 0;
2458exports.device[175] = parser;
2459parser = Object.create(null);
2460parser[0] = new RegExp("; *(?:Intex[ _])?(AQUA|Aqua)([ _\\.\\-])([^;/]+) *(?:Build|;)");
2461parser[1] = "$1$2$3";
2462parser[2] = 0;
2463parser[3] = 0;
2464parser[4] = 0;
2465exports.device[176] = parser;
2466parser = Object.create(null);
2467parser[0] = new RegExp("; *(?:INTEX|Intex)(?:[_ ]([^\\ _;/]+))(?:[_ ]([^\\ _;/]+))? *(?:Build|;)");
2468parser[1] = "$1 $2";
2469parser[2] = 0;
2470parser[3] = 0;
2471parser[4] = 0;
2472exports.device[177] = parser;
2473parser = Object.create(null);
2474parser[0] = new RegExp("; *([iI]Buddy)[ _]?(Connect)(?:_|\\?_| )?([^;/]*) *(?:Build|;)");
2475parser[1] = "$1 $2 $3";
2476parser[2] = 0;
2477parser[3] = 0;
2478parser[4] = 0;
2479exports.device[178] = parser;
2480parser = Object.create(null);
2481parser[0] = new RegExp("; *(I-Buddy)[ _]([^;/]+) *(?:Build|;)");
2482parser[1] = "$1 $2";
2483parser[2] = 0;
2484parser[3] = 0;
2485parser[4] = 0;
2486exports.device[179] = parser;
2487parser = Object.create(null);
2488parser[0] = new RegExp("; *(iOCEAN) ([^/]+) Build");
2489parser[1] = "$1 $2";
2490parser[2] = 0;
2491parser[3] = 0;
2492parser[4] = 0;
2493exports.device[180] = parser;
2494parser = Object.create(null);
2495parser[0] = new RegExp("; *(TP\\d+(?:\\.\\d+)?\\-\\d[^;/]+) Build");
2496parser[1] = "ionik $1";
2497parser[2] = 0;
2498parser[3] = 0;
2499parser[4] = 0;
2500exports.device[181] = parser;
2501parser = Object.create(null);
2502parser[0] = new RegExp("; *(M702pro) Build");
2503parser[1] = "$1";
2504parser[2] = 0;
2505parser[3] = 0;
2506parser[4] = 0;
2507exports.device[182] = parser;
2508parser = Object.create(null);
2509parser[0] = new RegExp("; *(DE88Plus|MD70) Build");
2510parser[1] = "$1";
2511parser[2] = 0;
2512parser[3] = 0;
2513parser[4] = 0;
2514exports.device[183] = parser;
2515parser = Object.create(null);
2516parser[0] = new RegExp("; *IVIO[_\\-]([^;/]+) Build");
2517parser[1] = "$1";
2518parser[2] = 0;
2519parser[3] = 0;
2520parser[4] = 0;
2521exports.device[184] = parser;
2522parser = Object.create(null);
2523parser[0] = new RegExp("; *(TPC-\\d+|JAY-TECH) Build");
2524parser[1] = "$1";
2525parser[2] = 0;
2526parser[3] = 0;
2527parser[4] = 0;
2528exports.device[185] = parser;
2529parser = Object.create(null);
2530parser[0] = new RegExp("; *(JY-[^;/]+|G[234]S?) Build");
2531parser[1] = "$1";
2532parser[2] = 0;
2533parser[3] = 0;
2534parser[4] = 0;
2535exports.device[186] = parser;
2536parser = Object.create(null);
2537parser[0] = new RegExp("; *(JXD)[ _\\-]([^;/]+) Build");
2538parser[1] = "$1 $2";
2539parser[2] = 0;
2540parser[3] = 0;
2541parser[4] = 0;
2542exports.device[187] = parser;
2543parser = Object.create(null);
2544parser[0] = new RegExp("; *Karbonn[ _]?([^;/]+) *(?:Build|;)");
2545parser[1] = "$1";
2546parser[2] = 0;
2547parser[3] = 0;
2548parser[4] = 0;
2549exports.device[188] = parser;
2550parser = Object.create(null);
2551parser[0] = new RegExp("; *([^;]+) Build/Karbonn");
2552parser[1] = "$1";
2553parser[2] = 0;
2554parser[3] = 0;
2555parser[4] = 0;
2556exports.device[189] = parser;
2557parser = Object.create(null);
2558parser[0] = new RegExp("; *(A11|A39|A37|A34|ST8|ST10|ST7|Smart Tab3|Smart Tab2|Titanium S\\d) +Build");
2559parser[1] = "$1";
2560parser[2] = 0;
2561parser[3] = 0;
2562parser[4] = 0;
2563exports.device[190] = parser;
2564parser = Object.create(null);
2565parser[0] = new RegExp("; *(IS01|IS03|IS05|IS\\d{2}SH) Build");
2566parser[1] = "$1";
2567parser[2] = 0;
2568parser[3] = 0;
2569parser[4] = 0;
2570exports.device[191] = parser;
2571parser = Object.create(null);
2572parser[0] = new RegExp("; *(IS04) Build");
2573parser[1] = "$1";
2574parser[2] = 0;
2575parser[3] = 0;
2576parser[4] = 0;
2577exports.device[192] = parser;
2578parser = Object.create(null);
2579parser[0] = new RegExp("; *(IS06|IS\\d{2}PT) Build");
2580parser[1] = "$1";
2581parser[2] = 0;
2582parser[3] = 0;
2583parser[4] = 0;
2584exports.device[193] = parser;
2585parser = Object.create(null);
2586parser[0] = new RegExp("; *(IS11S) Build");
2587parser[1] = "$1";
2588parser[2] = 0;
2589parser[3] = 0;
2590parser[4] = 0;
2591exports.device[194] = parser;
2592parser = Object.create(null);
2593parser[0] = new RegExp("; *(IS11CA) Build");
2594parser[1] = "$1";
2595parser[2] = 0;
2596parser[3] = 0;
2597parser[4] = 0;
2598exports.device[195] = parser;
2599parser = Object.create(null);
2600parser[0] = new RegExp("; *(IS11LG) Build");
2601parser[1] = "$1";
2602parser[2] = 0;
2603parser[3] = 0;
2604parser[4] = 0;
2605exports.device[196] = parser;
2606parser = Object.create(null);
2607parser[0] = new RegExp("; *(IS11N) Build");
2608parser[1] = "$1";
2609parser[2] = 0;
2610parser[3] = 0;
2611parser[4] = 0;
2612exports.device[197] = parser;
2613parser = Object.create(null);
2614parser[0] = new RegExp("; *(IS11PT) Build");
2615parser[1] = "$1";
2616parser[2] = 0;
2617parser[3] = 0;
2618parser[4] = 0;
2619exports.device[198] = parser;
2620parser = Object.create(null);
2621parser[0] = new RegExp("; *(IS12F) Build");
2622parser[1] = "$1";
2623parser[2] = 0;
2624parser[3] = 0;
2625parser[4] = 0;
2626exports.device[199] = parser;
2627parser = Object.create(null);
2628parser[0] = new RegExp("; *(IS12M) Build");
2629parser[1] = "$1";
2630parser[2] = 0;
2631parser[3] = 0;
2632parser[4] = 0;
2633exports.device[200] = parser;
2634parser = Object.create(null);
2635parser[0] = new RegExp("; *(IS12S) Build");
2636parser[1] = "$1";
2637parser[2] = 0;
2638parser[3] = 0;
2639parser[4] = 0;
2640exports.device[201] = parser;
2641parser = Object.create(null);
2642parser[0] = new RegExp("; *(ISW11F) Build");
2643parser[1] = "$1";
2644parser[2] = 0;
2645parser[3] = 0;
2646parser[4] = 0;
2647exports.device[202] = parser;
2648parser = Object.create(null);
2649parser[0] = new RegExp("; *(ISW11HT) Build");
2650parser[1] = "$1";
2651parser[2] = 0;
2652parser[3] = 0;
2653parser[4] = 0;
2654exports.device[203] = parser;
2655parser = Object.create(null);
2656parser[0] = new RegExp("; *(ISW11K) Build");
2657parser[1] = "$1";
2658parser[2] = 0;
2659parser[3] = 0;
2660parser[4] = 0;
2661exports.device[204] = parser;
2662parser = Object.create(null);
2663parser[0] = new RegExp("; *(ISW11M) Build");
2664parser[1] = "$1";
2665parser[2] = 0;
2666parser[3] = 0;
2667parser[4] = 0;
2668exports.device[205] = parser;
2669parser = Object.create(null);
2670parser[0] = new RegExp("; *(ISW11SC) Build");
2671parser[1] = "$1";
2672parser[2] = 0;
2673parser[3] = 0;
2674parser[4] = 0;
2675exports.device[206] = parser;
2676parser = Object.create(null);
2677parser[0] = new RegExp("; *(ISW12HT) Build");
2678parser[1] = "$1";
2679parser[2] = 0;
2680parser[3] = 0;
2681parser[4] = 0;
2682exports.device[207] = parser;
2683parser = Object.create(null);
2684parser[0] = new RegExp("; *(ISW13HT) Build");
2685parser[1] = "$1";
2686parser[2] = 0;
2687parser[3] = 0;
2688parser[4] = 0;
2689exports.device[208] = parser;
2690parser = Object.create(null);
2691parser[0] = new RegExp("; *(ISW?[0-9]{2}[A-Z]{0,2}) Build");
2692parser[1] = "$1";
2693parser[2] = 0;
2694parser[3] = 0;
2695parser[4] = 0;
2696exports.device[209] = parser;
2697parser = Object.create(null);
2698parser[0] = new RegExp("; *(INFOBAR [^;/]+) Build");
2699parser[1] = "$1";
2700parser[2] = 0;
2701parser[3] = 0;
2702parser[4] = 0;
2703exports.device[210] = parser;
2704parser = Object.create(null);
2705parser[0] = new RegExp("; *(JOYPAD|Joypad)[ _]([^;/]+) Build/");
2706parser[1] = "$1 $2";
2707parser[2] = 0;
2708parser[3] = 0;
2709parser[4] = 0;
2710exports.device[211] = parser;
2711parser = Object.create(null);
2712parser[0] = new RegExp("; *(Vox|VOX|Arc|K080) Build/");
2713parser[1] = "$1";
2714parser[2] = 0;
2715parser[3] = 0;
2716parser[4] = 0;
2717exports.device[212] = parser;
2718parser = Object.create(null);
2719parser[0] = new RegExp("\\b(Kobo Touch)\\b");
2720parser[1] = "$1";
2721parser[2] = 0;
2722parser[3] = 0;
2723parser[4] = 0;
2724exports.device[213] = parser;
2725parser = Object.create(null);
2726parser[0] = new RegExp("; *(K-Touch)[ _]([^;/]+) Build");
2727parser[1] = "$1 $2";
2728parser[2] = 0;
2729parser[3] = 0;
2730parser[4] = 0;
2731exports.device[214] = parser;
2732parser = Object.create(null);
2733parser[0] = new RegExp("; *((?:EV|KM)-S\\d+[A-Z]?) Build");
2734parser[1] = "$1";
2735parser[2] = 0;
2736parser[3] = 0;
2737parser[4] = 0;
2738exports.device[215] = parser;
2739parser = Object.create(null);
2740parser[0] = new RegExp("; *(Zio|Hydro|Torque|Event|EVENT|Echo|Milano|Rise|URBANO PROGRESSO|WX04K|WX06K|WX10K|KYL21|101K|C5[12]\\d{2}) Build/");
2741parser[1] = "$1";
2742parser[2] = 0;
2743parser[3] = 0;
2744parser[4] = 0;
2745exports.device[216] = parser;
2746parser = Object.create(null);
2747parser[0] = new RegExp("; *(?:LAVA[ _])?IRIS[ _\\-]?([^/;\\)]+) *(?:;|\\)|Build)");
2748parser[1] = "Iris $1";
2749parser[2] = 0;
2750parser[3] = 0;
2751parser[4] = 0;
2752exports.device[217] = parser;
2753parser = Object.create(null);
2754parser[0] = new RegExp("; *LAVA[ _]([^;/]+) Build");
2755parser[1] = "$1";
2756parser[2] = 0;
2757parser[3] = 0;
2758parser[4] = 0;
2759exports.device[218] = parser;
2760parser = Object.create(null);
2761parser[0] = new RegExp("; *(?:(Aspire A1)|(?:LEMON|Lemon)[ _]([^;/]+))_? Build");
2762parser[1] = "Lemon $1$2";
2763parser[2] = 0;
2764parser[3] = 0;
2765parser[4] = 0;
2766exports.device[219] = parser;
2767parser = Object.create(null);
2768parser[0] = new RegExp("; *(TAB-1012) Build/");
2769parser[1] = "Lenco $1";
2770parser[2] = 0;
2771parser[3] = 0;
2772parser[4] = 0;
2773exports.device[220] = parser;
2774parser = Object.create(null);
2775parser[0] = new RegExp("; Lenco ([^;/]+) Build/");
2776parser[1] = "Lenco $1";
2777parser[2] = 0;
2778parser[3] = 0;
2779parser[4] = 0;
2780exports.device[221] = parser;
2781parser = Object.create(null);
2782parser[0] = new RegExp("; *(A1_07|A2107A-H|S2005A-H|S1-37AH0) Build");
2783parser[1] = "$1";
2784parser[2] = 0;
2785parser[3] = 0;
2786parser[4] = 0;
2787exports.device[222] = parser;
2788parser = Object.create(null);
2789parser[0] = new RegExp("; *(Idea[Tp]ab)[ _]([^;/]+);? Build");
2790parser[1] = "Lenovo $1 $2";
2791parser[2] = 0;
2792parser[3] = 0;
2793parser[4] = 0;
2794exports.device[223] = parser;
2795parser = Object.create(null);
2796parser[0] = new RegExp("; *(Idea(?:Tab|pad)) ?([^;/]+) Build");
2797parser[1] = "Lenovo $1 $2";
2798parser[2] = 0;
2799parser[3] = 0;
2800parser[4] = 0;
2801exports.device[224] = parser;
2802parser = Object.create(null);
2803parser[0] = new RegExp("; *(ThinkPad) ?(Tablet) Build/");
2804parser[1] = "Lenovo $1 $2";
2805parser[2] = 0;
2806parser[3] = 0;
2807parser[4] = 0;
2808exports.device[225] = parser;
2809parser = Object.create(null);
2810parser[0] = new RegExp("; *(?:LNV-)?(?:=?[Ll]enovo[ _\\-]?|LENOVO[ _])+((?:(?!Build|[;/\\)]).)+)[;/]? *(?:Build|[;/\\)])");
2811parser[1] = "Lenovo $1";
2812parser[2] = 0;
2813parser[3] = 0;
2814parser[4] = 0;
2815exports.device[226] = parser;
2816parser = Object.create(null);
2817parser[0] = new RegExp("[;,] (?:Vodafone )?(SmartTab) ?(II) ?(\\d+) Build/");
2818parser[1] = "Lenovo $1 $2 $3";
2819parser[2] = 0;
2820parser[3] = 0;
2821parser[4] = 0;
2822exports.device[227] = parser;
2823parser = Object.create(null);
2824parser[0] = new RegExp("; *(?:Ideapad )?K1 Build/");
2825parser[1] = "Lenovo Ideapad K1";
2826parser[2] = 0;
2827parser[3] = 0;
2828parser[4] = 0;
2829exports.device[228] = parser;
2830parser = Object.create(null);
2831parser[0] = new RegExp("; *(3GC101|3GW10[01]|A390) Build/");
2832parser[1] = "$1";
2833parser[2] = 0;
2834parser[3] = 0;
2835parser[4] = 0;
2836exports.device[229] = parser;
2837parser = Object.create(null);
2838parser[0] = new RegExp("\\b(?:Lenovo|LENOVO)+[ _\\-]?([^,;:/ ]+)");
2839parser[1] = "Lenovo $1";
2840parser[2] = 0;
2841parser[3] = 0;
2842parser[4] = 0;
2843exports.device[230] = parser;
2844parser = Object.create(null);
2845parser[0] = new RegExp("; *(MFC\\d+)[A-Z]{2}([^;,/]*),? Build");
2846parser[1] = "$1$2";
2847parser[2] = 0;
2848parser[3] = 0;
2849parser[4] = 0;
2850exports.device[231] = parser;
2851parser = Object.create(null);
2852parser[0] = new RegExp("; *(E[34][0-9]{2}|LS[6-8][0-9]{2}|VS[6-9][0-9]+[^;/]+|Nexus [45]|GT540f?|Optimus (?:2X|G|4X HD)|OptimusX4HD) *(?:Build|;)");
2853parser[1] = "$1";
2854parser[2] = 0;
2855parser[3] = 0;
2856parser[4] = 0;
2857exports.device[232] = parser;
2858parser = Object.create(null);
2859parser[0] = new RegExp("[;:] *(L-\\d+[A-Z]|LGL\\d+[A-Z]?)(?:/V\\d+)? *(?:Build|[;\\)])");
2860parser[1] = "$1";
2861parser[2] = 0;
2862parser[3] = 0;
2863parser[4] = 0;
2864exports.device[233] = parser;
2865parser = Object.create(null);
2866parser[0] = new RegExp("; *(LG-)([A-Z]{1,2}\\d{2,}(?:(?!Build| V\\d+|[,;/\\)\\(]).)+)");
2867parser[1] = "$1$2";
2868parser[2] = 0;
2869parser[3] = 0;
2870parser[4] = 0;
2871exports.device[234] = parser;
2872parser = Object.create(null);
2873parser[0] = new RegExp("; *(LG[ \\-]|LG)([^;/]+)[;/]? Build");
2874parser[1] = "$1$2";
2875parser[2] = 0;
2876parser[3] = 0;
2877parser[4] = 0;
2878exports.device[235] = parser;
2879parser = Object.create(null);
2880parser[0] = new RegExp("^(LG)-([^;/]+)/ Mozilla/.*; Android");
2881parser[1] = "$1 $2";
2882parser[2] = 0;
2883parser[3] = 0;
2884parser[4] = 0;
2885exports.device[236] = parser;
2886parser = Object.create(null);
2887parser[0] = new RegExp("; *((?:SMB|smb)[^;/]+) Build/");
2888parser[1] = "$1";
2889parser[2] = 0;
2890parser[3] = 0;
2891parser[4] = 0;
2892exports.device[237] = parser;
2893parser = Object.create(null);
2894parser[0] = new RegExp("; *(?:Malata|MALATA) ([^;/]+) Build/");
2895parser[1] = "$1";
2896parser[2] = 0;
2897parser[3] = 0;
2898parser[4] = 0;
2899exports.device[238] = parser;
2900parser = Object.create(null);
2901parser[0] = new RegExp("; *(MS[45][0-9]{3}|MID0[568][NS]?|MID[1-9]|MID[78]0[1-9]|MID970[1-9]|MID100[1-9]) Build/");
2902parser[1] = "$1";
2903parser[2] = 0;
2904parser[3] = 0;
2905parser[4] = 0;
2906exports.device[239] = parser;
2907parser = Object.create(null);
2908parser[0] = new RegExp("; *(M1052|M806|M9000|M9100|M9701|MID100|MID120|MID125|MID130|MID135|MID140|MID701|MID710|MID713|MID727|MID728|MID731|MID732|MID733|MID735|MID736|MID737|MID760|MID800|MID810|MID820|MID830|MID833|MID835|MID860|MID900|MID930|MID933|MID960|MID980) Build/");
2909parser[1] = "$1";
2910parser[2] = 0;
2911parser[3] = 0;
2912parser[4] = 0;
2913exports.device[240] = parser;
2914parser = Object.create(null);
2915parser[0] = new RegExp("; *(GenxDroid7|MSD7.*|AX\\d.*|Tab 701|Tab 722) Build/");
2916parser[1] = "Maxx $1";
2917parser[2] = 0;
2918parser[3] = 0;
2919parser[4] = 0;
2920exports.device[241] = parser;
2921parser = Object.create(null);
2922parser[0] = new RegExp("; *(M-PP[^;/]+|PhonePad ?\\d{2,}[^;/]+) Build");
2923parser[1] = "Mediacom $1";
2924parser[2] = 0;
2925parser[3] = 0;
2926parser[4] = 0;
2927exports.device[242] = parser;
2928parser = Object.create(null);
2929parser[0] = new RegExp("; *(M-MP[^;/]+|SmartPad ?\\d{2,}[^;/]+) Build");
2930parser[1] = "Mediacom $1";
2931parser[2] = 0;
2932parser[3] = 0;
2933parser[4] = 0;
2934exports.device[243] = parser;
2935parser = Object.create(null);
2936parser[0] = new RegExp("; *(?:MD_)?LIFETAB[ _]([^;/]+) Build");
2937parser[1] = "Medion Lifetab $1";
2938parser[2] = 0;
2939parser[3] = 0;
2940parser[4] = 0;
2941exports.device[244] = parser;
2942parser = Object.create(null);
2943parser[0] = new RegExp("; *MEDION ([^;/]+) Build");
2944parser[1] = "Medion $1";
2945parser[2] = 0;
2946parser[3] = 0;
2947parser[4] = 0;
2948exports.device[245] = parser;
2949parser = Object.create(null);
2950parser[0] = new RegExp("; *(M030|M031|M035|M040|M065|m9) Build");
2951parser[1] = "Meizu $1";
2952parser[2] = 0;
2953parser[3] = 0;
2954parser[4] = 0;
2955exports.device[246] = parser;
2956parser = Object.create(null);
2957parser[0] = new RegExp("; *(?:meizu_|MEIZU )((?:(?!Build|[;\\)/]).)+) *(?:Build|[;\\)])");
2958parser[1] = "Meizu $1";
2959parser[2] = 0;
2960parser[3] = 0;
2961parser[4] = 0;
2962exports.device[247] = parser;
2963parser = Object.create(null);
2964parser[0] = new RegExp("; *(?:Micromax[ _](A111|A240)|(A111|A240)) Build");
2965parser[1] = "Micromax $1$2";
2966parser[2] = 0;
2967parser[3] = 0;
2968parser[4] = 0;
2969exports.device[248] = parser;
2970parser = Object.create(null);
2971parser[0] = new RegExp("; *Micromax[ _](A\\d{2,3}[^;/]*) Build");
2972parser[1] = "Micromax $1";
2973parser[2] = 0;
2974parser[3] = 0;
2975parser[4] = 0;
2976exports.device[249] = parser;
2977parser = Object.create(null);
2978parser[0] = new RegExp("; *(A\\d{2}|A[12]\\d{2}|A90S|A110Q) Build");
2979parser[1] = "Micromax $1";
2980parser[2] = 0;
2981parser[3] = 0;
2982parser[4] = 0;
2983exports.device[250] = parser;
2984parser = Object.create(null);
2985parser[0] = new RegExp("; *Micromax[ _](P\\d{3}[^;/]*) Build");
2986parser[1] = "Micromax $1";
2987parser[2] = 0;
2988parser[3] = 0;
2989parser[4] = 0;
2990exports.device[251] = parser;
2991parser = Object.create(null);
2992parser[0] = new RegExp("; *(P\\d{3}|P\\d{3}\\(Funbook\\)) Build");
2993parser[1] = "Micromax $1";
2994parser[2] = 0;
2995parser[3] = 0;
2996parser[4] = 0;
2997exports.device[252] = parser;
2998parser = Object.create(null);
2999parser[0] = new RegExp("; *(MITO)[ _\\-]?([^;/]+) Build");
3000parser[1] = "$1 $2";
3001parser[2] = 0;
3002parser[3] = 0;
3003parser[4] = 0;
3004exports.device[253] = parser;
3005parser = Object.create(null);
3006parser[0] = new RegExp("; *(Cynus)[ _](F5|T\\d|(?:(?!Build|[;/\\)]).)+) *(?:Build|[;/\\)])");
3007parser[1] = "$1 $2";
3008parser[2] = 0;
3009parser[3] = 0;
3010parser[4] = 0;
3011exports.device[254] = parser;
3012parser = Object.create(null);
3013parser[0] = new RegExp("; *(MODECOM )?(FreeTab) ?([^;/]+) Build");
3014parser[1] = "$1$2 $3";
3015parser[2] = 0;
3016parser[3] = 0;
3017parser[4] = 0;
3018exports.device[255] = parser;
3019parser = Object.create(null);
3020parser[0] = new RegExp("; *(MODECOM )([^;/]+) Build");
3021parser[1] = "$1 $2";
3022parser[2] = 0;
3023parser[3] = 0;
3024parser[4] = 0;
3025exports.device[256] = parser;
3026parser = Object.create(null);
3027parser[0] = new RegExp("; *(MZ\\d{3}\\+?|MZ\\d{3} 4G|Xoom|XOOM[^;/]*) Build");
3028parser[1] = "Motorola $1";
3029parser[2] = 0;
3030parser[3] = 0;
3031parser[4] = 0;
3032exports.device[257] = parser;
3033parser = Object.create(null);
3034parser[0] = new RegExp("; *(Milestone )(XT[^;/]*) Build");
3035parser[1] = "Motorola $1$2";
3036parser[2] = 0;
3037parser[3] = 0;
3038parser[4] = 0;
3039exports.device[258] = parser;
3040parser = Object.create(null);
3041parser[0] = new RegExp("; *(Motoroi ?x|Droid X|DROIDX) Build");
3042parser[1] = "Motorola $1";
3043parser[2] = 0;
3044parser[3] = 0;
3045parser[4] = 0;
3046exports.device[259] = parser;
3047parser = Object.create(null);
3048parser[0] = new RegExp("; *(Droid[^;/]*|DROID[^;/]*|Milestone[^;/]*|Photon|Triumph|Devour|Titanium) Build");
3049parser[1] = "Motorola $1";
3050parser[2] = 0;
3051parser[3] = 0;
3052parser[4] = 0;
3053exports.device[260] = parser;
3054parser = Object.create(null);
3055parser[0] = new RegExp("; *(A555|A85[34][^;/]*|A95[356]|ME[58]\\d{2}\\+?|ME600|ME632|ME722|MB\\d{3}\\+?|MT680|MT710|MT870|MT887|MT917|WX435|WX453|WX44[25]|XT\\d{3,4}[A-Z\\+]*|CL[iI]Q|CL[iI]Q XT) Build");
3056parser[1] = "$1";
3057parser[2] = 0;
3058parser[3] = 0;
3059parser[4] = 0;
3060exports.device[261] = parser;
3061parser = Object.create(null);
3062parser[0] = new RegExp("; *(Motorola MOT-|Motorola[ _\\-]|MOT\\-?)([^;/]+) Build");
3063parser[1] = "$1$2";
3064parser[2] = 0;
3065parser[3] = 0;
3066parser[4] = 0;
3067exports.device[262] = parser;
3068parser = Object.create(null);
3069parser[0] = new RegExp("; *(Moto[_ ]?|MOT\\-)([^;/]+) Build");
3070parser[1] = "$1$2";
3071parser[2] = 0;
3072parser[3] = 0;
3073parser[4] = 0;
3074exports.device[263] = parser;
3075parser = Object.create(null);
3076parser[0] = new RegExp("; *((?:MP[DQ]C|MPG\\d{1,4}|MP\\d{3,4}|MID(?:(?:10[234]|114|43|7[247]|8[24]|7)C|8[01]1))[^;/]*) Build");
3077parser[1] = "$1";
3078parser[2] = 0;
3079parser[3] = 0;
3080parser[4] = 0;
3081exports.device[264] = parser;
3082parser = Object.create(null);
3083parser[0] = new RegExp("; *(?:MSI[ _])?(Primo\\d+|Enjoy[ _\\-][^;/]+) Build");
3084parser[1] = "$1";
3085parser[2] = 0;
3086parser[3] = 0;
3087parser[4] = 0;
3088exports.device[265] = parser;
3089parser = Object.create(null);
3090parser[0] = new RegExp("; *Multilaser[ _]([^;/]+) Build");
3091parser[1] = "$1";
3092parser[2] = 0;
3093parser[3] = 0;
3094parser[4] = 0;
3095exports.device[266] = parser;
3096parser = Object.create(null);
3097parser[0] = new RegExp("; *(My)[_]?(Pad)[ _]([^;/]+) Build");
3098parser[1] = "$1$2 $3";
3099parser[2] = 0;
3100parser[3] = 0;
3101parser[4] = 0;
3102exports.device[267] = parser;
3103parser = Object.create(null);
3104parser[0] = new RegExp("; *(My)\\|?(Phone)[ _]([^;/]+) Build");
3105parser[1] = "$1$2 $3";
3106parser[2] = 0;
3107parser[3] = 0;
3108parser[4] = 0;
3109exports.device[268] = parser;
3110parser = Object.create(null);
3111parser[0] = new RegExp("; *(A\\d+)[ _](Duo)? Build");
3112parser[1] = "$1 $2";
3113parser[2] = 0;
3114parser[3] = 0;
3115parser[4] = 0;
3116exports.device[269] = parser;
3117parser = Object.create(null);
3118parser[0] = new RegExp("; *(myTab[^;/]*) Build");
3119parser[1] = "$1";
3120parser[2] = 0;
3121parser[3] = 0;
3122parser[4] = 0;
3123exports.device[270] = parser;
3124parser = Object.create(null);
3125parser[0] = new RegExp("; *(NABI2?-)([^;/]+) Build/");
3126parser[1] = "$1$2";
3127parser[2] = 0;
3128parser[3] = 0;
3129parser[4] = 0;
3130exports.device[271] = parser;
3131parser = Object.create(null);
3132parser[0] = new RegExp("; *(N-\\d+[CDE]) Build/");
3133parser[1] = "$1";
3134parser[2] = 0;
3135parser[3] = 0;
3136parser[4] = 0;
3137exports.device[272] = parser;
3138parser = Object.create(null);
3139parser[0] = new RegExp("; ?(NEC-)(.*) Build/");
3140parser[1] = "$1$2";
3141parser[2] = 0;
3142parser[3] = 0;
3143parser[4] = 0;
3144exports.device[273] = parser;
3145parser = Object.create(null);
3146parser[0] = new RegExp("; *(LT-NA7) Build/");
3147parser[1] = "$1";
3148parser[2] = 0;
3149parser[3] = 0;
3150parser[4] = 0;
3151exports.device[274] = parser;
3152parser = Object.create(null);
3153parser[0] = new RegExp("; *(NXM\\d+[A-z0-9_]*|Next\\d[A-z0-9_ \\-]*|NEXT\\d[A-z0-9_ \\-]*|Nextbook [A-z0-9_ ]*|DATAM803HC|M805)(?: Build|[\\);])");
3154parser[1] = "$1";
3155parser[2] = 0;
3156parser[3] = 0;
3157parser[4] = 0;
3158exports.device[275] = parser;
3159parser = Object.create(null);
3160parser[0] = new RegExp("; *(Nokia)([ _\\-]*)([^;/]*) Build");
3161parser[1] = "$1$2$3";
3162parser[2] = 0;
3163parser[3] = 0;
3164parser[4] = 0;
3165exports.device[276] = parser;
3166parser = Object.create(null);
3167parser[0] = new RegExp("; *(Nook ?|Barnes & Noble Nook |BN )([^;/]+) Build");
3168parser[1] = "$1$2";
3169parser[2] = 0;
3170parser[3] = 0;
3171parser[4] = 0;
3172exports.device[277] = parser;
3173parser = Object.create(null);
3174parser[0] = new RegExp("; *(NOOK )?(BNRV200|BNRV200A|BNTV250|BNTV250A|BNTV400|BNTV600|LogicPD Zoom2) Build");
3175parser[1] = "$1$2";
3176parser[2] = 0;
3177parser[3] = 0;
3178parser[4] = 0;
3179exports.device[278] = parser;
3180parser = Object.create(null);
3181parser[0] = new RegExp("; Build/(Nook)");
3182parser[1] = "$1";
3183parser[2] = 0;
3184parser[3] = 0;
3185parser[4] = 0;
3186exports.device[279] = parser;
3187parser = Object.create(null);
3188parser[0] = new RegExp("; *(OP110|OliPad[^;/]+) Build");
3189parser[1] = "Olivetti $1";
3190parser[2] = 0;
3191parser[3] = 0;
3192parser[4] = 0;
3193exports.device[280] = parser;
3194parser = Object.create(null);
3195parser[0] = new RegExp("; *OMEGA[ _\\-](MID[^;/]+) Build");
3196parser[1] = "Omega $1";
3197parser[2] = 0;
3198parser[3] = 0;
3199parser[4] = 0;
3200exports.device[281] = parser;
3201parser = Object.create(null);
3202parser[0] = new RegExp("^(MID7500|MID\\d+) Mozilla/5\\.0 \\(iPad;");
3203parser[1] = "Omega $1";
3204parser[2] = 0;
3205parser[3] = 0;
3206parser[4] = 0;
3207exports.device[282] = parser;
3208parser = Object.create(null);
3209parser[0] = new RegExp("; *((?:CIUS|cius)[^;/]*) Build");
3210parser[1] = "Openpeak $1";
3211parser[2] = 0;
3212parser[3] = 0;
3213parser[4] = 0;
3214exports.device[283] = parser;
3215parser = Object.create(null);
3216parser[0] = new RegExp("; *(Find ?(?:5|7a)|R8[012]\\d{1,2}|T703\\d{0,1}|U70\\d{1,2}T?|X90\\d{1,2}) Build");
3217parser[1] = "Oppo $1";
3218parser[2] = 0;
3219parser[3] = 0;
3220parser[4] = 0;
3221exports.device[284] = parser;
3222parser = Object.create(null);
3223parser[0] = new RegExp("; *OPPO ?([^;/]+) Build/");
3224parser[1] = "Oppo $1";
3225parser[2] = 0;
3226parser[3] = 0;
3227parser[4] = 0;
3228exports.device[285] = parser;
3229parser = Object.create(null);
3230parser[0] = new RegExp("; *(?:Odys\\-|ODYS\\-|ODYS )([^;/]+) Build");
3231parser[1] = "Odys $1";
3232parser[2] = 0;
3233parser[3] = 0;
3234parser[4] = 0;
3235exports.device[286] = parser;
3236parser = Object.create(null);
3237parser[0] = new RegExp("; *(SELECT) ?(7) Build");
3238parser[1] = "Odys $1 $2";
3239parser[2] = 0;
3240parser[3] = 0;
3241parser[4] = 0;
3242exports.device[287] = parser;
3243parser = Object.create(null);
3244parser[0] = new RegExp("; *(PEDI)_(PLUS)_(W) Build");
3245parser[1] = "Odys $1 $2 $3";
3246parser[2] = 0;
3247parser[3] = 0;
3248parser[4] = 0;
3249exports.device[288] = parser;
3250parser = Object.create(null);
3251parser[0] = new RegExp("; *(AEON|BRAVIO|FUSION|FUSION2IN1|Genio|EOS10|IEOS[^;/]*|IRON|Loox|LOOX|LOOX Plus|Motion|NOON|NOON_PRO|NEXT|OPOS|PEDI[^;/]*|PRIME[^;/]*|STUDYTAB|TABLO|Tablet-PC-4|UNO_X8|XELIO[^;/]*|Xelio ?\\d+ ?[Pp]ro|XENO10|XPRESS PRO) Build");
3252parser[1] = "Odys $1";
3253parser[2] = 0;
3254parser[3] = 0;
3255parser[4] = 0;
3256exports.device[289] = parser;
3257parser = Object.create(null);
3258parser[0] = new RegExp("; *(TP-\\d+) Build/");
3259parser[1] = "Orion $1";
3260parser[2] = 0;
3261parser[3] = 0;
3262parser[4] = 0;
3263exports.device[290] = parser;
3264parser = Object.create(null);
3265parser[0] = new RegExp("; *(G100W?) Build/");
3266parser[1] = "PackardBell $1";
3267parser[2] = 0;
3268parser[3] = 0;
3269parser[4] = 0;
3270exports.device[291] = parser;
3271parser = Object.create(null);
3272parser[0] = new RegExp("; *(Panasonic)[_ ]([^;/]+) Build");
3273parser[1] = "$1 $2";
3274parser[2] = 0;
3275parser[3] = 0;
3276parser[4] = 0;
3277exports.device[292] = parser;
3278parser = Object.create(null);
3279parser[0] = new RegExp("; *(FZ-A1B|JT-B1) Build");
3280parser[1] = "Panasonic $1";
3281parser[2] = 0;
3282parser[3] = 0;
3283parser[4] = 0;
3284exports.device[293] = parser;
3285parser = Object.create(null);
3286parser[0] = new RegExp("; *(dL1|DL1) Build");
3287parser[1] = "Panasonic $1";
3288parser[2] = 0;
3289parser[3] = 0;
3290parser[4] = 0;
3291exports.device[294] = parser;
3292parser = Object.create(null);
3293parser[0] = new RegExp("; *(SKY[ _])?(IM\\-[AT]\\d{3}[^;/]+).* Build/");
3294parser[1] = "Pantech $1$2";
3295parser[2] = 0;
3296parser[3] = 0;
3297parser[4] = 0;
3298exports.device[295] = parser;
3299parser = Object.create(null);
3300parser[0] = new RegExp("; *((?:ADR8995|ADR910L|ADR930L|ADR930VW|PTL21|P8000)(?: 4G)?) Build/");
3301parser[1] = "$1";
3302parser[2] = 0;
3303parser[3] = 0;
3304parser[4] = 0;
3305exports.device[296] = parser;
3306parser = Object.create(null);
3307parser[0] = new RegExp("; *Pantech([^;/]+).* Build/");
3308parser[1] = "Pantech $1";
3309parser[2] = 0;
3310parser[3] = 0;
3311parser[4] = 0;
3312exports.device[297] = parser;
3313parser = Object.create(null);
3314parser[0] = new RegExp("; *(papyre)[ _\\-]([^;/]+) Build/");
3315parser[1] = "$1 $2";
3316parser[2] = 0;
3317parser[3] = 0;
3318parser[4] = 0;
3319exports.device[298] = parser;
3320parser = Object.create(null);
3321parser[0] = new RegExp("; *(?:Touchlet )?(X10\\.[^;/]+) Build/");
3322parser[1] = "Pearl $1";
3323parser[2] = 0;
3324parser[3] = 0;
3325parser[4] = 0;
3326exports.device[299] = parser;
3327parser = Object.create(null);
3328parser[0] = new RegExp("; PHICOMM (i800) Build/");
3329parser[1] = "Phicomm $1";
3330parser[2] = 0;
3331parser[3] = 0;
3332parser[4] = 0;
3333exports.device[300] = parser;
3334parser = Object.create(null);
3335parser[0] = new RegExp("; PHICOMM ([^;/]+) Build/");
3336parser[1] = "Phicomm $1";
3337parser[2] = 0;
3338parser[3] = 0;
3339parser[4] = 0;
3340exports.device[301] = parser;
3341parser = Object.create(null);
3342parser[0] = new RegExp("; *(FWS\\d{3}[^;/]+) Build/");
3343parser[1] = "Phicomm $1";
3344parser[2] = 0;
3345parser[3] = 0;
3346parser[4] = 0;
3347exports.device[302] = parser;
3348parser = Object.create(null);
3349parser[0] = new RegExp("; *(D633|D822|D833|T539|T939|V726|W335|W336|W337|W3568|W536|W5510|W626|W632|W6350|W6360|W6500|W732|W736|W737|W7376|W820|W832|W8355|W8500|W8510|W930) Build");
3350parser[1] = "$1";
3351parser[2] = 0;
3352parser[3] = 0;
3353parser[4] = 0;
3354exports.device[303] = parser;
3355parser = Object.create(null);
3356parser[0] = new RegExp("; *(?:Philips|PHILIPS)[ _]([^;/]+) Build");
3357parser[1] = "Philips $1";
3358parser[2] = 0;
3359parser[3] = 0;
3360parser[4] = 0;
3361exports.device[304] = parser;
3362parser = Object.create(null);
3363parser[0] = new RegExp("Android 4\\..*; *(M[12356789]|U[12368]|S[123])\\ ?(pro)? Build");
3364parser[1] = "Pipo $1$2";
3365parser[2] = 0;
3366parser[3] = 0;
3367parser[4] = 0;
3368exports.device[305] = parser;
3369parser = Object.create(null);
3370parser[0] = new RegExp("; *(MOMO[^;/]+) Build");
3371parser[1] = "$1";
3372parser[2] = 0;
3373parser[3] = 0;
3374parser[4] = 0;
3375exports.device[306] = parser;
3376parser = Object.create(null);
3377parser[0] = new RegExp("; *(?:Polaroid[ _])?((?:MIDC\\d{3,}|PMID\\d{2,}|PTAB\\d{3,})[^;/]*)(\\/[^;/]*)? Build/");
3378parser[1] = "$1";
3379parser[2] = 0;
3380parser[3] = 0;
3381parser[4] = 0;
3382exports.device[307] = parser;
3383parser = Object.create(null);
3384parser[0] = new RegExp("; *(?:Polaroid )(Tablet) Build/");
3385parser[1] = "$1";
3386parser[2] = 0;
3387parser[3] = 0;
3388parser[4] = 0;
3389exports.device[308] = parser;
3390parser = Object.create(null);
3391parser[0] = new RegExp("; *(POMP)[ _\\-]((?:(?!Build|[;/\\)]).)+) *(?:Build|[;/\\)])");
3392parser[1] = "$1 $2";
3393parser[2] = 0;
3394parser[3] = 0;
3395parser[4] = 0;
3396exports.device[309] = parser;
3397parser = Object.create(null);
3398parser[0] = new RegExp("; *(TB07STA|TB10STA|TB07FTA|TB10FTA) Build/");
3399parser[1] = "$1";
3400parser[2] = 0;
3401parser[3] = 0;
3402parser[4] = 0;
3403exports.device[310] = parser;
3404parser = Object.create(null);
3405parser[0] = new RegExp("; *(?:Positivo )?((?:YPY|Ypy)[^;/]+) Build/");
3406parser[1] = "$1";
3407parser[2] = 0;
3408parser[3] = 0;
3409parser[4] = 0;
3410exports.device[311] = parser;
3411parser = Object.create(null);
3412parser[0] = new RegExp("; *(MOB-[^;/]+) Build/");
3413parser[1] = "$1";
3414parser[2] = 0;
3415parser[3] = 0;
3416parser[4] = 0;
3417exports.device[312] = parser;
3418parser = Object.create(null);
3419parser[0] = new RegExp("; *POV[ _\\-]([^;/]+) Build/");
3420parser[1] = "POV $1";
3421parser[2] = 0;
3422parser[3] = 0;
3423parser[4] = 0;
3424exports.device[313] = parser;
3425parser = Object.create(null);
3426parser[0] = new RegExp("; *((?:TAB-PLAYTAB|TAB-PROTAB|PROTAB|PlayTabPro|Mobii[ _\\-]|TAB-P)[^;/]*) Build/");
3427parser[1] = "POV $1";
3428parser[2] = 0;
3429parser[3] = 0;
3430parser[4] = 0;
3431exports.device[314] = parser;
3432parser = Object.create(null);
3433parser[0] = new RegExp("; *(?:Prestigio )?((?:PAP|PMP)\\d[^;/]+) Build/");
3434parser[1] = "Prestigio $1";
3435parser[2] = 0;
3436parser[3] = 0;
3437parser[4] = 0;
3438exports.device[315] = parser;
3439parser = Object.create(null);
3440parser[0] = new RegExp("; *(PLT[0-9]{4}.*) Build/");
3441parser[1] = "$1";
3442parser[2] = 0;
3443parser[3] = 0;
3444parser[4] = 0;
3445exports.device[316] = parser;
3446parser = Object.create(null);
3447parser[0] = new RegExp("; *(A2|A5|A8|A900)_?(Classic)? Build");
3448parser[1] = "$1 $2";
3449parser[2] = 0;
3450parser[3] = 0;
3451parser[4] = 0;
3452exports.device[317] = parser;
3453parser = Object.create(null);
3454parser[0] = new RegExp("; *(Q[Mm]obile)_([^_]+)_([^_]+) Build");
3455parser[1] = "Qmobile $2 $3";
3456parser[2] = 0;
3457parser[3] = 0;
3458parser[4] = 0;
3459exports.device[318] = parser;
3460parser = Object.create(null);
3461parser[0] = new RegExp("; *(Q\\-?[Mm]obile)[_ ](A[^;/]+) Build");
3462parser[1] = "Qmobile $2";
3463parser[2] = 0;
3464parser[3] = 0;
3465parser[4] = 0;
3466exports.device[319] = parser;
3467parser = Object.create(null);
3468parser[0] = new RegExp("; *(Q\\-Smart)[ _]([^;/]+) Build/");
3469parser[1] = "$1 $2";
3470parser[2] = 0;
3471parser[3] = 0;
3472parser[4] = 0;
3473exports.device[320] = parser;
3474parser = Object.create(null);
3475parser[0] = new RegExp("; *(Q\\-?[Mm]obile)[ _\\-](S[^;/]+) Build/");
3476parser[1] = "$1 $2";
3477parser[2] = 0;
3478parser[3] = 0;
3479parser[4] = 0;
3480exports.device[321] = parser;
3481parser = Object.create(null);
3482parser[0] = new RegExp("; *(TA1013) Build");
3483parser[1] = "$1";
3484parser[2] = 0;
3485parser[3] = 0;
3486parser[4] = 0;
3487exports.device[322] = parser;
3488parser = Object.create(null);
3489parser[0] = new RegExp("; *(RK\\d+),? Build/");
3490parser[1] = "$1";
3491parser[2] = 0;
3492parser[3] = 0;
3493parser[4] = 0;
3494exports.device[323] = parser;
3495parser = Object.create(null);
3496parser[0] = new RegExp(" Build/(RK\\d+)");
3497parser[1] = "$1";
3498parser[2] = 0;
3499parser[3] = 0;
3500parser[4] = 0;
3501exports.device[324] = parser;
3502parser = Object.create(null);
3503parser[0] = new RegExp("; *(SAMSUNG |Samsung )?((?:Galaxy (?:Note II|S\\d)|GT-I9082|GT-I9205|GT-N7\\d{3}|SM-N9005)[^;/]*)\\/?[^;/]* Build/");
3504parser[1] = "Samsung $1$2";
3505parser[2] = 0;
3506parser[3] = 0;
3507parser[4] = 0;
3508exports.device[325] = parser;
3509parser = Object.create(null);
3510parser[0] = new RegExp("; *(Google )?(Nexus [Ss](?: 4G)?) Build/");
3511parser[1] = "Samsung $1$2";
3512parser[2] = 0;
3513parser[3] = 0;
3514parser[4] = 0;
3515exports.device[326] = parser;
3516parser = Object.create(null);
3517parser[0] = new RegExp("; *(SAMSUNG |Samsung )([^\\/]*)\\/[^ ]* Build/");
3518parser[1] = "Samsung $2";
3519parser[2] = 0;
3520parser[3] = 0;
3521parser[4] = 0;
3522exports.device[327] = parser;
3523parser = Object.create(null);
3524parser[0] = new RegExp("; *(Galaxy(?: Ace| Nexus| S ?II+|Nexus S| with MCR 1.2| Mini Plus 4G)?) Build/");
3525parser[1] = "Samsung $1";
3526parser[2] = 0;
3527parser[3] = 0;
3528parser[4] = 0;
3529exports.device[328] = parser;
3530parser = Object.create(null);
3531parser[0] = new RegExp("; *(SAMSUNG[ _\\-] *)+([^;/]+) Build");
3532parser[1] = "Samsung $2";
3533parser[2] = 0;
3534parser[3] = 0;
3535parser[4] = 0;
3536exports.device[329] = parser;
3537parser = Object.create(null);
3538parser[0] = new RegExp("; *(SAMSUNG-)?(GT\\-[BINPS]\\d{4}[^\\/]*)(\\/[^ ]*) Build");
3539parser[1] = "Samsung $1$2$3";
3540parser[2] = 0;
3541parser[3] = 0;
3542parser[4] = 0;
3543exports.device[330] = parser;
3544parser = Object.create(null);
3545parser[0] = new RegExp("(?:; *|^)((?:GT\\-[BIiNPS]\\d{4}|I9\\d{2}0[A-Za-z\\+]?\\b)(?:(?! +Build| Linux| MIUI|[;/\\)]).)*);?(?: +Build| Linux| MIUI|[;/\\)])");
3546parser[1] = "Samsung $1";
3547parser[2] = 0;
3548parser[3] = 0;
3549parser[4] = 0;
3550exports.device[331] = parser;
3551parser = Object.create(null);
3552parser[0] = new RegExp("; (SAMSUNG-)([A-Za-z0-9\\-]+).* Build/");
3553parser[1] = "Samsung $1$2";
3554parser[2] = 0;
3555parser[3] = 0;
3556parser[4] = 0;
3557exports.device[332] = parser;
3558parser = Object.create(null);
3559parser[0] = new RegExp("; *((?:SCH|SGH|SHV|SHW|SPH|SC|SM)\\-[A-Za-z0-9 ]+)(/?[^ ]*)? Build");
3560parser[1] = "Samsung $1";
3561parser[2] = 0;
3562parser[3] = 0;
3563parser[4] = 0;
3564exports.device[333] = parser;
3565parser = Object.create(null);
3566parser[0] = new RegExp(" ((?:SCH)\\-[A-Za-z0-9 ]+)(/?[^ ]*)? Build");
3567parser[1] = "Samsung $1";
3568parser[2] = 0;
3569parser[3] = 0;
3570parser[4] = 0;
3571exports.device[334] = parser;
3572parser = Object.create(null);
3573parser[0] = new RegExp("; *(Behold ?(?:2|II)|YP\\-G[^;/]+|EK-GC100|SCL21|I9300) Build");
3574parser[1] = "Samsung $1";
3575parser[2] = 0;
3576parser[3] = 0;
3577parser[4] = 0;
3578exports.device[335] = parser;
3579parser = Object.create(null);
3580parser[0] = new RegExp("; *(SH\\-?\\d\\d[^;/]+|SBM\\d[^;/]+) Build");
3581parser[1] = "$1";
3582parser[2] = 0;
3583parser[3] = 0;
3584parser[4] = 0;
3585exports.device[336] = parser;
3586parser = Object.create(null);
3587parser[0] = new RegExp("; *(SHARP[ -])([^;/]+) Build");
3588parser[1] = "$1$2";
3589parser[2] = 0;
3590parser[3] = 0;
3591parser[4] = 0;
3592exports.device[337] = parser;
3593parser = Object.create(null);
3594parser[0] = new RegExp("; *(SPX[_\\-]\\d[^;/]*) Build/");
3595parser[1] = "$1";
3596parser[2] = 0;
3597parser[3] = 0;
3598parser[4] = 0;
3599exports.device[338] = parser;
3600parser = Object.create(null);
3601parser[0] = new RegExp("; *(SX7\\-PEARL\\.GmbH) Build/");
3602parser[1] = "$1";
3603parser[2] = 0;
3604parser[3] = 0;
3605parser[4] = 0;
3606exports.device[339] = parser;
3607parser = Object.create(null);
3608parser[0] = new RegExp("; *(SP[T]?\\-\\d{2}[^;/]*) Build/");
3609parser[1] = "$1";
3610parser[2] = 0;
3611parser[3] = 0;
3612parser[4] = 0;
3613exports.device[340] = parser;
3614parser = Object.create(null);
3615parser[0] = new RegExp("; *(SK\\-.*) Build/");
3616parser[1] = "$1";
3617parser[2] = 0;
3618parser[3] = 0;
3619parser[4] = 0;
3620exports.device[341] = parser;
3621parser = Object.create(null);
3622parser[0] = new RegExp("; *(?:SKYTEX|SX)-([^;/]+) Build");
3623parser[1] = "$1";
3624parser[2] = 0;
3625parser[3] = 0;
3626parser[4] = 0;
3627exports.device[342] = parser;
3628parser = Object.create(null);
3629parser[0] = new RegExp("; *(IMAGINE [^;/]+) Build");
3630parser[1] = "$1";
3631parser[2] = 0;
3632parser[3] = 0;
3633parser[4] = 0;
3634exports.device[343] = parser;
3635parser = Object.create(null);
3636parser[0] = new RegExp("; *(SmartQ) ?([^;/]+) Build/");
3637parser[1] = "$1 $2";
3638parser[2] = 0;
3639parser[3] = 0;
3640parser[4] = 0;
3641exports.device[344] = parser;
3642parser = Object.create(null);
3643parser[0] = new RegExp("; *(WF7C|WF10C|SBT[^;/]+) Build");
3644parser[1] = "$1";
3645parser[2] = 0;
3646parser[3] = 0;
3647parser[4] = 0;
3648exports.device[345] = parser;
3649parser = Object.create(null);
3650parser[0] = new RegExp("; *(SBM(?:003SH|005SH|006SH|007SH|102SH)) Build");
3651parser[1] = "$1";
3652parser[2] = 0;
3653parser[3] = 0;
3654parser[4] = 0;
3655exports.device[346] = parser;
3656parser = Object.create(null);
3657parser[0] = new RegExp("; *(003P|101P|101P11C|102P) Build");
3658parser[1] = "$1";
3659parser[2] = 0;
3660parser[3] = 0;
3661parser[4] = 0;
3662exports.device[347] = parser;
3663parser = Object.create(null);
3664parser[0] = new RegExp("; *(00\\dZ) Build/");
3665parser[1] = "$1";
3666parser[2] = 0;
3667parser[3] = 0;
3668parser[4] = 0;
3669exports.device[348] = parser;
3670parser = Object.create(null);
3671parser[0] = new RegExp("; HTC(X06HT) Build");
3672parser[1] = "$1";
3673parser[2] = 0;
3674parser[3] = 0;
3675parser[4] = 0;
3676exports.device[349] = parser;
3677parser = Object.create(null);
3678parser[0] = new RegExp("; *(001HT|X06HT) Build");
3679parser[1] = "$1";
3680parser[2] = 0;
3681parser[3] = 0;
3682parser[4] = 0;
3683exports.device[350] = parser;
3684parser = Object.create(null);
3685parser[0] = new RegExp("; *(201M) Build");
3686parser[1] = "$1";
3687parser[2] = 0;
3688parser[3] = 0;
3689parser[4] = 0;
3690exports.device[351] = parser;
3691parser = Object.create(null);
3692parser[0] = new RegExp("; *(ST\\d{4}.*)Build/ST");
3693parser[1] = "Trekstor $1";
3694parser[2] = 0;
3695parser[3] = 0;
3696parser[4] = 0;
3697exports.device[352] = parser;
3698parser = Object.create(null);
3699parser[0] = new RegExp("; *(ST\\d{4}.*) Build/");
3700parser[1] = "Trekstor $1";
3701parser[2] = 0;
3702parser[3] = 0;
3703parser[4] = 0;
3704exports.device[353] = parser;
3705parser = Object.create(null);
3706parser[0] = new RegExp("; *(Sony ?Ericsson ?)([^;/]+) Build");
3707parser[1] = "$1$2";
3708parser[2] = 0;
3709parser[3] = 0;
3710parser[4] = 0;
3711exports.device[354] = parser;
3712parser = Object.create(null);
3713parser[0] = new RegExp("; *((?:SK|ST|E|X|LT|MK|MT|WT)\\d{2}[a-z0-9]*(?:-o)?|R800i|U20i) Build");
3714parser[1] = "$1";
3715parser[2] = 0;
3716parser[3] = 0;
3717parser[4] = 0;
3718exports.device[355] = parser;
3719parser = Object.create(null);
3720parser[0] = new RegExp("; *(Xperia (?:A8|Arc|Acro|Active|Live with Walkman|Mini|Neo|Play|Pro|Ray|X\\d+)[^;/]*) Build");
3721parser[1] = "$1";
3722parser[2] = 0;
3723parser[3] = 0;
3724parser[4] = 0;
3725exports.device[356] = parser;
3726parser = Object.create(null);
3727parser[0] = new RegExp("; Sony (Tablet[^;/]+) Build");
3728parser[1] = "Sony $1";
3729parser[2] = 0;
3730parser[3] = 0;
3731parser[4] = 0;
3732exports.device[357] = parser;
3733parser = Object.create(null);
3734parser[0] = new RegExp("; Sony ([^;/]+) Build");
3735parser[1] = "Sony $1";
3736parser[2] = 0;
3737parser[3] = 0;
3738parser[4] = 0;
3739exports.device[358] = parser;
3740parser = Object.create(null);
3741parser[0] = new RegExp("; *(Sony)([A-Za-z0-9\\-]+) Build");
3742parser[1] = "$1 $2";
3743parser[2] = 0;
3744parser[3] = 0;
3745parser[4] = 0;
3746exports.device[359] = parser;
3747parser = Object.create(null);
3748parser[0] = new RegExp("; *(Xperia [^;/]+) Build");
3749parser[1] = "$1";
3750parser[2] = 0;
3751parser[3] = 0;
3752parser[4] = 0;
3753exports.device[360] = parser;
3754parser = Object.create(null);
3755parser[0] = new RegExp("; *(C(?:1[0-9]|2[0-9]|53|55|6[0-9])[0-9]{2}|D[25]\\d{3}|D6[56]\\d{2}) Build");
3756parser[1] = "$1";
3757parser[2] = 0;
3758parser[3] = 0;
3759parser[4] = 0;
3760exports.device[361] = parser;
3761parser = Object.create(null);
3762parser[0] = new RegExp("; *(SGP\\d{3}|SGPT\\d{2}) Build");
3763parser[1] = "$1";
3764parser[2] = 0;
3765parser[3] = 0;
3766parser[4] = 0;
3767exports.device[362] = parser;
3768parser = Object.create(null);
3769parser[0] = new RegExp("; *(NW-Z1000Series) Build");
3770parser[1] = "$1";
3771parser[2] = 0;
3772parser[3] = 0;
3773parser[4] = 0;
3774exports.device[363] = parser;
3775parser = Object.create(null);
3776parser[0] = new RegExp("PLAYSTATION 3");
3777parser[1] = "PlayStation 3";
3778parser[2] = 0;
3779parser[3] = 0;
3780parser[4] = 0;
3781exports.device[364] = parser;
3782parser = Object.create(null);
3783parser[0] = new RegExp("(PlayStation (?:Portable|Vita|\\d+))");
3784parser[1] = "$1";
3785parser[2] = 0;
3786parser[3] = 0;
3787parser[4] = 0;
3788exports.device[365] = parser;
3789parser = Object.create(null);
3790parser[0] = new RegExp("; *((?:CSL_Spice|Spice|SPICE|CSL)[ _\\-]?)?([Mm][Ii])([ _\\-])?(\\d{3}[^;/]*) Build/");
3791parser[1] = "$1$2$3$4";
3792parser[2] = 0;
3793parser[3] = 0;
3794parser[4] = 0;
3795exports.device[366] = parser;
3796parser = Object.create(null);
3797parser[0] = new RegExp("; *(Sprint )((?:(?!Build|[;/]).)+) *(?:Build|[;/])");
3798parser[1] = "$1$2";
3799parser[2] = 0;
3800parser[3] = 0;
3801parser[4] = 0;
3802exports.device[367] = parser;
3803parser = Object.create(null);
3804parser[0] = new RegExp("\\b(Sprint)[: ]([^;,/ ]+)");
3805parser[1] = "$1$2";
3806parser[2] = 0;
3807parser[3] = 0;
3808parser[4] = 0;
3809exports.device[368] = parser;
3810parser = Object.create(null);
3811parser[0] = new RegExp("; *(TAGI[ ]?)(MID) ?([^;/]+) Build/");
3812parser[1] = "$1$2$3";
3813parser[2] = 0;
3814parser[3] = 0;
3815parser[4] = 0;
3816exports.device[369] = parser;
3817parser = Object.create(null);
3818parser[0] = new RegExp("; *(Oyster500|Opal 800) Build");
3819parser[1] = "Tecmobile $1";
3820parser[2] = 0;
3821parser[3] = 0;
3822parser[4] = 0;
3823exports.device[370] = parser;
3824parser = Object.create(null);
3825parser[0] = new RegExp("; *(TECNO[ _])([^;/]+) Build/");
3826parser[1] = "$1$2";
3827parser[2] = 0;
3828parser[3] = 0;
3829parser[4] = 0;
3830exports.device[371] = parser;
3831parser = Object.create(null);
3832parser[0] = new RegExp("; *Android for (Telechips|Techvision) ([^ ]+) ");
3833parser[1] = "$1 $2";
3834parser[2] = 0;
3835parser[3] = 0;
3836parser[4] = 0;
3837exports.device[372] = parser;
3838parser = Object.create(null);
3839parser[0] = new RegExp("; *(T-Hub2) Build/");
3840parser[1] = "$1";
3841parser[2] = 0;
3842parser[3] = 0;
3843parser[4] = 0;
3844exports.device[373] = parser;
3845parser = Object.create(null);
3846parser[0] = new RegExp("; *(PAD) ?(100[12]) Build/");
3847parser[1] = "Terra $1$2";
3848parser[2] = 0;
3849parser[3] = 0;
3850parser[4] = 0;
3851exports.device[374] = parser;
3852parser = Object.create(null);
3853parser[0] = new RegExp("; *(T[BM]-\\d{3}[^;/]+) Build/");
3854parser[1] = "$1";
3855parser[2] = 0;
3856parser[3] = 0;
3857parser[4] = 0;
3858exports.device[375] = parser;
3859parser = Object.create(null);
3860parser[0] = new RegExp("; *(tolino [^;/]+) Build");
3861parser[1] = "$1";
3862parser[2] = 0;
3863parser[3] = 0;
3864parser[4] = 0;
3865exports.device[376] = parser;
3866parser = Object.create(null);
3867parser[0] = new RegExp("; *Build/.* (TOLINO_BROWSER)");
3868parser[1] = "$1";
3869parser[2] = 0;
3870parser[3] = 0;
3871parser[4] = 0;
3872exports.device[377] = parser;
3873parser = Object.create(null);
3874parser[0] = new RegExp("; *(?:CJ[ -])?(ThL|THL)[ -]([^;/]+) Build/");
3875parser[1] = "$1 $2";
3876parser[2] = 0;
3877parser[3] = 0;
3878parser[4] = 0;
3879exports.device[378] = parser;
3880parser = Object.create(null);
3881parser[0] = new RegExp("; *(T100|T200|T5|W100|W200|W8s) Build/");
3882parser[1] = "$1";
3883parser[2] = 0;
3884parser[3] = 0;
3885parser[4] = 0;
3886exports.device[379] = parser;
3887parser = Object.create(null);
3888parser[0] = new RegExp("; *(T-Mobile[ _]G2[ _]Touch) Build");
3889parser[1] = "$1";
3890parser[2] = 0;
3891parser[3] = 0;
3892parser[4] = 0;
3893exports.device[380] = parser;
3894parser = Object.create(null);
3895parser[0] = new RegExp("; *(T-Mobile[ _]G2) Build");
3896parser[1] = "$1";
3897parser[2] = 0;
3898parser[3] = 0;
3899parser[4] = 0;
3900exports.device[381] = parser;
3901parser = Object.create(null);
3902parser[0] = new RegExp("; *(T-Mobile myTouch Q) Build");
3903parser[1] = "$1";
3904parser[2] = 0;
3905parser[3] = 0;
3906parser[4] = 0;
3907exports.device[382] = parser;
3908parser = Object.create(null);
3909parser[0] = new RegExp("; *(T-Mobile myTouch) Build");
3910parser[1] = "$1";
3911parser[2] = 0;
3912parser[3] = 0;
3913parser[4] = 0;
3914exports.device[383] = parser;
3915parser = Object.create(null);
3916parser[0] = new RegExp("; *(T-Mobile_Espresso) Build");
3917parser[1] = "$1";
3918parser[2] = 0;
3919parser[3] = 0;
3920parser[4] = 0;
3921exports.device[384] = parser;
3922parser = Object.create(null);
3923parser[0] = new RegExp("; *(T-Mobile G1) Build");
3924parser[1] = "$1";
3925parser[2] = 0;
3926parser[3] = 0;
3927parser[4] = 0;
3928exports.device[385] = parser;
3929parser = Object.create(null);
3930parser[0] = new RegExp("\\b(T-Mobile ?)?(myTouch)[ _]?([34]G)[ _]?([^\\/]*) (?:Mozilla|Build)");
3931parser[1] = "$1$2 $3 $4";
3932parser[2] = 0;
3933parser[3] = 0;
3934parser[4] = 0;
3935exports.device[386] = parser;
3936parser = Object.create(null);
3937parser[0] = new RegExp("\\b(T-Mobile)_([^_]+)_(.*) Build");
3938parser[1] = "$1 $2 $3";
3939parser[2] = 0;
3940parser[3] = 0;
3941parser[4] = 0;
3942exports.device[387] = parser;
3943parser = Object.create(null);
3944parser[0] = new RegExp("\\b(T-Mobile)[_ ]?((?:(?!Build).)*)Build");
3945parser[1] = "$1 $2";
3946parser[2] = 0;
3947parser[3] = 0;
3948parser[4] = 0;
3949exports.device[388] = parser;
3950parser = Object.create(null);
3951parser[0] = new RegExp(" (ATP[0-9]{4}) Build");
3952parser[1] = "$1";
3953parser[2] = 0;
3954parser[3] = 0;
3955parser[4] = 0;
3956exports.device[389] = parser;
3957parser = Object.create(null);
3958parser[0] = new RegExp(" *(TOOKY)[ _\\-]([^;/]+) ?(?:Build|;)");
3959parser[1] = "$1 $2";
3960parser[2] = 0;
3961parser[3] = 0;
3962parser[4] = 0;
3963exports.device[390] = parser;
3964parser = Object.create(null);
3965parser[0] = new RegExp("\\b(TOSHIBA_AC_AND_AZ|TOSHIBA_FOLIO_AND_A|FOLIO_AND_A)");
3966parser[1] = "$1";
3967parser[2] = 0;
3968parser[3] = 0;
3969parser[4] = 0;
3970exports.device[391] = parser;
3971parser = Object.create(null);
3972parser[0] = new RegExp("; *([Ff]olio ?100) Build/");
3973parser[1] = "$1";
3974parser[2] = 0;
3975parser[3] = 0;
3976parser[4] = 0;
3977exports.device[392] = parser;
3978parser = Object.create(null);
3979parser[0] = new RegExp("; *(AT[0-9]{2,3}(?:\\-A|LE\\-A|PE\\-A|SE|a)?|AT7-A|AT1S0|Hikari-iFrame/WDPF-[^;/]+|THRiVE|Thrive) Build/");
3980parser[1] = "Toshiba $1";
3981parser[2] = 0;
3982parser[3] = 0;
3983parser[4] = 0;
3984exports.device[393] = parser;
3985parser = Object.create(null);
3986parser[0] = new RegExp("; *(TM-MID\\d+[^;/]+|TOUCHMATE|MID-750) Build");
3987parser[1] = "$1";
3988parser[2] = 0;
3989parser[3] = 0;
3990parser[4] = 0;
3991exports.device[394] = parser;
3992parser = Object.create(null);
3993parser[0] = new RegExp("; *(TM-SM\\d+[^;/]+) Build");
3994parser[1] = "$1";
3995parser[2] = 0;
3996parser[3] = 0;
3997parser[4] = 0;
3998exports.device[395] = parser;
3999parser = Object.create(null);
4000parser[0] = new RegExp("; *(A10 [Bb]asic2?) Build/");
4001parser[1] = "$1";
4002parser[2] = 0;
4003parser[3] = 0;
4004parser[4] = 0;
4005exports.device[396] = parser;
4006parser = Object.create(null);
4007parser[0] = new RegExp("; *(TREQ[ _\\-])([^;/]+) Build");
4008parser[1] = "$1$2";
4009parser[2] = 0;
4010parser[3] = 0;
4011parser[4] = 0;
4012exports.device[397] = parser;
4013parser = Object.create(null);
4014parser[0] = new RegExp("; *(X-?5|X-?3) Build/");
4015parser[1] = "$1";
4016parser[2] = 0;
4017parser[3] = 0;
4018parser[4] = 0;
4019exports.device[398] = parser;
4020parser = Object.create(null);
4021parser[0] = new RegExp("; *(A502\\+?|A936|A603|X1|X2) Build/");
4022parser[1] = "$1";
4023parser[2] = 0;
4024parser[3] = 0;
4025parser[4] = 0;
4026exports.device[399] = parser;
4027parser = Object.create(null);
4028parser[0] = new RegExp("(TOUCH(?:TAB|PAD)(?:(?! Build).)+) Build/");
4029parser[1] = "Versus $1";
4030parser[2] = 0;
4031parser[3] = 0;
4032parser[4] = 0;
4033exports.device[400] = parser;
4034parser = Object.create(null);
4035parser[0] = new RegExp("(VERTU) ([^;/]+) Build/");
4036parser[1] = "$1 $2";
4037parser[2] = 0;
4038parser[3] = 0;
4039parser[4] = 0;
4040exports.device[401] = parser;
4041parser = Object.create(null);
4042parser[0] = new RegExp("; *(Videocon)[ _\\-]([^;/]+) *(?:Build|;)");
4043parser[1] = "$1 $2";
4044parser[2] = 0;
4045parser[3] = 0;
4046parser[4] = 0;
4047exports.device[402] = parser;
4048parser = Object.create(null);
4049parser[0] = new RegExp(" (VT\\d{2}[A-Za-z]*) Build");
4050parser[1] = "$1";
4051parser[2] = 0;
4052parser[3] = 0;
4053parser[4] = 0;
4054exports.device[403] = parser;
4055parser = Object.create(null);
4056parser[0] = new RegExp("; *((?:ViewPad|ViewPhone|VSD)[^;/]+) Build/");
4057parser[1] = "$1";
4058parser[2] = 0;
4059parser[3] = 0;
4060parser[4] = 0;
4061exports.device[404] = parser;
4062parser = Object.create(null);
4063parser[0] = new RegExp("; *(ViewSonic-)([^;/]+) Build/");
4064parser[1] = "$1$2";
4065parser[2] = 0;
4066parser[3] = 0;
4067parser[4] = 0;
4068exports.device[405] = parser;
4069parser = Object.create(null);
4070parser[0] = new RegExp("; *(GTablet.*) Build/");
4071parser[1] = "$1";
4072parser[2] = 0;
4073parser[3] = 0;
4074parser[4] = 0;
4075exports.device[406] = parser;
4076parser = Object.create(null);
4077parser[0] = new RegExp("; *([Vv]ivo)[ _]([^;/]+) Build");
4078parser[1] = "$1 $2";
4079parser[2] = 0;
4080parser[3] = 0;
4081parser[4] = 0;
4082exports.device[407] = parser;
4083parser = Object.create(null);
4084parser[0] = new RegExp("(Vodafone) (.*) Build/");
4085parser[1] = "$1 $2";
4086parser[2] = 0;
4087parser[3] = 0;
4088parser[4] = 0;
4089exports.device[408] = parser;
4090parser = Object.create(null);
4091parser[0] = new RegExp("; *(?:Walton[ _\\-])?(Primo[ _\\-][^;/]+) Build");
4092parser[1] = "Walton $1";
4093parser[2] = 0;
4094parser[3] = 0;
4095parser[4] = 0;
4096exports.device[409] = parser;
4097parser = Object.create(null);
4098parser[0] = new RegExp("; *(?:WIKO[ \\-])?(CINK\\+?|BARRY|BLOOM|DARKFULL|DARKMOON|DARKNIGHT|DARKSIDE|FIZZ|HIGHWAY|IGGY|OZZY|RAINBOW|STAIRWAY|SUBLIM|WAX|CINK [^;/]+) Build/");
4099parser[1] = "Wiko $1";
4100parser[2] = 0;
4101parser[3] = 0;
4102parser[4] = 0;
4103exports.device[410] = parser;
4104parser = Object.create(null);
4105parser[0] = new RegExp("; *WellcoM-([^;/]+) Build");
4106parser[1] = "Wellcom $1";
4107parser[2] = 0;
4108parser[3] = 0;
4109parser[4] = 0;
4110exports.device[411] = parser;
4111parser = Object.create(null);
4112parser[0] = new RegExp("(?:(WeTab)-Browser|; (wetab) Build)");
4113parser[1] = "$1";
4114parser[2] = 0;
4115parser[3] = 0;
4116parser[4] = 0;
4117exports.device[412] = parser;
4118parser = Object.create(null);
4119parser[0] = new RegExp("; *(AT-AS[^;/]+) Build");
4120parser[1] = "Wolfgang $1";
4121parser[2] = 0;
4122parser[3] = 0;
4123parser[4] = 0;
4124exports.device[413] = parser;
4125parser = Object.create(null);
4126parser[0] = new RegExp("; *(?:Woxter|Wxt) ([^;/]+) Build");
4127parser[1] = "Woxter $1";
4128parser[2] = 0;
4129parser[3] = 0;
4130parser[4] = 0;
4131exports.device[414] = parser;
4132parser = Object.create(null);
4133parser[0] = new RegExp("; *(?:Xenta |Luna )?(TAB[234][0-9]{2}|TAB0[78]-\\d{3}|TAB0?9-\\d{3}|TAB1[03]-\\d{3}|SMP\\d{2}-\\d{3}) Build/");
4134parser[1] = "Yarvik $1";
4135parser[2] = 0;
4136parser[3] = 0;
4137parser[4] = 0;
4138exports.device[415] = parser;
4139parser = Object.create(null);
4140parser[0] = new RegExp("; *([A-Z]{2,4})(M\\d{3,}[A-Z]{2})([^;\\)\\/]*)(?: Build|[;\\)])");
4141parser[1] = "Yifang $1$2$3";
4142parser[2] = 0;
4143parser[3] = 0;
4144parser[4] = 0;
4145exports.device[416] = parser;
4146parser = Object.create(null);
4147parser[0] = new RegExp("; *(MI \\d[^;/]*|MI-ONE Plus) Build/");
4148parser[1] = "XiaoMi $1";
4149parser[2] = 0;
4150parser[3] = 0;
4151parser[4] = 0;
4152exports.device[417] = parser;
4153parser = Object.create(null);
4154parser[0] = new RegExp("; *XOLO[ _]([^;/]*tab.*) Build");
4155parser[1] = "Xolo $1";
4156parser[2] = 0;
4157parser[3] = 0;
4158parser[4] = 0;
4159exports.device[418] = parser;
4160parser = Object.create(null);
4161parser[0] = new RegExp("; *XOLO[ _]([^;/]+) Build");
4162parser[1] = "Xolo $1";
4163parser[2] = 0;
4164parser[3] = 0;
4165parser[4] = 0;
4166exports.device[419] = parser;
4167parser = Object.create(null);
4168parser[0] = new RegExp("; *(q\\d0{2,3}[a-z]?) Build");
4169parser[1] = "Xolo $1";
4170parser[2] = 0;
4171parser[3] = 0;
4172parser[4] = 0;
4173exports.device[420] = parser;
4174parser = Object.create(null);
4175parser[0] = new RegExp("; *(PAD ?[79]\\d+[^;/]*|TelePAD\\d+[^;/]) Build");
4176parser[1] = "Xoro $1";
4177parser[2] = 0;
4178parser[3] = 0;
4179parser[4] = 0;
4180exports.device[421] = parser;
4181parser = Object.create(null);
4182parser[0] = new RegExp("; *(?:(?:ZOPO|Zopo)[ _]([^;/]+)|(ZP ?(?:\\d{2}[^;/]+|C2))|(C[2379])) Build");
4183parser[1] = "$1$2$3";
4184parser[2] = 0;
4185parser[3] = 0;
4186parser[4] = 0;
4187exports.device[422] = parser;
4188parser = Object.create(null);
4189parser[0] = new RegExp("; *(ZiiLABS) (Zii[^;/]*) Build");
4190parser[1] = "$1 $2";
4191parser[2] = 0;
4192parser[3] = 0;
4193parser[4] = 0;
4194exports.device[423] = parser;
4195parser = Object.create(null);
4196parser[0] = new RegExp("; *(Zii)_([^;/]*) Build");
4197parser[1] = "$1 $2";
4198parser[2] = 0;
4199parser[3] = 0;
4200parser[4] = 0;
4201exports.device[424] = parser;
4202parser = Object.create(null);
4203parser[0] = new RegExp("; *(ARIZONA|(?:ATLAS|Atlas) W|D930|Grand (?:[SX][^;]*|Era|Memo[^;]*)|JOE|(?:Kis|KIS)\\b[^;]*|Libra|Light [^;]*|N8[056][01]|N850L|N8000|N9[15]\\d{2}|N9810|NX501|Optik|(?:Vip )Racer[^;]*|RacerII|RACERII|San Francisco[^;]*|V9[AC]|V55|V881|Z[679][0-9]{2}[A-z]?) Build");
4204parser[1] = "$1";
4205parser[2] = 0;
4206parser[3] = 0;
4207parser[4] = 0;
4208exports.device[425] = parser;
4209parser = Object.create(null);
4210parser[0] = new RegExp("; *([A-Z]\\d+)_USA_[^;]* Build");
4211parser[1] = "$1";
4212parser[2] = 0;
4213parser[3] = 0;
4214parser[4] = 0;
4215exports.device[426] = parser;
4216parser = Object.create(null);
4217parser[0] = new RegExp("; *(SmartTab\\d+)[^;]* Build");
4218parser[1] = "$1";
4219parser[2] = 0;
4220parser[3] = 0;
4221parser[4] = 0;
4222exports.device[427] = parser;
4223parser = Object.create(null);
4224parser[0] = new RegExp("; *(?:Blade|BLADE|ZTE-BLADE)([^;/]*) Build");
4225parser[1] = "ZTE Blade$1";
4226parser[2] = 0;
4227parser[3] = 0;
4228parser[4] = 0;
4229exports.device[428] = parser;
4230parser = Object.create(null);
4231parser[0] = new RegExp("; *(?:Skate|SKATE|ZTE-SKATE)([^;/]*) Build");
4232parser[1] = "ZTE Skate$1";
4233parser[2] = 0;
4234parser[3] = 0;
4235parser[4] = 0;
4236exports.device[429] = parser;
4237parser = Object.create(null);
4238parser[0] = new RegExp("; *(Orange |Optimus )(Monte Carlo|San Francisco) Build");
4239parser[1] = "$1$2";
4240parser[2] = 0;
4241parser[3] = 0;
4242parser[4] = 0;
4243exports.device[430] = parser;
4244parser = Object.create(null);
4245parser[0] = new RegExp("; *(?:ZXY-ZTE_|ZTE\\-U |ZTE[\\- _]|ZTE-C[_ ])([^;/]+) Build");
4246parser[1] = "ZTE $1";
4247parser[2] = 0;
4248parser[3] = 0;
4249parser[4] = 0;
4250exports.device[431] = parser;
4251parser = Object.create(null);
4252parser[0] = new RegExp("; (BASE) (lutea|Lutea 2|Tab[^;]*) Build");
4253parser[1] = "$1 $2";
4254parser[2] = 0;
4255parser[3] = 0;
4256parser[4] = 0;
4257exports.device[432] = parser;
4258parser = Object.create(null);
4259parser[0] = new RegExp("; (Avea inTouch 2|soft stone|tmn smart a7|Movistar[ _]Link) Build");
4260parser[1] = "$1";
4261parser[2] = 0;
4262parser[3] = 0;
4263parser[4] = 0;
4264exports.device[433] = parser;
4265parser = Object.create(null);
4266parser[0] = new RegExp("; *(vp9plus)\\)");
4267parser[1] = "$1";
4268parser[2] = 0;
4269parser[3] = 0;
4270parser[4] = 0;
4271exports.device[434] = parser;
4272parser = Object.create(null);
4273parser[0] = new RegExp("; ?(Cloud[ _]Z5|z1000|Z99 2G|z99|z930|z999|z990|z909|Z919|z900) Build/");
4274parser[1] = "$1";
4275parser[2] = 0;
4276parser[3] = 0;
4277parser[4] = 0;
4278exports.device[435] = parser;
4279parser = Object.create(null);
4280parser[0] = new RegExp("; ?(KFOT|Kindle Fire) Build\\b");
4281parser[1] = "Kindle Fire";
4282parser[2] = 0;
4283parser[3] = 0;
4284parser[4] = 0;
4285exports.device[436] = parser;
4286parser = Object.create(null);
4287parser[0] = new RegExp("; ?(KFOTE|Amazon Kindle Fire2) Build\\b");
4288parser[1] = "Kindle Fire 2";
4289parser[2] = 0;
4290parser[3] = 0;
4291parser[4] = 0;
4292exports.device[437] = parser;
4293parser = Object.create(null);
4294parser[0] = new RegExp("; ?(KFTT) Build\\b");
4295parser[1] = "Kindle Fire HD";
4296parser[2] = 0;
4297parser[3] = 0;
4298parser[4] = 0;
4299exports.device[438] = parser;
4300parser = Object.create(null);
4301parser[0] = new RegExp("; ?(KFJWI) Build\\b");
4302parser[1] = "Kindle Fire HD 8.9\" WiFi";
4303parser[2] = 0;
4304parser[3] = 0;
4305parser[4] = 0;
4306exports.device[439] = parser;
4307parser = Object.create(null);
4308parser[0] = new RegExp("; ?(KFJWA) Build\\b");
4309parser[1] = "Kindle Fire HD 8.9\" 4G";
4310parser[2] = 0;
4311parser[3] = 0;
4312parser[4] = 0;
4313exports.device[440] = parser;
4314parser = Object.create(null);
4315parser[0] = new RegExp("; ?(KFSOWI) Build\\b");
4316parser[1] = "Kindle Fire HD 7\" WiFi";
4317parser[2] = 0;
4318parser[3] = 0;
4319parser[4] = 0;
4320exports.device[441] = parser;
4321parser = Object.create(null);
4322parser[0] = new RegExp("; ?(KFTHWI) Build\\b");
4323parser[1] = "Kindle Fire HDX 7\" WiFi";
4324parser[2] = 0;
4325parser[3] = 0;
4326parser[4] = 0;
4327exports.device[442] = parser;
4328parser = Object.create(null);
4329parser[0] = new RegExp("; ?(KFTHWA) Build\\b");
4330parser[1] = "Kindle Fire HDX 7\" 4G";
4331parser[2] = 0;
4332parser[3] = 0;
4333parser[4] = 0;
4334exports.device[443] = parser;
4335parser = Object.create(null);
4336parser[0] = new RegExp("; ?(KFAPWI) Build\\b");
4337parser[1] = "Kindle Fire HDX 8.9\" WiFi";
4338parser[2] = 0;
4339parser[3] = 0;
4340parser[4] = 0;
4341exports.device[444] = parser;
4342parser = Object.create(null);
4343parser[0] = new RegExp("; ?(KFAPWA) Build\\b");
4344parser[1] = "Kindle Fire HDX 8.9\" 4G";
4345parser[2] = 0;
4346parser[3] = 0;
4347parser[4] = 0;
4348exports.device[445] = parser;
4349parser = Object.create(null);
4350parser[0] = new RegExp("; ?Amazon ([^;/]+) Build\\b");
4351parser[1] = "$1";
4352parser[2] = 0;
4353parser[3] = 0;
4354parser[4] = 0;
4355exports.device[446] = parser;
4356parser = Object.create(null);
4357parser[0] = new RegExp("; ?(Kindle) Build\\b");
4358parser[1] = "Kindle";
4359parser[2] = 0;
4360parser[3] = 0;
4361parser[4] = 0;
4362exports.device[447] = parser;
4363parser = Object.create(null);
4364parser[0] = new RegExp("; ?(Silk)/(\\d+)\\.(\\d+)(?:\\.([0-9\\-]+))? Build\\b");
4365parser[1] = "Kindle Fire";
4366parser[2] = 0;
4367parser[3] = 0;
4368parser[4] = 0;
4369exports.device[448] = parser;
4370parser = Object.create(null);
4371parser[0] = new RegExp(" (Kindle)/(\\d+\\.\\d+)");
4372parser[1] = "Kindle";
4373parser[2] = 0;
4374parser[3] = 0;
4375parser[4] = 0;
4376exports.device[449] = parser;
4377parser = Object.create(null);
4378parser[0] = new RegExp(" (Silk|Kindle)/(\\d+)\\.");
4379parser[1] = "Kindle";
4380parser[2] = 0;
4381parser[3] = 0;
4382parser[4] = 0;
4383exports.device[450] = parser;
4384parser = Object.create(null);
4385parser[0] = new RegExp("(sprd)\\-([^/]+)/");
4386parser[1] = "$1 $2";
4387parser[2] = 0;
4388parser[3] = 0;
4389parser[4] = 0;
4390exports.device[451] = parser;
4391parser = Object.create(null);
4392parser[0] = new RegExp("; *(H\\d{2}00\\+?) Build");
4393parser[1] = "$1";
4394parser[2] = 0;
4395parser[3] = 0;
4396parser[4] = 0;
4397exports.device[452] = parser;
4398parser = Object.create(null);
4399parser[0] = new RegExp("; *(iphone|iPhone5) Build/");
4400parser[1] = "Xianghe $1";
4401parser[2] = 0;
4402parser[3] = 0;
4403parser[4] = 0;
4404exports.device[453] = parser;
4405parser = Object.create(null);
4406parser[0] = new RegExp("; *(e\\d{4}[a-z]?_?v\\d+|v89_[^;/]+)[^;/]+ Build/");
4407parser[1] = "Xianghe $1";
4408parser[2] = 0;
4409parser[3] = 0;
4410parser[4] = 0;
4411exports.device[454] = parser;
4412parser = Object.create(null);
4413parser[0] = new RegExp("\\bUSCC[_\\-]?([^ ;/\\)]+)");
4414parser[1] = "$1";
4415parser[2] = 0;
4416parser[3] = 0;
4417parser[4] = 0;
4418exports.device[455] = parser;
4419parser = Object.create(null);
4420parser[0] = new RegExp("Windows Phone [^;]+; (?:(?!IEMobile/).)*IEMobile/[^;\\)]+[;\\)] ?(?:ARM; ?Touch; ?|Touch; ?)?(?:ALCATEL)[^;]*; *([^;,\\)]+)");
4421parser[1] = "Alcatel $1";
4422parser[2] = 0;
4423parser[3] = 0;
4424parser[4] = 0;
4425exports.device[456] = parser;
4426parser = Object.create(null);
4427parser[0] = new RegExp("Windows Phone [^;]+; (?:(?!IEMobile/).)*IEMobile/[^;\\)]+[;\\)] ?(?:ARM; ?Touch; ?|Touch; ?|WpsLondonTest; ?)?(?:ASUS|Asus)[^;]*; *([^;,\\)]+)");
4428parser[1] = "Asus $1";
4429parser[2] = 0;
4430parser[3] = 0;
4431parser[4] = 0;
4432exports.device[457] = parser;
4433parser = Object.create(null);
4434parser[0] = new RegExp("Windows Phone [^;]+; (?:(?!IEMobile/).)*IEMobile/[^;\\)]+[;\\)] ?(?:ARM; ?Touch; ?|Touch; ?)?(?:DELL|Dell)[^;]*; *([^;,\\)]+)");
4435parser[1] = "Dell $1";
4436parser[2] = 0;
4437parser[3] = 0;
4438parser[4] = 0;
4439exports.device[458] = parser;
4440parser = Object.create(null);
4441parser[0] = new RegExp("Windows Phone [^;]+; (?:(?!IEMobile/).)*IEMobile/[^;\\)]+[;\\)] ?(?:ARM; ?Touch; ?|Touch; ?|WpsLondonTest; ?)?(?:HTC|Htc|HTC_blocked[^;]*)[^;]*; *(?:HTC)?([^;,\\)]+)");
4442parser[1] = "HTC $1";
4443parser[2] = 0;
4444parser[3] = 0;
4445parser[4] = 0;
4446exports.device[459] = parser;
4447parser = Object.create(null);
4448parser[0] = new RegExp("Windows Phone [^;]+; (?:(?!IEMobile/).)*IEMobile/[^;\\)]+[;\\)] ?(?:ARM; ?Touch; ?|Touch; ?)?(?:HUAWEI)[^;]*; *(?:HUAWEI )?([^;,\\)]+)");
4449parser[1] = "Huawei $1";
4450parser[2] = 0;
4451parser[3] = 0;
4452parser[4] = 0;
4453exports.device[460] = parser;
4454parser = Object.create(null);
4455parser[0] = new RegExp("Windows Phone [^;]+; (?:(?!IEMobile/).)*IEMobile/[^;\\)]+[;\\)] ?(?:ARM; ?Touch; ?|Touch; ?)?(?:LG|Lg)[^;]*; *(?:LG[ \\-])?([^;,\\)]+)");
4456parser[1] = "LG $1";
4457parser[2] = 0;
4458parser[3] = 0;
4459parser[4] = 0;
4460exports.device[461] = parser;
4461parser = Object.create(null);
4462parser[0] = new RegExp("Windows Phone [^;]+; (?:(?!IEMobile/).)*IEMobile/[^;\\)]+[;\\)] ?(?:ARM; ?Touch; ?|Touch; ?)?(?:NOKIA|Nokia)[^;]*; *(?:NOKIA ?|Nokia ?|LUMIA ?|[Ll]umia ?)*(\\d{3,}[^;\\)]*)");
4463parser[1] = "Lumia $1";
4464parser[2] = 0;
4465parser[3] = 0;
4466parser[4] = 0;
4467exports.device[462] = parser;
4468parser = Object.create(null);
4469parser[0] = new RegExp("Windows Phone [^;]+; (?:(?!IEMobile/).)*IEMobile/[^;\\)]+[;\\)] ?(?:ARM; ?Touch; ?|Touch; ?)?(?:NOKIA|Nokia)[^;]*; *(RM-\\d{3,})");
4470parser[1] = "Nokia $1";
4471parser[2] = 0;
4472parser[3] = 0;
4473parser[4] = 0;
4474exports.device[463] = parser;
4475parser = Object.create(null);
4476parser[0] = new RegExp("(?:Windows Phone [^;]+; (?:(?!IEMobile/).)*IEMobile/[^;\\)]+[;\\)]|WPDesktop;) ?(?:ARM; ?Touch; ?|Touch; ?)?(?:NOKIA|Nokia)[^;]*; *(?:NOKIA ?|Nokia ?|LUMIA ?|[Ll]umia ?)*([^;\\)]+)");
4477parser[1] = "Nokia $1";
4478parser[2] = 0;
4479parser[3] = 0;
4480parser[4] = 0;
4481exports.device[464] = parser;
4482parser = Object.create(null);
4483parser[0] = new RegExp("Windows Phone [^;]+; (?:(?!IEMobile/).)*IEMobile/[^;\\)]+[;\\)] ?(?:ARM; ?Touch; ?|Touch; ?)?(?:Microsoft(?: Corporation)?)[^;]*; *([^;,\\)]+)");
4484parser[1] = "Microsoft $1";
4485parser[2] = 0;
4486parser[3] = 0;
4487parser[4] = 0;
4488exports.device[465] = parser;
4489parser = Object.create(null);
4490parser[0] = new RegExp("Windows Phone [^;]+; (?:(?!IEMobile/).)*IEMobile/[^;\\)]+[;\\)] ?(?:ARM; ?Touch; ?|Touch; ?|WpsLondonTest; ?)?(?:SAMSUNG)[^;]*; *(?:SAMSUNG )?([^;,\\.\\)]+)");
4491parser[1] = "Samsung $1";
4492parser[2] = 0;
4493parser[3] = 0;
4494parser[4] = 0;
4495exports.device[466] = parser;
4496parser = Object.create(null);
4497parser[0] = new RegExp("Windows Phone [^;]+; (?:(?!IEMobile/).)*IEMobile/[^;\\)]+[;\\)] ?(?:ARM; ?Touch; ?|Touch; ?|WpsLondonTest; ?)?(?:TOSHIBA|FujitsuToshibaMobileCommun)[^;]*; *([^;,\\)]+)");
4498parser[1] = "Toshiba $1";
4499parser[2] = 0;
4500parser[3] = 0;
4501parser[4] = 0;
4502exports.device[467] = parser;
4503parser = Object.create(null);
4504parser[0] = new RegExp("Windows Phone [^;]+; (?:(?!IEMobile/).)*IEMobile/[^;\\)]+[;\\)] ?(?:ARM; ?Touch; ?|Touch; ?|WpsLondonTest; ?)?([^;]+); *([^;,\\)]+)");
4505parser[1] = "$1 $2";
4506parser[2] = 0;
4507parser[3] = 0;
4508parser[4] = 0;
4509exports.device[468] = parser;
4510parser = Object.create(null);
4511parser[0] = new RegExp("(?:^|; )SAMSUNG\\-([A-Za-z0-9\\-]+).* Bada/");
4512parser[1] = "Samsung $1";
4513parser[2] = 0;
4514parser[3] = 0;
4515parser[4] = 0;
4516exports.device[469] = parser;
4517parser = Object.create(null);
4518parser[0] = new RegExp("\\(Mobile; ALCATEL ?(One|ONE) ?(Touch|TOUCH) ?([^;/]+)(?:/[^;]+)?; rv:[^\\)]+\\) Gecko/[^\\/]+ Firefox/");
4519parser[1] = "Alcatel $1 $2 $3";
4520parser[2] = 0;
4521parser[3] = 0;
4522parser[4] = 0;
4523exports.device[470] = parser;
4524parser = Object.create(null);
4525parser[0] = new RegExp("\\(Mobile; (?:ZTE([^;]+)|(OpenC)); rv:[^\\)]+\\) Gecko/[^\\/]+ Firefox/");
4526parser[1] = "ZTE $1$2";
4527parser[2] = 0;
4528parser[3] = 0;
4529parser[4] = 0;
4530exports.device[471] = parser;
4531parser = Object.create(null);
4532parser[0] = new RegExp("Nokia(N[0-9]+)([A-z_\\-][A-z0-9_\\-]*)");
4533parser[1] = "Nokia $1";
4534parser[2] = 0;
4535parser[3] = 0;
4536parser[4] = 0;
4537exports.device[472] = parser;
4538parser = Object.create(null);
4539parser[0] = new RegExp("(?:NOKIA|Nokia)(?:\\-| *)(?:([A-Za-z0-9]+)\\-[0-9a-f]{32}|((?:(?!UCBrowser)[A-Za-z0-9\\-])+))");
4540parser[1] = "Nokia $1$2";
4541parser[2] = 0;
4542parser[3] = 0;
4543parser[4] = 0;
4544exports.device[473] = parser;
4545parser = Object.create(null);
4546parser[0] = new RegExp("Lumia ([A-Za-z0-9\\-]+)");
4547parser[1] = "Lumia $1";
4548parser[2] = 0;
4549parser[3] = 0;
4550parser[4] = 0;
4551exports.device[474] = parser;
4552parser = Object.create(null);
4553parser[0] = new RegExp("\\(Symbian; U; S60 V5; [A-z]{2}\\-[A-z]{2}; (SonyEricsson|Samsung|Nokia|LG)([^;/]+)\\)");
4554parser[1] = "$1 $2";
4555parser[2] = 0;
4556parser[3] = 0;
4557parser[4] = 0;
4558exports.device[475] = parser;
4559parser = Object.create(null);
4560parser[0] = new RegExp("\\(Symbian(?:/3)?; U; ([^;]+);");
4561parser[1] = "Nokia $1";
4562parser[2] = 0;
4563parser[3] = 0;
4564parser[4] = 0;
4565exports.device[476] = parser;
4566parser = Object.create(null);
4567parser[0] = new RegExp("BB10; ([A-Za-z0-9\\- ]+)\\)");
4568parser[1] = "BlackBerry $1";
4569parser[2] = 0;
4570parser[3] = 0;
4571parser[4] = 0;
4572exports.device[477] = parser;
4573parser = Object.create(null);
4574parser[0] = new RegExp("Play[Bb]ook.+RIM Tablet OS");
4575parser[1] = "BlackBerry Playbook";
4576parser[2] = 0;
4577parser[3] = 0;
4578parser[4] = 0;
4579exports.device[478] = parser;
4580parser = Object.create(null);
4581parser[0] = new RegExp("Black[Bb]erry ([0-9]+);");
4582parser[1] = "BlackBerry $1";
4583parser[2] = 0;
4584parser[3] = 0;
4585parser[4] = 0;
4586exports.device[479] = parser;
4587parser = Object.create(null);
4588parser[0] = new RegExp("Black[Bb]erry([0-9]+)");
4589parser[1] = "BlackBerry $1";
4590parser[2] = 0;
4591parser[3] = 0;
4592parser[4] = 0;
4593exports.device[480] = parser;
4594parser = Object.create(null);
4595parser[0] = new RegExp("Black[Bb]erry;");
4596parser[1] = "BlackBerry";
4597parser[2] = 0;
4598parser[3] = 0;
4599parser[4] = 0;
4600exports.device[481] = parser;
4601parser = Object.create(null);
4602parser[0] = new RegExp("(Pre|Pixi)/\\d+\\.\\d+");
4603parser[1] = "Palm $1";
4604parser[2] = 0;
4605parser[3] = 0;
4606parser[4] = 0;
4607exports.device[482] = parser;
4608parser = Object.create(null);
4609parser[0] = new RegExp("Palm([0-9]+)");
4610parser[1] = "Palm $1";
4611parser[2] = 0;
4612parser[3] = 0;
4613parser[4] = 0;
4614exports.device[483] = parser;
4615parser = Object.create(null);
4616parser[0] = new RegExp("Treo([A-Za-z0-9]+)");
4617parser[1] = "Palm Treo $1";
4618parser[2] = 0;
4619parser[3] = 0;
4620parser[4] = 0;
4621exports.device[484] = parser;
4622parser = Object.create(null);
4623parser[0] = new RegExp("webOS.*(P160U(?:NA)?)/(\\d+).(\\d+)");
4624parser[1] = "HP Veer";
4625parser[2] = 0;
4626parser[3] = 0;
4627parser[4] = 0;
4628exports.device[485] = parser;
4629parser = Object.create(null);
4630parser[0] = new RegExp("(Touch[Pp]ad)/\\d+\\.\\d+");
4631parser[1] = "HP TouchPad";
4632parser[2] = 0;
4633parser[3] = 0;
4634parser[4] = 0;
4635exports.device[486] = parser;
4636parser = Object.create(null);
4637parser[0] = new RegExp("HPiPAQ([A-Za-z0-9]+)/\\d+.\\d+");
4638parser[1] = "HP iPAQ $1";
4639parser[2] = 0;
4640parser[3] = 0;
4641parser[4] = 0;
4642exports.device[487] = parser;
4643parser = Object.create(null);
4644parser[0] = new RegExp("PDA; (PalmOS)/sony/model ([a-z]+)/Revision");
4645parser[1] = "$1";
4646parser[2] = 0;
4647parser[3] = 0;
4648parser[4] = 0;
4649exports.device[488] = parser;
4650parser = Object.create(null);
4651parser[0] = new RegExp("(Apple\\s?TV)");
4652parser[1] = "AppleTV";
4653parser[2] = 0;
4654parser[3] = 0;
4655parser[4] = 0;
4656exports.device[489] = parser;
4657parser = Object.create(null);
4658parser[0] = new RegExp("(QtCarBrowser)");
4659parser[1] = "Tesla Model S";
4660parser[2] = 0;
4661parser[3] = 0;
4662parser[4] = 0;
4663exports.device[490] = parser;
4664parser = Object.create(null);
4665parser[0] = new RegExp("((?:iPhone|iPad|iPod)\\d+,\\d+)");
4666parser[1] = "$1";
4667parser[2] = 0;
4668parser[3] = 0;
4669parser[4] = 0;
4670exports.device[491] = parser;
4671parser = Object.create(null);
4672parser[0] = new RegExp("(iPad)(?:;| Simulator;)");
4673parser[1] = "$1";
4674parser[2] = 0;
4675parser[3] = 0;
4676parser[4] = 0;
4677exports.device[492] = parser;
4678parser = Object.create(null);
4679parser[0] = new RegExp("(iPod)(?:;| touch;| Simulator;)");
4680parser[1] = "$1";
4681parser[2] = 0;
4682parser[3] = 0;
4683parser[4] = 0;
4684exports.device[493] = parser;
4685parser = Object.create(null);
4686parser[0] = new RegExp("(iPhone)(?:;| Simulator;)");
4687parser[1] = "$1";
4688parser[2] = 0;
4689parser[3] = 0;
4690parser[4] = 0;
4691exports.device[494] = parser;
4692parser = Object.create(null);
4693parser[0] = new RegExp("CFNetwork/.* Darwin/\\d.*\\(((?:Mac|iMac|PowerMac|PowerBook)[^\\d]*)(\\d+)(?:,|%2C)(\\d+)");
4694parser[1] = "$1$2,$3";
4695parser[2] = 0;
4696parser[3] = 0;
4697parser[4] = 0;
4698exports.device[495] = parser;
4699parser = Object.create(null);
4700parser[0] = new RegExp("CFNetwork/.* Darwin/\\d");
4701parser[1] = "iOS-Device";
4702parser[2] = 0;
4703parser[3] = 0;
4704parser[4] = 0;
4705exports.device[496] = parser;
4706parser = Object.create(null);
4707parser[0] = new RegExp("acer_([A-Za-z0-9]+)_");
4708parser[1] = "Acer $1";
4709parser[2] = 0;
4710parser[3] = 0;
4711parser[4] = 0;
4712exports.device[497] = parser;
4713parser = Object.create(null);
4714parser[0] = new RegExp("(?:ALCATEL|Alcatel)-([A-Za-z0-9\\-]+)");
4715parser[1] = "Alcatel $1";
4716parser[2] = 0;
4717parser[3] = 0;
4718parser[4] = 0;
4719exports.device[498] = parser;
4720parser = Object.create(null);
4721parser[0] = new RegExp("(?:Amoi|AMOI)\\-([A-Za-z0-9]+)");
4722parser[1] = "Amoi $1";
4723parser[2] = 0;
4724parser[3] = 0;
4725parser[4] = 0;
4726exports.device[499] = parser;
4727parser = Object.create(null);
4728parser[0] = new RegExp("(?:; |\\/|^)((?:Transformer (?:Pad|Prime) |Transformer |PadFone[ _]?)[A-Za-z0-9]*)");
4729parser[1] = "Asus $1";
4730parser[2] = 0;
4731parser[3] = 0;
4732parser[4] = 0;
4733exports.device[500] = parser;
4734parser = Object.create(null);
4735parser[0] = new RegExp("(?:asus.*?ASUS|Asus|ASUS|asus)[\\- ;]*((?:Transformer (?:Pad|Prime) |Transformer |Padfone |Nexus[ _])?[A-Za-z0-9]+)");
4736parser[1] = "Asus $1";
4737parser[2] = 0;
4738parser[3] = 0;
4739parser[4] = 0;
4740exports.device[501] = parser;
4741parser = Object.create(null);
4742parser[0] = new RegExp("\\bBIRD[ \\-\\.]([A-Za-z0-9]+)");
4743parser[1] = "Bird $1";
4744parser[2] = 0;
4745parser[3] = 0;
4746parser[4] = 0;
4747exports.device[502] = parser;
4748parser = Object.create(null);
4749parser[0] = new RegExp("\\bDell ([A-Za-z0-9]+)");
4750parser[1] = "Dell $1";
4751parser[2] = 0;
4752parser[3] = 0;
4753parser[4] = 0;
4754exports.device[503] = parser;
4755parser = Object.create(null);
4756parser[0] = new RegExp("DoCoMo/2\\.0 ([A-Za-z0-9]+)");
4757parser[1] = "DoCoMo $1";
4758parser[2] = 0;
4759parser[3] = 0;
4760parser[4] = 0;
4761exports.device[504] = parser;
4762parser = Object.create(null);
4763parser[0] = new RegExp("([A-Za-z0-9]+)_W;FOMA");
4764parser[1] = "DoCoMo $1";
4765parser[2] = 0;
4766parser[3] = 0;
4767parser[4] = 0;
4768exports.device[505] = parser;
4769parser = Object.create(null);
4770parser[0] = new RegExp("([A-Za-z0-9]+);FOMA");
4771parser[1] = "DoCoMo $1";
4772parser[2] = 0;
4773parser[3] = 0;
4774parser[4] = 0;
4775exports.device[506] = parser;
4776parser = Object.create(null);
4777parser[0] = new RegExp("\\bHTC[ _\\-]?((?:(?!-?Mozilla|fingerPrint|[;/\\(\\)]).)+)");
4778parser[1] = "HTC $1";
4779parser[2] = 0;
4780parser[3] = 0;
4781parser[4] = 0;
4782exports.device[507] = parser;
4783parser = Object.create(null);
4784parser[0] = new RegExp("Huawei([A-Za-z0-9]+)");
4785parser[1] = "Huawei $1";
4786parser[2] = 0;
4787parser[3] = 0;
4788parser[4] = 0;
4789exports.device[508] = parser;
4790parser = Object.create(null);
4791parser[0] = new RegExp("HUAWEI-([A-Za-z0-9]+)");
4792parser[1] = "Huawei $1";
4793parser[2] = 0;
4794parser[3] = 0;
4795parser[4] = 0;
4796exports.device[509] = parser;
4797parser = Object.create(null);
4798parser[0] = new RegExp("vodafone([A-Za-z0-9]+)");
4799parser[1] = "Huawei Vodafone $1";
4800parser[2] = 0;
4801parser[3] = 0;
4802parser[4] = 0;
4803exports.device[510] = parser;
4804parser = Object.create(null);
4805parser[0] = new RegExp("i\\-mate ([A-Za-z0-9]+)");
4806parser[1] = "i-mate $1";
4807parser[2] = 0;
4808parser[3] = 0;
4809parser[4] = 0;
4810exports.device[511] = parser;
4811parser = Object.create(null);
4812parser[0] = new RegExp("Kyocera\\-([A-Za-z0-9]+)");
4813parser[1] = "Kyocera $1";
4814parser[2] = 0;
4815parser[3] = 0;
4816parser[4] = 0;
4817exports.device[512] = parser;
4818parser = Object.create(null);
4819parser[0] = new RegExp("KWC\\-([A-Za-z0-9]+)");
4820parser[1] = "Kyocera $1";
4821parser[2] = 0;
4822parser[3] = 0;
4823parser[4] = 0;
4824exports.device[513] = parser;
4825parser = Object.create(null);
4826parser[0] = new RegExp("Lenovo[_\\-]([A-Za-z0-9]+)");
4827parser[1] = "Lenovo $1";
4828parser[2] = 0;
4829parser[3] = 0;
4830parser[4] = 0;
4831exports.device[514] = parser;
4832parser = Object.create(null);
4833parser[0] = new RegExp("(HbbTV)/[0-9]+\\.[0-9]+\\.[0-9]+ \\([^;]*; *(LG)E *; *([^;]*) *;[^;]*;[^;]*;\\)");
4834parser[1] = "$1";
4835parser[2] = 0;
4836parser[3] = 0;
4837parser[4] = 0;
4838exports.device[515] = parser;
4839parser = Object.create(null);
4840parser[0] = new RegExp("(HbbTV)/1\\.1\\.1.*CE-HTML/1\\.\\d;(Vendor/)*(THOM[^;]*?)[;\\s](?:.*SW-Version/.*)*(LF[^;]+);?");
4841parser[1] = "$1";
4842parser[2] = 0;
4843parser[3] = 0;
4844parser[4] = 0;
4845exports.device[516] = parser;
4846parser = Object.create(null);
4847parser[0] = new RegExp("(HbbTV)(?:/1\\.1\\.1)?(?: ?\\(;;;;;\\))?; *CE-HTML(?:/1\\.\\d)?; *([^ ]+) ([^;]+);");
4848parser[1] = "$1";
4849parser[2] = 0;
4850parser[3] = 0;
4851parser[4] = 0;
4852exports.device[517] = parser;
4853parser = Object.create(null);
4854parser[0] = new RegExp("(HbbTV)/1\\.1\\.1 \\(;;;;;\\) Maple_2011");
4855parser[1] = "$1";
4856parser[2] = 0;
4857parser[3] = 0;
4858parser[4] = 0;
4859exports.device[518] = parser;
4860parser = Object.create(null);
4861parser[0] = new RegExp("(HbbTV)/[0-9]+\\.[0-9]+\\.[0-9]+ \\([^;]*; *(?:CUS:([^;]*)|([^;]+)) *; *([^;]*) *;.*;");
4862parser[1] = "$1";
4863parser[2] = 0;
4864parser[3] = 0;
4865parser[4] = 0;
4866exports.device[519] = parser;
4867parser = Object.create(null);
4868parser[0] = new RegExp("(HbbTV)/[0-9]+\\.[0-9]+\\.[0-9]+");
4869parser[1] = "$1";
4870parser[2] = 0;
4871parser[3] = 0;
4872parser[4] = 0;
4873exports.device[520] = parser;
4874parser = Object.create(null);
4875parser[0] = new RegExp("LGE; (?:Media\\/)?([^;]*);[^;]*;[^;]*;?\\); \"?LG NetCast(\\.TV|\\.Media|)-\\d+");
4876parser[1] = "NetCast$2";
4877parser[2] = 0;
4878parser[3] = 0;
4879parser[4] = 0;
4880exports.device[521] = parser;
4881parser = Object.create(null);
4882parser[0] = new RegExp("InettvBrowser/[0-9]+\\.[0-9A-Z]+ \\([^;]*;(Sony)([^;]*);[^;]*;[^\\)]*\\)");
4883parser[1] = "Inettv";
4884parser[2] = 0;
4885parser[3] = 0;
4886parser[4] = 0;
4887exports.device[522] = parser;
4888parser = Object.create(null);
4889parser[0] = new RegExp("InettvBrowser/[0-9]+\\.[0-9A-Z]+ \\([^;]*;([^;]*);[^;]*;[^\\)]*\\)");
4890parser[1] = "Inettv";
4891parser[2] = 0;
4892parser[3] = 0;
4893parser[4] = 0;
4894exports.device[523] = parser;
4895parser = Object.create(null);
4896parser[0] = new RegExp("(?:InettvBrowser|TSBNetTV|NETTV|HBBTV)");
4897parser[1] = "Inettv";
4898parser[2] = 0;
4899parser[3] = 0;
4900parser[4] = 0;
4901exports.device[524] = parser;
4902parser = Object.create(null);
4903parser[0] = new RegExp("Series60/\\d\\.\\d (LG)[\\-]?([A-Za-z0-9 \\-]+)");
4904parser[1] = "$1 $2";
4905parser[2] = 0;
4906parser[3] = 0;
4907parser[4] = 0;
4908exports.device[525] = parser;
4909parser = Object.create(null);
4910parser[0] = new RegExp("\\b(?:LGE[ \\-]LG\\-(?:AX)?|LGE |LGE?-LG|LGE?[ \\-]|LG[ /\\-]|lg[\\-])([A-Za-z0-9]+)\\b");
4911parser[1] = "LG $1";
4912parser[2] = 0;
4913parser[3] = 0;
4914parser[4] = 0;
4915exports.device[526] = parser;
4916parser = Object.create(null);
4917parser[0] = new RegExp("(?:^LG[\\-]?|^LGE[\\-/]?)([A-Za-z]+[0-9]+[A-Za-z]*)");
4918parser[1] = "LG $1";
4919parser[2] = 0;
4920parser[3] = 0;
4921parser[4] = 0;
4922exports.device[527] = parser;
4923parser = Object.create(null);
4924parser[0] = new RegExp("^LG([0-9]+[A-Za-z]*)");
4925parser[1] = "LG $1";
4926parser[2] = 0;
4927parser[3] = 0;
4928parser[4] = 0;
4929exports.device[528] = parser;
4930parser = Object.create(null);
4931parser[0] = new RegExp("(KIN\\.[^ ]+) (\\d+)\\.(\\d+)");
4932parser[1] = "Microsoft $1";
4933parser[2] = 0;
4934parser[3] = 0;
4935parser[4] = 0;
4936exports.device[529] = parser;
4937parser = Object.create(null);
4938parser[0] = new RegExp("(?:MSIE|XBMC).*\\b(Xbox)\\b");
4939parser[1] = "$1";
4940parser[2] = 0;
4941parser[3] = 0;
4942parser[4] = 0;
4943exports.device[530] = parser;
4944parser = Object.create(null);
4945parser[0] = new RegExp("; ARM; Trident/6\\.0; Touch[\\);]");
4946parser[1] = "Microsoft Surface RT";
4947parser[2] = 0;
4948parser[3] = 0;
4949parser[4] = 0;
4950exports.device[531] = parser;
4951parser = Object.create(null);
4952parser[0] = new RegExp("Motorola\\-([A-Za-z0-9]+)");
4953parser[1] = "Motorola $1";
4954parser[2] = 0;
4955parser[3] = 0;
4956parser[4] = 0;
4957exports.device[532] = parser;
4958parser = Object.create(null);
4959parser[0] = new RegExp("MOTO\\-([A-Za-z0-9]+)");
4960parser[1] = "Motorola $1";
4961parser[2] = 0;
4962parser[3] = 0;
4963parser[4] = 0;
4964exports.device[533] = parser;
4965parser = Object.create(null);
4966parser[0] = new RegExp("MOT\\-([A-z0-9][A-z0-9\\-]*)");
4967parser[1] = "Motorola $1";
4968parser[2] = 0;
4969parser[3] = 0;
4970parser[4] = 0;
4971exports.device[534] = parser;
4972parser = Object.create(null);
4973parser[0] = new RegExp("Nintendo WiiU");
4974parser[1] = "Nintendo Wii U";
4975parser[2] = 0;
4976parser[3] = 0;
4977parser[4] = 0;
4978exports.device[535] = parser;
4979parser = Object.create(null);
4980parser[0] = new RegExp("Nintendo (DS|3DS|DSi|Wii);");
4981parser[1] = "Nintendo $1";
4982parser[2] = 0;
4983parser[3] = 0;
4984parser[4] = 0;
4985exports.device[536] = parser;
4986parser = Object.create(null);
4987parser[0] = new RegExp("(?:Pantech|PANTECH)[ _-]?([A-Za-z0-9\\-]+)");
4988parser[1] = "Pantech $1";
4989parser[2] = 0;
4990parser[3] = 0;
4991parser[4] = 0;
4992exports.device[537] = parser;
4993parser = Object.create(null);
4994parser[0] = new RegExp("Philips([A-Za-z0-9]+)");
4995parser[1] = "Philips $1";
4996parser[2] = 0;
4997parser[3] = 0;
4998parser[4] = 0;
4999exports.device[538] = parser;
5000parser = Object.create(null);
5001parser[0] = new RegExp("Philips ([A-Za-z0-9]+)");
5002parser[1] = "Philips $1";
5003parser[2] = 0;
5004parser[3] = 0;
5005parser[4] = 0;
5006exports.device[539] = parser;
5007parser = Object.create(null);
5008parser[0] = new RegExp("SymbianOS/9\\.\\d.* Samsung[/\\-]([A-Za-z0-9 \\-]+)");
5009parser[1] = "Samsung $1";
5010parser[2] = 0;
5011parser[3] = 0;
5012parser[4] = 0;
5013exports.device[540] = parser;
5014parser = Object.create(null);
5015parser[0] = new RegExp("(Samsung)(SGH)(i[0-9]+)");
5016parser[1] = "$1 $2$3";
5017parser[2] = 0;
5018parser[3] = 0;
5019parser[4] = 0;
5020exports.device[541] = parser;
5021parser = Object.create(null);
5022parser[0] = new RegExp("SAMSUNG-ANDROID-MMS/([^;/]+)");
5023parser[1] = "$1";
5024parser[2] = 0;
5025parser[3] = 0;
5026parser[4] = 0;
5027exports.device[542] = parser;
5028parser = Object.create(null);
5029parser[0] = new RegExp("SAMSUNG(?:; |[ -/])([A-Za-z0-9\\-]+)");
5030parser[1] = "Samsung $1";
5031parser[2] = 0;
5032parser[3] = 0;
5033parser[4] = 0;
5034exports.device[543] = parser;
5035parser = Object.create(null);
5036parser[0] = new RegExp("(Dreamcast)");
5037parser[1] = "Sega $1";
5038parser[2] = 0;
5039parser[3] = 0;
5040parser[4] = 0;
5041exports.device[544] = parser;
5042parser = Object.create(null);
5043parser[0] = new RegExp("^SIE-([A-Za-z0-9]+)");
5044parser[1] = "Siemens $1";
5045parser[2] = 0;
5046parser[3] = 0;
5047parser[4] = 0;
5048exports.device[545] = parser;
5049parser = Object.create(null);
5050parser[0] = new RegExp("Softbank/[12]\\.0/([A-Za-z0-9]+)");
5051parser[1] = "Softbank $1";
5052parser[2] = 0;
5053parser[3] = 0;
5054parser[4] = 0;
5055exports.device[546] = parser;
5056parser = Object.create(null);
5057parser[0] = new RegExp("SonyEricsson ?([A-Za-z0-9\\-]+)");
5058parser[1] = "Ericsson $1";
5059parser[2] = 0;
5060parser[3] = 0;
5061parser[4] = 0;
5062exports.device[547] = parser;
5063parser = Object.create(null);
5064parser[0] = new RegExp("Android [^;]+; ([^ ]+) (Sony)/");
5065parser[1] = "$2 $1";
5066parser[2] = 0;
5067parser[3] = 0;
5068parser[4] = 0;
5069exports.device[548] = parser;
5070parser = Object.create(null);
5071parser[0] = new RegExp("(Sony)(?:BDP\\/|\\/)?([^ /;\\)]+)[ /;\\)]");
5072parser[1] = "$1 $2";
5073parser[2] = 0;
5074parser[3] = 0;
5075parser[4] = 0;
5076exports.device[549] = parser;
5077parser = Object.create(null);
5078parser[0] = new RegExp("Puffin/[\\d\\.]+IT");
5079parser[1] = "iPad";
5080parser[2] = 0;
5081parser[3] = 0;
5082parser[4] = 0;
5083exports.device[550] = parser;
5084parser = Object.create(null);
5085parser[0] = new RegExp("Puffin/[\\d\\.]+IP");
5086parser[1] = "iPhone";
5087parser[2] = 0;
5088parser[3] = 0;
5089parser[4] = 0;
5090exports.device[551] = parser;
5091parser = Object.create(null);
5092parser[0] = new RegExp("Puffin/[\\d\\.]+AT");
5093parser[1] = "Generic Tablet";
5094parser[2] = 0;
5095parser[3] = 0;
5096parser[4] = 0;
5097exports.device[552] = parser;
5098parser = Object.create(null);
5099parser[0] = new RegExp("Puffin/[\\d\\.]+AP");
5100parser[1] = "Generic Smartphone";
5101parser[2] = 0;
5102parser[3] = 0;
5103parser[4] = 0;
5104exports.device[553] = parser;
5105parser = Object.create(null);
5106parser[0] = new RegExp("Android[\\- ][\\d]+\\.[\\d]+; [A-Za-z]{2}\\-[A-Za-z]{0,2}; WOWMobile (.+) Build");
5107parser[1] = 0;
5108parser[2] = 0;
5109parser[3] = 0;
5110parser[4] = 0;
5111exports.device[554] = parser;
5112parser = Object.create(null);
5113parser[0] = new RegExp("Android[\\- ][\\d]+\\.[\\d]+\\-update1; [A-Za-z]{2}\\-[A-Za-z]{0,2} *; *((?:(?!Build).)+) Build");
5114parser[1] = 0;
5115parser[2] = 0;
5116parser[3] = 0;
5117parser[4] = 0;
5118exports.device[555] = parser;
5119parser = Object.create(null);
5120parser[0] = new RegExp("Android[\\- ][\\d]+(?:\\.[\\d]+){1,2}; *[A-Za-z]{2}[_\\-][A-Za-z]{0,2}\\-? *; *((?:(?!Build).)+) Build");
5121parser[1] = 0;
5122parser[2] = 0;
5123parser[3] = 0;
5124parser[4] = 0;
5125exports.device[556] = parser;
5126parser = Object.create(null);
5127parser[0] = new RegExp("Android[\\- ][\\d]+(?:\\.[\\d]+){1,2}; *[A-Za-z]{0,2}\\- *; *((?:(?!Build).)+) Build");
5128parser[1] = 0;
5129parser[2] = 0;
5130parser[3] = 0;
5131parser[4] = 0;
5132exports.device[557] = parser;
5133parser = Object.create(null);
5134parser[0] = new RegExp("Android[\\- ][\\d]+(?:\\.[\\d]+){1,2}; *[a-z]{0,2}[_\\-]?[A-Za-z]{0,2};? Build");
5135parser[1] = 0;
5136parser[2] = 0;
5137parser[3] = 0;
5138parser[4] = 0;
5139exports.device[558] = parser;
5140parser = Object.create(null);
5141parser[0] = new RegExp("Android[\\- ][\\d]+(?:\\.[\\d]+){1,2}; *\\-?[A-Za-z]{2}; *((?:(?!Build).)+) Build");
5142parser[1] = 0;
5143parser[2] = 0;
5144parser[3] = 0;
5145parser[4] = 0;
5146exports.device[559] = parser;
5147parser = Object.create(null);
5148parser[0] = new RegExp("Android[\\- ][\\d]+(?:\\.[\\d]+){1,2}(?:;.*)?; *((?:(?! Build).)+) Build");
5149parser[1] = 0;
5150parser[2] = 0;
5151parser[3] = 0;
5152parser[4] = 0;
5153exports.device[560] = parser;
5154parser = Object.create(null);
5155parser[0] = new RegExp("(GoogleTV)");
5156parser[1] = 0;
5157parser[2] = 0;
5158parser[3] = 0;
5159parser[4] = 0;
5160exports.device[561] = parser;
5161parser = Object.create(null);
5162parser[0] = new RegExp("(WebTV)/\\d+.\\d+");
5163parser[1] = 0;
5164parser[2] = 0;
5165parser[3] = 0;
5166parser[4] = 0;
5167exports.device[562] = parser;
5168parser = Object.create(null);
5169parser[0] = new RegExp("(Android 3\\.\\d|Opera Tablet|Tablet; .+Firefox/|Android.*(?:Tab|Pad))");
5170parser[1] = "Generic Tablet";
5171parser[2] = 0;
5172parser[3] = 0;
5173parser[4] = 0;
5174exports.device[563] = parser;
5175parser = Object.create(null);
5176parser[0] = new RegExp("(Symbian|\\bS60(Version|V\\d)|\\bS60\\b|\\((Series 60|Windows Mobile|Palm OS|Bada); Opera Mini|Windows CE|Opera Mobi|BREW|Brew|Mobile; .+Firefox/|iPhone OS|Android|MobileSafari|Windows *Phone|\\(webOS/|PalmOS)");
5177parser[1] = "Generic Smartphone";
5178parser[2] = 0;
5179parser[3] = 0;
5180parser[4] = 0;
5181exports.device[564] = parser;
5182parser = Object.create(null);
5183parser[0] = new RegExp("(hiptop|avantgo|plucker|xiino|blazer|elaine)");
5184parser[1] = "Generic Smartphone";
5185parser[2] = 0;
5186parser[3] = 0;
5187parser[4] = 0;
5188exports.device[565] = parser;
5189parser = Object.create(null);
5190parser[0] = new RegExp("(bot|zao|borg|DBot|oegp|silk|Xenu|zeal|^NING|CCBot|crawl|htdig|lycos|slurp|teoma|voila|yahoo|Sogou|CiBra|Nutch|^Java/|^JNLP/|Daumoa|Genieo|ichiro|larbin|pompos|Scrapy|snappy|speedy|spider|msnbot|msrbot|vortex|^vortex|crawler|favicon|indexer|Riddler|scooter|scraper|scrubby|WhatWeb|WinHTTP|bingbot|openbot|gigabot|furlbot|polybot|seekbot|^voyager|archiver|Icarus6j|mogimogi|Netvibes|blitzbot|altavista|charlotte|findlinks|Retreiver|TLSProber|WordPress|SeznamBot|ProoXiBot|wsr\\-agent|Squrl Java|EtaoSpider|PaperLiBot|SputnikBot|A6\\-Indexer|netresearch|searchsight|baiduspider|YisouSpider|ICC\\-Crawler|http%20client|Python-urllib|dataparksearch|converacrawler|Screaming Frog|AppEngine-Google|YahooCacheSystem|fast\\-webcrawler|Sogou Pic Spider|semanticdiscovery|Innovazion Crawler|facebookexternalhit|Google.*/\\+/web/snippet|Google-HTTP-Java-Client|BlogBridge|IlTrovatore-Setaccio|InternetArchive|GomezAgent|WebThumbnail|heritrix|NewsGator|PagePeeker|Reaper|ZooShot|holmes)");
5191parser[1] = "Spider";
5192parser[2] = 0;
5193parser[3] = 0;
5194parser[4] = 0;
5195exports.device[566] = parser;
5196parser = Object.create(null);
5197parser[0] = new RegExp("^(1207|3gso|4thp|501i|502i|503i|504i|505i|506i|6310|6590|770s|802s|a wa|acer|acs\\-|airn|alav|asus|attw|au\\-m|aur |aus |abac|acoo|aiko|alco|alca|amoi|anex|anny|anyw|aptu|arch|argo|bmobile|bell|bird|bw\\-n|bw\\-u|beck|benq|bilb|blac|c55/|cdm\\-|chtm|capi|comp|cond|dall|dbte|dc\\-s|dica|ds\\-d|ds12|dait|devi|dmob|doco|dopo|dorado|el(?:38|39|48|49|50|55|58|68)|el[3456]\\d{2}dual|erk0|esl8|ex300|ez40|ez60|ez70|ezos|ezze|elai|emul|eric|ezwa|fake|fly\\-|fly_|g\\-mo|g1 u|g560|gf\\-5|grun|gene|go.w|good|grad|hcit|hd\\-m|hd\\-p|hd\\-t|hei\\-|hp i|hpip|hs\\-c|htc |htc\\-|htca|htcg)");
5198parser[1] = "Generic Feature Phone";
5199parser[2] = 0;
5200parser[3] = 0;
5201parser[4] = 0;
5202exports.device[567] = parser;
5203parser = Object.create(null);
5204parser[0] = new RegExp("^(htcp|htcs|htct|htc_|haie|hita|huaw|hutc|i\\-20|i\\-go|i\\-ma|i\\-mobile|i230|iac|iac\\-|iac/|ig01|im1k|inno|iris|jata|kddi|kgt|kgt/|kpt |kwc\\-|klon|lexi|lg g|lg\\-a|lg\\-b|lg\\-c|lg\\-d|lg\\-f|lg\\-g|lg\\-k|lg\\-l|lg\\-m|lg\\-o|lg\\-p|lg\\-s|lg\\-t|lg\\-u|lg\\-w|lg/k|lg/l|lg/u|lg50|lg54|lge\\-|lge/|leno|m1\\-w|m3ga|m50/|maui|mc01|mc21|mcca|medi|meri|mio8|mioa|mo01|mo02|mode|modo|mot |mot\\-|mt50|mtp1|mtv |mate|maxo|merc|mits|mobi|motv|mozz|n100|n101|n102|n202|n203|n300|n302|n500|n502|n505|n700|n701|n710|nec\\-|nem\\-|newg|neon)");
5205parser[1] = "Generic Feature Phone";
5206parser[2] = 0;
5207parser[3] = 0;
5208parser[4] = 0;
5209exports.device[568] = parser;
5210parser = Object.create(null);
5211parser[0] = new RegExp("^(netf|noki|nzph|o2 x|o2\\-x|opwv|owg1|opti|oran|ot\\-s|p800|pand|pg\\-1|pg\\-2|pg\\-3|pg\\-6|pg\\-8|pg\\-c|pg13|phil|pn\\-2|pt\\-g|palm|pana|pire|pock|pose|psio|qa\\-a|qc\\-2|qc\\-3|qc\\-5|qc\\-7|qc07|qc12|qc21|qc32|qc60|qci\\-|qwap|qtek|r380|r600|raks|rim9|rove|s55/|sage|sams|sc01|sch\\-|scp\\-|sdk/|se47|sec\\-|sec0|sec1|semc|sgh\\-|shar|sie\\-|sk\\-0|sl45|slid|smb3|smt5|sp01|sph\\-|spv |spv\\-|sy01|samm|sany|sava|scoo|send|siem|smar|smit|soft|sony|t\\-mo|t218|t250|t600|t610|t618|tcl\\-|tdg\\-|telm|tim\\-|ts70|tsm\\-|tsm3|tsm5|tx\\-9|tagt)");
5212parser[1] = "Generic Feature Phone";
5213parser[2] = 0;
5214parser[3] = 0;
5215parser[4] = 0;
5216exports.device[569] = parser;
5217parser = Object.create(null);
5218parser[0] = new RegExp("^(talk|teli|topl|tosh|up.b|upg1|utst|v400|v750|veri|vk\\-v|vk40|vk50|vk52|vk53|vm40|vx98|virg|vertu|vite|voda|vulc|w3c |w3c\\-|wapj|wapp|wapu|wapm|wig |wapi|wapr|wapv|wapy|wapa|waps|wapt|winc|winw|wonu|x700|xda2|xdag|yas\\-|your|zte\\-|zeto|aste|audi|avan|blaz|brew|brvw|bumb|ccwa|cell|cldc|cmd\\-|dang|eml2|fetc|hipt|http|ibro|idea|ikom|ipaq|jbro|jemu|jigs|keji|kyoc|kyok|libw|m\\-cr|midp|mmef|moto|mwbp|mywa|newt|nok6|o2im|pant|pdxg|play|pluc|port|prox|rozo|sama|seri|smal|symb|treo|upsi|vx52|vx53|vx60|vx61|vx70|vx80|vx81|vx83|vx85|wap\\-|webc|whit|wmlb|xda\\-|xda_)");
5219parser[1] = "Generic Feature Phone";
5220parser[2] = 0;
5221parser[3] = 0;
5222parser[4] = 0;
5223exports.device[570] = parser;
5224parser = Object.create(null);
5225parser[0] = new RegExp("^(Ice)$");
5226parser[1] = "Generic Feature Phone";
5227parser[2] = 0;
5228parser[3] = 0;
5229parser[4] = 0;
5230exports.device[571] = parser;
5231parser = Object.create(null);
5232parser[0] = new RegExp("(wap[\\-\\ ]browser|maui|netfront|obigo|teleca|up\\.browser|midp|Opera Mini)");
5233parser[1] = "Generic Feature Phone";
5234parser[2] = 0;
5235parser[3] = 0;
5236parser[4] = 0;
5237exports.device[572] = parser;
5238
5239exports.device.length = 573;
5240
5241exports.os = Object.create(null);
5242
5243parser = Object.create(null);
5244parser[0] = new RegExp("HbbTV/\\d+\\.\\d+\\.\\d+ \\( ;(LG)E ;NetCast 4.0");
5245parser[1] = 0;
5246parser[2] = "2013";
5247parser[3] = 0;
5248parser[4] = 0;
5249exports.os[0] = parser;
5250parser = Object.create(null);
5251parser[0] = new RegExp("HbbTV/\\d+\\.\\d+\\.\\d+ \\( ;(LG)E ;NetCast 3.0");
5252parser[1] = 0;
5253parser[2] = "2012";
5254parser[3] = 0;
5255parser[4] = 0;
5256exports.os[1] = parser;
5257parser = Object.create(null);
5258parser[0] = new RegExp("HbbTV/1.1.1 \\(;;;;;\\) Maple_2011");
5259parser[1] = "Samsung";
5260parser[2] = "2011";
5261parser[3] = 0;
5262parser[4] = 0;
5263exports.os[2] = parser;
5264parser = Object.create(null);
5265parser[0] = new RegExp("HbbTV/\\d+\\.\\d+\\.\\d+ \\(;(Samsung);SmartTV([0-9]{4});.*FXPDEUC");
5266parser[1] = 0;
5267parser[2] = 0;
5268parser[3] = "UE40F7000";
5269parser[4] = 0;
5270exports.os[3] = parser;
5271parser = Object.create(null);
5272parser[0] = new RegExp("HbbTV/\\d+\\.\\d+\\.\\d+ \\(;(Samsung);SmartTV([0-9]{4});.*MST12DEUC");
5273parser[1] = 0;
5274parser[2] = 0;
5275parser[3] = "UE32F4500";
5276parser[4] = 0;
5277exports.os[4] = parser;
5278parser = Object.create(null);
5279parser[0] = new RegExp("HbbTV/1.1.1 \\(; (Philips);.*NETTV/4");
5280parser[1] = 0;
5281parser[2] = "2013";
5282parser[3] = 0;
5283parser[4] = 0;
5284exports.os[5] = parser;
5285parser = Object.create(null);
5286parser[0] = new RegExp("HbbTV/1.1.1 \\(; (Philips);.*NETTV/3");
5287parser[1] = 0;
5288parser[2] = "2012";
5289parser[3] = 0;
5290parser[4] = 0;
5291exports.os[6] = parser;
5292parser = Object.create(null);
5293parser[0] = new RegExp("HbbTV/1.1.1 \\(; (Philips);.*NETTV/2");
5294parser[1] = 0;
5295parser[2] = "2011";
5296parser[3] = 0;
5297parser[4] = 0;
5298exports.os[7] = parser;
5299parser = Object.create(null);
5300parser[0] = new RegExp("HbbTV/\\d+\\.\\d+\\.\\d+.*(firetv)-firefox-plugin (\\d+).(\\d+).(\\d+)");
5301parser[1] = "FireHbbTV";
5302parser[2] = 0;
5303parser[3] = 0;
5304parser[4] = 0;
5305exports.os[8] = parser;
5306parser = Object.create(null);
5307parser[0] = new RegExp("HbbTV/\\d+\\.\\d+\\.\\d+ \\(.*; ?([a-zA-Z]+) ?;.*(201[1-9]).*\\)");
5308parser[1] = 0;
5309parser[2] = 0;
5310parser[3] = 0;
5311parser[4] = 0;
5312exports.os[9] = parser;
5313parser = Object.create(null);
5314parser[0] = new RegExp("(Windows Phone) (?:OS[ /])?(\\d+)\\.(\\d+)");
5315parser[1] = 0;
5316parser[2] = 0;
5317parser[3] = 0;
5318parser[4] = 0;
5319exports.os[10] = parser;
5320parser = Object.create(null);
5321parser[0] = new RegExp("(Android)[ \\-/](\\d+)\\.(\\d+)(?:[.\\-]([a-z0-9]+))?");
5322parser[1] = 0;
5323parser[2] = 0;
5324parser[3] = 0;
5325parser[4] = 0;
5326exports.os[11] = parser;
5327parser = Object.create(null);
5328parser[0] = new RegExp("(Android) Donut");
5329parser[1] = 0;
5330parser[2] = "1";
5331parser[3] = "2";
5332parser[4] = 0;
5333exports.os[12] = parser;
5334parser = Object.create(null);
5335parser[0] = new RegExp("(Android) Eclair");
5336parser[1] = 0;
5337parser[2] = "2";
5338parser[3] = "1";
5339parser[4] = 0;
5340exports.os[13] = parser;
5341parser = Object.create(null);
5342parser[0] = new RegExp("(Android) Froyo");
5343parser[1] = 0;
5344parser[2] = "2";
5345parser[3] = "2";
5346parser[4] = 0;
5347exports.os[14] = parser;
5348parser = Object.create(null);
5349parser[0] = new RegExp("(Android) Gingerbread");
5350parser[1] = 0;
5351parser[2] = "2";
5352parser[3] = "3";
5353parser[4] = 0;
5354exports.os[15] = parser;
5355parser = Object.create(null);
5356parser[0] = new RegExp("(Android) Honeycomb");
5357parser[1] = 0;
5358parser[2] = "3";
5359parser[3] = 0;
5360parser[4] = 0;
5361exports.os[16] = parser;
5362parser = Object.create(null);
5363parser[0] = new RegExp("^UCWEB.*; (Adr) (\\d+)\\.(\\d+)(?:[.\\-]([a-z0-9]+))?;");
5364parser[1] = "Android";
5365parser[2] = 0;
5366parser[3] = 0;
5367parser[4] = 0;
5368exports.os[17] = parser;
5369parser = Object.create(null);
5370parser[0] = new RegExp("^UCWEB.*; (iPad OS|iPh OS) (\\d+)_(\\d+)(?:_(\\d+))?;");
5371parser[1] = "iOS";
5372parser[2] = 0;
5373parser[3] = 0;
5374parser[4] = 0;
5375exports.os[18] = parser;
5376parser = Object.create(null);
5377parser[0] = new RegExp("^UCWEB.*; (wds) (\\d+)\\.(\\d+)(?:\\.(\\d+))?;");
5378parser[1] = "Windows Phone";
5379parser[2] = 0;
5380parser[3] = 0;
5381parser[4] = 0;
5382exports.os[19] = parser;
5383parser = Object.create(null);
5384parser[0] = new RegExp("^(JUC).*; ?U; ?(?:Android)?(\\d+)\\.(\\d+)(?:[\\.\\-]([a-z0-9]+))?");
5385parser[1] = "Android";
5386parser[2] = 0;
5387parser[3] = 0;
5388parser[4] = 0;
5389exports.os[20] = parser;
5390parser = Object.create(null);
5391parser[0] = new RegExp("(Silk-Accelerated=[a-z]{4,5})");
5392parser[1] = "Android";
5393parser[2] = 0;
5394parser[3] = 0;
5395parser[4] = 0;
5396exports.os[21] = parser;
5397parser = Object.create(null);
5398parser[0] = new RegExp("(XBLWP7)");
5399parser[1] = "Windows Phone";
5400parser[2] = 0;
5401parser[3] = 0;
5402parser[4] = 0;
5403exports.os[22] = parser;
5404parser = Object.create(null);
5405parser[0] = new RegExp("(Windows ?Mobile)");
5406parser[1] = "Windows Mobile";
5407parser[2] = 0;
5408parser[3] = 0;
5409parser[4] = 0;
5410exports.os[23] = parser;
5411parser = Object.create(null);
5412parser[0] = new RegExp("(Windows (?:NT 5\\.2|NT 5\\.1))");
5413parser[1] = "Windows XP";
5414parser[2] = 0;
5415parser[3] = 0;
5416parser[4] = 0;
5417exports.os[24] = parser;
5418parser = Object.create(null);
5419parser[0] = new RegExp("(Windows NT 6\\.1)");
5420parser[1] = "Windows 7";
5421parser[2] = 0;
5422parser[3] = 0;
5423parser[4] = 0;
5424exports.os[25] = parser;
5425parser = Object.create(null);
5426parser[0] = new RegExp("(Windows NT 6\\.0)");
5427parser[1] = "Windows Vista";
5428parser[2] = 0;
5429parser[3] = 0;
5430parser[4] = 0;
5431exports.os[26] = parser;
5432parser = Object.create(null);
5433parser[0] = new RegExp("(Win 9x 4\\.90)");
5434parser[1] = "Windows ME";
5435parser[2] = 0;
5436parser[3] = 0;
5437parser[4] = 0;
5438exports.os[27] = parser;
5439parser = Object.create(null);
5440parser[0] = new RegExp("(Windows 98|Windows XP|Windows ME|Windows 95|Windows CE|Windows 7|Windows NT 4\\.0|Windows Vista|Windows 2000|Windows 3.1)");
5441parser[1] = 0;
5442parser[2] = 0;
5443parser[3] = 0;
5444parser[4] = 0;
5445exports.os[28] = parser;
5446parser = Object.create(null);
5447parser[0] = new RegExp("(Windows NT 6\\.2; ARM;)");
5448parser[1] = "Windows RT";
5449parser[2] = 0;
5450parser[3] = 0;
5451parser[4] = 0;
5452exports.os[29] = parser;
5453parser = Object.create(null);
5454parser[0] = new RegExp("(Windows NT 6\\.2)");
5455parser[1] = "Windows 8";
5456parser[2] = 0;
5457parser[3] = 0;
5458parser[4] = 0;
5459exports.os[30] = parser;
5460parser = Object.create(null);
5461parser[0] = new RegExp("(Windows NT 6\\.3; ARM;)");
5462parser[1] = "Windows RT 8.1";
5463parser[2] = 0;
5464parser[3] = 0;
5465parser[4] = 0;
5466exports.os[31] = parser;
5467parser = Object.create(null);
5468parser[0] = new RegExp("(Windows NT 6\\.3)");
5469parser[1] = "Windows 8.1";
5470parser[2] = 0;
5471parser[3] = 0;
5472parser[4] = 0;
5473exports.os[32] = parser;
5474parser = Object.create(null);
5475parser[0] = new RegExp("(Windows NT 6\\.4)");
5476parser[1] = "Windows 10";
5477parser[2] = 0;
5478parser[3] = 0;
5479parser[4] = 0;
5480exports.os[33] = parser;
5481parser = Object.create(null);
5482parser[0] = new RegExp("(Windows NT 10\\.0)");
5483parser[1] = "Windows 10";
5484parser[2] = 0;
5485parser[3] = 0;
5486parser[4] = 0;
5487exports.os[34] = parser;
5488parser = Object.create(null);
5489parser[0] = new RegExp("(Windows NT 5\\.0)");
5490parser[1] = "Windows 2000";
5491parser[2] = 0;
5492parser[3] = 0;
5493parser[4] = 0;
5494exports.os[35] = parser;
5495parser = Object.create(null);
5496parser[0] = new RegExp("(WinNT4.0)");
5497parser[1] = "Windows NT 4.0";
5498parser[2] = 0;
5499parser[3] = 0;
5500parser[4] = 0;
5501exports.os[36] = parser;
5502parser = Object.create(null);
5503parser[0] = new RegExp("(Windows ?CE)");
5504parser[1] = "Windows CE";
5505parser[2] = 0;
5506parser[3] = 0;
5507parser[4] = 0;
5508exports.os[37] = parser;
5509parser = Object.create(null);
5510parser[0] = new RegExp("Win ?(95|98|3.1|NT|ME|2000)");
5511parser[1] = "Windows $1";
5512parser[2] = 0;
5513parser[3] = 0;
5514parser[4] = 0;
5515exports.os[38] = parser;
5516parser = Object.create(null);
5517parser[0] = new RegExp("Win16");
5518parser[1] = "Windows 3.1";
5519parser[2] = 0;
5520parser[3] = 0;
5521parser[4] = 0;
5522exports.os[39] = parser;
5523parser = Object.create(null);
5524parser[0] = new RegExp("Win32");
5525parser[1] = "Windows 95";
5526parser[2] = 0;
5527parser[3] = 0;
5528parser[4] = 0;
5529exports.os[40] = parser;
5530parser = Object.create(null);
5531parser[0] = new RegExp("(Tizen)/(\\d+)\\.(\\d+)");
5532parser[1] = 0;
5533parser[2] = 0;
5534parser[3] = 0;
5535parser[4] = 0;
5536exports.os[41] = parser;
5537parser = Object.create(null);
5538parser[0] = new RegExp("((?:Mac ?|; )OS X)[\\s/](?:(\\d+)[_.](\\d+)(?:[_.](\\d+))?|Mach-O)");
5539parser[1] = "Mac OS X";
5540parser[2] = 0;
5541parser[3] = 0;
5542parser[4] = 0;
5543exports.os[42] = parser;
5544parser = Object.create(null);
5545parser[0] = new RegExp(" (Dar)(win)/(9).(\\d+).*\\((?:i386|x86_64|Power Macintosh)\\)");
5546parser[1] = "Mac OS X";
5547parser[2] = "10";
5548parser[3] = "5";
5549parser[4] = 0;
5550exports.os[43] = parser;
5551parser = Object.create(null);
5552parser[0] = new RegExp(" (Dar)(win)/(10).(\\d+).*\\((?:i386|x86_64)\\)");
5553parser[1] = "Mac OS X";
5554parser[2] = "10";
5555parser[3] = "6";
5556parser[4] = 0;
5557exports.os[44] = parser;
5558parser = Object.create(null);
5559parser[0] = new RegExp(" (Dar)(win)/(11).(\\d+).*\\((?:i386|x86_64)\\)");
5560parser[1] = "Mac OS X";
5561parser[2] = "10";
5562parser[3] = "7";
5563parser[4] = 0;
5564exports.os[45] = parser;
5565parser = Object.create(null);
5566parser[0] = new RegExp(" (Dar)(win)/(12).(\\d+).*\\((?:i386|x86_64)\\)");
5567parser[1] = "Mac OS X";
5568parser[2] = "10";
5569parser[3] = "8";
5570parser[4] = 0;
5571exports.os[46] = parser;
5572parser = Object.create(null);
5573parser[0] = new RegExp(" (Dar)(win)/(13).(\\d+).*\\((?:i386|x86_64)\\)");
5574parser[1] = "Mac OS X";
5575parser[2] = "10";
5576parser[3] = "9";
5577parser[4] = 0;
5578exports.os[47] = parser;
5579parser = Object.create(null);
5580parser[0] = new RegExp("Mac_PowerPC");
5581parser[1] = "Mac OS";
5582parser[2] = 0;
5583parser[3] = 0;
5584parser[4] = 0;
5585exports.os[48] = parser;
5586parser = Object.create(null);
5587parser[0] = new RegExp("(?:PPC|Intel) (Mac OS X)");
5588parser[1] = 0;
5589parser[2] = 0;
5590parser[3] = 0;
5591parser[4] = 0;
5592exports.os[49] = parser;
5593parser = Object.create(null);
5594parser[0] = new RegExp("(Apple\\s?TV)(?:/(\\d+)\\.(\\d+))?");
5595parser[1] = "ATV OS X";
5596parser[2] = 0;
5597parser[3] = 0;
5598parser[4] = 0;
5599exports.os[50] = parser;
5600parser = Object.create(null);
5601parser[0] = new RegExp("(CPU OS|iPhone OS|CPU iPhone) +(\\d+)[_\\.](\\d+)(?:[_\\.](\\d+))?");
5602parser[1] = "iOS";
5603parser[2] = 0;
5604parser[3] = 0;
5605parser[4] = 0;
5606exports.os[51] = parser;
5607parser = Object.create(null);
5608parser[0] = new RegExp("(iPhone|iPad|iPod); Opera");
5609parser[1] = "iOS";
5610parser[2] = 0;
5611parser[3] = 0;
5612parser[4] = 0;
5613exports.os[52] = parser;
5614parser = Object.create(null);
5615parser[0] = new RegExp("(iPhone|iPad|iPod).*Mac OS X.*Version/(\\d+)\\.(\\d+)");
5616parser[1] = "iOS";
5617parser[2] = 0;
5618parser[3] = 0;
5619parser[4] = 0;
5620exports.os[53] = parser;
5621parser = Object.create(null);
5622parser[0] = new RegExp("(CFNetwork)/(5)48\\.0\\.3.* Darwin/11\\.0\\.0");
5623parser[1] = "iOS";
5624parser[2] = 0;
5625parser[3] = 0;
5626parser[4] = 0;
5627exports.os[54] = parser;
5628parser = Object.create(null);
5629parser[0] = new RegExp("(CFNetwork)/(5)48\\.(0)\\.4.* Darwin/(1)1\\.0\\.0");
5630parser[1] = "iOS";
5631parser[2] = 0;
5632parser[3] = 0;
5633parser[4] = 0;
5634exports.os[55] = parser;
5635parser = Object.create(null);
5636parser[0] = new RegExp("(CFNetwork)/(5)48\\.(1)\\.4");
5637parser[1] = "iOS";
5638parser[2] = 0;
5639parser[3] = 0;
5640parser[4] = 0;
5641exports.os[56] = parser;
5642parser = Object.create(null);
5643parser[0] = new RegExp("(CFNetwork)/(4)85\\.1(3)\\.9");
5644parser[1] = "iOS";
5645parser[2] = 0;
5646parser[3] = 0;
5647parser[4] = 0;
5648exports.os[57] = parser;
5649parser = Object.create(null);
5650parser[0] = new RegExp("(CFNetwork)/(6)09\\.(1)\\.4");
5651parser[1] = "iOS";
5652parser[2] = 0;
5653parser[3] = 0;
5654parser[4] = 0;
5655exports.os[58] = parser;
5656parser = Object.create(null);
5657parser[0] = new RegExp("(CFNetwork)/(6)(0)9");
5658parser[1] = "iOS";
5659parser[2] = 0;
5660parser[3] = 0;
5661parser[4] = 0;
5662exports.os[59] = parser;
5663parser = Object.create(null);
5664parser[0] = new RegExp("(CFNetwork)/6(7)2\\.(1)\\.13");
5665parser[1] = "iOS";
5666parser[2] = 0;
5667parser[3] = 0;
5668parser[4] = 0;
5669exports.os[60] = parser;
5670parser = Object.create(null);
5671parser[0] = new RegExp("(CFNetwork)/6(7)2\\.(1)\\.(1)4");
5672parser[1] = "iOS";
5673parser[2] = 0;
5674parser[3] = 0;
5675parser[4] = 0;
5676exports.os[61] = parser;
5677parser = Object.create(null);
5678parser[0] = new RegExp("(CF)(Network)/6(7)(2)\\.1\\.15");
5679parser[1] = "iOS";
5680parser[2] = "7";
5681parser[3] = "1";
5682parser[4] = 0;
5683exports.os[62] = parser;
5684parser = Object.create(null);
5685parser[0] = new RegExp("(CFNetwork)/6(7)2\\.(0)\\.(?:2|8)");
5686parser[1] = "iOS";
5687parser[2] = 0;
5688parser[3] = 0;
5689parser[4] = 0;
5690exports.os[63] = parser;
5691parser = Object.create(null);
5692parser[0] = new RegExp("(CFNetwork)/709\\.1");
5693parser[1] = "iOS";
5694parser[2] = "8";
5695parser[3] = "0.b5";
5696parser[4] = 0;
5697exports.os[64] = parser;
5698parser = Object.create(null);
5699parser[0] = new RegExp("(CF)(Network)/711\\.(\\d)");
5700parser[1] = "iOS";
5701parser[2] = "8";
5702parser[3] = 0;
5703parser[4] = 0;
5704exports.os[65] = parser;
5705parser = Object.create(null);
5706parser[0] = new RegExp("(CF)(Network)/(720)\\.(\\d)");
5707parser[1] = "Mac OS X";
5708parser[2] = "10";
5709parser[3] = "10";
5710parser[4] = 0;
5711exports.os[66] = parser;
5712parser = Object.create(null);
5713parser[0] = new RegExp("CFNetwork/.* Darwin/(9)\\.\\d+");
5714parser[1] = "iOS";
5715parser[2] = "1";
5716parser[3] = 0;
5717parser[4] = 0;
5718exports.os[67] = parser;
5719parser = Object.create(null);
5720parser[0] = new RegExp("CFNetwork/.* Darwin/(10)\\.\\d+");
5721parser[1] = "iOS";
5722parser[2] = "4";
5723parser[3] = 0;
5724parser[4] = 0;
5725exports.os[68] = parser;
5726parser = Object.create(null);
5727parser[0] = new RegExp("CFNetwork/.* Darwin/(11)\\.\\d+");
5728parser[1] = "iOS";
5729parser[2] = "5";
5730parser[3] = 0;
5731parser[4] = 0;
5732exports.os[69] = parser;
5733parser = Object.create(null);
5734parser[0] = new RegExp("CFNetwork/.* Darwin/(13)\\.\\d+");
5735parser[1] = "iOS";
5736parser[2] = "6";
5737parser[3] = 0;
5738parser[4] = 0;
5739exports.os[70] = parser;
5740parser = Object.create(null);
5741parser[0] = new RegExp("CFNetwork/6.* Darwin/(14)\\.\\d+");
5742parser[1] = "iOS";
5743parser[2] = "7";
5744parser[3] = 0;
5745parser[4] = 0;
5746exports.os[71] = parser;
5747parser = Object.create(null);
5748parser[0] = new RegExp("CFNetwork/7.* Darwin/(14)\\.\\d+");
5749parser[1] = "iOS";
5750parser[2] = "8";
5751parser[3] = "0";
5752parser[4] = 0;
5753exports.os[72] = parser;
5754parser = Object.create(null);
5755parser[0] = new RegExp("\\b(iOS[ /]|iPhone(?:/| v|[ _]OS[/,]|; | OS : |\\d,\\d/|\\d,\\d; )|iPad/)(\\d{1,2})[_\\.](\\d{1,2})(?:[_\\.](\\d+))?");
5756parser[1] = "iOS";
5757parser[2] = 0;
5758parser[3] = 0;
5759parser[4] = 0;
5760exports.os[73] = parser;
5761parser = Object.create(null);
5762parser[0] = new RegExp("(CrOS) [a-z0-9_]+ (\\d+)\\.(\\d+)(?:\\.(\\d+))?");
5763parser[1] = "Chrome OS";
5764parser[2] = 0;
5765parser[3] = 0;
5766parser[4] = 0;
5767exports.os[74] = parser;
5768parser = Object.create(null);
5769parser[0] = new RegExp("([Dd]ebian)");
5770parser[1] = "Debian";
5771parser[2] = 0;
5772parser[3] = 0;
5773parser[4] = 0;
5774exports.os[75] = parser;
5775parser = Object.create(null);
5776parser[0] = new RegExp("(Linux Mint)(?:/(\\d+))?");
5777parser[1] = 0;
5778parser[2] = 0;
5779parser[3] = 0;
5780parser[4] = 0;
5781exports.os[76] = parser;
5782parser = Object.create(null);
5783parser[0] = new RegExp("(Mandriva)(?: Linux)?/(?:[\\d.-]+m[a-z]{2}(\\d+).(\\d))?");
5784parser[1] = 0;
5785parser[2] = 0;
5786parser[3] = 0;
5787parser[4] = 0;
5788exports.os[77] = parser;
5789parser = Object.create(null);
5790parser[0] = new RegExp("(Symbian[Oo][Ss])[/ ](\\d+)\\.(\\d+)");
5791parser[1] = "Symbian OS";
5792parser[2] = 0;
5793parser[3] = 0;
5794parser[4] = 0;
5795exports.os[78] = parser;
5796parser = Object.create(null);
5797parser[0] = new RegExp("(Symbian/3).+NokiaBrowser/7\\.3");
5798parser[1] = "Symbian^3 Anna";
5799parser[2] = 0;
5800parser[3] = 0;
5801parser[4] = 0;
5802exports.os[79] = parser;
5803parser = Object.create(null);
5804parser[0] = new RegExp("(Symbian/3).+NokiaBrowser/7\\.4");
5805parser[1] = "Symbian^3 Belle";
5806parser[2] = 0;
5807parser[3] = 0;
5808parser[4] = 0;
5809exports.os[80] = parser;
5810parser = Object.create(null);
5811parser[0] = new RegExp("(Symbian/3)");
5812parser[1] = "Symbian^3";
5813parser[2] = 0;
5814parser[3] = 0;
5815parser[4] = 0;
5816exports.os[81] = parser;
5817parser = Object.create(null);
5818parser[0] = new RegExp("\\b(Series 60|SymbOS|S60Version|S60V\\d|S60\\b)");
5819parser[1] = "Symbian OS";
5820parser[2] = 0;
5821parser[3] = 0;
5822parser[4] = 0;
5823exports.os[82] = parser;
5824parser = Object.create(null);
5825parser[0] = new RegExp("(MeeGo)");
5826parser[1] = 0;
5827parser[2] = 0;
5828parser[3] = 0;
5829parser[4] = 0;
5830exports.os[83] = parser;
5831parser = Object.create(null);
5832parser[0] = new RegExp("Symbian [Oo][Ss]");
5833parser[1] = "Symbian OS";
5834parser[2] = 0;
5835parser[3] = 0;
5836parser[4] = 0;
5837exports.os[84] = parser;
5838parser = Object.create(null);
5839parser[0] = new RegExp("Series40;");
5840parser[1] = "Nokia Series 40";
5841parser[2] = 0;
5842parser[3] = 0;
5843parser[4] = 0;
5844exports.os[85] = parser;
5845parser = Object.create(null);
5846parser[0] = new RegExp("Series30Plus;");
5847parser[1] = "Nokia Series 30 Plus";
5848parser[2] = 0;
5849parser[3] = 0;
5850parser[4] = 0;
5851exports.os[86] = parser;
5852parser = Object.create(null);
5853parser[0] = new RegExp("(BB10);.+Version/(\\d+)\\.(\\d+)\\.(\\d+)");
5854parser[1] = "BlackBerry OS";
5855parser[2] = 0;
5856parser[3] = 0;
5857parser[4] = 0;
5858exports.os[87] = parser;
5859parser = Object.create(null);
5860parser[0] = new RegExp("(Black[Bb]erry)[0-9a-z]+/(\\d+)\\.(\\d+)\\.(\\d+)(?:\\.(\\d+))?");
5861parser[1] = "BlackBerry OS";
5862parser[2] = 0;
5863parser[3] = 0;
5864parser[4] = 0;
5865exports.os[88] = parser;
5866parser = Object.create(null);
5867parser[0] = new RegExp("(Black[Bb]erry).+Version/(\\d+)\\.(\\d+)\\.(\\d+)(?:\\.(\\d+))?");
5868parser[1] = "BlackBerry OS";
5869parser[2] = 0;
5870parser[3] = 0;
5871parser[4] = 0;
5872exports.os[89] = parser;
5873parser = Object.create(null);
5874parser[0] = new RegExp("(RIM Tablet OS) (\\d+)\\.(\\d+)\\.(\\d+)");
5875parser[1] = "BlackBerry Tablet OS";
5876parser[2] = 0;
5877parser[3] = 0;
5878parser[4] = 0;
5879exports.os[90] = parser;
5880parser = Object.create(null);
5881parser[0] = new RegExp("(Play[Bb]ook)");
5882parser[1] = "BlackBerry Tablet OS";
5883parser[2] = 0;
5884parser[3] = 0;
5885parser[4] = 0;
5886exports.os[91] = parser;
5887parser = Object.create(null);
5888parser[0] = new RegExp("(Black[Bb]erry)");
5889parser[1] = "BlackBerry OS";
5890parser[2] = 0;
5891parser[3] = 0;
5892parser[4] = 0;
5893exports.os[92] = parser;
5894parser = Object.create(null);
5895parser[0] = new RegExp("\\((?:Mobile|Tablet);.+Firefox/\\d+\\.\\d+");
5896parser[1] = "Firefox OS";
5897parser[2] = 0;
5898parser[3] = 0;
5899parser[4] = 0;
5900exports.os[93] = parser;
5901parser = Object.create(null);
5902parser[0] = new RegExp("(BREW)[ /](\\d+)\\.(\\d+)\\.(\\d+)");
5903parser[1] = 0;
5904parser[2] = 0;
5905parser[3] = 0;
5906parser[4] = 0;
5907exports.os[94] = parser;
5908parser = Object.create(null);
5909parser[0] = new RegExp("(BREW);");
5910parser[1] = 0;
5911parser[2] = 0;
5912parser[3] = 0;
5913parser[4] = 0;
5914exports.os[95] = parser;
5915parser = Object.create(null);
5916parser[0] = new RegExp("(Brew MP|BMP)[ /](\\d+)\\.(\\d+)\\.(\\d+)");
5917parser[1] = "Brew MP";
5918parser[2] = 0;
5919parser[3] = 0;
5920parser[4] = 0;
5921exports.os[96] = parser;
5922parser = Object.create(null);
5923parser[0] = new RegExp("BMP;");
5924parser[1] = "Brew MP";
5925parser[2] = 0;
5926parser[3] = 0;
5927parser[4] = 0;
5928exports.os[97] = parser;
5929parser = Object.create(null);
5930parser[0] = new RegExp("(GoogleTV)(?: (\\d+)\\.(\\d+)(?:\\.(\\d+))?|/[\\da-z]+)");
5931parser[1] = 0;
5932parser[2] = 0;
5933parser[3] = 0;
5934parser[4] = 0;
5935exports.os[98] = parser;
5936parser = Object.create(null);
5937parser[0] = new RegExp("(WebTV)/(\\d+).(\\d+)");
5938parser[1] = 0;
5939parser[2] = 0;
5940parser[3] = 0;
5941parser[4] = 0;
5942exports.os[99] = parser;
5943parser = Object.create(null);
5944parser[0] = new RegExp("(hpw|web)OS/(\\d+)\\.(\\d+)(?:\\.(\\d+))?");
5945parser[1] = "webOS";
5946parser[2] = 0;
5947parser[3] = 0;
5948parser[4] = 0;
5949exports.os[100] = parser;
5950parser = Object.create(null);
5951parser[0] = new RegExp("(VRE);");
5952parser[1] = 0;
5953parser[2] = 0;
5954parser[3] = 0;
5955parser[4] = 0;
5956exports.os[101] = parser;
5957parser = Object.create(null);
5958parser[0] = new RegExp("(Fedora|Red Hat|PCLinuxOS|Puppy|Ubuntu|Kindle|Bada|Lubuntu|BackTrack|Slackware|(?:Free|Open|Net|\\b)BSD)[/ ](\\d+)\\.(\\d+)(?:\\.(\\d+)(?:\\.(\\d+))?)?");
5959parser[1] = 0;
5960parser[2] = 0;
5961parser[3] = 0;
5962parser[4] = 0;
5963exports.os[102] = parser;
5964parser = Object.create(null);
5965parser[0] = new RegExp("(Linux)[ /](\\d+)\\.(\\d+)(?:\\.(\\d+))?.*gentoo");
5966parser[1] = "Gentoo";
5967parser[2] = 0;
5968parser[3] = 0;
5969parser[4] = 0;
5970exports.os[103] = parser;
5971parser = Object.create(null);
5972parser[0] = new RegExp("\\((Bada);");
5973parser[1] = 0;
5974parser[2] = 0;
5975parser[3] = 0;
5976parser[4] = 0;
5977exports.os[104] = parser;
5978parser = Object.create(null);
5979parser[0] = new RegExp("(Windows|Android|WeTab|Maemo)");
5980parser[1] = 0;
5981parser[2] = 0;
5982parser[3] = 0;
5983parser[4] = 0;
5984exports.os[105] = parser;
5985parser = Object.create(null);
5986parser[0] = new RegExp("(Ubuntu|Kubuntu|Arch Linux|CentOS|Slackware|Gentoo|openSUSE|SUSE|Red Hat|Fedora|PCLinuxOS|Gentoo|Mageia|(?:Free|Open|Net|\\b)BSD)");
5987parser[1] = 0;
5988parser[2] = 0;
5989parser[3] = 0;
5990parser[4] = 0;
5991exports.os[106] = parser;
5992parser = Object.create(null);
5993parser[0] = new RegExp("(Linux)(?:[ /](\\d+)\\.(\\d+)(?:\\.(\\d+))?)?");
5994parser[1] = 0;
5995parser[2] = 0;
5996parser[3] = 0;
5997parser[4] = 0;
5998exports.os[107] = parser;
5999parser = Object.create(null);
6000parser[0] = new RegExp("SunOS");
6001parser[1] = "Solaris";
6002parser[2] = 0;
6003parser[3] = 0;
6004parser[4] = 0;
6005exports.os[108] = parser;
6006parser = Object.create(null);
6007parser[0] = new RegExp("(iOS) (\\d+)\\.(\\d+)(?:\\.(\\d+))?");
6008parser[1] = 0;
6009parser[2] = 0;
6010parser[3] = 0;
6011parser[4] = 0;
6012exports.os[109] = parser;
6013
6014exports.os.length = 110;
\No newline at end of file