summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSammy Kaye Powers <sammyk@sammykmedia.com>2017-01-03 08:01:05 -0600
committerSammy Kaye Powers <sammyk@sammykmedia.com>2017-01-03 08:01:05 -0600
commit1e3624290ab30291765feca1502e8cf3aa773314 (patch)
tree3969ef3a1cd4d8270d050b04b81143166d699224
parent9e29f841ce3711488781be958ffdfc42d738de4a (diff)
parentf0031ed15156e7a07983aba7a9a3155c3eb31252 (diff)
downloadphp-git-1e3624290ab30291765feca1502e8cf3aa773314.tar.gz
Resolve conflict
-rw-r--r--.appveyor.yml11
-rw-r--r--UPGRADING1
-rw-r--r--Zend/zend_hash.c2
-rw-r--r--Zend/zend_language_scanner.c8023
-rw-r--r--Zend/zend_language_scanner_defs.h2
-rw-r--r--Zend/zend_portability.h2
-rw-r--r--appveyor/build_task.bat2
-rw-r--r--configure.in4
-rw-r--r--ext/exif/exif.c2
-rw-r--r--ext/exif/tests/bug73737.phpt12
-rw-r--r--ext/exif/tests/bug73737.tiffbin0 -> 48 bytes
-rw-r--r--ext/mysqli/mysqli_nonapi.c4
-rw-r--r--ext/mysqli/tests/bug73462.phpt41
-rw-r--r--ext/mysqlnd/mysqlnd_wireprotocol.c4
-rw-r--r--ext/opcache/tests/basic_logging.phpt1
-rw-r--r--ext/opcache/tests/issue0115.phpt16
-rw-r--r--ext/opcache/tests/issue0149.phpt4
-rw-r--r--ext/opcache/tests/log_verbosity_bug.phpt1
-rw-r--r--ext/phar/phar.c7
-rw-r--r--ext/phar/tests/bug73764.pharbin0 -> 138 bytes
-rw-r--r--ext/phar/tests/bug73764.phpt16
-rw-r--r--ext/phar/tests/bug73768.pharbin0 -> 219 bytes
-rw-r--r--ext/phar/tests/bug73768.phpt16
-rw-r--r--ext/standard/browscap.c550
-rw-r--r--ext/standard/crypt.c8
-rw-r--r--ext/standard/pack.c214
-rw-r--r--ext/standard/php_crypt_r.c2
-rw-r--r--ext/standard/tests/misc/browscap_lite_2016_12_06.ini11018
-rw-r--r--ext/standard/tests/misc/get_browser_variation3.phpt2238
-rw-r--r--ext/standard/tests/misc/user_agents.txt1112
-rw-r--r--ext/standard/tests/serialize/bug73825.phpt12
-rw-r--r--ext/standard/tests/strings/pack_float.phpt312
-rw-r--r--ext/standard/tests/strings/unpack_error.phpt4
-rw-r--r--ext/standard/var_unserializer.c1441
-rw-r--r--ext/standard/var_unserializer.re22
-rw-r--r--ext/sysvsem/tests/nowait.phpt6
-rw-r--r--ext/wddx/tests/bug73831.phpt23
-rw-r--r--ext/wddx/wddx.c36
-rw-r--r--main/explicit_bzero.c43
-rw-r--r--main/php.h8
-rw-r--r--main/strlcat.c37
-rw-r--r--main/strlcpy.c28
42 files changed, 19671 insertions, 5614 deletions
diff --git a/.appveyor.yml b/.appveyor.yml
index ba0d1c132d..2c5b13239f 100644
--- a/.appveyor.yml
+++ b/.appveyor.yml
@@ -3,6 +3,17 @@ version: "{branch}.build.{build}"
image: Visual Studio 2015
+branches:
+ except:
+ - PHP-5.6
+ - PHP-7.0
+
+skip_commits:
+ files:
+ - NEWS
+ - UPGRADING*
+ - README.*
+
clone_depth: 64
cache:
diff --git a/UPGRADING b/UPGRADING
index 0b291ebf72..fc573565ee 100644
--- a/UPGRADING
+++ b/UPGRADING
@@ -112,6 +112,7 @@ PHP 7.2 UPGRADE NOTES
];
. count() now raises a warning when an invalid parameter is passed.
Only arrays and objects implementing the Countable interface should be passed.
+ . pack() and unpack() now support float and double in both little and big endian.
- XML:
. utf8_encode() and utf8_decode() have been moved to the Standard extension
diff --git a/Zend/zend_hash.c b/Zend/zend_hash.c
index f6602d2d1a..64668c73a8 100644
--- a/Zend/zend_hash.c
+++ b/Zend/zend_hash.c
@@ -173,7 +173,6 @@ ZEND_API void ZEND_FASTCALL _zend_hash_init(HashTable *ht, uint32_t nSize, dtor_
GC_REFCOUNT(ht) = 1;
GC_TYPE_INFO(ht) = IS_ARRAY | (persistent ? 0 : (GC_COLLECTABLE << GC_FLAGS_SHIFT));
ht->u.flags = (persistent ? HASH_FLAG_PERSISTENT : 0) | HASH_FLAG_APPLY_PROTECTION | HASH_FLAG_STATIC_KEYS;
- ht->nTableSize = zend_hash_check_size(nSize);
ht->nTableMask = HT_MIN_MASK;
HT_SET_DATA_ADDR(ht, &uninitialized_bucket);
ht->nNumUsed = 0;
@@ -181,6 +180,7 @@ ZEND_API void ZEND_FASTCALL _zend_hash_init(HashTable *ht, uint32_t nSize, dtor_
ht->nInternalPointer = HT_INVALID_IDX;
ht->nNextFreeElement = 0;
ht->pDestructor = pDestructor;
+ ht->nTableSize = zend_hash_check_size(nSize);
}
static void ZEND_FASTCALL zend_hash_packed_grow(HashTable *ht)
diff --git a/Zend/zend_language_scanner.c b/Zend/zend_language_scanner.c
index 52583560da..afc3da52dd 100644
--- a/Zend/zend_language_scanner.c
+++ b/Zend/zend_language_scanner.c
@@ -1,4 +1,4 @@
-/* Generated by re2c 0.13.5 */
+/* Generated by re2c 0.16 */
#line 1 "Zend/zend_language_scanner.l"
/*
+----------------------------------------------------------------------+
@@ -1151,16 +1151,14 @@ restart:
}
/* *********************************** */
yyc_INITIAL:
-
- YYDEBUG(0, *YYCURSOR);
+ YYDEBUG(1, *YYCURSOR);
YYFILL(7);
yych = *YYCURSOR;
- if (yych != '<') goto yy4;
- YYDEBUG(2, *YYCURSOR);
- ++YYCURSOR;
- if ((yych = *YYCURSOR) == '?') goto yy5;
-yy3:
+ if (yych == '<') goto yy5;
YYDEBUG(3, *YYCURSOR);
+ ++YYCURSOR;
+yy4:
+ YYDEBUG(4, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
#line 1804 "Zend/zend_language_scanner.l"
{
@@ -1207,23 +1205,21 @@ inline_char_handler:
HANDLE_NEWLINES(yytext, yyleng);
RETURN_TOKEN(T_INLINE_HTML);
}
-#line 1211 "Zend/zend_language_scanner.c"
-yy4:
- YYDEBUG(4, *YYCURSOR);
- yych = *++YYCURSOR;
- goto yy3;
+#line 1209 "Zend/zend_language_scanner.c"
yy5:
YYDEBUG(5, *YYCURSOR);
- yyaccept = 0;
+ yych = *++YYCURSOR;
+ if (yych != '?') goto yy4;
+ YYDEBUG(6, *YYCURSOR);
yych = *(YYMARKER = ++YYCURSOR);
if (yych <= 'O') {
- if (yych == '=') goto yy7;
+ if (yych == '=') goto yy8;
} else {
- if (yych <= 'P') goto yy9;
- if (yych == 'p') goto yy9;
+ if (yych <= 'P') goto yy10;
+ if (yych == 'p') goto yy10;
}
-yy6:
- YYDEBUG(6, *YYCURSOR);
+yy7:
+ YYDEBUG(7, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
#line 1795 "Zend/zend_language_scanner.l"
{
@@ -1234,47 +1230,47 @@ yy6:
goto inline_char_handler;
}
}
-#line 1238 "Zend/zend_language_scanner.c"
-yy7:
- YYDEBUG(7, *YYCURSOR);
- ++YYCURSOR;
+#line 1234 "Zend/zend_language_scanner.c"
+yy8:
YYDEBUG(8, *YYCURSOR);
+ ++YYCURSOR;
+ YYDEBUG(9, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
#line 1782 "Zend/zend_language_scanner.l"
{
BEGIN(ST_IN_SCRIPTING);
RETURN_TOKEN(T_OPEN_TAG_WITH_ECHO);
}
-#line 1249 "Zend/zend_language_scanner.c"
-yy9:
- YYDEBUG(9, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych == 'H') goto yy11;
- if (yych == 'h') goto yy11;
+#line 1245 "Zend/zend_language_scanner.c"
yy10:
YYDEBUG(10, *YYCURSOR);
- YYCURSOR = YYMARKER;
- goto yy6;
+ yych = *++YYCURSOR;
+ if (yych == 'H') goto yy12;
+ if (yych == 'h') goto yy12;
yy11:
YYDEBUG(11, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych == 'P') goto yy12;
- if (yych != 'p') goto yy10;
+ YYCURSOR = YYMARKER;
+ goto yy7;
yy12:
YYDEBUG(12, *YYCURSOR);
yych = *++YYCURSOR;
+ if (yych == 'P') goto yy13;
+ if (yych != 'p') goto yy11;
+yy13:
+ YYDEBUG(13, *YYCURSOR);
+ yych = *++YYCURSOR;
if (yych <= '\f') {
- if (yych <= 0x08) goto yy10;
- if (yych >= '\v') goto yy10;
+ if (yych <= 0x08) goto yy11;
+ if (yych >= '\v') goto yy11;
} else {
- if (yych <= '\r') goto yy15;
- if (yych != ' ') goto yy10;
+ if (yych <= '\r') goto yy16;
+ if (yych != ' ') goto yy11;
}
-yy13:
- YYDEBUG(13, *YYCURSOR);
- ++YYCURSOR;
yy14:
YYDEBUG(14, *YYCURSOR);
+ ++YYCURSOR;
+yy15:
+ YYDEBUG(15, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
#line 1788 "Zend/zend_language_scanner.l"
{
@@ -1282,12 +1278,12 @@ yy14:
BEGIN(ST_IN_SCRIPTING);
RETURN_TOKEN(T_OPEN_TAG);
}
-#line 1286 "Zend/zend_language_scanner.c"
-yy15:
- YYDEBUG(15, *YYCURSOR);
+#line 1282 "Zend/zend_language_scanner.c"
+yy16:
+ YYDEBUG(16, *YYCURSOR);
++YYCURSOR;
- if ((yych = *YYCURSOR) == '\n') goto yy13;
- goto yy14;
+ if ((yych = *YYCURSOR) == '\n') goto yy14;
+ goto yy15;
/* *********************************** */
yyc_ST_BACKQUOTE:
{
@@ -1325,32 +1321,19 @@ yyc_ST_BACKQUOTE:
128, 128, 128, 128, 128, 128, 128, 128,
128, 128, 128, 128, 128, 128, 128, 128,
};
- YYDEBUG(16, *YYCURSOR);
+ YYDEBUG(17, *YYCURSOR);
YYFILL(2);
yych = *YYCURSOR;
if (yych <= '_') {
- if (yych != '$') goto yy23;
+ if (yych == '$') goto yy21;
} else {
- if (yych <= '`') goto yy21;
- if (yych == '{') goto yy20;
- goto yy23;
+ if (yych <= '`') goto yy22;
+ if (yych == '{') goto yy24;
}
- YYDEBUG(18, *YYCURSOR);
- ++YYCURSOR;
- if ((yych = *YYCURSOR) <= '_') {
- if (yych <= '@') goto yy19;
- if (yych <= 'Z') goto yy26;
- if (yych >= '_') goto yy26;
- } else {
- if (yych <= 'z') {
- if (yych >= 'a') goto yy26;
- } else {
- if (yych <= '{') goto yy29;
- if (yych >= 0x80) goto yy26;
- }
- }
-yy19:
YYDEBUG(19, *YYCURSOR);
+ ++YYCURSOR;
+yy20:
+ YYDEBUG(20, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
#line 2214 "Zend/zend_language_scanner.l"
{
@@ -1393,84 +1376,98 @@ yy19:
zend_scan_escape_string(zendlval, yytext, yyleng, '`');
RETURN_TOKEN(T_ENCAPSED_AND_WHITESPACE);
}
-#line 1397 "Zend/zend_language_scanner.c"
-yy20:
- YYDEBUG(20, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych == '$') goto yy24;
- goto yy19;
+#line 1380 "Zend/zend_language_scanner.c"
yy21:
YYDEBUG(21, *YYCURSOR);
- ++YYCURSOR;
+ yych = *++YYCURSOR;
+ if (yych <= '_') {
+ if (yych <= '@') goto yy20;
+ if (yych <= 'Z') goto yy25;
+ if (yych <= '^') goto yy20;
+ goto yy25;
+ } else {
+ if (yych <= 'z') {
+ if (yych <= '`') goto yy20;
+ goto yy25;
+ } else {
+ if (yych <= '{') goto yy28;
+ if (yych <= 0x7F) goto yy20;
+ goto yy25;
+ }
+ }
+yy22:
YYDEBUG(22, *YYCURSOR);
+ ++YYCURSOR;
+ YYDEBUG(23, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
#line 2158 "Zend/zend_language_scanner.l"
{
BEGIN(ST_IN_SCRIPTING);
RETURN_TOKEN('`');
}
-#line 1413 "Zend/zend_language_scanner.c"
-yy23:
- YYDEBUG(23, *YYCURSOR);
- yych = *++YYCURSOR;
- goto yy19;
+#line 1409 "Zend/zend_language_scanner.c"
yy24:
YYDEBUG(24, *YYCURSOR);
- ++YYCURSOR;
+ yych = *++YYCURSOR;
+ if (yych == '$') goto yy30;
+ goto yy20;
+yy25:
YYDEBUG(25, *YYCURSOR);
- yyleng = YYCURSOR - SCNG(yy_text);
-#line 2145 "Zend/zend_language_scanner.l"
- {
- Z_LVAL_P(zendlval) = (zend_long) '{';
- yy_push_state(ST_IN_SCRIPTING);
- yyless(1);
- RETURN_TOKEN(T_CURLY_OPEN);
-}
-#line 1430 "Zend/zend_language_scanner.c"
-yy26:
- YYDEBUG(26, *YYCURSOR);
- yyaccept = 0;
YYMARKER = ++YYCURSOR;
YYFILL(3);
yych = *YYCURSOR;
- YYDEBUG(27, *YYCURSOR);
+ YYDEBUG(26, *YYCURSOR);
if (yybm[0+yych] & 128) {
- goto yy26;
+ goto yy25;
}
- if (yych == '-') goto yy31;
- if (yych == '[') goto yy33;
-yy28:
- YYDEBUG(28, *YYCURSOR);
+ if (yych == '-') goto yy32;
+ if (yych <= '@') goto yy27;
+ if (yych <= '[') goto yy34;
+yy27:
+ YYDEBUG(27, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
#line 1869 "Zend/zend_language_scanner.l"
{
zend_copy_value(zendlval, (yytext+1), (yyleng-1));
RETURN_TOKEN(T_VARIABLE);
}
-#line 1451 "Zend/zend_language_scanner.c"
-yy29:
- YYDEBUG(29, *YYCURSOR);
+#line 1435 "Zend/zend_language_scanner.c"
+yy28:
+ YYDEBUG(28, *YYCURSOR);
++YYCURSOR;
- YYDEBUG(30, *YYCURSOR);
+ YYDEBUG(29, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
#line 1587 "Zend/zend_language_scanner.l"
{
yy_push_state(ST_LOOKING_FOR_VARNAME);
RETURN_TOKEN(T_DOLLAR_OPEN_CURLY_BRACES);
}
-#line 1462 "Zend/zend_language_scanner.c"
-yy31:
+#line 1446 "Zend/zend_language_scanner.c"
+yy30:
+ YYDEBUG(30, *YYCURSOR);
+ ++YYCURSOR;
YYDEBUG(31, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych == '>') goto yy35;
+ yyleng = YYCURSOR - SCNG(yy_text);
+#line 2145 "Zend/zend_language_scanner.l"
+ {
+ Z_LVAL_P(zendlval) = (zend_long) '{';
+ yy_push_state(ST_IN_SCRIPTING);
+ yyless(1);
+ RETURN_TOKEN(T_CURLY_OPEN);
+}
+#line 1459 "Zend/zend_language_scanner.c"
yy32:
YYDEBUG(32, *YYCURSOR);
- YYCURSOR = YYMARKER;
- goto yy28;
+ yych = *++YYCURSOR;
+ if (yych == '>') goto yy36;
yy33:
YYDEBUG(33, *YYCURSOR);
- ++YYCURSOR;
+ YYCURSOR = YYMARKER;
+ goto yy27;
+yy34:
YYDEBUG(34, *YYCURSOR);
+ ++YYCURSOR;
+ YYDEBUG(35, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
#line 1862 "Zend/zend_language_scanner.l"
{
@@ -1479,23 +1476,23 @@ yy33:
zend_copy_value(zendlval, (yytext+1), (yyleng-1));
RETURN_TOKEN(T_VARIABLE);
}
-#line 1483 "Zend/zend_language_scanner.c"
-yy35:
- YYDEBUG(35, *YYCURSOR);
+#line 1480 "Zend/zend_language_scanner.c"
+yy36:
+ YYDEBUG(36, *YYCURSOR);
yych = *++YYCURSOR;
if (yych <= '_') {
- if (yych <= '@') goto yy32;
- if (yych <= 'Z') goto yy36;
- if (yych <= '^') goto yy32;
+ if (yych <= '@') goto yy33;
+ if (yych <= 'Z') goto yy37;
+ if (yych <= '^') goto yy33;
} else {
- if (yych <= '`') goto yy32;
- if (yych <= 'z') goto yy36;
- if (yych <= 0x7F) goto yy32;
+ if (yych <= '`') goto yy33;
+ if (yych <= 'z') goto yy37;
+ if (yych <= 0x7F) goto yy33;
}
-yy36:
- YYDEBUG(36, *YYCURSOR);
- ++YYCURSOR;
+yy37:
YYDEBUG(37, *YYCURSOR);
+ ++YYCURSOR;
+ YYDEBUG(38, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
#line 1853 "Zend/zend_language_scanner.l"
{
@@ -1504,7 +1501,7 @@ yy36:
zend_copy_value(zendlval, (yytext+1), (yyleng-1));
RETURN_TOKEN(T_VARIABLE);
}
-#line 1508 "Zend/zend_language_scanner.c"
+#line 1505 "Zend/zend_language_scanner.c"
}
/* *********************************** */
yyc_ST_DOUBLE_QUOTES:
@@ -1543,34 +1540,19 @@ yyc_ST_DOUBLE_QUOTES:
128, 128, 128, 128, 128, 128, 128, 128,
128, 128, 128, 128, 128, 128, 128, 128,
};
- YYDEBUG(38, *YYCURSOR);
+ YYDEBUG(39, *YYCURSOR);
YYFILL(2);
yych = *YYCURSOR;
if (yych <= '#') {
if (yych == '"') goto yy43;
- goto yy45;
- } else {
- if (yych <= '$') goto yy40;
- if (yych == '{') goto yy42;
- goto yy45;
- }
-yy40:
- YYDEBUG(40, *YYCURSOR);
- ++YYCURSOR;
- if ((yych = *YYCURSOR) <= '_') {
- if (yych <= '@') goto yy41;
- if (yych <= 'Z') goto yy48;
- if (yych >= '_') goto yy48;
} else {
- if (yych <= 'z') {
- if (yych >= 'a') goto yy48;
- } else {
- if (yych <= '{') goto yy51;
- if (yych >= 0x80) goto yy48;
- }
+ if (yych <= '$') goto yy45;
+ if (yych == '{') goto yy46;
}
-yy41:
YYDEBUG(41, *YYCURSOR);
+ ++YYCURSOR;
+yy42:
+ YYDEBUG(42, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
#line 2164 "Zend/zend_language_scanner.l"
{
@@ -1621,12 +1603,7 @@ double_quotes_scan_done:
zend_scan_escape_string(zendlval, yytext, yyleng, '"');
RETURN_TOKEN(T_ENCAPSED_AND_WHITESPACE);
}
-#line 1625 "Zend/zend_language_scanner.c"
-yy42:
- YYDEBUG(42, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych == '$') goto yy46;
- goto yy41;
+#line 1607 "Zend/zend_language_scanner.c"
yy43:
YYDEBUG(43, *YYCURSOR);
++YYCURSOR;
@@ -1637,68 +1614,87 @@ yy43:
BEGIN(ST_IN_SCRIPTING);
RETURN_TOKEN('"');
}
-#line 1641 "Zend/zend_language_scanner.c"
+#line 1618 "Zend/zend_language_scanner.c"
yy45:
YYDEBUG(45, *YYCURSOR);
yych = *++YYCURSOR;
- goto yy41;
+ if (yych <= '_') {
+ if (yych <= '@') goto yy42;
+ if (yych <= 'Z') goto yy47;
+ if (yych <= '^') goto yy42;
+ goto yy47;
+ } else {
+ if (yych <= 'z') {
+ if (yych <= '`') goto yy42;
+ goto yy47;
+ } else {
+ if (yych <= '{') goto yy50;
+ if (yych <= 0x7F) goto yy42;
+ goto yy47;
+ }
+ }
yy46:
YYDEBUG(46, *YYCURSOR);
- ++YYCURSOR;
+ yych = *++YYCURSOR;
+ if (yych == '$') goto yy52;
+ goto yy42;
+yy47:
YYDEBUG(47, *YYCURSOR);
- yyleng = YYCURSOR - SCNG(yy_text);
-#line 2145 "Zend/zend_language_scanner.l"
- {
- Z_LVAL_P(zendlval) = (zend_long) '{';
- yy_push_state(ST_IN_SCRIPTING);
- yyless(1);
- RETURN_TOKEN(T_CURLY_OPEN);
-}
-#line 1658 "Zend/zend_language_scanner.c"
-yy48:
- YYDEBUG(48, *YYCURSOR);
- yyaccept = 0;
YYMARKER = ++YYCURSOR;
YYFILL(3);
yych = *YYCURSOR;
- YYDEBUG(49, *YYCURSOR);
+ YYDEBUG(48, *YYCURSOR);
if (yybm[0+yych] & 128) {
- goto yy48;
+ goto yy47;
}
- if (yych == '-') goto yy53;
- if (yych == '[') goto yy55;
-yy50:
- YYDEBUG(50, *YYCURSOR);
+ if (yych == '-') goto yy54;
+ if (yych <= '@') goto yy49;
+ if (yych <= '[') goto yy56;
+yy49:
+ YYDEBUG(49, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
#line 1869 "Zend/zend_language_scanner.l"
{
zend_copy_value(zendlval, (yytext+1), (yyleng-1));
RETURN_TOKEN(T_VARIABLE);
}
-#line 1679 "Zend/zend_language_scanner.c"
-yy51:
- YYDEBUG(51, *YYCURSOR);
+#line 1662 "Zend/zend_language_scanner.c"
+yy50:
+ YYDEBUG(50, *YYCURSOR);
++YYCURSOR;
- YYDEBUG(52, *YYCURSOR);
+ YYDEBUG(51, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
#line 1587 "Zend/zend_language_scanner.l"
{
yy_push_state(ST_LOOKING_FOR_VARNAME);
RETURN_TOKEN(T_DOLLAR_OPEN_CURLY_BRACES);
}
-#line 1690 "Zend/zend_language_scanner.c"
-yy53:
+#line 1673 "Zend/zend_language_scanner.c"
+yy52:
+ YYDEBUG(52, *YYCURSOR);
+ ++YYCURSOR;
YYDEBUG(53, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych == '>') goto yy57;
+ yyleng = YYCURSOR - SCNG(yy_text);
+#line 2145 "Zend/zend_language_scanner.l"
+ {
+ Z_LVAL_P(zendlval) = (zend_long) '{';
+ yy_push_state(ST_IN_SCRIPTING);
+ yyless(1);
+ RETURN_TOKEN(T_CURLY_OPEN);
+}
+#line 1686 "Zend/zend_language_scanner.c"
yy54:
YYDEBUG(54, *YYCURSOR);
- YYCURSOR = YYMARKER;
- goto yy50;
+ yych = *++YYCURSOR;
+ if (yych == '>') goto yy58;
yy55:
YYDEBUG(55, *YYCURSOR);
- ++YYCURSOR;
+ YYCURSOR = YYMARKER;
+ goto yy49;
+yy56:
YYDEBUG(56, *YYCURSOR);
+ ++YYCURSOR;
+ YYDEBUG(57, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
#line 1862 "Zend/zend_language_scanner.l"
{
@@ -1707,23 +1703,23 @@ yy55:
zend_copy_value(zendlval, (yytext+1), (yyleng-1));
RETURN_TOKEN(T_VARIABLE);
}
-#line 1711 "Zend/zend_language_scanner.c"
-yy57:
- YYDEBUG(57, *YYCURSOR);
+#line 1707 "Zend/zend_language_scanner.c"
+yy58:
+ YYDEBUG(58, *YYCURSOR);
yych = *++YYCURSOR;
if (yych <= '_') {
- if (yych <= '@') goto yy54;
- if (yych <= 'Z') goto yy58;
- if (yych <= '^') goto yy54;
+ if (yych <= '@') goto yy55;
+ if (yych <= 'Z') goto yy59;
+ if (yych <= '^') goto yy55;
} else {
- if (yych <= '`') goto yy54;
- if (yych <= 'z') goto yy58;
- if (yych <= 0x7F) goto yy54;
+ if (yych <= '`') goto yy55;
+ if (yych <= 'z') goto yy59;
+ if (yych <= 0x7F) goto yy55;
}
-yy58:
- YYDEBUG(58, *YYCURSOR);
- ++YYCURSOR;
+yy59:
YYDEBUG(59, *YYCURSOR);
+ ++YYCURSOR;
+ YYDEBUG(60, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
#line 1853 "Zend/zend_language_scanner.l"
{
@@ -1732,16 +1728,16 @@ yy58:
zend_copy_value(zendlval, (yytext+1), (yyleng-1));
RETURN_TOKEN(T_VARIABLE);
}
-#line 1736 "Zend/zend_language_scanner.c"
+#line 1732 "Zend/zend_language_scanner.c"
}
/* *********************************** */
yyc_ST_END_HEREDOC:
- YYDEBUG(60, *YYCURSOR);
+ YYDEBUG(61, *YYCURSOR);
YYFILL(1);
yych = *YYCURSOR;
- YYDEBUG(62, *YYCURSOR);
- ++YYCURSOR;
YYDEBUG(63, *YYCURSOR);
+ ++YYCURSOR;
+ YYDEBUG(64, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
#line 2131 "Zend/zend_language_scanner.l"
{
@@ -1756,7 +1752,7 @@ yyc_ST_END_HEREDOC:
BEGIN(ST_IN_SCRIPTING);
RETURN_TOKEN(T_END_HEREDOC);
}
-#line 1760 "Zend/zend_language_scanner.c"
+#line 1756 "Zend/zend_language_scanner.c"
/* *********************************** */
yyc_ST_HEREDOC:
{
@@ -1794,29 +1790,15 @@ yyc_ST_HEREDOC:
128, 128, 128, 128, 128, 128, 128, 128,
128, 128, 128, 128, 128, 128, 128, 128,
};
- YYDEBUG(64, *YYCURSOR);
+ YYDEBUG(65, *YYCURSOR);
YYFILL(2);
yych = *YYCURSOR;
- if (yych == '$') goto yy66;
- if (yych == '{') goto yy68;
- goto yy69;
-yy66:
- YYDEBUG(66, *YYCURSOR);
- ++YYCURSOR;
- if ((yych = *YYCURSOR) <= '_') {
- if (yych <= '@') goto yy67;
- if (yych <= 'Z') goto yy72;
- if (yych >= '_') goto yy72;
- } else {
- if (yych <= 'z') {
- if (yych >= 'a') goto yy72;
- } else {
- if (yych <= '{') goto yy75;
- if (yych >= 0x80) goto yy72;
- }
- }
-yy67:
+ if (yych == '$') goto yy69;
+ if (yych == '{') goto yy70;
YYDEBUG(67, *YYCURSOR);
+ ++YYCURSOR;
+yy68:
+ YYDEBUG(68, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
#line 2256 "Zend/zend_language_scanner.l"
{
@@ -1891,73 +1873,87 @@ heredoc_scan_done:
zend_scan_escape_string(zendlval, yytext, yyleng - newline, 0);
RETURN_TOKEN(T_ENCAPSED_AND_WHITESPACE);
}
-#line 1895 "Zend/zend_language_scanner.c"
-yy68:
- YYDEBUG(68, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych == '$') goto yy70;
- goto yy67;
+#line 1877 "Zend/zend_language_scanner.c"
yy69:
YYDEBUG(69, *YYCURSOR);
yych = *++YYCURSOR;
- goto yy67;
+ if (yych <= '_') {
+ if (yych <= '@') goto yy68;
+ if (yych <= 'Z') goto yy71;
+ if (yych <= '^') goto yy68;
+ goto yy71;
+ } else {
+ if (yych <= 'z') {
+ if (yych <= '`') goto yy68;
+ goto yy71;
+ } else {
+ if (yych <= '{') goto yy74;
+ if (yych <= 0x7F) goto yy68;
+ goto yy71;
+ }
+ }
yy70:
YYDEBUG(70, *YYCURSOR);
- ++YYCURSOR;
+ yych = *++YYCURSOR;
+ if (yych == '$') goto yy76;
+ goto yy68;
+yy71:
YYDEBUG(71, *YYCURSOR);
- yyleng = YYCURSOR - SCNG(yy_text);
-#line 2145 "Zend/zend_language_scanner.l"
- {
- Z_LVAL_P(zendlval) = (zend_long) '{';
- yy_push_state(ST_IN_SCRIPTING);
- yyless(1);
- RETURN_TOKEN(T_CURLY_OPEN);
-}
-#line 1917 "Zend/zend_language_scanner.c"
-yy72:
- YYDEBUG(72, *YYCURSOR);
- yyaccept = 0;
YYMARKER = ++YYCURSOR;
YYFILL(3);
yych = *YYCURSOR;
- YYDEBUG(73, *YYCURSOR);
+ YYDEBUG(72, *YYCURSOR);
if (yybm[0+yych] & 128) {
- goto yy72;
+ goto yy71;
}
- if (yych == '-') goto yy77;
- if (yych == '[') goto yy79;
-yy74:
- YYDEBUG(74, *YYCURSOR);
+ if (yych == '-') goto yy78;
+ if (yych <= '@') goto yy73;
+ if (yych <= '[') goto yy80;
+yy73:
+ YYDEBUG(73, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
#line 1869 "Zend/zend_language_scanner.l"
{
zend_copy_value(zendlval, (yytext+1), (yyleng-1));
RETURN_TOKEN(T_VARIABLE);
}
-#line 1938 "Zend/zend_language_scanner.c"
-yy75:
- YYDEBUG(75, *YYCURSOR);
+#line 1921 "Zend/zend_language_scanner.c"
+yy74:
+ YYDEBUG(74, *YYCURSOR);
++YYCURSOR;
- YYDEBUG(76, *YYCURSOR);
+ YYDEBUG(75, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
#line 1587 "Zend/zend_language_scanner.l"
{
yy_push_state(ST_LOOKING_FOR_VARNAME);
RETURN_TOKEN(T_DOLLAR_OPEN_CURLY_BRACES);
}
-#line 1949 "Zend/zend_language_scanner.c"
-yy77:
+#line 1932 "Zend/zend_language_scanner.c"
+yy76:
+ YYDEBUG(76, *YYCURSOR);
+ ++YYCURSOR;
YYDEBUG(77, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych == '>') goto yy81;
+ yyleng = YYCURSOR - SCNG(yy_text);
+#line 2145 "Zend/zend_language_scanner.l"
+ {
+ Z_LVAL_P(zendlval) = (zend_long) '{';
+ yy_push_state(ST_IN_SCRIPTING);
+ yyless(1);
+ RETURN_TOKEN(T_CURLY_OPEN);
+}
+#line 1945 "Zend/zend_language_scanner.c"
yy78:
YYDEBUG(78, *YYCURSOR);
- YYCURSOR = YYMARKER;
- goto yy74;
+ yych = *++YYCURSOR;
+ if (yych == '>') goto yy82;
yy79:
YYDEBUG(79, *YYCURSOR);
- ++YYCURSOR;
+ YYCURSOR = YYMARKER;
+ goto yy73;
+yy80:
YYDEBUG(80, *YYCURSOR);
+ ++YYCURSOR;
+ YYDEBUG(81, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
#line 1862 "Zend/zend_language_scanner.l"
{
@@ -1966,23 +1962,23 @@ yy79:
zend_copy_value(zendlval, (yytext+1), (yyleng-1));
RETURN_TOKEN(T_VARIABLE);
}
-#line 1970 "Zend/zend_language_scanner.c"
-yy81:
- YYDEBUG(81, *YYCURSOR);
+#line 1966 "Zend/zend_language_scanner.c"
+yy82:
+ YYDEBUG(82, *YYCURSOR);
yych = *++YYCURSOR;
if (yych <= '_') {
- if (yych <= '@') goto yy78;
- if (yych <= 'Z') goto yy82;
- if (yych <= '^') goto yy78;
+ if (yych <= '@') goto yy79;
+ if (yych <= 'Z') goto yy83;
+ if (yych <= '^') goto yy79;
} else {
- if (yych <= '`') goto yy78;
- if (yych <= 'z') goto yy82;
- if (yych <= 0x7F) goto yy78;
+ if (yych <= '`') goto yy79;
+ if (yych <= 'z') goto yy83;
+ if (yych <= 0x7F) goto yy79;
}
-yy82:
- YYDEBUG(82, *YYCURSOR);
- ++YYCURSOR;
+yy83:
YYDEBUG(83, *YYCURSOR);
+ ++YYCURSOR;
+ YYDEBUG(84, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
#line 1853 "Zend/zend_language_scanner.l"
{
@@ -1991,49 +1987,51 @@ yy82:
zend_copy_value(zendlval, (yytext+1), (yyleng-1));
RETURN_TOKEN(T_VARIABLE);
}
-#line 1995 "Zend/zend_language_scanner.c"
+#line 1991 "Zend/zend_language_scanner.c"
}
/* *********************************** */
yyc_ST_IN_SCRIPTING:
{
static const unsigned char yybm[] = {
0, 0, 0, 0, 0, 0, 0, 0,
- 0, 192, 64, 0, 0, 64, 0, 0,
+ 0, 36, 4, 0, 0, 4, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
- 192, 0, 0, 0, 0, 0, 0, 0,
+ 36, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
- 60, 60, 44, 44, 44, 44, 44, 44,
- 44, 44, 0, 0, 0, 0, 0, 0,
- 0, 36, 36, 36, 36, 36, 36, 4,
- 4, 4, 4, 4, 4, 4, 4, 4,
- 4, 4, 4, 4, 4, 4, 4, 4,
- 4, 4, 4, 0, 0, 0, 0, 4,
- 0, 36, 36, 36, 36, 36, 36, 4,
- 4, 4, 4, 4, 4, 4, 4, 4,
- 4, 4, 4, 4, 4, 4, 4, 4,
- 4, 4, 4, 0, 0, 0, 0, 0,
- 4, 4, 4, 4, 4, 4, 4, 4,
- 4, 4, 4, 4, 4, 4, 4, 4,
- 4, 4, 4, 4, 4, 4, 4, 4,
- 4, 4, 4, 4, 4, 4, 4, 4,
- 4, 4, 4, 4, 4, 4, 4, 4,
- 4, 4, 4, 4, 4, 4, 4, 4,
- 4, 4, 4, 4, 4, 4, 4, 4,
- 4, 4, 4, 4, 4, 4, 4, 4,
- 4, 4, 4, 4, 4, 4, 4, 4,
- 4, 4, 4, 4, 4, 4, 4, 4,
- 4, 4, 4, 4, 4, 4, 4, 4,
- 4, 4, 4, 4, 4, 4, 4, 4,
- 4, 4, 4, 4, 4, 4, 4, 4,
- 4, 4, 4, 4, 4, 4, 4, 4,
- 4, 4, 4, 4, 4, 4, 4, 4,
- 4, 4, 4, 4, 4, 4, 4, 4,
+ 216, 216, 152, 152, 152, 152, 152, 152,
+ 152, 152, 0, 0, 0, 0, 0, 0,
+ 0, 144, 144, 144, 144, 144, 144, 16,
+ 16, 16, 16, 16, 16, 16, 16, 16,
+ 16, 16, 16, 16, 16, 16, 16, 16,
+ 16, 16, 16, 0, 0, 0, 0, 16,
+ 0, 144, 144, 144, 144, 144, 144, 16,
+ 16, 16, 16, 16, 16, 16, 16, 16,
+ 16, 16, 16, 16, 16, 16, 16, 16,
+ 16, 16, 16, 0, 0, 0, 0, 0,
+ 16, 16, 16, 16, 16, 16, 16, 16,
+ 16, 16, 16, 16, 16, 16, 16, 16,
+ 16, 16, 16, 16, 16, 16, 16, 16,
+ 16, 16, 16, 16, 16, 16, 16, 16,
+ 16, 16, 16, 16, 16, 16, 16, 16,
+ 16, 16, 16, 16, 16, 16, 16, 16,
+ 16, 16, 16, 16, 16, 16, 16, 16,
+ 16, 16, 16, 16, 16, 16, 16, 16,
+ 16, 16, 16, 16, 16, 16, 16, 16,
+ 16, 16, 16, 16, 16, 16, 16, 16,
+ 16, 16, 16, 16, 16, 16, 16, 16,
+ 16, 16, 16, 16, 16, 16, 16, 16,
+ 16, 16, 16, 16, 16, 16, 16, 16,
+ 16, 16, 16, 16, 16, 16, 16, 16,
+ 16, 16, 16, 16, 16, 16, 16, 16,
+ 16, 16, 16, 16, 16, 16, 16, 16,
};
- YYDEBUG(84, *YYCURSOR);
+ YYDEBUG(85, *YYCURSOR);
YYFILL(16);
yych = *YYCURSOR;
- YYDEBUG(-1, yych);
+ if (yybm[0+yych] & 4) {
+ goto yy89;
+ }
switch (yych) {
case 0x00:
case 0x01:
@@ -2044,8 +2042,11 @@ yyc_ST_IN_SCRIPTING:
case 0x06:
case 0x07:
case 0x08:
+ case '\t':
+ case '\n':
case '\v':
case '\f':
+ case '\r':
case 0x0E:
case 0x0F:
case 0x10:
@@ -2064,32 +2065,29 @@ yyc_ST_IN_SCRIPTING:
case 0x1D:
case 0x1E:
case 0x1F:
- case 0x7F: goto yy147;
- case '\t':
- case '\n':
- case '\r':
- case ' ': goto yy103;
- case '!': goto yy118;
- case '"': goto yy143;
- case '#': goto yy139;
- case '$': goto yy129;
- case '%': goto yy123;
- case '&': goto yy124;
- case '\'': goto yy141;
- case '(': goto yy112;
+ case 0x7F: goto yy87;
+ case ' ':
+ case '!': goto yy92;
+ case '"': goto yy94;
+ case '#': goto yy96;
+ case '$': goto yy98;
+ case '%': goto yy99;
+ case '&': goto yy100;
+ case '\'': goto yy101;
+ case '(': goto yy103;
case ')':
case ',':
case ';':
case '@':
case '[':
case ']':
- case '~': goto yy130;
- case '*': goto yy121;
- case '+': goto yy117;
- case '-': goto yy101;
+ case '~': goto yy104;
+ case '*': goto yy105;
+ case '+': goto yy106;
+ case '-': goto yy107;
case '.': goto yy108;
- case '/': goto yy122;
- case '0': goto yy135;
+ case '/': goto yy109;
+ case '0': goto yy110;
case '1':
case '2':
case '3':
@@ -2098,1209 +2096,1204 @@ yyc_ST_IN_SCRIPTING:
case '6':
case '7':
case '8':
- case '9': goto yy137;
- case ':': goto yy105;
- case '<': goto yy119;
- case '=': goto yy115;
- case '>': goto yy120;
- case '?': goto yy109;
+ case '9': goto yy112;
+ case ':': goto yy114;
+ case '<': goto yy115;
+ case '=': goto yy116;
+ case '>': goto yy117;
+ case '?': goto yy118;
case 'A':
- case 'a': goto yy96;
+ case 'a': goto yy119;
case 'B':
- case 'b': goto yy98;
+ case 'b': goto yy121;
case 'C':
- case 'c': goto yy90;
+ case 'c': goto yy122;
case 'D':
- case 'd': goto yy88;
+ case 'd': goto yy123;
case 'E':
- case 'e': goto yy86;
+ case 'e': goto yy124;
case 'F':
- case 'f': goto yy89;
+ case 'f': goto yy125;
case 'G':
- case 'g': goto yy99;
+ case 'g': goto yy126;
case 'I':
- case 'i': goto yy94;
+ case 'i': goto yy129;
case 'L':
- case 'l': goto yy116;
+ case 'l': goto yy130;
case 'N':
- case 'n': goto yy110;
+ case 'n': goto yy131;
case 'O':
- case 'o': goto yy127;
+ case 'o': goto yy132;
case 'P':
- case 'p': goto yy100;
+ case 'p': goto yy133;
case 'R':
- case 'r': goto yy91;
+ case 'r': goto yy134;
case 'S':
- case 's': goto yy97;
+ case 's': goto yy135;
case 'T':
- case 't': goto yy93;
+ case 't': goto yy136;
case 'U':
- case 'u': goto yy113;
+ case 'u': goto yy137;
case 'V':
- case 'v': goto yy111;
+ case 'v': goto yy138;
case 'W':
- case 'w': goto yy95;
+ case 'w': goto yy139;
case 'X':
- case 'x': goto yy128;
+ case 'x': goto yy140;
case 'Y':
- case 'y': goto yy92;
- case '\\': goto yy106;
- case '^': goto yy126;
- case '_': goto yy114;
- case '`': goto yy145;
- case '{': goto yy131;
- case '|': goto yy125;
- case '}': goto yy133;
- default: goto yy138;
- }
-yy86:
- YYDEBUG(86, *YYCURSOR);
- ++YYCURSOR;
- YYDEBUG(-1, yych);
- switch ((yych = *YYCURSOR)) {
- case 'C':
- case 'c': goto yy704;
- case 'L':
- case 'l': goto yy705;
- case 'M':
- case 'm': goto yy706;
- case 'N':
- case 'n': goto yy707;
- case 'V':
- case 'v': goto yy708;
- case 'X':
- case 'x': goto yy709;
- default: goto yy150;
+ case 'y': goto yy141;
+ case '\\': goto yy142;
+ case '^': goto yy144;
+ case '_': goto yy145;
+ case '`': goto yy146;
+ case '{': goto yy148;
+ case '|': goto yy150;
+ case '}': goto yy151;
+ default: goto yy127;
}
yy87:
YYDEBUG(87, *YYCURSOR);
+ ++YYCURSOR;
+ YYDEBUG(88, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1892 "Zend/zend_language_scanner.l"
+#line 2387 "Zend/zend_language_scanner.l"
{
- zend_copy_value(zendlval, yytext, yyleng);
- RETURN_TOKEN(T_STRING);
+ if (YYCURSOR > YYLIMIT) {
+ RETURN_TOKEN(END);
+ }
+
+ zend_error(E_COMPILE_WARNING,"Unexpected character in input: '%c' (ASCII=%d) state=%d", yytext[0], yytext[0], YYSTATE);
+ goto restart;
}
-#line 2184 "Zend/zend_language_scanner.c"
-yy88:
- YYDEBUG(88, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych <= 'O') {
- if (yych <= 'H') {
- if (yych == 'E') goto yy686;
- goto yy150;
- } else {
- if (yych <= 'I') goto yy687;
- if (yych <= 'N') goto yy150;
- goto yy688;
- }
- } else {
- if (yych <= 'h') {
- if (yych == 'e') goto yy686;
- goto yy150;
- } else {
- if (yych <= 'i') goto yy687;
- if (yych == 'o') goto yy688;
- goto yy150;
- }
- }
+#line 2169 "Zend/zend_language_scanner.c"
yy89:
YYDEBUG(89, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych <= 'U') {
- if (yych <= 'N') {
- if (yych == 'I') goto yy662;
- goto yy150;
- } else {
- if (yych <= 'O') goto yy663;
- if (yych <= 'T') goto yy150;
- goto yy664;
- }
- } else {
- if (yych <= 'n') {
- if (yych == 'i') goto yy662;
- goto yy150;
- } else {
- if (yych <= 'o') goto yy663;
- if (yych == 'u') goto yy664;
- goto yy150;
- }
- }
-yy90:
+ ++YYCURSOR;
+ YYFILL(1);
+ yych = *YYCURSOR;
YYDEBUG(90, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych <= 'O') {
- if (yych <= 'K') {
- if (yych == 'A') goto yy627;
- goto yy150;
- } else {
- if (yych <= 'L') goto yy628;
- if (yych <= 'N') goto yy150;
- goto yy629;
- }
- } else {
- if (yych <= 'k') {
- if (yych == 'a') goto yy627;
- goto yy150;
- } else {
- if (yych <= 'l') goto yy628;
- if (yych == 'o') goto yy629;
- goto yy150;
- }
+ if (yybm[0+yych] & 4) {
+ goto yy89;
}
-yy91:
YYDEBUG(91, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych == 'E') goto yy609;
- if (yych == 'e') goto yy609;
- goto yy150;
+ yyleng = YYCURSOR - SCNG(yy_text);
+#line 1291 "Zend/zend_language_scanner.l"
+ {
+ HANDLE_NEWLINES(yytext, yyleng);
+ RETURN_TOKEN(T_WHITESPACE);
+}
+#line 2186 "Zend/zend_language_scanner.c"
yy92:
YYDEBUG(92, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych == 'I') goto yy597;
- if (yych == 'i') goto yy597;
- goto yy150;
+ ++YYCURSOR;
+ if ((yych = *YYCURSOR) == '=') goto yy153;
yy93:
YYDEBUG(93, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych <= 'R') {
- if (yych == 'H') goto yy585;
- if (yych <= 'Q') goto yy150;
- goto yy586;
- } else {
- if (yych <= 'h') {
- if (yych <= 'g') goto yy150;
- goto yy585;
- } else {
- if (yych == 'r') goto yy586;
- goto yy150;
- }
- }
+ yyleng = YYCURSOR - SCNG(yy_text);
+#line 1576 "Zend/zend_language_scanner.l"
+ {
+ RETURN_TOKEN(yytext[0]);
+}
+#line 2198 "Zend/zend_language_scanner.c"
yy94:
YYDEBUG(94, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych <= 'S') {
- if (yych <= 'L') {
- if (yych == 'F') goto yy532;
- goto yy150;
- } else {
- if (yych <= 'M') goto yy534;
- if (yych <= 'N') goto yy535;
- if (yych <= 'R') goto yy150;
- goto yy536;
- }
- } else {
- if (yych <= 'm') {
- if (yych == 'f') goto yy532;
- if (yych <= 'l') goto yy150;
- goto yy534;
- } else {
- if (yych <= 'n') goto yy535;
- if (yych == 's') goto yy536;
- goto yy150;
- }
- }
-yy95:
+ ++YYCURSOR;
YYDEBUG(95, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych == 'H') goto yy527;
- if (yych == 'h') goto yy527;
- goto yy150;
+ yyleng = YYCURSOR - SCNG(yy_text);
+#line 2035 "Zend/zend_language_scanner.l"
+ {
+ int bprefix = (yytext[0] != '"') ? 1 : 0;
+
+ while (YYCURSOR < YYLIMIT) {
+ switch (*YYCURSOR++) {
+ case '"':
+ yyleng = YYCURSOR - SCNG(yy_text);
+ zend_scan_escape_string(zendlval, yytext+bprefix+1, yyleng-bprefix-2, '"');
+ RETURN_TOKEN(T_CONSTANT_ENCAPSED_STRING);
+ case '$':
+ if (IS_LABEL_START(*YYCURSOR) || *YYCURSOR == '{') {
+ break;
+ }
+ continue;
+ case '{':
+ if (*YYCURSOR == '$') {
+ break;
+ }
+ continue;
+ case '\\':
+ if (YYCURSOR < YYLIMIT) {
+ YYCURSOR++;
+ }
+ /* fall through */
+ default:
+ continue;
+ }
+
+ YYCURSOR--;
+ break;
+ }
+
+ /* Remember how much was scanned to save rescanning */
+ SET_DOUBLE_QUOTES_SCANNED_LENGTH(YYCURSOR - SCNG(yy_text) - yyleng);
+
+ YYCURSOR = SCNG(yy_text) + yyleng;
+
+ BEGIN(ST_DOUBLE_QUOTES);
+ RETURN_TOKEN('"');
+}
+#line 2245 "Zend/zend_language_scanner.c"
yy96:
YYDEBUG(96, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych <= 'S') {
- if (yych <= 'M') {
- if (yych == 'B') goto yy509;
- goto yy150;
- } else {
- if (yych <= 'N') goto yy510;
- if (yych <= 'Q') goto yy150;
- if (yych <= 'R') goto yy511;
- goto yy512;
- }
- } else {
- if (yych <= 'n') {
- if (yych == 'b') goto yy509;
- if (yych <= 'm') goto yy150;
- goto yy510;
- } else {
- if (yych <= 'q') goto yy150;
- if (yych <= 'r') goto yy511;
- if (yych <= 's') goto yy512;
- goto yy150;
- }
- }
-yy97:
+ ++YYCURSOR;
YYDEBUG(97, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych <= 'W') {
- if (yych == 'T') goto yy497;
- if (yych <= 'V') goto yy150;
- goto yy498;
- } else {
- if (yych <= 't') {
- if (yych <= 's') goto yy150;
- goto yy497;
- } else {
- if (yych == 'w') goto yy498;
- goto yy150;
- }
+ yyleng = YYCURSOR - SCNG(yy_text);
+#line 1898 "Zend/zend_language_scanner.l"
+ {
+ while (YYCURSOR < YYLIMIT) {
+ switch (*YYCURSOR++) {
+ case '\r':
+ if (*YYCURSOR == '\n') {
+ YYCURSOR++;
+ }
+ /* fall through */
+ case '\n':
+ CG(zend_lineno)++;
+ break;
+ case '?':
+ if (*YYCURSOR == '>') {
+ YYCURSOR--;
+ break;
+ }
+ /* fall through */
+ default:
+ continue;
}
+
+ break;
+ }
+
+ yyleng = YYCURSOR - SCNG(yy_text);
+
+ RETURN_TOKEN(T_COMMENT);
+}
+#line 2280 "Zend/zend_language_scanner.c"
yy98:
YYDEBUG(98, *YYCURSOR);
- yyaccept = 0;
- yych = *(YYMARKER = ++YYCURSOR);
- if (yych <= ';') {
- if (yych <= '"') {
- if (yych <= '!') goto yy150;
- goto yy489;
- } else {
- if (yych == '\'') goto yy490;
- goto yy150;
- }
+ yych = *++YYCURSOR;
+ if (yych <= '_') {
+ if (yych <= '@') goto yy93;
+ if (yych <= 'Z') goto yy155;
+ if (yych <= '^') goto yy93;
+ goto yy155;
} else {
- if (yych <= 'R') {
- if (yych <= '<') goto yy488;
- if (yych <= 'Q') goto yy150;
- goto yy491;
- } else {
- if (yych == 'r') goto yy491;
- goto yy150;
- }
+ if (yych <= '`') goto yy93;
+ if (yych <= 'z') goto yy155;
+ if (yych <= 0x7F) goto yy93;
+ goto yy155;
}
yy99:
YYDEBUG(99, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych <= 'O') {
- if (yych == 'L') goto yy478;
- if (yych <= 'N') goto yy150;
- goto yy479;
- } else {
- if (yych <= 'l') {
- if (yych <= 'k') goto yy150;
- goto yy478;
- } else {
- if (yych == 'o') goto yy479;
- goto yy150;
- }
- }
+ if (yych == '=') goto yy158;
+ goto yy93;
yy100:
YYDEBUG(100, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych <= 'U') {
- if (yych == 'R') goto yy454;
- if (yych <= 'T') goto yy150;
- goto yy455;
- } else {
- if (yych <= 'r') {
- if (yych <= 'q') goto yy150;
- goto yy454;
- } else {
- if (yych == 'u') goto yy455;
- goto yy150;
- }
- }
+ if (yych == '&') goto yy160;
+ if (yych == '=') goto yy162;
+ goto yy93;
yy101:
YYDEBUG(101, *YYCURSOR);
++YYCURSOR;
- if ((yych = *YYCURSOR) <= '<') {
- if (yych == '-') goto yy450;
- } else {
- if (yych <= '=') goto yy448;
- if (yych <= '>') goto yy452;
- }
-yy102:
YYDEBUG(102, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1576 "Zend/zend_language_scanner.l"
+#line 1966 "Zend/zend_language_scanner.l"
{
- RETURN_TOKEN(yytext[0]);
+ register char *s, *t;
+ char *end;
+ int bprefix = (yytext[0] != '\'') ? 1 : 0;
+
+ while (1) {
+ if (YYCURSOR < YYLIMIT) {
+ if (*YYCURSOR == '\'') {
+ YYCURSOR++;
+ yyleng = YYCURSOR - SCNG(yy_text);
+
+ break;
+ } else if (*YYCURSOR++ == '\\' && YYCURSOR < YYLIMIT) {
+ YYCURSOR++;
+ }
+ } else {
+ yyleng = YYLIMIT - SCNG(yy_text);
+
+ /* Unclosed single quotes; treat similar to double quotes, but without a separate token
+ * for ' (unrecognized by parser), instead of old flex fallback to "Unexpected character..."
+ * rule, which continued in ST_IN_SCRIPTING state after the quote */
+ ZVAL_NULL(zendlval);
+ RETURN_TOKEN(T_ENCAPSED_AND_WHITESPACE);
+ }
+ }
+
+ ZVAL_STRINGL(zendlval, yytext+bprefix+1, yyleng-bprefix-2);
+
+ /* convert escape sequences */
+ s = t = Z_STRVAL_P(zendlval);
+ end = s+Z_STRLEN_P(zendlval);
+ while (s<end) {
+ if (*s=='\\') {
+ s++;
+
+ switch(*s) {
+ case '\\':
+ case '\'':
+ *t++ = *s;
+ Z_STRLEN_P(zendlval)--;
+ break;
+ default:
+ *t++ = '\\';
+ *t++ = *s;
+ break;
+ }
+ } else {
+ *t++ = *s;
+ }
+
+ if (*s == '\n' || (*s == '\r' && (*(s+1) != '\n'))) {
+ CG(zend_lineno)++;
+ }
+ s++;
+ }
+ *t = 0;
+
+ if (SCNG(output_filter)) {
+ size_t sz = 0;
+ char *str = NULL;
+ s = Z_STRVAL_P(zendlval);
+ // TODO: avoid reallocation ???
+ SCNG(output_filter)((unsigned char **)&str, &sz, (unsigned char *)s, (size_t)Z_STRLEN_P(zendlval));
+ ZVAL_STRINGL(zendlval, str, sz);
+ }
+ RETURN_TOKEN(T_CONSTANT_ENCAPSED_STRING);
}
-#line 2420 "Zend/zend_language_scanner.c"
+#line 2379 "Zend/zend_language_scanner.c"
yy103:
YYDEBUG(103, *YYCURSOR);
- ++YYCURSOR;
- yych = *YYCURSOR;
- goto yy447;
+ yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych <= 'S') {
+ if (yych <= 'D') {
+ if (yych <= ' ') {
+ if (yych == '\t') goto yy165;
+ if (yych <= 0x1F) goto yy93;
+ goto yy165;
+ } else {
+ if (yych <= '@') goto yy93;
+ if (yych == 'C') goto yy93;
+ goto yy165;
+ }
+ } else {
+ if (yych <= 'I') {
+ if (yych == 'F') goto yy165;
+ if (yych <= 'H') goto yy93;
+ goto yy165;
+ } else {
+ if (yych == 'O') goto yy165;
+ if (yych <= 'Q') goto yy93;
+ goto yy165;
+ }
+ }
+ } else {
+ if (yych <= 'f') {
+ if (yych <= 'b') {
+ if (yych == 'U') goto yy165;
+ if (yych <= '`') goto yy93;
+ goto yy165;
+ } else {
+ if (yych == 'd') goto yy165;
+ if (yych <= 'e') goto yy93;
+ goto yy165;
+ }
+ } else {
+ if (yych <= 'o') {
+ if (yych == 'i') goto yy165;
+ if (yych <= 'n') goto yy93;
+ goto yy165;
+ } else {
+ if (yych <= 's') {
+ if (yych <= 'q') goto yy93;
+ goto yy165;
+ } else {
+ if (yych == 'u') goto yy165;
+ goto yy93;
+ }
+ }
+ }
+ }
yy104:
YYDEBUG(104, *YYCURSOR);
- yyleng = YYCURSOR - SCNG(yy_text);
-#line 1291 "Zend/zend_language_scanner.l"
- {
- HANDLE_NEWLINES(yytext, yyleng);
- RETURN_TOKEN(T_WHITESPACE);
-}
-#line 2434 "Zend/zend_language_scanner.c"
+ yych = *++YYCURSOR;
+ goto yy93;
yy105:
YYDEBUG(105, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == ':') goto yy444;
- goto yy102;
+ if (yych == '*') goto yy176;
+ if (yych == '=') goto yy178;
+ goto yy93;
yy106:
YYDEBUG(106, *YYCURSOR);
- ++YYCURSOR;
+ yych = *++YYCURSOR;
+ if (yych == '+') goto yy180;
+ if (yych == '=') goto yy182;
+ goto yy93;
+yy107:
YYDEBUG(107, *YYCURSOR);
- yyleng = YYCURSOR - SCNG(yy_text);
-#line 1316 "Zend/zend_language_scanner.l"
- {
- RETURN_TOKEN(T_NS_SEPARATOR);
-}
-#line 2449 "Zend/zend_language_scanner.c"
+ yych = *++YYCURSOR;
+ if (yych <= '<') {
+ if (yych == '-') goto yy184;
+ goto yy93;
+ } else {
+ if (yych <= '=') goto yy186;
+ if (yych <= '>') goto yy188;
+ goto yy93;
+ }
yy108:
YYDEBUG(108, *YYCURSOR);
- yyaccept = 1;
+ yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
if (yych <= '/') {
- if (yych == '.') goto yy441;
- goto yy102;
+ if (yych == '.') goto yy190;
+ goto yy93;
} else {
- if (yych <= '9') goto yy437;
- if (yych == '=') goto yy439;
- goto yy102;
+ if (yych <= '9') goto yy191;
+ if (yych == '=') goto yy194;
+ goto yy93;
}
yy109:
YYDEBUG(109, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych <= '=') goto yy102;
- if (yych <= '>') goto yy431;
- if (yych <= '?') goto yy433;
- goto yy102;
+ if (yych <= '.') {
+ if (yych == '*') goto yy196;
+ goto yy93;
+ } else {
+ if (yych <= '/') goto yy96;
+ if (yych == '=') goto yy198;
+ goto yy93;
+ }
yy110:
YYDEBUG(110, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych <= 'E') {
- if (yych == 'A') goto yy419;
- if (yych <= 'D') goto yy150;
- goto yy420;
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yybm[0+yych] & 8) {
+ goto yy112;
+ }
+ if (yych <= 'W') {
+ if (yych <= 'A') {
+ if (yych == '.') goto yy191;
+ } else {
+ if (yych <= 'B') goto yy200;
+ if (yych == 'E') goto yy201;
+ }
} else {
- if (yych <= 'a') {
- if (yych <= '`') goto yy150;
- goto yy419;
+ if (yych <= 'd') {
+ if (yych <= 'X') goto yy202;
+ if (yych == 'b') goto yy200;
} else {
- if (yych == 'e') goto yy420;
- goto yy150;
+ if (yych <= 'e') goto yy201;
+ if (yych == 'x') goto yy202;
}
}
yy111:
YYDEBUG(111, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych == 'A') goto yy416;
- if (yych == 'a') goto yy416;
- goto yy150;
-yy112:
- YYDEBUG(112, *YYCURSOR);
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if (yych <= 'S') {
- if (yych <= 'D') {
- if (yych <= ' ') {
- if (yych == '\t') goto yy341;
- if (yych <= 0x1F) goto yy102;
- goto yy341;
- } else {
- if (yych <= '@') goto yy102;
- if (yych == 'C') goto yy102;
- goto yy341;
- }
+ yyleng = YYCURSOR - SCNG(yy_text);
+#line 1646 "Zend/zend_language_scanner.l"
+ {
+ char *end;
+ if (yyleng < MAX_LENGTH_OF_LONG - 1) { /* Won't overflow */
+ errno = 0;
+ ZVAL_LONG(zendlval, ZEND_STRTOL(yytext, &end, 0));
+ /* This isn't an assert, we need to ensure 019 isn't valid octal
+ * Because the lexing itself doesn't do that for us
+ */
+ if (end != yytext + yyleng) {
+ zend_throw_exception(zend_ce_parse_error, "Invalid numeric literal", 0);
+ ZVAL_UNDEF(zendlval);
+ RETURN_TOKEN(T_LNUMBER);
+ }
+ } else {
+ errno = 0;
+ ZVAL_LONG(zendlval, ZEND_STRTOL(yytext, &end, 0));
+ if (errno == ERANGE) { /* Overflow */
+ errno = 0;
+ if (yytext[0] == '0') { /* octal overflow */
+ errno = 0;
+ ZVAL_DOUBLE(zendlval, zend_oct_strtod(yytext, (const char **)&end));
} else {
- if (yych <= 'I') {
- if (yych == 'F') goto yy341;
- if (yych <= 'H') goto yy102;
- goto yy341;
- } else {
- if (yych == 'O') goto yy341;
- if (yych <= 'Q') goto yy102;
- goto yy341;
- }
+ ZVAL_DOUBLE(zendlval, zend_strtod(yytext, (const char **)&end));
}
- } else {
- if (yych <= 'f') {
- if (yych <= 'b') {
- if (yych == 'U') goto yy341;
- if (yych <= '`') goto yy102;
- goto yy341;
- } else {
- if (yych == 'd') goto yy341;
- if (yych <= 'e') goto yy102;
- goto yy341;
- }
- } else {
- if (yych <= 'o') {
- if (yych == 'i') goto yy341;
- if (yych <= 'n') goto yy102;
- goto yy341;
- } else {
- if (yych <= 's') {
- if (yych <= 'q') goto yy102;
- goto yy341;
- } else {
- if (yych == 'u') goto yy341;
- goto yy102;
- }
- }
+ /* Also not an assert for the same reason */
+ if (end != yytext + yyleng) {
+ zend_throw_exception(zend_ce_parse_error,
+ "Invalid numeric literal", 0);
+ ZVAL_UNDEF(zendlval);
+ RETURN_TOKEN(T_DNUMBER);
}
+ ZEND_ASSERT(!errno);
+ RETURN_TOKEN(T_DNUMBER);
}
-yy113:
+ /* Also not an assert for the same reason */
+ if (end != yytext + yyleng) {
+ zend_throw_exception(zend_ce_parse_error, "Invalid numeric literal", 0);
+ ZVAL_UNDEF(zendlval);
+ RETURN_TOKEN(T_DNUMBER);
+ }
+ }
+ ZEND_ASSERT(!errno);
+ RETURN_TOKEN(T_LNUMBER);
+}
+#line 2554 "Zend/zend_language_scanner.c"
+yy112:
+ YYDEBUG(112, *YYCURSOR);
+ yyaccept = 1;
+ YYMARKER = ++YYCURSOR;
+ YYFILL(3);
+ yych = *YYCURSOR;
YYDEBUG(113, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych <= 'S') {
- if (yych == 'N') goto yy332;
- if (yych <= 'R') goto yy150;
- goto yy333;
+ if (yybm[0+yych] & 8) {
+ goto yy112;
+ }
+ if (yych <= 'D') {
+ if (yych == '.') goto yy191;
+ goto yy111;
} else {
- if (yych <= 'n') {
- if (yych <= 'm') goto yy150;
- goto yy332;
- } else {
- if (yych == 's') goto yy333;
- goto yy150;
- }
+ if (yych <= 'E') goto yy201;
+ if (yych == 'e') goto yy201;
+ goto yy111;
}
yy114:
YYDEBUG(114, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == '_') goto yy250;
- goto yy150;
+ if (yych == ':') goto yy203;
+ goto yy93;
yy115:
YYDEBUG(115, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych <= '<') goto yy102;
- if (yych <= '=') goto yy244;
- if (yych <= '>') goto yy246;
- goto yy102;
+ if (yych <= ';') goto yy93;
+ if (yych <= '<') goto yy205;
+ if (yych <= '=') goto yy207;
+ if (yych <= '>') goto yy209;
+ goto yy93;
yy116:
YYDEBUG(116, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'I') goto yy240;
- if (yych == 'i') goto yy240;
- goto yy150;
+ if (yych <= '<') goto yy93;
+ if (yych <= '=') goto yy210;
+ if (yych <= '>') goto yy212;
+ goto yy93;
yy117:
YYDEBUG(117, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == '+') goto yy238;
- if (yych == '=') goto yy236;
- goto yy102;
+ if (yych <= '<') goto yy93;
+ if (yych <= '=') goto yy214;
+ if (yych <= '>') goto yy216;
+ goto yy93;
yy118:
YYDEBUG(118, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == '=') goto yy233;
- goto yy102;
+ if (yych <= '=') goto yy93;
+ if (yych <= '>') goto yy218;
+ if (yych <= '?') goto yy220;
+ goto yy93;
yy119:
YYDEBUG(119, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych <= ';') goto yy102;
- if (yych <= '<') goto yy209;
- if (yych <= '=') goto yy211;
- if (yych <= '>') goto yy213;
- goto yy102;
+ ++YYCURSOR;
+ if ((yych = *YYCURSOR) <= 'S') {
+ if (yych <= 'M') {
+ if (yych == 'B') goto yy222;
+ goto yy128;
+ } else {
+ if (yych <= 'N') goto yy223;
+ if (yych <= 'Q') goto yy128;
+ if (yych <= 'R') goto yy224;
+ goto yy225;
+ }
+ } else {
+ if (yych <= 'n') {
+ if (yych == 'b') goto yy222;
+ if (yych <= 'm') goto yy128;
+ goto yy223;
+ } else {
+ if (yych <= 'q') goto yy128;
+ if (yych <= 'r') goto yy224;
+ if (yych <= 's') goto yy225;
+ goto yy128;
+ }
+ }
yy120:
YYDEBUG(120, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych <= '<') goto yy102;
- if (yych <= '=') goto yy205;
- if (yych <= '>') goto yy203;
- goto yy102;
+ yyleng = YYCURSOR - SCNG(yy_text);
+#line 1892 "Zend/zend_language_scanner.l"
+ {
+ zend_copy_value(zendlval, yytext, yyleng);
+ RETURN_TOKEN(T_STRING);
+}
+#line 2640 "Zend/zend_language_scanner.c"
yy121:
YYDEBUG(121, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych == '*') goto yy197;
- if (yych == '=') goto yy199;
- goto yy102;
+ yyaccept = 2;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych <= ';') {
+ if (yych <= '"') {
+ if (yych <= '!') goto yy128;
+ goto yy94;
+ } else {
+ if (yych == '\'') goto yy101;
+ goto yy128;
+ }
+ } else {
+ if (yych <= 'R') {
+ if (yych <= '<') goto yy227;
+ if (yych <= 'Q') goto yy128;
+ goto yy228;
+ } else {
+ if (yych == 'r') goto yy228;
+ goto yy128;
+ }
+ }
yy122:
YYDEBUG(122, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych <= '.') {
- if (yych == '*') goto yy189;
- goto yy102;
+ if (yych <= 'O') {
+ if (yych <= 'K') {
+ if (yych == 'A') goto yy229;
+ goto yy128;
+ } else {
+ if (yych <= 'L') goto yy230;
+ if (yych <= 'N') goto yy128;
+ goto yy231;
+ }
} else {
- if (yych <= '/') goto yy191;
- if (yych == '=') goto yy192;
- goto yy102;
+ if (yych <= 'k') {
+ if (yych == 'a') goto yy229;
+ goto yy128;
+ } else {
+ if (yych <= 'l') goto yy230;
+ if (yych == 'o') goto yy231;
+ goto yy128;
+ }
}
yy123:
YYDEBUG(123, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == '=') goto yy187;
- goto yy102;
+ if (yych <= 'O') {
+ if (yych <= 'H') {
+ if (yych == 'E') goto yy232;
+ goto yy128;
+ } else {
+ if (yych <= 'I') goto yy233;
+ if (yych <= 'N') goto yy128;
+ goto yy234;
+ }
+ } else {
+ if (yych <= 'h') {
+ if (yych == 'e') goto yy232;
+ goto yy128;
+ } else {
+ if (yych <= 'i') goto yy233;
+ if (yych == 'o') goto yy234;
+ goto yy128;
+ }
+ }
yy124:
YYDEBUG(124, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == '&') goto yy183;
- if (yych == '=') goto yy185;
- goto yy102;
+ switch (yych) {
+ case 'C':
+ case 'c': goto yy236;
+ case 'L':
+ case 'l': goto yy237;
+ case 'M':
+ case 'm': goto yy238;
+ case 'N':
+ case 'n': goto yy239;
+ case 'V':
+ case 'v': goto yy240;
+ case 'X':
+ case 'x': goto yy241;
+ default: goto yy128;
+ }
yy125:
YYDEBUG(125, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == '=') goto yy181;
- if (yych == '|') goto yy179;
- goto yy102;
+ if (yych <= 'U') {
+ if (yych <= 'N') {
+ if (yych == 'I') goto yy242;
+ goto yy128;
+ } else {
+ if (yych <= 'O') goto yy243;
+ if (yych <= 'T') goto yy128;
+ goto yy244;
+ }
+ } else {
+ if (yych <= 'n') {
+ if (yych == 'i') goto yy242;
+ goto yy128;
+ } else {
+ if (yych <= 'o') goto yy243;
+ if (yych == 'u') goto yy244;
+ goto yy128;
+ }
+ }
yy126:
YYDEBUG(126, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == '=') goto yy177;
- goto yy102;
+ if (yych <= 'O') {
+ if (yych == 'L') goto yy245;
+ if (yych <= 'N') goto yy128;
+ goto yy246;
+ } else {
+ if (yych <= 'l') {
+ if (yych <= 'k') goto yy128;
+ goto yy245;
+ } else {
+ if (yych == 'o') goto yy246;
+ goto yy128;
+ }
+ }
yy127:
YYDEBUG(127, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych == 'R') goto yy175;
- if (yych == 'r') goto yy175;
- goto yy150;
+ ++YYCURSOR;
+ YYFILL(1);
+ yych = *YYCURSOR;
yy128:
YYDEBUG(128, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych == 'O') goto yy172;
- if (yych == 'o') goto yy172;
- goto yy150;
+ if (yybm[0+yych] & 16) {
+ goto yy127;
+ }
+ goto yy120;
yy129:
YYDEBUG(129, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych <= '_') {
- if (yych <= '@') goto yy102;
- if (yych <= 'Z') goto yy169;
- if (yych <= '^') goto yy102;
- goto yy169;
+ if (yych <= 'S') {
+ if (yych <= 'L') {
+ if (yych == 'F') goto yy247;
+ goto yy128;
+ } else {
+ if (yych <= 'M') goto yy249;
+ if (yych <= 'N') goto yy250;
+ if (yych <= 'R') goto yy128;
+ goto yy251;
+ }
} else {
- if (yych <= '`') goto yy102;
- if (yych <= 'z') goto yy169;
- if (yych <= 0x7F) goto yy102;
- goto yy169;
+ if (yych <= 'm') {
+ if (yych == 'f') goto yy247;
+ if (yych <= 'l') goto yy128;
+ goto yy249;
+ } else {
+ if (yych <= 'n') goto yy250;
+ if (yych == 's') goto yy251;
+ goto yy128;
+ }
}
yy130:
YYDEBUG(130, *YYCURSOR);
yych = *++YYCURSOR;
- goto yy102;
+ if (yych == 'I') goto yy252;
+ if (yych == 'i') goto yy252;
+ goto yy128;
yy131:
YYDEBUG(131, *YYCURSOR);
- ++YYCURSOR;
+ yych = *++YYCURSOR;
+ if (yych <= 'E') {
+ if (yych == 'A') goto yy253;
+ if (yych <= 'D') goto yy128;
+ goto yy254;
+ } else {
+ if (yych <= 'a') {
+ if (yych <= '`') goto yy128;
+ goto yy253;
+ } else {
+ if (yych == 'e') goto yy254;
+ goto yy128;
+ }
+ }
+yy132:
YYDEBUG(132, *YYCURSOR);
- yyleng = YYCURSOR - SCNG(yy_text);
-#line 1581 "Zend/zend_language_scanner.l"
- {
- yy_push_state(ST_IN_SCRIPTING);
- RETURN_TOKEN('{');
-}
-#line 2683 "Zend/zend_language_scanner.c"
+ yych = *++YYCURSOR;
+ if (yych == 'R') goto yy255;
+ if (yych == 'r') goto yy255;
+ goto yy128;
yy133:
YYDEBUG(133, *YYCURSOR);
- ++YYCURSOR;
+ yych = *++YYCURSOR;
+ if (yych <= 'U') {
+ if (yych == 'R') goto yy257;
+ if (yych <= 'T') goto yy128;
+ goto yy258;
+ } else {
+ if (yych <= 'r') {
+ if (yych <= 'q') goto yy128;
+ goto yy257;
+ } else {
+ if (yych == 'u') goto yy258;
+ goto yy128;
+ }
+ }
+yy134:
YYDEBUG(134, *YYCURSOR);
- yyleng = YYCURSOR - SCNG(yy_text);
-#line 1593 "Zend/zend_language_scanner.l"
- {
- RESET_DOC_COMMENT();
- if (!zend_stack_is_empty(&SCNG(state_stack))) {
- yy_pop_state();
- }
- RETURN_TOKEN('}');
-}
-#line 2697 "Zend/zend_language_scanner.c"
+ yych = *++YYCURSOR;
+ if (yych == 'E') goto yy259;
+ if (yych == 'e') goto yy259;
+ goto yy128;
yy135:
YYDEBUG(135, *YYCURSOR);
- yyaccept = 2;
- yych = *(YYMARKER = ++YYCURSOR);
- if (yych <= 'E') {
- if (yych <= '9') {
- if (yych == '.') goto yy151;
- if (yych >= '0') goto yy154;
- } else {
- if (yych == 'B') goto yy162;
- if (yych >= 'E') goto yy156;
- }
+ yych = *++YYCURSOR;
+ if (yych <= 'W') {
+ if (yych == 'T') goto yy260;
+ if (yych <= 'V') goto yy128;
+ goto yy261;
} else {
- if (yych <= 'b') {
- if (yych == 'X') goto yy161;
- if (yych >= 'b') goto yy162;
+ if (yych <= 't') {
+ if (yych <= 's') goto yy128;
+ goto yy260;
} else {
- if (yych <= 'e') {
- if (yych >= 'e') goto yy156;
- } else {
- if (yych == 'x') goto yy161;
- }
+ if (yych == 'w') goto yy261;
+ goto yy128;
}
}
yy136:
YYDEBUG(136, *YYCURSOR);
- yyleng = YYCURSOR - SCNG(yy_text);
-#line 1646 "Zend/zend_language_scanner.l"
- {
- char *end;
- if (yyleng < MAX_LENGTH_OF_LONG - 1) { /* Won't overflow */
- errno = 0;
- ZVAL_LONG(zendlval, ZEND_STRTOL(yytext, &end, 0));
- /* This isn't an assert, we need to ensure 019 isn't valid octal
- * Because the lexing itself doesn't do that for us
- */
- if (end != yytext + yyleng) {
- zend_throw_exception(zend_ce_parse_error, "Invalid numeric literal", 0);
- ZVAL_UNDEF(zendlval);
- RETURN_TOKEN(T_LNUMBER);
- }
- } else {
- errno = 0;
- ZVAL_LONG(zendlval, ZEND_STRTOL(yytext, &end, 0));
- if (errno == ERANGE) { /* Overflow */
- errno = 0;
- if (yytext[0] == '0') { /* octal overflow */
- errno = 0;
- ZVAL_DOUBLE(zendlval, zend_oct_strtod(yytext, (const char **)&end));
+ yych = *++YYCURSOR;
+ if (yych <= 'R') {
+ if (yych == 'H') goto yy262;
+ if (yych <= 'Q') goto yy128;
+ goto yy263;
+ } else {
+ if (yych <= 'h') {
+ if (yych <= 'g') goto yy128;
+ goto yy262;
} else {
- ZVAL_DOUBLE(zendlval, zend_strtod(yytext, (const char **)&end));
+ if (yych == 'r') goto yy263;
+ goto yy128;
}
- /* Also not an assert for the same reason */
- if (end != yytext + yyleng) {
- zend_throw_exception(zend_ce_parse_error,
- "Invalid numeric literal", 0);
- ZVAL_UNDEF(zendlval);
- RETURN_TOKEN(T_DNUMBER);
- }
- ZEND_ASSERT(!errno);
- RETURN_TOKEN(T_DNUMBER);
- }
- /* Also not an assert for the same reason */
- if (end != yytext + yyleng) {
- zend_throw_exception(zend_ce_parse_error, "Invalid numeric literal", 0);
- ZVAL_UNDEF(zendlval);
- RETURN_TOKEN(T_DNUMBER);
}
- }
- ZEND_ASSERT(!errno);
- RETURN_TOKEN(T_LNUMBER);
-}
-#line 2770 "Zend/zend_language_scanner.c"
yy137:
YYDEBUG(137, *YYCURSOR);
- yyaccept = 2;
- yych = *(YYMARKER = ++YYCURSOR);
- if (yych <= '9') {
- if (yych == '.') goto yy151;
- if (yych <= '/') goto yy136;
- goto yy154;
+ yych = *++YYCURSOR;
+ if (yych <= 'S') {
+ if (yych == 'N') goto yy264;
+ if (yych <= 'R') goto yy128;
+ goto yy265;
} else {
- if (yych <= 'E') {
- if (yych <= 'D') goto yy136;
- goto yy156;
+ if (yych <= 'n') {
+ if (yych <= 'm') goto yy128;
+ goto yy264;
} else {
- if (yych == 'e') goto yy156;
- goto yy136;
+ if (yych == 's') goto yy265;
+ goto yy128;
}
}
yy138:
YYDEBUG(138, *YYCURSOR);
yych = *++YYCURSOR;
- goto yy150;
+ if (yych == 'A') goto yy266;
+ if (yych == 'a') goto yy266;
+ goto yy128;
yy139:
YYDEBUG(139, *YYCURSOR);
- ++YYCURSOR;
+ yych = *++YYCURSOR;
+ if (yych == 'H') goto yy267;
+ if (yych == 'h') goto yy267;
+ goto yy128;
yy140:
YYDEBUG(140, *YYCURSOR);
- yyleng = YYCURSOR - SCNG(yy_text);
-#line 1898 "Zend/zend_language_scanner.l"
- {
- while (YYCURSOR < YYLIMIT) {
- switch (*YYCURSOR++) {
- case '\r':
- if (*YYCURSOR == '\n') {
- YYCURSOR++;
- }
- /* fall through */
- case '\n':
- CG(zend_lineno)++;
- break;
- case '?':
- if (*YYCURSOR == '>') {
- YYCURSOR--;
- break;
- }
- /* fall through */
- default:
- continue;
- }
-
- break;
- }
-
- yyleng = YYCURSOR - SCNG(yy_text);
-
- RETURN_TOKEN(T_COMMENT);
-}
-#line 2827 "Zend/zend_language_scanner.c"
+ yych = *++YYCURSOR;
+ if (yych == 'O') goto yy268;
+ if (yych == 'o') goto yy268;
+ goto yy128;
yy141:
YYDEBUG(141, *YYCURSOR);
- ++YYCURSOR;
+ yych = *++YYCURSOR;
+ if (yych == 'I') goto yy269;
+ if (yych == 'i') goto yy269;
+ goto yy128;
yy142:
YYDEBUG(142, *YYCURSOR);
+ ++YYCURSOR;
+ YYDEBUG(143, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1966 "Zend/zend_language_scanner.l"
+#line 1316 "Zend/zend_language_scanner.l"
{
- register char *s, *t;
- char *end;
- int bprefix = (yytext[0] != '\'') ? 1 : 0;
-
- while (1) {
- if (YYCURSOR < YYLIMIT) {
- if (*YYCURSOR == '\'') {
- YYCURSOR++;
- yyleng = YYCURSOR - SCNG(yy_text);
-
- break;
- } else if (*YYCURSOR++ == '\\' && YYCURSOR < YYLIMIT) {
- YYCURSOR++;
- }
- } else {
- yyleng = YYLIMIT - SCNG(yy_text);
-
- /* Unclosed single quotes; treat similar to double quotes, but without a separate token
- * for ' (unrecognized by parser), instead of old flex fallback to "Unexpected character..."
- * rule, which continued in ST_IN_SCRIPTING state after the quote */
- ZVAL_NULL(zendlval);
- RETURN_TOKEN(T_ENCAPSED_AND_WHITESPACE);
- }
- }
-
- ZVAL_STRINGL(zendlval, yytext+bprefix+1, yyleng-bprefix-2);
-
- /* convert escape sequences */
- s = t = Z_STRVAL_P(zendlval);
- end = s+Z_STRLEN_P(zendlval);
- while (s<end) {
- if (*s=='\\') {
- s++;
-
- switch(*s) {
- case '\\':
- case '\'':
- *t++ = *s;
- Z_STRLEN_P(zendlval)--;
- break;
- default:
- *t++ = '\\';
- *t++ = *s;
- break;
- }
- } else {
- *t++ = *s;
- }
-
- if (*s == '\n' || (*s == '\r' && (*(s+1) != '\n'))) {
- CG(zend_lineno)++;
- }
- s++;
- }
- *t = 0;
-
- if (SCNG(output_filter)) {
- size_t sz = 0;
- char *str = NULL;
- s = Z_STRVAL_P(zendlval);
- // TODO: avoid reallocation ???
- SCNG(output_filter)((unsigned char **)&str, &sz, (unsigned char *)s, (size_t)Z_STRLEN_P(zendlval));
- ZVAL_STRINGL(zendlval, str, sz);
- }
- RETURN_TOKEN(T_CONSTANT_ENCAPSED_STRING);
+ RETURN_TOKEN(T_NS_SEPARATOR);
}
-#line 2902 "Zend/zend_language_scanner.c"
-yy143:
- YYDEBUG(143, *YYCURSOR);
- ++YYCURSOR;
+#line 2929 "Zend/zend_language_scanner.c"
yy144:
YYDEBUG(144, *YYCURSOR);
- yyleng = YYCURSOR - SCNG(yy_text);
-#line 2035 "Zend/zend_language_scanner.l"
- {
- int bprefix = (yytext[0] != '"') ? 1 : 0;
-
- while (YYCURSOR < YYLIMIT) {
- switch (*YYCURSOR++) {
- case '"':
- yyleng = YYCURSOR - SCNG(yy_text);
- zend_scan_escape_string(zendlval, yytext+bprefix+1, yyleng-bprefix-2, '"');
- RETURN_TOKEN(T_CONSTANT_ENCAPSED_STRING);
- case '$':
- if (IS_LABEL_START(*YYCURSOR) || *YYCURSOR == '{') {
- break;
- }
- continue;
- case '{':
- if (*YYCURSOR == '$') {
- break;
- }
- continue;
- case '\\':
- if (YYCURSOR < YYLIMIT) {
- YYCURSOR++;
- }
- /* fall through */
- default:
- continue;
- }
-
- YYCURSOR--;
- break;
- }
-
- /* Remember how much was scanned to save rescanning */
- SET_DOUBLE_QUOTES_SCANNED_LENGTH(YYCURSOR - SCNG(yy_text) - yyleng);
-
- YYCURSOR = SCNG(yy_text) + yyleng;
-
- BEGIN(ST_DOUBLE_QUOTES);
- RETURN_TOKEN('"');
-}
-#line 2950 "Zend/zend_language_scanner.c"
+ yych = *++YYCURSOR;
+ if (yych == '=') goto yy270;
+ goto yy93;
yy145:
YYDEBUG(145, *YYCURSOR);
- ++YYCURSOR;
+ yych = *++YYCURSOR;
+ if (yych == '_') goto yy272;
+ goto yy128;
+yy146:
YYDEBUG(146, *YYCURSOR);
+ ++YYCURSOR;
+ YYDEBUG(147, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
#line 2125 "Zend/zend_language_scanner.l"
{
BEGIN(ST_BACKQUOTE);
RETURN_TOKEN('`');
}
-#line 2961 "Zend/zend_language_scanner.c"
-yy147:
- YYDEBUG(147, *YYCURSOR);
- ++YYCURSOR;
+#line 2950 "Zend/zend_language_scanner.c"
+yy148:
YYDEBUG(148, *YYCURSOR);
+ ++YYCURSOR;
+ YYDEBUG(149, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 2387 "Zend/zend_language_scanner.l"
+#line 1581 "Zend/zend_language_scanner.l"
{
- if (YYCURSOR > YYLIMIT) {
- RETURN_TOKEN(END);
- }
-
- zend_error(E_COMPILE_WARNING,"Unexpected character in input: '%c' (ASCII=%d) state=%d", yytext[0], yytext[0], YYSTATE);
- goto restart;
+ yy_push_state(ST_IN_SCRIPTING);
+ RETURN_TOKEN('{');
}
-#line 2976 "Zend/zend_language_scanner.c"
-yy149:
- YYDEBUG(149, *YYCURSOR);
- ++YYCURSOR;
- YYFILL(1);
- yych = *YYCURSOR;
+#line 2961 "Zend/zend_language_scanner.c"
yy150:
YYDEBUG(150, *YYCURSOR);
- if (yybm[0+yych] & 4) {
- goto yy149;
- }
- goto yy87;
+ yych = *++YYCURSOR;
+ if (yych == '=') goto yy273;
+ if (yych == '|') goto yy275;
+ goto yy93;
yy151:
YYDEBUG(151, *YYCURSOR);
- yyaccept = 3;
- YYMARKER = ++YYCURSOR;
- YYFILL(3);
- yych = *YYCURSOR;
+ ++YYCURSOR;
YYDEBUG(152, *YYCURSOR);
- if (yybm[0+yych] & 8) {
- goto yy151;
- }
- if (yych == 'E') goto yy156;
- if (yych == 'e') goto yy156;
-yy153:
- YYDEBUG(153, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1740 "Zend/zend_language_scanner.l"
+#line 1593 "Zend/zend_language_scanner.l"
{
- const char *end;
-
- ZVAL_DOUBLE(zendlval, zend_strtod(yytext, &end));
- /* errno isn't checked since we allow HUGE_VAL/INF overflow */
- ZEND_ASSERT(end == yytext + yyleng);
- RETURN_TOKEN(T_DNUMBER);
+ RESET_DOC_COMMENT();
+ if (!zend_stack_is_empty(&SCNG(state_stack))) {
+ yy_pop_state();
+ }
+ RETURN_TOKEN('}');
}
-#line 3012 "Zend/zend_language_scanner.c"
+#line 2981 "Zend/zend_language_scanner.c"
+yy153:
+ YYDEBUG(153, *YYCURSOR);
+ ++YYCURSOR;
+ if ((yych = *YYCURSOR) == '=') goto yy277;
yy154:
YYDEBUG(154, *YYCURSOR);
- yyaccept = 2;
- YYMARKER = ++YYCURSOR;
- YYFILL(3);
- yych = *YYCURSOR;
+ yyleng = YYCURSOR - SCNG(yy_text);
+#line 1480 "Zend/zend_language_scanner.l"
+ {
+ RETURN_TOKEN(T_IS_NOT_EQUAL);
+}
+#line 2993 "Zend/zend_language_scanner.c"
+yy155:
YYDEBUG(155, *YYCURSOR);
- if (yych <= '9') {
- if (yych == '.') goto yy151;
- if (yych <= '/') goto yy136;
- goto yy154;
- } else {
- if (yych <= 'E') {
- if (yych <= 'D') goto yy136;
- } else {
- if (yych != 'e') goto yy136;
- }
- }
-yy156:
+ ++YYCURSOR;
+ YYFILL(1);
+ yych = *YYCURSOR;
YYDEBUG(156, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych <= ',') {
- if (yych == '+') goto yy158;
- } else {
- if (yych <= '-') goto yy158;
- if (yych <= '/') goto yy157;
- if (yych <= '9') goto yy159;
- }
-yy157:
- YYDEBUG(157, *YYCURSOR);
- YYCURSOR = YYMARKER;
- if (yyaccept <= 3) {
- if (yyaccept <= 1) {
- if (yyaccept <= 0) {
- goto yy87;
- } else {
- goto yy102;
- }
+ if (yych <= '^') {
+ if (yych <= '9') {
+ if (yych >= '0') goto yy155;
} else {
- if (yyaccept <= 2) {
- goto yy136;
- } else {
- goto yy153;
- }
+ if (yych <= '@') goto yy157;
+ if (yych <= 'Z') goto yy155;
}
} else {
- if (yyaccept <= 5) {
- if (yyaccept <= 4) {
- goto yy190;
- } else {
- goto yy210;
- }
+ if (yych <= '`') {
+ if (yych <= '_') goto yy155;
} else {
- goto yy601;
+ if (yych <= 'z') goto yy155;
+ if (yych >= 0x80) goto yy155;
}
}
+yy157:
+ YYDEBUG(157, *YYCURSOR);
+ yyleng = YYCURSOR - SCNG(yy_text);
+#line 1869 "Zend/zend_language_scanner.l"
+ {
+ zend_copy_value(zendlval, (yytext+1), (yyleng-1));
+ RETURN_TOKEN(T_VARIABLE);
+}
+#line 3023 "Zend/zend_language_scanner.c"
yy158:
YYDEBUG(158, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych <= '/') goto yy157;
- if (yych >= ':') goto yy157;
-yy159:
- YYDEBUG(159, *YYCURSOR);
++YYCURSOR;
- YYFILL(1);
- yych = *YYCURSOR;
+ YYDEBUG(159, *YYCURSOR);
+ yyleng = YYCURSOR - SCNG(yy_text);
+#line 1524 "Zend/zend_language_scanner.l"
+ {
+ RETURN_TOKEN(T_MOD_EQUAL);
+}
+#line 3033 "Zend/zend_language_scanner.c"
+yy160:
YYDEBUG(160, *YYCURSOR);
- if (yych <= '/') goto yy153;
- if (yych <= '9') goto yy159;
- goto yy153;
-yy161:
+ ++YYCURSOR;
YYDEBUG(161, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yybm[0+yych] & 32) {
- goto yy166;
- }
- goto yy157;
+ yyleng = YYCURSOR - SCNG(yy_text);
+#line 1552 "Zend/zend_language_scanner.l"
+ {
+ RETURN_TOKEN(T_BOOLEAN_AND);
+}
+#line 3043 "Zend/zend_language_scanner.c"
yy162:
YYDEBUG(162, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yybm[0+yych] & 16) {
- goto yy163;
- }
- goto yy157;
-yy163:
- YYDEBUG(163, *YYCURSOR);
++YYCURSOR;
- YYFILL(1);
- yych = *YYCURSOR;
- YYDEBUG(164, *YYCURSOR);
- if (yybm[0+yych] & 16) {
- goto yy163;
- }
- YYDEBUG(165, *YYCURSOR);
+ YYDEBUG(163, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1618 "Zend/zend_language_scanner.l"
+#line 1536 "Zend/zend_language_scanner.l"
{
- char *bin = yytext + 2; /* Skip "0b" */
- int len = yyleng - 2;
- char *end;
-
- /* Skip any leading 0s */
- while (*bin == '0') {
- ++bin;
- --len;
- }
-
- if (len < SIZEOF_ZEND_LONG * 8) {
- if (len == 0) {
- ZVAL_LONG(zendlval, 0);
- } else {
- errno = 0;
- ZVAL_LONG(zendlval, ZEND_STRTOL(bin, &end, 2));
- ZEND_ASSERT(!errno && end == yytext + yyleng);
- }
- RETURN_TOKEN(T_LNUMBER);
- } else {
- ZVAL_DOUBLE(zendlval, zend_bin_strtod(bin, (const char **)&end));
- /* errno isn't checked since we allow HUGE_VAL/INF overflow */
- ZEND_ASSERT(end == yytext + yyleng);
- RETURN_TOKEN(T_DNUMBER);
- }
+ RETURN_TOKEN(T_AND_EQUAL);
}
-#line 3136 "Zend/zend_language_scanner.c"
-yy166:
- YYDEBUG(166, *YYCURSOR);
+#line 3053 "Zend/zend_language_scanner.c"
+yy164:
+ YYDEBUG(164, *YYCURSOR);
++YYCURSOR;
- YYFILL(1);
+ YYFILL(7);
yych = *YYCURSOR;
- YYDEBUG(167, *YYCURSOR);
+yy165:
+ YYDEBUG(165, *YYCURSOR);
if (yybm[0+yych] & 32) {
- goto yy166;
+ goto yy164;
}
- YYDEBUG(168, *YYCURSOR);
- yyleng = YYCURSOR - SCNG(yy_text);
-#line 1691 "Zend/zend_language_scanner.l"
- {
- char *hex = yytext + 2; /* Skip "0x" */
- int len = yyleng - 2;
- char *end;
-
- /* Skip any leading 0s */
- while (*hex == '0') {
- hex++;
- len--;
- }
-
- if (len < SIZEOF_ZEND_LONG * 2 || (len == SIZEOF_ZEND_LONG * 2 && *hex <= '7')) {
- if (len == 0) {
- ZVAL_LONG(zendlval, 0);
- } else {
- errno = 0;
- ZVAL_LONG(zendlval, ZEND_STRTOL(hex, &end, 16));
- ZEND_ASSERT(!errno && end == hex + len);
+ switch (yych) {
+ case 'A':
+ case 'a': goto yy167;
+ case 'B':
+ case 'b': goto yy168;
+ case 'D':
+ case 'd': goto yy169;
+ case 'F':
+ case 'f': goto yy170;
+ case 'I':
+ case 'i': goto yy171;
+ case 'O':
+ case 'o': goto yy172;
+ case 'R':
+ case 'r': goto yy173;
+ case 'S':
+ case 's': goto yy174;
+ case 'U':
+ case 'u': goto yy175;
+ default: goto yy166;
}
- RETURN_TOKEN(T_LNUMBER);
- } else {
- ZVAL_DOUBLE(zendlval, zend_hex_strtod(hex, (const char **)&end));
- /* errno isn't checked since we allow HUGE_VAL/INF overflow */
- ZEND_ASSERT(end == hex + len);
- RETURN_TOKEN(T_DNUMBER);
- }
-}
-#line 3176 "Zend/zend_language_scanner.c"
-yy169:
- YYDEBUG(169, *YYCURSOR);
- ++YYCURSOR;
- YYFILL(1);
- yych = *YYCURSOR;
- YYDEBUG(170, *YYCURSOR);
- if (yych <= '^') {
- if (yych <= '9') {
- if (yych >= '0') goto yy169;
+yy166:
+ YYDEBUG(166, *YYCURSOR);
+ YYCURSOR = YYMARKER;
+ if (yyaccept <= 3) {
+ if (yyaccept <= 1) {
+ if (yyaccept == 0) {
+ goto yy93;
+ } else {
+ goto yy111;
+ }
} else {
- if (yych <= '@') goto yy171;
- if (yych <= 'Z') goto yy169;
+ if (yyaccept == 2) {
+ goto yy120;
+ } else {
+ goto yy193;
+ }
}
} else {
- if (yych <= '`') {
- if (yych <= '_') goto yy169;
+ if (yyaccept <= 5) {
+ if (yyaccept == 4) {
+ goto yy197;
+ } else {
+ goto yy206;
+ }
} else {
- if (yych <= 'z') goto yy169;
- if (yych >= 0x80) goto yy169;
+ goto yy541;
}
}
+yy167:
+ YYDEBUG(167, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if (yych == 'R') goto yy279;
+ if (yych == 'r') goto yy279;
+ goto yy166;
+yy168:
+ YYDEBUG(168, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if (yych <= 'O') {
+ if (yych == 'I') goto yy280;
+ if (yych <= 'N') goto yy166;
+ goto yy281;
+ } else {
+ if (yych <= 'i') {
+ if (yych <= 'h') goto yy166;
+ goto yy280;
+ } else {
+ if (yych == 'o') goto yy281;
+ goto yy166;
+ }
+ }
+yy169:
+ YYDEBUG(169, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if (yych == 'O') goto yy282;
+ if (yych == 'o') goto yy282;
+ goto yy166;
+yy170:
+ YYDEBUG(170, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if (yych == 'L') goto yy283;
+ if (yych == 'l') goto yy283;
+ goto yy166;
yy171:
YYDEBUG(171, *YYCURSOR);
- yyleng = YYCURSOR - SCNG(yy_text);
-#line 1869 "Zend/zend_language_scanner.l"
- {
- zend_copy_value(zendlval, (yytext+1), (yyleng-1));
- RETURN_TOKEN(T_VARIABLE);
-}
-#line 3206 "Zend/zend_language_scanner.c"
+ yych = *++YYCURSOR;
+ if (yych == 'N') goto yy284;
+ if (yych == 'n') goto yy284;
+ goto yy166;
yy172:
YYDEBUG(172, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'R') goto yy173;
- if (yych != 'r') goto yy150;
+ if (yych == 'B') goto yy285;
+ if (yych == 'b') goto yy285;
+ goto yy166;
yy173:
YYDEBUG(173, *YYCURSOR);
- ++YYCURSOR;
- if (yybm[0+(yych = *YYCURSOR)] & 4) {
- goto yy149;
- }
+ yych = *++YYCURSOR;
+ if (yych == 'E') goto yy286;
+ if (yych == 'e') goto yy286;
+ goto yy166;
+yy174:
YYDEBUG(174, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if (yych == 'T') goto yy287;
+ if (yych == 't') goto yy287;
+ goto yy166;
+yy175:
+ YYDEBUG(175, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if (yych == 'N') goto yy288;
+ if (yych == 'n') goto yy288;
+ goto yy166;
+yy176:
+ YYDEBUG(176, *YYCURSOR);
+ ++YYCURSOR;
+ if ((yych = *YYCURSOR) == '=') goto yy289;
+ YYDEBUG(177, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1564 "Zend/zend_language_scanner.l"
+#line 1508 "Zend/zend_language_scanner.l"
{
- RETURN_TOKEN(T_LOGICAL_XOR);
+ RETURN_TOKEN(T_POW);
}
-#line 3224 "Zend/zend_language_scanner.c"
-yy175:
- YYDEBUG(175, *YYCURSOR);
+#line 3187 "Zend/zend_language_scanner.c"
+yy178:
+ YYDEBUG(178, *YYCURSOR);
++YYCURSOR;
- if (yybm[0+(yych = *YYCURSOR)] & 4) {
- goto yy149;
- }
- YYDEBUG(176, *YYCURSOR);
+ YYDEBUG(179, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1556 "Zend/zend_language_scanner.l"
+#line 1504 "Zend/zend_language_scanner.l"
{
- RETURN_TOKEN(T_LOGICAL_OR);
+ RETURN_TOKEN(T_MUL_EQUAL);
}
-#line 3237 "Zend/zend_language_scanner.c"
-yy177:
- YYDEBUG(177, *YYCURSOR);
+#line 3197 "Zend/zend_language_scanner.c"
+yy180:
+ YYDEBUG(180, *YYCURSOR);
++YYCURSOR;
- YYDEBUG(178, *YYCURSOR);
+ YYDEBUG(181, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1544 "Zend/zend_language_scanner.l"
+#line 1460 "Zend/zend_language_scanner.l"
{
- RETURN_TOKEN(T_XOR_EQUAL);
+ RETURN_TOKEN(T_INC);
}
-#line 3247 "Zend/zend_language_scanner.c"
-yy179:
- YYDEBUG(179, *YYCURSOR);
+#line 3207 "Zend/zend_language_scanner.c"
+yy182:
+ YYDEBUG(182, *YYCURSOR);
++YYCURSOR;
- YYDEBUG(180, *YYCURSOR);
+ YYDEBUG(183, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1548 "Zend/zend_language_scanner.l"
+#line 1496 "Zend/zend_language_scanner.l"
{
- RETURN_TOKEN(T_BOOLEAN_OR);
+ RETURN_TOKEN(T_PLUS_EQUAL);
}
-#line 3257 "Zend/zend_language_scanner.c"
-yy181:
- YYDEBUG(181, *YYCURSOR);
+#line 3217 "Zend/zend_language_scanner.c"
+yy184:
+ YYDEBUG(184, *YYCURSOR);
++YYCURSOR;
- YYDEBUG(182, *YYCURSOR);
+ YYDEBUG(185, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1540 "Zend/zend_language_scanner.l"
+#line 1464 "Zend/zend_language_scanner.l"
{
- RETURN_TOKEN(T_OR_EQUAL);
+ RETURN_TOKEN(T_DEC);
}
-#line 3267 "Zend/zend_language_scanner.c"
-yy183:
- YYDEBUG(183, *YYCURSOR);
+#line 3227 "Zend/zend_language_scanner.c"
+yy186:
+ YYDEBUG(186, *YYCURSOR);
++YYCURSOR;
- YYDEBUG(184, *YYCURSOR);
+ YYDEBUG(187, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1552 "Zend/zend_language_scanner.l"
+#line 1500 "Zend/zend_language_scanner.l"
{
- RETURN_TOKEN(T_BOOLEAN_AND);
+ RETURN_TOKEN(T_MINUS_EQUAL);
}
-#line 3277 "Zend/zend_language_scanner.c"
-yy185:
- YYDEBUG(185, *YYCURSOR);
+#line 3237 "Zend/zend_language_scanner.c"
+yy188:
+ YYDEBUG(188, *YYCURSOR);
++YYCURSOR;
- YYDEBUG(186, *YYCURSOR);
+ YYDEBUG(189, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1536 "Zend/zend_language_scanner.l"
+#line 1286 "Zend/zend_language_scanner.l"
{
- RETURN_TOKEN(T_AND_EQUAL);
+ yy_push_state(ST_LOOKING_FOR_PROPERTY);
+ RETURN_TOKEN(T_OBJECT_OPERATOR);
}
-#line 3287 "Zend/zend_language_scanner.c"
-yy187:
- YYDEBUG(187, *YYCURSOR);
+#line 3248 "Zend/zend_language_scanner.c"
+yy190:
+ YYDEBUG(190, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if (yych == '.') goto yy291;
+ goto yy166;
+yy191:
+ YYDEBUG(191, *YYCURSOR);
+ yyaccept = 3;
+ YYMARKER = ++YYCURSOR;
+ YYFILL(3);
+ yych = *YYCURSOR;
+ YYDEBUG(192, *YYCURSOR);
+ if (yych <= 'D') {
+ if (yych <= '/') goto yy193;
+ if (yych <= '9') goto yy191;
+ } else {
+ if (yych <= 'E') goto yy201;
+ if (yych == 'e') goto yy201;
+ }
+yy193:
+ YYDEBUG(193, *YYCURSOR);
+ yyleng = YYCURSOR - SCNG(yy_text);
+#line 1740 "Zend/zend_language_scanner.l"
+ {
+ const char *end;
+
+ ZVAL_DOUBLE(zendlval, zend_strtod(yytext, &end));
+ /* errno isn't checked since we allow HUGE_VAL/INF overflow */
+ ZEND_ASSERT(end == yytext + yyleng);
+ RETURN_TOKEN(T_DNUMBER);
+}
+#line 3280 "Zend/zend_language_scanner.c"
+yy194:
+ YYDEBUG(194, *YYCURSOR);
++YYCURSOR;
- YYDEBUG(188, *YYCURSOR);
+ YYDEBUG(195, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1524 "Zend/zend_language_scanner.l"
+#line 1520 "Zend/zend_language_scanner.l"
{
- RETURN_TOKEN(T_MOD_EQUAL);
+ RETURN_TOKEN(T_CONCAT_EQUAL);
}
-#line 3297 "Zend/zend_language_scanner.c"
-yy189:
- YYDEBUG(189, *YYCURSOR);
+#line 3290 "Zend/zend_language_scanner.c"
+yy196:
+ YYDEBUG(196, *YYCURSOR);
yyaccept = 4;
yych = *(YYMARKER = ++YYCURSOR);
- if (yych == '*') goto yy194;
-yy190:
- YYDEBUG(190, *YYCURSOR);
+ if (yych == '*') goto yy293;
+yy197:
+ YYDEBUG(197, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
#line 1927 "Zend/zend_language_scanner.l"
{
@@ -3335,3714 +3328,3897 @@ yy190:
RETURN_TOKEN(T_COMMENT);
}
-#line 3339 "Zend/zend_language_scanner.c"
-yy191:
- YYDEBUG(191, *YYCURSOR);
- yych = *++YYCURSOR;
- goto yy140;
-yy192:
- YYDEBUG(192, *YYCURSOR);
+#line 3332 "Zend/zend_language_scanner.c"
+yy198:
+ YYDEBUG(198, *YYCURSOR);
++YYCURSOR;
- YYDEBUG(193, *YYCURSOR);
+ YYDEBUG(199, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
#line 1516 "Zend/zend_language_scanner.l"
{
RETURN_TOKEN(T_DIV_EQUAL);
}
-#line 3353 "Zend/zend_language_scanner.c"
-yy194:
- YYDEBUG(194, *YYCURSOR);
+#line 3342 "Zend/zend_language_scanner.c"
+yy200:
+ YYDEBUG(200, *YYCURSOR);
yych = *++YYCURSOR;
if (yybm[0+yych] & 64) {
- goto yy195;
+ goto yy294;
}
- goto yy157;
-yy195:
- YYDEBUG(195, *YYCURSOR);
- ++YYCURSOR;
- YYFILL(1);
- yych = *YYCURSOR;
- YYDEBUG(196, *YYCURSOR);
- if (yybm[0+yych] & 64) {
- goto yy195;
- }
- goto yy190;
-yy197:
- YYDEBUG(197, *YYCURSOR);
- ++YYCURSOR;
- if ((yych = *YYCURSOR) == '=') goto yy201;
- YYDEBUG(198, *YYCURSOR);
- yyleng = YYCURSOR - SCNG(yy_text);
-#line 1508 "Zend/zend_language_scanner.l"
- {
- RETURN_TOKEN(T_POW);
-}
-#line 3381 "Zend/zend_language_scanner.c"
-yy199:
- YYDEBUG(199, *YYCURSOR);
- ++YYCURSOR;
- YYDEBUG(200, *YYCURSOR);
- yyleng = YYCURSOR - SCNG(yy_text);
-#line 1504 "Zend/zend_language_scanner.l"
- {
- RETURN_TOKEN(T_MUL_EQUAL);
-}
-#line 3391 "Zend/zend_language_scanner.c"
+ goto yy166;
yy201:
YYDEBUG(201, *YYCURSOR);
- ++YYCURSOR;
+ yych = *++YYCURSOR;
+ if (yych <= ',') {
+ if (yych == '+') goto yy297;
+ goto yy166;
+ } else {
+ if (yych <= '-') goto yy297;
+ if (yych <= '/') goto yy166;
+ if (yych <= '9') goto yy298;
+ goto yy166;
+ }
+yy202:
YYDEBUG(202, *YYCURSOR);
- yyleng = YYCURSOR - SCNG(yy_text);
-#line 1512 "Zend/zend_language_scanner.l"
- {
- RETURN_TOKEN(T_POW_EQUAL);
-}
-#line 3401 "Zend/zend_language_scanner.c"
+ yych = *++YYCURSOR;
+ if (yybm[0+yych] & 128) {
+ goto yy300;
+ }
+ goto yy166;
yy203:
YYDEBUG(203, *YYCURSOR);
++YYCURSOR;
- if ((yych = *YYCURSOR) == '=') goto yy207;
YYDEBUG(204, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1572 "Zend/zend_language_scanner.l"
+#line 1312 "Zend/zend_language_scanner.l"
{
- RETURN_TOKEN(T_SR);
+ RETURN_TOKEN(T_PAAMAYIM_NEKUDOTAYIM);
}
-#line 3412 "Zend/zend_language_scanner.c"
+#line 3378 "Zend/zend_language_scanner.c"
yy205:
YYDEBUG(205, *YYCURSOR);
- ++YYCURSOR;
+ yyaccept = 5;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych <= ';') goto yy206;
+ if (yych <= '<') goto yy303;
+ if (yych <= '=') goto yy305;
+yy206:
YYDEBUG(206, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1492 "Zend/zend_language_scanner.l"
+#line 1568 "Zend/zend_language_scanner.l"
{
- RETURN_TOKEN(T_IS_GREATER_OR_EQUAL);
+ RETURN_TOKEN(T_SL);
}
-#line 3422 "Zend/zend_language_scanner.c"
+#line 3393 "Zend/zend_language_scanner.c"
yy207:
YYDEBUG(207, *YYCURSOR);
++YYCURSOR;
+ if ((yych = *YYCURSOR) == '>') goto yy307;
YYDEBUG(208, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1532 "Zend/zend_language_scanner.l"
+#line 1488 "Zend/zend_language_scanner.l"
{
- RETURN_TOKEN(T_SR_EQUAL);
+ RETURN_TOKEN(T_IS_SMALLER_OR_EQUAL);
}
-#line 3432 "Zend/zend_language_scanner.c"
+#line 3404 "Zend/zend_language_scanner.c"
yy209:
YYDEBUG(209, *YYCURSOR);
- yyaccept = 5;
- yych = *(YYMARKER = ++YYCURSOR);
- if (yych <= ';') goto yy210;
- if (yych <= '<') goto yy219;
- if (yych <= '=') goto yy217;
+ yych = *++YYCURSOR;
+ goto yy154;
yy210:
YYDEBUG(210, *YYCURSOR);
+ ++YYCURSOR;
+ if ((yych = *YYCURSOR) == '=') goto yy309;
+ YYDEBUG(211, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1568 "Zend/zend_language_scanner.l"
+#line 1476 "Zend/zend_language_scanner.l"
{
- RETURN_TOKEN(T_SL);
+ RETURN_TOKEN(T_IS_EQUAL);
}
-#line 3447 "Zend/zend_language_scanner.c"
-yy211:
- YYDEBUG(211, *YYCURSOR);
- ++YYCURSOR;
- if ((yych = *YYCURSOR) == '>') goto yy215;
+#line 3419 "Zend/zend_language_scanner.c"
+yy212:
YYDEBUG(212, *YYCURSOR);
+ ++YYCURSOR;
+ YYDEBUG(213, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1488 "Zend/zend_language_scanner.l"
+#line 1444 "Zend/zend_language_scanner.l"
{
- RETURN_TOKEN(T_IS_SMALLER_OR_EQUAL);
+ RETURN_TOKEN(T_DOUBLE_ARROW);
}
-#line 3458 "Zend/zend_language_scanner.c"
-yy213:
- YYDEBUG(213, *YYCURSOR);
- ++YYCURSOR;
+#line 3429 "Zend/zend_language_scanner.c"
yy214:
YYDEBUG(214, *YYCURSOR);
+ ++YYCURSOR;
+ YYDEBUG(215, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1480 "Zend/zend_language_scanner.l"
+#line 1492 "Zend/zend_language_scanner.l"
{
- RETURN_TOKEN(T_IS_NOT_EQUAL);
+ RETURN_TOKEN(T_IS_GREATER_OR_EQUAL);
}
-#line 3469 "Zend/zend_language_scanner.c"
-yy215:
- YYDEBUG(215, *YYCURSOR);
- ++YYCURSOR;
+#line 3439 "Zend/zend_language_scanner.c"
+yy216:
YYDEBUG(216, *YYCURSOR);
+ ++YYCURSOR;
+ if ((yych = *YYCURSOR) == '=') goto yy311;
+ YYDEBUG(217, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1484 "Zend/zend_language_scanner.l"
+#line 1572 "Zend/zend_language_scanner.l"
{
- RETURN_TOKEN(T_SPACESHIP);
+ RETURN_TOKEN(T_SR);
}
-#line 3479 "Zend/zend_language_scanner.c"
-yy217:
- YYDEBUG(217, *YYCURSOR);
- ++YYCURSOR;
+#line 3450 "Zend/zend_language_scanner.c"
+yy218:
YYDEBUG(218, *YYCURSOR);
+ ++YYCURSOR;
+ if ((yych = *YYCURSOR) == '\n') goto yy313;
+ if (yych == '\r') goto yy314;
+yy219:
+ YYDEBUG(219, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1528 "Zend/zend_language_scanner.l"
+#line 1960 "Zend/zend_language_scanner.l"
{
- RETURN_TOKEN(T_SL_EQUAL);
+ BEGIN(INITIAL);
+ RETURN_TOKEN(T_CLOSE_TAG); /* implicit ';' at php-end tag */
}
-#line 3489 "Zend/zend_language_scanner.c"
-yy219:
- YYDEBUG(219, *YYCURSOR);
- ++YYCURSOR;
- YYFILL(2);
- yych = *YYCURSOR;
+#line 3464 "Zend/zend_language_scanner.c"
+yy220:
YYDEBUG(220, *YYCURSOR);
- if (yybm[0+yych] & 128) {
- goto yy219;
- }
- if (yych <= 'Z') {
- if (yych <= '&') {
- if (yych == '"') goto yy224;
- goto yy157;
- } else {
- if (yych <= '\'') goto yy223;
- if (yych <= '@') goto yy157;
- }
- } else {
- if (yych <= '`') {
- if (yych != '_') goto yy157;
- } else {
- if (yych <= 'z') goto yy221;
- if (yych <= 0x7F) goto yy157;
- }
- }
-yy221:
- YYDEBUG(221, *YYCURSOR);
++YYCURSOR;
- YYFILL(2);
- yych = *YYCURSOR;
+ YYDEBUG(221, *YYCURSOR);
+ yyleng = YYCURSOR - SCNG(yy_text);
+#line 1324 "Zend/zend_language_scanner.l"
+ {
+ RETURN_TOKEN(T_COALESCE);
+}
+#line 3474 "Zend/zend_language_scanner.c"
+yy222:
YYDEBUG(222, *YYCURSOR);
- if (yych <= '@') {
- if (yych <= '\f') {
- if (yych == '\n') goto yy228;
- goto yy157;
- } else {
- if (yych <= '\r') goto yy230;
- if (yych <= '/') goto yy157;
- if (yych <= '9') goto yy221;
- goto yy157;
- }
- } else {
- if (yych <= '_') {
- if (yych <= 'Z') goto yy221;
- if (yych <= '^') goto yy157;
- goto yy221;
- } else {
- if (yych <= '`') goto yy157;
- if (yych <= 'z') goto yy221;
- if (yych <= 0x7F) goto yy157;
- goto yy221;
- }
- }
+ yych = *++YYCURSOR;
+ if (yych == 'S') goto yy315;
+ if (yych == 's') goto yy315;
+ goto yy128;
yy223:
YYDEBUG(223, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == '\'') goto yy157;
- if (yych <= '/') goto yy232;
- if (yych <= '9') goto yy157;
- goto yy232;
+ if (yych == 'D') goto yy316;
+ if (yych == 'd') goto yy316;
+ goto yy128;
yy224:
YYDEBUG(224, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == '"') goto yy157;
- if (yych <= '/') goto yy226;
- if (yych <= '9') goto yy157;
- goto yy226;
+ if (yych == 'R') goto yy318;
+ if (yych == 'r') goto yy318;
+ goto yy128;
yy225:
YYDEBUG(225, *YYCURSOR);
++YYCURSOR;
- YYFILL(3);
- yych = *YYCURSOR;
-yy226:
- YYDEBUG(226, *YYCURSOR);
- if (yych <= 'Z') {
- if (yych <= '/') {
- if (yych != '"') goto yy157;
- } else {
- if (yych <= '9') goto yy225;
- if (yych <= '@') goto yy157;
- goto yy225;
- }
- } else {
- if (yych <= '`') {
- if (yych == '_') goto yy225;
- goto yy157;
- } else {
- if (yych <= 'z') goto yy225;
- if (yych <= 0x7F) goto yy157;
- goto yy225;
- }
+ if (yybm[0+(yych = *YYCURSOR)] & 16) {
+ goto yy127;
}
+ YYDEBUG(226, *YYCURSOR);
+ yyleng = YYCURSOR - SCNG(yy_text);
+#line 1226 "Zend/zend_language_scanner.l"
+ {
+ RETURN_TOKEN(T_AS);
+}
+#line 3505 "Zend/zend_language_scanner.c"
yy227:
YYDEBUG(227, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == '\n') goto yy228;
- if (yych == '\r') goto yy230;
- goto yy157;
+ if (yych == '<') goto yy319;
+ goto yy166;
yy228:
YYDEBUG(228, *YYCURSOR);
- ++YYCURSOR;
+ yych = *++YYCURSOR;
+ if (yych == 'E') goto yy320;
+ if (yych == 'e') goto yy320;
+ goto yy128;
yy229:
YYDEBUG(229, *YYCURSOR);
- yyleng = YYCURSOR - SCNG(yy_text);
-#line 2077 "Zend/zend_language_scanner.l"
- {
- char *s;
- int bprefix = (yytext[0] != '<') ? 1 : 0;
- zend_heredoc_label *heredoc_label = emalloc(sizeof(zend_heredoc_label));
-
- CG(zend_lineno)++;
- heredoc_label->length = yyleng-bprefix-3-1-(yytext[yyleng-2]=='\r'?1:0);
- s = yytext+bprefix+3;
- while ((*s == ' ') || (*s == '\t')) {
- s++;
- heredoc_label->length--;
- }
-
- if (*s == '\'') {
- s++;
- heredoc_label->length -= 2;
-
- BEGIN(ST_NOWDOC);
- } else {
- if (*s == '"') {
- s++;
- heredoc_label->length -= 2;
- }
-
- BEGIN(ST_HEREDOC);
- }
-
- heredoc_label->label = estrndup(s, heredoc_label->length);
-
- /* Check for ending label on the next line */
- if (heredoc_label->length < YYLIMIT - YYCURSOR && !memcmp(YYCURSOR, s, heredoc_label->length)) {
- YYCTYPE *end = YYCURSOR + heredoc_label->length;
-
- if (*end == ';') {
- end++;
- }
-
- if (*end == '\n' || *end == '\r') {
- BEGIN(ST_END_HEREDOC);
+ yych = *++YYCURSOR;
+ if (yych <= 'T') {
+ if (yych <= 'L') {
+ if (yych <= 'K') goto yy128;
+ goto yy321;
+ } else {
+ if (yych <= 'R') goto yy128;
+ if (yych <= 'S') goto yy322;
+ goto yy323;
+ }
+ } else {
+ if (yych <= 'r') {
+ if (yych == 'l') goto yy321;
+ goto yy128;
+ } else {
+ if (yych <= 's') goto yy322;
+ if (yych <= 't') goto yy323;
+ goto yy128;
+ }
}
- }
-
- zend_ptr_stack_push(&SCNG(heredoc_label_stack), (void *) heredoc_label);
-
- RETURN_TOKEN(T_START_HEREDOC);
-}
-#line 3641 "Zend/zend_language_scanner.c"
yy230:
YYDEBUG(230, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == '\n') goto yy228;
- goto yy229;
+ if (yych <= 'O') {
+ if (yych == 'A') goto yy324;
+ if (yych <= 'N') goto yy128;
+ goto yy325;
+ } else {
+ if (yych <= 'a') {
+ if (yych <= '`') goto yy128;
+ goto yy324;
+ } else {
+ if (yych == 'o') goto yy325;
+ goto yy128;
+ }
+ }
yy231:
YYDEBUG(231, *YYCURSOR);
- ++YYCURSOR;
- YYFILL(3);
- yych = *YYCURSOR;
+ yych = *++YYCURSOR;
+ if (yych == 'N') goto yy326;
+ if (yych == 'n') goto yy326;
+ goto yy128;
yy232:
YYDEBUG(232, *YYCURSOR);
- if (yych <= 'Z') {
- if (yych <= '/') {
- if (yych == '\'') goto yy227;
- goto yy157;
- } else {
- if (yych <= '9') goto yy231;
- if (yych <= '@') goto yy157;
- goto yy231;
- }
+ yych = *++YYCURSOR;
+ if (yych <= 'F') {
+ if (yych == 'C') goto yy327;
+ if (yych <= 'E') goto yy128;
+ goto yy328;
} else {
- if (yych <= '`') {
- if (yych == '_') goto yy231;
- goto yy157;
+ if (yych <= 'c') {
+ if (yych <= 'b') goto yy128;
+ goto yy327;
} else {
- if (yych <= 'z') goto yy231;
- if (yych <= 0x7F) goto yy157;
- goto yy231;
+ if (yych == 'f') goto yy328;
+ goto yy128;
}
}
yy233:
YYDEBUG(233, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych != '=') goto yy214;
+ if (yych == 'E') goto yy329;
+ if (yych == 'e') goto yy329;
+ goto yy128;
+yy234:
YYDEBUG(234, *YYCURSOR);
++YYCURSOR;
+ if (yybm[0+(yych = *YYCURSOR)] & 16) {
+ goto yy127;
+ }
YYDEBUG(235, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1472 "Zend/zend_language_scanner.l"
+#line 1194 "Zend/zend_language_scanner.l"
{
- RETURN_TOKEN(T_IS_NOT_IDENTICAL);
+ RETURN_TOKEN(T_DO);
}
-#line 3685 "Zend/zend_language_scanner.c"
+#line 3595 "Zend/zend_language_scanner.c"
yy236:
YYDEBUG(236, *YYCURSOR);
- ++YYCURSOR;
+ yych = *++YYCURSOR;
+ if (yych == 'H') goto yy331;
+ if (yych == 'h') goto yy331;
+ goto yy128;
+yy237:
YYDEBUG(237, *YYCURSOR);
- yyleng = YYCURSOR - SCNG(yy_text);
-#line 1496 "Zend/zend_language_scanner.l"
- {
- RETURN_TOKEN(T_PLUS_EQUAL);
-}
-#line 3695 "Zend/zend_language_scanner.c"
+ yych = *++YYCURSOR;
+ if (yych == 'S') goto yy332;
+ if (yych == 's') goto yy332;
+ goto yy128;
yy238:
YYDEBUG(238, *YYCURSOR);
- ++YYCURSOR;
+ yych = *++YYCURSOR;
+ if (yych == 'P') goto yy333;
+ if (yych == 'p') goto yy333;
+ goto yy128;
+yy239:
YYDEBUG(239, *YYCURSOR);
- yyleng = YYCURSOR - SCNG(yy_text);
-#line 1460 "Zend/zend_language_scanner.l"
- {
- RETURN_TOKEN(T_INC);
-}
-#line 3705 "Zend/zend_language_scanner.c"
+ yych = *++YYCURSOR;
+ if (yych == 'D') goto yy334;
+ if (yych == 'd') goto yy334;
+ goto yy128;
yy240:
YYDEBUG(240, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'S') goto yy241;
- if (yych != 's') goto yy150;
+ if (yych == 'A') goto yy335;
+ if (yych == 'a') goto yy335;
+ goto yy128;
yy241:
YYDEBUG(241, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'T') goto yy242;
- if (yych != 't') goto yy150;
+ if (yych <= 'T') {
+ if (yych == 'I') goto yy336;
+ if (yych <= 'S') goto yy128;
+ goto yy337;
+ } else {
+ if (yych <= 'i') {
+ if (yych <= 'h') goto yy128;
+ goto yy336;
+ } else {
+ if (yych == 't') goto yy337;
+ goto yy128;
+ }
+ }
yy242:
YYDEBUG(242, *YYCURSOR);
- ++YYCURSOR;
- if (yybm[0+(yych = *YYCURSOR)] & 4) {
- goto yy149;
- }
+ yych = *++YYCURSOR;
+ if (yych == 'N') goto yy338;
+ if (yych == 'n') goto yy338;
+ goto yy128;
+yy243:
YYDEBUG(243, *YYCURSOR);
- yyleng = YYCURSOR - SCNG(yy_text);
-#line 1448 "Zend/zend_language_scanner.l"
- {
- RETURN_TOKEN(T_LIST);
-}
-#line 3728 "Zend/zend_language_scanner.c"
+ yych = *++YYCURSOR;
+ if (yych == 'R') goto yy339;
+ if (yych == 'r') goto yy339;
+ goto yy128;
yy244:
YYDEBUG(244, *YYCURSOR);
- ++YYCURSOR;
- if ((yych = *YYCURSOR) == '=') goto yy248;
+ yych = *++YYCURSOR;
+ if (yych == 'N') goto yy341;
+ if (yych == 'n') goto yy341;
+ goto yy128;
+yy245:
YYDEBUG(245, *YYCURSOR);
- yyleng = YYCURSOR - SCNG(yy_text);
-#line 1476 "Zend/zend_language_scanner.l"
- {
- RETURN_TOKEN(T_IS_EQUAL);
-}
-#line 3739 "Zend/zend_language_scanner.c"
+ yych = *++YYCURSOR;
+ if (yych == 'O') goto yy342;
+ if (yych == 'o') goto yy342;
+ goto yy128;
yy246:
YYDEBUG(246, *YYCURSOR);
- ++YYCURSOR;
+ yych = *++YYCURSOR;
+ if (yych == 'T') goto yy343;
+ if (yych == 't') goto yy343;
+ goto yy128;
+yy247:
YYDEBUG(247, *YYCURSOR);
- yyleng = YYCURSOR - SCNG(yy_text);
-#line 1444 "Zend/zend_language_scanner.l"
- {
- RETURN_TOKEN(T_DOUBLE_ARROW);
-}
-#line 3749 "Zend/zend_language_scanner.c"
-yy248:
- YYDEBUG(248, *YYCURSOR);
++YYCURSOR;
- YYDEBUG(249, *YYCURSOR);
+ if (yybm[0+(yych = *YYCURSOR)] & 16) {
+ goto yy127;
+ }
+ YYDEBUG(248, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1468 "Zend/zend_language_scanner.l"
+#line 1170 "Zend/zend_language_scanner.l"
{
- RETURN_TOKEN(T_IS_IDENTICAL);
+ RETURN_TOKEN(T_IF);
}
-#line 3759 "Zend/zend_language_scanner.c"
+#line 3684 "Zend/zend_language_scanner.c"
+yy249:
+ YYDEBUG(249, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if (yych == 'P') goto yy344;
+ if (yych == 'p') goto yy344;
+ goto yy128;
yy250:
YYDEBUG(250, *YYCURSOR);
yych = *++YYCURSOR;
- YYDEBUG(-1, yych);
- switch (yych) {
- case 'C':
- case 'c': goto yy252;
- case 'D':
- case 'd': goto yy257;
- case 'F':
- case 'f': goto yy254;
- case 'H':
- case 'h': goto yy251;
- case 'L':
- case 'l': goto yy256;
- case 'M':
- case 'm': goto yy255;
- case 'N':
- case 'n': goto yy258;
- case 'T':
- case 't': goto yy253;
- default: goto yy150;
+ if (yych <= 'T') {
+ if (yych <= 'C') {
+ if (yych <= 'B') goto yy128;
+ goto yy345;
+ } else {
+ if (yych <= 'R') goto yy128;
+ if (yych <= 'S') goto yy346;
+ goto yy347;
+ }
+ } else {
+ if (yych <= 'r') {
+ if (yych == 'c') goto yy345;
+ goto yy128;
+ } else {
+ if (yych <= 's') goto yy346;
+ if (yych <= 't') goto yy347;
+ goto yy128;
+ }
}
yy251:
YYDEBUG(251, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'A') goto yy319;
- if (yych == 'a') goto yy319;
- goto yy150;
+ if (yych == 'S') goto yy348;
+ if (yych == 's') goto yy348;
+ goto yy128;
yy252:
YYDEBUG(252, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'L') goto yy312;
- if (yych == 'l') goto yy312;
- goto yy150;
+ if (yych == 'S') goto yy349;
+ if (yych == 's') goto yy349;
+ goto yy128;
yy253:
YYDEBUG(253, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'R') goto yy305;
- if (yych == 'r') goto yy305;
- goto yy150;
+ if (yych == 'M') goto yy350;
+ if (yych == 'm') goto yy350;
+ goto yy128;
yy254:
YYDEBUG(254, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych <= 'U') {
- if (yych == 'I') goto yy289;
- if (yych <= 'T') goto yy150;
- goto yy290;
- } else {
- if (yych <= 'i') {
- if (yych <= 'h') goto yy150;
- goto yy289;
- } else {
- if (yych == 'u') goto yy290;
- goto yy150;
- }
- }
+ if (yych == 'W') goto yy351;
+ if (yych == 'w') goto yy351;
+ goto yy128;
yy255:
YYDEBUG(255, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych == 'E') goto yy281;
- if (yych == 'e') goto yy281;
- goto yy150;
-yy256:
+ ++YYCURSOR;
+ if (yybm[0+(yych = *YYCURSOR)] & 16) {
+ goto yy127;
+ }
YYDEBUG(256, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych == 'I') goto yy275;
- if (yych == 'i') goto yy275;
- goto yy150;
+ yyleng = YYCURSOR - SCNG(yy_text);
+#line 1556 "Zend/zend_language_scanner.l"
+ {
+ RETURN_TOKEN(T_LOGICAL_OR);
+}
+#line 3749 "Zend/zend_language_scanner.c"
yy257:
YYDEBUG(257, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'I') goto yy270;
- if (yych == 'i') goto yy270;
- goto yy150;
+ if (yych <= 'O') {
+ if (yych == 'I') goto yy353;
+ if (yych <= 'N') goto yy128;
+ goto yy354;
+ } else {
+ if (yych <= 'i') {
+ if (yych <= 'h') goto yy128;
+ goto yy353;
+ } else {
+ if (yych == 'o') goto yy354;
+ goto yy128;
+ }
+ }
yy258:
YYDEBUG(258, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'A') goto yy259;
- if (yych != 'a') goto yy150;
+ if (yych == 'B') goto yy355;
+ if (yych == 'b') goto yy355;
+ goto yy128;
yy259:
YYDEBUG(259, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'M') goto yy260;
- if (yych != 'm') goto yy150;
+ if (yych <= 'T') {
+ if (yych == 'Q') goto yy356;
+ if (yych <= 'S') goto yy128;
+ goto yy357;
+ } else {
+ if (yych <= 'q') {
+ if (yych <= 'p') goto yy128;
+ goto yy356;
+ } else {
+ if (yych == 't') goto yy357;
+ goto yy128;
+ }
+ }
yy260:
YYDEBUG(260, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'E') goto yy261;
- if (yych != 'e') goto yy150;
+ if (yych == 'A') goto yy358;
+ if (yych == 'a') goto yy358;
+ goto yy128;
yy261:
YYDEBUG(261, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'S') goto yy262;
- if (yych != 's') goto yy150;
+ if (yych == 'I') goto yy359;
+ if (yych == 'i') goto yy359;
+ goto yy128;
yy262:
YYDEBUG(262, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'P') goto yy263;
- if (yych != 'p') goto yy150;
+ if (yych == 'R') goto yy360;
+ if (yych == 'r') goto yy360;
+ goto yy128;
yy263:
YYDEBUG(263, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'A') goto yy264;
- if (yych != 'a') goto yy150;
+ if (yych <= 'Y') {
+ if (yych == 'A') goto yy361;
+ if (yych <= 'X') goto yy128;
+ goto yy362;
+ } else {
+ if (yych <= 'a') {
+ if (yych <= '`') goto yy128;
+ goto yy361;
+ } else {
+ if (yych == 'y') goto yy362;
+ goto yy128;
+ }
+ }
yy264:
YYDEBUG(264, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'C') goto yy265;
- if (yych != 'c') goto yy150;
+ if (yych == 'S') goto yy364;
+ if (yych == 's') goto yy364;
+ goto yy128;
yy265:
YYDEBUG(265, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'E') goto yy266;
- if (yych != 'e') goto yy150;
+ if (yych == 'E') goto yy365;
+ if (yych == 'e') goto yy365;
+ goto yy128;
yy266:
YYDEBUG(266, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych != '_') goto yy150;
+ if (yych == 'R') goto yy367;
+ if (yych == 'r') goto yy367;
+ goto yy128;
+yy267:
YYDEBUG(267, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych != '_') goto yy150;
+ if (yych == 'I') goto yy369;
+ if (yych == 'i') goto yy369;
+ goto yy128;
+yy268:
YYDEBUG(268, *YYCURSOR);
- ++YYCURSOR;
- if (yybm[0+(yych = *YYCURSOR)] & 4) {
- goto yy149;
- }
+ yych = *++YYCURSOR;
+ if (yych == 'R') goto yy370;
+ if (yych == 'r') goto yy370;
+ goto yy128;
+yy269:
YYDEBUG(269, *YYCURSOR);
- yyleng = YYCURSOR - SCNG(yy_text);
-#line 1777 "Zend/zend_language_scanner.l"
- {
- RETURN_TOKEN(T_NS_C);
-}
-#line 3893 "Zend/zend_language_scanner.c"
+ yych = *++YYCURSOR;
+ if (yych == 'E') goto yy372;
+ if (yych == 'e') goto yy372;
+ goto yy128;
yy270:
YYDEBUG(270, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych == 'R') goto yy271;
- if (yych != 'r') goto yy150;
-yy271:
+ ++YYCURSOR;
YYDEBUG(271, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych != '_') goto yy150;
+ yyleng = YYCURSOR - SCNG(yy_text);
+#line 1544 "Zend/zend_language_scanner.l"
+ {
+ RETURN_TOKEN(T_XOR_EQUAL);
+}
+#line 3867 "Zend/zend_language_scanner.c"
+yy272:
YYDEBUG(272, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych != '_') goto yy150;
+ switch (yych) {
+ case 'C':
+ case 'c': goto yy373;
+ case 'D':
+ case 'd': goto yy374;
+ case 'F':
+ case 'f': goto yy375;
+ case 'H':
+ case 'h': goto yy376;
+ case 'L':
+ case 'l': goto yy377;
+ case 'M':
+ case 'm': goto yy378;
+ case 'N':
+ case 'n': goto yy379;
+ case 'T':
+ case 't': goto yy380;
+ default: goto yy128;
+ }
+yy273:
YYDEBUG(273, *YYCURSOR);
++YYCURSOR;
- if (yybm[0+(yych = *YYCURSOR)] & 4) {
- goto yy149;
- }
YYDEBUG(274, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1773 "Zend/zend_language_scanner.l"
+#line 1540 "Zend/zend_language_scanner.l"
{
- RETURN_TOKEN(T_DIR);
+ RETURN_TOKEN(T_OR_EQUAL);
}
-#line 3917 "Zend/zend_language_scanner.c"
+#line 3899 "Zend/zend_language_scanner.c"
yy275:
YYDEBUG(275, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych == 'N') goto yy276;
- if (yych != 'n') goto yy150;
-yy276:
+ ++YYCURSOR;
YYDEBUG(276, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych == 'E') goto yy277;
- if (yych != 'e') goto yy150;
+ yyleng = YYCURSOR - SCNG(yy_text);
+#line 1548 "Zend/zend_language_scanner.l"
+ {
+ RETURN_TOKEN(T_BOOLEAN_OR);
+}
+#line 3909 "Zend/zend_language_scanner.c"
yy277:
YYDEBUG(277, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych != '_') goto yy150;
- YYDEBUG(278, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych != '_') goto yy150;
- YYDEBUG(279, *YYCURSOR);
++YYCURSOR;
- if (yybm[0+(yych = *YYCURSOR)] & 4) {
- goto yy149;
- }
- YYDEBUG(280, *YYCURSOR);
+ YYDEBUG(278, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1765 "Zend/zend_language_scanner.l"
+#line 1472 "Zend/zend_language_scanner.l"
{
- RETURN_TOKEN(T_LINE);
+ RETURN_TOKEN(T_IS_NOT_IDENTICAL);
}
-#line 3946 "Zend/zend_language_scanner.c"
+#line 3919 "Zend/zend_language_scanner.c"
+yy279:
+ YYDEBUG(279, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if (yych == 'R') goto yy381;
+ if (yych == 'r') goto yy381;
+ goto yy166;
+yy280:
+ YYDEBUG(280, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if (yych == 'N') goto yy382;
+ if (yych == 'n') goto yy382;
+ goto yy166;
yy281:
YYDEBUG(281, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'T') goto yy282;
- if (yych != 't') goto yy150;
+ if (yych == 'O') goto yy383;
+ if (yych == 'o') goto yy383;
+ goto yy166;
yy282:
YYDEBUG(282, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'H') goto yy283;
- if (yych != 'h') goto yy150;
+ if (yych == 'U') goto yy384;
+ if (yych == 'u') goto yy384;
+ goto yy166;
yy283:
YYDEBUG(283, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'O') goto yy284;
- if (yych != 'o') goto yy150;
+ if (yych == 'O') goto yy385;
+ if (yych == 'o') goto yy385;
+ goto yy166;
yy284:
YYDEBUG(284, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'D') goto yy285;
- if (yych != 'd') goto yy150;
+ if (yych == 'T') goto yy386;
+ if (yych == 't') goto yy386;
+ goto yy166;
yy285:
YYDEBUG(285, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych != '_') goto yy150;
+ if (yych == 'J') goto yy387;
+ if (yych == 'j') goto yy387;
+ goto yy166;
+yy286:
YYDEBUG(286, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych != '_') goto yy150;
+ if (yych == 'A') goto yy388;
+ if (yych == 'a') goto yy388;
+ goto yy166;
+yy287:
YYDEBUG(287, *YYCURSOR);
- ++YYCURSOR;
- if (yybm[0+(yych = *YYCURSOR)] & 4) {
- goto yy149;
- }
+ yych = *++YYCURSOR;
+ if (yych == 'R') goto yy389;
+ if (yych == 'r') goto yy389;
+ goto yy166;
+yy288:
YYDEBUG(288, *YYCURSOR);
- yyleng = YYCURSOR - SCNG(yy_text);
-#line 1761 "Zend/zend_language_scanner.l"
- {
- RETURN_TOKEN(T_METHOD_C);
-}
-#line 3985 "Zend/zend_language_scanner.c"
+ yych = *++YYCURSOR;
+ if (yych == 'S') goto yy390;
+ if (yych == 's') goto yy390;
+ goto yy166;
yy289:
YYDEBUG(289, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych == 'L') goto yy300;
- if (yych == 'l') goto yy300;
- goto yy150;
-yy290:
+ ++YYCURSOR;
YYDEBUG(290, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych == 'N') goto yy291;
- if (yych != 'n') goto yy150;
+ yyleng = YYCURSOR - SCNG(yy_text);
+#line 1512 "Zend/zend_language_scanner.l"
+ {
+ RETURN_TOKEN(T_POW_EQUAL);
+}
+#line 3989 "Zend/zend_language_scanner.c"
yy291:
YYDEBUG(291, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych == 'C') goto yy292;
- if (yych != 'c') goto yy150;
-yy292:
+ ++YYCURSOR;
YYDEBUG(292, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych == 'T') goto yy293;
- if (yych != 't') goto yy150;
+ yyleng = YYCURSOR - SCNG(yy_text);
+#line 1320 "Zend/zend_language_scanner.l"
+ {
+ RETURN_TOKEN(T_ELLIPSIS);
+}
+#line 3999 "Zend/zend_language_scanner.c"
yy293:
YYDEBUG(293, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'I') goto yy294;
- if (yych != 'i') goto yy150;
+ if (yych <= '\f') {
+ if (yych <= 0x08) goto yy166;
+ if (yych <= '\n') goto yy391;
+ goto yy166;
+ } else {
+ if (yych <= '\r') goto yy391;
+ if (yych == ' ') goto yy391;
+ goto yy166;
+ }
yy294:
YYDEBUG(294, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych == 'O') goto yy295;
- if (yych != 'o') goto yy150;
-yy295:
+ ++YYCURSOR;
+ YYFILL(1);
+ yych = *YYCURSOR;
YYDEBUG(295, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych == 'N') goto yy296;
- if (yych != 'n') goto yy150;
-yy296:
+ if (yybm[0+yych] & 64) {
+ goto yy294;
+ }
YYDEBUG(296, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych != '_') goto yy150;
+ yyleng = YYCURSOR - SCNG(yy_text);
+#line 1618 "Zend/zend_language_scanner.l"
+ {
+ char *bin = yytext + 2; /* Skip "0b" */
+ int len = yyleng - 2;
+ char *end;
+
+ /* Skip any leading 0s */
+ while (*bin == '0') {
+ ++bin;
+ --len;
+ }
+
+ if (len < SIZEOF_ZEND_LONG * 8) {
+ if (len == 0) {
+ ZVAL_LONG(zendlval, 0);
+ } else {
+ errno = 0;
+ ZVAL_LONG(zendlval, ZEND_STRTOL(bin, &end, 2));
+ ZEND_ASSERT(!errno && end == yytext + yyleng);
+ }
+ RETURN_TOKEN(T_LNUMBER);
+ } else {
+ ZVAL_DOUBLE(zendlval, zend_bin_strtod(bin, (const char **)&end));
+ /* errno isn't checked since we allow HUGE_VAL/INF overflow */
+ ZEND_ASSERT(end == yytext + yyleng);
+ RETURN_TOKEN(T_DNUMBER);
+ }
+}
+#line 4051 "Zend/zend_language_scanner.c"
+yy297:
YYDEBUG(297, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych != '_') goto yy150;
+ if (yych <= '/') goto yy166;
+ if (yych >= ':') goto yy166;
+yy298:
YYDEBUG(298, *YYCURSOR);
++YYCURSOR;
- if (yybm[0+(yych = *YYCURSOR)] & 4) {
- goto yy149;
- }
+ YYFILL(1);
+ yych = *YYCURSOR;
YYDEBUG(299, *YYCURSOR);
- yyleng = YYCURSOR - SCNG(yy_text);
-#line 1757 "Zend/zend_language_scanner.l"
- {
- RETURN_TOKEN(T_FUNC_C);
-}
-#line 4040 "Zend/zend_language_scanner.c"
+ if (yych <= '/') goto yy193;
+ if (yych <= '9') goto yy298;
+ goto yy193;
yy300:
YYDEBUG(300, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych == 'E') goto yy301;
- if (yych != 'e') goto yy150;
-yy301:
- YYDEBUG(301, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych != '_') goto yy150;
- YYDEBUG(302, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych != '_') goto yy150;
- YYDEBUG(303, *YYCURSOR);
++YYCURSOR;
- if (yybm[0+(yych = *YYCURSOR)] & 4) {
- goto yy149;
+ YYFILL(1);
+ yych = *YYCURSOR;
+ YYDEBUG(301, *YYCURSOR);
+ if (yybm[0+yych] & 128) {
+ goto yy300;
}
- YYDEBUG(304, *YYCURSOR);
+ YYDEBUG(302, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1769 "Zend/zend_language_scanner.l"
+#line 1691 "Zend/zend_language_scanner.l"
{
- RETURN_TOKEN(T_FILE);
+ char *hex = yytext + 2; /* Skip "0x" */
+ int len = yyleng - 2;
+ char *end;
+
+ /* Skip any leading 0s */
+ while (*hex == '0') {
+ hex++;
+ len--;
+ }
+
+ if (len < SIZEOF_ZEND_LONG * 2 || (len == SIZEOF_ZEND_LONG * 2 && *hex <= '7')) {
+ if (len == 0) {
+ ZVAL_LONG(zendlval, 0);
+ } else {
+ errno = 0;
+ ZVAL_LONG(zendlval, ZEND_STRTOL(hex, &end, 16));
+ ZEND_ASSERT(!errno && end == hex + len);
+ }
+ RETURN_TOKEN(T_LNUMBER);
+ } else {
+ ZVAL_DOUBLE(zendlval, zend_hex_strtod(hex, (const char **)&end));
+ /* errno isn't checked since we allow HUGE_VAL/INF overflow */
+ ZEND_ASSERT(end == hex + len);
+ RETURN_TOKEN(T_DNUMBER);
+ }
}
-#line 4064 "Zend/zend_language_scanner.c"
+#line 4105 "Zend/zend_language_scanner.c"
+yy303:
+ YYDEBUG(303, *YYCURSOR);
+ ++YYCURSOR;
+ YYFILL(2);
+ yych = *YYCURSOR;
+ YYDEBUG(304, *YYCURSOR);
+ if (yych <= '\'') {
+ if (yych <= ' ') {
+ if (yych == '\t') goto yy303;
+ if (yych <= 0x1F) goto yy166;
+ goto yy303;
+ } else {
+ if (yych == '"') goto yy393;
+ if (yych <= '&') goto yy166;
+ goto yy394;
+ }
+ } else {
+ if (yych <= '_') {
+ if (yych <= '@') goto yy166;
+ if (yych <= 'Z') goto yy395;
+ if (yych <= '^') goto yy166;
+ goto yy395;
+ } else {
+ if (yych <= '`') goto yy166;
+ if (yych <= 'z') goto yy395;
+ if (yych <= 0x7F) goto yy166;
+ goto yy395;
+ }
+ }
yy305:
YYDEBUG(305, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych == 'A') goto yy306;
- if (yych != 'a') goto yy150;
-yy306:
+ ++YYCURSOR;
YYDEBUG(306, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych == 'I') goto yy307;
- if (yych != 'i') goto yy150;
+ yyleng = YYCURSOR - SCNG(yy_text);
+#line 1528 "Zend/zend_language_scanner.l"
+ {
+ RETURN_TOKEN(T_SL_EQUAL);
+}
+#line 4144 "Zend/zend_language_scanner.c"
yy307:
YYDEBUG(307, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych == 'T') goto yy308;
- if (yych != 't') goto yy150;
-yy308:
+ ++YYCURSOR;
YYDEBUG(308, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych != '_') goto yy150;
+ yyleng = YYCURSOR - SCNG(yy_text);
+#line 1484 "Zend/zend_language_scanner.l"
+ {
+ RETURN_TOKEN(T_SPACESHIP);
+}
+#line 4154 "Zend/zend_language_scanner.c"
+yy309:
YYDEBUG(309, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych != '_') goto yy150;
- YYDEBUG(310, *YYCURSOR);
++YYCURSOR;
- if (yybm[0+(yych = *YYCURSOR)] & 4) {
- goto yy149;
- }
- YYDEBUG(311, *YYCURSOR);
+ YYDEBUG(310, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1753 "Zend/zend_language_scanner.l"
+#line 1468 "Zend/zend_language_scanner.l"
{
- RETURN_TOKEN(T_TRAIT_C);
+ RETURN_TOKEN(T_IS_IDENTICAL);
}
-#line 4098 "Zend/zend_language_scanner.c"
-yy312:
+#line 4164 "Zend/zend_language_scanner.c"
+yy311:
+ YYDEBUG(311, *YYCURSOR);
+ ++YYCURSOR;
YYDEBUG(312, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych == 'A') goto yy313;
- if (yych != 'a') goto yy150;
+ yyleng = YYCURSOR - SCNG(yy_text);
+#line 1532 "Zend/zend_language_scanner.l"
+ {
+ RETURN_TOKEN(T_SR_EQUAL);
+}
+#line 4174 "Zend/zend_language_scanner.c"
yy313:
YYDEBUG(313, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'S') goto yy314;
- if (yych != 's') goto yy150;
+ goto yy219;
yy314:
YYDEBUG(314, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'S') goto yy315;
- if (yych != 's') goto yy150;
+ if (yych == '\n') goto yy313;
+ goto yy219;
yy315:
YYDEBUG(315, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych != '_') goto yy150;
+ if (yych == 'T') goto yy397;
+ if (yych == 't') goto yy397;
+ goto yy128;
+yy316:
YYDEBUG(316, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych != '_') goto yy150;
- YYDEBUG(317, *YYCURSOR);
++YYCURSOR;
- if (yybm[0+(yych = *YYCURSOR)] & 4) {
- goto yy149;
+ if (yybm[0+(yych = *YYCURSOR)] & 16) {
+ goto yy127;
}
- YYDEBUG(318, *YYCURSOR);
+ YYDEBUG(317, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1749 "Zend/zend_language_scanner.l"
+#line 1560 "Zend/zend_language_scanner.l"
{
- RETURN_TOKEN(T_CLASS_C);
+ RETURN_TOKEN(T_LOGICAL_AND);
}
-#line 4132 "Zend/zend_language_scanner.c"
+#line 4202 "Zend/zend_language_scanner.c"
+yy318:
+ YYDEBUG(318, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if (yych == 'A') goto yy398;
+ if (yych == 'a') goto yy398;
+ goto yy128;
yy319:
YYDEBUG(319, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'L') goto yy320;
- if (yych != 'l') goto yy150;
+ if (yych == '<') goto yy303;
+ goto yy166;
yy320:
YYDEBUG(320, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'T') goto yy321;
- if (yych != 't') goto yy150;
+ if (yych == 'A') goto yy399;
+ if (yych == 'a') goto yy399;
+ goto yy128;
yy321:
YYDEBUG(321, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych != '_') goto yy150;
+ if (yych == 'L') goto yy400;
+ if (yych == 'l') goto yy400;
+ goto yy128;
+yy322:
YYDEBUG(322, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'C') goto yy323;
- if (yych != 'c') goto yy150;
+ if (yych == 'E') goto yy401;
+ if (yych == 'e') goto yy401;
+ goto yy128;
yy323:
YYDEBUG(323, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'O') goto yy324;
- if (yych != 'o') goto yy150;
+ if (yych == 'C') goto yy403;
+ if (yych == 'c') goto yy403;
+ goto yy128;
yy324:
YYDEBUG(324, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'M') goto yy325;
- if (yych != 'm') goto yy150;
+ if (yych == 'S') goto yy404;
+ if (yych == 's') goto yy404;
+ goto yy128;
yy325:
YYDEBUG(325, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'P') goto yy326;
- if (yych != 'p') goto yy150;
+ if (yych == 'N') goto yy405;
+ if (yych == 'n') goto yy405;
+ goto yy128;
yy326:
YYDEBUG(326, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'I') goto yy327;
- if (yych != 'i') goto yy150;
+ if (yych <= 'T') {
+ if (yych <= 'R') goto yy128;
+ if (yych <= 'S') goto yy406;
+ goto yy407;
+ } else {
+ if (yych <= 'r') goto yy128;
+ if (yych <= 's') goto yy406;
+ if (yych <= 't') goto yy407;
+ goto yy128;
+ }
yy327:
YYDEBUG(327, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'L') goto yy328;
- if (yych != 'l') goto yy150;
+ if (yych == 'L') goto yy408;
+ if (yych == 'l') goto yy408;
+ goto yy128;
yy328:
YYDEBUG(328, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'E') goto yy329;
- if (yych != 'e') goto yy150;
+ if (yych == 'A') goto yy409;
+ if (yych == 'a') goto yy409;
+ goto yy128;
yy329:
YYDEBUG(329, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych == 'R') goto yy330;
- if (yych != 'r') goto yy150;
-yy330:
- YYDEBUG(330, *YYCURSOR);
++YYCURSOR;
- if (yybm[0+(yych = *YYCURSOR)] & 4) {
- goto yy149;
+ if (yybm[0+(yych = *YYCURSOR)] & 16) {
+ goto yy127;
}
- YYDEBUG(331, *YYCURSOR);
+ YYDEBUG(330, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1412 "Zend/zend_language_scanner.l"
+#line 1129 "Zend/zend_language_scanner.l"
{
- RETURN_TOKEN(T_HALT_COMPILER);
+ RETURN_TOKEN(T_EXIT);
}
-#line 4198 "Zend/zend_language_scanner.c"
+#line 4287 "Zend/zend_language_scanner.c"
+yy331:
+ YYDEBUG(331, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if (yych == 'O') goto yy410;
+ if (yych == 'o') goto yy410;
+ goto yy128;
yy332:
YYDEBUG(332, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'S') goto yy336;
- if (yych == 's') goto yy336;
- goto yy150;
+ if (yych == 'E') goto yy412;
+ if (yych == 'e') goto yy412;
+ goto yy128;
yy333:
YYDEBUG(333, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'E') goto yy334;
- if (yych != 'e') goto yy150;
+ if (yych == 'T') goto yy414;
+ if (yych == 't') goto yy414;
+ goto yy128;
yy334:
YYDEBUG(334, *YYCURSOR);
- ++YYCURSOR;
- if (yybm[0+(yych = *YYCURSOR)] & 4) {
- goto yy149;
+ yych = *++YYCURSOR;
+ switch (yych) {
+ case 'D':
+ case 'd': goto yy415;
+ case 'F':
+ case 'f': goto yy416;
+ case 'I':
+ case 'i': goto yy417;
+ case 'S':
+ case 's': goto yy418;
+ case 'W':
+ case 'w': goto yy419;
+ default: goto yy128;
}
+yy335:
YYDEBUG(335, *YYCURSOR);
- yyleng = YYCURSOR - SCNG(yy_text);
-#line 1392 "Zend/zend_language_scanner.l"
- {
- RETURN_TOKEN(T_USE);
-}
-#line 4222 "Zend/zend_language_scanner.c"
+ yych = *++YYCURSOR;
+ if (yych == 'L') goto yy420;
+ if (yych == 'l') goto yy420;
+ goto yy128;
yy336:
YYDEBUG(336, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'E') goto yy337;
- if (yych != 'e') goto yy150;
+ if (yych == 'T') goto yy422;
+ if (yych == 't') goto yy422;
+ goto yy128;
yy337:
YYDEBUG(337, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'T') goto yy338;
- if (yych != 't') goto yy150;
+ if (yych == 'E') goto yy424;
+ if (yych == 'e') goto yy424;
+ goto yy128;
yy338:
YYDEBUG(338, *YYCURSOR);
- ++YYCURSOR;
- if (yybm[0+(yych = *YYCURSOR)] & 4) {
- goto yy149;
- }
+ yych = *++YYCURSOR;
+ if (yych == 'A') goto yy425;
+ if (yych == 'a') goto yy425;
+ goto yy128;
+yy339:
YYDEBUG(339, *YYCURSOR);
- yyleng = YYCURSOR - SCNG(yy_text);
-#line 1440 "Zend/zend_language_scanner.l"
- {
- RETURN_TOKEN(T_UNSET);
-}
-#line 4245 "Zend/zend_language_scanner.c"
-yy340:
- YYDEBUG(340, *YYCURSOR);
++YYCURSOR;
- YYFILL(7);
- yych = *YYCURSOR;
-yy341:
- YYDEBUG(341, *YYCURSOR);
- if (yych <= 'S') {
- if (yych <= 'D') {
- if (yych <= ' ') {
- if (yych == '\t') goto yy340;
- if (yych <= 0x1F) goto yy157;
- goto yy340;
- } else {
- if (yych <= 'A') {
- if (yych <= '@') goto yy157;
- goto yy345;
- } else {
- if (yych <= 'B') goto yy343;
- if (yych <= 'C') goto yy157;
- goto yy348;
- }
- }
+ if ((yych = *YYCURSOR) <= '^') {
+ if (yych <= '@') {
+ if (yych <= '/') goto yy340;
+ if (yych <= '9') goto yy127;
} else {
- if (yych <= 'I') {
- if (yych == 'F') goto yy349;
- if (yych <= 'H') goto yy157;
- goto yy350;
- } else {
- if (yych <= 'O') {
- if (yych <= 'N') goto yy157;
- goto yy344;
- } else {
- if (yych <= 'Q') goto yy157;
- if (yych <= 'R') goto yy347;
- goto yy346;
- }
- }
+ if (yych == 'E') goto yy426;
+ if (yych <= 'Z') goto yy127;
}
} else {
- if (yych <= 'f') {
- if (yych <= 'a') {
- if (yych == 'U') goto yy342;
- if (yych <= '`') goto yy157;
- goto yy345;
- } else {
- if (yych <= 'c') {
- if (yych <= 'b') goto yy343;
- goto yy157;
- } else {
- if (yych <= 'd') goto yy348;
- if (yych <= 'e') goto yy157;
- goto yy349;
- }
- }
+ if (yych <= 'd') {
+ if (yych != '`') goto yy127;
} else {
- if (yych <= 'q') {
- if (yych <= 'i') {
- if (yych <= 'h') goto yy157;
- goto yy350;
- } else {
- if (yych == 'o') goto yy344;
- goto yy157;
- }
- } else {
- if (yych <= 's') {
- if (yych <= 'r') goto yy347;
- goto yy346;
- } else {
- if (yych != 'u') goto yy157;
- }
- }
+ if (yych <= 'e') goto yy426;
+ if (yych <= 'z') goto yy127;
+ if (yych >= 0x80) goto yy127;
}
}
+yy340:
+ YYDEBUG(340, *YYCURSOR);
+ yyleng = YYCURSOR - SCNG(yy_text);
+#line 1198 "Zend/zend_language_scanner.l"
+ {
+ RETURN_TOKEN(T_FOR);
+}
+#line 4373 "Zend/zend_language_scanner.c"
+yy341:
+ YYDEBUG(341, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if (yych == 'C') goto yy427;
+ if (yych == 'c') goto yy427;
+ goto yy128;
yy342:
YYDEBUG(342, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'N') goto yy409;
- if (yych == 'n') goto yy409;
- goto yy157;
+ if (yych == 'B') goto yy428;
+ if (yych == 'b') goto yy428;
+ goto yy128;
yy343:
YYDEBUG(343, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych <= 'O') {
- if (yych == 'I') goto yy396;
- if (yych <= 'N') goto yy157;
- goto yy397;
- } else {
- if (yych <= 'i') {
- if (yych <= 'h') goto yy157;
- goto yy396;
- } else {
- if (yych == 'o') goto yy397;
- goto yy157;
- }
- }
+ if (yych == 'O') goto yy429;
+ if (yych == 'o') goto yy429;
+ goto yy128;
yy344:
YYDEBUG(344, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'B') goto yy388;
- if (yych == 'b') goto yy388;
- goto yy157;
+ if (yych == 'L') goto yy431;
+ if (yych == 'l') goto yy431;
+ goto yy128;
yy345:
YYDEBUG(345, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'R') goto yy381;
- if (yych == 'r') goto yy381;
- goto yy157;
+ if (yych == 'L') goto yy432;
+ if (yych == 'l') goto yy432;
+ goto yy128;
yy346:
YYDEBUG(346, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'T') goto yy373;
- if (yych == 't') goto yy373;
- goto yy157;
+ if (yych == 'T') goto yy433;
+ if (yych == 't') goto yy433;
+ goto yy128;
yy347:
YYDEBUG(347, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'E') goto yy371;
- if (yych == 'e') goto yy371;
- goto yy157;
+ if (yych == 'E') goto yy434;
+ if (yych == 'e') goto yy434;
+ goto yy128;
yy348:
YYDEBUG(348, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'O') goto yy367;
- if (yych == 'o') goto yy367;
- goto yy157;
+ if (yych == 'E') goto yy435;
+ if (yych == 'e') goto yy435;
+ goto yy128;
yy349:
YYDEBUG(349, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'L') goto yy360;
- if (yych == 'l') goto yy360;
- goto yy157;
+ if (yych == 'T') goto yy436;
+ if (yych == 't') goto yy436;
+ goto yy128;
yy350:
YYDEBUG(350, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'N') goto yy351;
- if (yych != 'n') goto yy157;
+ if (yych == 'E') goto yy438;
+ if (yych == 'e') goto yy438;
+ goto yy128;
yy351:
YYDEBUG(351, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych == 'T') goto yy352;
- if (yych != 't') goto yy157;
-yy352:
+ ++YYCURSOR;
+ if (yybm[0+(yych = *YYCURSOR)] & 16) {
+ goto yy127;
+ }
YYDEBUG(352, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych == 'E') goto yy353;
- if (yych != 'e') goto yy355;
+ yyleng = YYCURSOR - SCNG(yy_text);
+#line 1328 "Zend/zend_language_scanner.l"
+ {
+ RETURN_TOKEN(T_NEW);
+}
+#line 4446 "Zend/zend_language_scanner.c"
yy353:
YYDEBUG(353, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'G') goto yy358;
- if (yych == 'g') goto yy358;
- goto yy157;
+ if (yych <= 'V') {
+ if (yych == 'N') goto yy439;
+ if (yych <= 'U') goto yy128;
+ goto yy440;
+ } else {
+ if (yych <= 'n') {
+ if (yych <= 'm') goto yy128;
+ goto yy439;
+ } else {
+ if (yych == 'v') goto yy440;
+ goto yy128;
+ }
+ }
yy354:
YYDEBUG(354, *YYCURSOR);
- ++YYCURSOR;
- YYFILL(1);
- yych = *YYCURSOR;
+ yych = *++YYCURSOR;
+ if (yych == 'T') goto yy441;
+ if (yych == 't') goto yy441;
+ goto yy128;
yy355:
YYDEBUG(355, *YYCURSOR);
- if (yych <= 0x1F) {
- if (yych == '\t') goto yy354;
- goto yy157;
- } else {
- if (yych <= ' ') goto yy354;
- if (yych != ')') goto yy157;
- }
+ yych = *++YYCURSOR;
+ if (yych == 'L') goto yy442;
+ if (yych == 'l') goto yy442;
+ goto yy128;
+yy356:
YYDEBUG(356, *YYCURSOR);
- ++YYCURSOR;
+ yych = *++YYCURSOR;
+ if (yych == 'U') goto yy443;
+ if (yych == 'u') goto yy443;
+ goto yy128;
+yy357:
YYDEBUG(357, *YYCURSOR);
- yyleng = YYCURSOR - SCNG(yy_text);
-#line 1340 "Zend/zend_language_scanner.l"
- {
- RETURN_TOKEN(T_INT_CAST);
-}
-#line 4421 "Zend/zend_language_scanner.c"
+ yych = *++YYCURSOR;
+ if (yych == 'U') goto yy444;
+ if (yych == 'u') goto yy444;
+ goto yy128;
yy358:
YYDEBUG(358, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'E') goto yy359;
- if (yych != 'e') goto yy157;
+ if (yych == 'T') goto yy445;
+ if (yych == 't') goto yy445;
+ goto yy128;
yy359:
YYDEBUG(359, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'R') goto yy354;
- if (yych == 'r') goto yy354;
- goto yy157;
+ if (yych == 'T') goto yy446;
+ if (yych == 't') goto yy446;
+ goto yy128;
yy360:
YYDEBUG(360, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'O') goto yy361;
- if (yych != 'o') goto yy157;
+ if (yych == 'O') goto yy447;
+ if (yych == 'o') goto yy447;
+ goto yy128;
yy361:
YYDEBUG(361, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'A') goto yy362;
- if (yych != 'a') goto yy157;
+ if (yych == 'I') goto yy448;
+ if (yych == 'i') goto yy448;
+ goto yy128;
yy362:
YYDEBUG(362, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych == 'T') goto yy363;
- if (yych != 't') goto yy157;
-yy363:
- YYDEBUG(363, *YYCURSOR);
++YYCURSOR;
- YYFILL(1);
- yych = *YYCURSOR;
- YYDEBUG(364, *YYCURSOR);
- if (yych <= 0x1F) {
- if (yych == '\t') goto yy363;
- goto yy157;
- } else {
- if (yych <= ' ') goto yy363;
- if (yych != ')') goto yy157;
+ if (yybm[0+(yych = *YYCURSOR)] & 16) {
+ goto yy127;
}
+ YYDEBUG(363, *YYCURSOR);
+ yyleng = YYCURSOR - SCNG(yy_text);
+#line 1154 "Zend/zend_language_scanner.l"
+ {
+ RETURN_TOKEN(T_TRY);
+}
+#line 4523 "Zend/zend_language_scanner.c"
+yy364:
+ YYDEBUG(364, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if (yych == 'E') goto yy449;
+ if (yych == 'e') goto yy449;
+ goto yy128;
+yy365:
YYDEBUG(365, *YYCURSOR);
++YYCURSOR;
+ if (yybm[0+(yych = *YYCURSOR)] & 16) {
+ goto yy127;
+ }
YYDEBUG(366, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1344 "Zend/zend_language_scanner.l"
+#line 1392 "Zend/zend_language_scanner.l"
{
- RETURN_TOKEN(T_DOUBLE_CAST);
+ RETURN_TOKEN(T_USE);
}
-#line 4469 "Zend/zend_language_scanner.c"
+#line 4542 "Zend/zend_language_scanner.c"
yy367:
YYDEBUG(367, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych == 'U') goto yy368;
- if (yych != 'u') goto yy157;
-yy368:
+ ++YYCURSOR;
+ if (yybm[0+(yych = *YYCURSOR)] & 16) {
+ goto yy127;
+ }
YYDEBUG(368, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych == 'B') goto yy369;
- if (yych != 'b') goto yy157;
+ yyleng = YYCURSOR - SCNG(yy_text);
+#line 1336 "Zend/zend_language_scanner.l"
+ {
+ RETURN_TOKEN(T_VAR);
+}
+#line 4555 "Zend/zend_language_scanner.c"
yy369:
YYDEBUG(369, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'L') goto yy370;
- if (yych != 'l') goto yy157;
+ if (yych == 'L') goto yy450;
+ if (yych == 'l') goto yy450;
+ goto yy128;
yy370:
YYDEBUG(370, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych == 'E') goto yy363;
- if (yych == 'e') goto yy363;
- goto yy157;
-yy371:
+ ++YYCURSOR;
+ if (yybm[0+(yych = *YYCURSOR)] & 16) {
+ goto yy127;
+ }
YYDEBUG(371, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych == 'A') goto yy372;
- if (yych != 'a') goto yy157;
+ yyleng = YYCURSOR - SCNG(yy_text);
+#line 1564 "Zend/zend_language_scanner.l"
+ {
+ RETURN_TOKEN(T_LOGICAL_XOR);
+}
+#line 4574 "Zend/zend_language_scanner.c"
yy372:
YYDEBUG(372, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'L') goto yy363;
- if (yych == 'l') goto yy363;
- goto yy157;
+ if (yych == 'L') goto yy451;
+ if (yych == 'l') goto yy451;
+ goto yy128;
yy373:
YYDEBUG(373, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'R') goto yy374;
- if (yych != 'r') goto yy157;
+ if (yych == 'L') goto yy452;
+ if (yych == 'l') goto yy452;
+ goto yy128;
yy374:
YYDEBUG(374, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'I') goto yy375;
- if (yych != 'i') goto yy157;
+ if (yych == 'I') goto yy453;
+ if (yych == 'i') goto yy453;
+ goto yy128;
yy375:
YYDEBUG(375, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'N') goto yy376;
- if (yych != 'n') goto yy157;
+ if (yych <= 'U') {
+ if (yych == 'I') goto yy454;
+ if (yych <= 'T') goto yy128;
+ goto yy455;
+ } else {
+ if (yych <= 'i') {
+ if (yych <= 'h') goto yy128;
+ goto yy454;
+ } else {
+ if (yych == 'u') goto yy455;
+ goto yy128;
+ }
+ }
yy376:
YYDEBUG(376, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'G') goto yy377;
- if (yych != 'g') goto yy157;
+ if (yych == 'A') goto yy456;
+ if (yych == 'a') goto yy456;
+ goto yy128;
yy377:
YYDEBUG(377, *YYCURSOR);
- ++YYCURSOR;
- YYFILL(1);
- yych = *YYCURSOR;
+ yych = *++YYCURSOR;
+ if (yych == 'I') goto yy457;
+ if (yych == 'i') goto yy457;
+ goto yy128;
+yy378:
YYDEBUG(378, *YYCURSOR);
- if (yych <= 0x1F) {
- if (yych == '\t') goto yy377;
- goto yy157;
- } else {
- if (yych <= ' ') goto yy377;
- if (yych != ')') goto yy157;
- }
+ yych = *++YYCURSOR;
+ if (yych == 'E') goto yy458;
+ if (yych == 'e') goto yy458;
+ goto yy128;
+yy379:
YYDEBUG(379, *YYCURSOR);
- ++YYCURSOR;
+ yych = *++YYCURSOR;
+ if (yych == 'A') goto yy459;
+ if (yych == 'a') goto yy459;
+ goto yy128;
+yy380:
YYDEBUG(380, *YYCURSOR);
- yyleng = YYCURSOR - SCNG(yy_text);
-#line 1348 "Zend/zend_language_scanner.l"
- {
- RETURN_TOKEN(T_STRING_CAST);
-}
-#line 4543 "Zend/zend_language_scanner.c"
+ yych = *++YYCURSOR;
+ if (yych == 'R') goto yy460;
+ if (yych == 'r') goto yy460;
+ goto yy128;
yy381:
YYDEBUG(381, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'R') goto yy382;
- if (yych != 'r') goto yy157;
+ if (yych == 'A') goto yy461;
+ if (yych == 'a') goto yy461;
+ goto yy166;
yy382:
YYDEBUG(382, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'A') goto yy383;
- if (yych != 'a') goto yy157;
+ if (yych == 'A') goto yy462;
+ if (yych == 'a') goto yy462;
+ goto yy166;
yy383:
YYDEBUG(383, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'Y') goto yy384;
- if (yych != 'y') goto yy157;
+ if (yych == 'L') goto yy463;
+ if (yych == 'l') goto yy463;
+ goto yy166;
yy384:
YYDEBUG(384, *YYCURSOR);
- ++YYCURSOR;
- YYFILL(1);
- yych = *YYCURSOR;
+ yych = *++YYCURSOR;
+ if (yych == 'B') goto yy464;
+ if (yych == 'b') goto yy464;
+ goto yy166;
+yy385:
YYDEBUG(385, *YYCURSOR);
- if (yych <= 0x1F) {
- if (yych == '\t') goto yy384;
- goto yy157;
- } else {
- if (yych <= ' ') goto yy384;
- if (yych != ')') goto yy157;
- }
+ yych = *++YYCURSOR;
+ if (yych == 'A') goto yy465;
+ if (yych == 'a') goto yy465;
+ goto yy166;
+yy386:
YYDEBUG(386, *YYCURSOR);
- ++YYCURSOR;
+ yych = *++YYCURSOR;
+ if (yych == 'E') goto yy470;
+ if (yych == 'e') goto yy470;
+ goto yy467;
+yy387:
YYDEBUG(387, *YYCURSOR);
- yyleng = YYCURSOR - SCNG(yy_text);
-#line 1352 "Zend/zend_language_scanner.l"
- {
- RETURN_TOKEN(T_ARRAY_CAST);
-}
-#line 4580 "Zend/zend_language_scanner.c"
+ yych = *++YYCURSOR;
+ if (yych == 'E') goto yy471;
+ if (yych == 'e') goto yy471;
+ goto yy166;
yy388:
YYDEBUG(388, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'J') goto yy389;
- if (yych != 'j') goto yy157;
+ if (yych == 'L') goto yy472;
+ if (yych == 'l') goto yy472;
+ goto yy166;
yy389:
YYDEBUG(389, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'E') goto yy390;
- if (yych != 'e') goto yy157;
+ if (yych == 'I') goto yy474;
+ if (yych == 'i') goto yy474;
+ goto yy166;
yy390:
YYDEBUG(390, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'C') goto yy391;
- if (yych != 'c') goto yy157;
+ if (yych == 'E') goto yy475;
+ if (yych == 'e') goto yy475;
+ goto yy166;
yy391:
YYDEBUG(391, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych == 'T') goto yy392;
- if (yych != 't') goto yy157;
-yy392:
- YYDEBUG(392, *YYCURSOR);
++YYCURSOR;
YYFILL(1);
yych = *YYCURSOR;
- YYDEBUG(393, *YYCURSOR);
- if (yych <= 0x1F) {
- if (yych == '\t') goto yy392;
- goto yy157;
+ YYDEBUG(392, *YYCURSOR);
+ if (yych <= '\f') {
+ if (yych <= 0x08) goto yy197;
+ if (yych <= '\n') goto yy391;
+ goto yy197;
} else {
- if (yych <= ' ') goto yy392;
- if (yych != ')') goto yy157;
+ if (yych <= '\r') goto yy391;
+ if (yych == ' ') goto yy391;
+ goto yy197;
}
+yy393:
+ YYDEBUG(393, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if (yych == '"') goto yy166;
+ if (yych <= '/') goto yy477;
+ if (yych <= '9') goto yy166;
+ goto yy477;
+yy394:
YYDEBUG(394, *YYCURSOR);
- ++YYCURSOR;
+ yych = *++YYCURSOR;
+ if (yych == '\'') goto yy166;
+ if (yych <= '/') goto yy479;
+ if (yych <= '9') goto yy166;
+ goto yy479;
+yy395:
YYDEBUG(395, *YYCURSOR);
- yyleng = YYCURSOR - SCNG(yy_text);
-#line 1356 "Zend/zend_language_scanner.l"
- {
- RETURN_TOKEN(T_OBJECT_CAST);
-}
-#line 4622 "Zend/zend_language_scanner.c"
-yy396:
+ ++YYCURSOR;
+ YYFILL(2);
+ yych = *YYCURSOR;
YYDEBUG(396, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych == 'N') goto yy406;
- if (yych == 'n') goto yy406;
- goto yy157;
+ if (yych <= '@') {
+ if (yych <= '\f') {
+ if (yych == '\n') goto yy480;
+ goto yy166;
+ } else {
+ if (yych <= '\r') goto yy482;
+ if (yych <= '/') goto yy166;
+ if (yych <= '9') goto yy395;
+ goto yy166;
+ }
+ } else {
+ if (yych <= '_') {
+ if (yych <= 'Z') goto yy395;
+ if (yych <= '^') goto yy166;
+ goto yy395;
+ } else {
+ if (yych <= '`') goto yy166;
+ if (yych <= 'z') goto yy395;
+ if (yych <= 0x7F) goto yy166;
+ goto yy395;
+ }
+ }
yy397:
YYDEBUG(397, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'O') goto yy398;
- if (yych != 'o') goto yy157;
+ if (yych == 'R') goto yy483;
+ if (yych == 'r') goto yy483;
+ goto yy128;
yy398:
YYDEBUG(398, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'L') goto yy399;
- if (yych != 'l') goto yy157;
+ if (yych == 'Y') goto yy484;
+ if (yych == 'y') goto yy484;
+ goto yy128;
yy399:
YYDEBUG(399, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'E') goto yy404;
- if (yych == 'e') goto yy404;
- goto yy401;
+ if (yych == 'K') goto yy486;
+ if (yych == 'k') goto yy486;
+ goto yy128;
yy400:
YYDEBUG(400, *YYCURSOR);
- ++YYCURSOR;
- YYFILL(1);
- yych = *YYCURSOR;
+ yych = *++YYCURSOR;
+ if (yych == 'A') goto yy488;
+ if (yych == 'a') goto yy488;
+ goto yy128;
yy401:
YYDEBUG(401, *YYCURSOR);
- if (yych <= 0x1F) {
- if (yych == '\t') goto yy400;
- goto yy157;
- } else {
- if (yych <= ' ') goto yy400;
- if (yych != ')') goto yy157;
+ ++YYCURSOR;
+ if (yybm[0+(yych = *YYCURSOR)] & 16) {
+ goto yy127;
}
YYDEBUG(402, *YYCURSOR);
- ++YYCURSOR;
- YYDEBUG(403, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1360 "Zend/zend_language_scanner.l"
+#line 1238 "Zend/zend_language_scanner.l"
{
- RETURN_TOKEN(T_BOOL_CAST);
+ RETURN_TOKEN(T_CASE);
}
-#line 4667 "Zend/zend_language_scanner.c"
+#line 4792 "Zend/zend_language_scanner.c"
+yy403:
+ YYDEBUG(403, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if (yych == 'H') goto yy489;
+ if (yych == 'h') goto yy489;
+ goto yy128;
yy404:
YYDEBUG(404, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'A') goto yy405;
- if (yych != 'a') goto yy157;
+ if (yych == 'S') goto yy491;
+ if (yych == 's') goto yy491;
+ goto yy128;
yy405:
YYDEBUG(405, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'N') goto yy400;
- if (yych == 'n') goto yy400;
- goto yy157;
+ if (yych == 'E') goto yy493;
+ if (yych == 'e') goto yy493;
+ goto yy128;
yy406:
YYDEBUG(406, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'A') goto yy407;
- if (yych != 'a') goto yy157;
+ if (yych == 'T') goto yy495;
+ if (yych == 't') goto yy495;
+ goto yy128;
yy407:
YYDEBUG(407, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'R') goto yy408;
- if (yych != 'r') goto yy157;
+ if (yych == 'I') goto yy497;
+ if (yych == 'i') goto yy497;
+ goto yy128;
yy408:
YYDEBUG(408, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'Y') goto yy377;
- if (yych == 'y') goto yy377;
- goto yy157;
+ if (yych == 'A') goto yy498;
+ if (yych == 'a') goto yy498;
+ goto yy128;
yy409:
YYDEBUG(409, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'S') goto yy410;
- if (yych != 's') goto yy157;
+ if (yych == 'U') goto yy499;
+ if (yych == 'u') goto yy499;
+ goto yy128;
yy410:
YYDEBUG(410, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych == 'E') goto yy411;
- if (yych != 'e') goto yy157;
-yy411:
+ ++YYCURSOR;
+ if (yybm[0+(yych = *YYCURSOR)] & 16) {
+ goto yy127;
+ }
YYDEBUG(411, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych == 'T') goto yy412;
- if (yych != 't') goto yy157;
+ yyleng = YYCURSOR - SCNG(yy_text);
+#line 1258 "Zend/zend_language_scanner.l"
+ {
+ RETURN_TOKEN(T_ECHO);
+}
+#line 4847 "Zend/zend_language_scanner.c"
yy412:
YYDEBUG(412, *YYCURSOR);
++YYCURSOR;
- YYFILL(1);
- yych = *YYCURSOR;
- YYDEBUG(413, *YYCURSOR);
- if (yych <= 0x1F) {
- if (yych == '\t') goto yy412;
- goto yy157;
+ if ((yych = *YYCURSOR) <= '^') {
+ if (yych <= '@') {
+ if (yych <= '/') goto yy413;
+ if (yych <= '9') goto yy127;
+ } else {
+ if (yych == 'I') goto yy500;
+ if (yych <= 'Z') goto yy127;
+ }
} else {
- if (yych <= ' ') goto yy412;
- if (yych != ')') goto yy157;
+ if (yych <= 'h') {
+ if (yych != '`') goto yy127;
+ } else {
+ if (yych <= 'i') goto yy500;
+ if (yych <= 'z') goto yy127;
+ if (yych >= 0x80) goto yy127;
+ }
}
- YYDEBUG(414, *YYCURSOR);
- ++YYCURSOR;
- YYDEBUG(415, *YYCURSOR);
+yy413:
+ YYDEBUG(413, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1364 "Zend/zend_language_scanner.l"
+#line 1182 "Zend/zend_language_scanner.l"
{
- RETURN_TOKEN(T_UNSET_CAST);
+ RETURN_TOKEN(T_ELSE);
}
-#line 4731 "Zend/zend_language_scanner.c"
+#line 4875 "Zend/zend_language_scanner.c"
+yy414:
+ YYDEBUG(414, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if (yych == 'Y') goto yy501;
+ if (yych == 'y') goto yy501;
+ goto yy128;
+yy415:
+ YYDEBUG(415, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if (yych == 'E') goto yy503;
+ if (yych == 'e') goto yy503;
+ goto yy128;
yy416:
YYDEBUG(416, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'R') goto yy417;
- if (yych != 'r') goto yy150;
+ if (yych == 'O') goto yy504;
+ if (yych == 'o') goto yy504;
+ goto yy128;
yy417:
YYDEBUG(417, *YYCURSOR);
- ++YYCURSOR;
- if (yybm[0+(yych = *YYCURSOR)] & 4) {
- goto yy149;
- }
+ yych = *++YYCURSOR;
+ if (yych == 'F') goto yy505;
+ if (yych == 'f') goto yy505;
+ goto yy128;
+yy418:
YYDEBUG(418, *YYCURSOR);
- yyleng = YYCURSOR - SCNG(yy_text);
-#line 1336 "Zend/zend_language_scanner.l"
- {
- RETURN_TOKEN(T_VAR);
-}
-#line 4749 "Zend/zend_language_scanner.c"
+ yych = *++YYCURSOR;
+ if (yych == 'W') goto yy507;
+ if (yych == 'w') goto yy507;
+ goto yy128;
yy419:
YYDEBUG(419, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'M') goto yy423;
- if (yych == 'm') goto yy423;
- goto yy150;
+ if (yych == 'H') goto yy508;
+ if (yych == 'h') goto yy508;
+ goto yy128;
yy420:
YYDEBUG(420, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych == 'W') goto yy421;
- if (yych != 'w') goto yy150;
-yy421:
- YYDEBUG(421, *YYCURSOR);
++YYCURSOR;
- if (yybm[0+(yych = *YYCURSOR)] & 4) {
- goto yy149;
+ if (yybm[0+(yych = *YYCURSOR)] & 16) {
+ goto yy127;
}
- YYDEBUG(422, *YYCURSOR);
+ YYDEBUG(421, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1328 "Zend/zend_language_scanner.l"
+#line 1368 "Zend/zend_language_scanner.l"
{
- RETURN_TOKEN(T_NEW);
+ RETURN_TOKEN(T_EVAL);
}
-#line 4773 "Zend/zend_language_scanner.c"
-yy423:
+#line 4924 "Zend/zend_language_scanner.c"
+yy422:
+ YYDEBUG(422, *YYCURSOR);
+ ++YYCURSOR;
+ if (yybm[0+(yych = *YYCURSOR)] & 16) {
+ goto yy127;
+ }
YYDEBUG(423, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych == 'E') goto yy424;
- if (yych != 'e') goto yy150;
+ yyleng = YYCURSOR - SCNG(yy_text);
+#line 1125 "Zend/zend_language_scanner.l"
+ {
+ RETURN_TOKEN(T_EXIT);
+}
+#line 4937 "Zend/zend_language_scanner.c"
yy424:
YYDEBUG(424, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'S') goto yy425;
- if (yych != 's') goto yy150;
+ if (yych == 'N') goto yy509;
+ if (yych == 'n') goto yy509;
+ goto yy128;
yy425:
YYDEBUG(425, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'P') goto yy426;
- if (yych != 'p') goto yy150;
+ if (yych == 'L') goto yy510;
+ if (yych == 'l') goto yy510;
+ goto yy128;
yy426:
YYDEBUG(426, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'A') goto yy427;
- if (yych != 'a') goto yy150;
+ if (yych == 'A') goto yy512;
+ if (yych == 'a') goto yy512;
+ goto yy128;
yy427:
YYDEBUG(427, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'C') goto yy428;
- if (yych != 'c') goto yy150;
+ if (yych == 'T') goto yy513;
+ if (yych == 't') goto yy513;
+ goto yy128;
yy428:
YYDEBUG(428, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'E') goto yy429;
- if (yych != 'e') goto yy150;
+ if (yych == 'A') goto yy514;
+ if (yych == 'a') goto yy514;
+ goto yy128;
yy429:
YYDEBUG(429, *YYCURSOR);
++YYCURSOR;
- if (yybm[0+(yych = *YYCURSOR)] & 4) {
- goto yy149;
+ if (yybm[0+(yych = *YYCURSOR)] & 16) {
+ goto yy127;
}
YYDEBUG(430, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1388 "Zend/zend_language_scanner.l"
+#line 1254 "Zend/zend_language_scanner.l"
{
- RETURN_TOKEN(T_NAMESPACE);
+ RETURN_TOKEN(T_GOTO);
}
-#line 4816 "Zend/zend_language_scanner.c"
+#line 4980 "Zend/zend_language_scanner.c"
yy431:
YYDEBUG(431, *YYCURSOR);
- ++YYCURSOR;
- if ((yych = *YYCURSOR) == '\n') goto yy435;
- if (yych == '\r') goto yy436;
+ yych = *++YYCURSOR;
+ if (yych == 'E') goto yy515;
+ if (yych == 'e') goto yy515;
+ goto yy128;
yy432:
YYDEBUG(432, *YYCURSOR);
- yyleng = YYCURSOR - SCNG(yy_text);
-#line 1960 "Zend/zend_language_scanner.l"
- {
- BEGIN(INITIAL);
- RETURN_TOKEN(T_CLOSE_TAG); /* implicit ';' at php-end tag */
-}
-#line 4830 "Zend/zend_language_scanner.c"
+ yych = *++YYCURSOR;
+ if (yych == 'U') goto yy516;
+ if (yych == 'u') goto yy516;
+ goto yy128;
yy433:
YYDEBUG(433, *YYCURSOR);
- ++YYCURSOR;
+ yych = *++YYCURSOR;
+ if (yych <= 'E') {
+ if (yych == 'A') goto yy517;
+ if (yych <= 'D') goto yy128;
+ goto yy518;
+ } else {
+ if (yych <= 'a') {
+ if (yych <= '`') goto yy128;
+ goto yy517;
+ } else {
+ if (yych == 'e') goto yy518;
+ goto yy128;
+ }
+ }
+yy434:
YYDEBUG(434, *YYCURSOR);
- yyleng = YYCURSOR - SCNG(yy_text);
-#line 1324 "Zend/zend_language_scanner.l"
- {
- RETURN_TOKEN(T_COALESCE);
-}
-#line 4840 "Zend/zend_language_scanner.c"
+ yych = *++YYCURSOR;
+ if (yych == 'R') goto yy519;
+ if (yych == 'r') goto yy519;
+ goto yy128;
yy435:
YYDEBUG(435, *YYCURSOR);
yych = *++YYCURSOR;
- goto yy432;
+ if (yych == 'T') goto yy520;
+ if (yych == 't') goto yy520;
+ goto yy128;
yy436:
YYDEBUG(436, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych == '\n') goto yy435;
- goto yy432;
-yy437:
+ ++YYCURSOR;
+ if (yybm[0+(yych = *YYCURSOR)] & 16) {
+ goto yy127;
+ }
YYDEBUG(437, *YYCURSOR);
- yyaccept = 3;
- YYMARKER = ++YYCURSOR;
- YYFILL(3);
- yych = *YYCURSOR;
+ yyleng = YYCURSOR - SCNG(yy_text);
+#line 1448 "Zend/zend_language_scanner.l"
+ {
+ RETURN_TOKEN(T_LIST);
+}
+#line 5033 "Zend/zend_language_scanner.c"
+yy438:
YYDEBUG(438, *YYCURSOR);
- if (yych <= 'D') {
- if (yych <= '/') goto yy153;
- if (yych <= '9') goto yy437;
- goto yy153;
- } else {
- if (yych <= 'E') goto yy156;
- if (yych == 'e') goto yy156;
- goto yy153;
- }
+ yych = *++YYCURSOR;
+ if (yych == 'S') goto yy522;
+ if (yych == 's') goto yy522;
+ goto yy128;
yy439:
YYDEBUG(439, *YYCURSOR);
- ++YYCURSOR;
+ yych = *++YYCURSOR;
+ if (yych == 'T') goto yy523;
+ if (yych == 't') goto yy523;
+ goto yy128;
+yy440:
YYDEBUG(440, *YYCURSOR);
- yyleng = YYCURSOR - SCNG(yy_text);
-#line 1520 "Zend/zend_language_scanner.l"
- {
- RETURN_TOKEN(T_CONCAT_EQUAL);
-}
-#line 4875 "Zend/zend_language_scanner.c"
+ yych = *++YYCURSOR;
+ if (yych == 'A') goto yy525;
+ if (yych == 'a') goto yy525;
+ goto yy128;
yy441:
YYDEBUG(441, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych != '.') goto yy157;
+ if (yych == 'E') goto yy526;
+ if (yych == 'e') goto yy526;
+ goto yy128;
+yy442:
YYDEBUG(442, *YYCURSOR);
- ++YYCURSOR;
+ yych = *++YYCURSOR;
+ if (yych == 'I') goto yy527;
+ if (yych == 'i') goto yy527;
+ goto yy128;
+yy443:
YYDEBUG(443, *YYCURSOR);
- yyleng = YYCURSOR - SCNG(yy_text);
-#line 1320 "Zend/zend_language_scanner.l"
- {
- RETURN_TOKEN(T_ELLIPSIS);
-}
-#line 4888 "Zend/zend_language_scanner.c"
+ yych = *++YYCURSOR;
+ if (yych == 'I') goto yy528;
+ if (yych == 'i') goto yy528;
+ goto yy128;
yy444:
YYDEBUG(444, *YYCURSOR);
- ++YYCURSOR;
+ yych = *++YYCURSOR;
+ if (yych == 'R') goto yy529;
+ if (yych == 'r') goto yy529;
+ goto yy128;
+yy445:
YYDEBUG(445, *YYCURSOR);
- yyleng = YYCURSOR - SCNG(yy_text);
-#line 1312 "Zend/zend_language_scanner.l"
- {
- RETURN_TOKEN(T_PAAMAYIM_NEKUDOTAYIM);
-}
-#line 4898 "Zend/zend_language_scanner.c"
+ yych = *++YYCURSOR;
+ if (yych == 'I') goto yy530;
+ if (yych == 'i') goto yy530;
+ goto yy128;
yy446:
YYDEBUG(446, *YYCURSOR);
- ++YYCURSOR;
- YYFILL(1);
- yych = *YYCURSOR;
+ yych = *++YYCURSOR;
+ if (yych == 'C') goto yy531;
+ if (yych == 'c') goto yy531;
+ goto yy128;
yy447:
YYDEBUG(447, *YYCURSOR);
- if (yych <= '\f') {
- if (yych <= 0x08) goto yy104;
- if (yych <= '\n') goto yy446;
- goto yy104;
- } else {
- if (yych <= '\r') goto yy446;
- if (yych == ' ') goto yy446;
- goto yy104;
- }
+ yych = *++YYCURSOR;
+ if (yych == 'W') goto yy532;
+ if (yych == 'w') goto yy532;
+ goto yy128;
yy448:
YYDEBUG(448, *YYCURSOR);
- ++YYCURSOR;
+ yych = *++YYCURSOR;
+ if (yych == 'T') goto yy534;
+ if (yych == 't') goto yy534;
+ goto yy128;
+yy449:
YYDEBUG(449, *YYCURSOR);
- yyleng = YYCURSOR - SCNG(yy_text);
-#line 1500 "Zend/zend_language_scanner.l"
- {
- RETURN_TOKEN(T_MINUS_EQUAL);
-}
-#line 4924 "Zend/zend_language_scanner.c"
+ yych = *++YYCURSOR;
+ if (yych == 'T') goto yy536;
+ if (yych == 't') goto yy536;
+ goto yy128;
yy450:
YYDEBUG(450, *YYCURSOR);
- ++YYCURSOR;
+ yych = *++YYCURSOR;
+ if (yych == 'E') goto yy538;
+ if (yych == 'e') goto yy538;
+ goto yy128;
+yy451:
YYDEBUG(451, *YYCURSOR);
- yyleng = YYCURSOR - SCNG(yy_text);
-#line 1464 "Zend/zend_language_scanner.l"
- {
- RETURN_TOKEN(T_DEC);
-}
-#line 4934 "Zend/zend_language_scanner.c"
+ yych = *++YYCURSOR;
+ if (yych == 'D') goto yy540;
+ if (yych == 'd') goto yy540;
+ goto yy128;
yy452:
YYDEBUG(452, *YYCURSOR);
- ++YYCURSOR;
+ yych = *++YYCURSOR;
+ if (yych == 'A') goto yy542;
+ if (yych == 'a') goto yy542;
+ goto yy128;
+yy453:
YYDEBUG(453, *YYCURSOR);
- yyleng = YYCURSOR - SCNG(yy_text);
-#line 1286 "Zend/zend_language_scanner.l"
- {
- yy_push_state(ST_LOOKING_FOR_PROPERTY);
- RETURN_TOKEN(T_OBJECT_OPERATOR);
-}
-#line 4945 "Zend/zend_language_scanner.c"
+ yych = *++YYCURSOR;
+ if (yych == 'R') goto yy543;
+ if (yych == 'r') goto yy543;
+ goto yy128;
yy454:
YYDEBUG(454, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych <= 'O') {
- if (yych == 'I') goto yy461;
- if (yych <= 'N') goto yy150;
- goto yy462;
- } else {
- if (yych <= 'i') {
- if (yych <= 'h') goto yy150;
- goto yy461;
- } else {
- if (yych == 'o') goto yy462;
- goto yy150;
- }
- }
+ if (yych == 'L') goto yy544;
+ if (yych == 'l') goto yy544;
+ goto yy128;
yy455:
YYDEBUG(455, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'B') goto yy456;
- if (yych != 'b') goto yy150;
+ if (yych == 'N') goto yy545;
+ if (yych == 'n') goto yy545;
+ goto yy128;
yy456:
YYDEBUG(456, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'L') goto yy457;
- if (yych != 'l') goto yy150;
+ if (yych == 'L') goto yy546;
+ if (yych == 'l') goto yy546;
+ goto yy128;
yy457:
YYDEBUG(457, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'I') goto yy458;
- if (yych != 'i') goto yy150;
+ if (yych == 'N') goto yy547;
+ if (yych == 'n') goto yy547;
+ goto yy128;
yy458:
YYDEBUG(458, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'C') goto yy459;
- if (yych != 'c') goto yy150;
+ if (yych == 'T') goto yy548;
+ if (yych == 't') goto yy548;
+ goto yy128;
yy459:
YYDEBUG(459, *YYCURSOR);
- ++YYCURSOR;
- if (yybm[0+(yych = *YYCURSOR)] & 4) {
- goto yy149;
- }
+ yych = *++YYCURSOR;
+ if (yych == 'M') goto yy549;
+ if (yych == 'm') goto yy549;
+ goto yy128;
+yy460:
YYDEBUG(460, *YYCURSOR);
- yyleng = YYCURSOR - SCNG(yy_text);
-#line 1436 "Zend/zend_language_scanner.l"
- {
- RETURN_TOKEN(T_PUBLIC);
-}
-#line 4994 "Zend/zend_language_scanner.c"
+ yych = *++YYCURSOR;
+ if (yych == 'A') goto yy550;
+ if (yych == 'a') goto yy550;
+ goto yy128;
yy461:
YYDEBUG(461, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych <= 'V') {
- if (yych == 'N') goto yy470;
- if (yych <= 'U') goto yy150;
- goto yy471;
- } else {
- if (yych <= 'n') {
- if (yych <= 'm') goto yy150;
- goto yy470;
- } else {
- if (yych == 'v') goto yy471;
- goto yy150;
- }
- }
+ if (yych == 'Y') goto yy551;
+ if (yych == 'y') goto yy551;
+ goto yy166;
yy462:
YYDEBUG(462, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'T') goto yy463;
- if (yych != 't') goto yy150;
+ if (yych == 'R') goto yy553;
+ if (yych == 'r') goto yy553;
+ goto yy166;
yy463:
YYDEBUG(463, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'E') goto yy464;
- if (yych != 'e') goto yy150;
+ if (yych == 'E') goto yy558;
+ if (yych == 'e') goto yy558;
+ goto yy555;
yy464:
YYDEBUG(464, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'C') goto yy465;
- if (yych != 'c') goto yy150;
+ if (yych == 'L') goto yy559;
+ if (yych == 'l') goto yy559;
+ goto yy166;
yy465:
YYDEBUG(465, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'T') goto yy466;
- if (yych != 't') goto yy150;
+ if (yych == 'T') goto yy472;
+ if (yych == 't') goto yy472;
+ goto yy166;
yy466:
YYDEBUG(466, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych == 'E') goto yy467;
- if (yych != 'e') goto yy150;
+ ++YYCURSOR;
+ YYFILL(1);
+ yych = *YYCURSOR;
yy467:
YYDEBUG(467, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych == 'D') goto yy468;
- if (yych != 'd') goto yy150;
-yy468:
+ if (yych <= 0x1F) {
+ if (yych == '\t') goto yy466;
+ goto yy166;
+ } else {
+ if (yych <= ' ') goto yy466;
+ if (yych != ')') goto yy166;
+ }
YYDEBUG(468, *YYCURSOR);
++YYCURSOR;
- if (yybm[0+(yych = *YYCURSOR)] & 4) {
- goto yy149;
- }
YYDEBUG(469, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1432 "Zend/zend_language_scanner.l"
+#line 1340 "Zend/zend_language_scanner.l"
{
- RETURN_TOKEN(T_PROTECTED);
+ RETURN_TOKEN(T_INT_CAST);
}
-#line 5053 "Zend/zend_language_scanner.c"
+#line 5224 "Zend/zend_language_scanner.c"
yy470:
YYDEBUG(470, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'T') goto yy476;
- if (yych == 't') goto yy476;
- goto yy150;
+ if (yych == 'G') goto yy560;
+ if (yych == 'g') goto yy560;
+ goto yy166;
yy471:
YYDEBUG(471, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'A') goto yy472;
- if (yych != 'a') goto yy150;
+ if (yych == 'C') goto yy561;
+ if (yych == 'c') goto yy561;
+ goto yy166;
yy472:
YYDEBUG(472, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych == 'T') goto yy473;
- if (yych != 't') goto yy150;
-yy473:
+ ++YYCURSOR;
+ YYFILL(1);
+ yych = *YYCURSOR;
YYDEBUG(473, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych == 'E') goto yy474;
- if (yych != 'e') goto yy150;
+ if (yych <= 0x1F) {
+ if (yych == '\t') goto yy472;
+ goto yy166;
+ } else {
+ if (yych <= ' ') goto yy472;
+ if (yych == ')') goto yy562;
+ goto yy166;
+ }
yy474:
YYDEBUG(474, *YYCURSOR);
- ++YYCURSOR;
- if (yybm[0+(yych = *YYCURSOR)] & 4) {
- goto yy149;
- }
+ yych = *++YYCURSOR;
+ if (yych == 'N') goto yy564;
+ if (yych == 'n') goto yy564;
+ goto yy166;
+yy475:
YYDEBUG(475, *YYCURSOR);
- yyleng = YYCURSOR - SCNG(yy_text);
-#line 1428 "Zend/zend_language_scanner.l"
- {
- RETURN_TOKEN(T_PRIVATE);
-}
-#line 5087 "Zend/zend_language_scanner.c"
+ yych = *++YYCURSOR;
+ if (yych == 'T') goto yy565;
+ if (yych == 't') goto yy565;
+ goto yy166;
yy476:
YYDEBUG(476, *YYCURSOR);
++YYCURSOR;
- if (yybm[0+(yych = *YYCURSOR)] & 4) {
- goto yy149;
- }
+ YYFILL(3);
+ yych = *YYCURSOR;
+yy477:
YYDEBUG(477, *YYCURSOR);
- yyleng = YYCURSOR - SCNG(yy_text);
-#line 1262 "Zend/zend_language_scanner.l"
- {
- RETURN_TOKEN(T_PRINT);
-}
-#line 5100 "Zend/zend_language_scanner.c"
+ if (yych <= 'Z') {
+ if (yych <= '/') {
+ if (yych == '"') goto yy567;
+ goto yy166;
+ } else {
+ if (yych <= '9') goto yy476;
+ if (yych <= '@') goto yy166;
+ goto yy476;
+ }
+ } else {
+ if (yych <= '`') {
+ if (yych == '_') goto yy476;
+ goto yy166;
+ } else {
+ if (yych <= 'z') goto yy476;
+ if (yych <= 0x7F) goto yy166;
+ goto yy476;
+ }
+ }
yy478:
YYDEBUG(478, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych == 'O') goto yy483;
- if (yych == 'o') goto yy483;
- goto yy150;
+ ++YYCURSOR;
+ YYFILL(3);
+ yych = *YYCURSOR;
yy479:
YYDEBUG(479, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych == 'T') goto yy480;
- if (yych != 't') goto yy150;
+ if (yych <= 'Z') {
+ if (yych <= '/') {
+ if (yych == '\'') goto yy567;
+ goto yy166;
+ } else {
+ if (yych <= '9') goto yy478;
+ if (yych <= '@') goto yy166;
+ goto yy478;
+ }
+ } else {
+ if (yych <= '`') {
+ if (yych == '_') goto yy478;
+ goto yy166;
+ } else {
+ if (yych <= 'z') goto yy478;
+ if (yych <= 0x7F) goto yy166;
+ goto yy478;
+ }
+ }
yy480:
YYDEBUG(480, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych == 'O') goto yy481;
- if (yych != 'o') goto yy150;
+ ++YYCURSOR;
yy481:
YYDEBUG(481, *YYCURSOR);
- ++YYCURSOR;
- if (yybm[0+(yych = *YYCURSOR)] & 4) {
- goto yy149;
- }
- YYDEBUG(482, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1254 "Zend/zend_language_scanner.l"
+#line 2077 "Zend/zend_language_scanner.l"
{
- RETURN_TOKEN(T_GOTO);
+ char *s;
+ int bprefix = (yytext[0] != '<') ? 1 : 0;
+ zend_heredoc_label *heredoc_label = emalloc(sizeof(zend_heredoc_label));
+
+ CG(zend_lineno)++;
+ heredoc_label->length = yyleng-bprefix-3-1-(yytext[yyleng-2]=='\r'?1:0);
+ s = yytext+bprefix+3;
+ while ((*s == ' ') || (*s == '\t')) {
+ s++;
+ heredoc_label->length--;
+ }
+
+ if (*s == '\'') {
+ s++;
+ heredoc_label->length -= 2;
+
+ BEGIN(ST_NOWDOC);
+ } else {
+ if (*s == '"') {
+ s++;
+ heredoc_label->length -= 2;
+ }
+
+ BEGIN(ST_HEREDOC);
+ }
+
+ heredoc_label->label = estrndup(s, heredoc_label->length);
+
+ /* Check for ending label on the next line */
+ if (heredoc_label->length < YYLIMIT - YYCURSOR && !memcmp(YYCURSOR, s, heredoc_label->length)) {
+ YYCTYPE *end = YYCURSOR + heredoc_label->length;
+
+ if (*end == ';') {
+ end++;
+ }
+
+ if (*end == '\n' || *end == '\r') {
+ BEGIN(ST_END_HEREDOC);
+ }
+ }
+
+ zend_ptr_stack_push(&SCNG(heredoc_label_stack), (void *) heredoc_label);
+
+ RETURN_TOKEN(T_START_HEREDOC);
}
-#line 5129 "Zend/zend_language_scanner.c"
+#line 5368 "Zend/zend_language_scanner.c"
+yy482:
+ YYDEBUG(482, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if (yych == '\n') goto yy480;
+ goto yy481;
yy483:
YYDEBUG(483, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'B') goto yy484;
- if (yych != 'b') goto yy150;
+ if (yych == 'A') goto yy568;
+ if (yych == 'a') goto yy568;
+ goto yy128;
yy484:
YYDEBUG(484, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych == 'A') goto yy485;
- if (yych != 'a') goto yy150;
-yy485:
+ ++YYCURSOR;
+ if (yybm[0+(yych = *YYCURSOR)] & 16) {
+ goto yy127;
+ }
YYDEBUG(485, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych == 'L') goto yy486;
- if (yych != 'l') goto yy150;
+ yyleng = YYCURSOR - SCNG(yy_text);
+#line 1452 "Zend/zend_language_scanner.l"
+ {
+ RETURN_TOKEN(T_ARRAY);
+}
+#line 5392 "Zend/zend_language_scanner.c"
yy486:
YYDEBUG(486, *YYCURSOR);
++YYCURSOR;
- if (yybm[0+(yych = *YYCURSOR)] & 4) {
- goto yy149;
+ if (yybm[0+(yych = *YYCURSOR)] & 16) {
+ goto yy127;
}
YYDEBUG(487, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1400 "Zend/zend_language_scanner.l"
+#line 1246 "Zend/zend_language_scanner.l"
{
- RETURN_TOKEN(T_GLOBAL);
+ RETURN_TOKEN(T_BREAK);
}
-#line 5157 "Zend/zend_language_scanner.c"
+#line 5405 "Zend/zend_language_scanner.c"
yy488:
YYDEBUG(488, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == '<') goto yy496;
- goto yy157;
+ if (yych == 'B') goto yy569;
+ if (yych == 'b') goto yy569;
+ goto yy128;
yy489:
YYDEBUG(489, *YYCURSOR);
- yych = *++YYCURSOR;
- goto yy144;
-yy490:
+ ++YYCURSOR;
+ if (yybm[0+(yych = *YYCURSOR)] & 16) {
+ goto yy127;
+ }
YYDEBUG(490, *YYCURSOR);
- yych = *++YYCURSOR;
- goto yy142;
+ yyleng = YYCURSOR - SCNG(yy_text);
+#line 1158 "Zend/zend_language_scanner.l"
+ {
+ RETURN_TOKEN(T_CATCH);
+}
+#line 5424 "Zend/zend_language_scanner.c"
yy491:
YYDEBUG(491, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych == 'E') goto yy492;
- if (yych != 'e') goto yy150;
-yy492:
+ ++YYCURSOR;
+ if (yybm[0+(yych = *YYCURSOR)] & 16) {
+ goto yy127;
+ }
YYDEBUG(492, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych == 'A') goto yy493;
- if (yych != 'a') goto yy150;
+ yyleng = YYCURSOR - SCNG(yy_text);
+#line 1266 "Zend/zend_language_scanner.l"
+ {
+ RETURN_TOKEN(T_CLASS);
+}
+#line 5437 "Zend/zend_language_scanner.c"
yy493:
YYDEBUG(493, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych == 'K') goto yy494;
- if (yych != 'k') goto yy150;
-yy494:
- YYDEBUG(494, *YYCURSOR);
++YYCURSOR;
- if (yybm[0+(yych = *YYCURSOR)] & 4) {
- goto yy149;
+ if (yybm[0+(yych = *YYCURSOR)] & 16) {
+ goto yy127;
}
- YYDEBUG(495, *YYCURSOR);
+ YYDEBUG(494, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1246 "Zend/zend_language_scanner.l"
+#line 1332 "Zend/zend_language_scanner.l"
{
- RETURN_TOKEN(T_BREAK);
+ RETURN_TOKEN(T_CLONE);
}
-#line 5198 "Zend/zend_language_scanner.c"
-yy496:
+#line 5450 "Zend/zend_language_scanner.c"
+yy495:
+ YYDEBUG(495, *YYCURSOR);
+ ++YYCURSOR;
+ if (yybm[0+(yych = *YYCURSOR)] & 16) {
+ goto yy127;
+ }
YYDEBUG(496, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych == '<') goto yy219;
- goto yy157;
+ yyleng = YYCURSOR - SCNG(yy_text);
+#line 1137 "Zend/zend_language_scanner.l"
+ {
+ RETURN_TOKEN(T_CONST);
+}
+#line 5463 "Zend/zend_language_scanner.c"
yy497:
YYDEBUG(497, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'A') goto yy504;
- if (yych == 'a') goto yy504;
- goto yy150;
+ if (yych == 'N') goto yy570;
+ if (yych == 'n') goto yy570;
+ goto yy128;
yy498:
YYDEBUG(498, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'I') goto yy499;
- if (yych != 'i') goto yy150;
+ if (yych == 'R') goto yy571;
+ if (yych == 'r') goto yy571;
+ goto yy128;
yy499:
YYDEBUG(499, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'T') goto yy500;
- if (yych != 't') goto yy150;
+ if (yych == 'L') goto yy572;
+ if (yych == 'l') goto yy572;
+ goto yy128;
yy500:
YYDEBUG(500, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'C') goto yy501;
- if (yych != 'c') goto yy150;
+ if (yych == 'F') goto yy573;
+ if (yych == 'f') goto yy573;
+ goto yy128;
yy501:
YYDEBUG(501, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych == 'H') goto yy502;
- if (yych != 'h') goto yy150;
-yy502:
- YYDEBUG(502, *YYCURSOR);
++YYCURSOR;
- if (yybm[0+(yych = *YYCURSOR)] & 4) {
- goto yy149;
+ if (yybm[0+(yych = *YYCURSOR)] & 16) {
+ goto yy127;
}
- YYDEBUG(503, *YYCURSOR);
+ YYDEBUG(502, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1230 "Zend/zend_language_scanner.l"
+#line 1408 "Zend/zend_language_scanner.l"
{
- RETURN_TOKEN(T_SWITCH);
+ RETURN_TOKEN(T_EMPTY);
}
-#line 5242 "Zend/zend_language_scanner.c"
+#line 5500 "Zend/zend_language_scanner.c"
+yy503:
+ YYDEBUG(503, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if (yych == 'C') goto yy575;
+ if (yych == 'c') goto yy575;
+ goto yy128;
yy504:
YYDEBUG(504, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'T') goto yy505;
- if (yych != 't') goto yy150;
+ if (yych == 'R') goto yy576;
+ if (yych == 'r') goto yy576;
+ goto yy128;
yy505:
YYDEBUG(505, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych == 'I') goto yy506;
- if (yych != 'i') goto yy150;
-yy506:
- YYDEBUG(506, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych == 'C') goto yy507;
- if (yych != 'c') goto yy150;
-yy507:
- YYDEBUG(507, *YYCURSOR);
++YYCURSOR;
- if (yybm[0+(yych = *YYCURSOR)] & 4) {
- goto yy149;
+ if (yybm[0+(yych = *YYCURSOR)] & 16) {
+ goto yy127;
}
- YYDEBUG(508, *YYCURSOR);
+ YYDEBUG(506, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1416 "Zend/zend_language_scanner.l"
+#line 1178 "Zend/zend_language_scanner.l"
{
- RETURN_TOKEN(T_STATIC);
+ RETURN_TOKEN(T_ENDIF);
}
-#line 5270 "Zend/zend_language_scanner.c"
+#line 5525 "Zend/zend_language_scanner.c"
+yy507:
+ YYDEBUG(507, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if (yych == 'I') goto yy578;
+ if (yych == 'i') goto yy578;
+ goto yy128;
+yy508:
+ YYDEBUG(508, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if (yych == 'I') goto yy579;
+ if (yych == 'i') goto yy579;
+ goto yy128;
yy509:
YYDEBUG(509, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'S') goto yy520;
- if (yych == 's') goto yy520;
- goto yy150;
+ if (yych == 'D') goto yy580;
+ if (yych == 'd') goto yy580;
+ goto yy128;
yy510:
YYDEBUG(510, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych == 'D') goto yy518;
- if (yych == 'd') goto yy518;
- goto yy150;
-yy511:
- YYDEBUG(511, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych == 'R') goto yy514;
- if (yych == 'r') goto yy514;
- goto yy150;
-yy512:
- YYDEBUG(512, *YYCURSOR);
++YYCURSOR;
- if (yybm[0+(yych = *YYCURSOR)] & 4) {
- goto yy149;
+ if ((yych = *YYCURSOR) <= '^') {
+ if (yych <= '@') {
+ if (yych <= '/') goto yy511;
+ if (yych <= '9') goto yy127;
+ } else {
+ if (yych == 'L') goto yy581;
+ if (yych <= 'Z') goto yy127;
+ }
+ } else {
+ if (yych <= 'k') {
+ if (yych != '`') goto yy127;
+ } else {
+ if (yych <= 'l') goto yy581;
+ if (yych <= 'z') goto yy127;
+ if (yych >= 0x80) goto yy127;
+ }
}
- YYDEBUG(513, *YYCURSOR);
+yy511:
+ YYDEBUG(511, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1226 "Zend/zend_language_scanner.l"
+#line 1424 "Zend/zend_language_scanner.l"
{
- RETURN_TOKEN(T_AS);
+ RETURN_TOKEN(T_FINAL);
}
-#line 5301 "Zend/zend_language_scanner.c"
+#line 5571 "Zend/zend_language_scanner.c"
+yy512:
+ YYDEBUG(512, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if (yych == 'C') goto yy582;
+ if (yych == 'c') goto yy582;
+ goto yy128;
+yy513:
+ YYDEBUG(513, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if (yych == 'I') goto yy583;
+ if (yych == 'i') goto yy583;
+ goto yy128;
yy514:
YYDEBUG(514, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'A') goto yy515;
- if (yych != 'a') goto yy150;
+ if (yych == 'L') goto yy584;
+ if (yych == 'l') goto yy584;
+ goto yy128;
yy515:
YYDEBUG(515, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'Y') goto yy516;
- if (yych != 'y') goto yy150;
+ if (yych == 'M') goto yy586;
+ if (yych == 'm') goto yy586;
+ goto yy128;
yy516:
YYDEBUG(516, *YYCURSOR);
- ++YYCURSOR;
- if (yybm[0+(yych = *YYCURSOR)] & 4) {
- goto yy149;
- }
+ yych = *++YYCURSOR;
+ if (yych == 'D') goto yy587;
+ if (yych == 'd') goto yy587;
+ goto yy128;
+yy517:
YYDEBUG(517, *YYCURSOR);
- yyleng = YYCURSOR - SCNG(yy_text);
-#line 1452 "Zend/zend_language_scanner.l"
- {
- RETURN_TOKEN(T_ARRAY);
-}
-#line 5324 "Zend/zend_language_scanner.c"
+ yych = *++YYCURSOR;
+ if (yych == 'N') goto yy588;
+ if (yych == 'n') goto yy588;
+ goto yy128;
yy518:
YYDEBUG(518, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if (yych == 'A') goto yy589;
+ if (yych == 'a') goto yy589;
+ goto yy128;
+yy519:
+ YYDEBUG(519, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if (yych == 'F') goto yy590;
+ if (yych == 'f') goto yy590;
+ goto yy128;
+yy520:
+ YYDEBUG(520, *YYCURSOR);
++YYCURSOR;
- if (yybm[0+(yych = *YYCURSOR)] & 4) {
- goto yy149;
+ if (yybm[0+(yych = *YYCURSOR)] & 16) {
+ goto yy127;
}
- YYDEBUG(519, *YYCURSOR);
+ YYDEBUG(521, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1560 "Zend/zend_language_scanner.l"
+#line 1404 "Zend/zend_language_scanner.l"
{
- RETURN_TOKEN(T_LOGICAL_AND);
+ RETURN_TOKEN(T_ISSET);
}
-#line 5337 "Zend/zend_language_scanner.c"
-yy520:
- YYDEBUG(520, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych == 'T') goto yy521;
- if (yych != 't') goto yy150;
-yy521:
- YYDEBUG(521, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych == 'R') goto yy522;
- if (yych != 'r') goto yy150;
+#line 5632 "Zend/zend_language_scanner.c"
yy522:
YYDEBUG(522, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'A') goto yy523;
- if (yych != 'a') goto yy150;
+ if (yych == 'P') goto yy591;
+ if (yych == 'p') goto yy591;
+ goto yy128;
yy523:
YYDEBUG(523, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych == 'C') goto yy524;
- if (yych != 'c') goto yy150;
-yy524:
- YYDEBUG(524, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych == 'T') goto yy525;
- if (yych != 't') goto yy150;
-yy525:
- YYDEBUG(525, *YYCURSOR);
++YYCURSOR;
- if (yybm[0+(yych = *YYCURSOR)] & 4) {
- goto yy149;
+ if (yybm[0+(yych = *YYCURSOR)] & 16) {
+ goto yy127;
}
- YYDEBUG(526, *YYCURSOR);
+ YYDEBUG(524, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1420 "Zend/zend_language_scanner.l"
+#line 1262 "Zend/zend_language_scanner.l"
{
- RETURN_TOKEN(T_ABSTRACT);
+ RETURN_TOKEN(T_PRINT);
}
-#line 5375 "Zend/zend_language_scanner.c"
+#line 5651 "Zend/zend_language_scanner.c"
+yy525:
+ YYDEBUG(525, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if (yych == 'T') goto yy592;
+ if (yych == 't') goto yy592;
+ goto yy128;
+yy526:
+ YYDEBUG(526, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if (yych == 'C') goto yy593;
+ if (yych == 'c') goto yy593;
+ goto yy128;
yy527:
YYDEBUG(527, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'I') goto yy528;
- if (yych != 'i') goto yy150;
+ if (yych == 'C') goto yy594;
+ if (yych == 'c') goto yy594;
+ goto yy128;
yy528:
YYDEBUG(528, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'L') goto yy529;
- if (yych != 'l') goto yy150;
+ if (yych == 'R') goto yy596;
+ if (yych == 'r') goto yy596;
+ goto yy128;
yy529:
YYDEBUG(529, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'E') goto yy530;
- if (yych != 'e') goto yy150;
+ if (yych == 'N') goto yy597;
+ if (yych == 'n') goto yy597;
+ goto yy128;
yy530:
YYDEBUG(530, *YYCURSOR);
- ++YYCURSOR;
- if (yybm[0+(yych = *YYCURSOR)] & 4) {
- goto yy149;
- }
+ yych = *++YYCURSOR;
+ if (yych == 'C') goto yy599;
+ if (yych == 'c') goto yy599;
+ goto yy128;
+yy531:
YYDEBUG(531, *YYCURSOR);
- yyleng = YYCURSOR - SCNG(yy_text);
-#line 1186 "Zend/zend_language_scanner.l"
- {
- RETURN_TOKEN(T_WHILE);
-}
-#line 5403 "Zend/zend_language_scanner.c"
+ yych = *++YYCURSOR;
+ if (yych == 'H') goto yy601;
+ if (yych == 'h') goto yy601;
+ goto yy128;
yy532:
YYDEBUG(532, *YYCURSOR);
++YYCURSOR;
- if (yybm[0+(yych = *YYCURSOR)] & 4) {
- goto yy149;
+ if (yybm[0+(yych = *YYCURSOR)] & 16) {
+ goto yy127;
}
YYDEBUG(533, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1170 "Zend/zend_language_scanner.l"
+#line 1166 "Zend/zend_language_scanner.l"
{
- RETURN_TOKEN(T_IF);
+ RETURN_TOKEN(T_THROW);
}
-#line 5416 "Zend/zend_language_scanner.c"
+#line 5706 "Zend/zend_language_scanner.c"
yy534:
YYDEBUG(534, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych == 'P') goto yy576;
- if (yych == 'p') goto yy576;
- goto yy150;
-yy535:
- YYDEBUG(535, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych <= 'T') {
- if (yych <= 'C') {
- if (yych <= 'B') goto yy150;
- goto yy543;
- } else {
- if (yych <= 'R') goto yy150;
- if (yych <= 'S') goto yy541;
- goto yy542;
- }
- } else {
- if (yych <= 'r') {
- if (yych == 'c') goto yy543;
- goto yy150;
- } else {
- if (yych <= 's') goto yy541;
- if (yych <= 't') goto yy542;
- goto yy150;
- }
+ ++YYCURSOR;
+ if (yybm[0+(yych = *YYCURSOR)] & 16) {
+ goto yy127;
}
+ YYDEBUG(535, *YYCURSOR);
+ yyleng = YYCURSOR - SCNG(yy_text);
+#line 1274 "Zend/zend_language_scanner.l"
+ {
+ RETURN_TOKEN(T_TRAIT);
+}
+#line 5719 "Zend/zend_language_scanner.c"
yy536:
YYDEBUG(536, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych == 'S') goto yy537;
- if (yych != 's') goto yy150;
-yy537:
+ ++YYCURSOR;
+ if (yybm[0+(yych = *YYCURSOR)] & 16) {
+ goto yy127;
+ }
YYDEBUG(537, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych == 'E') goto yy538;
- if (yych != 'e') goto yy150;
+ yyleng = YYCURSOR - SCNG(yy_text);
+#line 1440 "Zend/zend_language_scanner.l"
+ {
+ RETURN_TOKEN(T_UNSET);
+}
+#line 5732 "Zend/zend_language_scanner.c"
yy538:
YYDEBUG(538, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych == 'T') goto yy539;
- if (yych != 't') goto yy150;
-yy539:
- YYDEBUG(539, *YYCURSOR);
++YYCURSOR;
- if (yybm[0+(yych = *YYCURSOR)] & 4) {
- goto yy149;
+ if (yybm[0+(yych = *YYCURSOR)] & 16) {
+ goto yy127;
}
- YYDEBUG(540, *YYCURSOR);
+ YYDEBUG(539, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1404 "Zend/zend_language_scanner.l"
+#line 1186 "Zend/zend_language_scanner.l"
{
- RETURN_TOKEN(T_ISSET);
+ RETURN_TOKEN(T_WHILE);
}
-#line 5472 "Zend/zend_language_scanner.c"
+#line 5745 "Zend/zend_language_scanner.c"
+yy540:
+ YYDEBUG(540, *YYCURSOR);
+ yyaccept = 6;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yybm[0+yych] & 16) {
+ goto yy127;
+ }
+ if (yych <= '\f') {
+ if (yych <= 0x08) goto yy541;
+ if (yych <= '\n') goto yy603;
+ } else {
+ if (yych <= '\r') goto yy603;
+ if (yych == ' ') goto yy603;
+ }
yy541:
YYDEBUG(541, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych == 'T') goto yy562;
- if (yych == 't') goto yy562;
- goto yy150;
+ yyleng = YYCURSOR - SCNG(yy_text);
+#line 1150 "Zend/zend_language_scanner.l"
+ {
+ RETURN_TOKEN(T_YIELD);
+}
+#line 5767 "Zend/zend_language_scanner.c"
yy542:
YYDEBUG(542, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'E') goto yy555;
- if (yych == 'e') goto yy555;
- goto yy150;
+ if (yych == 'S') goto yy605;
+ if (yych == 's') goto yy605;
+ goto yy128;
yy543:
YYDEBUG(543, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'L') goto yy544;
- if (yych != 'l') goto yy150;
+ if (yych == '_') goto yy606;
+ goto yy128;
yy544:
YYDEBUG(544, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'U') goto yy545;
- if (yych != 'u') goto yy150;
+ if (yych == 'E') goto yy607;
+ if (yych == 'e') goto yy607;
+ goto yy128;
yy545:
YYDEBUG(545, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'D') goto yy546;
- if (yych != 'd') goto yy150;
+ if (yych == 'C') goto yy608;
+ if (yych == 'c') goto yy608;
+ goto yy128;
yy546:
YYDEBUG(546, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'E') goto yy547;
- if (yych != 'e') goto yy150;
+ if (yych == 'T') goto yy609;
+ if (yych == 't') goto yy609;
+ goto yy128;
yy547:
YYDEBUG(547, *YYCURSOR);
- ++YYCURSOR;
- if ((yych = *YYCURSOR) <= '^') {
- if (yych <= '9') {
- if (yych >= '0') goto yy149;
- } else {
- if (yych <= '@') goto yy548;
- if (yych <= 'Z') goto yy149;
- }
- } else {
- if (yych <= '`') {
- if (yych <= '_') goto yy549;
- } else {
- if (yych <= 'z') goto yy149;
- if (yych >= 0x80) goto yy149;
- }
- }
+ yych = *++YYCURSOR;
+ if (yych == 'E') goto yy610;
+ if (yych == 'e') goto yy610;
+ goto yy128;
yy548:
YYDEBUG(548, *YYCURSOR);
- yyleng = YYCURSOR - SCNG(yy_text);
-#line 1372 "Zend/zend_language_scanner.l"
- {
- RETURN_TOKEN(T_INCLUDE);
-}
-#line 5530 "Zend/zend_language_scanner.c"
+ yych = *++YYCURSOR;
+ if (yych == 'H') goto yy611;
+ if (yych == 'h') goto yy611;
+ goto yy128;
yy549:
YYDEBUG(549, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'O') goto yy550;
- if (yych != 'o') goto yy150;
+ if (yych == 'E') goto yy612;
+ if (yych == 'e') goto yy612;
+ goto yy128;
yy550:
YYDEBUG(550, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'N') goto yy551;
- if (yych != 'n') goto yy150;
+ if (yych == 'I') goto yy613;
+ if (yych == 'i') goto yy613;
+ goto yy128;
yy551:
YYDEBUG(551, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych == 'C') goto yy552;
- if (yych != 'c') goto yy150;
-yy552:
+ ++YYCURSOR;
+ YYFILL(1);
+ yych = *YYCURSOR;
YYDEBUG(552, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych == 'E') goto yy553;
- if (yych != 'e') goto yy150;
+ if (yych <= 0x1F) {
+ if (yych == '\t') goto yy551;
+ goto yy166;
+ } else {
+ if (yych <= ' ') goto yy551;
+ if (yych == ')') goto yy614;
+ goto yy166;
+ }
yy553:
YYDEBUG(553, *YYCURSOR);
- ++YYCURSOR;
- if (yybm[0+(yych = *YYCURSOR)] & 4) {
- goto yy149;
- }
+ yych = *++YYCURSOR;
+ if (yych == 'Y') goto yy616;
+ if (yych == 'y') goto yy616;
+ goto yy166;
+yy554:
YYDEBUG(554, *YYCURSOR);
- yyleng = YYCURSOR - SCNG(yy_text);
-#line 1376 "Zend/zend_language_scanner.l"
- {
- RETURN_TOKEN(T_INCLUDE_ONCE);
-}
-#line 5563 "Zend/zend_language_scanner.c"
+ ++YYCURSOR;
+ YYFILL(1);
+ yych = *YYCURSOR;
yy555:
YYDEBUG(555, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych == 'R') goto yy556;
- if (yych != 'r') goto yy150;
-yy556:
+ if (yych <= 0x1F) {
+ if (yych == '\t') goto yy554;
+ goto yy166;
+ } else {
+ if (yych <= ' ') goto yy554;
+ if (yych != ')') goto yy166;
+ }
YYDEBUG(556, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych == 'F') goto yy557;
- if (yych != 'f') goto yy150;
-yy557:
+ ++YYCURSOR;
YYDEBUG(557, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych == 'A') goto yy558;
- if (yych != 'a') goto yy150;
+ yyleng = YYCURSOR - SCNG(yy_text);
+#line 1360 "Zend/zend_language_scanner.l"
+ {
+ RETURN_TOKEN(T_BOOL_CAST);
+}
+#line 5863 "Zend/zend_language_scanner.c"
yy558:
YYDEBUG(558, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'C') goto yy559;
- if (yych != 'c') goto yy150;
+ if (yych == 'A') goto yy618;
+ if (yych == 'a') goto yy618;
+ goto yy166;
yy559:
YYDEBUG(559, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'E') goto yy560;
- if (yych != 'e') goto yy150;
+ if (yych == 'E') goto yy472;
+ if (yych == 'e') goto yy472;
+ goto yy166;
yy560:
YYDEBUG(560, *YYCURSOR);
- ++YYCURSOR;
- if (yybm[0+(yych = *YYCURSOR)] & 4) {
- goto yy149;
- }
+ yych = *++YYCURSOR;
+ if (yych == 'E') goto yy619;
+ if (yych == 'e') goto yy619;
+ goto yy166;
+yy561:
YYDEBUG(561, *YYCURSOR);
- yyleng = YYCURSOR - SCNG(yy_text);
-#line 1270 "Zend/zend_language_scanner.l"
- {
- RETURN_TOKEN(T_INTERFACE);
-}
-#line 5601 "Zend/zend_language_scanner.c"
+ yych = *++YYCURSOR;
+ if (yych == 'T') goto yy620;
+ if (yych == 't') goto yy620;
+ goto yy166;
yy562:
YYDEBUG(562, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych <= 'E') {
- if (yych == 'A') goto yy563;
- if (yych <= 'D') goto yy150;
- goto yy564;
- } else {
- if (yych <= 'a') {
- if (yych <= '`') goto yy150;
- } else {
- if (yych == 'e') goto yy564;
- goto yy150;
- }
- }
-yy563:
+ ++YYCURSOR;
YYDEBUG(563, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych == 'N') goto yy570;
- if (yych == 'n') goto yy570;
- goto yy150;
+ yyleng = YYCURSOR - SCNG(yy_text);
+#line 1344 "Zend/zend_language_scanner.l"
+ {
+ RETURN_TOKEN(T_DOUBLE_CAST);
+}
+#line 5897 "Zend/zend_language_scanner.c"
yy564:
YYDEBUG(564, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'A') goto yy565;
- if (yych != 'a') goto yy150;
+ if (yych == 'G') goto yy616;
+ if (yych == 'g') goto yy616;
+ goto yy166;
yy565:
YYDEBUG(565, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych == 'D') goto yy566;
- if (yych != 'd') goto yy150;
-yy566:
+ ++YYCURSOR;
+ YYFILL(1);
+ yych = *YYCURSOR;
YYDEBUG(566, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych == 'O') goto yy567;
- if (yych != 'o') goto yy150;
+ if (yych <= 0x1F) {
+ if (yych == '\t') goto yy565;
+ goto yy166;
+ } else {
+ if (yych <= ' ') goto yy565;
+ if (yych == ')') goto yy622;
+ goto yy166;
+ }
yy567:
YYDEBUG(567, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'F') goto yy568;
- if (yych != 'f') goto yy150;
+ if (yych == '\n') goto yy480;
+ if (yych == '\r') goto yy482;
+ goto yy166;
yy568:
YYDEBUG(568, *YYCURSOR);
- ++YYCURSOR;
- if (yybm[0+(yych = *YYCURSOR)] & 4) {
- goto yy149;
- }
+ yych = *++YYCURSOR;
+ if (yych == 'C') goto yy624;
+ if (yych == 'c') goto yy624;
+ goto yy128;
+yy569:
YYDEBUG(569, *YYCURSOR);
- yyleng = YYCURSOR - SCNG(yy_text);
-#line 1396 "Zend/zend_language_scanner.l"
- {
- RETURN_TOKEN(T_INSTEADOF);
-}
-#line 5655 "Zend/zend_language_scanner.c"
+ yych = *++YYCURSOR;
+ if (yych == 'L') goto yy625;
+ if (yych == 'l') goto yy625;
+ goto yy128;
yy570:
YYDEBUG(570, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'C') goto yy571;
- if (yych != 'c') goto yy150;
+ if (yych == 'U') goto yy626;
+ if (yych == 'u') goto yy626;
+ goto yy128;
yy571:
YYDEBUG(571, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'E') goto yy572;
- if (yych != 'e') goto yy150;
+ if (yych == 'E') goto yy627;
+ if (yych == 'e') goto yy627;
+ goto yy128;
yy572:
YYDEBUG(572, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'O') goto yy573;
- if (yych != 'o') goto yy150;
+ if (yych == 'T') goto yy629;
+ if (yych == 't') goto yy629;
+ goto yy128;
yy573:
YYDEBUG(573, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych == 'F') goto yy574;
- if (yych != 'f') goto yy150;
-yy574:
- YYDEBUG(574, *YYCURSOR);
++YYCURSOR;
- if (yybm[0+(yych = *YYCURSOR)] & 4) {
- goto yy149;
+ if (yybm[0+(yych = *YYCURSOR)] & 16) {
+ goto yy127;
}
- YYDEBUG(575, *YYCURSOR);
+ YYDEBUG(574, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1222 "Zend/zend_language_scanner.l"
+#line 1174 "Zend/zend_language_scanner.l"
{
- RETURN_TOKEN(T_INSTANCEOF);
+ RETURN_TOKEN(T_ELSEIF);
}
-#line 5688 "Zend/zend_language_scanner.c"
+#line 5966 "Zend/zend_language_scanner.c"
+yy575:
+ YYDEBUG(575, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if (yych == 'L') goto yy631;
+ if (yych == 'l') goto yy631;
+ goto yy128;
yy576:
YYDEBUG(576, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych == 'L') goto yy577;
- if (yych != 'l') goto yy150;
+ ++YYCURSOR;
+ if ((yych = *YYCURSOR) <= '^') {
+ if (yych <= '@') {
+ if (yych <= '/') goto yy577;
+ if (yych <= '9') goto yy127;
+ } else {
+ if (yych == 'E') goto yy632;
+ if (yych <= 'Z') goto yy127;
+ }
+ } else {
+ if (yych <= 'd') {
+ if (yych != '`') goto yy127;
+ } else {
+ if (yych <= 'e') goto yy632;
+ if (yych <= 'z') goto yy127;
+ if (yych >= 0x80) goto yy127;
+ }
+ }
yy577:
YYDEBUG(577, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych == 'E') goto yy578;
- if (yych != 'e') goto yy150;
+ yyleng = YYCURSOR - SCNG(yy_text);
+#line 1202 "Zend/zend_language_scanner.l"
+ {
+ RETURN_TOKEN(T_ENDFOR);
+}
+#line 6000 "Zend/zend_language_scanner.c"
yy578:
YYDEBUG(578, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'M') goto yy579;
- if (yych != 'm') goto yy150;
+ if (yych == 'T') goto yy633;
+ if (yych == 't') goto yy633;
+ goto yy128;
yy579:
YYDEBUG(579, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'E') goto yy580;
- if (yych != 'e') goto yy150;
+ if (yych == 'L') goto yy634;
+ if (yych == 'l') goto yy634;
+ goto yy128;
yy580:
YYDEBUG(580, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'N') goto yy581;
- if (yych != 'n') goto yy150;
+ if (yych == 'S') goto yy635;
+ if (yych == 's') goto yy635;
+ goto yy128;
yy581:
YYDEBUG(581, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'T') goto yy582;
- if (yych != 't') goto yy150;
+ if (yych == 'Y') goto yy637;
+ if (yych == 'y') goto yy637;
+ goto yy128;
yy582:
YYDEBUG(582, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'S') goto yy583;
- if (yych != 's') goto yy150;
+ if (yych == 'H') goto yy639;
+ if (yych == 'h') goto yy639;
+ goto yy128;
yy583:
YYDEBUG(583, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if (yych == 'O') goto yy641;
+ if (yych == 'o') goto yy641;
+ goto yy128;
+yy584:
+ YYDEBUG(584, *YYCURSOR);
++YYCURSOR;
- if (yybm[0+(yych = *YYCURSOR)] & 4) {
- goto yy149;
+ if (yybm[0+(yych = *YYCURSOR)] & 16) {
+ goto yy127;
}
- YYDEBUG(584, *YYCURSOR);
+ YYDEBUG(585, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1282 "Zend/zend_language_scanner.l"
+#line 1400 "Zend/zend_language_scanner.l"
{
- RETURN_TOKEN(T_IMPLEMENTS);
+ RETURN_TOKEN(T_GLOBAL);
}
-#line 5736 "Zend/zend_language_scanner.c"
-yy585:
- YYDEBUG(585, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych == 'R') goto yy593;
- if (yych == 'r') goto yy593;
- goto yy150;
+#line 6049 "Zend/zend_language_scanner.c"
yy586:
YYDEBUG(586, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych <= 'Y') {
- if (yych == 'A') goto yy589;
- if (yych <= 'X') goto yy150;
- } else {
- if (yych <= 'a') {
- if (yych <= '`') goto yy150;
- goto yy589;
- } else {
- if (yych != 'y') goto yy150;
- }
- }
+ if (yych == 'E') goto yy642;
+ if (yych == 'e') goto yy642;
+ goto yy128;
+yy587:
YYDEBUG(587, *YYCURSOR);
- ++YYCURSOR;
- if (yybm[0+(yych = *YYCURSOR)] & 4) {
- goto yy149;
- }
+ yych = *++YYCURSOR;
+ if (yych == 'E') goto yy643;
+ if (yych == 'e') goto yy643;
+ goto yy128;
+yy588:
YYDEBUG(588, *YYCURSOR);
- yyleng = YYCURSOR - SCNG(yy_text);
-#line 1154 "Zend/zend_language_scanner.l"
- {
- RETURN_TOKEN(T_TRY);
-}
-#line 5768 "Zend/zend_language_scanner.c"
+ yych = *++YYCURSOR;
+ if (yych == 'C') goto yy645;
+ if (yych == 'c') goto yy645;
+ goto yy128;
yy589:
YYDEBUG(589, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'I') goto yy590;
- if (yych != 'i') goto yy150;
+ if (yych == 'D') goto yy646;
+ if (yych == 'd') goto yy646;
+ goto yy128;
yy590:
YYDEBUG(590, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'T') goto yy591;
- if (yych != 't') goto yy150;
+ if (yych == 'A') goto yy647;
+ if (yych == 'a') goto yy647;
+ goto yy128;
yy591:
YYDEBUG(591, *YYCURSOR);
- ++YYCURSOR;
- if (yybm[0+(yych = *YYCURSOR)] & 4) {
- goto yy149;
- }
+ yych = *++YYCURSOR;
+ if (yych == 'A') goto yy648;
+ if (yych == 'a') goto yy648;
+ goto yy128;
+yy592:
YYDEBUG(592, *YYCURSOR);
- yyleng = YYCURSOR - SCNG(yy_text);
-#line 1274 "Zend/zend_language_scanner.l"
- {
- RETURN_TOKEN(T_TRAIT);
-}
-#line 5791 "Zend/zend_language_scanner.c"
+ yych = *++YYCURSOR;
+ if (yych == 'E') goto yy649;
+ if (yych == 'e') goto yy649;
+ goto yy128;
yy593:
YYDEBUG(593, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'O') goto yy594;
- if (yych != 'o') goto yy150;
+ if (yych == 'T') goto yy651;
+ if (yych == 't') goto yy651;
+ goto yy128;
yy594:
YYDEBUG(594, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych == 'W') goto yy595;
- if (yych != 'w') goto yy150;
-yy595:
- YYDEBUG(595, *YYCURSOR);
++YYCURSOR;
- if (yybm[0+(yych = *YYCURSOR)] & 4) {
- goto yy149;
+ if (yybm[0+(yych = *YYCURSOR)] & 16) {
+ goto yy127;
}
- YYDEBUG(596, *YYCURSOR);
+ YYDEBUG(595, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1166 "Zend/zend_language_scanner.l"
+#line 1436 "Zend/zend_language_scanner.l"
{
- RETURN_TOKEN(T_THROW);
+ RETURN_TOKEN(T_PUBLIC);
}
-#line 5814 "Zend/zend_language_scanner.c"
+#line 6110 "Zend/zend_language_scanner.c"
+yy596:
+ YYDEBUG(596, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if (yych == 'E') goto yy652;
+ if (yych == 'e') goto yy652;
+ goto yy128;
yy597:
YYDEBUG(597, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych == 'E') goto yy598;
- if (yych != 'e') goto yy150;
-yy598:
+ ++YYCURSOR;
+ if (yybm[0+(yych = *YYCURSOR)] & 16) {
+ goto yy127;
+ }
YYDEBUG(598, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych == 'L') goto yy599;
- if (yych != 'l') goto yy150;
+ yyleng = YYCURSOR - SCNG(yy_text);
+#line 1141 "Zend/zend_language_scanner.l"
+ {
+ RETURN_TOKEN(T_RETURN);
+}
+#line 6129 "Zend/zend_language_scanner.c"
yy599:
YYDEBUG(599, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych == 'D') goto yy600;
- if (yych != 'd') goto yy150;
-yy600:
- YYDEBUG(600, *YYCURSOR);
- yyaccept = 6;
- yych = *(YYMARKER = ++YYCURSOR);
- if (yybm[0+yych] & 4) {
- goto yy149;
- }
- if (yych <= '\f') {
- if (yych <= 0x08) goto yy601;
- if (yych <= '\n') goto yy602;
- } else {
- if (yych <= '\r') goto yy602;
- if (yych == ' ') goto yy602;
+ ++YYCURSOR;
+ if (yybm[0+(yych = *YYCURSOR)] & 16) {
+ goto yy127;
}
+ YYDEBUG(600, *YYCURSOR);
+ yyleng = YYCURSOR - SCNG(yy_text);
+#line 1416 "Zend/zend_language_scanner.l"
+ {
+ RETURN_TOKEN(T_STATIC);
+}
+#line 6142 "Zend/zend_language_scanner.c"
yy601:
YYDEBUG(601, *YYCURSOR);
+ ++YYCURSOR;
+ if (yybm[0+(yych = *YYCURSOR)] & 16) {
+ goto yy127;
+ }
+ YYDEBUG(602, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1150 "Zend/zend_language_scanner.l"
+#line 1230 "Zend/zend_language_scanner.l"
{
- RETURN_TOKEN(T_YIELD);
+ RETURN_TOKEN(T_SWITCH);
}
-#line 5851 "Zend/zend_language_scanner.c"
-yy602:
- YYDEBUG(602, *YYCURSOR);
+#line 6155 "Zend/zend_language_scanner.c"
+yy603:
+ YYDEBUG(603, *YYCURSOR);
++YYCURSOR;
YYFILL(4);
yych = *YYCURSOR;
- YYDEBUG(603, *YYCURSOR);
+ YYDEBUG(604, *YYCURSOR);
if (yych <= 0x1F) {
if (yych <= '\n') {
- if (yych <= 0x08) goto yy157;
- goto yy602;
+ if (yych <= 0x08) goto yy166;
+ goto yy603;
} else {
- if (yych == '\r') goto yy602;
- goto yy157;
+ if (yych == '\r') goto yy603;
+ goto yy166;
}
} else {
if (yych <= 'F') {
- if (yych <= ' ') goto yy602;
- if (yych <= 'E') goto yy157;
+ if (yych <= ' ') goto yy603;
+ if (yych <= 'E') goto yy166;
+ goto yy654;
} else {
- if (yych != 'f') goto yy157;
+ if (yych == 'f') goto yy654;
+ goto yy166;
}
}
- YYDEBUG(604, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych == 'R') goto yy605;
- if (yych != 'r') goto yy157;
yy605:
YYDEBUG(605, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'O') goto yy606;
- if (yych != 'o') goto yy157;
+ if (yych == 'S') goto yy655;
+ if (yych == 's') goto yy655;
+ goto yy128;
yy606:
YYDEBUG(606, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'M') goto yy607;
- if (yych != 'm') goto yy157;
+ if (yych == '_') goto yy656;
+ goto yy128;
yy607:
YYDEBUG(607, *YYCURSOR);
- ++YYCURSOR;
+ yych = *++YYCURSOR;
+ if (yych == '_') goto yy658;
+ goto yy128;
+yy608:
YYDEBUG(608, *YYCURSOR);
- yyleng = YYCURSOR - SCNG(yy_text);
-#line 1145 "Zend/zend_language_scanner.l"
- {
- HANDLE_NEWLINES(yytext, yyleng);
- RETURN_TOKEN(T_YIELD_FROM);
-}
-#line 5898 "Zend/zend_language_scanner.c"
+ yych = *++YYCURSOR;
+ if (yych == 'T') goto yy659;
+ if (yych == 't') goto yy659;
+ goto yy128;
yy609:
YYDEBUG(609, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych <= 'T') {
- if (yych == 'Q') goto yy611;
- if (yych <= 'S') goto yy150;
- } else {
- if (yych <= 'q') {
- if (yych <= 'p') goto yy150;
- goto yy611;
- } else {
- if (yych != 't') goto yy150;
- }
- }
+ if (yych == '_') goto yy660;
+ goto yy128;
+yy610:
YYDEBUG(610, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'U') goto yy623;
- if (yych == 'u') goto yy623;
- goto yy150;
+ if (yych == '_') goto yy661;
+ goto yy128;
yy611:
YYDEBUG(611, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'U') goto yy612;
- if (yych != 'u') goto yy150;
+ if (yych == 'O') goto yy662;
+ if (yych == 'o') goto yy662;
+ goto yy128;
yy612:
YYDEBUG(612, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'I') goto yy613;
- if (yych != 'i') goto yy150;
+ if (yych == 'S') goto yy663;
+ if (yych == 's') goto yy663;
+ goto yy128;
yy613:
YYDEBUG(613, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'R') goto yy614;
- if (yych != 'r') goto yy150;
+ if (yych == 'T') goto yy664;
+ if (yych == 't') goto yy664;
+ goto yy128;
yy614:
YYDEBUG(614, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych == 'E') goto yy615;
- if (yych != 'e') goto yy150;
-yy615:
- YYDEBUG(615, *YYCURSOR);
++YYCURSOR;
- if ((yych = *YYCURSOR) <= '^') {
- if (yych <= '9') {
- if (yych >= '0') goto yy149;
- } else {
- if (yych <= '@') goto yy616;
- if (yych <= 'Z') goto yy149;
- }
- } else {
- if (yych <= '`') {
- if (yych <= '_') goto yy617;
- } else {
- if (yych <= 'z') goto yy149;
- if (yych >= 0x80) goto yy149;
- }
- }
-yy616:
- YYDEBUG(616, *YYCURSOR);
+ YYDEBUG(615, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1380 "Zend/zend_language_scanner.l"
+#line 1352 "Zend/zend_language_scanner.l"
{
- RETURN_TOKEN(T_REQUIRE);
+ RETURN_TOKEN(T_ARRAY_CAST);
}
-#line 5963 "Zend/zend_language_scanner.c"
-yy617:
+#line 6239 "Zend/zend_language_scanner.c"
+yy616:
+ YYDEBUG(616, *YYCURSOR);
+ ++YYCURSOR;
+ YYFILL(1);
+ yych = *YYCURSOR;
YYDEBUG(617, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych == 'O') goto yy618;
- if (yych != 'o') goto yy150;
+ if (yych <= 0x1F) {
+ if (yych == '\t') goto yy616;
+ goto yy166;
+ } else {
+ if (yych <= ' ') goto yy616;
+ if (yych == ')') goto yy665;
+ goto yy166;
+ }
yy618:
YYDEBUG(618, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'N') goto yy619;
- if (yych != 'n') goto yy150;
+ if (yych == 'N') goto yy554;
+ if (yych == 'n') goto yy554;
+ goto yy166;
yy619:
YYDEBUG(619, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'C') goto yy620;
- if (yych != 'c') goto yy150;
+ if (yych == 'R') goto yy466;
+ if (yych == 'r') goto yy466;
+ goto yy166;
yy620:
YYDEBUG(620, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych == 'E') goto yy621;
- if (yych != 'e') goto yy150;
-yy621:
- YYDEBUG(621, *YYCURSOR);
++YYCURSOR;
- if (yybm[0+(yych = *YYCURSOR)] & 4) {
- goto yy149;
+ YYFILL(1);
+ yych = *YYCURSOR;
+ YYDEBUG(621, *YYCURSOR);
+ if (yych <= 0x1F) {
+ if (yych == '\t') goto yy620;
+ goto yy166;
+ } else {
+ if (yych <= ' ') goto yy620;
+ if (yych == ')') goto yy667;
+ goto yy166;
}
+yy622:
YYDEBUG(622, *YYCURSOR);
+ ++YYCURSOR;
+ YYDEBUG(623, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1384 "Zend/zend_language_scanner.l"
+#line 1364 "Zend/zend_language_scanner.l"
{
- RETURN_TOKEN(T_REQUIRE_ONCE);
+ RETURN_TOKEN(T_UNSET_CAST);
}
-#line 5996 "Zend/zend_language_scanner.c"
-yy623:
- YYDEBUG(623, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych == 'R') goto yy624;
- if (yych != 'r') goto yy150;
+#line 6289 "Zend/zend_language_scanner.c"
yy624:
YYDEBUG(624, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'N') goto yy625;
- if (yych != 'n') goto yy150;
+ if (yych == 'T') goto yy669;
+ if (yych == 't') goto yy669;
+ goto yy128;
yy625:
YYDEBUG(625, *YYCURSOR);
- ++YYCURSOR;
- if (yybm[0+(yych = *YYCURSOR)] & 4) {
- goto yy149;
- }
+ yych = *++YYCURSOR;
+ if (yych == 'E') goto yy671;
+ if (yych == 'e') goto yy671;
+ goto yy128;
+yy626:
YYDEBUG(626, *YYCURSOR);
- yyleng = YYCURSOR - SCNG(yy_text);
-#line 1141 "Zend/zend_language_scanner.l"
- {
- RETURN_TOKEN(T_RETURN);
-}
-#line 6019 "Zend/zend_language_scanner.c"
+ yych = *++YYCURSOR;
+ if (yych == 'E') goto yy673;
+ if (yych == 'e') goto yy673;
+ goto yy128;
yy627:
YYDEBUG(627, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych <= 'T') {
- if (yych <= 'L') {
- if (yych <= 'K') goto yy150;
- goto yy650;
- } else {
- if (yych <= 'R') goto yy150;
- if (yych <= 'S') goto yy649;
- goto yy648;
- }
- } else {
- if (yych <= 'r') {
- if (yych == 'l') goto yy650;
- goto yy150;
- } else {
- if (yych <= 's') goto yy649;
- if (yych <= 't') goto yy648;
- goto yy150;
- }
+ ++YYCURSOR;
+ if (yybm[0+(yych = *YYCURSOR)] & 16) {
+ goto yy127;
}
-yy628:
YYDEBUG(628, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych <= 'O') {
- if (yych == 'A') goto yy640;
- if (yych <= 'N') goto yy150;
- goto yy641;
- } else {
- if (yych <= 'a') {
- if (yych <= '`') goto yy150;
- goto yy640;
- } else {
- if (yych == 'o') goto yy641;
- goto yy150;
- }
- }
+ yyleng = YYCURSOR - SCNG(yy_text);
+#line 1214 "Zend/zend_language_scanner.l"
+ {
+ RETURN_TOKEN(T_DECLARE);
+}
+#line 6320 "Zend/zend_language_scanner.c"
yy629:
YYDEBUG(629, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych == 'N') goto yy630;
- if (yych != 'n') goto yy150;
-yy630:
- YYDEBUG(630, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych <= 'T') {
- if (yych <= 'R') goto yy150;
- if (yych >= 'T') goto yy632;
- } else {
- if (yych <= 'r') goto yy150;
- if (yych <= 's') goto yy631;
- if (yych <= 't') goto yy632;
- goto yy150;
+ ++YYCURSOR;
+ if (yybm[0+(yych = *YYCURSOR)] & 16) {
+ goto yy127;
}
+ YYDEBUG(630, *YYCURSOR);
+ yyleng = YYCURSOR - SCNG(yy_text);
+#line 1242 "Zend/zend_language_scanner.l"
+ {
+ RETURN_TOKEN(T_DEFAULT);
+}
+#line 6333 "Zend/zend_language_scanner.c"
yy631:
YYDEBUG(631, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'T') goto yy638;
- if (yych == 't') goto yy638;
- goto yy150;
+ if (yych == 'A') goto yy675;
+ if (yych == 'a') goto yy675;
+ goto yy128;
yy632:
YYDEBUG(632, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'I') goto yy633;
- if (yych != 'i') goto yy150;
+ if (yych == 'A') goto yy676;
+ if (yych == 'a') goto yy676;
+ goto yy128;
yy633:
YYDEBUG(633, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'N') goto yy634;
- if (yych != 'n') goto yy150;
+ if (yych == 'C') goto yy677;
+ if (yych == 'c') goto yy677;
+ goto yy128;
yy634:
YYDEBUG(634, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'U') goto yy635;
- if (yych != 'u') goto yy150;
+ if (yych == 'E') goto yy678;
+ if (yych == 'e') goto yy678;
+ goto yy128;
yy635:
YYDEBUG(635, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych == 'E') goto yy636;
- if (yych != 'e') goto yy150;
-yy636:
- YYDEBUG(636, *YYCURSOR);
++YYCURSOR;
- if (yybm[0+(yych = *YYCURSOR)] & 4) {
- goto yy149;
+ if (yybm[0+(yych = *YYCURSOR)] & 16) {
+ goto yy127;
}
- YYDEBUG(637, *YYCURSOR);
+ YYDEBUG(636, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1250 "Zend/zend_language_scanner.l"
+#line 1278 "Zend/zend_language_scanner.l"
{
- RETURN_TOKEN(T_CONTINUE);
+ RETURN_TOKEN(T_EXTENDS);
}
-#line 6113 "Zend/zend_language_scanner.c"
-yy638:
- YYDEBUG(638, *YYCURSOR);
+#line 6370 "Zend/zend_language_scanner.c"
+yy637:
+ YYDEBUG(637, *YYCURSOR);
++YYCURSOR;
- if (yybm[0+(yych = *YYCURSOR)] & 4) {
- goto yy149;
+ if (yybm[0+(yych = *YYCURSOR)] & 16) {
+ goto yy127;
}
- YYDEBUG(639, *YYCURSOR);
+ YYDEBUG(638, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1137 "Zend/zend_language_scanner.l"
+#line 1162 "Zend/zend_language_scanner.l"
{
- RETURN_TOKEN(T_CONST);
+ RETURN_TOKEN(T_FINALLY);
}
-#line 6126 "Zend/zend_language_scanner.c"
-yy640:
+#line 6383 "Zend/zend_language_scanner.c"
+yy639:
+ YYDEBUG(639, *YYCURSOR);
+ ++YYCURSOR;
+ if (yybm[0+(yych = *YYCURSOR)] & 16) {
+ goto yy127;
+ }
YYDEBUG(640, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych == 'S') goto yy645;
- if (yych == 's') goto yy645;
- goto yy150;
+ yyleng = YYCURSOR - SCNG(yy_text);
+#line 1206 "Zend/zend_language_scanner.l"
+ {
+ RETURN_TOKEN(T_FOREACH);
+}
+#line 6396 "Zend/zend_language_scanner.c"
yy641:
YYDEBUG(641, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'N') goto yy642;
- if (yych != 'n') goto yy150;
+ if (yych == 'N') goto yy680;
+ if (yych == 'n') goto yy680;
+ goto yy128;
yy642:
YYDEBUG(642, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'E') goto yy643;
- if (yych != 'e') goto yy150;
+ if (yych == 'N') goto yy682;
+ if (yych == 'n') goto yy682;
+ goto yy128;
yy643:
YYDEBUG(643, *YYCURSOR);
++YYCURSOR;
- if (yybm[0+(yych = *YYCURSOR)] & 4) {
- goto yy149;
+ if ((yych = *YYCURSOR) <= '^') {
+ if (yych <= '9') {
+ if (yych >= '0') goto yy127;
+ } else {
+ if (yych <= '@') goto yy644;
+ if (yych <= 'Z') goto yy127;
+ }
+ } else {
+ if (yych <= '`') {
+ if (yych <= '_') goto yy683;
+ } else {
+ if (yych <= 'z') goto yy127;
+ if (yych >= 0x80) goto yy127;
+ }
}
+yy644:
YYDEBUG(644, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1332 "Zend/zend_language_scanner.l"
+#line 1372 "Zend/zend_language_scanner.l"
{
- RETURN_TOKEN(T_CLONE);
+ RETURN_TOKEN(T_INCLUDE);
}
-#line 6155 "Zend/zend_language_scanner.c"
+#line 6434 "Zend/zend_language_scanner.c"
yy645:
YYDEBUG(645, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'S') goto yy646;
- if (yych != 's') goto yy150;
+ if (yych == 'E') goto yy684;
+ if (yych == 'e') goto yy684;
+ goto yy128;
yy646:
YYDEBUG(646, *YYCURSOR);
- ++YYCURSOR;
- if (yybm[0+(yych = *YYCURSOR)] & 4) {
- goto yy149;
- }
+ yych = *++YYCURSOR;
+ if (yych == 'O') goto yy685;
+ if (yych == 'o') goto yy685;
+ goto yy128;
+yy647:
YYDEBUG(647, *YYCURSOR);
- yyleng = YYCURSOR - SCNG(yy_text);
-#line 1266 "Zend/zend_language_scanner.l"
- {
- RETURN_TOKEN(T_CLASS);
-}
-#line 6173 "Zend/zend_language_scanner.c"
+ yych = *++YYCURSOR;
+ if (yych == 'C') goto yy686;
+ if (yych == 'c') goto yy686;
+ goto yy128;
yy648:
YYDEBUG(648, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'C') goto yy659;
- if (yych == 'c') goto yy659;
- goto yy150;
+ if (yych == 'C') goto yy687;
+ if (yych == 'c') goto yy687;
+ goto yy128;
yy649:
YYDEBUG(649, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych == 'E') goto yy657;
- if (yych == 'e') goto yy657;
- goto yy150;
-yy650:
+ ++YYCURSOR;
+ if (yybm[0+(yych = *YYCURSOR)] & 16) {
+ goto yy127;
+ }
YYDEBUG(650, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych == 'L') goto yy651;
- if (yych != 'l') goto yy150;
+ yyleng = YYCURSOR - SCNG(yy_text);
+#line 1428 "Zend/zend_language_scanner.l"
+ {
+ RETURN_TOKEN(T_PRIVATE);
+}
+#line 6471 "Zend/zend_language_scanner.c"
yy651:
YYDEBUG(651, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'A') goto yy652;
- if (yych != 'a') goto yy150;
+ if (yych == 'E') goto yy688;
+ if (yych == 'e') goto yy688;
+ goto yy128;
yy652:
YYDEBUG(652, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych == 'B') goto yy653;
- if (yych != 'b') goto yy150;
+ ++YYCURSOR;
+ if ((yych = *YYCURSOR) <= '^') {
+ if (yych <= '9') {
+ if (yych >= '0') goto yy127;
+ } else {
+ if (yych <= '@') goto yy653;
+ if (yych <= 'Z') goto yy127;
+ }
+ } else {
+ if (yych <= '`') {
+ if (yych <= '_') goto yy689;
+ } else {
+ if (yych <= 'z') goto yy127;
+ if (yych >= 0x80) goto yy127;
+ }
+ }
yy653:
YYDEBUG(653, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych == 'L') goto yy654;
- if (yych != 'l') goto yy150;
+ yyleng = YYCURSOR - SCNG(yy_text);
+#line 1380 "Zend/zend_language_scanner.l"
+ {
+ RETURN_TOKEN(T_REQUIRE);
+}
+#line 6503 "Zend/zend_language_scanner.c"
yy654:
YYDEBUG(654, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'E') goto yy655;
- if (yych != 'e') goto yy150;
+ if (yych == 'R') goto yy690;
+ if (yych == 'r') goto yy690;
+ goto yy166;
yy655:
YYDEBUG(655, *YYCURSOR);
- ++YYCURSOR;
- if (yybm[0+(yych = *YYCURSOR)] & 4) {
- goto yy149;
- }
+ yych = *++YYCURSOR;
+ if (yych == '_') goto yy691;
+ goto yy128;
+yy656:
YYDEBUG(656, *YYCURSOR);
- yyleng = YYCURSOR - SCNG(yy_text);
-#line 1456 "Zend/zend_language_scanner.l"
- {
- RETURN_TOKEN(T_CALLABLE);
-}
-#line 6223 "Zend/zend_language_scanner.c"
-yy657:
- YYDEBUG(657, *YYCURSOR);
++YYCURSOR;
- if (yybm[0+(yych = *YYCURSOR)] & 4) {
- goto yy149;
+ if (yybm[0+(yych = *YYCURSOR)] & 16) {
+ goto yy127;
}
- YYDEBUG(658, *YYCURSOR);
+ YYDEBUG(657, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1238 "Zend/zend_language_scanner.l"
+#line 1773 "Zend/zend_language_scanner.l"
{
- RETURN_TOKEN(T_CASE);
+ RETURN_TOKEN(T_DIR);
}
-#line 6236 "Zend/zend_language_scanner.c"
+#line 6527 "Zend/zend_language_scanner.c"
+yy658:
+ YYDEBUG(658, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if (yych == '_') goto yy692;
+ goto yy128;
yy659:
YYDEBUG(659, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'H') goto yy660;
- if (yych != 'h') goto yy150;
+ if (yych == 'I') goto yy694;
+ if (yych == 'i') goto yy694;
+ goto yy128;
yy660:
YYDEBUG(660, *YYCURSOR);
- ++YYCURSOR;
- if (yybm[0+(yych = *YYCURSOR)] & 4) {
- goto yy149;
- }
+ yych = *++YYCURSOR;
+ if (yych == 'C') goto yy695;
+ if (yych == 'c') goto yy695;
+ goto yy128;
+yy661:
YYDEBUG(661, *YYCURSOR);
- yyleng = YYCURSOR - SCNG(yy_text);
-#line 1158 "Zend/zend_language_scanner.l"
- {
- RETURN_TOKEN(T_CATCH);
-}
-#line 6254 "Zend/zend_language_scanner.c"
+ yych = *++YYCURSOR;
+ if (yych == '_') goto yy696;
+ goto yy128;
yy662:
YYDEBUG(662, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'N') goto yy679;
- if (yych == 'n') goto yy679;
- goto yy150;
+ if (yych == 'D') goto yy698;
+ if (yych == 'd') goto yy698;
+ goto yy128;
yy663:
YYDEBUG(663, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'R') goto yy672;
- if (yych == 'r') goto yy672;
- goto yy150;
+ if (yych == 'P') goto yy699;
+ if (yych == 'p') goto yy699;
+ goto yy128;
yy664:
YYDEBUG(664, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'N') goto yy665;
- if (yych != 'n') goto yy150;
+ if (yych == '_') goto yy700;
+ goto yy128;
yy665:
YYDEBUG(665, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych == 'C') goto yy666;
- if (yych != 'c') goto yy150;
-yy666:
+ ++YYCURSOR;
YYDEBUG(666, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych == 'T') goto yy667;
- if (yych != 't') goto yy150;
+ yyleng = YYCURSOR - SCNG(yy_text);
+#line 1348 "Zend/zend_language_scanner.l"
+ {
+ RETURN_TOKEN(T_STRING_CAST);
+}
+#line 6576 "Zend/zend_language_scanner.c"
yy667:
YYDEBUG(667, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych == 'I') goto yy668;
- if (yych != 'i') goto yy150;
-yy668:
+ ++YYCURSOR;
YYDEBUG(668, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych == 'O') goto yy669;
- if (yych != 'o') goto yy150;
+ yyleng = YYCURSOR - SCNG(yy_text);
+#line 1356 "Zend/zend_language_scanner.l"
+ {
+ RETURN_TOKEN(T_OBJECT_CAST);
+}
+#line 6586 "Zend/zend_language_scanner.c"
yy669:
YYDEBUG(669, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych == 'N') goto yy670;
- if (yych != 'n') goto yy150;
-yy670:
- YYDEBUG(670, *YYCURSOR);
++YYCURSOR;
- if (yybm[0+(yych = *YYCURSOR)] & 4) {
- goto yy149;
+ if (yybm[0+(yych = *YYCURSOR)] & 16) {
+ goto yy127;
}
- YYDEBUG(671, *YYCURSOR);
+ YYDEBUG(670, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1133 "Zend/zend_language_scanner.l"
+#line 1420 "Zend/zend_language_scanner.l"
{
- RETURN_TOKEN(T_FUNCTION);
+ RETURN_TOKEN(T_ABSTRACT);
}
-#line 6309 "Zend/zend_language_scanner.c"
-yy672:
- YYDEBUG(672, *YYCURSOR);
+#line 6599 "Zend/zend_language_scanner.c"
+yy671:
+ YYDEBUG(671, *YYCURSOR);
++YYCURSOR;
- if ((yych = *YYCURSOR) <= '^') {
- if (yych <= '@') {
- if (yych <= '/') goto yy673;
- if (yych <= '9') goto yy149;
- } else {
- if (yych == 'E') goto yy674;
- if (yych <= 'Z') goto yy149;
- }
- } else {
- if (yych <= 'd') {
- if (yych != '`') goto yy149;
- } else {
- if (yych <= 'e') goto yy674;
- if (yych <= 'z') goto yy149;
- if (yych >= 0x80) goto yy149;
- }
+ if (yybm[0+(yych = *YYCURSOR)] & 16) {
+ goto yy127;
}
+ YYDEBUG(672, *YYCURSOR);
+ yyleng = YYCURSOR - SCNG(yy_text);
+#line 1456 "Zend/zend_language_scanner.l"
+ {
+ RETURN_TOKEN(T_CALLABLE);
+}
+#line 6612 "Zend/zend_language_scanner.c"
yy673:
YYDEBUG(673, *YYCURSOR);
+ ++YYCURSOR;
+ if (yybm[0+(yych = *YYCURSOR)] & 16) {
+ goto yy127;
+ }
+ YYDEBUG(674, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1198 "Zend/zend_language_scanner.l"
+#line 1250 "Zend/zend_language_scanner.l"
{
- RETURN_TOKEN(T_FOR);
+ RETURN_TOKEN(T_CONTINUE);
}
-#line 6337 "Zend/zend_language_scanner.c"
-yy674:
- YYDEBUG(674, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych == 'A') goto yy675;
- if (yych != 'a') goto yy150;
+#line 6625 "Zend/zend_language_scanner.c"
yy675:
YYDEBUG(675, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'C') goto yy676;
- if (yych != 'c') goto yy150;
+ if (yych == 'R') goto yy701;
+ if (yych == 'r') goto yy701;
+ goto yy128;
yy676:
YYDEBUG(676, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'H') goto yy677;
- if (yych != 'h') goto yy150;
+ if (yych == 'C') goto yy702;
+ if (yych == 'c') goto yy702;
+ goto yy128;
yy677:
YYDEBUG(677, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if (yych == 'H') goto yy703;
+ if (yych == 'h') goto yy703;
+ goto yy128;
+yy678:
+ YYDEBUG(678, *YYCURSOR);
++YYCURSOR;
- if (yybm[0+(yych = *YYCURSOR)] & 4) {
- goto yy149;
+ if (yybm[0+(yych = *YYCURSOR)] & 16) {
+ goto yy127;
}
- YYDEBUG(678, *YYCURSOR);
+ YYDEBUG(679, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1206 "Zend/zend_language_scanner.l"
+#line 1190 "Zend/zend_language_scanner.l"
{
- RETURN_TOKEN(T_FOREACH);
+ RETURN_TOKEN(T_ENDWHILE);
}
-#line 6365 "Zend/zend_language_scanner.c"
-yy679:
- YYDEBUG(679, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych == 'A') goto yy680;
- if (yych != 'a') goto yy150;
+#line 6656 "Zend/zend_language_scanner.c"
yy680:
YYDEBUG(680, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych == 'L') goto yy681;
- if (yych != 'l') goto yy150;
-yy681:
- YYDEBUG(681, *YYCURSOR);
++YYCURSOR;
- if ((yych = *YYCURSOR) <= '^') {
- if (yych <= '@') {
- if (yych <= '/') goto yy682;
- if (yych <= '9') goto yy149;
- } else {
- if (yych == 'L') goto yy683;
- if (yych <= 'Z') goto yy149;
- }
- } else {
- if (yych <= 'k') {
- if (yych != '`') goto yy149;
- } else {
- if (yych <= 'l') goto yy683;
- if (yych <= 'z') goto yy149;
- if (yych >= 0x80) goto yy149;
- }
+ if (yybm[0+(yych = *YYCURSOR)] & 16) {
+ goto yy127;
}
-yy682:
- YYDEBUG(682, *YYCURSOR);
+ YYDEBUG(681, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1424 "Zend/zend_language_scanner.l"
+#line 1133 "Zend/zend_language_scanner.l"
{
- RETURN_TOKEN(T_FINAL);
+ RETURN_TOKEN(T_FUNCTION);
}
-#line 6403 "Zend/zend_language_scanner.c"
+#line 6669 "Zend/zend_language_scanner.c"
+yy682:
+ YYDEBUG(682, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if (yych == 'T') goto yy705;
+ if (yych == 't') goto yy705;
+ goto yy128;
yy683:
YYDEBUG(683, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'Y') goto yy684;
- if (yych != 'y') goto yy150;
+ if (yych == 'O') goto yy706;
+ if (yych == 'o') goto yy706;
+ goto yy128;
yy684:
YYDEBUG(684, *YYCURSOR);
- ++YYCURSOR;
- if (yybm[0+(yych = *YYCURSOR)] & 4) {
- goto yy149;
- }
+ yych = *++YYCURSOR;
+ if (yych == 'O') goto yy707;
+ if (yych == 'o') goto yy707;
+ goto yy128;
+yy685:
YYDEBUG(685, *YYCURSOR);
- yyleng = YYCURSOR - SCNG(yy_text);
-#line 1162 "Zend/zend_language_scanner.l"
- {
- RETURN_TOKEN(T_FINALLY);
-}
-#line 6421 "Zend/zend_language_scanner.c"
+ yych = *++YYCURSOR;
+ if (yych == 'F') goto yy708;
+ if (yych == 'f') goto yy708;
+ goto yy128;
yy686:
YYDEBUG(686, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych <= 'F') {
- if (yych == 'C') goto yy692;
- if (yych <= 'E') goto yy150;
- goto yy693;
- } else {
- if (yych <= 'c') {
- if (yych <= 'b') goto yy150;
- goto yy692;
- } else {
- if (yych == 'f') goto yy693;
- goto yy150;
- }
- }
+ if (yych == 'E') goto yy710;
+ if (yych == 'e') goto yy710;
+ goto yy128;
yy687:
YYDEBUG(687, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'E') goto yy690;
- if (yych == 'e') goto yy690;
- goto yy150;
+ if (yych == 'E') goto yy712;
+ if (yych == 'e') goto yy712;
+ goto yy128;
yy688:
YYDEBUG(688, *YYCURSOR);
- ++YYCURSOR;
- if (yybm[0+(yych = *YYCURSOR)] & 4) {
- goto yy149;
- }
+ yych = *++YYCURSOR;
+ if (yych == 'D') goto yy714;
+ if (yych == 'd') goto yy714;
+ goto yy128;
+yy689:
YYDEBUG(689, *YYCURSOR);
- yyleng = YYCURSOR - SCNG(yy_text);
-#line 1194 "Zend/zend_language_scanner.l"
- {
- RETURN_TOKEN(T_DO);
-}
-#line 6456 "Zend/zend_language_scanner.c"
+ yych = *++YYCURSOR;
+ if (yych == 'O') goto yy716;
+ if (yych == 'o') goto yy716;
+ goto yy128;
yy690:
YYDEBUG(690, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if (yych == 'O') goto yy717;
+ if (yych == 'o') goto yy717;
+ goto yy166;
+yy691:
+ YYDEBUG(691, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if (yych == '_') goto yy718;
+ goto yy128;
+yy692:
+ YYDEBUG(692, *YYCURSOR);
++YYCURSOR;
- if (yybm[0+(yych = *YYCURSOR)] & 4) {
- goto yy149;
+ if (yybm[0+(yych = *YYCURSOR)] & 16) {
+ goto yy127;
}
- YYDEBUG(691, *YYCURSOR);
+ YYDEBUG(693, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1129 "Zend/zend_language_scanner.l"
+#line 1769 "Zend/zend_language_scanner.l"
{
- RETURN_TOKEN(T_EXIT);
+ RETURN_TOKEN(T_FILE);
}
-#line 6469 "Zend/zend_language_scanner.c"
-yy692:
- YYDEBUG(692, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych == 'L') goto yy699;
- if (yych == 'l') goto yy699;
- goto yy150;
-yy693:
- YYDEBUG(693, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych == 'A') goto yy694;
- if (yych != 'a') goto yy150;
+#line 6741 "Zend/zend_language_scanner.c"
yy694:
YYDEBUG(694, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'U') goto yy695;
- if (yych != 'u') goto yy150;
+ if (yych == 'O') goto yy720;
+ if (yych == 'o') goto yy720;
+ goto yy128;
yy695:
YYDEBUG(695, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'L') goto yy696;
- if (yych != 'l') goto yy150;
+ if (yych == 'O') goto yy721;
+ if (yych == 'o') goto yy721;
+ goto yy128;
yy696:
YYDEBUG(696, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych == 'T') goto yy697;
- if (yych != 't') goto yy150;
-yy697:
- YYDEBUG(697, *YYCURSOR);
++YYCURSOR;
- if (yybm[0+(yych = *YYCURSOR)] & 4) {
- goto yy149;
+ if (yybm[0+(yych = *YYCURSOR)] & 16) {
+ goto yy127;
}
- YYDEBUG(698, *YYCURSOR);
+ YYDEBUG(697, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1242 "Zend/zend_language_scanner.l"
+#line 1765 "Zend/zend_language_scanner.l"
{
- RETURN_TOKEN(T_DEFAULT);
+ RETURN_TOKEN(T_LINE);
}
-#line 6508 "Zend/zend_language_scanner.c"
+#line 6766 "Zend/zend_language_scanner.c"
+yy698:
+ YYDEBUG(698, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if (yych == '_') goto yy722;
+ goto yy128;
yy699:
YYDEBUG(699, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'A') goto yy700;
- if (yych != 'a') goto yy150;
+ if (yych == 'A') goto yy723;
+ if (yych == 'a') goto yy723;
+ goto yy128;
yy700:
YYDEBUG(700, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'R') goto yy701;
- if (yych != 'r') goto yy150;
+ if (yych == '_') goto yy724;
+ goto yy128;
yy701:
YYDEBUG(701, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'E') goto yy702;
- if (yych != 'e') goto yy150;
+ if (yych == 'E') goto yy726;
+ if (yych == 'e') goto yy726;
+ goto yy128;
yy702:
YYDEBUG(702, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if (yych == 'H') goto yy728;
+ if (yych == 'h') goto yy728;
+ goto yy128;
+yy703:
+ YYDEBUG(703, *YYCURSOR);
++YYCURSOR;
- if (yybm[0+(yych = *YYCURSOR)] & 4) {
- goto yy149;
+ if (yybm[0+(yych = *YYCURSOR)] & 16) {
+ goto yy127;
}
- YYDEBUG(703, *YYCURSOR);
+ YYDEBUG(704, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1214 "Zend/zend_language_scanner.l"
+#line 1234 "Zend/zend_language_scanner.l"
{
- RETURN_TOKEN(T_DECLARE);
+ RETURN_TOKEN(T_ENDSWITCH);
}
-#line 6536 "Zend/zend_language_scanner.c"
-yy704:
- YYDEBUG(704, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych == 'H') goto yy766;
- if (yych == 'h') goto yy766;
- goto yy150;
+#line 6807 "Zend/zend_language_scanner.c"
yy705:
YYDEBUG(705, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'S') goto yy760;
- if (yych == 's') goto yy760;
- goto yy150;
+ if (yych == 'S') goto yy730;
+ if (yych == 's') goto yy730;
+ goto yy128;
yy706:
YYDEBUG(706, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'P') goto yy756;
- if (yych == 'p') goto yy756;
- goto yy150;
+ if (yych == 'N') goto yy732;
+ if (yych == 'n') goto yy732;
+ goto yy128;
yy707:
YYDEBUG(707, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'D') goto yy722;
- if (yych == 'd') goto yy722;
- goto yy150;
+ if (yych == 'F') goto yy733;
+ if (yych == 'f') goto yy733;
+ goto yy128;
yy708:
YYDEBUG(708, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych == 'A') goto yy719;
- if (yych == 'a') goto yy719;
- goto yy150;
-yy709:
- YYDEBUG(709, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych <= 'T') {
- if (yych == 'I') goto yy710;
- if (yych <= 'S') goto yy150;
- goto yy711;
- } else {
- if (yych <= 'i') {
- if (yych <= 'h') goto yy150;
- } else {
- if (yych == 't') goto yy711;
- goto yy150;
- }
+ ++YYCURSOR;
+ if (yybm[0+(yych = *YYCURSOR)] & 16) {
+ goto yy127;
}
+ YYDEBUG(709, *YYCURSOR);
+ yyleng = YYCURSOR - SCNG(yy_text);
+#line 1396 "Zend/zend_language_scanner.l"
+ {
+ RETURN_TOKEN(T_INSTEADOF);
+}
+#line 6838 "Zend/zend_language_scanner.c"
yy710:
YYDEBUG(710, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych == 'T') goto yy717;
- if (yych == 't') goto yy717;
- goto yy150;
-yy711:
+ ++YYCURSOR;
+ if (yybm[0+(yych = *YYCURSOR)] & 16) {
+ goto yy127;
+ }
YYDEBUG(711, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych == 'E') goto yy712;
- if (yych != 'e') goto yy150;
+ yyleng = YYCURSOR - SCNG(yy_text);
+#line 1270 "Zend/zend_language_scanner.l"
+ {
+ RETURN_TOKEN(T_INTERFACE);
+}
+#line 6851 "Zend/zend_language_scanner.c"
yy712:
YYDEBUG(712, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych == 'N') goto yy713;
- if (yych != 'n') goto yy150;
-yy713:
+ ++YYCURSOR;
+ if (yybm[0+(yych = *YYCURSOR)] & 16) {
+ goto yy127;
+ }
YYDEBUG(713, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych == 'D') goto yy714;
- if (yych != 'd') goto yy150;
+ yyleng = YYCURSOR - SCNG(yy_text);
+#line 1388 "Zend/zend_language_scanner.l"
+ {
+ RETURN_TOKEN(T_NAMESPACE);
+}
+#line 6864 "Zend/zend_language_scanner.c"
yy714:
YYDEBUG(714, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych == 'S') goto yy715;
- if (yych != 's') goto yy150;
-yy715:
- YYDEBUG(715, *YYCURSOR);
++YYCURSOR;
- if (yybm[0+(yych = *YYCURSOR)] & 4) {
- goto yy149;
+ if (yybm[0+(yych = *YYCURSOR)] & 16) {
+ goto yy127;
}
- YYDEBUG(716, *YYCURSOR);
+ YYDEBUG(715, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1278 "Zend/zend_language_scanner.l"
+#line 1432 "Zend/zend_language_scanner.l"
{
- RETURN_TOKEN(T_EXTENDS);
+ RETURN_TOKEN(T_PROTECTED);
}
-#line 6620 "Zend/zend_language_scanner.c"
+#line 6877 "Zend/zend_language_scanner.c"
+yy716:
+ YYDEBUG(716, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if (yych == 'N') goto yy735;
+ if (yych == 'n') goto yy735;
+ goto yy128;
yy717:
YYDEBUG(717, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if (yych == 'M') goto yy736;
+ if (yych == 'm') goto yy736;
+ goto yy166;
+yy718:
+ YYDEBUG(718, *YYCURSOR);
++YYCURSOR;
- if (yybm[0+(yych = *YYCURSOR)] & 4) {
- goto yy149;
+ if (yybm[0+(yych = *YYCURSOR)] & 16) {
+ goto yy127;
}
- YYDEBUG(718, *YYCURSOR);
+ YYDEBUG(719, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1125 "Zend/zend_language_scanner.l"
+#line 1749 "Zend/zend_language_scanner.l"
{
- RETURN_TOKEN(T_EXIT);
+ RETURN_TOKEN(T_CLASS_C);
}
-#line 6633 "Zend/zend_language_scanner.c"
-yy719:
- YYDEBUG(719, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych == 'L') goto yy720;
- if (yych != 'l') goto yy150;
+#line 6902 "Zend/zend_language_scanner.c"
yy720:
YYDEBUG(720, *YYCURSOR);
- ++YYCURSOR;
- if (yybm[0+(yych = *YYCURSOR)] & 4) {
- goto yy149;
- }
+ yych = *++YYCURSOR;
+ if (yych == 'N') goto yy738;
+ if (yych == 'n') goto yy738;
+ goto yy128;
+yy721:
YYDEBUG(721, *YYCURSOR);
- yyleng = YYCURSOR - SCNG(yy_text);
-#line 1368 "Zend/zend_language_scanner.l"
- {
- RETURN_TOKEN(T_EVAL);
-}
-#line 6651 "Zend/zend_language_scanner.c"
+ yych = *++YYCURSOR;
+ if (yych == 'M') goto yy739;
+ if (yych == 'm') goto yy739;
+ goto yy128;
yy722:
YYDEBUG(722, *YYCURSOR);
yych = *++YYCURSOR;
- YYDEBUG(-1, yych);
- switch (yych) {
- case 'D':
- case 'd': goto yy723;
- case 'F':
- case 'f': goto yy724;
- case 'I':
- case 'i': goto yy725;
- case 'S':
- case 's': goto yy726;
- case 'W':
- case 'w': goto yy727;
- default: goto yy150;
- }
+ if (yych == '_') goto yy740;
+ goto yy128;
yy723:
YYDEBUG(723, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'E') goto yy749;
- if (yych == 'e') goto yy749;
- goto yy150;
+ if (yych == 'C') goto yy742;
+ if (yych == 'c') goto yy742;
+ goto yy128;
yy724:
YYDEBUG(724, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych == 'O') goto yy741;
- if (yych == 'o') goto yy741;
- goto yy150;
-yy725:
+ ++YYCURSOR;
+ if (yybm[0+(yych = *YYCURSOR)] & 16) {
+ goto yy127;
+ }
YYDEBUG(725, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych == 'F') goto yy739;
- if (yych == 'f') goto yy739;
- goto yy150;
+ yyleng = YYCURSOR - SCNG(yy_text);
+#line 1753 "Zend/zend_language_scanner.l"
+ {
+ RETURN_TOKEN(T_TRAIT_C);
+}
+#line 6938 "Zend/zend_language_scanner.c"
yy726:
YYDEBUG(726, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych == 'W') goto yy733;
- if (yych == 'w') goto yy733;
- goto yy150;
-yy727:
+ ++YYCURSOR;
+ if (yybm[0+(yych = *YYCURSOR)] & 16) {
+ goto yy127;
+ }
YYDEBUG(727, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych == 'H') goto yy728;
- if (yych != 'h') goto yy150;
+ yyleng = YYCURSOR - SCNG(yy_text);
+#line 1218 "Zend/zend_language_scanner.l"
+ {
+ RETURN_TOKEN(T_ENDDECLARE);
+}
+#line 6951 "Zend/zend_language_scanner.c"
yy728:
YYDEBUG(728, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych == 'I') goto yy729;
- if (yych != 'i') goto yy150;
-yy729:
+ ++YYCURSOR;
+ if (yybm[0+(yych = *YYCURSOR)] & 16) {
+ goto yy127;
+ }
YYDEBUG(729, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych == 'L') goto yy730;
- if (yych != 'l') goto yy150;
+ yyleng = YYCURSOR - SCNG(yy_text);
+#line 1210 "Zend/zend_language_scanner.l"
+ {
+ RETURN_TOKEN(T_ENDFOREACH);
+}
+#line 6964 "Zend/zend_language_scanner.c"
yy730:
YYDEBUG(730, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych == 'E') goto yy731;
- if (yych != 'e') goto yy150;
-yy731:
- YYDEBUG(731, *YYCURSOR);
++YYCURSOR;
- if (yybm[0+(yych = *YYCURSOR)] & 4) {
- goto yy149;
+ if (yybm[0+(yych = *YYCURSOR)] & 16) {
+ goto yy127;
}
- YYDEBUG(732, *YYCURSOR);
+ YYDEBUG(731, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1190 "Zend/zend_language_scanner.l"
+#line 1282 "Zend/zend_language_scanner.l"
{
- RETURN_TOKEN(T_ENDWHILE);
+ RETURN_TOKEN(T_IMPLEMENTS);
}
-#line 6725 "Zend/zend_language_scanner.c"
+#line 6977 "Zend/zend_language_scanner.c"
+yy732:
+ YYDEBUG(732, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if (yych == 'C') goto yy743;
+ if (yych == 'c') goto yy743;
+ goto yy128;
yy733:
YYDEBUG(733, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych == 'I') goto yy734;
- if (yych != 'i') goto yy150;
-yy734:
+ ++YYCURSOR;
+ if (yybm[0+(yych = *YYCURSOR)] & 16) {
+ goto yy127;
+ }
YYDEBUG(734, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych == 'T') goto yy735;
- if (yych != 't') goto yy150;
+ yyleng = YYCURSOR - SCNG(yy_text);
+#line 1222 "Zend/zend_language_scanner.l"
+ {
+ RETURN_TOKEN(T_INSTANCEOF);
+}
+#line 6996 "Zend/zend_language_scanner.c"
yy735:
YYDEBUG(735, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'C') goto yy736;
- if (yych != 'c') goto yy150;
+ if (yych == 'C') goto yy744;
+ if (yych == 'c') goto yy744;
+ goto yy128;
yy736:
YYDEBUG(736, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych == 'H') goto yy737;
- if (yych != 'h') goto yy150;
-yy737:
- YYDEBUG(737, *YYCURSOR);
++YYCURSOR;
- if (yybm[0+(yych = *YYCURSOR)] & 4) {
- goto yy149;
- }
- YYDEBUG(738, *YYCURSOR);
+ YYDEBUG(737, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1234 "Zend/zend_language_scanner.l"
+#line 1145 "Zend/zend_language_scanner.l"
{
- RETURN_TOKEN(T_ENDSWITCH);
+ HANDLE_NEWLINES(yytext, yyleng);
+ RETURN_TOKEN(T_YIELD_FROM);
}
-#line 6758 "Zend/zend_language_scanner.c"
+#line 7013 "Zend/zend_language_scanner.c"
+yy738:
+ YYDEBUG(738, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if (yych == '_') goto yy745;
+ goto yy128;
yy739:
YYDEBUG(739, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if (yych == 'P') goto yy746;
+ if (yych == 'p') goto yy746;
+ goto yy128;
+yy740:
+ YYDEBUG(740, *YYCURSOR);
++YYCURSOR;
- if (yybm[0+(yych = *YYCURSOR)] & 4) {
- goto yy149;
+ if (yybm[0+(yych = *YYCURSOR)] & 16) {
+ goto yy127;
}
- YYDEBUG(740, *YYCURSOR);
+ YYDEBUG(741, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1178 "Zend/zend_language_scanner.l"
+#line 1761 "Zend/zend_language_scanner.l"
{
- RETURN_TOKEN(T_ENDIF);
+ RETURN_TOKEN(T_METHOD_C);
}
-#line 6771 "Zend/zend_language_scanner.c"
-yy741:
- YYDEBUG(741, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych == 'R') goto yy742;
- if (yych != 'r') goto yy150;
+#line 7037 "Zend/zend_language_scanner.c"
yy742:
YYDEBUG(742, *YYCURSOR);
- ++YYCURSOR;
- if ((yych = *YYCURSOR) <= '^') {
- if (yych <= '@') {
- if (yych <= '/') goto yy743;
- if (yych <= '9') goto yy149;
- } else {
- if (yych == 'E') goto yy744;
- if (yych <= 'Z') goto yy149;
- }
- } else {
- if (yych <= 'd') {
- if (yych != '`') goto yy149;
- } else {
- if (yych <= 'e') goto yy744;
- if (yych <= 'z') goto yy149;
- if (yych >= 0x80) goto yy149;
- }
- }
+ yych = *++YYCURSOR;
+ if (yych == 'E') goto yy747;
+ if (yych == 'e') goto yy747;
+ goto yy128;
yy743:
YYDEBUG(743, *YYCURSOR);
- yyleng = YYCURSOR - SCNG(yy_text);
-#line 1202 "Zend/zend_language_scanner.l"
- {
- RETURN_TOKEN(T_ENDFOR);
-}
-#line 6804 "Zend/zend_language_scanner.c"
+ yych = *++YYCURSOR;
+ if (yych == 'E') goto yy748;
+ if (yych == 'e') goto yy748;
+ goto yy128;
yy744:
YYDEBUG(744, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'A') goto yy745;
- if (yych != 'a') goto yy150;
+ if (yych == 'E') goto yy750;
+ if (yych == 'e') goto yy750;
+ goto yy128;
yy745:
YYDEBUG(745, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'C') goto yy746;
- if (yych != 'c') goto yy150;
+ if (yych == '_') goto yy752;
+ goto yy128;
yy746:
YYDEBUG(746, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'H') goto yy747;
- if (yych != 'h') goto yy150;
+ if (yych == 'I') goto yy754;
+ if (yych == 'i') goto yy754;
+ goto yy128;
yy747:
YYDEBUG(747, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if (yych == '_') goto yy755;
+ goto yy128;
+yy748:
+ YYDEBUG(748, *YYCURSOR);
++YYCURSOR;
- if (yybm[0+(yych = *YYCURSOR)] & 4) {
- goto yy149;
+ if (yybm[0+(yych = *YYCURSOR)] & 16) {
+ goto yy127;
}
- YYDEBUG(748, *YYCURSOR);
+ YYDEBUG(749, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1210 "Zend/zend_language_scanner.l"
+#line 1376 "Zend/zend_language_scanner.l"
{
- RETURN_TOKEN(T_ENDFOREACH);
+ RETURN_TOKEN(T_INCLUDE_ONCE);
}
-#line 6832 "Zend/zend_language_scanner.c"
-yy749:
- YYDEBUG(749, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych == 'C') goto yy750;
- if (yych != 'c') goto yy150;
+#line 7084 "Zend/zend_language_scanner.c"
yy750:
YYDEBUG(750, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych == 'L') goto yy751;
- if (yych != 'l') goto yy150;
-yy751:
+ ++YYCURSOR;
+ if (yybm[0+(yych = *YYCURSOR)] & 16) {
+ goto yy127;
+ }
YYDEBUG(751, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych == 'A') goto yy752;
- if (yych != 'a') goto yy150;
+ yyleng = YYCURSOR - SCNG(yy_text);
+#line 1384 "Zend/zend_language_scanner.l"
+ {
+ RETURN_TOKEN(T_REQUIRE_ONCE);
+}
+#line 7097 "Zend/zend_language_scanner.c"
yy752:
YYDEBUG(752, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych == 'R') goto yy753;
- if (yych != 'r') goto yy150;
-yy753:
- YYDEBUG(753, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych == 'E') goto yy754;
- if (yych != 'e') goto yy150;
-yy754:
- YYDEBUG(754, *YYCURSOR);
++YYCURSOR;
- if (yybm[0+(yych = *YYCURSOR)] & 4) {
- goto yy149;
+ if (yybm[0+(yych = *YYCURSOR)] & 16) {
+ goto yy127;
}
- YYDEBUG(755, *YYCURSOR);
+ YYDEBUG(753, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1218 "Zend/zend_language_scanner.l"
+#line 1757 "Zend/zend_language_scanner.l"
{
- RETURN_TOKEN(T_ENDDECLARE);
+ RETURN_TOKEN(T_FUNC_C);
}
-#line 6870 "Zend/zend_language_scanner.c"
+#line 7110 "Zend/zend_language_scanner.c"
+yy754:
+ YYDEBUG(754, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if (yych == 'L') goto yy756;
+ if (yych == 'l') goto yy756;
+ goto yy128;
+yy755:
+ YYDEBUG(755, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if (yych == '_') goto yy757;
+ goto yy128;
yy756:
YYDEBUG(756, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'T') goto yy757;
- if (yych != 't') goto yy150;
+ if (yych == 'E') goto yy759;
+ if (yych == 'e') goto yy759;
+ goto yy128;
yy757:
YYDEBUG(757, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych == 'Y') goto yy758;
- if (yych != 'y') goto yy150;
-yy758:
- YYDEBUG(758, *YYCURSOR);
++YYCURSOR;
- if (yybm[0+(yych = *YYCURSOR)] & 4) {
- goto yy149;
+ if (yybm[0+(yych = *YYCURSOR)] & 16) {
+ goto yy127;
}
- YYDEBUG(759, *YYCURSOR);
+ YYDEBUG(758, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1408 "Zend/zend_language_scanner.l"
+#line 1777 "Zend/zend_language_scanner.l"
{
- RETURN_TOKEN(T_EMPTY);
+ RETURN_TOKEN(T_NS_C);
}
-#line 6893 "Zend/zend_language_scanner.c"
+#line 7140 "Zend/zend_language_scanner.c"
+yy759:
+ YYDEBUG(759, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if (yych == 'R') goto yy760;
+ if (yych != 'r') goto yy128;
yy760:
YYDEBUG(760, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych == 'E') goto yy761;
- if (yych != 'e') goto yy150;
-yy761:
- YYDEBUG(761, *YYCURSOR);
- ++YYCURSOR;
- if ((yych = *YYCURSOR) <= '^') {
- if (yych <= '@') {
- if (yych <= '/') goto yy762;
- if (yych <= '9') goto yy149;
- } else {
- if (yych == 'I') goto yy763;
- if (yych <= 'Z') goto yy149;
- }
- } else {
- if (yych <= 'h') {
- if (yych != '`') goto yy149;
- } else {
- if (yych <= 'i') goto yy763;
- if (yych <= 'z') goto yy149;
- if (yych >= 0x80) goto yy149;
- }
- }
-yy762:
- YYDEBUG(762, *YYCURSOR);
- yyleng = YYCURSOR - SCNG(yy_text);
-#line 1182 "Zend/zend_language_scanner.l"
- {
- RETURN_TOKEN(T_ELSE);
-}
-#line 6926 "Zend/zend_language_scanner.c"
-yy763:
- YYDEBUG(763, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych == 'F') goto yy764;
- if (yych != 'f') goto yy150;
-yy764:
- YYDEBUG(764, *YYCURSOR);
- ++YYCURSOR;
- if (yybm[0+(yych = *YYCURSOR)] & 4) {
- goto yy149;
- }
- YYDEBUG(765, *YYCURSOR);
- yyleng = YYCURSOR - SCNG(yy_text);
-#line 1174 "Zend/zend_language_scanner.l"
- {
- RETURN_TOKEN(T_ELSEIF);
-}
-#line 6944 "Zend/zend_language_scanner.c"
-yy766:
- YYDEBUG(766, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych == 'O') goto yy767;
- if (yych != 'o') goto yy150;
-yy767:
- YYDEBUG(767, *YYCURSOR);
++YYCURSOR;
- if (yybm[0+(yych = *YYCURSOR)] & 4) {
- goto yy149;
+ if (yybm[0+(yych = *YYCURSOR)] & 16) {
+ goto yy127;
}
- YYDEBUG(768, *YYCURSOR);
+ YYDEBUG(761, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1258 "Zend/zend_language_scanner.l"
+#line 1412 "Zend/zend_language_scanner.l"
{
- RETURN_TOKEN(T_ECHO);
+ RETURN_TOKEN(T_HALT_COMPILER);
}
-#line 6962 "Zend/zend_language_scanner.c"
+#line 7158 "Zend/zend_language_scanner.c"
}
/* *********************************** */
yyc_ST_LOOKING_FOR_PROPERTY:
{
static const unsigned char yybm[] = {
0, 0, 0, 0, 0, 0, 0, 0,
- 0, 128, 128, 0, 0, 128, 0, 0,
+ 0, 64, 64, 0, 0, 64, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
- 128, 0, 0, 0, 0, 0, 0, 0,
+ 64, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
- 64, 64, 64, 64, 64, 64, 64, 64,
- 64, 64, 0, 0, 0, 0, 0, 0,
- 0, 64, 64, 64, 64, 64, 64, 64,
- 64, 64, 64, 64, 64, 64, 64, 64,
- 64, 64, 64, 64, 64, 64, 64, 64,
- 64, 64, 64, 0, 0, 0, 0, 64,
- 0, 64, 64, 64, 64, 64, 64, 64,
- 64, 64, 64, 64, 64, 64, 64, 64,
- 64, 64, 64, 64, 64, 64, 64, 64,
- 64, 64, 64, 0, 0, 0, 0, 0,
- 64, 64, 64, 64, 64, 64, 64, 64,
- 64, 64, 64, 64, 64, 64, 64, 64,
- 64, 64, 64, 64, 64, 64, 64, 64,
- 64, 64, 64, 64, 64, 64, 64, 64,
- 64, 64, 64, 64, 64, 64, 64, 64,
- 64, 64, 64, 64, 64, 64, 64, 64,
- 64, 64, 64, 64, 64, 64, 64, 64,
- 64, 64, 64, 64, 64, 64, 64, 64,
- 64, 64, 64, 64, 64, 64, 64, 64,
- 64, 64, 64, 64, 64, 64, 64, 64,
- 64, 64, 64, 64, 64, 64, 64, 64,
- 64, 64, 64, 64, 64, 64, 64, 64,
- 64, 64, 64, 64, 64, 64, 64, 64,
- 64, 64, 64, 64, 64, 64, 64, 64,
- 64, 64, 64, 64, 64, 64, 64, 64,
- 64, 64, 64, 64, 64, 64, 64, 64,
+ 128, 128, 128, 128, 128, 128, 128, 128,
+ 128, 128, 0, 0, 0, 0, 0, 0,
+ 0, 128, 128, 128, 128, 128, 128, 128,
+ 128, 128, 128, 128, 128, 128, 128, 128,
+ 128, 128, 128, 128, 128, 128, 128, 128,
+ 128, 128, 128, 0, 0, 0, 0, 128,
+ 0, 128, 128, 128, 128, 128, 128, 128,
+ 128, 128, 128, 128, 128, 128, 128, 128,
+ 128, 128, 128, 128, 128, 128, 128, 128,
+ 128, 128, 128, 0, 0, 0, 0, 0,
+ 128, 128, 128, 128, 128, 128, 128, 128,
+ 128, 128, 128, 128, 128, 128, 128, 128,
+ 128, 128, 128, 128, 128, 128, 128, 128,
+ 128, 128, 128, 128, 128, 128, 128, 128,
+ 128, 128, 128, 128, 128, 128, 128, 128,
+ 128, 128, 128, 128, 128, 128, 128, 128,
+ 128, 128, 128, 128, 128, 128, 128, 128,
+ 128, 128, 128, 128, 128, 128, 128, 128,
+ 128, 128, 128, 128, 128, 128, 128, 128,
+ 128, 128, 128, 128, 128, 128, 128, 128,
+ 128, 128, 128, 128, 128, 128, 128, 128,
+ 128, 128, 128, 128, 128, 128, 128, 128,
+ 128, 128, 128, 128, 128, 128, 128, 128,
+ 128, 128, 128, 128, 128, 128, 128, 128,
+ 128, 128, 128, 128, 128, 128, 128, 128,
+ 128, 128, 128, 128, 128, 128, 128, 128,
};
- YYDEBUG(769, *YYCURSOR);
+ YYDEBUG(762, *YYCURSOR);
YYFILL(2);
yych = *YYCURSOR;
- if (yych <= '-') {
- if (yych <= '\r') {
- if (yych <= 0x08) goto yy777;
- if (yych <= '\n') goto yy771;
- if (yych <= '\f') goto yy777;
+ if (yybm[0+yych] & 64) {
+ goto yy766;
+ }
+ if (yych <= '^') {
+ if (yych <= '-') {
+ if (yych >= '-') goto yy769;
} else {
- if (yych == ' ') goto yy771;
- if (yych <= ',') goto yy777;
- goto yy773;
+ if (yych <= '@') goto yy764;
+ if (yych <= 'Z') goto yy770;
}
} else {
- if (yych <= '_') {
- if (yych <= '@') goto yy777;
- if (yych <= 'Z') goto yy775;
- if (yych <= '^') goto yy777;
- goto yy775;
+ if (yych <= '`') {
+ if (yych <= '_') goto yy770;
} else {
- if (yych <= '`') goto yy777;
- if (yych <= 'z') goto yy775;
- if (yych <= 0x7F) goto yy777;
- goto yy775;
+ if (yych <= 'z') goto yy770;
+ if (yych >= 0x80) goto yy770;
}
}
-yy771:
- YYDEBUG(771, *YYCURSOR);
- ++YYCURSOR;
- yych = *YYCURSOR;
- goto yy783;
-yy772:
- YYDEBUG(772, *YYCURSOR);
- yyleng = YYCURSOR - SCNG(yy_text);
-#line 1291 "Zend/zend_language_scanner.l"
- {
- HANDLE_NEWLINES(yytext, yyleng);
- RETURN_TOKEN(T_WHITESPACE);
-}
-#line 7040 "Zend/zend_language_scanner.c"
-yy773:
- YYDEBUG(773, *YYCURSOR);
+yy764:
+ YYDEBUG(764, *YYCURSOR);
++YYCURSOR;
- if ((yych = *YYCURSOR) == '>') goto yy780;
-yy774:
- YYDEBUG(774, *YYCURSOR);
+yy765:
+ YYDEBUG(765, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
#line 1306 "Zend/zend_language_scanner.l"
{
@@ -7050,58 +7226,57 @@ yy774:
yy_pop_state();
goto restart;
}
-#line 7054 "Zend/zend_language_scanner.c"
-yy775:
- YYDEBUG(775, *YYCURSOR);
+#line 7230 "Zend/zend_language_scanner.c"
+yy766:
+ YYDEBUG(766, *YYCURSOR);
++YYCURSOR;
+ YYFILL(1);
yych = *YYCURSOR;
- goto yy779;
-yy776:
- YYDEBUG(776, *YYCURSOR);
+ YYDEBUG(767, *YYCURSOR);
+ if (yybm[0+yych] & 64) {
+ goto yy766;
+ }
+ YYDEBUG(768, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1300 "Zend/zend_language_scanner.l"
+#line 1291 "Zend/zend_language_scanner.l"
{
- yy_pop_state();
- zend_copy_value(zendlval, yytext, yyleng);
- RETURN_TOKEN(T_STRING);
+ HANDLE_NEWLINES(yytext, yyleng);
+ RETURN_TOKEN(T_WHITESPACE);
}
-#line 7069 "Zend/zend_language_scanner.c"
-yy777:
- YYDEBUG(777, *YYCURSOR);
+#line 7247 "Zend/zend_language_scanner.c"
+yy769:
+ YYDEBUG(769, *YYCURSOR);
yych = *++YYCURSOR;
- goto yy774;
-yy778:
- YYDEBUG(778, *YYCURSOR);
+ if (yych == '>') goto yy773;
+ goto yy765;
+yy770:
+ YYDEBUG(770, *YYCURSOR);
++YYCURSOR;
YYFILL(1);
yych = *YYCURSOR;
-yy779:
- YYDEBUG(779, *YYCURSOR);
- if (yybm[0+yych] & 64) {
- goto yy778;
+ YYDEBUG(771, *YYCURSOR);
+ if (yybm[0+yych] & 128) {
+ goto yy770;
}
- goto yy776;
-yy780:
- YYDEBUG(780, *YYCURSOR);
+ YYDEBUG(772, *YYCURSOR);
+ yyleng = YYCURSOR - SCNG(yy_text);
+#line 1300 "Zend/zend_language_scanner.l"
+ {
+ yy_pop_state();
+ zend_copy_value(zendlval, yytext, yyleng);
+ RETURN_TOKEN(T_STRING);
+}
+#line 7270 "Zend/zend_language_scanner.c"
+yy773:
+ YYDEBUG(773, *YYCURSOR);
++YYCURSOR;
- YYDEBUG(781, *YYCURSOR);
+ YYDEBUG(774, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
#line 1296 "Zend/zend_language_scanner.l"
{
RETURN_TOKEN(T_OBJECT_OPERATOR);
}
-#line 7094 "Zend/zend_language_scanner.c"
-yy782:
- YYDEBUG(782, *YYCURSOR);
- ++YYCURSOR;
- YYFILL(1);
- yych = *YYCURSOR;
-yy783:
- YYDEBUG(783, *YYCURSOR);
- if (yybm[0+yych] & 128) {
- goto yy782;
- }
- goto yy772;
+#line 7280 "Zend/zend_language_scanner.c"
}
/* *********************************** */
yyc_ST_LOOKING_FOR_VARNAME:
@@ -7140,73 +7315,77 @@ yyc_ST_LOOKING_FOR_VARNAME:
128, 128, 128, 128, 128, 128, 128, 128,
128, 128, 128, 128, 128, 128, 128, 128,
};
- YYDEBUG(784, *YYCURSOR);
+ YYDEBUG(775, *YYCURSOR);
YYFILL(2);
yych = *YYCURSOR;
if (yych <= '_') {
- if (yych <= '@') goto yy788;
- if (yych <= 'Z') goto yy786;
- if (yych <= '^') goto yy788;
+ if (yych <= '@') goto yy777;
+ if (yych <= 'Z') goto yy779;
+ if (yych >= '_') goto yy779;
} else {
- if (yych <= '`') goto yy788;
- if (yych <= 'z') goto yy786;
- if (yych <= 0x7F) goto yy788;
+ if (yych <= '`') goto yy777;
+ if (yych <= 'z') goto yy779;
+ if (yych >= 0x80) goto yy779;
}
-yy786:
- YYDEBUG(786, *YYCURSOR);
- yyaccept = 0;
+yy777:
+ YYDEBUG(777, *YYCURSOR);
+ ++YYCURSOR;
+yy778:
+ YYDEBUG(778, *YYCURSOR);
+ yyleng = YYCURSOR - SCNG(yy_text);
+#line 1611 "Zend/zend_language_scanner.l"
+ {
+ yyless(0);
+ yy_pop_state();
+ yy_push_state(ST_IN_SCRIPTING);
+ goto restart;
+}
+#line 7344 "Zend/zend_language_scanner.c"
+yy779:
+ YYDEBUG(779, *YYCURSOR);
yych = *(YYMARKER = ++YYCURSOR);
if (yych <= '_') {
if (yych <= '@') {
- if (yych <= '/') goto yy787;
- if (yych <= '9') goto yy790;
+ if (yych <= '/') goto yy778;
+ if (yych <= '9') goto yy781;
+ goto yy778;
} else {
- if (yych <= '[') goto yy790;
- if (yych >= '_') goto yy790;
+ if (yych <= '[') goto yy781;
+ if (yych <= '^') goto yy778;
+ goto yy781;
}
} else {
if (yych <= '|') {
- if (yych <= '`') goto yy787;
- if (yych <= 'z') goto yy790;
+ if (yych <= '`') goto yy778;
+ if (yych <= 'z') goto yy781;
+ goto yy778;
} else {
- if (yych <= '}') goto yy790;
- if (yych >= 0x80) goto yy790;
+ if (yych <= '}') goto yy781;
+ if (yych <= 0x7F) goto yy778;
+ goto yy781;
}
}
-yy787:
- YYDEBUG(787, *YYCURSOR);
- yyleng = YYCURSOR - SCNG(yy_text);
-#line 1611 "Zend/zend_language_scanner.l"
- {
- yyless(0);
- yy_pop_state();
- yy_push_state(ST_IN_SCRIPTING);
- goto restart;
-}
-#line 7187 "Zend/zend_language_scanner.c"
-yy788:
- YYDEBUG(788, *YYCURSOR);
- yych = *++YYCURSOR;
- goto yy787;
-yy789:
- YYDEBUG(789, *YYCURSOR);
+yy780:
+ YYDEBUG(780, *YYCURSOR);
++YYCURSOR;
YYFILL(1);
yych = *YYCURSOR;
-yy790:
- YYDEBUG(790, *YYCURSOR);
+yy781:
+ YYDEBUG(781, *YYCURSOR);
if (yybm[0+yych] & 128) {
- goto yy789;
+ goto yy780;
}
- if (yych == '[') goto yy792;
- if (yych == '}') goto yy792;
- YYDEBUG(791, *YYCURSOR);
+ if (yych <= '@') goto yy782;
+ if (yych <= '[') goto yy783;
+ if (yych == '}') goto yy783;
+yy782:
+ YYDEBUG(782, *YYCURSOR);
YYCURSOR = YYMARKER;
- goto yy787;
-yy792:
- YYDEBUG(792, *YYCURSOR);
+ goto yy778;
+yy783:
+ YYDEBUG(783, *YYCURSOR);
++YYCURSOR;
- YYDEBUG(793, *YYCURSOR);
+ YYDEBUG(784, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
#line 1602 "Zend/zend_language_scanner.l"
{
@@ -7216,16 +7395,16 @@ yy792:
yy_push_state(ST_IN_SCRIPTING);
RETURN_TOKEN(T_STRING_VARNAME);
}
-#line 7220 "Zend/zend_language_scanner.c"
+#line 7399 "Zend/zend_language_scanner.c"
}
/* *********************************** */
yyc_ST_NOWDOC:
- YYDEBUG(794, *YYCURSOR);
+ YYDEBUG(785, *YYCURSOR);
YYFILL(1);
yych = *YYCURSOR;
- YYDEBUG(796, *YYCURSOR);
+ YYDEBUG(787, *YYCURSOR);
++YYCURSOR;
- YYDEBUG(797, *YYCURSOR);
+ YYDEBUG(788, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
#line 2330 "Zend/zend_language_scanner.l"
{
@@ -7283,7 +7462,7 @@ nowdoc_scan_done:
HANDLE_NEWLINES(yytext, yyleng - newline);
RETURN_TOKEN(T_ENCAPSED_AND_WHITESPACE);
}
-#line 7287 "Zend/zend_language_scanner.c"
+#line 7466 "Zend/zend_language_scanner.c"
/* *********************************** */
yyc_ST_VAR_OFFSET:
{
@@ -7294,99 +7473,152 @@ yyc_ST_VAR_OFFSET:
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
- 240, 240, 112, 112, 112, 112, 112, 112,
- 112, 112, 0, 0, 0, 0, 0, 0,
- 0, 80, 80, 80, 80, 80, 80, 16,
- 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 0, 0, 0, 0, 16,
- 0, 80, 80, 80, 80, 80, 80, 16,
- 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 0, 0, 0, 0, 0,
- 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16,
+ 240, 240, 176, 176, 176, 176, 176, 176,
+ 176, 176, 0, 0, 0, 0, 0, 0,
+ 0, 160, 160, 160, 160, 160, 160, 32,
+ 32, 32, 32, 32, 32, 32, 32, 32,
+ 32, 32, 32, 32, 32, 32, 32, 32,
+ 32, 32, 32, 0, 0, 0, 0, 32,
+ 0, 160, 160, 160, 160, 160, 160, 32,
+ 32, 32, 32, 32, 32, 32, 32, 32,
+ 32, 32, 32, 32, 32, 32, 32, 32,
+ 32, 32, 32, 0, 0, 0, 0, 0,
+ 32, 32, 32, 32, 32, 32, 32, 32,
+ 32, 32, 32, 32, 32, 32, 32, 32,
+ 32, 32, 32, 32, 32, 32, 32, 32,
+ 32, 32, 32, 32, 32, 32, 32, 32,
+ 32, 32, 32, 32, 32, 32, 32, 32,
+ 32, 32, 32, 32, 32, 32, 32, 32,
+ 32, 32, 32, 32, 32, 32, 32, 32,
+ 32, 32, 32, 32, 32, 32, 32, 32,
+ 32, 32, 32, 32, 32, 32, 32, 32,
+ 32, 32, 32, 32, 32, 32, 32, 32,
+ 32, 32, 32, 32, 32, 32, 32, 32,
+ 32, 32, 32, 32, 32, 32, 32, 32,
+ 32, 32, 32, 32, 32, 32, 32, 32,
+ 32, 32, 32, 32, 32, 32, 32, 32,
+ 32, 32, 32, 32, 32, 32, 32, 32,
+ 32, 32, 32, 32, 32, 32, 32, 32,
};
- YYDEBUG(798, *YYCURSOR);
+ YYDEBUG(789, *YYCURSOR);
YYFILL(3);
yych = *YYCURSOR;
if (yych <= '0') {
if (yych <= ' ') {
if (yych <= '\f') {
- if (yych <= 0x08) goto yy812;
- if (yych <= '\n') goto yy808;
- goto yy812;
+ if (yych <= 0x08) goto yy791;
+ if (yych <= '\n') goto yy793;
} else {
- if (yych <= '\r') goto yy808;
- if (yych <= 0x1F) goto yy812;
- goto yy808;
+ if (yych <= '\r') goto yy793;
+ if (yych >= ' ') goto yy793;
}
} else {
if (yych <= '$') {
- if (yych <= '"') goto yy807;
- if (yych <= '#') goto yy808;
- goto yy803;
+ if (yych <= '"') goto yy795;
+ if (yych <= '#') goto yy793;
+ goto yy797;
} else {
- if (yych == '\'') goto yy808;
- if (yych <= '/') goto yy807;
+ if (yych == '\'') goto yy793;
+ if (yych <= '/') goto yy795;
+ goto yy798;
}
}
} else {
if (yych <= ']') {
if (yych <= 'Z') {
- if (yych <= '9') goto yy802;
- if (yych <= '@') goto yy807;
- goto yy810;
+ if (yych <= '9') goto yy800;
+ if (yych <= '@') goto yy795;
+ goto yy802;
} else {
- if (yych <= '[') goto yy807;
- if (yych <= '\\') goto yy808;
+ if (yych <= '[') goto yy795;
+ if (yych <= '\\') goto yy793;
goto yy805;
}
} else {
if (yych <= '`') {
- if (yych == '_') goto yy810;
- goto yy807;
+ if (yych == '_') goto yy802;
+ goto yy795;
} else {
- if (yych <= 'z') goto yy810;
- if (yych <= '~') goto yy807;
- if (yych <= 0x7F) goto yy812;
- goto yy810;
+ if (yych <= 'z') goto yy802;
+ if (yych <= '~') goto yy795;
+ if (yych >= 0x80) goto yy802;
}
}
}
- YYDEBUG(800, *YYCURSOR);
- yyaccept = 0;
+yy791:
+ YYDEBUG(791, *YYCURSOR);
+ ++YYCURSOR;
+ YYDEBUG(792, *YYCURSOR);
+ yyleng = YYCURSOR - SCNG(yy_text);
+#line 2387 "Zend/zend_language_scanner.l"
+ {
+ if (YYCURSOR > YYLIMIT) {
+ RETURN_TOKEN(END);
+ }
+
+ zend_error(E_COMPILE_WARNING,"Unexpected character in input: '%c' (ASCII=%d) state=%d", yytext[0], yytext[0], YYSTATE);
+ goto restart;
+}
+#line 7563 "Zend/zend_language_scanner.c"
+yy793:
+ YYDEBUG(793, *YYCURSOR);
+ ++YYCURSOR;
+ YYDEBUG(794, *YYCURSOR);
+ yyleng = YYCURSOR - SCNG(yy_text);
+#line 1884 "Zend/zend_language_scanner.l"
+ {
+ /* Invalid rule to return a more explicit parse error with proper line number */
+ yyless(0);
+ yy_pop_state();
+ ZVAL_NULL(zendlval);
+ RETURN_TOKEN(T_ENCAPSED_AND_WHITESPACE);
+}
+#line 7577 "Zend/zend_language_scanner.c"
+yy795:
+ YYDEBUG(795, *YYCURSOR);
+ ++YYCURSOR;
+yy796:
+ YYDEBUG(796, *YYCURSOR);
+ yyleng = YYCURSOR - SCNG(yy_text);
+#line 1879 "Zend/zend_language_scanner.l"
+ {
+ /* Only '[' or '-' can be valid, but returning other tokens will allow a more explicit parse error */
+ RETURN_TOKEN(yytext[0]);
+}
+#line 7589 "Zend/zend_language_scanner.c"
+yy797:
+ YYDEBUG(797, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if (yych <= '_') {
+ if (yych <= '@') goto yy796;
+ if (yych <= 'Z') goto yy807;
+ if (yych <= '^') goto yy796;
+ goto yy807;
+ } else {
+ if (yych <= '`') goto yy796;
+ if (yych <= 'z') goto yy807;
+ if (yych <= 0x7F) goto yy796;
+ goto yy807;
+ }
+yy798:
+ YYDEBUG(798, *YYCURSOR);
yych = *(YYMARKER = ++YYCURSOR);
if (yych <= 'W') {
if (yych <= '9') {
- if (yych >= '0') goto yy824;
+ if (yych >= '0') goto yy810;
} else {
- if (yych == 'B') goto yy821;
+ if (yych == 'B') goto yy813;
}
} else {
if (yych <= 'b') {
- if (yych <= 'X') goto yy823;
- if (yych >= 'b') goto yy821;
+ if (yych <= 'X') goto yy815;
+ if (yych >= 'b') goto yy813;
} else {
- if (yych == 'x') goto yy823;
+ if (yych == 'x') goto yy815;
}
}
-yy801:
- YYDEBUG(801, *YYCURSOR);
+yy799:
+ YYDEBUG(799, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
#line 1719 "Zend/zend_language_scanner.l"
{ /* Offset could be treated as a long */
@@ -7404,32 +7636,34 @@ string:
}
RETURN_TOKEN(T_NUM_STRING);
}
-#line 7408 "Zend/zend_language_scanner.c"
+#line 7640 "Zend/zend_language_scanner.c"
+yy800:
+ YYDEBUG(800, *YYCURSOR);
+ ++YYCURSOR;
+ YYFILL(1);
+ yych = *YYCURSOR;
+ YYDEBUG(801, *YYCURSOR);
+ if (yybm[0+yych] & 16) {
+ goto yy800;
+ }
+ goto yy799;
yy802:
YYDEBUG(802, *YYCURSOR);
- yych = *++YYCURSOR;
- goto yy820;
-yy803:
- YYDEBUG(803, *YYCURSOR);
++YYCURSOR;
- if ((yych = *YYCURSOR) <= '_') {
- if (yych <= '@') goto yy804;
- if (yych <= 'Z') goto yy816;
- if (yych >= '_') goto yy816;
- } else {
- if (yych <= '`') goto yy804;
- if (yych <= 'z') goto yy816;
- if (yych >= 0x80) goto yy816;
+ YYFILL(1);
+ yych = *YYCURSOR;
+ YYDEBUG(803, *YYCURSOR);
+ if (yybm[0+yych] & 32) {
+ goto yy802;
}
-yy804:
YYDEBUG(804, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1879 "Zend/zend_language_scanner.l"
+#line 1892 "Zend/zend_language_scanner.l"
{
- /* Only '[' or '-' can be valid, but returning other tokens will allow a more explicit parse error */
- RETURN_TOKEN(yytext[0]);
+ zend_copy_value(zendlval, yytext, yyleng);
+ RETURN_TOKEN(T_STRING);
}
-#line 7433 "Zend/zend_language_scanner.c"
+#line 7667 "Zend/zend_language_scanner.c"
yy805:
YYDEBUG(805, *YYCURSOR);
++YYCURSOR;
@@ -7440,160 +7674,91 @@ yy805:
yy_pop_state();
RETURN_TOKEN(']');
}
-#line 7444 "Zend/zend_language_scanner.c"
+#line 7678 "Zend/zend_language_scanner.c"
yy807:
YYDEBUG(807, *YYCURSOR);
- yych = *++YYCURSOR;
- goto yy804;
-yy808:
- YYDEBUG(808, *YYCURSOR);
- ++YYCURSOR;
- YYDEBUG(809, *YYCURSOR);
- yyleng = YYCURSOR - SCNG(yy_text);
-#line 1884 "Zend/zend_language_scanner.l"
- {
- /* Invalid rule to return a more explicit parse error with proper line number */
- yyless(0);
- yy_pop_state();
- ZVAL_NULL(zendlval);
- RETURN_TOKEN(T_ENCAPSED_AND_WHITESPACE);
-}
-#line 7462 "Zend/zend_language_scanner.c"
-yy810:
- YYDEBUG(810, *YYCURSOR);
- ++YYCURSOR;
- yych = *YYCURSOR;
- goto yy815;
-yy811:
- YYDEBUG(811, *YYCURSOR);
- yyleng = YYCURSOR - SCNG(yy_text);
-#line 1892 "Zend/zend_language_scanner.l"
- {
- zend_copy_value(zendlval, yytext, yyleng);
- RETURN_TOKEN(T_STRING);
-}
-#line 7476 "Zend/zend_language_scanner.c"
-yy812:
- YYDEBUG(812, *YYCURSOR);
- ++YYCURSOR;
- YYDEBUG(813, *YYCURSOR);
- yyleng = YYCURSOR - SCNG(yy_text);
-#line 2387 "Zend/zend_language_scanner.l"
- {
- if (YYCURSOR > YYLIMIT) {
- RETURN_TOKEN(END);
- }
-
- zend_error(E_COMPILE_WARNING,"Unexpected character in input: '%c' (ASCII=%d) state=%d", yytext[0], yytext[0], YYSTATE);
- goto restart;
-}
-#line 7491 "Zend/zend_language_scanner.c"
-yy814:
- YYDEBUG(814, *YYCURSOR);
- ++YYCURSOR;
- YYFILL(1);
- yych = *YYCURSOR;
-yy815:
- YYDEBUG(815, *YYCURSOR);
- if (yybm[0+yych] & 16) {
- goto yy814;
- }
- goto yy811;
-yy816:
- YYDEBUG(816, *YYCURSOR);
++YYCURSOR;
YYFILL(1);
yych = *YYCURSOR;
- YYDEBUG(817, *YYCURSOR);
+ YYDEBUG(808, *YYCURSOR);
if (yych <= '^') {
if (yych <= '9') {
- if (yych >= '0') goto yy816;
+ if (yych >= '0') goto yy807;
} else {
- if (yych <= '@') goto yy818;
- if (yych <= 'Z') goto yy816;
+ if (yych <= '@') goto yy809;
+ if (yych <= 'Z') goto yy807;
}
} else {
if (yych <= '`') {
- if (yych <= '_') goto yy816;
+ if (yych <= '_') goto yy807;
} else {
- if (yych <= 'z') goto yy816;
- if (yych >= 0x80) goto yy816;
+ if (yych <= 'z') goto yy807;
+ if (yych >= 0x80) goto yy807;
}
}
-yy818:
- YYDEBUG(818, *YYCURSOR);
+yy809:
+ YYDEBUG(809, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
#line 1869 "Zend/zend_language_scanner.l"
{
zend_copy_value(zendlval, (yytext+1), (yyleng-1));
RETURN_TOKEN(T_VARIABLE);
}
-#line 7532 "Zend/zend_language_scanner.c"
-yy819:
- YYDEBUG(819, *YYCURSOR);
- ++YYCURSOR;
- YYFILL(1);
- yych = *YYCURSOR;
-yy820:
- YYDEBUG(820, *YYCURSOR);
- if (yybm[0+yych] & 32) {
- goto yy819;
- }
- goto yy801;
-yy821:
- YYDEBUG(821, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yybm[0+yych] & 128) {
- goto yy829;
- }
-yy822:
- YYDEBUG(822, *YYCURSOR);
- YYCURSOR = YYMARKER;
- goto yy801;
-yy823:
- YYDEBUG(823, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yybm[0+yych] & 64) {
- goto yy827;
- }
- goto yy822;
-yy824:
- YYDEBUG(824, *YYCURSOR);
+#line 7708 "Zend/zend_language_scanner.c"
+yy810:
+ YYDEBUG(810, *YYCURSOR);
++YYCURSOR;
YYFILL(1);
yych = *YYCURSOR;
- YYDEBUG(825, *YYCURSOR);
- if (yych <= '/') goto yy826;
- if (yych <= '9') goto yy824;
-yy826:
- YYDEBUG(826, *YYCURSOR);
+ YYDEBUG(811, *YYCURSOR);
+ if (yych <= '/') goto yy812;
+ if (yych <= '9') goto yy810;
+yy812:
+ YYDEBUG(812, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
#line 1735 "Zend/zend_language_scanner.l"
{ /* Offset must be treated as a string */
ZVAL_STRINGL(zendlval, yytext, yyleng);
RETURN_TOKEN(T_NUM_STRING);
}
-#line 7577 "Zend/zend_language_scanner.c"
-yy827:
- YYDEBUG(827, *YYCURSOR);
+#line 7725 "Zend/zend_language_scanner.c"
+yy813:
+ YYDEBUG(813, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if (yybm[0+yych] & 64) {
+ goto yy816;
+ }
+yy814:
+ YYDEBUG(814, *YYCURSOR);
+ YYCURSOR = YYMARKER;
+ goto yy799;
+yy815:
+ YYDEBUG(815, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if (yybm[0+yych] & 128) {
+ goto yy818;
+ }
+ goto yy814;
+yy816:
+ YYDEBUG(816, *YYCURSOR);
++YYCURSOR;
YYFILL(1);
yych = *YYCURSOR;
- YYDEBUG(828, *YYCURSOR);
+ YYDEBUG(817, *YYCURSOR);
if (yybm[0+yych] & 64) {
- goto yy827;
+ goto yy816;
}
- goto yy826;
-yy829:
- YYDEBUG(829, *YYCURSOR);
+ goto yy812;
+yy818:
+ YYDEBUG(818, *YYCURSOR);
++YYCURSOR;
YYFILL(1);
yych = *YYCURSOR;
- YYDEBUG(830, *YYCURSOR);
+ YYDEBUG(819, *YYCURSOR);
if (yybm[0+yych] & 128) {
- goto yy829;
+ goto yy818;
}
- goto yy826;
+ goto yy812;
}
}
#line 2396 "Zend/zend_language_scanner.l"
diff --git a/Zend/zend_language_scanner_defs.h b/Zend/zend_language_scanner_defs.h
index 5926e3c61d..c89b1bba45 100644
--- a/Zend/zend_language_scanner_defs.h
+++ b/Zend/zend_language_scanner_defs.h
@@ -1,4 +1,4 @@
-/* Generated by re2c 0.13.5 */
+/* Generated by re2c 0.16 */
#line 3 "Zend/zend_language_scanner_defs.h"
enum YYCONDTYPE {
diff --git a/Zend/zend_portability.h b/Zend/zend_portability.h
index ce56f8d737..bb83e8d8d5 100644
--- a/Zend/zend_portability.h
+++ b/Zend/zend_portability.h
@@ -480,7 +480,7 @@ static zend_always_inline double _zend_get_nan(void) /* {{{ */
#ifdef ZEND_WIN32
#define ZEND_SECURE_ZERO(var, size) RtlSecureZeroMemory((var), (size))
#else
-#define ZEND_SECURE_ZERO(var, size) memset((var), 0, (size))
+#define ZEND_SECURE_ZERO(var, size) explicit_bzero((var), (size))
#endif
/* This check should only be used on network socket, not file descriptors */
diff --git a/appveyor/build_task.bat b/appveyor/build_task.bat
index 90eea2f643..97db9db4d5 100644
--- a/appveyor/build_task.bat
+++ b/appveyor/build_task.bat
@@ -33,7 +33,7 @@ if "%OPCACHE%" equ "0" set EXT_EXCLUDE_FROM_TEST=%EXT_EXCLUDE_FROM_TEST%,opcache
call configure.bat ^
--enable-snapshot-build ^
- --enable-debug-pack ^
+ --disable-debug-pack ^
--enable-com-dotnet=shared ^
--without-analyzer ^
--enable-object-out-dir=%PHP_BUILD_OBJ_DIR% ^
diff --git a/configure.in b/configure.in
index be73e1ebb7..ea52783903 100644
--- a/configure.in
+++ b/configure.in
@@ -745,7 +745,7 @@ if test "$ac_cv_func_sync_fetch_and_add" = yes; then
AC_DEFINE(HAVE_SYNC_FETCH_AND_ADD,1,[Define if you have the __sync_fetch_and_add function])
fi
-AC_REPLACE_FUNCS(strlcat strlcpy getopt)
+AC_REPLACE_FUNCS(strlcat strlcpy explicit_bzero getopt)
AC_FUNC_UTIME_NULL
AC_FUNC_ALLOCA
dnl PHP_AC_BROKEN_SPRINTF
@@ -1446,7 +1446,7 @@ PHP_ADD_SOURCES(TSRM, TSRM.c tsrm_strtok_r.c, -DZEND_ENABLE_STATIC_TSRMLS_CACHE=
PHP_ADD_SOURCES(main, main.c snprintf.c spprintf.c php_sprintf.c \
fopen_wrappers.c alloca.c php_scandir.c \
php_ini.c SAPI.c rfc1867.c php_content_types.c strlcpy.c \
- strlcat.c mergesort.c reentrancy.c php_variables.c php_ticks.c \
+ strlcat.c explicit_bzero.c mergesort.c reentrancy.c php_variables.c php_ticks.c \
network.c php_open_temporary_file.c \
output.c getopt.c, -DZEND_ENABLE_STATIC_TSRMLS_CACHE=1)
diff --git a/ext/exif/exif.c b/ext/exif/exif.c
index 9d75868107..b5c99dd6c3 100644
--- a/ext/exif/exif.c
+++ b/ext/exif/exif.c
@@ -1682,7 +1682,7 @@ static size_t exif_convert_any_to_int(void *value, int format, int motorola_inte
if (s_den == 0) {
return 0;
} else {
- return php_ifd_get32s(value, motorola_intel) / s_den;
+ return (size_t)((double)php_ifd_get32s(value, motorola_intel) / s_den);
}
case TAG_FMT_SSHORT: return php_ifd_get16u(value, motorola_intel);
diff --git a/ext/exif/tests/bug73737.phpt b/ext/exif/tests/bug73737.phpt
new file mode 100644
index 0000000000..21eaf80585
--- /dev/null
+++ b/ext/exif/tests/bug73737.phpt
@@ -0,0 +1,12 @@
+--TEST--
+Bug #73737 (Crash when parsing a tag format)
+--SKIPIF--
+<?php if (!extension_loaded('exif')) print 'skip exif extension not available';?>
+--FILE--
+<?php
+ $exif = exif_thumbnail(__DIR__ . '/bug73737.tiff');
+ var_dump($exif);
+?>
+--EXPECTF--
+Warning: exif_thumbnail(bug73737.tiff): Error in TIFF: filesize(x0030) less than start of IFD dir(x10102) in %s line %d
+bool(false)
diff --git a/ext/exif/tests/bug73737.tiff b/ext/exif/tests/bug73737.tiff
new file mode 100644
index 0000000000..2cb036fc47
--- /dev/null
+++ b/ext/exif/tests/bug73737.tiff
Binary files differ
diff --git a/ext/mysqli/mysqli_nonapi.c b/ext/mysqli/mysqli_nonapi.c
index 08817dc7f0..3dba36317d 100644
--- a/ext/mysqli/mysqli_nonapi.c
+++ b/ext/mysqli/mysqli_nonapi.c
@@ -183,6 +183,10 @@ void mysqli_common_connect(INTERNAL_FUNCTION_PARAMETERS, zend_bool is_real_conne
mysqlnd_restart_psession(mysql->mysql);
#endif
MyG(num_active_persistent)++;
+
+ /* clear error */
+ php_mysqli_set_error(mysql_errno(mysql->mysql), (char *) mysql_error(mysql->mysql));
+
goto end;
} else {
mysqli_close(mysql->mysql, MYSQLI_CLOSE_IMPLICIT);
diff --git a/ext/mysqli/tests/bug73462.phpt b/ext/mysqli/tests/bug73462.phpt
new file mode 100644
index 0000000000..6de73761f4
--- /dev/null
+++ b/ext/mysqli/tests/bug73462.phpt
@@ -0,0 +1,41 @@
+--TEST--
+Bug #73462 (Persistent connections don't set $connect_errno)
+--SKIPIF--
+<?php
+require_once('skipif.inc');
+require_once('skipifemb.inc');
+require_once('skipifconnectfailure.inc');
+?>
+--FILE--
+<?php
+ require_once("connect.inc");
+
+ /* Initial persistent connection */
+ $mysql_1 = new mysqli('p:'.$host, $user, $passwd, $db);
+ $result = $mysql_1->query("SHOW STATUS LIKE 'Connections'");
+ $c1 = $result->fetch_row();
+ $result->free();
+ $mysql_1->close();
+
+ /* Failed connection to invalid host */
+ $mysql_2 = @new mysqli(' !!! invalid !!! ', $user, $passwd, $db);
+ @$mysql_2->close();
+
+ /* Re-use persistent connection */
+ $mysql_3 = new mysqli('p:'.$host, $user, $passwd, $db);
+ $error = mysqli_connect_errno();
+ $result = $mysql_3->query("SHOW STATUS LIKE 'Connections'");
+ $c3 = $result->fetch_row();
+ $result->free();
+ $mysql_3->close();
+
+ if (end($c1) !== end($c3))
+ printf("[001] Expected '%d' got '%d'.\n", end($c1), end($c3));
+
+ if ($error !== 0)
+ printf("[002] Expected '0' got '%d'.\n", $error);
+
+ print "done!";
+?>
+--EXPECTF--
+done!
diff --git a/ext/mysqlnd/mysqlnd_wireprotocol.c b/ext/mysqlnd/mysqlnd_wireprotocol.c
index 70e9f948bd..d5495715e0 100644
--- a/ext/mysqlnd/mysqlnd_wireprotocol.c
+++ b/ext/mysqlnd/mysqlnd_wireprotocol.c
@@ -1468,7 +1468,7 @@ php_mysqlnd_read_row_ex(MYSQLND_PFC * pfc,
zend_bool first_iteration = TRUE;
DBG_ENTER("php_mysqlnd_read_row_ex");
-
+
/*
To ease the process the server splits everything in packets up to 2^24 - 1.
Even in the case the payload is evenly divisible by this value, the last
@@ -1531,7 +1531,7 @@ php_mysqlnd_read_row_ex(MYSQLND_PFC * pfc,
pool->free_chunk(pool, *buffer);
*buffer = NULL;
}
- *data_size--;
+ (*data_size)--;
DBG_RETURN(ret);
}
/* }}} */
diff --git a/ext/opcache/tests/basic_logging.phpt b/ext/opcache/tests/basic_logging.phpt
index c62ea039a5..4a571b5b93 100644
--- a/ext/opcache/tests/basic_logging.phpt
+++ b/ext/opcache/tests/basic_logging.phpt
@@ -7,6 +7,7 @@ outputs the correct logging at the highest log_verbosity_level
--INI--
opcache.enable=1
opcache.enable_cli=1
+opcache.file_cache_only=0
opcache.log_verbosity_level=4
--SKIPIF--
<?php require_once('skipif.inc'); ?>
diff --git a/ext/opcache/tests/issue0115.phpt b/ext/opcache/tests/issue0115.phpt
index 0dfdd9f0eb..26d99080eb 100644
--- a/ext/opcache/tests/issue0115.phpt
+++ b/ext/opcache/tests/issue0115.phpt
@@ -16,28 +16,28 @@ require "phar://this/index.php";
__HALT_COMPILER(); ?>';
$p = new Phar(__DIR__ . '/issue0115_1.phar.php', 0, 'this');
$p['index.php'] = '<?php
-echo "Hello from Index 1.\n";
-require_once "phar://this/hello.php";
+ echo "Hello from Index 1.\n";
+ require_once "phar://this/hello.php";
';
-$p['hello.php'] = "Hello World 1!\n";
+$p['hello.php'] = "Hello World 1!\n";
$p->setStub($stub);
unset($p);
$p = new Phar(__DIR__ . '/issue0115_2.phar.php', 0, 'this');
$p['index.php'] = '<?php
-echo "Hello from Index 2.\n";
-require_once "phar://this/hello.php";
+ echo "Hello from Index 2.\n";
+ require_once "phar://this/hello.php";
';
-$p['hello.php'] = "Hello World 2!\n";
+$p['hello.php'] = "Hello World 2!\n";
$p->setStub($stub);
unset($p);
include "php_cli_server.inc";
-php_cli_server_start('-d opcache.enable=1 -d opcache.enable_cli=1');
+php_cli_server_start('-d opcache.enable=1 -d opcache.enable_cli=1 -d extension=phar.'.PHP_SHLIB_SUFFIX);
echo file_get_contents('http://' . PHP_CLI_SERVER_ADDRESS . '/issue0115_1.phar.php');
echo file_get_contents('http://' . PHP_CLI_SERVER_ADDRESS . '/issue0115_2.phar.php');
?>
--CLEAN--
-<?php
+<?php
@unlink(__DIR__ . '/issue0115_1.phar.php');
@unlink(__DIR__ . '/issue0115_2.phar.php');
?>
diff --git a/ext/opcache/tests/issue0149.phpt b/ext/opcache/tests/issue0149.phpt
index 8c7f1bb7e0..ba57623fce 100644
--- a/ext/opcache/tests/issue0149.phpt
+++ b/ext/opcache/tests/issue0149.phpt
@@ -20,13 +20,13 @@ $p->setStub($stub);
unset($p);
include "php_cli_server.inc";
-php_cli_server_start('-d opcache.enable=1 -d opcache.enable_cli=1');
+php_cli_server_start('-d opcache.enable=1 -d opcache.enable_cli=1 -d extension=phar.'.PHP_SHLIB_SUFFIX);
echo file_get_contents('http://' . PHP_CLI_SERVER_ADDRESS . '/issue0149.phar.php');
echo file_get_contents('http://' . PHP_CLI_SERVER_ADDRESS . '/issue0149.phar.php');
echo file_get_contents('http://' . PHP_CLI_SERVER_ADDRESS . '/issue0149.phar.php');
?>
--CLEAN--
-<?php
+<?php
@unlink(__DIR__ . '/issue0149.phar.php');
?>
--EXPECT--
diff --git a/ext/opcache/tests/log_verbosity_bug.phpt b/ext/opcache/tests/log_verbosity_bug.phpt
index 725b8889f4..2e5d7a9add 100644
--- a/ext/opcache/tests/log_verbosity_bug.phpt
+++ b/ext/opcache/tests/log_verbosity_bug.phpt
@@ -7,6 +7,7 @@ The process should die regardless of the log_verbosity_level.
--INI--
opcache.enable=1
opcache.enable_cli=1
+opcache.file_cache_only=0
opcache.memory_consumption=999999999
opcache.log_verbosity_level=-1
--SKIPIF--
diff --git a/ext/phar/phar.c b/ext/phar/phar.c
index a80c1b0b9e..2f25f85ff3 100644
--- a/ext/phar/phar.c
+++ b/ext/phar/phar.c
@@ -983,7 +983,6 @@ static int phar_parse_pharfile(php_stream *fp, char *fname, int fname_len, char
/* if the alias is stored we enforce it (implicit overrides explicit) */
if (alias && alias_len && (alias_len != (int)tmp_len || strncmp(alias, buffer, tmp_len)))
{
- buffer[tmp_len] = '\0';
php_stream_close(fp);
if (signature) {
@@ -991,7 +990,7 @@ static int phar_parse_pharfile(php_stream *fp, char *fname, int fname_len, char
}
if (error) {
- spprintf(error, 0, "cannot load phar \"%s\" with implicit alias \"%s\" under different alias \"%s\"", fname, buffer, alias);
+ spprintf(error, 0, "cannot load phar \"%s\" with implicit alias \"%.*s\" under different alias \"%s\"", fname, tmp_len, buffer, alias);
}
efree(savebuf);
@@ -1057,7 +1056,7 @@ static int phar_parse_pharfile(php_stream *fp, char *fname, int fname_len, char
entry.is_persistent = mydata->is_persistent;
for (manifest_index = 0; manifest_index < manifest_count; ++manifest_index) {
- if (buffer + 4 > endbuffer) {
+ if (buffer + 28 > endbuffer) {
MAPPHAR_FAIL("internal corruption of phar \"%s\" (truncated manifest entry)")
}
@@ -1071,7 +1070,7 @@ static int phar_parse_pharfile(php_stream *fp, char *fname, int fname_len, char
entry.manifest_pos = manifest_index;
}
- if (entry.filename_len + 20 > (size_t)(endbuffer - buffer)) {
+ if (entry.filename_len > (size_t)(endbuffer - buffer - 24)) {
MAPPHAR_FAIL("internal corruption of phar \"%s\" (truncated manifest entry)");
}
diff --git a/ext/phar/tests/bug73764.phar b/ext/phar/tests/bug73764.phar
new file mode 100644
index 0000000000..89a5ff6542
--- /dev/null
+++ b/ext/phar/tests/bug73764.phar
Binary files differ
diff --git a/ext/phar/tests/bug73764.phpt b/ext/phar/tests/bug73764.phpt
new file mode 100644
index 0000000000..cab314a731
--- /dev/null
+++ b/ext/phar/tests/bug73764.phpt
@@ -0,0 +1,16 @@
+--TEST--
+Phar: PHP bug #73764: Crash while loading hostile phar archive
+--SKIPIF--
+<?php if (!extension_loaded("phar")) die("skip"); ?>
+--FILE--
+<?php
+chdir(__DIR__);
+try {
+$p = Phar::LoadPhar('bug73764.phar', 'alias.phar');
+echo "OK\n";
+} catch(PharException $e) {
+ echo $e->getMessage();
+}
+?>
+--EXPECTF--
+internal corruption of phar "%sbug73764.phar" (truncated manifest entry) \ No newline at end of file
diff --git a/ext/phar/tests/bug73768.phar b/ext/phar/tests/bug73768.phar
new file mode 100644
index 0000000000..3f429c2365
--- /dev/null
+++ b/ext/phar/tests/bug73768.phar
Binary files differ
diff --git a/ext/phar/tests/bug73768.phpt b/ext/phar/tests/bug73768.phpt
new file mode 100644
index 0000000000..37a4da0253
--- /dev/null
+++ b/ext/phar/tests/bug73768.phpt
@@ -0,0 +1,16 @@
+--TEST--
+Phar: PHP bug #73768: Memory corruption when loading hostile phar
+--SKIPIF--
+<?php if (!extension_loaded("phar")) die("skip"); ?>
+--FILE--
+<?php
+chdir(__DIR__);
+try {
+$p = Phar::LoadPhar('bug73768.phar', 'alias.phar');
+echo "OK\n";
+} catch(PharException $e) {
+ echo $e->getMessage();
+}
+?>
+--EXPECTF--
+cannot load phar "%sbug73768.phar" with implicit alias "" under different alias "alias.phar"
diff --git a/ext/standard/browscap.c b/ext/standard/browscap.c
index ce9b77abc0..653f8bd492 100644
--- a/ext/standard/browscap.c
+++ b/ext/standard/browscap.c
@@ -27,10 +27,29 @@
#include "zend_ini_scanner.h"
#include "zend_globals.h"
+#define BROWSCAP_NUM_CONTAINS 5
+
+typedef struct {
+ zend_string *key;
+ zend_string *value;
+} browscap_kv;
+
+typedef struct {
+ zend_string *pattern;
+ zend_string *parent;
+ uint32_t kv_start;
+ uint32_t kv_end;
+ /* We ensure that the length fits in 16 bits, so this is fine */
+ uint16_t contains_start[BROWSCAP_NUM_CONTAINS];
+ uint8_t contains_len[BROWSCAP_NUM_CONTAINS];
+ uint8_t prefix_len;
+} browscap_entry;
+
typedef struct {
HashTable *htab;
- zval current_section;
- char *current_section_name;
+ browscap_kv *kv;
+ uint32_t kv_used;
+ uint32_t kv_size;
char filename[MAXPATHLEN];
} browser_data;
@@ -50,43 +69,106 @@ ZEND_DECLARE_MODULE_GLOBALS(browscap)
/* OBJECTS_FIXME: This whole extension needs going through. The use of objects looks pretty broken here */
-static void browscap_entry_dtor_request(zval *zvalue) /* {{{ */
+static void browscap_entry_dtor(zval *zvalue)
{
- if (Z_TYPE_P(zvalue) == IS_ARRAY) {
- zend_hash_destroy(Z_ARRVAL_P(zvalue));
- efree(Z_ARR_P(zvalue));
- } else if (Z_TYPE_P(zvalue) == IS_STRING) {
- zend_string_release(Z_STR_P(zvalue));
+ browscap_entry *entry = Z_PTR_P(zvalue);
+ zend_string_release(entry->pattern);
+ if (entry->parent) {
+ zend_string_release(entry->parent);
}
+ efree(entry);
}
-/* }}} */
-static void browscap_entry_dtor_persistent(zval *zvalue) /* {{{ */ {
- if (Z_TYPE_P(zvalue) == IS_ARRAY) {
- zend_hash_destroy(Z_ARRVAL_P(zvalue));
- free(Z_ARR_P(zvalue));
- } else if (Z_TYPE_P(zvalue) == IS_STRING) {
- zend_string_release(Z_STR_P(zvalue));
+static void browscap_entry_dtor_persistent(zval *zvalue)
+{
+ browscap_entry *entry = Z_PTR_P(zvalue);
+ zend_string_release(entry->pattern);
+ if (entry->parent) {
+ zend_string_release(entry->parent);
}
+ pefree(entry, 1);
+}
+
+static inline zend_bool is_placeholder(char c) {
+ return c == '?' || c == '*';
+}
+
+/* Length of prefix not containing any wildcards */
+static uint8_t browscap_compute_prefix_len(zend_string *pattern) {
+ size_t i;
+ for (i = 0; i < ZSTR_LEN(pattern); i++) {
+ if (is_placeholder(ZSTR_VAL(pattern)[i])) {
+ break;
+ }
+ }
+ return MIN(i, UINT8_MAX);
+}
+
+static size_t browscap_compute_contains(
+ zend_string *pattern, size_t start_pos,
+ uint16_t *contains_start, uint8_t *contains_len) {
+ size_t i = start_pos;
+ /* Find first non-placeholder character after prefix */
+ for (; i < ZSTR_LEN(pattern); i++) {
+ if (!is_placeholder(ZSTR_VAL(pattern)[i])) {
+ /* Skip the case of a single non-placeholder character.
+ * Let's try to find something longer instead. */
+ if (i + 1 < ZSTR_LEN(pattern) &&
+ !is_placeholder(ZSTR_VAL(pattern)[i + 1])) {
+ break;
+ }
+ }
+ }
+ *contains_start = i;
+
+ /* Find first placeholder character after that */
+ for (; i < ZSTR_LEN(pattern); i++) {
+ if (is_placeholder(ZSTR_VAL(pattern)[i])) {
+ break;
+ }
+ }
+ *contains_len = MIN(i - *contains_start, UINT8_MAX);
+ return i;
+}
+
+/* Length of regex, including escapes, anchors, etc. */
+static size_t browscap_compute_regex_len(zend_string *pattern) {
+ size_t i, len = ZSTR_LEN(pattern);
+ for (i = 0; i < ZSTR_LEN(pattern); i++) {
+ switch (ZSTR_VAL(pattern)[i]) {
+ case '*':
+ case '.':
+ case '\\':
+ case '(':
+ case ')':
+ case '~':
+ case '+':
+ len++;
+ break;
+ }
+ }
+
+ return len + sizeof("~^$~")-1;
}
-/* }}} */
-static void convert_browscap_pattern(zval *pattern, int persistent) /* {{{ */
+static zend_string *browscap_convert_pattern(zend_string *pattern, int persistent) /* {{{ */
{
size_t i, j=0;
char *t;
zend_string *res;
char *lc_pattern;
+ ALLOCA_FLAG(use_heap);
- res = zend_string_safe_alloc(Z_STRLEN_P(pattern), 2, 4, persistent);
+ res = zend_string_alloc(browscap_compute_regex_len(pattern), persistent);
t = ZSTR_VAL(res);
- lc_pattern = zend_str_tolower_dup(Z_STRVAL_P(pattern), Z_STRLEN_P(pattern));
+ lc_pattern = do_alloca(ZSTR_LEN(pattern) + 1, use_heap);
+ zend_str_tolower_copy(lc_pattern, ZSTR_VAL(pattern), ZSTR_LEN(pattern));
t[j++] = '~';
t[j++] = '^';
- for (i=0; i<Z_STRLEN_P(pattern); i++, j++) {
+ for (i = 0; i < ZSTR_LEN(pattern); i++, j++) {
switch (lc_pattern[i]) {
case '?':
t[j] = '.';
@@ -127,17 +209,100 @@ static void convert_browscap_pattern(zval *pattern, int persistent) /* {{{ */
t[j++] = '$';
t[j++] = '~';
-
t[j]=0;
+
ZSTR_LEN(res) = j;
- Z_STR_P(pattern) = res;
- efree(lc_pattern);
+ free_alloca(lc_pattern, use_heap);
+ return res;
}
/* }}} */
+typedef struct _browscap_parser_ctx {
+ browser_data *bdata;
+ browscap_entry *current_entry;
+ zend_string *current_section_name;
+ zend_string *str_empty;
+ zend_string *str_one;
+ HashTable str_interned;
+} browscap_parser_ctx;
+
+static zend_string *browscap_intern_str(
+ browscap_parser_ctx *ctx, zend_string *str) {
+ zend_string *interned = zend_hash_find_ptr(&ctx->str_interned, str);
+ if (interned) {
+ zend_string_addref(interned);
+ } else {
+ interned = zend_string_copy(str);
+ zend_hash_add_new_ptr(&ctx->str_interned, interned, interned);
+ }
+
+ return interned;
+}
+
+static zend_string *browscap_intern_str_ci(
+ browscap_parser_ctx *ctx, zend_string *str, zend_bool persistent) {
+ zend_string *lcname;
+ zend_string *interned;
+ ALLOCA_FLAG(use_heap);
+
+ ZSTR_ALLOCA_ALLOC(lcname, ZSTR_LEN(str), use_heap);
+ zend_str_tolower_copy(ZSTR_VAL(lcname), ZSTR_VAL(str), ZSTR_LEN(str));
+ interned = zend_hash_find_ptr(&ctx->str_interned, lcname);
+
+ if (interned) {
+ zend_string_addref(interned);
+ } else {
+ interned = zend_string_dup(lcname, persistent);
+ zend_hash_add_new_ptr(&ctx->str_interned, interned, interned);
+ }
+
+ ZSTR_ALLOCA_FREE(lcname, use_heap);
+ return interned;
+}
+
+static void browscap_add_kv(
+ browser_data *bdata, zend_string *key, zend_string *value, zend_bool persistent) {
+ if (bdata->kv_used == bdata->kv_size) {
+ bdata->kv_size *= 2;
+ bdata->kv = safe_perealloc(bdata->kv, sizeof(browscap_kv), bdata->kv_size, 0, persistent);
+ }
+
+ bdata->kv[bdata->kv_used].key = key;
+ bdata->kv[bdata->kv_used].value = value;
+ bdata->kv_used++;
+}
+
+static HashTable *browscap_entry_to_array(browser_data *bdata, browscap_entry *entry) {
+ zval tmp;
+ uint32_t i;
+
+ HashTable *ht;
+ ALLOC_HASHTABLE(ht);
+ zend_hash_init(ht, 8, NULL, ZVAL_PTR_DTOR, 0);
+
+ ZVAL_STR(&tmp, browscap_convert_pattern(entry->pattern, 0));
+ zend_hash_str_add(ht, "browser_name_regex", sizeof("browser_name_regex")-1, &tmp);
+
+ ZVAL_STR_COPY(&tmp, entry->pattern);
+ zend_hash_str_add(ht, "browser_name_pattern", sizeof("browser_name_pattern")-1, &tmp);
+
+ if (entry->parent) {
+ ZVAL_STR_COPY(&tmp, entry->parent);
+ zend_hash_str_add(ht, "parent", sizeof("parent")-1, &tmp);
+ }
+
+ for (i = entry->kv_start; i < entry->kv_end; i++) {
+ ZVAL_STR_COPY(&tmp, bdata->kv[i].value);
+ zend_hash_add(ht, bdata->kv[i].key, &tmp);
+ }
+
+ return ht;
+}
+
static void php_browscap_parser_cb(zval *arg1, zval *arg2, zval *arg3, int callback_type, void *arg) /* {{{ */
{
- browser_data *bdata = arg;
+ browscap_parser_ctx *ctx = arg;
+ browser_data *bdata = ctx->bdata;
int persistent = bdata->htab->u.flags & HASH_FLAG_PERSISTENT;
if (!arg1) {
@@ -146,74 +311,81 @@ static void php_browscap_parser_cb(zval *arg1, zval *arg2, zval *arg3, int callb
switch (callback_type) {
case ZEND_INI_PARSER_ENTRY:
- if (Z_TYPE(bdata->current_section) != IS_UNDEF && arg2) {
- zval new_property;
- zend_string *new_key;
-
- /* parent entry can not be same as current section -> causes infinite loop! */
- if (!strcasecmp(Z_STRVAL_P(arg1), "parent") &&
- bdata->current_section_name != NULL &&
- !strcasecmp(bdata->current_section_name, Z_STRVAL_P(arg2))
- ) {
- zend_error(E_CORE_ERROR, "Invalid browscap ini file: "
- "'Parent' value cannot be same as the section name: %s "
- "(in file %s)", bdata->current_section_name, INI_STR("browscap"));
- return;
- }
+ if (ctx->current_entry != NULL && arg2) {
+ zend_string *new_key, *new_value;
/* Set proper value for true/false settings */
if ((Z_STRLEN_P(arg2) == 2 && !strncasecmp(Z_STRVAL_P(arg2), "on", sizeof("on") - 1)) ||
(Z_STRLEN_P(arg2) == 3 && !strncasecmp(Z_STRVAL_P(arg2), "yes", sizeof("yes") - 1)) ||
(Z_STRLEN_P(arg2) == 4 && !strncasecmp(Z_STRVAL_P(arg2), "true", sizeof("true") - 1))
) {
- ZVAL_NEW_STR(&new_property, zend_string_init("1", sizeof("1")-1, persistent));
+ new_value = zend_string_copy(ctx->str_one);
} else if (
(Z_STRLEN_P(arg2) == 2 && !strncasecmp(Z_STRVAL_P(arg2), "no", sizeof("no") - 1)) ||
(Z_STRLEN_P(arg2) == 3 && !strncasecmp(Z_STRVAL_P(arg2), "off", sizeof("off") - 1)) ||
(Z_STRLEN_P(arg2) == 4 && !strncasecmp(Z_STRVAL_P(arg2), "none", sizeof("none") - 1)) ||
(Z_STRLEN_P(arg2) == 5 && !strncasecmp(Z_STRVAL_P(arg2), "false", sizeof("false") - 1))
) {
- // TODO: USE ZSTR_EMPTY_ALLOC()?
- ZVAL_NEW_STR(&new_property, zend_string_init("", sizeof("")-1, persistent));
+ new_value = zend_string_copy(ctx->str_empty);
} else { /* Other than true/false setting */
- ZVAL_STR(&new_property, zend_string_dup(Z_STR_P(arg2), persistent));
+ new_value = browscap_intern_str(ctx, Z_STR_P(arg2));
}
- new_key = zend_string_dup(Z_STR_P(arg1), persistent);
- zend_str_tolower(ZSTR_VAL(new_key), ZSTR_LEN(new_key));
- zend_hash_update(Z_ARRVAL(bdata->current_section), new_key, &new_property);
- zend_string_release(new_key);
- }
- break;
- case ZEND_INI_PARSER_SECTION: {
- zval processed;
- zval unprocessed;
- /*printf("'%s' (%d)\n",$1.value.str.val,$1.value.str.len + 1);*/
- if (persistent) {
- ZVAL_NEW_PERSISTENT_ARR(&bdata->current_section);
+ if (!strcasecmp(Z_STRVAL_P(arg1), "parent")) {
+ /* parent entry can not be same as current section -> causes infinite loop! */
+ if (ctx->current_section_name != NULL &&
+ !strcasecmp(ZSTR_VAL(ctx->current_section_name), Z_STRVAL_P(arg2))
+ ) {
+ zend_error(E_CORE_ERROR, "Invalid browscap ini file: "
+ "'Parent' value cannot be same as the section name: %s "
+ "(in file %s)", ZSTR_VAL(ctx->current_section_name), INI_STR("browscap"));
+ return;
+ }
+
+ if (ctx->current_entry->parent) {
+ zend_string_release(ctx->current_entry->parent);
+ }
+ ctx->current_entry->parent = new_value;
} else {
- ZVAL_NEW_ARR(&bdata->current_section);
+ new_key = browscap_intern_str_ci(ctx, Z_STR_P(arg1), persistent);
+ browscap_add_kv(bdata, new_key, new_value, persistent);
+ ctx->current_entry->kv_end = bdata->kv_used;
}
- zend_hash_init(Z_ARRVAL(bdata->current_section), 0, NULL,
- (dtor_func_t) (persistent?browscap_entry_dtor_persistent
- :browscap_entry_dtor_request),
- persistent);
- if (bdata->current_section_name) {
- pefree(bdata->current_section_name, persistent);
- }
- bdata->current_section_name = pestrndup(Z_STRVAL_P(arg1),
- Z_STRLEN_P(arg1), persistent);
+ }
+ break;
+ case ZEND_INI_PARSER_SECTION:
+ {
+ browscap_entry *entry;
+ zend_string *pattern = Z_STR_P(arg1);
+ size_t pos;
+ int i;
+
+ if (ZSTR_LEN(pattern) > UINT16_MAX) {
+ php_error_docref(NULL, E_WARNING,
+ "Skipping excessively long pattern of length %zd", ZSTR_LEN(pattern));
+ break;
+ }
+
+ entry = ctx->current_entry
+ = pemalloc(sizeof(browscap_entry), persistent);
+ zend_hash_update_ptr(bdata->htab, pattern, entry);
- zend_hash_update(bdata->htab, Z_STR_P(arg1), &bdata->current_section);
+ if (ctx->current_section_name) {
+ zend_string_release(ctx->current_section_name);
+ }
+ ctx->current_section_name = zend_string_copy(pattern);
- ZVAL_STR(&processed, Z_STR_P(arg1));
- ZVAL_STR(&unprocessed, zend_string_dup(Z_STR_P(arg1), persistent));
+ entry->pattern = zend_string_copy(pattern);
+ entry->kv_end = entry->kv_start = bdata->kv_used;
+ entry->parent = NULL;
- convert_browscap_pattern(&processed, persistent);
- zend_hash_str_update(Z_ARRVAL(bdata->current_section), "browser_name_regex", sizeof("browser_name_regex")-1, &processed);
- zend_hash_str_update(Z_ARRVAL(bdata->current_section), "browser_name_pattern", sizeof("browser_name_pattern")-1, &unprocessed);
+ pos = entry->prefix_len = browscap_compute_prefix_len(pattern);
+ for (i = 0; i < BROWSCAP_NUM_CONTAINS; i++) {
+ pos = browscap_compute_contains(pattern, pos,
+ &entry->contains_start[i], &entry->contains_len[i]);
}
break;
+ }
}
}
/* }}} */
@@ -221,41 +393,53 @@ static void php_browscap_parser_cb(zval *arg1, zval *arg2, zval *arg3, int callb
static int browscap_read_file(char *filename, browser_data *browdata, int persistent) /* {{{ */
{
zend_file_handle fh;
+ browscap_parser_ctx ctx = {0};
if (filename == NULL || filename[0] == '\0') {
return FAILURE;
}
- browdata->htab = pemalloc(sizeof *browdata->htab, persistent);
- if (browdata->htab == NULL) {
- return FAILURE;
- }
-
- zend_hash_init_ex(browdata->htab, 0, NULL,
- (dtor_func_t) (persistent?browscap_entry_dtor_persistent
- :browscap_entry_dtor_request),
- persistent, 0);
-
- memset(&fh, 0, sizeof(fh));
fh.handle.fp = VCWD_FOPEN(filename, "r");
fh.opened_path = NULL;
fh.free_filename = 0;
if (!fh.handle.fp) {
- zend_hash_destroy(browdata->htab);
- pefree(browdata->htab, persistent);
- browdata->htab = NULL;
zend_error(E_CORE_WARNING, "Cannot open '%s' for reading", filename);
return FAILURE;
}
+
fh.filename = filename;
fh.type = ZEND_HANDLE_FP;
- browdata->current_section_name = NULL;
+
+ browdata->htab = pemalloc(sizeof *browdata->htab, persistent);
+ if (browdata->htab == NULL) {
+ return FAILURE;
+ }
+
+ zend_hash_init_ex(browdata->htab, 0, NULL,
+ persistent ? browscap_entry_dtor_persistent : browscap_entry_dtor, persistent, 0);
+
+ browdata->kv_size = 16 * 1024;
+ browdata->kv_used = 0;
+ browdata->kv = pemalloc(sizeof(browscap_kv) * browdata->kv_size, persistent);
+
+ /* Create parser context */
+ ctx.bdata = browdata;
+ ctx.current_entry = NULL;
+ ctx.current_section_name = NULL;
+ ctx.str_empty = zend_string_init("", sizeof("")-1, persistent);
+ ctx.str_one = zend_string_init("1", sizeof("1")-1, persistent);
+ zend_hash_init(&ctx.str_interned, 8, NULL, NULL, persistent);
+
zend_parse_ini_file(&fh, 1, ZEND_INI_SCANNER_RAW,
- (zend_ini_parser_cb_t) php_browscap_parser_cb, browdata);
- if (browdata->current_section_name != NULL) {
- pefree(browdata->current_section_name, persistent);
- browdata->current_section_name = NULL;
+ (zend_ini_parser_cb_t) php_browscap_parser_cb, &ctx);
+
+ /* Destroy parser context */
+ if (ctx.current_section_name) {
+ zend_string_release(ctx.current_section_name);
}
+ zend_string_release(ctx.str_one);
+ zend_string_release(ctx.str_empty);
+ zend_hash_destroy(&ctx.str_interned);
return SUCCESS;
}
@@ -265,8 +449,7 @@ static int browscap_read_file(char *filename, browser_data *browdata, int persis
static void browscap_globals_ctor(zend_browscap_globals *browscap_globals) /* {{{ */
{
browscap_globals->activation_bdata.htab = NULL;
- ZVAL_UNDEF(&browscap_globals->activation_bdata.current_section);
- browscap_globals->activation_bdata.current_section_name = NULL;
+ browscap_globals->activation_bdata.kv = NULL;
browscap_globals->activation_bdata.filename[0] = '\0';
}
/* }}} */
@@ -275,12 +458,20 @@ static void browscap_globals_ctor(zend_browscap_globals *browscap_globals) /* {{
static void browscap_bdata_dtor(browser_data *bdata, int persistent) /* {{{ */
{
if (bdata->htab != NULL) {
+ uint32_t i;
+
zend_hash_destroy(bdata->htab);
pefree(bdata->htab, persistent);
bdata->htab = NULL;
+
+ for (i = 0; i < bdata->kv_used; i++) {
+ zend_string_release(bdata->kv[i].key);
+ zend_string_release(bdata->kv[i].value);
+ }
+ pefree(bdata->kv, persistent);
+ bdata->kv = NULL;
}
bdata->filename[0] = '\0';
- /* current_section_* are only used during parsing */
}
/* }}} */
@@ -344,49 +535,89 @@ PHP_MSHUTDOWN_FUNCTION(browscap) /* {{{ */
}
/* }}} */
-static int browser_reg_compare(zval *browser, int num_args, va_list args, zend_hash_key *key) /* {{{ */
+static inline size_t browscap_get_minimum_length(browscap_entry *entry) {
+ size_t len = entry->prefix_len;
+ int i;
+ for (i = 0; i < BROWSCAP_NUM_CONTAINS; i++) {
+ len += entry->contains_len[i];
+ }
+ return len;
+}
+
+static int browser_reg_compare(
+ zval *entry_zv, int num_args, va_list args, zend_hash_key *key) /* {{{ */
{
- zval *browser_regex, *previous_match;
+ browscap_entry *entry = Z_PTR_P(entry_zv);
+ zend_string *agent_name = va_arg(args, zend_string *);
+ browscap_entry **found_entry_ptr = va_arg(args, browscap_entry **);
+ browscap_entry *found_entry = *found_entry_ptr;
+ ALLOCA_FLAG(use_heap);
+ zend_string *pattern_lc, *regex;
+ const char *cur;
+ int i;
+
pcre *re;
int re_options;
pcre_extra *re_extra;
- char *lookup_browser_name = va_arg(args, char *);
- int lookup_browser_length = va_arg(args, int);
- zval *found_browser_entry = va_arg(args, zval *);
- /* See if we have an exact match, if so, we're done... */
- if (Z_TYPE_P(found_browser_entry) == IS_ARRAY) {
- if ((previous_match = zend_hash_str_find(Z_ARRVAL_P(found_browser_entry), "browser_name_pattern", sizeof("browser_name_pattern")-1)) == NULL) {
- return 0;
- }
- else if (!strcasecmp(Z_STRVAL_P(previous_match), lookup_browser_name)) {
- return 0;
- }
+ /* Agent name too short */
+ if (ZSTR_LEN(agent_name) < browscap_get_minimum_length(entry)) {
+ return 0;
}
- if ((browser_regex = zend_hash_str_find(Z_ARRVAL_P(browser), "browser_name_regex", sizeof("browser_name_regex")-1)) == NULL) {
+ /* Quickly discard patterns where the prefix doesn't match. */
+ if (zend_binary_strcasecmp(
+ ZSTR_VAL(agent_name), entry->prefix_len,
+ ZSTR_VAL(entry->pattern), entry->prefix_len) != 0) {
return 0;
}
- re = pcre_get_compiled_regex(Z_STR_P(browser_regex), &re_extra, &re_options);
+ /* Lowercase the pattern, the agent name is already lowercase */
+ ZSTR_ALLOCA_ALLOC(pattern_lc, ZSTR_LEN(entry->pattern), use_heap);
+ zend_str_tolower_copy(ZSTR_VAL(pattern_lc), ZSTR_VAL(entry->pattern), ZSTR_LEN(entry->pattern));
+
+ /* Check if the agent contains the "contains" portions */
+ cur = ZSTR_VAL(agent_name) + entry->prefix_len;
+ for (i = 0; i < BROWSCAP_NUM_CONTAINS; i++) {
+ if (entry->contains_len[i] != 0) {
+ cur = zend_memnstr(cur,
+ ZSTR_VAL(pattern_lc) + entry->contains_start[i],
+ entry->contains_len[i],
+ ZSTR_VAL(agent_name) + ZSTR_LEN(agent_name));
+ if (!cur) {
+ ZSTR_ALLOCA_FREE(pattern_lc, use_heap);
+ return 0;
+ }
+ cur += entry->contains_len[i];
+ }
+ }
+
+ /* See if we have an exact match, if so, we're done... */
+ if (zend_string_equals(agent_name, pattern_lc)) {
+ *found_entry_ptr = entry;
+ ZSTR_ALLOCA_FREE(pattern_lc, use_heap);
+ return ZEND_HASH_APPLY_STOP;
+ }
+
+ regex = browscap_convert_pattern(entry->pattern, 0);
+ re = pcre_get_compiled_regex(regex, &re_extra, &re_options);
if (re == NULL) {
+ ZSTR_ALLOCA_FREE(pattern_lc, use_heap);
+ zend_string_release(regex);
return 0;
}
- if (pcre_exec(re, re_extra, lookup_browser_name, lookup_browser_length, 0, re_options, NULL, 0) == 0) {
+ if (pcre_exec(re, re_extra, ZSTR_VAL(agent_name), ZSTR_LEN(agent_name), 0, re_options, NULL, 0) == 0) {
/* If we've found a possible browser, we need to do a comparison of the
number of characters changed in the user agent being checked versus
the previous match found and the current match. */
- if (Z_TYPE_P(found_browser_entry) == IS_ARRAY) {
+ if (found_entry) {
size_t i, prev_len = 0, curr_len = 0;
- zval *current_match = zend_hash_str_find(Z_ARRVAL_P(browser), "browser_name_pattern", sizeof("browser_name_pattern")-1);
-
- if (!current_match) {
- return 0;
- }
+ zend_string *previous_match = found_entry->pattern;
+ zend_string *current_match = entry->pattern;
- for (i = 0; i < Z_STRLEN_P(previous_match); i++) {
- switch (Z_STRVAL_P(previous_match)[i]) {
+ for (i = 0; i < ZSTR_LEN(previous_match); i++) {
+ switch (ZSTR_VAL(previous_match)[i]) {
case '?':
case '*':
/* do nothing, ignore these characters in the count */
@@ -397,8 +628,8 @@ static int browser_reg_compare(zval *browser, int num_args, va_list args, zend_h
}
}
- for (i = 0; i < Z_STRLEN_P(current_match); i++) {
- switch (Z_STRVAL_P(current_match)[i]) {
+ for (i = 0; i < ZSTR_LEN(current_match); i++) {
+ switch (ZSTR_VAL(current_match)[i]) {
case '?':
case '*':
/* do nothing, ignore these characters in the count */
@@ -412,14 +643,15 @@ static int browser_reg_compare(zval *browser, int num_args, va_list args, zend_h
/* Pick which browser pattern replaces the least amount of
characters when compared to the original user agent string... */
if (prev_len < curr_len) {
- ZVAL_COPY_VALUE(found_browser_entry, browser);
+ *found_entry_ptr = entry;
}
- }
- else {
- ZVAL_COPY_VALUE(found_browser_entry, browser);
+ } else {
+ *found_entry_ptr = entry;
}
}
+ ZSTR_ALLOCA_FREE(pattern_lc, use_heap);
+ zend_string_release(regex);
return 0;
}
/* }}} */
@@ -434,13 +666,11 @@ static void browscap_zval_copy_ctor(zval *p) /* {{{ */
Get information about the capabilities of a browser. If browser_name is omitted or null, HTTP_USER_AGENT is used. Returns an object by default; if return_array is true, returns an array. */
PHP_FUNCTION(get_browser)
{
- char *agent_name = NULL;
- size_t agent_name_len = 0;
+ zend_string *agent_name = NULL, *lookup_browser_name;
zend_bool return_array = 0;
- zval *agent, *z_agent_name, *http_user_agent;
- zval found_browser_entry;
- char *lookup_browser_name;
browser_data *bdata;
+ browscap_entry *found_entry = NULL;
+ HashTable *agent_ht;
if (BROWSCAP_G(activation_bdata).filename[0] != '\0') {
bdata = &BROWSCAP_G(activation_bdata);
@@ -459,58 +689,66 @@ PHP_FUNCTION(get_browser)
ZEND_PARSE_PARAMETERS_START(0, 2)
Z_PARAM_OPTIONAL
- Z_PARAM_STRING_EX(agent_name, agent_name_len, 1, 0)
+ Z_PARAM_STR_EX(agent_name, 1, 0)
Z_PARAM_BOOL(return_array)
ZEND_PARSE_PARAMETERS_END();
if (agent_name == NULL) {
- if ((Z_TYPE(PG(http_globals)[TRACK_VARS_SERVER]) == IS_ARRAY || zend_is_auto_global_str(ZEND_STRL("_SERVER"))) &&
- (http_user_agent = zend_hash_str_find(Z_ARRVAL_P(&PG(http_globals)[TRACK_VARS_SERVER]), "HTTP_USER_AGENT", sizeof("HTTP_USER_AGENT")-1)) == NULL
- ) {
+ zval *http_user_agent = NULL;
+ if (Z_TYPE(PG(http_globals)[TRACK_VARS_SERVER]) == IS_ARRAY
+ || zend_is_auto_global_str(ZEND_STRL("_SERVER"))) {
+ http_user_agent = zend_hash_str_find(
+ Z_ARRVAL_P(&PG(http_globals)[TRACK_VARS_SERVER]),
+ "HTTP_USER_AGENT", sizeof("HTTP_USER_AGENT")-1);
+ }
+ if (http_user_agent == NULL) {
php_error_docref(NULL, E_WARNING, "HTTP_USER_AGENT variable is not set, cannot determine user agent name");
RETURN_FALSE;
}
- agent_name = Z_STRVAL_P(http_user_agent);
- agent_name_len = Z_STRLEN_P(http_user_agent);
+ agent_name = Z_STR_P(http_user_agent);
}
- lookup_browser_name = estrndup(agent_name, agent_name_len);
- php_strtolower(lookup_browser_name, agent_name_len);
+ lookup_browser_name = zend_string_tolower(agent_name);
+ found_entry = zend_hash_find_ptr(bdata->htab, lookup_browser_name);
+ if (found_entry == NULL) {
+ zend_hash_apply_with_arguments(bdata->htab, browser_reg_compare, 2, lookup_browser_name, &found_entry);
- if ((agent = zend_hash_str_find(bdata->htab, lookup_browser_name, agent_name_len)) == NULL) {
- ZVAL_UNDEF(&found_browser_entry);
- zend_hash_apply_with_arguments(bdata->htab, browser_reg_compare, 3, lookup_browser_name, agent_name_len, &found_browser_entry);
-
- if (Z_TYPE(found_browser_entry) != IS_UNDEF) {
- agent = &found_browser_entry;
- } else if ((agent = zend_hash_str_find(bdata->htab, DEFAULT_SECTION_NAME, sizeof(DEFAULT_SECTION_NAME)-1)) == NULL) {
- efree(lookup_browser_name);
- RETURN_FALSE;
+ if (found_entry == NULL) {
+ found_entry = zend_hash_str_find_ptr(bdata->htab,
+ DEFAULT_SECTION_NAME, sizeof(DEFAULT_SECTION_NAME)-1);
+ if (found_entry == NULL) {
+ efree(lookup_browser_name);
+ RETURN_FALSE;
+ }
}
}
+ agent_ht = browscap_entry_to_array(bdata, found_entry);
+
if (return_array) {
- RETVAL_ARR(zend_array_dup(Z_ARRVAL_P(agent)));
- }
- else {
- object_init(return_value);
- zend_hash_copy(Z_OBJPROP_P(return_value), Z_ARRVAL_P(agent), (copy_ctor_func_t) browscap_zval_copy_ctor);
+ RETVAL_ARR(agent_ht);
+ } else {
+ object_and_properties_init(return_value, zend_standard_class_def, agent_ht);
}
- while ((z_agent_name = zend_hash_str_find(Z_ARRVAL_P(agent), "parent", sizeof("parent")-1)) != NULL) {
- if ((agent = zend_hash_find(bdata->htab, Z_STR_P(z_agent_name))) == NULL) {
+ while (found_entry->parent) {
+ found_entry = zend_hash_find_ptr(bdata->htab, found_entry->parent);
+ if (found_entry == NULL) {
break;
}
+ agent_ht = browscap_entry_to_array(bdata, found_entry);
if (return_array) {
- zend_hash_merge(Z_ARRVAL_P(return_value), Z_ARRVAL_P(agent), (copy_ctor_func_t) browscap_zval_copy_ctor, 0);
- }
- else {
- zend_hash_merge(Z_OBJPROP_P(return_value), Z_ARRVAL_P(agent), (copy_ctor_func_t) browscap_zval_copy_ctor, 0);
+ zend_hash_merge(Z_ARRVAL_P(return_value), agent_ht, (copy_ctor_func_t) browscap_zval_copy_ctor, 0);
+ } else {
+ zend_hash_merge(Z_OBJPROP_P(return_value), agent_ht, (copy_ctor_func_t) browscap_zval_copy_ctor, 0);
}
+
+ zend_hash_destroy(agent_ht);
+ efree(agent_ht);
}
- efree(lookup_browser_name);
+ zend_string_release(lookup_browser_name);
}
/* }}} */
diff --git a/ext/standard/crypt.c b/ext/standard/crypt.c
index f905981cfb..f1b713ffaf 100644
--- a/ext/standard/crypt.c
+++ b/ext/standard/crypt.c
@@ -129,12 +129,12 @@ PHPAPI zend_string *php_crypt(const char *password, const int pass_len, const ch
crypt_res = php_sha512_crypt_r(password, salt, output, PHP_MAX_SALT_LEN);
if (!crypt_res) {
- memset(output, 0, PHP_MAX_SALT_LEN);
+ ZEND_SECURE_ZERO(output, PHP_MAX_SALT_LEN);
efree(output);
return NULL;
} else {
result = zend_string_init(output, strlen(output), 0);
- memset(output, 0, PHP_MAX_SALT_LEN);
+ ZEND_SECURE_ZERO(output, PHP_MAX_SALT_LEN);
efree(output);
return result;
}
@@ -144,12 +144,12 @@ PHPAPI zend_string *php_crypt(const char *password, const int pass_len, const ch
crypt_res = php_sha256_crypt_r(password, salt, output, PHP_MAX_SALT_LEN);
if (!crypt_res) {
- memset(output, 0, PHP_MAX_SALT_LEN);
+ ZEND_SECURE_ZERO(output, PHP_MAX_SALT_LEN);
efree(output);
return NULL;
} else {
result = zend_string_init(output, strlen(output), 0);
- memset(output, 0, PHP_MAX_SALT_LEN);
+ ZEND_SECURE_ZERO(output, PHP_MAX_SALT_LEN);
efree(output);
return result;
}
diff --git a/ext/standard/pack.c b/ext/standard/pack.c
index cd759acbea..680e67c5c0 100644
--- a/ext/standard/pack.c
+++ b/ext/standard/pack.c
@@ -97,8 +97,132 @@ static void php_pack(zval *val, size_t size, int *map, char *output)
}
/* }}} */
+/* {{{ php_pack_reverse_int32
+ */
+static inline uint32_t php_pack_reverse_int32(uint32_t arg)
+{
+ uint32_t result;
+ result = ((arg & 0xFF) << 24) | ((arg & 0xFF00) << 8) | ((arg >> 8) & 0xFF00) | ((arg >> 24) & 0xFF);
+
+ return result;
+}
+/* }}} */
+
+/* {{{ php_pack
+ */
+static inline uint64_t php_pack_reverse_int64(uint64_t arg)
+{
+ union Swap64 {
+ uint64_t i;
+ uint32_t ul[2];
+ } tmp, result;
+ tmp.i = arg;
+ result.ul[0] = php_pack_reverse_int32(tmp.ul[1]);
+ result.ul[1] = php_pack_reverse_int32(tmp.ul[0]);
+
+ return result.i;
+}
+/* }}} */
+
+/* {{{ php_pack_copy_float
+ */
+static void php_pack_copy_float(int is_little_endian, void * dst, float f)
+{
+ union Copy32 {
+ float f;
+ uint32_t i;
+ } m;
+ m.f = f;
+
+#ifdef WORDS_BIGENDIAN
+ if (is_little_endian) {
+ m.i = php_pack_reverse_int32(m.i);
+ }
+#else /* WORDS_BIGENDIAN */
+ if (!is_little_endian) {
+ m.i = php_pack_reverse_int32(m.i);
+ }
+#endif /* WORDS_BIGENDIAN */
+
+ memcpy(dst, &m.f, sizeof(float));
+}
+/* }}} */
+
+/* {{{ php_pack_copy_double
+ */
+static void php_pack_copy_double(int is_little_endian, void * dst, double d)
+{
+ union Copy64 {
+ double d;
+ uint64_t i;
+ } m;
+ m.d = d;
+
+#ifdef WORDS_BIGENDIAN
+ if (is_little_endian) {
+ m.i = php_pack_reverse_int64(m.i);
+ }
+#else /* WORDS_BIGENDIAN */
+ if (!is_little_endian) {
+ m.i = php_pack_reverse_int64(m.i);
+ }
+#endif /* WORDS_BIGENDIAN */
+
+ memcpy(dst, &m.d, sizeof(double));
+}
+/* }}} */
+
+/* {{{ php_pack_parse_float
+ */
+static float php_pack_parse_float(int is_little_endian, void * src)
+{
+ union Copy32 {
+ float f;
+ uint32_t i;
+ } m;
+ memcpy(&m.i, src, sizeof(float));
+
+#ifdef WORDS_BIGENDIAN
+ if (is_little_endian) {
+ m.i = php_pack_reverse_int32(m.i);
+ }
+#else /* WORDS_BIGENDIAN */
+ if (!is_little_endian) {
+ m.i = php_pack_reverse_int32(m.i);
+ }
+#endif /* WORDS_BIGENDIAN */
+
+ return m.f;
+}
+/* }}} */
+
+/* {{{ php_pack_parse_double
+ */
+static double php_pack_parse_double(int is_little_endian, void * src)
+{
+ union Copy64 {
+ double d;
+ uint64_t i;
+ } m;
+ memcpy(&m.i, src, sizeof(double));
+
+#ifdef WORDS_BIGENDIAN
+ if (is_little_endian) {
+ m.i = php_pack_reverse_int64(m.i);
+ }
+#else /* WORDS_BIGENDIAN */
+ if (!is_little_endian) {
+ m.i = php_pack_reverse_int64(m.i);
+ }
+#endif /* WORDS_BIGENDIAN */
+
+ return m.d;
+}
+/* }}} */
+
/* pack() idea stolen from Perl (implemented formats behave the same as there except J and P)
* Implemented formats are Z, A, a, h, H, c, C, s, S, i, I, l, L, n, N, q, Q, J, P, f, d, x, X, @.
+ * Added g, G for little endian float and big endian float, added e, E for little endian double and big endian double.
*/
/* {{{ proto string pack(string format, mixed arg1 [, mixed arg2 [, mixed ...]])
Takes one or more arguments and packs them into a binary string according to the format argument */
@@ -210,8 +334,12 @@ PHP_FUNCTION(pack)
case 'N':
case 'v':
case 'V':
- case 'f':
- case 'd':
+ case 'f': /* float */
+ case 'g': /* little endian float */
+ case 'G': /* big endian float */
+ case 'd': /* double */
+ case 'e': /* little endian double */
+ case 'E': /* big endian double */
if (arg < 0) {
arg = num_args - currentarg;
}
@@ -289,11 +417,15 @@ PHP_FUNCTION(pack)
break;
#endif
- case 'f':
+ case 'f': /* float */
+ case 'g': /* little endian float */
+ case 'G': /* big endian float */
INC_OUTPUTPOS(arg,sizeof(float))
break;
- case 'd':
+ case 'd': /* double */
+ case 'e': /* little endian double */
+ case 'E': /* big endian double */
INC_OUTPUTPOS(arg,sizeof(double))
break;
@@ -468,6 +600,26 @@ PHP_FUNCTION(pack)
}
break;
}
+
+ case 'g': {
+ /* pack little endian float */
+ while (arg-- > 0) {
+ float v = (float) zval_get_double(&argv[currentarg++]);
+ php_pack_copy_float(1, &ZSTR_VAL(output)[outputpos], v);
+ outputpos += sizeof(v);
+ }
+
+ break;
+ }
+ case 'G': {
+ /* pack big endian float */
+ while (arg-- > 0) {
+ float v = (float) zval_get_double(&argv[currentarg++]);
+ php_pack_copy_float(0, &ZSTR_VAL(output)[outputpos], v);
+ outputpos += sizeof(v);
+ }
+ break;
+ }
case 'd': {
while (arg-- > 0) {
@@ -477,6 +629,26 @@ PHP_FUNCTION(pack)
}
break;
}
+
+ case 'e': {
+ /* pack little endian double */
+ while (arg-- > 0) {
+ double v = (double) zval_get_double(&argv[currentarg++]);
+ php_pack_copy_double(1, &ZSTR_VAL(output)[outputpos], v);
+ outputpos += sizeof(v);
+ }
+ break;
+ }
+
+ case 'E': {
+ /* pack big endian double */
+ while (arg-- > 0) {
+ double v = (double) zval_get_double(&argv[currentarg++]);
+ php_pack_copy_double(0, &ZSTR_VAL(output)[outputpos], v);
+ outputpos += sizeof(v);
+ }
+ break;
+ }
case 'x':
memset(&ZSTR_VAL(output)[outputpos], '\0', arg);
@@ -537,6 +709,7 @@ static zend_long php_unpack(char *data, size_t size, int issigned, int *map)
* Numeric pack types will return numbers, a and A will return strings,
* f and d will return doubles.
* Implemented formats are Z, A, a, h, H, c, C, s, S, i, I, l, L, n, N, q, Q, J, P, f, d, x, X, @.
+ * Added g, G for little endian float and big endian float, added e, E for little endian double and big endian double.
*/
/* {{{ proto array unpack(string format, string input)
Unpack binary string into named array elements according to format argument */
@@ -679,11 +852,15 @@ PHP_FUNCTION(unpack)
/* Use sizeof(float) bytes of input */
case 'f':
+ case 'g':
+ case 'G':
size = sizeof(float);
break;
/* Use sizeof(double) bytes of input */
case 'd':
+ case 'e':
+ case 'E':
size = sizeof(double);
break;
@@ -939,18 +1116,37 @@ PHP_FUNCTION(unpack)
}
#endif
- case 'f': {
+ case 'f': /* float */
+ case 'g': /* little endian float*/
+ case 'G': /* big endian float*/
+ {
float v;
- memcpy(&v, &input[inputpos], sizeof(float));
+ if (type == 'g') {
+ v = php_pack_parse_float(1, &input[inputpos]);
+ } else if (type == 'G') {
+ v = php_pack_parse_float(0, &input[inputpos]);
+ } else {
+ memcpy(&v, &input[inputpos], sizeof(float));
+ }
+
add_assoc_double(return_value, n, (double)v);
break;
}
+
- case 'd': {
+ case 'd': /* double */
+ case 'e': /* little endian float */
+ case 'E': /* big endian float */
+ {
double v;
-
- memcpy(&v, &input[inputpos], sizeof(double));
+ if (type == 'e') {
+ v = php_pack_parse_double(1, &input[inputpos]);
+ } else if (type == 'E') {
+ v = php_pack_parse_double(0, &input[inputpos]);
+ } else {
+ memcpy(&v, &input[inputpos], sizeof(double));
+ }
add_assoc_double(return_value, n, v);
break;
}
diff --git a/ext/standard/php_crypt_r.c b/ext/standard/php_crypt_r.c
index ea2ea74fbe..4f0c26acc8 100644
--- a/ext/standard/php_crypt_r.c
+++ b/ext/standard/php_crypt_r.c
@@ -364,7 +364,7 @@ char * php_md5_crypt_r(const char *pw, const char *salt, char *out)
PHP_MD5Update(&ctx, final, (unsigned int)(pl > 16 ? 16 : pl));
/* Don't leave anything around in vm they could use. */
- memset(final, 0, sizeof(final));
+ ZEND_SECURE_ZERO(final, sizeof(final));
/* Then something really weird... */
for (i = pwl; i != 0; i >>= 1)
diff --git a/ext/standard/tests/misc/browscap_lite_2016_12_06.ini b/ext/standard/tests/misc/browscap_lite_2016_12_06.ini
new file mode 100644
index 0000000000..8f91165977
--- /dev/null
+++ b/ext/standard/tests/misc/browscap_lite_2016_12_06.ini
@@ -0,0 +1,11018 @@
+;;; Provided courtesy of http://browscap.org/
+;;; Created on Tuesday, December 6, 2016 at 12:42 AM UTC
+;;; Keep up with the latest goings-on with the project:
+;;; Follow us on Twitter <https://twitter.com/browscap>, or...
+;;; Like us on Facebook <https://facebook.com/browscap>, or...
+;;; Collaborate on GitHub <https://github.com/browscap>, or...
+;;; Discuss on Google Groups <https://groups.google.com/forum/#!forum/browscap>.
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Browscap Version
+
+[GJK_Browscap_Version]
+Version=6019
+Released=Tue, 06 Dec 2016 00:42:57 +0000
+Format=php
+Type=LITE
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; DefaultProperties
+
+[DefaultProperties]
+Comment="DefaultProperties"
+Browser="DefaultProperties"
+Version="0.0"
+Platform="unknown"
+isMobileDevice="false"
+isTablet="false"
+Device_Type="unknown"
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Chromium 55.0
+
+[Chromium 55.0]
+Parent="DefaultProperties"
+Comment="Chromium 55.0"
+Browser="Chromium"
+Version="55.0"
+Platform="Linux"
+Device_Type="Desktop"
+
+[Mozilla/5.0 (SMART-TV; X11; Linux armv7l) AppleWebkit/* (KHTML* like Gecko) Chromium/55.*Chrome/*Safari/*]
+Parent="Chromium 55.0"
+Device_Type="TV Device"
+
+[Mozilla/5.0 (*Linux*) AppleWebKit/* (KHTML* like Gecko)*Chromium/55.*Chrome/*Safari/*]
+Parent="Chromium 55.0"
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Chromium 54.0
+
+[Chromium 54.0]
+Parent="DefaultProperties"
+Comment="Chromium 54.0"
+Browser="Chromium"
+Version="54.0"
+Platform="Linux"
+Device_Type="Desktop"
+
+[Mozilla/5.0 (SMART-TV; X11; Linux armv7l) AppleWebkit/* (KHTML* like Gecko) Chromium/54.*Chrome/*Safari/*]
+Parent="Chromium 54.0"
+Device_Type="TV Device"
+
+[Mozilla/5.0 (*Linux*) AppleWebKit/* (KHTML* like Gecko)*Chromium/54.*Chrome/*Safari/*]
+Parent="Chromium 54.0"
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Chromium 53.0
+
+[Chromium 53.0]
+Parent="DefaultProperties"
+Comment="Chromium 53.0"
+Browser="Chromium"
+Version="53.0"
+Platform="Linux"
+Device_Type="Desktop"
+
+[Mozilla/5.0 (SMART-TV; X11; Linux armv7l) AppleWebkit/* (KHTML* like Gecko) Chromium/53.*Chrome/*Safari/*]
+Parent="Chromium 53.0"
+Device_Type="TV Device"
+
+[Mozilla/5.0 (*Linux*) AppleWebKit/* (KHTML* like Gecko)*Chromium/53.*Chrome/*Safari/*]
+Parent="Chromium 53.0"
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Chromium 52.0
+
+[Chromium 52.0]
+Parent="DefaultProperties"
+Comment="Chromium 52.0"
+Browser="Chromium"
+Version="52.0"
+Platform="Linux"
+Device_Type="Desktop"
+
+[Mozilla/5.0 (SMART-TV; X11; Linux armv7l) AppleWebkit/* (KHTML* like Gecko) Chromium/52.*Chrome/*Safari/*]
+Parent="Chromium 52.0"
+Device_Type="TV Device"
+
+[Mozilla/5.0 (*Linux*) AppleWebKit/* (KHTML* like Gecko)*Chromium/52.*Chrome/*Safari/*]
+Parent="Chromium 52.0"
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Chromium 51.0
+
+[Chromium 51.0]
+Parent="DefaultProperties"
+Comment="Chromium 51.0"
+Browser="Chromium"
+Version="51.0"
+Platform="Linux"
+Device_Type="Desktop"
+
+[Mozilla/5.0 (SMART-TV; X11; Linux armv7l) AppleWebkit/* (KHTML* like Gecko) Chromium/51.*Chrome/*Safari/*]
+Parent="Chromium 51.0"
+Device_Type="TV Device"
+
+[Mozilla/5.0 (*Linux*) AppleWebKit/* (KHTML* like Gecko)*Chromium/51.*Chrome/*Safari/*]
+Parent="Chromium 51.0"
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Chromium 50.0
+
+[Chromium 50.0]
+Parent="DefaultProperties"
+Comment="Chromium 50.0"
+Browser="Chromium"
+Version="50.0"
+Platform="Linux"
+Device_Type="Desktop"
+
+[Mozilla/5.0 (SMART-TV; X11; Linux armv7l) AppleWebkit/* (KHTML* like Gecko) Chromium/50.*Chrome/*Safari/*]
+Parent="Chromium 50.0"
+Device_Type="TV Device"
+
+[Mozilla/5.0 (*Linux*) AppleWebKit/* (KHTML* like Gecko)*Chromium/50.*Chrome/*Safari/*]
+Parent="Chromium 50.0"
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Chromium 49.0
+
+[Chromium 49.0]
+Parent="DefaultProperties"
+Comment="Chromium 49.0"
+Browser="Chromium"
+Version="49.0"
+Platform="Linux"
+Device_Type="Desktop"
+
+[Mozilla/5.0 (SMART-TV; X11; Linux armv7l) AppleWebkit/* (KHTML* like Gecko) Chromium/49.*Chrome/*Safari/*]
+Parent="Chromium 49.0"
+Device_Type="TV Device"
+
+[Mozilla/5.0 (*Linux*) AppleWebKit/* (KHTML* like Gecko)*Chromium/49.*Chrome/*Safari/*]
+Parent="Chromium 49.0"
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Chromium 48.0
+
+[Chromium 48.0]
+Parent="DefaultProperties"
+Comment="Chromium 48.0"
+Browser="Chromium"
+Version="48.0"
+Platform="Linux"
+Device_Type="Desktop"
+
+[Mozilla/5.0 (SMART-TV; X11; Linux armv7l) AppleWebkit/* (KHTML* like Gecko) Chromium/48.*Chrome/*Safari/*]
+Parent="Chromium 48.0"
+Device_Type="TV Device"
+
+[Mozilla/5.0 (*Linux*) AppleWebKit/* (KHTML* like Gecko)*Chromium/48.*Chrome/*Safari/*]
+Parent="Chromium 48.0"
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Chromium 47.0
+
+[Chromium 47.0]
+Parent="DefaultProperties"
+Comment="Chromium 47.0"
+Browser="Chromium"
+Version="47.0"
+Platform="Linux"
+Device_Type="Desktop"
+
+[Mozilla/5.0 (SMART-TV; X11; Linux armv7l) AppleWebkit/* (KHTML* like Gecko) Chromium/47.*Chrome/*Safari/*]
+Parent="Chromium 47.0"
+Device_Type="TV Device"
+
+[Mozilla/5.0 (*Linux*) AppleWebKit/* (KHTML* like Gecko)*Chromium/47.*Chrome/*Safari/*]
+Parent="Chromium 47.0"
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Chromium 46.0
+
+[Chromium 46.0]
+Parent="DefaultProperties"
+Comment="Chromium 46.0"
+Browser="Chromium"
+Version="46.0"
+Platform="Linux"
+Device_Type="Desktop"
+
+[Mozilla/5.0 (SMART-TV; X11; Linux armv7l) AppleWebkit/* (KHTML* like Gecko) Chromium/46.*Chrome/*Safari/*]
+Parent="Chromium 46.0"
+Device_Type="TV Device"
+
+[Mozilla/5.0 (*Linux*) AppleWebKit/* (KHTML* like Gecko)*Chromium/46.*Chrome/*Safari/*]
+Parent="Chromium 46.0"
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Chromium 45.0
+
+[Chromium 45.0]
+Parent="DefaultProperties"
+Comment="Chromium 45.0"
+Browser="Chromium"
+Version="45.0"
+Platform="Linux"
+Device_Type="Desktop"
+
+[Mozilla/5.0 (SMART-TV; X11; Linux armv7l) AppleWebkit/* (KHTML* like Gecko) Chromium/45.*Chrome/*Safari/*]
+Parent="Chromium 45.0"
+Device_Type="TV Device"
+
+[Mozilla/5.0 (*Linux*) AppleWebKit/* (KHTML* like Gecko)*Chromium/45.*Chrome/*Safari/*]
+Parent="Chromium 45.0"
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Android WebView 5.0
+
+[Android WebView 5.0]
+Parent="DefaultProperties"
+Comment="Android WebView 5.0"
+Browser="Android WebView"
+Version="5.0"
+Platform="Android"
+isMobileDevice="true"
+Device_Type="Mobile Phone"
+
+[*Mozilla/5.0 (*Linux*Android*) AppleWebKit/*KHTML* like Gecko) Version/5.0*Chrome*Safari*]
+Parent="Android WebView 5.0"
+
+[Mozilla/5.0 (*Linux*Android* Build/*) AppleWebKit/* (KHTML,*like Gecko*) Version/5.0*Chrome*Safari*]
+Parent="Android WebView 5.0"
+
+[Mozilla/5.0 (*Linux*Android*)*AppleWebKit/*(*KHTML* like Gecko*)*Version/5.0*Chrome*Safari*]
+Parent="Android WebView 5.0"
+
+[Mozilla/5.0 (*Linux*Android*) AppleWebKit*(KTHML,like Gecko)*Version/5.0*Chrome*Safari*]
+Parent="Android WebView 5.0"
+isTablet="true"
+Device_Type="Tablet"
+
+[Mozilla/5.0 (*Linux*Android*) AppleWebKit* (KHMTL,*like Gecko*)*Version/5.0*Chrome*Safari*]
+Parent="Android WebView 5.0"
+
+[Mozilla/5.0 (*Linux*Android*)*AppleWebKit* (KHTML,*likeGecko*)*Version/5.0*Chrome*Safari*]
+Parent="Android WebView 5.0"
+
+[Mozilla/5.0(*Linux*Android*)*AppleWebKit/*(KHTML,*like Gecko*)*Version/5.0*Chrome*Safari*]
+Parent="Android WebView 5.0"
+
+[Mozilla/5.0 (*Linux*Android* Build/*) AppleWebKit/* (KHTML,*like Gecko*) Version/5.0*Safari*Chrome*]
+Parent="Android WebView 5.0"
+
+[Mozilla/5.0 (*Linux*Android*)*AppleWebKit/*(*KHTML* like Gecko*)*Version/5.0*Safari*Chrome*]
+Parent="Android WebView 5.0"
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Android WebView 4.4
+
+[Android WebView 4.4]
+Parent="DefaultProperties"
+Comment="Android WebView 4.4"
+Browser="Android WebView"
+Version="4.4"
+Platform="Android"
+isMobileDevice="true"
+Device_Type="Mobile Phone"
+
+[*Mozilla/5.0 (*Linux*Android*) AppleWebKit/*KHTML* like Gecko) Version/4.4*Chrome*Safari*]
+Parent="Android WebView 4.4"
+
+[Mozilla/5.0 (*Linux*Android* Build/*) AppleWebKit/* (KHTML,*like Gecko*) Version/4.4*Chrome*Safari*]
+Parent="Android WebView 4.4"
+
+[Mozilla/5.0 (*Linux*Android*)*AppleWebKit/*(*KHTML* like Gecko*)*Version/4.4*Chrome*Safari*]
+Parent="Android WebView 4.4"
+
+[Mozilla/5.0 (*Linux*Android*) AppleWebKit*(KTHML,like Gecko)*Version/4.4*Chrome*Safari*]
+Parent="Android WebView 4.4"
+isTablet="true"
+Device_Type="Tablet"
+
+[Mozilla/5.0 (*Linux*Android*) AppleWebKit* (KHMTL,*like Gecko*)*Version/4.4*Chrome*Safari*]
+Parent="Android WebView 4.4"
+
+[Mozilla/5.0 (*Linux*Android*)*AppleWebKit* (KHTML,*likeGecko*)*Version/4.4*Chrome*Safari*]
+Parent="Android WebView 4.4"
+
+[Mozilla/5.0(*Linux*Android*)*AppleWebKit/*(KHTML,*like Gecko*)*Version/4.4*Chrome*Safari*]
+Parent="Android WebView 4.4"
+
+[Mozilla/5.0 (*Linux*Android* Build/*) AppleWebKit/* (KHTML,*like Gecko*) Version/4.4*Safari*Chrome*]
+Parent="Android WebView 4.4"
+
+[Mozilla/5.0 (*Linux*Android*)*AppleWebKit/*(*KHTML* like Gecko*)*Version/4.4*Safari*Chrome*]
+Parent="Android WebView 4.4"
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Android WebView 4.3
+
+[Android WebView 4.3]
+Parent="DefaultProperties"
+Comment="Android WebView 4.3"
+Browser="Android WebView"
+Version="4.3"
+Platform="Android"
+isMobileDevice="true"
+Device_Type="Mobile Phone"
+
+[*Mozilla/5.0 (*Linux*Android*) AppleWebKit/*KHTML* like Gecko) Version/4.3*Chrome*Safari*]
+Parent="Android WebView 4.3"
+
+[Mozilla/5.0 (*Linux*Android* Build/*) AppleWebKit/* (KHTML,*like Gecko*) Version/4.3*Chrome*Safari*]
+Parent="Android WebView 4.3"
+
+[Mozilla/5.0 (*Linux*Android*)*AppleWebKit/*(*KHTML* like Gecko*)*Version/4.3*Chrome*Safari*]
+Parent="Android WebView 4.3"
+
+[Mozilla/5.0 (*Linux*Android*) AppleWebKit*(KTHML,like Gecko)*Version/4.3*Chrome*Safari*]
+Parent="Android WebView 4.3"
+isTablet="true"
+Device_Type="Tablet"
+
+[Mozilla/5.0 (*Linux*Android*) AppleWebKit* (KHMTL,*like Gecko*)*Version/4.3*Chrome*Safari*]
+Parent="Android WebView 4.3"
+
+[Mozilla/5.0 (*Linux*Android*)*AppleWebKit* (KHTML,*likeGecko*)*Version/4.3*Chrome*Safari*]
+Parent="Android WebView 4.3"
+
+[Mozilla/5.0(*Linux*Android*)*AppleWebKit/*(KHTML,*like Gecko*)*Version/4.3*Chrome*Safari*]
+Parent="Android WebView 4.3"
+
+[Mozilla/5.0 (*Linux*Android* Build/*) AppleWebKit/* (KHTML,*like Gecko*) Version/4.3*Safari*Chrome*]
+Parent="Android WebView 4.3"
+
+[Mozilla/5.0 (*Linux*Android*)*AppleWebKit/*(*KHTML* like Gecko*)*Version/4.3*Safari*Chrome*]
+Parent="Android WebView 4.3"
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Android WebView 4.2
+
+[Android WebView 4.2]
+Parent="DefaultProperties"
+Comment="Android WebView 4.2"
+Browser="Android WebView"
+Version="4.2"
+Platform="Android"
+isMobileDevice="true"
+Device_Type="Mobile Phone"
+
+[*Mozilla/5.0 (*Linux*Android*) AppleWebKit/*KHTML* like Gecko) Version/4.2*Chrome*Safari*]
+Parent="Android WebView 4.2"
+
+[Mozilla/5.0 (*Linux*Android* Build/*) AppleWebKit/* (KHTML,*like Gecko*) Version/4.2*Chrome*Safari*]
+Parent="Android WebView 4.2"
+
+[Mozilla/5.0 (*Linux*Android*)*AppleWebKit/*(*KHTML* like Gecko*)*Version/4.2*Chrome*Safari*]
+Parent="Android WebView 4.2"
+
+[Mozilla/5.0 (*Linux*Android*) AppleWebKit*(KTHML,like Gecko)*Version/4.2*Chrome*Safari*]
+Parent="Android WebView 4.2"
+isTablet="true"
+Device_Type="Tablet"
+
+[Mozilla/5.0 (*Linux*Android*) AppleWebKit* (KHMTL,*like Gecko*)*Version/4.2*Chrome*Safari*]
+Parent="Android WebView 4.2"
+
+[Mozilla/5.0 (*Linux*Android*)*AppleWebKit* (KHTML,*likeGecko*)*Version/4.2*Chrome*Safari*]
+Parent="Android WebView 4.2"
+
+[Mozilla/5.0(*Linux*Android*)*AppleWebKit/*(KHTML,*like Gecko*)*Version/4.2*Chrome*Safari*]
+Parent="Android WebView 4.2"
+
+[Mozilla/5.0 (*Linux*Android* Build/*) AppleWebKit/* (KHTML,*like Gecko*) Version/4.2*Safari*Chrome*]
+Parent="Android WebView 4.2"
+
+[Mozilla/5.0 (*Linux*Android*)*AppleWebKit/*(*KHTML* like Gecko*)*Version/4.2*Safari*Chrome*]
+Parent="Android WebView 4.2"
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Android WebView 4.1
+
+[Android WebView 4.1]
+Parent="DefaultProperties"
+Comment="Android WebView 4.1"
+Browser="Android WebView"
+Version="4.1"
+Platform="Android"
+isMobileDevice="true"
+Device_Type="Mobile Phone"
+
+[*Mozilla/5.0 (*Linux*Android*) AppleWebKit/*KHTML* like Gecko) Version/4.1*Chrome*Safari*]
+Parent="Android WebView 4.1"
+
+[Mozilla/5.0 (*Linux*Android* Build/*) AppleWebKit/* (KHTML,*like Gecko*) Version/4.1*Chrome*Safari*]
+Parent="Android WebView 4.1"
+
+[Mozilla/5.0 (*Linux*Android*)*AppleWebKit/*(*KHTML* like Gecko*)*Version/4.1*Chrome*Safari*]
+Parent="Android WebView 4.1"
+
+[Mozilla/5.0 (*Linux*Android*) AppleWebKit*(KTHML,like Gecko)*Version/4.1*Chrome*Safari*]
+Parent="Android WebView 4.1"
+isTablet="true"
+Device_Type="Tablet"
+
+[Mozilla/5.0 (*Linux*Android*) AppleWebKit* (KHMTL,*like Gecko*)*Version/4.1*Chrome*Safari*]
+Parent="Android WebView 4.1"
+
+[Mozilla/5.0 (*Linux*Android*)*AppleWebKit* (KHTML,*likeGecko*)*Version/4.1*Chrome*Safari*]
+Parent="Android WebView 4.1"
+
+[Mozilla/5.0(*Linux*Android*)*AppleWebKit/*(KHTML,*like Gecko*)*Version/4.1*Chrome*Safari*]
+Parent="Android WebView 4.1"
+
+[Mozilla/5.0 (*Linux*Android* Build/*) AppleWebKit/* (KHTML,*like Gecko*) Version/4.1*Safari*Chrome*]
+Parent="Android WebView 4.1"
+
+[Mozilla/5.0 (*Linux*Android*)*AppleWebKit/*(*KHTML* like Gecko*)*Version/4.1*Safari*Chrome*]
+Parent="Android WebView 4.1"
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Android WebView 4.0
+
+[Android WebView 4.0]
+Parent="DefaultProperties"
+Comment="Android WebView 4.0"
+Browser="Android WebView"
+Version="4.0"
+Platform="Android"
+isMobileDevice="true"
+Device_Type="Mobile Phone"
+
+[*Mozilla/5.0 (*Linux*Android*) AppleWebKit/*KHTML* like Gecko) Version/4.0*Chrome*Safari*]
+Parent="Android WebView 4.0"
+
+[Mozilla/5.0 (*Linux*Android* Build/*) AppleWebKit/* (KHTML,*like Gecko*) Version/4.0*Chrome*Safari*]
+Parent="Android WebView 4.0"
+
+[Mozilla/5.0 (*Linux*Android*)*AppleWebKit/*(*KHTML* like Gecko*)*Version/4.0*Chrome*Safari*]
+Parent="Android WebView 4.0"
+
+[Mozilla/5.0 (*Linux*Android*) AppleWebKit*(KTHML,like Gecko)*Version/4.0*Chrome*Safari*]
+Parent="Android WebView 4.0"
+isTablet="true"
+Device_Type="Tablet"
+
+[Mozilla/5.0 (*Linux*Android*) AppleWebKit* (KHMTL,*like Gecko*)*Version/4.0*Chrome*Safari*]
+Parent="Android WebView 4.0"
+
+[Mozilla/5.0 (*Linux*Android*)*AppleWebKit* (KHTML,*likeGecko*)*Version/4.0*Chrome*Safari*]
+Parent="Android WebView 4.0"
+
+[Mozilla/5.0(*Linux*Android*)*AppleWebKit/*(KHTML,*like Gecko*)*Version/4.0*Chrome*Safari*]
+Parent="Android WebView 4.0"
+
+[Mozilla/5.0 (*Linux*Android* Build/*) AppleWebKit/* (KHTML,*like Gecko*) Version/4.0*Safari*Chrome*]
+Parent="Android WebView 4.0"
+
+[Mozilla/5.0 (*Linux*Android*)*AppleWebKit/*(*KHTML* like Gecko*)*Version/4.0*Safari*Chrome*]
+Parent="Android WebView 4.0"
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Android WebView 2.1
+
+[Android WebView 2.1]
+Parent="DefaultProperties"
+Comment="Android WebView 2.1"
+Browser="Android WebView"
+Version="2.1"
+Platform="Android"
+isMobileDevice="true"
+Device_Type="Mobile Phone"
+
+[*Mozilla/5.0 (*Linux*Android*) AppleWebKit/*KHTML* like Gecko) Version/2.1*Chrome*Safari*]
+Parent="Android WebView 2.1"
+
+[Mozilla/5.0 (*Linux*Android* Build/*) AppleWebKit/* (KHTML,*like Gecko*) Version/2.1*Chrome*Safari*]
+Parent="Android WebView 2.1"
+
+[Mozilla/5.0 (*Linux*Android*)*AppleWebKit/*(*KHTML* like Gecko*)*Version/2.1*Chrome*Safari*]
+Parent="Android WebView 2.1"
+
+[Mozilla/5.0 (*Linux*Android*) AppleWebKit*(KTHML,like Gecko)*Version/2.1*Chrome*Safari*]
+Parent="Android WebView 2.1"
+isTablet="true"
+Device_Type="Tablet"
+
+[Mozilla/5.0 (*Linux*Android*) AppleWebKit* (KHMTL,*like Gecko*)*Version/2.1*Chrome*Safari*]
+Parent="Android WebView 2.1"
+
+[Mozilla/5.0 (*Linux*Android*)*AppleWebKit* (KHTML,*likeGecko*)*Version/2.1*Chrome*Safari*]
+Parent="Android WebView 2.1"
+
+[Mozilla/5.0(*Linux*Android*)*AppleWebKit/*(KHTML,*like Gecko*)*Version/2.1*Chrome*Safari*]
+Parent="Android WebView 2.1"
+
+[Mozilla/5.0 (*Linux*Android* Build/*) AppleWebKit/* (KHTML,*like Gecko*) Version/2.1*Safari*Chrome*]
+Parent="Android WebView 2.1"
+
+[Mozilla/5.0 (*Linux*Android*)*AppleWebKit/*(*KHTML* like Gecko*)*Version/2.1*Safari*Chrome*]
+Parent="Android WebView 2.1"
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Android WebView 2.0
+
+[Android WebView 2.0]
+Parent="DefaultProperties"
+Comment="Android WebView 2.0"
+Browser="Android WebView"
+Version="2.0"
+Platform="Android"
+isMobileDevice="true"
+Device_Type="Mobile Phone"
+
+[*Mozilla/5.0 (*Linux*Android*) AppleWebKit/*KHTML* like Gecko) Version/2.0*Chrome*Safari*]
+Parent="Android WebView 2.0"
+
+[Mozilla/5.0 (*Linux*Android* Build/*) AppleWebKit/* (KHTML,*like Gecko*) Version/2.0*Chrome*Safari*]
+Parent="Android WebView 2.0"
+
+[Mozilla/5.0 (*Linux*Android*)*AppleWebKit/*(*KHTML* like Gecko*)*Version/2.0*Chrome*Safari*]
+Parent="Android WebView 2.0"
+
+[Mozilla/5.0 (*Linux*Android*) AppleWebKit*(KTHML,like Gecko)*Version/2.0*Chrome*Safari*]
+Parent="Android WebView 2.0"
+isTablet="true"
+Device_Type="Tablet"
+
+[Mozilla/5.0 (*Linux*Android*) AppleWebKit* (KHMTL,*like Gecko*)*Version/2.0*Chrome*Safari*]
+Parent="Android WebView 2.0"
+
+[Mozilla/5.0 (*Linux*Android*)*AppleWebKit* (KHTML,*likeGecko*)*Version/2.0*Chrome*Safari*]
+Parent="Android WebView 2.0"
+
+[Mozilla/5.0(*Linux*Android*)*AppleWebKit/*(KHTML,*like Gecko*)*Version/2.0*Chrome*Safari*]
+Parent="Android WebView 2.0"
+
+[Mozilla/5.0 (*Linux*Android* Build/*) AppleWebKit/* (KHTML,*like Gecko*) Version/2.0*Safari*Chrome*]
+Parent="Android WebView 2.0"
+
+[Mozilla/5.0 (*Linux*Android*)*AppleWebKit/*(*KHTML* like Gecko*)*Version/2.0*Safari*Chrome*]
+Parent="Android WebView 2.0"
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Android WebView 1.6
+
+[Android WebView 1.6]
+Parent="DefaultProperties"
+Comment="Android WebView 1.6"
+Browser="Android WebView"
+Version="1.6"
+Platform="Android"
+isMobileDevice="true"
+Device_Type="Mobile Phone"
+
+[*Mozilla/5.0 (*Linux*Android*) AppleWebKit/*KHTML* like Gecko) Version/1.6*Chrome*Safari*]
+Parent="Android WebView 1.6"
+
+[Mozilla/5.0 (*Linux*Android* Build/*) AppleWebKit/* (KHTML,*like Gecko*) Version/1.6*Chrome*Safari*]
+Parent="Android WebView 1.6"
+
+[Mozilla/5.0 (*Linux*Android*)*AppleWebKit/*(*KHTML* like Gecko*)*Version/1.6*Chrome*Safari*]
+Parent="Android WebView 1.6"
+
+[Mozilla/5.0 (*Linux*Android*) AppleWebKit*(KTHML,like Gecko)*Version/1.6*Chrome*Safari*]
+Parent="Android WebView 1.6"
+isTablet="true"
+Device_Type="Tablet"
+
+[Mozilla/5.0 (*Linux*Android*) AppleWebKit* (KHMTL,*like Gecko*)*Version/1.6*Chrome*Safari*]
+Parent="Android WebView 1.6"
+
+[Mozilla/5.0 (*Linux*Android*)*AppleWebKit* (KHTML,*likeGecko*)*Version/1.6*Chrome*Safari*]
+Parent="Android WebView 1.6"
+
+[Mozilla/5.0(*Linux*Android*)*AppleWebKit/*(KHTML,*like Gecko*)*Version/1.6*Chrome*Safari*]
+Parent="Android WebView 1.6"
+
+[Mozilla/5.0 (*Linux*Android* Build/*) AppleWebKit/* (KHTML,*like Gecko*) Version/1.6*Safari*Chrome*]
+Parent="Android WebView 1.6"
+
+[Mozilla/5.0 (*Linux*Android*)*AppleWebKit/*(*KHTML* like Gecko*)*Version/1.6*Safari*Chrome*]
+Parent="Android WebView 1.6"
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Android WebView 1.5
+
+[Android WebView 1.5]
+Parent="DefaultProperties"
+Comment="Android WebView 1.5"
+Browser="Android WebView"
+Version="1.5"
+Platform="Android"
+isMobileDevice="true"
+Device_Type="Mobile Phone"
+
+[*Mozilla/5.0 (*Linux*Android*) AppleWebKit/*KHTML* like Gecko) Version/1.5*Chrome*Safari*]
+Parent="Android WebView 1.5"
+
+[Mozilla/5.0 (*Linux*Android* Build/*) AppleWebKit/* (KHTML,*like Gecko*) Version/1.5*Chrome*Safari*]
+Parent="Android WebView 1.5"
+
+[Mozilla/5.0 (*Linux*Android*)*AppleWebKit/*(*KHTML* like Gecko*)*Version/1.5*Chrome*Safari*]
+Parent="Android WebView 1.5"
+
+[Mozilla/5.0 (*Linux*Android*) AppleWebKit*(KTHML,like Gecko)*Version/1.5*Chrome*Safari*]
+Parent="Android WebView 1.5"
+isTablet="true"
+Device_Type="Tablet"
+
+[Mozilla/5.0 (*Linux*Android*) AppleWebKit* (KHMTL,*like Gecko*)*Version/1.5*Chrome*Safari*]
+Parent="Android WebView 1.5"
+
+[Mozilla/5.0 (*Linux*Android*)*AppleWebKit* (KHTML,*likeGecko*)*Version/1.5*Chrome*Safari*]
+Parent="Android WebView 1.5"
+
+[Mozilla/5.0(*Linux*Android*)*AppleWebKit/*(KHTML,*like Gecko*)*Version/1.5*Chrome*Safari*]
+Parent="Android WebView 1.5"
+
+[Mozilla/5.0 (*Linux*Android* Build/*) AppleWebKit/* (KHTML,*like Gecko*) Version/1.5*Safari*Chrome*]
+Parent="Android WebView 1.5"
+
+[Mozilla/5.0 (*Linux*Android*)*AppleWebKit/*(*KHTML* like Gecko*)*Version/1.5*Safari*Chrome*]
+Parent="Android WebView 1.5"
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Android WebView 1.0
+
+[Android WebView 1.0]
+Parent="DefaultProperties"
+Comment="Android WebView 1.0"
+Browser="Android WebView"
+Version="1.0"
+Platform="Android"
+isMobileDevice="true"
+Device_Type="Mobile Phone"
+
+[Mozilla/5.0 (*Linux*Android* Build/*) AppleWebKit/* (KHTML,*like Gecko*)*Version/1.0*Chrome*Safari*]
+Parent="Android WebView 1.0"
+
+[Mozilla/5.0 (*Linux*Android*)*AppleWebKit/*(*KHTML* like Gecko*)*Version/1.0*Chrome*Safari*]
+Parent="Android WebView 1.0"
+
+[Mozilla/5.0 (*Linux*Android*) AppleWebKit*(KTHML,like Gecko)*Version/1.0*Chrome*Safari*]
+Parent="Android WebView 1.0"
+isTablet="true"
+Device_Type="Tablet"
+
+[Mozilla/5.0 (*Linux*Android*) AppleWebKit* (KHMTL,*like Gecko*)*Version/1.0*Chrome*Safari*]
+Parent="Android WebView 1.0"
+
+[Mozilla/5.0(*Linux*Android*) AppleWebKit/* (KHTML,*like Gecko*)*Version/1.0*Chrome*Safari*]
+Parent="Android WebView 1.0"
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Android WebView Generic
+
+[Android WebView Generic]
+Parent="DefaultProperties"
+Comment="Android WebView Generic"
+Browser="Android WebView"
+Platform="Android"
+isMobileDevice="true"
+Device_Type="Mobile Phone"
+
+[*Mozilla/5.0 (*Linux*Android*) AppleWebKit/*KHTML* like Gecko) Version/*Chrome*Safari*]
+Parent="Android WebView Generic"
+
+[Mozilla/5.0 (*Linux*Android* Build/*) AppleWebKit/* (KHTML,*like Gecko*) Version/*Chrome*Safari*]
+Parent="Android WebView Generic"
+
+[Mozilla/5.0 (*Linux*Android*)*AppleWebKit/*(*KHTML* like Gecko*)*Version/*Chrome*Safari*]
+Parent="Android WebView Generic"
+
+[Mozilla/5.0 (*Linux*Android*) AppleWebKit*(KTHML,like Gecko)*Version/*Chrome*Safari*]
+Parent="Android WebView Generic"
+
+[Mozilla/5.0 (*Linux*Android*) AppleWebKit* (KHMTL,*like Gecko*)*Version/*Chrome*Safari*]
+Parent="Android WebView Generic"
+
+[Mozilla/5.0 (*Linux*Android*)*AppleWebKit/*(*KHTML* like Gecko*)*Version/*Safari*Chrome*]
+Parent="Android WebView Generic"
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Opera 42.0
+
+[Opera 42.0]
+Parent="DefaultProperties"
+Comment="Opera 42.0"
+Browser="Opera"
+Version="42.0"
+Device_Type="Desktop"
+
+[Mozilla/5.0 (*Linux*) AppleWebKit/* (KHTML, like Gecko)*Chrome/*Safari/*OPR/42.0*]
+Parent="Opera 42.0"
+Platform="Linux"
+
+[Mozilla/5.0 (*Windows NT 6.0*) AppleWebKit/* (KHTML, like Gecko)*Chrome/*Safari/*OPR/42.0*]
+Parent="Opera 42.0"
+Platform="WinVista"
+
+[Mozilla/5.0 (*Windows NT 6.1*) AppleWebKit/* (KHTML, like Gecko)*Chrome/*Safari/*OPR/42.0*]
+Parent="Opera 42.0"
+Platform="Win7"
+
+[Mozilla/5.0 (*Windows NT 6.2*) AppleWebKit/* (KHTML, like Gecko)*Chrome/*Safari/*OPR/42.0*]
+Parent="Opera 42.0"
+Platform="Win8"
+
+[Mozilla/5.0 (*Windows NT 6.3*) AppleWebKit/* (KHTML, like Gecko)*Chrome/*Safari/*OPR/42.0*]
+Parent="Opera 42.0"
+Platform="Win8.1"
+
+[Mozilla/5.0 (*Windows NT 6.4*) AppleWebKit/* (KHTML, like Gecko)*Chrome/*Safari/*OPR/42.0*]
+Parent="Opera 42.0"
+Platform="Win10"
+
+[Mozilla/5.0 (*Windows NT 10.0*) AppleWebKit/* (KHTML, like Gecko)*Chrome/*Safari/*OPR/42.0*]
+Parent="Opera 42.0"
+Platform="Win10"
+
+[Mozilla/5.0 (*Mac OS X*) AppleWebKit/* (KHTML, like Gecko)*Chrome/*Safari/*OPR/42.0*]
+Parent="Opera 42.0"
+Platform="MacOSX"
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Opera 41.0
+
+[Opera 41.0]
+Parent="DefaultProperties"
+Comment="Opera 41.0"
+Browser="Opera"
+Version="41.0"
+Device_Type="Desktop"
+
+[Mozilla/5.0 (*Linux*) AppleWebKit/* (KHTML, like Gecko)*Chrome/*Safari/*OPR/41.0*]
+Parent="Opera 41.0"
+Platform="Linux"
+
+[Mozilla/5.0 (*Windows NT 6.0*) AppleWebKit/* (KHTML, like Gecko)*Chrome/*Safari/*OPR/41.0*]
+Parent="Opera 41.0"
+Platform="WinVista"
+
+[Mozilla/5.0 (*Windows NT 6.1*) AppleWebKit/* (KHTML, like Gecko)*Chrome/*Safari/*OPR/41.0*]
+Parent="Opera 41.0"
+Platform="Win7"
+
+[Mozilla/5.0 (*Windows NT 6.2*) AppleWebKit/* (KHTML, like Gecko)*Chrome/*Safari/*OPR/41.0*]
+Parent="Opera 41.0"
+Platform="Win8"
+
+[Mozilla/5.0 (*Windows NT 6.3*) AppleWebKit/* (KHTML, like Gecko)*Chrome/*Safari/*OPR/41.0*]
+Parent="Opera 41.0"
+Platform="Win8.1"
+
+[Mozilla/5.0 (*Windows NT 6.4*) AppleWebKit/* (KHTML, like Gecko)*Chrome/*Safari/*OPR/41.0*]
+Parent="Opera 41.0"
+Platform="Win10"
+
+[Mozilla/5.0 (*Windows NT 10.0*) AppleWebKit/* (KHTML, like Gecko)*Chrome/*Safari/*OPR/41.0*]
+Parent="Opera 41.0"
+Platform="Win10"
+
+[Mozilla/5.0 (*Mac OS X*) AppleWebKit/* (KHTML, like Gecko)*Chrome/*Safari/*OPR/41.0*]
+Parent="Opera 41.0"
+Platform="MacOSX"
+
+[Opera 40.0]
+Parent="DefaultProperties"
+Comment="Opera 40.0"
+Browser="Opera"
+Version="40.0"
+Device_Type="Desktop"
+
+[Mozilla/5.0 (*Linux*) AppleWebKit/* (KHTML, like Gecko)*Chrome/*Safari/*OPR/40.0*]
+Parent="Opera 40.0"
+Platform="Linux"
+
+[Mozilla/5.0 (*Windows NT 6.0*) AppleWebKit/* (KHTML, like Gecko)*Chrome/*Safari/*OPR/40.0*]
+Parent="Opera 40.0"
+Platform="WinVista"
+
+[Mozilla/5.0 (*Windows NT 6.1*) AppleWebKit/* (KHTML, like Gecko)*Chrome/*Safari/*OPR/40.0*]
+Parent="Opera 40.0"
+Platform="Win7"
+
+[Mozilla/5.0 (*Windows NT 6.2*) AppleWebKit/* (KHTML, like Gecko)*Chrome/*Safari/*OPR/40.0*]
+Parent="Opera 40.0"
+Platform="Win8"
+
+[Mozilla/5.0 (*Windows NT 6.3*) AppleWebKit/* (KHTML, like Gecko)*Chrome/*Safari/*OPR/40.0*]
+Parent="Opera 40.0"
+Platform="Win8.1"
+
+[Mozilla/5.0 (*Windows NT 6.4*) AppleWebKit/* (KHTML, like Gecko)*Chrome/*Safari/*OPR/40.0*]
+Parent="Opera 40.0"
+Platform="Win10"
+
+[Mozilla/5.0 (*Windows NT 10.0*) AppleWebKit/* (KHTML, like Gecko)*Chrome/*Safari/*OPR/40.0*]
+Parent="Opera 40.0"
+Platform="Win10"
+
+[Mozilla/5.0 (*Mac OS X*) AppleWebKit/* (KHTML, like Gecko)*Chrome/*Safari/*OPR/40.0*]
+Parent="Opera 40.0"
+Platform="MacOSX"
+
+[Opera 39.0]
+Parent="DefaultProperties"
+Comment="Opera 39.0"
+Browser="Opera"
+Version="39.0"
+Device_Type="Desktop"
+
+[Mozilla/5.0 (*Linux*) AppleWebKit/* (KHTML, like Gecko)*Chrome/*Safari/*OPR/39.0*]
+Parent="Opera 39.0"
+Platform="Linux"
+
+[Mozilla/5.0 (*Windows NT 6.0*) AppleWebKit/* (KHTML, like Gecko)*Chrome/*Safari/*OPR/39.0*]
+Parent="Opera 39.0"
+Platform="WinVista"
+
+[Mozilla/5.0 (*Windows NT 6.1*) AppleWebKit/* (KHTML, like Gecko)*Chrome/*Safari/*OPR/39.0*]
+Parent="Opera 39.0"
+Platform="Win7"
+
+[Mozilla/5.0 (*Windows NT 6.2*) AppleWebKit/* (KHTML, like Gecko)*Chrome/*Safari/*OPR/39.0*]
+Parent="Opera 39.0"
+Platform="Win8"
+
+[Mozilla/5.0 (*Windows NT 6.3*) AppleWebKit/* (KHTML, like Gecko)*Chrome/*Safari/*OPR/39.0*]
+Parent="Opera 39.0"
+Platform="Win8.1"
+
+[Mozilla/5.0 (*Windows NT 6.4*) AppleWebKit/* (KHTML, like Gecko)*Chrome/*Safari/*OPR/39.0*]
+Parent="Opera 39.0"
+Platform="Win10"
+
+[Mozilla/5.0 (*Windows NT 10.0*) AppleWebKit/* (KHTML, like Gecko)*Chrome/*Safari/*OPR/39.0*]
+Parent="Opera 39.0"
+Platform="Win10"
+
+[Mozilla/5.0 (*Mac OS X*) AppleWebKit/* (KHTML, like Gecko)*Chrome/*Safari/*OPR/39.0*]
+Parent="Opera 39.0"
+Platform="MacOSX"
+
+[Opera 38.0]
+Parent="DefaultProperties"
+Comment="Opera 38.0"
+Browser="Opera"
+Version="38.0"
+Device_Type="Desktop"
+
+[Mozilla/5.0 (*Linux*) AppleWebKit/* (KHTML, like Gecko)*Chrome/*Safari/*OPR/38.0*]
+Parent="Opera 38.0"
+Platform="Linux"
+
+[Mozilla/5.0 (*Windows NT 6.0*) AppleWebKit/* (KHTML, like Gecko)*Chrome/*Safari/*OPR/38.0*]
+Parent="Opera 38.0"
+Platform="WinVista"
+
+[Mozilla/5.0 (*Windows NT 6.1*) AppleWebKit/* (KHTML, like Gecko)*Chrome/*Safari/*OPR/38.0*]
+Parent="Opera 38.0"
+Platform="Win7"
+
+[Mozilla/5.0 (*Windows NT 6.2*) AppleWebKit/* (KHTML, like Gecko)*Chrome/*Safari/*OPR/38.0*]
+Parent="Opera 38.0"
+Platform="Win8"
+
+[Mozilla/5.0 (*Windows NT 6.3*) AppleWebKit/* (KHTML, like Gecko)*Chrome/*Safari/*OPR/38.0*]
+Parent="Opera 38.0"
+Platform="Win8.1"
+
+[Mozilla/5.0 (*Windows NT 6.4*) AppleWebKit/* (KHTML, like Gecko)*Chrome/*Safari/*OPR/38.0*]
+Parent="Opera 38.0"
+Platform="Win10"
+
+[Mozilla/5.0 (*Windows NT 10.0*) AppleWebKit/* (KHTML, like Gecko)*Chrome/*Safari/*OPR/38.0*]
+Parent="Opera 38.0"
+Platform="Win10"
+
+[Mozilla/5.0 (*Mac OS X*) AppleWebKit/* (KHTML, like Gecko)*Chrome/*Safari/*OPR/38.0*]
+Parent="Opera 38.0"
+Platform="MacOSX"
+
+[Opera 37.0]
+Parent="DefaultProperties"
+Comment="Opera 37.0"
+Browser="Opera"
+Version="37.0"
+Device_Type="Desktop"
+
+[Mozilla/5.0 (*Linux*) AppleWebKit/* (KHTML, like Gecko)*Chrome/*Safari/*OPR/37.0*]
+Parent="Opera 37.0"
+Platform="Linux"
+
+[Mozilla/5.0 (*Windows NT 6.0*) AppleWebKit/* (KHTML, like Gecko)*Chrome/*Safari/*OPR/37.0*]
+Parent="Opera 37.0"
+Platform="WinVista"
+
+[Mozilla/5.0 (*Windows NT 6.1*) AppleWebKit/* (KHTML, like Gecko)*Chrome/*Safari/*OPR/37.0*]
+Parent="Opera 37.0"
+Platform="Win7"
+
+[Mozilla/5.0 (*Windows NT 6.2*) AppleWebKit/* (KHTML, like Gecko)*Chrome/*Safari/*OPR/37.0*]
+Parent="Opera 37.0"
+Platform="Win8"
+
+[Mozilla/5.0 (*Windows NT 6.3*) AppleWebKit/* (KHTML, like Gecko)*Chrome/*Safari/*OPR/37.0*]
+Parent="Opera 37.0"
+Platform="Win8.1"
+
+[Mozilla/5.0 (*Windows NT 6.4*) AppleWebKit/* (KHTML, like Gecko)*Chrome/*Safari/*OPR/37.0*]
+Parent="Opera 37.0"
+Platform="Win10"
+
+[Mozilla/5.0 (*Windows NT 10.0*) AppleWebKit/* (KHTML, like Gecko)*Chrome/*Safari/*OPR/37.0*]
+Parent="Opera 37.0"
+Platform="Win10"
+
+[Mozilla/5.0 (*Mac OS X*) AppleWebKit/* (KHTML, like Gecko)*Chrome/*Safari/*OPR/37.0*]
+Parent="Opera 37.0"
+Platform="MacOSX"
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Opera 36.0
+
+[Opera 36.0]
+Parent="DefaultProperties"
+Comment="Opera 36.0"
+Browser="Opera"
+Version="36.0"
+Device_Type="Desktop"
+
+[Mozilla/5.0 (*Linux*) AppleWebKit/* (KHTML* like Gecko)*Chrome/*Safari/*OPR/36.0*]
+Parent="Opera 36.0"
+Platform="Linux"
+
+[Mozilla/5.0 (*Windows NT 6.0*) AppleWebKit/* (KHTML* like Gecko)*Chrome/*Safari/*OPR/36.0*]
+Parent="Opera 36.0"
+Platform="WinVista"
+
+[Mozilla/5.0 (*Windows NT 6.1*) AppleWebKit/* (KHTML* like Gecko)*Chrome/*Safari/*OPR/36.0*]
+Parent="Opera 36.0"
+Platform="Win7"
+
+[Mozilla/5.0 (*Windows NT 6.2*) AppleWebKit/* (KHTML* like Gecko)*Chrome/*Safari/*OPR/36.0*]
+Parent="Opera 36.0"
+Platform="Win8"
+
+[Mozilla/5.0 (*Windows NT 6.3*) AppleWebKit/* (KHTML* like Gecko)*Chrome/*Safari/*OPR/36.0*]
+Parent="Opera 36.0"
+Platform="Win8.1"
+
+[Mozilla/5.0 (*Windows NT 6.4*) AppleWebKit/* (KHTML* like Gecko)*Chrome/*Safari/*OPR/36.0*]
+Parent="Opera 36.0"
+Platform="Win10"
+
+[Mozilla/5.0 (*Windows NT 10.0*) AppleWebKit/* (KHTML* like Gecko)*Chrome/*Safari/*OPR/36.0*]
+Parent="Opera 36.0"
+Platform="Win10"
+
+[Mozilla/5.0 (*Mac OS X*) AppleWebKit/* (KHTML* like Gecko)*Chrome/*Safari/*OPR/36.0*]
+Parent="Opera 36.0"
+Platform="MacOSX"
+
+[Opera 35.0]
+Parent="DefaultProperties"
+Comment="Opera 35.0"
+Browser="Opera"
+Version="35.0"
+Device_Type="Desktop"
+
+[Mozilla/5.0 (*Linux*) AppleWebKit/* (KHTML* like Gecko)*Chrome/*Safari/*OPR/35.0*]
+Parent="Opera 35.0"
+Platform="Linux"
+
+[Mozilla/5.0 (*Windows NT 6.0*) AppleWebKit/* (KHTML* like Gecko)*Chrome/*Safari/*OPR/35.0*]
+Parent="Opera 35.0"
+Platform="WinVista"
+
+[Mozilla/5.0 (*Windows NT 6.1*) AppleWebKit/* (KHTML* like Gecko)*Chrome/*Safari/*OPR/35.0*]
+Parent="Opera 35.0"
+Platform="Win7"
+
+[Mozilla/5.0 (*Windows NT 6.2*) AppleWebKit/* (KHTML* like Gecko)*Chrome/*Safari/*OPR/35.0*]
+Parent="Opera 35.0"
+Platform="Win8"
+
+[Mozilla/5.0 (*Windows NT 6.3*) AppleWebKit/* (KHTML* like Gecko)*Chrome/*Safari/*OPR/35.0*]
+Parent="Opera 35.0"
+Platform="Win8.1"
+
+[Mozilla/5.0 (*Windows NT 6.4*) AppleWebKit/* (KHTML* like Gecko)*Chrome/*Safari/*OPR/35.0*]
+Parent="Opera 35.0"
+Platform="Win10"
+
+[Mozilla/5.0 (*Windows NT 10.0*) AppleWebKit/* (KHTML* like Gecko)*Chrome/*Safari/*OPR/35.0*]
+Parent="Opera 35.0"
+Platform="Win10"
+
+[Mozilla/5.0 (*Mac OS X*) AppleWebKit/* (KHTML* like Gecko)*Chrome/*Safari/*OPR/35.0*]
+Parent="Opera 35.0"
+Platform="MacOSX"
+
+[Opera 34.0]
+Parent="DefaultProperties"
+Comment="Opera 34.0"
+Browser="Opera"
+Version="34.0"
+Device_Type="Desktop"
+
+[Mozilla/5.0 (*Linux*) AppleWebKit/* (KHTML* like Gecko)*Chrome/*Safari/*OPR/34.0*]
+Parent="Opera 34.0"
+Platform="Linux"
+
+[Mozilla/5.0 (*Windows NT 6.0*) AppleWebKit/* (KHTML* like Gecko)*Chrome/*Safari/*OPR/34.0*]
+Parent="Opera 34.0"
+Platform="WinVista"
+
+[Mozilla/5.0 (*Windows NT 6.1*) AppleWebKit/* (KHTML* like Gecko)*Chrome/*Safari/*OPR/34.0*]
+Parent="Opera 34.0"
+Platform="Win7"
+
+[Mozilla/5.0 (*Windows NT 6.2*) AppleWebKit/* (KHTML* like Gecko)*Chrome/*Safari/*OPR/34.0*]
+Parent="Opera 34.0"
+Platform="Win8"
+
+[Mozilla/5.0 (*Windows NT 6.3*) AppleWebKit/* (KHTML* like Gecko)*Chrome/*Safari/*OPR/34.0*]
+Parent="Opera 34.0"
+Platform="Win8.1"
+
+[Mozilla/5.0 (*Windows NT 6.4*) AppleWebKit/* (KHTML* like Gecko)*Chrome/*Safari/*OPR/34.0*]
+Parent="Opera 34.0"
+Platform="Win10"
+
+[Mozilla/5.0 (*Windows NT 10.0*) AppleWebKit/* (KHTML* like Gecko)*Chrome/*Safari/*OPR/34.0*]
+Parent="Opera 34.0"
+Platform="Win10"
+
+[Mozilla/5.0 (*Mac OS X*) AppleWebKit/* (KHTML* like Gecko)*Chrome/*Safari/*OPR/34.0*]
+Parent="Opera 34.0"
+Platform="MacOSX"
+
+[Opera 33.0]
+Parent="DefaultProperties"
+Comment="Opera 33.0"
+Browser="Opera"
+Version="33.0"
+Device_Type="Desktop"
+
+[Mozilla/5.0 (*Linux*) AppleWebKit/* (KHTML* like Gecko)*Chrome/*Safari/*OPR/33.0*]
+Parent="Opera 33.0"
+Platform="Linux"
+
+[Mozilla/5.0 (*Windows NT 6.0*) AppleWebKit/* (KHTML* like Gecko)*Chrome/*Safari/*OPR/33.0*]
+Parent="Opera 33.0"
+Platform="WinVista"
+
+[Mozilla/5.0 (*Windows NT 6.1*) AppleWebKit/* (KHTML* like Gecko)*Chrome/*Safari/*OPR/33.0*]
+Parent="Opera 33.0"
+Platform="Win7"
+
+[Mozilla/5.0 (*Windows NT 6.2*) AppleWebKit/* (KHTML* like Gecko)*Chrome/*Safari/*OPR/33.0*]
+Parent="Opera 33.0"
+Platform="Win8"
+
+[Mozilla/5.0 (*Windows NT 6.3*) AppleWebKit/* (KHTML* like Gecko)*Chrome/*Safari/*OPR/33.0*]
+Parent="Opera 33.0"
+Platform="Win8.1"
+
+[Mozilla/5.0 (*Windows NT 6.4*) AppleWebKit/* (KHTML* like Gecko)*Chrome/*Safari/*OPR/33.0*]
+Parent="Opera 33.0"
+Platform="Win10"
+
+[Mozilla/5.0 (*Windows NT 10.0*) AppleWebKit/* (KHTML* like Gecko)*Chrome/*Safari/*OPR/33.0*]
+Parent="Opera 33.0"
+Platform="Win10"
+
+[Mozilla/5.0 (*Mac OS X*) AppleWebKit/* (KHTML* like Gecko)*Chrome/*Safari/*OPR/33.0*]
+Parent="Opera 33.0"
+Platform="MacOSX"
+
+[Opera 32.0]
+Parent="DefaultProperties"
+Comment="Opera 32.0"
+Browser="Opera"
+Version="32.0"
+Device_Type="Desktop"
+
+[Mozilla/5.0 (*Linux*) AppleWebKit/* (KHTML* like Gecko)*Chrome/*Safari/*OPR/32.0*]
+Parent="Opera 32.0"
+Platform="Linux"
+
+[Mozilla/5.0 (*Windows NT 6.0*) AppleWebKit/* (KHTML* like Gecko)*Chrome/*Safari/*OPR/32.0*]
+Parent="Opera 32.0"
+Platform="WinVista"
+
+[Mozilla/5.0 (*Windows NT 6.1*) AppleWebKit/* (KHTML* like Gecko)*Chrome/*Safari/*OPR/32.0*]
+Parent="Opera 32.0"
+Platform="Win7"
+
+[Mozilla/5.0 (*Windows NT 6.2*) AppleWebKit/* (KHTML* like Gecko)*Chrome/*Safari/*OPR/32.0*]
+Parent="Opera 32.0"
+Platform="Win8"
+
+[Mozilla/5.0 (*Windows NT 6.3*) AppleWebKit/* (KHTML* like Gecko)*Chrome/*Safari/*OPR/32.0*]
+Parent="Opera 32.0"
+Platform="Win8.1"
+
+[Mozilla/5.0 (*Windows NT 6.4*) AppleWebKit/* (KHTML* like Gecko)*Chrome/*Safari/*OPR/32.0*]
+Parent="Opera 32.0"
+Platform="Win10"
+
+[Mozilla/5.0 (*Windows NT 10.0*) AppleWebKit/* (KHTML* like Gecko)*Chrome/*Safari/*OPR/32.0*]
+Parent="Opera 32.0"
+Platform="Win10"
+
+[Mozilla/5.0 (*Mac OS X*) AppleWebKit/* (KHTML* like Gecko)*Chrome/*Safari/*OPR/32.0*]
+Parent="Opera 32.0"
+Platform="MacOSX"
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Opera 31.0
+
+[Opera 31.0]
+Parent="DefaultProperties"
+Comment="Opera 31.0"
+Browser="Opera"
+Version="31.0"
+Device_Type="Desktop"
+
+[Mozilla/5.0 (*Linux*) AppleWebKit/* (KHTML* like Gecko)*Chrome/*Safari/*OPR/31.0*]
+Parent="Opera 31.0"
+Platform="Linux"
+
+[Mozilla/5.0 (*Windows NT 6.0*) AppleWebKit/* (KHTML* like Gecko)*Chrome/*Safari/*OPR/31.0*]
+Parent="Opera 31.0"
+Platform="WinVista"
+
+[Mozilla/5.0 (*Windows NT 6.1*) AppleWebKit/* (KHTML* like Gecko)*Chrome/*Safari/*OPR/31.0*]
+Parent="Opera 31.0"
+Platform="Win7"
+
+[Mozilla/5.0 (*Windows NT 6.2*) AppleWebKit/* (KHTML* like Gecko)*Chrome/*Safari/*OPR/31.0*]
+Parent="Opera 31.0"
+Platform="Win8"
+
+[Mozilla/5.0 (*Windows NT 6.3*) AppleWebKit/* (KHTML* like Gecko)*Chrome/*Safari/*OPR/31.0*]
+Parent="Opera 31.0"
+Platform="Win8.1"
+
+[Mozilla/5.0 (*Windows NT 6.4*) AppleWebKit/* (KHTML* like Gecko)*Chrome/*Safari/*OPR/31.0*]
+Parent="Opera 31.0"
+Platform="Win10"
+
+[Mozilla/5.0 (*Windows NT 10.0*) AppleWebKit/* (KHTML* like Gecko)*Chrome/*Safari/*OPR/31.0*]
+Parent="Opera 31.0"
+Platform="Win10"
+
+[Mozilla/5.0 (*Mac OS X*) AppleWebKit/* (KHTML* like Gecko)*Chrome/*Safari/*OPR/31.0*]
+Parent="Opera 31.0"
+Platform="MacOSX"
+
+[Opera 30.0]
+Parent="DefaultProperties"
+Comment="Opera 30.0"
+Browser="Opera"
+Version="30.0"
+Device_Type="Desktop"
+
+[Mozilla/5.0 (*Linux*) AppleWebKit/* (KHTML* like Gecko)*Chrome/*Safari/*OPR/30.0*]
+Parent="Opera 30.0"
+Platform="Linux"
+
+[Mozilla/5.0 (*Windows NT 6.0*) AppleWebKit/* (KHTML* like Gecko)*Chrome/*Safari/*OPR/30.0*]
+Parent="Opera 30.0"
+Platform="WinVista"
+
+[Mozilla/5.0 (*Windows NT 6.1*) AppleWebKit/* (KHTML* like Gecko)*Chrome/*Safari/*OPR/30.0*]
+Parent="Opera 30.0"
+Platform="Win7"
+
+[Mozilla/5.0 (*Windows NT 6.2*) AppleWebKit/* (KHTML* like Gecko)*Chrome/*Safari/*OPR/30.0*]
+Parent="Opera 30.0"
+Platform="Win8"
+
+[Mozilla/5.0 (*Windows NT 6.3*) AppleWebKit/* (KHTML* like Gecko)*Chrome/*Safari/*OPR/30.0*]
+Parent="Opera 30.0"
+Platform="Win8.1"
+
+[Mozilla/5.0 (*Windows NT 6.4*) AppleWebKit/* (KHTML* like Gecko)*Chrome/*Safari/*OPR/30.0*]
+Parent="Opera 30.0"
+Platform="Win10"
+
+[Mozilla/5.0 (*Windows NT 10.0*) AppleWebKit/* (KHTML* like Gecko)*Chrome/*Safari/*OPR/30.0*]
+Parent="Opera 30.0"
+Platform="Win10"
+
+[Mozilla/5.0 (*Mac OS X*) AppleWebKit/* (KHTML* like Gecko)*Chrome/*Safari/*OPR/30.0*]
+Parent="Opera 30.0"
+Platform="MacOSX"
+
+[Opera 29.0]
+Parent="DefaultProperties"
+Comment="Opera 29.0"
+Browser="Opera"
+Version="29.0"
+Device_Type="Desktop"
+
+[Mozilla/5.0 (*Linux*) AppleWebKit/* (KHTML* like Gecko)*Chrome/*Safari/*OPR/29.0*]
+Parent="Opera 29.0"
+Platform="Linux"
+
+[Mozilla/5.0 (*Windows NT 6.0*) AppleWebKit/* (KHTML* like Gecko)*Chrome/*Safari/*OPR/29.0*]
+Parent="Opera 29.0"
+Platform="WinVista"
+
+[Mozilla/5.0 (*Windows NT 6.1*) AppleWebKit/* (KHTML* like Gecko)*Chrome/*Safari/*OPR/29.0*]
+Parent="Opera 29.0"
+Platform="Win7"
+
+[Mozilla/5.0 (*Windows NT 6.2*) AppleWebKit/* (KHTML* like Gecko)*Chrome/*Safari/*OPR/29.0*]
+Parent="Opera 29.0"
+Platform="Win8"
+
+[Mozilla/5.0 (*Windows NT 6.3*) AppleWebKit/* (KHTML* like Gecko)*Chrome/*Safari/*OPR/29.0*]
+Parent="Opera 29.0"
+Platform="Win8.1"
+
+[Mozilla/5.0 (*Windows NT 6.4*) AppleWebKit/* (KHTML* like Gecko)*Chrome/*Safari/*OPR/29.0*]
+Parent="Opera 29.0"
+Platform="Win10"
+
+[Mozilla/5.0 (*Windows NT 10.0*) AppleWebKit/* (KHTML* like Gecko)*Chrome/*Safari/*OPR/29.0*]
+Parent="Opera 29.0"
+Platform="Win10"
+
+[Mozilla/5.0 (*Mac OS X*) AppleWebKit/* (KHTML* like Gecko)*Chrome/*Safari/*OPR/29.0*]
+Parent="Opera 29.0"
+Platform="MacOSX"
+
+[Opera 28.0]
+Parent="DefaultProperties"
+Comment="Opera 28.0"
+Browser="Opera"
+Version="28.0"
+Device_Type="Desktop"
+
+[Mozilla/5.0 (*Linux*) AppleWebKit/* (KHTML* like Gecko)*Chrome/*Safari/*OPR/28.0*]
+Parent="Opera 28.0"
+Platform="Linux"
+
+[Mozilla/5.0 (*Windows NT 6.0*) AppleWebKit/* (KHTML* like Gecko)*Chrome/*Safari/*OPR/28.0*]
+Parent="Opera 28.0"
+Platform="WinVista"
+
+[Mozilla/5.0 (*Windows NT 6.1*) AppleWebKit/* (KHTML* like Gecko)*Chrome/*Safari/*OPR/28.0*]
+Parent="Opera 28.0"
+Platform="Win7"
+
+[Mozilla/5.0 (*Windows NT 6.2*) AppleWebKit/* (KHTML* like Gecko)*Chrome/*Safari/*OPR/28.0*]
+Parent="Opera 28.0"
+Platform="Win8"
+
+[Mozilla/5.0 (*Windows NT 6.3*) AppleWebKit/* (KHTML* like Gecko)*Chrome/*Safari/*OPR/28.0*]
+Parent="Opera 28.0"
+Platform="Win8.1"
+
+[Mozilla/5.0 (*Windows NT 6.4*) AppleWebKit/* (KHTML* like Gecko)*Chrome/*Safari/*OPR/28.0*]
+Parent="Opera 28.0"
+Platform="Win10"
+
+[Mozilla/5.0 (*Windows NT 10.0*) AppleWebKit/* (KHTML* like Gecko)*Chrome/*Safari/*OPR/28.0*]
+Parent="Opera 28.0"
+Platform="Win10"
+
+[Mozilla/5.0 (*Mac OS X*) AppleWebKit/* (KHTML* like Gecko)*Chrome/*Safari/*OPR/28.0*]
+Parent="Opera 28.0"
+Platform="MacOSX"
+
+[Opera 27.0]
+Parent="DefaultProperties"
+Comment="Opera 27.0"
+Browser="Opera"
+Version="27.0"
+Device_Type="Desktop"
+
+[Mozilla/5.0 (*Linux*) AppleWebKit/* (KHTML* like Gecko)*Chrome/*Safari/*OPR/27.0*]
+Parent="Opera 27.0"
+Platform="Linux"
+
+[Mozilla/5.0 (*Windows NT 6.0*) AppleWebKit/* (KHTML* like Gecko)*Chrome/*Safari/*OPR/27.0*]
+Parent="Opera 27.0"
+Platform="WinVista"
+
+[Mozilla/5.0 (*Windows NT 6.1*) AppleWebKit/* (KHTML* like Gecko)*Chrome/*Safari/*OPR/27.0*]
+Parent="Opera 27.0"
+Platform="Win7"
+
+[Mozilla/5.0 (*Windows NT 6.2*) AppleWebKit/* (KHTML* like Gecko)*Chrome/*Safari/*OPR/27.0*]
+Parent="Opera 27.0"
+Platform="Win8"
+
+[Mozilla/5.0 (*Windows NT 6.3*) AppleWebKit/* (KHTML* like Gecko)*Chrome/*Safari/*OPR/27.0*]
+Parent="Opera 27.0"
+Platform="Win8.1"
+
+[Mozilla/5.0 (*Windows NT 6.4*) AppleWebKit/* (KHTML* like Gecko)*Chrome/*Safari/*OPR/27.0*]
+Parent="Opera 27.0"
+Platform="Win10"
+
+[Mozilla/5.0 (*Windows NT 10.0*) AppleWebKit/* (KHTML* like Gecko)*Chrome/*Safari/*OPR/27.0*]
+Parent="Opera 27.0"
+Platform="Win10"
+
+[Mozilla/5.0 (*Mac OS X*) AppleWebKit/* (KHTML* like Gecko)*Chrome/*Safari/*OPR/27.0*]
+Parent="Opera 27.0"
+Platform="MacOSX"
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Edge 17.0
+
+[Edge 17.0]
+Parent="DefaultProperties"
+Comment="Edge 17.0"
+Browser="Edge"
+Version="17.0"
+Device_Type="Desktop"
+
+[Mozilla/5.0 (*Windows NT 6.4*) AppleWebKit/* (KHTML* like Gecko) Chrome/* Safari/* Edge/17.*]
+Parent="Edge 17.0"
+Platform="Win10"
+
+[Mozilla/5.0 (*Windows NT 10.0*) AppleWebKit/* (KHTML* like Gecko) Chrome/* Safari/* Edge/17.*]
+Parent="Edge 17.0"
+Platform="Win10"
+
+[Edge Mobile 17.0]
+Parent="DefaultProperties"
+Comment="Edge Mobile 17.0"
+Browser="Edge Mobile"
+Version="17.0"
+Platform="WinPhone10"
+isMobileDevice="true"
+Device_Type="Mobile Phone"
+
+[Mozilla/5.0 (*Windows Phone 10.0*NOKIA; Lumia 930) AppleWebKit/* (KHTML* like Gecko) Chrome/* Safari/* Edge/17.*]
+Parent="Edge Mobile 17.0"
+
+[Mozilla/5.0 (*Windows Phone 10.0*Xbox; Xbox One) AppleWebKit/* (KHTML* like Gecko) Chrome/* Safari/* Edge/17.*]
+Parent="Edge Mobile 17.0"
+isMobileDevice="false"
+Device_Type="TV Device"
+
+[Mozilla/5.0 (*Windows Phone 10.0*NOKIA; RM-1010) AppleWebKit/* (KHTML* like Gecko) Chrome/* Safari/* Edge/17.*]
+Parent="Edge Mobile 17.0"
+
+[Mozilla/5.0 (*Windows Phone 10.0*) AppleWebKit/* (KHTML* like Gecko) Chrome/* Safari/* Edge/17.*]
+Parent="Edge Mobile 17.0"
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Edge 16.0
+
+[Edge 16.0]
+Parent="DefaultProperties"
+Comment="Edge 16.0"
+Browser="Edge"
+Version="16.0"
+Device_Type="Desktop"
+
+[Mozilla/5.0 (*Windows NT 6.4*) AppleWebKit/* (KHTML* like Gecko) Chrome/* Safari/* Edge/16.*]
+Parent="Edge 16.0"
+Platform="Win10"
+
+[Mozilla/5.0 (*Windows NT 10.0*) AppleWebKit/* (KHTML* like Gecko) Chrome/* Safari/* Edge/16.*]
+Parent="Edge 16.0"
+Platform="Win10"
+
+[Edge Mobile 16.0]
+Parent="DefaultProperties"
+Comment="Edge Mobile 16.0"
+Browser="Edge Mobile"
+Version="16.0"
+Platform="WinPhone10"
+isMobileDevice="true"
+Device_Type="Mobile Phone"
+
+[Mozilla/5.0 (*Windows Phone 10.0*NOKIA; Lumia 930) AppleWebKit/* (KHTML* like Gecko) Chrome/* Safari/* Edge/16.*]
+Parent="Edge Mobile 16.0"
+
+[Mozilla/5.0 (*Windows Phone 10.0*Xbox; Xbox One) AppleWebKit/* (KHTML* like Gecko) Chrome/* Safari/* Edge/16.*]
+Parent="Edge Mobile 16.0"
+isMobileDevice="false"
+Device_Type="TV Device"
+
+[Mozilla/5.0 (*Windows Phone 10.0*NOKIA; RM-1010) AppleWebKit/* (KHTML* like Gecko) Chrome/* Safari/* Edge/16.*]
+Parent="Edge Mobile 16.0"
+
+[Mozilla/5.0 (*Windows Phone 10.0*) AppleWebKit/* (KHTML* like Gecko) Chrome/* Safari/* Edge/16.*]
+Parent="Edge Mobile 16.0"
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Edge 15.0
+
+[Edge 15.0]
+Parent="DefaultProperties"
+Comment="Edge 15.0"
+Browser="Edge"
+Version="15.0"
+Device_Type="Desktop"
+
+[Mozilla/5.0 (*Windows NT 6.4*) AppleWebKit/* (KHTML* like Gecko) Chrome/* Safari/* Edge/15.*]
+Parent="Edge 15.0"
+Platform="Win10"
+
+[Mozilla/5.0 (*Windows NT 10.0*) AppleWebKit/* (KHTML* like Gecko) Chrome/* Safari/* Edge/15.*]
+Parent="Edge 15.0"
+Platform="Win10"
+
+[Edge Mobile 15.0]
+Parent="DefaultProperties"
+Comment="Edge Mobile 15.0"
+Browser="Edge Mobile"
+Version="15.0"
+Platform="WinPhone10"
+isMobileDevice="true"
+Device_Type="Mobile Phone"
+
+[Mozilla/5.0 (*Windows Phone 10.0*NOKIA; Lumia 930) AppleWebKit/* (KHTML* like Gecko) Chrome/* Safari/* Edge/15.*]
+Parent="Edge Mobile 15.0"
+
+[Mozilla/5.0 (*Windows Phone 10.0*Xbox; Xbox One) AppleWebKit/* (KHTML* like Gecko) Chrome/* Safari/* Edge/15.*]
+Parent="Edge Mobile 15.0"
+isMobileDevice="false"
+Device_Type="TV Device"
+
+[Mozilla/5.0 (*Windows Phone 10.0*NOKIA; RM-1010) AppleWebKit/* (KHTML* like Gecko) Chrome/* Safari/* Edge/15.*]
+Parent="Edge Mobile 15.0"
+
+[Mozilla/5.0 (*Windows Phone 10.0*) AppleWebKit/* (KHTML* like Gecko) Chrome/* Safari/* Edge/15.*]
+Parent="Edge Mobile 15.0"
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Edge 14.0
+
+[Edge 14.0]
+Parent="DefaultProperties"
+Comment="Edge 14.0"
+Browser="Edge"
+Version="14.0"
+Device_Type="Desktop"
+
+[Mozilla/5.0 (*Windows NT 6.4*) AppleWebKit/* (KHTML* like Gecko) Chrome/* Safari/* Edge/14.*]
+Parent="Edge 14.0"
+Platform="Win10"
+
+[Mozilla/5.0 (*Windows NT 10.0*) AppleWebKit/* (KHTML* like Gecko) Chrome/* Safari/* Edge/14.*]
+Parent="Edge 14.0"
+Platform="Win10"
+
+[Edge Mobile 14.0]
+Parent="DefaultProperties"
+Comment="Edge Mobile 14.0"
+Browser="Edge Mobile"
+Version="14.0"
+Platform="WinPhone10"
+isMobileDevice="true"
+Device_Type="Mobile Phone"
+
+[Mozilla/5.0 (*Windows Phone 10.0*NOKIA; Lumia 930) AppleWebKit/* (KHTML* like Gecko) Chrome/* Safari/* Edge/14.*]
+Parent="Edge Mobile 14.0"
+
+[Mozilla/5.0 (*Windows Phone 10.0*Xbox; Xbox One) AppleWebKit/* (KHTML* like Gecko) Chrome/* Safari/* Edge/14.*]
+Parent="Edge Mobile 14.0"
+isMobileDevice="false"
+Device_Type="TV Device"
+
+[Mozilla/5.0 (*Windows Phone 10.0*NOKIA; RM-1010) AppleWebKit/* (KHTML* like Gecko) Chrome/* Safari/* Edge/14.*]
+Parent="Edge Mobile 14.0"
+
+[Mozilla/5.0 (*Windows Phone 10.0*) AppleWebKit/* (KHTML* like Gecko) Chrome/* Safari/* Edge/14.*]
+Parent="Edge Mobile 14.0"
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Edge 13.0
+
+[Edge 13.0]
+Parent="DefaultProperties"
+Comment="Edge 13.0"
+Browser="Edge"
+Version="13.0"
+Device_Type="Desktop"
+
+[Mozilla/5.0 (*Windows NT 6.4*) AppleWebKit/* (KHTML* like Gecko) Chrome/* Safari/* Edge/13.*]
+Parent="Edge 13.0"
+Platform="Win10"
+
+[Mozilla/5.0 (*Windows NT 10.0*) AppleWebKit/* (KHTML* like Gecko) Chrome/* Safari/* Edge/13.*]
+Parent="Edge 13.0"
+Platform="Win10"
+
+[Edge Mobile 13.0]
+Parent="DefaultProperties"
+Comment="Edge Mobile 13.0"
+Browser="Edge Mobile"
+Version="13.0"
+Platform="WinPhone10"
+isMobileDevice="true"
+Device_Type="Mobile Phone"
+
+[Mozilla/5.0 (*Windows Phone 10.0*NOKIA; Lumia 930) AppleWebKit/* (KHTML* like Gecko) Chrome/* Safari/* Edge/13.*]
+Parent="Edge Mobile 13.0"
+
+[Mozilla/5.0 (*Windows Phone 10.0*Xbox; Xbox One) AppleWebKit/* (KHTML* like Gecko) Chrome/* Safari/* Edge/13.*]
+Parent="Edge Mobile 13.0"
+isMobileDevice="false"
+Device_Type="TV Device"
+
+[Mozilla/5.0 (*Windows Phone 10.0*NOKIA; RM-1010) AppleWebKit/* (KHTML* like Gecko) Chrome/* Safari/* Edge/13.*]
+Parent="Edge Mobile 13.0"
+
+[Mozilla/5.0 (*Windows Phone 10.0*) AppleWebKit/* (KHTML* like Gecko) Chrome/* Safari/* Edge/13.*]
+Parent="Edge Mobile 13.0"
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Edge 12.0
+
+[Edge 12.0]
+Parent="DefaultProperties"
+Comment="Edge 12.0"
+Browser="Edge"
+Version="12.0"
+Device_Type="Desktop"
+
+[Mozilla/5.0 (*Windows NT 6.4*) AppleWebKit/* (KHTML* like Gecko) Chrome/* Safari/* Edge/12.*]
+Parent="Edge 12.0"
+Platform="Win10"
+
+[Mozilla/5.0 (*Windows NT 10.0*) AppleWebKit/* (KHTML* like Gecko) Chrome/* Safari/* Edge/12.*]
+Parent="Edge 12.0"
+Platform="Win10"
+
+[Edge Mobile 12.0]
+Parent="DefaultProperties"
+Comment="Edge Mobile 12.0"
+Browser="Edge Mobile"
+Version="12.0"
+Platform="WinPhone10"
+isMobileDevice="true"
+Device_Type="Mobile Phone"
+
+[Mozilla/5.0 (*Windows Phone 10.0*NOKIA; Lumia 930) AppleWebKit/* (KHTML* like Gecko) Chrome/* Safari/* Edge/12.*]
+Parent="Edge Mobile 12.0"
+
+[Mozilla/5.0 (*Windows Phone 10.0*Microsoft; id336*) AppleWebKit/* (KHTML* like Gecko) Chrome/* Safari/* Edge/12.*]
+Parent="Edge Mobile 12.0"
+
+[Mozilla/5.0 (*Windows Phone 10.0*) AppleWebKit/* (KHTML* like Gecko) Chrome/* Safari/* Edge/12.*]
+Parent="Edge Mobile 12.0"
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Chrome 55.0
+
+[Chrome 55.0 for Android]
+Parent="DefaultProperties"
+Comment="Chrome 55.0"
+Browser="Chrome"
+Version="55.0"
+Platform="Android"
+isMobileDevice="true"
+Device_Type="Mobile Phone"
+
+[Mozilla/5.0 (*Linux*Android*) AppleWebKit/* (KHTML* like Gecko) Chrome/55.*Safari/*]
+Parent="Chrome 55.0 for Android"
+
+[Mozilla/5.0 (*Linux*Android*)*AppleWebKit/* (KHTML* like Gecko) Chrome/55.*Safari/*]
+Parent="Chrome 55.0 for Android"
+
+[Mozilla/5.0 (*Linux*Android*) AppleWebKit/* (KHTML* like Gecko) 55.*Safari/*]
+Parent="Chrome 55.0 for Android"
+
+[Mozilla/5.0 (*Linux*Android*) AppleWebKit/* (KHTML* like Gecko*) Chrome/55.*Safari/*]
+Parent="Chrome 55.0 for Android"
+
+[Mozilla/5.0 (*Linux*Android*) AppleWebKit/*(KHTML,*like Gecko) Chrome/55.*Safari/*]
+Parent="Chrome 55.0 for Android"
+
+[Mozilla/5.0 (*Linux*Android*) AppleWebKit/* (KHTML* like Gecko)*CrMo/55.*Safari/*]
+Parent="Chrome 55.0 for Android"
+
+[Chrome 55.0 for iOS]
+Parent="DefaultProperties"
+Comment="Chrome 55.0"
+Browser="Chrome"
+Version="55.0"
+Platform="iOS"
+isMobileDevice="true"
+Device_Type="Mobile Device"
+
+[Mozilla/5.0 (iPad*CPU*OS* like Mac OS X*) AppleWebKit/* (KHTML* like Gecko) *CriOS/55.*Safari/*]
+Parent="Chrome 55.0 for iOS"
+isTablet="true"
+Device_Type="Tablet"
+
+[Mozilla/5.0 (iPhone*CPU*OS* like Mac OS X*) AppleWebKit/* (KHTML* like Gecko) *CriOS/55.*Safari/*]
+Parent="Chrome 55.0 for iOS"
+Device_Type="Mobile Phone"
+
+[Mozilla/5.0 (iPod*CPU*OS* like Mac OS X*) AppleWebKit/* (KHTML* like Gecko) *CriOS/55.*Safari/*]
+Parent="Chrome 55.0 for iOS"
+
+[Mozilla/5.0 (*CPU*OS* like Mac OS X*) AppleWebKit/* (KHTML* like Gecko) *CriOS/55.*Safari/*]
+Parent="Chrome 55.0 for iOS"
+
+[Chrome 55.0]
+Parent="DefaultProperties"
+Comment="Chrome 55.0"
+Browser="Chrome"
+Version="55.0"
+Device_Type="Desktop"
+
+[Mozilla/5.0 (*Linux*) AppleWebKit/* (KHTML* like Gecko) Chrome/55.*Safari/*]
+Parent="Chrome 55.0"
+Platform="Linux"
+
+[Mozilla/5.0 (*Windows NT 6.0*) AppleWebKit/* (KHTML* like Gecko) Chrome/55.*Safari/*]
+Parent="Chrome 55.0"
+Platform="WinVista"
+
+[Mozilla/5.0 (*Windows NT 6.1*) AppleWebKit/* (KHTML* like Gecko) Chrome/55.*Safari/*]
+Parent="Chrome 55.0"
+Platform="Win7"
+
+[Mozilla/5.0 (*Windows NT 6.2*) AppleWebKit/* (KHTML* like Gecko) Chrome/55.*Safari/*]
+Parent="Chrome 55.0"
+Platform="Win8"
+
+[Mozilla/5.0 (*Windows NT 6.3*) AppleWebKit/* (KHTML* like Gecko) Chrome/55.*Safari/*]
+Parent="Chrome 55.0"
+Platform="Win8.1"
+
+[Mozilla/5.0 (*Windows NT 6.4*) AppleWebKit/* (KHTML* like Gecko) Chrome/55.*Safari/*]
+Parent="Chrome 55.0"
+Platform="Win10"
+
+[Mozilla/5.0 (*Windows NT 10.0*) AppleWebKit/* (KHTML* like Gecko) Chrome/55.*Safari/*]
+Parent="Chrome 55.0"
+Platform="Win10"
+
+[Mozilla/5.0 (*Windows*) AppleWebKit/* (KHTML* like Gecko) Chrome/55.*Safari/*]
+Parent="Chrome 55.0"
+Platform="Win32"
+
+[Mozilla/5.0 (*Mac OS X*) AppleWebKit/* (KHTML* like Gecko) Chrome/55.*Safari/*]
+Parent="Chrome 55.0"
+Platform="MacOSX"
+
+[Mozilla/5.0 (*Linux*) AppleWebKit/* (KHTML,*like Gecko) Chrome/55.*]
+Parent="Chrome 55.0"
+Platform="Linux"
+
+[Mozilla/5.0 (*Windows NT 6.0*) AppleWebKit/* (KHTML* like Gecko) Chrome/55.*]
+Parent="Chrome 55.0"
+Platform="WinVista"
+
+[Mozilla/5.0 (*Windows NT 6.1*) AppleWebKit/* (KHTML* like Gecko) Chrome/55.*]
+Parent="Chrome 55.0"
+Platform="Win7"
+
+[Mozilla/5.0 (*Windows NT 6.2*) AppleWebKit/* (KHTML* like Gecko) Chrome/55.*]
+Parent="Chrome 55.0"
+Platform="Win8"
+
+[Mozilla/5.0 (*Windows NT 6.3*) AppleWebKit/* (KHTML* like Gecko) Chrome/55.*]
+Parent="Chrome 55.0"
+Platform="Win8.1"
+
+[Mozilla/5.0 (*Windows NT 6.4*) AppleWebKit/* (KHTML* like Gecko) Chrome/55.*]
+Parent="Chrome 55.0"
+Platform="Win10"
+
+[Mozilla/5.0 (*Windows NT 10.0*) AppleWebKit/* (KHTML* like Gecko) Chrome/55.*]
+Parent="Chrome 55.0"
+Platform="Win10"
+
+[Mozilla/5.0 (*Windows*) AppleWebKit/* (KHTML* like Gecko) Chrome/55.*]
+Parent="Chrome 55.0"
+Platform="Win32"
+
+[Mozilla/5.0 (*Mac OS X*) AppleWebKit/* (KHTML* like Gecko) Chrome/55.*]
+Parent="Chrome 55.0"
+Platform="MacOSX"
+
+[Mozilla/5.0 (*Windows NT 6.0*) AppleWebKit/* (KHTML* like Gecko) Chrome/55.*Chrome anonymized by*]
+Parent="Chrome 55.0"
+Platform="WinVista"
+
+[Mozilla/5.0 (*Windows NT 6.1*) AppleWebKit/* (KHTML* like Gecko) Chrome/55.*Chrome anonymized by*]
+Parent="Chrome 55.0"
+Platform="Win7"
+
+[Mozilla/5.0 (*Windows NT 6.2*) AppleWebKit/* (KHTML* like Gecko) Chrome/55.*Chrome anonymized by*]
+Parent="Chrome 55.0"
+Platform="Win8"
+
+[Mozilla/5.0 (*Windows NT 6.3*) AppleWebKit/* (KHTML* like Gecko) Chrome/55.*Chrome anonymized by*]
+Parent="Chrome 55.0"
+Platform="Win8.1"
+
+[Mozilla/5.0 (*Windows NT 6.4*) AppleWebKit/* (KHTML* like Gecko) Chrome/55.*Chrome anonymized by*]
+Parent="Chrome 55.0"
+Platform="Win10"
+
+[Mozilla/5.0 (*Windows NT 10.0*) AppleWebKit/* (KHTML* like Gecko) Chrome/55.*Chrome anonymized by*]
+Parent="Chrome 55.0"
+Platform="Win10"
+
+[Mozilla/5.0 (*Windows*) AppleWebKit/* (KHTML* like Gecko) Chrome/55.*Chrome anonymized by*]
+Parent="Chrome 55.0"
+Platform="Win32"
+
+[Mozilla/5.0 (*Windows NT 6.0*) AppleWebKit/* (KHTML* like Gecko) Chrome/55.*Anonymisiert durch*]
+Parent="Chrome 55.0"
+Platform="WinVista"
+
+[Mozilla/5.0 (*Windows NT 6.1*) AppleWebKit/* (KHTML* like Gecko) Chrome/55.*Anonymisiert durch*]
+Parent="Chrome 55.0"
+Platform="Win7"
+
+[Mozilla/5.0 (*Windows NT 6.2*) AppleWebKit/* (KHTML* like Gecko) Chrome/55.*Anonymisiert durch*]
+Parent="Chrome 55.0"
+Platform="Win8"
+
+[Mozilla/5.0 (*Windows NT 6.3*) AppleWebKit/* (KHTML* like Gecko) Chrome/55.*Anonymisiert durch*]
+Parent="Chrome 55.0"
+Platform="Win8.1"
+
+[Mozilla/5.0 (*Windows NT 6.4*) AppleWebKit/* (KHTML* like Gecko) Chrome/55.*Anonymisiert durch*]
+Parent="Chrome 55.0"
+Platform="Win10"
+
+[Mozilla/5.0 (*Windows NT 10.0*) AppleWebKit/* (KHTML* like Gecko) Chrome/55.*Anonymisiert durch*]
+Parent="Chrome 55.0"
+Platform="Win10"
+
+[Mozilla/5.0 (*Windows*) AppleWebKit/* (KHTML* like Gecko) Chrome/55.*Anonymisiert durch*]
+Parent="Chrome 55.0"
+Platform="Win32"
+
+[Mozilla/5.0 (*Linux*) AppleWebKit/*(KHTML,like Gecko) Chrome/55.*]
+Parent="Chrome 55.0"
+Platform="Linux"
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Chrome 54.0
+
+[Chrome 54.0 for Android]
+Parent="DefaultProperties"
+Comment="Chrome 54.0"
+Browser="Chrome"
+Version="54.0"
+Platform="Android"
+isMobileDevice="true"
+Device_Type="Mobile Phone"
+
+[Mozilla/5.0 (*Linux*Android*) AppleWebKit/* (KHTML* like Gecko) Chrome/54.*Safari/*]
+Parent="Chrome 54.0 for Android"
+
+[Mozilla/5.0 (*Linux*Android*)*AppleWebKit/* (KHTML* like Gecko) Chrome/54.*Safari/*]
+Parent="Chrome 54.0 for Android"
+
+[Mozilla/5.0 (*Linux*Android*) AppleWebKit/* (KHTML* like Gecko) 54.*Safari/*]
+Parent="Chrome 54.0 for Android"
+
+[Mozilla/5.0 (*Linux*Android*) AppleWebKit/* (KHTML* like Gecko*) Chrome/54.*Safari/*]
+Parent="Chrome 54.0 for Android"
+
+[Mozilla/5.0 (*Linux*Android*) AppleWebKit/*(KHTML,*like Gecko) Chrome/54.*Safari/*]
+Parent="Chrome 54.0 for Android"
+
+[Mozilla/5.0 (*Linux*Android*) AppleWebKit/* (KHTML* like Gecko)*CrMo/54.*Safari/*]
+Parent="Chrome 54.0 for Android"
+
+[Chrome 54.0 for iOS]
+Parent="DefaultProperties"
+Comment="Chrome 54.0"
+Browser="Chrome"
+Version="54.0"
+Platform="iOS"
+isMobileDevice="true"
+Device_Type="Mobile Device"
+
+[Mozilla/5.0 (iPad*CPU*OS* like Mac OS X*) AppleWebKit/* (KHTML* like Gecko) *CriOS/54.*Safari/*]
+Parent="Chrome 54.0 for iOS"
+isTablet="true"
+Device_Type="Tablet"
+
+[Mozilla/5.0 (iPhone*CPU*OS* like Mac OS X*) AppleWebKit/* (KHTML* like Gecko) *CriOS/54.*Safari/*]
+Parent="Chrome 54.0 for iOS"
+Device_Type="Mobile Phone"
+
+[Mozilla/5.0 (iPod*CPU*OS* like Mac OS X*) AppleWebKit/* (KHTML* like Gecko) *CriOS/54.*Safari/*]
+Parent="Chrome 54.0 for iOS"
+
+[Mozilla/5.0 (*CPU*OS* like Mac OS X*) AppleWebKit/* (KHTML* like Gecko) *CriOS/54.*Safari/*]
+Parent="Chrome 54.0 for iOS"
+
+[Chrome 54.0]
+Parent="DefaultProperties"
+Comment="Chrome 54.0"
+Browser="Chrome"
+Version="54.0"
+Device_Type="Desktop"
+
+[Mozilla/5.0 (*Linux*) AppleWebKit/* (KHTML* like Gecko) Chrome/54.*Safari/*]
+Parent="Chrome 54.0"
+Platform="Linux"
+
+[Mozilla/5.0 (*Windows NT 6.0*) AppleWebKit/* (KHTML* like Gecko) Chrome/54.*Safari/*]
+Parent="Chrome 54.0"
+Platform="WinVista"
+
+[Mozilla/5.0 (*Windows NT 6.1*) AppleWebKit/* (KHTML* like Gecko) Chrome/54.*Safari/*]
+Parent="Chrome 54.0"
+Platform="Win7"
+
+[Mozilla/5.0 (*Windows NT 6.2*) AppleWebKit/* (KHTML* like Gecko) Chrome/54.*Safari/*]
+Parent="Chrome 54.0"
+Platform="Win8"
+
+[Mozilla/5.0 (*Windows NT 6.3*) AppleWebKit/* (KHTML* like Gecko) Chrome/54.*Safari/*]
+Parent="Chrome 54.0"
+Platform="Win8.1"
+
+[Mozilla/5.0 (*Windows NT 6.4*) AppleWebKit/* (KHTML* like Gecko) Chrome/54.*Safari/*]
+Parent="Chrome 54.0"
+Platform="Win10"
+
+[Mozilla/5.0 (*Windows NT 10.0*) AppleWebKit/* (KHTML* like Gecko) Chrome/54.*Safari/*]
+Parent="Chrome 54.0"
+Platform="Win10"
+
+[Mozilla/5.0 (*Windows*) AppleWebKit/* (KHTML* like Gecko) Chrome/54.*Safari/*]
+Parent="Chrome 54.0"
+Platform="Win32"
+
+[Mozilla/5.0 (*Mac OS X*) AppleWebKit/* (KHTML* like Gecko) Chrome/54.*Safari/*]
+Parent="Chrome 54.0"
+Platform="MacOSX"
+
+[Mozilla/5.0 (*Linux*) AppleWebKit/* (KHTML,*like Gecko) Chrome/54.*]
+Parent="Chrome 54.0"
+Platform="Linux"
+
+[Mozilla/5.0 (*Windows NT 6.0*) AppleWebKit/* (KHTML* like Gecko) Chrome/54.*]
+Parent="Chrome 54.0"
+Platform="WinVista"
+
+[Mozilla/5.0 (*Windows NT 6.1*) AppleWebKit/* (KHTML* like Gecko) Chrome/54.*]
+Parent="Chrome 54.0"
+Platform="Win7"
+
+[Mozilla/5.0 (*Windows NT 6.2*) AppleWebKit/* (KHTML* like Gecko) Chrome/54.*]
+Parent="Chrome 54.0"
+Platform="Win8"
+
+[Mozilla/5.0 (*Windows NT 6.3*) AppleWebKit/* (KHTML* like Gecko) Chrome/54.*]
+Parent="Chrome 54.0"
+Platform="Win8.1"
+
+[Mozilla/5.0 (*Windows NT 6.4*) AppleWebKit/* (KHTML* like Gecko) Chrome/54.*]
+Parent="Chrome 54.0"
+Platform="Win10"
+
+[Mozilla/5.0 (*Windows NT 10.0*) AppleWebKit/* (KHTML* like Gecko) Chrome/54.*]
+Parent="Chrome 54.0"
+Platform="Win10"
+
+[Mozilla/5.0 (*Windows*) AppleWebKit/* (KHTML* like Gecko) Chrome/54.*]
+Parent="Chrome 54.0"
+Platform="Win32"
+
+[Mozilla/5.0 (*Mac OS X*) AppleWebKit/* (KHTML* like Gecko) Chrome/54.*]
+Parent="Chrome 54.0"
+Platform="MacOSX"
+
+[Mozilla/5.0 (*Windows NT 6.0*) AppleWebKit/* (KHTML* like Gecko) Chrome/54.*Chrome anonymized by*]
+Parent="Chrome 54.0"
+Platform="WinVista"
+
+[Mozilla/5.0 (*Windows NT 6.1*) AppleWebKit/* (KHTML* like Gecko) Chrome/54.*Chrome anonymized by*]
+Parent="Chrome 54.0"
+Platform="Win7"
+
+[Mozilla/5.0 (*Windows NT 6.2*) AppleWebKit/* (KHTML* like Gecko) Chrome/54.*Chrome anonymized by*]
+Parent="Chrome 54.0"
+Platform="Win8"
+
+[Mozilla/5.0 (*Windows NT 6.3*) AppleWebKit/* (KHTML* like Gecko) Chrome/54.*Chrome anonymized by*]
+Parent="Chrome 54.0"
+Platform="Win8.1"
+
+[Mozilla/5.0 (*Windows NT 6.4*) AppleWebKit/* (KHTML* like Gecko) Chrome/54.*Chrome anonymized by*]
+Parent="Chrome 54.0"
+Platform="Win10"
+
+[Mozilla/5.0 (*Windows NT 10.0*) AppleWebKit/* (KHTML* like Gecko) Chrome/54.*Chrome anonymized by*]
+Parent="Chrome 54.0"
+Platform="Win10"
+
+[Mozilla/5.0 (*Windows*) AppleWebKit/* (KHTML* like Gecko) Chrome/54.*Chrome anonymized by*]
+Parent="Chrome 54.0"
+Platform="Win32"
+
+[Mozilla/5.0 (*Windows NT 6.0*) AppleWebKit/* (KHTML* like Gecko) Chrome/54.*Anonymisiert durch*]
+Parent="Chrome 54.0"
+Platform="WinVista"
+
+[Mozilla/5.0 (*Windows NT 6.1*) AppleWebKit/* (KHTML* like Gecko) Chrome/54.*Anonymisiert durch*]
+Parent="Chrome 54.0"
+Platform="Win7"
+
+[Mozilla/5.0 (*Windows NT 6.2*) AppleWebKit/* (KHTML* like Gecko) Chrome/54.*Anonymisiert durch*]
+Parent="Chrome 54.0"
+Platform="Win8"
+
+[Mozilla/5.0 (*Windows NT 6.3*) AppleWebKit/* (KHTML* like Gecko) Chrome/54.*Anonymisiert durch*]
+Parent="Chrome 54.0"
+Platform="Win8.1"
+
+[Mozilla/5.0 (*Windows NT 6.4*) AppleWebKit/* (KHTML* like Gecko) Chrome/54.*Anonymisiert durch*]
+Parent="Chrome 54.0"
+Platform="Win10"
+
+[Mozilla/5.0 (*Windows NT 10.0*) AppleWebKit/* (KHTML* like Gecko) Chrome/54.*Anonymisiert durch*]
+Parent="Chrome 54.0"
+Platform="Win10"
+
+[Mozilla/5.0 (*Windows*) AppleWebKit/* (KHTML* like Gecko) Chrome/54.*Anonymisiert durch*]
+Parent="Chrome 54.0"
+Platform="Win32"
+
+[Mozilla/5.0 (*Linux*) AppleWebKit/*(KHTML,like Gecko) Chrome/54.*]
+Parent="Chrome 54.0"
+Platform="Linux"
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Chrome 53.0
+
+[Chrome 53.0 for Android]
+Parent="DefaultProperties"
+Comment="Chrome 53.0"
+Browser="Chrome"
+Version="53.0"
+Platform="Android"
+isMobileDevice="true"
+Device_Type="Mobile Phone"
+
+[Mozilla/5.0 (*Linux*Android*) AppleWebKit/* (KHTML* like Gecko) Chrome/53.*Safari/*]
+Parent="Chrome 53.0 for Android"
+
+[Mozilla/5.0 (*Linux*Android*)*AppleWebKit/* (KHTML* like Gecko) Chrome/53.*Safari/*]
+Parent="Chrome 53.0 for Android"
+
+[Mozilla/5.0 (*Linux*Android*) AppleWebKit/* (KHTML* like Gecko) 53.*Safari/*]
+Parent="Chrome 53.0 for Android"
+
+[Mozilla/5.0 (*Linux*Android*) AppleWebKit/* (KHTML* like Gecko*) Chrome/53.*Safari/*]
+Parent="Chrome 53.0 for Android"
+
+[Mozilla/5.0 (*Linux*Android*) AppleWebKit/*(KHTML,*like Gecko) Chrome/53.*Safari/*]
+Parent="Chrome 53.0 for Android"
+
+[Mozilla/5.0 (*Linux*Android*) AppleWebKit/* (KHTML* like Gecko)*CrMo/53.*Safari/*]
+Parent="Chrome 53.0 for Android"
+
+[Chrome 53.0 for iOS]
+Parent="DefaultProperties"
+Comment="Chrome 53.0"
+Browser="Chrome"
+Version="53.0"
+Platform="iOS"
+isMobileDevice="true"
+Device_Type="Mobile Device"
+
+[Mozilla/5.0 (iPad*CPU*OS* like Mac OS X*) AppleWebKit/* (KHTML* like Gecko) *CriOS/53.*Safari/*]
+Parent="Chrome 53.0 for iOS"
+isTablet="true"
+Device_Type="Tablet"
+
+[Mozilla/5.0 (iPhone*CPU*OS* like Mac OS X*) AppleWebKit/* (KHTML* like Gecko) *CriOS/53.*Safari/*]
+Parent="Chrome 53.0 for iOS"
+Device_Type="Mobile Phone"
+
+[Mozilla/5.0 (iPod*CPU*OS* like Mac OS X*) AppleWebKit/* (KHTML* like Gecko) *CriOS/53.*Safari/*]
+Parent="Chrome 53.0 for iOS"
+
+[Mozilla/5.0 (*CPU*OS* like Mac OS X*) AppleWebKit/* (KHTML* like Gecko) *CriOS/53.*Safari/*]
+Parent="Chrome 53.0 for iOS"
+
+[Chrome 53.0]
+Parent="DefaultProperties"
+Comment="Chrome 53.0"
+Browser="Chrome"
+Version="53.0"
+Device_Type="Desktop"
+
+[Mozilla/5.0 (*Linux*) AppleWebKit/* (KHTML* like Gecko) Chrome/53.*Safari/*]
+Parent="Chrome 53.0"
+Platform="Linux"
+
+[Mozilla/5.0 (*Windows NT 6.0*) AppleWebKit/* (KHTML* like Gecko) Chrome/53.*Safari/*]
+Parent="Chrome 53.0"
+Platform="WinVista"
+
+[Mozilla/5.0 (*Windows NT 6.1*) AppleWebKit/* (KHTML* like Gecko) Chrome/53.*Safari/*]
+Parent="Chrome 53.0"
+Platform="Win7"
+
+[Mozilla/5.0 (*Windows NT 6.2*) AppleWebKit/* (KHTML* like Gecko) Chrome/53.*Safari/*]
+Parent="Chrome 53.0"
+Platform="Win8"
+
+[Mozilla/5.0 (*Windows NT 6.3*) AppleWebKit/* (KHTML* like Gecko) Chrome/53.*Safari/*]
+Parent="Chrome 53.0"
+Platform="Win8.1"
+
+[Mozilla/5.0 (*Windows NT 6.4*) AppleWebKit/* (KHTML* like Gecko) Chrome/53.*Safari/*]
+Parent="Chrome 53.0"
+Platform="Win10"
+
+[Mozilla/5.0 (*Windows NT 10.0*) AppleWebKit/* (KHTML* like Gecko) Chrome/53.*Safari/*]
+Parent="Chrome 53.0"
+Platform="Win10"
+
+[Mozilla/5.0 (*Windows*) AppleWebKit/* (KHTML* like Gecko) Chrome/53.*Safari/*]
+Parent="Chrome 53.0"
+Platform="Win32"
+
+[Mozilla/5.0 (*Mac OS X*) AppleWebKit/* (KHTML* like Gecko) Chrome/53.*Safari/*]
+Parent="Chrome 53.0"
+Platform="MacOSX"
+
+[Mozilla/5.0 (*Linux*) AppleWebKit/* (KHTML,*like Gecko) Chrome/53.*]
+Parent="Chrome 53.0"
+Platform="Linux"
+
+[Mozilla/5.0 (*Windows NT 6.0*) AppleWebKit/* (KHTML* like Gecko) Chrome/53.*]
+Parent="Chrome 53.0"
+Platform="WinVista"
+
+[Mozilla/5.0 (*Windows NT 6.1*) AppleWebKit/* (KHTML* like Gecko) Chrome/53.*]
+Parent="Chrome 53.0"
+Platform="Win7"
+
+[Mozilla/5.0 (*Windows NT 6.2*) AppleWebKit/* (KHTML* like Gecko) Chrome/53.*]
+Parent="Chrome 53.0"
+Platform="Win8"
+
+[Mozilla/5.0 (*Windows NT 6.3*) AppleWebKit/* (KHTML* like Gecko) Chrome/53.*]
+Parent="Chrome 53.0"
+Platform="Win8.1"
+
+[Mozilla/5.0 (*Windows NT 6.4*) AppleWebKit/* (KHTML* like Gecko) Chrome/53.*]
+Parent="Chrome 53.0"
+Platform="Win10"
+
+[Mozilla/5.0 (*Windows NT 10.0*) AppleWebKit/* (KHTML* like Gecko) Chrome/53.*]
+Parent="Chrome 53.0"
+Platform="Win10"
+
+[Mozilla/5.0 (*Windows*) AppleWebKit/* (KHTML* like Gecko) Chrome/53.*]
+Parent="Chrome 53.0"
+Platform="Win32"
+
+[Mozilla/5.0 (*Mac OS X*) AppleWebKit/* (KHTML* like Gecko) Chrome/53.*]
+Parent="Chrome 53.0"
+Platform="MacOSX"
+
+[Mozilla/5.0 (*Windows NT 6.0*) AppleWebKit/* (KHTML* like Gecko) Chrome/53.*Chrome anonymized by*]
+Parent="Chrome 53.0"
+Platform="WinVista"
+
+[Mozilla/5.0 (*Windows NT 6.1*) AppleWebKit/* (KHTML* like Gecko) Chrome/53.*Chrome anonymized by*]
+Parent="Chrome 53.0"
+Platform="Win7"
+
+[Mozilla/5.0 (*Windows NT 6.2*) AppleWebKit/* (KHTML* like Gecko) Chrome/53.*Chrome anonymized by*]
+Parent="Chrome 53.0"
+Platform="Win8"
+
+[Mozilla/5.0 (*Windows NT 6.3*) AppleWebKit/* (KHTML* like Gecko) Chrome/53.*Chrome anonymized by*]
+Parent="Chrome 53.0"
+Platform="Win8.1"
+
+[Mozilla/5.0 (*Windows NT 6.4*) AppleWebKit/* (KHTML* like Gecko) Chrome/53.*Chrome anonymized by*]
+Parent="Chrome 53.0"
+Platform="Win10"
+
+[Mozilla/5.0 (*Windows NT 10.0*) AppleWebKit/* (KHTML* like Gecko) Chrome/53.*Chrome anonymized by*]
+Parent="Chrome 53.0"
+Platform="Win10"
+
+[Mozilla/5.0 (*Windows*) AppleWebKit/* (KHTML* like Gecko) Chrome/53.*Chrome anonymized by*]
+Parent="Chrome 53.0"
+Platform="Win32"
+
+[Mozilla/5.0 (*Windows NT 6.0*) AppleWebKit/* (KHTML* like Gecko) Chrome/53.*Anonymisiert durch*]
+Parent="Chrome 53.0"
+Platform="WinVista"
+
+[Mozilla/5.0 (*Windows NT 6.1*) AppleWebKit/* (KHTML* like Gecko) Chrome/53.*Anonymisiert durch*]
+Parent="Chrome 53.0"
+Platform="Win7"
+
+[Mozilla/5.0 (*Windows NT 6.2*) AppleWebKit/* (KHTML* like Gecko) Chrome/53.*Anonymisiert durch*]
+Parent="Chrome 53.0"
+Platform="Win8"
+
+[Mozilla/5.0 (*Windows NT 6.3*) AppleWebKit/* (KHTML* like Gecko) Chrome/53.*Anonymisiert durch*]
+Parent="Chrome 53.0"
+Platform="Win8.1"
+
+[Mozilla/5.0 (*Windows NT 6.4*) AppleWebKit/* (KHTML* like Gecko) Chrome/53.*Anonymisiert durch*]
+Parent="Chrome 53.0"
+Platform="Win10"
+
+[Mozilla/5.0 (*Windows NT 10.0*) AppleWebKit/* (KHTML* like Gecko) Chrome/53.*Anonymisiert durch*]
+Parent="Chrome 53.0"
+Platform="Win10"
+
+[Mozilla/5.0 (*Windows*) AppleWebKit/* (KHTML* like Gecko) Chrome/53.*Anonymisiert durch*]
+Parent="Chrome 53.0"
+Platform="Win32"
+
+[Mozilla/5.0 (*Linux*) AppleWebKit/*(KHTML,like Gecko) Chrome/53.*]
+Parent="Chrome 53.0"
+Platform="Linux"
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Chrome 52.0
+
+[Chrome 52.0 for Android]
+Parent="DefaultProperties"
+Comment="Chrome 52.0"
+Browser="Chrome"
+Version="52.0"
+Platform="Android"
+isMobileDevice="true"
+Device_Type="Mobile Phone"
+
+[Mozilla/5.0 (*Linux*Android*) AppleWebKit/* (KHTML* like Gecko) Chrome/52.*Safari/*]
+Parent="Chrome 52.0 for Android"
+
+[Mozilla/5.0 (*Linux*Android*)*AppleWebKit/* (KHTML* like Gecko) Chrome/52.*Safari/*]
+Parent="Chrome 52.0 for Android"
+
+[Mozilla/5.0 (*Linux*Android*) AppleWebKit/* (KHTML* like Gecko) 52.*Safari/*]
+Parent="Chrome 52.0 for Android"
+
+[Mozilla/5.0 (*Linux*Android*) AppleWebKit/* (KHTML* like Gecko*) Chrome/52.*Safari/*]
+Parent="Chrome 52.0 for Android"
+
+[Mozilla/5.0 (*Linux*Android*) AppleWebKit/*(KHTML,*like Gecko) Chrome/52.*Safari/*]
+Parent="Chrome 52.0 for Android"
+
+[Mozilla/5.0 (*Linux*Android*) AppleWebKit/* (KHTML* like Gecko)*CrMo/52.*Safari/*]
+Parent="Chrome 52.0 for Android"
+
+[Chrome 52.0 for iOS]
+Parent="DefaultProperties"
+Comment="Chrome 52.0"
+Browser="Chrome"
+Version="52.0"
+Platform="iOS"
+isMobileDevice="true"
+Device_Type="Mobile Device"
+
+[Mozilla/5.0 (iPad*CPU*OS* like Mac OS X*) AppleWebKit/* (KHTML* like Gecko) *CriOS/52.*Safari/*]
+Parent="Chrome 52.0 for iOS"
+isTablet="true"
+Device_Type="Tablet"
+
+[Mozilla/5.0 (iPhone*CPU*OS* like Mac OS X*) AppleWebKit/* (KHTML* like Gecko) *CriOS/52.*Safari/*]
+Parent="Chrome 52.0 for iOS"
+Device_Type="Mobile Phone"
+
+[Mozilla/5.0 (iPod*CPU*OS* like Mac OS X*) AppleWebKit/* (KHTML* like Gecko) *CriOS/52.*Safari/*]
+Parent="Chrome 52.0 for iOS"
+
+[Mozilla/5.0 (*CPU*OS* like Mac OS X*) AppleWebKit/* (KHTML* like Gecko) *CriOS/52.*Safari/*]
+Parent="Chrome 52.0 for iOS"
+
+[Chrome 52.0]
+Parent="DefaultProperties"
+Comment="Chrome 52.0"
+Browser="Chrome"
+Version="52.0"
+Device_Type="Desktop"
+
+[Mozilla/5.0 (*Linux*) AppleWebKit/* (KHTML* like Gecko) Chrome/52.*Safari/*]
+Parent="Chrome 52.0"
+Platform="Linux"
+
+[Mozilla/5.0 (*Windows NT 6.0*) AppleWebKit/* (KHTML* like Gecko) Chrome/52.*Safari/*]
+Parent="Chrome 52.0"
+Platform="WinVista"
+
+[Mozilla/5.0 (*Windows NT 6.1*) AppleWebKit/* (KHTML* like Gecko) Chrome/52.*Safari/*]
+Parent="Chrome 52.0"
+Platform="Win7"
+
+[Mozilla/5.0 (*Windows NT 6.2*) AppleWebKit/* (KHTML* like Gecko) Chrome/52.*Safari/*]
+Parent="Chrome 52.0"
+Platform="Win8"
+
+[Mozilla/5.0 (*Windows NT 6.3*) AppleWebKit/* (KHTML* like Gecko) Chrome/52.*Safari/*]
+Parent="Chrome 52.0"
+Platform="Win8.1"
+
+[Mozilla/5.0 (*Windows NT 6.4*) AppleWebKit/* (KHTML* like Gecko) Chrome/52.*Safari/*]
+Parent="Chrome 52.0"
+Platform="Win10"
+
+[Mozilla/5.0 (*Windows NT 10.0*) AppleWebKit/* (KHTML* like Gecko) Chrome/52.*Safari/*]
+Parent="Chrome 52.0"
+Platform="Win10"
+
+[Mozilla/5.0 (*Windows*) AppleWebKit/* (KHTML* like Gecko) Chrome/52.*Safari/*]
+Parent="Chrome 52.0"
+Platform="Win32"
+
+[Mozilla/5.0 (*Mac OS X*) AppleWebKit/* (KHTML* like Gecko) Chrome/52.*Safari/*]
+Parent="Chrome 52.0"
+Platform="MacOSX"
+
+[Mozilla/5.0 (*Linux*) AppleWebKit/* (KHTML,*like Gecko) Chrome/52.*]
+Parent="Chrome 52.0"
+Platform="Linux"
+
+[Mozilla/5.0 (*Windows NT 6.0*) AppleWebKit/* (KHTML* like Gecko) Chrome/52.*]
+Parent="Chrome 52.0"
+Platform="WinVista"
+
+[Mozilla/5.0 (*Windows NT 6.1*) AppleWebKit/* (KHTML* like Gecko) Chrome/52.*]
+Parent="Chrome 52.0"
+Platform="Win7"
+
+[Mozilla/5.0 (*Windows NT 6.2*) AppleWebKit/* (KHTML* like Gecko) Chrome/52.*]
+Parent="Chrome 52.0"
+Platform="Win8"
+
+[Mozilla/5.0 (*Windows NT 6.3*) AppleWebKit/* (KHTML* like Gecko) Chrome/52.*]
+Parent="Chrome 52.0"
+Platform="Win8.1"
+
+[Mozilla/5.0 (*Windows NT 6.4*) AppleWebKit/* (KHTML* like Gecko) Chrome/52.*]
+Parent="Chrome 52.0"
+Platform="Win10"
+
+[Mozilla/5.0 (*Windows NT 10.0*) AppleWebKit/* (KHTML* like Gecko) Chrome/52.*]
+Parent="Chrome 52.0"
+Platform="Win10"
+
+[Mozilla/5.0 (*Windows*) AppleWebKit/* (KHTML* like Gecko) Chrome/52.*]
+Parent="Chrome 52.0"
+Platform="Win32"
+
+[Mozilla/5.0 (*Mac OS X*) AppleWebKit/* (KHTML* like Gecko) Chrome/52.*]
+Parent="Chrome 52.0"
+Platform="MacOSX"
+
+[Mozilla/5.0 (*Windows NT 6.0*) AppleWebKit/* (KHTML* like Gecko) Chrome/52.*Chrome anonymized by*]
+Parent="Chrome 52.0"
+Platform="WinVista"
+
+[Mozilla/5.0 (*Windows NT 6.1*) AppleWebKit/* (KHTML* like Gecko) Chrome/52.*Chrome anonymized by*]
+Parent="Chrome 52.0"
+Platform="Win7"
+
+[Mozilla/5.0 (*Windows NT 6.2*) AppleWebKit/* (KHTML* like Gecko) Chrome/52.*Chrome anonymized by*]
+Parent="Chrome 52.0"
+Platform="Win8"
+
+[Mozilla/5.0 (*Windows NT 6.3*) AppleWebKit/* (KHTML* like Gecko) Chrome/52.*Chrome anonymized by*]
+Parent="Chrome 52.0"
+Platform="Win8.1"
+
+[Mozilla/5.0 (*Windows NT 6.4*) AppleWebKit/* (KHTML* like Gecko) Chrome/52.*Chrome anonymized by*]
+Parent="Chrome 52.0"
+Platform="Win10"
+
+[Mozilla/5.0 (*Windows NT 10.0*) AppleWebKit/* (KHTML* like Gecko) Chrome/52.*Chrome anonymized by*]
+Parent="Chrome 52.0"
+Platform="Win10"
+
+[Mozilla/5.0 (*Windows*) AppleWebKit/* (KHTML* like Gecko) Chrome/52.*Chrome anonymized by*]
+Parent="Chrome 52.0"
+Platform="Win32"
+
+[Mozilla/5.0 (*Windows NT 6.0*) AppleWebKit/* (KHTML* like Gecko) Chrome/52.*Anonymisiert durch*]
+Parent="Chrome 52.0"
+Platform="WinVista"
+
+[Mozilla/5.0 (*Windows NT 6.1*) AppleWebKit/* (KHTML* like Gecko) Chrome/52.*Anonymisiert durch*]
+Parent="Chrome 52.0"
+Platform="Win7"
+
+[Mozilla/5.0 (*Windows NT 6.2*) AppleWebKit/* (KHTML* like Gecko) Chrome/52.*Anonymisiert durch*]
+Parent="Chrome 52.0"
+Platform="Win8"
+
+[Mozilla/5.0 (*Windows NT 6.3*) AppleWebKit/* (KHTML* like Gecko) Chrome/52.*Anonymisiert durch*]
+Parent="Chrome 52.0"
+Platform="Win8.1"
+
+[Mozilla/5.0 (*Windows NT 6.4*) AppleWebKit/* (KHTML* like Gecko) Chrome/52.*Anonymisiert durch*]
+Parent="Chrome 52.0"
+Platform="Win10"
+
+[Mozilla/5.0 (*Windows NT 10.0*) AppleWebKit/* (KHTML* like Gecko) Chrome/52.*Anonymisiert durch*]
+Parent="Chrome 52.0"
+Platform="Win10"
+
+[Mozilla/5.0 (*Windows*) AppleWebKit/* (KHTML* like Gecko) Chrome/52.*Anonymisiert durch*]
+Parent="Chrome 52.0"
+Platform="Win32"
+
+[Mozilla/5.0 (*Linux*) AppleWebKit/*(KHTML,like Gecko) Chrome/52.*]
+Parent="Chrome 52.0"
+Platform="Linux"
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Chrome 51.0
+
+[Chrome 51.0 for Android]
+Parent="DefaultProperties"
+Comment="Chrome 51.0"
+Browser="Chrome"
+Version="51.0"
+Platform="Android"
+isMobileDevice="true"
+Device_Type="Mobile Phone"
+
+[Mozilla/5.0 (*Linux*Android*) AppleWebKit/* (KHTML* like Gecko) Chrome/51.*Safari/*]
+Parent="Chrome 51.0 for Android"
+
+[Mozilla/5.0 (*Linux*Android*)*AppleWebKit/* (KHTML* like Gecko) Chrome/51.*Safari/*]
+Parent="Chrome 51.0 for Android"
+
+[Mozilla/5.0 (*Linux*Android*) AppleWebKit/* (KHTML* like Gecko) 51.*Safari/*]
+Parent="Chrome 51.0 for Android"
+
+[Mozilla/5.0 (*Linux*Android*) AppleWebKit/* (KHTML* like Gecko*) Chrome/51.*Safari/*]
+Parent="Chrome 51.0 for Android"
+
+[Mozilla/5.0 (*Linux*Android*) AppleWebKit/*(KHTML,*like Gecko) Chrome/51.*Safari/*]
+Parent="Chrome 51.0 for Android"
+
+[Mozilla/5.0 (*Linux*Android*) AppleWebKit/* (KHTML* like Gecko)*CrMo/51.*Safari/*]
+Parent="Chrome 51.0 for Android"
+
+[Chrome 51.0 for iOS]
+Parent="DefaultProperties"
+Comment="Chrome 51.0"
+Browser="Chrome"
+Version="51.0"
+Platform="iOS"
+isMobileDevice="true"
+Device_Type="Mobile Device"
+
+[Mozilla/5.0 (iPad*CPU*OS* like Mac OS X*) AppleWebKit/* (KHTML* like Gecko) *CriOS/51.*Safari/*]
+Parent="Chrome 51.0 for iOS"
+isTablet="true"
+Device_Type="Tablet"
+
+[Mozilla/5.0 (iPhone*CPU*OS* like Mac OS X*) AppleWebKit/* (KHTML* like Gecko) *CriOS/51.*Safari/*]
+Parent="Chrome 51.0 for iOS"
+Device_Type="Mobile Phone"
+
+[Mozilla/5.0 (iPod*CPU*OS* like Mac OS X*) AppleWebKit/* (KHTML* like Gecko) *CriOS/51.*Safari/*]
+Parent="Chrome 51.0 for iOS"
+
+[Mozilla/5.0 (*CPU*OS* like Mac OS X*) AppleWebKit/* (KHTML* like Gecko) *CriOS/51.*Safari/*]
+Parent="Chrome 51.0 for iOS"
+
+[Chrome 51.0]
+Parent="DefaultProperties"
+Comment="Chrome 51.0"
+Browser="Chrome"
+Version="51.0"
+Device_Type="Desktop"
+
+[Mozilla/5.0 (*Linux*) AppleWebKit/* (KHTML* like Gecko) Chrome/51.*Safari/*]
+Parent="Chrome 51.0"
+Platform="Linux"
+
+[Mozilla/5.0 (*Windows NT 6.0*) AppleWebKit/* (KHTML* like Gecko) Chrome/51.*Safari/*]
+Parent="Chrome 51.0"
+Platform="WinVista"
+
+[Mozilla/5.0 (*Windows NT 6.1*) AppleWebKit/* (KHTML* like Gecko) Chrome/51.*Safari/*]
+Parent="Chrome 51.0"
+Platform="Win7"
+
+[Mozilla/5.0 (*Windows NT 6.2*) AppleWebKit/* (KHTML* like Gecko) Chrome/51.*Safari/*]
+Parent="Chrome 51.0"
+Platform="Win8"
+
+[Mozilla/5.0 (*Windows NT 6.3*) AppleWebKit/* (KHTML* like Gecko) Chrome/51.*Safari/*]
+Parent="Chrome 51.0"
+Platform="Win8.1"
+
+[Mozilla/5.0 (*Windows NT 6.4*) AppleWebKit/* (KHTML* like Gecko) Chrome/51.*Safari/*]
+Parent="Chrome 51.0"
+Platform="Win10"
+
+[Mozilla/5.0 (*Windows NT 10.0*) AppleWebKit/* (KHTML* like Gecko) Chrome/51.*Safari/*]
+Parent="Chrome 51.0"
+Platform="Win10"
+
+[Mozilla/5.0 (*Windows*) AppleWebKit/* (KHTML* like Gecko) Chrome/51.*Safari/*]
+Parent="Chrome 51.0"
+Platform="Win32"
+
+[Mozilla/5.0 (*Mac OS X*) AppleWebKit/* (KHTML* like Gecko) Chrome/51.*Safari/*]
+Parent="Chrome 51.0"
+Platform="MacOSX"
+
+[Mozilla/5.0 (*Linux*) AppleWebKit/* (KHTML,*like Gecko) Chrome/51.*]
+Parent="Chrome 51.0"
+Platform="Linux"
+
+[Mozilla/5.0 (*Windows NT 6.0*) AppleWebKit/* (KHTML* like Gecko) Chrome/51.*]
+Parent="Chrome 51.0"
+Platform="WinVista"
+
+[Mozilla/5.0 (*Windows NT 6.1*) AppleWebKit/* (KHTML* like Gecko) Chrome/51.*]
+Parent="Chrome 51.0"
+Platform="Win7"
+
+[Mozilla/5.0 (*Windows NT 6.2*) AppleWebKit/* (KHTML* like Gecko) Chrome/51.*]
+Parent="Chrome 51.0"
+Platform="Win8"
+
+[Mozilla/5.0 (*Windows NT 6.3*) AppleWebKit/* (KHTML* like Gecko) Chrome/51.*]
+Parent="Chrome 51.0"
+Platform="Win8.1"
+
+[Mozilla/5.0 (*Windows NT 6.4*) AppleWebKit/* (KHTML* like Gecko) Chrome/51.*]
+Parent="Chrome 51.0"
+Platform="Win10"
+
+[Mozilla/5.0 (*Windows NT 10.0*) AppleWebKit/* (KHTML* like Gecko) Chrome/51.*]
+Parent="Chrome 51.0"
+Platform="Win10"
+
+[Mozilla/5.0 (*Windows*) AppleWebKit/* (KHTML* like Gecko) Chrome/51.*]
+Parent="Chrome 51.0"
+Platform="Win32"
+
+[Mozilla/5.0 (*Mac OS X*) AppleWebKit/* (KHTML* like Gecko) Chrome/51.*]
+Parent="Chrome 51.0"
+Platform="MacOSX"
+
+[Mozilla/5.0 (*Windows NT 6.0*) AppleWebKit/* (KHTML* like Gecko) Chrome/51.*Chrome anonymized by*]
+Parent="Chrome 51.0"
+Platform="WinVista"
+
+[Mozilla/5.0 (*Windows NT 6.1*) AppleWebKit/* (KHTML* like Gecko) Chrome/51.*Chrome anonymized by*]
+Parent="Chrome 51.0"
+Platform="Win7"
+
+[Mozilla/5.0 (*Windows NT 6.2*) AppleWebKit/* (KHTML* like Gecko) Chrome/51.*Chrome anonymized by*]
+Parent="Chrome 51.0"
+Platform="Win8"
+
+[Mozilla/5.0 (*Windows NT 6.3*) AppleWebKit/* (KHTML* like Gecko) Chrome/51.*Chrome anonymized by*]
+Parent="Chrome 51.0"
+Platform="Win8.1"
+
+[Mozilla/5.0 (*Windows NT 6.4*) AppleWebKit/* (KHTML* like Gecko) Chrome/51.*Chrome anonymized by*]
+Parent="Chrome 51.0"
+Platform="Win10"
+
+[Mozilla/5.0 (*Windows NT 10.0*) AppleWebKit/* (KHTML* like Gecko) Chrome/51.*Chrome anonymized by*]
+Parent="Chrome 51.0"
+Platform="Win10"
+
+[Mozilla/5.0 (*Windows*) AppleWebKit/* (KHTML* like Gecko) Chrome/51.*Chrome anonymized by*]
+Parent="Chrome 51.0"
+Platform="Win32"
+
+[Mozilla/5.0 (*Windows NT 6.0*) AppleWebKit/* (KHTML* like Gecko) Chrome/51.*Anonymisiert durch*]
+Parent="Chrome 51.0"
+Platform="WinVista"
+
+[Mozilla/5.0 (*Windows NT 6.1*) AppleWebKit/* (KHTML* like Gecko) Chrome/51.*Anonymisiert durch*]
+Parent="Chrome 51.0"
+Platform="Win7"
+
+[Mozilla/5.0 (*Windows NT 6.2*) AppleWebKit/* (KHTML* like Gecko) Chrome/51.*Anonymisiert durch*]
+Parent="Chrome 51.0"
+Platform="Win8"
+
+[Mozilla/5.0 (*Windows NT 6.3*) AppleWebKit/* (KHTML* like Gecko) Chrome/51.*Anonymisiert durch*]
+Parent="Chrome 51.0"
+Platform="Win8.1"
+
+[Mozilla/5.0 (*Windows NT 6.4*) AppleWebKit/* (KHTML* like Gecko) Chrome/51.*Anonymisiert durch*]
+Parent="Chrome 51.0"
+Platform="Win10"
+
+[Mozilla/5.0 (*Windows NT 10.0*) AppleWebKit/* (KHTML* like Gecko) Chrome/51.*Anonymisiert durch*]
+Parent="Chrome 51.0"
+Platform="Win10"
+
+[Mozilla/5.0 (*Windows*) AppleWebKit/* (KHTML* like Gecko) Chrome/51.*Anonymisiert durch*]
+Parent="Chrome 51.0"
+Platform="Win32"
+
+[Mozilla/5.0 (*Linux*) AppleWebKit/*(KHTML,like Gecko) Chrome/51.*]
+Parent="Chrome 51.0"
+Platform="Linux"
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Chrome 50.0
+
+[Chrome 50.0 for Android]
+Parent="DefaultProperties"
+Comment="Chrome 50.0"
+Browser="Chrome"
+Version="50.0"
+Platform="Android"
+isMobileDevice="true"
+Device_Type="Mobile Phone"
+
+[Mozilla/5.0 (*Linux*Android*) AppleWebKit/* (KHTML* like Gecko) Chrome/50.*Safari/*]
+Parent="Chrome 50.0 for Android"
+
+[Mozilla/5.0 (*Linux*Android*)*AppleWebKit/* (KHTML* like Gecko) Chrome/50.*Safari/*]
+Parent="Chrome 50.0 for Android"
+
+[Mozilla/5.0 (*Linux*Android*) AppleWebKit/* (KHTML* like Gecko) 50.*Safari/*]
+Parent="Chrome 50.0 for Android"
+
+[Mozilla/5.0 (*Linux*Android*) AppleWebKit/* (KHTML* like Gecko*) Chrome/50.*Safari/*]
+Parent="Chrome 50.0 for Android"
+
+[Mozilla/5.0 (*Linux*Android*) AppleWebKit/*(KHTML,*like Gecko) Chrome/50.*Safari/*]
+Parent="Chrome 50.0 for Android"
+
+[Mozilla/5.0 (*Linux*Android*) AppleWebKit/* (KHTML* like Gecko)*CrMo/50.*Safari/*]
+Parent="Chrome 50.0 for Android"
+
+[Chrome 50.0 for iOS]
+Parent="DefaultProperties"
+Comment="Chrome 50.0"
+Browser="Chrome"
+Version="50.0"
+Platform="iOS"
+isMobileDevice="true"
+Device_Type="Mobile Device"
+
+[Mozilla/5.0 (iPad*CPU*OS* like Mac OS X*) AppleWebKit/* (KHTML* like Gecko) *CriOS/50.*Safari/*]
+Parent="Chrome 50.0 for iOS"
+isTablet="true"
+Device_Type="Tablet"
+
+[Mozilla/5.0 (iPhone*CPU*OS* like Mac OS X*) AppleWebKit/* (KHTML* like Gecko) *CriOS/50.*Safari/*]
+Parent="Chrome 50.0 for iOS"
+Device_Type="Mobile Phone"
+
+[Mozilla/5.0 (iPod*CPU*OS* like Mac OS X*) AppleWebKit/* (KHTML* like Gecko) *CriOS/50.*Safari/*]
+Parent="Chrome 50.0 for iOS"
+
+[Mozilla/5.0 (*CPU*OS* like Mac OS X*) AppleWebKit/* (KHTML* like Gecko) *CriOS/50.*Safari/*]
+Parent="Chrome 50.0 for iOS"
+
+[Chrome 50.0]
+Parent="DefaultProperties"
+Comment="Chrome 50.0"
+Browser="Chrome"
+Version="50.0"
+Device_Type="Desktop"
+
+[Mozilla/5.0 (*Linux*) AppleWebKit/* (KHTML* like Gecko) Chrome/50.*Safari/*]
+Parent="Chrome 50.0"
+Platform="Linux"
+
+[Mozilla/5.0 (*Windows NT 6.0*) AppleWebKit/* (KHTML* like Gecko) Chrome/50.*Safari/*]
+Parent="Chrome 50.0"
+Platform="WinVista"
+
+[Mozilla/5.0 (*Windows NT 6.1*) AppleWebKit/* (KHTML* like Gecko) Chrome/50.*Safari/*]
+Parent="Chrome 50.0"
+Platform="Win7"
+
+[Mozilla/5.0 (*Windows NT 6.2*) AppleWebKit/* (KHTML* like Gecko) Chrome/50.*Safari/*]
+Parent="Chrome 50.0"
+Platform="Win8"
+
+[Mozilla/5.0 (*Windows NT 6.3*) AppleWebKit/* (KHTML* like Gecko) Chrome/50.*Safari/*]
+Parent="Chrome 50.0"
+Platform="Win8.1"
+
+[Mozilla/5.0 (*Windows NT 6.4*) AppleWebKit/* (KHTML* like Gecko) Chrome/50.*Safari/*]
+Parent="Chrome 50.0"
+Platform="Win10"
+
+[Mozilla/5.0 (*Windows NT 10.0*) AppleWebKit/* (KHTML* like Gecko) Chrome/50.*Safari/*]
+Parent="Chrome 50.0"
+Platform="Win10"
+
+[Mozilla/5.0 (*Windows*) AppleWebKit/* (KHTML* like Gecko) Chrome/50.*Safari/*]
+Parent="Chrome 50.0"
+Platform="Win32"
+
+[Mozilla/5.0 (*Mac OS X*) AppleWebKit/* (KHTML* like Gecko) Chrome/50.*Safari/*]
+Parent="Chrome 50.0"
+Platform="MacOSX"
+
+[Mozilla/5.0 (*Linux*) AppleWebKit/* (KHTML,*like Gecko) Chrome/50.*]
+Parent="Chrome 50.0"
+Platform="Linux"
+
+[Mozilla/5.0 (*Windows NT 6.0*) AppleWebKit/* (KHTML* like Gecko) Chrome/50.*]
+Parent="Chrome 50.0"
+Platform="WinVista"
+
+[Mozilla/5.0 (*Windows NT 6.1*) AppleWebKit/* (KHTML* like Gecko) Chrome/50.*]
+Parent="Chrome 50.0"
+Platform="Win7"
+
+[Mozilla/5.0 (*Windows NT 6.2*) AppleWebKit/* (KHTML* like Gecko) Chrome/50.*]
+Parent="Chrome 50.0"
+Platform="Win8"
+
+[Mozilla/5.0 (*Windows NT 6.3*) AppleWebKit/* (KHTML* like Gecko) Chrome/50.*]
+Parent="Chrome 50.0"
+Platform="Win8.1"
+
+[Mozilla/5.0 (*Windows NT 6.4*) AppleWebKit/* (KHTML* like Gecko) Chrome/50.*]
+Parent="Chrome 50.0"
+Platform="Win10"
+
+[Mozilla/5.0 (*Windows NT 10.0*) AppleWebKit/* (KHTML* like Gecko) Chrome/50.*]
+Parent="Chrome 50.0"
+Platform="Win10"
+
+[Mozilla/5.0 (*Windows*) AppleWebKit/* (KHTML* like Gecko) Chrome/50.*]
+Parent="Chrome 50.0"
+Platform="Win32"
+
+[Mozilla/5.0 (*Mac OS X*) AppleWebKit/* (KHTML* like Gecko) Chrome/50.*]
+Parent="Chrome 50.0"
+Platform="MacOSX"
+
+[Mozilla/5.0 (*Windows NT 6.0*) AppleWebKit/* (KHTML* like Gecko) Chrome/50.*Chrome anonymized by*]
+Parent="Chrome 50.0"
+Platform="WinVista"
+
+[Mozilla/5.0 (*Windows NT 6.1*) AppleWebKit/* (KHTML* like Gecko) Chrome/50.*Chrome anonymized by*]
+Parent="Chrome 50.0"
+Platform="Win7"
+
+[Mozilla/5.0 (*Windows NT 6.2*) AppleWebKit/* (KHTML* like Gecko) Chrome/50.*Chrome anonymized by*]
+Parent="Chrome 50.0"
+Platform="Win8"
+
+[Mozilla/5.0 (*Windows NT 6.3*) AppleWebKit/* (KHTML* like Gecko) Chrome/50.*Chrome anonymized by*]
+Parent="Chrome 50.0"
+Platform="Win8.1"
+
+[Mozilla/5.0 (*Windows NT 6.4*) AppleWebKit/* (KHTML* like Gecko) Chrome/50.*Chrome anonymized by*]
+Parent="Chrome 50.0"
+Platform="Win10"
+
+[Mozilla/5.0 (*Windows NT 10.0*) AppleWebKit/* (KHTML* like Gecko) Chrome/50.*Chrome anonymized by*]
+Parent="Chrome 50.0"
+Platform="Win10"
+
+[Mozilla/5.0 (*Windows*) AppleWebKit/* (KHTML* like Gecko) Chrome/50.*Chrome anonymized by*]
+Parent="Chrome 50.0"
+Platform="Win32"
+
+[Mozilla/5.0 (*Windows NT 6.0*) AppleWebKit/* (KHTML* like Gecko) Chrome/50.*Anonymisiert durch*]
+Parent="Chrome 50.0"
+Platform="WinVista"
+
+[Mozilla/5.0 (*Windows NT 6.1*) AppleWebKit/* (KHTML* like Gecko) Chrome/50.*Anonymisiert durch*]
+Parent="Chrome 50.0"
+Platform="Win7"
+
+[Mozilla/5.0 (*Windows NT 6.2*) AppleWebKit/* (KHTML* like Gecko) Chrome/50.*Anonymisiert durch*]
+Parent="Chrome 50.0"
+Platform="Win8"
+
+[Mozilla/5.0 (*Windows NT 6.3*) AppleWebKit/* (KHTML* like Gecko) Chrome/50.*Anonymisiert durch*]
+Parent="Chrome 50.0"
+Platform="Win8.1"
+
+[Mozilla/5.0 (*Windows NT 6.4*) AppleWebKit/* (KHTML* like Gecko) Chrome/50.*Anonymisiert durch*]
+Parent="Chrome 50.0"
+Platform="Win10"
+
+[Mozilla/5.0 (*Windows NT 10.0*) AppleWebKit/* (KHTML* like Gecko) Chrome/50.*Anonymisiert durch*]
+Parent="Chrome 50.0"
+Platform="Win10"
+
+[Mozilla/5.0 (*Windows*) AppleWebKit/* (KHTML* like Gecko) Chrome/50.*Anonymisiert durch*]
+Parent="Chrome 50.0"
+Platform="Win32"
+
+[Mozilla/5.0 (*Linux*) AppleWebKit/*(KHTML,like Gecko) Chrome/50.*]
+Parent="Chrome 50.0"
+Platform="Linux"
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Chrome 49.0
+
+[Chrome 49.0 for Android]
+Parent="DefaultProperties"
+Comment="Chrome 49.0"
+Browser="Chrome"
+Version="49.0"
+Platform="Android"
+isMobileDevice="true"
+Device_Type="Mobile Phone"
+
+[Mozilla/5.0 (*Linux*Android*) AppleWebKit/* (KHTML* like Gecko) Chrome/49.*Safari/*]
+Parent="Chrome 49.0 for Android"
+
+[Mozilla/5.0 (*Linux*Android*)*AppleWebKit/* (KHTML* like Gecko) Chrome/49.*Safari/*]
+Parent="Chrome 49.0 for Android"
+
+[Mozilla/5.0 (*Linux*Android*) AppleWebKit/* (KHTML* like Gecko) 49.*Safari/*]
+Parent="Chrome 49.0 for Android"
+
+[Mozilla/5.0 (*Linux*Android*) AppleWebKit/* (KHTML* like Gecko*) Chrome/49.*Safari/*]
+Parent="Chrome 49.0 for Android"
+
+[Mozilla/5.0 (*Linux*Android*) AppleWebKit/* (KHTML* like Gecko)*CrMo/49.*Safari/*]
+Parent="Chrome 49.0 for Android"
+
+[Chrome 49.0 for iOS]
+Parent="DefaultProperties"
+Comment="Chrome 49.0"
+Browser="Chrome"
+Version="49.0"
+Platform="iOS"
+isMobileDevice="true"
+Device_Type="Mobile Device"
+
+[Mozilla/5.0 (iPad*CPU*OS* like Mac OS X*) AppleWebKit/* (KHTML* like Gecko) *CriOS/49.*Safari/*]
+Parent="Chrome 49.0 for iOS"
+isTablet="true"
+Device_Type="Tablet"
+
+[Mozilla/5.0 (iPhone*CPU*OS* like Mac OS X*) AppleWebKit/* (KHTML* like Gecko) *CriOS/49.*Safari/*]
+Parent="Chrome 49.0 for iOS"
+Device_Type="Mobile Phone"
+
+[Mozilla/5.0 (iPod*CPU*OS* like Mac OS X*) AppleWebKit/* (KHTML* like Gecko) *CriOS/49.*Safari/*]
+Parent="Chrome 49.0 for iOS"
+
+[Mozilla/5.0 (*CPU*OS* like Mac OS X*) AppleWebKit/* (KHTML* like Gecko) *CriOS/49.*Safari/*]
+Parent="Chrome 49.0 for iOS"
+
+[Chrome 49.0]
+Parent="DefaultProperties"
+Comment="Chrome 49.0"
+Browser="Chrome"
+Version="49.0"
+Device_Type="Desktop"
+
+[Mozilla/5.0 (*Linux*) AppleWebKit/* (KHTML* like Gecko) Chrome/49.*Safari/*]
+Parent="Chrome 49.0"
+Platform="Linux"
+
+[Mozilla/5.0 (*Windows NT 6.0*) AppleWebKit/* (KHTML* like Gecko) Chrome/49.*Safari/*]
+Parent="Chrome 49.0"
+Platform="WinVista"
+
+[Mozilla/5.0 (*Windows NT 6.1*) AppleWebKit/* (KHTML* like Gecko) Chrome/49.*Safari/*]
+Parent="Chrome 49.0"
+Platform="Win7"
+
+[Mozilla/5.0 (*Windows NT 6.2*) AppleWebKit/* (KHTML* like Gecko) Chrome/49.*Safari/*]
+Parent="Chrome 49.0"
+Platform="Win8"
+
+[Mozilla/5.0 (*Windows NT 6.3*) AppleWebKit/* (KHTML* like Gecko) Chrome/49.*Safari/*]
+Parent="Chrome 49.0"
+Platform="Win8.1"
+
+[Mozilla/5.0 (*Windows NT 6.4*) AppleWebKit/* (KHTML* like Gecko) Chrome/49.*Safari/*]
+Parent="Chrome 49.0"
+Platform="Win10"
+
+[Mozilla/5.0 (*Windows NT 10.0*) AppleWebKit/* (KHTML* like Gecko) Chrome/49.*Safari/*]
+Parent="Chrome 49.0"
+Platform="Win10"
+
+[Mozilla/5.0 (*Windows*) AppleWebKit/* (KHTML* like Gecko) Chrome/49.*Safari/*]
+Parent="Chrome 49.0"
+Platform="Win32"
+
+[Mozilla/5.0 (*Mac OS X*) AppleWebKit/* (KHTML* like Gecko) Chrome/49.*Safari/*]
+Parent="Chrome 49.0"
+Platform="MacOSX"
+
+[Mozilla/5.0 (*Linux*) AppleWebKit/* (KHTML,*like Gecko) Chrome/49.*]
+Parent="Chrome 49.0"
+Platform="Linux"
+
+[Mozilla/5.0 (*Windows NT 6.0*) AppleWebKit/* (KHTML* like Gecko) Chrome/49.*]
+Parent="Chrome 49.0"
+Platform="WinVista"
+
+[Mozilla/5.0 (*Windows NT 6.1*) AppleWebKit/* (KHTML* like Gecko) Chrome/49.*]
+Parent="Chrome 49.0"
+Platform="Win7"
+
+[Mozilla/5.0 (*Windows NT 6.2*) AppleWebKit/* (KHTML* like Gecko) Chrome/49.*]
+Parent="Chrome 49.0"
+Platform="Win8"
+
+[Mozilla/5.0 (*Windows NT 6.3*) AppleWebKit/* (KHTML* like Gecko) Chrome/49.*]
+Parent="Chrome 49.0"
+Platform="Win8.1"
+
+[Mozilla/5.0 (*Windows NT 6.4*) AppleWebKit/* (KHTML* like Gecko) Chrome/49.*]
+Parent="Chrome 49.0"
+Platform="Win10"
+
+[Mozilla/5.0 (*Windows NT 10.0*) AppleWebKit/* (KHTML* like Gecko) Chrome/49.*]
+Parent="Chrome 49.0"
+Platform="Win10"
+
+[Mozilla/5.0 (*Windows*) AppleWebKit/* (KHTML* like Gecko) Chrome/49.*]
+Parent="Chrome 49.0"
+Platform="Win32"
+
+[Mozilla/5.0 (*Mac OS X*) AppleWebKit/* (KHTML* like Gecko) Chrome/49.*]
+Parent="Chrome 49.0"
+Platform="MacOSX"
+
+[Mozilla/5.0 (*Windows NT 6.0*) AppleWebKit/* (KHTML* like Gecko) Chrome/49.*Chrome anonymized by*]
+Parent="Chrome 49.0"
+Platform="WinVista"
+
+[Mozilla/5.0 (*Windows NT 6.1*) AppleWebKit/* (KHTML* like Gecko) Chrome/49.*Chrome anonymized by*]
+Parent="Chrome 49.0"
+Platform="Win7"
+
+[Mozilla/5.0 (*Windows NT 6.2*) AppleWebKit/* (KHTML* like Gecko) Chrome/49.*Chrome anonymized by*]
+Parent="Chrome 49.0"
+Platform="Win8"
+
+[Mozilla/5.0 (*Windows NT 6.3*) AppleWebKit/* (KHTML* like Gecko) Chrome/49.*Chrome anonymized by*]
+Parent="Chrome 49.0"
+Platform="Win8.1"
+
+[Mozilla/5.0 (*Windows NT 6.4*) AppleWebKit/* (KHTML* like Gecko) Chrome/49.*Chrome anonymized by*]
+Parent="Chrome 49.0"
+Platform="Win10"
+
+[Mozilla/5.0 (*Windows NT 10.0*) AppleWebKit/* (KHTML* like Gecko) Chrome/49.*Chrome anonymized by*]
+Parent="Chrome 49.0"
+Platform="Win10"
+
+[Mozilla/5.0 (*Windows*) AppleWebKit/* (KHTML* like Gecko) Chrome/49.*Chrome anonymized by*]
+Parent="Chrome 49.0"
+Platform="Win32"
+
+[Mozilla/5.0 (*Windows NT 6.0*) AppleWebKit/* (KHTML* like Gecko) Chrome/49.*Anonymisiert durch*]
+Parent="Chrome 49.0"
+Platform="WinVista"
+
+[Mozilla/5.0 (*Windows NT 6.1*) AppleWebKit/* (KHTML* like Gecko) Chrome/49.*Anonymisiert durch*]
+Parent="Chrome 49.0"
+Platform="Win7"
+
+[Mozilla/5.0 (*Windows NT 6.2*) AppleWebKit/* (KHTML* like Gecko) Chrome/49.*Anonymisiert durch*]
+Parent="Chrome 49.0"
+Platform="Win8"
+
+[Mozilla/5.0 (*Windows NT 6.3*) AppleWebKit/* (KHTML* like Gecko) Chrome/49.*Anonymisiert durch*]
+Parent="Chrome 49.0"
+Platform="Win8.1"
+
+[Mozilla/5.0 (*Windows NT 6.4*) AppleWebKit/* (KHTML* like Gecko) Chrome/49.*Anonymisiert durch*]
+Parent="Chrome 49.0"
+Platform="Win10"
+
+[Mozilla/5.0 (*Windows NT 10.0*) AppleWebKit/* (KHTML* like Gecko) Chrome/49.*Anonymisiert durch*]
+Parent="Chrome 49.0"
+Platform="Win10"
+
+[Mozilla/5.0 (*Windows*) AppleWebKit/* (KHTML* like Gecko) Chrome/49.*Anonymisiert durch*]
+Parent="Chrome 49.0"
+Platform="Win32"
+
+[Mozilla/5.0 (*Linux*) AppleWebKit/*(KHTML,like Gecko) Chrome/49.*]
+Parent="Chrome 49.0"
+Platform="Linux"
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Chrome 48.0
+
+[Chrome 48.0 for Android]
+Parent="DefaultProperties"
+Comment="Chrome 48.0"
+Browser="Chrome"
+Version="48.0"
+Platform="Android"
+isMobileDevice="true"
+Device_Type="Mobile Phone"
+
+[Mozilla/5.0 (*Linux*Android*) AppleWebKit/* (KHTML* like Gecko) Chrome/48.*Safari/*]
+Parent="Chrome 48.0 for Android"
+
+[Mozilla/5.0 (*Linux*Android*)*AppleWebKit/* (KHTML* like Gecko) Chrome/48.*Safari/*]
+Parent="Chrome 48.0 for Android"
+
+[Mozilla/5.0 (*Linux*Android*) AppleWebKit/* (KHTML* like Gecko) 48.*Safari/*]
+Parent="Chrome 48.0 for Android"
+
+[Mozilla/5.0 (*Linux*Android*) AppleWebKit/* (KHTML* like Gecko*) Chrome/48.*Safari/*]
+Parent="Chrome 48.0 for Android"
+
+[Mozilla/5.0 (*Linux*Android*) AppleWebKit/* (KHTML* like Gecko)*CrMo/48.*Safari/*]
+Parent="Chrome 48.0 for Android"
+
+[Chrome 48.0 for iOS]
+Parent="DefaultProperties"
+Comment="Chrome 48.0"
+Browser="Chrome"
+Version="48.0"
+Platform="iOS"
+isMobileDevice="true"
+Device_Type="Mobile Device"
+
+[Mozilla/5.0 (iPad*CPU*OS* like Mac OS X*) AppleWebKit/* (KHTML* like Gecko) *CriOS/48.*Safari/*]
+Parent="Chrome 48.0 for iOS"
+isTablet="true"
+Device_Type="Tablet"
+
+[Mozilla/5.0 (iPhone*CPU*OS* like Mac OS X*) AppleWebKit/* (KHTML* like Gecko) *CriOS/48.*Safari/*]
+Parent="Chrome 48.0 for iOS"
+Device_Type="Mobile Phone"
+
+[Mozilla/5.0 (iPod*CPU*OS* like Mac OS X*) AppleWebKit/* (KHTML* like Gecko) *CriOS/48.*Safari/*]
+Parent="Chrome 48.0 for iOS"
+
+[Mozilla/5.0 (*CPU*OS* like Mac OS X*) AppleWebKit/* (KHTML* like Gecko) *CriOS/48.*Safari/*]
+Parent="Chrome 48.0 for iOS"
+
+[Chrome 48.0]
+Parent="DefaultProperties"
+Comment="Chrome 48.0"
+Browser="Chrome"
+Version="48.0"
+Device_Type="Desktop"
+
+[Mozilla/5.0 (*Linux*) AppleWebKit/* (KHTML* like Gecko) Chrome/48.*Safari/*]
+Parent="Chrome 48.0"
+Platform="Linux"
+
+[Mozilla/5.0 (*Windows NT 6.0*) AppleWebKit/* (KHTML* like Gecko) Chrome/48.*Safari/*]
+Parent="Chrome 48.0"
+Platform="WinVista"
+
+[Mozilla/5.0 (*Windows NT 6.1*) AppleWebKit/* (KHTML* like Gecko) Chrome/48.*Safari/*]
+Parent="Chrome 48.0"
+Platform="Win7"
+
+[Mozilla/5.0 (*Windows NT 6.2*) AppleWebKit/* (KHTML* like Gecko) Chrome/48.*Safari/*]
+Parent="Chrome 48.0"
+Platform="Win8"
+
+[Mozilla/5.0 (*Windows NT 6.3*) AppleWebKit/* (KHTML* like Gecko) Chrome/48.*Safari/*]
+Parent="Chrome 48.0"
+Platform="Win8.1"
+
+[Mozilla/5.0 (*Windows NT 6.4*) AppleWebKit/* (KHTML* like Gecko) Chrome/48.*Safari/*]
+Parent="Chrome 48.0"
+Platform="Win10"
+
+[Mozilla/5.0 (*Windows NT 10.0*) AppleWebKit/* (KHTML* like Gecko) Chrome/48.*Safari/*]
+Parent="Chrome 48.0"
+Platform="Win10"
+
+[Mozilla/5.0 (*Windows*) AppleWebKit/* (KHTML* like Gecko) Chrome/48.*Safari/*]
+Parent="Chrome 48.0"
+Platform="Win32"
+
+[Mozilla/5.0 (*Mac OS X*) AppleWebKit/* (KHTML* like Gecko) Chrome/48.*Safari/*]
+Parent="Chrome 48.0"
+Platform="MacOSX"
+
+[Mozilla/5.0 (*Linux*) AppleWebKit/* (KHTML,*like Gecko) Chrome/48.*]
+Parent="Chrome 48.0"
+Platform="Linux"
+
+[Mozilla/5.0 (*Windows NT 6.0*) AppleWebKit/* (KHTML* like Gecko) Chrome/48.*]
+Parent="Chrome 48.0"
+Platform="WinVista"
+
+[Mozilla/5.0 (*Windows NT 6.1*) AppleWebKit/* (KHTML* like Gecko) Chrome/48.*]
+Parent="Chrome 48.0"
+Platform="Win7"
+
+[Mozilla/5.0 (*Windows NT 6.2*) AppleWebKit/* (KHTML* like Gecko) Chrome/48.*]
+Parent="Chrome 48.0"
+Platform="Win8"
+
+[Mozilla/5.0 (*Windows NT 6.3*) AppleWebKit/* (KHTML* like Gecko) Chrome/48.*]
+Parent="Chrome 48.0"
+Platform="Win8.1"
+
+[Mozilla/5.0 (*Windows NT 6.4*) AppleWebKit/* (KHTML* like Gecko) Chrome/48.*]
+Parent="Chrome 48.0"
+Platform="Win10"
+
+[Mozilla/5.0 (*Windows NT 10.0*) AppleWebKit/* (KHTML* like Gecko) Chrome/48.*]
+Parent="Chrome 48.0"
+Platform="Win10"
+
+[Mozilla/5.0 (*Windows*) AppleWebKit/* (KHTML* like Gecko) Chrome/48.*]
+Parent="Chrome 48.0"
+Platform="Win32"
+
+[Mozilla/5.0 (*Mac OS X*) AppleWebKit/* (KHTML* like Gecko) Chrome/48.*]
+Parent="Chrome 48.0"
+Platform="MacOSX"
+
+[Mozilla/5.0 (*Windows NT 6.0*) AppleWebKit/* (KHTML* like Gecko) Chrome/48.*Chrome anonymized by*]
+Parent="Chrome 48.0"
+Platform="WinVista"
+
+[Mozilla/5.0 (*Windows NT 6.1*) AppleWebKit/* (KHTML* like Gecko) Chrome/48.*Chrome anonymized by*]
+Parent="Chrome 48.0"
+Platform="Win7"
+
+[Mozilla/5.0 (*Windows NT 6.2*) AppleWebKit/* (KHTML* like Gecko) Chrome/48.*Chrome anonymized by*]
+Parent="Chrome 48.0"
+Platform="Win8"
+
+[Mozilla/5.0 (*Windows NT 6.3*) AppleWebKit/* (KHTML* like Gecko) Chrome/48.*Chrome anonymized by*]
+Parent="Chrome 48.0"
+Platform="Win8.1"
+
+[Mozilla/5.0 (*Windows NT 6.4*) AppleWebKit/* (KHTML* like Gecko) Chrome/48.*Chrome anonymized by*]
+Parent="Chrome 48.0"
+Platform="Win10"
+
+[Mozilla/5.0 (*Windows NT 10.0*) AppleWebKit/* (KHTML* like Gecko) Chrome/48.*Chrome anonymized by*]
+Parent="Chrome 48.0"
+Platform="Win10"
+
+[Mozilla/5.0 (*Windows*) AppleWebKit/* (KHTML* like Gecko) Chrome/48.*Chrome anonymized by*]
+Parent="Chrome 48.0"
+Platform="Win32"
+
+[Mozilla/5.0 (*Windows NT 6.0*) AppleWebKit/* (KHTML* like Gecko) Chrome/48.*Anonymisiert durch*]
+Parent="Chrome 48.0"
+Platform="WinVista"
+
+[Mozilla/5.0 (*Windows NT 6.1*) AppleWebKit/* (KHTML* like Gecko) Chrome/48.*Anonymisiert durch*]
+Parent="Chrome 48.0"
+Platform="Win7"
+
+[Mozilla/5.0 (*Windows NT 6.2*) AppleWebKit/* (KHTML* like Gecko) Chrome/48.*Anonymisiert durch*]
+Parent="Chrome 48.0"
+Platform="Win8"
+
+[Mozilla/5.0 (*Windows NT 6.3*) AppleWebKit/* (KHTML* like Gecko) Chrome/48.*Anonymisiert durch*]
+Parent="Chrome 48.0"
+Platform="Win8.1"
+
+[Mozilla/5.0 (*Windows NT 6.4*) AppleWebKit/* (KHTML* like Gecko) Chrome/48.*Anonymisiert durch*]
+Parent="Chrome 48.0"
+Platform="Win10"
+
+[Mozilla/5.0 (*Windows NT 10.0*) AppleWebKit/* (KHTML* like Gecko) Chrome/48.*Anonymisiert durch*]
+Parent="Chrome 48.0"
+Platform="Win10"
+
+[Mozilla/5.0 (*Windows*) AppleWebKit/* (KHTML* like Gecko) Chrome/48.*Anonymisiert durch*]
+Parent="Chrome 48.0"
+Platform="Win32"
+
+[Mozilla/5.0 (*Linux*) AppleWebKit/*(KHTML,like Gecko) Chrome/48.*]
+Parent="Chrome 48.0"
+Platform="Linux"
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Chrome 47.0
+
+[Chrome 47.0 for Android]
+Parent="DefaultProperties"
+Comment="Chrome 47.0"
+Browser="Chrome"
+Version="47.0"
+Platform="Android"
+isMobileDevice="true"
+Device_Type="Mobile Phone"
+
+[Mozilla/5.0 (*Linux*Android*) AppleWebKit/* (KHTML* like Gecko) Chrome/47.*Safari/*]
+Parent="Chrome 47.0 for Android"
+
+[Mozilla/5.0 (*Linux*Android*)*AppleWebKit/* (KHTML* like Gecko) Chrome/47.*Safari/*]
+Parent="Chrome 47.0 for Android"
+
+[Mozilla/5.0 (*Linux*Android*) AppleWebKit/* (KHTML* like Gecko) 47.*Safari/*]
+Parent="Chrome 47.0 for Android"
+
+[Mozilla/5.0 (*Linux*Android*) AppleWebKit/* (KHTML* like Gecko*) Chrome/47.*Safari/*]
+Parent="Chrome 47.0 for Android"
+
+[Mozilla/5.0 (*Linux*Android*) AppleWebKit/* (KHTML* like Gecko)*CrMo/47.*Safari/*]
+Parent="Chrome 47.0 for Android"
+
+[Chrome 47.0 for iOS]
+Parent="DefaultProperties"
+Comment="Chrome 47.0"
+Browser="Chrome"
+Version="47.0"
+Platform="iOS"
+isMobileDevice="true"
+Device_Type="Mobile Device"
+
+[Mozilla/5.0 (iPad*CPU*OS* like Mac OS X*) AppleWebKit/* (KHTML* like Gecko) *CriOS/47.*Safari/*]
+Parent="Chrome 47.0 for iOS"
+isTablet="true"
+Device_Type="Tablet"
+
+[Mozilla/5.0 (iPhone*CPU*OS* like Mac OS X*) AppleWebKit/* (KHTML* like Gecko) *CriOS/47.*Safari/*]
+Parent="Chrome 47.0 for iOS"
+Device_Type="Mobile Phone"
+
+[Mozilla/5.0 (iPod*CPU*OS* like Mac OS X*) AppleWebKit/* (KHTML* like Gecko) *CriOS/47.*Safari/*]
+Parent="Chrome 47.0 for iOS"
+
+[Mozilla/5.0 (*CPU*OS* like Mac OS X*) AppleWebKit/* (KHTML* like Gecko) *CriOS/47.*Safari/*]
+Parent="Chrome 47.0 for iOS"
+
+[Chrome 47.0]
+Parent="DefaultProperties"
+Comment="Chrome 47.0"
+Browser="Chrome"
+Version="47.0"
+Device_Type="Desktop"
+
+[Mozilla/5.0 (*Linux*) AppleWebKit/* (KHTML* like Gecko) Chrome/47.*Safari/*]
+Parent="Chrome 47.0"
+Platform="Linux"
+
+[Mozilla/5.0 (*Windows NT 6.0*) AppleWebKit/* (KHTML* like Gecko) Chrome/47.*Safari/*]
+Parent="Chrome 47.0"
+Platform="WinVista"
+
+[Mozilla/5.0 (*Windows NT 6.1*) AppleWebKit/* (KHTML* like Gecko) Chrome/47.*Safari/*]
+Parent="Chrome 47.0"
+Platform="Win7"
+
+[Mozilla/5.0 (*Windows NT 6.2*) AppleWebKit/* (KHTML* like Gecko) Chrome/47.*Safari/*]
+Parent="Chrome 47.0"
+Platform="Win8"
+
+[Mozilla/5.0 (*Windows NT 6.3*) AppleWebKit/* (KHTML* like Gecko) Chrome/47.*Safari/*]
+Parent="Chrome 47.0"
+Platform="Win8.1"
+
+[Mozilla/5.0 (*Windows NT 6.4*) AppleWebKit/* (KHTML* like Gecko) Chrome/47.*Safari/*]
+Parent="Chrome 47.0"
+Platform="Win10"
+
+[Mozilla/5.0 (*Windows NT 10.0*) AppleWebKit/* (KHTML* like Gecko) Chrome/47.*Safari/*]
+Parent="Chrome 47.0"
+Platform="Win10"
+
+[Mozilla/5.0 (*Windows*) AppleWebKit/* (KHTML* like Gecko) Chrome/47.*Safari/*]
+Parent="Chrome 47.0"
+Platform="Win32"
+
+[Mozilla/5.0 (*Mac OS X*) AppleWebKit/* (KHTML* like Gecko) Chrome/47.*Safari/*]
+Parent="Chrome 47.0"
+Platform="MacOSX"
+
+[Mozilla/5.0 (*Linux*) AppleWebKit/* (KHTML,*like Gecko) Chrome/47.*]
+Parent="Chrome 47.0"
+Platform="Linux"
+
+[Mozilla/5.0 (*Windows NT 6.0*) AppleWebKit/* (KHTML* like Gecko) Chrome/47.*]
+Parent="Chrome 47.0"
+Platform="WinVista"
+
+[Mozilla/5.0 (*Windows NT 6.1*) AppleWebKit/* (KHTML* like Gecko) Chrome/47.*]
+Parent="Chrome 47.0"
+Platform="Win7"
+
+[Mozilla/5.0 (*Windows NT 6.2*) AppleWebKit/* (KHTML* like Gecko) Chrome/47.*]
+Parent="Chrome 47.0"
+Platform="Win8"
+
+[Mozilla/5.0 (*Windows NT 6.3*) AppleWebKit/* (KHTML* like Gecko) Chrome/47.*]
+Parent="Chrome 47.0"
+Platform="Win8.1"
+
+[Mozilla/5.0 (*Windows NT 6.4*) AppleWebKit/* (KHTML* like Gecko) Chrome/47.*]
+Parent="Chrome 47.0"
+Platform="Win10"
+
+[Mozilla/5.0 (*Windows NT 10.0*) AppleWebKit/* (KHTML* like Gecko) Chrome/47.*]
+Parent="Chrome 47.0"
+Platform="Win10"
+
+[Mozilla/5.0 (*Windows*) AppleWebKit/* (KHTML* like Gecko) Chrome/47.*]
+Parent="Chrome 47.0"
+Platform="Win32"
+
+[Mozilla/5.0 (*Mac OS X*) AppleWebKit/* (KHTML* like Gecko) Chrome/47.*]
+Parent="Chrome 47.0"
+Platform="MacOSX"
+
+[Mozilla/5.0 (*Windows NT 6.0*) AppleWebKit/* (KHTML* like Gecko) Chrome/47.*Chrome anonymized by*]
+Parent="Chrome 47.0"
+Platform="WinVista"
+
+[Mozilla/5.0 (*Windows NT 6.1*) AppleWebKit/* (KHTML* like Gecko) Chrome/47.*Chrome anonymized by*]
+Parent="Chrome 47.0"
+Platform="Win7"
+
+[Mozilla/5.0 (*Windows NT 6.2*) AppleWebKit/* (KHTML* like Gecko) Chrome/47.*Chrome anonymized by*]
+Parent="Chrome 47.0"
+Platform="Win8"
+
+[Mozilla/5.0 (*Windows NT 6.3*) AppleWebKit/* (KHTML* like Gecko) Chrome/47.*Chrome anonymized by*]
+Parent="Chrome 47.0"
+Platform="Win8.1"
+
+[Mozilla/5.0 (*Windows NT 6.4*) AppleWebKit/* (KHTML* like Gecko) Chrome/47.*Chrome anonymized by*]
+Parent="Chrome 47.0"
+Platform="Win10"
+
+[Mozilla/5.0 (*Windows NT 10.0*) AppleWebKit/* (KHTML* like Gecko) Chrome/47.*Chrome anonymized by*]
+Parent="Chrome 47.0"
+Platform="Win10"
+
+[Mozilla/5.0 (*Windows*) AppleWebKit/* (KHTML* like Gecko) Chrome/47.*Chrome anonymized by*]
+Parent="Chrome 47.0"
+Platform="Win32"
+
+[Mozilla/5.0 (*Windows NT 6.0*) AppleWebKit/* (KHTML* like Gecko) Chrome/47.*Anonymisiert durch*]
+Parent="Chrome 47.0"
+Platform="WinVista"
+
+[Mozilla/5.0 (*Windows NT 6.1*) AppleWebKit/* (KHTML* like Gecko) Chrome/47.*Anonymisiert durch*]
+Parent="Chrome 47.0"
+Platform="Win7"
+
+[Mozilla/5.0 (*Windows NT 6.2*) AppleWebKit/* (KHTML* like Gecko) Chrome/47.*Anonymisiert durch*]
+Parent="Chrome 47.0"
+Platform="Win8"
+
+[Mozilla/5.0 (*Windows NT 6.3*) AppleWebKit/* (KHTML* like Gecko) Chrome/47.*Anonymisiert durch*]
+Parent="Chrome 47.0"
+Platform="Win8.1"
+
+[Mozilla/5.0 (*Windows NT 6.4*) AppleWebKit/* (KHTML* like Gecko) Chrome/47.*Anonymisiert durch*]
+Parent="Chrome 47.0"
+Platform="Win10"
+
+[Mozilla/5.0 (*Windows NT 10.0*) AppleWebKit/* (KHTML* like Gecko) Chrome/47.*Anonymisiert durch*]
+Parent="Chrome 47.0"
+Platform="Win10"
+
+[Mozilla/5.0 (*Windows*) AppleWebKit/* (KHTML* like Gecko) Chrome/47.*Anonymisiert durch*]
+Parent="Chrome 47.0"
+Platform="Win32"
+
+[Mozilla/5.0 (*Linux*) AppleWebKit/*(KHTML,like Gecko) Chrome/47.*]
+Parent="Chrome 47.0"
+Platform="Linux"
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Chrome 46.0
+
+[Chrome 46.0 for Android]
+Parent="DefaultProperties"
+Comment="Chrome 46.0"
+Browser="Chrome"
+Version="46.0"
+Platform="Android"
+isMobileDevice="true"
+Device_Type="Mobile Phone"
+
+[Mozilla/5.0 (*Linux*Android*) AppleWebKit/* (KHTML* like Gecko) Chrome/46.*Safari/*]
+Parent="Chrome 46.0 for Android"
+
+[Mozilla/5.0 (*Linux*Android*)*AppleWebKit/* (KHTML* like Gecko) Chrome/46.*Safari/*]
+Parent="Chrome 46.0 for Android"
+
+[Mozilla/5.0 (*Linux*Android*) AppleWebKit/* (KHTML* like Gecko) 46.*Safari/*]
+Parent="Chrome 46.0 for Android"
+
+[Mozilla/5.0 (*Linux*Android*) AppleWebKit/* (KHTML* like Gecko*) Chrome/46.*Safari/*]
+Parent="Chrome 46.0 for Android"
+
+[Mozilla/5.0 (*Linux*Android*) AppleWebKit/* (KHTML* like Gecko)*CrMo/46.*Safari/*]
+Parent="Chrome 46.0 for Android"
+
+[Chrome 46.0 for iOS]
+Parent="DefaultProperties"
+Comment="Chrome 46.0"
+Browser="Chrome"
+Version="46.0"
+Platform="iOS"
+isMobileDevice="true"
+Device_Type="Mobile Device"
+
+[Mozilla/5.0 (iPad*CPU*OS* like Mac OS X*) AppleWebKit/* (KHTML* like Gecko) *CriOS/46.*Safari/*]
+Parent="Chrome 46.0 for iOS"
+isTablet="true"
+Device_Type="Tablet"
+
+[Mozilla/5.0 (iPhone*CPU*OS* like Mac OS X*) AppleWebKit/* (KHTML* like Gecko) *CriOS/46.*Safari/*]
+Parent="Chrome 46.0 for iOS"
+Device_Type="Mobile Phone"
+
+[Mozilla/5.0 (iPod*CPU*OS* like Mac OS X*) AppleWebKit/* (KHTML* like Gecko) *CriOS/46.*Safari/*]
+Parent="Chrome 46.0 for iOS"
+
+[Mozilla/5.0 (*CPU*OS* like Mac OS X*) AppleWebKit/* (KHTML* like Gecko) *CriOS/46.*Safari/*]
+Parent="Chrome 46.0 for iOS"
+
+[Chrome 46.0]
+Parent="DefaultProperties"
+Comment="Chrome 46.0"
+Browser="Chrome"
+Version="46.0"
+Device_Type="Desktop"
+
+[Mozilla/5.0 (*Linux*) AppleWebKit/* (KHTML* like Gecko) Chrome/46.*Safari/*]
+Parent="Chrome 46.0"
+Platform="Linux"
+
+[Mozilla/5.0 (*Windows NT 6.0*) AppleWebKit/* (KHTML* like Gecko) Chrome/46.*Safari/*]
+Parent="Chrome 46.0"
+Platform="WinVista"
+
+[Mozilla/5.0 (*Windows NT 6.1*) AppleWebKit/* (KHTML* like Gecko) Chrome/46.*Safari/*]
+Parent="Chrome 46.0"
+Platform="Win7"
+
+[Mozilla/5.0 (*Windows NT 6.2*) AppleWebKit/* (KHTML* like Gecko) Chrome/46.*Safari/*]
+Parent="Chrome 46.0"
+Platform="Win8"
+
+[Mozilla/5.0 (*Windows NT 6.3*) AppleWebKit/* (KHTML* like Gecko) Chrome/46.*Safari/*]
+Parent="Chrome 46.0"
+Platform="Win8.1"
+
+[Mozilla/5.0 (*Windows NT 6.4*) AppleWebKit/* (KHTML* like Gecko) Chrome/46.*Safari/*]
+Parent="Chrome 46.0"
+Platform="Win10"
+
+[Mozilla/5.0 (*Windows NT 10.0*) AppleWebKit/* (KHTML* like Gecko) Chrome/46.*Safari/*]
+Parent="Chrome 46.0"
+Platform="Win10"
+
+[Mozilla/5.0 (*Windows*) AppleWebKit/* (KHTML* like Gecko) Chrome/46.*Safari/*]
+Parent="Chrome 46.0"
+Platform="Win32"
+
+[Mozilla/5.0 (*Mac OS X*) AppleWebKit/* (KHTML* like Gecko) Chrome/46.*Safari/*]
+Parent="Chrome 46.0"
+Platform="MacOSX"
+
+[Mozilla/5.0 (*Linux*) AppleWebKit/* (KHTML,*like Gecko) Chrome/46.*]
+Parent="Chrome 46.0"
+Platform="Linux"
+
+[Mozilla/5.0 (*Windows NT 6.0*) AppleWebKit/* (KHTML* like Gecko) Chrome/46.*]
+Parent="Chrome 46.0"
+Platform="WinVista"
+
+[Mozilla/5.0 (*Windows NT 6.1*) AppleWebKit/* (KHTML* like Gecko) Chrome/46.*]
+Parent="Chrome 46.0"
+Platform="Win7"
+
+[Mozilla/5.0 (*Windows NT 6.2*) AppleWebKit/* (KHTML* like Gecko) Chrome/46.*]
+Parent="Chrome 46.0"
+Platform="Win8"
+
+[Mozilla/5.0 (*Windows NT 6.3*) AppleWebKit/* (KHTML* like Gecko) Chrome/46.*]
+Parent="Chrome 46.0"
+Platform="Win8.1"
+
+[Mozilla/5.0 (*Windows NT 6.4*) AppleWebKit/* (KHTML* like Gecko) Chrome/46.*]
+Parent="Chrome 46.0"
+Platform="Win10"
+
+[Mozilla/5.0 (*Windows NT 10.0*) AppleWebKit/* (KHTML* like Gecko) Chrome/46.*]
+Parent="Chrome 46.0"
+Platform="Win10"
+
+[Mozilla/5.0 (*Windows*) AppleWebKit/* (KHTML* like Gecko) Chrome/46.*]
+Parent="Chrome 46.0"
+Platform="Win32"
+
+[Mozilla/5.0 (*Mac OS X*) AppleWebKit/* (KHTML* like Gecko) Chrome/46.*]
+Parent="Chrome 46.0"
+Platform="MacOSX"
+
+[Mozilla/5.0 (*Windows NT 6.0*) AppleWebKit/* (KHTML* like Gecko) Chrome/46.*Chrome anonymized by*]
+Parent="Chrome 46.0"
+Platform="WinVista"
+
+[Mozilla/5.0 (*Windows NT 6.1*) AppleWebKit/* (KHTML* like Gecko) Chrome/46.*Chrome anonymized by*]
+Parent="Chrome 46.0"
+Platform="Win7"
+
+[Mozilla/5.0 (*Windows NT 6.2*) AppleWebKit/* (KHTML* like Gecko) Chrome/46.*Chrome anonymized by*]
+Parent="Chrome 46.0"
+Platform="Win8"
+
+[Mozilla/5.0 (*Windows NT 6.3*) AppleWebKit/* (KHTML* like Gecko) Chrome/46.*Chrome anonymized by*]
+Parent="Chrome 46.0"
+Platform="Win8.1"
+
+[Mozilla/5.0 (*Windows NT 6.4*) AppleWebKit/* (KHTML* like Gecko) Chrome/46.*Chrome anonymized by*]
+Parent="Chrome 46.0"
+Platform="Win10"
+
+[Mozilla/5.0 (*Windows NT 10.0*) AppleWebKit/* (KHTML* like Gecko) Chrome/46.*Chrome anonymized by*]
+Parent="Chrome 46.0"
+Platform="Win10"
+
+[Mozilla/5.0 (*Windows*) AppleWebKit/* (KHTML* like Gecko) Chrome/46.*Chrome anonymized by*]
+Parent="Chrome 46.0"
+Platform="Win32"
+
+[Mozilla/5.0 (*Windows NT 6.0*) AppleWebKit/* (KHTML* like Gecko) Chrome/46.*Anonymisiert durch*]
+Parent="Chrome 46.0"
+Platform="WinVista"
+
+[Mozilla/5.0 (*Windows NT 6.1*) AppleWebKit/* (KHTML* like Gecko) Chrome/46.*Anonymisiert durch*]
+Parent="Chrome 46.0"
+Platform="Win7"
+
+[Mozilla/5.0 (*Windows NT 6.2*) AppleWebKit/* (KHTML* like Gecko) Chrome/46.*Anonymisiert durch*]
+Parent="Chrome 46.0"
+Platform="Win8"
+
+[Mozilla/5.0 (*Windows NT 6.3*) AppleWebKit/* (KHTML* like Gecko) Chrome/46.*Anonymisiert durch*]
+Parent="Chrome 46.0"
+Platform="Win8.1"
+
+[Mozilla/5.0 (*Windows NT 6.4*) AppleWebKit/* (KHTML* like Gecko) Chrome/46.*Anonymisiert durch*]
+Parent="Chrome 46.0"
+Platform="Win10"
+
+[Mozilla/5.0 (*Windows NT 10.0*) AppleWebKit/* (KHTML* like Gecko) Chrome/46.*Anonymisiert durch*]
+Parent="Chrome 46.0"
+Platform="Win10"
+
+[Mozilla/5.0 (*Windows*) AppleWebKit/* (KHTML* like Gecko) Chrome/46.*Anonymisiert durch*]
+Parent="Chrome 46.0"
+Platform="Win32"
+
+[Mozilla/5.0 (*Linux*) AppleWebKit/*(KHTML,like Gecko) Chrome/46.*]
+Parent="Chrome 46.0"
+Platform="Linux"
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Chrome 45.0
+
+[Chrome 45.0 for Android]
+Parent="DefaultProperties"
+Comment="Chrome 45.0"
+Browser="Chrome"
+Version="45.0"
+Platform="Android"
+isMobileDevice="true"
+Device_Type="Mobile Phone"
+
+[Mozilla/5.0 (*Linux*Android*) AppleWebKit/* (KHTML* like Gecko) Chrome/45.*Safari/*]
+Parent="Chrome 45.0 for Android"
+
+[Mozilla/5.0 (*Linux*Android*)*AppleWebKit/* (KHTML* like Gecko) Chrome/45.*Safari/*]
+Parent="Chrome 45.0 for Android"
+
+[Mozilla/5.0 (*Linux*Android*) AppleWebKit/* (KHTML* like Gecko) 45.*Safari/*]
+Parent="Chrome 45.0 for Android"
+
+[Mozilla/5.0 (*Linux*Android*) AppleWebKit/* (KHTML* like Gecko*) Chrome/45.*Safari/*]
+Parent="Chrome 45.0 for Android"
+
+[Mozilla/5.0 (*Linux*Android*) AppleWebKit/* (KHTML* like Gecko)*CrMo/45.*Safari/*]
+Parent="Chrome 45.0 for Android"
+
+[Chrome 45.0 for iOS]
+Parent="DefaultProperties"
+Comment="Chrome 45.0"
+Browser="Chrome"
+Version="45.0"
+Platform="iOS"
+isMobileDevice="true"
+Device_Type="Mobile Device"
+
+[Mozilla/5.0 (iPad*CPU*OS* like Mac OS X*) AppleWebKit/* (KHTML* like Gecko) *CriOS/45.*Safari/*]
+Parent="Chrome 45.0 for iOS"
+isTablet="true"
+Device_Type="Tablet"
+
+[Mozilla/5.0 (iPhone*CPU*OS* like Mac OS X*) AppleWebKit/* (KHTML* like Gecko) *CriOS/45.*Safari/*]
+Parent="Chrome 45.0 for iOS"
+Device_Type="Mobile Phone"
+
+[Mozilla/5.0 (iPod*CPU*OS* like Mac OS X*) AppleWebKit/* (KHTML* like Gecko) *CriOS/45.*Safari/*]
+Parent="Chrome 45.0 for iOS"
+
+[Mozilla/5.0 (*CPU*OS* like Mac OS X*) AppleWebKit/* (KHTML* like Gecko) *CriOS/45.*Safari/*]
+Parent="Chrome 45.0 for iOS"
+
+[Chrome 45.0]
+Parent="DefaultProperties"
+Comment="Chrome 45.0"
+Browser="Chrome"
+Version="45.0"
+Device_Type="Desktop"
+
+[Mozilla/5.0 (*Linux*) AppleWebKit/* (KHTML* like Gecko) Chrome/45.*Safari/*]
+Parent="Chrome 45.0"
+Platform="Linux"
+
+[Mozilla/5.0 (*Windows NT 6.0*) AppleWebKit/* (KHTML* like Gecko) Chrome/45.*Safari/*]
+Parent="Chrome 45.0"
+Platform="WinVista"
+
+[Mozilla/5.0 (*Windows NT 6.1*) AppleWebKit/* (KHTML* like Gecko) Chrome/45.*Safari/*]
+Parent="Chrome 45.0"
+Platform="Win7"
+
+[Mozilla/5.0 (*Windows NT 6.2*) AppleWebKit/* (KHTML* like Gecko) Chrome/45.*Safari/*]
+Parent="Chrome 45.0"
+Platform="Win8"
+
+[Mozilla/5.0 (*Windows NT 6.3*) AppleWebKit/* (KHTML* like Gecko) Chrome/45.*Safari/*]
+Parent="Chrome 45.0"
+Platform="Win8.1"
+
+[Mozilla/5.0 (*Windows NT 6.4*) AppleWebKit/* (KHTML* like Gecko) Chrome/45.*Safari/*]
+Parent="Chrome 45.0"
+Platform="Win10"
+
+[Mozilla/5.0 (*Windows NT 10.0*) AppleWebKit/* (KHTML* like Gecko) Chrome/45.*Safari/*]
+Parent="Chrome 45.0"
+Platform="Win10"
+
+[Mozilla/5.0 (*Windows*) AppleWebKit/* (KHTML* like Gecko) Chrome/45.*Safari/*]
+Parent="Chrome 45.0"
+Platform="Win32"
+
+[Mozilla/5.0 (*Mac OS X*) AppleWebKit/* (KHTML* like Gecko) Chrome/45.*Safari/*]
+Parent="Chrome 45.0"
+Platform="MacOSX"
+
+[Mozilla/5.0 (*Linux*) AppleWebKit/* (KHTML,*like Gecko) Chrome/45.*]
+Parent="Chrome 45.0"
+Platform="Linux"
+
+[Mozilla/5.0 (*Windows NT 6.0*) AppleWebKit/* (KHTML* like Gecko) Chrome/45.*]
+Parent="Chrome 45.0"
+Platform="WinVista"
+
+[Mozilla/5.0 (*Windows NT 6.1*) AppleWebKit/* (KHTML* like Gecko) Chrome/45.*]
+Parent="Chrome 45.0"
+Platform="Win7"
+
+[Mozilla/5.0 (*Windows NT 6.2*) AppleWebKit/* (KHTML* like Gecko) Chrome/45.*]
+Parent="Chrome 45.0"
+Platform="Win8"
+
+[Mozilla/5.0 (*Windows NT 6.3*) AppleWebKit/* (KHTML* like Gecko) Chrome/45.*]
+Parent="Chrome 45.0"
+Platform="Win8.1"
+
+[Mozilla/5.0 (*Windows NT 6.4*) AppleWebKit/* (KHTML* like Gecko) Chrome/45.*]
+Parent="Chrome 45.0"
+Platform="Win10"
+
+[Mozilla/5.0 (*Windows NT 10.0*) AppleWebKit/* (KHTML* like Gecko) Chrome/45.*]
+Parent="Chrome 45.0"
+Platform="Win10"
+
+[Mozilla/5.0 (*Windows*) AppleWebKit/* (KHTML* like Gecko) Chrome/45.*]
+Parent="Chrome 45.0"
+Platform="Win32"
+
+[Mozilla/5.0 (*Mac OS X*) AppleWebKit/* (KHTML* like Gecko) Chrome/45.*]
+Parent="Chrome 45.0"
+Platform="MacOSX"
+
+[Mozilla/5.0 (*Windows NT 6.0*) AppleWebKit/* (KHTML* like Gecko) Chrome/45.*Chrome anonymized by*]
+Parent="Chrome 45.0"
+Platform="WinVista"
+
+[Mozilla/5.0 (*Windows NT 6.1*) AppleWebKit/* (KHTML* like Gecko) Chrome/45.*Chrome anonymized by*]
+Parent="Chrome 45.0"
+Platform="Win7"
+
+[Mozilla/5.0 (*Windows NT 6.2*) AppleWebKit/* (KHTML* like Gecko) Chrome/45.*Chrome anonymized by*]
+Parent="Chrome 45.0"
+Platform="Win8"
+
+[Mozilla/5.0 (*Windows NT 6.3*) AppleWebKit/* (KHTML* like Gecko) Chrome/45.*Chrome anonymized by*]
+Parent="Chrome 45.0"
+Platform="Win8.1"
+
+[Mozilla/5.0 (*Windows NT 6.4*) AppleWebKit/* (KHTML* like Gecko) Chrome/45.*Chrome anonymized by*]
+Parent="Chrome 45.0"
+Platform="Win10"
+
+[Mozilla/5.0 (*Windows NT 10.0*) AppleWebKit/* (KHTML* like Gecko) Chrome/45.*Chrome anonymized by*]
+Parent="Chrome 45.0"
+Platform="Win10"
+
+[Mozilla/5.0 (*Windows*) AppleWebKit/* (KHTML* like Gecko) Chrome/45.*Chrome anonymized by*]
+Parent="Chrome 45.0"
+Platform="Win32"
+
+[Mozilla/5.0 (*Windows NT 6.0*) AppleWebKit/* (KHTML* like Gecko) Chrome/45.*Anonymisiert durch*]
+Parent="Chrome 45.0"
+Platform="WinVista"
+
+[Mozilla/5.0 (*Windows NT 6.1*) AppleWebKit/* (KHTML* like Gecko) Chrome/45.*Anonymisiert durch*]
+Parent="Chrome 45.0"
+Platform="Win7"
+
+[Mozilla/5.0 (*Windows NT 6.2*) AppleWebKit/* (KHTML* like Gecko) Chrome/45.*Anonymisiert durch*]
+Parent="Chrome 45.0"
+Platform="Win8"
+
+[Mozilla/5.0 (*Windows NT 6.3*) AppleWebKit/* (KHTML* like Gecko) Chrome/45.*Anonymisiert durch*]
+Parent="Chrome 45.0"
+Platform="Win8.1"
+
+[Mozilla/5.0 (*Windows NT 6.4*) AppleWebKit/* (KHTML* like Gecko) Chrome/45.*Anonymisiert durch*]
+Parent="Chrome 45.0"
+Platform="Win10"
+
+[Mozilla/5.0 (*Windows NT 10.0*) AppleWebKit/* (KHTML* like Gecko) Chrome/45.*Anonymisiert durch*]
+Parent="Chrome 45.0"
+Platform="Win10"
+
+[Mozilla/5.0 (*Windows*) AppleWebKit/* (KHTML* like Gecko) Chrome/45.*Anonymisiert durch*]
+Parent="Chrome 45.0"
+Platform="Win32"
+
+[Mozilla/5.0 (*Linux*) AppleWebKit/*(KHTML,like Gecko) Chrome/45.*]
+Parent="Chrome 45.0"
+Platform="Linux"
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Chrome Generic
+
+[Chrome Generic for Android]
+Parent="DefaultProperties"
+Comment="Chrome Generic"
+Browser="Chrome"
+Platform="Android"
+isMobileDevice="true"
+Device_Type="Mobile Phone"
+
+[Mozilla/5.0 (*Linux*Android*) AppleWebKit/* (KHTML* like Gecko) Chrome/*Safari/*]
+Parent="Chrome Generic for Android"
+
+[Mozilla/5.0 (*Linux*Android*) AppleWebKit/* (KHTML, like Gecko*) Chrome/*Safari/*]
+Parent="Chrome Generic for Android"
+
+[Mozilla/5.0 (*Linux*Android*) AppleWebKit/*(KHTML,*like Gecko) Chrome/*Safari/*]
+Parent="Chrome Generic for Android"
+
+[Mozilla/5.0 (*Linux*Android*) AppleWebKit/* (KHTML* like Gecko)*CrMo/*Safari/*]
+Parent="Chrome Generic for Android"
+
+[Chrome Generic for iOS]
+Parent="DefaultProperties"
+Comment="Chrome Generic"
+Browser="Chrome"
+Platform="iOS"
+isMobileDevice="true"
+Device_Type="Mobile Device"
+
+[Mozilla/5.0 (iPad*CPU*OS* like Mac OS X*) AppleWebKit/* (KHTML* like Gecko) *CriOS/*Safari/*]
+Parent="Chrome Generic for iOS"
+isTablet="true"
+Device_Type="Tablet"
+
+[Mozilla/5.0 (iPhone*CPU*OS* like Mac OS X*) AppleWebKit/* (KHTML* like Gecko) *CriOS/*Safari/*]
+Parent="Chrome Generic for iOS"
+Device_Type="Mobile Phone"
+
+[Mozilla/5.0 (*CPU*OS* like Mac OS X*) AppleWebKit/* (KHTML* like Gecko) *CriOS/*Safari/*]
+Parent="Chrome Generic for iOS"
+
+[Chrome Generic]
+Parent="DefaultProperties"
+Comment="Chrome Generic"
+Browser="Chrome"
+Device_Type="Desktop"
+
+[Mozilla/5.0 (*Linux*) AppleWebKit/* (KHTML* like Gecko)*Chrome/* Large Screen Safari/* GoogleTV/*]
+Parent="Chrome Generic"
+Platform="Linux"
+Device_Type="TV Device"
+
+[Mozilla/5.0 (*Linux*) AppleWebKit/* (KHTML* like Gecko) Chrome/*Safari/*]
+Parent="Chrome Generic"
+Platform="Linux"
+
+[Mozilla/5.0 (*Windows NT 6.0*) AppleWebKit/* (KHTML* like Gecko) Chrome/*Safari/*]
+Parent="Chrome Generic"
+Platform="WinVista"
+
+[Mozilla/5.0 (*Windows NT 6.1*) AppleWebKit/* (KHTML* like Gecko) Chrome/*Safari/*]
+Parent="Chrome Generic"
+Platform="Win7"
+
+[Mozilla/5.0 (*Windows NT 6.2*) AppleWebKit/* (KHTML* like Gecko) Chrome/*Safari/*]
+Parent="Chrome Generic"
+Platform="Win8"
+
+[Mozilla/5.0 (*Windows NT 6.3*) AppleWebKit/* (KHTML* like Gecko) Chrome/*Safari/*]
+Parent="Chrome Generic"
+Platform="Win8.1"
+
+[Mozilla/5.0 (*Windows NT 6.4*) AppleWebKit/* (KHTML* like Gecko) Chrome/*Safari/*]
+Parent="Chrome Generic"
+Platform="Win10"
+
+[Mozilla/5.0 (*Windows NT 10.0*) AppleWebKit/* (KHTML* like Gecko) Chrome/*Safari/*]
+Parent="Chrome Generic"
+Platform="Win10"
+
+[Mozilla/5.0 (*Windows*) AppleWebKit/* (KHTML* like Gecko) Chrome/*Safari/*]
+Parent="Chrome Generic"
+Platform="Win32"
+
+[Mozilla/5.0 (*Mac OS X*) AppleWebKit/* (KHTML* like Gecko) Chrome/*Safari/*]
+Parent="Chrome Generic"
+Platform="MacOSX"
+
+[Mozilla/5.0 (*Windows NT 6.0*) AppleWebKit/* (KHTML* like Gecko) Chrome/*Chrome anonymized by*]
+Parent="Chrome Generic"
+Platform="WinVista"
+
+[Mozilla/5.0 (*Windows NT 6.1*) AppleWebKit/* (KHTML* like Gecko) Chrome/*Chrome anonymized by*]
+Parent="Chrome Generic"
+Platform="Win7"
+
+[Mozilla/5.0 (*Windows NT 6.2*) AppleWebKit/* (KHTML* like Gecko) Chrome/*Chrome anonymized by*]
+Parent="Chrome Generic"
+Platform="Win8"
+
+[Mozilla/5.0 (*Windows NT 6.3*) AppleWebKit/* (KHTML* like Gecko) Chrome/*Chrome anonymized by*]
+Parent="Chrome Generic"
+Platform="Win8.1"
+
+[Mozilla/5.0 (*Windows NT 6.4*) AppleWebKit/* (KHTML* like Gecko) Chrome/*Chrome anonymized by*]
+Parent="Chrome Generic"
+Platform="Win10"
+
+[Mozilla/5.0 (*Windows NT 10.0*) AppleWebKit/* (KHTML* like Gecko) Chrome/*Chrome anonymized by*]
+Parent="Chrome Generic"
+Platform="Win10"
+
+[Mozilla/5.0 (*Windows*) AppleWebKit/* (KHTML* like Gecko) Chrome/*Chrome anonymized by*]
+Parent="Chrome Generic"
+Platform="Win32"
+
+[Mozilla/5.0 (*Windows NT 6.0*) AppleWebKit/* (KHTML* like Gecko) Chrome/*Anonymisiert durch*]
+Parent="Chrome Generic"
+Platform="WinVista"
+
+[Mozilla/5.0 (*Windows NT 6.1*) AppleWebKit/* (KHTML* like Gecko) Chrome/*Anonymisiert durch*]
+Parent="Chrome Generic"
+Platform="Win7"
+
+[Mozilla/5.0 (*Windows NT 6.2*) AppleWebKit/* (KHTML* like Gecko) Chrome/*Anonymisiert durch*]
+Parent="Chrome Generic"
+Platform="Win8"
+
+[Mozilla/5.0 (*Windows NT 6.3*) AppleWebKit/* (KHTML* like Gecko) Chrome/*Anonymisiert durch*]
+Parent="Chrome Generic"
+Platform="Win8.1"
+
+[Mozilla/5.0 (*Windows NT 6.4*) AppleWebKit/* (KHTML* like Gecko) Chrome/*Anonymisiert durch*]
+Parent="Chrome Generic"
+Platform="Win10"
+
+[Mozilla/5.0 (*Windows NT 10.0*) AppleWebKit/* (KHTML* like Gecko) Chrome/*Anonymisiert durch*]
+Parent="Chrome Generic"
+Platform="Win10"
+
+[Mozilla/5.0 (*Windows*) AppleWebKit/* (KHTML* like Gecko) Chrome/*Anonymisiert durch*]
+Parent="Chrome Generic"
+Platform="Win32"
+
+[Mozilla/5.0 (*Linux*) AppleWebKit/* (KHTML* like Gecko) Sabayon Chrome/*]
+Parent="Chrome Generic"
+Platform="Linux"
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; IEMobile 11.0
+
+[IEMobile 11.0]
+Parent="DefaultProperties"
+Comment="IEMobile 11.0"
+Browser="IEMobile"
+Version="11.0"
+Platform="WinPhone8.1"
+isMobileDevice="true"
+Device_Type="Mobile Phone"
+
+[Mozilla/5.0*(*Windows Phone 8.1*Trident/7.0*rv:11*IEMobile?11.0) like Android *; compatible) like iPhone OS * Mac OS X WebKit/537.36 (KHTML* like Gecko) Chrome*Safari*]
+Parent="IEMobile 11.0"
+
+[Mozilla/5.0*(*Windows Phone 8.1*Trident/7.0*rv:11*IEMobile?11.0; NOKIA; Lumia 635*]
+Parent="IEMobile 11.0"
+
+[Mozilla/5.0*(*Windows Phone 8.1*Trident/7.0*rv:11*IEMobile?11.0; NOKIA; Lumia 930*]
+Parent="IEMobile 11.0"
+
+[Mozilla/5.0*(*Windows Phone 8.1*Trident/7.0*rv:11*IEMobile?11.0; NOKIA; Lumia 520*]
+Parent="IEMobile 11.0"
+
+[Mozilla/5.0*(*Windows Phone 8.1*Trident/7.0*rv:11*IEMobile?11.0; NOKIA; Lumia 630*]
+Parent="IEMobile 11.0"
+
+[Mozilla/5.0*(*Windows Phone 8.1*Trident/7.0*rv:11*IEMobile?11.0; NOKIA; Lumia 925*]
+Parent="IEMobile 11.0"
+
+[Mozilla/5.0*(*Windows Phone 8.1*Trident/7.0*rv:11*IEMobile?11.0; NOKIA; Lumia 920*]
+Parent="IEMobile 11.0"
+
+[Mozilla/5.0*(*Windows Phone 8.1*Trident/7.0*rv:11*IEMobile?11.0; NOKIA; Lumia 730*]
+Parent="IEMobile 11.0"
+
+[Mozilla/5.0*(*Windows Phone 8.1*Trident/7.0*rv:11.0*; IEMobile?11.0; NOKIA; Lumia 920*]
+Parent="IEMobile 11.0"
+
+[Mozilla/5.0*(*Windows Phone 8.1*Trident/7.0*rv:11.0*; IEMobile?11.0; NOKIA; RM-994*]
+Parent="IEMobile 11.0"
+
+[Mozilla/5.0*(*Windows Phone 8.1*Trident/7.0*rv:11.0*; IEMobile?11.0; Microsoft; RM-1089*]
+Parent="IEMobile 11.0"
+
+[Mozilla/5.0*(*Windows Phone 8.1*Trident/7.0*rv:11.0*; IEMobile?11.0; Microsoft; RM-1031*]
+Parent="IEMobile 11.0"
+
+[Mozilla/5.0*(*Windows Phone 8.1*Trident/7.0*rv:11.0*; IEMobile?11.0; Microsoft; RM-1090*]
+Parent="IEMobile 11.0"
+
+[Mozilla/5.0*(*Windows Phone 8.1*Trident/7.0*rv:11.0*; IEMobile?11.0; Microsoft; RM-1113*]
+Parent="IEMobile 11.0"
+
+[Mozilla/5.0*(*Windows Phone 8.1*Trident/7.0*rv:11.0*; IEMobile?11.0; Microsoft; RM-1074*]
+Parent="IEMobile 11.0"
+
+[Mozilla/5.0*(*Windows Phone 8.1*Trident/7.0*rv:11.0*; IEMobile?11.0; Microsoft;Lumia 535 Dual SIM*]
+Parent="IEMobile 11.0"
+
+[Mozilla/5.0*(*Windows Phone 8.1*Trident/7.0*rv:11*IEMobile?11.0; NOKIA; Lumia 928*]
+Parent="IEMobile 11.0"
+
+[Mozilla/5.0*(*Windows Phone 8.1*Trident/7.0*rv:11*IEMobile?11.0; NOKIA; Lumia 625*]
+Parent="IEMobile 11.0"
+
+[Mozilla/5.0*(*Windows Phone 8.1*Trident/7.0*rv:11*IEMobile?11.0; NOKIA; 909*]
+Parent="IEMobile 11.0"
+
+[Mozilla/5.0*(*Windows Phone 8.1*Trident/7.0*rv:11*IEMobile?11.0; NOKIA; Lumia 820*]
+Parent="IEMobile 11.0"
+
+[Mozilla/5.0*(*Windows Phone 8.1*Trident/7.0*rv:11*IEMobile?11.0; NOKIA; Lumia 620*]
+Parent="IEMobile 11.0"
+
+[Mozilla/5.0*(*Windows Phone 8.1*Trident/7.0*rv:11*IEMobile?11.0; NOKIA; Lumia 530*]
+Parent="IEMobile 11.0"
+
+[Mozilla/5.0*(*Windows Phone 8.1*Trident/7.0*rv:11*IEMobile?11.0*]
+Parent="IEMobile 11.0"
+
+[Mozilla/5.0 (Windows NT 6.2; ARM; Trident/7.0*rv:11.0; WPDesktop; NOKIA; Lumia 625*]
+Parent="IEMobile 11.0"
+
+[Mozilla/5.0 (Windows NT 6.2; ARM; Trident/7.0*rv:11.0; WPDesktop; NOKIA; Lumia 1320*]
+Parent="IEMobile 11.0"
+
+[Mozilla/5.0 (Windows NT 6.2; ARM; Trident/7.0*rv:11.0; WPDesktop; NOKIA; Lumia 820*]
+Parent="IEMobile 11.0"
+
+[Mozilla/5.0 (Windows NT 6.2; ARM; Trident/7.0*rv:11.0; WPDesktop; NOKIA; Lumia 920*]
+Parent="IEMobile 11.0"
+
+[Mozilla/5.0 (Windows NT 6.2; ARM; Trident/7.0*rv:11.0; WPDesktop; NOKIA; Lumia 630*]
+Parent="IEMobile 11.0"
+
+[Mozilla/5.0 (Windows NT 6.2; ARM; Trident/7.0*rv:11.0; WPDesktop; NOKIA; Lumia 520*]
+Parent="IEMobile 11.0"
+
+[Mozilla/5.0 (Windows NT 6.2; ARM; Trident/7.0*rv:11.0; WPDesktop; NOKIA; Lumia 1520*]
+Parent="IEMobile 11.0"
+
+[Mozilla/5.0 (Windows NT 6.2; ARM; Trident/7.0*rv:11.0; WPDesktop; NOKIA; Lumia 925*]
+Parent="IEMobile 11.0"
+
+[Mozilla/5.0 (Windows NT 6.2; ARM; Trident/7.0*rv:11.0; WPDesktop; NOKIA; Lumia 635*]
+Parent="IEMobile 11.0"
+
+[Mozilla/5.0 (Windows NT 6.2; ARM; Trident/7.0*rv:11.0; WPDesktop; NOKIA; 909*]
+Parent="IEMobile 11.0"
+
+[Mozilla/5.0 (Windows NT 6.2; ARM; Trident/7.0*rv:11.0; WPDesktop; NOKIA; Lumia 720*]
+Parent="IEMobile 11.0"
+
+[Mozilla/5.0 (Windows NT 6.2; ARM; Trident/7.0*rv:11.0; WPDesktop; *]
+Parent="IEMobile 11.0"
+
+[Mozilla/5.0*(*Windows Phone 8.1*Trident/8.0*rv:11*IEMobile?11.0) like Android *; compatible) like iPhone OS * Mac OS X WebKit/537.36 (KHTML* like Gecko) Chrome*Safari*]
+Parent="IEMobile 11.0"
+
+[Mozilla/5.0*(*Windows Phone 8.1*Trident/8.0*rv:11*IEMobile?11.0; NOKIA; Lumia 635*]
+Parent="IEMobile 11.0"
+
+[Mozilla/5.0*(*Windows Phone 8.1*Trident/8.0*rv:11*IEMobile?11.0; NOKIA; Lumia 930*]
+Parent="IEMobile 11.0"
+
+[Mozilla/5.0*(*Windows Phone 8.1*Trident/8.0*rv:11*IEMobile?11.0; NOKIA; Lumia 520*]
+Parent="IEMobile 11.0"
+
+[Mozilla/5.0*(*Windows Phone 8.1*Trident/8.0*rv:11*IEMobile?11.0; NOKIA; Lumia 630*]
+Parent="IEMobile 11.0"
+
+[Mozilla/5.0*(*Windows Phone 8.1*Trident/8.0*rv:11*IEMobile?11.0; NOKIA; Lumia 925*]
+Parent="IEMobile 11.0"
+
+[Mozilla/5.0*(*Windows Phone 8.1*Trident/8.0*rv:11*IEMobile?11.0; NOKIA; Lumia 920*]
+Parent="IEMobile 11.0"
+
+[Mozilla/5.0*(*Windows Phone 8.1*Trident/8.0*rv:11*IEMobile?11.0; NOKIA; Lumia 730*]
+Parent="IEMobile 11.0"
+
+[Mozilla/5.0*(*Windows Phone 8.1*Trident/8.0*rv:11.0*; IEMobile?11.0; NOKIA; Lumia 920*]
+Parent="IEMobile 11.0"
+
+[Mozilla/5.0*(*Windows Phone 8.1*Trident/8.0*rv:11*IEMobile?11.0; NOKIA; Lumia 928*]
+Parent="IEMobile 11.0"
+
+[Mozilla/5.0*(*Windows Phone 8.1*Trident/8.0*rv:11*IEMobile?11.0; NOKIA; Lumia 625*]
+Parent="IEMobile 11.0"
+
+[Mozilla/5.0*(*Windows Phone 8.1*Trident/8.0*rv:11*IEMobile?11.0; NOKIA; 909*]
+Parent="IEMobile 11.0"
+
+[Mozilla/5.0*(*Windows Phone 8.1*Trident/8.0*rv:11*IEMobile?11.0; NOKIA; Lumia 820*]
+Parent="IEMobile 11.0"
+
+[Mozilla/5.0*(*Windows Phone 8.1*Trident/8.0*rv:11*IEMobile?11.0; NOKIA; Lumia 620*]
+Parent="IEMobile 11.0"
+
+[Mozilla/5.0*(*Windows Phone 8.1*Trident/8.0*rv:11*IEMobile?11.0; NOKIA; Lumia 530*]
+Parent="IEMobile 11.0"
+
+[Mozilla/5.0*(*Windows Phone 8.1*Trident/8.0*rv:11*IEMobile?11.0*]
+Parent="IEMobile 11.0"
+
+[Mozilla/5.0 (Windows NT 6.2; ARM; Trident/8.0*rv:11.0; WPDesktop; NOKIA; Lumia 625*]
+Parent="IEMobile 11.0"
+
+[Mozilla/5.0 (Windows NT 6.2; ARM; Trident/8.0*rv:11.0; WPDesktop; NOKIA; Lumia 1320*]
+Parent="IEMobile 11.0"
+
+[Mozilla/5.0 (Windows NT 6.2; ARM; Trident/8.0*rv:11.0; WPDesktop; NOKIA; Lumia 820*]
+Parent="IEMobile 11.0"
+
+[Mozilla/5.0 (Windows NT 6.2; ARM; Trident/8.0*rv:11.0; WPDesktop; NOKIA; Lumia 920*]
+Parent="IEMobile 11.0"
+
+[Mozilla/5.0 (Windows NT 6.2; ARM; Trident/8.0*rv:11.0; WPDesktop; NOKIA; Lumia 630*]
+Parent="IEMobile 11.0"
+
+[Mozilla/5.0 (Windows NT 6.2; ARM; Trident/8.0*rv:11.0; WPDesktop; NOKIA; Lumia 520*]
+Parent="IEMobile 11.0"
+
+[Mozilla/5.0 (Windows NT 6.2; ARM; Trident/8.0*rv:11.0; WPDesktop; NOKIA; Lumia 1520*]
+Parent="IEMobile 11.0"
+
+[Mozilla/5.0 (Windows NT 6.2; ARM; Trident/8.0*rv:11.0; WPDesktop; NOKIA; Lumia 925*]
+Parent="IEMobile 11.0"
+
+[Mozilla/5.0 (Windows NT 6.2; ARM; Trident/8.0*rv:11.0; WPDesktop; NOKIA; Lumia 635*]
+Parent="IEMobile 11.0"
+
+[Mozilla/5.0 (Windows NT 6.2; ARM; Trident/8.0*rv:11.0; WPDesktop; NOKIA; 909*]
+Parent="IEMobile 11.0"
+
+[Mozilla/5.0 (Windows NT 6.2; ARM; Trident/8.0*rv:11.0; WPDesktop; NOKIA; Lumia 720*]
+Parent="IEMobile 11.0"
+
+[Mozilla/5.0 (Windows NT 6.2; ARM; Trident/8.0*rv:11.0; WPDesktop; *]
+Parent="IEMobile 11.0"
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Android Browser 5.1
+
+[Android Browser 5.1]
+Parent="DefaultProperties"
+Comment="Android Browser 5.1"
+Browser="Android"
+Version="5.1"
+Platform="Android"
+isMobileDevice="true"
+Device_Type="Mobile Phone"
+
+[Mozilla/5.0 (*Linux*Android* Build/* AppleWebKit/* (KHTML* like Gecko) Version/5.1* Mobile Safari*]
+Parent="Android Browser 5.1"
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Android Browser 5.0
+
+[Android Browser 5.0]
+Parent="DefaultProperties"
+Comment="Android Browser 5.0"
+Browser="Android"
+Version="5.0"
+Platform="Android"
+isMobileDevice="true"
+Device_Type="Mobile Phone"
+
+['Mozilla/5.0 (*Linux*Android* Build/*AppleWebKit/* (KHTML* like Gecko) Version/5.0* Mobile Safari*]
+Parent="Android Browser 5.0"
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Android Browser 4.4
+
+[Android Browser 4.4]
+Parent="DefaultProperties"
+Comment="Android Browser 4.4"
+Browser="Android"
+Version="4.4"
+Platform="Android"
+isMobileDevice="true"
+Device_Type="Mobile Phone"
+
+[Mozilla/5.0 (*Linux*Android*)*AppleWebKit/*(*KHTML* like Gecko*)*Version/4.4*Safari*]
+Parent="Android Browser 4.4"
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Android Browser 4.3
+
+[Android Browser 4.3]
+Parent="DefaultProperties"
+Comment="Android Browser 4.3"
+Browser="Android"
+Version="4.3"
+Platform="Android"
+isMobileDevice="true"
+Device_Type="Mobile Phone"
+
+[Mozilla/5.0 (*Linux*Android*)*AppleWebKit/*(*KHTML* like Gecko*)*Version/4.3*Safari*]
+Parent="Android Browser 4.3"
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Android Browser 4.2
+
+[Android Browser 4.2]
+Parent="DefaultProperties"
+Comment="Android Browser 4.2"
+Browser="Android"
+Version="4.2"
+Platform="Android"
+isMobileDevice="true"
+Device_Type="Mobile Phone"
+
+[Mozilla/5.0 (*Linux*Android*)*AppleWebKit/*(*KHTML* like Gecko*)*Version/4.2*Safari*]
+Parent="Android Browser 4.2"
+
+[*Mozilla/5.0 (*Linux*Android*) AppleWebKit/* (KHTML* like Gecko) Version/4.2*Safari*]
+Parent="Android Browser 4.2"
+
+[Mozilla/5.0 (*Linux*Android*) AppleWebKit* (KHTML,*like Gecko*) Version/4.2*Safari*]
+Parent="Android Browser 4.2"
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Android Browser 4.1
+
+[Android Browser 4.1]
+Parent="DefaultProperties"
+Comment="Android Browser 4.1"
+Browser="Android"
+Version="4.1"
+Platform="Android"
+isMobileDevice="true"
+Device_Type="Mobile Phone"
+
+[*Mozilla/5.0 (*Linux*Android*) AppleWebKit/* (KHTML* like Gecko) Version/4.1*Safari*]
+Parent="Android Browser 4.1"
+
+[Mozilla/5.0 (*Linux*Android*)*AppleWebKit/*(*KHTML* like Gecko*)*Version/4.1*Safari*]
+Parent="Android Browser 4.1"
+
+[Mozilla/5.0 (*Linux*Android*) AppleWebKit* (KHTML,*like Gecko*) Version/4.1*Safari*]
+Parent="Android Browser 4.1"
+
+[Mozilla/5.0 (*Linux*) AppleWebKit/* (KHTML* like Gecko) *Version/4.1* Safari/*]
+Parent="Android Browser 4.1"
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Android Browser 4.0
+
+[Android Browser 4.0]
+Parent="DefaultProperties"
+Comment="Android Browser 4.0"
+Browser="Android"
+Version="4.0"
+Platform="Android"
+isMobileDevice="true"
+Device_Type="Mobile Phone"
+
+[Mozilla/5.0 (Macintosh; *Mac OS X*; HTC/DesireHD/*) AppleWebKit/* (KHTML,*like Gecko*) Version/4.0*Safari*]
+Parent="Android Browser 4.0"
+
+[Mozilla/5.0 (Macintosh; *Mac OS X*; HTC/DesireS/*) AppleWebKit/* (KHTML,*like Gecko*) Version/4.0*Safari*]
+Parent="Android Browser 4.0"
+
+[Mozilla/5.0 (Macintosh; *Mac OS X*; HTC/Sensation/*) AppleWebKit/* (KHTML,*like Gecko*) Version/5.0*Safari*]
+Parent="Android Browser 4.0"
+
+[Mozilla/5.0 (Macintosh; *Mac OS X*; HTC/WildfireS/*) AppleWebKit/* (KHTML,*like Gecko*) Version/4.0*Safari*]
+Parent="Android Browser 4.0"
+
+[Mozilla/5.0 (Macintosh; *Mac OS X*; HTC_DesireHD_A9191; *) AppleWebKit/* (KHTML,*like Gecko*) Version/5.0*Safari*]
+Parent="Android Browser 4.0"
+
+[Mozilla/5.0 (Macintosh; *Mac OS X*; HTC_EVO3D_X515m; *) AppleWebKit/* (KHTML,*like Gecko*) Version/5.0*Safari*]
+Parent="Android Browser 4.0"
+
+[Mozilla/5.0 (Macintosh; *Mac OS X*; HTC_EVO3D_X515m; *) AppleWebKit/* (KHTML,*like Gecko*) Version/5.1*Safari*]
+Parent="Android Browser 4.0"
+
+[Mozilla/5.0 (Macintosh; *Mac OS X*; HTC_Flyer_P510e Build/*) AppleWebKit/* (KHTML,*like Gecko*) Version/4.0*Safari*]
+Parent="Android Browser 4.0"
+isTablet="true"
+Device_Type="Tablet"
+
+[Mozilla/5.0 (Macintosh; *Mac OS X*; HTC_Flyer_P510e; *) AppleWebKit/* (KHTML,*like Gecko*) Version/5.0*Safari*]
+Parent="Android Browser 4.0"
+isTablet="true"
+Device_Type="Tablet"
+
+[Mozilla/5.0 (Macintosh; *Mac OS X*; HTC_Flyer_P512; *) AppleWebKit/* (KHTML,*like Gecko*) Version/5.0*Safari*]
+Parent="Android Browser 4.0"
+isTablet="true"
+Device_Type="Tablet"
+
+[Mozilla/5.0 (Macintosh; *Mac OS X*; HTC_IncredibleS_S710e; *) AppleWebKit/* (KHTML,*like Gecko*) Version/5.0*Safari*]
+Parent="Android Browser 4.0"
+
+[Mozilla/5.0 (Macintosh; *Mac OS X*; HTC_Runnymede; *) AppleWebKit/* (KHTML,*like Gecko*) Version/5.0 Safari*]
+Parent="Android Browser 4.0"
+
+[Mozilla/5.0 (Macintosh; *Mac OS X*; HTC_Sensation; *) AppleWebKit/* (KHTML,*like Gecko*) Version/5.0*Safari*]
+Parent="Android Browser 4.0"
+
+[Mozilla/5.0 (Macintosh; *Mac OS X*; HTC_SensationXL_Beats_X315e; *) AppleWebKit/* (KHTML,*like Gecko*) Version/5.0 Safari*]
+Parent="Android Browser 4.0"
+
+[Mozilla/5.0 (Macintosh; *Mac OS X*; HTC_Sensation_Z710e; *) AppleWebKit/* (KHTML,*like Gecko*) Version/5.0*Safari*]
+Parent="Android Browser 4.0"
+
+[Mozilla/5.2 (Macintosh; *Mac OS X*; HTC_EVO3D_X515m; *) AppleWebKit/* (KHTML,*like Gecko*) Version/5.2*Safari*]
+Parent="Android Browser 4.0"
+
+[Mozilla/5.0 (Linux*; Android Eclair*Build/*) AppleWebKit/* (KHTML,*like Gecko*) Version/*Safari*]
+Parent="Android Browser 4.0"
+
+[Mozilla/5.0(*Linux*Android*) AppleWebKit/*(KHTML,*like Gecko*) Version/4.0*Safari*]
+Parent="Android Browser 4.0"
+
+[Mozilla/5.0 (*Linux*Android*NookColor*)*AppleWebKit/*(*KHTML* like Gecko*)*Version/4.*Safari/*]
+Parent="Android Browser 4.0"
+isTablet="true"
+Device_Type="Tablet"
+
+[Mozilla/5.0 (*Linux*Android*NOOK*)*AppleWebKit/*(*KHTML* like Gecko*)*Version/4.*Safari/*]
+Parent="Android Browser 4.0"
+isTablet="true"
+Device_Type="Tablet"
+
+[Mozilla/5.0 (*Linux*Android*A5000 Build/*) AppleWebKit* (KHTML,*like Gecko*) Version/4.0*Safari*]
+Parent="Android Browser 4.0"
+Device_Type="Digital Camera"
+
+[Mozilla/5.0 (*Linux*Android* Build/*)*AppleWebKit/*(*KHTML,*like Gecko*)*Version/4.0*Safari*]
+Parent="Android Browser 4.0"
+
+[Mozilla/5.0 (*Linux*Android*)*AppleWebKit/*(*KHTML,*like Gecko*)*Version/4.0*]
+Parent="Android Browser 4.0"
+
+[Mozilla/5.0 (*Linux*Android*) AppleWebKit*(KTHML,like Gecko) Version/4.0*Safari*]
+Parent="Android Browser 4.0"
+isTablet="true"
+Device_Type="Tablet"
+
+[Mozilla/5.0 (*Linux*Android*) AppleWebKit* (KHMTL,*like Gecko*) Version/4.0*Safari*]
+Parent="Android Browser 4.0"
+
+[Mozilla/5.0(*Linux*Android*)AppleWebKit/*(KHTML,*like Gecko)Version/4.0*Safari*]
+Parent="Android Browser 4.0"
+
+[Mozilla/5.0 (*Linux*Velocitymicro/T408*) AppleWebKit/*(KHTML* like Gecko) *Version/4.0*Safari/*]
+Parent="Android Browser 4.0"
+isTablet="true"
+Device_Type="Tablet"
+
+[Mozilla/5.0 (*Linux*) AppleWebKit/*(KHTML* like Gecko) *Version/4.0*Safari/*]
+Parent="Android Browser 4.0"
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Coast 4.0
+
+[Coast 4.0]
+Parent="DefaultProperties"
+Comment="Coast 4.0"
+Browser="Coast"
+Version="4.0"
+Platform="iOS"
+isMobileDevice="true"
+Device_Type="Mobile Device"
+
+[Opera%20Coast/4.0* CFNetwork/*]
+Parent="Coast 4.0"
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Coast 3.1
+
+[Coast 3.1]
+Parent="DefaultProperties"
+Comment="Coast 3.1"
+Browser="Coast"
+Version="3.1"
+Platform="iOS"
+isMobileDevice="true"
+Device_Type="Mobile Device"
+
+[Opera%20Coast/3.1* CFNetwork/*]
+Parent="Coast 3.1"
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Coast 3.0
+
+[Coast 3.0]
+Parent="DefaultProperties"
+Comment="Coast 3.0"
+Browser="Coast"
+Version="3.0"
+Platform="iOS"
+isMobileDevice="true"
+Device_Type="Mobile Device"
+
+[Opera%20Coast/3.0* CFNetwork/*]
+Parent="Coast 3.0"
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Coast
+
+[Coast]
+Parent="DefaultProperties"
+Comment="Coast"
+Browser="Coast"
+Platform="iOS"
+isMobileDevice="true"
+Device_Type="Mobile Device"
+
+[Opera%20Coast/* CFNetwork/*]
+Parent="Coast"
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Mobile Safari 9.2
+
+[Mobile Safari 9.2]
+Parent="DefaultProperties"
+Comment="Mobile Safari 9.2"
+Browser="Safari"
+Version="9.2"
+Platform="iOS"
+isMobileDevice="true"
+Device_Type="Mobile Device"
+
+[Mozilla/5.0 (iPad*CPU*OS* like Mac OS X*)*AppleWebKit/*(*KHTML* like Gecko*)*Version/9.2*Safari/*]
+Parent="Mobile Safari 9.2"
+isTablet="true"
+Device_Type="Tablet"
+
+[Mozilla/5.0 (iPhone*CPU*OS* like Mac OS X*)*AppleWebKit/*(*KHTML* like Gecko*)*Version/9.2*Safari/*]
+Parent="Mobile Safari 9.2"
+Device_Type="Mobile Phone"
+
+[Mozilla/5.0 (iPod*CPU*OS* like Mac OS X*)*AppleWebKit/*(*KHTML* like Gecko*)*Version/9.2*Safari/*]
+Parent="Mobile Safari 9.2"
+
+[Mozilla/5.0 (*CPU*OS* like Mac OS X*)*AppleWebKit/*(*KHTML* like Gecko*)*Version/9.2*Safari/*]
+Parent="Mobile Safari 9.2"
+
+[Mozilla/6.0 (iPad*CPU*OS* like Mac OS X*)*AppleWebKit/*(*KHTML* like Gecko*)*Version/9.2*Safari/*]
+Parent="Mobile Safari 9.2"
+isTablet="true"
+Device_Type="Tablet"
+
+[Mozilla/6.0 (iPhone*CPU*OS* like Mac OS X*)*AppleWebKit/*(*KHTML* like Gecko*)*Version/9.2*Safari/*]
+Parent="Mobile Safari 9.2"
+Device_Type="Mobile Phone"
+
+[Mozilla/6.0 (iPod*CPU*OS* like Mac OS X*)*AppleWebKit/*(*KHTML* like Gecko*)*Version/9.2*Safari/*]
+Parent="Mobile Safari 9.2"
+
+[Mozilla/6.0 (*CPU*OS* like Mac OS X*)*AppleWebKit/*(*KHTML* like Gecko*)*Version/9.2*Safari/*]
+Parent="Mobile Safari 9.2"
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Mobile Safari 9.1
+
+[Mobile Safari 9.1]
+Parent="DefaultProperties"
+Comment="Mobile Safari 9.1"
+Browser="Safari"
+Version="9.1"
+Platform="iOS"
+isMobileDevice="true"
+Device_Type="Mobile Device"
+
+[Mozilla/5.0 (iPad*CPU*OS* like Mac OS X*)*AppleWebKit/*(*KHTML* like Gecko*)*Version/9.1*Safari/*]
+Parent="Mobile Safari 9.1"
+isTablet="true"
+Device_Type="Tablet"
+
+[Mozilla/5.0 (iPhone*CPU*OS* like Mac OS X*)*AppleWebKit/*(*KHTML* like Gecko*)*Version/9.1*Safari/*]
+Parent="Mobile Safari 9.1"
+Device_Type="Mobile Phone"
+
+[Mozilla/5.0 (iPod*CPU*OS* like Mac OS X*)*AppleWebKit/*(*KHTML* like Gecko*)*Version/9.1*Safari/*]
+Parent="Mobile Safari 9.1"
+
+[Mozilla/5.0 (*CPU*OS* like Mac OS X*)*AppleWebKit/*(*KHTML* like Gecko*)*Version/9.1*Safari/*]
+Parent="Mobile Safari 9.1"
+
+[Mozilla/6.0 (iPad*CPU*OS* like Mac OS X*)*AppleWebKit/*(*KHTML* like Gecko*)*Version/9.1*Safari/*]
+Parent="Mobile Safari 9.1"
+isTablet="true"
+Device_Type="Tablet"
+
+[Mozilla/6.0 (iPhone*CPU*OS* like Mac OS X*)*AppleWebKit/*(*KHTML* like Gecko*)*Version/9.1*Safari/*]
+Parent="Mobile Safari 9.1"
+Device_Type="Mobile Phone"
+
+[Mozilla/6.0 (iPod*CPU*OS* like Mac OS X*)*AppleWebKit/*(*KHTML* like Gecko*)*Version/9.1*Safari/*]
+Parent="Mobile Safari 9.1"
+
+[Mozilla/6.0 (*CPU*OS* like Mac OS X*)*AppleWebKit/*(*KHTML* like Gecko*)*Version/9.1*Safari/*]
+Parent="Mobile Safari 9.1"
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Mobile Safari 9.0
+
+[Mobile Safari 9.0]
+Parent="DefaultProperties"
+Comment="Mobile Safari 9.0"
+Browser="Safari"
+Version="9.0"
+Platform="iOS"
+isMobileDevice="true"
+Device_Type="Mobile Device"
+
+[Mozilla/5.0 (iPad*CPU*OS* like Mac OS X*)*AppleWebKit/*(*KHTML* like Gecko*)*Version/9.0*Safari/*]
+Parent="Mobile Safari 9.0"
+isTablet="true"
+Device_Type="Tablet"
+
+[Mozilla/5.0 (iPhone*CPU*OS* like Mac OS X*)*AppleWebKit/*(*KHTML* like Gecko*)*Version/9.0*Safari/*]
+Parent="Mobile Safari 9.0"
+Device_Type="Mobile Phone"
+
+[Mozilla/5.0 (iPod*CPU*OS* like Mac OS X*)*AppleWebKit/*(*KHTML* like Gecko*)*Version/9.0*Safari/*]
+Parent="Mobile Safari 9.0"
+
+[Mozilla/5.0 (*CPU*OS* like Mac OS X*)*AppleWebKit/*(*KHTML* like Gecko*)*Version/9.0*Safari/*]
+Parent="Mobile Safari 9.0"
+
+[Mozilla/6.0 (iPad*CPU*OS* like Mac OS X*)*AppleWebKit/*(*KHTML* like Gecko*)*Version/9.0*Safari/*]
+Parent="Mobile Safari 9.0"
+isTablet="true"
+Device_Type="Tablet"
+
+[Mozilla/6.0 (iPhone*CPU*OS* like Mac OS X*)*AppleWebKit/*(*KHTML* like Gecko*)*Version/9.0*Safari/*]
+Parent="Mobile Safari 9.0"
+Device_Type="Mobile Phone"
+
+[Mozilla/6.0 (iPod*CPU*OS* like Mac OS X*)*AppleWebKit/*(*KHTML* like Gecko*)*Version/9.0*Safari/*]
+Parent="Mobile Safari 9.0"
+
+[Mozilla/6.0 (*CPU*OS* like Mac OS X*)*AppleWebKit/*(*KHTML* like Gecko*)*Version/9.0*Safari/*]
+Parent="Mobile Safari 9.0"
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Mobile Safari 8.1
+
+[Mobile Safari 8.1]
+Parent="DefaultProperties"
+Comment="Mobile Safari 8.1"
+Browser="Safari"
+Version="8.1"
+Platform="iOS"
+isMobileDevice="true"
+Device_Type="Mobile Device"
+
+[Mozilla/5.0 (iPad*CPU*OS* like Mac OS X*)*AppleWebKit/*(*KHTML* like Gecko*)*Version/8.1*Safari/*]
+Parent="Mobile Safari 8.1"
+isTablet="true"
+Device_Type="Tablet"
+
+[Mozilla/5.0 (iPhone*CPU*OS* like Mac OS X*)*AppleWebKit/*(*KHTML* like Gecko*)*Version/8.1*Safari/*]
+Parent="Mobile Safari 8.1"
+Device_Type="Mobile Phone"
+
+[Mozilla/5.0 (iPod*CPU*OS* like Mac OS X*)*AppleWebKit/*(*KHTML* like Gecko*)*Version/8.1*Safari/*]
+Parent="Mobile Safari 8.1"
+
+[Mozilla/5.0 (*CPU*OS* like Mac OS X*)*AppleWebKit/*(*KHTML* like Gecko*)*Version/8.1*Safari/*]
+Parent="Mobile Safari 8.1"
+
+[Mozilla/6.0 (iPad*CPU*OS* like Mac OS X*)*AppleWebKit/*(*KHTML* like Gecko*)*Version/8.1*Safari/*]
+Parent="Mobile Safari 8.1"
+isTablet="true"
+Device_Type="Tablet"
+
+[Mozilla/6.0 (iPhone*CPU*OS* like Mac OS X*)*AppleWebKit/*(*KHTML* like Gecko*)*Version/8.1*Safari/*]
+Parent="Mobile Safari 8.1"
+Device_Type="Mobile Phone"
+
+[Mozilla/6.0 (iPod*CPU*OS* like Mac OS X*)*AppleWebKit/*(*KHTML* like Gecko*)*Version/8.1*Safari/*]
+Parent="Mobile Safari 8.1"
+
+[Mozilla/6.0 (*CPU*OS* like Mac OS X*)*AppleWebKit/*(*KHTML* like Gecko*)*Version/8.1*Safari/*]
+Parent="Mobile Safari 8.1"
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Mobile Safari 8.0
+
+[Mobile Safari 8.0]
+Parent="DefaultProperties"
+Comment="Mobile Safari 8.0"
+Browser="Safari"
+Version="8.0"
+Platform="iOS"
+isMobileDevice="true"
+Device_Type="Mobile Device"
+
+[Mozilla/5.0 (iPad*CPU*OS* like Mac OS X*)*AppleWebKit/*(*KHTML* like Gecko*)*Version/8.0*Safari/*]
+Parent="Mobile Safari 8.0"
+isTablet="true"
+Device_Type="Tablet"
+
+[Mozilla/5.0 (iPhone*CPU*OS* like Mac OS X*)*AppleWebKit/*(*KHTML* like Gecko*)*Version/8.0*Safari/*]
+Parent="Mobile Safari 8.0"
+Device_Type="Mobile Phone"
+
+[Mozilla/5.0 (iPod*CPU*OS* like Mac OS X*)*AppleWebKit/*(*KHTML* like Gecko*)*Version/8.0*Safari/*]
+Parent="Mobile Safari 8.0"
+
+[Mozilla/5.0 (*CPU*OS* like Mac OS X*)*AppleWebKit/*(*KHTML* like Gecko*)*Version/8.0*Safari/*]
+Parent="Mobile Safari 8.0"
+
+[Mozilla/6.0 (iPad*CPU*OS* like Mac OS X*)*AppleWebKit/*(*KHTML* like Gecko*)*Version/8.0*Safari/*]
+Parent="Mobile Safari 8.0"
+isTablet="true"
+Device_Type="Tablet"
+
+[Mozilla/6.0 (iPhone*CPU*OS* like Mac OS X*)*AppleWebKit/*(*KHTML* like Gecko*)*Version/8.0*Safari/*]
+Parent="Mobile Safari 8.0"
+Device_Type="Mobile Phone"
+
+[Mozilla/6.0 (iPod*CPU*OS* like Mac OS X*)*AppleWebKit/*(*KHTML* like Gecko*)*Version/8.0*Safari/*]
+Parent="Mobile Safari 8.0"
+
+[Mozilla/6.0 (*CPU*OS* like Mac OS X*)*AppleWebKit/*(*KHTML* like Gecko*)*Version/8.0*Safari/*]
+Parent="Mobile Safari 8.0"
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Mobile Safari 7.1
+
+[Mobile Safari 7.1]
+Parent="DefaultProperties"
+Comment="Mobile Safari 7.1"
+Browser="Safari"
+Version="7.1"
+Platform="iOS"
+isMobileDevice="true"
+Device_Type="Mobile Device"
+
+[Mozilla/5.0 (iPad*CPU*OS* like Mac OS X*)*AppleWebKit/*(*KHTML* like Gecko*)*Version/7.1*Safari/*]
+Parent="Mobile Safari 7.1"
+isTablet="true"
+Device_Type="Tablet"
+
+[Mozilla/5.0 (iPhone*CPU*OS* like Mac OS X*)*AppleWebKit/*(*KHTML* like Gecko*)*Version/7.1*Safari/*]
+Parent="Mobile Safari 7.1"
+Device_Type="Mobile Phone"
+
+[Mozilla/5.0 (iPod*CPU*OS* like Mac OS X*)*AppleWebKit/*(*KHTML* like Gecko*)*Version/7.1*Safari/*]
+Parent="Mobile Safari 7.1"
+
+[Mozilla/5.0 (*CPU*OS* like Mac OS X*)*AppleWebKit/*(*KHTML* like Gecko*)*Version/7.1*Safari/*]
+Parent="Mobile Safari 7.1"
+
+[Mozilla/6.0 (iPad*CPU*OS* like Mac OS X*)*AppleWebKit/*(*KHTML* like Gecko*)*Version/7.1*Safari/*]
+Parent="Mobile Safari 7.1"
+isTablet="true"
+Device_Type="Tablet"
+
+[Mozilla/6.0 (iPhone*CPU*OS* like Mac OS X*)*AppleWebKit/*(*KHTML* like Gecko*)*Version/7.1*Safari/*]
+Parent="Mobile Safari 7.1"
+Device_Type="Mobile Phone"
+
+[Mozilla/6.0 (iPod*CPU*OS* like Mac OS X*)*AppleWebKit/*(*KHTML* like Gecko*)*Version/7.1*Safari/*]
+Parent="Mobile Safari 7.1"
+
+[Mozilla/6.0 (*CPU*OS* like Mac OS X*)*AppleWebKit/*(*KHTML* like Gecko*)*Version/7.1*Safari/*]
+Parent="Mobile Safari 7.1"
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Mobile Safari 7.0
+
+[Mobile Safari 7.0]
+Parent="DefaultProperties"
+Comment="Mobile Safari 7.0"
+Browser="Safari"
+Version="7.0"
+Platform="iOS"
+isMobileDevice="true"
+Device_Type="Mobile Device"
+
+[Mozilla/5.0 (iPad*CPU like Mac OS X*)*AppleWebKit/*(*KHTML* like Gecko*)*Version/7.0*Safari/*]
+Parent="Mobile Safari 7.0"
+isTablet="true"
+Device_Type="Tablet"
+
+[Mozilla/5.0 (iPad*CPU*OS* like Mac OS X*)*AppleWebKit/*(*KHTML* like Gecko*)*Version/7.0*Safari/*]
+Parent="Mobile Safari 7.0"
+isTablet="true"
+Device_Type="Tablet"
+
+[Mozilla/5.0 (iPhone*CPU like Mac OS X*)*AppleWebKit/*(*KHTML* like Gecko*)*Version/7.0*Safari/*]
+Parent="Mobile Safari 7.0"
+Device_Type="Mobile Phone"
+
+[Mozilla/5.0 (iPhone*CPU*OS* like Mac OS X*)*AppleWebKit/*(*KHTML* like Gecko*)*Version/7.0*Safari/*]
+Parent="Mobile Safari 7.0"
+Device_Type="Mobile Phone"
+
+[Mozilla/5.0 (iPod*CPU like Mac OS X*)*AppleWebKit/*(*KHTML* like Gecko*)*Version/7.0*Safari/*]
+Parent="Mobile Safari 7.0"
+
+[Mozilla/5.0 (iPod*CPU*OS* like Mac OS X*)*AppleWebKit/*(*KHTML* like Gecko*)*Version/7.0*Safari/*]
+Parent="Mobile Safari 7.0"
+
+[Mozilla/5.0 (*CPU like Mac OS X*)*AppleWebKit/*(*KHTML* like Gecko*)*Version/7.0*Safari/*]
+Parent="Mobile Safari 7.0"
+
+[Mozilla/5.0 (*CPU*OS* like Mac OS X*)*AppleWebKit/*(*KHTML* like Gecko*)*Version/7.0*Safari/*]
+Parent="Mobile Safari 7.0"
+
+[MobileSafari/95??.* CFNetwork/*]
+Parent="Mobile Safari 7.0"
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Mobile Safari 6.1
+
+[Mobile Safari 6.1]
+Parent="DefaultProperties"
+Comment="Mobile Safari 6.1"
+Browser="Safari"
+Version="6.1"
+Platform="iOS"
+isMobileDevice="true"
+Device_Type="Mobile Device"
+
+[Mozilla/5.0 (iPad*CPU*OS* like Mac OS X*)*AppleWebKit/*(*KHTML* like Gecko*)*Version/6.1*Safari/*]
+Parent="Mobile Safari 6.1"
+isTablet="true"
+Device_Type="Tablet"
+
+[Mozilla/5.0 (iPhone*CPU*OS* like Mac OS X*)*AppleWebKit/*(*KHTML* like Gecko*)*Version/6.1*Safari/*]
+Parent="Mobile Safari 6.1"
+Device_Type="Mobile Phone"
+
+[Mozilla/5.0 (iPod*CPU*OS* like Mac OS X*)*AppleWebKit/*(*KHTML* like Gecko*)*Version/6.1*Safari/*]
+Parent="Mobile Safari 6.1"
+
+[Mozilla/5.0 (*CPU*OS* like Mac OS X*)*AppleWebKit/*(*KHTML* like Gecko*)*Version/6.1*Safari/*]
+Parent="Mobile Safari 6.1"
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Mobile Safari 6.0
+
+[Mobile Safari 6.0]
+Parent="DefaultProperties"
+Comment="Mobile Safari 6.0"
+Browser="Safari"
+Version="6.0"
+Platform="iOS"
+isMobileDevice="true"
+Device_Type="Mobile Device"
+
+[Mozilla/5.0 (iPad*CPU*OS* like Mac OS X*)*AppleWebKit/*(*KHTML* like Gecko*)*Version/6.0*Safari/*]
+Parent="Mobile Safari 6.0"
+isTablet="true"
+Device_Type="Tablet"
+
+[Mozilla/5.0 (iPhone*CPU*OS* like Mac OS X*)*AppleWebKit/*(*KHTML* like Gecko*)*Version/6.0*Safari/*]
+Parent="Mobile Safari 6.0"
+Device_Type="Mobile Phone"
+
+[Mozilla/5.0 (iPod*CPU*OS* like Mac OS X*)*AppleWebKit/*(*KHTML* like Gecko*)*Version/6.0*Safari/*]
+Parent="Mobile Safari 6.0"
+
+[Mozilla/5.0 (*CPU*OS* like Mac OS X*)*AppleWebKit/*(*KHTML* like Gecko*)*Version/6.0*Safari/*]
+Parent="Mobile Safari 6.0"
+
+[MobileSafari/85??.* CFNetwork/*]
+Parent="Mobile Safari 6.0"
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Mobile Safari Generic
+
+[Mobile Safari Generic]
+Parent="DefaultProperties"
+Comment="Mobile Safari Generic"
+Browser="Safari"
+Platform="iOS"
+isMobileDevice="true"
+Device_Type="Mobile Device"
+
+[Mozilla/5.0 (iPad*CPU*OS* like Mac OS X*)*AppleWebKit/*(*KHTML* like Gecko*)*Version/*Safari/*]
+Parent="Mobile Safari Generic"
+isTablet="true"
+Device_Type="Tablet"
+
+[Mozilla/5.0 (iPhone*CPU*OS* like Mac OS X*)*AppleWebKit/*(*KHTML* like Gecko*)*Version/*Safari/*]
+Parent="Mobile Safari Generic"
+Device_Type="Mobile Phone"
+
+[Mozilla/5.0 (iPod*CPU*OS* like Mac OS X*)*AppleWebKit/*(*KHTML* like Gecko*)*Version/*Safari/*]
+Parent="Mobile Safari Generic"
+
+[Mozilla/5.0 (*CPU*OS* like Mac OS X*)*AppleWebKit/*(*KHTML* like Gecko*)*Version/*Safari/*]
+Parent="Mobile Safari Generic"
+
+[Mozilla/6.0 (iPad*CPU*OS* like Mac OS X*)*AppleWebKit/*(*KHTML* like Gecko*)*Version/*Safari/*]
+Parent="Mobile Safari Generic"
+isTablet="true"
+Device_Type="Tablet"
+
+[Mozilla/6.0 (*CPU*OS* like Mac OS X*)*AppleWebKit/*(*KHTML* like Gecko*)*Version/*Safari/*]
+Parent="Mobile Safari Generic"
+
+[MobileSafari/* CFNetwork/*]
+Parent="Mobile Safari Generic"
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Mobile Safari UIWebView
+
+[Mobile Safari UIWebView]
+Parent="DefaultProperties"
+Comment="Mobile Safari UIWebView"
+Browser="Mobile Safari UIWebView"
+Platform="iOS"
+isMobileDevice="true"
+Device_Type="Mobile Device"
+
+[Mozilla/5.0 (iPad*CPU*OS* like Mac OS X*)*AppleWebKit/*(*KHTML* like Gecko*)*Mobile*]
+Parent="Mobile Safari UIWebView"
+isTablet="true"
+Device_Type="Tablet"
+
+[Mozilla/5.0*(iPhone*CPU*OS* like Mac OS X*)*AppleWebKit/*(*KHTML* like Gecko*)*Mobile*]
+Parent="Mobile Safari UIWebView"
+Device_Type="Mobile Phone"
+
+[Mozilla/5.0*(iPod*CPU*OS* like Mac OS X*)*AppleWebKit/*(*KHTML* like Gecko*)*Mobile*]
+Parent="Mobile Safari UIWebView"
+
+[Mozilla/5.0*(*CPU*OS* like Mac OS X*)*AppleWebKit/*(*KHTML* like Gecko*)*Mobile*]
+Parent="Mobile Safari UIWebView"
+
+[*iPad*]
+Parent="Mobile Safari UIWebView"
+isTablet="true"
+Device_Type="Tablet"
+
+[*iPhone*]
+Parent="Mobile Safari UIWebView"
+Device_Type="Mobile Phone"
+
+[*iPod*]
+Parent="Mobile Safari UIWebView"
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Safari 10.0
+
+[Safari 10.0]
+Parent="DefaultProperties"
+Comment="Safari 10.0"
+Browser="Safari"
+Version="10.0"
+Device_Type="Desktop"
+
+[Mozilla/5.0 (*Mac OS X*) AppleWebKit/* (KHTML* like Gecko) *Version/10.0* Safari/*]
+Parent="Safari 10.0"
+Platform="MacOSX"
+
+[Mozilla/5.0 (*Mac OS X*) AppleWebKit/* (KHTML* like Gecko) *Version/10.0*]
+Parent="Safari 10.0"
+Platform="MacOSX"
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Safari 9.1
+
+[Safari 9.1]
+Parent="DefaultProperties"
+Comment="Safari 9.1"
+Browser="Safari"
+Version="9.1"
+Device_Type="Desktop"
+
+[Mozilla/5.0 (*Linux*) AppleWebKit/* (KHTML* like Gecko) *Version/9.1* Safari/*]
+Parent="Safari 9.1"
+Platform="Linux"
+
+[Mozilla/5.0 (*Mac OS X*) AppleWebKit/* (KHTML* like Gecko) *Version/9.1* Safari/*]
+Parent="Safari 9.1"
+Platform="MacOSX"
+
+[Mozilla/5.0 (*Mac OS X*) AppleWebKit/* (KHTML* like Gecko) *Version/9.1*]
+Parent="Safari 9.1"
+Platform="MacOSX"
+
+[Safari 9.1 for SymbianOS]
+Parent="DefaultProperties"
+Comment="Safari 9.1"
+Browser="Safari"
+Version="9.1"
+isMobileDevice="true"
+Device_Type="Mobile Device"
+
+[Safari 9.0]
+Parent="DefaultProperties"
+Comment="Safari 9.0"
+Browser="Safari"
+Version="9.0"
+Device_Type="Desktop"
+
+[Mozilla/5.0 (*Linux*) AppleWebKit/* (KHTML* like Gecko) *Version/9.0* Safari/*]
+Parent="Safari 9.0"
+Platform="Linux"
+
+[Mozilla/5.0 (*Mac OS X*) AppleWebKit/* (KHTML* like Gecko) *Version/9.0* Safari/*]
+Parent="Safari 9.0"
+Platform="MacOSX"
+
+[Mozilla/5.0 (*Mac OS X*) AppleWebKit/* (KHTML* like Gecko) *Version/9.0*]
+Parent="Safari 9.0"
+Platform="MacOSX"
+
+[Safari 9.0 for SymbianOS]
+Parent="DefaultProperties"
+Comment="Safari 9.0"
+Browser="Safari"
+Version="9.0"
+isMobileDevice="true"
+Device_Type="Mobile Device"
+
+[Safari 8.1]
+Parent="DefaultProperties"
+Comment="Safari 8.1"
+Browser="Safari"
+Version="8.1"
+Device_Type="Desktop"
+
+[Mozilla/5.0 (*Linux*) AppleWebKit/* (KHTML* like Gecko) *Version/8.1* Safari/*]
+Parent="Safari 8.1"
+Platform="Linux"
+
+[Mozilla/5.0 (*Mac OS X*) AppleWebKit/* (KHTML* like Gecko) *Version/8.1* Safari/*]
+Parent="Safari 8.1"
+Platform="MacOSX"
+
+[Mozilla/5.0 (*Mac OS X*) AppleWebKit/* (KHTML* like Gecko) *Version/8.1*]
+Parent="Safari 8.1"
+Platform="MacOSX"
+
+[Safari 8.1 for SymbianOS]
+Parent="DefaultProperties"
+Comment="Safari 8.1"
+Browser="Safari"
+Version="8.1"
+isMobileDevice="true"
+Device_Type="Mobile Device"
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Safari 8.0
+
+[Safari 8.0]
+Parent="DefaultProperties"
+Comment="Safari 8.0"
+Browser="Safari"
+Version="8.0"
+Device_Type="Desktop"
+
+[Mozilla/5.0 (*Linux*) AppleWebKit/* (KHTML* like Gecko) *Version/8.0* Safari/*]
+Parent="Safari 8.0"
+Platform="Linux"
+
+[Mozilla/5.0 (*Mac OS X*) AppleWebKit/* (KHTML* like Gecko) *Version/8.0* Safari/*]
+Parent="Safari 8.0"
+Platform="MacOSX"
+
+[Mozilla/5.0 (*Mac OS X*) AppleWebKit/* (KHTML* like Gecko) *Version/8.0*]
+Parent="Safari 8.0"
+Platform="MacOSX"
+
+[Safari 8.0 for Darwin]
+Parent="DefaultProperties"
+Comment="Safari 8.0"
+Browser="Safari"
+Version="8.0"
+Platform="MacOSX"
+Device_Type="Desktop"
+
+[Safari/10???.* CFNetwork/*]
+Parent="Safari 8.0 for Darwin"
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Safari 7.1
+
+[Safari 7.1]
+Parent="DefaultProperties"
+Comment="Safari 7.1"
+Browser="Safari"
+Version="7.1"
+Device_Type="Desktop"
+
+[Mozilla/5.0 (*Linux*) AppleWebKit/* (KHTML* like Gecko) *Version/7.1* Safari/*]
+Parent="Safari 7.1"
+Platform="Linux"
+
+[Mozilla/5.0 (*Mac OS X*) AppleWebKit/* (KHTML* like Gecko) *Version/7.1* Safari/*]
+Parent="Safari 7.1"
+Platform="MacOSX"
+
+[Mozilla/5.0 (*Mac OS X*) AppleWebKit/* (KHTML* like Gecko) *Version/7.1*]
+Parent="Safari 7.1"
+Platform="MacOSX"
+
+[Safari 7.1 for SymbianOS]
+Parent="DefaultProperties"
+Comment="Safari 7.1"
+Browser="Safari"
+Version="7.1"
+isMobileDevice="true"
+Device_Type="Mobile Device"
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Safari 7.0
+
+[Safari 7.0]
+Parent="DefaultProperties"
+Comment="Safari 7.0"
+Browser="Safari"
+Version="7.0"
+Device_Type="Desktop"
+
+[Mozilla/5.0 (*Linux*) AppleWebKit/* (KHTML* like Gecko) *Version/7.0* Safari/*]
+Parent="Safari 7.0"
+Platform="Linux"
+
+[Mozilla/5.0 (*Mac OS X*) AppleWebKit/* (KHTML* like Gecko) *Version/7.0* Safari/*]
+Parent="Safari 7.0"
+Platform="MacOSX"
+
+[Mozilla/5.0 (*Mac OS X*) AppleWebKit/* (KHTML* like Gecko) *Version/7.0*]
+Parent="Safari 7.0"
+Platform="MacOSX"
+
+[Safari 7.0 for SymbianOS]
+Parent="DefaultProperties"
+Comment="Safari 7.0"
+Browser="Safari"
+Version="7.0"
+isMobileDevice="true"
+Device_Type="Mobile Device"
+
+[Safari 7.0 for Darwin]
+Parent="DefaultProperties"
+Comment="Safari 7.0"
+Browser="Safari"
+Version="7.0"
+Platform="MacOSX"
+Device_Type="Desktop"
+
+[Safari/95??.* CFNetwork/*]
+Parent="Safari 7.0 for Darwin"
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Safari 6.2
+
+[Safari 6.2]
+Parent="DefaultProperties"
+Comment="Safari 6.2"
+Browser="Safari"
+Version="6.2"
+Device_Type="Desktop"
+
+[Mozilla/5.0 (*Linux*) AppleWebKit/* (KHTML* like Gecko) *Version/6.2* Safari/*]
+Parent="Safari 6.2"
+Platform="Linux"
+
+[Mozilla/5.0 (*Mac OS X*) AppleWebKit/* (KHTML* like Gecko) *Version/6.2* Safari/*]
+Parent="Safari 6.2"
+Platform="MacOSX"
+
+[Mozilla/5.0 (*Mac OS X*) AppleWebKit/* (KHTML* like Gecko) *Version/6.2*]
+Parent="Safari 6.2"
+Platform="MacOSX"
+
+[Safari 6.2 for SymbianOS]
+Parent="DefaultProperties"
+Comment="Safari 6.2"
+Browser="Safari"
+Version="6.2"
+isMobileDevice="true"
+Device_Type="Mobile Device"
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Safari 6.1
+
+[Safari 6.1]
+Parent="DefaultProperties"
+Comment="Safari 6.1"
+Browser="Safari"
+Version="6.1"
+Device_Type="Desktop"
+
+[Mozilla/5.0 (*Linux*) AppleWebKit/* (KHTML* like Gecko) *Version/6.1* Safari/*]
+Parent="Safari 6.1"
+Platform="Linux"
+
+[Mozilla/5.0 (*Mac OS X*) AppleWebKit/* (KHTML* like Gecko) *Version/6.1* Safari/*]
+Parent="Safari 6.1"
+Platform="MacOSX"
+
+[Mozilla/5.0 (*Mac OS X*) AppleWebKit/* (KHTML* like Gecko) *Version/6.1*]
+Parent="Safari 6.1"
+Platform="MacOSX"
+
+[Safari 6.1 for SymbianOS]
+Parent="DefaultProperties"
+Comment="Safari 6.1"
+Browser="Safari"
+Version="6.1"
+isMobileDevice="true"
+Device_Type="Mobile Device"
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Safari 6.0
+
+[Safari 6.0]
+Parent="DefaultProperties"
+Comment="Safari 6.0"
+Browser="Safari"
+Version="6.0"
+Device_Type="Desktop"
+
+[Mozilla/5.0 (*Linux*) AppleWebKit/* (KHTML* like Gecko) *Version/6.0* Safari/*]
+Parent="Safari 6.0"
+Platform="Linux"
+
+[Mozilla/5.0 (*Mac OS X*) AppleWebKit/* (KHTML* like Gecko) *Version/6.0* Safari/*]
+Parent="Safari 6.0"
+Platform="MacOSX"
+
+[Mozilla/5.0 (*Mac OS X*) AppleWebKit/* (KHTML* like Gecko) *Version/6.0*]
+Parent="Safari 6.0"
+Platform="MacOSX"
+
+[Safari 6.0 for SymbianOS]
+Parent="DefaultProperties"
+Comment="Safari 6.0"
+Browser="Safari"
+Version="6.0"
+isMobileDevice="true"
+Device_Type="Mobile Device"
+
+[Safari 6.0 for Darwin]
+Parent="DefaultProperties"
+Comment="Safari 6.0"
+Browser="Safari"
+Version="6.0"
+Platform="MacOSX"
+Device_Type="Desktop"
+
+[Safari/85??.* CFNetwork/*]
+Parent="Safari 6.0 for Darwin"
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Safari Generic
+
+[Safari Generic]
+Parent="DefaultProperties"
+Comment="Safari Generic"
+Browser="Safari"
+Device_Type="Desktop"
+
+[Mozilla/5.0 (*Linux*) AppleWebKit/* (KHTML* like Gecko) *Version/* Safari/*]
+Parent="Safari Generic"
+Platform="Linux"
+
+[Mozilla/5.0 (*Windows NT 6.3*) AppleWebKit/* (KHTML* like Gecko) *Version/* Safari/*]
+Parent="Safari Generic"
+Platform="Win8.1"
+
+[Mozilla/5.0 (*Windows NT 6.2*) AppleWebKit/* (KHTML* like Gecko) *Version/* Safari/*]
+Parent="Safari Generic"
+Platform="Win8"
+
+[Mozilla/5.0 (*Windows NT 6.1*) AppleWebKit/* (KHTML* like Gecko) *Version/* Safari/*]
+Parent="Safari Generic"
+Platform="Win7"
+
+[Mozilla/5.0 (*Windows NT 6.0*) AppleWebKit/* (KHTML* like Gecko) *Version/* Safari/*]
+Parent="Safari Generic"
+Platform="WinVista"
+
+[Mozilla/5.0 (*Mac OS X*) AppleWebKit/* (KHTML* like Gecko) *Version/* Safari/*]
+Parent="Safari Generic"
+Platform="MacOSX"
+
+[Mozilla/5.0 (*Mac OS X*) AppleWebKit/* (KHTML* like Gecko)*Safari*]
+Parent="Safari Generic"
+Platform="MacOSX"
+
+[Mozilla/5.0 (*Mac OS X*) AppleWebKit/* (KHTML* like Gecko) *Version/*]
+Parent="Safari Generic"
+Platform="MacOSX"
+
+[Safari Generic for SymbianOS]
+Parent="DefaultProperties"
+Comment="Safari Generic"
+Browser="Safari"
+isMobileDevice="true"
+Device_Type="Mobile Device"
+
+[Safari Generic for Darwin]
+Parent="DefaultProperties"
+Comment="Safari Generic"
+Browser="Safari"
+Platform="MacOSX"
+Device_Type="Desktop"
+
+[Safari/* CFNetwork/*]
+Parent="Safari Generic for Darwin"
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; IE 11.0
+
+[IE 11.0 for Win RT]
+Parent="DefaultProperties"
+Comment="IE 11.0"
+Browser="IE"
+Version="11.0"
+isMobileDevice="true"
+isTablet="true"
+Device_Type="Tablet"
+
+[IE 11.0 for Tablet]
+Parent="DefaultProperties"
+Comment="IE 11.0"
+Browser="IE"
+Version="11.0"
+isMobileDevice="true"
+isTablet="true"
+Device_Type="Tablet"
+
+[Mozilla/5.0 (*Windows NT 6.2*Trident/7.0*Touch*rv:11.0*)*]
+Parent="IE 11.0 for Tablet"
+Platform="Win8"
+
+[Mozilla/5.0 (*Windows NT 6.3*Trident/7.0*Touch*rv:11.0*)*]
+Parent="IE 11.0 for Tablet"
+Platform="Win8.1"
+
+[Mozilla/5.0 (*Windows NT 6.4*Trident/7.0*Touch*rv:11.0*)*]
+Parent="IE 11.0 for Tablet"
+Platform="Win10"
+
+[Mozilla/5.0 (*Windows NT 10.0*Trident/7.0*Touch*rv:11.0*)*]
+Parent="IE 11.0 for Tablet"
+Platform="Win10"
+
+[Mozilla/5.0 (*Windows*Trident/7.0*Touch*rv:11.0*)*]
+Parent="IE 11.0 for Tablet"
+Platform="Win32"
+
+[Mozilla/4.0 (compatible; MSIE 7.0; *Windows NT 6.2*Trident/7.0*Touch*)*]
+Parent="IE 11.0 for Tablet"
+Comment="IE 11.0 in IE 7.0 Compatibility Mode"
+Platform="Win8"
+
+[Mozilla/4.0 (compatible; MSIE 7.0; *Windows NT 6.3*Trident/7.0*Touch*)*]
+Parent="IE 11.0 for Tablet"
+Comment="IE 11.0 in IE 7.0 Compatibility Mode"
+Platform="Win8.1"
+
+[Mozilla/4.0 (compatible; MSIE 7.0; *Windows NT 6.4*Trident/7.0*Touch*)*]
+Parent="IE 11.0 for Tablet"
+Comment="IE 11.0 in IE 7.0 Compatibility Mode"
+Platform="Win10"
+
+[Mozilla/4.0 (compatible; MSIE 7.0; *Windows NT 10.0*Trident/7.0*Touch*)*]
+Parent="IE 11.0 for Tablet"
+Comment="IE 11.0 in IE 7.0 Compatibility Mode"
+Platform="Win10"
+
+[Mozilla/4.0 (compatible; MSIE 7.0; *Windows*Trident/7.0*Touch*)*]
+Parent="IE 11.0 for Tablet"
+Comment="IE 11.0 in IE 7.0 Compatibility Mode"
+Platform="Win32"
+
+[Mozilla/5.0 (compatible; MSIE 7.0; *Windows NT 6.2*Trident/7.0*Touch*)*]
+Parent="IE 11.0 for Tablet"
+Comment="IE 11.0 in IE 7.0 Compatibility Mode"
+Platform="Win8"
+
+[Mozilla/5.0 (compatible; MSIE 7.0; *Windows NT 6.3*Trident/7.0*Touch*)*]
+Parent="IE 11.0 for Tablet"
+Comment="IE 11.0 in IE 7.0 Compatibility Mode"
+Platform="Win8.1"
+
+[Mozilla/5.0 (compatible; MSIE 7.0; *Windows NT 6.4*Trident/7.0*Touch*)*]
+Parent="IE 11.0 for Tablet"
+Comment="IE 11.0 in IE 7.0 Compatibility Mode"
+Platform="Win10"
+
+[Mozilla/5.0 (compatible; MSIE 7.0; *Windows NT 10.0*Trident/7.0*Touch*)*]
+Parent="IE 11.0 for Tablet"
+Comment="IE 11.0 in IE 7.0 Compatibility Mode"
+Platform="Win10"
+
+[Mozilla/5.0 (compatible; MSIE 7.0; *Windows*Trident/7.0*Touch*)*]
+Parent="IE 11.0 for Tablet"
+Comment="IE 11.0 in IE 7.0 Compatibility Mode"
+Platform="Win32"
+
+[Mozilla/4.0 (compatible; MSIE 8.0; *Windows NT 6.2*Trident/7.0*Touch*)*]
+Parent="IE 11.0 for Tablet"
+Comment="IE 11.0 in IE 8.0 Compatibility Mode"
+Platform="Win8"
+
+[Mozilla/4.0 (compatible; MSIE 8.0; *Windows NT 6.3*Trident/7.0*Touch*)*]
+Parent="IE 11.0 for Tablet"
+Comment="IE 11.0 in IE 8.0 Compatibility Mode"
+Platform="Win8.1"
+
+[Mozilla/4.0 (compatible; MSIE 8.0; *Windows NT 6.4*Trident/7.0*Touch*)*]
+Parent="IE 11.0 for Tablet"
+Comment="IE 11.0 in IE 8.0 Compatibility Mode"
+Platform="Win10"
+
+[Mozilla/4.0 (compatible; MSIE 8.0; *Windows NT 10.0*Trident/7.0*Touch*)*]
+Parent="IE 11.0 for Tablet"
+Comment="IE 11.0 in IE 8.0 Compatibility Mode"
+Platform="Win10"
+
+[Mozilla/4.0 (compatible; MSIE 8.0; *Windows*Trident/7.0*Touch*)*]
+Parent="IE 11.0 for Tablet"
+Comment="IE 11.0 in IE 8.0 Compatibility Mode"
+Platform="Win32"
+
+[Mozilla/5.0 (compatible; MSIE 8.0; *Windows NT 6.2*Trident/7.0*Touch*)*]
+Parent="IE 11.0 for Tablet"
+Comment="IE 11.0 in IE 8.0 Compatibility Mode"
+Platform="Win8"
+
+[Mozilla/5.0 (compatible; MSIE 8.0; *Windows NT 6.3*Trident/7.0*Touch*)*]
+Parent="IE 11.0 for Tablet"
+Comment="IE 11.0 in IE 8.0 Compatibility Mode"
+Platform="Win8.1"
+
+[Mozilla/5.0 (compatible; MSIE 8.0; *Windows NT 6.4*Trident/7.0*Touch*)*]
+Parent="IE 11.0 for Tablet"
+Comment="IE 11.0 in IE 8.0 Compatibility Mode"
+Platform="Win10"
+
+[Mozilla/5.0 (compatible; MSIE 8.0; *Windows NT 10.0*Trident/7.0*Touch*)*]
+Parent="IE 11.0 for Tablet"
+Comment="IE 11.0 in IE 8.0 Compatibility Mode"
+Platform="Win10"
+
+[Mozilla/5.0 (compatible; MSIE 8.0; *Windows*Trident/7.0*Touch*)*]
+Parent="IE 11.0 for Tablet"
+Comment="IE 11.0 in IE 8.0 Compatibility Mode"
+Platform="Win32"
+
+[Mozilla/5.0 (compatible; MSIE 9.0; *Windows NT 6.2*Trident/7.0*Touch*)*]
+Parent="IE 11.0 for Tablet"
+Comment="IE 11.0 in IE 9.0 Compatibility Mode"
+Platform="Win8"
+
+[Mozilla/5.0 (compatible; MSIE 9.0; *Windows NT 6.3*Trident/7.0*Touch*)*]
+Parent="IE 11.0 for Tablet"
+Comment="IE 11.0 in IE 9.0 Compatibility Mode"
+Platform="Win8.1"
+
+[Mozilla/5.0 (compatible; MSIE 9.0; *Windows NT 6.4*Trident/7.0*Touch*)*]
+Parent="IE 11.0 for Tablet"
+Comment="IE 11.0 in IE 9.0 Compatibility Mode"
+Platform="Win10"
+
+[Mozilla/5.0 (compatible; MSIE 9.0; *Windows NT 10.0*Trident/7.0*Touch*)*]
+Parent="IE 11.0 for Tablet"
+Comment="IE 11.0 in IE 9.0 Compatibility Mode"
+Platform="Win10"
+
+[Mozilla/5.0 (compatible; MSIE 9.0; *Windows*Trident/7.0*Touch*)*]
+Parent="IE 11.0 for Tablet"
+Comment="IE 11.0 in IE 9.0 Compatibility Mode"
+Platform="Win32"
+
+[Mozilla/4.0 (compatible; MSIE 9.0; *Windows NT 6.2*Trident/7.0*Touch*)*]
+Parent="IE 11.0 for Tablet"
+Comment="IE 11.0 in IE 9.0 Compatibility Mode"
+Platform="Win8"
+
+[Mozilla/4.0 (compatible; MSIE 9.0; *Windows NT 6.3*Trident/7.0*Touch*)*]
+Parent="IE 11.0 for Tablet"
+Comment="IE 11.0 in IE 9.0 Compatibility Mode"
+Platform="Win8.1"
+
+[Mozilla/4.0 (compatible; MSIE 9.0; *Windows NT 6.4*Trident/7.0*Touch*)*]
+Parent="IE 11.0 for Tablet"
+Comment="IE 11.0 in IE 9.0 Compatibility Mode"
+Platform="Win10"
+
+[Mozilla/4.0 (compatible; MSIE 9.0; *Windows NT 10.0*Trident/7.0*Touch*)*]
+Parent="IE 11.0 for Tablet"
+Comment="IE 11.0 in IE 9.0 Compatibility Mode"
+Platform="Win10"
+
+[Mozilla/4.0 (compatible; MSIE 9.0; *Windows*Trident/7.0*Touch*)*]
+Parent="IE 11.0 for Tablet"
+Comment="IE 11.0 in IE 9.0 Compatibility Mode"
+Platform="Win32"
+
+[Mozilla/5.0 (compatible; MSIE 10.0; *Windows NT 6.2*Trident/7.0*Touch*)*]
+Parent="IE 11.0 for Tablet"
+Comment="IE 11.0 in IE 10.0 Compatibility Mode"
+Platform="Win8"
+
+[Mozilla/5.0 (compatible; MSIE 10.0; *Windows NT 6.3*Trident/7.0*Touch*)*]
+Parent="IE 11.0 for Tablet"
+Comment="IE 11.0 in IE 10.0 Compatibility Mode"
+Platform="Win8.1"
+
+[Mozilla/5.0 (compatible; MSIE 10.0; *Windows NT 6.4*Trident/7.0*Touch*)*]
+Parent="IE 11.0 for Tablet"
+Comment="IE 11.0 in IE 10.0 Compatibility Mode"
+Platform="Win10"
+
+[Mozilla/5.0 (compatible; MSIE 10.0; *Windows NT 10.0*Trident/7.0*Touch*)*]
+Parent="IE 11.0 for Tablet"
+Comment="IE 11.0 in IE 10.0 Compatibility Mode"
+Platform="Win10"
+
+[Mozilla/5.0 (compatible; MSIE 10.0; *Windows*Trident/7.0*Touch*)*]
+Parent="IE 11.0 for Tablet"
+Comment="IE 11.0 in IE 10.0 Compatibility Mode"
+Platform="Win32"
+
+[Mozilla/5.0 (*Windows NT 6.2*Trident/8.0*Touch*rv:11.0*)*]
+Parent="IE 11.0 for Tablet"
+Platform="Win8"
+
+[Mozilla/5.0 (*Windows NT 6.3*Trident/8.0*Touch*rv:11.0*)*]
+Parent="IE 11.0 for Tablet"
+Platform="Win8.1"
+
+[Mozilla/5.0 (*Windows NT 6.4*Trident/8.0*Touch*rv:11.0*)*]
+Parent="IE 11.0 for Tablet"
+Platform="Win10"
+
+[Mozilla/5.0 (*Windows NT 10.0*Trident/8.0*Touch*rv:11.0*)*]
+Parent="IE 11.0 for Tablet"
+Platform="Win10"
+
+[Mozilla/5.0 (*Windows*Trident/8.0*Touch*rv:11.0*)*]
+Parent="IE 11.0 for Tablet"
+Platform="Win32"
+
+[Mozilla/4.0 (compatible; MSIE 7.0; *Windows NT 6.2*Trident/8.0*Touch*)*]
+Parent="IE 11.0 for Tablet"
+Comment="IE 11.0 in IE 7.0 Compatibility Mode"
+Platform="Win8"
+
+[Mozilla/4.0 (compatible; MSIE 7.0; *Windows NT 6.3*Trident/8.0*Touch*)*]
+Parent="IE 11.0 for Tablet"
+Comment="IE 11.0 in IE 7.0 Compatibility Mode"
+Platform="Win8.1"
+
+[Mozilla/4.0 (compatible; MSIE 7.0; *Windows NT 6.4*Trident/8.0*Touch*)*]
+Parent="IE 11.0 for Tablet"
+Comment="IE 11.0 in IE 7.0 Compatibility Mode"
+Platform="Win10"
+
+[Mozilla/4.0 (compatible; MSIE 7.0; *Windows NT 10.0*Trident/8.0*Touch*)*]
+Parent="IE 11.0 for Tablet"
+Comment="IE 11.0 in IE 7.0 Compatibility Mode"
+Platform="Win10"
+
+[Mozilla/4.0 (compatible; MSIE 7.0; *Windows*Trident/8.0*Touch*)*]
+Parent="IE 11.0 for Tablet"
+Comment="IE 11.0 in IE 7.0 Compatibility Mode"
+Platform="Win32"
+
+[Mozilla/5.0 (compatible; MSIE 7.0; *Windows NT 6.2*Trident/8.0*Touch*)*]
+Parent="IE 11.0 for Tablet"
+Comment="IE 11.0 in IE 7.0 Compatibility Mode"
+Platform="Win8"
+
+[Mozilla/5.0 (compatible; MSIE 7.0; *Windows NT 6.3*Trident/8.0*Touch*)*]
+Parent="IE 11.0 for Tablet"
+Comment="IE 11.0 in IE 7.0 Compatibility Mode"
+Platform="Win8.1"
+
+[Mozilla/5.0 (compatible; MSIE 7.0; *Windows NT 6.4*Trident/8.0*Touch*)*]
+Parent="IE 11.0 for Tablet"
+Comment="IE 11.0 in IE 7.0 Compatibility Mode"
+Platform="Win10"
+
+[Mozilla/5.0 (compatible; MSIE 7.0; *Windows NT 10.0*Trident/8.0*Touch*)*]
+Parent="IE 11.0 for Tablet"
+Comment="IE 11.0 in IE 7.0 Compatibility Mode"
+Platform="Win10"
+
+[Mozilla/5.0 (compatible; MSIE 7.0; *Windows*Trident/8.0*Touch*)*]
+Parent="IE 11.0 for Tablet"
+Comment="IE 11.0 in IE 7.0 Compatibility Mode"
+Platform="Win32"
+
+[Mozilla/4.0 (compatible; MSIE 8.0; *Windows NT 6.2*Trident/8.0*Touch*)*]
+Parent="IE 11.0 for Tablet"
+Comment="IE 11.0 in IE 8.0 Compatibility Mode"
+Platform="Win8"
+
+[Mozilla/4.0 (compatible; MSIE 8.0; *Windows NT 6.3*Trident/8.0*Touch*)*]
+Parent="IE 11.0 for Tablet"
+Comment="IE 11.0 in IE 8.0 Compatibility Mode"
+Platform="Win8.1"
+
+[Mozilla/4.0 (compatible; MSIE 8.0; *Windows NT 6.4*Trident/8.0*Touch*)*]
+Parent="IE 11.0 for Tablet"
+Comment="IE 11.0 in IE 8.0 Compatibility Mode"
+Platform="Win10"
+
+[Mozilla/4.0 (compatible; MSIE 8.0; *Windows NT 10.0*Trident/8.0*Touch*)*]
+Parent="IE 11.0 for Tablet"
+Comment="IE 11.0 in IE 8.0 Compatibility Mode"
+Platform="Win10"
+
+[Mozilla/4.0 (compatible; MSIE 8.0; *Windows*Trident/8.0*Touch*)*]
+Parent="IE 11.0 for Tablet"
+Comment="IE 11.0 in IE 8.0 Compatibility Mode"
+Platform="Win32"
+
+[Mozilla/5.0 (compatible; MSIE 8.0; *Windows NT 6.2*Trident/8.0*Touch*)*]
+Parent="IE 11.0 for Tablet"
+Comment="IE 11.0 in IE 8.0 Compatibility Mode"
+Platform="Win8"
+
+[Mozilla/5.0 (compatible; MSIE 8.0; *Windows NT 6.3*Trident/8.0*Touch*)*]
+Parent="IE 11.0 for Tablet"
+Comment="IE 11.0 in IE 8.0 Compatibility Mode"
+Platform="Win8.1"
+
+[Mozilla/5.0 (compatible; MSIE 8.0; *Windows NT 6.4*Trident/8.0*Touch*)*]
+Parent="IE 11.0 for Tablet"
+Comment="IE 11.0 in IE 8.0 Compatibility Mode"
+Platform="Win10"
+
+[Mozilla/5.0 (compatible; MSIE 8.0; *Windows NT 10.0*Trident/8.0*Touch*)*]
+Parent="IE 11.0 for Tablet"
+Comment="IE 11.0 in IE 8.0 Compatibility Mode"
+Platform="Win10"
+
+[Mozilla/5.0 (compatible; MSIE 8.0; *Windows*Trident/8.0*Touch*)*]
+Parent="IE 11.0 for Tablet"
+Comment="IE 11.0 in IE 8.0 Compatibility Mode"
+Platform="Win32"
+
+[Mozilla/5.0 (compatible; MSIE 9.0; *Windows NT 6.2*Trident/8.0*Touch*)*]
+Parent="IE 11.0 for Tablet"
+Comment="IE 11.0 in IE 9.0 Compatibility Mode"
+Platform="Win8"
+
+[Mozilla/5.0 (compatible; MSIE 9.0; *Windows NT 6.3*Trident/8.0*Touch*)*]
+Parent="IE 11.0 for Tablet"
+Comment="IE 11.0 in IE 9.0 Compatibility Mode"
+Platform="Win8.1"
+
+[Mozilla/5.0 (compatible; MSIE 9.0; *Windows NT 6.4*Trident/8.0*Touch*)*]
+Parent="IE 11.0 for Tablet"
+Comment="IE 11.0 in IE 9.0 Compatibility Mode"
+Platform="Win10"
+
+[Mozilla/5.0 (compatible; MSIE 9.0; *Windows NT 10.0*Trident/8.0*Touch*)*]
+Parent="IE 11.0 for Tablet"
+Comment="IE 11.0 in IE 9.0 Compatibility Mode"
+Platform="Win10"
+
+[Mozilla/5.0 (compatible; MSIE 9.0; *Windows*Trident/8.0*Touch*)*]
+Parent="IE 11.0 for Tablet"
+Comment="IE 11.0 in IE 9.0 Compatibility Mode"
+Platform="Win32"
+
+[Mozilla/4.0 (compatible; MSIE 9.0; *Windows NT 6.2*Trident/8.0*Touch*)*]
+Parent="IE 11.0 for Tablet"
+Comment="IE 11.0 in IE 9.0 Compatibility Mode"
+Platform="Win8"
+
+[Mozilla/4.0 (compatible; MSIE 9.0; *Windows NT 6.3*Trident/8.0*Touch*)*]
+Parent="IE 11.0 for Tablet"
+Comment="IE 11.0 in IE 9.0 Compatibility Mode"
+Platform="Win8.1"
+
+[Mozilla/4.0 (compatible; MSIE 9.0; *Windows NT 6.4*Trident/8.0*Touch*)*]
+Parent="IE 11.0 for Tablet"
+Comment="IE 11.0 in IE 9.0 Compatibility Mode"
+Platform="Win10"
+
+[Mozilla/4.0 (compatible; MSIE 9.0; *Windows NT 10.0*Trident/8.0*Touch*)*]
+Parent="IE 11.0 for Tablet"
+Comment="IE 11.0 in IE 9.0 Compatibility Mode"
+Platform="Win10"
+
+[Mozilla/4.0 (compatible; MSIE 9.0; *Windows*Trident/8.0*Touch*)*]
+Parent="IE 11.0 for Tablet"
+Comment="IE 11.0 in IE 9.0 Compatibility Mode"
+Platform="Win32"
+
+[Mozilla/5.0 (compatible; MSIE 10.0; *Windows NT 6.2*Trident/8.0*Touch*)*]
+Parent="IE 11.0 for Tablet"
+Comment="IE 11.0 in IE 10.0 Compatibility Mode"
+Platform="Win8"
+
+[Mozilla/5.0 (compatible; MSIE 10.0; *Windows NT 6.3*Trident/8.0*Touch*)*]
+Parent="IE 11.0 for Tablet"
+Comment="IE 11.0 in IE 10.0 Compatibility Mode"
+Platform="Win8.1"
+
+[Mozilla/5.0 (compatible; MSIE 10.0; *Windows NT 6.4*Trident/8.0*Touch*)*]
+Parent="IE 11.0 for Tablet"
+Comment="IE 11.0 in IE 10.0 Compatibility Mode"
+Platform="Win10"
+
+[Mozilla/5.0 (compatible; MSIE 10.0; *Windows NT 10.0*Trident/8.0*Touch*)*]
+Parent="IE 11.0 for Tablet"
+Comment="IE 11.0 in IE 10.0 Compatibility Mode"
+Platform="Win10"
+
+[Mozilla/5.0 (compatible; MSIE 10.0; *Windows*Trident/8.0*Touch*)*]
+Parent="IE 11.0 for Tablet"
+Comment="IE 11.0 in IE 10.0 Compatibility Mode"
+Platform="Win32"
+
+[IE 11.0 for Desktop]
+Parent="DefaultProperties"
+Comment="IE 11.0"
+Browser="IE"
+Version="11.0"
+Device_Type="Desktop"
+
+[Mozilla/5.0 (*Windows NT 6.0*Trident/7.0*rv:11.0*]
+Parent="IE 11.0 for Desktop"
+Platform="WinVista"
+
+[Mozilla/5.0 (*Windows NT 6.1*Trident/7.0*rv:11.0*]
+Parent="IE 11.0 for Desktop"
+Platform="Win7"
+
+[Mozilla/5.0 (*Windows NT 6.2*Trident/7.0*rv:11.0*]
+Parent="IE 11.0 for Desktop"
+Platform="Win8"
+
+[Mozilla/5.0 (*Windows NT 6.3*Trident/7.0*rv:11.0*]
+Parent="IE 11.0 for Desktop"
+Platform="Win8.1"
+
+[Mozilla/5.0 (*Windows NT 6.4*Trident/7.0*rv:11.0*]
+Parent="IE 11.0 for Desktop"
+Platform="Win10"
+
+[Mozilla/5.0 (*Windows NT 10.0*Trident/7.0*rv:11.0*]
+Parent="IE 11.0 for Desktop"
+Platform="Win10"
+
+[Mozilla/5.0 (*Windows*Trident/7.0*rv:11.0*]
+Parent="IE 11.0 for Desktop"
+Platform="Win32"
+
+[Mozilla/4.0 (compatible; MSIE 7.0; *Windows NT 6.0*Trident/7.0*]
+Parent="IE 11.0 for Desktop"
+Comment="IE 11.0 in IE 7.0 Compatibility Mode"
+Platform="WinVista"
+
+[Mozilla/4.0 (compatible; MSIE 7.0; *Windows NT 6.1*Trident/7.0*]
+Parent="IE 11.0 for Desktop"
+Comment="IE 11.0 in IE 7.0 Compatibility Mode"
+Platform="Win7"
+
+[Mozilla/4.0 (compatible; MSIE 7.0; *Windows NT 6.2*Trident/7.0*]
+Parent="IE 11.0 for Desktop"
+Comment="IE 11.0 in IE 7.0 Compatibility Mode"
+Platform="Win8"
+
+[Mozilla/4.0 (compatible; MSIE 7.0; *Windows NT 6.3*Trident/7.0*]
+Parent="IE 11.0 for Desktop"
+Comment="IE 11.0 in IE 7.0 Compatibility Mode"
+Platform="Win8.1"
+
+[Mozilla/4.0 (compatible; MSIE 7.0; *Windows NT 6.4*Trident/7.0*]
+Parent="IE 11.0 for Desktop"
+Comment="IE 11.0 in IE 7.0 Compatibility Mode"
+Platform="Win10"
+
+[Mozilla/4.0 (compatible; MSIE 7.0; *Windows NT 10.0*Trident/7.0*]
+Parent="IE 11.0 for Desktop"
+Comment="IE 11.0 in IE 7.0 Compatibility Mode"
+Platform="Win10"
+
+[Mozilla/4.0 (compatible; MSIE 7.0; *Windows*Trident/7.0*]
+Parent="IE 11.0 for Desktop"
+Comment="IE 11.0 in IE 7.0 Compatibility Mode"
+Platform="Win32"
+
+[Mozilla/5.0 (compatible; MSIE 7.0; *Windows NT 6.0*Trident/7.0*]
+Parent="IE 11.0 for Desktop"
+Comment="IE 11.0 in IE 7.0 Compatibility Mode"
+Platform="WinVista"
+
+[Mozilla/5.0 (compatible; MSIE 7.0; *Windows NT 6.1*Trident/7.0*]
+Parent="IE 11.0 for Desktop"
+Comment="IE 11.0 in IE 7.0 Compatibility Mode"
+Platform="Win7"
+
+[Mozilla/5.0 (compatible; MSIE 7.0; *Windows NT 6.2*Trident/7.0*]
+Parent="IE 11.0 for Desktop"
+Comment="IE 11.0 in IE 7.0 Compatibility Mode"
+Platform="Win8"
+
+[Mozilla/5.0 (compatible; MSIE 7.0; *Windows NT 6.3*Trident/7.0*]
+Parent="IE 11.0 for Desktop"
+Comment="IE 11.0 in IE 7.0 Compatibility Mode"
+Platform="Win8.1"
+
+[Mozilla/5.0 (compatible; MSIE 7.0; *Windows NT 6.4*Trident/7.0*]
+Parent="IE 11.0 for Desktop"
+Comment="IE 11.0 in IE 7.0 Compatibility Mode"
+Platform="Win10"
+
+[Mozilla/5.0 (compatible; MSIE 7.0; *Windows NT 10.0*Trident/7.0*]
+Parent="IE 11.0 for Desktop"
+Comment="IE 11.0 in IE 7.0 Compatibility Mode"
+Platform="Win10"
+
+[Mozilla/5.0 (compatible; MSIE 7.0; *Windows*Trident/7.0*]
+Parent="IE 11.0 for Desktop"
+Comment="IE 11.0 in IE 7.0 Compatibility Mode"
+Platform="Win32"
+
+[Mozilla/4.0 (compatible; MSIE 8.0; *Windows NT 6.0*Trident/7.0*]
+Parent="IE 11.0 for Desktop"
+Comment="IE 11.0 in IE 8.0 Compatibility Mode"
+Platform="WinVista"
+
+[Mozilla/4.0 (compatible; MSIE 8.0; *Windows NT 6.1*Trident/7.0*]
+Parent="IE 11.0 for Desktop"
+Comment="IE 11.0 in IE 8.0 Compatibility Mode"
+Platform="Win7"
+
+[Mozilla/4.0 (compatible; MSIE 8.0; *Windows NT 6.2*Trident/7.0*]
+Parent="IE 11.0 for Desktop"
+Comment="IE 11.0 in IE 8.0 Compatibility Mode"
+Platform="Win8"
+
+[Mozilla/4.0 (compatible; MSIE 8.0; *Windows NT 6.3*Trident/7.0*]
+Parent="IE 11.0 for Desktop"
+Comment="IE 11.0 in IE 8.0 Compatibility Mode"
+Platform="Win8.1"
+
+[Mozilla/4.0 (compatible; MSIE 8.0; *Windows NT 6.4*Trident/7.0*]
+Parent="IE 11.0 for Desktop"
+Comment="IE 11.0 in IE 8.0 Compatibility Mode"
+Platform="Win10"
+
+[Mozilla/4.0 (compatible; MSIE 8.0; *Windows NT 10.0*Trident/7.0*]
+Parent="IE 11.0 for Desktop"
+Comment="IE 11.0 in IE 8.0 Compatibility Mode"
+Platform="Win10"
+
+[Mozilla/4.0 (compatible; MSIE 8.0; *Windows*Trident/7.0*]
+Parent="IE 11.0 for Desktop"
+Comment="IE 11.0 in IE 8.0 Compatibility Mode"
+Platform="Win32"
+
+[Mozilla/5.0 (compatible; MSIE 8.0; *Windows NT 6.0*Trident/7.0*]
+Parent="IE 11.0 for Desktop"
+Comment="IE 11.0 in IE 8.0 Compatibility Mode"
+Platform="WinVista"
+
+[Mozilla/5.0 (compatible; MSIE 8.0; *Windows NT 6.1*Trident/7.0*]
+Parent="IE 11.0 for Desktop"
+Comment="IE 11.0 in IE 8.0 Compatibility Mode"
+Platform="Win7"
+
+[Mozilla/5.0 (compatible; MSIE 8.0; *Windows NT 6.2*Trident/7.0*]
+Parent="IE 11.0 for Desktop"
+Comment="IE 11.0 in IE 8.0 Compatibility Mode"
+Platform="Win8"
+
+[Mozilla/5.0 (compatible; MSIE 8.0; *Windows NT 6.3*Trident/7.0*]
+Parent="IE 11.0 for Desktop"
+Comment="IE 11.0 in IE 8.0 Compatibility Mode"
+Platform="Win8.1"
+
+[Mozilla/5.0 (compatible; MSIE 8.0; *Windows NT 6.4*Trident/7.0*]
+Parent="IE 11.0 for Desktop"
+Comment="IE 11.0 in IE 8.0 Compatibility Mode"
+Platform="Win10"
+
+[Mozilla/5.0 (compatible; MSIE 8.0; *Windows NT 10.0*Trident/7.0*]
+Parent="IE 11.0 for Desktop"
+Comment="IE 11.0 in IE 8.0 Compatibility Mode"
+Platform="Win10"
+
+[Mozilla/5.0 (compatible; MSIE 8.0; *Windows*Trident/7.0*]
+Parent="IE 11.0 for Desktop"
+Comment="IE 11.0 in IE 8.0 Compatibility Mode"
+Platform="Win32"
+
+[Mozilla/5.0 (compatible; MSIE 9.0; *Windows NT 6.0*Trident/7.0*]
+Parent="IE 11.0 for Desktop"
+Comment="IE 11.0 in IE 9.0 Compatibility Mode"
+Platform="WinVista"
+
+[Mozilla/5.0 (compatible; MSIE 9.0; *Windows NT 6.1*Trident/7.0*]
+Parent="IE 11.0 for Desktop"
+Comment="IE 11.0 in IE 9.0 Compatibility Mode"
+Platform="Win7"
+
+[Mozilla/5.0 (compatible; MSIE 9.0; *Windows NT 6.2*Trident/7.0*]
+Parent="IE 11.0 for Desktop"
+Comment="IE 11.0 in IE 9.0 Compatibility Mode"
+Platform="Win8"
+
+[Mozilla/5.0 (compatible; MSIE 9.0; *Windows NT 6.3*Trident/7.0*]
+Parent="IE 11.0 for Desktop"
+Comment="IE 11.0 in IE 9.0 Compatibility Mode"
+Platform="Win8.1"
+
+[Mozilla/5.0 (compatible; MSIE 9.0; *Windows NT 6.4*Trident/7.0*]
+Parent="IE 11.0 for Desktop"
+Comment="IE 11.0 in IE 9.0 Compatibility Mode"
+Platform="Win10"
+
+[Mozilla/5.0 (compatible; MSIE 9.0; *Windows NT 10.0*Trident/7.0*]
+Parent="IE 11.0 for Desktop"
+Comment="IE 11.0 in IE 9.0 Compatibility Mode"
+Platform="Win10"
+
+[Mozilla/5.0 (compatible; MSIE 9.0; *Windows*Trident/7.0*]
+Parent="IE 11.0 for Desktop"
+Comment="IE 11.0 in IE 9.0 Compatibility Mode"
+Platform="Win32"
+
+[Mozilla/4.0 (compatible; MSIE 9.0; *Windows NT 6.0*Trident/7.0*]
+Parent="IE 11.0 for Desktop"
+Comment="IE 11.0 in IE 9.0 Compatibility Mode"
+Platform="WinVista"
+
+[Mozilla/4.0 (compatible; MSIE 9.0; *Windows NT 6.1*Trident/7.0*]
+Parent="IE 11.0 for Desktop"
+Comment="IE 11.0 in IE 9.0 Compatibility Mode"
+Platform="Win7"
+
+[Mozilla/4.0 (compatible; MSIE 9.0; *Windows NT 6.2*Trident/7.0*]
+Parent="IE 11.0 for Desktop"
+Comment="IE 11.0 in IE 9.0 Compatibility Mode"
+Platform="Win8"
+
+[Mozilla/4.0 (compatible; MSIE 9.0; *Windows NT 6.3*Trident/7.0*]
+Parent="IE 11.0 for Desktop"
+Comment="IE 11.0 in IE 9.0 Compatibility Mode"
+Platform="Win8.1"
+
+[Mozilla/4.0 (compatible; MSIE 9.0; *Windows NT 6.4*Trident/7.0*]
+Parent="IE 11.0 for Desktop"
+Comment="IE 11.0 in IE 9.0 Compatibility Mode"
+Platform="Win10"
+
+[Mozilla/4.0 (compatible; MSIE 9.0; *Windows NT 10.0*Trident/7.0*]
+Parent="IE 11.0 for Desktop"
+Comment="IE 11.0 in IE 9.0 Compatibility Mode"
+Platform="Win10"
+
+[Mozilla/4.0 (compatible; MSIE 9.0; *Windows*Trident/7.0*]
+Parent="IE 11.0 for Desktop"
+Comment="IE 11.0 in IE 9.0 Compatibility Mode"
+Platform="Win32"
+
+[Mozilla/5.0 (compatible; MSIE 10.0; *Windows NT 6.0*Trident/7.0*]
+Parent="IE 11.0 for Desktop"
+Comment="IE 11.0 in IE 10.0 Compatibility Mode"
+Platform="WinVista"
+
+[Mozilla/5.0 (compatible; MSIE 10.0; *Windows NT 6.1*Trident/7.0*]
+Parent="IE 11.0 for Desktop"
+Comment="IE 11.0 in IE 10.0 Compatibility Mode"
+Platform="Win7"
+
+[Mozilla/5.0 (compatible; MSIE 10.0; *Windows NT 6.2*Trident/7.0*]
+Parent="IE 11.0 for Desktop"
+Comment="IE 11.0 in IE 10.0 Compatibility Mode"
+Platform="Win8"
+
+[Mozilla/5.0 (compatible; MSIE 10.0; *Windows NT 6.3*Trident/7.0*]
+Parent="IE 11.0 for Desktop"
+Comment="IE 11.0 in IE 10.0 Compatibility Mode"
+Platform="Win8.1"
+
+[Mozilla/5.0 (compatible; MSIE 10.0; *Windows NT 6.4*Trident/7.0*]
+Parent="IE 11.0 for Desktop"
+Comment="IE 11.0 in IE 10.0 Compatibility Mode"
+Platform="Win10"
+
+[Mozilla/5.0 (compatible; MSIE 10.0; *Windows NT 10.0*Trident/7.0*]
+Parent="IE 11.0 for Desktop"
+Comment="IE 11.0 in IE 10.0 Compatibility Mode"
+Platform="Win10"
+
+[Mozilla/5.0 (compatible; MSIE 10.0; *Windows*Trident/7.0*]
+Parent="IE 11.0 for Desktop"
+Comment="IE 11.0 in IE 10.0 Compatibility Mode"
+Platform="Win32"
+
+[Mozilla/5.0 (*Windows NT 6.1*; Trident/7.0*]
+Parent="IE 11.0 for Desktop"
+Platform="Win7"
+
+[Mozilla/5.0 (*Windows NT 6.2*; Trident/7.0*]
+Parent="IE 11.0 for Desktop"
+Platform="Win8"
+
+[Mozilla/5.0 (*Windows NT 6.3*; Trident/7.0*]
+Parent="IE 11.0 for Desktop"
+Platform="Win8.1"
+
+[Mozilla/5.0 (*Windows*; Trident/7.0*]
+Parent="IE 11.0 for Desktop"
+Platform="Win32"
+
+[Mozilla/5.0 (Windows 95; Anonymisiert*; Trident/7.0*]
+Parent="IE 11.0 for Desktop"
+Platform="Win8.1"
+
+[Mozilla/5.0; TOB* (*Windows NT 6.0*Trident/7.0*rv:11.0*]
+Parent="IE 11.0 for Desktop"
+Platform="WinVista"
+
+[Mozilla/5.0; TOB* (*Windows NT 6.1*Trident/7.0*rv:11.0*]
+Parent="IE 11.0 for Desktop"
+Platform="Win7"
+
+[Mozilla/5.0; TOB* (*Windows NT 6.2*Trident/7.0*rv:11.0*]
+Parent="IE 11.0 for Desktop"
+Platform="Win8"
+
+[Mozilla/5.0; TOB* (*Windows NT 6.3*Trident/7.0*rv:11.0*]
+Parent="IE 11.0 for Desktop"
+Platform="Win8.1"
+
+[Mozilla/5.0; TOB* (*Windows NT 6.4*Trident/7.0*rv:11.0*]
+Parent="IE 11.0 for Desktop"
+Platform="Win10"
+
+[Mozilla/5.0; TOB* (*Windows NT 10.0*Trident/7.0*rv:11.0*]
+Parent="IE 11.0 for Desktop"
+Platform="Win10"
+
+[Mozilla/5.0; TOB* (*Windows*Trident/7.0*rv:11.0*]
+Parent="IE 11.0 for Desktop"
+Platform="Win32"
+
+[Mozilla/5.0 (*Windows NT 6.2*Trident/8.0; rv:550) AppleWebKit/* (KHTML* like Gecko) Version/7.0 Safari/*]
+Parent="IE 11.0 for Desktop"
+Platform="Win8"
+
+[Mozilla/5.0 (*Windows NT 6.3*Trident/8.0; rv:550) AppleWebKit/* (KHTML* like Gecko) Version/7.0 Safari/*]
+Parent="IE 11.0 for Desktop"
+Platform="Win8.1"
+
+[Mozilla/5.0 (*Windows NT 6.4*Trident/8.0; rv:550) AppleWebKit/* (KHTML* like Gecko) Version/7.0 Safari/*]
+Parent="IE 11.0 for Desktop"
+Platform="Win10"
+
+[Mozilla/5.0 (*Windows NT 10.0*Trident/8.0; rv:550) AppleWebKit/* (KHTML* like Gecko) Version/7.0 Safari/*]
+Parent="IE 11.0 for Desktop"
+Platform="Win10"
+
+[Mozilla/5.0 (*Windows*Trident/8.0; rv:550) AppleWebKit/* (KHTML* like Gecko) Version/7.0 Safari/*]
+Parent="IE 11.0 for Desktop"
+Platform="Win32"
+
+[Mozilla/5.0 (*Windows NT 6.2*Trident/8.0*rv:11.0*)*]
+Parent="IE 11.0 for Desktop"
+Platform="Win8"
+
+[Mozilla/5.0 (*Windows NT 6.3*Trident/8.0*rv:11.0*)*]
+Parent="IE 11.0 for Desktop"
+Platform="Win8.1"
+
+[Mozilla/5.0 (*Windows NT 6.4*Trident/8.0*rv:11.0*)*]
+Parent="IE 11.0 for Desktop"
+Platform="Win10"
+
+[Mozilla/5.0 (*Windows NT 10.0*Trident/8.0*rv:11.0*)*]
+Parent="IE 11.0 for Desktop"
+Platform="Win10"
+
+[Mozilla/5.0 (*Windows*Trident/8.0*rv:11.0*)*]
+Parent="IE 11.0 for Desktop"
+Platform="Win32"
+
+[Mozilla/4.0 (compatible; MSIE 7.0; *Windows NT 6.2*Trident/8.0*)*]
+Parent="IE 11.0 for Desktop"
+Comment="IE 11.0 in IE 7.0 Compatibility Mode"
+Platform="Win8"
+
+[Mozilla/4.0 (compatible; MSIE 7.0; *Windows NT 6.3*Trident/8.0*)*]
+Parent="IE 11.0 for Desktop"
+Comment="IE 11.0 in IE 7.0 Compatibility Mode"
+Platform="Win8.1"
+
+[Mozilla/4.0 (compatible; MSIE 7.0; *Windows NT 6.4*Trident/8.0*)*]
+Parent="IE 11.0 for Desktop"
+Comment="IE 11.0 in IE 7.0 Compatibility Mode"
+Platform="Win10"
+
+[Mozilla/4.0 (compatible; MSIE 7.0; *Windows NT 10.0*Trident/8.0*)*]
+Parent="IE 11.0 for Desktop"
+Comment="IE 11.0 in IE 7.0 Compatibility Mode"
+Platform="Win10"
+
+[Mozilla/4.0 (compatible; MSIE 7.0; *Windows*Trident/8.0*)*]
+Parent="IE 11.0 for Desktop"
+Comment="IE 11.0 in IE 7.0 Compatibility Mode"
+Platform="Win32"
+
+[Mozilla/5.0 (compatible; MSIE 7.0; *Windows NT 6.2*Trident/8.0*)*]
+Parent="IE 11.0 for Desktop"
+Comment="IE 11.0 in IE 7.0 Compatibility Mode"
+Platform="Win8"
+
+[Mozilla/5.0 (compatible; MSIE 7.0; *Windows NT 6.3*Trident/8.0*)*]
+Parent="IE 11.0 for Desktop"
+Comment="IE 11.0 in IE 7.0 Compatibility Mode"
+Platform="Win8.1"
+
+[Mozilla/5.0 (compatible; MSIE 7.0; *Windows NT 6.4*Trident/8.0*)*]
+Parent="IE 11.0 for Desktop"
+Comment="IE 11.0 in IE 7.0 Compatibility Mode"
+Platform="Win10"
+
+[Mozilla/5.0 (compatible; MSIE 7.0; *Windows NT 10.0*Trident/8.0*)*]
+Parent="IE 11.0 for Desktop"
+Comment="IE 11.0 in IE 7.0 Compatibility Mode"
+Platform="Win10"
+
+[Mozilla/5.0 (compatible; MSIE 7.0; *Windows*Trident/8.0*)*]
+Parent="IE 11.0 for Desktop"
+Comment="IE 11.0 in IE 7.0 Compatibility Mode"
+Platform="Win32"
+
+[Mozilla/4.0 (compatible; MSIE 8.0; *Windows NT 6.2*Trident/8.0*)*]
+Parent="IE 11.0 for Desktop"
+Comment="IE 11.0 in IE 8.0 Compatibility Mode"
+Platform="Win8"
+
+[Mozilla/4.0 (compatible; MSIE 8.0; *Windows NT 6.3*Trident/8.0*)*]
+Parent="IE 11.0 for Desktop"
+Comment="IE 11.0 in IE 8.0 Compatibility Mode"
+Platform="Win8.1"
+
+[Mozilla/4.0 (compatible; MSIE 8.0; *Windows NT 6.4*Trident/8.0*)*]
+Parent="IE 11.0 for Desktop"
+Comment="IE 11.0 in IE 8.0 Compatibility Mode"
+Platform="Win10"
+
+[Mozilla/4.0 (compatible; MSIE 8.0; *Windows NT 10.0*Trident/8.0*)*]
+Parent="IE 11.0 for Desktop"
+Comment="IE 11.0 in IE 8.0 Compatibility Mode"
+Platform="Win10"
+
+[Mozilla/4.0 (compatible; MSIE 8.0; *Windows*Trident/8.0*)*]
+Parent="IE 11.0 for Desktop"
+Comment="IE 11.0 in IE 8.0 Compatibility Mode"
+Platform="Win32"
+
+[Mozilla/5.0 (compatible; MSIE 8.0; *Windows NT 6.2*Trident/8.0*)*]
+Parent="IE 11.0 for Desktop"
+Comment="IE 11.0 in IE 8.0 Compatibility Mode"
+Platform="Win8"
+
+[Mozilla/5.0 (compatible; MSIE 8.0; *Windows NT 6.3*Trident/8.0*)*]
+Parent="IE 11.0 for Desktop"
+Comment="IE 11.0 in IE 8.0 Compatibility Mode"
+Platform="Win8.1"
+
+[Mozilla/5.0 (compatible; MSIE 8.0; *Windows NT 6.4*Trident/8.0*)*]
+Parent="IE 11.0 for Desktop"
+Comment="IE 11.0 in IE 8.0 Compatibility Mode"
+Platform="Win10"
+
+[Mozilla/5.0 (compatible; MSIE 8.0; *Windows NT 10.0*Trident/8.0*)*]
+Parent="IE 11.0 for Desktop"
+Comment="IE 11.0 in IE 8.0 Compatibility Mode"
+Platform="Win10"
+
+[Mozilla/5.0 (compatible; MSIE 8.0; *Windows*Trident/8.0*)*]
+Parent="IE 11.0 for Desktop"
+Comment="IE 11.0 in IE 8.0 Compatibility Mode"
+Platform="Win32"
+
+[Mozilla/5.0 (compatible; MSIE 9.0; *Windows NT 6.2*Trident/8.0*)*]
+Parent="IE 11.0 for Desktop"
+Comment="IE 11.0 in IE 9.0 Compatibility Mode"
+Platform="Win8"
+
+[Mozilla/5.0 (compatible; MSIE 9.0; *Windows NT 6.3*Trident/8.0*)*]
+Parent="IE 11.0 for Desktop"
+Comment="IE 11.0 in IE 9.0 Compatibility Mode"
+Platform="Win8.1"
+
+[Mozilla/5.0 (compatible; MSIE 9.0; *Windows NT 6.4*Trident/8.0*)*]
+Parent="IE 11.0 for Desktop"
+Comment="IE 11.0 in IE 9.0 Compatibility Mode"
+Platform="Win10"
+
+[Mozilla/5.0 (compatible; MSIE 9.0; *Windows NT 10.0*Trident/8.0*)*]
+Parent="IE 11.0 for Desktop"
+Comment="IE 11.0 in IE 9.0 Compatibility Mode"
+Platform="Win10"
+
+[Mozilla/5.0 (compatible; MSIE 9.0; *Windows*Trident/8.0*)*]
+Parent="IE 11.0 for Desktop"
+Comment="IE 11.0 in IE 9.0 Compatibility Mode"
+Platform="Win32"
+
+[Mozilla/4.0 (compatible; MSIE 9.0; *Windows NT 6.2*Trident/8.0*)*]
+Parent="IE 11.0 for Desktop"
+Comment="IE 11.0 in IE 9.0 Compatibility Mode"
+Platform="Win8"
+
+[Mozilla/4.0 (compatible; MSIE 9.0; *Windows NT 6.3*Trident/8.0*)*]
+Parent="IE 11.0 for Desktop"
+Comment="IE 11.0 in IE 9.0 Compatibility Mode"
+Platform="Win8.1"
+
+[Mozilla/4.0 (compatible; MSIE 9.0; *Windows NT 6.4*Trident/8.0*)*]
+Parent="IE 11.0 for Desktop"
+Comment="IE 11.0 in IE 9.0 Compatibility Mode"
+Platform="Win10"
+
+[Mozilla/4.0 (compatible; MSIE 9.0; *Windows NT 10.0*Trident/8.0*)*]
+Parent="IE 11.0 for Desktop"
+Comment="IE 11.0 in IE 9.0 Compatibility Mode"
+Platform="Win10"
+
+[Mozilla/4.0 (compatible; MSIE 9.0; *Windows*Trident/8.0*)*]
+Parent="IE 11.0 for Desktop"
+Comment="IE 11.0 in IE 9.0 Compatibility Mode"
+Platform="Win32"
+
+[Mozilla/5.0 (compatible; MSIE 10.0; *Windows NT 6.2*Trident/8.0*)*]
+Parent="IE 11.0 for Desktop"
+Comment="IE 11.0 in IE 10.0 Compatibility Mode"
+Platform="Win8"
+
+[Mozilla/5.0 (compatible; MSIE 10.0; *Windows NT 6.3*Trident/8.0*)*]
+Parent="IE 11.0 for Desktop"
+Comment="IE 11.0 in IE 10.0 Compatibility Mode"
+Platform="Win8.1"
+
+[Mozilla/5.0 (compatible; MSIE 10.0; *Windows NT 6.4*Trident/8.0*)*]
+Parent="IE 11.0 for Desktop"
+Comment="IE 11.0 in IE 10.0 Compatibility Mode"
+Platform="Win10"
+
+[Mozilla/5.0 (compatible; MSIE 10.0; *Windows NT 10.0*Trident/8.0*)*]
+Parent="IE 11.0 for Desktop"
+Comment="IE 11.0 in IE 10.0 Compatibility Mode"
+Platform="Win10"
+
+[Mozilla/5.0 (compatible; MSIE 10.0; *Windows*Trident/8.0*)*]
+Parent="IE 11.0 for Desktop"
+Comment="IE 11.0 in IE 10.0 Compatibility Mode"
+Platform="Win32"
+
+[Mozilla/5.0 (*Windows NT 6.2*; Trident/8.0*)*]
+Parent="IE 11.0 for Desktop"
+Platform="Win8"
+
+[Mozilla/5.0 (*Windows NT 6.3*; Trident/8.0*)*]
+Parent="IE 11.0 for Desktop"
+Platform="Win8.1"
+
+[Mozilla/5.0 (*Windows NT 6.4*; Trident/8.0*)*]
+Parent="IE 11.0 for Desktop"
+Platform="Win10"
+
+[Mozilla/5.0 (*Windows NT 10.0*; Trident/8.0*)*]
+Parent="IE 11.0 for Desktop"
+Platform="Win10"
+
+[Mozilla/5.0 (*Windows*; Trident/8.0*)*]
+Parent="IE 11.0 for Desktop"
+Platform="Win32"
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; IE 10.0
+
+[IE 10.0 for Win RT]
+Parent="DefaultProperties"
+Comment="IE 10.0"
+Browser="IE"
+Version="10.0"
+isMobileDevice="true"
+isTablet="true"
+Device_Type="Tablet"
+
+[IE 10.0 for Tablet]
+Parent="DefaultProperties"
+Comment="IE 10.0"
+Browser="IE"
+Version="10.0"
+isMobileDevice="true"
+isTablet="true"
+Device_Type="Tablet"
+
+[Mozilla/5.0 (compatible; MSIE 10.0*Windows NT 6.2*Trident/6.0*Touch*)*]
+Parent="IE 10.0 for Tablet"
+Platform="Win8"
+
+[Mozilla/5.0 (compatible; MSIE 10.0*Windows NT 6.3*Trident/6.0*Touch*)*]
+Parent="IE 10.0 for Tablet"
+Platform="Win8.1"
+
+[Mozilla/5.0 (compatible; MSIE 10.0*Windows NT 6.4*Trident/6.0*Touch*)*]
+Parent="IE 10.0 for Tablet"
+Platform="Win10"
+
+[Mozilla/5.0 (compatible; MSIE 10.0*Windows NT 10.0*Trident/6.0*Touch*)*]
+Parent="IE 10.0 for Tablet"
+Platform="Win10"
+
+[Mozilla/5.0 (compatible; MSIE 10.0*Windows*Trident/6.0*Touch*)*]
+Parent="IE 10.0 for Tablet"
+Platform="Win32"
+
+[IE 10.0 for Desktop]
+Parent="DefaultProperties"
+Comment="IE 10.0"
+Browser="IE"
+Version="10.0"
+Device_Type="Desktop"
+
+[Mozilla/5.0 (compatible; MSIE 10.0*Windows NT 6.2*Trident/6.0*Xbox; Xbox One*)*]
+Parent="IE 10.0 for Desktop"
+Platform="Win8"
+Device_Type="TV Device"
+
+[Mozilla/5.0 (compatible; MSIE 10.0*Windows NT 6.3*Trident/6.0*Xbox; Xbox One*)*]
+Parent="IE 10.0 for Desktop"
+Platform="Win8.1"
+Device_Type="TV Device"
+
+[Mozilla/5.0 (compatible; MSIE 10.0*Windows*Trident/6.0*Xbox; Xbox One*)*]
+Parent="IE 10.0 for Desktop"
+Platform="Win32"
+Device_Type="TV Device"
+
+[Mozilla/5.0 (compatible; MSIE 10.0*Windows NT 6.0*Trident/6.0*)*]
+Parent="IE 10.0 for Desktop"
+Platform="WinVista"
+
+[Mozilla/5.0 (compatible; MSIE 10.0*Windows NT 6.1*Trident/6.0*)*]
+Parent="IE 10.0 for Desktop"
+Platform="Win7"
+
+[Mozilla/5.0 (compatible; MSIE 10.0*Windows NT 6.2*Trident/6.0*)*]
+Parent="IE 10.0 for Desktop"
+Platform="Win8"
+
+[Mozilla/5.0 (compatible; MSIE 10.0*Windows NT 6.3*Trident/6.0*)*]
+Parent="IE 10.0 for Desktop"
+Platform="Win8.1"
+
+[Mozilla/5.0 (compatible; MSIE 10.0*Windows*Trident/6.0*)*]
+Parent="IE 10.0 for Desktop"
+Platform="Win32"
+
+[Mozilla/5.0 (compatible; MSIE 9.*Windows NT 6.0*Trident/6.0*)*]
+Parent="IE 10.0 for Desktop"
+Comment="IE 10.0 in IE 9.0 Compatibility Mode"
+Platform="WinVista"
+
+[Mozilla/5.0 (compatible; MSIE 9.*Windows NT 6.1*Trident/6.0*)*]
+Parent="IE 10.0 for Desktop"
+Comment="IE 10.0 in IE 9.0 Compatibility Mode"
+Platform="Win7"
+
+[Mozilla/5.0 (compatible; MSIE 9.*Windows NT 6.2*Trident/6.0*)*]
+Parent="IE 10.0 for Desktop"
+Comment="IE 10.0 in IE 9.0 Compatibility Mode"
+Platform="Win8"
+
+[Mozilla/5.0 (compatible; MSIE 9.*Windows NT 6.3*Trident/6.0*)*]
+Parent="IE 10.0 for Desktop"
+Comment="IE 10.0 in IE 9.0 Compatibility Mode"
+Platform="Win8.1"
+
+[Mozilla/5.0 (compatible; MSIE 9.*Windows*Trident/6.0*)*]
+Parent="IE 10.0 for Desktop"
+Comment="IE 10.0 in IE 9.0 Compatibility Mode"
+Platform="Win32"
+
+[Mozilla/4.0 (compatible; MSIE 9.*Windows NT 6.0*Trident/6.0*)*]
+Parent="IE 10.0 for Desktop"
+Comment="IE 10.0 in IE 9.0 Compatibility Mode"
+Platform="WinVista"
+
+[Mozilla/4.0 (compatible; MSIE 9.*Windows NT 6.1*Trident/6.0*)*]
+Parent="IE 10.0 for Desktop"
+Comment="IE 10.0 in IE 9.0 Compatibility Mode"
+Platform="Win7"
+
+[Mozilla/4.0 (compatible; MSIE 9.*Windows NT 6.2*Trident/6.0*)*]
+Parent="IE 10.0 for Desktop"
+Comment="IE 10.0 in IE 9.0 Compatibility Mode"
+Platform="Win8"
+
+[Mozilla/4.0 (compatible; MSIE 9.*Windows NT 6.3*Trident/6.0*)*]
+Parent="IE 10.0 for Desktop"
+Comment="IE 10.0 in IE 9.0 Compatibility Mode"
+Platform="Win8.1"
+
+[Mozilla/4.0 (compatible; MSIE 9.*Windows*Trident/6.0*)*]
+Parent="IE 10.0 for Desktop"
+Comment="IE 10.0 in IE 9.0 Compatibility Mode"
+Platform="Win32"
+
+[Mozilla/4.0 (compatible; MSIE 8.*Windows NT 6.0*Trident/6.0*)*]
+Parent="IE 10.0 for Desktop"
+Comment="IE 10.0 in IE 8.0 Compatibility Mode"
+Platform="WinVista"
+
+[Mozilla/4.0 (compatible; MSIE 8.*Windows NT 6.1*Trident/6.0*)*]
+Parent="IE 10.0 for Desktop"
+Comment="IE 10.0 in IE 8.0 Compatibility Mode"
+Platform="Win7"
+
+[Mozilla/4.0 (compatible; MSIE 8.*Windows NT 6.2*Trident/6.0*)*]
+Parent="IE 10.0 for Desktop"
+Comment="IE 10.0 in IE 8.0 Compatibility Mode"
+Platform="Win8"
+
+[Mozilla/4.0 (compatible; MSIE 8.*Windows NT 6.3*Trident/6.0*)*]
+Parent="IE 10.0 for Desktop"
+Comment="IE 10.0 in IE 8.0 Compatibility Mode"
+Platform="Win8.1"
+
+[Mozilla/4.0 (compatible; MSIE 8.*Windows*Trident/6.0*)*]
+Parent="IE 10.0 for Desktop"
+Comment="IE 10.0 in IE 8.0 Compatibility Mode"
+Platform="Win32"
+
+[Mozilla/5.0 (compatible; MSIE 8.*Windows NT 6.0*Trident/6.0*)*]
+Parent="IE 10.0 for Desktop"
+Comment="IE 10.0 in IE 8.0 Compatibility Mode"
+Platform="WinVista"
+
+[Mozilla/5.0 (compatible; MSIE 8.*Windows NT 6.1*Trident/6.0*)*]
+Parent="IE 10.0 for Desktop"
+Comment="IE 10.0 in IE 8.0 Compatibility Mode"
+Platform="Win7"
+
+[Mozilla/5.0 (compatible; MSIE 8.*Windows NT 6.2*Trident/6.0*)*]
+Parent="IE 10.0 for Desktop"
+Comment="IE 10.0 in IE 8.0 Compatibility Mode"
+Platform="Win8"
+
+[Mozilla/5.0 (compatible; MSIE 8.*Windows NT 6.3*Trident/6.0*)*]
+Parent="IE 10.0 for Desktop"
+Comment="IE 10.0 in IE 8.0 Compatibility Mode"
+Platform="Win8.1"
+
+[Mozilla/5.0 (compatible; MSIE 8.*Windows*Trident/6.0*)*]
+Parent="IE 10.0 for Desktop"
+Comment="IE 10.0 in IE 8.0 Compatibility Mode"
+Platform="Win32"
+
+[Mozilla/4.0 (compatible; MSIE 7.*Windows NT 6.0*Trident/6.0*)*]
+Parent="IE 10.0 for Desktop"
+Comment="IE 10.0 in IE 7.0 Compatibility Mode"
+Platform="WinVista"
+
+[Mozilla/4.0 (compatible; MSIE 7.*Windows NT 6.1*Trident/6.0*)*]
+Parent="IE 10.0 for Desktop"
+Comment="IE 10.0 in IE 7.0 Compatibility Mode"
+Platform="Win7"
+
+[Mozilla/4.0 (compatible; MSIE 7.*Windows NT 6.2*Trident/6.0*)*]
+Parent="IE 10.0 for Desktop"
+Comment="IE 10.0 in IE 7.0 Compatibility Mode"
+Platform="Win8"
+
+[Mozilla/4.0 (compatible; MSIE 7.*Windows NT 6.3*Trident/6.0*)*]
+Parent="IE 10.0 for Desktop"
+Comment="IE 10.0 in IE 7.0 Compatibility Mode"
+Platform="Win8.1"
+
+[Mozilla/4.0 (compatible; MSIE 7.*Windows*Trident/6.0*)*]
+Parent="IE 10.0 for Desktop"
+Comment="IE 10.0 in IE 7.0 Compatibility Mode"
+Platform="Win32"
+
+[Mozilla/5.0 (compatible; MSIE 7.*Windows NT 6.0*Trident/6.0*)*]
+Parent="IE 10.0 for Desktop"
+Comment="IE 10.0 in IE 7.0 Compatibility Mode"
+Platform="WinVista"
+
+[Mozilla/5.0 (compatible; MSIE 7.*Windows NT 6.1*Trident/6.0*)*]
+Parent="IE 10.0 for Desktop"
+Comment="IE 10.0 in IE 7.0 Compatibility Mode"
+Platform="Win7"
+
+[Mozilla/5.0 (compatible; MSIE 7.*Windows NT 6.2*Trident/6.0*)*]
+Parent="IE 10.0 for Desktop"
+Comment="IE 10.0 in IE 7.0 Compatibility Mode"
+Platform="Win8"
+
+[Mozilla/5.0 (compatible; MSIE 7.*Windows NT 6.3*Trident/6.0*)*]
+Parent="IE 10.0 for Desktop"
+Comment="IE 10.0 in IE 7.0 Compatibility Mode"
+Platform="Win8.1"
+
+[Mozilla/5.0 (compatible; MSIE 7.*Windows*Trident/6.0*)*]
+Parent="IE 10.0 for Desktop"
+Comment="IE 10.0 in IE 7.0 Compatibility Mode"
+Platform="Win32"
+
+[Mozilla/4.0 (*MSIE 7.*Trident/6.0*)*]
+Parent="IE 10.0 for Desktop"
+Comment="IE 10.0 in IE 7.0 Compatibility Mode"
+Platform="Win32"
+
+[Mozilla/5.0 (*MSIE 7.*Trident/6.0*)*]
+Parent="IE 10.0 for Desktop"
+Comment="IE 10.0 in IE 7.0 Compatibility Mode"
+Platform="Win32"
+
+[Mozilla/5.0 (compatible; MSIE 10.0; Windows 95; Anonymisiert*Trident/6.0*)*]
+Parent="IE 10.0 for Desktop"
+Platform="Win8"
+
+[Mozilla/5.0 (compatible; MSIE 10.0*; *Windows NT 6.2*Trident/6.0; Xbox; Xbox One*]
+Parent="IE 10.0 for Desktop"
+Platform="Win8"
+Device_Type="TV Device"
+
+[Mozilla/5.0 (compatible; MSIE 10.0*; *Windows*Trident/6.0; Xbox; Xbox One*]
+Parent="IE 10.0 for Desktop"
+Platform="Win32"
+Device_Type="TV Device"
+
+[Mozilla/5.0 (compatible; MSIE 10.0*; *Windows NT 6.2*Trident/8.0*]
+Parent="IE 10.0 for Desktop"
+Platform="Win8"
+
+[Mozilla/5.0 (compatible; MSIE 10.0*; *Windows NT 6.3*Trident/8.0*]
+Parent="IE 10.0 for Desktop"
+Platform="Win8.1"
+
+[Mozilla/5.0 (compatible; MSIE 10.0*; *Windows NT 6.4*Trident/8.0*]
+Parent="IE 10.0 for Desktop"
+Platform="Win10"
+
+[Mozilla/5.0 (compatible; MSIE 10.0*; *Windows NT 10.0*Trident/8.0*]
+Parent="IE 10.0 for Desktop"
+Platform="Win10"
+
+[Mozilla/5.0 (compatible; MSIE 10.0*; Trident/6.0; *Windows NT 6.1*]
+Parent="IE 10.0 for Desktop"
+Platform="Win7"
+
+[Mozilla/5.0 (compatible; MSIE 10.0*; Trident/6.0; *Windows*]
+Parent="IE 10.0 for Desktop"
+Platform="Win32"
+
+[Mozilla/5.0 (compatible; MSIE 10.0*; *Windows NT 6.0*]
+Parent="IE 10.0 for Desktop"
+Platform="WinVista"
+
+[Mozilla/5.0 (compatible; MSIE 10.0*; *Windows NT 6.1*]
+Parent="IE 10.0 for Desktop"
+Platform="Win7"
+
+[Mozilla/5.0 (compatible; MSIE 10.0*; *Windows NT 6.2*]
+Parent="IE 10.0 for Desktop"
+Platform="Win8"
+
+[Mozilla/5.0 (compatible; MSIE 10.0*; *Windows*]
+Parent="IE 10.0 for Desktop"
+Platform="Win32"
+
+[Mozilla/4.0 (compatible; MSIE 10.0*; *Windows NT 6.0*]
+Parent="IE 10.0 for Desktop"
+Platform="WinVista"
+
+[Mozilla/4.0 (compatible; MSIE 10.0*; *Windows NT 6.1*]
+Parent="IE 10.0 for Desktop"
+Platform="Win7"
+
+[Mozilla/4.0 (compatible; MSIE 10.0*; *Windows NT 6.2*]
+Parent="IE 10.0 for Desktop"
+Platform="Win8"
+
+[Mozilla/4.0 (compatible; MSIE 10.0*; *Windows*]
+Parent="IE 10.0 for Desktop"
+Platform="Win32"
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; IE 9.0
+
+[IE 9.0]
+Parent="DefaultProperties"
+Comment="IE 9.0"
+Browser="IE"
+Version="9.0"
+Device_Type="Desktop"
+
+[Mozilla/4.0 (compatible; MSIE 9.0*; *Windows NT 6.0*Trident/5.0*]
+Parent="IE 9.0"
+Platform="WinVista"
+
+[Mozilla/4.0 (compatible; MSIE 9.0*; *Windows NT 6.1*Trident/5.0*]
+Parent="IE 9.0"
+Platform="Win7"
+
+[Mozilla/4.0 (compatible; MSIE 9.0*; *Windows NT 6.2*Trident/5.0*]
+Parent="IE 9.0"
+Platform="Win8"
+
+[Mozilla/4.0 (compatible; MSIE 9.0*; *Windows*Trident/5.0*]
+Parent="IE 9.0"
+Platform="Win32"
+
+[Mozilla/5.0 (compatible; MSIE 9.0*; *Windows NT 6.0*Trident/5.0; Xbox*]
+Parent="IE 9.0"
+Platform="WinVista"
+Device_Type="TV Device"
+
+[Mozilla/5.0 (compatible; MSIE 9.0*; *Windows NT 6.1*Trident/5.0; Xbox*]
+Parent="IE 9.0"
+Platform="Win7"
+Device_Type="TV Device"
+
+[Mozilla/5.0 (compatible; MSIE 9.0*; *Windows NT 6.2*Trident/5.0; Xbox*]
+Parent="IE 9.0"
+Platform="Win8"
+Device_Type="TV Device"
+
+[Mozilla/5.0 (compatible; MSIE 9.0*; *Windows*Trident/5.0; Xbox*]
+Parent="IE 9.0"
+Platform="Win32"
+Device_Type="TV Device"
+
+[Mozilla/5.0 (compatible; MSIE 9.0*; *Windows NT 6.0*Trident/5.0*]
+Parent="IE 9.0"
+Platform="WinVista"
+
+[Mozilla/5.0 (compatible; MSIE 9.0*; *Windows NT 6.1*Trident/5.0*]
+Parent="IE 9.0"
+Platform="Win7"
+
+[Mozilla/5.0 (compatible; MSIE 9.0*; *Windows NT 6.2*Trident/5.0*]
+Parent="IE 9.0"
+Platform="Win8"
+
+[Mozilla/5.0 (compatible; MSIE 9.0*; *Windows*Trident/5.0*]
+Parent="IE 9.0"
+Platform="Win32"
+
+[Mozilla/4.0 (compatible; MSIE 7.0; *Windows NT 6.0*Trident/5.0*)*]
+Parent="IE 9.0"
+Comment="IE 9.0 in IE 7.0 Compatibility Mode"
+Platform="WinVista"
+
+[Mozilla/4.0 (compatible; MSIE 7.0; *Windows NT 6.1*Trident/5.0*)*]
+Parent="IE 9.0"
+Comment="IE 9.0 in IE 7.0 Compatibility Mode"
+Platform="Win7"
+
+[Mozilla/4.0 (compatible; MSIE 7.0; *Windows NT 6.2*Trident/5.0*)*]
+Parent="IE 9.0"
+Comment="IE 9.0 in IE 7.0 Compatibility Mode"
+Platform="Win8"
+
+[Mozilla/4.0 (compatible; MSIE 7.0; *Windows*Trident/5.0*)*]
+Parent="IE 9.0"
+Comment="IE 9.0 in IE 7.0 Compatibility Mode"
+Platform="Win32"
+
+[Mozilla/5.0 (compatible; MSIE 7.0; *Windows NT 6.0*Trident/5.0*)*]
+Parent="IE 9.0"
+Comment="IE 9.0 in IE 7.0 Compatibility Mode"
+Platform="WinVista"
+
+[Mozilla/5.0 (compatible; MSIE 7.0; *Windows NT 6.1*Trident/5.0*)*]
+Parent="IE 9.0"
+Comment="IE 9.0 in IE 7.0 Compatibility Mode"
+Platform="Win7"
+
+[Mozilla/5.0 (compatible; MSIE 7.0; *Windows NT 6.2*Trident/5.0*)*]
+Parent="IE 9.0"
+Comment="IE 9.0 in IE 7.0 Compatibility Mode"
+Platform="Win8"
+
+[Mozilla/5.0 (compatible; MSIE 7.0; *Windows*Trident/5.0*)*]
+Parent="IE 9.0"
+Comment="IE 9.0 in IE 7.0 Compatibility Mode"
+Platform="Win32"
+
+[Mozilla/4.0 (compatible; MSIE 8.0; *Windows NT 6.0*Trident/5.0*)*]
+Parent="IE 9.0"
+Comment="IE 9.0 in IE 8.0 Compatibility Mode"
+Platform="WinVista"
+
+[Mozilla/4.0 (compatible; MSIE 8.0; *Windows NT 6.1*Trident/5.0*)*]
+Parent="IE 9.0"
+Comment="IE 9.0 in IE 8.0 Compatibility Mode"
+Platform="Win7"
+
+[Mozilla/4.0 (compatible; MSIE 8.0; *Windows NT 6.2*Trident/5.0*)*]
+Parent="IE 9.0"
+Comment="IE 9.0 in IE 8.0 Compatibility Mode"
+Platform="Win8"
+
+[Mozilla/4.0 (compatible; MSIE 8.0; *Windows*Trident/5.0*)*]
+Parent="IE 9.0"
+Comment="IE 9.0 in IE 8.0 Compatibility Mode"
+Platform="Win32"
+
+[Mozilla/5.0 (compatible; MSIE 8.0; *Windows NT 6.0*Trident/5.0*)*]
+Parent="IE 9.0"
+Comment="IE 9.0 in IE 8.0 Compatibility Mode"
+Platform="WinVista"
+
+[Mozilla/5.0 (compatible; MSIE 8.0; *Windows NT 6.1*Trident/5.0*)*]
+Parent="IE 9.0"
+Comment="IE 9.0 in IE 8.0 Compatibility Mode"
+Platform="Win7"
+
+[Mozilla/5.0 (compatible; MSIE 8.0; *Windows NT 6.2*Trident/5.0*)*]
+Parent="IE 9.0"
+Comment="IE 9.0 in IE 8.0 Compatibility Mode"
+Platform="Win8"
+
+[Mozilla/5.0 (compatible; MSIE 8.0; *Windows*Trident/5.0*)*]
+Parent="IE 9.0"
+Comment="IE 9.0 in IE 8.0 Compatibility Mode"
+Platform="Win32"
+
+[Mozilla/4.0 (*MSIE 9.0*; *Windows NT 6.0*Trident/5.0*)*]
+Parent="IE 9.0"
+Platform="WinVista"
+
+[Mozilla/4.0 (*MSIE 9.0*; *Windows NT 6.1*Trident/5.0*)*]
+Parent="IE 9.0"
+Platform="Win7"
+
+[Mozilla/4.0 (*MSIE 9.0*; *Windows NT 6.2*Trident/5.0*)*]
+Parent="IE 9.0"
+Platform="Win8"
+
+[Mozilla/4.0 (*MSIE 9.0*; *Windows*Trident/5.0*)*]
+Parent="IE 9.0"
+Platform="Win32"
+
+[Mozilla/5.0 (*MSIE 9.0*; *Windows NT 6.0*Trident/5.0*)*]
+Parent="IE 9.0"
+Platform="WinVista"
+
+[Mozilla/5.0 (*MSIE 9.0*; *Windows NT 6.1*Trident/5.0*)*]
+Parent="IE 9.0"
+Platform="Win7"
+
+[Mozilla/5.0 (*MSIE 9.0*; *Windows NT 6.2*Trident/5.0*)*]
+Parent="IE 9.0"
+Platform="Win8"
+
+[Mozilla/5.0 (*MSIE 9.0*; *Windows*Trident/5.0*)*]
+Parent="IE 9.0"
+Platform="Win32"
+
+[Mozilla/5.0 (compatible; MSIE 9.0*; *Windows NT 6.0*]
+Parent="IE 9.0"
+Platform="WinVista"
+
+[Mozilla/5.0 (compatible; MSIE 9.0*; *Windows NT 6.1*]
+Parent="IE 9.0"
+Platform="Win7"
+
+[Mozilla/5.0 (compatible; MSIE 9.0*; *Windows NT 6.2*]
+Parent="IE 9.0"
+Platform="Win8"
+
+[Mozilla/5.0 (compatible; MSIE 9.0*; *Windows*]
+Parent="IE 9.0"
+Platform="Win32"
+
+[Mozilla/4.0 (compatible; MSIE 9.0*; *Windows NT 6.0*]
+Parent="IE 9.0"
+Platform="WinVista"
+
+[Mozilla/4.0 (compatible; MSIE 9.0*; *Windows NT 6.1*]
+Parent="IE 9.0"
+Platform="Win7"
+
+[Mozilla/4.0 (compatible; MSIE 9.0*; *Windows NT 6.2*]
+Parent="IE 9.0"
+Platform="Win8"
+
+[Mozilla/4.0 (compatible; MSIE 9.0*; *Windows*]
+Parent="IE 9.0"
+Platform="Win32"
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; IE 8.0
+
+[IE 8.0]
+Parent="DefaultProperties"
+Comment="IE 8.0"
+Browser="IE"
+Version="8.0"
+Device_Type="Desktop"
+
+[Mozilla/4.0 (compatible*; MSIE 7.0; *Windows NT 6.0*Trident/4.0*Mozilla/4.0 (compatible*; MSIE 6.0*]
+Parent="IE 8.0"
+Comment="IE 8.0 in IE 7.0 Compatibility Mode"
+Platform="WinVista"
+
+[Mozilla/4.0 (compatible*; MSIE 7.0; *Windows NT 6.1*Trident/4.0*Mozilla/4.0 (compatible*; MSIE 6.0*]
+Parent="IE 8.0"
+Comment="IE 8.0 in IE 7.0 Compatibility Mode"
+Platform="Win7"
+
+[Mozilla/4.0 (compatible*; MSIE 7.0; *Windows NT 6.2*Trident/4.0*Mozilla/4.0 (compatible*; MSIE 6.0*]
+Parent="IE 8.0"
+Comment="IE 8.0 in IE 7.0 Compatibility Mode"
+Platform="Win8"
+
+[Mozilla/4.0 (compatible*; MSIE 7.0; *Windows*Trident/4.0*Mozilla/4.0 (compatible*; MSIE 6.0*]
+Parent="IE 8.0"
+Comment="IE 8.0 in IE 7.0 Compatibility Mode"
+Platform="Win32"
+
+[Mozilla/5.0 (compatible; MSIE 7.0; *Windows NT 6.0*Trident/4.0*Mozilla/4.0 (compatible; MSIE 6.0*]
+Parent="IE 8.0"
+Comment="IE 8.0 in IE 7.0 Compatibility Mode"
+Platform="WinVista"
+
+[Mozilla/5.0 (compatible; MSIE 7.0; *Windows NT 6.1*Trident/4.0*Mozilla/4.0 (compatible; MSIE 6.0*]
+Parent="IE 8.0"
+Comment="IE 8.0 in IE 7.0 Compatibility Mode"
+Platform="Win7"
+
+[Mozilla/5.0 (compatible; MSIE 7.0; *Windows NT 6.2*Trident/4.0*Mozilla/4.0 (compatible; MSIE 6.0*]
+Parent="IE 8.0"
+Comment="IE 8.0 in IE 7.0 Compatibility Mode"
+Platform="Win8"
+
+[Mozilla/5.0 (compatible; MSIE 7.0; *Windows*Trident/4.0*Mozilla/4.0 (compatible; MSIE 6.0*]
+Parent="IE 8.0"
+Comment="IE 8.0 in IE 7.0 Compatibility Mode"
+Platform="Win32"
+
+[Mozilla/4.0 (compatible; MSIE 8.0*; *Windows NT 6.0*]
+Parent="IE 8.0"
+Platform="WinVista"
+
+[Mozilla/4.0 (compatible; MSIE 8.0*; *Windows NT 6.1*]
+Parent="IE 8.0"
+Platform="Win7"
+
+[Mozilla/4.0 (compatible; MSIE 8.0*; *Windows NT 6.2*]
+Parent="IE 8.0"
+Platform="Win8"
+
+[Mozilla/4.0 (compatible; MSIE 8.0*; *Windows*]
+Parent="IE 8.0"
+Platform="Win32"
+
+[Mozilla/5.0 (compatible; MSIE 8.0*; *Windows NT 6.0*]
+Parent="IE 8.0"
+Platform="WinVista"
+
+[Mozilla/5.0 (compatible; MSIE 8.0*; *Windows NT 6.1*]
+Parent="IE 8.0"
+Platform="Win7"
+
+[Mozilla/5.0 (compatible; MSIE 8.0*; *Windows NT 6.2*]
+Parent="IE 8.0"
+Platform="Win8"
+
+[Mozilla/5.0 (compatible; MSIE 8.0*; *Windows*]
+Parent="IE 8.0"
+Platform="Win32"
+
+[Mozilla/4.0 (compatible; MSIE 8.0*; *Windows NT 6.0*Trident/4.0*]
+Parent="IE 8.0"
+Platform="WinVista"
+
+[Mozilla/4.0 (compatible; MSIE 8.0*; *Windows NT 6.1*Trident/4.0*]
+Parent="IE 8.0"
+Platform="Win7"
+
+[Mozilla/4.0 (compatible; MSIE 8.0*; *Windows NT 6.2*Trident/4.0*]
+Parent="IE 8.0"
+Platform="Win8"
+
+[Mozilla/4.0 (compatible; MSIE 8.0*; *Windows*Trident/4.0*]
+Parent="IE 8.0"
+Platform="Win32"
+
+[Mozilla/5.0 (compatible; MSIE 8.0*; *Windows NT 6.0*Trident/4.0*]
+Parent="IE 8.0"
+Platform="WinVista"
+
+[Mozilla/5.0 (compatible; MSIE 8.0*; *Windows NT 6.1*Trident/4.0*]
+Parent="IE 8.0"
+Platform="Win7"
+
+[Mozilla/5.0 (compatible; MSIE 8.0*; *Windows NT 6.2*Trident/4.0*]
+Parent="IE 8.0"
+Platform="Win8"
+
+[Mozilla/5.0 (compatible; MSIE 8.0*; *Windows*Trident/4.0*]
+Parent="IE 8.0"
+Platform="Win32"
+
+[Mozilla/4.0 (compatible; MSIE 7.0; *Windows NT 6.0*Trident/4.0*]
+Parent="IE 8.0"
+Comment="IE 8.0 in IE 7.0 Compatibility Mode"
+Platform="WinVista"
+
+[Mozilla/4.0 (compatible; MSIE 7.0; *Windows NT 6.1*Trident/4.0*]
+Parent="IE 8.0"
+Comment="IE 8.0 in IE 7.0 Compatibility Mode"
+Platform="Win7"
+
+[Mozilla/4.0 (compatible; MSIE 7.0; *Windows NT 6.2*Trident/4.0*]
+Parent="IE 8.0"
+Comment="IE 8.0 in IE 7.0 Compatibility Mode"
+Platform="Win8"
+
+[Mozilla/4.0 (compatible; MSIE 7.0; *Windows*Trident/4.0*]
+Parent="IE 8.0"
+Comment="IE 8.0 in IE 7.0 Compatibility Mode"
+Platform="Win32"
+
+[Mozilla/5.0 (compatible; MSIE 7.0; *Windows NT 6.0*Trident/4.0*]
+Parent="IE 8.0"
+Comment="IE 8.0 in IE 7.0 Compatibility Mode"
+Platform="WinVista"
+
+[Mozilla/5.0 (compatible; MSIE 7.0; *Windows NT 6.1*Trident/4.0*]
+Parent="IE 8.0"
+Comment="IE 8.0 in IE 7.0 Compatibility Mode"
+Platform="Win7"
+
+[Mozilla/5.0 (compatible; MSIE 7.0; *Windows NT 6.2*Trident/4.0*]
+Parent="IE 8.0"
+Comment="IE 8.0 in IE 7.0 Compatibility Mode"
+Platform="Win8"
+
+[Mozilla/5.0 (compatible; MSIE 7.0; *Windows*Trident/4.0*]
+Parent="IE 8.0"
+Comment="IE 8.0 in IE 7.0 Compatibility Mode"
+Platform="Win32"
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; IE 7.0b
+
+[IE 7.0b]
+Parent="DefaultProperties"
+Comment="IE 7.0b"
+Browser="IE"
+Version="7.0b"
+Device_Type="Desktop"
+
+[Mozilla/4.0 (compatible*; MSIE 7.0b*; *Windows NT 6.0*Mozilla/4.0 (compatible*; MSIE 6.0*]
+Parent="IE 7.0b"
+Platform="WinVista"
+
+[Mozilla/4.0 (compatible*; MSIE 7.0b*; *Windows NT 6.1*Mozilla/4.0 (compatible*; MSIE 6.0*]
+Parent="IE 7.0b"
+Platform="Win7"
+
+[Mozilla/4.0 (compatible*; MSIE 7.0b*; *Windows NT 6.2*Mozilla/4.0 (compatible*; MSIE 6.0*]
+Parent="IE 7.0b"
+Platform="Win8"
+
+[Mozilla/4.0 (compatible*; MSIE 7.0b*; *Windows*Mozilla/4.0 (compatible*; MSIE 6.0*]
+Parent="IE 7.0b"
+Platform="Win32"
+
+[Mozilla/5.0 (compatible; MSIE 7.0b*; *Windows NT 6.0*Mozilla/4.0 (compatible; MSIE 6.0*]
+Parent="IE 7.0b"
+Platform="WinVista"
+
+[Mozilla/5.0 (compatible; MSIE 7.0b*; *Windows NT 6.1*Mozilla/4.0 (compatible; MSIE 6.0*]
+Parent="IE 7.0b"
+Platform="Win7"
+
+[Mozilla/5.0 (compatible; MSIE 7.0b*; *Windows NT 6.2*Mozilla/4.0 (compatible; MSIE 6.0*]
+Parent="IE 7.0b"
+Platform="Win8"
+
+[Mozilla/5.0 (compatible; MSIE 7.0b*; *Windows*Mozilla/4.0 (compatible; MSIE 6.0*]
+Parent="IE 7.0b"
+Platform="Win32"
+
+[Mozilla/4.0 (compatible*; MSIE 7.0b*; *Windows NT 6.0*]
+Parent="IE 7.0b"
+Platform="WinVista"
+
+[Mozilla/4.0 (compatible*; MSIE 7.0b*; *Windows NT 6.1*]
+Parent="IE 7.0b"
+Platform="Win7"
+
+[Mozilla/4.0 (compatible*; MSIE 7.0b*; *Windows NT 6.2*]
+Parent="IE 7.0b"
+Platform="Win8"
+
+[Mozilla/4.0 (compatible*; MSIE 7.0b*; *Windows*]
+Parent="IE 7.0b"
+Platform="Win32"
+
+[Mozilla/5.0 (compatible; MSIE 7.0b*; *Windows NT 6.0*]
+Parent="IE 7.0b"
+Platform="WinVista"
+
+[Mozilla/5.0 (compatible; MSIE 7.0b*; *Windows NT 6.1*]
+Parent="IE 7.0b"
+Platform="Win7"
+
+[Mozilla/5.0 (compatible; MSIE 7.0b*; *Windows NT 6.2*]
+Parent="IE 7.0b"
+Platform="Win8"
+
+[Mozilla/5.0 (compatible; MSIE 7.0b*; *Windows*]
+Parent="IE 7.0b"
+Platform="Win32"
+
+[Mozilla/4.0 (*MSIE 7.0b*]
+Parent="IE 7.0b"
+
+[Mozilla/5.0 (*MSIE 7.0b*]
+Parent="IE 7.0b"
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; IE 7.0
+
+[IE 7.0]
+Parent="DefaultProperties"
+Comment="IE 7.0"
+Browser="IE"
+Version="7.0"
+Device_Type="Desktop"
+
+[Mozilla/4.0 (compatible*; MSIE 7.0*; *Windows NT 6.0*Mozilla/4.0 (compatible*; MSIE 6.0*]
+Parent="IE 7.0"
+Platform="WinVista"
+
+[Mozilla/4.0 (compatible*; MSIE 7.0*; *Windows NT 6.1*Mozilla/4.0 (compatible*; MSIE 6.0*]
+Parent="IE 7.0"
+Platform="Win7"
+
+[Mozilla/4.0 (compatible*; MSIE 7.0*; *Windows NT 6.2*Mozilla/4.0 (compatible*; MSIE 6.0*]
+Parent="IE 7.0"
+Platform="Win8"
+
+[Mozilla/4.0 (compatible*; MSIE 7.0*; *Windows*Mozilla/4.0 (compatible*; MSIE 6.0*]
+Parent="IE 7.0"
+Platform="Win32"
+
+[Mozilla/5.0 (compatible; MSIE 7.0*; *Windows NT 6.0*Mozilla/4.0 (compatible; MSIE 6.0*]
+Parent="IE 7.0"
+Platform="WinVista"
+
+[Mozilla/5.0 (compatible; MSIE 7.0*; *Windows NT 6.1*Mozilla/4.0 (compatible; MSIE 6.0*]
+Parent="IE 7.0"
+Platform="Win7"
+
+[Mozilla/5.0 (compatible; MSIE 7.0*; *Windows NT 6.2*Mozilla/4.0 (compatible; MSIE 6.0*]
+Parent="IE 7.0"
+Platform="Win8"
+
+[Mozilla/5.0 (compatible; MSIE 7.0*; *Windows*Mozilla/4.0 (compatible; MSIE 6.0*]
+Parent="IE 7.0"
+Platform="Win32"
+
+[Mozilla/4.0 (compatible*; MSIE 7.0*; *Windows NT 6.0*]
+Parent="IE 7.0"
+Platform="WinVista"
+
+[Mozilla/4.0 (compatible*; MSIE 7.0*; *Windows NT 6.1*]
+Parent="IE 7.0"
+Platform="Win7"
+
+[Mozilla/4.0 (compatible*; MSIE 7.0*; *Windows NT 6.2*]
+Parent="IE 7.0"
+Platform="Win8"
+
+[Mozilla/4.0 (compatible*; MSIE 7.0*; *Windows*]
+Parent="IE 7.0"
+Platform="Win32"
+
+[Mozilla/5.0 (compatible; MSIE 7.0*; *Windows NT 6.0*]
+Parent="IE 7.0"
+Platform="WinVista"
+
+[Mozilla/5.0 (compatible; MSIE 7.0*; *Windows NT 6.1*]
+Parent="IE 7.0"
+Platform="Win7"
+
+[Mozilla/5.0 (compatible; MSIE 7.0*; *Windows NT 6.2*]
+Parent="IE 7.0"
+Platform="Win8"
+
+[Mozilla/5.0 (compatible; MSIE 7.0*; *Windows*]
+Parent="IE 7.0"
+Platform="Win32"
+
+[Mozilla/4.0 (*MSIE 7.0*]
+Parent="IE 7.0"
+
+[Mozilla/5.0 (*MSIE 7.0*]
+Parent="IE 7.0"
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; IE 6.0
+
+[IE 6.0 for Mobile]
+Parent="DefaultProperties"
+Comment="IE 6.0"
+Browser="IE"
+Version="6.0"
+isMobileDevice="true"
+Device_Type="Mobile Phone"
+
+[IE 6.0 for Desktop]
+Parent="DefaultProperties"
+Comment="IE 6.0"
+Browser="IE"
+Version="6.0"
+Device_Type="Desktop"
+
+[Mozilla/4.0 (compatible; MSIE 6.0*; *Windows NT 6.0*]
+Parent="IE 6.0 for Desktop"
+Platform="WinVista"
+
+[Mozilla/4.0 (compatible; MSIE 6.0*; *Windows NT 6.1*]
+Parent="IE 6.0 for Desktop"
+Platform="Win7"
+
+[Mozilla/4.0 (compatible; MSIE 6.0*; *Windows NT 6.2*]
+Parent="IE 6.0 for Desktop"
+Platform="Win8"
+
+[Mozilla/4.0 (compatible; MSIE 6.0*; *Windows*]
+Parent="IE 6.0 for Desktop"
+Platform="Win32"
+
+[Mozilla/5.0 (compatible; MSIE 6.0*; *Windows NT 6.0*]
+Parent="IE 6.0 for Desktop"
+Platform="WinVista"
+
+[Mozilla/5.0 (compatible; MSIE 6.0*; *Windows NT 6.1*]
+Parent="IE 6.0 for Desktop"
+Platform="Win7"
+
+[Mozilla/5.0 (compatible; MSIE 6.0*; *Windows NT 6.2*]
+Parent="IE 6.0 for Desktop"
+Platform="Win8"
+
+[Mozilla/5.0 (compatible; MSIE 6.0*; *Windows*]
+Parent="IE 6.0 for Desktop"
+Platform="Win32"
+
+[Mozilla/4.0 (*MSIE 6.0*)*]
+Parent="IE 6.0 for Desktop"
+
+[Mozilla/5.0 (*MSIE 6.0*)*]
+Parent="IE 6.0 for Desktop"
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Firefox 50.0
+
+[Firefox 50.0]
+Parent="DefaultProperties"
+Comment="Firefox 50.0"
+Browser="Firefox"
+Version="50.0"
+Device_Type="Desktop"
+
+[Mozilla/5.0 (*Linux*) Gecko* Firefox/50.0*]
+Parent="Firefox 50.0"
+Platform="Linux"
+
+[Mozilla/5.0 (*Windows NT 6.0*) Gecko* Firefox/50.0*]
+Parent="Firefox 50.0"
+Platform="WinVista"
+
+[Mozilla/5.0 (*Windows NT 6.1*) Gecko* Firefox/50.0*]
+Parent="Firefox 50.0"
+Platform="Win7"
+
+[Mozilla/5.0 (*Windows NT 6.2*) Gecko* Firefox/50.0*]
+Parent="Firefox 50.0"
+Platform="Win8"
+
+[Mozilla/5.0 (*Windows NT 6.3*) Gecko* Firefox/50.0*]
+Parent="Firefox 50.0"
+Platform="Win8.1"
+
+[Mozilla/5.0 (*Windows NT 6.4*) Gecko* Firefox/50.0*]
+Parent="Firefox 50.0"
+Platform="Win10"
+
+[Mozilla/5.0 (*Windows NT 10.0*) Gecko* Firefox/50.0*]
+Parent="Firefox 50.0"
+Platform="Win10"
+
+[Mozilla/5.0 (*Mac OS X*) Gecko* Firefox/50.0*]
+Parent="Firefox 50.0"
+Platform="MacOSX"
+
+[Mozilla/4.0 (*Linux*) Gecko* Firefox/50.0*]
+Parent="Firefox 50.0"
+Platform="Linux"
+
+[Mozilla/4.0 (*Windows NT 6.0*) Gecko* Firefox/50.0*]
+Parent="Firefox 50.0"
+Platform="WinVista"
+
+[Mozilla/4.0 (*Windows NT 6.1*) Gecko* Firefox/50.0*]
+Parent="Firefox 50.0"
+Platform="Win7"
+
+[Mozilla/4.0 (*Windows NT 6.2*) Gecko* Firefox/50.0*]
+Parent="Firefox 50.0"
+Platform="Win8"
+
+[Mozilla/4.0 (*Windows NT 6.3*) Gecko* Firefox/50.0*]
+Parent="Firefox 50.0"
+Platform="Win8.1"
+
+[Mozilla/4.0 (*Windows NT 6.4*) Gecko* Firefox/50.0*]
+Parent="Firefox 50.0"
+Platform="Win10"
+
+[Mozilla/4.0 (*Windows NT 10.0*) Gecko* Firefox/50.0*]
+Parent="Firefox 50.0"
+Platform="Win10"
+
+[Mozilla/4.0 (*Mac OS X*) Gecko* Firefox/50.0*]
+Parent="Firefox 50.0"
+Platform="MacOSX"
+
+[Mozilla/5.0 (*Windows NT 6.0*; rv:50*) Gecko* Firefox/50*anonymized by *]
+Parent="Firefox 50.0"
+Platform="WinVista"
+
+[Mozilla/5.0 (*Windows NT 6.1*; rv:50*) Gecko* Firefox/50*anonymized by *]
+Parent="Firefox 50.0"
+Platform="Win7"
+
+[Mozilla/5.0 (*Windows*; rv:50*) Gecko* Firefox/50*anonymized by *]
+Parent="Firefox 50.0"
+Platform="Win32"
+
+[Mozilla/5.0 (*Windows NT 6.0*; rv:50*) Gecko* Firefox anonymized by *]
+Parent="Firefox 50.0"
+Platform="WinVista"
+
+[Mozilla/5.0 (*Windows*; rv:50*) Gecko* Firefox anonymized by *]
+Parent="Firefox 50.0"
+Platform="Win32"
+
+[Mozilla/5.0 (*Windows*) Gecko* Firefox/50.0* Anonymisiert*]
+Parent="Firefox 50.0"
+Platform="Win32"
+
+[Firefox/50.0*anonymized by Abelssoft*]
+Parent="Firefox 50.0"
+Platform="Win32"
+
+[Mozilla/5.0 (masking-agent; rv:*) Gecko* Firefox/50.0*]
+Parent="Firefox 50.0"
+
+[Mozilla/5.0 (*Windows NT 6.0*) Gecko*/50.0*]
+Parent="Firefox 50.0"
+Platform="WinVista"
+
+[Mozilla/5.0 (*Windows NT 6.1*) Gecko*/50.0*]
+Parent="Firefox 50.0"
+Platform="Win7"
+
+[Mozilla/5.0 (*Windows NT 6.2*) Gecko*/50.0*]
+Parent="Firefox 50.0"
+Platform="Win8"
+
+[Mozilla/5.0 (*Windows NT 6.3*) Gecko*/50.0*]
+Parent="Firefox 50.0"
+Platform="Win8.1"
+
+[Mozilla/5.0 (*Windows NT 6.4*) Gecko*/50.0*]
+Parent="Firefox 50.0"
+Platform="Win10"
+
+[Mozilla/5.0 (*Windows NT 10.0*) Gecko*/50.0*]
+Parent="Firefox 50.0"
+Platform="Win10"
+
+[Mozilla/5.0 (*Windows NT 6.0*rv:50.0*) Gecko*/]
+Parent="Firefox 50.0"
+Platform="WinVista"
+
+[Mozilla/5.0 (*Windows NT 6.1*rv:50.0*) Gecko*/]
+Parent="Firefox 50.0"
+Platform="Win7"
+
+[Mozilla/5.0 (*Windows NT 6.2*rv:50.0*) Gecko*/]
+Parent="Firefox 50.0"
+Platform="Win8"
+
+[Mozilla/5.0 (*Windows NT 6.3*rv:50.0*) Gecko*/]
+Parent="Firefox 50.0"
+Platform="Win8.1"
+
+[Mozilla/5.0 (*Windows NT 6.4*rv:50.0*) Gecko*/]
+Parent="Firefox 50.0"
+Platform="Win10"
+
+[Mozilla/5.0 (*Windows NT 10.0*rv:50.0*) Gecko*/]
+Parent="Firefox 50.0"
+Platform="Win10"
+
+[Mozilla/5.0 (*Mac OS X*) Gecko*/50.0*]
+Parent="Firefox 50.0"
+Platform="MacOSX"
+
+[Mozilla/5.0 (*Windows NT 6.4*rv:50.0*) Gecko* Firefox*]
+Parent="Firefox 50.0"
+Platform="Win10"
+
+[Mozilla/5.0 (*Windows NT 10.0*rv:50.0*) Gecko* Firefox*]
+Parent="Firefox 50.0"
+Platform="Win10"
+
+[Firefox 50.0 for Android]
+Parent="DefaultProperties"
+Comment="Firefox 50.0"
+Browser="Firefox"
+Version="50.0"
+Platform="Android"
+isMobileDevice="true"
+Device_Type="Mobile Phone"
+
+[Mozilla/5.0 (*Android*Mobile*) Gecko* Firefox/50.*]
+Parent="Firefox 50.0 for Android"
+
+[Mozilla/5.0 (*Android*Tablet*) Gecko* Firefox/50.*]
+Parent="Firefox 50.0 for Android"
+isTablet="true"
+Device_Type="Tablet"
+
+[Firefox 49.0]
+Parent="DefaultProperties"
+Comment="Firefox 49.0"
+Browser="Firefox"
+Version="49.0"
+Device_Type="Desktop"
+
+[Mozilla/5.0 (*Linux*) Gecko* Firefox/49.0*]
+Parent="Firefox 49.0"
+Platform="Linux"
+
+[Mozilla/5.0 (*Windows NT 6.0*) Gecko* Firefox/49.0*]
+Parent="Firefox 49.0"
+Platform="WinVista"
+
+[Mozilla/5.0 (*Windows NT 6.1*) Gecko* Firefox/49.0*]
+Parent="Firefox 49.0"
+Platform="Win7"
+
+[Mozilla/5.0 (*Windows NT 6.2*) Gecko* Firefox/49.0*]
+Parent="Firefox 49.0"
+Platform="Win8"
+
+[Mozilla/5.0 (*Windows NT 6.3*) Gecko* Firefox/49.0*]
+Parent="Firefox 49.0"
+Platform="Win8.1"
+
+[Mozilla/5.0 (*Windows NT 6.4*) Gecko* Firefox/49.0*]
+Parent="Firefox 49.0"
+Platform="Win10"
+
+[Mozilla/5.0 (*Windows NT 10.0*) Gecko* Firefox/49.0*]
+Parent="Firefox 49.0"
+Platform="Win10"
+
+[Mozilla/5.0 (*Mac OS X*) Gecko* Firefox/49.0*]
+Parent="Firefox 49.0"
+Platform="MacOSX"
+
+[Mozilla/4.0 (*Linux*) Gecko* Firefox/49.0*]
+Parent="Firefox 49.0"
+Platform="Linux"
+
+[Mozilla/4.0 (*Windows NT 6.0*) Gecko* Firefox/49.0*]
+Parent="Firefox 49.0"
+Platform="WinVista"
+
+[Mozilla/4.0 (*Windows NT 6.1*) Gecko* Firefox/49.0*]
+Parent="Firefox 49.0"
+Platform="Win7"
+
+[Mozilla/4.0 (*Windows NT 6.2*) Gecko* Firefox/49.0*]
+Parent="Firefox 49.0"
+Platform="Win8"
+
+[Mozilla/4.0 (*Windows NT 6.3*) Gecko* Firefox/49.0*]
+Parent="Firefox 49.0"
+Platform="Win8.1"
+
+[Mozilla/4.0 (*Windows NT 6.4*) Gecko* Firefox/49.0*]
+Parent="Firefox 49.0"
+Platform="Win10"
+
+[Mozilla/4.0 (*Windows NT 10.0*) Gecko* Firefox/49.0*]
+Parent="Firefox 49.0"
+Platform="Win10"
+
+[Mozilla/4.0 (*Mac OS X*) Gecko* Firefox/49.0*]
+Parent="Firefox 49.0"
+Platform="MacOSX"
+
+[Mozilla/5.0 (*Windows NT 6.0*; rv:49*) Gecko* Firefox/49*anonymized by *]
+Parent="Firefox 49.0"
+Platform="WinVista"
+
+[Mozilla/5.0 (*Windows NT 6.1*; rv:49*) Gecko* Firefox/49*anonymized by *]
+Parent="Firefox 49.0"
+Platform="Win7"
+
+[Mozilla/5.0 (*Windows*; rv:49*) Gecko* Firefox/49*anonymized by *]
+Parent="Firefox 49.0"
+Platform="Win32"
+
+[Mozilla/5.0 (*Windows NT 6.0*; rv:49*) Gecko* Firefox anonymized by *]
+Parent="Firefox 49.0"
+Platform="WinVista"
+
+[Mozilla/5.0 (*Windows*; rv:49*) Gecko* Firefox anonymized by *]
+Parent="Firefox 49.0"
+Platform="Win32"
+
+[Mozilla/5.0 (*Windows*) Gecko* Firefox/49.0* Anonymisiert*]
+Parent="Firefox 49.0"
+Platform="Win32"
+
+[Firefox/49.0*anonymized by Abelssoft*]
+Parent="Firefox 49.0"
+Platform="Win32"
+
+[Mozilla/5.0 (masking-agent; rv:*) Gecko* Firefox/49.0*]
+Parent="Firefox 49.0"
+
+[Mozilla/5.0 (*Windows NT 6.0*) Gecko*/49.0*]
+Parent="Firefox 49.0"
+Platform="WinVista"
+
+[Mozilla/5.0 (*Windows NT 6.1*) Gecko*/49.0*]
+Parent="Firefox 49.0"
+Platform="Win7"
+
+[Mozilla/5.0 (*Windows NT 6.2*) Gecko*/49.0*]
+Parent="Firefox 49.0"
+Platform="Win8"
+
+[Mozilla/5.0 (*Windows NT 6.3*) Gecko*/49.0*]
+Parent="Firefox 49.0"
+Platform="Win8.1"
+
+[Mozilla/5.0 (*Windows NT 6.4*) Gecko*/49.0*]
+Parent="Firefox 49.0"
+Platform="Win10"
+
+[Mozilla/5.0 (*Windows NT 10.0*) Gecko*/49.0*]
+Parent="Firefox 49.0"
+Platform="Win10"
+
+[Mozilla/5.0 (*Windows NT 6.0*rv:49.0*) Gecko*/]
+Parent="Firefox 49.0"
+Platform="WinVista"
+
+[Mozilla/5.0 (*Windows NT 6.1*rv:49.0*) Gecko*/]
+Parent="Firefox 49.0"
+Platform="Win7"
+
+[Mozilla/5.0 (*Windows NT 6.2*rv:49.0*) Gecko*/]
+Parent="Firefox 49.0"
+Platform="Win8"
+
+[Mozilla/5.0 (*Windows NT 6.3*rv:49.0*) Gecko*/]
+Parent="Firefox 49.0"
+Platform="Win8.1"
+
+[Mozilla/5.0 (*Windows NT 6.4*rv:49.0*) Gecko*/]
+Parent="Firefox 49.0"
+Platform="Win10"
+
+[Mozilla/5.0 (*Windows NT 10.0*rv:49.0*) Gecko*/]
+Parent="Firefox 49.0"
+Platform="Win10"
+
+[Mozilla/5.0 (*Mac OS X*) Gecko*/49.0*]
+Parent="Firefox 49.0"
+Platform="MacOSX"
+
+[Mozilla/5.0 (*Windows NT 6.4*rv:49.0*) Gecko* Firefox*]
+Parent="Firefox 49.0"
+Platform="Win10"
+
+[Mozilla/5.0 (*Windows NT 10.0*rv:49.0*) Gecko* Firefox*]
+Parent="Firefox 49.0"
+Platform="Win10"
+
+[Firefox 49.0 for Android]
+Parent="DefaultProperties"
+Comment="Firefox 49.0"
+Browser="Firefox"
+Version="49.0"
+Platform="Android"
+isMobileDevice="true"
+Device_Type="Mobile Phone"
+
+[Mozilla/5.0 (*Android*Mobile*) Gecko* Firefox/49.*]
+Parent="Firefox 49.0 for Android"
+
+[Mozilla/5.0 (*Android*Tablet*) Gecko* Firefox/49.*]
+Parent="Firefox 49.0 for Android"
+isTablet="true"
+Device_Type="Tablet"
+
+[Firefox 48.0]
+Parent="DefaultProperties"
+Comment="Firefox 48.0"
+Browser="Firefox"
+Version="48.0"
+Device_Type="Desktop"
+
+[Mozilla/5.0 (*Linux*) Gecko* Firefox/48.0*]
+Parent="Firefox 48.0"
+Platform="Linux"
+
+[Mozilla/5.0 (*Windows NT 6.0*) Gecko* Firefox/48.0*]
+Parent="Firefox 48.0"
+Platform="WinVista"
+
+[Mozilla/5.0 (*Windows NT 6.1*) Gecko* Firefox/48.0*]
+Parent="Firefox 48.0"
+Platform="Win7"
+
+[Mozilla/5.0 (*Windows NT 6.2*) Gecko* Firefox/48.0*]
+Parent="Firefox 48.0"
+Platform="Win8"
+
+[Mozilla/5.0 (*Windows NT 6.3*) Gecko* Firefox/48.0*]
+Parent="Firefox 48.0"
+Platform="Win8.1"
+
+[Mozilla/5.0 (*Windows NT 6.4*) Gecko* Firefox/48.0*]
+Parent="Firefox 48.0"
+Platform="Win10"
+
+[Mozilla/5.0 (*Windows NT 10.0*) Gecko* Firefox/48.0*]
+Parent="Firefox 48.0"
+Platform="Win10"
+
+[Mozilla/5.0 (*Mac OS X*) Gecko* Firefox/48.0*]
+Parent="Firefox 48.0"
+Platform="MacOSX"
+
+[Mozilla/4.0 (*Linux*) Gecko* Firefox/48.0*]
+Parent="Firefox 48.0"
+Platform="Linux"
+
+[Mozilla/4.0 (*Windows NT 6.0*) Gecko* Firefox/48.0*]
+Parent="Firefox 48.0"
+Platform="WinVista"
+
+[Mozilla/4.0 (*Windows NT 6.1*) Gecko* Firefox/48.0*]
+Parent="Firefox 48.0"
+Platform="Win7"
+
+[Mozilla/4.0 (*Windows NT 6.2*) Gecko* Firefox/48.0*]
+Parent="Firefox 48.0"
+Platform="Win8"
+
+[Mozilla/4.0 (*Windows NT 6.3*) Gecko* Firefox/48.0*]
+Parent="Firefox 48.0"
+Platform="Win8.1"
+
+[Mozilla/4.0 (*Windows NT 6.4*) Gecko* Firefox/48.0*]
+Parent="Firefox 48.0"
+Platform="Win10"
+
+[Mozilla/4.0 (*Windows NT 10.0*) Gecko* Firefox/48.0*]
+Parent="Firefox 48.0"
+Platform="Win10"
+
+[Mozilla/4.0 (*Mac OS X*) Gecko* Firefox/48.0*]
+Parent="Firefox 48.0"
+Platform="MacOSX"
+
+[Mozilla/5.0 (*Windows NT 6.0*; rv:48*) Gecko* Firefox/48*anonymized by *]
+Parent="Firefox 48.0"
+Platform="WinVista"
+
+[Mozilla/5.0 (*Windows NT 6.1*; rv:48*) Gecko* Firefox/48*anonymized by *]
+Parent="Firefox 48.0"
+Platform="Win7"
+
+[Mozilla/5.0 (*Windows*; rv:48*) Gecko* Firefox/48*anonymized by *]
+Parent="Firefox 48.0"
+Platform="Win32"
+
+[Mozilla/5.0 (*Windows NT 6.0*; rv:48*) Gecko* Firefox anonymized by *]
+Parent="Firefox 48.0"
+Platform="WinVista"
+
+[Mozilla/5.0 (*Windows*; rv:48*) Gecko* Firefox anonymized by *]
+Parent="Firefox 48.0"
+Platform="Win32"
+
+[Mozilla/5.0 (*Windows*) Gecko* Firefox/48.0* Anonymisiert*]
+Parent="Firefox 48.0"
+Platform="Win32"
+
+[Firefox/48.0*anonymized by Abelssoft*]
+Parent="Firefox 48.0"
+Platform="Win32"
+
+[Mozilla/5.0 (masking-agent; rv:*) Gecko* Firefox/48.0*]
+Parent="Firefox 48.0"
+
+[Mozilla/5.0 (*Windows NT 6.0*) Gecko*/48.0*]
+Parent="Firefox 48.0"
+Platform="WinVista"
+
+[Mozilla/5.0 (*Windows NT 6.1*) Gecko*/48.0*]
+Parent="Firefox 48.0"
+Platform="Win7"
+
+[Mozilla/5.0 (*Windows NT 6.2*) Gecko*/48.0*]
+Parent="Firefox 48.0"
+Platform="Win8"
+
+[Mozilla/5.0 (*Windows NT 6.3*) Gecko*/48.0*]
+Parent="Firefox 48.0"
+Platform="Win8.1"
+
+[Mozilla/5.0 (*Windows NT 6.4*) Gecko*/48.0*]
+Parent="Firefox 48.0"
+Platform="Win10"
+
+[Mozilla/5.0 (*Windows NT 10.0*) Gecko*/48.0*]
+Parent="Firefox 48.0"
+Platform="Win10"
+
+[Mozilla/5.0 (*Windows NT 6.0*rv:48.0*) Gecko*/]
+Parent="Firefox 48.0"
+Platform="WinVista"
+
+[Mozilla/5.0 (*Windows NT 6.1*rv:48.0*) Gecko*/]
+Parent="Firefox 48.0"
+Platform="Win7"
+
+[Mozilla/5.0 (*Windows NT 6.2*rv:48.0*) Gecko*/]
+Parent="Firefox 48.0"
+Platform="Win8"
+
+[Mozilla/5.0 (*Windows NT 6.3*rv:48.0*) Gecko*/]
+Parent="Firefox 48.0"
+Platform="Win8.1"
+
+[Mozilla/5.0 (*Windows NT 6.4*rv:48.0*) Gecko*/]
+Parent="Firefox 48.0"
+Platform="Win10"
+
+[Mozilla/5.0 (*Windows NT 10.0*rv:48.0*) Gecko*/]
+Parent="Firefox 48.0"
+Platform="Win10"
+
+[Mozilla/5.0 (*Mac OS X*) Gecko*/48.0*]
+Parent="Firefox 48.0"
+Platform="MacOSX"
+
+[Mozilla/5.0 (*Windows NT 6.4*rv:48.0*) Gecko* Firefox*]
+Parent="Firefox 48.0"
+Platform="Win10"
+
+[Mozilla/5.0 (*Windows NT 10.0*rv:48.0*) Gecko* Firefox*]
+Parent="Firefox 48.0"
+Platform="Win10"
+
+[Firefox 48.0 for Android]
+Parent="DefaultProperties"
+Comment="Firefox 48.0"
+Browser="Firefox"
+Version="48.0"
+Platform="Android"
+isMobileDevice="true"
+Device_Type="Mobile Phone"
+
+[Mozilla/5.0 (*Android*Mobile*) Gecko* Firefox/48.*]
+Parent="Firefox 48.0 for Android"
+
+[Mozilla/5.0 (*Android*Tablet*) Gecko* Firefox/48.*]
+Parent="Firefox 48.0 for Android"
+isTablet="true"
+Device_Type="Tablet"
+
+[Firefox 47.0]
+Parent="DefaultProperties"
+Comment="Firefox 47.0"
+Browser="Firefox"
+Version="47.0"
+Device_Type="Desktop"
+
+[Mozilla/5.0 (*Linux*) Gecko* Firefox/47.0*]
+Parent="Firefox 47.0"
+Platform="Linux"
+
+[Mozilla/5.0 (*Windows NT 6.0*) Gecko* Firefox/47.0*]
+Parent="Firefox 47.0"
+Platform="WinVista"
+
+[Mozilla/5.0 (*Windows NT 6.1*) Gecko* Firefox/47.0*]
+Parent="Firefox 47.0"
+Platform="Win7"
+
+[Mozilla/5.0 (*Windows NT 6.2*) Gecko* Firefox/47.0*]
+Parent="Firefox 47.0"
+Platform="Win8"
+
+[Mozilla/5.0 (*Windows NT 6.3*) Gecko* Firefox/47.0*]
+Parent="Firefox 47.0"
+Platform="Win8.1"
+
+[Mozilla/5.0 (*Windows NT 6.4*) Gecko* Firefox/47.0*]
+Parent="Firefox 47.0"
+Platform="Win10"
+
+[Mozilla/5.0 (*Windows NT 10.0*) Gecko* Firefox/47.0*]
+Parent="Firefox 47.0"
+Platform="Win10"
+
+[Mozilla/5.0 (*Mac OS X*) Gecko* Firefox/47.0*]
+Parent="Firefox 47.0"
+Platform="MacOSX"
+
+[Mozilla/4.0 (*Linux*) Gecko* Firefox/47.0*]
+Parent="Firefox 47.0"
+Platform="Linux"
+
+[Mozilla/4.0 (*Windows NT 6.0*) Gecko* Firefox/47.0*]
+Parent="Firefox 47.0"
+Platform="WinVista"
+
+[Mozilla/4.0 (*Windows NT 6.1*) Gecko* Firefox/47.0*]
+Parent="Firefox 47.0"
+Platform="Win7"
+
+[Mozilla/4.0 (*Windows NT 6.2*) Gecko* Firefox/47.0*]
+Parent="Firefox 47.0"
+Platform="Win8"
+
+[Mozilla/4.0 (*Windows NT 6.3*) Gecko* Firefox/47.0*]
+Parent="Firefox 47.0"
+Platform="Win8.1"
+
+[Mozilla/4.0 (*Windows NT 6.4*) Gecko* Firefox/47.0*]
+Parent="Firefox 47.0"
+Platform="Win10"
+
+[Mozilla/4.0 (*Windows NT 10.0*) Gecko* Firefox/47.0*]
+Parent="Firefox 47.0"
+Platform="Win10"
+
+[Mozilla/4.0 (*Mac OS X*) Gecko* Firefox/47.0*]
+Parent="Firefox 47.0"
+Platform="MacOSX"
+
+[Mozilla/5.0 (*Windows NT 6.0*; rv:47*) Gecko* Firefox/47*anonymized by *]
+Parent="Firefox 47.0"
+Platform="WinVista"
+
+[Mozilla/5.0 (*Windows NT 6.1*; rv:47*) Gecko* Firefox/47*anonymized by *]
+Parent="Firefox 47.0"
+Platform="Win7"
+
+[Mozilla/5.0 (*Windows*; rv:47*) Gecko* Firefox/47*anonymized by *]
+Parent="Firefox 47.0"
+Platform="Win32"
+
+[Mozilla/5.0 (*Windows NT 6.0*; rv:47*) Gecko* Firefox anonymized by *]
+Parent="Firefox 47.0"
+Platform="WinVista"
+
+[Mozilla/5.0 (*Windows*; rv:47*) Gecko* Firefox anonymized by *]
+Parent="Firefox 47.0"
+Platform="Win32"
+
+[Mozilla/5.0 (*Windows*) Gecko* Firefox/47.0* Anonymisiert*]
+Parent="Firefox 47.0"
+Platform="Win32"
+
+[Firefox/47.0*anonymized by Abelssoft*]
+Parent="Firefox 47.0"
+Platform="Win32"
+
+[Mozilla/5.0 (masking-agent; rv:*) Gecko* Firefox/47.0*]
+Parent="Firefox 47.0"
+
+[Mozilla/5.0 (*Windows NT 6.0*) Gecko*/47.0*]
+Parent="Firefox 47.0"
+Platform="WinVista"
+
+[Mozilla/5.0 (*Windows NT 6.1*) Gecko*/47.0*]
+Parent="Firefox 47.0"
+Platform="Win7"
+
+[Mozilla/5.0 (*Windows NT 6.2*) Gecko*/47.0*]
+Parent="Firefox 47.0"
+Platform="Win8"
+
+[Mozilla/5.0 (*Windows NT 6.3*) Gecko*/47.0*]
+Parent="Firefox 47.0"
+Platform="Win8.1"
+
+[Mozilla/5.0 (*Windows NT 6.4*) Gecko*/47.0*]
+Parent="Firefox 47.0"
+Platform="Win10"
+
+[Mozilla/5.0 (*Windows NT 10.0*) Gecko*/47.0*]
+Parent="Firefox 47.0"
+Platform="Win10"
+
+[Mozilla/5.0 (*Windows NT 6.0*rv:47.0*) Gecko*/]
+Parent="Firefox 47.0"
+Platform="WinVista"
+
+[Mozilla/5.0 (*Windows NT 6.1*rv:47.0*) Gecko*/]
+Parent="Firefox 47.0"
+Platform="Win7"
+
+[Mozilla/5.0 (*Windows NT 6.2*rv:47.0*) Gecko*/]
+Parent="Firefox 47.0"
+Platform="Win8"
+
+[Mozilla/5.0 (*Windows NT 6.3*rv:47.0*) Gecko*/]
+Parent="Firefox 47.0"
+Platform="Win8.1"
+
+[Mozilla/5.0 (*Windows NT 6.4*rv:47.0*) Gecko*/]
+Parent="Firefox 47.0"
+Platform="Win10"
+
+[Mozilla/5.0 (*Windows NT 10.0*rv:47.0*) Gecko*/]
+Parent="Firefox 47.0"
+Platform="Win10"
+
+[Mozilla/5.0 (*Mac OS X*) Gecko*/47.0*]
+Parent="Firefox 47.0"
+Platform="MacOSX"
+
+[Mozilla/5.0 (*Windows NT 6.4*rv:47.0*) Gecko* Firefox*]
+Parent="Firefox 47.0"
+Platform="Win10"
+
+[Mozilla/5.0 (*Windows NT 10.0*rv:47.0*) Gecko* Firefox*]
+Parent="Firefox 47.0"
+Platform="Win10"
+
+[Firefox 47.0 for Android]
+Parent="DefaultProperties"
+Comment="Firefox 47.0"
+Browser="Firefox"
+Version="47.0"
+Platform="Android"
+isMobileDevice="true"
+Device_Type="Mobile Phone"
+
+[Mozilla/5.0 (*Android*Mobile*) Gecko* Firefox/47.*]
+Parent="Firefox 47.0 for Android"
+
+[Mozilla/5.0 (*Android*Tablet*) Gecko* Firefox/47.*]
+Parent="Firefox 47.0 for Android"
+isTablet="true"
+Device_Type="Tablet"
+
+[Firefox 46.0]
+Parent="DefaultProperties"
+Comment="Firefox 46.0"
+Browser="Firefox"
+Version="46.0"
+Device_Type="Desktop"
+
+[Mozilla/5.0 (*Linux*) Gecko* Firefox/46.0*]
+Parent="Firefox 46.0"
+Platform="Linux"
+
+[Mozilla/5.0 (*Windows NT 6.0*) Gecko* Firefox/46.0*]
+Parent="Firefox 46.0"
+Platform="WinVista"
+
+[Mozilla/5.0 (*Windows NT 6.1*) Gecko* Firefox/46.0*]
+Parent="Firefox 46.0"
+Platform="Win7"
+
+[Mozilla/5.0 (*Windows NT 6.2*) Gecko* Firefox/46.0*]
+Parent="Firefox 46.0"
+Platform="Win8"
+
+[Mozilla/5.0 (*Windows NT 6.3*) Gecko* Firefox/46.0*]
+Parent="Firefox 46.0"
+Platform="Win8.1"
+
+[Mozilla/5.0 (*Windows NT 6.4*) Gecko* Firefox/46.0*]
+Parent="Firefox 46.0"
+Platform="Win10"
+
+[Mozilla/5.0 (*Windows NT 10.0*) Gecko* Firefox/46.0*]
+Parent="Firefox 46.0"
+Platform="Win10"
+
+[Mozilla/5.0 (*Mac OS X*) Gecko* Firefox/46.0*]
+Parent="Firefox 46.0"
+Platform="MacOSX"
+
+[Mozilla/4.0 (*Linux*) Gecko* Firefox/46.0*]
+Parent="Firefox 46.0"
+Platform="Linux"
+
+[Mozilla/4.0 (*Windows NT 6.0*) Gecko* Firefox/46.0*]
+Parent="Firefox 46.0"
+Platform="WinVista"
+
+[Mozilla/4.0 (*Windows NT 6.1*) Gecko* Firefox/46.0*]
+Parent="Firefox 46.0"
+Platform="Win7"
+
+[Mozilla/4.0 (*Windows NT 6.2*) Gecko* Firefox/46.0*]
+Parent="Firefox 46.0"
+Platform="Win8"
+
+[Mozilla/4.0 (*Windows NT 6.3*) Gecko* Firefox/46.0*]
+Parent="Firefox 46.0"
+Platform="Win8.1"
+
+[Mozilla/4.0 (*Windows NT 6.4*) Gecko* Firefox/46.0*]
+Parent="Firefox 46.0"
+Platform="Win10"
+
+[Mozilla/4.0 (*Windows NT 10.0*) Gecko* Firefox/46.0*]
+Parent="Firefox 46.0"
+Platform="Win10"
+
+[Mozilla/4.0 (*Mac OS X*) Gecko* Firefox/46.0*]
+Parent="Firefox 46.0"
+Platform="MacOSX"
+
+[Mozilla/5.0 (*Windows NT 6.0*; rv:46*) Gecko* Firefox/46*anonymized by *]
+Parent="Firefox 46.0"
+Platform="WinVista"
+
+[Mozilla/5.0 (*Windows NT 6.1*; rv:46*) Gecko* Firefox/46*anonymized by *]
+Parent="Firefox 46.0"
+Platform="Win7"
+
+[Mozilla/5.0 (*Windows*; rv:46*) Gecko* Firefox/46*anonymized by *]
+Parent="Firefox 46.0"
+Platform="Win32"
+
+[Mozilla/5.0 (*Windows NT 6.0*; rv:46*) Gecko* Firefox anonymized by *]
+Parent="Firefox 46.0"
+Platform="WinVista"
+
+[Mozilla/5.0 (*Windows*; rv:46*) Gecko* Firefox anonymized by *]
+Parent="Firefox 46.0"
+Platform="Win32"
+
+[Mozilla/5.0 (*Windows*) Gecko* Firefox/46.0* Anonymisiert*]
+Parent="Firefox 46.0"
+Platform="Win32"
+
+[Firefox/46.0*anonymized by Abelssoft*]
+Parent="Firefox 46.0"
+Platform="Win32"
+
+[Mozilla/5.0 (masking-agent; rv:*) Gecko* Firefox/46.0*]
+Parent="Firefox 46.0"
+
+[Mozilla/5.0 (*Windows NT 6.0*) Gecko*/46.0*]
+Parent="Firefox 46.0"
+Platform="WinVista"
+
+[Mozilla/5.0 (*Windows NT 6.1*) Gecko*/46.0*]
+Parent="Firefox 46.0"
+Platform="Win7"
+
+[Mozilla/5.0 (*Windows NT 6.2*) Gecko*/46.0*]
+Parent="Firefox 46.0"
+Platform="Win8"
+
+[Mozilla/5.0 (*Windows NT 6.3*) Gecko*/46.0*]
+Parent="Firefox 46.0"
+Platform="Win8.1"
+
+[Mozilla/5.0 (*Windows NT 6.4*) Gecko*/46.0*]
+Parent="Firefox 46.0"
+Platform="Win10"
+
+[Mozilla/5.0 (*Windows NT 10.0*) Gecko*/46.0*]
+Parent="Firefox 46.0"
+Platform="Win10"
+
+[Mozilla/5.0 (*Windows NT 6.0*rv:46.0*) Gecko*/]
+Parent="Firefox 46.0"
+Platform="WinVista"
+
+[Mozilla/5.0 (*Windows NT 6.1*rv:46.0*) Gecko*/]
+Parent="Firefox 46.0"
+Platform="Win7"
+
+[Mozilla/5.0 (*Windows NT 6.2*rv:46.0*) Gecko*/]
+Parent="Firefox 46.0"
+Platform="Win8"
+
+[Mozilla/5.0 (*Windows NT 6.3*rv:46.0*) Gecko*/]
+Parent="Firefox 46.0"
+Platform="Win8.1"
+
+[Mozilla/5.0 (*Windows NT 6.4*rv:46.0*) Gecko*/]
+Parent="Firefox 46.0"
+Platform="Win10"
+
+[Mozilla/5.0 (*Windows NT 10.0*rv:46.0*) Gecko*/]
+Parent="Firefox 46.0"
+Platform="Win10"
+
+[Mozilla/5.0 (*Mac OS X*) Gecko*/46.0*]
+Parent="Firefox 46.0"
+Platform="MacOSX"
+
+[Mozilla/5.0 (*Windows NT 6.4*rv:46.0*) Gecko* Firefox*]
+Parent="Firefox 46.0"
+Platform="Win10"
+
+[Mozilla/5.0 (*Windows NT 10.0*rv:46.0*) Gecko* Firefox*]
+Parent="Firefox 46.0"
+Platform="Win10"
+
+[Firefox 46.0 for Android]
+Parent="DefaultProperties"
+Comment="Firefox 46.0"
+Browser="Firefox"
+Version="46.0"
+Platform="Android"
+isMobileDevice="true"
+Device_Type="Mobile Phone"
+
+[Mozilla/5.0 (*Android*Mobile*) Gecko* Firefox/46.*]
+Parent="Firefox 46.0 for Android"
+
+[Mozilla/5.0 (*Android*Tablet*) Gecko* Firefox/46.*]
+Parent="Firefox 46.0 for Android"
+isTablet="true"
+Device_Type="Tablet"
+
+[Firefox 45.0]
+Parent="DefaultProperties"
+Comment="Firefox 45.0"
+Browser="Firefox"
+Version="45.0"
+Device_Type="Desktop"
+
+[Mozilla/5.0 (*Linux*) Gecko* Firefox/45.0*]
+Parent="Firefox 45.0"
+Platform="Linux"
+
+[Mozilla/5.0 (*Windows NT 6.0*) Gecko* Firefox/45.0*]
+Parent="Firefox 45.0"
+Platform="WinVista"
+
+[Mozilla/5.0 (*Windows NT 6.1*) Gecko* Firefox/45.0*]
+Parent="Firefox 45.0"
+Platform="Win7"
+
+[Mozilla/5.0 (*Windows NT 6.2*) Gecko* Firefox/45.0*]
+Parent="Firefox 45.0"
+Platform="Win8"
+
+[Mozilla/5.0 (*Windows NT 6.3*) Gecko* Firefox/45.0*]
+Parent="Firefox 45.0"
+Platform="Win8.1"
+
+[Mozilla/5.0 (*Windows NT 6.4*) Gecko* Firefox/45.0*]
+Parent="Firefox 45.0"
+Platform="Win10"
+
+[Mozilla/5.0 (*Windows NT 10.0*) Gecko* Firefox/45.0*]
+Parent="Firefox 45.0"
+Platform="Win10"
+
+[Mozilla/5.0 (*Mac OS X*) Gecko* Firefox/45.0*]
+Parent="Firefox 45.0"
+Platform="MacOSX"
+
+[Mozilla/4.0 (*Linux*) Gecko* Firefox/45.0*]
+Parent="Firefox 45.0"
+Platform="Linux"
+
+[Mozilla/4.0 (*Windows NT 6.0*) Gecko* Firefox/45.0*]
+Parent="Firefox 45.0"
+Platform="WinVista"
+
+[Mozilla/4.0 (*Windows NT 6.1*) Gecko* Firefox/45.0*]
+Parent="Firefox 45.0"
+Platform="Win7"
+
+[Mozilla/4.0 (*Windows NT 6.2*) Gecko* Firefox/45.0*]
+Parent="Firefox 45.0"
+Platform="Win8"
+
+[Mozilla/4.0 (*Windows NT 6.3*) Gecko* Firefox/45.0*]
+Parent="Firefox 45.0"
+Platform="Win8.1"
+
+[Mozilla/4.0 (*Windows NT 6.4*) Gecko* Firefox/45.0*]
+Parent="Firefox 45.0"
+Platform="Win10"
+
+[Mozilla/4.0 (*Windows NT 10.0*) Gecko* Firefox/45.0*]
+Parent="Firefox 45.0"
+Platform="Win10"
+
+[Mozilla/4.0 (*Mac OS X*) Gecko* Firefox/45.0*]
+Parent="Firefox 45.0"
+Platform="MacOSX"
+
+[Mozilla/5.0 (*Windows NT 6.0*; rv:45*) Gecko* Firefox/45*anonymized by *]
+Parent="Firefox 45.0"
+Platform="WinVista"
+
+[Mozilla/5.0 (*Windows NT 6.1*; rv:45*) Gecko* Firefox/45*anonymized by *]
+Parent="Firefox 45.0"
+Platform="Win7"
+
+[Mozilla/5.0 (*Windows*; rv:45*) Gecko* Firefox/45*anonymized by *]
+Parent="Firefox 45.0"
+Platform="Win32"
+
+[Mozilla/5.0 (*Windows NT 6.0*; rv:45*) Gecko* Firefox anonymized by *]
+Parent="Firefox 45.0"
+Platform="WinVista"
+
+[Mozilla/5.0 (*Windows*; rv:45*) Gecko* Firefox anonymized by *]
+Parent="Firefox 45.0"
+Platform="Win32"
+
+[Mozilla/5.0 (*Windows*) Gecko* Firefox/45.0* Anonymisiert*]
+Parent="Firefox 45.0"
+Platform="Win32"
+
+[Firefox/45.0*anonymized by Abelssoft*]
+Parent="Firefox 45.0"
+Platform="Win32"
+
+[Mozilla/5.0 (masking-agent; rv:*) Gecko* Firefox/45.0*]
+Parent="Firefox 45.0"
+
+[Mozilla/5.0 (*Windows NT 6.0*) Gecko*/45.0*]
+Parent="Firefox 45.0"
+Platform="WinVista"
+
+[Mozilla/5.0 (*Windows NT 6.1*) Gecko*/45.0*]
+Parent="Firefox 45.0"
+Platform="Win7"
+
+[Mozilla/5.0 (*Windows NT 6.2*) Gecko*/45.0*]
+Parent="Firefox 45.0"
+Platform="Win8"
+
+[Mozilla/5.0 (*Windows NT 6.3*) Gecko*/45.0*]
+Parent="Firefox 45.0"
+Platform="Win8.1"
+
+[Mozilla/5.0 (*Windows NT 6.4*) Gecko*/45.0*]
+Parent="Firefox 45.0"
+Platform="Win10"
+
+[Mozilla/5.0 (*Windows NT 10.0*) Gecko*/45.0*]
+Parent="Firefox 45.0"
+Platform="Win10"
+
+[Mozilla/5.0 (*Windows NT 6.0*rv:45.0*) Gecko*/]
+Parent="Firefox 45.0"
+Platform="WinVista"
+
+[Mozilla/5.0 (*Windows NT 6.1*rv:45.0*) Gecko*/]
+Parent="Firefox 45.0"
+Platform="Win7"
+
+[Mozilla/5.0 (*Windows NT 6.2*rv:45.0*) Gecko*/]
+Parent="Firefox 45.0"
+Platform="Win8"
+
+[Mozilla/5.0 (*Windows NT 6.3*rv:45.0*) Gecko*/]
+Parent="Firefox 45.0"
+Platform="Win8.1"
+
+[Mozilla/5.0 (*Windows NT 6.4*rv:45.0*) Gecko*/]
+Parent="Firefox 45.0"
+Platform="Win10"
+
+[Mozilla/5.0 (*Windows NT 10.0*rv:45.0*) Gecko*/]
+Parent="Firefox 45.0"
+Platform="Win10"
+
+[Mozilla/5.0 (*Mac OS X*) Gecko*/45.0*]
+Parent="Firefox 45.0"
+Platform="MacOSX"
+
+[Mozilla/5.0 (*Windows NT 6.4*rv:45.0*) Gecko* Firefox*]
+Parent="Firefox 45.0"
+Platform="Win10"
+
+[Mozilla/5.0 (*Windows NT 10.0*rv:45.0*) Gecko* Firefox*]
+Parent="Firefox 45.0"
+Platform="Win10"
+
+[Firefox 45.0 for Android]
+Parent="DefaultProperties"
+Comment="Firefox 45.0"
+Browser="Firefox"
+Version="45.0"
+Platform="Android"
+isMobileDevice="true"
+Device_Type="Mobile Phone"
+
+[Mozilla/5.0 (*Android*Mobile*) Gecko* Firefox/45.*]
+Parent="Firefox 45.0 for Android"
+
+[Mozilla/5.0 (*Android*Tablet*) Gecko* Firefox/45.*]
+Parent="Firefox 45.0 for Android"
+isTablet="true"
+Device_Type="Tablet"
+
+[Firefox 44.0]
+Parent="DefaultProperties"
+Comment="Firefox 44.0"
+Browser="Firefox"
+Version="44.0"
+Device_Type="Desktop"
+
+[Mozilla/5.0 (*Linux*) Gecko* Firefox/44.0*]
+Parent="Firefox 44.0"
+Platform="Linux"
+
+[Mozilla/5.0 (*Windows NT 6.0*) Gecko* Firefox/44.0*]
+Parent="Firefox 44.0"
+Platform="WinVista"
+
+[Mozilla/5.0 (*Windows NT 6.1*) Gecko* Firefox/44.0*]
+Parent="Firefox 44.0"
+Platform="Win7"
+
+[Mozilla/5.0 (*Windows NT 6.2*) Gecko* Firefox/44.0*]
+Parent="Firefox 44.0"
+Platform="Win8"
+
+[Mozilla/5.0 (*Windows NT 6.3*) Gecko* Firefox/44.0*]
+Parent="Firefox 44.0"
+Platform="Win8.1"
+
+[Mozilla/5.0 (*Windows NT 6.4*) Gecko* Firefox/44.0*]
+Parent="Firefox 44.0"
+Platform="Win10"
+
+[Mozilla/5.0 (*Windows NT 10.0*) Gecko* Firefox/44.0*]
+Parent="Firefox 44.0"
+Platform="Win10"
+
+[Mozilla/5.0 (*Mac OS X*) Gecko* Firefox/44.0*]
+Parent="Firefox 44.0"
+Platform="MacOSX"
+
+[Mozilla/4.0 (*Linux*) Gecko* Firefox/44.0*]
+Parent="Firefox 44.0"
+Platform="Linux"
+
+[Mozilla/4.0 (*Windows NT 6.0*) Gecko* Firefox/44.0*]
+Parent="Firefox 44.0"
+Platform="WinVista"
+
+[Mozilla/4.0 (*Windows NT 6.1*) Gecko* Firefox/44.0*]
+Parent="Firefox 44.0"
+Platform="Win7"
+
+[Mozilla/4.0 (*Windows NT 6.2*) Gecko* Firefox/44.0*]
+Parent="Firefox 44.0"
+Platform="Win8"
+
+[Mozilla/4.0 (*Windows NT 6.3*) Gecko* Firefox/44.0*]
+Parent="Firefox 44.0"
+Platform="Win8.1"
+
+[Mozilla/4.0 (*Windows NT 6.4*) Gecko* Firefox/44.0*]
+Parent="Firefox 44.0"
+Platform="Win10"
+
+[Mozilla/4.0 (*Windows NT 10.0*) Gecko* Firefox/44.0*]
+Parent="Firefox 44.0"
+Platform="Win10"
+
+[Mozilla/4.0 (*Mac OS X*) Gecko* Firefox/44.0*]
+Parent="Firefox 44.0"
+Platform="MacOSX"
+
+[Mozilla/5.0 (*Windows NT 6.0*; rv:44*) Gecko* Firefox/44*anonymized by *]
+Parent="Firefox 44.0"
+Platform="WinVista"
+
+[Mozilla/5.0 (*Windows NT 6.1*; rv:44*) Gecko* Firefox/44*anonymized by *]
+Parent="Firefox 44.0"
+Platform="Win7"
+
+[Mozilla/5.0 (*Windows*; rv:44*) Gecko* Firefox/44*anonymized by *]
+Parent="Firefox 44.0"
+Platform="Win32"
+
+[Mozilla/5.0 (*Windows NT 6.0*; rv:44*) Gecko* Firefox anonymized by *]
+Parent="Firefox 44.0"
+Platform="WinVista"
+
+[Mozilla/5.0 (*Windows*; rv:44*) Gecko* Firefox anonymized by *]
+Parent="Firefox 44.0"
+Platform="Win32"
+
+[Mozilla/5.0 (*Windows*) Gecko* Firefox/44.0* Anonymisiert*]
+Parent="Firefox 44.0"
+Platform="Win32"
+
+[Firefox/44.0*anonymized by Abelssoft*]
+Parent="Firefox 44.0"
+Platform="Win32"
+
+[Mozilla/5.0 (masking-agent; rv:*) Gecko* Firefox/44.0*]
+Parent="Firefox 44.0"
+
+[Mozilla/5.0 (*Windows NT 6.0*) Gecko*/44.0*]
+Parent="Firefox 44.0"
+Platform="WinVista"
+
+[Mozilla/5.0 (*Windows NT 6.1*) Gecko*/44.0*]
+Parent="Firefox 44.0"
+Platform="Win7"
+
+[Mozilla/5.0 (*Windows NT 6.2*) Gecko*/44.0*]
+Parent="Firefox 44.0"
+Platform="Win8"
+
+[Mozilla/5.0 (*Windows NT 6.3*) Gecko*/44.0*]
+Parent="Firefox 44.0"
+Platform="Win8.1"
+
+[Mozilla/5.0 (*Windows NT 6.4*) Gecko*/44.0*]
+Parent="Firefox 44.0"
+Platform="Win10"
+
+[Mozilla/5.0 (*Windows NT 10.0*) Gecko*/44.0*]
+Parent="Firefox 44.0"
+Platform="Win10"
+
+[Mozilla/5.0 (*Windows NT 6.0*rv:44.0*) Gecko*/]
+Parent="Firefox 44.0"
+Platform="WinVista"
+
+[Mozilla/5.0 (*Windows NT 6.1*rv:44.0*) Gecko*/]
+Parent="Firefox 44.0"
+Platform="Win7"
+
+[Mozilla/5.0 (*Windows NT 6.2*rv:44.0*) Gecko*/]
+Parent="Firefox 44.0"
+Platform="Win8"
+
+[Mozilla/5.0 (*Windows NT 6.3*rv:44.0*) Gecko*/]
+Parent="Firefox 44.0"
+Platform="Win8.1"
+
+[Mozilla/5.0 (*Windows NT 6.4*rv:44.0*) Gecko*/]
+Parent="Firefox 44.0"
+Platform="Win10"
+
+[Mozilla/5.0 (*Windows NT 10.0*rv:44.0*) Gecko*/]
+Parent="Firefox 44.0"
+Platform="Win10"
+
+[Mozilla/5.0 (*Mac OS X*) Gecko*/44.0*]
+Parent="Firefox 44.0"
+Platform="MacOSX"
+
+[Mozilla/5.0 (*Windows NT 6.4*rv:44.0*) Gecko* Firefox*]
+Parent="Firefox 44.0"
+Platform="Win10"
+
+[Mozilla/5.0 (*Windows NT 10.0*rv:44.0*) Gecko* Firefox*]
+Parent="Firefox 44.0"
+Platform="Win10"
+
+[Firefox 44.0 for Android]
+Parent="DefaultProperties"
+Comment="Firefox 44.0"
+Browser="Firefox"
+Version="44.0"
+Platform="Android"
+isMobileDevice="true"
+Device_Type="Mobile Phone"
+
+[Mozilla/5.0 (*Android*Mobile*) Gecko* Firefox/44.*]
+Parent="Firefox 44.0 for Android"
+
+[Mozilla/5.0 (*Android*Tablet*) Gecko* Firefox/44.*]
+Parent="Firefox 44.0 for Android"
+isTablet="true"
+Device_Type="Tablet"
+
+[Firefox 43.0]
+Parent="DefaultProperties"
+Comment="Firefox 43.0"
+Browser="Firefox"
+Version="43.0"
+Device_Type="Desktop"
+
+[Mozilla/5.0 (*Linux*) Gecko* Firefox/43.0*]
+Parent="Firefox 43.0"
+Platform="Linux"
+
+[Mozilla/5.0 (*Windows NT 6.0*) Gecko* Firefox/43.0*]
+Parent="Firefox 43.0"
+Platform="WinVista"
+
+[Mozilla/5.0 (*Windows NT 6.1*) Gecko* Firefox/43.0*]
+Parent="Firefox 43.0"
+Platform="Win7"
+
+[Mozilla/5.0 (*Windows NT 6.2*) Gecko* Firefox/43.0*]
+Parent="Firefox 43.0"
+Platform="Win8"
+
+[Mozilla/5.0 (*Windows NT 6.3*) Gecko* Firefox/43.0*]
+Parent="Firefox 43.0"
+Platform="Win8.1"
+
+[Mozilla/5.0 (*Windows NT 6.4*) Gecko* Firefox/43.0*]
+Parent="Firefox 43.0"
+Platform="Win10"
+
+[Mozilla/5.0 (*Windows NT 10.0*) Gecko* Firefox/43.0*]
+Parent="Firefox 43.0"
+Platform="Win10"
+
+[Mozilla/5.0 (*Mac OS X*) Gecko* Firefox/43.0*]
+Parent="Firefox 43.0"
+Platform="MacOSX"
+
+[Mozilla/4.0 (*Linux*) Gecko* Firefox/43.0*]
+Parent="Firefox 43.0"
+Platform="Linux"
+
+[Mozilla/4.0 (*Windows NT 6.0*) Gecko* Firefox/43.0*]
+Parent="Firefox 43.0"
+Platform="WinVista"
+
+[Mozilla/4.0 (*Windows NT 6.1*) Gecko* Firefox/43.0*]
+Parent="Firefox 43.0"
+Platform="Win7"
+
+[Mozilla/4.0 (*Windows NT 6.2*) Gecko* Firefox/43.0*]
+Parent="Firefox 43.0"
+Platform="Win8"
+
+[Mozilla/4.0 (*Windows NT 6.3*) Gecko* Firefox/43.0*]
+Parent="Firefox 43.0"
+Platform="Win8.1"
+
+[Mozilla/4.0 (*Windows NT 6.4*) Gecko* Firefox/43.0*]
+Parent="Firefox 43.0"
+Platform="Win10"
+
+[Mozilla/4.0 (*Windows NT 10.0*) Gecko* Firefox/43.0*]
+Parent="Firefox 43.0"
+Platform="Win10"
+
+[Mozilla/4.0 (*Mac OS X*) Gecko* Firefox/43.0*]
+Parent="Firefox 43.0"
+Platform="MacOSX"
+
+[Mozilla/5.0 (*Windows NT 6.0*; rv:43*) Gecko* Firefox/43*anonymized by *]
+Parent="Firefox 43.0"
+Platform="WinVista"
+
+[Mozilla/5.0 (*Windows NT 6.1*; rv:43*) Gecko* Firefox/43*anonymized by *]
+Parent="Firefox 43.0"
+Platform="Win7"
+
+[Mozilla/5.0 (*Windows*; rv:43*) Gecko* Firefox/43*anonymized by *]
+Parent="Firefox 43.0"
+Platform="Win32"
+
+[Mozilla/5.0 (*Windows NT 6.0*; rv:43*) Gecko* Firefox anonymized by *]
+Parent="Firefox 43.0"
+Platform="WinVista"
+
+[Mozilla/5.0 (*Windows*; rv:43*) Gecko* Firefox anonymized by *]
+Parent="Firefox 43.0"
+Platform="Win32"
+
+[Mozilla/5.0 (*Windows*) Gecko* Firefox/43.0* Anonymisiert*]
+Parent="Firefox 43.0"
+Platform="Win32"
+
+[Firefox/43.0*anonymized by Abelssoft*]
+Parent="Firefox 43.0"
+Platform="Win32"
+
+[Mozilla/5.0 (masking-agent; rv:*) Gecko* Firefox/43.0*]
+Parent="Firefox 43.0"
+
+[Mozilla/5.0 (*Windows NT 6.0*) Gecko*/43.0*]
+Parent="Firefox 43.0"
+Platform="WinVista"
+
+[Mozilla/5.0 (*Windows NT 6.1*) Gecko*/43.0*]
+Parent="Firefox 43.0"
+Platform="Win7"
+
+[Mozilla/5.0 (*Windows NT 6.2*) Gecko*/43.0*]
+Parent="Firefox 43.0"
+Platform="Win8"
+
+[Mozilla/5.0 (*Windows NT 6.3*) Gecko*/43.0*]
+Parent="Firefox 43.0"
+Platform="Win8.1"
+
+[Mozilla/5.0 (*Windows NT 6.4*) Gecko*/43.0*]
+Parent="Firefox 43.0"
+Platform="Win10"
+
+[Mozilla/5.0 (*Windows NT 10.0*) Gecko*/43.0*]
+Parent="Firefox 43.0"
+Platform="Win10"
+
+[Mozilla/5.0 (*Windows NT 6.0*rv:43.0*) Gecko*/]
+Parent="Firefox 43.0"
+Platform="WinVista"
+
+[Mozilla/5.0 (*Windows NT 6.1*rv:43.0*) Gecko*/]
+Parent="Firefox 43.0"
+Platform="Win7"
+
+[Mozilla/5.0 (*Windows NT 6.2*rv:43.0*) Gecko*/]
+Parent="Firefox 43.0"
+Platform="Win8"
+
+[Mozilla/5.0 (*Windows NT 6.3*rv:43.0*) Gecko*/]
+Parent="Firefox 43.0"
+Platform="Win8.1"
+
+[Mozilla/5.0 (*Windows NT 6.4*rv:43.0*) Gecko*/]
+Parent="Firefox 43.0"
+Platform="Win10"
+
+[Mozilla/5.0 (*Windows NT 10.0*rv:43.0*) Gecko*/]
+Parent="Firefox 43.0"
+Platform="Win10"
+
+[Mozilla/5.0 (*Mac OS X*) Gecko*/43.0*]
+Parent="Firefox 43.0"
+Platform="MacOSX"
+
+[Mozilla/5.0 (*Windows NT 6.4*rv:43.0*) Gecko* Firefox*]
+Parent="Firefox 43.0"
+Platform="Win10"
+
+[Mozilla/5.0 (*Windows NT 10.0*rv:43.0*) Gecko* Firefox*]
+Parent="Firefox 43.0"
+Platform="Win10"
+
+[Firefox 43.0 for Android]
+Parent="DefaultProperties"
+Comment="Firefox 43.0"
+Browser="Firefox"
+Version="43.0"
+Platform="Android"
+isMobileDevice="true"
+Device_Type="Mobile Phone"
+
+[Mozilla/5.0 (*Android*Mobile*) Gecko* Firefox/43.*]
+Parent="Firefox 43.0 for Android"
+
+[Mozilla/5.0 (*Android*Tablet*) Gecko* Firefox/43.*]
+Parent="Firefox 43.0 for Android"
+isTablet="true"
+Device_Type="Tablet"
+
+[Firefox 42.0]
+Parent="DefaultProperties"
+Comment="Firefox 42.0"
+Browser="Firefox"
+Version="42.0"
+Device_Type="Desktop"
+
+[Mozilla/5.0 (*Linux*) Gecko* Firefox/42.0*]
+Parent="Firefox 42.0"
+Platform="Linux"
+
+[Mozilla/5.0 (*Windows NT 6.0*) Gecko* Firefox/42.0*]
+Parent="Firefox 42.0"
+Platform="WinVista"
+
+[Mozilla/5.0 (*Windows NT 6.1*) Gecko* Firefox/42.0*]
+Parent="Firefox 42.0"
+Platform="Win7"
+
+[Mozilla/5.0 (*Windows NT 6.2*) Gecko* Firefox/42.0*]
+Parent="Firefox 42.0"
+Platform="Win8"
+
+[Mozilla/5.0 (*Windows NT 6.3*) Gecko* Firefox/42.0*]
+Parent="Firefox 42.0"
+Platform="Win8.1"
+
+[Mozilla/5.0 (*Windows NT 6.4*) Gecko* Firefox/42.0*]
+Parent="Firefox 42.0"
+Platform="Win10"
+
+[Mozilla/5.0 (*Windows NT 10.0*) Gecko* Firefox/42.0*]
+Parent="Firefox 42.0"
+Platform="Win10"
+
+[Mozilla/5.0 (*Mac OS X*) Gecko* Firefox/42.0*]
+Parent="Firefox 42.0"
+Platform="MacOSX"
+
+[Mozilla/4.0 (*Linux*) Gecko* Firefox/42.0*]
+Parent="Firefox 42.0"
+Platform="Linux"
+
+[Mozilla/4.0 (*Windows NT 6.0*) Gecko* Firefox/42.0*]
+Parent="Firefox 42.0"
+Platform="WinVista"
+
+[Mozilla/4.0 (*Windows NT 6.1*) Gecko* Firefox/42.0*]
+Parent="Firefox 42.0"
+Platform="Win7"
+
+[Mozilla/4.0 (*Windows NT 6.2*) Gecko* Firefox/42.0*]
+Parent="Firefox 42.0"
+Platform="Win8"
+
+[Mozilla/4.0 (*Windows NT 6.3*) Gecko* Firefox/42.0*]
+Parent="Firefox 42.0"
+Platform="Win8.1"
+
+[Mozilla/4.0 (*Windows NT 6.4*) Gecko* Firefox/42.0*]
+Parent="Firefox 42.0"
+Platform="Win10"
+
+[Mozilla/4.0 (*Windows NT 10.0*) Gecko* Firefox/42.0*]
+Parent="Firefox 42.0"
+Platform="Win10"
+
+[Mozilla/4.0 (*Mac OS X*) Gecko* Firefox/42.0*]
+Parent="Firefox 42.0"
+Platform="MacOSX"
+
+[Mozilla/5.0 (*Windows NT 6.0*; rv:42*) Gecko* Firefox/42*anonymized by *]
+Parent="Firefox 42.0"
+Platform="WinVista"
+
+[Mozilla/5.0 (*Windows NT 6.1*; rv:42*) Gecko* Firefox/42*anonymized by *]
+Parent="Firefox 42.0"
+Platform="Win7"
+
+[Mozilla/5.0 (*Windows*; rv:42*) Gecko* Firefox/42*anonymized by *]
+Parent="Firefox 42.0"
+Platform="Win32"
+
+[Mozilla/5.0 (*Windows NT 6.0*; rv:42*) Gecko* Firefox anonymized by *]
+Parent="Firefox 42.0"
+Platform="WinVista"
+
+[Mozilla/5.0 (*Windows*; rv:42*) Gecko* Firefox anonymized by *]
+Parent="Firefox 42.0"
+Platform="Win32"
+
+[Mozilla/5.0 (*Windows*) Gecko* Firefox/42.0* Anonymisiert*]
+Parent="Firefox 42.0"
+Platform="Win32"
+
+[Firefox/42.0*anonymized by Abelssoft*]
+Parent="Firefox 42.0"
+Platform="Win32"
+
+[Mozilla/5.0 (masking-agent; rv:*) Gecko* Firefox/42.0*]
+Parent="Firefox 42.0"
+
+[Mozilla/5.0 (*Windows NT 6.0*) Gecko*/42.0*]
+Parent="Firefox 42.0"
+Platform="WinVista"
+
+[Mozilla/5.0 (*Windows NT 6.1*) Gecko*/42.0*]
+Parent="Firefox 42.0"
+Platform="Win7"
+
+[Mozilla/5.0 (*Windows NT 6.2*) Gecko*/42.0*]
+Parent="Firefox 42.0"
+Platform="Win8"
+
+[Mozilla/5.0 (*Windows NT 6.3*) Gecko*/42.0*]
+Parent="Firefox 42.0"
+Platform="Win8.1"
+
+[Mozilla/5.0 (*Windows NT 6.4*) Gecko*/42.0*]
+Parent="Firefox 42.0"
+Platform="Win10"
+
+[Mozilla/5.0 (*Windows NT 10.0*) Gecko*/42.0*]
+Parent="Firefox 42.0"
+Platform="Win10"
+
+[Mozilla/5.0 (*Windows NT 6.0*rv:42.0*) Gecko*/]
+Parent="Firefox 42.0"
+Platform="WinVista"
+
+[Mozilla/5.0 (*Windows NT 6.1*rv:42.0*) Gecko*/]
+Parent="Firefox 42.0"
+Platform="Win7"
+
+[Mozilla/5.0 (*Windows NT 6.2*rv:42.0*) Gecko*/]
+Parent="Firefox 42.0"
+Platform="Win8"
+
+[Mozilla/5.0 (*Windows NT 6.3*rv:42.0*) Gecko*/]
+Parent="Firefox 42.0"
+Platform="Win8.1"
+
+[Mozilla/5.0 (*Windows NT 6.4*rv:42.0*) Gecko*/]
+Parent="Firefox 42.0"
+Platform="Win10"
+
+[Mozilla/5.0 (*Windows NT 10.0*rv:42.0*) Gecko*/]
+Parent="Firefox 42.0"
+Platform="Win10"
+
+[Mozilla/5.0 (*Mac OS X*) Gecko*/42.0*]
+Parent="Firefox 42.0"
+Platform="MacOSX"
+
+[Mozilla/5.0 (*Windows NT 6.4*rv:42.0*) Gecko* Firefox*]
+Parent="Firefox 42.0"
+Platform="Win10"
+
+[Mozilla/5.0 (*Windows NT 10.0*rv:42.0*) Gecko* Firefox*]
+Parent="Firefox 42.0"
+Platform="Win10"
+
+[Firefox 42.0 for Android]
+Parent="DefaultProperties"
+Comment="Firefox 42.0"
+Browser="Firefox"
+Version="42.0"
+Platform="Android"
+isMobileDevice="true"
+Device_Type="Mobile Phone"
+
+[Mozilla/5.0 (*Android*Mobile*) Gecko* Firefox/42.*]
+Parent="Firefox 42.0 for Android"
+
+[Mozilla/5.0 (*Android*Tablet*) Gecko* Firefox/42.*]
+Parent="Firefox 42.0 for Android"
+isTablet="true"
+Device_Type="Tablet"
+
+[Firefox 41.0]
+Parent="DefaultProperties"
+Comment="Firefox 41.0"
+Browser="Firefox"
+Version="41.0"
+Device_Type="Desktop"
+
+[Mozilla/5.0 (*Linux*) Gecko* Firefox/41.0*]
+Parent="Firefox 41.0"
+Platform="Linux"
+
+[Mozilla/5.0 (*Windows NT 6.0*) Gecko* Firefox/41.0*]
+Parent="Firefox 41.0"
+Platform="WinVista"
+
+[Mozilla/5.0 (*Windows NT 6.1*) Gecko* Firefox/41.0*]
+Parent="Firefox 41.0"
+Platform="Win7"
+
+[Mozilla/5.0 (*Windows NT 6.2*) Gecko* Firefox/41.0*]
+Parent="Firefox 41.0"
+Platform="Win8"
+
+[Mozilla/5.0 (*Windows NT 6.3*) Gecko* Firefox/41.0*]
+Parent="Firefox 41.0"
+Platform="Win8.1"
+
+[Mozilla/5.0 (*Windows NT 6.4*) Gecko* Firefox/41.0*]
+Parent="Firefox 41.0"
+Platform="Win10"
+
+[Mozilla/5.0 (*Windows NT 10.0*) Gecko* Firefox/41.0*]
+Parent="Firefox 41.0"
+Platform="Win10"
+
+[Mozilla/5.0 (*Mac OS X*) Gecko* Firefox/41.0*]
+Parent="Firefox 41.0"
+Platform="MacOSX"
+
+[Mozilla/4.0 (*Linux*) Gecko* Firefox/41.0*]
+Parent="Firefox 41.0"
+Platform="Linux"
+
+[Mozilla/4.0 (*Windows NT 6.0*) Gecko* Firefox/41.0*]
+Parent="Firefox 41.0"
+Platform="WinVista"
+
+[Mozilla/4.0 (*Windows NT 6.1*) Gecko* Firefox/41.0*]
+Parent="Firefox 41.0"
+Platform="Win7"
+
+[Mozilla/4.0 (*Windows NT 6.2*) Gecko* Firefox/41.0*]
+Parent="Firefox 41.0"
+Platform="Win8"
+
+[Mozilla/4.0 (*Windows NT 6.3*) Gecko* Firefox/41.0*]
+Parent="Firefox 41.0"
+Platform="Win8.1"
+
+[Mozilla/4.0 (*Windows NT 6.4*) Gecko* Firefox/41.0*]
+Parent="Firefox 41.0"
+Platform="Win10"
+
+[Mozilla/4.0 (*Windows NT 10.0*) Gecko* Firefox/41.0*]
+Parent="Firefox 41.0"
+Platform="Win10"
+
+[Mozilla/4.0 (*Mac OS X*) Gecko* Firefox/41.0*]
+Parent="Firefox 41.0"
+Platform="MacOSX"
+
+[Mozilla/5.0 (*Windows NT 6.0*; rv:41*) Gecko* Firefox/41*anonymized by *]
+Parent="Firefox 41.0"
+Platform="WinVista"
+
+[Mozilla/5.0 (*Windows NT 6.1*; rv:41*) Gecko* Firefox/41*anonymized by *]
+Parent="Firefox 41.0"
+Platform="Win7"
+
+[Mozilla/5.0 (*Windows*; rv:41*) Gecko* Firefox/41*anonymized by *]
+Parent="Firefox 41.0"
+Platform="Win32"
+
+[Mozilla/5.0 (*Windows NT 6.0*; rv:41*) Gecko* Firefox anonymized by *]
+Parent="Firefox 41.0"
+Platform="WinVista"
+
+[Mozilla/5.0 (*Windows*; rv:41*) Gecko* Firefox anonymized by *]
+Parent="Firefox 41.0"
+Platform="Win32"
+
+[Mozilla/5.0 (*Windows*) Gecko* Firefox/41.0* Anonymisiert*]
+Parent="Firefox 41.0"
+Platform="Win32"
+
+[Firefox/41.0*anonymized by Abelssoft*]
+Parent="Firefox 41.0"
+Platform="Win32"
+
+[Mozilla/5.0 (masking-agent; rv:*) Gecko* Firefox/41.0*]
+Parent="Firefox 41.0"
+
+[Mozilla/5.0 (*Windows NT 6.0*) Gecko*/41.0*]
+Parent="Firefox 41.0"
+Platform="WinVista"
+
+[Mozilla/5.0 (*Windows NT 6.1*) Gecko*/41.0*]
+Parent="Firefox 41.0"
+Platform="Win7"
+
+[Mozilla/5.0 (*Windows NT 6.2*) Gecko*/41.0*]
+Parent="Firefox 41.0"
+Platform="Win8"
+
+[Mozilla/5.0 (*Windows NT 6.3*) Gecko*/41.0*]
+Parent="Firefox 41.0"
+Platform="Win8.1"
+
+[Mozilla/5.0 (*Windows NT 6.4*) Gecko*/41.0*]
+Parent="Firefox 41.0"
+Platform="Win10"
+
+[Mozilla/5.0 (*Windows NT 10.0*) Gecko*/41.0*]
+Parent="Firefox 41.0"
+Platform="Win10"
+
+[Mozilla/5.0 (*Windows NT 6.0*rv:41.0*) Gecko*/]
+Parent="Firefox 41.0"
+Platform="WinVista"
+
+[Mozilla/5.0 (*Windows NT 6.1*rv:41.0*) Gecko*/]
+Parent="Firefox 41.0"
+Platform="Win7"
+
+[Mozilla/5.0 (*Windows NT 6.2*rv:41.0*) Gecko*/]
+Parent="Firefox 41.0"
+Platform="Win8"
+
+[Mozilla/5.0 (*Windows NT 6.3*rv:41.0*) Gecko*/]
+Parent="Firefox 41.0"
+Platform="Win8.1"
+
+[Mozilla/5.0 (*Windows NT 6.4*rv:41.0*) Gecko*/]
+Parent="Firefox 41.0"
+Platform="Win10"
+
+[Mozilla/5.0 (*Windows NT 10.0*rv:41.0*) Gecko*/]
+Parent="Firefox 41.0"
+Platform="Win10"
+
+[Mozilla/5.0 (*Mac OS X*) Gecko*/41.0*]
+Parent="Firefox 41.0"
+Platform="MacOSX"
+
+[Mozilla/5.0 (*Windows NT 6.4*rv:41.0*) Gecko* Firefox*]
+Parent="Firefox 41.0"
+Platform="Win10"
+
+[Mozilla/5.0 (*Windows NT 10.0*rv:41.0*) Gecko* Firefox*]
+Parent="Firefox 41.0"
+Platform="Win10"
+
+[Firefox 41.0 for Android]
+Parent="DefaultProperties"
+Comment="Firefox 41.0"
+Browser="Firefox"
+Version="41.0"
+Platform="Android"
+isMobileDevice="true"
+Device_Type="Mobile Phone"
+
+[Mozilla/5.0 (*Android*Mobile*) Gecko* Firefox/41.*]
+Parent="Firefox 41.0 for Android"
+
+[Mozilla/5.0 (*Android*Tablet*) Gecko* Firefox/41.*]
+Parent="Firefox 41.0 for Android"
+isTablet="true"
+Device_Type="Tablet"
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Firefox 40.0
+
+[Firefox 40.0]
+Parent="DefaultProperties"
+Comment="Firefox 40.0"
+Browser="Firefox"
+Version="40.0"
+Device_Type="Desktop"
+
+[Mozilla/5.0 (*Linux*) Gecko* Firefox/40.0*]
+Parent="Firefox 40.0"
+Platform="Linux"
+
+[Mozilla/5.0 (*Windows NT 6.0*) Gecko* Firefox/40.0*]
+Parent="Firefox 40.0"
+Platform="WinVista"
+
+[Mozilla/5.0 (*Windows NT 10.0*) Gecko* Firefox/40.0*]
+Parent="Firefox 40.0"
+Platform="Win10"
+
+[Mozilla/5.0 (*Windows NT 6.4*) Gecko* Firefox/40.0*]
+Parent="Firefox 40.0"
+Platform="Win10"
+
+[Mozilla/5.0 (*Windows NT 6.3*) Gecko* Firefox/40.0*]
+Parent="Firefox 40.0"
+Platform="Win8.1"
+
+[Mozilla/5.0 (*Windows NT 6.2*) Gecko* Firefox/40.0*]
+Parent="Firefox 40.0"
+Platform="Win8"
+
+[Mozilla/5.0 (*Windows NT 6.1*) Gecko* Firefox/40.0*]
+Parent="Firefox 40.0"
+Platform="Win7"
+
+[Mozilla/5.0 (*Mac OS X*) Gecko* Firefox/40.0*]
+Parent="Firefox 40.0"
+Platform="MacOSX"
+
+[Mozilla/4.0 (*Linux*) Gecko* Firefox/40.0*]
+Parent="Firefox 40.0"
+Platform="Linux"
+
+[Mozilla/4.0 (*Windows NT 6.0*) Gecko* Firefox/40.0*]
+Parent="Firefox 40.0"
+Platform="WinVista"
+
+[Mozilla/4.0 (*Windows NT 10.0*) Gecko* Firefox/40.0*]
+Parent="Firefox 40.0"
+Platform="Win10"
+
+[Mozilla/4.0 (*Windows NT 6.4*) Gecko* Firefox/40.0*]
+Parent="Firefox 40.0"
+Platform="Win10"
+
+[Mozilla/4.0 (*Windows NT 6.3*) Gecko* Firefox/40.0*]
+Parent="Firefox 40.0"
+Platform="Win8.1"
+
+[Mozilla/4.0 (*Windows NT 6.2*) Gecko* Firefox/40.0*]
+Parent="Firefox 40.0"
+Platform="Win8"
+
+[Mozilla/4.0 (*Windows NT 6.1*) Gecko* Firefox/40.0*]
+Parent="Firefox 40.0"
+Platform="Win7"
+
+[Mozilla/4.0 (*Mac OS X*) Gecko* Firefox/40.0*]
+Parent="Firefox 40.0"
+Platform="MacOSX"
+
+[Mozilla/5.0 (*Windows NT 6.0*; rv:40*) Gecko* Firefox/40*anonymized by *]
+Parent="Firefox 40.0"
+Platform="WinVista"
+
+[Mozilla/5.0 (*Windows NT 6.1*; rv:40*) Gecko* Firefox/40*anonymized by *]
+Parent="Firefox 40.0"
+Platform="Win7"
+
+[Mozilla/5.0 (*Windows*; rv:40*) Gecko* Firefox/40*anonymized by *]
+Parent="Firefox 40.0"
+Platform="Win32"
+
+[Mozilla/5.0 (*Windows NT 6.0*; rv:40*) Gecko* Firefox anonymized by *]
+Parent="Firefox 40.0"
+Platform="WinVista"
+
+[Mozilla/5.0 (*Windows*; rv:40*) Gecko* Firefox anonymized by *]
+Parent="Firefox 40.0"
+Platform="Win32"
+
+[Mozilla/5.0 (*Windows*) Gecko* Firefox/40.0* Anonymisiert*]
+Parent="Firefox 40.0"
+Platform="Win32"
+
+[Firefox/40.0*anonymized by Abelssoft*]
+Parent="Firefox 40.0"
+Platform="Win32"
+
+[Mozilla/5.0 (masking-agent; rv:*) Gecko* Firefox/40.0*]
+Parent="Firefox 40.0"
+
+[Mozilla/5.0 (*Windows NT 6.0*) Gecko*/40.0*]
+Parent="Firefox 40.0"
+Platform="WinVista"
+
+[Mozilla/5.0 (*Windows NT 10.0*) Gecko*/40.0*]
+Parent="Firefox 40.0"
+Platform="Win10"
+
+[Mozilla/5.0 (*Windows NT 6.4*) Gecko*/40.0*]
+Parent="Firefox 40.0"
+Platform="Win10"
+
+[Mozilla/5.0 (*Windows NT 6.3*) Gecko*/40.0*]
+Parent="Firefox 40.0"
+Platform="Win8.1"
+
+[Mozilla/5.0 (*Windows NT 6.2*) Gecko*/40.0*]
+Parent="Firefox 40.0"
+Platform="Win8"
+
+[Mozilla/5.0 (*Windows NT 6.1*) Gecko*/40.0*]
+Parent="Firefox 40.0"
+Platform="Win7"
+
+[Mozilla/5.0 (*Windows NT 6.0*rv:40.0*) Gecko*/]
+Parent="Firefox 40.0"
+Platform="WinVista"
+
+[Mozilla/5.0 (*Windows NT 10.0*rv:40.0*) Gecko*/]
+Parent="Firefox 40.0"
+Platform="Win10"
+
+[Mozilla/5.0 (*Windows NT 6.4*rv:40.0*) Gecko*/]
+Parent="Firefox 40.0"
+Platform="Win10"
+
+[Mozilla/5.0 (*Windows NT 6.3*rv:40.0*) Gecko*/]
+Parent="Firefox 40.0"
+Platform="Win8.1"
+
+[Mozilla/5.0 (*Windows NT 6.2*rv:40.0*) Gecko*/]
+Parent="Firefox 40.0"
+Platform="Win8"
+
+[Mozilla/5.0 (*Windows NT 6.1*rv:40.0*) Gecko*/]
+Parent="Firefox 40.0"
+Platform="Win7"
+
+[Mozilla/5.0 (*Mac OS X*) Gecko*/40.0*]
+Parent="Firefox 40.0"
+Platform="MacOSX"
+
+[Mozilla/5.0 (*Windows NT 6.0*rv:40.0*) Gecko* Firefox]
+Parent="Firefox 40.0"
+Platform="WinVista"
+
+[Mozilla/5.0 (*Windows NT 6.1*rv:40.0*) Gecko* Firefox]
+Parent="Firefox 40.0"
+Platform="Win7"
+
+[Mozilla/5.0 (*Windows NT 6.2*rv:40.0*) Gecko* Firefox]
+Parent="Firefox 40.0"
+Platform="Win8"
+
+[Mozilla/5.0 (*Windows NT 6.3*rv:40.0*) Gecko* Firefox]
+Parent="Firefox 40.0"
+Platform="Win8.1"
+
+[Mozilla/5.0 (*Windows NT 6.4*rv:40.0*) Gecko* Firefox]
+Parent="Firefox 40.0"
+Platform="Win10"
+
+[Mozilla/5.0 (*Windows NT 10.0*rv:40.0*) Gecko* Firefox]
+Parent="Firefox 40.0"
+Platform="Win10"
+
+[Firefox 40.0 for Android]
+Parent="DefaultProperties"
+Comment="Firefox 40.0"
+Browser="Firefox"
+Version="40.0"
+Platform="Android"
+isMobileDevice="true"
+Device_Type="Mobile Phone"
+
+[Mozilla/5.0 (*Android*Mobile*) Gecko* Firefox/40.*]
+Parent="Firefox 40.0 for Android"
+
+[Mozilla/5.0 (*Android*Tablet*) Gecko* Firefox/40.*]
+Parent="Firefox 40.0 for Android"
+isTablet="true"
+Device_Type="Tablet"
+
+[Firefox 39.0]
+Parent="DefaultProperties"
+Comment="Firefox 39.0"
+Browser="Firefox"
+Version="39.0"
+Device_Type="Desktop"
+
+[Mozilla/5.0 (*Linux*) Gecko* Firefox/39.0*]
+Parent="Firefox 39.0"
+Platform="Linux"
+
+[Mozilla/5.0 (*Windows NT 6.0*) Gecko* Firefox/39.0*]
+Parent="Firefox 39.0"
+Platform="WinVista"
+
+[Mozilla/5.0 (*Windows NT 10.0*) Gecko* Firefox/39.0*]
+Parent="Firefox 39.0"
+Platform="Win10"
+
+[Mozilla/5.0 (*Windows NT 6.4*) Gecko* Firefox/39.0*]
+Parent="Firefox 39.0"
+Platform="Win10"
+
+[Mozilla/5.0 (*Windows NT 6.3*) Gecko* Firefox/39.0*]
+Parent="Firefox 39.0"
+Platform="Win8.1"
+
+[Mozilla/5.0 (*Windows NT 6.2*) Gecko* Firefox/39.0*]
+Parent="Firefox 39.0"
+Platform="Win8"
+
+[Mozilla/5.0 (*Windows NT 6.1*) Gecko* Firefox/39.0*]
+Parent="Firefox 39.0"
+Platform="Win7"
+
+[Mozilla/5.0 (*Mac OS X*) Gecko* Firefox/39.0*]
+Parent="Firefox 39.0"
+Platform="MacOSX"
+
+[Mozilla/4.0 (*Linux*) Gecko* Firefox/39.0*]
+Parent="Firefox 39.0"
+Platform="Linux"
+
+[Mozilla/4.0 (*Windows NT 6.0*) Gecko* Firefox/39.0*]
+Parent="Firefox 39.0"
+Platform="WinVista"
+
+[Mozilla/4.0 (*Windows NT 10.0*) Gecko* Firefox/39.0*]
+Parent="Firefox 39.0"
+Platform="Win10"
+
+[Mozilla/4.0 (*Windows NT 6.4*) Gecko* Firefox/39.0*]
+Parent="Firefox 39.0"
+Platform="Win10"
+
+[Mozilla/4.0 (*Windows NT 6.3*) Gecko* Firefox/39.0*]
+Parent="Firefox 39.0"
+Platform="Win8.1"
+
+[Mozilla/4.0 (*Windows NT 6.2*) Gecko* Firefox/39.0*]
+Parent="Firefox 39.0"
+Platform="Win8"
+
+[Mozilla/4.0 (*Windows NT 6.1*) Gecko* Firefox/39.0*]
+Parent="Firefox 39.0"
+Platform="Win7"
+
+[Mozilla/4.0 (*Mac OS X*) Gecko* Firefox/39.0*]
+Parent="Firefox 39.0"
+Platform="MacOSX"
+
+[Mozilla/5.0 (*Windows NT 6.0*; rv:39*) Gecko* Firefox/39*anonymized by *]
+Parent="Firefox 39.0"
+Platform="WinVista"
+
+[Mozilla/5.0 (*Windows NT 6.1*; rv:39*) Gecko* Firefox/39*anonymized by *]
+Parent="Firefox 39.0"
+Platform="Win7"
+
+[Mozilla/5.0 (*Windows*; rv:39*) Gecko* Firefox/39*anonymized by *]
+Parent="Firefox 39.0"
+Platform="Win32"
+
+[Mozilla/5.0 (*Windows NT 6.0*; rv:39*) Gecko* Firefox anonymized by *]
+Parent="Firefox 39.0"
+Platform="WinVista"
+
+[Mozilla/5.0 (*Windows*; rv:39*) Gecko* Firefox anonymized by *]
+Parent="Firefox 39.0"
+Platform="Win32"
+
+[Mozilla/5.0 (*Windows*) Gecko* Firefox/39.0* Anonymisiert*]
+Parent="Firefox 39.0"
+Platform="Win32"
+
+[Firefox/39.0*anonymized by Abelssoft*]
+Parent="Firefox 39.0"
+Platform="Win32"
+
+[Mozilla/5.0 (masking-agent; rv:*) Gecko* Firefox/39.0*]
+Parent="Firefox 39.0"
+
+[Mozilla/5.0 (*Windows NT 6.0*) Gecko*/39.0*]
+Parent="Firefox 39.0"
+Platform="WinVista"
+
+[Mozilla/5.0 (*Windows NT 10.0*) Gecko*/39.0*]
+Parent="Firefox 39.0"
+Platform="Win10"
+
+[Mozilla/5.0 (*Windows NT 6.4*) Gecko*/39.0*]
+Parent="Firefox 39.0"
+Platform="Win10"
+
+[Mozilla/5.0 (*Windows NT 6.3*) Gecko*/39.0*]
+Parent="Firefox 39.0"
+Platform="Win8.1"
+
+[Mozilla/5.0 (*Windows NT 6.2*) Gecko*/39.0*]
+Parent="Firefox 39.0"
+Platform="Win8"
+
+[Mozilla/5.0 (*Windows NT 6.1*) Gecko*/39.0*]
+Parent="Firefox 39.0"
+Platform="Win7"
+
+[Mozilla/5.0 (*Windows NT 6.0*rv:39.0*) Gecko*/]
+Parent="Firefox 39.0"
+Platform="WinVista"
+
+[Mozilla/5.0 (*Windows NT 10.0*rv:39.0*) Gecko*/]
+Parent="Firefox 39.0"
+Platform="Win10"
+
+[Mozilla/5.0 (*Windows NT 6.4*rv:39.0*) Gecko*/]
+Parent="Firefox 39.0"
+Platform="Win10"
+
+[Mozilla/5.0 (*Windows NT 6.3*rv:39.0*) Gecko*/]
+Parent="Firefox 39.0"
+Platform="Win8.1"
+
+[Mozilla/5.0 (*Windows NT 6.2*rv:39.0*) Gecko*/]
+Parent="Firefox 39.0"
+Platform="Win8"
+
+[Mozilla/5.0 (*Windows NT 6.1*rv:39.0*) Gecko*/]
+Parent="Firefox 39.0"
+Platform="Win7"
+
+[Mozilla/5.0 (*Mac OS X*) Gecko*/39.0*]
+Parent="Firefox 39.0"
+Platform="MacOSX"
+
+[Mozilla/5.0 (*Windows NT 6.0*rv:39.0*) Gecko* Firefox]
+Parent="Firefox 39.0"
+Platform="WinVista"
+
+[Mozilla/5.0 (*Windows NT 6.1*rv:39.0*) Gecko* Firefox]
+Parent="Firefox 39.0"
+Platform="Win7"
+
+[Mozilla/5.0 (*Windows NT 6.2*rv:39.0*) Gecko* Firefox]
+Parent="Firefox 39.0"
+Platform="Win8"
+
+[Mozilla/5.0 (*Windows NT 6.3*rv:39.0*) Gecko* Firefox]
+Parent="Firefox 39.0"
+Platform="Win8.1"
+
+[Mozilla/5.0 (*Windows NT 6.4*rv:39.0*) Gecko* Firefox]
+Parent="Firefox 39.0"
+Platform="Win10"
+
+[Mozilla/5.0 (*Windows NT 10.0*rv:39.0*) Gecko* Firefox]
+Parent="Firefox 39.0"
+Platform="Win10"
+
+[Firefox 39.0 for Android]
+Parent="DefaultProperties"
+Comment="Firefox 39.0"
+Browser="Firefox"
+Version="39.0"
+Platform="Android"
+isMobileDevice="true"
+Device_Type="Mobile Phone"
+
+[Mozilla/5.0 (*Android*Mobile*) Gecko* Firefox/39.*]
+Parent="Firefox 39.0 for Android"
+
+[Mozilla/5.0 (*Android*Tablet*) Gecko* Firefox/39.*]
+Parent="Firefox 39.0 for Android"
+isTablet="true"
+Device_Type="Tablet"
+
+[Firefox 38.0]
+Parent="DefaultProperties"
+Comment="Firefox 38.0"
+Browser="Firefox"
+Version="38.0"
+Device_Type="Desktop"
+
+[Mozilla/5.0 (*Linux*) Gecko* Firefox/38.0*]
+Parent="Firefox 38.0"
+Platform="Linux"
+
+[Mozilla/5.0 (*Windows NT 6.0*) Gecko* Firefox/38.0*]
+Parent="Firefox 38.0"
+Platform="WinVista"
+
+[Mozilla/5.0 (*Windows NT 10.0*) Gecko* Firefox/38.0*]
+Parent="Firefox 38.0"
+Platform="Win10"
+
+[Mozilla/5.0 (*Windows NT 6.4*) Gecko* Firefox/38.0*]
+Parent="Firefox 38.0"
+Platform="Win10"
+
+[Mozilla/5.0 (*Windows NT 6.3*) Gecko* Firefox/38.0*]
+Parent="Firefox 38.0"
+Platform="Win8.1"
+
+[Mozilla/5.0 (*Windows NT 6.2*) Gecko* Firefox/38.0*]
+Parent="Firefox 38.0"
+Platform="Win8"
+
+[Mozilla/5.0 (*Windows NT 6.1*) Gecko* Firefox/38.0*]
+Parent="Firefox 38.0"
+Platform="Win7"
+
+[Mozilla/5.0 (*Mac OS X*) Gecko* Firefox/38.0*]
+Parent="Firefox 38.0"
+Platform="MacOSX"
+
+[Mozilla/4.0 (*Linux*) Gecko* Firefox/38.0*]
+Parent="Firefox 38.0"
+Platform="Linux"
+
+[Mozilla/4.0 (*Windows NT 6.0*) Gecko* Firefox/38.0*]
+Parent="Firefox 38.0"
+Platform="WinVista"
+
+[Mozilla/4.0 (*Windows NT 10.0*) Gecko* Firefox/38.0*]
+Parent="Firefox 38.0"
+Platform="Win10"
+
+[Mozilla/4.0 (*Windows NT 6.4*) Gecko* Firefox/38.0*]
+Parent="Firefox 38.0"
+Platform="Win10"
+
+[Mozilla/4.0 (*Windows NT 6.3*) Gecko* Firefox/38.0*]
+Parent="Firefox 38.0"
+Platform="Win8.1"
+
+[Mozilla/4.0 (*Windows NT 6.2*) Gecko* Firefox/38.0*]
+Parent="Firefox 38.0"
+Platform="Win8"
+
+[Mozilla/4.0 (*Windows NT 6.1*) Gecko* Firefox/38.0*]
+Parent="Firefox 38.0"
+Platform="Win7"
+
+[Mozilla/4.0 (*Mac OS X*) Gecko* Firefox/38.0*]
+Parent="Firefox 38.0"
+Platform="MacOSX"
+
+[Mozilla/5.0 (*Windows NT 6.0*; rv:38*) Gecko* Firefox/38*anonymized by *]
+Parent="Firefox 38.0"
+Platform="WinVista"
+
+[Mozilla/5.0 (*Windows NT 6.1*; rv:38*) Gecko* Firefox/38*anonymized by *]
+Parent="Firefox 38.0"
+Platform="Win7"
+
+[Mozilla/5.0 (*Windows*; rv:38*) Gecko* Firefox/38*anonymized by *]
+Parent="Firefox 38.0"
+Platform="Win32"
+
+[Mozilla/5.0 (*Windows NT 6.0*; rv:38*) Gecko* Firefox anonymized by *]
+Parent="Firefox 38.0"
+Platform="WinVista"
+
+[Mozilla/5.0 (*Windows*; rv:38*) Gecko* Firefox anonymized by *]
+Parent="Firefox 38.0"
+Platform="Win32"
+
+[Mozilla/5.0 (*Windows*) Gecko* Firefox/38.0* Anonymisiert*]
+Parent="Firefox 38.0"
+Platform="Win32"
+
+[Firefox/38.0*anonymized by Abelssoft*]
+Parent="Firefox 38.0"
+Platform="Win32"
+
+[Mozilla/5.0 (masking-agent; rv:*) Gecko* Firefox/38.0*]
+Parent="Firefox 38.0"
+
+[Mozilla/5.0 (*Windows NT 6.0*) Gecko*/38.0*]
+Parent="Firefox 38.0"
+Platform="WinVista"
+
+[Mozilla/5.0 (*Windows NT 10.0*) Gecko*/38.0*]
+Parent="Firefox 38.0"
+Platform="Win10"
+
+[Mozilla/5.0 (*Windows NT 6.4*) Gecko*/38.0*]
+Parent="Firefox 38.0"
+Platform="Win10"
+
+[Mozilla/5.0 (*Windows NT 6.3*) Gecko*/38.0*]
+Parent="Firefox 38.0"
+Platform="Win8.1"
+
+[Mozilla/5.0 (*Windows NT 6.2*) Gecko*/38.0*]
+Parent="Firefox 38.0"
+Platform="Win8"
+
+[Mozilla/5.0 (*Windows NT 6.1*) Gecko*/38.0*]
+Parent="Firefox 38.0"
+Platform="Win7"
+
+[Mozilla/5.0 (*Windows NT 6.0*rv:38.0*) Gecko*/]
+Parent="Firefox 38.0"
+Platform="WinVista"
+
+[Mozilla/5.0 (*Windows NT 10.0*rv:38.0*) Gecko*/]
+Parent="Firefox 38.0"
+Platform="Win10"
+
+[Mozilla/5.0 (*Windows NT 6.4*rv:38.0*) Gecko*/]
+Parent="Firefox 38.0"
+Platform="Win10"
+
+[Mozilla/5.0 (*Windows NT 6.3*rv:38.0*) Gecko*/]
+Parent="Firefox 38.0"
+Platform="Win8.1"
+
+[Mozilla/5.0 (*Windows NT 6.2*rv:38.0*) Gecko*/]
+Parent="Firefox 38.0"
+Platform="Win8"
+
+[Mozilla/5.0 (*Windows NT 6.1*rv:38.0*) Gecko*/]
+Parent="Firefox 38.0"
+Platform="Win7"
+
+[Mozilla/5.0 (*Mac OS X*) Gecko*/38.0*]
+Parent="Firefox 38.0"
+Platform="MacOSX"
+
+[Mozilla/5.0 (*Windows NT 6.0*rv:38.0*) Gecko* Firefox]
+Parent="Firefox 38.0"
+Platform="WinVista"
+
+[Mozilla/5.0 (*Windows NT 6.1*rv:38.0*) Gecko* Firefox]
+Parent="Firefox 38.0"
+Platform="Win7"
+
+[Mozilla/5.0 (*Windows NT 6.2*rv:38.0*) Gecko* Firefox]
+Parent="Firefox 38.0"
+Platform="Win8"
+
+[Mozilla/5.0 (*Windows NT 6.3*rv:38.0*) Gecko* Firefox]
+Parent="Firefox 38.0"
+Platform="Win8.1"
+
+[Mozilla/5.0 (*Windows NT 6.4*rv:38.0*) Gecko* Firefox]
+Parent="Firefox 38.0"
+Platform="Win10"
+
+[Mozilla/5.0 (*Windows NT 10.0*rv:38.0*) Gecko* Firefox]
+Parent="Firefox 38.0"
+Platform="Win10"
+
+[Firefox 38.0 for Android]
+Parent="DefaultProperties"
+Comment="Firefox 38.0"
+Browser="Firefox"
+Version="38.0"
+Platform="Android"
+isMobileDevice="true"
+Device_Type="Mobile Phone"
+
+[Mozilla/5.0 (*Android*Mobile*) Gecko* Firefox/38.*]
+Parent="Firefox 38.0 for Android"
+
+[Mozilla/5.0 (*Android*Tablet*) Gecko* Firefox/38.*]
+Parent="Firefox 38.0 for Android"
+isTablet="true"
+Device_Type="Tablet"
+
+[Firefox 37.0]
+Parent="DefaultProperties"
+Comment="Firefox 37.0"
+Browser="Firefox"
+Version="37.0"
+Device_Type="Desktop"
+
+[Mozilla/5.0 (*Linux*) Gecko* Firefox/37.0*]
+Parent="Firefox 37.0"
+Platform="Linux"
+
+[Mozilla/5.0 (*Windows NT 6.0*) Gecko* Firefox/37.0*]
+Parent="Firefox 37.0"
+Platform="WinVista"
+
+[Mozilla/5.0 (*Windows NT 10.0*) Gecko* Firefox/37.0*]
+Parent="Firefox 37.0"
+Platform="Win10"
+
+[Mozilla/5.0 (*Windows NT 6.4*) Gecko* Firefox/37.0*]
+Parent="Firefox 37.0"
+Platform="Win10"
+
+[Mozilla/5.0 (*Windows NT 6.3*) Gecko* Firefox/37.0*]
+Parent="Firefox 37.0"
+Platform="Win8.1"
+
+[Mozilla/5.0 (*Windows NT 6.2*) Gecko* Firefox/37.0*]
+Parent="Firefox 37.0"
+Platform="Win8"
+
+[Mozilla/5.0 (*Windows NT 6.1*) Gecko* Firefox/37.0*]
+Parent="Firefox 37.0"
+Platform="Win7"
+
+[Mozilla/5.0 (*Mac OS X*) Gecko* Firefox/37.0*]
+Parent="Firefox 37.0"
+Platform="MacOSX"
+
+[Mozilla/4.0 (*Linux*) Gecko* Firefox/37.0*]
+Parent="Firefox 37.0"
+Platform="Linux"
+
+[Mozilla/4.0 (*Windows NT 6.0*) Gecko* Firefox/37.0*]
+Parent="Firefox 37.0"
+Platform="WinVista"
+
+[Mozilla/4.0 (*Windows NT 10.0*) Gecko* Firefox/37.0*]
+Parent="Firefox 37.0"
+Platform="Win10"
+
+[Mozilla/4.0 (*Windows NT 6.4*) Gecko* Firefox/37.0*]
+Parent="Firefox 37.0"
+Platform="Win10"
+
+[Mozilla/4.0 (*Windows NT 6.3*) Gecko* Firefox/37.0*]
+Parent="Firefox 37.0"
+Platform="Win8.1"
+
+[Mozilla/4.0 (*Windows NT 6.2*) Gecko* Firefox/37.0*]
+Parent="Firefox 37.0"
+Platform="Win8"
+
+[Mozilla/4.0 (*Windows NT 6.1*) Gecko* Firefox/37.0*]
+Parent="Firefox 37.0"
+Platform="Win7"
+
+[Mozilla/4.0 (*Mac OS X*) Gecko* Firefox/37.0*]
+Parent="Firefox 37.0"
+Platform="MacOSX"
+
+[Mozilla/5.0 (*Windows NT 6.0*; rv:37*) Gecko* Firefox/37*anonymized by *]
+Parent="Firefox 37.0"
+Platform="WinVista"
+
+[Mozilla/5.0 (*Windows NT 6.1*; rv:37*) Gecko* Firefox/37*anonymized by *]
+Parent="Firefox 37.0"
+Platform="Win7"
+
+[Mozilla/5.0 (*Windows*; rv:37*) Gecko* Firefox/37*anonymized by *]
+Parent="Firefox 37.0"
+Platform="Win32"
+
+[Mozilla/5.0 (*Windows NT 6.0*; rv:37*) Gecko* Firefox anonymized by *]
+Parent="Firefox 37.0"
+Platform="WinVista"
+
+[Mozilla/5.0 (*Windows*; rv:37*) Gecko* Firefox anonymized by *]
+Parent="Firefox 37.0"
+Platform="Win32"
+
+[Mozilla/5.0 (*Windows*) Gecko* Firefox/37.0* Anonymisiert*]
+Parent="Firefox 37.0"
+Platform="Win32"
+
+[Firefox/37.0*anonymized by Abelssoft*]
+Parent="Firefox 37.0"
+Platform="Win32"
+
+[Mozilla/5.0 (masking-agent; rv:*) Gecko* Firefox/37.0*]
+Parent="Firefox 37.0"
+
+[Mozilla/5.0 (*Windows NT 6.0*) Gecko*/37.0*]
+Parent="Firefox 37.0"
+Platform="WinVista"
+
+[Mozilla/5.0 (*Windows NT 10.0*) Gecko*/37.0*]
+Parent="Firefox 37.0"
+Platform="Win10"
+
+[Mozilla/5.0 (*Windows NT 6.4*) Gecko*/37.0*]
+Parent="Firefox 37.0"
+Platform="Win10"
+
+[Mozilla/5.0 (*Windows NT 6.3*) Gecko*/37.0*]
+Parent="Firefox 37.0"
+Platform="Win8.1"
+
+[Mozilla/5.0 (*Windows NT 6.2*) Gecko*/37.0*]
+Parent="Firefox 37.0"
+Platform="Win8"
+
+[Mozilla/5.0 (*Windows NT 6.1*) Gecko*/37.0*]
+Parent="Firefox 37.0"
+Platform="Win7"
+
+[Mozilla/5.0 (*Windows NT 6.0*rv:37.0*) Gecko*/]
+Parent="Firefox 37.0"
+Platform="WinVista"
+
+[Mozilla/5.0 (*Windows NT 10.0*rv:37.0*) Gecko*/]
+Parent="Firefox 37.0"
+Platform="Win10"
+
+[Mozilla/5.0 (*Windows NT 6.4*rv:37.0*) Gecko*/]
+Parent="Firefox 37.0"
+Platform="Win10"
+
+[Mozilla/5.0 (*Windows NT 6.3*rv:37.0*) Gecko*/]
+Parent="Firefox 37.0"
+Platform="Win8.1"
+
+[Mozilla/5.0 (*Windows NT 6.2*rv:37.0*) Gecko*/]
+Parent="Firefox 37.0"
+Platform="Win8"
+
+[Mozilla/5.0 (*Windows NT 6.1*rv:37.0*) Gecko*/]
+Parent="Firefox 37.0"
+Platform="Win7"
+
+[Mozilla/5.0 (*Mac OS X*) Gecko*/37.0*]
+Parent="Firefox 37.0"
+Platform="MacOSX"
+
+[Mozilla/5.0 (*Windows NT 6.0*rv:37.0*) Gecko* Firefox]
+Parent="Firefox 37.0"
+Platform="WinVista"
+
+[Mozilla/5.0 (*Windows NT 6.1*rv:37.0*) Gecko* Firefox]
+Parent="Firefox 37.0"
+Platform="Win7"
+
+[Mozilla/5.0 (*Windows NT 6.2*rv:37.0*) Gecko* Firefox]
+Parent="Firefox 37.0"
+Platform="Win8"
+
+[Mozilla/5.0 (*Windows NT 6.3*rv:37.0*) Gecko* Firefox]
+Parent="Firefox 37.0"
+Platform="Win8.1"
+
+[Mozilla/5.0 (*Windows NT 6.4*rv:37.0*) Gecko* Firefox]
+Parent="Firefox 37.0"
+Platform="Win10"
+
+[Mozilla/5.0 (*Windows NT 10.0*rv:37.0*) Gecko* Firefox]
+Parent="Firefox 37.0"
+Platform="Win10"
+
+[Firefox 37.0 for Android]
+Parent="DefaultProperties"
+Comment="Firefox 37.0"
+Browser="Firefox"
+Version="37.0"
+Platform="Android"
+isMobileDevice="true"
+Device_Type="Mobile Phone"
+
+[Mozilla/5.0 (*Android*Mobile*) Gecko* Firefox/37.*]
+Parent="Firefox 37.0 for Android"
+
+[Mozilla/5.0 (*Android*Tablet*) Gecko* Firefox/37.*]
+Parent="Firefox 37.0 for Android"
+isTablet="true"
+Device_Type="Tablet"
+
+[Firefox 36.0]
+Parent="DefaultProperties"
+Comment="Firefox 36.0"
+Browser="Firefox"
+Version="36.0"
+Device_Type="Desktop"
+
+[Mozilla/5.0 (*Linux*) Gecko* Firefox/36.0*]
+Parent="Firefox 36.0"
+Platform="Linux"
+
+[Mozilla/5.0 (*Windows NT 6.0*) Gecko* Firefox/36.0*]
+Parent="Firefox 36.0"
+Platform="WinVista"
+
+[Mozilla/5.0 (*Windows NT 10.0*) Gecko* Firefox/36.0*]
+Parent="Firefox 36.0"
+Platform="Win10"
+
+[Mozilla/5.0 (*Windows NT 6.4*) Gecko* Firefox/36.0*]
+Parent="Firefox 36.0"
+Platform="Win10"
+
+[Mozilla/5.0 (*Windows NT 6.3*) Gecko* Firefox/36.0*]
+Parent="Firefox 36.0"
+Platform="Win8.1"
+
+[Mozilla/5.0 (*Windows NT 6.2*) Gecko* Firefox/36.0*]
+Parent="Firefox 36.0"
+Platform="Win8"
+
+[Mozilla/5.0 (*Windows NT 6.1*) Gecko* Firefox/36.0*]
+Parent="Firefox 36.0"
+Platform="Win7"
+
+[Mozilla/5.0 (*Mac OS X*) Gecko* Firefox/36.0*]
+Parent="Firefox 36.0"
+Platform="MacOSX"
+
+[Mozilla/4.0 (*Linux*) Gecko* Firefox/36.0*]
+Parent="Firefox 36.0"
+Platform="Linux"
+
+[Mozilla/4.0 (*Windows NT 6.0*) Gecko* Firefox/36.0*]
+Parent="Firefox 36.0"
+Platform="WinVista"
+
+[Mozilla/4.0 (*Windows NT 10.0*) Gecko* Firefox/36.0*]
+Parent="Firefox 36.0"
+Platform="Win10"
+
+[Mozilla/4.0 (*Windows NT 6.4*) Gecko* Firefox/36.0*]
+Parent="Firefox 36.0"
+Platform="Win10"
+
+[Mozilla/4.0 (*Windows NT 6.3*) Gecko* Firefox/36.0*]
+Parent="Firefox 36.0"
+Platform="Win8.1"
+
+[Mozilla/4.0 (*Windows NT 6.2*) Gecko* Firefox/36.0*]
+Parent="Firefox 36.0"
+Platform="Win8"
+
+[Mozilla/4.0 (*Windows NT 6.1*) Gecko* Firefox/36.0*]
+Parent="Firefox 36.0"
+Platform="Win7"
+
+[Mozilla/4.0 (*Mac OS X*) Gecko* Firefox/36.0*]
+Parent="Firefox 36.0"
+Platform="MacOSX"
+
+[Mozilla/5.0 (*Windows NT 6.0*; rv:36*) Gecko* Firefox/36*anonymized by *]
+Parent="Firefox 36.0"
+Platform="WinVista"
+
+[Mozilla/5.0 (*Windows NT 6.1*; rv:36*) Gecko* Firefox/36*anonymized by *]
+Parent="Firefox 36.0"
+Platform="Win7"
+
+[Mozilla/5.0 (*Windows*; rv:36*) Gecko* Firefox/36*anonymized by *]
+Parent="Firefox 36.0"
+Platform="Win32"
+
+[Mozilla/5.0 (*Windows NT 6.0*; rv:36*) Gecko* Firefox anonymized by *]
+Parent="Firefox 36.0"
+Platform="WinVista"
+
+[Mozilla/5.0 (*Windows*; rv:36*) Gecko* Firefox anonymized by *]
+Parent="Firefox 36.0"
+Platform="Win32"
+
+[Mozilla/5.0 (*Windows*) Gecko* Firefox/36.0* Anonymisiert*]
+Parent="Firefox 36.0"
+Platform="Win32"
+
+[Firefox/36.0*anonymized by Abelssoft*]
+Parent="Firefox 36.0"
+Platform="Win32"
+
+[Mozilla/5.0 (masking-agent; rv:*) Gecko* Firefox/36.0*]
+Parent="Firefox 36.0"
+
+[Mozilla/5.0 (*Windows NT 6.0*) Gecko*/36.0*]
+Parent="Firefox 36.0"
+Platform="WinVista"
+
+[Mozilla/5.0 (*Windows NT 10.0*) Gecko*/36.0*]
+Parent="Firefox 36.0"
+Platform="Win10"
+
+[Mozilla/5.0 (*Windows NT 6.4*) Gecko*/36.0*]
+Parent="Firefox 36.0"
+Platform="Win10"
+
+[Mozilla/5.0 (*Windows NT 6.3*) Gecko*/36.0*]
+Parent="Firefox 36.0"
+Platform="Win8.1"
+
+[Mozilla/5.0 (*Windows NT 6.2*) Gecko*/36.0*]
+Parent="Firefox 36.0"
+Platform="Win8"
+
+[Mozilla/5.0 (*Windows NT 6.1*) Gecko*/36.0*]
+Parent="Firefox 36.0"
+Platform="Win7"
+
+[Mozilla/5.0 (*Windows NT 6.0*rv:36.0*) Gecko*/]
+Parent="Firefox 36.0"
+Platform="WinVista"
+
+[Mozilla/5.0 (*Windows NT 10.0*rv:36.0*) Gecko*/]
+Parent="Firefox 36.0"
+Platform="Win10"
+
+[Mozilla/5.0 (*Windows NT 6.4*rv:36.0*) Gecko*/]
+Parent="Firefox 36.0"
+Platform="Win10"
+
+[Mozilla/5.0 (*Windows NT 6.3*rv:36.0*) Gecko*/]
+Parent="Firefox 36.0"
+Platform="Win8.1"
+
+[Mozilla/5.0 (*Windows NT 6.2*rv:36.0*) Gecko*/]
+Parent="Firefox 36.0"
+Platform="Win8"
+
+[Mozilla/5.0 (*Windows NT 6.1*rv:36.0*) Gecko*/]
+Parent="Firefox 36.0"
+Platform="Win7"
+
+[Mozilla/5.0 (*Mac OS X*) Gecko*/36.0*]
+Parent="Firefox 36.0"
+Platform="MacOSX"
+
+[Mozilla/5.0 (*Windows NT 6.0*rv:36.0*) Gecko* Firefox]
+Parent="Firefox 36.0"
+Platform="WinVista"
+
+[Mozilla/5.0 (*Windows NT 6.1*rv:36.0*) Gecko* Firefox]
+Parent="Firefox 36.0"
+Platform="Win7"
+
+[Mozilla/5.0 (*Windows NT 6.2*rv:36.0*) Gecko* Firefox]
+Parent="Firefox 36.0"
+Platform="Win8"
+
+[Mozilla/5.0 (*Windows NT 6.3*rv:36.0*) Gecko* Firefox]
+Parent="Firefox 36.0"
+Platform="Win8.1"
+
+[Mozilla/5.0 (*Windows NT 6.4*rv:36.0*) Gecko* Firefox]
+Parent="Firefox 36.0"
+Platform="Win10"
+
+[Mozilla/5.0 (*Windows NT 10.0*rv:36.0*) Gecko* Firefox]
+Parent="Firefox 36.0"
+Platform="Win10"
+
+[Firefox 36.0 for Android]
+Parent="DefaultProperties"
+Comment="Firefox 36.0"
+Browser="Firefox"
+Version="36.0"
+Platform="Android"
+isMobileDevice="true"
+Device_Type="Mobile Phone"
+
+[Mozilla/5.0 (*Android*Mobile*) Gecko* Firefox/36.*]
+Parent="Firefox 36.0 for Android"
+
+[Mozilla/5.0 (*Android*Tablet*) Gecko* Firefox/36.*]
+Parent="Firefox 36.0 for Android"
+isTablet="true"
+Device_Type="Tablet"
+
+[Firefox 35.0]
+Parent="DefaultProperties"
+Comment="Firefox 35.0"
+Browser="Firefox"
+Version="35.0"
+Device_Type="Desktop"
+
+[Mozilla/5.0 (*Linux*) Gecko* Firefox/35.0*]
+Parent="Firefox 35.0"
+Platform="Linux"
+
+[Mozilla/5.0 (*Windows NT 6.0*) Gecko* Firefox/35.0*]
+Parent="Firefox 35.0"
+Platform="WinVista"
+
+[Mozilla/5.0 (*Windows NT 10.0*) Gecko* Firefox/35.0*]
+Parent="Firefox 35.0"
+Platform="Win10"
+
+[Mozilla/5.0 (*Windows NT 6.4*) Gecko* Firefox/35.0*]
+Parent="Firefox 35.0"
+Platform="Win10"
+
+[Mozilla/5.0 (*Windows NT 6.3*) Gecko* Firefox/35.0*]
+Parent="Firefox 35.0"
+Platform="Win8.1"
+
+[Mozilla/5.0 (*Windows NT 6.2*) Gecko* Firefox/35.0*]
+Parent="Firefox 35.0"
+Platform="Win8"
+
+[Mozilla/5.0 (*Windows NT 6.1*) Gecko* Firefox/35.0*]
+Parent="Firefox 35.0"
+Platform="Win7"
+
+[Mozilla/5.0 (*Mac OS X*) Gecko* Firefox/35.0*]
+Parent="Firefox 35.0"
+Platform="MacOSX"
+
+[Mozilla/4.0 (*Linux*) Gecko* Firefox/35.0*]
+Parent="Firefox 35.0"
+Platform="Linux"
+
+[Mozilla/4.0 (*Windows NT 6.0*) Gecko* Firefox/35.0*]
+Parent="Firefox 35.0"
+Platform="WinVista"
+
+[Mozilla/4.0 (*Windows NT 10.0*) Gecko* Firefox/35.0*]
+Parent="Firefox 35.0"
+Platform="Win10"
+
+[Mozilla/4.0 (*Windows NT 6.4*) Gecko* Firefox/35.0*]
+Parent="Firefox 35.0"
+Platform="Win10"
+
+[Mozilla/4.0 (*Windows NT 6.3*) Gecko* Firefox/35.0*]
+Parent="Firefox 35.0"
+Platform="Win8.1"
+
+[Mozilla/4.0 (*Windows NT 6.2*) Gecko* Firefox/35.0*]
+Parent="Firefox 35.0"
+Platform="Win8"
+
+[Mozilla/4.0 (*Windows NT 6.1*) Gecko* Firefox/35.0*]
+Parent="Firefox 35.0"
+Platform="Win7"
+
+[Mozilla/4.0 (*Mac OS X*) Gecko* Firefox/35.0*]
+Parent="Firefox 35.0"
+Platform="MacOSX"
+
+[Mozilla/5.0 (*Windows NT 6.0*; rv:35*) Gecko* Firefox/35*anonymized by *]
+Parent="Firefox 35.0"
+Platform="WinVista"
+
+[Mozilla/5.0 (*Windows NT 6.1*; rv:35*) Gecko* Firefox/35*anonymized by *]
+Parent="Firefox 35.0"
+Platform="Win7"
+
+[Mozilla/5.0 (*Windows*; rv:35*) Gecko* Firefox/35*anonymized by *]
+Parent="Firefox 35.0"
+Platform="Win32"
+
+[Mozilla/5.0 (*Windows NT 6.0*; rv:35*) Gecko* Firefox anonymized by *]
+Parent="Firefox 35.0"
+Platform="WinVista"
+
+[Mozilla/5.0 (*Windows*; rv:35*) Gecko* Firefox anonymized by *]
+Parent="Firefox 35.0"
+Platform="Win32"
+
+[Mozilla/5.0 (*Windows*) Gecko* Firefox/35.0* Anonymisiert*]
+Parent="Firefox 35.0"
+Platform="Win32"
+
+[Firefox/35.0*anonymized by Abelssoft*]
+Parent="Firefox 35.0"
+Platform="Win32"
+
+[Mozilla/5.0 (masking-agent; rv:*) Gecko* Firefox/35.0*]
+Parent="Firefox 35.0"
+
+[Mozilla/5.0 (*Windows NT 6.0*) Gecko*/35.0*]
+Parent="Firefox 35.0"
+Platform="WinVista"
+
+[Mozilla/5.0 (*Windows NT 10.0*) Gecko*/35.0*]
+Parent="Firefox 35.0"
+Platform="Win10"
+
+[Mozilla/5.0 (*Windows NT 6.4*) Gecko*/35.0*]
+Parent="Firefox 35.0"
+Platform="Win10"
+
+[Mozilla/5.0 (*Windows NT 6.3*) Gecko*/35.0*]
+Parent="Firefox 35.0"
+Platform="Win8.1"
+
+[Mozilla/5.0 (*Windows NT 6.2*) Gecko*/35.0*]
+Parent="Firefox 35.0"
+Platform="Win8"
+
+[Mozilla/5.0 (*Windows NT 6.1*) Gecko*/35.0*]
+Parent="Firefox 35.0"
+Platform="Win7"
+
+[Mozilla/5.0 (*Windows NT 6.0*rv:35.0*) Gecko*/]
+Parent="Firefox 35.0"
+Platform="WinVista"
+
+[Mozilla/5.0 (*Windows NT 10.0*rv:35.0*) Gecko*/]
+Parent="Firefox 35.0"
+Platform="Win10"
+
+[Mozilla/5.0 (*Windows NT 6.4*rv:35.0*) Gecko*/]
+Parent="Firefox 35.0"
+Platform="Win10"
+
+[Mozilla/5.0 (*Windows NT 6.3*rv:35.0*) Gecko*/]
+Parent="Firefox 35.0"
+Platform="Win8.1"
+
+[Mozilla/5.0 (*Windows NT 6.2*rv:35.0*) Gecko*/]
+Parent="Firefox 35.0"
+Platform="Win8"
+
+[Mozilla/5.0 (*Windows NT 6.1*rv:35.0*) Gecko*/]
+Parent="Firefox 35.0"
+Platform="Win7"
+
+[Mozilla/5.0 (*Mac OS X*) Gecko*/35.0*]
+Parent="Firefox 35.0"
+Platform="MacOSX"
+
+[Mozilla/5.0 (*Windows NT 6.0*rv:35.0*) Gecko* Firefox]
+Parent="Firefox 35.0"
+Platform="WinVista"
+
+[Mozilla/5.0 (*Windows NT 6.1*rv:35.0*) Gecko* Firefox]
+Parent="Firefox 35.0"
+Platform="Win7"
+
+[Mozilla/5.0 (*Windows NT 6.2*rv:35.0*) Gecko* Firefox]
+Parent="Firefox 35.0"
+Platform="Win8"
+
+[Mozilla/5.0 (*Windows NT 6.3*rv:35.0*) Gecko* Firefox]
+Parent="Firefox 35.0"
+Platform="Win8.1"
+
+[Mozilla/5.0 (*Windows NT 6.4*rv:35.0*) Gecko* Firefox]
+Parent="Firefox 35.0"
+Platform="Win10"
+
+[Mozilla/5.0 (*Windows NT 10.0*rv:35.0*) Gecko* Firefox]
+Parent="Firefox 35.0"
+Platform="Win10"
+
+[Firefox 35.0 for Android]
+Parent="DefaultProperties"
+Comment="Firefox 35.0"
+Browser="Firefox"
+Version="35.0"
+Platform="Android"
+isMobileDevice="true"
+Device_Type="Mobile Phone"
+
+[Mozilla/5.0 (*Android*Mobile*) Gecko* Firefox/35.*]
+Parent="Firefox 35.0 for Android"
+
+[Mozilla/5.0 (*Android*Tablet*) Gecko* Firefox/35.*]
+Parent="Firefox 35.0 for Android"
+isTablet="true"
+Device_Type="Tablet"
+
+[Firefox 34.0]
+Parent="DefaultProperties"
+Comment="Firefox 34.0"
+Browser="Firefox"
+Version="34.0"
+Device_Type="Desktop"
+
+[Mozilla/5.0 (*Linux*) Gecko* Firefox/34.0*]
+Parent="Firefox 34.0"
+Platform="Linux"
+
+[Mozilla/5.0 (*Windows NT 6.0*) Gecko* Firefox/34.0*]
+Parent="Firefox 34.0"
+Platform="WinVista"
+
+[Mozilla/5.0 (*Windows NT 10.0*) Gecko* Firefox/34.0*]
+Parent="Firefox 34.0"
+Platform="Win10"
+
+[Mozilla/5.0 (*Windows NT 6.4*) Gecko* Firefox/34.0*]
+Parent="Firefox 34.0"
+Platform="Win10"
+
+[Mozilla/5.0 (*Windows NT 6.3*) Gecko* Firefox/34.0*]
+Parent="Firefox 34.0"
+Platform="Win8.1"
+
+[Mozilla/5.0 (*Windows NT 6.2*) Gecko* Firefox/34.0*]
+Parent="Firefox 34.0"
+Platform="Win8"
+
+[Mozilla/5.0 (*Windows NT 6.1*) Gecko* Firefox/34.0*]
+Parent="Firefox 34.0"
+Platform="Win7"
+
+[Mozilla/5.0 (*Mac OS X*) Gecko* Firefox/34.0*]
+Parent="Firefox 34.0"
+Platform="MacOSX"
+
+[Mozilla/4.0 (*Linux*) Gecko* Firefox/34.0*]
+Parent="Firefox 34.0"
+Platform="Linux"
+
+[Mozilla/4.0 (*Windows NT 6.0*) Gecko* Firefox/34.0*]
+Parent="Firefox 34.0"
+Platform="WinVista"
+
+[Mozilla/4.0 (*Windows NT 10.0*) Gecko* Firefox/34.0*]
+Parent="Firefox 34.0"
+Platform="Win10"
+
+[Mozilla/4.0 (*Windows NT 6.4*) Gecko* Firefox/34.0*]
+Parent="Firefox 34.0"
+Platform="Win10"
+
+[Mozilla/4.0 (*Windows NT 6.3*) Gecko* Firefox/34.0*]
+Parent="Firefox 34.0"
+Platform="Win8.1"
+
+[Mozilla/4.0 (*Windows NT 6.2*) Gecko* Firefox/34.0*]
+Parent="Firefox 34.0"
+Platform="Win8"
+
+[Mozilla/4.0 (*Windows NT 6.1*) Gecko* Firefox/34.0*]
+Parent="Firefox 34.0"
+Platform="Win7"
+
+[Mozilla/4.0 (*Mac OS X*) Gecko* Firefox/34.0*]
+Parent="Firefox 34.0"
+Platform="MacOSX"
+
+[Mozilla/5.0 (*Windows NT 6.0*; rv:34*) Gecko* Firefox/34*anonymized by *]
+Parent="Firefox 34.0"
+Platform="WinVista"
+
+[Mozilla/5.0 (*Windows NT 6.1*; rv:34*) Gecko* Firefox/34*anonymized by *]
+Parent="Firefox 34.0"
+Platform="Win7"
+
+[Mozilla/5.0 (*Windows*; rv:34*) Gecko* Firefox/34*anonymized by *]
+Parent="Firefox 34.0"
+Platform="Win32"
+
+[Mozilla/5.0 (*Windows NT 6.0*; rv:34*) Gecko* Firefox anonymized by *]
+Parent="Firefox 34.0"
+Platform="WinVista"
+
+[Mozilla/5.0 (*Windows*; rv:34*) Gecko* Firefox anonymized by *]
+Parent="Firefox 34.0"
+Platform="Win32"
+
+[Mozilla/5.0 (*Windows*) Gecko* Firefox/34.0* Anonymisiert*]
+Parent="Firefox 34.0"
+Platform="Win32"
+
+[Firefox/34.0*anonymized by Abelssoft*]
+Parent="Firefox 34.0"
+Platform="Win32"
+
+[Mozilla/5.0 (masking-agent; rv:*) Gecko* Firefox/34.0*]
+Parent="Firefox 34.0"
+
+[Mozilla/5.0 (*Windows NT 6.0*) Gecko*/34.0*]
+Parent="Firefox 34.0"
+Platform="WinVista"
+
+[Mozilla/5.0 (*Windows NT 10.0*) Gecko*/34.0*]
+Parent="Firefox 34.0"
+Platform="Win10"
+
+[Mozilla/5.0 (*Windows NT 6.4*) Gecko*/34.0*]
+Parent="Firefox 34.0"
+Platform="Win10"
+
+[Mozilla/5.0 (*Windows NT 6.3*) Gecko*/34.0*]
+Parent="Firefox 34.0"
+Platform="Win8.1"
+
+[Mozilla/5.0 (*Windows NT 6.2*) Gecko*/34.0*]
+Parent="Firefox 34.0"
+Platform="Win8"
+
+[Mozilla/5.0 (*Windows NT 6.1*) Gecko*/34.0*]
+Parent="Firefox 34.0"
+Platform="Win7"
+
+[Mozilla/5.0 (*Windows NT 6.0*rv:34.0*) Gecko*/]
+Parent="Firefox 34.0"
+Platform="WinVista"
+
+[Mozilla/5.0 (*Windows NT 10.0*rv:34.0*) Gecko*/]
+Parent="Firefox 34.0"
+Platform="Win10"
+
+[Mozilla/5.0 (*Windows NT 6.4*rv:34.0*) Gecko*/]
+Parent="Firefox 34.0"
+Platform="Win10"
+
+[Mozilla/5.0 (*Windows NT 6.3*rv:34.0*) Gecko*/]
+Parent="Firefox 34.0"
+Platform="Win8.1"
+
+[Mozilla/5.0 (*Windows NT 6.2*rv:34.0*) Gecko*/]
+Parent="Firefox 34.0"
+Platform="Win8"
+
+[Mozilla/5.0 (*Windows NT 6.1*rv:34.0*) Gecko*/]
+Parent="Firefox 34.0"
+Platform="Win7"
+
+[Mozilla/5.0 (*Mac OS X*) Gecko*/34.0*]
+Parent="Firefox 34.0"
+Platform="MacOSX"
+
+[Mozilla/5.0 (*Windows NT 6.0*rv:34.0*) Gecko* Firefox]
+Parent="Firefox 34.0"
+Platform="WinVista"
+
+[Mozilla/5.0 (*Windows NT 6.1*rv:34.0*) Gecko* Firefox]
+Parent="Firefox 34.0"
+Platform="Win7"
+
+[Mozilla/5.0 (*Windows NT 6.2*rv:34.0*) Gecko* Firefox]
+Parent="Firefox 34.0"
+Platform="Win8"
+
+[Mozilla/5.0 (*Windows NT 6.3*rv:34.0*) Gecko* Firefox]
+Parent="Firefox 34.0"
+Platform="Win8.1"
+
+[Mozilla/5.0 (*Windows NT 6.4*rv:34.0*) Gecko* Firefox]
+Parent="Firefox 34.0"
+Platform="Win10"
+
+[Mozilla/5.0 (*Windows NT 10.0*rv:34.0*) Gecko* Firefox]
+Parent="Firefox 34.0"
+Platform="Win10"
+
+[Firefox 34.0 for Android]
+Parent="DefaultProperties"
+Comment="Firefox 34.0"
+Browser="Firefox"
+Version="34.0"
+Platform="Android"
+isMobileDevice="true"
+Device_Type="Mobile Phone"
+
+[Mozilla/5.0 (*Android*Mobile*) Gecko* Firefox/34.*]
+Parent="Firefox 34.0 for Android"
+
+[Mozilla/5.0 (*Android*Tablet*) Gecko* Firefox/34.*]
+Parent="Firefox 34.0 for Android"
+isTablet="true"
+Device_Type="Tablet"
+
+[Firefox 33.0]
+Parent="DefaultProperties"
+Comment="Firefox 33.0"
+Browser="Firefox"
+Version="33.0"
+Device_Type="Desktop"
+
+[Mozilla/5.0 (*Linux*) Gecko* Firefox/33.0*]
+Parent="Firefox 33.0"
+Platform="Linux"
+
+[Mozilla/5.0 (*Windows NT 6.0*) Gecko* Firefox/33.0*]
+Parent="Firefox 33.0"
+Platform="WinVista"
+
+[Mozilla/5.0 (*Windows NT 10.0*) Gecko* Firefox/33.0*]
+Parent="Firefox 33.0"
+Platform="Win10"
+
+[Mozilla/5.0 (*Windows NT 6.4*) Gecko* Firefox/33.0*]
+Parent="Firefox 33.0"
+Platform="Win10"
+
+[Mozilla/5.0 (*Windows NT 6.3*) Gecko* Firefox/33.0*]
+Parent="Firefox 33.0"
+Platform="Win8.1"
+
+[Mozilla/5.0 (*Windows NT 6.2*) Gecko* Firefox/33.0*]
+Parent="Firefox 33.0"
+Platform="Win8"
+
+[Mozilla/5.0 (*Windows NT 6.1*) Gecko* Firefox/33.0*]
+Parent="Firefox 33.0"
+Platform="Win7"
+
+[Mozilla/5.0 (*Mac OS X*) Gecko* Firefox/33.0*]
+Parent="Firefox 33.0"
+Platform="MacOSX"
+
+[Mozilla/4.0 (*Linux*) Gecko* Firefox/33.0*]
+Parent="Firefox 33.0"
+Platform="Linux"
+
+[Mozilla/4.0 (*Windows NT 6.0*) Gecko* Firefox/33.0*]
+Parent="Firefox 33.0"
+Platform="WinVista"
+
+[Mozilla/4.0 (*Windows NT 10.0*) Gecko* Firefox/33.0*]
+Parent="Firefox 33.0"
+Platform="Win10"
+
+[Mozilla/4.0 (*Windows NT 6.4*) Gecko* Firefox/33.0*]
+Parent="Firefox 33.0"
+Platform="Win10"
+
+[Mozilla/4.0 (*Windows NT 6.3*) Gecko* Firefox/33.0*]
+Parent="Firefox 33.0"
+Platform="Win8.1"
+
+[Mozilla/4.0 (*Windows NT 6.2*) Gecko* Firefox/33.0*]
+Parent="Firefox 33.0"
+Platform="Win8"
+
+[Mozilla/4.0 (*Windows NT 6.1*) Gecko* Firefox/33.0*]
+Parent="Firefox 33.0"
+Platform="Win7"
+
+[Mozilla/4.0 (*Mac OS X*) Gecko* Firefox/33.0*]
+Parent="Firefox 33.0"
+Platform="MacOSX"
+
+[Mozilla/5.0 (*Windows NT 6.0*; rv:33*) Gecko* Firefox/33*anonymized by *]
+Parent="Firefox 33.0"
+Platform="WinVista"
+
+[Mozilla/5.0 (*Windows NT 6.1*; rv:33*) Gecko* Firefox/33*anonymized by *]
+Parent="Firefox 33.0"
+Platform="Win7"
+
+[Mozilla/5.0 (*Windows*; rv:33*) Gecko* Firefox/33*anonymized by *]
+Parent="Firefox 33.0"
+Platform="Win32"
+
+[Mozilla/5.0 (*Windows NT 6.0*; rv:33*) Gecko* Firefox anonymized by *]
+Parent="Firefox 33.0"
+Platform="WinVista"
+
+[Mozilla/5.0 (*Windows*; rv:33*) Gecko* Firefox anonymized by *]
+Parent="Firefox 33.0"
+Platform="Win32"
+
+[Mozilla/5.0 (*Windows*) Gecko* Firefox/33.0* Anonymisiert*]
+Parent="Firefox 33.0"
+Platform="Win32"
+
+[Firefox/33.0*anonymized by Abelssoft*]
+Parent="Firefox 33.0"
+Platform="Win32"
+
+[Mozilla/5.0 (masking-agent; rv:*) Gecko* Firefox/33.0*]
+Parent="Firefox 33.0"
+
+[Mozilla/5.0 (*Windows NT 6.0*) Gecko*/33.0*]
+Parent="Firefox 33.0"
+Platform="WinVista"
+
+[Mozilla/5.0 (*Windows NT 10.0*) Gecko*/33.0*]
+Parent="Firefox 33.0"
+Platform="Win10"
+
+[Mozilla/5.0 (*Windows NT 6.4*) Gecko*/33.0*]
+Parent="Firefox 33.0"
+Platform="Win10"
+
+[Mozilla/5.0 (*Windows NT 6.3*) Gecko*/33.0*]
+Parent="Firefox 33.0"
+Platform="Win8.1"
+
+[Mozilla/5.0 (*Windows NT 6.2*) Gecko*/33.0*]
+Parent="Firefox 33.0"
+Platform="Win8"
+
+[Mozilla/5.0 (*Windows NT 6.1*) Gecko*/33.0*]
+Parent="Firefox 33.0"
+Platform="Win7"
+
+[Mozilla/5.0 (*Windows NT 6.0*rv:33.0*) Gecko*/]
+Parent="Firefox 33.0"
+Platform="WinVista"
+
+[Mozilla/5.0 (*Windows NT 10.0*rv:33.0*) Gecko*/]
+Parent="Firefox 33.0"
+Platform="Win10"
+
+[Mozilla/5.0 (*Windows NT 6.4*rv:33.0*) Gecko*/]
+Parent="Firefox 33.0"
+Platform="Win10"
+
+[Mozilla/5.0 (*Windows NT 6.3*rv:33.0*) Gecko*/]
+Parent="Firefox 33.0"
+Platform="Win8.1"
+
+[Mozilla/5.0 (*Windows NT 6.2*rv:33.0*) Gecko*/]
+Parent="Firefox 33.0"
+Platform="Win8"
+
+[Mozilla/5.0 (*Windows NT 6.1*rv:33.0*) Gecko*/]
+Parent="Firefox 33.0"
+Platform="Win7"
+
+[Mozilla/5.0 (*Mac OS X*) Gecko*/33.0*]
+Parent="Firefox 33.0"
+Platform="MacOSX"
+
+[Mozilla/5.0 (*Windows NT 6.0*rv:33.0*) Gecko* Firefox]
+Parent="Firefox 33.0"
+Platform="WinVista"
+
+[Mozilla/5.0 (*Windows NT 6.1*rv:33.0*) Gecko* Firefox]
+Parent="Firefox 33.0"
+Platform="Win7"
+
+[Mozilla/5.0 (*Windows NT 6.2*rv:33.0*) Gecko* Firefox]
+Parent="Firefox 33.0"
+Platform="Win8"
+
+[Mozilla/5.0 (*Windows NT 6.3*rv:33.0*) Gecko* Firefox]
+Parent="Firefox 33.0"
+Platform="Win8.1"
+
+[Mozilla/5.0 (*Windows NT 6.4*rv:33.0*) Gecko* Firefox]
+Parent="Firefox 33.0"
+Platform="Win10"
+
+[Mozilla/5.0 (*Windows NT 10.0*rv:33.0*) Gecko* Firefox]
+Parent="Firefox 33.0"
+Platform="Win10"
+
+[Firefox 33.0 for Android]
+Parent="DefaultProperties"
+Comment="Firefox 33.0"
+Browser="Firefox"
+Version="33.0"
+Platform="Android"
+isMobileDevice="true"
+Device_Type="Mobile Phone"
+
+[Mozilla/5.0 (*Android*Mobile*) Gecko* Firefox/33.*]
+Parent="Firefox 33.0 for Android"
+
+[Mozilla/5.0 (*Android*Tablet*) Gecko* Firefox/33.*]
+Parent="Firefox 33.0 for Android"
+isTablet="true"
+Device_Type="Tablet"
+
+[Firefox 32.0]
+Parent="DefaultProperties"
+Comment="Firefox 32.0"
+Browser="Firefox"
+Version="32.0"
+Device_Type="Desktop"
+
+[Mozilla/5.0 (*Linux*) Gecko* Firefox/32.0*]
+Parent="Firefox 32.0"
+Platform="Linux"
+
+[Mozilla/5.0 (*Windows NT 6.0*) Gecko* Firefox/32.0*]
+Parent="Firefox 32.0"
+Platform="WinVista"
+
+[Mozilla/5.0 (*Windows NT 10.0*) Gecko* Firefox/32.0*]
+Parent="Firefox 32.0"
+Platform="Win10"
+
+[Mozilla/5.0 (*Windows NT 6.4*) Gecko* Firefox/32.0*]
+Parent="Firefox 32.0"
+Platform="Win10"
+
+[Mozilla/5.0 (*Windows NT 6.3*) Gecko* Firefox/32.0*]
+Parent="Firefox 32.0"
+Platform="Win8.1"
+
+[Mozilla/5.0 (*Windows NT 6.2*) Gecko* Firefox/32.0*]
+Parent="Firefox 32.0"
+Platform="Win8"
+
+[Mozilla/5.0 (*Windows NT 6.1*) Gecko* Firefox/32.0*]
+Parent="Firefox 32.0"
+Platform="Win7"
+
+[Mozilla/5.0 (*Mac OS X*) Gecko* Firefox/32.0*]
+Parent="Firefox 32.0"
+Platform="MacOSX"
+
+[Mozilla/4.0 (*Linux*) Gecko* Firefox/32.0*]
+Parent="Firefox 32.0"
+Platform="Linux"
+
+[Mozilla/4.0 (*Windows NT 6.0*) Gecko* Firefox/32.0*]
+Parent="Firefox 32.0"
+Platform="WinVista"
+
+[Mozilla/4.0 (*Windows NT 10.0*) Gecko* Firefox/32.0*]
+Parent="Firefox 32.0"
+Platform="Win10"
+
+[Mozilla/4.0 (*Windows NT 6.4*) Gecko* Firefox/32.0*]
+Parent="Firefox 32.0"
+Platform="Win10"
+
+[Mozilla/4.0 (*Windows NT 6.3*) Gecko* Firefox/32.0*]
+Parent="Firefox 32.0"
+Platform="Win8.1"
+
+[Mozilla/4.0 (*Windows NT 6.2*) Gecko* Firefox/32.0*]
+Parent="Firefox 32.0"
+Platform="Win8"
+
+[Mozilla/4.0 (*Windows NT 6.1*) Gecko* Firefox/32.0*]
+Parent="Firefox 32.0"
+Platform="Win7"
+
+[Mozilla/4.0 (*Mac OS X*) Gecko* Firefox/32.0*]
+Parent="Firefox 32.0"
+Platform="MacOSX"
+
+[Mozilla/5.0 (*Windows NT 6.0*; rv:32*) Gecko* Firefox/32*anonymized by *]
+Parent="Firefox 32.0"
+Platform="WinVista"
+
+[Mozilla/5.0 (*Windows NT 6.1*; rv:32*) Gecko* Firefox/32*anonymized by *]
+Parent="Firefox 32.0"
+Platform="Win7"
+
+[Mozilla/5.0 (*Windows*; rv:32*) Gecko* Firefox/32*anonymized by *]
+Parent="Firefox 32.0"
+Platform="Win32"
+
+[Mozilla/5.0 (*Windows NT 6.0*; rv:32*) Gecko* Firefox anonymized by *]
+Parent="Firefox 32.0"
+Platform="WinVista"
+
+[Mozilla/5.0 (*Windows*; rv:32*) Gecko* Firefox anonymized by *]
+Parent="Firefox 32.0"
+Platform="Win32"
+
+[Mozilla/5.0 (*Windows*) Gecko* Firefox/32.0* Anonymisiert*]
+Parent="Firefox 32.0"
+Platform="Win32"
+
+[Firefox/32.0*anonymized by Abelssoft*]
+Parent="Firefox 32.0"
+Platform="Win32"
+
+[Mozilla/5.0 (masking-agent; rv:*) Gecko* Firefox/32.0*]
+Parent="Firefox 32.0"
+
+[Mozilla/5.0 (*Windows NT 6.0*) Gecko*/32.0*]
+Parent="Firefox 32.0"
+Platform="WinVista"
+
+[Mozilla/5.0 (*Windows NT 10.0*) Gecko*/32.0*]
+Parent="Firefox 32.0"
+Platform="Win10"
+
+[Mozilla/5.0 (*Windows NT 6.4*) Gecko*/32.0*]
+Parent="Firefox 32.0"
+Platform="Win10"
+
+[Mozilla/5.0 (*Windows NT 6.3*) Gecko*/32.0*]
+Parent="Firefox 32.0"
+Platform="Win8.1"
+
+[Mozilla/5.0 (*Windows NT 6.2*) Gecko*/32.0*]
+Parent="Firefox 32.0"
+Platform="Win8"
+
+[Mozilla/5.0 (*Windows NT 6.1*) Gecko*/32.0*]
+Parent="Firefox 32.0"
+Platform="Win7"
+
+[Mozilla/5.0 (*Windows NT 6.0*rv:32.0*) Gecko*/]
+Parent="Firefox 32.0"
+Platform="WinVista"
+
+[Mozilla/5.0 (*Windows NT 10.0*rv:32.0*) Gecko*/]
+Parent="Firefox 32.0"
+Platform="Win10"
+
+[Mozilla/5.0 (*Windows NT 6.4*rv:32.0*) Gecko*/]
+Parent="Firefox 32.0"
+Platform="Win10"
+
+[Mozilla/5.0 (*Windows NT 6.3*rv:32.0*) Gecko*/]
+Parent="Firefox 32.0"
+Platform="Win8.1"
+
+[Mozilla/5.0 (*Windows NT 6.2*rv:32.0*) Gecko*/]
+Parent="Firefox 32.0"
+Platform="Win8"
+
+[Mozilla/5.0 (*Windows NT 6.1*rv:32.0*) Gecko*/]
+Parent="Firefox 32.0"
+Platform="Win7"
+
+[Mozilla/5.0 (*Mac OS X*) Gecko*/32.0*]
+Parent="Firefox 32.0"
+Platform="MacOSX"
+
+[Mozilla/5.0 (*Windows NT 6.0*rv:32.0*) Gecko* Firefox]
+Parent="Firefox 32.0"
+Platform="WinVista"
+
+[Mozilla/5.0 (*Windows NT 6.1*rv:32.0*) Gecko* Firefox]
+Parent="Firefox 32.0"
+Platform="Win7"
+
+[Mozilla/5.0 (*Windows NT 6.2*rv:32.0*) Gecko* Firefox]
+Parent="Firefox 32.0"
+Platform="Win8"
+
+[Mozilla/5.0 (*Windows NT 6.3*rv:32.0*) Gecko* Firefox]
+Parent="Firefox 32.0"
+Platform="Win8.1"
+
+[Mozilla/5.0 (*Windows NT 6.4*rv:32.0*) Gecko* Firefox]
+Parent="Firefox 32.0"
+Platform="Win10"
+
+[Mozilla/5.0 (*Windows NT 10.0*rv:32.0*) Gecko* Firefox]
+Parent="Firefox 32.0"
+Platform="Win10"
+
+[Firefox 32.0 for Android]
+Parent="DefaultProperties"
+Comment="Firefox 32.0"
+Browser="Firefox"
+Version="32.0"
+Platform="Android"
+isMobileDevice="true"
+Device_Type="Mobile Phone"
+
+[Mozilla/5.0 (*Android*Mobile*) Gecko* Firefox/32.*]
+Parent="Firefox 32.0 for Android"
+
+[Mozilla/5.0 (*Android*Tablet*) Gecko* Firefox/32.*]
+Parent="Firefox 32.0 for Android"
+isTablet="true"
+Device_Type="Tablet"
+
+[Firefox 31.0]
+Parent="DefaultProperties"
+Comment="Firefox 31.0"
+Browser="Firefox"
+Version="31.0"
+Device_Type="Desktop"
+
+[Mozilla/5.0 (*Linux*) Gecko* Firefox/31.0*]
+Parent="Firefox 31.0"
+Platform="Linux"
+
+[Mozilla/5.0 (*Windows NT 6.0*) Gecko* Firefox/31.0*]
+Parent="Firefox 31.0"
+Platform="WinVista"
+
+[Mozilla/5.0 (*Windows NT 10.0*) Gecko* Firefox/31.0*]
+Parent="Firefox 31.0"
+Platform="Win10"
+
+[Mozilla/5.0 (*Windows NT 6.4*) Gecko* Firefox/31.0*]
+Parent="Firefox 31.0"
+Platform="Win10"
+
+[Mozilla/5.0 (*Windows NT 6.3*) Gecko* Firefox/31.0*]
+Parent="Firefox 31.0"
+Platform="Win8.1"
+
+[Mozilla/5.0 (*Windows NT 6.2*) Gecko* Firefox/31.0*]
+Parent="Firefox 31.0"
+Platform="Win8"
+
+[Mozilla/5.0 (*Windows NT 6.1*) Gecko* Firefox/31.0*]
+Parent="Firefox 31.0"
+Platform="Win7"
+
+[Mozilla/5.0 (*Mac OS X*) Gecko* Firefox/31.0*]
+Parent="Firefox 31.0"
+Platform="MacOSX"
+
+[Mozilla/4.0 (*Linux*) Gecko* Firefox/31.0*]
+Parent="Firefox 31.0"
+Platform="Linux"
+
+[Mozilla/4.0 (*Windows NT 6.0*) Gecko* Firefox/31.0*]
+Parent="Firefox 31.0"
+Platform="WinVista"
+
+[Mozilla/4.0 (*Windows NT 10.0*) Gecko* Firefox/31.0*]
+Parent="Firefox 31.0"
+Platform="Win10"
+
+[Mozilla/4.0 (*Windows NT 6.4*) Gecko* Firefox/31.0*]
+Parent="Firefox 31.0"
+Platform="Win10"
+
+[Mozilla/4.0 (*Windows NT 6.3*) Gecko* Firefox/31.0*]
+Parent="Firefox 31.0"
+Platform="Win8.1"
+
+[Mozilla/4.0 (*Windows NT 6.2*) Gecko* Firefox/31.0*]
+Parent="Firefox 31.0"
+Platform="Win8"
+
+[Mozilla/4.0 (*Windows NT 6.1*) Gecko* Firefox/31.0*]
+Parent="Firefox 31.0"
+Platform="Win7"
+
+[Mozilla/4.0 (*Mac OS X*) Gecko* Firefox/31.0*]
+Parent="Firefox 31.0"
+Platform="MacOSX"
+
+[Mozilla/5.0 (*Windows NT 6.0*; rv:31*) Gecko* Firefox/31*anonymized by *]
+Parent="Firefox 31.0"
+Platform="WinVista"
+
+[Mozilla/5.0 (*Windows NT 6.1*; rv:31*) Gecko* Firefox/31*anonymized by *]
+Parent="Firefox 31.0"
+Platform="Win7"
+
+[Mozilla/5.0 (*Windows*; rv:31*) Gecko* Firefox/31*anonymized by *]
+Parent="Firefox 31.0"
+Platform="Win32"
+
+[Mozilla/5.0 (*Windows NT 6.0*; rv:31*) Gecko* Firefox anonymized by *]
+Parent="Firefox 31.0"
+Platform="WinVista"
+
+[Mozilla/5.0 (*Windows*; rv:31*) Gecko* Firefox anonymized by *]
+Parent="Firefox 31.0"
+Platform="Win32"
+
+[Mozilla/5.0 (*Windows*) Gecko* Firefox/31.0* Anonymisiert*]
+Parent="Firefox 31.0"
+Platform="Win32"
+
+[Firefox/31.0*anonymized by Abelssoft*]
+Parent="Firefox 31.0"
+Platform="Win32"
+
+[Mozilla/5.0 (masking-agent; rv:*) Gecko* Firefox/31.0*]
+Parent="Firefox 31.0"
+
+[Mozilla/5.0 (*Windows NT 6.0*) Gecko*/31.0*]
+Parent="Firefox 31.0"
+Platform="WinVista"
+
+[Mozilla/5.0 (*Windows NT 10.0*) Gecko*/31.0*]
+Parent="Firefox 31.0"
+Platform="Win10"
+
+[Mozilla/5.0 (*Windows NT 6.4*) Gecko*/31.0*]
+Parent="Firefox 31.0"
+Platform="Win10"
+
+[Mozilla/5.0 (*Windows NT 6.3*) Gecko*/31.0*]
+Parent="Firefox 31.0"
+Platform="Win8.1"
+
+[Mozilla/5.0 (*Windows NT 6.2*) Gecko*/31.0*]
+Parent="Firefox 31.0"
+Platform="Win8"
+
+[Mozilla/5.0 (*Windows NT 6.1*) Gecko*/31.0*]
+Parent="Firefox 31.0"
+Platform="Win7"
+
+[Mozilla/5.0 (*Windows NT 6.0*rv:31.0*) Gecko*/]
+Parent="Firefox 31.0"
+Platform="WinVista"
+
+[Mozilla/5.0 (*Windows NT 10.0*rv:31.0*) Gecko*/]
+Parent="Firefox 31.0"
+Platform="Win10"
+
+[Mozilla/5.0 (*Windows NT 6.4*rv:31.0*) Gecko*/]
+Parent="Firefox 31.0"
+Platform="Win10"
+
+[Mozilla/5.0 (*Windows NT 6.3*rv:31.0*) Gecko*/]
+Parent="Firefox 31.0"
+Platform="Win8.1"
+
+[Mozilla/5.0 (*Windows NT 6.2*rv:31.0*) Gecko*/]
+Parent="Firefox 31.0"
+Platform="Win8"
+
+[Mozilla/5.0 (*Windows NT 6.1*rv:31.0*) Gecko*/]
+Parent="Firefox 31.0"
+Platform="Win7"
+
+[Mozilla/5.0 (*Mac OS X*) Gecko*/31.0*]
+Parent="Firefox 31.0"
+Platform="MacOSX"
+
+[Mozilla/5.0 (*Windows NT 6.0*rv:31.0*) Gecko* Firefox]
+Parent="Firefox 31.0"
+Platform="WinVista"
+
+[Mozilla/5.0 (*Windows NT 6.1*rv:31.0*) Gecko* Firefox]
+Parent="Firefox 31.0"
+Platform="Win7"
+
+[Mozilla/5.0 (*Windows NT 6.2*rv:31.0*) Gecko* Firefox]
+Parent="Firefox 31.0"
+Platform="Win8"
+
+[Mozilla/5.0 (*Windows NT 6.3*rv:31.0*) Gecko* Firefox]
+Parent="Firefox 31.0"
+Platform="Win8.1"
+
+[Mozilla/5.0 (*Windows NT 6.4*rv:31.0*) Gecko* Firefox]
+Parent="Firefox 31.0"
+Platform="Win10"
+
+[Mozilla/5.0 (*Windows NT 10.0*rv:31.0*) Gecko* Firefox]
+Parent="Firefox 31.0"
+Platform="Win10"
+
+[Firefox 31.0 for Android]
+Parent="DefaultProperties"
+Comment="Firefox 31.0"
+Browser="Firefox"
+Version="31.0"
+Platform="Android"
+isMobileDevice="true"
+Device_Type="Mobile Phone"
+
+[Mozilla/5.0 (*Android*Mobile*) Gecko* Firefox/31.*]
+Parent="Firefox 31.0 for Android"
+
+[Mozilla/5.0 (*Android*Tablet*) Gecko* Firefox/31.*]
+Parent="Firefox 31.0 for Android"
+isTablet="true"
+Device_Type="Tablet"
+
+[Firefox 30.0]
+Parent="DefaultProperties"
+Comment="Firefox 30.0"
+Browser="Firefox"
+Version="30.0"
+Device_Type="Desktop"
+
+[Mozilla/5.0 (*Linux*) Gecko* Firefox/30.0*]
+Parent="Firefox 30.0"
+Platform="Linux"
+
+[Mozilla/5.0 (*Windows NT 6.0*) Gecko* Firefox/30.0*]
+Parent="Firefox 30.0"
+Platform="WinVista"
+
+[Mozilla/5.0 (*Windows NT 10.0*) Gecko* Firefox/30.0*]
+Parent="Firefox 30.0"
+Platform="Win10"
+
+[Mozilla/5.0 (*Windows NT 6.4*) Gecko* Firefox/30.0*]
+Parent="Firefox 30.0"
+Platform="Win10"
+
+[Mozilla/5.0 (*Windows NT 6.3*) Gecko* Firefox/30.0*]
+Parent="Firefox 30.0"
+Platform="Win8.1"
+
+[Mozilla/5.0 (*Windows NT 6.2*) Gecko* Firefox/30.0*]
+Parent="Firefox 30.0"
+Platform="Win8"
+
+[Mozilla/5.0 (*Windows NT 6.1*) Gecko* Firefox/30.0*]
+Parent="Firefox 30.0"
+Platform="Win7"
+
+[Mozilla/5.0 (*Mac OS X*) Gecko* Firefox/30.0*]
+Parent="Firefox 30.0"
+Platform="MacOSX"
+
+[Mozilla/4.0 (*Linux*) Gecko* Firefox/30.0*]
+Parent="Firefox 30.0"
+Platform="Linux"
+
+[Mozilla/4.0 (*Windows NT 6.0*) Gecko* Firefox/30.0*]
+Parent="Firefox 30.0"
+Platform="WinVista"
+
+[Mozilla/4.0 (*Windows NT 10.0*) Gecko* Firefox/30.0*]
+Parent="Firefox 30.0"
+Platform="Win10"
+
+[Mozilla/4.0 (*Windows NT 6.4*) Gecko* Firefox/30.0*]
+Parent="Firefox 30.0"
+Platform="Win10"
+
+[Mozilla/4.0 (*Windows NT 6.3*) Gecko* Firefox/30.0*]
+Parent="Firefox 30.0"
+Platform="Win8.1"
+
+[Mozilla/4.0 (*Windows NT 6.2*) Gecko* Firefox/30.0*]
+Parent="Firefox 30.0"
+Platform="Win8"
+
+[Mozilla/4.0 (*Windows NT 6.1*) Gecko* Firefox/30.0*]
+Parent="Firefox 30.0"
+Platform="Win7"
+
+[Mozilla/4.0 (*Mac OS X*) Gecko* Firefox/30.0*]
+Parent="Firefox 30.0"
+Platform="MacOSX"
+
+[Mozilla/5.0 (*Windows NT 6.0*; rv:30*) Gecko* Firefox/30*anonymized by *]
+Parent="Firefox 30.0"
+Platform="WinVista"
+
+[Mozilla/5.0 (*Windows NT 6.1*; rv:30*) Gecko* Firefox/30*anonymized by *]
+Parent="Firefox 30.0"
+Platform="Win7"
+
+[Mozilla/5.0 (*Windows*; rv:30*) Gecko* Firefox/30*anonymized by *]
+Parent="Firefox 30.0"
+Platform="Win32"
+
+[Mozilla/5.0 (*Windows NT 6.0*; rv:30*) Gecko* Firefox anonymized by *]
+Parent="Firefox 30.0"
+Platform="WinVista"
+
+[Mozilla/5.0 (*Windows*; rv:30*) Gecko* Firefox anonymized by *]
+Parent="Firefox 30.0"
+Platform="Win32"
+
+[Mozilla/5.0 (*Windows*) Gecko* Firefox/30.0* Anonymisiert*]
+Parent="Firefox 30.0"
+Platform="Win32"
+
+[Firefox/30.0*anonymized by Abelssoft*]
+Parent="Firefox 30.0"
+Platform="Win32"
+
+[Mozilla/5.0 (masking-agent; rv:*) Gecko* Firefox/30.0*]
+Parent="Firefox 30.0"
+
+[Mozilla/5.0 (*Windows NT 6.0*) Gecko*/30.0*]
+Parent="Firefox 30.0"
+Platform="WinVista"
+
+[Mozilla/5.0 (*Windows NT 10.0*) Gecko*/30.0*]
+Parent="Firefox 30.0"
+Platform="Win10"
+
+[Mozilla/5.0 (*Windows NT 6.4*) Gecko*/30.0*]
+Parent="Firefox 30.0"
+Platform="Win10"
+
+[Mozilla/5.0 (*Windows NT 6.3*) Gecko*/30.0*]
+Parent="Firefox 30.0"
+Platform="Win8.1"
+
+[Mozilla/5.0 (*Windows NT 6.2*) Gecko*/30.0*]
+Parent="Firefox 30.0"
+Platform="Win8"
+
+[Mozilla/5.0 (*Windows NT 6.1*) Gecko*/30.0*]
+Parent="Firefox 30.0"
+Platform="Win7"
+
+[Mozilla/5.0 (*Windows NT 6.0*rv:30.0*) Gecko*/]
+Parent="Firefox 30.0"
+Platform="WinVista"
+
+[Mozilla/5.0 (*Windows NT 10.0*rv:30.0*) Gecko*/]
+Parent="Firefox 30.0"
+Platform="Win10"
+
+[Mozilla/5.0 (*Windows NT 6.4*rv:30.0*) Gecko*/]
+Parent="Firefox 30.0"
+Platform="Win10"
+
+[Mozilla/5.0 (*Windows NT 6.3*rv:30.0*) Gecko*/]
+Parent="Firefox 30.0"
+Platform="Win8.1"
+
+[Mozilla/5.0 (*Windows NT 6.2*rv:30.0*) Gecko*/]
+Parent="Firefox 30.0"
+Platform="Win8"
+
+[Mozilla/5.0 (*Windows NT 6.1*rv:30.0*) Gecko*/]
+Parent="Firefox 30.0"
+Platform="Win7"
+
+[Mozilla/5.0 (*Mac OS X*) Gecko*/30.0*]
+Parent="Firefox 30.0"
+Platform="MacOSX"
+
+[Mozilla/5.0 (*Windows NT 6.0*rv:30.0*) Gecko* Firefox]
+Parent="Firefox 30.0"
+Platform="WinVista"
+
+[Mozilla/5.0 (*Windows NT 6.1*rv:30.0*) Gecko* Firefox]
+Parent="Firefox 30.0"
+Platform="Win7"
+
+[Mozilla/5.0 (*Windows NT 6.2*rv:30.0*) Gecko* Firefox]
+Parent="Firefox 30.0"
+Platform="Win8"
+
+[Mozilla/5.0 (*Windows NT 6.3*rv:30.0*) Gecko* Firefox]
+Parent="Firefox 30.0"
+Platform="Win8.1"
+
+[Mozilla/5.0 (*Windows NT 6.4*rv:30.0*) Gecko* Firefox]
+Parent="Firefox 30.0"
+Platform="Win10"
+
+[Mozilla/5.0 (*Windows NT 10.0*rv:30.0*) Gecko* Firefox]
+Parent="Firefox 30.0"
+Platform="Win10"
+
+[Firefox 30.0 for Android]
+Parent="DefaultProperties"
+Comment="Firefox 30.0"
+Browser="Firefox"
+Version="30.0"
+Platform="Android"
+isMobileDevice="true"
+Device_Type="Mobile Phone"
+
+[Mozilla/5.0 (*Android*Mobile*) Gecko* Firefox/30.*]
+Parent="Firefox 30.0 for Android"
+
+[Mozilla/5.0 (*Android*Tablet*) Gecko* Firefox/30.*]
+Parent="Firefox 30.0 for Android"
+isTablet="true"
+Device_Type="Tablet"
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Firefox Generic
+
+[Firefox Generic]
+Parent="DefaultProperties"
+Comment="Firefox Generic"
+Browser="Firefox"
+Device_Type="Desktop"
+
+[Mozilla/5.0 (*Linux*) Gecko* Firefox/*]
+Parent="Firefox Generic"
+Platform="Linux"
+
+[Mozilla/5.0 (*Windows NT 6.0*) Gecko* Firefox/*]
+Parent="Firefox Generic"
+Platform="WinVista"
+
+[Mozilla/5.0 (*Windows NT 6.1*) Gecko* Firefox/*]
+Parent="Firefox Generic"
+Platform="Win7"
+
+[Mozilla/5.0 (*Windows NT 6.2*) Gecko* Firefox/*]
+Parent="Firefox Generic"
+Platform="Win8"
+
+[Mozilla/5.0 (*Windows NT 6.3*) Gecko* Firefox/*]
+Parent="Firefox Generic"
+Platform="Win8.1"
+
+[Mozilla/5.0 (*Windows NT 6.4*) Gecko* Firefox/*]
+Parent="Firefox Generic"
+Platform="Win10"
+
+[Mozilla/5.0 (*Windows NT 10.0*) Gecko* Firefox/*]
+Parent="Firefox Generic"
+Platform="Win10"
+
+[Mozilla/5.0 (*Mac OS X*) Gecko* Firefox/*]
+Parent="Firefox Generic"
+Platform="MacOSX"
+
+[Mozilla/4.0 (*Linux*) Gecko* Firefox/*]
+Parent="Firefox Generic"
+Platform="Linux"
+
+[Mozilla/4.0 (*Windows NT 6.0*) Gecko* Firefox/*]
+Parent="Firefox Generic"
+Platform="WinVista"
+
+[Mozilla/4.0 (*Windows NT 6.1*) Gecko* Firefox/*]
+Parent="Firefox Generic"
+Platform="Win7"
+
+[Mozilla/4.0 (*Windows NT 6.2*) Gecko* Firefox/*]
+Parent="Firefox Generic"
+Platform="Win8"
+
+[Mozilla/4.0 (*Windows NT 6.3*) Gecko* Firefox/*]
+Parent="Firefox Generic"
+Platform="Win8.1"
+
+[Mozilla/4.0 (*Windows NT 6.4*) Gecko* Firefox/*]
+Parent="Firefox Generic"
+Platform="Win10"
+
+[Mozilla/4.0 (*Windows NT 10.0*) Gecko* Firefox/*]
+Parent="Firefox Generic"
+Platform="Win10"
+
+[Mozilla/4.0 (*Mac OS X*) Gecko* Firefox/*]
+Parent="Firefox Generic"
+Platform="MacOSX"
+
+[Mozilla/5.0 (*Windows NT 6.0*; rv:*) Gecko* Firefox/*anonymized by *]
+Parent="Firefox Generic"
+Platform="WinVista"
+
+[Mozilla/5.0 (*Windows NT 6.1*; rv:*) Gecko* Firefox/*anonymized by *]
+Parent="Firefox Generic"
+Platform="Win7"
+
+[Mozilla/5.0 (*Windows*; rv:*) Gecko* Firefox/*anonymized by *]
+Parent="Firefox Generic"
+Platform="Win32"
+
+[Mozilla/5.0 (*Windows NT 6.0*; rv:*) Gecko* Firefox anonymized by *]
+Parent="Firefox Generic"
+Platform="WinVista"
+
+[Mozilla/5.0 (*Windows*; rv:*) Gecko* Firefox anonymized by *]
+Parent="Firefox Generic"
+Platform="Win32"
+
+[Mozilla/5.0 (*Windows*) Gecko* Firefox/* Anonymisiert*]
+Parent="Firefox Generic"
+Platform="Win32"
+
+[Firefox/*anonymized by Abelssoft*]
+Parent="Firefox Generic"
+Platform="Win32"
+
+[Mozilla/5.0 (masking-agent; rv:*) Gecko* Firefox/*]
+Parent="Firefox Generic"
+
+[Mozilla/5.0 (*Windows NT 6.0*) Gecko*/*]
+Parent="Firefox Generic"
+Platform="WinVista"
+
+[Mozilla/5.0 (*Windows NT 6.1*) Gecko*/*]
+Parent="Firefox Generic"
+Platform="Win7"
+
+[Mozilla/5.0 (*Windows NT 6.2*) Gecko*/*]
+Parent="Firefox Generic"
+Platform="Win8"
+
+[Mozilla/5.0 (*Windows NT 6.3*) Gecko*/*]
+Parent="Firefox Generic"
+Platform="Win8.1"
+
+[Mozilla/5.0 (*Windows NT 6.4*) Gecko*/*]
+Parent="Firefox Generic"
+Platform="Win10"
+
+[Mozilla/5.0 (*Windows NT 10.0*) Gecko*/*]
+Parent="Firefox Generic"
+Platform="Win10"
+
+[Mozilla/5.0 (*Windows NT 6.0*rv:*) Gecko*/]
+Parent="Firefox Generic"
+Platform="WinVista"
+
+[Mozilla/5.0 (*Windows NT 6.1*rv:*) Gecko*/]
+Parent="Firefox Generic"
+Platform="Win7"
+
+[Mozilla/5.0 (*Windows NT 6.2*rv:*) Gecko*/]
+Parent="Firefox Generic"
+Platform="Win8"
+
+[Mozilla/5.0 (*Windows NT 6.3*rv:*) Gecko*/]
+Parent="Firefox Generic"
+Platform="Win8.1"
+
+[Mozilla/5.0 (*Windows NT 6.4*rv:*) Gecko*/]
+Parent="Firefox Generic"
+Platform="Win10"
+
+[Mozilla/5.0 (*Windows NT 10.0*rv:*) Gecko*/]
+Parent="Firefox Generic"
+Platform="Win10"
+
+[Mozilla/5.0 (*Mac OS X*) Gecko*/*]
+Parent="Firefox Generic"
+Platform="MacOSX"
+
+[Mozilla/5.0 (*Windows NT 6.4*rv:*) Gecko* Firefox*]
+Parent="Firefox Generic"
+Platform="Win10"
+
+[Mozilla/5.0 (*Windows NT 10.0*rv:*) Gecko* Firefox*]
+Parent="Firefox Generic"
+Platform="Win10"
+
+[Firefox Generic for Android]
+Parent="DefaultProperties"
+Comment="Firefox Generic"
+Browser="Firefox"
+Platform="Android"
+isMobileDevice="true"
+Device_Type="Mobile Phone"
+
+[Mozilla/5.0 (*Android*Mobile*) Gecko* Firefox/*]
+Parent="Firefox Generic for Android"
+
+[Mozilla/5.0 (*Android*Tablet*) Gecko* Firefox/*]
+Parent="Firefox Generic for Android"
+isTablet="true"
+Device_Type="Tablet"
+
+[Mozilla/5.0 (*Android*Mobile*)*Gecko*Firefox/*]
+Parent="Firefox Generic for Android"
+
+[Mozilla/5.0 (*Android*Mobile*)*Gecko*Firefox/ anonymized by Abelssoft*]
+Parent="Firefox Generic for Android"
+
+[Mozilla/5.0 (*Android*Tablet*)*Gecko*Firefox/*]
+Parent="Firefox Generic for Android"
+isTablet="true"
+Device_Type="Tablet"
+
+[Mozilla/5.0 (*Android*Tablet*)*Gecko*Firefox/ anonymized by Abelssoft*]
+Parent="Firefox Generic for Android"
+isTablet="true"
+Device_Type="Tablet"
+
+[*]
+Parent="DefaultProperties"
+Comment="Default Browser"
+Browser="Default Browser"
+isMobileDevice="false"
+isTablet="false"
+
diff --git a/ext/standard/tests/misc/get_browser_variation3.phpt b/ext/standard/tests/misc/get_browser_variation3.phpt
new file mode 100644
index 0000000000..d6367f6d41
--- /dev/null
+++ b/ext/standard/tests/misc/get_browser_variation3.phpt
@@ -0,0 +1,2238 @@
+--TEST--
+Test get_browser() against a larger corpus
+--INI--
+browscap={PWD}/browscap_lite_2016_12_06.ini
+--FILE--
+<?php
+
+$lst = file(__DIR__ . "/user_agents.txt", FILE_IGNORE_NEW_LINES);
+foreach ($lst as $agent) {
+ $pattern = get_browser($agent, true)['browser_name_pattern'];
+ echo "Agent $agent\n Matched by: $pattern\n";
+}
+?>
+--EXPECT--
+Agent -
+ Matched by: *
+Agent AHC/1.0
+ Matched by: *
+Agent Airmail 1.4.1 rv:249 (Macintosh; Mac OS X 10.11.6; de_DE)
+ Matched by: *
+Agent Apache/2.4.10 (Debian) OpenSSL/1.0.1k (internal dummy connection)
+ Matched by: *
+Agent BaiduSpider
+ Matched by: *
+Agent Baiduspider+(+http://www.baidu.com/search/spider.htm)
+ Matched by: *
+Agent Baiduspider-image+(+http://www.baidu.com/search/spider.htm)
+ Matched by: *
+Agent BigDataCloud
+ Matched by: *
+Agent BlackBerry9000/4.6.0.167 Profile/MIDP-2.0 Configuration/CLDC-1.1 VendorID/102 ips-agent
+ Matched by: *
+Agent BPImageWalker/2.0 (www.bdbrandprotect.com)
+ Matched by: *
+Agent BUFF library user agent
+ Matched by: *
+Agent CCBot/2.0 (http://commoncrawl.org/faq/)
+ Matched by: *
+Agent censys.io internet census
+ Matched by: *
+Agent compatible;Baiduspider/2.0; +http://www.baidu.com/search/spider.html
+ Matched by: *
+Agent core-project/1.0
+ Matched by: *
+Agent Crawler powered by contentDetection (www.mindup.de)
+ Matched by: *
+Agent CRAZYWEBCRAWLER 0.9.10, http://www.crazywebcrawler.com
+ Matched by: *
+Agent curl/7.19.7 (x86_64-redhat-linux-gnu) libcurl/7.19.7 NSS/3.15.3 zlib/1.2.3 libidn/1.18 libssh2/1.4.2
+ Matched by: *
+Agent curl/7.19.7 (x86_64-redhat-linux-gnu) libcurl/7.19.7 NSS/3.21 Basic ECC zlib/1.2.3 libidn/1.18 libssh2/1.4.2
+ Matched by: *
+Agent curl/7.19.7 (x86_64-unknown-linux-gnu) libcurl/7.19.7 NSS/3.12.6.2 zlib/1.2.3 libidn/1.18 libssh2/1.2.2
+ Matched by: *
+Agent curl/7.26.0
+ Matched by: *
+Agent curl/7.29.0
+ Matched by: *
+Agent curl/7.38.0
+ Matched by: *
+Agent Dalvik/1.6.0 (Linux; U; Android 4.3; C5303 Build/12.1.A.1.205)
+ Matched by: *
+Agent Dalvik/2.1.0 (Linux; U; Android 5.0; SM-N9005 Build/LRX21V)
+ Matched by: *
+Agent Dalvik/2.1.0 (Linux; U; Android 6.0.1; SM-A510F Build/MMB29K)
+ Matched by: *
+Agent Digg Feed Fetcher 1.0 (Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_1) AppleWebKit/534.48.3 (KHTML, like Gecko) Version/5.1 Safari/534.48.3)
+ Matched by: *
+Agent facebookexternalhit/1.1 (+http://www.facebook.com/externalhit_uatext.php)
+ Matched by: *
+Agent Feedbin feed-id:156831 - 1 subscribers
+ Matched by: *
+Agent Feedly/1.0 (+http://www.feedly.com/fetcher.html; like FeedFetcher-Google)
+ Matched by: *
+Agent GarlikCrawler/1.2 (http://garlik.com/, crawler@garlik.com)
+ Matched by: *
+Agent Go-http-client/1.1
+ Matched by: *
+Agent Googlebot/2.1 (+http://www.google.com/bot.html)
+ Matched by: *
+Agent Googlebot-Image/1.0
+ Matched by: *
+Agent Googlebot/Nutch-1.7
+ Matched by: *
+Agent Goose/1.0.25
+ Matched by: *
+Agent GridBot/1.0 crawler@sysomos.com
+ Matched by: *
+Agent http://tools.geek-tools.org/link-counter/
+ Matched by: *
+Agent ia_archiver
+ Matched by: *
+Agent Java/1.6.0_04
+ Matched by: *
+Agent Java/1.7.0_75
+ Matched by: *
+Agent libwww-perl/5.833
+ Matched by: *
+Agent libwww-perl/6.08
+ Matched by: *
+Agent libwww-perl/6.13
+ Matched by: *
+Agent libwww-perl/6.15
+ Matched by: *
+Agent LinkWalker/3.0 (http://www.brandprotect.com)
+ Matched by: *
+Agent lr_http_client
+ Matched by: *
+Agent ltx71 - (http://ltx71.com/)
+ Matched by: *
+Agent LWP::Simple/6.00 libwww-perl/6.05
+ Matched by: *
+Agent LWP::Simple/6.00 libwww-perl/6.08
+ Matched by: *
+Agent Lynx/2.8.5rel.1 libwww-FM/2.15FC SSL-MM/1.4.1c OpenSSL/0.9.7e-dev
+ Matched by: *
+Agent Lynx/2.8.8pre.4 libwww-FM/2.14 SSL-MM/1.4.1 GNUTLS/2.12.23
+ Matched by: *
+Agent masscan/1.0 (https://github.com/robertdavidgraham/masscan)
+ Matched by: *
+Agent Mediapartners-Google
+ Matched by: *
+Agent mindUpBot (datenbutler.de)
+ Matched by: *
+Agent mj12bot
+ Matched by: *
+Agent MobileSafari/601.1 CFNetwork/758.5.3 Darwin/15.6.0
+ Matched by: MobileSafari/* CFNetwork/*
+Agent MobileSafari/602.1 CFNetwork/808.0.2 Darwin/16.0.0
+ Matched by: MobileSafari/* CFNetwork/*
+Agent MobileSafari/602.1 CFNetwork/808.1.4 Darwin/16.1.0
+ Matched by: MobileSafari/* CFNetwork/*
+Agent Morfeus Fucking Scanner
+ Matched by: *
+Agent Mozilla
+ Matched by: *
+Agent Mozilla/0.6 Beta (Windows)
+ Matched by: *
+Agent Mozilla/0.91 Beta (Windows)
+ Matched by: *
+Agent Mozilla/10.0 (Windows NT 7.100) Gecko/20112301 Firefox/17.0
+ Matched by: *
+Agent Mozilla/1.22 (compatible; MSIE 2.0d; Windows NT)
+ Matched by: *
+Agent Mozilla/1.22 (compatible; MSIE 2.0; Windows 95)
+ Matched by: *
+Agent Mozilla/2.0 (compatible; MSIE 3.02; Windows CE; 240x320)
+ Matched by: *
+Agent Mozilla/3.0 (compatible; Indy Library)
+ Matched by: *
+Agent Mozilla/3.0 (compatible; WebCapture 2.0; Auto; Windows)
+ Matched by: *
+Agent mozilla/3.0 (Windows NT 6.1; rv:2.0.1) Gecko/20100101 Firefox/5.0.1
+ Matched by: *
+Agent Mozilla/3.0 (x86 [en] Windows NT 5.1; Sun)
+ Matched by: *
+Agent Mozilla/37.0.2 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322)
+ Matched by: *
+Agent Mozilla 4.0
+ Matched by: *
+Agent Mozilla/4.0
+ Matched by: *
+Agent Mozilla/4.0 (CMS Crawler: http://www.cmscrawler.com)
+ Matched by: *
+Agent Mozilla/4.0 (compatible; MSIE 4.01; Digital AlphaServer 1000A 4/233; Windows NT; Powered By 64-Bit Alpha Processor)
+ Matched by: *
+Agent Mozilla/4.0 (compatible; MSIE 5.01; Windows 95; MSIECrawler)
+ Matched by: *
+Agent Mozilla/4.0 (compatible; MSIE 5.01; Windows NT)
+ Matched by: *
+Agent Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)
+ Matched by: *
+Agent Mozilla/4.0 (compatible; MSIE 5.0; Windows 2000) Opera 6.0 [en]
+ Matched by: *
+Agent Mozilla/4.0 (compatible; MSIE 5.0; Windows 3.1)
+ Matched by: *
+Agent Mozilla/4.0 (compatible; MSIE 5.0; Windows 95) Opera 6.01 [en]
+ Matched by: *
+Agent Mozilla/4.0 (compatible; MSIE 5.0; Windows NT; DigExt)
+ Matched by: *
+Agent Mozilla/4.0 (compatible; MSIE 5.5; Windows 95)
+ Matched by: *
+Agent Mozilla/4.0 (compatible; MSIE 5.5; Windows 95; BCD2000)
+ Matched by: *
+Agent Mozilla/4.0 (compatible; MSIE 5.5; Windows NT 4.0)
+ Matched by: *
+Agent Mozilla/4.0 (compatible; MSIE 5.5; Windows NT 4.0; .NET CLR 1.0.2914)
+ Matched by: *
+Agent Mozilla/4.0 (compatible; MSIE 5.5; Windows NT 5.0; .NET CLR 1.1.4322)
+ Matched by: *
+Agent Mozilla/4.0 (compatible; MSIE 5.5; Windows NT 5.0; T312461)
+ Matched by: *
+Agent Mozilla/4.0 (compatible; MSIE 6.0)
+ Matched by: Mozilla/4.0 (*MSIE 6.0*)*
+Agent Mozilla/4.0 (compatible; MSIE 6.0; America Online Browser 1.1; rev1.2; Windows NT 5.1; SV1; .NET CLR 1.1.4322)
+ Matched by: Mozilla/4.0 (compatible; MSIE 6.0*; *Windows*
+Agent Mozilla/4.0 (compatible; MSIE 6.0; AOL 9.0; Windows NT 5.1)
+ Matched by: Mozilla/4.0 (compatible; MSIE 6.0*; *Windows*
+Agent Mozilla/4.0 (compatible; MSIE 6.0; MSIE 5.5; Windows NT 4.0) Opera 7.0 [en]
+ Matched by: Mozilla/4.0 (compatible; MSIE 6.0*; *Windows*
+Agent Mozilla/4.0 (compatible; MSIE 6.0; MSIE 5.5; Windows NT 5.0) Opera 7.02 Bork-edition [en]
+ Matched by: Mozilla/4.0 (compatible; MSIE 6.0*; *Windows*
+Agent Mozilla/4.0 (compatible; MSIE 6.0; MSIE 5.5; Windows NT 5.1) Opera 7.01 [en]
+ Matched by: Mozilla/4.0 (compatible; MSIE 6.0*; *Windows*
+Agent Mozilla/4.0 (compatible; MSIE 6.0; Update a; AOL 6.0; Windows 98)
+ Matched by: Mozilla/4.0 (compatible; MSIE 6.0*; *Windows*
+Agent Mozilla/4.0 (compatible; MSIE 6.0; Windows 98)
+ Matched by: Mozilla/4.0 (compatible; MSIE 6.0*; *Windows*
+Agent Mozilla/4.0 (compatible; MSIE 6.0; Windows 98; Win 9x 4.90)
+ Matched by: Mozilla/4.0 (compatible; MSIE 6.0*; *Windows*
+Agent Mozilla/4.0 (compatible; MSIE 6.0; Windows 98; Win 9x 4.90; Creative)
+ Matched by: Mozilla/4.0 (compatible; MSIE 6.0*; *Windows*
+Agent Mozilla/4.0 (compatible; MSIE 6.0; Windows ME) Opera 7.11 [en]
+ Matched by: Mozilla/4.0 (compatible; MSIE 6.0*; *Windows*
+Agent Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)
+ Matched by: Mozilla/4.0 (compatible; MSIE 6.0*; *Windows*
+Agent Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0; APC; .NET CLR 1.0.3705; .NET CLR 1.1.4322; .NET CLR 2.0.50215; InfoPath.1)
+ Matched by: Mozilla/4.0 (compatible; MSIE 6.0*; *Windows*
+Agent Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0; Avant Browser [avantbrowser.com]; Hotbar 4.4.5.0)
+ Matched by: Mozilla/4.0 (compatible; MSIE 6.0*; *Windows*
+Agent Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0; KTXN)
+ Matched by: Mozilla/4.0 (compatible; MSIE 6.0*; *Windows*
+Agent Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0; .NET CLR 1.0.3705; .NET CLR 1.1.4322)
+ Matched by: Mozilla/4.0 (compatible; MSIE 6.0*; *Windows*
+Agent Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0; T312461)
+ Matched by: Mozilla/4.0 (compatible; MSIE 6.0*; *Windows*
+Agent Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)
+ Matched by: Mozilla/4.0 (compatible; MSIE 6.0*; *Windows*
+Agent Mozilla/4.0+(compatible;+MSIE+6.0;+Windows+NT+5.1)
+ Matched by: *
+Agent Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; Crazy Browser 1.0.5)
+ Matched by: Mozilla/4.0 (compatible; MSIE 6.0*; *Windows*
+Agent Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; Deepnet Explorer 1.5.0; .NET CLR 1.0.3705)
+ Matched by: Mozilla/4.0 (compatible; MSIE 6.0*; *Windows*
+Agent Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; en) Opera 8.00
+ Matched by: Mozilla/4.0 (compatible; MSIE 6.0*; *Windows*
+Agent Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; en) Opera 8.50
+ Matched by: Mozilla/4.0 (compatible; MSIE 6.0*; *Windows*
+Agent Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; en) Opera 9.0
+ Matched by: Mozilla/4.0 (compatible; MSIE 6.0*; *Windows*
+Agent Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; FREE; .NET CLR 1.1.4322)
+ Matched by: Mozilla/4.0 (compatible; MSIE 6.0*; *Windows*
+Agent Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; KKman2.0)
+ Matched by: Mozilla/4.0 (compatible; MSIE 6.0*; *Windows*
+Agent Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; Maxthon; .NET CLR 1.1.4322)
+ Matched by: Mozilla/4.0 (compatible; MSIE 6.0*; *Windows*
+Agent Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; MRA 4.3 (build 01218); .NET CLR 1.1.4322)
+ Matched by: Mozilla/4.0 (compatible; MSIE 6.0*; *Windows*
+Agent Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; MRA 4.6 (build 01425))
+ Matched by: Mozilla/4.0 (compatible; MSIE 6.0*; *Windows*
+Agent Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; MyIE2; Deepnet Explorer)
+ Matched by: Mozilla/4.0 (compatible; MSIE 6.0*; *Windows*
+Agent Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; .NET CLR 1.0.3705)
+ Matched by: Mozilla/4.0 (compatible; MSIE 6.0*; *Windows*
+Agent Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; .NET CLR 1.1.4322)
+ Matched by: Mozilla/4.0 (compatible; MSIE 6.0*; *Windows*
+Agent Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; .NET CLR 1.1.4322; Alexa Toolbar; (R1 1.5))
+ Matched by: Mozilla/4.0 (compatible; MSIE 6.0*; *Windows*
+Agent Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; .NET CLR 1.1.4322; FDM)
+ Matched by: Mozilla/4.0 (compatible; MSIE 6.0*; *Windows*
+Agent Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1) Netscape/8.0.4
+ Matched by: Mozilla/4.0 (compatible; MSIE 6.0*; *Windows*
+Agent Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1) Opera 7.54 [en]
+ Matched by: Mozilla/4.0 (compatible; MSIE 6.0*; *Windows*
+Agent Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; Q312461)
+ Matched by: Mozilla/4.0 (compatible; MSIE 6.0*; *Windows*
+Agent Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; ru) Opera 8.01
+ Matched by: Mozilla/4.0 (compatible; MSIE 6.0*; *Windows*
+Agent Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; ru) Opera 8.50
+ Matched by: Mozilla/4.0 (compatible; MSIE 6.0*; *Windows*
+Agent Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1;)
+ Matched by: Mozilla/4.0 (compatible; MSIE 6.0*; *Windows*
+Agent Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)
+ Matched by: Mozilla/4.0 (compatible; MSIE 6.0*; *Windows*
+Agent Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; Crazy Browser 2.0.0 Beta 1; .NET CLR 1.0.3705; .NET CLR 1.1.4322)
+ Matched by: Mozilla/4.0 (compatible; MSIE 6.0*; *Windows*
+Agent Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; FunWebProducts)
+ Matched by: Mozilla/4.0 (compatible; MSIE 6.0*; *Windows*
+Agent Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; FunWebProducts; MRA 4.6 (build 01425); .NET CLR 1.1.4322; .NET CLR 2.0.50727)
+ Matched by: Mozilla/4.0 (compatible; MSIE 6.0*; *Windows*
+Agent Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; FunWebProducts; .NET CLR 1.1.4322; PeoplePal 6.2)
+ Matched by: Mozilla/4.0 (compatible; MSIE 6.0*; *Windows*
+Agent Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; InfoPath.1
+ Matched by: Mozilla/4.0 (compatible; MSIE 6.0*; *Windows*
+Agent Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; InfoPath.1)
+ Matched by: Mozilla/4.0 (compatible; MSIE 6.0*; *Windows*
+Agent Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; Media Center PC
+ Matched by: Mozilla/4.0 (compatible; MSIE 6.0*; *Windows*
+Agent Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1) )
+ Matched by: Mozilla/4.0 (compatible; MSIE 6.0*; *Windows*
+Agent Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1) ; .NET CLR 1.0.3705)
+ Matched by: Mozilla/4.0 (compatible; MSIE 6.0*; *Windows*
+Agent Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1) ; .NET CLR 2.0.50727 ; .NET CLR 4.0.30319)
+ Matched by: Mozilla/4.0 (compatible; MSIE 6.0*; *Windows*
+Agent Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; MRA 4.6 (build 01425); MRSPUTNIK 1, 5, 0, 19 SW)
+ Matched by: Mozilla/4.0 (compatible; MSIE 6.0*; *Windows*
+Agent Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.0.3705)
+ Matched by: Mozilla/4.0 (compatible; MSIE 6.0*; *Windows*
+Agent Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.0.3705; .NET CLR 1.1.4322; .NET CLR 2.0.40607)
+ Matched by: Mozilla/4.0 (compatible; MSIE 6.0*; *Windows*
+Agent Mozilla/4.0 (compatible- MSIE 6.0- Windows NT 5.1- SV1- .NET CLR 1.1.4322
+ Matched by: *
+Agent Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322)
+ Matched by: Mozilla/4.0 (compatible; MSIE 6.0*; *Windows*
+Agent Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322) Babya Discoverer 8.0:
+ Matched by: Mozilla/4.0 (compatible; MSIE 6.0*; *Windows*
+Agent Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322; .NET CLR 2.0.50727)
+ Matched by: Mozilla/4.0 (compatible; MSIE 6.0*; *Windows*
+Agent Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322) NS8/0.9.6
+ Matched by: Mozilla/4.0 (compatible; MSIE 6.0*; *Windows*
+Agent Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322; XMPP Tiscali Communicator v.10.0.2; .NET CLR 2.0.50727)
+ Matched by: Mozilla/4.0 (compatible; MSIE 6.0*; *Windows*
+Agent Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 2.0.50727)
+ Matched by: Mozilla/4.0 (compatible; MSIE 6.0*; *Windows*
+Agent Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 2.0.50727; .NET CLR 1.1.4322)
+ Matched by: Mozilla/4.0 (compatible; MSIE 6.0*; *Windows*
+Agent Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; TencentTraveler ; Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1) ; .NET CLR 2.0.50727)
+ Matched by: Mozilla/4.0 (compatible; MSIE 6.0*; *Windows*
+Agent Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; YPC 3.0.2; .NET CLR 1.1.4322; yplus 4.4.02b)
+ Matched by: Mozilla/4.0 (compatible; MSIE 6.0*; *Windows*
+Agent Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; TheFreeDictionary.com; .NET CLR 1.1.4322; .NET CLR 1.0.3705; .NET CLR 2.0.50727)
+ Matched by: Mozilla/4.0 (compatible; MSIE 6.0*; *Windows*
+Agent Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.2; .NET CLR 1.0.3705;)
+ Matched by: Mozilla/4.0 (compatible; MSIE 6.0*; *Windows*
+Agent Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.2; SV1; .NET CLR 1.1.4322; .NET CLR 2.0.50727)
+ Matched by: Mozilla/4.0 (compatible; MSIE 6.0*; *Windows*
+Agent Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.2; Win64; AMD64)
+ Matched by: Mozilla/4.0 (compatible; MSIE 6.0*; *Windows*
+Agent Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.2; Win64; x64; SV1; .NET CLR 2.0.50727)
+ Matched by: Mozilla/4.0 (compatible; MSIE 6.0*; *Windows*
+Agent Mozilla/4.0 (compatible; MSIE 6.0; Windows NT) ::ELNSB50::000061100320025802a00111000000000507000900000000
+ Matched by: Mozilla/4.0 (compatible; MSIE 6.0*; *Windows*
+Agent Mozilla/4.0 (compatible; MSIE 6.0; Windows XP)
+ Matched by: Mozilla/4.0 (compatible; MSIE 6.0*; *Windows*
+Agent Mozilla/4.0 (compatible; MSIE 7.0b; Windows NT 6.0)
+ Matched by: Mozilla/4.0 (compatible*; MSIE 7.0b*; *Windows NT 6.0*
+Agent Mozilla/4.0 (compatible; MSIE 7.0b; Windows NT 6.0 ; .NET CLR 2.0.50215; SL Commerce Client v1.0; Tablet PC 2.0
+ Matched by: Mozilla/4.0 (compatible*; MSIE 7.0b*; *Windows NT 6.0*
+Agent Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; MRSPUTNIK 2, 4, 0, 270; MRA 5.8 (build 4598); GTB7.2; AskTbFF/5.11.3.15590; .NET CLR 1.1.4322)
+ Matched by: Mozilla/4.0 (compatible*; MSIE 7.0*; *Windows*
+Agent Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 1.0.3705; .NET CLR 1.1.4322; Media Center PC 4.0)
+ Matched by: Mozilla/4.0 (compatible*; MSIE 7.0*; *Windows*
+Agent Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 2.0.50727)
+ Matched by: Mozilla/4.0 (compatible*; MSIE 7.0*; *Windows*
+Agent Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; SV1; .NET CLR 2.0.50727)
+ Matched by: Mozilla/4.0 (compatible*; MSIE 7.0*; *Windows*
+Agent Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; Trident/4.0; .NET CLR 1.1.4322; .NET CLR 1.0.3705; .NET CLR 2.0.50727; .NET CLR 3.0.04506.648; .NET CLR 3.5.21022; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)
+ Matched by: Mozilla/4.0 (compatible; MSIE 7.0; *Windows*Trident/4.0*
+Agent Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.2)
+ Matched by: Mozilla/4.0 (compatible*; MSIE 7.0*; *Windows*
+Agent Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0; WOW64; Trident/5.0; SLCC1; .NET CLR 2.0.50727; .NET CLR 3.0.30729; .NET CLR 3.5.30729; .NET4.0C; .NET4.0E)
+ Matched by: Mozilla/4.0 (compatible; MSIE 7.0; *Windows NT 6.0*Trident/5.0*)*
+Agent Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C; .NET4.0E)
+ Matched by: Mozilla/4.0 (compatible*; MSIE 7.0*; *Windows NT 6.1*
+Agent Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; Trident/7.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C; .NET4.0E; ms-office)
+ Matched by: Mozilla/4.0 (compatible; MSIE 7.0; *Windows NT 6.1*Trident/7.0*
+Agent Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.2; WOW64; Trident/7.0; .NET4.0E; .NET4.0C; .NET CLR 3.5.30729; .NET CLR 2.0.50727; .NET CLR 3.0.30729)
+ Matched by: Mozilla/4.0 (compatible; MSIE 7.0; *Windows NT 6.2*Trident/7.0*
+Agent Mozilla/4.0 (compatible; MSIE 8.0; ; Trident/4.0; .NET CLR 1.1.4322; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)
+ Matched by: *
+Agent Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0)
+ Matched by: Mozilla/4.0 (compatible; MSIE 8.0*; *Windows*Trident/4.0*
+Agent Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; GTB6.5; .NET CLR 1.1.4322; .NET CLR 2.0.50727; .NET CLR 3.0.04506.648; .NET CLR 3.5.21022; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729; InfoPath.3)
+ Matched by: Mozilla/4.0 (compatible; MSIE 8.0*; *Windows*Trident/4.0*
+Agent Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; GTB6.5; .NET CLR 2.0.50727; InfoPath.2)
+ Matched by: Mozilla/4.0 (compatible; MSIE 8.0*; *Windows*Trident/4.0*
+Agent Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; GTB6; InfoPath.1; .NET CLR 2.0.50727; Dealio Toolbar 3.4; .NET CLR 3.0.04506.30; .NET CLR 3.0.04506.648; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)
+ Matched by: Mozilla/4.0 (compatible; MSIE 8.0*; *Windows*Trident/4.0*
+Agent Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; GTB7.5; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)
+ Matched by: Mozilla/4.0 (compatible; MSIE 8.0*; *Windows*Trident/4.0*
+Agent Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; .NET CLR 1.1.4322; .NET CLR 2.0.50727; .NET CLR 3.0.04506.30; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729; InfoPath.3; .NET4.0C; .NET4.0E)
+ Matched by: Mozilla/4.0 (compatible; MSIE 8.0*; *Windows*Trident/4.0*
+Agent Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; .NET CLR 1.1.4322; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)
+ Matched by: Mozilla/4.0 (compatible; MSIE 8.0*; *Windows*Trident/4.0*
+Agent Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; .NET CLR 2.0.50727)
+ Matched by: Mozilla/4.0 (compatible; MSIE 8.0*; *Windows*Trident/4.0*
+Agent Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; .NET CLR 2.0.50727; .NET4.0C)
+ Matched by: Mozilla/4.0 (compatible; MSIE 8.0*; *Windows*Trident/4.0*
+Agent Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; .NET CLR 2.0.50727; .NET CLR 3.0.04506.648; .NET CLR 3.5.21022; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729; InfoPath.2)
+ Matched by: Mozilla/4.0 (compatible; MSIE 8.0*; *Windows*Trident/4.0*
+Agent Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729; InfoPath.2)
+ Matched by: Mozilla/4.0 (compatible; MSIE 8.0*; *Windows*Trident/4.0*
+Agent Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.0; Trident/4.0; Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1) ; SLCC1; .NET CLR 2.0.50727; Media Center PC 5.0; .NET CLR 3.0.30729; .NET CLR 3.5.30729)
+ Matched by: Mozilla/4.0 (compatible; MSIE 8.0*; *Windows NT 6.0*Trident/4.0*
+Agent Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.0; Trident/4.0; SLCC1; .NET CLR 2.0.50727; OfficeLiveConnector.1.3; OfficeLivePatch.0.0; .NET CLR 3.5.30729; .NET CLR 3.0.30618; MS-RTC LM 8; yie8)
+ Matched by: Mozilla/4.0 (compatible; MSIE 8.0*; *Windows NT 6.0*Trident/4.0*
+Agent Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; Trident/4.0)
+ Matched by: Mozilla/4.0 (compatible; MSIE 8.0*; *Windows NT 6.1*Trident/4.0*
+Agent Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; Trident/4.0; Avant Browser; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0)
+ Matched by: Mozilla/4.0 (compatible; MSIE 8.0*; *Windows NT 6.1*Trident/4.0*
+Agent Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; Trident/4.0; GTB7.2; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C)
+ Matched by: Mozilla/4.0 (compatible; MSIE 8.0*; *Windows NT 6.1*Trident/4.0*
+Agent Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; Trident/4.0; InfoPath.2; SV1; .NET CLR 3.8.36926; WOW64; en-US)
+ Matched by: Mozilla/4.0 (compatible; MSIE 8.0*; *Windows NT 6.1*Trident/4.0*
+Agent Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729)
+ Matched by: Mozilla/4.0 (compatible; MSIE 8.0*; *Windows NT 6.1*Trident/4.0*
+Agent Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0)
+ Matched by: Mozilla/4.0 (compatible; MSIE 8.0*; *Windows NT 6.1*Trident/4.0*
+Agent Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C; .NET4.0E)
+ Matched by: Mozilla/4.0 (compatible; MSIE 8.0*; *Windows NT 6.1*Trident/4.0*
+Agent Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; Tablet PC 2.0)
+ Matched by: Mozilla/4.0 (compatible; MSIE 8.0*; *Windows NT 6.1*Trident/4.0*
+Agent Mozilla/4.0 (compatible; MSIE 9.0; Windows NT 6.1)
+ Matched by: Mozilla/4.0 (compatible; MSIE 9.0*; *Windows NT 6.1*
+Agent Mozilla/4.0 (compatible; MSIE 9.0; Windows NT 6.1; 125LA; .NET CLR 2.0.50727; .NET CLR 3.0.04506.648; .NET CLR 3.5.21022)
+ Matched by: Mozilla/4.0 (compatible; MSIE 9.0*; *Windows NT 6.1*
+Agent Mozilla/4.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0)
+ Matched by: Mozilla/4.0 (compatible; MSIE 9.0*; *Windows NT 6.1*Trident/5.0*
+Agent Mozilla/4.0 (compatible; Netcraft Web Server Survey)
+ Matched by: *
+Agent Mozilla/4.0 (compatible; Powermarks/3.5; Windows 95/98/2000/NT)
+ Matched by: *
+Agent Mozilla/4.0 (compatible; Synapse)
+ Matched by: *
+Agent Mozilla/4.0 (compatible; Win32; WinHttp.WinHttpRequest.5)
+ Matched by: *
+Agent Mozilla/4.0 (compatible; Windows;)
+ Matched by: *
+Agent Mozilla/4.0 (Windows NT 6.2) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.70 Safari/537.17
+ Matched by: *
+Agent Mozilla/4.0 (X11; MSIE 6.0; i686; .NET CLR 1.1.4322; .NET CLR 2.0.50727; FDM)
+ Matched by: Mozilla/4.0 (*MSIE 6.0*)*
+Agent Mozilla/4.61 [en] (X11; U; ) - BrowseX (2.0.0 Windows)
+ Matched by: *
+Agent Mozilla/4.76 [en] (Windows NT 5.0; U)
+ Matched by: *
+Agent Mozilla/4.79 [en] (Windows NT 5.0; U)
+ Matched by: *
+Agent Mozilla/4.7 (compatible; OffByOne; Windows 2000) Webster Pro V3.4
+ Matched by: *
+Agent Mozilla 5.0
+ Matched by: *
+Agent Mozilla/5.0
+ Matched by: *
+Agent Mozilla/5.0 (Android 2.2; Windows; U; Windows NT 6.1; en-US) AppleWebKit/533.19.4 (KHTML, like Gecko) Version/5.0.3 Safari/533.19.4
+ Matched by: Mozilla/5.0 (*Windows NT 6.1*) AppleWebKit/* (KHTML* like Gecko) *Version/* Safari/*
+Agent Mozilla/5.0 (Android 5.1.1; Tablet; rv:50.0.1) Gecko/50.0.1 Firefox/50.0.1
+ Matched by: Mozilla/5.0 (*Android*Tablet*) Gecko* Firefox/50.*
+Agent Mozilla/5.0 (Android 5.1.1; Tablet; rv:50.0) Gecko/50.0 Firefox/50.0
+ Matched by: Mozilla/5.0 (*Android*Tablet*) Gecko* Firefox/50.*
+Agent Mozilla/5.0 (Android 5.1; Mobile; rv:49.0.2) Gecko/49.0.2 Firefox/49.0.2
+ Matched by: Mozilla/5.0 (*Android*Mobile*) Gecko* Firefox/49.*
+Agent Mozilla/5.0 (Android 5.1; Mobile; rv:49.0) Gecko/49.0 Firefox/49.0
+ Matched by: Mozilla/5.0 (*Android*Mobile*) Gecko* Firefox/49.*
+Agent Mozilla/5.0 (Android 6.0.1; Mobile; rv:50.0) Gecko/50.0 Firefox/50.0
+ Matched by: Mozilla/5.0 (*Android*Mobile*) Gecko* Firefox/50.*
+Agent Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; Google Web Preview Analytics) Chrome/27.0.1453 Safari/537.36 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)
+ Matched by: *
+Agent Mozilla/5.0 (BlackBerry; U; BlackBerry 9900; en) AppleWebKit/534.11+ (KHTML, like Gecko) Version/7.1.0.346 Mobile Safari/534.11+
+ Matched by: *
+Agent Mozilla/5.0 (compatible)
+ Matched by: *
+Agent Mozilla/5.0 (compatible; AhrefsBot/5.1; +http://ahrefs.com/robot/)
+ Matched by: *
+Agent Mozilla/5.0 (compatible; archive.org_bot +http://www.archive.org/details/archive.org_bot)
+ Matched by: *
+Agent Mozilla/5.0 (compatible; archive.org_bot; Wayback Machine Live Record; +http://archive.org/details/archive.org_bot)
+ Matched by: *
+Agent Mozilla/5.0 (compatible; Baiduspider/2.0; +http://www.baidu.com/search/spider.html)
+ Matched by: *
+Agent Mozilla/5.0 (compatible; bingbot/2.0; +http://www.bing.com/bingbot.htm)
+ Matched by: *
+Agent Mozilla/5.0 (compatible; BLEXBot/1.0; +http://webmeup-crawler.com/)
+ Matched by: *
+Agent Mozilla/5.0 (compatible; Cliqzbot/1.0 +http://cliqz.com/company/cliqzbot)
+ Matched by: *
+Agent Mozilla/5.0 (compatible; coccocbot-image/1.0; +http://help.coccoc.com/searchengine)
+ Matched by: *
+Agent Mozilla/5.0 (compatible; coccocbot-web/1.0; +http://help.coccoc.com/searchengine)
+ Matched by: *
+Agent Mozilla/5.0+(compatible;+CukBot;+Not+a+spammer;+++https://www.companiesintheuk.co.uk/bot.html)
+ Matched by: *
+Agent Mozilla/5.0 (compatible; Dataprovider/6.101; +https://www.dataprovider.com/)
+ Matched by: *
+Agent Mozilla/5.0 (compatible; Dataprovider; https://www.dataprovider.com/spider/)
+ Matched by: *
+Agent Mozilla/5.0 (compatible; DeuSu/5.0.2; +https://deusu.de/robot.html)
+ Matched by: *
+Agent Mozilla/5.0 (compatible; DotBot/1.1; http://www.opensiteexplorer.org/dotbot, help@moz.com)
+ Matched by: *
+Agent Mozilla/5.0 (compatible; DuckDuckGo-Favicons-Bot/1.0; +http://duckduckgo.com)
+ Matched by: *
+Agent Mozilla/5.0 (compatible; Exabot/3.0; +http://www.exabot.com/go/robot)
+ Matched by: *
+Agent Mozilla/5.0 (compatible; Gluten Free Crawler/1.0; +http://glutenfreepleasure.com/)
+ Matched by: *
+Agent Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)
+ Matched by: *
+Agent Mozilla/5.0 (compatible; Google-Site-Verification/1.0)
+ Matched by: *
+Agent Mozilla/5.0 (compatible; GrapeshotCrawler/2.0; +http://www.grapeshot.co.uk/crawler.php)
+ Matched by: *
+Agent Mozilla/5.0 (compatible; inoreader.com-like FeedFetcher-Google)
+ Matched by: *
+Agent Mozilla/5.0 (compatible; Linux x86_64; Mail.RU_Bot/2.0; +http://go.mail.ru/help/robots)
+ Matched by: *
+Agent Mozilla/5.0 (compatible; MegaIndex.ru/2.0; +http://megaindex.com/crawler)
+ Matched by: *
+Agent Mozilla/5.0 (compatible; MJ12bot/v1.4.5; http://www.majestic12.co.uk/bot.php?+)
+ Matched by: *
+Agent Mozilla/5.0 (compatible; MJ12bot/v1.4.6; http://mj12bot.com/)
+ Matched by: *
+Agent Mozilla/5.0 (compatible; MJ12bot/v1.4.7; http://mj12bot.com/)
+ Matched by: *
+Agent Mozilla/5.0 (compatible; MojeekBot/0.6; +https://www.mojeek.com/bot.html)
+ Matched by: *
+Agent Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.1; Trident/6.0)
+ Matched by: Mozilla/5.0 (compatible; MSIE 10.0*Windows NT 6.1*Trident/6.0*)*
+Agent Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.1; Trident/6.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; InfoPath.2; .NET4.0C; .NET4.0E; AskTbORJ/5.14.1.20007; BOIE9;NLNL)
+ Matched by: Mozilla/5.0 (compatible; MSIE 10.0*Windows NT 6.1*Trident/6.0*)*
+Agent Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.1; WOW64; Trident/6.0)
+ Matched by: Mozilla/5.0 (compatible; MSIE 10.0*Windows NT 6.1*Trident/6.0*)*
+Agent Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.1; WOW64; Trident/6.0; SLCC2; .NET CLR 2.0.50727; Media Center PC 6.0; InfoPath.2; .NET4.0C; .NET4.0E; AskTbORJ/5.15.14.29495; .NET CLR 3.5.30729; .NET CLR 3.0.30729; .NET CLR 1.1.4322; EIE10;ENAUMSN)
+ Matched by: Mozilla/5.0 (compatible; MSIE 10.0*Windows NT 6.1*Trident/6.0*)*
+Agent Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.1; WOW64; Trident/6.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C; .NET4.0E; AskTbFXTV5/5.15.2.23037)
+ Matched by: Mozilla/5.0 (compatible; MSIE 10.0*Windows NT 6.1*Trident/6.0*)*
+Agent Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.2; WOW64; Trident/6.0)
+ Matched by: Mozilla/5.0 (compatible; MSIE 10.0*Windows NT 6.2*Trident/6.0*)*
+Agent Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.2; WOW64; Trident/6.0; .NET4.0E; .NET4.0C; InfoPath.3; .NET CLR 3.5.30729; .NET CLR 2.0.50727; .NET CLR 3.0.30729; MS-RTC LM 8)
+ Matched by: Mozilla/5.0 (compatible; MSIE 10.0*Windows NT 6.2*Trident/6.0*)*
+Agent Mozilla/5.0 (compatible, MSIE 11, Windows NT 6.3; Trident/7.0; rv:11.0) like Gecko
+ Matched by: Mozilla/5.0 (*Windows NT 6.3*Trident/7.0*rv:11.0*
+Agent Mozilla/5.0 (compatible; MSIE 6.0; Windows NT 5.1)
+ Matched by: Mozilla/5.0 (compatible; MSIE 6.0*; *Windows*
+Agent Mozilla/5.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 2.0.50727)
+ Matched by: Mozilla/5.0 (compatible; MSIE 6.0*; *Windows*
+Agent Mozilla/5.0 (compatible; MSIE 8.0; Windows NT 6.1; Trident/4.0; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; .NET CLR 1.0.3705; .NET CLR 1.1.4322)
+ Matched by: Mozilla/5.0 (compatible; MSIE 8.0*; *Windows NT 6.1*Trident/4.0*
+Agent Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.0; Trident/5.0; NP06)
+ Matched by: Mozilla/5.0 (compatible; MSIE 9.0*; *Windows NT 6.0*Trident/5.0*
+Agent Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.0; Trident/5.0; SLCC1; .NET CLR 2.0.50727; Media Center PC 5.0; InfoPath.2; .NET CLR 3.5.30729; .NET CLR 3.0.30729; .NET4.0C; .NET4.0E)
+ Matched by: Mozilla/5.0 (compatible; MSIE 9.0*; *Windows NT 6.0*Trident/5.0*
+Agent Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.0; Trident/5.0; SLCC1; .NET CLR 2.0.50727; Media Center PC 5.0; MDDC; .NET CLR 3.5.30729; .NET CLR 3.0.30729; .NET4.0C; .NET4.0E)
+ Matched by: Mozilla/5.0 (compatible; MSIE 9.0*; *Windows NT 6.0*Trident/5.0*
+Agent 'Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0)'
+ Matched by: *
+Agent Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0)
+ Matched by: Mozilla/5.0 (compatible; MSIE 9.0*; *Windows NT 6.1*Trident/5.0*
+Agent Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0); 360Spider
+ Matched by: Mozilla/5.0 (compatible; MSIE 9.0*; *Windows NT 6.1*Trident/5.0*
+Agent Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; .NET4.0C; .NET4.0E; MS-RTC LM 8; SFIEAUTH1)
+ Matched by: Mozilla/5.0 (compatible; MSIE 9.0*; *Windows NT 6.1*Trident/5.0*
+Agent Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0; Trident/5.0)
+ Matched by: Mozilla/5.0 (compatible; MSIE 9.0*; *Windows NT 6.1*Trident/5.0*
+Agent Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64; Trident/5.0)
+ Matched by: Mozilla/5.0 (compatible; MSIE 9.0*; *Windows NT 6.1*Trident/5.0*
+Agent Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64; Trident/5.0) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.172 Safari/537.22
+ Matched by: Mozilla/5.0 (*Windows NT 6.1*) AppleWebKit/* (KHTML* like Gecko) Chrome/*Safari/*
+Agent Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64; Trident/5.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; InfoPath.3; .NET4.0C; .NET4.0E; .NET CLR 1.1.4322; MS-RTC LM 8)
+ Matched by: Mozilla/5.0 (compatible; MSIE 9.0*; *Windows NT 6.1*Trident/5.0*
+Agent Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64; Trident/5.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C; AlexaToolbar/amzni-3.0; .NET4.0E)
+ Matched by: Mozilla/5.0 (compatible; MSIE 9.0*; *Windows NT 6.1*Trident/5.0*
+Agent Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64; Trident/5.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C; .NET4.0E; HPDTDF; InfoPath.3)
+ Matched by: Mozilla/5.0 (compatible; MSIE 9.0*; *Windows NT 6.1*Trident/5.0*
+Agent Mozilla/5.0 (compatible; MSIE or Firefox mutant;) Daum 4.1
+ Matched by: *
+Agent Mozilla/5.0 (compatible; NetcraftSurveyAgent/1.0; +info@netcraft.com)
+ Matched by: *
+Agent Mozilla/5.0 (compatible; Nmap Scripting Engine; http://nmap.org/book/nse.html)
+ Matched by: *
+Agent Mozilla/5.0 (compatible; oBot/2.3.1; http://filterdb.iss.net/crawler/)
+ Matched by: *
+Agent Mozilla/5.0 (compatible; Qwantify/2.3w; +https://www.qwant.com/)/2.3w
+ Matched by: *
+Agent Mozilla/5.0 (compatible; SemrushBot/1.1~bl; +http://www.semrush.com/bot.html)
+ Matched by: *
+Agent Mozilla/5.0 (compatible; SEOkicks-Robot; +http://www.seokicks.de/robot.html)
+ Matched by: *
+Agent Mozilla/5.0 (compatible; SeznamBot/3.2; +http://napoveda.seznam.cz/en/seznambot-intro/)
+ Matched by: *
+Agent Mozilla/5.0 (compatible; SiteExplorer/1.1b; +http://siteexplorer.info/Backlink-Checker-Spider/)
+ Matched by: *
+Agent Mozilla/5.0 (compatible; Sonic/1.0; http://www.yama.info.waseda.ac.jp/~crawler/info.html)
+ Matched by: *
+Agent Mozilla/5.0 (compatible; spbot/5.0.3; +http://OpenLinkProfiler.org/bot )
+ Matched by: *
+Agent Mozilla/5.0 (compatible; SurdotlyBot/1.0; +http://sur.ly/bot.html)
+ Matched by: *
+Agent Mozilla/5.0 (compatible; Uptimebot/1.0; +http://www.uptime.com/uptimebot)
+ Matched by: *
+Agent Mozilla/5.0 (compatible; Wappalyzer; +https://github.com/AliasIO/Wappalyzer)
+ Matched by: *
+Agent Mozilla/5.0 (compatible; XoviBot/2.0; +http://www.xovibot.net/)
+ Matched by: *
+Agent Mozilla/5.0 (compatible; Yahoo! Slurp; http://help.yahoo.com/help/us/ysearch/slurp)
+ Matched by: *
+Agent Mozilla/5.0 (compatible; YandexBot/3.0; +http://yandex.com/bots)
+ Matched by: *
+Agent Mozilla/5.0 (compatible;YoudaoFeedFetcher/1.0;http://www.youdao.com/help/reader/faq/topic006/;1 subscribers;)
+ Matched by: *
+Agent Mozilla/5.0 (iPad; CPU OS 10_1_1 like Mac OS X) AppleWebKit/602.2.14 (KHTML, like Gecko) Version/10.0 Mobile/14B100 Safari/602.1
+ Matched by: Mozilla/5.0 (iPad*CPU*OS* like Mac OS X*)*AppleWebKit/*(*KHTML* like Gecko*)*Version/*Safari/*
+Agent Mozilla/5.0 (iPad; CPU OS 10_1_1 like Mac OS X) AppleWebKit/602.2.14 (KHTML, like Gecko) Version/10.0 Mobile/14B150 Safari/602.1
+ Matched by: Mozilla/5.0 (iPad*CPU*OS* like Mac OS X*)*AppleWebKit/*(*KHTML* like Gecko*)*Version/*Safari/*
+Agent Mozilla/5.0 (iPad; CPU OS 10_1 like Mac OS X) AppleWebKit/602.2.14 (KHTML, like Gecko) Version/10.0 Mobile/14B72 Safari/602.1
+ Matched by: Mozilla/5.0 (iPad*CPU*OS* like Mac OS X*)*AppleWebKit/*(*KHTML* like Gecko*)*Version/*Safari/*
+Agent Mozilla/5.0 (iPad; CPU OS 10_2 like Mac OS X) AppleWebKit/602.3.12 (KHTML, like Gecko) OPiOS/14.0.0.104835 Mobile/14C92 Safari/9537.53
+ Matched by: Mozilla/5.0 (iPad*CPU*OS* like Mac OS X*)*AppleWebKit/*(*KHTML* like Gecko*)*Mobile*
+Agent Mozilla/5.0 (iPad; CPU OS 9_3_5 like Mac OS X) AppleWebKit/601.1.46 (KHTML, like Gecko) Version/9.0 Mobile/13G36 Safari/601.1
+ Matched by: Mozilla/5.0 (iPad*CPU*OS* like Mac OS X*)*AppleWebKit/*(*KHTML* like Gecko*)*Version/9.0*Safari/*
+Agent Mozilla/5.0 (iPhone; CPU iPhone OS 10_0_2 like Mac OS X) AppleWebKit/602.1.50 (KHTML, like Gecko) Version/10.0 Mobile/14A456 Safari/602.1
+ Matched by: Mozilla/5.0 (iPhone*CPU*OS* like Mac OS X*)*AppleWebKit/*(*KHTML* like Gecko*)*Version/*Safari/*
+Agent Mozilla/5.0 (iPhone; CPU iPhone OS 10_0 like Mac OS X) AppleWebKit/602.1.38 (KHTML, like Gecko) Version/10.0 Mobile/14A300 Safari/602.1
+ Matched by: Mozilla/5.0 (iPhone*CPU*OS* like Mac OS X*)*AppleWebKit/*(*KHTML* like Gecko*)*Version/*Safari/*
+Agent Mozilla/5.0 (iPhone; CPU iPhone OS 10_1_1 like Mac OS X) AppleWebKit/602.2.14 (KHTML, like Gecko) Version/10.0 Mobile/14B100 Safari/602.1
+ Matched by: Mozilla/5.0 (iPhone*CPU*OS* like Mac OS X*)*AppleWebKit/*(*KHTML* like Gecko*)*Version/*Safari/*
+Agent Mozilla/5.0 (iPhone; CPU iPhone OS 10_1_1 like Mac OS X) AppleWebKit/602.2.14 (KHTML, like Gecko) Version/10.0 Mobile/14B150 Safari/602.1
+ Matched by: Mozilla/5.0 (iPhone*CPU*OS* like Mac OS X*)*AppleWebKit/*(*KHTML* like Gecko*)*Version/*Safari/*
+Agent Mozilla/5.0 (iPhone; CPU iPhone OS 10_1 like Mac OS X) AppleWebKit/602.2.8 (KHTML, like Gecko) OPiOS/15.00.00000 Mobile/14B55c Safari/7534.48.3
+ Matched by: Mozilla/5.0*(iPhone*CPU*OS* like Mac OS X*)*AppleWebKit/*(*KHTML* like Gecko*)*Mobile*
+Agent Mozilla/5.0 (iPhone; CPU iPhone OS 10_2 like Mac OS X) AppleWebKit/602.3.12 (KHTML, like Gecko) Version/10.0 Mobile/14C92 Safari/602.1
+ Matched by: Mozilla/5.0 (iPhone*CPU*OS* like Mac OS X*)*AppleWebKit/*(*KHTML* like Gecko*)*Version/*Safari/*
+Agent Mozilla/5.0 (iPhone; CPU iPhone OS 5_0 like Mac OS X) AppleWebKit/534.46 (KHTML, like Gecko) Version/5.1 Mobile/9A334 Safari/7534.48.3
+ Matched by: Mozilla/5.0 (iPhone*CPU*OS* like Mac OS X*)*AppleWebKit/*(*KHTML* like Gecko*)*Version/*Safari/*
+Agent Mozilla/5.0 (iPhone; CPU iPhone OS 6_0 like Mac OS X) AppleWebKit/536.26 (KHTML, like Gecko) Version/6.0 Mobile/10A5376e Safari/8536.25
+ Matched by: Mozilla/5.0 (iPhone*CPU*OS* like Mac OS X*)*AppleWebKit/*(*KHTML* like Gecko*)*Version/6.0*Safari/*
+Agent Mozilla/5.0 (iPhone; CPU iPhone OS 7_0 like Mac OS X) AppleWebKit/537.51.1 (KHTML, like Gecko) Version/7.0 Mobile/11A465 Safari/9537.53 BingPreview/1.0b
+ Matched by: Mozilla/5.0 (iPhone*CPU*OS* like Mac OS X*)*AppleWebKit/*(*KHTML* like Gecko*)*Version/7.0*Safari/*
+Agent Mozilla/5.0 (iPhone; CPU iPhone OS 7_0 like Mac OS X) AppleWebKit/537.51.1 (KHTML, like Gecko) Version/7.0 Mobile/11A465 Safari/9537.53 (compatible; bingbot/2.0; +http://www.bing.com/bingbot.htm)
+ Matched by: Mozilla/5.0 (iPhone*CPU*OS* like Mac OS X*)*AppleWebKit/*(*KHTML* like Gecko*)*Version/7.0*Safari/*
+Agent Mozilla/5.0 (iPhone; CPU iPhone OS 8_0 like Mac OS X) AppleWebKit/600.1.3 (KHTML, like Gecko) Version/8.0 Mobile/12A4345d Safari/600.1.4
+ Matched by: Mozilla/5.0 (iPhone*CPU*OS* like Mac OS X*)*AppleWebKit/*(*KHTML* like Gecko*)*Version/8.0*Safari/*
+Agent Mozilla/5.0 (iPhone; CPU iPhone OS 8_1_3 like Mac OS X) AppleWebKit/600.1.4 (KHTML, like Gecko) Version/8.0 Mobile/12B466 Safari/600.1.4
+ Matched by: Mozilla/5.0 (iPhone*CPU*OS* like Mac OS X*)*AppleWebKit/*(*KHTML* like Gecko*)*Version/8.0*Safari/*
+Agent Mozilla/5.0 (iPhone; CPU iPhone OS 8_3 like Mac OS X) AppleWebKit/600.1.4 (KHTML, like Gecko) Version/8.0 Mobile/12F70 Safari/600.1.4
+ Matched by: Mozilla/5.0 (iPhone*CPU*OS* like Mac OS X*)*AppleWebKit/*(*KHTML* like Gecko*)*Version/8.0*Safari/*
+Agent Mozilla/5.0 (iPhone; CPU iPhone OS 9_3_3 like Mac OS X) AppleWebKit/601.1.46 (KHTML, like Gecko) Version/9.0 Mobile/13G34 Safari/601.1
+ Matched by: Mozilla/5.0 (iPhone*CPU*OS* like Mac OS X*)*AppleWebKit/*(*KHTML* like Gecko*)*Version/9.0*Safari/*
+Agent Mozilla/5.0 (iPhone; CPU iPhone OS 9_3_3 like Mac OS X) AppleWebKit/601.1.46 (KHTML, like Gecko) Version/9.0 Mobile/13G34 Safari/601.1 BMID/E679DA49AC
+ Matched by: Mozilla/5.0 (iPhone*CPU*OS* like Mac OS X*)*AppleWebKit/*(*KHTML* like Gecko*)*Version/9.0*Safari/*
+Agent Mozilla/5.0 (iPhone; U; CPU iPhone OS 3_0 like Mac OS X; en-us) AppleWebKit/528.18 (KHTML, like Gecko) Version/4.0 Mobile/7A341 Safari/528.161481015402482
+ Matched by: Mozilla/5.0 (iPhone*CPU*OS* like Mac OS X*)*AppleWebKit/*(*KHTML* like Gecko*)*Version/*Safari/*
+Agent Mozilla/5.0 (Linux; Android 4.05; Galaxy Nexus Build/IMM76B) AppleWebKit/535.25 (KHTML, like Gecko) Chrome/17.0.1025.133 Mobile Safari/536.19
+ Matched by: Mozilla/5.0 (*Linux*Android*) AppleWebKit/* (KHTML, like Gecko*) Chrome/*Safari/*
+Agent Mozilla/5.0 (Linux; Android 4.1.2; GT-S5310B Build/JZO54K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/53.0.2785.124 Mobile Safari/537.36
+ Matched by: Mozilla/5.0 (*Linux*Android*) AppleWebKit/* (KHTML* like Gecko) Chrome/53.*Safari/*
+Agent Mozilla/5.0 (Linux; Android 4.2.2; GT-S7580 Build/JDQ39) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/34.0.1847.114 Mobile Safari/537.36
+ Matched by: Mozilla/5.0 (*Linux*Android*) AppleWebKit/* (KHTML, like Gecko*) Chrome/*Safari/*
+Agent Mozilla/5.0 (Linux; Android 4.3; C5303 Build/12.1.A.1.205) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.85 Mobile Safari/537.36
+ Matched by: Mozilla/5.0 (*Linux*Android*) AppleWebKit/* (KHTML* like Gecko) Chrome/54.*Safari/*
+Agent Mozilla/5.0 (Linux; Android 4.4.2; de-de; SAMSUNG GT-I9205 Build/KOT49H) AppleWebKit/537.36 (KHTML, like Gecko) Version/1.5 Chrome/28.0.1500.94 Mobile Safari/537.36
+ Matched by: Mozilla/5.0 (*Linux*Android* Build/*) AppleWebKit/* (KHTML,*like Gecko*) Version/1.5*Chrome*Safari*
+Agent Mozilla/5.0 (Linux; Android 4.4.2; GT-I9195 Build/KOT49H) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.98 Mobile Safari/537.36
+ Matched by: Mozilla/5.0 (*Linux*Android*) AppleWebKit/* (KHTML* like Gecko) Chrome/52.*Safari/*
+Agent Mozilla/5.0 (Linux; Android 4.4.2; GT-P5210 Build/KOT49H) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.68 Safari/537.36
+ Matched by: Mozilla/5.0 (*Linux*Android*) AppleWebKit/* (KHTML* like Gecko) Chrome/54.*Safari/*
+Agent Mozilla/5.0 (Linux; Android 4.4.2; HP 7 VoiceTab Build/KOT49H) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2623.105 Safari/537.36
+ Matched by: Mozilla/5.0 (*Linux*Android*) AppleWebKit/* (KHTML* like Gecko) Chrome/49.*Safari/*
+Agent Mozilla/5.0 (Linux; Android 4.4.2; LENNY Build/KOT49H) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/30.0.0.0 Mobile Safari/537.36
+ Matched by: Mozilla/5.0 (*Linux*Android* Build/*) AppleWebKit/* (KHTML,*like Gecko*) Version/4.0*Chrome*Safari*
+Agent Mozilla/5.0 (Linux; Android 4.4.2; LG-V500 Build/KOT49I.V50020f) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.85 Safari/537.36
+ Matched by: Mozilla/5.0 (*Linux*Android*) AppleWebKit/* (KHTML* like Gecko) Chrome/54.*Safari/*
+Agent Mozilla/5.0 (Linux; Android 4.4.2; Panasonic ELUGA Z Build/KOT49H) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.85 Mobile Safari/537.36
+ Matched by: Mozilla/5.0 (*Linux*Android*) AppleWebKit/* (KHTML* like Gecko) Chrome/54.*Safari/*
+Agent Mozilla/5.0 (Linux; Android 4.4.2; RAINBOW Build/KOT49H) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/30.0.0.0 Mobile Safari/537.36
+ Matched by: Mozilla/5.0 (*Linux*Android* Build/*) AppleWebKit/* (KHTML,*like Gecko*) Version/4.0*Chrome*Safari*
+Agent Mozilla/5.0 (Linux; Android 4.4.2; SM-T230 Build/KOT49H) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.85 Safari/537.36
+ Matched by: Mozilla/5.0 (*Linux*Android*) AppleWebKit/* (KHTML* like Gecko) Chrome/54.*Safari/*
+Agent Mozilla/5.0 (Linux; Android 4.4.2; SUNSET2 Build/KOT49H) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.91 Mobile Safari/537.36
+ Matched by: Mozilla/5.0 (*Linux*Android*) AppleWebKit/* (KHTML* like Gecko) Chrome/55.*Safari/*
+Agent Mozilla/5.0 (Linux; Android 5.0.1; ALE-L02 Build/HuaweiALE-L02) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.85 Mobile Safari/537.36
+ Matched by: Mozilla/5.0 (*Linux*Android*) AppleWebKit/* (KHTML* like Gecko) Chrome/54.*Safari/*
+Agent Mozilla/5.0 (Linux; Android 5.0.1; GT-I9295 Build/LRX22C) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.85 Mobile Safari/537.36
+ Matched by: Mozilla/5.0 (*Linux*Android*) AppleWebKit/* (KHTML* like Gecko) Chrome/54.*Safari/*
+Agent Mozilla/5.0 (Linux; Android 5.0.1; GT-I9515 Build/LRX22C) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.85 Mobile Safari/537.36
+ Matched by: Mozilla/5.0 (*Linux*Android*) AppleWebKit/* (KHTML* like Gecko) Chrome/54.*Safari/*
+Agent Mozilla/5.0 (Linux; Android 5.0.1; SAMSUNG GT-I9505 Build/LRX22C) AppleWebKit/537.36 (KHTML, like Gecko) SamsungBrowser/4.0 Chrome/44.0.2403.133 Mobile Safari/537.36
+ Matched by: *
+Agent Mozilla/5.0 (Linux; Android 5.0.2; Lenovo TAB 2 A8-50LC Build/LRX22G) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.93 Safari/537.36
+ Matched by: Mozilla/5.0 (*Linux*Android*) AppleWebKit/* (KHTML, like Gecko*) Chrome/*Safari/*
+Agent Mozilla/5.0 (Linux; Android 5.0.2; LG-D693TR Build/LRX22G) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/34.0.1847.118 Mobile Safari/537.36
+ Matched by: Mozilla/5.0 (*Linux*Android* Build/*) AppleWebKit/* (KHTML,*like Gecko*) Version/4.0*Chrome*Safari*
+Agent Mozilla/5.0 (Linux; Android 5.0; Lenovo K50-t5 Build/LRX21M) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.85 Mobile Safari/537.36
+ Matched by: Mozilla/5.0 (*Linux*Android*) AppleWebKit/* (KHTML* like Gecko) Chrome/54.*Safari/*
+Agent Mozilla/5.0 (Linux; Android 5.0; SAMSUNG SM-N9005 Build/LRX21V) AppleWebKit/537.36 (KHTML, like Gecko) SamsungBrowser/4.0 Chrome/44.0.2403.133 Mobile Safari/537.36
+ Matched by: *
+Agent Mozilla/5.0 (Linux; Android 5.0; SM-N900V Build/LRX21V) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.85 Mobile Safari/537.36
+ Matched by: Mozilla/5.0 (*Linux*Android*) AppleWebKit/* (KHTML* like Gecko) Chrome/54.*Safari/*
+Agent Mozilla/5.0 (Linux; Android 5.0; VOYAGER2_DG310 Build/LRX21M) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/37.0.0.0 Mobile Safari/537.36
+ Matched by: Mozilla/5.0 (*Linux*Android* Build/*) AppleWebKit/* (KHTML,*like Gecko*) Version/4.0*Chrome*Safari*
+Agent Mozilla/5.0 (Linux; Android 5.1.1; Redmi 3 Build/LMY47V; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/54.0.2840.68 Mobile Safari/537.36
+ Matched by: Mozilla/5.0 (*Linux*Android* Build/*) AppleWebKit/* (KHTML,*like Gecko*) Version/4.0*Chrome*Safari*
+Agent Mozilla/5.0 (Linux; Android 5.1; Lenovo P70-A Build/LMY47D) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.91 Mobile Safari/537.36
+ Matched by: Mozilla/5.0 (*Linux*Android*) AppleWebKit/* (KHTML* like Gecko) Chrome/55.*Safari/*
+Agent Mozilla/5.0 (Linux; Android 5.1; LG-X210 Build/LMY47I) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.68 Mobile Safari/537.36
+ Matched by: Mozilla/5.0 (*Linux*Android*) AppleWebKit/* (KHTML* like Gecko) Chrome/54.*Safari/*
+Agent Mozilla/5.0 (Linux; Android 6.0.1; Nexus 5X Build/MMB29P) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2272.96 Mobile Safari/537.36 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)
+ Matched by: Mozilla/5.0 (*Linux*Android*) AppleWebKit/* (KHTML, like Gecko*) Chrome/*Safari/*
+Agent Mozilla/5.0 (Linux; Android 6.0.1; SAMSUNG SM-A510F/A510FXXS3BPI9 Build/MMB29K) AppleWebKit/537.36 (KHTML, like Gecko) SamsungBrowser/4.0 Chrome/44.0.2403.133 Mobile Safari/537.36
+ Matched by: *
+Agent Mozilla/5.0 (Linux; Android 6.0.1; SAMSUNG SM-G900F Build/MMB29M) AppleWebKit/537.36 (KHTML, like Gecko) SamsungBrowser/4.0 Chrome/44.0.2403.133 Mobile Safari/537.36
+ Matched by: *
+Agent Mozilla/5.0 (Linux; Android 6.0.1; SAMSUNG SM-J700T1 Build/MMB29K) AppleWebKit/537.36 (KHTML, like Gecko) SamsungBrowser/4.0 Chrome/44.0.2403.133 Mobile Safari/537.36
+ Matched by: *
+Agent Mozilla/5.0 (Linux; Android 6.0.1; SM-G920F Build/MMB29K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.85 Mobile Safari/537.36
+ Matched by: Mozilla/5.0 (*Linux*Android*) AppleWebKit/* (KHTML* like Gecko) Chrome/54.*Safari/*
+Agent Mozilla/5.0 (Linux; Android 6.0.1; SM-G920F Build/MMB29K; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/54.0.2840.85 Mobile Safari/537.36 [FB_IAB/MESSENGER;FBAV/99.0.0.20.136;]
+ Matched by: Mozilla/5.0 (*Linux*Android* Build/*) AppleWebKit/* (KHTML,*like Gecko*) Version/4.0*Chrome*Safari*
+Agent Mozilla/5.0 (Linux; Android 6.0.1; SM-N920I Build/MMB29K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.85 Mobile Safari/537.36
+ Matched by: Mozilla/5.0 (*Linux*Android*) AppleWebKit/* (KHTML* like Gecko) Chrome/54.*Safari/*
+Agent Mozilla/5.0 (Linux; Android 6.0.1; SM-N920P Build/MMB29K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.81 Mobile Safari/537.36
+ Matched by: Mozilla/5.0 (*Linux*Android*) AppleWebKit/* (KHTML* like Gecko) Chrome/51.*Safari/*
+Agent Mozilla/5.0 (Linux; Android 6.0; LG-H961N Build/MRA58K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.85 Mobile Safari/537.36
+ Matched by: Mozilla/5.0 (*Linux*Android*) AppleWebKit/* (KHTML* like Gecko) Chrome/54.*Safari/*
+Agent Mozilla/5.0 (Linux; U; Android 2.2.1; en-us; Nexus One Build/FRG83) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1
+ Matched by: Mozilla/5.0 (*Linux*Android* Build/*)*AppleWebKit/*(*KHTML,*like Gecko*)*Version/4.0*Safari*
+Agent Mozilla/5.0 (Linux; U; Android 2.2.2; ru-ru; HTC Desire Build/FRG83G) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1
+ Matched by: Mozilla/5.0 (*Linux*Android* Build/*)*AppleWebKit/*(*KHTML,*like Gecko*)*Version/4.0*Safari*
+Agent Mozilla/5.0 (Linux; U; Android 4.2.2; de-de; Cynus F4 Build/JDQ39) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30
+ Matched by: Mozilla/5.0 (*Linux*Android* Build/*)*AppleWebKit/*(*KHTML,*like Gecko*)*Version/4.0*Safari*
+Agent Mozilla/5.0 (Linux; U; Android 4.3; de-de; HUAWEI Y530-U00 Build/HuaweiY530-U00) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30
+ Matched by: Mozilla/5.0 (*Linux*Android* Build/*)*AppleWebKit/*(*KHTML,*like Gecko*)*Version/4.0*Safari*
+Agent Mozilla/5.0 (Linux; U; Android 4.4.4; en-US; Coolpad 8297L-I00 Build/KTU84P) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 UCBrowser/11.0.5.850 U3/0.8.0 Mobile Safari/534.30
+ Matched by: Mozilla/5.0 (*Linux*Android* Build/*)*AppleWebKit/*(*KHTML,*like Gecko*)*Version/4.0*Safari*
+Agent Mozilla/5.0 (Linux; U; Android 5.0.2; zh-CN; Redmi Note 3 Build/LRX22G) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 OPR/11.2.3.102637 Mobile Safari/537.36
+ Matched by: Mozilla/5.0 (*Linux*Android* Build/*)*AppleWebKit/*(*KHTML,*like Gecko*)*Version/4.0*Safari*
+Agent Mozilla/5.0 (Linux; U; Linux Ventana; ru-ru; Transformer TF101 Build/HTK75) AppleWebKit/534.13 (KHTML, like Gecko) Chrome/8.0 Safari/534.13
+ Matched by: Mozilla/5.0 (*Linux*) AppleWebKit/* (KHTML* like Gecko) Chrome/*Safari/*
+Agent Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.95 Safari/537.36
+ Matched by: Mozilla/5.0 (*Mac OS X*) AppleWebKit/* (KHTML* like Gecko) Chrome/*Safari/*
+Agent Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.95 Safari/412982
+ Matched by: Mozilla/5.0 (*Mac OS X*) AppleWebKit/* (KHTML* like Gecko) Chrome/*Safari/*
+Agent Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.95 Safari/537.36
+ Matched by: Mozilla/5.0 (*Mac OS X*) AppleWebKit/* (KHTML* like Gecko) Chrome/*Safari/*
+Agent Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.99 Safari/537.36
+ Matched by: Mozilla/5.0 (*Mac OS X*) AppleWebKit/* (KHTML* like Gecko) Chrome/*Safari/*
+Agent Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/40.0.2214.93 Safari/537.36
+ Matched by: Mozilla/5.0 (*Mac OS X*) AppleWebKit/* (KHTML* like Gecko) Chrome/*Safari/*
+Agent Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/48.0.2564.116 Safari/537.36
+ Matched by: Mozilla/5.0 (*Mac OS X*) AppleWebKit/* (KHTML* like Gecko) Chrome/48.*Safari/*
+Agent Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_1) AppleWebKit/600.2.5 (KHTML, like Gecko) Version/8.0.2 Safari/600.2.5
+ Matched by: Mozilla/5.0 (*Mac OS X*) AppleWebKit/* (KHTML* like Gecko) *Version/8.0* Safari/*
+Agent Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/42.0.2311.135 Safari/537.36
+ Matched by: Mozilla/5.0 (*Mac OS X*) AppleWebKit/* (KHTML* like Gecko) Chrome/*Safari/*
+Agent Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2272.89 Safari/537.36
+ Matched by: Mozilla/5.0 (*Mac OS X*) AppleWebKit/* (KHTML* like Gecko) Chrome/*Safari/*
+Agent Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/42.0.2311.135 Safari/537.36
+ Matched by: Mozilla/5.0 (*Mac OS X*) AppleWebKit/* (KHTML* like Gecko) Chrome/*Safari/*
+Agent Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/42.0.2311.152 Safari/537.36
+ Matched by: Mozilla/5.0 (*Mac OS X*) AppleWebKit/* (KHTML* like Gecko) Chrome/*Safari/*
+Agent Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/42.0.2311.90 Safari/537.36
+ Matched by: Mozilla/5.0 (*Mac OS X*) AppleWebKit/* (KHTML* like Gecko) Chrome/*Safari/*
+Agent Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/43.0.2357.65 Safari/537.36
+ Matched by: Mozilla/5.0 (*Mac OS X*) AppleWebKit/* (KHTML* like Gecko) Chrome/*Safari/*
+Agent Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/43.0.2357.81 Safari/537.36
+ Matched by: Mozilla/5.0 (*Mac OS X*) AppleWebKit/* (KHTML* like Gecko) Chrome/*Safari/*
+Agent Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/44.0.2403.89 Safari/537.36
+ Matched by: Mozilla/5.0 (*Mac OS X*) AppleWebKit/* (KHTML* like Gecko) Chrome/*Safari/*
+Agent Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.71 Safari/537.36
+ Matched by: Mozilla/5.0 (*Mac OS X*) AppleWebKit/* (KHTML* like Gecko) Chrome/54.*Safari/*
+Agent Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_3) AppleWebKit/600.5.17 (KHTML, like Gecko) Version/8.0.5 Safari/600.5.17
+ Matched by: Mozilla/5.0 (*Mac OS X*) AppleWebKit/* (KHTML* like Gecko) *Version/8.0* Safari/*
+Agent Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_3) AppleWebKit/600.6.3 (KHTML, like Gecko) Version/8.0.6 Safari/600.6.3
+ Matched by: Mozilla/5.0 (*Mac OS X*) AppleWebKit/* (KHTML* like Gecko) *Version/8.0* Safari/*
+Agent Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.71 Safari/537.36
+ Matched by: Mozilla/5.0 (*Mac OS X*) AppleWebKit/* (KHTML* like Gecko) Chrome/54.*Safari/*
+Agent Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.98 Safari/537.36
+ Matched by: Mozilla/5.0 (*Mac OS X*) AppleWebKit/* (KHTML* like Gecko) Chrome/54.*Safari/*
+Agent Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.75 Safari/537.36
+ Matched by: Mozilla/5.0 (*Mac OS X*) AppleWebKit/* (KHTML* like Gecko) Chrome/55.*Safari/*
+Agent Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_5) AppleWebKit/602.2.14 (KHTML, like Gecko)
+ Matched by: *
+Agent Mozilla/5.0 (Macintosh; Intel Mac OS X 10.10; rv:27.0) Gecko/20100101 Firefox/27.0
+ Matched by: Mozilla/5.0 (*Mac OS X*) Gecko* Firefox/*
+Agent Mozilla/5.0 (Macintosh; Intel Mac OS X 10.10; rv:29.0) Gecko/20100101 Firefox/29.0
+ Matched by: Mozilla/5.0 (*Mac OS X*) Gecko* Firefox/*
+Agent Mozilla/5.0 (Macintosh; Intel Mac OS X 10.10; rv:31.0) Gecko/20100101 Firefox/31.0
+ Matched by: Mozilla/5.0 (*Mac OS X*) Gecko* Firefox/31.0*
+Agent Mozilla/5.0 (Macintosh; Intel Mac OS X 10.10; rv:34.0) Gecko/20100101 Firefox/34.0
+ Matched by: Mozilla/5.0 (*Mac OS X*) Gecko* Firefox/34.0*
+Agent Mozilla/5.0 (Macintosh; Intel Mac OS X 10.10; rv:37.0) Gecko/20100101 Firefox/37.0
+ Matched by: Mozilla/5.0 (*Mac OS X*) Gecko* Firefox/37.0*
+Agent Mozilla/5.0 (Macintosh; Intel Mac OS X 10.10; rv:38.0) Gecko/20100101 Firefox/38.0
+ Matched by: Mozilla/5.0 (*Mac OS X*) Gecko* Firefox/38.0*
+Agent Mozilla/5.0 (Macintosh; Intel Mac OS X 10.10; rv:43.0) Gecko/20100101 Firefox/43.0
+ Matched by: Mozilla/5.0 (*Mac OS X*) Gecko* Firefox/43.0*
+Agent Mozilla/5.0 (Macintosh; Intel Mac OS X 10.10; rv:47.0) Gecko/20100101 Firefox/47.0
+ Matched by: Mozilla/5.0 (*Mac OS X*) Gecko* Firefox/47.0*
+Agent Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/43.0.2386.61 Safari/537.36
+ Matched by: Mozilla/5.0 (*Mac OS X*) AppleWebKit/* (KHTML* like Gecko) Chrome/*Safari/*
+Agent Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/48.0.2564.109 Safari/537.36
+ Matched by: Mozilla/5.0 (*Mac OS X*) AppleWebKit/* (KHTML* like Gecko) Chrome/48.*Safari/*
+Agent Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/48.0.2564.116 Safari/537.36
+ Matched by: Mozilla/5.0 (*Mac OS X*) AppleWebKit/* (KHTML* like Gecko) Chrome/48.*Safari/*
+Agent Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_3) AppleWebKit/601.4.4 (KHTML, like Gecko) Version/9.0.3 Safari/601.4.4
+ Matched by: Mozilla/5.0 (*Mac OS X*) AppleWebKit/* (KHTML* like Gecko) *Version/9.0* Safari/*
+Agent Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/50.0.2661.102 Safari/537.36
+ Matched by: Mozilla/5.0 (*Mac OS X*) AppleWebKit/* (KHTML* like Gecko) Chrome/50.*Safari/*
+Agent Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.71 Safari/537.36
+ Matched by: Mozilla/5.0 (*Mac OS X*) AppleWebKit/* (KHTML* like Gecko) Chrome/54.*Safari/*
+Agent Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.98 Safari/537.36
+ Matched by: Mozilla/5.0 (*Mac OS X*) AppleWebKit/* (KHTML* like Gecko) Chrome/54.*Safari/*
+Agent Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_4) AppleWebKit/601.5.17 (KHTML, like Gecko) Version/9.1 Safari/601.5.17
+ Matched by: Mozilla/5.0 (*Mac OS X*) AppleWebKit/* (KHTML* like Gecko) *Version/9.1* Safari/*
+Agent Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/50.0.2661.102 Safari/537.36
+ Matched by: Mozilla/5.0 (*Mac OS X*) AppleWebKit/* (KHTML* like Gecko) Chrome/50.*Safari/*
+Agent Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.71 Safari/537.36
+ Matched by: Mozilla/5.0 (*Mac OS X*) AppleWebKit/* (KHTML* like Gecko) Chrome/54.*Safari/*
+Agent Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.116 Safari/537.36
+ Matched by: Mozilla/5.0 (*Mac OS X*) AppleWebKit/* (KHTML* like Gecko) Chrome/52.*Safari/*
+Agent Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.82 Safari/537.36
+ Matched by: Mozilla/5.0 (*Mac OS X*) AppleWebKit/* (KHTML* like Gecko) Chrome/52.*Safari/*
+Agent Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.71 Safari/537.36
+ Matched by: Mozilla/5.0 (*Mac OS X*) AppleWebKit/* (KHTML* like Gecko) Chrome/54.*Safari/*
+Agent Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.98 Safari/537.36
+ Matched by: Mozilla/5.0 (*Mac OS X*) AppleWebKit/* (KHTML* like Gecko) Chrome/54.*Safari/*
+Agent Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2907.0 Safari/537.36
+ Matched by: Mozilla/5.0 (*Mac OS X*) AppleWebKit/* (KHTML* like Gecko) Chrome/*Safari/*
+Agent Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_6) AppleWebKit/601.7.7 (KHTML, like Gecko) Version/9.1.2 Safari/601.7.7
+ Matched by: Mozilla/5.0 (*Mac OS X*) AppleWebKit/* (KHTML* like Gecko) *Version/9.1* Safari/*
+Agent Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_6) AppleWebKit/602.1.43 (KHTML, like Gecko) Version/10.0 Safari/602.1.43
+ Matched by: Mozilla/5.0 (*Mac OS X*) AppleWebKit/* (KHTML* like Gecko) *Version/10.0* Safari/*
+Agent Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_6) AppleWebKit/602.1.50 (KHTML, like Gecko)
+ Matched by: *
+Agent Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_6) AppleWebKit/602.2.14 (KHTML, like Gecko)
+ Matched by: *
+Agent Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_6) AppleWebKit/602.2.14 (KHTML, like Gecko) Version/10.0.1 Safari/602.2.14
+ Matched by: Mozilla/5.0 (*Mac OS X*) AppleWebKit/* (KHTML* like Gecko) *Version/10.0* Safari/*
+Agent Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_6) AppleWebKit/602.3.12 (KHTML, like Gecko) Version/10.0.2 Safari/602.3.12
+ Matched by: Mozilla/5.0 (*Mac OS X*) AppleWebKit/* (KHTML* like Gecko) *Version/10.0* Safari/*
+Agent Mozilla/5.0 (Macintosh; Intel Mac OS X 10.11; rv:33.0) Gecko/20100101 Firefox/33.0
+ Matched by: Mozilla/5.0 (*Mac OS X*) Gecko* Firefox/33.0*
+Agent Mozilla/5.0 (Macintosh; Intel Mac OS X 10.11; rv:45.0) Gecko/20100101 Firefox/45.0
+ Matched by: Mozilla/5.0 (*Mac OS X*) Gecko* Firefox/45.0*
+Agent Mozilla/5.0 (Macintosh; Intel Mac OS X 10.11; rv:47.0) Gecko/20100101 Firefox/47.0
+ Matched by: Mozilla/5.0 (*Mac OS X*) Gecko* Firefox/47.0*
+Agent Mozilla/5.0 (Macintosh; Intel Mac OS X 10.11; rv:51.0) Gecko/20100101 Firefox/51.0
+ Matched by: Mozilla/5.0 (*Mac OS X*) Gecko* Firefox/*
+Agent Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.71 Safari/537.36
+ Matched by: Mozilla/5.0 (*Mac OS X*) AppleWebKit/* (KHTML* like Gecko) Chrome/54.*Safari/*
+Agent Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.98 Safari/537.36
+ Matched by: Mozilla/5.0 (*Mac OS X*) AppleWebKit/* (KHTML* like Gecko) Chrome/54.*Safari/*
+Agent Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.59 Safari/537.36
+ Matched by: Mozilla/5.0 (*Mac OS X*) AppleWebKit/* (KHTML* like Gecko) Chrome/54.*Safari/*
+Agent Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.71 Safari/537.36
+ Matched by: Mozilla/5.0 (*Mac OS X*) AppleWebKit/* (KHTML* like Gecko) Chrome/54.*Safari/*
+Agent Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.87 Safari/537.36
+ Matched by: Mozilla/5.0 (*Mac OS X*) AppleWebKit/* (KHTML* like Gecko) Chrome/54.*Safari/*
+Agent Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.98 Safari/537.36
+ Matched by: Mozilla/5.0 (*Mac OS X*) AppleWebKit/* (KHTML* like Gecko) Chrome/54.*Safari/*
+Agent Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.44 Safari/537.36
+ Matched by: Mozilla/5.0 (*Mac OS X*) AppleWebKit/* (KHTML* like Gecko) Chrome/55.*Safari/*
+Agent Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.75 Safari/537.36
+ Matched by: Mozilla/5.0 (*Mac OS X*) AppleWebKit/* (KHTML* like Gecko) Chrome/55.*Safari/*
+Agent Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36
+ Matched by: Mozilla/5.0 (*Mac OS X*) AppleWebKit/* (KHTML* like Gecko) Chrome/55.*Safari/*
+Agent Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_1) AppleWebKit/602.2.14 (KHTML, like Gecko)
+ Matched by: *
+Agent Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_1) AppleWebKit/602.2.14 (KHTML, like Gecko) Version/10.0.1 Safari/602.2.14
+ Matched by: Mozilla/5.0 (*Mac OS X*) AppleWebKit/* (KHTML* like Gecko) *Version/10.0* Safari/*
+Agent Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_1) AppleWebKit/603.1.10 (KHTML, like Gecko)
+ Matched by: *
+Agent Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_2) AppleWebKit/602.3.12 (KHTML, like Gecko) Version/10.0.2 Safari/602.3.12
+ Matched by: Mozilla/5.0 (*Mac OS X*) AppleWebKit/* (KHTML* like Gecko) *Version/10.0* Safari/*
+Agent Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12) AppleWebKit/602.1.50 (KHTML, like Gecko)
+ Matched by: *
+Agent Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12) AppleWebKit/602.1.50 (KHTML, like Gecko) Version/10.0 Safari/602.1.50
+ Matched by: Mozilla/5.0 (*Mac OS X*) AppleWebKit/* (KHTML* like Gecko) *Version/10.0* Safari/*
+Agent Mozilla/5.0 (Macintosh; Intel Mac OS X 10.12; rv:49.0) Gecko/20100101 Firefox/49.0
+ Matched by: Mozilla/5.0 (*Mac OS X*) Gecko* Firefox/49.0*
+Agent Mozilla/5.0 (Macintosh; Intel Mac OS X 10.12; rv:50.0) Gecko/20100101 Firefox/50.0
+ Matched by: Mozilla/5.0 (*Mac OS X*) Gecko* Firefox/50.0*
+Agent Mozilla/5.0 (Macintosh; Intel Mac OS X 10_6_8) AppleWebKit/534.59.10 (KHTML, like Gecko) Version/5.1.9 Safari/534.59.10
+ Matched by: Mozilla/5.0 (*Mac OS X*) AppleWebKit/* (KHTML* like Gecko) *Version/* Safari/*
+Agent Mozilla/5.0 (Macintosh; Intel Mac OS X 10_6_8) AppleWebKit/534.59.8 (KHTML, like Gecko) Version/5.1.9 Safari/534.59.8
+ Matched by: Mozilla/5.0 (*Mac OS X*) AppleWebKit/* (KHTML* like Gecko) *Version/* Safari/*
+Agent Mozilla/5.0 (Macintosh; Intel Mac OS X 10_6_8) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/13.0.782.24 Safari/535.1
+ Matched by: Mozilla/5.0 (*Mac OS X*) AppleWebKit/* (KHTML* like Gecko) Chrome/*Safari/*
+Agent Mozilla/5.0 (Macintosh; Intel Mac OS X 10_6_8) AppleWebKit/537.13+ (KHTML, like Gecko) Version/5.1.7 Safari/534.57.2
+ Matched by: Mozilla/5.0 (*Mac OS X*) AppleWebKit/* (KHTML* like Gecko) *Version/* Safari/*
+Agent Mozilla/5.0 (Macintosh; Intel Mac OS X 10_6_8) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/31.0.1650.63 Safari/537.36
+ Matched by: Mozilla/5.0 (*Mac OS X*) AppleWebKit/* (KHTML* like Gecko) Chrome/*Safari/*
+Agent Mozilla/5.0 (Macintosh; Intel Mac OS X 10.6; rv:26.0) Gecko/20100101 Firefox/26.0
+ Matched by: Mozilla/5.0 (*Mac OS X*) Gecko* Firefox/*
+Agent Mozilla/5.0 (Macintosh; Intel Mac OS X 10.6; rv:30.0) Gecko/20100101 Firefox/30.0
+ Matched by: Mozilla/5.0 (*Mac OS X*) Gecko* Firefox/30.0*
+Agent Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_2) AppleWebKit/534.51.22 (KHTML, like Gecko) Version/5.1.1 Safari/534.51.22
+ Matched by: Mozilla/5.0 (*Mac OS X*) AppleWebKit/* (KHTML* like Gecko) *Version/* Safari/*
+Agent Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_2) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/14.0.835.186 Safari/535.1
+ Matched by: Mozilla/5.0 (*Mac OS X*) AppleWebKit/* (KHTML* like Gecko) Chrome/*Safari/*
+Agent Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/27.0.1453.93 Safari/537.36
+ Matched by: Mozilla/5.0 (*Mac OS X*) AppleWebKit/* (KHTML* like Gecko) Chrome/*Safari/*
+Agent Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/31.0.1650.63 Safari/537.36
+ Matched by: Mozilla/5.0 (*Mac OS X*) AppleWebKit/* (KHTML* like Gecko) Chrome/*Safari/*
+Agent Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_5) AppleWebKit/537.71 (KHTML, like Gecko) Version/6.1 Safari/537.71
+ Matched by: Mozilla/5.0 (*Mac OS X*) AppleWebKit/* (KHTML* like Gecko) *Version/6.1* Safari/*
+Agent Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_5) AppleWebKit/537.73.11 (KHTML, like Gecko) Version/6.1.1 Safari/537.73.11
+ Matched by: Mozilla/5.0 (*Mac OS X*) AppleWebKit/* (KHTML* like Gecko) *Version/6.1* Safari/*
+Agent Mozilla/5.0 (Macintosh; Intel Mac OS X 10.7; rv:26.0) Gecko/20100101 Firefox/26.0
+ Matched by: Mozilla/5.0 (*Mac OS X*) Gecko* Firefox/*
+Agent Mozilla/5.0 (Macintosh; Intel Mac OS X 10.7; rv:34.0) Gecko/20100101 Firefox/34.0
+ Matched by: Mozilla/5.0 (*Mac OS X*) Gecko* Firefox/34.0*
+Agent Mozilla/5.0 (Macintosh; Intel Mac OS X 10_8_3) AppleWebKit/537.31 (KHTML, like Gecko) Chrome/26.0.1410.65 Safari/537.31
+ Matched by: Mozilla/5.0 (*Mac OS X*) AppleWebKit/* (KHTML* like Gecko) Chrome/*Safari/*
+Agent Mozilla/5.0 (Macintosh; Intel Mac OS X 1084) AppleWebKit/536.29.13 (KHTML like Gecko) Version/6.0.4 Safari/536.29.13
+ Matched by: Mozilla/5.0 (*Mac OS X*) AppleWebKit/* (KHTML* like Gecko) *Version/6.0* Safari/*
+Agent Mozilla/5.0 (Macintosh; Intel Mac OS X 10_8_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/27.0.1453.110 Safari/537.36
+ Matched by: Mozilla/5.0 (*Mac OS X*) AppleWebKit/* (KHTML* like Gecko) Chrome/*Safari/*
+Agent Mozilla/5.0 (Macintosh; Intel Mac OS X 10_8_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/31.0.1650.63 Safari/537.36
+ Matched by: Mozilla/5.0 (*Mac OS X*) AppleWebKit/* (KHTML* like Gecko) Chrome/*Safari/*
+Agent Mozilla/5.0 (Macintosh; Intel Mac OS X 10_8_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.95 Safari/537.36
+ Matched by: Mozilla/5.0 (*Mac OS X*) AppleWebKit/* (KHTML* like Gecko) Chrome/*Safari/*
+Agent Mozilla/5.0 (Macintosh; Intel Mac OS X 10_8_5) AppleWebKit/536.30.1 (KHTML, like Gecko) Version/6.0.5 Safari/536.30.1
+ Matched by: Mozilla/5.0 (*Mac OS X*) AppleWebKit/* (KHTML* like Gecko) *Version/6.0* Safari/*
+Agent Mozilla/5.0 (Macintosh; Intel Mac OS X 10_8_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/31.0.1650.63 Safari/537.36
+ Matched by: Mozilla/5.0 (*Mac OS X*) AppleWebKit/* (KHTML* like Gecko) Chrome/*Safari/*
+Agent Mozilla/5.0 (Macintosh; Intel Mac OS X 10_8_5) AppleWebKit/537.71 (KHTML, like Gecko) Version/6.1 Safari/537.71
+ Matched by: Mozilla/5.0 (*Mac OS X*) AppleWebKit/* (KHTML* like Gecko) *Version/6.1* Safari/*
+Agent Mozilla/5.0 (Macintosh; Intel Mac OS X 10_8_5) AppleWebKit/537.73.11 (KHTML, like Gecko) Version/6.1.1 Safari/537.73.11
+ Matched by: Mozilla/5.0 (*Mac OS X*) AppleWebKit/* (KHTML* like Gecko) *Version/6.1* Safari/*
+Agent Mozilla/5.0 (Macintosh; Intel Mac OS X 10.8; rv:26.0) Gecko/20100101 Firefox/26.0
+ Matched by: Mozilla/5.0 (*Mac OS X*) Gecko* Firefox/*
+Agent Mozilla/5.0 (Macintosh; Intel Mac OS X 10.8; rv:43.0) Gecko/20100101 Firefox/43.0
+ Matched by: Mozilla/5.0 (*Mac OS X*) Gecko* Firefox/43.0*
+Agent Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/31.0.1650.57 Safari/537.36
+ Matched by: Mozilla/5.0 (*Mac OS X*) AppleWebKit/* (KHTML* like Gecko) Chrome/*Safari/*
+Agent Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/31.0.1650.63 Safari/537.36
+ Matched by: Mozilla/5.0 (*Mac OS X*) AppleWebKit/* (KHTML* like Gecko) Chrome/*Safari/*
+Agent Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/31.0.1650.57 Safari/537.36
+ Matched by: Mozilla/5.0 (*Mac OS X*) AppleWebKit/* (KHTML* like Gecko) Chrome/*Safari/*
+Agent Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/31.0.1650.63 Safari/537.36
+ Matched by: Mozilla/5.0 (*Mac OS X*) AppleWebKit/* (KHTML* like Gecko) Chrome/*Safari/*
+Agent Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/32.0.1700.68 Safari/537.36
+ Matched by: Mozilla/5.0 (*Mac OS X*) AppleWebKit/* (KHTML* like Gecko) Chrome/*Safari/*
+Agent Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_1) AppleWebKit/537.73.11 (KHTML, like Gecko) Version/7.0.1 Safari/537.73.11
+ Matched by: Mozilla/5.0 (*Mac OS X*) AppleWebKit/* (KHTML* like Gecko) *Version/7.0* Safari/*
+Agent Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/34.0.1847.131 Safari/537.36
+ Matched by: Mozilla/5.0 (*Mac OS X*) AppleWebKit/* (KHTML* like Gecko) Chrome/*Safari/*
+Agent Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/38.0.2125.111 Safari/537.36
+ Matched by: Mozilla/5.0 (*Mac OS X*) AppleWebKit/* (KHTML* like Gecko) Chrome/*Safari/*
+Agent Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_2) AppleWebKit/537.75.14 (KHTML, like Gecko) Version/7.0.3 Safari/537.75.14
+ Matched by: Mozilla/5.0 (*Mac OS X*) AppleWebKit/* (KHTML* like Gecko) *Version/7.0* Safari/*
+Agent Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/35.0.1916.114 Safari/537.36
+ Matched by: Mozilla/5.0 (*Mac OS X*) AppleWebKit/* (KHTML* like Gecko) Chrome/*Safari/*
+Agent Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/43.0.2357.124 Safari/537.36
+ Matched by: Mozilla/5.0 (*Mac OS X*) AppleWebKit/* (KHTML* like Gecko) Chrome/*Safari/*
+Agent Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/38.0.2125.122 Safari/537.36
+ Matched by: Mozilla/5.0 (*Mac OS X*) AppleWebKit/* (KHTML* like Gecko) Chrome/*Safari/*
+Agent Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2183.55 Safari/537.36
+ Matched by: Mozilla/5.0 (*Mac OS X*) AppleWebKit/* (KHTML* like Gecko) Chrome/*Safari/*
+Agent Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/42.0.2311.135 Safari/537.36
+ Matched by: Mozilla/5.0 (*Mac OS X*) AppleWebKit/* (KHTML* like Gecko) Chrome/*Safari/*
+Agent Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9) AppleWebKit/537.71 (KHTML, like Gecko) Version/7.0 Safari/537.71
+ Matched by: Mozilla/5.0 (*Mac OS X*) AppleWebKit/* (KHTML* like Gecko) *Version/7.0* Safari/*
+Agent Mozilla/5.0 (Macintosh; Intel Mac OS X 10.9; rv:25.0) Gecko/20100101 Firefox/25.0
+ Matched by: Mozilla/5.0 (*Mac OS X*) Gecko* Firefox/*
+Agent Mozilla/5.0 (Macintosh; Intel Mac OS X 10.9; rv:26.0) Gecko/20100101 Firefox/26.0
+ Matched by: Mozilla/5.0 (*Mac OS X*) Gecko* Firefox/*
+Agent Mozilla/5.0 (Macintosh; Intel Mac OS X 10.9; rv:29.0) Gecko/20100101 Firefox/29.0
+ Matched by: Mozilla/5.0 (*Mac OS X*) Gecko* Firefox/*
+Agent Mozilla/5.0 (Macintosh; Intel Mac OS X 10.9; rv:35.0) Gecko/20100101 Firefox/35.0
+ Matched by: Mozilla/5.0 (*Mac OS X*) Gecko* Firefox/35.0*
+Agent Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_5_8; zh-cn) AppleWebKit/533.18.1 (KHTML, like Gecko) Version/5.0.2 Safari/533.18.5
+ Matched by: Mozilla/5.0 (*Mac OS X*) AppleWebKit/* (KHTML* like Gecko) *Version/* Safari/*
+Agent Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.6; fr; rv:1.9.2.8) Gecko/20100722 Firefox/3.6.8
+ Matched by: Mozilla/5.0 (*Mac OS X*) Gecko* Firefox/*
+Agent Mozilla/5.0 (Mobile; Windows Phone 8.1; Android 4.0; ARM; Trident/7.0; Touch; rv:11.0; IEMobile/11.0; NOKIA; Lumia 930; Vodafone) like iPhone OS 7_0_3 Mac OS X AppleWebKit/537 (KHTML, like Gecko) Mobile Safari/537
+ Matched by: Mozilla/5.0*(*Windows Phone 8.1*Trident/7.0*rv:11*IEMobile?11.0; NOKIA; Lumia 930*
+Agent Mozilla/5.0 Moreover/5.1 (+http://www.moreover.com; webmaster@moreover.com)
+ Matched by: *
+Agent Mozilla/5.0 Project 25499 (project25499.com)
+ Matched by: *
+Agent Mozilla/5.0 (SymbianOS/9.2; U; Series60/3.1 NokiaN95/31.0.017; Profile/MIDP-2.0 Configuration/CLDC-1.1 ) AppleWebKit/413 (KHTML, like Gecko) Safari/413
+ Matched by: *
+Agent Mozilla/5.0 (Unknown; Linux x86_64) AppleWebKit/538.1 (KHTML, like Gecko) PhantomJS/2.1.1 Safari/538.1
+ Matched by: *
+Agent Mozilla/5.0 (Windows NT 10.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2486.0 Safari/537.36 Edge/13.10586
+ Matched by: Mozilla/5.0 (*Windows NT 10.0*) AppleWebKit/* (KHTML* like Gecko) Chrome/* Safari/* Edge/13.*
+Agent Mozilla/5.0 (Windows NT 10.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/50.0.2661.102 Safari/537.36
+ Matched by: Mozilla/5.0 (*Windows NT 10.0*) AppleWebKit/* (KHTML* like Gecko) Chrome/50.*Safari/*
+Agent Mozilla/5.0 (Windows NT 10.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.99 Safari/537.36
+ Matched by: Mozilla/5.0 (*Windows NT 10.0*) AppleWebKit/* (KHTML* like Gecko) Chrome/54.*Safari/*
+Agent Mozilla/5.0 (Windows NT 10.0; rv:46.0) Gecko/20100101 Firefox/46.0
+ Matched by: Mozilla/5.0 (*Windows NT 10.0*rv:46.0*) Gecko* Firefox*
+Agent Mozilla/5.0 (Windows NT 10.0; rv:50.0) Gecko/20100101 Firefox/50.0
+ Matched by: Mozilla/5.0 (*Windows NT 10.0*rv:50.0*) Gecko* Firefox*
+Agent Mozilla/5.0 (Windows NT 10.0; rv:52.0) Gecko/20100101 Firefox/52.0
+ Matched by: Mozilla/5.0 (*Windows NT 10.0*rv:*) Gecko* Firefox*
+Agent Mozilla/5.0 (Windows NT 10.0; Trident/7.0; rv:11.0) like Gecko
+ Matched by: Mozilla/5.0 (*Windows NT 10.0*Trident/7.0*rv:11.0*
+Agent Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2301.96 Safari/537.36
+ Matched by: Mozilla/5.0 (*Windows NT 10.0*) AppleWebKit/* (KHTML* like Gecko) Chrome/*Safari/*
+Agent Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/42.0.2311.135 Safari/537.36 Edge/12.10240
+ Matched by: Mozilla/5.0 (*Windows NT 10.0*) AppleWebKit/* (KHTML* like Gecko) Chrome/* Safari/* Edge/12.*
+Agent Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.79 Safari/537.36 Edge/14.14393
+ Matched by: Mozilla/5.0 (*Windows NT 10.0*) AppleWebKit/* (KHTML* like Gecko) Chrome/* Safari/* Edge/14.*
+Agent Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.116 Safari/537.36 Edge/15.14970
+ Matched by: Mozilla/5.0 (*Windows NT 10.0*) AppleWebKit/* (KHTML* like Gecko) Chrome/* Safari/* Edge/15.*
+Agent Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.71 Safari/537.36
+ Matched by: Mozilla/5.0 (*Windows NT 10.0*) AppleWebKit/* (KHTML* like Gecko) Chrome/54.*Safari/*
+Agent Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.87 Safari/537.36
+ Matched by: Mozilla/5.0 (*Windows NT 10.0*) AppleWebKit/* (KHTML* like Gecko) Chrome/54.*Safari/*
+Agent Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.99 Safari/537.36
+ Matched by: Mozilla/5.0 (*Windows NT 10.0*) AppleWebKit/* (KHTML* like Gecko) Chrome/54.*Safari/*
+Agent Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.99 Safari/537.36 FirePHP/4Chrome
+ Matched by: Mozilla/5.0 (*Windows NT 10.0*) AppleWebKit/* (KHTML* like Gecko) Chrome/54.*Safari/*
+Agent Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.75 Safari/537.36
+ Matched by: Mozilla/5.0 (*Windows NT 10.0*) AppleWebKit/* (KHTML* like Gecko) Chrome/55.*Safari/*
+Agent Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36
+ Matched by: Mozilla/5.0 (*Windows NT 10.0*) AppleWebKit/* (KHTML* like Gecko) Chrome/55.*Safari/*
+Agent Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2922.0 Safari/537.36
+ Matched by: Mozilla/5.0 (*Windows NT 10.0*) AppleWebKit/* (KHTML* like Gecko) Chrome/*Safari/*
+Agent Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2922.1 Safari/537.36
+ Matched by: Mozilla/5.0 (*Windows NT 10.0*) AppleWebKit/* (KHTML* like Gecko) Chrome/*Safari/*
+Agent Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.14 Safari/537.36
+ Matched by: Mozilla/5.0 (*Windows NT 10.0*) AppleWebKit/* (KHTML* like Gecko) Chrome/*Safari/*
+Agent Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:40.0) Gecko/20100101 Firefox/40.0
+ Matched by: Mozilla/5.0 (*Windows NT 10.0*) Gecko* Firefox/40.0*
+Agent Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:48.0) Gecko/20100101 Firefox/48.0
+ Matched by: Mozilla/5.0 (*Windows NT 10.0*rv:48.0*) Gecko* Firefox*
+Agent Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:49.0) Gecko/20100101 Firefox/49.0
+ Matched by: Mozilla/5.0 (*Windows NT 10.0*rv:49.0*) Gecko* Firefox*
+Agent Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:50.0) Gecko/20100101 Firefox/50.0
+ Matched by: Mozilla/5.0 (*Windows NT 10.0*rv:50.0*) Gecko* Firefox*
+Agent Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:51.0) Gecko/20100101 Firefox/51.0
+ Matched by: Mozilla/5.0 (*Windows NT 10.0*rv:*) Gecko* Firefox*
+Agent Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:52.0) Gecko/20100101 Firefox/52.0
+ Matched by: Mozilla/5.0 (*Windows NT 10.0*rv:*) Gecko* Firefox*
+Agent Mozilla/5.0 (Windows NT 10.0; Win64; x64; Trident/7.0; rv:11.0) like Gecko
+ Matched by: Mozilla/5.0 (*Windows NT 10.0*Trident/7.0*rv:11.0*
+Agent Mozilla/5.0 (Windows NT 10.0; WOW64)
+ Matched by: *
+Agent Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/38.0.2125.122 Safari/537.36 SE 2.X MetaSr 1.0
+ Matched by: Mozilla/5.0 (*Windows NT 10.0*) AppleWebKit/* (KHTML* like Gecko) Chrome/*Safari/*
+Agent Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/43.0.2357.81 Safari/537.36 OPR/30.0.1835.59 (Edition Rambler)
+ Matched by: Mozilla/5.0 (*Windows NT 10.0*) AppleWebKit/* (KHTML* like Gecko)*Chrome/*Safari/*OPR/30.0*
+Agent Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36
+ Matched by: Mozilla/5.0 (*Windows NT 10.0*) AppleWebKit/* (KHTML* like Gecko) Chrome/45.*Safari/*
+Agent Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.93 Safari/537.36
+ Matched by: Mozilla/5.0 (*Windows NT 10.0*) AppleWebKit/* (KHTML* like Gecko) Chrome/45.*Safari/*
+Agent Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2490.80 Safari/537.36
+ Matched by: Mozilla/5.0 (*Windows NT 10.0*) AppleWebKit/* (KHTML* like Gecko) Chrome/46.*Safari/*
+Agent Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/47.0.2526.111 Safari/537.36
+ Matched by: Mozilla/5.0 (*Windows NT 10.0*) AppleWebKit/* (KHTML* like Gecko) Chrome/47.*Safari/*
+Agent Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/48.0.2564.103 Safari/537.36
+ Matched by: Mozilla/5.0 (*Windows NT 10.0*) AppleWebKit/* (KHTML* like Gecko) Chrome/48.*Safari/*
+Agent Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/48.0.2564.109 Safari/537.36
+ Matched by: Mozilla/5.0 (*Windows NT 10.0*) AppleWebKit/* (KHTML* like Gecko) Chrome/48.*Safari/*
+Agent Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/48.0.2564.116 Safari/537.36
+ Matched by: Mozilla/5.0 (*Windows NT 10.0*) AppleWebKit/* (KHTML* like Gecko) Chrome/48.*Safari/*
+Agent Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/48.0.2564.97 Safari/537.36
+ Matched by: Mozilla/5.0 (*Windows NT 10.0*) AppleWebKit/* (KHTML* like Gecko) Chrome/48.*Safari/*
+Agent Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2623.75 Safari/537.36 OPR/36.0.2130.32
+ Matched by: Mozilla/5.0 (*Windows NT 10.0*) AppleWebKit/* (KHTML* like Gecko)*Chrome/*Safari/*OPR/36.0*
+Agent Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2623.87 Safari/537.36
+ Matched by: Mozilla/5.0 (*Windows NT 10.0*) AppleWebKit/* (KHTML* like Gecko) Chrome/49.*Safari/*
+Agent Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/50.0.2661.102 Safari/537.36
+ Matched by: Mozilla/5.0 (*Windows NT 10.0*) AppleWebKit/* (KHTML* like Gecko) Chrome/50.*Safari/*
+Agent Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.103 Safari/537.36
+ Matched by: Mozilla/5.0 (*Windows NT 10.0*) AppleWebKit/* (KHTML* like Gecko) Chrome/51.*Safari/*
+Agent Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.116 Safari/537.36
+ Matched by: Mozilla/5.0 (*Windows NT 10.0*) AppleWebKit/* (KHTML* like Gecko) Chrome/52.*Safari/*
+Agent Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/53.0.2785.116 YaBrowser/16.10.0.2564 Yowser/2.5 Safari/537.36
+ Matched by: Mozilla/5.0 (*Windows NT 10.0*) AppleWebKit/* (KHTML* like Gecko) Chrome/53.*Safari/*
+Agent Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/53.0.2785.143 Safari/537.36
+ Matched by: Mozilla/5.0 (*Windows NT 10.0*) AppleWebKit/* (KHTML* like Gecko) Chrome/53.*Safari/*
+Agent Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/53.0.2785.143 YaBrowser/16.10.1.1114 Yowser/2.5 Safari/537.36
+ Matched by: Mozilla/5.0 (*Windows NT 10.0*) AppleWebKit/* (KHTML* like Gecko) Chrome/53.*Safari/*
+Agent Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.71 Safari/537.36
+ Matched by: Mozilla/5.0 (*Windows NT 10.0*) AppleWebKit/* (KHTML* like Gecko) Chrome/54.*Safari/*
+Agent Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.87 Safari/537.36
+ Matched by: Mozilla/5.0 (*Windows NT 10.0*) AppleWebKit/* (KHTML* like Gecko) Chrome/54.*Safari/*
+Agent Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.99 Safari/537.36
+ Matched by: Mozilla/5.0 (*Windows NT 10.0*) AppleWebKit/* (KHTML* like Gecko) Chrome/54.*Safari/*
+Agent Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.99 Safari/537.36 OPR/41.0.2353.69
+ Matched by: Mozilla/5.0 (*Windows NT 10.0*) AppleWebKit/* (KHTML, like Gecko)*Chrome/*Safari/*OPR/41.0*
+Agent Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.75 Safari/537.36 OPR/42.0.2393.85
+ Matched by: Mozilla/5.0 (*Windows NT 10.0*) AppleWebKit/* (KHTML, like Gecko)*Chrome/*Safari/*OPR/42.0*
+Agent Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36
+ Matched by: Mozilla/5.0 (*Windows NT 10.0*) AppleWebKit/* (KHTML* like Gecko) Chrome/55.*Safari/*
+Agent Mozilla/5.0 (Windows NT 10.0; WOW64; rv:38.0) Gecko/20100101 Firefox/38.0
+ Matched by: Mozilla/5.0 (*Windows NT 10.0*) Gecko* Firefox/38.0*
+Agent Mozilla/5.0 (Windows NT 10.0; WOW64; rv:39.0) Gecko/20100101 Firefox/39.0
+ Matched by: Mozilla/5.0 (*Windows NT 10.0*) Gecko* Firefox/39.0*
+Agent Mozilla/5.0 (Windows NT 10.0; WOW64; rv:40.0) Gecko/20100101 Firefox/40.0
+ Matched by: Mozilla/5.0 (*Windows NT 10.0*) Gecko* Firefox/40.0*
+Agent Mozilla/5.0 (Windows NT 10.0; WOW64; rv:41.0) Gecko/20100101 Firefox/41.0
+ Matched by: Mozilla/5.0 (*Windows NT 10.0*rv:41.0*) Gecko* Firefox*
+Agent Mozilla/5.0 (Windows NT 10.0; WOW64; rv:43.0) Gecko/20100101 Firefox/43.0
+ Matched by: Mozilla/5.0 (*Windows NT 10.0*rv:43.0*) Gecko* Firefox*
+Agent Mozilla/5.0 (Windows NT 10.0; WOW64; rv:44.0) Gecko/20100101 Firefox/44.0
+ Matched by: Mozilla/5.0 (*Windows NT 10.0*rv:44.0*) Gecko* Firefox*
+Agent Mozilla/5.0 (Windows NT 10.0; WOW64; rv:46.0) Gecko/20100101 Firefox/46.0
+ Matched by: Mozilla/5.0 (*Windows NT 10.0*rv:46.0*) Gecko* Firefox*
+Agent Mozilla/5.0 (Windows NT 10.0; WOW64; rv:49.0) Gecko/20100101 Firefox/49.0
+ Matched by: Mozilla/5.0 (*Windows NT 10.0*rv:49.0*) Gecko* Firefox*
+Agent Mozilla/5.0 (Windows NT 10.0; WOW64; rv:50.0) Gecko/20100101 Firefox/50.0
+ Matched by: Mozilla/5.0 (*Windows NT 10.0*rv:50.0*) Gecko* Firefox*
+Agent Mozilla/5.0 (Windows NT 10.0; WOW64; Trident/7.0; rv:11.0) like Gecko
+ Matched by: Mozilla/5.0 (*Windows NT 10.0*Trident/7.0*rv:11.0*
+Agent Mozilla/5.0 (Windows NT 5.1) AppleWebKit/535.11 (KHTML, like Gecko) Chrome/17.0.963.46 Safari/535.11 MRCHROME
+ Matched by: Mozilla/5.0 (*Windows*) AppleWebKit/* (KHTML* like Gecko) Chrome/*Safari/*
+Agent Mozilla/5.0 (Windows NT 5.1) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/14.0.810.0 Safari/535.1
+ Matched by: Mozilla/5.0 (*Windows*) AppleWebKit/* (KHTML* like Gecko) Chrome/*Safari/*
+Agent Mozilla/5.0 (Windows NT 5.1) AppleWebKit/537.1 (KHTML, like Gecko) Chrome/24.0.1290.1 Safari/537.13
+ Matched by: Mozilla/5.0 (*Windows*) AppleWebKit/* (KHTML* like Gecko) Chrome/*Safari/*
+Agent Mozilla/5.0 (Windows NT 5.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/28.0.1468.0 Safari/537.36
+ Matched by: Mozilla/5.0 (*Windows*) AppleWebKit/* (KHTML* like Gecko) Chrome/*Safari/*
+Agent Mozilla/5.0 (Windows NT 5.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/31.0.1650.63 Safari/537.36
+ Matched by: Mozilla/5.0 (*Windows*) AppleWebKit/* (KHTML* like Gecko) Chrome/*Safari/*
+Agent Mozilla/5.0 (Windows NT 5.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/34.0.1847.116 Safari/537.36
+ Matched by: Mozilla/5.0 (*Windows*) AppleWebKit/* (KHTML* like Gecko) Chrome/*Safari/*
+Agent Mozilla/5.0 (Windows NT 5.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.95 Safari/537.36
+ Matched by: Mozilla/5.0 (*Windows*) AppleWebKit/* (KHTML* like Gecko) Chrome/*Safari/*
+Agent Mozilla/5.0 (Windows NT 5.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.95 Safari/537.36 OPR/26.0.1656.60
+ Matched by: Mozilla/5.0 (*Windows*) AppleWebKit/* (KHTML* like Gecko) Chrome/*Safari/*
+Agent Mozilla/5.0 (Windows NT 5.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.99 Safari/537.36
+ Matched by: Mozilla/5.0 (*Windows*) AppleWebKit/* (KHTML* like Gecko) Chrome/*Safari/*
+Agent Mozilla/5.0 (Windows NT 5.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/42.0.2311.90 Safari/537.36
+ Matched by: Mozilla/5.0 (*Windows*) AppleWebKit/* (KHTML* like Gecko) Chrome/*Safari/*
+Agent Mozilla/5.0 (Windows NT 5.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36
+ Matched by: Mozilla/5.0 (*Windows*) AppleWebKit/* (KHTML* like Gecko) Chrome/45.*Safari/*
+Agent Mozilla/5.0 (Windows NT 5.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2623.112 Safari/537.36
+ Matched by: Mozilla/5.0 (*Windows*) AppleWebKit/* (KHTML* like Gecko) Chrome/49.*Safari/*
+Agent Mozilla/5.0 (Windows NT 5.1; ru-RU; rv:26.0) Gecko/20100101 Firefox/26.0
+ Matched by: *
+Agent Mozilla/5.0 (Windows NT 5.1; rv:2.0b13pre) Gecko/20110223 Firefox/4.0b13pre
+ Matched by: *
+Agent Mozilla/5.0 (Windows NT 5.1; rv:24.0) Gecko/20100101 Firefox/24.0
+ Matched by: *
+Agent Mozilla/5.0 (Windows NT 5.1; rv:25.0) Gecko/20100101 Firefox/25.0
+ Matched by: *
+Agent Mozilla/5.0 (Windows NT 5.1; rv:26.0) Gecko/20100101 Firefox/26.0
+ Matched by: *
+Agent Mozilla/5.0 (Windows NT 5.1; rv:32.0) Gecko/20100101 Firefox/31.0
+ Matched by: *
+Agent Mozilla/5.0 (Windows NT 5.1; rv:34.0) Gecko/20100101 Firefox/34.0
+ Matched by: *
+Agent Mozilla/5.0 (Windows NT 5.1; rv:35.0) Gecko/20100101 Firefox/35.0
+ Matched by: *
+Agent Mozilla/5.0 (Windows NT 5.1; rv:38.0) Gecko/20100101 Firefox/38.0 K-Meleon/76.0
+ Matched by: *
+Agent Mozilla/5.0 (Windows NT 5.1; rv:43.0) Gecko/20100101 Firefox/43.0
+ Matched by: *
+Agent Mozilla/5.0 (Windows NT 5.1; rv:47.0) Gecko/20100101 Firefox/47.0
+ Matched by: *
+Agent Mozilla/5.0 (Windows NT 5.1; rv:48.0) Gecko/20100101 Firefox/48.0
+ Matched by: *
+Agent Mozilla/5.0 (Windows NT 5.1; rv:49.0) Gecko/20100101 Firefox/49.0
+ Matched by: *
+Agent Mozilla/5.0 (Windows NT 5.1; rv:50.0) Gecko/20100101 Firefox/50.0
+ Matched by: *
+Agent Mozilla/5.0 (Windows NT 5.1; rv:6.0.2) Gecko/20100101 Firefox/6.0.2
+ Matched by: *
+Agent Mozilla/5.0 (Windows NT 5.1; rv:7.0.1) Gecko/20100101 Firefox/7.0.1
+ Matched by: *
+Agent Mozilla/5.0 (Windows NT 5.1; rv:9.0.1) Gecko/20100101 Firefox/9.0.1
+ Matched by: *
+Agent Mozilla/5.0 (Windows NT 5.1; U; en) Opera 8.00
+ Matched by: *
+Agent Mozilla/5.0 (Windows NT 5.1; U; en) Opera 8.01
+ Matched by: *
+Agent Mozilla/5.0 (Windows NT 5.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/36.0.1996.45 Safari/537.36
+ Matched by: Mozilla/5.0 (*Windows*) AppleWebKit/* (KHTML* like Gecko) Chrome/*Safari/*
+Agent Mozilla/5.0 (Windows NT 5.2; rv:43.0) Gecko/20100101 Firefox/43.0
+ Matched by: *
+Agent Mozilla/5.0 (Windows NT 5.2; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2623.112 Safari/537.36
+ Matched by: Mozilla/5.0 (*Windows*) AppleWebKit/* (KHTML* like Gecko) Chrome/49.*Safari/*
+Agent Mozilla/5.0 (Windows NT 6.0) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/14.0.792.0 Safari/535.1
+ Matched by: Mozilla/5.0 (*Windows NT 6.0*) AppleWebKit/* (KHTML* like Gecko) Chrome/*Safari/*
+Agent Mozilla/5.0 (Windows NT 6.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/30.0.1599.17 Safari/537.36
+ Matched by: Mozilla/5.0 (*Windows NT 6.0*) AppleWebKit/* (KHTML* like Gecko) Chrome/*Safari/*
+Agent Mozilla/5.0 (Windows NT 6.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/31.0.1650.63 Safari/537.36
+ Matched by: Mozilla/5.0 (*Windows NT 6.0*) AppleWebKit/* (KHTML* like Gecko) Chrome/*Safari/*
+Agent Mozilla/5.0 (Windows NT 6.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/34.0.1847.116 Safari/537.36
+ Matched by: Mozilla/5.0 (*Windows NT 6.0*) AppleWebKit/* (KHTML* like Gecko) Chrome/*Safari/*
+Agent Mozilla/5.0 (Windows NT 6.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.71 Safari/537.36
+ Matched by: Mozilla/5.0 (*Windows NT 6.0*) AppleWebKit/* (KHTML* like Gecko) Chrome/*Safari/*
+Agent Mozilla/5.0 (Windows NT 6.0; rv:26.0) Gecko/20100101 Firefox/26.0
+ Matched by: Mozilla/5.0 (*Windows NT 6.0*) Gecko* Firefox/*
+Agent Mozilla/5.0 (Windows NT 6.0; rv:34.0) Gecko/20100101 Firefox/34.0
+ Matched by: Mozilla/5.0 (*Windows NT 6.0*) Gecko* Firefox/34.0*
+Agent Mozilla/5.0 (Windows NT 6.0; rv:49.0) Gecko/20100101 Firefox/49.0
+ Matched by: Mozilla/5.0 (*Windows NT 6.0*) Gecko* Firefox/49.0*
+Agent Mozilla/5.0 (Windows NT 6.0; rv:50.0) Gecko/20100101 Firefox/50.0
+ Matched by: Mozilla/5.0 (*Windows NT 6.0*) Gecko* Firefox/50.0*
+Agent Mozilla/5.0 (Windows NT 6.0; WOW64) AppleWebKit/534.24 (KHTML, like Gecko) Chrome/11.0.696.34 Safari/534.24
+ Matched by: Mozilla/5.0 (*Windows NT 6.0*) AppleWebKit/* (KHTML* like Gecko) Chrome/*Safari/*
+Agent Mozilla/5.0 (Windows NT 6.0; WOW64) AppleWebKit/534.30 (KHTML, like Gecko) Chrome/12.0.742.91 Safari/534.30
+ Matched by: Mozilla/5.0 (*Windows NT 6.0*) AppleWebKit/* (KHTML* like Gecko) Chrome/*Safari/*
+Agent Mozilla/5.0 (Windows NT 6.0; WOW64) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.57 Safari/537.17
+ Matched by: Mozilla/5.0 (*Windows NT 6.0*) AppleWebKit/* (KHTML* like Gecko) Chrome/*Safari/*
+Agent Mozilla/5.0 (Windows NT 6.0; WOW64; rv:40.0) Gecko/20100101 Firefox/40.0
+ Matched by: Mozilla/5.0 (*Windows NT 6.0*) Gecko* Firefox/40.0*
+Agent Mozilla/5.0 (Windows NT 6.1) AppleWebKit/536.5 (KHTML like Gecko) Chrome/19.0.1084.56 Safari/536.5
+ Matched by: Mozilla/5.0 (*Windows NT 6.1*) AppleWebKit/* (KHTML* like Gecko) Chrome/*Safari/*
+Agent Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.1 (KHTML, like Gecko) Chrome/21.0.1180.89 Safari/537.1
+ Matched by: Mozilla/5.0 (*Windows NT 6.1*) AppleWebKit/* (KHTML* like Gecko) Chrome/*Safari/*
+Agent Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/27.0.1453.90 Safari/537.36
+ Matched by: Mozilla/5.0 (*Windows NT 6.1*) AppleWebKit/* (KHTML* like Gecko) Chrome/*Safari/*
+Agent Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/31.0.1650.63 Safari/537.36
+ Matched by: Mozilla/5.0 (*Windows NT 6.1*) AppleWebKit/* (KHTML* like Gecko) Chrome/*Safari/*
+Agent Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/32.0.1700.72 Safari/537.36
+ Matched by: Mozilla/5.0 (*Windows NT 6.1*) AppleWebKit/* (KHTML* like Gecko) Chrome/*Safari/*
+Agent Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/33.0.1750.154 Safari/537.36
+ Matched by: Mozilla/5.0 (*Windows NT 6.1*) AppleWebKit/* (KHTML* like Gecko) Chrome/*Safari/*
+Agent Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/33.0.1750.154 Safari/537.36 OPR/20.0.1387.91
+ Matched by: Mozilla/5.0 (*Windows NT 6.1*) AppleWebKit/* (KHTML* like Gecko) Chrome/*Safari/*
+Agent Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/37.0.2062.124 YaBrowser/14.10.2062.12521 Safari/537.36
+ Matched by: Mozilla/5.0 (*Windows NT 6.1*) AppleWebKit/* (KHTML* like Gecko) Chrome/*Safari/*
+Agent Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.95 Safari/537.36
+ Matched by: Mozilla/5.0 (*Windows NT 6.1*) AppleWebKit/* (KHTML* like Gecko) Chrome/*Safari/*
+Agent Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.95 Safari/537.36 OPR/26.0.1656.60
+ Matched by: Mozilla/5.0 (*Windows NT 6.1*) AppleWebKit/* (KHTML* like Gecko) Chrome/*Safari/*
+Agent Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2228.0 Safari/537.36
+ Matched by: Mozilla/5.0 (*Windows NT 6.1*) AppleWebKit/* (KHTML* like Gecko) Chrome/*Safari/*
+Agent Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/47.0.2526.111 Safari/537.36
+ Matched by: Mozilla/5.0 (*Windows NT 6.1*) AppleWebKit/* (KHTML* like Gecko) Chrome/47.*Safari/*
+Agent Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/48.0.2564.109 Safari/537.36
+ Matched by: Mozilla/5.0 (*Windows NT 6.1*) AppleWebKit/* (KHTML* like Gecko) Chrome/48.*Safari/*
+Agent Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/53.0.2785.116 Safari/537.36
+ Matched by: Mozilla/5.0 (*Windows NT 6.1*) AppleWebKit/* (KHTML* like Gecko) Chrome/53.*Safari/*
+Agent Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/53.0.2785.143 Safari/537.36
+ Matched by: Mozilla/5.0 (*Windows NT 6.1*) AppleWebKit/* (KHTML* like Gecko) Chrome/53.*Safari/*
+Agent Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/53.0.2785.21 Safari/537.36
+ Matched by: Mozilla/5.0 (*Windows NT 6.1*) AppleWebKit/* (KHTML* like Gecko) Chrome/53.*Safari/*
+Agent Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.71 Safari/537.36
+ Matched by: Mozilla/5.0 (*Windows NT 6.1*) AppleWebKit/* (KHTML* like Gecko) Chrome/54.*Safari/*
+Agent Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.99 Safari/537.36
+ Matched by: Mozilla/5.0 (*Windows NT 6.1*) AppleWebKit/* (KHTML* like Gecko) Chrome/54.*Safari/*
+Agent Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.99 Safari/537.36 OPR/41.0.2353.69
+ Matched by: Mozilla/5.0 (*Windows NT 6.1*) AppleWebKit/* (KHTML, like Gecko)*Chrome/*Safari/*OPR/41.0*
+Agent Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.75 Safari/537.36
+ Matched by: Mozilla/5.0 (*Windows NT 6.1*) AppleWebKit/* (KHTML* like Gecko) Chrome/55.*Safari/*
+Agent Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Dragon/36.1.1.21 Chrome/36.0.1985.97 Safari/537.36
+ Matched by: *
+Agent Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Iron/32.0.1750.1 Chrome/32.0.1750.1 Safari/537.36
+ Matched by: *
+Agent Mozilla/5.0 (Windows NT 6.1; rv:12.0) Gecko/ 20120405 Firefox/14.0.1
+ Matched by: Mozilla/5.0 (*Windows NT 6.1*) Gecko* Firefox/*
+Agent Mozilla/5.0 (Windows NT 6.1; rv:18.0) Gecko/20100101 Firefox/18.0
+ Matched by: Mozilla/5.0 (*Windows NT 6.1*) Gecko* Firefox/*
+Agent Mozilla/5.0 (Windows NT 6.1; rv:19.0) Gecko/20100101 Firefox/19.0
+ Matched by: Mozilla/5.0 (*Windows NT 6.1*) Gecko* Firefox/*
+Agent Mozilla/5.0 (Windows NT 6.1; rv:1.9) Gecko/20100101 Firefox/4.0
+ Matched by: Mozilla/5.0 (*Windows NT 6.1*) Gecko* Firefox/*
+Agent Mozilla/5.0 (Windows NT 6.1; rv:2.0b10pre) Gecko/20110113 Firefox/4.0b10pre
+ Matched by: Mozilla/5.0 (*Windows NT 6.1*) Gecko* Firefox/*
+Agent Mozilla/5.0 (Windows NT 6.1; rv:2.0b6pre) Gecko/20100903 Firefox/4.0b6pre Firefox/4.0b6pre
+ Matched by: Mozilla/5.0 (*Windows NT 6.1*) Gecko* Firefox/*
+Agent Mozilla/5.0 (Windows NT 6.1; rv:21.0) Gecko/20100101 Firefox/21.0
+ Matched by: Mozilla/5.0 (*Windows NT 6.1*) Gecko* Firefox/*
+Agent Mozilla/5.0 (Windows NT 6.1; rv:24.0) Gecko/20100101 Firefox/24.0
+ Matched by: Mozilla/5.0 (*Windows NT 6.1*) Gecko* Firefox/*
+Agent Mozilla/5.0 (Windows NT 6.1; rv:24.0) Gecko/20140329 Firefox/24.0 PaleMoon/24.4.2
+ Matched by: Mozilla/5.0 (*Windows NT 6.1*) Gecko* Firefox/*
+Agent Mozilla/5.0 (Windows NT 6.1; rv:25.0) Gecko/20100101 Firefox/25.0
+ Matched by: Mozilla/5.0 (*Windows NT 6.1*) Gecko* Firefox/*
+Agent Mozilla/5.0 (Windows NT 6.1; rv:26.0) Gecko/20100101 Firefox/26.0
+ Matched by: Mozilla/5.0 (*Windows NT 6.1*) Gecko* Firefox/*
+Agent Mozilla/5.0 (Windows NT 6.1; rv:28.0) Gecko/20100101 Firefox/28.0
+ Matched by: Mozilla/5.0 (*Windows NT 6.1*) Gecko* Firefox/*
+Agent Mozilla/5.0 (Windows NT 6.1; rv:31.0) Gecko/20100101 Firefox/31.0
+ Matched by: Mozilla/5.0 (*Windows NT 6.1*) Gecko* Firefox/31.0*
+Agent Mozilla/5.0 (Windows NT 6.1; rv:32.0) Gecko/20100101 Firefox/32.0
+ Matched by: Mozilla/5.0 (*Windows NT 6.1*) Gecko* Firefox/32.0*
+Agent Mozilla/5.0 (Windows NT 6.1; rv:34.0) Gecko/20100101 Firefox/34.0
+ Matched by: Mozilla/5.0 (*Windows NT 6.1*) Gecko* Firefox/34.0*
+Agent Mozilla/5.0 (Windows NT 6.1; rv:35.0) Gecko/20100101 Firefox/35.0
+ Matched by: Mozilla/5.0 (*Windows NT 6.1*) Gecko* Firefox/35.0*
+Agent Mozilla/5.0 (Windows NT 6.1; rv:38.0) Gecko/20100101 Firefox/38.0 K-Meleon/76.0
+ Matched by: Mozilla/5.0 (*Windows NT 6.1*) Gecko* Firefox/38.0*
+Agent Mozilla/5.0 (Windows NT 6.1; rv:39.0) Gecko/20100101 Firefox/39.0
+ Matched by: Mozilla/5.0 (*Windows NT 6.1*) Gecko* Firefox/39.0*
+Agent Mozilla/5.0 (Windows NT 6.1; rv:43.0) Gecko/20100101 Firefox/43.0
+ Matched by: Mozilla/5.0 (*Windows NT 6.1*) Gecko* Firefox/43.0*
+Agent Mozilla/5.0 (Windows NT 6.1; rv:44.0) Gecko/20100101 Firefox/44.0
+ Matched by: Mozilla/5.0 (*Windows NT 6.1*) Gecko* Firefox/44.0*
+Agent Mozilla/5.0 (Windows NT 6.1; rv:45.0) Gecko/20100101 Firefox/45.0
+ Matched by: Mozilla/5.0 (*Windows NT 6.1*) Gecko* Firefox/45.0*
+Agent Mozilla/5.0 (Windows NT 6.1; rv:49.0) Gecko/20100101 Firefox/49.0
+ Matched by: Mozilla/5.0 (*Windows NT 6.1*) Gecko* Firefox/49.0*
+Agent Mozilla/5.0 (Windows NT 6.1; rv:50.0) Gecko/20100101 Firefox/50.0
+ Matched by: Mozilla/5.0 (*Windows NT 6.1*) Gecko* Firefox/50.0*
+Agent Mozilla/5.0 (Windows NT 6.1; rv:5.0) Gecko/20100101 Firefox/5.0
+ Matched by: Mozilla/5.0 (*Windows NT 6.1*) Gecko* Firefox/*
+Agent Mozilla/5.0 (Windows NT 6.1; rv:6.0) Gecko/20100101 Firefox/19.0
+ Matched by: Mozilla/5.0 (*Windows NT 6.1*) Gecko* Firefox/*
+Agent Mozilla/5.0 (Windows NT 6.1; rv:9.0.1) Gecko/20100101 Firefox/9.0.1
+ Matched by: Mozilla/5.0 (*Windows NT 6.1*) Gecko* Firefox/*
+Agent Mozilla/5.0 (Windows NT 6.1; Trident/7.0; rv:11.0) like C9CF7
+ Matched by: Mozilla/5.0 (*Windows NT 6.1*Trident/7.0*rv:11.0*
+Agent Mozilla/5.0 (Windows NT 6.1; Trident/7.0; rv:11.0) like Gecko
+ Matched by: Mozilla/5.0 (*Windows NT 6.1*Trident/7.0*rv:11.0*
+Agent Mozilla/5.0 (Windows NT 6.1; U;WOW64; de;rv:11.0) Gecko Firefox/11.0
+ Matched by: Mozilla/5.0 (*Windows NT 6.1*) Gecko* Firefox/*
+Agent Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.95 Safari/537.36
+ Matched by: Mozilla/5.0 (*Windows NT 6.1*) AppleWebKit/* (KHTML* like Gecko) Chrome/*Safari/*
+Agent Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/40.0.2214.85 Safari/537.36
+ Matched by: Mozilla/5.0 (*Windows NT 6.1*) AppleWebKit/* (KHTML* like Gecko) Chrome/*Safari/*
+Agent Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.82 Safari/537.36
+ Matched by: Mozilla/5.0 (*Windows NT 6.1*) AppleWebKit/* (KHTML* like Gecko) Chrome/52.*Safari/*
+Agent Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.71 Safari/537.36
+ Matched by: Mozilla/5.0 (*Windows NT 6.1*) AppleWebKit/* (KHTML* like Gecko) Chrome/54.*Safari/*
+Agent Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.87 Safari/537.36
+ Matched by: Mozilla/5.0 (*Windows NT 6.1*) AppleWebKit/* (KHTML* like Gecko) Chrome/54.*Safari/*
+Agent Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.99 Safari/537.36
+ Matched by: Mozilla/5.0 (*Windows NT 6.1*) AppleWebKit/* (KHTML* like Gecko) Chrome/54.*Safari/*
+Agent Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.59 Safari/537.36
+ Matched by: Mozilla/5.0 (*Windows NT 6.1*) AppleWebKit/* (KHTML* like Gecko) Chrome/55.*Safari/*
+Agent Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:2.0b11pre) Gecko/20110128 Firefox/4.0b11pre
+ Matched by: Mozilla/5.0 (*Windows NT 6.1*) Gecko* Firefox/*
+Agent Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:2.2a1pre) Gecko/20110324 Firefox/4.2a1pre
+ Matched by: Mozilla/5.0 (*Windows NT 6.1*) Gecko* Firefox/*
+Agent Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:24.0) Gecko/20100101 Firefox/24.0 Waterfox/24.0
+ Matched by: Mozilla/5.0 (*Windows NT 6.1*) Gecko* Firefox/*
+Agent Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:44.0) Gecko/20100101 Firefox/44.0
+ Matched by: Mozilla/5.0 (*Windows NT 6.1*) Gecko* Firefox/44.0*
+Agent Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:5.0) Gecko/20110619 Firefox/5.0
+ Matched by: Mozilla/5.0 (*Windows NT 6.1*) Gecko* Firefox/*
+Agent Mozilla/5.0 (Windows NT 6.1; Win64; x64; Trident/7.0; CTL_IE11; rv:11.0) like Gecko
+ Matched by: Mozilla/5.0 (*Windows NT 6.1*Trident/7.0*rv:11.0*
+Agent Mozilla/5.0 (Windows NT 6.1; Win64; x64; Trident/7.0; rv:11.0) like Gecko
+ Matched by: Mozilla/5.0 (*Windows NT 6.1*Trident/7.0*rv:11.0*
+Agent Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/534.24 (KHTML, like Gecko) Chrome/11.0.696.12 Safari/534.24
+ Matched by: Mozilla/5.0 (*Windows NT 6.1*) AppleWebKit/* (KHTML* like Gecko) Chrome/*Safari/*
+Agent Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/534+ (KHTML, like Gecko) BingPreview/1.0b
+ Matched by: *
+Agent Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/535.2 (KHTML, like Gecko) Chrome/15.0.874.121 Safari/535.2
+ Matched by: Mozilla/5.0 (*Windows NT 6.1*) AppleWebKit/* (KHTML* like Gecko) Chrome/*Safari/*
+Agent Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.52 Safari/537.17
+ Matched by: Mozilla/5.0 (*Windows NT 6.1*) AppleWebKit/* (KHTML* like Gecko) Chrome/*Safari/*
+Agent Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/28.0.1468.0 Safari/537.36
+ Matched by: Mozilla/5.0 (*Windows NT 6.1*) AppleWebKit/* (KHTML* like Gecko) Chrome/*Safari/*
+Agent Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/28.0.1500.72 Safari/537.36
+ Matched by: Mozilla/5.0 (*Windows NT 6.1*) AppleWebKit/* (KHTML* like Gecko) Chrome/*Safari/*
+Agent Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/28.0.1500.95 YaBrowser/13.10.1500.9323 Safari/537.36
+ Matched by: Mozilla/5.0 (*Windows NT 6.1*) AppleWebKit/* (KHTML* like Gecko) Chrome/*Safari/*
+Agent Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/29.0.1547.57 Safari/537.36 OPR/16.0.1196.73
+ Matched by: Mozilla/5.0 (*Windows NT 6.1*) AppleWebKit/* (KHTML* like Gecko) Chrome/*Safari/*
+Agent Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/31.0.1650.57 Safari/537.36
+ Matched by: Mozilla/5.0 (*Windows NT 6.1*) AppleWebKit/* (KHTML* like Gecko) Chrome/*Safari/*
+Agent Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/31.0.1650.63 Safari/537.36
+ Matched by: Mozilla/5.0 (*Windows NT 6.1*) AppleWebKit/* (KHTML* like Gecko) Chrome/*Safari/*
+Agent Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/32.0.1700.107 Safari/537.36
+ Matched by: Mozilla/5.0 (*Windows NT 6.1*) AppleWebKit/* (KHTML* like Gecko) Chrome/*Safari/*
+Agent Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/32.0.1700.41 Safari/537.36
+ Matched by: Mozilla/5.0 (*Windows NT 6.1*) AppleWebKit/* (KHTML* like Gecko) Chrome/*Safari/*
+Agent Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/34.0.1847.116 Safari/537.36
+ Matched by: Mozilla/5.0 (*Windows NT 6.1*) AppleWebKit/* (KHTML* like Gecko) Chrome/*Safari/*
+Agent Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/34.0.1847.131 Safari/537.36
+ Matched by: Mozilla/5.0 (*Windows NT 6.1*) AppleWebKit/* (KHTML* like Gecko) Chrome/*Safari/*
+Agent Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/34.0.1847.137 Safari/537.36
+ Matched by: Mozilla/5.0 (*Windows NT 6.1*) AppleWebKit/* (KHTML* like Gecko) Chrome/*Safari/*
+Agent Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML like Gecko) Chrome/35.0.1916.114 Safari/537.36
+ Matched by: Mozilla/5.0 (*Windows NT 6.1*) AppleWebKit/* (KHTML* like Gecko) Chrome/*Safari/*
+Agent Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/35.0.1916.153 Safari/537.36
+ Matched by: Mozilla/5.0 (*Windows NT 6.1*) AppleWebKit/* (KHTML* like Gecko) Chrome/*Safari/*
+Agent Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/36.0.1985.125 Safari/537.36
+ Matched by: Mozilla/5.0 (*Windows NT 6.1*) AppleWebKit/* (KHTML* like Gecko) Chrome/*Safari/*
+Agent Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/36.0.1985.143 Safari/537.36
+ Matched by: Mozilla/5.0 (*Windows NT 6.1*) AppleWebKit/* (KHTML* like Gecko) Chrome/*Safari/*
+Agent Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/37.0.2062.120 Safari/537.36
+ Matched by: Mozilla/5.0 (*Windows NT 6.1*) AppleWebKit/* (KHTML* like Gecko) Chrome/*Safari/*
+Agent Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.95 Safari/537.36
+ Matched by: Mozilla/5.0 (*Windows NT 6.1*) AppleWebKit/* (KHTML* like Gecko) Chrome/*Safari/*
+Agent Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.95 Safari/537.36 OPR/26.0.1656.60
+ Matched by: Mozilla/5.0 (*Windows NT 6.1*) AppleWebKit/* (KHTML* like Gecko) Chrome/*Safari/*
+Agent Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.99 Safari/537.36
+ Matched by: Mozilla/5.0 (*Windows NT 6.1*) AppleWebKit/* (KHTML* like Gecko) Chrome/*Safari/*
+Agent Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/40.0.2214.111 Safari/537.36
+ Matched by: Mozilla/5.0 (*Windows NT 6.1*) AppleWebKit/* (KHTML* like Gecko) Chrome/*Safari/*
+Agent Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/40.0.2214.115 Safari/537.36
+ Matched by: Mozilla/5.0 (*Windows NT 6.1*) AppleWebKit/* (KHTML* like Gecko) Chrome/*Safari/*
+Agent Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2227.0 Safari/537.36
+ Matched by: Mozilla/5.0 (*Windows NT 6.1*) AppleWebKit/* (KHTML* like Gecko) Chrome/*Safari/*
+Agent Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/42.0.2311.135 Safari/537.36
+ Matched by: Mozilla/5.0 (*Windows NT 6.1*) AppleWebKit/* (KHTML* like Gecko) Chrome/*Safari/*
+Agent Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/42.0.2311.152 Safari/537.36
+ Matched by: Mozilla/5.0 (*Windows NT 6.1*) AppleWebKit/* (KHTML* like Gecko) Chrome/*Safari/*
+Agent Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/43.0.2357.65 Safari/537.36
+ Matched by: Mozilla/5.0 (*Windows NT 6.1*) AppleWebKit/* (KHTML* like Gecko) Chrome/*Safari/*
+Agent Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/43.0.2357.81 Safari/537.36
+ Matched by: Mozilla/5.0 (*Windows NT 6.1*) AppleWebKit/* (KHTML* like Gecko) Chrome/*Safari/*
+Agent Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/44.0.2403.125 Safari/537.36
+ Matched by: Mozilla/5.0 (*Windows NT 6.1*) AppleWebKit/* (KHTML* like Gecko) Chrome/*Safari/*
+Agent Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/44.0.2403.89 Safari/537.36
+ Matched by: Mozilla/5.0 (*Windows NT 6.1*) AppleWebKit/* (KHTML* like Gecko) Chrome/*Safari/*
+Agent Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2490.86 YaBrowser/15.12.1.6475 Safari/537.36
+ Matched by: Mozilla/5.0 (*Windows NT 6.1*) AppleWebKit/* (KHTML* like Gecko) Chrome/46.*Safari/*
+Agent Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/47.0.2526.106 Safari/537.36
+ Matched by: Mozilla/5.0 (*Windows NT 6.1*) AppleWebKit/* (KHTML* like Gecko) Chrome/47.*Safari/*
+Agent Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/47.0.2526.111 Safari/537.36
+ Matched by: Mozilla/5.0 (*Windows NT 6.1*) AppleWebKit/* (KHTML* like Gecko) Chrome/47.*Safari/*
+Agent Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/47.0.2526.111 Safari/537.36 OPR/34.0.2036.50
+ Matched by: Mozilla/5.0 (*Windows NT 6.1*) AppleWebKit/* (KHTML* like Gecko)*Chrome/*Safari/*OPR/34.0*
+Agent Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/47.0.2526.111 YaBrowser/16.2.0.3539 Safari/537.36
+ Matched by: Mozilla/5.0 (*Windows NT 6.1*) AppleWebKit/* (KHTML* like Gecko) Chrome/47.*Safari/*
+Agent Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/48.0.2564.103 Safari/537.36
+ Matched by: Mozilla/5.0 (*Windows NT 6.1*) AppleWebKit/* (KHTML* like Gecko) Chrome/48.*Safari/*
+Agent Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/48.0.2564.109 Safari/537.36
+ Matched by: Mozilla/5.0 (*Windows NT 6.1*) AppleWebKit/* (KHTML* like Gecko) Chrome/48.*Safari/*
+Agent Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/48.0.2564.116 Safari/537.36
+ Matched by: Mozilla/5.0 (*Windows NT 6.1*) AppleWebKit/* (KHTML* like Gecko) Chrome/48.*Safari/*
+Agent Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/48.0.2564.82 Safari/537.36 OPR/35.0.2066.37
+ Matched by: Mozilla/5.0 (*Windows NT 6.1*) AppleWebKit/* (KHTML* like Gecko)*Chrome/*Safari/*OPR/35.0*
+Agent Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/48.0.2564.97 Safari/537.36
+ Matched by: Mozilla/5.0 (*Windows NT 6.1*) AppleWebKit/* (KHTML* like Gecko) Chrome/48.*Safari/*
+Agent Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.103 Safari/537.36
+ Matched by: Mozilla/5.0 (*Windows NT 6.1*) AppleWebKit/* (KHTML* like Gecko) Chrome/51.*Safari/*
+Agent Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/53.0.2785.143 Safari/537.36
+ Matched by: Mozilla/5.0 (*Windows NT 6.1*) AppleWebKit/* (KHTML* like Gecko) Chrome/53.*Safari/*
+Agent Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/53.0.2785.143 YaBrowser/16.10.1.1114 Yowser/2.5 Safari/537.36
+ Matched by: Mozilla/5.0 (*Windows NT 6.1*) AppleWebKit/* (KHTML* like Gecko) Chrome/53.*Safari/*
+Agent Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.71 Safari/537.36
+ Matched by: Mozilla/5.0 (*Windows NT 6.1*) AppleWebKit/* (KHTML* like Gecko) Chrome/54.*Safari/*
+Agent Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.87 Safari/537.36
+ Matched by: Mozilla/5.0 (*Windows NT 6.1*) AppleWebKit/* (KHTML* like Gecko) Chrome/54.*Safari/*
+Agent Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.99 Safari/537.36
+ Matched by: Mozilla/5.0 (*Windows NT 6.1*) AppleWebKit/* (KHTML* like Gecko) Chrome/54.*Safari/*
+Agent Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.99 Safari/537.36 OPR/41.0.2353.69
+ Matched by: Mozilla/5.0 (*Windows NT 6.1*) AppleWebKit/* (KHTML, like Gecko)*Chrome/*Safari/*OPR/41.0*
+Agent Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.75 Safari/537.36
+ Matched by: Mozilla/5.0 (*Windows NT 6.1*) AppleWebKit/* (KHTML* like Gecko) Chrome/55.*Safari/*
+Agent Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36
+ Matched by: Mozilla/5.0 (*Windows NT 6.1*) AppleWebKit/* (KHTML* like Gecko) Chrome/55.*Safari/*
+Agent Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Dragon/36.1.1.21 Chrome/36.0.1985.97 Safari/537.36
+ Matched by: *
+Agent Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Iron/29.0.1600.1 Chrome/29.0.1600.1 Safari/537.36
+ Matched by: *
+Agent Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Maxthon/4.4.3.4000 Chrome/30.0.1599.101 Safari/537.36
+ Matched by: *
+Agent Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Maxthon/4.4.4.600 Chrome/30.0.1599.101 Safari/537.36
+ Matched by: *
+Agent Mozilla/5.0 (Windows NT 6.1; WOW64; rv:16.0) Gecko/20100101 Firefox/36.0
+ Matched by: Mozilla/5.0 (*Windows NT 6.1*) Gecko* Firefox/36.0*
+Agent Mozilla/5.0 (Windows NT 6.1; WOW64; rv:19.0) Gecko/20100101 Firefox/19.0
+ Matched by: Mozilla/5.0 (*Windows NT 6.1*) Gecko* Firefox/*
+Agent Mozilla/5.0 (Windows NT 6.1; WOW64; rv:2.0b11pre) Gecko/20110128 Firefox/4.0b11pre
+ Matched by: Mozilla/5.0 (*Windows NT 6.1*) Gecko* Firefox/*
+Agent Mozilla/5.0 (Windows NT 6.1; WOW64; rv:2.0b7) Gecko/20100101 Firefox/4.0b7
+ Matched by: Mozilla/5.0 (*Windows NT 6.1*) Gecko* Firefox/*
+Agent Mozilla/5.0 (Windows NT 6.1; WOW64; rv:21.0) Gecko/20100101 Firefox/21.0
+ Matched by: Mozilla/5.0 (*Windows NT 6.1*) Gecko* Firefox/*
+Agent Mozilla/5.0 (Windows NT 6.1; WOW64; rv:22.0) Gecko/20100101 Firefox/22.0
+ Matched by: Mozilla/5.0 (*Windows NT 6.1*) Gecko* Firefox/*
+Agent Mozilla/5.0 (Windows NT 6.1; WOW64; rv:24.0) Gecko/20100101 Firefox/24.0
+ Matched by: Mozilla/5.0 (*Windows NT 6.1*) Gecko* Firefox/*
+Agent Mozilla/5.0 (Windows NT 6.1; WOW64; rv:25.0) Gecko/20100101 Firefox/25.0
+ Matched by: Mozilla/5.0 (*Windows NT 6.1*) Gecko* Firefox/*
+Agent Mozilla/5.0 (Windows NT 6.1; WOW64; rv:26.0) Gecko/20100101 Firefox/26.0
+ Matched by: Mozilla/5.0 (*Windows NT 6.1*) Gecko* Firefox/*
+Agent Mozilla/5.0 (Windows NT 6.1; WOW64; rv:27.0) Gecko/20100101 Firefox/27.0
+ Matched by: Mozilla/5.0 (*Windows NT 6.1*) Gecko* Firefox/*
+Agent Mozilla/5.0 (Windows NT 6.1; WOW64; rv:27.3) Gecko/20100101 Firefox/27.3
+ Matched by: Mozilla/5.0 (*Windows NT 6.1*) Gecko* Firefox/*
+Agent Mozilla/5.0 (Windows NT 6.1; WOW64; rv:28.0) Gecko/20100101 Firefox/28.0
+ Matched by: Mozilla/5.0 (*Windows NT 6.1*) Gecko* Firefox/*
+Agent Mozilla/5.0 (Windows NT 6.1; WOW64; rv:29.0) Gecko/20100101 Firefox/29.0
+ Matched by: Mozilla/5.0 (*Windows NT 6.1*) Gecko* Firefox/*
+Agent Mozilla/5.0 (Windows NT 6.1; WOW64; rv:31.0) Gecko/20100101 Firefox/31.0
+ Matched by: Mozilla/5.0 (*Windows NT 6.1*) Gecko* Firefox/31.0*
+Agent Mozilla/5.0 (Windows NT 6.1; WOW64; rv:31.0) Gecko/20130401 Firefox/31.0
+ Matched by: Mozilla/5.0 (*Windows NT 6.1*) Gecko* Firefox/31.0*
+Agent Mozilla/5.0 (Windows NT 6.1; WOW64; rv:33.0) Gecko/20100101 Firefox/33.0
+ Matched by: Mozilla/5.0 (*Windows NT 6.1*) Gecko* Firefox/33.0*
+Agent Mozilla/5.0 (Windows NT 6.1; WOW64; rv:34.0) Gecko/20100101 Firefox/34.0
+ Matched by: Mozilla/5.0 (*Windows NT 6.1*) Gecko* Firefox/34.0*
+Agent Mozilla/5.0 (Windows NT 6.1; WOW64; rv:35.0) Gecko/20100101 Firefox/35.0
+ Matched by: Mozilla/5.0 (*Windows NT 6.1*) Gecko* Firefox/35.0*
+Agent Mozilla/5.0 (Windows NT 6.1; WOW64; rv:36.0) Gecko/20100101 Firefox/36.0
+ Matched by: Mozilla/5.0 (*Windows NT 6.1*) Gecko* Firefox/36.0*
+Agent Mozilla/5.0 (Windows NT 6.1; WOW64; rv:37.0) Gecko/20100101 Firefox/37.0
+ Matched by: Mozilla/5.0 (*Windows NT 6.1*) Gecko* Firefox/37.0*
+Agent Mozilla/5.0 (Windows NT 6.1; WOW64; rv:38.0) Gecko/20100101 Firefox/38.0
+ Matched by: Mozilla/5.0 (*Windows NT 6.1*) Gecko* Firefox/38.0*
+Agent Mozilla/5.0 (Windows NT 6.1; WOW64; rv:40.0) Gecko/20100101 Firefox/40.1
+ Matched by: Mozilla/5.0 (*Windows NT 6.1*) Gecko* Firefox/*
+Agent Mozilla/5.0 (Windows NT 6.1; WOW64; rv:43.0) Gecko/20100101 Firefox/43.0
+ Matched by: Mozilla/5.0 (*Windows NT 6.1*) Gecko* Firefox/43.0*
+Agent Mozilla/5.0 (Windows NT 6.1; WOW64; rv:44.0) Gecko/20100101 Firefox/44.0
+ Matched by: Mozilla/5.0 (*Windows NT 6.1*) Gecko* Firefox/44.0*
+Agent Mozilla/5.0 (Windows NT 6.1; WOW64; rv:45.0) Gecko/20100101 Firefox/45.0
+ Matched by: Mozilla/5.0 (*Windows NT 6.1*) Gecko* Firefox/45.0*
+Agent Mozilla/5.0 (Windows NT 6.1; WOW64; rv:46.0) Gecko/20100101 Firefox/46.0
+ Matched by: Mozilla/5.0 (*Windows NT 6.1*) Gecko* Firefox/46.0*
+Agent Mozilla/5.0 (Windows NT 6.1; WOW64; rv:47.0) Gecko/20100101 Firefox/47.0
+ Matched by: Mozilla/5.0 (*Windows NT 6.1*) Gecko* Firefox/47.0*
+Agent Mozilla/5.0 (Windows NT 6.1; WOW64; rv:49.0) Gecko/20100101 Firefox/49.0
+ Matched by: Mozilla/5.0 (*Windows NT 6.1*) Gecko* Firefox/49.0*
+Agent Mozilla/5.0 (Windows NT 6.1; WOW64; rv:50.0) Gecko/20100101 Firefox/50.0
+ Matched by: Mozilla/5.0 (*Windows NT 6.1*) Gecko* Firefox/50.0*
+Agent Mozilla/5.0 (Windows NT 6.1; WOW64; Trident/7.0; AS; rv:11.0) like Gecko
+ Matched by: Mozilla/5.0 (*Windows NT 6.1*Trident/7.0*rv:11.0*
+Agent Mozilla/5.0 (Windows NT 6.1; WOW64; Trident/7.0; CTL_IE11; rv:11.0) like Gecko
+ Matched by: Mozilla/5.0 (*Windows NT 6.1*Trident/7.0*rv:11.0*
+Agent Mozilla/5.0 (Windows NT 6.1; WOW64; Trident/7.0; rv:11.0) like Gecko
+ Matched by: Mozilla/5.0 (*Windows NT 6.1*Trident/7.0*rv:11.0*
+Agent Mozilla/5.0 (Windows NT 6.2) AppleWebKit/537.36 (KHTML like Gecko) Chrome/27.0.1453.116 Safari/537.36
+ Matched by: Mozilla/5.0 (*Windows NT 6.2*) AppleWebKit/* (KHTML* like Gecko) Chrome/*Safari/*
+Agent Mozilla/5.0 (Windows NT 6.2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/31.0.1650.63 Safari/537.36 QIHU 360SE; 360Spider
+ Matched by: Mozilla/5.0 (*Windows NT 6.2*) AppleWebKit/* (KHTML* like Gecko) Chrome/*Safari/*
+Agent Mozilla/5.0 (Windows NT 6.2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.99 Safari/537.36
+ Matched by: Mozilla/5.0 (*Windows NT 6.2*) AppleWebKit/* (KHTML* like Gecko) Chrome/*Safari/*
+Agent Mozilla/5.0 (Windows NT 6.2;en-US) AppleWebKit/537.36 (KHTML, live Gecko) Chrome/39.0.2206.79 Safari/537
+ Matched by: *
+Agent Mozilla/5.0 (Windows NT 6.2; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2477.75 Safari/537.36
+ Matched by: Mozilla/5.0 (*Windows NT 6.2*) AppleWebKit/* (KHTML* like Gecko) Chrome/45.*Safari/*
+Agent Mozilla/5.0 (Windows NT 6.2; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.99 Safari/537.36
+ Matched by: Mozilla/5.0 (*Windows NT 6.2*) AppleWebKit/* (KHTML* like Gecko) Chrome/54.*Safari/*
+Agent Mozilla/5.0 (Windows NT 6.2; Win64; x64; rv:27.0) Gecko/20100101 Firefox/27.0
+ Matched by: Mozilla/5.0 (*Windows NT 6.2*) Gecko* Firefox/*
+Agent Mozilla/5.0 (Windows NT 6.2; Win64; x64; rv:36.0) Gecko/20100101 Firefox/36.0
+ Matched by: Mozilla/5.0 (*Windows NT 6.2*) Gecko* Firefox/36.0*
+Agent Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.31 (KHTML, like Gecko) Chrome/26.0.1410.58 Safari/537.31
+ Matched by: Mozilla/5.0 (*Windows NT 6.2*) AppleWebKit/* (KHTML* like Gecko) Chrome/*Safari/*
+Agent Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/27.0.1453.94 Safari/537.36
+ Matched by: Mozilla/5.0 (*Windows NT 6.2*) AppleWebKit/* (KHTML* like Gecko) Chrome/*Safari/*
+Agent Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.36 (KHTML like Gecko) Chrome/28.0.1469.0 Safari/537.36
+ Matched by: Mozilla/5.0 (*Windows NT 6.2*) AppleWebKit/* (KHTML* like Gecko) Chrome/*Safari/*
+Agent Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/29.0.1547.0 Safari/537.36
+ Matched by: Mozilla/5.0 (*Windows NT 6.2*) AppleWebKit/* (KHTML* like Gecko) Chrome/*Safari/*
+Agent Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.36 (KHTML like Gecko) Chrome/30.0.1599.69 Safari/537.36
+ Matched by: Mozilla/5.0 (*Windows NT 6.2*) AppleWebKit/* (KHTML* like Gecko) Chrome/*Safari/*
+Agent Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/31.0.1650.63 Safari/537.36
+ Matched by: Mozilla/5.0 (*Windows NT 6.2*) AppleWebKit/* (KHTML* like Gecko) Chrome/*Safari/*
+Agent Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/32.0.1700.107 Safari/537.36 OPR/19.0.1326.63 (Edition Campaign 21)
+ Matched by: Mozilla/5.0 (*Windows NT 6.2*) AppleWebKit/* (KHTML* like Gecko) Chrome/*Safari/*
+Agent Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/33.0.1750.5 Safari/537.36
+ Matched by: Mozilla/5.0 (*Windows NT 6.2*) AppleWebKit/* (KHTML* like Gecko) Chrome/*Safari/*
+Agent Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.36 (KHTML like Gecko) Chrome/34.0.1847.116 Safari/537.36
+ Matched by: Mozilla/5.0 (*Windows NT 6.2*) AppleWebKit/* (KHTML* like Gecko) Chrome/*Safari/*
+Agent Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.95 Safari/537.36
+ Matched by: Mozilla/5.0 (*Windows NT 6.2*) AppleWebKit/* (KHTML* like Gecko) Chrome/*Safari/*
+Agent Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2227.1 Safari/537.36
+ Matched by: Mozilla/5.0 (*Windows NT 6.2*) AppleWebKit/* (KHTML* like Gecko) Chrome/*Safari/*
+Agent Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2490.80 Safari/537.36
+ Matched by: Mozilla/5.0 (*Windows NT 6.2*) AppleWebKit/* (KHTML* like Gecko) Chrome/46.*Safari/*
+Agent Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.99 Safari/537.36
+ Matched by: Mozilla/5.0 (*Windows NT 6.2*) AppleWebKit/* (KHTML* like Gecko) Chrome/54.*Safari/*
+Agent Mozilla/5.0 (Windows NT 6.2; WOW64; rv:19.0) Gecko/20100101 Firefox/19.0
+ Matched by: Mozilla/5.0 (*Windows NT 6.2*) Gecko* Firefox/*
+Agent Mozilla/5.0 (Windows NT 6.2; WOW64; rv:26.0) Gecko/20100101 Firefox/26.0
+ Matched by: Mozilla/5.0 (*Windows NT 6.2*) Gecko* Firefox/*
+Agent Mozilla/5.0 (Windows NT 6.2; WOW64; rv:29.0) Gecko/20100101 Firefox/29.0
+ Matched by: Mozilla/5.0 (*Windows NT 6.2*) Gecko* Firefox/*
+Agent Mozilla/5.0 (Windows NT 6.2; WOW64; rv:34.0) Gecko/20100101 Firefox/34.0
+ Matched by: Mozilla/5.0 (*Windows NT 6.2*) Gecko* Firefox/34.0*
+Agent Mozilla/5.0 (Windows NT 6.2; WOW64; rv:35.0) Gecko/20100101 Firefox/35.0
+ Matched by: Mozilla/5.0 (*Windows NT 6.2*) Gecko* Firefox/35.0*
+Agent Mozilla/5.0 (Windows NT 6.2; WOW64; rv:36.0) Gecko/20100101 Firefox/36.0
+ Matched by: Mozilla/5.0 (*Windows NT 6.2*) Gecko* Firefox/36.0*
+Agent Mozilla/5.0 (Windows NT 6.2; WOW64; rv:44.0) Gecko/20100101 Firefox/44.0
+ Matched by: Mozilla/5.0 (*Windows NT 6.2*) Gecko* Firefox/44.0*
+Agent Mozilla/5.0 (Windows NT 6.2; WOW64; rv:49.0) Gecko/20100101 Firefox/49.0
+ Matched by: Mozilla/5.0 (*Windows NT 6.2*) Gecko* Firefox/49.0*
+Agent Mozilla/5.0 (Windows NT 6.2; WOW64; rv:50.0) Gecko/20100101 Firefox/50.0
+ Matched by: Mozilla/5.0 (*Windows NT 6.2*) Gecko* Firefox/50.0*
+Agent Mozilla/5.0 (Windows NT 6.2; WOW64; Trident/7.0; rv:11.0) like Gecko
+ Matched by: Mozilla/5.0 (*Windows NT 6.2*Trident/7.0*rv:11.0*
+Agent Mozilla/5.0 (Windows NT 6.3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.95 Safari/537.36
+ Matched by: Mozilla/5.0 (*Windows NT 6.3*) AppleWebKit/* (KHTML* like Gecko) Chrome/*Safari/*
+Agent Mozilla/5.0 (Windows NT 6.3; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/37.0.2049.0 Safari/537.36
+ Matched by: Mozilla/5.0 (*Windows NT 6.3*) AppleWebKit/* (KHTML* like Gecko) Chrome/*Safari/*
+Agent Mozilla/5.0 (Windows NT 6.3; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2220.0 Safari/537.36
+ Matched by: Mozilla/5.0 (*Windows NT 6.3*) AppleWebKit/* (KHTML* like Gecko) Chrome/*Safari/*
+Agent Mozilla/5.0 (Windows NT 6.3; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.71 Safari/537.36
+ Matched by: Mozilla/5.0 (*Windows NT 6.3*) AppleWebKit/* (KHTML* like Gecko) Chrome/54.*Safari/*
+Agent Mozilla/5.0 (Windows NT 6.3; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.87 Safari/537.36
+ Matched by: Mozilla/5.0 (*Windows NT 6.3*) AppleWebKit/* (KHTML* like Gecko) Chrome/54.*Safari/*
+Agent Mozilla/5.0 (Windows NT 6.3; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.99 Safari/537.36
+ Matched by: Mozilla/5.0 (*Windows NT 6.3*) AppleWebKit/* (KHTML* like Gecko) Chrome/54.*Safari/*
+Agent Mozilla/5.0 (Windows NT 6.3; Win64; x64; rv:49.0) Gecko/20100101 Firefox/49.0
+ Matched by: Mozilla/5.0 (*Windows NT 6.3*) Gecko* Firefox/49.0*
+Agent Mozilla/5.0 (Windows NT 6.3; Win64; x64; Trident/7.0; rv:11.0) like Gecko
+ Matched by: Mozilla/5.0 (*Windows NT 6.3*Trident/7.0*rv:11.0*
+Agent Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/31.0.1650.63 Safari/537.36
+ Matched by: Mozilla/5.0 (*Windows NT 6.3*) AppleWebKit/* (KHTML* like Gecko) Chrome/*Safari/*
+Agent Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/32.0.1700.72 Safari/537.36
+ Matched by: Mozilla/5.0 (*Windows NT 6.3*) AppleWebKit/* (KHTML* like Gecko) Chrome/*Safari/*
+Agent Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/32.0.1700.76 Safari/537.36
+ Matched by: Mozilla/5.0 (*Windows NT 6.3*) AppleWebKit/* (KHTML* like Gecko) Chrome/*Safari/*
+Agent Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/34.0.1788.0 Safari/537.36
+ Matched by: Mozilla/5.0 (*Windows NT 6.3*) AppleWebKit/* (KHTML* like Gecko) Chrome/*Safari/*
+Agent Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/34.0.1847.131 Safari/537.36
+ Matched by: Mozilla/5.0 (*Windows NT 6.3*) AppleWebKit/* (KHTML* like Gecko) Chrome/*Safari/*
+Agent Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/34.0.1847.137 Safari/537.36
+ Matched by: Mozilla/5.0 (*Windows NT 6.3*) AppleWebKit/* (KHTML* like Gecko) Chrome/*Safari/*
+Agent Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/36.0.1985.143 Safari/537.36
+ Matched by: Mozilla/5.0 (*Windows NT 6.3*) AppleWebKit/* (KHTML* like Gecko) Chrome/*Safari/*
+Agent Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.71 Safari/537.36
+ Matched by: Mozilla/5.0 (*Windows NT 6.3*) AppleWebKit/* (KHTML* like Gecko) Chrome/*Safari/*
+Agent Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.95 Safari/537.36
+ Matched by: Mozilla/5.0 (*Windows NT 6.3*) AppleWebKit/* (KHTML* like Gecko) Chrome/*Safari/*
+Agent Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/40.0.2214.115 Safari/537.36
+ Matched by: Mozilla/5.0 (*Windows NT 6.3*) AppleWebKit/* (KHTML* like Gecko) Chrome/*Safari/*
+Agent Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2272.118 Safari/537.36
+ Matched by: Mozilla/5.0 (*Windows NT 6.3*) AppleWebKit/* (KHTML* like Gecko) Chrome/*Safari/*
+Agent Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/42.0.2311.152 Safari/537.36
+ Matched by: Mozilla/5.0 (*Windows NT 6.3*) AppleWebKit/* (KHTML* like Gecko) Chrome/*Safari/*
+Agent Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/43.0.2357.65 Safari/537.36
+ Matched by: Mozilla/5.0 (*Windows NT 6.3*) AppleWebKit/* (KHTML* like Gecko) Chrome/*Safari/*
+Agent Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36
+ Matched by: Mozilla/5.0 (*Windows NT 6.3*) AppleWebKit/* (KHTML* like Gecko) Chrome/45.*Safari/*
+Agent Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/47.0.2526.111 Safari/537.36
+ Matched by: Mozilla/5.0 (*Windows NT 6.3*) AppleWebKit/* (KHTML* like Gecko) Chrome/47.*Safari/*
+Agent Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/48.0.2564.109 Safari/537.36
+ Matched by: Mozilla/5.0 (*Windows NT 6.3*) AppleWebKit/* (KHTML* like Gecko) Chrome/48.*Safari/*
+Agent Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/48.0.2564.116 Safari/537.36
+ Matched by: Mozilla/5.0 (*Windows NT 6.3*) AppleWebKit/* (KHTML* like Gecko) Chrome/48.*Safari/*
+Agent Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/48.0.2564.97 Safari/537.36
+ Matched by: Mozilla/5.0 (*Windows NT 6.3*) AppleWebKit/* (KHTML* like Gecko) Chrome/48.*Safari/*
+Agent Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.71 Safari/537.36
+ Matched by: Mozilla/5.0 (*Windows NT 6.3*) AppleWebKit/* (KHTML* like Gecko) Chrome/54.*Safari/*
+Agent Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.99 Safari/537.36
+ Matched by: Mozilla/5.0 (*Windows NT 6.3*) AppleWebKit/* (KHTML* like Gecko) Chrome/54.*Safari/*
+Agent Mozilla/5.0 (Windows NT 6.3; WOW64; rv:26.0) Gecko/20100101 Firefox/26.0
+ Matched by: Mozilla/5.0 (*Windows NT 6.3*) Gecko* Firefox/*
+Agent Mozilla/5.0 (Windows NT 6.3; WOW64; rv:28.0) Gecko/20100101 Firefox/28.0
+ Matched by: Mozilla/5.0 (*Windows NT 6.3*) Gecko* Firefox/*
+Agent Mozilla/5.0 (Windows NT 6.3; WOW64; rv:29.0) Gecko/20100101 Firefox/29.0
+ Matched by: Mozilla/5.0 (*Windows NT 6.3*) Gecko* Firefox/*
+Agent Mozilla/5.0 (Windows NT 6.3; WOW64; rv:31.0) Gecko/20100101 Firefox/31.0
+ Matched by: Mozilla/5.0 (*Windows NT 6.3*) Gecko* Firefox/31.0*
+Agent Mozilla/5.0 (Windows NT 6.3; WOW64; rv:32.0) Gecko/20100101 Firefox/32.0
+ Matched by: Mozilla/5.0 (*Windows NT 6.3*) Gecko* Firefox/32.0*
+Agent Mozilla/5.0 (Windows NT 6.3; WOW64; rv:34.0) Gecko/20100101 Firefox/34.0
+ Matched by: Mozilla/5.0 (*Windows NT 6.3*) Gecko* Firefox/34.0*
+Agent Mozilla/5.0 (Windows NT 6.3; WOW64; rv:35.0) Gecko/20100101 Firefox/35.0
+ Matched by: Mozilla/5.0 (*Windows NT 6.3*) Gecko* Firefox/35.0*
+Agent Mozilla/5.0 (Windows NT 6.3; WOW64; rv:37.0) Gecko/20100101 Firefox/37.0
+ Matched by: Mozilla/5.0 (*Windows NT 6.3*) Gecko* Firefox/37.0*
+Agent Mozilla/5.0 (Windows NT 6.3; WOW64; rv:43.0) Gecko/20100101 Firefox/43.0
+ Matched by: Mozilla/5.0 (*Windows NT 6.3*) Gecko* Firefox/43.0*
+Agent Mozilla/5.0 (Windows NT 6.3; WOW64; rv:44.0) Gecko/20100101 Firefox/44.0
+ Matched by: Mozilla/5.0 (*Windows NT 6.3*) Gecko* Firefox/44.0*
+Agent Mozilla/5.0 (Windows NT 6.3; WOW64; rv:45.0) Gecko/20100101 Firefox/45.0
+ Matched by: Mozilla/5.0 (*Windows NT 6.3*) Gecko* Firefox/45.0*
+Agent Mozilla/5.0 (Windows NT 6.3; WOW64; rv:49.0) Gecko/20100101 Firefox/49.0
+ Matched by: Mozilla/5.0 (*Windows NT 6.3*) Gecko* Firefox/49.0*
+Agent Mozilla/5.0 (Windows NT 6.3; WOW64; rv:50.0) Gecko/20100101 Firefox/50.0
+ Matched by: Mozilla/5.0 (*Windows NT 6.3*) Gecko* Firefox/50.0*
+Agent Mozilla/5.0 (Windows NT 6.3; WOW64; Trident/7.0; rv:11.0) like Gecko
+ Matched by: Mozilla/5.0 (*Windows NT 6.3*Trident/7.0*rv:11.0*
+Agent Mozilla/5.0 (Windows NT 6.3; WOW64; Trident/7.0; Touch; rv:11.0) like Gecko
+ Matched by: Mozilla/5.0 (*Windows NT 6.3*Trident/7.0*Touch*rv:11.0*)*
+Agent Mozilla/5.0 (Windows NT 8.1; WOW64; rv:48.0) Gecko/20100101 Firefox/48.0
+ Matched by: *
+Agent Mozilla/5.0 (Windows; U; MSIE 7.0; Windows NT 6.0; en-US)
+ Matched by: Mozilla/5.0 (*MSIE 7.0*
+Agent Mozilla/5.0 (Windows; U; MSIE 9.0; Windows NT 9.0; en-US)
+ Matched by: *
+Agent Mozilla/5.0 (Windows; U; MSIE 9.0; WIndows NT 9.0; en-US)
+ Matched by: *
+Agent Mozilla/5.0 (Windows; U; Windows NT 5.0; en-US; rv:1.7.12) Gecko/20050915 Firefox/1.0.7
+ Matched by: *
+Agent Mozilla/5.0 (Windows; U; Windows NT 5.1; en; rv:1.9.0.13) Gecko/2009073022 Firefox/3.5.2 (.NET CLR 3.5.30729) SurveyBot/2.3 (DomainTools)
+ Matched by: *
+Agent Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/532.1 (KHTML, like Gecko)Chrome/4.0.219.6 Safari/532.1
+ Matched by: *
+Agent Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/533.4 (KHTML, like Gecko) Chrome/5.0.375.99 Safari/533.4
+ Matched by: Mozilla/5.0 (*Windows*) AppleWebKit/* (KHTML* like Gecko) Chrome/*Safari/*
+Agent Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/534.16 (KHTML, like Gecko) Chrome/10.0.634.0 Safari/534.16
+ Matched by: Mozilla/5.0 (*Windows*) AppleWebKit/* (KHTML* like Gecko) Chrome/*Safari/*
+Agent Mozilla/5.0 (Windows; U; Windows NT 5.1; en-us; rv:1.7.12) Gecko/20050919 Firefox/1.0.7
+ Matched by: *
+Agent Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.0.1) Gecko/2008070208 Firefox/3.0.1
+ Matched by: *
+Agent Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.1.6) Gecko/20091201 Firefox/3.5.6 (.NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)
+ Matched by: *
+Agent Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.2.12) Gecko/20101026 Firefox/3.6.12
+ Matched by: *
+Agent Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.2.8) Gecko/20100721 Firefox/3.6.8
+ Matched by: *
+Agent Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.2) Gecko/20100115 Firefox/3.6
+ Matched by: *
+Agent Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:2.0.1) Gecko/20110606 Firefox/4.0.1
+ Matched by: *
+Agent Mozilla/5.0 (Windows; U; Windows NT 5.1; it; rv:1.8.1.11) Gecko/20071127 Firefox/2.0.0.11
+ Matched by: *
+Agent Mozilla/5.0 (Windows; U; Windows NT 5.1; pt-PT; rv:1.9.1.2) Gecko/20090729 Firefox/3.5.2 (.NET CLR 3.5.30729)
+ Matched by: *
+Agent Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.9.0.7) Gecko/2009021910 Firefox/3.0.7 (.NET CLR 3.5.30729)
+ Matched by: *
+Agent Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.9.2.26) Gecko/20120128 Firefox/3.6.26 GTB7.1 ( .NET CLR 3.5.30729)
+ Matched by: *
+Agent Mozilla/5.0 (Windows; U; Windows NT 5.1; rv:1.7.3) Gecko/20041001 Firefox/0.10.1
+ Matched by: *
+Agent Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-CN; rv:1.9.2.2) Gecko/20100316 Firefox/3.6.2 (.NET CLR 3.5.30729)
+ Matched by: *
+Agent Mozilla/5.0 (Windows; U; Windows NT 5.2; en-US) AppleWebKit/530.5 (KHTML, like Gecko) Chrome/2.0.172.30 Safari/530.5
+ Matched by: Mozilla/5.0 (*Windows*) AppleWebKit/* (KHTML* like Gecko) Chrome/*Safari/*
+Agent Mozilla/5.0 (Windows; U; Windows NT 5.2; en-US) AppleWebKit/534.17 (KHTML, like Gecko) Chrome/11.0.652.0 Safari/534.17
+ Matched by: Mozilla/5.0 (*Windows*) AppleWebKit/* (KHTML* like Gecko) Chrome/*Safari/*
+Agent Mozilla/5.0 (Windows; U; Windows NT 5.2; en-US; rv:1.9.1.3) Gecko/20090824 Firefox/3.5.3(.NET CLR 3.5.30729)
+ Matched by: *
+Agent Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US; rv:1.9.0.3) Gecko/2008092417 Firefox/3.0.4
+ Matched by: Mozilla/5.0 (*Windows NT 6.0*) Gecko* Firefox/*
+Agent Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US; rv:1.9.2.3) Gecko/20100401 Firefox/3.6.3 GTB6 (.NET CLR 3.5.30729)
+ Matched by: Mozilla/5.0 (*Windows NT 6.0*) Gecko* Firefox/*
+Agent Mozilla/5.0 (Windows; U; Windows NT 6.1; en; rv:1.9.1.3) Gecko/20090824 Firefox/3.5.3(.NET CLR 3.5.30729)
+ Matched by: Mozilla/5.0 (*Windows NT 6.1*) Gecko* Firefox/*
+Agent Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US) AppleWebKit/533.19.4 (KHTML, like Gecko) Version/5.0.2 Safari/533.18.5
+ Matched by: Mozilla/5.0 (*Windows NT 6.1*) AppleWebKit/* (KHTML* like Gecko) *Version/* Safari/*
+Agent Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US) AppleWebKit/534.13 (KHTML, like Gecko) Chrome/9.0.597.107 Safari/534.13 BuiltWith/1.2
+ Matched by: Mozilla/5.0 (*Windows NT 6.1*) AppleWebKit/* (KHTML* like Gecko) Chrome/*Safari/*
+Agent =Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US) AppleWebKit/534.16 (KHTML, like Gecko) Chrome/10.0.648.204 Safari/534.16
+ Matched by: *
+Agent Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.1.1) Gecko/20090718 Firefox/3.5.1
+ Matched by: Mozilla/5.0 (*Windows NT 6.1*) Gecko* Firefox/*
+Agent Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.2.23) Gecko/20110920 Firefox/3.6.23
+ Matched by: Mozilla/5.0 (*Windows NT 6.1*) Gecko* Firefox/*
+Agent Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.2.28)
+ Matched by: *
+Agent Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.2.28) Gecko/20120306 Firefox/3.6.28
+ Matched by: Mozilla/5.0 (*Windows NT 6.1*) Gecko* Firefox/*
+Agent Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.2b1) Gecko/20091014 Firefox/3.6b1 GTB5
+ Matched by: Mozilla/5.0 (*Windows NT 6.1*) Gecko* Firefox/*
+Agent Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.2b5) Gecko/20091204 Firefox/3.6b5
+ Matched by: Mozilla/5.0 (*Windows NT 6.1*) Gecko* Firefox/*
+Agent Mozilla/5.0 (Windows; U; Windows NT 6.1; ru; rv:1.9.2.2) Gecko/20100316 Firefox/3.6.2 WebMoney Advisor
+ Matched by: Mozilla/5.0 (*Windows NT 6.1*) Gecko* Firefox/*
+Agent Mozilla/5.0 (Windows; U; Windows NT 6.1; ru; rv:1.9.2.8) Gecko/20100722 Firefox/3.6.8
+ Matched by: Mozilla/5.0 (*Windows NT 6.1*) Gecko* Firefox/*
+Agent Mozilla/5.0 (Windows; U; Windows NT 6.1; rv:2.2) Gecko/20110201
+ Matched by: Mozilla/5.0 (*Windows NT 6.1*) Gecko*/*
+Agent Mozilla/5.0 (Windows; Windows NT 5.1; en-US) Firefox/3.5.0
+ Matched by: *
+Agent Mozilla/5.0 (X11; CrOS i686 1660.57.0) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.46 Safari/535.19
+ Matched by: *
+Agent Mozilla/5.0 (X11; CrOS x86_64 6310.68.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.96 Safari/537.36
+ Matched by: *
+Agent Mozilla/5.0 (X11; Fedora; Linux x86_64; rv:49.0) Gecko/20100101 Firefox/49.0
+ Matched by: Mozilla/5.0 (*Linux*) Gecko* Firefox/49.0*
+Agent Mozilla/5.0 (X11; Fedora; Linux x86_64; rv:50.0) Gecko/20100101 Firefox/50.0
+ Matched by: Mozilla/5.0 (*Linux*) Gecko* Firefox/50.0*
+Agent Mozilla/5.0 (X11; FreeBSD amd64; rv:45.0) Gecko/20100101 Firefox/45.0
+ Matched by: *
+Agent Mozilla/5.0 (X11; Linux i686) AppleWebKit/534.30 (KHTML, like Gecko) Ubuntu/10.10 Chromium/12.0.742.112 Chrome/12.0.742.112 Safari/534.30
+ Matched by: *
+Agent Mozilla/5.0 (X11; Linux i686) AppleWebKit/534.34 (KHTML, like Gecko) Qt/4.8.4 Safari/534.34
+ Matched by: *
+Agent Mozilla/5.0 (X11; Linux i686) AppleWebKit/535.11 (KHTML, like Gecko) Ubuntu/11.10 Chromium/17.0.963.65 Chrome/17.0.963.65 Safari/535.11
+ Matched by: *
+Agent Mozilla/5.0 (X11; Linux i686) AppleWebKit/535.1 (KHTML, like Gecko) Ubuntu/10.04 Chromium/14.0.813.0 Chrome/14.0.813.0 Safari/535.1
+ Matched by: *
+Agent Mozilla/5.0 (X11; Linux i686) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/30.0.1599.66 Safari/537.36
+ Matched by: Mozilla/5.0 (*Linux*) AppleWebKit/* (KHTML* like Gecko) Chrome/*Safari/*
+Agent Mozilla/5.0 (X11; Linux i686) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/31.0.1650.63 Safari/537.36
+ Matched by: Mozilla/5.0 (*Linux*) AppleWebKit/* (KHTML* like Gecko) Chrome/*Safari/*
+Agent Mozilla/5.0 (X11; Linux i686) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2303.22 Safari/537.36
+ Matched by: Mozilla/5.0 (*Linux*) AppleWebKit/* (KHTML* like Gecko) Chrome/*Safari/*
+Agent Mozilla/5.0 (X11; Linux i686) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/42.0.2315.18 Safari/537.36
+ Matched by: Mozilla/5.0 (*Linux*) AppleWebKit/* (KHTML* like Gecko) Chrome/*Safari/*
+Agent Mozilla/5.0 (X11; Linux i686) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/48.0.2564.116 Safari/537.36
+ Matched by: Mozilla/5.0 (*Linux*) AppleWebKit/* (KHTML* like Gecko) Chrome/48.*Safari/*
+Agent Mozilla/5.0 (X11; Linux i686) AppleWebKit/537.36 (KHTML, like Gecko) Ubuntu Chromium/31.0.1650.63 Chrome/31.0.1650.63 Safari/537.36
+ Matched by: *
+Agent Mozilla/5.0 (X11; Linux i686 on x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/34.0.1870.93 Safari/537.36
+ Matched by: Mozilla/5.0 (*Linux*) AppleWebKit/* (KHTML* like Gecko) Chrome/*Safari/*
+Agent Mozilla/5.0 (X11; Linux i686 on x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/44.0.2447.81 Safari/537.36
+ Matched by: Mozilla/5.0 (*Linux*) AppleWebKit/* (KHTML* like Gecko) Chrome/*Safari/*
+Agent Mozilla/5.0 (X11; Linux i686 on x86_64; rv:28.0) Gecko/20100101 Firefox/28.0
+ Matched by: Mozilla/5.0 (*Linux*) Gecko* Firefox/*
+Agent Mozilla/5.0 (X11; Linux i686; rv:17.0) Gecko/20100101 Firefox/17.0
+ Matched by: Mozilla/5.0 (*Linux*) Gecko* Firefox/*
+Agent Mozilla/5.0 (X11; Linux i686; rv:21.0) Gecko/20100101 Firefox/21.0
+ Matched by: Mozilla/5.0 (*Linux*) Gecko* Firefox/*
+Agent Mozilla/5.0 (X11; Linux i686; rv:3.0) Gecko/20100101 Goanna/20161003 PaleMoon/27.0.0b1
+ Matched by: *
+Agent Mozilla/5.0 (X11; Linux i686; rv:45.0) Gecko/20100101 Firefox/45.0
+ Matched by: Mozilla/5.0 (*Linux*) Gecko* Firefox/45.0*
+Agent Mozilla/5.0 (X11; Linux ppc; rv:5.0) Gecko/20100101 Firefox/5.0
+ Matched by: Mozilla/5.0 (*Linux*) Gecko* Firefox/*
+Agent Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/534.24 (KHTML, like Gecko) Chrome/11.0.696.34 Safari/534.24
+ Matched by: Mozilla/5.0 (*Linux*) AppleWebKit/* (KHTML* like Gecko) Chrome/*Safari/*
+Agent Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/534.24 (KHTML, like Gecko) Chrome/11.0.696.3 Safari/534.24
+ Matched by: Mozilla/5.0 (*Linux*) AppleWebKit/* (KHTML* like Gecko) Chrome/*Safari/*
+Agent Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/534.30 (KHTML, like Gecko) Ubuntu/10.10 Chromium/12.0.742.112 Chrome/12.0.742.112 Safari/534.30
+ Matched by: *
+Agent Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/534.34 (KHTML, like Gecko) Qt/4.8.2
+ Matched by: *
+Agent Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/534.34 (KHTML, like Gecko) Qt/4.8.2 Safari/534.34
+ Matched by: *
+Agent Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/535.11 (KHTML, like Gecko) Ubuntu/11.04 Chromium/17.0.963.65 Chrome/17.0.963.65 Safari/535.11
+ Matched by: *
+Agent Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/535.19 (KHTML, like Gecko) Ubuntu/11.10 Chromium/18.0.1025.142 Chrome/18.0.1025.142 Safari/535.19
+ Matched by: *
+Agent Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/14.0.803.0 Safari/535.1
+ Matched by: Mozilla/5.0 (*Linux*) AppleWebKit/* (KHTML* like Gecko) Chrome/*Safari/*
+Agent Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/536.5 (KHTML, like Gecko) Chrome/19.0.1084.9 Safari/536.5
+ Matched by: Mozilla/5.0 (*Linux*) AppleWebKit/* (KHTML* like Gecko) Chrome/*Safari/*
+Agent Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/28.0.1500.71 Safari/537.36
+ Matched by: Mozilla/5.0 (*Linux*) AppleWebKit/* (KHTML* like Gecko) Chrome/*Safari/*
+Agent Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/30.0.1599.114 Safari/537.36
+ Matched by: Mozilla/5.0 (*Linux*) AppleWebKit/* (KHTML* like Gecko) Chrome/*Safari/*
+Agent Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/31.0.1650.57 Safari/537.36
+ Matched by: Mozilla/5.0 (*Linux*) AppleWebKit/* (KHTML* like Gecko) Chrome/*Safari/*
+Agent Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/31.0.1650.63 Safari/537.36
+ Matched by: Mozilla/5.0 (*Linux*) AppleWebKit/* (KHTML* like Gecko) Chrome/*Safari/*
+Agent Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/33.0.1787.44 Safari/537.36
+ Matched by: Mozilla/5.0 (*Linux*) AppleWebKit/* (KHTML* like Gecko) Chrome/*Safari/*
+Agent Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/36.0.1985.125 Safari/537.36
+ Matched by: Mozilla/5.0 (*Linux*) AppleWebKit/* (KHTML* like Gecko) Chrome/*Safari/*
+Agent Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/37.0.2062.120 Safari/537.36
+ Matched by: Mozilla/5.0 (*Linux*) AppleWebKit/* (KHTML* like Gecko) Chrome/*Safari/*
+Agent Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.71 Safari/537.36
+ Matched by: Mozilla/5.0 (*Linux*) AppleWebKit/* (KHTML* like Gecko) Chrome/*Safari/*
+Agent Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.99 Safari/537.36
+ Matched by: Mozilla/5.0 (*Linux*) AppleWebKit/* (KHTML* like Gecko) Chrome/*Safari/*
+Agent Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/43.0.2357.130 Safari/537.36
+ Matched by: Mozilla/5.0 (*Linux*) AppleWebKit/* (KHTML* like Gecko) Chrome/*Safari/*
+Agent Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/47.0.2526.111 Safari/537.36
+ Matched by: Mozilla/5.0 (*Linux*) AppleWebKit/* (KHTML* like Gecko) Chrome/47.*Safari/*
+Agent Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/48.0.2564.97 Safari/537.36
+ Matched by: Mozilla/5.0 (*Linux*) AppleWebKit/* (KHTML* like Gecko) Chrome/48.*Safari/*
+Agent Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2623.75 Safari/537.36 Google Favicon
+ Matched by: Mozilla/5.0 (*Linux*) AppleWebKit/* (KHTML* like Gecko) Chrome/49.*Safari/*
+Agent Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/50.0.2661.75 Safari/537.36
+ Matched by: Mozilla/5.0 (*Linux*) AppleWebKit/* (KHTML* like Gecko) Chrome/50.*Safari/*
+Agent Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/50.0.2661.86 Safari/537.36
+ Matched by: Mozilla/5.0 (*Linux*) AppleWebKit/* (KHTML* like Gecko) Chrome/50.*Safari/*
+Agent Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/53.0.2785.116 Safari/537.36
+ Matched by: Mozilla/5.0 (*Linux*) AppleWebKit/* (KHTML* like Gecko) Chrome/53.*Safari/*
+Agent Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/53.0.2785.143 Safari/537.36
+ Matched by: Mozilla/5.0 (*Linux*) AppleWebKit/* (KHTML* like Gecko) Chrome/53.*Safari/*
+Agent Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/53.0.2785.89 Safari/537.36
+ Matched by: Mozilla/5.0 (*Linux*) AppleWebKit/* (KHTML* like Gecko) Chrome/53.*Safari/*
+Agent Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.100 Safari/537.36
+ Matched by: Mozilla/5.0 (*Linux*) AppleWebKit/* (KHTML* like Gecko) Chrome/54.*Safari/*
+Agent Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.59 Safari/537.36
+ Matched by: Mozilla/5.0 (*Linux*) AppleWebKit/* (KHTML* like Gecko) Chrome/54.*Safari/*
+Agent Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.71 Safari/537.36
+ Matched by: Mozilla/5.0 (*Linux*) AppleWebKit/* (KHTML* like Gecko) Chrome/54.*Safari/*
+Agent Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.90 Safari/537.36
+ Matched by: Mozilla/5.0 (*Linux*) AppleWebKit/* (KHTML* like Gecko) Chrome/54.*Safari/*
+Agent Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.75 Safari/537.36
+ Matched by: Mozilla/5.0 (*Linux*) AppleWebKit/* (KHTML* like Gecko) Chrome/55.*Safari/*
+Agent Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36
+ Matched by: Mozilla/5.0 (*Linux*) AppleWebKit/* (KHTML* like Gecko) Chrome/55.*Safari/*
+Agent Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko; Google Web Preview) Chrome/27.0.1453 Safari/537.36
+ Matched by: *
+Agent Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Ubuntu Chromium/31.0.1650.63 Chrome/31.0.1650.63 Safari/537.36
+ Matched by: *
+Agent Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Ubuntu Chromium/53.0.2785.143 Chrome/53.0.2785.143 Safari/537.36
+ Matched by: Mozilla/5.0 (*Linux*) AppleWebKit/* (KHTML* like Gecko)*Chromium/53.*Chrome/*Safari/*
+Agent Mozilla/5.0 (X11; Linux x86_64) Gecko Firefox/5.0
+ Matched by: Mozilla/5.0 (*Linux*) Gecko* Firefox/*
+Agent Mozilla/5.0 (X11; Linux x86_64; rv:18.0) Gecko/20100101 Firefox/18.0
+ Matched by: Mozilla/5.0 (*Linux*) Gecko* Firefox/*
+Agent Mozilla/5.0 (X11; Linux x86_64; rv:26.0) Gecko/20100101 Firefox/26.0
+ Matched by: Mozilla/5.0 (*Linux*) Gecko* Firefox/*
+Agent Mozilla/5.0 (X11; Linux x86_64; rv:29.0) Gecko/20100101 Firefox/29.0 Iceweasel/29.0a2
+ Matched by: Mozilla/5.0 (*Linux*) Gecko* Firefox/*
+Agent Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Firefox/45.0
+ Matched by: Mozilla/5.0 (*Linux*) Gecko* Firefox/45.0*
+Agent Mozilla/5.0 (X11; Linux x86_64; rv:49.0) Gecko/20100101 Firefox/49.0
+ Matched by: Mozilla/5.0 (*Linux*) Gecko* Firefox/49.0*
+Agent Mozilla/5.0 (X11; Linux x86_64; rv:50.0) Gecko/20100101 Firefox/50.0
+ Matched by: Mozilla/5.0 (*Linux*) Gecko* Firefox/50.0*
+Agent Mozilla/5.0 (X11; Linux x86_64; rv:51.0) Gecko/20100101 Firefox/51.0
+ Matched by: Mozilla/5.0 (*Linux*) Gecko* Firefox/*
+Agent Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Firefox/52.0
+ Matched by: Mozilla/5.0 (*Linux*) Gecko* Firefox/*
+Agent Mozilla/5.0 (X11; Ubuntu; Linux i686) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/44.0.2446.66 Safari/537.36
+ Matched by: Mozilla/5.0 (*Linux*) AppleWebKit/* (KHTML* like Gecko) Chrome/*Safari/*
+Agent Mozilla/5.0 (X11; Ubuntu; Linux i686 on x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/34.0.1907.88 Safari/537.36
+ Matched by: Mozilla/5.0 (*Linux*) AppleWebKit/* (KHTML* like Gecko) Chrome/*Safari/*
+Agent Mozilla/5.0 (X11; Ubuntu; Linux i686; rv:14.0) Gecko/20100101 Firefox/14.0.1
+ Matched by: Mozilla/5.0 (*Linux*) Gecko* Firefox/*
+Agent Mozilla/5.0 (X11; Ubuntu; Linux i686; rv:14.0; ips-agent) Gecko/20100101 Firefox/14.0.1
+ Matched by: Mozilla/5.0 (*Linux*) Gecko* Firefox/*
+Agent Mozilla/5.0 (X11; Ubuntu; Linux i686; rv:26.0) Gecko/20100101 Firefox/26.0
+ Matched by: Mozilla/5.0 (*Linux*) Gecko* Firefox/*
+Agent Mozilla/5.0 (X11; Ubuntu; Linux i686; rv:34.0) Gecko/20100101 Firefox/34.0
+ Matched by: Mozilla/5.0 (*Linux*) Gecko* Firefox/34.0*
+Agent Mozilla/5.0 (X11; Ubuntu; Linux i686; rv:42.0) Gecko/20100101 Firefox/42.0
+ Matched by: Mozilla/5.0 (*Linux*) Gecko* Firefox/42.0*
+Agent Mozilla/5.0 (X11; Ubuntu; Linux i686; rv:49.0) Gecko/20100101 Firefox/49.0
+ Matched by: Mozilla/5.0 (*Linux*) Gecko* Firefox/49.0*
+Agent Mozilla/5.0 (X11; Ubuntu; Linux i686; rv:50.0) Gecko/20100101 Firefox/50.0
+ Matched by: Mozilla/5.0 (*Linux*) Gecko* Firefox/50.0*
+Agent Mozilla/5.0 (X11; Ubuntu; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/36.0.1992.77 Safari/537.36
+ Matched by: Mozilla/5.0 (*Linux*) AppleWebKit/* (KHTML* like Gecko) Chrome/*Safari/*
+Agent Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:21.0) Gecko/20100101 Firefox/21.0
+ Matched by: Mozilla/5.0 (*Linux*) Gecko* Firefox/*
+Agent Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:25.0) Gecko/20100101 Firefox/25.0
+ Matched by: Mozilla/5.0 (*Linux*) Gecko* Firefox/*
+Agent Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:26.0) Gecko/20100101 Firefox/26.0
+ Matched by: Mozilla/5.0 (*Linux*) Gecko* Firefox/*
+Agent Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:47.0) Gecko/20100101 Firefox/47.0
+ Matched by: Mozilla/5.0 (*Linux*) Gecko* Firefox/47.0*
+Agent Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:49.0) Gecko/20100101 Firefox/49.0
+ Matched by: Mozilla/5.0 (*Linux*) Gecko* Firefox/49.0*
+Agent Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:50.0) Gecko/20100101 Firefox/50.0
+ Matched by: Mozilla/5.0 (*Linux*) Gecko* Firefox/50.0*
+Agent Mozilla/5.0 (X11; U; Linux Core i7-4980HQ; de; rv:32.0; compatible; JobboerseBot; http://www.jobboerse.com/bot.htm) Gecko/20100101 Firefox/38.0
+ Matched by: Mozilla/5.0 (*Linux*) Gecko* Firefox/38.0*
+Agent Mozilla/5.0 (X11; U; Linux i586; en-US) AppleWebKit/533.2 (KHTML, like Gecko) Chrome/5.0.342.1 Safari/533.2
+ Matched by: Mozilla/5.0 (*Linux*) AppleWebKit/* (KHTML* like Gecko) Chrome/*Safari/*
+Agent Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.7.8) Gecko/20050511
+ Matched by: *
+Agent Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.1.16) Gecko/20120421 Firefox/11.0
+ Matched by: Mozilla/5.0 (*Linux*) Gecko* Firefox/*
+Agent Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.2.4) Gecko/20100625 Gentoo Firefox/3.6.4
+ Matched by: Mozilla/5.0 (*Linux*) Gecko* Firefox/*
+Agent Mozilla/5.0 (X11; U; Linux i686; pt-BR; rv:1.9.0.15) Gecko/2009102815 Ubuntu/9.04 (jaunty) Firefox/3.0.15
+ Matched by: Mozilla/5.0 (*Linux*) Gecko* Firefox/*
+Agent Mozilla/5.0 (X11; U; Linux x86_64; en-US) AppleWebKit/533.2 (KHTML, like Gecko) Chrome/5.0.342.1 Safari/533.2
+ Matched by: Mozilla/5.0 (*Linux*) AppleWebKit/* (KHTML* like Gecko) Chrome/*Safari/*
+Agent Mozilla/5.0 (X11; U; Linux x86_64; en-US) AppleWebKit/534.16 (KHTML, like Gecko) Chrome/10.0.648.11 Safari/534.16
+ Matched by: Mozilla/5.0 (*Linux*) AppleWebKit/* (KHTML* like Gecko) Chrome/*Safari/*
+Agent Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.1.3) Gecko/20090913 Firefox/3.5.3
+ Matched by: Mozilla/5.0 (*Linux*) Gecko* Firefox/*
+Agent Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.2.4) Gecko/20100614 Ubuntu/10.04 (lucid) Firefox/3.6.4
+ Matched by: Mozilla/5.0 (*Linux*) Gecko* Firefox/*
+Agent Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.2a1pre) Gecko/20090405 Firefox/3.6a1pre
+ Matched by: Mozilla/5.0 (*Linux*) Gecko* Firefox/*
+Agent Mozilla/5.0 zgrab/0.x
+ Matched by: *
+Agent Mozilla/6.0 (compatible)
+ Matched by: *
+Agent Mozilla/6.0 (compatible; MSIE 7.0a1; Windows NT 5.2; SV1)
+ Matched by: *
+Agent node-fetch/1.0 (+https://github.com/bitinn/node-fetch)
+ Matched by: *
+Agent nutch-1.4/Nutch-1.4
+ Matched by: *
+Agent Opera/7.11 (Windows NT 5.1; U) [en]
+ Matched by: *
+Agent Opera/7.54 (Windows NT 5.1; U) [pl]
+ Matched by: *
+Agent Opera/7.60 (Windows NT 5.2; U) [en] (IBM EVV/3.0/EAK01AG9/LE)
+ Matched by: *
+Agent Opera/8.00 (Windows NT 5.1; U; en)
+ Matched by: *
+Agent Opera/8.01 (Windows NT 5.1)
+ Matched by: *
+Agent Opera/9.00 (Windows NT 4.0; U; en)
+ Matched by: *
+Agent Opera/9.00 (Windows NT 5.1; U; en)
+ Matched by: *
+Agent Opera/9.00 (Windows NT 5.1; U; ru)
+ Matched by: *
+Agent Opera/9.01 (Windows NT 5.1; U; en)
+ Matched by: *
+Agent Opera/9.0 (Windows NT 5.1; U; en)
+ Matched by: *
+Agent Opera/9.80 (Android; Opera Mini/13.0.2036/37.9093; U; az) Presto/2.12.423 Version/12.16
+ Matched by: *
+Agent Opera/9.80 (Android; Opera Mini/7.5.33725/37.9154; U; en) Presto/2.12.423 Version/12.16
+ Matched by: *
+Agent Opera/9.80 (SpreadTrum; Opera Mini/4.4.31492/37.9178; U; en) Presto/2.12.423 Version/12.16
+ Matched by: *
+Agent Opera/9.80 (Windows NT 5.1; U; en) Presto/2.10.229 Version/11.60
+ Matched by: *
+Agent Opera/9.80 (Windows NT 5.1; U; en) Presto/2.2.15 Version/10.10
+ Matched by: *
+Agent Opera/9.80 (Windows NT 5.1; U; ru) Presto/2.9.168 Version/11.50
+ Matched by: *
+Agent Opera/9.80 (Windows NT 5.1; U; sk) Presto/2.10.229 Version/11.64
+ Matched by: *
+Agent Opera/9.80 (Windows NT 6.1; MRA 8.4 (build 7786)) Presto/2.12.388 Version/12.17
+ Matched by: *
+Agent Opera/9.80 (Windows NT 6.1; WOW64) Presto/2.12.388 Version/12.16
+ Matched by: *
+Agent Opera/9.80 (Windows NT 6.2; Win64; x64) Presto/2.12.388 Version/12.17
+ Matched by: *
+Agent Opera/9.80 (X11; Linux x86_64) Presto/2.12.388 Version/12.16
+ Matched by: *
+Agent panscient.com
+ Matched by: *
+Agent Pcore-HTTP/v0.24.5
+ Matched by: *
+Agent peopleman/1.6
+ Matched by: *
+Agent perl post
+ Matched by: *
+Agent Phantom.js bot
+ Matched by: *
+Agent PHP/5.2.00
+ Matched by: *
+Agent PHP/5.2.03
+ Matched by: *
+Agent PHP/5.2.04
+ Matched by: *
+Agent PHP/5.2.06
+ Matched by: *
+Agent PHP/5.2.07
+ Matched by: *
+Agent PHP/5.2.10
+ Matched by: *
+Agent PHP/5.2.12
+ Matched by: *
+Agent PHP/5.2.14
+ Matched by: *
+Agent PHP/5.2.15
+ Matched by: *
+Agent PHP/5.2.20
+ Matched by: *
+Agent PHP/5.2.21
+ Matched by: *
+Agent PHP/5.2.22
+ Matched by: *
+Agent PHP/5.2.26
+ Matched by: *
+Agent PHP/5.2.30
+ Matched by: *
+Agent PHP/5.2.32
+ Matched by: *
+Agent PHP/5.2.37
+ Matched by: *
+Agent PHP/5.2.38
+ Matched by: *
+Agent PHP/5.2.39
+ Matched by: *
+Agent PHP/5.2.42
+ Matched by: *
+Agent PHP/5.2.45
+ Matched by: *
+Agent PHP/5.2.47
+ Matched by: *
+Agent PHP/5.2.48
+ Matched by: *
+Agent PHP/5.2.49
+ Matched by: *
+Agent PHP/5.2.50
+ Matched by: *
+Agent PHP/5.2.52
+ Matched by: *
+Agent PHP/5.2.54
+ Matched by: *
+Agent PHP/5.2.55
+ Matched by: *
+Agent PHP/5.2.56
+ Matched by: *
+Agent PHP/5.2.61
+ Matched by: *
+Agent PHP/5.2.64
+ Matched by: *
+Agent PHP/5.2.67
+ Matched by: *
+Agent PHP/5.2.68
+ Matched by: *
+Agent PHP/5.2.71
+ Matched by: *
+Agent PHP/5.2.72
+ Matched by: *
+Agent PHP/5.2.73
+ Matched by: *
+Agent PHP/5.2.74
+ Matched by: *
+Agent PHP/5.2.76
+ Matched by: *
+Agent PHP/5.2.77
+ Matched by: *
+Agent PHP/5.2.79
+ Matched by: *
+Agent PHP/5.2.80
+ Matched by: *
+Agent PHP/5.2.82
+ Matched by: *
+Agent PHP/5.2.86
+ Matched by: *
+Agent PHP/5.2.89
+ Matched by: *
+Agent PHP/5.2.90
+ Matched by: *
+Agent PHP/5.2.91
+ Matched by: *
+Agent PHP/5.2.92
+ Matched by: *
+Agent PHP/5.2.95
+ Matched by: *
+Agent PHP/5.2.96
+ Matched by: *
+Agent PHP/5.3.02
+ Matched by: *
+Agent PHP/5.3.04
+ Matched by: *
+Agent PHP/5.3.10
+ Matched by: *
+Agent PHP/5.3.11
+ Matched by: *
+Agent PHP/5.3.14
+ Matched by: *
+Agent PHP/5.3.15
+ Matched by: *
+Agent PHP/5.{3|2}.{1|2|3|4|5|6|7|8|9|0}{1|2|3|4|5|6|7|8|9|0}
+ Matched by: *
+Agent PHP/5.3.22
+ Matched by: *
+Agent PHP/5.3.23
+ Matched by: *
+Agent PHP/5.3.25
+ Matched by: *
+Agent PHP/5.3.26
+ Matched by: *
+Agent PHP/5.3.30
+ Matched by: *
+Agent PHP/5.3.32
+ Matched by: *
+Agent PHP/5.3.34
+ Matched by: *
+Agent PHP/5.3.39
+ Matched by: *
+Agent PHP/5.3.41
+ Matched by: *
+Agent PHP/5.3.48
+ Matched by: *
+Agent PHP/5.3.49
+ Matched by: *
+Agent PHP/5.3.51
+ Matched by: *
+Agent PHP/5.3.53
+ Matched by: *
+Agent PHP/5.3.57
+ Matched by: *
+Agent PHP/5.3.58
+ Matched by: *
+Agent PHP/5.3.59
+ Matched by: *
+Agent PHP/5.3.61
+ Matched by: *
+Agent PHP/5.3.64
+ Matched by: *
+Agent PHP/5.3.65
+ Matched by: *
+Agent PHP/5.3.66
+ Matched by: *
+Agent PHP/5.3.67
+ Matched by: *
+Agent PHP/5.3.69
+ Matched by: *
+Agent PHP/5.3.73
+ Matched by: *
+Agent PHP/5.3.78
+ Matched by: *
+Agent PHP/5.3.79
+ Matched by: *
+Agent PHP/5.3.80
+ Matched by: *
+Agent PHP/5.3.81
+ Matched by: *
+Agent PHP/5.3.82
+ Matched by: *
+Agent PHP/5.3.86
+ Matched by: *
+Agent PHP/5.3.88
+ Matched by: *
+Agent PHP/5.3.89
+ Matched by: *
+Agent PHP/5.3.90
+ Matched by: *
+Agent PHP/5.3.91
+ Matched by: *
+Agent PHP/5.3.92
+ Matched by: *
+Agent PHP/5.3.97
+ Matched by: *
+Agent PHP/5.3.98
+ Matched by: *
+Agent PHPCrawl
+ Matched by: *
+Agent python-requests/2.11.1
+ Matched by: *
+Agent python-requests/2.12.3
+ Matched by: *
+Agent python-requests/2.2.1 CPython/2.7.6 Linux/3.13.0-24-generic
+ Matched by: *
+Agent python-requests/2.2.1 CPython/3.4.3 Linux/3.13.0-96-generic
+ Matched by: *
+Agent python-requests/2.4.3 CPython/3.4.2 Linux/3.16.0-4-amd64
+ Matched by: *
+Agent Python-urllib/1.17
+ Matched by: *
+Agent Python-urllib/2.6
+ Matched by: *
+Agent Python-urllib/2.7
+ Matched by: *
+Agent Qwantify/1.0
+ Matched by: *
+Agent redback/v0-570-g26f8c96
+ Matched by: *
+Agent RedesScrapy/0.24.1 (+http://g2pi.tsc.uc3m.es/es)
+ Matched by: *
+Agent rogerbot
+ Matched by: *
+Agent Ruby
+ Matched by: *
+Agent Safari/10602.2.14.0.7 CFNetwork/720.5.7 Darwin/14.5.0 (x86_64)
+ Matched by: Safari/10???.* CFNetwork/*
+Agent Safari/11602.1.50.0.10 CFNetwork/760.6.3 Darwin/15.6.0 (x86_64)
+ Matched by: Safari/* CFNetwork/*
+Agent Safari/11602.2.14.0.7 CFNetwork/760.6.3 Darwin/15.6.0 (x86_64)
+ Matched by: Safari/* CFNetwork/*
+Agent Safari/12602.1.50.0.10 CFNetwork/807.0.4 Darwin/16.0.0 (x86_64)
+ Matched by: Safari/* CFNetwork/*
+Agent Safari/12602.2.14.0.7 CFNetwork/807.1.3 Darwin/16.1.0 (x86_64)
+ Matched by: Safari/* CFNetwork/*
+Agent Safari%20Technology%20Preview/12603.1.10 CFNetwork/807.1.3 Darwin/16.1.0 (x86_64)
+ Matched by: *
+Agent SafeDNSBot (https://www.safedns.com/searchbot)
+ Matched by: *
+Agent SalesIntelligent (+https://www.salesintelligent.com)
+ Matched by: *
+Agent Scanbot
+ Matched by: *
+Agent Searchie/1.0 (a Storm-based crawler; https://www.searchie.org; admin@searchie.org)
+ Matched by: *
+Agent Sogou web spider/4.0(+http://www.sogou.com/docs/help/webmasters.htm#07)
+ Matched by: *
+Agent spiderman
+ Matched by: *
+Agent ; success; BB-code not working; message must go through moderation;
+ Matched by: *
+Agent Telesphoreo
+ Matched by: *
+Agent }__test|O:21:
+ Matched by: *
+Agent Tiny Tiny RSS/16.3 (638fdf7) (http://tt-rss.org/)
+ Matched by: *
+Agent Twitterbot/1.0
+ Matched by: *
+Agent User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.31 (KHTML, like Gecko) Chrome/26.0.1410.64 Safari/537.31
+ Matched by: *
+Agent vebidoobot
+ Matched by: *
+Agent W3C_Validator/1.3 http://validator.w3.org/services
+ Matched by: *
+Agent WEBDAV Client
+ Matched by: *
+Agent Wget/1.15 (linux-gnu)
+ Matched by: *
+Agent Wget(linux)
+ Matched by: *
+Agent Windows-Media-Player/11.0.5721.5145
+ Matched by: *
+Agent Wotbox/2.01 (+http://www.wotbox.com/bot/)
+ Matched by: *
+Agent www.matthowlett.com
+ Matched by: *
+Agent WWW-Mechanize/1.73
+ Matched by: *
+Agent www.probethenet.com scanner
+ Matched by: *
+Agent ZmEu
+ Matched by: *
diff --git a/ext/standard/tests/misc/user_agents.txt b/ext/standard/tests/misc/user_agents.txt
new file mode 100644
index 0000000000..9a7e1531e3
--- /dev/null
+++ b/ext/standard/tests/misc/user_agents.txt
@@ -0,0 +1,1112 @@
+-
+AHC/1.0
+Airmail 1.4.1 rv:249 (Macintosh; Mac OS X 10.11.6; de_DE)
+Apache/2.4.10 (Debian) OpenSSL/1.0.1k (internal dummy connection)
+BaiduSpider
+Baiduspider+(+http://www.baidu.com/search/spider.htm)
+Baiduspider-image+(+http://www.baidu.com/search/spider.htm)
+BigDataCloud
+BlackBerry9000/4.6.0.167 Profile/MIDP-2.0 Configuration/CLDC-1.1 VendorID/102 ips-agent
+BPImageWalker/2.0 (www.bdbrandprotect.com)
+BUFF library user agent
+CCBot/2.0 (http://commoncrawl.org/faq/)
+censys.io internet census
+compatible;Baiduspider/2.0; +http://www.baidu.com/search/spider.html
+core-project/1.0
+Crawler powered by contentDetection (www.mindup.de)
+CRAZYWEBCRAWLER 0.9.10, http://www.crazywebcrawler.com
+curl/7.19.7 (x86_64-redhat-linux-gnu) libcurl/7.19.7 NSS/3.15.3 zlib/1.2.3 libidn/1.18 libssh2/1.4.2
+curl/7.19.7 (x86_64-redhat-linux-gnu) libcurl/7.19.7 NSS/3.21 Basic ECC zlib/1.2.3 libidn/1.18 libssh2/1.4.2
+curl/7.19.7 (x86_64-unknown-linux-gnu) libcurl/7.19.7 NSS/3.12.6.2 zlib/1.2.3 libidn/1.18 libssh2/1.2.2
+curl/7.26.0
+curl/7.29.0
+curl/7.38.0
+Dalvik/1.6.0 (Linux; U; Android 4.3; C5303 Build/12.1.A.1.205)
+Dalvik/2.1.0 (Linux; U; Android 5.0; SM-N9005 Build/LRX21V)
+Dalvik/2.1.0 (Linux; U; Android 6.0.1; SM-A510F Build/MMB29K)
+Digg Feed Fetcher 1.0 (Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_1) AppleWebKit/534.48.3 (KHTML, like Gecko) Version/5.1 Safari/534.48.3)
+facebookexternalhit/1.1 (+http://www.facebook.com/externalhit_uatext.php)
+Feedbin feed-id:156831 - 1 subscribers
+Feedly/1.0 (+http://www.feedly.com/fetcher.html; like FeedFetcher-Google)
+GarlikCrawler/1.2 (http://garlik.com/, crawler@garlik.com)
+Go-http-client/1.1
+Googlebot/2.1 (+http://www.google.com/bot.html)
+Googlebot-Image/1.0
+Googlebot/Nutch-1.7
+Goose/1.0.25
+GridBot/1.0 crawler@sysomos.com
+http://tools.geek-tools.org/link-counter/
+ia_archiver
+Java/1.6.0_04
+Java/1.7.0_75
+libwww-perl/5.833
+libwww-perl/6.08
+libwww-perl/6.13
+libwww-perl/6.15
+LinkWalker/3.0 (http://www.brandprotect.com)
+lr_http_client
+ltx71 - (http://ltx71.com/)
+LWP::Simple/6.00 libwww-perl/6.05
+LWP::Simple/6.00 libwww-perl/6.08
+Lynx/2.8.5rel.1 libwww-FM/2.15FC SSL-MM/1.4.1c OpenSSL/0.9.7e-dev
+Lynx/2.8.8pre.4 libwww-FM/2.14 SSL-MM/1.4.1 GNUTLS/2.12.23
+masscan/1.0 (https://github.com/robertdavidgraham/masscan)
+Mediapartners-Google
+mindUpBot (datenbutler.de)
+mj12bot
+MobileSafari/601.1 CFNetwork/758.5.3 Darwin/15.6.0
+MobileSafari/602.1 CFNetwork/808.0.2 Darwin/16.0.0
+MobileSafari/602.1 CFNetwork/808.1.4 Darwin/16.1.0
+Morfeus Fucking Scanner
+Mozilla
+Mozilla/0.6 Beta (Windows)
+Mozilla/0.91 Beta (Windows)
+Mozilla/10.0 (Windows NT 7.100) Gecko/20112301 Firefox/17.0
+Mozilla/1.22 (compatible; MSIE 2.0d; Windows NT)
+Mozilla/1.22 (compatible; MSIE 2.0; Windows 95)
+Mozilla/2.0 (compatible; MSIE 3.02; Windows CE; 240x320)
+Mozilla/3.0 (compatible; Indy Library)
+Mozilla/3.0 (compatible; WebCapture 2.0; Auto; Windows)
+mozilla/3.0 (Windows NT 6.1; rv:2.0.1) Gecko/20100101 Firefox/5.0.1
+Mozilla/3.0 (x86 [en] Windows NT 5.1; Sun)
+Mozilla/37.0.2 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322)
+Mozilla 4.0
+Mozilla/4.0
+Mozilla/4.0 (CMS Crawler: http://www.cmscrawler.com)
+Mozilla/4.0 (compatible; MSIE 4.01; Digital AlphaServer 1000A 4/233; Windows NT; Powered By 64-Bit Alpha Processor)
+Mozilla/4.0 (compatible; MSIE 5.01; Windows 95; MSIECrawler)
+Mozilla/4.0 (compatible; MSIE 5.01; Windows NT)
+Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)
+Mozilla/4.0 (compatible; MSIE 5.0; Windows 2000) Opera 6.0 [en]
+Mozilla/4.0 (compatible; MSIE 5.0; Windows 3.1)
+Mozilla/4.0 (compatible; MSIE 5.0; Windows 95) Opera 6.01 [en]
+Mozilla/4.0 (compatible; MSIE 5.0; Windows NT; DigExt)
+Mozilla/4.0 (compatible; MSIE 5.5; Windows 95)
+Mozilla/4.0 (compatible; MSIE 5.5; Windows 95; BCD2000)
+Mozilla/4.0 (compatible; MSIE 5.5; Windows NT 4.0)
+Mozilla/4.0 (compatible; MSIE 5.5; Windows NT 4.0; .NET CLR 1.0.2914)
+Mozilla/4.0 (compatible; MSIE 5.5; Windows NT 5.0; .NET CLR 1.1.4322)
+Mozilla/4.0 (compatible; MSIE 5.5; Windows NT 5.0; T312461)
+Mozilla/4.0 (compatible; MSIE 6.0)
+Mozilla/4.0 (compatible; MSIE 6.0; America Online Browser 1.1; rev1.2; Windows NT 5.1; SV1; .NET CLR 1.1.4322)
+Mozilla/4.0 (compatible; MSIE 6.0; AOL 9.0; Windows NT 5.1)
+Mozilla/4.0 (compatible; MSIE 6.0; MSIE 5.5; Windows NT 4.0) Opera 7.0 [en]
+Mozilla/4.0 (compatible; MSIE 6.0; MSIE 5.5; Windows NT 5.0) Opera 7.02 Bork-edition [en]
+Mozilla/4.0 (compatible; MSIE 6.0; MSIE 5.5; Windows NT 5.1) Opera 7.01 [en]
+Mozilla/4.0 (compatible; MSIE 6.0; Update a; AOL 6.0; Windows 98)
+Mozilla/4.0 (compatible; MSIE 6.0; Windows 98)
+Mozilla/4.0 (compatible; MSIE 6.0; Windows 98; Win 9x 4.90)
+Mozilla/4.0 (compatible; MSIE 6.0; Windows 98; Win 9x 4.90; Creative)
+Mozilla/4.0 (compatible; MSIE 6.0; Windows ME) Opera 7.11 [en]
+Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)
+Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0; APC; .NET CLR 1.0.3705; .NET CLR 1.1.4322; .NET CLR 2.0.50215; InfoPath.1)
+Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0; Avant Browser [avantbrowser.com]; Hotbar 4.4.5.0)
+Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0; KTXN)
+Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0; .NET CLR 1.0.3705; .NET CLR 1.1.4322)
+Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0; T312461)
+Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)
+Mozilla/4.0+(compatible;+MSIE+6.0;+Windows+NT+5.1)
+Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; Crazy Browser 1.0.5)
+Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; Deepnet Explorer 1.5.0; .NET CLR 1.0.3705)
+Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; en) Opera 8.00
+Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; en) Opera 8.50
+Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; en) Opera 9.0
+Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; FREE; .NET CLR 1.1.4322)
+Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; KKman2.0)
+Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; Maxthon; .NET CLR 1.1.4322)
+Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; MRA 4.3 (build 01218); .NET CLR 1.1.4322)
+Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; MRA 4.6 (build 01425))
+Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; MyIE2; Deepnet Explorer)
+Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; .NET CLR 1.0.3705)
+Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; .NET CLR 1.1.4322)
+Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; .NET CLR 1.1.4322; Alexa Toolbar; (R1 1.5))
+Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; .NET CLR 1.1.4322; FDM)
+Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1) Netscape/8.0.4
+Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1) Opera 7.54 [en]
+Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; Q312461)
+Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; ru) Opera 8.01
+Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; ru) Opera 8.50
+Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1;)
+Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)
+Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; Crazy Browser 2.0.0 Beta 1; .NET CLR 1.0.3705; .NET CLR 1.1.4322)
+Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; FunWebProducts)
+Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; FunWebProducts; MRA 4.6 (build 01425); .NET CLR 1.1.4322; .NET CLR 2.0.50727)
+Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; FunWebProducts; .NET CLR 1.1.4322; PeoplePal 6.2)
+Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; InfoPath.1
+Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; InfoPath.1)
+Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; Media Center PC
+Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1) )
+Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1) ; .NET CLR 1.0.3705)
+Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1) ; .NET CLR 2.0.50727 ; .NET CLR 4.0.30319)
+Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; MRA 4.6 (build 01425); MRSPUTNIK 1, 5, 0, 19 SW)
+Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.0.3705)
+Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.0.3705; .NET CLR 1.1.4322; .NET CLR 2.0.40607)
+Mozilla/4.0 (compatible- MSIE 6.0- Windows NT 5.1- SV1- .NET CLR 1.1.4322
+Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322)
+Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322) Babya Discoverer 8.0:
+Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322; .NET CLR 2.0.50727)
+Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322) NS8/0.9.6
+Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322; XMPP Tiscali Communicator v.10.0.2; .NET CLR 2.0.50727)
+Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 2.0.50727)
+Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 2.0.50727; .NET CLR 1.1.4322)
+Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; TencentTraveler ; Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1) ; .NET CLR 2.0.50727)
+Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; YPC 3.0.2; .NET CLR 1.1.4322; yplus 4.4.02b)
+Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; TheFreeDictionary.com; .NET CLR 1.1.4322; .NET CLR 1.0.3705; .NET CLR 2.0.50727)
+Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.2; .NET CLR 1.0.3705;)
+Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.2; SV1; .NET CLR 1.1.4322; .NET CLR 2.0.50727)
+Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.2; Win64; AMD64)
+Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.2; Win64; x64; SV1; .NET CLR 2.0.50727)
+Mozilla/4.0 (compatible; MSIE 6.0; Windows NT) ::ELNSB50::000061100320025802a00111000000000507000900000000
+Mozilla/4.0 (compatible; MSIE 6.0; Windows XP)
+Mozilla/4.0 (compatible; MSIE 7.0b; Windows NT 6.0)
+Mozilla/4.0 (compatible; MSIE 7.0b; Windows NT 6.0 ; .NET CLR 2.0.50215; SL Commerce Client v1.0; Tablet PC 2.0
+Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; MRSPUTNIK 2, 4, 0, 270; MRA 5.8 (build 4598); GTB7.2; AskTbFF/5.11.3.15590; .NET CLR 1.1.4322)
+Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 1.0.3705; .NET CLR 1.1.4322; Media Center PC 4.0)
+Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 2.0.50727)
+Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; SV1; .NET CLR 2.0.50727)
+Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; Trident/4.0; .NET CLR 1.1.4322; .NET CLR 1.0.3705; .NET CLR 2.0.50727; .NET CLR 3.0.04506.648; .NET CLR 3.5.21022; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)
+Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.2)
+Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0; WOW64; Trident/5.0; SLCC1; .NET CLR 2.0.50727; .NET CLR 3.0.30729; .NET CLR 3.5.30729; .NET4.0C; .NET4.0E)
+Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C; .NET4.0E)
+Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; Trident/7.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C; .NET4.0E; ms-office)
+Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.2; WOW64; Trident/7.0; .NET4.0E; .NET4.0C; .NET CLR 3.5.30729; .NET CLR 2.0.50727; .NET CLR 3.0.30729)
+Mozilla/4.0 (compatible; MSIE 8.0; ; Trident/4.0; .NET CLR 1.1.4322; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)
+Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0)
+Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; GTB6.5; .NET CLR 1.1.4322; .NET CLR 2.0.50727; .NET CLR 3.0.04506.648; .NET CLR 3.5.21022; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729; InfoPath.3)
+Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; GTB6.5; .NET CLR 2.0.50727; InfoPath.2)
+Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; GTB6; InfoPath.1; .NET CLR 2.0.50727; Dealio Toolbar 3.4; .NET CLR 3.0.04506.30; .NET CLR 3.0.04506.648; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)
+Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; GTB7.5; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)
+Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; .NET CLR 1.1.4322; .NET CLR 2.0.50727; .NET CLR 3.0.04506.30; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729; InfoPath.3; .NET4.0C; .NET4.0E)
+Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; .NET CLR 1.1.4322; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)
+Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; .NET CLR 2.0.50727)
+Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; .NET CLR 2.0.50727; .NET4.0C)
+Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; .NET CLR 2.0.50727; .NET CLR 3.0.04506.648; .NET CLR 3.5.21022; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729; InfoPath.2)
+Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729; InfoPath.2)
+Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.0; Trident/4.0; Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1) ; SLCC1; .NET CLR 2.0.50727; Media Center PC 5.0; .NET CLR 3.0.30729; .NET CLR 3.5.30729)
+Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.0; Trident/4.0; SLCC1; .NET CLR 2.0.50727; OfficeLiveConnector.1.3; OfficeLivePatch.0.0; .NET CLR 3.5.30729; .NET CLR 3.0.30618; MS-RTC LM 8; yie8)
+Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; Trident/4.0)
+Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; Trident/4.0; Avant Browser; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0)
+Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; Trident/4.0; GTB7.2; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C)
+Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; Trident/4.0; InfoPath.2; SV1; .NET CLR 3.8.36926; WOW64; en-US)
+Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729)
+Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0)
+Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C; .NET4.0E)
+Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; Tablet PC 2.0)
+Mozilla/4.0 (compatible; MSIE 9.0; Windows NT 6.1)
+Mozilla/4.0 (compatible; MSIE 9.0; Windows NT 6.1; 125LA; .NET CLR 2.0.50727; .NET CLR 3.0.04506.648; .NET CLR 3.5.21022)
+Mozilla/4.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0)
+Mozilla/4.0 (compatible; Netcraft Web Server Survey)
+Mozilla/4.0 (compatible; Powermarks/3.5; Windows 95/98/2000/NT)
+Mozilla/4.0 (compatible; Synapse)
+Mozilla/4.0 (compatible; Win32; WinHttp.WinHttpRequest.5)
+Mozilla/4.0 (compatible; Windows;)
+Mozilla/4.0 (Windows NT 6.2) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.70 Safari/537.17
+Mozilla/4.0 (X11; MSIE 6.0; i686; .NET CLR 1.1.4322; .NET CLR 2.0.50727; FDM)
+Mozilla/4.61 [en] (X11; U; ) - BrowseX (2.0.0 Windows)
+Mozilla/4.76 [en] (Windows NT 5.0; U)
+Mozilla/4.79 [en] (Windows NT 5.0; U)
+Mozilla/4.7 (compatible; OffByOne; Windows 2000) Webster Pro V3.4
+Mozilla 5.0
+Mozilla/5.0
+Mozilla/5.0 (Android 2.2; Windows; U; Windows NT 6.1; en-US) AppleWebKit/533.19.4 (KHTML, like Gecko) Version/5.0.3 Safari/533.19.4
+Mozilla/5.0 (Android 5.1.1; Tablet; rv:50.0.1) Gecko/50.0.1 Firefox/50.0.1
+Mozilla/5.0 (Android 5.1.1; Tablet; rv:50.0) Gecko/50.0 Firefox/50.0
+Mozilla/5.0 (Android 5.1; Mobile; rv:49.0.2) Gecko/49.0.2 Firefox/49.0.2
+Mozilla/5.0 (Android 5.1; Mobile; rv:49.0) Gecko/49.0 Firefox/49.0
+Mozilla/5.0 (Android 6.0.1; Mobile; rv:50.0) Gecko/50.0 Firefox/50.0
+Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; Google Web Preview Analytics) Chrome/27.0.1453 Safari/537.36 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)
+Mozilla/5.0 (BlackBerry; U; BlackBerry 9900; en) AppleWebKit/534.11+ (KHTML, like Gecko) Version/7.1.0.346 Mobile Safari/534.11+
+Mozilla/5.0 (compatible)
+Mozilla/5.0 (compatible; AhrefsBot/5.1; +http://ahrefs.com/robot/)
+Mozilla/5.0 (compatible; archive.org_bot +http://www.archive.org/details/archive.org_bot)
+Mozilla/5.0 (compatible; archive.org_bot; Wayback Machine Live Record; +http://archive.org/details/archive.org_bot)
+Mozilla/5.0 (compatible; Baiduspider/2.0; +http://www.baidu.com/search/spider.html)
+Mozilla/5.0 (compatible; bingbot/2.0; +http://www.bing.com/bingbot.htm)
+Mozilla/5.0 (compatible; BLEXBot/1.0; +http://webmeup-crawler.com/)
+Mozilla/5.0 (compatible; Cliqzbot/1.0 +http://cliqz.com/company/cliqzbot)
+Mozilla/5.0 (compatible; coccocbot-image/1.0; +http://help.coccoc.com/searchengine)
+Mozilla/5.0 (compatible; coccocbot-web/1.0; +http://help.coccoc.com/searchengine)
+Mozilla/5.0+(compatible;+CukBot;+Not+a+spammer;+++https://www.companiesintheuk.co.uk/bot.html)
+Mozilla/5.0 (compatible; Dataprovider/6.101; +https://www.dataprovider.com/)
+Mozilla/5.0 (compatible; Dataprovider; https://www.dataprovider.com/spider/)
+Mozilla/5.0 (compatible; DeuSu/5.0.2; +https://deusu.de/robot.html)
+Mozilla/5.0 (compatible; DotBot/1.1; http://www.opensiteexplorer.org/dotbot, help@moz.com)
+Mozilla/5.0 (compatible; DuckDuckGo-Favicons-Bot/1.0; +http://duckduckgo.com)
+Mozilla/5.0 (compatible; Exabot/3.0; +http://www.exabot.com/go/robot)
+Mozilla/5.0 (compatible; Gluten Free Crawler/1.0; +http://glutenfreepleasure.com/)
+Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)
+Mozilla/5.0 (compatible; Google-Site-Verification/1.0)
+Mozilla/5.0 (compatible; GrapeshotCrawler/2.0; +http://www.grapeshot.co.uk/crawler.php)
+Mozilla/5.0 (compatible; inoreader.com-like FeedFetcher-Google)
+Mozilla/5.0 (compatible; Linux x86_64; Mail.RU_Bot/2.0; +http://go.mail.ru/help/robots)
+Mozilla/5.0 (compatible; MegaIndex.ru/2.0; +http://megaindex.com/crawler)
+Mozilla/5.0 (compatible; MJ12bot/v1.4.5; http://www.majestic12.co.uk/bot.php?+)
+Mozilla/5.0 (compatible; MJ12bot/v1.4.6; http://mj12bot.com/)
+Mozilla/5.0 (compatible; MJ12bot/v1.4.7; http://mj12bot.com/)
+Mozilla/5.0 (compatible; MojeekBot/0.6; +https://www.mojeek.com/bot.html)
+Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.1; Trident/6.0)
+Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.1; Trident/6.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; InfoPath.2; .NET4.0C; .NET4.0E; AskTbORJ/5.14.1.20007; BOIE9;NLNL)
+Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.1; WOW64; Trident/6.0)
+Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.1; WOW64; Trident/6.0; SLCC2; .NET CLR 2.0.50727; Media Center PC 6.0; InfoPath.2; .NET4.0C; .NET4.0E; AskTbORJ/5.15.14.29495; .NET CLR 3.5.30729; .NET CLR 3.0.30729; .NET CLR 1.1.4322; EIE10;ENAUMSN)
+Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.1; WOW64; Trident/6.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C; .NET4.0E; AskTbFXTV5/5.15.2.23037)
+Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.2; WOW64; Trident/6.0)
+Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.2; WOW64; Trident/6.0; .NET4.0E; .NET4.0C; InfoPath.3; .NET CLR 3.5.30729; .NET CLR 2.0.50727; .NET CLR 3.0.30729; MS-RTC LM 8)
+Mozilla/5.0 (compatible, MSIE 11, Windows NT 6.3; Trident/7.0; rv:11.0) like Gecko
+Mozilla/5.0 (compatible; MSIE 6.0; Windows NT 5.1)
+Mozilla/5.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 2.0.50727)
+Mozilla/5.0 (compatible; MSIE 8.0; Windows NT 6.1; Trident/4.0; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; .NET CLR 1.0.3705; .NET CLR 1.1.4322)
+Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.0; Trident/5.0; NP06)
+Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.0; Trident/5.0; SLCC1; .NET CLR 2.0.50727; Media Center PC 5.0; InfoPath.2; .NET CLR 3.5.30729; .NET CLR 3.0.30729; .NET4.0C; .NET4.0E)
+Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.0; Trident/5.0; SLCC1; .NET CLR 2.0.50727; Media Center PC 5.0; MDDC; .NET CLR 3.5.30729; .NET CLR 3.0.30729; .NET4.0C; .NET4.0E)
+'Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0)'
+Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0)
+Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0); 360Spider
+Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; .NET4.0C; .NET4.0E; MS-RTC LM 8; SFIEAUTH1)
+Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0; Trident/5.0)
+Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64; Trident/5.0)
+Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64; Trident/5.0) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.172 Safari/537.22
+Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64; Trident/5.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; InfoPath.3; .NET4.0C; .NET4.0E; .NET CLR 1.1.4322; MS-RTC LM 8)
+Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64; Trident/5.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C; AlexaToolbar/amzni-3.0; .NET4.0E)
+Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64; Trident/5.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C; .NET4.0E; HPDTDF; InfoPath.3)
+Mozilla/5.0 (compatible; MSIE or Firefox mutant;) Daum 4.1
+Mozilla/5.0 (compatible; NetcraftSurveyAgent/1.0; +info@netcraft.com)
+Mozilla/5.0 (compatible; Nmap Scripting Engine; http://nmap.org/book/nse.html)
+Mozilla/5.0 (compatible; oBot/2.3.1; http://filterdb.iss.net/crawler/)
+Mozilla/5.0 (compatible; Qwantify/2.3w; +https://www.qwant.com/)/2.3w
+Mozilla/5.0 (compatible; SemrushBot/1.1~bl; +http://www.semrush.com/bot.html)
+Mozilla/5.0 (compatible; SEOkicks-Robot; +http://www.seokicks.de/robot.html)
+Mozilla/5.0 (compatible; SeznamBot/3.2; +http://napoveda.seznam.cz/en/seznambot-intro/)
+Mozilla/5.0 (compatible; SiteExplorer/1.1b; +http://siteexplorer.info/Backlink-Checker-Spider/)
+Mozilla/5.0 (compatible; Sonic/1.0; http://www.yama.info.waseda.ac.jp/~crawler/info.html)
+Mozilla/5.0 (compatible; spbot/5.0.3; +http://OpenLinkProfiler.org/bot )
+Mozilla/5.0 (compatible; SurdotlyBot/1.0; +http://sur.ly/bot.html)
+Mozilla/5.0 (compatible; Uptimebot/1.0; +http://www.uptime.com/uptimebot)
+Mozilla/5.0 (compatible; Wappalyzer; +https://github.com/AliasIO/Wappalyzer)
+Mozilla/5.0 (compatible; XoviBot/2.0; +http://www.xovibot.net/)
+Mozilla/5.0 (compatible; Yahoo! Slurp; http://help.yahoo.com/help/us/ysearch/slurp)
+Mozilla/5.0 (compatible; YandexBot/3.0; +http://yandex.com/bots)
+Mozilla/5.0 (compatible;YoudaoFeedFetcher/1.0;http://www.youdao.com/help/reader/faq/topic006/;1 subscribers;)
+Mozilla/5.0 (iPad; CPU OS 10_1_1 like Mac OS X) AppleWebKit/602.2.14 (KHTML, like Gecko) Version/10.0 Mobile/14B100 Safari/602.1
+Mozilla/5.0 (iPad; CPU OS 10_1_1 like Mac OS X) AppleWebKit/602.2.14 (KHTML, like Gecko) Version/10.0 Mobile/14B150 Safari/602.1
+Mozilla/5.0 (iPad; CPU OS 10_1 like Mac OS X) AppleWebKit/602.2.14 (KHTML, like Gecko) Version/10.0 Mobile/14B72 Safari/602.1
+Mozilla/5.0 (iPad; CPU OS 10_2 like Mac OS X) AppleWebKit/602.3.12 (KHTML, like Gecko) OPiOS/14.0.0.104835 Mobile/14C92 Safari/9537.53
+Mozilla/5.0 (iPad; CPU OS 9_3_5 like Mac OS X) AppleWebKit/601.1.46 (KHTML, like Gecko) Version/9.0 Mobile/13G36 Safari/601.1
+Mozilla/5.0 (iPhone; CPU iPhone OS 10_0_2 like Mac OS X) AppleWebKit/602.1.50 (KHTML, like Gecko) Version/10.0 Mobile/14A456 Safari/602.1
+Mozilla/5.0 (iPhone; CPU iPhone OS 10_0 like Mac OS X) AppleWebKit/602.1.38 (KHTML, like Gecko) Version/10.0 Mobile/14A300 Safari/602.1
+Mozilla/5.0 (iPhone; CPU iPhone OS 10_1_1 like Mac OS X) AppleWebKit/602.2.14 (KHTML, like Gecko) Version/10.0 Mobile/14B100 Safari/602.1
+Mozilla/5.0 (iPhone; CPU iPhone OS 10_1_1 like Mac OS X) AppleWebKit/602.2.14 (KHTML, like Gecko) Version/10.0 Mobile/14B150 Safari/602.1
+Mozilla/5.0 (iPhone; CPU iPhone OS 10_1 like Mac OS X) AppleWebKit/602.2.8 (KHTML, like Gecko) OPiOS/15.00.00000 Mobile/14B55c Safari/7534.48.3
+Mozilla/5.0 (iPhone; CPU iPhone OS 10_2 like Mac OS X) AppleWebKit/602.3.12 (KHTML, like Gecko) Version/10.0 Mobile/14C92 Safari/602.1
+Mozilla/5.0 (iPhone; CPU iPhone OS 5_0 like Mac OS X) AppleWebKit/534.46 (KHTML, like Gecko) Version/5.1 Mobile/9A334 Safari/7534.48.3
+Mozilla/5.0 (iPhone; CPU iPhone OS 6_0 like Mac OS X) AppleWebKit/536.26 (KHTML, like Gecko) Version/6.0 Mobile/10A5376e Safari/8536.25
+Mozilla/5.0 (iPhone; CPU iPhone OS 7_0 like Mac OS X) AppleWebKit/537.51.1 (KHTML, like Gecko) Version/7.0 Mobile/11A465 Safari/9537.53 BingPreview/1.0b
+Mozilla/5.0 (iPhone; CPU iPhone OS 7_0 like Mac OS X) AppleWebKit/537.51.1 (KHTML, like Gecko) Version/7.0 Mobile/11A465 Safari/9537.53 (compatible; bingbot/2.0; +http://www.bing.com/bingbot.htm)
+Mozilla/5.0 (iPhone; CPU iPhone OS 8_0 like Mac OS X) AppleWebKit/600.1.3 (KHTML, like Gecko) Version/8.0 Mobile/12A4345d Safari/600.1.4
+Mozilla/5.0 (iPhone; CPU iPhone OS 8_1_3 like Mac OS X) AppleWebKit/600.1.4 (KHTML, like Gecko) Version/8.0 Mobile/12B466 Safari/600.1.4
+Mozilla/5.0 (iPhone; CPU iPhone OS 8_3 like Mac OS X) AppleWebKit/600.1.4 (KHTML, like Gecko) Version/8.0 Mobile/12F70 Safari/600.1.4
+Mozilla/5.0 (iPhone; CPU iPhone OS 9_3_3 like Mac OS X) AppleWebKit/601.1.46 (KHTML, like Gecko) Version/9.0 Mobile/13G34 Safari/601.1
+Mozilla/5.0 (iPhone; CPU iPhone OS 9_3_3 like Mac OS X) AppleWebKit/601.1.46 (KHTML, like Gecko) Version/9.0 Mobile/13G34 Safari/601.1 BMID/E679DA49AC
+Mozilla/5.0 (iPhone; U; CPU iPhone OS 3_0 like Mac OS X; en-us) AppleWebKit/528.18 (KHTML, like Gecko) Version/4.0 Mobile/7A341 Safari/528.161481015402482
+Mozilla/5.0 (Linux; Android 4.05; Galaxy Nexus Build/IMM76B) AppleWebKit/535.25 (KHTML, like Gecko) Chrome/17.0.1025.133 Mobile Safari/536.19
+Mozilla/5.0 (Linux; Android 4.1.2; GT-S5310B Build/JZO54K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/53.0.2785.124 Mobile Safari/537.36
+Mozilla/5.0 (Linux; Android 4.2.2; GT-S7580 Build/JDQ39) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/34.0.1847.114 Mobile Safari/537.36
+Mozilla/5.0 (Linux; Android 4.3; C5303 Build/12.1.A.1.205) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.85 Mobile Safari/537.36
+Mozilla/5.0 (Linux; Android 4.4.2; de-de; SAMSUNG GT-I9205 Build/KOT49H) AppleWebKit/537.36 (KHTML, like Gecko) Version/1.5 Chrome/28.0.1500.94 Mobile Safari/537.36
+Mozilla/5.0 (Linux; Android 4.4.2; GT-I9195 Build/KOT49H) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.98 Mobile Safari/537.36
+Mozilla/5.0 (Linux; Android 4.4.2; GT-P5210 Build/KOT49H) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.68 Safari/537.36
+Mozilla/5.0 (Linux; Android 4.4.2; HP 7 VoiceTab Build/KOT49H) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2623.105 Safari/537.36
+Mozilla/5.0 (Linux; Android 4.4.2; LENNY Build/KOT49H) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/30.0.0.0 Mobile Safari/537.36
+Mozilla/5.0 (Linux; Android 4.4.2; LG-V500 Build/KOT49I.V50020f) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.85 Safari/537.36
+Mozilla/5.0 (Linux; Android 4.4.2; Panasonic ELUGA Z Build/KOT49H) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.85 Mobile Safari/537.36
+Mozilla/5.0 (Linux; Android 4.4.2; RAINBOW Build/KOT49H) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/30.0.0.0 Mobile Safari/537.36
+Mozilla/5.0 (Linux; Android 4.4.2; SM-T230 Build/KOT49H) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.85 Safari/537.36
+Mozilla/5.0 (Linux; Android 4.4.2; SUNSET2 Build/KOT49H) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.91 Mobile Safari/537.36
+Mozilla/5.0 (Linux; Android 5.0.1; ALE-L02 Build/HuaweiALE-L02) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.85 Mobile Safari/537.36
+Mozilla/5.0 (Linux; Android 5.0.1; GT-I9295 Build/LRX22C) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.85 Mobile Safari/537.36
+Mozilla/5.0 (Linux; Android 5.0.1; GT-I9515 Build/LRX22C) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.85 Mobile Safari/537.36
+Mozilla/5.0 (Linux; Android 5.0.1; SAMSUNG GT-I9505 Build/LRX22C) AppleWebKit/537.36 (KHTML, like Gecko) SamsungBrowser/4.0 Chrome/44.0.2403.133 Mobile Safari/537.36
+Mozilla/5.0 (Linux; Android 5.0.2; Lenovo TAB 2 A8-50LC Build/LRX22G) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.93 Safari/537.36
+Mozilla/5.0 (Linux; Android 5.0.2; LG-D693TR Build/LRX22G) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/34.0.1847.118 Mobile Safari/537.36
+Mozilla/5.0 (Linux; Android 5.0; Lenovo K50-t5 Build/LRX21M) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.85 Mobile Safari/537.36
+Mozilla/5.0 (Linux; Android 5.0; SAMSUNG SM-N9005 Build/LRX21V) AppleWebKit/537.36 (KHTML, like Gecko) SamsungBrowser/4.0 Chrome/44.0.2403.133 Mobile Safari/537.36
+Mozilla/5.0 (Linux; Android 5.0; SM-N900V Build/LRX21V) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.85 Mobile Safari/537.36
+Mozilla/5.0 (Linux; Android 5.0; VOYAGER2_DG310 Build/LRX21M) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/37.0.0.0 Mobile Safari/537.36
+Mozilla/5.0 (Linux; Android 5.1.1; Redmi 3 Build/LMY47V; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/54.0.2840.68 Mobile Safari/537.36
+Mozilla/5.0 (Linux; Android 5.1; Lenovo P70-A Build/LMY47D) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.91 Mobile Safari/537.36
+Mozilla/5.0 (Linux; Android 5.1; LG-X210 Build/LMY47I) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.68 Mobile Safari/537.36
+Mozilla/5.0 (Linux; Android 6.0.1; Nexus 5X Build/MMB29P) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2272.96 Mobile Safari/537.36 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)
+Mozilla/5.0 (Linux; Android 6.0.1; SAMSUNG SM-A510F/A510FXXS3BPI9 Build/MMB29K) AppleWebKit/537.36 (KHTML, like Gecko) SamsungBrowser/4.0 Chrome/44.0.2403.133 Mobile Safari/537.36
+Mozilla/5.0 (Linux; Android 6.0.1; SAMSUNG SM-G900F Build/MMB29M) AppleWebKit/537.36 (KHTML, like Gecko) SamsungBrowser/4.0 Chrome/44.0.2403.133 Mobile Safari/537.36
+Mozilla/5.0 (Linux; Android 6.0.1; SAMSUNG SM-J700T1 Build/MMB29K) AppleWebKit/537.36 (KHTML, like Gecko) SamsungBrowser/4.0 Chrome/44.0.2403.133 Mobile Safari/537.36
+Mozilla/5.0 (Linux; Android 6.0.1; SM-G920F Build/MMB29K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.85 Mobile Safari/537.36
+Mozilla/5.0 (Linux; Android 6.0.1; SM-G920F Build/MMB29K; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/54.0.2840.85 Mobile Safari/537.36 [FB_IAB/MESSENGER;FBAV/99.0.0.20.136;]
+Mozilla/5.0 (Linux; Android 6.0.1; SM-N920I Build/MMB29K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.85 Mobile Safari/537.36
+Mozilla/5.0 (Linux; Android 6.0.1; SM-N920P Build/MMB29K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.81 Mobile Safari/537.36
+Mozilla/5.0 (Linux; Android 6.0; LG-H961N Build/MRA58K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.85 Mobile Safari/537.36
+Mozilla/5.0 (Linux; U; Android 2.2.1; en-us; Nexus One Build/FRG83) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1
+Mozilla/5.0 (Linux; U; Android 2.2.2; ru-ru; HTC Desire Build/FRG83G) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1
+Mozilla/5.0 (Linux; U; Android 4.2.2; de-de; Cynus F4 Build/JDQ39) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30
+Mozilla/5.0 (Linux; U; Android 4.3; de-de; HUAWEI Y530-U00 Build/HuaweiY530-U00) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30
+Mozilla/5.0 (Linux; U; Android 4.4.4; en-US; Coolpad 8297L-I00 Build/KTU84P) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 UCBrowser/11.0.5.850 U3/0.8.0 Mobile Safari/534.30
+Mozilla/5.0 (Linux; U; Android 5.0.2; zh-CN; Redmi Note 3 Build/LRX22G) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 OPR/11.2.3.102637 Mobile Safari/537.36
+Mozilla/5.0 (Linux; U; Linux Ventana; ru-ru; Transformer TF101 Build/HTK75) AppleWebKit/534.13 (KHTML, like Gecko) Chrome/8.0 Safari/534.13
+Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.95 Safari/537.36
+Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.95 Safari/412982
+Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.95 Safari/537.36
+Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.99 Safari/537.36
+Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/40.0.2214.93 Safari/537.36
+Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/48.0.2564.116 Safari/537.36
+Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_1) AppleWebKit/600.2.5 (KHTML, like Gecko) Version/8.0.2 Safari/600.2.5
+Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/42.0.2311.135 Safari/537.36
+Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2272.89 Safari/537.36
+Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/42.0.2311.135 Safari/537.36
+Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/42.0.2311.152 Safari/537.36
+Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/42.0.2311.90 Safari/537.36
+Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/43.0.2357.65 Safari/537.36
+Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/43.0.2357.81 Safari/537.36
+Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/44.0.2403.89 Safari/537.36
+Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.71 Safari/537.36
+Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_3) AppleWebKit/600.5.17 (KHTML, like Gecko) Version/8.0.5 Safari/600.5.17
+Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_3) AppleWebKit/600.6.3 (KHTML, like Gecko) Version/8.0.6 Safari/600.6.3
+Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.71 Safari/537.36
+Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.98 Safari/537.36
+Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.75 Safari/537.36
+Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_5) AppleWebKit/602.2.14 (KHTML, like Gecko)
+Mozilla/5.0 (Macintosh; Intel Mac OS X 10.10; rv:27.0) Gecko/20100101 Firefox/27.0
+Mozilla/5.0 (Macintosh; Intel Mac OS X 10.10; rv:29.0) Gecko/20100101 Firefox/29.0
+Mozilla/5.0 (Macintosh; Intel Mac OS X 10.10; rv:31.0) Gecko/20100101 Firefox/31.0
+Mozilla/5.0 (Macintosh; Intel Mac OS X 10.10; rv:34.0) Gecko/20100101 Firefox/34.0
+Mozilla/5.0 (Macintosh; Intel Mac OS X 10.10; rv:37.0) Gecko/20100101 Firefox/37.0
+Mozilla/5.0 (Macintosh; Intel Mac OS X 10.10; rv:38.0) Gecko/20100101 Firefox/38.0
+Mozilla/5.0 (Macintosh; Intel Mac OS X 10.10; rv:43.0) Gecko/20100101 Firefox/43.0
+Mozilla/5.0 (Macintosh; Intel Mac OS X 10.10; rv:47.0) Gecko/20100101 Firefox/47.0
+Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/43.0.2386.61 Safari/537.36
+Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/48.0.2564.109 Safari/537.36
+Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/48.0.2564.116 Safari/537.36
+Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_3) AppleWebKit/601.4.4 (KHTML, like Gecko) Version/9.0.3 Safari/601.4.4
+Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/50.0.2661.102 Safari/537.36
+Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.71 Safari/537.36
+Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.98 Safari/537.36
+Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_4) AppleWebKit/601.5.17 (KHTML, like Gecko) Version/9.1 Safari/601.5.17
+Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/50.0.2661.102 Safari/537.36
+Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.71 Safari/537.36
+Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.116 Safari/537.36
+Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.82 Safari/537.36
+Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.71 Safari/537.36
+Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.98 Safari/537.36
+Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2907.0 Safari/537.36
+Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_6) AppleWebKit/601.7.7 (KHTML, like Gecko) Version/9.1.2 Safari/601.7.7
+Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_6) AppleWebKit/602.1.43 (KHTML, like Gecko) Version/10.0 Safari/602.1.43
+Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_6) AppleWebKit/602.1.50 (KHTML, like Gecko)
+Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_6) AppleWebKit/602.2.14 (KHTML, like Gecko)
+Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_6) AppleWebKit/602.2.14 (KHTML, like Gecko) Version/10.0.1 Safari/602.2.14
+Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_6) AppleWebKit/602.3.12 (KHTML, like Gecko) Version/10.0.2 Safari/602.3.12
+Mozilla/5.0 (Macintosh; Intel Mac OS X 10.11; rv:33.0) Gecko/20100101 Firefox/33.0
+Mozilla/5.0 (Macintosh; Intel Mac OS X 10.11; rv:45.0) Gecko/20100101 Firefox/45.0
+Mozilla/5.0 (Macintosh; Intel Mac OS X 10.11; rv:47.0) Gecko/20100101 Firefox/47.0
+Mozilla/5.0 (Macintosh; Intel Mac OS X 10.11; rv:51.0) Gecko/20100101 Firefox/51.0
+Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.71 Safari/537.36
+Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.98 Safari/537.36
+Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.59 Safari/537.36
+Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.71 Safari/537.36
+Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.87 Safari/537.36
+Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.98 Safari/537.36
+Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.44 Safari/537.36
+Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.75 Safari/537.36
+Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36
+Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_1) AppleWebKit/602.2.14 (KHTML, like Gecko)
+Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_1) AppleWebKit/602.2.14 (KHTML, like Gecko) Version/10.0.1 Safari/602.2.14
+Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_1) AppleWebKit/603.1.10 (KHTML, like Gecko)
+Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_2) AppleWebKit/602.3.12 (KHTML, like Gecko) Version/10.0.2 Safari/602.3.12
+Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12) AppleWebKit/602.1.50 (KHTML, like Gecko)
+Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12) AppleWebKit/602.1.50 (KHTML, like Gecko) Version/10.0 Safari/602.1.50
+Mozilla/5.0 (Macintosh; Intel Mac OS X 10.12; rv:49.0) Gecko/20100101 Firefox/49.0
+Mozilla/5.0 (Macintosh; Intel Mac OS X 10.12; rv:50.0) Gecko/20100101 Firefox/50.0
+Mozilla/5.0 (Macintosh; Intel Mac OS X 10_6_8) AppleWebKit/534.59.10 (KHTML, like Gecko) Version/5.1.9 Safari/534.59.10
+Mozilla/5.0 (Macintosh; Intel Mac OS X 10_6_8) AppleWebKit/534.59.8 (KHTML, like Gecko) Version/5.1.9 Safari/534.59.8
+Mozilla/5.0 (Macintosh; Intel Mac OS X 10_6_8) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/13.0.782.24 Safari/535.1
+Mozilla/5.0 (Macintosh; Intel Mac OS X 10_6_8) AppleWebKit/537.13+ (KHTML, like Gecko) Version/5.1.7 Safari/534.57.2
+Mozilla/5.0 (Macintosh; Intel Mac OS X 10_6_8) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/31.0.1650.63 Safari/537.36
+Mozilla/5.0 (Macintosh; Intel Mac OS X 10.6; rv:26.0) Gecko/20100101 Firefox/26.0
+Mozilla/5.0 (Macintosh; Intel Mac OS X 10.6; rv:30.0) Gecko/20100101 Firefox/30.0
+Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_2) AppleWebKit/534.51.22 (KHTML, like Gecko) Version/5.1.1 Safari/534.51.22
+Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_2) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/14.0.835.186 Safari/535.1
+Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/27.0.1453.93 Safari/537.36
+Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/31.0.1650.63 Safari/537.36
+Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_5) AppleWebKit/537.71 (KHTML, like Gecko) Version/6.1 Safari/537.71
+Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_5) AppleWebKit/537.73.11 (KHTML, like Gecko) Version/6.1.1 Safari/537.73.11
+Mozilla/5.0 (Macintosh; Intel Mac OS X 10.7; rv:26.0) Gecko/20100101 Firefox/26.0
+Mozilla/5.0 (Macintosh; Intel Mac OS X 10.7; rv:34.0) Gecko/20100101 Firefox/34.0
+Mozilla/5.0 (Macintosh; Intel Mac OS X 10_8_3) AppleWebKit/537.31 (KHTML, like Gecko) Chrome/26.0.1410.65 Safari/537.31
+Mozilla/5.0 (Macintosh; Intel Mac OS X 1084) AppleWebKit/536.29.13 (KHTML like Gecko) Version/6.0.4 Safari/536.29.13
+Mozilla/5.0 (Macintosh; Intel Mac OS X 10_8_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/27.0.1453.110 Safari/537.36
+Mozilla/5.0 (Macintosh; Intel Mac OS X 10_8_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/31.0.1650.63 Safari/537.36
+Mozilla/5.0 (Macintosh; Intel Mac OS X 10_8_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.95 Safari/537.36
+Mozilla/5.0 (Macintosh; Intel Mac OS X 10_8_5) AppleWebKit/536.30.1 (KHTML, like Gecko) Version/6.0.5 Safari/536.30.1
+Mozilla/5.0 (Macintosh; Intel Mac OS X 10_8_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/31.0.1650.63 Safari/537.36
+Mozilla/5.0 (Macintosh; Intel Mac OS X 10_8_5) AppleWebKit/537.71 (KHTML, like Gecko) Version/6.1 Safari/537.71
+Mozilla/5.0 (Macintosh; Intel Mac OS X 10_8_5) AppleWebKit/537.73.11 (KHTML, like Gecko) Version/6.1.1 Safari/537.73.11
+Mozilla/5.0 (Macintosh; Intel Mac OS X 10.8; rv:26.0) Gecko/20100101 Firefox/26.0
+Mozilla/5.0 (Macintosh; Intel Mac OS X 10.8; rv:43.0) Gecko/20100101 Firefox/43.0
+Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/31.0.1650.57 Safari/537.36
+Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/31.0.1650.63 Safari/537.36
+Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/31.0.1650.57 Safari/537.36
+Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/31.0.1650.63 Safari/537.36
+Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/32.0.1700.68 Safari/537.36
+Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_1) AppleWebKit/537.73.11 (KHTML, like Gecko) Version/7.0.1 Safari/537.73.11
+Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/34.0.1847.131 Safari/537.36
+Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/38.0.2125.111 Safari/537.36
+Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_2) AppleWebKit/537.75.14 (KHTML, like Gecko) Version/7.0.3 Safari/537.75.14
+Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/35.0.1916.114 Safari/537.36
+Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/43.0.2357.124 Safari/537.36
+Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/38.0.2125.122 Safari/537.36
+Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2183.55 Safari/537.36
+Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/42.0.2311.135 Safari/537.36
+Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9) AppleWebKit/537.71 (KHTML, like Gecko) Version/7.0 Safari/537.71
+Mozilla/5.0 (Macintosh; Intel Mac OS X 10.9; rv:25.0) Gecko/20100101 Firefox/25.0
+Mozilla/5.0 (Macintosh; Intel Mac OS X 10.9; rv:26.0) Gecko/20100101 Firefox/26.0
+Mozilla/5.0 (Macintosh; Intel Mac OS X 10.9; rv:29.0) Gecko/20100101 Firefox/29.0
+Mozilla/5.0 (Macintosh; Intel Mac OS X 10.9; rv:35.0) Gecko/20100101 Firefox/35.0
+Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_5_8; zh-cn) AppleWebKit/533.18.1 (KHTML, like Gecko) Version/5.0.2 Safari/533.18.5
+Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.6; fr; rv:1.9.2.8) Gecko/20100722 Firefox/3.6.8
+Mozilla/5.0 (Mobile; Windows Phone 8.1; Android 4.0; ARM; Trident/7.0; Touch; rv:11.0; IEMobile/11.0; NOKIA; Lumia 930; Vodafone) like iPhone OS 7_0_3 Mac OS X AppleWebKit/537 (KHTML, like Gecko) Mobile Safari/537
+Mozilla/5.0 Moreover/5.1 (+http://www.moreover.com; webmaster@moreover.com)
+Mozilla/5.0 Project 25499 (project25499.com)
+Mozilla/5.0 (SymbianOS/9.2; U; Series60/3.1 NokiaN95/31.0.017; Profile/MIDP-2.0 Configuration/CLDC-1.1 ) AppleWebKit/413 (KHTML, like Gecko) Safari/413
+Mozilla/5.0 (Unknown; Linux x86_64) AppleWebKit/538.1 (KHTML, like Gecko) PhantomJS/2.1.1 Safari/538.1
+Mozilla/5.0 (Windows NT 10.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2486.0 Safari/537.36 Edge/13.10586
+Mozilla/5.0 (Windows NT 10.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/50.0.2661.102 Safari/537.36
+Mozilla/5.0 (Windows NT 10.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.99 Safari/537.36
+Mozilla/5.0 (Windows NT 10.0; rv:46.0) Gecko/20100101 Firefox/46.0
+Mozilla/5.0 (Windows NT 10.0; rv:50.0) Gecko/20100101 Firefox/50.0
+Mozilla/5.0 (Windows NT 10.0; rv:52.0) Gecko/20100101 Firefox/52.0
+Mozilla/5.0 (Windows NT 10.0; Trident/7.0; rv:11.0) like Gecko
+Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2301.96 Safari/537.36
+Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/42.0.2311.135 Safari/537.36 Edge/12.10240
+Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.79 Safari/537.36 Edge/14.14393
+Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.116 Safari/537.36 Edge/15.14970
+Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.71 Safari/537.36
+Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.87 Safari/537.36
+Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.99 Safari/537.36
+Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.99 Safari/537.36 FirePHP/4Chrome
+Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.75 Safari/537.36
+Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36
+Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2922.0 Safari/537.36
+Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2922.1 Safari/537.36
+Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.14 Safari/537.36
+Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:40.0) Gecko/20100101 Firefox/40.0
+Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:48.0) Gecko/20100101 Firefox/48.0
+Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:49.0) Gecko/20100101 Firefox/49.0
+Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:50.0) Gecko/20100101 Firefox/50.0
+Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:51.0) Gecko/20100101 Firefox/51.0
+Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:52.0) Gecko/20100101 Firefox/52.0
+Mozilla/5.0 (Windows NT 10.0; Win64; x64; Trident/7.0; rv:11.0) like Gecko
+Mozilla/5.0 (Windows NT 10.0; WOW64)
+Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/38.0.2125.122 Safari/537.36 SE 2.X MetaSr 1.0
+Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/43.0.2357.81 Safari/537.36 OPR/30.0.1835.59 (Edition Rambler)
+Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36
+Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.93 Safari/537.36
+Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2490.80 Safari/537.36
+Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/47.0.2526.111 Safari/537.36
+Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/48.0.2564.103 Safari/537.36
+Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/48.0.2564.109 Safari/537.36
+Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/48.0.2564.116 Safari/537.36
+Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/48.0.2564.97 Safari/537.36
+Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2623.75 Safari/537.36 OPR/36.0.2130.32
+Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2623.87 Safari/537.36
+Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/50.0.2661.102 Safari/537.36
+Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.103 Safari/537.36
+Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.116 Safari/537.36
+Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/53.0.2785.116 YaBrowser/16.10.0.2564 Yowser/2.5 Safari/537.36
+Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/53.0.2785.143 Safari/537.36
+Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/53.0.2785.143 YaBrowser/16.10.1.1114 Yowser/2.5 Safari/537.36
+Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.71 Safari/537.36
+Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.87 Safari/537.36
+Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.99 Safari/537.36
+Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.99 Safari/537.36 OPR/41.0.2353.69
+Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.75 Safari/537.36 OPR/42.0.2393.85
+Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36
+Mozilla/5.0 (Windows NT 10.0; WOW64; rv:38.0) Gecko/20100101 Firefox/38.0
+Mozilla/5.0 (Windows NT 10.0; WOW64; rv:39.0) Gecko/20100101 Firefox/39.0
+Mozilla/5.0 (Windows NT 10.0; WOW64; rv:40.0) Gecko/20100101 Firefox/40.0
+Mozilla/5.0 (Windows NT 10.0; WOW64; rv:41.0) Gecko/20100101 Firefox/41.0
+Mozilla/5.0 (Windows NT 10.0; WOW64; rv:43.0) Gecko/20100101 Firefox/43.0
+Mozilla/5.0 (Windows NT 10.0; WOW64; rv:44.0) Gecko/20100101 Firefox/44.0
+Mozilla/5.0 (Windows NT 10.0; WOW64; rv:46.0) Gecko/20100101 Firefox/46.0
+Mozilla/5.0 (Windows NT 10.0; WOW64; rv:49.0) Gecko/20100101 Firefox/49.0
+Mozilla/5.0 (Windows NT 10.0; WOW64; rv:50.0) Gecko/20100101 Firefox/50.0
+Mozilla/5.0 (Windows NT 10.0; WOW64; Trident/7.0; rv:11.0) like Gecko
+Mozilla/5.0 (Windows NT 5.1) AppleWebKit/535.11 (KHTML, like Gecko) Chrome/17.0.963.46 Safari/535.11 MRCHROME
+Mozilla/5.0 (Windows NT 5.1) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/14.0.810.0 Safari/535.1
+Mozilla/5.0 (Windows NT 5.1) AppleWebKit/537.1 (KHTML, like Gecko) Chrome/24.0.1290.1 Safari/537.13
+Mozilla/5.0 (Windows NT 5.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/28.0.1468.0 Safari/537.36
+Mozilla/5.0 (Windows NT 5.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/31.0.1650.63 Safari/537.36
+Mozilla/5.0 (Windows NT 5.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/34.0.1847.116 Safari/537.36
+Mozilla/5.0 (Windows NT 5.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.95 Safari/537.36
+Mozilla/5.0 (Windows NT 5.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.95 Safari/537.36 OPR/26.0.1656.60
+Mozilla/5.0 (Windows NT 5.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.99 Safari/537.36
+Mozilla/5.0 (Windows NT 5.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/42.0.2311.90 Safari/537.36
+Mozilla/5.0 (Windows NT 5.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36
+Mozilla/5.0 (Windows NT 5.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2623.112 Safari/537.36
+Mozilla/5.0 (Windows NT 5.1; ru-RU; rv:26.0) Gecko/20100101 Firefox/26.0
+Mozilla/5.0 (Windows NT 5.1; rv:2.0b13pre) Gecko/20110223 Firefox/4.0b13pre
+Mozilla/5.0 (Windows NT 5.1; rv:24.0) Gecko/20100101 Firefox/24.0
+Mozilla/5.0 (Windows NT 5.1; rv:25.0) Gecko/20100101 Firefox/25.0
+Mozilla/5.0 (Windows NT 5.1; rv:26.0) Gecko/20100101 Firefox/26.0
+Mozilla/5.0 (Windows NT 5.1; rv:32.0) Gecko/20100101 Firefox/31.0
+Mozilla/5.0 (Windows NT 5.1; rv:34.0) Gecko/20100101 Firefox/34.0
+Mozilla/5.0 (Windows NT 5.1; rv:35.0) Gecko/20100101 Firefox/35.0
+Mozilla/5.0 (Windows NT 5.1; rv:38.0) Gecko/20100101 Firefox/38.0 K-Meleon/76.0
+Mozilla/5.0 (Windows NT 5.1; rv:43.0) Gecko/20100101 Firefox/43.0
+Mozilla/5.0 (Windows NT 5.1; rv:47.0) Gecko/20100101 Firefox/47.0
+Mozilla/5.0 (Windows NT 5.1; rv:48.0) Gecko/20100101 Firefox/48.0
+Mozilla/5.0 (Windows NT 5.1; rv:49.0) Gecko/20100101 Firefox/49.0
+Mozilla/5.0 (Windows NT 5.1; rv:50.0) Gecko/20100101 Firefox/50.0
+Mozilla/5.0 (Windows NT 5.1; rv:6.0.2) Gecko/20100101 Firefox/6.0.2
+Mozilla/5.0 (Windows NT 5.1; rv:7.0.1) Gecko/20100101 Firefox/7.0.1
+Mozilla/5.0 (Windows NT 5.1; rv:9.0.1) Gecko/20100101 Firefox/9.0.1
+Mozilla/5.0 (Windows NT 5.1; U; en) Opera 8.00
+Mozilla/5.0 (Windows NT 5.1; U; en) Opera 8.01
+Mozilla/5.0 (Windows NT 5.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/36.0.1996.45 Safari/537.36
+Mozilla/5.0 (Windows NT 5.2; rv:43.0) Gecko/20100101 Firefox/43.0
+Mozilla/5.0 (Windows NT 5.2; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2623.112 Safari/537.36
+Mozilla/5.0 (Windows NT 6.0) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/14.0.792.0 Safari/535.1
+Mozilla/5.0 (Windows NT 6.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/30.0.1599.17 Safari/537.36
+Mozilla/5.0 (Windows NT 6.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/31.0.1650.63 Safari/537.36
+Mozilla/5.0 (Windows NT 6.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/34.0.1847.116 Safari/537.36
+Mozilla/5.0 (Windows NT 6.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.71 Safari/537.36
+Mozilla/5.0 (Windows NT 6.0; rv:26.0) Gecko/20100101 Firefox/26.0
+Mozilla/5.0 (Windows NT 6.0; rv:34.0) Gecko/20100101 Firefox/34.0
+Mozilla/5.0 (Windows NT 6.0; rv:49.0) Gecko/20100101 Firefox/49.0
+Mozilla/5.0 (Windows NT 6.0; rv:50.0) Gecko/20100101 Firefox/50.0
+Mozilla/5.0 (Windows NT 6.0; WOW64) AppleWebKit/534.24 (KHTML, like Gecko) Chrome/11.0.696.34 Safari/534.24
+Mozilla/5.0 (Windows NT 6.0; WOW64) AppleWebKit/534.30 (KHTML, like Gecko) Chrome/12.0.742.91 Safari/534.30
+Mozilla/5.0 (Windows NT 6.0; WOW64) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.57 Safari/537.17
+Mozilla/5.0 (Windows NT 6.0; WOW64; rv:40.0) Gecko/20100101 Firefox/40.0
+Mozilla/5.0 (Windows NT 6.1) AppleWebKit/536.5 (KHTML like Gecko) Chrome/19.0.1084.56 Safari/536.5
+Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.1 (KHTML, like Gecko) Chrome/21.0.1180.89 Safari/537.1
+Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/27.0.1453.90 Safari/537.36
+Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/31.0.1650.63 Safari/537.36
+Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/32.0.1700.72 Safari/537.36
+Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/33.0.1750.154 Safari/537.36
+Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/33.0.1750.154 Safari/537.36 OPR/20.0.1387.91
+Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/37.0.2062.124 YaBrowser/14.10.2062.12521 Safari/537.36
+Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.95 Safari/537.36
+Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.95 Safari/537.36 OPR/26.0.1656.60
+Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2228.0 Safari/537.36
+Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/47.0.2526.111 Safari/537.36
+Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/48.0.2564.109 Safari/537.36
+Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/53.0.2785.116 Safari/537.36
+Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/53.0.2785.143 Safari/537.36
+Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/53.0.2785.21 Safari/537.36
+Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.71 Safari/537.36
+Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.99 Safari/537.36
+Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.99 Safari/537.36 OPR/41.0.2353.69
+Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.75 Safari/537.36
+Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Dragon/36.1.1.21 Chrome/36.0.1985.97 Safari/537.36
+Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Iron/32.0.1750.1 Chrome/32.0.1750.1 Safari/537.36
+Mozilla/5.0 (Windows NT 6.1; rv:12.0) Gecko/ 20120405 Firefox/14.0.1
+Mozilla/5.0 (Windows NT 6.1; rv:18.0) Gecko/20100101 Firefox/18.0
+Mozilla/5.0 (Windows NT 6.1; rv:19.0) Gecko/20100101 Firefox/19.0
+Mozilla/5.0 (Windows NT 6.1; rv:1.9) Gecko/20100101 Firefox/4.0
+Mozilla/5.0 (Windows NT 6.1; rv:2.0b10pre) Gecko/20110113 Firefox/4.0b10pre
+Mozilla/5.0 (Windows NT 6.1; rv:2.0b6pre) Gecko/20100903 Firefox/4.0b6pre Firefox/4.0b6pre
+Mozilla/5.0 (Windows NT 6.1; rv:21.0) Gecko/20100101 Firefox/21.0
+Mozilla/5.0 (Windows NT 6.1; rv:24.0) Gecko/20100101 Firefox/24.0
+Mozilla/5.0 (Windows NT 6.1; rv:24.0) Gecko/20140329 Firefox/24.0 PaleMoon/24.4.2
+Mozilla/5.0 (Windows NT 6.1; rv:25.0) Gecko/20100101 Firefox/25.0
+Mozilla/5.0 (Windows NT 6.1; rv:26.0) Gecko/20100101 Firefox/26.0
+Mozilla/5.0 (Windows NT 6.1; rv:28.0) Gecko/20100101 Firefox/28.0
+Mozilla/5.0 (Windows NT 6.1; rv:31.0) Gecko/20100101 Firefox/31.0
+Mozilla/5.0 (Windows NT 6.1; rv:32.0) Gecko/20100101 Firefox/32.0
+Mozilla/5.0 (Windows NT 6.1; rv:34.0) Gecko/20100101 Firefox/34.0
+Mozilla/5.0 (Windows NT 6.1; rv:35.0) Gecko/20100101 Firefox/35.0
+Mozilla/5.0 (Windows NT 6.1; rv:38.0) Gecko/20100101 Firefox/38.0 K-Meleon/76.0
+Mozilla/5.0 (Windows NT 6.1; rv:39.0) Gecko/20100101 Firefox/39.0
+Mozilla/5.0 (Windows NT 6.1; rv:43.0) Gecko/20100101 Firefox/43.0
+Mozilla/5.0 (Windows NT 6.1; rv:44.0) Gecko/20100101 Firefox/44.0
+Mozilla/5.0 (Windows NT 6.1; rv:45.0) Gecko/20100101 Firefox/45.0
+Mozilla/5.0 (Windows NT 6.1; rv:49.0) Gecko/20100101 Firefox/49.0
+Mozilla/5.0 (Windows NT 6.1; rv:50.0) Gecko/20100101 Firefox/50.0
+Mozilla/5.0 (Windows NT 6.1; rv:5.0) Gecko/20100101 Firefox/5.0
+Mozilla/5.0 (Windows NT 6.1; rv:6.0) Gecko/20100101 Firefox/19.0
+Mozilla/5.0 (Windows NT 6.1; rv:9.0.1) Gecko/20100101 Firefox/9.0.1
+Mozilla/5.0 (Windows NT 6.1; Trident/7.0; rv:11.0) like C9CF7
+Mozilla/5.0 (Windows NT 6.1; Trident/7.0; rv:11.0) like Gecko
+Mozilla/5.0 (Windows NT 6.1; U;WOW64; de;rv:11.0) Gecko Firefox/11.0
+Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.95 Safari/537.36
+Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/40.0.2214.85 Safari/537.36
+Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.82 Safari/537.36
+Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.71 Safari/537.36
+Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.87 Safari/537.36
+Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.99 Safari/537.36
+Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.59 Safari/537.36
+Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:2.0b11pre) Gecko/20110128 Firefox/4.0b11pre
+Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:2.2a1pre) Gecko/20110324 Firefox/4.2a1pre
+Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:24.0) Gecko/20100101 Firefox/24.0 Waterfox/24.0
+Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:44.0) Gecko/20100101 Firefox/44.0
+Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:5.0) Gecko/20110619 Firefox/5.0
+Mozilla/5.0 (Windows NT 6.1; Win64; x64; Trident/7.0; CTL_IE11; rv:11.0) like Gecko
+Mozilla/5.0 (Windows NT 6.1; Win64; x64; Trident/7.0; rv:11.0) like Gecko
+Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/534.24 (KHTML, like Gecko) Chrome/11.0.696.12 Safari/534.24
+Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/534+ (KHTML, like Gecko) BingPreview/1.0b
+Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/535.2 (KHTML, like Gecko) Chrome/15.0.874.121 Safari/535.2
+Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.52 Safari/537.17
+Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/28.0.1468.0 Safari/537.36
+Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/28.0.1500.72 Safari/537.36
+Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/28.0.1500.95 YaBrowser/13.10.1500.9323 Safari/537.36
+Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/29.0.1547.57 Safari/537.36 OPR/16.0.1196.73
+Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/31.0.1650.57 Safari/537.36
+Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/31.0.1650.63 Safari/537.36
+Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/32.0.1700.107 Safari/537.36
+Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/32.0.1700.41 Safari/537.36
+Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/34.0.1847.116 Safari/537.36
+Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/34.0.1847.131 Safari/537.36
+Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/34.0.1847.137 Safari/537.36
+Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML like Gecko) Chrome/35.0.1916.114 Safari/537.36
+Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/35.0.1916.153 Safari/537.36
+Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/36.0.1985.125 Safari/537.36
+Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/36.0.1985.143 Safari/537.36
+Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/37.0.2062.120 Safari/537.36
+Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.95 Safari/537.36
+Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.95 Safari/537.36 OPR/26.0.1656.60
+Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.99 Safari/537.36
+Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/40.0.2214.111 Safari/537.36
+Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/40.0.2214.115 Safari/537.36
+Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2227.0 Safari/537.36
+Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/42.0.2311.135 Safari/537.36
+Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/42.0.2311.152 Safari/537.36
+Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/43.0.2357.65 Safari/537.36
+Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/43.0.2357.81 Safari/537.36
+Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/44.0.2403.125 Safari/537.36
+Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/44.0.2403.89 Safari/537.36
+Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2490.86 YaBrowser/15.12.1.6475 Safari/537.36
+Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/47.0.2526.106 Safari/537.36
+Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/47.0.2526.111 Safari/537.36
+Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/47.0.2526.111 Safari/537.36 OPR/34.0.2036.50
+Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/47.0.2526.111 YaBrowser/16.2.0.3539 Safari/537.36
+Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/48.0.2564.103 Safari/537.36
+Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/48.0.2564.109 Safari/537.36
+Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/48.0.2564.116 Safari/537.36
+Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/48.0.2564.82 Safari/537.36 OPR/35.0.2066.37
+Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/48.0.2564.97 Safari/537.36
+Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.103 Safari/537.36
+Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/53.0.2785.143 Safari/537.36
+Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/53.0.2785.143 YaBrowser/16.10.1.1114 Yowser/2.5 Safari/537.36
+Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.71 Safari/537.36
+Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.87 Safari/537.36
+Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.99 Safari/537.36
+Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.99 Safari/537.36 OPR/41.0.2353.69
+Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.75 Safari/537.36
+Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36
+Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Dragon/36.1.1.21 Chrome/36.0.1985.97 Safari/537.36
+Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Iron/29.0.1600.1 Chrome/29.0.1600.1 Safari/537.36
+Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Maxthon/4.4.3.4000 Chrome/30.0.1599.101 Safari/537.36
+Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Maxthon/4.4.4.600 Chrome/30.0.1599.101 Safari/537.36
+Mozilla/5.0 (Windows NT 6.1; WOW64; rv:16.0) Gecko/20100101 Firefox/36.0
+Mozilla/5.0 (Windows NT 6.1; WOW64; rv:19.0) Gecko/20100101 Firefox/19.0
+Mozilla/5.0 (Windows NT 6.1; WOW64; rv:2.0b11pre) Gecko/20110128 Firefox/4.0b11pre
+Mozilla/5.0 (Windows NT 6.1; WOW64; rv:2.0b7) Gecko/20100101 Firefox/4.0b7
+Mozilla/5.0 (Windows NT 6.1; WOW64; rv:21.0) Gecko/20100101 Firefox/21.0
+Mozilla/5.0 (Windows NT 6.1; WOW64; rv:22.0) Gecko/20100101 Firefox/22.0
+Mozilla/5.0 (Windows NT 6.1; WOW64; rv:24.0) Gecko/20100101 Firefox/24.0
+Mozilla/5.0 (Windows NT 6.1; WOW64; rv:25.0) Gecko/20100101 Firefox/25.0
+Mozilla/5.0 (Windows NT 6.1; WOW64; rv:26.0) Gecko/20100101 Firefox/26.0
+Mozilla/5.0 (Windows NT 6.1; WOW64; rv:27.0) Gecko/20100101 Firefox/27.0
+Mozilla/5.0 (Windows NT 6.1; WOW64; rv:27.3) Gecko/20100101 Firefox/27.3
+Mozilla/5.0 (Windows NT 6.1; WOW64; rv:28.0) Gecko/20100101 Firefox/28.0
+Mozilla/5.0 (Windows NT 6.1; WOW64; rv:29.0) Gecko/20100101 Firefox/29.0
+Mozilla/5.0 (Windows NT 6.1; WOW64; rv:31.0) Gecko/20100101 Firefox/31.0
+Mozilla/5.0 (Windows NT 6.1; WOW64; rv:31.0) Gecko/20130401 Firefox/31.0
+Mozilla/5.0 (Windows NT 6.1; WOW64; rv:33.0) Gecko/20100101 Firefox/33.0
+Mozilla/5.0 (Windows NT 6.1; WOW64; rv:34.0) Gecko/20100101 Firefox/34.0
+Mozilla/5.0 (Windows NT 6.1; WOW64; rv:35.0) Gecko/20100101 Firefox/35.0
+Mozilla/5.0 (Windows NT 6.1; WOW64; rv:36.0) Gecko/20100101 Firefox/36.0
+Mozilla/5.0 (Windows NT 6.1; WOW64; rv:37.0) Gecko/20100101 Firefox/37.0
+Mozilla/5.0 (Windows NT 6.1; WOW64; rv:38.0) Gecko/20100101 Firefox/38.0
+Mozilla/5.0 (Windows NT 6.1; WOW64; rv:40.0) Gecko/20100101 Firefox/40.1
+Mozilla/5.0 (Windows NT 6.1; WOW64; rv:43.0) Gecko/20100101 Firefox/43.0
+Mozilla/5.0 (Windows NT 6.1; WOW64; rv:44.0) Gecko/20100101 Firefox/44.0
+Mozilla/5.0 (Windows NT 6.1; WOW64; rv:45.0) Gecko/20100101 Firefox/45.0
+Mozilla/5.0 (Windows NT 6.1; WOW64; rv:46.0) Gecko/20100101 Firefox/46.0
+Mozilla/5.0 (Windows NT 6.1; WOW64; rv:47.0) Gecko/20100101 Firefox/47.0
+Mozilla/5.0 (Windows NT 6.1; WOW64; rv:49.0) Gecko/20100101 Firefox/49.0
+Mozilla/5.0 (Windows NT 6.1; WOW64; rv:50.0) Gecko/20100101 Firefox/50.0
+Mozilla/5.0 (Windows NT 6.1; WOW64; Trident/7.0; AS; rv:11.0) like Gecko
+Mozilla/5.0 (Windows NT 6.1; WOW64; Trident/7.0; CTL_IE11; rv:11.0) like Gecko
+Mozilla/5.0 (Windows NT 6.1; WOW64; Trident/7.0; rv:11.0) like Gecko
+Mozilla/5.0 (Windows NT 6.2) AppleWebKit/537.36 (KHTML like Gecko) Chrome/27.0.1453.116 Safari/537.36
+Mozilla/5.0 (Windows NT 6.2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/31.0.1650.63 Safari/537.36 QIHU 360SE; 360Spider
+Mozilla/5.0 (Windows NT 6.2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.99 Safari/537.36
+Mozilla/5.0 (Windows NT 6.2;en-US) AppleWebKit/537.36 (KHTML, live Gecko) Chrome/39.0.2206.79 Safari/537
+Mozilla/5.0 (Windows NT 6.2; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2477.75 Safari/537.36
+Mozilla/5.0 (Windows NT 6.2; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.99 Safari/537.36
+Mozilla/5.0 (Windows NT 6.2; Win64; x64; rv:27.0) Gecko/20100101 Firefox/27.0
+Mozilla/5.0 (Windows NT 6.2; Win64; x64; rv:36.0) Gecko/20100101 Firefox/36.0
+Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.31 (KHTML, like Gecko) Chrome/26.0.1410.58 Safari/537.31
+Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/27.0.1453.94 Safari/537.36
+Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.36 (KHTML like Gecko) Chrome/28.0.1469.0 Safari/537.36
+Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/29.0.1547.0 Safari/537.36
+Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.36 (KHTML like Gecko) Chrome/30.0.1599.69 Safari/537.36
+Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/31.0.1650.63 Safari/537.36
+Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/32.0.1700.107 Safari/537.36 OPR/19.0.1326.63 (Edition Campaign 21)
+Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/33.0.1750.5 Safari/537.36
+Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.36 (KHTML like Gecko) Chrome/34.0.1847.116 Safari/537.36
+Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.95 Safari/537.36
+Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2227.1 Safari/537.36
+Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2490.80 Safari/537.36
+Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.99 Safari/537.36
+Mozilla/5.0 (Windows NT 6.2; WOW64; rv:19.0) Gecko/20100101 Firefox/19.0
+Mozilla/5.0 (Windows NT 6.2; WOW64; rv:26.0) Gecko/20100101 Firefox/26.0
+Mozilla/5.0 (Windows NT 6.2; WOW64; rv:29.0) Gecko/20100101 Firefox/29.0
+Mozilla/5.0 (Windows NT 6.2; WOW64; rv:34.0) Gecko/20100101 Firefox/34.0
+Mozilla/5.0 (Windows NT 6.2; WOW64; rv:35.0) Gecko/20100101 Firefox/35.0
+Mozilla/5.0 (Windows NT 6.2; WOW64; rv:36.0) Gecko/20100101 Firefox/36.0
+Mozilla/5.0 (Windows NT 6.2; WOW64; rv:44.0) Gecko/20100101 Firefox/44.0
+Mozilla/5.0 (Windows NT 6.2; WOW64; rv:49.0) Gecko/20100101 Firefox/49.0
+Mozilla/5.0 (Windows NT 6.2; WOW64; rv:50.0) Gecko/20100101 Firefox/50.0
+Mozilla/5.0 (Windows NT 6.2; WOW64; Trident/7.0; rv:11.0) like Gecko
+Mozilla/5.0 (Windows NT 6.3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.95 Safari/537.36
+Mozilla/5.0 (Windows NT 6.3; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/37.0.2049.0 Safari/537.36
+Mozilla/5.0 (Windows NT 6.3; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2220.0 Safari/537.36
+Mozilla/5.0 (Windows NT 6.3; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.71 Safari/537.36
+Mozilla/5.0 (Windows NT 6.3; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.87 Safari/537.36
+Mozilla/5.0 (Windows NT 6.3; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.99 Safari/537.36
+Mozilla/5.0 (Windows NT 6.3; Win64; x64; rv:49.0) Gecko/20100101 Firefox/49.0
+Mozilla/5.0 (Windows NT 6.3; Win64; x64; Trident/7.0; rv:11.0) like Gecko
+Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/31.0.1650.63 Safari/537.36
+Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/32.0.1700.72 Safari/537.36
+Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/32.0.1700.76 Safari/537.36
+Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/34.0.1788.0 Safari/537.36
+Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/34.0.1847.131 Safari/537.36
+Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/34.0.1847.137 Safari/537.36
+Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/36.0.1985.143 Safari/537.36
+Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.71 Safari/537.36
+Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.95 Safari/537.36
+Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/40.0.2214.115 Safari/537.36
+Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2272.118 Safari/537.36
+Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/42.0.2311.152 Safari/537.36
+Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/43.0.2357.65 Safari/537.36
+Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36
+Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/47.0.2526.111 Safari/537.36
+Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/48.0.2564.109 Safari/537.36
+Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/48.0.2564.116 Safari/537.36
+Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/48.0.2564.97 Safari/537.36
+Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.71 Safari/537.36
+Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.99 Safari/537.36
+Mozilla/5.0 (Windows NT 6.3; WOW64; rv:26.0) Gecko/20100101 Firefox/26.0
+Mozilla/5.0 (Windows NT 6.3; WOW64; rv:28.0) Gecko/20100101 Firefox/28.0
+Mozilla/5.0 (Windows NT 6.3; WOW64; rv:29.0) Gecko/20100101 Firefox/29.0
+Mozilla/5.0 (Windows NT 6.3; WOW64; rv:31.0) Gecko/20100101 Firefox/31.0
+Mozilla/5.0 (Windows NT 6.3; WOW64; rv:32.0) Gecko/20100101 Firefox/32.0
+Mozilla/5.0 (Windows NT 6.3; WOW64; rv:34.0) Gecko/20100101 Firefox/34.0
+Mozilla/5.0 (Windows NT 6.3; WOW64; rv:35.0) Gecko/20100101 Firefox/35.0
+Mozilla/5.0 (Windows NT 6.3; WOW64; rv:37.0) Gecko/20100101 Firefox/37.0
+Mozilla/5.0 (Windows NT 6.3; WOW64; rv:43.0) Gecko/20100101 Firefox/43.0
+Mozilla/5.0 (Windows NT 6.3; WOW64; rv:44.0) Gecko/20100101 Firefox/44.0
+Mozilla/5.0 (Windows NT 6.3; WOW64; rv:45.0) Gecko/20100101 Firefox/45.0
+Mozilla/5.0 (Windows NT 6.3; WOW64; rv:49.0) Gecko/20100101 Firefox/49.0
+Mozilla/5.0 (Windows NT 6.3; WOW64; rv:50.0) Gecko/20100101 Firefox/50.0
+Mozilla/5.0 (Windows NT 6.3; WOW64; Trident/7.0; rv:11.0) like Gecko
+Mozilla/5.0 (Windows NT 6.3; WOW64; Trident/7.0; Touch; rv:11.0) like Gecko
+Mozilla/5.0 (Windows NT 8.1; WOW64; rv:48.0) Gecko/20100101 Firefox/48.0
+Mozilla/5.0 (Windows; U; MSIE 7.0; Windows NT 6.0; en-US)
+Mozilla/5.0 (Windows; U; MSIE 9.0; Windows NT 9.0; en-US)
+Mozilla/5.0 (Windows; U; MSIE 9.0; WIndows NT 9.0; en-US)
+Mozilla/5.0 (Windows; U; Windows NT 5.0; en-US; rv:1.7.12) Gecko/20050915 Firefox/1.0.7
+Mozilla/5.0 (Windows; U; Windows NT 5.1; en; rv:1.9.0.13) Gecko/2009073022 Firefox/3.5.2 (.NET CLR 3.5.30729) SurveyBot/2.3 (DomainTools)
+Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/532.1 (KHTML, like Gecko)Chrome/4.0.219.6 Safari/532.1
+Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/533.4 (KHTML, like Gecko) Chrome/5.0.375.99 Safari/533.4
+Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/534.16 (KHTML, like Gecko) Chrome/10.0.634.0 Safari/534.16
+Mozilla/5.0 (Windows; U; Windows NT 5.1; en-us; rv:1.7.12) Gecko/20050919 Firefox/1.0.7
+Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.0.1) Gecko/2008070208 Firefox/3.0.1
+Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.1.6) Gecko/20091201 Firefox/3.5.6 (.NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)
+Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.2.12) Gecko/20101026 Firefox/3.6.12
+Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.2.8) Gecko/20100721 Firefox/3.6.8
+Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.2) Gecko/20100115 Firefox/3.6
+Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:2.0.1) Gecko/20110606 Firefox/4.0.1
+Mozilla/5.0 (Windows; U; Windows NT 5.1; it; rv:1.8.1.11) Gecko/20071127 Firefox/2.0.0.11
+Mozilla/5.0 (Windows; U; Windows NT 5.1; pt-PT; rv:1.9.1.2) Gecko/20090729 Firefox/3.5.2 (.NET CLR 3.5.30729)
+Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.9.0.7) Gecko/2009021910 Firefox/3.0.7 (.NET CLR 3.5.30729)
+Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.9.2.26) Gecko/20120128 Firefox/3.6.26 GTB7.1 ( .NET CLR 3.5.30729)
+Mozilla/5.0 (Windows; U; Windows NT 5.1; rv:1.7.3) Gecko/20041001 Firefox/0.10.1
+Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-CN; rv:1.9.2.2) Gecko/20100316 Firefox/3.6.2 (.NET CLR 3.5.30729)
+Mozilla/5.0 (Windows; U; Windows NT 5.2; en-US) AppleWebKit/530.5 (KHTML, like Gecko) Chrome/2.0.172.30 Safari/530.5
+Mozilla/5.0 (Windows; U; Windows NT 5.2; en-US) AppleWebKit/534.17 (KHTML, like Gecko) Chrome/11.0.652.0 Safari/534.17
+Mozilla/5.0 (Windows; U; Windows NT 5.2; en-US; rv:1.9.1.3) Gecko/20090824 Firefox/3.5.3(.NET CLR 3.5.30729)
+Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US; rv:1.9.0.3) Gecko/2008092417 Firefox/3.0.4
+Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US; rv:1.9.2.3) Gecko/20100401 Firefox/3.6.3 GTB6 (.NET CLR 3.5.30729)
+Mozilla/5.0 (Windows; U; Windows NT 6.1; en; rv:1.9.1.3) Gecko/20090824 Firefox/3.5.3(.NET CLR 3.5.30729)
+Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US) AppleWebKit/533.19.4 (KHTML, like Gecko) Version/5.0.2 Safari/533.18.5
+Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US) AppleWebKit/534.13 (KHTML, like Gecko) Chrome/9.0.597.107 Safari/534.13 BuiltWith/1.2
+=Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US) AppleWebKit/534.16 (KHTML, like Gecko) Chrome/10.0.648.204 Safari/534.16
+Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.1.1) Gecko/20090718 Firefox/3.5.1
+Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.2.23) Gecko/20110920 Firefox/3.6.23
+Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.2.28)
+Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.2.28) Gecko/20120306 Firefox/3.6.28
+Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.2b1) Gecko/20091014 Firefox/3.6b1 GTB5
+Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.2b5) Gecko/20091204 Firefox/3.6b5
+Mozilla/5.0 (Windows; U; Windows NT 6.1; ru; rv:1.9.2.2) Gecko/20100316 Firefox/3.6.2 WebMoney Advisor
+Mozilla/5.0 (Windows; U; Windows NT 6.1; ru; rv:1.9.2.8) Gecko/20100722 Firefox/3.6.8
+Mozilla/5.0 (Windows; U; Windows NT 6.1; rv:2.2) Gecko/20110201
+Mozilla/5.0 (Windows; Windows NT 5.1; en-US) Firefox/3.5.0
+Mozilla/5.0 (X11; CrOS i686 1660.57.0) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.46 Safari/535.19
+Mozilla/5.0 (X11; CrOS x86_64 6310.68.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.96 Safari/537.36
+Mozilla/5.0 (X11; Fedora; Linux x86_64; rv:49.0) Gecko/20100101 Firefox/49.0
+Mozilla/5.0 (X11; Fedora; Linux x86_64; rv:50.0) Gecko/20100101 Firefox/50.0
+Mozilla/5.0 (X11; FreeBSD amd64; rv:45.0) Gecko/20100101 Firefox/45.0
+Mozilla/5.0 (X11; Linux i686) AppleWebKit/534.30 (KHTML, like Gecko) Ubuntu/10.10 Chromium/12.0.742.112 Chrome/12.0.742.112 Safari/534.30
+Mozilla/5.0 (X11; Linux i686) AppleWebKit/534.34 (KHTML, like Gecko) Qt/4.8.4 Safari/534.34
+Mozilla/5.0 (X11; Linux i686) AppleWebKit/535.11 (KHTML, like Gecko) Ubuntu/11.10 Chromium/17.0.963.65 Chrome/17.0.963.65 Safari/535.11
+Mozilla/5.0 (X11; Linux i686) AppleWebKit/535.1 (KHTML, like Gecko) Ubuntu/10.04 Chromium/14.0.813.0 Chrome/14.0.813.0 Safari/535.1
+Mozilla/5.0 (X11; Linux i686) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/30.0.1599.66 Safari/537.36
+Mozilla/5.0 (X11; Linux i686) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/31.0.1650.63 Safari/537.36
+Mozilla/5.0 (X11; Linux i686) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2303.22 Safari/537.36
+Mozilla/5.0 (X11; Linux i686) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/42.0.2315.18 Safari/537.36
+Mozilla/5.0 (X11; Linux i686) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/48.0.2564.116 Safari/537.36
+Mozilla/5.0 (X11; Linux i686) AppleWebKit/537.36 (KHTML, like Gecko) Ubuntu Chromium/31.0.1650.63 Chrome/31.0.1650.63 Safari/537.36
+Mozilla/5.0 (X11; Linux i686 on x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/34.0.1870.93 Safari/537.36
+Mozilla/5.0 (X11; Linux i686 on x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/44.0.2447.81 Safari/537.36
+Mozilla/5.0 (X11; Linux i686 on x86_64; rv:28.0) Gecko/20100101 Firefox/28.0
+Mozilla/5.0 (X11; Linux i686; rv:17.0) Gecko/20100101 Firefox/17.0
+Mozilla/5.0 (X11; Linux i686; rv:21.0) Gecko/20100101 Firefox/21.0
+Mozilla/5.0 (X11; Linux i686; rv:3.0) Gecko/20100101 Goanna/20161003 PaleMoon/27.0.0b1
+Mozilla/5.0 (X11; Linux i686; rv:45.0) Gecko/20100101 Firefox/45.0
+Mozilla/5.0 (X11; Linux ppc; rv:5.0) Gecko/20100101 Firefox/5.0
+Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/534.24 (KHTML, like Gecko) Chrome/11.0.696.34 Safari/534.24
+Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/534.24 (KHTML, like Gecko) Chrome/11.0.696.3 Safari/534.24
+Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/534.30 (KHTML, like Gecko) Ubuntu/10.10 Chromium/12.0.742.112 Chrome/12.0.742.112 Safari/534.30
+Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/534.34 (KHTML, like Gecko) Qt/4.8.2
+Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/534.34 (KHTML, like Gecko) Qt/4.8.2 Safari/534.34
+Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/535.11 (KHTML, like Gecko) Ubuntu/11.04 Chromium/17.0.963.65 Chrome/17.0.963.65 Safari/535.11
+Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/535.19 (KHTML, like Gecko) Ubuntu/11.10 Chromium/18.0.1025.142 Chrome/18.0.1025.142 Safari/535.19
+Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/14.0.803.0 Safari/535.1
+Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/536.5 (KHTML, like Gecko) Chrome/19.0.1084.9 Safari/536.5
+Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/28.0.1500.71 Safari/537.36
+Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/30.0.1599.114 Safari/537.36
+Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/31.0.1650.57 Safari/537.36
+Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/31.0.1650.63 Safari/537.36
+Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/33.0.1787.44 Safari/537.36
+Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/36.0.1985.125 Safari/537.36
+Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/37.0.2062.120 Safari/537.36
+Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.71 Safari/537.36
+Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.99 Safari/537.36
+Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/43.0.2357.130 Safari/537.36
+Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/47.0.2526.111 Safari/537.36
+Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/48.0.2564.97 Safari/537.36
+Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2623.75 Safari/537.36 Google Favicon
+Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/50.0.2661.75 Safari/537.36
+Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/50.0.2661.86 Safari/537.36
+Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/53.0.2785.116 Safari/537.36
+Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/53.0.2785.143 Safari/537.36
+Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/53.0.2785.89 Safari/537.36
+Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.100 Safari/537.36
+Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.59 Safari/537.36
+Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.71 Safari/537.36
+Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.90 Safari/537.36
+Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.75 Safari/537.36
+Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36
+Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko; Google Web Preview) Chrome/27.0.1453 Safari/537.36
+Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Ubuntu Chromium/31.0.1650.63 Chrome/31.0.1650.63 Safari/537.36
+Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Ubuntu Chromium/53.0.2785.143 Chrome/53.0.2785.143 Safari/537.36
+Mozilla/5.0 (X11; Linux x86_64) Gecko Firefox/5.0
+Mozilla/5.0 (X11; Linux x86_64; rv:18.0) Gecko/20100101 Firefox/18.0
+Mozilla/5.0 (X11; Linux x86_64; rv:26.0) Gecko/20100101 Firefox/26.0
+Mozilla/5.0 (X11; Linux x86_64; rv:29.0) Gecko/20100101 Firefox/29.0 Iceweasel/29.0a2
+Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Firefox/45.0
+Mozilla/5.0 (X11; Linux x86_64; rv:49.0) Gecko/20100101 Firefox/49.0
+Mozilla/5.0 (X11; Linux x86_64; rv:50.0) Gecko/20100101 Firefox/50.0
+Mozilla/5.0 (X11; Linux x86_64; rv:51.0) Gecko/20100101 Firefox/51.0
+Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Firefox/52.0
+Mozilla/5.0 (X11; Ubuntu; Linux i686) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/44.0.2446.66 Safari/537.36
+Mozilla/5.0 (X11; Ubuntu; Linux i686 on x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/34.0.1907.88 Safari/537.36
+Mozilla/5.0 (X11; Ubuntu; Linux i686; rv:14.0) Gecko/20100101 Firefox/14.0.1
+Mozilla/5.0 (X11; Ubuntu; Linux i686; rv:14.0; ips-agent) Gecko/20100101 Firefox/14.0.1
+Mozilla/5.0 (X11; Ubuntu; Linux i686; rv:26.0) Gecko/20100101 Firefox/26.0
+Mozilla/5.0 (X11; Ubuntu; Linux i686; rv:34.0) Gecko/20100101 Firefox/34.0
+Mozilla/5.0 (X11; Ubuntu; Linux i686; rv:42.0) Gecko/20100101 Firefox/42.0
+Mozilla/5.0 (X11; Ubuntu; Linux i686; rv:49.0) Gecko/20100101 Firefox/49.0
+Mozilla/5.0 (X11; Ubuntu; Linux i686; rv:50.0) Gecko/20100101 Firefox/50.0
+Mozilla/5.0 (X11; Ubuntu; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/36.0.1992.77 Safari/537.36
+Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:21.0) Gecko/20100101 Firefox/21.0
+Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:25.0) Gecko/20100101 Firefox/25.0
+Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:26.0) Gecko/20100101 Firefox/26.0
+Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:47.0) Gecko/20100101 Firefox/47.0
+Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:49.0) Gecko/20100101 Firefox/49.0
+Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:50.0) Gecko/20100101 Firefox/50.0
+Mozilla/5.0 (X11; U; Linux Core i7-4980HQ; de; rv:32.0; compatible; JobboerseBot; http://www.jobboerse.com/bot.htm) Gecko/20100101 Firefox/38.0
+Mozilla/5.0 (X11; U; Linux i586; en-US) AppleWebKit/533.2 (KHTML, like Gecko) Chrome/5.0.342.1 Safari/533.2
+Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.7.8) Gecko/20050511
+Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.1.16) Gecko/20120421 Firefox/11.0
+Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.2.4) Gecko/20100625 Gentoo Firefox/3.6.4
+Mozilla/5.0 (X11; U; Linux i686; pt-BR; rv:1.9.0.15) Gecko/2009102815 Ubuntu/9.04 (jaunty) Firefox/3.0.15
+Mozilla/5.0 (X11; U; Linux x86_64; en-US) AppleWebKit/533.2 (KHTML, like Gecko) Chrome/5.0.342.1 Safari/533.2
+Mozilla/5.0 (X11; U; Linux x86_64; en-US) AppleWebKit/534.16 (KHTML, like Gecko) Chrome/10.0.648.11 Safari/534.16
+Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.1.3) Gecko/20090913 Firefox/3.5.3
+Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.2.4) Gecko/20100614 Ubuntu/10.04 (lucid) Firefox/3.6.4
+Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.2a1pre) Gecko/20090405 Firefox/3.6a1pre
+Mozilla/5.0 zgrab/0.x
+Mozilla/6.0 (compatible)
+Mozilla/6.0 (compatible; MSIE 7.0a1; Windows NT 5.2; SV1)
+node-fetch/1.0 (+https://github.com/bitinn/node-fetch)
+nutch-1.4/Nutch-1.4
+Opera/7.11 (Windows NT 5.1; U) [en]
+Opera/7.54 (Windows NT 5.1; U) [pl]
+Opera/7.60 (Windows NT 5.2; U) [en] (IBM EVV/3.0/EAK01AG9/LE)
+Opera/8.00 (Windows NT 5.1; U; en)
+Opera/8.01 (Windows NT 5.1)
+Opera/9.00 (Windows NT 4.0; U; en)
+Opera/9.00 (Windows NT 5.1; U; en)
+Opera/9.00 (Windows NT 5.1; U; ru)
+Opera/9.01 (Windows NT 5.1; U; en)
+Opera/9.0 (Windows NT 5.1; U; en)
+Opera/9.80 (Android; Opera Mini/13.0.2036/37.9093; U; az) Presto/2.12.423 Version/12.16
+Opera/9.80 (Android; Opera Mini/7.5.33725/37.9154; U; en) Presto/2.12.423 Version/12.16
+Opera/9.80 (SpreadTrum; Opera Mini/4.4.31492/37.9178; U; en) Presto/2.12.423 Version/12.16
+Opera/9.80 (Windows NT 5.1; U; en) Presto/2.10.229 Version/11.60
+Opera/9.80 (Windows NT 5.1; U; en) Presto/2.2.15 Version/10.10
+Opera/9.80 (Windows NT 5.1; U; ru) Presto/2.9.168 Version/11.50
+Opera/9.80 (Windows NT 5.1; U; sk) Presto/2.10.229 Version/11.64
+Opera/9.80 (Windows NT 6.1; MRA 8.4 (build 7786)) Presto/2.12.388 Version/12.17
+Opera/9.80 (Windows NT 6.1; WOW64) Presto/2.12.388 Version/12.16
+Opera/9.80 (Windows NT 6.2; Win64; x64) Presto/2.12.388 Version/12.17
+Opera/9.80 (X11; Linux x86_64) Presto/2.12.388 Version/12.16
+panscient.com
+Pcore-HTTP/v0.24.5
+peopleman/1.6
+perl post
+Phantom.js bot
+PHP/5.2.00
+PHP/5.2.03
+PHP/5.2.04
+PHP/5.2.06
+PHP/5.2.07
+PHP/5.2.10
+PHP/5.2.12
+PHP/5.2.14
+PHP/5.2.15
+PHP/5.2.20
+PHP/5.2.21
+PHP/5.2.22
+PHP/5.2.26
+PHP/5.2.30
+PHP/5.2.32
+PHP/5.2.37
+PHP/5.2.38
+PHP/5.2.39
+PHP/5.2.42
+PHP/5.2.45
+PHP/5.2.47
+PHP/5.2.48
+PHP/5.2.49
+PHP/5.2.50
+PHP/5.2.52
+PHP/5.2.54
+PHP/5.2.55
+PHP/5.2.56
+PHP/5.2.61
+PHP/5.2.64
+PHP/5.2.67
+PHP/5.2.68
+PHP/5.2.71
+PHP/5.2.72
+PHP/5.2.73
+PHP/5.2.74
+PHP/5.2.76
+PHP/5.2.77
+PHP/5.2.79
+PHP/5.2.80
+PHP/5.2.82
+PHP/5.2.86
+PHP/5.2.89
+PHP/5.2.90
+PHP/5.2.91
+PHP/5.2.92
+PHP/5.2.95
+PHP/5.2.96
+PHP/5.3.02
+PHP/5.3.04
+PHP/5.3.10
+PHP/5.3.11
+PHP/5.3.14
+PHP/5.3.15
+PHP/5.{3|2}.{1|2|3|4|5|6|7|8|9|0}{1|2|3|4|5|6|7|8|9|0}
+PHP/5.3.22
+PHP/5.3.23
+PHP/5.3.25
+PHP/5.3.26
+PHP/5.3.30
+PHP/5.3.32
+PHP/5.3.34
+PHP/5.3.39
+PHP/5.3.41
+PHP/5.3.48
+PHP/5.3.49
+PHP/5.3.51
+PHP/5.3.53
+PHP/5.3.57
+PHP/5.3.58
+PHP/5.3.59
+PHP/5.3.61
+PHP/5.3.64
+PHP/5.3.65
+PHP/5.3.66
+PHP/5.3.67
+PHP/5.3.69
+PHP/5.3.73
+PHP/5.3.78
+PHP/5.3.79
+PHP/5.3.80
+PHP/5.3.81
+PHP/5.3.82
+PHP/5.3.86
+PHP/5.3.88
+PHP/5.3.89
+PHP/5.3.90
+PHP/5.3.91
+PHP/5.3.92
+PHP/5.3.97
+PHP/5.3.98
+PHPCrawl
+python-requests/2.11.1
+python-requests/2.12.3
+python-requests/2.2.1 CPython/2.7.6 Linux/3.13.0-24-generic
+python-requests/2.2.1 CPython/3.4.3 Linux/3.13.0-96-generic
+python-requests/2.4.3 CPython/3.4.2 Linux/3.16.0-4-amd64
+Python-urllib/1.17
+Python-urllib/2.6
+Python-urllib/2.7
+Qwantify/1.0
+redback/v0-570-g26f8c96
+RedesScrapy/0.24.1 (+http://g2pi.tsc.uc3m.es/es)
+rogerbot
+Ruby
+Safari/10602.2.14.0.7 CFNetwork/720.5.7 Darwin/14.5.0 (x86_64)
+Safari/11602.1.50.0.10 CFNetwork/760.6.3 Darwin/15.6.0 (x86_64)
+Safari/11602.2.14.0.7 CFNetwork/760.6.3 Darwin/15.6.0 (x86_64)
+Safari/12602.1.50.0.10 CFNetwork/807.0.4 Darwin/16.0.0 (x86_64)
+Safari/12602.2.14.0.7 CFNetwork/807.1.3 Darwin/16.1.0 (x86_64)
+Safari%20Technology%20Preview/12603.1.10 CFNetwork/807.1.3 Darwin/16.1.0 (x86_64)
+SafeDNSBot (https://www.safedns.com/searchbot)
+SalesIntelligent (+https://www.salesintelligent.com)
+Scanbot
+Searchie/1.0 (a Storm-based crawler; https://www.searchie.org; admin@searchie.org)
+Sogou web spider/4.0(+http://www.sogou.com/docs/help/webmasters.htm#07)
+spiderman
+; success; BB-code not working; message must go through moderation;
+Telesphoreo
+}__test|O:21:
+Tiny Tiny RSS/16.3 (638fdf7) (http://tt-rss.org/)
+Twitterbot/1.0
+User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.31 (KHTML, like Gecko) Chrome/26.0.1410.64 Safari/537.31
+vebidoobot
+W3C_Validator/1.3 http://validator.w3.org/services
+WEBDAV Client
+Wget/1.15 (linux-gnu)
+Wget(linux)
+Windows-Media-Player/11.0.5721.5145
+Wotbox/2.01 (+http://www.wotbox.com/bot/)
+www.matthowlett.com
+WWW-Mechanize/1.73
+www.probethenet.com scanner
+ZmEu
diff --git a/ext/standard/tests/serialize/bug73825.phpt b/ext/standard/tests/serialize/bug73825.phpt
new file mode 100644
index 0000000000..adbfca1bbb
--- /dev/null
+++ b/ext/standard/tests/serialize/bug73825.phpt
@@ -0,0 +1,12 @@
+--TEST--
+Bug #73825 Heap out of bounds read on unserialize in finish_nested_data()
+--FILE--
+<?php
+$obj = unserialize('O:8:"00000000":');
+var_dump($obj);
+?>
+--EXPECTF--
+Warning: Bad unserialize data in %sbug73825.php on line %d
+
+Notice: unserialize(): Error at offset 13 of 15 bytes in %sbug73825.php on line %d
+bool(false)
diff --git a/ext/standard/tests/strings/pack_float.phpt b/ext/standard/tests/strings/pack_float.phpt
new file mode 100644
index 0000000000..088b508bc0
--- /dev/null
+++ b/ext/standard/tests/strings/pack_float.phpt
@@ -0,0 +1,312 @@
+--TEST--
+pack()/unpack(): float/double tests
+--FILE--
+<?php
+var_dump(
+ 'pack e',
+ bin2hex(pack("e", "")),
+ bin2hex(pack("e", "a")),
+ bin2hex(pack("e", " ")),
+ bin2hex(pack("e", NULL)),
+ bin2hex(pack("e", 0)),
+ bin2hex(pack("e", 1)),
+ bin2hex(pack("e", 1.0)),
+ bin2hex(pack("e", 10000000000000000)),
+ bin2hex(pack("e", 0.591234709823149)),
+ bin2hex(pack("e", 12345678901234567890.1234567898765432123456789)),
+ bin2hex(pack("e", -1)),
+ bin2hex(pack("e", -1.0)),
+ bin2hex(pack("e", -10000000000000000)),
+ bin2hex(pack("e", -0.591234709823149)),
+ bin2hex(pack("e", -12345678901234567890.1234567898765432123456789)),
+
+ 'pack E',
+ bin2hex(pack("E", "")),
+ bin2hex(pack("E", "a")),
+ bin2hex(pack("E", " ")),
+ bin2hex(pack("E", NULL)),
+ bin2hex(pack("E", 0)),
+ bin2hex(pack("E", 1)),
+ bin2hex(pack("E", 1.0)),
+ bin2hex(pack("E", 10000000000000000)),
+ bin2hex(pack("E", 0.591234709823149)),
+ bin2hex(pack("E", 12345678901234567890.1234567898765432123456789)),
+ bin2hex(pack("E", -1)),
+ bin2hex(pack("E", -1.0)),
+ bin2hex(pack("E", -10000000000000000)),
+ bin2hex(pack("E", -0.591234709823149)),
+ bin2hex(pack("E", -12345678901234567890.1234567898765432123456789)),
+
+ 'pack g',
+ bin2hex(pack("g", "")),
+ bin2hex(pack("g", "a")),
+ bin2hex(pack("g", " ")),
+ bin2hex(pack("g", NULL)),
+ bin2hex(pack("g", 0)),
+ bin2hex(pack("g", 1)),
+ bin2hex(pack("g", 1.0)),
+ bin2hex(pack("g", 10000000000000000)),
+ bin2hex(pack("g", 0.591234709823149)),
+ bin2hex(pack("g", 12345678901234567890.1234567898765432123456789)),
+ bin2hex(pack("g", -1)),
+ bin2hex(pack("g", -1.0)),
+ bin2hex(pack("g", -10000000000000000)),
+ bin2hex(pack("g", -0.591234709823149)),
+ bin2hex(pack("g", -12345678901234567890.1234567898765432123456789)),
+
+ 'pack G',
+ bin2hex(pack("G", "")),
+ bin2hex(pack("G", "a")),
+ bin2hex(pack("G", " ")),
+ bin2hex(pack("G", NULL)),
+ bin2hex(pack("G", 0)),
+ bin2hex(pack("G", 1)),
+ bin2hex(pack("G", 1.0)),
+ bin2hex(pack("G", 10000000000000000)),
+ bin2hex(pack("G", 0.591234709823149)),
+ bin2hex(pack("G", 12345678901234567890.1234567898765432123456789)),
+ bin2hex(pack("G", -1)),
+ bin2hex(pack("G", -1.0)),
+ bin2hex(pack("G", -10000000000000000)),
+ bin2hex(pack("G", -0.591234709823149)),
+ bin2hex(pack("G", -12345678901234567890.1234567898765432123456789)),
+
+ 'unpack e',
+ unpack('e', hex2bin('0000000000000000')),
+ unpack('e', hex2bin('000000000000f03f')),
+ unpack('e', hex2bin('0080e03779c34143')),
+ unpack('e', hex2bin('4a6ade0d65ebe23f')),
+ unpack('e', hex2bin('000000000000f0bf')),
+ unpack('e', hex2bin('0080e03779c341c3')),
+ unpack('e', hex2bin('4a6ade0d65ebe2bf')),
+ unpack('e', hex2bin('e1639d31956ae5c3')),
+
+ 'unpack E',
+ unpack('E', hex2bin('3ff0000000000000')),
+ unpack('E', hex2bin('4341c37937e08000')),
+ unpack('E', hex2bin('3fe2eb650dde6a4a')),
+ unpack('E', hex2bin('43e56a95319d63e1')),
+ unpack('E', hex2bin('bff0000000000000')),
+ unpack('E', hex2bin('c341c37937e08000')),
+ unpack('E', hex2bin('bfe2eb650dde6a4a')),
+ unpack('E', hex2bin('c3e56a95319d63e1')),
+
+ 'unpack g',
+ unpack('g', hex2bin('0000803f')),
+ unpack('g', hex2bin('ca1b0e5a')),
+ unpack('g', hex2bin('285b173f')),
+ unpack('g', hex2bin('aa542b5f')),
+ unpack('g', hex2bin('000080bf')),
+ unpack('g', hex2bin('ca1b0eda')),
+ unpack('g', hex2bin('285b17bf')),
+ unpack('g', hex2bin('aa542bdf')),
+
+ 'unpack G',
+ unpack('G', hex2bin('3f800000')),
+ unpack('G', hex2bin('5a0e1bca')),
+ unpack('G', hex2bin('3f175b28')),
+ unpack('G', hex2bin('5f2b54aa')),
+ unpack('G', hex2bin('bf800000')),
+ unpack('G', hex2bin('da0e1bca')),
+ unpack('G', hex2bin('bf175b28')),
+ unpack('G', hex2bin('df2b54aa'))
+
+);
+?>
+--EXPECTF--
+string(6) "pack e"
+string(16) "0000000000000000"
+string(16) "0000000000000000"
+string(16) "0000000000000000"
+string(16) "0000000000000000"
+string(16) "0000000000000000"
+string(16) "000000000000f03f"
+string(16) "000000000000f03f"
+string(16) "0080e03779c34143"
+string(16) "4a6ade0d65ebe23f"
+string(16) "e1639d31956ae543"
+string(16) "000000000000f0bf"
+string(16) "000000000000f0bf"
+string(16) "0080e03779c341c3"
+string(16) "4a6ade0d65ebe2bf"
+string(16) "e1639d31956ae5c3"
+string(6) "pack E"
+string(16) "0000000000000000"
+string(16) "0000000000000000"
+string(16) "0000000000000000"
+string(16) "0000000000000000"
+string(16) "0000000000000000"
+string(16) "3ff0000000000000"
+string(16) "3ff0000000000000"
+string(16) "4341c37937e08000"
+string(16) "3fe2eb650dde6a4a"
+string(16) "43e56a95319d63e1"
+string(16) "bff0000000000000"
+string(16) "bff0000000000000"
+string(16) "c341c37937e08000"
+string(16) "bfe2eb650dde6a4a"
+string(16) "c3e56a95319d63e1"
+string(6) "pack g"
+string(8) "00000000"
+string(8) "00000000"
+string(8) "00000000"
+string(8) "00000000"
+string(8) "00000000"
+string(8) "0000803f"
+string(8) "0000803f"
+string(8) "ca1b0e5a"
+string(8) "285b173f"
+string(8) "aa542b5f"
+string(8) "000080bf"
+string(8) "000080bf"
+string(8) "ca1b0eda"
+string(8) "285b17bf"
+string(8) "aa542bdf"
+string(6) "pack G"
+string(8) "00000000"
+string(8) "00000000"
+string(8) "00000000"
+string(8) "00000000"
+string(8) "00000000"
+string(8) "3f800000"
+string(8) "3f800000"
+string(8) "5a0e1bca"
+string(8) "3f175b28"
+string(8) "5f2b54aa"
+string(8) "bf800000"
+string(8) "bf800000"
+string(8) "da0e1bca"
+string(8) "bf175b28"
+string(8) "df2b54aa"
+string(8) "unpack e"
+array(1) {
+ [1]=>
+ float(0)
+}
+array(1) {
+ [1]=>
+ float(1)
+}
+array(1) {
+ [1]=>
+ float(1.0E+16)
+}
+array(1) {
+ [1]=>
+ float(0.59123470982315)
+}
+array(1) {
+ [1]=>
+ float(-1)
+}
+array(1) {
+ [1]=>
+ float(-1.0E+16)
+}
+array(1) {
+ [1]=>
+ float(-0.59123470982315)
+}
+array(1) {
+ [1]=>
+ float(-1.2345678901235E+19)
+}
+string(8) "unpack E"
+array(1) {
+ [1]=>
+ float(1)
+}
+array(1) {
+ [1]=>
+ float(1.0E+16)
+}
+array(1) {
+ [1]=>
+ float(0.59123470982315)
+}
+array(1) {
+ [1]=>
+ float(1.2345678901235E+19)
+}
+array(1) {
+ [1]=>
+ float(-1)
+}
+array(1) {
+ [1]=>
+ float(-1.0E+16)
+}
+array(1) {
+ [1]=>
+ float(-0.59123470982315)
+}
+array(1) {
+ [1]=>
+ float(-1.2345678901235E+19)
+}
+string(8) "unpack g"
+array(1) {
+ [1]=>
+ float(1)
+}
+array(1) {
+ [1]=>
+ float(1.0000000272564E+16)
+}
+array(1) {
+ [1]=>
+ float(0.59123468399048)
+}
+array(1) {
+ [1]=>
+ float(1.2345679395506E+19)
+}
+array(1) {
+ [1]=>
+ float(-1)
+}
+array(1) {
+ [1]=>
+ float(-1.0000000272564E+16)
+}
+array(1) {
+ [1]=>
+ float(-0.59123468399048)
+}
+array(1) {
+ [1]=>
+ float(-1.2345679395506E+19)
+}
+string(8) "unpack G"
+array(1) {
+ [1]=>
+ float(1)
+}
+array(1) {
+ [1]=>
+ float(1.0000000272564E+16)
+}
+array(1) {
+ [1]=>
+ float(0.59123468399048)
+}
+array(1) {
+ [1]=>
+ float(1.2345679395506E+19)
+}
+array(1) {
+ [1]=>
+ float(-1)
+}
+array(1) {
+ [1]=>
+ float(-1.0000000272564E+16)
+}
+array(1) {
+ [1]=>
+ float(-0.59123468399048)
+}
+array(1) {
+ [1]=>
+ float(-1.2345679395506E+19)
+}
diff --git a/ext/standard/tests/strings/unpack_error.phpt b/ext/standard/tests/strings/unpack_error.phpt
index 3a4f334c3b..484366293b 100644
--- a/ext/standard/tests/strings/unpack_error.phpt
+++ b/ext/standard/tests/strings/unpack_error.phpt
@@ -19,7 +19,7 @@ var_dump(unpack("I", pack("I", 65534), 0, $extra_arg));
echo "\n-- Testing unpack() function with invalid format character --\n";
$extra_arg = 10;
-var_dump(unpack("G", pack("I", 65534)));
+var_dump(unpack("B", pack("I", 65534)));
?>
===DONE===
--EXPECTF--
@@ -37,6 +37,6 @@ NULL
-- Testing unpack() function with invalid format character --
-Warning: unpack(): Invalid format type G in %s on line %d
+Warning: unpack(): Invalid format type B in %s on line %d
bool(false)
===DONE===
diff --git a/ext/standard/var_unserializer.c b/ext/standard/var_unserializer.c
deleted file mode 100644
index bf678540b1..0000000000
--- a/ext/standard/var_unserializer.c
+++ /dev/null
@@ -1,1441 +0,0 @@
-/* Generated by re2c 0.16 */
-#line 1 "ext/standard/var_unserializer.re"
-/*
- +----------------------------------------------------------------------+
- | PHP Version 7 |
- +----------------------------------------------------------------------+
- | Copyright (c) 1997-2017 The PHP Group |
- +----------------------------------------------------------------------+
- | This source file is subject to version 3.01 of the PHP license, |
- | that is bundled with this package in the file LICENSE, and is |
- | available through the world-wide-web at the following url: |
- | http://www.php.net/license/3_01.txt |
- | If you did not receive a copy of the PHP license and are unable to |
- | obtain it through the world-wide-web, please send a note to |
- | license@php.net so we can mail you a copy immediately. |
- +----------------------------------------------------------------------+
- | Author: Sascha Schumann <sascha@schumann.cx> |
- +----------------------------------------------------------------------+
-*/
-
-/* $Id$ */
-
-#include "php.h"
-#include "ext/standard/php_var.h"
-#include "php_incomplete_class.h"
-#include "zend_portability.h"
-
-struct php_unserialize_data {
- void *first;
- void *last;
- void *first_dtor;
- void *last_dtor;
- HashTable *allowed_classes;
-};
-
-PHPAPI php_unserialize_data_t php_var_unserialize_init() {
- php_unserialize_data_t d;
- /* fprintf(stderr, "UNSERIALIZE_INIT == lock: %u, level: %u\n", BG(serialize_lock), BG(unserialize).level); */
- if (BG(serialize_lock) || !BG(unserialize).level) {
- d = ecalloc(1, sizeof(struct php_unserialize_data));
- if (!BG(serialize_lock)) {
- BG(unserialize).data = d;
- BG(unserialize).level = 1;
- }
- } else {
- d = BG(unserialize).data;
- ++BG(unserialize).level;
- }
- return d;
-}
-
-PHPAPI void php_var_unserialize_destroy(php_unserialize_data_t d) {
- /* fprintf(stderr, "UNSERIALIZE_DESTROY == lock: %u, level: %u\n", BG(serialize_lock), BG(unserialize).level); */
- if (BG(serialize_lock) || BG(unserialize).level == 1) {
- var_destroy(&d);
- efree(d);
- }
- if (!BG(serialize_lock) && !--BG(unserialize).level) {
- BG(unserialize).data = NULL;
- }
-}
-
-PHPAPI HashTable *php_var_unserialize_get_allowed_classes(php_unserialize_data_t d) {
- return d->allowed_classes;
-}
-PHPAPI void php_var_unserialize_set_allowed_classes(php_unserialize_data_t d, HashTable *classes) {
- d->allowed_classes = classes;
-}
-
-
-/* {{{ reference-handling for unserializer: var_* */
-#define VAR_ENTRIES_MAX 1024
-#define VAR_ENTRIES_DBG 0
-
-typedef struct {
- zval *data[VAR_ENTRIES_MAX];
- zend_long used_slots;
- void *next;
-} var_entries;
-
-typedef struct {
- zval data[VAR_ENTRIES_MAX];
- zend_long used_slots;
- void *next;
-} var_dtor_entries;
-
-static inline void var_push(php_unserialize_data_t *var_hashx, zval *rval)
-{
- var_entries *var_hash = (*var_hashx)->last;
-#if VAR_ENTRIES_DBG
- fprintf(stderr, "var_push(%ld): %d\n", var_hash?var_hash->used_slots:-1L, Z_TYPE_P(rval));
-#endif
-
- if (!var_hash || var_hash->used_slots == VAR_ENTRIES_MAX) {
- var_hash = emalloc(sizeof(var_entries));
- var_hash->used_slots = 0;
- var_hash->next = 0;
-
- if (!(*var_hashx)->first) {
- (*var_hashx)->first = var_hash;
- } else {
- ((var_entries *) (*var_hashx)->last)->next = var_hash;
- }
-
- (*var_hashx)->last = var_hash;
- }
-
- var_hash->data[var_hash->used_slots++] = rval;
-}
-
-PHPAPI void var_push_dtor(php_unserialize_data_t *var_hashx, zval *rval)
-{
- zval *tmp_var = var_tmp_var(var_hashx);
- if (!tmp_var) {
- return;
- }
- ZVAL_COPY(tmp_var, rval);
-}
-
-PHPAPI zval *var_tmp_var(php_unserialize_data_t *var_hashx)
-{
- var_dtor_entries *var_hash;
-
- if (!var_hashx || !*var_hashx) {
- return NULL;
- }
-
- var_hash = (*var_hashx)->last_dtor;
- if (!var_hash || var_hash->used_slots == VAR_ENTRIES_MAX) {
- var_hash = emalloc(sizeof(var_dtor_entries));
- var_hash->used_slots = 0;
- var_hash->next = 0;
-
- if (!(*var_hashx)->first_dtor) {
- (*var_hashx)->first_dtor = var_hash;
- } else {
- ((var_dtor_entries *) (*var_hashx)->last_dtor)->next = var_hash;
- }
-
- (*var_hashx)->last_dtor = var_hash;
- }
- ZVAL_UNDEF(&var_hash->data[var_hash->used_slots]);
- return &var_hash->data[var_hash->used_slots++];
-}
-
-PHPAPI void var_replace(php_unserialize_data_t *var_hashx, zval *ozval, zval *nzval)
-{
- zend_long i;
- var_entries *var_hash = (*var_hashx)->first;
-#if VAR_ENTRIES_DBG
- fprintf(stderr, "var_replace(%ld): %d\n", var_hash?var_hash->used_slots:-1L, Z_TYPE_P(nzval));
-#endif
-
- while (var_hash) {
- for (i = 0; i < var_hash->used_slots; i++) {
- if (var_hash->data[i] == ozval) {
- var_hash->data[i] = nzval;
- /* do not break here */
- }
- }
- var_hash = var_hash->next;
- }
-}
-
-static zval *var_access(php_unserialize_data_t *var_hashx, zend_long id)
-{
- var_entries *var_hash = (*var_hashx)->first;
-#if VAR_ENTRIES_DBG
- fprintf(stderr, "var_access(%ld): %ld\n", var_hash?var_hash->used_slots:-1L, id);
-#endif
-
- while (id >= VAR_ENTRIES_MAX && var_hash && var_hash->used_slots == VAR_ENTRIES_MAX) {
- var_hash = var_hash->next;
- id -= VAR_ENTRIES_MAX;
- }
-
- if (!var_hash) return NULL;
-
- if (id < 0 || id >= var_hash->used_slots) return NULL;
-
- return var_hash->data[id];
-}
-
-PHPAPI void var_destroy(php_unserialize_data_t *var_hashx)
-{
- void *next;
- zend_long i;
- var_entries *var_hash = (*var_hashx)->first;
- var_dtor_entries *var_dtor_hash = (*var_hashx)->first_dtor;
-#if VAR_ENTRIES_DBG
- fprintf(stderr, "var_destroy(%ld)\n", var_hash?var_hash->used_slots:-1L);
-#endif
-
- while (var_hash) {
- next = var_hash->next;
- efree_size(var_hash, sizeof(var_entries));
- var_hash = next;
- }
-
- while (var_dtor_hash) {
- for (i = 0; i < var_dtor_hash->used_slots; i++) {
-#if VAR_ENTRIES_DBG
- fprintf(stderr, "var_destroy dtor(%p, %ld)\n", var_dtor_hash->data[i], Z_REFCOUNT_P(var_dtor_hash->data[i]));
-#endif
- zval_ptr_dtor(&var_dtor_hash->data[i]);
- }
- next = var_dtor_hash->next;
- efree_size(var_dtor_hash, sizeof(var_dtor_entries));
- var_dtor_hash = next;
- }
-}
-
-/* }}} */
-
-static zend_string *unserialize_str(const unsigned char **p, size_t len, size_t maxlen)
-{
- size_t i, j;
- zend_string *str = zend_string_safe_alloc(1, len, 0, 0);
- unsigned char *end = *(unsigned char **)p+maxlen;
-
- if (end < *p) {
- zend_string_free(str);
- return NULL;
- }
-
- for (i = 0; i < len; i++) {
- if (*p >= end) {
- zend_string_free(str);
- return NULL;
- }
- if (**p != '\\') {
- ZSTR_VAL(str)[i] = (char)**p;
- } else {
- unsigned char ch = 0;
-
- for (j = 0; j < 2; j++) {
- (*p)++;
- if (**p >= '0' && **p <= '9') {
- ch = (ch << 4) + (**p -'0');
- } else if (**p >= 'a' && **p <= 'f') {
- ch = (ch << 4) + (**p -'a'+10);
- } else if (**p >= 'A' && **p <= 'F') {
- ch = (ch << 4) + (**p -'A'+10);
- } else {
- zend_string_free(str);
- return NULL;
- }
- }
- ZSTR_VAL(str)[i] = (char)ch;
- }
- (*p)++;
- }
- ZSTR_VAL(str)[i] = 0;
- ZSTR_LEN(str) = i;
- return str;
-}
-
-static inline int unserialize_allowed_class(
- zend_string *class_name, php_unserialize_data_t *var_hashx)
-{
- HashTable *classes = (*var_hashx)->allowed_classes;
- zend_string *lcname;
- int res;
- ALLOCA_FLAG(use_heap)
-
- if(classes == NULL) {
- return 1;
- }
- if(!zend_hash_num_elements(classes)) {
- return 0;
- }
-
- ZSTR_ALLOCA_ALLOC(lcname, ZSTR_LEN(class_name), use_heap);
- zend_str_tolower_copy(ZSTR_VAL(lcname), ZSTR_VAL(class_name), ZSTR_LEN(class_name));
- res = zend_hash_exists(classes, lcname);
- ZSTR_ALLOCA_FREE(lcname, use_heap);
- return res;
-}
-
-#define YYFILL(n) do { } while (0)
-#define YYCTYPE unsigned char
-#define YYCURSOR cursor
-#define YYLIMIT limit
-#define YYMARKER marker
-
-
-#line 292 "ext/standard/var_unserializer.re"
-
-
-
-
-static inline zend_long parse_iv2(const unsigned char *p, const unsigned char **q)
-{
- char cursor;
- zend_long result = 0;
- int neg = 0;
-
- switch (*p) {
- case '-':
- neg++;
- /* fall-through */
- case '+':
- p++;
- }
-
- while (1) {
- cursor = (char)*p;
- if (cursor >= '0' && cursor <= '9') {
- result = result * 10 + (size_t)(cursor - (unsigned char)'0');
- } else {
- break;
- }
- p++;
- }
- if (q) *q = p;
- if (neg) return -result;
- return result;
-}
-
-static inline zend_long parse_iv(const unsigned char *p)
-{
- return parse_iv2(p, NULL);
-}
-
-/* no need to check for length - re2c already did */
-static inline size_t parse_uiv(const unsigned char *p)
-{
- unsigned char cursor;
- size_t result = 0;
-
- if (*p == '+') {
- p++;
- }
-
- while (1) {
- cursor = *p;
- if (cursor >= '0' && cursor <= '9') {
- result = result * 10 + (size_t)(cursor - (unsigned char)'0');
- } else {
- break;
- }
- p++;
- }
- return result;
-}
-
-#define UNSERIALIZE_PARAMETER zval *rval, const unsigned char **p, const unsigned char *max, php_unserialize_data_t *var_hash
-#define UNSERIALIZE_PASSTHRU rval, p, max, var_hash
-
-static int php_var_unserialize_internal(UNSERIALIZE_PARAMETER);
-
-static zend_always_inline int process_nested_data(UNSERIALIZE_PARAMETER, HashTable *ht, zend_long elements, int objprops)
-{
- while (elements-- > 0) {
- zval key, *data, d, *old_data;
- zend_ulong idx;
-
- ZVAL_UNDEF(&key);
-
- if (!php_var_unserialize_internal(&key, p, max, NULL)) {
- zval_dtor(&key);
- return 0;
- }
-
- data = NULL;
- ZVAL_UNDEF(&d);
-
- if (!objprops) {
- if (Z_TYPE(key) == IS_LONG) {
- idx = Z_LVAL(key);
-numeric_key:
- if (UNEXPECTED((old_data = zend_hash_index_find(ht, idx)) != NULL)) {
- //??? update hash
- var_push_dtor(var_hash, old_data);
- data = zend_hash_index_update(ht, idx, &d);
- } else {
- data = zend_hash_index_add_new(ht, idx, &d);
- }
- } else if (Z_TYPE(key) == IS_STRING) {
- if (UNEXPECTED(ZEND_HANDLE_NUMERIC(Z_STR(key), idx))) {
- goto numeric_key;
- }
- if (UNEXPECTED((old_data = zend_hash_find(ht, Z_STR(key))) != NULL)) {
- //??? update hash
- var_push_dtor(var_hash, old_data);
- data = zend_hash_update(ht, Z_STR(key), &d);
- } else {
- data = zend_hash_add_new(ht, Z_STR(key), &d);
- }
- } else {
- zval_dtor(&key);
- return 0;
- }
- } else {
- if (EXPECTED(Z_TYPE(key) == IS_STRING)) {
-string_key:
- if ((old_data = zend_hash_find(ht, Z_STR(key))) != NULL) {
- if (Z_TYPE_P(old_data) == IS_INDIRECT) {
- old_data = Z_INDIRECT_P(old_data);
- }
- var_push_dtor(var_hash, old_data);
- data = zend_hash_update_ind(ht, Z_STR(key), &d);
- } else {
- data = zend_hash_add_new(ht, Z_STR(key), &d);
- }
- } else if (Z_TYPE(key) == IS_LONG) {
- /* object properties should include no integers */
- convert_to_string(&key);
- goto string_key;
- } else {
- zval_dtor(&key);
- return 0;
- }
- }
-
- if (!php_var_unserialize_internal(data, p, max, var_hash)) {
- zval_dtor(&key);
- return 0;
- }
-
- if (UNEXPECTED(Z_ISUNDEF_P(data))) {
- if (Z_TYPE(key) == IS_LONG) {
- zend_hash_index_del(ht, Z_LVAL(key));
- } else {
- zend_hash_del_ind(ht, Z_STR(key));
- }
- } else {
- var_push_dtor(var_hash, data);
- }
-
- zval_dtor(&key);
-
- if (elements && *(*p-1) != ';' && *(*p-1) != '}') {
- (*p)--;
- return 0;
- }
- }
-
- return 1;
-}
-
-static inline int finish_nested_data(UNSERIALIZE_PARAMETER)
-{
- if (*((*p)++) == '}')
- return 1;
-
-#if SOMETHING_NEW_MIGHT_LEAD_TO_CRASH_ENABLE_IF_YOU_ARE_BRAVE
- zval_ptr_dtor(rval);
-#endif
- return 0;
-}
-
-static inline int object_custom(UNSERIALIZE_PARAMETER, zend_class_entry *ce)
-{
- zend_long datalen;
-
- datalen = parse_iv2((*p) + 2, p);
-
- (*p) += 2;
-
- if (datalen < 0 || (max - (*p)) <= datalen) {
- zend_error(E_WARNING, "Insufficient data for unserializing - " ZEND_LONG_FMT " required, " ZEND_LONG_FMT " present", datalen, (zend_long)(max - (*p)));
- return 0;
- }
-
- if (ce->unserialize == NULL) {
- zend_error(E_WARNING, "Class %s has no unserializer", ZSTR_VAL(ce->name));
- object_init_ex(rval, ce);
- } else if (ce->unserialize(rval, ce, (const unsigned char*)*p, datalen, (zend_unserialize_data *)var_hash) != SUCCESS) {
- return 0;
- }
-
- (*p) += datalen;
-
- return finish_nested_data(UNSERIALIZE_PASSTHRU);
-}
-
-static inline zend_long object_common1(UNSERIALIZE_PARAMETER, zend_class_entry *ce)
-{
- zend_long elements;
-
- elements = parse_iv2((*p) + 2, p);
-
- (*p) += 2;
-
- if (ce->serialize == NULL) {
- object_init_ex(rval, ce);
- } else {
- /* If this class implements Serializable, it should not land here but in object_custom(). The passed string
- obviously doesn't descend from the regular serializer. */
- zend_error(E_WARNING, "Erroneous data format for unserializing '%s'", ZSTR_VAL(ce->name));
- return 0;
- }
-
- return elements;
-}
-
-#ifdef PHP_WIN32
-# pragma optimize("", off)
-#endif
-static inline int object_common2(UNSERIALIZE_PARAMETER, zend_long elements)
-{
- zval retval;
- zval fname;
- HashTable *ht;
- zend_bool has_wakeup;
-
- if (Z_TYPE_P(rval) != IS_OBJECT) {
- return 0;
- }
-
- has_wakeup = Z_OBJCE_P(rval) != PHP_IC_ENTRY
- && zend_hash_str_exists(&Z_OBJCE_P(rval)->function_table, "__wakeup", sizeof("__wakeup")-1);
-
- ht = Z_OBJPROP_P(rval);
- zend_hash_extend(ht, zend_hash_num_elements(ht) + elements, (ht->u.flags & HASH_FLAG_PACKED));
- if (!process_nested_data(UNSERIALIZE_PASSTHRU, ht, elements, 1)) {
- if (has_wakeup) {
- ZVAL_DEREF(rval);
- GC_FLAGS(Z_OBJ_P(rval)) |= IS_OBJ_DESTRUCTOR_CALLED;
- }
- return 0;
- }
-
- ZVAL_DEREF(rval);
- if (has_wakeup) {
- ZVAL_STRINGL(&fname, "__wakeup", sizeof("__wakeup") - 1);
- BG(serialize_lock)++;
- if (call_user_function_ex(CG(function_table), rval, &fname, &retval, 0, 0, 1, NULL) == FAILURE || Z_ISUNDEF(retval)) {
- GC_FLAGS(Z_OBJ_P(rval)) |= IS_OBJ_DESTRUCTOR_CALLED;
- }
- BG(serialize_lock)--;
- zval_dtor(&fname);
- zval_dtor(&retval);
- }
-
- if (EG(exception)) {
- return 0;
- }
-
- return finish_nested_data(UNSERIALIZE_PASSTHRU);
-}
-#ifdef PHP_WIN32
-# pragma optimize("", on)
-#endif
-
-PHPAPI int php_var_unserialize(UNSERIALIZE_PARAMETER)
-{
- var_entries *orig_var_entries = (*var_hash)->last;
- zend_long orig_used_slots = orig_var_entries ? orig_var_entries->used_slots : 0;
- int result;
-
- result = php_var_unserialize_internal(UNSERIALIZE_PASSTHRU);
-
- if (!result) {
- /* If the unserialization failed, mark all elements that have been added to var_hash
- * as NULL. This will forbid their use by other unserialize() calls in the same
- * unserialization context. */
- var_entries *e = orig_var_entries;
- zend_long s = orig_used_slots;
- while (e) {
- for (; s < e->used_slots; s++) {
- e->data[s] = NULL;
- }
-
- e = e->next;
- s = 0;
- }
- }
-
- return result;
-}
-
-static int php_var_unserialize_internal(UNSERIALIZE_PARAMETER)
-{
- const unsigned char *cursor, *limit, *marker, *start;
- zval *rval_ref;
-
- limit = max;
- cursor = *p;
-
- if (YYCURSOR >= YYLIMIT) {
- return 0;
- }
-
- if (var_hash && (*p)[0] != 'R') {
- var_push(var_hash, rval);
- }
-
- start = cursor;
-
-
-#line 594 "ext/standard/var_unserializer.c"
-{
- YYCTYPE yych;
- static const unsigned char yybm[] = {
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 128, 128, 128, 128, 128, 128, 128, 128,
- 128, 128, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- };
- if ((YYLIMIT - YYCURSOR) < 7) YYFILL(7);
- yych = *YYCURSOR;
- switch (yych) {
- case 'C':
- case 'O': goto yy4;
- case 'N': goto yy5;
- case 'R': goto yy6;
- case 'S': goto yy7;
- case 'a': goto yy8;
- case 'b': goto yy9;
- case 'd': goto yy10;
- case 'i': goto yy11;
- case 'o': goto yy12;
- case 'r': goto yy13;
- case 's': goto yy14;
- case '}': goto yy15;
- default: goto yy2;
- }
-yy2:
- ++YYCURSOR;
-yy3:
-#line 962 "ext/standard/var_unserializer.re"
- { return 0; }
-#line 654 "ext/standard/var_unserializer.c"
-yy4:
- yych = *(YYMARKER = ++YYCURSOR);
- if (yych == ':') goto yy17;
- goto yy3;
-yy5:
- yych = *++YYCURSOR;
- if (yych == ';') goto yy19;
- goto yy3;
-yy6:
- yych = *(YYMARKER = ++YYCURSOR);
- if (yych == ':') goto yy21;
- goto yy3;
-yy7:
- yych = *(YYMARKER = ++YYCURSOR);
- if (yych == ':') goto yy22;
- goto yy3;
-yy8:
- yych = *(YYMARKER = ++YYCURSOR);
- if (yych == ':') goto yy23;
- goto yy3;
-yy9:
- yych = *(YYMARKER = ++YYCURSOR);
- if (yych == ':') goto yy24;
- goto yy3;
-yy10:
- yych = *(YYMARKER = ++YYCURSOR);
- if (yych == ':') goto yy25;
- goto yy3;
-yy11:
- yych = *(YYMARKER = ++YYCURSOR);
- if (yych == ':') goto yy26;
- goto yy3;
-yy12:
- yych = *(YYMARKER = ++YYCURSOR);
- if (yych == ':') goto yy27;
- goto yy3;
-yy13:
- yych = *(YYMARKER = ++YYCURSOR);
- if (yych == ':') goto yy28;
- goto yy3;
-yy14:
- yych = *(YYMARKER = ++YYCURSOR);
- if (yych == ':') goto yy29;
- goto yy3;
-yy15:
- ++YYCURSOR;
-#line 956 "ext/standard/var_unserializer.re"
- {
- /* this is the case where we have less data than planned */
- php_error_docref(NULL, E_NOTICE, "Unexpected end of serialized data");
- return 0; /* not sure if it should be 0 or 1 here? */
-}
-#line 707 "ext/standard/var_unserializer.c"
-yy17:
- yych = *++YYCURSOR;
- if (yybm[0+yych] & 128) {
- goto yy31;
- }
- if (yych == '+') goto yy30;
-yy18:
- YYCURSOR = YYMARKER;
- goto yy3;
-yy19:
- ++YYCURSOR;
-#line 649 "ext/standard/var_unserializer.re"
- {
- *p = YYCURSOR;
- ZVAL_NULL(rval);
- return 1;
-}
-#line 725 "ext/standard/var_unserializer.c"
-yy21:
- yych = *++YYCURSOR;
- if (yych <= ',') {
- if (yych == '+') goto yy33;
- goto yy18;
- } else {
- if (yych <= '-') goto yy33;
- if (yych <= '/') goto yy18;
- if (yych <= '9') goto yy34;
- goto yy18;
- }
-yy22:
- yych = *++YYCURSOR;
- if (yych == '+') goto yy36;
- if (yych <= '/') goto yy18;
- if (yych <= '9') goto yy37;
- goto yy18;
-yy23:
- yych = *++YYCURSOR;
- if (yych == '+') goto yy39;
- if (yych <= '/') goto yy18;
- if (yych <= '9') goto yy40;
- goto yy18;
-yy24:
- yych = *++YYCURSOR;
- if (yych <= '/') goto yy18;
- if (yych <= '1') goto yy42;
- goto yy18;
-yy25:
- yych = *++YYCURSOR;
- if (yych <= '/') {
- if (yych <= ',') {
- if (yych == '+') goto yy43;
- goto yy18;
- } else {
- if (yych <= '-') goto yy44;
- if (yych <= '.') goto yy45;
- goto yy18;
- }
- } else {
- if (yych <= 'I') {
- if (yych <= '9') goto yy46;
- if (yych <= 'H') goto yy18;
- goto yy48;
- } else {
- if (yych == 'N') goto yy49;
- goto yy18;
- }
- }
-yy26:
- yych = *++YYCURSOR;
- if (yych <= ',') {
- if (yych == '+') goto yy50;
- goto yy18;
- } else {
- if (yych <= '-') goto yy50;
- if (yych <= '/') goto yy18;
- if (yych <= '9') goto yy51;
- goto yy18;
- }
-yy27:
- yych = *++YYCURSOR;
- if (yych <= ',') {
- if (yych == '+') goto yy53;
- goto yy18;
- } else {
- if (yych <= '-') goto yy53;
- if (yych <= '/') goto yy18;
- if (yych <= '9') goto yy54;
- goto yy18;
- }
-yy28:
- yych = *++YYCURSOR;
- if (yych <= ',') {
- if (yych == '+') goto yy56;
- goto yy18;
- } else {
- if (yych <= '-') goto yy56;
- if (yych <= '/') goto yy18;
- if (yych <= '9') goto yy57;
- goto yy18;
- }
-yy29:
- yych = *++YYCURSOR;
- if (yych == '+') goto yy59;
- if (yych <= '/') goto yy18;
- if (yych <= '9') goto yy60;
- goto yy18;
-yy30:
- yych = *++YYCURSOR;
- if (yybm[0+yych] & 128) {
- goto yy31;
- }
- goto yy18;
-yy31:
- ++YYCURSOR;
- if ((YYLIMIT - YYCURSOR) < 2) YYFILL(2);
- yych = *YYCURSOR;
- if (yybm[0+yych] & 128) {
- goto yy31;
- }
- if (yych <= '/') goto yy18;
- if (yych <= ':') goto yy62;
- goto yy18;
-yy33:
- yych = *++YYCURSOR;
- if (yych <= '/') goto yy18;
- if (yych >= ':') goto yy18;
-yy34:
- ++YYCURSOR;
- if (YYLIMIT <= YYCURSOR) YYFILL(1);
- yych = *YYCURSOR;
- if (yych <= '/') goto yy18;
- if (yych <= '9') goto yy34;
- if (yych == ';') goto yy63;
- goto yy18;
-yy36:
- yych = *++YYCURSOR;
- if (yych <= '/') goto yy18;
- if (yych >= ':') goto yy18;
-yy37:
- ++YYCURSOR;
- if ((YYLIMIT - YYCURSOR) < 2) YYFILL(2);
- yych = *YYCURSOR;
- if (yych <= '/') goto yy18;
- if (yych <= '9') goto yy37;
- if (yych <= ':') goto yy65;
- goto yy18;
-yy39:
- yych = *++YYCURSOR;
- if (yych <= '/') goto yy18;
- if (yych >= ':') goto yy18;
-yy40:
- ++YYCURSOR;
- if ((YYLIMIT - YYCURSOR) < 2) YYFILL(2);
- yych = *YYCURSOR;
- if (yych <= '/') goto yy18;
- if (yych <= '9') goto yy40;
- if (yych <= ':') goto yy66;
- goto yy18;
-yy42:
- yych = *++YYCURSOR;
- if (yych == ';') goto yy67;
- goto yy18;
-yy43:
- yych = *++YYCURSOR;
- if (yych == '.') goto yy45;
- if (yych <= '/') goto yy18;
- if (yych <= '9') goto yy46;
- goto yy18;
-yy44:
- yych = *++YYCURSOR;
- if (yych <= '/') {
- if (yych != '.') goto yy18;
- } else {
- if (yych <= '9') goto yy46;
- if (yych == 'I') goto yy48;
- goto yy18;
- }
-yy45:
- yych = *++YYCURSOR;
- if (yych <= '/') goto yy18;
- if (yych <= '9') goto yy69;
- goto yy18;
-yy46:
- ++YYCURSOR;
- if ((YYLIMIT - YYCURSOR) < 4) YYFILL(4);
- yych = *YYCURSOR;
- if (yych <= ':') {
- if (yych <= '.') {
- if (yych <= '-') goto yy18;
- goto yy69;
- } else {
- if (yych <= '/') goto yy18;
- if (yych <= '9') goto yy46;
- goto yy18;
- }
- } else {
- if (yych <= 'E') {
- if (yych <= ';') goto yy71;
- if (yych <= 'D') goto yy18;
- goto yy73;
- } else {
- if (yych == 'e') goto yy73;
- goto yy18;
- }
- }
-yy48:
- yych = *++YYCURSOR;
- if (yych == 'N') goto yy74;
- goto yy18;
-yy49:
- yych = *++YYCURSOR;
- if (yych == 'A') goto yy75;
- goto yy18;
-yy50:
- yych = *++YYCURSOR;
- if (yych <= '/') goto yy18;
- if (yych >= ':') goto yy18;
-yy51:
- ++YYCURSOR;
- if (YYLIMIT <= YYCURSOR) YYFILL(1);
- yych = *YYCURSOR;
- if (yych <= '/') goto yy18;
- if (yych <= '9') goto yy51;
- if (yych == ';') goto yy76;
- goto yy18;
-yy53:
- yych = *++YYCURSOR;
- if (yych <= '/') goto yy18;
- if (yych >= ':') goto yy18;
-yy54:
- ++YYCURSOR;
- if ((YYLIMIT - YYCURSOR) < 2) YYFILL(2);
- yych = *YYCURSOR;
- if (yych <= '/') goto yy18;
- if (yych <= '9') goto yy54;
- if (yych <= ':') goto yy78;
- goto yy18;
-yy56:
- yych = *++YYCURSOR;
- if (yych <= '/') goto yy18;
- if (yych >= ':') goto yy18;
-yy57:
- ++YYCURSOR;
- if (YYLIMIT <= YYCURSOR) YYFILL(1);
- yych = *YYCURSOR;
- if (yych <= '/') goto yy18;
- if (yych <= '9') goto yy57;
- if (yych == ';') goto yy79;
- goto yy18;
-yy59:
- yych = *++YYCURSOR;
- if (yych <= '/') goto yy18;
- if (yych >= ':') goto yy18;
-yy60:
- ++YYCURSOR;
- if ((YYLIMIT - YYCURSOR) < 2) YYFILL(2);
- yych = *YYCURSOR;
- if (yych <= '/') goto yy18;
- if (yych <= '9') goto yy60;
- if (yych <= ':') goto yy81;
- goto yy18;
-yy62:
- yych = *++YYCURSOR;
- if (yych == '"') goto yy82;
- goto yy18;
-yy63:
- ++YYCURSOR;
-#line 598 "ext/standard/var_unserializer.re"
- {
- zend_long id;
-
- *p = YYCURSOR;
- if (!var_hash) return 0;
-
- id = parse_iv(start + 2) - 1;
- if (id == -1 || (rval_ref = var_access(var_hash, id)) == NULL) {
- return 0;
- }
-
- zval_ptr_dtor(rval);
- if (Z_ISUNDEF_P(rval_ref) || (Z_ISREF_P(rval_ref) && Z_ISUNDEF_P(Z_REFVAL_P(rval_ref)))) {
- ZVAL_UNDEF(rval);
- return 1;
- }
- if (Z_ISREF_P(rval_ref)) {
- ZVAL_COPY(rval, rval_ref);
- } else {
- ZVAL_NEW_REF(rval_ref, rval_ref);
- ZVAL_COPY(rval, rval_ref);
- }
-
- return 1;
-}
-#line 1001 "ext/standard/var_unserializer.c"
-yy65:
- yych = *++YYCURSOR;
- if (yych == '"') goto yy84;
- goto yy18;
-yy66:
- yych = *++YYCURSOR;
- if (yych == '{') goto yy86;
- goto yy18;
-yy67:
- ++YYCURSOR;
-#line 655 "ext/standard/var_unserializer.re"
- {
- *p = YYCURSOR;
- ZVAL_BOOL(rval, parse_iv(start + 2));
- return 1;
-}
-#line 1018 "ext/standard/var_unserializer.c"
-yy69:
- ++YYCURSOR;
- if ((YYLIMIT - YYCURSOR) < 4) YYFILL(4);
- yych = *YYCURSOR;
- if (yych <= ';') {
- if (yych <= '/') goto yy18;
- if (yych <= '9') goto yy69;
- if (yych <= ':') goto yy18;
- } else {
- if (yych <= 'E') {
- if (yych <= 'D') goto yy18;
- goto yy73;
- } else {
- if (yych == 'e') goto yy73;
- goto yy18;
- }
- }
-yy71:
- ++YYCURSOR;
-#line 703 "ext/standard/var_unserializer.re"
- {
-#if SIZEOF_ZEND_LONG == 4
-use_double:
-#endif
- *p = YYCURSOR;
- ZVAL_DOUBLE(rval, zend_strtod((const char *)start + 2, NULL));
- return 1;
-}
-#line 1047 "ext/standard/var_unserializer.c"
-yy73:
- yych = *++YYCURSOR;
- if (yych <= ',') {
- if (yych == '+') goto yy88;
- goto yy18;
- } else {
- if (yych <= '-') goto yy88;
- if (yych <= '/') goto yy18;
- if (yych <= '9') goto yy89;
- goto yy18;
- }
-yy74:
- yych = *++YYCURSOR;
- if (yych == 'F') goto yy91;
- goto yy18;
-yy75:
- yych = *++YYCURSOR;
- if (yych == 'N') goto yy91;
- goto yy18;
-yy76:
- ++YYCURSOR;
-#line 661 "ext/standard/var_unserializer.re"
- {
-#if SIZEOF_ZEND_LONG == 4
- int digits = YYCURSOR - start - 3;
-
- if (start[2] == '-' || start[2] == '+') {
- digits--;
- }
-
- /* Use double for large zend_long values that were serialized on a 64-bit system */
- if (digits >= MAX_LENGTH_OF_LONG - 1) {
- if (digits == MAX_LENGTH_OF_LONG - 1) {
- int cmp = strncmp((char*)YYCURSOR - MAX_LENGTH_OF_LONG, long_min_digits, MAX_LENGTH_OF_LONG - 1);
-
- if (!(cmp < 0 || (cmp == 0 && start[2] == '-'))) {
- goto use_double;
- }
- } else {
- goto use_double;
- }
- }
-#endif
- *p = YYCURSOR;
- ZVAL_LONG(rval, parse_iv(start + 2));
- return 1;
-}
-#line 1095 "ext/standard/var_unserializer.c"
-yy78:
- yych = *++YYCURSOR;
- if (yych == '"') goto yy92;
- goto yy18;
-yy79:
- ++YYCURSOR;
-#line 624 "ext/standard/var_unserializer.re"
- {
- zend_long id;
-
- *p = YYCURSOR;
- if (!var_hash) return 0;
-
- id = parse_iv(start + 2) - 1;
- if (id == -1 || (rval_ref = var_access(var_hash, id)) == NULL) {
- return 0;
- }
-
- if (rval_ref == rval) {
- return 0;
- }
-
- if (Z_ISUNDEF_P(rval_ref) || (Z_ISREF_P(rval_ref) && Z_ISUNDEF_P(Z_REFVAL_P(rval_ref)))) {
- ZVAL_UNDEF(rval);
- return 1;
- }
-
- ZVAL_COPY(rval, rval_ref);
-
- return 1;
-}
-#line 1127 "ext/standard/var_unserializer.c"
-yy81:
- yych = *++YYCURSOR;
- if (yych == '"') goto yy94;
- goto yy18;
-yy82:
- ++YYCURSOR;
-#line 809 "ext/standard/var_unserializer.re"
- {
- size_t len, len2, len3, maxlen;
- zend_long elements;
- char *str;
- zend_string *class_name;
- zend_class_entry *ce;
- int incomplete_class = 0;
-
- int custom_object = 0;
-
- zval user_func;
- zval retval;
- zval args[1];
-
- if (!var_hash) return 0;
- if (*start == 'C') {
- custom_object = 1;
- }
-
- len2 = len = parse_uiv(start + 2);
- maxlen = max - YYCURSOR;
- if (maxlen < len || len == 0) {
- *p = start + 2;
- return 0;
- }
-
- str = (char*)YYCURSOR;
-
- YYCURSOR += len;
-
- if (*(YYCURSOR) != '"') {
- *p = YYCURSOR;
- return 0;
- }
- if (*(YYCURSOR+1) != ':') {
- *p = YYCURSOR+1;
- return 0;
- }
-
- len3 = strspn(str, "0123456789_abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ\177\200\201\202\203\204\205\206\207\210\211\212\213\214\215\216\217\220\221\222\223\224\225\226\227\230\231\232\233\234\235\236\237\240\241\242\243\244\245\246\247\250\251\252\253\254\255\256\257\260\261\262\263\264\265\266\267\270\271\272\273\274\275\276\277\300\301\302\303\304\305\306\307\310\311\312\313\314\315\316\317\320\321\322\323\324\325\326\327\330\331\332\333\334\335\336\337\340\341\342\343\344\345\346\347\350\351\352\353\354\355\356\357\360\361\362\363\364\365\366\367\370\371\372\373\374\375\376\377\\");
- if (len3 != len)
- {
- *p = YYCURSOR + len3 - len;
- return 0;
- }
-
- class_name = zend_string_init(str, len, 0);
-
- do {
- if(!unserialize_allowed_class(class_name, var_hash)) {
- incomplete_class = 1;
- ce = PHP_IC_ENTRY;
- break;
- }
-
- /* Try to find class directly */
- BG(serialize_lock)++;
- ce = zend_lookup_class(class_name);
- if (ce) {
- BG(serialize_lock)--;
- if (EG(exception)) {
- zend_string_release(class_name);
- return 0;
- }
- break;
- }
- BG(serialize_lock)--;
-
- if (EG(exception)) {
- zend_string_release(class_name);
- return 0;
- }
-
- /* Check for unserialize callback */
- if ((PG(unserialize_callback_func) == NULL) || (PG(unserialize_callback_func)[0] == '\0')) {
- incomplete_class = 1;
- ce = PHP_IC_ENTRY;
- break;
- }
-
- /* Call unserialize callback */
- ZVAL_STRING(&user_func, PG(unserialize_callback_func));
-
- ZVAL_STR_COPY(&args[0], class_name);
- BG(serialize_lock)++;
- if (call_user_function_ex(CG(function_table), NULL, &user_func, &retval, 1, args, 0, NULL) != SUCCESS) {
- BG(serialize_lock)--;
- if (EG(exception)) {
- zend_string_release(class_name);
- zval_ptr_dtor(&user_func);
- zval_ptr_dtor(&args[0]);
- return 0;
- }
- php_error_docref(NULL, E_WARNING, "defined (%s) but not found", Z_STRVAL(user_func));
- incomplete_class = 1;
- ce = PHP_IC_ENTRY;
- zval_ptr_dtor(&user_func);
- zval_ptr_dtor(&args[0]);
- break;
- }
- BG(serialize_lock)--;
- zval_ptr_dtor(&retval);
- if (EG(exception)) {
- zend_string_release(class_name);
- zval_ptr_dtor(&user_func);
- zval_ptr_dtor(&args[0]);
- return 0;
- }
-
- /* The callback function may have defined the class */
- BG(serialize_lock)++;
- if ((ce = zend_lookup_class(class_name)) == NULL) {
- php_error_docref(NULL, E_WARNING, "Function %s() hasn't defined the class it was called for", Z_STRVAL(user_func));
- incomplete_class = 1;
- ce = PHP_IC_ENTRY;
- }
- BG(serialize_lock)--;
-
- zval_ptr_dtor(&user_func);
- zval_ptr_dtor(&args[0]);
- break;
- } while (1);
-
- *p = YYCURSOR;
-
- if (custom_object) {
- int ret;
-
- ret = object_custom(UNSERIALIZE_PASSTHRU, ce);
-
- if (ret && incomplete_class) {
- php_store_class_name(rval, ZSTR_VAL(class_name), len2);
- }
- zend_string_release(class_name);
- return ret;
- }
-
- elements = object_common1(UNSERIALIZE_PASSTHRU, ce);
-
- if (incomplete_class) {
- php_store_class_name(rval, ZSTR_VAL(class_name), len2);
- }
- zend_string_release(class_name);
-
- return object_common2(UNSERIALIZE_PASSTHRU, elements);
-}
-#line 1281 "ext/standard/var_unserializer.c"
-yy84:
- ++YYCURSOR;
-#line 744 "ext/standard/var_unserializer.re"
- {
- size_t len, maxlen;
- zend_string *str;
-
- len = parse_uiv(start + 2);
- maxlen = max - YYCURSOR;
- if (maxlen < len) {
- *p = start + 2;
- return 0;
- }
-
- if ((str = unserialize_str(&YYCURSOR, len, maxlen)) == NULL) {
- return 0;
- }
-
- if (*(YYCURSOR) != '"') {
- zend_string_free(str);
- *p = YYCURSOR;
- return 0;
- }
-
- if (*(YYCURSOR + 1) != ';') {
- efree(str);
- *p = YYCURSOR + 1;
- return 0;
- }
-
- YYCURSOR += 2;
- *p = YYCURSOR;
-
- ZVAL_STR(rval, str);
- return 1;
-}
-#line 1318 "ext/standard/var_unserializer.c"
-yy86:
- ++YYCURSOR;
-#line 778 "ext/standard/var_unserializer.re"
- {
- zend_long elements = parse_iv(start + 2);
- /* use iv() not uiv() in order to check data range */
- *p = YYCURSOR;
- if (!var_hash) return 0;
-
- if (elements < 0) {
- return 0;
- }
-
- array_init_size(rval, elements);
- if (elements) {
- /* we can't convert from packed to hash during unserialization, because
- reference to some zvals might be keept in var_hash (to support references) */
- zend_hash_real_init(Z_ARRVAL_P(rval), 0);
- }
-
- if (!process_nested_data(UNSERIALIZE_PASSTHRU, Z_ARRVAL_P(rval), elements, 0)) {
- return 0;
- }
-
- return finish_nested_data(UNSERIALIZE_PASSTHRU);
-}
-#line 1345 "ext/standard/var_unserializer.c"
-yy88:
- yych = *++YYCURSOR;
- if (yych <= ',') {
- if (yych == '+') goto yy96;
- goto yy18;
- } else {
- if (yych <= '-') goto yy96;
- if (yych <= '/') goto yy18;
- if (yych >= ':') goto yy18;
- }
-yy89:
- ++YYCURSOR;
- if (YYLIMIT <= YYCURSOR) YYFILL(1);
- yych = *YYCURSOR;
- if (yych <= '/') goto yy18;
- if (yych <= '9') goto yy89;
- if (yych == ';') goto yy71;
- goto yy18;
-yy91:
- yych = *++YYCURSOR;
- if (yych == ';') goto yy97;
- goto yy18;
-yy92:
- ++YYCURSOR;
-#line 802 "ext/standard/var_unserializer.re"
- {
- if (!var_hash) return 0;
-
- return object_common2(UNSERIALIZE_PASSTHRU,
- object_common1(UNSERIALIZE_PASSTHRU, ZEND_STANDARD_CLASS_DEF_PTR));
-}
-#line 1377 "ext/standard/var_unserializer.c"
-yy94:
- ++YYCURSOR;
-#line 712 "ext/standard/var_unserializer.re"
- {
- size_t len, maxlen;
- char *str;
-
- len = parse_uiv(start + 2);
- maxlen = max - YYCURSOR;
- if (maxlen < len) {
- *p = start + 2;
- return 0;
- }
-
- str = (char*)YYCURSOR;
-
- YYCURSOR += len;
-
- if (*(YYCURSOR) != '"') {
- *p = YYCURSOR;
- return 0;
- }
-
- if (*(YYCURSOR + 1) != ';') {
- *p = YYCURSOR + 1;
- return 0;
- }
-
- YYCURSOR += 2;
- *p = YYCURSOR;
-
- ZVAL_STRINGL(rval, str, len);
- return 1;
-}
-#line 1412 "ext/standard/var_unserializer.c"
-yy96:
- yych = *++YYCURSOR;
- if (yych <= '/') goto yy18;
- if (yych <= '9') goto yy89;
- goto yy18;
-yy97:
- ++YYCURSOR;
-#line 687 "ext/standard/var_unserializer.re"
- {
- *p = YYCURSOR;
-
- if (!strncmp((char*)start + 2, "NAN", 3)) {
- ZVAL_DOUBLE(rval, ZEND_NAN);
- } else if (!strncmp((char*)start + 2, "INF", 3)) {
- ZVAL_DOUBLE(rval, ZEND_INFINITY);
- } else if (!strncmp((char*)start + 2, "-INF", 4)) {
- ZVAL_DOUBLE(rval, -ZEND_INFINITY);
- } else {
- ZVAL_NULL(rval);
- }
-
- return 1;
-}
-#line 1436 "ext/standard/var_unserializer.c"
-}
-#line 964 "ext/standard/var_unserializer.re"
-
-
- return 0;
-}
diff --git a/ext/standard/var_unserializer.re b/ext/standard/var_unserializer.re
index 4e5e56452b..7ce4965ba7 100644
--- a/ext/standard/var_unserializer.re
+++ b/ext/standard/var_unserializer.re
@@ -483,6 +483,11 @@ static inline zend_long object_common1(UNSERIALIZE_PARAMETER, zend_class_entry *
{
zend_long elements;
+ if( *p >= max - 2) {
+ zend_error(E_WARNING, "Bad unserialize data");
+ return -1;
+ }
+
elements = parse_iv2((*p) + 2, p);
(*p) += 2;
@@ -493,7 +498,7 @@ static inline zend_long object_common1(UNSERIALIZE_PARAMETER, zend_class_entry *
/* If this class implements Serializable, it should not land here but in object_custom(). The passed string
obviously doesn't descend from the regular serializer. */
zend_error(E_WARNING, "Erroneous data format for unserializing '%s'", ZSTR_VAL(ce->name));
- return 0;
+ return -1;
}
return elements;
@@ -553,7 +558,7 @@ PHPAPI int php_var_unserialize(UNSERIALIZE_PARAMETER)
var_entries *orig_var_entries = (*var_hash)->last;
zend_long orig_used_slots = orig_var_entries ? orig_var_entries->used_slots : 0;
int result;
-
+
result = php_var_unserialize_internal(UNSERIALIZE_PASSTHRU);
if (!result) {
@@ -800,10 +805,14 @@ use_double:
}
"o:" iv ":" ["] {
+ long elements;
if (!var_hash) return 0;
- return object_common2(UNSERIALIZE_PASSTHRU,
- object_common1(UNSERIALIZE_PASSTHRU, ZEND_STANDARD_CLASS_DEF_PTR));
+ elements = object_common1(UNSERIALIZE_PASSTHRU, ZEND_STANDARD_CLASS_DEF_PTR);
+ if (elements < 0) {
+ return 0;
+ }
+ return object_common2(UNSERIALIZE_PASSTHRU, elements);
}
object ":" uiv ":" ["] {
@@ -945,6 +954,11 @@ object ":" uiv ":" ["] {
elements = object_common1(UNSERIALIZE_PASSTHRU, ce);
+ if (elements < 0) {
+ zend_string_release(class_name);
+ return 0;
+ }
+
if (incomplete_class) {
php_store_class_name(rval, ZSTR_VAL(class_name), len2);
}
diff --git a/ext/sysvsem/tests/nowait.phpt b/ext/sysvsem/tests/nowait.phpt
index 8557ce33ee..23f0dfc165 100644
--- a/ext/sysvsem/tests/nowait.phpt
+++ b/ext/sysvsem/tests/nowait.phpt
@@ -67,12 +67,16 @@ if ($pid) {
exit;
}
+ /* Release the child semahpore before releasing
+ the releasing the parent semaphore and letting
+ the child continue execution */
+ sem_release($c_sem_id);
+
echo "P: releasing semaphore $p_sem_id.\n";
if (!sem_release($p_sem_id)) {
echo "P: failed to release semaphore\n";
}
- sem_release($c_sem_id);
$status = null;
pcntl_waitpid($pid, $status);
diff --git a/ext/wddx/tests/bug73831.phpt b/ext/wddx/tests/bug73831.phpt
new file mode 100644
index 0000000000..0f8b8b1264
--- /dev/null
+++ b/ext/wddx/tests/bug73831.phpt
@@ -0,0 +1,23 @@
+--TEST--
+Bug #73831 (NULL Pointer Dereference while unserialize php object)
+--SKIPIF--
+<?php if (!extension_loaded("wddx")) print "skip"; ?>
+--FILE--
+<?php
+$xml = <<<EOF
+<?xml version="1.0" ?>
+<wddxPacket version="1.0">
+ <struct>
+ <var name="php_class_name">
+ <string>Throwable</string>
+ </var>
+ </struct>
+</wddxPacket>
+EOF;
+try {
+ $wddx = wddx_deserialize($xml);
+} catch(Error $e) { echo $e->getMessage(); }
+?>
+--EXPECTF--
+Warning: wddx_deserialize(): Class throwable can not be instantiated in %sbug73831.php on line %d
+Cannot instantiate interface Throwable
diff --git a/ext/wddx/wddx.c b/ext/wddx/wddx.c
index 73ebc4964c..a905f59fd5 100644
--- a/ext/wddx/wddx.c
+++ b/ext/wddx/wddx.c
@@ -908,7 +908,7 @@ static void php_wddx_pop_element(void *user_data, const XML_Char *name)
if (!strcmp((char *)name, EL_BINARY)) {
zend_string *new_str = NULL;
-
+
if (ZSTR_EMPTY_ALLOC() != Z_STR(ent1->data)) {
new_str = php_base64_decode(
(unsigned char *)Z_STRVAL(ent1->data), Z_STRLEN(ent1->data));
@@ -967,22 +967,26 @@ static void php_wddx_pop_element(void *user_data, const XML_Char *name)
php_error_docref(NULL, E_WARNING, "Class %s can not be unserialized", Z_STRVAL(ent1->data));
} else {
/* Initialize target object */
- object_init_ex(&obj, pce);
-
- /* Merge current hashtable with object's default properties */
- zend_hash_merge(Z_OBJPROP(obj),
- Z_ARRVAL(ent2->data),
- zval_add_ref, 0);
-
- if (incomplete_class) {
- php_store_class_name(&obj, Z_STRVAL(ent1->data), Z_STRLEN(ent1->data));
+ if (object_init_ex(&obj, pce) != SUCCESS || EG(exception)) {
+ zval_ptr_dtor(&ent2->data);
+ ZVAL_UNDEF(&ent2->data);
+ php_error_docref(NULL, E_WARNING, "Class %s can not be instantiated", Z_STRVAL(ent1->data));
+ } else {
+ /* Merge current hashtable with object's default properties */
+ zend_hash_merge(Z_OBJPROP(obj),
+ Z_ARRVAL(ent2->data),
+ zval_add_ref, 0);
+
+ if (incomplete_class) {
+ php_store_class_name(&obj, Z_STRVAL(ent1->data), Z_STRLEN(ent1->data));
+ }
+
+ /* Clean up old array entry */
+ zval_ptr_dtor(&ent2->data);
+
+ /* Set stack entry to point to the newly created object */
+ ZVAL_COPY_VALUE(&ent2->data, &obj);
}
-
- /* Clean up old array entry */
- zval_ptr_dtor(&ent2->data);
-
- /* Set stack entry to point to the newly created object */
- ZVAL_COPY_VALUE(&ent2->data, &obj);
}
/* Clean up class name var entry */
diff --git a/main/explicit_bzero.c b/main/explicit_bzero.c
new file mode 100644
index 0000000000..ffe5bec9b3
--- /dev/null
+++ b/main/explicit_bzero.c
@@ -0,0 +1,43 @@
+/*
+ +----------------------------------------------------------------------+
+ | PHP Version 7 |
+ +----------------------------------------------------------------------+
+ | Copyright (c) 1997-2016 The PHP Group |
+ +----------------------------------------------------------------------+
+ | This source file is subject to version 3.01 of the PHP license, |
+ | that is bundled with this package in the file LICENSE, and is |
+ | available through the world-wide-web at the following url: |
+ | http://www.php.net/license/3_01.txt |
+ | If you did not receive a copy of the PHP license and are unable to |
+ | obtain it through the world-wide-web, please send a note to |
+ | license@php.net so we can mail you a copy immediately. |
+ +----------------------------------------------------------------------+
+ | Author: |
+ +----------------------------------------------------------------------+
+*/
+
+/* $Id$ */
+
+#include "php.h"
+
+#ifndef HAVE_EXPLICIT_BZERO
+
+/* $OpenBSD: explicit_bzero.c,v 1.4 2015/08/31 02:53:57 guenther Exp $ */
+/*
+ * Public domain.
+ * Written by Matthew Dempsky.
+ */
+
+#include <string.h>
+
+__attribute__((weak)) void
+__explicit_bzero_hook(void *dst, size_t siz)
+{
+}
+
+PHPAPI void php_explicit_bzero(void *dst, size_t siz)
+{
+ memset(dst, 0, siz);
+ __explicit_bzero_hook(dst, siz);
+}
+#endif
diff --git a/main/php.h b/main/php.h
index b640bfcecd..23d365d9e3 100644
--- a/main/php.h
+++ b/main/php.h
@@ -176,6 +176,14 @@ END_EXTERN_C()
#define strlcat php_strlcat
#endif
+#ifndef HAVE_EXPLICIT_BZERO
+BEGIN_EXTERN_C()
+PHPAPI void php_explicit_bzero(void *dst, size_t siz);
+END_EXTERN_C()
+#undef explicit_bzero
+#define explicit_bzero php_explicit_bzero
+#endif
+
#ifndef HAVE_STRTOK_R
BEGIN_EXTERN_C()
char *strtok_r(char *s, const char *delim, char **last);
diff --git a/main/strlcat.c b/main/strlcat.c
index 30dfd0f8a9..a381b1433c 100644
--- a/main/strlcat.c
+++ b/main/strlcat.c
@@ -22,7 +22,7 @@
#ifndef HAVE_STRLCAT
-/* $OpenBSD: strlcat.c,v 1.2 1999/06/17 16:28:58 millert Exp $ */
+/* $OpenBSD: strlcat.c,v 1.17 2016/10/14 18:19:04 dtucker Exp $ */
/*
* Copyright (c) 1998 Todd C. Miller <Todd.Miller@courtesan.com>
@@ -52,7 +52,7 @@
*/
#if defined(LIBC_SCCS) && !defined(lint)
-static char *rcsid = "$OpenBSD: strlcat.c,v 1.2 1999/06/17 16:28:58 millert Exp $";
+static char *rcsid = "$OpenBSD: strlcat.c,v 1.17 2016/10/14 18:19:04 dtucker Exp $";
#endif /* LIBC_SCCS and not lint */
#include <sys/types.h>
@@ -69,29 +69,34 @@ PHPAPI size_t php_strlcat(dst, src, siz)
const char *src;
size_t siz;
{
- register char *d = dst;
- register const char *s = src;
- register size_t n = siz;
+ const char *d = dst;
+ const char *s = src;
+ size_t n = siz;
size_t dlen;
/* Find the end of dst and adjust bytes left but don't go past end */
- while (*d != '\0' && n-- != 0)
- d++;
- dlen = d - dst;
+ while (n-- != 0 && *dst != '\0')
+ dst++;
+ dlen = (uintptr_t)dst - (uintptr_t)d;
n = siz - dlen;
- if (n == 0)
- return(dlen + strlen(s));
- while (*s != '\0') {
- if (n != 1) {
- *d++ = *s;
+ if (n-- == 0)
+ return(dlen + strlen(src));
+ while (*src != '\0') {
+ if (n != 0) {
+ *dst++ = *src;
n--;
}
- s++;
+ src++;
}
- *d = '\0';
+ *dst = '\0';
- return(dlen + (s - src)); /* count does not include NUL */
+ /*
+ * Cast pointers to unsigned type before calculation, to avoid signed
+ * overflow when the string ends where the MSB has changed.
+ * Return value does not include NUL.
+ */
+ return(dlen + ((uintptr_t)src - (uintptr_t)s));
}
#endif /* !HAVE_STRLCAT */
diff --git a/main/strlcpy.c b/main/strlcpy.c
index 8d7b2652ea..3e66140ef6 100644
--- a/main/strlcpy.c
+++ b/main/strlcpy.c
@@ -22,7 +22,7 @@
#ifndef HAVE_STRLCPY
-/* $OpenBSD: strlcpy.c,v 1.4 1999/05/01 18:56:41 millert Exp $ */
+/* $OpenBSD: strlcpy.c,v 1.15 2016/10/16 17:37:39 dtucker Exp $ */
/*
* Copyright (c) 1998 Todd C. Miller <Todd.Miller@courtesan.com>
@@ -52,7 +52,7 @@
*/
#if defined(LIBC_SCCS) && !defined(lint)
-static char *rcsid = "$OpenBSD: strlcpy.c,v 1.4 1999/05/01 18:56:41 millert Exp $";
+static char *rcsid = "$OpenBSD: strlcpy.c,v 1.15 2016/10/16 17:37:39 dtucker Exp $";
#endif /* LIBC_SCCS and not lint */
#include <sys/types.h>
@@ -68,27 +68,31 @@ PHPAPI size_t php_strlcpy(dst, src, siz)
const char *src;
size_t siz;
{
- register char *d = dst;
- register const char *s = src;
- register size_t n = siz;
+ const char *s = src;
+ size_t n = siz;
/* Copy as many bytes as will fit */
- if (n != 0 && --n != 0) {
- do {
- if ((*d++ = *s++) == 0)
+ if (n != 0) {
+ while (--n != 0) {
+ if ((*dst++ = *src++) == 0)
break;
- } while (--n != 0);
+ }
}
/* Not enough room in dst, add NUL and traverse rest of src */
if (n == 0) {
if (siz != 0)
- *d = '\0'; /* NUL-terminate dst */
- while (*s++)
+ *dst = '\0'; /* NUL-terminate dst */
+ while (*src++)
;
}
- return(s - src - 1); /* count does not include NUL */
+ /*
+ * Cast pointers to unsigned type before calculation, to avoid signed
+ * overflow when the string ends where the MSB has changed.
+ * Return value does not include NUL.
+ */
+ return((uintptr_t)src - (uintptr_t)s - 1);
}
#endif /* !HAVE_STRLCPY */